@sarimarcus/content-sites-ui 0.29.2 → 0.29.3

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 CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All packages in the platform release in lockstep; entries are per release version.
4
4
 
5
+ ## 0.29.3 (2026-10-07)
6
+
7
+ - `./layout`: `ConsentAnalytics` builds the absolute `gtm.js` URL at render time and passes it to the inline script, which no longer holds a relative `'/gtm.js?id='` literal that Googlebot crawled as a 404 on each site (SLA-3001).
8
+
5
9
  ## 0.29.2 (2026-10-06)
6
10
 
7
11
  - `./navigation`: `ArticlesNavMenu`'s feature image is a CSS background applied once the menu has opened, so a page load no longer fetches it; it stays painted through the close fade (the controller marks a dropdown `data-opened` on its first open), falls back to the 1x file where `image-set()` is unsupported, and is decorative when there is no alt text (SLA-2993).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sarimarcus/content-sites-ui",
3
- "version": "0.29.2",
3
+ "version": "0.29.3",
4
4
  "description": "Universal Astro UI components, layout shell and design tokens shared by the content sites.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -49,6 +49,6 @@
49
49
  "@lucide/astro": "^1.23.0",
50
50
  "astro": "^7.0.6",
51
51
  "tailwindcss": "^4.1.18",
52
- "@sarimarcus/content-sites-core": "0.29.2"
52
+ "@sarimarcus/content-sites-core": "0.29.3"
53
53
  }
54
54
  }
@@ -29,16 +29,17 @@ interface Props {
29
29
 
30
30
  const { gtmId, part, prompt = '', consentTypes = [] } = Astro.props;
31
31
  const isProd = import.meta.env.PROD;
32
- const gtmOrigin = GTM_ORIGIN;
32
+ // Absolute and built here: Googlebot crawls a relative '/gtm.js?id=' literal in the inline script as a page (SLA-3001).
33
+ const gtmSrc = `${GTM_ORIGIN}/gtm.js?id=${gtmId}`;
33
34
  const silktideScript = `${SILKTIDE_BASE}/silktide-consent-manager.js`;
34
35
  const silktideConfig = { text: { prompt: { description: prompt } }, consentTypes };
35
36
  ---
36
37
 
37
38
  {isProd && part === 'noscript' && (
38
- <noscript set:html={`<iframe src="${gtmOrigin}/ns.html?id=${gtmId}" height="0" width="0" style="display:none;visibility:hidden"></iframe>`} />
39
+ <noscript set:html={`<iframe src="${GTM_ORIGIN}/ns.html?id=${gtmId}" height="0" width="0" style="display:none;visibility:hidden"></iframe>`} />
39
40
  )}
40
41
  {isProd && part === 'script' && (
41
- <script is:inline define:vars={{ gtmId, gtmOrigin, silktideScript, silktideConfig }}>
42
+ <script is:inline define:vars={{ gtmSrc, silktideScript, silktideConfig }}>
42
43
  (function () {
43
44
  let thirdPartyLoaded = false;
44
45
 
@@ -66,7 +67,7 @@ const silktideConfig = { text: { prompt: { description: prompt } }, consentTypes
66
67
  // On the main thread: Partytown race-dropped the initial page_view (SLA-2661).
67
68
  var gtmScript = document.createElement('script');
68
69
  gtmScript.async = true;
69
- gtmScript.src = gtmOrigin + '/gtm.js?id=' + gtmId;
70
+ gtmScript.src = gtmSrc;
70
71
  document.head.appendChild(gtmScript);
71
72
 
72
73
  var consentScript = document.createElement('script');