@faasri/ui 0.0.1 → 0.0.11

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.
Files changed (31) hide show
  1. package/dist/assets/icons/chevron-down.svg +12 -0
  2. package/dist/assets/icons/chevron-right.svg +11 -0
  3. package/dist/assets/icons/search.svg +12 -0
  4. package/dist/assets/icons/spinner.svg +25 -0
  5. package/dist/components/button/{VButton.vue.d.ts → FusButton.vue.d.ts} +2 -2
  6. package/dist/components/button/FusButton.vue.d.ts.map +1 -0
  7. package/dist/components/form/FusFloatLabel.vue.d.ts +52 -0
  8. package/dist/components/form/FusFloatLabel.vue.d.ts.map +1 -0
  9. package/dist/components/form/{VInputText.vue.d.ts → FusInputText.vue.d.ts} +36 -9
  10. package/dist/components/form/FusInputText.vue.d.ts.map +1 -0
  11. package/dist/components/icon/{VIcon.vue.d.ts → FusIcon.vue.d.ts} +1 -1
  12. package/dist/components/icon/FusIcon.vue.d.ts.map +1 -0
  13. package/dist/components/icon/index.d.ts +2 -2
  14. package/dist/components/icon/index.d.ts.map +1 -1
  15. package/dist/components/index.d.ts +4 -3
  16. package/dist/components/index.d.ts.map +1 -1
  17. package/dist/index.mjs +336 -220
  18. package/dist/index.umd.cjs +1 -60
  19. package/dist/styles.css +1 -1
  20. package/dist/theme.brand.css +10 -0
  21. package/dist/theme.dark.css +31 -0
  22. package/dist/theme.light.css +31 -0
  23. package/dist/theme.primitives.css +134 -0
  24. package/package.json +5 -4
  25. package/dist/chevron-down-CjHQXiTz.js +0 -16
  26. package/dist/chevron-right-DG0VFI4B.js +0 -14
  27. package/dist/components/button/VButton.vue.d.ts.map +0 -1
  28. package/dist/components/form/VInputText.vue.d.ts.map +0 -1
  29. package/dist/components/icon/VIcon.vue.d.ts.map +0 -1
  30. package/dist/search-CiEBIdtM.js +0 -16
  31. package/dist/spinner-v2pYCG5W.js +0 -29
@@ -0,0 +1,12 @@
1
+ <svg
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ viewBox="8 4 10 16"
4
+ fill="none"
5
+ stroke="currentColor"
6
+ stroke-width="var(--icon-stroke, 2)"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ transform="rotate(90 13 12)"
10
+ >
11
+ <polyline points="10 6 16 12 10 18" />
12
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ viewBox="9 5 8 14"
4
+ fill="none"
5
+ stroke="currentColor"
6
+ stroke-width="var(--icon-stroke, 2)"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ >
10
+ <polyline points="10 6 16 12 10 18" />
11
+ </svg>
@@ -0,0 +1,12 @@
1
+ <svg
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ viewBox="1.5 1.5 21 21"
4
+ fill="none"
5
+ stroke="currentColor"
6
+ stroke-width="var(--icon-stroke, 2)"
7
+ stroke-linecap="round"
8
+ stroke-linejoin="round"
9
+ >
10
+ <circle cx="10" cy="10" r="7" />
11
+ <line x1="15" y1="15" x2="20" y2="20" />
12
+ </svg>
@@ -0,0 +1,25 @@
1
+ <svg
2
+ class="v-btn__spinner"
3
+ width="16"
4
+ height="16"
5
+ viewBox="0 0 24 24"
6
+ fill="none"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ aria-hidden="true"
9
+ >
10
+ <circle
11
+ cx="12"
12
+ cy="12"
13
+ r="9"
14
+ stroke="currentColor"
15
+ stroke-width="var(--icon-stroke, 2)"
16
+ stroke-linecap="round"
17
+ opacity="0.25"
18
+ />
19
+ <path
20
+ d="M21 12a9 9 0 0 1-9 9"
21
+ stroke="currentColor"
22
+ stroke-width="2"
23
+ stroke-linecap="round"
24
+ />
25
+ </svg>
@@ -36,8 +36,8 @@ declare function __VLS_template(): {
36
36
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
37
37
  declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
38
38
  size: ButtonSize;
39
- as: "button" | "a";
40
39
  type: "button" | "submit" | "reset";
40
+ as: "button" | "a";
41
41
  variant: ButtonVariant;
42
42
  severity: ButtonSeverity;
43
43
  raised: boolean;
@@ -53,4 +53,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
53
53
  $slots: S;
54
54
  };
