@sonordev/site-kit 4.0.0 → 4.0.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 (263) hide show
  1. package/agent-manifest.json +6 -1
  2. package/dist/AnalyticsProvider-5SX4ZRGN.js +31 -0
  3. package/dist/{AnalyticsProvider-HZTP36TY.js.map → AnalyticsProvider-5SX4ZRGN.js.map} +1 -1
  4. package/dist/AnalyticsProvider-6DIRTRRA.mjs +10 -0
  5. package/dist/{AnalyticsProvider-P6J5ZGZB.mjs.map → AnalyticsProvider-6DIRTRRA.mjs.map} +1 -1
  6. package/dist/ChatWidget-3SUC7HZA.js +20 -0
  7. package/dist/{ChatWidget-XJFFNLTK.js.map → ChatWidget-3SUC7HZA.js.map} +1 -1
  8. package/dist/ChatWidget-JTTERPI5.mjs +11 -0
  9. package/dist/{ChatWidget-Q4YJUQ36.mjs.map → ChatWidget-JTTERPI5.mjs.map} +1 -1
  10. package/dist/DatePicker-4WNKNNCV.mjs +4 -0
  11. package/dist/DatePicker-4WNKNNCV.mjs.map +1 -0
  12. package/dist/DatePicker-VPZR7RU3.js +13 -0
  13. package/dist/DatePicker-VPZR7RU3.js.map +1 -0
  14. package/dist/EngageWidget-3MDY2W5G.mjs +9 -0
  15. package/dist/{EngageWidget-IMQBLBII.mjs.map → EngageWidget-3MDY2W5G.mjs.map} +1 -1
  16. package/dist/EngageWidget-YVAIP2NW.js +18 -0
  17. package/dist/{EngageWidget-NGPAVLLE.js.map → EngageWidget-YVAIP2NW.js.map} +1 -1
  18. package/dist/FileField-PD52URLX.js +91 -0
  19. package/dist/FileField-PD52URLX.js.map +1 -0
  20. package/dist/FileField-XMBF3XCG.mjs +85 -0
  21. package/dist/FileField-XMBF3XCG.mjs.map +1 -0
  22. package/dist/{FormSpotlight-5YFKFZYS.mjs → FormSpotlight-72TYHDPV.mjs} +8 -7
  23. package/dist/FormSpotlight-72TYHDPV.mjs.map +1 -0
  24. package/dist/{FormSpotlight-7BH6QE6T.js → FormSpotlight-AL6KGMGG.js} +23 -22
  25. package/dist/FormSpotlight-AL6KGMGG.js.map +1 -0
  26. package/dist/{FormStage-KB4GYL5K.mjs → FormStage-GNBPJ7WX.mjs} +7 -7
  27. package/dist/FormStage-GNBPJ7WX.mjs.map +1 -0
  28. package/dist/{FormStage-7BVPTSSE.js → FormStage-NLO52ER2.js} +19 -19
  29. package/dist/FormStage-NLO52ER2.js.map +1 -0
  30. package/dist/ManagedForm-2SYVMJY6.mjs +14 -0
  31. package/dist/ManagedForm-2SYVMJY6.mjs.map +1 -0
  32. package/dist/ManagedForm-XWN3TVQQ.js +23 -0
  33. package/dist/ManagedForm-XWN3TVQQ.js.map +1 -0
  34. package/dist/{SignalCore-6GXPHNFA.mjs → SignalCore-4NOVH33M.mjs} +5 -5
  35. package/dist/{SignalCore-6GXPHNFA.mjs.map → SignalCore-4NOVH33M.mjs.map} +1 -1
  36. package/dist/{SignalCore-LJ3NUEU4.js → SignalCore-PD75O7GB.js} +11 -11
  37. package/dist/{SignalCore-LJ3NUEU4.js.map → SignalCore-PD75O7GB.js.map} +1 -1
  38. package/dist/SitemapSync-KKUF43DS.js +17 -0
  39. package/dist/{SitemapSync-BG2ZWSM6.js.map → SitemapSync-KKUF43DS.js.map} +1 -1
  40. package/dist/SitemapSync-UH6VZ55T.mjs +8 -0
  41. package/dist/{SitemapSync-5DGS2XLM.mjs.map → SitemapSync-UH6VZ55T.mjs.map} +1 -1
  42. package/dist/analytics/index.js +9 -9
  43. package/dist/analytics/index.mjs +4 -4
  44. package/dist/{chunk-BFADBU2B.js → chunk-2ACKOMAL.js} +105 -514
  45. package/dist/chunk-2ACKOMAL.js.map +1 -0
  46. package/dist/{chunk-64DQANST.js → chunk-2MIOQYF5.js} +6 -6
  47. package/dist/{chunk-64DQANST.js.map → chunk-2MIOQYF5.js.map} +1 -1
  48. package/dist/{chunk-FLTTRX4O.mjs → chunk-53RHVKTD.mjs} +5 -5
  49. package/dist/{chunk-FLTTRX4O.mjs.map → chunk-53RHVKTD.mjs.map} +1 -1
  50. package/dist/{chunk-NQRUCOI7.js → chunk-5QVXHD6V.js} +14 -14
  51. package/dist/{chunk-NQRUCOI7.js.map → chunk-5QVXHD6V.js.map} +1 -1
  52. package/dist/{chunk-J6UKM476.js → chunk-62Z4D3QR.js} +5 -5
  53. package/dist/{chunk-J6UKM476.js.map → chunk-62Z4D3QR.js.map} +1 -1
  54. package/dist/{chunk-744TJ7SN.mjs → chunk-6PNWJXAE.mjs} +3 -3
  55. package/dist/{chunk-744TJ7SN.mjs.map → chunk-6PNWJXAE.mjs.map} +1 -1
  56. package/dist/{chunk-NKKXKN5L.mjs → chunk-6ZFXASW6.mjs} +4 -4
  57. package/dist/{chunk-NKKXKN5L.mjs.map → chunk-6ZFXASW6.mjs.map} +1 -1
  58. package/dist/{chunk-YNIZKOEW.js → chunk-A624YYDG.js} +2 -2
  59. package/dist/{chunk-YNIZKOEW.js.map → chunk-A624YYDG.js.map} +1 -1
  60. package/dist/chunk-AJNT5GCU.mjs +183 -0
  61. package/dist/chunk-AJNT5GCU.mjs.map +1 -0
  62. package/dist/chunk-AQA4PFMJ.mjs +44 -0
  63. package/dist/chunk-AQA4PFMJ.mjs.map +1 -0
  64. package/dist/{chunk-AVHXVWWG.mjs → chunk-B7J7SU5A.mjs} +8 -8
  65. package/dist/{chunk-AVHXVWWG.mjs.map → chunk-B7J7SU5A.mjs.map} +1 -1
  66. package/dist/chunk-DVYYGHSG.js +285 -0
  67. package/dist/chunk-DVYYGHSG.js.map +1 -0
  68. package/dist/{chunk-HUYPO33T.mjs → chunk-FGN27J35.mjs} +4 -4
  69. package/dist/{chunk-HUYPO33T.mjs.map → chunk-FGN27J35.mjs.map} +1 -1
  70. package/dist/{chunk-O5Z7ZKYS.mjs → chunk-FZ643CZK.mjs} +4 -4
  71. package/dist/{chunk-O5Z7ZKYS.mjs.map → chunk-FZ643CZK.mjs.map} +1 -1
  72. package/dist/{chunk-3IXGYUUR.mjs → chunk-GCS4XZHC.mjs} +3 -3
  73. package/dist/{chunk-3IXGYUUR.mjs.map → chunk-GCS4XZHC.mjs.map} +1 -1
  74. package/dist/{chunk-BH3XILNX.mjs → chunk-HOB2A6JM.mjs} +3 -3
  75. package/dist/{chunk-BH3XILNX.mjs.map → chunk-HOB2A6JM.mjs.map} +1 -1
  76. package/dist/{chunk-U3OU4V56.mjs → chunk-JFVEKSZT.mjs} +5 -182
  77. package/dist/chunk-JFVEKSZT.mjs.map +1 -0
  78. package/dist/{chunk-PMCNKBYS.mjs → chunk-KNYK2VLX.mjs} +3 -3
  79. package/dist/{chunk-PMCNKBYS.mjs.map → chunk-KNYK2VLX.mjs.map} +1 -1
  80. package/dist/{chunk-6DJEXHZE.mjs → chunk-LB7LHVWI.mjs} +107 -503
  81. package/dist/chunk-LB7LHVWI.mjs.map +1 -0
  82. package/dist/{chunk-YOTQH4X4.js → chunk-LP6MC2RH.js} +14 -14
  83. package/dist/{chunk-YOTQH4X4.js.map → chunk-LP6MC2RH.js.map} +1 -1
  84. package/dist/chunk-LVCUT2OX.js +148 -0
  85. package/dist/chunk-LVCUT2OX.js.map +1 -0
  86. package/dist/chunk-LYAU5PRS.js +8 -0
  87. package/dist/{chunk-T7QIXFFM.js.map → chunk-LYAU5PRS.js.map} +1 -1
  88. package/dist/{chunk-OTAIUZED.js → chunk-MPACJDDG.js} +8 -8
  89. package/dist/{chunk-OTAIUZED.js.map → chunk-MPACJDDG.js.map} +1 -1
  90. package/dist/{chunk-W4WGNWQG.js → chunk-MRRTAJWQ.js} +3 -3
  91. package/dist/{chunk-W4WGNWQG.js.map → chunk-MRRTAJWQ.js.map} +1 -1
  92. package/dist/chunk-MU3D5IO7.mjs +283 -0
  93. package/dist/chunk-MU3D5IO7.mjs.map +1 -0
  94. package/dist/{chunk-L5NLP3EW.js → chunk-MVHR77V4.js} +11 -2
  95. package/dist/chunk-MVHR77V4.js.map +1 -0
  96. package/dist/chunk-MZY3MEUO.mjs +138 -0
  97. package/dist/chunk-MZY3MEUO.mjs.map +1 -0
  98. package/dist/chunk-NCWVR4BU.mjs +508 -0
  99. package/dist/chunk-NCWVR4BU.mjs.map +1 -0
  100. package/dist/{chunk-LKZF7343.js → chunk-NJN467OM.js} +14 -14
  101. package/dist/{chunk-LKZF7343.js.map → chunk-NJN467OM.js.map} +1 -1
  102. package/dist/{chunk-EZCDDRXA.mjs → chunk-NWJX6NHR.mjs} +4 -4
  103. package/dist/{chunk-EZCDDRXA.mjs.map → chunk-NWJX6NHR.mjs.map} +1 -1
  104. package/dist/chunk-NWPNFCNY.js +511 -0
  105. package/dist/chunk-NWPNFCNY.js.map +1 -0
  106. package/dist/{chunk-P64SKDBS.js → chunk-OP5FYTWJ.js} +12 -191
  107. package/dist/chunk-OP5FYTWJ.js.map +1 -0
  108. package/dist/{chunk-JM5JCIAY.js → chunk-PGND73EV.js} +4 -4
  109. package/dist/{chunk-JM5JCIAY.js.map → chunk-PGND73EV.js.map} +1 -1
  110. package/dist/chunk-QO5NS62X.js +46 -0
  111. package/dist/chunk-QO5NS62X.js.map +1 -0
  112. package/dist/chunk-QTN3F7D7.mjs +6 -0
  113. package/dist/{chunk-LLQEJDCA.mjs.map → chunk-QTN3F7D7.mjs.map} +1 -1
  114. package/dist/chunk-R4PCXP3F.mjs +60 -0
  115. package/dist/chunk-R4PCXP3F.mjs.map +1 -0
  116. package/dist/{chunk-BOWEGDKJ.js → chunk-RAX3HS4T.js} +15 -15
  117. package/dist/{chunk-BOWEGDKJ.js.map → chunk-RAX3HS4T.js.map} +1 -1
  118. package/dist/{chunk-SXE2TRRU.js → chunk-T2YAEBEY.js} +4 -4
  119. package/dist/{chunk-SXE2TRRU.js.map → chunk-T2YAEBEY.js.map} +1 -1
  120. package/dist/{chunk-I76F26IS.mjs → chunk-T5DXYGWK.mjs} +3 -3
  121. package/dist/{chunk-I76F26IS.mjs.map → chunk-T5DXYGWK.mjs.map} +1 -1
  122. package/dist/{chunk-KHJYA64F.mjs → chunk-U2CJZ6O5.mjs} +2 -2
  123. package/dist/{chunk-KHJYA64F.mjs.map → chunk-U2CJZ6O5.mjs.map} +1 -1
  124. package/dist/{chunk-TUVJQ6FS.mjs → chunk-UBNVD567.mjs} +3 -3
  125. package/dist/{chunk-TUVJQ6FS.mjs.map → chunk-UBNVD567.mjs.map} +1 -1
  126. package/dist/chunk-UQPUFRXF.mjs +104 -0
  127. package/dist/chunk-UQPUFRXF.mjs.map +1 -0
  128. package/dist/chunk-VLY3SFNH.js +64 -0
  129. package/dist/chunk-VLY3SFNH.js.map +1 -0
  130. package/dist/{chunk-MVMORDOM.mjs → chunk-VUIQLKJB.mjs} +3 -3
  131. package/dist/{chunk-MVMORDOM.mjs.map → chunk-VUIQLKJB.mjs.map} +1 -1
  132. package/dist/chunk-WHVUSVHA.js +110 -0
  133. package/dist/chunk-WHVUSVHA.js.map +1 -0
  134. package/dist/{chunk-H4F557CO.js → chunk-WNNY2BCV.js} +8 -8
  135. package/dist/{chunk-H4F557CO.js.map → chunk-WNNY2BCV.js.map} +1 -1
  136. package/dist/{chunk-KN2EYZYV.mjs → chunk-WSPGXSBU.mjs} +11 -2
  137. package/dist/chunk-WSPGXSBU.mjs.map +1 -0
  138. package/dist/{chunk-ZLVZOAJG.js → chunk-WXKEYKE6.js} +15 -15
  139. package/dist/{chunk-ZLVZOAJG.js.map → chunk-WXKEYKE6.js.map} +1 -1
  140. package/dist/{chunk-NWYXTJNW.mjs → chunk-XNPITFJ5.mjs} +3 -3
  141. package/dist/{chunk-NWYXTJNW.mjs.map → chunk-XNPITFJ5.mjs.map} +1 -1
  142. package/dist/{chunk-ZBFBNGQK.mjs → chunk-XRC3JZAK.mjs} +3 -3
  143. package/dist/{chunk-ZBFBNGQK.mjs.map → chunk-XRC3JZAK.mjs.map} +1 -1
  144. package/dist/{chunk-OWQFWDE2.js → chunk-Y26LKDE4.js} +9 -9
  145. package/dist/{chunk-OWQFWDE2.js.map → chunk-Y26LKDE4.js.map} +1 -1
  146. package/dist/{chunk-2OD3EGPO.js → chunk-ZK5VSIRO.js} +12 -12
  147. package/dist/{chunk-2OD3EGPO.js.map → chunk-ZK5VSIRO.js.map} +1 -1
  148. package/dist/{chunk-IPQ7Z5VT.js → chunk-ZPG4GTU7.js} +5 -5
  149. package/dist/{chunk-IPQ7Z5VT.js.map → chunk-ZPG4GTU7.js.map} +1 -1
  150. package/dist/chunk-ZRGCKWIT.js +188 -0
  151. package/dist/chunk-ZRGCKWIT.js.map +1 -0
  152. package/dist/cli/index.js +3 -3
  153. package/dist/cli/index.mjs +1 -1
  154. package/dist/client/index.js +5 -5
  155. package/dist/client/index.mjs +4 -4
  156. package/dist/commerce/index.js +56 -56
  157. package/dist/commerce/index.mjs +5 -5
  158. package/dist/engage/index.js +10 -9
  159. package/dist/engage/index.js.map +1 -1
  160. package/dist/engage/index.mjs +7 -6
  161. package/dist/engage/index.mjs.map +1 -1
  162. package/dist/fleet/index.js +9 -9
  163. package/dist/fleet/index.mjs +5 -5
  164. package/dist/forms/FileField.d.ts +31 -0
  165. package/dist/forms/FileField.d.ts.map +1 -0
  166. package/dist/forms/FormClient.d.ts +12 -1
  167. package/dist/forms/FormClient.d.ts.map +1 -1
  168. package/dist/forms/FormEnhancer.d.ts +72 -0
  169. package/dist/forms/FormEnhancer.d.ts.map +1 -0
  170. package/dist/forms/FormField.d.ts +26 -3
  171. package/dist/forms/FormField.d.ts.map +1 -1
  172. package/dist/forms/FormSpotlight.d.ts.map +1 -1
  173. package/dist/forms/FormStage.d.ts.map +1 -1
  174. package/dist/forms/HoneypotField.d.ts +8 -2
  175. package/dist/forms/HoneypotField.d.ts.map +1 -1
  176. package/dist/forms/ManagedForm.d.ts +1 -1
  177. package/dist/forms/ManagedForm.d.ts.map +1 -1
  178. package/dist/forms/ServerForm.d.ts +73 -0
  179. package/dist/forms/ServerForm.d.ts.map +1 -0
  180. package/dist/forms/StaticForm.d.ts +50 -0
  181. package/dist/forms/StaticForm.d.ts.map +1 -0
  182. package/dist/forms/experience-chrome.d.ts.map +1 -1
  183. package/dist/forms/field-controls.d.ts +7 -0
  184. package/dist/forms/field-controls.d.ts.map +1 -0
  185. package/dist/forms/index.d.ts +7 -0
  186. package/dist/forms/index.d.ts.map +1 -1
  187. package/dist/forms/index.js +33 -537
  188. package/dist/forms/index.js.map +1 -1
  189. package/dist/forms/index.mjs +14 -530
  190. package/dist/forms/index.mjs.map +1 -1
  191. package/dist/forms/native-fallback.d.ts +41 -0
  192. package/dist/forms/native-fallback.d.ts.map +1 -0
  193. package/dist/forms/native-fallback.test.d.ts +2 -0
  194. package/dist/forms/native-fallback.test.d.ts.map +1 -0
  195. package/dist/forms/normalize-config.d.ts +18 -0
  196. package/dist/forms/normalize-config.d.ts.map +1 -0
  197. package/dist/forms/server.d.ts +5 -0
  198. package/dist/forms/server.d.ts.map +1 -1
  199. package/dist/forms/server.js +47 -0
  200. package/dist/forms/server.js.map +1 -1
  201. package/dist/forms/server.mjs +44 -1
  202. package/dist/forms/server.mjs.map +1 -1
  203. package/dist/forms/static-form.test.d.ts +2 -0
  204. package/dist/forms/static-form.test.d.ts.map +1 -0
  205. package/dist/forms/static.d.ts +17 -0
  206. package/dist/forms/static.d.ts.map +1 -0
  207. package/dist/forms/static.js +20 -0
  208. package/dist/forms/static.js.map +1 -0
  209. package/dist/forms/static.mjs +11 -0
  210. package/dist/forms/static.mjs.map +1 -0
  211. package/dist/forms/submitForm.d.ts +4 -0
  212. package/dist/forms/submitForm.d.ts.map +1 -1
  213. package/dist/forms/types.d.ts +19 -0
  214. package/dist/forms/types.d.ts.map +1 -1
  215. package/dist/forms/useForm.d.ts.map +1 -1
  216. package/dist/images/index.js +11 -11
  217. package/dist/images/index.mjs +4 -4
  218. package/dist/index.js +109 -109
  219. package/dist/index.mjs +9 -9
  220. package/dist/layout/client.js +9 -9
  221. package/dist/layout/client.mjs +8 -8
  222. package/dist/layout/index.js +11 -11
  223. package/dist/layout/index.mjs +9 -9
  224. package/dist/maps/index.js +5 -5
  225. package/dist/maps/index.mjs +3 -3
  226. package/dist/search/index.js +4 -4
  227. package/dist/search/index.mjs +3 -3
  228. package/dist/seo/client.js +5 -5
  229. package/dist/seo/client.mjs +4 -4
  230. package/dist/seo/index.js +14 -14
  231. package/dist/seo/index.mjs +6 -6
  232. package/dist/seo/server.js +5 -5
  233. package/dist/seo/server.mjs +1 -1
  234. package/dist/server/index.js +3 -3
  235. package/dist/server/index.mjs +2 -2
  236. package/dist/shared/build-entries.d.ts +6 -0
  237. package/dist/shared/build-entries.d.ts.map +1 -1
  238. package/dist/shared/version.d.ts +1 -1
  239. package/dist/signal/index.js +11 -11
  240. package/dist/signal/index.mjs +2 -2
  241. package/dist/sync/index.js +16 -16
  242. package/dist/sync/index.mjs +4 -4
  243. package/package.json +9 -4
  244. package/dist/AnalyticsProvider-HZTP36TY.js +0 -31
  245. package/dist/AnalyticsProvider-P6J5ZGZB.mjs +0 -10
  246. package/dist/ChatWidget-Q4YJUQ36.mjs +0 -10
  247. package/dist/ChatWidget-XJFFNLTK.js +0 -19
  248. package/dist/EngageWidget-IMQBLBII.mjs +0 -9
  249. package/dist/EngageWidget-NGPAVLLE.js +0 -18
  250. package/dist/FormSpotlight-5YFKFZYS.mjs.map +0 -1
  251. package/dist/FormSpotlight-7BH6QE6T.js.map +0 -1
  252. package/dist/FormStage-7BVPTSSE.js.map +0 -1
  253. package/dist/FormStage-KB4GYL5K.mjs.map +0 -1
  254. package/dist/SitemapSync-5DGS2XLM.mjs +0 -8
  255. package/dist/SitemapSync-BG2ZWSM6.js +0 -17
  256. package/dist/chunk-6DJEXHZE.mjs.map +0 -1
  257. package/dist/chunk-BFADBU2B.js.map +0 -1
  258. package/dist/chunk-KN2EYZYV.mjs.map +0 -1
  259. package/dist/chunk-L5NLP3EW.js.map +0 -1
  260. package/dist/chunk-LLQEJDCA.mjs +0 -6
  261. package/dist/chunk-P64SKDBS.js.map +0 -1
  262. package/dist/chunk-T7QIXFFM.js +0 -8
  263. package/dist/chunk-U3OU4V56.mjs.map +0 -1
