@sonordev/site-kit 3.8.0 → 3.8.2

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 (143) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-BEYTYANB.js +31 -0
  3. package/dist/{AnalyticsProvider-4KMGMQVD.js.map → AnalyticsProvider-BEYTYANB.js.map} +1 -1
  4. package/dist/AnalyticsProvider-W6JTVA53.mjs +10 -0
  5. package/dist/{AnalyticsProvider-M4BFCRKM.mjs.map → AnalyticsProvider-W6JTVA53.mjs.map} +1 -1
  6. package/dist/ChatWidget-4LIVFU4D.mjs +10 -0
  7. package/dist/{ChatWidget-IV3LIMLK.mjs.map → ChatWidget-4LIVFU4D.mjs.map} +1 -1
  8. package/dist/ChatWidget-ROSD5Z5L.js +19 -0
  9. package/dist/{ChatWidget-I6YFEKW6.js.map → ChatWidget-ROSD5Z5L.js.map} +1 -1
  10. package/dist/EngageWidget-R4AVDCHH.mjs +9 -0
  11. package/dist/{EngageWidget-AWVB35ZM.mjs.map → EngageWidget-R4AVDCHH.mjs.map} +1 -1
  12. package/dist/EngageWidget-XDNGD27U.js +18 -0
  13. package/dist/{EngageWidget-TQW76BUU.js.map → EngageWidget-XDNGD27U.js.map} +1 -1
  14. package/dist/{SignalCore-VX7ZL5HE.js → SignalCore-6FLPIZZO.js} +11 -11
  15. package/dist/{SignalCore-VX7ZL5HE.js.map → SignalCore-6FLPIZZO.js.map} +1 -1
  16. package/dist/{SignalCore-4FUGFP5E.mjs → SignalCore-RHZENHAU.mjs} +5 -5
  17. package/dist/{SignalCore-4FUGFP5E.mjs.map → SignalCore-RHZENHAU.mjs.map} +1 -1
  18. package/dist/SitemapSync-XQ7ELE4L.mjs +8 -0
  19. package/dist/{SitemapSync-CXDEUYM2.mjs.map → SitemapSync-XQ7ELE4L.mjs.map} +1 -1
  20. package/dist/SitemapSync-XUUY4L4A.js +17 -0
  21. package/dist/{SitemapSync-XRH577AB.js.map → SitemapSync-XUUY4L4A.js.map} +1 -1
  22. package/dist/analytics/index.js +12 -12
  23. package/dist/analytics/index.mjs +5 -5
  24. package/dist/{chunk-WYRUQCL4.mjs → chunk-26JXNW7B.mjs} +7 -8
  25. package/dist/chunk-26JXNW7B.mjs.map +1 -0
  26. package/dist/{chunk-OLQBP2JQ.mjs → chunk-2SX6S6TZ.mjs} +4 -4
  27. package/dist/{chunk-OLQBP2JQ.mjs.map → chunk-2SX6S6TZ.mjs.map} +1 -1
  28. package/dist/{chunk-TKP3YFNS.mjs → chunk-2ZWDYZNB.mjs} +3 -3
  29. package/dist/{chunk-TKP3YFNS.mjs.map → chunk-2ZWDYZNB.mjs.map} +1 -1
  30. package/dist/chunk-33T23Y3P.mjs +6 -0
  31. package/dist/{chunk-JVT6CUNN.mjs.map → chunk-33T23Y3P.mjs.map} +1 -1
  32. package/dist/{chunk-HQJS7VWB.mjs → chunk-34BYGGJS.mjs} +3 -3
  33. package/dist/{chunk-HQJS7VWB.mjs.map → chunk-34BYGGJS.mjs.map} +1 -1
  34. package/dist/{chunk-DGFHYNQY.mjs → chunk-5WG4XXRD.mjs} +3 -3
  35. package/dist/{chunk-DGFHYNQY.mjs.map → chunk-5WG4XXRD.mjs.map} +1 -1
  36. package/dist/{chunk-PEFC5T7R.mjs → chunk-6CY3BBB2.mjs} +8 -8
  37. package/dist/{chunk-PEFC5T7R.mjs.map → chunk-6CY3BBB2.mjs.map} +1 -1
  38. package/dist/{chunk-I5KJ5YFU.js → chunk-7KLVWEMF.js} +15 -15
  39. package/dist/{chunk-I5KJ5YFU.js.map → chunk-7KLVWEMF.js.map} +1 -1
  40. package/dist/{chunk-ATOUXWFR.js → chunk-ABYRTWUF.js} +15 -15
  41. package/dist/{chunk-ATOUXWFR.js.map → chunk-ABYRTWUF.js.map} +1 -1
  42. package/dist/{chunk-7UKIAZ6E.mjs → chunk-BMK77XFD.mjs} +4 -4
  43. package/dist/{chunk-7UKIAZ6E.mjs.map → chunk-BMK77XFD.mjs.map} +1 -1
  44. package/dist/{chunk-V6CWHT6B.js → chunk-BUT5Z3FM.js} +9 -9
  45. package/dist/{chunk-V6CWHT6B.js.map → chunk-BUT5Z3FM.js.map} +1 -1
  46. package/dist/{chunk-5GJ6V7FI.js → chunk-CTTAVGRL.js} +7 -7
  47. package/dist/{chunk-5GJ6V7FI.js.map → chunk-CTTAVGRL.js.map} +1 -1
  48. package/dist/{chunk-GSOLN2FC.js → chunk-DMCWF7GG.js} +5 -5
  49. package/dist/{chunk-GSOLN2FC.js.map → chunk-DMCWF7GG.js.map} +1 -1
  50. package/dist/{chunk-2WMLHR72.js → chunk-EDZWNCSE.js} +7 -8
  51. package/dist/chunk-EDZWNCSE.js.map +1 -0
  52. package/dist/{chunk-BVOUZL2S.mjs → chunk-FPMOKZ2N.mjs} +3 -3
  53. package/dist/{chunk-BVOUZL2S.mjs.map → chunk-FPMOKZ2N.mjs.map} +1 -1
  54. package/dist/{chunk-W5ZYM276.mjs → chunk-GDSOVYEU.mjs} +3 -3
  55. package/dist/{chunk-W5ZYM276.mjs.map → chunk-GDSOVYEU.mjs.map} +1 -1
  56. package/dist/{chunk-ULY2QZWA.js → chunk-H4JLKBTD.js} +4 -4
  57. package/dist/{chunk-ULY2QZWA.js.map → chunk-H4JLKBTD.js.map} +1 -1
  58. package/dist/{chunk-BB2C5JUA.js → chunk-IEHG564X.js} +4 -4
  59. package/dist/{chunk-BB2C5JUA.js.map → chunk-IEHG564X.js.map} +1 -1
  60. package/dist/{chunk-2LQGFCEA.mjs → chunk-ISUPJK7S.mjs} +3 -3
  61. package/dist/{chunk-2LQGFCEA.mjs.map → chunk-ISUPJK7S.mjs.map} +1 -1
  62. package/dist/{chunk-HQB24QUN.mjs → chunk-KIAAUJ6I.mjs} +4 -4
  63. package/dist/{chunk-HQB24QUN.mjs.map → chunk-KIAAUJ6I.mjs.map} +1 -1
  64. package/dist/{chunk-GH5RO5OW.mjs → chunk-M2PYWLBA.mjs} +3 -3
  65. package/dist/{chunk-GH5RO5OW.mjs.map → chunk-M2PYWLBA.mjs.map} +1 -1
  66. package/dist/{chunk-XDQP4JQH.js → chunk-MCFPGQBC.js} +14 -14
  67. package/dist/{chunk-XDQP4JQH.js.map → chunk-MCFPGQBC.js.map} +1 -1
  68. package/dist/{chunk-NEV2OEBF.js → chunk-NZUUXRH5.js} +9 -9
  69. package/dist/{chunk-NEV2OEBF.js.map → chunk-NZUUXRH5.js.map} +1 -1
  70. package/dist/{chunk-D4V37TBD.js → chunk-Q7J5SLDT.js} +5 -5
  71. package/dist/{chunk-D4V37TBD.js.map → chunk-Q7J5SLDT.js.map} +1 -1
  72. package/dist/{chunk-TA6CENL3.js → chunk-QZEX3CVO.js} +12 -12
  73. package/dist/{chunk-TA6CENL3.js.map → chunk-QZEX3CVO.js.map} +1 -1
  74. package/dist/chunk-R2QOW7JI.js +8 -0
  75. package/dist/{chunk-JXT2WWXW.js.map → chunk-R2QOW7JI.js.map} +1 -1
  76. package/dist/{chunk-S3J7MEOD.js → chunk-R4NE6L4D.js} +8 -8
  77. package/dist/{chunk-S3J7MEOD.js.map → chunk-R4NE6L4D.js.map} +1 -1
  78. package/dist/{chunk-Y4V5TFHP.mjs → chunk-SQCF55IF.mjs} +4 -4
  79. package/dist/{chunk-Y4V5TFHP.mjs.map → chunk-SQCF55IF.mjs.map} +1 -1
  80. package/dist/{chunk-MRVO3QO3.js → chunk-TWJSRQT5.js} +14 -14
  81. package/dist/{chunk-MRVO3QO3.js.map → chunk-TWJSRQT5.js.map} +1 -1
  82. package/dist/{chunk-R26NFTOR.mjs → chunk-U37WZT33.mjs} +3 -3
  83. package/dist/{chunk-R26NFTOR.mjs.map → chunk-U37WZT33.mjs.map} +1 -1
  84. package/dist/{chunk-YUSX3NZA.mjs → chunk-UNQOPKDM.mjs} +3 -3
  85. package/dist/{chunk-YUSX3NZA.mjs.map → chunk-UNQOPKDM.mjs.map} +1 -1
  86. package/dist/{chunk-RSFSXEV2.mjs → chunk-VANWF4DM.mjs} +4 -4
  87. package/dist/{chunk-RSFSXEV2.mjs.map → chunk-VANWF4DM.mjs.map} +1 -1
  88. package/dist/{chunk-A2FHTQGB.js → chunk-VR324SQ3.js} +3 -3
  89. package/dist/{chunk-A2FHTQGB.js.map → chunk-VR324SQ3.js.map} +1 -1
  90. package/dist/{chunk-Q6KS7FMY.js → chunk-WMZ2EYJ2.js} +13 -13
  91. package/dist/{chunk-Q6KS7FMY.js.map → chunk-WMZ2EYJ2.js.map} +1 -1
  92. package/dist/{chunk-JXN6OCFB.mjs → chunk-X6XWIAH3.mjs} +3 -3
  93. package/dist/{chunk-JXN6OCFB.mjs.map → chunk-X6XWIAH3.mjs.map} +1 -1
  94. package/dist/{chunk-MP6NHVHD.js → chunk-XTWGBNFE.js} +6 -6
  95. package/dist/{chunk-MP6NHVHD.js.map → chunk-XTWGBNFE.js.map} +1 -1
  96. package/dist/cli/index.js +2 -2
  97. package/dist/cli/index.mjs +1 -1
  98. package/dist/client/index.js +4 -4
  99. package/dist/client/index.mjs +3 -3
  100. package/dist/commerce/index.js +51 -51
  101. package/dist/commerce/index.mjs +6 -6
  102. package/dist/engage/index.js +9 -9
  103. package/dist/engage/index.mjs +6 -6
  104. package/dist/fleet/index.js +8 -8
  105. package/dist/fleet/index.mjs +4 -4
  106. package/dist/forms/index.js +97 -50
  107. package/dist/forms/index.js.map +1 -1
  108. package/dist/forms/index.mjs +89 -42
  109. package/dist/forms/index.mjs.map +1 -1
  110. package/dist/forms/styles.css +107 -2
  111. package/dist/images/index.js +11 -11
  112. package/dist/images/index.mjs +4 -4
  113. package/dist/index.js +64 -64
  114. package/dist/index.mjs +10 -10
  115. package/dist/layout/client.js +8 -8
  116. package/dist/layout/client.mjs +7 -7
  117. package/dist/layout/index.js +10 -10
  118. package/dist/layout/index.mjs +8 -8
  119. package/dist/maps/index.js +5 -5
  120. package/dist/maps/index.mjs +3 -3
  121. package/dist/seo/client.js +5 -5
  122. package/dist/seo/client.mjs +4 -4
  123. package/dist/seo/index.js +5 -5
  124. package/dist/seo/index.mjs +4 -4
  125. package/dist/server/index.js +3 -3
  126. package/dist/server/index.mjs +2 -2
  127. package/dist/signal/index.js +11 -11
  128. package/dist/signal/index.mjs +2 -2
  129. package/dist/sync/index.js +16 -16
  130. package/dist/sync/index.mjs +4 -4
  131. package/package.json +1 -1
  132. package/dist/AnalyticsProvider-4KMGMQVD.js +0 -31
  133. package/dist/AnalyticsProvider-M4BFCRKM.mjs +0 -10
  134. package/dist/ChatWidget-I6YFEKW6.js +0 -19
  135. package/dist/ChatWidget-IV3LIMLK.mjs +0 -10
  136. package/dist/EngageWidget-AWVB35ZM.mjs +0 -9
  137. package/dist/EngageWidget-TQW76BUU.js +0 -18
  138. package/dist/SitemapSync-CXDEUYM2.mjs +0 -8
  139. package/dist/SitemapSync-XRH577AB.js +0 -17
  140. package/dist/chunk-2WMLHR72.js.map +0 -1
  141. package/dist/chunk-JVT6CUNN.mjs +0 -6
  142. package/dist/chunk-JXT2WWXW.js +0 -8
  143. package/dist/chunk-WYRUQCL4.mjs.map +0 -1
