@charcoal-ui/styled 2.5.0 → 2.7.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.
Files changed (56) hide show
  1. package/dist/SetThemeScript.d.ts +20 -20
  2. package/dist/TokenInjector.d.ts +12 -12
  3. package/dist/TokenInjector.d.ts.map +1 -1
  4. package/dist/builders/border.d.ts +9 -9
  5. package/dist/builders/border.d.ts.map +1 -1
  6. package/dist/builders/borderRadius.d.ts +6 -6
  7. package/dist/builders/colors.d.ts +12 -12
  8. package/dist/builders/colors.d.ts.map +1 -1
  9. package/dist/builders/elementEffect.d.ts +6 -6
  10. package/dist/builders/o.d.ts +113 -114
  11. package/dist/builders/o.d.ts.map +1 -1
  12. package/dist/builders/outline.d.ts +9 -9
  13. package/dist/builders/outline.d.ts.map +1 -1
  14. package/dist/builders/size.d.ts +22 -22
  15. package/dist/builders/size.d.ts.map +1 -1
  16. package/dist/builders/spacing.d.ts +14 -14
  17. package/dist/builders/spacing.d.ts.map +1 -1
  18. package/dist/builders/transition.d.ts +6 -6
  19. package/dist/builders/typography.d.ts +10 -10
  20. package/dist/defineThemeVariables.test.d.ts +1 -1
  21. package/dist/factories/lib.d.ts +88 -88
  22. package/dist/factories/lib.d.ts.map +1 -1
  23. package/dist/helper.d.ts +38 -38
  24. package/dist/helper.d.ts.map +1 -1
  25. package/dist/index.cjs.js +918 -0
  26. package/dist/index.cjs.js.map +1 -0
  27. package/dist/index.d.ts +128 -128
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.esm.js +886 -0
  30. package/dist/index.esm.js.map +1 -0
  31. package/dist/index.story.d.ts +18 -25
  32. package/dist/index.story.d.ts.map +1 -1
  33. package/dist/index.test.d.ts +1 -1
  34. package/dist/internals/index.d.ts +41 -41
  35. package/dist/storyHelper.d.ts +9 -0
  36. package/dist/storyHelper.d.ts.map +1 -0
  37. package/dist/util.d.ts +100 -100
  38. package/dist/util.d.ts.map +1 -1
  39. package/package.json +16 -16
  40. package/src/builders/border.ts +1 -1
  41. package/src/builders/colors.ts +1 -1
  42. package/src/builders/o.ts +1 -8
  43. package/src/builders/outline.ts +1 -1
  44. package/src/builders/size.ts +1 -1
  45. package/src/builders/spacing.ts +2 -2
  46. package/src/index.story.tsx +1 -18
  47. package/src/index.test.tsx +2 -1
  48. package/src/index.ts +1 -12
  49. package/src/storyHelper.ts +18 -0
  50. package/src/util.ts +1 -1
  51. package/dist/index.cjs +0 -1174
  52. package/dist/index.cjs.map +0 -1
  53. package/dist/index.modern.js +0 -989
  54. package/dist/index.modern.js.map +0 -1
  55. package/dist/index.module.js +0 -1157
  56. package/dist/index.module.js.map +0 -1