@@ -1,222 +1,222 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkLKZF7343_js = require('../chunk-LKZF7343.js');
4
+ var chunkNJN467OM_js = require('../chunk-NJN467OM.js');
5
5
  require('../chunk-EDZWNCSE.js');
6
- require('../chunk-NQRUCOI7.js');
6
+ require('../chunk-5QVXHD6V.js');
7
7
  require('../chunk-HMFFAUCD.js');
8
8
  require('../chunk-RC4WWQXR.js');
9
9
  require('../chunk-VJMPIRSD.js');
10
- require('../chunk-ZLVZOAJG.js');
11
- require('../chunk-JM5JCIAY.js');
12
- require('../chunk-T7QIXFFM.js');
10
+ require('../chunk-WXKEYKE6.js');
11
+ require('../chunk-PGND73EV.js');
12
+ require('../chunk-LYAU5PRS.js');
13
13
  require('../chunk-SNAQBZPT.js');
14
14
 
15
15
 
16
16
 
17
17
  Object.defineProperty(exports, "CalendarView", {
18
18
  enumerable: true,
19
- get: function () { return chunkLKZF7343_js.CalendarView; }
19
+ get: function () { return chunkNJN467OM_js.CalendarView; }
20
20
  });
21
21
  Object.defineProperty(exports, "CapacityBadge", {
22
22
  enumerable: true,
23
- get: function () { return chunkLKZF7343_js.CapacityBadge; }
23
+ get: function () { return chunkNJN467OM_js.CapacityBadge; }
24
24
  });
