@sonordev/site-kit 3.7.0 → 3.8.1

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 (203) hide show
  1. package/agent-manifest.json +1 -1
  2. package/dist/AnalyticsProvider-DSQNTSJZ.mjs +10 -0
  3. package/dist/{AnalyticsProvider-OIRXQE7O.mjs.map → AnalyticsProvider-DSQNTSJZ.mjs.map} +1 -1
  4. package/dist/AnalyticsProvider-MFNXZGXM.js +31 -0
  5. package/dist/{AnalyticsProvider-JWXDXOIR.js.map → AnalyticsProvider-MFNXZGXM.js.map} +1 -1
  6. package/dist/ChatWidget-PDCWVGLH.js +19 -0
  7. package/dist/{ChatWidget-K2BFJXGB.js.map → ChatWidget-PDCWVGLH.js.map} +1 -1
  8. package/dist/ChatWidget-RNJU2KCF.mjs +10 -0
  9. package/dist/{ChatWidget-FFCUDCT6.mjs.map → ChatWidget-RNJU2KCF.mjs.map} +1 -1
  10. package/dist/EngageWidget-EOGLNZ56.mjs +9 -0
  11. package/dist/{EngageWidget-QKRXI3NB.mjs.map → EngageWidget-EOGLNZ56.mjs.map} +1 -1
  12. package/dist/EngageWidget-IMKPA7YF.js +18 -0
  13. package/dist/{EngageWidget-XRXXVVUK.js.map → EngageWidget-IMKPA7YF.js.map} +1 -1
  14. package/dist/{SignalCore-BXCBV6GR.js → SignalCore-CTOFELJ7.js} +11 -11
  15. package/dist/{SignalCore-BXCBV6GR.js.map → SignalCore-CTOFELJ7.js.map} +1 -1
  16. package/dist/{SignalCore-6MUAX656.mjs → SignalCore-JTSREHTT.mjs} +5 -5
  17. package/dist/{SignalCore-6MUAX656.mjs.map → SignalCore-JTSREHTT.mjs.map} +1 -1
  18. package/dist/SitemapSync-3C32UQZB.mjs +8 -0
  19. package/dist/{SitemapSync-KS7KTJBK.mjs.map → SitemapSync-3C32UQZB.mjs.map} +1 -1
  20. package/dist/SitemapSync-J3QWNCMP.js +17 -0
  21. package/dist/{SitemapSync-WEZHTSFL.js.map → SitemapSync-J3QWNCMP.js.map} +1 -1
  22. package/dist/analytics/index.js +12 -12
  23. package/dist/analytics/index.mjs +5 -5
  24. package/dist/blog/server-ui.js +6 -6
  25. package/dist/blog/server-ui.js.map +1 -1
  26. package/dist/blog/server-ui.mjs +5 -5
  27. package/dist/blog/server-ui.mjs.map +1 -1
  28. package/dist/blog/server.d.mts +20 -1
  29. package/dist/blog/server.d.ts +20 -1
  30. package/dist/blog/server.js +43 -39
  31. package/dist/blog/server.mjs +1 -1
  32. package/dist/{chunk-HWJF7WMI.js → chunk-4WW7DHZS.js} +14 -14
  33. package/dist/{chunk-HWJF7WMI.js.map → chunk-4WW7DHZS.js.map} +1 -1
  34. package/dist/{chunk-4NUHZ24M.js → chunk-5LURTXJ3.js} +13 -13
  35. package/dist/{chunk-4NUHZ24M.js.map → chunk-5LURTXJ3.js.map} +1 -1
  36. package/dist/{chunk-2PQUCJJF.js → chunk-6UEZ6RJT.js} +5 -5
  37. package/dist/{chunk-2PQUCJJF.js.map → chunk-6UEZ6RJT.js.map} +1 -1
  38. package/dist/{chunk-LSWTMMKJ.mjs → chunk-75PY4H43.mjs} +3 -3
  39. package/dist/{chunk-LSWTMMKJ.mjs.map → chunk-75PY4H43.mjs.map} +1 -1
  40. package/dist/{chunk-3MYZS6PD.js → chunk-77CIIDE6.js} +15 -3
  41. package/dist/chunk-77CIIDE6.js.map +1 -0
  42. package/dist/{chunk-ZKAZGLHI.js → chunk-7CTKFXQ5.js} +9 -9
  43. package/dist/{chunk-ZKAZGLHI.js.map → chunk-7CTKFXQ5.js.map} +1 -1
  44. package/dist/{chunk-XOBW75J2.js → chunk-AL2O5QDB.js} +9 -9
  45. package/dist/{chunk-XOBW75J2.js.map → chunk-AL2O5QDB.js.map} +1 -1
  46. package/dist/{chunk-5Y5GCSH6.mjs → chunk-BJIJRBNA.mjs} +3 -3
  47. package/dist/{chunk-5Y5GCSH6.mjs.map → chunk-BJIJRBNA.mjs.map} +1 -1
  48. package/dist/{chunk-7UZV6JXD.js → chunk-C73RBN2O.js} +14 -14
  49. package/dist/{chunk-7UZV6JXD.js.map → chunk-C73RBN2O.js.map} +1 -1
  50. package/dist/{chunk-FP523A7G.mjs → chunk-CDW6LDLH.mjs} +3 -3
  51. package/dist/{chunk-FP523A7G.mjs.map → chunk-CDW6LDLH.mjs.map} +1 -1
  52. package/dist/{chunk-ON6WW7IE.js → chunk-CPO7FK36.js} +6 -6
  53. package/dist/{chunk-ON6WW7IE.js.map → chunk-CPO7FK36.js.map} +1 -1
  54. package/dist/{chunk-XREO3QRA.mjs → chunk-F5SDNDP6.mjs} +3 -3
  55. package/dist/{chunk-XREO3QRA.mjs.map → chunk-F5SDNDP6.mjs.map} +1 -1
  56. package/dist/{chunk-C3QMG4HS.js → chunk-GJMGQJI3.js} +15 -15
  57. package/dist/{chunk-C3QMG4HS.js.map → chunk-GJMGQJI3.js.map} +1 -1
  58. package/dist/{chunk-AKBGYQLC.js → chunk-GPXUJQFX.js} +15 -15
  59. package/dist/{chunk-AKBGYQLC.js.map → chunk-GPXUJQFX.js.map} +1 -1
  60. package/dist/{chunk-ATG4FJY6.js → chunk-H6AU3WKF.js} +35 -3
  61. package/dist/chunk-H6AU3WKF.js.map +1 -0
  62. package/dist/{chunk-NM7L2XKF.mjs → chunk-HJTAHRR3.mjs} +4 -4
  63. package/dist/{chunk-NM7L2XKF.mjs.map → chunk-HJTAHRR3.mjs.map} +1 -1
  64. package/dist/{chunk-R3CXRMP7.js → chunk-HNHZLRB6.js} +3 -3
  65. package/dist/{chunk-R3CXRMP7.js.map → chunk-HNHZLRB6.js.map} +1 -1
  66. package/dist/{chunk-AUBFDSTJ.js → chunk-ILCDV3MM.js} +8 -8
  67. package/dist/{chunk-AUBFDSTJ.js.map → chunk-ILCDV3MM.js.map} +1 -1
  68. package/dist/{chunk-TZTO5CDS.mjs → chunk-IVJLQJEP.mjs} +3 -3
  69. package/dist/{chunk-TZTO5CDS.mjs.map → chunk-IVJLQJEP.mjs.map} +1 -1
  70. package/dist/chunk-J4RBHTWC.js +8 -0
  71. package/dist/{chunk-SCMHZBTN.js.map → chunk-J4RBHTWC.js.map} +1 -1
  72. package/dist/{chunk-54ZC6LPR.mjs → chunk-J6MMNTYG.mjs} +3 -3
  73. package/dist/{chunk-54ZC6LPR.mjs.map → chunk-J6MMNTYG.mjs.map} +1 -1
  74. package/dist/{chunk-QPT5QX2W.js → chunk-KE3RJME2.js} +12 -12
  75. package/dist/{chunk-QPT5QX2W.js.map → chunk-KE3RJME2.js.map} +1 -1
  76. package/dist/{chunk-AJPPCSVW.mjs → chunk-LIFKPMXB.mjs} +3 -3
  77. package/dist/{chunk-AJPPCSVW.mjs.map → chunk-LIFKPMXB.mjs.map} +1 -1
  78. package/dist/chunk-M2SHY2FQ.mjs +6 -0
  79. package/dist/{chunk-2HH4VVJT.mjs.map → chunk-M2SHY2FQ.mjs.map} +1 -1
  80. package/dist/{chunk-LFFBDQM3.mjs → chunk-M3QFG3PA.mjs} +4 -4
  81. package/dist/{chunk-LFFBDQM3.mjs.map → chunk-M3QFG3PA.mjs.map} +1 -1
  82. package/dist/{chunk-UWL37MUR.mjs → chunk-NXFXKP7E.mjs} +3 -3
  83. package/dist/{chunk-UWL37MUR.mjs.map → chunk-NXFXKP7E.mjs.map} +1 -1
  84. package/dist/{chunk-6BIPAKL4.mjs → chunk-OVIDFJIK.mjs} +15 -4
  85. package/dist/chunk-OVIDFJIK.mjs.map +1 -0
  86. package/dist/{chunk-GUXB3QH7.mjs → chunk-PA7ENTUZ.mjs} +41 -9
  87. package/dist/chunk-PA7ENTUZ.mjs.map +1 -0
  88. package/dist/{chunk-H23ZT2I2.mjs → chunk-PENNTSJE.mjs} +35 -3
  89. package/dist/chunk-PENNTSJE.mjs.map +1 -0
  90. package/dist/{chunk-QAYCRXT4.mjs → chunk-PUZ6XJ2L.mjs} +3 -3
  91. package/dist/{chunk-QAYCRXT4.mjs.map → chunk-PUZ6XJ2L.mjs.map} +1 -1
  92. package/dist/{chunk-VZU2EHB6.js → chunk-QGNU2EDU.js} +4 -4
  93. package/dist/{chunk-VZU2EHB6.js.map → chunk-QGNU2EDU.js.map} +1 -1
  94. package/dist/{chunk-3K7WF6KB.mjs → chunk-QMBVVQSH.mjs} +8 -8
  95. package/dist/{chunk-3K7WF6KB.mjs.map → chunk-QMBVVQSH.mjs.map} +1 -1
  96. package/dist/{chunk-2CNKJMGT.mjs → chunk-SBRZLKE7.mjs} +3 -3
  97. package/dist/{chunk-2CNKJMGT.mjs.map → chunk-SBRZLKE7.mjs.map} +1 -1
  98. package/dist/{chunk-34IUDOBC.mjs → chunk-SP3MXF3A.mjs} +34 -5
  99. package/dist/chunk-SP3MXF3A.mjs.map +1 -0
  100. package/dist/{chunk-WQ64SU6E.js → chunk-SUWDZOPH.js} +4 -4
  101. package/dist/{chunk-WQ64SU6E.js.map → chunk-SUWDZOPH.js.map} +1 -1
  102. package/dist/{chunk-TQS2X5A3.js → chunk-TFU6J77X.js} +5 -5
  103. package/dist/{chunk-TQS2X5A3.js.map → chunk-TFU6J77X.js.map} +1 -1
  104. package/dist/{chunk-XAWB2HFQ.js → chunk-TMKLH6MY.js} +41 -8
  105. package/dist/chunk-TMKLH6MY.js.map +1 -0
  106. package/dist/{chunk-CDKWTLWF.mjs → chunk-TQYOQ7MH.mjs} +4 -4
  107. package/dist/{chunk-CDKWTLWF.mjs.map → chunk-TQYOQ7MH.mjs.map} +1 -1
  108. package/dist/{chunk-JFAAPREU.mjs → chunk-UGBL7GTN.mjs} +4 -4
  109. package/dist/{chunk-JFAAPREU.mjs.map → chunk-UGBL7GTN.mjs.map} +1 -1
  110. package/dist/{chunk-2EYHSGQ3.mjs → chunk-WM7U23R5.mjs} +3 -3
  111. package/dist/{chunk-2EYHSGQ3.mjs.map → chunk-WM7U23R5.mjs.map} +1 -1
  112. package/dist/{chunk-YE7KZQZ3.mjs → chunk-WXGBLUGC.mjs} +4 -4
  113. package/dist/{chunk-YE7KZQZ3.mjs.map → chunk-WXGBLUGC.mjs.map} +1 -1
  114. package/dist/{chunk-TA6KXHCY.js → chunk-X2DWUV5M.js} +7 -7
  115. package/dist/{chunk-TA6KXHCY.js.map → chunk-X2DWUV5M.js.map} +1 -1
  116. package/dist/{chunk-6T4NVCAT.js → chunk-XMBYDIV6.js} +40 -11
  117. package/dist/chunk-XMBYDIV6.js.map +1 -0
  118. package/dist/{chunk-GZHLVOW3.js → chunk-XMKZXFVX.js} +4 -4
  119. package/dist/{chunk-GZHLVOW3.js.map → chunk-XMKZXFVX.js.map} +1 -1
  120. package/dist/cli/index.js +2 -2
  121. package/dist/cli/index.mjs +1 -1
  122. package/dist/client/index.js +4 -4
  123. package/dist/client/index.mjs +3 -3
  124. package/dist/commerce/index.js +51 -51
  125. package/dist/commerce/index.mjs +6 -6
  126. package/dist/config/index.d.mts +1 -1
  127. package/dist/config/index.d.ts +1 -1
  128. package/dist/config/index.js +2 -2
  129. package/dist/config/index.mjs +1 -1
  130. package/dist/engage/index.js +9 -9
  131. package/dist/engage/index.mjs +6 -6
  132. package/dist/fleet/index.js +8 -8
  133. package/dist/fleet/index.mjs +4 -4
  134. package/dist/forms/index.js +97 -50
  135. package/dist/forms/index.js.map +1 -1
  136. package/dist/forms/index.mjs +89 -42
  137. package/dist/forms/index.mjs.map +1 -1
  138. package/dist/forms/styles.css +107 -2
  139. package/dist/images/index.js +11 -11
  140. package/dist/images/index.mjs +4 -4
  141. package/dist/index.js +64 -64
  142. package/dist/index.mjs +10 -10
  143. package/dist/layout/client.js +8 -8
  144. package/dist/layout/client.mjs +7 -7
  145. package/dist/layout/index.js +10 -10
  146. package/dist/layout/index.mjs +8 -8
  147. package/dist/llms/contract.js +9 -9
  148. package/dist/llms/contract.mjs +1 -1
  149. package/dist/llms/index.d.mts +131 -40
  150. package/dist/llms/index.d.ts +131 -40
  151. package/dist/llms/index.js +125 -21
  152. package/dist/llms/index.js.map +1 -1
  153. package/dist/llms/index.mjs +102 -4
  154. package/dist/llms/index.mjs.map +1 -1
  155. package/dist/maps/index.js +5 -5
  156. package/dist/maps/index.mjs +3 -3
  157. package/dist/middleware/index.d.mts +2 -1
  158. package/dist/middleware/index.d.ts +2 -1
  159. package/dist/middleware/index.js +6 -2
  160. package/dist/middleware/index.js.map +1 -1
  161. package/dist/middleware/index.mjs +2 -1
  162. package/dist/middleware/index.mjs.map +1 -1
  163. package/dist/securityHeaders-CwsFdDcJ.d.mts +49 -0
  164. package/dist/securityHeaders-CwsFdDcJ.d.ts +49 -0
  165. package/dist/seo/client.js +5 -5
  166. package/dist/seo/client.mjs +4 -4
  167. package/dist/seo/index.js +7 -7
  168. package/dist/seo/index.mjs +5 -5
  169. package/dist/server/index.js +3 -3
  170. package/dist/server/index.mjs +2 -2
  171. package/dist/signal/index.js +11 -11
  172. package/dist/signal/index.mjs +2 -2
  173. package/dist/sitemap/index.d.mts +8 -1
  174. package/dist/sitemap/index.d.ts +8 -1
  175. package/dist/sitemap/index.js +5 -4
  176. package/dist/sitemap/index.js.map +1 -1
  177. package/dist/sitemap/index.mjs +4 -3
  178. package/dist/sitemap/index.mjs.map +1 -1
  179. package/dist/sync/index.js +16 -16
  180. package/dist/sync/index.mjs +4 -4
  181. package/dist/{types-xcP_owwn.d.ts → writeLLMsTxt-BFaNr4re.d.ts} +53 -1
  182. package/dist/{types-DhCAWUmd.d.mts → writeLLMsTxt-SpMdyHQT.d.mts} +53 -1
  183. package/package.json +1 -1
  184. package/dist/AnalyticsProvider-JWXDXOIR.js +0 -31
  185. package/dist/AnalyticsProvider-OIRXQE7O.mjs +0 -10
  186. package/dist/ChatWidget-FFCUDCT6.mjs +0 -10
  187. package/dist/ChatWidget-K2BFJXGB.js +0 -19
  188. package/dist/EngageWidget-QKRXI3NB.mjs +0 -9
  189. package/dist/EngageWidget-XRXXVVUK.js +0 -18
  190. package/dist/SitemapSync-KS7KTJBK.mjs +0 -8
  191. package/dist/SitemapSync-WEZHTSFL.js +0 -17
  192. package/dist/chunk-2HH4VVJT.mjs +0 -6
  193. package/dist/chunk-34IUDOBC.mjs.map +0 -1
  194. package/dist/chunk-3MYZS6PD.js.map +0 -1
  195. package/dist/chunk-6BIPAKL4.mjs.map +0 -1
  196. package/dist/chunk-6T4NVCAT.js.map +0 -1
  197. package/dist/chunk-ATG4FJY6.js.map +0 -1
  198. package/dist/chunk-GUXB3QH7.mjs.map +0 -1
  199. package/dist/chunk-H23ZT2I2.mjs.map +0 -1
  200. package/dist/chunk-SCMHZBTN.js +0 -8
  201. package/dist/chunk-XAWB2HFQ.js.map +0 -1
  202. package/dist/securityHeaders-nwZ6nP4g.d.mts +0 -24
  203. package/dist/securityHeaders-nwZ6nP4g.d.ts +0 -24
