Files
Jack Westbrook c9f563e576 Grafana UI: Use package.json exports for internal code (#101815)
* feat(grafana-ui): introduce development exports to prevent importing from grafana/ui/src

* refactor(theme-generation): move theme templates into scripts so themes continue to build

* refactor(frontend): replace  grafana/ui paths that use nested src with /internal or /unstable

* chore(betterer): update better results file

* feat(grafana-ui): support enterprise, remove Text component from internal

* docs(packages): update readme with exporting code conventions
2025-03-12 14:14:32 +01:00

27 lines
811 B
TypeScript

import { css } from '@emotion/css';
import * as React from 'react';
import { GrafanaTheme2, ThemeSpacingTokens } from '@grafana/data';
import { useStyles2 } from '@grafana/ui';
import { getResponsiveStyle, ResponsiveProp } from '@grafana/ui/internal';
interface IndentProps {
children?: React.ReactNode;
level: number;
spacing: ResponsiveProp<ThemeSpacingTokens>;
}
export function Indent({ children, spacing, level }: IndentProps) {
const styles = useStyles2(getStyles, spacing, level);
return <span className={css(styles.indentor)}>{children}</span>;
}
const getStyles = (theme: GrafanaTheme2, spacing: IndentProps['spacing'], level: IndentProps['level']) => ({
indentor: css(
getResponsiveStyle(theme, spacing, (val) => ({
paddingLeft: theme.spacing(val * level),
}))
),
});