25
25
  Object.defineProperty(exports, "CheckoutForm", {
26
26
  enumerable: true,
27
- get: function () { return chunkLKZF7343_js.CheckoutForm; }
27
+ get: function () { return chunkNJN467OM_js.CheckoutForm; }
28
28
  });
29
29
  Object.defineProperty(exports, "EventCalendar", {
30
30
  enumerable: true,
31
- get: function () { return chunkLKZF7343_js.EventCalendar; }
31
+ get: function () { return chunkNJN467OM_js.EventCalendar; }
32
32
  });
33
33
  Object.defineProperty(exports, "EventCheckout", {
34
34
  enumerable: true,
35
- get: function () { return chunkLKZF7343_js.EventCheckout; }
35
+ get: function () { return chunkNJN467OM_js.EventCheckout; }
36
36
  });
37
37
  Object.defineProperty(exports, "EventEmbed", {
38
38
  enumerable: true,
39
- get: function () { return chunkLKZF7343_js.EventEmbed; }
39
+ get: function () { return chunkNJN467OM_js.EventEmbed; }
40
40
  });
41
41
  Object.defineProperty(exports, "EventJsonLd", {
42
42
  enumerable: true,
43
- get: function () { return chunkLKZF7343_js.EventJsonLd; }
43
+ get: function () { return chunkNJN467OM_js.EventJsonLd; }
44
44
  });
