feat(5.16+5.17): tipografie/antet branded + tipuri cont, planuri si enforcement
PRD 5.16 — propagare design finalizata (system font stack, fara IBM Plex self-hostat): - US-001/002/008: tokeni --font-ui/--font-mono (system stack) + scala --fs-*; zero @font-face si zero /static/fonts/; landing aliniat la acelasi stack - US-003: RAR online = dot compact in antet + meniu burger; banda rosie DOAR pe blocat (invariant zero-silent-failures pastrat) - US-010: antet "ROMFAST AUTOPASS" + nume service + /login brandeit 2 coloane + badge plan; meniu burger cu separatoare; gate strict pe is_authenticated - US-011: selector tema pill icon+eticheta (reuse THEMES) - US-004/005/006/007: bug-fix editor prestatii (picker cod+denumire, add_extra in mod operatii, cod ales se salveaza fara "+", Renunta inchide via closest) - US-012/013: landing Autentificare->/login; wizard import colapsat + 4 pasi pe tokeni - fix VERIFY E2E: contoare duplicate pe 390px (inline display:flex batea @media) -> CSS + test-lock PRD 5.17 — tipuri de cont + trial Pro 30z + enforcement DUR: - US-001/002/008: accounts.tier + trial_until (migrare aditiva defensiva); app/plans.py sursa unica (PLANS, FREE_MONTHLY_LIMIT=60, effective_tier(now injectabil), monthly_usage, CONSUMED_STATUSES); create_account trial Pro 30z; CLI set-tier (protejat id=1, audit) - US-003/004/005: enforce volum 60/luna INAINTE de build_key pe ambele canale (PLAN_LIMITA_LUNARA, 3 niveluri + log_event); gate API Pro+ (PLAN_FARA_API 403 actionabil); valideaza/nomenclator raman permise; downgrade lazy; flag AUTOPASS_ENFORCE_PLANS (kill-switch) - US-006: badge plan antet + linie burger + consum N/60 + warn>=80% + 6 stari + copy RO pluralizat + banner one-time trial->Gratuit + pagina Cont Regresie: 1380 passed, 0 failed, 1 deselected (live). E2E browser pe 390/1280 confirmat. Backend trimitere (worker/masina stari/idempotenta/contract RAR) NEATINS. Lucrul 5.18 (corpus kNN) ramane separat, necomis. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -52,15 +52,15 @@
|
||||
role="region" aria-label="Zona de incarcare fisier"
|
||||
style="display:flex; align-items:center; gap:14px; flex-wrap:wrap;
|
||||
padding:12px 16px; text-align:left;">
|
||||
<strong style="font-size:14px;">Importa:</strong>
|
||||
<strong style="font-size:var(--fs-md);">Importa:</strong>
|
||||
<input id="file-input" type="file" name="file" accept=".xlsx,.xls,.csv"
|
||||
style="display:none;" aria-label="Selecteaza fisier xlsx sau csv">
|
||||
<button type="button" id="upload-btn"
|
||||
style="min-height:44px; padding:10px 20px; font-size:14px;">
|
||||
style="min-height:44px; padding:10px 20px; font-size:var(--fs-md);">
|
||||
Alege fisier (xlsx/csv)
|
||||
</button>
|
||||
<span class="muted" style="font-size:13px;">sau trage aici</span>
|
||||
<span class="muted" style="font-size:12px; margin-left:auto;">
|
||||
<span class="muted" style="font-size:var(--fs-sm);">sau trage aici</span>
|
||||
<span class="muted" style="font-size:var(--fs-xs); margin-left:auto;">
|
||||
NU se trimite nimic la RAR pana confirmi.
|
||||
</span>
|
||||
</div>
|
||||
@@ -69,10 +69,10 @@
|
||||
<div class="drop-zone" id="drop-zone"
|
||||
role="region" aria-label="Zona de incarcare fisier">
|
||||
{% if not sheets %}
|
||||
<p style="font-size:17px; margin:0 0 4px; font-weight:600;">Primul fisier? Trage-l aici.</p>
|
||||
<p class="muted" style="margin:0 0 16px; font-size:13px;">xlsx sau csv, max 5000 randuri</p>
|
||||
<p style="font-size:var(--fs-lg); margin:0 0 4px; font-weight:600;">Primul fisier? Trage-l aici.</p>
|
||||
<p class="muted" style="margin:0 0 16px; font-size:var(--fs-sm);">xlsx sau csv, max 5000 randuri</p>
|
||||
{% else %}
|
||||
<p class="muted" style="margin:0 0 16px; font-size:14px;">
|
||||
<p class="muted" style="margin:0 0 16px; font-size:var(--fs-md);">
|
||||
Incarca fisierul din nou dupa ce ai ales foaia.
|
||||
</p>
|
||||
{% endif %}
|
||||
@@ -80,18 +80,18 @@
|
||||
<input id="file-input" type="file" name="file" accept=".xlsx,.xls,.csv"
|
||||
style="display:none;" aria-label="Selecteaza fisier xlsx sau csv">
|
||||
<button type="button" id="upload-btn"
|
||||
style="min-height:44px; padding:10px 24px; font-size:14px;">
|
||||
style="min-height:44px; padding:10px 24px; font-size:var(--fs-md);">
|
||||
Alege fisier (xlsx/csv)
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<p class="muted" style="margin:8px 0 0; font-size:12px;">
|
||||
<p class="muted" style="margin:8px 0 0; font-size:var(--fs-xs);">
|
||||
NU se trimite nimic la RAR pana confirmi explicit.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<span id="upload-spinner" class="htmx-indicator muted"
|
||||
style="font-size:13px; margin-top:6px; display:inline;">
|
||||
style="font-size:var(--fs-sm); margin-top:6px; display:inline;">
|
||||
se parseaza fisierul...
|
||||
</span>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user