65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
'use client';
|
|
import { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';
|
|
import { typographyStyles } from '@fluentui/react-theme';
|
|
import { createFocusOutlineStyle } from '@fluentui/react-tabster';
|
|
export const dialogTitleClassNames = {
|
|
root: 'fui-DialogTitle',
|
|
action: 'fui-DialogTitle__action'
|
|
};
|
|
/**
|
|
* Styles for the root slot
|
|
*/ const useRootResetStyles = makeResetStyles({
|
|
...typographyStyles.subtitle1,
|
|
margin: 0,
|
|
gridRowStart: 1,
|
|
gridRowEnd: 1,
|
|
gridColumnStart: 1,
|
|
gridColumnEnd: 3
|
|
});
|
|
const useStyles = makeStyles({
|
|
rootWithoutAction: {
|
|
gridColumnEnd: 4
|
|
}
|
|
});
|
|
/**
|
|
* Styles for the action slot
|
|
*/ const useActionResetStyles = makeResetStyles({
|
|
gridRowStart: 1,
|
|
gridRowEnd: 1,
|
|
gridColumnStart: 3,
|
|
justifySelf: 'end',
|
|
alignSelf: 'start'
|
|
});
|
|
/**
|
|
* Styles to be applied on internal elements used by default action on non-modal Dialog
|
|
* @internal
|
|
*/ export const useDialogTitleInternalStyles = makeResetStyles({
|
|
...createFocusOutlineStyle(),
|
|
overflow: 'visible',
|
|
padding: 0,
|
|
borderStyle: 'none',
|
|
position: 'relative',
|
|
boxSizing: 'content-box',
|
|
backgroundColor: 'inherit',
|
|
color: 'inherit',
|
|
fontFamily: 'inherit',
|
|
fontSize: 'inherit',
|
|
cursor: 'pointer',
|
|
lineHeight: 0,
|
|
WebkitAppearance: 'button',
|
|
textAlign: 'unset'
|
|
});
|
|
/**
|
|
* Apply styling to the DialogTitle slots based on the state
|
|
*/ export const useDialogTitleStyles_unstable = (state)=>{
|
|
'use no memo';
|
|
const rootResetStyles = useRootResetStyles();
|
|
const actionResetStyles = useActionResetStyles();
|
|
const styles = useStyles();
|
|
state.root.className = mergeClasses(dialogTitleClassNames.root, rootResetStyles, !state.action && styles.rootWithoutAction, state.root.className);
|
|
if (state.action) {
|
|
state.action.className = mergeClasses(dialogTitleClassNames.action, actionResetStyles, state.action.className);
|
|
}
|
|
return state;
|
|
};
|