diff --git a/docs/development/ui-patterns.md b/docs/development/ui-patterns.md index c0d4dd3..562fc1a 100644 --- a/docs/development/ui-patterns.md +++ b/docs/development/ui-patterns.md @@ -98,6 +98,11 @@ timestamps without an offset are UTC; never parse them as browser-local time. Receipt freshness uses the browser clock and shows Paused or a retry reason when updates are unavailable. These clocks are not live regions. +Provisioning detail pages show absolute start and finish times once in the +summary. Use `OperationTime` for their steps, checks and activity: offsets from +the operation start (`+m:ss` or `+h:mm:ss`), with negative offsets for earlier +evidence. Missing timestamps stay **Not recorded**. + Use `plural` or `countLabel` from `src/lib/ui/plural.ts` for count-dependent language, including verbs: `plural(count, 'needs', 'need')`. The helper uses `Intl.PluralRules`; supply irregular plural forms explicitly. Keep separators diff --git a/src/lib/ui/components/OperationTime.svelte b/src/lib/ui/components/OperationTime.svelte new file mode 100644 index 0000000..f1c9840 --- /dev/null +++ b/src/lib/ui/components/OperationTime.svelte @@ -0,0 +1,16 @@ + + +{#if iso}{:else}{missing}{/if} + + diff --git a/src/lib/ui/components/ProvisioningActivity.svelte b/src/lib/ui/components/ProvisioningActivity.svelte index 16358e2..2e40bdc 100644 --- a/src/lib/ui/components/ProvisioningActivity.svelte +++ b/src/lib/ui/components/ProvisioningActivity.svelte @@ -1,5 +1,5 @@