@salesmind-ai/design-system 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit-CiyPkxk1.d.cts +194 -0
- package/dist/audit-CiyPkxk1.d.ts +194 -0
- package/dist/index.cjs +422 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +36 -19
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +30 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.js +400 -21
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +132 -20
- package/dist/marketing/index.cjs.map +1 -1
- package/dist/marketing/index.css +1 -1
- package/dist/marketing/index.css.map +1 -1
- package/dist/marketing/index.js +133 -21
- package/dist/marketing/index.js.map +1 -1
- package/dist/styles/styles.css +4 -1
- package/dist/web/index.cjs +426 -9
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.d.cts +27 -1
- package/dist/web/index.d.ts +27 -1
- package/dist/web/index.js +404 -11
- package/dist/web/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -4,6 +4,8 @@ export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, Acco
|
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import { S as SectionShellProps } from './index-B64suAAc.cjs';
|
|
6
6
|
export { A as AgitationPoint, a as AnnouncementBar, b as AnnouncementBarProps, c as ArchitectureConnection, d as ArchitectureDiagram, e as ArchitectureDiagramProps, f as ArchitectureNode, g as ArchitectureNodeType, h as ArticleCard, i as ArticleCardProps, j as ArticleLayout, k as ArticleLayoutProps, l as Author, m as AuthorBio, n as AuthorBioProps, o as AuthorLink, B as BeforeAfterBlock, p as BeforeAfterBlockProps, q as BeforeAfterItem, r as BeforeAfterSide, s as BookingEmbed, t as BookingEmbedProps, u as BrowserFrame, v as BrowserFrameProps, C as CTASection, w as CTASectionProps, x as CardMetric, y as CaseStudyCard, z as CaseStudyCardProps, D as CaseStudyMetric, E as CaseStudySection, F as CaseStudySectionProps, G as ComparisonColumn, H as ComparisonRow, I as ComparisonTable, J as ComparisonTableProps, K as CompetitorDiff, L as CompetitorDiffItem, M as CompetitorDiffProps, N as ComplianceGrid, O as ComplianceGridProps, P as ComplianceItem, Q as ComplianceStatus, R as ExitIntentOverlay, T as ExitIntentOverlayProps, U as FeatureItem, V as FeatureSection, W as FeatureSectionProps, X as GuaranteeHighlight, Y as GuaranteeHighlightProps, Z as HeroSection, _ as HeroSectionProps, $ as ICPFilter, a0 as ICPFilterItem, a1 as ICPFilterProps, a2 as IntegrationEntry, a3 as IntegrationShowcase, a4 as IntegrationShowcaseProps, a5 as IntentCTA, a6 as IntentCTAProps, a7 as IntentStage, a8 as IntentTriggerType, a9 as LeadCaptureForm, aa as LeadCaptureFormProps, ab as LogoItem, ac as ManifestoAttribution, ad as ManifestoBlock, ae as ManifestoBlockProps, af as Media, ag as MetricCounter, ah as MetricCounterProps, ai as MotionContainer, aj as MotionContainerProps, ak as MotionText, al as MotionTextProps, am as ObjectionFAQ, an as ObjectionFAQProps, ao as ObjectionItem, ap as Platform, aq as PlatformBadge, ar as PlatformBadgeProps, as as PricingCard, at as PricingCardProps, au as PricingFeature, av as PricingSection, aw as PricingSectionProps, ax as PricingToggle, ay as PricingToggleProps, az as ProblemAgitation, aA as ProblemAgitationProps, aB as ProcessTimeline, aC as ProcessTimelineProps, aD as ROICalculator, aE as ROICalculatorProps, aF as ROIComparisonItem, aG as RelatedContent, aH as RelatedContentProps, aI as SectionHeader, aJ as SectionHeaderProps, aK as SectionShell, aL as SecurityBlock, aM as SecurityBlockProps, aN as SecurityCertification, aO as SegmentSwitch, aP as SegmentSwitchProps, aQ as SocialProof, aR as SocialProofCard, aS as SocialProofCardProps, aT as SocialProofCarousel, aU as SocialProofCarouselProps, aV as SocialProofFeatured, aW as SocialProofFeaturedProps, aX as SocialProofGrid, aY as SocialProofGridProps, aZ as SocialProofLogos, a_ as SocialProofLogosProps, a$ as StakeholderContent, b0 as StakeholderDefinition, b1 as StakeholderTabs, b2 as StakeholderTabsProps, b3 as StatItem, b4 as StatsSection, b5 as StatsSectionProps, b6 as StickyActionBar, b7 as StickyActionBarProps, b8 as TOCItem, b9 as TableOfContents, ba as TableOfContentsProps, bb as TimelineStep, bc as ValueAnchor, bd as ValueAnchorInput, be as ValueAnchorOutput, bf as ValueAnchorProps, bg as VerticalVideoGrid, bh as VerticalVideoGridProps, bi as VideoEmbed, bj as VideoEmbedProps } from './index-B64suAAc.cjs';
|
|
7
|
+
import { U as UtmParams } from './audit-CiyPkxk1.cjs';
|
|
8
|
+
export { F as FirstTouchAttribution, a as UTM_CAMPAIGNS, b as UTM_CONTENTS, c as UTM_MEDIUMS_ALL, d as UTM_MEDIUMS_APP, e as UTM_MEDIUMS_MESSAGING, f as UTM_MEDIUMS_WEB, g as UTM_SOURCES, h as UTM_SOURCES_REQUIRING_SELLER, i as UTM_TERMS, j as UrlClassification, k as UtmAuditEntry, l as UtmBlockedError, m as UtmCampaign, n as UtmComplianceResult, o as UtmComplianceStatus, p as UtmConfidence, q as UtmContent, r as UtmMedium, s as UtmMediumAppPage, t as UtmMediumMessaging, u as UtmMediumWebPage, v as UtmOverrides, w as UtmSource, x as UtmSourceRequiringSeller, y as UtmTerm, z as buildBlockedError, A as buildUtmUrl, B as classifyAndEnforce, C as classifyUrl, D as createAuditEntry, E as isUtmExempt, G as isValidUtmParams, H as parseUtmParams, I as requiresSellerAttribution, J as requiresUtm, K as toFirstTouchAttribution, L as validateCompliance, M as validateUtmField } from './audit-CiyPkxk1.cjs';
|
|
7
9
|
export { FormattedDate, FormattedMessage, FormattedNumber, MessageDescriptor, defineMessages } from 'react-intl';
|
|
8
10
|
export { B as BarChart, d as BarChartProps, e as BarConfig, g as CaveatBlock, h as CaveatBlockProps, i as Chart, j as ChartContainer, k as ChartContainerProps, m as ChartDimension, p as ChartMeasure, r as ChartProps, s as ChartSwitchControl, t as ChartSwitchControlProps, E as ConfidenceIndicator, F as ConfidenceIndicatorProps, H as DataCoverageBadge, J as DataCoverageBadgeProps, K as DataStateIndicator, L as DataStateIndicatorProps, N as EvidenceGroup, O as EvidenceGroupProps, P as ExecutiveThesis, Q as ExecutiveThesisProps, S as ExportFormat, T as ExportMenu, U as ExportMenuProps, V as ExportOption, X as FunnelChart, Y as FunnelChartProps, Z as FunnelStage, $ as HeatmapCell, a0 as HeatmapChart, a1 as HeatmapChartProps, a3 as InsightBlock, a4 as InsightBlockProps, a5 as KeyMetric, a6 as KeyMetricProps, a7 as LineChart, a8 as LineChartProps, a9 as LineConfig, aa as MBTIDimensions, ab as MBTIRadar, ac as MBTIRadarProps, ae as MBTITypeCount, af as MBTITypeGrid, ag as MBTITypeGridProps, ah as MethodologyNote, ai as MethodologyNoteLabels, aj as MethodologyNoteProps, ak as PieChart, al as PieChartDataItem, am as PieChartProps, ao as ReportShell, ap as ReportShellProps, aq as Select, ar as SelectContent, as as SelectContentProps, at as SelectGroup, au as SelectGroupProps, av as SelectItem, aw as SelectItemProps, ax as SelectProps, ay as SelectSeparator, az as SelectTrigger, aA as SelectTriggerProps, aD as TrendIndicator, aE as TrendIndicatorProps } from './ExportMenu-hEe5MhLq.cjs';
|
|
9
11
|
import '@base-ui/react';
|
|
@@ -451,6 +453,14 @@ interface OutboundLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
|
451
453
|
preserveExistingUTM?: boolean;
|
|
452
454
|
openInNewTab?: boolean;
|
|
453
455
|
disableTracking?: boolean;
|
|
456
|
+
/**
|
|
457
|
+
* Governed UTM parameters. When provided, the link uses the UTM governance
|
|
458
|
+
* system (buildUtmUrl) instead of the legacy appendUTMs approach.
|
|
459
|
+
*
|
|
460
|
+
* Preferred for all new code. Existing usages without utmParams continue
|
|
461
|
+
* to work via the legacy path.
|
|
462
|
+
*/
|
|
463
|
+
utmParams?: UtmParams;
|
|
454
464
|
children: React__default.ReactNode;
|
|
455
465
|
}
|
|
456
466
|
interface OutboundClickEventDetail {
|
|
@@ -464,7 +474,26 @@ interface OutboundClickEventDetail {
|
|
|
464
474
|
}
|
|
465
475
|
declare const OutboundLink: React__default.ForwardRefExoticComponent<OutboundLinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
466
476
|
|
|
477
|
+
/**
|
|
478
|
+
* Check if a URL is exempt from UTM tagging.
|
|
479
|
+
* Uses both legacy patterns and governed URL classification.
|
|
480
|
+
*/
|
|
467
481
|
declare const isExemptUrl: (urlStr: string) => boolean;
|
|
482
|
+
/**
|
|
483
|
+
* Append governed UTM parameters to a URL using `buildUtmUrl`.
|
|
484
|
+
* Preferred over the legacy `appendUTMs` function.
|
|
485
|
+
*/
|
|
486
|
+
declare const appendGovernedUTMs: (href: string, params: UtmParams, preserveExisting?: boolean) => string;
|
|
487
|
+
/**
|
|
488
|
+
* @deprecated Prefer `appendGovernedUTMs` with governed `UtmParams`.
|
|
489
|
+
*
|
|
490
|
+
* Legacy UTM append function. Uses non-governed defaults:
|
|
491
|
+
* - utm_source = 'salesmind' (not in governed enum)
|
|
492
|
+
* - utm_medium = 'outbound_link' (snake_case, not in governed enum)
|
|
493
|
+
*
|
|
494
|
+
* Retained for backward compatibility. Consumers should migrate to
|
|
495
|
+
* the `utmParams` prop on OutboundLink.
|
|
496
|
+
*/
|
|
468
497
|
declare const appendUTMs: (href: string, context: string, pageSlug: string, options: {
|
|
469
498
|
mediumOverride?: string;
|
|
470
499
|
campaignOverride?: string;
|
|
@@ -1298,4 +1327,4 @@ interface FunnelScalingSenderProps {
|
|
|
1298
1327
|
}
|
|
1299
1328
|
declare const FunnelScalingSender: React__default.FC<FunnelScalingSenderProps>;
|
|
1300
1329
|
|
|
1301
|
-
export { type AnalysisProgress, type BehavioralSignals, ChangeEmail, type ChangeEmailLabels, type ChangeEmailProps, ColorPicker, type ColorPickerProps, CursorSpotlight, type CursorSpotlightProps, DataHighlight, type DataHighlightProps, DataTable, DataTableBody, DataTableCell, DataTableHead, DataTableHeader, type DataTableProps, DataTableRow, type EcosystemConnection, EcosystemDiagram, type EcosystemDiagramProps, type EcosystemLayer, type EngagementTip, type EnterpriseSLA, type EnterpriseSignalCategory, type EnterpriseSignalItem, type EnterpriseSignalStatus, EnterpriseSignaling, type EnterpriseSignalingProps, type EraSentiment, type EvolutionEra, EvolutionTimeline, type EvolutionTimelineProps, FloatingTabBar, type FloatingTabBarProps, type FooterCTA, type FooterLink, type FooterSection, type FooterTrustBadge, ForgotPassword, type ForgotPasswordLabels, type ForgotPasswordProps, FunnelScalingSender, type FunnelScalingSenderProps, InsightCallout, type InsightCalloutProps, IntelligenceBlock, type IntelligenceBlockProps, type IntelligenceCapability, type IntelligenceMetric, type LeadProfile, type LeadProfileState, LeadProfileView, type LeadProfileViewProps, LocaleDropdown, type LocaleDropdownProps, type LocaleOption, Login, type LoginLabels, type LoginProps, LongFormLayout, type LongFormLayoutProps, type MBTIScore, MDXOutboundLink, type NavItem, NavPlacement, Navbar, NavbarActions, NavbarBrand, type NavbarBrandProps, NavbarContent, NavbarItem, type NavbarItemProps, NavbarMegaMenu, NavbarMegaMenuItem, type NavbarMegaMenuItemProps, type NavbarMegaMenuProps, NavbarMegaMenuSection, type NavbarMegaMenuSectionProps, NavbarMobileActions, NavbarMobileNavItem, type NavbarMobileNavItemProps, NavbarMobileSeparator, type NavbarProps, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarV2, NavbarV2Actions, NavbarV2Brand, type NavbarV2BrandProps, type NavbarV2Props, NavbarV2Tab, NavbarV2TabMenu, type NavbarV2TabMenuProps, type NavbarV2TabProps, NavbarV2Tabs, type OutboundClickEventDetail, OutboundLink, type OutboundLinkProps, type PartnerBenefit, type PartnerCalcInput, type PartnerCalcOutput, type PartnerDifferentiator, PartnerValueProp, type PartnerValuePropProps, ReadingProgress, type ReadingProgressProps, RevenueAutomationLoop, type RevenueAutomationLoopProps, SectionShellProps, type SeriesEdition, Shell, type ShellProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, Signup, type SignupLabels, type SignupProps, SiteFooter, type SiteFooterProps, SpotlightCard, type SpotlightCardProps, StarRating, type StarRatingProps, TabItem, type TabItemProps, ThemeSelector, type ThemeSelectorProps, VersionedSeriesNavigator, type VersionedSeriesNavigatorProps, VersionedUpgradeAlert, type VersionedUpgradeAlertProps, VideoLightbox, type VideoLightboxProps, VoidBackground, type VoidBackgroundProps, appendUTMs, isExemptUrl };
|
|
1330
|
+
export { type AnalysisProgress, type BehavioralSignals, ChangeEmail, type ChangeEmailLabels, type ChangeEmailProps, ColorPicker, type ColorPickerProps, CursorSpotlight, type CursorSpotlightProps, DataHighlight, type DataHighlightProps, DataTable, DataTableBody, DataTableCell, DataTableHead, DataTableHeader, type DataTableProps, DataTableRow, type EcosystemConnection, EcosystemDiagram, type EcosystemDiagramProps, type EcosystemLayer, type EngagementTip, type EnterpriseSLA, type EnterpriseSignalCategory, type EnterpriseSignalItem, type EnterpriseSignalStatus, EnterpriseSignaling, type EnterpriseSignalingProps, type EraSentiment, type EvolutionEra, EvolutionTimeline, type EvolutionTimelineProps, FloatingTabBar, type FloatingTabBarProps, type FooterCTA, type FooterLink, type FooterSection, type FooterTrustBadge, ForgotPassword, type ForgotPasswordLabels, type ForgotPasswordProps, FunnelScalingSender, type FunnelScalingSenderProps, InsightCallout, type InsightCalloutProps, IntelligenceBlock, type IntelligenceBlockProps, type IntelligenceCapability, type IntelligenceMetric, type LeadProfile, type LeadProfileState, LeadProfileView, type LeadProfileViewProps, LocaleDropdown, type LocaleDropdownProps, type LocaleOption, Login, type LoginLabels, type LoginProps, LongFormLayout, type LongFormLayoutProps, type MBTIScore, MDXOutboundLink, type NavItem, NavPlacement, Navbar, NavbarActions, NavbarBrand, type NavbarBrandProps, NavbarContent, NavbarItem, type NavbarItemProps, NavbarMegaMenu, NavbarMegaMenuItem, type NavbarMegaMenuItemProps, type NavbarMegaMenuProps, NavbarMegaMenuSection, type NavbarMegaMenuSectionProps, NavbarMobileActions, NavbarMobileNavItem, type NavbarMobileNavItemProps, NavbarMobileSeparator, type NavbarProps, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarV2, NavbarV2Actions, NavbarV2Brand, type NavbarV2BrandProps, type NavbarV2Props, NavbarV2Tab, NavbarV2TabMenu, type NavbarV2TabMenuProps, type NavbarV2TabProps, NavbarV2Tabs, type OutboundClickEventDetail, OutboundLink, type OutboundLinkProps, type PartnerBenefit, type PartnerCalcInput, type PartnerCalcOutput, type PartnerDifferentiator, PartnerValueProp, type PartnerValuePropProps, ReadingProgress, type ReadingProgressProps, RevenueAutomationLoop, type RevenueAutomationLoopProps, SectionShellProps, type SeriesEdition, Shell, type ShellProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, Signup, type SignupLabels, type SignupProps, SiteFooter, type SiteFooterProps, SpotlightCard, type SpotlightCardProps, StarRating, type StarRatingProps, TabItem, type TabItemProps, ThemeSelector, type ThemeSelectorProps, UtmParams, VersionedSeriesNavigator, type VersionedSeriesNavigatorProps, VersionedUpgradeAlert, type VersionedUpgradeAlertProps, VideoLightbox, type VideoLightboxProps, VoidBackground, type VoidBackgroundProps, appendGovernedUTMs, appendUTMs, isExemptUrl };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, Acco
|
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import { S as SectionShellProps } from './index-B64suAAc.js';
|
|
6
6
|
export { A as AgitationPoint, a as AnnouncementBar, b as AnnouncementBarProps, c as ArchitectureConnection, d as ArchitectureDiagram, e as ArchitectureDiagramProps, f as ArchitectureNode, g as ArchitectureNodeType, h as ArticleCard, i as ArticleCardProps, j as ArticleLayout, k as ArticleLayoutProps, l as Author, m as AuthorBio, n as AuthorBioProps, o as AuthorLink, B as BeforeAfterBlock, p as BeforeAfterBlockProps, q as BeforeAfterItem, r as BeforeAfterSide, s as BookingEmbed, t as BookingEmbedProps, u as BrowserFrame, v as BrowserFrameProps, C as CTASection, w as CTASectionProps, x as CardMetric, y as CaseStudyCard, z as CaseStudyCardProps, D as CaseStudyMetric, E as CaseStudySection, F as CaseStudySectionProps, G as ComparisonColumn, H as ComparisonRow, I as ComparisonTable, J as ComparisonTableProps, K as CompetitorDiff, L as CompetitorDiffItem, M as CompetitorDiffProps, N as ComplianceGrid, O as ComplianceGridProps, P as ComplianceItem, Q as ComplianceStatus, R as ExitIntentOverlay, T as ExitIntentOverlayProps, U as FeatureItem, V as FeatureSection, W as FeatureSectionProps, X as GuaranteeHighlight, Y as GuaranteeHighlightProps, Z as HeroSection, _ as HeroSectionProps, $ as ICPFilter, a0 as ICPFilterItem, a1 as ICPFilterProps, a2 as IntegrationEntry, a3 as IntegrationShowcase, a4 as IntegrationShowcaseProps, a5 as IntentCTA, a6 as IntentCTAProps, a7 as IntentStage, a8 as IntentTriggerType, a9 as LeadCaptureForm, aa as LeadCaptureFormProps, ab as LogoItem, ac as ManifestoAttribution, ad as ManifestoBlock, ae as ManifestoBlockProps, af as Media, ag as MetricCounter, ah as MetricCounterProps, ai as MotionContainer, aj as MotionContainerProps, ak as MotionText, al as MotionTextProps, am as ObjectionFAQ, an as ObjectionFAQProps, ao as ObjectionItem, ap as Platform, aq as PlatformBadge, ar as PlatformBadgeProps, as as PricingCard, at as PricingCardProps, au as PricingFeature, av as PricingSection, aw as PricingSectionProps, ax as PricingToggle, ay as PricingToggleProps, az as ProblemAgitation, aA as ProblemAgitationProps, aB as ProcessTimeline, aC as ProcessTimelineProps, aD as ROICalculator, aE as ROICalculatorProps, aF as ROIComparisonItem, aG as RelatedContent, aH as RelatedContentProps, aI as SectionHeader, aJ as SectionHeaderProps, aK as SectionShell, aL as SecurityBlock, aM as SecurityBlockProps, aN as SecurityCertification, aO as SegmentSwitch, aP as SegmentSwitchProps, aQ as SocialProof, aR as SocialProofCard, aS as SocialProofCardProps, aT as SocialProofCarousel, aU as SocialProofCarouselProps, aV as SocialProofFeatured, aW as SocialProofFeaturedProps, aX as SocialProofGrid, aY as SocialProofGridProps, aZ as SocialProofLogos, a_ as SocialProofLogosProps, a$ as StakeholderContent, b0 as StakeholderDefinition, b1 as StakeholderTabs, b2 as StakeholderTabsProps, b3 as StatItem, b4 as StatsSection, b5 as StatsSectionProps, b6 as StickyActionBar, b7 as StickyActionBarProps, b8 as TOCItem, b9 as TableOfContents, ba as TableOfContentsProps, bb as TimelineStep, bc as ValueAnchor, bd as ValueAnchorInput, be as ValueAnchorOutput, bf as ValueAnchorProps, bg as VerticalVideoGrid, bh as VerticalVideoGridProps, bi as VideoEmbed, bj as VideoEmbedProps } from './index-B64suAAc.js';
|
|
7
|
+
import { U as UtmParams } from './audit-CiyPkxk1.js';
|
|
8
|
+
export { F as FirstTouchAttribution, a as UTM_CAMPAIGNS, b as UTM_CONTENTS, c as UTM_MEDIUMS_ALL, d as UTM_MEDIUMS_APP, e as UTM_MEDIUMS_MESSAGING, f as UTM_MEDIUMS_WEB, g as UTM_SOURCES, h as UTM_SOURCES_REQUIRING_SELLER, i as UTM_TERMS, j as UrlClassification, k as UtmAuditEntry, l as UtmBlockedError, m as UtmCampaign, n as UtmComplianceResult, o as UtmComplianceStatus, p as UtmConfidence, q as UtmContent, r as UtmMedium, s as UtmMediumAppPage, t as UtmMediumMessaging, u as UtmMediumWebPage, v as UtmOverrides, w as UtmSource, x as UtmSourceRequiringSeller, y as UtmTerm, z as buildBlockedError, A as buildUtmUrl, B as classifyAndEnforce, C as classifyUrl, D as createAuditEntry, E as isUtmExempt, G as isValidUtmParams, H as parseUtmParams, I as requiresSellerAttribution, J as requiresUtm, K as toFirstTouchAttribution, L as validateCompliance, M as validateUtmField } from './audit-CiyPkxk1.js';
|
|
7
9
|
export { FormattedDate, FormattedMessage, FormattedNumber, MessageDescriptor, defineMessages } from 'react-intl';
|
|
8
10
|
export { B as BarChart, d as BarChartProps, e as BarConfig, g as CaveatBlock, h as CaveatBlockProps, i as Chart, j as ChartContainer, k as ChartContainerProps, m as ChartDimension, p as ChartMeasure, r as ChartProps, s as ChartSwitchControl, t as ChartSwitchControlProps, E as ConfidenceIndicator, F as ConfidenceIndicatorProps, H as DataCoverageBadge, J as DataCoverageBadgeProps, K as DataStateIndicator, L as DataStateIndicatorProps, N as EvidenceGroup, O as EvidenceGroupProps, P as ExecutiveThesis, Q as ExecutiveThesisProps, S as ExportFormat, T as ExportMenu, U as ExportMenuProps, V as ExportOption, X as FunnelChart, Y as FunnelChartProps, Z as FunnelStage, $ as HeatmapCell, a0 as HeatmapChart, a1 as HeatmapChartProps, a3 as InsightBlock, a4 as InsightBlockProps, a5 as KeyMetric, a6 as KeyMetricProps, a7 as LineChart, a8 as LineChartProps, a9 as LineConfig, aa as MBTIDimensions, ab as MBTIRadar, ac as MBTIRadarProps, ae as MBTITypeCount, af as MBTITypeGrid, ag as MBTITypeGridProps, ah as MethodologyNote, ai as MethodologyNoteLabels, aj as MethodologyNoteProps, ak as PieChart, al as PieChartDataItem, am as PieChartProps, ao as ReportShell, ap as ReportShellProps, aq as Select, ar as SelectContent, as as SelectContentProps, at as SelectGroup, au as SelectGroupProps, av as SelectItem, aw as SelectItemProps, ax as SelectProps, ay as SelectSeparator, az as SelectTrigger, aA as SelectTriggerProps, aD as TrendIndicator, aE as TrendIndicatorProps } from './ExportMenu-hEe5MhLq.js';
|
|
9
11
|
import '@base-ui/react';
|
|
@@ -451,6 +453,14 @@ interface OutboundLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
|
451
453
|
preserveExistingUTM?: boolean;
|
|
452
454
|
openInNewTab?: boolean;
|
|
453
455
|
disableTracking?: boolean;
|
|
456
|
+
/**
|
|
457
|
+
* Governed UTM parameters. When provided, the link uses the UTM governance
|
|
458
|
+
* system (buildUtmUrl) instead of the legacy appendUTMs approach.
|
|
459
|
+
*
|
|
460
|
+
* Preferred for all new code. Existing usages without utmParams continue
|
|
461
|
+
* to work via the legacy path.
|
|
462
|
+
*/
|
|
463
|
+
utmParams?: UtmParams;
|
|
454
464
|
children: React__default.ReactNode;
|
|
455
465
|
}
|
|
456
466
|
interface OutboundClickEventDetail {
|
|
@@ -464,7 +474,26 @@ interface OutboundClickEventDetail {
|
|
|
464
474
|
}
|
|
465
475
|
declare const OutboundLink: React__default.ForwardRefExoticComponent<OutboundLinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
466
476
|
|
|
477
|
+
/**
|
|
478
|
+
* Check if a URL is exempt from UTM tagging.
|
|
479
|
+
* Uses both legacy patterns and governed URL classification.
|
|
480
|
+
*/
|
|
467
481
|
declare const isExemptUrl: (urlStr: string) => boolean;
|
|
482
|
+
/**
|
|
483
|
+
* Append governed UTM parameters to a URL using `buildUtmUrl`.
|
|
484
|
+
* Preferred over the legacy `appendUTMs` function.
|
|
485
|
+
*/
|
|
486
|
+
declare const appendGovernedUTMs: (href: string, params: UtmParams, preserveExisting?: boolean) => string;
|
|
487
|
+
/**
|
|
488
|
+
* @deprecated Prefer `appendGovernedUTMs` with governed `UtmParams`.
|
|
489
|
+
*
|
|
490
|
+
* Legacy UTM append function. Uses non-governed defaults:
|
|
491
|
+
* - utm_source = 'salesmind' (not in governed enum)
|
|
492
|
+
* - utm_medium = 'outbound_link' (snake_case, not in governed enum)
|
|
493
|
+
*
|
|
494
|
+
* Retained for backward compatibility. Consumers should migrate to
|
|
495
|
+
* the `utmParams` prop on OutboundLink.
|
|
496
|
+
*/
|
|
468
497
|
declare const appendUTMs: (href: string, context: string, pageSlug: string, options: {
|
|
469
498
|
mediumOverride?: string;
|
|
470
499
|
campaignOverride?: string;
|
|
@@ -1298,4 +1327,4 @@ interface FunnelScalingSenderProps {
|
|
|
1298
1327
|
}
|
|
1299
1328
|
declare const FunnelScalingSender: React__default.FC<FunnelScalingSenderProps>;
|
|
1300
1329
|
|
|
1301
|
-
export { type AnalysisProgress, type BehavioralSignals, ChangeEmail, type ChangeEmailLabels, type ChangeEmailProps, ColorPicker, type ColorPickerProps, CursorSpotlight, type CursorSpotlightProps, DataHighlight, type DataHighlightProps, DataTable, DataTableBody, DataTableCell, DataTableHead, DataTableHeader, type DataTableProps, DataTableRow, type EcosystemConnection, EcosystemDiagram, type EcosystemDiagramProps, type EcosystemLayer, type EngagementTip, type EnterpriseSLA, type EnterpriseSignalCategory, type EnterpriseSignalItem, type EnterpriseSignalStatus, EnterpriseSignaling, type EnterpriseSignalingProps, type EraSentiment, type EvolutionEra, EvolutionTimeline, type EvolutionTimelineProps, FloatingTabBar, type FloatingTabBarProps, type FooterCTA, type FooterLink, type FooterSection, type FooterTrustBadge, ForgotPassword, type ForgotPasswordLabels, type ForgotPasswordProps, FunnelScalingSender, type FunnelScalingSenderProps, InsightCallout, type InsightCalloutProps, IntelligenceBlock, type IntelligenceBlockProps, type IntelligenceCapability, type IntelligenceMetric, type LeadProfile, type LeadProfileState, LeadProfileView, type LeadProfileViewProps, LocaleDropdown, type LocaleDropdownProps, type LocaleOption, Login, type LoginLabels, type LoginProps, LongFormLayout, type LongFormLayoutProps, type MBTIScore, MDXOutboundLink, type NavItem, NavPlacement, Navbar, NavbarActions, NavbarBrand, type NavbarBrandProps, NavbarContent, NavbarItem, type NavbarItemProps, NavbarMegaMenu, NavbarMegaMenuItem, type NavbarMegaMenuItemProps, type NavbarMegaMenuProps, NavbarMegaMenuSection, type NavbarMegaMenuSectionProps, NavbarMobileActions, NavbarMobileNavItem, type NavbarMobileNavItemProps, NavbarMobileSeparator, type NavbarProps, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarV2, NavbarV2Actions, NavbarV2Brand, type NavbarV2BrandProps, type NavbarV2Props, NavbarV2Tab, NavbarV2TabMenu, type NavbarV2TabMenuProps, type NavbarV2TabProps, NavbarV2Tabs, type OutboundClickEventDetail, OutboundLink, type OutboundLinkProps, type PartnerBenefit, type PartnerCalcInput, type PartnerCalcOutput, type PartnerDifferentiator, PartnerValueProp, type PartnerValuePropProps, ReadingProgress, type ReadingProgressProps, RevenueAutomationLoop, type RevenueAutomationLoopProps, SectionShellProps, type SeriesEdition, Shell, type ShellProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, Signup, type SignupLabels, type SignupProps, SiteFooter, type SiteFooterProps, SpotlightCard, type SpotlightCardProps, StarRating, type StarRatingProps, TabItem, type TabItemProps, ThemeSelector, type ThemeSelectorProps, VersionedSeriesNavigator, type VersionedSeriesNavigatorProps, VersionedUpgradeAlert, type VersionedUpgradeAlertProps, VideoLightbox, type VideoLightboxProps, VoidBackground, type VoidBackgroundProps, appendUTMs, isExemptUrl };
|
|
1330
|
+
export { type AnalysisProgress, type BehavioralSignals, ChangeEmail, type ChangeEmailLabels, type ChangeEmailProps, ColorPicker, type ColorPickerProps, CursorSpotlight, type CursorSpotlightProps, DataHighlight, type DataHighlightProps, DataTable, DataTableBody, DataTableCell, DataTableHead, DataTableHeader, type DataTableProps, DataTableRow, type EcosystemConnection, EcosystemDiagram, type EcosystemDiagramProps, type EcosystemLayer, type EngagementTip, type EnterpriseSLA, type EnterpriseSignalCategory, type EnterpriseSignalItem, type EnterpriseSignalStatus, EnterpriseSignaling, type EnterpriseSignalingProps, type EraSentiment, type EvolutionEra, EvolutionTimeline, type EvolutionTimelineProps, FloatingTabBar, type FloatingTabBarProps, type FooterCTA, type FooterLink, type FooterSection, type FooterTrustBadge, ForgotPassword, type ForgotPasswordLabels, type ForgotPasswordProps, FunnelScalingSender, type FunnelScalingSenderProps, InsightCallout, type InsightCalloutProps, IntelligenceBlock, type IntelligenceBlockProps, type IntelligenceCapability, type IntelligenceMetric, type LeadProfile, type LeadProfileState, LeadProfileView, type LeadProfileViewProps, LocaleDropdown, type LocaleDropdownProps, type LocaleOption, Login, type LoginLabels, type LoginProps, LongFormLayout, type LongFormLayoutProps, type MBTIScore, MDXOutboundLink, type NavItem, NavPlacement, Navbar, NavbarActions, NavbarBrand, type NavbarBrandProps, NavbarContent, NavbarItem, type NavbarItemProps, NavbarMegaMenu, NavbarMegaMenuItem, type NavbarMegaMenuItemProps, type NavbarMegaMenuProps, NavbarMegaMenuSection, type NavbarMegaMenuSectionProps, NavbarMobileActions, NavbarMobileNavItem, type NavbarMobileNavItemProps, NavbarMobileSeparator, type NavbarProps, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarV2, NavbarV2Actions, NavbarV2Brand, type NavbarV2BrandProps, type NavbarV2Props, NavbarV2Tab, NavbarV2TabMenu, type NavbarV2TabMenuProps, type NavbarV2TabProps, NavbarV2Tabs, type OutboundClickEventDetail, OutboundLink, type OutboundLinkProps, type PartnerBenefit, type PartnerCalcInput, type PartnerCalcOutput, type PartnerDifferentiator, PartnerValueProp, type PartnerValuePropProps, ReadingProgress, type ReadingProgressProps, RevenueAutomationLoop, type RevenueAutomationLoopProps, SectionShellProps, type SeriesEdition, Shell, type ShellProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, Signup, type SignupLabels, type SignupProps, SiteFooter, type SiteFooterProps, SpotlightCard, type SpotlightCardProps, StarRating, type StarRatingProps, TabItem, type TabItemProps, ThemeSelector, type ThemeSelectorProps, UtmParams, VersionedSeriesNavigator, type VersionedSeriesNavigatorProps, VersionedUpgradeAlert, type VersionedUpgradeAlertProps, VideoLightbox, type VideoLightboxProps, VoidBackground, type VoidBackgroundProps, appendGovernedUTMs, appendUTMs, isExemptUrl };
|
package/dist/index.js
CHANGED
|
@@ -4043,23 +4043,146 @@ var PlatformBadge = forwardRef(
|
|
|
4043
4043
|
}
|
|
4044
4044
|
);
|
|
4045
4045
|
PlatformBadge.displayName = "PlatformBadge";
|
|
4046
|
+
var UtmContext = createContext(null);
|
|
4047
|
+
|
|
4048
|
+
// src/web/utm/useUtmDefaults.ts
|
|
4049
|
+
function useUtmDefaults() {
|
|
4050
|
+
return useContext(UtmContext);
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4053
|
+
// src/web/utm/builders.ts
|
|
4054
|
+
var PLACEHOLDER_ORIGIN = "https://__placeholder__.internal";
|
|
4055
|
+
function buildUtmUrl(baseUrl, params) {
|
|
4056
|
+
const isRelative = baseUrl.startsWith("/");
|
|
4057
|
+
let url;
|
|
4058
|
+
try {
|
|
4059
|
+
url = isRelative ? new URL(baseUrl, PLACEHOLDER_ORIGIN) : new URL(baseUrl);
|
|
4060
|
+
} catch {
|
|
4061
|
+
return baseUrl;
|
|
4062
|
+
}
|
|
4063
|
+
const existingParams = [];
|
|
4064
|
+
url.searchParams.forEach((value, key) => {
|
|
4065
|
+
existingParams.push([key, value]);
|
|
4066
|
+
});
|
|
4067
|
+
for (const [key] of existingParams) {
|
|
4068
|
+
url.searchParams.delete(key);
|
|
4069
|
+
}
|
|
4070
|
+
for (const [key, value] of existingParams) {
|
|
4071
|
+
if (!key.startsWith("utm_")) {
|
|
4072
|
+
url.searchParams.set(key, value);
|
|
4073
|
+
}
|
|
4074
|
+
}
|
|
4075
|
+
url.searchParams.set("utm_source", params.source);
|
|
4076
|
+
url.searchParams.set("utm_medium", params.medium);
|
|
4077
|
+
url.searchParams.set("utm_campaign", params.campaign);
|
|
4078
|
+
if (params.term !== void 0) {
|
|
4079
|
+
url.searchParams.set("utm_term", params.term);
|
|
4080
|
+
}
|
|
4081
|
+
if (params.content !== void 0) {
|
|
4082
|
+
url.searchParams.set("utm_content", params.content);
|
|
4083
|
+
}
|
|
4084
|
+
if (isRelative) {
|
|
4085
|
+
return url.href.replace(PLACEHOLDER_ORIGIN, "");
|
|
4086
|
+
}
|
|
4087
|
+
return url.href;
|
|
4088
|
+
}
|
|
4089
|
+
|
|
4090
|
+
// src/web/utm/classifiers.ts
|
|
4091
|
+
var INTERNAL_PATTERNS = [
|
|
4092
|
+
/^\/(?!\/)/,
|
|
4093
|
+
// Relative paths
|
|
4094
|
+
/^https?:\/\/(www\.)?sales-mind\.ai/i,
|
|
4095
|
+
// Marketing site
|
|
4096
|
+
/^https?:\/\/app\.sales-mind\.ai/i,
|
|
4097
|
+
// Web app
|
|
4098
|
+
/^https?:\/\/apps\.sales-mind\.ai/i,
|
|
4099
|
+
// Web app (legacy)
|
|
4100
|
+
/^https?:\/\/meet\.sales-mind\.ai/i,
|
|
4101
|
+
// Booking
|
|
4102
|
+
/^https?:\/\/docs\.sales-mind\.ai/i
|
|
4103
|
+
// Docs
|
|
4104
|
+
];
|
|
4105
|
+
var SYSTEM_PATTERNS = [
|
|
4106
|
+
/^https?:\/\/.*\/api\//i,
|
|
4107
|
+
// API endpoints
|
|
4108
|
+
/^https?:\/\/.*\/webhook/i,
|
|
4109
|
+
// Webhooks
|
|
4110
|
+
/^https?:\/\/.*\/oauth/i,
|
|
4111
|
+
// OAuth callbacks
|
|
4112
|
+
/^https?:\/\/.*\/callback/i,
|
|
4113
|
+
// Callbacks
|
|
4114
|
+
/^https?:\/\/.*\.supabase\.(co|com)/i,
|
|
4115
|
+
// Supabase
|
|
4116
|
+
/^https?:\/\/.*\.firebaseapp\.com/i,
|
|
4117
|
+
// Firebase
|
|
4118
|
+
/^https?:\/\/.*\.cloudfunctions\.net/i
|
|
4119
|
+
// Cloud Functions
|
|
4120
|
+
];
|
|
4121
|
+
var ASSET_PATTERNS = [
|
|
4122
|
+
/\.(css|js|mjs|map|woff2?|ttf|eot|svg|png|jpe?g|gif|webp|avif|ico|pdf)(\?.*)?$/i
|
|
4123
|
+
];
|
|
4124
|
+
var CONVERSION_PATTERNS = [
|
|
4125
|
+
/^https?:\/\/(www\.)?calendly\.com/i,
|
|
4126
|
+
/^https?:\/\/(checkout\.)?stripe\.com/i,
|
|
4127
|
+
/^https?:\/\/buy\.stripe\.com/i,
|
|
4128
|
+
/^https?:\/\/chromewebstore\.google\.com/i,
|
|
4129
|
+
/^https?:\/\/meet\.sales-mind\.ai/i
|
|
4130
|
+
];
|
|
4131
|
+
var PROTOCOL_EXEMPT = [
|
|
4132
|
+
/^mailto:/i,
|
|
4133
|
+
/^tel:/i,
|
|
4134
|
+
/^#/,
|
|
4135
|
+
/^javascript:/i
|
|
4136
|
+
];
|
|
4137
|
+
function classifyUrl(url) {
|
|
4138
|
+
if (PROTOCOL_EXEMPT.some((p) => p.test(url))) return "protocol";
|
|
4139
|
+
if (ASSET_PATTERNS.some((p) => p.test(url))) return "asset";
|
|
4140
|
+
if (SYSTEM_PATTERNS.some((p) => p.test(url))) return "system";
|
|
4141
|
+
if (CONVERSION_PATTERNS.some((p) => p.test(url))) return "conversion";
|
|
4142
|
+
if (INTERNAL_PATTERNS.some((p) => p.test(url))) return "internal";
|
|
4143
|
+
return "external";
|
|
4144
|
+
}
|
|
4145
|
+
function requiresUtm(url) {
|
|
4146
|
+
const classification = classifyUrl(url);
|
|
4147
|
+
return classification === "external" || classification === "conversion";
|
|
4148
|
+
}
|
|
4149
|
+
function isUtmExempt(url) {
|
|
4150
|
+
const classification = classifyUrl(url);
|
|
4151
|
+
return classification === "protocol" || classification === "asset" || classification === "system" || classification === "internal";
|
|
4152
|
+
}
|
|
4046
4153
|
|
|
4047
4154
|
// src/components/OutboundLink/outbound-link-utils.ts
|
|
4048
|
-
var
|
|
4155
|
+
var LEGACY_UTM_SOURCE = "salesmind";
|
|
4049
4156
|
var EXEMPT_PATTERNS = [
|
|
4050
4157
|
/^https?:\/\/(www\.)?(stripe\.com|checkout\.stripe\.com|paypal\.com)/i,
|
|
4051
4158
|
/^https?:\/\/(www\.)?github\.com\/login\/oauth/i
|
|
4052
4159
|
];
|
|
4053
4160
|
var isExemptUrl = (urlStr) => {
|
|
4054
4161
|
if (urlStr.startsWith("mailto:") || urlStr.startsWith("tel:")) return true;
|
|
4162
|
+
const classification = classifyUrl(urlStr);
|
|
4163
|
+
if (classification === "system" || classification === "protocol" || classification === "asset") {
|
|
4164
|
+
return true;
|
|
4165
|
+
}
|
|
4055
4166
|
return EXEMPT_PATTERNS.some((pattern) => pattern.test(urlStr));
|
|
4056
4167
|
};
|
|
4168
|
+
var appendGovernedUTMs = (href, params, preserveExisting = true) => {
|
|
4169
|
+
try {
|
|
4170
|
+
const url = new URL(href);
|
|
4171
|
+
if (preserveExisting) {
|
|
4172
|
+
const hasAll = url.searchParams.has("utm_source") && url.searchParams.has("utm_medium") && url.searchParams.has("utm_campaign");
|
|
4173
|
+
if (hasAll) return href;
|
|
4174
|
+
}
|
|
4175
|
+
return buildUtmUrl(href, params);
|
|
4176
|
+
} catch {
|
|
4177
|
+
return href;
|
|
4178
|
+
}
|
|
4179
|
+
};
|
|
4057
4180
|
var appendUTMs = (href, context, pageSlug, options) => {
|
|
4058
4181
|
try {
|
|
4059
4182
|
const url = new URL(href);
|
|
4060
4183
|
const { mediumOverride = "outbound_link", campaignOverride, preserveExisting = true } = options;
|
|
4061
4184
|
const utms = {
|
|
4062
|
-
utm_source:
|
|
4185
|
+
utm_source: LEGACY_UTM_SOURCE,
|
|
4063
4186
|
utm_medium: mediumOverride,
|
|
4064
4187
|
utm_campaign: campaignOverride || pageSlug,
|
|
4065
4188
|
utm_content: context
|
|
@@ -4086,10 +4209,13 @@ var OutboundLink = forwardRef(
|
|
|
4086
4209
|
preserveExistingUTM = true,
|
|
4087
4210
|
openInNewTab = true,
|
|
4088
4211
|
disableTracking = false,
|
|
4212
|
+
utmParams,
|
|
4089
4213
|
onClick,
|
|
4090
4214
|
children,
|
|
4091
4215
|
...props
|
|
4092
4216
|
}, ref) => {
|
|
4217
|
+
const contextParams = useUtmDefaults();
|
|
4218
|
+
const resolvedUtmParams = utmParams ?? contextParams;
|
|
4093
4219
|
let hostname = "";
|
|
4094
4220
|
try {
|
|
4095
4221
|
const url = new URL(href);
|
|
@@ -4114,16 +4240,20 @@ var OutboundLink = forwardRef(
|
|
|
4114
4240
|
}
|
|
4115
4241
|
const isExempt = isExemptUrl(href) || disableTracking;
|
|
4116
4242
|
if (isExternal && !isExempt) {
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4243
|
+
if (resolvedUtmParams) {
|
|
4244
|
+
setFinalHref(appendGovernedUTMs(href, resolvedUtmParams, preserveExistingUTM));
|
|
4245
|
+
} else {
|
|
4246
|
+
const pageSlug = window.location.pathname.replace(/^\/|\/$/g, "") || "home";
|
|
4247
|
+
setFinalHref(appendUTMs(href, context, pageSlug, {
|
|
4248
|
+
mediumOverride: currentMedium,
|
|
4249
|
+
campaignOverride,
|
|
4250
|
+
preserveExisting: preserveExistingUTM
|
|
4251
|
+
}));
|
|
4252
|
+
}
|
|
4123
4253
|
} else {
|
|
4124
4254
|
setFinalHref(href);
|
|
4125
4255
|
}
|
|
4126
|
-
}, [href, context, mediumOverride, campaignOverride, preserveExistingUTM, disableTracking]);
|
|
4256
|
+
}, [href, context, mediumOverride, campaignOverride, preserveExistingUTM, disableTracking, resolvedUtmParams]);
|
|
4127
4257
|
const handleClick = (e) => {
|
|
4128
4258
|
if (typeof window === "undefined" || disableTracking) {
|
|
4129
4259
|
onClick?.(e);
|
|
@@ -4396,17 +4526,6 @@ var LogoItemRender = ({ item, className }) => {
|
|
|
4396
4526
|
] });
|
|
4397
4527
|
if (item.href) {
|
|
4398
4528
|
const isInternal = item.href.startsWith("/");
|
|
4399
|
-
if (isInternal) {
|
|
4400
|
-
return /* @__PURE__ */ jsx(
|
|
4401
|
-
"a",
|
|
4402
|
-
{
|
|
4403
|
-
href: item.href,
|
|
4404
|
-
className: clsx44("ds-social-logos__item", className),
|
|
4405
|
-
title: item.alt,
|
|
4406
|
-
children: innerContent
|
|
4407
|
-
}
|
|
4408
|
-
);
|
|
4409
|
-
}
|
|
4410
4529
|
return /* @__PURE__ */ jsx(
|
|
4411
4530
|
OutboundLink,
|
|
4412
4531
|
{
|
|
@@ -4414,6 +4533,7 @@ var LogoItemRender = ({ item, className }) => {
|
|
|
4414
4533
|
context: "social-proof-logo",
|
|
4415
4534
|
className: clsx44("ds-social-logos__item", className),
|
|
4416
4535
|
title: item.alt,
|
|
4536
|
+
openInNewTab: !isInternal,
|
|
4417
4537
|
children: innerContent
|
|
4418
4538
|
}
|
|
4419
4539
|
);
|
|
@@ -16695,6 +16815,265 @@ function JsonIcon() {
|
|
|
16695
16815
|
);
|
|
16696
16816
|
}
|
|
16697
16817
|
|
|
16698
|
-
|
|
16818
|
+
// src/web/utm/constants.ts
|
|
16819
|
+
var UTM_SOURCES = [
|
|
16820
|
+
"linkedin",
|
|
16821
|
+
"whatsapp",
|
|
16822
|
+
"intercom",
|
|
16823
|
+
"email",
|
|
16824
|
+
"website",
|
|
16825
|
+
"app",
|
|
16826
|
+
"chromeStore",
|
|
16827
|
+
"stripe",
|
|
16828
|
+
"direct"
|
|
16829
|
+
];
|
|
16830
|
+
var UTM_MEDIUMS_MESSAGING = [
|
|
16831
|
+
"dm",
|
|
16832
|
+
"group",
|
|
16833
|
+
"email",
|
|
16834
|
+
"inAppChat",
|
|
16835
|
+
"organicPost",
|
|
16836
|
+
"paidAd",
|
|
16837
|
+
"qrCode",
|
|
16838
|
+
"redirect",
|
|
16839
|
+
"storeListing"
|
|
16840
|
+
];
|
|
16841
|
+
var UTM_MEDIUMS_APP = [
|
|
16842
|
+
"appHome",
|
|
16843
|
+
"appDashboard",
|
|
16844
|
+
"appInbox",
|
|
16845
|
+
"appContacts",
|
|
16846
|
+
"appCampaigns",
|
|
16847
|
+
"appSettings",
|
|
16848
|
+
"appBilling",
|
|
16849
|
+
"appCheckout",
|
|
16850
|
+
"appOnboarding",
|
|
16851
|
+
"appSupport",
|
|
16852
|
+
"appCalendar"
|
|
16853
|
+
];
|
|
16854
|
+
var UTM_MEDIUMS_WEB = [
|
|
16855
|
+
"webHome",
|
|
16856
|
+
"webDemo",
|
|
16857
|
+
"webPricing",
|
|
16858
|
+
"webFeatures",
|
|
16859
|
+
"webUseCase",
|
|
16860
|
+
"webSolution",
|
|
16861
|
+
"webIndustry",
|
|
16862
|
+
"webIntegrations",
|
|
16863
|
+
"webBlog",
|
|
16864
|
+
"webBlogPost",
|
|
16865
|
+
"webLanding",
|
|
16866
|
+
"webComparison",
|
|
16867
|
+
"webCaseStudy",
|
|
16868
|
+
"webAbout",
|
|
16869
|
+
"webContact",
|
|
16870
|
+
"webCareers",
|
|
16871
|
+
"webLegal",
|
|
16872
|
+
"webDocs",
|
|
16873
|
+
"webAffiliate"
|
|
16874
|
+
];
|
|
16875
|
+
var UTM_MEDIUMS_ALL = [
|
|
16876
|
+
...UTM_MEDIUMS_MESSAGING,
|
|
16877
|
+
...UTM_MEDIUMS_APP,
|
|
16878
|
+
...UTM_MEDIUMS_WEB
|
|
16879
|
+
];
|
|
16880
|
+
var UTM_CAMPAIGNS = [
|
|
16881
|
+
"discoveryCall",
|
|
16882
|
+
"demo",
|
|
16883
|
+
"trial",
|
|
16884
|
+
"onboarding",
|
|
16885
|
+
"upgrade",
|
|
16886
|
+
"renewal",
|
|
16887
|
+
"retention",
|
|
16888
|
+
"accountSupport",
|
|
16889
|
+
"supportCall",
|
|
16890
|
+
"partnerCall",
|
|
16891
|
+
"hiring",
|
|
16892
|
+
"interviewCall"
|
|
16893
|
+
];
|
|
16894
|
+
var UTM_TERMS = [
|
|
16895
|
+
"julienGadea",
|
|
16896
|
+
"bramSmith",
|
|
16897
|
+
"florentDupont",
|
|
16898
|
+
"sawLin",
|
|
16899
|
+
"evaSupport",
|
|
16900
|
+
"team",
|
|
16901
|
+
"auto"
|
|
16902
|
+
];
|
|
16903
|
+
var UTM_CONTENTS = [
|
|
16904
|
+
"ctaPrimary",
|
|
16905
|
+
"ctaSecondary",
|
|
16906
|
+
"ctaHeader",
|
|
16907
|
+
"ctaFooter",
|
|
16908
|
+
"ctaInline",
|
|
16909
|
+
"buttonPrimary",
|
|
16910
|
+
"buttonSecondary",
|
|
16911
|
+
"banner",
|
|
16912
|
+
"popup",
|
|
16913
|
+
"variantA",
|
|
16914
|
+
"variantB",
|
|
16915
|
+
"variantC"
|
|
16916
|
+
];
|
|
16917
|
+
var UTM_SOURCES_REQUIRING_SELLER = [
|
|
16918
|
+
"linkedin",
|
|
16919
|
+
"whatsapp",
|
|
16920
|
+
"intercom",
|
|
16921
|
+
"email"
|
|
16922
|
+
];
|
|
16923
|
+
|
|
16924
|
+
// src/web/utm/validators.ts
|
|
16925
|
+
function validateUtmField(field, value) {
|
|
16926
|
+
switch (field) {
|
|
16927
|
+
case "source":
|
|
16928
|
+
return UTM_SOURCES.includes(value);
|
|
16929
|
+
case "medium":
|
|
16930
|
+
return UTM_MEDIUMS_ALL.includes(value);
|
|
16931
|
+
case "campaign":
|
|
16932
|
+
return UTM_CAMPAIGNS.includes(value);
|
|
16933
|
+
case "term":
|
|
16934
|
+
return UTM_TERMS.includes(value);
|
|
16935
|
+
case "content":
|
|
16936
|
+
return UTM_CONTENTS.includes(value);
|
|
16937
|
+
default:
|
|
16938
|
+
return false;
|
|
16939
|
+
}
|
|
16940
|
+
}
|
|
16941
|
+
function isValidUtmParams(params) {
|
|
16942
|
+
if (!params.source || !params.medium || !params.campaign) {
|
|
16943
|
+
return false;
|
|
16944
|
+
}
|
|
16945
|
+
if (!validateUtmField("source", params.source)) return false;
|
|
16946
|
+
if (!validateUtmField("medium", params.medium)) return false;
|
|
16947
|
+
if (!validateUtmField("campaign", params.campaign)) return false;
|
|
16948
|
+
if (params.term !== void 0 && !validateUtmField("term", params.term)) return false;
|
|
16949
|
+
if (params.content !== void 0 && !validateUtmField("content", params.content)) return false;
|
|
16950
|
+
return true;
|
|
16951
|
+
}
|
|
16952
|
+
function validateCompliance(url, params) {
|
|
16953
|
+
const errors = [];
|
|
16954
|
+
const classification = classifyUrl(url);
|
|
16955
|
+
const needsUtm = requiresUtm(url);
|
|
16956
|
+
if (!needsUtm) {
|
|
16957
|
+
return {
|
|
16958
|
+
status: "compliant",
|
|
16959
|
+
url,
|
|
16960
|
+
params: params ?? null,
|
|
16961
|
+
errors: []
|
|
16962
|
+
};
|
|
16963
|
+
}
|
|
16964
|
+
if (!params) {
|
|
16965
|
+
return {
|
|
16966
|
+
status: "blocked",
|
|
16967
|
+
url,
|
|
16968
|
+
params: null,
|
|
16969
|
+
errors: [`URL classified as '${classification}' requires UTM parameters but none provided`]
|
|
16970
|
+
};
|
|
16971
|
+
}
|
|
16972
|
+
if (!params.source) errors.push("Missing required field: utm_source");
|
|
16973
|
+
if (!params.medium) errors.push("Missing required field: utm_medium");
|
|
16974
|
+
if (!params.campaign) errors.push("Missing required field: utm_campaign");
|
|
16975
|
+
if (params.source && !validateUtmField("source", params.source)) {
|
|
16976
|
+
errors.push(`Invalid utm_source: '${params.source}'. Must be one of: ${UTM_SOURCES.join(", ")}`);
|
|
16977
|
+
}
|
|
16978
|
+
if (params.medium && !validateUtmField("medium", params.medium)) {
|
|
16979
|
+
errors.push(`Invalid utm_medium: '${params.medium}'. Must be one of governed enum values`);
|
|
16980
|
+
}
|
|
16981
|
+
if (params.campaign && !validateUtmField("campaign", params.campaign)) {
|
|
16982
|
+
errors.push(`Invalid utm_campaign: '${params.campaign}'. Must be one of: ${UTM_CAMPAIGNS.join(", ")}`);
|
|
16983
|
+
}
|
|
16984
|
+
if (params.term !== void 0 && params.term && !validateUtmField("term", params.term)) {
|
|
16985
|
+
errors.push(`Invalid utm_term: '${params.term}'. Must be one of: ${UTM_TERMS.join(", ")}`);
|
|
16986
|
+
}
|
|
16987
|
+
if (params.content !== void 0 && params.content && !validateUtmField("content", params.content)) {
|
|
16988
|
+
errors.push(`Invalid utm_content: '${params.content}'. Must be one of: ${UTM_CONTENTS.join(", ")}`);
|
|
16989
|
+
}
|
|
16990
|
+
const allValues = [];
|
|
16991
|
+
if (params.source) allValues.push(params.source);
|
|
16992
|
+
if (params.medium) allValues.push(params.medium);
|
|
16993
|
+
if (params.campaign) allValues.push(params.campaign);
|
|
16994
|
+
if (params.term) allValues.push(params.term);
|
|
16995
|
+
if (params.content) allValues.push(params.content);
|
|
16996
|
+
for (const value of allValues) {
|
|
16997
|
+
if (/\s/.test(value)) errors.push(`Value '${value}' contains spaces`);
|
|
16998
|
+
if (/_/.test(value)) errors.push(`Value '${value}' contains underscores`);
|
|
16999
|
+
if (/-/.test(value)) errors.push(`Value '${value}' contains hyphens`);
|
|
17000
|
+
if (/[^\x20-\x7E]/.test(value)) errors.push(`Value '${value}' contains non-ASCII characters`);
|
|
17001
|
+
if (value === value.toUpperCase() && value.length > 1) errors.push(`Value '${value}' is ALL CAPS`);
|
|
17002
|
+
}
|
|
17003
|
+
const status = errors.length === 0 ? "compliant" : "blocked";
|
|
17004
|
+
return { status, url, params, errors };
|
|
17005
|
+
}
|
|
17006
|
+
function classifyAndEnforce(url, params) {
|
|
17007
|
+
return validateCompliance(url, params);
|
|
17008
|
+
}
|
|
17009
|
+
function buildBlockedError(reason, url) {
|
|
17010
|
+
return {
|
|
17011
|
+
status: "UTM_COMPLIANCE_BLOCKED",
|
|
17012
|
+
reason,
|
|
17013
|
+
requiredFix: reason,
|
|
17014
|
+
correctedExample: url ?? null
|
|
17015
|
+
};
|
|
17016
|
+
}
|
|
17017
|
+
|
|
17018
|
+
// src/web/utm/attribution.ts
|
|
17019
|
+
function parseUtmParams(search) {
|
|
17020
|
+
if (!search) return {};
|
|
17021
|
+
const params = new URLSearchParams(search);
|
|
17022
|
+
const result = {};
|
|
17023
|
+
const source = params.get("utm_source");
|
|
17024
|
+
if (source && UTM_SOURCES.includes(source)) {
|
|
17025
|
+
result.source = source;
|
|
17026
|
+
}
|
|
17027
|
+
const medium = params.get("utm_medium");
|
|
17028
|
+
if (medium) {
|
|
17029
|
+
result.medium = medium;
|
|
17030
|
+
}
|
|
17031
|
+
const campaign = params.get("utm_campaign");
|
|
17032
|
+
if (campaign && UTM_CAMPAIGNS.includes(campaign)) {
|
|
17033
|
+
result.campaign = campaign;
|
|
17034
|
+
}
|
|
17035
|
+
const term = params.get("utm_term");
|
|
17036
|
+
if (term && UTM_TERMS.includes(term)) {
|
|
17037
|
+
result.term = term;
|
|
17038
|
+
}
|
|
17039
|
+
const content = params.get("utm_content");
|
|
17040
|
+
if (content && UTM_CONTENTS.includes(content)) {
|
|
17041
|
+
result.content = content;
|
|
17042
|
+
}
|
|
17043
|
+
return result;
|
|
17044
|
+
}
|
|
17045
|
+
function toFirstTouchAttribution(params) {
|
|
17046
|
+
return {
|
|
17047
|
+
firstTouchSource: params.source,
|
|
17048
|
+
firstTouchMedium: params.medium,
|
|
17049
|
+
firstTouchCampaign: params.campaign,
|
|
17050
|
+
firstTouchSeller: params.term ?? null
|
|
17051
|
+
};
|
|
17052
|
+
}
|
|
17053
|
+
function requiresSellerAttribution(source) {
|
|
17054
|
+
return UTM_SOURCES_REQUIRING_SELLER.includes(source);
|
|
17055
|
+
}
|
|
17056
|
+
|
|
17057
|
+
// src/web/utm/audit.ts
|
|
17058
|
+
function createAuditEntry(url, params, generatorContext, confidence) {
|
|
17059
|
+
const utmParts = [];
|
|
17060
|
+
if (params) {
|
|
17061
|
+
if (params.source) utmParts.push(`utm_source=${params.source}`);
|
|
17062
|
+
if (params.medium) utmParts.push(`utm_medium=${params.medium}`);
|
|
17063
|
+
if (params.campaign) utmParts.push(`utm_campaign=${params.campaign}`);
|
|
17064
|
+
if (params.term) utmParts.push(`utm_term=${params.term}`);
|
|
17065
|
+
if (params.content) utmParts.push(`utm_content=${params.content}`);
|
|
17066
|
+
}
|
|
17067
|
+
return {
|
|
17068
|
+
url,
|
|
17069
|
+
utmString: utmParts.join("&"),
|
|
17070
|
+
generatorContext,
|
|
17071
|
+
sellerAttribution: params?.term ?? null,
|
|
17072
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
17073
|
+
confidence
|
|
17074
|
+
};
|
|
17075
|
+
}
|
|
17076
|
+
|
|
17077
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AnnouncementBar, AppearancePanel, AppearanceProvider, ArchitectureDiagram, ArticleCard, ArticleLayout, AspectRatio, AuthorBio, Avatar, AvatarFallback, AvatarImage, BREAKPOINTS, Badge, BarChart, BeforeAfterBlock, BookingEmbed, Box, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BrowserFrame, Button, ButtonGroup, COLORS, CONTAINER_SIZE_MAP, CTASection, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CaseStudyCard, CaseStudySection, CaveatBlock, ChangeEmail, Chart, ChartContainer, ChartSwitchControl, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPicker, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, ComparisonTable, CompetitorDiff, ComplianceGrid, ConfidenceIndicator, Container, ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuTrigger, CursorSpotlight, DISTANCE, DSIntlProvider, DURATION, DataCoverageBadge, DataHighlight, DataStateIndicator, DataTable, DataTableBody, DataTableCell, DataTableHead, DataTableHeader, DataTableRow, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EASING, EcosystemDiagram, EmptyState, EnterpriseSignaling, EvidenceGroup, EvolutionTimeline, ExecutiveThesis, ExitIntentOverlay, ExportMenu, FONT_FAMILY, FONT_SIZE, FONT_WEIGHT, FeatureSection, FloatingTabBar, ForgotPassword, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FunnelChart, FunnelScalingSender, Grid, GuaranteeHighlight, Heading, HeatmapChart, HeroSection, HoverCard, HoverCardContent, HoverCardTrigger, ICPFilter, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InsightBlock, InsightCallout, IntegrationShowcase, IntelligenceBlock, IntentCTA, KeyMetric, LINE_HEIGHT, Label, LeadCaptureForm, LeadProfileView, LineChart, LocaleDropdown, Login, LongFormLayout, MBTIRadar, MBTITypeGrid, MDXOutboundLink, MEDIA_QUERIES, MOTION, ManifestoBlock, MethodologyNote, MetricCounter, MotionContainer, MotionText, Navbar, NavbarActions, NavbarBrand, NavbarContent, NavbarItem, NavbarMegaMenu, NavbarMegaMenuItem, NavbarMegaMenuSection, NavbarMobileActions, NavbarMobileNavItem, NavbarMobileSeparator, NavbarSearchTrigger, NavbarV2, NavbarV2Actions, NavbarV2Brand, NavbarV2Tab, NavbarV2TabMenu, NavbarV2Tabs, ObjectionFAQ, OutboundLink, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartnerValueProp, PieChart, PlatformBadge, Popover, PopoverClose, PopoverContent, PopoverTrigger, PricingCard, PricingSection, PricingToggle, ProblemAgitation, ProcessTimeline, Progress, Prose, RADIUS, ROICalculator, Radio, RadioGroup, ReadingProgress, RelatedContent, ReportShell, RevenueAutomationLoop, SHADOWS, SPACING, ScrollArea, ScrollBar, Section, SectionHeader, SectionShell, SecurityBlock, SegmentSwitch, Select, SelectContent, SelectGroup, SelectItem, SelectSeparator, SelectTrigger, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Shell, Sidebar, SidebarItem, SidebarSection, Signup, SiteFooter, Skeleton, Slider, SocialProof, SocialProofCard, SocialProofCarousel, SocialProofFeatured, SocialProofGrid, SocialProofLogos, SpotlightCard, Stack, StakeholderTabs, StarRating, StatsSection, StatusBadge, StickyActionBar, Switch, TRANSITION, TabItem, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, Text, TextArea, TextField, ThemeSelector, ToastContext, ToastItem, ToastProvider, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, TrendIndicator, UTM_CAMPAIGNS, UTM_CONTENTS, UTM_MEDIUMS_ALL, UTM_MEDIUMS_APP, UTM_MEDIUMS_MESSAGING, UTM_MEDIUMS_WEB, UTM_SOURCES, UTM_SOURCES_REQUIRING_SELLER, UTM_TERMS, VARIANTS, ValueAnchor, VersionedSeriesNavigator, VersionedUpgradeAlert, VerticalVideoGrid, VideoEmbed, VideoLightbox, VisuallyHidden, VoidBackground, Z_INDEX, alertMessages, allMessages, appearanceMessages, appendGovernedUTMs, appendUTMs, authMessages, buildBlockedError, buildUtmUrl, calendarMessages, carouselMessages, classifyAndEnforce, classifyUrl, commonMessages, createAuditEntry, dialogMessages, extractSpacingStyles, formMessages, hexToRgb, initializeAppearance, isExemptUrl, isUtmExempt, isValidUtmParams, methodologyMessages, navigationMessages, paginationMessages, parseUtmParams, prefersReducedMotion, reportMessages, requiresSellerAttribution, requiresUtm, resolveSpacing, toFirstTouchAttribution, toastMessages, useAppearance, useDateFormat, useFormField, useIsRTL, useLocale, useMessage, useNumberFormat, useRelativeTime, useTextDirection, useToast, validateCompliance, validateUtmField };
|
|
16699
17078
|
//# sourceMappingURL=index.js.map
|
|
16700
17079
|
//# sourceMappingURL=index.js.map
|