@mantine/core 9.2.1 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Accordion/Accordion.cjs +0 -1
- package/cjs/components/Accordion/Accordion.cjs.map +1 -1
- package/cjs/components/Accordion/AccordionChevron.cjs +0 -1
- package/cjs/components/Accordion/AccordionChevron.cjs.map +1 -1
- package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs +0 -1
- package/cjs/components/Accordion/AccordionControl/AccordionControl.cjs.map +1 -1
- package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs +0 -1
- package/cjs/components/Accordion/AccordionItem/AccordionItem.cjs.map +1 -1
- package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs +0 -1
- package/cjs/components/Accordion/AccordionPanel/AccordionPanel.cjs.map +1 -1
- package/cjs/components/ActionIcon/ActionIcon.cjs +0 -1
- package/cjs/components/ActionIcon/ActionIcon.cjs.map +1 -1
- package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs +0 -1
- package/cjs/components/ActionIcon/ActionIconGroup/ActionIconGroup.cjs.map +1 -1
- package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs +0 -1
- package/cjs/components/ActionIcon/ActionIconGroupSection/ActionIconGroupSection.cjs.map +1 -1
- package/cjs/components/Affix/Affix.cjs +0 -1
- package/cjs/components/Affix/Affix.cjs.map +1 -1
- package/cjs/components/Alert/Alert.cjs +0 -1
- package/cjs/components/Alert/Alert.cjs.map +1 -1
- package/cjs/components/AngleSlider/AngleSlider.cjs +0 -1
- package/cjs/components/AngleSlider/AngleSlider.cjs.map +1 -1
- package/cjs/components/AppShell/AppShell.cjs +0 -1
- package/cjs/components/AppShell/AppShell.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs +0 -1
- package/cjs/components/AppShell/AppShellMain/AppShellMain.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs +0 -1
- package/cjs/components/AppShell/AppShellMediaStyles/AppShellMediaStyles.cjs.map +1 -1
- package/cjs/components/AppShell/AppShellSection/AppShellSection.cjs +0 -1
- package/cjs/components/AppShell/AppShellSection/AppShellSection.cjs.map +1 -1
- package/cjs/components/AppShell/use-resizing/use-resizing.cjs +0 -1
- package/cjs/components/AppShell/use-resizing/use-resizing.cjs.map +1 -1
- package/cjs/components/AspectRatio/AspectRatio.cjs +0 -1
- package/cjs/components/AspectRatio/AspectRatio.cjs.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.cjs +2 -2
- package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/cjs/components/Avatar/Avatar.cjs +0 -1
- package/cjs/components/Avatar/Avatar.cjs.map +1 -1
- package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs +0 -1
- package/cjs/components/Avatar/AvatarGroup/AvatarGroup.cjs.map +1 -1
- package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs +0 -1
- package/cjs/components/Avatar/AvatarPlaceholderIcon.cjs.map +1 -1
- package/cjs/components/BackgroundImage/BackgroundImage.cjs +0 -1
- package/cjs/components/BackgroundImage/BackgroundImage.cjs.map +1 -1
- package/cjs/components/Badge/Badge.cjs +0 -1
- package/cjs/components/Badge/Badge.cjs.map +1 -1
- package/cjs/components/Blockquote/Blockquote.cjs +4 -4
- package/cjs/components/Blockquote/Blockquote.cjs.map +1 -1
- package/cjs/components/Blockquote/Blockquote.module.cjs.map +1 -1
- package/cjs/components/Breadcrumbs/Breadcrumbs.cjs +0 -1
- package/cjs/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -1
- package/cjs/components/Burger/Burger.cjs +0 -1
- package/cjs/components/Burger/Burger.cjs.map +1 -1
- package/cjs/components/Button/Button.cjs +0 -1
- package/cjs/components/Button/Button.cjs.map +1 -1
- package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs +0 -1
- package/cjs/components/Button/ButtonGroup/ButtonGroup.cjs.map +1 -1
- package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs +0 -1
- package/cjs/components/Button/ButtonGroupSection/ButtonGroupSection.cjs.map +1 -1
- package/cjs/components/Card/Card.cjs +0 -1
- package/cjs/components/Card/Card.cjs.map +1 -1
- package/cjs/components/Card/CardSection/CardSection.cjs +0 -1
- package/cjs/components/Card/CardSection/CardSection.cjs.map +1 -1
- package/cjs/components/Center/Center.cjs +0 -1
- package/cjs/components/Center/Center.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckIcon.cjs +0 -1
- package/cjs/components/Checkbox/CheckIcon.cjs.map +1 -1
- package/cjs/components/Checkbox/Checkbox.cjs +0 -1
- package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs +0 -1
- package/cjs/components/Checkbox/CheckboxCard/CheckboxCard.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs +0 -1
- package/cjs/components/Checkbox/CheckboxGroup/CheckboxGroup.cjs.map +1 -1
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs +0 -1
- package/cjs/components/Checkbox/CheckboxIndicator/CheckboxIndicator.cjs.map +1 -1
- package/cjs/components/Chip/Chip.cjs +0 -1
- package/cjs/components/Chip/Chip.cjs.map +1 -1
- package/cjs/components/Chip/ChipGroup/ChipGroup.cjs +0 -1
- package/cjs/components/Chip/ChipGroup/ChipGroup.cjs.map +1 -1
- package/cjs/components/CloseButton/CloseButton.cjs +0 -1
- package/cjs/components/CloseButton/CloseButton.cjs.map +1 -1
- package/cjs/components/Code/Code.cjs +0 -1
- package/cjs/components/Code/Code.cjs.map +1 -1
- package/cjs/components/Collapse/Collapse.cjs +0 -1
- package/cjs/components/Collapse/Collapse.cjs.map +1 -1
- package/cjs/components/ColorInput/ColorInput.cjs +0 -1
- package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
- package/cjs/components/ColorInput/EyeDropperIcon.cjs +0 -1
- package/cjs/components/ColorInput/EyeDropperIcon.cjs.map +1 -1
- package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs +0 -1
- package/cjs/components/ColorPicker/AlphaSlider/AlphaSlider.cjs.map +1 -1
- package/cjs/components/ColorPicker/ColorPicker.cjs +0 -1
- package/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
- package/cjs/components/ColorPicker/ColorPicker.context.cjs +0 -1
- package/cjs/components/ColorPicker/ColorPicker.context.cjs.map +1 -1
- package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs +0 -1
- package/cjs/components/ColorPicker/ColorSlider/ColorSlider.cjs.map +1 -1
- package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs +0 -1
- package/cjs/components/ColorPicker/HueSlider/HueSlider.cjs.map +1 -1
- package/cjs/components/ColorPicker/Saturation/Saturation.cjs +0 -1
- package/cjs/components/ColorPicker/Saturation/Saturation.cjs.map +1 -1
- package/cjs/components/ColorPicker/Swatches/Swatches.cjs +0 -1
- package/cjs/components/ColorPicker/Swatches/Swatches.cjs.map +1 -1
- package/cjs/components/ColorPicker/Thumb/Thumb.cjs +0 -1
- package/cjs/components/ColorPicker/Thumb/Thumb.cjs.map +1 -1
- package/cjs/components/ColorSwatch/ColorSwatch.cjs +0 -1
- package/cjs/components/ColorSwatch/ColorSwatch.cjs.map +1 -1
- package/cjs/components/Combobox/Combobox.cjs +26 -4
- package/cjs/components/Combobox/Combobox.cjs.map +1 -1
- package/cjs/components/Combobox/Combobox.context.cjs.map +1 -1
- package/cjs/components/Combobox/Combobox.module.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs +0 -1
- package/cjs/components/Combobox/ComboboxChevron/ComboboxChevron.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs +0 -1
- package/cjs/components/Combobox/ComboboxClearButton/ComboboxClearButton.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs +1 -1
- package/cjs/components/Combobox/ComboboxDropdown/ComboboxDropdown.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs +0 -1
- package/cjs/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs +0 -1
- package/cjs/components/Combobox/ComboboxEmpty/ComboboxEmpty.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs +0 -1
- package/cjs/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs +0 -1
- package/cjs/components/Combobox/ComboboxFooter/ComboboxFooter.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs +0 -1
- package/cjs/components/Combobox/ComboboxGroup/ComboboxGroup.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs +0 -1
- package/cjs/components/Combobox/ComboboxHeader/ComboboxHeader.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs +0 -1
- package/cjs/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs +0 -1
- package/cjs/components/Combobox/ComboboxOption/ComboboxOption.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs +0 -1
- package/cjs/components/Combobox/ComboboxOptions/ComboboxOptions.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs +0 -1
- package/cjs/components/Combobox/ComboboxSearch/ComboboxSearch.cjs.map +1 -1
- package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs +0 -1
- package/cjs/components/Combobox/ComboboxTarget/ComboboxTarget.cjs.map +1 -1
- package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs +4 -2
- package/cjs/components/Combobox/OptionsDropdown/OptionsDropdown.cjs.map +1 -1
- package/cjs/components/Combobox/use-combobox/use-combobox.cjs +0 -1
- package/cjs/components/Combobox/use-combobox/use-combobox.cjs.map +1 -1
- package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs +0 -1
- package/cjs/components/Combobox/use-combobox/use-virtualized-combobox.cjs.map +1 -1
- package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs +0 -1
- package/cjs/components/Combobox/use-combobox-target-props/use-combobox-target-props.cjs.map +1 -1
- package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs +0 -1
- package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -1
- package/cjs/components/Container/Container.cjs +0 -1
- package/cjs/components/Container/Container.cjs.map +1 -1
- package/cjs/components/CopyButton/CopyButton.cjs +0 -1
- package/cjs/components/CopyButton/CopyButton.cjs.map +1 -1
- package/cjs/components/Dialog/Dialog.cjs +0 -1
- package/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/cjs/components/Divider/Divider.cjs +0 -1
- package/cjs/components/Divider/Divider.cjs.map +1 -1
- package/cjs/components/Drawer/Drawer.cjs +0 -1
- package/cjs/components/Drawer/Drawer.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerBody.cjs +0 -1
- package/cjs/components/Drawer/DrawerBody.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerCloseButton.cjs +0 -1
- package/cjs/components/Drawer/DrawerCloseButton.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerContent.cjs +0 -1
- package/cjs/components/Drawer/DrawerContent.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerHeader.cjs +0 -1
- package/cjs/components/Drawer/DrawerHeader.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerOverlay.cjs +0 -1
- package/cjs/components/Drawer/DrawerOverlay.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerRoot.cjs +0 -1
- package/cjs/components/Drawer/DrawerRoot.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerStack.cjs +0 -1
- package/cjs/components/Drawer/DrawerStack.cjs.map +1 -1
- package/cjs/components/Drawer/DrawerTitle.cjs +0 -1
- package/cjs/components/Drawer/DrawerTitle.cjs.map +1 -1
- package/cjs/components/Fieldset/Fieldset.cjs +0 -1
- package/cjs/components/Fieldset/Fieldset.cjs.map +1 -1
- package/cjs/components/FileInput/FileInput.cjs +0 -1
- package/cjs/components/FileInput/FileInput.cjs.map +1 -1
- package/cjs/components/Flex/Flex.cjs +0 -1
- package/cjs/components/Flex/Flex.cjs.map +1 -1
- package/cjs/components/FloatingIndicator/FloatingIndicator.cjs +0 -1
- package/cjs/components/FloatingIndicator/FloatingIndicator.cjs.map +1 -1
- package/cjs/components/FloatingIndicator/use-floating-indicator.cjs +0 -1
- package/cjs/components/FloatingIndicator/use-floating-indicator.cjs.map +1 -1
- package/cjs/components/FloatingWindow/FloatingWindow.cjs +0 -1
- package/cjs/components/FloatingWindow/FloatingWindow.cjs.map +1 -1
- package/cjs/components/FocusTrap/FocusTrap.cjs +0 -1
- package/cjs/components/FocusTrap/FocusTrap.cjs.map +1 -1
- package/cjs/components/Grid/Grid.cjs +0 -1
- package/cjs/components/Grid/Grid.cjs.map +1 -1
- package/cjs/components/Grid/GridCol/GridColVariables.cjs +0 -1
- package/cjs/components/Grid/GridCol/GridColVariables.cjs.map +1 -1
- package/cjs/components/Grid/GridVariables.cjs +0 -1
- package/cjs/components/Grid/GridVariables.cjs.map +1 -1
- package/cjs/components/Group/Group.cjs +0 -1
- package/cjs/components/Group/Group.cjs.map +1 -1
- package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs +0 -1
- package/cjs/components/Group/filter-falsy-children/filter-falsy-children.cjs.map +1 -1
- package/cjs/components/Highlight/Highlight.cjs +0 -1
- package/cjs/components/Highlight/Highlight.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCard.cjs +0 -1
- package/cjs/components/HoverCard/HoverCard.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs +0 -1
- package/cjs/components/HoverCard/HoverCardDropdown/HoverCardDropdown.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs +0 -1
- package/cjs/components/HoverCard/HoverCardGroup/HoverCardGroup.cjs.map +1 -1
- package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs +0 -1
- package/cjs/components/HoverCard/HoverCardTarget/HoverCardTarget.cjs.map +1 -1
- package/cjs/components/HoverCard/use-hover-card.cjs +0 -1
- package/cjs/components/HoverCard/use-hover-card.cjs.map +1 -1
- package/cjs/components/Image/Image.cjs +0 -1
- package/cjs/components/Image/Image.cjs.map +1 -1
- package/cjs/components/Indicator/Indicator.cjs +0 -1
- package/cjs/components/Indicator/Indicator.cjs.map +1 -1
- package/cjs/components/Input/Input.cjs +12 -3
- package/cjs/components/Input/Input.cjs.map +1 -1
- package/cjs/components/Input/Input.context.cjs +0 -1
- package/cjs/components/Input/Input.context.cjs.map +1 -1
- package/cjs/components/Input/Input.module.cjs +1 -0
- package/cjs/components/Input/Input.module.cjs.map +1 -1
- package/cjs/components/Input/InputClearButton/InputClearButton.cjs +0 -1
- package/cjs/components/Input/InputClearButton/InputClearButton.cjs.map +1 -1
- package/cjs/components/Input/InputClearSection/InputClearSection.cjs +0 -1
- package/cjs/components/Input/InputClearSection/InputClearSection.cjs.map +1 -1
- package/cjs/components/Input/InputDescription/InputDescription.cjs +0 -1
- package/cjs/components/Input/InputDescription/InputDescription.cjs.map +1 -1
- package/cjs/components/Input/InputError/InputError.cjs +0 -1
- package/cjs/components/Input/InputError/InputError.cjs.map +1 -1
- package/cjs/components/Input/InputLabel/InputLabel.cjs +0 -1
- package/cjs/components/Input/InputLabel/InputLabel.cjs.map +1 -1
- package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs +0 -1
- package/cjs/components/Input/InputPlaceholder/InputPlaceholder.cjs.map +1 -1
- package/cjs/components/Input/InputWrapper/InputWrapper.cjs +0 -1
- package/cjs/components/Input/InputWrapper/InputWrapper.cjs.map +1 -1
- package/cjs/components/Input/InputWrapper.context.cjs +0 -1
- package/cjs/components/Input/InputWrapper.context.cjs.map +1 -1
- package/cjs/components/InputBase/InputBase.cjs +0 -1
- package/cjs/components/InputBase/InputBase.cjs.map +1 -1
- package/cjs/components/JsonInput/JsonInput.cjs +0 -1
- package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
- package/cjs/components/Kbd/Kbd.cjs +0 -1
- package/cjs/components/Kbd/Kbd.cjs.map +1 -1
- package/cjs/components/List/List.cjs +0 -1
- package/cjs/components/List/List.cjs.map +1 -1
- package/cjs/components/List/ListItem/ListItem.cjs +0 -1
- package/cjs/components/List/ListItem/ListItem.cjs.map +1 -1
- package/cjs/components/Loader/Loader.cjs +0 -1
- package/cjs/components/Loader/Loader.cjs.map +1 -1
- package/cjs/components/LoadingOverlay/LoadingOverlay.cjs +0 -1
- package/cjs/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -1
- package/cjs/components/Mark/Mark.cjs +0 -1
- package/cjs/components/Mark/Mark.cjs.map +1 -1
- package/cjs/components/Marquee/Marquee.cjs +0 -1
- package/cjs/components/Marquee/Marquee.cjs.map +1 -1
- package/cjs/components/MaskInput/MaskInput.cjs +0 -1
- package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
- package/cjs/components/MaskInput/use-mask-input-props.cjs +0 -1
- package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
- package/cjs/components/Menu/Menu.cjs +37 -4
- package/cjs/components/Menu/Menu.cjs.map +1 -1
- package/cjs/components/Menu/Menu.context.cjs.map +1 -1
- package/cjs/components/Menu/Menu.module.cjs +2 -0
- package/cjs/components/Menu/Menu.module.cjs.map +1 -1
- package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs +30 -0
- package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.cjs.map +1 -0
- package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs +7 -0
- package/cjs/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.cjs.map +1 -0
- package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs +52 -0
- package/cjs/components/Menu/MenuCheckboxItem/MenuCheckboxItem.cjs.map +1 -0
- package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs +27 -0
- package/cjs/components/Menu/MenuContextMenu/MenuContextMenu.cjs.map +1 -0
- package/cjs/components/Menu/MenuDivider/MenuDivider.cjs +0 -1
- package/cjs/components/Menu/MenuDivider/MenuDivider.cjs.map +1 -1
- package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs +9 -2
- package/cjs/components/Menu/MenuDropdown/MenuDropdown.cjs.map +1 -1
- package/cjs/components/Menu/MenuItem/MenuItem.cjs +18 -2
- package/cjs/components/Menu/MenuItem/MenuItem.cjs.map +1 -1
- package/cjs/components/Menu/MenuLabel/MenuLabel.cjs +0 -1
- package/cjs/components/Menu/MenuLabel/MenuLabel.cjs.map +1 -1
- package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs +27 -0
- package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.cjs.map +1 -0
- package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs +7 -0
- package/cjs/components/Menu/MenuRadioGroup/MenuRadioGroup.context.cjs.map +1 -0
- package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs +46 -0
- package/cjs/components/Menu/MenuRadioItem/MenuRadioItem.cjs.map +1 -0
- package/cjs/components/Menu/MenuSearch/MenuSearch.cjs +115 -0
- package/cjs/components/Menu/MenuSearch/MenuSearch.cjs.map +1 -0
- package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs +114 -0
- package/cjs/components/Menu/MenuSelectableItem/MenuSelectableItem.cjs.map +1 -0
- package/cjs/components/Menu/MenuSub/MenuSub.cjs +3 -3
- package/cjs/components/Menu/MenuSub/MenuSub.cjs.map +1 -1
- package/cjs/components/Menu/MenuSub/MenuSub.context.cjs +0 -1
- package/cjs/components/Menu/MenuSub/MenuSub.context.cjs.map +1 -1
- package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs +13 -2
- package/cjs/components/Menu/MenuSubDropdown/MenuSubDropdown.cjs.map +1 -1
- package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs +18 -2
- package/cjs/components/Menu/MenuSubItem/MenuSubItem.cjs.map +1 -1
- package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs +0 -1
- package/cjs/components/Menu/MenuSubTarget/MenuSubTarget.cjs.map +1 -1
- package/cjs/components/Menu/MenuTarget/MenuTarget.cjs +0 -1
- package/cjs/components/Menu/MenuTarget/MenuTarget.cjs.map +1 -1
- package/cjs/components/Menu/use-menu-type-ahead.cjs +72 -0
- package/cjs/components/Menu/use-menu-type-ahead.cjs.map +1 -0
- package/cjs/components/Modal/Modal.cjs +0 -1
- package/cjs/components/Modal/Modal.cjs.map +1 -1
- package/cjs/components/Modal/ModalBody.cjs +0 -1
- package/cjs/components/Modal/ModalBody.cjs.map +1 -1
- package/cjs/components/Modal/ModalCloseButton.cjs +0 -1
- package/cjs/components/Modal/ModalCloseButton.cjs.map +1 -1
- package/cjs/components/Modal/ModalContent.cjs +0 -1
- package/cjs/components/Modal/ModalContent.cjs.map +1 -1
- package/cjs/components/Modal/ModalHeader.cjs +0 -1
- package/cjs/components/Modal/ModalHeader.cjs.map +1 -1
- package/cjs/components/Modal/ModalOverlay.cjs +0 -1
- package/cjs/components/Modal/ModalOverlay.cjs.map +1 -1
- package/cjs/components/Modal/ModalRoot.cjs +0 -1
- package/cjs/components/Modal/ModalRoot.cjs.map +1 -1
- package/cjs/components/Modal/ModalStack.cjs +0 -1
- package/cjs/components/Modal/ModalStack.cjs.map +1 -1
- package/cjs/components/Modal/ModalTitle.cjs +0 -1
- package/cjs/components/Modal/ModalTitle.cjs.map +1 -1
- package/cjs/components/Modal/use-modals-stack.cjs +0 -1
- package/cjs/components/Modal/use-modals-stack.cjs.map +1 -1
- package/cjs/components/ModalBase/ModalBase.cjs +0 -1
- package/cjs/components/ModalBase/ModalBase.cjs.map +1 -1
- package/cjs/components/ModalBase/ModalBaseOverlay.cjs +0 -1
- package/cjs/components/ModalBase/ModalBaseOverlay.cjs.map +1 -1
- package/cjs/components/ModalBase/NativeScrollArea.cjs +0 -1
- package/cjs/components/ModalBase/NativeScrollArea.cjs.map +1 -1
- package/cjs/components/ModalBase/use-lock-scroll.cjs +0 -1
- package/cjs/components/ModalBase/use-lock-scroll.cjs.map +1 -1
- package/cjs/components/ModalBase/use-modal-body-id.cjs +0 -1
- package/cjs/components/ModalBase/use-modal-body-id.cjs.map +1 -1
- package/cjs/components/ModalBase/use-modal-title-id.cjs +0 -1
- package/cjs/components/ModalBase/use-modal-title-id.cjs.map +1 -1
- package/cjs/components/ModalBase/use-modal.cjs +0 -1
- package/cjs/components/ModalBase/use-modal.cjs.map +1 -1
- package/cjs/components/MultiSelect/MultiSelect.cjs +2 -2
- package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
- package/cjs/components/NativeSelect/NativeSelect.cjs +0 -1
- package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
- package/cjs/components/NativeSelect/NativeSelectOption.cjs +0 -1
- package/cjs/components/NativeSelect/NativeSelectOption.cjs.map +1 -1
- package/cjs/components/NavLink/NavLink.cjs +0 -1
- package/cjs/components/NavLink/NavLink.cjs.map +1 -1
- package/cjs/components/Notification/Notification.cjs +0 -1
- package/cjs/components/Notification/Notification.cjs.map +1 -1
- package/cjs/components/NumberFormatter/NumberFormatter.cjs +0 -1
- package/cjs/components/NumberFormatter/NumberFormatter.cjs.map +1 -1
- package/cjs/components/NumberInput/NumberInputChevron.cjs +0 -1
- package/cjs/components/NumberInput/NumberInputChevron.cjs.map +1 -1
- package/cjs/components/OverflowList/OverflowList.cjs +68 -10
- package/cjs/components/OverflowList/OverflowList.cjs.map +1 -1
- package/cjs/components/OverflowList/use-dimensions.cjs +0 -1
- package/cjs/components/OverflowList/use-dimensions.cjs.map +1 -1
- package/cjs/components/Overlay/Overlay.cjs +0 -1
- package/cjs/components/Overlay/Overlay.cjs.map +1 -1
- package/cjs/components/Pagination/Pagination.cjs +14 -3
- package/cjs/components/Pagination/Pagination.cjs.map +1 -1
- package/cjs/components/Pagination/Pagination.context.cjs.map +1 -1
- package/cjs/components/Pagination/Pagination.icons.cjs +0 -1
- package/cjs/components/Pagination/Pagination.icons.cjs.map +1 -1
- package/cjs/components/Pagination/Pagination.module.cjs +3 -1
- package/cjs/components/Pagination/Pagination.module.cjs.map +1 -1
- package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs +0 -1
- package/cjs/components/Pagination/PaginationControl/PaginationControl.cjs.map +1 -1
- package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs +0 -1
- package/cjs/components/Pagination/PaginationDots/PaginationDots.cjs.map +1 -1
- package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs +0 -1
- package/cjs/components/Pagination/PaginationEdges/PaginationEdges.cjs.map +1 -1
- package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs +0 -1
- package/cjs/components/Pagination/PaginationItems/PaginationItems.cjs.map +1 -1
- package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs +32 -0
- package/cjs/components/Pagination/PaginationLabel/PaginationLabel.cjs.map +1 -0
- package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs +3 -2
- package/cjs/components/Pagination/PaginationRoot/PaginationRoot.cjs.map +1 -1
- package/cjs/components/Paper/Paper.cjs +0 -1
- package/cjs/components/Paper/Paper.cjs.map +1 -1
- package/cjs/components/PasswordInput/PasswordToggleIcon.cjs +0 -1
- package/cjs/components/PasswordInput/PasswordToggleIcon.cjs.map +1 -1
- package/cjs/components/Pill/Pill.cjs +0 -1
- package/cjs/components/Pill/Pill.cjs.map +1 -1
- package/cjs/components/Pill/Pill.module.cjs.map +1 -1
- package/cjs/components/Pill/PillGroup/PillGroup.cjs +0 -1
- package/cjs/components/Pill/PillGroup/PillGroup.cjs.map +1 -1
- package/cjs/components/PillsInput/PillsInput.cjs +0 -1
- package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
- package/cjs/components/PillsInput/PillsInput.context.cjs +0 -1
- package/cjs/components/PillsInput/PillsInput.context.cjs.map +1 -1
- package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs +0 -1
- package/cjs/components/PillsInput/PillsInputField/PillsInputField.cjs.map +1 -1
- package/cjs/components/PinInput/PinInput.cjs +0 -1
- package/cjs/components/PinInput/PinInput.cjs.map +1 -1
- package/cjs/components/Popover/Popover.cjs +5 -10
- package/cjs/components/Popover/Popover.cjs.map +1 -1
- package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs +27 -0
- package/cjs/components/Popover/PopoverContextMenu/PopoverContextMenu.cjs.map +1 -0
- package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs +8 -1
- package/cjs/components/Popover/PopoverDropdown/PopoverDropdown.cjs.map +1 -1
- package/cjs/components/Popover/use-popover.cjs +52 -20
- package/cjs/components/Popover/use-popover.cjs.map +1 -1
- package/cjs/components/Portal/OptionalPortal.cjs +0 -1
- package/cjs/components/Portal/OptionalPortal.cjs.map +1 -1
- package/cjs/components/Portal/Portal.cjs +0 -1
- package/cjs/components/Portal/Portal.cjs.map +1 -1
- package/cjs/components/Progress/Progress.cjs +0 -1
- package/cjs/components/Progress/Progress.cjs.map +1 -1
- package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs +0 -1
- package/cjs/components/Progress/ProgressLabel/ProgressLabel.cjs.map +1 -1
- package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs +0 -1
- package/cjs/components/Progress/ProgressRoot/ProgressRoot.cjs.map +1 -1
- package/cjs/components/Progress/ProgressSection/ProgressSection.cjs +0 -1
- package/cjs/components/Progress/ProgressSection/ProgressSection.cjs.map +1 -1
- package/cjs/components/Radio/Radio.cjs +1 -2
- package/cjs/components/Radio/Radio.cjs.map +1 -1
- package/cjs/components/Radio/RadioCard/RadioCard.cjs +0 -1
- package/cjs/components/Radio/RadioCard/RadioCard.cjs.map +1 -1
- package/cjs/components/Radio/RadioGroup/RadioGroup.cjs +0 -1
- package/cjs/components/Radio/RadioGroup/RadioGroup.cjs.map +1 -1
- package/cjs/components/Radio/RadioIcon.cjs +0 -1
- package/cjs/components/Radio/RadioIcon.cjs.map +1 -1
- package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs +2 -3
- package/cjs/components/Radio/RadioIndicator/RadioIndicator.cjs.map +1 -1
- package/cjs/components/Rating/Rating.cjs +0 -1
- package/cjs/components/Rating/Rating.cjs.map +1 -1
- package/cjs/components/Rating/RatingItem/RatingItem.cjs +0 -1
- package/cjs/components/Rating/RatingItem/RatingItem.cjs.map +1 -1
- package/cjs/components/Rating/StarSymbol/StarIcon.cjs +0 -1
- package/cjs/components/Rating/StarSymbol/StarIcon.cjs.map +1 -1
- package/cjs/components/Rating/StarSymbol/StarSymbol.cjs +0 -1
- package/cjs/components/Rating/StarSymbol/StarSymbol.cjs.map +1 -1
- package/cjs/components/RingProgress/Curve/Curve.cjs +0 -1
- package/cjs/components/RingProgress/Curve/Curve.cjs.map +1 -1
- package/cjs/components/RingProgress/RingProgress.cjs +0 -1
- package/cjs/components/RingProgress/RingProgress.cjs.map +1 -1
- package/cjs/components/RollingNumber/DigitColumn.cjs +0 -1
- package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -1
- package/cjs/components/RollingNumber/RollingNumber.cjs +0 -1
- package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollArea.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.cjs.map +1 -1
- package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs +0 -1
- package/cjs/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.cjs.map +1 -1
- package/cjs/components/ScrollArea/use-resize-observer.cjs +0 -1
- package/cjs/components/ScrollArea/use-resize-observer.cjs.map +1 -1
- package/cjs/components/Scroller/Scroller.cjs +0 -1
- package/cjs/components/Scroller/Scroller.cjs.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.cjs +0 -1
- package/cjs/components/SegmentedControl/SegmentedControl.cjs.map +1 -1
- package/cjs/components/Select/Select.cjs +3 -3
- package/cjs/components/Select/Select.cjs.map +1 -1
- package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs +0 -1
- package/cjs/components/SemiCircleProgress/SemiCircleProgress.cjs.map +1 -1
- package/cjs/components/SimpleGrid/SimpleGrid.cjs +0 -1
- package/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
- package/cjs/components/SimpleGrid/SimpleGridVariables.cjs +0 -1
- package/cjs/components/SimpleGrid/SimpleGridVariables.cjs.map +1 -1
- package/cjs/components/Skeleton/Skeleton.cjs +0 -1
- package/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
- package/cjs/components/Slider/Marks/Marks.cjs +0 -1
- package/cjs/components/Slider/Marks/Marks.cjs.map +1 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.cjs +0 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.cjs.map +1 -1
- package/cjs/components/Slider/Slider/Slider.cjs +0 -1
- package/cjs/components/Slider/Slider/Slider.cjs.map +1 -1
- package/cjs/components/Slider/SliderRoot/SliderRoot.cjs +0 -1
- package/cjs/components/Slider/SliderRoot/SliderRoot.cjs.map +1 -1
- package/cjs/components/Slider/Thumb/Thumb.cjs +0 -1
- package/cjs/components/Slider/Thumb/Thumb.cjs.map +1 -1
- package/cjs/components/Slider/Track/Track.cjs +0 -1
- package/cjs/components/Slider/Track/Track.cjs.map +1 -1
- package/cjs/components/Space/Space.cjs +0 -1
- package/cjs/components/Space/Space.cjs.map +1 -1
- package/cjs/components/Splitter/GripIcon.cjs +55 -0
- package/cjs/components/Splitter/GripIcon.cjs.map +1 -0
- package/cjs/components/Splitter/Splitter.cjs +111 -0
- package/cjs/components/Splitter/Splitter.cjs.map +1 -0
- package/cjs/components/Splitter/Splitter.context.cjs +8 -0
- package/cjs/components/Splitter/Splitter.context.cjs.map +1 -0
- package/cjs/components/Splitter/Splitter.module.cjs +12 -0
- package/cjs/components/Splitter/Splitter.module.cjs.map +1 -0
- package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs +34 -0
- package/cjs/components/Splitter/SplitterPane/SplitterPane.cjs.map +1 -0
- package/cjs/components/Spoiler/Spoiler.cjs +0 -1
- package/cjs/components/Spoiler/Spoiler.cjs.map +1 -1
- package/cjs/components/Stack/Stack.cjs +0 -1
- package/cjs/components/Stack/Stack.cjs.map +1 -1
- package/cjs/components/Stepper/Stepper.cjs +0 -1
- package/cjs/components/Stepper/Stepper.cjs.map +1 -1
- package/cjs/components/Stepper/Stepper.module.cjs.map +1 -1
- package/cjs/components/Stepper/StepperStep/StepperStep.cjs +0 -1
- package/cjs/components/Stepper/StepperStep/StepperStep.cjs.map +1 -1
- package/cjs/components/Switch/Switch.cjs +0 -1
- package/cjs/components/Switch/Switch.cjs.map +1 -1
- package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs +0 -1
- package/cjs/components/Switch/SwitchGroup/SwitchGroup.cjs.map +1 -1
- package/cjs/components/Table/Table.cjs +0 -1
- package/cjs/components/Table/Table.cjs.map +1 -1
- package/cjs/components/Table/Table.components.cjs +0 -1
- package/cjs/components/Table/Table.components.cjs.map +1 -1
- package/cjs/components/Table/Table.module.cjs.map +1 -1
- package/cjs/components/Table/TableDataRenderer.cjs +0 -1
- package/cjs/components/Table/TableDataRenderer.cjs.map +1 -1
- package/cjs/components/Table/TableScrollContainer.cjs +0 -1
- package/cjs/components/Table/TableScrollContainer.cjs.map +1 -1
- package/cjs/components/TableOfContents/TableOfContents.cjs +0 -1
- package/cjs/components/TableOfContents/TableOfContents.cjs.map +1 -1
- package/cjs/components/Tabs/Tabs.cjs +0 -1
- package/cjs/components/Tabs/Tabs.cjs.map +1 -1
- package/cjs/components/Tabs/Tabs.module.cjs.map +1 -1
- package/cjs/components/Tabs/TabsList/TabsList.cjs +0 -1
- package/cjs/components/Tabs/TabsList/TabsList.cjs.map +1 -1
- package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs +0 -1
- package/cjs/components/Tabs/TabsPanel/TabsPanel.cjs.map +1 -1
- package/cjs/components/Tabs/TabsTab/TabsTab.cjs +0 -1
- package/cjs/components/Tabs/TabsTab/TabsTab.cjs.map +1 -1
- package/cjs/components/TagsInput/TagsInput.cjs +2 -2
- package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
- package/cjs/components/Text/Text.cjs +4 -4
- package/cjs/components/Text/Text.cjs.map +1 -1
- package/cjs/components/Text/Text.module.cjs.map +1 -1
- package/cjs/components/TextInput/TextInput.cjs +0 -1
- package/cjs/components/TextInput/TextInput.cjs.map +1 -1
- package/cjs/components/Textarea/Textarea.cjs +3 -2
- package/cjs/components/Textarea/Textarea.cjs.map +1 -1
- package/cjs/components/ThemeIcon/ThemeIcon.cjs +0 -1
- package/cjs/components/ThemeIcon/ThemeIcon.cjs.map +1 -1
- package/cjs/components/Timeline/Timeline.cjs +0 -1
- package/cjs/components/Timeline/Timeline.cjs.map +1 -1
- package/cjs/components/Timeline/Timeline.module.cjs.map +1 -1
- package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs +0 -1
- package/cjs/components/Timeline/TimelineItem/TimelineItem.cjs.map +1 -1
- package/cjs/components/Title/Title.cjs +0 -1
- package/cjs/components/Title/Title.cjs.map +1 -1
- package/cjs/components/Tooltip/Tooltip.cjs +7 -0
- package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
- package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs +0 -1
- package/cjs/components/Tooltip/TooltipFloating/TooltipFloating.cjs.map +1 -1
- package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs +0 -1
- package/cjs/components/Tooltip/TooltipFloating/use-floating-tooltip.cjs.map +1 -1
- package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs +0 -1
- package/cjs/components/Tooltip/TooltipGroup/TooltipGroup.cjs.map +1 -1
- package/cjs/components/Tooltip/use-tooltip.cjs +6 -3
- package/cjs/components/Tooltip/use-tooltip.cjs.map +1 -1
- package/cjs/components/Transition/Transition.cjs +0 -1
- package/cjs/components/Transition/Transition.cjs.map +1 -1
- package/cjs/components/Tree/FlatTreeNode.cjs +13 -5
- package/cjs/components/Tree/FlatTreeNode.cjs.map +1 -1
- package/cjs/components/Tree/Tree.cjs +0 -1
- package/cjs/components/Tree/Tree.cjs.map +1 -1
- package/cjs/components/Tree/Tree.module.cjs +3 -1
- package/cjs/components/Tree/Tree.module.cjs.map +1 -1
- package/cjs/components/Tree/TreeNode.cjs +6 -2
- package/cjs/components/Tree/TreeNode.cjs.map +1 -1
- package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs +9 -4
- package/cjs/components/Tree/flatten-tree-data/flatten-tree-data.cjs.map +1 -1
- package/cjs/components/Tree/use-tree-node-drag-drop.cjs +13 -5
- package/cjs/components/Tree/use-tree-node-drag-drop.cjs.map +1 -1
- package/cjs/components/Tree/use-tree.cjs +0 -1
- package/cjs/components/Tree/use-tree.cjs.map +1 -1
- package/cjs/components/TreeSelect/TreeSelect.cjs +0 -1
- package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -1
- package/cjs/components/TreeSelect/TreeSelectOption.cjs +0 -1
- package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -1
- package/cjs/components/Typography/Typography.cjs +0 -1
- package/cjs/components/Typography/Typography.cjs.map +1 -1
- package/cjs/components/Typography/Typography.module.cjs.map +1 -1
- package/cjs/components/UnstyledButton/UnstyledButton.cjs +0 -1
- package/cjs/components/UnstyledButton/UnstyledButton.cjs.map +1 -1
- package/cjs/components/UnstyledButton/UnstyledButton.module.cjs.map +1 -1
- package/cjs/components/VisuallyHidden/VisuallyHidden.cjs +0 -1
- package/cjs/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
- package/cjs/core/Box/use-random-classname/use-random-classname.cjs +0 -1
- package/cjs/core/Box/use-random-classname/use-random-classname.cjs.map +1 -1
- package/cjs/core/DirectionProvider/DirectionProvider.cjs +0 -1
- package/cjs/core/DirectionProvider/DirectionProvider.cjs.map +1 -1
- package/cjs/core/InlineStyles/InlineStyles.cjs +0 -1
- package/cjs/core/InlineStyles/InlineStyles.cjs.map +1 -1
- package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs +0 -1
- package/cjs/core/MantineProvider/ColorSchemeScript/ColorSchemeScript.cjs.map +1 -1
- package/cjs/core/MantineProvider/Mantine.context.cjs +0 -1
- package/cjs/core/MantineProvider/Mantine.context.cjs.map +1 -1
- package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs +0 -1
- package/cjs/core/MantineProvider/MantineClasses/MantineClasses.cjs.map +1 -1
- package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs +0 -1
- package/cjs/core/MantineProvider/MantineCssVariables/MantineCssVariables.cjs.map +1 -1
- package/cjs/core/MantineProvider/MantineProvider.cjs +0 -1
- package/cjs/core/MantineProvider/MantineProvider.cjs.map +1 -1
- package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs +0 -1
- package/cjs/core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs.map +1 -1
- package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs +0 -1
- package/cjs/core/MantineProvider/use-mantine-color-scheme/use-computed-color-scheme.cjs.map +1 -1
- package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs +0 -1
- package/cjs/core/MantineProvider/use-mantine-color-scheme/use-mantine-color-scheme.cjs.map +1 -1
- package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs +0 -1
- package/cjs/core/MantineProvider/use-mantine-color-scheme/use-provider-color-scheme.cjs.map +1 -1
- package/cjs/core/MantineProvider/use-matches/use-matches.cjs +0 -1
- package/cjs/core/MantineProvider/use-matches/use-matches.cjs.map +1 -1
- package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs +0 -1
- package/cjs/core/MantineProvider/use-respect-reduce-motion/use-respect-reduce-motion.cjs.map +1 -1
- package/cjs/core/factory/factory.cjs +0 -1
- package/cjs/core/factory/factory.cjs.map +1 -1
- package/cjs/core/factory/polymorphic-factory.cjs +0 -1
- package/cjs/core/factory/polymorphic-factory.cjs.map +1 -1
- package/cjs/core/utils/create-safe-context/create-safe-context.cjs +0 -1
- package/cjs/core/utils/create-safe-context/create-safe-context.cjs.map +1 -1
- package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs +0 -1
- package/cjs/core/utils/create-use-external-events/create-use-external-events.cjs.map +1 -1
- package/cjs/core/utils/get-single-element-child/get-single-element-child.cjs +0 -1
- package/cjs/core/utils/get-single-element-child/get-single-element-child.cjs.map +1 -1
- package/cjs/core/utils/is-element/is-element.cjs +0 -1
- package/cjs/core/utils/is-element/is-element.cjs.map +1 -1
- package/cjs/core/utils/use-hovered/use-hovered.cjs +0 -1
- package/cjs/core/utils/use-hovered/use-hovered.cjs.map +1 -1
- package/cjs/index.cjs +25 -2
- package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs +0 -1
- package/cjs/utils/Floating/FloatingArrow/FloatingArrow.cjs.map +1 -1
- package/cjs/utils/Floating/FloatingArrow/get-arrow-position-styles.cjs +59 -0
- package/cjs/utils/Floating/FloatingArrow/get-arrow-position-styles.cjs.map +1 -1
- package/cjs/utils/Floating/create-context-menu-handlers.cjs +38 -0
- package/cjs/utils/Floating/create-context-menu-handlers.cjs.map +1 -0
- package/cjs/utils/Floating/use-delayed-hover.cjs +0 -1
- package/cjs/utils/Floating/use-delayed-hover.cjs.map +1 -1
- package/cjs/utils/InlineInput/InlineInput.cjs +0 -1
- package/cjs/utils/InlineInput/InlineInput.cjs.map +1 -1
- package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs +0 -1
- package/cjs/utils/InputsGroupFieldset/InputsGroupFieldset.cjs.map +1 -1
- package/esm/components/Autocomplete/Autocomplete.mjs +2 -1
- package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/esm/components/Blockquote/Blockquote.mjs +4 -3
- package/esm/components/Blockquote/Blockquote.mjs.map +1 -1
- package/esm/components/Blockquote/Blockquote.module.mjs.map +1 -1
- package/esm/components/Checkbox/CheckboxIndicator/CheckboxIndicator.mjs.map +1 -1
- package/esm/components/Combobox/Combobox.context.mjs.map +1 -1
- package/esm/components/Combobox/Combobox.mjs +26 -3
- package/esm/components/Combobox/Combobox.mjs.map +1 -1
- package/esm/components/Combobox/Combobox.module.mjs.map +1 -1
- package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.mjs +1 -0
- package/esm/components/Combobox/ComboboxDropdown/ComboboxDropdown.mjs.map +1 -1
- package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs +4 -2
- package/esm/components/Combobox/OptionsDropdown/OptionsDropdown.mjs.map +1 -1
- package/esm/components/Drawer/DrawerRoot.mjs.map +1 -1
- package/esm/components/Input/Input.mjs +12 -2
- package/esm/components/Input/Input.mjs.map +1 -1
- package/esm/components/Input/Input.module.mjs +1 -0
- package/esm/components/Input/Input.module.mjs.map +1 -1
- package/esm/components/Menu/Menu.context.mjs.map +1 -1
- package/esm/components/Menu/Menu.mjs +37 -3
- package/esm/components/Menu/Menu.mjs.map +1 -1
- package/esm/components/Menu/Menu.module.mjs +2 -0
- package/esm/components/Menu/Menu.module.mjs.map +1 -1
- package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.mjs +8 -0
- package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.mjs.map +1 -0
- package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs +30 -0
- package/esm/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.mjs.map +1 -0
- package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs +52 -0
- package/esm/components/Menu/MenuCheckboxItem/MenuCheckboxItem.mjs.map +1 -0
- package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs +27 -0
- package/esm/components/Menu/MenuContextMenu/MenuContextMenu.mjs.map +1 -0
- package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs +9 -1
- package/esm/components/Menu/MenuDropdown/MenuDropdown.mjs.map +1 -1
- package/esm/components/Menu/MenuItem/MenuItem.mjs +18 -1
- package/esm/components/Menu/MenuItem/MenuItem.mjs.map +1 -1
- package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.context.mjs +8 -0
- package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.context.mjs.map +1 -0
- package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.mjs +27 -0
- package/esm/components/Menu/MenuRadioGroup/MenuRadioGroup.mjs.map +1 -0
- package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs +46 -0
- package/esm/components/Menu/MenuRadioItem/MenuRadioItem.mjs.map +1 -0
- package/esm/components/Menu/MenuSearch/MenuSearch.mjs +115 -0
- package/esm/components/Menu/MenuSearch/MenuSearch.mjs.map +1 -0
- package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs +114 -0
- package/esm/components/Menu/MenuSelectableItem/MenuSelectableItem.mjs.map +1 -0
- package/esm/components/Menu/MenuSub/MenuSub.mjs +3 -2
- package/esm/components/Menu/MenuSub/MenuSub.mjs.map +1 -1
- package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs +13 -1
- package/esm/components/Menu/MenuSubDropdown/MenuSubDropdown.mjs.map +1 -1
- package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs +18 -1
- package/esm/components/Menu/MenuSubItem/MenuSubItem.mjs.map +1 -1
- package/esm/components/Menu/use-menu-type-ahead.mjs +72 -0
- package/esm/components/Menu/use-menu-type-ahead.mjs.map +1 -0
- package/esm/components/Modal/ModalRoot.mjs.map +1 -1
- package/esm/components/MultiSelect/MultiSelect.mjs +2 -1
- package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
- package/esm/components/OverflowList/OverflowList.mjs +69 -10
- package/esm/components/OverflowList/OverflowList.mjs.map +1 -1
- package/esm/components/Pagination/Pagination.context.mjs.map +1 -1
- package/esm/components/Pagination/Pagination.mjs +15 -3
- package/esm/components/Pagination/Pagination.mjs.map +1 -1
- package/esm/components/Pagination/Pagination.module.mjs +3 -1
- package/esm/components/Pagination/Pagination.module.mjs.map +1 -1
- package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs +32 -0
- package/esm/components/Pagination/PaginationLabel/PaginationLabel.mjs.map +1 -0
- package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs +3 -1
- package/esm/components/Pagination/PaginationRoot/PaginationRoot.mjs.map +1 -1
- package/esm/components/Pill/Pill.module.mjs.map +1 -1
- package/esm/components/Popover/Popover.mjs +5 -9
- package/esm/components/Popover/Popover.mjs.map +1 -1
- package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs +27 -0
- package/esm/components/Popover/PopoverContextMenu/PopoverContextMenu.mjs.map +1 -0
- package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs +8 -0
- package/esm/components/Popover/PopoverDropdown/PopoverDropdown.mjs.map +1 -1
- package/esm/components/Popover/use-popover.mjs +53 -20
- package/esm/components/Popover/use-popover.mjs.map +1 -1
- package/esm/components/Radio/Radio.mjs +1 -1
- package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs +2 -2
- package/esm/components/Radio/RadioIndicator/RadioIndicator.mjs.map +1 -1
- package/esm/components/Select/Select.mjs +3 -2
- package/esm/components/Select/Select.mjs.map +1 -1
- package/esm/components/Splitter/GripIcon.mjs +52 -0
- package/esm/components/Splitter/GripIcon.mjs.map +1 -0
- package/esm/components/Splitter/Splitter.context.mjs +8 -0
- package/esm/components/Splitter/Splitter.context.mjs.map +1 -0
- package/esm/components/Splitter/Splitter.mjs +111 -0
- package/esm/components/Splitter/Splitter.mjs.map +1 -0
- package/esm/components/Splitter/Splitter.module.mjs +12 -0
- package/esm/components/Splitter/Splitter.module.mjs.map +1 -0
- package/esm/components/Splitter/SplitterPane/SplitterPane.mjs +34 -0
- package/esm/components/Splitter/SplitterPane/SplitterPane.mjs.map +1 -0
- package/esm/components/Stepper/Stepper.module.mjs.map +1 -1
- package/esm/components/Table/Table.module.mjs.map +1 -1
- package/esm/components/Tabs/Tabs.module.mjs.map +1 -1
- package/esm/components/TagsInput/TagsInput.mjs +2 -1
- package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
- package/esm/components/Text/Text.mjs +4 -3
- package/esm/components/Text/Text.mjs.map +1 -1
- package/esm/components/Text/Text.module.mjs.map +1 -1
- package/esm/components/Textarea/Textarea.mjs +3 -1
- package/esm/components/Textarea/Textarea.mjs.map +1 -1
- package/esm/components/Timeline/Timeline.module.mjs.map +1 -1
- package/esm/components/Tooltip/Tooltip.mjs +7 -0
- package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
- package/esm/components/Tooltip/use-tooltip.mjs +8 -4
- package/esm/components/Tooltip/use-tooltip.mjs.map +1 -1
- package/esm/components/Tree/FlatTreeNode.mjs +14 -5
- package/esm/components/Tree/FlatTreeNode.mjs.map +1 -1
- package/esm/components/Tree/Tree.mjs.map +1 -1
- package/esm/components/Tree/Tree.module.mjs +3 -1
- package/esm/components/Tree/Tree.module.mjs.map +1 -1
- package/esm/components/Tree/TreeNode.mjs +6 -1
- package/esm/components/Tree/TreeNode.mjs.map +1 -1
- package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs +9 -4
- package/esm/components/Tree/flatten-tree-data/flatten-tree-data.mjs.map +1 -1
- package/esm/components/Tree/use-tree-node-drag-drop.mjs +13 -4
- package/esm/components/Tree/use-tree-node-drag-drop.mjs.map +1 -1
- package/esm/components/Typography/Typography.module.mjs.map +1 -1
- package/esm/components/UnstyledButton/UnstyledButton.module.mjs.map +1 -1
- package/esm/index.mjs +14 -2
- package/esm/utils/Floating/FloatingArrow/get-arrow-position-styles.mjs +59 -1
- package/esm/utils/Floating/FloatingArrow/get-arrow-position-styles.mjs.map +1 -1
- package/esm/utils/Floating/create-context-menu-handlers.mjs +38 -0
- package/esm/utils/Floating/create-context-menu-handlers.mjs.map +1 -0
- package/lib/components/Blockquote/Blockquote.d.ts +3 -1
- package/lib/components/Checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +1 -1
- package/lib/components/Combobox/Combobox.context.d.ts +1 -0
- package/lib/components/Combobox/Combobox.d.ts +2 -0
- package/lib/components/Combobox/Combobox.types.d.ts +2 -0
- package/lib/components/Combobox/OptionsDropdown/OptionsDropdown.d.ts +3 -1
- package/lib/components/Drawer/DrawerRoot.d.ts +0 -2
- package/lib/components/Input/Input.d.ts +5 -1
- package/lib/components/MaskInput/use-mask-input-props.d.ts +3 -0
- package/lib/components/Menu/Menu.context.d.ts +5 -0
- package/lib/components/Menu/Menu.d.ts +41 -1
- package/lib/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.context.d.ts +5 -0
- package/lib/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.d.ts +14 -0
- package/lib/components/Menu/MenuCheckboxItem/MenuCheckboxItem.d.ts +37 -0
- package/lib/components/Menu/MenuContextMenu/MenuContextMenu.d.ts +10 -0
- package/lib/components/Menu/MenuItem/MenuItem.d.ts +1 -1
- package/lib/components/Menu/MenuRadioGroup/MenuRadioGroup.context.d.ts +5 -0
- package/lib/components/Menu/MenuRadioGroup/MenuRadioGroup.d.ts +14 -0
- package/lib/components/Menu/MenuRadioItem/MenuRadioItem.d.ts +35 -0
- package/lib/components/Menu/MenuSearch/MenuSearch.d.ts +19 -0
- package/lib/components/Menu/MenuSelectableItem/MenuSelectableItem.d.ts +20 -0
- package/lib/components/Menu/MenuSub/MenuSub.d.ts +3 -0
- package/lib/components/Menu/MenuSubItem/MenuSubItem.d.ts +1 -1
- package/lib/components/Menu/index.d.ts +13 -1
- package/lib/components/Menu/use-menu-type-ahead.d.ts +7 -0
- package/lib/components/Modal/ModalRoot.d.ts +0 -2
- package/lib/components/OverflowList/OverflowList.d.ts +7 -2
- package/lib/components/Pagination/Pagination.context.d.ts +1 -0
- package/lib/components/Pagination/Pagination.d.ts +8 -0
- package/lib/components/Pagination/PaginationLabel/PaginationLabel.d.ts +22 -0
- package/lib/components/Pagination/PaginationRoot/PaginationRoot.d.ts +3 -1
- package/lib/components/Pagination/index.d.ts +3 -1
- package/lib/components/Popover/Popover.d.ts +6 -1
- package/lib/components/Popover/PopoverContextMenu/PopoverContextMenu.d.ts +10 -0
- package/lib/components/Popover/index.d.ts +3 -1
- package/lib/components/Popover/use-popover.d.ts +1 -3
- package/lib/components/Radio/RadioIndicator/RadioIndicator.d.ts +1 -1
- package/lib/components/Splitter/GripIcon.d.ts +3 -0
- package/lib/components/Splitter/Splitter.context.d.ts +9 -0
- package/lib/components/Splitter/Splitter.d.ts +57 -0
- package/lib/components/Splitter/SplitterPane/SplitterPane.d.ts +30 -0
- package/lib/components/Splitter/index.d.ts +18 -0
- package/lib/components/Text/Text.d.ts +3 -1
- package/lib/components/Textarea/Textarea.d.ts +4 -0
- package/lib/components/Tree/FlatTreeNode.d.ts +5 -1
- package/lib/components/Tree/Tree.d.ts +2 -0
- package/lib/components/Tree/flatten-tree-data/flatten-tree-data.d.ts +10 -0
- package/lib/components/Tree/index.d.ts +1 -1
- package/lib/components/Tree/use-tree-node-drag-drop.d.ts +2 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/utils/Floating/FloatingArrow/get-arrow-position-styles.d.ts +4 -0
- package/lib/utils/Floating/create-context-menu-handlers.d.ts +18 -0
- package/lib/utils/Floating/index.d.ts +1 -0
- package/lib/utils/Floating/types.d.ts +1 -1
- package/package.json +2 -2
- package/styles/Blockquote.css +1 -0
- package/styles/Blockquote.layer.css +1 -0
- package/styles/Combobox.css +8 -0
- package/styles/Combobox.layer.css +8 -0
- package/styles/Input.css +30 -3
- package/styles/Input.layer.css +30 -3
- package/styles/Menu.css +41 -2
- package/styles/Menu.layer.css +41 -2
- package/styles/Pagination.css +33 -0
- package/styles/Pagination.layer.css +33 -0
- package/styles/Pill.css +3 -5
- package/styles/Pill.layer.css +3 -5
- package/styles/Splitter.css +76 -0
- package/styles/Splitter.layer.css +77 -0
- package/styles/Stepper.css +1 -5
- package/styles/Stepper.layer.css +1 -5
- package/styles/Table.css +1 -5
- package/styles/Table.layer.css +1 -5
- package/styles/Tabs.css +13 -28
- package/styles/Tabs.layer.css +13 -28
- package/styles/Text.css +3 -2
- package/styles/Text.layer.css +3 -2
- package/styles/Timeline.css +14 -42
- package/styles/Timeline.layer.css +14 -42
- package/styles/Tree.css +55 -11
- package/styles/Tree.layer.css +55 -11
- package/styles/Typography.css +1 -1
- package/styles/Typography.layer.css +1 -1
- package/styles/UnstyledButton.css +1 -5
- package/styles/UnstyledButton.layer.css +1 -5
- package/styles.css +282 -109
- package/styles.layer.css +282 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RollingNumber.cjs","names":["createVarsResolver","factory","useProps","useStyles","getRenderSlots","getDigitParts","buildValue","Box","DigitColumn","classes"],"sources":["../../../src/components/RollingNumber/RollingNumber.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { buildValue } from './build-value';\nimport { DigitColumn } from './DigitColumn';\nimport { getDigitParts } from './get-digit-parts';\nimport { getRenderSlots } from './get-render-slots';\nimport classes from './RollingNumber.module.css';\n\nexport type RollingNumberStylesNames = 'root' | 'digit' | 'digitColumn' | 'char';\nexport type RollingNumberCssVariables = {\n root: '--rn-duration' | '--rn-timing-function';\n};\n\nexport interface RollingNumberProps\n extends BoxProps, StylesApiProps<RollingNumberFactory>, ElementProps<'div'> {\n /** Number value to display */\n value: number;\n\n /** Prefix added before the value */\n prefix?: string;\n\n /** Suffix added after the value */\n suffix?: string;\n\n /** Character used as a decimal separator @default '.' */\n decimalSeparator?: string;\n\n /** Character used to separate thousands, set to `true` for `,` @default false */\n thousandSeparator?: string | boolean;\n\n /** Number of decimal places to display */\n decimalScale?: number;\n\n /** If set, trailing zeros are added to match `decimalScale` @default false */\n fixedDecimalScale?: boolean;\n\n /** Animation duration in milliseconds @default 600 */\n animationDuration?: number;\n\n /** CSS timing function for animation @default 'ease' */\n timingFunction?: string;\n\n /** If set, use tabular (monospace) numbers @default true */\n tabularNumbers?: boolean;\n\n /** If set, the root element acts as an `aria-live=\"polite\"` region (`role=\"status\"`) and screen readers announce every value change. When `false`, the root uses `role=\"img\"` so the current value is still accessible but updates are not announced. @default false */\n withLiveRegion?: boolean;\n}\n\nexport type RollingNumberFactory = Factory<{\n props: RollingNumberProps;\n ref: HTMLDivElement;\n stylesNames: RollingNumberStylesNames;\n vars: RollingNumberCssVariables;\n}>;\n\nconst defaultProps = {\n animationDuration: 600,\n timingFunction: 'ease',\n decimalSeparator: '.',\n tabularNumbers: true,\n} satisfies Partial<RollingNumberProps>;\n\nconst varsResolver = createVarsResolver<RollingNumberFactory>(\n (_, { animationDuration, timingFunction }) => ({\n root: {\n '--rn-duration': `${animationDuration}ms`,\n '--rn-timing-function': timingFunction,\n },\n })\n);\n\nexport const RollingNumber = factory<RollingNumberFactory>((_props) => {\n const props = useProps('RollingNumber', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n animationDuration,\n timingFunction,\n tabularNumbers,\n withLiveRegion,\n mod,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RollingNumberFactory>({\n name: 'RollingNumber',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const previousValueRef = useRef(value);\n const previousValue = previousValueRef.current;\n\n useEffect(() => {\n previousValueRef.current = value;\n });\n\n const valueDirection: 'up' | 'down' = value >= previousValue ? 'up' : 'down';\n\n const current = getDigitParts({ value, decimalScale, fixedDecimalScale });\n const prev = getDigitParts({ value: previousValue, decimalScale, fixedDecimalScale });\n\n const slots = getRenderSlots({\n current,\n previous: prev,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n });\n\n const accessibleValue = buildValue({\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n });\n\n return (\n <Box\n {...getStyles('root')}\n mod={[{ 'tabular-numbers': tabularNumbers }, mod]}\n role={withLiveRegion ? 'status' : 'img'}\n aria-label={accessibleValue}\n {...others}\n >\n {slots.map((slot) => {\n if (slot.type === 'digit') {\n return (\n <DigitColumn\n key={slot.key}\n digit={slot.digit}\n previousDigit={slot.previousDigit}\n getStyles={getStyles}\n empty={slot.empty}\n valueDirection={valueDirection}\n />\n );\n }\n\n return (\n <span\n key={slot.key}\n {...getStyles('char')}\n data-empty={slot.empty || undefined}\n aria-hidden=\"true\"\n >\n {slot.char}\n </span>\n );\n })}\n </Box>\n );\n});\n\nRollingNumber.classes = classes;\nRollingNumber.varsResolver = varsResolver;\nRollingNumber.displayName = '@mantine/core/RollingNumber';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RollingNumber.cjs","names":["createVarsResolver","factory","useProps","useStyles","getRenderSlots","getDigitParts","buildValue","Box","DigitColumn","classes"],"sources":["../../../src/components/RollingNumber/RollingNumber.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { buildValue } from './build-value';\nimport { DigitColumn } from './DigitColumn';\nimport { getDigitParts } from './get-digit-parts';\nimport { getRenderSlots } from './get-render-slots';\nimport classes from './RollingNumber.module.css';\n\nexport type RollingNumberStylesNames = 'root' | 'digit' | 'digitColumn' | 'char';\nexport type RollingNumberCssVariables = {\n root: '--rn-duration' | '--rn-timing-function';\n};\n\nexport interface RollingNumberProps\n extends BoxProps, StylesApiProps<RollingNumberFactory>, ElementProps<'div'> {\n /** Number value to display */\n value: number;\n\n /** Prefix added before the value */\n prefix?: string;\n\n /** Suffix added after the value */\n suffix?: string;\n\n /** Character used as a decimal separator @default '.' */\n decimalSeparator?: string;\n\n /** Character used to separate thousands, set to `true` for `,` @default false */\n thousandSeparator?: string | boolean;\n\n /** Number of decimal places to display */\n decimalScale?: number;\n\n /** If set, trailing zeros are added to match `decimalScale` @default false */\n fixedDecimalScale?: boolean;\n\n /** Animation duration in milliseconds @default 600 */\n animationDuration?: number;\n\n /** CSS timing function for animation @default 'ease' */\n timingFunction?: string;\n\n /** If set, use tabular (monospace) numbers @default true */\n tabularNumbers?: boolean;\n\n /** If set, the root element acts as an `aria-live=\"polite\"` region (`role=\"status\"`) and screen readers announce every value change. When `false`, the root uses `role=\"img\"` so the current value is still accessible but updates are not announced. @default false */\n withLiveRegion?: boolean;\n}\n\nexport type RollingNumberFactory = Factory<{\n props: RollingNumberProps;\n ref: HTMLDivElement;\n stylesNames: RollingNumberStylesNames;\n vars: RollingNumberCssVariables;\n}>;\n\nconst defaultProps = {\n animationDuration: 600,\n timingFunction: 'ease',\n decimalSeparator: '.',\n tabularNumbers: true,\n} satisfies Partial<RollingNumberProps>;\n\nconst varsResolver = createVarsResolver<RollingNumberFactory>(\n (_, { animationDuration, timingFunction }) => ({\n root: {\n '--rn-duration': `${animationDuration}ms`,\n '--rn-timing-function': timingFunction,\n },\n })\n);\n\nexport const RollingNumber = factory<RollingNumberFactory>((_props) => {\n const props = useProps('RollingNumber', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n animationDuration,\n timingFunction,\n tabularNumbers,\n withLiveRegion,\n mod,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<RollingNumberFactory>({\n name: 'RollingNumber',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const previousValueRef = useRef(value);\n const previousValue = previousValueRef.current;\n\n useEffect(() => {\n previousValueRef.current = value;\n });\n\n const valueDirection: 'up' | 'down' = value >= previousValue ? 'up' : 'down';\n\n const current = getDigitParts({ value, decimalScale, fixedDecimalScale });\n const prev = getDigitParts({ value: previousValue, decimalScale, fixedDecimalScale });\n\n const slots = getRenderSlots({\n current,\n previous: prev,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n });\n\n const accessibleValue = buildValue({\n value,\n prefix,\n suffix,\n decimalSeparator,\n thousandSeparator,\n decimalScale,\n fixedDecimalScale,\n });\n\n return (\n <Box\n {...getStyles('root')}\n mod={[{ 'tabular-numbers': tabularNumbers }, mod]}\n role={withLiveRegion ? 'status' : 'img'}\n aria-label={accessibleValue}\n {...others}\n >\n {slots.map((slot) => {\n if (slot.type === 'digit') {\n return (\n <DigitColumn\n key={slot.key}\n digit={slot.digit}\n previousDigit={slot.previousDigit}\n getStyles={getStyles}\n empty={slot.empty}\n valueDirection={valueDirection}\n />\n );\n }\n\n return (\n <span\n key={slot.key}\n {...getStyles('char')}\n data-empty={slot.empty || undefined}\n aria-hidden=\"true\"\n >\n {slot.char}\n </span>\n );\n })}\n </Box>\n );\n});\n\nRollingNumber.classes = classes;\nRollingNumber.varsResolver = varsResolver;\nRollingNumber.displayName = '@mantine/core/RollingNumber';\n"],"mappings":";;;;;;;;;;;;;;AAkEA,MAAM,eAAe;CACnB,mBAAmB;CACnB,gBAAgB;CAChB,kBAAkB;CAClB,gBAAgB;AAClB;AAEA,MAAM,eAAeA,6BAAAA,oBAClB,GAAG,EAAE,mBAAmB,sBAAsB,EAC7C,MAAM;CACJ,iBAAiB,GAAG,kBAAkB;CACtC,wBAAwB;AAC1B,EACF,EACF;AAEA,MAAa,gBAAgBC,gBAAAA,SAA+B,WAAW;CACrE,MAAM,QAAQC,kBAAAA,SAAS,iBAAiB,cAAc,MAAM;CAC5D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,OACA,QACA,QACA,kBACA,mBACA,cACA,mBACA,mBACA,gBACA,gBACA,gBACA,KACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAAgC;EAChD,MAAM;EACN,SAAA,6BAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,oBAAA,GAAA,MAAA,QAA0B,KAAK;CACrC,MAAM,gBAAgB,iBAAiB;CAEvC,CAAA,GAAA,MAAA,iBAAgB;EACd,iBAAiB,UAAU;CAC7B,CAAC;CAED,MAAM,iBAAgC,SAAS,gBAAgB,OAAO;CAKtE,MAAM,QAAQC,yBAAAA,eAAe;EAC3B,SAJcC,wBAAAA,cAAc;GAAE;GAAO;GAAc;EAAkB,CAI/D;EACN,UAJWA,wBAAAA,cAAc;GAAE,OAAO;GAAe;GAAc;EAAkB,CAIpE;EACb;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,kBAAkBC,oBAAAA,WAAW;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EACE,GAAI,UAAU,MAAM;EACpB,KAAK,CAAC,EAAE,mBAAmB,eAAe,GAAG,GAAG;EAChD,MAAM,iBAAiB,WAAW;EAClC,cAAY;EACZ,GAAI;YAEH,MAAM,KAAK,SAAS;GACnB,IAAI,KAAK,SAAS,SAChB,OACE,iBAAA,GAAA,kBAAA,KAACC,oBAAAA,aAAD;IAEE,OAAO,KAAK;IACZ,eAAe,KAAK;IACT;IACX,OAAO,KAAK;IACI;GACjB,GANM,KAAK,GAMX;GAIL,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAEE,GAAI,UAAU,MAAM;IACpB,cAAY,KAAK,SAAS,KAAA;IAC1B,eAAY;cAEX,KAAK;GACF,GANC,KAAK,GAMN;EAEV,CAAC;CACE,CAAA;AAET,CAAC;AAED,cAAc,UAAUC,6BAAAA;AACxB,cAAc,eAAe;AAC7B,cAAc,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_rem = require("../../core/utils/units-converters/rem.cjs");
|
|
4
3
|
const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs");
|
|
5
4
|
const require_use_props = require("../../core/MantineProvider/use-props/use-props.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollArea.cjs","names":["createVarsResolver","rem","factory","useProps","useStyles","ScrollAreaRoot","ScrollAreaViewport","ScrollAreaScrollbar","ScrollAreaThumb","ScrollAreaCorner","Box","classes"],"sources":["../../../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import { useCallback, useEffectEvent, useRef, useState } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { useIsomorphicEffect } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { ScrollAreaCorner } from './ScrollAreaCorner/ScrollAreaCorner';\nimport { ScrollAreaRoot } from './ScrollAreaRoot/ScrollAreaRoot';\nimport { ScrollAreaScrollbar } from './ScrollAreaScrollbar/ScrollAreaScrollbar';\nimport { ScrollAreaThumb } from './ScrollAreaThumb/ScrollAreaThumb';\nimport { ScrollAreaViewport } from './ScrollAreaViewport/ScrollAreaViewport';\nimport { useResizeObserver } from './use-resize-observer';\nimport classes from './ScrollArea.module.css';\n\nexport type ScrollAreaStylesNames =\n | 'root'\n | 'viewport'\n | 'scrollbar'\n | 'thumb'\n | 'corner'\n | 'content';\n\nexport type ScrollAreaCssVariables = {\n root: '--scrollarea-scrollbar-size';\n};\n\nexport interface ScrollAreaProps\n extends BoxProps, StylesApiProps<ScrollAreaFactory>, ElementProps<'div'> {\n /** Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem) */\n scrollbarSize?: number | string;\n\n /**\n * Defines scrollbars behavior\n * - `'hover'` – scrollbars visible on hover (default)\n * - `'scroll'` – scrollbars visible during scrolling\n * - `'auto'` – scrollbars visible only when content overflows (like CSS overflow: auto)\n * - `'always'` – scrollbars always visible, even when content doesn't overflow\n * - `'never'` – scrollbars always hidden\n * @default 'hover'\n * */\n type?: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n\n /** Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll` @default 1000 */\n scrollHideDelay?: number;\n\n /**\n * Axis at which scrollbars must be rendered\n * - `'x'` - horizontal scrollbar only\n * - `'y'` - vertical scrollbar only\n * - `'xy'` - both scrollbars\n * - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)\n * @default 'xy'\n */\n scrollbars?: 'x' | 'y' | 'xy' | false;\n\n /**\n * Determines whether scrollbars should be offset with padding on given axis\n * - `true` - adds padding to offset both scrollbars (always)\n * - `'x'` - adds padding to offset horizontal scrollbar (always)\n * - `'y'` - adds padding to offset vertical scrollbar (always)\n * - `'present'` - adds padding only when scrollbars are visible (dynamic)\n * @default false\n */\n offsetScrollbars?: boolean | 'x' | 'y' | 'present';\n\n /** Assigns viewport element (scrollable container) ref */\n viewportRef?: React.Ref<HTMLDivElement>;\n\n /** Props passed down to the viewport element */\n viewportProps?: React.ComponentProps<'div'>;\n\n /** Called with current position (`x` and `y` coordinates) when viewport is scrolled */\n onScrollPositionChange?: (position: { x: number; y: number }) => void;\n\n /**\n * Called when scrollarea is scrolled to the bottom (within 0.8px tolerance for sub-pixel rendering)\n */\n onBottomReached?: () => void;\n\n /** Called when scrollarea is scrolled all the way to the top */\n onTopReached?: () => void;\n\n /** Called when scrollarea is scrolled to the left (within 0.8px tolerance for sub-pixel rendering) */\n onLeftReached?: () => void;\n\n /** Called when scrollarea is scrolled to the right (within 0.8px tolerance for sub-pixel rendering) */\n onRightReached?: () => void;\n\n /** Defines `overscroll-behavior` of the viewport */\n overscrollBehavior?: React.CSSProperties['overscrollBehavior'];\n\n /** Initial scroll position set on mount */\n startScrollPosition?: { x?: number; y?: number };\n}\n\nexport interface ScrollAreaAutosizeProps extends ScrollAreaProps {\n /** Called when content overflows due to max-height, making the container scrollable */\n onOverflowChange?: (overflowing: boolean) => void;\n}\n\nexport type ScrollAreaFactory = Factory<{\n props: ScrollAreaProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaStylesNames;\n vars: ScrollAreaCssVariables;\n staticComponents: {\n Autosize: typeof ScrollAreaAutosize;\n };\n}>;\n\nexport type ScrollAreaAutosizeFactory = Factory<{\n props: ScrollAreaAutosizeProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaStylesNames;\n vars: ScrollAreaCssVariables;\n}>;\n\nconst defaultProps = {\n scrollHideDelay: 1000,\n type: 'hover',\n scrollbars: 'xy',\n} satisfies Partial<ScrollAreaProps>;\n\nconst varsResolver = createVarsResolver<ScrollAreaFactory>(\n (_, { scrollbarSize, overscrollBehavior, scrollbars }) => {\n let overrideOverscrollBehavior = overscrollBehavior;\n\n if (overscrollBehavior && scrollbars) {\n if (scrollbars === 'x') {\n overrideOverscrollBehavior = `${overscrollBehavior} auto`;\n } else if (scrollbars === 'y') {\n overrideOverscrollBehavior = `auto ${overscrollBehavior}`;\n }\n }\n\n return {\n root: {\n '--scrollarea-scrollbar-size': rem(scrollbarSize),\n '--scrollarea-over-scroll-behavior': overrideOverscrollBehavior,\n },\n };\n }\n);\n\nexport const ScrollArea = factory<ScrollAreaFactory>((_props) => {\n const props = useProps('ScrollArea', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n scrollbarSize,\n vars,\n type,\n scrollHideDelay,\n viewportProps,\n viewportRef,\n onScrollPositionChange,\n children,\n offsetScrollbars,\n scrollbars,\n onBottomReached,\n onTopReached,\n onLeftReached,\n onRightReached,\n overscrollBehavior,\n startScrollPosition,\n attributes,\n ...others\n } = props;\n\n const [scrollbarHovered, setScrollbarHovered] = useState(false);\n const [verticalThumbVisible, setVerticalThumbVisible] = useState(false);\n const [horizontalThumbVisible, setHorizontalThumbVisible] = useState(false);\n\n // Refs to track previous boundary states\n const prevAtTopRef = useRef(true);\n const prevAtBottomRef = useRef(false);\n const prevAtLeftRef = useRef(true);\n const prevAtRightRef = useRef(false);\n\n const getStyles = useStyles<ScrollAreaFactory>({\n name: 'ScrollArea',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const localViewportRef = useRef<HTMLDivElement>(null);\n const [viewportElement, setViewportElement] = useState<HTMLDivElement | null>(null);\n const viewportCallbackRef = useCallback((node: HTMLDivElement | null) => {\n setViewportElement((current) => (current === node ? current : node));\n }, []);\n const combinedViewportRef = useMergeRefs([viewportRef, localViewportRef, viewportCallbackRef]);\n\n useResizeObserver(offsetScrollbars === 'present' ? viewportElement : null, () => {\n const element = localViewportRef.current;\n if (element) {\n setVerticalThumbVisible(element.scrollHeight > element.clientHeight);\n setHorizontalThumbVisible(element.scrollWidth > element.clientWidth);\n }\n });\n\n useIsomorphicEffect(() => {\n if (startScrollPosition && localViewportRef.current) {\n localViewportRef.current.scrollTo({\n left: startScrollPosition.x ?? 0,\n top: startScrollPosition.y ?? 0,\n });\n }\n }, []);\n\n return (\n <ScrollAreaRoot\n getStyles={getStyles}\n type={type === 'never' ? 'always' : type}\n scrollHideDelay={scrollHideDelay}\n scrollbars={scrollbars}\n {...getStyles('root')}\n {...others}\n >\n <ScrollAreaViewport\n {...viewportProps}\n {...getStyles('viewport', { style: viewportProps?.style })}\n ref={combinedViewportRef}\n data-offset-scrollbars={offsetScrollbars === true ? 'xy' : offsetScrollbars || undefined}\n data-scrollbars={scrollbars || undefined}\n data-horizontal-hidden={\n offsetScrollbars === 'present' && !horizontalThumbVisible ? 'true' : undefined\n }\n data-vertical-hidden={\n offsetScrollbars === 'present' && !verticalThumbVisible ? 'true' : undefined\n }\n onScroll={(e) => {\n viewportProps?.onScroll?.(e);\n onScrollPositionChange?.({ x: e.currentTarget.scrollLeft, y: e.currentTarget.scrollTop });\n const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } =\n e.currentTarget;\n\n // Vertical boundaries\n // threshold of -0.8 is required for some browsers that use sub-pixel rendering, specifically when zoomed out.\n const isAtBottom = scrollTop - (scrollHeight - clientHeight) >= -0.8;\n const isAtTop = scrollTop === 0;\n\n if (isAtBottom && !prevAtBottomRef.current) {\n onBottomReached?.();\n }\n if (isAtTop && !prevAtTopRef.current) {\n onTopReached?.();\n }\n\n prevAtBottomRef.current = isAtBottom;\n prevAtTopRef.current = isAtTop;\n\n // Horizontal boundaries\n const isAtRight = scrollLeft - (scrollWidth - clientWidth) >= -0.8;\n const isAtLeft = scrollLeft === 0;\n\n if (isAtRight && !prevAtRightRef.current) {\n onRightReached?.();\n }\n if (isAtLeft && !prevAtLeftRef.current) {\n onLeftReached?.();\n }\n\n prevAtRightRef.current = isAtRight;\n prevAtLeftRef.current = isAtLeft;\n }}\n >\n {children}\n </ScrollAreaViewport>\n\n {(scrollbars === 'xy' || scrollbars === 'x') && (\n <ScrollAreaScrollbar\n {...getStyles('scrollbar')}\n orientation=\"horizontal\"\n data-hidden={\n type === 'never' || (offsetScrollbars === 'present' && !horizontalThumbVisible)\n ? true\n : undefined\n }\n forceMount\n onMouseEnter={() => setScrollbarHovered(true)}\n onMouseLeave={() => setScrollbarHovered(false)}\n >\n <ScrollAreaThumb {...getStyles('thumb')} />\n </ScrollAreaScrollbar>\n )}\n\n {(scrollbars === 'xy' || scrollbars === 'y') && (\n <ScrollAreaScrollbar\n {...getStyles('scrollbar')}\n orientation=\"vertical\"\n data-hidden={\n type === 'never' || (offsetScrollbars === 'present' && !verticalThumbVisible)\n ? true\n : undefined\n }\n forceMount\n onMouseEnter={() => setScrollbarHovered(true)}\n onMouseLeave={() => setScrollbarHovered(false)}\n >\n <ScrollAreaThumb {...getStyles('thumb')} />\n </ScrollAreaScrollbar>\n )}\n\n <ScrollAreaCorner\n {...getStyles('corner')}\n data-hovered={scrollbarHovered || undefined}\n data-hidden={type === 'never' || undefined}\n />\n </ScrollAreaRoot>\n );\n});\n\nScrollArea.displayName = '@mantine/core/ScrollArea';\n\nexport const ScrollAreaAutosize = factory<ScrollAreaAutosizeFactory>((props) => {\n const {\n children,\n classNames,\n styles,\n scrollbarSize,\n scrollHideDelay,\n type,\n dir,\n offsetScrollbars,\n overscrollBehavior,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n variant,\n viewportProps,\n scrollbars,\n style,\n vars,\n onBottomReached,\n onTopReached,\n startScrollPosition,\n onOverflowChange,\n ...others\n } = useProps('ScrollAreaAutosize', defaultProps, props as ScrollAreaAutosizeProps);\n\n // Overflow detection (Autosize-only)\n const viewportObserverRef = useRef<HTMLDivElement>(null);\n const [viewportObserverElement, setViewportObserverElement] = useState<HTMLDivElement | null>(\n null\n );\n const viewportObserverCallbackRef = useCallback((node: HTMLDivElement | null) => {\n setViewportObserverElement((current) => (current === node ? current : node));\n }, []);\n const combinedViewportRef = useMergeRefs([\n viewportRef,\n viewportObserverRef,\n viewportObserverCallbackRef,\n ]);\n\n const overflowingRef = useRef(false);\n const didMountRef = useRef(false);\n\n const handleOverflowCheck = useEffectEvent(() => {\n const el = viewportObserverRef.current;\n if (!el || !onOverflowChange) {\n return;\n }\n\n const isOverflowing = el.scrollHeight > el.clientHeight;\n\n if (isOverflowing !== overflowingRef.current) {\n if (didMountRef.current) {\n onOverflowChange(isOverflowing);\n } else {\n didMountRef.current = true;\n if (isOverflowing) {\n onOverflowChange(true);\n }\n }\n\n overflowingRef.current = isOverflowing;\n }\n });\n\n useResizeObserver(onOverflowChange ? viewportObserverElement : null, handleOverflowCheck);\n\n return (\n <Box {...others} variant={variant} style={[{ display: 'flex', overflow: 'hidden' }, style]}>\n <Box\n style={{\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n ...(scrollbars === 'y' && { minWidth: 0 }),\n ...(scrollbars === 'x' && { minHeight: 0 }),\n ...(scrollbars === 'xy' && { minWidth: 0, minHeight: 0 }),\n ...(scrollbars === false && { minWidth: 0, minHeight: 0 }),\n }}\n >\n <ScrollArea\n classNames={classNames}\n styles={styles}\n scrollHideDelay={scrollHideDelay}\n scrollbarSize={scrollbarSize}\n type={type}\n dir={dir}\n offsetScrollbars={offsetScrollbars}\n overscrollBehavior={overscrollBehavior}\n viewportRef={combinedViewportRef}\n onScrollPositionChange={onScrollPositionChange}\n unstyled={unstyled}\n variant={variant}\n viewportProps={viewportProps}\n vars={vars}\n scrollbars={scrollbars}\n onBottomReached={onBottomReached}\n onTopReached={onTopReached}\n startScrollPosition={startScrollPosition}\n data-autosize=\"true\"\n >\n {children}\n </ScrollArea>\n </Box>\n </Box>\n );\n});\n\nScrollArea.classes = classes;\nScrollArea.varsResolver = varsResolver;\nScrollAreaAutosize.displayName = '@mantine/core/ScrollAreaAutosize';\nScrollAreaAutosize.classes = classes;\nScrollArea.Autosize = ScrollAreaAutosize;\n\nexport namespace ScrollArea {\n export type Props = ScrollAreaProps;\n export type AutosizeProps = ScrollAreaAutosizeProps;\n export type StylesNames = ScrollAreaStylesNames;\n export type CssVariables = ScrollAreaCssVariables;\n export type Factory = ScrollAreaFactory;\n\n export namespace Autosize {\n export type Props = ScrollAreaAutosizeProps;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScrollArea.cjs","names":["createVarsResolver","rem","factory","useProps","useStyles","ScrollAreaRoot","ScrollAreaViewport","ScrollAreaScrollbar","ScrollAreaThumb","ScrollAreaCorner","Box","classes"],"sources":["../../../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import { useCallback, useEffectEvent, useRef, useState } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { useIsomorphicEffect } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { ScrollAreaCorner } from './ScrollAreaCorner/ScrollAreaCorner';\nimport { ScrollAreaRoot } from './ScrollAreaRoot/ScrollAreaRoot';\nimport { ScrollAreaScrollbar } from './ScrollAreaScrollbar/ScrollAreaScrollbar';\nimport { ScrollAreaThumb } from './ScrollAreaThumb/ScrollAreaThumb';\nimport { ScrollAreaViewport } from './ScrollAreaViewport/ScrollAreaViewport';\nimport { useResizeObserver } from './use-resize-observer';\nimport classes from './ScrollArea.module.css';\n\nexport type ScrollAreaStylesNames =\n | 'root'\n | 'viewport'\n | 'scrollbar'\n | 'thumb'\n | 'corner'\n | 'content';\n\nexport type ScrollAreaCssVariables = {\n root: '--scrollarea-scrollbar-size';\n};\n\nexport interface ScrollAreaProps\n extends BoxProps, StylesApiProps<ScrollAreaFactory>, ElementProps<'div'> {\n /** Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem) */\n scrollbarSize?: number | string;\n\n /**\n * Defines scrollbars behavior\n * - `'hover'` – scrollbars visible on hover (default)\n * - `'scroll'` – scrollbars visible during scrolling\n * - `'auto'` – scrollbars visible only when content overflows (like CSS overflow: auto)\n * - `'always'` – scrollbars always visible, even when content doesn't overflow\n * - `'never'` – scrollbars always hidden\n * @default 'hover'\n * */\n type?: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n\n /** Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll` @default 1000 */\n scrollHideDelay?: number;\n\n /**\n * Axis at which scrollbars must be rendered\n * - `'x'` - horizontal scrollbar only\n * - `'y'` - vertical scrollbar only\n * - `'xy'` - both scrollbars\n * - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)\n * @default 'xy'\n */\n scrollbars?: 'x' | 'y' | 'xy' | false;\n\n /**\n * Determines whether scrollbars should be offset with padding on given axis\n * - `true` - adds padding to offset both scrollbars (always)\n * - `'x'` - adds padding to offset horizontal scrollbar (always)\n * - `'y'` - adds padding to offset vertical scrollbar (always)\n * - `'present'` - adds padding only when scrollbars are visible (dynamic)\n * @default false\n */\n offsetScrollbars?: boolean | 'x' | 'y' | 'present';\n\n /** Assigns viewport element (scrollable container) ref */\n viewportRef?: React.Ref<HTMLDivElement>;\n\n /** Props passed down to the viewport element */\n viewportProps?: React.ComponentProps<'div'>;\n\n /** Called with current position (`x` and `y` coordinates) when viewport is scrolled */\n onScrollPositionChange?: (position: { x: number; y: number }) => void;\n\n /**\n * Called when scrollarea is scrolled to the bottom (within 0.8px tolerance for sub-pixel rendering)\n */\n onBottomReached?: () => void;\n\n /** Called when scrollarea is scrolled all the way to the top */\n onTopReached?: () => void;\n\n /** Called when scrollarea is scrolled to the left (within 0.8px tolerance for sub-pixel rendering) */\n onLeftReached?: () => void;\n\n /** Called when scrollarea is scrolled to the right (within 0.8px tolerance for sub-pixel rendering) */\n onRightReached?: () => void;\n\n /** Defines `overscroll-behavior` of the viewport */\n overscrollBehavior?: React.CSSProperties['overscrollBehavior'];\n\n /** Initial scroll position set on mount */\n startScrollPosition?: { x?: number; y?: number };\n}\n\nexport interface ScrollAreaAutosizeProps extends ScrollAreaProps {\n /** Called when content overflows due to max-height, making the container scrollable */\n onOverflowChange?: (overflowing: boolean) => void;\n}\n\nexport type ScrollAreaFactory = Factory<{\n props: ScrollAreaProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaStylesNames;\n vars: ScrollAreaCssVariables;\n staticComponents: {\n Autosize: typeof ScrollAreaAutosize;\n };\n}>;\n\nexport type ScrollAreaAutosizeFactory = Factory<{\n props: ScrollAreaAutosizeProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaStylesNames;\n vars: ScrollAreaCssVariables;\n}>;\n\nconst defaultProps = {\n scrollHideDelay: 1000,\n type: 'hover',\n scrollbars: 'xy',\n} satisfies Partial<ScrollAreaProps>;\n\nconst varsResolver = createVarsResolver<ScrollAreaFactory>(\n (_, { scrollbarSize, overscrollBehavior, scrollbars }) => {\n let overrideOverscrollBehavior = overscrollBehavior;\n\n if (overscrollBehavior && scrollbars) {\n if (scrollbars === 'x') {\n overrideOverscrollBehavior = `${overscrollBehavior} auto`;\n } else if (scrollbars === 'y') {\n overrideOverscrollBehavior = `auto ${overscrollBehavior}`;\n }\n }\n\n return {\n root: {\n '--scrollarea-scrollbar-size': rem(scrollbarSize),\n '--scrollarea-over-scroll-behavior': overrideOverscrollBehavior,\n },\n };\n }\n);\n\nexport const ScrollArea = factory<ScrollAreaFactory>((_props) => {\n const props = useProps('ScrollArea', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n scrollbarSize,\n vars,\n type,\n scrollHideDelay,\n viewportProps,\n viewportRef,\n onScrollPositionChange,\n children,\n offsetScrollbars,\n scrollbars,\n onBottomReached,\n onTopReached,\n onLeftReached,\n onRightReached,\n overscrollBehavior,\n startScrollPosition,\n attributes,\n ...others\n } = props;\n\n const [scrollbarHovered, setScrollbarHovered] = useState(false);\n const [verticalThumbVisible, setVerticalThumbVisible] = useState(false);\n const [horizontalThumbVisible, setHorizontalThumbVisible] = useState(false);\n\n // Refs to track previous boundary states\n const prevAtTopRef = useRef(true);\n const prevAtBottomRef = useRef(false);\n const prevAtLeftRef = useRef(true);\n const prevAtRightRef = useRef(false);\n\n const getStyles = useStyles<ScrollAreaFactory>({\n name: 'ScrollArea',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n const localViewportRef = useRef<HTMLDivElement>(null);\n const [viewportElement, setViewportElement] = useState<HTMLDivElement | null>(null);\n const viewportCallbackRef = useCallback((node: HTMLDivElement | null) => {\n setViewportElement((current) => (current === node ? current : node));\n }, []);\n const combinedViewportRef = useMergeRefs([viewportRef, localViewportRef, viewportCallbackRef]);\n\n useResizeObserver(offsetScrollbars === 'present' ? viewportElement : null, () => {\n const element = localViewportRef.current;\n if (element) {\n setVerticalThumbVisible(element.scrollHeight > element.clientHeight);\n setHorizontalThumbVisible(element.scrollWidth > element.clientWidth);\n }\n });\n\n useIsomorphicEffect(() => {\n if (startScrollPosition && localViewportRef.current) {\n localViewportRef.current.scrollTo({\n left: startScrollPosition.x ?? 0,\n top: startScrollPosition.y ?? 0,\n });\n }\n }, []);\n\n return (\n <ScrollAreaRoot\n getStyles={getStyles}\n type={type === 'never' ? 'always' : type}\n scrollHideDelay={scrollHideDelay}\n scrollbars={scrollbars}\n {...getStyles('root')}\n {...others}\n >\n <ScrollAreaViewport\n {...viewportProps}\n {...getStyles('viewport', { style: viewportProps?.style })}\n ref={combinedViewportRef}\n data-offset-scrollbars={offsetScrollbars === true ? 'xy' : offsetScrollbars || undefined}\n data-scrollbars={scrollbars || undefined}\n data-horizontal-hidden={\n offsetScrollbars === 'present' && !horizontalThumbVisible ? 'true' : undefined\n }\n data-vertical-hidden={\n offsetScrollbars === 'present' && !verticalThumbVisible ? 'true' : undefined\n }\n onScroll={(e) => {\n viewportProps?.onScroll?.(e);\n onScrollPositionChange?.({ x: e.currentTarget.scrollLeft, y: e.currentTarget.scrollTop });\n const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth } =\n e.currentTarget;\n\n // Vertical boundaries\n // threshold of -0.8 is required for some browsers that use sub-pixel rendering, specifically when zoomed out.\n const isAtBottom = scrollTop - (scrollHeight - clientHeight) >= -0.8;\n const isAtTop = scrollTop === 0;\n\n if (isAtBottom && !prevAtBottomRef.current) {\n onBottomReached?.();\n }\n if (isAtTop && !prevAtTopRef.current) {\n onTopReached?.();\n }\n\n prevAtBottomRef.current = isAtBottom;\n prevAtTopRef.current = isAtTop;\n\n // Horizontal boundaries\n const isAtRight = scrollLeft - (scrollWidth - clientWidth) >= -0.8;\n const isAtLeft = scrollLeft === 0;\n\n if (isAtRight && !prevAtRightRef.current) {\n onRightReached?.();\n }\n if (isAtLeft && !prevAtLeftRef.current) {\n onLeftReached?.();\n }\n\n prevAtRightRef.current = isAtRight;\n prevAtLeftRef.current = isAtLeft;\n }}\n >\n {children}\n </ScrollAreaViewport>\n\n {(scrollbars === 'xy' || scrollbars === 'x') && (\n <ScrollAreaScrollbar\n {...getStyles('scrollbar')}\n orientation=\"horizontal\"\n data-hidden={\n type === 'never' || (offsetScrollbars === 'present' && !horizontalThumbVisible)\n ? true\n : undefined\n }\n forceMount\n onMouseEnter={() => setScrollbarHovered(true)}\n onMouseLeave={() => setScrollbarHovered(false)}\n >\n <ScrollAreaThumb {...getStyles('thumb')} />\n </ScrollAreaScrollbar>\n )}\n\n {(scrollbars === 'xy' || scrollbars === 'y') && (\n <ScrollAreaScrollbar\n {...getStyles('scrollbar')}\n orientation=\"vertical\"\n data-hidden={\n type === 'never' || (offsetScrollbars === 'present' && !verticalThumbVisible)\n ? true\n : undefined\n }\n forceMount\n onMouseEnter={() => setScrollbarHovered(true)}\n onMouseLeave={() => setScrollbarHovered(false)}\n >\n <ScrollAreaThumb {...getStyles('thumb')} />\n </ScrollAreaScrollbar>\n )}\n\n <ScrollAreaCorner\n {...getStyles('corner')}\n data-hovered={scrollbarHovered || undefined}\n data-hidden={type === 'never' || undefined}\n />\n </ScrollAreaRoot>\n );\n});\n\nScrollArea.displayName = '@mantine/core/ScrollArea';\n\nexport const ScrollAreaAutosize = factory<ScrollAreaAutosizeFactory>((props) => {\n const {\n children,\n classNames,\n styles,\n scrollbarSize,\n scrollHideDelay,\n type,\n dir,\n offsetScrollbars,\n overscrollBehavior,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n variant,\n viewportProps,\n scrollbars,\n style,\n vars,\n onBottomReached,\n onTopReached,\n startScrollPosition,\n onOverflowChange,\n ...others\n } = useProps('ScrollAreaAutosize', defaultProps, props as ScrollAreaAutosizeProps);\n\n // Overflow detection (Autosize-only)\n const viewportObserverRef = useRef<HTMLDivElement>(null);\n const [viewportObserverElement, setViewportObserverElement] = useState<HTMLDivElement | null>(\n null\n );\n const viewportObserverCallbackRef = useCallback((node: HTMLDivElement | null) => {\n setViewportObserverElement((current) => (current === node ? current : node));\n }, []);\n const combinedViewportRef = useMergeRefs([\n viewportRef,\n viewportObserverRef,\n viewportObserverCallbackRef,\n ]);\n\n const overflowingRef = useRef(false);\n const didMountRef = useRef(false);\n\n const handleOverflowCheck = useEffectEvent(() => {\n const el = viewportObserverRef.current;\n if (!el || !onOverflowChange) {\n return;\n }\n\n const isOverflowing = el.scrollHeight > el.clientHeight;\n\n if (isOverflowing !== overflowingRef.current) {\n if (didMountRef.current) {\n onOverflowChange(isOverflowing);\n } else {\n didMountRef.current = true;\n if (isOverflowing) {\n onOverflowChange(true);\n }\n }\n\n overflowingRef.current = isOverflowing;\n }\n });\n\n useResizeObserver(onOverflowChange ? viewportObserverElement : null, handleOverflowCheck);\n\n return (\n <Box {...others} variant={variant} style={[{ display: 'flex', overflow: 'hidden' }, style]}>\n <Box\n style={{\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n ...(scrollbars === 'y' && { minWidth: 0 }),\n ...(scrollbars === 'x' && { minHeight: 0 }),\n ...(scrollbars === 'xy' && { minWidth: 0, minHeight: 0 }),\n ...(scrollbars === false && { minWidth: 0, minHeight: 0 }),\n }}\n >\n <ScrollArea\n classNames={classNames}\n styles={styles}\n scrollHideDelay={scrollHideDelay}\n scrollbarSize={scrollbarSize}\n type={type}\n dir={dir}\n offsetScrollbars={offsetScrollbars}\n overscrollBehavior={overscrollBehavior}\n viewportRef={combinedViewportRef}\n onScrollPositionChange={onScrollPositionChange}\n unstyled={unstyled}\n variant={variant}\n viewportProps={viewportProps}\n vars={vars}\n scrollbars={scrollbars}\n onBottomReached={onBottomReached}\n onTopReached={onTopReached}\n startScrollPosition={startScrollPosition}\n data-autosize=\"true\"\n >\n {children}\n </ScrollArea>\n </Box>\n </Box>\n );\n});\n\nScrollArea.classes = classes;\nScrollArea.varsResolver = varsResolver;\nScrollAreaAutosize.displayName = '@mantine/core/ScrollAreaAutosize';\nScrollAreaAutosize.classes = classes;\nScrollArea.Autosize = ScrollAreaAutosize;\n\nexport namespace ScrollArea {\n export type Props = ScrollAreaProps;\n export type AutosizeProps = ScrollAreaAutosizeProps;\n export type StylesNames = ScrollAreaStylesNames;\n export type CssVariables = ScrollAreaCssVariables;\n export type Factory = ScrollAreaFactory;\n\n export namespace Autosize {\n export type Props = ScrollAreaAutosizeProps;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaCorner.cjs","names":["useScrollAreaContext"],"sources":["../../../../src/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\n\ninterface ScrollAreaCornerProps extends React.ComponentProps<'div'> {}\n\nexport function Corner(props: ScrollAreaCornerProps) {\n const { style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(ctx.scrollbarX, () => {\n const h = ctx.scrollbarX?.offsetHeight || 0;\n ctx.onCornerHeightChange(h);\n setHeight(h);\n });\n\n useResizeObserver(ctx.scrollbarY, () => {\n const w = ctx.scrollbarY?.offsetWidth || 0;\n ctx.onCornerWidthChange(w);\n setWidth(w);\n });\n\n return hasSize ? <div {...others} style={{ ...style, width, height }} /> : null;\n}\n\nexport function ScrollAreaCorner(props: ScrollAreaCornerProps) {\n const ctx = useScrollAreaContext();\n const hasBothScrollbarsVisible = Boolean(ctx.scrollbarX && ctx.scrollbarY);\n const hasCorner = ctx.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? <Corner {...props} /> : null;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaCorner.cjs","names":["useScrollAreaContext"],"sources":["../../../../src/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\n\ninterface ScrollAreaCornerProps extends React.ComponentProps<'div'> {}\n\nexport function Corner(props: ScrollAreaCornerProps) {\n const { style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(ctx.scrollbarX, () => {\n const h = ctx.scrollbarX?.offsetHeight || 0;\n ctx.onCornerHeightChange(h);\n setHeight(h);\n });\n\n useResizeObserver(ctx.scrollbarY, () => {\n const w = ctx.scrollbarY?.offsetWidth || 0;\n ctx.onCornerWidthChange(w);\n setWidth(w);\n });\n\n return hasSize ? <div {...others} style={{ ...style, width, height }} /> : null;\n}\n\nexport function ScrollAreaCorner(props: ScrollAreaCornerProps) {\n const ctx = useScrollAreaContext();\n const hasBothScrollbarsVisible = Boolean(ctx.scrollbarX && ctx.scrollbarY);\n const hasCorner = ctx.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? <Corner {...props} /> : null;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,OAAO,OAA8B;CACnD,MAAM,EAAE,OAAO,GAAG,WAAW;CAC7B,MAAM,MAAMA,2BAAAA,qBAAqB;CACjC,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,UAAqB,CAAC;CACpC,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,UAAsB,CAAC;CACtC,MAAM,UAAU,QAAQ,SAAS,MAAM;CAEvC,4BAAA,kBAAkB,IAAI,kBAAkB;EACtC,MAAM,IAAI,IAAI,YAAY,gBAAgB;EAC1C,IAAI,qBAAqB,CAAC;EAC1B,UAAU,CAAC;CACb,CAAC;CAED,4BAAA,kBAAkB,IAAI,kBAAkB;EACtC,MAAM,IAAI,IAAI,YAAY,eAAe;EACzC,IAAI,oBAAoB,CAAC;EACzB,SAAS,CAAC;CACZ,CAAC;CAED,OAAO,UAAU,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,GAAI;EAAQ,OAAO;GAAE,GAAG;GAAO;GAAO;EAAO;CAAI,CAAA,IAAI;AAC7E;AAEA,SAAgB,iBAAiB,OAA8B;CAC7D,MAAM,MAAMA,2BAAAA,qBAAqB;CACjC,MAAM,2BAA2B,QAAQ,IAAI,cAAc,IAAI,UAAU;CAEzE,OADkB,IAAI,SAAS,YAAY,2BACxB,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAQ,GAAI,MAAQ,CAAA,IAAI;AAC7C"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_use_props = require("../../../core/MantineProvider/use-props/use-props.cjs");
|
|
4
3
|
const require_Box = require("../../../core/Box/Box.cjs");
|
|
5
4
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaRoot.cjs","names":["useProps","ScrollAreaProvider","Box"],"sources":["../../../../src/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { Box, BoxProps, ElementProps, Factory, GetStylesApi, useProps } from '../../../core';\nimport type { ScrollAreaFactory } from '../ScrollArea';\nimport { ScrollAreaProvider } from '../ScrollArea.context';\n\nexport type ScrollAreaRootStylesNames =\n | 'root'\n | 'viewport'\n | 'viewportInner'\n | 'scrollbar'\n | 'thumb'\n | 'corner';\n\nexport type ScrollAreaRootCssVariables = {\n root: '--sa-corner-width' | '--sa-corner-height';\n};\n\nexport interface ScrollAreaRootStylesCtx {\n cornerWidth: number;\n cornerHeight: number;\n}\n\nexport interface ScrollAreaRootProps extends BoxProps, ElementProps<'div'> {\n getStyles: GetStylesApi<ScrollAreaFactory>;\n type?: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n scrollbars?: 'x' | 'y' | 'xy' | false;\n scrollHideDelay?: number;\n}\n\nexport type ScrollAreaRootFactory = Factory<{\n props: ScrollAreaRootProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaRootStylesNames;\n}>;\n\nconst defaultProps = {\n scrollHideDelay: 1000,\n type: 'hover',\n} satisfies Partial<ScrollAreaRootProps>;\n\nexport function ScrollAreaRoot(_props: ScrollAreaRootProps) {\n const { type, scrollHideDelay, scrollbars, getStyles, ref, ...others } = useProps(\n 'ScrollAreaRoot',\n defaultProps,\n _props\n );\n\n const [scrollArea, setScrollArea] = useState<HTMLDivElement | null>(null);\n const [viewport, setViewport] = useState<HTMLDivElement | null>(null);\n const [content, setContent] = useState<HTMLDivElement | null>(null);\n const [scrollbarX, setScrollbarX] = useState<HTMLDivElement | null>(null);\n const [scrollbarY, setScrollbarY] = useState<HTMLDivElement | null>(null);\n const [cornerWidth, setCornerWidth] = useState(0);\n const [cornerHeight, setCornerHeight] = useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = useState(false);\n const rootRef = useMergedRef(ref, setScrollArea);\n\n return (\n <ScrollAreaProvider\n value={{\n type,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n getStyles,\n }}\n >\n <Box\n {...others}\n ref={rootRef}\n __vars={{\n '--sa-corner-width': scrollbars !== 'xy' ? '0px' : `${cornerWidth}px`,\n '--sa-corner-height': scrollbars !== 'xy' ? '0px' : `${cornerHeight}px`,\n }}\n />\n </ScrollAreaProvider>\n );\n}\n\nScrollAreaRoot.displayName = '@mantine/core/ScrollAreaRoot';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaRoot.cjs","names":["useProps","ScrollAreaProvider","Box"],"sources":["../../../../src/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { Box, BoxProps, ElementProps, Factory, GetStylesApi, useProps } from '../../../core';\nimport type { ScrollAreaFactory } from '../ScrollArea';\nimport { ScrollAreaProvider } from '../ScrollArea.context';\n\nexport type ScrollAreaRootStylesNames =\n | 'root'\n | 'viewport'\n | 'viewportInner'\n | 'scrollbar'\n | 'thumb'\n | 'corner';\n\nexport type ScrollAreaRootCssVariables = {\n root: '--sa-corner-width' | '--sa-corner-height';\n};\n\nexport interface ScrollAreaRootStylesCtx {\n cornerWidth: number;\n cornerHeight: number;\n}\n\nexport interface ScrollAreaRootProps extends BoxProps, ElementProps<'div'> {\n getStyles: GetStylesApi<ScrollAreaFactory>;\n type?: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n scrollbars?: 'x' | 'y' | 'xy' | false;\n scrollHideDelay?: number;\n}\n\nexport type ScrollAreaRootFactory = Factory<{\n props: ScrollAreaRootProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaRootStylesNames;\n}>;\n\nconst defaultProps = {\n scrollHideDelay: 1000,\n type: 'hover',\n} satisfies Partial<ScrollAreaRootProps>;\n\nexport function ScrollAreaRoot(_props: ScrollAreaRootProps) {\n const { type, scrollHideDelay, scrollbars, getStyles, ref, ...others } = useProps(\n 'ScrollAreaRoot',\n defaultProps,\n _props\n );\n\n const [scrollArea, setScrollArea] = useState<HTMLDivElement | null>(null);\n const [viewport, setViewport] = useState<HTMLDivElement | null>(null);\n const [content, setContent] = useState<HTMLDivElement | null>(null);\n const [scrollbarX, setScrollbarX] = useState<HTMLDivElement | null>(null);\n const [scrollbarY, setScrollbarY] = useState<HTMLDivElement | null>(null);\n const [cornerWidth, setCornerWidth] = useState(0);\n const [cornerHeight, setCornerHeight] = useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = useState(false);\n const rootRef = useMergedRef(ref, setScrollArea);\n\n return (\n <ScrollAreaProvider\n value={{\n type,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n getStyles,\n }}\n >\n <Box\n {...others}\n ref={rootRef}\n __vars={{\n '--sa-corner-width': scrollbars !== 'xy' ? '0px' : `${cornerWidth}px`,\n '--sa-corner-height': scrollbars !== 'xy' ? '0px' : `${cornerHeight}px`,\n }}\n />\n </ScrollAreaProvider>\n );\n}\n\nScrollAreaRoot.displayName = '@mantine/core/ScrollAreaRoot';\n"],"mappings":";;;;;;;;AAoCA,MAAM,eAAe;CACnB,iBAAiB;CACjB,MAAM;AACR;AAEA,SAAgB,eAAe,QAA6B;CAC1D,MAAM,EAAE,MAAM,iBAAiB,YAAY,WAAW,KAAK,GAAG,WAAWA,kBAAAA,SACvE,kBACA,cACA,MACF;CAEA,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAAiD,IAAI;CACxE,MAAM,CAAC,UAAU,gBAAA,GAAA,MAAA,UAA+C,IAAI;CACpE,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAA8C,IAAI;CAClE,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAAiD,IAAI;CACxE,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAAiD,IAAI;CACxE,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAA2B,CAAC;CAChD,MAAM,CAAC,cAAc,oBAAA,GAAA,MAAA,UAA4B,CAAC;CAClD,MAAM,CAAC,mBAAmB,yBAAA,GAAA,MAAA,UAAiC,KAAK;CAChE,MAAM,CAAC,mBAAmB,yBAAA,GAAA,MAAA,UAAiC,KAAK;CAChE,MAAM,WAAA,GAAA,eAAA,cAAuB,KAAK,aAAa;CAE/C,OACE,iBAAA,GAAA,kBAAA,KAACC,2BAAAA,oBAAD;EACE,OAAO;GACL;GACA;GACA;GACA;GACA,kBAAkB;GAClB;GACA,iBAAiB;GACjB;GACA,oBAAoB;GACpB;GACA,2BAA2B;GAC3B;GACA,oBAAoB;GACpB;GACA,2BAA2B;GAC3B,qBAAqB;GACrB,sBAAsB;GACtB;EACF;YAEA,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;GACE,GAAI;GACJ,KAAK;GACL,QAAQ;IACN,qBAAqB,eAAe,OAAO,QAAQ,GAAG,YAAY;IAClE,sBAAsB,eAAe,OAAO,QAAQ,GAAG,aAAa;GACtE;EACD,CAAA;CACiB,CAAA;AAExB;AAEA,eAAe,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_ScrollAreaScrollbarVisible = require("./ScrollAreaScrollbarVisible.cjs");
|
|
5
4
|
const require_ScrollAreaScrollbarAuto = require("./ScrollAreaScrollbarAuto.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaScrollbar.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto } from './ScrollAreaScrollbarAuto';\nimport { ScrollAreaScrollbarHover } from './ScrollAreaScrollbarHover';\nimport { ScrollAreaScrollbarScroll } from './ScrollAreaScrollbarScroll';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbar(props: ScrollAreaScrollbarProps) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n <ScrollAreaScrollbarHover {...scrollbarProps} forceMount={forceMount} />\n ) : context.type === 'scroll' ? (\n <ScrollAreaScrollbarScroll {...scrollbarProps} forceMount={forceMount} />\n ) : context.type === 'auto' ? (\n <ScrollAreaScrollbarAuto {...scrollbarProps} forceMount={forceMount} />\n ) : context.type === 'always' ? (\n <ScrollAreaScrollbarVisible {...scrollbarProps} />\n ) : null;\n}\n\nScrollAreaScrollbar.displayName = '@mantine/core/ScrollAreaScrollbar';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaScrollbar.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto } from './ScrollAreaScrollbarAuto';\nimport { ScrollAreaScrollbarHover } from './ScrollAreaScrollbarHover';\nimport { ScrollAreaScrollbarScroll } from './ScrollAreaScrollbarScroll';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbar(props: ScrollAreaScrollbarProps) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n <ScrollAreaScrollbarHover {...scrollbarProps} forceMount={forceMount} />\n ) : context.type === 'scroll' ? (\n <ScrollAreaScrollbarScroll {...scrollbarProps} forceMount={forceMount} />\n ) : context.type === 'auto' ? (\n <ScrollAreaScrollbarAuto {...scrollbarProps} forceMount={forceMount} />\n ) : context.type === 'always' ? (\n <ScrollAreaScrollbarVisible {...scrollbarProps} />\n ) : null;\n}\n\nScrollAreaScrollbar.displayName = '@mantine/core/ScrollAreaScrollbar';\n"],"mappings":";;;;;;;;;AAcA,SAAgB,oBAAoB,OAAiC;CACnE,MAAM,EAAE,YAAY,GAAG,mBAAmB;CAC1C,MAAM,UAAUA,2BAAAA,qBAAqB;CACrC,MAAM,EAAE,2BAA2B,8BAA8B;CACjE,MAAM,eAAe,MAAM,gBAAgB;CAE3C,CAAA,GAAA,MAAA,iBAAgB;EACd,eAAe,0BAA0B,IAAI,IAAI,0BAA0B,IAAI;EAC/E,aAAa;GACX,eAAe,0BAA0B,KAAK,IAAI,0BAA0B,KAAK;EACnF;CACF,GAAG;EAAC;EAAc;EAA2B;CAAyB,CAAC;CAEvE,OAAO,QAAQ,SAAS,UACtB,iBAAA,GAAA,kBAAA,KAACC,iCAAAA,0BAAD;EAA0B,GAAI;EAA4B;CAAa,CAAA,IACrE,QAAQ,SAAS,WACnB,iBAAA,GAAA,kBAAA,KAACC,kCAAAA,2BAAD;EAA2B,GAAI;EAA4B;CAAa,CAAA,IACtE,QAAQ,SAAS,SACnB,iBAAA,GAAA,kBAAA,KAACC,gCAAAA,yBAAD;EAAyB,GAAI;EAA4B;CAAa,CAAA,IACpE,QAAQ,SAAS,WACnB,iBAAA,GAAA,kBAAA,KAACC,mCAAAA,4BAAD,EAA4B,GAAI,eAAiB,CAAA,IAC/C;AACN;AAEA,oBAAoB,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_use_resize_observer = require("../use-resize-observer.cjs");
|
|
5
4
|
const require_ScrollAreaScrollbarVisible = require("./ScrollAreaScrollbarVisible.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaScrollbarAuto.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarVisible"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\nexport interface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarAuto(props: ScrollAreaScrollbarAutoProps) {\n const context = useScrollAreaContext();\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n\n const handleResize = useDebouncedCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n if (forceMount || visible) {\n return (\n <ScrollAreaScrollbarVisible data-state={visible ? 'visible' : 'hidden'} {...scrollbarProps} />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarAuto.displayName = '@mantine/core/ScrollAreaScrollbarAuto';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaScrollbarAuto.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarVisible"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\nexport interface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarAuto(props: ScrollAreaScrollbarAutoProps) {\n const context = useScrollAreaContext();\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n\n const handleResize = useDebouncedCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n if (forceMount || visible) {\n return (\n <ScrollAreaScrollbarVisible data-state={visible ? 'visible' : 'hidden'} {...scrollbarProps} />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarAuto.displayName = '@mantine/core/ScrollAreaScrollbarAuto';\n"],"mappings":";;;;;;;;AAaA,SAAgB,wBAAwB,OAAqC;CAC3E,MAAM,UAAUA,2BAAAA,qBAAqB;CACrC,MAAM,EAAE,YAAY,GAAG,mBAAmB;CAC1C,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAuB,KAAK;CAC5C,MAAM,eAAe,MAAM,gBAAgB;CAE3C,MAAM,gBAAA,GAAA,eAAA,4BAA0C;EAC9C,IAAI,QAAQ,UAAU;GACpB,MAAM,cAAc,QAAQ,SAAS,cAAc,QAAQ,SAAS;GACpE,MAAM,cAAc,QAAQ,SAAS,eAAe,QAAQ,SAAS;GACrE,WAAW,eAAe,cAAc,WAAW;EACrD;CACF,GAAG,EAAE;CAEL,4BAAA,kBAAkB,QAAQ,UAAU,YAAY;CAChD,4BAAA,kBAAkB,QAAQ,SAAS,YAAY;CAE/C,IAAI,cAAc,SAChB,OACE,iBAAA,GAAA,kBAAA,KAACC,mCAAAA,4BAAD;EAA4B,cAAY,UAAU,YAAY;EAAU,GAAI;CAAiB,CAAA;CAIjG,OAAO;AACT;AAEA,wBAAwB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaScrollbarHover.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarAuto"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto, ScrollAreaScrollbarAutoProps } from './ScrollAreaScrollbarAuto';\n\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarHover(props: ScrollAreaScrollbarHoverProps) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const { scrollArea } = context;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener('pointerenter', handlePointerEnter);\n scrollArea.addEventListener('pointerleave', handlePointerLeave);\n\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n };\n }\n\n return undefined;\n }, [context.scrollArea, context.scrollHideDelay]);\n\n if (forceMount || visible) {\n return (\n <ScrollAreaScrollbarAuto data-state={visible ? 'visible' : 'hidden'} {...scrollbarProps} />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarHover.displayName = '@mantine/core/ScrollAreaScrollbarHover';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaScrollbarHover.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarAuto"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto, ScrollAreaScrollbarAutoProps } from './ScrollAreaScrollbarAuto';\n\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarHover(props: ScrollAreaScrollbarHoverProps) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const { scrollArea } = context;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener('pointerenter', handlePointerEnter);\n scrollArea.addEventListener('pointerleave', handlePointerLeave);\n\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n };\n }\n\n return undefined;\n }, [context.scrollArea, context.scrollHideDelay]);\n\n if (forceMount || visible) {\n return (\n <ScrollAreaScrollbarAuto data-state={visible ? 'visible' : 'hidden'} {...scrollbarProps} />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarHover.displayName = '@mantine/core/ScrollAreaScrollbarHover';\n"],"mappings":";;;;;;AAQA,SAAgB,yBAAyB,OAAsC;CAC7E,MAAM,EAAE,YAAY,GAAG,mBAAmB;CAC1C,MAAM,UAAUA,2BAAAA,qBAAqB;CACrC,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UAAuB,KAAK;CAE5C,CAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,EAAE,eAAe;EACvB,IAAI,YAAY;EAChB,IAAI,YAAY;GACd,MAAM,2BAA2B;IAC/B,OAAO,aAAa,SAAS;IAC7B,WAAW,IAAI;GACjB;GACA,MAAM,2BAA2B;IAC/B,YAAY,OAAO,iBAAiB,WAAW,KAAK,GAAG,QAAQ,eAAe;GAChF;GACA,WAAW,iBAAiB,gBAAgB,kBAAkB;GAC9D,WAAW,iBAAiB,gBAAgB,kBAAkB;GAE9D,aAAa;IACX,OAAO,aAAa,SAAS;IAC7B,WAAW,oBAAoB,gBAAgB,kBAAkB;IACjE,WAAW,oBAAoB,gBAAgB,kBAAkB;GACnE;EACF;CAGF,GAAG,CAAC,QAAQ,YAAY,QAAQ,eAAe,CAAC;CAEhD,IAAI,cAAc,SAChB,OACE,iBAAA,GAAA,kBAAA,KAACC,gCAAAA,yBAAD;EAAyB,cAAY,UAAU,YAAY;EAAU,GAAI;CAAiB,CAAA;CAI9F,OAAO;AACT;AAEA,yBAAyB,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_compose_event_handlers = require("../utils/compose-event-handlers.cjs");
|
|
5
4
|
const require_ScrollAreaScrollbarVisible = require("./ScrollAreaScrollbarVisible.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaScrollbarScroll.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarVisible","composeEventHandlers"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { composeEventHandlers } from '../utils';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\ninterface ScrollAreaScrollbarScrollProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarScroll(props: ScrollAreaScrollbarScrollProps) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const isHorizontal = props.orientation === 'horizontal';\n const [state, setState] = useState<'hidden' | 'idle' | 'interacting' | 'scrolling'>('hidden');\n const debounceScrollEnd = useDebouncedCallback(() => setState('idle'), 100);\n\n useEffect(() => {\n if (state === 'idle') {\n const hideTimer = window.setTimeout(() => setState('hidden'), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n\n return undefined;\n }, [state, context.scrollHideDelay]);\n\n useEffect(() => {\n const { viewport } = context;\n const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n setState('scrolling');\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n\n return undefined;\n }, [context.viewport, isHorizontal, debounceScrollEnd]);\n\n if (forceMount || state !== 'hidden') {\n return (\n <ScrollAreaScrollbarVisible\n data-state={state === 'hidden' ? 'hidden' : 'visible'}\n {...scrollbarProps}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => setState('interacting'))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => setState('idle'))}\n />\n );\n }\n\n return null;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaScrollbarScroll.cjs","names":["useScrollAreaContext","ScrollAreaScrollbarVisible","composeEventHandlers"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { composeEventHandlers } from '../utils';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\ninterface ScrollAreaScrollbarScrollProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaScrollbarScroll(props: ScrollAreaScrollbarScrollProps) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const isHorizontal = props.orientation === 'horizontal';\n const [state, setState] = useState<'hidden' | 'idle' | 'interacting' | 'scrolling'>('hidden');\n const debounceScrollEnd = useDebouncedCallback(() => setState('idle'), 100);\n\n useEffect(() => {\n if (state === 'idle') {\n const hideTimer = window.setTimeout(() => setState('hidden'), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n\n return undefined;\n }, [state, context.scrollHideDelay]);\n\n useEffect(() => {\n const { viewport } = context;\n const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n setState('scrolling');\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n\n return undefined;\n }, [context.viewport, isHorizontal, debounceScrollEnd]);\n\n if (forceMount || state !== 'hidden') {\n return (\n <ScrollAreaScrollbarVisible\n data-state={state === 'hidden' ? 'hidden' : 'visible'}\n {...scrollbarProps}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => setState('interacting'))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => setState('idle'))}\n />\n );\n }\n\n return null;\n}\n"],"mappings":";;;;;;;;AAaA,SAAgB,0BAA0B,OAAuC;CAC/E,MAAM,EAAE,YAAY,GAAG,mBAAmB;CAC1C,MAAM,UAAUA,2BAAAA,qBAAqB;CACrC,MAAM,eAAe,MAAM,gBAAgB;CAC3C,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,UAAsE,QAAQ;CAC5F,MAAM,qBAAA,GAAA,eAAA,4BAA+C,SAAS,MAAM,GAAG,GAAG;CAE1E,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,UAAU,QAAQ;GACpB,MAAM,YAAY,OAAO,iBAAiB,SAAS,QAAQ,GAAG,QAAQ,eAAe;GACrF,aAAa,OAAO,aAAa,SAAS;EAC5C;CAGF,GAAG,CAAC,OAAO,QAAQ,eAAe,CAAC;CAEnC,CAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,EAAE,aAAa;EACrB,MAAM,kBAAkB,eAAe,eAAe;EAEtD,IAAI,UAAU;GACZ,IAAI,gBAAgB,SAAS;GAC7B,MAAM,qBAAqB;IACzB,MAAM,YAAY,SAAS;IAE3B,IADoC,kBAAkB,WACrB;KAC/B,SAAS,WAAW;KACpB,kBAAkB;IACpB;IACA,gBAAgB;GAClB;GACA,SAAS,iBAAiB,UAAU,YAAY;GAChD,aAAa,SAAS,oBAAoB,UAAU,YAAY;EAClE;CAGF,GAAG;EAAC,QAAQ;EAAU;EAAc;CAAiB,CAAC;CAEtD,IAAI,cAAc,UAAU,UAC1B,OACE,iBAAA,GAAA,kBAAA,KAACC,mCAAAA,4BAAD;EACE,cAAY,UAAU,WAAW,WAAW;EAC5C,GAAI;EACJ,gBAAgBC,+BAAAA,qBAAqB,MAAM,sBAAsB,SAAS,aAAa,CAAC;EACxF,gBAAgBA,+BAAAA,qBAAqB,MAAM,sBAAsB,SAAS,MAAM,CAAC;CAClF,CAAA;CAIL,OAAO;AACT"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_DirectionProvider = require("../../../core/DirectionProvider/DirectionProvider.cjs");
|
|
4
3
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
5
4
|
const require_get_thumb_ratio = require("../utils/get-thumb-ratio.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaScrollbarVisible.cjs","names":["useDirection","useScrollAreaContext","getThumbRatio","getScrollPositionFromPointer","ScrollAreaScrollbarX","getThumbOffsetFromScroll","ScrollAreaScrollbarY"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDirection } from '../../../core';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport {\n ScrollAreaScrollbarAxisPrivateProps,\n ScrollAreaScrollbarAxisProps,\n Sizes,\n} from '../ScrollArea.types';\nimport { getScrollPositionFromPointer, getThumbOffsetFromScroll, getThumbRatio } from '../utils';\nimport { ScrollAreaScrollbarX } from './ScrollbarX';\nimport { ScrollAreaScrollbarY } from './ScrollbarY';\n\nexport interface ScrollAreaScrollbarVisibleProps extends Omit<\n ScrollAreaScrollbarAxisProps,\n keyof ScrollAreaScrollbarAxisPrivateProps\n> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport function ScrollAreaScrollbarVisible(props: ScrollAreaScrollbarVisibleProps) {\n const { orientation = 'vertical', ...scrollbarProps } = props;\n const { dir } = useDirection();\n const context = useScrollAreaContext();\n const thumbRef = useRef<HTMLDivElement | null>(null);\n const pointerOffsetRef = useRef(0);\n const [sizes, setSizes] = useState<Sizes>({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n const commonProps: Omit<\n ScrollAreaScrollbarAxisPrivateProps,\n 'onThumbPositionChange' | 'onDragScroll' | 'onWheelScroll'\n > = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => {\n thumbRef.current = thumb;\n },\n onThumbPointerUp: () => {\n pointerOffsetRef.current = 0;\n },\n onThumbPointerDown: (pointerPos) => {\n pointerOffsetRef.current = pointerPos;\n },\n };\n\n const getScrollPosition = (pointerPos: number, direction?: 'ltr' | 'rtl') =>\n getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, direction);\n\n if (orientation === 'horizontal') {\n return (\n <ScrollAreaScrollbarX\n {...commonProps}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = scrollPos;\n }\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, dir);\n }\n }}\n />\n );\n }\n\n if (orientation === 'vertical') {\n return (\n <ScrollAreaScrollbarY\n {...commonProps}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n if (sizes.scrollbar.size === 0) {\n thumbRef.current.style.setProperty('--thumb-opacity', '0');\n } else {\n thumbRef.current.style.setProperty('--thumb-opacity', '1');\n }\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) {\n context.viewport.scrollTop = scrollPos;\n }\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }}\n />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarVisible.displayName = '@mantine/core/ScrollAreaScrollbarVisible';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaScrollbarVisible.cjs","names":["useDirection","useScrollAreaContext","getThumbRatio","getScrollPositionFromPointer","ScrollAreaScrollbarX","getThumbOffsetFromScroll","ScrollAreaScrollbarY"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { useDirection } from '../../../core';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport {\n ScrollAreaScrollbarAxisPrivateProps,\n ScrollAreaScrollbarAxisProps,\n Sizes,\n} from '../ScrollArea.types';\nimport { getScrollPositionFromPointer, getThumbOffsetFromScroll, getThumbRatio } from '../utils';\nimport { ScrollAreaScrollbarX } from './ScrollbarX';\nimport { ScrollAreaScrollbarY } from './ScrollbarY';\n\nexport interface ScrollAreaScrollbarVisibleProps extends Omit<\n ScrollAreaScrollbarAxisProps,\n keyof ScrollAreaScrollbarAxisPrivateProps\n> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport function ScrollAreaScrollbarVisible(props: ScrollAreaScrollbarVisibleProps) {\n const { orientation = 'vertical', ...scrollbarProps } = props;\n const { dir } = useDirection();\n const context = useScrollAreaContext();\n const thumbRef = useRef<HTMLDivElement | null>(null);\n const pointerOffsetRef = useRef(0);\n const [sizes, setSizes] = useState<Sizes>({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n const commonProps: Omit<\n ScrollAreaScrollbarAxisPrivateProps,\n 'onThumbPositionChange' | 'onDragScroll' | 'onWheelScroll'\n > = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => {\n thumbRef.current = thumb;\n },\n onThumbPointerUp: () => {\n pointerOffsetRef.current = 0;\n },\n onThumbPointerDown: (pointerPos) => {\n pointerOffsetRef.current = pointerPos;\n },\n };\n\n const getScrollPosition = (pointerPos: number, direction?: 'ltr' | 'rtl') =>\n getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, direction);\n\n if (orientation === 'horizontal') {\n return (\n <ScrollAreaScrollbarX\n {...commonProps}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = scrollPos;\n }\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, dir);\n }\n }}\n />\n );\n }\n\n if (orientation === 'vertical') {\n return (\n <ScrollAreaScrollbarY\n {...commonProps}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n if (sizes.scrollbar.size === 0) {\n thumbRef.current.style.setProperty('--thumb-opacity', '0');\n } else {\n thumbRef.current.style.setProperty('--thumb-opacity', '1');\n }\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) {\n context.viewport.scrollTop = scrollPos;\n }\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }}\n />\n );\n }\n\n return null;\n}\n\nScrollAreaScrollbarVisible.displayName = '@mantine/core/ScrollAreaScrollbarVisible';\n"],"mappings":";;;;;;;;;;;AAmBA,SAAgB,2BAA2B,OAAwC;CACjF,MAAM,EAAE,cAAc,YAAY,GAAG,mBAAmB;CACxD,MAAM,EAAE,QAAQA,0BAAAA,aAAa;CAC7B,MAAM,UAAUC,2BAAAA,qBAAqB;CACrC,MAAM,YAAA,GAAA,MAAA,QAAyC,IAAI;CACnD,MAAM,oBAAA,GAAA,MAAA,QAA0B,CAAC;CACjC,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,UAA4B;EACxC,SAAS;EACT,UAAU;EACV,WAAW;GAAE,MAAM;GAAG,cAAc;GAAG,YAAY;EAAE;CACvD,CAAC;CAED,MAAM,aAAaC,wBAAAA,cAAc,MAAM,UAAU,MAAM,OAAO;CAE9D,MAAM,cAGF;EACF,GAAG;EACH;EACA,eAAe;EACf,UAAU,QAAQ,aAAa,KAAK,aAAa,CAAC;EAClD,gBAAgB,UAAU;GACxB,SAAS,UAAU;EACrB;EACA,wBAAwB;GACtB,iBAAiB,UAAU;EAC7B;EACA,qBAAqB,eAAe;GAClC,iBAAiB,UAAU;EAC7B;CACF;CAEA,MAAM,qBAAqB,YAAoB,cAC7CC,yCAAAA,6BAA6B,YAAY,iBAAiB,SAAS,OAAO,SAAS;CAErF,IAAI,gBAAgB,cAClB,OACE,iBAAA,GAAA,kBAAA,KAACC,mBAAAA,sBAAD;EACE,GAAI;EACJ,6BAA6B;GAC3B,IAAI,QAAQ,YAAY,SAAS,SAAS;IACxC,MAAM,YAAY,QAAQ,SAAS;IACnC,MAAM,SAASC,qCAAAA,yBAAyB,WAAW,OAAO,GAAG;IAC7D,SAAS,QAAQ,MAAM,YAAY,eAAe,OAAO;GAC3D;EACF;EACA,gBAAgB,cAAc;GAC5B,IAAI,QAAQ,UACV,QAAQ,SAAS,aAAa;EAElC;EACA,eAAe,eAAe;GAC5B,IAAI,QAAQ,UACV,QAAQ,SAAS,aAAa,kBAAkB,YAAY,GAAG;EAEnE;CACD,CAAA;CAIL,IAAI,gBAAgB,YAClB,OACE,iBAAA,GAAA,kBAAA,KAACC,mBAAAA,sBAAD;EACE,GAAI;EACJ,6BAA6B;GAC3B,IAAI,QAAQ,YAAY,SAAS,SAAS;IACxC,MAAM,YAAY,QAAQ,SAAS;IACnC,MAAM,SAASD,qCAAAA,yBAAyB,WAAW,KAAK;IACxD,IAAI,MAAM,UAAU,SAAS,GAC3B,SAAS,QAAQ,MAAM,YAAY,mBAAmB,GAAG;SAEzD,SAAS,QAAQ,MAAM,YAAY,mBAAmB,GAAG;IAE3D,SAAS,QAAQ,MAAM,YAAY,kBAAkB,OAAO;GAC9D;EACF;EACA,gBAAgB,cAAc;GAC5B,IAAI,QAAQ,UACV,QAAQ,SAAS,YAAY;EAEjC;EACA,eAAe,eAAe;GAC5B,IAAI,QAAQ,UACV,QAAQ,SAAS,YAAY,kBAAkB,UAAU;EAE7D;CACD,CAAA;CAIL,OAAO;AACT;AAEA,2BAA2B,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_use_resize_observer = require("../use-resize-observer.cjs");
|
|
5
4
|
const require_compose_event_handlers = require("../utils/compose-event-handlers.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scrollbar.cjs","names":["useScrollAreaContext","ScrollbarProvider","composeEventHandlers"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useRef, useState } from 'react';\nimport { useCallbackRef, useDebouncedCallback, useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { Sizes } from '../ScrollArea.types';\nimport { useResizeObserver } from '../use-resize-observer';\nimport { composeEventHandlers } from '../utils';\nimport { ScrollbarContextValue, ScrollbarProvider } from './Scrollbar.context';\n\nexport interface ScrollbarPrivateProps {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContextValue['onThumbChange'];\n onThumbPointerUp: ScrollbarContextValue['onThumbPointerUp'];\n onThumbPointerDown: ScrollbarContextValue['onThumbPointerDown'];\n onThumbPositionChange: ScrollbarContextValue['onThumbPositionChange'];\n onWheelScroll: (event: WheelEvent, maxScrollPos: number) => void;\n onDragScroll: (pointerPos: { x: number; y: number }) => void;\n onResize: () => void;\n}\n\ninterface ScrollbarProps\n extends ScrollbarPrivateProps, Omit<React.ComponentProps<'div'>, 'onResize'> {}\n\nexport function Scrollbar(props: ScrollbarProps) {\n const {\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ref,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext();\n const [scrollbar, setScrollbar] = useState<HTMLDivElement | null>(null);\n const composeRefs = useMergedRef(ref, setScrollbar);\n const rectRef = useRef<DOMRect | null>(null);\n const prevWebkitUserSelectRef = useRef<string>('');\n const { viewport } = context;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useEffectEvent(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebouncedCallback(onResize, 10);\n\n const handleDragScroll = (event: React.PointerEvent<HTMLElement>) => {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n };\n\n useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) {\n handleWheelScroll(event, maxScrollPos);\n }\n };\n document.addEventListener('wheel', handleWheel, { passive: false });\n return () => document.removeEventListener('wheel', handleWheel, { passive: false } as any);\n }, [viewport, scrollbar, maxScrollPos]);\n\n useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <ScrollbarProvider\n value={{\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n }}\n >\n <div\n {...scrollbarProps}\n ref={composeRefs}\n data-mantine-scrollbar\n style={{ position: 'absolute', ...scrollbarProps.style }}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n event.preventDefault();\n\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n /* oxlint-disable typescript/no-deprecated */\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = 'none';\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, handleDragScroll)}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n event.preventDefault();\n element.releasePointerCapture(event.pointerId);\n }\n })}\n onLostPointerCapture={() => {\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n /* oxlint-enable typescript/no-deprecated */\n rectRef.current = null;\n }}\n />\n </ScrollbarProvider>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Scrollbar.cjs","names":["useScrollAreaContext","ScrollbarProvider","composeEventHandlers"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useRef, useState } from 'react';\nimport { useCallbackRef, useDebouncedCallback, useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { Sizes } from '../ScrollArea.types';\nimport { useResizeObserver } from '../use-resize-observer';\nimport { composeEventHandlers } from '../utils';\nimport { ScrollbarContextValue, ScrollbarProvider } from './Scrollbar.context';\n\nexport interface ScrollbarPrivateProps {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContextValue['onThumbChange'];\n onThumbPointerUp: ScrollbarContextValue['onThumbPointerUp'];\n onThumbPointerDown: ScrollbarContextValue['onThumbPointerDown'];\n onThumbPositionChange: ScrollbarContextValue['onThumbPositionChange'];\n onWheelScroll: (event: WheelEvent, maxScrollPos: number) => void;\n onDragScroll: (pointerPos: { x: number; y: number }) => void;\n onResize: () => void;\n}\n\ninterface ScrollbarProps\n extends ScrollbarPrivateProps, Omit<React.ComponentProps<'div'>, 'onResize'> {}\n\nexport function Scrollbar(props: ScrollbarProps) {\n const {\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ref,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext();\n const [scrollbar, setScrollbar] = useState<HTMLDivElement | null>(null);\n const composeRefs = useMergedRef(ref, setScrollbar);\n const rectRef = useRef<DOMRect | null>(null);\n const prevWebkitUserSelectRef = useRef<string>('');\n const { viewport } = context;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useEffectEvent(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebouncedCallback(onResize, 10);\n\n const handleDragScroll = (event: React.PointerEvent<HTMLElement>) => {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n };\n\n useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) {\n handleWheelScroll(event, maxScrollPos);\n }\n };\n document.addEventListener('wheel', handleWheel, { passive: false });\n return () => document.removeEventListener('wheel', handleWheel, { passive: false } as any);\n }, [viewport, scrollbar, maxScrollPos]);\n\n useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <ScrollbarProvider\n value={{\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n }}\n >\n <div\n {...scrollbarProps}\n ref={composeRefs}\n data-mantine-scrollbar\n style={{ position: 'absolute', ...scrollbarProps.style }}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n event.preventDefault();\n\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n /* oxlint-disable typescript/no-deprecated */\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = 'none';\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, handleDragScroll)}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n event.preventDefault();\n element.releasePointerCapture(event.pointerId);\n }\n })}\n onLostPointerCapture={() => {\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n /* oxlint-enable typescript/no-deprecated */\n rectRef.current = null;\n }}\n />\n </ScrollbarProvider>\n );\n}\n"],"mappings":";;;;;;;;;AAuBA,SAAgB,UAAU,OAAuB;CAC/C,MAAM,EACJ,OACA,UACA,eACA,kBACA,oBACA,uBACA,cACA,eACA,UACA,KACA,GAAG,mBACD;CACJ,MAAM,UAAUA,2BAAAA,qBAAqB;CACrC,MAAM,CAAC,WAAW,iBAAA,GAAA,MAAA,UAAgD,IAAI;CACtE,MAAM,eAAA,GAAA,eAAA,cAA2B,KAAK,YAAY;CAClD,MAAM,WAAA,GAAA,MAAA,QAAiC,IAAI;CAC3C,MAAM,2BAAA,GAAA,MAAA,QAAyC,EAAE;CACjD,MAAM,EAAE,aAAa;CACrB,MAAM,eAAe,MAAM,UAAU,MAAM;CAC3C,MAAM,qBAAA,GAAA,MAAA,gBAAmC,aAAa;CACtD,MAAM,6BAAA,GAAA,eAAA,gBAA2C,qBAAqB;CACtE,MAAM,gBAAA,GAAA,eAAA,sBAAoC,UAAU,EAAE;CAEtD,MAAM,oBAAoB,UAA2C;EACnE,IAAI,QAAQ,SAGV,aAAa;GAAE,GAFL,MAAM,UAAU,QAAQ,QAAQ;GAExB,GADR,MAAM,UAAU,QAAQ,QAAQ;EACtB,CAAC;CAEzB;CAEA,CAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,eAAe,UAAsB;GACzC,MAAM,UAAU,MAAM;GAEtB,IADyB,WAAW,SAAS,OAAO,GAElD,kBAAkB,OAAO,YAAY;EAEzC;EACA,SAAS,iBAAiB,SAAS,aAAa,EAAE,SAAS,MAAM,CAAC;EAClE,aAAa,SAAS,oBAAoB,SAAS,aAAa,EAAE,SAAS,MAAM,CAAQ;CAC3F,GAAG;EAAC;EAAU;EAAW;CAAY,CAAC;CAEtC,CAAA,GAAA,MAAA,WAAU,2BAA2B,CAAC,OAAO,yBAAyB,CAAC;CAEvE,4BAAA,kBAAkB,WAAW,YAAY;CACzC,4BAAA,kBAAkB,QAAQ,SAAS,YAAY;CAE/C,OACE,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,mBAAD;EACE,OAAO;GACL;GACA;GACA,gBAAA,GAAA,eAAA,gBAA8B,aAAa;GAC3C,mBAAA,GAAA,eAAA,gBAAiC,gBAAgB;GACjD,uBAAuB;GACvB,qBAAA,GAAA,eAAA,gBAAmC,kBAAkB;EACvD;YAEA,iBAAA,GAAA,kBAAA,KAAC,OAAD;GACE,GAAI;GACJ,KAAK;GACL,0BAAA;GACA,OAAO;IAAE,UAAU;IAAY,GAAG,eAAe;GAAM;GACvD,eAAeC,+BAAAA,qBAAqB,MAAM,gBAAgB,UAAU;IAClE,MAAM,eAAe;IAGrB,IAAI,MAAM,WAAW,GAAa;KAEhC,MADsB,OACd,kBAAkB,MAAM,SAAS;KACzC,QAAQ,UAAU,UAAW,sBAAsB;KAEnD,wBAAwB,UAAU,SAAS,KAAK,MAAM;KACtD,SAAS,KAAK,MAAM,mBAAmB;KACvC,iBAAiB,KAAK;IACxB;GACF,CAAC;GACD,eAAeA,+BAAAA,qBAAqB,MAAM,eAAe,gBAAgB;GACzE,aAAaA,+BAAAA,qBAAqB,MAAM,cAAc,UAAU;IAC9D,MAAM,UAAU,MAAM;IACtB,IAAI,QAAQ,kBAAkB,MAAM,SAAS,GAAG;KAC9C,MAAM,eAAe;KACrB,QAAQ,sBAAsB,MAAM,SAAS;IAC/C;GACF,CAAC;GACD,4BAA4B;IAC1B,SAAS,KAAK,MAAM,mBAAmB,wBAAwB;IAE/D,QAAQ,UAAU;GACpB;EACD,CAAA;CACgB,CAAA;AAEvB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_is_scrolling_within_scrollbar_bounds = require("../utils/is-scrolling-within-scrollbar-bounds.cjs");
|
|
5
4
|
const require_get_thumb_size = require("../utils/get-thumb-size.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollbarX.cjs","names":["useScrollAreaContext","Scrollbar","getThumbSize","isScrollingWithinScrollbarBounds","toInt"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport const ScrollAreaScrollbarX = (props: ScrollAreaScrollbarAxisProps) => {\n const { sizes, onSizesChange, style, ref: forwardedRef, ...others } = props;\n const ctx = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState<CSSStyleDeclaration>();\n const ref = useRef<HTMLDivElement>(null);\n const composeRefs = useMergedRef(forwardedRef, ref, ctx.onScrollbarXChange);\n\n useEffect(() => {\n if (ref.current) {\n setComputedStyle(getComputedStyle(ref.current));\n }\n }, [ref]);\n\n return (\n <Scrollbar\n data-orientation=\"horizontal\"\n {...others}\n ref={composeRefs}\n sizes={sizes}\n style={{\n ...style,\n ['--sa-thumb-width' as any]: `${getThumbSize(sizes)}px`,\n }}\n onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.x)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (ctx.viewport) {\n const scrollPos = ctx.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && ctx.viewport && computedStyle) {\n onSizesChange({\n content: ctx.viewport.scrollWidth,\n viewport: ctx.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n};\n\nScrollAreaScrollbarX.displayName = '@mantine/core/ScrollAreaScrollbarX';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollbarX.cjs","names":["useScrollAreaContext","Scrollbar","getThumbSize","isScrollingWithinScrollbarBounds","toInt"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport const ScrollAreaScrollbarX = (props: ScrollAreaScrollbarAxisProps) => {\n const { sizes, onSizesChange, style, ref: forwardedRef, ...others } = props;\n const ctx = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState<CSSStyleDeclaration>();\n const ref = useRef<HTMLDivElement>(null);\n const composeRefs = useMergedRef(forwardedRef, ref, ctx.onScrollbarXChange);\n\n useEffect(() => {\n if (ref.current) {\n setComputedStyle(getComputedStyle(ref.current));\n }\n }, [ref]);\n\n return (\n <Scrollbar\n data-orientation=\"horizontal\"\n {...others}\n ref={composeRefs}\n sizes={sizes}\n style={{\n ...style,\n ['--sa-thumb-width' as any]: `${getThumbSize(sizes)}px`,\n }}\n onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.x)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (ctx.viewport) {\n const scrollPos = ctx.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && ctx.viewport && computedStyle) {\n onSizesChange({\n content: ctx.viewport.scrollWidth,\n viewport: ctx.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n};\n\nScrollAreaScrollbarX.displayName = '@mantine/core/ScrollAreaScrollbarX';\n"],"mappings":";;;;;;;;;;AAOA,MAAa,wBAAwB,UAAwC;CAC3E,MAAM,EAAE,OAAO,eAAe,OAAO,KAAK,cAAc,GAAG,WAAW;CACtE,MAAM,MAAMA,2BAAAA,qBAAqB;CACjC,MAAM,CAAC,eAAe,qBAAA,GAAA,MAAA,UAAkD;CACxE,MAAM,OAAA,GAAA,MAAA,QAA6B,IAAI;CACvC,MAAM,eAAA,GAAA,eAAA,cAA2B,cAAc,KAAK,IAAI,kBAAkB;CAE1E,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,IAAI,SACN,iBAAiB,iBAAiB,IAAI,OAAO,CAAC;CAElD,GAAG,CAAC,GAAG,CAAC;CAER,OACE,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;EACE,oBAAiB;EACjB,GAAI;EACJ,KAAK;EACE;EACP,OAAO;GACL,GAAG;IACF,qBAA4B,GAAGC,uBAAAA,aAAa,KAAK,EAAE;EACtD;EACA,qBAAqB,eAAe,MAAM,mBAAmB,WAAW,CAAC;EACzE,eAAe,eAAe,MAAM,aAAa,WAAW,CAAC;EAC7D,gBAAgB,OAAO,iBAAiB;GACtC,IAAI,IAAI,UAAU;IAChB,MAAM,YAAY,IAAI,SAAS,aAAa,MAAM;IAClD,MAAM,cAAc,SAAS;IAC7B,IAAIC,6CAAAA,iCAAiC,WAAW,YAAY,GAC1D,MAAM,eAAe;GAEzB;EACF;EACA,gBAAgB;GACd,IAAI,IAAI,WAAW,IAAI,YAAY,eACjC,cAAc;IACZ,SAAS,IAAI,SAAS;IACtB,UAAU,IAAI,SAAS;IACvB,WAAW;KACT,MAAM,IAAI,QAAQ;KAClB,cAAcC,eAAAA,MAAM,cAAc,WAAW;KAC7C,YAAYA,eAAAA,MAAM,cAAc,YAAY;IAC9C;GACF,CAAC;EAEL;CACD,CAAA;AAEL;AAEA,qBAAqB,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_is_scrolling_within_scrollbar_bounds = require("../utils/is-scrolling-within-scrollbar-bounds.cjs");
|
|
5
4
|
const require_get_thumb_size = require("../utils/get-thumb-size.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollbarY.cjs","names":["useScrollAreaContext","Scrollbar","getThumbSize","isScrollingWithinScrollbarBounds","toInt"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport function ScrollAreaScrollbarY(props: ScrollAreaScrollbarAxisProps) {\n const { sizes, onSizesChange, style, ref: forwardedRef, ...others } = props;\n const context = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState<CSSStyleDeclaration>();\n const ref = useRef<HTMLDivElement>(null);\n const composeRefs = useMergedRef(forwardedRef, ref, context.onScrollbarYChange);\n\n useEffect(() => {\n if (ref.current) {\n setComputedStyle(window.getComputedStyle(ref.current));\n }\n }, []);\n\n return (\n <Scrollbar\n {...others}\n data-orientation=\"vertical\"\n ref={composeRefs}\n sizes={sizes}\n style={{\n ['--sa-thumb-height' as any]: `${getThumbSize(sizes)}px`,\n ...style,\n }}\n onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.y)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n}\n\nScrollAreaScrollbarY.displayName = '@mantine/core/ScrollAreaScrollbarY';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollbarY.cjs","names":["useScrollAreaContext","Scrollbar","getThumbSize","isScrollingWithinScrollbarBounds","toInt"],"sources":["../../../../src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport function ScrollAreaScrollbarY(props: ScrollAreaScrollbarAxisProps) {\n const { sizes, onSizesChange, style, ref: forwardedRef, ...others } = props;\n const context = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState<CSSStyleDeclaration>();\n const ref = useRef<HTMLDivElement>(null);\n const composeRefs = useMergedRef(forwardedRef, ref, context.onScrollbarYChange);\n\n useEffect(() => {\n if (ref.current) {\n setComputedStyle(window.getComputedStyle(ref.current));\n }\n }, []);\n\n return (\n <Scrollbar\n {...others}\n data-orientation=\"vertical\"\n ref={composeRefs}\n sizes={sizes}\n style={{\n ['--sa-thumb-height' as any]: `${getThumbSize(sizes)}px`,\n ...style,\n }}\n onThumbPointerDown={(pointerPos) => props.onThumbPointerDown(pointerPos.y)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n}\n\nScrollAreaScrollbarY.displayName = '@mantine/core/ScrollAreaScrollbarY';\n"],"mappings":";;;;;;;;;;AAOA,SAAgB,qBAAqB,OAAqC;CACxE,MAAM,EAAE,OAAO,eAAe,OAAO,KAAK,cAAc,GAAG,WAAW;CACtE,MAAM,UAAUA,2BAAAA,qBAAqB;CACrC,MAAM,CAAC,eAAe,qBAAA,GAAA,MAAA,UAAkD;CACxE,MAAM,OAAA,GAAA,MAAA,QAA6B,IAAI;CACvC,MAAM,eAAA,GAAA,eAAA,cAA2B,cAAc,KAAK,QAAQ,kBAAkB;CAE9E,CAAA,GAAA,MAAA,iBAAgB;EACd,IAAI,IAAI,SACN,iBAAiB,OAAO,iBAAiB,IAAI,OAAO,CAAC;CAEzD,GAAG,CAAC,CAAC;CAEL,OACE,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;EACE,GAAI;EACJ,oBAAiB;EACjB,KAAK;EACE;EACP,OAAO;IACJ,sBAA6B,GAAGC,uBAAAA,aAAa,KAAK,EAAE;GACrD,GAAG;EACL;EACA,qBAAqB,eAAe,MAAM,mBAAmB,WAAW,CAAC;EACzE,eAAe,eAAe,MAAM,aAAa,WAAW,CAAC;EAC7D,gBAAgB,OAAO,iBAAiB;GACtC,IAAI,QAAQ,UAAU;IACpB,MAAM,YAAY,QAAQ,SAAS,YAAY,MAAM;IACrD,MAAM,cAAc,SAAS;IAC7B,IAAIC,6CAAAA,iCAAiC,WAAW,YAAY,GAC1D,MAAM,eAAe;GAEzB;EACF;EACA,gBAAgB;GACd,IAAI,IAAI,WAAW,QAAQ,YAAY,eACrC,cAAc;IACZ,SAAS,QAAQ,SAAS;IAC1B,UAAU,QAAQ,SAAS;IAC3B,WAAW;KACT,MAAM,IAAI,QAAQ;KAClB,cAAcC,eAAAA,MAAM,cAAc,UAAU;KAC5C,YAAYA,eAAAA,MAAM,cAAc,aAAa;IAC/C;GACF,CAAC;EAEL;CACD,CAAA;AAEL;AAEA,qBAAqB,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_ScrollArea_context = require("../ScrollArea.context.cjs");
|
|
4
3
|
const require_compose_event_handlers = require("../utils/compose-event-handlers.cjs");
|
|
5
4
|
const require_add_unlinked_scroll_listener = require("../utils/add-unlinked-scroll-listener.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaThumb.cjs","names":["useScrollAreaContext","useScrollbarContext","addUnlinkedScrollListener","composeEventHandlers"],"sources":["../../../../src/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useDebouncedCallback, useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useScrollbarContext } from '../ScrollAreaScrollbar/Scrollbar.context';\nimport { addUnlinkedScrollListener, composeEventHandlers } from '../utils';\n\ninterface ThumbProps extends React.ComponentProps<'div'> {}\n\nexport function Thumb(props: ThumbProps) {\n const { style, ref: forwardedRef, ...others } = props;\n const scrollAreaContext = useScrollAreaContext();\n const scrollbarContext = useScrollbarContext();\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useMergedRef(forwardedRef, scrollbarContext.onThumbChange);\n const removeUnlinkedScrollListenerRef = useRef<(() => void) | undefined>(undefined);\n const debounceScrollEnd = useDebouncedCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n useEffect(() => {\n const { viewport } = scrollAreaContext;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n\n return undefined;\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n <div\n data-state={scrollbarContext.hasThumb ? 'visible' : 'hidden'}\n {...others}\n ref={composedRef}\n style={{\n width: 'var(--sa-thumb-width)',\n height: 'var(--sa-thumb-height)',\n ...style,\n }}\n onPointerDownCapture={composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)}\n />\n );\n}\n\nThumb.displayName = '@mantine/core/ScrollAreaThumb';\n\ninterface ScrollAreaThumbProps extends ThumbProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaThumb(props: ScrollAreaThumbProps) {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext();\n\n if (forceMount || scrollbarContext.hasThumb) {\n return <Thumb {...thumbProps} />;\n }\n\n return null;\n}\n\nScrollAreaThumb.displayName = '@mantine/core/ScrollAreaThumb';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaThumb.cjs","names":["useScrollAreaContext","useScrollbarContext","addUnlinkedScrollListener","composeEventHandlers"],"sources":["../../../../src/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useDebouncedCallback, useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useScrollbarContext } from '../ScrollAreaScrollbar/Scrollbar.context';\nimport { addUnlinkedScrollListener, composeEventHandlers } from '../utils';\n\ninterface ThumbProps extends React.ComponentProps<'div'> {}\n\nexport function Thumb(props: ThumbProps) {\n const { style, ref: forwardedRef, ...others } = props;\n const scrollAreaContext = useScrollAreaContext();\n const scrollbarContext = useScrollbarContext();\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useMergedRef(forwardedRef, scrollbarContext.onThumbChange);\n const removeUnlinkedScrollListenerRef = useRef<(() => void) | undefined>(undefined);\n const debounceScrollEnd = useDebouncedCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n useEffect(() => {\n const { viewport } = scrollAreaContext;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n\n return undefined;\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n <div\n data-state={scrollbarContext.hasThumb ? 'visible' : 'hidden'}\n {...others}\n ref={composedRef}\n style={{\n width: 'var(--sa-thumb-width)',\n height: 'var(--sa-thumb-height)',\n ...style,\n }}\n onPointerDownCapture={composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)}\n />\n );\n}\n\nThumb.displayName = '@mantine/core/ScrollAreaThumb';\n\ninterface ScrollAreaThumbProps extends ThumbProps {\n forceMount?: true;\n}\n\nexport function ScrollAreaThumb(props: ScrollAreaThumbProps) {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext();\n\n if (forceMount || scrollbarContext.hasThumb) {\n return <Thumb {...thumbProps} />;\n }\n\n return null;\n}\n\nScrollAreaThumb.displayName = '@mantine/core/ScrollAreaThumb';\n"],"mappings":";;;;;;;;;AAQA,SAAgB,MAAM,OAAmB;CACvC,MAAM,EAAE,OAAO,KAAK,cAAc,GAAG,WAAW;CAChD,MAAM,oBAAoBA,2BAAAA,qBAAqB;CAC/C,MAAM,mBAAmBC,0BAAAA,oBAAoB;CAC7C,MAAM,EAAE,0BAA0B;CAClC,MAAM,eAAA,GAAA,eAAA,cAA2B,cAAc,iBAAiB,aAAa;CAC7E,MAAM,mCAAA,GAAA,MAAA,QAAmE,KAAA,CAAS;CAClF,MAAM,qBAAA,GAAA,eAAA,4BAA+C;EACnD,IAAI,gCAAgC,SAAS;GAC3C,gCAAgC,QAAQ;GACxC,gCAAgC,UAAU,KAAA;EAC5C;CACF,GAAG,GAAG;CAEN,CAAA,GAAA,MAAA,iBAAgB;EACd,MAAM,EAAE,aAAa;EACrB,IAAI,UAAU;GACZ,MAAM,qBAAqB;IACzB,kBAAkB;IAClB,IAAI,CAAC,gCAAgC,SAAS;KAE5C,gCAAgC,UADfC,qCAAAA,0BAA0B,UAAU,qBACJ;KACjD,sBAAsB;IACxB;GACF;GACA,sBAAsB;GACtB,SAAS,iBAAiB,UAAU,YAAY;GAChD,aAAa,SAAS,oBAAoB,UAAU,YAAY;EAClE;CAGF,GAAG;EAAC,kBAAkB;EAAU;EAAmB;CAAqB,CAAC;CAEzE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,cAAY,iBAAiB,WAAW,YAAY;EACpD,GAAI;EACJ,KAAK;EACL,OAAO;GACL,OAAO;GACP,QAAQ;GACR,GAAG;EACL;EACA,sBAAsBC,+BAAAA,qBAAqB,MAAM,uBAAuB,UAAU;GAEhF,MAAM,YADQ,MAAM,OACI,sBAAsB;GAC9C,MAAM,IAAI,MAAM,UAAU,UAAU;GACpC,MAAM,IAAI,MAAM,UAAU,UAAU;GACpC,iBAAiB,mBAAmB;IAAE;IAAG;GAAE,CAAC;EAC9C,CAAC;EACD,aAAaA,+BAAAA,qBAAqB,MAAM,aAAa,iBAAiB,gBAAgB;CACvF,CAAA;AAEL;AAEA,MAAM,cAAc;AAMpB,SAAgB,gBAAgB,OAA6B;CAC3D,MAAM,EAAE,YAAY,GAAG,eAAe;CACtC,MAAM,mBAAmBF,0BAAAA,oBAAoB;CAE7C,IAAI,cAAc,iBAAiB,UACjC,OAAO,iBAAA,GAAA,kBAAA,KAAC,OAAD,EAAO,GAAI,WAAa,CAAA;CAGjC,OAAO;AACT;AAEA,gBAAgB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAreaViewport.cjs","names":["useScrollAreaContext","Box"],"sources":["../../../../src/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.tsx"],"sourcesContent":["import { useMergedRef } from '@mantine/hooks';\nimport { Box, BoxProps, ElementProps } from '../../../core';\nimport { useScrollAreaContext } from '../ScrollArea.context';\n\nexport interface ScrollAreaViewportProps extends BoxProps, ElementProps<'div'> {}\n\nexport function ScrollAreaViewport({\n children,\n style,\n ref,\n onWheel,\n ...others\n}: ScrollAreaViewportProps) {\n const ctx = useScrollAreaContext();\n const rootRef = useMergedRef(ref, ctx.onViewportChange);\n\n const handleWheel = (event: React.WheelEvent<HTMLDivElement>) => {\n onWheel?.(event);\n\n // Fix for Windows: Allow horizontal scrolling even when vertical scroll is at boundaries\n // When at vertical boundaries, Windows tries to scroll the parent/page instead of allowing horizontal scroll\n if (ctx.scrollbarXEnabled && ctx.viewport && event.shiftKey) {\n const { scrollTop, scrollHeight, clientHeight, scrollWidth, clientWidth } = ctx.viewport;\n const isAtTop = scrollTop < 1;\n const isAtBottom = scrollTop >= scrollHeight - clientHeight - 1;\n const canScrollHorizontally = scrollWidth > clientWidth;\n\n if (canScrollHorizontally && (isAtTop || isAtBottom)) {\n event.stopPropagation();\n }\n }\n };\n\n return (\n <Box\n {...others}\n ref={rootRef}\n onWheel={handleWheel}\n style={{\n overflowX: ctx.scrollbarXEnabled ? 'scroll' : 'hidden',\n overflowY: ctx.scrollbarYEnabled ? 'scroll' : 'hidden',\n ...style,\n }}\n >\n <div {...ctx.getStyles('content')} ref={ctx.onContentChange}>\n {children}\n </div>\n </Box>\n );\n}\n\nScrollAreaViewport.displayName = '@mantine/core/ScrollAreaViewport';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScrollAreaViewport.cjs","names":["useScrollAreaContext","Box"],"sources":["../../../../src/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.tsx"],"sourcesContent":["import { useMergedRef } from '@mantine/hooks';\nimport { Box, BoxProps, ElementProps } from '../../../core';\nimport { useScrollAreaContext } from '../ScrollArea.context';\n\nexport interface ScrollAreaViewportProps extends BoxProps, ElementProps<'div'> {}\n\nexport function ScrollAreaViewport({\n children,\n style,\n ref,\n onWheel,\n ...others\n}: ScrollAreaViewportProps) {\n const ctx = useScrollAreaContext();\n const rootRef = useMergedRef(ref, ctx.onViewportChange);\n\n const handleWheel = (event: React.WheelEvent<HTMLDivElement>) => {\n onWheel?.(event);\n\n // Fix for Windows: Allow horizontal scrolling even when vertical scroll is at boundaries\n // When at vertical boundaries, Windows tries to scroll the parent/page instead of allowing horizontal scroll\n if (ctx.scrollbarXEnabled && ctx.viewport && event.shiftKey) {\n const { scrollTop, scrollHeight, clientHeight, scrollWidth, clientWidth } = ctx.viewport;\n const isAtTop = scrollTop < 1;\n const isAtBottom = scrollTop >= scrollHeight - clientHeight - 1;\n const canScrollHorizontally = scrollWidth > clientWidth;\n\n if (canScrollHorizontally && (isAtTop || isAtBottom)) {\n event.stopPropagation();\n }\n }\n };\n\n return (\n <Box\n {...others}\n ref={rootRef}\n onWheel={handleWheel}\n style={{\n overflowX: ctx.scrollbarXEnabled ? 'scroll' : 'hidden',\n overflowY: ctx.scrollbarYEnabled ? 'scroll' : 'hidden',\n ...style,\n }}\n >\n <div {...ctx.getStyles('content')} ref={ctx.onContentChange}>\n {children}\n </div>\n </Box>\n );\n}\n\nScrollAreaViewport.displayName = '@mantine/core/ScrollAreaViewport';\n"],"mappings":";;;;;;AAMA,SAAgB,mBAAmB,EACjC,UACA,OACA,KACA,SACA,GAAG,UACuB;CAC1B,MAAM,MAAMA,2BAAAA,qBAAqB;CACjC,MAAM,WAAA,GAAA,eAAA,cAAuB,KAAK,IAAI,gBAAgB;CAEtD,MAAM,eAAe,UAA4C;EAC/D,UAAU,KAAK;EAIf,IAAI,IAAI,qBAAqB,IAAI,YAAY,MAAM,UAAU;GAC3D,MAAM,EAAE,WAAW,cAAc,cAAc,aAAa,gBAAgB,IAAI;GAChF,MAAM,UAAU,YAAY;GAC5B,MAAM,aAAa,aAAa,eAAe,eAAe;GAG9D,IAF8B,cAAc,gBAEd,WAAW,aACvC,MAAM,gBAAgB;EAE1B;CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EACE,GAAI;EACJ,KAAK;EACL,SAAS;EACT,OAAO;GACL,WAAW,IAAI,oBAAoB,WAAW;GAC9C,WAAW,IAAI,oBAAoB,WAAW;GAC9C,GAAG;EACL;YAEA,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAK,GAAI,IAAI,UAAU,SAAS;GAAG,KAAK,IAAI;GACzC;EACE,CAAA;CACF,CAAA;AAET;AAEA,mBAAmB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-resize-observer.cjs","names":[],"sources":["../../../src/components/ScrollArea/use-resize-observer.ts"],"sourcesContent":["import { useEffectEvent } from 'react';\nimport { useIsomorphicEffect } from '@mantine/hooks';\n\nexport function useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useEffectEvent(onResize);\n\n useIsomorphicEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n\n resizeObserver.observe(element);\n\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n\n return undefined;\n }, [element]);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-resize-observer.cjs","names":[],"sources":["../../../src/components/ScrollArea/use-resize-observer.ts"],"sourcesContent":["import { useEffectEvent } from 'react';\nimport { useIsomorphicEffect } from '@mantine/hooks';\n\nexport function useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useEffectEvent(onResize);\n\n useIsomorphicEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n\n resizeObserver.observe(element);\n\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n\n return undefined;\n }, [element]);\n}\n"],"mappings":";;;;AAGA,SAAgB,kBAAkB,SAA6B,UAAsB;CACnF,MAAM,gBAAA,GAAA,MAAA,gBAA8B,QAAQ;CAE5C,CAAA,GAAA,eAAA,2BAA0B;EACxB,IAAI,MAAM;EACV,IAAI,SAAS;GACX,MAAM,iBAAiB,IAAI,qBAAqB;IAC9C,qBAAqB,GAAG;IACxB,MAAM,OAAO,sBAAsB,YAAY;GACjD,CAAC;GAED,eAAe,QAAQ,OAAO;GAE9B,aAAa;IACX,OAAO,qBAAqB,GAAG;IAC/B,eAAe,UAAU,OAAO;GAClC;EACF;CAGF,GAAG,CAAC,OAAO,CAAC;AACd"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_rem = require("../../core/utils/units-converters/rem.cjs");
|
|
4
3
|
const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs");
|
|
5
4
|
const require_get_theme_color = require("../../core/MantineProvider/color-functions/get-theme-color/get-theme-color.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scroller.cjs","names":["createVarsResolver","rem","getThemeColor","factory","useProps","useStyles","Box","UnstyledButton","AccordionChevron","classes"],"sources":["../../../src/components/Scroller/Scroller.tsx"],"sourcesContent":["import { Ref } from 'react';\nimport { useScroller } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getThemeColor,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { AccordionChevron } from '../Accordion';\nimport { UnstyledButton } from '../UnstyledButton';\nimport classes from './Scroller.module.css';\n\nexport type ScrollerStylesNames = 'root' | 'container' | 'content' | 'control' | 'chevron';\nexport type ScrollerCssVariables = {\n root: '--scroller-control-size' | '--scroller-background-color';\n};\n\nexport interface ScrollerProps\n extends BoxProps, StylesApiProps<ScrollerFactory>, ElementProps<'div'> {\n /** Content to display */\n children: React.ReactNode;\n\n /** Amount of pixels to scroll when clicking the control buttons, `200` by default */\n scrollAmount?: number;\n\n /** Size of the control buttons, @default 60px */\n controlSize?: string | number;\n\n /** Background color for the gradient fade on controls, `'var(--mantine-color-body)'` by default */\n edgeGradientColor?: string;\n\n /** Props passed to the start control button */\n startControlProps?: React.ComponentProps<'button'>;\n\n /** Props passed to the end control button */\n endControlProps?: React.ComponentProps<'button'>;\n\n /** Icon component for the start control, AccordionChevron by default */\n startControlIcon?: React.ReactNode;\n\n /** Icon component for the end control, AccordionChevron by default */\n endControlIcon?: React.ReactNode;\n\n /** Determines whether start control should always be visible regardless of scroll position, `false` by default */\n showStartControl?: boolean;\n\n /** Determines whether end control should always be visible regardless of scroll position, `false` by default */\n showEndControl?: boolean;\n\n /** Determines whether content can be scrolled by dragging with mouse, `true` by default */\n draggable?: boolean;\n\n /** Ref for the scroll container element */\n ref?: Ref<HTMLDivElement>;\n}\n\nexport type ScrollerFactory = Factory<{\n props: ScrollerProps;\n ref: HTMLDivElement;\n stylesNames: ScrollerStylesNames;\n vars: ScrollerCssVariables;\n}>;\n\nconst defaultProps: Partial<ScrollerProps> = {\n scrollAmount: 200,\n draggable: true,\n};\n\nconst varsResolver = createVarsResolver<ScrollerFactory>(\n (theme, { controlSize, edgeGradientColor }) => ({\n root: {\n '--scroller-control-size': rem(controlSize),\n '--scroller-background-color': edgeGradientColor\n ? getThemeColor(edgeGradientColor, theme)\n : undefined,\n },\n })\n);\n\nexport const Scroller = factory<ScrollerFactory>((_props) => {\n const props = useProps('Scroller', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n scrollAmount,\n controlSize,\n edgeGradientColor,\n startControlProps,\n endControlProps,\n startControlIcon,\n endControlIcon,\n showStartControl,\n showEndControl,\n draggable,\n mod,\n ref,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<ScrollerFactory>({\n name: 'Scroller',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n attributes,\n });\n\n const scroller = useScroller({\n scrollAmount,\n draggable,\n });\n\n const showStart = showStartControl || scroller.canScrollStart;\n const showEnd = showEndControl || scroller.canScrollEnd;\n\n return (\n <Box {...getStyles('root')} ref={ref} mod={mod} {...others}>\n <UnstyledButton\n {...getStyles('control')}\n onClick={scroller.scrollStart}\n data-position=\"start\"\n data-hidden={!showStart || undefined}\n aria-label=\"Scroll left\"\n tabIndex={showStart ? 0 : -1}\n {...startControlProps}\n >\n {startControlIcon || <AccordionChevron {...getStyles('chevron')} />}\n </UnstyledButton>\n\n <div\n {...getStyles('container')}\n ref={scroller.ref}\n role=\"presentation\"\n data-draggable={draggable || undefined}\n {...scroller.dragHandlers}\n >\n <div {...getStyles('content')}>{children}</div>\n </div>\n\n <UnstyledButton\n {...getStyles('control')}\n onClick={scroller.scrollEnd}\n data-position=\"end\"\n data-hidden={!showEnd || undefined}\n aria-label=\"Scroll right\"\n tabIndex={showEnd ? 0 : -1}\n {...endControlProps}\n >\n {endControlIcon || <AccordionChevron {...getStyles('chevron')} />}\n </UnstyledButton>\n </Box>\n );\n});\n\nScroller.classes = classes;\nScroller.varsResolver = varsResolver;\nScroller.displayName = '@mantine/core/Scroller';\n\nexport namespace Scroller {\n export type Props = ScrollerProps;\n export type StylesNames = ScrollerStylesNames;\n export type CssVariables = ScrollerCssVariables;\n export type Factory = ScrollerFactory;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Scroller.cjs","names":["createVarsResolver","rem","getThemeColor","factory","useProps","useStyles","Box","UnstyledButton","AccordionChevron","classes"],"sources":["../../../src/components/Scroller/Scroller.tsx"],"sourcesContent":["import { Ref } from 'react';\nimport { useScroller } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getThemeColor,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { AccordionChevron } from '../Accordion';\nimport { UnstyledButton } from '../UnstyledButton';\nimport classes from './Scroller.module.css';\n\nexport type ScrollerStylesNames = 'root' | 'container' | 'content' | 'control' | 'chevron';\nexport type ScrollerCssVariables = {\n root: '--scroller-control-size' | '--scroller-background-color';\n};\n\nexport interface ScrollerProps\n extends BoxProps, StylesApiProps<ScrollerFactory>, ElementProps<'div'> {\n /** Content to display */\n children: React.ReactNode;\n\n /** Amount of pixels to scroll when clicking the control buttons, `200` by default */\n scrollAmount?: number;\n\n /** Size of the control buttons, @default 60px */\n controlSize?: string | number;\n\n /** Background color for the gradient fade on controls, `'var(--mantine-color-body)'` by default */\n edgeGradientColor?: string;\n\n /** Props passed to the start control button */\n startControlProps?: React.ComponentProps<'button'>;\n\n /** Props passed to the end control button */\n endControlProps?: React.ComponentProps<'button'>;\n\n /** Icon component for the start control, AccordionChevron by default */\n startControlIcon?: React.ReactNode;\n\n /** Icon component for the end control, AccordionChevron by default */\n endControlIcon?: React.ReactNode;\n\n /** Determines whether start control should always be visible regardless of scroll position, `false` by default */\n showStartControl?: boolean;\n\n /** Determines whether end control should always be visible regardless of scroll position, `false` by default */\n showEndControl?: boolean;\n\n /** Determines whether content can be scrolled by dragging with mouse, `true` by default */\n draggable?: boolean;\n\n /** Ref for the scroll container element */\n ref?: Ref<HTMLDivElement>;\n}\n\nexport type ScrollerFactory = Factory<{\n props: ScrollerProps;\n ref: HTMLDivElement;\n stylesNames: ScrollerStylesNames;\n vars: ScrollerCssVariables;\n}>;\n\nconst defaultProps: Partial<ScrollerProps> = {\n scrollAmount: 200,\n draggable: true,\n};\n\nconst varsResolver = createVarsResolver<ScrollerFactory>(\n (theme, { controlSize, edgeGradientColor }) => ({\n root: {\n '--scroller-control-size': rem(controlSize),\n '--scroller-background-color': edgeGradientColor\n ? getThemeColor(edgeGradientColor, theme)\n : undefined,\n },\n })\n);\n\nexport const Scroller = factory<ScrollerFactory>((_props) => {\n const props = useProps('Scroller', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n scrollAmount,\n controlSize,\n edgeGradientColor,\n startControlProps,\n endControlProps,\n startControlIcon,\n endControlIcon,\n showStartControl,\n showEndControl,\n draggable,\n mod,\n ref,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<ScrollerFactory>({\n name: 'Scroller',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n attributes,\n });\n\n const scroller = useScroller({\n scrollAmount,\n draggable,\n });\n\n const showStart = showStartControl || scroller.canScrollStart;\n const showEnd = showEndControl || scroller.canScrollEnd;\n\n return (\n <Box {...getStyles('root')} ref={ref} mod={mod} {...others}>\n <UnstyledButton\n {...getStyles('control')}\n onClick={scroller.scrollStart}\n data-position=\"start\"\n data-hidden={!showStart || undefined}\n aria-label=\"Scroll left\"\n tabIndex={showStart ? 0 : -1}\n {...startControlProps}\n >\n {startControlIcon || <AccordionChevron {...getStyles('chevron')} />}\n </UnstyledButton>\n\n <div\n {...getStyles('container')}\n ref={scroller.ref}\n role=\"presentation\"\n data-draggable={draggable || undefined}\n {...scroller.dragHandlers}\n >\n <div {...getStyles('content')}>{children}</div>\n </div>\n\n <UnstyledButton\n {...getStyles('control')}\n onClick={scroller.scrollEnd}\n data-position=\"end\"\n data-hidden={!showEnd || undefined}\n aria-label=\"Scroll right\"\n tabIndex={showEnd ? 0 : -1}\n {...endControlProps}\n >\n {endControlIcon || <AccordionChevron {...getStyles('chevron')} />}\n </UnstyledButton>\n </Box>\n );\n});\n\nScroller.classes = classes;\nScroller.varsResolver = varsResolver;\nScroller.displayName = '@mantine/core/Scroller';\n\nexport namespace Scroller {\n export type Props = ScrollerProps;\n export type StylesNames = ScrollerStylesNames;\n export type CssVariables = ScrollerCssVariables;\n export type Factory = ScrollerFactory;\n}\n"],"mappings":";;;;;;;;;;;;;;AAsEA,MAAM,eAAuC;CAC3C,cAAc;CACd,WAAW;AACb;AAEA,MAAM,eAAeA,6BAAAA,oBAClB,OAAO,EAAE,aAAa,yBAAyB,EAC9C,MAAM;CACJ,2BAA2BC,YAAAA,IAAI,WAAW;CAC1C,+BAA+B,oBAC3BC,wBAAAA,cAAc,mBAAmB,KAAK,IACtC,KAAA;AACN,EACF,EACF;AAEA,MAAa,WAAWC,gBAAAA,SAA0B,WAAW;CAC3D,MAAM,QAAQC,kBAAAA,SAAS,YAAY,cAAc,MAAM;CACvD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,UACA,cACA,aACA,mBACA,mBACA,iBACA,kBACA,gBACA,kBACA,gBACA,WACA,KACA,KACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAA2B;EAC3C,MAAM;EACN,SAAA,wBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,YAAA,GAAA,eAAA,aAAuB;EAC3B;EACA;CACF,CAAC;CAED,MAAM,YAAY,oBAAoB,SAAS;CAC/C,MAAM,UAAU,kBAAkB,SAAS;CAE3C,OACE,iBAAA,GAAA,kBAAA,MAACC,YAAAA,KAAD;EAAK,GAAI,UAAU,MAAM;EAAQ;EAAU;EAAK,GAAI;YAApD;GACE,iBAAA,GAAA,kBAAA,KAACC,uBAAAA,gBAAD;IACE,GAAI,UAAU,SAAS;IACvB,SAAS,SAAS;IAClB,iBAAc;IACd,eAAa,CAAC,aAAa,KAAA;IAC3B,cAAW;IACX,UAAU,YAAY,IAAI;IAC1B,GAAI;cAEH,oBAAoB,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,kBAAD,EAAkB,GAAI,UAAU,SAAS,EAAI,CAAA;GACpD,CAAA;GAEhB,iBAAA,GAAA,kBAAA,KAAC,OAAD;IACE,GAAI,UAAU,WAAW;IACzB,KAAK,SAAS;IACd,MAAK;IACL,kBAAgB,aAAa,KAAA;IAC7B,GAAI,SAAS;cAEb,iBAAA,GAAA,kBAAA,KAAC,OAAD;KAAK,GAAI,UAAU,SAAS;KAAI;IAAc,CAAA;GAC3C,CAAA;GAEL,iBAAA,GAAA,kBAAA,KAACD,uBAAAA,gBAAD;IACE,GAAI,UAAU,SAAS;IACvB,SAAS,SAAS;IAClB,iBAAc;IACd,eAAa,CAAC,WAAW,KAAA;IACzB,cAAW;IACX,UAAU,UAAU,IAAI;IACxB,GAAI;cAEH,kBAAkB,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,kBAAD,EAAkB,GAAI,UAAU,SAAS,EAAI,CAAA;GAClD,CAAA;EACb;;AAET,CAAC;AAED,SAAS,UAAUC,wBAAAA;AACnB,SAAS,eAAe;AACxB,SAAS,cAAc"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
2
|
const require_get_size = require("../../core/utils/get-size/get-size.cjs");
|
|
4
3
|
const require_primitive = require("../../core/utils/primitive/primitive.cjs");
|
|
5
4
|
const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs");
|