@lwc/signals 8.2.0 → 8.4.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.cjs.js CHANGED
@@ -5,9 +5,60 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
+ /**
9
+ * Copyright (c) 2024 Salesforce, Inc.
10
+ */
11
+ /*
12
+ * Copyright (c) 2018, salesforce.com, inc.
13
+ * All rights reserved.
14
+ * SPDX-License-Identifier: MIT
15
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
16
+ */
17
+ /**
18
+ *
19
+ * @param value
20
+ * @param msg
21
+ */
22
+ /**
23
+ *
24
+ * @param value
25
+ * @param msg
26
+ */
27
+ function isFalse$1(value, msg) {
28
+ if (value) {
29
+ throw new Error(`Assert Violation: ${msg}`);
30
+ }
31
+ }
32
+
33
+ /*
34
+ * Copyright (c) 2024, salesforce.com, inc.
35
+ * All rights reserved.
36
+ * SPDX-License-Identifier: MIT
37
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
38
+ */
39
+ let trustedSignals;
40
+ function setTrustedSignalSet(signals) {
41
+ isFalse$1(trustedSignals, 'Trusted Signal Set is already set!');
42
+ trustedSignals = signals;
43
+ }
44
+ function addTrustedSignal(signal) {
45
+ // This should be a no-op when the trustedSignals set isn't set by runtime
46
+ trustedSignals?.add(signal);
47
+ }
48
+ /** version: 8.4.0 */
49
+
50
+ /*
51
+ * Copyright (c) 2023, salesforce.com, inc.
52
+ * All rights reserved.
53
+ * SPDX-License-Identifier: MIT
54
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
55
+ */
8
56
  class SignalBaseClass {
9
57
  constructor() {
10
58
  this.subscribers = new Set();
59
+ // Add the signal to the set of trusted signals
60
+ // that rendering engine can track
61
+ addTrustedSignal(this);
11
62
  }
12
63
  subscribe(onUpdate) {
13
64
  this.subscribers.add(onUpdate);
@@ -23,5 +74,6 @@ class SignalBaseClass {
23
74
  }
24
75
 
25
76
  exports.SignalBaseClass = SignalBaseClass;
26
- /** version: 8.2.0 */
77
+ exports.setTrustedSignalSet = setTrustedSignalSet;
78
+ /** version: 8.4.0 */
27
79
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;MAcsB,eAAe,CAAA;AAArC,IAAA,WAAA,GAAA;AAGY,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,GAAG,EAAE,CAAC;KAclD;AAZG,IAAA,SAAS,CAAC,QAAkB,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAC,CAAC;KACL;IAES,MAAM,GAAA;AACZ,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AACvC,YAAA,UAAU,EAAE,CAAC;SAChB;KACJ;AACJ;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../shared/dist/index.js","../src/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2024 Salesforce, Inc.\n */\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n *\n * @param value\n * @param msg\n */\nfunction invariant(value, msg) {\n if (!value) {\n throw new Error(`Invariant Violation: ${msg}`);\n }\n}\n/**\n *\n * @param value\n * @param msg\n */\nfunction isTrue$1(value, msg) {\n if (!value) {\n throw new Error(`Assert Violation: ${msg}`);\n }\n}\n/**\n *\n * @param value\n * @param msg\n */\nfunction isFalse$1(value, msg) {\n if (value) {\n throw new Error(`Assert Violation: ${msg}`);\n }\n}\n/**\n *\n * @param msg\n */\nfunction fail(msg) {\n throw new Error(msg);\n}\n\nvar assert = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fail: fail,\n invariant: invariant,\n isFalse: isFalse$1,\n isTrue: isTrue$1\n});\n\n/*\n * Copyright (c) 2024, Salesforce, Inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst { \n/** Detached {@linkcode Object.assign}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign MDN Reference}. */\nassign, \n/** Detached {@linkcode Object.create}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create MDN Reference}. */\ncreate, \n/** Detached {@linkcode Object.defineProperties}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties MDN Reference}. */\ndefineProperties, \n/** Detached {@linkcode Object.defineProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty MDN Reference}. */\ndefineProperty, \n/** Detached {@linkcode Object.entries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries MDN Reference}. */\nentries, \n/** Detached {@linkcode Object.freeze}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze MDN Reference}. */\nfreeze, \n/** Detached {@linkcode Object.getOwnPropertyDescriptor}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor MDN Reference}. */\ngetOwnPropertyDescriptor, \n/** Detached {@linkcode Object.getOwnPropertyDescriptors}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors MDN Reference}. */\ngetOwnPropertyDescriptors, \n/** Detached {@linkcode Object.getOwnPropertyNames}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames MDN Reference}. */\ngetOwnPropertyNames, \n/** Detached {@linkcode Object.getOwnPropertySymbols}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols MDN Reference}. */\ngetOwnPropertySymbols, \n/** Detached {@linkcode Object.getPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf MDN Reference}. */\ngetPrototypeOf, \n/** Detached {@linkcode Object.hasOwnProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty MDN Reference}. */\nhasOwnProperty, \n/** Detached {@linkcode Object.isFrozen}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen MDN Reference}. */\nisFrozen, \n/** Detached {@linkcode Object.keys}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys MDN Reference}. */\nkeys, \n/** Detached {@linkcode Object.seal}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal MDN Reference}. */\nseal, \n/** Detached {@linkcode Object.setPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf MDN Reference}. */\nsetPrototypeOf, } = Object;\nconst { \n/** Detached {@linkcode Array.isArray}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray MDN Reference}. */\nisArray, \n/** Detached {@linkcode Array.from}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from MDN Reference}. */\nfrom: ArrayFrom, } = Array;\n// For some reason, JSDoc don't get picked up for multiple renamed destructured constants (even\n// though it works fine for one, e.g. isArray), so comments for these are added to the export\n// statement, rather than this declaration.\nconst { concat: ArrayConcat, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, // Weird anomaly!\n } = Array.prototype;\n// The type of the return value of Array.prototype.every is `this is T[]`. However, once this\n// Array method is pulled out of the prototype, the function is now referencing `this` where\n// `this` is meaningless, resulting in a TypeScript compilation error.\n//\n// Exposing this helper function is the closest we can get to preserving the usage patterns\n// of Array.prototype methods used elsewhere in the codebase.\n/**\n * Wrapper for {@linkcode Array.prototype.every} that correctly preserves the type predicate in the\n * return value; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every MDN Reference}.\n * @param arr Array to test.\n * @param predicate A function to execute for each element of the array.\n * @returns Whether all elements in the array pass the test provided by the predicate.\n */\nfunction arrayEvery(arr, predicate) {\n return ArrayEvery.call(arr, predicate);\n}\n/** Detached {@linkcode String.fromCharCode}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode MDN Reference}. */\nconst { fromCharCode: StringFromCharCode } = String;\n// No JSDocs here - see comment for Array.prototype\nconst { charAt: StringCharAt, charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, trim: StringTrim, } = String.prototype;\n/**\n * Determines whether the argument is `undefined`.\n * @param obj Value to test\n * @returns `true` if the value is `undefined`.\n */\nfunction isUndefined(obj) {\n return obj === undefined;\n}\n/**\n * Determines whether the argument is `null`.\n * @param obj Value to test\n * @returns `true` if the value is `null`.\n */\nfunction isNull(obj) {\n return obj === null;\n}\n/**\n * Determines whether the argument is `true`.\n * @param obj Value to test\n * @returns `true` if the value is `true`.\n */\nfunction isTrue(obj) {\n return obj === true;\n}\n/**\n * Determines whether the argument is `false`.\n * @param obj Value to test\n * @returns `true` if the value is `false`.\n */\nfunction isFalse(obj) {\n return obj === false;\n}\n/**\n * Determines whether the argument is a boolean.\n * @param obj Value to test\n * @returns `true` if the value is a boolean.\n */\nfunction isBoolean(obj) {\n return typeof obj === 'boolean';\n}\n/**\n * Determines whether the argument is a function.\n * @param obj Value to test\n * @returns `true` if the value is a function.\n */\n// Replacing `Function` with a narrower type that works for all our use cases is tricky...\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\n/**\n * Determines whether the argument is an object or null.\n * @param obj Value to test\n * @returns `true` if the value is an object or null.\n */\nfunction isObject(obj) {\n return typeof obj === 'object';\n}\n/**\n * Determines whether the argument is a string.\n * @param obj Value to test\n * @returns `true` if the value is a string.\n */\nfunction isString(obj) {\n return typeof obj === 'string';\n}\n/**\n * Determines whether the argument is a number.\n * @param obj Value to test\n * @returns `true` if the value is a number.\n */\nfunction isNumber(obj) {\n return typeof obj === 'number';\n}\n/** Does nothing! 🚀 */\nfunction noop() {\n /* Do nothing */\n}\nconst OtS = {}.toString;\n/**\n * Converts the argument to a string, safely accounting for objects with \"null\" prototype.\n * Note that `toString(null)` returns `\"[object Null]\"` rather than `\"null\"`.\n * @param obj Value to convert to a string.\n * @returns String representation of the value.\n */\nfunction toString(obj) {\n if (obj?.toString) {\n // Arrays might hold objects with \"null\" prototype So using\n // Array.prototype.toString directly will cause an error Iterate through\n // all the items and handle individually.\n if (isArray(obj)) {\n // This behavior is slightly different from Array#toString:\n // 1. Array#toString calls `this.join`, rather than Array#join\n // Ex: arr = []; arr.join = () => 1; arr.toString() === 1; toString(arr) === ''\n // 2. Array#toString delegates to Object#toString if `this.join` is not a function\n // Ex: arr = []; arr.join = 'no'; arr.toString() === '[object Array]; toString(arr) = ''\n // 3. Array#toString converts null/undefined to ''\n // Ex: arr = [null, undefined]; arr.toString() === ','; toString(arr) === '[object Null],undefined'\n // 4. Array#toString converts recursive references to arrays to ''\n // Ex: arr = [1]; arr.push(arr, 2); arr.toString() === '1,,2'; toString(arr) throws\n // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString\n return ArrayJoin.call(ArrayMap.call(obj, toString), ',');\n }\n return obj.toString();\n }\n else if (typeof obj === 'object') {\n // This catches null and returns \"[object Null]\". Weird, but kept for backwards compatibility.\n return OtS.call(obj);\n }\n else {\n return String(obj);\n }\n}\n/**\n * Gets the property descriptor for the given object and property key. Similar to\n * {@linkcode Object.getOwnPropertyDescriptor}, but looks up the prototype chain.\n * @param o Value to get the property descriptor for\n * @param p Property key to get the descriptor for\n * @returns The property descriptor for the given object and property key.\n */\nfunction getPropertyDescriptor(o, p) {\n do {\n const d = getOwnPropertyDescriptor(o, p);\n if (!isUndefined(d)) {\n return d;\n }\n o = getPrototypeOf(o);\n } while (o !== null);\n}\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// These must be updated when the enum is updated.\n// It's a bit annoying to do have to do this manually, but this makes the file tree-shakeable,\n// passing the `verify-treeshakeable.js` test.\nconst allVersions = [\n 58 /* APIVersion.V58_244_SUMMER_23 */,\n 59 /* APIVersion.V59_246_WINTER_24 */,\n 60 /* APIVersion.V60_248_SPRING_24 */,\n 61 /* APIVersion.V61_250_SUMMER_24 */,\n 62 /* APIVersion.V62_252_WINTER_25 */,\n 63 /* APIVersion.V63_254_SPRING_25 */,\n];\nconst allVersionsSet = /*@__PURE__@*/ new Set(allVersions);\nconst LOWEST_API_VERSION = allVersions[0];\nconst HIGHEST_API_VERSION = allVersions[allVersions.length - 1];\n/**\n *\n * @param version\n */\nfunction getAPIVersionFromNumber(version) {\n if (!isNumber(version)) {\n // if version is unspecified, default to latest\n return HIGHEST_API_VERSION;\n }\n if (allVersionsSet.has(version)) {\n return version;\n }\n if (version < LOWEST_API_VERSION) {\n return LOWEST_API_VERSION;\n }\n // If it's a number, and it's within the bounds of our known versions, then we should find the\n // highest version lower than the requested number.\n // For instance, if we know about versions 1, 2, 5, and 6, and the user requests 3, then we should return 2.\n for (let i = 1; i < allVersions.length; i++) {\n if (allVersions[i] > version) {\n return allVersions[i - 1];\n }\n }\n // version > HIGHEST_API_VERSION, so fall back to highest\n return HIGHEST_API_VERSION;\n}\n/**\n *\n * @param apiVersionFeature\n * @param apiVersion\n */\nfunction isAPIFeatureEnabled(apiVersionFeature, apiVersion) {\n switch (apiVersionFeature) {\n case 0 /* APIFeature.LOWERCASE_SCOPE_TOKENS */:\n case 1 /* APIFeature.TREAT_ALL_PARSE5_ERRORS_AS_ERRORS */:\n return apiVersion >= 59 /* APIVersion.V59_246_WINTER_24 */;\n case 3 /* APIFeature.DISABLE_OBJECT_REST_SPREAD_TRANSFORMATION */:\n case 4 /* APIFeature.SKIP_UNNECESSARY_REGISTER_DECORATORS */:\n case 5 /* APIFeature.USE_COMMENTS_FOR_FRAGMENT_BOOKENDS */:\n case 2 /* APIFeature.USE_FRAGMENTS_FOR_LIGHT_DOM_SLOTS */:\n return apiVersion >= 60 /* APIVersion.V60_248_SPRING_24 */;\n case 7 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */:\n case 6 /* APIFeature.USE_LIGHT_DOM_SLOT_FORWARDING */:\n return apiVersion >= 61 /* APIVersion.V61_250_SUMMER_24 */;\n case 8 /* APIFeature.ENABLE_THIS_DOT_HOST_ELEMENT */:\n case 9 /* APIFeature.ENABLE_THIS_DOT_STYLE */:\n case 10 /* APIFeature.TEMPLATE_CLASS_NAME_OBJECT_BINDING */:\n return apiVersion >= 62 /* APIVersion.V62_252_WINTER_25 */;\n case 11 /* APIFeature.ENABLE_COMPLEX_TEMPLATE_EXPRESSIONS */:\n return apiVersion >= 63 /* APIVersion.V63_254_SPRING_25 */;\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * According to the following list, there are 48 aria attributes of which two (ariaDropEffect and\n * ariaGrabbed) are deprecated:\n * https://www.w3.org/TR/wai-aria-1.1/#x6-6-definitions-of-states-and-properties-all-aria-attributes\n *\n * The above list of 46 aria attributes is consistent with the following resources:\n * https://github.com/w3c/aria/pull/708/files#diff-eacf331f0ffc35d4b482f1d15a887d3bR11060\n * https://wicg.github.io/aom/spec/aria-reflection.html\n *\n * NOTE: If you update this list, please update test files that implicitly reference this list!\n * Searching the codebase for `aria-flowto` and `ariaFlowTo` should be good enough to find all usages.\n */\nconst AriaPropertyNames = [\n 'ariaActiveDescendant',\n 'ariaAtomic',\n 'ariaAutoComplete',\n 'ariaBusy',\n 'ariaChecked',\n 'ariaColCount',\n 'ariaColIndex',\n 'ariaColIndexText',\n 'ariaColSpan',\n 'ariaControls',\n 'ariaCurrent',\n 'ariaDescribedBy',\n 'ariaDescription',\n 'ariaDetails',\n 'ariaDisabled',\n 'ariaErrorMessage',\n 'ariaExpanded',\n 'ariaFlowTo',\n 'ariaHasPopup',\n 'ariaHidden',\n 'ariaInvalid',\n 'ariaKeyShortcuts',\n 'ariaLabel',\n 'ariaLabelledBy',\n 'ariaLevel',\n 'ariaLive',\n 'ariaModal',\n 'ariaMultiLine',\n 'ariaMultiSelectable',\n 'ariaOrientation',\n 'ariaOwns',\n 'ariaPlaceholder',\n 'ariaPosInSet',\n 'ariaPressed',\n 'ariaReadOnly',\n 'ariaRelevant',\n 'ariaRequired',\n 'ariaRoleDescription',\n 'ariaRowCount',\n 'ariaRowIndex',\n 'ariaRowIndexText',\n 'ariaRowSpan',\n 'ariaSelected',\n 'ariaSetSize',\n 'ariaSort',\n 'ariaValueMax',\n 'ariaValueMin',\n 'ariaValueNow',\n 'ariaValueText',\n 'ariaBrailleLabel',\n 'ariaBrailleRoleDescription',\n 'role',\n];\nconst { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap } = /*@__PURE__*/ (() => {\n const AriaAttrNameToPropNameMap = create(null);\n const AriaPropNameToAttrNameMap = create(null);\n // Synthetic creation of all AOM property descriptors for Custom Elements\n forEach.call(AriaPropertyNames, (propName) => {\n const attrName = StringToLowerCase.call(StringReplace.call(propName, /^aria/, () => 'aria-'));\n AriaAttrNameToPropNameMap[attrName] = propName;\n AriaPropNameToAttrNameMap[propName] = attrName;\n });\n return { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap };\n})();\n/**\n *\n * @param attrName\n */\nfunction isAriaAttribute(attrName) {\n return attrName in AriaAttrNameToPropNameMap;\n}\n// These attributes take either an ID or a list of IDs as values.\n// This includes aria-* attributes as well as the special non-ARIA \"for\" attribute\nconst ID_REFERENCING_ATTRIBUTES_SET = /*@__PURE__*/ new Set([\n 'aria-activedescendant',\n 'aria-controls',\n 'aria-describedby',\n 'aria-details',\n 'aria-errormessage',\n 'aria-flowto',\n 'aria-labelledby',\n 'aria-owns',\n 'for',\n]);\n\n/*\n * Copyright (c) 2024, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst reservedKeywords = new Set([\n 'NaN',\n 'arguments',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'finally',\n 'for',\n 'function',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'interface',\n 'let',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'static',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'undefined',\n 'var',\n 'void',\n 'while',\n 'with',\n 'yield',\n]);\n\n/*\n * Copyright (c) 2023, Salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst KEY__SHADOW_RESOLVER = '$shadowResolver$';\nconst KEY__SHADOW_RESOLVER_PRIVATE = '$$ShadowResolverKey$$';\nconst KEY__SHADOW_STATIC = '$shadowStaticNode$';\nconst KEY__SHADOW_STATIC_PRIVATE = '$shadowStaticNodeKey$';\nconst KEY__SHADOW_TOKEN = '$shadowToken$';\nconst KEY__SHADOW_TOKEN_PRIVATE = '$$ShadowTokenKey$$';\n// TODO [#3733]: remove support for legacy scope tokens\nconst KEY__LEGACY_SHADOW_TOKEN = '$legacyShadowToken$';\nconst KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';\nconst KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';\nconst KEY__SCOPED_CSS = '$scoped$';\nconst KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';\nconst KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';\n\n/*\n * Copyright (c) 2022, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nconst XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nconst XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// Void elements are elements that self-close even without an explicit solidus (slash),\n// e.g. `</tagName>` or `<tagName />`. For instance, `<meta>` closes on its own; no need for a slash.\n// These only come from HTML; there are no void elements in the SVG or MathML namespaces.\n// See: https://html.spec.whatwg.org/multipage/syntax.html#syntax-tags\nconst VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'source',\n 'track',\n 'wbr',\n];\n// These elements have been deprecated but preserving their usage for backwards compatibility\n// until we can officially deprecate them from LWC.\n// See: https://html.spec.whatwg.org/multipage/obsolete.html#obsolete-but-conforming-features\nconst DEPRECATED_VOID_ELEMENTS = ['param', 'keygen', 'menuitem'];\nconst VOID_ELEMENTS_SET = /*@__PURE__*/ new Set([...VOID_ELEMENTS, ...DEPRECATED_VOID_ELEMENTS]);\n/**\n *\n * @param name\n * @param namespace\n */\nfunction isVoidElement(name, namespace) {\n return namespace === HTML_NAMESPACE && VOID_ELEMENTS_SET.has(name.toLowerCase());\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst CAMEL_REGEX = /-([a-z])/g;\n/**\n * Maps boolean attribute name to supported tags: 'boolean attr name' => Set of allowed tag names\n * that supports them.\n */\nconst BOOLEAN_ATTRIBUTES = /*@__PURE__@*/ new Map([\n ['autofocus', /*@__PURE__@*/ new Set(['button', 'input', 'keygen', 'select', 'textarea'])],\n ['autoplay', /*@__PURE__@*/ new Set(['audio', 'video'])],\n ['checked', /*@__PURE__@*/ new Set(['command', 'input'])],\n [\n 'disabled',\n /*@__PURE__@*/ new Set([\n 'button',\n 'command',\n 'fieldset',\n 'input',\n 'keygen',\n 'optgroup',\n 'select',\n 'textarea',\n ]),\n ],\n ['formnovalidate', /*@__PURE__@*/ new Set(['button'])], // button[type=submit]\n ['hidden', /*@__PURE__@*/ new Set()], // Global attribute\n ['loop', /*@__PURE__@*/ new Set(['audio', 'bgsound', 'marquee', 'video'])],\n ['multiple', /*@__PURE__@*/ new Set(['input', 'select'])],\n ['muted', /*@__PURE__@*/ new Set(['audio', 'video'])],\n ['novalidate', /*@__PURE__@*/ new Set(['form'])],\n ['open', /*@__PURE__@*/ new Set(['details'])],\n ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])],\n ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])],\n ['required', /*@__PURE__@*/ new Set(['input', 'select', 'textarea'])],\n ['reversed', /*@__PURE__@*/ new Set(['ol'])],\n ['selected', /*@__PURE__@*/ new Set(['option'])],\n]);\n/**\n *\n * @param attrName\n * @param tagName\n */\nfunction isBooleanAttribute(attrName, tagName) {\n const allowedTagNames = BOOLEAN_ATTRIBUTES.get(attrName);\n return (allowedTagNames !== undefined &&\n (allowedTagNames.size === 0 || allowedTagNames.has(tagName)));\n}\n// This list is based on https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes\nconst GLOBAL_ATTRIBUTE = /*@__PURE__*/ new Set([\n 'accesskey',\n 'autocapitalize',\n 'autofocus',\n 'class',\n 'contenteditable',\n 'contextmenu',\n 'dir',\n 'draggable',\n 'enterkeyhint',\n 'exportparts',\n 'hidden',\n 'id',\n 'inputmode',\n 'is',\n 'itemid',\n 'itemprop',\n 'itemref',\n 'itemscope',\n 'itemtype',\n 'lang',\n 'nonce',\n 'part',\n 'slot',\n 'spellcheck',\n 'style',\n 'tabindex',\n 'title',\n 'translate',\n]);\n/**\n *\n * @param attrName\n */\nfunction isGlobalHtmlAttribute(attrName) {\n return GLOBAL_ATTRIBUTE.has(attrName);\n}\n// These are HTML standard prop/attribute IDL mappings, but are not predictable based on camel/kebab-case conversion\nconst SPECIAL_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map([\n ['accessKey', 'accesskey'],\n ['readOnly', 'readonly'],\n ['tabIndex', 'tabindex'],\n ['bgColor', 'bgcolor'],\n ['colSpan', 'colspan'],\n ['rowSpan', 'rowspan'],\n ['contentEditable', 'contenteditable'],\n ['crossOrigin', 'crossorigin'],\n ['dateTime', 'datetime'],\n ['formAction', 'formaction'],\n ['isMap', 'ismap'],\n ['maxLength', 'maxlength'],\n ['minLength', 'minlength'],\n ['noValidate', 'novalidate'],\n ['useMap', 'usemap'],\n ['htmlFor', 'for'],\n]);\n/**\n * Map associating previously transformed HTML property into HTML attribute.\n */\nconst CACHED_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map();\n/**\n *\n * @param propName\n */\nfunction htmlPropertyToAttribute(propName) {\n const ariaAttributeName = AriaPropNameToAttrNameMap[propName];\n if (!isUndefined(ariaAttributeName)) {\n return ariaAttributeName;\n }\n const specialAttributeName = SPECIAL_PROPERTY_ATTRIBUTE_MAPPING.get(propName);\n if (!isUndefined(specialAttributeName)) {\n return specialAttributeName;\n }\n const cachedAttributeName = CACHED_PROPERTY_ATTRIBUTE_MAPPING.get(propName);\n if (!isUndefined(cachedAttributeName)) {\n return cachedAttributeName;\n }\n let attributeName = '';\n for (let i = 0, len = propName.length; i < len; i++) {\n const code = StringCharCodeAt.call(propName, i);\n if (code >= 65 && // \"A\"\n code <= 90 // \"Z\"\n ) {\n attributeName += '-' + StringFromCharCode(code + 32);\n }\n else {\n attributeName += StringFromCharCode(code);\n }\n }\n CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);\n return attributeName;\n}\n/**\n * Map associating previously transformed kabab-case attributes into camel-case props.\n */\nconst CACHED_KEBAB_CAMEL_MAPPING = /*@__PURE__@*/ new Map();\n/**\n *\n * @param attrName\n */\nfunction kebabCaseToCamelCase(attrName) {\n let result = CACHED_KEBAB_CAMEL_MAPPING.get(attrName);\n if (isUndefined(result)) {\n result = StringReplace.call(attrName, CAMEL_REGEX, (g) => g[1].toUpperCase());\n CACHED_KEBAB_CAMEL_MAPPING.set(attrName, result);\n }\n return result;\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst ESCAPED_CHARS = {\n '\"': '&quot;',\n \"'\": '&#x27;',\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n};\n/**\n *\n * @param str\n * @param attrMode\n */\nfunction htmlEscape(str, attrMode = false) {\n const searchValue = attrMode ? /[\"&]/g : /[\"'<>&]/g;\n return str.replace(searchValue, (char) => ESCAPED_CHARS[char]);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// Increment whenever the LWC template compiler changes\nconst LWC_VERSION = \"8.4.0\";\nconst LWC_VERSION_COMMENT = `LWC compiler v${LWC_VERSION}`;\nconst LWC_VERSION_COMMENT_REGEX = /\\/\\*LWC compiler v([\\d.]+)\\*\\/\\s*}/;\n\n/*\n * Copyright (c) 2024, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst IMPORTANT_FLAG = /\\s*!\\s*important\\s*$/i;\nconst DECLARATION_DELIMITER = /;(?![^(]*\\))/g;\nconst PROPERTY_DELIMITER = /:(.+)/s; // `/s` (dotAll) required to match styles across newlines, e.g. `color: \\n red;`\n// Borrowed from Vue template compiler.\n// https://github.com/vuejs/vue/blob/531371b818b0e31a989a06df43789728f23dc4e8/src/platforms/web/util/style.js#L5-L16\nfunction parseStyleText(cssText) {\n const styleMap = {};\n const declarations = cssText.split(DECLARATION_DELIMITER);\n for (const declaration of declarations) {\n if (declaration) {\n const [prop, value] = declaration.split(PROPERTY_DELIMITER);\n if (prop !== undefined && value !== undefined) {\n styleMap[prop.trim()] = value.trim();\n }\n }\n }\n return styleMap;\n}\nfunction normalizeStyleAttribute(style) {\n const styleMap = parseStyleText(style);\n const styles = Object.entries(styleMap).map(([key, value]) => {\n value = value.replace(IMPORTANT_FLAG, ' !important').trim();\n return `${key}: ${value};`;\n });\n return styles.join(' ');\n}\n\n/*\n * Copyright (c) 2024, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet trustedSignals;\nfunction setTrustedSignalSet(signals) {\n isFalse$1(trustedSignals, 'Trusted Signal Set is already set!');\n trustedSignals = signals;\n}\nfunction addTrustedSignal(signal) {\n // This should be a no-op when the trustedSignals set isn't set by runtime\n trustedSignals?.add(signal);\n}\nfunction isTrustedSignal(target) {\n if (!trustedSignals) {\n // The runtime didn't set a trustedSignals set\n // this check should only be performed for runtimes that care about filtering signals to track\n // our default behavior should be to track all signals\n return true;\n }\n return trustedSignals.has(target);\n}\n\nexport { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap, ArrayConcat, ArrayCopyWithin, ArrayEvery, ArrayFill, ArrayFilter, ArrayFind, ArrayFindIndex, ArrayFrom, ArrayIncludes, ArrayIndexOf, ArrayJoin, ArrayMap, ArrayPop, ArrayPush, ArrayReduce, ArrayReverse, ArrayShift, ArraySlice, ArraySome, ArraySort, ArraySplice, ArrayUnshift, HIGHEST_API_VERSION, HTML_NAMESPACE, ID_REFERENCING_ATTRIBUTES_SET, IMPORTANT_FLAG, KEY__LEGACY_SHADOW_TOKEN, KEY__LEGACY_SHADOW_TOKEN_PRIVATE, KEY__NATIVE_GET_ELEMENT_BY_ID, KEY__NATIVE_QUERY_SELECTOR_ALL, KEY__SCOPED_CSS, KEY__SHADOW_RESOLVER, KEY__SHADOW_RESOLVER_PRIVATE, KEY__SHADOW_STATIC, KEY__SHADOW_STATIC_PRIVATE, KEY__SHADOW_TOKEN, KEY__SHADOW_TOKEN_PRIVATE, KEY__SYNTHETIC_MODE, LOWEST_API_VERSION, LWC_VERSION, LWC_VERSION_COMMENT, LWC_VERSION_COMMENT_REGEX, MATHML_NAMESPACE, SVG_NAMESPACE, StringCharAt, StringCharCodeAt, StringFromCharCode, StringReplace, StringSlice, StringSplit, StringToLowerCase, StringTrim, XLINK_NAMESPACE, XML_NAMESPACE, addTrustedSignal, arrayEvery, assert, assign, create, defineProperties, defineProperty, entries, forEach, freeze, getAPIVersionFromNumber, getOwnPropertyDescriptor, getOwnPropertyDescriptors, getOwnPropertyNames, getOwnPropertySymbols, getPropertyDescriptor, getPrototypeOf, hasOwnProperty, htmlEscape, htmlPropertyToAttribute, isAPIFeatureEnabled, isAriaAttribute, isArray, isBoolean, isBooleanAttribute, isFalse, isFrozen, isFunction, isGlobalHtmlAttribute, isNull, isNumber, isObject, isString, isTrue, isTrustedSignal, isUndefined, isVoidElement, kebabCaseToCamelCase, keys, noop, normalizeStyleAttribute, parseStyleText, reservedKeywords, seal, setPrototypeOf, setTrustedSignalSet, toString };\n/** version: 8.4.0 */\n//# sourceMappingURL=index.js.map\n",null],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE;AAC/B,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,CAAC;AA6uBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC;AACnB,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,SAAS,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;AACpE,IAAI,cAAc,GAAG,OAAO,CAAC;AAC7B,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAM,EAAE;AAClC;AACA,IAAI,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAYD;;AC9yBA;;;;;AAKG;MAamB,eAAe,CAAA;AACjC,IAAA,WAAA,GAAA;AAQQ,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,GAAG,EAAE,CAAC;;;QAL3C,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC1B;AAMD,IAAA,SAAS,CAAC,QAAkB,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAC,CAAC;KACL;IAES,MAAM,GAAA;AACZ,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AACvC,YAAA,UAAU,EAAE,CAAC;SAChB;KACJ;AACJ;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { setTrustedSignalSet } from '@lwc/shared';
1
2
  export type OnUpdate = () => void;
