@uva-glass/component-library 1.13.0 → 1.14.0

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.
@@ -1,7 +1,6 @@
1
- interface Props {
1
+ export interface FieldHintProps {
2
2
  value?: string;
3
3
  spinnerAriaValueText: string;
4
4
  loading?: boolean;
5
5
  }
6
- export declare function FieldHint({ value, spinnerAriaValueText, loading }: Props): import("react/jsx-runtime").JSX.Element;
7
- export {};
6
+ export declare function FieldHint({ value, spinnerAriaValueText, loading }: FieldHintProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as r, jsx as n, Fragment as s } from "react/jsx-runtime";
2
- import { Spinner as f } from "../../Spinner/Spinner.js";
3
- import '../../../assets/FieldHint.css';const l = {
2
+ import { Spinner as f } from "../Spinner/Spinner.js";
3
+ import '../../assets/FieldHint.css';const l = {
4
4
  "field-hint": "_field-hint_f5ej1_1"
5
5
  };
6
6
  function m({ value: i, spinnerAriaValueText: e, loading: t }) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldHint.js","sources":["../../../src/components/FieldHint/FieldHint.tsx"],"sourcesContent":["import styles from './FieldHint.module.css';\n\nimport { Spinner } from 'components/Spinner/Spinner';\n\nexport interface FieldHintProps {\n value?: string;\n spinnerAriaValueText: string;\n loading?: boolean;\n}\n\nexport function FieldHint({ value, spinnerAriaValueText, loading }: FieldHintProps) {\n return (\n <span className={styles['field-hint']}>\n {value && <>{value}</>}\n {!value && loading && <Spinner ariaValueText={spinnerAriaValueText} />}\n </span>\n );\n}\n"],"names":["FieldHint","value","spinnerAriaValueText","loading","jsxs","styles","jsx","Spinner"],"mappings":";;;;;AAUO,SAASA,EAAU,EAAE,OAAAC,GAAO,sBAAAC,GAAsB,SAAAC,KAA2B;AAClF,SACG,gBAAAC,EAAA,QAAA,EAAK,WAAWC,EAAO,YAAY,GACjC,UAAA;AAAA,IAAAJ,4BAAY,UAAMA,EAAA,CAAA;AAAA,IAClB,CAACA,KAASE,KAAY,gBAAAG,EAAAC,GAAA,EAAQ,eAAeL,GAAsB;AAAA,EACtE,EAAA,CAAA;AAEJ;"}
@@ -0,0 +1,6 @@
1
+ import { FieldHintProps } from './FieldHint';
2
+
3
+ declare const _default: import('@storybook/types').ComponentAnnotations<import('@storybook/react').ReactRenderer, FieldHintProps>;
4
+ export default _default;
5
+ export declare const FieldHintExample: import('@storybook/types').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, FieldHintProps>;
6
+ export declare const LoadingFieldHint: import('@storybook/types').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, FieldHintProps>;
@@ -0,0 +1,33 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { FieldHint as t } from "./FieldHint.js";
3
+ const d = {
4
+ title: "Atoms/FieldHint",
5
+ component: t,
6
+ argTypes: {
7
+ value: {
8
+ control: "text"
9
+ },
10
+ spinnerAriaValueText: {
11
+ control: "text"
12
+ }
13
+ }
14
+ }, e = (n) => /* @__PURE__ */ l(t, { ...n }), i = {
15
+ spinnerAriaValueText: "FieldHint Loading"
16
+ }, o = e.bind({});
17
+ o.args = {
18
+ value: "This is a FieldHint",
19
+ loading: !1,
20
+ ...i
21
+ };
22
+ const a = e.bind({});
23
+ a.args = {
24
+ value: "",
25
+ loading: !0,
26
+ ...i
27
+ };
28
+ export {
29
+ o as FieldHintExample,
30
+ a as LoadingFieldHint,
31
+ d as default
32
+ };
33
+ //# sourceMappingURL=FieldHint.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldHint.stories.js","sources":["../../../src/components/FieldHint/FieldHint.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport type { FieldHintProps } from './FieldHint';\n\nimport { FieldHint } from './FieldHint';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/FieldHint',\n component: FieldHint,\n argTypes: {\n value: {\n control: 'text',\n },\n spinnerAriaValueText: {\n control: 'text',\n },\n },\n} as Meta<FieldHintProps>;\n\nconst Template: StoryFn<FieldHintProps> = (args) => <FieldHint {...args} />;\n\nconst defaultArgs: Partial<FieldHintProps> = {\n spinnerAriaValueText: 'FieldHint Loading',\n};\n\nexport const FieldHintExample = Template.bind({});\nFieldHintExample.args = {\n value: 'This is a FieldHint',\n loading: false,\n ...defaultArgs,\n};\n\nexport const LoadingFieldHint = Template.bind({});\nLoadingFieldHint.args = {\n value: '',\n loading: true,\n ...defaultArgs,\n};\n"],"names":["FieldHint_stories","FieldHint","Template","args","jsx","defaultArgs","FieldHintExample","LoadingFieldHint"],"mappings":";;AAMA,MAAeA,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,sBAAsB;AAAA,MACpB,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAEMC,IAAoC,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAW,GAAGE,EAAM,CAAA,GAEnEE,IAAuC;AAAA,EAC3C,sBAAsB;AACxB,GAEaC,IAAmBJ,EAAS,KAAK,EAAE;AAChDI,EAAiB,OAAO;AAAA,EACtB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,GAAGD;AACL;AAEO,MAAME,IAAmBL,EAAS,KAAK,EAAE;AAChDK,EAAiB,OAAO;AAAA,EACtB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,GAAGF;AACL;"}
@@ -2,11 +2,7 @@ import { InputHTMLAttributes } from 'react';
2
2
 
3
3
  export interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {
4
4
  variant?: 'large';
5
- hint?: string;
6
- spinnerAriaValueText: string;
7
- isHintLoading?: boolean;
8
5
  type?: 'text' | 'search' | 'password' | 'email';
9
- autoComplete?: 'off';
10
6
  id: string;
11
7
  }
12
8
  export declare const InputField: import('react').ForwardRefExoticComponent<InputFieldProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -1,29 +1,25 @@
1
- import { jsxs as m, Fragment as s, jsx as r } from "react/jsx-runtime";
2
- import { forwardRef as u } from "react";
3
- import { c } from "../../clsx-DB4S2d7J.js";
4
- import { FieldHint as _ } from "./components/FieldHint.js";
5
- import '../../assets/InputField.css';const i = {
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as o } from "react";
3
+ import { c as a } from "../../clsx-DB4S2d7J.js";
4
+ import '../../assets/InputField.css';const e = {
6
5
  "input-field": "_input-field_16tae_1",
7
6
  "input-field--large": "_input-field--large_16tae_15"
8
- }, v = u(
9
- ({ autoComplete: l = "off", id: f, variant: o, hint: e, isHintLoading: t, spinnerAriaValueText: p, type: a = "text", ...n }, d) => /* @__PURE__ */ m(s, { children: [
10
- /* @__PURE__ */ r(
11
- "input",
12
- {
13
- ...n,
14
- autoComplete: l,
15
- ref: d,
16
- id: f,
17
- className: c(i["input-field"], {
18
- [i["input-field--large"]]: o === "large"
19
- }),
20
- type: a
21
- }
22
- ),
23
- (e || t) && /* @__PURE__ */ r(_, { loading: t, spinnerAriaValueText: p, value: e })
24
- ] })
7
+ }, m = o(
8
+ ({ autoComplete: t = "off", id: i, variant: r, type: f = "text", ...l }, p) => /* @__PURE__ */ n(
9
+ "input",
10
+ {
11
+ ...l,
12
+ autoComplete: t,
13
+ ref: p,
14
+ id: i,
15
+ className: a(e["input-field"], {
16
+ [e["input-field--large"]]: r === "large"
17
+ }),
18
+ type: f
19
+ }
20
+ )
25
21
  );
26
22
  export {
27
- v as InputField
23
+ m as InputField
28
24
  };
29
25
  //# sourceMappingURL=InputField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { InputHTMLAttributes } from 'react';\n\nimport styles from './InputField.module.css';\nimport { FieldHint } from './components/FieldHint';\n\nexport interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {\n variant?: 'large';\n hint?: string;\n spinnerAriaValueText: string;\n isHintLoading?: boolean;\n type?: 'text' | 'search' | 'password' | 'email';\n autoComplete?: 'off'\n id: string;\n}\n\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n { autoComplete = 'off', id, variant, hint, isHintLoading, spinnerAriaValueText, type = 'text', ...restProps }: InputFieldProps,\n forwardedRef\n ) => {\n return (\n <>\n <input\n {...restProps}\n autoComplete={autoComplete}\n ref={forwardedRef}\n id={id}\n className={clsx(styles['input-field'], {\n [styles['input-field--large']]: variant === 'large',\n })}\n type={type}\n />\n {(hint || isHintLoading) && <FieldHint loading={isHintLoading} spinnerAriaValueText={spinnerAriaValueText} value={hint} />}\n </>\n );\n }\n);\n"],"names":["InputField","forwardRef","autoComplete","id","variant","hint","isHintLoading","spinnerAriaValueText","type","restProps","forwardedRef","jsxs","Fragment","jsx","clsx","styles","FieldHint"],"mappings":";;;;;;;GAkBaA,IAAaC;AAAA,EACxB,CACE,EAAE,cAAAC,IAAe,OAAO,IAAAC,GAAI,SAAAC,GAAS,MAAAC,GAAM,eAAAC,GAAe,sBAAAC,GAAsB,MAAAC,IAAO,QAAQ,GAAGC,EAAA,GAClGC,MAII,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAGJ;AAAA,QACJ,cAAAP;AAAA,QACA,KAAKQ;AAAA,QACL,IAAAP;AAAA,QACA,WAAWW,EAAKC,EAAO,aAAa,GAAG;AAAA,UACrC,CAACA,EAAO,oBAAoB,CAAC,GAAGX,MAAY;AAAA,QAAA,CAC7C;AAAA,QACD,MAAAI;AAAA,MAAA;AAAA,IACF;AAAA,KACEH,KAAQC,MAAmB,gBAAAO,EAAAG,GAAA,EAAU,SAASV,GAAe,sBAAAC,GAA4C,OAAOF,GAAM;AAAA,EAC1H,EAAA,CAAA;AAGN;"}
1
+ {"version":3,"file":"InputField.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { InputHTMLAttributes } from 'react';\n\nimport styles from './InputField.module.css';\n\nexport interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {\n variant?: 'large';\n type?: 'text' | 'search' | 'password' | 'email';\n id: string;\n}\n\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n ({ autoComplete = 'off', id, variant, type = 'text', ...restProps }: InputFieldProps, forwardedRef) => {\n return (\n <input\n {...restProps}\n autoComplete={autoComplete}\n ref={forwardedRef}\n id={id}\n className={clsx(styles['input-field'], {\n [styles['input-field--large']]: variant === 'large',\n })}\n type={type}\n />\n );\n }\n);\n"],"names":["InputField","forwardRef","autoComplete","id","variant","type","restProps","forwardedRef","jsx","clsx","styles"],"mappings":";;;;;;GAaaA,IAAaC;AAAA,EACxB,CAAC,EAAE,cAAAC,IAAe,OAAO,IAAAC,GAAI,SAAAC,GAAS,MAAAC,IAAO,QAAQ,GAAGC,EAAU,GAAoBC,MAElF,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,cAAAJ;AAAA,MACA,KAAKK;AAAA,MACL,IAAAJ;AAAA,MACA,WAAWM,EAAKC,EAAO,aAAa,GAAG;AAAA,QACrC,CAACA,EAAO,oBAAoB,CAAC,GAAGN,MAAY;AAAA,MAAA,CAC7C;AAAA,MACD,MAAAC;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -3,5 +3,3 @@ import { InputFieldProps } from './InputField';
3
3
  declare const _default: import('@storybook/types').ComponentAnnotations<import('@storybook/react').ReactRenderer, InputFieldProps>;
4
4
  export default _default;
5
5
  export declare const InputFieldExample: import('@storybook/types').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, InputFieldProps>;
6
- export declare const WithHint: import('@storybook/types').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, InputFieldProps>;
7
- export declare const WithLoadingHint: import('@storybook/types').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, InputFieldProps>;
@@ -1,28 +1,16 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { InputField as e } from "./InputField.js";
3
- import '../../assets/InputField2.css';const r = (t) => {
4
- const a = t.variant ?? [];
5
- return { ...t, variant: a.toString() };
6
- }, m = {
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { InputField as o } from "./InputField.js";
3
+ import '../../assets/InputField2.css';const a = (t) => {
4
+ const r = t.variant ?? [];
5
+ return { ...t, variant: r.toString() };
6
+ }, d = {
7
7
  title: "Atoms/InputField",
8
- component: e,
8
+ component: o,
9
9
  argTypes: {
10
10
  variant: {
11
11
  options: ["large"],
12
12
  control: "check"
13
13
  },
14
- hint: {
15
- control: "text"
16
- },
17
- spinnerAriaValueText: {
18
- control: "text"
19
- },
20
- isHintLoading: {
21
- control: Boolean,
22
- table: {
23
- disable: !0
24
- }
25
- },
26
14
  type: {
27
15
  control: "radio",
28
16
  options: ["text", "search", "password", "email"]
@@ -31,35 +19,19 @@ import '../../assets/InputField2.css';const r = (t) => {
31
19
  control: "text"
32
20
  },
33
21
  autoComplete: {
34
- control: "radio",
35
- options: ["off"]
22
+ table: {
23
+ disable: !0
24
+ }
36
25
  }
37
26
  }
38
- }, n = (t) => /* @__PURE__ */ o("div", { className: "form", children: /* @__PURE__ */ o("div", { className: "form-field", children: /* @__PURE__ */ o(e, { ...r(t) }) }) }), i = {
27
+ }, i = (t) => /* @__PURE__ */ e("div", { className: "form", children: /* @__PURE__ */ e("div", { className: "form-field", children: /* @__PURE__ */ e(o, { ...a(t) }) }) }), n = i.bind({});
28
+ n.args = {
39
29
  type: "text",
40
30
  variant: void 0,
41
- hint: void 0,
42
- spinnerAriaValueText: "Loading",
43
- autoComplete: "off",
44
31
  id: "4f9ca77d"
45
- }, s = n.bind({});
46
- s.args = {
47
- ...i
48
- };
49
- const l = n.bind({});
50
- l.args = {
51
- ...i,
52
- hint: "Example hint"
53
- };
54
- const d = n.bind({});
55
- d.args = {
56
- ...i,
57
- isHintLoading: !0
58
32
  };
59
33
  export {
60
- s as InputFieldExample,
61
- l as WithHint,
62
- d as WithLoadingHint,
63
- m as default
34
+ n as InputFieldExample,
35
+ d as default
64
36
  };
65
37
  //# sourceMappingURL=InputField.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputField.stories.js","sources":["../../../src/components/InputField/InputField.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport type { InputFieldProps } from './InputField';\n\nimport './InputField.stories.css';\n\nimport { InputField } from './InputField';\n\nconst transformArgs = (args: InputFieldProps) => {\n // args.variant is provided as an array because the control type is set to a checkbox. So this transforms the selected value into its proper value: a string\n const variantArray = (args.variant as unknown as string[]) ?? [];\n return { ...args, ...{ variant: variantArray.toString() } } as InputFieldProps;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/InputField',\n component: InputField,\n argTypes: {\n variant: {\n options: ['large'],\n control: 'check',\n },\n hint: {\n control: 'text',\n },\n spinnerAriaValueText: {\n control: 'text',\n },\n isHintLoading: {\n control: Boolean,\n table: {\n disable: true,\n },\n },\n type: {\n control: 'radio',\n options: ['text', 'search', 'password', 'email'],\n },\n id: {\n control: 'text',\n },\n autoComplete: {\n control: 'radio',\n options: ['off'],\n },\n },\n} as Meta<InputFieldProps>;\n\nconst Template: StoryFn<InputFieldProps> = (args) => (\n <div className=\"form\">\n <div className=\"form-field\">\n <InputField {...transformArgs(args)} />\n </div>\n </div>\n);\n\nconst defaultArgs: Partial<InputFieldProps> = {\n type: 'text',\n variant: undefined,\n hint: undefined,\n spinnerAriaValueText: 'Loading',\n autoComplete: 'off',\n id: '4f9ca77d',\n};\n\nexport const InputFieldExample = Template.bind({});\nInputFieldExample.args = {\n ...defaultArgs,\n};\n\nexport const WithHint = Template.bind({});\nWithHint.args = {\n ...defaultArgs,\n hint: 'Example hint',\n};\n\nexport const WithLoadingHint = Template.bind({});\nWithLoadingHint.args = {\n ...defaultArgs,\n isHintLoading: true\n};\n"],"names":["transformArgs","args","variantArray","InputField_stories","InputField","Template","jsx","defaultArgs","InputFieldExample","WithHint","WithLoadingHint"],"mappings":";;AAOA,MAAMA,IAAgB,CAACC,MAA0B;AAEzC,QAAAC,IAAgBD,EAAK,WAAmC;AACvD,SAAA,EAAE,GAAGA,GAAW,SAASC,EAAa,SAAS;AACxD,GAGeC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,CAAC,OAAO;AAAA,MACjB,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,IACX;AAAA,IACA,sBAAsB;AAAA,MACpB,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,SAAS;AAAA,MACT,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,SAAS,CAAC,QAAQ,UAAU,YAAY,OAAO;AAAA,IACjD;AAAA,IACA,IAAI;AAAA,MACF,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,SAAS;AAAA,MACT,SAAS,CAAC,KAAK;AAAA,IACjB;AAAA,EACF;AACF,GAEMC,IAAqC,CAACJ,wBACzC,OAAI,EAAA,WAAU,QACb,UAAC,gBAAAK,EAAA,OAAA,EAAI,WAAU,cACb,4BAACF,GAAY,EAAA,GAAGJ,EAAcC,CAAI,EAAG,CAAA,GACvC,EACF,CAAA,GAGIM,IAAwC;AAAA,EAC5C,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,IAAI;AACN,GAEaC,IAAoBH,EAAS,KAAK,EAAE;AACjDG,EAAkB,OAAO;AAAA,EACvB,GAAGD;AACL;AAEO,MAAME,IAAWJ,EAAS,KAAK,EAAE;AACxCI,EAAS,OAAO;AAAA,EACd,GAAGF;AAAA,EACH,MAAM;AACR;AAEO,MAAMG,IAAkBL,EAAS,KAAK,EAAE;AAC/CK,EAAgB,OAAO;AAAA,EACrB,GAAGH;AAAA,EACH,eAAe;AACjB;"}
1
+ {"version":3,"file":"InputField.stories.js","sources":["../../../src/components/InputField/InputField.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\nimport type { InputFieldProps } from './InputField';\n\nimport './InputField.stories.css';\n\nimport { InputField } from './InputField';\n\nconst transformArgs = (args: InputFieldProps) => {\n // args.variant is provided as an array because the control type is set to a checkbox. So this transforms the selected value into its proper value: a string\n const variantArray = (args.variant as unknown as string[]) ?? [];\n return { ...args, ...{ variant: variantArray.toString() } } as InputFieldProps;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Atoms/InputField',\n component: InputField,\n argTypes: {\n variant: {\n options: ['large'],\n control: 'check',\n },\n type: {\n control: 'radio',\n options: ['text', 'search', 'password', 'email'],\n },\n id: {\n control: 'text',\n },\n autoComplete: {\n table: {\n disable: true,\n },\n },\n },\n} as Meta<InputFieldProps>;\n\nconst Template: StoryFn<InputFieldProps> = (args) => (\n <div className=\"form\">\n <div className=\"form-field\">\n <InputField {...transformArgs(args)} />\n </div>\n </div>\n);\n\nexport const InputFieldExample = Template.bind({});\nInputFieldExample.args = {\n type: 'text',\n variant: undefined,\n id: '4f9ca77d',\n};\n"],"names":["transformArgs","args","variantArray","InputField_stories","InputField","Template","jsx","InputFieldExample"],"mappings":";;AAOA,MAAMA,IAAgB,CAACC,MAA0B;AAEzC,QAAAC,IAAgBD,EAAK,WAAmC;AACvD,SAAA,EAAE,GAAGA,GAAW,SAASC,EAAa,SAAS;AACxD,GAGeC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,CAAC,OAAO;AAAA,MACjB,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,SAAS,CAAC,QAAQ,UAAU,YAAY,OAAO;AAAA,IACjD;AAAA,IACA,IAAI;AAAA,MACF,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,GAEMC,IAAqC,CAACJ,wBACzC,OAAI,EAAA,WAAU,QACb,UAAC,gBAAAK,EAAA,OAAA,EAAI,WAAU,cACb,4BAACF,GAAY,EAAA,GAAGJ,EAAcC,CAAI,EAAG,CAAA,GACvC,EACF,CAAA,GAGWM,IAAoBF,EAAS,KAAK,EAAE;AACjDE,EAAkB,OAAO;AAAA,EACvB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,IAAI;AACN;"}