Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VE-252 Combine dark and light themes for mui v6 #1009

Merged

Conversation

m4manjesh
Copy link
Contributor

@m4manjesh m4manjesh commented Dec 10, 2024

Closes TD-252

I also think this partially fixes an dark and light toggle sync issue with storybook we found here in VirtoAppLayout . This PR sync mode switch from storybook to VirtoAppLayout but not reverse.

Changes

This PR continues migrating RUI into MUI v6, primarily focusing on enabling cssVariables and cssColorSchemes to keep up with industry standards and for an improved developer experience.

ThemeProvider

  • Combined defaultTheme , darkTheme and lightTheme to mainTheme with colorSchemes API
  • Changed --mui default variable prefix to --ipg to label the theme brand. With cssVariables enabled anyone can easily check where the tokens come from now before it just showed the color code used.

See an example of how the background-color token displays now in dev tools
Before
Screenshot 2024-12-10 155711
After
Screenshot 2024-12-10 155229

  • Update the Theme interface to support colorSchemes
  • Rendering ThemProvider children inside a new ChildWrapper component to make use of useColorScheme
  • Remove ThemeContext.tsx which used to support use of useTheme hook throughout the app to get and set the current theme, instead of using the new useColorScheme coming with MUI v6. This includes fixes in tests as well.
  • Replaced few custom colors with var(--ipg-palette...) from MUI (providing the intented color)

ToggleColorMode

  • Using the useColorScheme to get and set the theme
  • Updated tests

VirtoAppHeader

  • Stories in VirtoAppHeader.stories.tsx updated as we no longer needed to pass mode
  • onColourModeChange prop was removed and tests were removed as we no longer pass the props mode

Some other file changes

  • Fixed a failing test in ConfirmProvider.test.tsx
  • Updated VirtoLogo.jsx prop to stop throwing warnings by passing sx with new theme conversion type as function
  • Background color of content shown part in VirtoAppLayout now used var(--ipg-palette-background-paper) to enable correct background.

UI/UX

N/A

Testing notes

  • Make sure all components still work the same as before.
  • Make sure all color codes now work the same as before.

Author checklist

Before I request a review:

  • I have reviewed my own code-diff.
  • I have tested the changes in Docker / a deploy-preview.
  • I have assigned the PR to myself or an appropriate delegate.
  • I have added the relevant labels to the PR.
  • I have included appropriate tests.
  • I have checked that the Lint and Test workflows pass on Github.
  • I have populated the deploy-preview with relevant test data.
  • I have tagged a UI/UX designer for review if this PR includes UI/UX changes.

@m4manjesh m4manjesh self-assigned this Dec 10, 2024
Copy link