@@ -1,15 +1,15 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkI5KJ5YFU_js = require('../chunk-I5KJ5YFU.js');
5
- var chunkMP6NHVHD_js = require('../chunk-MP6NHVHD.js');
6
- require('../chunk-V6CWHT6B.js');
4
+ var chunk7KLVWEMF_js = require('../chunk-7KLVWEMF.js');
5
+ var chunkXTWGBNFE_js = require('../chunk-XTWGBNFE.js');
6
+ require('../chunk-BUT5Z3FM.js');
7
7
  require('../chunk-V6NVBFEP.js');
8
8
  require('../chunk-XB57AM6T.js');
9
9
  require('../chunk-VJMPIRSD.js');
10
- require('../chunk-ATOUXWFR.js');
11
- require('../chunk-BB2C5JUA.js');
12
- require('../chunk-JXT2WWXW.js');
10
+ require('../chunk-ABYRTWUF.js');
11
+ require('../chunk-IEHG564X.js');
12
+ require('../chunk-R2QOW7JI.js');
13
13
  require('../chunk-ZSMWDLMK.js');
14
14
 
15
15
  // src/engage/echo-config.ts
@@ -41,15 +41,15 @@ function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
41
41
 
42
42
  Object.defineProperty(exports, "ChatWidget", {
43
43
  enumerable: true,
44
- get: function () { return chunkI5KJ5YFU_js.ChatWidget; }
44
+ get: function () { return chunk7KLVWEMF_js.ChatWidget; }
45
45
  });
