@startlibs/components 1.1.0 → 1.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.mjs","sources":["../src/ContextMenu.jsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, useRef, forwardRef} from 'react';\nimport ReactDOM from 'react-dom'\nimport styled, {css, isStyledComponent} from 'styled-components'\n\nimport {\n Fill,\n useEnsureRef,\n useRefState,\n useToggle,\n willUseLayers,\n willUseSharedState\n} from '@startlibs/core';\nimport {darken, transparentize} from 'polished'\nimport {isMemo} from 'react-is'\nimport {\n stopPropagation,\n getColor,\n ifProp,\n callIfFunction,\n customTheme,\n oneWayAnimation,\n animationTiming,\n styledExtend,\n media\n} from '@startlibs/utils'\nimport mitt from 'mitt'\n\nimport {Button} from './Button'\nimport {useFlipEnter, useFlipLeave} from './Flip'\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {getDialogLayersSize} from './containers/DialogContainer'\nimport {usePositioning} from './containers/usePositioning'\nimport {createPressAndMoveEvent, isMobile} from '@startlibs/utils'\n\n\nconst fadeIn = oneWayAnimation('opacity: 0', 'opacity: 1')\nconst slideDown = oneWayAnimation('transform: translateY(-10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideUpOnTop = oneWayAnimation('transform: translateY(10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideRight = oneWayAnimation('transform: translateX(-10px)', 'transform: none;')\nconst slideLeftOnLeft = oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none')\n\nconst popupAnimation = animationTiming('0.2s ease-out')\n\nconst areComponentsEqual = (a,b) => a === b\n\nexport const ListItem = styled.li`\n position: relative;\n font-size: 13px;\n & > * {\n padding: 11px 1.5rem 11px 3.5rem;\n display: block;\n }\n ${props => props.hasSubmenu && `\n & > * {\n padding-right: 3rem;\n }\n `}\n ${Icon}, .icon {\n font-size: ${props => props.iconSize || 23}px;\n position: absolute;\n padding-left: 0.25rem;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3.5rem;\n text-align: center;\n }\n ${media.mobile`\n font-size: 15px;\n & > * {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n ${Icon}, .icon {\n font-size: ${props => (props.iconSize || 23) + 2}px;\n }\n `}\n & > a {\n color: inherit;\n font-weight: inherit;\n text-decoration: inherit;\n }\n & > a, & > label {\n cursor: pointer;\n }\n ${ifProp('hover', css`\n & > a, & > label {\n // background: ${props => lighten(0.53, getColor(\"main\")(props))};\n background: ${props => transparentize(0.88, getColor(\"main\")(props))};\n color: ${props => darken(0.03, getColor(\"main\")(props))};\n }`)}\n ${ifProp('highlight', css`\n color: ${getColor('main')};\n `)}\n input[type=\"radio\"] {\n display: none;\n }\n ${ifProp('noActions', `\n max-width: 17rem;\n color: rgba(0,0,0,0.4);\n pointer-events: none;\n text-align: center;\n white-space: normal;\n `)}\n ${ifProp('withButton', css`\n padding: 0.25rem 1rem;\n ${Button} {\n width: 100%;\n color: white;\n font-weight: 500;\n padding: 10px 1.25rem;\n ${media.mobile`\n padding: 13px 1.25rem;\n `}\n }\n `)}\n ${ifProp('smallPaddingRight', css`\n & > * {\n padding-right: 1.5rem;\n }\n `)}\n ${customTheme('ListItem')}\n`\n\nconst ListItemDescText = styled.div`\n font-size: 11px;\n margin-top: 0.25rem;\n opacity: 0.6;\n ${media.mobile `\n font-size: 12px;\n `}\n`\nconst ListItemHelpText = styled.span`\n opacity: 0.5;\n`\n\nexport const ListMenu = styled.ul`\n padding: 0.5rem 0;\n cursor: default;\n overflowY: auto;\n text-align: left;\n color: inherit;\n user-select: none;\n`\n\nexport const ContextListMenu = styled(ListMenu)`\n position: absolute;\n z-index: 999;\n background-color: white;\n backdrop-filter: blur(20px);\n background-color: rgb(255 255 255 / 80%);\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 0px 2px 0px rgba(0,0,0,0.2);\n border-radius: 12px;\n margin-bottom: 0.5rem;\n overflow: auto;\n max-height: 100vh;\n max-height: 100dvh;\n max-width: 100vw;\n max-width: 100dvw;\n ${props => props.withoutIcons && `\n ${ListItem} > * {\n padding-left: 1.5rem;\n }\n `}\n ${ifProp('sub', css`\n ${props => props.fullHeight ? '' : (props.atTop ? 'margin-top: -0.5rem;' : 'margin-top: 0.5rem;')}\n\n ${ifProp('atRight', `\n margin-left: -4px;\n `, `\n margin-left: 4px;\n `)}\n `)}\n ${customTheme('ContextMenu')}\n`\n\nexport const StickyContainer = styled.div`\n position: sticky;\n background: white;\n ${props => props.atBottom && `\n bottom: -0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: -0.5rem;\n `}\n ${props => props.atTop && `\n top: -0.5rem;\n padding-top: 0.5rem;\n margin-top: -0.5rem;\n `}\n`\n\nexport const ListSeparator = styled.li`\n border-bottom: 1px solid rgba(0,0,0,0.1);\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n cursor: default;\n height: 0;\n ${ifProp('lighten', css`\n border-color: rgba(255,255,255,0.15);\n `)}\n`\n\nexport const ListHeading = styled.li`\n display: flex;\n align-items: center;\n padding: .5rem 1rem;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n text-transform: uppercase;\n :after {\n content: '';\n flex-grow: 1;\n margin-left: 0.75rem;\n height: 1px;\n background: rgba(0,0,0,0.15);\n }\n`\n\nconst SubmenuArrowIcon = styledExtend(Icon)`\n font-size: 13px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem;\n text-align: center;\n`\n\n\nlet layerCursor = 0\n\nexport class SimpleLi extends React.Component {\n\n static isKeyboardNavigable = true\n static defaultProps = {\n emitter: mitt()\n }\n\n componentWillUnmount() {\n this.props.emitter.off('confirm', this.confirm)\n }\n\n componentDidUpdate() {\n if (this.props.hover) {\n this.scrollToVisibility()\n }\n }\n\n componentDidMount() {\n this.props.emitter.on('confirm', this.confirm)\n if (this.props.selected && this.props.setCursorOnHover) {\n this.props.setCursorOnHover(this.props.index)\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n list.scrollTop = el.offsetTop + (el.offsetHeight / 2) - (list.offsetHeight / 2)\n }\n }\n\n scrollToVisibility = () => {\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n if (el.offsetTop < list.scrollTop) {\n list.scrollTop = el.offsetTop\n } else if (el.offsetTop + el.offsetHeight > list.scrollTop + list.offsetHeight) {\n list.scrollTop = el.offsetTop + el.offsetHeight - list.offsetHeight\n }\n }\n\n confirm = () => {\n if (this.props.hover) {\n const node = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n node.click()\n }\n }\n onMouseEnter = () => this.props.setCursorOnHover && this.props.setCursorOnHover(this.props.index)\n onMouseOut = () => this.props.setCursorOnHover && this.props.setCursorOnHover(-1)\n\n touchEnd = (e) => {\n if (this.props.children) {\n e.preventDefault()\n if (!this.props.hover)\n this.onMouseEnter()\n }\n }\n\n onClick = (e) => {\n this.props.onClick && this.props.onClick()\n }\n\n render() {\n const {label, layerIndex, href, linkTo, prefixWith, subMenu, icon, children, ...rest} = this.props\n const Tag = (linkTo) ? Link : 'a'\n return <ListItem\n {...rest}\n onClick={this.onClick}\n onMouseLeave={this.onMouseOut}\n onMouseEnter={this.onMouseEnter}\n onTouchEnd={this.touchEnd}\n >\n <Tag href={href} to={linkTo}>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label}\n </Tag>\n </ListItem>\n }\n}\n\nexport const Li = React.forwardRef(({emitter = mitt(), index, menuSlot, keepOpen, hover, layerIndex, hoverCursor, passTouchThrough, children, setCursorOnHover, onClick, prefixWith, linkTo, icon, label,descText,helpText, target, href, ...rest},ref) => {\n const nodeRef = useEnsureRef(ref)\n const tagRef = useRef()\n const subMenu = useToggle()\n const subPrevented = useRefState(false)\n\n const onOpenSub = () => {\n subPrevented.set(false)\n if (hover && children) {\n subMenu.open()\n }\n }\n\n const onPreventSub = (subIndex) => {\n if (index !== subIndex)\n subMenu.close()\n subPrevented.set(true)\n }\n\n const confirm = () => {\n if (hover) {\n nodeRef.current.click()\n }\n }\n\n useEffect(() => {\n if (hover) {\n try {\n const el = nodeRef.current\n const parent = el.parentElement\n const stickyContainer = parent.lastChild\n const stickyContainerHeight =\n (stickyContainer && stickyContainer.tagName === \"DIV\" && (stickyContainer.offsetTop - parent.scrollTop) < parent.offsetHeight)\n ? stickyContainer.offsetHeight\n : 0\n if (el.offsetTop > parent.offsetHeight + parent.scrollTop - stickyContainerHeight - el.offsetHeight) {\n parent.scroll(0, el.offsetTop - parent.offsetHeight + el.offsetHeight + stickyContainerHeight)\n } else if (el.offsetTop < parent.scrollTop) {\n parent.scroll(0, el.offsetTop)\n }\n } catch (e) {}\n }\n emitter.on('confirm', confirm)\n emitter.on('preventSub', onPreventSub)\n emitter.on('openSub', onOpenSub)\n return () => {\n emitter.off('confirm', confirm)\n emitter.off('preventSub', onPreventSub)\n emitter.off('openSub', onOpenSub)\n }\n }, [hover])\n\n useEffect(() => () => subMenu.close(), [])\n\n useEffect(() => {\n if (children && !isMobile()) {\n if (hover) {\n if (!subMenu.isOpen || subMenu.closing || !subPrevented.get()) {\n subMenu.open()\n }\n } else {\n if (subMenu.isOpen) {\n if (hoverCursor === -1) {\n // Mouse saiu de todos os itens — provavelmente indo até o submenu (que\n // abre ao lado, com um pequeno gap). Janela generosa; ao alcançá-lo, o\n // onMouseEnter/onMouseMove do submenu chama subMenu.open e cancela.\n subMenu.closeAfter(450)\n } else {\n // Mouse foi para outro item do menu — mantém os 200ms originais.\n subMenu.closeAfter(200)\n }\n emitter.emit('preventSub', index)\n }\n }\n }\n }, [hoverCursor])\n\n const onMouseMove = (e) => {\n if (!hover) {\n callIfFunction(setCursorOnHover, index)\n }\n e?.stopPropagation()\n }\n\n const onMouseOut = (e) => {\n callIfFunction(setCursorOnHover, -1)\n e?.stopPropagation()\n }\n\n const onClickHandler = (e) => {\n if (children || keepOpen) {\n e.stopPropagation()\n }\n if (children) {\n if (hover) {\n subMenu.toggle()\n } else {\n onMouseMove()\n }\n } else {\n callIfFunction(onClick, e)\n }\n }\n\n const onCloseSub = () => emitter.emit('openSub')\n\n const addProps = (children) => React.Children.map(children, c => React.cloneElement(c, {\n fixed: rest.fixedPosition,\n closing: subMenu.closing,\n onMouseMove: subMenu.open,\n // onMouseEnter não borbulha, então não é barrado pelo stopPropagation dos itens\n // do submenu (linha onMouseMove do Li). Garante que alcançar o submenu sempre\n // cancele o fechamento agendado por closeAfter(200), mantendo-o aberto.\n onMouseEnter: subMenu.open,\n onClose: onCloseSub,\n sub: true,\n slot: c.props.slot || menuSlot\n }))\n\n const content = <>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label} {helpText && <ListItemHelpText>({helpText})</ListItemHelpText>}\n {descText && <ListItemDescText>{descText}</ListItemDescText>}\n {children && <SubmenuArrowIcon icon=\"arrow-right\"/>}\n </>\n\n const Tag = linkTo ? Link : 'a'\n return <ListItem\n ref={nodeRef}\n {...rest}\n hover={hover}\n onClick={onClickHandler}\n onMouseLeave={onMouseOut}\n onMouseMove={onMouseMove}\n hasSubmenu={children}\n >\n {\n (rest.withButton || rest.noActions)\n ? content\n : <Tag href={href} target={target} to={linkTo} ref={tagRef} onMouseEnter={onMouseMove}>{content}</Tag>\n }\n {\n subMenu.isOpen && addProps(children)\n }\n </ListItem>\n})\nLi.isKeyboardNavigable\nLi.Simple = SimpleLi\n\nconst [useContextMenuLayers, contextMenuLayersSize] = willUseLayers()\nexport const contextMenuLayersQuantity = contextMenuLayersSize\nconst [useContextMenuSharedState] = willUseSharedState()\n\nexport const ContextMenuComponent = forwardRef((\n {\n children, sub, hoverIndex, autoHover, menuSlot, withoutIcons, onClose, onHover = () => 0, fill, onClick, ...props\n },\n unesuredRef\n) => {\n const ref = useEnsureRef(unesuredRef)\n const [hoverCursor, setHoverCursor] = useState(autoHover || sub ? 0 : -1)\n const [layerCursor, setLayerCursor] = useContextMenuSharedState(0)\n\n const [layerIndex, {getSize}] = useContextMenuLayers()\n\n const itemsEmitter = useMemo(() => mitt(), [])\n useEffect(() => {\n window.addEventListener('keydown', keydown)\n return () => {\n callIfFunction(onClose)\n window.removeEventListener('keydown', keydown)\n }\n }, [layerIndex, layerCursor, hoverCursor])\n\n useEffect(() => {\n if (hoverIndex !== undefined) {\n setHoverCursor(Math.min(Math.max(hoverIndex, -1), getTotalKeyboardItems(children) + 1))\n }\n }, [hoverIndex !== hoverCursor])\n\n const keydown = (e) => {\n if (e.keyCode === 37 || e.keyCode === 39) {\n if (!e.defaultPrevented) {\n const layers = getSize()\n const direction = e.keyCode - 38\n setLayerCursor((layerCursor + direction + layers) % layers)\n }\n e.preventDefault()\n }\n if (layerIndex !== layerCursor) return\n if (e.keyCode === 27 && ref.current) {\n ref.current.click()\n }\n if (e.keyCode === 13 || e.keyCode === 32 && hoverCursor >= 0) {// enter\n e.preventDefault()\n itemsEmitter.emit('confirm')\n }\n if (e.keyCode === 38 || e.keyCode === 40) { // up down\n e.preventDefault()\n const direction = e.keyCode - 39\n const max = getTotalKeyboardItems(children)\n const newIndex = (hoverCursor + direction + max) % max\n setHoverCursor(newIndex)\n onHover(newIndex)\n }\n }\n\n const getTotalKeyboardItems = (children) => {\n let sum = 0\n React.Children.forEach(children, child => {\n if (child && !child.props.disabled && !child.props.readOnly) {\n if ((!isStyledComponent(child.type) && child.type === Li) || child.type.isKeyboardNavigable) {\n sum += 1\n }\n if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {\n sum += getTotalKeyboardItems(child.props.children)\n }\n }\n }\n )\n return sum\n }\n\n const setCursorOnHover = (index) => {\n setLayerCursor(layerIndex)\n setHoverCursor(index)\n onHover(index)\n }\n\n const formatChildren = (children, indexRef = {current: 0}) => {\n return React.Children.map(children, (child, j) =>\n child && !child.props.disabled && !child.props.readOnly\n ? (\n child.props.nested\n ? React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef))\n : ((!isStyledComponent(child.type) && !isMemo(child.type) && areComponentsEqual(child.type, Li)) || child.type.isKeyboardNavigable)\n ? React.cloneElement(child, {\n fixedPosition:props.fixed,\n hover: hoverCursor === indexRef.current && layerIndex === layerCursor,\n hoverCursor: hoverCursor,\n index: indexRef.current++,\n setCursorOnHover,\n emitter: itemsEmitter,\n layerIndex: layerIndex,\n menuSlot\n })\n : (\n areComponentsEqual(child.type, StickyContainer)\n ? React.cloneElement(child, {\n ...child.props,\n children: formatChildren(child.props.children, indexRef)\n })\n : child\n )\n )\n : child\n )\n }\n\n const touchStart = createPressAndMoveEvent((e,prevPos) => {\n // e.preventDefault()\n e.stopPropagation()\n e.target.dispatchEvent(new MouseEvent('mousemove', {bubbles: true}))\n let passedResistance = false\n return (e,nextPos) => {\n const delta = prevPos.clientY - nextPos.clientY\n if (Math.abs(delta) > 10) {\n passedResistance = true\n setCursorOnHover(-1)\n }\n }\n })\n\n return (\n <ContextListMenu\n data-drag={false}\n ref={ref}\n sub={sub}\n onWheel={e => e.stopPropagation()}\n onTouchStart={touchStart}\n withoutIcons={withoutIcons}\n onMouseDown={stopPropagation()}\n {...props}\n >\n {formatChildren(children)}\n </ContextListMenu>\n )\n})\n\n\nexport const ContextMenu = forwardRef(({slot = 'Popup', sub, withoutIcons, children, ...rest}, ref) => {\n const contextMenuRef = useEnsureRef(ref)\n const [positionInfo, placeholder, arrow] = usePositioning(contextMenuRef, rest)\n const {atRight, atBottom} = {...positionInfo}\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n\n const enterAnimation = useMemo(() => [fadeIn, sub ? (atRight ? slideRight : slideLeftOnLeft) : (atBottom ? slideDown : slideUpOnTop)], [atRight, atBottom])\n useFlipEnter(contextMenuRef, !!positionInfo && enterAnimation)\n useFlipLeave(contextMenuRef, !!positionInfo && enterAnimation, sub && {events: {mouseover: rest.onMouseMove}})\n return <>\n {placeholder}\n <Fill name={slotName}>\n <ContextMenuComponent {...rest} menuSlot={slot} sub={sub} {...positionInfo} ref={contextMenuRef} withoutIcons={withoutIcons}>\n {arrow}\n {children}\n </ContextMenuComponent>\n </Fill>\n </>\n})\n\nContextMenu.ListItem = ListItem\n"],"names":["fadeIn","oneWayAnimation","slideDown","slideUpOnTop","slideRight","slideLeftOnLeft","animationTiming","areComponentsEqual","a","b","ListItem","styled","li","withConfig","displayName","componentId","props","hasSubmenu","Icon","iconSize","media","mobile","_templateObject","_taggedTemplateLiteral","ifProp","css","transparentize","getColor","darken","Button","_templateObject2","customTheme","ListItemDescText","div","_templateObject3","ListItemHelpText","span","ListMenu","ul","ContextListMenu","withoutIcons","concat","fullHeight","atTop","StickyContainer","atBottom","ListSeparator","ListHeading","SubmenuArrowIcon","styledExtend","_templateObject4","SimpleLi","React","Component","constructor","arguments","scrollToVisibility","el","ReactDOM","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","findDOMNode","list","parentNode","offsetTop","scrollTop","offsetHeight","confirm","hover","node","click","onMouseEnter","setCursorOnHover","index","onMouseOut","touchEnd","e","children","preventDefault","onClick","componentWillUnmount","emitter","off","componentDidUpdate","componentDidMount","on","selected","render","_this$props","label","layerIndex","href","linkTo","prefixWith","subMenu","icon","rest","_objectWithoutProperties","_excluded","Tag","Link","createElement","_extends","onMouseLeave","onTouchEnd","to","isKeyboardNavigable","defaultProps","mitt","Li","forwardRef","_ref","ref","menuSlot","keepOpen","hoverCursor","passTouchThrough","descText","helpText","target","_excluded2","nodeRef","useEnsureRef","tagRef","useRef","useToggle","subPrevented","useRefState","onOpenSub","set","open","onPreventSub","subIndex","close","current","useEffect","parent","parentElement","stickyContainer","lastChild","stickyContainerHeight","tagName","scroll","isMobile","isOpen","closing","get","closeAfter","emit","onMouseMove","callIfFunction","stopPropagation","onClickHandler","toggle","onCloseSub","addProps","Children","map","c","cloneElement","fixed","fixedPosition","onClose","sub","slot","content","Fragment","withButton","noActions","Simple","useContextMenuLayers","contextMenuLayersSize","willUseLayers","contextMenuLayersQuantity","useContextMenuSharedState","willUseSharedState","ContextMenuComponent","_ref2","unesuredRef","hoverIndex","autoHover","onHover","fill","_excluded3","setHoverCursor","useState","layerCursor","setLayerCursor","getSize","itemsEmitter","useMemo","window","addEventListener","keydown","removeEventListener","undefined","Math","min","max","getTotalKeyboardItems","keyCode","defaultPrevented","layers","direction","newIndex","sum","forEach","child","disabled","readOnly","isStyledComponent","type","nested","formatChildren","indexRef","length","j","isMemo","_objectSpread","touchStart","createPressAndMoveEvent","prevPos","dispatchEvent","MouseEvent","bubbles","nextPos","delta","clientY","abs","onWheel","onTouchStart","onMouseDown","ContextMenu","_ref3","_excluded4","contextMenuRef","positionInfo","placeholder","arrow","usePositioning","atRight","slotName","getDialogLayersSize","enterAnimation","useFlipEnter","useFlipLeave","events","mouseover","Fill","name"],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenu.mjs","sources":["../src/ContextMenu.jsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, useRef, forwardRef} from 'react';\nimport ReactDOM from 'react-dom'\nimport styled, {css, isStyledComponent} from 'styled-components'\n\nimport {\n Fill,\n useEnsureRef,\n useRefState,\n useToggle,\n willUseLayers,\n willUseSharedState\n} from '@startlibs/core';\nimport {darken, transparentize} from 'polished'\nimport {isMemo} from 'react-is'\nimport {\n stopPropagation,\n getColor,\n ifProp,\n callIfFunction,\n customTheme,\n oneWayAnimation,\n animationTiming,\n styledExtend,\n media\n} from '@startlibs/utils'\nimport mitt from 'mitt'\n\nimport {Button} from './Button'\nimport {useFlipEnter, useFlipLeave} from './Flip'\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {getDialogLayersSize} from './containers/DialogContainer'\nimport {usePositioning} from './containers/usePositioning'\nimport {createPressAndMoveEvent, isMobile} from '@startlibs/utils'\n\n\nconst fadeIn = oneWayAnimation('opacity: 0', 'opacity: 1')\nconst slideDown = oneWayAnimation('transform: translateY(-10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideUpOnTop = oneWayAnimation('transform: translateY(10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideRight = oneWayAnimation('transform: translateX(-10px)', 'transform: none;')\nconst slideLeftOnLeft = oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none')\n\nconst popupAnimation = animationTiming('0.2s ease-out')\n\nconst areComponentsEqual = (a,b) => a === b\n\nexport const ListItem = styled.li`\n position: relative;\n font-size: 13px;\n & > * {\n padding: 11px 1.5rem 11px 3.5rem;\n display: block;\n }\n ${props => props.hasSubmenu && `\n & > * {\n padding-right: 3rem;\n }\n `}\n ${Icon}, .icon {\n font-size: ${props => props.iconSize || 23}px;\n position: absolute;\n padding-left: 0.25rem;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3.5rem;\n text-align: center;\n }\n ${media.mobile`\n font-size: 15px;\n & > * {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n ${Icon}, .icon {\n font-size: ${props => (props.iconSize || 23) + 2}px;\n }\n `}\n & > a {\n color: inherit;\n font-weight: inherit;\n text-decoration: inherit;\n }\n & > a, & > label {\n cursor: pointer;\n }\n ${ifProp('hover', css`\n & > a, & > label {\n background: ${props => transparentize(0.88, getColor(\"main\")(props))};\n color: ${props => darken(0.03, getColor(\"main\")(props))};\n }`)}\n ${ifProp('highlight', css`\n color: ${getColor('main')};\n `)}\n input[type=\"radio\"] {\n display: none;\n }\n ${ifProp('noActions', `\n max-width: 17rem;\n color: rgba(0,0,0,0.4);\n pointer-events: none;\n text-align: center;\n white-space: normal;\n `)}\n ${ifProp('withButton', css`\n padding: 0.25rem 1rem;\n ${Button} {\n width: 100%;\n color: white;\n font-weight: 500;\n padding: 10px 1.25rem;\n ${media.mobile`\n padding: 13px 1.25rem;\n `}\n }\n `)}\n ${ifProp('smallPaddingRight', css`\n & > * {\n padding-right: 1.5rem;\n }\n `)}\n ${customTheme('ListItem')}\n`\n\nconst ListItemDescText = styled.div`\n font-size: 11px;\n margin-top: 0.25rem;\n opacity: 0.6;\n ${media.mobile `\n font-size: 12px;\n `}\n`\nconst ListItemHelpText = styled.span`\n opacity: 0.5;\n`\n\nexport const ListMenu = styled.ul`\n padding: 0.5rem 0;\n cursor: default;\n overflowY: auto;\n text-align: left;\n color: inherit;\n user-select: none;\n`\n\nexport const ContextListMenu = styled(ListMenu)`\n position: absolute;\n z-index: 999;\n background-color: white;\n backdrop-filter: blur(20px);\n background-color: rgb(255 255 255 / 80%);\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 0px 2px 0px rgba(0,0,0,0.2);\n border-radius: 12px;\n margin-bottom: 0.5rem;\n overflow: auto;\n max-height: 100vh;\n max-height: 100dvh;\n max-width: 100vw;\n max-width: 100dvw;\n ${props => props.withoutIcons && `\n ${ListItem} > * {\n padding-left: 1.5rem;\n }\n `}\n ${ifProp('sub', css`\n ${props => props.fullHeight ? '' : (props.atTop ? 'margin-top: -0.5rem;' : 'margin-top: 0.5rem;')}\n\n ${ifProp('atRight', `\n margin-left: -4px;\n `, `\n margin-left: 4px;\n `)}\n `)}\n ${customTheme('ContextMenu')}\n`\n\nexport const StickyContainer = styled.div`\n position: sticky;\n background: white;\n ${props => props.atBottom && `\n bottom: -0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: -0.5rem;\n `}\n ${props => props.atTop && `\n top: -0.5rem;\n padding-top: 0.5rem;\n margin-top: -0.5rem;\n `}\n`\n\nexport const ListSeparator = styled.li`\n border-bottom: 1px solid rgba(0,0,0,0.1);\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n cursor: default;\n height: 0;\n ${ifProp('lighten', css`\n border-color: rgba(255,255,255,0.15);\n `)}\n`\n\nexport const ListHeading = styled.li`\n display: flex;\n align-items: center;\n padding: .5rem 1rem;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n text-transform: uppercase;\n :after {\n content: '';\n flex-grow: 1;\n margin-left: 0.75rem;\n height: 1px;\n background: rgba(0,0,0,0.15);\n }\n`\n\nconst SubmenuArrowIcon = styledExtend(Icon)`\n font-size: 13px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem;\n text-align: center;\n`\n\n\nlet layerCursor = 0\n\nexport class SimpleLi extends React.Component {\n\n static isKeyboardNavigable = true\n static defaultProps = {\n emitter: mitt()\n }\n\n componentWillUnmount() {\n this.props.emitter.off('confirm', this.confirm)\n }\n\n componentDidUpdate() {\n if (this.props.hover) {\n this.scrollToVisibility()\n }\n }\n\n componentDidMount() {\n this.props.emitter.on('confirm', this.confirm)\n if (this.props.selected && this.props.setCursorOnHover) {\n this.props.setCursorOnHover(this.props.index)\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n list.scrollTop = el.offsetTop + (el.offsetHeight / 2) - (list.offsetHeight / 2)\n }\n }\n\n scrollToVisibility = () => {\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n if (el.offsetTop < list.scrollTop) {\n list.scrollTop = el.offsetTop\n } else if (el.offsetTop + el.offsetHeight > list.scrollTop + list.offsetHeight) {\n list.scrollTop = el.offsetTop + el.offsetHeight - list.offsetHeight\n }\n }\n\n confirm = () => {\n if (this.props.hover) {\n const node = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n node.click()\n }\n }\n onMouseEnter = () => this.props.setCursorOnHover && this.props.setCursorOnHover(this.props.index)\n onMouseOut = () => this.props.setCursorOnHover && this.props.setCursorOnHover(-1)\n\n touchEnd = (e) => {\n if (this.props.children) {\n e.preventDefault()\n if (!this.props.hover)\n this.onMouseEnter()\n }\n }\n\n onClick = (e) => {\n this.props.onClick && this.props.onClick()\n }\n\n render() {\n const {label, layerIndex, href, linkTo, prefixWith, subMenu, icon, children, ...rest} = this.props\n const Tag = (linkTo) ? Link : 'a'\n return <ListItem\n {...rest}\n onClick={this.onClick}\n onMouseLeave={this.onMouseOut}\n onMouseEnter={this.onMouseEnter}\n onTouchEnd={this.touchEnd}\n >\n <Tag href={href} to={linkTo}>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label}\n </Tag>\n </ListItem>\n }\n}\n\nexport const Li = React.forwardRef(({emitter = mitt(), index, menuSlot, keepOpen, hover, layerIndex, hoverCursor, passTouchThrough, children, setCursorOnHover, onClick, prefixWith, linkTo, icon, label,descText,helpText, target, href, ...rest},ref) => {\n const nodeRef = useEnsureRef(ref)\n const tagRef = useRef()\n const subMenu = useToggle()\n const subPrevented = useRefState(false)\n\n const onOpenSub = () => {\n subPrevented.set(false)\n if (hover && children) {\n subMenu.open()\n }\n }\n\n const onPreventSub = (subIndex) => {\n if (index !== subIndex)\n subMenu.close()\n subPrevented.set(true)\n }\n\n const confirm = () => {\n if (hover) {\n nodeRef.current.click()\n }\n }\n\n useEffect(() => {\n if (hover) {\n try {\n const el = nodeRef.current\n const parent = el.parentElement\n const stickyContainer = parent.lastChild\n const stickyContainerHeight =\n (stickyContainer && stickyContainer.tagName === \"DIV\" && (stickyContainer.offsetTop - parent.scrollTop) < parent.offsetHeight)\n ? stickyContainer.offsetHeight\n : 0\n if (el.offsetTop > parent.offsetHeight + parent.scrollTop - stickyContainerHeight - el.offsetHeight) {\n parent.scroll(0, el.offsetTop - parent.offsetHeight + el.offsetHeight + stickyContainerHeight)\n } else if (el.offsetTop < parent.scrollTop) {\n parent.scroll(0, el.offsetTop)\n }\n } catch (e) {}\n }\n emitter.on('confirm', confirm)\n emitter.on('preventSub', onPreventSub)\n emitter.on('openSub', onOpenSub)\n return () => {\n emitter.off('confirm', confirm)\n emitter.off('preventSub', onPreventSub)\n emitter.off('openSub', onOpenSub)\n }\n }, [hover])\n\n useEffect(() => () => subMenu.close(), [])\n\n useEffect(() => {\n if (children && !isMobile()) {\n if (hover) {\n if (!subMenu.isOpen || subMenu.closing || !subPrevented.get()) {\n subMenu.open()\n }\n } else {\n if (subMenu.isOpen) {\n if (hoverCursor === -1) {\n // Mouse saiu de todos os itens — provavelmente indo até o submenu (que\n // abre ao lado, com um pequeno gap). Janela generosa; ao alcançá-lo, o\n // onMouseEnter/onMouseMove do submenu chama subMenu.open e cancela.\n subMenu.closeAfter(450)\n } else {\n // Mouse foi para outro item do menu — mantém os 200ms originais.\n subMenu.closeAfter(200)\n }\n emitter.emit('preventSub', index)\n }\n }\n }\n }, [hoverCursor])\n\n const onMouseMove = (e) => {\n if (!hover) {\n callIfFunction(setCursorOnHover, index)\n }\n e?.stopPropagation()\n }\n\n const onMouseOut = (e) => {\n callIfFunction(setCursorOnHover, -1)\n e?.stopPropagation()\n }\n\n const onClickHandler = (e) => {\n if (children || keepOpen) {\n e.stopPropagation()\n }\n if (children) {\n if (hover) {\n subMenu.toggle()\n } else {\n onMouseMove()\n }\n } else {\n callIfFunction(onClick, e)\n }\n }\n\n const onCloseSub = () => emitter.emit('openSub')\n\n const addProps = (children) => React.Children.map(children, c => React.cloneElement(c, {\n fixed: rest.fixedPosition,\n closing: subMenu.closing,\n onMouseMove: subMenu.open,\n // onMouseEnter não borbulha, então não é barrado pelo stopPropagation dos itens\n // do submenu (linha onMouseMove do Li). Garante que alcançar o submenu sempre\n // cancele o fechamento agendado por closeAfter(200), mantendo-o aberto.\n onMouseEnter: subMenu.open,\n onClose: onCloseSub,\n sub: true,\n slot: c.props.slot || menuSlot\n }))\n\n const content = <>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label} {helpText && <ListItemHelpText>({helpText})</ListItemHelpText>}\n {descText && <ListItemDescText>{descText}</ListItemDescText>}\n {children && <SubmenuArrowIcon icon=\"arrow-right\"/>}\n </>\n\n const Tag = linkTo ? Link : 'a'\n return <ListItem\n ref={nodeRef}\n {...rest}\n hover={hover}\n onClick={onClickHandler}\n onMouseLeave={onMouseOut}\n onMouseMove={onMouseMove}\n hasSubmenu={children}\n >\n {\n (rest.withButton || rest.noActions)\n ? content\n : <Tag href={href} target={target} to={linkTo} ref={tagRef} onMouseEnter={onMouseMove}>{content}</Tag>\n }\n {\n subMenu.isOpen && addProps(children)\n }\n </ListItem>\n})\nLi.isKeyboardNavigable\nLi.Simple = SimpleLi\n\nconst [useContextMenuLayers, contextMenuLayersSize] = willUseLayers()\nexport const contextMenuLayersQuantity = contextMenuLayersSize\nconst [useContextMenuSharedState] = willUseSharedState()\n\nexport const ContextMenuComponent = forwardRef((\n {\n children, sub, hoverIndex, autoHover, menuSlot, withoutIcons, onClose, onHover = () => 0, fill, onClick, ...props\n },\n unesuredRef\n) => {\n const ref = useEnsureRef(unesuredRef)\n const [hoverCursor, setHoverCursor] = useState(autoHover || sub ? 0 : -1)\n const [layerCursor, setLayerCursor] = useContextMenuSharedState(0)\n\n const [layerIndex, {getSize}] = useContextMenuLayers()\n\n const itemsEmitter = useMemo(() => mitt(), [])\n useEffect(() => {\n window.addEventListener('keydown', keydown)\n return () => {\n callIfFunction(onClose)\n window.removeEventListener('keydown', keydown)\n }\n }, [layerIndex, layerCursor, hoverCursor])\n\n useEffect(() => {\n if (hoverIndex !== undefined) {\n setHoverCursor(Math.min(Math.max(hoverIndex, -1), getTotalKeyboardItems(children) + 1))\n }\n }, [hoverIndex !== hoverCursor])\n\n const keydown = (e) => {\n if (e.keyCode === 37 || e.keyCode === 39) {\n if (!e.defaultPrevented) {\n const layers = getSize()\n const direction = e.keyCode - 38\n setLayerCursor((layerCursor + direction + layers) % layers)\n }\n e.preventDefault()\n }\n if (layerIndex !== layerCursor) return\n if (e.keyCode === 27 && ref.current) {\n ref.current.click()\n }\n if (e.keyCode === 13 || e.keyCode === 32 && hoverCursor >= 0) {// enter\n e.preventDefault()\n itemsEmitter.emit('confirm')\n }\n if (e.keyCode === 38 || e.keyCode === 40) { // up down\n e.preventDefault()\n const direction = e.keyCode - 39\n const max = getTotalKeyboardItems(children)\n const newIndex = (hoverCursor + direction + max) % max\n setHoverCursor(newIndex)\n onHover(newIndex)\n }\n }\n\n const getTotalKeyboardItems = (children) => {\n let sum = 0\n React.Children.forEach(children, child => {\n if (child && !child.props.disabled && !child.props.readOnly) {\n if ((!isStyledComponent(child.type) && child.type === Li) || child.type.isKeyboardNavigable) {\n sum += 1\n }\n if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {\n sum += getTotalKeyboardItems(child.props.children)\n }\n }\n }\n )\n return sum\n }\n\n const setCursorOnHover = (index) => {\n setLayerCursor(layerIndex)\n setHoverCursor(index)\n onHover(index)\n }\n\n const formatChildren = (children, indexRef = {current: 0}) => {\n return React.Children.map(children, (child, j) =>\n child && !child.props.disabled && !child.props.readOnly\n ? (\n child.props.nested\n ? React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef))\n : ((!isStyledComponent(child.type) && !isMemo(child.type) && areComponentsEqual(child.type, Li)) || child.type.isKeyboardNavigable)\n ? React.cloneElement(child, {\n fixedPosition:props.fixed,\n hover: hoverCursor === indexRef.current && layerIndex === layerCursor,\n hoverCursor: hoverCursor,\n index: indexRef.current++,\n setCursorOnHover,\n emitter: itemsEmitter,\n layerIndex: layerIndex,\n menuSlot\n })\n : (\n areComponentsEqual(child.type, StickyContainer)\n ? React.cloneElement(child, {\n ...child.props,\n children: formatChildren(child.props.children, indexRef)\n })\n : child\n )\n )\n : child\n )\n }\n\n const touchStart = createPressAndMoveEvent((e,prevPos) => {\n // e.preventDefault()\n e.stopPropagation()\n e.target.dispatchEvent(new MouseEvent('mousemove', {bubbles: true}))\n let passedResistance = false\n return (e,nextPos) => {\n const delta = prevPos.clientY - nextPos.clientY\n if (Math.abs(delta) > 10) {\n passedResistance = true\n setCursorOnHover(-1)\n }\n }\n })\n\n return (\n <ContextListMenu\n data-drag={false}\n ref={ref}\n sub={sub}\n onWheel={e => e.stopPropagation()}\n onTouchStart={touchStart}\n withoutIcons={withoutIcons}\n onMouseDown={stopPropagation()}\n {...props}\n >\n {formatChildren(children)}\n </ContextListMenu>\n )\n})\n\n\nexport const ContextMenu = forwardRef(({slot = 'Popup', sub, withoutIcons, children, ...rest}, ref) => {\n const contextMenuRef = useEnsureRef(ref)\n const [positionInfo, placeholder, arrow] = usePositioning(contextMenuRef, rest)\n const {atRight, atBottom} = {...positionInfo}\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n\n const enterAnimation = useMemo(() => [fadeIn, sub ? (atRight ? slideRight : slideLeftOnLeft) : (atBottom ? slideDown : slideUpOnTop)], [atRight, atBottom])\n useFlipEnter(contextMenuRef, !!positionInfo && enterAnimation)\n useFlipLeave(contextMenuRef, !!positionInfo && enterAnimation, sub && {events: {mouseover: rest.onMouseMove}})\n return <>\n {placeholder}\n <Fill name={slotName}>\n <ContextMenuComponent {...rest} menuSlot={slot} sub={sub} {...positionInfo} ref={contextMenuRef} withoutIcons={withoutIcons}>\n {arrow}\n {children}\n </ContextMenuComponent>\n </Fill>\n </>\n})\n\nContextMenu.ListItem = ListItem\n"],"names":["fadeIn","oneWayAnimation","slideDown","slideUpOnTop","slideRight","slideLeftOnLeft","animationTiming","areComponentsEqual","a","b","ListItem","styled","li","withConfig","displayName","componentId","props","hasSubmenu","Icon","iconSize","media","mobile","_templateObject","_taggedTemplateLiteral","ifProp","css","transparentize","getColor","darken","Button","_templateObject2","customTheme","ListItemDescText","div","_templateObject3","ListItemHelpText","span","ListMenu","ul","ContextListMenu","withoutIcons","concat","fullHeight","atTop","StickyContainer","atBottom","ListSeparator","ListHeading","SubmenuArrowIcon","styledExtend","_templateObject4","SimpleLi","React","Component","constructor","arguments","scrollToVisibility","el","ReactDOM","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","findDOMNode","list","parentNode","offsetTop","scrollTop","offsetHeight","confirm","hover","node","click","onMouseEnter","setCursorOnHover","index","onMouseOut","touchEnd","e","children","preventDefault","onClick","componentWillUnmount","emitter","off","componentDidUpdate","componentDidMount","on","selected","render","_this$props","label","layerIndex","href","linkTo","prefixWith","subMenu","icon","rest","_objectWithoutProperties","_excluded","Tag","Link","createElement","_extends","onMouseLeave","onTouchEnd","to","isKeyboardNavigable","defaultProps","mitt","Li","forwardRef","_ref","ref","menuSlot","keepOpen","hoverCursor","passTouchThrough","descText","helpText","target","_excluded2","nodeRef","useEnsureRef","tagRef","useRef","useToggle","subPrevented","useRefState","onOpenSub","set","open","onPreventSub","subIndex","close","current","useEffect","parent","parentElement","stickyContainer","lastChild","stickyContainerHeight","tagName","scroll","isMobile","isOpen","closing","get","closeAfter","emit","onMouseMove","callIfFunction","stopPropagation","onClickHandler","toggle","onCloseSub","addProps","Children","map","c","cloneElement","fixed","fixedPosition","onClose","sub","slot","content","Fragment","withButton","noActions","Simple","useContextMenuLayers","contextMenuLayersSize","willUseLayers","contextMenuLayersQuantity","useContextMenuSharedState","willUseSharedState","ContextMenuComponent","_ref2","unesuredRef","hoverIndex","autoHover","onHover","fill","_excluded3","setHoverCursor","useState","layerCursor","setLayerCursor","getSize","itemsEmitter","useMemo","window","addEventListener","keydown","removeEventListener","undefined","Math","min","max","getTotalKeyboardItems","keyCode","defaultPrevented","layers","direction","newIndex","sum","forEach","child","disabled","readOnly","isStyledComponent","type","nested","formatChildren","indexRef","length","j","isMemo","_objectSpread","touchStart","createPressAndMoveEvent","prevPos","dispatchEvent","MouseEvent","bubbles","nextPos","delta","clientY","abs","onWheel","onTouchStart","onMouseDown","ContextMenu","_ref3","_excluded4","contextMenuRef","positionInfo","placeholder","arrow","usePositioning","atRight","slotName","getDialogLayersSize","enterAnimation","useFlipEnter","useFlipLeave","events","mouseover","Fill","name"],"mappings":"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"}
@@ -27,7 +27,7 @@ const TextButton = /*#__PURE__*/styled(_ref => {
27
27
  }).withConfig({
28
28
  displayName: "TextButton",
29
29
  componentId: "sc-1eydmhc-0"
30
- })(["display:inline-block;font-weight:600;font-size:", "px;color:", ";cursor:pointer;text-decoration:none;:hover,:active{color:", ";}", "{display:inline-block;margin-left:0.25rem;vertical-align:-3px;}", " & ~ &{margin-left:1rem;}"], props => props.fontSize ? fontSize : "14", props => props.alert ? getColor('alert') : getColor('main'), props => props.alert ? darken(0.1, getColor("alert")(props)) : darken(0.1, getColor("main")(props)), Loading, props => props.nowrap && "\n white-space: nowrap;\n ");
30
+ })(["display:inline-block;font-weight:600;font-size:", "px;color:", ";cursor:pointer;text-decoration:none;:hover,:active{color:", ";}", "{display:inline-block;margin-left:0.25rem;vertical-align:-3px;}", " & ~ &{margin-left:1rem;}"], props => props.fontSize ? props.fontSize : "14", props => props.alert ? getColor('alert') : getColor('main'), props => props.alert ? darken(0.1, getColor("alert")(props)) : darken(0.1, getColor("main")(props)), Loading, props => props.nowrap && "\n white-space: nowrap;\n ");
31
31
  TextButton.a = props => /*#__PURE__*/React.createElement(TextButton, _extends({}, props, {
32
32
  className: props.className,
33
33
  innerAs: "a"
@@ -1 +1 @@
1
- {"version":3,"file":"TextButton.mjs","sources":["../src/TextButton.jsx"],"sourcesContent":["import React from 'react'\nimport styled from 'styled-components';\nimport {darken} from 'polished'\nimport { getColor } from '@startlibs/utils';\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const TextButton = styled(({className,isLoading,alert, fontSize, children, innerAs: Wrapper = 'div', ...props}) => <Wrapper className={className} {...props}>\n {children} {isLoading && <Loading size={14} borderWidth={3} />}\n</Wrapper>)`\n display: inline-block;\n font-weight: 600;\n font-size: ${props => props.fontSize ? fontSize : \"14\"}px;\n color: ${props => props.alert ? getColor('alert') : getColor('main')};\n cursor: pointer;\n text-decoration: none;\n :hover, :active {\n color: ${props => props.alert ? darken(0.1, getColor(\"alert\")(props)) : darken(0.1, getColor(\"main\")(props))};\n }\n ${Loading} {\n display: inline-block;\n margin-left: 0.25rem;\n vertical-align: -3px;\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n & ~ & {\n margin-left: 1rem;\n }\n`\n\nTextButton.a = (props) => <TextButton {...props} className={props.className} innerAs=\"a\"/>\nTextButton.Link = (props) => <TextButton {...props} className={props.className} innerAs={Link}/>"],"names":["TextButton","styled","_ref","className","isLoading","alert","fontSize","children","innerAs","Wrapper","props","_objectWithoutProperties","_excluded","React","createElement","_extends","Loading","size","borderWidth","withConfig","displayName","componentId","getColor","darken","nowrap","a","Link"],"mappings":";;;;;;;;;;AAOaA,MAAAA,UAAU,gBAAGC,MAAM,CAACC,IAAA,IAAA;EAAA,IAAC;MAACC,SAAS;MAACC,SAAS;MAACC,KAAK;MAAEC,QAAQ;MAAEC,QAAQ;MAAEC,OAAO,EAAEC,OAAO,GAAG,KAAA;AAAe,KAAC,GAAAP,IAAA;AAANQ,IAAAA,KAAK,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA,CAAA;AAAA,EAAA,oBAAMC,KAAA,CAAAC,aAAA,CAACL,OAAO,EAAAM,QAAA,CAAA;AAACZ,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKO,KAAK,CAAA,EAC/JH,QAAQ,EAAC,GAAC,EAACH,SAAS,iBAAIS,KAAA,CAAAC,aAAA,CAACE,OAAO,EAAA;AAACC,IAAAA,IAAI,EAAE,EAAG;AAACC,IAAAA,WAAW,EAAE,CAAA;AAAE,GAAE,CACtD,CAAC,CAAA;AAAA,CAAA,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,YAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iDAAA,EAAA,WAAA,EAAA,4DAAA,EAAA,IAAA,EAAA,iEAAA,EAAA,2BAAA,CAAA,EAGIX,KAAK,IAAIA,KAAK,CAACJ,QAAQ,GAAGA,QAAQ,GAAG,IAAI,EAC7CI,KAAK,IAAIA,KAAK,CAACL,KAAK,GAAGiB,QAAQ,CAAC,OAAO,CAAC,GAAGA,QAAQ,CAAC,MAAM,CAAC,EAIzDZ,KAAK,IAAIA,KAAK,CAACL,KAAK,GAAGkB,MAAM,CAAC,GAAG,EAAED,QAAQ,CAAC,OAAO,CAAC,CAACZ,KAAK,CAAC,CAAC,GAAGa,MAAM,CAAC,GAAG,EAAED,QAAQ,CAAC,MAAM,CAAC,CAACZ,KAAK,CAAC,CAAC,EAE5GM,OAAO,EAKPN,KAAK,IAAIA,KAAK,CAACc,MAAM,oCAEtB,EAIF;AAEDxB,UAAU,CAACyB,CAAC,GAAIf,KAAK,iBAAKG,KAAA,CAAAC,aAAA,CAACd,UAAU,EAAAe,QAAA,KAAKL,KAAK,EAAA;EAAEP,SAAS,EAAEO,KAAK,CAACP,SAAU;AAACK,EAAAA,OAAO,EAAC,GAAA;AAAG,CAAA,CAAC,CAAC,CAAA;AAC1FR,UAAU,CAAC0B,IAAI,GAAIhB,KAAK,iBAAKG,KAAA,CAAAC,aAAA,CAACd,UAAU,EAAAe,QAAA,KAAKL,KAAK,EAAA;EAAEP,SAAS,EAAEO,KAAK,CAACP,SAAU;AAACK,EAAAA,OAAO,EAAEkB,IAAAA;AAAK,CAAA,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"TextButton.mjs","sources":["../src/TextButton.jsx"],"sourcesContent":["import React from 'react'\nimport styled from 'styled-components';\nimport {darken} from 'polished'\nimport { getColor } from '@startlibs/utils';\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const TextButton = styled(({className,isLoading,alert, fontSize, children, innerAs: Wrapper = 'div', ...props}) => <Wrapper className={className} {...props}>\n {children} {isLoading && <Loading size={14} borderWidth={3} />}\n</Wrapper>)`\n display: inline-block;\n font-weight: 600;\n font-size: ${props => props.fontSize ? props.fontSize : \"14\"}px;\n color: ${props => props.alert ? getColor('alert') : getColor('main')};\n cursor: pointer;\n text-decoration: none;\n :hover, :active {\n color: ${props => props.alert ? darken(0.1, getColor(\"alert\")(props)) : darken(0.1, getColor(\"main\")(props))};\n }\n ${Loading} {\n display: inline-block;\n margin-left: 0.25rem;\n vertical-align: -3px;\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n & ~ & {\n margin-left: 1rem;\n }\n`\n\nTextButton.a = (props) => <TextButton {...props} className={props.className} innerAs=\"a\"/>\nTextButton.Link = (props) => <TextButton {...props} className={props.className} innerAs={Link}/>"],"names":["TextButton","styled","_ref","className","isLoading","alert","fontSize","children","innerAs","Wrapper","props","_objectWithoutProperties","_excluded","React","createElement","_extends","Loading","size","borderWidth","withConfig","displayName","componentId","getColor","darken","nowrap","a","Link"],"mappings":";;;;;;;;;;AAOaA,MAAAA,UAAU,gBAAGC,MAAM,CAACC,IAAA,IAAA;EAAA,IAAC;MAACC,SAAS;MAACC,SAAS;MAACC,KAAK;MAAEC,QAAQ;MAAEC,QAAQ;MAAEC,OAAO,EAAEC,OAAO,GAAG,KAAA;AAAe,KAAC,GAAAP,IAAA;AAANQ,IAAAA,KAAK,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA,CAAA;AAAA,EAAA,oBAAMC,KAAA,CAAAC,aAAA,CAACL,OAAO,EAAAM,QAAA,CAAA;AAACZ,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAAKO,KAAK,CAAA,EAC/JH,QAAQ,EAAC,GAAC,EAACH,SAAS,iBAAIS,KAAA,CAAAC,aAAA,CAACE,OAAO,EAAA;AAACC,IAAAA,IAAI,EAAE,EAAG;AAACC,IAAAA,WAAW,EAAE,CAAA;AAAE,GAAE,CACtD,CAAC,CAAA;AAAA,CAAA,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,YAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iDAAA,EAAA,WAAA,EAAA,4DAAA,EAAA,IAAA,EAAA,iEAAA,EAAA,2BAAA,CAAA,EAGIX,KAAK,IAAIA,KAAK,CAACJ,QAAQ,GAAGI,KAAK,CAACJ,QAAQ,GAAG,IAAI,EACnDI,KAAK,IAAIA,KAAK,CAACL,KAAK,GAAGiB,QAAQ,CAAC,OAAO,CAAC,GAAGA,QAAQ,CAAC,MAAM,CAAC,EAIzDZ,KAAK,IAAIA,KAAK,CAACL,KAAK,GAAGkB,MAAM,CAAC,GAAG,EAAED,QAAQ,CAAC,OAAO,CAAC,CAACZ,KAAK,CAAC,CAAC,GAAGa,MAAM,CAAC,GAAG,EAAED,QAAQ,CAAC,MAAM,CAAC,CAACZ,KAAK,CAAC,CAAC,EAE5GM,OAAO,EAKPN,KAAK,IAAIA,KAAK,CAACc,MAAM,oCAEtB,EAIF;AAEDxB,UAAU,CAACyB,CAAC,GAAIf,KAAK,iBAAKG,KAAA,CAAAC,aAAA,CAACd,UAAU,EAAAe,QAAA,KAAKL,KAAK,EAAA;EAAEP,SAAS,EAAEO,KAAK,CAACP,SAAU;AAACK,EAAAA,OAAO,EAAC,GAAA;AAAG,CAAA,CAAC,CAAC,CAAA;AAC1FR,UAAU,CAAC0B,IAAI,GAAIhB,KAAK,iBAAKG,KAAA,CAAAC,aAAA,CAACd,UAAU,EAAAe,QAAA,KAAKL,KAAK,EAAA;EAAEP,SAAS,EAAEO,KAAK,CAACP,SAAU;AAACK,EAAAA,OAAO,EAAEkB,IAAAA;AAAK,CAAA,CAAC,CAAC;;;;"}
@@ -121,7 +121,7 @@ const useToastNotificationToggle = (notification, timeout) => {
121
121
  open: () => toggle.get() ? toggle.get().openWith(formatNotification(notification, extraProps), timeout) : toggle.openWith(make(notification, timeout))
122
122
  }), [toggle.isOpen]);
123
123
  };
124
- const willShowToastNotification = str => () => showToastNotification(str);
124
+ const willShowToastNotification = (str, timeout) => () => createToastNotification(str, timeout);
125
125
  const EXIT_ANIMATION_MS = 300;
126
126
  const TOAST_EASING = 'cubic-bezier(0.22, 0.61, 0.36, 1)';
127
127
  const TOAST_TIMING = "".concat(EXIT_ANIMATION_MS, "ms ").concat(TOAST_EASING);
@@ -1 +1 @@
1
- {"version":3,"file":"ToastNotifications.mjs","sources":["../src/ToastNotifications.jsx"],"sourcesContent":["import React, {useEffect, useMemo, useRef} from 'react'\nimport {oneWayAnimation, constrainEvent} from '@startlibs/utils'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {rgba} from 'polished'\nimport {Fill, useToggle, willUseSharedState} from '@startlibs/core'\nimport {getUID, ifUndefined, media, callIfFunction, getColor} from '@startlibs/utils'\nimport {css} from \"styled-components/macro\";\nimport {FlipList} from './FlipList'\nimport {Icon} from './Icon'\nimport {Loading} from './Loading'\nimport {SwitchDiv} from './SwitchDiv'\n\nconst NotificationContainer = styled.div `\n position: fixed;\n bottom: 0;\n max-height: 100%;\n z-index: 999999; \n display: flex;\n flex-direction: column-reverse;\n align-items: flex-end;\n overflow-y: auto;\n right: 1.5rem;\n ${media.desktop`\n padding-bottom: 1.5rem;\n `}\n ${media.mobile`\n padding-bottom: 0.75rem;\n `}\n ::-webkit-scrollbar {\n width: 21px;\n height: 21px;\n }\n ::-webkit-scrollbar-thumb {\n pointer-events: all;\n background: rgba(0,0,0,0.4);\n border-radius: 100px;\n background-clip: padding-box;\n border: 6px solid transparent;\n min-height: 30px;\n min-width: 30px;\n &:hover {\n background: rgba(0,0,0,0.5);\n background-clip: padding-box;\n border: 6px solid transparent;\n }\n }\n ::-webkit-scrollbar-corner {\n background: transparent;\n }\n ${media.desktop`\n &.JS-dialog-open {\n right: 2.75rem;\n }\n `}\n ${media.mobile`\n left: 0.75rem;\n right: 0.75rem;\n `}\n`\n\nconst ToastBox = styled.div`\n color: white;\n font-size: 14px;\n font-weight: 500;\n border-radius: 12px;\n flex-shrink: 0;\n margin-top: 0.5rem;\n overflow: hidden;\n transition: 0.3s background ease, 0.4s opacity 1.5s;\n ${media.desktop`\n background: ${props => rgba(getColor(props.type)(props),ifUndefined(props.opacity,0.7))};\n max-width: 300px;\n `}\n ${media.mobile`\n background: ${props => rgba(getColor(props.type)(props),ifUndefined(props.opacity,0.8))};\n `}\n ${props => css`background: ${getColor(props.type)};`}\n`\nconst NotificationTitleContainer = styled.div`\n background: rgba(0,0,0,0.1);\n padding: 0.5rem 2.25rem 0.5rem 0.75rem;\n border-radius: 12px 12px 0 0;\n position: relative;\n min-height: 30px;\n font-size: 13px;\n display: flex;\n align-items: center;\n font-weight: 400;\n ${props => props.onClick && \"cursor: pointer;\"}\n`\nconst NotificationTitle = styled.div`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`\nconst NotificationContent = styled.div`\n display: flex;\n align-items: center;\n text-align: left;\n padding: 1rem 1.5rem;\n ${media.mobile`\n justify-content: center;\n `}\n`\nconst NotificationIconWrapper = styled.div`\n margin-right: 1rem;\n position: relative;\n width: 36px;\n text-align: center;\n flex-shrink: 0;\n ${Icon} {\n font-size: ${props => (props.isLoading ? 22 : (props.iconFontSize || 40))}px;\n }\n`\nconst CloseIcon = styled(Icon).attrs({icon: 'x'})`\n font-size: 20px;\n cursor: pointer;\n width: 2rem;\n height: 2rem;\n line-height: 2rem;\n text-align: center;\n position: absolute;\n top: 50%;\n right: 0.25rem;\n transform: translateY(-50%);\n border-radius: 100px;\n opacity: 0.8;\n :hover, :active {\n background: rgba(0,0,0,0.1);\n opacity: 1;\n }\n`\nconst NotificationDetails = styled.div`\n background: rgba(0,0,0,0.1);\n border-radius: 8px;\n padding: 1rem;\n margin: 0 1rem 1rem;\n font-weight: 400;\n font-size: 13px;\n`\n\nconst [useToastNotifications, _useToastNotificationsRef,setToastNotifications] = willUseSharedState([])\nexport {useToastNotifications}\nconst formatNotification = (notification,extra) =>\n _.isObject(notification)\n ? {...notification,...extra, _key: getUID()}\n : {type:\"success\",content:notification,...extra, _key: getUID()}\n\nexport const createToastNotification = (notification,timeout, closeCallback) => {\n const uid = getUID()\n let currentTimer = -1;\n let hasClosed = false;\n const close = () => {\n clearTimeout(currentTimer);\n if (hasClosed) return\n setToastNotifications(_.differenceBy('uid',_, [{uid}]))\n hasClosed = true\n callIfFunction(closeCallback)\n }\n const notificationObj = formatNotification(notification,{uid,close})\n setToastNotifications(_.concat(notificationObj))\n if (timeout>0) {\n currentTimer = setTimeout(close,timeout)\n }\n return {\n close,\n openWith:(obj,timeout) => {\n clearTimeout(currentTimer);\n if (timeout > 0) {\n currentTimer = setTimeout(close,timeout)\n }\n const notificationObj = formatNotification(obj,{uid,close})\n if (hasClosed) {\n hasClosed = false\n setToastNotifications(_.concat(notificationObj))\n } else {\n setToastNotifications(_.map(n => n.uid === uid ? {...notificationObj, _key: n._key} : n))\n }\n }\n }\n}\nexport const useToastNotificationToggle = (notification,timeout) => {\n const toggle = useToggle()\n const extraProps = useMemo(() => notification.content || notification.element ? {} : notification,[])\n const make = (notification,timeout) => notification && createToastNotification(formatNotification(notification,extraProps),timeout,() => toggle.close())\n useEffect(() => {\n if (notification.content || notification.element) {\n toggle.openWith(make(notification))\n }\n },[])\n\n return useMemo(() => ({\n close: () => toggle.get()?.close(),\n openWith: (notification,timeout) => toggle.get() ? toggle.get().openWith(formatNotification(notification,extraProps),timeout) : toggle.openWith(make(notification,timeout)),\n open: () => toggle.get() ? toggle.get().openWith(formatNotification(notification,extraProps),timeout) : toggle.openWith(make(notification,timeout))\n }),[toggle.isOpen])\n}\nexport const willShowToastNotification = (str) => () => showToastNotification(str)\n\nconst EXIT_ANIMATION_MS = 300\nconst TOAST_EASING = 'cubic-bezier(0.22, 0.61, 0.36, 1)'\nconst TOAST_TIMING = `${EXIT_ANIMATION_MS}ms ${TOAST_EASING}`\n\nconst animation = oneWayAnimation(\n 'transform: translateY(0); opacity: 1;',\n 'transform: translateY(0.25rem); opacity: 1;',\n 'transform: translateY(1rem); opacity: 0;'\n)\nconst removeAnimationReinsertPosition = e => e.style.position=''\nexport const ToastNotifications = () => {\n const [notifications,setNotifications] = useToastNotifications()\n const containerRef = useRef(null)\n const {lockWidth, unlockWidth} = useNotificationContainerWidthLock(containerRef)\n\n return (<Fill name=\"Notifications\">\n <NotificationContainer ref={containerRef} className=\"JS-on-open-dialog\">\n <FlipList animation={animation} timing={TOAST_TIMING} onReinsert={removeAnimationReinsertPosition} skipParentMorph anchoredDownList>\n {\n notifications.map(notification => {\n const closeWithLock = () => {\n lockWidth()\n notification.close()\n setTimeout(unlockWidth, EXIT_ANIMATION_MS)\n }\n\n return (\n callIfFunction(notification.element,closeWithLock) ||\n <ToastBox\n key={`toast-${notification.uid}`}\n type={notification.type}\n onClick={notification.onClick}\n opacity={notification.opacity}\n >\n {notification.title ? \n <NotificationTitleContainer onClick={notification.onClickTitle ? (e) => notification.onClickTitle(e,closeWithLock) : undefined}>\n <NotificationTitle>{notification.title}</NotificationTitle>\n {notification.closeOnX && <CloseIcon onClick={constrainEvent(closeWithLock)}/>}\n </NotificationTitleContainer>\n :\n notification.closeOnX && <CloseIcon onClick={closeWithLock}/>\n }\n <SwitchDiv on={notification._key}>\n <NotificationContent>\n {notification.icon &&\n <NotificationIconWrapper\n isLoading={notification.isLoading}\n iconFontSize={notification.iconFontSize}\n >\n <Icon icon={notification.icon}/>\n {notification.isLoading && <Loading size={36} white absolute/>}\n </NotificationIconWrapper>\n }\n <div css=\"min-width: 0;\">{callIfFunction(notification.content,closeWithLock)}</div>\n </NotificationContent>\n {notification.details &&\n <NotificationDetails onClick={constrainEvent()}>\n {notification.details}\n </NotificationDetails>\n }\n </SwitchDiv>\n </ToastBox>\n )\n })\n }\n </FlipList>\n </NotificationContainer>\n </Fill>)\n}\n\nconst useNotificationContainerWidthLock = (containerRef) => {\n const lockCountRef = useRef(0)\n const prevWidthRef = useRef(null)\n\n const lockWidth = () => {\n const el = containerRef.current\n if (!el) return\n if (lockCountRef.current === 0) {\n prevWidthRef.current = el.style.width\n const measured = el.getBoundingClientRect().width\n el.style.width = measured + 'px'\n }\n lockCountRef.current = lockCountRef.current + 1\n }\n\n const unlockWidth = () => {\n const el = containerRef.current\n if (!el) return\n const next = Math.max(0, lockCountRef.current - 1)\n lockCountRef.current = next\n if (next === 0) {\n el.style.width = prevWidthRef.current || ''\n prevWidthRef.current = null\n }\n }\n\n return {lockWidth, unlockWidth}\n}"],"names":["NotificationContainer","styled","div","withConfig","displayName","componentId","media","desktop","_templateObject","_taggedTemplateLiteral","mobile","_templateObject2","_templateObject3","_templateObject4","ToastBox","_templateObject5","props","rgba","getColor","type","ifUndefined","opacity","_templateObject6","css","_templateObject7","NotificationTitleContainer","onClick","NotificationTitle","NotificationContent","_templateObject8","NotificationIconWrapper","Icon","isLoading","iconFontSize","CloseIcon","attrs","icon","NotificationDetails","useToastNotifications","_useToastNotificationsRef","setToastNotifications","willUseSharedState","formatNotification","notification","extra","_isObject","_objectSpread","_key","getUID","content","createToastNotification","timeout","closeCallback","uid","currentTimer","hasClosed","close","clearTimeout","_differenceBy","placeholder","callIfFunction","notificationObj","_concat","setTimeout","openWith","obj","_map","n","useToastNotificationToggle","toggle","useToggle","extraProps","useMemo","element","make","useEffect","_toggle$get","get","open","isOpen","willShowToastNotification","str","showToastNotification","EXIT_ANIMATION_MS","TOAST_EASING","TOAST_TIMING","concat","animation","oneWayAnimation","removeAnimationReinsertPosition","e","style","position","ToastNotifications","notifications","setNotifications","containerRef","useRef","lockWidth","unlockWidth","useNotificationContainerWidthLock","React","createElement","Fill","name","ref","className","FlipList","timing","onReinsert","skipParentMorph","anchoredDownList","map","closeWithLock","key","title","onClickTitle","undefined","closeOnX","constrainEvent","SwitchDiv","on","Loading","size","white","absolute","_StyledDiv","details","lockCountRef","prevWidthRef","el","current","width","measured","getBoundingClientRect","next","Math","max"],"mappings":"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"}
1
+ {"version":3,"file":"ToastNotifications.mjs","sources":["../src/ToastNotifications.jsx"],"sourcesContent":["import React, {useEffect, useMemo, useRef} from 'react'\nimport {oneWayAnimation, constrainEvent} from '@startlibs/utils'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {rgba} from 'polished'\nimport {Fill, useToggle, willUseSharedState} from '@startlibs/core'\nimport {getUID, ifUndefined, media, callIfFunction, getColor} from '@startlibs/utils'\nimport {css} from \"styled-components/macro\";\nimport {FlipList} from './FlipList'\nimport {Icon} from './Icon'\nimport {Loading} from './Loading'\nimport {SwitchDiv} from './SwitchDiv'\n\nconst NotificationContainer = styled.div `\n position: fixed;\n bottom: 0;\n max-height: 100%;\n z-index: 999999; \n display: flex;\n flex-direction: column-reverse;\n align-items: flex-end;\n overflow-y: auto;\n right: 1.5rem;\n ${media.desktop`\n padding-bottom: 1.5rem;\n `}\n ${media.mobile`\n padding-bottom: 0.75rem;\n `}\n ::-webkit-scrollbar {\n width: 21px;\n height: 21px;\n }\n ::-webkit-scrollbar-thumb {\n pointer-events: all;\n background: rgba(0,0,0,0.4);\n border-radius: 100px;\n background-clip: padding-box;\n border: 6px solid transparent;\n min-height: 30px;\n min-width: 30px;\n &:hover {\n background: rgba(0,0,0,0.5);\n background-clip: padding-box;\n border: 6px solid transparent;\n }\n }\n ::-webkit-scrollbar-corner {\n background: transparent;\n }\n ${media.desktop`\n &.JS-dialog-open {\n right: 2.75rem;\n }\n `}\n ${media.mobile`\n left: 0.75rem;\n right: 0.75rem;\n `}\n`\n\nconst ToastBox = styled.div`\n color: white;\n font-size: 14px;\n font-weight: 500;\n border-radius: 12px;\n flex-shrink: 0;\n margin-top: 0.5rem;\n overflow: hidden;\n transition: 0.3s background ease, 0.4s opacity 1.5s;\n ${media.desktop`\n background: ${props => rgba(getColor(props.type)(props),ifUndefined(props.opacity,0.7))};\n max-width: 300px;\n `}\n ${media.mobile`\n background: ${props => rgba(getColor(props.type)(props),ifUndefined(props.opacity,0.8))};\n `}\n ${props => css`background: ${getColor(props.type)};`}\n`\nconst NotificationTitleContainer = styled.div`\n background: rgba(0,0,0,0.1);\n padding: 0.5rem 2.25rem 0.5rem 0.75rem;\n border-radius: 12px 12px 0 0;\n position: relative;\n min-height: 30px;\n font-size: 13px;\n display: flex;\n align-items: center;\n font-weight: 400;\n ${props => props.onClick && \"cursor: pointer;\"}\n`\nconst NotificationTitle = styled.div`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`\nconst NotificationContent = styled.div`\n display: flex;\n align-items: center;\n text-align: left;\n padding: 1rem 1.5rem;\n ${media.mobile`\n justify-content: center;\n `}\n`\nconst NotificationIconWrapper = styled.div`\n margin-right: 1rem;\n position: relative;\n width: 36px;\n text-align: center;\n flex-shrink: 0;\n ${Icon} {\n font-size: ${props => (props.isLoading ? 22 : (props.iconFontSize || 40))}px;\n }\n`\nconst CloseIcon = styled(Icon).attrs({icon: 'x'})`\n font-size: 20px;\n cursor: pointer;\n width: 2rem;\n height: 2rem;\n line-height: 2rem;\n text-align: center;\n position: absolute;\n top: 50%;\n right: 0.25rem;\n transform: translateY(-50%);\n border-radius: 100px;\n opacity: 0.8;\n :hover, :active {\n background: rgba(0,0,0,0.1);\n opacity: 1;\n }\n`\nconst NotificationDetails = styled.div`\n background: rgba(0,0,0,0.1);\n border-radius: 8px;\n padding: 1rem;\n margin: 0 1rem 1rem;\n font-weight: 400;\n font-size: 13px;\n`\n\nconst [useToastNotifications, _useToastNotificationsRef,setToastNotifications] = willUseSharedState([])\nexport {useToastNotifications}\nconst formatNotification = (notification,extra) =>\n _.isObject(notification)\n ? {...notification,...extra, _key: getUID()}\n : {type:\"success\",content:notification,...extra, _key: getUID()}\n\nexport const createToastNotification = (notification,timeout, closeCallback) => {\n const uid = getUID()\n let currentTimer = -1;\n let hasClosed = false;\n const close = () => {\n clearTimeout(currentTimer);\n if (hasClosed) return\n setToastNotifications(_.differenceBy('uid',_, [{uid}]))\n hasClosed = true\n callIfFunction(closeCallback)\n }\n const notificationObj = formatNotification(notification,{uid,close})\n setToastNotifications(_.concat(notificationObj))\n if (timeout>0) {\n currentTimer = setTimeout(close,timeout)\n }\n return {\n close,\n openWith:(obj,timeout) => {\n clearTimeout(currentTimer);\n if (timeout > 0) {\n currentTimer = setTimeout(close,timeout)\n }\n const notificationObj = formatNotification(obj,{uid,close})\n if (hasClosed) {\n hasClosed = false\n setToastNotifications(_.concat(notificationObj))\n } else {\n setToastNotifications(_.map(n => n.uid === uid ? {...notificationObj, _key: n._key} : n))\n }\n }\n }\n}\nexport const useToastNotificationToggle = (notification,timeout) => {\n const toggle = useToggle()\n const extraProps = useMemo(() => notification.content || notification.element ? {} : notification,[])\n const make = (notification,timeout) => notification && createToastNotification(formatNotification(notification,extraProps),timeout,() => toggle.close())\n useEffect(() => {\n if (notification.content || notification.element) {\n toggle.openWith(make(notification))\n }\n },[])\n\n return useMemo(() => ({\n close: () => toggle.get()?.close(),\n openWith: (notification,timeout) => toggle.get() ? toggle.get().openWith(formatNotification(notification,extraProps),timeout) : toggle.openWith(make(notification,timeout)),\n open: () => toggle.get() ? toggle.get().openWith(formatNotification(notification,extraProps),timeout) : toggle.openWith(make(notification,timeout))\n }),[toggle.isOpen])\n}\nexport const willShowToastNotification = (str,timeout) => () => createToastNotification(str,timeout)\n\nconst EXIT_ANIMATION_MS = 300\nconst TOAST_EASING = 'cubic-bezier(0.22, 0.61, 0.36, 1)'\nconst TOAST_TIMING = `${EXIT_ANIMATION_MS}ms ${TOAST_EASING}`\n\nconst animation = oneWayAnimation(\n 'transform: translateY(0); opacity: 1;',\n 'transform: translateY(0.25rem); opacity: 1;',\n 'transform: translateY(1rem); opacity: 0;'\n)\nconst removeAnimationReinsertPosition = e => e.style.position=''\nexport const ToastNotifications = () => {\n const [notifications,setNotifications] = useToastNotifications()\n const containerRef = useRef(null)\n const {lockWidth, unlockWidth} = useNotificationContainerWidthLock(containerRef)\n\n return (<Fill name=\"Notifications\">\n <NotificationContainer ref={containerRef} className=\"JS-on-open-dialog\">\n <FlipList animation={animation} timing={TOAST_TIMING} onReinsert={removeAnimationReinsertPosition} skipParentMorph anchoredDownList>\n {\n notifications.map(notification => {\n const closeWithLock = () => {\n lockWidth()\n notification.close()\n setTimeout(unlockWidth, EXIT_ANIMATION_MS)\n }\n\n return (\n callIfFunction(notification.element,closeWithLock) ||\n <ToastBox\n key={`toast-${notification.uid}`}\n type={notification.type}\n onClick={notification.onClick}\n opacity={notification.opacity}\n >\n {notification.title ? \n <NotificationTitleContainer onClick={notification.onClickTitle ? (e) => notification.onClickTitle(e,closeWithLock) : undefined}>\n <NotificationTitle>{notification.title}</NotificationTitle>\n {notification.closeOnX && <CloseIcon onClick={constrainEvent(closeWithLock)}/>}\n </NotificationTitleContainer>\n :\n notification.closeOnX && <CloseIcon onClick={closeWithLock}/>\n }\n <SwitchDiv on={notification._key}>\n <NotificationContent>\n {notification.icon &&\n <NotificationIconWrapper\n isLoading={notification.isLoading}\n iconFontSize={notification.iconFontSize}\n >\n <Icon icon={notification.icon}/>\n {notification.isLoading && <Loading size={36} white absolute/>}\n </NotificationIconWrapper>\n }\n <div css=\"min-width: 0;\">{callIfFunction(notification.content,closeWithLock)}</div>\n </NotificationContent>\n {notification.details &&\n <NotificationDetails onClick={constrainEvent()}>\n {notification.details}\n </NotificationDetails>\n }\n </SwitchDiv>\n </ToastBox>\n )\n })\n }\n </FlipList>\n </NotificationContainer>\n </Fill>)\n}\n\nconst useNotificationContainerWidthLock = (containerRef) => {\n const lockCountRef = useRef(0)\n const prevWidthRef = useRef(null)\n\n const lockWidth = () => {\n const el = containerRef.current\n if (!el) return\n if (lockCountRef.current === 0) {\n prevWidthRef.current = el.style.width\n const measured = el.getBoundingClientRect().width\n el.style.width = measured + 'px'\n }\n lockCountRef.current = lockCountRef.current + 1\n }\n\n const unlockWidth = () => {\n const el = containerRef.current\n if (!el) return\n const next = Math.max(0, lockCountRef.current - 1)\n lockCountRef.current = next\n if (next === 0) {\n el.style.width = prevWidthRef.current || ''\n prevWidthRef.current = null\n }\n }\n\n return {lockWidth, unlockWidth}\n}"],"names":["NotificationContainer","styled","div","withConfig","displayName","componentId","media","desktop","_templateObject","_taggedTemplateLiteral","mobile","_templateObject2","_templateObject3","_templateObject4","ToastBox","_templateObject5","props","rgba","getColor","type","ifUndefined","opacity","_templateObject6","css","_templateObject7","NotificationTitleContainer","onClick","NotificationTitle","NotificationContent","_templateObject8","NotificationIconWrapper","Icon","isLoading","iconFontSize","CloseIcon","attrs","icon","NotificationDetails","useToastNotifications","_useToastNotificationsRef","setToastNotifications","willUseSharedState","formatNotification","notification","extra","_isObject","_objectSpread","_key","getUID","content","createToastNotification","timeout","closeCallback","uid","currentTimer","hasClosed","close","clearTimeout","_differenceBy","placeholder","callIfFunction","notificationObj","_concat","setTimeout","openWith","obj","_map","n","useToastNotificationToggle","toggle","useToggle","extraProps","useMemo","element","make","useEffect","_toggle$get","get","open","isOpen","willShowToastNotification","str","EXIT_ANIMATION_MS","TOAST_EASING","TOAST_TIMING","concat","animation","oneWayAnimation","removeAnimationReinsertPosition","e","style","position","ToastNotifications","notifications","setNotifications","containerRef","useRef","lockWidth","unlockWidth","useNotificationContainerWidthLock","React","createElement","Fill","name","ref","className","FlipList","timing","onReinsert","skipParentMorph","anchoredDownList","map","closeWithLock","key","title","onClickTitle","undefined","closeOnX","constrainEvent","SwitchDiv","on","Loading","size","white","absolute","_StyledDiv","details","lockCountRef","prevWidthRef","el","current","width","measured","getBoundingClientRect","next","Math","max"],"mappings":";;;;;;;;;;;;;;;;;;;AAaA,MAAMA,qBAAqB,gBAAGC,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,2CAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,sJAAA,EAAA,GAAA,EAAA,oXAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAUpCC,KAAK,CAACC,OAAO,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,CAAA,CAAA,mCAAA,CAAA,CAAA,CAAA,CAAA,EAGbH,KAAK,CAACI,MAAM,CAAAC,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,CAwBZH,CAAAA,oCAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,CAACC,OAAO,CAAAK,gBAAA,KAAAA,gBAAA,GAAAH,sBAAA,CAAA,CAAA,4DAAA,CAAA,CAAA,CAAA,CAAA,EAKbH,KAAK,CAACI,MAAM,CAAAG,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,CAIf,CAAA,+CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,MAAMK,QAAQ,gBAAGb,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,kKAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EASvBC,KAAK,CAACC,OAAO,CAAAQ,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,CACCO,CAAAA,oBAAAA,EAAAA,8BAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,IAAIC,IAAI,CAACC,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC,CAACH,KAAK,CAAC,EAACI,WAAW,CAACJ,KAAK,CAACK,OAAO,EAAC,GAAG,CAAC,CAAC,GAGvFf,KAAK,CAACI,MAAM,CAAAY,gBAAA,KAAAA,gBAAA,GAAAb,sBAAA,CAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,CAAA,CAAA,EACEO,KAAK,IAAIC,IAAI,CAACC,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC,CAACH,KAAK,CAAC,EAACI,WAAW,CAACJ,KAAK,CAACK,OAAO,EAAC,GAAG,CAAC,CAAC,CAEvFL,EAAAA,KAAK,IAAIO,GAAG,CAAAC,gBAAA,KAAAA,gBAAA,GAAAf,sBAAA,CAAA,CAAA,cAAA,EAAA,GAAA,CAAA,CAAA,CAAA,EAAeS,QAAQ,CAACF,KAAK,CAACG,IAAI,CAAC,CAAG,CACrD,CAAA;AACD,MAAMM,0BAA0B,gBAAGxB,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,gDAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gMAAA,EAAA,EAAA,CAAA,EAUzCW,KAAK,IAAIA,KAAK,CAACU,OAAO,IAAI,kBAAkB,CAC/C,CAAA;AACD,MAAMC,iBAAiB,gBAAG1B,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,uCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAInC,CAAA,CAAA,CAAA,4DAAA,CAAA,CAAA,CAAA;AACD,MAAMuB,mBAAmB,gBAAG3B,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,yCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAKlCC,CAAAA,CAAAA,CAAAA,sEAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,CAACI,MAAM,CAAAmB,gBAAA,KAAAA,gBAAA,GAAApB,sBAAA,CAGf,CAAA,oCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,MAAMqB,uBAAuB,gBAAG7B,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,6CAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iFAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAMtC0B,IAAI,EACSf,KAAK,IAAKA,KAAK,CAACgB,SAAS,GAAG,EAAE,GAAIhB,KAAK,CAACiB,YAAY,IAAI,EAAI,CAE5E,CAAA;AACD,MAAMC,SAAS,gBAAGjC,MAAM,CAAC8B,IAAI,CAAC,CAACI,KAAK,CAAC;AAACC,EAAAA,IAAI,EAAE,GAAA;AAAG,CAAC,CAAC,CAAAjC,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAiBhD,CAAA,CAAA,CAAA,kPAAA,CAAA,CAAA,CAAA;AACD,MAAMgC,mBAAmB,gBAAGpC,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,yCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAOrC,CAAA,CAAA,CAAA,8GAAA,CAAA,CAAA,CAAA;AAEK,MAAA,CAACiC,qBAAqB,EAAEC,yBAAyB,EAACC,qBAAqB,CAAC,GAAGC,kBAAkB,CAAC,EAAE,EAAC;AAEvG,MAAMC,kBAAkB,GAAGA,CAACC,YAAY,EAACC,KAAK,KAC5CC,SAAA,CAAWF,YAAY,CAAC,GAAAG,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAChBH,EAAAA,EAAAA,YAAY,GAAIC,KAAK,CAAA,EAAA,EAAA,EAAA;EAAEG,IAAI,EAAEC,MAAM,EAAC;AAAC,CAAAF,CAAAA,GAAAA,aAAA,CAAAA,aAAA,CAAA;AACxC3B,EAAAA,IAAI,EAAC,SAAS;AAAC8B,EAAAA,OAAO,EAACN,YAAAA;AAAY,CAAA,EAAIC,KAAK,CAAA,EAAA,EAAA,EAAA;EAAEG,IAAI,EAAEC,MAAM,EAAC;AAAC,CAAC,CAAA,CAAA;AAE7D,MAAME,uBAAuB,GAAGA,CAACP,YAAY,EAACQ,OAAO,EAAEC,aAAa,KAAK;AAC9E,EAAA,MAAMC,GAAG,GAAGL,MAAM,EAAE,CAAA;EACpB,IAAIM,YAAY,GAAG,CAAC,CAAC,CAAA;EACrB,IAAIC,SAAS,GAAG,KAAK,CAAA;EACrB,MAAMC,KAAK,GAAGA,MAAM;IAClBC,YAAY,CAACH,YAAY,CAAC,CAAA;AAC1B,IAAA,IAAIC,SAAS,EAAE,OAAA;IACff,qBAAqB,CAACkB,aAAA,CAAe,KAAK,EAAAA,aAAA,CAAAC,WAAA,EAAI,CAAC;AAACN,MAAAA,GAAAA;KAAI,CAAC,CAAC,CAAC,CAAA;AACvDE,IAAAA,SAAS,GAAG,IAAI,CAAA;IAChBK,cAAc,CAACR,aAAa,CAAC,CAAA;GAC9B,CAAA;AACD,EAAA,MAAMS,eAAe,GAAGnB,kBAAkB,CAACC,YAAY,EAAC;IAACU,GAAG;AAACG,IAAAA,KAAAA;AAAK,GAAC,CAAC,CAAA;AACpEhB,EAAAA,qBAAqB,CAACsB,OAAA,CAASD,eAAe,CAAC,CAAC,CAAA;EAChD,IAAIV,OAAO,GAAC,CAAC,EAAE;AACbG,IAAAA,YAAY,GAAGS,UAAU,CAACP,KAAK,EAACL,OAAO,CAAC,CAAA;AAC1C,GAAA;EACA,OAAO;IACLK,KAAK;AACLQ,IAAAA,QAAQ,EAACA,CAACC,GAAG,EAACd,OAAO,KAAK;MACxBM,YAAY,CAACH,YAAY,CAAC,CAAA;MAC1B,IAAIH,OAAO,GAAG,CAAC,EAAE;AACfG,QAAAA,YAAY,GAAGS,UAAU,CAACP,KAAK,EAACL,OAAO,CAAC,CAAA;AAC1C,OAAA;AACA,MAAA,MAAMU,eAAe,GAAGnB,kBAAkB,CAACuB,GAAG,EAAC;QAACZ,GAAG;AAACG,QAAAA,KAAAA;AAAK,OAAC,CAAC,CAAA;AAC3D,MAAA,IAAID,SAAS,EAAE;AACbA,QAAAA,SAAS,GAAG,KAAK,CAAA;AACjBf,QAAAA,qBAAqB,CAACsB,OAAA,CAASD,eAAe,CAAC,CAAC,CAAA;AAClD,OAAC,MAAM;AACLrB,QAAAA,qBAAqB,CAAC0B,IAAA,CAAMC,CAAC,IAAIA,CAAC,CAACd,GAAG,KAAKA,GAAG,GAAAP,aAAA,CAAAA,aAAA,KAAOe,eAAe,CAAA,EAAA,EAAA,EAAA;UAAEd,IAAI,EAAEoB,CAAC,CAACpB,IAAAA;SAAQoB,CAAAA,GAAAA,CAAC,CAAC,CAAC,CAAA;AAC3F,OAAA;AACF,KAAA;GACD,CAAA;AACH,EAAC;MACYC,0BAA0B,GAAGA,CAACzB,YAAY,EAACQ,OAAO,KAAK;AAClE,EAAA,MAAMkB,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAMC,UAAU,GAAGC,OAAO,CAAC,MAAM7B,YAAY,CAACM,OAAO,IAAIN,YAAY,CAAC8B,OAAO,GAAG,EAAE,GAAG9B,YAAY,EAAC,EAAE,CAAC,CAAA;EACrG,MAAM+B,IAAI,GAAGA,CAAC/B,YAAY,EAACQ,OAAO,KAAKR,YAAY,IAAIO,uBAAuB,CAACR,kBAAkB,CAACC,YAAY,EAAC4B,UAAU,CAAC,EAACpB,OAAO,EAAC,MAAMkB,MAAM,CAACb,KAAK,EAAE,CAAC,CAAA;AACxJmB,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIhC,YAAY,CAACM,OAAO,IAAIN,YAAY,CAAC8B,OAAO,EAAE;AAChDJ,MAAAA,MAAM,CAACL,QAAQ,CAACU,IAAI,CAAC/B,YAAY,CAAC,CAAC,CAAA;AACrC,KAAA;GACD,EAAC,EAAE,CAAC,CAAA;EAEL,OAAO6B,OAAO,CAAC,OAAO;AACpBhB,IAAAA,KAAK,EAAEA,MAAA;AAAA,MAAA,IAAAoB,WAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,WAAA,GAAMP,MAAM,CAACQ,GAAG,EAAE,MAAAD,IAAAA,IAAAA,WAAA,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAcpB,KAAK,EAAE,CAAA;AAAA,KAAA;AAClCQ,IAAAA,QAAQ,EAAEA,CAACrB,YAAY,EAACQ,OAAO,KAAKkB,MAAM,CAACQ,GAAG,EAAE,GAAGR,MAAM,CAACQ,GAAG,EAAE,CAACb,QAAQ,CAACtB,kBAAkB,CAACC,YAAY,EAAC4B,UAAU,CAAC,EAACpB,OAAO,CAAC,GAAGkB,MAAM,CAACL,QAAQ,CAACU,IAAI,CAAC/B,YAAY,EAACQ,OAAO,CAAC,CAAC;AAC3K2B,IAAAA,IAAI,EAAEA,MAAMT,MAAM,CAACQ,GAAG,EAAE,GAAGR,MAAM,CAACQ,GAAG,EAAE,CAACb,QAAQ,CAACtB,kBAAkB,CAACC,YAAY,EAAC4B,UAAU,CAAC,EAACpB,OAAO,CAAC,GAAGkB,MAAM,CAACL,QAAQ,CAACU,IAAI,CAAC/B,YAAY,EAACQ,OAAO,CAAC,CAAA;AACpJ,GAAC,CAAC,EAAC,CAACkB,MAAM,CAACU,MAAM,CAAC,CAAC,CAAA;AACrB,EAAC;AACYC,MAAAA,yBAAyB,GAAGA,CAACC,GAAG,EAAC9B,OAAO,KAAK,MAAMD,uBAAuB,CAAC+B,GAAG,EAAC9B,OAAO,EAAC;AAEpG,MAAM+B,iBAAiB,GAAG,GAAG,CAAA;AAC7B,MAAMC,YAAY,GAAG,mCAAmC,CAAA;AACxD,MAAMC,YAAY,MAAAC,MAAA,CAAMH,iBAAiB,EAAAG,KAAAA,CAAAA,CAAAA,MAAA,CAAMF,YAAY,CAAE,CAAA;AAE7D,MAAMG,SAAS,GAAGC,eAAe,CAC/B,uCAAuC,EACvC,6CAA6C,EAC7C,0CACF,CAAC,CAAA;AACD,MAAMC,+BAA+B,GAAGC,CAAC,IAAIA,CAAC,CAACC,KAAK,CAACC,QAAQ,GAAC,EAAE,CAAA;AACnDC,MAAAA,kBAAkB,GAAGA,MAAM;EACtC,MAAM,CAACC,aAAa,EAACC,gBAAgB,CAAC,GAAGxD,qBAAqB,EAAE,CAAA;AAChE,EAAA,MAAMyD,YAAY,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;EACjC,MAAM;IAACC,SAAS;AAAEC,IAAAA,WAAAA;AAAW,GAAC,GAAGC,iCAAiC,CAACJ,YAAY,CAAC,CAAA;AAEhF,EAAA,oBAAQK,KAAA,CAAAC,aAAA,CAACC,IAAI,EAAA;AAACC,IAAAA,IAAI,EAAC,eAAA;AAAe,GAAA,eAChCH,KAAA,CAAAC,aAAA,CAACrG,qBAAqB,EAAA;AAACwG,IAAAA,GAAG,EAAET,YAAa;AAACU,IAAAA,SAAS,EAAC,mBAAA;AAAmB,GAAA,eACrEL,KAAA,CAAAC,aAAA,CAACK,QAAQ,EAAA;AAACpB,IAAAA,SAAS,EAAEA,SAAU;AAACqB,IAAAA,MAAM,EAAEvB,YAAa;AAACwB,IAAAA,UAAU,EAAEpB,+BAAgC;IAACqB,eAAe,EAAA,IAAA;IAACC,gBAAgB,EAAA,IAAA;AAAA,GAAA,EAE/HjB,aAAa,CAACkB,GAAG,CAACpE,YAAY,IAAI;IAClC,MAAMqE,aAAa,GAAGA,MAAM;AAC1Bf,MAAAA,SAAS,EAAE,CAAA;MACXtD,YAAY,CAACa,KAAK,EAAE,CAAA;AAClBO,MAAAA,UAAU,CAACmC,WAAW,EAAEhB,iBAAiB,CAAC,CAAA;KAC7C,CAAA;AAED,IAAA,OACEtB,cAAc,CAACjB,YAAY,CAAC8B,OAAO,EAACuC,aAAa,CAAC,iBAClDZ,KAAA,CAAAC,aAAA,CAACvF,QAAQ,EAAA;AACPmG,MAAAA,GAAG,WAAA5B,MAAA,CAAW1C,YAAY,CAACU,GAAG,CAAG;MACjClC,IAAI,EAAEwB,YAAY,CAACxB,IAAK;MACxBO,OAAO,EAAEiB,YAAY,CAACjB,OAAQ;MAC9BL,OAAO,EAAEsB,YAAY,CAACtB,OAAAA;KAErBsB,EAAAA,YAAY,CAACuE,KAAK,gBACjBd,KAAA,CAAAC,aAAA,CAAC5E,0BAA0B,EAAA;AAACC,MAAAA,OAAO,EAAEiB,YAAY,CAACwE,YAAY,GAAI1B,CAAC,IAAK9C,YAAY,CAACwE,YAAY,CAAC1B,CAAC,EAACuB,aAAa,CAAC,GAAGI,SAAAA;AAAU,KAAA,eAC7HhB,KAAA,CAAAC,aAAA,CAAC1E,iBAAiB,EAAA,IAAA,EAAEgB,YAAY,CAACuE,KAAyB,CAAC,EAC1DvE,YAAY,CAAC0E,QAAQ,iBAAIjB,KAAA,CAAAC,aAAA,CAACnE,SAAS,EAAA;MAACR,OAAO,EAAE4F,cAAc,CAACN,aAAa,CAAA;KAAG,CACnD,CAAC,GAE7BrE,YAAY,CAAC0E,QAAQ,iBAAIjB,KAAA,CAAAC,aAAA,CAACnE,SAAS,EAAA;AAACR,MAAAA,OAAO,EAAEsF,aAAAA;AAAc,KAAC,CAAC,eAE/DZ,KAAA,CAAAC,aAAA,CAACkB,SAAS,EAAA;MAACC,EAAE,EAAE7E,YAAY,CAACI,IAAAA;AAAK,KAAA,eAC/BqD,KAAA,CAAAC,aAAA,CAACzE,mBAAmB,EACjBe,IAAAA,EAAAA,YAAY,CAACP,IAAI,iBAChBgE,KAAA,CAAAC,aAAA,CAACvE,uBAAuB,EAAA;MACtBE,SAAS,EAAEW,YAAY,CAACX,SAAU;MAClCC,YAAY,EAAEU,YAAY,CAACV,YAAAA;AAAa,KAAA,eAExCmE,KAAA,CAAAC,aAAA,CAACtE,IAAI,EAAA;MAACK,IAAI,EAAEO,YAAY,CAACP,IAAAA;KAAM,CAAC,EAC/BO,YAAY,CAACX,SAAS,iBAAIoE,KAAA,CAAAC,aAAA,CAACoB,OAAO,EAAA;AAACC,MAAAA,IAAI,EAAE,EAAG;MAACC,KAAK,EAAA,IAAA;MAACC,QAAQ,EAAA,IAAA;AAAA,KAAC,CACtC,CAAC,eAE5BxB,KAAA,CAAAC,aAAA,CAAAwB,UAAA,EAA0BjE,IAAAA,EAAAA,cAAc,CAACjB,YAAY,CAACM,OAAO,EAAC+D,aAAa,CAAO,CAC/D,CAAC,EACrBrE,YAAY,CAACmF,OAAO,iBACnB1B,KAAA,CAAAC,aAAA,CAAChE,mBAAmB,EAAA;MAACX,OAAO,EAAE4F,cAAc,EAAC;AAAE,KAAA,EAC5C3E,YAAY,CAACmF,OACK,CAEd,CACH,CAAC,CAAA;GAEd,CAEO,CACW,CACnB,CAAC,CAAA;AACT,EAAC;AAED,MAAM3B,iCAAiC,GAAIJ,YAAY,IAAK;AAC1D,EAAA,MAAMgC,YAAY,GAAG/B,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9B,EAAA,MAAMgC,YAAY,GAAGhC,MAAM,CAAC,IAAI,CAAC,CAAA;EAEjC,MAAMC,SAAS,GAAGA,MAAM;AACtB,IAAA,MAAMgC,EAAE,GAAGlC,YAAY,CAACmC,OAAO,CAAA;IAC/B,IAAI,CAACD,EAAE,EAAE,OAAA;AACT,IAAA,IAAIF,YAAY,CAACG,OAAO,KAAK,CAAC,EAAE;AAC9BF,MAAAA,YAAY,CAACE,OAAO,GAAGD,EAAE,CAACvC,KAAK,CAACyC,KAAK,CAAA;MACrC,MAAMC,QAAQ,GAAGH,EAAE,CAACI,qBAAqB,EAAE,CAACF,KAAK,CAAA;AACjDF,MAAAA,EAAE,CAACvC,KAAK,CAACyC,KAAK,GAAGC,QAAQ,GAAG,IAAI,CAAA;AAClC,KAAA;AACAL,IAAAA,YAAY,CAACG,OAAO,GAAGH,YAAY,CAACG,OAAO,GAAG,CAAC,CAAA;GAChD,CAAA;EAED,MAAMhC,WAAW,GAAGA,MAAM;AACxB,IAAA,MAAM+B,EAAE,GAAGlC,YAAY,CAACmC,OAAO,CAAA;IAC/B,IAAI,CAACD,EAAE,EAAE,OAAA;AACT,IAAA,MAAMK,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAET,YAAY,CAACG,OAAO,GAAG,CAAC,CAAC,CAAA;IAClDH,YAAY,CAACG,OAAO,GAAGI,IAAI,CAAA;IAC3B,IAAIA,IAAI,KAAK,CAAC,EAAE;MACdL,EAAE,CAACvC,KAAK,CAACyC,KAAK,GAAGH,YAAY,CAACE,OAAO,IAAI,EAAE,CAAA;MAC3CF,YAAY,CAACE,OAAO,GAAG,IAAI,CAAA;AAC7B,KAAA;GACD,CAAA;EAED,OAAO;IAACjC,SAAS;AAAEC,IAAAA,WAAAA;GAAY,CAAA;AACjC,CAAC,CAAA;AAAA,IAAA2B,UAAA,gBAAA5H,MAAA,CAAA,KAAA,CAAA,CAAAE,UAAA,CAAA;EAAAC,WAAA,EAAA,gCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA;;;;"}
package/lib/index.cjs CHANGED
@@ -361,7 +361,7 @@ const TextButton = /*#__PURE__*/styled__default["default"](_ref => {
361
361
  }).withConfig({
362
362
  displayName: "TextButton",
363
363
  componentId: "sc-1eydmhc-0"
364
- })(["display:inline-block;font-weight:600;font-size:", "px;color:", ";cursor:pointer;text-decoration:none;:hover,:active{color:", ";}", "{display:inline-block;margin-left:0.25rem;vertical-align:-3px;}", " & ~ &{margin-left:1rem;}"], props => props.fontSize ? fontSize : "14", props => props.alert ? utils.getColor('alert') : utils.getColor('main'), props => props.alert ? polished.darken(0.1, utils.getColor("alert")(props)) : polished.darken(0.1, utils.getColor("main")(props)), Loading, props => props.nowrap && "\n white-space: nowrap;\n ");
364
+ })(["display:inline-block;font-weight:600;font-size:", "px;color:", ";cursor:pointer;text-decoration:none;:hover,:active{color:", ";}", "{display:inline-block;margin-left:0.25rem;vertical-align:-3px;}", " & ~ &{margin-left:1rem;}"], props => props.fontSize ? props.fontSize : "14", props => props.alert ? utils.getColor('alert') : utils.getColor('main'), props => props.alert ? polished.darken(0.1, utils.getColor("alert")(props)) : polished.darken(0.1, utils.getColor("main")(props)), Loading, props => props.nowrap && "\n white-space: nowrap;\n ");
365
365
  TextButton.a = props => /*#__PURE__*/React__default["default"].createElement(TextButton, _extends__default["default"]({}, props, {
366
366
  className: props.className,
367
367
  innerAs: "a"
@@ -2369,7 +2369,7 @@ const useToastNotificationToggle = (notification, timeout) => {
2369
2369
  open: () => toggle.get() ? toggle.get().openWith(formatNotification(notification, extraProps), timeout) : toggle.openWith(make(notification, timeout))
2370
2370
  }), [toggle.isOpen]);
2371
2371
  };
2372
- const willShowToastNotification = str => () => showToastNotification(str);
2372
+ const willShowToastNotification = (str, timeout) => () => createToastNotification(str, timeout);
2373
2373
  const EXIT_ANIMATION_MS = 300;
2374
2374
  const TOAST_EASING = 'cubic-bezier(0.22, 0.61, 0.36, 1)';
2375
2375
  const TOAST_TIMING = "".concat(EXIT_ANIMATION_MS, "ms ").concat(TOAST_EASING);