@amaui/ui-react
Version:
UI for React
761 lines • 39.5 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
const _excluded = ["tonal", "color", "version", "elevation", "backgroundOpacity", "noBackground", "noOutline", "AdditionalProps", "Component", "className", "style", "children"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import React from 'react';
import { is } from '@amaui/utils';
import { classNames, style as styleMethod, useAmauiTheme } from '@amaui/style-react';
import { staticClassName } from '../utils';
const useStyle = styleMethod(theme => ({
root: {},
// Color
version_filled_color_themed: {
color: theme.palette.text.default.primary,
backgroundColor: theme.palette.light ? theme.palette.background.default.primary : theme.palette.background.default.quaternary
},
version_filled_color_inverted: {
color: theme.palette.background.default.primary,
backgroundColor: theme.palette.light ? theme.palette.background.dark.primary : theme.palette.background.light.primary
},
version_filled_color_default: {
color: theme.palette.text.default.primary,
backgroundColor: theme.palette.background.default.primary
},
version_filled_color_neutral: {
color: theme.methods.palette.color.text(theme.palette.color.neutral.main, true, 'light'),
backgroundColor: theme.palette.color.neutral.main
},
version_filled_color_primary: {
color: theme.methods.palette.color.text(theme.palette.color.primary.main, true, 'light'),
backgroundColor: theme.palette.color.primary.main
},
version_filled_color_secondary: {
color: theme.methods.palette.color.text(theme.palette.color.secondary.main, true, 'light'),
backgroundColor: theme.palette.color.secondary.main
},
version_filled_color_tertiary: {
color: theme.methods.palette.color.text(theme.palette.color.tertiary.main, true, 'light'),
backgroundColor: theme.palette.color.tertiary.main
},
version_filled_color_quaternary: {
color: theme.methods.palette.color.text(theme.palette.color.quaternary.main, true, 'light'),
backgroundColor: theme.palette.color.quaternary.main
},
version_filled_color_info: {
color: theme.methods.palette.color.text(theme.palette.color.info.main, true, 'light'),
backgroundColor: theme.palette.color.info.main
},
version_filled_color_success: {
color: theme.methods.palette.color.text(theme.palette.color.success.main, true, 'light'),
backgroundColor: theme.palette.color.success.main
},
version_filled_color_warning: {
color: theme.methods.palette.color.text(theme.palette.color.warning.main, true, 'light'),
backgroundColor: theme.palette.color.warning.main
},
version_filled_color_error: {
color: theme.methods.palette.color.text(theme.palette.color.error.main, true, 'light'),
backgroundColor: theme.palette.color.error.main
},
// Tonal
version_filled_tonal_color_neutral: {
color: theme.methods.palette.color.value('neutral', 10),
backgroundColor: theme.palette.color.neutral[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_primary: {
color: theme.methods.palette.color.value('primary', 10),
backgroundColor: theme.palette.color.primary[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_secondary: {
color: theme.methods.palette.color.value('secondary', 10),
backgroundColor: theme.palette.color.secondary[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_tertiary: {
color: theme.methods.palette.color.value('tertiary', 10),
backgroundColor: theme.palette.color.tertiary[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_quaternary: {
color: theme.methods.palette.color.value('quaternary', 10),
backgroundColor: theme.palette.color.quaternary[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_info: {
color: theme.methods.palette.color.value('info', 10),
backgroundColor: theme.palette.color.info[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_success: {
color: theme.methods.palette.color.value('success', 10),
backgroundColor: theme.palette.color.success[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_warning: {
color: theme.methods.palette.color.value('warning', 10),
backgroundColor: theme.palette.color.warning[theme.palette.light ? 80 : 30]
},
version_filled_tonal_color_error: {
color: theme.methods.palette.color.value('error', 10),
backgroundColor: theme.palette.color.error[theme.palette.light ? 80 : 30]
},
version_filled_tonal_secondary_color_neutral: {
color: theme.methods.palette.color.value('neutral', 10),
backgroundColor: theme.methods.palette.color.value('neutral', 70)
},
version_filled_tonal_secondary_color_primary: {
color: theme.methods.palette.color.value('primary', 10),
backgroundColor: theme.methods.palette.color.value('primary', 70)
},
version_filled_tonal_secondary_color_secondary: {
color: theme.methods.palette.color.value('secondary', 10),
backgroundColor: theme.methods.palette.color.value('secondary', 70)
},
version_filled_tonal_secondary_color_tertiary: {
color: theme.methods.palette.color.value('tertiary', 10),
backgroundColor: theme.methods.palette.color.value('tertiary', 70)
},
version_filled_tonal_secondary_color_quaternary: {
color: theme.methods.palette.color.value('quaternary', 10),
backgroundColor: theme.methods.palette.color.value('quaternary', 70)
},
version_filled_tonal_secondary_color_info: {
color: theme.methods.palette.color.value('info', 10),
backgroundColor: theme.methods.palette.color.value('info', 70)
},
version_filled_tonal_secondary_color_success: {
color: theme.methods.palette.color.value('success', 10),
backgroundColor: theme.methods.palette.color.value('success', 70)
},
version_filled_tonal_secondary_color_warning: {
color: theme.methods.palette.color.value('warning', 10),
backgroundColor: theme.methods.palette.color.value('warning', 70)
},
version_filled_tonal_secondary_color_error: {
color: theme.methods.palette.color.value('error', 10),
backgroundColor: theme.methods.palette.color.value('error', 70)
},
// Version
// Text
version_text_color_themed: {
color: theme.palette.light ? theme.palette.text.default.primary : theme.palette.text.default.secondary
},
version_text_color_inverted: {
color: theme.palette.background.default.primary
},
version_text_color_default: {
color: theme.palette.text.default.primary
},
version_text_color_neutral: {
color: theme.palette.color.neutral.main
},
version_text_color_primary: {
color: theme.palette.color.primary.main
},
version_text_color_secondary: {
color: theme.palette.color.secondary.main
},
version_text_color_tertiary: {
color: theme.palette.color.tertiary.main
},
version_text_color_quaternary: {
color: theme.palette.color.quaternary.main
},
version_text_color_info: {
color: theme.palette.color.info.main
},
version_text_color_success: {
color: theme.palette.color.success.main
},
version_text_color_warning: {
color: theme.palette.color.warning.main
},
version_text_color_error: {
color: theme.palette.color.error.main
},
// Tonal
version_text_tonal_color_neutral: {
color: theme.methods.palette.color.value('neutral', 40)
},
version_text_tonal_color_primary: {
color: theme.methods.palette.color.value('primary', 40)
},
version_text_tonal_color_secondary: {
color: theme.methods.palette.color.value('secondary', 40)
},
version_text_tonal_color_tertiary: {
color: theme.methods.palette.color.value('tertiary', 40)
},
version_text_tonal_color_quaternary: {
color: theme.methods.palette.color.value('quaternary', 40)
},
version_text_tonal_color_info: {
color: theme.methods.palette.color.value('info', 40)
},
version_text_tonal_color_success: {
color: theme.methods.palette.color.value('success', 40)
},
version_text_tonal_color_warning: {
color: theme.methods.palette.color.value('warning', 40)
},
version_text_tonal_color_error: {
color: theme.methods.palette.color.value('error', 40)
},
version_text_tonal_secondary_color_neutral: {
color: theme.methods.palette.color.value('neutral', 30)
},
version_text_tonal_secondary_color_primary: {
color: theme.methods.palette.color.value('primary', 30)
},
version_text_tonal_secondary_color_secondary: {
color: theme.methods.palette.color.value('secondary', 30)
},
version_text_tonal_secondary_color_tertiary: {
color: theme.methods.palette.color.value('tertiary', 30)
},
version_text_tonal_secondary_color_quaternary: {
color: theme.methods.palette.color.value('quaternary', 30)
},
version_text_tonal_secondary_color_info: {
color: theme.methods.palette.color.value('info', 30)
},
version_text_tonal_secondary_color_success: {
color: theme.methods.palette.color.value('success', 30)
},
version_text_tonal_secondary_color_warning: {
color: theme.methods.palette.color.value('warning', 30)
},
version_text_tonal_secondary_color_error: {
color: theme.methods.palette.color.value('error', 30)
},
// Outlined
version_outlined: {},
// Color
version_outlined_color_themed: {
color: theme.palette.text.default.primary,
backgroundColor: theme.palette.light ? theme.palette.background.default.primary : theme.palette.background.default.quaternary,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 40 : 60]}`
},
version_outlined_color_inverted: {
color: theme.palette.background.default.primary,
backgroundColor: theme.palette.light ? theme.palette.background.dark.primary : theme.palette.background.light.primary,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 60 : 40]}`
},
version_outlined_color_default: {
color: theme.palette.text.default.primary,
backgroundColor: theme.palette.background.default.primary,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 40 : 60]}`
},
version_outlined_color_inherit: {
color: 'inherit',
backgroundColor: 'transparent',
boxShadow: `inset 0px 0px 0px 1px currentColor`
},
version_outlined_color_neutral: {
color: theme.methods.palette.color.text(theme.palette.color.neutral.main, true, 'light'),
backgroundColor: theme.palette.color.neutral.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.neutral[10]}`
},
version_outlined_color_primary: {
color: theme.methods.palette.color.text(theme.palette.color.primary.main, true, 'light'),
backgroundColor: theme.palette.color.primary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.primary[10]}`
},
version_outlined_color_secondary: {
color: theme.methods.palette.color.text(theme.palette.color.secondary.main, true, 'light'),
backgroundColor: theme.palette.color.secondary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.secondary[10]}`
},
version_outlined_color_tertiary: {
color: theme.methods.palette.color.text(theme.palette.color.tertiary.main, true, 'light'),
backgroundColor: theme.palette.color.tertiary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.tertiary[10]}`
},
version_outlined_color_quaternary: {
color: theme.methods.palette.color.text(theme.palette.color.quaternary.main, true, 'light'),
backgroundColor: theme.palette.color.quaternary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.quaternary[10]}`
},
version_outlined_color_info: {
color: theme.methods.palette.color.text(theme.palette.color.info.main, true, 'light'),
backgroundColor: theme.palette.color.info.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.info[10]}`
},
version_outlined_color_success: {
color: theme.methods.palette.color.text(theme.palette.color.success.main, true, 'light'),
backgroundColor: theme.palette.color.success.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.success[10]}`
},
version_outlined_color_warning: {
color: theme.methods.palette.color.text(theme.palette.color.warning.main, true, 'light'),
backgroundColor: theme.palette.color.warning.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.warning[10]}`
},
version_outlined_color_error: {
color: theme.methods.palette.color.text(theme.palette.color.error.main, true, 'light'),
backgroundColor: theme.palette.color.error.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.error[10]}`
},
// Tonal
version_outlined_tonal_color_neutral: {
color: theme.methods.palette.color.value('neutral', 5),
backgroundColor: theme.methods.palette.color.value('neutral', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('neutral', 10)}`
},
version_outlined_tonal_color_primary: {
color: theme.methods.palette.color.value('primary', 5),
backgroundColor: theme.methods.palette.color.value('neutral', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('primary', 10)}`
},
version_outlined_tonal_color_secondary: {
color: theme.methods.palette.color.value('secondary', 5),
backgroundColor: theme.methods.palette.color.value('secondary', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('secondary', 10)}`
},
version_outlined_tonal_color_tertiary: {
color: theme.methods.palette.color.value('tertiary', 5),
backgroundColor: theme.methods.palette.color.value('tertiary', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('tertiary', 10)}`
},
version_outlined_tonal_color_quaternary: {
color: theme.methods.palette.color.value('quaternary', 5),
backgroundColor: theme.methods.palette.color.value('quaternary', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('quaternary', 10)}`
},
version_outlined_tonal_color_info: {
color: theme.methods.palette.color.value('info', 5),
backgroundColor: theme.methods.palette.color.value('info', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('info', 10)}`
},
version_outlined_tonal_color_success: {
color: theme.methods.palette.color.value('success', 5),
backgroundColor: theme.methods.palette.color.value('success', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('success', 10)}`
},
version_outlined_tonal_color_warning: {
color: theme.methods.palette.color.value('warning', 5),
backgroundColor: theme.methods.palette.color.value('warning', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('warning', 10)}`
},
version_outlined_tonal_color_error: {
color: theme.methods.palette.color.value('error', 5),
backgroundColor: theme.methods.palette.color.value('error', 99),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('error', 10)}`
},
version_outlined_tonal_secondary_color_neutral: {
color: theme.methods.palette.color.value('neutral', 10),
backgroundColor: theme.methods.palette.color.value('neutral', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('neutral', 10)}`
},
version_outlined_tonal_secondary_color_primary: {
color: theme.methods.palette.color.value('primary', 10),
backgroundColor: theme.methods.palette.color.value('neutral', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('primary', 10)}`
},
version_outlined_tonal_secondary_color_secondary: {
color: theme.methods.palette.color.value('secondary', 10),
backgroundColor: theme.methods.palette.color.value('secondary', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('secondary', 10)}`
},
version_outlined_tonal_secondary_color_tertiary: {
color: theme.methods.palette.color.value('tertiary', 10),
backgroundColor: theme.methods.palette.color.value('tertiary', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('tertiary', 10)}`
},
version_outlined_tonal_secondary_color_quaternary: {
color: theme.methods.palette.color.value('quaternary', 10),
backgroundColor: theme.methods.palette.color.value('quaternary', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('quaternary', 10)}`
},
version_outlined_tonal_secondary_color_info: {
color: theme.methods.palette.color.value('info', 10),
backgroundColor: theme.methods.palette.color.value('info', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('info', 10)}`
},
version_outlined_tonal_secondary_color_success: {
color: theme.methods.palette.color.value('success', 10),
backgroundColor: theme.methods.palette.color.value('success', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('success', 10)}`
},
version_outlined_tonal_secondary_color_warning: {
color: theme.methods.palette.color.value('warning', 10),
backgroundColor: theme.methods.palette.color.value('warning', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('warning', 10)}`
},
version_outlined_tonal_secondary_color_error: {
color: theme.methods.palette.color.value('error', 10),
backgroundColor: theme.methods.palette.color.value('error', 95),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('error', 10)}`
},
// Outlined without backgroundColor
'version_outlined-without-background': {},
// Color
'version_outlined-without-background_color_themed': {
color: theme.palette.light ? theme.palette.text.default.primary : theme.palette.background.default.secondary,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.light ? theme.palette.text.default.primary : theme.palette.background.default.secondary}`
},
'version_outlined-without-background_color_inverted': {
color: theme.palette.background.default.primary,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.background.default.primary}`
},
'version_outlined-without-background_color_default': {
color: theme.palette.text.default.primary,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.text.default.primary}`
},
'version_outlined-without-background_color_inherit': {
color: 'inherit',
boxShadow: `inset 0px 0px 0px 1px currentColor`
},
'version_outlined-without-background_color_neutral': {
color: theme.palette.color.neutral.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.neutral.main}`
},
'version_outlined-without-background_color_primary': {
color: theme.palette.color.primary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.primary.main}`
},
'version_outlined-without-background_color_secondary': {
color: theme.palette.color.secondary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.secondary.main}`
},
'version_outlined-without-background_color_tertiary': {
color: theme.palette.color.tertiary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.tertiary.main}`
},
'version_outlined-without-background_color_quaternary': {
color: theme.palette.color.quaternary.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.quaternary.main}`
},
'version_outlined-without-background_color_info': {
color: theme.palette.color.info.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.info.main}`
},
'version_outlined-without-background_color_success': {
color: theme.palette.color.success.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.success.main}`
},
'version_outlined-without-background_color_warning': {
color: theme.palette.color.warning.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.warning.main}`
},
'version_outlined-without-background_color_error': {
color: theme.palette.color.error.main,
boxShadow: `inset 0px 0px 0px 1px ${theme.palette.color.error.main}`
},
// Tonal
'version_outlined-without-background_tonal_color_neutral': {
color: theme.methods.palette.color.value('neutral', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('neutral', 30)}`
},
'version_outlined-without-background_tonal_color_primary': {
color: theme.methods.palette.color.value('primary', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('primary', 30)}`
},
'version_outlined-without-background_tonal_color_secondary': {
color: theme.methods.palette.color.value('secondary', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('secondary', 30)}`
},
'version_outlined-without-background_tonal_color_tertiary': {
color: theme.methods.palette.color.value('tertiary', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('tertiary', 30)}`
},
'version_outlined-without-background_tonal_color_quaternary': {
color: theme.methods.palette.color.value('quaternary', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('quaternary', 30)}`
},
'version_outlined-without-background_tonal_color_info': {
color: theme.methods.palette.color.value('info', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('info', 30)}`
},
'version_outlined-without-background_tonal_color_success': {
color: theme.methods.palette.color.value('success', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('success', 30)}`
},
'version_outlined-without-background_tonal_color_warning': {
color: theme.methods.palette.color.value('warning', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('warning', 30)}`
},
'version_outlined-without-background_tonal_color_error': {
color: theme.methods.palette.color.value('error', 40),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('error', 30)}`
},
'version_outlined-without-background_tonal_secondary_color_neutral': {
color: theme.methods.palette.color.value('neutral', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('neutral', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_primary': {
color: theme.methods.palette.color.value('primary', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('primary', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_secondary': {
color: theme.methods.palette.color.value('secondary', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('secondary', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_tertiary': {
color: theme.methods.palette.color.value('tertiary', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('tertiary', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_quaternary': {
color: theme.methods.palette.color.value('quaternary', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('quaternary', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_info': {
color: theme.methods.palette.color.value('info', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('info', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_success': {
color: theme.methods.palette.color.value('success', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('success', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_warning': {
color: theme.methods.palette.color.value('warning', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('warning', 20)}`
},
'version_outlined-without-background_tonal_secondary_color_error': {
color: theme.methods.palette.color.value('error', 30),
boxShadow: `inset 0px 0px 0px 1px ${theme.methods.palette.color.value('error', 20)}`
},
// Elevation
elevation_0: {},
elevation_1: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[1] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.04))' : undefined
},
elevation_2: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[2] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05))' : undefined
},
elevation_3: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[3] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.07))' : undefined
},
elevation_4: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[4] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.08))' : undefined
},
elevation_6: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[6] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1))' : undefined
},
elevation_8: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[8] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.12))' : undefined
},
elevation_9: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[9] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.13))' : undefined
},
elevation_12: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[12] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16))' : undefined
},
elevation_16: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[16] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2))' : undefined
},
elevation_24: {
boxShadow: theme.palette.light ? theme.shadows.values.neutral[24] : undefined,
backgroundImage: !theme.palette.light ? 'linear-gradient(rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.28))' : undefined
},
noBackground: {
background: 'none'
},
noOutline: {
boxShadow: 'none'
}
}), {
name: 'amaui-Surface'
});
const Surface = /*#__PURE__*/React.forwardRef((props_, ref) => {
const theme = useAmauiTheme();
const props = React.useMemo(() => _objectSpread(_objectSpread(_objectSpread({}, theme?.ui?.elements?.all?.props?.default), theme?.ui?.elements?.amauiSurface?.props?.default), props_), [props_]);
const {
classes
} = useStyle();
const {
tonal = true,
color: color_ = 'default',
version = 'filled',
elevation,
backgroundOpacity,
noBackground,
noOutline,
AdditionalProps,
Component = 'div',
className,
style,
children
} = props,
other = _objectWithoutProperties(props, _excluded);
const styles = {
root: {},
children: {}
};
let color = color_;
let palette;
if (!theme.palette.color[color] && !['themed', 'inverted', 'default', 'inherit'].includes(color)) {
palette = theme.methods.color(color);
if (tonal) {
styles.root.color = theme.methods.palette.color.value(color, 10, true, palette);
if (version === 'filled') styles.root.backgroundColor = tonal === true ? palette[theme.palette.light ? 80 : 30] : theme.methods.palette.color.value(color, 70, true, palette);
if (version === 'outlined') {
styles.root.color = theme.methods.palette.color.value(color, tonal === 'secondary' ? 10 : 5, true, palette);
styles.root.backgroundColor = theme.methods.palette.color.value(color, tonal === 'secondary' ? 95 : 99, true, palette);
styles.root.boxShadow = `inset 0px 0px 0px 1px ${theme.methods.palette.color.value(color, tonal === 'secondary' ? 20 : 10, true, palette)}`;
}
if (version === 'outlined-without-background') {
styles.root.color = theme.methods.palette.color.value(color, tonal === 'secondary' ? 30 : 40, true, palette);
styles.root.boxShadow = `inset 0px 0px 0px 1px ${theme.methods.palette.color.value(color, tonal === 'secondary' ? 20 : 30, true, palette)}`;
delete styles.root.backgroundColor;
}
if (version === 'text') styles.root.color = theme.methods.palette.color.value(color, tonal === 'secondary' ? 30 : 40, true, palette);
} else {
styles.root.color = theme.methods.palette.color.text(palette.main, true, 'light');
if (['outlined', 'filled'].includes(version)) styles.root.backgroundColor = palette.main;
if (version === 'outlined') styles.root.boxShadow = `inset 0px 0px 0px 1px ${palette[10]}`;
if (version === 'outlined-without-background') {
styles.root.color = palette[40];
styles.root.boxShadow = `inset 0px 0px 0px 1px ${palette[30]}`;
}
if (version === 'text') styles.root.color = palette.main;
}
styles.children.backgroundColor = styles.root.backgroundColor;
} else {
if (version === 'filled') {
if (color === 'themed') {
styles.children.backgroundColor = theme.palette.light ? theme.palette.background.default.primary : theme.palette.background.default.quaternary;
styles.children.color = theme.methods.palette.color.text(styles.children.backgroundColor, true, 'light');
} else if (color === 'inverted') {
styles.children.backgroundColor = theme.palette.light ? theme.palette.background.dark.primary : theme.palette.background.light.primary;
styles.children.color = theme.methods.palette.color.text(styles.children.backgroundColor, true, 'light');
} else if (color === 'default') {
styles.children.backgroundColor = theme.palette.background.default.primary;
styles.children.color = theme.methods.palette.color.text(styles.children.backgroundColor, true, 'light');
} else if (color === 'inherit') {
styles.children.color = 'inherit';
} else {
if (!tonal) {
styles.children.color = theme.methods.palette.color.text(theme.palette.color[color].main, true, 'light');
styles.children.backgroundColor = theme.palette.color[color].main;
} else if (tonal === 'secondary') {
styles.children.color = theme.methods.palette.color.value(color, 10);
styles.children.backgroundColor = theme.methods.palette.color.value(color, 80);
} else {
styles.children.color = theme.methods.palette.color.value(color, 10);
styles.children.backgroundColor = theme.methods.palette.color.value(color, 90);
}
}
} else if (version === 'text') {
if (color === 'themed') {
styles.children.color = theme.palette.light ? theme.palette.text.default.primary : theme.palette.text.default.secondary;
} else if (color === 'inverted') {
styles.children.color = theme.palette.background.default.primary;
} else if (color === 'default') {
styles.children.color = theme.palette.text.default.primary;
} else if (color === 'inherit') {
styles.children.color = 'inherit';
} else {
if (!tonal) {
styles.children.color = theme.palette.color[color].main;
} else if (tonal === 'secondary') {
styles.children.color = theme.methods.palette.color.value(color, 30);
} else {
styles.children.color = theme.methods.palette.color.value(color, 40);
}
}
} else if (version === 'outlined') {
if (color === 'themed') {
styles.children.color = theme.palette.text.default.primary;
styles.children.backgroundColor = theme.palette.light ? theme.palette.background.default.primary : theme.palette.background.default.quaternary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 40 : 60]}`;
} else if (color === 'inverted') {
styles.children.color = theme.palette.background.default.primary;
styles.children.backgroundColor = theme.palette.light ? theme.palette.background.dark.primary : theme.palette.background.light.primary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 60 : 40]}`;
} else if (color === 'default') {
styles.children.color = theme.palette.text.default.primary;
styles.children.backgroundColor = theme.palette.background.default.primary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 40 : 60]}`;
} else if (color === 'inherit') {
styles.children.color = 'inherit';
styles.children.boxShadow = `inset 0px 0px 0px 1px currentColor`;
} else {
if (!tonal) {
styles.children.color = theme.methods.palette.color.text(theme.palette.color.neutral.main, true, 'light');
styles.children.backgroundColor = theme.palette.color.neutral.main;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.color.neutral[10]}`;
} else if (tonal === 'secondary') {
styles.children.color = theme.methods.palette.color.value(color, 10);
styles.children.backgroundColor = theme.methods.palette.color.value(color, 95);
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.methods.palette.color.value(color, 10)}`;
} else {
styles.children.color = theme.methods.palette.color.value(color, 5);
styles.children.backgroundColor = theme.methods.palette.color.value(color, 99);
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.methods.palette.color.value(color, 10)}`;
}
}
} else if (version === 'outlined-without-background') {
if (color === 'themed') {
styles.children.color = theme.palette.light ? theme.palette.text.default.primary : theme.palette.background.default.secondary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.light ? theme.palette.text.default.primary : theme.palette.background.default.secondary}`;
} else if (color === 'inverted') {
styles.children.color = theme.palette.background.default.primary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.background.default.primary}`;
} else if (color === 'default') {
styles.children.color = theme.palette.text.default.primary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.color.neutral[theme.palette.light ? 40 : 60]}`;
} else if (color === 'inherit') {
styles.children.color = 'inherit';
styles.children.boxShadow = `inset 0px 0px 0px 1px currentColor`;
} else {
if (!tonal) {
styles.children.color = theme.palette.text.default.primary;
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.palette.text.default.primary}`;
} else if (tonal === 'secondary') {
styles.children.color = theme.methods.palette.color.value(color, 30);
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.methods.palette.color.value(color, 20)}`;
} else {
styles.children.color = theme.methods.palette.color.value(color, 40);
styles.children.boxShadow = `inset 0px 0px 0px 1px ${theme.methods.palette.color.value(color, 30)}`;
}
}
}
palette = theme.palette.color[color];
}
if (backgroundOpacity !== undefined) {
if (color === 'themed') color = theme.palette.light ? theme.palette.background.default.primary : theme.palette.background.default.quaternary;
if (color === 'inverted') color = theme.palette.light ? theme.palette.background.dark.primary : theme.palette.background.light.primary;
if (color === 'default') color = theme.palette.background.default.primary;
if (color === 'inherit') color = theme.palette.background.default.primary;
palette = theme.methods.color(color);
if (tonal) {
if (version === 'filled') styles.root.backgroundColor = theme.methods.palette.color.value(color, tonal === 'secondary' ? 80 : 90, true, palette);
if (version === 'outlined') {
styles.root.backgroundColor = theme.methods.palette.color.value(color, tonal === 'secondary' ? 95 : 99, true, palette);
}
} else {
if (['outlined', 'filled'].includes(version)) styles.root.backgroundColor = theme.methods.palette.color.value(color, 'main', true, palette);
}
if (styles.root.backgroundColor) styles.root.backgroundColor = theme.methods.palette.color.colorToRgb(styles.root.backgroundColor, backgroundOpacity);
}
if (!palette) {
let paletteColor = theme.palette.text.default.primary;
if (['default', 'inherit'].includes(color)) paletteColor = theme.palette.text.default.primary;
if (['themed'].includes(color)) paletteColor = theme.palette.text.default.secondary;
if (['inverted'].includes(color)) paletteColor = theme.palette.background.default.primary;
palette = theme.methods.color(paletteColor);
}
if (is('function', children)) return children(_objectSpread(_objectSpread({}, styles.children), {}, {
palette
}));
return /*#__PURE__*/React.createElement(Component, _extends({
ref: ref
}, AdditionalProps, {
className: classNames([staticClassName('Surface', theme) && ['amaui-Surface-root'], AdditionalProps?.className, className, classes.root, classes[`version_${version}`], classes[`version_${version}_color_${color}`], classes[`elevation_${elevation}`], tonal && classes[`version_${version}_tonal_${is('string', tonal) ? `${tonal}_` : ''}color_${color}`], noBackground && classes.noBackground, noOutline && classes.noOutline]),
style: _objectSpread(_objectSpread({}, style), styles.root)
}, other), children && React.Children.toArray(children).filter(Boolean).map((item, index) => {
if (is('simple', item)) return item;
return /*#__PURE__*/React.cloneElement(item, {
key: `${item.key || ''}${index}`
});
}));
});
Surface.displayName = 'amaui-Surface';
export default Surface;