46
46
  Object.defineProperty(exports, "DesignRenderer", {
47
47
  enumerable: true,
48
- get: function () { return chunkMP6NHVHD_js.DesignRenderer; }
48
+ get: function () { return chunkXTWGBNFE_js.DesignRenderer; }
49
49
  });
50
50
  Object.defineProperty(exports, "EngageWidget", {
51
51
  enumerable: true,
52
- get: function () { return chunkMP6NHVHD_js.EngageWidget; }
52
+ get: function () { return chunkXTWGBNFE_js.EngageWidget; }
53
53
  });
54
54
  exports.SONOR_PUBLIC_ECHO_DEFAULTS = SONOR_PUBLIC_ECHO_DEFAULTS;
55
55
  exports.getEchoWidgetProps = getEchoWidgetProps;
@@ -1,13 +1,13 @@
1
1
  'use client';
2
- export { ChatWidget } from '../chunk-HQB24QUN.mjs';
3
- export { DesignRenderer, EngageWidget } from '../chunk-Y4V5TFHP.mjs';
4
- import '../chunk-R26NFTOR.mjs';
2
+ export { ChatWidget } from '../chunk-KIAAUJ6I.mjs';
3
+ export { DesignRenderer, EngageWidget } from '../chunk-SQCF55IF.mjs';
4
+ import '../chunk-U37WZT33.mjs';
5
5
  import '../chunk-X3S6KXAP.mjs';
