@simplybusiness/mobius 10.4.0 → 10.4.1
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 +6 -0
- package/dist/cjs/components/AddressLookup/AddressLookup.js +5 -4
- package/dist/cjs/components/AddressLookup/AddressLookup.js.map +2 -2
- package/dist/cjs/components/AddressLookup/index.js +5 -4
- package/dist/cjs/components/AddressLookup/index.js.map +2 -2
- package/dist/cjs/components/Alert/Alert.js +5 -4
- package/dist/cjs/components/Alert/Alert.js.map +2 -2
- package/dist/cjs/components/Alert/index.js +5 -4
- package/dist/cjs/components/Alert/index.js.map +2 -2
- package/dist/cjs/components/Checkbox/Checkbox.js +5 -4
- package/dist/cjs/components/Checkbox/Checkbox.js.map +2 -2
- package/dist/cjs/components/Checkbox/CheckboxGroup.js +5 -4
- package/dist/cjs/components/Checkbox/CheckboxGroup.js.map +2 -2
- package/dist/cjs/components/Checkbox/index.js +5 -4
- package/dist/cjs/components/Checkbox/index.js.map +2 -2
- package/dist/cjs/components/Combobox/Combobox.js +5 -4
- package/dist/cjs/components/Combobox/Combobox.js.map +2 -2
- package/dist/cjs/components/Combobox/index.js +5 -4
- package/dist/cjs/components/Combobox/index.js.map +2 -2
- package/dist/cjs/components/DateField/DateField.js +5 -4
- package/dist/cjs/components/DateField/DateField.js.map +2 -2
- package/dist/cjs/components/DateField/index.js +5 -4
- package/dist/cjs/components/DateField/index.js.map +2 -2
- package/dist/cjs/components/ErrorMessage/ErrorMessage.js +5 -4
- package/dist/cjs/components/ErrorMessage/ErrorMessage.js.map +2 -2
- package/dist/cjs/components/ErrorMessage/index.js +5 -4
- package/dist/cjs/components/ErrorMessage/index.js.map +2 -2
- package/dist/cjs/components/ExpandableText/ExpandableText.js +5 -4
- package/dist/cjs/components/ExpandableText/ExpandableText.js.map +2 -2
- package/dist/cjs/components/ExpandableText/index.js +5 -4
- package/dist/cjs/components/ExpandableText/index.js.map +2 -2
- package/dist/cjs/components/MaskedField/MaskedField.js +5 -4
- package/dist/cjs/components/MaskedField/MaskedField.js.map +2 -2
- package/dist/cjs/components/MaskedField/index.js +6 -5
- package/dist/cjs/components/MaskedField/index.js.map +2 -2
- package/dist/cjs/components/NumberField/NumberField.js +5 -4
- package/dist/cjs/components/NumberField/NumberField.js.map +2 -2
- package/dist/cjs/components/NumberField/index.js +5 -4
- package/dist/cjs/components/NumberField/index.js.map +2 -2
- package/dist/cjs/components/PasswordField/PasswordField.js +5 -4
- package/dist/cjs/components/PasswordField/PasswordField.js.map +2 -2
- package/dist/cjs/components/PasswordField/index.js +5 -4
- package/dist/cjs/components/PasswordField/index.js.map +2 -2
- package/dist/cjs/components/Radio/Radio.js +5 -4
- package/dist/cjs/components/Radio/Radio.js.map +2 -2
- package/dist/cjs/components/Radio/RadioGroup.js +5 -4
- package/dist/cjs/components/Radio/RadioGroup.js.map +2 -2
- package/dist/cjs/components/Radio/index.js +5 -4
- package/dist/cjs/components/Radio/index.js.map +2 -2
- package/dist/cjs/components/Select/Select.js +5 -4
- package/dist/cjs/components/Select/Select.js.map +2 -2
- package/dist/cjs/components/Select/index.js +5 -4
- package/dist/cjs/components/Select/index.js.map +2 -2
- package/dist/cjs/components/TextArea/TextArea.js +5 -4
- package/dist/cjs/components/TextArea/TextArea.js.map +2 -2
- package/dist/cjs/components/TextArea/index.js +5 -4
- package/dist/cjs/components/TextArea/index.js.map +2 -2
- package/dist/cjs/components/TextField/TextField.js +5 -4
- package/dist/cjs/components/TextField/TextField.js.map +2 -2
- package/dist/cjs/components/TextField/index.js +5 -4
- package/dist/cjs/components/TextField/index.js.map +2 -2
- package/dist/cjs/components/TextOrHTML/TextOrHTML.js +5 -4
- package/dist/cjs/components/TextOrHTML/TextOrHTML.js.map +2 -2
- package/dist/cjs/components/TextOrHTML/index.js +5 -4
- package/dist/cjs/components/TextOrHTML/index.js.map +2 -2
- package/dist/cjs/components/index.js +6 -5
- package/dist/cjs/components/index.js.map +2 -2
- package/dist/cjs/index.js +6 -5
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/meta.json +103 -103
- package/dist/esm/{chunk-4WVJNNBK.js → chunk-2HUMNED2.js} +2 -2
- package/dist/esm/{chunk-N4WQ6522.js → chunk-2VEO5SSY.js} +2 -2
- package/dist/esm/{chunk-AFU7BFCD.js → chunk-576SEJGC.js} +3 -3
- package/dist/esm/{chunk-QPIA6BGW.js → chunk-6JCU4CGA.js} +2 -2
- package/dist/esm/{chunk-X6EPYQKX.js → chunk-F5ELD54X.js} +2 -2
- package/dist/esm/{chunk-ZN5TRIVZ.js → chunk-GV36OVX7.js} +2 -2
- package/dist/esm/{chunk-JNAQ76CR.js → chunk-HGNWNZ5E.js} +2 -2
- package/dist/esm/{chunk-ONDOONBM.js → chunk-HUSMC5GZ.js} +2 -2
- package/dist/esm/{chunk-UIIXVY6K.js → chunk-IQKS662C.js} +2 -2
- package/dist/esm/{chunk-DYTHXKMX.js → chunk-KTJCAQT4.js} +6 -5
- package/dist/esm/chunk-KTJCAQT4.js.map +7 -0
- package/dist/esm/{chunk-5OFXPT4J.js → chunk-M62U4QGQ.js} +2 -2
- package/dist/esm/{chunk-UQVAEWY2.js → chunk-MZJT3USG.js} +2 -2
- package/dist/esm/{chunk-FKTDL7KO.js → chunk-OAG5T7NC.js} +2 -2
- package/dist/esm/{chunk-M2NDSQR5.js → chunk-P6YHEIFT.js} +2 -2
- package/dist/esm/{chunk-P5VEI574.js → chunk-S4CU4XRB.js} +2 -2
- package/dist/esm/{chunk-4NBLO5WK.js → chunk-X4CMSAET.js} +2 -2
- package/dist/esm/{chunk-KQZ3MNK5.js → chunk-XNEQHHNV.js} +2 -2
- package/dist/esm/components/AddressLookup/AddressLookup.js +5 -5
- package/dist/esm/components/AddressLookup/index.js +5 -5
- package/dist/esm/components/Alert/Alert.js +2 -2
- package/dist/esm/components/Alert/index.js +2 -2
- package/dist/esm/components/Checkbox/Checkbox.js +3 -3
- package/dist/esm/components/Checkbox/CheckboxGroup.js +4 -4
- package/dist/esm/components/Checkbox/index.js +4 -4
- package/dist/esm/components/Combobox/Combobox.js +4 -4
- package/dist/esm/components/Combobox/index.js +4 -4
- package/dist/esm/components/DateField/DateField.js +4 -4
- package/dist/esm/components/DateField/index.js +4 -4
- package/dist/esm/components/ErrorMessage/ErrorMessage.js +2 -2
- package/dist/esm/components/ErrorMessage/index.js +2 -2
- package/dist/esm/components/ExpandableText/ExpandableText.js +2 -2
- package/dist/esm/components/ExpandableText/index.js +2 -2
- package/dist/esm/components/MaskedField/MaskedField.js +3 -3
- package/dist/esm/components/MaskedField/index.js +4 -4
- package/dist/esm/components/NumberField/NumberField.js +4 -4
- package/dist/esm/components/NumberField/index.js +4 -4
- package/dist/esm/components/PasswordField/PasswordField.js +4 -4
- package/dist/esm/components/PasswordField/index.js +4 -4
- package/dist/esm/components/Radio/Radio.js +3 -3
- package/dist/esm/components/Radio/RadioGroup.js +3 -3
- package/dist/esm/components/Radio/index.js +4 -4
- package/dist/esm/components/Select/Select.js +3 -3
- package/dist/esm/components/Select/index.js +3 -3
- package/dist/esm/components/TextArea/TextArea.js +3 -3
- package/dist/esm/components/TextArea/index.js +3 -3
- package/dist/esm/components/TextField/TextField.js +3 -3
- package/dist/esm/components/TextField/index.js +3 -3
- package/dist/esm/components/TextOrHTML/TextOrHTML.js +1 -1
- package/dist/esm/components/TextOrHTML/index.js +1 -1
- package/dist/esm/components/index.js +17 -17
- package/dist/esm/index.js +17 -17
- package/dist/esm/meta.json +191 -191
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/TextOrHTML/TextOrHTML.test.tsx +45 -8
- package/src/components/TextOrHTML/TextOrHTML.tsx +7 -4
- package/dist/esm/chunk-DYTHXKMX.js.map +0 -7
- /package/dist/esm/{chunk-4WVJNNBK.js.map → chunk-2HUMNED2.js.map} +0 -0
- /package/dist/esm/{chunk-N4WQ6522.js.map → chunk-2VEO5SSY.js.map} +0 -0
- /package/dist/esm/{chunk-AFU7BFCD.js.map → chunk-576SEJGC.js.map} +0 -0
- /package/dist/esm/{chunk-QPIA6BGW.js.map → chunk-6JCU4CGA.js.map} +0 -0
- /package/dist/esm/{chunk-X6EPYQKX.js.map → chunk-F5ELD54X.js.map} +0 -0
- /package/dist/esm/{chunk-ZN5TRIVZ.js.map → chunk-GV36OVX7.js.map} +0 -0
- /package/dist/esm/{chunk-JNAQ76CR.js.map → chunk-HGNWNZ5E.js.map} +0 -0
- /package/dist/esm/{chunk-ONDOONBM.js.map → chunk-HUSMC5GZ.js.map} +0 -0
- /package/dist/esm/{chunk-UIIXVY6K.js.map → chunk-IQKS662C.js.map} +0 -0
- /package/dist/esm/{chunk-5OFXPT4J.js.map → chunk-M62U4QGQ.js.map} +0 -0
- /package/dist/esm/{chunk-UQVAEWY2.js.map → chunk-MZJT3USG.js.map} +0 -0
- /package/dist/esm/{chunk-FKTDL7KO.js.map → chunk-OAG5T7NC.js.map} +0 -0
- /package/dist/esm/{chunk-M2NDSQR5.js.map → chunk-P6YHEIFT.js.map} +0 -0
- /package/dist/esm/{chunk-P5VEI574.js.map → chunk-S4CU4XRB.js.map} +0 -0
- /package/dist/esm/{chunk-4NBLO5WK.js.map → chunk-X4CMSAET.js.map} +0 -0
- /package/dist/esm/{chunk-KQZ3MNK5.js.map → chunk-XNEQHHNV.js.map} +0 -0
package/package.json
CHANGED
|
@@ -128,14 +128,14 @@ describe("TextOrHTML", () => {
|
|
|
128
128
|
});
|
|
129
129
|
|
|
130
130
|
describe("autoDetect prop", () => {
|
|
131
|
-
it("detects HTML content and renders
|
|
131
|
+
it("detects inline HTML content and renders in a Text-equivalent element", () => {
|
|
132
132
|
const { container } = render(
|
|
133
133
|
<TextOrHTML text="<strong>Bold text</strong>" autoDetect />,
|
|
134
134
|
);
|
|
135
|
-
expect(container.firstChild?.nodeName).toBe("
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
expect(container.firstChild?.nodeName).toBe("P");
|
|
136
|
+
expect((container.firstChild as HTMLElement)?.innerHTML).toBe(
|
|
137
|
+
"<strong>Bold text</strong>",
|
|
138
|
+
);
|
|
139
139
|
});
|
|
140
140
|
|
|
141
141
|
it("detects plain text and renders directly in a Text component without nested span", () => {
|
|
@@ -225,7 +225,7 @@ describe("TextOrHTML", () => {
|
|
|
225
225
|
const { container } = render(
|
|
226
226
|
<TextOrHTML
|
|
227
227
|
htmlElementType="span"
|
|
228
|
-
text="<
|
|
228
|
+
text="<div>Block HTML</div>"
|
|
229
229
|
autoDetect
|
|
230
230
|
/>,
|
|
231
231
|
);
|
|
@@ -235,7 +235,7 @@ describe("TextOrHTML", () => {
|
|
|
235
235
|
it("wraps HTML in Text when both autoDetect and textWrapper are true", () => {
|
|
236
236
|
render(
|
|
237
237
|
<TextOrHTML
|
|
238
|
-
text="<
|
|
238
|
+
text="<div>Block</div>"
|
|
239
239
|
htmlElementType="span"
|
|
240
240
|
autoDetect
|
|
241
241
|
textWrapper
|
|
@@ -246,7 +246,7 @@ describe("TextOrHTML", () => {
|
|
|
246
246
|
expect(element).toHaveClass(CLASS_NAME);
|
|
247
247
|
// eslint-disable-next-line testing-library/no-node-access
|
|
248
248
|
const span = element.querySelector("span");
|
|
249
|
-
expect(span?.innerHTML).toBe("<
|
|
249
|
+
expect(span?.innerHTML).toBe("<div>Block</div>");
|
|
250
250
|
});
|
|
251
251
|
|
|
252
252
|
it("passes className to Text wrapper when autoDetect wraps plain text", () => {
|
|
@@ -271,6 +271,43 @@ describe("TextOrHTML", () => {
|
|
|
271
271
|
// eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
|
|
272
272
|
expect(container.querySelector(`.${CLASS_NAME}`)).toBeNull();
|
|
273
273
|
});
|
|
274
|
+
|
|
275
|
+
it("detects block-level tags appearing after leading prose", () => {
|
|
276
|
+
const { container } = render(
|
|
277
|
+
<TextOrHTML
|
|
278
|
+
text="Estimate the total: <ul><li>Item one</li><li>Item two</li></ul>"
|
|
279
|
+
autoDetect
|
|
280
|
+
/>,
|
|
281
|
+
);
|
|
282
|
+
expect(container.firstChild?.nodeName).toBe("DIV");
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
it("detects block-level tags appearing after leading prose with <br>", () => {
|
|
286
|
+
const { container } = render(
|
|
287
|
+
<TextOrHTML
|
|
288
|
+
text="Estimate the total amount: <br> <ul> <li> Yourself </li> </ul>"
|
|
289
|
+
autoDetect
|
|
290
|
+
/>,
|
|
291
|
+
);
|
|
292
|
+
expect(container.firstChild?.nodeName).toBe("DIV");
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
it("treats text with only <br> as inline, not block", () => {
|
|
296
|
+
const { container } = render(
|
|
297
|
+
<TextOrHTML text="Line one <br> Line two" autoDetect />,
|
|
298
|
+
);
|
|
299
|
+
expect(container.firstChild?.nodeName).toBe("P");
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
it("treats text with only inline tags as inline", () => {
|
|
303
|
+
const { container } = render(
|
|
304
|
+
<TextOrHTML
|
|
305
|
+
text="This has <em>emphasis</em> and <strong>bold</strong>"
|
|
306
|
+
autoDetect
|
|
307
|
+
/>,
|
|
308
|
+
);
|
|
309
|
+
expect(container.firstChild?.nodeName).toBe("P");
|
|
310
|
+
});
|
|
274
311
|
});
|
|
275
312
|
|
|
276
313
|
// See: https://github.com/facebook/react/issues/31660
|
|
@@ -6,7 +6,10 @@ import { Text, getElementType } from "../Text/Text";
|
|
|
6
6
|
|
|
7
7
|
export type HTMLElementType = "span" | "div";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// Block-level tags that cannot be nested inside <p>.
|
|
10
|
+
const BLOCK_TAG =
|
|
11
|
+
/<(div|p|ul|ol|li|h[1-6]|table|tr|td|th|blockquote|pre|hr|dl|dt|dd)[\s>/]/i;
|
|
12
|
+
const containsBlockHTML = (text: string) => BLOCK_TAG.test(text);
|
|
10
13
|
const containsHTML = (text: string) =>
|
|
11
14
|
/<[a-z/]/i.test(text) || /&(?:#\d+|#x[\da-f]+|[a-z]\w*);/i.test(text); // tag or entity
|
|
12
15
|
|
|
@@ -49,7 +52,7 @@ const TextOrHTML = ({
|
|
|
49
52
|
autoDetect = false,
|
|
50
53
|
...textProps
|
|
51
54
|
}: TextOrHTMLProps) => {
|
|
52
|
-
const
|
|
55
|
+
const hasBlockContent = autoDetect && containsBlockHTML(text);
|
|
53
56
|
|
|
54
57
|
// Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders
|
|
55
58
|
// See: https://github.com/facebook/react/issues/31660
|
|
@@ -57,7 +60,7 @@ const TextOrHTML = ({
|
|
|
57
60
|
|
|
58
61
|
// Non-block text with autoDetect: render directly on a Text-equivalent element,
|
|
59
62
|
// avoiding unnecessary <span> nesting inside <p>.
|
|
60
|
-
if (autoDetect && !
|
|
63
|
+
if (autoDetect && !hasBlockContent) {
|
|
61
64
|
const { variant, spacing, elementType, className, ...domProps } = textProps;
|
|
62
65
|
const Element = getElementType(variant, elementType);
|
|
63
66
|
const classes = buildTextClasses(textProps, htmlClassName);
|
|
@@ -77,7 +80,7 @@ const TextOrHTML = ({
|
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
const DangerousComponent =
|
|
80
|
-
htmlElementType ?? (
|
|
83
|
+
htmlElementType ?? (hasBlockContent ? "div" : "span");
|
|
81
84
|
const dangerousElement = (
|
|
82
85
|
<DangerousComponent
|
|
83
86
|
className={htmlClassName}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/TextOrHTML/TextOrHTML.tsx"],
|
|
4
|
-
"sourcesContent": ["import classNames from \"classnames/dedupe\";\nimport type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text, getElementType } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isBlockHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\nconst containsHTML = (text: string) =>\n /<[a-z/]/i.test(text) || /&(?:#\\d+|#x[\\da-f]+|[a-z]\\w*);/i.test(text); // tag or entity\n\nconst buildTextClasses = (\n textProps: Omit<TextProps, \"children\">,\n htmlClassName?: string,\n) => {\n const { variant, elementType, spacing, className } = textProps;\n const variantType = variant || getElementType(variant, elementType);\n return classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n htmlClassName,\n );\n};\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsBlockHTML = autoDetect && isBlockHTML(text);\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n // Non-block text with autoDetect: render directly on a Text-equivalent element,\n // avoiding unnecessary <span> nesting inside <p>.\n if (autoDetect && !textIsBlockHTML) {\n const { variant, spacing, elementType, className, ...domProps } = textProps;\n const Element = getElementType(variant, elementType);\n const classes = buildTextClasses(textProps, htmlClassName);\n\n return containsHTML(text) ? (\n <Element\n ref={ref}\n {...domProps}\n className={classes}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n ) : (\n <Element ref={ref} {...domProps} className={classes}>\n {text}\n </Element>\n );\n }\n\n const DangerousComponent =\n htmlElementType ?? (textIsBlockHTML ? \"div\" : \"span\");\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (textWrapper) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n"],
|
|
5
|
-
"mappings": ";;;;;;AAAA,OAAO,gBAAgB;AAEvB,SAAS,eAAe;AA+DlB;AAzDN,IAAM,cAAc,CAAC,SAAiB,cAAc,KAAK,IAAI;AAC7D,IAAM,eAAe,CAAC,SACpB,WAAW,KAAK,IAAI,KAAK,kCAAkC,KAAK,IAAI;AAEtE,IAAM,mBAAmB,CACvB,WACA,kBACG;AACH,QAAM,EAAE,SAAS,aAAa,SAAS,UAAU,IAAI;AACrD,QAAM,cAAc,WAAW,eAAe,SAAS,WAAW;AAClE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,EAAE,CAAC,QAAQ,WAAW,EAAE,GAAG,YAAY;AAAA,IACvC,EAAE,CAAC,qBAAqB,OAAO,EAAE,GAAG,QAAQ;AAAA,IAC5C;AAAA,IACA;AAAA,EACF;AACF;AAgBA,IAAM,aAAa,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,GAAG;AACL,MAAuB;AACrB,QAAM,kBAAkB,cAAc,YAAY,IAAI;AAItD,QAAM,gBAAgB,QAAQ,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC;AAI9D,MAAI,cAAc,CAAC,iBAAiB;AAClC,UAAM,EAAE,SAAS,SAAS,aAAa,WAAW,GAAG,SAAS,IAAI;AAClE,UAAM,UAAU,eAAe,SAAS,WAAW;AACnD,UAAM,UAAU,iBAAiB,WAAW,aAAa;AAEzD,WAAO,aAAa,IAAI,IACtB;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAG;AAAA,QACJ,WAAW;AAAA,QACX,yBAAyB;AAAA;AAAA,IAC3B,IAEA,oBAAC,WAAQ,KAAW,GAAG,UAAU,WAAW,SACzC,gBACH;AAAA,EAEJ;AAEA,QAAM,qBACJ,oBAAoB,kBAAkB,QAAQ;AAChD,QAAM,mBACJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,yBAAyB;AAAA;AAAA,EAC3B;AAGF,MAAI,aAAa;AACf,WACE,oBAAC,QAAK,KAAW,GAAG,WACjB,4BACH;AAAA,EAEJ;AAEA,SAAO;AACT;AAEA,WAAW,cAAc;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|