Skip to content

[scheduler] Make the event dialog General-tab building blocks public - #23398

Draft
rita-codes wants to merge 7 commits into
mui:masterfrom
rita-codes:22871-scheduler-edit-dialog-general-tab-slot-for-composing-sections-built-in-custom-phase-2
Draft

[scheduler] Make the event dialog General-tab building blocks public#23398
rita-codes wants to merge 7 commits into
mui:masterfrom
rita-codes:22871-scheduler-edit-dialog-general-tab-slot-for-composing-sections-built-in-custom-phase-2

Conversation

@rita-codes

@rita-codes rita-codes commented Aug 21, 2026

Copy link
Copy Markdown
Member

Closes #22871. Part of #22866.

Third and final part of the General-tab slot work (follow-up to #23338): the export flip that makes the composition building blocks public.

Public surface

New @mui/x-scheduler/event-dialog entry point (also re-exported from the package root):

  • EventDialogGeneralTabContent — the default General-tab composition, usable from a custom slot to append content after the built-in sections.
  • DateTimeSection, ResourceAndColorSection, DescriptionSection — the built-in sections, moved out of internals/ and switched to named exports.
  • SectionFieldset, SectionHeaderTitle — the layout primitives, now thin wrappers that self-apply their theme classes so custom sections look native without passing classes explicitly (premium's RecurrenceTab drops its duplicated styled copy).
  • useEventDialogFormField — the form-field hook from [scheduler] Introduce the edit dialog form context & lifecycle contract #23284, plus its parameter/return types.
  • useEventDialogOccurrence — new hook returning the occurrence being edited (reads the form store; the interim occurrence context was removed during [scheduler] Add the eventDialogGeneralTab slot #23338's review).

TitleSection, the form store, and the form context stay internal.

Tests

  • The premium custom-field seam test now mounts through the real slot instead of the FormProbeInjector workaround it documented as temporary, and gains the three recurring-scope siblings (all / only-this / this-and-following), each asserting the untouched-field guarantee from [scheduler] Carry custom event data through the edit dialog submit #22874.
  • New coverage: theme classes on SectionFieldset/SectionHeaderTitle inside a custom section, useEventDialogOccurrence (happy path + guard), and a pin that a value written in a conditionally unmounted section is still submitted.

Docs

New "Event dialog" page under a Components section (mirroring the Data Grid toolbar page): anatomy, custom fields, validation, reorder/omit, required-resource semantics, typed slot props, and the pitfalls (return a fragment, module-scope slot component, draft state through the hook, read-only events). Cross-linked from the editing page and the accessibility page.

The moved section components are added to the API builder's skip list — they take zero props, so they are documented in the page's Anatomy section instead of empty API pages.

rita-codes and others added 7 commits August 21, 2026 13:58
…eir theme classes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MRcxZwT2TmBBATNXwMEJUC
…d cover the recurring scopes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MRcxZwT2TmBBATNXwMEJUC
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MRcxZwT2TmBBATNXwMEJUC
@rita-codes rita-codes added the scope: scheduler Changes related to the scheduler. label Aug 21, 2026
@code-infra-dashboard

Copy link
Copy Markdown

Deploy preview

Bundle size

Bundle Parsed size Gzip size
@mui/x-data-grid 0B(0.00%) 0B(0.00%)
@mui/x-data-grid-pro 0B(0.00%) 0B(0.00%)
@mui/x-data-grid-premium 0B(0.00%) 0B(0.00%)
@mui/x-charts 0B(0.00%) 0B(0.00%)
@mui/x-charts-pro 0B(0.00%) 0B(0.00%)
@mui/x-charts-premium 0B(0.00%) 0B(0.00%)
@mui/x-date-pickers 0B(0.00%) 0B(0.00%)
@mui/x-date-pickers-pro 0B(0.00%) 0B(0.00%)
@mui/x-tree-view 0B(0.00%) 0B(0.00%)
@mui/x-tree-view-pro 0B(0.00%) 0B(0.00%)
@mui/x-scheduler 🔺+389B(+0.10%) 🔺+165B(+0.16%)
@mui/x-scheduler-premium ▼-230B(-0.04%) ▼-28B(-0.02%)
@mui/x-chat 0B(0.00%) 0B(0.00%)
@mui/x-license 0B(0.00%) 0B(0.00%)

Details of bundle changes


Check out the code infra dashboard for more information about this PR.

@rita-codes rita-codes added the type: new feature Expand the scope of the product to solve a new problem. label Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: scheduler Changes related to the scheduler. type: new feature Expand the scope of the product to solve a new problem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[scheduler] Edit dialog: General-tab slot for composing sections (built-in + custom)

1 participant