github-actions bot commented Dec 10, 2024

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 69.24% (🎯 66%) 9874 / 14260
🟢 Statements 69.24% (🎯 66%) 9874 / 14260
🟢 Functions 72.11% (🎯 70%) 393 / 545
🟢 Branches 85.8% (🎯 80%) 973 / 1134
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/ActionDialog/ActionDialog.tsx 98.33% 50% 100% 98.33% 63
src/AppLauncher/AppLauncher.tsx 98.84% 90.9% 83.33% 98.84% 79-80
src/DialogTitle/DialogTitle.tsx 100% 100% 100% 100%
src/Filter/SidebarFilter/SidebarFilter.tsx 100% 100% 75% 100%
src/FontPicker/FontPicker.jsx 92.3% 62.5% 66.66% 92.3% 159-165, 173, 208-216
src/MultiColor/MultiColor.jsx 62.91% 80% 25% 62.91% 40, 52-59, 84-87, 91-92, 96-100, 104-108, 112-115, 148-181
src/MultiText/MultiText.jsx 95.5% 100% 71.42% 95.5% 73-76
src/PasswordChangeDialog/PasswordChangeDialog.jsx 95.32% 71.42% 100% 95.32% 102, 142-144, 147-149, 247
src/RadioButtons/RadioButtons.jsx 100% 100% 50% 100%
src/SwitchField/SwitchField.jsx 94.44% 90.9% 100% 94.44% 121-124
src/ThemeProvider/ThemeProvider.tsx 100% 100% 100% 100%
src/ToggleColorMode/ToggleColorMode.jsx 100% 100% 100% 100%
src/VehicleSelectDialog/VehicleSelectDialog.tsx 87.37% 66.66% 25% 87.37% 40-47, 51-54, 92
src/VirtoAppHeader/VirtoAppHeader.tsx 100% 100% 71.42% 100%
src/VirtoAppLayout/VirtoAppLayout.tsx 100% 72.72% 70% 100%
Unchanged Files
src/AlignHorizontal/AlignHorizontal.tsx 100% 100% 100% 100%
src/AlignVertical/AlignVertical.tsx 100% 100% 100% 100%
src/AppHeader/AppHeader.tsx 100% 83.33% 100% 100%
src/AppLayout/AppLayout.tsx 100% 66.66% 87.5% 100%
src/Autocomplete/Autocomplete.tsx 93.41% 79.31% 100% 93.41% 64-66, 68, 113, 162-167
src/Breadcrumbs/Breadcrumbs.tsx 98% 66.66% 100% 98% 31
src/BulletGauge/BulletGauge.tsx 0% 0% 0% 0% 1-85
src/BulletGauge/BulletGaugeClientOnly.tsx 0% 0% 0% 0% 1-19
src/Canvas/Canvas.jsx 93% 33.33% 0% 93% 49-51, 59-62
src/Canvas/Grid.jsx 100% 100% 100% 100%
src/Canvas/ResizeHandle.jsx 100% 100% 100% 100%
src/Canvas/SelectionRectangle.jsx 31.03% 100% 0% 31.03% 10-30
src/Canvas/useResize.jsx 37.14% 100% 25% 37.14% 18-26, 30-33, 37-45
src/Canvas/useSelectionRectangle.jsx 30.15% 50% 25% 30.15% 36-103
src/CanvasItem/CanvasItem.jsx 44.11% 100% 25% 44.11% 35-58, 71-104, 112-120
src/CanvasItem/Rect.jsx 38.12% 25% 40% 38.12% 37-102, 112-176, 184-232, 260-269
src/CanvasItem/ResizeHandle.jsx 10.97% 100% 0% 10.97% 10-89
src/CanvasItem/RotateHandle.jsx 12.76% 100% 0% 12.76% 9-51
src/CanvasItem/utils.jsx 21.03% 100% 9.09% 21.03% 16-20, 48-59, 69-80, 94-269, 318-322, 330-341
src/Card/DetailCard/DetailCard.tsx 0% 0% 0% 0% 1-194
src/Card/SummaryCard/SummaryCard.tsx 0% 0% 0% 0% 1-165
src/Card/TableCard/TableCard.tsx 0% 0% 0% 0% 1-75
src/CardContent/FileDetails/FileDetails.tsx 98.27% 100% 80% 98.27% 43-45
src/CardContent/Infographic/Infographic.tsx 0% 0% 0% 0% 1-125
src/Checkbox/Checkbox.jsx 100% 100% 50% 100%
src/ClientOnly/ClientOnly.tsx 0% 0% 0% 0% 1-17
src/Color/Color.jsx 97.75% 96.77% 90% 97.75% 68-69, 82-84
src/ConditionalDialog/ConditionalDialog.tsx 0% 0% 0% 0% 1-29
src/ConfirmProvider/ConfirmContext.tsx 100% 100% 100% 100%
src/ConfirmProvider/ConfirmProvider.tsx 97.16% 100% 100% 97.16% 93, 112-113
src/ConfirmProvider/ConfirmationDialog.tsx 100% 75% 100% 100%
src/ConfirmProvider/useConfirm.tsx 100% 100% 100% 100%
src/Copyright/Copyright.jsx 100% 100% 100% 100%
src/DeletableList/DeletableList.tsx 100% 100% 66.66% 100%
src/EditLabelDialog/EditLabelDialog.jsx 92% 100% 41.66% 92% 42-48, 127-138
src/FeedbackForm/FeedbackForm.jsx 98.72% 100% 91.66% 98.72% 67-71
src/Figure/Figure.tsx 0% 0% 0% 0% 1-46
src/Figure/FigureClientOnly.tsx 0% 0% 0% 0% 1-16
src/FileUploader/FileUploader.tsx 99.38% 92.3% 50% 99.38% 98
src/FileUploader/__data__/uploaderTestFiles.ts 100% 100% 100% 100%
src/Filter/AlwaysOpenAutocomplete.tsx 100% 100% 100% 100%
src/Filter/sortFilterOptions.ts 82.75% 75% 100% 82.75% 13-14, 24-25, 45
src/Filter/CheckboxFilter/CheckboxFilter.tsx 96.29% 78.57% 100% 96.29% 59, 131-133
src/Filter/ClearFilterButton/ClearFilterButton.tsx 100% 100% 100% 100%
src/Filter/LabelFilter/LabelFilter.jsx 96.61% 94.11% 92.85% 96.61% 110-113
src/Filter/RangeFilter/RangeFilter.jsx 100% 83.33% 100% 100%
src/Filter/SetFilterButton/SetFilterButton.tsx 100% 100% 100% 100%
src/FontStyle/FontStyle.jsx 100% 100% 50% 100%
src/ImageUploader/ImageUploader.tsx 99.22% 95.45% 100% 99.22% 81
src/ImageUploader/__data__/uploaderTestFiles.ts 100% 100% 100% 100%
src/LabelSelector/LabelSelector.jsx 98.16% 96.15% 77.77% 98.16% 139-143, 262-263
src/LabelSelector/DeleteLabelDialog/DeleteLabelDialog.jsx 89.36% 100% 40% 89.36% 23-29
src/LabelSelector/LabelChip/LabelChip.tsx 100% 100% 100% 100%
src/LabelSelector/LabelChipGroup/LabelChipGroup.tsx 30.46% 83.33% 20% 30.46% 52-79, 94-104, 121-175, 189-231
src/LabelSelector/LabelChipGroup/sortLabelChips.ts 100% 100% 100% 100%
src/LazyLoadImage/LazyLoadImage.tsx 0% 0% 0% 0% 1-97
src/LinePlot/LinePlot.tsx 0% 0% 0% 0% 1-190
src/LinePlot/LinePlotClientOnly.tsx 0% 0% 0% 0% 1-19
src/LoadErrorMessage/LoadErrorMessage.tsx 0% 0% 0% 0% 1-182
src/Loading/Loading.jsx 96.77% 50% 100% 96.77% 31
src/LoginForm/LoginForm.jsx 100% 66.66% 50% 100%
src/ModelButton/ModelButton.tsx 97.16% 85.41% 75% 97.16% 119, 166, 168-169, 219-220, 222-223, 261
src/ModelButtonImage/ModelButtonImage.tsx 100% 100% 100% 100%
src/ModelButtonImage/color2filter.ts 95.6% 100% 95.83% 95.6% 60-71
src/MultiLabelPopover/MultiLabelPopover.jsx 97.61% 100% 66.66% 97.61% 22-23
src/NoWrapTypography/NoWrapTypography.tsx 100% 100% 100% 100%
src/NumberField/NumberField.tsx 96.52% 87.87% 100% 96.52% 99-102
src/PartSelector/PartSelector.tsx 0% 0% 0% 0% 1-111
src/PasswordChangeForm/PasswordChangeForm.jsx 100% 84.61% 100% 100%
src/PasswordResetForm/PasswordResetForm.jsx 100% 66.66% 100% 100%
src/RegistrationForm/RegistrationForm.jsx 100% 76.47% 100% 100%
src/RoadMarking/RoadMarking.tsx 0% 0% 0% 0% 1-50
src/RoadMarking/RoadMarkingClientOnly.tsx 0% 0% 0% 0% 1-16
src/RoadPreview/RoadPreview.tsx 100% 85.71% 100% 100%
src/RoadSurface/RoadSurface.tsx 0% 0% 0% 0% 1-20
src/RoadSurface/RoadSurfaceClientOnly.tsx 0% 0% 0% 0% 1-16
src/SearchBar/SearchBar.tsx 100% 100% 100% 100%
src/Select/Select.jsx 100% 100% 50% 100%
src/SelectorButton/SelectorButton.tsx 100% 100% 100% 100%
src/Sidebar/Sidebar.tsx 100% 85.71% 100% 100%
src/Sidebar/SidebarDivider/SidebarDivider.tsx 100% 100% 100% 100%
src/Sidebar/SidebarItem/SidebarItem.tsx 67.39% 80.95% 66.66% 67.39% 63, 101-144, 162-165
src/Slider/Slider.jsx 92.8% 36.84% 60% 92.8% 56-57, 66-70, 102, 106
src/Snackbar/Snackbar.tsx 100% 90% 85.71% 100%
src/SnackbarProvider/SnackbarContext.tsx 100% 100% 100% 100%
src/SnackbarProvider/SnackbarProvider.tsx 60.46% 100% 50% 60.46% 32-35, 42-55
src/SnackbarProvider/useSnackbar.ts 22.22% 100% 0% 22.22% 7-13
src/Status/statuses.ts 100% 100% 100% 100%
src/Status/StatusCard/StatusCard.tsx 100% 100% 100% 100%
src/Status/StatusCountBar/StatusCountBar.tsx 94.11% 80% 66.66% 94.11% 63-65
src/Status/StatusCountTable/StatusCountTable.tsx 100% 100% 100% 100%
src/Status/StatusIcon/StatusIcon.tsx 100% 100% 100% 100%
src/Status/StatusLabel/StatusLabel.tsx 100% 100% 100% 100%
src/SurfacePlot/SurfacePlot.tsx 0% 0% 0% 0% 1-158
src/SurfacePlot/SurfacePlotClientOnly.tsx 0% 0% 0% 0% 1-19
src/SvgIcons/AsamLogo/AsamLogo.tsx 100% 100% 100% 100%
src/SvgIcons/CarMakerLogo/CarMakerLogo.tsx 100% 100% 100% 100%
src/SvgIcons/IpgLogo/IpgLogo.tsx 100% 100% 100% 100%
src/SvgIcons/VirtoBuild/VirtoBuild.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoData/VirtoData.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoFleet/VirtoFleet.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoID/VirtoID.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoLogo/VirtoLogo.tsx 100% 100% 100% 100%
src/SvgIcons/VirtoMascots/VirtoHeadScratching/VirtoHeadScratching.tsx 11.11% 100% 0% 11.11% 6-32
src/SvgIcons/VirtoMascots/VirtoShrugging/VirtoShrugging.tsx 11.11% 100% 0% 11.11% 6-32
src/SvgIcons/VirtoMascots/VirtoThinking/VirtoThinking.tsx 11.11% 100% 0% 11.11% 6-32
src/SvgIcons/VirtoMascots/VirtoThumbsUpLeft/VirtoThumbsUpLeft.tsx 11.11% 100% 0% 11.11% 6-32
src/SvgIcons/VirtoModel/VirtoModel.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoResult/VirtoResult.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoScene/VirtoScene.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoTest/VirtoTest.jsx 100% 100% 100% 100%
src/SvgIcons/VirtoVehicle/VirtoVehicle.jsx 100% 100% 100% 100%
src/TabPanel/TabPanel.tsx 0% 0% 0% 0% 1-127
src/TextField/TextField.tsx 89.83% 100% 66.66% 89.83% 8-13
src/TrafficLight/TrafficLight.tsx 0% 0% 0% 0% 1-107
src/TrafficLight/TrafficLightClientOnly.tsx 0% 0% 0% 0% 1-16
src/TrafficLight/TrafficLightSelector.tsx 0% 0% 0% 0% 1-780
src/TrafficLight/trafficLightUtils.ts 0% 100% 100% 0% 2-40
src/TrafficSign/TrafficSign.tsx 0% 0% 0% 0% 1-33
src/TrafficSign/TrafficSignClientOnly.tsx 0% 0% 0% 0% 1-16
src/TrafficSign/TrafficSignHelper.ts 0% 0% 0% 0% 1-333
src/TransferList/TransferList.tsx 100% 100% 100% 100%
src/TreeViewList/TreeViewList.tsx 0% 0% 0% 0% 1-513
src/TruncatedTooltip/TruncatedTooltip.tsx 91.76% 64.7% 75% 91.76% 61-62, 64-65, 83-84, 86
src/Uploader/UploaderHeader.tsx 88.05% 83.33% 100% 88.05% 30-33, 35-38
src/Uploader/useUploader.ts 89.28% 78.26% 100% 89.28% 39-41, 58, 63-67, 103, 174-175
src/UserAvatar/UserAvatar.tsx 100% 90.9% 100% 100%
src/UserAvatar/colorMap.tsx 12.5% 100% 0% 12.5% 15-41
src/UserMenu/UserMenu.tsx 100% 100% 100% 100%
src/VehiclePath/Marker.tsx 0% 0% 0% 0% 1-15
src/VehiclePath/Vehicle.tsx 0% 0% 0% 0% 1-59
src/VehiclePath/VehiclePath.tsx 0% 0% 0% 0% 1-55
src/VehiclePath/VehiclePathClientOnly.tsx 0% 0% 0% 0% 1-16
src/VehicleSelect/VehicleSelect.tsx 55.5% 88.46% 28.57% 55.5% 90-100, 116-126, 143-187, 204-234
src/VehicleSelector/VehicleSelector.tsx 57.14% 92.68% 16.66% 57.14% 96-106, 131-141, 168-224, 256-300
src/VersionChip/VersionChip.tsx 88.7% 70% 100% 88.7% 12, 46, 50, 77-80
src/ViewToggleButton/ViewToggleButton.jsx 100% 100% 66.66% 100%
src/Wizard/Wizard.tsx 100% 100% 100% 100%
src/Wizard/WizardActions/WizardActions.tsx 100% 100% 100% 100%
src/Wizard/WizardActions/BackButton/BackButton.tsx 100% 100% 100% 100%
src/Wizard/WizardActions/CancelButton/CancelButton.tsx 100% 100% 100% 100%
src/Wizard/WizardActions/NextButton/NextButton.tsx 100% 100% 100% 100%
src/Wizard/WizardContent/WizardContent.tsx 100% 100% 100% 100%
src/Wizard/WizardSteps/WizardSteps.tsx 100% 75% 100% 100%
src/Wizard/WizardSteps/WizardStep/WizardStep.tsx 92.15% 71.42% 100% 92.15% 49-52
src/hover/useDelayedHover.ts 60% 100% 100% 60% 26-40, 50-54
src/utils/common.ts 100% 83.33% 100% 100%
src/utils/form.jsx 100% 100% 100% 100%
src/utils/plotlyConfig.ts 0% 100% 100% 0% 2-34
src/utils/readAsDataURL.ts 80% 100% 66.66% 80% 20-22
Generated in workflow #3190 for commit 1364279 by the Vitest Coverage Report Action

