@metricshift/react 1.4.0 → 1.5.0

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.
@@ -1,33 +1,17 @@
1
1
  import { default as React } from 'react';
2
+ import { FieldConfig, AppearanceConfig } from '../types';
2
3
 
3
4
  export interface FeedbackButtonProps {
4
5
  projectId: string;
5
6
  apiKey?: string;
6
7
  apiUrl?: string;
7
- buttonText?: string;
8
- subtitleText?: string;
9
- showIcon?: boolean;
10
- avatarSrc?: string;
11
- avatarAlt?: string;
12
- avatarSize?: number;
13
- position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'inline';
14
- size?: 'small' | 'medium' | 'large';
15
- buttonColor?: string;
16
- buttonHoverColor?: string;
17
- buttonTextColor?: string;
18
- customStyles?: React.CSSProperties;
19
- customClassName?: string;
20
- variant?: 'solid' | 'outline' | 'ghost';
21
- accentColor?: string;
22
- disabled?: boolean;
23
- autoOpen?: boolean;
8
+ fields?: FieldConfig[];
9
+ widgetType?: 'nps' | 'csat' | 'general' | 'custom';
10
+ appearance?: AppearanceConfig;
24
11
  onOpen?: () => void;
25
12
  onClose?: () => void;
26
13
  onSuccess?: (feedbackId: string) => void;
27
14
  onError?: (error: Error) => void;
28
15
  }
29
- /**
30
- * FeedbackButton Component
31
- */
32
16
  export declare const FeedbackButton: React.FC<FeedbackButtonProps>;
33
17
  //# sourceMappingURL=FeedbackButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAGhF,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAGpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAmBD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoUxD,CAAC"}
