@neut/ui 0.0.12 → 0.0.14
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/components/calendar/Calendar/Calendar.d.ts +10 -0
- package/dist/components/calendar/Calendar/Calendar.js +306 -0
- package/dist/components/calendar/Calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/Calendar/Calendar.types.d.ts +62 -0
- package/dist/components/calendar/Calendar/Calendar.utils.d.ts +21 -0
- package/dist/components/calendar/Calendar/Calendar.utils.js +68 -0
- package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -0
- package/dist/components/calendar/Calendar/index.d.ts +2 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/calendar/index.js +2 -0
- package/dist/components/combobox/Combobox/Combobox.context.d.ts +3 -0
- package/dist/components/combobox/Combobox/Combobox.context.js +12 -0
- package/dist/components/combobox/Combobox/Combobox.context.js.map +1 -0
- package/dist/components/combobox/Combobox/Combobox.d.ts +3 -0
- package/dist/components/combobox/Combobox/Combobox.js +60 -0
- package/dist/components/combobox/Combobox/Combobox.js.map +1 -0
- package/dist/components/combobox/Combobox/Combobox.types.d.ts +40 -0
- package/dist/components/combobox/Combobox/index.d.ts +2 -0
- package/dist/components/combobox/ComboboxChip/ComboboxChip.d.ts +7 -0
- package/dist/components/combobox/ComboboxChip/ComboboxChip.js +35 -0
- package/dist/components/combobox/ComboboxChip/ComboboxChip.js.map +1 -0
- package/dist/components/combobox/ComboboxChip/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxChips/ComboboxChips.d.ts +5 -0
- package/dist/components/combobox/ComboboxChips/ComboboxChips.js +16 -0
- package/dist/components/combobox/ComboboxChips/ComboboxChips.js.map +1 -0
- package/dist/components/combobox/ComboboxChips/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.d.ts +4 -0
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js +27 -0
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -0
- package/dist/components/combobox/ComboboxChipsInput/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxClear/ComboboxClear.d.ts +4 -0
- package/dist/components/combobox/ComboboxClear/ComboboxClear.js +30 -0
- package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -0
- package/dist/components/combobox/ComboboxClear/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxCollection/ComboboxCollection.d.ts +5 -0
- package/dist/components/combobox/ComboboxCollection/ComboboxCollection.js +20 -0
- package/dist/components/combobox/ComboboxCollection/ComboboxCollection.js.map +1 -0
- package/dist/components/combobox/ComboboxCollection/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.d.ts +2 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.js +49 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.js.map +1 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.types.d.ts +12 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.d.ts +2 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.js +6 -0
- package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.js.map +1 -0
- package/dist/components/combobox/ComboboxContent/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxContent/useComboboxContent.d.ts +13 -0
- package/dist/components/combobox/ComboboxContent/useComboboxContent.js +48 -0
- package/dist/components/combobox/ComboboxContent/useComboboxContent.js.map +1 -0
- package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.d.ts +5 -0
- package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.js +14 -0
- package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -0
- package/dist/components/combobox/ComboboxEmpty/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxGroup/ComboboxGroup.d.ts +5 -0
- package/dist/components/combobox/ComboboxGroup/ComboboxGroup.js +13 -0
- package/dist/components/combobox/ComboboxGroup/ComboboxGroup.js.map +1 -0
- package/dist/components/combobox/ComboboxGroup/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxInput/ComboboxInput.d.ts +9 -0
- package/dist/components/combobox/ComboboxInput/ComboboxInput.js +85 -0
- package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -0
- package/dist/components/combobox/ComboboxInput/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxItem/ComboboxItem.d.ts +7 -0
- package/dist/components/combobox/ComboboxItem/ComboboxItem.js +40 -0
- package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -0
- package/dist/components/combobox/ComboboxItem/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxLabel/ComboboxLabel.d.ts +5 -0
- package/dist/components/combobox/ComboboxLabel/ComboboxLabel.js +14 -0
- package/dist/components/combobox/ComboboxLabel/ComboboxLabel.js.map +1 -0
- package/dist/components/combobox/ComboboxLabel/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxList/ComboboxList.d.ts +5 -0
- package/dist/components/combobox/ComboboxList/ComboboxList.js +22 -0
- package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -0
- package/dist/components/combobox/ComboboxList/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.d.ts +3 -0
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.js +14 -0
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.js.map +1 -0
- package/dist/components/combobox/ComboboxSeparator/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.d.ts +6 -0
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js +34 -0
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -0
- package/dist/components/combobox/ComboboxTrigger/index.d.ts +1 -0
- package/dist/components/combobox/ComboboxValue/ComboboxValue.d.ts +5 -0
- package/dist/components/combobox/ComboboxValue/ComboboxValue.js +15 -0
- package/dist/components/combobox/ComboboxValue/ComboboxValue.js.map +1 -0
- package/dist/components/combobox/ComboboxValue/index.d.ts +1 -0
- package/dist/components/combobox/index.d.ts +18 -0
- package/dist/components/combobox/index.js +18 -0
- package/dist/components/combobox/useComboboxAnchor/index.d.ts +1 -0
- package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.d.ts +1 -0
- package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.js +9 -0
- package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.js.map +1 -0
- package/dist/components/date-picker/DatePicker/DatePicker.d.ts +11 -0
- package/dist/components/date-picker/DatePicker/DatePicker.js +136 -0
- package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DatePicker/DatePicker.types.d.ts +32 -0
- package/dist/components/date-picker/DatePicker/index.d.ts +2 -0
- package/dist/components/date-picker/index.d.ts +2 -0
- package/dist/components/date-picker/index.js +2 -0
- package/dist/components/dialog/Dialog/Dialog.context.d.ts +2 -1
- package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.js +21 -12
- package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.types.d.ts +13 -1
- package/dist/components/dialog/Dialog/index.d.ts +1 -0
- package/dist/components/dialog/DialogTrigger/DialogTrigger.d.ts +4 -2
- package/dist/components/dialog/DialogTrigger/DialogTrigger.js +27 -6
- package/dist/components/dialog/DialogTrigger/DialogTrigger.js.map +1 -1
- package/dist/components/dialog/DialogTrigger/DialogTrigger.types.d.ts +3 -0
- package/dist/components/dialog/DialogTrigger/index.d.ts +3 -0
- package/dist/components/dialog/DialogTrigger/useDialogTrigger.d.ts +13 -2
- package/dist/components/dialog/DialogTrigger/useDialogTrigger.js +15 -19
- package/dist/components/dialog/DialogTrigger/useDialogTrigger.js.map +1 -1
- package/dist/components/dialog/index.js +3 -2
- package/dist/components/empty/Empty/Empty.d.ts +2 -0
- package/dist/components/empty/Empty/Empty.js +18 -0
- package/dist/components/empty/Empty/Empty.js.map +1 -0
- package/dist/components/empty/Empty/index.d.ts +1 -0
- package/dist/components/empty/EmptyContent/EmptyContent.d.ts +2 -0
- package/dist/components/empty/EmptyContent/EmptyContent.js +18 -0
- package/dist/components/empty/EmptyContent/EmptyContent.js.map +1 -0
- package/dist/components/empty/EmptyContent/index.d.ts +1 -0
- package/dist/components/empty/EmptyDescription/EmptyDescription.d.ts +2 -0
- package/dist/components/empty/EmptyDescription/EmptyDescription.js +18 -0
- package/dist/components/empty/EmptyDescription/EmptyDescription.js.map +1 -0
- package/dist/components/empty/EmptyDescription/index.d.ts +1 -0
- package/dist/components/empty/EmptyHeader/EmptyHeader.d.ts +2 -0
- package/dist/components/empty/EmptyHeader/EmptyHeader.js +18 -0
- package/dist/components/empty/EmptyHeader/EmptyHeader.js.map +1 -0
- package/dist/components/empty/EmptyHeader/index.d.ts +1 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.d.ts +4 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.js +27 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.js.map +1 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.styles.d.ts +3 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.styles.js +13 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.styles.js.map +1 -0
- package/dist/components/empty/EmptyMedia/EmptyMedia.types.d.ts +3 -0
- package/dist/components/empty/EmptyMedia/index.d.ts +2 -0
- package/dist/components/empty/EmptyTitle/EmptyTitle.d.ts +2 -0
- package/dist/components/empty/EmptyTitle/EmptyTitle.js +18 -0
- package/dist/components/empty/EmptyTitle/EmptyTitle.js.map +1 -0
- package/dist/components/empty/EmptyTitle/index.d.ts +1 -0
- package/dist/components/empty/index.d.ts +7 -0
- package/dist/components/empty/index.js +7 -0
- package/dist/components/image/Image.utils.js.map +1 -1
- package/dist/components/popover/Popover/Popover.context.d.ts +3 -0
- package/dist/components/popover/Popover/Popover.context.js +12 -0
- package/dist/components/popover/Popover/Popover.context.js.map +1 -0
- package/dist/components/popover/Popover/Popover.d.ts +18 -0
- package/dist/components/popover/Popover/Popover.js +37 -0
- package/dist/components/popover/Popover/Popover.js.map +1 -0
- package/dist/components/popover/Popover/Popover.types.d.ts +24 -0
- package/dist/components/popover/Popover/index.d.ts +3 -0
- package/dist/components/popover/PopoverContent/PopoverContent.d.ts +6 -0
- package/dist/components/popover/PopoverContent/PopoverContent.js +72 -0
- package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -0
- package/dist/components/popover/PopoverContent/PopoverContent.types.d.ts +16 -0
- package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +20 -0
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js +36 -0
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -0
- package/dist/components/popover/PopoverContent/index.d.ts +6 -0
- package/dist/components/popover/PopoverContent/usePopoverContent.d.ts +11 -0
- package/dist/components/popover/PopoverContent/usePopoverContent.js +42 -0
- package/dist/components/popover/PopoverContent/usePopoverContent.js.map +1 -0
- package/dist/components/popover/PopoverDescription/PopoverDescription.d.ts +2 -0
- package/dist/components/popover/PopoverDescription/PopoverDescription.js +18 -0
- package/dist/components/popover/PopoverDescription/PopoverDescription.js.map +1 -0
- package/dist/components/popover/PopoverDescription/index.d.ts +1 -0
- package/dist/components/popover/PopoverHeader/PopoverHeader.d.ts +2 -0
- package/dist/components/popover/PopoverHeader/PopoverHeader.js +18 -0
- package/dist/components/popover/PopoverHeader/PopoverHeader.js.map +1 -0
- package/dist/components/popover/PopoverHeader/index.d.ts +1 -0
- package/dist/components/popover/PopoverTitle/PopoverTitle.d.ts +2 -0
- package/dist/components/popover/PopoverTitle/PopoverTitle.js +18 -0
- package/dist/components/popover/PopoverTitle/PopoverTitle.js.map +1 -0
- package/dist/components/popover/PopoverTitle/index.d.ts +1 -0
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.d.ts +4 -0
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.js +35 -0
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.js.map +1 -0
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.types.d.ts +3 -0
- package/dist/components/popover/PopoverTrigger/index.d.ts +4 -0
- package/dist/components/popover/PopoverTrigger/usePopoverTrigger.d.ts +14 -0
- package/dist/components/popover/PopoverTrigger/usePopoverTrigger.js +35 -0
- package/dist/components/popover/PopoverTrigger/usePopoverTrigger.js.map +1 -0
- package/dist/components/popover/index.d.ts +9 -0
- package/dist/components/popover/index.js +7 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.context.d.ts +3 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.context.js +12 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.context.js.map +1 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.d.ts +15 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.js +56 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.types.d.ts +22 -0
- package/dist/components/radio-group/RadioGroup/index.d.ts +3 -0
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.d.ts +6 -0
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js +80 -0
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -0
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.types.d.ts +9 -0
- package/dist/components/radio-group/RadioGroupItem/index.d.ts +2 -0
- package/dist/components/radio-group/index.d.ts +4 -0
- package/dist/components/radio-group/index.js +3 -0
- package/dist/components/select/Select/Select.context.d.ts +3 -3
- package/dist/components/select/Select/Select.context.js.map +1 -1
- package/dist/components/select/Select/Select.d.ts +5 -2
- package/dist/components/select/Select/Select.js +1 -1
- package/dist/components/select/Select/Select.js.map +1 -1
- package/dist/components/select/Select/Select.types.d.ts +19 -15
- package/dist/components/select/Select/index.d.ts +1 -1
- package/dist/components/select/SelectContent/SelectContent.js +2 -2
- package/dist/components/select/SelectContent/SelectContent.js.map +1 -1
- package/dist/components/select/SelectContent/SelectContent.utils.d.ts +2 -1
- package/dist/components/select/SelectContent/SelectContent.utils.js +2 -2
- package/dist/components/select/SelectContent/SelectContent.utils.js.map +1 -1
- package/dist/components/select/SelectContent/useSelectContent.js +6 -2
- package/dist/components/select/SelectContent/useSelectContent.js.map +1 -1
- package/dist/components/select/SelectItem/SelectItem.js +1 -1
- package/dist/components/select/SelectItem/SelectItem.js.map +1 -1
- package/dist/components/select/SelectItem/SelectItem.types.d.ts +3 -2
- package/dist/components/select/SelectItem/useSelectItem.d.ts +2 -1
- package/dist/components/select/SelectItem/useSelectItem.js +1 -1
- package/dist/components/select/SelectItem/useSelectItem.js.map +1 -1
- package/dist/components/select/SelectValue/SelectValue.js +1 -1
- package/dist/components/select/SelectValue/SelectValue.js.map +1 -1
- package/dist/components/toast/Toast/Toast.d.ts +3 -0
- package/dist/components/toast/Toast/Toast.js +181 -0
- package/dist/components/toast/Toast/Toast.js.map +1 -0
- package/dist/components/toast/Toast/Toast.styles.d.ts +6 -0
- package/dist/components/toast/Toast/Toast.styles.js +27 -0
- package/dist/components/toast/Toast/Toast.styles.js.map +1 -0
- package/dist/components/toast/Toast/Toast.types.d.ts +90 -0
- package/dist/components/toast/Toast/Toast.types.js +6 -0
- package/dist/components/toast/Toast/Toast.types.js.map +1 -0
- package/dist/components/toast/Toast/index.d.ts +2 -0
- package/dist/components/toast/{components → Toaster}/Toaster.d.ts +1 -1
- package/dist/components/toast/Toaster/Toaster.js +102 -0
- package/dist/components/toast/Toaster/Toaster.js.map +1 -0
- package/dist/components/toast/Toaster/Toaster.styles.d.ts +1 -0
- package/dist/components/toast/Toaster/Toaster.styles.js +6 -0
- package/dist/components/toast/Toaster/Toaster.styles.js.map +1 -0
- package/dist/components/toast/Toaster/Toaster.types.d.ts +44 -0
- package/dist/components/toast/Toaster/Toaster.utils.d.ts +7 -0
- package/dist/components/toast/Toaster/Toaster.utils.js +33 -0
- package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -0
- package/dist/components/toast/Toaster/index.d.ts +3 -0
- package/dist/components/toast/index.d.ts +5 -10
- package/dist/components/toast/index.js +4 -5
- package/dist/components/toast/state/index.d.ts +1 -0
- package/dist/components/toast/state/toast.d.ts +24 -0
- package/dist/components/toast/state/toast.js +116 -0
- package/dist/components/toast/state/toast.js.map +1 -0
- package/dist/components/toggle/Toggle/Toggle.d.ts +3 -0
- package/dist/components/toggle/Toggle/Toggle.js +49 -0
- package/dist/components/toggle/Toggle/Toggle.js.map +1 -0
- package/dist/components/toggle/Toggle/Toggle.styles.d.ts +4 -0
- package/dist/components/toggle/Toggle/Toggle.styles.js +23 -0
- package/dist/components/toggle/Toggle/Toggle.styles.js.map +1 -0
- package/dist/components/toggle/Toggle/Toggle.types.d.ts +12 -0
- package/dist/components/toggle/Toggle/index.d.ts +3 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/index.js +3 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.d.ts +36 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js +40 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.d.ts +18 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +94 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.d.ts +8 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.js +7 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.types.d.ts +104 -0
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.d.ts +8 -0
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js +25 -0
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroup/index.d.ts +3 -0
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.d.ts +17 -0
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js +47 -0
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.d.ts +11 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +88 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.d.ts +12 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.js +7 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.types.d.ts +20 -0
- package/dist/components/toggle-group/ToggleGroupItem/index.d.ts +2 -0
- package/dist/components/toggle-group/call-event-handler.d.ts +5 -0
- package/dist/components/toggle-group/call-event-handler.js +9 -0
- package/dist/components/toggle-group/call-event-handler.js.map +1 -0
- package/dist/components/toggle-group/index.d.ts +4 -0
- package/dist/components/toggle-group/index.js +3 -0
- package/dist/components/tooltip/Tooltip/Tooltip.js +51 -50
- package/dist/components/tooltip/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.d.ts +3 -28
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.js +13 -45
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.d.ts +2 -0
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js +2 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.types.d.ts +3 -2
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +2 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +8 -4
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js +20 -19
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.d.ts +3 -0
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.js +10 -0
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.js.map +1 -0
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.d.ts +3 -0
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.js +20 -0
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.js.map +1 -0
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.types.d.ts +11 -0
- package/dist/components/tooltip/TooltipProvider/index.d.ts +3 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +7 -6
- package/dist/index.d.ts +8 -0
- package/dist/index.js +153 -115
- package/dist/ui.css +1 -1
- package/package.json +7 -6
- package/dist/components/toast/components/Assets.d.ts +0 -9
- package/dist/components/toast/components/Assets.js +0 -32
- package/dist/components/toast/components/Assets.js.map +0 -1
- package/dist/components/toast/components/Toast.d.ts +0 -3
- package/dist/components/toast/components/Toast.js +0 -152
- package/dist/components/toast/components/Toast.js.map +0 -1
- package/dist/components/toast/components/ToastActions.d.ts +0 -12
- package/dist/components/toast/components/ToastActions.js +0 -62
- package/dist/components/toast/components/ToastActions.js.map +0 -1
- package/dist/components/toast/components/ToastContent.d.ts +0 -9
- package/dist/components/toast/components/ToastContent.js +0 -36
- package/dist/components/toast/components/ToastContent.js.map +0 -1
- package/dist/components/toast/components/ToastIcon.d.ts +0 -9
- package/dist/components/toast/components/ToastIcon.js +0 -59
- package/dist/components/toast/components/ToastIcon.js.map +0 -1
- package/dist/components/toast/components/Toaster.js +0 -163
- package/dist/components/toast/components/Toaster.js.map +0 -1
- package/dist/components/toast/constants.d.ts +0 -16
- package/dist/components/toast/constants.js +0 -6
- package/dist/components/toast/constants.js.map +0 -1
- package/dist/components/toast/hooks/useSwipe.d.ts +0 -23
- package/dist/components/toast/hooks/useSwipe.js +0 -59
- package/dist/components/toast/hooks/useSwipe.js.map +0 -1
- package/dist/components/toast/hooks/useTheme.d.ts +0 -2
- package/dist/components/toast/hooks/useTheme.js +0 -22
- package/dist/components/toast/hooks/useTheme.js.map +0 -1
- package/dist/components/toast/hooks/useToastHeight.d.ts +0 -11
- package/dist/components/toast/hooks/useToastHeight.js +0 -35
- package/dist/components/toast/hooks/useToastHeight.js.map +0 -1
- package/dist/components/toast/hooks/useToastSubscription.d.ts +0 -5
- package/dist/components/toast/hooks/useToastSubscription.js +0 -38
- package/dist/components/toast/hooks/useToastSubscription.js.map +0 -1
- package/dist/components/toast/hooks/useToastTimer.d.ts +0 -11
- package/dist/components/toast/hooks/useToastTimer.js +0 -22
- package/dist/components/toast/hooks/useToastTimer.js.map +0 -1
- package/dist/components/toast/hooks/useToasterKeyboard.d.ts +0 -7
- package/dist/components/toast/hooks/useToasterKeyboard.js +0 -14
- package/dist/components/toast/hooks/useToasterKeyboard.js.map +0 -1
- package/dist/components/toast/hooks.d.ts +0 -13
- package/dist/components/toast/hooks.js +0 -37
- package/dist/components/toast/hooks.js.map +0 -1
- package/dist/components/toast/state.d.ts +0 -52
- package/dist/components/toast/state.js +0 -170
- package/dist/components/toast/state.js.map +0 -1
- package/dist/components/toast/types.d.ts +0 -168
- package/dist/components/toast/types.js +0 -6
- package/dist/components/toast/types.js.map +0 -1
- package/dist/components/toast/utils.d.ts +0 -10
- package/dist/components/toast/utils.js +0 -39
- package/dist/components/toast/utils.js.map +0 -1
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { assignOffset as e, getDocumentDirection as t } from "../utils.js";
|
|
2
|
-
import { Toast as n } from "./Toast.js";
|
|
3
|
-
import { useTheme as r } from "../hooks/useTheme.js";
|
|
4
|
-
import { useToasterKeyboard as i } from "../hooks/useToasterKeyboard.js";
|
|
5
|
-
import { useToastSubscription as a } from "../hooks/useToastSubscription.js";
|
|
6
|
-
import { Portal as o, className as s, createComponent as c, delegateEvents as l, effect as u, insert as d, setAttribute as f, style as p, template as m, use as h } from "solid-js/web";
|
|
7
|
-
import { For as g, Show as _, createMemo as v, createSignal as y, mergeProps as b } from "solid-js";
|
|
8
|
-
//#region src/components/toast/components/Toaster.tsx
|
|
9
|
-
var x = /*#__PURE__*/ m("<section tabindex=-1 aria-live=polite aria-relevant=\"additions text\"aria-atomic=false>"), S = /*#__PURE__*/ m("<ol tabindex=-1 data-sonner-toaster>"), C = (l) => {
|
|
10
|
-
console.warn("The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.");
|
|
11
|
-
let m = b({
|
|
12
|
-
position: "bottom-right",
|
|
13
|
-
hotkey: ["altKey", "KeyT"],
|
|
14
|
-
gap: 14,
|
|
15
|
-
visibleToasts: 3,
|
|
16
|
-
dir: t(),
|
|
17
|
-
containerAriaLabel: "Notifications"
|
|
18
|
-
}, l), C = () => m.hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, ""), [w, T] = y([]), [E, D] = y(!1), [O, k] = y(!1), A, j = null, M = !1, N = r(() => l.theme ?? "light"), { toasts: P, removeToast: F } = a();
|
|
19
|
-
i({
|
|
20
|
-
hotkey: m.hotkey,
|
|
21
|
-
listRef: () => A,
|
|
22
|
-
setExpanded: D
|
|
23
|
-
});
|
|
24
|
-
let I = v(() => {
|
|
25
|
-
let e = l.id;
|
|
26
|
-
return e ? P().filter((t) => t.toasterId === e) : P().filter((e) => !e.toasterId);
|
|
27
|
-
}), L = v(() => Array.from(new Set([m.position].concat(I().filter((e) => e.position).map((e) => e.position)))));
|
|
28
|
-
v(() => {
|
|
29
|
-
P().length <= 1 && D(!1);
|
|
30
|
-
});
|
|
31
|
-
let R = (e) => {
|
|
32
|
-
e.target.dataset.dismissible !== "false" && (M || (M = !0, j = e.relatedTarget));
|
|
33
|
-
}, z = (e) => {
|
|
34
|
-
let t = e.currentTarget;
|
|
35
|
-
M && !t.contains(e.relatedTarget) && (M = !1, j &&= (j.focus({ preventScroll: !0 }), null));
|
|
36
|
-
}, B = v(() => e(l.offset, l.mobileOffset));
|
|
37
|
-
return c(o, { get children() {
|
|
38
|
-
var e = x();
|
|
39
|
-
return d(e, c(g, {
|
|
40
|
-
get each() {
|
|
41
|
-
return L();
|
|
42
|
-
},
|
|
43
|
-
children: (e) => {
|
|
44
|
-
let [r, i] = e.split("-"), a = () => I().filter((t) => !t.position && e === m.position || t.position === e);
|
|
45
|
-
return c(_, {
|
|
46
|
-
get when() {
|
|
47
|
-
return a().length > 0;
|
|
48
|
-
},
|
|
49
|
-
get children() {
|
|
50
|
-
var o = S();
|
|
51
|
-
return o.$$pointerup = () => k(!1), o.$$pointerdown = (e) => {
|
|
52
|
-
e.target.dataset.dismissible !== "false" && k(!0);
|
|
53
|
-
}, o.addEventListener("dragend", () => D(!1)), o.addEventListener("mouseleave", () => {
|
|
54
|
-
O() || D(!1);
|
|
55
|
-
}), o.$$mousemove = () => D(!0), o.addEventListener("mouseenter", () => D(!0)), o.addEventListener("focus", R), o.addEventListener("blur", z), h((e) => A = e, o), f(o, "data-y-position", r), f(o, "data-x-position", i), d(o, c(g, {
|
|
56
|
-
get each() {
|
|
57
|
-
return a();
|
|
58
|
-
},
|
|
59
|
-
children: (t, r) => {
|
|
60
|
-
let i = v(() => w().filter((e) => e.position === t.position));
|
|
61
|
-
return c(n, {
|
|
62
|
-
get icons() {
|
|
63
|
-
return l.icons;
|
|
64
|
-
},
|
|
65
|
-
get index() {
|
|
66
|
-
return r();
|
|
67
|
-
},
|
|
68
|
-
toast: t,
|
|
69
|
-
get defaultRichColors() {
|
|
70
|
-
return l.richColors;
|
|
71
|
-
},
|
|
72
|
-
get duration() {
|
|
73
|
-
return l.toastOptions?.duration ?? l.duration;
|
|
74
|
-
},
|
|
75
|
-
get class() {
|
|
76
|
-
return l.toastOptions?.class;
|
|
77
|
-
},
|
|
78
|
-
get descriptionClass() {
|
|
79
|
-
return l.toastOptions?.descriptionClass;
|
|
80
|
-
},
|
|
81
|
-
get invert() {
|
|
82
|
-
return l.invert ?? !1;
|
|
83
|
-
},
|
|
84
|
-
get visibleToasts() {
|
|
85
|
-
return m.visibleToasts;
|
|
86
|
-
},
|
|
87
|
-
get closeButton() {
|
|
88
|
-
return l.toastOptions?.closeButton ?? l.closeButton ?? !1;
|
|
89
|
-
},
|
|
90
|
-
get interacting() {
|
|
91
|
-
return O();
|
|
92
|
-
},
|
|
93
|
-
position: e,
|
|
94
|
-
get style() {
|
|
95
|
-
return l.toastOptions?.style;
|
|
96
|
-
},
|
|
97
|
-
get unstyled() {
|
|
98
|
-
return l.toastOptions?.unstyled;
|
|
99
|
-
},
|
|
100
|
-
get classes() {
|
|
101
|
-
return l.toastOptions?.classes;
|
|
102
|
-
},
|
|
103
|
-
get cancelButtonStyle() {
|
|
104
|
-
return l.toastOptions?.cancelButtonStyle;
|
|
105
|
-
},
|
|
106
|
-
get actionButtonStyle() {
|
|
107
|
-
return l.toastOptions?.actionButtonStyle;
|
|
108
|
-
},
|
|
109
|
-
get closeButtonAriaLabel() {
|
|
110
|
-
return l.toastOptions?.closeButtonAriaLabel;
|
|
111
|
-
},
|
|
112
|
-
removeToast: F,
|
|
113
|
-
get toasts() {
|
|
114
|
-
return a();
|
|
115
|
-
},
|
|
116
|
-
get heights() {
|
|
117
|
-
return i();
|
|
118
|
-
},
|
|
119
|
-
setHeights: T,
|
|
120
|
-
get expandByDefault() {
|
|
121
|
-
return l.expand ?? !1;
|
|
122
|
-
},
|
|
123
|
-
get gap() {
|
|
124
|
-
return m.gap;
|
|
125
|
-
},
|
|
126
|
-
get expanded() {
|
|
127
|
-
return E();
|
|
128
|
-
},
|
|
129
|
-
get swipeDirections() {
|
|
130
|
-
return l.swipeDirections;
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
})), u((e) => {
|
|
135
|
-
var n = m.dir === "auto" ? t() : m.dir, r = l.class, i = N(), a = {
|
|
136
|
-
"--front-toast-height": `${w()[0]?.height ?? 0}px`,
|
|
137
|
-
"--width": "356px",
|
|
138
|
-
"--gap": `${m.gap}px`,
|
|
139
|
-
...l.style,
|
|
140
|
-
...B()
|
|
141
|
-
};
|
|
142
|
-
return n !== e.e && f(o, "dir", e.e = n), r !== e.t && s(o, e.t = r), i !== e.a && f(o, "data-sonner-theme", e.a = i), e.o = p(o, a, e.o), e;
|
|
143
|
-
}, {
|
|
144
|
-
e: void 0,
|
|
145
|
-
t: void 0,
|
|
146
|
-
a: void 0,
|
|
147
|
-
o: void 0
|
|
148
|
-
}), o;
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
})), u(() => f(e, "aria-label", l.customAriaLabel ?? `${m.containerAriaLabel} ${C()}`)), e;
|
|
153
|
-
} });
|
|
154
|
-
};
|
|
155
|
-
l([
|
|
156
|
-
"mousemove",
|
|
157
|
-
"pointerdown",
|
|
158
|
-
"pointerup"
|
|
159
|
-
]);
|
|
160
|
-
//#endregion
|
|
161
|
-
export { C as Toaster };
|
|
162
|
-
|
|
163
|
-
//# sourceMappingURL=Toaster.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.js","names":["createMemo","createSignal","For","mergeProps","Show","Component","Toast","useTheme","useToasterKeyboard","useToastSubscription","assignOffset","getDocumentDirection","GAP","TOAST_WIDTH","VISIBLE_TOASTS_AMOUNT","HeightT","Position","ToasterProps","Portal","Toaster","props","console","warn","merged","position","hotkey","gap","visibleToasts","dir","containerAriaLabel","const","hotkeyLabel","join","replace","heights","setHeights","expanded","setExpanded","interacting","setInteracting","listRef","HTMLOListElement","lastFocusedElement","HTMLElement","isFocusWithin","actualTheme","theme","toasts","removeToast","filteredToasts","id","filter","t","toasterId","possiblePositions","Array","from","Set","concat","map","length","onFocus","e","FocusEvent","target","dataset","dismissible","relatedTarget","onBlur","currentTarget","contains","Node","focus","preventScroll","offsetVars","offset","mobileOffset","_$createComponent","children","_el$","_tmpl$","_$insert","each","pos","posY","posX","split","toastsForPos","when","_el$2","_tmpl$2","$$pointerup","$$pointerdown","addEventListener","$$mousemove","_$use","el","_$setAttribute","toast","index","heightsForPos","h","icons","defaultRichColors","richColors","duration","toastOptions","class","descriptionClass","invert","closeButton","style","unstyled","classes","cancelButtonStyle","actionButtonStyle","closeButtonAriaLabel","expandByDefault","expand","swipeDirections","_$effect","_p$","_v$","_v$2","_v$3","_v$4","height","_$className","a","o","_$style","undefined","customAriaLabel","_$delegateEvents"],"sources":["../../../../src/components/toast/components/Toaster.tsx"],"sourcesContent":["/**\n * components/Toaster.tsx\n * Root component that renders the toast container(s) into a portal.\n * Single responsibility: layout, positioning, and orchestrating sub-components/hooks.\n * All state logic is delegated to dedicated hooks.\n */\nimport {\n createMemo,\n createSignal,\n For,\n mergeProps,\n Show,\n type Component,\n} from \"solid-js\";\nimport { Toast } from \"./Toast\";\nimport { useTheme } from \"../hooks/useTheme\";\nimport { useToasterKeyboard } from \"../hooks/useToasterKeyboard\";\nimport { useToastSubscription } from \"../hooks/useToastSubscription\";\nimport { assignOffset, getDocumentDirection } from \"../utils\";\nimport { GAP, TOAST_WIDTH, VISIBLE_TOASTS_AMOUNT } from \"../constants\";\nimport type { HeightT, Position, ToasterProps } from \"../types\";\nimport { Portal } from \"solid-js/web\";\n\nexport const Toaster: Component<ToasterProps> = (props) => {\n console.warn(\n \"The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.\",\n );\n\n const merged = mergeProps(\n {\n position: \"bottom-right\",\n hotkey: [\"altKey\", \"KeyT\"] as string[],\n gap: GAP,\n visibleToasts: VISIBLE_TOASTS_AMOUNT,\n dir: getDocumentDirection(),\n containerAriaLabel: \"Notifications\",\n } as const,\n props,\n );\n\n const hotkeyLabel = () =>\n merged.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n\n // ─── Local state ──────────────────────────────────────────────────────────────\n const [heights, setHeights] = createSignal<HeightT[]>([]);\n const [expanded, setExpanded] = createSignal(false);\n const [interacting, setInteracting] = createSignal(false);\n\n let listRef: HTMLOListElement | undefined;\n let lastFocusedElement: HTMLElement | null = null;\n let isFocusWithin = false;\n\n // ─── Composed hooks ───────────────────────────────────────────────────────────\n const actualTheme = useTheme(() => props.theme ?? \"light\");\n const { toasts, removeToast } = useToastSubscription();\n\n useToasterKeyboard({\n hotkey: merged.hotkey,\n listRef: () => listRef,\n setExpanded,\n });\n\n // ─── Derived data ─────────────────────────────────────────────────────────────\n /** Toasts that belong to this specific Toaster instance (by id) */\n const filteredToasts = createMemo(() => {\n const id = props.id;\n return id\n ? toasts().filter((t) => t.toasterId === id)\n : toasts().filter((t) => !t.toasterId);\n });\n\n /** All unique positions used by active toasts (plus the default position) */\n const possiblePositions = createMemo(() =>\n Array.from(\n new Set(\n [merged.position].concat(\n filteredToasts()\n .filter((t) => t.position)\n .map((t) => t.position as Position),\n ),\n ),\n ),\n );\n\n // Collapse when only one toast remains\n createMemo(() => {\n if (toasts().length <= 1) setExpanded(false);\n });\n\n // ─── Focus management ─────────────────────────────────────────────────────────\n const onFocus = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n if (!isFocusWithin) {\n isFocusWithin = true;\n lastFocusedElement = e.relatedTarget as HTMLElement;\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n if (isFocusWithin && !currentTarget.contains(e.relatedTarget as Node)) {\n isFocusWithin = false;\n if (lastFocusedElement) {\n lastFocusedElement.focus({ preventScroll: true });\n lastFocusedElement = null;\n }\n }\n };\n\n // ─── CSS offset vars ──────────────────────────────────────────────────────────\n const offsetVars = createMemo(() =>\n assignOffset(props.offset, props.mobileOffset),\n );\n\n return (\n <Portal>\n <section\n aria-label={\n props.customAriaLabel ??\n `${merged.containerAriaLabel} ${hotkeyLabel()}`\n }\n tabIndex={-1}\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-atomic=\"false\"\n >\n <For each={possiblePositions()}>\n {(pos) => {\n const [posY, posX] = pos.split(\"-\");\n const toastsForPos = () =>\n filteredToasts().filter(\n (t) =>\n (!t.position && pos === merged.position) ||\n t.position === pos,\n );\n\n return (\n <Show when={toastsForPos().length > 0}>\n <ol\n ref={(el) => (listRef = el)}\n dir={\n merged.dir === \"auto\" ? getDocumentDirection() : merged.dir\n }\n tabIndex={-1}\n class={props.class}\n data-sonner-toaster\n data-sonner-theme={actualTheme()}\n data-y-position={posY}\n data-x-position={posX}\n style={{\n \"--front-toast-height\": `${heights()[0]?.height ?? 0}px`,\n \"--width\": `${TOAST_WIDTH}px`,\n \"--gap\": `${merged.gap}px`,\n ...(props.style as any),\n ...offsetVars(),\n }}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseEnter={() => setExpanded(true)}\n onMouseMove={() => setExpanded(true)}\n onMouseLeave={() => {\n if (!interacting()) setExpanded(false);\n }}\n onDragEnd={() => setExpanded(false)}\n onPointerDown={(e) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n setInteracting(true);\n }}\n onPointerUp={() => setInteracting(false)}\n >\n <For each={toastsForPos()}>\n {(toast, index) => {\n const heightsForPos = createMemo(() =>\n heights().filter((h) => h.position === toast.position),\n );\n\n return (\n <Toast\n icons={props.icons}\n index={index()}\n toast={toast}\n defaultRichColors={props.richColors}\n duration={\n props.toastOptions?.duration ?? props.duration\n }\n class={props.toastOptions?.class}\n descriptionClass={\n props.toastOptions?.descriptionClass\n }\n invert={props.invert ?? false}\n visibleToasts={merged.visibleToasts}\n closeButton={\n props.toastOptions?.closeButton ??\n props.closeButton ??\n false\n }\n interacting={interacting()}\n position={pos}\n style={props.toastOptions?.style}\n unstyled={props.toastOptions?.unstyled}\n classes={props.toastOptions?.classes}\n cancelButtonStyle={\n props.toastOptions?.cancelButtonStyle\n }\n actionButtonStyle={\n props.toastOptions?.actionButtonStyle\n }\n closeButtonAriaLabel={\n props.toastOptions?.closeButtonAriaLabel\n }\n removeToast={removeToast}\n toasts={toastsForPos()}\n heights={heightsForPos()}\n setHeights={setHeights}\n expandByDefault={props.expand ?? false}\n gap={merged.gap}\n expanded={expanded()}\n swipeDirections={props.swipeDirections}\n />\n );\n }}\n </For>\n </ol>\n </Show>\n );\n }}\n </For>\n </section>\n </Portal>\n );\n};\n"],"mappings":";;;;;;;;kLAuBamB,KAAoCC,MAAU;CACzDC,QAAQC,KACN,mgBACF;CAEA,IAAMC,IAASpB,EACb;EACEqB,UAAU;EACVC,QAAQ,CAAC,UAAU,MAAM;EACzBC,KAAAA;EACAC,eAAAA;EACAC,KAAKjB,EAAqB;EAC1BkB,oBAAoB;CACtB,GACAT,CACF,GAEMW,UACJR,EAAOE,OAAOO,KAAK,GAAG,CAAC,CAACC,QAAQ,QAAQ,EAAE,CAAC,CAACA,QAAQ,UAAU,EAAE,GAG5D,CAACC,GAASC,KAAclC,EAAwB,CAAA,CAAE,GAClD,CAACmC,GAAUC,KAAepC,EAAa,EAAK,GAC5C,CAACqC,GAAaC,KAAkBtC,EAAa,EAAK,GAEpDuC,GACAE,IAAyC,MACzCE,IAAgB,IAGdC,IAActC,QAAea,EAAM0B,SAAS,OAAO,GACnD,EAAEC,WAAQC,mBAAgBvC,EAAqB;CAErDD,EAAmB;EACjBiB,QAAQF,EAAOE;EACfe,eAAeA;EACfH;CACF,CAAC;CAID,IAAMY,IAAiBjD,QAAiB;EACtC,IAAMkD,IAAK9B,EAAM8B;EACjB,OAAOA,IACHH,EAAO,CAAC,CAACI,QAAQC,MAAMA,EAAEC,cAAcH,CAAE,IACzCH,EAAO,CAAC,CAACI,QAAQC,MAAM,CAACA,EAAEC,SAAS;CACzC,CAAC,GAGKC,IAAoBtD,QACxBuD,MAAMC,KACJ,IAAIC,IACF,CAAClC,EAAOC,QAAQ,CAAC,CAACkC,OAChBT,EAAe,CAAC,CACbE,QAAQC,MAAMA,EAAE5B,QAAQ,CAAC,CACzBmC,KAAKP,MAAMA,EAAE5B,QAAoB,CACtC,CACF,CACF,CACF;CAGAxB,QAAiB;EACf,AAAI+C,EAAO,CAAC,CAACa,UAAU,KAAGvB,EAAY,EAAK;CAC7C,CAAC;CAGD,IAAMwB,KAAWC,MAAkB;EAClBA,EAAEE,OACNC,QAAQC,gBAAgB,YAC9BtB,MACHA,IAAgB,IAChBF,IAAqBoB,EAAEK;CAE3B,GAEMC,KAAUN,MAAkB;EAChC,IAAMO,IAAgBP,EAAEO;EACxB,AAAIzB,KAAiB,CAACyB,EAAcC,SAASR,EAAEK,aAAqB,MAClEvB,IAAgB,IAChB,AAEEF,OADAA,EAAmB8B,MAAM,EAAEC,eAAe,GAAK,CAAC,GAC3B;CAG3B,GAGMC,IAAa1E,QACjBU,EAAaU,EAAMuD,QAAQvD,EAAMwD,YAAY,CAC/C;CAEA,OAAAC,EACG3D,GAAM,EAAA,IAAA4D,WAAA;EAAA,IAAAC,IAAAC,EAAA;EAI8C,OAJ9CC,EAAAF,GAAAF,EAWF3E,GAAG;GAAA,IAACgF,OAAI;IAAA,OAAE5B,EAAkB;GAAC;GAAAwB,WAC1BK,MAAQ;IACR,IAAM,CAACC,GAAMC,KAAQF,EAAIG,MAAM,GAAG,GAC5BC,UACJtC,EAAe,CAAC,CAACE,QACdC,MACE,CAACA,EAAE5B,YAAY2D,MAAQ5D,EAAOC,YAC/B4B,EAAE5B,aAAa2D,CACnB;IAEF,OAAAN,EACGzE,GAAI;KAAA,IAACoF,OAAI;MAAA,OAAED,EAAa,CAAC,CAAC3B,SAAS;KAAC;KAAA,IAAAkB,WAAA;MAAA,IAAAW,IAAAC,EAAA;MAkBhC,OAlBgCD,EAAAE,oBAgCdpD,EAAe,EAAK,GAACkD,EAAAG,iBALxB9B,MAAM;OACLA,EAAEE,OACNC,QAAQC,gBAAgB,WACnC3B,EAAe,EAAI;MACrB,GAACkD,EAAAI,iBAAA,iBALgBxD,EAAY,EAAK,CAAC,GAAAoD,EAAAI,iBAAA,oBAHf;OAClB,AAAKvD,EAAY,KAAGD,EAAY,EAAK;MACvC,CAAC,GAAAoD,EAAAK,oBAHkBzD,EAAY,EAAI,GAACoD,EAAAI,iBAAA,oBADhBxD,EAAY,EAAI,CAAC,GAAAoD,EAAAI,iBAAA,SAD5BhC,CAAO,GAAA4B,EAAAI,iBAAA,QADRzB,CAAM,GAAA2B,GAjBRC,MAAQxD,IAAUwD,GAAGP,CAAA,GAAAQ,EAAAR,GAAA,mBAQVL,CAAI,GAAAa,EAAAR,GAAA,mBACJJ,CAAI,GAAAJ,EAAAQ,GAAAZ,EAuBpB3E,GAAG;OAAA,IAACgF,OAAI;QAAA,OAAEK,EAAa;OAAC;OAAAT,WACrBoB,GAAOC,MAAU;QACjB,IAAMC,IAAgBpG,QACpBkC,EAAQ,CAAC,CAACiB,QAAQkD,MAAMA,EAAE7E,aAAa0E,EAAM1E,QAAQ,CACvD;QAEA,OAAAqD,EACGvE,GAAK;SAAA,IACJgG,QAAK;UAAA,OAAElF,EAAMkF;SAAK;SAAA,IAClBH,QAAK;UAAA,OAAEA,EAAM;SAAC;SACPD;SAAK,IACZK,oBAAiB;UAAA,OAAEnF,EAAMoF;SAAU;SAAA,IACnCC,WAAQ;UAAA,OACNrF,EAAMsF,cAAcD,YAAYrF,EAAMqF;SAAQ;SAAA,IAAA,QAAA;UAAA,OAEzCrF,EAAMsF,cAAcC;SAAK;SAAA,IAChCC,mBAAgB;UAAA,OACdxF,EAAMsF,cAAcE;SAAgB;SAAA,IAEtCC,SAAM;UAAA,OAAEzF,EAAMyF,UAAU;SAAK;SAAA,IAC7BlF,gBAAa;UAAA,OAAEJ,EAAOI;SAAa;SAAA,IACnCmF,cAAW;UAAA,OACT1F,EAAMsF,cAAcI,eACpB1F,EAAM0F,eACN;SAAK;SAAA,IAEPxE,cAAW;UAAA,OAAEA,EAAY;SAAC;SAC1Bd,UAAU2D;SAAG,IACb4B,QAAK;UAAA,OAAE3F,EAAMsF,cAAcK;SAAK;SAAA,IAChCC,WAAQ;UAAA,OAAE5F,EAAMsF,cAAcM;SAAQ;SAAA,IACtCC,UAAO;UAAA,OAAE7F,EAAMsF,cAAcO;SAAO;SAAA,IACpCC,oBAAiB;UAAA,OACf9F,EAAMsF,cAAcQ;SAAiB;SAAA,IAEvCC,oBAAiB;UAAA,OACf/F,EAAMsF,cAAcS;SAAiB;SAAA,IAEvCC,uBAAoB;UAAA,OAClBhG,EAAMsF,cAAcU;SAAoB;SAE7BpE;SAAW,IACxBD,SAAM;UAAA,OAAEwC,EAAa;SAAC;SAAA,IACtBrD,UAAO;UAAA,OAAEkE,EAAc;SAAC;SACZjE;SAAU,IACtBkF,kBAAe;UAAA,OAAEjG,EAAMkG,UAAU;SAAK;SAAA,IACtC5F,MAAG;UAAA,OAAEH,EAAOG;SAAG;SAAA,IACfU,WAAQ;UAAA,OAAEA,EAAS;SAAC;SAAA,IACpBmF,kBAAe;UAAA,OAAEnG,EAAMmG;SAAe;QAAA,CAAA;OAG5C;MAAC,CAAA,CAAA,GAAAC,GAAAC,MAAA;OAAA,IAAAC,IAhFDnG,EAAOK,QAAQ,SAASjB,EAAqB,IAAIY,EAAOK,KAAG+F,IAGtDvG,EAAMuF,OAAKiB,IAEC/E,EAAY,GAACgF,IAGzB;QACL,wBAAwB,GAAG3F,EAAQ,CAAC,CAAC,EAAE,EAAE4F,UAAU,EAAC;QACpD,WAAW;QACX,SAAS,GAAGvG,EAAOG,IAAG;QACtB,GAAIN,EAAM2F;QACV,GAAGrC,EAAW;OAChB;OAAC,OAAAgD,MAAAD,EAAA3D,KAAAmC,EAAAR,GAAA,OAAAgC,EAAA3D,IAAA4D,CAAA,GAAAC,MAAAF,EAAArE,KAAA2E,EAAAtC,GAAAgC,EAAArE,IAAAuE,CAAA,GAAAC,MAAAH,EAAAO,KAAA/B,EAAAR,GAAA,qBAAAgC,EAAAO,IAAAJ,CAAA,GAAAH,EAAAQ,IAAAC,EAAAzC,GAAAoC,GAAAJ,EAAAQ,CAAA,GAAAR;MAAA,GAAA;OAAA3D,GAAAqE,KAAAA;OAAA/E,GAAA+E,KAAAA;OAAAH,GAAAG,KAAAA;OAAAF,GAAAE,KAAAA;MAAA,CAAA,GAAA1C;KAAA;IAAA,CAAA;GAuET;EAAC,CAAA,CAAA,GAAA+B,QAAAvB,EAAAlB,GAAA,cA5GD3D,EAAMgH,mBACN,GAAG7G,EAAOM,mBAAkB,GAAIE,EAAY,GAAG,CAAA,GAAAgD;CAAA,EAAA,CAAA;AAgHzD;AAAEsD,EAAA;CAAA;CAAA;CAAA;AAAA,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/** How many toasts are visible at once (stacked) */
|
|
2
|
-
export declare const VISIBLE_TOASTS_AMOUNT = 3;
|
|
3
|
-
/** Default desktop viewport offset */
|
|
4
|
-
export declare const VIEWPORT_OFFSET = "24px";
|
|
5
|
-
/** Default mobile viewport offset */
|
|
6
|
-
export declare const MOBILE_VIEWPORT_OFFSET = "16px";
|
|
7
|
-
/** Auto-dismiss duration in milliseconds */
|
|
8
|
-
export declare const TOAST_LIFETIME = 4000;
|
|
9
|
-
/** Default toast width in pixels */
|
|
10
|
-
export declare const TOAST_WIDTH = 356;
|
|
11
|
-
/** Vertical gap between stacked toasts in pixels */
|
|
12
|
-
export declare const GAP = 14;
|
|
13
|
-
/** Minimum swipe distance (px) or velocity to dismiss */
|
|
14
|
-
export declare const SWIPE_THRESHOLD = 45;
|
|
15
|
-
/** Delay (ms) before removing a dismissed toast from the DOM */
|
|
16
|
-
export declare const TIME_BEFORE_UNMOUNT = 200;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":[],"sources":["../../../src/components/toast/constants.ts"],"sourcesContent":["/** How many toasts are visible at once (stacked) */\nexport const VISIBLE_TOASTS_AMOUNT = 3;\n\n/** Default desktop viewport offset */\nexport const VIEWPORT_OFFSET = \"24px\";\n\n/** Default mobile viewport offset */\nexport const MOBILE_VIEWPORT_OFFSET = \"16px\";\n\n/** Auto-dismiss duration in milliseconds */\nexport const TOAST_LIFETIME = 4000;\n\n/** Default toast width in pixels */\nexport const TOAST_WIDTH = 356;\n\n/** Vertical gap between stacked toasts in pixels */\nexport const GAP = 14;\n\n/** Minimum swipe distance (px) or velocity to dismiss */\nexport const SWIPE_THRESHOLD = 45;\n\n/** Delay (ms) before removing a dismissed toast from the DOM */\nexport const TIME_BEFORE_UNMOUNT = 200;\n"],"mappings":";AAIA,IAAa,IAAkB,QAGlB,IAAyB,QAGzB,IAAiB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { SwipeDirection, ToastT } from '../types';
|
|
2
|
-
interface UseSwipeOptions {
|
|
3
|
-
toastRef: () => HTMLLIElement | undefined;
|
|
4
|
-
toast: ToastT;
|
|
5
|
-
dismissible: boolean;
|
|
6
|
-
position: string;
|
|
7
|
-
swipeDirections?: SwipeDirection[];
|
|
8
|
-
offset: () => number;
|
|
9
|
-
deleteToast: () => void;
|
|
10
|
-
}
|
|
11
|
-
export declare function useSwipe(opts: UseSwipeOptions): {
|
|
12
|
-
swiping: import('solid-js').Accessor<boolean>;
|
|
13
|
-
swipeOut: import('solid-js').Accessor<boolean>;
|
|
14
|
-
swipeOutDirection: import('solid-js').Accessor<"left" | "right" | "up" | "down" | null>;
|
|
15
|
-
isSwiped: import('solid-js').Accessor<boolean>;
|
|
16
|
-
offsetBeforeRemove: import('solid-js').Accessor<number>;
|
|
17
|
-
setOffsetBeforeRemove: import('solid-js').Setter<number>;
|
|
18
|
-
onPointerDown: (e: PointerEvent) => void;
|
|
19
|
-
onPointerUp: () => void;
|
|
20
|
-
onPointerMove: (e: PointerEvent) => void;
|
|
21
|
-
onDragEnd: () => void;
|
|
22
|
-
};
|
|
23
|
-
export {};
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { getDefaultSwipeDirections as e } from "../utils.js";
|
|
2
|
-
import { createSignal as t } from "solid-js";
|
|
3
|
-
//#region src/components/toast/hooks/useSwipe.ts
|
|
4
|
-
function n(n) {
|
|
5
|
-
let [r, i] = t(!1), [a, o] = t(!1), [s, c] = t(null), [l, u] = t(!1), [d, f] = t(0), p = null, m = null, h = null, g = () => n.toast.type === "loading";
|
|
6
|
-
return {
|
|
7
|
-
swiping: r,
|
|
8
|
-
swipeOut: a,
|
|
9
|
-
swipeOutDirection: s,
|
|
10
|
-
isSwiped: l,
|
|
11
|
-
offsetBeforeRemove: d,
|
|
12
|
-
setOffsetBeforeRemove: f,
|
|
13
|
-
onPointerDown: (e) => {
|
|
14
|
-
e.button !== 2 && (g() || !n.dismissible || (h = /* @__PURE__ */ new Date(), f(n.offset()), e.target.setPointerCapture(e.pointerId), e.target.tagName !== "BUTTON" && (i(!0), m = {
|
|
15
|
-
x: e.clientX,
|
|
16
|
-
y: e.clientY
|
|
17
|
-
})));
|
|
18
|
-
},
|
|
19
|
-
onPointerUp: () => {
|
|
20
|
-
if (a() || !n.dismissible) return;
|
|
21
|
-
m = null;
|
|
22
|
-
let e = n.toastRef(), t = Number(e?.style.getPropertyValue("--swipe-amount-x").replace("px", "") || 0), r = Number(e?.style.getPropertyValue("--swipe-amount-y").replace("px", "") || 0), s = Date.now() - (h?.getTime() ?? 0), l = p === "x" ? t : r, d = Math.abs(l) / s;
|
|
23
|
-
if (Math.abs(l) >= 45 || d > .11) {
|
|
24
|
-
f(n.offset()), n.toast.onDismiss?.(n.toast), c(p === "x" ? t > 0 ? "right" : "left" : r > 0 ? "down" : "up"), n.deleteToast(), o(!0);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
e?.style.setProperty("--swipe-amount-x", "0px"), e?.style.setProperty("--swipe-amount-y", "0px"), u(!1), i(!1), p = null;
|
|
28
|
-
},
|
|
29
|
-
onPointerMove: (t) => {
|
|
30
|
-
if (!m || !n.dismissible || (window.getSelection()?.toString().length ?? 0) > 0) return;
|
|
31
|
-
let r = t.clientY - m.y, i = t.clientX - m.x, a = n.swipeDirections ?? e(n.position);
|
|
32
|
-
!p && (Math.abs(i) > 1 || Math.abs(r) > 1) && (p = Math.abs(i) > Math.abs(r) ? "x" : "y");
|
|
33
|
-
let o = (e) => 1 / (1.5 + Math.abs(e) / 20), s = {
|
|
34
|
-
x: 0,
|
|
35
|
-
y: 0
|
|
36
|
-
};
|
|
37
|
-
if (p === "y" && (a.includes("top") || a.includes("bottom"))) if (a.includes("top") && r < 0 || a.includes("bottom") && r > 0) s.y = r;
|
|
38
|
-
else {
|
|
39
|
-
let e = r * o(r);
|
|
40
|
-
s.y = Math.abs(e) < Math.abs(r) ? e : r;
|
|
41
|
-
}
|
|
42
|
-
else if (p === "x" && (a.includes("left") || a.includes("right"))) if (a.includes("left") && i < 0 || a.includes("right") && i > 0) s.x = i;
|
|
43
|
-
else {
|
|
44
|
-
let e = i * o(i);
|
|
45
|
-
s.x = Math.abs(e) < Math.abs(i) ? e : i;
|
|
46
|
-
}
|
|
47
|
-
(Math.abs(s.x) > 0 || Math.abs(s.y) > 0) && u(!0);
|
|
48
|
-
let c = n.toastRef();
|
|
49
|
-
c?.style.setProperty("--swipe-amount-x", `${s.x}px`), c?.style.setProperty("--swipe-amount-y", `${s.y}px`);
|
|
50
|
-
},
|
|
51
|
-
onDragEnd: () => {
|
|
52
|
-
i(!1), p = null, m = null;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
//#endregion
|
|
57
|
-
export { n as useSwipe };
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=useSwipe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSwipe.js","names":[],"sources":["../../../../src/components/toast/hooks/useSwipe.ts"],"sourcesContent":["import { createSignal } from \"solid-js\";\nimport { SWIPE_THRESHOLD } from \"../constants\";\nimport { getDefaultSwipeDirections } from \"../utils\";\nimport type { SwipeDirection, ToastT } from \"../types\";\n\ninterface UseSwipeOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: ToastT;\n dismissible: boolean;\n position: string;\n swipeDirections?: SwipeDirection[];\n offset: () => number;\n deleteToast: () => void;\n}\n\nexport function useSwipe(opts: UseSwipeOptions) {\n const [swiping, setSwiping] = createSignal(false);\n const [swipeOut, setSwipeOut] = createSignal(false);\n const [swipeOutDirection, setSwipeOutDirection] = createSignal<\n \"left\" | \"right\" | \"up\" | \"down\" | null\n >(null);\n const [isSwiped, setIsSwiped] = createSignal(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = createSignal(0);\n\n let swipeDirection: \"x\" | \"y\" | null = null;\n let pointerStart: { x: number; y: number } | null = null;\n let dragStartTime: Date | null = null;\n\n const disabled = () => opts.toast.type === \"loading\";\n\n const onPointerDown = (e: PointerEvent) => {\n if (e.button === 2) return;\n if (disabled() || !opts.dismissible) return;\n dragStartTime = new Date();\n setOffsetBeforeRemove(opts.offset());\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n if ((e.target as HTMLElement).tagName === \"BUTTON\") return;\n setSwiping(true);\n pointerStart = { x: e.clientX, y: e.clientY };\n };\n\n const onPointerUp = () => {\n if (swipeOut() || !opts.dismissible) return;\n pointerStart = null;\n\n const el = opts.toastRef();\n const amtX = Number(\n el?.style.getPropertyValue(\"--swipe-amount-x\").replace(\"px\", \"\") || 0,\n );\n const amtY = Number(\n el?.style.getPropertyValue(\"--swipe-amount-y\").replace(\"px\", \"\") || 0,\n );\n const timeTaken = Date.now() - (dragStartTime?.getTime() ?? 0);\n const swipeAmt = swipeDirection === \"x\" ? amtX : amtY;\n const velocity = Math.abs(swipeAmt) / timeTaken;\n\n if (Math.abs(swipeAmt) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(opts.offset());\n opts.toast.onDismiss?.(opts.toast);\n if (swipeDirection === \"x\") {\n setSwipeOutDirection(amtX > 0 ? \"right\" : \"left\");\n } else {\n setSwipeOutDirection(amtY > 0 ? \"down\" : \"up\");\n }\n opts.deleteToast();\n setSwipeOut(true);\n return;\n }\n\n el?.style.setProperty(\"--swipe-amount-x\", \"0px\");\n el?.style.setProperty(\"--swipe-amount-y\", \"0px\");\n setIsSwiped(false);\n setSwiping(false);\n swipeDirection = null;\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (!pointerStart || !opts.dismissible) return;\n if ((window.getSelection()?.toString().length ?? 0) > 0) return;\n\n const yDelta = e.clientY - pointerStart.y;\n const xDelta = e.clientX - pointerStart.x;\n const dirs =\n opts.swipeDirections ?? getDefaultSwipeDirections(opts.position);\n\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n swipeDirection = Math.abs(xDelta) > Math.abs(yDelta) ? \"x\" : \"y\";\n }\n\n const getDampen = (delta: number) => 1 / (1.5 + Math.abs(delta) / 20);\n\n const swipeAmt = { x: 0, y: 0 };\n\n if (\n swipeDirection === \"y\" &&\n (dirs.includes(\"top\") || dirs.includes(\"bottom\"))\n ) {\n if (\n (dirs.includes(\"top\") && yDelta < 0) ||\n (dirs.includes(\"bottom\") && yDelta > 0)\n ) {\n swipeAmt.y = yDelta;\n } else {\n const d = yDelta * getDampen(yDelta);\n swipeAmt.y = Math.abs(d) < Math.abs(yDelta) ? d : yDelta;\n }\n } else if (\n swipeDirection === \"x\" &&\n (dirs.includes(\"left\") || dirs.includes(\"right\"))\n ) {\n if (\n (dirs.includes(\"left\") && xDelta < 0) ||\n (dirs.includes(\"right\") && xDelta > 0)\n ) {\n swipeAmt.x = xDelta;\n } else {\n const d = xDelta * getDampen(xDelta);\n swipeAmt.x = Math.abs(d) < Math.abs(xDelta) ? d : xDelta;\n }\n }\n\n if (Math.abs(swipeAmt.x) > 0 || Math.abs(swipeAmt.y) > 0) setIsSwiped(true);\n\n const el = opts.toastRef();\n el?.style.setProperty(\"--swipe-amount-x\", `${swipeAmt.x}px`);\n el?.style.setProperty(\"--swipe-amount-y\", `${swipeAmt.y}px`);\n };\n\n const onDragEnd = () => {\n setSwiping(false);\n swipeDirection = null;\n pointerStart = null;\n };\n\n return {\n swiping,\n swipeOut,\n swipeOutDirection,\n isSwiped,\n offsetBeforeRemove,\n setOffsetBeforeRemove,\n onPointerDown,\n onPointerUp,\n onPointerMove,\n onDragEnd,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { createEffect as e, createSignal as t, onCleanup as n } from "solid-js";
|
|
2
|
-
//#region src/components/toast/hooks/useTheme.ts
|
|
3
|
-
function r(r) {
|
|
4
|
-
let i = () => typeof window < "u" && window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light", [a, o] = t(r() === "system" ? i() : r());
|
|
5
|
-
return e(() => {
|
|
6
|
-
if (r() !== "system") {
|
|
7
|
-
o(r());
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
if (o(i()), typeof window > "u") return;
|
|
11
|
-
let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => o(e.matches ? "dark" : "light");
|
|
12
|
-
try {
|
|
13
|
-
e.addEventListener("change", t), n(() => e.removeEventListener("change", t));
|
|
14
|
-
} catch {
|
|
15
|
-
e.addListener(t), n(() => e.removeListener(t));
|
|
16
|
-
}
|
|
17
|
-
}), a;
|
|
18
|
-
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { r as useTheme };
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=useTheme.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","names":[],"sources":["../../../../src/components/toast/hooks/useTheme.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { Theme } from \"../types\";\n\nexport function useTheme(theme: () => Theme | \"system\") {\n const getSystemTheme = (): Theme =>\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n\n const [actualTheme, setActualTheme] = createSignal<Theme>(\n theme() !== \"system\" ? (theme() as Theme) : getSystemTheme(),\n );\n\n createEffect(() => {\n if (theme() !== \"system\") {\n setActualTheme(theme() as Theme);\n return;\n }\n\n setActualTheme(getSystemTheme());\n\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) =>\n setActualTheme(e.matches ? \"dark\" : \"light\");\n\n try {\n mq.addEventListener(\"change\", handler);\n onCleanup(() => mq.removeEventListener(\"change\", handler));\n } catch {\n // Safari < 14 fallback\n mq.addListener(handler);\n onCleanup(() => mq.removeListener(handler as any));\n }\n });\n\n return actualTheme;\n}\n"],"mappings":";;AAGA,SAAgB,EAAS,GAA+B;CACtD,IAAM,UACJ,OAAO,SAAW,OAClB,OAAO,aAAa,8BAA8B,CAAC,CAAC,UAChD,SACA,SAEA,CAAC,GAAa,KAAkB,EACpC,EAAM,MAAM,WAAgC,EAAe,IAAnC,EAAM,CAChC;CAyBA,OAvBA,QAAmB;EACjB,IAAI,EAAM,MAAM,UAAU;GACxB,EAAe,EAAM,CAAU;GAC/B;EACF;EAIA,IAFA,EAAe,EAAe,CAAC,GAE3B,OAAO,SAAW,KAAa;EACnC,IAAM,IAAK,OAAO,WAAW,8BAA8B,GACrD,KAAW,MACf,EAAe,EAAE,UAAU,SAAS,OAAO;EAE7C,IAAI;GAEF,AADA,EAAG,iBAAiB,UAAU,CAAO,GACrC,QAAgB,EAAG,oBAAoB,UAAU,CAAO,CAAC;EAC3D,QAAQ;GAGN,AADA,EAAG,YAAY,CAAO,GACtB,QAAgB,EAAG,eAAe,CAAc,CAAC;EACnD;CACF,CAAC,GAEM;AACT"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { HeightT, ToastT } from '../types';
|
|
2
|
-
interface UseToastHeightOptions {
|
|
3
|
-
toastRef: () => HTMLLIElement | undefined;
|
|
4
|
-
toast: () => ToastT;
|
|
5
|
-
mounted: () => boolean;
|
|
6
|
-
setHeights: (updater: (prev: HeightT[]) => HeightT[]) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare function useToastHeight(opts: UseToastHeightOptions): {
|
|
9
|
-
initialHeight: import('solid-js').Accessor<number>;
|
|
10
|
-
};
|
|
11
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { createEffect as e, createSignal as t, onCleanup as n } from "solid-js";
|
|
2
|
-
//#region src/components/toast/hooks/useToastHeight.ts
|
|
3
|
-
function r(r) {
|
|
4
|
-
let [i, a] = t(0), o = r.toast();
|
|
5
|
-
return e(() => {
|
|
6
|
-
let e = r.toastRef();
|
|
7
|
-
if (!e) return;
|
|
8
|
-
let t = e.getBoundingClientRect().height;
|
|
9
|
-
a(t), r.setHeights((e) => [{
|
|
10
|
-
toastId: o.id,
|
|
11
|
-
height: t,
|
|
12
|
-
position: o.position
|
|
13
|
-
}, ...e]), n(() => r.setHeights((e) => e.filter((e) => e.toastId !== o.id)));
|
|
14
|
-
}), e(() => {
|
|
15
|
-
if (!r.mounted()) return;
|
|
16
|
-
let e = r.toastRef();
|
|
17
|
-
if (!e) return;
|
|
18
|
-
o.title, o.description, o.jsx, o.action, o.cancel;
|
|
19
|
-
let t = e.style.height;
|
|
20
|
-
e.style.height = "auto";
|
|
21
|
-
let n = e.getBoundingClientRect().height;
|
|
22
|
-
e.style.height = t, a(n), r.setHeights((e) => e.find((e) => e.toastId === o.id) ? e.map((e) => e.toastId === o.id ? {
|
|
23
|
-
...e,
|
|
24
|
-
height: n
|
|
25
|
-
} : e) : [{
|
|
26
|
-
toastId: o.id,
|
|
27
|
-
height: n,
|
|
28
|
-
position: o.position
|
|
29
|
-
}, ...e]);
|
|
30
|
-
}), { initialHeight: i };
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
export { r as useToastHeight };
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=useToastHeight.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useToastHeight.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastHeight.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { HeightT, Position, ToastT } from \"../types\";\n\ninterface UseToastHeightOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: () => ToastT;\n mounted: () => boolean;\n setHeights: (updater: (prev: HeightT[]) => HeightT[]) => void;\n}\n\nexport function useToastHeight(opts: UseToastHeightOptions) {\n const [initialHeight, setInitialHeight] = createSignal(0);\n\n const toast = opts.toast();\n\n // Register height on first mount\n createEffect(() => {\n const el = opts.toastRef();\n if (!el) return;\n const h = el.getBoundingClientRect().height;\n setInitialHeight(h);\n opts.setHeights((prev) => [\n {\n toastId: toast.id,\n height: h,\n position: toast.position as Position,\n },\n ...prev,\n ]);\n onCleanup(() =>\n opts.setHeights((prev) => prev.filter((x) => x.toastId !== toast.id)),\n );\n });\n\n // Keep height in sync when content changes\n createEffect(() => {\n if (!opts.mounted()) return;\n const el = opts.toastRef();\n if (!el) return;\n\n // Read deps so effect re-runs on content change\n void toast.title;\n void toast.description;\n void toast.jsx;\n void toast.action;\n void toast.cancel;\n\n const orig = el.style.height;\n el.style.height = \"auto\";\n const newH = el.getBoundingClientRect().height;\n el.style.height = orig;\n setInitialHeight(newH);\n\n opts.setHeights((prev) => {\n const exists = prev.find((x) => x.toastId === toast.id);\n if (!exists) {\n return [\n {\n toastId: toast.id,\n height: newH,\n position: toast.position as Position,\n },\n ...prev,\n ];\n }\n return prev.map((x) =>\n x.toastId === toast.id ? { ...x, height: newH } : x,\n );\n });\n });\n\n return { initialHeight };\n}\n"],"mappings":";;AAUA,SAAgB,EAAe,GAA6B;CAC1D,IAAM,CAAC,GAAe,KAAoB,EAAa,CAAC,GAElD,IAAQ,EAAK,MAAM;CA0DzB,OAvDA,QAAmB;EACjB,IAAM,IAAK,EAAK,SAAS;EACzB,IAAI,CAAC,GAAI;EACT,IAAM,IAAI,EAAG,sBAAsB,CAAC,CAAC;EAUrC,AATA,EAAiB,CAAC,GAClB,EAAK,YAAY,MAAS,CACxB;GACE,SAAS,EAAM;GACf,QAAQ;GACR,UAAU,EAAM;EAClB,GACA,GAAG,CACL,CAAC,GACD,QACE,EAAK,YAAY,MAAS,EAAK,QAAQ,MAAM,EAAE,YAAY,EAAM,EAAE,CAAC,CACtE;CACF,CAAC,GAGD,QAAmB;EACjB,IAAI,CAAC,EAAK,QAAQ,GAAG;EACrB,IAAM,IAAK,EAAK,SAAS;EACzB,IAAI,CAAC,GAAI;EAOT,AAJA,EAAW,OACX,EAAW,aACX,EAAW,KACX,EAAW,QACX,EAAW;EAEX,IAAM,IAAO,EAAG,MAAM;EACtB,EAAG,MAAM,SAAS;EAClB,IAAM,IAAO,EAAG,sBAAsB,CAAC,CAAC;EAIxC,AAHA,EAAG,MAAM,SAAS,GAClB,EAAiB,CAAI,GAErB,EAAK,YAAY,MACA,EAAK,MAAM,MAAM,EAAE,YAAY,EAAM,EAC/C,IAUE,EAAK,KAAK,MACf,EAAE,YAAY,EAAM,KAAK;GAAE,GAAG;GAAG,QAAQ;EAAK,IAAI,CACpD,IAXS,CACL;GACE,SAAS,EAAM;GACf,QAAQ;GACR,UAAU,EAAM;EAClB,GACA,GAAG,CACL,CAKH;CACH,CAAC,GAEM,EAAE,iBAAc;AACzB"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ToastState as e } from "../state.js";
|
|
2
|
-
import { createSignal as t, onCleanup as n, onMount as r } from "solid-js";
|
|
3
|
-
//#region src/components/toast/hooks/useToastSubscription.ts
|
|
4
|
-
function i() {
|
|
5
|
-
let [i, a] = t([]);
|
|
6
|
-
return r(() => {
|
|
7
|
-
let t = e.subscribe((e) => {
|
|
8
|
-
if (e.dismiss) {
|
|
9
|
-
a((t) => t.map((t) => t.id === e.id ? {
|
|
10
|
-
...t,
|
|
11
|
-
delete: !0
|
|
12
|
-
} : t));
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
a((t) => {
|
|
16
|
-
let n = t.findIndex((t) => t.id === e.id);
|
|
17
|
-
return n === -1 ? [e, ...t] : [
|
|
18
|
-
...t.slice(0, n),
|
|
19
|
-
{
|
|
20
|
-
...t[n],
|
|
21
|
-
...e
|
|
22
|
-
},
|
|
23
|
-
...t.slice(n + 1)
|
|
24
|
-
];
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
n(t);
|
|
28
|
-
}), {
|
|
29
|
-
toasts: i,
|
|
30
|
-
removeToast: (t) => {
|
|
31
|
-
t.delete || e.dismiss(t.id), a((e) => e.filter((e) => e.id !== t.id));
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
//#endregion
|
|
36
|
-
export { i as useToastSubscription };
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=useToastSubscription.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useToastSubscription.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastSubscription.ts"],"sourcesContent":["/**\n * hooks/useToastSubscription.ts\n * Subscribes to the global ToastState observable and maintains a local reactive\n * list of toasts for the Toaster component.\n * Single responsibility: state synchronization between the observer and Solid signals.\n */\nimport { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"../state\";\nimport type { ToastT, ToastToDismiss } from \"../types\";\n\nexport function useToastSubscription() {\n const [toasts, setToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((incoming) => {\n if ((incoming as ToastToDismiss).dismiss) {\n // Mark as deleted — the Toast component will animate out\n setToasts((prev) =>\n prev.map((t) => (t.id === incoming.id ? { ...t, delete: true } : t)),\n );\n return;\n }\n\n setToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === incoming.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(incoming as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [incoming as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n const removeToast = (toast: ToastT) => {\n if (!toast.delete) ToastState.dismiss(toast.id);\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\n };\n\n return { toasts, removeToast };\n}\n"],"mappings":";;;AAUA,SAAgB,IAAuB;CACrC,IAAM,CAAC,GAAQ,KAAa,EAAuB,CAAC,CAAC;CAiCrD,OA/BA,QAAc;EACZ,IAAM,IAAc,EAAW,WAAW,MAAa;GACrD,IAAK,EAA4B,SAAS;IAExC,GAAW,MACT,EAAK,KAAK,MAAO,EAAE,OAAO,EAAS,KAAK;KAAE,GAAG;KAAG,QAAQ;IAAK,IAAI,CAAE,CACrE;IACA;GACF;GAEA,GAAW,MAAS;IAClB,IAAM,IAAM,EAAK,WAAW,MAAM,EAAE,OAAO,EAAS,EAAE;IAQtD,OAPI,MAAQ,KAOL,CAAC,GAAoB,GAAG,CAAI,IAN1B;KACL,GAAG,EAAK,MAAM,GAAG,CAAG;KACpB;MAAE,GAAG,EAAK;MAAM,GAAI;KAAoB;KACxC,GAAG,EAAK,MAAM,IAAM,CAAC;IACvB;GAGJ,CAAC;EACH,CAAC;EAED,EAAU,CAAW;CACvB,CAAC,GAOM;EAAE;EAAQ,cALI,MAAkB;GAErC,AADK,EAAM,UAAQ,EAAW,QAAQ,EAAM,EAAE,GAC9C,GAAW,MAAS,EAAK,QAAQ,MAAM,EAAE,OAAO,EAAM,EAAE,CAAC;EAC3D;CAE6B;AAC/B"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ToastT } from '../types';
|
|
2
|
-
interface UseToastTimerOptions {
|
|
3
|
-
toast: ToastT;
|
|
4
|
-
duration: number;
|
|
5
|
-
expanded: () => boolean;
|
|
6
|
-
interacting: () => boolean;
|
|
7
|
-
isDocumentHidden: () => boolean;
|
|
8
|
-
deleteToast: () => void;
|
|
9
|
-
}
|
|
10
|
-
export declare function useToastTimer(opts: UseToastTimerOptions): void;
|
|
11
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { createEffect as e, onCleanup as t } from "solid-js";
|
|
2
|
-
//#region src/components/toast/hooks/useToastTimer.ts
|
|
3
|
-
function n(n) {
|
|
4
|
-
let r = n.toast.duration ?? n.duration, i = 0, a = 0, o, s = () => n.toast.promise && n.toast.type === "loading" || n.toast.duration === Infinity || n.toast.type === "loading", c = () => {
|
|
5
|
-
if (a < i) {
|
|
6
|
-
let e = Date.now() - i;
|
|
7
|
-
r = Math.max(0, r - e);
|
|
8
|
-
}
|
|
9
|
-
a = Date.now();
|
|
10
|
-
}, l = () => {
|
|
11
|
-
r !== Infinity && (clearTimeout(o), i = Date.now(), o = setTimeout(() => {
|
|
12
|
-
n.toast.onAutoClose?.(n.toast), n.deleteToast();
|
|
13
|
-
}, r));
|
|
14
|
-
};
|
|
15
|
-
e(() => {
|
|
16
|
-
s() || (n.expanded() || n.interacting() || n.isDocumentHidden() ? c() : l(), t(() => clearTimeout(o)));
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { n as useToastTimer };
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=useToastTimer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useToastTimer.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastTimer.ts"],"sourcesContent":["/**\n * hooks/useToastTimer.ts\n * Manages the auto-dismiss countdown for a single toast.\n * Single responsibility: start, pause, and resume a timer; call deleteToast when done.\n */\nimport { createEffect, onCleanup } from \"solid-js\";\nimport type { ToastT } from \"../types\";\n\ninterface UseToastTimerOptions {\n toast: ToastT;\n duration: number;\n expanded: () => boolean;\n interacting: () => boolean;\n isDocumentHidden: () => boolean;\n deleteToast: () => void;\n}\n\nexport function useToastTimer(opts: UseToastTimerOptions) {\n let remainingTime = opts.toast.duration ?? opts.duration;\n let closeTimerStart = 0;\n let lastPauseTime = 0;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n const shouldSkip = () =>\n (opts.toast.promise && opts.toast.type === \"loading\") ||\n opts.toast.duration === Infinity ||\n opts.toast.type === \"loading\";\n\n const pauseTimer = () => {\n if (lastPauseTime < closeTimerStart) {\n const elapsed = Date.now() - closeTimerStart;\n remainingTime = Math.max(0, remainingTime - elapsed);\n }\n lastPauseTime = Date.now();\n };\n\n const startTimer = () => {\n if (remainingTime === Infinity) return;\n clearTimeout(timeoutId);\n closeTimerStart = Date.now();\n timeoutId = setTimeout(() => {\n opts.toast.onAutoClose?.(opts.toast);\n opts.deleteToast();\n }, remainingTime);\n };\n\n createEffect(() => {\n if (shouldSkip()) return;\n if (opts.expanded() || opts.interacting() || opts.isDocumentHidden()) {\n pauseTimer();\n } else {\n startTimer();\n }\n onCleanup(() => clearTimeout(timeoutId));\n });\n}\n"],"mappings":";;AAiBA,SAAgB,EAAc,GAA4B;CACxD,IAAI,IAAgB,EAAK,MAAM,YAAY,EAAK,UAC5C,IAAkB,GAClB,IAAgB,GAChB,GAEE,UACH,EAAK,MAAM,WAAW,EAAK,MAAM,SAAS,aAC3C,EAAK,MAAM,aAAa,YACxB,EAAK,MAAM,SAAS,WAEhB,UAAmB;EACvB,IAAI,IAAgB,GAAiB;GACnC,IAAM,IAAU,KAAK,IAAI,IAAI;GAC7B,IAAgB,KAAK,IAAI,GAAG,IAAgB,CAAO;EACrD;EACA,IAAgB,KAAK,IAAI;CAC3B,GAEM,UAAmB;EACnB,MAAkB,aACtB,aAAa,CAAS,GACtB,IAAkB,KAAK,IAAI,GAC3B,IAAY,iBAAiB;GAE3B,AADA,EAAK,MAAM,cAAc,EAAK,KAAK,GACnC,EAAK,YAAY;EACnB,GAAG,CAAa;CAClB;CAEA,QAAmB;EACb,EAAW,MACX,EAAK,SAAS,KAAK,EAAK,YAAY,KAAK,EAAK,iBAAiB,IACjE,EAAW,IAEX,EAAW,GAEb,QAAgB,aAAa,CAAS,CAAC;CACzC,CAAC;AACH"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { onCleanup as e, onMount as t } from "solid-js";
|
|
2
|
-
//#region src/components/toast/hooks/useToasterKeyboard.ts
|
|
3
|
-
function n(n) {
|
|
4
|
-
t(() => {
|
|
5
|
-
let t = (e) => {
|
|
6
|
-
n.hotkey.length > 0 && n.hotkey.every((t) => e[t] || e.code === t) && (n.setExpanded(!0), n.listRef()?.focus()), e.code === "Escape" && (document.activeElement === n.listRef() || n.listRef()?.contains(document.activeElement)) && n.setExpanded(!1);
|
|
7
|
-
};
|
|
8
|
-
document.addEventListener("keydown", t), e(() => document.removeEventListener("keydown", t));
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { n as useToasterKeyboard };
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=useToasterKeyboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useToasterKeyboard.js","names":[],"sources":["../../../../src/components/toast/hooks/useToasterKeyboard.ts"],"sourcesContent":["/**\n * hooks/useToasterKeyboard.ts\n * Handles keyboard interactions for the Toaster:\n * - Custom hotkey → expand the toast list and focus it\n * - Escape → collapse the toast list\n * Single responsibility: keyboard event binding only.\n */\nimport { onCleanup, onMount } from \"solid-js\";\n\ninterface UseToasterKeyboardOptions {\n hotkey: string[];\n listRef: () => HTMLOListElement | undefined;\n setExpanded: (v: boolean) => void;\n}\n\nexport function useToasterKeyboard(opts: UseToasterKeyboardOptions) {\n onMount(() => {\n const handler = (e: KeyboardEvent) => {\n const hotkeyPressed =\n opts.hotkey.length > 0 &&\n opts.hotkey.every((k) => (e as any)[k] || e.code === k);\n\n if (hotkeyPressed) {\n opts.setExpanded(true);\n opts.listRef()?.focus();\n }\n\n if (\n e.code === \"Escape\" &&\n (document.activeElement === opts.listRef() ||\n opts.listRef()?.contains(document.activeElement))\n ) {\n opts.setExpanded(false);\n }\n };\n\n document.addEventListener(\"keydown\", handler);\n onCleanup(() => document.removeEventListener(\"keydown\", handler));\n });\n}\n"],"mappings":";;AAeA,SAAgB,EAAmB,GAAiC;CAClE,QAAc;EACZ,IAAM,KAAW,MAAqB;GAUpC,AARE,EAAK,OAAO,SAAS,KACrB,EAAK,OAAO,OAAO,MAAO,EAAU,MAAM,EAAE,SAAS,CAAC,MAGtD,EAAK,YAAY,EAAI,GACrB,EAAK,QAAQ,CAAC,EAAE,MAAM,IAItB,EAAE,SAAS,aACV,SAAS,kBAAkB,EAAK,QAAQ,KACvC,EAAK,QAAQ,CAAC,EAAE,SAAS,SAAS,aAAa,MAEjD,EAAK,YAAY,EAAK;EAE1B;EAGA,AADA,SAAS,iBAAiB,WAAW,CAAO,GAC5C,QAAgB,SAAS,oBAAoB,WAAW,CAAO,CAAC;CAClE,CAAC;AACH"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ToastT } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Returns a reactive boolean that tracks whether the browser tab is hidden.
|
|
4
|
-
* Used to pause auto-dismiss timers while the user has switched tabs.
|
|
5
|
-
*/
|
|
6
|
-
export declare function useIsDocumentHidden(): import('solid-js').Accessor<boolean>;
|
|
7
|
-
/**
|
|
8
|
-
* Subscribes to the global ToastState and returns the list of currently visible
|
|
9
|
-
* toasts as a SolidJS signal. Useful for building custom toast UIs.
|
|
10
|
-
*/
|
|
11
|
-
export declare function useSonner(): {
|
|
12
|
-
toasts: import('solid-js').Accessor<ToastT[]>;
|
|
13
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ToastState as e } from "./state.js";
|
|
2
|
-
import { createSignal as t, onCleanup as n, onMount as r } from "solid-js";
|
|
3
|
-
//#region src/components/toast/hooks.ts
|
|
4
|
-
function i() {
|
|
5
|
-
let [e, i] = t(document.hidden);
|
|
6
|
-
return r(() => {
|
|
7
|
-
let e = () => i(document.hidden);
|
|
8
|
-
document.addEventListener("visibilitychange", e), n(() => document.removeEventListener("visibilitychange", e));
|
|
9
|
-
}), e;
|
|
10
|
-
}
|
|
11
|
-
function a() {
|
|
12
|
-
let [i, a] = t([]);
|
|
13
|
-
return r(() => {
|
|
14
|
-
let t = e.subscribe((e) => {
|
|
15
|
-
if (e.dismiss) {
|
|
16
|
-
a((t) => t.filter((t) => t.id !== e.id));
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
a((t) => {
|
|
20
|
-
let n = t.findIndex((t) => t.id === e.id);
|
|
21
|
-
return n === -1 ? [e, ...t] : [
|
|
22
|
-
...t.slice(0, n),
|
|
23
|
-
{
|
|
24
|
-
...t[n],
|
|
25
|
-
...e
|
|
26
|
-
},
|
|
27
|
-
...t.slice(n + 1)
|
|
28
|
-
];
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
n(t);
|
|
32
|
-
}), { toasts: i };
|
|
33
|
-
}
|
|
34
|
-
//#endregion
|
|
35
|
-
export { i as useIsDocumentHidden, a as useSonner };
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","names":[],"sources":["../../../src/components/toast/hooks.ts"],"sourcesContent":["import { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"./state\";\nimport type { ToastT, ToastToDismiss } from \"./types\";\n\n// ─── Document visibility ───────────────────────────────────────────────────────\n/**\n * Returns a reactive boolean that tracks whether the browser tab is hidden.\n * Used to pause auto-dismiss timers while the user has switched tabs.\n */\nexport function useIsDocumentHidden() {\n const [isHidden, setIsHidden] = createSignal(document.hidden);\n\n onMount(() => {\n const handler = () => setIsHidden(document.hidden);\n document.addEventListener(\"visibilitychange\", handler);\n onCleanup(() => document.removeEventListener(\"visibilitychange\", handler));\n });\n\n return isHidden;\n}\n\n// ─── Active toasts (for external consumers) ────────────────────────────────────\n/**\n * Subscribes to the global ToastState and returns the list of currently visible\n * toasts as a SolidJS signal. Useful for building custom toast UIs.\n */\nexport function useSonner() {\n const [activeToasts, setActiveToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((toast) => {\n if ((toast as ToastToDismiss).dismiss) {\n setActiveToasts((prev) => prev.filter((t) => t.id !== toast.id));\n return;\n }\n\n setActiveToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === toast.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(toast as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [toast as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n return { toasts: activeToasts };\n}\n"],"mappings":";;;AASA,SAAgB,IAAsB;CACpC,IAAM,CAAC,GAAU,KAAe,EAAa,SAAS,MAAM;CAQ5D,OANA,QAAc;EACZ,IAAM,UAAgB,EAAY,SAAS,MAAM;EAEjD,AADA,SAAS,iBAAiB,oBAAoB,CAAO,GACrD,QAAgB,SAAS,oBAAoB,oBAAoB,CAAO,CAAC;CAC3E,CAAC,GAEM;AACT;AAOA,SAAgB,IAAY;CAC1B,IAAM,CAAC,GAAc,KAAmB,EAAuB,CAAC,CAAC;CAyBjE,OAvBA,QAAc;EACZ,IAAM,IAAc,EAAW,WAAW,MAAU;GAClD,IAAK,EAAyB,SAAS;IACrC,GAAiB,MAAS,EAAK,QAAQ,MAAM,EAAE,OAAO,EAAM,EAAE,CAAC;IAC/D;GACF;GAEA,GAAiB,MAAS;IACxB,IAAM,IAAM,EAAK,WAAW,MAAM,EAAE,OAAO,EAAM,EAAE;IAQnD,OAPI,MAAQ,KAOL,CAAC,GAAiB,GAAG,CAAI,IANvB;KACL,GAAG,EAAK,MAAM,GAAG,CAAG;KACpB;MAAE,GAAG,EAAK;MAAM,GAAI;KAAiB;KACrC,GAAG,EAAK,MAAM,IAAM,CAAC;IACvB;GAGJ,CAAC;EACH,CAAC;EAED,EAAU,CAAW;CACvB,CAAC,GAEM,EAAE,QAAQ,EAAa;AAChC"}
|