@olonjs/cli 3.0.84 → 3.0.85

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.
@@ -596,7 +596,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
596
596
  "@tiptap/extension-link": "^2.11.5",
597
597
  "@tiptap/react": "^2.11.5",
598
598
  "@tiptap/starter-kit": "^2.11.5",
599
- "@olonjs/core": "^1.0.72",
599
+ "@olonjs/core": "^1.0.73",
600
600
  "clsx": "^2.1.1",
601
601
  "lucide-react": "^0.474.0",
602
602
  "react": "^19.0.0",
@@ -3593,6 +3593,9 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3593
3593
  '--local-cyan': 'var(--color-secondary, #22d3ee)',
3594
3594
  '--local-border': 'var(--border)',
3595
3595
  '--local-surface': 'var(--card)',
3596
+ '--local-radius-sm': 'var(--theme-radius-sm)',
3597
+ '--local-radius-md': 'var(--theme-radius-md)',
3598
+ '--local-radius-lg': 'var(--theme-radius-lg)',
3596
3599
  } as React.CSSProperties}
3597
3600
  className="jp-hero relative min-h-screen flex items-center overflow-hidden pt-24 pb-0 bg-[var(--local-bg)]"
3598
3601
  >
@@ -3651,7 +3654,7 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3651
3654
  data-jp-item-id={cta.id ?? `legacy-${idx}`}
3652
3655
  data-jp-item-field="ctas"
