Release Calendar Tools 0.1.0
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# Accessibility
|
||||
|
||||
The workbench uses semantic landmarks, headings and labelled native controls, supports keyboard operation, visible focus, reduced-width layouts, and system/light/dark themes through the Toolbox shell. Results do not rely on colour alone.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Architecture
|
||||
|
||||
Calendar Tools is a static React/Vite application wrapped in the shared Toolbox shell. `calendar/model.ts` places strict preflight bounds around the pinned `ical.js` parser, projects events and timezone definitions into inert inspection records, expands recurrence under explicit limits, and implements deterministic merge and repair operations.
|
||||
|
||||
UID plus RECURRENCE-ID is the merge identity. Higher SEQUENCE wins; equal sequences use lexically later DTSTAMP. VTIMEZONE definitions are retained once per TZID. Conflict diagnostics operate on the bounded occurrence preview, not on an unbounded calendar.
|
||||
|
||||
Embedded VTIMEZONE definitions are interpreted by `ical.js`. A TZID without an embedded definition is resolved through the browser's IANA data when available and is diagnosed as such. Floating times remain floating for display; conflict comparison assigns a UTC-shaped inspection coordinate and must not be treated as a scheduling conversion. Version 0.1 is synchronous, has no persistence or server API, and uses relative assets for nested portal paths.
|
||||
@@ -0,0 +1,7 @@
|
||||
# Privacy and security
|
||||
|
||||
Calendar source, parsed events, merge inputs and diagnostic output stay in page memory. There is no telemetry, analytics, account, persistence or runtime network path. Imported summaries, descriptions, locations, UIDs and organizer values are rendered as text, never executable markup.
|
||||
|
||||
Files and pasted sources are rejected above 4 MiB; the preflight also caps physical lines, components and events. Recurrence has both per-series and time-horizon bounds and the conflict list is capped. These limits reduce accidental resource exhaustion but do not validate meeting claims or attendee identities.
|
||||
|
||||
Repair intentionally normalizes only transport structure and required calendar metadata; it does not invent DTSTART, UID, timezone law or recurrence. Merge can discard an older component with the same identity, so its selection rule and count remain visible. Browser timezone data varies by runtime version; DST results are diagnostics, not a legal source of civil-time truth.
|
||||
Reference in New Issue
Block a user