1
+ {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAEjB,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,mBAAmB;IAElC,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAGnD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAG9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAiBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkNxD,CAAC"}
@@ -1,16 +1,14 @@
1
1
  import { default as React } from 'react';
2
+ import { FieldConfig, FeedbackPayload, AppearanceConfig } from '../types';
2
3
 
3
4
  interface FeedbackModalProps {
4
5
  isOpen: boolean;
5
6
  onClose: () => void;
6
- onSubmit: (data: FeedbackFormData) => Promise<void>;
7
- }
8
- export interface FeedbackFormData {
9
- text: string;
10
- rating?: number;
11
- feedbackType: 'general' | 'bug' | 'feature_request' | 'question' | 'praise';
12
- userEmail?: string;
13
- userName?: string;
7
+ onSubmit: (payload: FeedbackPayload) => Promise<void>;
8
+ projectId: string;
9
+ fields?: FieldConfig[];
10
+ appearance?: AppearanceConfig;
11
+ widgetType?: 'nps' | 'csat' | 'general' | 'custom';
14
12
  }
15
13
  export declare const FeedbackModal: React.FC<FeedbackModalProps>;
16
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackModal.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,SAAS,GAAG,KAAK,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgdtD,CAAC"}
1
+ {"version":3,"file":"FeedbackModal.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAK/E,UAAU,kBAAkB;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;CACpD;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwXtD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ import { FieldConfig } from '../types';
3
+
4
+ export type FieldValue = string | number | boolean | string[];
5
+ export interface FormValues {
6
+ [fieldId: string]: FieldValue;
7
+ }
8
+ interface FormRendererProps {
9
+ fields: FieldConfig[];
10
+ values: FormValues;
11
+ onChange: (fieldId: string, value: FieldValue) => void;
12
+ disabled?: boolean;
13
+ primaryColor?: string;
14
+ }
15
+ export declare const FormRenderer: React.FC<FormRendererProps>;
16
+ export declare function useFormState(fields: FieldConfig[]): {
17
+ values: FormValues;
18
+ handleChange: (fieldId: string, value: FieldValue) => void;
19
+ validate: () => string | null;
20
+ reset: () => void;
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=FormRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;CAC/B;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA6XD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmGpD,CAAC;AAIF,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE;;4BAGjB,MAAM,SAAS,UAAU;oBAInC,MAAM,GAAG,IAAI;;EAmBnC"}
@@ -1,17 +1,25 @@
1
1
  import { default as React } from 'react';
2
2
  import { MetricShiftConfig } from '../types';
3
3
 
4
- export declare const useMetricShift: () => MetricShiftConfig;
4
+ interface MetricShiftContextValue {
5
+ config: MetricShiftConfig;
6
+ isOpen: boolean;
7
+ openWidget: (flowId?: string) => void;
8
+ closeWidget: () => void;
9
+ }
10
+ export declare const useMetricShift: () => MetricShiftContextValue;
11
+ interface MetricShiftGlobal {
12
+ init: (config: MetricShiftConfig) => void;
13
+ open: (flowId?: string) => void;
14
+ close: () => void;
15
+ trigger: (eventName: string) => void;
16
+ getConfig: () => MetricShiftConfig | null;
17
+ }
18
+ export declare const MetricShift: MetricShiftGlobal;
5
19
  interface MetricShiftProviderProps {
6
20
  config: MetricShiftConfig;
7
21
  children: React.ReactNode;
8
22
  }
9
- /**
10
- * MetricShiftProvider Component
11
- *
12
- * Provides MetricShift configuration to child components via React Context.
13
- * Will be fully implemented in Week 2.
14
- */
15
23
  export declare const MetricShiftProvider: React.FC<MetricShiftProviderProps>;
16
24
  export {};
17
25
  //# sourceMappingURL=MetricShiftProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricShiftProvider.d.ts","sourceRoot":"","sources":["../../src/components/MetricShiftProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD,eAAO,MAAM,cAAc,yBAM1B,CAAC;AAEF,UAAU,wBAAwB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CASlE,CAAC"}
1
+ {"version":3,"file":"MetricShiftProvider.d.ts","sourceRoot":"","sources":["../../src/components/MetricShiftProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,iBAAiB,EAAgB,MAAM,UAAU,CAAC;AAMhE,UAAU,uBAAuB;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,eAAO,MAAM,cAAc,QAAO,uBAMjC,CAAC;AAKF,UAAU,iBAAiB;IACzB,IAAI,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;CAC3C;AAID,eAAO,MAAM,WAAW,EAAE,iBAyBzB,CAAC;AAIF,UAAU,wBAAwB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqDlE,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type BusEventType = 'open' | 'close' | 'submit' | 'trigger';
2
+ export interface BusEvent {
3
+ type: BusEventType;
4
+ payload?: {
5
+ flowId?: string;
6
+ eventName?: string;
7
+ };
8
+ }
9
+ export type BusListener = (event: BusEvent) => void;
10
+ declare class EventBus {
11
+ private listeners;
12
+ on(listener: BusListener): () => void;
13
+ emit(event: BusEvent): void;
14
+ clear(): void;
15
+ }
16
+ export declare const eventBus: EventBus;
17
+ export {};
18
+ //# sourceMappingURL=EventBus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/engine/EventBus.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEpD,cAAM,QAAQ;IACZ,OAAO,CAAC,SAAS,CAA+B;IAEhD,EAAE,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,IAAI;IAMrC,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI3B,KAAK,IAAI,IAAI;CAGd;AAGD,eAAO,MAAM,QAAQ,UAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare class SessionManager {
2
+ private projectId;
3
+ constructor(projectId: string);
4
+ private key;
5
+ hasShownBefore(): boolean;
6
+ markShown(): void;
7
+ clearShown(): void;
8
+ }
9
+ //# sourceMappingURL=SessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/engine/SessionManager.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,EAAE,MAAM;IAI7B,OAAO,CAAC,GAAG;IAIX,cAAc,IAAI,OAAO;IAQzB,SAAS,IAAI,IAAI;IAMjB,UAAU,IAAI,IAAI;CAKnB"}
@@ -0,0 +1,16 @@
1
+ import { TriggerConfig, SessionConfig } from '../types';
2
+
3
+ export declare class TriggerEngine {
4
+ private projectId;
5
+ private trigger;
6
+ private session;
7
+ private cleanupFns;
8
+ private fired;
9
+ constructor(projectId: string, trigger: TriggerConfig, session?: SessionConfig);
10
+ start(): void;
11
+ fireManual(flowId?: string): void;
12
+ private fire;
13
+ reset(): void;
14
+ destroy(): void;
15
+ }
16
+ //# sourceMappingURL=TriggerEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerEngine.d.ts","sourceRoot":"","sources":["../../src/engine/TriggerEngine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA4B7D,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,KAAK,CAAS;gBAGpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,aAAkB;IAO7B,KAAK,IAAI,IAAI;IA4Bb,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,IAAI;IAYZ,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;CAIhB"}
package/dist/index.d.ts CHANGED
@@ -1,23 +1,12 @@
1
1
  export { FeedbackButton } from './components/FeedbackButton';
2
2
  export { FeedbackModal } from './components/FeedbackModal';
3
- export { MetricShiftProvider, useMetricShift } from './components/MetricShiftProvider';
4
- export type { FeedbackButtonProps } from './components/FeedbackButton';
5
- export type { FeedbackFormData } from './components/FeedbackModal';
6
- export { submitFeedback } from './utils/api';
7
- export interface MetricShiftConfig {
8
- projectId: string;
9
- apiKey?: string;
10
- apiUrl?: string;
11
- }
12
- export declare const MetricShift: {
13
- /**
14
- * Initialize the MetricShift SDK
15
- * @param config - SDK configuration
16
- */
17
- init: (config: MetricShiftConfig) => void;
18
- /**
19
- * Get current SDK configuration
20
- */
21
- getConfig: () => MetricShiftConfig | null;
22
- };
3
+ export { FormRenderer, useFormState } from './components/FormRenderer';
4
+ export { MetricShiftProvider, useMetricShift, MetricShift, } from './components/MetricShiftProvider';
5
+ export { eventBus } from './engine/EventBus';
6
+ export { TriggerEngine } from './engine/TriggerEngine';
7
+ export { SessionManager } from './engine/SessionManager';
8
+ export type { MetricShiftConfig, WidgetConfig, AppearanceConfig, TriggerConfig, SessionConfig, FieldConfig, FieldType, ButtonVariant, WidgetPosition, DisplayMode, TriggerType, FeedbackPayload, FeedbackFormData, FieldValue, } from './types';
9
+ export type { FormValues, } from './components/FormRenderer';
10
+ export type { NpsAnalytics, NpsTrendPoint, GeneralAnalytics, AnalyticsResponse, BusEvent, BusEventType, BusListener, } from './types';
11
+ export { NPS_PRESET, CSAT_PRESET, GENERAL_PRESET } from './types';
23
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvF,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,eAAO,MAAM,WAAW;IACtB;;;OAGG;mBACY,iBAAiB;IAWhC;;OAEG;;CAEJ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,WAAW,GACZ,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EAEV,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EAGb,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EAGX,eAAe,EACf,gBAAgB,EAChB,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,GACX,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}