kitzo 2.1.30 → 2.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/kitzo/ui/toast/toaster.js","../../src/kitzo/ui/toast/Svgs.jsx","../../src/kitzo/ui/toast/Toast.jsx","../../src/kitzo/ui/toast/ToastContainer.jsx","../../src/kitzo/ui/tooltip/Tooltip.jsx","../../src/kitzo/hooks/useDebounce.jsx","../../src/kitzo/hooks/useWindowSize.jsx"],"sourcesContent":["const toastStyles = `.toast-content,\r\n.toast-content-bottom {\r\n font-size: 0.925rem;\r\n}\r\n.toast-content,\r\n.toast-content-bottom {\r\n pointer-events: all;\r\n}\r\n \r\n.pre-styled {\r\n padding-inline: 0.825rem;\r\n padding-block: 0.625rem;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n background-color: white;\r\n border-radius: 0.5525rem;\r\n box-shadow: 0 2px 8px -3px rgba(0, 0, 0, 0.3);\r\n}\r\n\r\n.toast-content {\r\n animation: slide-in 230ms forwards;\r\n}\r\n.toast-content.exit {\r\n animation: slide-out 110ms forwards;\r\n}\r\n\r\n.toast-content-bottom {\r\n animation: bottom-slide-in 230ms forwards;\r\n}\r\n.toast-content-bottom.exit {\r\n animation: bottom-slide-out 110ms forwards;\r\n}\r\n\r\n@keyframes slide-in {\r\n from {\r\n opacity: 0;\r\n translate: 0 -100%;\r\n scale: 0.7;\r\n }\r\n to {\r\n opacity: 1;\r\n translate: 0 0;\r\n scale: 1;\r\n }\r\n}\r\n\r\n@keyframes slide-out {\r\n from {\r\n opacity: 1;\r\n translate: 0 0;\r\n scale: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n translate: 0 -100%;\r\n scale: 0.7;\r\n }\r\n}\r\n\r\n@keyframes bottom-slide-in {\r\n from {\r\n opacity: 0;\r\n translate: 0 100%;\r\n scale: 0.7;\r\n }\r\n to {\r\n opacity: 1;\r\n translate: 0 0;\r\n scale: 1;\r\n }\r\n}\r\n\r\n@keyframes bottom-slide-out {\r\n from {\r\n opacity: 1;\r\n translate: 0 0;\r\n scale: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n translate: 0 100%;\r\n scale: 0.7;\r\n }\r\n}\r\n\r\n.svg-container {\r\n display: grid;\r\n place-items: center;\r\n border-radius: 10rem;\r\n background-color: #61d345;\r\n color: white;\r\n height: 20px;\r\n width: 20px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n scale: 1.1;\r\n animation: svg-container-animation 400ms ease-in-out forwards;\r\n\r\n svg {\r\n width: 14px;\r\n height: 14px;\r\n stroke-width: 4px;\r\n display: inline-block;\r\n }\r\n}\r\n\r\n.svg-container.success {\r\n background-color: #61d345;\r\n}\r\n.svg-container.error {\r\n background-color: #ff4b4b;\r\n\r\n svg {\r\n scale: 0;\r\n animation: error-svg-zoom-in 170ms 130ms forwards;\r\n }\r\n}\r\n\r\n.svg-container.success::before {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n z-index: 5;\r\n border-radius: 10rem;\r\n background-color: #61d345;\r\n animation: success-container-before-animation 250ms 150ms forwards;\r\n}\r\n\r\n@keyframes svg-container-animation {\r\n 0% {\r\n scale: 1;\r\n }\r\n 50% {\r\n scale: 1.15;\r\n }\r\n 100% {\r\n scale: 1;\r\n }\r\n}\r\n\r\n@keyframes success-container-before-animation {\r\n from {\r\n translate: 0 0;\r\n }\r\n to {\r\n translate: 100% -50%;\r\n }\r\n}\r\n\r\n@keyframes error-svg-zoom-in {\r\n from {\r\n scale: 0;\r\n }\r\n to {\r\n scale: 1;\r\n }\r\n}\r\n\r\n.promise-svg-container {\r\n width: 20px;\r\n height: 20px;\r\n display: grid;\r\n place-items: center;\r\n color: #474747;\r\n\r\n svg {\r\n width: 14px;\r\n height: 14px;\r\n stroke-width: 3px;\r\n display: inline-block;\r\n animation: rotate-infinity 1000ms infinite linear;\r\n }\r\n}\r\n\r\n@keyframes rotate-infinity {\r\n to {\r\n rotate: 360deg;\r\n }\r\n}\r\n`;\r\n\r\nconst listeners = new Set();\r\n\r\nfunction addToast(toast) {\r\n listeners.forEach((callback) => {\r\n callback(toast);\r\n });\r\n}\r\n\r\nexport function subscribe(callback) {\r\n if (!document.getElementById('kitzo-react-toast-styles')) {\r\n const styleTag = document.createElement('style');\r\n styleTag.id = 'kitzo-react-toast-styles';\r\n styleTag.textContent = toastStyles;\r\n document.head.appendChild(styleTag);\r\n }\r\n\r\n listeners.add(callback);\r\n return () => listeners.delete(callback);\r\n}\r\n\r\nfunction toast(text = 'Toast message', options = {}) {\r\n const id = Date.now();\r\n options = Object.assign(\r\n {\r\n duration: 2800,\r\n id,\r\n style: {},\r\n showIcon: false,\r\n },\r\n options,\r\n );\r\n addToast({ type: 'success', text, options });\r\n}\r\n\r\ntoast.success = (text = 'Toast success', options = {}) => {\r\n const id = Date.now();\r\n options = Object.assign(\r\n {\r\n duration: 2800,\r\n id,\r\n style: {},\r\n showIcon: true,\r\n },\r\n options,\r\n );\r\n addToast({ type: 'success', text, options });\r\n};\r\n\r\ntoast.error = (text = 'Toast denied', options = {}) => {\r\n const id = Date.now();\r\n options = Object.assign(\r\n {\r\n duration: 2800,\r\n id,\r\n style: {},\r\n showIcon: true,\r\n },\r\n options,\r\n );\r\n addToast({ type: 'error', text, options });\r\n};\r\n\r\ntoast.promise = (callback, msgs = {}, options = {}) => {\r\n const id = Date.now();\r\n options = Object.assign(\r\n {\r\n duration: 2800,\r\n id,\r\n style: {},\r\n showIcon: true,\r\n },\r\n options,\r\n );\r\n\r\n msgs = Object.assign(\r\n {\r\n loading: 'Saving...',\r\n success: 'Success',\r\n error: 'Something went wrong',\r\n },\r\n msgs,\r\n );\r\n\r\n addToast({ type: 'loading', text: msgs.loading, options: { ...options, duration: Infinity, id } });\r\n\r\n callback\r\n .then((res) => {\r\n const successMsg = typeof msgs.success === 'function' ? msgs.success(res) : msgs.success;\r\n addToast({ type: 'success', text: successMsg, options });\r\n\r\n return res;\r\n })\r\n .catch((err) => {\r\n const normalizedError = err instanceof Error ? err : new Error(String(err));\r\n const errorMsg = typeof msgs.error === 'function' ? msgs.error(normalizedError) : msgs.error;\r\n\r\n addToast({ type: 'error', text: errorMsg, options });\r\n return Promise.reject(normalizedError);\r\n });\r\n};\r\n\r\ntoast.custom = (render, options = {}) => {\r\n const id = Date.now();\r\n\r\n options = Object.assign(\r\n {\r\n duration: 3000,\r\n id,\r\n exitDelay: 50,\r\n },\r\n options,\r\n );\r\n\r\n addToast({\r\n type: 'custom',\r\n render,\r\n options,\r\n });\r\n\r\n return id;\r\n};\r\n\r\nfunction dismiss(id, exitDelay) {\r\n addToast({ type: 'dismiss', id, exitDelay });\r\n}\r\n\r\nexport { toast, dismiss };\r\n","export function SuccessSvg() {\r\n return (\r\n <div className=\"svg-container success\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M20 6 9 17l-5-5\" />\r\n </svg>\r\n </div>\r\n );\r\n}\r\nexport function ErrorSvg() {\r\n return (\r\n <div className=\"svg-container error\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M18 6 6 18\" />\r\n <path d=\"m6 6 12 12\" />\r\n </svg>\r\n </div>\r\n );\r\n}\r\nexport function LoadingSvg() {\r\n return (\r\n <div className=\"promise-svg-container\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\r\n </svg>\r\n </div>\r\n );\r\n}\r\n","import { useRef, useLayoutEffect } from 'react';\r\nimport { SuccessSvg, ErrorSvg, LoadingSvg } from './Svgs';\r\nimport { dismiss } from './toaster';\r\n\r\nfunction Toast({ toast, setToasts, position, gap }) {\r\n const { id, leaving, offset, text, type, options } = toast;\r\n const { style, showIcon } = options;\r\n const ref = useRef(null);\r\n\r\n useLayoutEffect(() => {\r\n if (!ref.current) return;\r\n\r\n const height = ref.current.getBoundingClientRect().height;\r\n const totalHeight = height + gap;\r\n\r\n setToasts((prev) => prev.map((t) => (t.id === id ? { ...t, height: totalHeight } : t)));\r\n }, []);\r\n\r\n const transformY = position.includes('bottom') ? `translateY(-${offset || 0}px)` : `translateY(${offset || 0}px)`;\r\n\r\n function renderCustomContent() {\r\n const render = toast.render;\r\n\r\n if (typeof render === 'function') {\r\n return render(() => dismiss(toast.id, toast.options.exitDelay));\r\n }\r\n if (typeof render === 'string') {\r\n return <span>{render}</span>;\r\n }\r\n return render;\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n style={{\r\n maxHeight: 'fit-content',\r\n transform: transformY,\r\n ...getToastPosition(position),\r\n }}\r\n >\r\n <div className={`toast-content${position.includes('bottom') ? '-bottom' : ''} ${leaving ? 'exit' : ''}`}>\r\n {type === 'custom' ? (\r\n renderCustomContent()\r\n ) : (\r\n <div style={{ ...style }} className=\"pre-styled\">\r\n {showIcon && (\r\n <>\r\n {type === 'loading' && <LoadingSvg />}\r\n {type === 'success' && <SuccessSvg />}\r\n {type === 'error' && <ErrorSvg />}\r\n </>\r\n )}\r\n <span>{text}</span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Toast;\r\n\r\nfunction getToastPosition(position) {\r\n const isLeft = position.includes('left');\r\n const isRight = position.includes('right');\r\n\r\n const styles = {\r\n position: 'absolute',\r\n width: '100%',\r\n pointerEvents: 'none',\r\n transition: 'transform 230ms',\r\n display: 'flex',\r\n };\r\n\r\n if (position.includes('top')) {\r\n styles.top = '0';\r\n styles.justifyContent = isLeft ? 'flex-start' : isRight ? 'flex-end' : 'center';\r\n }\r\n if (position.includes('bottom')) {\r\n styles.bottom = '0';\r\n styles.justifyContent = isLeft ? 'flex-start' : isRight ? 'flex-end' : 'center';\r\n }\r\n\r\n return styles;\r\n}\r\n","import { useEffect, useLayoutEffect, useState } from 'react';\r\nimport { subscribe } from './toaster';\r\nimport Toast from './Toast';\r\n\r\nexport default function ToastContainer(props) {\r\n props = Object.assign(\r\n {\r\n position: 'top-center',\r\n gap: 8,\r\n },\r\n props,\r\n );\r\n\r\n const { gap } = props;\r\n const position = props.position;\r\n\r\n const [toasts, setToasts] = useState([]);\r\n\r\n // event listener\r\n useEffect(() => {\r\n const unsub = subscribe((toast) => {\r\n if (toast.type === 'dismiss') {\r\n setTimeout(\r\n () => {\r\n setToasts((prev) => prev.map((t) => (t.options.id === toast.id ? { ...t, leaving: true } : t)));\r\n },\r\n Math.max(0, Number(toast.exitDelay)),\r\n );\r\n\r\n setTimeout(\r\n () => {\r\n setToasts((prev) => prev.filter((t) => t.options.id !== toast.id));\r\n },\r\n Math.max(0, Number(toast.exitDelay) + 300),\r\n );\r\n return;\r\n }\r\n\r\n const duration = toast.options.duration;\r\n const id = toast.options.id;\r\n\r\n setToasts((prev) => {\r\n const exists = prev.some((t) => t.options.id === id);\r\n if (exists) {\r\n return prev.map((t) => (t.options.id === id ? { ...t, ...toast } : t));\r\n }\r\n\r\n return [{ id, ...toast, offset: 0, height: 0, leaving: false }, ...prev];\r\n });\r\n\r\n if (toast.type !== 'loading' && isFinite(duration)) {\r\n setTimeout(\r\n () => {\r\n setToasts((prev) => prev.map((t) => (t.options.id === id ? { ...t, leaving: true } : t)));\r\n },\r\n Math.max(0, duration - 300),\r\n );\r\n\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.options.id !== id));\r\n }, duration);\r\n }\r\n });\r\n\r\n return () => unsub();\r\n }, []);\r\n\r\n // measue height and offset for each toast\r\n useLayoutEffect(() => {\r\n const grouped = toasts.reduce((acc, t) => {\r\n const pos = t.options.position || position || 'top-center';\r\n (acc[pos] ||= []).push(t);\r\n return acc;\r\n }, {});\r\n\r\n let hasChanged = false;\r\n\r\n const updated = toasts.map((toast) => {\r\n const pos = toast.options.position || position || 'top-center';\r\n const group = grouped[pos];\r\n const index = group.findIndex((t) => t.id === toast.id);\r\n\r\n const offset = group.slice(0, index).reduce((acc, t) => acc + (t.height || 0), 0);\r\n\r\n if (offset !== toast.offset) {\r\n hasChanged = true;\r\n }\r\n\r\n return { ...toast, offset };\r\n });\r\n\r\n if (hasChanged) {\r\n setToasts(updated);\r\n }\r\n }, [toasts]);\r\n\r\n const positions = ['top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right'];\r\n\r\n return (\r\n <div\r\n style={{\r\n position: 'fixed',\r\n inset: 0,\r\n zIndex: 100000000,\r\n pointerEvents: 'none',\r\n fontFamily: 'inherit',\r\n\r\n boxSizing: 'border-box',\r\n }}\r\n >\r\n {positions.map((pos) => {\r\n const group = toasts.filter((t) => (t.options.position || position || 'top-center') === pos);\r\n if (!group.length) return null;\r\n\r\n return (\r\n <div key={pos} style={{ position: 'absolute', inset: 0, display: 'grid', padding: '1rem' }}>\r\n <div style={{ position: 'relative' }}>\r\n {group.map((toast) => (\r\n <Toast key={toast.options.id} toast={toast} setToasts={setToasts} position={pos} gap={typeof gap === 'string' ? (isNaN(+gap) ? 8 : +gap) : gap} />\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n","// import './style.css';\r\nconst tooltipStyles = `/* Default styling */\r\n.kitzo-react-tooltip-root {\r\n --bg-clr: hsl(0, 0%, 15%);\r\n --text-clr: hsl(0, 0%, 95%);\r\n\r\n @media (prefers-color-scheme: dark) {\r\n --bg-clr: hsl(0, 0%, 95%);\r\n --text-clr: hsl(0, 0%, 15%);\r\n }\r\n}\r\n\r\n.kitzo-react-tooltip-content-default-style {\r\n font-family:\r\n inherit,\r\n system-ui,\r\n -apple-system,\r\n BlinkMacSystemFont,\r\n 'Segoe UI',\r\n Roboto,\r\n Oxygen,\r\n Ubuntu,\r\n Cantarell,\r\n 'Open Sans',\r\n 'Helvetica Neue',\r\n sans-serif;\r\n font-size: 0.875rem;\r\n background-color: var(--bg-clr);\r\n color: var(--text-clr);\r\n padding-block: 0.25rem;\r\n padding-inline: 0.5rem;\r\n border-radius: 0.325rem;\r\n}\r\n\r\n/* Tooltip positioning */\r\n.kitzo-react-tooltip-wrapper {\r\n --tooltip-offset: calc(var(--offset) * 1px + 1px);\r\n}\r\n/* Top */\r\n.kitzo-react-tooltip-wrapper.top {\r\n bottom: 100%;\r\n padding-block-end: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.top {\r\n left: 50%;\r\n translate: -50% 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.top.start {\r\n left: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.top.end {\r\n right: 0;\r\n translate: 0 0;\r\n}\r\n\r\n/* Right */\r\n.kitzo-react-tooltip-wrapper.right {\r\n left: 100%;\r\n padding-inline-start: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.right {\r\n top: 50%;\r\n translate: 0 -50%;\r\n}\r\n.kitzo-react-tooltip-wrapper.right.start {\r\n top: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.right.end {\r\n top: 100%;\r\n translate: 0 -100%;\r\n}\r\n\r\n/* Bottom */\r\n.kitzo-react-tooltip-wrapper.bottom {\r\n top: 100%;\r\n padding-block-start: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.bottom {\r\n left: 50%;\r\n translate: -50% 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.bottom.start {\r\n left: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.bottom.end {\r\n left: 100%;\r\n translate: -100% 0;\r\n}\r\n\r\n/* Left */\r\n.kitzo-react-tooltip-wrapper.left {\r\n right: 100%;\r\n padding-inline-end: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.left {\r\n top: 50%;\r\n translate: 0 -50%;\r\n}\r\n.kitzo-react-tooltip-wrapper.left.start {\r\n top: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.left.end {\r\n top: 100%;\r\n translate: 0 -100%;\r\n}\r\n\r\n/* Tooltip transitions */\r\n.kitzo-react-tooltip-root.animate-tooltip {\r\n --transition-startDuration: calc(var(--startDuration) * 1ms);\r\n --transition-endDuration: calc(var(--endDuration) * 1ms);\r\n --transition-startDelay: calc(var(--startDelay) * 1ms);\r\n --transition-endDelay: calc(var(--endDelay) * 1ms);\r\n\r\n .kitzo-react-tooltip-content {\r\n transition:\r\n transform var(--transition-endDuration) var(--transition-endDelay),\r\n opacity var(--transition-endDuration) var(--transition-endDelay);\r\n }\r\n}\r\n\r\n.kitzo-react-tooltip-content {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n}\r\n\r\n.kitzo-react-tooltip-content.top {\r\n transform-origin: bottom;\r\n}\r\n.kitzo-react-tooltip-content.right {\r\n transform-origin: left;\r\n}\r\n.kitzo-react-tooltip-content.bottom {\r\n transform-origin: top;\r\n}\r\n.kitzo-react-tooltip-content.left {\r\n transform-origin: right;\r\n}\r\n\r\n.kitzo-react-tooltip-root.animate-tooltip:hover {\r\n .kitzo-react-tooltip-content {\r\n transition:\r\n transform var(--transition-startDuration) var(--transition-startDelay),\r\n opacity var(--transition-startDuration) var(--transition-startDelay);\r\n }\r\n}\r\n.kitzo-react-tooltip-root:hover {\r\n .kitzo-react-tooltip-content {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n/* smart hover persistence feature */\r\n.kitzo-react-tooltip-root {\r\n .kitzo-react-tooltip-wrapper {\r\n pointer-events: none;\r\n }\r\n}\r\n.kitzo-react-tooltip-root.smart-hover:hover {\r\n .kitzo-react-tooltip-wrapper {\r\n pointer-events: all;\r\n }\r\n}\r\n\r\n/* Arrow */\r\n.kitzo-react-tooltip-content.tooltip-arrow {\r\n --effective-size: calc(var(--arrow-size, 6) * 1px);\r\n --effective-color: var(--arrow-color, var(--bg-clr));\r\n\r\n position: relative;\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow::before {\r\n content: '';\r\n position: absolute;\r\n z-index: -1;\r\n border: var(--effective-size) solid transparent;\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.top::before {\r\n left: 50%;\r\n translate: -50% 0;\r\n top: calc(100% - 1px);\r\n border-top: var(--effective-size) solid var(--effective-color);\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.right::before {\r\n top: 50%;\r\n translate: 0 -50%;\r\n right: calc(100% - 1px);\r\n border-right: var(--effective-size) solid var(--effective-color);\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.bottom::before {\r\n left: 50%;\r\n translate: -50% 0;\r\n bottom: calc(100% - 1px);\r\n border-bottom: var(--effective-size) solid var(--effective-color);\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.left::before {\r\n top: 50%;\r\n translate: 0 -50%;\r\n left: calc(100% - 1px);\r\n border-left: var(--effective-size) solid var(--effective-color);\r\n}`;\r\n\r\n(() => {\r\n if (!document.getElementById('kitzo-react-tooltip-styles')) {\r\n const styleTag = document.createElement('style');\r\n styleTag.id = 'kitzo-react-tooltip-styles';\r\n styleTag.textContent = tooltipStyles;\r\n document.head.appendChild(styleTag);\r\n }\r\n})();\r\n\r\nconst allowedPositions = [\r\n 'top-start',\r\n 'top',\r\n 'top-end',\r\n 'right-start',\r\n 'right',\r\n 'right-end',\r\n 'bottom-start',\r\n 'bottom',\r\n 'bottom-end',\r\n 'left-start',\r\n 'left',\r\n 'left-end',\r\n];\r\n\r\nfunction getPositionClass(position = '') {\r\n const allowedPos = allowedPositions.find((p) => p === position);\r\n if (!allowedPos) return 'top';\r\n\r\n if (allowedPos.includes('-')) {\r\n const [dir, state] = allowedPos.split('-');\r\n return `${dir} ${state}`;\r\n } else {\r\n return allowedPos;\r\n }\r\n}\r\n\r\nfunction getAnimationProperties(animation) {\r\n const effectiveStartDelay = animation?.startDelay;\r\n const effectiveEndDelay = animation?.endDelay;\r\n const effectiveDelay = animation?.delay ?? 0;\r\n\r\n const effectiveStartDuration = animation?.startDuration;\r\n const effectiveEndDuration = animation?.endDuration;\r\n const effectiveDuration = animation?.duration ?? 110;\r\n\r\n return {\r\n startDelay: effectiveStartDelay ?? effectiveDelay,\r\n endDelay: effectiveEndDelay ?? effectiveDelay,\r\n startDuration: effectiveStartDuration ?? effectiveDuration,\r\n endDuration: effectiveEndDuration ?? effectiveDuration,\r\n };\r\n}\r\n\r\nexport default function Tooltip({\r\n content,\r\n tooltipOptions = {},\r\n animation = true,\r\n style = {},\r\n isHidden = false,\r\n children,\r\n}) {\r\n if (typeof isHidden === 'boolean' && isHidden) return children;\r\n\r\n if (typeof content === 'string') {\r\n if (!content.trim()) throw new Error('kitzo/react: tooltip content is required');\r\n } else if (!content) {\r\n throw new Error('kitzo/react: tooltip content is required');\r\n }\r\n // Define options\r\n const {\r\n position = 'top',\r\n offset = 8,\r\n hideOnTouch = true,\r\n arrow = false,\r\n smartHover = true,\r\n } = tooltipOptions ?? {};\r\n\r\n const finalOptions = {\r\n position: typeof position === 'string' ? position.trim().toLowerCase() : 'top',\r\n offset: !isNaN(Number(offset)) ? Number(offset) : 8,\r\n arrow: typeof arrow === 'boolean' ? arrow : false,\r\n smartHover: typeof smartHover === 'boolean' ? smartHover : true,\r\n hideOnTouch: typeof hideOnTouch === 'boolean' ? hideOnTouch : true,\r\n };\r\n\r\n // Hide on touch device\r\n const isTouch = window.matchMedia('(pointer: coarse)').matches;\r\n if (isTouch && finalOptions.hideOnTouch) return children;\r\n\r\n const positionClass = getPositionClass(finalOptions.position);\r\n\r\n // Define animations\r\n const animationEnabled = animation ? true : false;\r\n const animationObj = animation === true ? {} : animation;\r\n const finalAnimationProperties = getAnimationProperties(animationObj);\r\n\r\n return (\r\n <div\r\n style={{\r\n position: 'relative',\r\n width: 'fit-content',\r\n '--offset': Math.max(0, finalOptions.offset),\r\n '--startDuration': Math.max(0, finalAnimationProperties.startDuration),\r\n '--endDuration': Math.max(0, finalAnimationProperties.endDuration),\r\n '--startDelay': Math.max(0, finalAnimationProperties.startDelay),\r\n '--endDelay': Math.max(0, finalAnimationProperties.endDelay),\r\n '--arrow-color': style?.['--arrow-color'],\r\n '--arrow-size': style?.['--arrow-size'],\r\n }}\r\n className={`kitzo-react-tooltip-root ${finalOptions.smartHover ? 'smart-hover' : ''} ${animationEnabled ? 'animate-tooltip' : ''}`}\r\n >\r\n {/* children string or component */}\r\n {children}\r\n\r\n <div\r\n style={{\r\n position: 'absolute',\r\n whiteSpace: typeof content === 'string' ? 'nowrap' : 'normal',\r\n }}\r\n tabIndex={-1}\r\n className={`kitzo-react-tooltip-wrapper ${positionClass}`}\r\n >\r\n <div\r\n className={`kitzo-react-tooltip-content ${positionClass} ${finalOptions.arrow ? 'tooltip-arrow' : ''}`}\r\n >\r\n {typeof content === 'string' || typeof content === 'number' ? (\r\n <div className=\"kitzo-react-tooltip-content-default-style\">{content}</div>\r\n ) : (\r\n <>{content}</>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\nexport default function useDebounce(value, delay) {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nexport default function useWindowSize(options = {}) {\r\n const { delay = 50 } = options;\r\n\r\n if (typeof delay !== 'number')\r\n throw new Error(\"Only number is accepted 'useWindowSize' hook configuration: delay\");\r\n\r\n const [screenSize, setScreenSize] = useState({\r\n screenWidth: window.innerWidth,\r\n screenHeight: window.innerHeight,\r\n });\r\n\r\n const timeoutRef = useRef(null);\r\n useEffect(() => {\r\n function updateScreenSize() {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n timeoutRef.current = setTimeout(\r\n () => {\r\n setScreenSize({\r\n screenWidth: window.innerWidth,\r\n screenHeight: window.innerHeight,\r\n });\r\n },\r\n Math.max(0, Number(delay)),\r\n );\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n window.addEventListener('resize', updateScreenSize);\r\n }\r\n\r\n return () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n window.removeEventListener('resize', updateScreenSize);\r\n };\r\n }, [delay]);\r\n\r\n return screenSize;\r\n}\r\n"],"names":["toastStyles","listeners","Set","addToast","toast","forEach","callback","subscribe","document","getElementById","styleTag","createElement","id","textContent","head","appendChild","add","text","arguments","length","undefined","options","Date","now","Object","assign","duration","style","showIcon","type","success","error","promise","msgs","loading","_objectSpread","Infinity","then","res","successMsg","err","normalizedError","Error","String","errorMsg","Promise","reject","custom","render","exitDelay","dismiss","SuccessSvg","React","className","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","ErrorSvg","LoadingSvg","Toast","_ref","setToasts","position","gap","leaving","offset","ref","useRef","useLayoutEffect","current","getBoundingClientRect","totalHeight","prev","map","t","transformY","includes","concat","renderCustomContent","maxHeight","transform","getToastPosition","Fragment","isLeft","isRight","styles","pointerEvents","transition","display","top","justifyContent","bottom","ToastContainer","props","_props","_useState","useState","_useState2","_slicedToArray","toasts","useEffect","unsub","setTimeout","Math","max","Number","filter","exists","some","_toConsumableArray","isFinite","grouped","reduce","acc","pos","push","hasChanged","updated","group","index","findIndex","slice","positions","inset","zIndex","fontFamily","boxSizing","key","padding","isNaN","tooltipStyles","allowedPositions","getPositionClass","allowedPos","find","p","_allowedPos$split","split","_allowedPos$split2","dir","state","getAnimationProperties","animation","_animation$delay","_animation$duration","effectiveStartDelay","startDelay","effectiveEndDelay","endDelay","effectiveDelay","delay","effectiveStartDuration","startDuration","effectiveEndDuration","endDuration","effectiveDuration","Tooltip","content","_ref$tooltipOptions","tooltipOptions","_ref$animation","_ref$style","_ref$isHidden","isHidden","children","trim","_ref2","_ref2$position","_ref2$offset","_ref2$hideOnTouch","hideOnTouch","_ref2$arrow","arrow","_ref2$smartHover","smartHover","finalOptions","toLowerCase","isTouch","window","matchMedia","matches","positionClass","animationEnabled","animationObj","finalAnimationProperties","whiteSpace","tabIndex","useDebounce","value","debouncedValue","setDebouncedValue","handler","clearTimeout","useWindowSize","_options$delay","screenWidth","innerWidth","screenHeight","innerHeight","screenSize","setScreenSize","timeoutRef","updateScreenSize","addEventListener","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/kitzo/ui/toast2.0/toaster.js","../../src/kitzo/ui/toast2.0/manageToasts.js","../../src/kitzo/ui/toast2.0/Svgs.jsx","../../src/kitzo/ui/toast2.0/Toast.jsx","../../src/kitzo/ui/toast2.0/ToastContainer.jsx","../../src/kitzo/ui/tooltip/Tooltip.jsx","../../src/kitzo/hooks/useDebounce.jsx","../../src/kitzo/hooks/useWindowSize.jsx"],"sourcesContent":["const toastStyles = `.kitzo-toast-container {\r\n --normal-bg: hsl(0, 0%, 100%);\r\n --success-bg: hsl(152, 65%, 95%);\r\n --error-bg: hsl(0, 65%, 95%);\r\n --info-bg: hsl(210, 65%, 95%);\r\n\r\n --normal-text: hsl(0, 0%, 10%);\r\n --success-text: hsl(142, 98%, 30%);\r\n --error-text: hsl(6, 98%, 40%);\r\n --info-text: hsl(210, 100%, 20%);\r\n\r\n --normal-border: hsl(0, 0%, 94%);\r\n --success-border: hsl(123, 100%, 93%);\r\n --error-border: hsl(0, 100%, 94%);\r\n --info-border: hsl(210, 100%, 94%);\r\n\r\n --success-svg-bg: hsl(142, 98%, 40%);\r\n --error-svg-bg: hsl(6, 98%, 50%);\r\n --info-svg-bg: hsl(210, 100%, 40%);\r\n\r\n --loader-stroke: hsl(0, 0%, 50%);\r\n --loader-bg: hsl(0, 0%, 80%);\r\n}\r\n\r\n.kitzo-toast-container.kitzo-toast-dark {\r\n --normal-bg: hsl(0, 0%, 15%);\r\n --success-bg: hsl(152, 65%, 15%);\r\n --error-bg: hsl(0, 65%, 15%);\r\n --info-bg: hsl(210, 65%, 15%);\r\n\r\n --normal-text: hsl(0, 0%, 95%);\r\n --success-text: hsl(142, 98%, 70%);\r\n --error-text: hsl(6, 98%, 70%);\r\n --info-text: hsl(210, 100%, 70%);\r\n\r\n --normal-border: hsl(0, 0%, 17%);\r\n --success-border: hsl(123, 100%, 15%);\r\n --error-border: hsl(0, 100%, 15%);\r\n --info-border: hsl(210, 100%, 16%);\r\n\r\n --success-svg-bg: hsl(142, 98%, 40%);\r\n --error-svg-bg: hsl(6, 98%, 50%);\r\n --info-svg-bg: hsl(210, 100%, 40%);\r\n\r\n --loader-stroke: hsl(0, 0%, 80%);\r\n --loader-bg: hsl(0, 0%, 50%);\r\n}\r\n\r\n.kitzo-toast {\r\n font-family: inherit;\r\n font-size: 0.875rem;\r\n transition:\r\n opacity 160ms,\r\n transform 210ms;\r\n}\r\n\r\n/*! toast transition styles */\r\n.kitzo-toast.pos-y-top {\r\n transform-origin: top;\r\n}\r\n.kitzo-toast.pos-y-bottom {\r\n transform-origin: bottom;\r\n}\r\n\r\n.kitzo-toast.type-normal {\r\n background-color: var(--normal-bg);\r\n color: var(--normal-text);\r\n border: 1px solid var(--normal-border);\r\n}\r\n.kitzo-toast.type-loading {\r\n background-color: var(--normal-bg);\r\n color: var(--normal-text);\r\n border: 1px solid var(--normal-border);\r\n}\r\n\r\n.kitzo-toast.type-success {\r\n background-color: var(--success-bg);\r\n color: var(--success-text);\r\n border: 1px solid var(--success-border);\r\n}\r\n\r\n.kitzo-toast.type-error {\r\n background-color: var(--error-bg);\r\n color: var(--error-text);\r\n border: 1px solid var(--error-border);\r\n}\r\n\r\n.kitzo-toast.type-info {\r\n background-color: var(--info-bg);\r\n color: var(--info-text);\r\n border: 1px solid var(--info-border);\r\n}\r\n\r\n.kitzo-toast.type-normal,\r\n.kitzo-toast.type-loading,\r\n.kitzo-toast.type-success,\r\n.kitzo-toast.type-error,\r\n.kitzo-toast.type-info {\r\n border-radius: 0.425rem;\r\n padding: 0.2525rem 0.5rem;\r\n box-shadow: 0 3px 8px -3px hsl(0, 0%, 0%, 0.15);\r\n}\r\n\r\n.kitzo-toast.status-entering.pos-y-top {\r\n opacity: 0;\r\n transform: translateY(-120%) scale(0.5);\r\n}\r\n\r\n.kitzo-toast.status-visible.pos-y-top {\r\n opacity: 1;\r\n transform: translateY(0) scale(1);\r\n}\r\n\r\n.kitzo-toast.status-leaving.pos-y-top {\r\n opacity: 0;\r\n transform: translateY(-120%) scale(0.5);\r\n}\r\n\r\n.kitzo-toast.status-entering.pos-y-bottom {\r\n opacity: 0;\r\n transform: translateY(120%) scale(0.5);\r\n}\r\n\r\n.kitzo-toast.status-visible.pos-y-bottom {\r\n opacity: 1;\r\n transform: translateY(0) scale(1);\r\n}\r\n\r\n.kitzo-toast.status-leaving.pos-y-bottom {\r\n opacity: 0;\r\n transform: translateY(120%) scale(0.5);\r\n}\r\n\r\n.action-update {\r\n animation: update 150ms;\r\n}\r\n\r\n@keyframes update {\r\n 0% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n/*! svg stylings */\r\n.svg-container {\r\n display: grid;\r\n place-items: center;\r\n border-radius: 10rem;\r\n color: white;\r\n height: 18px;\r\n width: 18px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n scale: 1.1;\r\n animation: svg-container-animation 400ms ease-in-out forwards;\r\n\r\n svg {\r\n width: 12px;\r\n height: 12px;\r\n stroke-width: 4px;\r\n display: inline-block;\r\n }\r\n}\r\n\r\n.svg-container.success {\r\n background-color: var(--success-svg-bg);\r\n}\r\n.svg-container.error {\r\n background-color: var(--error-svg-bg);\r\n\r\n svg {\r\n scale: 0;\r\n animation: error-svg-zoom-in 170ms 130ms forwards;\r\n }\r\n}\r\n\r\n.svg-container.info {\r\n background-color: var(--info-svg-bg);\r\n animation: info-svg-bell 400ms 200ms;\r\n\r\n svg {\r\n width: 14px;\r\n height: 14px;\r\n color: white;\r\n }\r\n}\r\n\r\n.svg-container.success::before {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n z-index: 5;\r\n border-radius: 10rem;\r\n background-color: var(--success-svg-bg);\r\n animation: success-container-before-animation 250ms 150ms forwards;\r\n}\r\n\r\n@keyframes svg-container-animation {\r\n 0% {\r\n scale: 1;\r\n }\r\n 50% {\r\n scale: 1.15;\r\n }\r\n 100% {\r\n scale: 1;\r\n }\r\n}\r\n\r\n@keyframes success-container-before-animation {\r\n from {\r\n translate: 0 0;\r\n }\r\n to {\r\n translate: 100% -50%;\r\n }\r\n}\r\n\r\n@keyframes error-svg-zoom-in {\r\n from {\r\n scale: 0;\r\n }\r\n to {\r\n scale: 1;\r\n }\r\n}\r\n\r\n@keyframes info-svg-bell {\r\n 0% {\r\n transform: rotate(0);\r\n }\r\n 25% {\r\n transform: rotate(15deg);\r\n }\r\n 75% {\r\n transform: rotate(-15deg);\r\n }\r\n 100% {\r\n transform: rotate(0);\r\n }\r\n}\r\n\r\n.promise-svg-container {\r\n width: 20px;\r\n height: 20px;\r\n display: grid;\r\n place-items: center;\r\n\r\n .loader {\r\n width: 14px;\r\n height: 14px;\r\n background-image: conic-gradient(\r\n var(--loader-stroke) 0 25%,\r\n var(--loader-bg) 0 100%\r\n );\r\n border-radius: 10rem;\r\n position: relative;\r\n animation: rotate-infinity 1000ms linear infinite;\r\n }\r\n .loader::before {\r\n content: '';\r\n position: absolute;\r\n inset: 2px;\r\n border-radius: inherit;\r\n background-color: var(--normal-bg);\r\n }\r\n}\r\n\r\n@keyframes rotate-infinity {\r\n to {\r\n rotate: 360deg;\r\n }\r\n}\r\n`;\r\n\r\nconst listeners = new Set();\r\n\r\nexport function subscribe(fn) {\r\n if (!document.getElementById('kitzo-toast-styles')) {\r\n const styleTag = document.createElement('style');\r\n styleTag.id = 'kitzo-toast-styles';\r\n styleTag.textContent = toastStyles;\r\n document.head.appendChild(styleTag);\r\n }\r\n\r\n listeners.add(fn);\r\n return () => listeners.delete(fn);\r\n}\r\n\r\nfunction notify(toast) {\r\n listeners.forEach((fn) => fn(toast));\r\n}\r\n\r\nconst DEFAULTS = {\r\n duration: 2800,\r\n showIcon: true,\r\n};\r\n\r\nlet uid = 0;\r\nconst genId = () => crypto.randomUUID?.() ?? `kitzo_toast_id_${++uid}`;\r\n\r\nlet zIndex = 1;\r\n\r\nfunction createToast(type, content, options = {}) {\r\n const opts = typeof options === 'object' && options !== null ? options : {};\r\n\r\n return {\r\n id: opts.id ?? genId(),\r\n type,\r\n zIndex: ++zIndex,\r\n render: content,\r\n duration: opts.duration ?? DEFAULTS.duration,\r\n showIcon: opts.showIcon ?? DEFAULTS.showIcon,\r\n action: 'add',\r\n ...opts,\r\n };\r\n}\r\n\r\nfunction toast(content, options) {\r\n if (content == null) return;\r\n notify(createToast('normal', content, options));\r\n}\r\n\r\ntoast.success = (content, options) => {\r\n if (content == null) return;\r\n notify(createToast('success', content, options));\r\n};\r\n\r\ntoast.error = (content, options) => {\r\n if (content == null) return;\r\n notify(createToast('error', content, options));\r\n};\r\n\r\ntoast.info = (content, options) => {\r\n if (content == null) return;\r\n notify(createToast('info', content, options));\r\n};\r\n\r\ntoast.custom = (content, options) => {\r\n if (content == null) return;\r\n notify(createToast('custom', content, options));\r\n};\r\n\r\ntoast.dismiss = (id) => {\r\n notify({ action: 'dismiss', id });\r\n};\r\n\r\ntoast.update = (id, content, options = {}) => {\r\n if (!id) return;\r\n\r\n notify({\r\n ...options,\r\n id,\r\n render: content,\r\n action: 'update',\r\n });\r\n};\r\n\r\nconst loading = (content, options = {}) => {\r\n notify(\r\n createToast('loading', content, {\r\n ...options,\r\n duration: Infinity,\r\n }),\r\n );\r\n};\r\n\r\ntoast.promise = (promise, handlers, options = {}) => {\r\n if (!promise) return;\r\n if (!handlers) return;\r\n if (!handlers.loading) return;\r\n if (!handlers.success) return;\r\n if (!handlers.error) return;\r\n\r\n const id = options.id ?? genId();\r\n\r\n loading(handlers.loading, { ...options, id, duration: Infinity });\r\n\r\n promise\r\n .then(async (result) => {\r\n toast.update(id, await handlers.success(result), {\r\n type: 'success',\r\n duration: options.duration ?? 2800,\r\n });\r\n return result;\r\n })\r\n .catch(async (error) => {\r\n toast.update(id, await handlers.error(error), {\r\n type: 'error',\r\n duration: options.duration ?? 3800,\r\n });\r\n throw error;\r\n });\r\n\r\n return promise;\r\n};\r\n\r\nexport default toast;\r\n","const timeouts = new Map();\r\n\r\nconst LEAVE_DELAY = 600;\r\nconst MIN_VISIBLE = 700;\r\n\r\nfunction clearToastTimers(id) {\r\n const t = timeouts.get(id);\r\n\r\n if (!t) return;\r\n clearTimeout(t.leaving);\r\n clearTimeout(t.left);\r\n timeouts.delete(id);\r\n}\r\n\r\nfunction getDurations(duration) {\r\n const d = Number(duration);\r\n if (!isFinite(d)) return null;\r\n\r\n const visible = Math.max(MIN_VISIBLE, d);\r\n\r\n return {\r\n leaving: visible,\r\n left: visible + LEAVE_DELAY,\r\n };\r\n}\r\n\r\nfunction armToastTimers(toast, setToasts) {\r\n const durations = getDurations(toast.duration);\r\n if (!durations) return;\r\n\r\n clearToastTimers(toast.id);\r\n\r\n const leaving = setTimeout(() => {\r\n setToasts((prev) =>\r\n prev.map((t) => (t.id === toast.id ? { ...t, status: 'leaving' } : t)),\r\n );\r\n }, durations.leaving);\r\n\r\n const left = setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\r\n timeouts.delete(toast.id);\r\n }, durations.left);\r\n\r\n timeouts.set(toast.id, { leaving, left });\r\n}\r\n\r\nfunction manageToasts(toast, setToasts) {\r\n // dismiss\r\n if (toast.action === 'dismiss') {\r\n if (!toast.id) {\r\n setToasts((prev) => prev.map((t) => ({ ...t, status: 'leaving' })));\r\n\r\n setTimeout(() => {\r\n setToasts([]);\r\n }, LEAVE_DELAY);\r\n\r\n timeouts.forEach(({ leaving, left }) => {\r\n clearTimeout(leaving);\r\n clearTimeout(left);\r\n });\r\n timeouts.clear();\r\n return;\r\n }\r\n\r\n clearToastTimers(toast.id);\r\n setToasts((prev) =>\r\n prev.map((t) => (t.id === toast.id ? { ...t, status: 'leaving' } : t)),\r\n );\r\n setTimeout(() => {\r\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\r\n }, LEAVE_DELAY);\r\n return;\r\n }\r\n\r\n // update\r\n if (toast.action === 'update') {\r\n setToasts((prev) => {\r\n const prevToast = prev.find((t) => t.id === toast.id);\r\n if (!prevToast) return prev;\r\n if (prevToast.type !== 'custom' && prevToast.type !== 'loading')\r\n return prev;\r\n return prev.map((t) =>\r\n t.id === toast.id ? { ...t, ...toast, status: 'visible' } : t,\r\n );\r\n });\r\n armToastTimers(toast, setToasts);\r\n return;\r\n }\r\n\r\n // add\r\n const enteringToast = { ...toast, status: 'entering' };\r\n setToasts((prev) => {\r\n const prevToast = prev.find((t) => t.id === enteringToast.id);\r\n if (prevToast) return prev;\r\n return [enteringToast, ...prev];\r\n });\r\n\r\n requestAnimationFrame(() => {\r\n setToasts((prev) =>\r\n prev.map((t) => (t.id === toast.id ? { ...t, status: 'visible' } : t)),\r\n );\r\n });\r\n\r\n armToastTimers(enteringToast, setToasts);\r\n}\r\n\r\nexport default manageToasts;\r\n","export function SuccessSvg() {\r\n return (\r\n <div className=\"svg-container success\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M20 6 9 17l-5-5\" />\r\n </svg>\r\n </div>\r\n );\r\n}\r\nexport function ErrorSvg() {\r\n return (\r\n <div className=\"svg-container error\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\"\r\n height=\"24\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M18 6 6 18\" />\r\n <path d=\"m6 6 12 12\" />\r\n </svg>\r\n </div>\r\n );\r\n}\r\nexport function LoadingSvg() {\r\n return (\r\n <div className=\"promise-svg-container\">\r\n <div className=\"loader\"></div>\r\n </div>\r\n );\r\n}\r\nexport function InfoSvg() {\r\n return (\r\n <div className=\"svg-container info\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"16\"\r\n height=\"16\"\r\n fill=\"currentColor\"\r\n >\r\n <path d=\"M12 6C12.8284 6 13.5 5.32843 13.5 4.5C13.5 3.67157 12.8284 3 12 3C11.1716 3 10.5 3.67157 10.5 4.5C10.5 5.32843 11.1716 6 12 6ZM9 10H11V18H9V20H15V18H13V8H9V10Z\"></path>\r\n </svg>\r\n </div>\r\n );\r\n}\r\n","import { useLayoutEffect, useRef } from 'react';\r\nimport { ErrorSvg, InfoSvg, LoadingSvg, SuccessSvg } from './Svgs';\r\nimport toast from './toaster';\r\n\r\nexport default function Toast({ t, containerPosition, gap, setToasts }) {\r\n const { id, type, render, action, status } = t;\r\n\r\n const ref = useRef(null);\r\n\r\n useLayoutEffect(() => {\r\n if (!ref.current) return;\r\n\r\n const g =\r\n typeof gap === 'number'\r\n ? gap\r\n : Number.isFinite(Number(gap))\r\n ? Number(gap)\r\n : 8;\r\n\r\n const el = ref.current;\r\n\r\n const observer = new ResizeObserver(() => {\r\n const height = el.offsetHeight + g;\r\n setToasts((prev) =>\r\n prev.map((t) => (t.id === id ? { ...t, height } : t)),\r\n );\r\n });\r\n\r\n observer.observe(el);\r\n\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n const allowedPositions = [\r\n 'top-left',\r\n 'top-center',\r\n 'top-right',\r\n 'bottom-left',\r\n 'bottom-center',\r\n 'bottom-right',\r\n ];\r\n const userPosition = t.position || containerPosition;\r\n const position = allowedPositions.includes(userPosition)\r\n ? userPosition\r\n : 'top-center';\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n style={getToastStyles(t, position)}\r\n >\r\n <div\r\n style={{\r\n pointerEvents: 'all',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 8,\r\n }}\r\n className={`kitzo-toast type-${type} action-${action} status-${status} pos-y-${position.split('-')[0]} pos-x-${position.split('-')[1]} `}\r\n >\r\n {t.showIcon && type !== 'normal' && type !== 'custom' && (\r\n <div\r\n style={{\r\n flexShrink: 0,\r\n }}\r\n >\r\n {type === 'loading' && <LoadingSvg />}\r\n {type === 'success' && <SuccessSvg />}\r\n {type === 'error' && <ErrorSvg />}\r\n {type === 'info' && <InfoSvg />}\r\n </div>\r\n )}\r\n\r\n <div\r\n style={{\r\n flex: 1,\r\n }}\r\n >\r\n {typeof render === 'function'\r\n ? render(() => toast.dismiss(id))\r\n : render}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction getToastStyles(t, position) {\r\n const styles = {\r\n position: 'absolute',\r\n zIndex: t.zIndex,\r\n left: 0,\r\n width: '100%',\r\n transition: 'transform 260ms',\r\n display: 'flex',\r\n };\r\n\r\n const transform = position.includes('top')\r\n ? `translateY(${t.distance || 0}px)`\r\n : `translateY(-${t.distance || 0}px)`;\r\n const justifyContent = position.includes('left')\r\n ? 'flex-start'\r\n : position.includes('center')\r\n ? 'center'\r\n : 'flex-end';\r\n\r\n styles.transform = transform;\r\n styles.justifyContent = justifyContent;\r\n if (position.includes('top')) styles.top = 0;\r\n if (position.includes('bottom')) styles.bottom = 0;\r\n\r\n return styles;\r\n}\r\n","import { useEffect, useLayoutEffect, useState } from 'react';\r\nimport { subscribe } from './toaster';\r\nimport manageToasts from './manageToasts';\r\nimport Toast from './Toast';\r\n\r\nexport default function ToastContainer({\r\n position = 'top-center',\r\n gap = 8,\r\n edgeOffset = 16,\r\n isDark = window.matchMedia('(prefers-color-scheme: dark)').matches,\r\n}) {\r\n const [toasts, setToasts] = useState([]);\r\n\r\n useEffect(() => {\r\n const unsub = subscribe((toast) => manageToasts(toast, setToasts));\r\n return unsub;\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n const grouped = toasts.reduce((prev, t) => {\r\n const pos = t.position || position || 'top-center';\r\n (prev[pos] ||= []).push(t);\r\n return prev;\r\n }, {});\r\n\r\n let hasChanged = false;\r\n\r\n const updated = toasts.map((toast) => {\r\n const pos = toast.position || position || 'top-center';\r\n const group = grouped[pos];\r\n const index = group.findIndex((t) => t.id === toast.id);\r\n\r\n const distance = group\r\n .slice(0, index)\r\n .reduce((acc, t) => acc + (t.height || 0), 0);\r\n\r\n if (distance !== toast.distance) {\r\n hasChanged = true;\r\n }\r\n\r\n return { ...toast, distance };\r\n });\r\n\r\n if (hasChanged) {\r\n setTimeout(() => {\r\n setToasts(updated);\r\n }, 30);\r\n }\r\n }, [toasts, position]);\r\n\r\n return (\r\n <div\r\n style={{\r\n position: 'fixed',\r\n inset: 0,\r\n zIndex: 2147483647,\r\n pointerEvents: 'none',\r\n display: 'grid',\r\n padding: edgeOffset != null ? edgeOffset : 16,\r\n }}\r\n className={`kitzo-toast-container ${isDark ? 'kitzo-toast-dark' : ''}`}\r\n >\r\n <div\r\n style={{\r\n position: 'relative',\r\n }}\r\n >\r\n {toasts.map((t) => (\r\n <Toast\r\n key={t.id}\r\n t={t}\r\n containerPosition={position}\r\n gap={gap}\r\n setToasts={setToasts}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","// import './style.css';\r\nconst tooltipStyles = `/* Default styling */\r\n.kitzo-react-tooltip-root {\r\n --bg-clr: hsl(0, 0%, 15%);\r\n --text-clr: hsl(0, 0%, 95%);\r\n\r\n @media (prefers-color-scheme: dark) {\r\n --bg-clr: hsl(0, 0%, 95%);\r\n --text-clr: hsl(0, 0%, 15%);\r\n }\r\n}\r\n\r\n.kitzo-react-tooltip-content-default-style {\r\n font-family:\r\n inherit,\r\n system-ui,\r\n -apple-system,\r\n BlinkMacSystemFont,\r\n 'Segoe UI',\r\n Roboto,\r\n Oxygen,\r\n Ubuntu,\r\n Cantarell,\r\n 'Open Sans',\r\n 'Helvetica Neue',\r\n sans-serif;\r\n font-size: 0.875rem;\r\n background-color: var(--bg-clr);\r\n color: var(--text-clr);\r\n padding-block: 0.25rem;\r\n padding-inline: 0.5rem;\r\n border-radius: 0.325rem;\r\n}\r\n\r\n/* Tooltip positioning */\r\n.kitzo-react-tooltip-wrapper {\r\n --tooltip-offset: calc(var(--offset) * 1px + 1px);\r\n}\r\n/* Top */\r\n.kitzo-react-tooltip-wrapper.top {\r\n bottom: 100%;\r\n padding-block-end: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.top {\r\n left: 50%;\r\n translate: -50% 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.top.start {\r\n left: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.top.end {\r\n right: 0;\r\n translate: 0 0;\r\n}\r\n\r\n/* Right */\r\n.kitzo-react-tooltip-wrapper.right {\r\n left: 100%;\r\n padding-inline-start: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.right {\r\n top: 50%;\r\n translate: 0 -50%;\r\n}\r\n.kitzo-react-tooltip-wrapper.right.start {\r\n top: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.right.end {\r\n top: 100%;\r\n translate: 0 -100%;\r\n}\r\n\r\n/* Bottom */\r\n.kitzo-react-tooltip-wrapper.bottom {\r\n top: 100%;\r\n padding-block-start: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.bottom {\r\n left: 50%;\r\n translate: -50% 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.bottom.start {\r\n left: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.bottom.end {\r\n left: 100%;\r\n translate: -100% 0;\r\n}\r\n\r\n/* Left */\r\n.kitzo-react-tooltip-wrapper.left {\r\n right: 100%;\r\n padding-inline-end: var(--tooltip-offset);\r\n}\r\n.kitzo-react-tooltip-wrapper.left {\r\n top: 50%;\r\n translate: 0 -50%;\r\n}\r\n.kitzo-react-tooltip-wrapper.left.start {\r\n top: 0;\r\n translate: 0 0;\r\n}\r\n.kitzo-react-tooltip-wrapper.left.end {\r\n top: 100%;\r\n translate: 0 -100%;\r\n}\r\n\r\n/* Tooltip transitions */\r\n.kitzo-react-tooltip-root.animate-tooltip {\r\n --transition-startDuration: calc(var(--startDuration) * 1ms);\r\n --transition-endDuration: calc(var(--endDuration) * 1ms);\r\n --transition-startDelay: calc(var(--startDelay) * 1ms);\r\n --transition-endDelay: calc(var(--endDelay) * 1ms);\r\n\r\n .kitzo-react-tooltip-content {\r\n transition:\r\n transform var(--transition-endDuration) var(--transition-endDelay),\r\n opacity var(--transition-endDuration) var(--transition-endDelay);\r\n }\r\n}\r\n\r\n.kitzo-react-tooltip-content {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n}\r\n\r\n.kitzo-react-tooltip-content.top {\r\n transform-origin: bottom;\r\n}\r\n.kitzo-react-tooltip-content.right {\r\n transform-origin: left;\r\n}\r\n.kitzo-react-tooltip-content.bottom {\r\n transform-origin: top;\r\n}\r\n.kitzo-react-tooltip-content.left {\r\n transform-origin: right;\r\n}\r\n\r\n.kitzo-react-tooltip-root.animate-tooltip:hover {\r\n .kitzo-react-tooltip-content {\r\n transition:\r\n transform var(--transition-startDuration) var(--transition-startDelay),\r\n opacity var(--transition-startDuration) var(--transition-startDelay);\r\n }\r\n}\r\n.kitzo-react-tooltip-root:hover {\r\n .kitzo-react-tooltip-content {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n/* smart hover persistence feature */\r\n.kitzo-react-tooltip-root {\r\n .kitzo-react-tooltip-wrapper {\r\n pointer-events: none;\r\n }\r\n}\r\n.kitzo-react-tooltip-root.smart-hover:hover {\r\n .kitzo-react-tooltip-wrapper {\r\n pointer-events: all;\r\n }\r\n}\r\n\r\n/* Arrow */\r\n.kitzo-react-tooltip-content.tooltip-arrow {\r\n --effective-size: calc(var(--arrow-size, 6) * 1px);\r\n --effective-color: var(--arrow-color, var(--bg-clr));\r\n\r\n position: relative;\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow::before {\r\n content: '';\r\n position: absolute;\r\n z-index: -1;\r\n border: var(--effective-size) solid transparent;\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.top::before {\r\n left: 50%;\r\n translate: -50% 0;\r\n top: calc(100% - 1px);\r\n border-top: var(--effective-size) solid var(--effective-color);\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.right::before {\r\n top: 50%;\r\n translate: 0 -50%;\r\n right: calc(100% - 1px);\r\n border-right: var(--effective-size) solid var(--effective-color);\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.bottom::before {\r\n left: 50%;\r\n translate: -50% 0;\r\n bottom: calc(100% - 1px);\r\n border-bottom: var(--effective-size) solid var(--effective-color);\r\n}\r\n.kitzo-react-tooltip-content.tooltip-arrow.left::before {\r\n top: 50%;\r\n translate: 0 -50%;\r\n left: calc(100% - 1px);\r\n border-left: var(--effective-size) solid var(--effective-color);\r\n}`;\r\n\r\n(() => {\r\n if (!document.getElementById('kitzo-react-tooltip-styles')) {\r\n const styleTag = document.createElement('style');\r\n styleTag.id = 'kitzo-react-tooltip-styles';\r\n styleTag.textContent = tooltipStyles;\r\n document.head.appendChild(styleTag);\r\n }\r\n})();\r\n\r\nconst allowedPositions = [\r\n 'top-start',\r\n 'top',\r\n 'top-end',\r\n 'right-start',\r\n 'right',\r\n 'right-end',\r\n 'bottom-start',\r\n 'bottom',\r\n 'bottom-end',\r\n 'left-start',\r\n 'left',\r\n 'left-end',\r\n];\r\n\r\nfunction getPositionClass(position = '') {\r\n const allowedPos = allowedPositions.find((p) => p === position);\r\n if (!allowedPos) return 'top';\r\n\r\n if (allowedPos.includes('-')) {\r\n const [dir, state] = allowedPos.split('-');\r\n return `${dir} ${state}`;\r\n } else {\r\n return allowedPos;\r\n }\r\n}\r\n\r\nfunction getAnimationProperties(animation) {\r\n const effectiveStartDelay = animation?.startDelay;\r\n const effectiveEndDelay = animation?.endDelay;\r\n const effectiveDelay = animation?.delay ?? 0;\r\n\r\n const effectiveStartDuration = animation?.startDuration;\r\n const effectiveEndDuration = animation?.endDuration;\r\n const effectiveDuration = animation?.duration ?? 110;\r\n\r\n return {\r\n startDelay: effectiveStartDelay ?? effectiveDelay,\r\n endDelay: effectiveEndDelay ?? effectiveDelay,\r\n startDuration: effectiveStartDuration ?? effectiveDuration,\r\n endDuration: effectiveEndDuration ?? effectiveDuration,\r\n };\r\n}\r\n\r\nexport default function Tooltip({\r\n content,\r\n tooltipOptions = {},\r\n animation = true,\r\n style = {},\r\n isHidden = false,\r\n children,\r\n}) {\r\n if (typeof isHidden === 'boolean' && isHidden) return children;\r\n\r\n if (typeof content === 'string') {\r\n if (!content.trim()) throw new Error('kitzo/react: tooltip content is required');\r\n } else if (!content) {\r\n throw new Error('kitzo/react: tooltip content is required');\r\n }\r\n // Define options\r\n const {\r\n position = 'top',\r\n offset = 8,\r\n hideOnTouch = true,\r\n arrow = false,\r\n smartHover = true,\r\n } = tooltipOptions ?? {};\r\n\r\n const finalOptions = {\r\n position: typeof position === 'string' ? position.trim().toLowerCase() : 'top',\r\n offset: !isNaN(Number(offset)) ? Number(offset) : 8,\r\n arrow: typeof arrow === 'boolean' ? arrow : false,\r\n smartHover: typeof smartHover === 'boolean' ? smartHover : true,\r\n hideOnTouch: typeof hideOnTouch === 'boolean' ? hideOnTouch : true,\r\n };\r\n\r\n // Hide on touch device\r\n const isTouch = window.matchMedia('(pointer: coarse)').matches;\r\n if (isTouch && finalOptions.hideOnTouch) return children;\r\n\r\n const positionClass = getPositionClass(finalOptions.position);\r\n\r\n // Define animations\r\n const animationEnabled = animation ? true : false;\r\n const animationObj = animation === true ? {} : animation;\r\n const finalAnimationProperties = getAnimationProperties(animationObj);\r\n\r\n return (\r\n <div\r\n style={{\r\n position: 'relative',\r\n width: 'fit-content',\r\n '--offset': Math.max(0, finalOptions.offset),\r\n '--startDuration': Math.max(0, finalAnimationProperties.startDuration),\r\n '--endDuration': Math.max(0, finalAnimationProperties.endDuration),\r\n '--startDelay': Math.max(0, finalAnimationProperties.startDelay),\r\n '--endDelay': Math.max(0, finalAnimationProperties.endDelay),\r\n '--arrow-color': style?.['--arrow-color'],\r\n '--arrow-size': style?.['--arrow-size'],\r\n }}\r\n className={`kitzo-react-tooltip-root ${finalOptions.smartHover ? 'smart-hover' : ''} ${animationEnabled ? 'animate-tooltip' : ''}`}\r\n >\r\n {/* children string or component */}\r\n {children}\r\n\r\n <div\r\n style={{\r\n position: 'absolute',\r\n whiteSpace: typeof content === 'string' ? 'nowrap' : 'normal',\r\n }}\r\n tabIndex={-1}\r\n className={`kitzo-react-tooltip-wrapper ${positionClass}`}\r\n >\r\n <div\r\n className={`kitzo-react-tooltip-content ${positionClass} ${finalOptions.arrow ? 'tooltip-arrow' : ''}`}\r\n >\r\n {typeof content === 'string' || typeof content === 'number' ? (\r\n <div className=\"kitzo-react-tooltip-content-default-style\">{content}</div>\r\n ) : (\r\n <>{content}</>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\nexport default function useDebounce(value, delay) {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\nexport default function useWindowSize(options = {}) {\r\n const { delay = 50 } = options;\r\n\r\n if (typeof delay !== 'number')\r\n throw new Error(\"Only number is accepted 'useWindowSize' hook configuration: delay\");\r\n\r\n const [screenSize, setScreenSize] = useState({\r\n screenWidth: window.innerWidth,\r\n screenHeight: window.innerHeight,\r\n });\r\n\r\n const timeoutRef = useRef(null);\r\n useEffect(() => {\r\n function updateScreenSize() {\r\n if (timeoutRef.current) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n timeoutRef.current = setTimeout(\r\n () => {\r\n setScreenSize({\r\n screenWidth: window.innerWidth,\r\n screenHeight: window.innerHeight,\r\n });\r\n },\r\n Math.max(0, Number(delay)),\r\n );\r\n }\r\n\r\n if (typeof window !== 'undefined') {\r\n window.addEventListener('resize', updateScreenSize);\r\n }\r\n\r\n return () => {\r\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\r\n window.removeEventListener('resize', updateScreenSize);\r\n };\r\n }, [delay]);\r\n\r\n return screenSize;\r\n}\r\n"],"names":["toastStyles","listeners","Set","subscribe","fn","document","getElementById","styleTag","createElement","id","textContent","head","appendChild","add","notify","toast","forEach","DEFAULTS","duration","showIcon","uid","genId","_crypto$randomUUID","_crypto$randomUUID2","_crypto","crypto","randomUUID","call","concat","zIndex","createToast","type","content","_opts$id","_opts$duration","_opts$showIcon","options","arguments","length","undefined","opts","_typeof","_objectSpread","render","action","success","error","info","custom","dismiss","update","loading","Infinity","promise","handlers","_options$id","then","_ref","_asyncToGenerator","_regenerator","m","_callee","result","_options$duration","_t","_t2","w","_context","n","v","a","_x","apply","_ref2","_callee2","_options$duration2","_t3","_t4","_context2","_x2","timeouts","Map","LEAVE_DELAY","MIN_VISIBLE","clearToastTimers","t","get","clearTimeout","leaving","left","getDurations","d","Number","isFinite","visible","Math","max","armToastTimers","setToasts","durations","setTimeout","prev","map","status","filter","set","manageToasts","clear","prevToast","find","enteringToast","_toConsumableArray","requestAnimationFrame","SuccessSvg","React","className","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ErrorSvg","LoadingSvg","InfoSvg","Toast","containerPosition","gap","ref","useRef","useLayoutEffect","current","g","el","observer","ResizeObserver","offsetHeight","observe","disconnect","allowedPositions","userPosition","position","includes","style","getToastStyles","pointerEvents","display","alignItems","split","flexShrink","flex","styles","transition","transform","distance","justifyContent","top","bottom","ToastContainer","_ref$position","_ref$gap","_ref$edgeOffset","edgeOffset","_ref$isDark","isDark","window","matchMedia","matches","_useState","useState","_useState2","_slicedToArray","toasts","useEffect","unsub","grouped","reduce","pos","push","hasChanged","updated","group","index","findIndex","slice","acc","inset","padding","key","tooltipStyles","getPositionClass","allowedPos","p","_allowedPos$split","_allowedPos$split2","dir","state","getAnimationProperties","animation","_animation$delay","_animation$duration","effectiveStartDelay","startDelay","effectiveEndDelay","endDelay","effectiveDelay","delay","effectiveStartDuration","startDuration","effectiveEndDuration","endDuration","effectiveDuration","Tooltip","_ref$tooltipOptions","tooltipOptions","_ref$animation","_ref$style","_ref$isHidden","isHidden","children","trim","Error","_ref2$position","_ref2$offset","offset","_ref2$hideOnTouch","hideOnTouch","_ref2$arrow","arrow","_ref2$smartHover","smartHover","finalOptions","toLowerCase","isNaN","isTouch","positionClass","animationEnabled","animationObj","finalAnimationProperties","whiteSpace","tabIndex","Fragment","useDebounce","value","debouncedValue","setDebouncedValue","handler","useWindowSize","_options$delay","screenWidth","innerWidth","screenHeight","innerHeight","screenSize","setScreenSize","timeoutRef","updateScreenSize","addEventListener","removeEventListener"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ReactNode, CSSProperties, JSX } from 'react';
1
+ import { JSX, ReactNode } from 'react';
2
2
 
3
3
  //! Toast API types declaration
4
4
  type Positions =
@@ -10,37 +10,43 @@ type Positions =
10
10
  | 'bottom-right';
11
11
 
12
12
  type ToastOptions = {
13
+ id?: string | number;
13
14
  position?: Positions;
14
15
  duration?: number;
15
- style?: CSSProperties;
16
16
  showIcon?: boolean;
17
17
  };
18
18
 
19
- type CustomContent = string | ReactNode | ((dismiss: () => void) => ReactNode);
20
-
21
- type ToastAPI = {
22
- (text: string, options?: ToastOptions): void;
23
-
24
- success(text: string, options?: ToastOptions): void;
19
+ type ToastContainerProps = {
20
+ position?: Positions;
21
+ gap?: number | `${number}`;
22
+ edgeOffset?: number | `${number}px` | `${number}rem` | `${number}%`;
23
+ isDark?: boolean;
24
+ };
25
25
 
26
- error(text: string, options?: ToastOptions): void;
26
+ type Content = ReactNode | ((dismiss?: () => void) => ReactNode);
27
27
 
28
- promise<T>(
28
+ type Toast = {
29
+ (Content: Content, options?: ToastOptions): void;
30
+ success(content: Content, options?: ToastOptions): void;
31
+ error(content: Content, options?: ToastOptions): void;
32
+ promise<T, E>(
29
33
  callback: Promise<T>,
30
34
  msgs: {
31
- loading: string;
32
- success: string | ((res: T) => string | Promise<string>);
33
- error: string | ((err: any) => string | Promise<string>);
35
+ loading: ReactNode;
36
+ success: ReactNode | ((res: T) => ReactNode | Promise<ReactNode>);
37
+ error: ReactNode | ((err: E) => ReactNode | Promise<ReactNode>);
34
38
  },
35
39
  options?: ToastOptions,
36
40
  ): void;
41
+ custom(content: Content, options?: ToastOptions): void;
37
42
 
38
- custom(
39
- content: CustomContent,
40
- options?: { duration?: number; exitDelay?: number; position?: Positions },
43
+ update(
44
+ id: string | number,
45
+ content: Content,
46
+ options?: { duration: number },
41
47
  ): void;
48
+ dismiss(id?: string | number): void;
42
49
  };
43
50
 
44
- export declare const toast: ToastAPI;
45
-
46
- export declare function ToastContainer(props: { position?: Positions; gap?: number }): JSX.Element;
51
+ export declare const toast: Toast;
52
+ export declare function ToastContainer(props: ToastContainerProps): JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitzo",
3
- "version": "2.1.30",
3
+ "version": "2.2.0",
4
4
  "description": "A lightweight React micro-utility.",
5
5
  "type": "module",
6
6
  "sideEffects": false,