Open Bug 2062015 Opened 1 month ago Updated 1 month ago

Implement privacy selector UI

Categories

(Calendar :: Calendar Frontend, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: arschmitz, Unassigned)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

(Whiteboard: [calendar-ui-create-edit])

Summary:

Implement the sticky-footer privacy selector as a draft-only control.

Links:

  • Zeplin sticky footer/availability/privacy annotations: https://app.zeplin.io/project/66dd0f2b2fe8f1b63cda36f1/screen/6a0f2f285393a283202254bc

  • Interaction guide: Create > Availability/privacy: https://docs.google.com/document/d/15OpMthOHmBGyPpDBNRW8vp6uCxeoitBp8n7Fti3LD10/edit?tab=t.why4m6lqup0#heading=h.5fg39gqf1jkr

  • Planning: Select Menu - Suggested Implementation Slices

  • Planning: Questions - Q16 Additional Availability And Privacy Values
    Acceptance criteria:

  • The privacy selector provides Default, Public, and Private options. Any additional existing Thunderbird privacy values require product confirmation before they are exposed.

  • The selector renders the current session’s plain privacy draft through stable storeObserver selections. Do not use getters that pull state from the store.

  • Privacy state is a plain enum value only; it contains no calIEvent, calendar object, preference value, DOM node, or open-popup state.

  • Selecting an option dispatches one narrow privacy-section patch and changes draft state only.

  • Popup visibility, active option, keyboard navigation, and focus restoration remain local selector state.

  • A route/session replacement closes stale popup interaction and prevents an obsolete selection event from patching the newer draft.

  • The selector uses the sticky footer’s established layout and does not grow, resize, or re-anchor the dialog or call PositionedDialog.

  • Privacy loading, create defaults, and event-property persistence remain outside this story and belong to Bug 2062016.

  • Add focused tests for the allowed options, draft-only selection patches, inaccessible-until-confirmed additional values, keyboard and accessible naming behavior, stale-session protection, footer layout integration, and axe coverage where supported.

Out of scope:

  • Privacy loading, default selection, preference reads or writes, calendar-property conversion, Save-time persistence, a generic dropdown service, and direct calendar mutation.
Blocks: 2062016
You need to log in before you can comment on or make changes to this bug.