Open Bug 2062013 Opened 1 month ago Updated 1 month ago

Implement availability 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 availability 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 availability selector provides Default, Busy, and Free options. Any additional existing Thunderbird availability values require product confirmation before they are exposed.

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

  • Availability 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 availability-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.

  • Availability 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:

  • Availability 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.