@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.
Files changed (135) hide show
  1. package/README.md +83 -0
  2. package/dist/LauncherTrigger-5pNAvA05.js +1056 -0
  3. package/dist/LauncherTrigger-5pNAvA05.js.map +1 -0
  4. package/dist/LauncherTrigger-DjXDXHTm.cjs +1055 -0
  5. package/dist/LauncherTrigger-DjXDXHTm.cjs.map +1 -0
  6. package/dist/__tests__/api-client.test.d.ts +2 -0
  7. package/dist/__tests__/api-client.test.d.ts.map +1 -0
  8. package/dist/__tests__/events.test.d.ts +2 -0
  9. package/dist/__tests__/events.test.d.ts.map +1 -0
  10. package/dist/__tests__/survey-logic.test.d.ts +2 -0
  11. package/dist/__tests__/survey-logic.test.d.ts.map +1 -0
  12. package/dist/components/announcements/AnnouncementBell.d.ts +9 -0
  13. package/dist/components/announcements/AnnouncementBell.d.ts.map +1 -0
  14. package/dist/components/announcements/AnnouncementList.d.ts +7 -0
  15. package/dist/components/announcements/AnnouncementList.d.ts.map +1 -0
  16. package/dist/components/announcements/AnnouncementModal.d.ts +9 -0
  17. package/dist/components/announcements/AnnouncementModal.d.ts.map +1 -0
  18. package/dist/components/announcements/headless/AnnouncementClose.d.ts +9 -0
  19. package/dist/components/announcements/headless/AnnouncementClose.d.ts.map +1 -0
  20. package/dist/components/announcements/headless/AnnouncementContent.d.ts +7 -0
  21. package/dist/components/announcements/headless/AnnouncementContent.d.ts.map +1 -0
  22. package/dist/components/announcements/headless/AnnouncementNavigation.d.ts +15 -0
  23. package/dist/components/announcements/headless/AnnouncementNavigation.d.ts.map +1 -0
  24. package/dist/components/announcements/headless/AnnouncementPortal.d.ts +7 -0
  25. package/dist/components/announcements/headless/AnnouncementPortal.d.ts.map +1 -0
  26. package/dist/components/announcements/headless/AnnouncementRoot.d.ts +24 -0
  27. package/dist/components/announcements/headless/AnnouncementRoot.d.ts.map +1 -0
  28. package/dist/components/announcements/headless/AnnouncementSlidePrimitive.d.ts +14 -0
  29. package/dist/components/announcements/headless/AnnouncementSlidePrimitive.d.ts.map +1 -0
  30. package/dist/components/announcements/headless/AnnouncementTrigger.d.ts +9 -0
  31. package/dist/components/announcements/headless/AnnouncementTrigger.d.ts.map +1 -0
  32. package/dist/components/announcements/headless/index.d.ts +8 -0
  33. package/dist/components/announcements/headless/index.d.ts.map +1 -0
  34. package/dist/components/announcements/index.d.ts +4 -0
  35. package/dist/components/announcements/index.d.ts.map +1 -0
  36. package/dist/components/feedback/FeedbackForm.d.ts +8 -0
  37. package/dist/components/feedback/FeedbackForm.d.ts.map +1 -0
  38. package/dist/components/feedback/FeedbackWidget.d.ts +9 -0
  39. package/dist/components/feedback/FeedbackWidget.d.ts.map +1 -0
  40. package/dist/components/feedback/headless/FeedbackClose.d.ts +9 -0
  41. package/dist/components/feedback/headless/FeedbackClose.d.ts.map +1 -0
  42. package/dist/components/feedback/headless/FeedbackContent.d.ts +6 -0
  43. package/dist/components/feedback/headless/FeedbackContent.d.ts.map +1 -0
  44. package/dist/components/feedback/headless/FeedbackFormPrimitive.d.ts +28 -0
  45. package/dist/components/feedback/headless/FeedbackFormPrimitive.d.ts.map +1 -0
  46. package/dist/components/feedback/headless/FeedbackPortal.d.ts +7 -0
  47. package/dist/components/feedback/headless/FeedbackPortal.d.ts.map +1 -0
  48. package/dist/components/feedback/headless/FeedbackRoot.d.ts +16 -0
  49. package/dist/components/feedback/headless/FeedbackRoot.d.ts.map +1 -0
  50. package/dist/components/feedback/headless/FeedbackTrigger.d.ts +9 -0
  51. package/dist/components/feedback/headless/FeedbackTrigger.d.ts.map +1 -0
  52. package/dist/components/feedback/headless/index.d.ts +7 -0
  53. package/dist/components/feedback/headless/index.d.ts.map +1 -0
  54. package/dist/components/feedback/index.d.ts +4 -0
  55. package/dist/components/feedback/index.d.ts.map +1 -0
  56. package/dist/components/index.d.ts +5 -0
  57. package/dist/components/index.d.ts.map +1 -0
  58. package/dist/components/launcher/TraceyLauncher.d.ts +8 -0
  59. package/dist/components/launcher/TraceyLauncher.d.ts.map +1 -0
  60. package/dist/components/launcher/headless/LauncherBadge.d.ts +8 -0
  61. package/dist/components/launcher/headless/LauncherBadge.d.ts.map +1 -0
  62. package/dist/components/launcher/headless/LauncherMenu.d.ts +6 -0
  63. package/dist/components/launcher/headless/LauncherMenu.d.ts.map +1 -0
  64. package/dist/components/launcher/headless/LauncherMenuItem.d.ts +9 -0
  65. package/dist/components/launcher/headless/LauncherMenuItem.d.ts.map +1 -0
  66. package/dist/components/launcher/headless/LauncherPanel.d.ts +6 -0
  67. package/dist/components/launcher/headless/LauncherPanel.d.ts.map +1 -0
  68. package/dist/components/launcher/headless/LauncherPortal.d.ts +7 -0
  69. package/dist/components/launcher/headless/LauncherPortal.d.ts.map +1 -0
  70. package/dist/components/launcher/headless/LauncherRoot.d.ts +21 -0
  71. package/dist/components/launcher/headless/LauncherRoot.d.ts.map +1 -0
  72. package/dist/components/launcher/headless/LauncherTab.d.ts +8 -0
  73. package/dist/components/launcher/headless/LauncherTab.d.ts.map +1 -0
  74. package/dist/components/launcher/headless/LauncherTabContent.d.ts +8 -0
  75. package/dist/components/launcher/headless/LauncherTabContent.d.ts.map +1 -0
  76. package/dist/components/launcher/headless/LauncherTrigger.d.ts +10 -0
  77. package/dist/components/launcher/headless/LauncherTrigger.d.ts.map +1 -0
  78. package/dist/components/launcher/headless/index.d.ts +10 -0
  79. package/dist/components/launcher/headless/index.d.ts.map +1 -0
  80. package/dist/components/launcher/index.d.ts +3 -0
  81. package/dist/components/launcher/index.d.ts.map +1 -0
  82. package/dist/components/surveys/SurveyWidget.d.ts +10 -0
  83. package/dist/components/surveys/SurveyWidget.d.ts.map +1 -0
  84. package/dist/components/surveys/index.d.ts +2 -0
  85. package/dist/components/surveys/index.d.ts.map +1 -0
  86. package/dist/core/api-client.d.ts +33 -0
  87. package/dist/core/api-client.d.ts.map +1 -0
  88. package/dist/core/events.d.ts +11 -0
  89. package/dist/core/events.d.ts.map +1 -0
  90. package/dist/core/index.d.ts +4 -0
  91. package/dist/core/index.d.ts.map +1 -0
  92. package/dist/core/screenshot.d.ts +12 -0
  93. package/dist/core/screenshot.d.ts.map +1 -0
  94. package/dist/core/survey-logic.d.ts +7 -0
  95. package/dist/core/survey-logic.d.ts.map +1 -0
  96. package/dist/headless.cjs +100 -0
  97. package/dist/headless.cjs.map +1 -0
  98. package/dist/headless.d.ts +11 -0
  99. package/dist/headless.d.ts.map +1 -0
  100. package/dist/headless.js +101 -0
  101. package/dist/headless.js.map +1 -0
  102. package/dist/hooks/index.d.ts +7 -0
  103. package/dist/hooks/index.d.ts.map +1 -0
  104. package/dist/hooks/useAnnouncements.d.ts +14 -0
  105. package/dist/hooks/useAnnouncements.d.ts.map +1 -0
  106. package/dist/hooks/useFeedback.d.ts +10 -0
  107. package/dist/hooks/useFeedback.d.ts.map +1 -0
  108. package/dist/hooks/useMyFeedback.d.ts +16 -0
  109. package/dist/hooks/useMyFeedback.d.ts.map +1 -0
  110. package/dist/hooks/useSurvey.d.ts +22 -0
  111. package/dist/hooks/useSurvey.d.ts.map +1 -0
  112. package/dist/hooks/useTracey.d.ts +3 -0
  113. package/dist/hooks/useTracey.d.ts.map +1 -0
  114. package/dist/hooks/useTraceyEvents.d.ts +14 -0
  115. package/dist/hooks/useTraceyEvents.d.ts.map +1 -0
  116. package/dist/index.cjs +4913 -0
  117. package/dist/index.cjs.map +1 -0
  118. package/dist/index.d.ts +19 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +4892 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/lib/utils.d.ts +3 -0
  123. package/dist/lib/utils.d.ts.map +1 -0
  124. package/dist/provider/MockTraceyProvider.d.ts +14 -0
  125. package/dist/provider/MockTraceyProvider.d.ts.map +1 -0
  126. package/dist/provider/TraceyProvider.d.ts +11 -0
  127. package/dist/provider/TraceyProvider.d.ts.map +1 -0
  128. package/dist/provider/context.d.ts +19 -0
  129. package/dist/provider/context.d.ts.map +1 -0
  130. package/dist/provider/index.d.ts +4 -0
  131. package/dist/provider/index.d.ts.map +1 -0
  132. package/dist/styles.css +800 -0
  133. package/dist/types.d.ts +188 -0
  134. package/dist/types.d.ts.map +1 -0
  135. 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,3 @@
1
+ export { TraceyLauncher, type TraceyLauncherProps } from "./TraceyLauncher";
2
+ export * from "./headless";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export { SurveyWidget, type SurveyWidgetProps } from "./SurveyWidget";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ export { TraceyApiClient } from "./api-client";
2
+ export { TraceyEventEmitter } from "./events";
3
+ export { captureScreenshot, isScreenshotSupported } from "./screenshot";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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"}