wip:milestone 0 fixes
Some checks failed
CI/CD Pipeline / unit-tests (push) Failing after 1m16s
CI/CD Pipeline / integration-tests (push) Failing after 2m32s
CI/CD Pipeline / lint (push) Successful in 5m22s
CI/CD Pipeline / e2e-tests (push) Has been skipped
CI/CD Pipeline / build (push) Has been skipped

This commit is contained in:
2026-03-15 12:35:42 +02:00
parent 6708cf28a7
commit cffdf8af86
61266 changed files with 4511646 additions and 1938 deletions

View File

@@ -0,0 +1,24 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import { uncapitalizeObjectKeys } from './slotsMigration';
// TODO v7: Remove `components` and usages of `UncapitalizeObjectKeys` type
// after converting keys in Grid(Pro|Premium)SlotsComponent to camelCase.
// https://github.com/mui/mui-x/issues/7940
export function computeSlots({
defaultSlots,
slots,
components
}) {
const overrides = slots ?? (components ? uncapitalizeObjectKeys(components) : null);
if (!overrides || Object.keys(overrides).length === 0) {
return defaultSlots;
}
const result = _extends({}, defaultSlots);
Object.keys(overrides).forEach(key => {
const k = key;
if (overrides[k] !== undefined) {
result[k] = overrides[k];
}
});
return result;
}

View File

@@ -0,0 +1,3 @@
export * from './computeSlots';
export * from './slotsMigration';
export * from './useProps';

View File

@@ -0,0 +1,13 @@
import _extends from "@babel/runtime/helpers/esm/extends";
// TODO v7: This file exist only to simplify typing between
// components/componentsProps and slots/slotProps
// Should be deleted when components/componentsProps are removed
export const uncapitalizeObjectKeys = capitalizedObject => {
if (capitalizedObject === undefined) {
return undefined;
}
return Object.keys(capitalizedObject).reduce((acc, key) => _extends({}, acc, {
[`${key.charAt(0).toLowerCase()}${key.slice(1)}`]: capitalizedObject[key]
}), {});
};

View File

@@ -0,0 +1,32 @@
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
const _excluded = ["components", "componentsProps"];
import * as React from 'react';
/** Gathers props for the root element into a single `.forwardedProps` field */
function groupForwardedProps(props) {
const keys = Object.keys(props);
if (!keys.some(key => key.startsWith('aria-') || key.startsWith('data-'))) {
return props;
}
const newProps = {};
const forwardedProps = props.forwardedProps ?? {};
for (let i = 0; i < keys.length; i += 1) {
const key = keys[i];
if (key.startsWith('aria-') || key.startsWith('data-')) {
forwardedProps[key] = props[key];
} else {
newProps[key] = props[key];
}
}
newProps.forwardedProps = forwardedProps;
return newProps;
}
export function useProps(allProps) {
return React.useMemo(() => {
const {
components,
componentsProps
} = allProps,
themedProps = _objectWithoutPropertiesLoose(allProps, _excluded);
return [components, componentsProps, groupForwardedProps(themedProps)];
}, [allProps]);
}