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,6 @@
import { UncapitalizeObjectKeys } from './slotsMigration';
export declare function computeSlots<SlotComponents extends object>({ defaultSlots, slots, components, }: {
defaultSlots: UncapitalizeObjectKeys<SlotComponents>;
slots?: UncapitalizeObjectKeys<Partial<SlotComponents>>;
components?: Partial<SlotComponents>;
}): UncapitalizeObjectKeys<SlotComponents>;

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 != null ? 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,3 @@
export * from './computeSlots';
export * from './slotsMigration';
export * from './useProps';

View File

@@ -0,0 +1,4 @@
export type UncapitalizeObjectKeys<T extends object> = {
[K in keyof T as K extends string ? Uncapitalize<K> : K]: T[K];
};
export declare const uncapitalizeObjectKeys: <TInputType extends object>(capitalizedObject: TInputType) => UncapitalizeObjectKeys<TInputType> | undefined;

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,8 @@
import { GridSlotsComponentsProps } from '../../models/gridSlotsComponentsProps';
import { GridSlotsComponent } from '../../models';
interface WithComponents {
components?: Partial<GridSlotsComponent>;
componentsProps?: GridSlotsComponentsProps;
}
export declare function useProps<T extends WithComponents>(allProps: T): readonly [Partial<GridSlotsComponent> | undefined, GridSlotsComponentsProps | undefined, Omit<T, "components" | "componentsProps">];
export {};

View File

@@ -0,0 +1,33 @@
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) {
var _props$forwardedProps;
const keys = Object.keys(props);
if (!keys.some(key => key.startsWith('aria-') || key.startsWith('data-'))) {
return props;
}
const newProps = {};
const forwardedProps = (_props$forwardedProps = props.forwardedProps) != null ? _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]);
}