docs: define dashboard time presentation

This commit is contained in:
2026-08-20 13:15:10 +03:30
parent 6d3cfc7290
commit 003d8e4cc2
2 changed files with 7 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
# Design System — ZarinPal Merchant Analytics # Design System — ZarinPal Merchant Analytics
- Status: Draft baseline for approval - Status: Draft baseline for approval
- Version: 0.1.0 - Version: 0.1.1
- Last updated: 2026-08-20 - Last updated: 2026-08-20
- Direction: Persian-first RTL - Direction: Persian-first RTL
@@ -124,7 +124,7 @@ Navigation labels should describe merchant tasks, not internal database concepts
- Root UI is `lang="fa" dir="rtl"`. - Root UI is `lang="fa" dir="rtl"`.
- Technical identifiers, URLs, hashes, and mixed Latin values use isolated LTR spans (`dir="ltr"`) to prevent bidi corruption. - Technical identifiers, URLs, hashes, and mixed Latin values use isolated LTR spans (`dir="ltr"`) to prevent bidi corruption.
- Use `Intl.NumberFormat`/`Intl.DateTimeFormat`; specifications must choose Persian vs Latin digits, Jalali vs Gregorian display, timezone, and Rial/Toman terminology before implementation. - Use `Intl.NumberFormat`/`Intl.DateTimeFormat`. Display merchant-facing dates in the Jalali calendar and `Asia/Tehran`; API instants remain ISO-8601 UTC. Specifications must still choose Persian vs Latin digits and Rial/Toman terminology before implementation.
- Do not concatenate translated fragments. Write complete Persian strings with correct نیم‌فاصله. - Do not concatenate translated fragments. Write complete Persian strings with correct نیم‌فاصله.
- Authentication errors must not reveal whether a username exists. - Authentication errors must not reveal whether a username exists.
@@ -142,6 +142,7 @@ Navigation labels should describe merchant tasks, not internal database concepts
| Version | Date | Decision | | Version | Date | Decision |
|---|---|---| |---|---|---|
| 0.1.1 | 2026-08-20 | Fixed merchant-facing time presentation to the Jalali calendar in `Asia/Tehran`, with explicit UTC API instants. |
| 0.1.0 | 2026-08-20 | Established ZarinPal-inspired RTL foundation from supplied public/panel screenshots; fixed SvelteKit/Svelte/TypeScript/Tailwind stack; defined responsive shell, core components, accessibility, chart, and motion rules. | | 0.1.0 | 2026-08-20 | Established ZarinPal-inspired RTL foundation from supplied public/panel screenshots; fixed SvelteKit/Svelte/TypeScript/Tailwind stack; defined responsive shell, core components, accessibility, chart, and motion rules. |
Any material token/component/interaction change increments this version and adds a row describing why it changed. A surprising or difficult-to-reverse change also receives an ADR. Any material token/component/interaction change increments this version and adds a row describing why it changed. A surprising or difficult-to-reverse change also receives an ADR.
@@ -150,8 +151,6 @@ Any material token/component/interaction change increments this version and adds
1. Licensed Yekan-family assets vs open `Vazirmatn` fallback. 1. Licensed Yekan-family assets vs open `Vazirmatn` fallback.
2. Persian or Latin digits for dashboard values. 2. Persian or Latin digits for dashboard values.
3. Jalali display with Gregorian API values, and the authoritative reporting timezone. 3. Rial-only vs Toman display and conversion wording.
4. Rial-only vs Toman display and conversion wording. 4. Exact information architecture and MVP metric set after the analytics spec.
5. Exact information architecture and MVP metric set after the analytics spec. 5. Whether a dark theme is required; it is not assumed merely because the public site uses dark feature sections.
6. Whether a dark theme is required; it is not assumed merely because the public site uses dark feature sections.

View File

@@ -24,6 +24,7 @@ Give a non-technical merchant a fast, trustworthy Persian RTL view of payment pe
6. Filters and pagination are reflected in the URL where sharing/reload is useful. 6. Filters and pagination are reflected in the URL where sharing/reload is useful.
7. Every screen implements loading, empty, partial-data, stale, unauthorized, forbidden, and recoverable-error behavior as applicable. 7. Every screen implements loading, empty, partial-data, stale, unauthorized, forbidden, and recoverable-error behavior as applicable.
8. Responsive behavior and component contracts follow `DESIGN.md`. 8. Responsive behavior and component contracts follow `DESIGN.md`.
9. Merchant-facing dates use the Jalali calendar in `Asia/Tehran`; API instants remain explicit ISO-8601 UTC and filtering sends unambiguous boundaries.
## Frontend architecture baseline ## Frontend architecture baseline
@@ -51,4 +52,3 @@ Give a non-technical merchant a fast, trustworthy Persian RTL view of payment pe
- OpenAPI/interface contract and error format - OpenAPI/interface contract and error format
- Decisions listed in `DESIGN.md` - Decisions listed in `DESIGN.md`
- Static adapter fallback/routing behavior under the final Nginx configuration - Static adapter fallback/routing behavior under the final Nginx configuration