@gardenerim/react 1.0.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.
- package/CHANGELOG.md +7 -0
- package/LICENSE +21 -0
- package/README.md +50 -0
- package/dist/adapter-target.d.ts +5 -0
- package/dist/adapter-target.d.ts.map +1 -0
- package/dist/adapter-target.js +7 -0
- package/dist/adapter-target.js.map +1 -0
- package/dist/adapters.d.ts +5 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +3 -0
- package/dist/adapters.js.map +1 -0
- package/dist/ai.css +1 -0
- package/dist/catalog.json +9022 -0
- package/dist/component-css/ai-compositions.css +1 -0
- package/dist/component-css/ai-extended.css +1 -0
- package/dist/component-css/ai.css +1 -0
- package/dist/component-css/auth-compositions.css +1 -0
- package/dist/component-css/basic.css +1 -0
- package/dist/component-css/catalog.css +1 -0
- package/dist/component-css/commerce-compositions.css +1 -0
- package/dist/component-css/content-compositions.css +1 -0
- package/dist/component-css/data-compositions.css +1 -0
- package/dist/component-css/data.css +1 -0
- package/dist/component-css/desktop-compositions.css +1 -0
- package/dist/component-css/desktop.css +1 -0
- package/dist/component-css/extended.css +1 -0
- package/dist/component-css/feedback.css +1 -0
- package/dist/component-css/form-compositions.css +1 -0
- package/dist/component-css/forms.css +1 -0
- package/dist/component-css/grid.css +1 -0
- package/dist/component-css/help.css +1 -0
- package/dist/component-css/layouts.css +1 -0
- package/dist/component-css/mobile-compositions.css +1 -0
- package/dist/component-css/navigation-compositions.css +1 -0
- package/dist/component-css/navigation.css +1 -0
- package/dist/component-css/page.css +1 -0
- package/dist/component-css/primitives.css +1 -0
- package/dist/component-css/recipes.css +1 -0
- package/dist/component-css/regions.css +1 -0
- package/dist/component-css/selection-compositions.css +1 -0
- package/dist/component-css/solution-compositions.css +1 -0
- package/dist/component.d.ts +16 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +105 -0
- package/dist/component.js.map +1 -0
- package/dist/components.css +1 -0
- package/dist/core.css +1 -0
- package/dist/electron.d.ts +10 -0
- package/dist/electron.d.ts.map +1 -0
- package/dist/electron.js +23 -0
- package/dist/electron.js.map +1 -0
- package/dist/gardener-react.min.js +2 -0
- package/dist/gardener-react.min.js.map +7 -0
- package/dist/gardener-react.performance.json +12 -0
- package/dist/generated/catalog.d.ts +6 -0
- package/dist/generated/catalog.d.ts.map +1 -0
- package/dist/generated/catalog.js +11217 -0
- package/dist/generated/catalog.js.map +1 -0
- package/dist/generated/components.d.ts +511 -0
- package/dist/generated/components.d.ts.map +1 -0
- package/dist/generated/components.js +1017 -0
- package/dist/generated/components.js.map +1 -0
- package/dist/hooks.d.ts +23 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +92 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/platform/desktop.css +1 -0
- package/dist/platform/electron.css +1 -0
- package/dist/platform/mobile.css +1 -0
- package/dist/platform/tauri.css +1 -0
- package/dist/platform/web.css +1 -0
- package/dist/provider.d.ts +14 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +29 -0
- package/dist/provider.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/tauri.d.ts +10 -0
- package/dist/tauri.d.ts.map +1 -0
- package/dist/tauri.js +23 -0
- package/dist/tauri.js.map +1 -0
- package/dist/themes.css +1 -0
- package/dist/types.d.ts +65 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utilities.css +1 -0
- package/docs/API.md +80 -0
- package/docs/components.md +512 -0
- package/metadata/compatibility.json +1730 -0
- package/metadata/compatibility.schema.json +33 -0
- package/metadata/performance.schema.json +18 -0
- package/metadata/public-api.json +1152 -0
- package/metadata/public-api.schema.json +26 -0
- package/package.json +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/ai-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/ai-extended.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/ai.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/auth-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/basic.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/catalog.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/commerce-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/content-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/data-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/data.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/desktop-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/desktop.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/extended.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/feedback.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/form-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/forms.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/grid.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/help.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/layouts.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/mobile-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/navigation-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/navigation.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/page.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/primitives.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/recipes.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/regions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/selection-compositions.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/component/solution-compositions.css";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ElementType } from "react";
|
|
2
|
+
import type { GardenerComponentDefinition, GardenerComponentHandle, GardenerComponentProps, GardenerConfigValue, GardenerGeneratedComponent } from "./types.js";
|
|
3
|
+
export declare const configAttributes: (config: Readonly<Record<string, GardenerConfigValue>> | undefined) => Record<string, string>;
|
|
4
|
+
export declare const behaviorAttributes: (behaviors: readonly string[]) => Record<string, string>;
|
|
5
|
+
export declare const createGardenerComponent: (definition: GardenerComponentDefinition) => GardenerGeneratedComponent;
|
|
6
|
+
export interface GardenerComponentDynamicProps extends GardenerComponentProps {
|
|
7
|
+
definition: GardenerComponentDefinition;
|
|
8
|
+
}
|
|
9
|
+
export declare const GardenerComponent: import("react").ForwardRefExoticComponent<GardenerComponentDynamicProps & import("react").RefAttributes<GardenerComponentHandle>>;
|
|
10
|
+
export interface GardenerPartProps extends Omit<React.HTMLAttributes<HTMLElement>, "children"> {
|
|
11
|
+
name: string;
|
|
12
|
+
as?: ElementType;
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare const GardenerPart: import("react").ForwardRefExoticComponent<GardenerPartProps & import("react").RefAttributes<HTMLElement>>;
|
|
16
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8E,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AAErH,OAAO,KAAK,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAKhK,eAAO,MAAM,gBAAgB,WAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAOzH,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAAe,SAAS,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CACV,CAAC;AAI9E,eAAO,MAAM,uBAAuB,eAAgB,2BAA2B,KAAG,0BAsFjF,CAAC;AAEF,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC3E,UAAU,EAAE,2BAA2B,CAAC;CACzC;AAED,eAAO,MAAM,iBAAiB,mIAG5B,CAAC;AAEH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY,2GAEvB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { createElement, forwardRef, useEffect, useImperativeHandle, useMemo, useRef } from "react";
|
|
2
|
+
import { destroy, getInstance, init } from "@gardenerim/css/runtime";
|
|
3
|
+
const list = (value) => value == null ? [] : Array.isArray(value) ? [...value] : [value];
|
|
4
|
+
const kebab = (value) => value.replace(/^data-g-/, "").replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
|
|
5
|
+
export const configAttributes = (config) => {
|
|
6
|
+
const attributes = {};
|
|
7
|
+
for (const [name, value] of Object.entries(config ?? {})) {
|
|
8
|
+
if (value === false || value == null)
|
|
9
|
+
continue;
|
|
10
|
+
attributes[`data-g-${kebab(name)}`] = value === true ? "" : String(value);
|
|
11
|
+
}
|
|
12
|
+
return attributes;
|
|
13
|
+
};
|
|
14
|
+
export const behaviorAttributes = (behaviors) => Object.fromEntries(behaviors.map((behavior) => [`data-g-${behavior}`, ""]));
|
|
15
|
+
const classes = (...values) => values.flat(Infinity).filter(Boolean).join(" ");
|
|
16
|
+
export const createGardenerComponent = (definition) => {
|
|
17
|
+
const Component = forwardRef(function GardenerGeneratedComponent(props, forwardedRef) {
|
|
18
|
+
const { as, variant, state, config, initialize = true, value, defaultValue, valueEvent = "change", valueKey = "value", onValueChange, children, className, ...nativeProps } = props;
|
|
19
|
+
const elementRef = useRef(null);
|
|
20
|
+
const handledNativeEvents = useRef(new WeakSet());
|
|
21
|
+
const configKey = useMemo(() => JSON.stringify(config ?? {}), [config]);
|
|
22
|
+
const refresh = () => { if (initialize && elementRef.current)
|
|
23
|
+
init(elementRef.current); };
|
|
24
|
+
useImperativeHandle(forwardedRef, () => ({
|
|
25
|
+
get element() { return elementRef.current; },
|
|
26
|
+
getInstance: (behavior) => elementRef.current ? behavior ? getInstance(elementRef.current, behavior) : getInstance(elementRef.current) : null,
|
|
27
|
+
refresh,
|
|
28
|
+
}), [initialize]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const element = elementRef.current;
|
|
31
|
+
if (!element)
|
|
32
|
+
return;
|
|
33
|
+
if (initialize)
|
|
34
|
+
init(element);
|
|
35
|
+
else
|
|
36
|
+
destroy(element);
|
|
37
|
+
return () => destroy(element);
|
|
38
|
+
}, [initialize, configKey]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const element = elementRef.current;
|
|
41
|
+
if (!element || !valueEvent || !onValueChange)
|
|
42
|
+
return;
|
|
43
|
+
const eventName = valueEvent.startsWith("gardener:") ? valueEvent : `gardener:${valueEvent}`;
|
|
44
|
+
const listener = (event) => {
|
|
45
|
+
const detail = event.detail ?? {};
|
|
46
|
+
onValueChange(detail[valueKey] ?? detail.value ?? detail.values ?? detail.selected, event);
|
|
47
|
+
};
|
|
48
|
+
element.addEventListener(eventName, listener);
|
|
49
|
+
return () => element.removeEventListener(eventName, listener);
|
|
50
|
+
}, [onValueChange, valueEvent, valueKey]);
|
|
51
|
+
const variants = list(variant).map((item) => definition.className ? `${definition.className}-${item}` : item);
|
|
52
|
+
const states = list(state).map((item) => item.startsWith("is-") ? item : `is-${item}`);
|
|
53
|
+
const tag = definition.tag;
|
|
54
|
+
const As = (as ?? tag);
|
|
55
|
+
const isNativeControl = ["input", "textarea", "select"].includes(tag);
|
|
56
|
+
const originalInput = nativeProps.onInput;
|
|
57
|
+
const originalChange = nativeProps.onChange;
|
|
58
|
+
const updateFromNative = (event) => {
|
|
59
|
+
const nativeEvent = (event.nativeEvent ?? event);
|
|
60
|
+
if (handledNativeEvents.current.has(nativeEvent))
|
|
61
|
+
return;
|
|
62
|
+
handledNativeEvents.current.add(nativeEvent);
|
|
63
|
+
const target = event.target;
|
|
64
|
+
const next = target instanceof HTMLInputElement && target.type === "checkbox" ? target.checked : target?.value;
|
|
65
|
+
onValueChange?.(next, nativeEvent);
|
|
66
|
+
};
|
|
67
|
+
const attributes = {
|
|
68
|
+
...behaviorAttributes(definition.behaviors),
|
|
69
|
+
...configAttributes(config),
|
|
70
|
+
...nativeProps,
|
|
71
|
+
ref: elementRef,
|
|
72
|
+
className: classes(definition.className, variants, states, className),
|
|
73
|
+
};
|
|
74
|
+
if (tag === "button" && attributes.type == null)
|
|
75
|
+
attributes.type = "button";
|
|
76
|
+
if (isNativeControl) {
|
|
77
|
+
const type = String(attributes.type ?? "");
|
|
78
|
+
if (value !== undefined) {
|
|
79
|
+
if (tag === "input" && type === "checkbox" && typeof value === "boolean")
|
|
80
|
+
attributes.checked = value;
|
|
81
|
+
else
|
|
82
|
+
attributes.value = value;
|
|
83
|
+
}
|
|
84
|
+
else if (defaultValue !== undefined) {
|
|
85
|
+
if (tag === "input" && type === "checkbox" && typeof defaultValue === "boolean")
|
|
86
|
+
attributes.defaultChecked = defaultValue;
|
|
87
|
+
else
|
|
88
|
+
attributes.defaultValue = defaultValue;
|
|
89
|
+
}
|
|
90
|
+
attributes.onInput = (event) => { originalInput?.(event); updateFromNative(event); };
|
|
91
|
+
attributes.onChange = (event) => { originalChange?.(event); updateFromNative(event); };
|
|
92
|
+
}
|
|
93
|
+
return createElement(As, attributes, tag === "input" ? undefined : children);
|
|
94
|
+
});
|
|
95
|
+
Component.displayName = definition.exportName;
|
|
96
|
+
return Component;
|
|
97
|
+
};
|
|
98
|
+
export const GardenerComponent = forwardRef(function GardenerComponent({ definition, ...props }, ref) {
|
|
99
|
+
const Implementation = useMemo(() => createGardenerComponent(definition), [definition]);
|
|
100
|
+
return createElement(Implementation, { ...props, ref });
|
|
101
|
+
});
|
|
102
|
+
export const GardenerPart = forwardRef(function GardenerPart({ name, as: As = "div", className, ...props }, ref) {
|
|
103
|
+
return createElement(As, { ...props, ref, className: classes(name.startsWith("g-") ? name : `g-${name}`, className) });
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/components.css";
|
package/dist/core.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "@gardenerim/css/core.css";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import { bindElectronWindowControls, type GardenerElectronBinding, type GardenerElectronBridge } from "@gardenerim/css/electron";
|
|
3
|
+
import { type GardenerAdapterTarget } from "./adapter-target.js";
|
|
4
|
+
export declare const useElectronWindowControls: (root?: RefObject<GardenerAdapterTarget>, bridge?: GardenerElectronBridge | null) => {
|
|
5
|
+
readonly binding: GardenerElectronBinding | null;
|
|
6
|
+
readonly bind: () => GardenerElectronBinding | null;
|
|
7
|
+
};
|
|
8
|
+
export { bindElectronWindowControls };
|
|
9
|
+
export type { GardenerElectronBinding, GardenerElectronBridge };
|
|
10
|
+
//# sourceMappingURL=electron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron.d.ts","sourceRoot":"","sources":["../src/electron.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,KAAK,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACjI,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,eAAO,MAAM,yBAAyB,UAAW,SAAS,CAAC,qBAAqB,CAAC,WAAW,sBAAsB,GAAG,IAAI;;;CAmBxH,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
|
package/dist/electron.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { bindElectronWindowControls } from "@gardenerim/css/electron";
|
|
3
|
+
import { adapterRootValue } from "./adapter-target.js";
|
|
4
|
+
export const useElectronWindowControls = (root, bridge) => {
|
|
5
|
+
const rootRef = useRef(root);
|
|
6
|
+
const bridgeRef = useRef(bridge);
|
|
7
|
+
const [binding, setBinding] = useState(null);
|
|
8
|
+
const bindingRef = useRef(null);
|
|
9
|
+
rootRef.current = root;
|
|
10
|
+
bridgeRef.current = bridge;
|
|
11
|
+
const bind = useCallback(() => {
|
|
12
|
+
bindingRef.current?.destroy();
|
|
13
|
+
const target = adapterRootValue(rootRef.current);
|
|
14
|
+
const next = target ? bindElectronWindowControls(target, bridgeRef.current) : null;
|
|
15
|
+
bindingRef.current = next;
|
|
16
|
+
setBinding(next);
|
|
17
|
+
return next;
|
|
18
|
+
}, []);
|
|
19
|
+
useEffect(() => { bind(); return () => { bindingRef.current?.destroy(); bindingRef.current = null; }; }, [bind]);
|
|
20
|
+
return { binding, bind };
|
|
21
|
+
};
|
|
22
|
+
export { bindElectronWindowControls };
|
|
23
|
+
//# sourceMappingURL=electron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"electron.js","sourceRoot":"","sources":["../src/electron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAA6D,MAAM,0BAA0B,CAAC;AACjI,OAAO,EAAE,gBAAgB,EAA8B,MAAM,qBAAqB,CAAC;AAEnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,IAAuC,EAAE,MAAsC,EAAE,EAAE;IAC3H,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAiC,IAAI,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,CAAiC,IAAI,CAAC,CAAC;IAEhE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;IAE3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC;AACpC,CAAC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|