@@ -1,11 +1,11 @@
1
1
  'use client';
2
- import { useFormTracking, submitForm, DEFAULT_FORM_SUCCESS_MESSAGE, useForm } from '../chunk-5Y5GCSH6.mjs';
3
- export { DEFAULT_FORM_SUCCESS_MESSAGE, useForm, useFormTracking } from '../chunk-5Y5GCSH6.mjs';
2
+ import { useFormTracking, submitForm, DEFAULT_FORM_SUCCESS_MESSAGE, useForm } from '../chunk-BJIJRBNA.mjs';
3
+ export { DEFAULT_FORM_SUCCESS_MESSAGE, useForm, useFormTracking } from '../chunk-BJIJRBNA.mjs';
4
4
  import { DEFAULT_HONEYPOT_FIELD } from '../chunk-X3S6KXAP.mjs';
5
5
  import '../chunk-6EDVCUAG.mjs';
6
- import { sonorFetch } from '../chunk-NM7L2XKF.mjs';
7
- import '../chunk-QAYCRXT4.mjs';
8
- import '../chunk-2HH4VVJT.mjs';
6
+ import { sonorFetch } from '../chunk-HJTAHRR3.mjs';
7
+ import '../chunk-PUZ6XJ2L.mjs';
8
+ import '../chunk-M2SHY2FQ.mjs';
9
9
  import '../chunk-4XPGGLVP.mjs';
