Skip to content

[scheduler] Add utility classes to the dependency UI - #24035

Merged
rita-codes merged 12 commits into
mui:masterfrom
rita-codes:24023-scheduler-dependencies-utility-classes
Oct 29, 2026
Merged

rita-codes merged 12 commits into
mui:masterfrom
rita-codes:24023-scheduler-dependencies-utility-classes

Conversation

@rita-codes

@rita-codes rita-codes commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Closes #24023. Part of #23420.

What

  • Utility classes for the dependency UI, which only carried data attributes until now:
    • overlays: dependencyArrows, dependencyTerminals, eventDependencyTerminal
    • dialog: dependencyDialog, dependencyDialogPaper, dependencyDialogHeader, dependencyDialogTitle, dependencyDialogCloseButton, dependencyDialogContent, dependencyDialogForm (the form, or the details section when read-only), dependencyDialogBody, dependencyDialogDetails, dependencyDialogEventChip, dependencyDialogLag, dependencyDialogLagUnit, dependencyDialogLagNote (read-only dialog only; in the form the note is the lag field's helper text), dependencyDialogDivider, dependencyDialogActions
  • The dependency dialog no longer reuses the event dialog's styled components or classes: it has its own root, paper, header, content, form and actions, each with its own slot and class. Theming one dialog doesn't change the other.
  • To share the code without sharing the theme hooks:
    • x-scheduler/src/internals/constants/dialogStyles.ts holds the base styles of the dialog parts (no slot, no class). Each dialog spreads them into its own styled components.
    • useDraggableAnchoredPaper holds the paper's positioning next to its anchor and the drag. Both dialog papers use it.
  • The dependency dialog keeps its 345px width, narrower than the event dialog (450px) since it only has four fields. The header no longer wraps the close button in an actions container, so the dialog screenshots may move by a pixel.
  • Removes the TODO(dependencies public flip, #23420) markers about classes and width. The localeText ones are handled in [scheduler-premium] Move the dependency UI strings to localeText #24027.
  • The event dialog parts that were only exported for the dependency dialog (EventDialogRoot, EventDialogDraggablePaper, EventDialogHeader, EventDialogContentRoot, EventDialogForm, EventDialogFormActions) are internal again.
  • The theme augmentation spec checks a dependencyArrows style override.

Not included

Two dependency slots get no class on purpose:

  • DependencyDialogAnchor: a 0×0 span that only positions the dialog.
  • DependencyInteractions: the invisible hit areas of the arrows. If customizing the delete button is wanted, a dedicated class can come later.

Adding a class later is not breaking, removing one is.

Note

The classes are public surface: they show up in the API reference before the props. Land this right before the public flip, or in the same release.

@rita-codes rita-codes added the scope: scheduler Changes related to the scheduler. label Oct 28, 2026
@code-infra-dashboard

code-infra-dashboard Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Deploy preview

https://deploy-preview-24035--material-ui-x.netlify.app/
QR code for https://deploy-preview-24035--material-ui-x.netlify.app/

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 🔺+109B(+0.03%) 🔺+49B(+0.04%)
@mui/x-scheduler-premium 🔺+1.43KB(+0.25%) 🔺+360B(+0.22%)
@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: enhancement It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature. label Oct 28, 2026
@rita-codes rita-codes self-assigned this Oct 28, 2026
@rita-codes rita-codes changed the title [scheduler] Add utility classes to the dependency UI, and size its dialog like the event dialog [scheduler] Add utility classes to the dependency UI Oct 28, 2026
@rita-codes
rita-codes marked this pull request as ready for review October 28, 2026 17:29

@flaviendelangle flaviendelangle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR review

No findings. No merge-blocking issues found in the diff against GitHub’s base commit.

The dependency arrow, terminal, and editor suites passed: 155 tests passed, 27 skipped. Browser-only behavior and visual layout were not verified.

Already tracked

  • Dependency UI localization is handled in #24027.
  • Public dependency props, exports, and documentation are tracked in #23420.
  • Omitting classes for the invisible anchor and interaction layer is explicitly accepted in the PR scope.

Verdict

Approve - no actionable regressions or correctness issues found.


🤖 Review generated with Codex

@github-actions github-actions Bot added the PR: out-of-date The pull request has merge conflicts and can't be merged. label Oct 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

…ependencies-utility-classes

# Conflicts:
#	packages/x-scheduler/src/internals/components/event-editing/FormContent.tsx
@github-actions github-actions Bot removed the PR: out-of-date The pull request has merge conflicts and can't be merged. label Oct 29, 2026
…ependencies-utility-classes

# Conflicts:
#	packages/x-scheduler-premium/src/event-timeline-premium/content/timeline-dependencies/dependency-dialog/DependencyDialogDetails.tsx
#	packages/x-scheduler-premium/src/event-timeline-premium/content/timeline-dependencies/dependency-dialog/DependencyDialogFormContent.tsx
#	packages/x-scheduler-premium/src/event-timeline-premium/content/timeline-dependencies/dependency-dialog/DependencyDialogReadonlyContent.tsx
@rita-codes
rita-codes merged commit 01939a5 into mui:master Oct 29, 2026
22 checks passed
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: enhancement It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[scheduler] Dependencies: utility classes

2 participants