UNPKG

@sveltestrap/sveltestrap

Version:

Bootstrap components for Svelte

281 lines (246 loc) 6.45 kB
import { Meta, Canvas, Controls, Story, Source } from '@storybook/blocks'; import * as DropdownStories from './Dropdown.stories'; <Meta title="Components/Dropdown " /> # Dropdown <small class="bootstrap-docs">[Bootstrap Dropdown](https://getbootstrap.com/docs/5.3/components/dropdowns/)</small> The `<Dropdown>` component is a user interface element that displays lists of links and more through contextual overlays. <Canvas> <Story of={DropdownStories.Basic} /> </Canvas> <Controls of={DropdownStories.Basic} /> ## Alignment <Canvas withSource="none"> <Story of={DropdownStories.Alignment} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from '@sveltestrap/sveltestrap'; </script> <Dropdown> <DropdownToggle caret>Dropdown's menu is right-aligned</DropdownToggle> <DropdownMenu end> <DropdownItem header>Header</DropdownItem> <DropdownItem disabled>Action</DropdownItem> <DropdownItem>Another Action</DropdownItem> </DropdownMenu> </Dropdown> `} /> ## Direction <Canvas withSource="none"> <Story of={DropdownStories.Direction} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from '@sveltestrap/sveltestrap'; </script> {#each directions as direction} <Dropdown {direction}> <DropdownToggle color="primary" caret>Drop{direction}</DropdownToggle> <DropdownMenu> <DropdownItem>Another Action</DropdownItem> <DropdownItem>Another Action</DropdownItem> </DropdownMenu> </Dropdown> {/each} `} /> ## Sizes <Canvas withSource="none"> <Story of={DropdownStories.Sizes} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from '@sveltestrap/sveltestrap'; </script> {#each sizes as size} <Dropdown {size}> <DropdownToggle color="primary" caret>Dropdown {size}</DropdownToggle> <DropdownMenu> <DropdownItem>Another Action</DropdownItem> <DropdownItem>Another Action</DropdownItem> </DropdownMenu> </Dropdown> {/each} `} /> ## Container <Canvas withSource="none"> <Story of={DropdownStories.Container} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle, Input } from '@sveltestrap/sveltestrap'; </script> <Dropdown {isOpen} toggle={() => (isOpen = !isOpen)}> <DropdownToggle tag="div" class="d-inline-block"> <Input /> </DropdownToggle> <DropdownMenu> <DropdownItem header>Header</DropdownItem> <DropdownItem disabled>Action</DropdownItem> <DropdownItem>Another Action</DropdownItem> <DropdownItem divider /> <DropdownItem>Another Action</DropdownItem> </DropdownMenu> </Dropdown> `} /> ## SetActiveFromChild <Canvas withSource="none"> <Story of={DropdownStories.SetActiveFromChild} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { Dropdown DropdownItem, DropdownMenu, DropdownToggle, Nav, NavItem, NavLink, Navbar, } from '@sveltestrap/sveltestrap'; </script> <Navbar color="dark" dark expand="md"> <Nav navbar> <NavItem> <NavLink href="/components/">Inactive Link</NavLink> </NavItem> <Dropdown nav setActiveFromChild> <DropdownToggle nav class="nav-link" caret> Dropdown </DropdownToggle> <DropdownMenu> <DropdownItem href="#" active> Lancelot </DropdownItem> <DropdownItem href="#">Link</DropdownItem> <DropdownItem href="#">Secret</DropdownItem> <DropdownItem href="#">Chimp</DropdownItem> </DropdownMenu> </Dropdown> </Nav> </Navbar> `} /> ## AutoClose <Canvas withSource="none"> <Story of={DropdownStories.AutoClose} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { ButtonToolbar, Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from '@sveltestrap/sveltestrap'; </script> <ButtonToolbar> <Dropdown autoClose={true}> <DropdownToggle color="primary" caret>Default</DropdownToggle> <DropdownMenu> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> </DropdownMenu> </Dropdown> <Dropdown autoClose="outside"> <DropdownToggle color="success" caret>Outside</DropdownToggle> <DropdownMenu> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> </DropdownMenu> </Dropdown> <Dropdown autoClose="inside"> <DropdownToggle color="warning" caret>Inside</DropdownToggle> <DropdownMenu> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> </DropdownMenu> </Dropdown> <Dropdown autoClose={false}> <DropdownToggle color="danger" caret>manually</DropdownToggle> <DropdownMenu> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> <DropdownItem>Menu item</DropdownItem> </DropdownMenu> </Dropdown> </ButtonToolbar> `} /> ## Theming <Canvas withSource="none"> <Story of={DropdownStories.Theming} /> </Canvas> <Source dark language="html" code={` <script lang="ts"> import { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from '@sveltestrap/sveltestrap'; </script> <Dropdown theme="dark" autoClose="manual" isOpen={true}> <DropdownToggle color="dark" caret>Dark Theme</DropdownToggle> <DropdownMenu> <DropdownItem header>Header</DropdownItem> <DropdownItem disabled>Action</DropdownItem> <DropdownItem>Another Action</DropdownItem> <DropdownItem divider /> <DropdownItem>Another Action</DropdownItem> </DropdownMenu> </Dropdown> <Dropdown theme="light" autoClose="manual" isOpen={true}> <DropdownToggle color="light" caret>Light Theme</DropdownToggle> <DropdownMenu> <DropdownItem header>Header</DropdownItem> <DropdownItem disabled>Action</DropdownItem> <DropdownItem>Another Action</DropdownItem> <DropdownItem divider /> <DropdownItem>Another Action</DropdownItem> </DropdownMenu> </Dropdown>`} />