@openpawlabs/diy-guides-ui 1.7.2 → 1.7.4

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.
@@ -4,11 +4,11 @@ export interface GuideLayoutProps {
4
4
  /** `GuideLayout.Header`, `GuideLayout.Intro`, `GuideLayout.Sidebar`, and `GuideLayout.Content`. */
5
5
  children: ReactNode;
6
6
  /**
7
- * Extra top scroll margin (px) for fixed site chrome above the guide — passed
8
- * to nested `GuideStepList`s so deep links land below the header.
7
+ * Parent/site header offset (px) for fixed chrome above the guide — applied to
8
+ * the guide overview anchor, the sticky progress bar, and step deep links.
9
9
  * @default 0
10
10
  */
11
- stepScrollMarginTop?: number;
11
+ scrollMarginTop?: number;
12
12
  className?: string;
13
13
  }
14
14
  export interface GuideLayoutHeaderProps {
@@ -50,7 +50,7 @@ declare function GuideLayoutContent({ children, className, }: {
50
50
  * beside `Sidebar` (tools/parts), then full-width `Content` (steps). On mobile
51
51
  * the intro row stacks with intro first, then sidebar.
52
52
  */
53
- export declare const GuideLayout: (({ children, stepScrollMarginTop, className, }: GuideLayoutProps) => import("react").JSX.Element) & {
53
+ export declare const GuideLayout: (({ children, scrollMarginTop, className, }: GuideLayoutProps) => import("react").JSX.Element) & {
54
54
  Header: typeof GuideLayoutHeader;
55
55
  Intro: typeof GuideLayoutIntro;
56
56
  Sidebar: typeof GuideLayoutSidebar;
@@ -1 +1 @@
1
- {"version":3,"file":"GuideLayout.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAM/C,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,mGAAmG;IACnG,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,mBAAmB;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,EAAE,sBAAsB,+BA2CxB;AAED,+DAA+D;AAC/D,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,qBAAqB,+BAMvE;AAED,iEAAiE;AACjE,iBAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAMA;AAED,kEAAkE;AAClE,iBAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAMA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,mDAKnB,gBAAgB;;;;;CAyBpB,CAAC"}
1
+ {"version":3,"file":"GuideLayout.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAS5E,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,mGAAmG;IACnG,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,mBAAmB;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,EAAE,sBAAsB,+BA2CxB;AAED,+DAA+D;AAC/D,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,qBAAqB,+BAMvE;AAED,iEAAiE;AACjE,iBAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAMA;AAED,kEAAkE;AAClE,iBAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAWA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,+CAKnB,gBAAgB;;;;;CAwCpB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { StoryObj } from "@storybook/react-vite";
2
2
  declare const meta: {
3
3
  title: string;
4
- component: (({ children, stepScrollMarginTop, className, }: import("./GuideLayout").GuideLayoutProps) => import("react").JSX.Element) & {
4
+ component: (({ children, scrollMarginTop, className, }: import("./GuideLayout").GuideLayoutProps) => import("react").JSX.Element) & {
5
5
  Header: ({ title, heroImage, heroImageAlt, difficulty, timeEstimate, meta, className, }: import("./GuideLayout").GuideLayoutHeaderProps) => import("react").JSX.Element;
6
6
  Intro: ({ children, className }: import("./GuideLayout").GuideLayoutIntroProps) => import("react").JSX.Element;
7
7
  Sidebar: ({ children, className, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"GuideLayout.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAoC5D,QAAA,MAAM,IAAI;;;;;;;qBAwDA,CAAT;;;;qBAOqB,CAAC;;;;;;;;;;;;;;;CAtDa,CAAC;AAErC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAKnC,eAAO,MAAM,SAAS,EAAE,KAwGvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA2B3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsD5B,CAAC"}
1
+ {"version":3,"file":"GuideLayout.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAqC5D,QAAA,MAAM,IAAI;;;;;;;qBAyDY,CAAA;;;;qBAQa,CAAC;;;;;;;;;;;;;;;CAxDA,CAAC;AAErC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAKnC,eAAO,MAAM,SAAS,EAAE,KAwGvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA2B3B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsD5B,CAAC"}
@@ -25,8 +25,7 @@ export interface GuideStepListProps {
25
25
  /** Fires when the visible step changes (from scroll or URL). */
26
26
  onActiveStepChange?: (step: number | null) => void;
27
27
  /**
28
- * Extra top scroll margin (px) beyond `GuideLayout.stepScrollMarginTop` and
29
- * the measured sticky progress bar — e.g. additional fixed chrome in embedders.
28
+ * Extra parent/site header offset (px) beyond `GuideLayout.scrollMarginTop`.
30
29
  * @default 0
31
30
  */
32
31
  scrollMarginTop?: number;
@@ -35,6 +34,13 @@ export interface GuideStepListProps {
35
34
  * to stay the active step while scrolling. @default 0.2
36
35
  */
37
36
  activeStepMinVisibleRatio?: number;
37
+ /**
38
+ * Controlled per-step completion keyed by step number. When set, the list does
39
+ * not keep its own completion state — use with `onCompletedStepsChange`.
40
+ */
41
+ completedSteps?: Record<number, boolean>;
42
+ /** Fires when any step completion changes (controlled mode). */
43
+ onCompletedStepsChange?: (completedSteps: Record<number, boolean>) => void;
38
44
  className?: string;
39
45
  }
40
46
  /**
@@ -42,5 +48,5 @@ export interface GuideStepListProps {
42
48
  * completion state, and renders a derived progress bar — so a guide author only
43
49
  * has to drop in steps. Listen to overall progress via `onProgressChange`.
44
50
  */
45
- export declare function GuideStepList({ children, showProgress, onProgressChange, syncStepUrl, stepUrlMode, stepUrlKey, onActiveStepChange, scrollMarginTop: additionalScrollMarginTop, activeStepMinVisibleRatio, className, }: GuideStepListProps): import("react").JSX.Element;
51
+ export declare function GuideStepList({ children, showProgress, onProgressChange, syncStepUrl, stepUrlMode, stepUrlKey, onActiveStepChange, scrollMarginTop: additionalParentScrollMarginTop, activeStepMinVisibleRatio, completedSteps: controlledCompletedSteps, onCompletedStepsChange, className, }: GuideStepListProps): import("react").JSX.Element;
46
52
  //# sourceMappingURL=GuideStepList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuideStepList.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStepList/GuideStepList.tsx"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,SAAS,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAmB,EACnB,gBAAgB,EAChB,WAAkB,EAClB,WAAoB,EACpB,UAAmB,EACnB,kBAAkB,EAClB,eAAe,EAAE,yBAA6B,EAC9C,yBAA+B,EAC/B,SAAS,GACV,EAAE,kBAAkB,+BAgHpB"}
1
+ {"version":3,"file":"GuideStepList.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStepList/GuideStepList.tsx"],"names":[],"mappings":"AAEA,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAWf,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,SAAS,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,gEAAgE;IAChE,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAmB,EACnB,gBAAgB,EAChB,WAAkB,EAClB,WAAoB,EACpB,UAAmB,EACnB,kBAAkB,EAClB,eAAe,EAAE,+BAAmC,EACpD,yBAA+B,EAC/B,cAAc,EAAE,wBAAwB,EACxC,sBAAsB,EACtB,SAAS,GACV,EAAE,kBAAkB,+BA4JpB"}
@@ -1,18 +1,37 @@
1
1
  import { type RefObject } from "react";
2
- /** Extra top scroll margin (px) supplied by a page shell such as `GuideLayout`. */
2
+ /** Parent/site header offset (px) supplied by a page shell such as `GuideLayout`. */
3
3
  export declare const GuideScrollMarginContext: import("react").Context<number>;
4
4
  /** Scroll anchor for the guide overview — set by `GuideLayout` on its root element. */
5
5
  export declare const GuideTopRefContext: import("react").Context<RefObject<HTMLElement | null> | null>;
6
+ /** Top of `GuideLayout.Content` — marks where the step list begins. */
7
+ export declare const GuideContentRefContext: import("react").Context<RefObject<HTMLElement | null> | null>;
6
8
  export declare function useGuideScrollMargin(): number;
7
9
  export declare function useGuideTopRef(): RefObject<HTMLElement | null> | null;
8
- /** Tailwind `scroll-mt-4` baseline breathing room below the scroll anchor. */
10
+ export declare function useGuideContentRef(): RefObject<HTMLElement | null> | null;
11
+ /** Tailwind `scroll-mt-4` — default breathing room when URL sync is off. */
9
12
  export declare const GUIDE_STEP_BASE_SCROLL_MARGIN = 16;
10
- /** Sticky progress bar `top-2` offset in px. */
11
- export declare const GUIDE_STEP_PROGRESS_STICKY_TOP = 8;
12
- export declare function computeGuideStepScrollMarginTop({ siteScrollMarginTop, progressBarHeight, includeProgressBar, additionalScrollMarginTop, }: {
13
- siteScrollMarginTop?: number;
13
+ /** Breathing room between a stuck progress bar and the step below it. */
14
+ export declare const GUIDE_STEP_PROGRESS_STICKY_GAP = 8;
15
+ /** Parent/site header offset overview anchor and sticky progress bar. */
16
+ export declare function computeParentScrollMarginTop({ parentScrollMarginTop, additionalParentScrollMarginTop, }?: {
17
+ parentScrollMarginTop?: number;
18
+ additionalParentScrollMarginTop?: number;
19
+ }): number;
20
+ /** Library-internal offset so deep-linked steps clear the sticky progress bar. */
21
+ export declare function computeGuideLibraryScrollMarginTop({ progressBarHeight, includeProgressBar, }?: {
22
+ progressBarHeight?: number;
23
+ includeProgressBar?: boolean;
24
+ }): number;
25
+ /** Overview anchor — parent offset only. */
26
+ export declare function computeGuideOverviewScrollMarginTop({ parentScrollMarginTop, additionalParentScrollMarginTop, }?: {
27
+ parentScrollMarginTop?: number;
28
+ additionalParentScrollMarginTop?: number;
29
+ }): number;
30
+ /** Step scroll targets — parent offset plus library progress-bar clearance. */
31
+ export declare function computeGuideStepScrollMarginTop({ parentScrollMarginTop, additionalParentScrollMarginTop, progressBarHeight, includeProgressBar, }: {
32
+ parentScrollMarginTop?: number;
33
+ additionalParentScrollMarginTop?: number;
14
34
  progressBarHeight?: number;
15
35
  includeProgressBar?: boolean;
16
- additionalScrollMarginTop?: number;
17
36
  }): number;
18
37
  //# sourceMappingURL=guideScrollMargin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guideScrollMargin.d.ts","sourceRoot":"","sources":["../../src/context/guideScrollMargin.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,iCAAmB,CAAC;AAEzD,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,+DAC4B,CAAC;AAE5D,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,cAAc,IAAI,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAErE;AAED,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,gDAAgD;AAChD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,wBAAgB,+BAA+B,CAAC,EAC9C,mBAAuB,EACvB,iBAAqB,EACrB,kBAA0B,EAC1B,yBAA6B,GAC9B,EAAE;IACD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,GAAG,MAAM,CAWT"}
1
+ {"version":3,"file":"guideScrollMargin.d.ts","sourceRoot":"","sources":["../../src/context/guideScrollMargin.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,iCAAmB,CAAC;AAEzD,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,+DAC4B,CAAC;AAE5D,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,+DACwB,CAAC;AAE5D,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,cAAc,IAAI,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAErE;AAED,wBAAgB,kBAAkB,IAAI,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAEzE;AAED,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,2EAA2E;AAC3E,wBAAgB,4BAA4B,CAAC,EAC3C,qBAAyB,EACzB,+BAAmC,GACpC,GAAE;IACD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+BAA+B,CAAC,EAAE,MAAM,CAAC;CACrC,GAAG,MAAM,CAEd;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,CAAC,EACjD,iBAAqB,EACrB,kBAA0B,GAC3B,GAAE;IACD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,CAMd;AAED,4CAA4C;AAC5C,wBAAgB,mCAAmC,CAAC,EAClD,qBAAyB,EACzB,+BAAmC,GACpC,GAAE;IACD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+BAA+B,CAAC,EAAE,MAAM,CAAC;CACrC,GAAG,MAAM,CAKd;AAED,+EAA+E;AAC/E,wBAAgB,+BAA+B,CAAC,EAC9C,qBAAyB,EACzB,+BAAmC,EACnC,iBAAqB,EACrB,kBAA0B,GAC3B,EAAE;IACD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,MAAM,CAWT"}