55
55
  };
56
- //# sourceMappingURL=VButton.vue.d.ts.map
56
+ //# sourceMappingURL=FusButton.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/button/FusButton.vue"],"names":[],"mappings":"AAkMA,KAAK,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AACzF,KAAK,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAElE,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACrC,KAAK,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AACpD,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACvD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AACjD,KAAK,aAAa,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAMzD,KAAK,WAAW,GAAG;IACf,EAAE,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAwHJ,iBAAS,cAAc;WAiHT,OAAO,IAA6B;;sBAXvB,GAAG;yBACA,GAAG;;;;EAehC;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;UAhRV,UAAU;UAUV,QAAQ,GAAG,QAAQ,GAAG,OAAO;QAnB/B,QAAQ,GAAG,GAAG;aAKT,aAAa;cACZ,cAAc;YAChB,OAAO;aACN,OAAO;kBAIF,kBAAkB;cAKtB,OAAO;aACR,OAAO;6EA8QnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,52 @@
1
+ export type FloatLabelVariant = "basic" | "in" | "on";
2
+ export type FloatLabelVars = Partial<{
3
+ "--fus-floatlabel-color": string;
4
+ "--fus-floatlabel-focus-color": string;
5
+ "--fus-floatlabel-active-color": string;
6
+ "--fus-floatlabel-invalid-color": string;
7
+ "--fus-floatlabel-transition-duration": string;
8
+ "--fus-floatlabel-position-x": string;
9
+ "--fus-floatlabel-position-y": string;
10
+ "--fus-floatlabel-font-weight": string;
11
+ "--fus-floatlabel-active-font-size": string;
12
+ "--fus-floatlabel-active-font-weight": string;
13
+ "--fus-floatlabel-over-active-top": string;
14
+ "--fus-floatlabel-in-input-padding-top": string;
15
+ "--fus-floatlabel-in-input-padding-bottom": string;
16
+ "--fus-floatlabel-in-active-top": string;
17
+ "--fus-floatlabel-on-border-radius": string;
18
+ "--fus-floatlabel-on-active-background": string;
19
+ "--fus-floatlabel-on-active-padding": string;
20
+ }>;
21
+ type __VLS_Props = {
22
+ variant?: FloatLabelVariant;
23
+ invalid?: boolean;
24
+ disabled?: boolean;
25
+ vars?: FloatLabelVars;
26
+ };
27
+ declare function __VLS_template(): {
28
+ attrs: Partial<{}>;
29
+ slots: {
30
+ default?(_: {}): any;
31
+ };
32
+ refs: {
33
+ containerRef: HTMLDivElement;
34
+ };
35
+ rootEl: any;
36
+ };
37
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
38
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
39
+ variant: FloatLabelVariant;
40
+ disabled: boolean;
41
+ invalid: boolean;
42
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
43
+ containerRef: HTMLDivElement;
44
+ }, any>;
45
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
46
+ export default _default;
47
+ type __VLS_WithTemplateSlots<T, S> = T & {
48
+ new (): {
49
+ $slots: S;
50
+ };
51
+ };
52
+ //# sourceMappingURL=FusFloatLabel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusFloatLabel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/form/FusFloatLabel.vue"],"names":[],"mappings":"AAkHA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,8BAA8B,EAAE,MAAM,CAAC;IACvC,+BAA+B,EAAE,MAAM,CAAC;IACxC,gCAAgC,EAAE,MAAM,CAAC;IAEzC,sCAAsC,EAAE,MAAM,CAAC;IAE/C,6BAA6B,EAAE,MAAM,CAAC;IACtC,6BAA6B,EAAE,MAAM,CAAC;IAEtC,8BAA8B,EAAE,MAAM,CAAC;IACvC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,qCAAqC,EAAE,MAAM,CAAC;IAE9C,kCAAkC,EAAE,MAAM,CAAC;IAE3C,uCAAuC,EAAE,MAAM,CAAC;IAChD,0CAA0C,EAAE,MAAM,CAAC;IACnD,gCAAgC,EAAE,MAAM,CAAC;IAEzC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,uCAAuC,EAAE,MAAM,CAAC;IAChD,oCAAoC,EAAE,MAAM,CAAC;CAC9C,CAAC,CAAC;AAIH,KAAK,WAAW,GAAG;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC;AAqEJ,iBAAS,cAAc;WA6BT,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;aA1HP,iBAAiB;cAEhB,OAAO;aADR,OAAO;;;OAiInB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,34 +1,61 @@
1
- type InputVariant = "primary" | "secondary" | "ghost";
2
- type InputSize = "sm" | "md" | "lg";
1
+ type InputVariant = "filled" | "flushed";
2
+ type InputSize = "sm" | "lg";
3
3
  type InputType = "text" | "email" | "password" | "search" | "tel" | "url" | "number";
