@sonordev/site-kit 8.10.0 → 8.12.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/CHANGELOG.md +8 -0
- package/agent-manifest.json +1 -1
- package/dist/{AddressAutocomplete-LQS6GQ4R.js → AddressAutocomplete-6DQ3IP5C.js} +1 -1
- package/dist/{AnalyticsProvider-JWS7BLFY.js → AnalyticsProvider-RC2RG4YW.js} +4 -4
- package/dist/{ArticleViewTracker-CDPVMUAO.js → ArticleViewTracker-FNCRH3SB.js} +1 -1
- package/dist/{BlocksPopup-C5PNJ7U6.js → BlocksPopup-AJCDT5WM.js} +3 -3
- package/dist/{ChatWidget-HEPOE3YC.js → ChatWidget-CM5OGMJQ.js} +5 -5
- package/dist/{FileField-6R5LS5NU.js → FileField-QWS5ASLB.js} +1 -1
- package/dist/{FormSpotlight-2BSE7PD2.js → FormSpotlight-7Y6B2YZM.js} +1 -1
- package/dist/{FormStage-3G46OPPO.js → FormStage-T3N27SID.js} +1 -1
- package/dist/{ManagedForm-LTXEU25N.js → ManagedForm-WUULZELM.js} +6 -6
- package/dist/{ManagedNewsletterForm-WE6P5DMV.js → ManagedNewsletterForm-GGA3JOOI.js} +8 -8
- package/dist/{SignalCore-IP7FE6SN.js → SignalCore-ZMKDW44U.js} +3 -3
- package/dist/{SiteChat-3FQYMHCP.js → SiteChat-PM4RIZR4.js} +1 -1
- package/dist/{SiteDesignReporter-HGTX4FX2.js → SiteDesignReporter-SALYTWV2.js} +4 -4
- package/dist/{SitePopups-V7MCNSGE.js → SitePopups-VDSDWZHD.js} +4 -4
- package/dist/{SitemapSync-OAJ7SIET.js → SitemapSync-6UDJHS2F.js} +2 -2
- package/dist/_client/booking-widget.js +3 -3
- package/dist/_client/reviewed-signal-experiment.js +1 -1
- package/dist/affiliates/index.js +1 -1
- package/dist/analytics/index.js +4 -4
- package/dist/api-4AAR6BZO.js +5 -0
- package/dist/articles/index.js +1 -1
- package/dist/articles/server-ui.js +3 -3
- package/dist/articles/server.js +2 -2
- package/dist/chat/index.js +6 -6
- package/dist/{chunk-YJ6PRJ7Y.js → chunk-27264MSX.js} +2 -2
- package/dist/{chunk-D4R3FQED.js → chunk-2MJYGVKB.js} +1 -1
- package/dist/{chunk-MKU5ZORB.js → chunk-2QAG7ALW.js} +1 -1
- package/dist/{chunk-NH7K252M.js → chunk-5UAX6PHO.js} +1 -1
- package/dist/{chunk-NBNDH2J6.js → chunk-675DTMSR.js} +1 -1
- package/dist/{chunk-RMPXSEEU.js → chunk-7PW7N7P4.js} +1 -1
- package/dist/{chunk-TLKLHSRJ.js → chunk-C55LIDVW.js} +1 -1
- package/dist/{chunk-NWEIHCSE.js → chunk-CNCAQEUJ.js} +1 -1
- package/dist/{chunk-ACZ5JNSL.js → chunk-DFCLELM2.js} +2 -2
- package/dist/{chunk-HNVLINPI.js → chunk-DICLVB5P.js} +1 -1
- package/dist/{chunk-HLN7A4GL.js → chunk-DUIGCLQM.js} +1 -1
- package/dist/{chunk-Q2OE32TH.js → chunk-GHW37LVB.js} +2 -2
- package/dist/{chunk-727353NY.js → chunk-H4KPWR7P.js} +3 -3
- package/dist/{chunk-Z4XJOVQX.js → chunk-M2ZGSI6K.js} +1 -1
- package/dist/{chunk-J4R7MHV2.js → chunk-M34VOQ5J.js} +8 -8
- package/dist/{chunk-OCNODBH4.js → chunk-M3VJAE24.js} +1 -1
- package/dist/{chunk-P7S45DD7.js → chunk-NX4FETUK.js} +1 -1
- package/dist/{chunk-OEHIXCYS.js → chunk-O3CAXGY5.js} +2 -2
- package/dist/{chunk-RUV6DCKL.js → chunk-T2Z7KEIH.js} +1 -1
- package/dist/{chunk-DW5X4BC7.js → chunk-TPB5PTWW.js} +2 -2
- package/dist/{chunk-75N2WALV.js → chunk-TXB4ULAM.js} +1 -1
- package/dist/{chunk-6CIO4X6P.js → chunk-UFHEND2H.js} +1 -1
- package/dist/{chunk-7PWXPN53.js → chunk-UTVFF7VT.js} +1 -1
- package/dist/{chunk-MIKVCYGX.js → chunk-VF2X5T4H.js} +2 -2
- package/dist/{chunk-533ZSRJF.js → chunk-VZSIIKLR.js} +1 -1
- package/dist/{chunk-XAPSYDVT.js → chunk-WX4XX3BZ.js} +1 -1
- package/dist/{chunk-Y7DZ2ND2.js → chunk-Y4MQTSYY.js} +3 -3
- package/dist/{chunk-3RBOES2C.js → chunk-YOPBFEDG.js} +1 -1
- package/dist/{chunk-UMF5OILQ.js → chunk-YPTUKSF7.js} +1 -1
- package/dist/{chunk-Z62W7Q3T.js → chunk-YYV3YHUX.js} +1 -1
- package/dist/{chunk-A66TIJWU.js → chunk-Z42KXUTK.js} +1 -1
- package/dist/contracts/entries.d.ts +1 -1
- package/dist/contracts/property-interest.d.ts +100 -0
- package/dist/contracts/resonance.d.ts +1705 -358
- package/dist/contracts/sales-call-prep.d.ts +666 -0
- package/dist/contracts/signal-experiments.d.ts +0 -1
- package/dist/contracts/wire-uuid.d.ts +5 -0
- package/dist/{controls-KLG6VQLO.js → controls-GLVRT5EM.js} +2 -2
- package/dist/fleet/index.js +3 -3
- package/dist/forms/index.js +8 -8
- package/dist/forms/server.js +2 -2
- package/dist/images/index.js +2 -2
- package/dist/index.js +1 -1
- package/dist/landing/server.js +5 -5
- package/dist/layout/client.js +6 -6
- package/dist/layout/index.js +7 -7
- package/dist/llms/index.js +4 -4
- package/dist/maps/index.js +3 -3
- package/dist/mcp/sonor.js +5 -5
- package/dist/resonance/ConsentPreferences.d.ts +12 -0
- package/dist/resonance/consent-adapter.d.ts +3 -0
- package/dist/resonance/consent-preferences-styles.d.ts +2 -0
- package/dist/resonance/first-party-consent.d.ts +22 -0
- package/dist/resonance/index.d.ts +1 -0
- package/dist/resonance/index.js +366 -2
- package/dist/revalidate/index.js +2 -2
- package/dist/runtime/index.js +1 -1
- package/dist/{runtime-core-EU2RZMOL.js → runtime-core-4WL4V4QE.js} +523 -7
- package/dist/seo/client.js +2 -2
- package/dist/seo/index.js +2 -2
- package/dist/seo/llms.js +4 -4
- package/dist/seo/register-sitemap-cli.js +1 -1
- package/dist/seo/sitemap.js +2 -2
- package/dist/server/index.js +2 -2
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +2 -2
- package/dist/sitemap/index.js +2 -2
- package/dist/{sonor-fetch-runtime-SLPBNZY4.js → sonor-fetch-runtime-QO4DR7GR.js} +2 -2
- package/dist/sync/index.js +3 -3
- package/dist/website/images.js +2 -2
- package/dist/website/index.js +4 -4
- package/dist/website/landing/server.js +5 -5
- package/dist/website/popups.js +4 -4
- package/dist/{writeLLMsTxt-2CBYGKZO.js → writeLLMsTxt-EKWOSHXU.js} +1 -1
- package/package.json +1 -1
- package/src/resonance/README.md +49 -0
- package/dist/api-X6N6V2H3.js +0 -5
- /package/dist/{chunk-ORSQKTMN.js → chunk-2YSX4ZUC.js} +0 -0
|
@@ -458,7 +458,7 @@ async function registerLocalSitemap(options) {
|
|
|
458
458
|
}
|
|
459
459
|
if (options.writeLlms && result.success) {
|
|
460
460
|
try {
|
|
461
|
-
const { writeLLMsTxtToPublic } = await import('../writeLLMsTxt-
|
|
461
|
+
const { writeLLMsTxtToPublic } = await import('../writeLLMsTxt-EKWOSHXU.js');
|
|
462
462
|
const written = await writeLLMsTxtToPublic({
|
|
463
463
|
// Resolved here too: the sync's own `site` is scoped to the branch that
|
|
464
464
|
// posts, and this runs on the skip path as well.
|
package/dist/seo/sitemap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createSitemap, getPortfolioPaths, syncSitemapToPortal } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { createSitemap, getPortfolioPaths, syncSitemapToPortal } from '../chunk-Z42KXUTK.js';
|
|
2
|
+
import '../chunk-2YSX4ZUC.js';
|
|
3
3
|
import '../chunk-EK7P62DT.js';
|
|
4
4
|
import '../chunk-Z22QVHT4.js';
|
|
5
5
|
import '../chunk-7DYMM6SS.js';
|
package/dist/server/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import '../chunk-34ZYJTQR.js';
|
|
2
|
-
export { resolveClientCredential } from '../chunk-
|
|
2
|
+
export { resolveClientCredential } from '../chunk-675DTMSR.js';
|
|
3
3
|
import '../chunk-UAYAJPEP.js';
|
|
4
4
|
export { SITE_CACHE_TAGS } from '../chunk-HY7ZEU2C.js';
|
|
5
5
|
export { isNextControlFlow, requireServerApiConfig, resolveApiOrigin, resolveServerApiConfig, serverApiFetch } from '../chunk-7VMA3KCN.js';
|
|
6
6
|
import '../chunk-MH2DSGC6.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-2MJYGVKB.js';
|
|
8
8
|
import '../chunk-PKBMQBKP.js';
|
package/dist/shared/version.d.ts
CHANGED
package/dist/signal/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { ExperimentConversion, SignalExperiment, useExperimentVariant } from '../chunk-
|
|
3
|
-
export { SignalBridge, useSignal, useSignalConfig, useSignalEvent, useSignalExperiment, useSignalOutcome } from '../chunk-
|
|
2
|
+
export { ExperimentConversion, SignalExperiment, useExperimentVariant } from '../chunk-M3VJAE24.js';
|
|
3
|
+
export { SignalBridge, useSignal, useSignalConfig, useSignalEvent, useSignalExperiment, useSignalOutcome } from '../chunk-VZSIIKLR.js';
|
|
4
4
|
import '../chunk-MOACHHOJ.js';
|
|
5
5
|
import '../chunk-FRY6PBT6.js';
|
|
6
6
|
import '../chunk-PKBMQBKP.js';
|
package/dist/sitemap/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createSitemap, getPortfolioPaths, syncSitemapToPortal } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { createSitemap, getPortfolioPaths, syncSitemapToPortal } from '../chunk-Z42KXUTK.js';
|
|
2
|
+
import '../chunk-2YSX4ZUC.js';
|
|
3
3
|
import '../chunk-EK7P62DT.js';
|
|
4
4
|
import '../chunk-Z22QVHT4.js';
|
|
5
5
|
import '../chunk-7DYMM6SS.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getFreshCredential, refreshSiteToken } from './chunk-
|
|
1
|
+
import { getFreshCredential, refreshSiteToken } from './chunk-7PW7N7P4.js';
|
|
2
2
|
import { isSiteToken, credentialBreakerId } from './chunk-TPHOIE4I.js';
|
|
3
3
|
import { isTokenMode } from './chunk-D4M5K6JN.js';
|
|
4
|
-
import { SITE_KIT_VERSION } from './chunk-
|
|
4
|
+
import { SITE_KIT_VERSION } from './chunk-2MJYGVKB.js';
|
|
5
5
|
import './chunk-PKBMQBKP.js';
|
|
6
6
|
|
|
7
7
|
// src/shared/fetchWithRetry.ts
|
package/dist/sync/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { BookingWidget } from '../chunk-
|
|
2
|
-
export { createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, prepareMeeting, releaseSlotHold } from '../chunk-
|
|
1
|
+
export { BookingWidget } from '../chunk-YYV3YHUX.js';
|
|
2
|
+
export { createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate, formatDuration, formatTime, prepareMeeting, releaseSlotHold } from '../chunk-TXB4ULAM.js';
|
|
3
3
|
import '../chunk-PVY7X5UR.js';
|
|
4
4
|
import '../chunk-5IVD6G77.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-M2ZGSI6K.js';
|
|
6
6
|
import '../chunk-W7OPEMGJ.js';
|
|
7
7
|
import '../chunk-FRY6PBT6.js';
|
|
8
8
|
import '../chunk-PKBMQBKP.js';
|
package/dist/website/images.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ManagedImage, assignImageToSlot, clearImageSlot, fetchManagedImage, fetchManagedImages, listImageFiles, uploadImage } from '../chunk-
|
|
1
|
+
export { ManagedImage, assignImageToSlot, clearImageSlot, fetchManagedImage, fetchManagedImages, listImageFiles, uploadImage } from '../chunk-NX4FETUK.js';
|
|
2
2
|
export { ManagedFavicon, getManagedFaviconUrl } from '../chunk-GW7GSBO7.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-M2ZGSI6K.js';
|
|
4
4
|
import '../chunk-PKBMQBKP.js';
|
package/dist/website/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { SiteDesignReporter } from '../chunk-
|
|
3
|
-
export { SITE_DESIGN_PATH, cleanFontStack, colorToHex, getSiteDesignTokens, measureSiteDesign, readDeclaredDesign, sendSiteDesign } from '../chunk-
|
|
2
|
+
export { SiteDesignReporter } from '../chunk-C55LIDVW.js';
|
|
3
|
+
export { SITE_DESIGN_PATH, cleanFontStack, colorToHex, getSiteDesignTokens, measureSiteDesign, readDeclaredDesign, sendSiteDesign } from '../chunk-TPB5PTWW.js';
|
|
4
4
|
export { DEFAULT_POPUP_TOKENS, PopupBlocks } from '../chunk-52KO4LKD.js';
|
|
5
5
|
import '../chunk-XLAHRN4B.js';
|
|
6
6
|
import '../chunk-XHYE24HU.js';
|
|
7
7
|
import '../chunk-YC7ELZS3.js';
|
|
8
8
|
import '../chunk-S22FSH7C.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-2MJYGVKB.js';
|
|
10
10
|
import '../chunk-7643MCD2.js';
|
|
11
11
|
import '../chunk-64XODP7M.js';
|
|
12
|
-
import '../chunk-
|
|
12
|
+
import '../chunk-M2ZGSI6K.js';
|
|
13
13
|
import '../chunk-W7OPEMGJ.js';
|
|
14
14
|
import '../chunk-PKBMQBKP.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { FunnelPageContent, ManagedFunnelPage, getPublishedFunnelPage, managedFunnelMetadata } from '../../chunk-
|
|
1
|
+
export { FunnelPageContent, ManagedFunnelPage, getPublishedFunnelPage, managedFunnelMetadata } from '../../chunk-27264MSX.js';
|
|
2
2
|
import '../../chunk-XS2ORMUG.js';
|
|
3
3
|
import '../../chunk-XJZLXUTG.js';
|
|
4
4
|
import '../../chunk-7IZUUXXO.js';
|
|
5
5
|
export { normalizeCampaignSlug } from '../../chunk-2QPVU63T.js';
|
|
6
6
|
export { landingPageMetadata } from '../../chunk-JESLPEST.js';
|
|
7
7
|
import '../../chunk-XHYE24HU.js';
|
|
8
|
-
import '../../chunk-
|
|
9
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-5UAX6PHO.js';
|
|
9
|
+
import '../../chunk-CNCAQEUJ.js';
|
|
10
10
|
import '../../chunk-C2FZBUSS.js';
|
|
11
11
|
import '../../chunk-YC7ELZS3.js';
|
|
12
12
|
import '../../chunk-HHEDRZOJ.js';
|
|
@@ -19,8 +19,8 @@ import '../../chunk-7VMA3KCN.js';
|
|
|
19
19
|
import '../../chunk-MH2DSGC6.js';
|
|
20
20
|
import '../../chunk-S22FSH7C.js';
|
|
21
21
|
import '../../chunk-A4CC4ZG3.js';
|
|
22
|
-
import '../../chunk-
|
|
23
|
-
import '../../chunk-
|
|
22
|
+
import '../../chunk-M3VJAE24.js';
|
|
23
|
+
import '../../chunk-VZSIIKLR.js';
|
|
24
24
|
import '../../chunk-MOACHHOJ.js';
|
|
25
25
|
import '../../chunk-FRY6PBT6.js';
|
|
26
26
|
import '../../chunk-PKBMQBKP.js';
|
package/dist/website/popups.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { SitePopups } from '../chunk-
|
|
2
|
+
export { SitePopups } from '../chunk-Y4MQTSYY.js';
|
|
3
3
|
import '../chunk-27FISYK4.js';
|
|
4
4
|
export { DEFAULT_POPUP_TOKENS, PopupBlocks } from '../chunk-52KO4LKD.js';
|
|
5
5
|
import '../chunk-XLAHRN4B.js';
|
|
@@ -7,17 +7,17 @@ import '../chunk-XHYE24HU.js';
|
|
|
7
7
|
import '../chunk-PVY7X5UR.js';
|
|
8
8
|
import '../chunk-S22FSH7C.js';
|
|
9
9
|
import '../chunk-JT7GHHMV.js';
|
|
10
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-DFCLELM2.js';
|
|
11
11
|
import '../chunk-NHDRA4Y5.js';
|
|
12
12
|
import '../chunk-D4M5K6JN.js';
|
|
13
13
|
import '../chunk-GJWI74ZZ.js';
|
|
14
14
|
import '../chunk-NZOJHERI.js';
|
|
15
15
|
import '../chunk-KMNHNCVG.js';
|
|
16
16
|
import '../chunk-5IVD6G77.js';
|
|
17
|
-
import '../chunk-
|
|
17
|
+
import '../chunk-2MJYGVKB.js';
|
|
18
18
|
import '../chunk-7643MCD2.js';
|
|
19
19
|
import '../chunk-64XODP7M.js';
|
|
20
|
-
import '../chunk-
|
|
20
|
+
import '../chunk-M2ZGSI6K.js';
|
|
21
21
|
import '../chunk-W7OPEMGJ.js';
|
|
22
22
|
import '../chunk-A4CC4ZG3.js';
|
|
23
23
|
import '../chunk-FRY6PBT6.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sonordev/site-kit",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.12.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"packageManager": "pnpm@11.5.3",
|
|
6
6
|
"description": "Sonor's Next.js foundation: SEO, analytics, forms, chat, booking, AI visibility and agent tools. Add @sonordev/press-kit for publications or @sonordev/commerce-kit for selling. Legacy article imports remain compatible in 8.x.",
|
package/src/resonance/README.md
CHANGED
|
@@ -11,6 +11,55 @@ On dynamic routes with Next.js Cache Components, the layout gives the
|
|
|
11
11
|
pathname-dependent runtime its own Suspense boundary. Measurement stays
|
|
12
12
|
blocked while it's unresolved, and page content renders independently.
|
|
13
13
|
|
|
14
|
+
## First-party privacy preferences
|
|
15
|
+
|
|
16
|
+
For a site without a consent manager, mount `ResonanceConsentPreferences` once alongside `SiteKitLayout`.
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
import { ResonanceConsentPreferences } from '@sonordev/site-kit/resonance'
|
|
20
|
+
|
|
21
|
+
<ResonanceConsentPreferences privacyUrl="/privacy" />
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Visitors can choose visit measurement and advertising separately, decline optional purposes, and reopen Privacy choices to withdraw. Both optional choices start off. The component uses the existing adapter registration and keeps an already registered consent manager in charge.
|
|
25
|
+
|
|
26
|
+
A choice needs a fresh, enabled native configuration. The component waits while settings are unavailable. Stored preferences belong to the exact site, project, configuration and policy revisions. They expire after 180 days by default, with `maxAgeDays` configurable from 1 to 180. Native proof expiry is checked independently. If browser storage is unavailable, the choice lasts for the current tab. Withdrawal and cross-tab changes notify the existing runtime.
|
|
27
|
+
|
|
28
|
+
This component records preferences through the native consent owner. Configure the real page rules, destinations and approved visit feed before verifying advertising delivery.
|
|
29
|
+
|
|
30
|
+
### Branded footer settings
|
|
31
|
+
|
|
32
|
+
Mount the same leaf in the footer to keep one preference owner. Existing callers retain the floating launcher and automatic dialog. The optional presentation props are `launcherPlacement` (`floating` or `inline`), `launcherLabel`, `promptMode` (`dialog` or `panel`), and `className`.
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
<ResonanceConsentPreferences
|
|
36
|
+
launcherPlacement="inline"
|
|
37
|
+
launcherLabel="Privacy settings"
|
|
38
|
+
promptMode="panel"
|
|
39
|
+
className="workshop-consent"
|
|
40
|
+
/>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Panel mode presents equal Accept optional, Reject optional and Customize actions when the native configuration is ready and no current preference exists. It opens without moving focus. Dismissal lasts for this mount and records no choice. Customize opens the existing native dialog. Closing returns focus to the initiating control, or the footer launcher if that control disappears after a choice. Unsaved settings remain visible when configuration becomes unavailable. Every save rechecks the owner, and a failed save stays open for review and retry. The saved message describes the local preference on this page.
|
|
44
|
+
|
|
45
|
+
Style the root with inherited `--sk-consent-surface`, `--sk-consent-foreground`, `--sk-consent-muted`, `--sk-consent-border`, `--sk-consent-accent`, `--sk-consent-focus`, `--sk-consent-radius`, and `--sk-consent-font` tokens. The font token accepts a complete CSS font value, including `inherit`. Prompt placement uses `--sk-consent-prompt-inset` and `--sk-consent-prompt-bottom`. Stable slot classes are `sk-consent__launcher`, `sk-consent__prompt`, `sk-consent__dialog`, `sk-consent__actions`, and `sk-consent__status`.
|
|
46
|
+
|
|
47
|
+
```css
|
|
48
|
+
.workshop-consent {
|
|
49
|
+
--sk-consent-surface: #18201e;
|
|
50
|
+
--sk-consent-foreground: #fff8e8;
|
|
51
|
+
--sk-consent-muted: #d8d0bf;
|
|
52
|
+
--sk-consent-border: #8b806a;
|
|
53
|
+
--sk-consent-accent: #f0cd84;
|
|
54
|
+
--sk-consent-focus: #f0cd84;
|
|
55
|
+
--sk-consent-font: inherit;
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
For a site using the shared Echo chat, `--sk-echo-offset-bottom` is the existing placement input for the launcher and popup. A narrow layout can reserve the 60px launcher plus a gap beneath the privacy prompt by setting its bottom token from that value, safe-area inset and `--sk-vv-layout-gap`. Keep the existing CTA owner in charge of writing the Echo offset.
|
|
60
|
+
|
|
61
|
+
`[data-sk-echo-panel]` is the supported styling marker for an open Echo panel. At a narrow breakpoint, a site can hide only its nonmodal `sk-consent__prompt` while that marker exists, using a CSS `:has()` rule. The native privacy dialog remains independent. Verify chat open and closed states, short viewports, text zoom and focused content before shipping the placement.
|
|
62
|
+
|
|
14
63
|
## Connect your consent manager
|
|
15
64
|
|
|
16
65
|
Register one adapter for the consent manager your site already uses. The
|
package/dist/api-X6N6V2H3.js
DELETED
|
File without changes
|