45
45
  Object.defineProperty(exports, "EventModal", {
46
46
  enumerable: true,
47
- get: function () { return chunkLKZF7343_js.EventModal; }
47
+ get: function () { return chunkNJN467OM_js.EventModal; }
48
48
  });
49
49
  Object.defineProperty(exports, "EventTile", {
50
50
  enumerable: true,
51
- get: function () { return chunkLKZF7343_js.EventTile; }
51
+ get: function () { return chunkNJN467OM_js.EventTile; }
52
52
  });
53
53
  Object.defineProperty(exports, "EventsAgenda", {
54
54
  enumerable: true,
55
- get: function () { return chunkLKZF7343_js.EventsAgenda; }
55
+ get: function () { return chunkNJN467OM_js.EventsAgenda; }
56
56
  });
57
57
  Object.defineProperty(exports, "EventsWidget", {
58
58
  enumerable: true,
59
- get: function () { return chunkLKZF7343_js.EventsWidget; }
59
+ get: function () { return chunkNJN467OM_js.EventsWidget; }
60
60
  });
61
61
  Object.defineProperty(exports, "OfferingCard", {
62
62
  enumerable: true,
63
- get: function () { return chunkLKZF7343_js.OfferingCard; }
63
+ get: function () { return chunkNJN467OM_js.OfferingCard; }
64
64
  });
65
65
  Object.defineProperty(exports, "OfferingList", {
66
66
  enumerable: true,
67
- get: function () { return chunkLKZF7343_js.OfferingList; }
67
+ get: function () { return chunkNJN467OM_js.OfferingList; }
68
68
  });
69
69
  Object.defineProperty(exports, "ProductDetail", {
70
70
  enumerable: true,
71
- get: function () { return chunkLKZF7343_js.ProductDetail; }
71
+ get: function () { return chunkNJN467OM_js.ProductDetail; }
72
72
  });
73
73
  Object.defineProperty(exports, "ProductEmbed", {
74
74
  enumerable: true,
75
- get: function () { return chunkLKZF7343_js.ProductEmbed; }
75
+ get: function () { return chunkNJN467OM_js.ProductEmbed; }
76
76
  });
77
77
  Object.defineProperty(exports, "ProductGrid", {
78
78
  enumerable: true,
79
- get: function () { return chunkLKZF7343_js.ProductGrid; }
79
+ get: function () { return chunkNJN467OM_js.ProductGrid; }
80
80
  });
81
81
  Object.defineProperty(exports, "ProductPage", {
82
82
  enumerable: true,
83
- get: function () { return chunkLKZF7343_js.ProductPage; }
83
+ get: function () { return chunkNJN467OM_js.ProductPage; }
84
84
  });
85
85
  Object.defineProperty(exports, "RegistrationForm", {
86
86
  enumerable: true,
87
- get: function () { return chunkLKZF7343_js.RegistrationForm; }
87
+ get: function () { return chunkNJN467OM_js.RegistrationForm; }
88
88
  });
89
89
  Object.defineProperty(exports, "SizeChart", {
90
90
  enumerable: true,
91
- get: function () { return chunkLKZF7343_js.SizeChart; }
91
+ get: function () { return chunkNJN467OM_js.SizeChart; }
92
92
  });
