@octaviaflow/core 3.1.0-beta.113 → 3.1.0-beta.114
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/components/Dialog/Dialog.d.ts +7 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/components/Sheet/Sheet.d.ts +9 -1
- package/dist/components/Sheet/Sheet.d.ts.map +1 -1
- package/dist/components/TemplateDetail/TemplateDetail.d.ts +92 -0
- package/dist/components/TemplateDetail/TemplateDetail.d.ts.map +1 -0
- package/dist/components/TemplateDetail/index.d.ts +2 -0
- package/dist/components/TemplateDetail/index.d.ts.map +1 -0
- package/dist/index.cjs +3157 -2947
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2604 -2385
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -16,6 +16,13 @@ export interface DialogProps extends Omit<ComponentPropsWithoutRef<"div">, "titl
|
|
|
16
16
|
closeLabel?: string;
|
|
17
17
|
/** Disable the scale-in animation (still respects `useReducedMotion`). */
|
|
18
18
|
disableAnimation?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Hand the whole body to the content: no padding and no scroll of its own.
|
|
21
|
+
* For a child that owns its layout and scroll region (e.g. `TemplateDetail`
|
|
22
|
+
* with its pinned header and footer) — it fills the card edge to edge, and
|
|
23
|
+
* nothing scrolls out from under its footer. Default false.
|
|
24
|
+
*/
|
|
25
|
+
flush?: boolean;
|
|
19
26
|
children?: ReactNode;
|
|
20
27
|
footer?: ReactNode;
|
|
21
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAUf,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,WACf,SAAQ,IAAI,CACV,wBAAwB,CAAC,KAAK,CAAC,EAC/B,OAAO,GAAG,kBAAkB,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CACnF;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAUf,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,WACf,SAAQ,IAAI,CACV,wBAAwB,CAAC,KAAK,CAAC,EAC/B,OAAO,GAAG,kBAAkB,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CACnF;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AA6ND,eAAO,MAAM,MAAM,wGAejB,CAAC"}
|
|
@@ -12,6 +12,14 @@ export interface SheetProps {
|
|
|
12
12
|
closeOnOverlayClick?: boolean;
|
|
13
13
|
closeOnEsc?: boolean;
|
|
14
14
|
dragHandle?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Hand the whole body to the content: no padding and no scroll of its own.
|
|
17
|
+
* For a child that owns its layout and scroll region (e.g. `TemplateDetail`
|
|
18
|
+
* with its pinned header and footer). Default false.
|
|
19
|
+
*/
|
|
20
|
+
flush?: boolean;
|
|
21
|
+
/** Accessible name when there is no string `title` (e.g. a flush sheet). */
|
|
22
|
+
"aria-label"?: string;
|
|
15
23
|
className?: string;
|
|
16
24
|
}
|
|
17
25
|
/**
|
|
@@ -24,5 +32,5 @@ export interface SheetProps {
|
|
|
24
32
|
* opened. Exported for the regression test.
|
|
25
33
|
*/
|
|
26
34
|
export declare function resolveSheetSize(side: SheetSide, size: SheetProps["size"]): string;
|
|
27
|
-
export declare function Sheet({ open, onClose, side, size, title, description, children, footer, closeOnOverlayClick, closeOnEsc, dragHandle, className, }: SheetProps): import("react").ReactPortal;
|
|
35
|
+
export declare function Sheet({ open, onClose, side, size, title, description, children, footer, closeOnOverlayClick, closeOnEsc, dragHandle, flush, "aria-label": ariaLabel, className, }: SheetProps): import("react").ReactPortal;
|
|
28
36
|
//# sourceMappingURL=Sheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../../../src/components/Sheet/Sheet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAIlD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAUlF;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,IAAe,EACf,IAAW,EACX,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,mBAA0B,EAC1B,UAAiB,EACjB,UAAiB,EACjB,SAAS,GACV,EAAE,UAAU,+
|
|
1
|
+
{"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../../../src/components/Sheet/Sheet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAIlD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAUlF;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,IAAe,EACf,IAAW,EACX,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,mBAA0B,EAC1B,UAAiB,EACjB,UAAiB,EACjB,KAAa,EACb,YAAY,EAAE,SAAS,EACvB,SAAS,GACV,EAAE,UAAU,+BA8DZ"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/** Step kinds — the canvas's node kinds, coloured by its `--ods-node-*` tokens. */
|
|
3
|
+
export type TemplateDetailStepKind = "trigger" | "action" | "condition" | "transform" | "io";
|
|
4
|
+
/** One step of the template's flow, in order. */
|
|
5
|
+
export interface TemplateDetailStep {
|
|
6
|
+
id: string;
|
|
7
|
+
/** What the step does, e.g. "Read sales invoices". */
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
/** The short qualifier, e.g. "Business Central" or "Every day, 07:00 UTC". */
|
|
10
|
+
detail?: ReactNode;
|
|
11
|
+
/** The step's icon. Defaults to one per `kind`. */
|
|
12
|
+
icon?: ReactNode;
|
|
13
|
+
/** Colours the strip and icon. Default "action". */
|
|
14
|
+
kind?: TemplateDetailStepKind;
|
|
15
|
+
}
|
|
16
|
+
/** An app the template connects — a name, optionally with its logo. */
|
|
17
|
+
export interface TemplateDetailApp {
|
|
18
|
+
label: string;
|
|
19
|
+
icon?: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
/** One thing the installer will provide. */
|
|
22
|
+
export interface TemplateDetailAsk {
|
|
23
|
+
/** Stable identity, e.g. the slot key. */
|
|
24
|
+
id: string;
|
|
25
|
+
/** What it is, e.g. "Salesforce". */
|
|
26
|
+
label: ReactNode;
|
|
27
|
+
/** How it is satisfied, e.g. "Your connection" or "Created for you". */
|
|
28
|
+
hint?: ReactNode;
|
|
29
|
+
/** Leading mark, e.g. the app's logo. Defaults to a connection glyph. */
|
|
30
|
+
icon?: ReactNode;
|
|
31
|
+
/** Marks the row as optional. */
|
|
32
|
+
optional?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface TemplateDetailProps {
|
|
35
|
+
/** Template name — the hero line of the body. */
|
|
36
|
+
name: ReactNode;
|
|
37
|
+
/** One-line pitch under the name. */
|
|
38
|
+
summary?: ReactNode;
|
|
39
|
+
/** Status chip beside the name, e.g. "In review" for an unpublished one. */
|
|
40
|
+
badge?: ReactNode;
|
|
41
|
+
/** The apps the flow connects — a row of logo tiles above the name. */
|
|
42
|
+
apps?: readonly (string | TemplateDetailApp)[];
|
|
43
|
+
/** The template's steps, in order. */
|
|
44
|
+
steps?: readonly TemplateDetailStep[];
|
|
45
|
+
/** Heading above the steps. Defaults to "How it runs". */
|
|
46
|
+
stepsTitle?: ReactNode;
|
|
47
|
+
/** What the installer will provide. */
|
|
48
|
+
asks?: readonly TemplateDetailAsk[];
|
|
49
|
+
/** Heading above the asks. Defaults to "You'll connect". */
|
|
50
|
+
asksTitle?: ReactNode;
|
|
51
|
+
/** Shown in place of the asks when there are none. */
|
|
52
|
+
emptyAsksLabel?: ReactNode;
|
|
53
|
+
/** The authored description (rich content — the caller renders markdown). */
|
|
54
|
+
description?: ReactNode;
|
|
55
|
+
/** Heading above the description. Defaults to "About this template". */
|
|
56
|
+
descriptionTitle?: ReactNode;
|
|
57
|
+
/** Clamp a long description to this height (px) behind "Show more". Default 160. */
|
|
58
|
+
descriptionMaxHeight?: number;
|
|
59
|
+
/** Header bar title. Defaults to "Template". */
|
|
60
|
+
headerTitle?: ReactNode;
|
|
61
|
+
/** Header tile icon. Defaults to a template glyph. */
|
|
62
|
+
headerIcon?: ReactNode;
|
|
63
|
+
/** The way back (an arrow before the tile). Omit to hide it. */
|
|
64
|
+
onBack?: () => void;
|
|
65
|
+
/** Accessible label for the back arrow. Defaults to "Back". */
|
|
66
|
+
backLabel?: string;
|
|
67
|
+
/** The header's "Close". Omit to hide it. */
|
|
68
|
+
onClose?: () => void;
|
|
69
|
+
/** Close label. Defaults to "Close". */
|
|
70
|
+
closeLabel?: string;
|
|
71
|
+
/** The primary action. Defaults to "Use template". */
|
|
72
|
+
actionLabel?: ReactNode;
|
|
73
|
+
onAction?: () => void;
|
|
74
|
+
/** Icon at the right of the action. None by default. */
|
|
75
|
+
actionIcon?: ReactNode;
|
|
76
|
+
actionDisabled?: boolean;
|
|
77
|
+
/** Busy state — the action shows `actionLoadingLabel` and is inert. */
|
|
78
|
+
actionLoading?: boolean;
|
|
79
|
+
actionLoadingLabel?: ReactNode;
|
|
80
|
+
/** A secondary footer button before the action, e.g. "Close" in a Dialog. */
|
|
81
|
+
secondaryLabel?: ReactNode;
|
|
82
|
+
onSecondary?: () => void;
|
|
83
|
+
/** The promise beside the actions, at the footer's left. */
|
|
84
|
+
note?: ReactNode;
|
|
85
|
+
className?: string;
|
|
86
|
+
id?: string;
|
|
87
|
+
}
|
|
88
|
+
export declare function TemplateDetail({ name, summary, badge, apps, steps, stepsTitle, asks, asksTitle, emptyAsksLabel, description, descriptionTitle, descriptionMaxHeight, headerTitle, headerIcon, onBack, backLabel, onClose, closeLabel, actionLabel, onAction, actionIcon, actionDisabled, actionLoading, actionLoadingLabel, secondaryLabel, onSecondary, note, className, id, }: TemplateDetailProps): import("react/jsx-runtime").JSX.Element;
|
|
89
|
+
export declare namespace TemplateDetail {
|
|
90
|
+
var displayName: string;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=TemplateDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateDetail.d.ts","sourceRoot":"","sources":["../../../src/components/TemplateDetail/TemplateDetail.tsx"],"names":[],"mappings":"AAiDA,OAAO,EAAE,KAAK,SAAS,EAAsC,MAAM,OAAO,CAAC;AAI3E,mFAAmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;AAE7F,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,KAAK,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,mDAAmD;IACnD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oDAAoD;IACpD,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,KAAK,EAAE,SAAS,CAAC;IACjB,wEAAwE;IACxE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,yEAAyE;IACzE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,IAAI,EAAE,SAAS,CAAC;IAChB,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAE/C,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACpC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sDAAsD;IACtD,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,oFAAoF;IACpF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,gDAAgD;IAChD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,sDAAsD;IACtD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,wDAAwD;IACxD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAoBD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,UAA0B,EAC1B,IAAI,EACJ,SAA4B,EAC5B,cAAqE,EACrE,WAAW,EACX,gBAAwC,EACxC,oBAA0B,EAC1B,WAAwB,EACxB,UAAU,EACV,MAAM,EACN,SAAkB,EAClB,OAAO,EACP,UAAoB,EACpB,WAA4B,EAC5B,QAAQ,EACR,UAAU,EACV,cAAsB,EACtB,aAAqB,EACrB,kBAAkC,EAClC,cAAc,EACd,WAAW,EACX,IAAI,EACJ,SAAS,EACT,EAAE,GACH,EAAE,mBAAmB,2CAuNrB;yBArPe,cAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TemplateDetail/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC"}
|