shared-features 0.0.1 → 0.0.3

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 (59) hide show
  1. package/README.md +110 -33
  2. package/dist/AdBanner-Ben0vVXV.js +1428 -0
  3. package/dist/AdBanner-Ben0vVXV.js.map +1 -0
  4. package/dist/AdBanner-D-KuNTje.cjs +1427 -0
  5. package/dist/AdBanner-D-KuNTje.cjs.map +1 -0
  6. package/dist/{analytics-6shJHRZG.cjs → analytics--ZSO9ova.cjs} +2 -5
  7. package/dist/analytics--ZSO9ova.cjs.map +1 -0
  8. package/dist/{analytics-Bbmodnm_.js → analytics-CdpCtTpu.js} +2 -5
  9. package/dist/analytics-CdpCtTpu.js.map +1 -0
  10. package/dist/components/ads/AdBanner.d.ts +25 -0
  11. package/dist/components/ads/AdBanner.d.ts.map +1 -0
  12. package/dist/components/ads/AdModal.d.ts +27 -0
  13. package/dist/components/ads/AdModal.d.ts.map +1 -0
  14. package/dist/components/ads/AdSlider.d.ts +21 -0
  15. package/dist/components/ads/AdSlider.d.ts.map +1 -0
  16. package/dist/components/ads/AdUpdateModal.d.ts +27 -0
  17. package/dist/components/ads/AdUpdateModal.d.ts.map +1 -0
  18. package/dist/components/ads/index.d.ts +9 -0
  19. package/dist/components/ads/index.d.ts.map +1 -1
  20. package/dist/components/ads/variants/LargePanelVariants.d.ts +34 -0
  21. package/dist/components/ads/variants/LargePanelVariants.d.ts.map +1 -0
  22. package/dist/components/ads/variants/SmallPanelVariants.d.ts +34 -0
  23. package/dist/components/ads/variants/SmallPanelVariants.d.ts.map +1 -0
  24. package/dist/components/ads/variants/index.d.ts +12 -0
  25. package/dist/components/ads/variants/index.d.ts.map +1 -0
  26. package/dist/components/index.cjs +20 -2
  27. package/dist/components/index.cjs.map +1 -1
  28. package/dist/components/index.js +20 -2
  29. package/dist/firebase/config.d.ts +1 -1
  30. package/dist/firebase/init.d.ts +5 -5
  31. package/dist/firebase/init.d.ts.map +1 -1
  32. package/dist/hooks/index.cjs +3 -1
  33. package/dist/hooks/index.cjs.map +1 -1
  34. package/dist/hooks/index.d.ts +1 -1
  35. package/dist/hooks/index.d.ts.map +1 -1
  36. package/dist/hooks/index.js +4 -2
  37. package/dist/hooks/useCampaigns.d.ts +44 -0
  38. package/dist/hooks/useCampaigns.d.ts.map +1 -1
  39. package/dist/index.cjs +24 -4
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.js +24 -4
  42. package/dist/services/index.cjs +1 -1
  43. package/dist/services/index.js +1 -1
  44. package/dist/types/campaigns.d.ts +20 -32
  45. package/dist/types/campaigns.d.ts.map +1 -1
  46. package/dist/types/index.cjs.map +1 -1
  47. package/dist/types/index.js.map +1 -1
  48. package/dist/{useCampaigns-BNOHpETm.cjs → useCampaigns-Dltisb9N.cjs} +57 -2
  49. package/dist/useCampaigns-Dltisb9N.cjs.map +1 -0
  50. package/dist/{useCampaigns-3NxODLLs.js → useCampaigns-nwfsALsN.js} +57 -2
  51. package/dist/{useCampaigns-3NxODLLs.js.map → useCampaigns-nwfsALsN.js.map} +1 -1
  52. package/package.json +3 -1
  53. package/dist/AdPanel-D0BiV6Xb.cjs +0 -88
  54. package/dist/AdPanel-D0BiV6Xb.cjs.map +0 -1
  55. package/dist/AdPanel-RGRBf4ub.js +0 -89
  56. package/dist/AdPanel-RGRBf4ub.js.map +0 -1
  57. package/dist/analytics-6shJHRZG.cjs.map +0 -1
  58. package/dist/analytics-Bbmodnm_.js.map +0 -1
  59. package/dist/useCampaigns-BNOHpETm.cjs.map +0 -1