93
93
  Object.defineProperty(exports, "UpcomingEvents", {
94
94
  enumerable: true,
95
- get: function () { return chunkLKZF7343_js.UpcomingEvents; }
95
+ get: function () { return chunkNJN467OM_js.UpcomingEvents; }
96
96
  });
97
97
  Object.defineProperty(exports, "createCheckoutSession", {
98
98
  enumerable: true,
99
- get: function () { return chunkLKZF7343_js.createCheckoutSession; }
99
+ get: function () { return chunkNJN467OM_js.createCheckoutSession; }
100
100
  });
101
101
  Object.defineProperty(exports, "createPaymentIntent", {
102
102
  enumerable: true,
103
- get: function () { return chunkLKZF7343_js.createPaymentIntent; }
103
+ get: function () { return chunkNJN467OM_js.createPaymentIntent; }
104
104
  });
105
105
  Object.defineProperty(exports, "fetchActiveProcessor", {
106
106
  enumerable: true,
107
- get: function () { return chunkLKZF7343_js.fetchActiveProcessor; }
107
+ get: function () { return chunkNJN467OM_js.fetchActiveProcessor; }
108
108
  });
109
109
  Object.defineProperty(exports, "fetchCategories", {
110
110
  enumerable: true,
111
- get: function () { return chunkLKZF7343_js.fetchCategories; }
111
+ get: function () { return chunkNJN467OM_js.fetchCategories; }
112
112
  });
113
113
  Object.defineProperty(exports, "fetchLatestOffering", {
114
114
  enumerable: true,
115
- get: function () { return chunkLKZF7343_js.fetchLatestOffering; }
115
+ get: function () { return chunkNJN467OM_js.fetchLatestOffering; }
116
116
  });
117
117
  Object.defineProperty(exports, "fetchNextEvent", {
118
118
  enumerable: true,
119
- get: function () { return chunkLKZF7343_js.fetchNextEvent; }
119
+ get: function () { return chunkNJN467OM_js.fetchNextEvent; }
120
120
  });
121
121
  Object.defineProperty(exports, "fetchOffering", {
122
122
  enumerable: true,
123
- get: function () { return chunkLKZF7343_js.fetchOffering; }
123
+ get: function () { return chunkNJN467OM_js.fetchOffering; }
124
124
  });
125
125
  Object.defineProperty(exports, "fetchOfferings", {
126
126
  enumerable: true,
127
- get: function () { return chunkLKZF7343_js.fetchOfferings; }
127
+ get: function () { return chunkNJN467OM_js.fetchOfferings; }
128
128
  });
129
129
  Object.defineProperty(exports, "fetchProcessorConfig", {
130
130
  enumerable: true,
131
- get: function () { return chunkLKZF7343_js.fetchProcessorConfig; }
131
+ get: function () { return chunkNJN467OM_js.fetchProcessorConfig; }
132
132
  });
133
133
  Object.defineProperty(exports, "fetchProductBySlug", {
134
134
  enumerable: true,
135
- get: function () { return chunkLKZF7343_js.fetchProductBySlug; }
135
+ get: function () { return chunkNJN467OM_js.fetchProductBySlug; }
136
136
  });
137
137
  Object.defineProperty(exports, "fetchProducts", {
138
138
  enumerable: true,
139
- get: function () { return chunkLKZF7343_js.fetchProducts; }
139
+ get: function () { return chunkNJN467OM_js.fetchProducts; }
140
140
  });
141
141
  Object.defineProperty(exports, "fetchProductsPublic", {
142
142
  enumerable: true,
143
- get: function () { return chunkLKZF7343_js.fetchProductsPublic; }
143
+ get: function () { return chunkNJN467OM_js.fetchProductsPublic; }
144
144
  });
145
145
  Object.defineProperty(exports, "fetchServices", {
146
146
  enumerable: true,
147
- get: function () { return chunkLKZF7343_js.fetchServices; }
147
+ get: function () { return chunkNJN467OM_js.fetchServices; }
148
148
  });
149
149
  Object.defineProperty(exports, "fetchShippingRates", {
150
150
  enumerable: true,
151
- get: function () { return chunkLKZF7343_js.fetchShippingRates; }
151
+ get: function () { return chunkNJN467OM_js.fetchShippingRates; }
152
152
  });
153
153
  Object.defineProperty(exports, "fetchUpcomingEvents", {
154
154
  enumerable: true,
155
- get: function () { return chunkLKZF7343_js.fetchUpcomingEvents; }
155
+ get: function () { return chunkNJN467OM_js.fetchUpcomingEvents; }
156
156
  });
157
157
  Object.defineProperty(exports, "formatDate", {
158
158
  enumerable: true,
159
- get: function () { return chunkLKZF7343_js.formatDate; }
159
+ get: function () { return chunkNJN467OM_js.formatDate; }
160
160
  });
161
161
  Object.defineProperty(exports, "formatDateRange", {
162
162
  enumerable: true,
163
- get: function () { return chunkLKZF7343_js.formatDateRange; }
163
+ get: function () { return chunkNJN467OM_js.formatDateRange; }
164
164
  });
165
165
  Object.defineProperty(exports, "formatDateTime", {
166
166
  enumerable: true,
167
- get: function () { return chunkLKZF7343_js.formatDateTime; }
167
+ get: function () { return chunkNJN467OM_js.formatDateTime; }
168
168
  });
169
169
  Object.defineProperty(exports, "formatPrice", {
170
170
  enumerable: true,
171
- get: function () { return chunkLKZF7343_js.formatPrice; }
171
+ get: function () { return chunkNJN467OM_js.formatPrice; }
172
172
  });
173
173
  Object.defineProperty(exports, "formatTime", {
174
174
  enumerable: true,
175
- get: function () { return chunkLKZF7343_js.formatTime; }
175
+ get: function () { return chunkNJN467OM_js.formatTime; }
176
176
  });
177
177
  Object.defineProperty(exports, "getOfferingUrl", {
178
178
  enumerable: true,
179
- get: function () { return chunkLKZF7343_js.getOfferingUrl; }
179
+ get: function () { return chunkNJN467OM_js.getOfferingUrl; }
180
180
  });
181
181
  Object.defineProperty(exports, "getRelativeTimeUntil", {
182
182
  enumerable: true,
183
- get: function () { return chunkLKZF7343_js.getRelativeTimeUntil; }
183
+ get: function () { return chunkNJN467OM_js.getRelativeTimeUntil; }
184
184
  });
185
185
  Object.defineProperty(exports, "getSpotsRemaining", {
186
186
  enumerable: true,
187
- get: function () { return chunkLKZF7343_js.getSpotsRemaining; }
187
+ get: function () { return chunkNJN467OM_js.getSpotsRemaining; }
188
188
  });
189
189
  Object.defineProperty(exports, "googleCalendarUrl", {
190
190
  enumerable: true,
191
- get: function () { return chunkLKZF7343_js.googleCalendarUrl; }
191
+ get: function () { return chunkNJN467OM_js.googleCalendarUrl; }
192
192
  });
193
193
  Object.defineProperty(exports, "icsForEvent", {
194
194
  enumerable: true,
195
- get: function () { return chunkLKZF7343_js.icsForEvent; }
195
+ get: function () { return chunkNJN467OM_js.icsForEvent; }
196
196
  });