3653
3656
  className={cn(
3654
- 'inline-flex items-center gap-2 px-7 py-3 rounded-[7px] font-semibold text-[0.95rem] transition-all duration-200 no-underline',
3657
+ 'inline-flex items-center gap-2 px-7 py-3 rounded-[var(--local-radius-md)] font-semibold text-[0.95rem] transition-all duration-200 no-underline',
3655
3658
  cta.variant === 'primary'
3656
3659
  ? 'bg-[var(--local-primary)] text-white hover:brightness-110 hover:-translate-y-0.5 shadow-[0_0_24px_rgba(59,130,246,0.25)]'
3657
3660
  : 'bg-transparent text-[var(--local-text)] border border-[rgba(255,255,255,0.12)] hover:border-[rgba(255,255,255,0.3)] hover:bg-[rgba(255,255,255,0.04)]'
@@ -3684,13 +3687,13 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3684
3687
  </div>
3685
3688
 
3686
3689
  {/* RIGHT — ICE mini-mockup */}
3687
- <div className="jp-animate-in jp-d2 rounded-[12px] overflow-hidden border border-[rgba(255,255,255,0.10)] shadow-[0_0_0_1px_rgba(255,255,255,0.04),0_40px_80px_rgba(0,0,0,0.6),0_0_60px_rgba(59,130,246,0.08)]">
3690
+ <div className="jp-animate-in jp-d2 rounded-[var(--local-radius-lg)] overflow-hidden border border-[rgba(255,255,255,0.10)] shadow-[0_0_0_1px_rgba(255,255,255,0.04),0_40px_80px_rgba(0,0,0,0.6),0_0_60px_rgba(59,130,246,0.08)]">
3688
3691
  {/* Browser bar */}
3689
3692
  <div className="bg-[#0f1923] px-3 py-2.5 flex items-center gap-1.5 border-b border-[rgba(255,255,255,0.05)]">
3690
3693
  <span className="w-2.5 h-2.5 rounded-full bg-[#ef4444]" />
3691
3694
  <span className="w-2.5 h-2.5 rounded-full bg-[#f59e0b]" />
3692
3695
  <span className="w-2.5 h-2.5 rounded-full bg-[#22c55e]" />
3693
- <span className="mx-auto font-mono text-[0.60rem] text-[rgba(255,255,255,0.20)] bg-[rgba(255,255,255,0.04)] px-3 py-0.5 rounded">localhost:5173 · Studio</span>
3696
+ <span className="mx-auto font-mono text-[0.60rem] text-[rgba(255,255,255,0.20)] bg-[rgba(255,255,255,0.04)] px-3 py-0.5 rounded-[var(--local-radius-sm)]">localhost:5173 · Studio</span>
3694
3697
  </div>
3695
3698
  {/* Split: canvas + inspector */}
3696
3699
  <div className="grid grid-cols-[1fr_260px] h-[360px] bg-[#060d1b]">
@@ -3714,8 +3717,8 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3714
3717
  {data.description?.slice(0, 100)}…
3715
3718
  </p>
3716
3719
  <div className="flex gap-1.5">
3717
- <span className="text-[0.58rem] font-semibold bg-[#3b82f6] text-white px-2.5 py-1 rounded">Read the Docs</span>
3718
- <span className="text-[0.58rem] border border-[rgba(255,255,255,0.15)] text-[#94a3b8] px-2.5 py-1 rounded">View on NPM</span>
3720
+ <span className="text-[0.58rem] font-semibold bg-[#3b82f6] text-white px-2.5 py-1 rounded-[var(--local-radius-sm)]">Read the Docs</span>
3721
+ <span className="text-[0.58rem] border border-[rgba(255,255,255,0.15)] text-[#94a3b8] px-2.5 py-1 rounded-[var(--local-radius-sm)]">View on NPM</span>
3719
3722
  </div>
3720
3723
  <div className="flex gap-4 mt-3 pt-3 border-t border-[rgba(255,255,255,0.05)]">
3721
3724
  {(data.metrics ?? []).map((m, i) => (
@@ -3762,15 +3765,15 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3762
3765
  <div className="flex-1 px-3.5 py-3 flex flex-col gap-2.5 overflow-hidden">
3763
3766
  <div>
3764
3767
  <div className="font-mono text-[0.50rem] uppercase tracking-widest text-[#334155] mb-1">Title</div>
3765
- <div className="bg-[rgba(59,130,246,0.05)] border border-[rgba(59,130,246,0.45)] rounded px-2 py-1.5 font-mono text-[0.58rem] text-[#e2e8f0] truncate">{data.title}</div>
3768
+ <div className="bg-[rgba(59,130,246,0.05)] border border-[rgba(59,130,246,0.45)] rounded-[var(--local-radius-sm)] px-2 py-1.5 font-mono text-[0.58rem] text-[#e2e8f0] truncate">{data.title}</div>
3766
3769
  </div>
3767
3770
  <div>
3768
3771
  <div className="font-mono text-[0.50rem] uppercase tracking-widest text-[#334155] mb-1">Subtitle</div>
3769
- <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.titleHighlight}</div>
3772
+ <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded-[var(--local-radius-sm)] px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.titleHighlight}</div>
3770
3773
  </div>
3771
3774
  <div>
3772
3775
  <div className="font-mono text-[0.50rem] uppercase tracking-widest text-[#334155] mb-1">Badge</div>
3773
- <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.badge}</div>
3776
+ <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded-[var(--local-radius-sm)] px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.badge}</div>
3774
3777
  </div>
3775
3778
  </div>
3776
3779
  {/* Bottom bar */}
@@ -3778,8 +3781,8 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3778
3781
  <span className="w-1.5 h-1.5 rounded-full bg-[#22c55e]" />
3779
3782
  <span className="font-mono text-[0.50rem] text-[#475569]">All Changes Saved</span>
3780
3783
  <div className="ml-auto flex gap-1.5">
3781
- <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded border border-[rgba(59,130,246,0.3)] bg-[rgba(59,130,246,0.12)] text-[#60a5fa]">⬡ HTML</span>
3782
- <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded border border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.03)] text-[#94a3b8] opacity-50">{ } JSON</span>
3784
+ <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded-[var(--local-radius-sm)] border border-[rgba(59,130,246,0.3)] bg-[rgba(59,130,246,0.12)] text-[#60a5fa]">⬡ HTML</span>
3785
+ <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded-[var(--local-radius-sm)] border border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.03)] text-[#94a3b8] opacity-50">{ } JSON</span>
3783
3786
  </div>
3784
3787
  </div>
3785
3788
  </div>
@@ -7308,13 +7311,14 @@ cat << 'END_OF_FILE_CONTENT' > "src/data/config/theme.json"
7308
7311
  "fontFamily": {
7309
7312
  "primary": "'Instrument Sans', system-ui, sans-serif",
7310
7313
  "mono": "'JetBrains Mono', monospace",
7311
- "display": "'Bricolage Grotesque', system-ui, sans-serif"
7314
+ "display": "'Bricolage Grotesque', system-ui, sans-serif",
7315
+ "display-2":"'Instrument Sans'"
7312
7316
  }
7313
7317
  },
