diff --git a/src/layouts/grid/component.tsx b/src/layouts/grid/component.tsx index 345b385b..b4d053fa 100644 --- a/src/layouts/grid/component.tsx +++ b/src/layouts/grid/component.tsx @@ -87,7 +87,6 @@ export function Grid({ const sizeResponsive = childProps.sizeResponsive ?? {}; const itemStyles: React.CSSProperties = { ...childProps.style, - // @ts-expect-error CSS custom properties '--kiba-grid-item-gutter': gutter, '--kiba-grid-item-alignment': childProps.alignment ? getFlexItemAlignment(childProps.alignment) : 'auto', '--kiba-grid-item-width': getItemWidth(columnCount, size, gutter), @@ -96,22 +95,15 @@ export function Grid({ '--kiba-grid-item-height': '100%', '--kiba-grid-item-overflow-y': 'auto', } : {}), - ...(sizeResponsive.small !== undefined ? { - '--kiba-grid-item-width-sm': getItemWidth(columnCount, sizeResponsive.small, gutter), - '--kiba-grid-item-display-sm': getItemDisplay(sizeResponsive.small), - } : {}), - ...(sizeResponsive.medium !== undefined ? { - '--kiba-grid-item-width-md': getItemWidth(columnCount, sizeResponsive.medium, gutter), - '--kiba-grid-item-display-md': getItemDisplay(sizeResponsive.medium), - } : {}), - ...(sizeResponsive.large !== undefined ? { - '--kiba-grid-item-width-lg': getItemWidth(columnCount, sizeResponsive.large, gutter), - '--kiba-grid-item-display-lg': getItemDisplay(sizeResponsive.large), - } : {}), - ...(sizeResponsive.extraLarge !== undefined ? { - '--kiba-grid-item-width-xl': getItemWidth(columnCount, sizeResponsive.extraLarge, gutter), - '--kiba-grid-item-display-xl': getItemDisplay(sizeResponsive.extraLarge), - } : {}), + // @ts-expect-error + '--kiba-grid-item-width-sm': sizeResponsive.small !== undefined ? getItemWidth(columnCount, sizeResponsive.small, gutter) : 'initial', + '--kiba-grid-item-display-sm': sizeResponsive.small !== undefined ? getItemDisplay(sizeResponsive.small) : 'initial', + '--kiba-grid-item-width-md': sizeResponsive.medium !== undefined ? getItemWidth(columnCount, sizeResponsive.medium, gutter) : 'initial', + '--kiba-grid-item-display-md': sizeResponsive.medium !== undefined ? getItemDisplay(sizeResponsive.medium) : 'initial', + '--kiba-grid-item-width-lg': sizeResponsive.large !== undefined ? getItemWidth(columnCount, sizeResponsive.large, gutter) : 'initial', + '--kiba-grid-item-display-lg': sizeResponsive.large !== undefined ? getItemDisplay(sizeResponsive.large) : 'initial', + '--kiba-grid-item-width-xl': sizeResponsive.extraLarge !== undefined ? getItemWidth(columnCount, sizeResponsive.extraLarge, gutter) : 'initial', + '--kiba-grid-item-display-xl': sizeResponsive.extraLarge !== undefined ? getItemDisplay(sizeResponsive.extraLarge) : 'initial', }; return (
( field: ResponsiveField | null | undefined, variablePrefix: string, converter: CssConverter = identityConverter, + shouldResetInheritance = false, ): Record => { if (!field) { + if (shouldResetInheritance) { + return { + [`${variablePrefix}-small`]: 'initial', + [`${variablePrefix}-medium`]: 'initial', + [`${variablePrefix}-large`]: 'initial', + [`${variablePrefix}-extraLarge`]: 'initial', + }; + } return {}; } const result: Record = {}; - if (field.small !== undefined) { - result[`${variablePrefix}-small`] = converter(field.small); - } - if (field.medium !== undefined) { - result[`${variablePrefix}-medium`] = converter(field.medium); - } - if (field.large !== undefined) { - result[`${variablePrefix}-large`] = converter(field.large); - } - if (field.extraLarge !== undefined) { - result[`${variablePrefix}-extraLarge`] = converter(field.extraLarge); - } + result[`${variablePrefix}-small`] = field.small !== undefined ? converter(field.small) : 'initial'; + result[`${variablePrefix}-medium`] = field.medium !== undefined ? converter(field.medium) : 'initial'; + result[`${variablePrefix}-large`] = field.large !== undefined ? converter(field.large) : 'initial'; + result[`${variablePrefix}-extraLarge`] = field.extraLarge !== undefined ? converter(field.extraLarge) : 'initial'; return result; };