import React from "react"; /* eslint-disable react/no-children-prop */ import { createComponentTemplate } from "vibe-storybook-components"; import SplitButton from "../SplitButton"; import Button from "../../Button/Button"; import { Add, Announcement, Check, Download, Favorite, Moon, Sun, Upload } from "../../Icon/Icons"; import { createStoryMetaSettingsDecorator } from "../../../storybook"; import SplitButtonMenu from "../SplitButtonMenu/SplitButtonMenu"; import MenuItem from "../../Menu/MenuItem/MenuItem"; import Menu from "../../Menu/Menu/Menu"; import MenuTitle from "../../Menu/MenuTitle/MenuTitle"; import "./SplitButton.stories.scss"; const metaSettings = createStoryMetaSettingsDecorator({ component: SplitButton, enumPropNamesArray: [ "kind", "dialogPaddingSize", { propName: "secondaryDialogPosition", enumName: "secondaryPositions" } ], iconPropNamesArray: ["leftIcon", "rightIcon"], actionPropsArray: ["secondaryDialogContent", "onSecondaryDialogDidShow", "onSecondaryDialogDidHide", "onClick"] }); export default { title: "Buttons/SplitButton", component: SplitButton, subcomponents: { SplitButtonMenu }, argTypes: metaSettings.argTypes, decorators: metaSettings.decorators }; const splitButtonTemplate = createComponentTemplate(SplitButton); export const Overview = { render: splitButtonTemplate.bind({}), name: "Overview", args: { children: "Button", secondaryDialogContent: () => ( ) }, parameters: { docs: { liveEdit: { isEnabled: false } } } }; export const Types = { render: () => ( <> } /> } /> } /> ), name: "Types", parameters: { docs: { liveEdit: { scope: { Check, Announcement } } } } }; export const Sizes = { render: () => ( <> } /> } /> } /> ), name: "Sizes", parameters: { docs: { liveEdit: { scope: { Check, Announcement } } } } }; export const SplitButtonWithIcons = { render: () => ( <> } > Left icon } > Right icon ), name: "Split button with icons", parameters: { docs: { liveEdit: { scope: { Add, Check, Announcement } } } } }; export const SplitButtonAsThePrimaryAction = { render: () => ( } /> ), name: "Split button as the primary action", parameters: { docs: { liveEdit: { scope: { Download, Upload } } } } }; export const SecondarySplitButton = { render: () => ( <> } /> ), name: "Secondary split button" }; export const CustomMenu = { render: () => ( } > Custom menu ), name: "Custom menu", parameters: { docs: { liveEdit: { scope: { Sun, Moon, Favorite } } } } };