@@ -1,89 +1,89 @@
1
- import { Key } from '@charcoal-ui/theme';
2
- /**
3
- * 配列で指定したプロパティを動的に生やす
4
- *
5
- * @param source 拡張するオブジェクト
6
- * @param member オブジェクトに生やすプロパティ一覧
7
- * @param chain プロパティに格納される値を生成する関数
8
- *
9
- * @example
10
- *
11
- * const o = factory({}, ['red', 'blue'],
12
- * color => hex(color)
13
- * )
14
- *
15
- * console.log(o.red) //=> #ff0000
16
- */
17
- export declare const defineProperties: <TSource, TMember extends readonly Key[], TValue>(source: TSource, member: TMember, chain: (key: TMember[number]) => TValue) => TSource & { readonly [key in TMember[number]]: TValue; };
18
- /**
19
- * 配列で指定した名前のメソッドを動的に生やす
20
- *
21
- * @param source 拡張するオブジェクト
22
- * @param member オブジェクトに生やすメソッド名一覧
23
- * @param chain メソッドの戻り値になる値を生成する関数
24
- *
25
- * @example
26
- *
27
- * const o = defineMethods({}, ['red', 'blue'],
28
- * (color, alpha: number) => hex(color, alpha)
29
- * )
30
- *
31
- * console.log(o.red(0.5)) //=> #ff000077
32
- */
33
- export declare const defineMethods: <TSource, TMember extends readonly string[], TValue, TArguments extends unknown[]>(source: TSource, member: TMember, chain: (key: TMember[number], ...args: TArguments) => TValue) => TSource & { readonly [key in TMember[number]]: (...args: TArguments) => TValue; };
34
- /**
35
- * オブジェクトで指定したプロパティ名と値を動的に生やす
36
- *
37
- * @param source 拡張するオブジェクト
38
- * @param def オブジェクトに生やす定義(プロパティ名と値)
39
- *
40
- * @example
41
- *
42
- * const o = defineConstantProperties({}, {
43
- * red: '#f00',
44
- * blue: '#00f',
45
- * })
46
- *
47
- * console.log(o.red) //=> #f00
48
- */
49
- export declare const defineConstantProperties: <TSource, TDef extends {
50
- [key: string]: unknown;
51
- }>(source: TSource, def: TDef) => TSource & Readonly<TDef>;
52
- /**
53
- * 配列で指定したモディファイア(プロパティ)をチェーン可能な再帰オブジェクトを動的に生やす
54
- *
55
- * @param modifiers オブジェクトに生やすモディファイヤ一覧
56
- * @param source 指定されたモディファイヤの一覧から値を生成する関数
57
- *
58
- * @example
59
- *
60
- * const o = definePropertyChains(['red', 'blue'],
61
- * modifiers => modifiers.map(color => hex(color)).join(',')
62
- * )
63
- *
64
- * console.log(o.red.blue) => #f00,#00f
65
- */
66
- export declare const definePropertyChains: <TSource, T extends Key>(modifiers: readonly T[], source: (applied: readonly T[]) => TSource) => PropertyChain<TSource, T>;
67
- export declare type PropertyChain<TSource, TModifiers extends Key> = TSource & {
68
- readonly [key in TModifiers]: PropertyChain<TSource, Exclude<TModifiers, key>>;
69
- };
70
- /**
71
- * 配列で指定したモディファイア(メソッド)をチェーン可能な再帰オブジェクトを動的に生やす
72
- *
73
- * @param modifiers オブジェクトに生やすモディファイヤ一覧
74
- * @param source 指定されたモディファイヤの一覧から値を生成する関数
75
- * @param _inferPhantom 関数形式のモディファイヤの引数型を推論するためのメタタイプ(引数の個数に合わせてタプルで指定する)
76
- *
77
- * @example
78
- *
79
- * const o = defineMethodChains(['red', 'blue'],
80
- * modifiers => modifiers.map(([color, alpha]) => hex(color, alpha)).join(',')
81
- * , {} as [number])
82
- *
83
- * console.log(o.red(0.5).blue(1)) => #ff000077,#0000ffff
84
- */
85
- export declare const defineMethodChains: <TSource, T extends string, TArguments extends unknown[]>(modifiers: readonly T[], source: (applied: readonly [T, ...TArguments][]) => TSource, ..._inferPhantom: TArguments) => MethodChain<TSource, T, TArguments>;
86
- export declare type MethodChain<TSource, TModifiers extends string, TArguments extends unknown[]> = TSource & {
87
- readonly [key in TModifiers]: (...args: TArguments) => MethodChain<TSource, Exclude<TModifiers, key>, TArguments>;
88
- };
1
+ import { Key } from '@charcoal-ui/theme';
2
+ /**
3
+ * 配列で指定したプロパティを動的に生やす
4
+ *
5
+ * @param source 拡張するオブジェクト
6
+ * @param member オブジェクトに生やすプロパティ一覧
7
+ * @param chain プロパティに格納される値を生成する関数
8
+ *
9
+ * @example
10
+ *
11
+ * const o = factory({}, ['red', 'blue'],
12
+ * color => hex(color)
13
+ * )
14
+ *
15
+ * console.log(o.red) //=> #ff0000
16
+ */
17
+ export declare const defineProperties: <TSource, TMember extends readonly Key[], TValue>(source: TSource, member: TMember, chain: (key: TMember[number]) => TValue) => TSource & { readonly [key in TMember[number]]: TValue; };
18
+ /**
19
+ * 配列で指定した名前のメソッドを動的に生やす
20
+ *
21
+ * @param source 拡張するオブジェクト
22
+ * @param member オブジェクトに生やすメソッド名一覧
23
+ * @param chain メソッドの戻り値になる値を生成する関数
24
+ *
25
+ * @example
26
+ *
27
+ * const o = defineMethods({}, ['red', 'blue'],
28
+ * (color, alpha: number) => hex(color, alpha)
29
+ * )
30
+ *
31
+ * console.log(o.red(0.5)) //=> #ff000077
32
+ */
33
+ export declare const defineMethods: <TSource, TMember extends readonly string[], TValue, TArguments extends unknown[]>(source: TSource, member: TMember, chain: (key: TMember[number], ...args: TArguments) => TValue) => TSource & { readonly [key in TMember[number]]: (...args: TArguments) => TValue; };
34
+ /**
35
+ * オブジェクトで指定したプロパティ名と値を動的に生やす
36
+ *
37
+ * @param source 拡張するオブジェクト
38
+ * @param def オブジェクトに生やす定義(プロパティ名と値)
39
+ *
40
+ * @example
41
+ *
42
+ * const o = defineConstantProperties({}, {
43
+ * red: '#f00',
44
+ * blue: '#00f',
45
+ * })
46
+ *
47
+ * console.log(o.red) //=> #f00
48
+ */
49
+ export declare const defineConstantProperties: <TSource, TDef extends {
50
+ [key: string]: unknown;
51
+ }>(source: TSource, def: TDef) => TSource & Readonly<TDef>;
52
+ /**
53
+ * 配列で指定したモディファイア(プロパティ)をチェーン可能な再帰オブジェクトを動的に生やす
54
+ *
55
+ * @param modifiers オブジェクトに生やすモディファイヤ一覧
56
+ * @param source 指定されたモディファイヤの一覧から値を生成する関数
57
+ *
58
+ * @example
59
+ *
60
+ * const o = definePropertyChains(['red', 'blue'],
61
+ * modifiers => modifiers.map(color => hex(color)).join(',')
62
+ * )
63
+ *
64
+ * console.log(o.red.blue) => #f00,#00f
65
+ */
66
+ export declare const definePropertyChains: <TSource, T extends Key>(modifiers: readonly T[], source: (applied: readonly T[]) => TSource) => PropertyChain<TSource, T>;
67
+ export type PropertyChain<TSource, TModifiers extends Key> = TSource & {
68
+ readonly [key in TModifiers]: PropertyChain<TSource, Exclude<TModifiers, key>>;
69
+ };
70
+ /**
71
+ * 配列で指定したモディファイア(メソッド)をチェーン可能な再帰オブジェクトを動的に生やす
72
+ *
73
+ * @param modifiers オブジェクトに生やすモディファイヤ一覧
74
+ * @param source 指定されたモディファイヤの一覧から値を生成する関数
75
+ * @param _inferPhantom 関数形式のモディファイヤの引数型を推論するためのメタタイプ(引数の個数に合わせてタプルで指定する)
76
+ *
77
+ * @example
78
+ *
79
+ * const o = defineMethodChains(['red', 'blue'],
80
+ * modifiers => modifiers.map(([color, alpha]) => hex(color, alpha)).join(',')
81
+ * , {} as [number])
82
+ *
83
+ * console.log(o.red(0.5).blue(1)) => #ff000077,#0000ffff
84
+ */
85
+ export declare const defineMethodChains: <TSource, T extends string, TArguments extends unknown[]>(modifiers: readonly T[], source: (applied: readonly [T, ...TArguments][]) => TSource, ..._inferPhantom: TArguments) => MethodChain<TSource, T, TArguments>;
86
+ export type MethodChain<TSource, TModifiers extends string, TArguments extends unknown[]> = TSource & {
87
+ readonly [key in TModifiers]: (...args: TArguments) => MethodChain<TSource, Exclude<TModifiers, key>, TArguments>;
88
+ };
89
89
  //# sourceMappingURL=lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/factories/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAGxC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,0LAiBiC,CAAA;AAE9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,yQAwBvB,CAAA;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB;;0DAQnB,CAAA;AAElB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,4HAazB,CAAA;AAER,oBAAY,aAAa,CAAC,OAAO,EAAE,UAAU,SAAS,GAAG,IAAI,OAAO,GAAG;IACrE,QAAQ,EAAE,GAAG,IAAI,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;CAC/E,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,sNAuBvB,CAAA;AAER,oBAAY,WAAW,CACrB,OAAO,EACP,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,OAAO,EAAE,IAC1B,OAAO,GAAG;IACZ,QAAQ,EAAE,GAAG,IAAI,UAAU,GAAG,CAC5B,GAAG,IAAI,EAAE,UAAU,KAChB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC;CAChE,CAAA"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/factories/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAGxC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,0LAiBiC,CAAA;AAE9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,yQAwBvB,CAAA;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB;;0DAQnB,CAAA;AAElB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,4HAazB,CAAA;AAER,MAAM,MAAM,aAAa,CAAC,OAAO,EAAE,UAAU,SAAS,GAAG,IAAI,OAAO,GAAG;IACrE,QAAQ,EAAE,GAAG,IAAI,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;CAC/E,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,sNAuBvB,CAAA;AAER,MAAM,MAAM,WAAW,CACrB,OAAO,EACP,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,OAAO,EAAE,IAC1B,OAAO,GAAG;IACZ,QAAQ,EAAE,GAAG,IAAI,UAAU,GAAG,CAC5B,GAAG,IAAI,EAAE,UAAU,KAChB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC;CAChE,CAAA"}
