docs: define dashboard time presentation
This commit is contained in:
13
DESIGN.md
13
DESIGN.md
@@ -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.
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user