@sonordev/site-kit 8.5.1 → 8.6.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/agent-manifest.json +1 -1
  3. package/dist/{AnalyticsProvider-KLOAGTWZ.js → AnalyticsProvider-GVJYL6XY.js} +6 -6
  4. package/dist/{ArticleViewTracker-VKNPRCY2.js → ArticleViewTracker-AOJXEBYM.js} +7 -7
  5. package/dist/{BlocksPopup-OL3L6BKW.js → BlocksPopup-AJ3CKVQG.js} +4 -4
  6. package/dist/{ChatWidget-YSGSX3WM.js → ChatWidget-EYBVB5SZ.js} +7 -7
  7. package/dist/FileField-UEQYIFRO.js +237 -0
  8. package/dist/{FormSpotlight-JNTADX4I.js → FormSpotlight-H73ZZ66T.js} +2 -2
  9. package/dist/{FormStage-FU5AOMED.js → FormStage-2PLWWYBW.js} +2 -2
  10. package/dist/{ManagedForm-XS6JPQLH.js → ManagedForm-ZQOFXEWS.js} +9 -9
  11. package/dist/{ManagedNewsletterForm-KV4PQDKB.js → ManagedNewsletterForm-5TE47YZD.js} +11 -11
  12. package/dist/{SignalCore-MTYA5WGO.js → SignalCore-FEFNMNYN.js} +5 -5
  13. package/dist/{SiteChat-W25JYBBW.js → SiteChat-3MKYL2XM.js} +1 -1
  14. package/dist/{SiteDesignReporter-7ZJYE2EL.js → SiteDesignReporter-AJDIBNHI.js} +5 -5
  15. package/dist/{SitePopups-Q6OZDNCA.js → SitePopups-C44YTQ3Q.js} +6 -6
  16. package/dist/{SitemapSync-X5RLROGU.js → SitemapSync-UJA6JVPW.js} +4 -4
  17. package/dist/_client/booking-widget.js +7 -5
  18. package/dist/affiliates/index.js +3 -3
  19. package/dist/analytics/index.js +6 -6
  20. package/dist/articles/index.js +1 -1
  21. package/dist/articles/server-ui.js +3 -3
  22. package/dist/articles/server.js +2 -2
  23. package/dist/chat/index.js +8 -8
  24. package/dist/{chunk-B42B2D3N.js → chunk-6AWIUO2Z.js} +1 -1
  25. package/dist/{chunk-PJWAZ3NK.js → chunk-6NXFA7HE.js} +1 -1
  26. package/dist/{chunk-DY3OOSYN.js → chunk-72F44HKL.js} +8 -2
  27. package/dist/{chunk-LKYXK26A.js → chunk-7R2STOVD.js} +5 -5
  28. package/dist/{chunk-TDPYVU3Z.js → chunk-AJG74ZZV.js} +2 -2
  29. package/dist/{chunk-F4CTVKTD.js → chunk-BUE3Z32O.js} +1 -1
  30. package/dist/{chunk-ZPARXMUW.js → chunk-CMUD37WV.js} +1 -1
  31. package/dist/{chunk-TYAVHRWH.js → chunk-CVADNHJ4.js} +8 -2
  32. package/dist/{chunk-2Q4FBZHZ.js → chunk-DSD3XZQQ.js} +1 -1
  33. package/dist/{chunk-N7XRLWGW.js → chunk-FTSEP7Q3.js} +3 -3
  34. package/dist/{chunk-QXTM6ZC5.js → chunk-GFY3E7EQ.js} +2 -2
  35. package/dist/{chunk-AVDSPRCL.js → chunk-HMTPRBYJ.js} +2 -2
  36. package/dist/{chunk-SNU74EFA.js → chunk-IGAIQ2B3.js} +2 -2
  37. package/dist/{chunk-5HQOFANA.js → chunk-IYCSDFPN.js} +2 -2
  38. package/dist/{chunk-OISBBGOB.js → chunk-JSW42BHL.js} +1 -1
  39. package/dist/{chunk-IIBDU7EN.js → chunk-KTMHRXDT.js} +1 -1
  40. package/dist/{chunk-7QAPTPY7.js → chunk-L6QTERSH.js} +1 -1
  41. package/dist/{chunk-6AD52ATG.js → chunk-NI6ZTP3D.js} +4 -9
  42. package/dist/{chunk-ZHRHB4XS.js → chunk-NUXXFCIT.js} +2 -2
  43. package/dist/{chunk-AWQD6V77.js → chunk-O3Z5HHFP.js} +1 -1
  44. package/dist/{chunk-HOFIM5HD.js → chunk-OFSV5TZY.js} +1 -1
  45. package/dist/{chunk-D24GZ5DA.js → chunk-OWO3RFEX.js} +2 -2
  46. package/dist/{chunk-2TL6SL5V.js → chunk-QNOJSSQT.js} +1 -1
  47. package/dist/{chunk-P7HAR2NS.js → chunk-QQT2T6JQ.js} +1 -1
  48. package/dist/{chunk-5SQK3D53.js → chunk-TYSIAWC3.js} +1 -0
  49. package/dist/{chunk-NONH4CXJ.js → chunk-U34O6I7W.js} +2 -2
  50. package/dist/{chunk-JVOLGFBE.js → chunk-VA6IJ55K.js} +1 -1
  51. package/dist/{chunk-LNSF6BJC.js → chunk-VPZJ7ZTL.js} +2 -2
  52. package/dist/{chunk-4SX2HMLH.js → chunk-YJH6WE76.js} +9 -9
  53. package/dist/{chunk-I75RODCU.js → chunk-YNBRVVTX.js} +1 -1
  54. package/dist/{chunk-JQXHA6WI.js → chunk-ZZSAWXWD.js} +1 -1
  55. package/dist/client/index.js +6 -6
  56. package/dist/contracts/broadcast-layouts.d.ts +133 -0
  57. package/dist/contracts/business-claims.d.ts +456 -0
  58. package/dist/contracts/entries.d.ts +1 -1
  59. package/dist/contracts/outreach.d.ts +267 -0
  60. package/dist/contracts/page-titles.d.ts +140 -0
  61. package/dist/contracts/public-url-host.d.ts +10 -0
  62. package/dist/contracts/publication-branding.d.ts +143 -0
  63. package/dist/contracts/publication-charter.d.ts +14 -0
  64. package/dist/fleet/index.js +4 -4
  65. package/dist/forms/FileField.d.ts +3 -1
  66. package/dist/forms/PrivateFileField.d.ts +3 -0
  67. package/dist/forms/index.js +11 -11
  68. package/dist/forms/private-file-rules.d.ts +8 -0
  69. package/dist/forms/server.js +5 -5
  70. package/dist/forms/static.js +3 -3
  71. package/dist/forms/styles.css +17 -1
  72. package/dist/forms/types.d.ts +4 -0
  73. package/dist/images/index.js +4 -4
  74. package/dist/index.js +1 -1
  75. package/dist/layout/client.js +9 -9
  76. package/dist/layout/index.js +10 -10
  77. package/dist/llms/index.js +4 -4
  78. package/dist/maps/index.js +3 -3
  79. package/dist/mcp/sonor.js +11 -9
  80. package/dist/revalidate/index.js +2 -2
  81. package/dist/runtime/index.js +3 -3
  82. package/dist/seo/client.js +4 -4
  83. package/dist/seo/index.js +4 -4
  84. package/dist/seo/llms.js +4 -4
  85. package/dist/seo/register-sitemap-cli.js +1 -1
  86. package/dist/seo/sitemap.js +2 -2
  87. package/dist/server/index.js +2 -2
  88. package/dist/shared/version.d.ts +1 -1
  89. package/dist/signal/index.js +2 -2
  90. package/dist/sitemap/index.js +2 -2
  91. package/dist/sync/api.d.ts +3 -0
  92. package/dist/sync/index.js +7 -5
  93. package/dist/website/images.js +4 -4
  94. package/dist/website/index.js +5 -5
  95. package/dist/website/popups.js +6 -6
  96. package/dist/{writeLLMsTxt-NOTTCJB5.js → writeLLMsTxt-KHVHNSDM.js} +1 -1
  97. package/package.json +1 -1
  98. package/src/forms/README.md +22 -0
  99. package/src/sync/README.md +8 -0
  100. package/dist/FileField-PZOAS6MJ.js +0 -83
  101. package/dist/{chunk-ZKADJNR2.js → chunk-IPQKQEWI.js} +1 -1
  102. /package/dist/{chunk-MWWGUEBK.js → chunk-V67OD7RW.js} +0 -0