7314
7318
  "borderRadius": {
7315
- "sm": "5px",
7316
- "md": "7px",
7317
- "lg": "8px"
7319
+ "sm": "4px",
7320
+ "md": "8px",
7321
+ "lg": "36px"
7318
7322
  }
7319
7323
  }
7320
7324
  }
@@ -7932,72 +7936,6 @@ cat << 'END_OF_FILE_CONTENT' > "src/data/pages/post.json"
7932
7936
  ]
7933
7937
  }
7934
7938
  END_OF_FILE_CONTENT
7935
- mkdir -p "src/data/pages/servizi"
7936
- echo "Creating src/data/pages/servizi/trattamento.json..."
7937
- cat << 'END_OF_FILE_CONTENT' > "src/data/pages/servizi/trattamento.json"
7938
- {
7939
- "id": "servizi-trattamento-page",
7940
- "slug": "servizi/trattamento",
7941
- "meta": {
7942
- "title": "Servizi - Trattamento",
7943
- "description": "Pagina nested di smoke test per verificare routing visitor/admin/preview."
7944
- },
7945
- "sections": [
7946
- {
7947
- "id": "hero-servizi-trattamento",
7948
- "type": "hero",
7949
- "data": {
7950
- "badge": "Smoke Test",
7951
- "title": "Trattamento",
7952
- "titleHighlight": "Pagina Nested",
7953
- "description": "Questa pagina verifica il supporto ai nested slug su filesystem e router.",
7954
- "ctas": [
7955
- {
7956
- "id": "cta-home",
7957
- "label": "Torna Home",
7958
- "href": "/",
7959
- "variant": "primary"
7960
- }
7961
- ]
7962
- },
7963
- "settings": {}
7964
- }
7965
- ]
7966
- }
7967
-
7968
- END_OF_FILE_CONTENT
7969
- echo "Creating src/data/pages/servizi_trattamento.json..."
7970
- cat << 'END_OF_FILE_CONTENT' > "src/data/pages/servizi_trattamento.json"
7971
- {
7972
- "id": "servizi-trattamento-page",
7973
- "slug": "servizi/trattamento",
7974
- "meta": {
7975
- "title": "Servizi - Trattamento",
7976
- "description": "Pagina nested di smoke test per verificare routing visitor/admin/preview."
7977
- },
7978
- "sections": [
7979
- {
7980
- "id": "hero-servizi-trattamento",
7981
- "type": "hero",
7982
- "data": {
7983
- "badge": "Smoke Test",
7984
- "title": "Trattamentos",
7985
- "titleHighlight": "Pagina Nested",
7986
- "description": "Questa pagina verifica il supporto ai nested slug su filesystem e router.",
7987
- "ctas": [
7988
- {
7989
- "id": "cta-home",
7990
- "label": "Torna Home",
7991
- "href": "/",
7992
- "variant": "primary"
7993
- }
7994
- ]
7995
- },
7996
- "settings": {}
7997
- }
7998
- ]
7999
- }
8000
- END_OF_FILE_CONTENT
8001
7939
  mkdir -p "src/emails"
8002
7940
  echo "Creating src/emails/LeadNotificationEmail.tsx..."
8003
7941
  cat << 'END_OF_FILE_CONTENT' > "src/emails/LeadNotificationEmail.tsx"
@@ -8311,7 +8249,7 @@ export default LeadSenderConfirmationEmail;
8311
8249
  END_OF_FILE_CONTENT
8312
8250
  echo "Creating src/fonts.css..."
8313
8251
  cat << 'END_OF_FILE_CONTENT' > "src/fonts.css"
8314
- @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,700;12..96,800&family=JetBrains+Mono:wght@400;500;600;700&family=Instrument+Sans:wght@400;500;600&display=swap');
8252
+ @import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Playfair+Display:wght@700;800;900&display=swap');
8315
8253
 
8316
8254
  END_OF_FILE_CONTENT
8317
8255
  mkdir -p "src/hooks"
