lithesome 0.18.0 → 0.19.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/README.md +45 -30
- package/dist/attachments/outside.d.ts +12 -0
- package/dist/attachments/outside.js +34 -0
- package/dist/attachments/portal.d.ts +7 -0
- package/dist/attachments/portal.js +27 -0
- package/dist/attachments/trap.d.ts +6 -0
- package/dist/attachments/trap.js +20 -0
- package/dist/components/accordion/Accordion.svelte +33 -0
- package/dist/components/accordion/Accordion.svelte.d.ts +9 -0
- package/dist/components/accordion/AccordionButton.svelte +20 -0
- package/dist/components/accordion/AccordionButton.svelte.d.ts +15 -0
- package/dist/components/accordion/AccordionContent.svelte +20 -0
- package/dist/components/accordion/AccordionContent.svelte.d.ts +10 -0
- package/dist/components/accordion/AccordionHeading.svelte +26 -0
- package/dist/components/accordion/AccordionHeading.svelte.d.ts +12 -0
- package/dist/components/accordion/AccordionItem.svelte +28 -0
- package/dist/components/accordion/AccordionItem.svelte.d.ts +13 -0
- package/dist/components/{Accordion → accordion}/index.d.ts +1 -2
- package/dist/components/accordion/state.svelte.d.ts +99 -0
- package/dist/components/accordion/state.svelte.js +156 -0
- package/dist/components/hovercard/Hovercard.svelte +33 -0
- package/dist/components/{Hovercard → hovercard}/Hovercard.svelte.d.ts +4 -2
- package/dist/components/hovercard/HovercardArrow.svelte +23 -0
- package/dist/components/hovercard/HovercardArrow.svelte.d.ts +7 -0
- package/dist/components/hovercard/HovercardContent.svelte +23 -0
- package/dist/components/hovercard/HovercardContent.svelte.d.ts +9 -0
- package/dist/components/hovercard/HovercardTrigger.svelte +23 -0
- package/dist/components/hovercard/HovercardTrigger.svelte.d.ts +8 -0
- package/dist/components/{Hovercard/index.d.ts → hovercard/index.js} +0 -1
- package/dist/components/hovercard/state.svelte.d.ts +74 -0
- package/dist/components/hovercard/state.svelte.js +149 -0
- package/dist/components/menu/Menu.svelte +35 -0
- package/dist/components/menu/Menu.svelte.d.ts +6 -0
- package/dist/components/menu/MenuArrow.svelte +17 -0
- package/dist/components/{Menu → menu}/MenuArrow.svelte.d.ts +5 -2
- package/dist/components/menu/MenuContent.svelte +23 -0
- package/dist/components/menu/MenuContent.svelte.d.ts +9 -0
- package/dist/components/menu/MenuItem.svelte +28 -0
- package/dist/components/menu/MenuItem.svelte.d.ts +13 -0
- package/dist/components/menu/MenuSub.svelte +37 -0
- package/dist/components/menu/MenuSub.svelte.d.ts +6 -0
- package/dist/components/menu/MenuSubContent.svelte +23 -0
- package/dist/components/menu/MenuSubContent.svelte.d.ts +9 -0
- package/dist/components/menu/MenuSubTrigger.svelte +23 -0
- package/dist/components/menu/MenuSubTrigger.svelte.d.ts +17 -0
- package/dist/components/menu/MenuTrigger.svelte +23 -0
- package/dist/components/menu/MenuTrigger.svelte.d.ts +10 -0
- package/dist/components/{Menu → menu}/index.d.ts +4 -2
- package/dist/components/{Menu → menu}/index.js +4 -1
- package/dist/components/menu/state.svelte.d.ts +161 -0
- package/dist/components/menu/state.svelte.js +387 -0
- package/dist/components/modal/Modal.svelte +32 -0
- package/dist/components/modal/Modal.svelte.d.ts +6 -0
- package/dist/components/modal/ModalBackdrop.svelte +24 -0
- package/dist/components/modal/ModalBackdrop.svelte.d.ts +10 -0
- package/dist/components/modal/ModalContent.svelte +24 -0
- package/dist/components/modal/ModalContent.svelte.d.ts +14 -0
- package/dist/components/modal/ModalDescription.svelte +24 -0
- package/dist/components/modal/ModalDescription.svelte.d.ts +7 -0
- package/dist/components/modal/ModalTitle.svelte +24 -0
- package/dist/components/{Modal → modal}/ModalTitle.svelte.d.ts +5 -2
- package/dist/components/modal/ModalTrigger.svelte +24 -0
- package/dist/components/modal/ModalTrigger.svelte.d.ts +12 -0
- package/dist/components/{Modal → modal}/index.d.ts +2 -2
- package/dist/components/{Modal → modal}/index.js +2 -1
- package/dist/components/modal/state.svelte.d.ts +96 -0
- package/dist/components/modal/state.svelte.js +184 -0
- package/dist/components/pin/Pin.svelte +44 -0
- package/dist/components/pin/Pin.svelte.d.ts +11 -0
- package/dist/components/pin/PinInput.svelte +17 -0
- package/dist/components/{Pin → pin}/PinInput.svelte.d.ts +5 -2
- package/dist/components/{Pin → pin}/index.d.ts +0 -2
- package/dist/components/{Pin → pin}/index.js +0 -1
- package/dist/components/pin/state.svelte.d.ts +50 -0
- package/dist/components/pin/state.svelte.js +166 -0
- package/dist/components/radiogroup/RadioGroup.svelte +35 -0
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts +10 -0
- package/dist/components/radiogroup/RadioGroupItem.svelte +28 -0
- package/dist/components/radiogroup/RadioGroupItem.svelte.d.ts +17 -0
- package/dist/components/{RadioGroup/index.d.ts → radiogroup/index.js} +0 -1
- package/dist/components/radiogroup/state.svelte.d.ts +55 -0
- package/dist/components/radiogroup/state.svelte.js +103 -0
- package/dist/components/select/Select.svelte +47 -0
- package/dist/components/select/Select.svelte.d.ts +6 -0
- package/dist/components/select/SelectArrow.svelte +23 -0
- package/dist/components/{Select → select}/SelectArrow.svelte.d.ts +5 -2
- package/dist/components/select/SelectContent.svelte +23 -0
- package/dist/components/select/SelectContent.svelte.d.ts +9 -0
- package/dist/components/select/SelectOption.svelte +29 -0
- package/dist/components/select/SelectOption.svelte.d.ts +19 -0
- package/dist/components/select/SelectTrigger.svelte +23 -0
- package/dist/components/select/SelectTrigger.svelte.d.ts +14 -0
- package/dist/components/select/SelectValue.svelte +25 -0
- package/dist/components/select/SelectValue.svelte.d.ts +11 -0
- package/dist/components/{Select → select}/index.d.ts +0 -2
- package/dist/components/{Select → select}/index.js +0 -1
- package/dist/components/select/state.svelte.d.ts +194 -0
- package/dist/components/select/state.svelte.js +386 -0
- package/dist/components/slider/Slider.svelte +45 -0
- package/dist/components/slider/Slider.svelte.d.ts +7 -0
- package/dist/components/slider/SliderRange.svelte +17 -0
- package/dist/components/{Slider → slider}/SliderRange.svelte.d.ts +5 -2
- package/dist/components/slider/SliderThumb.svelte +17 -0
- package/dist/components/{Slider → slider}/SliderThumb.svelte.d.ts +5 -2
- package/dist/components/slider/SliderValue.svelte +17 -0
- package/dist/components/{Slider → slider}/SliderValue.svelte.d.ts +5 -2
- package/dist/components/{Slider/index.d.ts → slider/index.js} +0 -1
- package/dist/components/slider/state.svelte.d.ts +105 -0
- package/dist/components/slider/state.svelte.js +214 -0
- package/dist/components/tabs/Tabs.svelte +31 -0
- package/dist/components/tabs/Tabs.svelte.d.ts +11 -0
- package/dist/components/tabs/TabsButton.svelte +30 -0
- package/dist/components/tabs/TabsButton.svelte.d.ts +14 -0
- package/dist/components/tabs/TabsContent.svelte +25 -0
- package/dist/components/tabs/TabsContent.svelte.d.ts +14 -0
- package/dist/components/tabs/TabsList.svelte +23 -0
- package/dist/components/tabs/TabsList.svelte.d.ts +12 -0
- package/dist/components/{Tabs/index.d.ts → tabs/index.js} +0 -1
- package/dist/components/tabs/state.svelte.d.ts +91 -0
- package/dist/components/tabs/state.svelte.js +151 -0
- package/dist/components/tabs/types.d.ts +14 -0
- package/dist/components/tags/Tags.svelte +37 -0
- package/dist/components/tags/Tags.svelte.d.ts +11 -0
- package/dist/components/tags/TagsDelete.svelte +26 -0
- package/dist/components/tags/TagsDelete.svelte.d.ts +9 -0
- package/dist/components/tags/TagsInput.svelte +17 -0
- package/dist/components/{Tags → tags}/TagsInput.svelte.d.ts +4 -2
- package/dist/components/tags/TagsItem.svelte +26 -0
- package/dist/components/tags/TagsItem.svelte.d.ts +10 -0
- package/dist/components/tags/state.svelte.d.ts +77 -0
- package/dist/components/tags/state.svelte.js +199 -0
- package/dist/components/tooltip/Tooltip.svelte +38 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts +6 -0
- package/dist/components/tooltip/TooltipArrow.svelte +23 -0
- package/dist/components/{Tooltip → tooltip}/TooltipArrow.svelte.d.ts +5 -2
- package/dist/components/tooltip/TooltipContent.svelte +23 -0
- package/dist/components/tooltip/TooltipContent.svelte.d.ts +9 -0
- package/dist/components/tooltip/TooltipTrigger.svelte +23 -0
- package/dist/components/tooltip/TooltipTrigger.svelte.d.ts +8 -0
- package/dist/components/{Tooltip/index.d.ts → tooltip/index.js} +0 -1
- package/dist/components/tooltip/state.svelte.d.ts +74 -0
- package/dist/components/tooltip/state.svelte.js +135 -0
- package/dist/components/tooltip/types.d.ts +14 -0
- package/dist/index.d.ts +14 -23
- package/dist/index.js +14 -22
- package/dist/internals/attachment.d.ts +4 -0
- package/dist/internals/attachment.js +6 -0
- package/dist/internals/components/Element.svelte +77 -0
- package/dist/internals/components/Element.svelte.d.ts +16 -0
- package/dist/{internal/helpers → internals}/context.svelte.d.ts +9 -10
- package/dist/{internal/helpers → internals}/context.svelte.js +38 -31
- package/dist/internals/element.d.ts +24 -0
- package/dist/internals/element.js +40 -0
- package/dist/internals/floating.svelte.d.ts +3 -0
- package/dist/internals/floating.svelte.js +66 -0
- package/dist/internals/index.d.ts +11 -0
- package/dist/internals/index.js +10 -0
- package/dist/internals/is.d.ts +14 -0
- package/dist/internals/is.js +14 -0
- package/dist/{internal/helpers → internals}/keyboard.d.ts +2 -0
- package/dist/{internal/helpers → internals}/keyboard.js +2 -0
- package/dist/internals/log.d.ts +3 -0
- package/dist/{internal/helpers → internals}/log.js +1 -1
- package/dist/internals/state.svelte.d.ts +7 -0
- package/dist/internals/state.svelte.js +8 -0
- package/dist/internals/types.d.ts +88 -0
- package/dist/{internal/helpers → internals}/utils.svelte.d.ts +38 -26
- package/dist/{internal/helpers → internals}/utils.svelte.js +93 -72
- package/dist/types/components/accordion.d.ts +16 -0
- package/dist/types/components/hovercard.d.ts +14 -0
- package/dist/types/components/menu.d.ts +29 -0
- package/dist/types/components/modal.d.ts +17 -0
- package/dist/types/components/pin.d.ts +14 -0
- package/dist/types/components/radiogroup.d.ts +10 -0
- package/dist/types/components/select.d.ts +24 -0
- package/dist/types/components/slider.d.ts +16 -0
- package/dist/types/components/tabs.d.ts +14 -0
- package/dist/types/components/tags.d.ts +16 -0
- package/dist/types/components/tooltip.d.ts +14 -0
- package/dist/types/index.d.ts +11 -0
- package/package.json +72 -77
- package/LICENSE.md +0 -21
- package/dist/actions/outside.d.ts +0 -19
- package/dist/actions/outside.js +0 -25
- package/dist/actions/portal.d.ts +0 -9
- package/dist/actions/portal.js +0 -28
- package/dist/actions/trap.d.ts +0 -7
- package/dist/actions/trap.js +0 -17
- package/dist/components/Accordion/Accordion.svelte +0 -31
- package/dist/components/Accordion/Accordion.svelte.d.ts +0 -4
- package/dist/components/Accordion/AccordionButton.svelte +0 -22
- package/dist/components/Accordion/AccordionButton.svelte.d.ts +0 -4
- package/dist/components/Accordion/AccordionContent.svelte +0 -27
- package/dist/components/Accordion/AccordionContent.svelte.d.ts +0 -4
- package/dist/components/Accordion/AccordionHeading.svelte +0 -13
- package/dist/components/Accordion/AccordionHeading.svelte.d.ts +0 -4
- package/dist/components/Accordion/AccordionItem.svelte +0 -25
- package/dist/components/Accordion/AccordionItem.svelte.d.ts +0 -4
- package/dist/components/Accordion/main.svelte.d.ts +0 -95
- package/dist/components/Accordion/main.svelte.js +0 -148
- package/dist/components/Accordion/types.d.ts +0 -83
- package/dist/components/Checkbox/Checkbox.svelte +0 -40
- package/dist/components/Checkbox/Checkbox.svelte.d.ts +0 -4
- package/dist/components/Checkbox/index.d.ts +0 -2
- package/dist/components/Checkbox/index.js +0 -1
- package/dist/components/Checkbox/types.d.ts +0 -25
- package/dist/components/Collapsible/Collapsible.svelte +0 -31
- package/dist/components/Collapsible/Collapsible.svelte.d.ts +0 -4
- package/dist/components/Collapsible/CollapsibleButton.svelte +0 -22
- package/dist/components/Collapsible/CollapsibleButton.svelte.d.ts +0 -4
- package/dist/components/Collapsible/CollapsibleContent.svelte +0 -34
- package/dist/components/Collapsible/CollapsibleContent.svelte.d.ts +0 -4
- package/dist/components/Collapsible/index.d.ts +0 -3
- package/dist/components/Collapsible/index.js +0 -3
- package/dist/components/Collapsible/main.svelte.d.ts +0 -46
- package/dist/components/Collapsible/main.svelte.js +0 -74
- package/dist/components/Collapsible/types.d.ts +0 -36
- package/dist/components/Combobox/Combobox.svelte +0 -46
- package/dist/components/Combobox/Combobox.svelte.d.ts +0 -4
- package/dist/components/Combobox/ComboboxArrow.svelte +0 -11
- package/dist/components/Combobox/ComboboxArrow.svelte.d.ts +0 -4
- package/dist/components/Combobox/ComboboxContent.svelte +0 -40
- package/dist/components/Combobox/ComboboxContent.svelte.d.ts +0 -4
- package/dist/components/Combobox/ComboboxInput.svelte +0 -23
- package/dist/components/Combobox/ComboboxInput.svelte.d.ts +0 -4
- package/dist/components/Combobox/ComboboxOption.svelte +0 -42
- package/dist/components/Combobox/ComboboxOption.svelte.d.ts +0 -4
- package/dist/components/Combobox/index.d.ts +0 -6
- package/dist/components/Combobox/index.js +0 -5
- package/dist/components/Combobox/main.svelte.d.ts +0 -115
- package/dist/components/Combobox/main.svelte.js +0 -293
- package/dist/components/Combobox/types.d.ts +0 -106
- package/dist/components/Hovercard/Hovercard.svelte +0 -17
- package/dist/components/Hovercard/HovercardArrow.svelte +0 -11
- package/dist/components/Hovercard/HovercardArrow.svelte.d.ts +0 -4
- package/dist/components/Hovercard/HovercardContent.svelte +0 -39
- package/dist/components/Hovercard/HovercardContent.svelte.d.ts +0 -4
- package/dist/components/Hovercard/HovercardTrigger.svelte +0 -17
- package/dist/components/Hovercard/HovercardTrigger.svelte.d.ts +0 -4
- package/dist/components/Hovercard/main.svelte.d.ts +0 -55
- package/dist/components/Hovercard/main.svelte.js +0 -133
- package/dist/components/Hovercard/types.d.ts +0 -25
- package/dist/components/Menu/Menu.svelte +0 -16
- package/dist/components/Menu/Menu.svelte.d.ts +0 -4
- package/dist/components/Menu/MenuArrow.svelte +0 -11
- package/dist/components/Menu/MenuContent.svelte +0 -40
- package/dist/components/Menu/MenuContent.svelte.d.ts +0 -4
- package/dist/components/Menu/MenuItem.svelte +0 -39
- package/dist/components/Menu/MenuItem.svelte.d.ts +0 -4
- package/dist/components/Menu/MenuTrigger.svelte +0 -17
- package/dist/components/Menu/MenuTrigger.svelte.d.ts +0 -4
- package/dist/components/Menu/main.svelte.d.ts +0 -70
- package/dist/components/Menu/main.svelte.js +0 -205
- package/dist/components/Menu/types.d.ts +0 -81
- package/dist/components/Modal/Modal.svelte +0 -17
- package/dist/components/Modal/Modal.svelte.d.ts +0 -4
- package/dist/components/Modal/ModalContent.svelte +0 -41
- package/dist/components/Modal/ModalContent.svelte.d.ts +0 -4
- package/dist/components/Modal/ModalDescription.svelte +0 -13
- package/dist/components/Modal/ModalDescription.svelte.d.ts +0 -4
- package/dist/components/Modal/ModalOverlay.svelte +0 -35
- package/dist/components/Modal/ModalOverlay.svelte.d.ts +0 -4
- package/dist/components/Modal/ModalTitle.svelte +0 -13
- package/dist/components/Modal/main.svelte.d.ts +0 -58
- package/dist/components/Modal/main.svelte.js +0 -102
- package/dist/components/Modal/types.d.ts +0 -28
- package/dist/components/Pin/Pin.svelte +0 -34
- package/dist/components/Pin/Pin.svelte.d.ts +0 -4
- package/dist/components/Pin/PinInput.svelte +0 -27
- package/dist/components/Pin/PinValue.svelte +0 -20
- package/dist/components/Pin/PinValue.svelte.d.ts +0 -4
- package/dist/components/Pin/main.svelte.d.ts +0 -65
- package/dist/components/Pin/main.svelte.js +0 -181
- package/dist/components/Pin/types.d.ts +0 -81
- package/dist/components/Popover/Popover.svelte +0 -16
- package/dist/components/Popover/Popover.svelte.d.ts +0 -4
- package/dist/components/Popover/PopoverArrow.svelte +0 -11
- package/dist/components/Popover/PopoverArrow.svelte.d.ts +0 -4
- package/dist/components/Popover/PopoverContent.svelte +0 -51
- package/dist/components/Popover/PopoverContent.svelte.d.ts +0 -4
- package/dist/components/Popover/PopoverTrigger.svelte +0 -17
- package/dist/components/Popover/PopoverTrigger.svelte.d.ts +0 -4
- package/dist/components/Popover/index.d.ts +0 -5
- package/dist/components/Popover/index.js +0 -4
- package/dist/components/Popover/main.svelte.d.ts +0 -41
- package/dist/components/Popover/main.svelte.js +0 -125
- package/dist/components/Popover/types.d.ts +0 -19
- package/dist/components/Portal/Portal.svelte +0 -18
- package/dist/components/Portal/Portal.svelte.d.ts +0 -4
- package/dist/components/Portal/index.d.ts +0 -2
- package/dist/components/Portal/index.js +0 -1
- package/dist/components/Portal/types.d.ts +0 -9
- package/dist/components/RadioGroup/RadioGroup.svelte +0 -31
- package/dist/components/RadioGroup/RadioGroup.svelte.d.ts +0 -4
- package/dist/components/RadioGroup/RadioGroupItem.svelte +0 -32
- package/dist/components/RadioGroup/RadioGroupItem.svelte.d.ts +0 -4
- package/dist/components/RadioGroup/main.svelte.d.ts +0 -63
- package/dist/components/RadioGroup/main.svelte.js +0 -124
- package/dist/components/RadioGroup/types.d.ts +0 -46
- package/dist/components/Select/Select.svelte +0 -25
- package/dist/components/Select/Select.svelte.d.ts +0 -4
- package/dist/components/Select/SelectArrow.svelte +0 -11
- package/dist/components/Select/SelectContent.svelte +0 -39
- package/dist/components/Select/SelectContent.svelte.d.ts +0 -4
- package/dist/components/Select/SelectOption.svelte +0 -34
- package/dist/components/Select/SelectOption.svelte.d.ts +0 -4
- package/dist/components/Select/SelectTrigger.svelte +0 -17
- package/dist/components/Select/SelectTrigger.svelte.d.ts +0 -4
- package/dist/components/Select/SelectValue.svelte +0 -19
- package/dist/components/Select/SelectValue.svelte.d.ts +0 -4
- package/dist/components/Select/main.svelte.d.ts +0 -111
- package/dist/components/Select/main.svelte.js +0 -306
- package/dist/components/Select/types.d.ts +0 -72
- package/dist/components/Slider/Slider.svelte +0 -49
- package/dist/components/Slider/Slider.svelte.d.ts +0 -4
- package/dist/components/Slider/SliderRange.svelte +0 -12
- package/dist/components/Slider/SliderThumb.svelte +0 -15
- package/dist/components/Slider/SliderValue.svelte +0 -19
- package/dist/components/Slider/main.svelte.d.ts +0 -101
- package/dist/components/Slider/main.svelte.js +0 -240
- package/dist/components/Slider/types.d.ts +0 -66
- package/dist/components/Switch/Switch.svelte +0 -41
- package/dist/components/Switch/Switch.svelte.d.ts +0 -4
- package/dist/components/Switch/index.d.ts +0 -2
- package/dist/components/Switch/index.js +0 -1
- package/dist/components/Switch/types.d.ts +0 -26
- package/dist/components/Tabs/Tabs.svelte +0 -27
- package/dist/components/Tabs/Tabs.svelte.d.ts +0 -4
- package/dist/components/Tabs/TabsButton.svelte +0 -32
- package/dist/components/Tabs/TabsButton.svelte.d.ts +0 -4
- package/dist/components/Tabs/TabsContent.svelte +0 -15
- package/dist/components/Tabs/TabsContent.svelte.d.ts +0 -4
- package/dist/components/Tabs/TabsList.svelte +0 -13
- package/dist/components/Tabs/TabsList.svelte.d.ts +0 -4
- package/dist/components/Tabs/main.svelte.d.ts +0 -84
- package/dist/components/Tabs/main.svelte.js +0 -146
- package/dist/components/Tabs/types.d.ts +0 -71
- package/dist/components/Tags/Tags.svelte +0 -41
- package/dist/components/Tags/Tags.svelte.d.ts +0 -4
- package/dist/components/Tags/TagsDelete.svelte +0 -20
- package/dist/components/Tags/TagsDelete.svelte.d.ts +0 -4
- package/dist/components/Tags/TagsInput.svelte +0 -18
- package/dist/components/Tags/TagsItem.svelte +0 -15
- package/dist/components/Tags/TagsItem.svelte.d.ts +0 -4
- package/dist/components/Tags/main.svelte.d.ts +0 -85
- package/dist/components/Tags/main.svelte.js +0 -202
- package/dist/components/Tags/types.d.ts +0 -84
- package/dist/components/Tags/types.js +0 -1
- package/dist/components/Toast/Toast.svelte +0 -13
- package/dist/components/Toast/Toast.svelte.d.ts +0 -4
- package/dist/components/Toast/ToastMessage.svelte +0 -13
- package/dist/components/Toast/ToastMessage.svelte.d.ts +0 -4
- package/dist/components/Toast/ToastTitle.svelte +0 -13
- package/dist/components/Toast/ToastTitle.svelte.d.ts +0 -4
- package/dist/components/Toast/Toaster.svelte +0 -26
- package/dist/components/Toast/Toaster.svelte.d.ts +0 -4
- package/dist/components/Toast/index.d.ts +0 -7
- package/dist/components/Toast/index.js +0 -6
- package/dist/components/Toast/main.svelte.d.ts +0 -38
- package/dist/components/Toast/main.svelte.js +0 -93
- package/dist/components/Toast/types.d.ts +0 -31
- package/dist/components/Toast/types.js +0 -1
- package/dist/components/Tooltip/Tooltip.svelte +0 -19
- package/dist/components/Tooltip/Tooltip.svelte.d.ts +0 -4
- package/dist/components/Tooltip/TooltipArrow.svelte +0 -11
- package/dist/components/Tooltip/TooltipContent.svelte +0 -39
- package/dist/components/Tooltip/TooltipContent.svelte.d.ts +0 -4
- package/dist/components/Tooltip/TooltipTrigger.svelte +0 -17
- package/dist/components/Tooltip/TooltipTrigger.svelte.d.ts +0 -4
- package/dist/components/Tooltip/main.svelte.d.ts +0 -50
- package/dist/components/Tooltip/main.svelte.js +0 -100
- package/dist/components/Tooltip/types.d.ts +0 -27
- package/dist/components/Tooltip/types.js +0 -1
- package/dist/components/Tree/Tree.svelte +0 -28
- package/dist/components/Tree/Tree.svelte.d.ts +0 -4
- package/dist/components/Tree/TreeButton.svelte +0 -27
- package/dist/components/Tree/TreeButton.svelte.d.ts +0 -4
- package/dist/components/Tree/TreeGroup.svelte +0 -29
- package/dist/components/Tree/TreeGroup.svelte.d.ts +0 -4
- package/dist/components/Tree/TreeItem.svelte +0 -26
- package/dist/components/Tree/TreeItem.svelte.d.ts +0 -4
- package/dist/components/Tree/index.d.ts +0 -5
- package/dist/components/Tree/index.js +0 -4
- package/dist/components/Tree/main.svelte.d.ts +0 -93
- package/dist/components/Tree/main.svelte.js +0 -252
- package/dist/components/Tree/types.d.ts +0 -49
- package/dist/components/Tree/types.js +0 -1
- package/dist/internal/components/FloatingArrow.svelte +0 -26
- package/dist/internal/components/FloatingArrow.svelte.d.ts +0 -22
- package/dist/internal/components/FloatingContent.svelte +0 -90
- package/dist/internal/components/FloatingContent.svelte.d.ts +0 -24
- package/dist/internal/components/types.d.ts +0 -11
- package/dist/internal/components/types.js +0 -1
- package/dist/internal/helpers/action.d.ts +0 -15
- package/dist/internal/helpers/action.js +0 -47
- package/dist/internal/helpers/element.d.ts +0 -45
- package/dist/internal/helpers/element.js +0 -99
- package/dist/internal/helpers/floating.d.ts +0 -14
- package/dist/internal/helpers/floating.js +0 -79
- package/dist/internal/helpers/is.d.ts +0 -4
- package/dist/internal/helpers/is.js +0 -4
- package/dist/internal/helpers/log.d.ts +0 -3
- package/dist/internal/helpers/transition.d.ts +0 -16
- package/dist/internal/helpers/transition.js +0 -16
- package/dist/internal/index.d.ts +0 -12
- package/dist/internal/index.js +0 -12
- package/dist/internal/types.d.ts +0 -69
- package/dist/internal/types.js +0 -1
- package/dist/components/{Accordion → accordion}/index.js +1 -1
- package/dist/components/{Hovercard/index.js → hovercard/index.d.ts} +0 -0
- package/dist/components/{RadioGroup/index.js → radiogroup/index.d.ts} +0 -0
- package/dist/components/{Slider/index.js → slider/index.d.ts} +0 -0
- package/dist/components/{Tabs/index.js → tabs/index.d.ts} +0 -0
- package/dist/components/{Accordion → tabs}/types.js +0 -0
- package/dist/components/{Tags → tags}/index.d.ts +1 -1
- package/dist/components/{Tags → tags}/index.js +1 -1
- /package/dist/components/{Tooltip/index.js → tooltip/index.d.ts} +0 -0
- /package/dist/components/{Checkbox → tooltip}/types.js +0 -0
- /package/dist/{components/Collapsible → internals}/types.js +0 -0
- /package/dist/{components/Combobox/types.js → types/components/accordion.js} +0 -0
- /package/dist/{components/Hovercard/types.js → types/components/hovercard.js} +0 -0
- /package/dist/{components/Menu/types.js → types/components/menu.js} +0 -0
- /package/dist/{components/Modal/types.js → types/components/modal.js} +0 -0
- /package/dist/{components/Pin/types.js → types/components/pin.js} +0 -0
- /package/dist/{components/Popover/types.js → types/components/radiogroup.js} +0 -0
- /package/dist/{components/Portal/types.js → types/components/select.js} +0 -0
- /package/dist/{components/RadioGroup/types.js → types/components/slider.js} +0 -0
- /package/dist/{components/Select/types.js → types/components/tabs.js} +0 -0
- /package/dist/{components/Slider/types.js → types/components/tags.js} +0 -0
- /package/dist/{components/Switch/types.js → types/components/tooltip.js} +0 -0
- /package/dist/{components/Tabs/types.js → types/index.js} +0 -0
package/README.md
CHANGED
|
@@ -1,43 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
> This library is still in very early development. Expect things to be broken.
|
|
1
|
+
# Svelte library
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
Everything you need to build a Svelte library, powered by [`sv`](https://npmjs.com/package/sv).
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Read more about creating a library [in the docs](https://svelte.dev/docs/kit/packaging).
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
## Creating a project
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
If you're seeing this, you've probably already done this step. Congrats!
|
|
11
10
|
|
|
12
|
-
```
|
|
13
|
-
|
|
11
|
+
```sh
|
|
12
|
+
# create a new project in the current directory
|
|
13
|
+
npx sv create
|
|
14
|
+
|
|
15
|
+
# create a new project in my-app
|
|
16
|
+
npx sv create my-app
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Developing
|
|
20
|
+
|
|
21
|
+
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
npm run dev
|
|
25
|
+
|
|
26
|
+
# or start the server and open the app in a new browser tab
|
|
27
|
+
npm run dev -- --open
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Everything inside `src/lib` is part of your library, everything inside `src/routes` can be used as a showcase or preview app.
|
|
31
|
+
|
|
32
|
+
## Building
|
|
33
|
+
|
|
34
|
+
To build your library:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
npm pack
|
|
14
38
|
```
|
|
15
39
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
import { Menu, MenuTrigger, MenuContent, MenuItem } from 'lithesome';
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
<Menu>
|
|
24
|
-
<MenuTrigger>
|
|
25
|
-
<button>Auth</button>
|
|
26
|
-
</MenuTrigger>
|
|
27
|
-
<MenuContent>
|
|
28
|
-
<MenuItem>My Profile</MenuItem>
|
|
29
|
-
<MenuItem>Account Settings</MenuItem>
|
|
30
|
-
<MenuItem>Logout</MenuItem>
|
|
31
|
-
</MenuContent>
|
|
32
|
-
</Menu>
|
|
40
|
+
To create a production version of your showcase app:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
npm run build
|
|
33
44
|
```
|
|
34
45
|
|
|
35
|
-
|
|
46
|
+
You can preview the production build with `npm run preview`.
|
|
47
|
+
|
|
48
|
+
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
|
|
36
49
|
|
|
37
|
-
##
|
|
50
|
+
## Publishing
|
|
38
51
|
|
|
39
|
-
|
|
52
|
+
Go into the `package.json` and give your package the desired name through the `"name"` option. Also consider adding a `"license"` field and point it to a `LICENSE` file which you can create from a template (one popular option is the [MIT license](https://opensource.org/license/mit/)).
|
|
40
53
|
|
|
41
|
-
|
|
54
|
+
To publish your library to [npm](https://www.npmjs.com):
|
|
42
55
|
|
|
43
|
-
|
|
56
|
+
```sh
|
|
57
|
+
npm publish
|
|
58
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Attachment } from 'svelte/attachments';
|
|
2
|
+
type ExcludeElement = HTMLElement | string | null | undefined;
|
|
3
|
+
/**
|
|
4
|
+
* An attachment that fires if the node is not clicked on.
|
|
5
|
+
* @param callback The function called when clicking outside of the element.
|
|
6
|
+
* @param exlude The element to be excluded when calling the `callback` handler.
|
|
7
|
+
* @param event The event to trigger the callback function.
|
|
8
|
+
*
|
|
9
|
+
* Default = `click`
|
|
10
|
+
*/
|
|
11
|
+
export declare const outside: (callback: VoidFunction, exclude: ExcludeElement[], on?: keyof DocumentEventMap) => Attachment<HTMLElement>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An attachment that fires if the node is not clicked on.
|
|
3
|
+
* @param callback The function called when clicking outside of the element.
|
|
4
|
+
* @param exlude The element to be excluded when calling the `callback` handler.
|
|
5
|
+
* @param event The event to trigger the callback function.
|
|
6
|
+
*
|
|
7
|
+
* Default = `click`
|
|
8
|
+
*/
|
|
9
|
+
export const outside = (callback, exclude, on) => {
|
|
10
|
+
return (node) => {
|
|
11
|
+
const event = (e) => {
|
|
12
|
+
const target = e.target;
|
|
13
|
+
let elements = [];
|
|
14
|
+
exclude.forEach((el) => {
|
|
15
|
+
if (el) {
|
|
16
|
+
if (typeof el === 'string') {
|
|
17
|
+
const query = Array.from(document.querySelectorAll(el));
|
|
18
|
+
elements = [...elements, ...query];
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
elements.push(el);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const contains = elements.some((el) => el?.contains(target));
|
|
26
|
+
if (node && !node.contains(target) && !e.defaultPrevented && !contains)
|
|
27
|
+
callback();
|
|
28
|
+
};
|
|
29
|
+
window.addEventListener(on || 'click', event);
|
|
30
|
+
return () => {
|
|
31
|
+
window.removeEventListener(on || 'click', event);
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Attachment } from 'svelte/attachments';
|
|
2
|
+
/**
|
|
3
|
+
* A svelte attachment to portal content from one part of the dom to another.
|
|
4
|
+
* @param target The element to be portaled to.\
|
|
5
|
+
* Default = `body`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const portal: (target?: HTMLElement | string) => Attachment<HTMLElement>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { tick } from 'svelte';
|
|
2
|
+
import { log } from '../internals/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* A svelte attachment to portal content from one part of the dom to another.
|
|
5
|
+
* @param target The element to be portaled to.\
|
|
6
|
+
* Default = `body`.
|
|
7
|
+
*/
|
|
8
|
+
export const portal = (target = 'body') => {
|
|
9
|
+
return (node) => {
|
|
10
|
+
const update = async (newTarget) => {
|
|
11
|
+
let el = typeof newTarget === 'string' ? document.querySelector(newTarget) : newTarget;
|
|
12
|
+
await tick();
|
|
13
|
+
if (!el) {
|
|
14
|
+
log.error(`Cannot find the given target element: ${target}`);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
el.appendChild(node);
|
|
18
|
+
};
|
|
19
|
+
update(target);
|
|
20
|
+
return () => {
|
|
21
|
+
tick().then(() => {
|
|
22
|
+
if (node)
|
|
23
|
+
node.remove();
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createFocusTrap } from 'focus-trap';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a focus trap.
|
|
4
|
+
*/
|
|
5
|
+
export const trap = (opts) => {
|
|
6
|
+
return (node) => {
|
|
7
|
+
let trap = null;
|
|
8
|
+
if (trap)
|
|
9
|
+
return;
|
|
10
|
+
trap = createFocusTrap(node, {
|
|
11
|
+
fallbackFocus: node,
|
|
12
|
+
...opts
|
|
13
|
+
});
|
|
14
|
+
trap.activate();
|
|
15
|
+
return () => {
|
|
16
|
+
trap?.deactivate();
|
|
17
|
+
trap = null;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { stateValue } from '../../internals/context.svelte.js';
|
|
3
|
+
import { Element, parseId } from '../../internals/index.js';
|
|
4
|
+
import { createAccordionRootContext } from './state.svelte.js';
|
|
5
|
+
|
|
6
|
+
import type { AccordionProps } from '../../types/index.js';
|
|
7
|
+
|
|
8
|
+
const uid = $props.id();
|
|
9
|
+
|
|
10
|
+
let {
|
|
11
|
+
id = parseId(uid),
|
|
12
|
+
children,
|
|
13
|
+
custom,
|
|
14
|
+
ref = $bindable(),
|
|
15
|
+
value = $bindable(''),
|
|
16
|
+
onChange,
|
|
17
|
+
...props
|
|
18
|
+
}: AccordionProps<typeof ctx.props, typeof ctx.state> = $props();
|
|
19
|
+
|
|
20
|
+
let ctx = createAccordionRootContext({
|
|
21
|
+
id,
|
|
22
|
+
ref: stateValue(() => ref!),
|
|
23
|
+
value: stateValue(
|
|
24
|
+
() => value,
|
|
25
|
+
(v) => {
|
|
26
|
+
value = v;
|
|
27
|
+
onChange?.(v);
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
});
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<Element bind:ref {children} {custom} {ctx} {...props} />
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AccordionProps } from '../../types/index.js';
|
|
2
|
+
declare const Accordion: import("svelte").Component<AccordionProps<{
|
|
3
|
+
id: string;
|
|
4
|
+
"data-accordion-root": string;
|
|
5
|
+
}, {
|
|
6
|
+
value: string | string[];
|
|
7
|
+
}>, {}, "ref" | "value">;
|
|
8
|
+
type Accordion = ReturnType<typeof Accordion>;
|
|
9
|
+
export default Accordion;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Element, parseId, stateValue } from '../../internals/index.js';
|
|
3
|
+
import { useAccordionButton } from './state.svelte.js';
|
|
4
|
+
|
|
5
|
+
import type { AccordionButtonProps } from '../../types/index.js';
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
id = parseId(uid),
|
|
11
|
+
children,
|
|
12
|
+
custom,
|
|
13
|
+
ref = $bindable(),
|
|
14
|
+
...props
|
|
15
|
+
}: AccordionButtonProps<typeof ctx.props, typeof ctx.state> = $props();
|
|
16
|
+
|
|
17
|
+
let ctx = useAccordionButton({ id, ref: stateValue(() => ref!) });
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<Element bind:ref {children} {custom} {ctx} as="button" {...props} />
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AccordionButtonProps } from '../../types/index.js';
|
|
2
|
+
declare const AccordionButton: import("svelte").Component<AccordionButtonProps<{
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly type: "button";
|
|
5
|
+
readonly 'aria-expanded': boolean;
|
|
6
|
+
readonly 'aria-disabled': boolean;
|
|
7
|
+
readonly 'aria-controls': string | undefined;
|
|
8
|
+
readonly tabindex: 0 | -1;
|
|
9
|
+
readonly 'data-accordionbutton': "";
|
|
10
|
+
readonly 'data-active': true | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
active: boolean;
|
|
13
|
+
}>, {}, "ref">;
|
|
14
|
+
type AccordionButton = ReturnType<typeof AccordionButton>;
|
|
15
|
+
export default AccordionButton;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Element, parseId, stateValue } from '../../internals/index.js';
|
|
3
|
+
import { useAccordionContent } from './state.svelte.js';
|
|
4
|
+
|
|
5
|
+
import type { AccordionContentProps } from '../../types/index.js';
|
|
6
|
+
|
|
7
|
+
const uid = $props.id();
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
id = parseId(uid),
|
|
11
|
+
children,
|
|
12
|
+
custom,
|
|
13
|
+
ref = $bindable(),
|
|
14
|
+
...props
|
|
15
|
+
}: AccordionContentProps<typeof ctx.props, typeof ctx.state> = $props();
|
|
16
|
+
|
|
17
|
+
let ctx = useAccordionContent({ id, ref: stateValue(() => ref!) });
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<Element bind:ref {children} {custom} {ctx} visible={ctx._item.Active} {...props} />
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AccordionContentProps } from '../../types/index.js';
|
|
2
|
+
declare const AccordionContent: import("svelte").Component<AccordionContentProps<{
|
|
3
|
+
id: string;
|
|
4
|
+
"data-accordion-content": string;
|
|
5
|
+
'data-active': boolean;
|
|
6
|
+
}, {
|
|
7
|
+
active: boolean;
|
|
8
|
+
}>, {}, "ref">;
|
|
9
|
+
type AccordionContent = ReturnType<typeof AccordionContent>;
|
|
10
|
+
export default AccordionContent;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { stateValue } from '../../internals/context.svelte.js';
|
|
3
|
+
import { Element, parseId } from '../../internals/index.js';
|
|
4
|
+
import { useAccordionHeading } from './state.svelte.js';
|
|
5
|
+
|
|
6
|
+
import type { AccordionHeadingProps } from '../../types/index.js';
|
|
7
|
+
|
|
8
|
+
const uid = $props.id();
|
|
9
|
+
|
|
10
|
+
let {
|
|
11
|
+
id = parseId(uid),
|
|
12
|
+
children,
|
|
13
|
+
custom,
|
|
14
|
+
ref = $bindable(),
|
|
15
|
+
level = 3,
|
|
16
|
+
...props
|
|
17
|
+
}: AccordionHeadingProps<typeof ctx.props, typeof ctx.state> = $props();
|
|
18
|
+
|
|
19
|
+
let ctx = useAccordionHeading({
|
|
20
|
+
id,
|
|
21
|
+
ref: stateValue(() => ref!),
|
|
22
|
+
level: stateValue(() => level)
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<Element bind:ref {children} {custom} {ctx} {...props} />
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AccordionHeadingProps } from '../../types/index.js';
|
|
2
|
+
declare const AccordionHeading: import("svelte").Component<AccordionHeadingProps<{
|
|
3
|
+
id: string;
|
|
4
|
+
"data-accordion-heading": string;
|
|
5
|
+
role: string;
|
|
6
|
+
'aria-level': 2 | 1 | 3 | 4 | 5 | 6;
|
|
7
|
+
'data-opened': string;
|
|
8
|
+
}, {
|
|
9
|
+
active: boolean;
|
|
10
|
+
}>, {}, "ref">;
|
|
11
|
+
type AccordionHeading = ReturnType<typeof AccordionHeading>;
|
|
12
|
+
export default AccordionHeading;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { stateValue } from '../../internals/context.svelte.js';
|
|
3
|
+
import { Element, parseId } from '../../internals/index.js';
|
|
4
|
+
import { createAccordionItemContext } from './state.svelte.js';
|
|
5
|
+
|
|
6
|
+
import type { AccordionItemProps } from '../../types/index.js';
|
|
7
|
+
|
|
8
|
+
const uid = $props.id();
|
|
9
|
+
|
|
10
|
+
let {
|
|
11
|
+
id = parseId(uid),
|
|
12
|
+
children,
|
|
13
|
+
custom,
|
|
14
|
+
ref = $bindable(),
|
|
15
|
+
value,
|
|
16
|
+
disabled = $bindable(false),
|
|
17
|
+
...props
|
|
18
|
+
}: AccordionItemProps<typeof ctx.props, typeof ctx.state> = $props();
|
|
19
|
+
|
|
20
|
+
let ctx = createAccordionItemContext({
|
|
21
|
+
id,
|
|
22
|
+
ref: stateValue(() => ref!),
|
|
23
|
+
value: stateValue(() => value),
|
|
24
|
+
disabled: stateValue(() => disabled)
|
|
25
|
+
});
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<Element bind:ref {children} {custom} {ctx} {...props} />
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AccordionItemProps } from '../../types/index.js';
|
|
2
|
+
declare const AccordionItem: import("svelte").Component<AccordionItemProps<{
|
|
3
|
+
id: string;
|
|
4
|
+
"data-accordion-item": string;
|
|
5
|
+
'data-disabled': boolean;
|
|
6
|
+
'data-opened': string;
|
|
7
|
+
'data-value': string;
|
|
8
|
+
}, {
|
|
9
|
+
active: boolean;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
}>, {}, "disabled" | "ref">;
|
|
12
|
+
type AccordionItem = ReturnType<typeof AccordionItem>;
|
|
13
|
+
export default AccordionItem;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { default as Accordion } from './Accordion.svelte';
|
|
2
|
-
export { default as AccordionHeading } from './AccordionHeading.svelte';
|
|
3
2
|
export { default as AccordionItem } from './AccordionItem.svelte';
|
|
4
3
|
export { default as AccordionButton } from './AccordionButton.svelte';
|
|
4
|
+
export { default as AccordionHeading } from './AccordionHeading.svelte';
|
|
5
5
|
export { default as AccordionContent } from './AccordionContent.svelte';
|
|
6
|
-
export type * from './types.js';
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { SvelteMap } from 'svelte/reactivity';
|
|
2
|
+
import type { GetInternalProps } from '../../internals/types.js';
|
|
3
|
+
import type { AccordionButtonProps, AccordionContentProps, AccordionHeadingProps, AccordionItemProps, AccordionProps } from '../../types/index.js';
|
|
4
|
+
type RootProps = GetInternalProps<AccordionProps>;
|
|
5
|
+
export declare class AccordionRoot {
|
|
6
|
+
#private;
|
|
7
|
+
$value: RootProps['value'];
|
|
8
|
+
items: string[];
|
|
9
|
+
constructor(props: RootProps);
|
|
10
|
+
toggleActiveItem: (itemId: string) => void;
|
|
11
|
+
isActive: (value: string) => boolean;
|
|
12
|
+
props: {
|
|
13
|
+
id: string;
|
|
14
|
+
"data-accordion-root": string;
|
|
15
|
+
};
|
|
16
|
+
state: {
|
|
17
|
+
value: string | string[];
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
type ItemProps = GetInternalProps<AccordionItemProps>;
|
|
21
|
+
declare class AccordionItem {
|
|
22
|
+
#private;
|
|
23
|
+
$value: ItemProps['value'];
|
|
24
|
+
$disabled: ItemProps['disabled'];
|
|
25
|
+
_root: AccordionRoot;
|
|
26
|
+
sharedIds: SvelteMap<"content" | "item" | "button", string>;
|
|
27
|
+
Active: boolean;
|
|
28
|
+
constructor(root: AccordionRoot, props: ItemProps);
|
|
29
|
+
props: {
|
|
30
|
+
id: string;
|
|
31
|
+
"data-accordion-item": string;
|
|
32
|
+
'data-disabled': boolean;
|
|
33
|
+
'data-opened': string;
|
|
34
|
+
'data-value': string;
|
|
35
|
+
};
|
|
36
|
+
state: {
|
|
37
|
+
active: boolean;
|
|
38
|
+
disabled: boolean;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
type HeadingProps = GetInternalProps<AccordionHeadingProps>;
|
|
42
|
+
declare class AccordionHeading {
|
|
43
|
+
#private;
|
|
44
|
+
$level: HeadingProps['level'];
|
|
45
|
+
_root: AccordionRoot;
|
|
46
|
+
_item: AccordionItem;
|
|
47
|
+
constructor(root: AccordionRoot, item: AccordionItem, props: HeadingProps);
|
|
48
|
+
props: {
|
|
49
|
+
id: string;
|
|
50
|
+
"data-accordion-heading": string;
|
|
51
|
+
role: string;
|
|
52
|
+
'aria-level': 2 | 1 | 3 | 4 | 5 | 6;
|
|
53
|
+
'data-opened': string;
|
|
54
|
+
};
|
|
55
|
+
state: {
|
|
56
|
+
active: boolean;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
type ButtonProps = GetInternalProps<AccordionButtonProps>;
|
|
60
|
+
declare class AccordionButton {
|
|
61
|
+
#private;
|
|
62
|
+
_item: AccordionItem;
|
|
63
|
+
_root: AccordionRoot;
|
|
64
|
+
constructor(item: AccordionItem, root: AccordionRoot, props: ButtonProps);
|
|
65
|
+
props: {
|
|
66
|
+
readonly id: string;
|
|
67
|
+
readonly type: "button";
|
|
68
|
+
readonly 'aria-expanded': boolean;
|
|
69
|
+
readonly 'aria-disabled': boolean;
|
|
70
|
+
readonly 'aria-controls': string | undefined;
|
|
71
|
+
readonly tabindex: 0 | -1;
|
|
72
|
+
readonly 'data-accordionbutton': "";
|
|
73
|
+
readonly 'data-active': true | undefined;
|
|
74
|
+
};
|
|
75
|
+
state: {
|
|
76
|
+
active: boolean;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
type ContentProps = GetInternalProps<AccordionContentProps>;
|
|
80
|
+
declare class AccordionContent {
|
|
81
|
+
#private;
|
|
82
|
+
_item: AccordionItem;
|
|
83
|
+
_root: AccordionRoot;
|
|
84
|
+
constructor(item: AccordionItem, root: AccordionRoot, props: ContentProps);
|
|
85
|
+
props: {
|
|
86
|
+
id: string;
|
|
87
|
+
"data-accordion-content": string;
|
|
88
|
+
'data-active': boolean;
|
|
89
|
+
};
|
|
90
|
+
state: {
|
|
91
|
+
active: boolean;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export declare const createAccordionRootContext: (props: RootProps) => AccordionRoot;
|
|
95
|
+
export declare const createAccordionItemContext: (props: ItemProps) => AccordionItem;
|
|
96
|
+
export declare const useAccordionHeading: (props: HeadingProps) => AccordionHeading;
|
|
97
|
+
export declare const useAccordionButton: (props: ButtonProps) => AccordionButton;
|
|
98
|
+
export declare const useAccordionContent: (props: ContentProps) => AccordionContent;
|
|
99
|
+
export {};
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { SvelteMap } from 'svelte/reactivity';
|
|
2
|
+
import { attach } from '../../internals/attachment.js';
|
|
3
|
+
import { buildContext } from '../../internals/context.svelte.js';
|
|
4
|
+
import { addEvents, createAttributes } from '../../internals/utils.svelte.js';
|
|
5
|
+
const { attrs } = createAttributes('accordion', ['root', 'item', 'heading', 'button', 'content']);
|
|
6
|
+
export class AccordionRoot {
|
|
7
|
+
$value;
|
|
8
|
+
#id;
|
|
9
|
+
items = $state([]);
|
|
10
|
+
constructor(props) {
|
|
11
|
+
this.$value = props.value;
|
|
12
|
+
this.#id = props.id;
|
|
13
|
+
}
|
|
14
|
+
toggleActiveItem = (itemId) => {
|
|
15
|
+
if (Array.isArray(this.$value.val)) {
|
|
16
|
+
if (this.$value.val.includes(itemId))
|
|
17
|
+
this.$value.val = this.$value.val.filter((el) => el != itemId);
|
|
18
|
+
else
|
|
19
|
+
this.$value.val.push(itemId);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
if (this.$value.val === itemId)
|
|
23
|
+
this.$value.val = '';
|
|
24
|
+
else
|
|
25
|
+
this.$value.val = itemId;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
isActive = (value) => {
|
|
29
|
+
return typeof this.$value.val === 'string' ? this.$value.val === value : this.$value.val.includes(value);
|
|
30
|
+
};
|
|
31
|
+
props = $derived.by(() => ({
|
|
32
|
+
id: this.#id,
|
|
33
|
+
[attrs.root]: ''
|
|
34
|
+
}));
|
|
35
|
+
state = $derived.by(() => ({
|
|
36
|
+
value: this.$value.val
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
class AccordionItem {
|
|
40
|
+
$value;
|
|
41
|
+
$disabled;
|
|
42
|
+
#id;
|
|
43
|
+
_root;
|
|
44
|
+
sharedIds = new SvelteMap();
|
|
45
|
+
Active = $derived.by(() => this._root.isActive(this.$value.val));
|
|
46
|
+
constructor(root, props) {
|
|
47
|
+
this._root = root;
|
|
48
|
+
this.$value = props.value;
|
|
49
|
+
this.$disabled = props.disabled;
|
|
50
|
+
this.#id = props.id;
|
|
51
|
+
this.sharedIds.set('item', this.#id);
|
|
52
|
+
}
|
|
53
|
+
props = $derived.by(() => ({
|
|
54
|
+
id: this.#id,
|
|
55
|
+
[attrs.item]: '',
|
|
56
|
+
'data-disabled': this.$disabled.val,
|
|
57
|
+
'data-opened': this.Active ? 'opened' : 'closed',
|
|
58
|
+
'data-value': this.$value.val
|
|
59
|
+
}));
|
|
60
|
+
state = $derived.by(() => ({
|
|
61
|
+
active: this.Active,
|
|
62
|
+
disabled: this.$disabled.val
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
class AccordionHeading {
|
|
66
|
+
$level;
|
|
67
|
+
#id;
|
|
68
|
+
_root;
|
|
69
|
+
_item;
|
|
70
|
+
constructor(root, item, props) {
|
|
71
|
+
this._root = root;
|
|
72
|
+
this._item = item;
|
|
73
|
+
this.$level = props.level;
|
|
74
|
+
this.#id = props.id;
|
|
75
|
+
}
|
|
76
|
+
props = $derived.by(() => ({
|
|
77
|
+
id: this.#id,
|
|
78
|
+
[attrs.heading]: '',
|
|
79
|
+
role: 'heading',
|
|
80
|
+
'aria-level': this.$level.val,
|
|
81
|
+
'data-opened': this._item.Active ? 'opened' : 'closed'
|
|
82
|
+
}));
|
|
83
|
+
state = $derived.by(() => ({
|
|
84
|
+
active: this._item.Active
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
class AccordionButton {
|
|
88
|
+
#id;
|
|
89
|
+
_item;
|
|
90
|
+
_root;
|
|
91
|
+
constructor(item, root, props) {
|
|
92
|
+
this._item = item;
|
|
93
|
+
this._root = root;
|
|
94
|
+
this.#id = props.id;
|
|
95
|
+
this._item.sharedIds.set('button', this.#id);
|
|
96
|
+
}
|
|
97
|
+
props = $derived.by(() => ({
|
|
98
|
+
id: this.#id,
|
|
99
|
+
type: 'button',
|
|
100
|
+
'aria-expanded': this._item.Active,
|
|
101
|
+
'aria-disabled': this._item.$disabled.val,
|
|
102
|
+
'aria-controls': this._item.Active ? this._item.sharedIds.get('content') : undefined,
|
|
103
|
+
tabindex: this._item.$disabled.val ? -1 : 0,
|
|
104
|
+
'data-accordionbutton': '',
|
|
105
|
+
'data-active': this._item.Active || undefined,
|
|
106
|
+
...attach((node) => addEvents(node, {
|
|
107
|
+
click: () => {
|
|
108
|
+
if (this._item.$disabled.val)
|
|
109
|
+
return;
|
|
110
|
+
this._root.toggleActiveItem(this._item.$value.val);
|
|
111
|
+
}
|
|
112
|
+
}))
|
|
113
|
+
}));
|
|
114
|
+
state = $derived.by(() => ({
|
|
115
|
+
active: this._item.Active
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
class AccordionContent {
|
|
119
|
+
#id;
|
|
120
|
+
_item;
|
|
121
|
+
_root;
|
|
122
|
+
constructor(item, root, props) {
|
|
123
|
+
this._item = item;
|
|
124
|
+
this._root = root;
|
|
125
|
+
this.#id = props.id;
|
|
126
|
+
this._item.sharedIds.set('content', this.#id);
|
|
127
|
+
}
|
|
128
|
+
props = $derived.by(() => ({
|
|
129
|
+
id: this.#id,
|
|
130
|
+
[attrs.content]: '',
|
|
131
|
+
'data-active': this._item.Active
|
|
132
|
+
}));
|
|
133
|
+
state = $derived.by(() => ({
|
|
134
|
+
active: this._item.Active
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
//
|
|
138
|
+
// ~~BUILDERS
|
|
139
|
+
//
|
|
140
|
+
const rootContext = buildContext(AccordionRoot);
|
|
141
|
+
const itemContext = buildContext(AccordionItem);
|
|
142
|
+
export const createAccordionRootContext = (props) => {
|
|
143
|
+
return rootContext.create(props);
|
|
144
|
+
};
|
|
145
|
+
export const createAccordionItemContext = (props) => {
|
|
146
|
+
return itemContext.create(rootContext.get(), props);
|
|
147
|
+
};
|
|
148
|
+
export const useAccordionHeading = (props) => {
|
|
149
|
+
return rootContext.register(AccordionHeading, itemContext.get(), props);
|
|
150
|
+
};
|
|
151
|
+
export const useAccordionButton = (props) => {
|
|
152
|
+
return itemContext.register(AccordionButton, rootContext.get(), props);
|
|
153
|
+
};
|
|
154
|
+
export const useAccordionContent = (props) => {
|
|
155
|
+
return itemContext.register(AccordionContent, rootContext.get(), props);
|
|
156
|
+
};
|