@sonordev/site-kit 5.1.0 → 5.3.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/README.md +15 -0
- package/agent-manifest.json +23 -2
- package/dist/AnalyticsProvider-2YV4ZVZD.js +31 -0
- package/dist/{AnalyticsProvider-V2U3TQMH.js.map → AnalyticsProvider-2YV4ZVZD.js.map} +1 -1
- package/dist/AnalyticsProvider-XSPROVHM.mjs +10 -0
- package/dist/{AnalyticsProvider-2LCSA6G3.mjs.map → AnalyticsProvider-XSPROVHM.mjs.map} +1 -1
- package/dist/{BlogViewTracker-COTPD7WL.js → BlogViewTracker-BQBJTL5L.js} +6 -6
- package/dist/{BlogViewTracker-COTPD7WL.js.map → BlogViewTracker-BQBJTL5L.js.map} +1 -1
- package/dist/{BlogViewTracker-HG25ONRP.mjs → BlogViewTracker-FEAXIUEW.mjs} +5 -5
- package/dist/{BlogViewTracker-HG25ONRP.mjs.map → BlogViewTracker-FEAXIUEW.mjs.map} +1 -1
- package/dist/ChatWidget-B2DI2OWH.mjs +11 -0
- package/dist/{ChatWidget-RWO7R7EJ.mjs.map → ChatWidget-B2DI2OWH.mjs.map} +1 -1
- package/dist/ChatWidget-GPBFJ4A3.js +20 -0
- package/dist/{ChatWidget-4QUJYFXU.js.map → ChatWidget-GPBFJ4A3.js.map} +1 -1
- package/dist/EngageWidget-JXJSFONK.js +18 -0
- package/dist/{EngageWidget-RSOXB3YM.js.map → EngageWidget-JXJSFONK.js.map} +1 -1
- package/dist/EngageWidget-KF4HU4YA.mjs +9 -0
- package/dist/{EngageWidget-LF4AC4QN.mjs.map → EngageWidget-KF4HU4YA.mjs.map} +1 -1
- package/dist/{FileField-S2GUM3QB.js → FileField-22BB34L3.js} +6 -6
- package/dist/{FileField-S2GUM3QB.js.map → FileField-22BB34L3.js.map} +1 -1
- package/dist/{FileField-YJ7DZXC3.mjs → FileField-WI6SADBA.mjs} +5 -5
- package/dist/{FileField-YJ7DZXC3.mjs.map → FileField-WI6SADBA.mjs.map} +1 -1
- package/dist/{FormSpotlight-HLH5LQKI.mjs → FormSpotlight-6FZV6JOA.mjs} +3 -3
- package/dist/{FormSpotlight-HLH5LQKI.mjs.map → FormSpotlight-6FZV6JOA.mjs.map} +1 -1
- package/dist/{FormSpotlight-7WAXLXZA.js → FormSpotlight-QCIN67NB.js} +15 -15
- package/dist/{FormSpotlight-7WAXLXZA.js.map → FormSpotlight-QCIN67NB.js.map} +1 -1
- package/dist/{FormStage-Q5JW75AF.mjs → FormStage-P3IIHVCC.mjs} +3 -3
- package/dist/{FormStage-Q5JW75AF.mjs.map → FormStage-P3IIHVCC.mjs.map} +1 -1
- package/dist/{FormStage-LEZYERJB.js → FormStage-SBQQZDW6.js} +13 -13
- package/dist/{FormStage-LEZYERJB.js.map → FormStage-SBQQZDW6.js.map} +1 -1
- package/dist/ManagedForm-6LII4DED.js +23 -0
- package/dist/{ManagedForm-H4SEFSAF.js.map → ManagedForm-6LII4DED.js.map} +1 -1
- package/dist/ManagedForm-O3JRRWZ6.mjs +14 -0
- package/dist/{ManagedForm-U3NFIVEC.mjs.map → ManagedForm-O3JRRWZ6.mjs.map} +1 -1
- package/dist/{ManagedNewsletterForm-YKYW7B6P.mjs → ManagedNewsletterForm-FFFF5UEX.mjs} +7 -7
- package/dist/{ManagedNewsletterForm-YKYW7B6P.mjs.map → ManagedNewsletterForm-FFFF5UEX.mjs.map} +1 -1
- package/dist/{ManagedNewsletterForm-KT2NGUNW.js → ManagedNewsletterForm-Z7NYZPAN.js} +8 -8
- package/dist/{ManagedNewsletterForm-KT2NGUNW.js.map → ManagedNewsletterForm-Z7NYZPAN.js.map} +1 -1
- package/dist/{SignalCore-2BH5PUGS.mjs → SignalCore-IUOSVYUE.mjs} +5 -5
- package/dist/{SignalCore-2BH5PUGS.mjs.map → SignalCore-IUOSVYUE.mjs.map} +1 -1
- package/dist/{SignalCore-JM4ODFL2.js → SignalCore-WL5WKQEI.js} +11 -11
- package/dist/{SignalCore-JM4ODFL2.js.map → SignalCore-WL5WKQEI.js.map} +1 -1
- package/dist/SitemapSync-2O5UM4GM.mjs +8 -0
- package/dist/{SitemapSync-5CXS2JGB.mjs.map → SitemapSync-2O5UM4GM.mjs.map} +1 -1
- package/dist/SitemapSync-LA67GKKS.js +17 -0
- package/dist/{SitemapSync-J4UMJRTO.js.map → SitemapSync-LA67GKKS.js.map} +1 -1
- package/dist/analytics/index.js +9 -9
- package/dist/analytics/index.mjs +4 -4
- package/dist/blog/index.js +20 -20
- package/dist/blog/index.mjs +3 -3
- package/dist/blog/server-ui.js +14 -14
- package/dist/blog/server-ui.mjs +2 -2
- package/dist/{chunk-MCXHQHIX.js → chunk-2OZ2SMZH.js} +4 -4
- package/dist/{chunk-MCXHQHIX.js.map → chunk-2OZ2SMZH.js.map} +1 -1
- package/dist/{chunk-FMOOQKZU.js → chunk-3DQXXYCS.js} +8 -8
- package/dist/{chunk-FMOOQKZU.js.map → chunk-3DQXXYCS.js.map} +1 -1
- package/dist/chunk-3PTKHSF7.mjs +6 -0
- package/dist/{chunk-4SQ6PROR.mjs.map → chunk-3PTKHSF7.mjs.map} +1 -1
- package/dist/{chunk-HPIY7AR3.js → chunk-4YJFC6FC.js} +14 -14
- package/dist/{chunk-HPIY7AR3.js.map → chunk-4YJFC6FC.js.map} +1 -1
- package/dist/{chunk-44ZTBQH4.js → chunk-5I7UEXJL.js} +3 -3
- package/dist/{chunk-44ZTBQH4.js.map → chunk-5I7UEXJL.js.map} +1 -1
- package/dist/{chunk-ACWGG4VW.js → chunk-6ABEAO2K.js} +9 -9
- package/dist/{chunk-ACWGG4VW.js.map → chunk-6ABEAO2K.js.map} +1 -1
- package/dist/{chunk-OTHKWMDB.mjs → chunk-6RYCAW5B.mjs} +3 -3
- package/dist/{chunk-OTHKWMDB.mjs.map → chunk-6RYCAW5B.mjs.map} +1 -1
- package/dist/{chunk-CYQB5GLU.mjs → chunk-7MQR4KDL.mjs} +4 -4
- package/dist/{chunk-CYQB5GLU.mjs.map → chunk-7MQR4KDL.mjs.map} +1 -1
- package/dist/{chunk-CKPFETIO.js → chunk-7NMI7M56.js} +4 -4
- package/dist/{chunk-CKPFETIO.js.map → chunk-7NMI7M56.js.map} +1 -1
- package/dist/{chunk-6YKNDQYJ.mjs → chunk-7OCQ4646.mjs} +3 -3
- package/dist/{chunk-6YKNDQYJ.mjs.map → chunk-7OCQ4646.mjs.map} +1 -1
- package/dist/chunk-AEW7EFYU.js +147 -0
- package/dist/chunk-AEW7EFYU.js.map +1 -0
- package/dist/{chunk-CBMHJPR7.js → chunk-B7FHRTBA.js} +5 -5
- package/dist/{chunk-CBMHJPR7.js.map → chunk-B7FHRTBA.js.map} +1 -1
- package/dist/{chunk-2XHEUWHV.mjs → chunk-BAFGZQWP.mjs} +4 -4
- package/dist/{chunk-2XHEUWHV.mjs.map → chunk-BAFGZQWP.mjs.map} +1 -1
- package/dist/chunk-BIZT7AYK.js +8 -0
- package/dist/{chunk-YPEX4RDE.js.map → chunk-BIZT7AYK.js.map} +1 -1
- package/dist/{chunk-ROJ25QM3.mjs → chunk-D2D3YKWT.mjs} +3 -3
- package/dist/{chunk-ROJ25QM3.mjs.map → chunk-D2D3YKWT.mjs.map} +1 -1
- package/dist/{chunk-5W56B52Z.mjs → chunk-DXFZA34N.mjs} +3 -3
- package/dist/{chunk-5W56B52Z.mjs.map → chunk-DXFZA34N.mjs.map} +1 -1
- package/dist/{chunk-ADOGOLYO.mjs → chunk-F4DZH4E5.mjs} +4 -4
- package/dist/{chunk-ADOGOLYO.mjs.map → chunk-F4DZH4E5.mjs.map} +1 -1
- package/dist/{chunk-VWVUYL5J.mjs → chunk-FDLFXHUU.mjs} +4 -4
- package/dist/{chunk-VWVUYL5J.mjs.map → chunk-FDLFXHUU.mjs.map} +1 -1
- package/dist/{chunk-TECD4AP7.mjs → chunk-GCY6VPBG.mjs} +3 -3
- package/dist/{chunk-TECD4AP7.mjs.map → chunk-GCY6VPBG.mjs.map} +1 -1
- package/dist/{chunk-EZLK2OQL.js → chunk-GF7CQMBL.js} +7 -7
- package/dist/{chunk-EZLK2OQL.js.map → chunk-GF7CQMBL.js.map} +1 -1
- package/dist/{chunk-SXNKLHOX.mjs → chunk-HHX72A2B.mjs} +3 -3
- package/dist/{chunk-SXNKLHOX.mjs.map → chunk-HHX72A2B.mjs.map} +1 -1
- package/dist/{chunk-ZFZMN4LT.mjs → chunk-ITV76G3L.mjs} +39 -3
- package/dist/chunk-ITV76G3L.mjs.map +1 -0
- package/dist/{chunk-WZMM57R2.js → chunk-JJ6AI6LW.js} +5 -5
- package/dist/{chunk-WZMM57R2.js.map → chunk-JJ6AI6LW.js.map} +1 -1
- package/dist/{chunk-UMWVTIIZ.mjs → chunk-K447AIIB.mjs} +8 -8
- package/dist/{chunk-UMWVTIIZ.mjs.map → chunk-K447AIIB.mjs.map} +1 -1
- package/dist/{chunk-2EJX56YJ.js → chunk-K6YQ73IX.js} +8 -8
- package/dist/{chunk-2EJX56YJ.js.map → chunk-K6YQ73IX.js.map} +1 -1
- package/dist/{chunk-NIJVVW4G.mjs → chunk-KC2FCI5V.mjs} +3 -3
- package/dist/{chunk-NIJVVW4G.mjs.map → chunk-KC2FCI5V.mjs.map} +1 -1
- package/dist/{chunk-BUDV7QHH.mjs → chunk-KHHMU4UH.mjs} +4 -4
- package/dist/{chunk-BUDV7QHH.mjs.map → chunk-KHHMU4UH.mjs.map} +1 -1
- package/dist/{chunk-OAJVITNO.mjs → chunk-KIGIAA6Q.mjs} +3 -3
- package/dist/{chunk-OAJVITNO.mjs.map → chunk-KIGIAA6Q.mjs.map} +1 -1
- package/dist/{chunk-IQLYFQKZ.js → chunk-KMNIW4K4.js} +15 -15
- package/dist/{chunk-IQLYFQKZ.js.map → chunk-KMNIW4K4.js.map} +1 -1
- package/dist/{chunk-DTNNZJYM.mjs → chunk-LCRWCOPI.mjs} +4 -4
- package/dist/{chunk-DTNNZJYM.mjs.map → chunk-LCRWCOPI.mjs.map} +1 -1
- package/dist/{chunk-GYAH4KFC.js → chunk-LFBMFACZ.js} +40 -4
- package/dist/chunk-LFBMFACZ.js.map +1 -0
- package/dist/chunk-MLXUMVBK.mjs +142 -0
- package/dist/chunk-MLXUMVBK.mjs.map +1 -0
- package/dist/{chunk-BVLGJ2CZ.mjs → chunk-MOVMDHGE.mjs} +3 -3
- package/dist/{chunk-BVLGJ2CZ.mjs.map → chunk-MOVMDHGE.mjs.map} +1 -1
- package/dist/{chunk-WMNRTCYY.js → chunk-NQLE3V3T.js} +11 -11
- package/dist/{chunk-WMNRTCYY.js.map → chunk-NQLE3V3T.js.map} +1 -1
- package/dist/{chunk-EKTMXHBI.mjs → chunk-O2KN2SC7.mjs} +3 -3
- package/dist/{chunk-EKTMXHBI.mjs.map → chunk-O2KN2SC7.mjs.map} +1 -1
- package/dist/{chunk-BGBJSMXT.js → chunk-OQBDJRVP.js} +6 -6
- package/dist/{chunk-BGBJSMXT.js.map → chunk-OQBDJRVP.js.map} +1 -1
- package/dist/{chunk-TAM2D54C.js → chunk-PEIWCJXS.js} +14 -14
- package/dist/{chunk-TAM2D54C.js.map → chunk-PEIWCJXS.js.map} +1 -1
- package/dist/{chunk-CGQO7MFO.js → chunk-RE54UKET.js} +14 -14
- package/dist/{chunk-CGQO7MFO.js.map → chunk-RE54UKET.js.map} +1 -1
- package/dist/{chunk-VIIGOCX4.js → chunk-RMLRZOVE.js} +15 -15
- package/dist/{chunk-VIIGOCX4.js.map → chunk-RMLRZOVE.js.map} +1 -1
- package/dist/{chunk-DKRXPXOR.js → chunk-ULGTZ2VU.js} +3 -3
- package/dist/{chunk-DKRXPXOR.js.map → chunk-ULGTZ2VU.js.map} +1 -1
- package/dist/{chunk-ACLBRIYD.js → chunk-VTEIXKBA.js} +3 -3
- package/dist/{chunk-ACLBRIYD.js.map → chunk-VTEIXKBA.js.map} +1 -1
- package/dist/{chunk-NSTY7ZZA.mjs → chunk-W7QMCG2A.mjs} +7 -7
- package/dist/{chunk-NSTY7ZZA.mjs.map → chunk-W7QMCG2A.mjs.map} +1 -1
- package/dist/{chunk-E3GHVAMK.js → chunk-WZ6QNL2D.js} +18 -18
- package/dist/{chunk-E3GHVAMK.js.map → chunk-WZ6QNL2D.js.map} +1 -1
- package/dist/{chunk-5G2ZRQMO.mjs → chunk-X4H2RAIQ.mjs} +3 -3
- package/dist/{chunk-5G2ZRQMO.mjs.map → chunk-X4H2RAIQ.mjs.map} +1 -1
- package/dist/{chunk-GZVSGQKT.js → chunk-X6SAM7CR.js} +3 -3
- package/dist/{chunk-GZVSGQKT.js.map → chunk-X6SAM7CR.js.map} +1 -1
- package/dist/{chunk-ADBLBGCQ.mjs → chunk-XRONA2QL.mjs} +3 -3
- package/dist/{chunk-ADBLBGCQ.mjs.map → chunk-XRONA2QL.mjs.map} +1 -1
- package/dist/{chunk-VCNPTLK2.js → chunk-XYZZJZGS.js} +12 -12
- package/dist/{chunk-VCNPTLK2.js.map → chunk-XYZZJZGS.js.map} +1 -1
- package/dist/{chunk-JEI3CSY4.js → chunk-XZI6KUB3.js} +4 -4
- package/dist/{chunk-JEI3CSY4.js.map → chunk-XZI6KUB3.js.map} +1 -1
- package/dist/{chunk-A3VGZAZQ.mjs → chunk-YDIINUWD.mjs} +3 -3
- package/dist/{chunk-A3VGZAZQ.mjs.map → chunk-YDIINUWD.mjs.map} +1 -1
- package/dist/{chunk-FZISCIJV.mjs → chunk-YUOVAWCL.mjs} +4 -4
- package/dist/{chunk-FZISCIJV.mjs.map → chunk-YUOVAWCL.mjs.map} +1 -1
- package/dist/cli/index.js +3 -3
- package/dist/cli/index.mjs +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/commerce/index.js +56 -56
- package/dist/commerce/index.mjs +5 -5
- package/dist/engage/index.js +13 -13
- package/dist/engage/index.mjs +7 -7
- package/dist/fleet/index.js +8 -8
- package/dist/fleet/index.mjs +4 -4
- package/dist/forms/ga4-identity.d.ts +31 -0
- package/dist/forms/ga4-identity.d.ts.map +1 -0
- package/dist/forms/ga4-identity.test.d.ts +2 -0
- package/dist/forms/ga4-identity.test.d.ts.map +1 -0
- package/dist/forms/index.js +22 -22
- package/dist/forms/index.mjs +9 -9
- package/dist/forms/server.js +10 -10
- package/dist/forms/server.mjs +8 -8
- package/dist/forms/static.js +7 -7
- package/dist/forms/static.mjs +6 -6
- package/dist/forms/submitForm.d.ts.map +1 -1
- package/dist/forms/types.d.ts +13 -0
- package/dist/forms/types.d.ts.map +1 -1
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.js +63 -63
- package/dist/index.mjs +9 -9
- package/dist/layout/client.js +8 -8
- package/dist/layout/client.mjs +7 -7
- package/dist/layout/index.js +10 -10
- package/dist/layout/index.mjs +8 -8
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/motion/Parallax.d.ts +42 -0
- package/dist/motion/Parallax.d.ts.map +1 -0
- package/dist/motion/Reveal.d.ts +59 -0
- package/dist/motion/Reveal.d.ts.map +1 -0
- package/dist/motion/ScrollScene.d.ts +42 -0
- package/dist/motion/ScrollScene.d.ts.map +1 -0
- package/dist/motion/engine.d.ts +74 -0
- package/dist/motion/engine.d.ts.map +1 -0
- package/dist/motion/failsafe.d.ts +20 -0
- package/dist/motion/failsafe.d.ts.map +1 -0
- package/dist/motion/gsap.d.ts +84 -0
- package/dist/motion/gsap.d.ts.map +1 -0
- package/dist/motion/gsap.js +103 -0
- package/dist/motion/gsap.js.map +1 -0
- package/dist/motion/gsap.mjs +99 -0
- package/dist/motion/gsap.mjs.map +1 -0
- package/dist/motion/index.d.ts +31 -0
- package/dist/motion/index.d.ts.map +1 -0
- package/dist/motion/index.js +252 -0
- package/dist/motion/index.js.map +1 -0
- package/dist/motion/index.mjs +230 -0
- package/dist/motion/index.mjs.map +1 -0
- package/dist/motion/motion.test.d.ts +16 -0
- package/dist/motion/motion.test.d.ts.map +1 -0
- package/dist/motion/three.d.ts +105 -0
- package/dist/motion/three.d.ts.map +1 -0
- package/dist/motion/three.js +150 -0
- package/dist/motion/three.js.map +1 -0
- package/dist/motion/three.mjs +145 -0
- package/dist/motion/three.mjs.map +1 -0
- 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 +5 -5
- package/dist/seo/index.mjs +4 -4
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/shared/build-entries.d.ts +7 -1
- package/dist/shared/build-entries.d.ts.map +1 -1
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sync/index.js +16 -16
- package/dist/sync/index.mjs +4 -4
- package/package.json +28 -2
- package/skills/site-kit/SKILL.md +6 -0
- package/dist/AnalyticsProvider-2LCSA6G3.mjs +0 -10
- package/dist/AnalyticsProvider-V2U3TQMH.js +0 -31
- package/dist/ChatWidget-4QUJYFXU.js +0 -20
- package/dist/ChatWidget-RWO7R7EJ.mjs +0 -11
- package/dist/EngageWidget-LF4AC4QN.mjs +0 -9
- package/dist/EngageWidget-RSOXB3YM.js +0 -18
- package/dist/ManagedForm-H4SEFSAF.js +0 -23
- package/dist/ManagedForm-U3NFIVEC.mjs +0 -14
- package/dist/SitemapSync-5CXS2JGB.mjs +0 -8
- package/dist/SitemapSync-J4UMJRTO.js +0 -17
- package/dist/chunk-4SQ6PROR.mjs +0 -6
- package/dist/chunk-GYAH4KFC.js.map +0 -1
- package/dist/chunk-YPEX4RDE.js +0 -8
- package/dist/chunk-ZFZMN4LT.mjs.map +0 -1
package/dist/blog/server-ui.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkULGTZ2VU_js = require('../chunk-ULGTZ2VU.js');
|
|
4
4
|
require('../chunk-HX6ZG3PP.js');
|
|
5
5
|
var chunkJBGRXICL_js = require('../chunk-JBGRXICL.js');
|
|
6
6
|
require('../chunk-TPL2IHFI.js');
|
|
@@ -159,8 +159,8 @@ async function ClusterLandingPage({
|
|
|
159
159
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: unstyled ? "" : "sk-cluster-pillar-title", children: pillar.title }),
|
|
160
160
|
pillar.excerpt && /* @__PURE__ */ jsxRuntime.jsx("p", { className: unstyled ? "" : "sk-cluster-pillar-excerpt", children: pillar.excerpt }),
|
|
161
161
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: unstyled ? "" : "sk-cluster-pillar-meta", children: [
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
chunkULGTZ2VU_js.readingTimeMinutes(pillar) && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
163
|
+
chunkULGTZ2VU_js.readingTimeMinutes(pillar),
|
|
164
164
|
" min read"
|
|
165
165
|
] }),
|
|
166
166
|
pillar.word_count && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
@@ -184,8 +184,8 @@ async function ClusterLandingPage({
|
|
|
184
184
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: unstyled ? "" : "sk-cluster-support-title", children: post.title }),
|
|
185
185
|
post.excerpt && /* @__PURE__ */ jsxRuntime.jsx("p", { className: unstyled ? "" : "sk-cluster-support-excerpt", children: post.excerpt }),
|
|
186
186
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: unstyled ? "" : "sk-cluster-support-meta", children: [
|
|
187
|
-
|
|
188
|
-
|
|
187
|
+
chunkULGTZ2VU_js.readingTimeMinutes(post) && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
188
|
+
chunkULGTZ2VU_js.readingTimeMinutes(post),
|
|
189
189
|
" min read"
|
|
190
190
|
] }),
|
|
191
191
|
post.relationship_to_pillar && /* @__PURE__ */ jsxRuntime.jsx("span", { children: post.relationship_to_pillar })
|
|
@@ -201,39 +201,39 @@ async function ClusterLandingPage({
|
|
|
201
201
|
|
|
202
202
|
Object.defineProperty(exports, "BlogLayout", {
|
|
203
203
|
enumerable: true,
|
|
204
|
-
get: function () { return
|
|
204
|
+
get: function () { return chunkULGTZ2VU_js.BlogLayout; }
|
|
205
205
|
});
|
|
206
206
|
Object.defineProperty(exports, "BlogList", {
|
|
207
207
|
enumerable: true,
|
|
208
|
-
get: function () { return
|
|
208
|
+
get: function () { return chunkULGTZ2VU_js.BlogList; }
|
|
209
209
|
});
|
|
210
210
|
Object.defineProperty(exports, "BlogPage", {
|
|
211
211
|
enumerable: true,
|
|
212
|
-
get: function () { return
|
|
212
|
+
get: function () { return chunkULGTZ2VU_js.BlogPage; }
|
|
213
213
|
});
|
|
214
214
|
Object.defineProperty(exports, "BlogPost", {
|
|
215
215
|
enumerable: true,
|
|
216
|
-
get: function () { return
|
|
216
|
+
get: function () { return chunkULGTZ2VU_js.BlogPost; }
|
|
217
217
|
});
|
|
218
218
|
Object.defineProperty(exports, "BlogPostPage", {
|
|
219
219
|
enumerable: true,
|
|
220
|
-
get: function () { return
|
|
220
|
+
get: function () { return chunkULGTZ2VU_js.BlogPostPage; }
|
|
221
221
|
});
|
|
222
222
|
Object.defineProperty(exports, "BlogSidebar", {
|
|
223
223
|
enumerable: true,
|
|
224
|
-
get: function () { return
|
|
224
|
+
get: function () { return chunkULGTZ2VU_js.BlogSidebar; }
|
|
225
225
|
});
|
|
226
226
|
Object.defineProperty(exports, "CategoryPage", {
|
|
227
227
|
enumerable: true,
|
|
228
|
-
get: function () { return
|
|
228
|
+
get: function () { return chunkULGTZ2VU_js.CategoryPage; }
|
|
229
229
|
});
|
|
230
230
|
Object.defineProperty(exports, "ClusterNavigation", {
|
|
231
231
|
enumerable: true,
|
|
232
|
-
get: function () { return
|
|
232
|
+
get: function () { return chunkULGTZ2VU_js.ClusterNavigation; }
|
|
233
233
|
});
|
|
234
234
|
Object.defineProperty(exports, "RelatedPosts", {
|
|
235
235
|
enumerable: true,
|
|
236
|
-
get: function () { return
|
|
236
|
+
get: function () { return chunkULGTZ2VU_js.RelatedPosts; }
|
|
237
237
|
});
|
|
238
238
|
exports.ClusterLandingPage = ClusterLandingPage;
|
|
239
239
|
//# sourceMappingURL=server-ui.js.map
|
package/dist/blog/server-ui.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { readingTimeMinutes } from '../chunk-
|
|
2
|
-
export { BlogLayout, BlogList, BlogPage, BlogPost, BlogPostPage, BlogSidebar, CategoryPage, ClusterNavigation, RelatedPosts } from '../chunk-
|
|
1
|
+
import { readingTimeMinutes } from '../chunk-YDIINUWD.mjs';
|
|
2
|
+
export { BlogLayout, BlogList, BlogPage, BlogPost, BlogPostPage, BlogSidebar, CategoryPage, ClusterNavigation, RelatedPosts } from '../chunk-YDIINUWD.mjs';
|
|
3
3
|
import '../chunk-YFX3Q56O.mjs';
|
|
4
4
|
import { getTopicCluster } from '../chunk-DHXQBTXE.mjs';
|
|
5
5
|
import '../chunk-CGCYZJYX.mjs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkLFBMFACZ_js = require('./chunk-LFBMFACZ.js');
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
|
|
6
6
|
function HoneypotField({ name, value, onChange }) {
|
|
@@ -46,7 +46,7 @@ function nativeEligible(config) {
|
|
|
46
46
|
}
|
|
47
47
|
function nativeFormProps(config) {
|
|
48
48
|
if (!nativeEligible(config)) return {};
|
|
49
|
-
const { apiUrl } =
|
|
49
|
+
const { apiUrl } = chunkLFBMFACZ_js.getApiConfig();
|
|
50
50
|
return { action: `${apiUrl}/api/public/forms/submit-native`, method: "post" };
|
|
51
51
|
}
|
|
52
52
|
function NativeFallbackFields({ config, returnTo }) {
|
|
@@ -60,5 +60,5 @@ function NativeFallbackFields({ config, returnTo }) {
|
|
|
60
60
|
exports.HoneypotField = HoneypotField;
|
|
61
61
|
exports.NativeFallbackFields = NativeFallbackFields;
|
|
62
62
|
exports.nativeFormProps = nativeFormProps;
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
63
|
+
//# sourceMappingURL=chunk-2OZ2SMZH.js.map
|
|
64
|
+
//# sourceMappingURL=chunk-2OZ2SMZH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/forms/HoneypotField.tsx","../src/forms/native-fallback.tsx"],"names":["jsx","getApiConfig","jsxs","Fragment"],"mappings":";;;;;AAqCO,SAAS,aAAA,CAAc,EAAE,IAAA,EAAM,KAAA,EAAO,UAAS,EAAuB;AAC3E,EAAA,MAAM,WAAA,GAAc,OAAO,QAAA,KAAa,UAAA;AACxC,EAAA,uBACEA,cAAA;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,GAAIC,6BAAA,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,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAH,cAAAA,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,cAAAA,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-
|
|
1
|
+
{"version":3,"sources":["../src/forms/HoneypotField.tsx","../src/forms/native-fallback.tsx"],"names":["jsx","getApiConfig","jsxs","Fragment"],"mappings":";;;;;AAqCO,SAAS,aAAA,CAAc,EAAE,IAAA,EAAM,KAAA,EAAO,UAAS,EAAuB;AAC3E,EAAA,MAAM,WAAA,GAAc,OAAO,QAAA,KAAa,UAAA;AACxC,EAAA,uBACEA,cAAA;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,GAAIC,6BAAA,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,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAH,cAAAA,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,cAAAA,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-2OZ2SMZH.js","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,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk2OZ2SMZH_js = require('./chunk-2OZ2SMZH.js');
|
|
4
4
|
var chunk2ACKOMAL_js = require('./chunk-2ACKOMAL.js');
|
|
5
|
-
var
|
|
5
|
+
var chunkLFBMFACZ_js = require('./chunk-LFBMFACZ.js');
|
|
6
6
|
var chunkKHPJ3CEL_js = require('./chunk-KHPJ3CEL.js');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
|
|
@@ -14,7 +14,7 @@ function visibleStaticFields(config) {
|
|
|
14
14
|
}
|
|
15
15
|
function StaticForm({ config: raw, className, nativeReturnTo }) {
|
|
16
16
|
if (!raw) return null;
|
|
17
|
-
const config =
|
|
17
|
+
const config = chunkLFBMFACZ_js.normalizeFormConfig(raw);
|
|
18
18
|
const fields = visibleStaticFields(config);
|
|
19
19
|
const honeypotFieldName = config.honeypot_field || chunkKHPJ3CEL_js.DEFAULT_HONEYPOT_FIELD;
|
|
20
20
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -23,7 +23,7 @@ function StaticForm({ config: raw, className, nativeReturnTo }) {
|
|
|
23
23
|
"data-sk-state": "idle",
|
|
24
24
|
"data-sk-mount": "shell",
|
|
25
25
|
className: `sk-form ${className || ""}`,
|
|
26
|
-
...
|
|
26
|
+
...chunk2OZ2SMZH_js.nativeFormProps(config),
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__step", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__fields", children: fields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
29
29
|
"div",
|
|
@@ -34,13 +34,13 @@ function StaticForm({ config: raw, className, nativeReturnTo }) {
|
|
|
34
34
|
field.id || field.slug
|
|
35
35
|
)) }) }),
|
|
36
36
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sk-form__actions", style: { justifyContent: "flex-end" }, children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", className: "sk-form__btn sk-form__btn--submit", children: config.submit_button_text || "Submit" }) }),
|
|
37
|
-
config.honeypot_enabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
config.honeypot_enabled && /* @__PURE__ */ jsxRuntime.jsx(chunk2OZ2SMZH_js.HoneypotField, { name: honeypotFieldName }),
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk2OZ2SMZH_js.NativeFallbackFields, { config, returnTo: nativeReturnTo })
|
|
39
39
|
]
|
|
40
40
|
}
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
exports.StaticForm = StaticForm;
|
|
45
|
-
//# sourceMappingURL=chunk-
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
45
|
+
//# sourceMappingURL=chunk-3DQXXYCS.js.map
|
|
46
|
+
//# sourceMappingURL=chunk-3DQXXYCS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/forms/StaticForm.tsx"],"names":["normalizeFormConfig","DEFAULT_HONEYPOT_FIELD","jsxs","nativeFormProps","jsx","FormField","HoneypotField","NativeFallbackFields"],"mappings":";;;;;;;;AA6DA,SAAS,oBAAoB,MAAA,EAA2B;AACtD,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,MAAA,IAAU,EAAC;AAC9B,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,EAAe,OAAO,GAAA;AAGlC,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAA,EAAG,EAAA;AACvC,EAAA,OAAO,GAAA,CAAI,OAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,OAAA,KAAY,WAAW,CAAA;AAClE;AAEO,SAAS,WAAW,EAAE,MAAA,EAAQ,GAAA,EAAK,SAAA,EAAW,gBAAe,EAAoB;AACtF,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,MAAA,GAASA,qCAAoB,GAAU,CAAA;AAC7C,EAAA,MAAM,MAAA,GAAS,oBAAoB,MAAM,CAAA;AACzC,EAAA,MAAM,iBAAA,GAAoB,OAAO,cAAA,IAAkBC,uCAAA;AAEnD,EAAA,uBACEC,eAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MAGC,eAAA,EAAc,MAAA;AAAA,MACd,eAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAW,CAAA,QAAA,EAAW,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MACpC,GAAGC,iCAAgB,MAAM,CAAA;AAAA,MAE1B,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iBAAA,EACZ,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,qBACXA,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,CAAA,+CAAA,EAAkD,KAAA,CAAM,KAAA,IAAS,MAAM,CAAA,CAAA;AAAA,YAGlF,yCAACC,0BAAA,EAAA,EAAU,KAAA,EAAc,KAAA,EAAO,KAAA,CAAM,iBAAiB,EAAA,EAAI;AAAA,WAAA;AAAA,UAJtD,KAAA,CAAM,MAAM,KAAA,CAAM;AAAA,SAM1B,GACH,CAAA,EACF,CAAA;AAAA,uCAEC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAmB,KAAA,EAAO,EAAE,gBAAgB,UAAA,EAAW,EACpE,QAAA,kBAAAD,cAAA,CAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAU,qCAC7B,QAAA,EAAA,MAAA,CAAO,kBAAA,IAAsB,UAChC,CAAA,EACF,CAAA;AAAA,QAIC,MAAA,CAAO,gBAAA,oBAAoBA,cAAA,CAACE,8BAAA,EAAA,EAAc,MAAM,iBAAA,EAAmB,CAAA;AAAA,wBAGpEF,cAAA,CAACG,qCAAA,EAAA,EAAqB,MAAA,EAAgB,QAAA,EAAU,cAAA,EAAgB;AAAA;AAAA;AAAA,GAClE;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/forms/StaticForm.tsx"],"names":["normalizeFormConfig","DEFAULT_HONEYPOT_FIELD","jsxs","nativeFormProps","jsx","FormField","HoneypotField","NativeFallbackFields"],"mappings":";;;;;;;;AA6DA,SAAS,oBAAoB,MAAA,EAA2B;AACtD,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,MAAA,IAAU,EAAC;AAC9B,EAAA,IAAI,CAAC,MAAA,CAAO,aAAA,EAAe,OAAO,GAAA;AAGlC,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAA,EAAG,EAAA;AACvC,EAAA,OAAO,GAAA,CAAI,OAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,OAAA,KAAY,WAAW,CAAA;AAClE;AAEO,SAAS,WAAW,EAAE,MAAA,EAAQ,GAAA,EAAK,SAAA,EAAW,gBAAe,EAAoB;AACtF,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,MAAA,GAASA,qCAAoB,GAAU,CAAA;AAC7C,EAAA,MAAM,MAAA,GAAS,oBAAoB,MAAM,CAAA;AACzC,EAAA,MAAM,iBAAA,GAAoB,OAAO,cAAA,IAAkBC,uCAAA;AAEnD,EAAA,uBACEC,eAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MAGC,eAAA,EAAc,MAAA;AAAA,MACd,eAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAW,CAAA,QAAA,EAAW,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MACpC,GAAGC,iCAAgB,MAAM,CAAA;AAAA,MAE1B,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACb,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iBAAA,EACZ,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,qBACXA,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,CAAA,+CAAA,EAAkD,KAAA,CAAM,KAAA,IAAS,MAAM,CAAA,CAAA;AAAA,YAGlF,yCAACC,0BAAA,EAAA,EAAU,KAAA,EAAc,KAAA,EAAO,KAAA,CAAM,iBAAiB,EAAA,EAAI;AAAA,WAAA;AAAA,UAJtD,KAAA,CAAM,MAAM,KAAA,CAAM;AAAA,SAM1B,GACH,CAAA,EACF,CAAA;AAAA,uCAEC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAmB,KAAA,EAAO,EAAE,gBAAgB,UAAA,EAAW,EACpE,QAAA,kBAAAD,cAAA,CAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAU,qCAC7B,QAAA,EAAA,MAAA,CAAO,kBAAA,IAAsB,UAChC,CAAA,EACF,CAAA;AAAA,QAIC,MAAA,CAAO,gBAAA,oBAAoBA,cAAA,CAACE,8BAAA,EAAA,EAAc,MAAM,iBAAA,EAAmB,CAAA;AAAA,wBAGpEF,cAAA,CAACG,qCAAA,EAAA,EAAqB,MAAA,EAAgB,QAAA,EAAU,cAAA,EAAgB;AAAA;AAAA;AAAA,GAClE;AAEJ","file":"chunk-3DQXXYCS.js","sourcesContent":["/**\n * StaticForm — a complete, submittable managed form with ZERO client JavaScript.\n *\n * No `'use client'`. This renders in a Server Component, and what it emits is\n * a real `<form>`: every field, the honeypot, the signed native token, and a\n * submit button. With JavaScript disabled, off, or still downloading, the\n * browser performs an ordinary form-encoded POST to\n * `/api/public/forms/submit-native`, sonor-api runs the honeypot +\n * render-timestamp + quarantine stack, and the lead lands. 4.0.1 built that\n * endpoint; this is what finally puts it under every form by default.\n *\n * ── Why this exists ─────────────────────────────────────────────────────\n *\n * ManagedForm was a client component for historical reasons that no longer\n * hold: it used to fetch its own config (getFormConfig removed that) and it\n * could only submit via JSON (the native endpoint removed that). Nobody moved\n * the boundary afterward, so every site that rendered a form paid for the\n * whole forms runtime — validation, spotlight, celebration, momentum — as an\n * INITIAL script, on the LCP-critical path.\n *\n * Measured on upforge.io's homepage: 48 KB of form code in the initial chunk\n * set cost 6 Lighthouse points (88 -> 82, LCP 3.8s -> 4.7s). Deferring the\n * client component recovered the score but deleted the form from the HTML,\n * taking the no-JS floor and crawlable fields with it. Neither half was\n * acceptable; a server-rendered form is what makes both true at once.\n *\n * Pair it with <FormEnhancer> to upgrade this markup at idle. Alone, it is\n * still a working form — that is the point. Never make this file `'use\n * client'`, and never import a hook into it.\n */\n\nimport React from 'react'\nimport { DEFAULT_HONEYPOT_FIELD } from './contract'\nimport { FormField } from './FormField'\nimport { HoneypotField } from './HoneypotField'\nimport { nativeFormProps, NativeFallbackFields } from './native-fallback'\nimport { normalizeFormConfig } from './normalize-config'\nimport type { ManagedFormConfig } from './types'\n\nexport interface StaticFormProps {\n /**\n * RAW /api/public/forms/config payload from `getFormConfig`, or an\n * already-normalized config. Normalized here through the SAME function the\n * client fetch uses, so the shell and the enhancement cannot disagree about\n * field order, step count, or success copy.\n */\n config: Record<string, unknown> | ManagedFormConfig | null | undefined\n className?: string\n /**\n * Absolute URL the no-JS 303 should return to (usually the page hosting the\n * form). Without it the API falls back to the Referer origin — right site,\n * wrong page.\n */\n nativeReturnTo?: string\n}\n\n/**\n * Fields the static shell can render meaningfully. Conditional logic is a\n * runtime concern (it depends on values the visitor has not entered yet), so\n * a conditional field renders here and the enhancement takes over hiding it.\n */\nfunction visibleStaticFields(config: ManagedFormConfig) {\n const all = config.fields || []\n if (!config.is_multi_step) return all\n // Multi-step is JS-only navigation and is excluded from native POST, so the\n // shell shows step one as a preview of what the form asks for.\n const firstStepId = config.steps?.[0]?.id\n return all.filter((f) => !f.step_id || f.step_id === firstStepId)\n}\n\nexport function StaticForm({ config: raw, className, nativeReturnTo }: StaticFormProps) {\n if (!raw) return null\n const config = normalizeFormConfig(raw as any)\n const fields = visibleStaticFields(config)\n const honeypotFieldName = config.honeypot_field || DEFAULT_HONEYPOT_FIELD\n\n return (\n <form\n // Matches FormClient's classic branch attribute-for-attribute so the\n // enhancement swap is invisible. Change one, change the other.\n data-sk-state=\"idle\"\n data-sk-mount=\"shell\"\n className={`sk-form ${className || ''}`}\n {...nativeFormProps(config)}\n >\n <div className=\"sk-form__step\">\n <div className=\"sk-form__fields\">\n {fields.map((field) => (\n <div\n key={field.id || field.slug}\n className={`sk-form__field-wrapper sk-form__field-wrapper--${field.width || 'full'}`}\n >\n {/* No onChange — FormField renders native uncontrolled controls. */}\n <FormField field={field} value={field.default_value ?? ''} />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"sk-form__actions\" style={{ justifyContent: 'flex-end' }}>\n <button type=\"submit\" className=\"sk-form__btn sk-form__btn--submit\">\n {config.submit_button_text || 'Submit'}\n </button>\n </div>\n\n {/* Same trap the hydrated form uses; no state needed because the value\n is read and stripped server-side. */}\n {config.honeypot_enabled && <HoneypotField name={honeypotFieldName} />}\n\n {/* _sk_token auth + _sk_return destination for the native POST. */}\n <NativeFallbackFields config={config} returnTo={nativeReturnTo} />\n </form>\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/version.ts"],"names":[],"mappings":";AASO,IAAM,gBAAA,GAAmB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/shared/version.ts"],"names":[],"mappings":";AASO,IAAM,gBAAA,GAAmB","file":"chunk-3PTKHSF7.mjs","sourcesContent":["/**\n * @sonordev/site-kit shared - Package version constant\n *\n * Single source of truth for the version the kit reports at runtime (the\n * x-sitekit-version request header set by sonorFetch). Kept as a plain const\n * so client bundles don't need JSON imports; scripts/verify-dts.cjs asserts\n * it matches package.json at publish time, and version.test.ts asserts it in\n * dev, so it can't silently drift.\n */\nexport const SITE_KIT_VERSION = '5.3.0'\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkHMFFAUCD_js = require('./chunk-HMFFAUCD.js');
|
|
5
5
|
var chunkRC4WWQXR_js = require('./chunk-RC4WWQXR.js');
|
|
6
|
-
var
|
|
6
|
+
var chunkRMLRZOVE_js = require('./chunk-RMLRZOVE.js');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var navigation = require('next/navigation');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -101,10 +101,10 @@ function WebVitals({ apiUrl: propApiUrl, apiKey: propApiKey, site: propSite, deb
|
|
|
101
101
|
if (debug2) console.log("[Analytics] Web Vital:", data);
|
|
102
102
|
const endpoint = `${apiUrl}/api/public/analytics/web-vitals`;
|
|
103
103
|
if (viaBeacon) {
|
|
104
|
-
|
|
104
|
+
chunkRMLRZOVE_js.sonorBeacon(endpoint, data, apiKey);
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
|
-
void
|
|
107
|
+
void chunkRMLRZOVE_js.sonorFetch(
|
|
108
108
|
endpoint,
|
|
109
109
|
{
|
|
110
110
|
method: "POST",
|
|
@@ -611,7 +611,7 @@ function AnalyticsProvider({
|
|
|
611
611
|
return;
|
|
612
612
|
}
|
|
613
613
|
try {
|
|
614
|
-
const response = await
|
|
614
|
+
const response = await chunkRMLRZOVE_js.sonorFetch(
|
|
615
615
|
`${apiUrl}/api/public/seo/pages`,
|
|
616
616
|
{ method: "GET", headers: { "Content-Type": "application/json" } },
|
|
617
617
|
{ apiKey }
|
|
@@ -695,7 +695,7 @@ function AnalyticsProvider({
|
|
|
695
695
|
console.log("[Analytics] Page view:", pageView);
|
|
696
696
|
}
|
|
697
697
|
try {
|
|
698
|
-
const response = await
|
|
698
|
+
const response = await chunkRMLRZOVE_js.sonorFetch(
|
|
699
699
|
`${apiUrl}/api/public/analytics/page-view`,
|
|
700
700
|
{
|
|
701
701
|
method: "POST",
|
|
@@ -785,7 +785,7 @@ function AnalyticsProvider({
|
|
|
785
785
|
console.log("[Analytics] Journey step:", sessionData);
|
|
786
786
|
}
|
|
787
787
|
try {
|
|
788
|
-
await
|
|
788
|
+
await chunkRMLRZOVE_js.sonorFetch(
|
|
789
789
|
`${apiUrl}/api/public/analytics/session`,
|
|
790
790
|
{
|
|
791
791
|
method: "POST",
|
|
@@ -810,7 +810,7 @@ function AnalyticsProvider({
|
|
|
810
810
|
previousPageDuration: Math.round((Date.now() - pageEnterTimeRef.current) / 1e3),
|
|
811
811
|
previousPageScrollDepth: currentScrollDepthRef.current
|
|
812
812
|
});
|
|
813
|
-
|
|
813
|
+
chunkRMLRZOVE_js.sonorBeacon(`${apiUrl}/api/public/analytics/session`, payload, apiKey);
|
|
814
814
|
};
|
|
815
815
|
window.addEventListener("pagehide", handleUnload);
|
|
816
816
|
return () => {
|
|
@@ -875,11 +875,11 @@ function AnalyticsProvider({
|
|
|
875
875
|
deviceType: getDeviceType()
|
|
876
876
|
});
|
|
877
877
|
if (useBeacon) {
|
|
878
|
-
|
|
878
|
+
chunkRMLRZOVE_js.sonorBeacon(`${apiUrl}/api/public/analytics/scroll-depth`, payload, apiKey);
|
|
879
879
|
if (debug) console.log("[Analytics] Scroll depth (beacon):", { maxDepth, totalTime });
|
|
880
880
|
} else {
|
|
881
881
|
try {
|
|
882
|
-
await
|
|
882
|
+
await chunkRMLRZOVE_js.sonorFetch(
|
|
883
883
|
`${apiUrl}/api/public/analytics/scroll-depth`,
|
|
884
884
|
{
|
|
885
885
|
method: "POST",
|
|
@@ -957,7 +957,7 @@ function AnalyticsProvider({
|
|
|
957
957
|
if (debug) console.log("[Analytics] Click:", clickData);
|
|
958
958
|
scheduleIdleTask(async () => {
|
|
959
959
|
try {
|
|
960
|
-
await
|
|
960
|
+
await chunkRMLRZOVE_js.sonorFetch(
|
|
961
961
|
`${apiUrl}/api/public/analytics/heatmap-click`,
|
|
962
962
|
{
|
|
963
963
|
method: "POST",
|
|
@@ -1000,7 +1000,7 @@ function AnalyticsProvider({
|
|
|
1000
1000
|
console.log("[Analytics] Event:", event);
|
|
1001
1001
|
}
|
|
1002
1002
|
try {
|
|
1003
|
-
const response = await
|
|
1003
|
+
const response = await chunkRMLRZOVE_js.sonorFetch(
|
|
1004
1004
|
`${apiUrl}/api/public/analytics/event`,
|
|
1005
1005
|
{
|
|
1006
1006
|
method: "POST",
|
|
@@ -1043,7 +1043,7 @@ function AnalyticsProvider({
|
|
|
1043
1043
|
console.log("[Analytics] Conversion:", conversion);
|
|
1044
1044
|
}
|
|
1045
1045
|
try {
|
|
1046
|
-
const response = await
|
|
1046
|
+
const response = await chunkRMLRZOVE_js.sonorFetch(
|
|
1047
1047
|
`${apiUrl}/api/public/analytics/conversion`,
|
|
1048
1048
|
{
|
|
1049
1049
|
method: "POST",
|
|
@@ -1104,5 +1104,5 @@ exports.WebVitals = WebVitals;
|
|
|
1104
1104
|
exports.useAnalytics = useAnalytics;
|
|
1105
1105
|
exports.useAnalyticsOptional = useAnalyticsOptional;
|
|
1106
1106
|
exports.useTrackEvent = useTrackEvent;
|
|
1107
|
-
//# sourceMappingURL=chunk-
|
|
1108
|
-
//# sourceMappingURL=chunk-
|
|
1107
|
+
//# sourceMappingURL=chunk-4YJFC6FC.js.map
|
|
1108
|
+
//# sourceMappingURL=chunk-4YJFC6FC.js.map
|