@noxlovette/material 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/clickOutside.d.ts +3 -0
- package/dist/actions/clickOutside.js +13 -0
- package/dist/actions/floating.d.ts +20 -0
- package/dist/actions/floating.js +87 -0
- package/dist/actions/index.d.ts +4 -0
- package/dist/actions/index.js +4 -0
- package/dist/actions/keyboard.d.ts +3 -0
- package/dist/actions/keyboard.js +14 -0
- package/dist/actions/positionFloating.d.ts +10 -0
- package/dist/actions/positionFloating.js +59 -0
- package/dist/animation/containerTransform.d.ts +13 -0
- package/dist/animation/containerTransform.js +138 -0
- package/dist/animation/easing.d.ts +6 -0
- package/dist/animation/easing.js +78 -0
- package/dist/animation/enterExit.d.ts +3 -0
- package/dist/animation/enterExit.js +23 -0
- package/dist/animation/index.d.ts +5 -0
- package/dist/animation/index.js +5 -0
- package/dist/animation/outroClass.d.ts +3 -0
- package/dist/animation/outroClass.js +20 -0
- package/dist/animation/shapes.d.ts +35 -0
- package/dist/animation/shapes.js +37 -0
- package/dist/animation/shapesAnimatable.d.ts +35 -0
- package/dist/animation/shapesAnimatable.js +41 -0
- package/dist/animation/shapesAnimatableSmall.d.ts +29 -0
- package/dist/animation/shapesAnimatableSmall.js +33 -0
- package/dist/animation/sharedAxisTransition.d.ts +38 -0
- package/dist/animation/sharedAxisTransition.js +23 -0
- package/dist/animation/transition.d.ts +4 -0
- package/dist/animation/transition.js +4 -0
- package/dist/animation/transitionTypes.d.ts +8 -0
- package/dist/animation/transitionTypes.js +1 -0
- package/dist/components/badge/Badge.svelte +26 -0
- package/dist/components/badge/Badge.svelte.d.ts +12 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.js +6 -0
- package/dist/components/badge/theme.d.ts +16 -0
- package/dist/components/badge/theme.js +10 -0
- package/dist/components/badge/types.d.ts +18 -0
- package/dist/components/badge/types.js +1 -0
- package/dist/components/buttons/Button.svelte +53 -0
- package/dist/components/buttons/Button.svelte.d.ts +16 -0
- package/dist/components/buttons/ButtonIcon.svelte +79 -0
- package/dist/components/buttons/ButtonIcon.svelte.d.ts +14 -0
- package/dist/components/buttons/FAB.svelte +81 -0
- package/dist/components/buttons/FAB.svelte.d.ts +14 -0
- package/dist/components/buttons/FABMenu.svelte +86 -0
- package/dist/components/buttons/FABMenu.svelte.d.ts +8 -0
- package/dist/components/buttons/FABMenuItem.svelte +38 -0
- package/dist/components/buttons/FABMenuItem.svelte.d.ts +5 -0
- package/dist/components/buttons/Toggle.svelte +62 -0
- package/dist/components/buttons/Toggle.svelte.d.ts +11 -0
- package/dist/components/buttons/connected/ConnectedButtons.svelte +14 -0
- package/dist/components/buttons/connected/ConnectedButtons.svelte.d.ts +8 -0
- package/dist/components/buttons/connected/index.d.ts +2 -0
- package/dist/components/buttons/connected/index.js +5 -0
- package/dist/components/buttons/connected/types.d.ts +14 -0
- package/dist/components/buttons/connected/types.js +1 -0
- package/dist/components/buttons/index.d.ts +9 -0
- package/dist/components/buttons/index.js +13 -0
- package/dist/components/buttons/theme.d.ts +539 -0
- package/dist/components/buttons/theme.js +495 -0
- package/dist/components/buttons/types.d.ts +201 -0
- package/dist/components/buttons/types.js +1 -0
- package/dist/components/cards/Card.svelte +39 -0
- package/dist/components/cards/Card.svelte.d.ts +13 -0
- package/dist/components/cards/index.d.ts +3 -0
- package/dist/components/cards/index.js +6 -0
- package/dist/components/cards/theme.d.ts +37 -0
- package/dist/components/cards/theme.js +34 -0
- package/dist/components/cards/types.d.ts +31 -0
- package/dist/components/cards/types.js +1 -0
- package/dist/components/containers/app/App.svelte +32 -0
- package/dist/components/containers/app/App.svelte.d.ts +8 -0
- package/dist/components/containers/app/index.d.ts +3 -0
- package/dist/components/containers/app/index.js +6 -0
- package/dist/components/containers/app/theme.d.ts +3 -0
- package/dist/components/containers/app/theme.js +4 -0
- package/dist/components/containers/app/types.d.ts +25 -0
- package/dist/components/containers/app/types.js +1 -0
- package/dist/components/containers/bottom-sheet/BottomSheet.svelte +125 -0
- package/dist/components/containers/bottom-sheet/BottomSheet.svelte.d.ts +12 -0
- package/dist/components/containers/bottom-sheet/index.d.ts +2 -0
- package/dist/components/containers/bottom-sheet/index.js +5 -0
- package/dist/components/containers/bottom-sheet/types.d.ts +16 -0
- package/dist/components/containers/bottom-sheet/types.js +1 -0
- package/dist/components/containers/context-menu/ContextMenu.svelte +152 -0
- package/dist/components/containers/context-menu/ContextMenu.svelte.d.ts +23 -0
- package/dist/components/containers/context-menu/index.d.ts +3 -0
- package/dist/components/containers/context-menu/index.js +6 -0
- package/dist/components/containers/context-menu/theme.d.ts +51 -0
- package/dist/components/containers/context-menu/theme.js +21 -0
- package/dist/components/containers/context-menu/types.d.ts +45 -0
- package/dist/components/containers/context-menu/types.js +1 -0
- package/dist/components/containers/dialogue/Dialogue.svelte +134 -0
- package/dist/components/containers/dialogue/Dialogue.svelte.d.ts +14 -0
- package/dist/components/containers/dialogue/index.d.ts +3 -0
- package/dist/components/containers/dialogue/index.js +6 -0
- package/dist/components/containers/dialogue/theme.d.ts +51 -0
- package/dist/components/containers/dialogue/theme.js +10 -0
- package/dist/components/containers/dialogue/types.d.ts +46 -0
- package/dist/components/containers/dialogue/types.js +1 -0
- package/dist/components/containers/divider/Divider.svelte +100 -0
- package/dist/components/containers/divider/Divider.svelte.d.ts +13 -0
- package/dist/components/containers/divider/index.d.ts +3 -0
- package/dist/components/containers/divider/index.js +6 -0
- package/dist/components/containers/divider/theme.d.ts +33 -0
- package/dist/components/containers/divider/theme.js +15 -0
- package/dist/components/containers/divider/types.d.ts +27 -0
- package/dist/components/containers/divider/types.js +1 -0
- package/dist/components/containers/index.d.ts +15 -0
- package/dist/components/containers/index.js +17 -0
- package/dist/components/containers/link-preview/LinkPreview.svelte +64 -0
- package/dist/components/containers/link-preview/LinkPreview.svelte.d.ts +10 -0
- package/dist/components/containers/link-preview/index.d.ts +3 -0
- package/dist/components/containers/link-preview/index.js +6 -0
- package/dist/components/containers/link-preview/theme.d.ts +33 -0
- package/dist/components/containers/link-preview/theme.js +7 -0
- package/dist/components/containers/link-preview/types.d.ts +22 -0
- package/dist/components/containers/link-preview/types.js +1 -0
- package/dist/components/containers/list/ListItem.svelte +79 -0
- package/dist/components/containers/list/ListItem.svelte.d.ts +4 -0
- package/dist/components/containers/list/index.d.ts +3 -0
- package/dist/components/containers/list/index.js +6 -0
- package/dist/components/containers/list/theme.d.ts +67 -0
- package/dist/components/containers/list/theme.js +27 -0
- package/dist/components/containers/list/types.d.ts +48 -0
- package/dist/components/containers/list/types.js +1 -0
- package/dist/components/containers/menu/Menu.svelte +70 -0
- package/dist/components/containers/menu/Menu.svelte.d.ts +20 -0
- package/dist/components/containers/menu/index.d.ts +2 -0
- package/dist/components/containers/menu/index.js +5 -0
- package/dist/components/containers/menu/types.d.ts +40 -0
- package/dist/components/containers/menu/types.js +1 -0
- package/dist/components/containers/menu-item/MenuItem.svelte +75 -0
- package/dist/components/containers/menu-item/MenuItem.svelte.d.ts +20 -0
- package/dist/components/containers/menu-item/index.d.ts +2 -0
- package/dist/components/containers/menu-item/index.js +5 -0
- package/dist/components/containers/menu-item/types.d.ts +36 -0
- package/dist/components/containers/menu-item/types.js +1 -0
- package/dist/components/containers/merger/InputMerger.svelte +29 -0
- package/dist/components/containers/merger/InputMerger.svelte.d.ts +14 -0
- package/dist/components/containers/merger/index.d.ts +1 -0
- package/dist/components/containers/merger/index.js +3 -0
- package/dist/components/containers/panes/SinglePane.svelte +29 -0
- package/dist/components/containers/panes/SinglePane.svelte.d.ts +5 -0
- package/dist/components/containers/panes/SplitPane.svelte +132 -0
- package/dist/components/containers/panes/SplitPane.svelte.d.ts +5 -0
- package/dist/components/containers/panes/SupportingPane.svelte +81 -0
- package/dist/components/containers/panes/SupportingPane.svelte.d.ts +9 -0
- package/dist/components/containers/panes/index.d.ts +5 -0
- package/dist/components/containers/panes/index.js +8 -0
- package/dist/components/containers/panes/theme.d.ts +331 -0
- package/dist/components/containers/panes/theme.js +152 -0
- package/dist/components/containers/panes/types.d.ts +81 -0
- package/dist/components/containers/panes/types.js +1 -0
- package/dist/components/containers/popover/Popover.svelte +82 -0
- package/dist/components/containers/popover/Popover.svelte.d.ts +10 -0
- package/dist/components/containers/popover/index.d.ts +3 -0
- package/dist/components/containers/popover/index.js +6 -0
- package/dist/components/containers/popover/theme.d.ts +51 -0
- package/dist/components/containers/popover/theme.js +10 -0
- package/dist/components/containers/popover/types.d.ts +22 -0
- package/dist/components/containers/popover/types.js +1 -0
- package/dist/components/containers/scroll-area/ScrollArea.svelte +41 -0
- package/dist/components/containers/scroll-area/ScrollArea.svelte.d.ts +5 -0
- package/dist/components/containers/scroll-area/index.d.ts +3 -0
- package/dist/components/containers/scroll-area/index.js +6 -0
- package/dist/components/containers/scroll-area/theme.d.ts +55 -0
- package/dist/components/containers/scroll-area/theme.js +26 -0
- package/dist/components/containers/scroll-area/types.d.ts +26 -0
- package/dist/components/containers/scroll-area/types.js +1 -0
- package/dist/components/containers/side-sheet/SideSheet.svelte +21 -0
- package/dist/components/containers/side-sheet/SideSheet.svelte.d.ts +9 -0
- package/dist/components/containers/side-sheet/index.d.ts +2 -0
- package/dist/components/containers/side-sheet/index.js +5 -0
- package/dist/components/containers/side-sheet/types.d.ts +18 -0
- package/dist/components/containers/side-sheet/types.js +1 -0
- package/dist/components/containers/stack/HStack.svelte +23 -0
- package/dist/components/containers/stack/HStack.svelte.d.ts +5 -0
- package/dist/components/containers/stack/VStack.svelte +23 -0
- package/dist/components/containers/stack/VStack.svelte.d.ts +5 -0
- package/dist/components/containers/stack/index.d.ts +4 -0
- package/dist/components/containers/stack/index.js +7 -0
- package/dist/components/containers/stack/theme.d.ts +60 -0
- package/dist/components/containers/stack/theme.js +24 -0
- package/dist/components/containers/stack/types.d.ts +12 -0
- package/dist/components/containers/stack/types.js +1 -0
- package/dist/components/date/DateField.svelte +155 -0
- package/dist/components/date/DateField.svelte.d.ts +12 -0
- package/dist/components/date/DateRangeField.svelte +211 -0
- package/dist/components/date/DateRangeField.svelte.d.ts +13 -0
- package/dist/components/date/index.d.ts +4 -0
- package/dist/components/date/index.js +7 -0
- package/dist/components/date/theme.d.ts +158 -0
- package/dist/components/date/theme.js +149 -0
- package/dist/components/date/types.d.ts +64 -0
- package/dist/components/date/types.js +1 -0
- package/dist/components/forms/checkbox/Checkbox.svelte +66 -0
- package/dist/components/forms/checkbox/Checkbox.svelte.d.ts +10 -0
- package/dist/components/forms/checkbox/index.d.ts +3 -0
- package/dist/components/forms/checkbox/index.js +6 -0
- package/dist/components/forms/checkbox/theme.d.ts +141 -0
- package/dist/components/forms/checkbox/theme.js +69 -0
- package/dist/components/forms/checkbox/types.d.ts +39 -0
- package/dist/components/forms/checkbox/types.js +1 -0
- package/dist/components/forms/command/Command.svelte +14 -0
- package/dist/components/forms/command/Command.svelte.d.ts +5 -0
- package/dist/components/forms/command/CommandEmpty.svelte +14 -0
- package/dist/components/forms/command/CommandEmpty.svelte.d.ts +4 -0
- package/dist/components/forms/command/CommandGroup.svelte +17 -0
- package/dist/components/forms/command/CommandGroup.svelte.d.ts +4 -0
- package/dist/components/forms/command/CommandInput.svelte +18 -0
- package/dist/components/forms/command/CommandInput.svelte.d.ts +4 -0
- package/dist/components/forms/command/CommandItem.svelte +14 -0
- package/dist/components/forms/command/CommandItem.svelte.d.ts +4 -0
- package/dist/components/forms/command/CommandList.svelte +14 -0
- package/dist/components/forms/command/CommandList.svelte.d.ts +4 -0
- package/dist/components/forms/command/CommandSeparator.svelte +12 -0
- package/dist/components/forms/command/CommandSeparator.svelte.d.ts +4 -0
- package/dist/components/forms/command/index.d.ts +9 -0
- package/dist/components/forms/command/index.js +12 -0
- package/dist/components/forms/command/theme.d.ts +81 -0
- package/dist/components/forms/command/theme.js +15 -0
- package/dist/components/forms/command/types.d.ts +31 -0
- package/dist/components/forms/command/types.js +1 -0
- package/dist/components/forms/index.d.ts +12 -0
- package/dist/components/forms/index.js +14 -0
- package/dist/components/forms/multipart/Multipart.svelte +532 -0
- package/dist/components/forms/multipart/Multipart.svelte.d.ts +51 -0
- package/dist/components/forms/multipart/index.d.ts +1 -0
- package/dist/components/forms/multipart/index.js +3 -0
- package/dist/components/forms/pin/PinInput.svelte +51 -0
- package/dist/components/forms/pin/PinInput.svelte.d.ts +10 -0
- package/dist/components/forms/pin/index.d.ts +3 -0
- package/dist/components/forms/pin/index.js +6 -0
- package/dist/components/forms/pin/theme.d.ts +60 -0
- package/dist/components/forms/pin/theme.js +33 -0
- package/dist/components/forms/pin/types.d.ts +29 -0
- package/dist/components/forms/pin/types.js +1 -0
- package/dist/components/forms/radio-group/RadioGroup.svelte +61 -0
- package/dist/components/forms/radio-group/RadioGroup.svelte.d.ts +10 -0
- package/dist/components/forms/radio-group/index.d.ts +3 -0
- package/dist/components/forms/radio-group/index.js +6 -0
- package/dist/components/forms/radio-group/theme.d.ts +132 -0
- package/dist/components/forms/radio-group/theme.js +48 -0
- package/dist/components/forms/radio-group/types.d.ts +24 -0
- package/dist/components/forms/radio-group/types.js +1 -0
- package/dist/components/forms/search/Search.svelte +52 -0
- package/dist/components/forms/search/Search.svelte.d.ts +11 -0
- package/dist/components/forms/search/index.d.ts +3 -0
- package/dist/components/forms/search/index.js +6 -0
- package/dist/components/forms/search/theme.d.ts +33 -0
- package/dist/components/forms/search/theme.js +15 -0
- package/dist/components/forms/search/types.d.ts +34 -0
- package/dist/components/forms/search/types.js +1 -0
- package/dist/components/forms/select/Select.svelte +141 -0
- package/dist/components/forms/select/Select.svelte.d.ts +13 -0
- package/dist/components/forms/select/SelectGroup.svelte +19 -0
- package/dist/components/forms/select/SelectGroup.svelte.d.ts +8 -0
- package/dist/components/forms/select/SelectItem.svelte +35 -0
- package/dist/components/forms/select/SelectItem.svelte.d.ts +14 -0
- package/dist/components/forms/select/SelectLabel.svelte +19 -0
- package/dist/components/forms/select/SelectLabel.svelte.d.ts +8 -0
- package/dist/components/forms/select/SelectSeparator.svelte +13 -0
- package/dist/components/forms/select/SelectSeparator.svelte.d.ts +6 -0
- package/dist/components/forms/select/index.d.ts +7 -0
- package/dist/components/forms/select/index.js +10 -0
- package/dist/components/forms/select/theme.d.ts +84 -0
- package/dist/components/forms/select/theme.js +87 -0
- package/dist/components/forms/select/types.d.ts +63 -0
- package/dist/components/forms/select/types.js +1 -0
- package/dist/components/forms/slider/Slider.svelte +201 -0
- package/dist/components/forms/slider/Slider.svelte.d.ts +12 -0
- package/dist/components/forms/slider/index.d.ts +3 -0
- package/dist/components/forms/slider/index.js +6 -0
- package/dist/components/forms/slider/theme.d.ts +78 -0
- package/dist/components/forms/slider/theme.js +33 -0
- package/dist/components/forms/slider/types.d.ts +56 -0
- package/dist/components/forms/slider/types.js +1 -0
- package/dist/components/forms/switch/Switch.svelte +74 -0
- package/dist/components/forms/switch/Switch.svelte.d.ts +12 -0
- package/dist/components/forms/switch/index.d.ts +3 -0
- package/dist/components/forms/switch/index.js +6 -0
- package/dist/components/forms/switch/theme.d.ts +51 -0
- package/dist/components/forms/switch/theme.js +71 -0
- package/dist/components/forms/switch/types.d.ts +25 -0
- package/dist/components/forms/switch/types.js +1 -0
- package/dist/components/forms/textfield/Textfield.svelte +82 -0
- package/dist/components/forms/textfield/Textfield.svelte.d.ts +11 -0
- package/dist/components/forms/textfield/index.d.ts +3 -0
- package/dist/components/forms/textfield/index.js +6 -0
- package/dist/components/forms/textfield/theme.d.ts +75 -0
- package/dist/components/forms/textfield/theme.js +74 -0
- package/dist/components/forms/textfield/types.d.ts +60 -0
- package/dist/components/forms/textfield/types.js +1 -0
- package/dist/components/forms/toggle-group/ToggleGroup.svelte +38 -0
- package/dist/components/forms/toggle-group/ToggleGroup.svelte.d.ts +11 -0
- package/dist/components/forms/toggle-group/ToggleGroupItem.svelte +36 -0
- package/dist/components/forms/toggle-group/ToggleGroupItem.svelte.d.ts +8 -0
- package/dist/components/forms/toggle-group/index.d.ts +4 -0
- package/dist/components/forms/toggle-group/index.js +7 -0
- package/dist/components/forms/toggle-group/theme.d.ts +74 -0
- package/dist/components/forms/toggle-group/theme.js +20 -0
- package/dist/components/forms/toggle-group/types.d.ts +25 -0
- package/dist/components/forms/toggle-group/types.js +1 -0
- package/dist/components/forms/tooltip/Tooltip.svelte +104 -0
- package/dist/components/forms/tooltip/Tooltip.svelte.d.ts +11 -0
- package/dist/components/forms/tooltip/index.d.ts +3 -0
- package/dist/components/forms/tooltip/index.js +6 -0
- package/dist/components/forms/tooltip/theme.d.ts +105 -0
- package/dist/components/forms/tooltip/theme.js +52 -0
- package/dist/components/forms/tooltip/types.d.ts +29 -0
- package/dist/components/forms/tooltip/types.js +1 -0
- package/dist/components/index.d.ts +15 -0
- package/dist/components/index.js +17 -0
- package/dist/components/misc/Avatar.svelte +70 -0
- package/dist/components/misc/Avatar.svelte.d.ts +9 -0
- package/dist/components/misc/ThemeSettings.svelte +88 -0
- package/dist/components/misc/ThemeSettings.svelte.d.ts +18 -0
- package/dist/components/misc/ThemeSwitcher.svelte +21 -0
- package/dist/components/misc/ThemeSwitcher.svelte.d.ts +3 -0
- package/dist/components/misc/index.d.ts +5 -0
- package/dist/components/misc/index.js +8 -0
- package/dist/components/misc/theme.d.ts +52 -0
- package/dist/components/misc/theme.js +25 -0
- package/dist/components/misc/types.d.ts +18 -0
- package/dist/components/misc/types.js +1 -0
- package/dist/components/nav/appbar/AppBar.svelte +60 -0
- package/dist/components/nav/appbar/AppBar.svelte.d.ts +12 -0
- package/dist/components/nav/appbar/index.d.ts +3 -0
- package/dist/components/nav/appbar/index.js +6 -0
- package/dist/components/nav/appbar/theme.d.ts +99 -0
- package/dist/components/nav/appbar/theme.js +33 -0
- package/dist/components/nav/appbar/types.d.ts +20 -0
- package/dist/components/nav/appbar/types.js +1 -0
- package/dist/components/nav/index.d.ts +5 -0
- package/dist/components/nav/index.js +8 -0
- package/dist/components/nav/navbar/Navbar.svelte +33 -0
- package/dist/components/nav/navbar/Navbar.svelte.d.ts +18 -0
- package/dist/components/nav/navbar/NavbarItem.svelte +66 -0
- package/dist/components/nav/navbar/NavbarItem.svelte.d.ts +9 -0
- package/dist/components/nav/navbar/index.d.ts +4 -0
- package/dist/components/nav/navbar/index.js +7 -0
- package/dist/components/nav/navbar/theme.d.ts +95 -0
- package/dist/components/nav/navbar/theme.js +31 -0
- package/dist/components/nav/navbar/types.d.ts +29 -0
- package/dist/components/nav/navbar/types.js +1 -0
- package/dist/components/nav/rail/Rail.svelte +75 -0
- package/dist/components/nav/rail/Rail.svelte.d.ts +11 -0
- package/dist/components/nav/rail/RailItem.svelte +104 -0
- package/dist/components/nav/rail/RailItem.svelte.d.ts +9 -0
- package/dist/components/nav/rail/index.d.ts +4 -0
- package/dist/components/nav/rail/index.js +7 -0
- package/dist/components/nav/rail/theme.d.ts +218 -0
- package/dist/components/nav/rail/theme.js +107 -0
- package/dist/components/nav/rail/types.d.ts +44 -0
- package/dist/components/nav/rail/types.js +1 -0
- package/dist/components/nav/tabs/Tab.svelte +49 -0
- package/dist/components/nav/tabs/Tab.svelte.d.ts +9 -0
- package/dist/components/nav/tabs/TabContent.svelte +11 -0
- package/dist/components/nav/tabs/TabContent.svelte.d.ts +8 -0
- package/dist/components/nav/tabs/TabHolder.svelte +44 -0
- package/dist/components/nav/tabs/TabHolder.svelte.d.ts +16 -0
- package/dist/components/nav/tabs/index.d.ts +5 -0
- package/dist/components/nav/tabs/index.js +8 -0
- package/dist/components/nav/tabs/theme.d.ts +92 -0
- package/dist/components/nav/tabs/theme.js +37 -0
- package/dist/components/nav/tabs/types.d.ts +39 -0
- package/dist/components/nav/tabs/types.js +1 -0
- package/dist/components/nav/types.d.ts +6 -0
- package/dist/components/nav/types.js +1 -0
- package/dist/components/pill/Pill.svelte +17 -0
- package/dist/components/pill/Pill.svelte.d.ts +5 -0
- package/dist/components/pill/index.d.ts +3 -0
- package/dist/components/pill/index.js +6 -0
- package/dist/components/pill/theme.d.ts +27 -0
- package/dist/components/pill/theme.js +16 -0
- package/dist/components/pill/types.d.ts +6 -0
- package/dist/components/pill/types.js +1 -0
- package/dist/components/progress/CircularProgress.svelte +58 -0
- package/dist/components/progress/CircularProgress.svelte.d.ts +16 -0
- package/dist/components/progress/LinearProgress.svelte +45 -0
- package/dist/components/progress/LinearProgress.svelte.d.ts +15 -0
- package/dist/components/progress/WavyLinearProgress.svelte +58 -0
- package/dist/components/progress/WavyLinearProgress.svelte.d.ts +19 -0
- package/dist/components/progress/_wavy.d.ts +2 -0
- package/dist/components/progress/_wavy.js +32 -0
- package/dist/components/progress/index.d.ts +4 -0
- package/dist/components/progress/index.js +7 -0
- package/dist/components/snackbar/Snackbar.svelte +102 -0
- package/dist/components/snackbar/Snackbar.svelte.d.ts +9 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/index.js +6 -0
- package/dist/components/snackbar/theme.d.ts +36 -0
- package/dist/components/snackbar/theme.js +16 -0
- package/dist/components/snackbar/types.d.ts +33 -0
- package/dist/components/snackbar/types.js +1 -0
- package/dist/components/table/Table.svelte +26 -0
- package/dist/components/table/Table.svelte.d.ts +8 -0
- package/dist/components/table/TableBody.svelte +17 -0
- package/dist/components/table/TableBody.svelte.d.ts +5 -0
- package/dist/components/table/TableCell.svelte +24 -0
- package/dist/components/table/TableCell.svelte.d.ts +8 -0
- package/dist/components/table/TableFoot.svelte +17 -0
- package/dist/components/table/TableFoot.svelte.d.ts +5 -0
- package/dist/components/table/TableHead.svelte +18 -0
- package/dist/components/table/TableHead.svelte.d.ts +8 -0
- package/dist/components/table/TableHeader.svelte +43 -0
- package/dist/components/table/TableHeader.svelte.d.ts +8 -0
- package/dist/components/table/TableRow.svelte +24 -0
- package/dist/components/table/TableRow.svelte.d.ts +8 -0
- package/dist/components/table/index.d.ts +9 -0
- package/dist/components/table/index.js +12 -0
- package/dist/components/table/theme.d.ts +165 -0
- package/dist/components/table/theme.js +50 -0
- package/dist/components/table/types.d.ts +44 -0
- package/dist/components/table/types.js +1 -0
- package/dist/components/time/TimeField.svelte +111 -0
- package/dist/components/time/TimeField.svelte.d.ts +28 -0
- package/dist/components/time/TimepickerInput.svelte +75 -0
- package/dist/components/time/TimepickerInput.svelte.d.ts +10 -0
- package/dist/components/time/index.d.ts +4 -0
- package/dist/components/time/index.js +7 -0
- package/dist/components/time/theme.d.ts +69 -0
- package/dist/components/time/theme.js +13 -0
- package/dist/components/time/types.d.ts +34 -0
- package/dist/components/time/types.js +1 -0
- package/dist/components/toolbar/Toolbar.svelte +26 -0
- package/dist/components/toolbar/Toolbar.svelte.d.ts +10 -0
- package/dist/components/toolbar/ToolbarButton.svelte +25 -0
- package/dist/components/toolbar/ToolbarButton.svelte.d.ts +5 -0
- package/dist/components/toolbar/ToolbarDivider.svelte +6 -0
- package/dist/components/toolbar/ToolbarDivider.svelte.d.ts +18 -0
- package/dist/components/toolbar/ToolbarGroup.svelte +18 -0
- package/dist/components/toolbar/ToolbarGroup.svelte.d.ts +5 -0
- package/dist/components/toolbar/ToolbarGroupItem.svelte +27 -0
- package/dist/components/toolbar/ToolbarGroupItem.svelte.d.ts +8 -0
- package/dist/components/toolbar/index.d.ts +7 -0
- package/dist/components/toolbar/index.js +10 -0
- package/dist/components/toolbar/theme.d.ts +106 -0
- package/dist/components/toolbar/theme.js +27 -0
- package/dist/components/toolbar/types.d.ts +20 -0
- package/dist/components/toolbar/types.js +1 -0
- package/dist/components/typography/body/Body.svelte +33 -0
- package/dist/components/typography/body/Body.svelte.d.ts +10 -0
- package/dist/components/typography/body/index.d.ts +3 -0
- package/dist/components/typography/body/index.js +6 -0
- package/dist/components/typography/body/theme.d.ts +30 -0
- package/dist/components/typography/body/theme.js +14 -0
- package/dist/components/typography/body/types.d.ts +21 -0
- package/dist/components/typography/body/types.js +1 -0
- package/dist/components/typography/display/Display.svelte +27 -0
- package/dist/components/typography/display/Display.svelte.d.ts +10 -0
- package/dist/components/typography/display/index.d.ts +3 -0
- package/dist/components/typography/display/index.js +6 -0
- package/dist/components/typography/display/theme.d.ts +30 -0
- package/dist/components/typography/display/theme.js +14 -0
- package/dist/components/typography/display/types.d.ts +21 -0
- package/dist/components/typography/display/types.js +1 -0
- package/dist/components/typography/headline/Headline.svelte +27 -0
- package/dist/components/typography/headline/Headline.svelte.d.ts +10 -0
- package/dist/components/typography/headline/index.d.ts +3 -0
- package/dist/components/typography/headline/index.js +6 -0
- package/dist/components/typography/headline/theme.d.ts +30 -0
- package/dist/components/typography/headline/theme.js +14 -0
- package/dist/components/typography/headline/types.d.ts +21 -0
- package/dist/components/typography/headline/types.js +1 -0
- package/dist/components/typography/index.d.ts +6 -0
- package/dist/components/typography/index.js +8 -0
- package/dist/components/typography/kbd/Kbd.svelte +18 -0
- package/dist/components/typography/kbd/Kbd.svelte.d.ts +5 -0
- package/dist/components/typography/kbd/index.d.ts +3 -0
- package/dist/components/typography/kbd/index.js +6 -0
- package/dist/components/typography/kbd/theme.d.ts +18 -0
- package/dist/components/typography/kbd/theme.js +10 -0
- package/dist/components/typography/kbd/types.d.ts +17 -0
- package/dist/components/typography/kbd/types.js +1 -0
- package/dist/components/typography/label/Label.svelte +25 -0
- package/dist/components/typography/label/Label.svelte.d.ts +10 -0
- package/dist/components/typography/label/index.d.ts +3 -0
- package/dist/components/typography/label/index.js +6 -0
- package/dist/components/typography/label/theme.d.ts +28 -0
- package/dist/components/typography/label/theme.js +14 -0
- package/dist/components/typography/label/types.d.ts +23 -0
- package/dist/components/typography/label/types.js +1 -0
- package/dist/components/typography/title/Title.svelte +27 -0
- package/dist/components/typography/title/Title.svelte.d.ts +10 -0
- package/dist/components/typography/title/index.d.ts +3 -0
- package/dist/components/typography/title/index.js +6 -0
- package/dist/components/typography/title/theme.d.ts +30 -0
- package/dist/components/typography/title/theme.js +14 -0
- package/dist/components/typography/title/types.d.ts +21 -0
- package/dist/components/typography/title/types.js +1 -0
- package/dist/index.css +6 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/styles/component.css +154 -0
- package/dist/styles/elevation.css +45 -0
- package/dist/styles/motion.css +51 -0
- package/dist/styles/prose.css +48 -0
- package/dist/styles/rounding.css +11 -0
- package/dist/styles/theme/dark-hc.css +53 -0
- package/dist/styles/theme/dark-mc.css +53 -0
- package/dist/styles/theme/dark.css +51 -0
- package/dist/styles/theme/light-hc.css +53 -0
- package/dist/styles/theme/light-mc.css +53 -0
- package/dist/styles/theme/light.css +51 -0
- package/dist/styles/typescale.css +63 -0
- package/dist/utils/Layer.svelte +217 -0
- package/dist/utils/Layer.svelte.d.ts +3 -0
- package/dist/utils/Theme.svelte +90 -0
- package/dist/utils/icon/Icon.svelte +24 -0
- package/dist/utils/icon/Icon.svelte.d.ts +4 -0
- package/dist/utils/icon/LoadingIndicator.svelte +39 -0
- package/dist/utils/icon/LoadingIndicator.svelte.d.ts +4 -0
- package/dist/utils/icon/MaterialSymbolsProvider.svelte +38 -0
- package/dist/utils/icon/MaterialSymbolsProvider.svelte.d.ts +8 -0
- package/dist/utils/icon/base-icons.d.ts +1 -0
- package/dist/utils/icon/base-icons.js +29 -0
- package/dist/utils/icon/index.d.ts +6 -0
- package/dist/utils/icon/index.js +6 -0
- package/dist/utils/icon/theme.d.ts +30 -0
- package/dist/utils/icon/theme.js +14 -0
- package/dist/utils/icon/types.d.ts +23 -0
- package/dist/utils/icon/types.js +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/theme.svelte.d.ts +24 -0
- package/dist/utils/theme.svelte.js +156 -0
- package/dist/utils/tutorial.d.ts +9 -0
- package/dist/utils/tutorial.js +46 -0
- package/dist/utils/types.d.ts +18 -0
- package/dist/utils/types.js +5 -0
- package/dist/utils/ui.d.ts +6 -0
- package/dist/utils/ui.js +56 -0
- package/package.json +85 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
Link Previews display a preview of a link's content when hovered.
|
|
4
|
+
|
|
5
|
+
@see https://bits-ui.com/docs/components/link-preview
|
|
6
|
+
-->
|
|
7
|
+
<script lang="ts">
|
|
8
|
+
import { LinkPreview } from 'bits-ui';
|
|
9
|
+
import clsx from 'clsx';
|
|
10
|
+
import { linkPreview } from './theme.js';
|
|
11
|
+
import type { LinkPreviewProps } from './types.js';
|
|
12
|
+
import { enterExit, easeEmphasizedDecel, easeEmphasizedAccel } from '../../../animation/index.js';
|
|
13
|
+
import { Layer } from '../../../utils/index.js';
|
|
14
|
+
|
|
15
|
+
let {
|
|
16
|
+
trigger,
|
|
17
|
+
children,
|
|
18
|
+
open = $bindable(false),
|
|
19
|
+
side = 'bottom',
|
|
20
|
+
align = 'center',
|
|
21
|
+
sideOffset = 8,
|
|
22
|
+
openDelay = 700,
|
|
23
|
+
closeDelay = 300,
|
|
24
|
+
class: className
|
|
25
|
+
}: LinkPreviewProps = $props();
|
|
26
|
+
|
|
27
|
+
const { base, content } = linkPreview();
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<LinkPreview.Root bind:open {openDelay} {closeDelay}>
|
|
31
|
+
<LinkPreview.Trigger>
|
|
32
|
+
{@render trigger()}
|
|
33
|
+
</LinkPreview.Trigger>
|
|
34
|
+
|
|
35
|
+
<LinkPreview.Portal>
|
|
36
|
+
<LinkPreview.Content forceMount {side} {align} {sideOffset}>
|
|
37
|
+
{#snippet child({ wrapperProps, props, open: isOpen })}
|
|
38
|
+
{#if isOpen}
|
|
39
|
+
<div {...wrapperProps}>
|
|
40
|
+
<div
|
|
41
|
+
{...props}
|
|
42
|
+
class={base({ class: clsx(className) })}
|
|
43
|
+
in:enterExit={{
|
|
44
|
+
duration: 200,
|
|
45
|
+
easing: easeEmphasizedDecel,
|
|
46
|
+
mode: 'scale'
|
|
47
|
+
}}
|
|
48
|
+
out:enterExit={{
|
|
49
|
+
duration: 150,
|
|
50
|
+
easing: easeEmphasizedAccel,
|
|
51
|
+
mode: 'scale'
|
|
52
|
+
}}
|
|
53
|
+
>
|
|
54
|
+
<Layer />
|
|
55
|
+
<div class={content()}>
|
|
56
|
+
{@render children()}
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
{/if}
|
|
61
|
+
{/snippet}
|
|
62
|
+
</LinkPreview.Content>
|
|
63
|
+
</LinkPreview.Portal>
|
|
64
|
+
</LinkPreview.Root>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LinkPreview } from 'bits-ui';
|
|
2
|
+
import type { LinkPreviewProps } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Link Previews display a preview of a link's content when hovered.
|
|
5
|
+
*
|
|
6
|
+
* @see https://bits-ui.com/docs/components/link-preview
|
|
7
|
+
*/
|
|
8
|
+
declare const LinkPreview: import("svelte").Component<LinkPreviewProps, {}, "open">;
|
|
9
|
+
type LinkPreview = ReturnType<typeof LinkPreview>;
|
|
10
|
+
export default LinkPreview;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
|
|
2
|
+
// re-export TS/JS modules from this folder
|
|
3
|
+
export * from './theme.js';
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
// default exports for components in this folder
|
|
6
|
+
export { default as LinkPreview } from './LinkPreview.svelte';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type VariantProps } from 'tailwind-variants';
|
|
2
|
+
export type LinkPreviewVariants = VariantProps<typeof linkPreview>;
|
|
3
|
+
export declare const linkPreview: import("tailwind-variants").TVReturnType<{
|
|
4
|
+
[key: string]: {
|
|
5
|
+
[key: string]: import("tailwind-merge").ClassNameValue | {
|
|
6
|
+
base?: import("tailwind-merge").ClassNameValue;
|
|
7
|
+
content?: import("tailwind-merge").ClassNameValue;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
} | {
|
|
11
|
+
[x: string]: {
|
|
12
|
+
[x: string]: import("tailwind-merge").ClassNameValue | {
|
|
13
|
+
base?: import("tailwind-merge").ClassNameValue;
|
|
14
|
+
content?: import("tailwind-merge").ClassNameValue;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
} | {}, {
|
|
18
|
+
base: string;
|
|
19
|
+
content: string;
|
|
20
|
+
}, undefined, {
|
|
21
|
+
[key: string]: {
|
|
22
|
+
[key: string]: import("tailwind-merge").ClassNameValue | {
|
|
23
|
+
base?: import("tailwind-merge").ClassNameValue;
|
|
24
|
+
content?: import("tailwind-merge").ClassNameValue;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
} | {}, {
|
|
28
|
+
base: string;
|
|
29
|
+
content: string;
|
|
30
|
+
}, import("tailwind-variants").TVReturnType<unknown, {
|
|
31
|
+
base: string;
|
|
32
|
+
content: string;
|
|
33
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { tv } from 'tailwind-variants';
|
|
2
|
+
export const linkPreview = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
base: 'relative z-[100] min-w-48 max-w-sm rounded-2xl bg-md-sys-color-surface-container-high p-4 shadow-elevation-3 ring-1 ring-md-sys-color-outline/20 overflow-hidden',
|
|
5
|
+
content: 'flex flex-col gap-2'
|
|
6
|
+
}
|
|
7
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { LinkPreview } from 'bits-ui';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { LinkPreviewVariants } from './theme.js';
|
|
4
|
+
export interface LinkPreviewProps extends LinkPreviewVariants {
|
|
5
|
+
/** Snippet rendered as the trigger element (typically an anchor tag or a link). */
|
|
6
|
+
trigger: Snippet;
|
|
7
|
+
/** The preview content. */
|
|
8
|
+
children: Snippet;
|
|
9
|
+
/** Controlled open state. */
|
|
10
|
+
open?: boolean;
|
|
11
|
+
/** Positioning side relative to the trigger. */
|
|
12
|
+
side?: LinkPreview.ContentProps['side'];
|
|
13
|
+
/** Alignment along the side axis. */
|
|
14
|
+
align?: LinkPreview.ContentProps['align'];
|
|
15
|
+
/** Gap between trigger and panel in px. */
|
|
16
|
+
sideOffset?: number;
|
|
17
|
+
/** Delay in ms before the preview opens. */
|
|
18
|
+
openDelay?: number;
|
|
19
|
+
/** Delay in ms before the preview closes. */
|
|
20
|
+
closeDelay?: number;
|
|
21
|
+
class?: string;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Layer } from '../../../utils/index.js';
|
|
3
|
+
import { listiem } from './theme.js';
|
|
4
|
+
import type { ListitemProps } from './types.js';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
leading,
|
|
8
|
+
overline = '',
|
|
9
|
+
headline = '',
|
|
10
|
+
supporting = '',
|
|
11
|
+
trailing,
|
|
12
|
+
selected,
|
|
13
|
+
class: className,
|
|
14
|
+
asChild = false,
|
|
15
|
+
lines = overline && supporting ? 3 : overline || supporting ? 2 : 1,
|
|
16
|
+
...restProps
|
|
17
|
+
}: ListitemProps = $props();
|
|
18
|
+
|
|
19
|
+
const cls = $derived(listiem({ lines, selected }));
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
{#snippet content()}
|
|
23
|
+
{#if leading}
|
|
24
|
+
<div class={cls.leading()}>
|
|
25
|
+
{@render leading()}
|
|
26
|
+
</div>
|
|
27
|
+
{/if}
|
|
28
|
+
<div class={cls.body()}>
|
|
29
|
+
{#if overline}
|
|
30
|
+
<p class={cls.overline()}>{overline}</p>
|
|
31
|
+
{/if}
|
|
32
|
+
<p class={cls.headline()}>{headline}</p>
|
|
33
|
+
{#if supporting}
|
|
34
|
+
<p class={cls.supporting()}>{supporting}</p>
|
|
35
|
+
{/if}
|
|
36
|
+
</div>
|
|
37
|
+
{#if trailing}
|
|
38
|
+
<div class={cls.trailing()}>
|
|
39
|
+
{@render trailing()}
|
|
40
|
+
</div>
|
|
41
|
+
{/if}
|
|
42
|
+
{/snippet}
|
|
43
|
+
|
|
44
|
+
{#snippet action()}
|
|
45
|
+
{#if 'label' in restProps}
|
|
46
|
+
{@const { label: _, ...extra } = restProps}
|
|
47
|
+
<label class={cls.base()} {...extra}>
|
|
48
|
+
<Layer />
|
|
49
|
+
{@render content()}
|
|
50
|
+
</label>
|
|
51
|
+
{:else if 'onclick' in restProps}
|
|
52
|
+
<button type="button" class={cls.base()} {...restProps}>
|
|
53
|
+
<Layer />
|
|
54
|
+
{@render content()}
|
|
55
|
+
</button>
|
|
56
|
+
{:else if 'href' in restProps && restProps.href != null && restProps.href !== ''}
|
|
57
|
+
{@const { href, ...extra } = restProps as typeof restProps & {
|
|
58
|
+
href?: string | null;
|
|
59
|
+
}}
|
|
60
|
+
<a class={cls.base()} {href} {...extra}>
|
|
61
|
+
<Layer />
|
|
62
|
+
{@render content()}
|
|
63
|
+
</a>
|
|
64
|
+
{:else}
|
|
65
|
+
{@const { href: _, ...extra } = restProps as Record<string, unknown>}
|
|
66
|
+
<div class={cls.base()} {...extra}>
|
|
67
|
+
<Layer />
|
|
68
|
+
{@render content()}
|
|
69
|
+
</div>
|
|
70
|
+
{/if}
|
|
71
|
+
{/snippet}
|
|
72
|
+
|
|
73
|
+
{#if asChild}
|
|
74
|
+
{@render action()}
|
|
75
|
+
{:else}
|
|
76
|
+
<li>
|
|
77
|
+
{@render action()}
|
|
78
|
+
</li>
|
|
79
|
+
{/if}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
|
|
2
|
+
// re-export TS/JS modules from this folder
|
|
3
|
+
export * from './theme.js';
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
// default exports for components in this folder
|
|
6
|
+
export { default as ListItem } from './ListItem.svelte';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare const listiem: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
lines: {
|
|
3
|
+
1: string;
|
|
4
|
+
2: string;
|
|
5
|
+
3: string;
|
|
6
|
+
};
|
|
7
|
+
selected: {
|
|
8
|
+
true: {
|
|
9
|
+
base: string;
|
|
10
|
+
headline: string;
|
|
11
|
+
trailing: string;
|
|
12
|
+
};
|
|
13
|
+
false: string;
|
|
14
|
+
};
|
|
15
|
+
}, {
|
|
16
|
+
base: string;
|
|
17
|
+
leading: string;
|
|
18
|
+
body: string;
|
|
19
|
+
overline: string;
|
|
20
|
+
headline: string;
|
|
21
|
+
supporting: string;
|
|
22
|
+
trailing: string;
|
|
23
|
+
}, undefined, {
|
|
24
|
+
lines: {
|
|
25
|
+
1: string;
|
|
26
|
+
2: string;
|
|
27
|
+
3: string;
|
|
28
|
+
};
|
|
29
|
+
selected: {
|
|
30
|
+
true: {
|
|
31
|
+
base: string;
|
|
32
|
+
headline: string;
|
|
33
|
+
trailing: string;
|
|
34
|
+
};
|
|
35
|
+
false: string;
|
|
36
|
+
};
|
|
37
|
+
}, {
|
|
38
|
+
base: string;
|
|
39
|
+
leading: string;
|
|
40
|
+
body: string;
|
|
41
|
+
overline: string;
|
|
42
|
+
headline: string;
|
|
43
|
+
supporting: string;
|
|
44
|
+
trailing: string;
|
|
45
|
+
}, import("tailwind-variants").TVReturnType<{
|
|
46
|
+
lines: {
|
|
47
|
+
1: string;
|
|
48
|
+
2: string;
|
|
49
|
+
3: string;
|
|
50
|
+
};
|
|
51
|
+
selected: {
|
|
52
|
+
true: {
|
|
53
|
+
base: string;
|
|
54
|
+
headline: string;
|
|
55
|
+
trailing: string;
|
|
56
|
+
};
|
|
57
|
+
false: string;
|
|
58
|
+
};
|
|
59
|
+
}, {
|
|
60
|
+
base: string;
|
|
61
|
+
leading: string;
|
|
62
|
+
body: string;
|
|
63
|
+
overline: string;
|
|
64
|
+
headline: string;
|
|
65
|
+
supporting: string;
|
|
66
|
+
trailing: string;
|
|
67
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { tv } from 'tailwind-variants';
|
|
2
|
+
export const listiem = tv({
|
|
3
|
+
slots: {
|
|
4
|
+
base: 'bg-md-sys-color-surface text-sys-color-on-surface-variant state-layer disabled:before:bg-md-sys-color-on-surface/10 md-sys-state-focus-indicator px-4 py-2 gap-4 items-center relative flex rounded-lg before:rounded-lg w-full',
|
|
5
|
+
leading: 'inline-flex items-start',
|
|
6
|
+
body: 'min-w-0',
|
|
7
|
+
overline: 'md-sys-typescale-label-small line-clamp-1',
|
|
8
|
+
headline: 'text-md-sys-color-on-surface md-sys-typescale-body-large line-clamp-1',
|
|
9
|
+
supporting: 'md-sys-typescale-label-small line-clamp-2',
|
|
10
|
+
trailing: 'size-6 text-[24px] inline-flex items-start ml-auto'
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
lines: {
|
|
14
|
+
1: 'h-14',
|
|
15
|
+
2: 'h-18',
|
|
16
|
+
3: 'h-22'
|
|
17
|
+
},
|
|
18
|
+
selected: {
|
|
19
|
+
true: {
|
|
20
|
+
base: 'text-md-sys-color-on-secondary-container bg-md-sys-color-secondary-container',
|
|
21
|
+
headline: 'text-md-sys-color-on-secondary-container',
|
|
22
|
+
trailing: 'text-md-sys-color-primary'
|
|
23
|
+
},
|
|
24
|
+
false: ''
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ButtonAttrs, DivAttrs, NotButton } from '../../../utils/index.js';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { HTMLAnchorAttributes, HTMLLabelAttributes } from 'svelte/elements';
|
|
4
|
+
export type ActionProps = DivAttrs | ButtonAttrs | ({
|
|
5
|
+
label: true;
|
|
6
|
+
} & NotButton<HTMLLabelAttributes>) | ({
|
|
7
|
+
href: string | null;
|
|
8
|
+
} & NotButton<HTMLAnchorAttributes>);
|
|
9
|
+
/**
|
|
10
|
+
* Props for the ListItem component.
|
|
11
|
+
* Lists are continuous, vertical indexes of text or images.
|
|
12
|
+
*/
|
|
13
|
+
export type ListitemProps = {
|
|
14
|
+
/**
|
|
15
|
+
* Optional leading slot, typically used for an icon, avatar, or checkbox.
|
|
16
|
+
*/
|
|
17
|
+
leading?: Snippet;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the list item is in a selected state.
|
|
20
|
+
*/
|
|
21
|
+
selected?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Optional overline text displayed above the headline.
|
|
24
|
+
*/
|
|
25
|
+
overline?: string | null;
|
|
26
|
+
/**
|
|
27
|
+
* The primary headline text of the list item.
|
|
28
|
+
*/
|
|
29
|
+
headline?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Supporting text content displayed below the headline.
|
|
32
|
+
*/
|
|
33
|
+
supporting?: string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Optional trailing slot, typically used for an icon, metadata, or switch.
|
|
36
|
+
*/
|
|
37
|
+
trailing?: Snippet;
|
|
38
|
+
/**
|
|
39
|
+
* The number of text lines to reserve space for.
|
|
40
|
+
* If not provided, it's calculated based on presence of overline and supporting text.
|
|
41
|
+
*/
|
|
42
|
+
lines?: 1 | 2 | 3;
|
|
43
|
+
/**
|
|
44
|
+
* If true, the component will not wrap its content in an `<li>` element.
|
|
45
|
+
* Useful for when the parent already provides the list item container.
|
|
46
|
+
*/
|
|
47
|
+
asChild?: boolean;
|
|
48
|
+
} & ActionProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
Shell for an action dropdown menu.
|
|
4
|
+
|
|
5
|
+
`Menu` owns exactly two things: open/close state and the floating panel's
|
|
6
|
+
position. It renders whatever you pass as `children` — typically `MenuItem`
|
|
7
|
+
components, but also `Divider`, group headings, or any custom element.
|
|
8
|
+
|
|
9
|
+
Use the `trigger` snippet to supply a fully custom trigger element (e.g. an
|
|
10
|
+
icon button). When omitted, a default filled `Button` labelled by `label`
|
|
11
|
+
is rendered.
|
|
12
|
+
|
|
13
|
+
Contrast with `MenuItem` (a single interactive row inside the panel) and
|
|
14
|
+
`ContextMenu` (right-click variant that remains data-driven).
|
|
15
|
+
|
|
16
|
+
@see https://m3.material.io/components/menus/guidelines
|
|
17
|
+
-->
|
|
18
|
+
<script lang="ts">
|
|
19
|
+
import { DropdownMenu } from 'bits-ui';
|
|
20
|
+
import clsx from 'clsx';
|
|
21
|
+
import Button from '../../buttons/Button.svelte';
|
|
22
|
+
import { enterExit } from '../../../animation/enterExit.js';
|
|
23
|
+
import { easeEmphasizedDecel } from '../../../animation/easing.js';
|
|
24
|
+
import type { MenuProps } from './types.js';
|
|
25
|
+
|
|
26
|
+
let {
|
|
27
|
+
children,
|
|
28
|
+
trigger,
|
|
29
|
+
label = 'Open menu',
|
|
30
|
+
align = 'start',
|
|
31
|
+
open = $bindable(false),
|
|
32
|
+
class: contentClass
|
|
33
|
+
}: MenuProps = $props();
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<DropdownMenu.Root bind:open>
|
|
37
|
+
<DropdownMenu.Trigger>
|
|
38
|
+
{#if trigger}
|
|
39
|
+
{@render trigger()}
|
|
40
|
+
{:else}
|
|
41
|
+
<Button variant="filled" type="button">{label}</Button>
|
|
42
|
+
{/if}
|
|
43
|
+
</DropdownMenu.Trigger>
|
|
44
|
+
|
|
45
|
+
<DropdownMenu.Portal>
|
|
46
|
+
<DropdownMenu.Content forceMount {align} sideOffset={4} class="z-[100]">
|
|
47
|
+
{#snippet child({ wrapperProps, props, open: isOpen })}
|
|
48
|
+
{#if isOpen}
|
|
49
|
+
<div {...wrapperProps} class={wrapperProps.class as any}>
|
|
50
|
+
<div
|
|
51
|
+
{...props}
|
|
52
|
+
class={clsx(
|
|
53
|
+
'bg-md-sys-color-surface-container-high shadow-elevation-3 ring-md-sys-color-outline/10 max-w-sm min-w-48 overflow-hidden rounded-xl py-2 ring-1',
|
|
54
|
+
props.class as any,
|
|
55
|
+
contentClass
|
|
56
|
+
)}
|
|
57
|
+
transition:enterExit={{
|
|
58
|
+
duration: 200,
|
|
59
|
+
easing: easeEmphasizedDecel,
|
|
60
|
+
mode: 'scale'
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
{@render children()}
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
{/if}
|
|
67
|
+
{/snippet}
|
|
68
|
+
</DropdownMenu.Content>
|
|
69
|
+
</DropdownMenu.Portal>
|
|
70
|
+
</DropdownMenu.Root>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MenuProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Shell for an action dropdown menu.
|
|
4
|
+
*
|
|
5
|
+
* `Menu` owns exactly two things: open/close state and the floating panel's
|
|
6
|
+
* position. It renders whatever you pass as `children` — typically `MenuItem`
|
|
7
|
+
* components, but also `Divider`, group headings, or any custom element.
|
|
8
|
+
*
|
|
9
|
+
* Use the `trigger` snippet to supply a fully custom trigger element (e.g. an
|
|
10
|
+
* icon button). When omitted, a default filled `Button` labelled by `label`
|
|
11
|
+
* is rendered.
|
|
12
|
+
*
|
|
13
|
+
* Contrast with `MenuItem` (a single interactive row inside the panel) and
|
|
14
|
+
* `ContextMenu` (right-click variant that remains data-driven).
|
|
15
|
+
*
|
|
16
|
+
* @see https://m3.material.io/components/menus/guidelines
|
|
17
|
+
*/
|
|
18
|
+
declare const Menu: import("svelte").Component<MenuProps, {}, "open">;
|
|
19
|
+
type Menu = ReturnType<typeof Menu>;
|
|
20
|
+
export default Menu;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the Menu component.
|
|
4
|
+
*
|
|
5
|
+
* Menu is the **shell** — it wires up open/close state and positions the
|
|
6
|
+
* floating panel. It has no opinion about what goes inside; compose it with
|
|
7
|
+
* `MenuItem` (and `Divider`, headings, etc.) as children.
|
|
8
|
+
*
|
|
9
|
+
* Contrast with `MenuItem`, which is an individual interactive row, and
|
|
10
|
+
* `ContextMenu`, which is a right-click variant that stays data-driven
|
|
11
|
+
* because its items are always contextual and uniform.
|
|
12
|
+
*/
|
|
13
|
+
export type MenuProps = {
|
|
14
|
+
/**
|
|
15
|
+
* Content rendered inside the floating panel.
|
|
16
|
+
* Typically a list of `MenuItem` components, but any element is valid.
|
|
17
|
+
*/
|
|
18
|
+
children: Snippet;
|
|
19
|
+
/**
|
|
20
|
+
* Custom trigger element. When omitted, a default filled `Button` labelled
|
|
21
|
+
* by `label` is used.
|
|
22
|
+
*/
|
|
23
|
+
trigger?: Snippet;
|
|
24
|
+
/**
|
|
25
|
+
* Label for the default button trigger. Ignored when `trigger` is provided.
|
|
26
|
+
* @default 'Open menu'
|
|
27
|
+
*/
|
|
28
|
+
label?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Alignment of the floating panel relative to the trigger.
|
|
31
|
+
* @default 'start'
|
|
32
|
+
*/
|
|
33
|
+
align?: 'start' | 'center' | 'end';
|
|
34
|
+
/**
|
|
35
|
+
* Controlled open state. Bind to this to drive the menu externally.
|
|
36
|
+
*/
|
|
37
|
+
open?: boolean;
|
|
38
|
+
/** Additional CSS classes applied to the floating content panel. */
|
|
39
|
+
class?: string;
|
|
40
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
A single interactive row inside a `Menu`.
|
|
4
|
+
|
|
5
|
+
`MenuItem` is the leaf node of the menu system. It wraps bits-ui's
|
|
6
|
+
`DropdownMenu.Item` so each row automatically gets keyboard navigation,
|
|
7
|
+
focus management, and the ARIA `menuitem` role.
|
|
8
|
+
|
|
9
|
+
Pass `onclick` (or `onSelect`) for the action; use `iconProps` for a
|
|
10
|
+
leading icon and `helper` for a supporting line below the label.
|
|
11
|
+
|
|
12
|
+
Contrast with `Menu`, which is just the shell (open state + floating panel),
|
|
13
|
+
and `ContextMenu`, which owns its own item list and is right-click triggered.
|
|
14
|
+
|
|
15
|
+
@see https://m3.material.io/components/menus/guidelines
|
|
16
|
+
-->
|
|
17
|
+
<script lang="ts">
|
|
18
|
+
import type { MenuItemProps } from './types.js';
|
|
19
|
+
import Icon from '../../../utils/icon/Icon.svelte';
|
|
20
|
+
import Layer from '../../../utils/Layer.svelte';
|
|
21
|
+
import { DropdownMenu } from 'bits-ui';
|
|
22
|
+
import clsx from 'clsx';
|
|
23
|
+
import { tv } from 'tailwind-variants';
|
|
24
|
+
|
|
25
|
+
let {
|
|
26
|
+
iconProps,
|
|
27
|
+
disabled = false,
|
|
28
|
+
onclick,
|
|
29
|
+
onSelect,
|
|
30
|
+
selected,
|
|
31
|
+
helper,
|
|
32
|
+
children,
|
|
33
|
+
...restProps
|
|
34
|
+
}: MenuItemProps & Record<string, any> = $props();
|
|
35
|
+
|
|
36
|
+
// bits-ui fires onSelect at the Item level; avoid wiring onclick to the
|
|
37
|
+
// native button as well or it would fire twice on every click.
|
|
38
|
+
const handleSelect = $derived(onSelect ?? (onclick ? () => onclick() : undefined));
|
|
39
|
+
|
|
40
|
+
const itemClass = $derived(
|
|
41
|
+
tv({
|
|
42
|
+
base: 'relative flex w-full cursor-pointer items-start gap-3 border-none bg-transparent px-4 py-3 text-left md-sys-typescale-body-large whitespace-nowrap text-md-sys-color-on-surface hover:bg-md-sys-color-on-surface/8 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-md-sys-color-primary disabled:cursor-not-allowed disabled:opacity-38',
|
|
43
|
+
variants: {
|
|
44
|
+
selected: {
|
|
45
|
+
true: 'bg-md-sys-color-secondary-container text-md-sys-color-on-secondary-container'
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
})({ selected })
|
|
49
|
+
);
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<DropdownMenu.Item {disabled} onSelect={handleSelect}>
|
|
53
|
+
<button {...restProps} type="button" class={itemClass} {disabled}>
|
|
54
|
+
{#if iconProps}
|
|
55
|
+
<Icon class="text-md-sys-color-on-surface-variant size-6 text-[24px]" {...iconProps} />
|
|
56
|
+
{/if}
|
|
57
|
+
|
|
58
|
+
<div class="flex flex-1 flex-col gap-1">
|
|
59
|
+
<span class="md-sys-typescale-body-large text-md-sys-color-on-surface">
|
|
60
|
+
{@render children()}
|
|
61
|
+
</span>
|
|
62
|
+
{#if helper}
|
|
63
|
+
<span class="md-sys-typescale-body-medium text-md-sys-color-on-surface-variant">
|
|
64
|
+
{helper}
|
|
65
|
+
</span>
|
|
66
|
+
{/if}
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
{#if selected}
|
|
70
|
+
<Icon aria-hidden="true" name="check" />
|
|
71
|
+
{/if}
|
|
72
|
+
|
|
73
|
+
<Layer />
|
|
74
|
+
</button>
|
|
75
|
+
</DropdownMenu.Item>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MenuItemProps } from './types.js';
|
|
2
|
+
type $$ComponentProps = MenuItemProps & Record<string, any>;
|
|
3
|
+
/**
|
|
4
|
+
* A single interactive row inside a `Menu`.
|
|
5
|
+
*
|
|
6
|
+
* `MenuItem` is the leaf node of the menu system. It wraps bits-ui's
|
|
7
|
+
* `DropdownMenu.Item` so each row automatically gets keyboard navigation,
|
|
8
|
+
* focus management, and the ARIA `menuitem` role.
|
|
9
|
+
*
|
|
10
|
+
* Pass `onclick` (or `onSelect`) for the action; use `iconProps` for a
|
|
11
|
+
* leading icon and `helper` for a supporting line below the label.
|
|
12
|
+
*
|
|
13
|
+
* Contrast with `Menu`, which is just the shell (open state + floating panel),
|
|
14
|
+
* and `ContextMenu`, which owns its own item list and is right-click triggered.
|
|
15
|
+
*
|
|
16
|
+
* @see https://m3.material.io/components/menus/guidelines
|
|
17
|
+
*/
|
|
18
|
+
declare const MenuItem: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
19
|
+
type MenuItem = ReturnType<typeof MenuItem>;
|
|
20
|
+
export default MenuItem;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// THIS FILE IS AUTO-GENERATED BY scripts/generate-components-index.ts - DO NOT EDIT MANUALLY
|
|
2
|
+
// re-export TS/JS modules from this folder
|
|
3
|
+
export * from './types.js';
|
|
4
|
+
// default exports for components in this folder
|
|
5
|
+
export { default as MenuItem } from './MenuItem.svelte';
|