6
6
  import '../chunk-AX4AROLH.mjs';
7
7
  import '../chunk-6EDVCUAG.mjs';
8
- import '../chunk-RSFSXEV2.mjs';
9
- import '../chunk-TKP3YFNS.mjs';
10
- import '../chunk-JVT6CUNN.mjs';
8
+ import '../chunk-VANWF4DM.mjs';
9
+ import '../chunk-2ZWDYZNB.mjs';
10
+ import '../chunk-33T23Y3P.mjs';
11
11
  import '../chunk-4XPGGLVP.mjs';
12
12
 
13
13
  // src/engage/echo-config.ts
@@ -1,31 +1,31 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunk5GJ6V7FI_js = require('../chunk-5GJ6V7FI.js');
4
+ var chunkCTTAVGRL_js = require('../chunk-CTTAVGRL.js');
5
5
  require('../chunk-HGNSJXWT.js');
6
6
  var chunkQ2NBD54V_js = require('../chunk-Q2NBD54V.js');
7
- require('../chunk-ATOUXWFR.js');
8
- require('../chunk-BB2C5JUA.js');
9
- require('../chunk-JXT2WWXW.js');
7
+ require('../chunk-ABYRTWUF.js');
8
+ require('../chunk-IEHG564X.js');
9
+ require('../chunk-R2QOW7JI.js');
10
10
  require('../chunk-ZSMWDLMK.js');
