@pxlabz/tracey-react 0.0.1
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 +83 -0
- package/dist/LauncherTrigger-5pNAvA05.js +1056 -0
- package/dist/LauncherTrigger-5pNAvA05.js.map +1 -0
- package/dist/LauncherTrigger-DjXDXHTm.cjs +1055 -0
- package/dist/LauncherTrigger-DjXDXHTm.cjs.map +1 -0
- package/dist/__tests__/api-client.test.d.ts +2 -0
- package/dist/__tests__/api-client.test.d.ts.map +1 -0
- package/dist/__tests__/events.test.d.ts +2 -0
- package/dist/__tests__/events.test.d.ts.map +1 -0
- package/dist/__tests__/survey-logic.test.d.ts +2 -0
- package/dist/__tests__/survey-logic.test.d.ts.map +1 -0
- package/dist/components/announcements/AnnouncementBell.d.ts +9 -0
- package/dist/components/announcements/AnnouncementBell.d.ts.map +1 -0
- package/dist/components/announcements/AnnouncementList.d.ts +7 -0
- package/dist/components/announcements/AnnouncementList.d.ts.map +1 -0
- package/dist/components/announcements/AnnouncementModal.d.ts +9 -0
- package/dist/components/announcements/AnnouncementModal.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementClose.d.ts +9 -0
- package/dist/components/announcements/headless/AnnouncementClose.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementContent.d.ts +7 -0
- package/dist/components/announcements/headless/AnnouncementContent.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementNavigation.d.ts +15 -0
- package/dist/components/announcements/headless/AnnouncementNavigation.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementPortal.d.ts +7 -0
- package/dist/components/announcements/headless/AnnouncementPortal.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementRoot.d.ts +24 -0
- package/dist/components/announcements/headless/AnnouncementRoot.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementSlidePrimitive.d.ts +14 -0
- package/dist/components/announcements/headless/AnnouncementSlidePrimitive.d.ts.map +1 -0
- package/dist/components/announcements/headless/AnnouncementTrigger.d.ts +9 -0
- package/dist/components/announcements/headless/AnnouncementTrigger.d.ts.map +1 -0
- package/dist/components/announcements/headless/index.d.ts +8 -0
- package/dist/components/announcements/headless/index.d.ts.map +1 -0
- package/dist/components/announcements/index.d.ts +4 -0
- package/dist/components/announcements/index.d.ts.map +1 -0
- package/dist/components/feedback/FeedbackForm.d.ts +8 -0
- package/dist/components/feedback/FeedbackForm.d.ts.map +1 -0
- package/dist/components/feedback/FeedbackWidget.d.ts +9 -0
- package/dist/components/feedback/FeedbackWidget.d.ts.map +1 -0
- package/dist/components/feedback/headless/FeedbackClose.d.ts +9 -0
- package/dist/components/feedback/headless/FeedbackClose.d.ts.map +1 -0
- package/dist/components/feedback/headless/FeedbackContent.d.ts +6 -0
- package/dist/components/feedback/headless/FeedbackContent.d.ts.map +1 -0
- package/dist/components/feedback/headless/FeedbackFormPrimitive.d.ts +28 -0
- package/dist/components/feedback/headless/FeedbackFormPrimitive.d.ts.map +1 -0
- package/dist/components/feedback/headless/FeedbackPortal.d.ts +7 -0
- package/dist/components/feedback/headless/FeedbackPortal.d.ts.map +1 -0
- package/dist/components/feedback/headless/FeedbackRoot.d.ts +16 -0
- package/dist/components/feedback/headless/FeedbackRoot.d.ts.map +1 -0
- package/dist/components/feedback/headless/FeedbackTrigger.d.ts +9 -0
- package/dist/components/feedback/headless/FeedbackTrigger.d.ts.map +1 -0
- package/dist/components/feedback/headless/index.d.ts +7 -0
- package/dist/components/feedback/headless/index.d.ts.map +1 -0
- package/dist/components/feedback/index.d.ts +4 -0
- package/dist/components/feedback/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/launcher/TraceyLauncher.d.ts +8 -0
- package/dist/components/launcher/TraceyLauncher.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherBadge.d.ts +8 -0
- package/dist/components/launcher/headless/LauncherBadge.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherMenu.d.ts +6 -0
- package/dist/components/launcher/headless/LauncherMenu.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherMenuItem.d.ts +9 -0
- package/dist/components/launcher/headless/LauncherMenuItem.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherPanel.d.ts +6 -0
- package/dist/components/launcher/headless/LauncherPanel.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherPortal.d.ts +7 -0
- package/dist/components/launcher/headless/LauncherPortal.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherRoot.d.ts +21 -0
- package/dist/components/launcher/headless/LauncherRoot.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherTab.d.ts +8 -0
- package/dist/components/launcher/headless/LauncherTab.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherTabContent.d.ts +8 -0
- package/dist/components/launcher/headless/LauncherTabContent.d.ts.map +1 -0
- package/dist/components/launcher/headless/LauncherTrigger.d.ts +10 -0
- package/dist/components/launcher/headless/LauncherTrigger.d.ts.map +1 -0
- package/dist/components/launcher/headless/index.d.ts +10 -0
- package/dist/components/launcher/headless/index.d.ts.map +1 -0
- package/dist/components/launcher/index.d.ts +3 -0
- package/dist/components/launcher/index.d.ts.map +1 -0
- package/dist/components/surveys/SurveyWidget.d.ts +10 -0
- package/dist/components/surveys/SurveyWidget.d.ts.map +1 -0
- package/dist/components/surveys/index.d.ts +2 -0
- package/dist/components/surveys/index.d.ts.map +1 -0
- package/dist/core/api-client.d.ts +33 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/events.d.ts +11 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/screenshot.d.ts +12 -0
- package/dist/core/screenshot.d.ts.map +1 -0
- package/dist/core/survey-logic.d.ts +7 -0
- package/dist/core/survey-logic.d.ts.map +1 -0
- package/dist/headless.cjs +100 -0
- package/dist/headless.cjs.map +1 -0
- package/dist/headless.d.ts +11 -0
- package/dist/headless.d.ts.map +1 -0
- package/dist/headless.js +101 -0
- package/dist/headless.js.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useAnnouncements.d.ts +14 -0
- package/dist/hooks/useAnnouncements.d.ts.map +1 -0
- package/dist/hooks/useFeedback.d.ts +10 -0
- package/dist/hooks/useFeedback.d.ts.map +1 -0
- package/dist/hooks/useMyFeedback.d.ts +16 -0
- package/dist/hooks/useMyFeedback.d.ts.map +1 -0
- package/dist/hooks/useSurvey.d.ts +22 -0
- package/dist/hooks/useSurvey.d.ts.map +1 -0
- package/dist/hooks/useTracey.d.ts +3 -0
- package/dist/hooks/useTracey.d.ts.map +1 -0
- package/dist/hooks/useTraceyEvents.d.ts +14 -0
- package/dist/hooks/useTraceyEvents.d.ts.map +1 -0
- package/dist/index.cjs +4913 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4892 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/provider/MockTraceyProvider.d.ts +14 -0
- package/dist/provider/MockTraceyProvider.d.ts.map +1 -0
- package/dist/provider/TraceyProvider.d.ts +11 -0
- package/dist/provider/TraceyProvider.d.ts.map +1 -0
- package/dist/provider/context.d.ts +19 -0
- package/dist/provider/context.d.ts.map +1 -0
- package/dist/provider/index.d.ts +4 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/styles.css +800 -0
- package/dist/types.d.ts +188 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ReactNode, type HTMLAttributes } from "react";
|
|
2
|
+
export interface LauncherMenuProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function LauncherMenu({ children, ...props }: LauncherMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
//# sourceMappingURL=LauncherMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAqB,MAAM,OAAO,CAAC;AAI/E,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,kDA0BrE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ReactNode, type HTMLAttributes } from "react";
|
|
2
|
+
import { type LauncherActiveItem } from "./LauncherRoot";
|
|
3
|
+
export interface LauncherMenuItemProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
onSelect?: () => void;
|
|
6
|
+
item?: LauncherActiveItem;
|
|
7
|
+
}
|
|
8
|
+
export declare function LauncherMenuItem({ children, onSelect, item, onClick, ...props }: LauncherMenuItemProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=LauncherMenuItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherMenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherMenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAe,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC5E,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,EAChC,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,GAAG,KAAK,EACR,EAAE,qBAAqB,2CAoBvB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ReactNode, type HTMLAttributes } from "react";
|
|
2
|
+
export interface LauncherPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function LauncherPanel({ children, ...props }: LauncherPanelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
//# sourceMappingURL=LauncherPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAqB,MAAM,OAAO,CAAC;AAI/E,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACzE,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,kDA0CvE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface LauncherPortalProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
container?: HTMLElement;
|
|
5
|
+
}
|
|
6
|
+
export declare function LauncherPortal({ children, container }: LauncherPortalProps): import("react").ReactPortal | null;
|
|
7
|
+
//# sourceMappingURL=LauncherPortal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherPortal.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG5D,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,mBAAmB,sCAa1E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactNode, type RefObject } from "react";
|
|
2
|
+
export type LauncherActiveItem = "feedback" | "announcements" | null;
|
|
3
|
+
interface LauncherContextValue {
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
setIsOpen: (open: boolean) => void;
|
|
6
|
+
toggle: () => void;
|
|
7
|
+
activeItem: LauncherActiveItem;
|
|
8
|
+
setActiveItem: (item: LauncherActiveItem) => void;
|
|
9
|
+
triggerRef: RefObject<HTMLElement | null>;
|
|
10
|
+
}
|
|
11
|
+
export declare function useLauncherContext(): LauncherContextValue;
|
|
12
|
+
export interface LauncherRootProps {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
defaultOpen?: boolean;
|
|
15
|
+
open?: boolean;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
defaultActiveItem?: LauncherActiveItem;
|
|
18
|
+
}
|
|
19
|
+
export declare function LauncherRoot({ children, defaultOpen, open, onOpenChange, defaultActiveItem, }: LauncherRootProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=LauncherRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherRoot.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,SAAS,EACd,KAAK,SAAS,EACd,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,eAAe,GAAG,IAAI,CAAC;AAErE,UAAU,oBAAoB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,aAAa,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClD,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC1C;AAID,wBAAgB,kBAAkB,IAAI,oBAAoB,CAQzD;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED,wBAAgB,YAAY,CAAC,EAC5B,QAAQ,EACR,WAAmB,EACnB,IAAI,EACJ,YAAY,EACZ,iBAAwB,GACxB,EAAE,iBAAiB,2CAuCnB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode, HTMLAttributes } from "react";
|
|
2
|
+
import { type LauncherActiveItem } from "./LauncherRoot";
|
|
3
|
+
export interface LauncherTabProps extends Omit<HTMLAttributes<HTMLButtonElement>, "children"> {
|
|
4
|
+
value: LauncherActiveItem;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function LauncherTab({ value, children, ...props }: LauncherTabProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=LauncherTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherTab.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,gBAChB,SAAQ,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC3D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAgB1E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode, HTMLAttributes } from "react";
|
|
2
|
+
import { type LauncherActiveItem } from "./LauncherRoot";
|
|
3
|
+
export interface LauncherTabContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
value: LauncherActiveItem;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function LauncherTabContent({ value, children, ...props }: LauncherTabContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=LauncherTabContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherTabContent.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherTabContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,uBAChB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,uBAAuB,kDAYzB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactElement, type MouseEvent, type Ref } from "react";
|
|
2
|
+
export interface LauncherTriggerProps {
|
|
3
|
+
children: ReactElement<{
|
|
4
|
+
onClick?: (e: MouseEvent) => void;
|
|
5
|
+
ref?: Ref<HTMLElement>;
|
|
6
|
+
}>;
|
|
7
|
+
asChild?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function LauncherTrigger({ children, asChild, }: LauncherTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=LauncherTrigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LauncherTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/LauncherTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAEjB,KAAK,UAAU,EACf,KAAK,GAAG,EAER,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,YAAY,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;KACvB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,EAC/B,QAAQ,EACR,OAAc,GACd,EAAE,oBAAoB,2CAyBtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { LauncherRoot, useLauncherContext, type LauncherRootProps, type LauncherActiveItem, } from "./LauncherRoot";
|
|
2
|
+
export { LauncherTrigger, type LauncherTriggerProps, } from "./LauncherTrigger";
|
|
3
|
+
export { LauncherMenu, type LauncherMenuProps } from "./LauncherMenu";
|
|
4
|
+
export { LauncherMenuItem, type LauncherMenuItemProps, } from "./LauncherMenuItem";
|
|
5
|
+
export { LauncherBadge, type LauncherBadgeProps } from "./LauncherBadge";
|
|
6
|
+
export { LauncherPortal, type LauncherPortalProps } from "./LauncherPortal";
|
|
7
|
+
export { LauncherPanel, type LauncherPanelProps } from "./LauncherPanel";
|
|
8
|
+
export { LauncherTab, type LauncherTabProps } from "./LauncherTab";
|
|
9
|
+
export { LauncherTabContent, type LauncherTabContentProps, } from "./LauncherTabContent";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/launcher/headless/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,eAAe,EACf,KAAK,oBAAoB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACN,gBAAgB,EAChB,KAAK,qBAAqB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACN,kBAAkB,EAClB,KAAK,uBAAuB,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/launcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TraceyTheme } from "../../types";
|
|
2
|
+
export interface SurveyWidgetProps {
|
|
3
|
+
anonymousSessionId?: string;
|
|
4
|
+
url?: string;
|
|
5
|
+
theme?: TraceyTheme;
|
|
6
|
+
autoLoad?: boolean;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function SurveyWidget({ anonymousSessionId, url, theme, autoLoad, title, }: SurveyWidgetProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=SurveyWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurveyWidget.d.ts","sourceRoot":"","sources":["../../../src/components/surveys/SurveyWidget.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,WAAW,EAAE,MAAM,aAAa,CAAC;AAIlE,MAAM,WAAW,iBAAiB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,EAC5B,kBAAkB,EAClB,GAAG,EACH,KAAK,EACL,QAAe,EACf,KAAsB,GACtB,EAAE,iBAAiB,kDA4MnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/surveys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { TraceyConfig, TraceyUser, Feedback, FeedbackResponse, MyFeedbackItem, PaginatedResponse, Announcement, Survey, SurveyAnswerInput, SurveyResponseResult } from "../types";
|
|
2
|
+
export declare class TraceyApiClient {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(config: TraceyConfig);
|
|
5
|
+
setCustomerId(id: string): void;
|
|
6
|
+
getCustomerId(): string | null;
|
|
7
|
+
identify(user: TraceyUser): Promise<{
|
|
8
|
+
success: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
getAnnouncements(filter?: "unread" | "all"): Promise<Announcement[]>;
|
|
11
|
+
getUnreadCount(): Promise<{
|
|
12
|
+
count: number;
|
|
13
|
+
}>;
|
|
14
|
+
trackAnnouncementView(announcementId: number): Promise<void>;
|
|
15
|
+
trackAnnouncementCta(announcementId: number): Promise<void>;
|
|
16
|
+
submitFeedback(feedback: Feedback): Promise<FeedbackResponse>;
|
|
17
|
+
getMyFeedback(params?: {
|
|
18
|
+
limit?: number;
|
|
19
|
+
offset?: number;
|
|
20
|
+
}): Promise<PaginatedResponse<MyFeedbackItem>>;
|
|
21
|
+
getActiveSurvey(context?: {
|
|
22
|
+
anonymousSessionId?: string;
|
|
23
|
+
url?: string;
|
|
24
|
+
}): Promise<Survey | null>;
|
|
25
|
+
submitSurveyResponse(surveyId: number, payload: {
|
|
26
|
+
answers: SurveyAnswerInput[];
|
|
27
|
+
anonymousSessionId?: string;
|
|
28
|
+
respondentEmail?: string;
|
|
29
|
+
respondentName?: string;
|
|
30
|
+
metadata?: Record<string, unknown>;
|
|
31
|
+
}): Promise<SurveyResponseResult>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/core/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,oBAAoB,EAEpB,MAAM,UAAU,CAAC;AAElB,qBAAa,eAAe;;gBAKf,MAAM,EAAE,YAAY;IAKhC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa,IAAI,MAAM,GAAG,IAAI;IAyBxB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAWzD,gBAAgB,CACrB,MAAM,GAAE,QAAQ,GAAG,KAAgB,GACjC,OAAO,CAAC,YAAY,EAAE,CAAC;IASpB,cAAc,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAS5C,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAU7D,aAAa,CAAC,MAAM,CAAC,EAAE;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAexC,eAAe,CAAC,OAAO,CAAC,EAAE;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAepB,oBAAoB,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACR,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,GACC,OAAO,CAAC,oBAAoB,CAAC;CAahC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TraceyEvents } from "../types";
|
|
2
|
+
type EventCallback<K extends keyof TraceyEvents> = (data: TraceyEvents[K]) => void;
|
|
3
|
+
export declare class TraceyEventEmitter {
|
|
4
|
+
#private;
|
|
5
|
+
subscribe<K extends keyof TraceyEvents>(event: K, callback: EventCallback<K>): () => void;
|
|
6
|
+
unsubscribe<K extends keyof TraceyEvents>(event: K, callback: EventCallback<K>): void;
|
|
7
|
+
emit<K extends keyof TraceyEvents>(event: K, data: TraceyEvents[K]): void;
|
|
8
|
+
clear(): void;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,YAAY,IAAI,CAClD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KACjB,IAAI,CAAC;AAKV,qBAAa,kBAAkB;;IAG9B,SAAS,CAAC,CAAC,SAAS,MAAM,YAAY,EACrC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,MAAM,IAAI;IAcb,WAAW,CAAC,CAAC,SAAS,MAAM,YAAY,EACvC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,IAAI;IAOP,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAazE,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Captures a screenshot of the current page.
|
|
3
|
+
* Tries native getDisplayMedia first, falls back to html2canvas if available.
|
|
4
|
+
* Returns base64-encoded image data.
|
|
5
|
+
*/
|
|
6
|
+
export declare function captureScreenshot(): Promise<string | null>;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if screenshot capture is likely available.
|
|
9
|
+
* Note: This doesn't guarantee permission will be granted.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isScreenshotSupported(): boolean;
|
|
12
|
+
//# sourceMappingURL=screenshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/core/screenshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6DhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAQ/C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SurveyLogicRule, SurveyQuestion } from "../types";
|
|
2
|
+
export declare function getActiveSurveyQuestionKeys(params: {
|
|
3
|
+
questions: SurveyQuestion[];
|
|
4
|
+
logicRules: SurveyLogicRule[];
|
|
5
|
+
answers: Record<string, string | number>;
|
|
6
|
+
}): Set<string>;
|
|
7
|
+
//# sourceMappingURL=survey-logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"survey-logic.d.ts","sourceRoot":"","sources":["../../src/core/survey-logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA8ChE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IACnD,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACzC,GAAG,GAAG,CAAC,MAAM,CAAC,CAgDd"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const LauncherTrigger = require("./LauncherTrigger-DjXDXHTm.cjs");
|
|
4
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
5
|
+
const react = require("react");
|
|
6
|
+
function AnnouncementTrigger({
|
|
7
|
+
children,
|
|
8
|
+
asChild = true
|
|
9
|
+
}) {
|
|
10
|
+
const { setIsOpen } = LauncherTrigger.useAnnouncementContext();
|
|
11
|
+
const handleClick = (e) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
(_b = (_a = children.props).onClick) == null ? void 0 : _b.call(_a, e);
|
|
14
|
+
setIsOpen(true);
|
|
15
|
+
};
|
|
16
|
+
if (asChild) {
|
|
17
|
+
return react.cloneElement(children, { onClick: handleClick });
|
|
18
|
+
}
|
|
19
|
+
return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: handleClick, children });
|
|
20
|
+
}
|
|
21
|
+
function AnnouncementSlidePrimitive({
|
|
22
|
+
children,
|
|
23
|
+
index
|
|
24
|
+
}) {
|
|
25
|
+
const { currentAnnouncement, currentSlideIndex, totalSlides } = LauncherTrigger.useAnnouncementContext();
|
|
26
|
+
const slide = currentAnnouncement == null ? void 0 : currentAnnouncement.slides[index];
|
|
27
|
+
if (!slide) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const isActive = currentSlideIndex === index;
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: children({ slide, index, isActive, totalSlides }) });
|
|
32
|
+
}
|
|
33
|
+
function LauncherMenu({ children, ...props }) {
|
|
34
|
+
const { isOpen, setIsOpen } = LauncherTrigger.useLauncherContext();
|
|
35
|
+
const menuRef = react.useRef(null);
|
|
36
|
+
react.useEffect(() => {
|
|
37
|
+
if (!isOpen) return;
|
|
38
|
+
const handleClickOutside = (e) => {
|
|
39
|
+
if (menuRef.current && !menuRef.current.contains(e.target)) {
|
|
40
|
+
setIsOpen(false);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
44
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
45
|
+
}, [isOpen, setIsOpen]);
|
|
46
|
+
if (!isOpen) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: menuRef, role: "menu", ...props, children });
|
|
50
|
+
}
|
|
51
|
+
function LauncherMenuItem({
|
|
52
|
+
children,
|
|
53
|
+
onSelect,
|
|
54
|
+
item,
|
|
55
|
+
onClick,
|
|
56
|
+
...props
|
|
57
|
+
}) {
|
|
58
|
+
const { setActiveItem, setIsOpen } = LauncherTrigger.useLauncherContext();
|
|
59
|
+
const handleClick = react.useCallback(
|
|
60
|
+
(e) => {
|
|
61
|
+
onClick == null ? void 0 : onClick(e);
|
|
62
|
+
if (item) {
|
|
63
|
+
setActiveItem(item);
|
|
64
|
+
}
|
|
65
|
+
setIsOpen(false);
|
|
66
|
+
onSelect == null ? void 0 : onSelect();
|
|
67
|
+
},
|
|
68
|
+
[onClick, item, setActiveItem, setIsOpen, onSelect]
|
|
69
|
+
);
|
|
70
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "menuitem", tabIndex: 0, onClick: handleClick, ...props, children });
|
|
71
|
+
}
|
|
72
|
+
exports.AnnouncementClose = LauncherTrigger.AnnouncementClose;
|
|
73
|
+
exports.AnnouncementContent = LauncherTrigger.AnnouncementContent;
|
|
74
|
+
exports.AnnouncementNavigation = LauncherTrigger.AnnouncementNavigation;
|
|
75
|
+
exports.AnnouncementPortal = LauncherTrigger.AnnouncementPortal;
|
|
76
|
+
exports.AnnouncementRoot = LauncherTrigger.AnnouncementRoot;
|
|
77
|
+
exports.FeedbackClose = LauncherTrigger.FeedbackClose;
|
|
78
|
+
exports.FeedbackContent = LauncherTrigger.FeedbackContent;
|
|
79
|
+
exports.FeedbackFormPrimitive = LauncherTrigger.FeedbackFormPrimitive;
|
|
80
|
+
exports.FeedbackPortal = LauncherTrigger.FeedbackPortal;
|
|
81
|
+
exports.FeedbackRoot = LauncherTrigger.FeedbackRoot;
|
|
82
|
+
exports.FeedbackTrigger = LauncherTrigger.FeedbackTrigger;
|
|
83
|
+
exports.LauncherBadge = LauncherTrigger.LauncherBadge;
|
|
84
|
+
exports.LauncherPanel = LauncherTrigger.LauncherPanel;
|
|
85
|
+
exports.LauncherPortal = LauncherTrigger.LauncherPortal;
|
|
86
|
+
exports.LauncherRoot = LauncherTrigger.LauncherRoot;
|
|
87
|
+
exports.LauncherTab = LauncherTrigger.LauncherTab;
|
|
88
|
+
exports.LauncherTabContent = LauncherTrigger.LauncherTabContent;
|
|
89
|
+
exports.LauncherTrigger = LauncherTrigger.LauncherTrigger;
|
|
90
|
+
exports.MockTraceyProvider = LauncherTrigger.MockTraceyProvider;
|
|
91
|
+
exports.TraceyProvider = LauncherTrigger.TraceyProvider;
|
|
92
|
+
exports.useAnnouncements = LauncherTrigger.useAnnouncements;
|
|
93
|
+
exports.useFeedback = LauncherTrigger.useFeedback;
|
|
94
|
+
exports.useTracey = LauncherTrigger.useTracey;
|
|
95
|
+
exports.useTraceyEvents = LauncherTrigger.useTraceyEvents;
|
|
96
|
+
exports.AnnouncementSlidePrimitive = AnnouncementSlidePrimitive;
|
|
97
|
+
exports.AnnouncementTrigger = AnnouncementTrigger;
|
|
98
|
+
exports.LauncherMenu = LauncherMenu;
|
|
99
|
+
exports.LauncherMenuItem = LauncherMenuItem;
|
|
100
|
+
//# sourceMappingURL=headless.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless.cjs","sources":["../src/components/announcements/headless/AnnouncementTrigger.tsx","../src/components/announcements/headless/AnnouncementSlidePrimitive.tsx","../src/components/launcher/headless/LauncherMenu.tsx","../src/components/launcher/headless/LauncherMenuItem.tsx"],"sourcesContent":["import { type ReactElement, cloneElement, type MouseEvent } from \"react\";\n\nimport { useAnnouncementContext } from \"./AnnouncementRoot\";\n\nexport interface AnnouncementTriggerProps {\n\tchildren: ReactElement<{ onClick?: (e: MouseEvent) => void }>;\n\tasChild?: boolean;\n}\n\nexport function AnnouncementTrigger({\n\tchildren,\n\tasChild = true,\n}: AnnouncementTriggerProps) {\n\tconst { setIsOpen } = useAnnouncementContext();\n\n\tconst handleClick = (e: MouseEvent) => {\n\t\tchildren.props.onClick?.(e);\n\t\tsetIsOpen(true);\n\t};\n\n\tif (asChild) {\n\t\treturn cloneElement(children, { onClick: handleClick });\n\t}\n\n\treturn (\n\t\t<button type=\"button\" onClick={handleClick}>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n","import { type ReactNode } from \"react\";\n\nimport { useAnnouncementContext } from \"./AnnouncementRoot\";\nimport type { AnnouncementSlide } from \"../../../types\";\n\nexport interface AnnouncementSlideRenderProps {\n\tslide: AnnouncementSlide;\n\tindex: number;\n\tisActive: boolean;\n\ttotalSlides: number;\n}\n\nexport interface AnnouncementSlidePrimitiveProps {\n\tchildren: (props: AnnouncementSlideRenderProps) => ReactNode;\n\tindex: number;\n}\n\nexport function AnnouncementSlidePrimitive({\n\tchildren,\n\tindex,\n}: AnnouncementSlidePrimitiveProps) {\n\tconst { currentAnnouncement, currentSlideIndex, totalSlides } =\n\t\tuseAnnouncementContext();\n\n\tconst slide = currentAnnouncement?.slides[index];\n\n\tif (!slide) {\n\t\treturn null;\n\t}\n\n\tconst isActive = currentSlideIndex === index;\n\n\treturn <>{children({ slide, index, isActive, totalSlides })}</>;\n}\n","import { type ReactNode, type HTMLAttributes, useRef, useEffect } from \"react\";\n\nimport { useLauncherContext } from \"./LauncherRoot\";\n\nexport interface LauncherMenuProps extends HTMLAttributes<HTMLDivElement> {\n\tchildren: ReactNode;\n}\n\nexport function LauncherMenu({ children, ...props }: LauncherMenuProps) {\n\tconst { isOpen, setIsOpen } = useLauncherContext();\n\tconst menuRef = useRef<HTMLDivElement>(null);\n\n\tuseEffect(() => {\n\t\tif (!isOpen) return;\n\n\t\tconst handleClickOutside = (e: MouseEvent) => {\n\t\t\tif (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n\t\t\t\tsetIsOpen(false);\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\treturn () => document.removeEventListener(\"mousedown\", handleClickOutside);\n\t}, [isOpen, setIsOpen]);\n\n\tif (!isOpen) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div ref={menuRef} role=\"menu\" {...props}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n","import { type ReactNode, type HTMLAttributes, useCallback } from \"react\";\n\nimport { useLauncherContext, type LauncherActiveItem } from \"./LauncherRoot\";\n\nexport interface LauncherMenuItemProps extends HTMLAttributes<HTMLDivElement> {\n\tchildren: ReactNode;\n\tonSelect?: () => void;\n\titem?: LauncherActiveItem;\n}\n\nexport function LauncherMenuItem({\n\tchildren,\n\tonSelect,\n\titem,\n\tonClick,\n\t...props\n}: LauncherMenuItemProps) {\n\tconst { setActiveItem, setIsOpen } = useLauncherContext();\n\n\tconst handleClick = useCallback(\n\t\t(e: React.MouseEvent<HTMLDivElement>) => {\n\t\t\tonClick?.(e);\n\t\t\tif (item) {\n\t\t\t\tsetActiveItem(item);\n\t\t\t}\n\t\t\tsetIsOpen(false);\n\t\t\tonSelect?.();\n\t\t},\n\t\t[onClick, item, setActiveItem, setIsOpen, onSelect],\n\t);\n\n\treturn (\n\t\t<div role=\"menuitem\" tabIndex={0} onClick={handleClick} {...props}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"],"names":["useAnnouncementContext","cloneElement","jsx","Fragment","useLauncherContext","useRef","useEffect","useCallback"],"mappings":";;;;;AASO,SAAS,oBAAoB;AAAA,EACnC;AAAA,EACA,UAAU;AACX,GAA6B;AAC5B,QAAM,EAAE,UAAA,IAAcA,uCAAA;AAEtB,QAAM,cAAc,CAAC,MAAkB;;AACtC,yBAAS,OAAM,YAAf,4BAAyB;AACzB,cAAU,IAAI;AAAA,EACf;AAEA,MAAI,SAAS;AACZ,WAAOC,MAAAA,aAAa,UAAU,EAAE,SAAS,aAAa;AAAA,EACvD;AAEA,wCACE,UAAA,EAAO,MAAK,UAAS,SAAS,aAC7B,UACF;AAEF;ACZO,SAAS,2BAA2B;AAAA,EAC1C;AAAA,EACA;AACD,GAAoC;AACnC,QAAM,EAAE,qBAAqB,mBAAmB,YAAA,IAC/CD,gBAAAA,uBAAA;AAED,QAAM,QAAQ,2DAAqB,OAAO;AAE1C,MAAI,CAAC,OAAO;AACX,WAAO;AAAA,EACR;AAEA,QAAM,WAAW,sBAAsB;AAEvC,SAAOE,+BAAAC,WAAAA,UAAA,EAAG,mBAAS,EAAE,OAAO,OAAO,UAAU,YAAA,CAAa,EAAA,CAAE;AAC7D;ACzBO,SAAS,aAAa,EAAE,UAAU,GAAG,SAA4B;AACvE,QAAM,EAAE,QAAQ,UAAA,IAAcC,mCAAA;AAC9B,QAAM,UAAUC,MAAAA,OAAuB,IAAI;AAE3CC,QAAAA,UAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,qBAAqB,CAAC,MAAkB;AAC7C,UAAI,QAAQ,WAAW,CAAC,QAAQ,QAAQ,SAAS,EAAE,MAAc,GAAG;AACnE,kBAAU,KAAK;AAAA,MAChB;AAAA,IACD;AAEA,aAAS,iBAAiB,aAAa,kBAAkB;AACzD,WAAO,MAAM,SAAS,oBAAoB,aAAa,kBAAkB;AAAA,EAC1E,GAAG,CAAC,QAAQ,SAAS,CAAC;AAEtB,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AAEA,SACCJ,2BAAAA,IAAC,SAAI,KAAK,SAAS,MAAK,QAAQ,GAAG,OACjC,UACF;AAEF;ACxBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAA0B;AACzB,QAAM,EAAE,eAAe,UAAA,IAAcE,mCAAA;AAErC,QAAM,cAAcG,MAAAA;AAAAA,IACnB,CAAC,MAAwC;AACxC,yCAAU;AACV,UAAI,MAAM;AACT,sBAAc,IAAI;AAAA,MACnB;AACA,gBAAU,KAAK;AACf;AAAA,IACD;AAAA,IACA,CAAC,SAAS,MAAM,eAAe,WAAW,QAAQ;AAAA,EAAA;AAGnD,SACCL,+BAAC,OAAA,EAAI,MAAK,YAAW,UAAU,GAAG,SAAS,aAAc,GAAG,OAC1D,SAAA,CACF;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { TraceyConfig, TraceyUser, Position, Feedback, FeedbackType, Announcement, AnnouncementSlide, TraceyEvents, } from "./types";
|
|
2
|
+
export { TraceyProvider } from "./provider/TraceyProvider";
|
|
3
|
+
export { MockTraceyProvider } from "./provider/MockTraceyProvider";
|
|
4
|
+
export { useTracey } from "./hooks/useTracey";
|
|
5
|
+
export { useFeedback } from "./hooks/useFeedback";
|
|
6
|
+
export { useAnnouncements } from "./hooks/useAnnouncements";
|
|
7
|
+
export { useTraceyEvents } from "./hooks/useTraceyEvents";
|
|
8
|
+
export { FeedbackRoot, FeedbackTrigger, FeedbackPortal, FeedbackContent, FeedbackForm as FeedbackFormPrimitive, FeedbackClose, } from "./components/feedback/headless";
|
|
9
|
+
export { AnnouncementRoot, AnnouncementTrigger, AnnouncementPortal, AnnouncementContent, AnnouncementSlide as AnnouncementSlidePrimitive, AnnouncementClose, AnnouncementNavigation, } from "./components/announcements/headless";
|
|
10
|
+
export { LauncherRoot, LauncherTrigger, LauncherMenu, LauncherMenuItem, LauncherBadge, LauncherPortal, LauncherPanel, LauncherTab, LauncherTabContent, } from "./components/launcher/headless";
|
|
11
|
+
//# sourceMappingURL=headless.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless.d.ts","sourceRoot":"","sources":["../src/headless.ts"],"names":[],"mappings":"AAGA,YAAY,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EACN,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,IAAI,qBAAqB,EACrC,aAAa,GACb,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,IAAI,0BAA0B,EAC/C,iBAAiB,EACjB,sBAAsB,GACtB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACN,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,kBAAkB,GAClB,MAAM,gCAAgC,CAAC"}
|
package/dist/headless.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { s as useAnnouncementContext, t as useLauncherContext } from "./LauncherTrigger-5pNAvA05.js";
|
|
2
|
+
import { j, h, i, g, A, a, e, F, d, b, c, l, n, m, L, o, p, k, M, T, f, q, u, r } from "./LauncherTrigger-5pNAvA05.js";
|
|
3
|
+
import { jsx, Fragment } from "react/jsx-runtime";
|
|
4
|
+
import { cloneElement, useRef, useEffect, useCallback } from "react";
|
|
5
|
+
function AnnouncementTrigger({
|
|
6
|
+
children,
|
|
7
|
+
asChild = true
|
|
8
|
+
}) {
|
|
9
|
+
const { setIsOpen } = useAnnouncementContext();
|
|
10
|
+
const handleClick = (e2) => {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
(_b = (_a = children.props).onClick) == null ? void 0 : _b.call(_a, e2);
|
|
13
|
+
setIsOpen(true);
|
|
14
|
+
};
|
|
15
|
+
if (asChild) {
|
|
16
|
+
return cloneElement(children, { onClick: handleClick });
|
|
17
|
+
}
|
|
18
|
+
return /* @__PURE__ */ jsx("button", { type: "button", onClick: handleClick, children });
|
|
19
|
+
}
|
|
20
|
+
function AnnouncementSlidePrimitive({
|
|
21
|
+
children,
|
|
22
|
+
index
|
|
23
|
+
}) {
|
|
24
|
+
const { currentAnnouncement, currentSlideIndex, totalSlides } = useAnnouncementContext();
|
|
25
|
+
const slide = currentAnnouncement == null ? void 0 : currentAnnouncement.slides[index];
|
|
26
|
+
if (!slide) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const isActive = currentSlideIndex === index;
|
|
30
|
+
return /* @__PURE__ */ jsx(Fragment, { children: children({ slide, index, isActive, totalSlides }) });
|
|
31
|
+
}
|
|
32
|
+
function LauncherMenu({ children, ...props }) {
|
|
33
|
+
const { isOpen, setIsOpen } = useLauncherContext();
|
|
34
|
+
const menuRef = useRef(null);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (!isOpen) return;
|
|
37
|
+
const handleClickOutside = (e2) => {
|
|
38
|
+
if (menuRef.current && !menuRef.current.contains(e2.target)) {
|
|
39
|
+
setIsOpen(false);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
43
|
+
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
44
|
+
}, [isOpen, setIsOpen]);
|
|
45
|
+
if (!isOpen) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return /* @__PURE__ */ jsx("div", { ref: menuRef, role: "menu", ...props, children });
|
|
49
|
+
}
|
|
50
|
+
function LauncherMenuItem({
|
|
51
|
+
children,
|
|
52
|
+
onSelect,
|
|
53
|
+
item,
|
|
54
|
+
onClick,
|
|
55
|
+
...props
|
|
56
|
+
}) {
|
|
57
|
+
const { setActiveItem, setIsOpen } = useLauncherContext();
|
|
58
|
+
const handleClick = useCallback(
|
|
59
|
+
(e2) => {
|
|
60
|
+
onClick == null ? void 0 : onClick(e2);
|
|
61
|
+
if (item) {
|
|
62
|
+
setActiveItem(item);
|
|
63
|
+
}
|
|
64
|
+
setIsOpen(false);
|
|
65
|
+
onSelect == null ? void 0 : onSelect();
|
|
66
|
+
},
|
|
67
|
+
[onClick, item, setActiveItem, setIsOpen, onSelect]
|
|
68
|
+
);
|
|
69
|
+
return /* @__PURE__ */ jsx("div", { role: "menuitem", tabIndex: 0, onClick: handleClick, ...props, children });
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
j as AnnouncementClose,
|
|
73
|
+
h as AnnouncementContent,
|
|
74
|
+
i as AnnouncementNavigation,
|
|
75
|
+
g as AnnouncementPortal,
|
|
76
|
+
A as AnnouncementRoot,
|
|
77
|
+
AnnouncementSlidePrimitive,
|
|
78
|
+
AnnouncementTrigger,
|
|
79
|
+
a as FeedbackClose,
|
|
80
|
+
e as FeedbackContent,
|
|
81
|
+
F as FeedbackFormPrimitive,
|
|
82
|
+
d as FeedbackPortal,
|
|
83
|
+
b as FeedbackRoot,
|
|
84
|
+
c as FeedbackTrigger,
|
|
85
|
+
l as LauncherBadge,
|
|
86
|
+
LauncherMenu,
|
|
87
|
+
LauncherMenuItem,
|
|
88
|
+
n as LauncherPanel,
|
|
89
|
+
m as LauncherPortal,
|
|
90
|
+
L as LauncherRoot,
|
|
91
|
+
o as LauncherTab,
|
|
92
|
+
p as LauncherTabContent,
|
|
93
|
+
k as LauncherTrigger,
|
|
94
|
+
M as MockTraceyProvider,
|
|
95
|
+
T as TraceyProvider,
|
|
96
|
+
f as useAnnouncements,
|
|
97
|
+
q as useFeedback,
|
|
98
|
+
u as useTracey,
|
|
99
|
+
r as useTraceyEvents
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=headless.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headless.js","sources":["../src/components/announcements/headless/AnnouncementTrigger.tsx","../src/components/announcements/headless/AnnouncementSlidePrimitive.tsx","../src/components/launcher/headless/LauncherMenu.tsx","../src/components/launcher/headless/LauncherMenuItem.tsx"],"sourcesContent":["import { type ReactElement, cloneElement, type MouseEvent } from \"react\";\n\nimport { useAnnouncementContext } from \"./AnnouncementRoot\";\n\nexport interface AnnouncementTriggerProps {\n\tchildren: ReactElement<{ onClick?: (e: MouseEvent) => void }>;\n\tasChild?: boolean;\n}\n\nexport function AnnouncementTrigger({\n\tchildren,\n\tasChild = true,\n}: AnnouncementTriggerProps) {\n\tconst { setIsOpen } = useAnnouncementContext();\n\n\tconst handleClick = (e: MouseEvent) => {\n\t\tchildren.props.onClick?.(e);\n\t\tsetIsOpen(true);\n\t};\n\n\tif (asChild) {\n\t\treturn cloneElement(children, { onClick: handleClick });\n\t}\n\n\treturn (\n\t\t<button type=\"button\" onClick={handleClick}>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n","import { type ReactNode } from \"react\";\n\nimport { useAnnouncementContext } from \"./AnnouncementRoot\";\nimport type { AnnouncementSlide } from \"../../../types\";\n\nexport interface AnnouncementSlideRenderProps {\n\tslide: AnnouncementSlide;\n\tindex: number;\n\tisActive: boolean;\n\ttotalSlides: number;\n}\n\nexport interface AnnouncementSlidePrimitiveProps {\n\tchildren: (props: AnnouncementSlideRenderProps) => ReactNode;\n\tindex: number;\n}\n\nexport function AnnouncementSlidePrimitive({\n\tchildren,\n\tindex,\n}: AnnouncementSlidePrimitiveProps) {\n\tconst { currentAnnouncement, currentSlideIndex, totalSlides } =\n\t\tuseAnnouncementContext();\n\n\tconst slide = currentAnnouncement?.slides[index];\n\n\tif (!slide) {\n\t\treturn null;\n\t}\n\n\tconst isActive = currentSlideIndex === index;\n\n\treturn <>{children({ slide, index, isActive, totalSlides })}</>;\n}\n","import { type ReactNode, type HTMLAttributes, useRef, useEffect } from \"react\";\n\nimport { useLauncherContext } from \"./LauncherRoot\";\n\nexport interface LauncherMenuProps extends HTMLAttributes<HTMLDivElement> {\n\tchildren: ReactNode;\n}\n\nexport function LauncherMenu({ children, ...props }: LauncherMenuProps) {\n\tconst { isOpen, setIsOpen } = useLauncherContext();\n\tconst menuRef = useRef<HTMLDivElement>(null);\n\n\tuseEffect(() => {\n\t\tif (!isOpen) return;\n\n\t\tconst handleClickOutside = (e: MouseEvent) => {\n\t\t\tif (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n\t\t\t\tsetIsOpen(false);\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\treturn () => document.removeEventListener(\"mousedown\", handleClickOutside);\n\t}, [isOpen, setIsOpen]);\n\n\tif (!isOpen) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div ref={menuRef} role=\"menu\" {...props}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n","import { type ReactNode, type HTMLAttributes, useCallback } from \"react\";\n\nimport { useLauncherContext, type LauncherActiveItem } from \"./LauncherRoot\";\n\nexport interface LauncherMenuItemProps extends HTMLAttributes<HTMLDivElement> {\n\tchildren: ReactNode;\n\tonSelect?: () => void;\n\titem?: LauncherActiveItem;\n}\n\nexport function LauncherMenuItem({\n\tchildren,\n\tonSelect,\n\titem,\n\tonClick,\n\t...props\n}: LauncherMenuItemProps) {\n\tconst { setActiveItem, setIsOpen } = useLauncherContext();\n\n\tconst handleClick = useCallback(\n\t\t(e: React.MouseEvent<HTMLDivElement>) => {\n\t\t\tonClick?.(e);\n\t\t\tif (item) {\n\t\t\t\tsetActiveItem(item);\n\t\t\t}\n\t\t\tsetIsOpen(false);\n\t\t\tonSelect?.();\n\t\t},\n\t\t[onClick, item, setActiveItem, setIsOpen, onSelect],\n\t);\n\n\treturn (\n\t\t<div role=\"menuitem\" tabIndex={0} onClick={handleClick} {...props}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"],"names":["e"],"mappings":";;;;AASO,SAAS,oBAAoB;AAAA,EACnC;AAAA,EACA,UAAU;AACX,GAA6B;AAC5B,QAAM,EAAE,UAAA,IAAc,uBAAA;AAEtB,QAAM,cAAc,CAACA,OAAkB;;AACtC,yBAAS,OAAM,YAAf,4BAAyBA;AACzB,cAAU,IAAI;AAAA,EACf;AAEA,MAAI,SAAS;AACZ,WAAO,aAAa,UAAU,EAAE,SAAS,aAAa;AAAA,EACvD;AAEA,6BACE,UAAA,EAAO,MAAK,UAAS,SAAS,aAC7B,UACF;AAEF;ACZO,SAAS,2BAA2B;AAAA,EAC1C;AAAA,EACA;AACD,GAAoC;AACnC,QAAM,EAAE,qBAAqB,mBAAmB,YAAA,IAC/C,uBAAA;AAED,QAAM,QAAQ,2DAAqB,OAAO;AAE1C,MAAI,CAAC,OAAO;AACX,WAAO;AAAA,EACR;AAEA,QAAM,WAAW,sBAAsB;AAEvC,SAAO,oBAAA,UAAA,EAAG,mBAAS,EAAE,OAAO,OAAO,UAAU,YAAA,CAAa,EAAA,CAAE;AAC7D;ACzBO,SAAS,aAAa,EAAE,UAAU,GAAG,SAA4B;AACvE,QAAM,EAAE,QAAQ,UAAA,IAAc,mBAAA;AAC9B,QAAM,UAAU,OAAuB,IAAI;AAE3C,YAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,qBAAqB,CAACA,OAAkB;AAC7C,UAAI,QAAQ,WAAW,CAAC,QAAQ,QAAQ,SAASA,GAAE,MAAc,GAAG;AACnE,kBAAU,KAAK;AAAA,MAChB;AAAA,IACD;AAEA,aAAS,iBAAiB,aAAa,kBAAkB;AACzD,WAAO,MAAM,SAAS,oBAAoB,aAAa,kBAAkB;AAAA,EAC1E,GAAG,CAAC,QAAQ,SAAS,CAAC;AAEtB,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,SAAI,KAAK,SAAS,MAAK,QAAQ,GAAG,OACjC,UACF;AAEF;ACxBO,SAAS,iBAAiB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAA0B;AACzB,QAAM,EAAE,eAAe,UAAA,IAAc,mBAAA;AAErC,QAAM,cAAc;AAAA,IACnB,CAACA,OAAwC;AACxC,yCAAUA;AACV,UAAI,MAAM;AACT,sBAAc,IAAI;AAAA,MACnB;AACA,gBAAU,KAAK;AACf;AAAA,IACD;AAAA,IACA,CAAC,SAAS,MAAM,eAAe,WAAW,QAAQ;AAAA,EAAA;AAGnD,SACC,oBAAC,OAAA,EAAI,MAAK,YAAW,UAAU,GAAG,SAAS,aAAc,GAAG,OAC1D,SAAA,CACF;AAEF;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { useTracey } from "./useTracey";
|
|
2
|
+
export { useFeedback, type UseFeedbackReturn } from "./useFeedback";
|
|
3
|
+
export { useMyFeedback, type UseMyFeedbackReturn } from "./useMyFeedback";
|
|
4
|
+
export { useAnnouncements, type UseAnnouncementsReturn, } from "./useAnnouncements";
|
|
5
|
+
export { useTraceyEvents, useTraceyEvent, type UseTraceyEventsReturn, } from "./useTraceyEvents";
|
|
6
|
+
export { useSurvey, type UseSurveyReturn } from "./useSurvey";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EACN,gBAAgB,EAChB,KAAK,sBAAsB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,eAAe,EACf,cAAc,EACd,KAAK,qBAAqB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Announcement } from "../types";
|
|
2
|
+
export interface UseAnnouncementsReturn {
|
|
3
|
+
announcements: Announcement[];
|
|
4
|
+
unread: Announcement[];
|
|
5
|
+
unreadCount: number;
|
|
6
|
+
isLoading: boolean;
|
|
7
|
+
markAsViewed: (announcementId: number) => Promise<void>;
|
|
8
|
+
markAsRead: (announcementId: number) => Promise<void>;
|
|
9
|
+
markAllAsRead: () => Promise<void>;
|
|
10
|
+
markCtaClicked: (announcementId: number, slideIndex: number) => Promise<void>;
|
|
11
|
+
refetch: () => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare function useAnnouncements(): UseAnnouncementsReturn;
|
|
14
|
+
//# sourceMappingURL=useAnnouncements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAnnouncements.d.ts","sourceRoot":"","sources":["../../src/hooks/useAnnouncements.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,WAAW,sBAAsB;IACtC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,IAAI,sBAAsB,CA2GzD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Feedback, FeedbackResponse } from "../types";
|
|
2
|
+
export interface UseFeedbackReturn {
|
|
3
|
+
submit: (feedback: Feedback) => Promise<FeedbackResponse | null>;
|
|
4
|
+
isSubmitting: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
lastSubmission: FeedbackResponse | null;
|
|
7
|
+
reset: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function useFeedback(): UseFeedbackReturn;
|
|
10
|
+
//# sourceMappingURL=useFeedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeedback.d.ts","sourceRoot":"","sources":["../../src/hooks/useFeedback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAM3D,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,WAAW,IAAI,iBAAiB,CA8D/C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MyFeedbackItem } from "../types";
|
|
2
|
+
export interface UseMyFeedbackReturn {
|
|
3
|
+
feedback: MyFeedbackItem[];
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
pagination: {
|
|
7
|
+
total: number;
|
|
8
|
+
limit: number;
|
|
9
|
+
offset: number;
|
|
10
|
+
hasMore: boolean;
|
|
11
|
+
} | null;
|
|
12
|
+
refetch: () => Promise<void>;
|
|
13
|
+
loadMore: () => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export declare function useMyFeedback(): UseMyFeedbackReturn;
|
|
16
|
+
//# sourceMappingURL=useMyFeedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMyFeedback.d.ts","sourceRoot":"","sources":["../../src/hooks/useMyFeedback.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,UAAU,CAAC;AAGlE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KACjB,GAAG,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAID,wBAAgB,aAAa,IAAI,mBAAmB,CAiEnD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Survey, SurveyAnswerInput, SurveyResponseResult } from "../types";
|
|
2
|
+
export interface UseSurveyReturn {
|
|
3
|
+
loadActiveSurvey: (context?: {
|
|
4
|
+
anonymousSessionId?: string;
|
|
5
|
+
url?: string;
|
|
6
|
+
}) => Promise<Survey | null>;
|
|
7
|
+
submitSurveyResponse: (surveyId: number, payload: {
|
|
8
|
+
answers: SurveyAnswerInput[];
|
|
9
|
+
anonymousSessionId?: string;
|
|
10
|
+
respondentEmail?: string;
|
|
11
|
+
respondentName?: string;
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
}) => Promise<SurveyResponseResult | null>;
|
|
14
|
+
activeSurvey: Survey | null;
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
isSubmitting: boolean;
|
|
17
|
+
error: Error | null;
|
|
18
|
+
dismissSurvey: (surveyId: number) => void;
|
|
19
|
+
reset: () => void;
|
|
20
|
+
}
|
|
21
|
+
export declare function useSurvey(): UseSurveyReturn;
|
|
22
|
+
//# sourceMappingURL=useSurvey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSurvey.d.ts","sourceRoot":"","sources":["../../src/hooks/useSurvey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,MAAM,WAAW,eAAe;IAC/B,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;KACb,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7B,oBAAoB,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACR,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,KACG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,SAAS,IAAI,eAAe,CAsF3C"}
|