UNPKG

@chakra-ui/react

Version:

Responsive and accessible React UI components built with React and Emotion

55 lines (52 loc) 1.76 kB
"use strict"; "use client"; import { jsx } from 'react/jsx-runtime'; import { Toaster as Toaster$1, Toast, useToastContext } from '@ark-ui/react/toast'; export { createToaster } from '@ark-ui/react/toast'; import { forwardRef } from 'react'; import { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js'; import { chakra } from '../../styled-system/factory.js'; import { CloseIcon, WarningIcon, CheckCircleIcon } from '../icons.js'; const { withProvider, withContext, useStyles: useToastStyles } = createSlotRecipeContext({ key: "toast" }); const Toaster = chakra( Toaster$1, {}, { forwardAsChild: true } ); const ToastRoot = withProvider( Toast.Root, "root", { forwardAsChild: true } ); const ToastCloseTrigger = withContext(Toast.CloseTrigger, "closeTrigger", { forwardAsChild: true, defaultProps: { children: /* @__PURE__ */ jsx(CloseIcon, {}) } }); const ToastTitle = withContext( Toast.Title, "title", { forwardAsChild: true } ); const ToastDescription = withContext(Toast.Description, "description", { forwardAsChild: true }); const ToastActionTrigger = withContext(Toast.ActionTrigger, "actionTrigger", { forwardAsChild: true }); const iconMap = { warning: WarningIcon, success: CheckCircleIcon, error: WarningIcon }; const ToastIndicator = forwardRef( function ToastIndicator2(props, ref) { const api = useToastContext(); const styles = useToastStyles(); const Component = iconMap[api.type]; if (!Component) return null; return /* @__PURE__ */ jsx(Component, { ref, ...props, css: [styles.indicator, props.css] }); } ); export { ToastActionTrigger, ToastCloseTrigger, ToastDescription, ToastIndicator, ToastRoot, ToastTitle, Toaster, useToastStyles };