@@ -8376,14 +8314,13 @@ cat << 'END_OF_FILE_CONTENT' > "src/index.css"
8376
8314
  --font-primary: var(--theme-font-primary);
8377
8315
  --font-mono: var(--theme-font-mono);
8378
8316
 
8379
- /*
8380
- 🔧 DISPLAY FONT — Forward-compatible workaround
8381
- theme-manager.ts does NOT inject --theme-font-display (Skeleton v2.7 gap).
8382
- The var() falls through to the hardcoded fallback today.
8383
- When Skeleton v2.8 wires display into theme-manager, the var() will resolve
8384
- automatically and the fallback becomes dead code.
8317
+ /*
8318
+ DISPLAY FONT bridge
8319
+ The core now emits --theme-font-display from theme.json, so this keeps
8320
+ the tenant on the stable semantic alias rather than depending on the
8321
+ flattened internal variable path.
8385
8322
  */
8386
- --font-display: var(--theme-font-display, 'Playfair Display', Georgia, serif);
8323
+ --font-display: var(--theme-font-display);
8387
8324
  }
8388
8325
 
8389
8326
  /*
@@ -8401,7 +8338,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/index.css"
8401
8338
  --muted: var(--theme-surface-alt);
8402
8339
  --muted-foreground: var(--theme-text-muted);
8403
8340
  --border: var(--theme-border);
8404
- --radius: 0.45rem;
8341
+ --radius: 3.45rem;
8405
8342
 
8406
8343
  /*
8407
8344
  🔧 ACCENT CHAIN — Forward-compatible workaround
@@ -596,7 +596,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
596
596
  "@tiptap/extension-link": "^2.11.5",
597
597
  "@tiptap/react": "^2.11.5",
598
598
  "@tiptap/starter-kit": "^2.11.5",
599
- "@olonjs/core": "^1.0.72",
599
+ "@olonjs/core": "^1.0.73",
600
600
  "clsx": "^2.1.1",
601
601
  "lucide-react": "^0.474.0",
602
602
  "react": "^19.0.0",
@@ -596,7 +596,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
596
596
  "@tiptap/extension-link": "^2.11.5",
597
597
  "@tiptap/react": "^2.11.5",
598
598
  "@tiptap/starter-kit": "^2.11.5",
599
- "@olonjs/core": "^1.0.72",
599
+ "@olonjs/core": "^1.0.73",
600
600
  "clsx": "^2.1.1",
601
601
  "lucide-react": "^0.474.0",
602
602
  "react": "^19.0.0",
@@ -3593,6 +3593,9 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3593
3593
  '--local-cyan': 'var(--color-secondary, #22d3ee)',
3594
3594
  '--local-border': 'var(--border)',
3595
3595
  '--local-surface': 'var(--card)',
3596
+ '--local-radius-sm': 'var(--theme-radius-sm)',
3597
+ '--local-radius-md': 'var(--theme-radius-md)',
3598
+ '--local-radius-lg': 'var(--theme-radius-lg)',
3596
3599
  } as React.CSSProperties}
3597
3600
  className="jp-hero relative min-h-screen flex items-center overflow-hidden pt-24 pb-0 bg-[var(--local-bg)]"
3598
3601
  >
@@ -3651,7 +3654,7 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3651
3654
  data-jp-item-id={cta.id ?? `legacy-${idx}`}
3652
3655
  data-jp-item-field="ctas"
3653
3656
  className={cn(
3654
- 'inline-flex items-center gap-2 px-7 py-3 rounded-[7px] font-semibold text-[0.95rem] transition-all duration-200 no-underline',
3657
+ 'inline-flex items-center gap-2 px-7 py-3 rounded-[var(--local-radius-md)] font-semibold text-[0.95rem] transition-all duration-200 no-underline',
3655
3658
  cta.variant === 'primary'
3656
3659
  ? 'bg-[var(--local-primary)] text-white hover:brightness-110 hover:-translate-y-0.5 shadow-[0_0_24px_rgba(59,130,246,0.25)]'
3657
3660
  : 'bg-transparent text-[var(--local-text)] border border-[rgba(255,255,255,0.12)] hover:border-[rgba(255,255,255,0.3)] hover:bg-[rgba(255,255,255,0.04)]'
@@ -3684,13 +3687,13 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3684
3687
  </div>
3685
3688
 
3686
3689
  {/* RIGHT — ICE mini-mockup */}