package/dist/helper.d.ts CHANGED
@@ -1,39 +1,39 @@
1
- export declare const LOCAL_STORAGE_KEY = "charcoal-theme";
2
- export declare const DEFAULT_ROOT_ATTRIBUTE = "theme";
3
- /**
4
- * 文字列が英数字_-のみで構成されているか検証する。不正な文字列ならエラーを投げる
5
- * @param key 検証するキー
6
- */
7
- export declare function assertKeyString(key: string): void;
8
- /**
9
- * `<html data-theme="dark">` のような設定を行うデフォルトのセッター
10
- */
11
- export declare const themeSetter: (attr?: string) => (theme: string | undefined) => void;
12
- /**
13
- * `<html data-theme="dark">` にマッチするセレクタを生成する
14
- */
15
- export declare function themeSelector<T extends string, S extends string = typeof DEFAULT_ROOT_ATTRIBUTE>(theme: T, attr?: S): `:root[data-theme='${T}']` | `:root[data-${NonNullable<S>}='${T}']`;
16
- /**
17
- * prefers-color-scheme を利用する media クエリを生成する
18
- */
19
- export declare function prefersColorScheme<T extends 'light' | 'dark'>(theme: T): `@media (prefers-color-scheme: ${T})`;
20
- /**
21
- * LocalStorageからテーマの情報を取得して、変化時にテーマをセットするhooks
22
- */
23
- export declare function useThemeSetter({ key, setter, }?: {
24
- key?: string;
25
- setter?: (theme: string | undefined) => void;
26
- }): void;
27
- /**
28
- * 同期的にLocalStorageからテーマを取得するヘルパ
29
- */
30
- export declare function getThemeSync(key?: string): string | null;
31
- /**
32
- * LocalStorage, prefers-color-scheme からテーマの情報を取得して、現在のテーマを返すhooks
33
- *
34
- * `dark` `light` という名前だけは特別扱いされていて、prefers-color-schemeにマッチした場合に返ります
35
- */
36
- export declare const useTheme: (key?: string) => readonly [string | undefined, (value: string | undefined) => void, boolean];
37
- export declare function useLocalStorage<T>(key: string, defaultValue?: () => T): readonly [T | undefined, (value: T | undefined) => void, boolean];
38
- export declare function useMedia(query: string): boolean | undefined;
1
+ export declare const LOCAL_STORAGE_KEY = "charcoal-theme";
2
+ export declare const DEFAULT_ROOT_ATTRIBUTE = "theme";
3
+ /**
4
+ * 文字列が英数字_-のみで構成されているか検証する。不正な文字列ならエラーを投げる
5
+ * @param key 検証するキー
6
+ */
7
+ export declare function assertKeyString(key: string): void;
8
+ /**
9
+ * `<html data-theme="dark">` のような設定を行うデフォルトのセッター
10
+ */
11
+ export declare const themeSetter: (attr?: string) => (theme: string | undefined) => void;
12
+ /**
13
+ * `<html data-theme="dark">` にマッチするセレクタを生成する
14
+ */
15
+ export declare function themeSelector<T extends string, S extends string = typeof DEFAULT_ROOT_ATTRIBUTE>(theme: T, attr?: S): `:root[data-theme='${T}']` | `:root[data-${S}='${T}']`;
16
+ /**
17
+ * prefers-color-scheme を利用する media クエリを生成する
18
+ */
19
+ export declare function prefersColorScheme<T extends 'light' | 'dark'>(theme: T): `@media (prefers-color-scheme: ${T})`;
20
+ /**
21
+ * LocalStorageからテーマの情報を取得して、変化時にテーマをセットするhooks
22
+ */
23
+ export declare function useThemeSetter({ key, setter, }?: {
24
+ key?: string;
25
+ setter?: (theme: string | undefined) => void;
26
+ }): void;
27
+ /**
28
+ * 同期的にLocalStorageからテーマを取得するヘルパ
29
+ */
30
+ export declare function getThemeSync(key?: string): string | null;
31
+ /**
32
+ * LocalStorage, prefers-color-scheme からテーマの情報を取得して、現在のテーマを返すhooks
33
+ *
34
+ * `dark` `light` という名前だけは特別扱いされていて、prefers-color-schemeにマッチした場合に返ります
35
+ */
36
+ export declare const useTheme: (key?: string) => readonly [string | undefined, (value: string | undefined) => void, boolean];
37
+ export declare function useLocalStorage<T>(key: string, defaultValue?: () => T): readonly [T | undefined, (value: T | undefined) => void, boolean];
38
+ export declare function useMedia(query: string): boolean | undefined;
39
39
  //# sourceMappingURL=helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,mBAAmB,CAAA;AACjD,eAAO,MAAM,sBAAsB,UAAU,CAAA;AAI7C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,QAI1C;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,UACf,MAAM,aACL,MAAM,GAAG,SAAS,SAOzB,CAAA;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,OAAO,sBAAsB,EAChD,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,uEAEnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,yCAEtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAuB,EACvB,MAAsB,GACvB,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAAO,QAUrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAA0B,iBAG3D;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAAS,MAAM,gFAQnC,CAAA;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,oCA6BhD,CAAC,GAAG,SAAS,oBAqBlC;AAmBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,uBAoBrC"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,mBAAmB,CAAA;AACjD,eAAO,MAAM,sBAAsB,UAAU,CAAA;AAI7C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,QAI1C;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,UACf,MAAM,aACL,MAAM,GAAG,SAAS,SAOzB,CAAA;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,OAAO,sBAAsB,EAChD,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,0DAEnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,yCAEtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAuB,EACvB,MAAsB,GACvB,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAAO,QAUrE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAA0B,iBAG3D;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAAS,MAAM,gFAQnC,CAAA;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,oCA6BhD,CAAC,GAAG,SAAS,oBAqBlC;AAmBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,uBAoBrC"}