11
11
 
12
12
 
13
13
 
14
14
  Object.defineProperty(exports, "FLEET_HEARTBEAT_PATH", {
15
15
  enumerable: true,
16
- get: function () { return chunk5GJ6V7FI_js.FLEET_HEARTBEAT_PATH; }
16
+ get: function () { return chunkCTTAVGRL_js.FLEET_HEARTBEAT_PATH; }
17
17
  });
18
18
  Object.defineProperty(exports, "FleetHeartbeat", {
19
19
  enumerable: true,
20
- get: function () { return chunk5GJ6V7FI_js.FleetHeartbeat; }
20
+ get: function () { return chunkCTTAVGRL_js.FleetHeartbeat; }
21
21
  });
22
22
  Object.defineProperty(exports, "detectNextVersion", {
23
23
  enumerable: true,
24
- get: function () { return chunk5GJ6V7FI_js.detectNextVersion; }
24
+ get: function () { return chunkCTTAVGRL_js.detectNextVersion; }
25
25
  });
26
26
  Object.defineProperty(exports, "sendFleetHeartbeat", {
27
27
  enumerable: true,
28
- get: function () { return chunk5GJ6V7FI_js.sendFleetHeartbeat; }
28
+ get: function () { return chunkCTTAVGRL_js.sendFleetHeartbeat; }
29
29
  });
30
30
  Object.defineProperty(exports, "FLEET_CONTRACT_VERSION", {
31
31
  enumerable: true,
@@ -1,10 +1,10 @@
1
1
  'use client';
2
- export { FLEET_HEARTBEAT_PATH, FleetHeartbeat, detectNextVersion, sendFleetHeartbeat } from '../chunk-OLQBP2JQ.mjs';
2
+ export { FLEET_HEARTBEAT_PATH, FleetHeartbeat, detectNextVersion, sendFleetHeartbeat } from '../chunk-2SX6S6TZ.mjs';
3
3
  import '../chunk-ZVBLXXNJ.mjs';
4
4
  export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion } from '../chunk-ZPLN537Q.mjs';
5
- import '../chunk-RSFSXEV2.mjs';
6
- import '../chunk-TKP3YFNS.mjs';
7
- import '../chunk-JVT6CUNN.mjs';
5
+ import '../chunk-VANWF4DM.mjs';
6
+ import '../chunk-2ZWDYZNB.mjs';
7
+ import '../chunk-33T23Y3P.mjs';
8
8
  import '../chunk-4XPGGLVP.mjs';
9
9
  //# sourceMappingURL=index.mjs.map
10
10
  //# sourceMappingURL=index.mjs.map
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkV6CWHT6B_js = require('../chunk-V6CWHT6B.js');
4
+ var chunkBUT5Z3FM_js = require('../chunk-BUT5Z3FM.js');
5
5
  var chunkV6NVBFEP_js = require('../chunk-V6NVBFEP.js');
6
6
  require('../chunk-VJMPIRSD.js');
7
- var chunkATOUXWFR_js = require('../chunk-ATOUXWFR.js');
8
- require('../chunk-BB2C5JUA.js');
9
- require('../chunk-JXT2WWXW.js');
7
+ var chunkABYRTWUF_js = require('../chunk-ABYRTWUF.js');
8
+ require('../chunk-IEHG564X.js');
9
+ require('../chunk-R2QOW7JI.js');
10
10
  require('../chunk-ZSMWDLMK.js');
11
11
  var React2 = require('react');
12
12
  var jsxRuntime = require('react/jsx-runtime');
@@ -44,7 +44,7 @@ async function apiRequest(method, path, body) {
44
44
  const token = await getAuthToken();
45
45
  headers["Authorization"] = `Bearer ${token}`;
46
46
  }
47
- const response = await chunkATOUXWFR_js.sonorFetch(`${baseUrl}${path}`, {
47
+ const response = await chunkABYRTWUF_js.sonorFetch(`${baseUrl}${path}`, {
48
48
  method,
49
49
  headers,
50
50
  body: body ? JSON.stringify(body) : void 0
@@ -897,7 +897,7 @@ async function uploadFormFile(file) {
897
897
  }
898
898
  const body = new FormData();
899
899
  body.append("file", file);
900
- const response = await chunkATOUXWFR_js.sonorFetch(
900
+ const response = await chunkABYRTWUF_js.sonorFetch(
901
901
  `${apiUrl}/api/public/forms/upload`,
902
902
  {
903
903
  method: "POST",
@@ -925,6 +925,7 @@ function FormClient({
925
925
  const [values, setValues] = React2.useState({});
926
926
  const [errors, setErrors] = React2.useState({});
927
927
  const [step, setStep] = React2.useState(1);
928
+ const [stepDirection, setStepDirection] = React2.useState("forward");
928
929
  const [isSubmitting, setIsSubmitting] = React2.useState(false);
929
930
  const [isComplete, setIsComplete] = React2.useState(false);
930
931
  const [submitError, setSubmitError] = React2.useState(null);
@@ -932,7 +933,7 @@ function FormClient({
932
933
  const honeypotFieldName = config2.honeypot_field || chunkV6NVBFEP_js.DEFAULT_HONEYPOT_FIELD;
933
934
  const formLoadedAt = React2.useRef(Date.now());
934
935
  const isSubmittingRef = React2.useRef(false);
935
- const { trackStepChange, trackComplete } = chunkV6CWHT6B_js.useFormTracking({
936
+ const { trackStepChange, trackComplete } = chunkBUT5Z3FM_js.useFormTracking({
936
937
  formId: config2.id,
937
938
  totalSteps: config2.total_steps
938
939
  });
@@ -940,9 +941,9 @@ function FormClient({
940
941
  if (!config2.is_multi_step) {
941
942
  return config2.fields || [];
942
943
  }
943
- const currentStepConfig = config2.steps?.find((s) => s.step_number === step);
944
- if (!currentStepConfig) return config2.fields || [];
945
- return (config2.fields || []).filter((f) => f.step_id === currentStepConfig.id);
944
+ const currentStepConfig2 = config2.steps?.find((s) => s.step_number === step);
945
+ if (!currentStepConfig2) return config2.fields || [];
946
+ return (config2.fields || []).filter((f) => f.step_id === currentStepConfig2.id);
946
947
  }, [config2, step]);
947
948
  const isFieldVisible = React2.useCallback((field2) => {
948
949
  if (!field2.conditional?.show_when) return true;
@@ -1061,6 +1062,7 @@ function FormClient({
1061
1062
  if (!validateStep()) return false;
1062
1063
  if (step < config2.total_steps) {
1063
1064
  const newStep = step + 1;
1065
+ setStepDirection("forward");
1064
1066
  setStep(newStep);
1065
1067
  trackStepChange(newStep);
1066
1068
  return true;
@@ -1070,28 +1072,33 @@ function FormClient({
1070
1072
  const prevStep = React2.useCallback(() => {
1071
1073
  if (step > 1) {
1072
1074
  const newStep = step - 1;
1075
+ setStepDirection("back");
1073
1076
  setStep(newStep);
1074
1077
  trackStepChange(newStep);
1075
1078
  }
1076
1079
  }, [step, trackStepChange]);
1077
1080
  const goToStep = React2.useCallback((targetStep) => {
1078
1081
  if (targetStep >= 1 && targetStep <= config2.total_steps) {
1082
+ setStepDirection(targetStep < step ? "back" : "forward");
1079
1083
  setStep(targetStep);
1080
1084
  trackStepChange(targetStep);
1081
1085
  }
1082
- }, [config2.total_steps, trackStepChange]);
1086
+ }, [step, config2.total_steps, trackStepChange]);
1083
1087
  const submit = React2.useCallback(async () => {
1084
1088
  if (isSubmittingRef.current) return;
1085
1089
  const { ok, firstErrorStep } = validateAll();
1086
1090
  if (!ok) {
1087
- if (firstErrorStep != null) setStep(firstErrorStep);
1091
+ if (firstErrorStep != null) {
1092
+ setStepDirection("back");
1093
+ setStep(firstErrorStep);
1094
+ }
1088
1095
  return;
1089
1096
  }
1090
1097
  isSubmittingRef.current = true;
1091
1098
  setIsSubmitting(true);
1092
1099
  setSubmitError(null);
1093
1100
  try {
1094
- const data = await chunkV6CWHT6B_js.submitForm({
1101
+ const data = await chunkBUT5Z3FM_js.submitForm({
1095
1102
  config: config2,
1096
1103
  values: buildVisibleValues(),
1097
1104
  honeypotValue: config2.honeypot_enabled ? honeypotValue : "",
@@ -1115,6 +1122,20 @@ function FormClient({
1115
1122
  const progress = React2.useMemo(() => {
1116
1123
  return Math.round(step / config2.total_steps * 100);
1117
1124
  }, [step, config2.total_steps]);
1125
+ const currentStepConfig = React2.useMemo(
1126
+ () => config2.steps?.find((s) => s.step_number === step),
1127
+ [config2.steps, step]
1128
+ );
1129
+ const stepPanelRef = React2.useRef(null);
1130
+ const hasNavigatedRef = React2.useRef(false);
1131
+ React2.useEffect(() => {
1132
+ if (!config2.is_multi_step) return;
1133
+ if (!hasNavigatedRef.current) {
1134
+ hasNavigatedRef.current = true;
1135
+ return;
1136
+ }
1137
+ stepPanelRef.current?.focus();
1138
+ }, [step, config2.is_multi_step]);
1118
1139
  const renderProps = {
1119
1140
  config: config2,
1120
1141
  fields: currentFields,
@@ -1133,7 +1154,7 @@ function FormClient({
1133
1154
  };
1134
1155
  if (isComplete) {
1135
1156
  const raw = config2.success_message;
1136
- const message = typeof raw === "string" && raw.trim().length > 0 ? raw.trim() : chunkV6CWHT6B_js.DEFAULT_FORM_SUCCESS_MESSAGE;
1157
+ const message = typeof raw === "string" && raw.trim().length > 0 ? raw.trim() : chunkBUT5Z3FM_js.DEFAULT_FORM_SUCCESS_MESSAGE;
1137
1158
  return /* @__PURE__ */ jsxRuntime.jsx(
1138
1159
  "div",
1139
1160
  {
@@ -1164,51 +1185,77 @@ function FormClient({
1164
1185
  }
1165
1186
  },
1166
1187
  children: [
1167
- config2.is_multi_step && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sk-form__progress", style: { marginBottom: 20 }, children: [
1168
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sk-form__progress-header", style: { display: "flex", justifyContent: "space-between", marginBottom: 8 }, children: [
1188
+ config2.is_multi_step && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sk-form__progress", children: [
1189
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sk-form__progress-header", children: [
1169
1190
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sk-form__progress-step", children: [
1170
1191
  "Step ",
1171
1192
  step,
1172
1193
  " of ",
1173
1194
  config2.total_steps
1174
1195
  ] }),
1175
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sk-form__progress-percent", children: [
1196
+ config2.show_progress && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sk-form__progress-percent", children: [
1176
1197
  progress,
1177
1198
  "%"
1178
1199
  ] })
1179
1200
  ] }),
1180
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__progress-track", style: {
1181
- height: 4,
1182
- backgroundColor: "var(--sk-progress-bg, #e5e7eb)",
1183
- borderRadius: 2,
1184
- overflow: "hidden"
1185
- }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__progress-bar", style: {
1186
- width: `${progress}%`,
1187
- height: "100%",
1188
- backgroundColor: "var(--sk-progress-fill, #2563eb)",
1189
- transition: "width 0.3s ease"
1190
- } }) })
1191
- ] }),
1192
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__fields", children: currentFields.map((field2) => {
1193
- if (!isFieldVisible(field2)) return null;
1194
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `sk-form__field-wrapper sk-form__field-wrapper--${field2.width || "full"}`, children: /* @__PURE__ */ jsxRuntime.jsx(
1195
- FormField,
1201
+ /* @__PURE__ */ jsxRuntime.jsx(
1202
+ "div",
1196
1203
  {
1197
- field: field2,
1198
- value: values[field2.slug],
1199
- error: errors[field2.slug],
1200
- onChange: (value) => setFieldValue(field2.slug, value)
1204
+ className: "sk-form__progress-track",
1205
+ role: "progressbar",
1206
+ "aria-valuemin": 1,
1207
+ "aria-valuemax": config2.total_steps,
1208
+ "aria-valuenow": step,
1209
+ "aria-valuetext": `Step ${step} of ${config2.total_steps}`,
1210
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__progress-bar", style: { width: `${progress}%` } })
1201
1211
  }
1202
- ) }, field2.id);
1203
- }) }),
1204
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sk-form__actions", style: {
1205
- display: "flex",
1206
- justifyContent: step > 1 ? "space-between" : "flex-end",
1207
- marginTop: 24
1208
- }, children: [
1209
- step > 1 && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "sk-form__btn sk-form__btn--back", onClick: prevStep, children: "Back" }),
1210
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", className: "sk-form__btn sk-form__btn--submit", disabled: isSubmitting, children: isSubmitting ? "Submitting..." : step < config2.total_steps ? "Next" : config2.submit_button_text })
1212
+ ),
1213
+ /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "sk-form__progress-dots", "aria-hidden": "true", children: Array.from({ length: config2.total_steps }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsxRuntime.jsx(
1214
+ "li",
1215
+ {
1216
+ className: "sk-form__progress-dot" + (n === step ? " sk-form__progress-dot--current" : "") + (n < step ? " sk-form__progress-dot--done" : "")
1217
+ },
1218
+ n
1219
+ )) })
1211
1220
  ] }),
1221
+ /* @__PURE__ */ jsxRuntime.jsxs(
1222
+ "div",
1223
+ {
1224
+ ref: stepPanelRef,
1225
+ tabIndex: -1,
1226
+ className: "sk-form__step" + (config2.is_multi_step ? ` sk-form__step--${stepDirection}` : ""),
1227
+ children: [
1228
+ config2.is_multi_step && (currentStepConfig?.title || currentStepConfig?.description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sk-form__step-intro", children: [
1229
+ currentStepConfig.title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "sk-form__step-title", children: currentStepConfig.title }),
1230
+ currentStepConfig.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "sk-form__step-description", children: currentStepConfig.description })
1231
+ ] }),
1232
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__fields", children: currentFields.map((field2) => {
1233
+ if (!isFieldVisible(field2)) return null;
1234
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `sk-form__field-wrapper sk-form__field-wrapper--${field2.width || "full"}`, children: /* @__PURE__ */ jsxRuntime.jsx(
1235
+ FormField,
1236
+ {
1237
+ field: field2,
1238
+ value: values[field2.slug],
1239
+ error: errors[field2.slug],
1240
+ onChange: (value) => setFieldValue(field2.slug, value)
1241
+ }
1242
+ ) }, field2.id);
1243
+ }) })
1244
+ ]
1245
+ },
1246
+ step
1247
+ ),
1248
+ /* @__PURE__ */ jsxRuntime.jsxs(
1249
+ "div",
1250
+ {
1251
+ className: "sk-form__actions",
1252
+ style: { justifyContent: step > 1 ? "space-between" : "flex-end" },
1253
+ children: [
1254
+ step > 1 && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "sk-form__btn sk-form__btn--back", onClick: prevStep, children: "Back" }),
1255
+ /* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", className: "sk-form__btn sk-form__btn--submit", disabled: isSubmitting, children: isSubmitting ? "Submitting..." : step < config2.total_steps ? "Next" : config2.submit_button_text })
1256
+ ]
1257
+ }
1258
+ ),
1212
1259
  submitError && /* @__PURE__ */ jsxRuntime.jsx(
1213
1260
  "p",
1214
1261
  {
@@ -1257,7 +1304,7 @@ function ManagedForm({
1257
1304
  form,
1258
1305
  isLoading,
1259
1306
  fetchError
1260
- } = chunkV6CWHT6B_js.useForm(formId, {
1307
+ } = chunkBUT5Z3FM_js.useForm(formId, {
1261
1308
  projectId,
1262
1309
  onSuccess,
1263
1310
  onError
@@ -1282,15 +1329,15 @@ function ManagedForm({
1282
1329
 
1283
1330
  Object.defineProperty(exports, "DEFAULT_FORM_SUCCESS_MESSAGE", {
1284
1331
  enumerable: true,
1285
- get: function () { return chunkV6CWHT6B_js.DEFAULT_FORM_SUCCESS_MESSAGE; }
1332
+ get: function () { return chunkBUT5Z3FM_js.DEFAULT_FORM_SUCCESS_MESSAGE; }
1286
1333
  });
1287
1334
  Object.defineProperty(exports, "useForm", {
1288
1335
  enumerable: true,
1289
- get: function () { return chunkV6CWHT6B_js.useForm; }
1336
+ get: function () { return chunkBUT5Z3FM_js.useForm; }
1290
1337
  });
1291
1338
  Object.defineProperty(exports, "useFormTracking", {
1292
1339
  enumerable: true,
1293
- get: function () { return chunkV6CWHT6B_js.useFormTracking; }
1340
+ get: function () { return chunkBUT5Z3FM_js.useFormTracking; }
1294
1341
  });
1295
1342
  exports.DatePicker = DatePicker;
1296
1343
  exports.FormClient = FormClient;