197
197
  Object.defineProperty(exports, "icsResponse", {
198
198
  enumerable: true,
199
- get: function () { return chunkLKZF7343_js.icsResponse; }
199
+ get: function () { return chunkNJN467OM_js.icsResponse; }
200
200
  });
201
201
  Object.defineProperty(exports, "isEventSoldOut", {
202
202
  enumerable: true,
203
- get: function () { return chunkLKZF7343_js.isEventSoldOut; }
203
+ get: function () { return chunkNJN467OM_js.isEventSoldOut; }
204
204
  });
205
205
  Object.defineProperty(exports, "registerForEvent", {
206
206
  enumerable: true,
207
- get: function () { return chunkLKZF7343_js.registerForEvent; }
207
+ get: function () { return chunkNJN467OM_js.registerForEvent; }
208
208
  });
209
209
  Object.defineProperty(exports, "useEventModal", {
210
210
  enumerable: true,
211
- get: function () { return chunkLKZF7343_js.useEventModal; }
211
+ get: function () { return chunkNJN467OM_js.useEventModal; }
212
212
  });
213
213
  Object.defineProperty(exports, "validateAddress", {
214
214
  enumerable: true,
215
- get: function () { return chunkLKZF7343_js.validateAddress; }
215
+ get: function () { return chunkNJN467OM_js.validateAddress; }
216
216
  });
217
217
  Object.defineProperty(exports, "validateDiscountCode", {
218
218
  enumerable: true,
219
- get: function () { return chunkLKZF7343_js.validateDiscountCode; }
219
+ get: function () { return chunkNJN467OM_js.validateDiscountCode; }
220
220
  });
221
221
  //# sourceMappingURL=index.js.map
222
222
  //# sourceMappingURL=index.js.map
@@ -1,13 +1,13 @@
1
1
  'use client';
2
- export { CalendarView, CapacityBadge, CheckoutForm, EventCalendar, EventCheckout, EventEmbed, EventJsonLd, EventModal, EventTile, EventsAgenda, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, SizeChart, UpcomingEvents, createCheckoutSession, createPaymentIntent, fetchActiveProcessor, fetchCategories, fetchLatestOffering, fetchNextEvent, fetchOffering, fetchOfferings, fetchProcessorConfig, fetchProductBySlug, fetchProducts, fetchProductsPublic, fetchServices, fetchShippingRates, fetchUpcomingEvents, formatDate, formatDateRange, formatDateTime, formatPrice, formatTime, getOfferingUrl, getRelativeTimeUntil, getSpotsRemaining, googleCalendarUrl, icsForEvent, icsResponse, isEventSoldOut, registerForEvent, useEventModal, validateAddress, validateDiscountCode } from '../chunk-O5Z7ZKYS.mjs';
2
+ export { CalendarView, CapacityBadge, CheckoutForm, EventCalendar, EventCheckout, EventEmbed, EventJsonLd, EventModal, EventTile, EventsAgenda, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, SizeChart, UpcomingEvents, createCheckoutSession, createPaymentIntent, fetchActiveProcessor, fetchCategories, fetchLatestOffering, fetchNextEvent, fetchOffering, fetchOfferings, fetchProcessorConfig, fetchProductBySlug, fetchProducts, fetchProductsPublic, fetchServices, fetchShippingRates, fetchUpcomingEvents, formatDate, formatDateRange, formatDateTime, formatPrice, formatTime, getOfferingUrl, getRelativeTimeUntil, getSpotsRemaining, googleCalendarUrl, icsForEvent, icsResponse, isEventSoldOut, registerForEvent, useEventModal, validateAddress, validateDiscountCode } from '../chunk-FZ643CZK.mjs';
3
3
  import '../chunk-26JXNW7B.mjs';
4
- import '../chunk-744TJ7SN.mjs';
4
+ import '../chunk-6PNWJXAE.mjs';
5
5
  import '../chunk-3DPXOZAU.mjs';
6
6
  import '../chunk-ZZQAGCSI.mjs';
7
7
  import '../chunk-6EDVCUAG.mjs';
8
- import '../chunk-HUYPO33T.mjs';
9
- import '../chunk-PMCNKBYS.mjs';
10
- import '../chunk-LLQEJDCA.mjs';
8
+ import '../chunk-FGN27J35.mjs';
9
+ import '../chunk-KNYK2VLX.mjs';
10
+ import '../chunk-QTN3F7D7.mjs';
11
11
  import '../chunk-BEXTDHO4.mjs';
12
12
  //# sourceMappingURL=index.mjs.map
13
13
  //# sourceMappingURL=index.mjs.map
@@ -1,15 +1,16 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkBOWEGDKJ_js = require('../chunk-BOWEGDKJ.js');
5
- var chunk64DQANST_js = require('../chunk-64DQANST.js');
6
- require('../chunk-P64SKDBS.js');
4
+ var chunkRAX3HS4T_js = require('../chunk-RAX3HS4T.js');
5
+ var chunk2MIOQYF5_js = require('../chunk-2MIOQYF5.js');
6
+ require('../chunk-OP5FYTWJ.js');
7
+ require('../chunk-ZRGCKWIT.js');
7
8
  require('../chunk-KHPJ3CEL.js');
8
9
  require('../chunk-RC4WWQXR.js');
9
10
  require('../chunk-VJMPIRSD.js');
10
- require('../chunk-ZLVZOAJG.js');
11
- require('../chunk-JM5JCIAY.js');
12
- require('../chunk-T7QIXFFM.js');
11
+ require('../chunk-WXKEYKE6.js');
12
+ require('../chunk-PGND73EV.js');
13
+ require('../chunk-LYAU5PRS.js');
13
14
  require('../chunk-SNAQBZPT.js');
14
15
 
15
16
  // src/engage/echo-config.ts
@@ -41,15 +42,15 @@ function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
41
42
 
42
43
  Object.defineProperty(exports, "ChatWidget", {
43
44
  enumerable: true,
44
- get: function () { return chunkBOWEGDKJ_js.ChatWidget; }
45
+ get: function () { return chunkRAX3HS4T_js.ChatWidget; }
45
46
  });
46
47
  Object.defineProperty(exports, "DesignRenderer", {
47
48
  enumerable: true,
48
- get: function () { return chunk64DQANST_js.DesignRenderer; }
49
+ get: function () { return chunk2MIOQYF5_js.DesignRenderer; }
49
50
  });
50
51
  Object.defineProperty(exports, "EngageWidget", {
51
52
  enumerable: true,
52
- get: function () { return chunk64DQANST_js.EngageWidget; }
53
+ get: function () { return chunk2MIOQYF5_js.EngageWidget; }
53
54
  });
54
55
  exports.SONOR_PUBLIC_ECHO_DEFAULTS = SONOR_PUBLIC_ECHO_DEFAULTS;
55
56
  exports.getEchoWidgetProps = getEchoWidgetProps;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
@@ -1,13 +1,14 @@
1
1
  'use client';
