@neut/ui 0.0.11 → 0.0.13
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/label/index.d.ts +1 -0
- 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 -0
- package/dist/components/select/Select/Select.context.js +12 -0
- package/dist/components/select/Select/Select.context.js.map +1 -0
- package/dist/components/select/Select/Select.d.ts +22 -0
- package/dist/components/select/Select/Select.js +48 -0
- package/dist/components/select/Select/Select.js.map +1 -0
- package/dist/components/select/Select/Select.types.d.ts +45 -0
- package/dist/components/select/Select/index.d.ts +3 -0
- package/dist/components/select/SelectContent/SelectContent.d.ts +2 -0
- package/dist/components/select/SelectContent/SelectContent.js +80 -0
- package/dist/components/select/SelectContent/SelectContent.js.map +1 -0
- package/dist/components/select/SelectContent/SelectContent.types.d.ts +22 -0
- package/dist/components/select/SelectContent/SelectContent.utils.d.ts +36 -0
- package/dist/components/select/SelectContent/SelectContent.utils.js +66 -0
- package/dist/components/select/SelectContent/SelectContent.utils.js.map +1 -0
- package/dist/components/select/SelectContent/index.d.ts +6 -0
- package/dist/components/select/SelectContent/useSelectContent.d.ts +28 -0
- package/dist/components/select/SelectContent/useSelectContent.js +50 -0
- package/dist/components/select/SelectContent/useSelectContent.js.map +1 -0
- package/dist/components/select/SelectGroup/SelectGroup.d.ts +2 -0
- package/dist/components/select/SelectGroup/SelectGroup.js +13 -0
- package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -0
- package/dist/components/select/SelectGroup/index.d.ts +1 -0
- package/dist/components/select/SelectItem/SelectItem.d.ts +2 -0
- package/dist/components/select/SelectItem/SelectItem.js +52 -0
- package/dist/components/select/SelectItem/SelectItem.js.map +1 -0
- package/dist/components/select/SelectItem/SelectItem.types.d.ts +10 -0
- package/dist/components/select/SelectItem/index.d.ts +4 -0
- package/dist/components/select/SelectItem/useSelectItem.d.ts +12 -0
- package/dist/components/select/SelectItem/useSelectItem.js +32 -0
- package/dist/components/select/SelectItem/useSelectItem.js.map +1 -0
- package/dist/components/select/SelectLabel/SelectLabel.d.ts +2 -0
- package/dist/components/select/SelectLabel/SelectLabel.js +13 -0
- package/dist/components/select/SelectLabel/SelectLabel.js.map +1 -0
- package/dist/components/select/SelectLabel/index.d.ts +1 -0
- package/dist/components/select/SelectSeparator/SelectSeparator.d.ts +2 -0
- package/dist/components/select/SelectSeparator/SelectSeparator.js +13 -0
- package/dist/components/select/SelectSeparator/SelectSeparator.js.map +1 -0
- package/dist/components/select/SelectSeparator/index.d.ts +1 -0
- package/dist/components/select/SelectTrigger/SelectTrigger.d.ts +4 -0
- package/dist/components/select/SelectTrigger/SelectTrigger.js +50 -0
- package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -0
- package/dist/components/select/SelectTrigger/SelectTrigger.types.d.ts +3 -0
- package/dist/components/select/SelectTrigger/index.d.ts +4 -0
- package/dist/components/select/SelectTrigger/useSelectTrigger.d.ts +15 -0
- package/dist/components/select/SelectTrigger/useSelectTrigger.js +37 -0
- package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -0
- package/dist/components/select/SelectValue/SelectValue.d.ts +2 -0
- package/dist/components/select/SelectValue/SelectValue.js +20 -0
- package/dist/components/select/SelectValue/SelectValue.js.map +1 -0
- package/dist/components/select/SelectValue/SelectValue.types.d.ts +4 -0
- package/dist/components/select/SelectValue/index.d.ts +2 -0
- package/dist/components/select/index.d.ts +13 -0
- package/dist/components/select/index.js +9 -0
- 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 +3 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js +12 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.d.ts +3 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +68 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.types.d.ts +28 -0
- package/dist/components/toggle-group/ToggleGroup/index.d.ts +3 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.d.ts +3 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +72 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -0
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.types.d.ts +10 -0
- package/dist/components/toggle-group/ToggleGroupItem/index.d.ts +2 -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 +26 -27
- 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 +23 -22
- 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/TooltipTrigger/TooltipTrigger.js +11 -15
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +7 -6
- package/dist/index.d.ts +9 -0
- package/dist/index.js +205 -158
- package/dist/lib/positioner/middleware/size.js +21 -0
- package/dist/lib/positioner/middleware/size.js.map +1 -0
- package/dist/ui.css +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +3 -2
- package/dist/utils/ref.d.ts +11 -0
- package/dist/utils/ref.js +10 -0
- package/dist/utils/ref.js.map +1 -0
- package/package.json +8 -7
- 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
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
+
import { ToggleGroupContext as t } from "./ToggleGroup.context.js";
|
|
3
|
+
import { createComponent as n, insert as r, mergeProps as i, spread as a, template as o } from "solid-js/web";
|
|
4
|
+
import { createMemo as s, createSignal as c, splitProps as l } from "solid-js";
|
|
5
|
+
//#region src/components/toggle-group/ToggleGroup/ToggleGroup.tsx
|
|
6
|
+
var u = /*#__PURE__*/ o("<div role=group data-slot=toggle-group>");
|
|
7
|
+
function d(o) {
|
|
8
|
+
let [d, f] = l(o, [
|
|
9
|
+
"value",
|
|
10
|
+
"defaultValue",
|
|
11
|
+
"onValueChange",
|
|
12
|
+
"multiple",
|
|
13
|
+
"disabled",
|
|
14
|
+
"orientation",
|
|
15
|
+
"spacing",
|
|
16
|
+
"variant",
|
|
17
|
+
"size",
|
|
18
|
+
"class",
|
|
19
|
+
"children",
|
|
20
|
+
"dir"
|
|
21
|
+
]), [p, m] = c(d.defaultValue ?? []), h = s(() => d.value === void 0 ? p() : d.value), g = s(() => !!d.multiple), _ = s(() => !!d.disabled), v = s(() => d.orientation ?? "horizontal"), y = s(() => d.spacing ?? 2), b = s(() => d.variant ?? "default"), x = s(() => d.size ?? "default"), S = {
|
|
22
|
+
value: h,
|
|
23
|
+
setValue: (e) => {
|
|
24
|
+
d.value === void 0 && m(e), d.onValueChange?.(e);
|
|
25
|
+
},
|
|
26
|
+
multiple: g,
|
|
27
|
+
disabled: _,
|
|
28
|
+
orientation: v,
|
|
29
|
+
spacing: y,
|
|
30
|
+
variant: b,
|
|
31
|
+
size: x
|
|
32
|
+
};
|
|
33
|
+
return (() => {
|
|
34
|
+
var o = u();
|
|
35
|
+
return a(o, i({
|
|
36
|
+
get "data-variant"() {
|
|
37
|
+
return b();
|
|
38
|
+
},
|
|
39
|
+
get "data-size"() {
|
|
40
|
+
return x();
|
|
41
|
+
},
|
|
42
|
+
get "data-spacing"() {
|
|
43
|
+
return y();
|
|
44
|
+
},
|
|
45
|
+
get "data-orientation"() {
|
|
46
|
+
return v();
|
|
47
|
+
},
|
|
48
|
+
get style() {
|
|
49
|
+
return { "--gap": y() };
|
|
50
|
+
},
|
|
51
|
+
get dir() {
|
|
52
|
+
return d.dir;
|
|
53
|
+
},
|
|
54
|
+
get class() {
|
|
55
|
+
return e("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch", d.class);
|
|
56
|
+
}
|
|
57
|
+
}, f), !1, !0), r(o, n(t.Provider, {
|
|
58
|
+
value: S,
|
|
59
|
+
get children() {
|
|
60
|
+
return d.children;
|
|
61
|
+
}
|
|
62
|
+
})), o;
|
|
63
|
+
})();
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { d as ToggleGroup };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=ToggleGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleGroup.js","names":["createMemo","createSignal","splitProps","JSX","clsx","ToggleGroupContext","ToggleGroupContextValue","ToggleGroupProps","ToggleGroup","props","Element","local","rest","internalValue","setInternalValue","defaultValue","value","undefined","multiple","disabled","orientation","spacing","variant","size","setValue","next","onValueChange","ctx","_el$","_tmpl$","_$spread","_$mergeProps","data-variant","data-size","data-spacing","data-orientation","style","CSSProperties","dir","class","_$insert","_$createComponent","Provider","children"],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import { createMemo, createSignal, splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ToggleGroupContext } from \"./ToggleGroup.context\";\nimport type {\n ToggleGroupContextValue,\n ToggleGroupProps,\n} from \"./ToggleGroup.types\";\n\nexport function ToggleGroup(props: ToggleGroupProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"defaultValue\",\n \"onValueChange\",\n \"multiple\",\n \"disabled\",\n \"orientation\",\n \"spacing\",\n \"variant\",\n \"size\",\n \"class\",\n \"children\",\n \"dir\",\n ]);\n\n const [internalValue, setInternalValue] = createSignal<string[]>(\n local.defaultValue ?? [],\n );\n const value = createMemo(() =>\n local.value !== undefined ? local.value : internalValue(),\n );\n const multiple = createMemo(() => !!local.multiple);\n const disabled = createMemo(() => !!local.disabled);\n const orientation = createMemo(() => local.orientation ?? \"horizontal\");\n const spacing = createMemo(() => local.spacing ?? 2);\n const variant = createMemo(() => local.variant ?? \"default\");\n const size = createMemo(() => local.size ?? \"default\");\n\n const setValue = (next: string[]) => {\n if (local.value === undefined) setInternalValue(next);\n local.onValueChange?.(next);\n };\n\n const ctx: ToggleGroupContextValue = {\n value,\n setValue,\n multiple,\n disabled,\n orientation,\n spacing,\n variant,\n size,\n };\n\n return (\n <div\n role=\"group\"\n data-slot=\"toggle-group\"\n data-variant={variant()}\n data-size={size()}\n data-spacing={spacing()}\n data-orientation={orientation()}\n style={{ \"--gap\": spacing() } as JSX.CSSProperties}\n dir={local.dir}\n class={clsx(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch\",\n local.class,\n )}\n {...rest}\n >\n <ToggleGroupContext.Provider value={ctx}>\n {local.children}\n </ToggleGroupContext.Provider>\n </div>\n );\n}\n"],"mappings":";;;;;;AAQA,SAAgBQ,EAAYC,GAAsC;CAChE,IAAM,CAACE,GAAOC,KAAQV,EAAWO,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAK,CACN,GAEK,CAACI,GAAeC,KAAoBb,EACxCU,EAAMI,gBAAgB,CAAA,CACxB,GACMC,IAAQhB,QACZW,EAAMK,UAAUC,KAAAA,IAA0BJ,EAAc,IAA5BF,EAAMK,KACpC,GACME,IAAWlB,QAAiB,CAAC,CAACW,EAAMO,QAAQ,GAC5CC,IAAWnB,QAAiB,CAAC,CAACW,EAAMQ,QAAQ,GAC5CC,IAAcpB,QAAiBW,EAAMS,eAAe,YAAY,GAChEC,IAAUrB,QAAiBW,EAAMU,WAAW,CAAC,GAC7CC,IAAUtB,QAAiBW,EAAMW,WAAW,SAAS,GACrDC,IAAOvB,QAAiBW,EAAMY,QAAQ,SAAS,GAO/CI,IAA+B;EACnCX;EACAQ,WAPgBC,MAAmB;GAEnCd,AADIA,EAAMK,UAAUC,KAAAA,KAAWH,EAAiBW,CAAI,GACpDd,EAAMe,gBAAgBD,CAAI;EAC5B;EAKEP;EACAC;EACAC;EACAC;EACAC;EACAC;CACF;CAEA,cAAA;EAAA,IAAAK,IAAAC,EAAA;EAiBqB,OAjBrBC,EAAAF,GAAAG,EAAA;GAAA,IAAA,iBAAA;IAAA,OAIkBT,EAAQ;GAAC;GAAA,IAAA,cAAA;IAAA,OACZC,EAAK;GAAC;GAAA,IAAA,iBAAA;IAAA,OACHF,EAAQ;GAAC;GAAA,IAAA,qBAAA;IAAA,OACLD,EAAY;GAAC;GAAA,IAC/BgB,QAAK;IAAA,OAAE,EAAE,SAASf,EAAQ,EAAE;GAAsB;GAAA,IAClDiB,MAAG;IAAA,OAAE3B,EAAM2B;GAAG;GAAA,IAAA,QAAA;IAAA,OACPlC,EACL,iOACAO,EAAM4B,KACR;GAAC;EAAA,GACG3B,CAAI,GAAA,IAAA,EAAA,GAAA4B,EAAAZ,GAAAa,EAEPpC,EAAmBqC,UAAQ;GAAC1B,OAAOW;GAAG,IAAAgB,WAAA;IAAA,OACpChC,EAAMgC;GAAQ;EAAA,CAAA,CAAA,GAAAf;CAAA,EAAA,CAAA;AAIvB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Accessor, ParentProps } from 'solid-js';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
import { toggleVariants } from '../../toggle/Toggle/Toggle.styles';
|
|
4
|
+
export interface ToggleGroupProps extends ParentProps, VariantProps<typeof toggleVariants> {
|
|
5
|
+
/** 受控选中值(数组);不传则内部自管理 */
|
|
6
|
+
value?: string[];
|
|
7
|
+
/** 非受控模式下的初始选中值 */
|
|
8
|
+
defaultValue?: string[];
|
|
9
|
+
onValueChange?: (value: string[]) => void;
|
|
10
|
+
/** 是否允许同时选中多个,默认 false */
|
|
11
|
+
multiple?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
orientation?: "horizontal" | "vertical";
|
|
14
|
+
/** 项目之间的间距,通过 --gap 变量实现,默认 2 */
|
|
15
|
+
spacing?: number;
|
|
16
|
+
class?: string;
|
|
17
|
+
dir?: "ltr" | "rtl" | "auto";
|
|
18
|
+
}
|
|
19
|
+
export interface ToggleGroupContextValue {
|
|
20
|
+
value: Accessor<string[]>;
|
|
21
|
+
setValue: (value: string[]) => void;
|
|
22
|
+
multiple: Accessor<boolean>;
|
|
23
|
+
disabled: Accessor<boolean>;
|
|
24
|
+
orientation: Accessor<"horizontal" | "vertical">;
|
|
25
|
+
spacing: Accessor<number>;
|
|
26
|
+
variant: Accessor<"default" | "outline">;
|
|
27
|
+
size: Accessor<"default" | "sm" | "lg">;
|
|
28
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
+
import { toggleVariants as t } from "../../toggle/Toggle/Toggle.styles.js";
|
|
3
|
+
import { useToggleGroupContext as n } from "../ToggleGroup/ToggleGroup.context.js";
|
|
4
|
+
import { delegateEvents as r, insert as i, mergeProps as a, spread as o, template as s } from "solid-js/web";
|
|
5
|
+
import { createMemo as c, splitProps as l } from "solid-js";
|
|
6
|
+
//#region src/components/toggle-group/ToggleGroupItem/ToggleGroupItem.tsx
|
|
7
|
+
var u = /*#__PURE__*/ s("<button data-slot=toggle-group-item>");
|
|
8
|
+
function d(r) {
|
|
9
|
+
let s = n("ToggleGroupItem"), [d, f] = l(r, [
|
|
10
|
+
"value",
|
|
11
|
+
"variant",
|
|
12
|
+
"size",
|
|
13
|
+
"class",
|
|
14
|
+
"disabled",
|
|
15
|
+
"onClick",
|
|
16
|
+
"onKeyDown",
|
|
17
|
+
"type"
|
|
18
|
+
]), p = c(() => s.variant() || d.variant || "default"), m = c(() => s.size() || d.size || "default"), h = c(() => s.value().includes(d.value)), g = () => s.disabled() || !!d.disabled, _ = () => {
|
|
19
|
+
if (g()) return;
|
|
20
|
+
let e = s.value();
|
|
21
|
+
s.multiple() ? s.setValue(h() ? e.filter((e) => e !== d.value) : [...e, d.value]) : s.setValue([d.value]);
|
|
22
|
+
}, v = (e) => {
|
|
23
|
+
if (d.onKeyDown?.(e), e.defaultPrevented || g() || ![
|
|
24
|
+
"ArrowDown",
|
|
25
|
+
"ArrowRight",
|
|
26
|
+
"ArrowUp",
|
|
27
|
+
"ArrowLeft"
|
|
28
|
+
].includes(e.key)) return;
|
|
29
|
+
e.preventDefault();
|
|
30
|
+
let t = e.currentTarget.closest("[data-slot=\"toggle-group\"]"), n = Array.from(t?.querySelectorAll("[data-slot=\"toggle-group-item\"]") ?? []);
|
|
31
|
+
n.length !== 0 && n[(n.indexOf(e.currentTarget) + (e.key === "ArrowDown" || e.key === "ArrowRight" ? 1 : -1) + n.length) % n.length].focus();
|
|
32
|
+
};
|
|
33
|
+
return (() => {
|
|
34
|
+
var n = u();
|
|
35
|
+
return n.$$keydown = v, n.$$click = (e) => {
|
|
36
|
+
d.onClick?.(e), e.defaultPrevented || _();
|
|
37
|
+
}, o(n, a({
|
|
38
|
+
get type() {
|
|
39
|
+
return d.type ?? "button";
|
|
40
|
+
},
|
|
41
|
+
get disabled() {
|
|
42
|
+
return g();
|
|
43
|
+
},
|
|
44
|
+
get "data-variant"() {
|
|
45
|
+
return p();
|
|
46
|
+
},
|
|
47
|
+
get "data-size"() {
|
|
48
|
+
return m();
|
|
49
|
+
},
|
|
50
|
+
get "data-spacing"() {
|
|
51
|
+
return s.spacing();
|
|
52
|
+
},
|
|
53
|
+
get "aria-pressed"() {
|
|
54
|
+
return h();
|
|
55
|
+
},
|
|
56
|
+
get "data-state"() {
|
|
57
|
+
return h() ? "on" : "off";
|
|
58
|
+
},
|
|
59
|
+
get class() {
|
|
60
|
+
return e("shrink-0 focus:z-10 focus-visible:z-10", t({
|
|
61
|
+
variant: p(),
|
|
62
|
+
size: m()
|
|
63
|
+
}), d.class);
|
|
64
|
+
}
|
|
65
|
+
}, f), !1, !0), i(n, () => r.children), n;
|
|
66
|
+
})();
|
|
67
|
+
}
|
|
68
|
+
r(["click", "keydown"]);
|
|
69
|
+
//#endregion
|
|
70
|
+
export { d as ToggleGroupItem };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=ToggleGroupItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleGroupItem.js","names":["createMemo","splitProps","JSX","clsx","toggleVariants","useToggleGroupContext","ToggleGroupItemProps","ToggleGroupItem","props","Element","ctx","local","rest","variant","size","pressed","value","includes","disabled","select","current","multiple","setValue","filter","onKeyDown","e","KeyboardEvent","defaultPrevented","directions","key","preventDefault","group","currentTarget","HTMLElement","closest","items","Array","from","querySelectorAll","length","currentIndex","indexOf","forward","delta","nextIndex","focus","_el$","_tmpl$","$$keydown","$$click","onClick","_$spread","_$mergeProps","type","data-variant","data-size","data-spacing","spacing","aria-pressed","data-state","class","_$insert","children","_$delegateEvents"],"sources":["../../../../src/components/toggle-group/ToggleGroupItem/ToggleGroupItem.tsx"],"sourcesContent":["import { createMemo, splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { toggleVariants } from \"~/components/toggle/Toggle/Toggle.styles\";\nimport { useToggleGroupContext } from \"../ToggleGroup/ToggleGroup.context\";\nimport type { ToggleGroupItemProps } from \"./ToggleGroupItem.types\";\n\nexport function ToggleGroupItem(props: ToggleGroupItemProps): JSX.Element {\n const ctx = useToggleGroupContext(\"ToggleGroupItem\");\n\n const [local, rest] = splitProps(props, [\n \"value\",\n \"variant\",\n \"size\",\n \"class\",\n \"disabled\",\n \"onClick\",\n \"onKeyDown\",\n \"type\",\n ]);\n\n const variant = createMemo(() => ctx.variant() || local.variant || \"default\");\n const size = createMemo(() => ctx.size() || local.size || \"default\");\n const pressed = createMemo(() => ctx.value().includes(local.value));\n const disabled = () => ctx.disabled() || !!local.disabled;\n\n const select = () => {\n if (disabled()) return;\n const current = ctx.value();\n if (ctx.multiple()) {\n ctx.setValue(\n pressed()\n ? current.filter((value) => value !== local.value)\n : [...current, local.value],\n );\n } else {\n ctx.setValue([local.value]);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n (local.onKeyDown as any)?.(e);\n if (e.defaultPrevented || disabled()) return;\n\n const directions = [\"ArrowDown\", \"ArrowRight\", \"ArrowUp\", \"ArrowLeft\"];\n if (!directions.includes(e.key)) return;\n e.preventDefault();\n\n const group = (e.currentTarget as HTMLElement).closest(\n '[data-slot=\"toggle-group\"]',\n );\n const items = Array.from(\n group?.querySelectorAll<HTMLElement>('[data-slot=\"toggle-group-item\"]') ??\n [],\n );\n if (items.length === 0) return;\n\n const currentIndex = items.indexOf(e.currentTarget as HTMLElement);\n const forward = e.key === \"ArrowDown\" || e.key === \"ArrowRight\";\n const delta = forward ? 1 : -1;\n const nextIndex = (currentIndex + delta + items.length) % items.length;\n items[nextIndex].focus();\n };\n\n return (\n <button\n type={(local.type as \"button\") ?? \"button\"}\n disabled={disabled()}\n data-slot=\"toggle-group-item\"\n data-variant={variant()}\n data-size={size()}\n data-spacing={ctx.spacing()}\n aria-pressed={pressed()}\n data-state={pressed() ? \"on\" : \"off\"}\n class={clsx(\n \"shrink-0 focus:z-10 focus-visible:z-10\",\n toggleVariants({ variant: variant(), size: size() }),\n local.class,\n )}\n onClick={(e) => {\n (local.onClick as any)?.(e);\n if (!e.defaultPrevented) select();\n }}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {props.children}\n </button>\n );\n}\n"],"mappings":";;;;;;;AAMA,SAAgBO,EAAgBC,GAA0C;CACxE,IAAME,IAAML,EAAsB,iBAAiB,GAE7C,CAACM,GAAOC,KAAQX,EAAWO,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAM,CACP,GAEKK,IAAUb,QAAiBU,EAAIG,QAAQ,KAAKF,EAAME,WAAW,SAAS,GACtEC,IAAOd,QAAiBU,EAAII,KAAK,KAAKH,EAAMG,QAAQ,SAAS,GAC7DC,IAAUf,QAAiBU,EAAIM,MAAM,CAAC,CAACC,SAASN,EAAMK,KAAK,CAAC,GAC5DE,UAAiBR,EAAIQ,SAAS,KAAK,CAAC,CAACP,EAAMO,UAE3CC,UAAe;EACnB,IAAID,EAAS,GAAG;EAChB,IAAME,IAAUV,EAAIM,MAAM;EAC1B,AAAIN,EAAIW,SAAS,IACfX,EAAIY,SACFP,EAAQ,IACJK,EAAQG,QAAQP,MAAUA,MAAUL,EAAMK,KAAK,IAC/C,CAAC,GAAGI,GAAST,EAAMK,KAAK,CAC9B,IAEAN,EAAIY,SAAS,CAACX,EAAMK,KAAK,CAAC;CAE9B,GAEMQ,KAAaC,MAAqB;EAKtC,IAJA,EAAOD,YAAoBC,CAAC,GACxBA,EAAEE,oBAAoBT,EAAS,KAG/B,CAACU;GADe;GAAa;GAAc;GAAW;EACrDA,CAAAA,CAAWX,SAASQ,EAAEI,GAAG,GAAG;EACjCJ,EAAEK,eAAe;EAEjB,IAAMC,IAASN,EAAEO,cAA8BE,QAC7C,8BACF,GACMC,IAAQC,MAAMC,KAClBN,GAAOO,iBAA8B,mCAAiC,KACpE,CAAA,CACJ;EACIH,EAAMI,WAAW,KAMrBJ,GAJqBA,EAAMM,QAAQhB,EAAEO,aAGlBQ,KAFHf,EAAEI,QAAQ,eAAeJ,EAAEI,QAAQ,eAC3B,IAAI,MACcM,EAAMI,UAAUJ,EAAMI,OAChD,CAACM,MAAM;CACzB;CAEA,cAAA;EAAA,IAAAC,IAAAC,EAAA;EAsBmB,OAtBnBD,EAAAE,YAmBexB,GAASsB,EAAAG,WAJVxB,MAAM;GAEd,AADA,EAAOyB,UAAkBzB,CAAC,GACrBA,EAAEE,oBAAkBR,EAAO;EAClC,GAACgC,EAAAL,GAAAM,EAAA;GAAA,IAhBDC,OAAI;IAAA,OAAG1C,EAAM0C,QAAqB;GAAQ;GAAA,IAC1CnC,WAAQ;IAAA,OAAEA,EAAS;GAAC;GAAA,IAAA,iBAAA;IAAA,OAENL,EAAQ;GAAC;GAAA,IAAA,cAAA;IAAA,OACZC,EAAK;GAAC;GAAA,IAAA,iBAAA;IAAA,OACHJ,EAAI+C,QAAQ;GAAC;GAAA,IAAA,iBAAA;IAAA,OACb1C,EAAQ;GAAC;GAAA,IAAA,eAAA;IAAA,OACXA,EAAQ,IAAI,OAAO;GAAK;GAAA,IAAA,QAAA;IAAA,OAC7BZ,EACL,0CACAC,EAAe;KAAES,SAASA,EAAQ;KAAGC,MAAMA,EAAK;IAAE,CAAC,GACnDH,EAAMiD,KACR;GAAC;EAAA,GAMGhD,CAAI,GAAA,IAAA,EAAA,GAAAiD,EAAAf,SAEPtC,EAAMsD,QAAQ,GAAAhB;CAAA,EAAA,CAAA;AAGrB;AAACiB,EAAA,CAAA,SAAA,SAAA,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { ComponentProps } from 'solid-js';
|
|
3
|
+
import { toggleVariants } from '../../toggle/Toggle/Toggle.styles';
|
|
4
|
+
export interface ToggleGroupItemProps extends ComponentProps<"button">, VariantProps<typeof toggleVariants> {
|
|
5
|
+
/** 当前 item 的唯一值 */
|
|
6
|
+
value: string;
|
|
7
|
+
/** 默认从 ToggleGroup context 继承;可单独覆盖 */
|
|
8
|
+
variant?: "default" | "outline";
|
|
9
|
+
size?: "default" | "sm" | "lg";
|
|
10
|
+
}
|
|
@@ -1,70 +1,71 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { useTooltipProviderContext as e } from "../TooltipProvider/TooltipProvider.context.js";
|
|
2
|
+
import { TooltipContext as t } from "./Tooltip.context.js";
|
|
3
|
+
import { useTooltipGroupContext as n } from "../TooltipGroup/TooltipGroup.context.js";
|
|
4
|
+
import { createComponent as r } from "solid-js/web";
|
|
5
|
+
import { createEffect as i, createMemo as a, createSignal as o, createUniqueId as s, onCleanup as c } from "solid-js";
|
|
5
6
|
//#region src/components/tooltip/Tooltip/Tooltip.tsx
|
|
6
|
-
var
|
|
7
|
-
function
|
|
8
|
-
let
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
},
|
|
13
|
-
if (
|
|
14
|
-
let e =
|
|
7
|
+
var l = 0, u = 150;
|
|
8
|
+
function d(d) {
|
|
9
|
+
let f = n(), p = e(), [m, h] = o(d.defaultOpen ?? !1), g = a(() => d.open === void 0 ? m() : d.open), _ = a(() => !!d.disabled), [v, y] = o(), [b, x] = o(), [S, C] = o(), [w, T] = o(!1), E = (e) => {
|
|
10
|
+
d.open === void 0 && h(e), d.onOpenChange?.(e);
|
|
11
|
+
}, D, O, k = () => {
|
|
12
|
+
D !== void 0 && (window.clearTimeout(D), D = void 0), O !== void 0 && (window.clearTimeout(O), O = void 0);
|
|
13
|
+
}, A = () => {
|
|
14
|
+
if (k(), _() || g()) return;
|
|
15
|
+
let e = f?.claim();
|
|
15
16
|
if (e) {
|
|
16
|
-
|
|
17
|
+
C(e), E(!0);
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
}, k = () => {
|
|
21
|
-
D(), E = window.setTimeout(() => w(!1), u.closeDelay ?? l);
|
|
22
|
-
}, A = () => {
|
|
23
|
-
h() || (D(), w(!0));
|
|
20
|
+
D = window.setTimeout(() => E(!0), d.openDelay ?? p?.delay() ?? l);
|
|
24
21
|
}, j = () => {
|
|
25
|
-
|
|
22
|
+
k(), O = window.setTimeout(() => E(!1), d.closeDelay ?? p?.closeDelay() ?? u);
|
|
26
23
|
}, M = () => {
|
|
27
|
-
|
|
24
|
+
_() || (k(), E(!0));
|
|
28
25
|
}, N = () => {
|
|
29
|
-
|
|
26
|
+
k(), E(!1);
|
|
27
|
+
}, P = () => {
|
|
28
|
+
T(!0), k(), E(!1);
|
|
29
|
+
}, F = () => {
|
|
30
|
+
O !== void 0 && (window.clearTimeout(O), O = void 0);
|
|
30
31
|
};
|
|
31
|
-
|
|
32
|
-
if (!
|
|
33
|
-
let e =
|
|
34
|
-
rect: () =>
|
|
35
|
-
forceClose:
|
|
32
|
+
c(k), i(() => {
|
|
33
|
+
if (!f || !g()) return;
|
|
34
|
+
let e = f.registerActive({
|
|
35
|
+
rect: () => b()?.getBoundingClientRect(),
|
|
36
|
+
forceClose: P
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
c(e);
|
|
38
39
|
});
|
|
39
|
-
let
|
|
40
|
-
open:
|
|
41
|
-
disabled:
|
|
42
|
-
contentId: `tooltip-${
|
|
43
|
-
reference:
|
|
44
|
-
setReference:
|
|
45
|
-
floating:
|
|
46
|
-
setFloating:
|
|
47
|
-
requestOpen:
|
|
48
|
-
requestClose:
|
|
49
|
-
openImmediate:
|
|
50
|
-
closeImmediate:
|
|
51
|
-
keepOpen:
|
|
52
|
-
pendingSlideFrom:
|
|
53
|
-
clearPendingSlideFrom: () =>
|
|
54
|
-
suppressExitAnimation:
|
|
40
|
+
let I = {
|
|
41
|
+
open: g,
|
|
42
|
+
disabled: _,
|
|
43
|
+
contentId: `tooltip-${s()}`,
|
|
44
|
+
reference: v,
|
|
45
|
+
setReference: y,
|
|
46
|
+
floating: b,
|
|
47
|
+
setFloating: x,
|
|
48
|
+
requestOpen: A,
|
|
49
|
+
requestClose: j,
|
|
50
|
+
openImmediate: M,
|
|
51
|
+
closeImmediate: N,
|
|
52
|
+
keepOpen: F,
|
|
53
|
+
pendingSlideFrom: S,
|
|
54
|
+
clearPendingSlideFrom: () => C(void 0),
|
|
55
|
+
suppressExitAnimation: w,
|
|
55
56
|
consumeSuppressExitAnimation: () => {
|
|
56
|
-
let e =
|
|
57
|
-
return e &&
|
|
57
|
+
let e = w();
|
|
58
|
+
return e && T(!1), e;
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
|
-
return
|
|
61
|
-
value:
|
|
61
|
+
return r(t.Provider, {
|
|
62
|
+
value: I,
|
|
62
63
|
get children() {
|
|
63
|
-
return
|
|
64
|
+
return d.children;
|
|
64
65
|
}
|
|
65
66
|
});
|
|
66
67
|
}
|
|
67
68
|
//#endregion
|
|
68
|
-
export {
|
|
69
|
+
export { d as Tooltip };
|
|
69
70
|
|
|
70
71
|
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["createSignal","createMemo","createUniqueId","createEffect","onCleanup","JSX","TooltipContext","useTooltipGroupContext","TooltipContextValue","TooltipProps","Rect","DEFAULT_OPEN_DELAY","DEFAULT_CLOSE_DELAY","Tooltip","props","Element","group","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","reference","setReference","floating","setFloating","HTMLElement","pendingSlideFrom","setPendingSlideFrom","suppressExitAnimation","setSuppressExitAnimation","commit","next","onOpenChange","openTimer","closeTimer","clearTimers","window","clearTimeout","requestOpen","claimedRect","claim","setTimeout","openDelay","requestClose","closeDelay","openImmediate","closeImmediate","forceCloseForGroup","keepOpen","unregister","registerActive","rect","getBoundingClientRect","forceClose","contentId","ctx","clearPendingSlideFrom","consumeSuppressExitAnimation","value","_$createComponent","Provider","children"],"sources":["../../../../src/components/tooltip/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n createSignal,\n createMemo,\n createUniqueId,\n createEffect,\n onCleanup,\n type JSX,\n} from \"solid-js\";\nimport { TooltipContext } from \"./Tooltip.context\";\nimport { useTooltipGroupContext } from \"../TooltipGroup/TooltipGroup.context\";\nimport type { TooltipContextValue, TooltipProps } from \"./Tooltip.types\";\nimport type { Rect } from \"~/lib\";\n\nconst DEFAULT_OPEN_DELAY =
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["createSignal","createMemo","createUniqueId","createEffect","onCleanup","JSX","TooltipContext","useTooltipProviderContext","useTooltipGroupContext","TooltipContextValue","TooltipProps","Rect","DEFAULT_OPEN_DELAY","DEFAULT_CLOSE_DELAY","Tooltip","props","Element","group","provider","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","reference","setReference","floating","setFloating","HTMLElement","pendingSlideFrom","setPendingSlideFrom","suppressExitAnimation","setSuppressExitAnimation","commit","next","onOpenChange","openTimer","closeTimer","clearTimers","window","clearTimeout","requestOpen","claimedRect","claim","setTimeout","openDelay","delay","requestClose","closeDelay","openImmediate","closeImmediate","forceCloseForGroup","keepOpen","unregister","registerActive","rect","getBoundingClientRect","forceClose","contentId","ctx","clearPendingSlideFrom","consumeSuppressExitAnimation","value","_$createComponent","Provider","children"],"sources":["../../../../src/components/tooltip/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n createSignal,\n createMemo,\n createUniqueId,\n createEffect,\n onCleanup,\n type JSX,\n} from \"solid-js\";\nimport { TooltipContext } from \"./Tooltip.context\";\nimport { useTooltipProviderContext } from \"../TooltipProvider/TooltipProvider.context\";\nimport { useTooltipGroupContext } from \"../TooltipGroup/TooltipGroup.context\";\nimport type { TooltipContextValue, TooltipProps } from \"./Tooltip.types\";\nimport type { Rect } from \"~/lib\";\n\nconst DEFAULT_OPEN_DELAY = 0;\nconst DEFAULT_CLOSE_DELAY = 150;\n\n/**\n * Tooltip 根组件:不渲染任何 DOM,只负责状态管理 + 提供 context。\n * 真正的展示交给 <TooltipTrigger>/<TooltipContent>/<TooltipArrow>。\n *\n * 如果外面包了 <TooltipGroup>,组内相邻 trigger 之间切换 hover 会跳过\n * openDelay,并触发\"从旧位置滑到新位置\"的过渡(细节见 TooltipGroup.context.ts)。\n *\n * @example\n * ```tsx\n * <Tooltip openDelay={300}>\n * <TooltipTrigger>悬停我</TooltipTrigger>\n * <TooltipContent>\n * 提示内容\n * <TooltipArrow />\n * </TooltipContent>\n * </Tooltip>\n * ```\n */\nexport function Tooltip(props: TooltipProps): JSX.Element {\n const group = useTooltipGroupContext(); // undefined 是正常情况,代表没用 TooltipGroup\n const provider = useTooltipProviderContext();\n\n const [internalOpen, setInternalOpen] = createSignal(\n props.defaultOpen ?? false,\n );\n const open = createMemo(() =>\n props.open !== undefined ? props.open : internalOpen(),\n );\n const disabled = createMemo(() => !!props.disabled);\n\n const [reference, setReference] = createSignal<Element>();\n const [floating, setFloating] = createSignal<HTMLElement>();\n const [pendingSlideFrom, setPendingSlideFrom] = createSignal<Rect>();\n const [suppressExitAnimation, setSuppressExitAnimation] = createSignal(false);\n\n const commit = (next: boolean) => {\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n\n // 用 window.setTimeout/clearTimeout(而不是裸的全局 setTimeout)显式拿到\n // DOM lib 的重载(返回 number),避免和 @types/node 的 NodeJS.Timeout 重载冲突。\n let openTimer: number | undefined;\n let closeTimer: number | undefined;\n\n const clearTimers = () => {\n if (openTimer !== undefined) {\n window.clearTimeout(openTimer);\n openTimer = undefined;\n }\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n\n const requestOpen = () => {\n clearTimers();\n if (disabled() || open()) return;\n\n // 组内抢占:如果当前组里已经有一个活跃的 tooltip(哪怕它还在自己的\n // closeDelay 倒计时里,还没真正关闭),claim() 会立即强制关闭它、\n // 把它此刻的矩形要回来——这里直接跳过 openDelay,走\"滑入\"路径。\n const claimedRect = group?.claim();\n if (claimedRect) {\n setPendingSlideFrom(claimedRect);\n commit(true);\n return;\n }\n\n openTimer = window.setTimeout(\n () => commit(true),\n props.openDelay ?? provider?.delay() ?? DEFAULT_OPEN_DELAY,\n );\n };\n\n const requestClose = () => {\n clearTimers();\n closeTimer = window.setTimeout(\n () => commit(false),\n props.closeDelay ?? provider?.closeDelay() ?? DEFAULT_CLOSE_DELAY,\n );\n };\n\n const openImmediate = () => {\n if (disabled()) return;\n clearTimers();\n commit(true);\n };\n\n const closeImmediate = () => {\n clearTimers();\n commit(false);\n };\n\n /**\n * 专门给 <TooltipGroup> 抢占用的关闭方式:和 closeImmediate 的区别是,\n * 这里会额外标记 suppressExitAnimation,告诉 TooltipContent 的 Presence\n * 逻辑跳过退场动画、立即卸载——因为这次关闭是\"被新 tooltip 取代\",而不是\n * 用户主动关闭,旧的应该立刻让位,不该和正在滑入的新 tooltip 同时可见。\n * Escape/blur 等正常关闭场景依然走 closeImmediate,退场动画不受影响。\n */\n const forceCloseForGroup = () => {\n setSuppressExitAnimation(true);\n clearTimers();\n commit(false);\n };\n\n const keepOpen = () => {\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n\n onCleanup(clearTimers);\n\n // 打开期间把自己登记成\"组内当前活跃的 tooltip\",供其他 trigger 打开时\n // claim 走(触发平移过渡)。关闭或卸载时自动取消登记。\n createEffect(() => {\n if (!group || !open()) return;\n const unregister = group.registerActive({\n rect: () => floating()?.getBoundingClientRect(),\n forceClose: forceCloseForGroup,\n });\n onCleanup(unregister);\n });\n\n const contentId = `tooltip-${createUniqueId()}`;\n\n const ctx: TooltipContextValue = {\n open,\n disabled,\n contentId,\n reference,\n setReference,\n floating,\n setFloating,\n requestOpen,\n requestClose,\n openImmediate,\n closeImmediate,\n keepOpen,\n pendingSlideFrom,\n clearPendingSlideFrom: () => setPendingSlideFrom(undefined),\n suppressExitAnimation,\n consumeSuppressExitAnimation: () => {\n const value = suppressExitAnimation();\n if (value) setSuppressExitAnimation(false);\n return value;\n },\n };\n\n return (\n <TooltipContext.Provider value={ctx}>\n {props.children}\n </TooltipContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAcA,IAAMY,IAAqB,GACrBC,IAAsB;AAoB5B,SAAgBC,EAAQC,GAAkC;CACxD,IAAME,IAAQT,EAAuB,GAC/BU,IAAWX,EAA0B,GAErC,CAACY,GAAcC,KAAmBpB,EACtCe,EAAMM,eAAe,EACvB,GACMC,IAAOrB,QACXc,EAAMO,SAASC,KAAAA,IAAyBJ,EAAa,IAA1BJ,EAAMO,IACnC,GACME,IAAWvB,QAAiB,CAAC,CAACc,EAAMS,QAAQ,GAE5C,CAACC,GAAWC,KAAgB1B,EAAsB,GAClD,CAAC2B,GAAUC,KAAe5B,EAA0B,GACpD,CAAC8B,GAAkBC,KAAuB/B,EAAmB,GAC7D,CAACgC,GAAuBC,KAA4BjC,EAAa,EAAK,GAEtEkC,KAAUC,MAAkB;EAEhCpB,AADIA,EAAMO,SAASC,KAAAA,KAAWH,EAAgBe,CAAI,GAClDpB,EAAMqB,eAAeD,CAAI;CAC3B,GAIIE,GACAC,GAEEC,UAAoB;EAKxB,AAJIF,MAAcd,KAAAA,MAChBiB,OAAOC,aAAaJ,CAAS,GAC7BA,IAAYd,KAAAA,IAEVe,MAAef,KAAAA,MACjBiB,OAAOC,aAAaH,CAAU,GAC9BA,IAAaf,KAAAA;CAEjB,GAEMmB,UAAoB;EAExB,IADAH,EAAY,GACRf,EAAS,KAAKF,EAAK,GAAG;EAK1B,IAAMqB,IAAc1B,GAAO2B,MAAM;EACjC,IAAID,GAAa;GAEfT,AADAH,EAAoBY,CAAW,GAC/BT,EAAO,EAAI;GACX;EACF;EAEAG,IAAYG,OAAOK,iBACXX,EAAO,EAAI,GACjBnB,EAAM+B,aAAa5B,GAAU6B,MAAM,KAAKnC,CAC1C;CACF,GAEMoC,UAAqB;EAEzBV,AADAC,EAAY,GACZD,IAAaE,OAAOK,iBACZX,EAAO,EAAK,GAClBnB,EAAMkC,cAAc/B,GAAU+B,WAAW,KAAKpC,CAChD;CACF,GAEMqC,UAAsB;EACtB1B,EAAS,MACbe,EAAY,GACZL,EAAO,EAAI;CACb,GAEMiB,UAAuB;EAE3BjB,AADAK,EAAY,GACZL,EAAO,EAAK;CACd,GASMkB,UAA2B;EAG/BlB,AAFAD,EAAyB,EAAI,GAC7BM,EAAY,GACZL,EAAO,EAAK;CACd,GAEMmB,UAAiB;EACrB,AAAIf,MAAef,KAAAA,MACjBiB,OAAOC,aAAaH,CAAU,GAC9BA,IAAaf,KAAAA;CAEjB;CAMApB,AAJAC,EAAUmC,CAAW,GAIrBpC,QAAmB;EACjB,IAAI,CAACc,KAAS,CAACK,EAAK,GAAG;EACvB,IAAMgC,IAAarC,EAAMsC,eAAe;GACtCC,YAAY7B,EAAS,CAAC,EAAE8B,sBAAsB;GAC9CC,YAAYN;EACd,CAAC;EACDhD,EAAUkD,CAAU;CACtB,CAAC;CAID,IAAMM,IAA2B;EAC/BtC;EACAE;EACAmC,WAAAA,WAL2BzD,EAAe;EAM1CuB;EACAC;EACAC;EACAC;EACAc;EACAM;EACAE;EACAC;EACAE;EACAvB;EACA+B,6BAA6B9B,EAAoBR,KAAAA,CAAS;EAC1DS;EACA8B,oCAAoC;GAClC,IAAMC,IAAQ/B,EAAsB;GAEpC,OADI+B,KAAO9B,EAAyB,EAAK,GAClC8B;EACT;CACF;CAEA,OAAAC,EACG1D,EAAe2D,UAAQ;EAACF,OAAOH;EAAG,IAAAM,WAAA;GAAA,OAChCnD,EAAMmD;EAAQ;CAAA,CAAA;AAGrB"}
|
|
@@ -1,34 +1,9 @@
|
|
|
1
1
|
export interface TooltipArrowProps {
|
|
2
|
-
/** 箭头沿 tooltip 边缘方向的长度(像素),默认 8 */
|
|
3
|
-
width?: number;
|
|
4
|
-
/** 箭头突出的深度(像素),默认 4 */
|
|
5
|
-
height?: number;
|
|
6
|
-
/**
|
|
7
|
-
* 箭头颜色(Tailwind text-* class,因为 SVG 用 fill="currentColor")。
|
|
8
|
-
* 不传的话默认跟 TooltipContent 的默认背景色一致;如果你自定义了
|
|
9
|
-
* TooltipContent 的背景色,记得这里也传一个匹配的颜色,两者不会自动同步。
|
|
10
|
-
*/
|
|
11
2
|
class?: string;
|
|
12
3
|
}
|
|
13
4
|
/**
|
|
14
|
-
* 箭头组件,必须渲染在 <TooltipContent>
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* 四个方向用四套独立坐标画三角形,而不是画一个形状再用 CSS rotate 复用——
|
|
19
|
-
* 这是有意的:arrow middleware 用 el.offsetWidth/offsetHeight 判断"沿边长度",
|
|
20
|
-
* 而 CSS transform 不会改变这两个值,如果靠 rotate(90deg) 让同一个 8x4 的形状
|
|
21
|
-
* "看起来"变成 4x8,offsetWidth/offsetHeight 读到的还是旋转前的 8x4,
|
|
22
|
-
* 会导致 left/right 方向的偏移计算对不上。直接让未旋转的 SVG 本身尺寸
|
|
23
|
-
* 就随方向切换(沿边方向用 width,突出方向用 height),从根上避免这个偏差。
|
|
24
|
-
*
|
|
25
|
-
* 进出场动画是箭头自己独立播放的一份(data-state + animate-in/out),
|
|
26
|
-
* 和 TooltipContent 内层元素用的是同一个 animationState 信号驱动,
|
|
27
|
-
* 保证两者严格同步开始/结束——而不是让箭头被动继承内层元素的动画。
|
|
28
|
-
* 后者看似更省事,但内层元素的 zoom-in-95 动画会给它加一个非 none 的
|
|
29
|
-
* transform,CSS 规范规定这会让内层变成子元素新的"包含块",这和箭头
|
|
30
|
-
* 故意跳过内层、以外层为基准定位的设计(避免触发滚动条那次的修复)相冲突,
|
|
31
|
-
* 动画播放期间"父子两层谁负责定位"这个假设会变得不可靠,箭头容易之前观察到
|
|
32
|
-
* "入场看起来比内容慢一拍"这类问题。独立播放同一份动画彻底避开这个耦合。
|
|
5
|
+
* 箭头组件,必须渲染在 <TooltipContent> 内部。
|
|
6
|
+
* 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量
|
|
7
|
+
* 完成贴边与对齐,不手动计算 top/left。
|
|
33
8
|
*/
|
|
34
9
|
export declare function TooltipArrow(props: TooltipArrowProps): import("solid-js").JSX.Element;
|
|
@@ -1,58 +1,26 @@
|
|
|
1
1
|
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { getAlignment as t, getSide as n } from "../../../lib/positioner/core/placement.js";
|
|
3
|
+
import { useTooltipContentContext as r } from "../TooltipContent/TooltipContent.context.js";
|
|
4
|
+
import { className as i, effect as a, setAttribute as o, setStyleProperty as s, template as c, use as l } from "solid-js/web";
|
|
5
|
+
import { createMemo as u } from "solid-js";
|
|
4
6
|
//#region src/components/tooltip/TooltipArrow/TooltipArrow.tsx
|
|
5
|
-
var
|
|
6
|
-
function c
|
|
7
|
-
let
|
|
8
|
-
let e = l(), t = u();
|
|
9
|
-
switch (d()) {
|
|
10
|
-
case "top": return `0,0 ${e},0 ${e / 2},${t}`;
|
|
11
|
-
case "bottom": return `0,${t} ${e},${t} ${e / 2},0`;
|
|
12
|
-
case "left": return `0,0 0,${e} ${t},${e / 2}`;
|
|
13
|
-
default: return `${t},0 ${t},${e} 0,${e / 2}`;
|
|
14
|
-
}
|
|
15
|
-
}, h = () => {
|
|
16
|
-
let e = u(), t = f() ? p()?.x ?? 0 : p()?.y ?? 0;
|
|
17
|
-
switch (d()) {
|
|
18
|
-
case "top": return {
|
|
19
|
-
bottom: `-${e}px`,
|
|
20
|
-
left: `${t}px`
|
|
21
|
-
};
|
|
22
|
-
case "bottom": return {
|
|
23
|
-
top: `-${e}px`,
|
|
24
|
-
left: `${t}px`
|
|
25
|
-
};
|
|
26
|
-
case "left": return {
|
|
27
|
-
right: `-${e}px`,
|
|
28
|
-
top: `${t}px`
|
|
29
|
-
};
|
|
30
|
-
default: return {
|
|
31
|
-
left: `-${e}px`,
|
|
32
|
-
top: `${t}px`
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
};
|
|
7
|
+
var d = /*#__PURE__*/ c("<div aria-hidden=true>");
|
|
8
|
+
function f(c) {
|
|
9
|
+
let f = r("TooltipArrow"), p = u(() => n(f.placement())), m = u(() => t(f.placement()) ?? "center"), h = () => f.reference?.()?.getBoundingClientRect().width ?? 0;
|
|
36
10
|
return (() => {
|
|
37
|
-
var t =
|
|
38
|
-
return typeof
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
...h()
|
|
42
|
-
}, v = e("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", "text-foreground", a.class), y = m();
|
|
43
|
-
return o !== n.e && r(t, "width", n.e = o), s !== n.t && r(t, "height", n.t = s), p !== n.a && r(t, "viewBox", n.a = p), g !== n.o && r(t, "data-state", n.o = g), n.i = i(t, _, n.i), v !== n.n && r(t, "class", n.n = v), y !== n.s && r(d, "points", n.s = y), n;
|
|
11
|
+
var t = d(), n = f.setArrowElement;
|
|
12
|
+
return typeof n == "function" ? l(n, t) : f.setArrowElement = t, a((n) => {
|
|
13
|
+
var r = p(), a = m(), l = `${h() / 2}px`, u = e("absolute size-2.5 z-50 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground", "data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2", "data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2", "data-[side=left]:top-1/2! data-[side=left]:right-[-0.175rem] data-[side=left]:-translate-y-1/2", "data-[side=right]:top-1/2! data-[side=right]:left-[-0.175rem] data-[side=right]:-translate-y-1/2", "data-[side=top]:-bottom-2.5 data-[side=top]:data-[align=center]:left-1/2 data-[side=top]:data-[align=center]:-translate-x-1/2 data-[side=top]:data-[align=start]:left-(--arrow-offset) data-[side=top]:data-[align=start]:-translate-x-1/2 data-[side=top]:data-[align=end]:right-(--arrow-offset) data-[side=top]:data-[align=end]:translate-x-1/2", "data-[side=bottom]:top-1 data-[side=bottom]:data-[align=center]:left-1/2 data-[side=bottom]:data-[align=center]:-translate-x-1/2 data-[side=bottom]:data-[align=start]:left-(--arrow-offset) data-[side=bottom]:data-[align=start]:-translate-x-1/2 data-[side=bottom]:data-[align=end]:right-(--arrow-offset) data-[side=bottom]:data-[align=end]:translate-x-1/2", c.class);
|
|
14
|
+
return r !== n.e && o(t, "data-side", n.e = r), a !== n.t && o(t, "data-align", n.t = a), l !== n.a && s(t, "--arrow-offset", n.a = l), u !== n.o && i(t, n.o = u), n;
|
|
44
15
|
}, {
|
|
45
16
|
e: void 0,
|
|
46
17
|
t: void 0,
|
|
47
18
|
a: void 0,
|
|
48
|
-
o: void 0
|
|
49
|
-
i: void 0,
|
|
50
|
-
n: void 0,
|
|
51
|
-
s: void 0
|
|
19
|
+
o: void 0
|
|
52
20
|
}), t;
|
|
53
21
|
})();
|
|
54
22
|
}
|
|
55
23
|
//#endregion
|
|
56
|
-
export {
|
|
24
|
+
export { f as TooltipArrow };
|
|
57
25
|
|
|
58
26
|
//# sourceMappingURL=TooltipArrow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipArrow.js","names":["
|
|
1
|
+
{"version":3,"file":"TooltipArrow.js","names":["createMemo","getAlignment","getSide","clsx","useTooltipContentContext","TooltipArrowProps","class","TooltipArrow","props","ctx","side","placement","align","triggerWidth","reference","getBoundingClientRect","width","_el$","_tmpl$","_ref$","setArrowElement","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","_$setAttribute","t","a","_$setStyleProperty","o","_$className","undefined"],"sources":["../../../../src/components/tooltip/TooltipArrow/TooltipArrow.tsx"],"sourcesContent":["import { createMemo } from \"solid-js\";\nimport { getAlignment, getSide } from \"~/lib\";\nimport { clsx } from \"~/utils\";\nimport { useTooltipContentContext } from \"../TooltipContent/TooltipContent.context\";\n\nexport interface TooltipArrowProps {\n class?: string;\n}\n\n/**\n * 箭头组件,必须渲染在 <TooltipContent> 内部。\n * 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量\n * 完成贴边与对齐,不手动计算 top/left。\n */\nexport function TooltipArrow(props: TooltipArrowProps) {\n const ctx = useTooltipContentContext(\"TooltipArrow\");\n\n const side = createMemo(() => getSide(ctx.placement()));\n const align = createMemo(() => getAlignment(ctx.placement()) ?? \"center\");\n\n const triggerWidth = () =>\n ctx.reference?.()?.getBoundingClientRect().width ?? 0;\n\n return (\n <div\n ref={ctx.setArrowElement}\n data-side={side()}\n data-align={align()}\n style={{ \"--arrow-offset\": `${triggerWidth() / 2}px` }}\n class={clsx(\n \"absolute size-2.5 z-50 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\",\n \"data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2\",\n \"data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2\",\n \"data-[side=left]:top-1/2! data-[side=left]:right-[-0.175rem] data-[side=left]:-translate-y-1/2\",\n \"data-[side=right]:top-1/2! data-[side=right]:left-[-0.175rem] data-[side=right]:-translate-y-1/2\",\n \"data-[side=top]:-bottom-2.5 data-[side=top]:data-[align=center]:left-1/2 data-[side=top]:data-[align=center]:-translate-x-1/2 data-[side=top]:data-[align=start]:left-(--arrow-offset) data-[side=top]:data-[align=start]:-translate-x-1/2 data-[side=top]:data-[align=end]:right-(--arrow-offset) data-[side=top]:data-[align=end]:translate-x-1/2\",\n \"data-[side=bottom]:top-1 data-[side=bottom]:data-[align=center]:left-1/2 data-[side=bottom]:data-[align=center]:-translate-x-1/2 data-[side=bottom]:data-[align=start]:left-(--arrow-offset) data-[side=bottom]:data-[align=start]:-translate-x-1/2 data-[side=bottom]:data-[align=end]:right-(--arrow-offset) data-[side=bottom]:data-[align=end]:translate-x-1/2\",\n props.class,\n )}\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":";;;;;;;AAcA,SAAgBO,EAAaC,GAA0B;CACrD,IAAMC,IAAML,EAAyB,cAAc,GAE7CM,IAAOV,QAAiBE,EAAQO,EAAIE,UAAU,CAAC,CAAC,GAChDC,IAAQZ,QAAiBC,EAAaQ,EAAIE,UAAU,CAAC,KAAK,QAAQ,GAElEE,UACJJ,EAAIK,YAAY,CAAC,EAAEC,sBAAsB,CAAC,CAACC,SAAS;CAEtD,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAESV,EAAIW;EAaR,OAbuB,OAAAD,KAAA,aAAAE,EAAAF,GAAAF,CAAA,IAAnBR,EAAIW,kBAAeH,GAAAK,GAAAC,MAAA;GAAA,IAAAC,IACbd,EAAK,GAACe,IACLb,EAAM,GAACc,IACQ,GAAGb,EAAa,IAAI,EAAC,KAAIc,IAC7CxB,EACL,0GACA,0GACA,iHACA,kGACA,oGACA,uVACA,sWACAK,EAAMF,KACR;GAAC,OAAAkB,MAAAD,EAAAK,KAAAC,EAAAZ,GAAA,aAAAM,EAAAK,IAAAJ,CAAA,GAAAC,MAAAF,EAAAO,KAAAD,EAAAZ,GAAA,cAAAM,EAAAO,IAAAL,CAAA,GAAAC,MAAAH,EAAAQ,KAAAC,EAAAf,GAAA,kBAAAM,EAAAQ,IAAAL,CAAA,GAAAC,MAAAJ,EAAAU,KAAAC,EAAAjB,GAAAM,EAAAU,IAAAN,CAAA,GAAAJ;EAAA,GAAA;GAAAK,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAJ,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAIP"}
|
|
@@ -3,6 +3,8 @@ import { MiddlewareData, Placement } from '../../../lib';
|
|
|
3
3
|
export interface TooltipContentContextValue {
|
|
4
4
|
/** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */
|
|
5
5
|
middlewareData: Accessor<MiddlewareData>;
|
|
6
|
+
/** 触发器元素访问器,TooltipArrow 用它计算 --arrow-offset */
|
|
7
|
+
reference: Accessor<Element | undefined>;
|
|
6
8
|
/** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */
|
|
7
9
|
placement: Accessor<Placement>;
|
|
8
10
|
/** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type { MiddlewareData, Placement } from \"~/lib\";\n\nexport interface TooltipContentContextValue {\n /** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */\n placement: Accessor<Placement>;\n /** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */\n setArrowElement: (el: Element) => void;\n /**\n * 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是\n * 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖\n * \"作为内层元素的子节点、被动继承内层的 transform/opacity 动画\"这种隐式\n * 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范\n * 规定这会让内层变成子元素新的\"包含块\",和箭头故意跳过内层、以外层为\n * 基准的设计相冲突,动画播放期间会让\"父子两层谁负责什么\"变得不可靠)。\n */\n animationState: Accessor<\"open\" | \"closed\">;\n}\n\nexport const TooltipContentContext =\n createContext<TooltipContentContextValue>();\n\nexport function useTooltipContentContext(\n component: string,\n): TooltipContentContextValue {\n const ctx = useContext(TooltipContentContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <TooltipContent> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TooltipContent.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type { MiddlewareData, Placement } from \"~/lib\";\n\nexport interface TooltipContentContextValue {\n /** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 触发器元素访问器,TooltipArrow 用它计算 --arrow-offset */\n reference: Accessor<Element | undefined>;\n /** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */\n placement: Accessor<Placement>;\n /** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */\n setArrowElement: (el: Element) => void;\n /**\n * 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是\n * 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖\n * \"作为内层元素的子节点、被动继承内层的 transform/opacity 动画\"这种隐式\n * 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范\n * 规定这会让内层变成子元素新的\"包含块\",和箭头故意跳过内层、以外层为\n * 基准的设计相冲突,动画播放期间会让\"父子两层谁负责什么\"变得不可靠)。\n */\n animationState: Accessor<\"open\" | \"closed\">;\n}\n\nexport const TooltipContentContext =\n createContext<TooltipContentContextValue>();\n\nexport function useTooltipContentContext(\n component: string,\n): TooltipContentContextValue {\n const ctx = useContext(TooltipContentContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <TooltipContent> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuBA,IAAa,IACX,EAA0C;AAE5C,SAAgB,EACd,GAC4B;CAC5B,IAAM,IAAM,EAAW,CAAqB;CAC5C,IAAI,CAAC,GACH,MAAU,MAAM,IAAI,EAAU,4BAA4B;CAE5D,OAAO;AACT"}
|