@@ -0,0 +1,34 @@
1
+ import { LargePanelProps } from '../../../types/campaigns';
2
+ /**
3
+ * Variant 1: Hero - Large icon + description + CTA
4
+ */
5
+ export declare function HeroVariant({ campaign, onCTAClick, showIndicator, currentIndex, totalCount, }: LargePanelProps): import("react/jsx-runtime").JSX.Element;
6
+ /**
7
+ * Variant 2: Feature Grid - 2x2 grid of features
8
+ */
9
+ export declare function FeatureGridVariant({ campaign, onCTAClick, showIndicator, currentIndex, totalCount, }: LargePanelProps): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Variant 3: Testimonial - Quote + product info
12
+ */
13
+ export declare function TestimonialVariant({ campaign, onCTAClick, showIndicator, currentIndex, totalCount, }: LargePanelProps): import("react/jsx-runtime").JSX.Element;
14
+ /**
15
+ * Variant 4: Comparison - Before/After comparison
16
+ */
17
+ export declare function ComparisonVariant({ campaign, onCTAClick, showIndicator, currentIndex, totalCount, }: LargePanelProps): import("react/jsx-runtime").JSX.Element;
18
+ /**
19
+ * Variant 5: Video - Animated preview + play button
20
+ */
21
+ export declare function VideoVariant({ campaign, onCTAClick, showIndicator, currentIndex, totalCount, }: LargePanelProps): import("react/jsx-runtime").JSX.Element;
22
+ /**
23
+ * Get variant component by name
24
+ */
25
+ export declare const LARGE_PANEL_VARIANTS: {
26
+ large_slider_1: typeof HeroVariant;
27
+ large_slider_2: typeof FeatureGridVariant;
28
+ large_slider_3: typeof TestimonialVariant;
29
+ large_slider_4: typeof ComparisonVariant;
30
+ large_slider_5: typeof VideoVariant;
31
+ };
32
+ export type LargePanelVariantName = keyof typeof LARGE_PANEL_VARIANTS;
33
+ export declare function getLargePanelVariant(variantName: string): typeof HeroVariant | typeof FeatureGridVariant | typeof TestimonialVariant | typeof ComparisonVariant | typeof VideoVariant;
34
+ //# sourceMappingURL=LargePanelVariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LargePanelVariants.d.ts","sourceRoot":"","sources":["../../../../src/components/ads/variants/LargePanelVariants.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAgErF;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,eAAe,2CAiDjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,eAAe,2CAsEjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,eAAe,2CAwEjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,eAAe,2CAwFjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,eAAe,2CAgFjB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAEtE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,+HAEvD"}
@@ -0,0 +1,34 @@
1
+ import { SmallPanelProps } from '../../../types/campaigns';
2
+ /**
3
+ * Variant 1: Minimal - Icon + Name + Link
4
+ */
5
+ export declare function MinimalVariant({ campaign, onCTAClick, onClose }: SmallPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ /**
7
+ * Variant 2: Tagline - Icon + Name + Tagline + CTA Button
8
+ */
9
+ export declare function TaglineVariant({ campaign, onCTAClick, onClose }: SmallPanelProps): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Variant 3: Features - Icon + Name + Feature pills + CTA
12
+ */
13
+ export declare function FeaturesVariant({ campaign, onCTAClick, onClose }: SmallPanelProps): import("react/jsx-runtime").JSX.Element;
14
+ /**
15
+ * Variant 4: Gradient - Full gradient background
16
+ */
17
+ export declare function GradientVariant({ campaign, onCTAClick, onClose }: SmallPanelProps): import("react/jsx-runtime").JSX.Element;
18
+ /**
19
+ * Variant 5: Card - Elevated card with shadow and animation
20
+ */
21
+ export declare function CardVariant({ campaign, onCTAClick, onClose }: SmallPanelProps): import("react/jsx-runtime").JSX.Element;
22
+ /**
23
+ * Get variant component by name
24
+ */
25
+ export declare const SMALL_PANEL_VARIANTS: {
26
+ small_panel_1: typeof MinimalVariant;
27
+ small_panel_2: typeof TaglineVariant;
28
+ small_panel_3: typeof FeaturesVariant;
29
+ small_panel_4: typeof GradientVariant;
30
+ small_panel_5: typeof CardVariant;
31
+ };
32
+ export type SmallPanelVariantName = keyof typeof SMALL_PANEL_VARIANTS;
33
+ export declare function getSmallPanelVariant(variantName: string): typeof MinimalVariant | typeof TaglineVariant | typeof FeaturesVariant | typeof GradientVariant | typeof CardVariant;
34
+ //# sourceMappingURL=SmallPanelVariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmallPanelVariants.d.ts","sourceRoot":"","sources":["../../../../src/components/ads/variants/SmallPanelVariants.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAoBrF;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,2CA4ChF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,2CA+ChF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,2CAqDjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,2CAqEjF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,2CA+D7E;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAEtE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,wHAEvD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Variant Components Index
3
+ *
4
+ * Re-exports all variant components for the shared-features package.
5
+ *
6
+ * @author Ahsan Mahmood <aoneahsan@gmail.com>
7
+ */
8
+ export { MinimalVariant, TaglineVariant, FeaturesVariant, GradientVariant, CardVariant, SMALL_PANEL_VARIANTS, getSmallPanelVariant, } from './SmallPanelVariants';
9
+ export type { SmallPanelVariantName } from './SmallPanelVariants';
10
+ export { HeroVariant, FeatureGridVariant, TestimonialVariant, ComparisonVariant, VideoVariant, LARGE_PANEL_VARIANTS, getLargePanelVariant, } from './LargePanelVariants';
11
+ export type { LargePanelVariantName } from './LargePanelVariants';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ads/variants/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,5 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const AdPanel = require("../AdPanel-D0BiV6Xb.cjs");
4
- exports.AdPanel = AdPanel.AdPanel;
3
+ const AdBanner = require("../AdBanner-D-KuNTje.cjs");
4
+ exports.AdBanner = AdBanner.AdBanner;
5
+ exports.AdModal = AdBanner.AdModal;
6
+ exports.AdPanel = AdBanner.AdPanel;
7
+ exports.AdSlider = AdBanner.AdSlider;
8
+ exports.AdUpdateModal = AdBanner.AdUpdateModal;
9
+ exports.CardVariant = AdBanner.CardVariant;
10
+ exports.ComparisonVariant = AdBanner.ComparisonVariant;
11
+ exports.FeatureGridVariant = AdBanner.FeatureGridVariant;
12
+ exports.FeaturesVariant = AdBanner.FeaturesVariant;
13
+ exports.GradientVariant = AdBanner.GradientVariant;
14
+ exports.HeroVariant = AdBanner.HeroVariant;
15
+ exports.LARGE_PANEL_VARIANTS = AdBanner.LARGE_PANEL_VARIANTS;
16
+ exports.MinimalVariant = AdBanner.MinimalVariant;
17
+ exports.SMALL_PANEL_VARIANTS = AdBanner.SMALL_PANEL_VARIANTS;
18
+ exports.TaglineVariant = AdBanner.TaglineVariant;
19
+ exports.TestimonialVariant = AdBanner.TestimonialVariant;
20
+ exports.VideoVariant = AdBanner.VideoVariant;
21
+ exports.getLargePanelVariant = AdBanner.getLargePanelVariant;
22
+ exports.getSmallPanelVariant = AdBanner.getSmallPanelVariant;
5
23
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,23 @@
1
- import { A } from "../AdPanel-RGRBf4ub.js";
1
+ import { d, b, A, a, c, C, h, e, F, G, H, L, M, S, T, f, V, i, g } from "../AdBanner-Ben0vVXV.js";
2
2
  export {
3
- A as AdPanel
3
+ d as AdBanner,
4
+ b as AdModal,
5
+ A as AdPanel,
6
+ a as AdSlider,
7
+ c as AdUpdateModal,
8
+ C as CardVariant,
9
+ h as ComparisonVariant,
10
+ e as FeatureGridVariant,
11
+ F as FeaturesVariant,
12
+ G as GradientVariant,
13
+ H as HeroVariant,
14
+ L as LARGE_PANEL_VARIANTS,
15
+ M as MinimalVariant,
16
+ S as SMALL_PANEL_VARIANTS,
17
+ T as TaglineVariant,
18
+ f as TestimonialVariant,
19
+ V as VideoVariant,
20
+ i as getLargePanelVariant,
21
+ g as getSmallPanelVariant
4
22
  };
5
23
  //# sourceMappingURL=index.js.map
@@ -27,7 +27,7 @@ export type ConsumerPlatform = 'web' | 'android' | 'ios' | 'extension';
27
27
  export interface SharedFeaturesConfig {
28
28
  /**
29
29
  * Firebase configuration for aoneahsan.com's Firebase project.
30
- * This is where all shared data is stored.
30
+ * All values from environment variables.
31
31
  */
32
32
  firebaseConfig: FirebaseConfig;
33
33
  /**
@@ -8,18 +8,18 @@ import { SharedFeaturesConfig } from './config';
8
8
  * This creates a secondary Firebase app connection to aoneahsan.com's
9
9
  * Firebase project, separate from the consumer project's own Firebase.
10
10
  *
11
- * @param config - Configuration object
11
+ * @param config - Configuration object with Firebase config and project info
12
12
  * @returns Initialized state object
13
13
  *
14
14
  * @example
15
15
  * ```typescript
16
16
  * import { initSharedFeatures } from 'shared-features';
17
17
  *
18
- * const sharedFeatures = initSharedFeatures({
18
+ * initSharedFeatures({
19
19
  * firebaseConfig: {
20
- * apiKey: import.meta.env.VITE_ZAIONS_FIREBASE_API_KEY,
21
- * authDomain: 'aoneahsan-portfolio.firebaseapp.com',
22
- * projectId: 'aoneahsan-portfolio',
20
+ * apiKey: import.meta.env.VITE_SHARED_FEATURES_API_KEY,
21
+ * authDomain: import.meta.env.VITE_SHARED_FEATURES_AUTH_DOMAIN,
22
+ * projectId: import.meta.env.VITE_SHARED_FEATURES_PROJECT_ID,
23
23
  * },
24
24
  * projectId: 'ztools',
25
25
  * projectName: 'ZTools',
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/firebase/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA0B,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAgB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAW,IAAI,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAIrB,MAAM,UAAU,CAAC;AAkDlB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAoD1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAOlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAO/C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/firebase/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA0B,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAgB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAW,IAAI,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAIrB,MAAM,UAAU,CAAC;AAkDlB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAiD1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAOlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAO/C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAE3C"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const useCampaigns = require("../useCampaigns-BNOHpETm.cjs");
3
+ const useCampaigns = require("../useCampaigns-Dltisb9N.cjs");
4
4
  exports.useCampaign = useCampaigns.useCampaign;
5
5
  exports.useCampaigns = useCampaigns.useCampaigns;
6
+ exports.useOneTimeAdModal = useCampaigns.useOneTimeAdModal;
7
+ exports.useUpdateAdModal = useCampaigns.useUpdateAdModal;
6
8
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -5,6 +5,6 @@
5
5
  *
6
6
  * @author Ahsan Mahmood <aoneahsan@gmail.com>
7
7
  */
8
- export { useCampaigns, useCampaign } from './useCampaigns';
8
+ export { useCampaigns, useCampaign, useOneTimeAdModal, useUpdateAdModal, } from './useCampaigns';
9
9
  export type { UseCampaignsOptions, UseCampaignsResult } from './useCampaigns';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,6 +1,8 @@
1
- import { a, u } from "../useCampaigns-3NxODLLs.js";
1
+ import { a, u, b, c } from "../useCampaigns-nwfsALsN.js";
2
2
  export {
3
3
  a as useCampaign,
4
- u as useCampaigns
4
+ u as useCampaigns,
5
+ b as useOneTimeAdModal,
6
+ c as useUpdateAdModal
5
7
  };
6
8
  //# sourceMappingURL=index.js.map
@@ -56,4 +56,48 @@ export declare function useCampaigns(options: UseCampaignsOptions): UseCampaigns
56
56
  * Convenience wrapper around useCampaigns
57
57
  */
58
58
  export declare function useCampaign(options: Omit<UseCampaignsOptions, 'maxCampaigns'>): UseCampaignsResult;
59
+ /**
60
+ * Hook to manage one-time ad modal visibility
61
+ * Shows modal on first visit, then remembers user has seen it
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * const { shouldShow, markAsShown } = useOneTimeAdModal();
66
+ *
67
+ * if (shouldShow) {
68
+ * return <AdModal onClose={markAsShown} />;
69
+ * }
70
+ * ```
71
+ */
72
+ export declare function useOneTimeAdModal(): {
73
+ /** Whether the modal should be displayed */
74
+ shouldShow: boolean;
75
+ /** Mark the modal as shown (call when user dismisses) */
76
+ markAsShown: () => void;
77
+ };
78
+ /**
79
+ * Hook to manage update ad modal visibility
80
+ * Shows modal when app version changes
81
+ *
82
+ * @param currentVersion - Current app version (defaults to VITE_APP_VERSION env var or '1.0.0')
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * const { shouldShow, currentVersion, markAsShown } = useUpdateAdModal();
87
+ *
88
+ * if (shouldShow) {
89
+ * return <AdUpdateModal version={currentVersion} onClose={markAsShown} />;
90
+ * }
91
+ * ```
92
+ */
93
+ export declare function useUpdateAdModal(currentVersion?: string): {
94
+ /** Whether the modal should be displayed */
95
+ shouldShow: boolean;
96
+ /** Previous app version (before update) */
97
+ previousVersion: string | null;
98
+ /** Current app version */
99
+ currentVersion: string;
100
+ /** Mark the modal as shown (call when user dismisses) */
101
+ markAsShown: () => void;
102
+ };
59
103
  //# sourceMappingURL=useCampaigns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCampaigns.d.ts","sourceRoot":"","sources":["../../src/hooks/useCampaigns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,EAAE,WAAW,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,uCAAuC;IACvC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,kCAAkC;IAClC,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,0CAA0C;IAC1C,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgH7E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,sBAE7E"}
1
+ {"version":3,"file":"useCampaigns.d.ts","sourceRoot":"","sources":["../../src/hooks/useCampaigns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,SAAS,EAAE,WAAW,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,uCAAuC;IACvC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,kCAAkC;IAClC,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,0CAA0C;IAC1C,WAAW,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgH7E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,sBAE7E;AAQD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB;IAmB7B,4CAA4C;;IAE5C,yDAAyD;;EAG5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,CAAC,EAAE,MAAM;IAwBpD,4CAA4C;;IAE5C,2CAA2C;;IAE3C,0BAA0B;;IAE1B,yDAAyD;;EAG5D"}
package/dist/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const analytics = require("./analytics-6shJHRZG.cjs");
3
+ const analytics = require("./analytics--ZSO9ova.cjs");
4
4
  const types_index = require("./types/index.cjs");
5
- const useCampaigns = require("./useCampaigns-BNOHpETm.cjs");
6
- const AdPanel = require("./AdPanel-D0BiV6Xb.cjs");
5
+ const useCampaigns = require("./useCampaigns-Dltisb9N.cjs");
6
+ const AdBanner = require("./AdBanner-D-KuNTje.cjs");
7
7
  exports.clearCampaignsCache = analytics.clearCampaignsCache;
8
8
  exports.clearProductsCache = analytics.clearProductsCache;
9
9
  exports.fetchActiveCampaigns = analytics.fetchActiveCampaigns;
@@ -33,5 +33,25 @@ exports.PLATFORM_NAMES = types_index.PLATFORM_NAMES;
33
33
  exports.VARIANT_NAMES = types_index.VARIANT_NAMES;
34
34
  exports.useCampaign = useCampaigns.useCampaign;
35
35
  exports.useCampaigns = useCampaigns.useCampaigns;
36
- exports.AdPanel = AdPanel.AdPanel;
36
+ exports.useOneTimeAdModal = useCampaigns.useOneTimeAdModal;
37
+ exports.useUpdateAdModal = useCampaigns.useUpdateAdModal;
38
+ exports.AdBanner = AdBanner.AdBanner;
39
+ exports.AdModal = AdBanner.AdModal;
40
+ exports.AdPanel = AdBanner.AdPanel;
41
+ exports.AdSlider = AdBanner.AdSlider;
42
+ exports.AdUpdateModal = AdBanner.AdUpdateModal;
43
+ exports.CardVariant = AdBanner.CardVariant;
44
+ exports.ComparisonVariant = AdBanner.ComparisonVariant;
45
+ exports.FeatureGridVariant = AdBanner.FeatureGridVariant;
46
+ exports.FeaturesVariant = AdBanner.FeaturesVariant;
47
+ exports.GradientVariant = AdBanner.GradientVariant;
48
+ exports.HeroVariant = AdBanner.HeroVariant;
49
+ exports.LARGE_PANEL_VARIANTS = AdBanner.LARGE_PANEL_VARIANTS;
50
+ exports.MinimalVariant = AdBanner.MinimalVariant;
51
+ exports.SMALL_PANEL_VARIANTS = AdBanner.SMALL_PANEL_VARIANTS;
52
+ exports.TaglineVariant = AdBanner.TaglineVariant;
53
+ exports.TestimonialVariant = AdBanner.TestimonialVariant;
54
+ exports.VideoVariant = AdBanner.VideoVariant;
55
+ exports.getLargePanelVariant = AdBanner.getLargePanelVariant;
56
+ exports.getSmallPanelVariant = AdBanner.getSmallPanelVariant;
37
57
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -1,15 +1,31 @@
1
- import { m, n, h, f, k, j, u, d, c, s, l, g, b, a, i, q, e, r, o, p, t } from "./analytics-Bbmodnm_.js";
1
+ import { m, n, h, f, k, j, u, d, c, s, l, g, b, a, i, q, e, r, o, p, t } from "./analytics-CdpCtTpu.js";
2
2
  import { COLLECTIONS, DEFAULT_CAMPAIGN_PRIORITY, DEFAULT_FREQUENCY_DAYS, PLACEMENT_NAMES, PLATFORM_NAMES, VARIANT_NAMES } from "./types/index.js";
3
- import { a as a2, u as u2 } from "./useCampaigns-3NxODLLs.js";
4
- import { A } from "./AdPanel-RGRBf4ub.js";
3
+ import { a as a2, u as u2, b as b2, c as c2 } from "./useCampaigns-nwfsALsN.js";
4
+ import { d as d2, b as b3, A, a as a3, c as c3, C, h as h2, e as e2, F, G, H, L, M, S, T, f as f2, V, i as i2, g as g2 } from "./AdBanner-Ben0vVXV.js";
5
5
  export {
6
+ d2 as AdBanner,
7
+ b3 as AdModal,
6
8
  A as AdPanel,
9
+ a3 as AdSlider,
10
+ c3 as AdUpdateModal,
7
11
  COLLECTIONS,
12
+ C as CardVariant,
13
+ h2 as ComparisonVariant,
8
14
  DEFAULT_CAMPAIGN_PRIORITY,
9
15
  DEFAULT_FREQUENCY_DAYS,
16
+ e2 as FeatureGridVariant,
17
+ F as FeaturesVariant,
18
+ G as GradientVariant,
19
+ H as HeroVariant,
20
+ L as LARGE_PANEL_VARIANTS,
21
+ M as MinimalVariant,
10
22
  PLACEMENT_NAMES,
11
23
  PLATFORM_NAMES,
24
+ S as SMALL_PANEL_VARIANTS,
25
+ T as TaglineVariant,
26
+ f2 as TestimonialVariant,
12
27
  VARIANT_NAMES,
28
+ V as VideoVariant,
13
29
  m as clearCampaignsCache,
14
30
  n as clearProductsCache,
15
31
  h as fetchActiveCampaigns,
@@ -20,10 +36,12 @@ export {
20
36
  d as getConfig,
21
37
  c as getDeviceId,
22
38
  s as getEligibleCampaignIds,
39
+ i2 as getLargePanelVariant,
23
40
  l as getProductById,
24
41
  g as getSharedFeaturesApp,
25
42
  b as getSharedFeaturesAuth,
26
43
  a as getSharedFeaturesDb,
44
+ g2 as getSmallPanelVariant,
27
45
  i as initSharedFeatures,
28
46
  q as isEligibleForCampaign,
29
47
  e as isInitialized,
@@ -32,6 +50,8 @@ export {
32
50
  p as trackClose,
33
51
  t as trackImpression,
34
52
  a2 as useCampaign,
35
- u2 as useCampaigns
53
+ u2 as useCampaigns,
54
+ b2 as useOneTimeAdModal,
55
+ c2 as useUpdateAdModal
36
56
  };
37
57
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const analytics = require("../analytics-6shJHRZG.cjs");
3
+ const analytics = require("../analytics--ZSO9ova.cjs");
4
4
  exports.clearCampaignsCache = analytics.clearCampaignsCache;
5
5
  exports.clearProductsCache = analytics.clearProductsCache;
6
6
  exports.fetchActiveCampaigns = analytics.fetchActiveCampaigns;
@@ -1,4 +1,4 @@
1
- import { m, n, h, f, k, j, u, s, l, q, r, o, p, t } from "../analytics-Bbmodnm_.js";
1
+ import { m, n, h, f, k, j, u, s, l, q, r, o, p, t } from "../analytics-CdpCtTpu.js";
2
2
  export {
3
3
  m as clearCampaignsCache,
4
4
  n as clearProductsCache,
@@ -295,44 +295,32 @@ export interface CampaignAnalytics {
295
295
  }>;
296
296
  }
297
297
  /**
298
- * Props for small panel variants
298
+ * Props for small panel variant components
299
299
  */
300
300
  export interface SmallPanelProps {
301
- campaign: Campaign;
302
- product: Product;
303
- variant: SmallPanelVariant;
304
- onClose: () => void;
305
- onClick: () => void;
301
+ /** Campaign with product data */
302
+ campaign: CampaignWithProduct;
303
+ /** Called when user clicks CTA */
304
+ onCTAClick?: () => void;
305
+ /** Called when user closes/dismisses the ad */
306
+ onClose?: () => void;
306
307
  }
307
308
  /**
308
- * Props for large panel variants
309
+ * Props for large panel variant components
309
310
  */
310
311
  export interface LargePanelProps {
311
- campaign: Campaign;
312
- product: Product;
313
- variant: LargePanelVariant;
314
- onClose: () => void;
315
- onClick: () => void;
316
- }
317
- /**
318
- * Props for ad slider component
319
- */
320
- export interface AdSliderProps {
321
- placement: AdPlacement;
322
- variant?: SmallPanelVariant;
323
- autoplay?: boolean;
324
- interval?: number;
325
- maxCampaigns?: number;
326
- className?: string;
327
- }
328
- /**
329
- * Props for ad modal component
330
- */
331
- export interface AdModalProps {
332
- open: boolean;
333
- onOpenChange: (open: boolean) => void;
334
- campaign: CampaignWithProduct | null;
335
- variant?: LargePanelVariant;
312
+ /** Campaign with product data */
313
+ campaign: CampaignWithProduct;
314
+ /** Called when user clicks CTA */
315
+ onCTAClick?: () => void;
316
+ /** Called when user closes/dismisses the ad */
317
+ onClose?: () => void;
318
+ /** Whether to show slide indicator */
319
+ showIndicator?: boolean;
320
+ /** Current slide index (for carousel) */
321
+ currentIndex?: number;
322
+ /** Total number of slides (for carousel) */
323
+ totalCount?: number;
336
324
  }
337
325
  /**
338
326
  * Props for ad panel component
@@ -1 +1 @@
1
- {"version":3,"file":"campaigns.d.ts","sourceRoot":"","sources":["../../src/types/campaigns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,SAAS,EAAE,SAAS,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,eAAe,GAAG,WAAW,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,eAAe,GACf,eAAe,GACf,cAAc,GACd,cAAc,GACd,eAAe,GACf,eAAe,GACf,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IAGvB,gDAAgD;IAChD,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,8BAA8B;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,yDAAyD;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,qDAAqD;IACrD,mBAAmB,EAAE,OAAO,CAAC;IAG7B,oCAAoC;IACpC,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAG1B,wBAAwB;IACxB,OAAO,EAAE,SAAS,CAAC;IACnB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAG1B,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAGpB,gCAAgC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,qCAAqC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,oBAAoB,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAElB,mCAAmC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,mCAAmC;IACnC,SAAS,EAAE,WAAW,CAAC;IAEvB,0BAA0B;IAC1B,MAAM,EAAE,QAAQ,CAAC;IACjB,oCAAoC;IACpC,SAAS,EAAE,SAAS,CAAC;IAErB,oCAAoC;IACpC,OAAO,EAAE,SAAS,CAAC;IACnB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,sBAAsB;IACtB,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;GAEG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAWnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CASvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKzD,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC"}
1
+ {"version":3,"file":"campaigns.d.ts","sourceRoot":"","sources":["../../src/types/campaigns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/types/campaigns.ts"],"sourcesContent":["/**\n * Campaign/Advertising System Type Definitions\n *\n * Type definitions for the centralized advertising system including\n * Firestore document schemas, service interfaces, and UI types.\n *\n * Based on ZTools advertising system, adapted for cross-project use.\n *\n * @author Ahsan Mahmood <aoneahsan@gmail.com>\n */\n\nimport { Timestamp } from 'firebase/firestore';\n\n// ============================================================================\n// PRODUCT TYPES\n// ============================================================================\n\n/**\n * Product type classification\n */\nexport type ProductType = 'extension' | 'android' | 'ios' | 'web';\n\n/**\n * Product information for advertising\n */\nexport interface Product {\n /** Unique product identifier */\n id: string;\n /** Product display name */\n name: string;\n /** Short tagline (marketing slogan) */\n tagline: string;\n /** Longer description of the product */\n description: string;\n /** Product type classification */\n type: ProductType;\n /** URL to the product (store link or website) */\n url: string;\n /** Brand/theme color (hex) */\n color: string;\n /** Key features list (3-4 items) */\n features: string[];\n /** Inline SVG icon (64px) */\n icon64?: string;\n /** Inline SVG icon (128px) */\n icon128?: string;\n /** Chrome Web Store URL */\n chromeStoreUrl?: string;\n /** Google Play Store URL */\n playStoreUrl?: string;\n /** Apple App Store URL */\n appStoreUrl?: string;\n /** Web app URL */\n webUrl?: string;\n /** Whether the product is active */\n enabled: boolean;\n /** When the product was created */\n createdAt: Timestamp;\n /** When the product was last updated */\n updatedAt: Timestamp;\n}\n\n// ============================================================================\n// CAMPAIGN TYPES\n// ============================================================================\n\n/**\n * Campaign status values\n */\nexport type CampaignStatus = 'active' | 'paused' | 'scheduled' | 'ended';\n\n/**\n * Target platforms for campaigns\n */\nexport type TargetPlatform = 'web' | 'android' | 'ios' | 'extension';\n\n/**\n * Target audience for campaigns\n */\nexport type TargetAudience = 'all' | 'authenticated' | 'anonymous';\n\n/**\n * Placement options for ads\n */\nexport type AdPlacement =\n | 'popup_slider'\n | 'options_panel'\n | 'onetime_modal'\n | 'update_modal'\n | 'notification'\n | 'footer_slider'\n | 'sidebar_panel'\n | 'home_banner';\n\n/**\n * Small panel variant styles\n */\nexport type SmallPanelVariant =\n | 'small_panel_1' // Minimal\n | 'small_panel_2' // Tagline\n | 'small_panel_3' // Features\n | 'small_panel_4' // Gradient\n | 'small_panel_5'; // Card\n\n/**\n * Large slider variant styles\n */\nexport type LargePanelVariant =\n | 'large_slider_1' // Hero\n | 'large_slider_2' // Feature Grid\n | 'large_slider_3' // Testimonial\n | 'large_slider_4' // Comparison\n | 'large_slider_5'; // Video Placeholder\n\n/**\n * All ad variant types\n */\nexport type AdVariant = SmallPanelVariant | LargePanelVariant;\n\n/**\n * Advertising campaign document\n * Stored in: zaions_campaigns/{campaignId}\n */\nexport interface Campaign {\n /** Campaign document ID */\n id: string;\n /** Reference to product being promoted */\n productId: string;\n /** Campaign name (admin reference) */\n name: string;\n /** Current campaign status */\n status: CampaignStatus;\n\n // === TARGETING ===\n /** Platforms where this campaign should show */\n targetPlatforms: TargetPlatform[];\n /** Audience type to target */\n targetAudience: TargetAudience;\n /** Specific projects to target (empty = all projects) */\n targetProjects: string[];\n /** Don't show to users already using this product */\n excludeProductUsers: boolean;\n\n // === DISPLAY RULES ===\n /** Where the ad can be displayed */\n placements: AdPlacement[];\n /** Priority (1-100, higher = more important) */\n priority: number;\n /** Days between impressions for same user (default: 20) */\n frequencyDays: number;\n /** Maximum total impressions (null = unlimited) */\n maxImpressions: number | null;\n\n // === TIMELINE ===\n /** Campaign start date */\n startDate: Timestamp;\n /** Campaign end date (null = no end) */\n endDate: Timestamp | null;\n\n // === CREATIVE ===\n /** UI variant to use */\n variant: AdVariant;\n /** Custom title (overrides product name) */\n customTitle?: string;\n /** Custom tagline (overrides product tagline) */\n customTagline?: string;\n /** Custom CTA button text */\n customCta?: string;\n /** Custom CTA button URL (overrides product URL) */\n customCtaUrl?: string;\n /** Custom description (overrides product description) */\n customDescription?: string;\n /** Custom product color for custom products/projects */\n customProductColor?: string;\n /** Custom icon SVG string (for custom products) */\n customIcon?: string;\n /** Custom features list (for custom products) */\n customFeatures?: string[];\n\n // === METRICS (Denormalized) ===\n /** Total number of impressions */\n totalImpressions: number;\n /** Total number of clicks */\n totalClicks: number;\n /** Total number of closes/dismissals */\n totalCloses: number;\n\n // === METADATA ===\n /** When campaign was created */\n createdAt: Timestamp;\n /** When campaign was last updated */\n updatedAt: Timestamp;\n /** Admin user ID who created */\n createdBy: string;\n /** Admin user ID who last updated */\n updatedBy?: string;\n}\n\n/**\n * Input for creating a new campaign\n */\nexport interface CreateCampaignInput {\n productId: string;\n name: string;\n status: CampaignStatus;\n targetPlatforms: TargetPlatform[];\n targetAudience: TargetAudience;\n targetProjects: string[];\n excludeProductUsers: boolean;\n placements: AdPlacement[];\n priority: number;\n frequencyDays: number;\n maxImpressions: number | null;\n startDate: Date;\n endDate: Date | null;\n variant: AdVariant;\n customTitle?: string;\n customTagline?: string;\n customCta?: string;\n customCtaUrl?: string;\n customDescription?: string;\n customProductColor?: string;\n customIcon?: string;\n customFeatures?: string[];\n}\n\n/**\n * Input for updating a campaign\n */\nexport interface UpdateCampaignInput extends Partial<CreateCampaignInput> {\n id: string;\n}\n\n// ============================================================================\n// IMPRESSION TYPES\n// ============================================================================\n\n/**\n * Types of ad interactions\n */\nexport type AdAction = 'impression' | 'click' | 'close' | 'notification_click';\n\n/**\n * Ad impression/interaction event\n * Stored in: zaions_impressions/{impressionId}\n */\nexport interface Impression {\n /** Impression document ID */\n id: string;\n /** Campaign that generated this impression */\n campaignId: string;\n /** Product being advertised */\n productId: string;\n /** Project where impression occurred */\n projectId: string;\n\n /** User ID (null for anonymous) */\n userId: string | null;\n /** Device/browser fingerprint */\n deviceId: string;\n /** Platform where impression occurred */\n platform: TargetPlatform;\n /** Placement where ad was shown */\n placement: AdPlacement;\n\n /** Type of interaction */\n action: AdAction;\n /** When the interaction occurred */\n timestamp: Timestamp;\n\n /** UI variant that was displayed */\n variant: AdVariant;\n /** Session identifier */\n sessionId?: string;\n}\n\n/**\n * Input for recording an impression\n */\nexport interface RecordImpressionInput {\n campaignId: string;\n productId: string;\n placement: AdPlacement;\n action: AdAction;\n variant: AdVariant;\n sessionId?: string;\n}\n\n// ============================================================================\n// AD HISTORY TYPES\n// ============================================================================\n\n/**\n * Local ad history entry (for frequency capping)\n */\nexport interface AdHistoryEntry {\n /** Campaign ID */\n campaignId: string;\n /** Product ID */\n productId: string;\n /** Last seen timestamp (Unix ms) */\n lastSeenAt: number;\n /** Impression count */\n impressionCount: number;\n /** Whether clicked */\n clicked: boolean;\n /** Whether closed */\n closed: boolean;\n /** Next eligible timestamp (Unix ms) */\n nextEligibleAt: number;\n}\n\n// ============================================================================\n// SERVICE TYPES\n// ============================================================================\n\n/**\n * Options for fetching campaigns\n */\nexport interface FetchCampaignsOptions {\n /** Filter by placement */\n placement?: AdPlacement;\n /** Filter by status */\n status?: CampaignStatus;\n /** Filter by product */\n productId?: string;\n /** Maximum results */\n limit?: number;\n}\n\n/**\n * Campaign with resolved product data\n */\nexport interface CampaignWithProduct extends Campaign {\n /** Resolved product information */\n product: Product;\n}\n\n// ============================================================================\n// ANALYTICS TYPES\n// ============================================================================\n\n/**\n * Campaign analytics summary\n */\nexport interface CampaignAnalytics {\n campaignId: string;\n campaignName: string;\n productId: string;\n productName: string;\n\n /** Total impressions */\n impressions: number;\n /** Total clicks */\n clicks: number;\n /** Total closes */\n closes: number;\n /** Click-through rate (clicks/impressions) */\n ctr: number;\n /** Close rate (closes/impressions) */\n closeRate: number;\n\n /** Breakdown by platform */\n byPlatform: Record<TargetPlatform, { impressions: number; clicks: number }>;\n /** Breakdown by placement */\n byPlacement: Record<AdPlacement, { impressions: number; clicks: number }>;\n /** Breakdown by project */\n byProject: Record<string, { impressions: number; clicks: number }>;\n /** Daily breakdown */\n byDate: Array<{\n date: string;\n impressions: number;\n clicks: number;\n closes: number;\n }>;\n}\n\n// ============================================================================\n// COMPONENT PROPS\n// ============================================================================\n\n/**\n * Props for small panel variants\n */\nexport interface SmallPanelProps {\n campaign: Campaign;\n product: Product;\n variant: SmallPanelVariant;\n onClose: () => void;\n onClick: () => void;\n}\n\n/**\n * Props for large panel variants\n */\nexport interface LargePanelProps {\n campaign: Campaign;\n product: Product;\n variant: LargePanelVariant;\n onClose: () => void;\n onClick: () => void;\n}\n\n/**\n * Props for ad slider component\n */\nexport interface AdSliderProps {\n placement: AdPlacement;\n variant?: SmallPanelVariant;\n autoplay?: boolean;\n interval?: number;\n maxCampaigns?: number;\n className?: string;\n}\n\n/**\n * Props for ad modal component\n */\nexport interface AdModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n campaign: CampaignWithProduct | null;\n variant?: LargePanelVariant;\n}\n\n/**\n * Props for ad panel component\n */\nexport interface AdPanelProps {\n placement: AdPlacement;\n variant?: SmallPanelVariant;\n className?: string;\n}\n\n// ============================================================================\n// DEFAULT VALUES\n// ============================================================================\n\n/**\n * Default frequency cap in days\n */\nexport const DEFAULT_FREQUENCY_DAYS = 20;\n\n/**\n * Default campaign priority\n */\nexport const DEFAULT_CAMPAIGN_PRIORITY = 50;\n\n/**\n * Variant display names\n */\nexport const VARIANT_NAMES: Record<AdVariant, string> = {\n small_panel_1: 'Minimal',\n small_panel_2: 'Tagline',\n small_panel_3: 'Features',\n small_panel_4: 'Gradient',\n small_panel_5: 'Card',\n large_slider_1: 'Hero',\n large_slider_2: 'Feature Grid',\n large_slider_3: 'Testimonial',\n large_slider_4: 'Comparison',\n large_slider_5: 'Video Placeholder',\n};\n\n/**\n * Placement display names\n */\nexport const PLACEMENT_NAMES: Record<AdPlacement, string> = {\n popup_slider: 'Extension Popup Slider',\n options_panel: 'Extension Options Panel',\n onetime_modal: 'One-Time Welcome Modal',\n update_modal: 'Update Announcement Modal',\n notification: 'Browser Notification',\n footer_slider: 'Web App Footer Slider',\n sidebar_panel: 'Web App Sidebar Panel',\n home_banner: 'Home Page Banner',\n};\n\n/**\n * Platform display names\n */\nexport const PLATFORM_NAMES: Record<TargetPlatform, string> = {\n web: 'Web App',\n android: 'Android App',\n ios: 'iOS App',\n extension: 'Browser Extension',\n};\n\n// ============================================================================\n// FIREBASE COLLECTION NAMES\n// ============================================================================\n\n/**\n * Collection names for shared features\n */\nexport const COLLECTIONS = {\n CAMPAIGNS: 'zaions_campaigns',\n PRODUCTS: 'zaions_products',\n IMPRESSIONS: 'zaions_impressions',\n CONTACTS: 'zaions_contacts',\n FEATURE_REQUESTS: 'zaions_feature_requests',\n PAYMENT_OPTIONS: 'zaions_payment_options',\n SOCIAL_LINKS: 'zaions_social_links',\n DEVELOPER_INFO: 'zaions_developer_info',\n} as const;\n"],"names":[],"mappings":";;AAybO,MAAM,yBAAyB;AAK/B,MAAM,4BAA4B;AAKlC,MAAM,gBAA2C;AAAA,EACtD,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;AAKO,MAAM,kBAA+C;AAAA,EAC1D,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,aAAa;AACf;AAKO,MAAM,iBAAiD;AAAA,EAC5D,KAAK;AAAA,EACL,SAAS;AAAA,EACT,KAAK;AAAA,EACL,WAAW;AACb;AASO,MAAM,cAAc;AAAA,EACzB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,gBAAgB;AAClB;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/types/campaigns.ts"],"sourcesContent":["/**\n * Campaign/Advertising System Type Definitions\n *\n * Type definitions for the centralized advertising system including\n * Firestore document schemas, service interfaces, and UI types.\n *\n * Based on ZTools advertising system, adapted for cross-project use.\n *\n * @author Ahsan Mahmood <aoneahsan@gmail.com>\n */\n\nimport { Timestamp } from 'firebase/firestore';\n\n// ============================================================================\n// PRODUCT TYPES\n// ============================================================================\n\n/**\n * Product type classification\n */\nexport type ProductType = 'extension' | 'android' | 'ios' | 'web';\n\n/**\n * Product information for advertising\n */\nexport interface Product {\n /** Unique product identifier */\n id: string;\n /** Product display name */\n name: string;\n /** Short tagline (marketing slogan) */\n tagline: string;\n /** Longer description of the product */\n description: string;\n /** Product type classification */\n type: ProductType;\n /** URL to the product (store link or website) */\n url: string;\n /** Brand/theme color (hex) */\n color: string;\n /** Key features list (3-4 items) */\n features: string[];\n /** Inline SVG icon (64px) */\n icon64?: string;\n /** Inline SVG icon (128px) */\n icon128?: string;\n /** Chrome Web Store URL */\n chromeStoreUrl?: string;\n /** Google Play Store URL */\n playStoreUrl?: string;\n /** Apple App Store URL */\n appStoreUrl?: string;\n /** Web app URL */\n webUrl?: string;\n /** Whether the product is active */\n enabled: boolean;\n /** When the product was created */\n createdAt: Timestamp;\n /** When the product was last updated */\n updatedAt: Timestamp;\n}\n\n// ============================================================================\n// CAMPAIGN TYPES\n// ============================================================================\n\n/**\n * Campaign status values\n */\nexport type CampaignStatus = 'active' | 'paused' | 'scheduled' | 'ended';\n\n/**\n * Target platforms for campaigns\n */\nexport type TargetPlatform = 'web' | 'android' | 'ios' | 'extension';\n\n/**\n * Target audience for campaigns\n */\nexport type TargetAudience = 'all' | 'authenticated' | 'anonymous';\n\n/**\n * Placement options for ads\n */\nexport type AdPlacement =\n | 'popup_slider'\n | 'options_panel'\n | 'onetime_modal'\n | 'update_modal'\n | 'notification'\n | 'footer_slider'\n | 'sidebar_panel'\n | 'home_banner';\n\n/**\n * Small panel variant styles\n */\nexport type SmallPanelVariant =\n | 'small_panel_1' // Minimal\n | 'small_panel_2' // Tagline\n | 'small_panel_3' // Features\n | 'small_panel_4' // Gradient\n | 'small_panel_5'; // Card\n\n/**\n * Large slider variant styles\n */\nexport type LargePanelVariant =\n | 'large_slider_1' // Hero\n | 'large_slider_2' // Feature Grid\n | 'large_slider_3' // Testimonial\n | 'large_slider_4' // Comparison\n | 'large_slider_5'; // Video Placeholder\n\n/**\n * All ad variant types\n */\nexport type AdVariant = SmallPanelVariant | LargePanelVariant;\n\n/**\n * Advertising campaign document\n * Stored in: zaions_campaigns/{campaignId}\n */\nexport interface Campaign {\n /** Campaign document ID */\n id: string;\n /** Reference to product being promoted */\n productId: string;\n /** Campaign name (admin reference) */\n name: string;\n /** Current campaign status */\n status: CampaignStatus;\n\n // === TARGETING ===\n /** Platforms where this campaign should show */\n targetPlatforms: TargetPlatform[];\n /** Audience type to target */\n targetAudience: TargetAudience;\n /** Specific projects to target (empty = all projects) */\n targetProjects: string[];\n /** Don't show to users already using this product */\n excludeProductUsers: boolean;\n\n // === DISPLAY RULES ===\n /** Where the ad can be displayed */\n placements: AdPlacement[];\n /** Priority (1-100, higher = more important) */\n priority: number;\n /** Days between impressions for same user (default: 20) */\n frequencyDays: number;\n /** Maximum total impressions (null = unlimited) */\n maxImpressions: number | null;\n\n // === TIMELINE ===\n /** Campaign start date */\n startDate: Timestamp;\n /** Campaign end date (null = no end) */\n endDate: Timestamp | null;\n\n // === CREATIVE ===\n /** UI variant to use */\n variant: AdVariant;\n /** Custom title (overrides product name) */\n customTitle?: string;\n /** Custom tagline (overrides product tagline) */\n customTagline?: string;\n /** Custom CTA button text */\n customCta?: string;\n /** Custom CTA button URL (overrides product URL) */\n customCtaUrl?: string;\n /** Custom description (overrides product description) */\n customDescription?: string;\n /** Custom product color for custom products/projects */\n customProductColor?: string;\n /** Custom icon SVG string (for custom products) */\n customIcon?: string;\n /** Custom features list (for custom products) */\n customFeatures?: string[];\n\n // === METRICS (Denormalized) ===\n /** Total number of impressions */\n totalImpressions: number;\n /** Total number of clicks */\n totalClicks: number;\n /** Total number of closes/dismissals */\n totalCloses: number;\n\n // === METADATA ===\n /** When campaign was created */\n createdAt: Timestamp;\n /** When campaign was last updated */\n updatedAt: Timestamp;\n /** Admin user ID who created */\n createdBy: string;\n /** Admin user ID who last updated */\n updatedBy?: string;\n}\n\n/**\n * Input for creating a new campaign\n */\nexport interface CreateCampaignInput {\n productId: string;\n name: string;\n status: CampaignStatus;\n targetPlatforms: TargetPlatform[];\n targetAudience: TargetAudience;\n targetProjects: string[];\n excludeProductUsers: boolean;\n placements: AdPlacement[];\n priority: number;\n frequencyDays: number;\n maxImpressions: number | null;\n startDate: Date;\n endDate: Date | null;\n variant: AdVariant;\n customTitle?: string;\n customTagline?: string;\n customCta?: string;\n customCtaUrl?: string;\n customDescription?: string;\n customProductColor?: string;\n customIcon?: string;\n customFeatures?: string[];\n}\n\n/**\n * Input for updating a campaign\n */\nexport interface UpdateCampaignInput extends Partial<CreateCampaignInput> {\n id: string;\n}\n\n// ============================================================================\n// IMPRESSION TYPES\n// ============================================================================\n\n/**\n * Types of ad interactions\n */\nexport type AdAction = 'impression' | 'click' | 'close' | 'notification_click';\n\n/**\n * Ad impression/interaction event\n * Stored in: zaions_impressions/{impressionId}\n */\nexport interface Impression {\n /** Impression document ID */\n id: string;\n /** Campaign that generated this impression */\n campaignId: string;\n /** Product being advertised */\n productId: string;\n /** Project where impression occurred */\n projectId: string;\n\n /** User ID (null for anonymous) */\n userId: string | null;\n /** Device/browser fingerprint */\n deviceId: string;\n /** Platform where impression occurred */\n platform: TargetPlatform;\n /** Placement where ad was shown */\n placement: AdPlacement;\n\n /** Type of interaction */\n action: AdAction;\n /** When the interaction occurred */\n timestamp: Timestamp;\n\n /** UI variant that was displayed */\n variant: AdVariant;\n /** Session identifier */\n sessionId?: string;\n}\n\n/**\n * Input for recording an impression\n */\nexport interface RecordImpressionInput {\n campaignId: string;\n productId: string;\n placement: AdPlacement;\n action: AdAction;\n variant: AdVariant;\n sessionId?: string;\n}\n\n// ============================================================================\n// AD HISTORY TYPES\n// ============================================================================\n\n/**\n * Local ad history entry (for frequency capping)\n */\nexport interface AdHistoryEntry {\n /** Campaign ID */\n campaignId: string;\n /** Product ID */\n productId: string;\n /** Last seen timestamp (Unix ms) */\n lastSeenAt: number;\n /** Impression count */\n impressionCount: number;\n /** Whether clicked */\n clicked: boolean;\n /** Whether closed */\n closed: boolean;\n /** Next eligible timestamp (Unix ms) */\n nextEligibleAt: number;\n}\n\n// ============================================================================\n// SERVICE TYPES\n// ============================================================================\n\n/**\n * Options for fetching campaigns\n */\nexport interface FetchCampaignsOptions {\n /** Filter by placement */\n placement?: AdPlacement;\n /** Filter by status */\n status?: CampaignStatus;\n /** Filter by product */\n productId?: string;\n /** Maximum results */\n limit?: number;\n}\n\n/**\n * Campaign with resolved product data\n */\nexport interface CampaignWithProduct extends Campaign {\n /** Resolved product information */\n product: Product;\n}\n\n// ============================================================================\n// ANALYTICS TYPES\n// ============================================================================\n\n/**\n * Campaign analytics summary\n */\nexport interface CampaignAnalytics {\n campaignId: string;\n campaignName: string;\n productId: string;\n productName: string;\n\n /** Total impressions */\n impressions: number;\n /** Total clicks */\n clicks: number;\n /** Total closes */\n closes: number;\n /** Click-through rate (clicks/impressions) */\n ctr: number;\n /** Close rate (closes/impressions) */\n closeRate: number;\n\n /** Breakdown by platform */\n byPlatform: Record<TargetPlatform, { impressions: number; clicks: number }>;\n /** Breakdown by placement */\n byPlacement: Record<AdPlacement, { impressions: number; clicks: number }>;\n /** Breakdown by project */\n byProject: Record<string, { impressions: number; clicks: number }>;\n /** Daily breakdown */\n byDate: Array<{\n date: string;\n impressions: number;\n clicks: number;\n closes: number;\n }>;\n}\n\n// ============================================================================\n// COMPONENT PROPS\n// ============================================================================\n\n/**\n * Props for small panel variant components\n */\nexport interface SmallPanelProps {\n /** Campaign with product data */\n campaign: CampaignWithProduct;\n /** Called when user clicks CTA */\n onCTAClick?: () => void;\n /** Called when user closes/dismisses the ad */\n onClose?: () => void;\n}\n\n/**\n * Props for large panel variant components\n */\nexport interface LargePanelProps {\n /** Campaign with product data */\n campaign: CampaignWithProduct;\n /** Called when user clicks CTA */\n onCTAClick?: () => void;\n /** Called when user closes/dismisses the ad */\n onClose?: () => void;\n /** Whether to show slide indicator */\n showIndicator?: boolean;\n /** Current slide index (for carousel) */\n currentIndex?: number;\n /** Total number of slides (for carousel) */\n totalCount?: number;\n}\n\n/**\n * Props for ad panel component\n */\nexport interface AdPanelProps {\n placement: AdPlacement;\n variant?: SmallPanelVariant;\n className?: string;\n}\n\n// ============================================================================\n// DEFAULT VALUES\n// ============================================================================\n\n/**\n * Default frequency cap in days\n */\nexport const DEFAULT_FREQUENCY_DAYS = 20;\n\n/**\n * Default campaign priority\n */\nexport const DEFAULT_CAMPAIGN_PRIORITY = 50;\n\n/**\n * Variant display names\n */\nexport const VARIANT_NAMES: Record<AdVariant, string> = {\n small_panel_1: 'Minimal',\n small_panel_2: 'Tagline',\n small_panel_3: 'Features',\n small_panel_4: 'Gradient',\n small_panel_5: 'Card',\n large_slider_1: 'Hero',\n large_slider_2: 'Feature Grid',\n large_slider_3: 'Testimonial',\n large_slider_4: 'Comparison',\n large_slider_5: 'Video Placeholder',\n};\n\n/**\n * Placement display names\n */\nexport const PLACEMENT_NAMES: Record<AdPlacement, string> = {\n popup_slider: 'Extension Popup Slider',\n options_panel: 'Extension Options Panel',\n onetime_modal: 'One-Time Welcome Modal',\n update_modal: 'Update Announcement Modal',\n notification: 'Browser Notification',\n footer_slider: 'Web App Footer Slider',\n sidebar_panel: 'Web App Sidebar Panel',\n home_banner: 'Home Page Banner',\n};\n\n/**\n * Platform display names\n */\nexport const PLATFORM_NAMES: Record<TargetPlatform, string> = {\n web: 'Web App',\n android: 'Android App',\n ios: 'iOS App',\n extension: 'Browser Extension',\n};\n\n// ============================================================================\n// FIREBASE COLLECTION NAMES\n// ============================================================================\n\n/**\n * Collection names for shared features\n */\nexport const COLLECTIONS = {\n CAMPAIGNS: 'zaions_campaigns',\n PRODUCTS: 'zaions_products',\n IMPRESSIONS: 'zaions_impressions',\n CONTACTS: 'zaions_contacts',\n FEATURE_REQUESTS: 'zaions_feature_requests',\n PAYMENT_OPTIONS: 'zaions_payment_options',\n SOCIAL_LINKS: 'zaions_social_links',\n DEVELOPER_INFO: 'zaions_developer_info',\n} as const;\n"],"names":[],"mappings":";;AA2aO,MAAM,yBAAyB;AAK/B,MAAM,4BAA4B;AAKlC,MAAM,gBAA2C;AAAA,EACtD,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;AAKO,MAAM,kBAA+C;AAAA,EAC1D,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,aAAa;AACf;AAKO,MAAM,iBAAiD;AAAA,EAC5D,KAAK;AAAA,EACL,SAAS;AAAA,EACT,KAAK;AAAA,EACL,WAAW;AACb;AASO,MAAM,cAAc;AAAA,EACzB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,gBAAgB;AAClB;;;;;;;"}