@aranova/tracking-react 1.9.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,43 +10,6 @@ import * as z from 'zod/mini';
10
10
  type JsonValue = string | number | boolean | null | JsonValue[] | {
11
11
  [key: string]: JsonValue;
12
12
  };
13
- /**
14
- * Metadata for a manually fired `form_submit` event.
15
- *
16
- * Register the event with `manual: { form_submit: {} }`, then call
17
- * `trackEvent('form_submit', metadata)` from the host site's submit handler.
18
- *
19
- * `fields` is optional. If present, each value must be JSON-serializable. Client
20
- * integrations may intentionally capture raw submitted lead data (including name,
21
- * email, phone, address, selections, and free text) for first-party analytics and
22
- * lead operations. Submitted file data is supported after conversion to a
23
- * JSON-serializable representation; upload larger files separately and send a storage
24
- * reference. Never include credentials, authentication tokens, payment-card or bank
25
- * secrets, or private keys.
26
- *
27
- * No byte limit is enforced on this metadata, here or on the server — `fields` and its
28
- * values are unbounded. Keep inlined payloads small anyway: a submit fired just before
29
- * navigation flushes over `keepalive`, which browsers cap near 64 KB and drop silently.
30
- *
31
- * @example
32
- * ```ts
33
- * tracking.trackEvent('form_submit', {
34
- * form: {
35
- * id: 'lead-form',
36
- * action: '/api/lead',
37
- * fields: [
38
- * {
39
- * name: 'service_interest',
40
- * type: 'select',
41
- * label: 'Service interest',
42
- * value: 'teeth_whitening',
43
- * },
44
- * ],
45
- * },
46
- * page: { path: window.location.pathname },
47
- * });
48
- * ```
49
- */
50
13
  declare const formSubmitMetadataSchema: z.ZodMiniObject<{
51
14
  form: z.ZodMiniObject<{
52
15
  id: z.ZodMiniString<string>;
@@ -56,7 +19,16 @@ declare const formSubmitMetadataSchema: z.ZodMiniObject<{
56
19
  type: z.ZodMiniString<string>;
57
20
  label: z.ZodMiniNullable<z.ZodMiniString<string>>;
58
21
  value: z.ZodMiniType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
22
+ role: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
59
23
  }, z.core.$strict>>>;
24
+ kind: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
25
+ contract_version: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniInt>>;
26
+ contract_hash: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
27
+ extra: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniArray<z.ZodMiniObject<{
28
+ key: z.ZodMiniString<string>;
29
+ label: z.ZodMiniString<string>;
30
+ value: z.ZodMiniType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
31
+ }, z.core.$strict>>>>;
60
32
  }, z.core.$strict>;
61
33
  page: z.ZodMiniObject<{
62
34
  path: z.ZodMiniString<string>;
@@ -10,43 +10,6 @@ import * as z from 'zod/mini';
10
10
  type JsonValue = string | number | boolean | null | JsonValue[] | {
11
11
  [key: string]: JsonValue;
12
12
  };
13
- /**
14
- * Metadata for a manually fired `form_submit` event.
15
- *
16
- * Register the event with `manual: { form_submit: {} }`, then call
17
- * `trackEvent('form_submit', metadata)` from the host site's submit handler.
18
- *
19
- * `fields` is optional. If present, each value must be JSON-serializable. Client
20
- * integrations may intentionally capture raw submitted lead data (including name,
21
- * email, phone, address, selections, and free text) for first-party analytics and
22
- * lead operations. Submitted file data is supported after conversion to a
23
- * JSON-serializable representation; upload larger files separately and send a storage
24
- * reference. Never include credentials, authentication tokens, payment-card or bank
25
- * secrets, or private keys.
26
- *
27
- * No byte limit is enforced on this metadata, here or on the server — `fields` and its
28
- * values are unbounded. Keep inlined payloads small anyway: a submit fired just before
29
- * navigation flushes over `keepalive`, which browsers cap near 64 KB and drop silently.
30
- *
31
- * @example
32
- * ```ts
33
- * tracking.trackEvent('form_submit', {
34
- * form: {
35
- * id: 'lead-form',
36
- * action: '/api/lead',
37
- * fields: [
38
- * {
39
- * name: 'service_interest',
40
- * type: 'select',
41
- * label: 'Service interest',
42
- * value: 'teeth_whitening',
43
- * },
44
- * ],
45
- * },
46
- * page: { path: window.location.pathname },
47
- * });
48
- * ```
49
- */
50
13
  declare const formSubmitMetadataSchema: z.ZodMiniObject<{
51
14
  form: z.ZodMiniObject<{
52
15
  id: z.ZodMiniString<string>;
@@ -56,7 +19,16 @@ declare const formSubmitMetadataSchema: z.ZodMiniObject<{
56
19
  type: z.ZodMiniString<string>;
57
20
  label: z.ZodMiniNullable<z.ZodMiniString<string>>;
58
21
  value: z.ZodMiniType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
22
+ role: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
59
23
  }, z.core.$strict>>>;
24
+ kind: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
25
+ contract_version: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniInt>>;
26
+ contract_hash: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniString<string>>>;
27
+ extra: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniArray<z.ZodMiniObject<{
28
+ key: z.ZodMiniString<string>;
29
+ label: z.ZodMiniString<string>;
30
+ value: z.ZodMiniType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
31
+ }, z.core.$strict>>>>;
60
32
  }, z.core.$strict>;
61
33
  page: z.ZodMiniObject<{
62
34
  path: z.ZodMiniString<string>;
package/dist/index.d.mts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { AdPlatformTracking, AdPlatformTrackingProps, BookedAttempt, BookingHandoffLink, BookingHandoffLinkProps, BookingHandoffOptions, BookingSubmitState, BookingSubmitStatus, ConsentBanner, ConsentBannerProps, CreateTrackingOptions, CreateTrackingResult, GoogleAdsTracking, GoogleAdsTrackingProps, PhoneField, PhoneFieldApi, PhoneFieldProps, PhoneInputProps, TrackingProviderProps, UseConsentResult, UseCookiePreferencesOptions, UseCookiePreferencesResult, UsePhoneFieldOptions, createTracking, useBookingHandoffUrl, useBookingIntegration, useBookingSlots, useBookingSubmit, useConsent, useConsentState, useCookiePreferences, useGclid, usePhoneConfig, usePhoneField, useTrackingParams } from '@aranova/tracking-react/client';
2
- import { T as TrackingParams, a as TrackingInstallSurface, b as TrackingEnvironment, c as TrackingClientContext, d as TrackingEventCreatePayload, e as TrackingSessionUpsertPayload } from './phone-utils-CM8eUPz8.mjs';
3
- export { C as ConsentChoice, f as ConsentChoiceState, g as ConsentSource, h as ConsentState, D as DEFAULT_DECLINE_TTL_DAYS, i as DEFAULT_PHONE_COUNTRY, G as GtagEnvironmentMap, M as MetaPixelEnvironmentMap, P as ParsedPhone, j as PhoneConfig, k as PhoneDisplayFormat, S as SetConsentOptions, l as TrackedField, m as TrackingInitConfig, n as formatPhone, o as formatPhoneAsTyped, p as getConsentChoice, q as getConsentState, r as onConsentChange, s as optIn, t as optOut, u as parsePhone, v as phoneField, w as resetConsent, x as setConsentState, y as toE164 } from './phone-utils-CM8eUPz8.mjs';
4
- export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-Dil7TNV_.mjs';
5
- export { B as BookingDetailsFailure, a as BookingDetailsInput, b as BookingDetailsOptions, c as BookingDetailsOutcome, d as BookingDetailsStatus, e as BookingDropOff, f as BookingFormSubmit, g as BookingInput, h as BookingMode, i as BookingOutcome, j as BookingSimulation, k as BookingSubmitOptions, C as ConversionConfig, l as ConversionConfigStore, F as FormSubmitField, S as SalesBookingsClient, T as TrackingConfigReference, m as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, o as resolveTrackingConfigUrl } from './bookings-DtcwdM_I.mjs';
6
- export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingOptionGroup, e as BookingProvider, f as BookingRules, C as CtaClickConfig, g as CtaClickMetadata, E as EVENT_SEMANTICS, h as EventCategory, i as EventClientVisibility, j as EventConfig, k as EventKind, l as EventMetadata, m as EventName, n as EventOutcomeRole, o as EventSemantics, F as FormStartConfig, p as FormStartMetadata, q as FormStepConfig, r as FormStepMetadata, M as ManualEventName, s as MultiPageSessionConfig, t as MultiPageSessionMetadata, P as PageExitConfig, u as PageExitMetadata, v as PageIdentity, w as PageViewConfig, x as PageViewMetadata, y as PhoneClickConfig, z as PhoneClickMetadata, R as RegisteredAutomaticEvents, D as RegisteredManualEvents, S as ScrollDepthConfig, G as ScrollDepthMetadata, H as SdkHeartbeatConfig, I as SdkHeartbeatMetadata, J as SiteLinkArrivalConfig, K as SiteLinkArrivalMetadata, L as SiteLinkClickConfig, N as SiteLinkClickMetadata, O as SpecificPageName, Q as SpecificPageVisitConfig, T as SpecificPageVisitMetadata, U as TimeOnSiteConfig, V as TimeOnSiteMetadata, W as TrackableEvent, X as TriggerRegistryConfig, Y as TypedTrackEventOptions, Z as TypedTrackingClient, _ as bookableSlots, $ as buildBookingHandoffUrl, a0 as getBookingIntegration, a1 as getEventSemantics, a2 as groupBookingOptions, a3 as shopToday } from './ingest-typed-C2OvZ7dp.mjs';
7
- export { F as FormSubmitConfig, a as FormSubmitMetadata, J as JsonValue } from './form-submit-BLb28aCk.mjs';
2
+ import { T as TrackingParams, a as TrackingInstallSurface, b as TrackingEnvironment, c as TrackingClientContext, d as TrackingEventCreatePayload, e as TrackingSessionUpsertPayload } from './phone-utils-BNiSqeF7.mjs';
3
+ export { C as ConsentChoice, f as ConsentChoiceState, g as ConsentSource, h as ConsentState, D as DEFAULT_DECLINE_TTL_DAYS, i as DEFAULT_PHONE_COUNTRY, G as GtagEnvironmentMap, M as MetaPixelEnvironmentMap, P as ParsedPhone, j as PhoneConfig, k as PhoneDisplayFormat, S as SetConsentOptions, l as TrackedField, m as TrackingInitConfig, n as formatPhone, o as formatPhoneAsTyped, p as getConsentChoice, q as getConsentState, r as onConsentChange, s as optIn, t as optOut, u as parsePhone, v as phoneField, w as resetConsent, x as setConsentState, y as toE164 } from './phone-utils-BNiSqeF7.mjs';
4
+ export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-CSV0H3iG.mjs';
5
+ export { B as BookingDetailsFailure, a as BookingDetailsInput, b as BookingDetailsOptions, c as BookingDetailsOutcome, d as BookingDetailsStatus, e as BookingDropOff, f as BookingFormSubmit, g as BookingInput, h as BookingMode, i as BookingOutcome, j as BookingSimulation, k as BookingSubmitOptions, C as ConversionConfig, l as ConversionConfigStore, F as FormSubmitField, S as SalesBookingsClient, T as TrackingConfigReference, m as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, o as resolveTrackingConfigUrl } from './bookings-BnXZGgwr.mjs';
6
+ export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingOptionGroup, e as BookingProvider, f as BookingRules, C as CtaClickConfig, g as CtaClickMetadata, E as EVENT_SEMANTICS, h as EventCategory, i as EventClientVisibility, j as EventConfig, k as EventKind, l as EventMetadata, m as EventName, n as EventOutcomeRole, o as EventSemantics, F as FormStartConfig, p as FormStartMetadata, q as FormStepConfig, r as FormStepMetadata, M as ManualEventName, s as MultiPageSessionConfig, t as MultiPageSessionMetadata, P as PageExitConfig, u as PageExitMetadata, v as PageIdentity, w as PageViewConfig, x as PageViewMetadata, y as PhoneClickConfig, z as PhoneClickMetadata, R as RegisteredAutomaticEvents, D as RegisteredManualEvents, S as ScrollDepthConfig, G as ScrollDepthMetadata, H as SdkHeartbeatConfig, I as SdkHeartbeatMetadata, J as SiteLinkArrivalConfig, K as SiteLinkArrivalMetadata, L as SiteLinkClickConfig, N as SiteLinkClickMetadata, O as SpecificPageName, Q as SpecificPageVisitConfig, T as SpecificPageVisitMetadata, U as TimeOnSiteConfig, V as TimeOnSiteMetadata, W as TrackableEvent, X as TriggerRegistryConfig, Y as TypedTrackEventOptions, Z as TypedTrackingClient, _ as bookableSlots, $ as buildBookingHandoffUrl, a0 as getBookingIntegration, a1 as getEventSemantics, a2 as groupBookingOptions, a3 as shopToday } from './ingest-typed-TI6KqVzL.mjs';
7
+ export { F as FormSubmitConfig, a as FormSubmitMetadata, J as JsonValue } from './form-submit-CX-CxJjQ.mjs';
8
+ import * as z from 'zod/mini';
8
9
  export { CountryCode } from 'libphonenumber-js';
9
- import 'zod/mini';
10
10
  import 'zod/v4/core';
11
11
 
12
12
  /**
@@ -100,4 +100,175 @@ interface TrackingClient {
100
100
  destroy: () => void;
101
101
  }
102
102
 
103
- export { TRACKING_PARAM_KEYS, type TrackingClient, TrackingClientContext, TrackingEventCreatePayload, TrackingInstallSurface, TrackingParams, TrackingSessionUpsertPayload, captureTrackingParamsFromLocation, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload };
103
+ /** Bump-on-change registry version; travels on every contract-typed form_submit. */
104
+ declare const LEAD_FORM_REGISTRY_VERSION = 1;
105
+ declare const LEAD_FORM_KINDS: readonly ["booking", "quote", "contact", "consult", "callback"];
106
+ /** What a form is for; `form_id` stays the instance handle. */
107
+ type LeadFormKind = (typeof LEAD_FORM_KINDS)[number];
108
+ declare const LEAD_FORM_ROLES: readonly ["given_name", "family_name", "phone", "email", "service", "preferred_date", "preferred_time", "note", "visit", "intent", "vehicle", "drop_off", "address", "patient_type", "matter", "language", "products", "goal", "business_type", "lead_volume", "attribution"];
109
+ /** A role from the registry, or `add_on:<key>` for a yes/no extra with its own label. */
110
+ type LeadFormRole = (typeof LEAD_FORM_ROLES)[number] | `add_on:${string}`;
111
+ declare const LEAD_FORM_PRIMITIVES: readonly ["string", "text", "enum", "multi_enum", "bool", "date", "time_window", "phone", "email", "address", "number"];
112
+ type LeadFormPrimitive = (typeof LEAD_FORM_PRIMITIVES)[number];
113
+ /** The wire schema of each primitive's value. */
114
+ declare const leadFormPrimitiveSchemas: {
115
+ readonly string: z.ZodMiniString<string>;
116
+ readonly text: z.ZodMiniString<string>;
117
+ readonly enum: z.ZodMiniString<string>;
118
+ readonly multi_enum: z.ZodMiniArray<z.ZodMiniString<string>>;
119
+ readonly bool: z.ZodMiniBoolean<boolean>;
120
+ readonly date: z.ZodMiniString<string>;
121
+ readonly time_window: z.ZodMiniObject<{
122
+ start: z.ZodMiniString<string>;
123
+ end: z.ZodMiniNullable<z.ZodMiniString<string>>;
124
+ label: z.ZodMiniOptional<z.ZodMiniString<string>>;
125
+ }, z.core.$strict>;
126
+ readonly phone: z.ZodMiniString<string>;
127
+ readonly email: z.ZodMiniString<string>;
128
+ readonly address: z.ZodMiniObject<{
129
+ line1: z.ZodMiniString<string>;
130
+ line2: z.ZodMiniOptional<z.ZodMiniString<string>>;
131
+ city: z.ZodMiniOptional<z.ZodMiniString<string>>;
132
+ region: z.ZodMiniOptional<z.ZodMiniString<string>>;
133
+ postal_code: z.ZodMiniOptional<z.ZodMiniString<string>>;
134
+ country: z.ZodMiniOptional<z.ZodMiniString<string>>;
135
+ }, z.core.$strict>;
136
+ readonly number: z.ZodMiniNumber<number>;
137
+ };
138
+ interface LeadFormRoleOption {
139
+ key: string;
140
+ label: string;
141
+ isNonAnswer?: true;
142
+ }
143
+ interface LeadFormRoleSpec {
144
+ primitive: LeadFormPrimitive;
145
+ smsLabel: string;
146
+ contactIdentity?: true;
147
+ uninteresting?: true;
148
+ options?: readonly LeadFormRoleOption[];
149
+ }
150
+ /** Every role's primitive and text label; `add_on` is the template for `add_on:<key>`. */
151
+ declare const LEAD_FORM_ROLE_SPECS: {
152
+ readonly given_name: {
153
+ readonly primitive: "string";
154
+ readonly smsLabel: "";
155
+ readonly contactIdentity: true;
156
+ };
157
+ readonly family_name: {
158
+ readonly primitive: "string";
159
+ readonly smsLabel: "";
160
+ readonly contactIdentity: true;
161
+ };
162
+ readonly phone: {
163
+ readonly primitive: "phone";
164
+ readonly smsLabel: "";
165
+ readonly contactIdentity: true;
166
+ };
167
+ readonly email: {
168
+ readonly primitive: "email";
169
+ readonly smsLabel: "";
170
+ readonly contactIdentity: true;
171
+ };
172
+ readonly service: {
173
+ readonly primitive: "enum";
174
+ readonly smsLabel: "Service";
175
+ };
176
+ readonly preferred_date: {
177
+ readonly primitive: "date";
178
+ readonly smsLabel: "Date";
179
+ };
180
+ readonly preferred_time: {
181
+ readonly primitive: "time_window";
182
+ readonly smsLabel: "Time";
183
+ };
184
+ readonly note: {
185
+ readonly primitive: "text";
186
+ readonly smsLabel: "Note";
187
+ };
188
+ readonly visit: {
189
+ readonly primitive: "enum";
190
+ readonly smsLabel: "Visit";
191
+ readonly options: readonly [{
192
+ readonly key: "in-shop";
193
+ readonly label: "In shop";
194
+ }, {
195
+ readonly key: "in-home";
196
+ readonly label: "In home";
197
+ }, {
198
+ readonly key: "remote";
199
+ readonly label: "Remote";
200
+ }, {
201
+ readonly key: "on-site";
202
+ readonly label: "On site";
203
+ }];
204
+ };
205
+ readonly intent: {
206
+ readonly primitive: "enum";
207
+ readonly smsLabel: "Wants";
208
+ readonly options: readonly [{
209
+ readonly key: "book";
210
+ readonly label: "Book";
211
+ }, {
212
+ readonly key: "quote";
213
+ readonly label: "Quote";
214
+ }];
215
+ };
216
+ readonly vehicle: {
217
+ readonly primitive: "string";
218
+ readonly smsLabel: "Vehicle";
219
+ };
220
+ readonly drop_off: {
221
+ readonly primitive: "enum";
222
+ readonly smsLabel: "Drop-off";
223
+ readonly options: readonly [{
224
+ readonly key: "wait-for-it";
225
+ readonly label: "Waiting";
226
+ }, {
227
+ readonly key: "drop-off";
228
+ readonly label: "Dropping off";
229
+ }];
230
+ };
231
+ readonly address: {
232
+ readonly primitive: "address";
233
+ readonly smsLabel: "Address";
234
+ };
235
+ readonly patient_type: {
236
+ readonly primitive: "enum";
237
+ readonly smsLabel: "Patient";
238
+ };
239
+ readonly matter: {
240
+ readonly primitive: "enum";
241
+ readonly smsLabel: "Matter";
242
+ };
243
+ readonly language: {
244
+ readonly primitive: "enum";
245
+ readonly smsLabel: "Language";
246
+ };
247
+ readonly products: {
248
+ readonly primitive: "multi_enum";
249
+ readonly smsLabel: "Products";
250
+ };
251
+ readonly goal: {
252
+ readonly primitive: "enum";
253
+ readonly smsLabel: "Goal";
254
+ };
255
+ readonly business_type: {
256
+ readonly primitive: "enum";
257
+ readonly smsLabel: "Business";
258
+ };
259
+ readonly lead_volume: {
260
+ readonly primitive: "enum";
261
+ readonly smsLabel: "Lead volume";
262
+ };
263
+ readonly add_on: {
264
+ readonly primitive: "bool";
265
+ readonly smsLabel: "";
266
+ };
267
+ readonly attribution: {
268
+ readonly primitive: "enum";
269
+ readonly smsLabel: "";
270
+ readonly uninteresting: true;
271
+ };
272
+ };
273
+
274
+ export { LEAD_FORM_KINDS, LEAD_FORM_PRIMITIVES, LEAD_FORM_REGISTRY_VERSION, LEAD_FORM_ROLES, LEAD_FORM_ROLE_SPECS, type LeadFormKind, type LeadFormPrimitive, type LeadFormRole, type LeadFormRoleOption, type LeadFormRoleSpec, TRACKING_PARAM_KEYS, type TrackingClient, TrackingClientContext, TrackingEventCreatePayload, TrackingInstallSurface, TrackingParams, TrackingSessionUpsertPayload, captureTrackingParamsFromLocation, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload, leadFormPrimitiveSchemas };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { AdPlatformTracking, AdPlatformTrackingProps, BookedAttempt, BookingHandoffLink, BookingHandoffLinkProps, BookingHandoffOptions, BookingSubmitState, BookingSubmitStatus, ConsentBanner, ConsentBannerProps, CreateTrackingOptions, CreateTrackingResult, GoogleAdsTracking, GoogleAdsTrackingProps, PhoneField, PhoneFieldApi, PhoneFieldProps, PhoneInputProps, TrackingProviderProps, UseConsentResult, UseCookiePreferencesOptions, UseCookiePreferencesResult, UsePhoneFieldOptions, createTracking, useBookingHandoffUrl, useBookingIntegration, useBookingSlots, useBookingSubmit, useConsent, useConsentState, useCookiePreferences, useGclid, usePhoneConfig, usePhoneField, useTrackingParams } from '@aranova/tracking-react/client';
2
- import { T as TrackingParams, a as TrackingInstallSurface, b as TrackingEnvironment, c as TrackingClientContext, d as TrackingEventCreatePayload, e as TrackingSessionUpsertPayload } from './phone-utils-l8ey3Zdm.js';
3
- export { C as ConsentChoice, f as ConsentChoiceState, g as ConsentSource, h as ConsentState, D as DEFAULT_DECLINE_TTL_DAYS, i as DEFAULT_PHONE_COUNTRY, G as GtagEnvironmentMap, M as MetaPixelEnvironmentMap, P as ParsedPhone, j as PhoneConfig, k as PhoneDisplayFormat, S as SetConsentOptions, l as TrackedField, m as TrackingInitConfig, n as formatPhone, o as formatPhoneAsTyped, p as getConsentChoice, q as getConsentState, r as onConsentChange, s as optIn, t as optOut, u as parsePhone, v as phoneField, w as resetConsent, x as setConsentState, y as toE164 } from './phone-utils-l8ey3Zdm.js';
4
- export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-DJJpMY_c.js';
5
- export { B as BookingDetailsFailure, a as BookingDetailsInput, b as BookingDetailsOptions, c as BookingDetailsOutcome, d as BookingDetailsStatus, e as BookingDropOff, f as BookingFormSubmit, g as BookingInput, h as BookingMode, i as BookingOutcome, j as BookingSimulation, k as BookingSubmitOptions, C as ConversionConfig, l as ConversionConfigStore, F as FormSubmitField, S as SalesBookingsClient, T as TrackingConfigReference, m as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, o as resolveTrackingConfigUrl } from './bookings-Bx7totlS.js';
6
- export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingOptionGroup, e as BookingProvider, f as BookingRules, C as CtaClickConfig, g as CtaClickMetadata, E as EVENT_SEMANTICS, h as EventCategory, i as EventClientVisibility, j as EventConfig, k as EventKind, l as EventMetadata, m as EventName, n as EventOutcomeRole, o as EventSemantics, F as FormStartConfig, p as FormStartMetadata, q as FormStepConfig, r as FormStepMetadata, M as ManualEventName, s as MultiPageSessionConfig, t as MultiPageSessionMetadata, P as PageExitConfig, u as PageExitMetadata, v as PageIdentity, w as PageViewConfig, x as PageViewMetadata, y as PhoneClickConfig, z as PhoneClickMetadata, R as RegisteredAutomaticEvents, D as RegisteredManualEvents, S as ScrollDepthConfig, G as ScrollDepthMetadata, H as SdkHeartbeatConfig, I as SdkHeartbeatMetadata, J as SiteLinkArrivalConfig, K as SiteLinkArrivalMetadata, L as SiteLinkClickConfig, N as SiteLinkClickMetadata, O as SpecificPageName, Q as SpecificPageVisitConfig, T as SpecificPageVisitMetadata, U as TimeOnSiteConfig, V as TimeOnSiteMetadata, W as TrackableEvent, X as TriggerRegistryConfig, Y as TypedTrackEventOptions, Z as TypedTrackingClient, _ as bookableSlots, $ as buildBookingHandoffUrl, a0 as getBookingIntegration, a1 as getEventSemantics, a2 as groupBookingOptions, a3 as shopToday } from './ingest-typed-B-BgEZdW.js';
7
- export { F as FormSubmitConfig, a as FormSubmitMetadata, J as JsonValue } from './form-submit-BLb28aCk.js';
2
+ import { T as TrackingParams, a as TrackingInstallSurface, b as TrackingEnvironment, c as TrackingClientContext, d as TrackingEventCreatePayload, e as TrackingSessionUpsertPayload } from './phone-utils-D12FW8tT.js';
3
+ export { C as ConsentChoice, f as ConsentChoiceState, g as ConsentSource, h as ConsentState, D as DEFAULT_DECLINE_TTL_DAYS, i as DEFAULT_PHONE_COUNTRY, G as GtagEnvironmentMap, M as MetaPixelEnvironmentMap, P as ParsedPhone, j as PhoneConfig, k as PhoneDisplayFormat, S as SetConsentOptions, l as TrackedField, m as TrackingInitConfig, n as formatPhone, o as formatPhoneAsTyped, p as getConsentChoice, q as getConsentState, r as onConsentChange, s as optIn, t as optOut, u as parsePhone, v as phoneField, w as resetConsent, x as setConsentState, y as toE164 } from './phone-utils-D12FW8tT.js';
4
+ export { A as AranovaApiError, B as BusinessConfig, a as BusinessConfigFeatures, b as BusinessConfigService, C as CompareTo, c as ConversionUserData, d as CurrencyRevenue, e as CustomerCurrencyDelta, f as CustomerCurrencyTotal, g as CustomerGetOptions, h as CustomerGetResult, i as CustomerKpis, j as CustomerKpisDeltas, k as CustomerKpisPrevious, l as CustomerListPage, m as CustomerListQuery, n as CustomerProfile, o as CustomerSegment, p as CustomerSegmentCount, q as CustomerSortField, r as CustomerSummary, s as CustomerSummaryQuery, D as DistinctCustomersByCurrency, E as EffectiveSaleProperty, G as Granularity, N as NAMED_RANGES, t as NamedRange, P as PublicServiceItem, S as SALE_SOURCES, u as SUPPORTED_CURRENCIES, v as Sale, w as SaleBuiltinRequirableField, x as SaleCursorPage, y as SaleFilters, z as SaleInput, F as SaleItem, H as SaleItemInput, I as SaleKeysetSortField, J as SaleListPage, K as SaleListQuery, L as SaleListQueryV2, M as SalePropertyOption, O as SalePropertyType, Q as SaleService, R as SaleServiceInput, T as SaleSortField, U as SaleSortOrder, V as SaleSource, W as SaleSourceFacts, X as SaleSummary, Y as SaleSummaryPrevious, Z as SaleSummaryQuery, _ as SaleSummaryQueryV2, $ as SaleSummaryV2, a0 as SaleUpdateInput, a1 as SalesBusinessClient, a2 as SalesCategoryBreakdown, a3 as SalesClient, a4 as SalesClientConfig, a5 as SalesCustomersClient, a6 as SalesServiceBreakdown, a7 as SalesTransportConfig, a8 as SalesTrendPoint, a9 as SummaryCurrencyDelta, aa as SummaryDeltas, ab as SummaryWindow, ac as SupportedCurrency, ad as TRACKING_RANGES, ae as TrackingOverviewRange, af as clearStashedUserData, ag as createSalesClient, ah as currencySchema, ai as fetchServices, aj as formatDateInTz, ak as formatMoney, al as fromMinor, am as saleCreateSchema, an as saleItemSchema, ao as saleServiceSchema, ap as saleUpdateSchema, aq as salesRequest, ar as stashUserData, as as toMinor } from './sales-BegN5t_z.js';
5
+ export { B as BookingDetailsFailure, a as BookingDetailsInput, b as BookingDetailsOptions, c as BookingDetailsOutcome, d as BookingDetailsStatus, e as BookingDropOff, f as BookingFormSubmit, g as BookingInput, h as BookingMode, i as BookingOutcome, j as BookingSimulation, k as BookingSubmitOptions, C as ConversionConfig, l as ConversionConfigStore, F as FormSubmitField, S as SalesBookingsClient, T as TrackingConfigReference, m as getTrackingConfigRuntime, n as newBookingAttemptKey, r as resolveConversionConfig, o as resolveTrackingConfigUrl } from './bookings-vM_aCNOS.js';
6
+ export { A as AutomaticEventName, B as BookableDay, a as BookingHandoffPrefill, b as BookingIntegration, c as BookingOption, d as BookingOptionGroup, e as BookingProvider, f as BookingRules, C as CtaClickConfig, g as CtaClickMetadata, E as EVENT_SEMANTICS, h as EventCategory, i as EventClientVisibility, j as EventConfig, k as EventKind, l as EventMetadata, m as EventName, n as EventOutcomeRole, o as EventSemantics, F as FormStartConfig, p as FormStartMetadata, q as FormStepConfig, r as FormStepMetadata, M as ManualEventName, s as MultiPageSessionConfig, t as MultiPageSessionMetadata, P as PageExitConfig, u as PageExitMetadata, v as PageIdentity, w as PageViewConfig, x as PageViewMetadata, y as PhoneClickConfig, z as PhoneClickMetadata, R as RegisteredAutomaticEvents, D as RegisteredManualEvents, S as ScrollDepthConfig, G as ScrollDepthMetadata, H as SdkHeartbeatConfig, I as SdkHeartbeatMetadata, J as SiteLinkArrivalConfig, K as SiteLinkArrivalMetadata, L as SiteLinkClickConfig, N as SiteLinkClickMetadata, O as SpecificPageName, Q as SpecificPageVisitConfig, T as SpecificPageVisitMetadata, U as TimeOnSiteConfig, V as TimeOnSiteMetadata, W as TrackableEvent, X as TriggerRegistryConfig, Y as TypedTrackEventOptions, Z as TypedTrackingClient, _ as bookableSlots, $ as buildBookingHandoffUrl, a0 as getBookingIntegration, a1 as getEventSemantics, a2 as groupBookingOptions, a3 as shopToday } from './ingest-typed-BS9agXM5.js';
7
+ export { F as FormSubmitConfig, a as FormSubmitMetadata, J as JsonValue } from './form-submit-CX-CxJjQ.js';
8
+ import * as z from 'zod/mini';
8
9
  export { CountryCode } from 'libphonenumber-js';
9
- import 'zod/mini';
10
10
  import 'zod/v4/core';
11
11
 
12
12
  /**
@@ -100,4 +100,175 @@ interface TrackingClient {
100
100
  destroy: () => void;
101
101
  }
102
102
 
103
- export { TRACKING_PARAM_KEYS, type TrackingClient, TrackingClientContext, TrackingEventCreatePayload, TrackingInstallSurface, TrackingParams, TrackingSessionUpsertPayload, captureTrackingParamsFromLocation, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload };
103
+ /** Bump-on-change registry version; travels on every contract-typed form_submit. */
104
+ declare const LEAD_FORM_REGISTRY_VERSION = 1;
105
+ declare const LEAD_FORM_KINDS: readonly ["booking", "quote", "contact", "consult", "callback"];
106
+ /** What a form is for; `form_id` stays the instance handle. */
107
+ type LeadFormKind = (typeof LEAD_FORM_KINDS)[number];
108
+ declare const LEAD_FORM_ROLES: readonly ["given_name", "family_name", "phone", "email", "service", "preferred_date", "preferred_time", "note", "visit", "intent", "vehicle", "drop_off", "address", "patient_type", "matter", "language", "products", "goal", "business_type", "lead_volume", "attribution"];
109
+ /** A role from the registry, or `add_on:<key>` for a yes/no extra with its own label. */
110
+ type LeadFormRole = (typeof LEAD_FORM_ROLES)[number] | `add_on:${string}`;
111
+ declare const LEAD_FORM_PRIMITIVES: readonly ["string", "text", "enum", "multi_enum", "bool", "date", "time_window", "phone", "email", "address", "number"];
112
+ type LeadFormPrimitive = (typeof LEAD_FORM_PRIMITIVES)[number];
113
+ /** The wire schema of each primitive's value. */
114
+ declare const leadFormPrimitiveSchemas: {
115
+ readonly string: z.ZodMiniString<string>;
116
+ readonly text: z.ZodMiniString<string>;
117
+ readonly enum: z.ZodMiniString<string>;
118
+ readonly multi_enum: z.ZodMiniArray<z.ZodMiniString<string>>;
119
+ readonly bool: z.ZodMiniBoolean<boolean>;
120
+ readonly date: z.ZodMiniString<string>;
121
+ readonly time_window: z.ZodMiniObject<{
122
+ start: z.ZodMiniString<string>;
123
+ end: z.ZodMiniNullable<z.ZodMiniString<string>>;
124
+ label: z.ZodMiniOptional<z.ZodMiniString<string>>;
125
+ }, z.core.$strict>;
126
+ readonly phone: z.ZodMiniString<string>;
127
+ readonly email: z.ZodMiniString<string>;
128
+ readonly address: z.ZodMiniObject<{
129
+ line1: z.ZodMiniString<string>;
130
+ line2: z.ZodMiniOptional<z.ZodMiniString<string>>;
131
+ city: z.ZodMiniOptional<z.ZodMiniString<string>>;
132
+ region: z.ZodMiniOptional<z.ZodMiniString<string>>;
133
+ postal_code: z.ZodMiniOptional<z.ZodMiniString<string>>;
134
+ country: z.ZodMiniOptional<z.ZodMiniString<string>>;
135
+ }, z.core.$strict>;
136
+ readonly number: z.ZodMiniNumber<number>;
137
+ };
138
+ interface LeadFormRoleOption {
139
+ key: string;
140
+ label: string;
141
+ isNonAnswer?: true;
142
+ }
143
+ interface LeadFormRoleSpec {
144
+ primitive: LeadFormPrimitive;
145
+ smsLabel: string;
146
+ contactIdentity?: true;
147
+ uninteresting?: true;
148
+ options?: readonly LeadFormRoleOption[];
149
+ }
150
+ /** Every role's primitive and text label; `add_on` is the template for `add_on:<key>`. */
151
+ declare const LEAD_FORM_ROLE_SPECS: {
152
+ readonly given_name: {
153
+ readonly primitive: "string";
154
+ readonly smsLabel: "";
155
+ readonly contactIdentity: true;
156
+ };
157
+ readonly family_name: {
158
+ readonly primitive: "string";
159
+ readonly smsLabel: "";
160
+ readonly contactIdentity: true;
161
+ };
162
+ readonly phone: {
163
+ readonly primitive: "phone";
164
+ readonly smsLabel: "";
165
+ readonly contactIdentity: true;
166
+ };
167
+ readonly email: {
168
+ readonly primitive: "email";
169
+ readonly smsLabel: "";
170
+ readonly contactIdentity: true;
171
+ };
172
+ readonly service: {
173
+ readonly primitive: "enum";
174
+ readonly smsLabel: "Service";
175
+ };
176
+ readonly preferred_date: {
177
+ readonly primitive: "date";
178
+ readonly smsLabel: "Date";
179
+ };
180
+ readonly preferred_time: {
181
+ readonly primitive: "time_window";
182
+ readonly smsLabel: "Time";
183
+ };
184
+ readonly note: {
185
+ readonly primitive: "text";
186
+ readonly smsLabel: "Note";
187
+ };
188
+ readonly visit: {
189
+ readonly primitive: "enum";
190
+ readonly smsLabel: "Visit";
191
+ readonly options: readonly [{
192
+ readonly key: "in-shop";
193
+ readonly label: "In shop";
194
+ }, {
195
+ readonly key: "in-home";
196
+ readonly label: "In home";
197
+ }, {
198
+ readonly key: "remote";
199
+ readonly label: "Remote";
200
+ }, {
201
+ readonly key: "on-site";
202
+ readonly label: "On site";
203
+ }];
204
+ };
205
+ readonly intent: {
206
+ readonly primitive: "enum";
207
+ readonly smsLabel: "Wants";
208
+ readonly options: readonly [{
209
+ readonly key: "book";
210
+ readonly label: "Book";
211
+ }, {
212
+ readonly key: "quote";
213
+ readonly label: "Quote";
214
+ }];
215
+ };
216
+ readonly vehicle: {
217
+ readonly primitive: "string";
218
+ readonly smsLabel: "Vehicle";
219
+ };
220
+ readonly drop_off: {
221
+ readonly primitive: "enum";
222
+ readonly smsLabel: "Drop-off";
223
+ readonly options: readonly [{
224
+ readonly key: "wait-for-it";
225
+ readonly label: "Waiting";
226
+ }, {
227
+ readonly key: "drop-off";
228
+ readonly label: "Dropping off";
229
+ }];
230
+ };
231
+ readonly address: {
232
+ readonly primitive: "address";
233
+ readonly smsLabel: "Address";
234
+ };
235
+ readonly patient_type: {
236
+ readonly primitive: "enum";
237
+ readonly smsLabel: "Patient";
238
+ };
239
+ readonly matter: {
240
+ readonly primitive: "enum";
241
+ readonly smsLabel: "Matter";
242
+ };
243
+ readonly language: {
244
+ readonly primitive: "enum";
245
+ readonly smsLabel: "Language";
246
+ };
247
+ readonly products: {
248
+ readonly primitive: "multi_enum";
249
+ readonly smsLabel: "Products";
250
+ };
251
+ readonly goal: {
252
+ readonly primitive: "enum";
253
+ readonly smsLabel: "Goal";
254
+ };
255
+ readonly business_type: {
256
+ readonly primitive: "enum";
257
+ readonly smsLabel: "Business";
258
+ };
259
+ readonly lead_volume: {
260
+ readonly primitive: "enum";
261
+ readonly smsLabel: "Lead volume";
262
+ };
263
+ readonly add_on: {
264
+ readonly primitive: "bool";
265
+ readonly smsLabel: "";
266
+ };
267
+ readonly attribution: {
268
+ readonly primitive: "enum";
269
+ readonly smsLabel: "";
270
+ readonly uninteresting: true;
271
+ };
272
+ };
273
+
274
+ export { LEAD_FORM_KINDS, LEAD_FORM_PRIMITIVES, LEAD_FORM_REGISTRY_VERSION, LEAD_FORM_ROLES, LEAD_FORM_ROLE_SPECS, type LeadFormKind, type LeadFormPrimitive, type LeadFormRole, type LeadFormRoleOption, type LeadFormRoleSpec, TRACKING_PARAM_KEYS, type TrackingClient, TrackingClientContext, TrackingEventCreatePayload, TrackingInstallSurface, TrackingParams, TrackingSessionUpsertPayload, captureTrackingParamsFromLocation, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload, leadFormPrimitiveSchemas };