@sonordev/site-kit 7.1.1 → 7.2.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/AGENTS.md +3 -3
- package/CHANGELOG.md +68 -3426
- package/README.md +9 -8
- package/agent-manifest.json +12 -4
- package/dist/{AnalyticsProvider-3MI5RCTL.js → AnalyticsProvider-SLFFBRPE.js} +4 -4
- package/dist/{ArticleViewTracker-CMBSJR3N.js → ArticleViewTracker-TM5AMGN2.js} +3 -3
- package/dist/{BlocksPopup-X3OAAK2L.js → BlocksPopup-YJNJIVPO.js} +5 -5
- package/dist/ChatWidget-XKOSH66S.js +17 -0
- package/dist/{FileField-QRSEGO6D.js → FileField-CI4UL5SH.js} +3 -3
- package/dist/{FormSpotlight-XKV7VTN4.js → FormSpotlight-F2AAEGBN.js} +20 -6
- package/dist/{FormStage-C3YGYAUZ.js → FormStage-BI5R5CNC.js} +27 -7
- package/dist/ManagedForm-G6COGHXL.js +16 -0
- package/dist/{ManagedNewsletterForm-LPIKGJF4.js → ManagedNewsletterForm-BO3WCGXX.js} +7 -5
- package/dist/{SignalCore-ICXXZBYI.js → SignalCore-ZA6WHKBR.js} +3 -3
- package/dist/SiteChat-YJADDTKG.js +5 -0
- package/dist/{SiteDesignReporter-A7MS2CIP.js → SiteDesignReporter-5YAW36AQ.js} +5 -5
- package/dist/SitePopups-ST5PMKZE.js +10 -0
- package/dist/SitemapSync-RJTEBINX.js +8 -0
- package/dist/SitemapSync.d.ts +1 -1
- package/dist/_client/booking-widget.js +5 -5
- package/dist/_client/testimonial-section.d.ts +1 -1
- package/dist/affiliates/api.d.ts +1 -1
- package/dist/affiliates/index.js +3 -3
- package/dist/analytics/AnalyticsProvider.d.ts +1 -1
- package/dist/analytics/index.js +4 -4
- package/dist/analytics/send-gate.d.ts +13 -26
- package/dist/articles/Article.d.ts +1 -1
- package/dist/articles/ArticleList.d.ts +1 -1
- package/dist/articles/ClusterLandingPage.d.ts +2 -2
- package/dist/articles/PublicationLayout.d.ts +1 -1
- package/dist/articles/PublicationSidebar.d.ts +1 -1
- package/dist/articles/RelatedPosts.d.ts +1 -1
- package/dist/articles/author-schema.d.ts +1 -1
- package/dist/articles/excerpt.d.ts +3 -4
- package/dist/articles/index.d.ts +2 -2
- package/dist/articles/index.js +2 -2
- package/dist/articles/news-sitemap.d.ts +1 -1
- package/dist/articles/processArticleHtml.d.ts +1 -1
- package/dist/articles/server-core.d.ts +4 -4
- package/dist/articles/server-ui.js +3 -2
- package/dist/articles/server.d.ts +4 -4
- package/dist/articles/server.js +2 -1
- package/dist/articles/types.d.ts +1 -1
- package/dist/{engage → chat}/ChatWidget.d.ts +8 -7
- package/dist/{engage → chat}/EchoUiActions.d.ts +4 -4
- package/dist/chat/SiteChat.d.ts +25 -0
- package/dist/{engage → chat}/brand-color.d.ts +2 -2
- package/dist/{engage → chat}/chat-messages.d.ts +1 -1
- package/dist/{engage → chat}/echo-config.d.ts +1 -1
- package/dist/chat/index.d.ts +10 -6
- package/dist/chat/index.js +14 -8
- package/dist/{engage → chat}/launcher-placement.d.ts +1 -7
- package/dist/{engage → chat}/socket-loader.d.ts +2 -2
- package/dist/chat/types.d.ts +136 -0
- package/dist/chunk-27FISYK4.js +4 -0
- package/dist/{chunk-QPEEKFCA.js → chunk-4NTBQNHA.js} +249 -80
- package/dist/{chunk-RK7GF7PQ.js → chunk-5V2V5C3Y.js} +2 -4
- package/dist/{chunk-ICFRH2ED.js → chunk-5YCEMV2L.js} +1 -1
- package/dist/{chunk-V4HUSHZO.js → chunk-64DKGVEI.js} +41 -7
- package/dist/{chunk-GLHQ3LRO.js → chunk-6U3VLV2C.js} +1 -1
- package/dist/{chunk-ZETJTCMV.js → chunk-BC4Y3S3D.js} +1 -1
- package/dist/{chunk-JSZN6LDZ.js → chunk-BF7TZYC3.js} +38 -31
- package/dist/{chunk-EFPS56JA.js → chunk-BKY2ZNM7.js} +1 -1
- package/dist/{chunk-AQSNPZY4.js → chunk-C2FZBUSS.js} +80 -1
- package/dist/{chunk-H42PZKVC.js → chunk-CF5QNFYU.js} +2 -2
- package/dist/{chunk-JC7KXNNM.js → chunk-D5DCBD4Y.js} +2 -2
- package/dist/{chunk-PXZ7LAOY.js → chunk-D6ZC7XKZ.js} +2 -2
- package/dist/chunk-EJVQJCG5.js +370 -0
- package/dist/{chunk-6OL23QYD.js → chunk-F24FNCTK.js} +1 -1
- package/dist/{chunk-NEKEH4CK.js → chunk-FR6BYFPC.js} +53 -21
- package/dist/{chunk-KOPVJQ2P.js → chunk-GEXT7BTE.js} +1 -1
- package/dist/{chunk-ZAWANWUS.js → chunk-GGORNBSC.js} +18 -6
- package/dist/{chunk-DUQMSNF2.js → chunk-HGFAEDG3.js} +1 -1
- package/dist/chunk-HODO5BX5.js +28 -0
- package/dist/chunk-HW7B43E5.js +14 -0
- package/dist/{chunk-EQBZ24VH.js → chunk-IAM3D3RL.js} +43 -24
- package/dist/{chunk-ODADQM6Z.js → chunk-JJ3DELUL.js} +2 -2
- package/dist/{chunk-542MIHNP.js → chunk-JMLK6MH7.js} +1 -1
- package/dist/{chunk-7FWA3I6A.js → chunk-JWTQS5F5.js} +1 -1
- package/dist/{chunk-OUNRFXDC.js → chunk-K4ZHAURD.js} +1 -1
- package/dist/chunk-NV72HZ4W.js +45 -0
- package/dist/{chunk-4Y5FWDPM.js → chunk-NZ4RXN3G.js} +55 -7
- package/dist/chunk-OWZ7ATLZ.js +187 -0
- package/dist/{chunk-TXBAOEKG.js → chunk-PKGN32AU.js} +5 -4
- package/dist/chunk-Q6E4OPGG.js +40 -0
- package/dist/{chunk-J4D6ZXRW.js → chunk-QL6XNPSD.js} +3 -3
- package/dist/{chunk-HAG4YIZY.js → chunk-R46IQIGK.js} +6 -6
- package/dist/{chunk-R3VKF43H.js → chunk-RPZ7OQGD.js} +1 -1
- package/dist/{chunk-Q3S26EQA.js → chunk-S54ECQGY.js} +1 -1
- package/dist/{chunk-JIL5VY2R.js → chunk-VHKEF5ZB.js} +1 -1
- package/dist/{chunk-ILAW3XKD.js → chunk-VO3JYRT5.js} +43 -29
- package/dist/chunk-VWWITFWM.js +300 -0
- package/dist/{chunk-OPRBF7VE.js → chunk-ZTLMPUO6.js} +3 -2
- package/dist/client/index.js +3 -3
- package/dist/cms/CmsPreview.d.ts +2 -2
- package/dist/cms/index.d.ts +3 -3
- package/dist/cms/server-api.d.ts +1 -1
- package/dist/cms/types.d.ts +1 -1
- package/dist/commerce/EventCheckout.d.ts +1 -1
- package/dist/commerce/EventsAgenda.d.ts +3 -3
- package/dist/commerce/api.d.ts +1 -1
- package/dist/commerce/index.js +4 -4
- package/dist/commerce/server.d.ts +3 -4
- package/dist/contracts/color.d.ts +1 -1
- package/dist/contracts/entries.d.ts +1 -1
- package/dist/contracts/error-page.d.ts +183 -0
- package/dist/contracts/fleet.d.ts +9 -9
- package/dist/contracts/forms.d.ts +4 -10
- package/dist/contracts/llms.d.ts +2 -1
- package/dist/contracts/portfolio.d.ts +11 -15
- package/dist/contracts/proposal-sitemap.d.ts +130 -0
- package/dist/contracts/schema-placeholders.d.ts +87 -0
- package/dist/contracts/seo-meta.d.ts +11 -12
- package/dist/contracts/seo-pages.d.ts +12 -18
- package/dist/contracts/site-cache.d.ts +4 -4
- package/dist/contracts/sites-normalize.d.ts +2 -4
- package/dist/contracts/sites.d.ts +3 -5
- package/dist/contracts/slot-content.d.ts +2 -2
- package/dist/contracts/slots.d.ts +6 -6
- package/dist/contracts/voice.d.ts +56 -0
- package/dist/contracts/website.d.ts +2 -2
- package/dist/engage/EngageWidget.d.ts +13 -12
- package/dist/engage/index.d.ts +10 -9
- package/dist/engage/index.js +31 -35
- package/dist/engage/types.d.ts +19 -244
- package/dist/fleet/FleetHeartbeat.d.ts +2 -2
- package/dist/fleet/index.js +4 -4
- package/dist/forms/FormEnhancer.d.ts +25 -12
- package/dist/forms/FormSpotlight.d.ts +2 -2
- package/dist/forms/ManagedForm.d.ts +1 -1
- package/dist/forms/ServerForm.d.ts +11 -10
- package/dist/forms/StaticForm.d.ts +4 -2
- package/dist/forms/field-autocomplete.d.ts +28 -0
- package/dist/forms/field-interactions.d.ts +2 -2
- package/dist/forms/form-dom-values.d.ts +42 -0
- package/dist/forms/form-loaded-at.d.ts +2 -2
- package/dist/forms/formsApi.d.ts +2 -2
- package/dist/forms/index.d.ts +1 -1
- package/dist/forms/index.js +11 -9
- package/dist/forms/server.d.ts +1 -1
- package/dist/forms/server.js +6 -4
- package/dist/forms/static.js +3 -2
- package/dist/forms/submitForm.d.ts +9 -2
- package/dist/forms/types.d.ts +44 -5
- package/dist/forms/useForm.d.ts +21 -4
- package/dist/forms/webmcp.d.ts +38 -0
- package/dist/images/ManagedFavicon.d.ts +1 -1
- package/dist/images/ManagedImage.d.ts +4 -4
- package/dist/images/api.d.ts +1 -1
- package/dist/images/index.d.ts +2 -2
- package/dist/images/index.js +4 -4
- package/dist/index.d.ts +4 -1
- package/dist/index.js +1 -1
- package/dist/landing/contract.d.ts +3 -4
- package/dist/layout/SiteKitClientProviders.d.ts +4 -4
- package/dist/layout/SiteKitLayout.d.ts +11 -11
- package/dist/layout/client.d.ts +4 -4
- package/dist/layout/client.js +7 -7
- package/dist/layout/index.js +8 -8
- package/dist/layout/types.d.ts +7 -6
- package/dist/llms/SpeakableSchema.d.ts +2 -2
- package/dist/llms/agent-access.d.ts +2 -2
- package/dist/llms/aiRobots.d.ts +4 -4
- package/dist/llms/api.d.ts +2 -2
- package/dist/llms/contract.js +1 -1
- package/dist/llms/generateLLMsTxt.d.ts +1 -1
- package/dist/llms/index.js +6 -6
- package/dist/llms/links.d.ts +1 -1
- package/dist/llms/revalidate.d.ts +1 -1
- package/dist/llms/seo-revalidate.d.ts +2 -3
- package/dist/llms/types.d.ts +6 -6
- package/dist/llms/writeLLMsTxt.d.ts +10 -10
- package/dist/manifest/index.d.ts +8 -8
- package/dist/maps/index.js +3 -3
- package/dist/mcp/WebMcpTools.d.ts +1 -1
- package/dist/mcp/index.js +2 -14
- package/dist/mcp/report.d.ts +2 -2
- package/dist/mcp/serverCard.d.ts +1 -1
- package/dist/mcp/sonor.d.ts +5 -6
- package/dist/mcp/sonor.js +14 -11
- package/dist/mcp/transport.d.ts +1 -2
- package/dist/mcp/types.d.ts +4 -5
- package/dist/motion/engine.d.ts +2 -3
- package/dist/motion/failsafe.d.ts +1 -2
- package/dist/motion/gsap.d.ts +2 -2
- package/dist/motion/three.d.ts +1 -1
- package/dist/og/config.d.ts +4 -4
- package/dist/og/contrast.d.ts +2 -2
- package/dist/og/pages.d.ts +5 -5
- package/dist/og/route-fit.d.ts +2 -2
- package/dist/og/route.d.ts +1 -2
- package/dist/og/template.d.ts +1 -1
- package/dist/proxy/index.d.ts +2 -2
- package/dist/proxy/securityHeaders.d.ts +10 -12
- package/dist/redirects/index.d.ts +7 -7
- package/dist/reputation/TestimonialSection.d.ts +1 -1
- package/dist/reputation/api.d.ts +1 -1
- package/dist/revalidate/index.js +2 -2
- package/dist/robots/index.d.ts +5 -5
- package/dist/robots/indexnow.d.ts +2 -3
- package/dist/seo/ManagedScripts.d.ts +2 -2
- package/dist/seo/client.js +4 -4
- package/dist/seo/getManagedMetadata.d.ts +1 -1
- package/dist/seo/groundingSchema.d.ts +2 -2
- package/dist/seo/index.js +15 -8
- package/dist/seo/llms/contract.js +1 -1
- package/dist/seo/llms.js +6 -6
- package/dist/seo/register-sitemap-cli-impl.d.ts +1 -1
- package/dist/seo/register-sitemap-cli.d.ts +1 -1
- package/dist/seo/register-sitemap-cli.js +2 -2
- package/dist/seo/schema-filter.d.ts +5 -6
- package/dist/seo/server-api.d.ts +1 -1
- package/dist/seo/sitemap.js +4 -4
- package/dist/seo/types.d.ts +4 -4
- package/dist/seo/withManagedMetadata.d.ts +4 -4
- package/dist/server/index.js +2 -2
- package/dist/server/mint-site-token.d.ts +1 -2
- package/dist/server/server-fetch.d.ts +5 -5
- package/dist/shared/build-entries.d.ts +4 -4
- package/dist/shared/dialog.d.ts +27 -0
- package/dist/shared/frame.d.ts +8 -9
- package/dist/shared/fresh-fetch.d.ts +1 -2
- package/dist/shared/identity.d.ts +1 -1
- package/dist/shared/layers.d.ts +7 -0
- package/dist/shared/mid-form.d.ts +53 -0
- package/dist/shared/next-files.d.ts +1 -1
- package/dist/shared/publishCredential.d.ts +1 -1
- package/dist/shared/reporting-gate.d.ts +1 -1
- package/dist/shared/uuid.d.ts +1 -2
- package/dist/shared/version.d.ts +1 -1
- package/dist/shared/visual-viewport-gap.d.ts +3 -3
- package/dist/signal/index.js +2 -2
- package/dist/signal/types.d.ts +1 -1
- package/dist/site-config/index.d.ts +2 -2
- package/dist/sitemap/index.d.ts +13 -13
- package/dist/sitemap/index.js +4 -4
- package/dist/sitemap/shared.d.ts +3 -3
- package/dist/sites/site-param.d.ts +2 -2
- package/dist/slots/ManagedRichText.d.ts +1 -1
- package/dist/slots/ManagedSlot.d.ts +1 -1
- package/dist/slots/index.d.ts +1 -3
- package/dist/{socket-loader-R24ZSRSQ.js → socket-loader-CGIPEG74.js} +1 -1
- package/dist/sync/index.js +5 -5
- package/dist/types.d.ts +4 -2
- package/dist/website/BlocksPopup.d.ts +1 -1
- package/dist/website/PopupBlocks.d.ts +8 -6
- package/dist/website/SitePopups.d.ts +25 -0
- package/dist/website/images.js +4 -4
- package/dist/website/index.js +6 -6
- package/dist/website/popup-rules.d.ts +46 -0
- package/dist/website/popup-types.d.ts +113 -0
- package/dist/website/popups.d.ts +2 -6
- package/dist/website/popups.js +6 -14
- package/dist/{writeLLMsTxt-QR23OQUE.js → writeLLMsTxt-OV24LQVL.js} +3 -3
- package/docs/MIGRATING-TO-7.md +50 -22
- package/docs.json +2 -1
- package/package.json +2 -2
- package/src/admin-auth/README.md +3 -3
- package/src/analytics/README.md +9 -11
- package/src/articles/README.md +10 -7
- package/src/{engage → chat}/README.md +63 -62
- package/src/cta-bar/README.md +11 -11
- package/src/forms/README.md +60 -12
- package/src/layout/README.md +8 -5
- package/src/llms/README.md +3 -3
- package/src/mcp/README.md +7 -7
- package/src/motion/README.md +1 -1
- package/src/og/README.md +26 -27
- package/src/proxy/README.md +14 -14
- package/src/seo/README.md +4 -2
- package/src/slots/README.md +1 -1
- package/src/sync/README.md +10 -0
- package/src/website/README.md +133 -0
- package/dist/ChatWidget-JMFBXJ75.js +0 -15
- package/dist/EngageWidget-A3QKZ3SU.js +0 -11
- package/dist/ManagedForm-2GSSDJPP.js +0 -14
- package/dist/SitemapSync-4U654SEA.js +0 -8
- package/dist/chunk-B73QPZPH.js +0 -837
- package/dist/chunk-NDF4A5JM.js +0 -37
- package/dist/chunk-RTMMHTEQ.js +0 -100
- package/dist/engage/DesignRenderer.d.ts +0 -57
- package/dist/engage/element-rules.d.ts +0 -38
package/dist/chunk-NDF4A5JM.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { VISUAL_VIEWPORT_GAP_PROPERTY } from './chunk-6T6CQVNL.js';
|
|
2
|
-
|
|
3
|
-
// src/engage/launcher-placement.ts
|
|
4
|
-
var DEFAULT_LAUNCHER_OFFSET_BOTTOM = "20px";
|
|
5
|
-
var DEFAULT_ENGAGE_Z_INDEX = 9999;
|
|
6
|
-
var LAUNCHER_OFFSET_PROPERTY = "--sk-echo-offset-bottom";
|
|
7
|
-
var SIDE_GUTTER = "20px";
|
|
8
|
-
var POPUP_ABOVE_LAUNCHER = "70px";
|
|
9
|
-
var POPUP_VERTICAL_RESERVE = "100px";
|
|
10
|
-
function toCssLength(value) {
|
|
11
|
-
if (typeof value === "number") return Number.isFinite(value) ? `${value}px` : void 0;
|
|
12
|
-
const trimmed = value?.trim();
|
|
13
|
-
return trimmed ? trimmed : void 0;
|
|
14
|
-
}
|
|
15
|
-
function chatLauncherStyles({ position, offsetBottom, zIndex } = {}) {
|
|
16
|
-
const side = position === "bottom-left" ? { left: SIDE_GUTTER } : { right: SIDE_GUTTER };
|
|
17
|
-
const offset = toCssLength(offsetBottom) ?? DEFAULT_LAUNCHER_OFFSET_BOTTOM;
|
|
18
|
-
const layer = typeof zIndex === "number" && Number.isFinite(zIndex) ? zIndex : DEFAULT_ENGAGE_Z_INDEX;
|
|
19
|
-
const clearance = `var(${LAUNCHER_OFFSET_PROPERTY}, ${offset}) + env(safe-area-inset-bottom, 0px) + var(${VISUAL_VIEWPORT_GAP_PROPERTY}, 0px)`;
|
|
20
|
-
return {
|
|
21
|
-
launcher: {
|
|
22
|
-
...side,
|
|
23
|
-
bottom: `calc(${clearance})`
|
|
24
|
-
},
|
|
25
|
-
popup: {
|
|
26
|
-
...side,
|
|
27
|
-
bottom: `calc(${clearance} + ${POPUP_ABOVE_LAUNCHER})`,
|
|
28
|
-
maxHeight: `calc(100dvh - (${clearance}) - ${POPUP_VERTICAL_RESERVE})`
|
|
29
|
-
},
|
|
30
|
-
// One beneath the launcher. At 0 or below, the same layer instead: -1
|
|
31
|
-
// would paint the popup behind the page's own content, and at a shared
|
|
32
|
-
// layer the launcher, which renders after the popup, still paints on top.
|
|
33
|
-
zIndex: { launcher: layer, popup: layer > 0 ? layer - 1 : layer }
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export { DEFAULT_ENGAGE_Z_INDEX, DEFAULT_LAUNCHER_OFFSET_BOTTOM, chatLauncherStyles };
|
package/dist/chunk-RTMMHTEQ.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
3
|
-
import React, { lazy, useRef, useEffect, useState, Suspense } from 'react';
|
|
4
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var InteractiveForm = lazy(
|
|
7
|
-
() => import('./ManagedForm-2GSSDJPP.js').then((m) => ({ default: m.ManagedForm }))
|
|
8
|
-
);
|
|
9
|
-
function FormEnhancer({
|
|
10
|
-
formId,
|
|
11
|
-
initialConfig,
|
|
12
|
-
className,
|
|
13
|
-
experience,
|
|
14
|
-
defaultValues,
|
|
15
|
-
onSuccess,
|
|
16
|
-
onError,
|
|
17
|
-
enter = "fade",
|
|
18
|
-
defer = true,
|
|
19
|
-
children
|
|
20
|
-
}) {
|
|
21
|
-
const ready = useDeferredActivation(defer);
|
|
22
|
-
const [enhanced, setEnhanced] = useState(false);
|
|
23
|
-
return /* @__PURE__ */ jsxs(
|
|
24
|
-
"div",
|
|
25
|
-
{
|
|
26
|
-
"data-sk-form-mount": enhanced ? "enhanced" : "shell",
|
|
27
|
-
"data-sk-part": "form-mount",
|
|
28
|
-
style: enter === "fade" ? FADE_HOST : void 0,
|
|
29
|
-
children: [
|
|
30
|
-
enter === "fade" && /* @__PURE__ */ jsx(EnterStyles, {}),
|
|
31
|
-
ready ? /* @__PURE__ */ jsx(Suspense, { fallback: children, children: /* @__PURE__ */ jsx(Enhanced, { onMount: () => setEnhanced(true), fallback: children, children: /* @__PURE__ */ jsx(
|
|
32
|
-
InteractiveForm,
|
|
33
|
-
{
|
|
34
|
-
formId,
|
|
35
|
-
initialConfig,
|
|
36
|
-
className,
|
|
37
|
-
experience,
|
|
38
|
-
defaultValues,
|
|
39
|
-
onSuccess,
|
|
40
|
-
onError
|
|
41
|
-
}
|
|
42
|
-
) }) }) : children
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
var Enhanced = class extends React.Component {
|
|
48
|
-
constructor() {
|
|
49
|
-
super(...arguments);
|
|
50
|
-
this.state = { failed: false };
|
|
51
|
-
}
|
|
52
|
-
static getDerivedStateFromError() {
|
|
53
|
-
return { failed: true };
|
|
54
|
-
}
|
|
55
|
-
componentDidCatch(err) {
|
|
56
|
-
console.error("[Forms] Enhancement failed; keeping the native form:", err);
|
|
57
|
-
}
|
|
58
|
-
componentDidMount() {
|
|
59
|
-
if (!this.state.failed) this.props.onMount();
|
|
60
|
-
}
|
|
61
|
-
render() {
|
|
62
|
-
if (this.state.failed) return this.props.fallback;
|
|
63
|
-
return /* @__PURE__ */ jsx(FrameTag, { children: this.props.children });
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
function FrameTag({ children }) {
|
|
67
|
-
const ref = useRef(null);
|
|
68
|
-
useEffect(() => {
|
|
69
|
-
const el = ref.current;
|
|
70
|
-
if (!el) return;
|
|
71
|
-
el.setAttribute("data-sk-enter", "");
|
|
72
|
-
const id = requestAnimationFrame(() => el.removeAttribute("data-sk-enter"));
|
|
73
|
-
return () => cancelAnimationFrame(id);
|
|
74
|
-
}, []);
|
|
75
|
-
return /* @__PURE__ */ jsx("div", { ref, style: { display: "contents" }, children });
|
|
76
|
-
}
|
|
77
|
-
var FADE_HOST = {
|
|
78
|
-
transition: "opacity var(--sk-form-enter-duration, 320ms) var(--sk-form-enter-easing, cubic-bezier(.22,1,.36,1))"
|
|
79
|
-
};
|
|
80
|
-
function EnterStyles() {
|
|
81
|
-
return /* @__PURE__ */ jsx(
|
|
82
|
-
"style",
|
|
83
|
-
{
|
|
84
|
-
dangerouslySetInnerHTML: {
|
|
85
|
-
__html: `
|
|
86
|
-
[data-sk-part="form-mount"][data-sk-form-mount="shell"]{opacity:.55}
|
|
87
|
-
[data-sk-part="form-mount"][data-sk-form-mount="enhanced"]{opacity:1}
|
|
88
|
-
[data-sk-part="form-mount"] [data-sk-enter]{opacity:0;transform:translateY(var(--sk-form-enter-distance,6px))}
|
|
89
|
-
[data-sk-part="form-mount"] [data-sk-enter] *{transition:none!important}
|
|
90
|
-
@media (prefers-reduced-motion: reduce){
|
|
91
|
-
[data-sk-part="form-mount"]{transition:none!important}
|
|
92
|
-
[data-sk-part="form-mount"][data-sk-form-mount="shell"]{opacity:1}
|
|
93
|
-
[data-sk-part="form-mount"] [data-sk-enter]{opacity:1;transform:none}
|
|
94
|
-
}`
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export { FormEnhancer };
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @sonordev/site-kit/engage - Design Renderer
|
|
3
|
-
*
|
|
4
|
-
* Renders design_json from Engage Studio as React components.
|
|
5
|
-
* This is the runtime renderer that converts the visual builder's
|
|
6
|
-
* JSON structure into actual React elements.
|
|
7
|
-
*/
|
|
8
|
-
import React, { CSSProperties } from 'react';
|
|
9
|
-
export interface DesignNode {
|
|
10
|
-
id: string;
|
|
11
|
-
type: string;
|
|
12
|
-
name: string;
|
|
13
|
-
children?: DesignNode[];
|
|
14
|
-
props?: Record<string, any>;
|
|
15
|
-
style?: CSSProperties;
|
|
16
|
-
}
|
|
17
|
-
export interface DesignDocument {
|
|
18
|
-
id: string;
|
|
19
|
-
type: string;
|
|
20
|
-
name: string;
|
|
21
|
-
children: DesignNode[];
|
|
22
|
-
style?: CSSProperties;
|
|
23
|
-
props?: Record<string, any>;
|
|
24
|
-
}
|
|
25
|
-
export interface DesignRendererProps {
|
|
26
|
-
design: DesignDocument;
|
|
27
|
-
onClose?: () => void;
|
|
28
|
-
onAction?: (action: ActionConfig, node: DesignNode) => void;
|
|
29
|
-
context?: EngageContext;
|
|
30
|
-
}
|
|
31
|
-
export interface ActionConfig {
|
|
32
|
-
action: string;
|
|
33
|
-
url?: string;
|
|
34
|
-
newTab?: boolean;
|
|
35
|
-
target?: string;
|
|
36
|
-
text?: string;
|
|
37
|
-
productId?: string;
|
|
38
|
-
formId?: string;
|
|
39
|
-
}
|
|
40
|
-
export interface EngageContext {
|
|
41
|
-
user?: {
|
|
42
|
-
name?: string;
|
|
43
|
-
email?: string;
|
|
44
|
-
isLoggedIn?: boolean;
|
|
45
|
-
};
|
|
46
|
-
cart?: {
|
|
47
|
-
itemCount?: number;
|
|
48
|
-
total?: number;
|
|
49
|
-
};
|
|
50
|
-
page?: {
|
|
51
|
-
url?: string;
|
|
52
|
-
title?: string;
|
|
53
|
-
};
|
|
54
|
-
[key: string]: any;
|
|
55
|
-
}
|
|
56
|
-
export declare function DesignRenderer({ design, onClose, onAction, context, }: DesignRendererProps): React.ReactElement;
|
|
57
|
-
export default DesignRenderer;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @sonordev/site-kit/engage - the rules EngageWidget applies to popups,
|
|
3
|
-
* banners and toasts, as pure functions (the package's tests have no DOM).
|
|
4
|
-
*
|
|
5
|
-
* Sonor validates every popup before it's published (sonor-api
|
|
6
|
-
* popups/popup-contract.ts), so these are the second check: a link the kit
|
|
7
|
-
* would follow or an image it would load must be safe here too, whatever the
|
|
8
|
-
* API sent.
|
|
9
|
-
*/
|
|
10
|
-
import type { EngageElement } from './types';
|
|
11
|
-
/**
|
|
12
|
-
* A URL a popup's button or link may send a visitor to: a path on this site,
|
|
13
|
-
* an anchor, http(s), mailto or tel. Anything else (javascript:, data:,
|
|
14
|
-
* protocol-relative) is undefined, and the kit doesn't navigate.
|
|
15
|
-
*/
|
|
16
|
-
export declare function safeActionUrl(raw: unknown): string | undefined;
|
|
17
|
-
/** An image a popup may load: http(s) or a path on this site. */
|
|
18
|
-
export declare function safeImageSrc(raw: unknown): string | undefined;
|
|
19
|
-
/** Exact path, or a prefix ending in `*`. The grammar Sonor stores page patterns in. */
|
|
20
|
-
export declare function matchPath(pathname: string, pattern: string): boolean;
|
|
21
|
-
export type DeviceType = 'desktop' | 'mobile' | 'tablet';
|
|
22
|
-
export declare function deviceFromUserAgent(ua: string): DeviceType;
|
|
23
|
-
/** The storage key that remembers a visitor saw (closed or clicked) an element. */
|
|
24
|
-
export declare function seenKey(elementId: string): string;
|
|
25
|
-
interface SeenStore {
|
|
26
|
-
local: Pick<Storage, 'getItem'> | null;
|
|
27
|
-
session: Pick<Storage, 'getItem'> | null;
|
|
28
|
-
}
|
|
29
|
-
/** Whether an element's targeting and frequency cap allow it on this page, for this visitor. */
|
|
30
|
-
export declare function isEligible(element: EngageElement, pathname: string, device: DeviceType, store: SeenStore, now?: number): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* The active list after `id` asks to show. A popup (the kind centred over a
|
|
33
|
-
* dimmed page) waits while another is open, so two never stack; banners and
|
|
34
|
-
* toasts show alongside. Elements arrive from Sonor highest priority first, so
|
|
35
|
-
* the first popup to trigger is the one that wins a tie.
|
|
36
|
-
*/
|
|
37
|
-
export declare function activateElement(active: string[], id: string, elements: EngageElement[]): string[];
|
|
38
|
-
export {};
|