@@ -5,7 +5,7 @@ export { articleImageSchema, authorEntityId, generateArticleAuthorNode, generate
5
5
  import '../chunk-H72ZFO3F.js';
6
6
  export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-4K735O3J.js';
7
7
  import '../chunk-34ZYJTQR.js';
8
- import '../chunk-OISBBGOB.js';
8
+ import '../chunk-JSW42BHL.js';
9
9
  import '../chunk-UAYAJPEP.js';
10
10
  import '../chunk-VWWITFWM.js';
11
11
  import '../chunk-4KZ6W3ZH.js';
@@ -17,5 +17,5 @@ import '../chunk-YVKRYQRG.js';
17
17
  import '../chunk-FESKKJAS.js';
18
18
  import '../chunk-A4CC4ZG3.js';
19
19
  import '../chunk-W7OPEMGJ.js';
20
- import '../chunk-F4CTVKTD.js';
20
+ import '../chunk-BUE3Z32O.js';
21
21
  import '../chunk-PKBMQBKP.js';
@@ -1,26 +1,26 @@
1
1
  'use client';
2
- export { ChatWidget, DEFAULT_LAUNCHER_OFFSET_BOTTOM, EchoChat, chatLauncherStyles, isChatEnabled } from '../chunk-SNU74EFA.js';
3
- export { SiteChat } from '../chunk-AWQD6V77.js';
2
+ export { ChatWidget, DEFAULT_LAUNCHER_OFFSET_BOTTOM, EchoChat, chatLauncherStyles, isChatEnabled } from '../chunk-IGAIQ2B3.js';
3
+ export { SiteChat } from '../chunk-O3Z5HHFP.js';
4
4
  import '../chunk-6T6CQVNL.js';
5
5
  import '../chunk-JE4A5S4F.js';
6
6
  import '../chunk-27FISYK4.js';
7
- import '../chunk-AVDSPRCL.js';
7
+ import '../chunk-HMTPRBYJ.js';
8
8
  import '../chunk-Q6E4OPGG.js';
9
9
  import '../chunk-5ROTTMBL.js';
10
10
  import '../chunk-C2FZBUSS.js';
11
- import '../chunk-5SQK3D53.js';
11
+ import '../chunk-TYSIAWC3.js';
12
12
  import '../chunk-HW7B43E5.js';
13
13
  import '../chunk-NJCTQH2P.js';
14
14
  import '../chunk-S22FSH7C.js';
15
15
  import '../chunk-L2V5PUFN.js';
16
- import '../chunk-5TM3WPCI.js';
17
16
  import '../chunk-GJWI74ZZ.js';
17
+ import '../chunk-5TM3WPCI.js';
18
18
  import '../chunk-DLM4FFNH.js';
19
19
  import '../chunk-EKBEOXTH.js';
20
- import '../chunk-5HQOFANA.js';
21
- import '../chunk-P7HAR2NS.js';
20
+ import '../chunk-IYCSDFPN.js';
21
+ import '../chunk-QQT2T6JQ.js';
22
22
  import '../chunk-W7OPEMGJ.js';
23
- import '../chunk-F4CTVKTD.js';
23
+ import '../chunk-BUE3Z32O.js';
24
24
  import '../chunk-PKBMQBKP.js';
25
25
 
26
26
  // src/chat/echo-config.ts
@@ -1,4 +1,4 @@
1
- import { publishSiteCredential } from './chunk-JVOLGFBE.js';
1
+ import { publishSiteCredential } from './chunk-VA6IJ55K.js';
2
2
 
3
3
  // src/client/SiteKitCredential.tsx
4
4
  function SiteKitCredential({
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { locToPath, isMalformedSitemapPath, inferPageType } from './chunk-YVKRYQRG.js';
3
3
  import { resolveAnalyticsTarget } from './chunk-DLM4FFNH.js';
4
- import { sonorFetch } from './chunk-5HQOFANA.js';
4
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
5
5
  import { useRef, useEffect } from 'react';
6
6
 
7
7
  var SYNC_STAMP_KEY = "_sk_sitemap_synced_at";
@@ -1,4 +1,5 @@
1
- import { sonorFetch } from './chunk-5HQOFANA.js';
1
+ import { readAnalyticsIdentity } from './chunk-5ROTTMBL.js';
2
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
2
3
  import { getClientApiConfig } from './chunk-W7OPEMGJ.js';
3
4
 
4
5
  // src/sync/api.ts
@@ -91,10 +92,15 @@ async function createBooking(bookingData, apiUrl, apiKey) {
91
92
  const url = apiUrl || cfg.apiUrl;
92
93
  const key = apiKey || cfg.apiKey;
93
94
  const endpoint = key ? `${url}/sync/widget/booking` : `${url}/sync/public/booking`;
95
+ const identity = readAnalyticsIdentity();
94
96
  const response = await sonorFetch(endpoint, {
95
97
  method: "POST",
96
98
  headers: buildHeaders(true),
97
- body: JSON.stringify(bookingData)
99
+ body: JSON.stringify({
100
+ ...bookingData,
101
+ visitorId: bookingData.visitorId ?? identity.visitorId ?? void 0,
102
+ analyticsSessionId: bookingData.analyticsSessionId ?? identity.sessionId ?? void 0
103
+ })
98
104
  }, { apiKey: key, retries: 0 });
99
105
  if (!response.ok) {
100
106
  throw await bookingRequestError(response, "We couldn\u2019t complete your booking. Please try again.");
@@ -1,11 +1,11 @@
1
1
  'use client';
2
- import { countStageViews, countStageQuestions, useFieldControls } from './chunk-6AD52ATG.js';
3
- import { useFormLoadedAt, useFormTracking, submitForm, useRecaptchaWarmup, useForm } from './chunk-AVDSPRCL.js';
2
+ import { countStageViews, countStageQuestions, useFieldControls } from './chunk-NI6ZTP3D.js';
3
+ import { useFormLoadedAt, useFormTracking, submitForm, useRecaptchaWarmup, useForm } from './chunk-HMTPRBYJ.js';
4
4
  import { readAgentSubmit, formToolAttributes } from './chunk-Q6E4OPGG.js';
5
5
  import { isFieldVisible, validateField, isFieldComplete, isDisplayOnly, unseenControlValues } from './chunk-C2FZBUSS.js';
6
6
  import { HoneypotField } from './chunk-DXO6SBMD.js';
7
- import { DelightStyles, FormMomentum, FormField } from './chunk-TYAVHRWH.js';
8
- import { DEFAULT_FORM_SUCCESS_MESSAGE } from './chunk-5SQK3D53.js';
7
+ import { DelightStyles, FormMomentum, FormField } from './chunk-CVADNHJ4.js';
8
+ import { DEFAULT_FORM_SUCCESS_MESSAGE } from './chunk-TYSIAWC3.js';
9
9
  import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
10
10
  import { useState, useRef, useMemo, useEffect, useCallback } from 'react';
11
11
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
@@ -63,7 +63,7 @@ function FormClient({
63
63
  return;
64
64
  }
65
65
  let cancelled = false;
66
- const load = resolvedExperience === "stage" ? import('./FormStage-FU5AOMED.js').then((m) => m.FormStage) : import('./FormSpotlight-JNTADX4I.js').then((m) => m.FormSpotlight);
66
+ const load = resolvedExperience === "stage" ? import('./FormStage-2PLWWYBW.js').then((m) => m.FormStage) : import('./FormSpotlight-H73ZZ66T.js').then((m) => m.FormSpotlight);
67
67
  load.then((Component) => {
68
68
  if (!cancelled) setExperience(() => Component);
69
69
  }).catch((err) => {
@@ -1,5 +1,5 @@
1
- import { FormEnhancer } from './chunk-D24GZ5DA.js';
2
- import { StaticForm } from './chunk-LNSF6BJC.js';
1
+ import { FormEnhancer } from './chunk-OWO3RFEX.js';
2
+ import { StaticForm } from './chunk-VPZJ7ZTL.js';
3
3
  import { serverApiFetch } from './chunk-C7TLGL3R.js';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,4 +1,4 @@
1
1
  // src/shared/version.ts
2
- var SITE_KIT_VERSION = "8.5.1";
2
+ var SITE_KIT_VERSION = "8.6.0";
3
3
 
4
4
  export { SITE_KIT_VERSION };
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { sonorFetch } from './chunk-5HQOFANA.js';
2
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
3
3
  import { useState, useCallback, useEffect } from 'react';
4
4
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
5
5
 
@@ -609,12 +609,18 @@ function FormField({ field, value, error, onChange, onFocus, onBlur, classPrefix
609
609
  inputId,
610
610
  classPrefix,
611
611
  baseInputStyle,
612
- onChange: emit
612
+ onChange: emit,
613
+ ariaInvalid: a11y["aria-invalid"],
614
+ describedBy
613
615
  }
614
616
  ) : (
615
617
  // Static: a real file input so the field is visible and labelled,
616
618
  // but the Sonor upload only happens once enhanced.
617
- /* @__PURE__ */ jsx(
619
+ field.validation?.private_attachments ? /* @__PURE__ */ jsxs("div", { className: "sk-file-dropzone", "aria-busy": "true", children: [
620
+ /* @__PURE__ */ jsx("span", { className: "sk-file-dropzone__title", children: "Drop your estimate here" }),
621
+ /* @__PURE__ */ jsx("span", { className: "sk-file-dropzone__hint", children: "Preparing private upload\u2026" }),
622
+ /* @__PURE__ */ jsx("input", { id: inputId, type: "file", name: field.slug, disabled: true, "aria-label": field.label, className: "sk-file-dropzone__input" })
623
+ ] }) : /* @__PURE__ */ jsx(
618
624
  "input",
619
625
  {
620
626
  id: inputId,
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { getSiteDesignTokens, tokensForReport, shouldReportDesign, sendSiteDesign } from './chunk-ZHRHB4XS.js';
2
+ import { getSiteDesignTokens, tokensForReport, shouldReportDesign, sendSiteDesign } from './chunk-NUXXFCIT.js';
3
3
  import { designTokensHash } from './chunk-IHG36STL.js';
4
4
  import { useDeferredActivation } from './chunk-YC7ELZS3.js';
5
5
  import { resolveAnalyticsTarget } from './chunk-DLM4FFNH.js';
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { DEFAULT_WIDGET_Z_INDEX } from './chunk-27FISYK4.js';
3
3
  import { readAnalyticsIdentity } from './chunk-5ROTTMBL.js';
4
- import { getOrCreateVisitorId } from './chunk-ZKADJNR2.js';
4
+ import { getOrCreateVisitorId } from './chunk-IPQKQEWI.js';
5
5
  import { resolveAnalyticsTarget } from './chunk-DLM4FFNH.js';
6
- import { sonorFetch } from './chunk-5HQOFANA.js';
6
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
7
7
  import { useState, useEffect, useCallback, useRef } from 'react';
8
8
  import ReactDOM from 'react-dom';
9
9
  import dynamic from 'next/dynamic';
@@ -161,7 +161,7 @@ function activatePopup(active, id, popups) {
161
161
  return [...active, id];
162
162
  }
163
163
  var LazyBlocksPopup = dynamic(
164
- () => import('./BlocksPopup-OL3L6BKW.js').then((m) => ({ default: m.BlocksPopup })),
164
+ () => import('./BlocksPopup-AJ3CKVQG.js').then((m) => ({ default: m.BlocksPopup })),
165
165
  { ssr: false }
166
166
  );
167
167
  function SitePopups(props) {
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { registerAnalyticsDispatcher } from './chunk-LCDVPAMR.js';
3
- import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-ZKADJNR2.js';
3
+ import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-IPQKQEWI.js';
4
4
  import { onPageLeave } from './chunk-L2V5PUFN.js';
5
5
  import { resolveAnalyticsTarget } from './chunk-DLM4FFNH.js';
6
- import { sonorFetch, sonorBeacon } from './chunk-5HQOFANA.js';
6
+ import { sonorFetch, sonorBeacon } from './chunk-IYCSDFPN.js';
7
7
  import { createContext, useRef, useEffect, useState, useMemo, useCallback, useContext } from 'react';
8
8
  import { usePathname } from 'next/navigation';
9
9
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -2,11 +2,11 @@
2
2
  import { readAgentSubmit, formToolAttributes } from './chunk-Q6E4OPGG.js';
3
3
  import { readAnalyticsIdentity } from './chunk-5ROTTMBL.js';
4
4
  import { isFieldVisible, validateField, isFieldComplete, unseenControlValues } from './chunk-C2FZBUSS.js';
5
- import { normalizeFormConfig, DEFAULT_FORM_SUCCESS_MESSAGE } from './chunk-5SQK3D53.js';
5
+ import { normalizeFormConfig, DEFAULT_FORM_SUCCESS_MESSAGE } from './chunk-TYSIAWC3.js';
6
6
  import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
7
7
  import { onPageLeave } from './chunk-L2V5PUFN.js';
8
8
  import { uuid } from './chunk-GJWI74ZZ.js';
9
- import { sonorFetch, sonorBeacon } from './chunk-5HQOFANA.js';
9
+ import { sonorFetch, sonorBeacon } from './chunk-IYCSDFPN.js';
10
10
  import { readPublishedApiConfig, getClientApiConfig } from './chunk-W7OPEMGJ.js';
11
11
  import { useRef, useCallback, useEffect, useState, useMemo } from 'react';
12
12
 
@@ -2,9 +2,9 @@
2
2
  import { VISUAL_VIEWPORT_GAP_PROPERTY } from './chunk-6T6CQVNL.js';
3
3
  import { GlassStyles } from './chunk-JE4A5S4F.js';
4
4
  import { DEFAULT_WIDGET_Z_INDEX } from './chunk-27FISYK4.js';
5
- import { useForm } from './chunk-AVDSPRCL.js';
5
+ import { useForm } from './chunk-HMTPRBYJ.js';
6
6
  import { parseColor, relativeLuminance, DARK_LUMINANCE, contrastRatio } from './chunk-S22FSH7C.js';
7
- import { sonorFetch } from './chunk-5HQOFANA.js';
7
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
8
8
  import { readPublishedApiConfig } from './chunk-W7OPEMGJ.js';
9
9
  import { useState, useEffect, useRef, useLayoutEffect, useCallback, Fragment as Fragment$1 } from 'react';
10
10
  import { lexer } from 'marked';
@@ -1,5 +1,5 @@
1
- import { isTokenMode, getFreshCredential, isSiteToken, refreshSiteToken, currentCredential, credentialBreakerId } from './chunk-P7HAR2NS.js';
2
- import { SITE_KIT_VERSION } from './chunk-F4CTVKTD.js';
1
+ import { isTokenMode, getFreshCredential, isSiteToken, refreshSiteToken, currentCredential, credentialBreakerId } from './chunk-QQT2T6JQ.js';
2
+ import { SITE_KIT_VERSION } from './chunk-BUE3Z32O.js';
3
3
 
4
4
  // src/shared/fetchWithRetry.ts
5
5
  function backoffDelay(attempt, response) {
@@ -1,7 +1,7 @@
1
1
  import { trackedFreshFetch } from './chunk-UAYAJPEP.js';
2
2
  import { isNextControlFlow } from './chunk-C7TLGL3R.js';
3
3
  import { monotonicMs } from './chunk-MH2DSGC6.js';
4
- import { SITE_KIT_VERSION } from './chunk-F4CTVKTD.js';
4
+ import { SITE_KIT_VERSION } from './chunk-BUE3Z32O.js';
5
5
  import 'server-only';
6
6
 
7
7
  var MINT_PATH = "/api/public/site-token";
@@ -1,4 +1,4 @@
1
- import { generateLLMsTxt, generateLLMsFullTxt, appendAgentAccessSection } from './chunk-MWWGUEBK.js';
1
+ import { generateLLMsTxt, generateLLMsFullTxt, appendAgentAccessSection } from './chunk-V67OD7RW.js';
2
2
  import { createHash } from 'crypto';
3
3
  import { existsSync, readFileSync } from 'fs';
4
4
  import { join } from 'path';
@@ -1,4 +1,4 @@
1
- import { sonorFetch } from './chunk-5HQOFANA.js';
1
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
2
2
  import { readPublishedApiConfig } from './chunk-W7OPEMGJ.js';
3
3
 
4
4
  // src/forms/formsApi.ts
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { isEmptyValue, isDisplayOnly } from './chunk-C2FZBUSS.js';
3
- import { useMemo, useState, useRef, useEffect } from 'react';
3
+ import { useMemo, useState, useEffect } from 'react';
4
4
 
5
5
  var NO_CONTROLS = {};
6
6
  function useFieldControls(fields) {
@@ -13,23 +13,18 @@ function useFieldControls(fields) {
13
13
  [fields]
14
14
  );
15
15
  const [controls, setControls] = useState(NO_CONTROLS);
16
- const requested = useRef({ date: false, file: false });
17
16
  useEffect(() => {
18
17
  let cancelled = false;
19
- if (needsDate && !requested.current.date) {
20
- requested.current.date = true;
18
+ if (needsDate) {
21
19
  import('./DatePicker-JEBV6WYJ.js').then((m) => {
22
20
  if (!cancelled) setControls((prev) => ({ ...prev, Date: m.DatePicker }));
23
21
  }).catch(() => {
24
- requested.current.date = false;
25
22
  });
26
23
  }
27
- if (needsFile && !requested.current.file) {
28
- requested.current.file = true;
29
- import('./FileField-PZOAS6MJ.js').then((m) => {
24
+ if (needsFile) {
25
+ import('./FileField-UEQYIFRO.js').then((m) => {
30
26
  if (!cancelled) setControls((prev) => ({ ...prev, File: m.FileField }));
31
27
  }).catch(() => {
32
- requested.current.file = false;
33
28
  });
34
29
  }
35
30
  return () => {
@@ -1,8 +1,8 @@
1
1
  import { toHexColor, normalizeDesignTokens, designTokensHash } from './chunk-IHG36STL.js';
2
2
  import { contrastRatio, parseColor, relativeLuminance } from './chunk-S22FSH7C.js';
3
3
  import { resolveAnalyticsTarget } from './chunk-DLM4FFNH.js';
4
- import { sonorFetch } from './chunk-5HQOFANA.js';
5
- import { SITE_KIT_VERSION } from './chunk-F4CTVKTD.js';
4
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
5
+ import { SITE_KIT_VERSION } from './chunk-BUE3Z32O.js';
6
6
 
7
7
  // src/website/design.ts
8
8
  var SITE_DESIGN_PATH = "/api/public/site/design";
@@ -7,7 +7,7 @@ import dynamic from 'next/dynamic';
7
7
  import { jsx } from 'react/jsx-runtime';
8
8
 
9
9
  var LazyChatWidget = dynamic(
10
- () => import('./ChatWidget-YSGSX3WM.js').then((m) => ({ default: m.ChatWidget })),
10
+ () => import('./ChatWidget-EYBVB5SZ.js').then((m) => ({ default: m.ChatWidget })),
11
11
  { ssr: false }
12
12
  );
13
13
  function SiteChat(props) {
@@ -54,7 +54,7 @@ function useSignal() {
54
54
  return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
55
55
  }
56
56
  var LazySignalCore = dynamic(
57
- () => import('./SignalCore-MTYA5WGO.js').then((m) => ({ default: m.SignalCore })),
57
+ () => import('./SignalCore-FEFNMNYN.js').then((m) => ({ default: m.SignalCore })),
58
58
  { ssr: false }
59
59
  );
60
60
  function SignalBridge({
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { shellValuesToCarry } from './chunk-C2FZBUSS.js';
3
3
  import { useDeferredActivation } from './chunk-YC7ELZS3.js';
4
- import { normalizeFormConfig } from './chunk-5SQK3D53.js';
4
+ import { normalizeFormConfig } from './chunk-TYSIAWC3.js';
5
5
  import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
6
6
  import React, { useRef, useEffect, useState, useMemo, useCallback } from 'react';
7
7
  import { jsx, jsxs } from 'react/jsx-runtime';
8
8
 
9
- var loadInteractiveForm = () => import('./ManagedForm-XS6JPQLH.js').then((m) => m.ManagedForm);
9
+ var loadInteractiveForm = () => import('./ManagedForm-ZQOFXEWS.js').then((m) => m.ManagedForm);
10
10
  var REPLAY_WAIT_MS = 8e3;
11
11
  function FormEnhancer({
12
12
  formId,
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { detectTimezone, releaseSlotHold, fetchBookingTypeDetails, fetchBookingTypes, fetchAvailability, createSlotHold, createBooking, formatDuration, formatDate, formatTime, prepareMeeting } from './chunk-DY3OOSYN.js';
2
+ import { detectTimezone, releaseSlotHold, fetchBookingTypeDetails, fetchBookingTypes, fetchAvailability, createSlotHold, createBooking, formatDuration, formatDate, formatTime, prepareMeeting } from './chunk-72F44HKL.js';
3
3
  import { readPublishedApiConfig, DEFAULT_SONOR_API_URL } from './chunk-W7OPEMGJ.js';
4
4
  import { useState, useRef, useMemo, useCallback, useEffect, useId } from 'react';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { SITE_KIT_VERSION } from './chunk-F4CTVKTD.js';
1
+ import { SITE_KIT_VERSION } from './chunk-BUE3Z32O.js';
2
2
 
3
3
  // src/shared/siteToken.ts
4
4
  var SITE_TOKEN_PREFIX = "st1.";
@@ -15,6 +15,7 @@ function normalizeFormConfig(data) {
15
15
  const success_message = apiSuccess || (typeof data.successMessage === "string" ? String(data.successMessage).trim() : "") || DEFAULT_FORM_SUCCESS_MESSAGE;
16
16
  return {
17
17
  ...data,
18
+ fields: data.fields?.map((field) => ({ ...field, form_id: field.form_id || data.id })),
18
19
  success_message,
19
20
  total_steps,
20
21
  is_multi_step
@@ -2,8 +2,8 @@
2
2
  import { sanitizeFleetVersion, buildFleetHeartbeatPayload } from './chunk-ZTZQPYP6.js';
3
3
  import { useDeferredActivation } from './chunk-YC7ELZS3.js';
4
4
  import { resolveAnalyticsTarget } from './chunk-DLM4FFNH.js';
5
- import { sonorFetch } from './chunk-5HQOFANA.js';
6
- import { SITE_KIT_VERSION } from './chunk-F4CTVKTD.js';
5
+ import { sonorFetch } from './chunk-IYCSDFPN.js';
6
+ import { SITE_KIT_VERSION } from './chunk-BUE3Z32O.js';
7
7
  import { useRef, useEffect } from 'react';
8
8
 
9
9
  // src/fleet/heartbeat.ts
@@ -1,5 +1,5 @@
1
1
  import { resolveSiteHost } from './chunk-FESKKJAS.js';
2
- import { configureSiteCredential, currentCredential } from './chunk-P7HAR2NS.js';
2
+ import { configureSiteCredential, currentCredential } from './chunk-QQT2T6JQ.js';
3
3
 
4
4
  // src/shared/publishCredential.ts
5
5
  function publishSiteCredential({
@@ -1,6 +1,6 @@
1
1
  import { HoneypotField } from './chunk-DXO6SBMD.js';
2
- import { FormField } from './chunk-TYAVHRWH.js';
3
- import { normalizeFormConfig } from './chunk-5SQK3D53.js';
2
+ import { FormField } from './chunk-CVADNHJ4.js';
3
+ import { normalizeFormConfig } from './chunk-TYSIAWC3.js';
4
4
  import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { SITE_EDIT_PARAM } from './chunk-6G43IRWR.js';
3
- import { publishSiteCredential } from './chunk-JVOLGFBE.js';
4
- import { FleetHeartbeat } from './chunk-NONH4CXJ.js';
3
+ import { publishSiteCredential } from './chunk-VA6IJ55K.js';
4
+ import { FleetHeartbeat } from './chunk-U34O6I7W.js';
5
5
  import { useDeferredActivation } from './chunk-YC7ELZS3.js';
6
6
  import { resolveSiteHost } from './chunk-FESKKJAS.js';
7
- import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-ZKADJNR2.js';
7
+ import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-IPQKQEWI.js';
8
8
  import { announceFrameReady, isPrivatePreview, isCrossOriginFrame } from './chunk-DLM4FFNH.js';
9
- import { SignalBridge } from './chunk-HOFIM5HD.js';
9
+ import { SignalBridge } from './chunk-OFSV5TZY.js';
10
10
  import React, { useState, useRef, useCallback, useEffect, Suspense } from 'react';
11
11
  import dynamic from 'next/dynamic';
12
12
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
@@ -33,23 +33,23 @@ function startEditBridge() {
33
33
  };
34
34
  }
35
35
  var LazyAnalyticsProvider = dynamic(
36
- () => import('./AnalyticsProvider-KLOAGTWZ.js').then((m) => ({ default: m.AnalyticsProvider })),
36
+ () => import('./AnalyticsProvider-GVJYL6XY.js').then((m) => ({ default: m.AnalyticsProvider })),
37
37
  { ssr: false }
38
38
  );
39
39
  var LazySiteChat = dynamic(
40
- () => import('./SiteChat-W25JYBBW.js').then((m) => ({ default: m.SiteChat })),
40
+ () => import('./SiteChat-3MKYL2XM.js').then((m) => ({ default: m.SiteChat })),
41
41
  { ssr: false }
42
42
  );
43
43
  var LazySitePopups = dynamic(
44
- () => import('./SitePopups-Q6OZDNCA.js').then((m) => ({ default: m.SitePopups })),
44
+ () => import('./SitePopups-C44YTQ3Q.js').then((m) => ({ default: m.SitePopups })),
45
45
  { ssr: false }
46
46
  );
47
47
  var LazySiteDesignReporter = dynamic(
48
- () => import('./SiteDesignReporter-7ZJYE2EL.js').then((m) => ({ default: m.SiteDesignReporter })),
48
+ () => import('./SiteDesignReporter-AJDIBNHI.js').then((m) => ({ default: m.SiteDesignReporter })),
49
49
  { ssr: false }
50
50
  );
51
51
  var LazySitemapSync = dynamic(
52
- () => import('./SitemapSync-X5RLROGU.js').then((m) => ({ default: m.SitemapSync })),
52
+ () => import('./SitemapSync-UJA6JVPW.js').then((m) => ({ default: m.SitemapSync })),
53
53
  { ssr: false }
54
54
  );
55
55
  function SiteKitClientProviders({
@@ -1,5 +1,5 @@
1
1
  import { secretsMatch, readCappedBody } from './chunk-XTRZGXB2.js';
2
- import { SITE_KIT_VERSION } from './chunk-F4CTVKTD.js';
2
+ import { SITE_KIT_VERSION } from './chunk-BUE3Z32O.js';
3
3
 
4
4
  // src/llms/revalidate.ts
5
5
  function createLlmsRevalidateHandler(secret, options) {
@@ -1,4 +1,4 @@
1
- import { writeLLMsTxtToPublic } from './chunk-MWWGUEBK.js';
1
+ import { writeLLMsTxtToPublic } from './chunk-V67OD7RW.js';
2
2
  import { getSiteConfig } from './chunk-Z22QVHT4.js';
3
3
  import { buildFetch } from './chunk-UAYAJPEP.js';
4
4
  import { findAppDirForDiscovery } from './chunk-ZEGVKVD5.js';
@@ -1,14 +1,14 @@
1
1
  'use client';
2
- export { SiteKitCredential } from '../chunk-B42B2D3N.js';
3
- import '../chunk-JVOLGFBE.js';
2
+ export { SiteKitCredential } from '../chunk-6AWIUO2Z.js';
3
+ import '../chunk-VA6IJ55K.js';
4
4
  export { VISUAL_VIEWPORT_GAP_PROPERTY, VisualViewportGap, useVisualViewportGap } from '../chunk-6T6CQVNL.js';
5
5
  export { useDeferredActivation } from '../chunk-YC7ELZS3.js';
6
6
  import '../chunk-FESKKJAS.js';
7
7
  import '../chunk-A4CC4ZG3.js';
8
8
  export { trackConversion, trackEvent } from '../chunk-LCDVPAMR.js';
9
- export { getOrCreateSessionId, getOrCreateVisitorId, useSiteKitIdentity } from '../chunk-ZKADJNR2.js';
10
- import '../chunk-5TM3WPCI.js';
9
+ export { getOrCreateSessionId, getOrCreateVisitorId, useSiteKitIdentity } from '../chunk-IPQKQEWI.js';
11
10
  import '../chunk-GJWI74ZZ.js';
12
- import '../chunk-P7HAR2NS.js';
13
- import '../chunk-F4CTVKTD.js';
11
+ import '../chunk-5TM3WPCI.js';
12
+ import '../chunk-QQT2T6JQ.js';
13
+ import '../chunk-BUE3Z32O.js';
14
14
  import '../chunk-PKBMQBKP.js';