2
- export { ChatWidget } from '../chunk-NKKXKN5L.mjs';
3
- export { DesignRenderer, EngageWidget } from '../chunk-EZCDDRXA.mjs';
4
- import '../chunk-U3OU4V56.mjs';
2
+ export { ChatWidget } from '../chunk-6ZFXASW6.mjs';
3
+ export { DesignRenderer, EngageWidget } from '../chunk-NWJX6NHR.mjs';
4
+ import '../chunk-JFVEKSZT.mjs';
5
+ import '../chunk-AJNT5GCU.mjs';
5
6
  import '../chunk-TMVKRQGJ.mjs';
6
7
  import '../chunk-ZZQAGCSI.mjs';
7
8
  import '../chunk-6EDVCUAG.mjs';
8
- import '../chunk-HUYPO33T.mjs';
9
- import '../chunk-PMCNKBYS.mjs';
10
- import '../chunk-LLQEJDCA.mjs';
9
+ import '../chunk-FGN27J35.mjs';
10
+ import '../chunk-KNYK2VLX.mjs';
11
+ import '../chunk-QTN3F7D7.mjs';
11
12
  import '../chunk-BEXTDHO4.mjs';
12
13
 
13
14
  // src/engage/echo-config.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
@@ -1,31 +1,31 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkOTAIUZED_js = require('../chunk-OTAIUZED.js');
5
- require('../chunk-HGNSJXWT.js');
4
+ var chunkMPACJDDG_js = require('../chunk-MPACJDDG.js');
6
5
  var chunkQ2NBD54V_js = require('../chunk-Q2NBD54V.js');
7
- require('../chunk-ZLVZOAJG.js');
8
- require('../chunk-JM5JCIAY.js');
9
- require('../chunk-T7QIXFFM.js');
6
+ require('../chunk-HGNSJXWT.js');
7
+ require('../chunk-WXKEYKE6.js');
8
+ require('../chunk-PGND73EV.js');
9
+ require('../chunk-LYAU5PRS.js');
10
10
  require('../chunk-SNAQBZPT.js');
11
11
 
12
12
 
13
13
 
14
14
  Object.defineProperty(exports, "FLEET_HEARTBEAT_PATH", {
15
15
  enumerable: true,
16
- get: function () { return chunkOTAIUZED_js.FLEET_HEARTBEAT_PATH; }
16
+ get: function () { return chunkMPACJDDG_js.FLEET_HEARTBEAT_PATH; }
17
17
  });
18
18
  Object.defineProperty(exports, "FleetHeartbeat", {
19
19
  enumerable: true,
20
- get: function () { return chunkOTAIUZED_js.FleetHeartbeat; }
20
+ get: function () { return chunkMPACJDDG_js.FleetHeartbeat; }
21
21
  });
22
22
  Object.defineProperty(exports, "detectNextVersion", {
23
23
  enumerable: true,
24
- get: function () { return chunkOTAIUZED_js.detectNextVersion; }
24
+ get: function () { return chunkMPACJDDG_js.detectNextVersion; }
25
25
  });
