@extends('layouts.app') @section('title', 'Nameplates – Setting') @push('styles') @foreach(($installedFonts ?? []) as $font) @if($font->source === 'google') @endif @endforeach @endpush @section('content')

← Setting

Nameplates

Google Fonts API key and the typefaces shown in the studio, plus Generate AI. This does not change Product AI Import.

@if(session('success'))

{{ session('success') }}

@endif @if(session('error'))

{{ session('error') }}

@endif
@csrf

1. Google Fonts API

Paste the Web Fonts Developer API key from Google Cloud. The studio only shows typefaces you add below. Leave blank to keep the current key.

@if(!empty($hasFontsKey)) Current key: {{ $maskedFontsKey }}. Leave blank to keep it. @endif @error('google_fonts_api_key') {{ $message }} @enderror

2. Jewelry image AI

Default Generate option in the studio. You can still switch per render: OpenAI only, Google only, or Atelier (Google then OpenAI). OpenAI uses OPENAI_API_KEY. Google uses GOOGLE_AI_API_KEY.

@php $providerNow = old('image_provider', $settings->provider()); @endphp
Default Generate AI
@error('image_provider') {{ $message }} @enderror
@error('render_prompt') {{ $message }} @enderror Only for the Nameplate / Stacked 2-layer template. Halo Generate never uses this. 1-layer uses its own built-in prompt. This is the only prompt Google/OpenAI receive for that 2-layer design pass. Nothing else is appended.
@error('openai_refine_prompt') {{ $message }} @enderror 2-layer Atelier only. Halo has its own refine prompt below. OpenAI receives Google’s image (not the studio preview) and uses this prompt 100%.
@error('halo_render_prompt') {{ $message }} @enderror Only when the Halo template is selected in Studio. Does not change 2-layer or 1-layer. CAD supplies the silhouette; this text is the stone setting (emerald/baguette flower on rose fill, round pave on the white border and white letter counters).
@error('halo_openai_refine_prompt') {{ $message }} @enderror Halo Atelier only. Does not run on Nameplate 2-layer or 1-layer.
@csrf
@csrf
@csrf
@csrf

3. Typefaces

These are the letters the Nameplates studio can use. Add from Google Fonts or upload a .ttf / .otf. For uploads, pick a Category — we also retag known families automatically. Remove any you do not want. The studio never shows the full Google catalog — only this list.

@forelse($installedFonts ?? [] as $font)
source !== 'google') data-file-url="{{ route('nameplates.fonts.file', $font) }}" @endif>

Love

{{ $font->family }}

{{ $font->categoryLabel() }}@if($font->designer) · {{ $font->designer }}@endif

@if($font->is_default) Default @else @endif
@empty

No typefaces installed yet. Save the API key, then install the jewelry set or search below.

@endforelse

Add from Google Fonts

4. Jewelry charms

Silhouette icons the Nameplates studio can weld next to a name. Install the jewelry set, add more from the catalog, or upload an SVG with one closed path. The studio only shows charms on this list — not the full catalog.

@forelse($installedIcons ?? [] as $icon)

{{ $icon->name }}

{{ $icon->categoryLabel() }}

@if($icon->is_default) Default @else @endif
@empty

No charms installed yet. Install the jewelry set or add from the catalog below.

@endforelse

Add from the jewelry catalog

@include('setting.partials.section-styles') @push('scripts') @endpush @php $wiz = $wizardSettings ?? \App\Models\NameplateWizardSetting::get(); @endphp
@csrf

Quick Wizard (Phase 2)

Private SMS/email design invitations, the fixed public link tools.avijewels.info/nameplate-wizard, three commercial sizes, and the same installed Nameplates fonts used by New Design / Studio. Does not change New Design, Studio, AI prompts, icons, or exports.

Leave unchecked to allow unlimited generates. If checked, the number below is the maximum per client link/session.
Not editable in Phase 1. Always https://tools.avijewels.info/nameplate-wizard.
Placeholders: {link} {expires}. Keep {link} on its own last line. The studio sends the text first, then the link as its own message so iPhone can show a preview card.
Same as SMS: keep {link} on its own last line so WhatsApp / iMessage unfurl a branded preview card.

Wizard sizes (exactly 3)

Defaults appear immediately after deploy (Petite $450, Classic $650, Statement $950). Editable anytime — customers choose exactly one.

@php $sizes = old('wizard_sizes', $wiz->normalizedSizes()); @endphp @foreach($sizes as $i => $size)

Size {{ $i + 1 }}

@endforeach

Wizard fonts

Uses the same installed Studio typefaces (family and category). All installed fonts are included by default — uncheck only to hide from the customer Wizard. Does not duplicate or change Studio files.

@forelse(($installedFonts ?? []) as $font) @php $metaBits = array_filter([$font->categoryLabel()]); @endphp @empty

Install typefaces in the Typefaces section above — they appear in the Wizard automatically.

@endforelse
@endsection