@sonordev/site-kit 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-manifest.json +6 -1
- package/dist/AnalyticsProvider-G5P5RQOA.js +31 -0
- package/dist/{AnalyticsProvider-UE34SYF2.js.map → AnalyticsProvider-G5P5RQOA.js.map} +1 -1
- package/dist/AnalyticsProvider-NGQLQL5N.mjs +10 -0
- package/dist/{AnalyticsProvider-NSXC6IOO.mjs.map → AnalyticsProvider-NGQLQL5N.mjs.map} +1 -1
- package/dist/ChatWidget-AYKZBKJH.js +20 -0
- package/dist/{ChatWidget-OW37OU3Z.js.map → ChatWidget-AYKZBKJH.js.map} +1 -1
- package/dist/ChatWidget-LPFHRK7U.mjs +11 -0
- package/dist/{ChatWidget-ASWCGCJJ.mjs.map → ChatWidget-LPFHRK7U.mjs.map} +1 -1
- package/dist/DatePicker-4WNKNNCV.mjs +4 -0
- package/dist/DatePicker-4WNKNNCV.mjs.map +1 -0
- package/dist/DatePicker-VPZR7RU3.js +13 -0
- package/dist/DatePicker-VPZR7RU3.js.map +1 -0
- package/dist/EngageWidget-HKPAJAMR.js +18 -0
- package/dist/{EngageWidget-MXOCMVBQ.js.map → EngageWidget-HKPAJAMR.js.map} +1 -1
- package/dist/EngageWidget-KDE7BYAK.mjs +9 -0
- package/dist/{EngageWidget-67UZ3P5P.mjs.map → EngageWidget-KDE7BYAK.mjs.map} +1 -1
- package/dist/FileField-DDDNSRMR.js +91 -0
- package/dist/FileField-DDDNSRMR.js.map +1 -0
- package/dist/FileField-SU4HTY4F.mjs +85 -0
- package/dist/FileField-SU4HTY4F.mjs.map +1 -0
- package/dist/{FormSpotlight-6MXGX6TU.mjs → FormSpotlight-B6TJPNYN.mjs} +7 -6
- package/dist/FormSpotlight-B6TJPNYN.mjs.map +1 -0
- package/dist/{FormSpotlight-LOR57ENP.js → FormSpotlight-M4S57VC6.js} +20 -19
- package/dist/FormSpotlight-M4S57VC6.js.map +1 -0
- package/dist/{FormStage-H35FBWTX.js → FormStage-2ASJGNOX.js} +16 -16
- package/dist/FormStage-2ASJGNOX.js.map +1 -0
- package/dist/{FormStage-ZLZD5EW4.mjs → FormStage-GH7SA6FQ.mjs} +6 -6
- package/dist/FormStage-GH7SA6FQ.mjs.map +1 -0
- package/dist/ManagedForm-D2JT3QV3.js +23 -0
- package/dist/ManagedForm-D2JT3QV3.js.map +1 -0
- package/dist/ManagedForm-RCC7NEV2.mjs +14 -0
- package/dist/ManagedForm-RCC7NEV2.mjs.map +1 -0
- package/dist/{SignalCore-HEXXYFSX.mjs → SignalCore-36PY3SRB.mjs} +5 -5
- package/dist/{SignalCore-HEXXYFSX.mjs.map → SignalCore-36PY3SRB.mjs.map} +1 -1
- package/dist/{SignalCore-EUMJIPDK.js → SignalCore-7H4ZGFZO.js} +11 -11
- package/dist/{SignalCore-EUMJIPDK.js.map → SignalCore-7H4ZGFZO.js.map} +1 -1
- package/dist/SitemapSync-AYVBNCH4.js +17 -0
- package/dist/{SitemapSync-HKUEDDG6.js.map → SitemapSync-AYVBNCH4.js.map} +1 -1
- package/dist/SitemapSync-HKAG3JU3.mjs +8 -0
- package/dist/{SitemapSync-T4QDPMFG.mjs.map → SitemapSync-HKAG3JU3.mjs.map} +1 -1
- package/dist/analytics/index.js +9 -9
- package/dist/analytics/index.mjs +4 -4
- package/dist/{chunk-ZGQUIL7L.js → chunk-2ACKOMAL.js} +105 -514
- package/dist/chunk-2ACKOMAL.js.map +1 -0
- package/dist/{chunk-52K556WM.js → chunk-2IH5FM2A.js} +14 -14
- package/dist/{chunk-52K556WM.js.map → chunk-2IH5FM2A.js.map} +1 -1
- package/dist/{chunk-PVE6G5XQ.mjs → chunk-2RJ5UHAC.mjs} +3 -3
- package/dist/{chunk-PVE6G5XQ.mjs.map → chunk-2RJ5UHAC.mjs.map} +1 -1
- package/dist/{chunk-VL2WAC22.js → chunk-3GJBSUVS.js} +14 -14
- package/dist/{chunk-VL2WAC22.js.map → chunk-3GJBSUVS.js.map} +1 -1
- package/dist/chunk-4ROQDPUE.mjs +60 -0
- package/dist/chunk-4ROQDPUE.mjs.map +1 -0
- package/dist/{chunk-4JEJTQYC.mjs → chunk-5GAOZTMW.mjs} +3 -3
- package/dist/{chunk-4JEJTQYC.mjs.map → chunk-5GAOZTMW.mjs.map} +1 -1
- package/dist/{chunk-NU5DJUVI.js → chunk-5JFJJNWS.js} +12 -192
- package/dist/chunk-5JFJJNWS.js.map +1 -0
- package/dist/{chunk-JGTIVQIN.mjs → chunk-7CYSA5EN.mjs} +3 -3
- package/dist/{chunk-JGTIVQIN.mjs.map → chunk-7CYSA5EN.mjs.map} +1 -1
- package/dist/{chunk-CTZHLX2B.mjs → chunk-7JES77WC.mjs} +5 -182
- package/dist/chunk-7JES77WC.mjs.map +1 -0
- package/dist/{chunk-DG34TZ6T.mjs → chunk-A4E6EOU4.mjs} +5 -5
- package/dist/{chunk-DG34TZ6T.mjs.map → chunk-A4E6EOU4.mjs.map} +1 -1
- package/dist/{chunk-YNIZKOEW.js → chunk-A624YYDG.js} +2 -2
- package/dist/{chunk-YNIZKOEW.js.map → chunk-A624YYDG.js.map} +1 -1
- package/dist/chunk-ANTVZSQI.mjs +183 -0
- package/dist/chunk-ANTVZSQI.mjs.map +1 -0
- package/dist/{chunk-2LKWN26R.mjs → chunk-D7IY27X5.mjs} +3 -3
- package/dist/{chunk-2LKWN26R.mjs.map → chunk-D7IY27X5.mjs.map} +1 -1
- package/dist/{chunk-QXIVUWQZ.js → chunk-DAGLPS6P.js} +8 -8
- package/dist/{chunk-QXIVUWQZ.js.map → chunk-DAGLPS6P.js.map} +1 -1
- package/dist/{chunk-XAMUTD4I.mjs → chunk-DBZU2TRZ.mjs} +3 -3
- package/dist/{chunk-XAMUTD4I.mjs.map → chunk-DBZU2TRZ.mjs.map} +1 -1
- package/dist/{chunk-I424AZPT.js → chunk-DCITIONV.js} +4 -4
- package/dist/{chunk-I424AZPT.js.map → chunk-DCITIONV.js.map} +1 -1
- package/dist/chunk-DVYYGHSG.js +285 -0
- package/dist/chunk-DVYYGHSG.js.map +1 -0
- package/dist/{chunk-62QRWS2I.mjs → chunk-FJ5EMPCK.mjs} +8 -8
- package/dist/{chunk-62QRWS2I.mjs.map → chunk-FJ5EMPCK.mjs.map} +1 -1
- package/dist/{chunk-6SHBMFYM.mjs → chunk-FNOCLT4A.mjs} +3 -3
- package/dist/{chunk-6SHBMFYM.mjs.map → chunk-FNOCLT4A.mjs.map} +1 -1
- package/dist/chunk-FQ4BDJXG.js +46 -0
- package/dist/chunk-FQ4BDJXG.js.map +1 -0
- package/dist/{chunk-EDFZ6EMM.js → chunk-FYPA5GLS.js} +15 -15
- package/dist/{chunk-EDFZ6EMM.js.map → chunk-FYPA5GLS.js.map} +1 -1
- package/dist/chunk-G7IMEY5T.mjs +44 -0
- package/dist/chunk-G7IMEY5T.mjs.map +1 -0
- package/dist/chunk-GJVC7KKL.mjs +508 -0
- package/dist/chunk-GJVC7KKL.mjs.map +1 -0
- package/dist/{chunk-Q7HLRTZA.js → chunk-HK33JRWA.js} +16 -16
- package/dist/{chunk-Q7HLRTZA.js.map → chunk-HK33JRWA.js.map} +1 -1
- package/dist/{chunk-ARBOKZAU.mjs → chunk-IUZ2RH4V.mjs} +3 -4
- package/dist/chunk-IUZ2RH4V.mjs.map +1 -0
- package/dist/{chunk-62RQTXHX.js → chunk-L6WWNP2N.js} +5 -5
- package/dist/{chunk-62RQTXHX.js.map → chunk-L6WWNP2N.js.map} +1 -1
- package/dist/chunk-LAWESLXJ.js +511 -0
- package/dist/chunk-LAWESLXJ.js.map +1 -0
- package/dist/{chunk-LYDTOFXJ.mjs → chunk-LB7LHVWI.mjs} +107 -503
- package/dist/chunk-LB7LHVWI.mjs.map +1 -0
- package/dist/{chunk-OIBQYBEL.mjs → chunk-LMKDQCU7.mjs} +3 -3
- package/dist/{chunk-OIBQYBEL.mjs.map → chunk-LMKDQCU7.mjs.map} +1 -1
- package/dist/{chunk-RZW4XVG5.js → chunk-LRHECSZK.js} +14 -14
- package/dist/{chunk-RZW4XVG5.js.map → chunk-LRHECSZK.js.map} +1 -1
- package/dist/{chunk-L5Q2ZJJM.js → chunk-MKQZVTD3.js} +6 -6
- package/dist/{chunk-L5Q2ZJJM.js.map → chunk-MKQZVTD3.js.map} +1 -1
- package/dist/chunk-MU3D5IO7.mjs +283 -0
- package/dist/chunk-MU3D5IO7.mjs.map +1 -0
- package/dist/{chunk-Z74IVGJB.mjs → chunk-MXPGAJLM.mjs} +4 -4
- package/dist/{chunk-Z74IVGJB.mjs.map → chunk-MXPGAJLM.mjs.map} +1 -1
- package/dist/{chunk-7QDTXT4N.js → chunk-NF3QVKWU.js} +6 -7
- package/dist/chunk-NF3QVKWU.js.map +1 -0
- package/dist/chunk-NSIRG3C3.js +148 -0
- package/dist/chunk-NSIRG3C3.js.map +1 -0
- package/dist/{chunk-WHGVQJG4.js → chunk-NTFLRRTQ.js} +8 -8
- package/dist/{chunk-WHGVQJG4.js.map → chunk-NTFLRRTQ.js.map} +1 -1
- package/dist/{chunk-NDB7EIOI.js → chunk-O554YMPI.js} +3 -3
- package/dist/{chunk-NDB7EIOI.js.map → chunk-O554YMPI.js.map} +1 -1
- package/dist/chunk-PKCEJWLD.mjs +6 -0
- package/dist/{chunk-6GFEJH4F.mjs.map → chunk-PKCEJWLD.mjs.map} +1 -1
- package/dist/{chunk-MJY7LYOV.mjs → chunk-QYLGVXRX.mjs} +4 -4
- package/dist/{chunk-MJY7LYOV.mjs.map → chunk-QYLGVXRX.mjs.map} +1 -1
- package/dist/chunk-R35CW6MM.js +8 -0
- package/dist/{chunk-34WY5XN2.js.map → chunk-R35CW6MM.js.map} +1 -1
- package/dist/chunk-S4U44UUD.mjs +138 -0
- package/dist/chunk-S4U44UUD.mjs.map +1 -0
- package/dist/{chunk-LDRE2ELU.js → chunk-SEH2K6NG.js} +12 -12
- package/dist/{chunk-LDRE2ELU.js.map → chunk-SEH2K6NG.js.map} +1 -1
- package/dist/chunk-TH2ANDPK.mjs +104 -0
- package/dist/chunk-TH2ANDPK.mjs.map +1 -0
- package/dist/{chunk-KHJYA64F.mjs → chunk-U2CJZ6O5.mjs} +2 -2
- package/dist/{chunk-KHJYA64F.mjs.map → chunk-U2CJZ6O5.mjs.map} +1 -1
- package/dist/{chunk-5GPFPMDQ.mjs → chunk-UDHQNYBD.mjs} +4 -4
- package/dist/{chunk-5GPFPMDQ.mjs.map → chunk-UDHQNYBD.mjs.map} +1 -1
- package/dist/chunk-UTANIZUO.js +110 -0
- package/dist/chunk-UTANIZUO.js.map +1 -0
- package/dist/{chunk-QABZPSHD.js → chunk-VJAUA77N.js} +5 -5
- package/dist/{chunk-QABZPSHD.js.map → chunk-VJAUA77N.js.map} +1 -1
- package/dist/{chunk-CBUK2XB3.js → chunk-VOYLJCHB.js} +9 -9
- package/dist/{chunk-CBUK2XB3.js.map → chunk-VOYLJCHB.js.map} +1 -1
- package/dist/{chunk-XCCW4Y3B.mjs → chunk-VPBLW4ZN.mjs} +5 -5
- package/dist/{chunk-XCCW4Y3B.mjs.map → chunk-VPBLW4ZN.mjs.map} +1 -1
- package/dist/{chunk-6535RSF5.mjs → chunk-WJJQWAG2.mjs} +3 -3
- package/dist/{chunk-6535RSF5.mjs.map → chunk-WJJQWAG2.mjs.map} +1 -1
- package/dist/chunk-WNUUVBD7.js +64 -0
- package/dist/chunk-WNUUVBD7.js.map +1 -0
- package/dist/{chunk-DPTNQVMK.mjs → chunk-XCCMVJUA.mjs} +3 -3
- package/dist/{chunk-DPTNQVMK.mjs.map → chunk-XCCMVJUA.mjs.map} +1 -1
- package/dist/chunk-XRQ47XDA.js +188 -0
- package/dist/chunk-XRQ47XDA.js.map +1 -0
- package/dist/{chunk-YGWWLTH5.js → chunk-ZDXGB3UC.js} +4 -4
- package/dist/{chunk-YGWWLTH5.js.map → chunk-ZDXGB3UC.js.map} +1 -1
- package/dist/cli/index.js +3 -3
- package/dist/cli/index.mjs +1 -1
- package/dist/client/index.js +5 -5
- package/dist/client/index.mjs +4 -4
- package/dist/cms/index.d.ts +23 -0
- package/dist/cms/index.d.ts.map +1 -1
- package/dist/cms/index.js +2 -2
- package/dist/cms/index.mjs +1 -1
- package/dist/cms/server-api.d.ts.map +1 -1
- package/dist/cms/server.js +4 -4
- package/dist/cms/server.mjs +1 -1
- package/dist/commerce/index.js +56 -56
- package/dist/commerce/index.mjs +5 -5
- package/dist/engage/EngageWidget.d.ts.map +1 -1
- package/dist/engage/dependency-contract.test.d.ts +2 -0
- package/dist/engage/dependency-contract.test.d.ts.map +1 -0
- package/dist/engage/index.js +10 -9
- package/dist/engage/index.js.map +1 -1
- package/dist/engage/index.mjs +7 -6
- package/dist/engage/index.mjs.map +1 -1
- package/dist/engage/socket-loader.d.ts +13 -0
- package/dist/engage/socket-loader.d.ts.map +1 -1
- package/dist/fleet/index.js +9 -9
- package/dist/fleet/index.mjs +5 -5
- package/dist/forms/FileField.d.ts +31 -0
- package/dist/forms/FileField.d.ts.map +1 -0
- package/dist/forms/FormClient.d.ts +10 -1
- package/dist/forms/FormClient.d.ts.map +1 -1
- package/dist/forms/FormEnhancer.d.ts +72 -0
- package/dist/forms/FormEnhancer.d.ts.map +1 -0
- package/dist/forms/FormField.d.ts +26 -3
- package/dist/forms/FormField.d.ts.map +1 -1
- package/dist/forms/FormSpotlight.d.ts.map +1 -1
- package/dist/forms/FormStage.d.ts.map +1 -1
- package/dist/forms/HoneypotField.d.ts +8 -2
- package/dist/forms/HoneypotField.d.ts.map +1 -1
- package/dist/forms/ManagedForm.d.ts +1 -1
- package/dist/forms/ManagedForm.d.ts.map +1 -1
- package/dist/forms/ServerForm.d.ts +73 -0
- package/dist/forms/ServerForm.d.ts.map +1 -0
- package/dist/forms/StaticForm.d.ts +50 -0
- package/dist/forms/StaticForm.d.ts.map +1 -0
- package/dist/forms/field-controls.d.ts +7 -0
- package/dist/forms/field-controls.d.ts.map +1 -0
- package/dist/forms/index.d.ts +7 -0
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +33 -557
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/index.mjs +14 -550
- package/dist/forms/index.mjs.map +1 -1
- package/dist/forms/normalize-config.d.ts +18 -0
- package/dist/forms/normalize-config.d.ts.map +1 -0
- package/dist/forms/server.d.ts +5 -0
- package/dist/forms/server.d.ts.map +1 -1
- package/dist/forms/server.js +47 -0
- package/dist/forms/server.js.map +1 -1
- package/dist/forms/server.mjs +44 -1
- package/dist/forms/server.mjs.map +1 -1
- package/dist/forms/static-form.test.d.ts +2 -0
- package/dist/forms/static-form.test.d.ts.map +1 -0
- package/dist/forms/static.d.ts +17 -0
- package/dist/forms/static.d.ts.map +1 -0
- package/dist/forms/static.js +20 -0
- package/dist/forms/static.js.map +1 -0
- package/dist/forms/static.mjs +11 -0
- package/dist/forms/static.mjs.map +1 -0
- package/dist/forms/types.d.ts +7 -0
- package/dist/forms/types.d.ts.map +1 -1
- package/dist/forms/useForm.d.ts.map +1 -1
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.js +109 -109
- package/dist/index.mjs +9 -9
- package/dist/layout/client.js +9 -9
- package/dist/layout/client.mjs +8 -8
- package/dist/layout/index.js +11 -11
- package/dist/layout/index.mjs +9 -9
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/search/index.js +4 -4
- package/dist/search/index.mjs +3 -3
- package/dist/seo/client.js +5 -5
- package/dist/seo/client.mjs +4 -4
- package/dist/seo/index.js +14 -14
- package/dist/seo/index.mjs +6 -6
- package/dist/seo/server.js +5 -5
- package/dist/seo/server.mjs +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/shared/build-entries.d.ts +6 -0
- package/dist/shared/build-entries.d.ts.map +1 -1
- package/dist/shared/no-cjs-require.test.d.ts +2 -0
- package/dist/shared/no-cjs-require.test.d.ts.map +1 -0
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/{socket-loader-YEAQZ3XC.js → socket-loader-2NYBMBFQ.js} +2 -2
- package/dist/socket-loader-2NYBMBFQ.js.map +1 -0
- package/dist/{socket-loader-JHNN2QK4.mjs → socket-loader-JA2DI2RT.mjs} +2 -2
- package/dist/socket-loader-JA2DI2RT.mjs.map +1 -0
- package/dist/sync/index.js +16 -16
- package/dist/sync/index.mjs +4 -4
- package/package.json +28 -11
- package/dist/AnalyticsProvider-NSXC6IOO.mjs +0 -10
- package/dist/AnalyticsProvider-UE34SYF2.js +0 -31
- package/dist/ChatWidget-ASWCGCJJ.mjs +0 -10
- package/dist/ChatWidget-OW37OU3Z.js +0 -19
- package/dist/EngageWidget-67UZ3P5P.mjs +0 -9
- package/dist/EngageWidget-MXOCMVBQ.js +0 -18
- package/dist/FormSpotlight-6MXGX6TU.mjs.map +0 -1
- package/dist/FormSpotlight-LOR57ENP.js.map +0 -1
- package/dist/FormStage-H35FBWTX.js.map +0 -1
- package/dist/FormStage-ZLZD5EW4.mjs.map +0 -1
- package/dist/SitemapSync-HKUEDDG6.js +0 -17
- package/dist/SitemapSync-T4QDPMFG.mjs +0 -8
- package/dist/chunk-34WY5XN2.js +0 -8
- package/dist/chunk-6GFEJH4F.mjs +0 -6
- package/dist/chunk-7QDTXT4N.js.map +0 -1
- package/dist/chunk-ARBOKZAU.mjs.map +0 -1
- package/dist/chunk-CTZHLX2B.mjs.map +0 -1
- package/dist/chunk-LYDTOFXJ.mjs.map +0 -1
- package/dist/chunk-NU5DJUVI.js.map +0 -1
- package/dist/chunk-ZGQUIL7L.js.map +0 -1
- package/dist/socket-loader-JHNN2QK4.mjs.map +0 -1
- package/dist/socket-loader-YEAQZ3XC.js.map +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { getApiConfig } from './chunk-ANTVZSQI.mjs';
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function HoneypotField({ name, value, onChange }) {
|
|
5
|
+
const interactive = typeof onChange === "function";
|
|
6
|
+
return /* @__PURE__ */ jsx(
|
|
7
|
+
"input",
|
|
8
|
+
{
|
|
9
|
+
type: "text",
|
|
10
|
+
name,
|
|
11
|
+
tabIndex: -1,
|
|
12
|
+
autoComplete: "new-password",
|
|
13
|
+
"aria-hidden": "true",
|
|
14
|
+
inert: true,
|
|
15
|
+
"data-sk-honeypot": "",
|
|
16
|
+
"data-1p-ignore": "",
|
|
17
|
+
"data-lpignore": "true",
|
|
18
|
+
"data-form-type": "other",
|
|
19
|
+
"data-bwignore": "",
|
|
20
|
+
style: {
|
|
21
|
+
position: "absolute",
|
|
22
|
+
left: -9999,
|
|
23
|
+
width: 1,
|
|
24
|
+
height: 1,
|
|
25
|
+
overflow: "hidden",
|
|
26
|
+
opacity: 0,
|
|
27
|
+
visibility: "hidden",
|
|
28
|
+
pointerEvents: "none"
|
|
29
|
+
},
|
|
30
|
+
...interactive ? {
|
|
31
|
+
value: value ?? "",
|
|
32
|
+
onChange: (e) => {
|
|
33
|
+
onChange(e.target.value);
|
|
34
|
+
if (e.target.value) {
|
|
35
|
+
console.warn("[Forms] Honeypot triggered");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
} : { defaultValue: "" }
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
function nativeEligible(config) {
|
|
43
|
+
return !!config?.native_token && !config.is_multi_step;
|
|
44
|
+
}
|
|
45
|
+
function nativeFormProps(config) {
|
|
46
|
+
if (!nativeEligible(config)) return {};
|
|
47
|
+
const { apiUrl } = getApiConfig();
|
|
48
|
+
return { action: `${apiUrl}/api/public/forms/submit-native`, method: "post" };
|
|
49
|
+
}
|
|
50
|
+
function NativeFallbackFields({ config, returnTo }) {
|
|
51
|
+
if (!nativeEligible(config)) return null;
|
|
52
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
53
|
+
/* @__PURE__ */ jsx("input", { type: "hidden", name: "_sk_token", value: config.native_token, readOnly: true }),
|
|
54
|
+
returnTo ? /* @__PURE__ */ jsx("input", { type: "hidden", name: "_sk_return", value: returnTo, readOnly: true }) : null
|
|
55
|
+
] });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { HoneypotField, NativeFallbackFields, nativeFormProps };
|
|
59
|
+
//# sourceMappingURL=chunk-4ROQDPUE.mjs.map
|
|
60
|
+
//# sourceMappingURL=chunk-4ROQDPUE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/forms/HoneypotField.tsx","../src/forms/native-fallback.tsx"],"names":["jsx"],"mappings":";;;AAqCO,SAAS,aAAA,CAAc,EAAE,IAAA,EAAM,KAAA,EAAO,UAAS,EAAuB;AAC3E,EAAA,MAAM,WAAA,GAAc,OAAO,QAAA,KAAa,UAAA;AACxC,EAAA,uBACE,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,MAAA;AAAA,MACL,IAAA;AAAA,MACA,QAAA,EAAU,EAAA;AAAA,MACV,YAAA,EAAa,cAAA;AAAA,MACb,aAAA,EAAY,MAAA;AAAA,MACZ,KAAA,EAAK,IAAA;AAAA,MACL,kBAAA,EAAiB,EAAA;AAAA,MAGjB,gBAAA,EAAe,EAAA;AAAA,MACf,eAAA,EAAc,MAAA;AAAA,MACd,gBAAA,EAAe,OAAA;AAAA,MACf,eAAA,EAAc,EAAA;AAAA,MACd,KAAA,EAAO;AAAA,QACL,QAAA,EAAU,UAAA;AAAA,QACV,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO,CAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,QAAA,EAAU,QAAA;AAAA,QACV,OAAA,EAAS,CAAA;AAAA,QACT,UAAA,EAAY,QAAA;AAAA,QACZ,aAAA,EAAe;AAAA,OACjB;AAAA,MACC,GAAI,WAAA,GACD;AAAA,QACE,OAAO,KAAA,IAAS,EAAA;AAAA,QAChB,QAAA,EAAU,CAAC,CAAA,KAA2C;AACpD,UAAA,QAAA,CAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AACxB,UAAA,IAAI,CAAA,CAAE,OAAO,KAAA,EAAO;AAElB,YAAA,OAAA,CAAQ,KAAK,4BAA4B,CAAA;AAAA,UAC3C;AAAA,QACF;AAAA,OACF,GACA,EAAE,YAAA,EAAc,EAAA;AAAG;AAAA,GACzB;AAEJ;ACjDA,SAAS,eAAe,MAAA,EAAuD;AAC7E,EAAA,OAAO,CAAC,CAAC,MAAA,EAAQ,YAAA,IAAgB,CAAC,MAAA,CAAO,aAAA;AAC3C;AAGO,SAAS,gBACd,MAAA,EACsC;AACtC,EAAA,IAAI,CAAC,cAAA,CAAe,MAAM,CAAA,SAAU,EAAC;AACrC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,YAAA,EAAa;AAChC,EAAA,OAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,MAAM,CAAA,+BAAA,CAAA,EAAmC,QAAQ,MAAA,EAAO;AAC9E;AAaO,SAAS,oBAAA,CAAqB,EAAE,MAAA,EAAQ,QAAA,EAAS,EAA8B;AACpF,EAAA,IAAI,CAAC,cAAA,CAAe,MAAM,CAAA,EAAG,OAAO,IAAA;AACpC,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAA,GAAAA,CAAC,OAAA,EAAA,EAAM,IAAA,EAAK,QAAA,EAAS,IAAA,EAAK,aAAY,KAAA,EAAO,MAAA,CAAQ,YAAA,EAAc,QAAA,EAAQ,IAAA,EAAC,CAAA;AAAA,IAC3E,QAAA,mBAAWA,GAAAA,CAAC,OAAA,EAAA,EAAM,IAAA,EAAK,QAAA,EAAS,IAAA,EAAK,YAAA,EAAa,KAAA,EAAO,QAAA,EAAU,QAAA,EAAQ,IAAA,EAAC,CAAA,GAAK;AAAA,GAAA,EACpF,CAAA;AAEJ","file":"chunk-4ROQDPUE.mjs","sourcesContent":["/**\n * Single source of truth for the honeypot input — rendered by BOTH form\n * experiences (classic and stage) inside their <form>. The customRender path\n * deliberately gets none (documented limitation: custom renders lose the\n * honeypot, which is why alternate experiences must be render branches).\n *\n * Invariants (do not weaken any of these):\n * - `inert` blocks focus/interaction at the browser level, surviving hostile\n * site CSS that could defeat the inline styles.\n * - data-sk-honeypot gives site CSS a stable opt-OUT hook.\n * - Controlled input: bots filling via JS still fire React onChange, so the\n * value reaches submitForm's data payload.\n * - Name comes from config (`honeypot_field || DEFAULT_HONEYPOT_FIELD` from\n * the shared contract) — resolved by the caller, never forked here.\n * - The trap must be invisible to AUTOFILL as well as to people. A browser or\n * password manager filling a hidden input flags a real visitor as a bot, and\n * because the value is stripped server-side the mistake is undiagnosable\n * after the fact. `autocomplete=\"off\"` does not achieve this — it is the one\n * value Chrome deliberately ignores for contact/address autofill — so the\n * trap declares `new-password` (never offered saved contact data) plus the\n * documented per-manager opt-outs.\n */\n\nimport React from 'react'\n\nexport interface HoneypotFieldProps {\n name: string\n value?: string\n /**\n * Omit for STATIC mode — an uncontrolled trap a Server Component can render.\n * The trap's whole job is server-side (the value is read off the submission\n * and stripped), so it needs no client state to work; the controlled form is\n * only so the hydrated JSON path can read it back out of React state.\n */\n onChange?: (value: string) => void\n}\n\nexport function HoneypotField({ name, value, onChange }: HoneypotFieldProps) {\n const interactive = typeof onChange === 'function'\n return (\n <input\n type=\"text\"\n name={name}\n tabIndex={-1}\n autoComplete=\"new-password\"\n aria-hidden=\"true\"\n inert\n data-sk-honeypot=\"\"\n // Password-manager opt-outs: 1Password, LastPass, Dashlane, Bitwarden.\n // Each ignores its own attribute; none respects autocomplete alone.\n data-1p-ignore=\"\"\n data-lpignore=\"true\"\n data-form-type=\"other\"\n data-bwignore=\"\"\n style={{\n position: 'absolute',\n left: -9999,\n width: 1,\n height: 1,\n overflow: 'hidden',\n opacity: 0,\n visibility: 'hidden',\n pointerEvents: 'none',\n }}\n {...(interactive\n ? {\n value: value ?? '',\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange!(e.target.value)\n if (e.target.value) {\n // Bot detected\n console.warn('[Forms] Honeypot triggered')\n }\n },\n }\n : { defaultValue: '' })}\n />\n )\n}\n","'use client'\n\n/**\n * No-JS native submission fallback — the floor under every managed form.\n *\n * The classic form is the SSR/no-JS surface (experiences are post-hydration\n * chunks), so it alone carries a real `action`/`method` pointing at\n * sonor-api's POST /api/public/forms/submit-native. With JS running, the\n * form's onSubmit preventDefault()s and the JSON path wins; without JS the\n * browser performs an ordinary form-encoded POST and the lead still lands.\n *\n * Auth rides in the hidden `_sk_token` field: a signed, single-purpose\n * credential minted by the api-key-authenticated forms/config endpoint\n * (`native_token` in the response). No token in the config (older API, or no\n * signing secret) means no fallback — the form keeps its historical behavior\n * rather than pointing at an endpoint that will reject it.\n *\n * Multi-step forms are excluded: step navigation is JS, and a native POST of\n * step-1 fields alone fails whole-form validation server-side. Single-step\n * forms are the overwhelming lead-capture case.\n *\n * Single source of truth for the gating — the form attrs and the hidden\n * fields must always agree, so both read the same predicate.\n */\n\nimport React from 'react'\nimport type { ManagedFormConfig } from './types'\nimport { getApiConfig } from './submitForm'\n\nfunction nativeEligible(config: ManagedFormConfig | null | undefined): boolean {\n return !!config?.native_token && !config.is_multi_step\n}\n\n/** `action`/`method` for the classic <form> — empty when ineligible. */\nexport function nativeFormProps(\n config: ManagedFormConfig | null | undefined,\n): { action?: string; method?: 'post' } {\n if (!nativeEligible(config)) return {}\n const { apiUrl } = getApiConfig()\n return { action: `${apiUrl}/api/public/forms/submit-native`, method: 'post' }\n}\n\nexport interface NativeFallbackFieldsProps {\n config: ManagedFormConfig | null | undefined\n /**\n * Absolute URL the native 303 should land on (usually the page hosting the\n * form). Optional — without it the server falls back to the Referer origin,\n * which loses the path but still returns the visitor to the right site.\n */\n returnTo?: string\n}\n\n/** Hidden control fields the native endpoint reads (`_sk_*` namespace). */\nexport function NativeFallbackFields({ config, returnTo }: NativeFallbackFieldsProps) {\n if (!nativeEligible(config)) return null\n return (\n <>\n <input type=\"hidden\" name=\"_sk_token\" value={config!.native_token} readOnly />\n {returnTo ? <input type=\"hidden\" name=\"_sk_return\" value={returnTo} readOnly /> : null}\n </>\n )\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { sonorFetch } from './chunk-
|
|
2
|
+
import { sonorFetch } from './chunk-UDHQNYBD.mjs';
|
|
3
3
|
import { useState, useRef, useMemo, useEffect, useCallback } from 'react';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -1087,5 +1087,5 @@ var WIDGET_CSS = `
|
|
|
1087
1087
|
`;
|
|
1088
1088
|
|
|
1089
1089
|
export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, releaseSlotHold };
|
|
1090
|
-
//# sourceMappingURL=chunk-
|
|
1091
|
-
//# sourceMappingURL=chunk-
|
|
1090
|
+
//# sourceMappingURL=chunk-5GAOZTMW.mjs.map
|
|
1091
|
+
//# sourceMappingURL=chunk-5GAOZTMW.mjs.map
|