65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
'use client';
|
|
import { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';
|
|
import { tokens } from '@fluentui/react-theme';
|
|
import { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';
|
|
export const emptySwatchClassNames = {
|
|
root: 'fui-EmptySwatch'
|
|
};
|
|
/**
|
|
* Styles for the root slot
|
|
*/ const useStyles = makeResetStyles({
|
|
backgroundColor: tokens.colorTransparentBackground,
|
|
border: `1px dashed ${tokens.colorNeutralForeground4}`
|
|
});
|
|
const useSizeStyles = makeStyles({
|
|
'extra-small': {
|
|
width: '20px',
|
|
height: '20px'
|
|
},
|
|
small: {
|
|
width: '24px',
|
|
height: '24px'
|
|
},
|
|
medium: {
|
|
width: '28px',
|
|
height: '28px'
|
|
},
|
|
large: {
|
|
width: '32px',
|
|
height: '32px'
|
|
}
|
|
});
|
|
const useShapeStyles = makeStyles({
|
|
rounded: {
|
|
borderRadius: tokens.borderRadiusMedium,
|
|
...createCustomFocusIndicatorStyle({
|
|
borderRadius: tokens.borderRadiusMedium
|
|
})
|
|
},
|
|
circular: {
|
|
borderRadius: tokens.borderRadiusCircular,
|
|
...createCustomFocusIndicatorStyle({
|
|
borderRadius: tokens.borderRadiusCircular
|
|
})
|
|
},
|
|
square: {
|
|
borderRadius: tokens.borderRadiusNone,
|
|
...createCustomFocusIndicatorStyle({
|
|
borderRadius: tokens.borderRadiusNone
|
|
})
|
|
}
|
|
});
|
|
/**
|
|
* Apply styling to the EmptySwatch slots based on the state
|
|
*/ export const useEmptySwatchStyles_unstable = (state)=>{
|
|
'use no memo';
|
|
const styles = useStyles();
|
|
const sizeStyles = useSizeStyles();
|
|
const shapeStyles = useShapeStyles();
|
|
var _state_size;
|
|
const size = (_state_size = state.size) !== null && _state_size !== void 0 ? _state_size : 'medium';
|
|
var _state_shape;
|
|
state.root.className = mergeClasses(emptySwatchClassNames.root, styles, sizeStyles[size], shapeStyles[(_state_shape = state.shape) !== null && _state_shape !== void 0 ? _state_shape : 'square'], state.root.className);
|
|
return state;
|
|
};
|