@instructure/ui-utils 11.7.4-snapshot-136 → 11.7.4-snapshot-145

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,9 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [11.7.4-snapshot-136](https://github.com/instructure/instructure-ui/compare/v11.7.3...v11.7.4-snapshot-136) (2026-07-24)
6
+ ## [11.7.4-snapshot-145](https://github.com/instructure/instructure-ui/compare/v11.7.3...v11.7.4-snapshot-145) (2026-07-24)
7
7
 
8
- **Note:** Version bump only for package @instructure/ui-utils
8
+
9
+ ### Bug Fixes
10
+
11
+ * **many:** do not allow javascript: and data: hrefs ([4a0ac03](https://github.com/instructure/instructure-ui/commit/4a0ac038c6a4102646e04d27c1c3251f97367822))
12
+ * **ui-utils,ui-svg-images:** isolate DOMPurify config from the shared singleton ([60e71f3](https://github.com/instructure/instructure-ui/commit/60e71f36842a01ed874f7a89b39d7d03afcc52ae))
13
+ * **ui-utils:** expand safeHref scheme allowlist ([5869dae](https://github.com/instructure/instructure-ui/commit/5869daef3a8c3baeafe664efb3f1915c5baefb41))
9
14
 
10
15
 
11
16
 
package/es/index.js CHANGED
@@ -32,6 +32,8 @@ export { mergeDeep } from './mergeDeep.js';
32
32
  export { ms } from './ms.js';
33
33
  export { parseUnit } from './parseUnit.js';
34
34
  export { px } from './px.js';
35
+ export { safeHref } from './safeHref.js';
36
+ export { safeLinkProps } from './safeLinkProps.js';
35
37
  export { shallowEqual } from './shallowEqual.js';
36
38
  export { within } from './within.js';
37
39
  export { camelize } from './camelize.js';
package/es/mergeDeep.js CHANGED
@@ -50,6 +50,12 @@ function mergeSourceIntoTarget(target, source) {
50
50
  ...target
51
51
  };
52
52
  keys.forEach(key => {
53
+ // Block prototype-pollution payloads. These keys can arrive via
54
+ // JSON.parse or other deserialization in consumer-supplied
55
+ // themeOverride props.
56
+ if (key === '__proto__' || key === 'prototype' || key === 'constructor') {
57
+ return;
58
+ }
53
59
  if (isObject(target[key]) && isObject(source[key])) {
54
60
  merged[key] = mergeSourceIntoTarget(target[key], source[key]);
55
61
  } else if (isArray(source[key]) && isArray(target[key])) {
package/es/safeHref.js ADDED
@@ -0,0 +1,109 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import createDOMPurify from 'dompurify';
26
+
27
+ // Use a dedicated DOMPurify instance instead of the shared singleton so our
28
+ // HTML profile never leaks onto the global instance other code relies on, and
29
+ // our validation stays correct even if someone else mutates the singleton via
30
+ // setConfig(). `window` is guarded for SSR; passing `undefined` yields an
31
+ // unsupported instance, in which case we fall back to `ssrSafeHref`.
32
+ const purify = createDOMPurify(typeof window === 'undefined' ? undefined : window);
33
+ if (purify.isSupported) {
34
+ purify.setConfig({
35
+ USE_PROFILES: {
36
+ html: true
37
+ }
38
+ });
39
+ }
40
+ const SAFE_SCHEMES = ['http:', 'https:', 'ftp:', 'ftps:', 'mailto:', 'tel:', 'sms:', 'callto:', 'cid:', 'xmpp:', 'matrix:', 'webcal:', 'feed:', 'geo:'];
41
+
42
+ /**
43
+ * Remove all control characters (e.g. line break, tab, escape) and trim the
44
+ * string
45
+ */
46
+ function normalizeValue(value) {
47
+ // eslint-disable-next-line no-control-regex
48
+ return value.replace(/[\u0000-\u001F\u007F]/g, '').trim();
49
+ }
50
+
51
+ // Extract the scheme from a URL-ish value, or `null` if it has none.
52
+ function extractScheme(value) {
53
+ const schemeMatch = normalizeValue(value).match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
54
+ return schemeMatch ? schemeMatch[1].toLowerCase() + ':' : null;
55
+ }
56
+
57
+ // (tag, attr) pairs that may legitimately carry a `data:` URI — matches
58
+ // DOMPurify's defaults so the SSR fallback doesn't reject inline images that
59
+ // the browser path would allow.
60
+ const DATA_URI_TAGS = [['img', 'src'], ['source', 'src'], ['source', 'srcset'], ['video', 'poster']];
61
+
62
+ // SSR fallback: DOMPurify only operates when a DOM is available. When it
63
+ // isn't, validate the scheme directly so server-rendered components don't
64
+ // silently drop every href.
65
+ function ssrSafeHref(value, tag, attr) {
66
+ const normalized = normalizeValue(value);
67
+ if (normalized === '') return true;
68
+ const firstChar = normalized.charAt(0);
69
+ if (firstChar === '#' || firstChar === '/' || firstChar === '?') return true;
70
+ const scheme = extractScheme(normalized);
71
+ if (!scheme) return true;
72
+ if (SAFE_SCHEMES.includes(scheme)) return true;
73
+ if (scheme === 'data:' && DATA_URI_TAGS.some(([t, a]) => t === tag && a === attr)) {
74
+ return true;
75
+ }
76
+ return false;
77
+ }
78
+
79
+ /**
80
+ * ---
81
+ * category: utilities/utils
82
+ * ---
83
+ * Validates an attribute value and returns it only when the value is safe to
84
+ * render. Delegates to `DOMPurify.isValidAttribute` in the browser; falls back
85
+ * to a minimal scheme allow-list under SSR.
86
+ *
87
+ * @module safeHref
88
+ *
89
+ * @param href The value to validate
90
+ * @param tag Element name the value will be applied to (e.g. `'a'`, `'img'`)
91
+ * @param attr Attribute name (e.g. `'href'`, `'src'`)
92
+ * @returns The original value if safe, `undefined` if blocked
93
+ */
94
+ function safeHref(href, tag, attr) {
95
+ if (href == null || typeof href === 'undefined') return undefined;
96
+ const value = String(href);
97
+
98
+ // Pre-check our scheme allowlist before DOMPurify, since DOMPurify's default
99
+ // ALLOWED_URI_REGEXP rejects schemes like `webcal:` that we treat as safe.
100
+ const scheme = extractScheme(value);
101
+ if (scheme && SAFE_SCHEMES.includes(scheme)) return href;
102
+ const isSafe = purify.isSupported ? purify.isValidAttribute(tag, attr, value) : ssrSafeHref(value, tag, attr);
103
+ if (!isSafe) {
104
+ return undefined;
105
+ }
106
+ return href;
107
+ }
108
+ export default safeHref;
109
+ export { safeHref };
@@ -0,0 +1,54 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import { safeHref } from './safeHref.js';
26
+
27
+ /**
28
+ * ---
29
+ * category: utilities/utils
30
+ * ---
31
+ * Centralizes the security-related normalization for link-rendering
32
+ * components: validates `href`, and supplies a safe default `rel` when
33
+ * `target="_blank"` is in use.
34
+ *
35
+ * @module safeLinkProps
36
+ */
37
+
38
+ function safeLinkProps(input) {
39
+ const {
40
+ target,
41
+ rel,
42
+ tag,
43
+ attr
44
+ } = input;
45
+ const href = safeHref(input.href, tag, attr);
46
+ const finalRel = target === '_blank' && rel == null ? 'noopener noreferrer' : rel;
47
+ return {
48
+ href,
49
+ target,
50
+ rel: finalRel
51
+ };
52
+ }
53
+ export default safeLinkProps;
54
+ export { safeLinkProps };
package/lib/index.js CHANGED
@@ -141,6 +141,18 @@ Object.defineProperty(exports, "px", {
141
141
  return _px.px;
142
142
  }
143
143
  });
144
+ Object.defineProperty(exports, "safeHref", {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _safeHref.safeHref;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "safeLinkProps", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _safeLinkProps.safeLinkProps;
154
+ }
155
+ });
144
156
  Object.defineProperty(exports, "shallowEqual", {
145
157
  enumerable: true,
146
158
  get: function () {
@@ -164,6 +176,8 @@ var _mergeDeep = require("./mergeDeep.js");
164
176
  var _ms = require("./ms.js");
165
177
  var _parseUnit = require("./parseUnit.js");
166
178
  var _px = require("./px.js");
179
+ var _safeHref = require("./safeHref.js");
180
+ var _safeLinkProps = require("./safeLinkProps.js");
167
181
  var _shallowEqual = require("./shallowEqual.js");
168
182
  var _within = require("./within.js");
169
183
  var _camelize = require("./camelize.js");
package/lib/mergeDeep.js CHANGED
@@ -57,6 +57,12 @@ function mergeSourceIntoTarget(target, source) {
57
57
  ...target
58
58
  };
59
59
  keys.forEach(key => {
60
+ // Block prototype-pollution payloads. These keys can arrive via
61
+ // JSON.parse or other deserialization in consumer-supplied
62
+ // themeOverride props.
63
+ if (key === '__proto__' || key === 'prototype' || key === 'constructor') {
64
+ return;
65
+ }
60
66
  if (isObject(target[key]) && isObject(source[key])) {
61
67
  merged[key] = mergeSourceIntoTarget(target[key], source[key]);
62
68
  } else if (isArray(source[key]) && isArray(target[key])) {
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ exports.safeHref = safeHref;
9
+ var _dompurify = _interopRequireDefault(require("dompurify"));
10
+ /*
11
+ * The MIT License (MIT)
12
+ *
13
+ * Copyright (c) 2015 - present Instructure, Inc.
14
+ *
15
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ * of this software and associated documentation files (the "Software"), to deal
17
+ * in the Software without restriction, including without limitation the rights
18
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ * copies of the Software, and to permit persons to whom the Software is
20
+ * furnished to do so, subject to the following conditions:
21
+ *
22
+ * The above copyright notice and this permission notice shall be included in all
23
+ * copies or substantial portions of the Software.
24
+ *
25
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ * SOFTWARE.
32
+ */
33
+
34
+ // Use a dedicated DOMPurify instance instead of the shared singleton so our
35
+ // HTML profile never leaks onto the global instance other code relies on, and
36
+ // our validation stays correct even if someone else mutates the singleton via
37
+ // setConfig(). `window` is guarded for SSR; passing `undefined` yields an
38
+ // unsupported instance, in which case we fall back to `ssrSafeHref`.
39
+ const purify = (0, _dompurify.default)(typeof window === 'undefined' ? undefined : window);
40
+ if (purify.isSupported) {
41
+ purify.setConfig({
42
+ USE_PROFILES: {
43
+ html: true
44
+ }
45
+ });
46
+ }
47
+ const SAFE_SCHEMES = ['http:', 'https:', 'ftp:', 'ftps:', 'mailto:', 'tel:', 'sms:', 'callto:', 'cid:', 'xmpp:', 'matrix:', 'webcal:', 'feed:', 'geo:'];
48
+
49
+ /**
50
+ * Remove all control characters (e.g. line break, tab, escape) and trim the
51
+ * string
52
+ */
53
+ function normalizeValue(value) {
54
+ // eslint-disable-next-line no-control-regex
55
+ return value.replace(/[\u0000-\u001F\u007F]/g, '').trim();
56
+ }
57
+
58
+ // Extract the scheme from a URL-ish value, or `null` if it has none.
59
+ function extractScheme(value) {
60
+ const schemeMatch = normalizeValue(value).match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
61
+ return schemeMatch ? schemeMatch[1].toLowerCase() + ':' : null;
62
+ }
63
+
64
+ // (tag, attr) pairs that may legitimately carry a `data:` URI — matches
65
+ // DOMPurify's defaults so the SSR fallback doesn't reject inline images that
66
+ // the browser path would allow.
67
+ const DATA_URI_TAGS = [['img', 'src'], ['source', 'src'], ['source', 'srcset'], ['video', 'poster']];
68
+
69
+ // SSR fallback: DOMPurify only operates when a DOM is available. When it
70
+ // isn't, validate the scheme directly so server-rendered components don't
71
+ // silently drop every href.
72
+ function ssrSafeHref(value, tag, attr) {
73
+ const normalized = normalizeValue(value);
74
+ if (normalized === '') return true;
75
+ const firstChar = normalized.charAt(0);
76
+ if (firstChar === '#' || firstChar === '/' || firstChar === '?') return true;
77
+ const scheme = extractScheme(normalized);
78
+ if (!scheme) return true;
79
+ if (SAFE_SCHEMES.includes(scheme)) return true;
80
+ if (scheme === 'data:' && DATA_URI_TAGS.some(([t, a]) => t === tag && a === attr)) {
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
+
86
+ /**
87
+ * ---
88
+ * category: utilities/utils
89
+ * ---
90
+ * Validates an attribute value and returns it only when the value is safe to
91
+ * render. Delegates to `DOMPurify.isValidAttribute` in the browser; falls back
92
+ * to a minimal scheme allow-list under SSR.
93
+ *
94
+ * @module safeHref
95
+ *
96
+ * @param href The value to validate
97
+ * @param tag Element name the value will be applied to (e.g. `'a'`, `'img'`)
98
+ * @param attr Attribute name (e.g. `'href'`, `'src'`)
99
+ * @returns The original value if safe, `undefined` if blocked
100
+ */
101
+ function safeHref(href, tag, attr) {
102
+ if (href == null || typeof href === 'undefined') return undefined;
103
+ const value = String(href);
104
+
105
+ // Pre-check our scheme allowlist before DOMPurify, since DOMPurify's default
106
+ // ALLOWED_URI_REGEXP rejects schemes like `webcal:` that we treat as safe.
107
+ const scheme = extractScheme(value);
108
+ if (scheme && SAFE_SCHEMES.includes(scheme)) return href;
109
+ const isSafe = purify.isSupported ? purify.isValidAttribute(tag, attr, value) : ssrSafeHref(value, tag, attr);
110
+ if (!isSafe) {
111
+ return undefined;
112
+ }
113
+ return href;
114
+ }
115
+ var _default = exports.default = safeHref;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.safeLinkProps = safeLinkProps;
8
+ var _safeHref = require("./safeHref.js");
9
+ /*
10
+ * The MIT License (MIT)
11
+ *
12
+ * Copyright (c) 2015 - present Instructure, Inc.
13
+ *
14
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ * of this software and associated documentation files (the "Software"), to deal
16
+ * in the Software without restriction, including without limitation the rights
17
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ * copies of the Software, and to permit persons to whom the Software is
19
+ * furnished to do so, subject to the following conditions:
20
+ *
21
+ * The above copyright notice and this permission notice shall be included in all
22
+ * copies or substantial portions of the Software.
23
+ *
24
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ * SOFTWARE.
31
+ */
32
+
33
+ /**
34
+ * ---
35
+ * category: utilities/utils
36
+ * ---
37
+ * Centralizes the security-related normalization for link-rendering
38
+ * components: validates `href`, and supplies a safe default `rel` when
39
+ * `target="_blank"` is in use.
40
+ *
41
+ * @module safeLinkProps
42
+ */
43
+
44
+ function safeLinkProps(input) {
45
+ const {
46
+ target,
47
+ rel,
48
+ tag,
49
+ attr
50
+ } = input;
51
+ const href = (0, _safeHref.safeHref)(input.href, tag, attr);
52
+ const finalRel = target === '_blank' && rel == null ? 'noopener noreferrer' : rel;
53
+ return {
54
+ href,
55
+ target,
56
+ rel: finalRel
57
+ };
58
+ }
59
+ var _default = exports.default = safeLinkProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/ui-utils",
3
- "version": "11.7.4-snapshot-136",
3
+ "version": "11.7.4-snapshot-145",
4
4
  "description": "A collection of utilities for UI components",
5
5
  "author": "Instructure, Inc. Engineering and Product Design",
6
6
  "module": "./es/index.js",
@@ -16,18 +16,19 @@
16
16
  "dependencies": {
17
17
  "@babel/runtime": "^7.29.7",
18
18
  "@types/ua-parser-js": "^0.7.39",
19
+ "dompurify": "^3.4.2",
19
20
  "fast-deep-equal": "^3.1.3",
20
21
  "json-stable-stringify": "^1.3.0",
21
22
  "ua-parser-js": "^1.0.39",
22
- "@instructure/console": "11.7.4-snapshot-136",
23
- "@instructure/shared-types": "11.7.4-snapshot-136",
24
- "@instructure/ui-dom-utils": "11.7.4-snapshot-136"
23
+ "@instructure/console": "11.7.4-snapshot-145",
24
+ "@instructure/shared-types": "11.7.4-snapshot-145",
25
+ "@instructure/ui-dom-utils": "11.7.4-snapshot-145"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@testing-library/jest-dom": "^6.9.1",
28
29
  "@testing-library/react": "16.3.2",
29
30
  "vitest": "^4.1.9",
30
- "@instructure/ui-babel-preset": "11.7.4-snapshot-136"
31
+ "@instructure/ui-babel-preset": "11.7.4-snapshot-145"
31
32
  },
32
33
  "//dependency-comments": {
33
34
  "ua-parser-js": "Do not upgrade to 2.x, it has a problematic license"
package/src/index.ts CHANGED
@@ -32,6 +32,8 @@ export { mergeDeep } from './mergeDeep.js'
32
32
  export { ms } from './ms.js'
33
33
  export { parseUnit } from './parseUnit.js'
34
34
  export { px } from './px.js'
35
+ export { safeHref } from './safeHref.js'
36
+ export { safeLinkProps } from './safeLinkProps.js'
35
37
  export { shallowEqual } from './shallowEqual.js'
36
38
  export { within } from './within.js'
37
39
  export { camelize } from './camelize.js'
package/src/mergeDeep.ts CHANGED
@@ -56,6 +56,12 @@ function mergeSourceIntoTarget(
56
56
  const merged = { ...target }
57
57
 
58
58
  keys.forEach((key: any) => {
59
+ // Block prototype-pollution payloads. These keys can arrive via
60
+ // JSON.parse or other deserialization in consumer-supplied
61
+ // themeOverride props.
62
+ if (key === '__proto__' || key === 'prototype' || key === 'constructor') {
63
+ return
64
+ }
59
65
  if (isObject(target[key]) && isObject(source[key])) {
60
66
  merged[key] = mergeSourceIntoTarget(target[key], source[key])
61
67
  } else if (isArray(source[key]) && isArray(target[key])) {
@@ -0,0 +1,145 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import createDOMPurify from 'dompurify'
26
+
27
+ // Use a dedicated DOMPurify instance instead of the shared singleton so our
28
+ // HTML profile never leaks onto the global instance other code relies on, and
29
+ // our validation stays correct even if someone else mutates the singleton via
30
+ // setConfig(). `window` is guarded for SSR; passing `undefined` yields an
31
+ // unsupported instance, in which case we fall back to `ssrSafeHref`.
32
+ const purify = createDOMPurify(
33
+ typeof window === 'undefined' ? undefined : window
34
+ )
35
+
36
+ if (purify.isSupported) {
37
+ purify.setConfig({ USE_PROFILES: { html: true } })
38
+ }
39
+
40
+ const SAFE_SCHEMES = [
41
+ 'http:',
42
+ 'https:',
43
+ 'ftp:',
44
+ 'ftps:',
45
+ 'mailto:',
46
+ 'tel:',
47
+ 'sms:',
48
+ 'callto:',
49
+ 'cid:',
50
+ 'xmpp:',
51
+ 'matrix:',
52
+ 'webcal:',
53
+ 'feed:',
54
+ 'geo:'
55
+ ]
56
+
57
+ /**
58
+ * Remove all control characters (e.g. line break, tab, escape) and trim the
59
+ * string
60
+ */
61
+ function normalizeValue(value: string) {
62
+ // eslint-disable-next-line no-control-regex
63
+ return value.replace(/[\u0000-\u001F\u007F]/g, '').trim()
64
+ }
65
+
66
+ // Extract the scheme from a URL-ish value, or `null` if it has none.
67
+ function extractScheme(value: string): string | null {
68
+ const schemeMatch = normalizeValue(value).match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/)
69
+ return schemeMatch ? schemeMatch[1].toLowerCase() + ':' : null
70
+ }
71
+
72
+ // (tag, attr) pairs that may legitimately carry a `data:` URI — matches
73
+ // DOMPurify's defaults so the SSR fallback doesn't reject inline images that
74
+ // the browser path would allow.
75
+ const DATA_URI_TAGS: ReadonlyArray<[string, string]> = [
76
+ ['img', 'src'],
77
+ ['source', 'src'],
78
+ ['source', 'srcset'],
79
+ ['video', 'poster']
80
+ ]
81
+
82
+ // SSR fallback: DOMPurify only operates when a DOM is available. When it
83
+ // isn't, validate the scheme directly so server-rendered components don't
84
+ // silently drop every href.
85
+ function ssrSafeHref(value: string, tag: string, attr: string): boolean {
86
+ const normalized = normalizeValue(value)
87
+ if (normalized === '') return true
88
+ const firstChar = normalized.charAt(0)
89
+ if (firstChar === '#' || firstChar === '/' || firstChar === '?') return true
90
+ const scheme = extractScheme(normalized)
91
+ if (!scheme) return true
92
+ if (SAFE_SCHEMES.includes(scheme)) return true
93
+ if (
94
+ scheme === 'data:' &&
95
+ DATA_URI_TAGS.some(([t, a]) => t === tag && a === attr)
96
+ ) {
97
+ return true
98
+ }
99
+ return false
100
+ }
101
+
102
+ /**
103
+ * ---
104
+ * category: utilities/utils
105
+ * ---
106
+ * Validates an attribute value and returns it only when the value is safe to
107
+ * render. Delegates to `DOMPurify.isValidAttribute` in the browser; falls back
108
+ * to a minimal scheme allow-list under SSR.
109
+ *
110
+ * @module safeHref
111
+ *
112
+ * @param href The value to validate
113
+ * @param tag Element name the value will be applied to (e.g. `'a'`, `'img'`)
114
+ * @param attr Attribute name (e.g. `'href'`, `'src'`)
115
+ * @returns The original value if safe, `undefined` if blocked
116
+ */
117
+ function safeHref(
118
+ href: string | null | undefined,
119
+ tag: string,
120
+ attr: string
121
+ ): string | undefined {
122
+ if (href == null || typeof href === 'undefined') return undefined
123
+ const value = String(href)
124
+
125
+ // Pre-check our scheme allowlist before DOMPurify, since DOMPurify's default
126
+ // ALLOWED_URI_REGEXP rejects schemes like `webcal:` that we treat as safe.
127
+ const scheme = extractScheme(value)
128
+ if (scheme && SAFE_SCHEMES.includes(scheme)) return href
129
+
130
+ const isSafe = purify.isSupported
131
+ ? purify.isValidAttribute(tag, attr, value)
132
+ : ssrSafeHref(value, tag, attr)
133
+
134
+ if (!isSafe) {
135
+ console.error(
136
+ `[InstUI] Blocked unsafe ${tag} ${attr}: ` +
137
+ `${value.slice(0, 80)}${value.length > 80 ? '…' : ''}`
138
+ )
139
+ return undefined
140
+ }
141
+ return href
142
+ }
143
+
144
+ export default safeHref
145
+ export { safeHref }
@@ -0,0 +1,60 @@
1
+ /*
2
+ * The MIT License (MIT)
3
+ *
4
+ * Copyright (c) 2015 - present Instructure, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+ import { safeHref } from './safeHref.js'
26
+
27
+ /**
28
+ * ---
29
+ * category: utilities/utils
30
+ * ---
31
+ * Centralizes the security-related normalization for link-rendering
32
+ * components: validates `href`, and supplies a safe default `rel` when
33
+ * `target="_blank"` is in use.
34
+ *
35
+ * @module safeLinkProps
36
+ */
37
+ type SafeLinkInput = {
38
+ href?: string | null
39
+ target?: string
40
+ rel?: string
41
+ tag: string
42
+ attr: string
43
+ }
44
+
45
+ type SafeLinkOutput = {
46
+ href: string | undefined
47
+ target: string | undefined
48
+ rel: string | undefined
49
+ }
50
+
51
+ function safeLinkProps(input: SafeLinkInput): SafeLinkOutput {
52
+ const { target, rel, tag, attr } = input
53
+ const href = safeHref(input.href, tag, attr)
54
+ const finalRel =
55
+ target === '_blank' && rel == null ? 'noopener noreferrer' : rel
56
+ return { href, target, rel: finalRel }
57
+ }
58
+
59
+ export default safeLinkProps
60
+ export { safeLinkProps }
@@ -1 +1 @@
1
- {"fileNames":["../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@types+react@18.3.26/node_modules/@types/react/global.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@types+prop-types@15.7.15/node_modules/@types/prop-types/index.d.ts","../../node_modules/.pnpm/@types+react@18.3.26/node_modules/@types/react/index.d.ts","../../node_modules/.pnpm/@types+react@18.3.26/node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/declarations/src/index.d.ts","../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.cjs.d.mts","../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/declarations/src/types.d.ts","../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/declarations/src/index.d.ts","../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/emotion-utils.cjs.d.mts","../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/declarations/src/index.d.ts","../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.cjs.d.mts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/types.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/theming.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/jsx-namespace.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/jsx-runtime.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.cjs.d.mts","./src/camelize.ts","./src/capitalizeFirstLetter.ts","./src/cloneArray.ts","./src/combineDataCid.ts","./src/pascalize.ts","./src/convertCase.ts","./src/createChainedFunction.ts","../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.d.ts","./src/deepEqual.ts","./src/generateId.ts","../../node_modules/.pnpm/@types+ua-parser-js@0.7.39/node_modules/@types/ua-parser-js/index.d.ts","./src/getBrowser.ts","../../node_modules/.pnpm/json-stable-stringify@1.3.0/node_modules/json-stable-stringify/index.d.ts","./src/hash.ts","./src/isEmpty.ts","./src/mergeDeep.ts","./src/parseUnit.ts","./src/ms.ts","../ui-dom-utils/types/addEventListener.d.ts","../ui-dom-utils/types/addInputModeListener.d.ts","../shared-types/types/Colors.d.ts","../shared-types/types/BaseTheme.d.ts","../shared-types/types/ComponentThemeVariables.d.ts","../shared-types/types/ComponentThemeMap.d.ts","../shared-types/types/CommonTypes.d.ts","../shared-types/types/CommonProps.d.ts","../shared-types/types/UtilityTypes.d.ts","../shared-types/types/index.d.ts","../ui-dom-utils/types/addPositionChangeListener.d.ts","../ui-dom-utils/types/canUseDOM.d.ts","../ui-dom-utils/types/contains.d.ts","../ui-dom-utils/types/containsActiveElement.d.ts","../ui-dom-utils/types/findDOMNode.d.ts","../ui-dom-utils/types/findFocusable.d.ts","../ui-dom-utils/types/findTabbable.d.ts","../ui-dom-utils/types/getActiveElement.d.ts","../ui-dom-utils/types/getBoundingClientRect.d.ts","../ui-dom-utils/types/getClassList.d.ts","../ui-dom-utils/types/getCSSStyleDeclaration.d.ts","../ui-dom-utils/types/getFontSize.d.ts","../ui-dom-utils/types/getOffsetParents.d.ts","../ui-dom-utils/types/getScrollParents.d.ts","../ui-dom-utils/types/handleMouseOverOut.d.ts","../ui-dom-utils/types/isActiveElement.d.ts","../ui-dom-utils/types/isVisible.d.ts","../ui-dom-utils/types/ownerDocument.d.ts","../ui-dom-utils/types/ownerWindow.d.ts","../ui-dom-utils/types/requestAnimationFrame.d.ts","../ui-dom-utils/types/transformSelection.d.ts","../ui-dom-utils/types/matchMedia.d.ts","../ui-dom-utils/types/index.d.ts","./src/px.ts","./src/shallowEqual.ts","./src/within.ts","./src/isBaseTheme.ts","./src/index.ts"],"fileIdsList":[[67,75,77],[67,68,78],[67,76],[78],[79],[65,73],[74],[69],[71],[70],[72],[64,65,66],[67],[101],[103],[101,102],[101,102,103,104,105,106,107],[108],[99,100,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[80],[80,81,85],[80,88],[80,91],[80,93],[80,81,82,83,84,85,87,89,90,92,94,95,96,97,98,132,133,134,135],[80,108],[80,97],[80,81,82],[67,80,97,131]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"4dcdbdbc992d114e52247e2f960b05cf9d65d3142114bf08552b18938cb3d56b","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"ddb5454371b8da3a72ec536ad319f9f4e0a9851ffa961ae174484296a88a70db","impliedFormat":1},{"version":"fb7c8a2d7e2b50ada1e15b223d3bb83690bd34fd764aa0e009918549e440db1d","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"1fa33d8db2a9d2a7dbfb7a24718cccbcde8364d10cce29b1a7eea4cf3a530cbb","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"381437930df37907c030519b23ffea4d8113f46e4431a70bfe008a0c43c63648","impliedFormat":1},{"version":"695cbb89013bc9e87fb24b0df020fe605c54f0ab5c267b5bf0490ed097044197","impliedFormat":1},{"version":"f43780383543bfcdc0a2ee850375e1f03d94bdb1b85091d5b11bb8b2023c8b49","impliedFormat":1},{"version":"977a7d9e35d24211f02d8f6fd3a60db8c289b50cacbed38a50d5b49133e76e9f","impliedFormat":1},{"version":"ea93c204a5d0c681048fe6c4554b8d23b3312f79cf99744ff42668896af975e3","impliedFormat":99},{"version":"5485c6136d7553a2d9ad907b93e924e081e042b63f7be9edfb9b34668af53b7c","signature":"8ac0ea480a50de9300954799bd10eeac09f7b15acbeea3ba2528fe21efd66ed2"},{"version":"ff410430daabc1dc873ca7e8c7bfa25f725d34404451b04653564ab14926a2d9","signature":"27146b9d20ab5035c4d04b965d8ad5d9a62e0566e56de476be745d9310c4cc08"},{"version":"e7087e0681e3e60aeb28d92ed501933775a0a8023ca28bf6f081762f3cf28fd4","signature":"5eebbf909b3db04dcec6377d64fa78a952445679e0883269143b22fefafc4fff"},{"version":"da262bdc1b8e7bd9f41363f9d046b099866bf4a846f810128537b144751d40f6","signature":"414c342c358112a48d1ece6e1f1921a63e2261c84da9c9e3cc9078a5e8352d2a"},{"version":"52ebe66380eca138b7c0c1e8906411bf549ce274e47580e8f6e3e58073cef2ec","signature":"9f6b51de4660ce067043adc130d514c4a8d29ec2a5664eb895291688facc48e5"},{"version":"47a635a289ab433233f419532e6d669fb27ee922afdab9753f87571e3804f9fc","signature":"51ef296e89a40b805fceb5eebca0fe0718717804bdd8445ae04bf62702e71680"},{"version":"549549b11881a301dc88895bce5030e8109fce419ba178b78233d6474ea47437","signature":"e0884fc3c57abab8a3c2792133cbe44e41e7ffb9704b3de51d1129eaa3e6afa3"},{"version":"37ffe3c12813b6a6d512f7c27b71f3388d03dafa10555ad5094cea393ed3d1f6","impliedFormat":1},{"version":"866c92afc336ddce5808e4c262b5032906db4c56c84a6b9f8511ebfd7555b7bb","signature":"662727259a0d74c16f130aadfae0ee0b4804cfafc1975454d2e14664ddc647ff"},{"version":"04ba38a4fefd11ab39bd2419ff74f4685ec5a0310ad33f186a57e0d771720a8e","signature":"7a7d807558f75a8401c93cb230e6b54bc6ce6beb9e141f26298c271a01a37060"},{"version":"98cbca6c3c5b2f8d1469dcee88c13304b6cb149fb057ec3b8a85f2e39ff1fc84","impliedFormat":1},{"version":"4ae196ddbe3a3f713e30d33dc5f8abfbb88795a0b88917d57df0d7ac089817e4","signature":"d336bf26f584335645135da16dbd2eb8f9f3922f43432046bb8c0c8d81ec6c80"},{"version":"87f7af27a4cb427eface3c25f541417e055e5cc6c8fa7b8920798c88dd5fa2a3","impliedFormat":1},{"version":"55dfaac497043e80124c94452f7ea2a393211b5b5e15256e65fcef1dbebf90d6","signature":"39c8a07632e0c1bd8327a882f91b250386a4f0c70ba8d7862b3a89e02342cfd9"},{"version":"d73f89d61e66cbf136243cc83b634467d701cd525d570806c398871eb0c3c0a5","signature":"e02de5085ebdbc91754daa019441f4256b342b92b744abdcd2d3fa93dab8159b"},{"version":"d4c7289ec37ea73a9494fb69e69826f77d2d18fc098661fff2fd075a7a44fccb","signature":"81e16faf0f5361833c0227495306c683086538d34fc73230b35e753e9e2d5cab"},{"version":"5b420a1ed65e12920ffd5ac147990a5ac43c4e626f8d54d840c743197fde9412","signature":"d39f3ab8a4e3897f760e86beaa0a317fc5c38cf09f76f5cd01e02a0ed0fd6c90"},{"version":"6ad1bdb01ee9cdc7ffb1453eb59b853e4def03e981f49b2d7b21737cddf67dfa","signature":"105f0fe5b7a280478558c30f2d445b41a2f26e1963047eacb849c66cdcf7273d"},"b8ebb6c67918caa9a4a54e77b5a66aab58738afcd81cbff1bb8133819b81fee7","5cc2903f2c3e62bb9f1828c1987e306c0e4a043003bee909e1c54feadc2cfee9","e1d0d20bac612e8f3ddea8e51a40cb7a75bfa38f8bedeab0a54f8d23b1767380","f5665e3d80072c76f019de5aa6e73989908869b07bb6654ef7b2143b5ee03f46","7aa601569d7a234b816233ca14b958665ec4ed6bcc43d8dab462608c34aced09","d052285e62167e6c63fac48327ab2b3f1deb79350d6de14888f2701b5e601e62","8803c846ec1612036beeeb787da273d7c264d03c85adf41a1aa44ab55cb2e7ab","33a1f5a3c695b3a471bbdcb0256a33516352658e1d84fd787b1ecd9b8b1e3a6e","b5d5e9da66857b591c0d118694af06e5f455c9e5915fb6768efc9106f0464fbe","bccc3c61d08a92ef644f62ae77059654d41855811b028c1c66b542413f205931","d2ac6f79197c898328311b65bba19cd9b264d47f377574022133d239b8371064","ead02dcd20fdc84ec422c810100419b88eeed3e19d61eea0f06e708a0315ee7b","0f7d8367c104b46dfb9bf78d61bf58595605df70351cf9f91049ce2feaec96fe","d45eb2883eb82f7dce5d16acad3a50545f9100e6a4690cf017844cfd8b36eb89","bccddfd7bee6ae40ce9dd52eb80bc235941ea2c9903cd0e1e7b3751fff629586","2d09998e16ccbbb8593a461c4833371c65c63526c4e80cd92868a61d40a4d81b","2fb3da9acbfc0a8193307b6f8582e377aee88e978b66006cb7304b264dc7b0b9","0d0de493b31d1644dbbd2ee514b947dbc32ddabfb9317009291773328164e68c","94dcf6c2656b9bec87138cea5fafd87209bcbdeb13c5ff85df8e1e83e62f06ca","1d4961a3974b2664e1c27babbbdb1db588cc9d3c339c2692d7407449a1700d03","34d8e5c02b2aa11e7b693f57241666828c8c34bde38542e66773adcc94a269bc","cb15340609003657d7463f6c0311023dc27b9699e43efb45263b43deb730ad0b","d36f774889d78d0b27976a0b936de73ac5fd898aeb08a40201da8b51d4892c16","e30b3df01b9b7994a9272995a0976c564b9e149e32ad11cb223caee9c2a55c48","f297fa0681a76eb9f3680c4133a08da46f78c17ee9ab0b3df8432e1465f5a45a","acfef8efbaee8ad4b25bc5264c39c62a6ea65e9aaf8b1cd0f4c64c196a4e2c03","aaa585e077ec8bb2cd4509efcb44be4d5c3654c150a89fb5cd6168f9af74f000","69913ab1d786512141c4f30f52e6037ab5d4a164fdb5272d4dd722a20bfef87f","713d6907fa264aedd138d0693aff2c64e01bc52da91453a566ce003c045c82f8","419542c9c1d8edbd407a4b7d49de15a5f2385935ffaee866a2bc9888c00418e5","0fcbed42c597ce163042c10447451465ea66fca420fe47108a5b20df68c78d28","671a9f0b848deec6c25c98a9848e588bb55b09aad8be8e5f37701eb194f11ab6","78c8f5dd64ad45edc162bc77b18fa9d8a64b781467a3c90a4d9dcba14fba1194",{"version":"bbbe072261dd9bb6847d0b72844004a3f3d8c520fa759c09deb089b01919914b","signature":"1cc4546218b937292840802ad60f0569a8957f1de1f9cd2a8d3217555b097217"},{"version":"fde428545752d532bb7dc48cb3e9a2913687a87e8f065d1a03c9ed04baa34ffb","signature":"5ca681bd09bdae3aa7d72f43e33ea290bb7f3c320d55a0ac68f37530f1b748ab"},{"version":"0350cd6c8b92ff155b2edd2321defe51413f657573489c34ce68d69d1bcac597","signature":"c7c33be236fdc937d69b307c2ae758dabbc56f0352bf1d2721f334f9c3ac5afa"},{"version":"d22579b884e119af7495fe4d8762a2aed3fc80bb230d9c0753f7b20d03cc9061","signature":"effc77b81b3ff7647bebdfa59bee5fc96daf6702fb6a4edddb56e425bd976236"},{"version":"9fc71d5061b0f7e58f06ceb20c6c8f5782b5ee26f5f9c798f140b26485b78057","signature":"334745c38c0b6acef2c091b8b326faf5ea90cb9dc1e642176ad23f097c475019"}],"root":[[81,87],89,90,92,[94,98],[132,136]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":false,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"jsxImportSource":"@emotion/react","module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./types","rootDir":"./src","skipLibCheck":true,"strict":true,"target":2},"referencedMap":[[78,1],[79,2],[77,3],[76,4],[80,5],[74,6],[75,7],[70,8],[72,9],[71,10],[73,11],[67,12],[68,13],[102,14],[106,13],[105,13],[104,15],[103,16],[108,17],[99,13],[109,18],[111,18],[112,18],[113,18],[114,18],[115,18],[117,18],[119,18],[118,18],[120,13],[121,18],[122,18],[123,13],[131,19],[124,18],[125,18],[130,18],[126,18],[127,18],[81,20],[82,20],[83,20],[84,20],[86,21],[87,20],[89,22],[90,20],[92,23],[94,24],[136,25],[135,26],[95,20],[96,20],[98,27],[97,20],[85,28],[132,29],[133,20],[134,20]],"latestChangedDtsFile":"./types/index.d.ts","version":"6.0.3"}
1
+ {"fileNames":["../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@types+react@18.3.26/node_modules/@types/react/global.d.ts","../../node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","../../node_modules/.pnpm/@types+prop-types@15.7.15/node_modules/@types/prop-types/index.d.ts","../../node_modules/.pnpm/@types+react@18.3.26/node_modules/@types/react/index.d.ts","../../node_modules/.pnpm/@types+react@18.3.26/node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/declarations/src/index.d.ts","../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.cjs.d.mts","../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/declarations/src/types.d.ts","../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/declarations/src/index.d.ts","../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/emotion-utils.cjs.d.mts","../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/declarations/src/index.d.ts","../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.cjs.d.mts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/types.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/theming.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/jsx-namespace.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/dist/declarations/src/jsx-runtime.d.ts","../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.26_react@18.3.1/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.cjs.d.mts","./src/camelize.ts","./src/capitalizeFirstLetter.ts","./src/cloneArray.ts","./src/combineDataCid.ts","./src/pascalize.ts","./src/convertCase.ts","./src/createChainedFunction.ts","../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.d.ts","./src/deepEqual.ts","./src/generateId.ts","../../node_modules/.pnpm/@types+ua-parser-js@0.7.39/node_modules/@types/ua-parser-js/index.d.ts","./src/getBrowser.ts","../../node_modules/.pnpm/json-stable-stringify@1.3.0/node_modules/json-stable-stringify/index.d.ts","./src/hash.ts","./src/isEmpty.ts","./src/mergeDeep.ts","./src/parseUnit.ts","./src/ms.ts","../ui-dom-utils/types/addEventListener.d.ts","../ui-dom-utils/types/addInputModeListener.d.ts","../shared-types/types/Colors.d.ts","../shared-types/types/BaseTheme.d.ts","../shared-types/types/ComponentThemeVariables.d.ts","../shared-types/types/ComponentThemeMap.d.ts","../shared-types/types/CommonTypes.d.ts","../shared-types/types/CommonProps.d.ts","../shared-types/types/UtilityTypes.d.ts","../shared-types/types/index.d.ts","../ui-dom-utils/types/addPositionChangeListener.d.ts","../ui-dom-utils/types/canUseDOM.d.ts","../ui-dom-utils/types/contains.d.ts","../ui-dom-utils/types/containsActiveElement.d.ts","../ui-dom-utils/types/findDOMNode.d.ts","../ui-dom-utils/types/findFocusable.d.ts","../ui-dom-utils/types/findTabbable.d.ts","../ui-dom-utils/types/getActiveElement.d.ts","../ui-dom-utils/types/getBoundingClientRect.d.ts","../ui-dom-utils/types/getClassList.d.ts","../ui-dom-utils/types/getCSSStyleDeclaration.d.ts","../ui-dom-utils/types/getFontSize.d.ts","../ui-dom-utils/types/getOffsetParents.d.ts","../ui-dom-utils/types/getScrollParents.d.ts","../ui-dom-utils/types/handleMouseOverOut.d.ts","../ui-dom-utils/types/isActiveElement.d.ts","../ui-dom-utils/types/isVisible.d.ts","../ui-dom-utils/types/ownerDocument.d.ts","../ui-dom-utils/types/ownerWindow.d.ts","../ui-dom-utils/types/requestAnimationFrame.d.ts","../ui-dom-utils/types/transformSelection.d.ts","../ui-dom-utils/types/matchMedia.d.ts","../ui-dom-utils/types/index.d.ts","./src/px.ts","../../node_modules/.pnpm/@types+trusted-types@2.0.7/node_modules/@types/trusted-types/lib/index.d.ts","../../node_modules/.pnpm/dompurify@3.4.12/node_modules/dompurify/dist/purify.es.d.mts","./src/safeHref.ts","./src/safeLinkProps.ts","./src/shallowEqual.ts","./src/within.ts","./src/isBaseTheme.ts","./src/index.ts"],"fileIdsList":[[67,75,77],[67,68,78],[67,76],[78],[79],[65,73],[74],[69],[71],[70],[72],[64,65,66],[67],[133],[101],[103],[101,102],[101,102,103,104,105,106,107],[108],[99,100,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[80],[80,81,85],[80,88],[80,91],[80,93],[80,81,82,83,84,85,87,89,90,92,94,95,96,97,98,132,135,136,137,138,139],[80,108],[80,97],[80,81,82],[67,80,97,131],[80,134],[80,135]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"4dcdbdbc992d114e52247e2f960b05cf9d65d3142114bf08552b18938cb3d56b","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"ddb5454371b8da3a72ec536ad319f9f4e0a9851ffa961ae174484296a88a70db","impliedFormat":1},{"version":"fb7c8a2d7e2b50ada1e15b223d3bb83690bd34fd764aa0e009918549e440db1d","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"1fa33d8db2a9d2a7dbfb7a24718cccbcde8364d10cce29b1a7eea4cf3a530cbb","impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},{"version":"381437930df37907c030519b23ffea4d8113f46e4431a70bfe008a0c43c63648","impliedFormat":1},{"version":"695cbb89013bc9e87fb24b0df020fe605c54f0ab5c267b5bf0490ed097044197","impliedFormat":1},{"version":"f43780383543bfcdc0a2ee850375e1f03d94bdb1b85091d5b11bb8b2023c8b49","impliedFormat":1},{"version":"977a7d9e35d24211f02d8f6fd3a60db8c289b50cacbed38a50d5b49133e76e9f","impliedFormat":1},{"version":"ea93c204a5d0c681048fe6c4554b8d23b3312f79cf99744ff42668896af975e3","impliedFormat":99},{"version":"5485c6136d7553a2d9ad907b93e924e081e042b63f7be9edfb9b34668af53b7c","signature":"8ac0ea480a50de9300954799bd10eeac09f7b15acbeea3ba2528fe21efd66ed2"},{"version":"ff410430daabc1dc873ca7e8c7bfa25f725d34404451b04653564ab14926a2d9","signature":"27146b9d20ab5035c4d04b965d8ad5d9a62e0566e56de476be745d9310c4cc08"},{"version":"e7087e0681e3e60aeb28d92ed501933775a0a8023ca28bf6f081762f3cf28fd4","signature":"5eebbf909b3db04dcec6377d64fa78a952445679e0883269143b22fefafc4fff"},{"version":"da262bdc1b8e7bd9f41363f9d046b099866bf4a846f810128537b144751d40f6","signature":"414c342c358112a48d1ece6e1f1921a63e2261c84da9c9e3cc9078a5e8352d2a"},{"version":"52ebe66380eca138b7c0c1e8906411bf549ce274e47580e8f6e3e58073cef2ec","signature":"9f6b51de4660ce067043adc130d514c4a8d29ec2a5664eb895291688facc48e5"},{"version":"47a635a289ab433233f419532e6d669fb27ee922afdab9753f87571e3804f9fc","signature":"51ef296e89a40b805fceb5eebca0fe0718717804bdd8445ae04bf62702e71680"},{"version":"549549b11881a301dc88895bce5030e8109fce419ba178b78233d6474ea47437","signature":"e0884fc3c57abab8a3c2792133cbe44e41e7ffb9704b3de51d1129eaa3e6afa3"},{"version":"37ffe3c12813b6a6d512f7c27b71f3388d03dafa10555ad5094cea393ed3d1f6","impliedFormat":1},{"version":"866c92afc336ddce5808e4c262b5032906db4c56c84a6b9f8511ebfd7555b7bb","signature":"662727259a0d74c16f130aadfae0ee0b4804cfafc1975454d2e14664ddc647ff"},{"version":"04ba38a4fefd11ab39bd2419ff74f4685ec5a0310ad33f186a57e0d771720a8e","signature":"7a7d807558f75a8401c93cb230e6b54bc6ce6beb9e141f26298c271a01a37060"},{"version":"98cbca6c3c5b2f8d1469dcee88c13304b6cb149fb057ec3b8a85f2e39ff1fc84","impliedFormat":1},{"version":"4ae196ddbe3a3f713e30d33dc5f8abfbb88795a0b88917d57df0d7ac089817e4","signature":"d336bf26f584335645135da16dbd2eb8f9f3922f43432046bb8c0c8d81ec6c80"},{"version":"87f7af27a4cb427eface3c25f541417e055e5cc6c8fa7b8920798c88dd5fa2a3","impliedFormat":1},{"version":"55dfaac497043e80124c94452f7ea2a393211b5b5e15256e65fcef1dbebf90d6","signature":"39c8a07632e0c1bd8327a882f91b250386a4f0c70ba8d7862b3a89e02342cfd9"},{"version":"d73f89d61e66cbf136243cc83b634467d701cd525d570806c398871eb0c3c0a5","signature":"e02de5085ebdbc91754daa019441f4256b342b92b744abdcd2d3fa93dab8159b"},{"version":"2cf6df8676c8a4d9ae79a871ba5bf08837fc7745f8c3d2d52da4bd7c3782a51a","signature":"81e16faf0f5361833c0227495306c683086538d34fc73230b35e753e9e2d5cab"},{"version":"5b420a1ed65e12920ffd5ac147990a5ac43c4e626f8d54d840c743197fde9412","signature":"d39f3ab8a4e3897f760e86beaa0a317fc5c38cf09f76f5cd01e02a0ed0fd6c90"},{"version":"6ad1bdb01ee9cdc7ffb1453eb59b853e4def03e981f49b2d7b21737cddf67dfa","signature":"105f0fe5b7a280478558c30f2d445b41a2f26e1963047eacb849c66cdcf7273d"},"b8ebb6c67918caa9a4a54e77b5a66aab58738afcd81cbff1bb8133819b81fee7","5cc2903f2c3e62bb9f1828c1987e306c0e4a043003bee909e1c54feadc2cfee9","e1d0d20bac612e8f3ddea8e51a40cb7a75bfa38f8bedeab0a54f8d23b1767380","f5665e3d80072c76f019de5aa6e73989908869b07bb6654ef7b2143b5ee03f46","7aa601569d7a234b816233ca14b958665ec4ed6bcc43d8dab462608c34aced09","d052285e62167e6c63fac48327ab2b3f1deb79350d6de14888f2701b5e601e62","8803c846ec1612036beeeb787da273d7c264d03c85adf41a1aa44ab55cb2e7ab","33a1f5a3c695b3a471bbdcb0256a33516352658e1d84fd787b1ecd9b8b1e3a6e","b5d5e9da66857b591c0d118694af06e5f455c9e5915fb6768efc9106f0464fbe","bccc3c61d08a92ef644f62ae77059654d41855811b028c1c66b542413f205931","d2ac6f79197c898328311b65bba19cd9b264d47f377574022133d239b8371064","ead02dcd20fdc84ec422c810100419b88eeed3e19d61eea0f06e708a0315ee7b","0f7d8367c104b46dfb9bf78d61bf58595605df70351cf9f91049ce2feaec96fe","d45eb2883eb82f7dce5d16acad3a50545f9100e6a4690cf017844cfd8b36eb89","bccddfd7bee6ae40ce9dd52eb80bc235941ea2c9903cd0e1e7b3751fff629586","2d09998e16ccbbb8593a461c4833371c65c63526c4e80cd92868a61d40a4d81b","2fb3da9acbfc0a8193307b6f8582e377aee88e978b66006cb7304b264dc7b0b9","0d0de493b31d1644dbbd2ee514b947dbc32ddabfb9317009291773328164e68c","94dcf6c2656b9bec87138cea5fafd87209bcbdeb13c5ff85df8e1e83e62f06ca","1d4961a3974b2664e1c27babbbdb1db588cc9d3c339c2692d7407449a1700d03","34d8e5c02b2aa11e7b693f57241666828c8c34bde38542e66773adcc94a269bc","cb15340609003657d7463f6c0311023dc27b9699e43efb45263b43deb730ad0b","d36f774889d78d0b27976a0b936de73ac5fd898aeb08a40201da8b51d4892c16","e30b3df01b9b7994a9272995a0976c564b9e149e32ad11cb223caee9c2a55c48","f297fa0681a76eb9f3680c4133a08da46f78c17ee9ab0b3df8432e1465f5a45a","acfef8efbaee8ad4b25bc5264c39c62a6ea65e9aaf8b1cd0f4c64c196a4e2c03","aaa585e077ec8bb2cd4509efcb44be4d5c3654c150a89fb5cd6168f9af74f000","69913ab1d786512141c4f30f52e6037ab5d4a164fdb5272d4dd722a20bfef87f","713d6907fa264aedd138d0693aff2c64e01bc52da91453a566ce003c045c82f8","419542c9c1d8edbd407a4b7d49de15a5f2385935ffaee866a2bc9888c00418e5","0fcbed42c597ce163042c10447451465ea66fca420fe47108a5b20df68c78d28","671a9f0b848deec6c25c98a9848e588bb55b09aad8be8e5f37701eb194f11ab6","78c8f5dd64ad45edc162bc77b18fa9d8a64b781467a3c90a4d9dcba14fba1194",{"version":"bbbe072261dd9bb6847d0b72844004a3f3d8c520fa759c09deb089b01919914b","signature":"1cc4546218b937292840802ad60f0569a8957f1de1f9cd2a8d3217555b097217"},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"0141a5e88579db339e3db175da4bf546e29dc266bf26e8c92bc52386e7a832c4","impliedFormat":99},{"version":"7104dad032da35836e0f73a8b43250066573e68810381c0ba62543269ed2b394","signature":"069593f5181e84418e4e22ec4bb6b134125386ef993cc89fd2ae4c790bcbb907"},{"version":"b984f6173f3ba0dc6b7251d5ff43e8c8320ffec88e271efad6f98f2a2d81fa0b","signature":"31bf2af56c33e2f45905d6713d5114f26212d03cd4bd839ca0c6c0455cc43f12"},{"version":"fde428545752d532bb7dc48cb3e9a2913687a87e8f065d1a03c9ed04baa34ffb","signature":"5ca681bd09bdae3aa7d72f43e33ea290bb7f3c320d55a0ac68f37530f1b748ab"},{"version":"0350cd6c8b92ff155b2edd2321defe51413f657573489c34ce68d69d1bcac597","signature":"c7c33be236fdc937d69b307c2ae758dabbc56f0352bf1d2721f334f9c3ac5afa"},{"version":"d22579b884e119af7495fe4d8762a2aed3fc80bb230d9c0753f7b20d03cc9061","signature":"effc77b81b3ff7647bebdfa59bee5fc96daf6702fb6a4edddb56e425bd976236"},{"version":"82d7563704f70ce1fba68d837a183180cd3dfb3c1d35894592a277a339005769","signature":"bf3b2657115ccf7c882f82688fa38ae8dae2be163ef5de334ce2cefee3ab772e"}],"root":[[81,87],89,90,92,[94,98],132,[135,140]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":false,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"jsxImportSource":"@emotion/react","module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./types","rootDir":"./src","skipLibCheck":true,"strict":true,"target":2},"referencedMap":[[78,1],[79,2],[77,3],[76,4],[80,5],[74,6],[75,7],[70,8],[72,9],[71,10],[73,11],[67,12],[68,13],[134,14],[102,15],[106,13],[105,13],[104,16],[103,17],[108,18],[99,13],[109,19],[111,19],[112,19],[113,19],[114,19],[115,19],[117,19],[119,19],[118,19],[120,13],[121,19],[122,19],[123,13],[131,20],[124,19],[125,19],[130,19],[126,19],[127,19],[81,21],[82,21],[83,21],[84,21],[86,22],[87,21],[89,23],[90,21],[92,24],[94,25],[140,26],[139,27],[95,21],[96,21],[98,28],[97,21],[85,29],[132,30],[135,31],[136,32],[137,21],[138,21]],"latestChangedDtsFile":"./types/index.d.ts","version":"6.0.3"}
package/types/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export { mergeDeep } from './mergeDeep.js';
9
9
  export { ms } from './ms.js';
10
10
  export { parseUnit } from './parseUnit.js';
11
11
  export { px } from './px.js';
12
+ export { safeHref } from './safeHref.js';
13
+ export { safeLinkProps } from './safeLinkProps.js';
12
14
  export { shallowEqual } from './shallowEqual.js';
13
15
  export { within } from './within.js';
14
16
  export { camelize } from './camelize.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,KAAK,EACN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EACL,UAAU,EACV,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,KAAK,EACN,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeDeep.d.ts","sourceRoot":"","sources":["../src/mergeDeep.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;GAWG;AACH,iBAAS,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQ1E;AA0CD,eAAe,SAAS,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"mergeDeep.d.ts","sourceRoot":"","sources":["../src/mergeDeep.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;GAWG;AACH,iBAAS,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQ1E;AAgDD,eAAe,SAAS,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ---
3
+ * category: utilities/utils
4
+ * ---
5
+ * Validates an attribute value and returns it only when the value is safe to
6
+ * render. Delegates to `DOMPurify.isValidAttribute` in the browser; falls back
7
+ * to a minimal scheme allow-list under SSR.
8
+ *
9
+ * @module safeHref
10
+ *
11
+ * @param href The value to validate
12
+ * @param tag Element name the value will be applied to (e.g. `'a'`, `'img'`)
13
+ * @param attr Attribute name (e.g. `'href'`, `'src'`)
14
+ * @returns The original value if safe, `undefined` if blocked
15
+ */
16
+ declare function safeHref(href: string | null | undefined, tag: string, attr: string): string | undefined;
17
+ export default safeHref;
18
+ export { safeHref };
19
+ //# sourceMappingURL=safeHref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeHref.d.ts","sourceRoot":"","sources":["../src/safeHref.ts"],"names":[],"mappings":"AAqGA;;;;;;;;;;;;;;GAcG;AACH,iBAAS,QAAQ,CACf,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAqBpB;AAED,eAAe,QAAQ,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ---
3
+ * category: utilities/utils
4
+ * ---
5
+ * Centralizes the security-related normalization for link-rendering
6
+ * components: validates `href`, and supplies a safe default `rel` when
7
+ * `target="_blank"` is in use.
8
+ *
9
+ * @module safeLinkProps
10
+ */
11
+ type SafeLinkInput = {
12
+ href?: string | null;
13
+ target?: string;
14
+ rel?: string;
15
+ tag: string;
16
+ attr: string;
17
+ };
18
+ type SafeLinkOutput = {
19
+ href: string | undefined;
20
+ target: string | undefined;
21
+ rel: string | undefined;
22
+ };
23
+ declare function safeLinkProps(input: SafeLinkInput): SafeLinkOutput;
24
+ export default safeLinkProps;
25
+ export { safeLinkProps };
26
+ //# sourceMappingURL=safeLinkProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeLinkProps.d.ts","sourceRoot":"","sources":["../src/safeLinkProps.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;GASG;AACH,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CACxB,CAAA;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAM3D;AAED,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,CAAA"}