3687
- <div className="jp-animate-in jp-d2 rounded-[12px] overflow-hidden border border-[rgba(255,255,255,0.10)] shadow-[0_0_0_1px_rgba(255,255,255,0.04),0_40px_80px_rgba(0,0,0,0.6),0_0_60px_rgba(59,130,246,0.08)]">
3690
+ <div className="jp-animate-in jp-d2 rounded-[var(--local-radius-lg)] overflow-hidden border border-[rgba(255,255,255,0.10)] shadow-[0_0_0_1px_rgba(255,255,255,0.04),0_40px_80px_rgba(0,0,0,0.6),0_0_60px_rgba(59,130,246,0.08)]">
3688
3691
  {/* Browser bar */}
3689
3692
  <div className="bg-[#0f1923] px-3 py-2.5 flex items-center gap-1.5 border-b border-[rgba(255,255,255,0.05)]">
3690
3693
  <span className="w-2.5 h-2.5 rounded-full bg-[#ef4444]" />
3691
3694
  <span className="w-2.5 h-2.5 rounded-full bg-[#f59e0b]" />
3692
3695
  <span className="w-2.5 h-2.5 rounded-full bg-[#22c55e]" />
3693
- <span className="mx-auto font-mono text-[0.60rem] text-[rgba(255,255,255,0.20)] bg-[rgba(255,255,255,0.04)] px-3 py-0.5 rounded">localhost:5173 · Studio</span>
3696
+ <span className="mx-auto font-mono text-[0.60rem] text-[rgba(255,255,255,0.20)] bg-[rgba(255,255,255,0.04)] px-3 py-0.5 rounded-[var(--local-radius-sm)]">localhost:5173 · Studio</span>
3694
3697
  </div>
3695
3698
  {/* Split: canvas + inspector */}
3696
3699
  <div className="grid grid-cols-[1fr_260px] h-[360px] bg-[#060d1b]">
@@ -3714,8 +3717,8 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3714
3717
  {data.description?.slice(0, 100)}…
3715
3718
  </p>
3716
3719
  <div className="flex gap-1.5">
3717
- <span className="text-[0.58rem] font-semibold bg-[#3b82f6] text-white px-2.5 py-1 rounded">Read the Docs</span>
3718
- <span className="text-[0.58rem] border border-[rgba(255,255,255,0.15)] text-[#94a3b8] px-2.5 py-1 rounded">View on NPM</span>
3720
+ <span className="text-[0.58rem] font-semibold bg-[#3b82f6] text-white px-2.5 py-1 rounded-[var(--local-radius-sm)]">Read the Docs</span>
3721
+ <span className="text-[0.58rem] border border-[rgba(255,255,255,0.15)] text-[#94a3b8] px-2.5 py-1 rounded-[var(--local-radius-sm)]">View on NPM</span>
3719
3722
  </div>
3720
3723
  <div className="flex gap-4 mt-3 pt-3 border-t border-[rgba(255,255,255,0.05)]">
3721
3724
  {(data.metrics ?? []).map((m, i) => (
@@ -3762,15 +3765,15 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3762
3765
  <div className="flex-1 px-3.5 py-3 flex flex-col gap-2.5 overflow-hidden">
3763
3766
  <div>
3764
3767
  <div className="font-mono text-[0.50rem] uppercase tracking-widest text-[#334155] mb-1">Title</div>
3765
- <div className="bg-[rgba(59,130,246,0.05)] border border-[rgba(59,130,246,0.45)] rounded px-2 py-1.5 font-mono text-[0.58rem] text-[#e2e8f0] truncate">{data.title}</div>
3768
+ <div className="bg-[rgba(59,130,246,0.05)] border border-[rgba(59,130,246,0.45)] rounded-[var(--local-radius-sm)] px-2 py-1.5 font-mono text-[0.58rem] text-[#e2e8f0] truncate">{data.title}</div>
3766
3769
  </div>
3767
3770
  <div>
3768
3771
  <div className="font-mono text-[0.50rem] uppercase tracking-widest text-[#334155] mb-1">Subtitle</div>
3769
- <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.titleHighlight}</div>
3772
+ <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded-[var(--local-radius-sm)] px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.titleHighlight}</div>
3770
3773
  </div>
3771
3774
  <div>
3772
3775
  <div className="font-mono text-[0.50rem] uppercase tracking-widest text-[#334155] mb-1">Badge</div>
3773
- <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.badge}</div>
3776
+ <div className="bg-[rgba(255,255,255,0.03)] border border-[rgba(255,255,255,0.07)] rounded-[var(--local-radius-sm)] px-2 py-1.5 font-mono text-[0.58rem] text-[#94a3b8] truncate">{data.badge}</div>
3774
3777
  </div>
