@wildo-ai/saas-website 1.1.2 → 1.1.4
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/dist/esm/astro/blog-post-bridge.d.ts +21 -0
- package/dist/esm/astro/blog-post-bridge.d.ts.map +1 -1
- package/dist/esm/astro/blog-post-bridge.js +5 -2
- package/dist/esm/astro/blog-post-bridge.js.map +1 -1
- package/dist/esm/astro/blog-post-head.renderer.d.ts.map +1 -1
- package/dist/esm/astro/bridge-runtime.d.ts +37 -0
- package/dist/esm/astro/bridge-runtime.d.ts.map +1 -1
- package/dist/esm/astro/bridge-runtime.js +6 -2
- package/dist/esm/astro/bridge-runtime.js.map +1 -1
- package/dist/esm/astro/collect-expected-label-keys.d.ts.map +1 -1
- package/dist/esm/astro/headers-renderer.d.ts.map +1 -1
- package/dist/esm/astro/i18n-routing.helper.d.ts.map +1 -1
- package/dist/esm/astro/label-pack-loader.d.ts.map +1 -1
- package/dist/esm/astro/llms-txt-server.d.ts.map +1 -1
- package/dist/esm/astro/pick-labels-for-page.d.ts.map +1 -1
- package/dist/esm/astro/robots-renderer.d.ts.map +1 -1
- package/dist/esm/astro/robots-renderer.js +14 -1
- package/dist/esm/astro/robots-renderer.js.map +1 -1
- package/dist/esm/astro/sitemap-coverage.d.ts.map +1 -1
- package/dist/esm/astro/structured-data.renderer.d.ts.map +1 -1
- package/dist/esm/astro/website-page-head.renderer.d.ts.map +1 -1
- package/dist/esm/astro/website-page-head.renderer.js +32 -12
- package/dist/esm/astro/website-page-head.renderer.js.map +1 -1
- package/dist/esm/astro/website-page-runtime.helper.d.ts.map +1 -1
- package/dist/esm/astro/website-site-context.d.ts.map +1 -1
- package/dist/esm/astro-island.d.ts.map +1 -1
- package/dist/esm/astro.d.ts.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/components/low-level/WebsiteInternalButton.d.ts.map +1 -1
- package/dist/esm/components/low-level/WebsiteInternalLink.d.ts.map +1 -1
- package/dist/esm/config/define-website-config.d.ts.map +1 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/load-website-config.d.ts.map +1 -1
- package/dist/esm/config/wildo-website-config.schemas.d.ts +12 -5
- package/dist/esm/config/wildo-website-config.schemas.d.ts.map +1 -1
- package/dist/esm/config/wildo-website-config.schemas.js +12 -5
- package/dist/esm/config/wildo-website-config.schemas.js.map +1 -1
- package/dist/esm/config-loader.d.ts.map +1 -1
- package/dist/esm/core/anonymous-session/InboundContactForm.d.ts.map +1 -1
- package/dist/esm/core/anonymous-session/inbound-contact-form.schema.d.ts +5 -5
- package/dist/esm/core/anonymous-session/inbound-contact-form.schema.d.ts.map +1 -1
- package/dist/esm/core/anonymous-session/inbound-contact-form.schema.js +7 -6
- package/dist/esm/core/anonymous-session/inbound-contact-form.schema.js.map +1 -1
- package/dist/esm/core/anonymous-session/website-anonymous-session-client.d.ts.map +1 -1
- package/dist/esm/core/contexts/WebsitePageContext.d.ts +4 -3
- package/dist/esm/core/contexts/WebsitePageContext.d.ts.map +1 -1
- package/dist/esm/core/contexts/WebsitePageContext.js.map +1 -1
- package/dist/esm/core/contexts/WebsiteRuntimeContext.d.ts +36 -7
- package/dist/esm/core/contexts/WebsiteRuntimeContext.d.ts.map +1 -1
- package/dist/esm/core/contexts/WebsiteRuntimeContext.js.map +1 -1
- package/dist/esm/core/contexts/WebsiteSectionContext.d.ts +3 -2
- package/dist/esm/core/contexts/WebsiteSectionContext.d.ts.map +1 -1
- package/dist/esm/core/contexts/WebsiteSectionContext.js.map +1 -1
- package/dist/esm/core/contexts/useWebsitePage.d.ts.map +1 -1
- package/dist/esm/core/contexts/useWebsiteRuntime.d.ts.map +1 -1
- package/dist/esm/core/contexts/useWebsiteSection.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.website.d.ts +37 -13
- package/dist/esm/core/external-providers/frontend-provider-registry.website.d.ts.map +1 -1
- package/dist/esm/core/external-providers/frontend-provider-registry.website.js +28 -19
- package/dist/esm/core/external-providers/frontend-provider-registry.website.js.map +1 -1
- package/dist/esm/core/external-providers/provider-scripts.website.d.ts +68 -0
- package/dist/esm/core/external-providers/provider-scripts.website.d.ts.map +1 -0
- package/dist/esm/core/external-providers/provider-scripts.website.js +99 -0
- package/dist/esm/core/external-providers/provider-scripts.website.js.map +1 -0
- package/dist/esm/core/external-providers/useWebsiteProviderScripts.d.ts +34 -0
- package/dist/esm/core/external-providers/useWebsiteProviderScripts.d.ts.map +1 -0
- package/dist/esm/core/external-providers/useWebsiteProviderScripts.js +78 -0
- package/dist/esm/core/external-providers/useWebsiteProviderScripts.js.map +1 -0
- package/dist/esm/core/factories/define-website-page-manifest.d.ts.map +1 -1
- package/dist/esm/core/factories/define-website-section.d.ts.map +1 -1
- package/dist/esm/core/hooks/useWebsiteDesignTokens.d.ts.map +1 -1
- package/dist/esm/core/hooks/useWebsiteLabel.d.ts.map +1 -1
- package/dist/esm/core/layouts/WebsitePageLayout.d.ts.map +1 -1
- package/dist/esm/core/layouts/WebsitePageLayout.js +7 -0
- package/dist/esm/core/layouts/WebsitePageLayout.js.map +1 -1
- package/dist/esm/core/layouts/WebsiteSection.d.ts.map +1 -1
- package/dist/esm/core/routing/internal-routing.utils.d.ts.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/mdx/BlogPost.d.ts.map +1 -1
- package/dist/esm/mdx/blog-post-collection.config.d.ts.map +1 -1
- package/dist/esm/mdx/blog-post-frontmatter-source.d.ts.map +1 -1
- package/dist/esm/mdx/index.d.ts.map +1 -1
- package/dist/esm/mdx.d.ts.map +1 -1
- package/dist/esm/schemas/blog/blog-post-frontmatter.shared.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/design-tokens/website-design-tokens.shared.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/label-keys/website-label-key.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/manifests/website-page-manifest.shared.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/manifests/website-root-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/refs/page-ref.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/refs/section-ref.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/sections/website-section-category.shared.d.ts +19 -20
- package/dist/esm/schemas/sections/website-section-category.shared.d.ts.map +1 -1
- package/dist/esm/schemas/sections/website-section-category.shared.js +19 -20
- package/dist/esm/schemas/sections/website-section-category.shared.js.map +1 -1
- package/dist/esm/schemas/sections/website-section-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/schemas/validators/label-pack.validator.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/src/__tests__/bundle-isolation.test.ts +21 -0
- package/src/astro/__tests__/blog-post-bridge.test.tsx +2 -2
- package/src/astro/__tests__/bridge-runtime.test.tsx +57 -2
- package/src/astro/__tests__/robots-renderer.test.ts +16 -1
- package/src/astro/__tests__/website-page-head.renderer.test.ts +43 -0
- package/src/astro/__tests__/website-site-context.test.ts +1 -1
- package/src/astro/blog-post-bridge.tsx +26 -1
- package/src/astro/bridge-runtime.tsx +44 -1
- package/src/astro/robots-renderer.ts +14 -1
- package/src/astro/website-page-head.renderer.ts +32 -12
- package/src/config/__tests__/define-website-config.test.ts +9 -3
- package/src/config/wildo-website-config.schemas.ts +12 -5
- package/src/core/__tests__/WebsitePageLayout.test.tsx +47 -4
- package/src/core/anonymous-session/inbound-contact-form.schema.ts +7 -6
- package/src/core/contexts/WebsitePageContext.tsx +4 -3
- package/src/core/contexts/WebsiteRuntimeContext.tsx +36 -7
- package/src/core/contexts/WebsiteSectionContext.tsx +3 -2
- package/src/core/external-providers/__tests__/frontend-provider-registry.website.test.ts +79 -0
- package/src/core/external-providers/__tests__/provider-scripts.website.test.ts +146 -0
- package/src/core/external-providers/frontend-provider-registry.website.ts +53 -54
- package/src/core/external-providers/provider-scripts.website.ts +126 -0
- package/src/core/external-providers/useWebsiteProviderScripts.ts +92 -0
- package/src/core/layouts/WebsitePageLayout.tsx +11 -0
- package/src/schemas/sections/website-section-category.shared.ts +19 -20
|
@@ -8,33 +8,31 @@ import { z } from 'zod';
|
|
|
8
8
|
*
|
|
9
9
|
* The category is NOT a layout-shape constraint and NOT a CSS class; the
|
|
10
10
|
* framework ships zero concrete sections and never inspects
|
|
11
|
-
* the category at render time. The category exists for
|
|
11
|
+
* the category at render time. The category exists for two orthogonal
|
|
12
12
|
* non-render concerns:
|
|
13
13
|
*
|
|
14
|
-
* 1. **
|
|
15
|
-
* SEO library reads `WebsiteSectionDefinition.category` to decide
|
|
16
|
-
* which JSON-LD vocabulary the section's `getStructuredData()` hook
|
|
17
|
-
* is allowed to emit. e.g. `PRICING` may emit `Product` /
|
|
18
|
-
* `AggregateOffer`; `FAQ` may emit `FAQPage`; `HERO` may emit
|
|
19
|
-
* `Organization` / `WebSite`. Mismatches are surfaced as build-time
|
|
20
|
-
* warnings.
|
|
21
|
-
* 2. **Authoring guidance**: each value has matching application-builder
|
|
14
|
+
* 1. **Authoring guidance**: each value has matching application-builder
|
|
22
15
|
* guidance. When introducing a new category, provide its public authoring
|
|
23
16
|
* method before asking an application to use it.
|
|
24
|
-
*
|
|
17
|
+
* 2. **Analytics labelling**: the runtime emits
|
|
25
18
|
* `data-section-category="…"` on the `<WebsiteSection>` wrapper so
|
|
26
19
|
* analytics tooling can group section impressions
|
|
27
20
|
* without parsing className conventions.
|
|
28
21
|
*
|
|
22
|
+
* **It does NOT gate structured data.** Nothing dispatches JSON-LD by category: the structured-data
|
|
23
|
+
* renderer receives only `sectionRef` and `getStructuredData`, the reconciliation contract carries
|
|
24
|
+
* no category at all, and no build-time warning compares the two. A section may return any
|
|
25
|
+
* vocabulary from `getStructuredData()` whatever its category says, so choose the category for what
|
|
26
|
+
* it does do (guidance and analytics grouping) and validate your JSON-LD yourself.
|
|
27
|
+
*
|
|
29
28
|
* **Closed vocabulary on purpose**: a free-string `category` would
|
|
30
|
-
* defeat the skill
|
|
31
|
-
* need a wholly-novel section shape use the `RAW` advanced path
|
|
29
|
+
* defeat the skill mapping and would make the analytics attribute unaggregatable.
|
|
30
|
+
* Consumers who need a wholly-novel section shape use the `RAW` advanced path
|
|
32
31
|
* (`website-factory-advanced` skill) which bypasses the category
|
|
33
32
|
* vocabulary entirely.
|
|
34
33
|
*
|
|
35
|
-
* **Adding a value**: requires (a) a new entry here
|
|
36
|
-
* `website_section_<value>` skill stub
|
|
37
|
-
* structured-data dispatch entry in the SEO library. Removing a value
|
|
34
|
+
* **Adding a value**: requires (a) a new entry here and (b) a matching
|
|
35
|
+
* `website_section_<value>` skill stub. Removing a value
|
|
38
36
|
* is a labelled rename — every consumer's
|
|
39
37
|
* `defineWebsiteSection({ category: … })` declaration breaks at compile
|
|
40
38
|
* time, which is the desired loud failure.
|
|
@@ -51,11 +49,12 @@ export enum WebsiteSectionCategory {
|
|
|
51
49
|
FOOTER_CTA = 'footer-cta',
|
|
52
50
|
/**
|
|
53
51
|
* Escape hatch for sections that don't fit any standard category
|
|
54
|
-
* (third-party widgets, custom one-off marketing pieces).
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
52
|
+
* (third-party widgets, custom one-off marketing pieces). Authors should
|
|
53
|
+
* prefer a concrete category whenever possible, so the section receives the
|
|
54
|
+
* matching authoring guidance and groups with its peers in analytics.
|
|
55
|
+
*
|
|
56
|
+
* It makes no difference to structured data: no category validates
|
|
57
|
+
* `getStructuredData()`, so `RAW` opts out of nothing there.
|
|
59
58
|
*/
|
|
60
59
|
RAW = 'raw',
|
|
61
60
|
}
|