10
10
  import React2, { useState, useRef, useEffect, useCallback, useMemo } from 'react';
11
11
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -920,6 +920,7 @@ function FormClient({
920
920
  const [values, setValues] = useState({});
921
921
  const [errors, setErrors] = useState({});
922
922
  const [step, setStep] = useState(1);
923
+ const [stepDirection, setStepDirection] = useState("forward");
923
924
  const [isSubmitting, setIsSubmitting] = useState(false);
924
925
  const [isComplete, setIsComplete] = useState(false);
925
926
  const [submitError, setSubmitError] = useState(null);
@@ -935,9 +936,9 @@ function FormClient({
935
936
  if (!config2.is_multi_step) {
936
937
  return config2.fields || [];
937
938
  }
938
- const currentStepConfig = config2.steps?.find((s) => s.step_number === step);
939
- if (!currentStepConfig) return config2.fields || [];
940
- return (config2.fields || []).filter((f) => f.step_id === currentStepConfig.id);
939
+ const currentStepConfig2 = config2.steps?.find((s) => s.step_number === step);
940
+ if (!currentStepConfig2) return config2.fields || [];
941
+ return (config2.fields || []).filter((f) => f.step_id === currentStepConfig2.id);
941
942
  }, [config2, step]);
942
943
  const isFieldVisible = useCallback((field2) => {
943
944
  if (!field2.conditional?.show_when) return true;
@@ -1056,6 +1057,7 @@ function FormClient({
1056
1057
  if (!validateStep()) return false;
1057
1058
  if (step < config2.total_steps) {
1058
1059
  const newStep = step + 1;
1060
+ setStepDirection("forward");
1059
1061
  setStep(newStep);
1060
1062
  trackStepChange(newStep);
1061
1063
  return true;
@@ -1065,21 +1067,26 @@ function FormClient({
1065
1067
  const prevStep = useCallback(() => {
1066
1068
  if (step > 1) {
1067
1069
  const newStep = step - 1;
1070
+ setStepDirection("back");
1068
1071
  setStep(newStep);
1069
1072
  trackStepChange(newStep);
1070
1073
  }
1071
1074
  }, [step, trackStepChange]);
1072
1075
  const goToStep = useCallback((targetStep) => {
1073
1076
  if (targetStep >= 1 && targetStep <= config2.total_steps) {
1077
+ setStepDirection(targetStep < step ? "back" : "forward");
1074
1078
  setStep(targetStep);
1075
1079
  trackStepChange(targetStep);
1076
1080
  }
1077
- }, [config2.total_steps, trackStepChange]);
1081
+ }, [step, config2.total_steps, trackStepChange]);
1078
1082
  const submit = useCallback(async () => {
1079
1083
  if (isSubmittingRef.current) return;
1080
1084
  const { ok, firstErrorStep } = validateAll();
1081
1085
  if (!ok) {
1082
- if (firstErrorStep != null) setStep(firstErrorStep);
1086
+ if (firstErrorStep != null) {
1087
+ setStepDirection("back");
1088
+ setStep(firstErrorStep);
1089
+ }
1083
1090
  return;
1084
1091
  }
1085
1092
  isSubmittingRef.current = true;
@@ -1110,6 +1117,20 @@ function FormClient({
1110
1117
  const progress = useMemo(() => {
1111
1118
  return Math.round(step / config2.total_steps * 100);
1112
1119
  }, [step, config2.total_steps]);
1120
+ const currentStepConfig = useMemo(
1121
+ () => config2.steps?.find((s) => s.step_number === step),
1122
+ [config2.steps, step]
1123
+ );
1124
+ const stepPanelRef = useRef(null);
1125
+ const hasNavigatedRef = useRef(false);
1126
+ useEffect(() => {
1127
+ if (!config2.is_multi_step) return;
1128
+ if (!hasNavigatedRef.current) {
1129
+ hasNavigatedRef.current = true;
1130
+ return;
1131
+ }
1132
+ stepPanelRef.current?.focus();
1133
+ }, [step, config2.is_multi_step]);
1113
1134
  const renderProps = {
1114
1135
  config: config2,
1115
1136
  fields: currentFields,
@@ -1159,51 +1180,77 @@ function FormClient({
1159
1180
  }
1160
1181
  },
1161
1182
  children: [
1162
- config2.is_multi_step && /* @__PURE__ */ jsxs("div", { className: "sk-form__progress", style: { marginBottom: 20 }, children: [
1163
- /* @__PURE__ */ jsxs("div", { className: "sk-form__progress-header", style: { display: "flex", justifyContent: "space-between", marginBottom: 8 }, children: [
1183
+ config2.is_multi_step && /* @__PURE__ */ jsxs("div", { className: "sk-form__progress", children: [
1184
+ /* @__PURE__ */ jsxs("div", { className: "sk-form__progress-header", children: [
1164
1185
  /* @__PURE__ */ jsxs("span", { className: "sk-form__progress-step", children: [
1165
1186
  "Step ",
1166
1187
  step,
1167
1188
  " of ",
1168
1189
  config2.total_steps
1169
1190
  ] }),
1170
- /* @__PURE__ */ jsxs("span", { className: "sk-form__progress-percent", children: [
1191
+ config2.show_progress && /* @__PURE__ */ jsxs("span", { className: "sk-form__progress-percent", children: [
1171
1192
  progress,
1172
1193
  "%"
1173
1194
  ] })
1174
1195
  ] }),
1175
- /* @__PURE__ */ jsx("div", { className: "sk-form__progress-track", style: {
1176
- height: 4,
1177
- backgroundColor: "var(--sk-progress-bg, #e5e7eb)",
1178
- borderRadius: 2,
1179
- overflow: "hidden"
1180
- }, children: /* @__PURE__ */ jsx("div", { className: "sk-form__progress-bar", style: {
1181
- width: `${progress}%`,
1182
- height: "100%",
1183
- backgroundColor: "var(--sk-progress-fill, #2563eb)",
1184
- transition: "width 0.3s ease"
1185
- } }) })
1186
- ] }),
1187
- /* @__PURE__ */ jsx("div", { className: "sk-form__fields", children: currentFields.map((field2) => {
1188
- if (!isFieldVisible(field2)) return null;
1189
- return /* @__PURE__ */ jsx("div", { className: `sk-form__field-wrapper sk-form__field-wrapper--${field2.width || "full"}`, children: /* @__PURE__ */ jsx(
1190
- FormField,
1196
+ /* @__PURE__ */ jsx(
1197
+ "div",
1191
1198
  {
1192
- field: field2,
1193
- value: values[field2.slug],
1194
- error: errors[field2.slug],
1195
- onChange: (value) => setFieldValue(field2.slug, value)
1199
+ className: "sk-form__progress-track",
1200
+ role: "progressbar",
1201
+ "aria-valuemin": 1,
1202
+ "aria-valuemax": config2.total_steps,
1203
+ "aria-valuenow": step,
1204
+ "aria-valuetext": `Step ${step} of ${config2.total_steps}`,
1205
+ children: /* @__PURE__ */ jsx("div", { className: "sk-form__progress-bar", style: { width: `${progress}%` } })
1196
1206
  }
1197
- ) }, field2.id);
1198
- }) }),
1199
- /* @__PURE__ */ jsxs("div", { className: "sk-form__actions", style: {
1200
- display: "flex",
1201
- justifyContent: step > 1 ? "space-between" : "flex-end",
1202
- marginTop: 24
1203
- }, children: [
1204
- step > 1 && /* @__PURE__ */ jsx("button", { type: "button", className: "sk-form__btn sk-form__btn--back", onClick: prevStep, children: "Back" }),
1205
- /* @__PURE__ */ 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 })
1207
+ ),
1208
+ /* @__PURE__ */ jsx("ol", { className: "sk-form__progress-dots", "aria-hidden": "true", children: Array.from({ length: config2.total_steps }, (_, i) => i + 1).map((n) => /* @__PURE__ */ jsx(
1209
+ "li",
1210
+ {
1211
+ className: "sk-form__progress-dot" + (n === step ? " sk-form__progress-dot--current" : "") + (n < step ? " sk-form__progress-dot--done" : "")
1212
+ },
1213
+ n
1214
+ )) })
1206
1215
  ] }),
1216
+ /* @__PURE__ */ jsxs(
1217
+ "div",
1218
+ {
1219
+ ref: stepPanelRef,
1220
+ tabIndex: -1,
1221
+ className: "sk-form__step" + (config2.is_multi_step ? ` sk-form__step--${stepDirection}` : ""),
1222
+ children: [
1223
+ config2.is_multi_step && (currentStepConfig?.title || currentStepConfig?.description) && /* @__PURE__ */ jsxs("div", { className: "sk-form__step-intro", children: [
1224
+ currentStepConfig.title && /* @__PURE__ */ jsx("h3", { className: "sk-form__step-title", children: currentStepConfig.title }),
1225
+ currentStepConfig.description && /* @__PURE__ */ jsx("p", { className: "sk-form__step-description", children: currentStepConfig.description })
1226
+ ] }),
1227
+ /* @__PURE__ */ jsx("div", { className: "sk-form__fields", children: currentFields.map((field2) => {
1228
+ if (!isFieldVisible(field2)) return null;
1229
+ return /* @__PURE__ */ jsx("div", { className: `sk-form__field-wrapper sk-form__field-wrapper--${field2.width || "full"}`, children: /* @__PURE__ */ jsx(
1230
+ FormField,
1231
+ {
1232
+ field: field2,
1233
+ value: values[field2.slug],
1234
+ error: errors[field2.slug],
1235
+ onChange: (value) => setFieldValue(field2.slug, value)
1236
+ }
1237
+ ) }, field2.id);
1238
+ }) })
1239
+ ]
1240
+ },
1241
+ step
1242
+ ),
1243
+ /* @__PURE__ */ jsxs(
1244
+ "div",
1245
+ {
1246
+ className: "sk-form__actions",
1247
+ style: { justifyContent: step > 1 ? "space-between" : "flex-end" },
1248
+ children: [
1249
+ step > 1 && /* @__PURE__ */ jsx("button", { type: "button", className: "sk-form__btn sk-form__btn--back", onClick: prevStep, children: "Back" }),
1250
+ /* @__PURE__ */ 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 })
1251
+ ]
1252
+ }
1253
+ ),
1207
1254
  submitError && /* @__PURE__ */ jsx(
1208
1255
  "p",
1209
1256
  {