3775
3778
  </div>
3776
3779
  {/* Bottom bar */}
@@ -3778,8 +3781,8 @@ export const Hero: React.FC<{ data: HeroData; settings?: HeroSettings }> = ({ da
3778
3781
  <span className="w-1.5 h-1.5 rounded-full bg-[#22c55e]" />
3779
3782
  <span className="font-mono text-[0.50rem] text-[#475569]">All Changes Saved</span>
3780
3783
  <div className="ml-auto flex gap-1.5">
3781
- <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded border border-[rgba(59,130,246,0.3)] bg-[rgba(59,130,246,0.12)] text-[#60a5fa]">⬡ HTML</span>
3782
- <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded border border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.03)] text-[#94a3b8] opacity-50">{ } JSON</span>
3784
+ <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded-[var(--local-radius-sm)] border border-[rgba(59,130,246,0.3)] bg-[rgba(59,130,246,0.12)] text-[#60a5fa]">⬡ HTML</span>
3785
+ <span className="font-mono text-[0.48rem] px-1.5 py-0.5 rounded-[var(--local-radius-sm)] border border-[rgba(255,255,255,0.08)] bg-[rgba(255,255,255,0.03)] text-[#94a3b8] opacity-50">{ } JSON</span>
3783
3786
  </div>
3784
3787
  </div>
3785
3788
  </div>
@@ -7308,13 +7311,14 @@ cat << 'END_OF_FILE_CONTENT' > "src/data/config/theme.json"
7308
7311
  "fontFamily": {
7309
7312
  "primary": "'Instrument Sans', system-ui, sans-serif",
7310
7313
  "mono": "'JetBrains Mono', monospace",
7311
- "display": "'Bricolage Grotesque', system-ui, sans-serif"
7314
+ "display": "'Bricolage Grotesque', system-ui, sans-serif",
7315
+ "display-2":"'Instrument Sans'"
7312
7316
  }
7313
7317
  },
7314
7318
  "borderRadius": {
7315
- "sm": "5px",
7316
- "md": "7px",
7317
- "lg": "8px"
7319
+ "sm": "4px",
7320
+ "md": "8px",
7321
+ "lg": "36px"
7318
7322
  }
7319
7323
  }
7320
7324
  }
@@ -7932,72 +7936,6 @@ cat << 'END_OF_FILE_CONTENT' > "src/data/pages/post.json"
7932
7936
  ]
7933
7937
  }
7934
7938
  END_OF_FILE_CONTENT