4
4
  type ValidateOn = "input" | "blur" | "submit" | "never";
5
+ type LabelPosition = "top" | "left";
6
+ type StyleVars = Record<string, string | number>;
5
7
  type __VLS_Props = {
6
8
  modelValue?: string | number;
9
+ type?: InputType;
10
+ id?: string;
11
+ name?: string;
7
12
  placeholder?: string;
8
13
  variant?: InputVariant;
9
14
  size?: InputSize;
15
+ fluid?: boolean;
16
+ label?: string;
17
+ labelPosition?: LabelPosition;
10
18
  disabled?: boolean;
11
19
  invalid?: boolean;
12
20
  message?: string;
21
+ helpText?: string;
13
22
  validateOn?: ValidateOn;
14
- name?: string;
15
- id?: string;
16
- type?: InputType;
23
+ form?: boolean;
24
+ submitText?: string;
25
+ submitDisabled?: boolean;
26
+ vars?: StyleVars;
17
27
  };
18
28
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
29
+ submit: (payload: {
30
+ name?: string;
31
+ value: string | number;
32
+ isValid: boolean;
33
+ }) => any;
19
34
  "update:modelValue": (value: string | number) => any;
20
35
  "invalid-change": (invalid: boolean) => any;
21
36
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
37
+ onSubmit?: ((payload: {
38
+ name?: string;
39
+ value: string | number;
40
+ isValid: boolean;
41
+ }) => any) | undefined;
22
42
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
23
43
  "onInvalid-change"?: ((invalid: boolean) => any) | undefined;
24
44
  }>, {
25
- size: InputSize;
26
45
  type: InputType;
27
- variant: InputVariant;
46
+ form: boolean;
47
+ label: string;
28
48
  disabled: boolean;
49
+ fluid: boolean;
50
+ labelPosition: LabelPosition;
29
51
  invalid: boolean;
30
52
  message: string;
53
+ helpText: string;
31
54
  validateOn: ValidateOn;
32
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
55
+ submitText: string;
56
+ submitDisabled: boolean;
57
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
58
+ inputRef: HTMLInputElement;
59
+ }, any>;
33
60
  export default _default;
34
- //# sourceMappingURL=VInputText.vue.d.ts.map
61
+ //# sourceMappingURL=FusInputText.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusInputText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/form/FusInputText.vue"],"names":[],"mappings":"AAyWA,KAAK,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AACzC,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7B,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AACrF,KAAK,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACxD,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AACpC,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAqBjD,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;;;eA2B8B,MAAM;eAAS,MAAM,GAAG,MAAM;iBAAW,OAAO;;;;;;eAAhD,MAAM;eAAS,MAAM,GAAG,MAAM;iBAAW,OAAO;;;;;UApDvE,SAAS;UAoBT,OAAO;WAXN,MAAM;cAGH,OAAO;WALV,OAAO;mBAGC,aAAa;aAGnB,OAAO;aAEP,MAAM;cACL,MAAM;gBAEJ,UAAU;gBAGV,MAAM;oBACF,OAAO;;;;AAyY5B,wBASG"}
@@ -10,4 +10,4 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
10
10
  weight: IconWeight;
11
11
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
12
12
  export default _default;
13
- //# sourceMappingURL=VIcon.vue.d.ts.map
13
+ //# sourceMappingURL=FusIcon.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/components/icon/FusIcon.vue"],"names":[],"mappings":"AA2GA,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAC5C,KAAK,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,KAAK,WAAW,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;;UAFO,QAAQ;YACN,UAAU;;AAyHvB,wBAQG"}
@@ -1,3 +1,3 @@
1
- import { default as VIcon } from './VIcon.vue';
2
- export { VIcon };
1
+ import { default as FusIcon } from './FusIcon.vue';
2
+ export { FusIcon };
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
- export { default as VButton } from './button/VButton.vue';
2
- export { default as VIcon } from './icon/VIcon.vue';
3
- export { default as VInputText } from './form/VInputText.vue';
1
+ export { default as FusButton } from './button/FusButton.vue';
2
+ export { default as FusIcon } from './icon/FusIcon.vue';
3
+ export { default as FusInputText } from './form/FusInputText.vue';
4
+ export { default as FusFloatLabel } from './form/FusFloatLabel.vue';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC"}