@kya-os/consent 0.1.38 → 0.1.39
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/dist/bundle/index.d.ts +12 -0
- package/dist/bundle/index.d.ts.map +1 -1
- package/dist/bundle/index.js +12 -0
- package/dist/bundle/index.js.map +1 -1
- package/dist/bundle/inline.d.ts.map +1 -1
- package/dist/bundle/inline.js +2 -2
- package/dist/bundle/inline.js.map +1 -1
- package/dist/bundle/shell.d.ts +23 -0
- package/dist/bundle/shell.d.ts.map +1 -1
- package/dist/bundle/shell.js +25 -1
- package/dist/bundle/shell.js.map +1 -1
- package/dist/capabilities/index.d.ts +7 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +7 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/registry.d.ts +29 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +178 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/cedar/compile.d.ts +30 -0
- package/dist/cedar/compile.d.ts.map +1 -0
- package/dist/cedar/compile.js +55 -0
- package/dist/cedar/compile.js.map +1 -0
- package/dist/cedar/explain.d.ts +22 -0
- package/dist/cedar/explain.d.ts.map +1 -0
- package/dist/cedar/explain.js +72 -0
- package/dist/cedar/explain.js.map +1 -0
- package/dist/cedar/index.d.ts +8 -0
- package/dist/cedar/index.d.ts.map +1 -0
- package/dist/cedar/index.js +8 -0
- package/dist/cedar/index.js.map +1 -0
- package/dist/cjs/bundle/index.js +19 -1
- package/dist/cjs/bundle/index.js.map +1 -1
- package/dist/cjs/bundle/inline.js +2 -2
- package/dist/cjs/bundle/inline.js.map +1 -1
- package/dist/cjs/bundle/shell.js +25 -1
- package/dist/cjs/bundle/shell.js.map +1 -1
- package/dist/cjs/capabilities/index.js +12 -0
- package/dist/cjs/capabilities/index.js.map +1 -0
- package/dist/cjs/capabilities/registry.js +182 -0
- package/dist/cjs/capabilities/registry.js.map +1 -0
- package/dist/cjs/cedar/compile.js +59 -0
- package/dist/cjs/cedar/compile.js.map +1 -0
- package/dist/cjs/cedar/explain.js +75 -0
- package/dist/cjs/cedar/explain.js.map +1 -0
- package/dist/cjs/cedar/index.js +14 -0
- package/dist/cjs/cedar/index.js.map +1 -0
- package/dist/cjs/components/consent-action-bar.js +138 -0
- package/dist/cjs/components/consent-action-bar.js.map +1 -0
- package/dist/cjs/components/consent-agent-header.js +205 -0
- package/dist/cjs/components/consent-agent-header.js.map +1 -0
- package/dist/cjs/components/consent-capabilities-screen.js +309 -0
- package/dist/cjs/components/consent-capabilities-screen.js.map +1 -0
- package/dist/cjs/components/consent-capability-card.js +340 -0
- package/dist/cjs/components/consent-capability-card.js.map +1 -0
- package/dist/cjs/components/consent-footer.js +99 -0
- package/dist/cjs/components/consent-footer.js.map +1 -0
- package/dist/cjs/components/consent-revocation-notice.js +101 -0
- package/dist/cjs/components/consent-revocation-notice.js.map +1 -0
- package/dist/cjs/components/index.js +14 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/mcp-consent.js +176 -7
- package/dist/cjs/components/mcp-consent.js.map +1 -1
- package/dist/cjs/copy/index.js +12 -0
- package/dist/cjs/copy/index.js.map +1 -0
- package/dist/cjs/copy/tokens.js +101 -0
- package/dist/cjs/copy/tokens.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mcp-app/inline.js +2 -2
- package/dist/cjs/mcp-app/inline.js.map +1 -1
- package/dist/cjs/popup/index.js +15 -0
- package/dist/cjs/popup/index.js.map +1 -0
- package/dist/cjs/popup/launcher.js +77 -0
- package/dist/cjs/popup/launcher.js.map +1 -0
- package/dist/cjs/schemas/capabilities.schemas.js +129 -0
- package/dist/cjs/schemas/capabilities.schemas.js.map +1 -0
- package/dist/cjs/schemas/config.schemas.js +18 -0
- package/dist/cjs/schemas/config.schemas.js.map +1 -1
- package/dist/cjs/schemas/index.js +1 -0
- package/dist/cjs/schemas/index.js.map +1 -1
- package/dist/cjs/styles/index.js +1 -0
- package/dist/cjs/styles/index.js.map +1 -1
- package/dist/cjs/styles/theme.js +86 -0
- package/dist/cjs/styles/theme.js.map +1 -0
- package/dist/cjs/types/capabilities.types.js +12 -0
- package/dist/cjs/types/capabilities.types.js.map +1 -0
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/components/consent-action-bar.d.ts +30 -0
- package/dist/components/consent-action-bar.d.ts.map +1 -0
- package/dist/components/consent-action-bar.js +135 -0
- package/dist/components/consent-action-bar.js.map +1 -0
- package/dist/components/consent-agent-header.d.ts +31 -0
- package/dist/components/consent-agent-header.d.ts.map +1 -0
- package/dist/components/consent-agent-header.js +202 -0
- package/dist/components/consent-agent-header.js.map +1 -0
- package/dist/components/consent-capabilities-screen.d.ts +62 -0
- package/dist/components/consent-capabilities-screen.d.ts.map +1 -0
- package/dist/components/consent-capabilities-screen.js +306 -0
- package/dist/components/consent-capabilities-screen.js.map +1 -0
- package/dist/components/consent-capability-card.d.ts +44 -0
- package/dist/components/consent-capability-card.d.ts.map +1 -0
- package/dist/components/consent-capability-card.js +337 -0
- package/dist/components/consent-capability-card.js.map +1 -0
- package/dist/components/consent-footer.d.ts +22 -0
- package/dist/components/consent-footer.d.ts.map +1 -0
- package/dist/components/consent-footer.js +96 -0
- package/dist/components/consent-footer.js.map +1 -0
- package/dist/components/consent-revocation-notice.d.ts +22 -0
- package/dist/components/consent-revocation-notice.d.ts.map +1 -0
- package/dist/components/consent-revocation-notice.js +98 -0
- package/dist/components/consent-revocation-notice.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/mcp-consent.d.ts +41 -0
- package/dist/components/mcp-consent.d.ts.map +1 -1
- package/dist/components/mcp-consent.js +176 -7
- package/dist/components/mcp-consent.js.map +1 -1
- package/dist/consent.js +1374 -7
- package/dist/consent.min.js +727 -96
- package/dist/copy/index.d.ts +8 -0
- package/dist/copy/index.d.ts.map +1 -0
- package/dist/copy/index.js +7 -0
- package/dist/copy/index.js.map +1 -0
- package/dist/copy/tokens.d.ts +93 -0
- package/dist/copy/tokens.d.ts.map +1 -0
- package/dist/copy/tokens.js +97 -0
- package/dist/copy/tokens.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-app/inline.d.ts.map +1 -1
- package/dist/mcp-app/inline.js +2 -2
- package/dist/mcp-app/inline.js.map +1 -1
- package/dist/popup/index.d.ts +8 -0
- package/dist/popup/index.d.ts.map +1 -0
- package/dist/popup/index.js +7 -0
- package/dist/popup/index.js.map +1 -0
- package/dist/popup/launcher.d.ts +81 -0
- package/dist/popup/launcher.d.ts.map +1 -0
- package/dist/popup/launcher.js +71 -0
- package/dist/popup/launcher.js.map +1 -0
- package/dist/schemas/api.schemas.d.ts +354 -150
- package/dist/schemas/api.schemas.d.ts.map +1 -1
- package/dist/schemas/capabilities.schemas.d.ts +186 -0
- package/dist/schemas/capabilities.schemas.d.ts.map +1 -0
- package/dist/schemas/capabilities.schemas.js +123 -0
- package/dist/schemas/capabilities.schemas.js.map +1 -0
- package/dist/schemas/config.schemas.d.ts +452 -156
- package/dist/schemas/config.schemas.d.ts.map +1 -1
- package/dist/schemas/config.schemas.js +18 -0
- package/dist/schemas/config.schemas.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.d.ts.map +1 -1
- package/dist/styles/index.js +1 -0
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/theme.d.ts +72 -0
- package/dist/styles/theme.d.ts.map +1 -0
- package/dist/styles/theme.js +81 -0
- package/dist/styles/theme.js.map +1 -0
- package/dist/types/capabilities.types.d.ts +126 -0
- package/dist/types/capabilities.types.d.ts.map +1 -0
- package/dist/types/capabilities.types.js +11 -0
- package/dist/types/capabilities.types.js.map +1 -0
- package/dist/types/config.types.d.ts +33 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/mcp-app/inline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAW,
|
|
1
|
+
{"version":3,"file":"inline.js","sourceRoot":"","sources":["../../src/mcp-app/inline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAW,mizuBAAmizuB,CAAC;AAEhlzuB,4CAA4C;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAW,MAAM,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consent popup launcher exports.
|
|
3
|
+
*
|
|
4
|
+
* @module @kya-os/consent/popup
|
|
5
|
+
*/
|
|
6
|
+
export { POPUP_CAPABLE_CLIENT_IDS, POPUP_WINDOW_FEATURES, shouldUsePopup, buildPopupResource, buildConsentMarkdownLink, } from "./launcher.js";
|
|
7
|
+
export type { ConsentPopupResource, PopupCapableClientId } from "./launcher.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popup/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/popup/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consent Popup Launcher
|
|
3
|
+
*
|
|
4
|
+
* The framework returns a *markdown link* by default when a tool requires
|
|
5
|
+
* delegation: the agent surfaces the link to the user, who clicks through to
|
|
6
|
+
* the consent page in a normal browser tab.
|
|
7
|
+
*
|
|
8
|
+
* For clients that ship an embedded browser (today: `.mcpb`-installed Claude
|
|
9
|
+
* Desktop), we can do better — return a structured-content UI resource that
|
|
10
|
+
* opens a stripped-chrome popup window with the consent URL preloaded. The
|
|
11
|
+
* popup closes itself on success. The user never leaves the chat.
|
|
12
|
+
*
|
|
13
|
+
* This module is runtime-agnostic. It returns plain data; the runtime adapter
|
|
14
|
+
* (e.g. `@kya-os/mcp-i-cloudflare`) is responsible for delivering the chosen
|
|
15
|
+
* representation back to the MCP client.
|
|
16
|
+
*
|
|
17
|
+
* @module @kya-os/consent/popup/launcher
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Stable identifiers for clients that support the embedded popup launcher.
|
|
21
|
+
*
|
|
22
|
+
* These IDs match the canonical IDs in `@kya-os/mcp-i-cloudflare`'s
|
|
23
|
+
* `findKnownClient` registry. Adding a new client here requires that the
|
|
24
|
+
* client also surface a usable embedded browser.
|
|
25
|
+
*/
|
|
26
|
+
export declare const POPUP_CAPABLE_CLIENT_IDS: readonly ["claude"];
|
|
27
|
+
export type PopupCapableClientId = (typeof POPUP_CAPABLE_CLIENT_IDS)[number];
|
|
28
|
+
/**
|
|
29
|
+
* Decide whether the consent flow should be presented as a popup for this
|
|
30
|
+
* client + config combination. Falls back to `false` when either input
|
|
31
|
+
* disqualifies the popup path.
|
|
32
|
+
*
|
|
33
|
+
* @param clientId - Canonical client id from `findKnownClient`. Pass the
|
|
34
|
+
* `id` field, not the raw `clientInfo.name` string.
|
|
35
|
+
* @param popupEnabled - The resolved `popupEnabled` flag from `ResolvedUI`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function shouldUsePopup(clientId: string | undefined, popupEnabled: boolean | undefined): clientId is PopupCapableClientId;
|
|
38
|
+
/**
|
|
39
|
+
* Default popup window size. Matches the consent screen's max width
|
|
40
|
+
* (`max-w-[512px]`) plus enough vertical room for the capability list and
|
|
41
|
+
* the action bar.
|
|
42
|
+
*/
|
|
43
|
+
export declare const POPUP_WINDOW_FEATURES: {
|
|
44
|
+
readonly width: 520;
|
|
45
|
+
readonly height: 760;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* The structured-content payload returned to the MCP client when we want it to
|
|
49
|
+
* open the consent page in a popup. The MCP client must be able to render
|
|
50
|
+
* `application/vnd.kya-os.consent-popup+json` as an action; otherwise the
|
|
51
|
+
* runtime should fall back to the markdown link.
|
|
52
|
+
*
|
|
53
|
+
* The schema mirrors the MCP UI resource shape: a single content block with
|
|
54
|
+
* a uri (the consent URL) and a hint to open in a popup with the given
|
|
55
|
+
* window features.
|
|
56
|
+
*/
|
|
57
|
+
export interface ConsentPopupResource {
|
|
58
|
+
type: "kya-os/consent-popup";
|
|
59
|
+
consentUrl: string;
|
|
60
|
+
features: {
|
|
61
|
+
width: number;
|
|
62
|
+
height: number;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Markdown fallback the client can display if it does not understand the
|
|
66
|
+
* popup hint. Same content as `buildConsentMarkdownLink`, included so a
|
|
67
|
+
* single response works for both popup-aware and popup-naive clients.
|
|
68
|
+
*/
|
|
69
|
+
fallbackMarkdown: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build the popup resource payload for a given consent URL.
|
|
73
|
+
*/
|
|
74
|
+
export declare function buildPopupResource(consentUrl: string): ConsentPopupResource;
|
|
75
|
+
/**
|
|
76
|
+
* Markdown text the framework returns when the client doesn't support the
|
|
77
|
+
* popup path. Identical to the historical `Authorize the action here →`
|
|
78
|
+
* line so existing flows are unchanged.
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildConsentMarkdownLink(consentUrl: string): string;
|
|
81
|
+
//# sourceMappingURL=launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/popup/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,qBAAsB,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,OAAO,GAAG,SAAS,GAChC,QAAQ,IAAI,oBAAoB,CAIlC;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CAO3E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consent Popup Launcher
|
|
3
|
+
*
|
|
4
|
+
* The framework returns a *markdown link* by default when a tool requires
|
|
5
|
+
* delegation: the agent surfaces the link to the user, who clicks through to
|
|
6
|
+
* the consent page in a normal browser tab.
|
|
7
|
+
*
|
|
8
|
+
* For clients that ship an embedded browser (today: `.mcpb`-installed Claude
|
|
9
|
+
* Desktop), we can do better — return a structured-content UI resource that
|
|
10
|
+
* opens a stripped-chrome popup window with the consent URL preloaded. The
|
|
11
|
+
* popup closes itself on success. The user never leaves the chat.
|
|
12
|
+
*
|
|
13
|
+
* This module is runtime-agnostic. It returns plain data; the runtime adapter
|
|
14
|
+
* (e.g. `@kya-os/mcp-i-cloudflare`) is responsible for delivering the chosen
|
|
15
|
+
* representation back to the MCP client.
|
|
16
|
+
*
|
|
17
|
+
* @module @kya-os/consent/popup/launcher
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Stable identifiers for clients that support the embedded popup launcher.
|
|
21
|
+
*
|
|
22
|
+
* These IDs match the canonical IDs in `@kya-os/mcp-i-cloudflare`'s
|
|
23
|
+
* `findKnownClient` registry. Adding a new client here requires that the
|
|
24
|
+
* client also surface a usable embedded browser.
|
|
25
|
+
*/
|
|
26
|
+
export const POPUP_CAPABLE_CLIENT_IDS = ["claude"];
|
|
27
|
+
/**
|
|
28
|
+
* Decide whether the consent flow should be presented as a popup for this
|
|
29
|
+
* client + config combination. Falls back to `false` when either input
|
|
30
|
+
* disqualifies the popup path.
|
|
31
|
+
*
|
|
32
|
+
* @param clientId - Canonical client id from `findKnownClient`. Pass the
|
|
33
|
+
* `id` field, not the raw `clientInfo.name` string.
|
|
34
|
+
* @param popupEnabled - The resolved `popupEnabled` flag from `ResolvedUI`.
|
|
35
|
+
*/
|
|
36
|
+
export function shouldUsePopup(clientId, popupEnabled) {
|
|
37
|
+
if (!popupEnabled)
|
|
38
|
+
return false;
|
|
39
|
+
if (!clientId)
|
|
40
|
+
return false;
|
|
41
|
+
return POPUP_CAPABLE_CLIENT_IDS.includes(clientId);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Default popup window size. Matches the consent screen's max width
|
|
45
|
+
* (`max-w-[512px]`) plus enough vertical room for the capability list and
|
|
46
|
+
* the action bar.
|
|
47
|
+
*/
|
|
48
|
+
export const POPUP_WINDOW_FEATURES = {
|
|
49
|
+
width: 520,
|
|
50
|
+
height: 760,
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Build the popup resource payload for a given consent URL.
|
|
54
|
+
*/
|
|
55
|
+
export function buildPopupResource(consentUrl) {
|
|
56
|
+
return {
|
|
57
|
+
type: "kya-os/consent-popup",
|
|
58
|
+
consentUrl,
|
|
59
|
+
features: { ...POPUP_WINDOW_FEATURES },
|
|
60
|
+
fallbackMarkdown: buildConsentMarkdownLink(consentUrl),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Markdown text the framework returns when the client doesn't support the
|
|
65
|
+
* popup path. Identical to the historical `Authorize the action here →`
|
|
66
|
+
* line so existing flows are unchanged.
|
|
67
|
+
*/
|
|
68
|
+
export function buildConsentMarkdownLink(consentUrl) {
|
|
69
|
+
return `[Authorize the action here →](${consentUrl})`;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/popup/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,CAAU,CAAC;AAI5D;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA4B,EAC5B,YAAiC;IAEjC,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAQ,wBAA8C,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACH,CAAC;AA2BX;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,UAAU;QACV,QAAQ,EAAE,EAAE,GAAG,qBAAqB,EAAE;QACtC,gBAAgB,EAAE,wBAAwB,CAAC,UAAU,CAAC;KACvD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO,iCAAiC,UAAU,GAAG,CAAC;AACxD,CAAC"}
|