diff --git a/packages/ui/components/popover/AnimatedPopover.tsx b/packages/ui/components/popover/AnimatedPopover.tsx index 3803d8405a..33735a68f8 100644 --- a/packages/ui/components/popover/AnimatedPopover.tsx +++ b/packages/ui/components/popover/AnimatedPopover.tsx @@ -59,10 +59,13 @@ export const AnimatedPopover = ({ ) : (
-
+
{text} {count && count > 0 && ( -
{count}
+
+   + {count} +
)}
diff --git a/packages/ui/components/popover/popover.stories.mdx b/packages/ui/components/popover/popover.stories.mdx new file mode 100644 index 0000000000..0a3681a6e9 --- /dev/null +++ b/packages/ui/components/popover/popover.stories.mdx @@ -0,0 +1,138 @@ +import { TooltipProvider } from "@radix-ui/react-tooltip"; +import { Canvas, Meta, Story } from "@storybook/addon-docs"; +import { Fragment } from "react"; + +import { FilterCheckboxFieldsContainer } from "@calcom/features/filters/components/TeamsFilter"; +import { + CustomArgsTable, + Examples, + Example, + Title, + VariantsTable, + VariantRow, +} from "@calcom/storybook/components"; +import { Button, CheckboxField } from "@calcom/ui"; + +import { List, ListItem } from "../list"; +import { AnimatedPopover } from "./AnimatedPopover"; + + + + + +## Definition + +The `Popover` component is used to display rich content in a portal. + +## Structure + +The `Popover` component can be used to display a rich content in a portal. + +<CustomArgsTable of={AnimatedPopover} /> + +## Examples + +<Examples> + <Example title="Default"> + <TooltipProvider> + <AnimatedPopover text="Go"> + <FilterCheckboxFieldsContainer> + {["First", "Second", "Third"]?.map((eventType) => ( + <div key={eventType.value} className="items-center hover:bg-muted flex cursor-pointer px-4 py-2"> + <CheckboxField + checked={false} + onChange={(e) => { + console.log("changed ", e); + }} + description={eventType} + /> + </div> + ))} + </FilterCheckboxFieldsContainer> + </AnimatedPopover> + </TooltipProvider> + </Example> + <Example title="With Trigger"> + <TooltipProvider> + <AnimatedPopover text="Go" Trigger={<button>click here</button>}> + <FilterCheckboxFieldsContainer> + {["First", "Second", "Third"]?.map((eventType) => ( + <div key={eventType.value} className="items-center hover:bg-muted flex cursor-pointer px-4 py-2"> + <CheckboxField + checked={false} + onChange={(e) => { + console.log("changed ", e); + }} + description={eventType} + /> + </div> + ))} + </FilterCheckboxFieldsContainer> + </AnimatedPopover> + </TooltipProvider> + </Example> + <Example title="With count"> + <TooltipProvider> + <AnimatedPopover text="Go here" count={1}> + <FilterCheckboxFieldsContainer> + {["First", "Second", "Third"]?.map((eventType) => ( + <div key={eventType.value} className="items-center hover:bg-muted flex cursor-pointer px-4 py-2"> + <CheckboxField + checked={false} + onChange={(e) => { + console.log("changed ", e); + }} + description={eventType} + /> + </div> + ))} + </FilterCheckboxFieldsContainer> + </AnimatedPopover> + </TooltipProvider> + </Example> +</Examples> + +## Popover Story + +<Canvas> + <Story + name="Popover" + args={{ + text: "Go", + childrenText: "Here is it", + defaultOpen: false, + }} + argTypes={{ + count: { + control: { + type: "number", + }, + }, + }}> + {({ text, childrenText, count, defaultOpen }) => ( + <VariantsTable titles={["Default"]} columnMinWidth={50}> + <VariantRow> + <TooltipProvider> + <AnimatedPopover text={text} count={count} defaultOpen={defaultOpen}> + <FilterCheckboxFieldsContainer> + {["First", "Second", "Third"]?.map((eventType) => ( + <div + key={eventType.value} + className="items-center hover:bg-muted flex cursor-pointer px-4 py-2"> + <CheckboxField + checked={false} + onChange={(e) => { + console.log("changed ", e); + }} + description={eventType} + /> + </div> + ))} + </FilterCheckboxFieldsContainer> + </AnimatedPopover> + </TooltipProvider> + </VariantRow> + </VariantsTable> + )} + </Story> +</Canvas>