2
3
  export type Unsubscribe = () => void;
3
4
  export interface Signal<T> {
@@ -5,6 +6,7 @@ export interface Signal<T> {
5
6
  subscribe(onUpdate: OnUpdate): Unsubscribe;
6
7
  }
7
8
  export declare abstract class SignalBaseClass<T> implements Signal<T> {
9
+ constructor();
8
10
  abstract get value(): T;
9
11
  private subscribers;
10
12
  subscribe(onUpdate: OnUpdate): () => void;
package/dist/index.js CHANGED
@@ -1,9 +1,60 @@
1
1
  /**
2
2
  * Copyright (c) 2024 Salesforce, Inc.
3
3
  */
4
+ /**
5
+ * Copyright (c) 2024 Salesforce, Inc.
6
+ */
7
+ /*
8
+ * Copyright (c) 2018, salesforce.com, inc.
9
+ * All rights reserved.
10
+ * SPDX-License-Identifier: MIT
11
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
12
+ */
13
+ /**
14
+ *
15
+ * @param value
16
+ * @param msg
17
+ */
18
+ /**
19
+ *
20
+ * @param value
21
+ * @param msg
22
+ */
23
+ function isFalse$1(value, msg) {
24
+ if (value) {
25
+ throw new Error(`Assert Violation: ${msg}`);
26
+ }
27
+ }
28
+
29
+ /*
30
+ * Copyright (c) 2024, salesforce.com, inc.
31
+ * All rights reserved.
32
+ * SPDX-License-Identifier: MIT
33
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
34
+ */
35
+ let trustedSignals;
36
+ function setTrustedSignalSet(signals) {
37
+ isFalse$1(trustedSignals, 'Trusted Signal Set is already set!');
38
+ trustedSignals = signals;
39
+ }
40
+ function addTrustedSignal(signal) {
41
+ // This should be a no-op when the trustedSignals set isn't set by runtime
42
+ trustedSignals?.add(signal);
43
+ }
44
+ /** version: 8.4.0 */
45
+
46
+ /*
47
+ * Copyright (c) 2023, salesforce.com, inc.
48
+ * All rights reserved.
49
+ * SPDX-License-Identifier: MIT
50
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
51
+ */
4
52
  class SignalBaseClass {
5
53
  constructor() {
6
54
  this.subscribers = new Set();
55
+ // Add the signal to the set of trusted signals
56
+ // that rendering engine can track
57
+ addTrustedSignal(this);
7
58
  }
8
59
  subscribe(onUpdate) {
9
60
  this.subscribers.add(onUpdate);
@@ -18,6 +69,6 @@ class SignalBaseClass {
18
69
  }
19
70
  }
20
71
 
21
- export { SignalBaseClass };
22
- /** version: 8.2.0 */
72
+ export { SignalBaseClass, setTrustedSignalSet };
73
+ /** version: 8.4.0 */
23
74
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAcsB,eAAe,CAAA;AAArC,IAAA,WAAA,GAAA;AAGY,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,GAAG,EAAE,CAAC;KAclD;AAZG,IAAA,SAAS,CAAC,QAAkB,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAC,CAAC;KACL;IAES,MAAM,GAAA;AACZ,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AACvC,YAAA,UAAU,EAAE,CAAC;SAChB;KACJ;AACJ;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../shared/dist/index.js","../src/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2024 Salesforce, Inc.\n */\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n *\n * @param value\n * @param msg\n */\nfunction invariant(value, msg) {\n if (!value) {\n throw new Error(`Invariant Violation: ${msg}`);\n }\n}\n/**\n *\n * @param value\n * @param msg\n */\nfunction isTrue$1(value, msg) {\n if (!value) {\n throw new Error(`Assert Violation: ${msg}`);\n }\n}\n/**\n *\n * @param value\n * @param msg\n */\nfunction isFalse$1(value, msg) {\n if (value) {\n throw new Error(`Assert Violation: ${msg}`);\n }\n}\n/**\n *\n * @param msg\n */\nfunction fail(msg) {\n throw new Error(msg);\n}\n\nvar assert = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fail: fail,\n invariant: invariant,\n isFalse: isFalse$1,\n isTrue: isTrue$1\n});\n\n/*\n * Copyright (c) 2024, Salesforce, Inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst { \n/** Detached {@linkcode Object.assign}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign MDN Reference}. */\nassign, \n/** Detached {@linkcode Object.create}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create MDN Reference}. */\ncreate, \n/** Detached {@linkcode Object.defineProperties}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties MDN Reference}. */\ndefineProperties, \n/** Detached {@linkcode Object.defineProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty MDN Reference}. */\ndefineProperty, \n/** Detached {@linkcode Object.entries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries MDN Reference}. */\nentries, \n/** Detached {@linkcode Object.freeze}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze MDN Reference}. */\nfreeze, \n/** Detached {@linkcode Object.getOwnPropertyDescriptor}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor MDN Reference}. */\ngetOwnPropertyDescriptor, \n/** Detached {@linkcode Object.getOwnPropertyDescriptors}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors MDN Reference}. */\ngetOwnPropertyDescriptors, \n/** Detached {@linkcode Object.getOwnPropertyNames}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames MDN Reference}. */\ngetOwnPropertyNames, \n/** Detached {@linkcode Object.getOwnPropertySymbols}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols MDN Reference}. */\ngetOwnPropertySymbols, \n/** Detached {@linkcode Object.getPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf MDN Reference}. */\ngetPrototypeOf, \n/** Detached {@linkcode Object.hasOwnProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty MDN Reference}. */\nhasOwnProperty, \n/** Detached {@linkcode Object.isFrozen}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen MDN Reference}. */\nisFrozen, \n/** Detached {@linkcode Object.keys}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys MDN Reference}. */\nkeys, \n/** Detached {@linkcode Object.seal}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal MDN Reference}. */\nseal, \n/** Detached {@linkcode Object.setPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf MDN Reference}. */\nsetPrototypeOf, } = Object;\nconst { \n/** Detached {@linkcode Array.isArray}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray MDN Reference}. */\nisArray, \n/** Detached {@linkcode Array.from}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from MDN Reference}. */\nfrom: ArrayFrom, } = Array;\n// For some reason, JSDoc don't get picked up for multiple renamed destructured constants (even\n// though it works fine for one, e.g. isArray), so comments for these are added to the export\n// statement, rather than this declaration.\nconst { concat: ArrayConcat, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, // Weird anomaly!\n } = Array.prototype;\n// The type of the return value of Array.prototype.every is `this is T[]`. However, once this\n// Array method is pulled out of the prototype, the function is now referencing `this` where\n// `this` is meaningless, resulting in a TypeScript compilation error.\n//\n// Exposing this helper function is the closest we can get to preserving the usage patterns\n// of Array.prototype methods used elsewhere in the codebase.\n/**\n * Wrapper for {@linkcode Array.prototype.every} that correctly preserves the type predicate in the\n * return value; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every MDN Reference}.\n * @param arr Array to test.\n * @param predicate A function to execute for each element of the array.\n * @returns Whether all elements in the array pass the test provided by the predicate.\n */\nfunction arrayEvery(arr, predicate) {\n return ArrayEvery.call(arr, predicate);\n}\n/** Detached {@linkcode String.fromCharCode}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode MDN Reference}. */\nconst { fromCharCode: StringFromCharCode } = String;\n// No JSDocs here - see comment for Array.prototype\nconst { charAt: StringCharAt, charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, trim: StringTrim, } = String.prototype;\n/**\n * Determines whether the argument is `undefined`.\n * @param obj Value to test\n * @returns `true` if the value is `undefined`.\n */\nfunction isUndefined(obj) {\n return obj === undefined;\n}\n/**\n * Determines whether the argument is `null`.\n * @param obj Value to test\n * @returns `true` if the value is `null`.\n */\nfunction isNull(obj) {\n return obj === null;\n}\n/**\n * Determines whether the argument is `true`.\n * @param obj Value to test\n * @returns `true` if the value is `true`.\n */\nfunction isTrue(obj) {\n return obj === true;\n}\n/**\n * Determines whether the argument is `false`.\n * @param obj Value to test\n * @returns `true` if the value is `false`.\n */\nfunction isFalse(obj) {\n return obj === false;\n}\n/**\n * Determines whether the argument is a boolean.\n * @param obj Value to test\n * @returns `true` if the value is a boolean.\n */\nfunction isBoolean(obj) {\n return typeof obj === 'boolean';\n}\n/**\n * Determines whether the argument is a function.\n * @param obj Value to test\n * @returns `true` if the value is a function.\n */\n// Replacing `Function` with a narrower type that works for all our use cases is tricky...\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\n/**\n * Determines whether the argument is an object or null.\n * @param obj Value to test\n * @returns `true` if the value is an object or null.\n */\nfunction isObject(obj) {\n return typeof obj === 'object';\n}\n/**\n * Determines whether the argument is a string.\n * @param obj Value to test\n * @returns `true` if the value is a string.\n */\nfunction isString(obj) {\n return typeof obj === 'string';\n}\n/**\n * Determines whether the argument is a number.\n * @param obj Value to test\n * @returns `true` if the value is a number.\n */\nfunction isNumber(obj) {\n return typeof obj === 'number';\n}\n/** Does nothing! 🚀 */\nfunction noop() {\n /* Do nothing */\n}\nconst OtS = {}.toString;\n/**\n * Converts the argument to a string, safely accounting for objects with \"null\" prototype.\n * Note that `toString(null)` returns `\"[object Null]\"` rather than `\"null\"`.\n * @param obj Value to convert to a string.\n * @returns String representation of the value.\n */\nfunction toString(obj) {\n if (obj?.toString) {\n // Arrays might hold objects with \"null\" prototype So using\n // Array.prototype.toString directly will cause an error Iterate through\n // all the items and handle individually.\n if (isArray(obj)) {\n // This behavior is slightly different from Array#toString:\n // 1. Array#toString calls `this.join`, rather than Array#join\n // Ex: arr = []; arr.join = () => 1; arr.toString() === 1; toString(arr) === ''\n // 2. Array#toString delegates to Object#toString if `this.join` is not a function\n // Ex: arr = []; arr.join = 'no'; arr.toString() === '[object Array]; toString(arr) = ''\n // 3. Array#toString converts null/undefined to ''\n // Ex: arr = [null, undefined]; arr.toString() === ','; toString(arr) === '[object Null],undefined'\n // 4. Array#toString converts recursive references to arrays to ''\n // Ex: arr = [1]; arr.push(arr, 2); arr.toString() === '1,,2'; toString(arr) throws\n // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString\n return ArrayJoin.call(ArrayMap.call(obj, toString), ',');\n }\n return obj.toString();\n }\n else if (typeof obj === 'object') {\n // This catches null and returns \"[object Null]\". Weird, but kept for backwards compatibility.\n return OtS.call(obj);\n }\n else {\n return String(obj);\n }\n}\n/**\n * Gets the property descriptor for the given object and property key. Similar to\n * {@linkcode Object.getOwnPropertyDescriptor}, but looks up the prototype chain.\n * @param o Value to get the property descriptor for\n * @param p Property key to get the descriptor for\n * @returns The property descriptor for the given object and property key.\n */\nfunction getPropertyDescriptor(o, p) {\n do {\n const d = getOwnPropertyDescriptor(o, p);\n if (!isUndefined(d)) {\n return d;\n }\n o = getPrototypeOf(o);\n } while (o !== null);\n}\n\n/*\n * Copyright (c) 2023, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// These must be updated when the enum is updated.\n// It's a bit annoying to do have to do this manually, but this makes the file tree-shakeable,\n// passing the `verify-treeshakeable.js` test.\nconst allVersions = [\n 58 /* APIVersion.V58_244_SUMMER_23 */,\n 59 /* APIVersion.V59_246_WINTER_24 */,\n 60 /* APIVersion.V60_248_SPRING_24 */,\n 61 /* APIVersion.V61_250_SUMMER_24 */,\n 62 /* APIVersion.V62_252_WINTER_25 */,\n 63 /* APIVersion.V63_254_SPRING_25 */,\n];\nconst allVersionsSet = /*@__PURE__@*/ new Set(allVersions);\nconst LOWEST_API_VERSION = allVersions[0];\nconst HIGHEST_API_VERSION = allVersions[allVersions.length - 1];\n/**\n *\n * @param version\n */\nfunction getAPIVersionFromNumber(version) {\n if (!isNumber(version)) {\n // if version is unspecified, default to latest\n return HIGHEST_API_VERSION;\n }\n if (allVersionsSet.has(version)) {\n return version;\n }\n if (version < LOWEST_API_VERSION) {\n return LOWEST_API_VERSION;\n }\n // If it's a number, and it's within the bounds of our known versions, then we should find the\n // highest version lower than the requested number.\n // For instance, if we know about versions 1, 2, 5, and 6, and the user requests 3, then we should return 2.\n for (let i = 1; i < allVersions.length; i++) {\n if (allVersions[i] > version) {\n return allVersions[i - 1];\n }\n }\n // version > HIGHEST_API_VERSION, so fall back to highest\n return HIGHEST_API_VERSION;\n}\n/**\n *\n * @param apiVersionFeature\n * @param apiVersion\n */\nfunction isAPIFeatureEnabled(apiVersionFeature, apiVersion) {\n switch (apiVersionFeature) {\n case 0 /* APIFeature.LOWERCASE_SCOPE_TOKENS */:\n case 1 /* APIFeature.TREAT_ALL_PARSE5_ERRORS_AS_ERRORS */:\n return apiVersion >= 59 /* APIVersion.V59_246_WINTER_24 */;\n case 3 /* APIFeature.DISABLE_OBJECT_REST_SPREAD_TRANSFORMATION */:\n case 4 /* APIFeature.SKIP_UNNECESSARY_REGISTER_DECORATORS */:\n case 5 /* APIFeature.USE_COMMENTS_FOR_FRAGMENT_BOOKENDS */:\n case 2 /* APIFeature.USE_FRAGMENTS_FOR_LIGHT_DOM_SLOTS */:\n return apiVersion >= 60 /* APIVersion.V60_248_SPRING_24 */;\n case 7 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */:\n case 6 /* APIFeature.USE_LIGHT_DOM_SLOT_FORWARDING */:\n return apiVersion >= 61 /* APIVersion.V61_250_SUMMER_24 */;\n case 8 /* APIFeature.ENABLE_THIS_DOT_HOST_ELEMENT */:\n case 9 /* APIFeature.ENABLE_THIS_DOT_STYLE */:\n case 10 /* APIFeature.TEMPLATE_CLASS_NAME_OBJECT_BINDING */:\n return apiVersion >= 62 /* APIVersion.V62_252_WINTER_25 */;\n case 11 /* APIFeature.ENABLE_COMPLEX_TEMPLATE_EXPRESSIONS */:\n return apiVersion >= 63 /* APIVersion.V63_254_SPRING_25 */;\n }\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n/**\n * According to the following list, there are 48 aria attributes of which two (ariaDropEffect and\n * ariaGrabbed) are deprecated:\n * https://www.w3.org/TR/wai-aria-1.1/#x6-6-definitions-of-states-and-properties-all-aria-attributes\n *\n * The above list of 46 aria attributes is consistent with the following resources:\n * https://github.com/w3c/aria/pull/708/files#diff-eacf331f0ffc35d4b482f1d15a887d3bR11060\n * https://wicg.github.io/aom/spec/aria-reflection.html\n *\n * NOTE: If you update this list, please update test files that implicitly reference this list!\n * Searching the codebase for `aria-flowto` and `ariaFlowTo` should be good enough to find all usages.\n */\nconst AriaPropertyNames = [\n 'ariaActiveDescendant',\n 'ariaAtomic',\n 'ariaAutoComplete',\n 'ariaBusy',\n 'ariaChecked',\n 'ariaColCount',\n 'ariaColIndex',\n 'ariaColIndexText',\n 'ariaColSpan',\n 'ariaControls',\n 'ariaCurrent',\n 'ariaDescribedBy',\n 'ariaDescription',\n 'ariaDetails',\n 'ariaDisabled',\n 'ariaErrorMessage',\n 'ariaExpanded',\n 'ariaFlowTo',\n 'ariaHasPopup',\n 'ariaHidden',\n 'ariaInvalid',\n 'ariaKeyShortcuts',\n 'ariaLabel',\n 'ariaLabelledBy',\n 'ariaLevel',\n 'ariaLive',\n 'ariaModal',\n 'ariaMultiLine',\n 'ariaMultiSelectable',\n 'ariaOrientation',\n 'ariaOwns',\n 'ariaPlaceholder',\n 'ariaPosInSet',\n 'ariaPressed',\n 'ariaReadOnly',\n 'ariaRelevant',\n 'ariaRequired',\n 'ariaRoleDescription',\n 'ariaRowCount',\n 'ariaRowIndex',\n 'ariaRowIndexText',\n 'ariaRowSpan',\n 'ariaSelected',\n 'ariaSetSize',\n 'ariaSort',\n 'ariaValueMax',\n 'ariaValueMin',\n 'ariaValueNow',\n 'ariaValueText',\n 'ariaBrailleLabel',\n 'ariaBrailleRoleDescription',\n 'role',\n];\nconst { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap } = /*@__PURE__*/ (() => {\n const AriaAttrNameToPropNameMap = create(null);\n const AriaPropNameToAttrNameMap = create(null);\n // Synthetic creation of all AOM property descriptors for Custom Elements\n forEach.call(AriaPropertyNames, (propName) => {\n const attrName = StringToLowerCase.call(StringReplace.call(propName, /^aria/, () => 'aria-'));\n AriaAttrNameToPropNameMap[attrName] = propName;\n AriaPropNameToAttrNameMap[propName] = attrName;\n });\n return { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap };\n})();\n/**\n *\n * @param attrName\n */\nfunction isAriaAttribute(attrName) {\n return attrName in AriaAttrNameToPropNameMap;\n}\n// These attributes take either an ID or a list of IDs as values.\n// This includes aria-* attributes as well as the special non-ARIA \"for\" attribute\nconst ID_REFERENCING_ATTRIBUTES_SET = /*@__PURE__*/ new Set([\n 'aria-activedescendant',\n 'aria-controls',\n 'aria-describedby',\n 'aria-details',\n 'aria-errormessage',\n 'aria-flowto',\n 'aria-labelledby',\n 'aria-owns',\n 'for',\n]);\n\n/*\n * Copyright (c) 2024, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst reservedKeywords = new Set([\n 'NaN',\n 'arguments',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'finally',\n 'for',\n 'function',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'interface',\n 'let',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'static',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'undefined',\n 'var',\n 'void',\n 'while',\n 'with',\n 'yield',\n]);\n\n/*\n * Copyright (c) 2023, Salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst KEY__SHADOW_RESOLVER = '$shadowResolver$';\nconst KEY__SHADOW_RESOLVER_PRIVATE = '$$ShadowResolverKey$$';\nconst KEY__SHADOW_STATIC = '$shadowStaticNode$';\nconst KEY__SHADOW_STATIC_PRIVATE = '$shadowStaticNodeKey$';\nconst KEY__SHADOW_TOKEN = '$shadowToken$';\nconst KEY__SHADOW_TOKEN_PRIVATE = '$$ShadowTokenKey$$';\n// TODO [#3733]: remove support for legacy scope tokens\nconst KEY__LEGACY_SHADOW_TOKEN = '$legacyShadowToken$';\nconst KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';\nconst KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';\nconst KEY__SCOPED_CSS = '$scoped$';\nconst KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';\nconst KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';\n\n/*\n * Copyright (c) 2022, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nconst XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nconst XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// Void elements are elements that self-close even without an explicit solidus (slash),\n// e.g. `</tagName>` or `<tagName />`. For instance, `<meta>` closes on its own; no need for a slash.\n// These only come from HTML; there are no void elements in the SVG or MathML namespaces.\n// See: https://html.spec.whatwg.org/multipage/syntax.html#syntax-tags\nconst VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'source',\n 'track',\n 'wbr',\n];\n// These elements have been deprecated but preserving their usage for backwards compatibility\n// until we can officially deprecate them from LWC.\n// See: https://html.spec.whatwg.org/multipage/obsolete.html#obsolete-but-conforming-features\nconst DEPRECATED_VOID_ELEMENTS = ['param', 'keygen', 'menuitem'];\nconst VOID_ELEMENTS_SET = /*@__PURE__*/ new Set([...VOID_ELEMENTS, ...DEPRECATED_VOID_ELEMENTS]);\n/**\n *\n * @param name\n * @param namespace\n */\nfunction isVoidElement(name, namespace) {\n return namespace === HTML_NAMESPACE && VOID_ELEMENTS_SET.has(name.toLowerCase());\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst CAMEL_REGEX = /-([a-z])/g;\n/**\n * Maps boolean attribute name to supported tags: 'boolean attr name' => Set of allowed tag names\n * that supports them.\n */\nconst BOOLEAN_ATTRIBUTES = /*@__PURE__@*/ new Map([\n ['autofocus', /*@__PURE__@*/ new Set(['button', 'input', 'keygen', 'select', 'textarea'])],\n ['autoplay', /*@__PURE__@*/ new Set(['audio', 'video'])],\n ['checked', /*@__PURE__@*/ new Set(['command', 'input'])],\n [\n 'disabled',\n /*@__PURE__@*/ new Set([\n 'button',\n 'command',\n 'fieldset',\n 'input',\n 'keygen',\n 'optgroup',\n 'select',\n 'textarea',\n ]),\n ],\n ['formnovalidate', /*@__PURE__@*/ new Set(['button'])], // button[type=submit]\n ['hidden', /*@__PURE__@*/ new Set()], // Global attribute\n ['loop', /*@__PURE__@*/ new Set(['audio', 'bgsound', 'marquee', 'video'])],\n ['multiple', /*@__PURE__@*/ new Set(['input', 'select'])],\n ['muted', /*@__PURE__@*/ new Set(['audio', 'video'])],\n ['novalidate', /*@__PURE__@*/ new Set(['form'])],\n ['open', /*@__PURE__@*/ new Set(['details'])],\n ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])],\n ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])],\n ['required', /*@__PURE__@*/ new Set(['input', 'select', 'textarea'])],\n ['reversed', /*@__PURE__@*/ new Set(['ol'])],\n ['selected', /*@__PURE__@*/ new Set(['option'])],\n]);\n/**\n *\n * @param attrName\n * @param tagName\n */\nfunction isBooleanAttribute(attrName, tagName) {\n const allowedTagNames = BOOLEAN_ATTRIBUTES.get(attrName);\n return (allowedTagNames !== undefined &&\n (allowedTagNames.size === 0 || allowedTagNames.has(tagName)));\n}\n// This list is based on https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes\nconst GLOBAL_ATTRIBUTE = /*@__PURE__*/ new Set([\n 'accesskey',\n 'autocapitalize',\n 'autofocus',\n 'class',\n 'contenteditable',\n 'contextmenu',\n 'dir',\n 'draggable',\n 'enterkeyhint',\n 'exportparts',\n 'hidden',\n 'id',\n 'inputmode',\n 'is',\n 'itemid',\n 'itemprop',\n 'itemref',\n 'itemscope',\n 'itemtype',\n 'lang',\n 'nonce',\n 'part',\n 'slot',\n 'spellcheck',\n 'style',\n 'tabindex',\n 'title',\n 'translate',\n]);\n/**\n *\n * @param attrName\n */\nfunction isGlobalHtmlAttribute(attrName) {\n return GLOBAL_ATTRIBUTE.has(attrName);\n}\n// These are HTML standard prop/attribute IDL mappings, but are not predictable based on camel/kebab-case conversion\nconst SPECIAL_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map([\n ['accessKey', 'accesskey'],\n ['readOnly', 'readonly'],\n ['tabIndex', 'tabindex'],\n ['bgColor', 'bgcolor'],\n ['colSpan', 'colspan'],\n ['rowSpan', 'rowspan'],\n ['contentEditable', 'contenteditable'],\n ['crossOrigin', 'crossorigin'],\n ['dateTime', 'datetime'],\n ['formAction', 'formaction'],\n ['isMap', 'ismap'],\n ['maxLength', 'maxlength'],\n ['minLength', 'minlength'],\n ['noValidate', 'novalidate'],\n ['useMap', 'usemap'],\n ['htmlFor', 'for'],\n]);\n/**\n * Map associating previously transformed HTML property into HTML attribute.\n */\nconst CACHED_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map();\n/**\n *\n * @param propName\n */\nfunction htmlPropertyToAttribute(propName) {\n const ariaAttributeName = AriaPropNameToAttrNameMap[propName];\n if (!isUndefined(ariaAttributeName)) {\n return ariaAttributeName;\n }\n const specialAttributeName = SPECIAL_PROPERTY_ATTRIBUTE_MAPPING.get(propName);\n if (!isUndefined(specialAttributeName)) {\n return specialAttributeName;\n }\n const cachedAttributeName = CACHED_PROPERTY_ATTRIBUTE_MAPPING.get(propName);\n if (!isUndefined(cachedAttributeName)) {\n return cachedAttributeName;\n }\n let attributeName = '';\n for (let i = 0, len = propName.length; i < len; i++) {\n const code = StringCharCodeAt.call(propName, i);\n if (code >= 65 && // \"A\"\n code <= 90 // \"Z\"\n ) {\n attributeName += '-' + StringFromCharCode(code + 32);\n }\n else {\n attributeName += StringFromCharCode(code);\n }\n }\n CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);\n return attributeName;\n}\n/**\n * Map associating previously transformed kabab-case attributes into camel-case props.\n */\nconst CACHED_KEBAB_CAMEL_MAPPING = /*@__PURE__@*/ new Map();\n/**\n *\n * @param attrName\n */\nfunction kebabCaseToCamelCase(attrName) {\n let result = CACHED_KEBAB_CAMEL_MAPPING.get(attrName);\n if (isUndefined(result)) {\n result = StringReplace.call(attrName, CAMEL_REGEX, (g) => g[1].toUpperCase());\n CACHED_KEBAB_CAMEL_MAPPING.set(attrName, result);\n }\n return result;\n}\n\n/*\n * Copyright (c) 2020, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst ESCAPED_CHARS = {\n '\"': '&quot;',\n \"'\": '&#x27;',\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n};\n/**\n *\n * @param str\n * @param attrMode\n */\nfunction htmlEscape(str, attrMode = false) {\n const searchValue = attrMode ? /[\"&]/g : /[\"'<>&]/g;\n return str.replace(searchValue, (char) => ESCAPED_CHARS[char]);\n}\n\n/*\n * Copyright (c) 2018, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\n// Increment whenever the LWC template compiler changes\nconst LWC_VERSION = \"8.4.0\";\nconst LWC_VERSION_COMMENT = `LWC compiler v${LWC_VERSION}`;\nconst LWC_VERSION_COMMENT_REGEX = /\\/\\*LWC compiler v([\\d.]+)\\*\\/\\s*}/;\n\n/*\n * Copyright (c) 2024, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nconst IMPORTANT_FLAG = /\\s*!\\s*important\\s*$/i;\nconst DECLARATION_DELIMITER = /;(?![^(]*\\))/g;\nconst PROPERTY_DELIMITER = /:(.+)/s; // `/s` (dotAll) required to match styles across newlines, e.g. `color: \\n red;`\n// Borrowed from Vue template compiler.\n// https://github.com/vuejs/vue/blob/531371b818b0e31a989a06df43789728f23dc4e8/src/platforms/web/util/style.js#L5-L16\nfunction parseStyleText(cssText) {\n const styleMap = {};\n const declarations = cssText.split(DECLARATION_DELIMITER);\n for (const declaration of declarations) {\n if (declaration) {\n const [prop, value] = declaration.split(PROPERTY_DELIMITER);\n if (prop !== undefined && value !== undefined) {\n styleMap[prop.trim()] = value.trim();\n }\n }\n }\n return styleMap;\n}\nfunction normalizeStyleAttribute(style) {\n const styleMap = parseStyleText(style);\n const styles = Object.entries(styleMap).map(([key, value]) => {\n value = value.replace(IMPORTANT_FLAG, ' !important').trim();\n return `${key}: ${value};`;\n });\n return styles.join(' ');\n}\n\n/*\n * Copyright (c) 2024, salesforce.com, inc.\n * All rights reserved.\n * SPDX-License-Identifier: MIT\n * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT\n */\nlet trustedSignals;\nfunction setTrustedSignalSet(signals) {\n isFalse$1(trustedSignals, 'Trusted Signal Set is already set!');\n trustedSignals = signals;\n}\nfunction addTrustedSignal(signal) {\n // This should be a no-op when the trustedSignals set isn't set by runtime\n trustedSignals?.add(signal);\n}\nfunction isTrustedSignal(target) {\n if (!trustedSignals) {\n // The runtime didn't set a trustedSignals set\n // this check should only be performed for runtimes that care about filtering signals to track\n // our default behavior should be to track all signals\n return true;\n }\n return trustedSignals.has(target);\n}\n\nexport { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap, ArrayConcat, ArrayCopyWithin, ArrayEvery, ArrayFill, ArrayFilter, ArrayFind, ArrayFindIndex, ArrayFrom, ArrayIncludes, ArrayIndexOf, ArrayJoin, ArrayMap, ArrayPop, ArrayPush, ArrayReduce, ArrayReverse, ArrayShift, ArraySlice, ArraySome, ArraySort, ArraySplice, ArrayUnshift, HIGHEST_API_VERSION, HTML_NAMESPACE, ID_REFERENCING_ATTRIBUTES_SET, IMPORTANT_FLAG, KEY__LEGACY_SHADOW_TOKEN, KEY__LEGACY_SHADOW_TOKEN_PRIVATE, KEY__NATIVE_GET_ELEMENT_BY_ID, KEY__NATIVE_QUERY_SELECTOR_ALL, KEY__SCOPED_CSS, KEY__SHADOW_RESOLVER, KEY__SHADOW_RESOLVER_PRIVATE, KEY__SHADOW_STATIC, KEY__SHADOW_STATIC_PRIVATE, KEY__SHADOW_TOKEN, KEY__SHADOW_TOKEN_PRIVATE, KEY__SYNTHETIC_MODE, LOWEST_API_VERSION, LWC_VERSION, LWC_VERSION_COMMENT, LWC_VERSION_COMMENT_REGEX, MATHML_NAMESPACE, SVG_NAMESPACE, StringCharAt, StringCharCodeAt, StringFromCharCode, StringReplace, StringSlice, StringSplit, StringToLowerCase, StringTrim, XLINK_NAMESPACE, XML_NAMESPACE, addTrustedSignal, arrayEvery, assert, assign, create, defineProperties, defineProperty, entries, forEach, freeze, getAPIVersionFromNumber, getOwnPropertyDescriptor, getOwnPropertyDescriptors, getOwnPropertyNames, getOwnPropertySymbols, getPropertyDescriptor, getPrototypeOf, hasOwnProperty, htmlEscape, htmlPropertyToAttribute, isAPIFeatureEnabled, isAriaAttribute, isArray, isBoolean, isBooleanAttribute, isFalse, isFrozen, isFunction, isGlobalHtmlAttribute, isNull, isNumber, isObject, isString, isTrue, isTrustedSignal, isUndefined, isVoidElement, kebabCaseToCamelCase, keys, noop, normalizeStyleAttribute, parseStyleText, reservedKeywords, seal, setPrototypeOf, setTrustedSignalSet, toString };\n/** version: 8.4.0 */\n//# sourceMappingURL=index.js.map\n",null],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE;AAC/B,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,CAAC;AA6uBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC;AACnB,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,SAAS,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;AACpE,IAAI,cAAc,GAAG,OAAO,CAAC;AAC7B,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAM,EAAE;AAClC;AACA,IAAI,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAYD;;AC9yBA;;;;;AAKG;MAamB,eAAe,CAAA;AACjC,IAAA,WAAA,GAAA;AAQQ,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,GAAG,EAAE,CAAC;;;QAL3C,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC1B;AAMD,IAAA,SAAS,CAAC,QAAkB,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAC,CAAC;KACL;IAES,MAAM,GAAA;AACZ,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AACvC,YAAA,UAAU,EAAE,CAAC;SAChB;KACJ;AACJ;;;;;;;"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
5
5
  ],
6
6
  "name": "@lwc/signals",
7
- "version": "8.2.0",
7
+ "version": "8.4.0",
8
8
  "description": "Provides the interface to interact with reactivity from outside the framework",
9
9
  "keywords": [
10
10
  "lwc"
@@ -40,5 +40,8 @@
40
40
  ]
41
41
  }
42
42
  }
43
+ },
44
+ "devDependencies": {
45
+ "@lwc/shared": "8.4.0"
43
46
  }
44
47
  }