@industry-theme/agent-panels 0.2.22 → 0.2.24

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/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import { type SkillsListPanelProps } from './panels/SkillsListPanel';
2
+ import { SkillsBrowsePanel } from './panels/SkillsBrowsePanel';
2
3
  import { type SkillDetailPanelProps } from './panels/SkillDetailPanel';
3
4
  import type { PanelDefinition } from './types';
4
5
  import type { Skill } from './panels/skills/hooks/useSkillsData';
5
6
  export type { SkillsListPanelProps, SkillDetailPanelProps, Skill };
7
+ export { SkillsBrowsePanel };
6
8
  /**
7
9
  * Export array of panel definitions.
8
10
  * This is the required export for panel extensions.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGzF,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAGjE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EA6GnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGzF,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAGjE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EAwInC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,qBAGzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,qBAG3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/AgentDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAQpD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAG;AAOrE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgc5D,CAAC"}
1
+ {"version":3,"file":"AgentDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/AgentDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AASpD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAG;AAOrE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgc5D,CAAC"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import type { PanelComponentProps } from '../types';
3
+ export interface SkillsBrowsePanelProps extends PanelComponentProps {
4
+ /**
5
+ * When true, shows the refresh button and enables refresh functionality.
6
+ * The host must support handling 'skills:refresh' events.
7
+ */
8
+ supportsRefresh?: boolean;
9
+ }
10
+ /**
11
+ * SkillsBrowsePanel - A panel for browsing Agent Skills from GitHub repositories
12
+ *
13
+ * This panel shows:
14
+ * - List/grid of available skills from a GitHub repository
15
+ * - Search functionality to filter skills
16
+ * - Skill metadata (name, description, capabilities)
17
+ * - Click to select and emit events for detail views
18
+ *
19
+ * Note: This panel does NOT show global/installed skills - it's specifically for browsing remote repositories
20
+ */
21
+ export declare const SkillsBrowsePanel: React.FC<SkillsBrowsePanelProps>;
22
+ //# sourceMappingURL=SkillsBrowsePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsBrowsePanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsBrowsePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKpD,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA+V9D,CAAC"}
@@ -6,6 +6,11 @@ export interface SkillsListPanelProps extends PanelComponentProps {
6
6
  * - Changes "Project" filter label to "Git Repo"
7
7
  */
8
8
  browseMode?: boolean;
9
+ /**
10
+ * When true, shows the refresh button and enables refresh functionality.
11
+ * The host must support handling 'skills:refresh' events.
12
+ */
13
+ supportsRefresh?: boolean;
9
14
  }
10
15
  /**
11
16
  * SkillsListPanel - A panel for displaying Agent Skills from SKILL.md files
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0b1D,CAAC"}
1
+ {"version":3,"file":"SkillsListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/SkillsListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAic1D,CAAC"}
@@ -4,6 +4,11 @@ interface SkillCardProps {
4
4
  skill: Skill;
5
5
  onClick?: (skill: Skill) => void;
6
6
  isSelected?: boolean;
7
+ /**
8
+ * The current filter context ('project' or 'global')
9
+ * Used to determine which path to copy when skill has multiple installations
10
+ */
11
+ filterContext?: 'project' | 'global';
7
12
  }
8
13
  /**
9
14
  * SkillCard - Displays a single skill with its metadata
@@ -1 +1 @@
1
- {"version":3,"file":"SkillCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/components/SkillCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AAEjE,UAAU,cAAc;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAoED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoV9C,CAAC"}
1
+ {"version":3,"file":"SkillCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/components/SkillCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AAEjE,UAAU,cAAc;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CACtC;AAoED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkZ9C,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { PanelContextValue } from '../../../types';
2
+ import type { Skill } from './useSkillsData';
3
+ interface UseSkillsBrowseDataParams {
4
+ context: PanelContextValue;
5
+ }
6
+ interface UseSkillsBrowseDataReturn {
7
+ skills: Skill[];
8
+ isLoading: boolean;
9
+ error: string | null;
10
+ refreshSkills: () => Promise<void>;
11
+ }
12
+ /**
13
+ * Hook to discover and read SKILL.md files from GitHub repositories
14
+ * This hook is specifically for browse mode and does NOT include global skills
15
+ */
16
+ export declare const useSkillsBrowseData: ({ context, }: UseSkillsBrowseDataParams) => UseSkillsBrowseDataReturn;
17
+ export {};
18
+ //# sourceMappingURL=useSkillsBrowseData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSkillsBrowseData.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/hooks/useSkillsBrowseData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAS7C,UAAU,yBAAyB;IACjC,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,UAAU,yBAAyB;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,cAEjC,yBAAyB,KAAG,yBAgG9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSkillsData.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/hooks/useSkillsData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEzC,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAKD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAsXD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,cAE3B,mBAAmB,KAAG,mBAwHxB,CAAC"}
1
+ {"version":3,"file":"useSkillsData.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/hooks/useSkillsData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASxD,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5B,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEzC,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAKD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAqHD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,cAE3B,mBAAmB,KAAG,mBAwHxB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { FileTree } from '@principal-ai/repository-abstraction';
2
+ import type { Skill, SkillSource, FrontmatterValidation } from '../hooks/useSkillsData';
3
+ /**
4
+ * Helper function to determine skill source and priority from path
5
+ */
6
+ export declare const determineSkillSource: (path: string) => {
7
+ source: SkillSource;
8
+ priority: 1 | 2 | 3 | 4 | 5;
9
+ };
10
+ /**
11
+ * Helper function to find skill markdown files from the FileTree's allFiles array
12
+ * Looks for any .md files in .agent/skills/ or .claude/skills/ directories (local mode)
13
+ * or SKILL.md files anywhere in the tree (browser mode for GitHub repositories)
14
+ */
15
+ export declare const findSkillFiles: (fileTree: FileTree, isBrowserMode?: boolean) => string[];
16
+ /**
17
+ * Helper function to analyze skill folder structure
18
+ */
19
+ export declare const analyzeSkillStructure: (fileTree: FileTree, skillPath: string) => {
20
+ skillFolderPath: string;
21
+ hasScripts: boolean;
22
+ hasReferences: boolean;
23
+ hasAssets: boolean;
24
+ scriptFiles: string[];
25
+ referenceFiles: string[];
26
+ assetFiles: string[];
27
+ };
28
+ /**
29
+ * Helper function to validate YAML frontmatter structure and required fields
30
+ * Now validates gracefully - considers skills valid even with missing required fields
31
+ */
32
+ export declare const validateFrontmatter: (content: string) => FrontmatterValidation;
33
+ /**
34
+ * Helper function to parse skill markdown content and extract metadata
35
+ */
36
+ export declare const parseSkillContent: (content: string, path: string, fileTree: FileTree, fileSystemAdapter?: any, isBrowserMode?: boolean) => Promise<Skill>;
37
+ //# sourceMappingURL=skillsUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillsUtils.d.ts","sourceRoot":"","sources":["../../../../src/panels/skills/utils/skillsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CAWrG,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,EAAE,gBAAe,OAAe,KAAG,MAAM,EAyBzF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,QAAQ,EAAE,WAAW,MAAM;;;;;;;;CAkD1E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,qBAgErD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,MAAM,MAAM,EACZ,UAAU,QAAQ,EAClB,oBAAoB,GAAG,EACvB,gBAAe,OAAe,KAC7B,OAAO,CAAC,KAAK,CA2Ef,CAAC"}