@m4manjesh m4manjesh changed the title VE-252 Combine theme for mui v6 VE-252 Combine dark and light themes for mui v6 Dec 10, 2024
@m4manjesh m4manjesh added the enhancement New feature or request label Dec 10, 2024
Base automatically changed from migrate-depricated-apis-to-v6 to release/v10.0.0 December 10, 2024 17:07
@@ -1,7 +1,7 @@
import ToggleColorMode from "./ToggleColorMode";

export type ToggleColorModeProps = {
mode?: "light" | "dark";
mode?: "light" | "dark" | "system" | undefined;
Copy link
Contributor

Choose a reason for hiding this comment

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

mode?: "light" | "dark" | "system"; no need to add undefined as mode is optional.

@@ -25,5 +25,5 @@ VirtoLogo.propTypes = {
/**
* styles applied to the svg element
*/
sx: PropTypes.object
sx: PropTypes.func
Copy link
Contributor

Choose a reason for hiding this comment

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

if this is changed to func. The VirtoLogo story also needs to be updated. But like we discussed to migrate VirtoLogo component to typeScript that will align types.

@@ -86,154 +197,21 @@ const defaultTheme: ThemeOptions = {
}
},
typography: {
allVariants: {
color: `var(--ipg-palette-text-primary)`
Copy link
Contributor

Choose a reason for hiding this comment

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

typography: {
allVariants: {
color: var(--ipg-palette-text-primary),
fontFamily: "Montserrat"
}
}

fontFamily: "Montserrat" should be inside allVariants to matchstyling like before.

Copy link
Contributor Author

@m4manjesh m4manjesh Dec 12, 2024

Choose a reason for hiding this comment

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

For an unknown reason the Chip component was failing to run this font family if i put this inside allVariants
Screenshot 2024-12-12 153128

Copy link
Contributor

@mattcorner mattcorner left a comment

Choose a reason for hiding this comment

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

Reviewed code changes since my last review. I'll leave the review of UI to @Sowbhagya-ipg.

Comment on lines 62 to 70
sx={theme => ({
color: "#9e9e9e",
position: "absolute",
right: 12,
top: 12,
...theme.applyStyles("dark", {
color: "#ffffff"
})
})}
Copy link
Contributor

Choose a reason for hiding this comment

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

Why are you introducing more hardcoded colours? Lets not add to the problem.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Aligned with @Sowbhagya-ipg to go with default action.active for icon buttons

@@ -41,7 +41,12 @@ export default function LabelSetter({ onChange = () => {}, rows = [] }) {
headerName: "Action",
renderCell: params => (
<IconButton
color="primary"
sx={theme => ({
color: "#9e9e9e",
Copy link
Contributor

Choose a reason for hiding this comment

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

Why the hardcoded colour?

@@ -98,7 +103,12 @@ export default function LabelSetter({ onChange = () => {}, rows = [] }) {
/>
<Box>
<IconButton
color="primary"
sx={theme => ({
color: "#9e9e9e",
Copy link
Contributor

Choose a reason for hiding this comment

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

Why the hardcoded colour?

| "light"
| "dark";

console.log(defaultMode);
Copy link
Contributor

Choose a reason for hiding this comment

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

Leftover console.log

// render the component
render(
<ThemeProvider theme={mode}>
<ThemeProvider theme={defaultMode}>
Copy link
Contributor

Choose a reason for hiding this comment

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

We shouldn't pass the mode into ThemeProvider. The original behaviour of this test was that it passed no props in and the ThemeProvider read localStorage itself.

@Sowbhagya-ipg
Copy link

Spacing between the characters is reduced everywhere @m4manjesh Just to show you an example.
Screenshot 2024-12-17 at 1 51 45 pm
Screenshot 2024-12-17 at 1 52 09 pm

@Sowbhagya-ipg
Copy link

Sowbhagya-ipg commented Dec 17, 2024

Screenshot 2024-12-17 at 2 01 29 pm Screenshot 2024-12-17 at 2 01 35 pm The Icon button color looks different here. @m4manjesh . I would suggest to keep the same color action.active in both themes. You can also do the same for the similar issue found by @mattcorner and use the same action.active

@Sowbhagya-ipg
Copy link

I noticed that when selecting Radio button and Switch Fields options, the labels turn primary. This is an existing issue. It's up to you whether to fix it or create a separate ticket.

Screenshot 2024-12-17 at 4 03 19 pm Screenshot 2024-12-17 at 4 02 42 pm

@Sowbhagya-ipg
Copy link

The rest looks fine @m4manjesh

@m4manjesh
Copy link
Contributor Author

@Sowbhagya-ipg Feedbacks addressed, please re-review.

@Sowbhagya-ipg
Copy link

Sowbhagya-ipg commented Dec 18, 2024

Screenshot 2024-12-18 at 10 38 05 am

User menu font is not montserrat. @m4manjesh

@Sowbhagya-ipg
Copy link

Screenshot 2024-12-19 at 2 15 15 pm The number inside the step circle here is not montserrat @m4manjesh

Copy link

@Sowbhagya-ipg Sowbhagya-ipg left a comment

Choose a reason for hiding this comment

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

Looks Good. 🚀 @m4manjesh

@m4manjesh
Copy link
Contributor Author

@nikitharani @mattcorner Can you please review and approve if you are happy?

@m4manjesh m4manjesh merged commit 21c1a1e into release/v10.0.0 Jan 6, 2025
3 checks passed
@m4manjesh m4manjesh deleted the enhancement/ve-252-combine-theme-for-mui-v6 branch January 6, 2025 15:23
This was referenced Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants