@sudobility/analytics-components 1.0.9
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/comparison-section.d.ts +58 -0
- package/dist/comparison-section.d.ts.map +1 -0
- package/dist/container-stats.d.ts +33 -0
- package/dist/container-stats.d.ts.map +1 -0
- package/dist/empty-state.d.ts +11 -0
- package/dist/empty-state.d.ts.map +1 -0
- package/dist/feature-comparison.d.ts +33 -0
- package/dist/feature-comparison.d.ts.map +1 -0
- package/dist/feature-importance.d.ts +33 -0
- package/dist/feature-importance.d.ts.map +1 -0
- package/dist/gauge.d.ts +34 -0
- package/dist/gauge.d.ts.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +1214 -0
- package/dist/index.umd.js +6 -0
- package/dist/loading-state.d.ts +11 -0
- package/dist/loading-state.d.ts.map +1 -0
- package/dist/metric-comparison.d.ts +33 -0
- package/dist/metric-comparison.d.ts.map +1 -0
- package/dist/model-prediction.d.ts +33 -0
- package/dist/model-prediction.d.ts.map +1 -0
- package/dist/progress-tracker.d.ts +33 -0
- package/dist/progress-tracker.d.ts.map +1 -0
- package/dist/qa-report.d.ts +18 -0
- package/dist/qa-report.d.ts.map +1 -0
- package/dist/report-builder.d.ts +33 -0
- package/dist/report-builder.d.ts.map +1 -0
- package/dist/sparkline.d.ts +28 -0
- package/dist/sparkline.d.ts.map +1 -0
- package/dist/stat-display.d.ts +52 -0
- package/dist/stat-display.d.ts.map +1 -0
- package/dist/support-dashboard.d.ts +18 -0
- package/dist/support-dashboard.d.ts.map +1 -0
- package/dist/trend-indicator.d.ts +46 -0
- package/dist/trend-indicator.d.ts.map +1 -0
- package/dist/typography.d.ts +50 -0
- package/dist/typography.d.ts.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const sectionVariants: (props?: ({
|
|
4
|
+
layout?: "grid" | "stacked" | "cards" | null | undefined;
|
|
5
|
+
spacing?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
interface ComparisonItem {
|
|
8
|
+
text: string;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
highlight?: boolean;
|
|
11
|
+
subtext?: string;
|
|
12
|
+
}
|
|
13
|
+
interface ComparisonData {
|
|
14
|
+
title: string;
|
|
15
|
+
icon?: React.ReactNode;
|
|
16
|
+
items: ComparisonItem[];
|
|
17
|
+
variant: 'traditional' | 'web3' | 'neutral' | 'elevated';
|
|
18
|
+
badge?: {
|
|
19
|
+
text: string;
|
|
20
|
+
color?: 'red' | 'green' | 'blue' | 'gray';
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
interface ComparisonSectionProps extends VariantProps<typeof sectionVariants> {
|
|
24
|
+
className?: string;
|
|
25
|
+
title?: string;
|
|
26
|
+
subtitle?: string;
|
|
27
|
+
traditional: ComparisonData;
|
|
28
|
+
web3: ComparisonData;
|
|
29
|
+
cardAnimation?: 'none' | 'hover' | 'float';
|
|
30
|
+
animate?: boolean;
|
|
31
|
+
animationDelay?: number;
|
|
32
|
+
traditionalIcon?: React.ReactNode;
|
|
33
|
+
web3Icon?: React.ReactNode;
|
|
34
|
+
}
|
|
35
|
+
export declare const ComparisonSection: React.FC<ComparisonSectionProps>;
|
|
36
|
+
export declare const createComparisonData: (title: string, items: (string | ComparisonItem)[], variant: "traditional" | "web3" | "neutral" | "elevated", options?: {
|
|
37
|
+
icon?: React.ReactNode;
|
|
38
|
+
badge?: ComparisonData["badge"];
|
|
39
|
+
}) => ComparisonData;
|
|
40
|
+
export declare const createEmailComparisonData: (labels?: {
|
|
41
|
+
traditionalTitle?: string;
|
|
42
|
+
web3Title?: string;
|
|
43
|
+
traditionalItems?: {
|
|
44
|
+
text: string;
|
|
45
|
+
icon: string;
|
|
46
|
+
}[];
|
|
47
|
+
web3Items?: {
|
|
48
|
+
text: string;
|
|
49
|
+
icon: string;
|
|
50
|
+
}[];
|
|
51
|
+
traditionalBadge?: string;
|
|
52
|
+
web3Badge?: string;
|
|
53
|
+
}) => {
|
|
54
|
+
traditional: ComparisonData;
|
|
55
|
+
web3: ComparisonData;
|
|
56
|
+
};
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=comparison-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-section.d.ts","sourceRoot":"","sources":["../src/comparison-section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,eAAe;;;8EAiBnB,CAAC;AAuCH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACzD,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;KAC3C,CAAC;CACH;AAED,UAAU,sBAAuB,SAAQ,YAAY,CAAC,OAAO,eAAe,CAAC;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,cAAc,CAAC;IAC5B,IAAI,EAAE,cAAc,CAAC;IAGrB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAG3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAgBD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAsH9D,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,EAClC,SAAS,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,EACxD,UAAU;IACR,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACjC,KACA,cAKD,CAAC;AAIH,eAAO,MAAM,yBAAyB,GAAI,SAAS;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;CAkCA,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UcontainerUstats Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UcontainerUstats component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UcontainerUstats className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/container-stats}
|
|
21
|
+
*/
|
|
22
|
+
export interface UcontainerUstatsProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UcontainerUstats: ({ className, children, disabled, onClick, }: UcontainerUstatsProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=container-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-stats.d.ts","sourceRoot":"","sources":["../src/container-stats.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAAI,6CAK9B,qBAAqB,4CAmBvB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface EmptyStateProps {
|
|
3
|
+
icon?: React.ReactNode;
|
|
4
|
+
title?: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
action?: React.ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const EmptyState: React.FC<EmptyStateProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=empty-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../src/empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+BhD,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UfeatureUcomparison Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UfeatureUcomparison component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UfeatureUcomparison className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/feature-comparison}
|
|
21
|
+
*/
|
|
22
|
+
export interface UfeatureUcomparisonProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UfeatureUcomparison: ({ className, children, disabled, onClick, }: UfeatureUcomparisonProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=feature-comparison.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-comparison.d.ts","sourceRoot":"","sources":["../src/feature-comparison.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAAI,6CAKjC,wBAAwB,4CAmB1B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UfeatureUimportance Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UfeatureUimportance component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UfeatureUimportance className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/feature-importance}
|
|
21
|
+
*/
|
|
22
|
+
export interface UfeatureUimportanceProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UfeatureUimportance: ({ className, children, disabled, onClick, }: UfeatureUimportanceProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=feature-importance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-importance.d.ts","sourceRoot":"","sources":["../src/feature-importance.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAAI,6CAKjC,wBAAwB,4CAmB1B,CAAC"}
|
package/dist/gauge.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface GaugeProps {
|
|
3
|
+
/** Current value (0-100) */
|
|
4
|
+
value: number;
|
|
5
|
+
/** Minimum value */
|
|
6
|
+
min?: number;
|
|
7
|
+
/** Maximum value */
|
|
8
|
+
max?: number;
|
|
9
|
+
/** Gauge size */
|
|
10
|
+
size?: number;
|
|
11
|
+
/** Stroke width */
|
|
12
|
+
strokeWidth?: number;
|
|
13
|
+
/** Show value text */
|
|
14
|
+
showValue?: boolean;
|
|
15
|
+
/** Label */
|
|
16
|
+
label?: string;
|
|
17
|
+
/** Color variant */
|
|
18
|
+
variant?: 'primary' | 'success' | 'warning' | 'danger';
|
|
19
|
+
/** Additional className */
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Gauge Component
|
|
24
|
+
*
|
|
25
|
+
* Circular gauge/speedometer indicator.
|
|
26
|
+
* Displays progress in a semi-circular arc.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <Gauge value={75} label="CPU Usage" variant="success" />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const Gauge: React.FC<GaugeProps>;
|
|
34
|
+
//# sourceMappingURL=gauge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../src/gauge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA4DtC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* analytics-components
|
|
3
|
+
*
|
|
4
|
+
* Specialized components for the analytics domain
|
|
5
|
+
*
|
|
6
|
+
* @package @sudobility/analytics-components
|
|
7
|
+
*/
|
|
8
|
+
export * from './comparison-section';
|
|
9
|
+
export * from './container-stats';
|
|
10
|
+
export * from './empty-state';
|
|
11
|
+
export * from './feature-comparison';
|
|
12
|
+
export * from './feature-importance';
|
|
13
|
+
export * from './gauge';
|
|
14
|
+
export * from './loading-state';
|
|
15
|
+
export * from './metric-comparison';
|
|
16
|
+
export * from './model-prediction';
|
|
17
|
+
export * from './progress-tracker';
|
|
18
|
+
export * from './qa-report';
|
|
19
|
+
export * from './report-builder';
|
|
20
|
+
export * from './sparkline';
|
|
21
|
+
export * from './stat-display';
|
|
22
|
+
export * from './support-dashboard';
|
|
23
|
+
export * from './trend-indicator';
|
|
24
|
+
export * from './typography';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
|