7935
- mkdir -p "src/data/pages/servizi"
7936
- echo "Creating src/data/pages/servizi/trattamento.json..."
7937
- cat << 'END_OF_FILE_CONTENT' > "src/data/pages/servizi/trattamento.json"
7938
- {
7939
- "id": "servizi-trattamento-page",
7940
- "slug": "servizi/trattamento",
7941
- "meta": {
7942
- "title": "Servizi - Trattamento",
7943
- "description": "Pagina nested di smoke test per verificare routing visitor/admin/preview."
7944
- },
7945
- "sections": [
7946
- {
7947
- "id": "hero-servizi-trattamento",
7948
- "type": "hero",
7949
- "data": {
7950
- "badge": "Smoke Test",
7951
- "title": "Trattamento",
7952
- "titleHighlight": "Pagina Nested",
7953
- "description": "Questa pagina verifica il supporto ai nested slug su filesystem e router.",
7954
- "ctas": [
7955
- {
7956
- "id": "cta-home",
7957
- "label": "Torna Home",
7958
- "href": "/",
7959
- "variant": "primary"
7960
- }
7961
- ]
7962
- },
7963
- "settings": {}
7964
- }
7965
- ]
7966
- }
7967
-
7968
- END_OF_FILE_CONTENT
7969
- echo "Creating src/data/pages/servizi_trattamento.json..."
7970
- cat << 'END_OF_FILE_CONTENT' > "src/data/pages/servizi_trattamento.json"
7971
- {
7972
- "id": "servizi-trattamento-page",
7973
- "slug": "servizi/trattamento",
7974
- "meta": {
7975
- "title": "Servizi - Trattamento",
7976
- "description": "Pagina nested di smoke test per verificare routing visitor/admin/preview."
7977
- },
7978
- "sections": [
7979
- {
7980
- "id": "hero-servizi-trattamento",
7981
- "type": "hero",
7982
- "data": {
7983
- "badge": "Smoke Test",
7984
- "title": "Trattamentos",
7985
- "titleHighlight": "Pagina Nested",
7986
- "description": "Questa pagina verifica il supporto ai nested slug su filesystem e router.",
7987
- "ctas": [
7988
- {
7989
- "id": "cta-home",
7990
- "label": "Torna Home",
7991
- "href": "/",
7992
- "variant": "primary"
7993
- }
7994
- ]
7995
- },
7996
- "settings": {}
7997
- }
7998
- ]
7999
- }
8000
- END_OF_FILE_CONTENT
8001
7939
  mkdir -p "src/emails"
8002
7940
  echo "Creating src/emails/LeadNotificationEmail.tsx..."
8003
7941
  cat << 'END_OF_FILE_CONTENT' > "src/emails/LeadNotificationEmail.tsx"
@@ -8311,7 +8249,7 @@ export default LeadSenderConfirmationEmail;
8311
8249
  END_OF_FILE_CONTENT
8312
8250
  echo "Creating src/fonts.css..."
8313
8251
  cat << 'END_OF_FILE_CONTENT' > "src/fonts.css"
8314
- @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,700;12..96,800&family=JetBrains+Mono:wght@400;500;600;700&family=Instrument+Sans:wght@400;500;600&display=swap');
8252
+ @import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Playfair+Display:wght@700;800;900&display=swap');
8315
8253
 
8316
8254
  END_OF_FILE_CONTENT
8317
8255
  mkdir -p "src/hooks"
@@ -8376,14 +8314,13 @@ cat << 'END_OF_FILE_CONTENT' > "src/index.css"
8376
8314
  --font-primary: var(--theme-font-primary);
8377
8315
  --font-mono: var(--theme-font-mono);
8378
8316
 
8379
- /*
8380
- 🔧 DISPLAY FONT — Forward-compatible workaround
8381
- theme-manager.ts does NOT inject --theme-font-display (Skeleton v2.7 gap).
8382
- The var() falls through to the hardcoded fallback today.
8383
- When Skeleton v2.8 wires display into theme-manager, the var() will resolve
8384
- automatically and the fallback becomes dead code.
8317
+ /*
8318
+ DISPLAY FONT bridge
8319
+ The core now emits --theme-font-display from theme.json, so this keeps
8320
+ the tenant on the stable semantic alias rather than depending on the
8321
+ flattened internal variable path.
8385
8322
  */
8386
- --font-display: var(--theme-font-display, 'Playfair Display', Georgia, serif);
8323
+ --font-display: var(--theme-font-display);
8387
8324
  }
8388
8325
 
8389
8326
  /*
@@ -8401,7 +8338,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/index.css"
8401
8338
  --muted: var(--theme-surface-alt);
8402
8339
  --muted-foreground: var(--theme-text-muted);
8403
8340
  --border: var(--theme-border);
8404
- --radius: 0.45rem;
8341
+ --radius: 3.45rem;
8405
8342
 
8406
8343
  /*
8407
8344
  🔧 ACCENT CHAIN — Forward-compatible workaround
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olonjs/cli",
3
- "version": "3.0.84",
3
+ "version": "3.0.85",
4
4
  "description": "The Sovereign CLI Engine for OlonJS.",
5
5
  "type": "module",
6
6
  "bin": {