Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
@snack-uikit/popover-private
Advanced tools
npm i @snack-uikit/popover-private
import { PopoverPrivate } from "@snack-uikit/popover-private";
function App() {
return (
<PopoverPrivate
placement='top'
popoverContent='Не нажимать, опасно!'
trigger='click'
>
<button>Button with popover</button>
</PopoverPrivate>
);
}
name | type | default value | description |
---|---|---|---|
trigger* | enum Trigger: "click" , "hover" , "focusVisible" , "focus" , "hoverAndFocusVisible" , "hoverAndFocus" , "clickAndFocusVisible" | - | Условие отображения поповера: - click - открывать по клику - hover - открывать по ховеру - focusVisible - открывать по focus-visible - focus - открывать по фокусу - hoverAndFocusVisible - открывать по ховеру и focus-visible - hoverAndFocus - открывать по ховеру и фокусу - clickAndFocusVisible - открывать по клику и focus-visible |
popoverContent* | ReactNode | ReactNode[] | - | Контент поповера |
children* | ReactNode | ChildrenFunction | - | Триггер поповера (подробнее читайте ниже) |
placement* | enum Placement: "left" , "left-start" , "left-end" , "right" , "right-start" , "right-end" , "top" , "top-start" , "top-end" , "bottom" , "bottom-start" , "bottom-end" | top | Положение поповера относительно своего триггера (children). |
open | boolean | - | Управляет состоянием показан/не показан. |
onOpenChange | (isOpen: boolean) => void | - | Колбек отображения компонента. Срабатывает при изменении состояния open. |
outsideClick | boolean | OutsideClickHandler | - | Закрывать ли при клике вне поповера |
className | string | - | CSS-класс |
triggerClassName | string | - | CSS-класс триггера |
hasArrow | boolean | - | Параметр наличия стрелки у поповера. В размеры стрелки встроен отступ. Дополнительный отступ может быть задан параметром offset . У элемента стрелки нет цвета, необходимо задавать его через параметр arrowClassName . |
arrowContainerClassName | string | - | CSS-класс контейнера стрелки поповера |
arrowElementClassName | string | - | CSS-класс стрелки поповера |
offset | number | 0 | Отступ поповера от его триггер-элемента (в пикселях). |
hoverDelayOpen | number | - | Задержка открытия по ховеру |
hoverDelayClose | number | - | Задержка закрытия по ховеру |
triggerRef | ForwardedRef<ReferenceType | HTMLElement> | - | Ref ссылка на триггер |
widthStrategy | enum PopoverWidthStrategy: "auto" , "gte" , "eq" | auto | Стратегия управления шириной контейнера поповера - auto - соответствует ширине контента, - gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - eq - Equal, строго равен ширине таргета. |
heightStrategy | enum PopoverHeightStrategy: "auto" , "eq" , "lte" | auto | Стратегия управления высотой контейнера поповера - auto - соответствует высоте контента, - lte - Less Than or Equal, равен высоте таргета или меньше ее, если контент в поповере меньше, - eq - Equal, строго равен высоте таргета. |
closeOnEscapeKey | boolean | true | Закрывать ли по нажатию на кнопку Esc |
triggerClickByKeys | boolean | true | Вызывается ли попоповер по нажатию клавиш Enter/Space (при trigger = click ) |
fallbackPlacements | Placement[] | - | Цепочка расположений которая будет применяться к поповеру от первого к последнему если при текущем он не влезает. |
disableSpanWrapper | boolean | - | Отключает для isValidElement внешнюю обертку триггера Пригодится для элементов с position: absolute |
children: ReactNode | ChildrenFunction
Референс, относительно которого рисуется поповер. Возможно несколько вариантов:
в children
передан компонент, который принимает в себя ref
. В таком случае пропсы этого компонента будут дополнены необходимыми для работы триггеров отображения: useHoverTrigger
, useClickTrigger
, useFocusTrigger
.
Осторожно,
ref
будет перезаписан. Если вы хотите получить ref на children поповера, можете передать ref в параметр triggerRef. Тогда поповер установит туда значение:
<PopoverPrivate
popoverContent={<div className={style.content}>some tip here</div>}
useHoverTrigger
triggerRef={(button) => { /* button HTMLElement из children */ }}
>
<button>some button</button>
</PopoverPrivate>
в children
передан компонент, который НЕ принимает в себя ref
. В таком случае компонент будет обернут в span
, который и послужит рефом для поповера.
в children
передана функция. Эта функция будет вызвана на каждый рендер, она должна возвращать ReactNode
. В параметры принимает ref, который нужно установить в целевой компонент и функцию getReferenceProps
, возвращающую необходимые для ref параметры.
Пример:
<PopoverPrivate
popoverContent={<div className={style.content}>some tip here</div>}
useHoverTrigger
>
{({ getReferenceProps, ref }) => (
<label>
Set the value
<input ref={ref} {...getReferenceProps({ onClick: onClickInputHandler })} />
</label>
)}
</PopoverPrivate>
в children
передан примитив string, number или React.Fragment. Children будет обернут в span
.
FAQs
Unknown package
We found that @snack-uikit/popover-private demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.