@metricshift/react 1.3.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.
package/README.md CHANGED
@@ -217,26 +217,29 @@ Instead of treating feedback as something you “look at later”, callbacks let
217
217
 
218
218
  Act on feedback at the moment intent happens.
219
219
 
220
- 🧩 Props
221
- Prop Type Default Description
222
- projectId string required MetricShift project ID
223
- apiKey string required Project API key
224
- apiUrl string MetricShift API Backend endpoint
225
- buttonText string 'Feedback' Main label
226
- subtitleText string undefined Optional second line
227
- avatarSrc string undefined Avatar / image URL
228
- avatarAlt string '' Accessible alt text
229
- avatarSize number 40 Avatar diameter (px)
230
- variant 'solid' | 'outline' | 'ghost' 'outline' Visual style
231
- accentColor string '#111827' Brand color
232
- position 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'inline' 'bottom-right' Placement
233
- size 'small' | 'medium' | 'large' 'medium' Button size
234
- customStyles CSSProperties {} Inline overrides
235
- customClassName string '' Custom CSS class
236
- onOpen () => void — Modal opened
237
- onClose () => void — Modal closed
238
- onSuccess (id: string) => void Submission success
239
- onError (error: Error) => void Submission error
220
+ ## 🧩 Props
221
+
222
+ | Prop | Type | Default | Description |
223
+ | --- | --- | --- | --- |
224
+ | `projectId` | `string` | **required** | MetricShift project ID |
225
+ | `apiKey` | `string` | **required** | Project API key |
226
+ | `apiUrl` | `string` | `https://metricshift-sdk-be-production.up.railway.app` | MetricShift API backend endpoint |
227
+ | `buttonText` | `string` | `Feedback` | Main label |
228
+ | `subtitleText` | `string` | `undefined` | Optional second line |
229
+ | `avatarSrc` | `string` | `undefined` | Avatar / image URL |
230
+ | `avatarAlt` | `string` | `''` | Accessible alt text |
231
+ | `avatarSize` | `number` | `40` | Avatar diameter (px) |
232
+ | `variant` | `'solid' \| 'outline' \| 'ghost'` | `'outline'` | Visual style |
233
+ | `accentColor` | `string` | `'#111827'` | Brand accent color |
234
+ | `position` | `'bottom-right' \| 'bottom-left' \| 'top-right' \| 'top-left' \| 'inline'` | `'bottom-right'` | Widget placement |
235
+ | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Button size |
236
+ | `customStyles` | `CSSProperties` | `{}` | Inline style overrides |
237
+ | `customClassName` | `string` | `''` | Custom CSS class |
238
+ | `onOpen` | `() => void` | | Fired when modal opens |
239
+ | `onClose` | `() => void` | | Fired when modal closes |
240
+ | `onSuccess` | `(id: string) => void` | — | Fired on successful submission |
241
+ | `onError` | `(error: Error) => void` | — | Fired on submission error |
242
+
240
243
  📊 Dashboard
241
244
 
242
245
  Your MetricShift dashboard includes:
@@ -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"}