You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.6 KiB
69 lines
2.6 KiB
|
4 months ago
|
// SplitButton — eidos compound API.
|
||
|
|
//
|
||
|
|
// import { SplitButton } from '$uix/eidos/components/split-button';
|
||
|
|
//
|
||
|
|
// <SplitButton bind:open variant="solid" aria-label="Save options">
|
||
|
|
// <SplitButton.Primary onclick={save}>Save</SplitButton.Primary>
|
||
|
|
// <SplitButton.Menu>
|
||
|
|
// <SplitButton.Item onSelect={saveAs}>Save as…</SplitButton.Item>
|
||
|
|
// <SplitButton.Item onSelect={saveCopy}>Save a copy</SplitButton.Item>
|
||
|
|
// <SplitButton.Separator />
|
||
|
|
// <SplitButton.Item intent="threat" onSelect={discard}>Discard</SplitButton.Item>
|
||
|
|
// </SplitButton.Menu>
|
||
|
|
// </SplitButton>
|
||
|
|
//
|
||
|
|
// The ▾ trigger is auto-rendered (a chevron that rotates while the menu is
|
||
|
|
// open); override its glyph with the `icon` prop. The menu surface
|
||
|
|
// (`Menu`/`Item`/`Separator`/`Group`/checkbox/radio/sub…) is re-exported
|
||
|
|
// from `<DropdownMenu>` — the menu IS a DropdownMenu.
|
||
|
|
import SplitButtonComponent from './split-button.svelte';
|
||
|
|
import Primary from './split-button-primary.svelte';
|
||
|
|
import Menu from './split-button-menu.svelte';
|
||
|
|
import { DropdownMenu } from '$uix/eidos/components/dropdown-menu';
|
||
|
|
|
||
|
|
type SplitButtonNamespace = typeof SplitButtonComponent & {
|
||
|
|
Primary: typeof Primary;
|
||
|
|
Menu: typeof Menu;
|
||
|
|
Item: typeof DropdownMenu.Item;
|
||
|
|
Separator: typeof DropdownMenu.Separator;
|
||
|
|
Group: typeof DropdownMenu.Group;
|
||
|
|
GroupHeading: typeof DropdownMenu.GroupHeading;
|
||
|
|
CheckboxItem: typeof DropdownMenu.CheckboxItem;
|
||
|
|
CheckboxGroup: typeof DropdownMenu.CheckboxGroup;
|
||
|
|
RadioGroup: typeof DropdownMenu.RadioGroup;
|
||
|
|
RadioItem: typeof DropdownMenu.RadioItem;
|
||
|
|
Sub: typeof DropdownMenu.Sub;
|
||
|
|
SubTrigger: typeof DropdownMenu.SubTrigger;
|
||
|
|
SubContent: typeof DropdownMenu.SubContent;
|
||
|
|
Arrow: typeof DropdownMenu.Arrow;
|
||
|
|
};
|
||
|
|
|
||
|
|
const SplitButton = SplitButtonComponent as SplitButtonNamespace;
|
||
|
|
SplitButton.Primary = Primary;
|
||
|
|
SplitButton.Menu = Menu;
|
||
|
|
SplitButton.Item = DropdownMenu.Item;
|
||
|
|
SplitButton.Separator = DropdownMenu.Separator;
|
||
|
|
SplitButton.Group = DropdownMenu.Group;
|
||
|
|
SplitButton.GroupHeading = DropdownMenu.GroupHeading;
|
||
|
|
SplitButton.CheckboxItem = DropdownMenu.CheckboxItem;
|
||
|
|
SplitButton.CheckboxGroup = DropdownMenu.CheckboxGroup;
|
||
|
|
SplitButton.RadioGroup = DropdownMenu.RadioGroup;
|
||
|
|
SplitButton.RadioItem = DropdownMenu.RadioItem;
|
||
|
|
SplitButton.Sub = DropdownMenu.Sub;
|
||
|
|
SplitButton.SubTrigger = DropdownMenu.SubTrigger;
|
||
|
|
SplitButton.SubContent = DropdownMenu.SubContent;
|
||
|
|
SplitButton.Arrow = DropdownMenu.Arrow;
|
||
|
|
|
||
|
|
export { SplitButton };
|
||
|
|
export default SplitButton;
|
||
|
|
|
||
|
|
export type {
|
||
|
|
SplitButtonProps,
|
||
|
|
SplitButtonVariant,
|
||
|
|
SplitButtonSize,
|
||
|
|
SplitButtonColor,
|
||
|
|
SplitButtonPrimaryProps,
|
||
|
|
SplitButtonMenuProps,
|
||
|
|
SplitButtonItemProps
|
||
|
|
} from './types';
|