diff --git a/app/client/src/components/ads/Callout.tsx b/app/client/src/components/ads/Callout.tsx index 6288ba53a0..d3ff387d38 100644 --- a/app/client/src/components/ads/Callout.tsx +++ b/app/client/src/components/ads/Callout.tsx @@ -1,10 +1,64 @@ -import { CommonComponentProps } from "./common"; -import { Variant } from "./Button"; +import React from "react"; +import { CommonComponentProps, Classes } from "./common"; +import Text, { TextType } from "./Text"; +import styled from "styled-components"; + +export type Variant = "note" | "warning"; +export type Background = "dark" | "light"; type CalloutProps = CommonComponentProps & { - variant?: Variant; //default info + variant?: Variant; + background?: Background; + text: string; + fill?: boolean; }; -export default function Callout(props: CalloutProps) { - return null; +const CalloutContainer = styled.div<{ + variant?: Variant; + fill?: boolean; + background?: Background; +}>` + padding: ${props => props.theme.spaces[5]}px + ${props => props.theme.spaces[11] + 1}px; + background: ${props => + props.variant && props.background + ? props.theme.colors.callout[props.variant][props.background].bgColor + : null}; + height: 42px; + + ${props => + props.fill + ? ` + display: flex; + align-items: center; + justify-content: center; + ` + : null}; + + .${Classes.TEXT} { + color: ${props => + props.variant && props.background + ? props.theme.colors.callout[props.variant][props.background].color + : null}; + } +`; + +Callout.defaultProps = { + fill: false, + variant: "note", + background: "dark", +}; + +function Callout(props: CalloutProps) { + return ( + + {props.text} + + ); } + +export default Callout; diff --git a/app/client/src/components/stories/Callout.stories.tsx b/app/client/src/components/stories/Callout.stories.tsx new file mode 100644 index 0000000000..6c61953fb0 --- /dev/null +++ b/app/client/src/components/stories/Callout.stories.tsx @@ -0,0 +1,21 @@ +import React from "react"; +import { withKnobs, select, text, boolean } from "@storybook/addon-knobs"; +import Callout from "components/ads/Callout"; +import { StoryWrapper } from "components/ads/common"; + +export default { + title: "Callout", + component: Callout, + decorators: [withKnobs], +}; + +export const CalloutStory = () => ( + + + +); diff --git a/app/client/src/constants/DefaultTheme.tsx b/app/client/src/constants/DefaultTheme.tsx index 32471b2d9f..573bd86c93 100644 --- a/app/client/src/constants/DefaultTheme.tsx +++ b/app/client/src/constants/DefaultTheme.tsx @@ -572,6 +572,28 @@ export const theme: Theme = { darker: "#2B1A1D", darkest: "#462F32", }, + callout: { + note: { + dark: { + color: "#EE5A1A", + bgColor: "#241C1B", + }, + light: { + color: "#D44100", + bgColor: "#F8F3F0", + }, + }, + warning: { + light: { + color: "#DCAD00", + bgColor: "#FAF6E6", + }, + dark: { + color: "#E0B30E", + bgColor: "#29251A", + }, + }, + }, radio: { disabled: "#565656", }, diff --git a/app/client/src/mockResponses/PropertyPaneConfigResponse.tsx b/app/client/src/mockResponses/PropertyPaneConfigResponse.tsx index eb2f3473ea..968ce4d31e 100644 --- a/app/client/src/mockResponses/PropertyPaneConfigResponse.tsx +++ b/app/client/src/mockResponses/PropertyPaneConfigResponse.tsx @@ -114,7 +114,7 @@ const PropertyPaneConfigResponse: PropertyPaneConfigsResponse["data"] = { propertyName: "onDateSelected", label: "onDateSelected", controlType: "ACTION_SELECTOR", - isJSConvertible: true + isJSConvertible: true, }, ], },