26
26
  Object.defineProperty(exports, "sendFleetHeartbeat", {
27
27
  enumerable: true,
28
- get: function () { return chunkOTAIUZED_js.sendFleetHeartbeat; }
28
+ get: function () { return chunkMPACJDDG_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-FLTTRX4O.mjs';
3
- import '../chunk-ZVBLXXNJ.mjs';
2
+ export { FLEET_HEARTBEAT_PATH, FleetHeartbeat, detectNextVersion, sendFleetHeartbeat } from '../chunk-53RHVKTD.mjs';
4
3
  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-HUYPO33T.mjs';
6
- import '../chunk-PMCNKBYS.mjs';
7
- import '../chunk-LLQEJDCA.mjs';
4
+ import '../chunk-ZVBLXXNJ.mjs';
5
+ import '../chunk-FGN27J35.mjs';
6
+ import '../chunk-KNYK2VLX.mjs';
7
+ import '../chunk-QTN3F7D7.mjs';
8
8
  import '../chunk-BEXTDHO4.mjs';
9
9
  //# sourceMappingURL=index.mjs.map
10
10
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * File upload field — the one field type that cannot render on the server.
3
+ *
4
+ * It holds upload state and reads the browser-published credential globals, so
5
+ * it lives here rather than in FormField.tsx. Pulling it out is what lets
6
+ * FormField drop its `'use client'` directive and render inside a Server
7
+ * Component (see StaticForm.tsx); a form WITHOUT a file field now ships no
8
+ * field-rendering JavaScript at all.
9
+ *
10
+ * Uploads the chosen file to the Sonor API, which stores it and returns a
11
+ * public URL — that URL becomes the field value, so large files never touch
12
+ * the JSON submission body. The value stays empty until the upload succeeds,
13
+ * so a required file field correctly blocks submission until the upload
14
+ * completes (rather than submitting a useless bare filename).
15
+ *
16
+ * Note: forms containing a file field are NOT native-POST eligible (see
17
+ * native-fallback.tsx) — a form-encoded POST cannot run this upload — so the
18
+ * server shell renders a plain disabled-looking file input and the real
19
+ * control arrives with the enhancement.
20
+ */
21
+ import React from 'react';
22
+ import type { FormField as FormFieldType } from './types';
23
+ export interface FileFieldProps {
24
+ field: FormFieldType;
25
+ inputId: string;
26
+ classPrefix: string;
27
+ baseInputStyle: React.CSSProperties;
28
+ onChange: (value: unknown) => void;
29
+ }
30
+ export declare function FileField({ field, inputId, classPrefix, baseInputStyle, onChange, }: FileFieldProps): React.JSX.Element;
31
+ //# sourceMappingURL=FileField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileField.d.ts","sourceRoot":"","sources":["../../src/forms/FileField.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AAGzD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,KAAK,CAAC,aAAa,CAAA;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,GACT,EAAE,cAAc,qBA6ChB"}
@@ -12,13 +12,24 @@ interface FormClientProps {
12
12
  onSuccess?: (submission: FormSubmission) => void;
13
13
  onError?: (error: Error) => void;
14
14
  customRender?: (props: FormRenderProps) => React.ReactNode;
15
+ /**
16
+ * Pre-fill field values by slug. For context the page already has and the
17
+ * visitor should not retype: an email captured earlier in a conversation,
18
+ * the service they were reading about, an estimate the assistant just
19
+ * produced. Applied ON TOP of each field's configured default_value.
20
+ *
21
+ * Unknown slugs are ignored, so a stale key cannot break the form.
22
+ */
23
+ defaultValues?: Record<string, unknown>;
15
24
  /**
16
25
  * Which rendering the form gets. Defaults to the form's `layout` config
17
26
  * (`layout: 'stage'` in Sonor flips a form to stage with no site deploy),
18
27
  * else 'classic'. customRender always wins over this.
19
28
  */
20
29
  experience?: FormExperience;
30
+ /** Absolute page URL for the no-JS 303 to land on (see native-fallback). */
31
+ nativeReturnTo?: string;
21
32
  }
22
- export declare function FormClient({ config, className, onSuccess, onError, customRender, experience, }: FormClientProps): React.JSX.Element;
33
+ export declare function FormClient({ config, className, onSuccess, onError, customRender, experience, nativeReturnTo, defaultValues, }: FormClientProps): React.JSX.Element;
23
34
  export {};
24
35
  //# sourceMappingURL=FormClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormClient.d.ts","sourceRoot":"","sources":["../../src/forms/FormClient.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAA4D,MAAM,OAAO,CAAA;AAIhF,OAAO,KAAK,EACV,iBAAiB,EAEjB,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,SAAS,CAAA;AAEpE,UAAU,eAAe;IACvB,MAAM,EAAE,iBAAiB,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1D;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAS,EACT,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,GACX,EAAE,eAAe,qBA6mBjB"}
1
+ {"version":3,"file":"FormClient.d.ts","sourceRoot":"","sources":["../../src/forms/FormClient.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAA4D,MAAM,OAAO,CAAA;AAIhF,OAAO,KAAK,EACV,iBAAiB,EAEjB,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAA;AAOhB,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,SAAS,CAAA;AAEpE,UAAU,eAAe;IACvB,MAAM,EAAE,iBAAiB,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1D;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAS,EACT,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,GACd,EAAE,eAAe,qBA6nBjB"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * FormEnhancer — the only client code a managed form needs up front.
3
+ *
4
+ * Renders the server-rendered shell (<StaticForm>, passed as `children`) until
5
+ * an idle/first-interaction gate fires, then lazy-imports the interactive form
6
+ * and swaps it in. Everything expensive — validation, conditional logic,
7
+ * spotlight/stage, celebration, momentum — lives behind that dynamic import,
8
+ * so a page ships this boundary and nothing else in its initial chunk set.
9
+ *
10
+ * The shell is a REAL form the whole time (native action + signed token), so
11
+ * the progression is:
12
+ *
13
+ * no JS at all -> shell, submits natively. Works.
14
+ * JS, pre-idle -> shell, submits natively. Works.
15
+ * JS, post-idle -> enhanced form, submits over JSON. Works, with delight.
16
+ * chunk 404s -> shell stays. Works. (Never left blank.)
17
+ *
18
+ * That last line is the invariant to protect: the shell is only removed once
19
+ * the enhancement has actually rendered. Do not "hide the shell then load" —
20
+ * a CDN hiccup would leave a visitor staring at an empty box where the form
21
+ * used to be.
22
+ *
23
+ * ── Entrance animation ──────────────────────────────────────────────────
24
+ *
25
+ * Above-the-fold forms upgrade while the visitor is looking at them, so the
26
+ * swap must not pop. The wrapper carries `data-sk-form-mount="shell"` and
27
+ * flips to `"enhanced"`, and the enhanced form gets `data-sk-enter` for one
28
+ * frame, so a site can style the transition entirely in CSS:
29
+ *
30
+ * [data-sk-form-mount] { transition: opacity .35s ease }
31
+ * [data-sk-form-mount="shell"] { opacity: .6 }
32
+ *
33
+ * Defaults ship as CSS variables rather than hard-coded values:
34
+ *
35
+ * --sk-form-enter-duration (default 320ms)
36
+ * --sk-form-enter-easing (default cubic-bezier(.22,1,.36,1))
37
+ * --sk-form-enter-distance (default 6px)
38
+ *
39
+ * `enter="none"` opts out entirely; `enter="custom"` emits the data
40
+ * attributes but no site-kit styles, leaving the animation to the site.
41
+ * Every default is collapsed by prefers-reduced-motion.
42
+ */
43
+ import React from 'react';
44
+ import type { FormExperience, FormSubmission } from './types';
45
+ export type FormEnterAnimation = 'fade' | 'none' | 'custom';
46
+ export interface FormEnhancerProps {
47
+ formId: string;
48
+ /** Server-fetched raw config — hands the enhancement its fields instantly. */
49
+ initialConfig?: Record<string, unknown> | null;
50
+ className?: string;
51
+ nativeReturnTo?: string;
52
+ experience?: FormExperience;
53
+ /** Pre-fill field values by slug. See ManagedForm.defaultValues. */
54
+ defaultValues?: Record<string, unknown>;
55
+ onSuccess?: (submission: FormSubmission) => void;
56
+ onError?: (error: Error) => void;
57
+ /**
58
+ * How the enhanced form arrives. 'fade' (default) crossfades and lifts it
59
+ * into place; 'none' swaps instantly; 'custom' emits the data attributes
60
+ * and no styles so the site owns the animation.
61
+ */
62
+ enter?: FormEnterAnimation;
63
+ /**
64
+ * Set false to enhance immediately instead of waiting for idle. Only worth
65
+ * it for a form that is the entire point of the page AND above the fold.
66
+ */
67
+ defer?: boolean;
68
+ /** The server-rendered <StaticForm>. Shown until the enhancement mounts. */
69
+ children: React.ReactNode;
70
+ }
71
+ export declare function FormEnhancer({ formId, initialConfig, className, nativeReturnTo, experience, defaultValues, onSuccess, onError, enter, defer, children, }: FormEnhancerProps): React.JSX.Element;
72
+ //# sourceMappingURL=FormEnhancer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormEnhancer.d.ts","sourceRoot":"","sources":["../../src/forms/FormEnhancer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAsD,MAAM,OAAO,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE3D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC;;;;OAIG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,4EAA4E;IAC5E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,aAAa,EACb,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EACb,SAAS,EACT,OAAO,EACP,KAAc,EACd,KAAY,EACZ,QAAQ,GACT,EAAE,iBAAiB,qBAiCnB"}
@@ -29,12 +29,35 @@ interface FormFieldProps {
29
29
  /** Render the valid-state tick (touched + validated). Text-like fields only. */
30
30
  showValid?: boolean;
31
31
  field: FormFieldType;
32
- value: unknown;
32
+ value?: unknown;
33
33
  error?: string;
34
- onChange: (value: unknown) => void;
34
+ /**
35
+ * Omit to render STATIC mode: uncontrolled native controls with
36
+ * `defaultValue`, no React state, no event handlers. That is what lets a
37
+ * Server Component render a complete, submittable form with zero client
38
+ * JavaScript (see StaticForm.tsx). Pass a handler for the usual controlled
39
+ * behaviour once the enhancement hydrates.
40
+ *
41
+ * The two modes MUST emit the same element/class structure — the
42
+ * enhancement replaces the shell in place, and a mismatch shows up as a
43
+ * visible jump. field-parity.test.tsx pins this.
44
+ */
45
+ onChange?: (value: unknown) => void;
35
46
  /** Optional class name prefix for custom styling */
36
47
  classPrefix?: string;
48
+ /**
49
+ * Client-only controls, injected by FormClient. DatePicker and FileField
50
+ * carry hooks; importing them here would pull them into this module's chunk
51
+ * and the build would stamp the whole thing `'use client'`, so a Server
52
+ * Component rendering one text input would ship the date picker too.
53
+ * Injection keeps this file hook-free and therefore server-renderable.
54
+ * Absent = static mode falls back to the native control.
55
+ */
56
+ controls?: {
57
+ Date?: React.ComponentType<any>;
58
+ File?: React.ComponentType<any>;
59
+ };
37
60
  }
38
- export declare function FormField({ field, value, error, onChange, classPrefix, showValid }: FormFieldProps): React.JSX.Element;
61
+ export declare function FormField({ field, value, error, onChange, classPrefix, showValid, controls }: FormFieldProps): React.JSX.Element;
39
62
  export {};
40
63
  //# sourceMappingURL=FormField.d.ts.map