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,
},
],
},