@channel.io/bezier-react 1.16.0 → 1.17.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":"Toast.types.js","sources":["../../../../src/components/Toast/Toast.types.ts"],"sourcesContent":["import {\n type ComponentType,\n type ReactNode,\n} from 'react'\nimport type React from 'react'\n\nimport {\n type BezierIcon,\n InfoFilledIcon,\n} from '@channel.io/bezier-icons'\n\nimport { type TransitionDuration } from '~/src/foundation'\n\nimport {\n type BezierComponentProps,\n type ContentProps,\n} from '~/src/types/ComponentProps'\nimport { type InjectedInterpolation } from '~/src/types/Foundation'\nimport { noop } from '~/src/utils/functionUtils'\n\nexport enum ToastPlacement {\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight',\n}\n\nexport enum ToastAppearance {\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n}\n\nexport enum ToastIconColor {\n Success = 'bgtxt-green-normal',\n Warning = 'bgtxt-orange-normal',\n Error = 'bgtxt-red-normal',\n Info = 'txt-black-darkest',\n}\n\nexport enum ToastPreset {\n Default = 'Default',\n Success = 'Success',\n Error = 'Error',\n Offline = 'Offline',\n Online = 'Online',\n}\n\nexport interface ToastPresetType {\n appearance: ToastAppearance\n icon: BezierIcon\n}\n\ninterface ToastElementOptions {\n preset?: ToastPreset\n appearance?: ToastAppearance\n icon?: BezierIcon\n /**\n * @deprecated use React.ReactNode content props instead.\n */\n actionContent?: string\n transitionDuration: TransitionDuration\n transform: InjectedInterpolation\n placement: ToastPlacement\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss: React.MouseEventHandler<HTMLDivElement>\n}\n\nexport type ToastContent = NonNullable<React.ReactNode>\n\nexport default interface ToastElementProps extends\n BezierComponentProps,\n Required<ContentProps<ToastContent>>,\n ToastElementOptions {}\n\nexport interface ToastProviderProps {\n autoDismissTimeout?: number\n children?: ReactNode[] | ReactNode\n}\n\nexport type ToastId = string\n\nexport type OnDismissCallback = (id: ToastId) => void\n\nexport type ToastOptions = {\n preset?: ToastPreset\n icon?: BezierIcon\n appearance?: ToastAppearance\n actionContent?: string\n autoDismiss?: boolean\n rightSide?: boolean\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss?: OnDismissCallback\n}\n\nexport const defaultOptions: ToastOptions = {\n icon: InfoFilledIcon,\n appearance: ToastAppearance.Info,\n autoDismiss: false,\n onDismiss: noop,\n rightSide: false,\n}\n\nexport type ToastType = ToastOptions & {\n id: ToastId\n content: ToastContent\n /**\n * Updated version\n * @default 0\n */\n version?: number\n}\n\nexport interface ToastContextType {\n add: (content: ToastContent, options?: ToastOptions) => ToastId\n update: (toastId: ToastId, content: ToastContent, options?: ToastOptions) => ToastId\n remove: (id: ToastId) => void\n removeAll: () => void\n leftToasts: ToastType[]\n rightToasts: ToastType[]\n}\n\nexport type ToastContainerProps = {\n children?: ReactNode[]\n placement: ToastPlacement\n}\n\nexport interface ToastControllerProps extends ToastElementProps {\n autoDismiss: boolean\n autoDismissTimeout: number\n component: ComponentType<ToastElementProps>\n /**\n * Updated toast version\n * @default 0\n */\n version?: number\n}\n"],"names":["ToastPlacement","ToastAppearance","ToastIconColor","ToastPreset","defaultOptions","icon","InfoFilledIcon","appearance","Info","autoDismiss","onDismiss","noop","rightSide"],"mappings":";;;;;AAoBYA,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;EAAdA,cAAc,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAKdC,IAAAA,eAAe,0BAAfA,eAAe,EAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAfA,eAAe,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAfA,eAAe,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOfC,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,oBAAA,CAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,qBAAA,CAAA;EAAdA,cAAc,CAAA,OAAA,CAAA,GAAA,kBAAA,CAAA;EAAdA,cAAc,CAAA,MAAA,CAAA,GAAA,mBAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOdC,IAAAA,WAAW,0BAAXA,WAAW,EAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;AAAA,EAAA,OAAXA,WAAW,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAyDhB,MAAMC,cAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAEC,0BAAc;EACpBC,UAAU,EAAEN,eAAe,CAACO,IAAI;AAChCC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,SAAS,EAAEC,kBAAI;AACfC,EAAAA,SAAS,EAAE,KAAA;AACb;;;;;;;;"}
1
+ {"version":3,"file":"Toast.types.js","sources":["../../../../src/components/Toast/Toast.types.ts"],"sourcesContent":["import {\n type ComponentType,\n type ReactNode,\n} from 'react'\nimport type React from 'react'\n\nimport {\n type BezierIcon,\n InfoFilledIcon,\n} from '@channel.io/bezier-icons'\n\nimport { type TransitionDuration } from '~/src/foundation'\n\nimport {\n type BezierComponentProps,\n type ContentProps,\n} from '~/src/types/ComponentProps'\nimport { type InjectedInterpolation } from '~/src/types/Foundation'\nimport { noop } from '~/src/utils/functionUtils'\n\nexport enum ToastPlacement {\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight',\n}\n\nexport enum ToastAppearance {\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n}\n\nexport enum ToastIconColor {\n Success = 'bgtxt-green-normal',\n Warning = 'bgtxt-orange-normal',\n Error = 'bgtxt-red-normal',\n Info = 'txt-black-darkest',\n}\n\nexport enum ToastPreset {\n Default = 'Default',\n Success = 'Success',\n Error = 'Error',\n Offline = 'Offline',\n Online = 'Online',\n}\n\nexport interface ToastPresetType {\n appearance: ToastAppearance\n icon: BezierIcon\n}\n\ninterface ToastElementOptions {\n preset?: ToastPreset\n appearance?: ToastAppearance\n icon?: BezierIcon\n /**\n * @deprecated use React.ReactNode content props instead.\n */\n actionContent?: string\n transitionDuration: TransitionDuration\n transform: InjectedInterpolation\n placement: ToastPlacement\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss: React.MouseEventHandler<HTMLDivElement>\n}\n\nexport type ToastContent = NonNullable<React.ReactNode>\n\nexport default interface ToastElementProps extends\n BezierComponentProps,\n Required<ContentProps<ToastContent>>,\n ToastElementOptions {}\n\nexport interface ToastProviderProps {\n autoDismissTimeout?: number\n container?: HTMLElement | null\n children?: ReactNode[] | ReactNode\n}\n\nexport type ToastId = string\n\nexport type OnDismissCallback = (id: ToastId) => void\n\nexport type ToastOptions = {\n preset?: ToastPreset\n icon?: BezierIcon\n appearance?: ToastAppearance\n actionContent?: string\n autoDismiss?: boolean\n rightSide?: boolean\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss?: OnDismissCallback\n}\n\nexport const defaultOptions: ToastOptions = {\n icon: InfoFilledIcon,\n appearance: ToastAppearance.Info,\n autoDismiss: false,\n onDismiss: noop,\n rightSide: false,\n}\n\nexport type ToastType = ToastOptions & {\n id: ToastId\n content: ToastContent\n /**\n * Updated version\n * @default 0\n */\n version?: number\n}\n\nexport interface ToastContextType {\n add: (content: ToastContent, options?: ToastOptions) => ToastId\n update: (toastId: ToastId, content: ToastContent, options?: ToastOptions) => ToastId\n remove: (id: ToastId) => void\n removeAll: () => void\n leftToasts: ToastType[]\n rightToasts: ToastType[]\n}\n\nexport type ToastContainerProps = {\n children?: ReactNode[]\n placement: ToastPlacement\n}\n\nexport interface ToastControllerProps extends ToastElementProps {\n autoDismiss: boolean\n autoDismissTimeout: number\n component: ComponentType<ToastElementProps>\n /**\n * Updated toast version\n * @default 0\n */\n version?: number\n}\n"],"names":["ToastPlacement","ToastAppearance","ToastIconColor","ToastPreset","defaultOptions","icon","InfoFilledIcon","appearance","Info","autoDismiss","onDismiss","noop","rightSide"],"mappings":";;;;;AAoBYA,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;EAAdA,cAAc,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAKdC,IAAAA,eAAe,0BAAfA,eAAe,EAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAfA,eAAe,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAfA,eAAe,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOfC,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,oBAAA,CAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,qBAAA,CAAA;EAAdA,cAAc,CAAA,OAAA,CAAA,GAAA,kBAAA,CAAA;EAAdA,cAAc,CAAA,MAAA,CAAA,GAAA,mBAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOdC,IAAAA,WAAW,0BAAXA,WAAW,EAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;AAAA,EAAA,OAAXA,WAAW,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AA0DhB,MAAMC,cAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAEC,0BAAc;EACpBC,UAAU,EAAEN,eAAe,CAACO,IAAI;AAChCC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,SAAS,EAAEC,kBAAI;AACfC,EAAAA,SAAS,EAAE,KAAA;AACb;;;;;;;;"}
@@ -17,6 +17,7 @@ var FoundationStyledComponent = require('../../foundation/FoundationStyledCompon
17
17
 
18
18
  function ToastProvider({
19
19
  autoDismissTimeout = 3000,
20
+ container: givenContainer,
20
21
  children = []
21
22
  }) {
22
23
  const isMounted = useIsMounted.default();
@@ -26,6 +27,7 @@ function ToastProvider({
26
27
  rightToasts,
27
28
  dismiss
28
29
  } = toastContextValue;
30
+ const container = givenContainer ?? domUtils.getRootElement();
29
31
  const createContainer = React.useCallback((placement, toasts) => /*#__PURE__*/React.createElement(ToastContainer.default, {
30
32
  key: placement,
31
33
  placement: placement
@@ -61,7 +63,7 @@ function ToastProvider({
61
63
  }))), [autoDismissTimeout, dismiss]);
62
64
  return /*#__PURE__*/React.createElement(ToastContext.ToastContextProvider, {
63
65
  value: toastContextValue
64
- }, children, isMounted && /*#__PURE__*/ReactDOM.createPortal([createContainer(Toast_types.ToastPlacement.BottomLeft, leftToasts), createContainer(Toast_types.ToastPlacement.BottomRight, rightToasts)], domUtils.getRootElement()));
66
+ }, children, isMounted && /*#__PURE__*/ReactDOM.createPortal([createContainer(Toast_types.ToastPlacement.BottomLeft, leftToasts), createContainer(Toast_types.ToastPlacement.BottomRight, rightToasts)], container));
65
67
  }
66
68
 
67
69
  exports.default = ToastProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.js","sources":["../../../../src/components/Toast/ToastProvider.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\n\nimport { createPortal } from 'react-dom'\n\nimport {\n TransitionDuration,\n css,\n} from '~/src/foundation'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getRootElement } from '~/src/utils/domUtils'\n\nimport {\n ToastPlacement,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport ToastContainer from './ToastContainer'\nimport { ToastContextProvider } from './ToastContext'\nimport ToastController from './ToastController'\nimport ToastElement from './ToastElement'\nimport useToastProviderValues from './useToastContextValues'\n\nfunction ToastProvider({\n autoDismissTimeout = 3000,\n children = [],\n}: ToastProviderProps) {\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const {\n leftToasts,\n rightToasts,\n dismiss,\n } = toastContextValue\n\n const createContainer = useCallback((placement: ToastPlacement, toasts: ToastType[]) => (\n <ToastContainer\n key={placement}\n placement={placement}\n >\n { toasts.map(({\n autoDismiss,\n content,\n preset,\n appearance,\n icon,\n actionContent,\n onClick,\n id,\n onDismiss,\n zIndex,\n version,\n }) => (\n <ToastController\n key={id}\n placement={placement}\n autoDismiss={autoDismiss ?? true}\n transitionDuration={TransitionDuration.M}\n actionContent={actionContent}\n onClick={onClick}\n autoDismissTimeout={autoDismissTimeout}\n preset={preset}\n appearance={appearance}\n content={content}\n icon={icon}\n component={ToastElement}\n onDismiss={() => dismiss(id, onDismiss)}\n transform={css``}\n zIndex={zIndex}\n version={version}\n />\n )) }\n </ToastContainer>\n ), [\n autoDismissTimeout,\n dismiss,\n ])\n\n return (\n <ToastContextProvider value={toastContextValue}>\n { children }\n { isMounted && createPortal(\n [\n createContainer(ToastPlacement.BottomLeft, leftToasts),\n createContainer(ToastPlacement.BottomRight, rightToasts),\n ],\n getRootElement(),\n ) }\n </ToastContextProvider>\n )\n}\n\nexport default ToastProvider\n"],"names":["ToastProvider","autoDismissTimeout","children","isMounted","useIsMounted","toastContextValue","useToastProviderValues","leftToasts","rightToasts","dismiss","createContainer","useCallback","placement","toasts","React","createElement","ToastContainer","key","map","autoDismiss","content","preset","appearance","icon","actionContent","onClick","id","onDismiss","zIndex","version","ToastController","transitionDuration","TransitionDuration","M","component","ToastElement","transform","css","ToastContextProvider","value","createPortal","ToastPlacement","BottomLeft","BottomRight","getRootElement"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,SAASA,aAAaA,CAAC;AACrBC,EAAAA,kBAAkB,GAAG,IAAI;AACzBC,EAAAA,QAAQ,GAAG,EAAA;AACO,CAAC,EAAE;AACrB,EAAA,MAAMC,SAAS,GAAGC,oBAAY,EAAE,CAAA;AAEhC,EAAA,MAAMC,iBAAiB,GAAGC,6BAAsB,EAAE,CAAA;EAClD,MAAM;IACJC,UAAU;IACVC,WAAW;AACXC,IAAAA,OAAAA;AACF,GAAC,GAAGJ,iBAAiB,CAAA;AAErB,EAAA,MAAMK,eAAe,GAAGC,iBAAW,CAAC,CAACC,SAAyB,EAAEC,MAAmB,kBACjFC,KAAA,CAAAC,aAAA,CAACC,sBAAc,EAAA;AACbC,IAAAA,GAAG,EAAEL,SAAU;AACfA,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAEnBC,MAAM,CAACK,GAAG,CAAC,CAAC;IACZC,WAAW;IACXC,OAAO;IACPC,MAAM;IACNC,UAAU;IACVC,IAAI;IACJC,aAAa;IACbC,OAAO;IACPC,EAAE;IACFC,SAAS;IACTC,MAAM;AACNC,IAAAA,OAAAA;AACF,GAAC,kBACCf,KAAA,CAAAC,aAAA,CAACe,uBAAe,EAAA;AACdb,IAAAA,GAAG,EAAES,EAAG;AACRd,IAAAA,SAAS,EAAEA,SAAU;IACrBO,WAAW,EAAEA,WAAW,IAAI,IAAK;IACjCY,kBAAkB,EAAEC,wBAAkB,CAACC,CAAE;AACzCT,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,OAAO,EAAEA,OAAQ;AACjBxB,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCoB,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,UAAU,EAAEA,UAAW;AACvBF,IAAAA,OAAO,EAAEA,OAAQ;AACjBG,IAAAA,IAAI,EAAEA,IAAK;AACXW,IAAAA,SAAS,EAAEC,oBAAa;IACxBR,SAAS,EAAEA,MAAMlB,OAAO,CAACiB,EAAE,EAAEC,SAAS,CAAE;IACxCS,SAAS,EAAEC,6BAAI,CAAE,CAAA;AACjBT,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,OAAO,EAAEA,OAAAA;GACV,CACF,CACa,CACjB,EAAE,CACD5B,kBAAkB,EAClBQ,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,oBACEK,KAAA,CAAAC,aAAA,CAACuB,iCAAoB,EAAA;AAACC,IAAAA,KAAK,EAAElC,iBAAAA;AAAkB,GAAA,EAC3CH,QAAQ,EACRC,SAAS,iBAAIqC,qBAAY,CACzB,CACE9B,eAAe,CAAC+B,0BAAc,CAACC,UAAU,EAAEnC,UAAU,CAAC,EACtDG,eAAe,CAAC+B,0BAAc,CAACE,WAAW,EAAEnC,WAAW,CAAC,CACzD,EACDoC,uBAAc,EAChB,CACoB,CAAC,CAAA;AAE3B;;;;"}
1
+ {"version":3,"file":"ToastProvider.js","sources":["../../../../src/components/Toast/ToastProvider.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\n\nimport { createPortal } from 'react-dom'\n\nimport {\n TransitionDuration,\n css,\n} from '~/src/foundation'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getRootElement } from '~/src/utils/domUtils'\n\nimport {\n ToastPlacement,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport ToastContainer from './ToastContainer'\nimport { ToastContextProvider } from './ToastContext'\nimport ToastController from './ToastController'\nimport ToastElement from './ToastElement'\nimport useToastProviderValues from './useToastContextValues'\n\nfunction ToastProvider({\n autoDismissTimeout = 3000,\n container: givenContainer,\n children = [],\n}: ToastProviderProps) {\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const {\n leftToasts,\n rightToasts,\n dismiss,\n } = toastContextValue\n const container = givenContainer ?? getRootElement()\n\n const createContainer = useCallback((placement: ToastPlacement, toasts: ToastType[]) => (\n <ToastContainer\n key={placement}\n placement={placement}\n >\n { toasts.map(({\n autoDismiss,\n content,\n preset,\n appearance,\n icon,\n actionContent,\n onClick,\n id,\n onDismiss,\n zIndex,\n version,\n }) => (\n <ToastController\n key={id}\n placement={placement}\n autoDismiss={autoDismiss ?? true}\n transitionDuration={TransitionDuration.M}\n actionContent={actionContent}\n onClick={onClick}\n autoDismissTimeout={autoDismissTimeout}\n preset={preset}\n appearance={appearance}\n content={content}\n icon={icon}\n component={ToastElement}\n onDismiss={() => dismiss(id, onDismiss)}\n transform={css``}\n zIndex={zIndex}\n version={version}\n />\n )) }\n </ToastContainer>\n ), [\n autoDismissTimeout,\n dismiss,\n ])\n\n return (\n <ToastContextProvider value={toastContextValue}>\n { children }\n { isMounted && createPortal(\n [\n createContainer(ToastPlacement.BottomLeft, leftToasts),\n createContainer(ToastPlacement.BottomRight, rightToasts),\n ],\n container,\n ) }\n </ToastContextProvider>\n )\n}\n\nexport default ToastProvider\n"],"names":["ToastProvider","autoDismissTimeout","container","givenContainer","children","isMounted","useIsMounted","toastContextValue","useToastProviderValues","leftToasts","rightToasts","dismiss","getRootElement","createContainer","useCallback","placement","toasts","React","createElement","ToastContainer","key","map","autoDismiss","content","preset","appearance","icon","actionContent","onClick","id","onDismiss","zIndex","version","ToastController","transitionDuration","TransitionDuration","M","component","ToastElement","transform","css","ToastContextProvider","value","createPortal","ToastPlacement","BottomLeft","BottomRight"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,SAASA,aAAaA,CAAC;AACrBC,EAAAA,kBAAkB,GAAG,IAAI;AACzBC,EAAAA,SAAS,EAAEC,cAAc;AACzBC,EAAAA,QAAQ,GAAG,EAAA;AACO,CAAC,EAAE;AACrB,EAAA,MAAMC,SAAS,GAAGC,oBAAY,EAAE,CAAA;AAEhC,EAAA,MAAMC,iBAAiB,GAAGC,6BAAsB,EAAE,CAAA;EAClD,MAAM;IACJC,UAAU;IACVC,WAAW;AACXC,IAAAA,OAAAA;AACF,GAAC,GAAGJ,iBAAiB,CAAA;AACrB,EAAA,MAAML,SAAS,GAAGC,cAAc,IAAIS,uBAAc,EAAE,CAAA;AAEpD,EAAA,MAAMC,eAAe,GAAGC,iBAAW,CAAC,CAACC,SAAyB,EAAEC,MAAmB,kBACjFC,KAAA,CAAAC,aAAA,CAACC,sBAAc,EAAA;AACbC,IAAAA,GAAG,EAAEL,SAAU;AACfA,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAEnBC,MAAM,CAACK,GAAG,CAAC,CAAC;IACZC,WAAW;IACXC,OAAO;IACPC,MAAM;IACNC,UAAU;IACVC,IAAI;IACJC,aAAa;IACbC,OAAO;IACPC,EAAE;IACFC,SAAS;IACTC,MAAM;AACNC,IAAAA,OAAAA;AACF,GAAC,kBACCf,KAAA,CAAAC,aAAA,CAACe,uBAAe,EAAA;AACdb,IAAAA,GAAG,EAAES,EAAG;AACRd,IAAAA,SAAS,EAAEA,SAAU;IACrBO,WAAW,EAAEA,WAAW,IAAI,IAAK;IACjCY,kBAAkB,EAAEC,wBAAkB,CAACC,CAAE;AACzCT,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,OAAO,EAAEA,OAAQ;AACjB3B,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCuB,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,UAAU,EAAEA,UAAW;AACvBF,IAAAA,OAAO,EAAEA,OAAQ;AACjBG,IAAAA,IAAI,EAAEA,IAAK;AACXW,IAAAA,SAAS,EAAEC,oBAAa;IACxBR,SAAS,EAAEA,MAAMnB,OAAO,CAACkB,EAAE,EAAEC,SAAS,CAAE;IACxCS,SAAS,EAAEC,6BAAI,CAAE,CAAA;AACjBT,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,OAAO,EAAEA,OAAAA;GACV,CACF,CACa,CACjB,EAAE,CACD/B,kBAAkB,EAClBU,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,oBACEM,KAAA,CAAAC,aAAA,CAACuB,iCAAoB,EAAA;AAACC,IAAAA,KAAK,EAAEnC,iBAAAA;AAAkB,GAAA,EAC3CH,QAAQ,EACRC,SAAS,iBAAIsC,qBAAY,CACzB,CACE9B,eAAe,CAAC+B,0BAAc,CAACC,UAAU,EAAEpC,UAAU,CAAC,EACtDI,eAAe,CAAC+B,0BAAc,CAACE,WAAW,EAAEpC,WAAW,CAAC,CACzD,EACDR,SACF,CACoB,CAAC,CAAA;AAE3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.mjs","sources":["../../../../src/components/Toast/Toast.types.ts"],"sourcesContent":["import {\n type ComponentType,\n type ReactNode,\n} from 'react'\nimport type React from 'react'\n\nimport {\n type BezierIcon,\n InfoFilledIcon,\n} from '@channel.io/bezier-icons'\n\nimport { type TransitionDuration } from '~/src/foundation'\n\nimport {\n type BezierComponentProps,\n type ContentProps,\n} from '~/src/types/ComponentProps'\nimport { type InjectedInterpolation } from '~/src/types/Foundation'\nimport { noop } from '~/src/utils/functionUtils'\n\nexport enum ToastPlacement {\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight',\n}\n\nexport enum ToastAppearance {\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n}\n\nexport enum ToastIconColor {\n Success = 'bgtxt-green-normal',\n Warning = 'bgtxt-orange-normal',\n Error = 'bgtxt-red-normal',\n Info = 'txt-black-darkest',\n}\n\nexport enum ToastPreset {\n Default = 'Default',\n Success = 'Success',\n Error = 'Error',\n Offline = 'Offline',\n Online = 'Online',\n}\n\nexport interface ToastPresetType {\n appearance: ToastAppearance\n icon: BezierIcon\n}\n\ninterface ToastElementOptions {\n preset?: ToastPreset\n appearance?: ToastAppearance\n icon?: BezierIcon\n /**\n * @deprecated use React.ReactNode content props instead.\n */\n actionContent?: string\n transitionDuration: TransitionDuration\n transform: InjectedInterpolation\n placement: ToastPlacement\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss: React.MouseEventHandler<HTMLDivElement>\n}\n\nexport type ToastContent = NonNullable<React.ReactNode>\n\nexport default interface ToastElementProps extends\n BezierComponentProps,\n Required<ContentProps<ToastContent>>,\n ToastElementOptions {}\n\nexport interface ToastProviderProps {\n autoDismissTimeout?: number\n children?: ReactNode[] | ReactNode\n}\n\nexport type ToastId = string\n\nexport type OnDismissCallback = (id: ToastId) => void\n\nexport type ToastOptions = {\n preset?: ToastPreset\n icon?: BezierIcon\n appearance?: ToastAppearance\n actionContent?: string\n autoDismiss?: boolean\n rightSide?: boolean\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss?: OnDismissCallback\n}\n\nexport const defaultOptions: ToastOptions = {\n icon: InfoFilledIcon,\n appearance: ToastAppearance.Info,\n autoDismiss: false,\n onDismiss: noop,\n rightSide: false,\n}\n\nexport type ToastType = ToastOptions & {\n id: ToastId\n content: ToastContent\n /**\n * Updated version\n * @default 0\n */\n version?: number\n}\n\nexport interface ToastContextType {\n add: (content: ToastContent, options?: ToastOptions) => ToastId\n update: (toastId: ToastId, content: ToastContent, options?: ToastOptions) => ToastId\n remove: (id: ToastId) => void\n removeAll: () => void\n leftToasts: ToastType[]\n rightToasts: ToastType[]\n}\n\nexport type ToastContainerProps = {\n children?: ReactNode[]\n placement: ToastPlacement\n}\n\nexport interface ToastControllerProps extends ToastElementProps {\n autoDismiss: boolean\n autoDismissTimeout: number\n component: ComponentType<ToastElementProps>\n /**\n * Updated toast version\n * @default 0\n */\n version?: number\n}\n"],"names":["ToastPlacement","ToastAppearance","ToastIconColor","ToastPreset","defaultOptions","icon","InfoFilledIcon","appearance","Info","autoDismiss","onDismiss","noop","rightSide"],"mappings":";;;AAoBYA,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;EAAdA,cAAc,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAKdC,IAAAA,eAAe,0BAAfA,eAAe,EAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAfA,eAAe,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAfA,eAAe,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOfC,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,oBAAA,CAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,qBAAA,CAAA;EAAdA,cAAc,CAAA,OAAA,CAAA,GAAA,kBAAA,CAAA;EAAdA,cAAc,CAAA,MAAA,CAAA,GAAA,mBAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOdC,IAAAA,WAAW,0BAAXA,WAAW,EAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;AAAA,EAAA,OAAXA,WAAW,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAyDhB,MAAMC,cAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAEC,cAAc;EACpBC,UAAU,EAAEN,eAAe,CAACO,IAAI;AAChCC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,SAAS,EAAEC,IAAI;AACfC,EAAAA,SAAS,EAAE,KAAA;AACb;;;;"}
1
+ {"version":3,"file":"Toast.types.mjs","sources":["../../../../src/components/Toast/Toast.types.ts"],"sourcesContent":["import {\n type ComponentType,\n type ReactNode,\n} from 'react'\nimport type React from 'react'\n\nimport {\n type BezierIcon,\n InfoFilledIcon,\n} from '@channel.io/bezier-icons'\n\nimport { type TransitionDuration } from '~/src/foundation'\n\nimport {\n type BezierComponentProps,\n type ContentProps,\n} from '~/src/types/ComponentProps'\nimport { type InjectedInterpolation } from '~/src/types/Foundation'\nimport { noop } from '~/src/utils/functionUtils'\n\nexport enum ToastPlacement {\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight',\n}\n\nexport enum ToastAppearance {\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Info = 'info',\n}\n\nexport enum ToastIconColor {\n Success = 'bgtxt-green-normal',\n Warning = 'bgtxt-orange-normal',\n Error = 'bgtxt-red-normal',\n Info = 'txt-black-darkest',\n}\n\nexport enum ToastPreset {\n Default = 'Default',\n Success = 'Success',\n Error = 'Error',\n Offline = 'Offline',\n Online = 'Online',\n}\n\nexport interface ToastPresetType {\n appearance: ToastAppearance\n icon: BezierIcon\n}\n\ninterface ToastElementOptions {\n preset?: ToastPreset\n appearance?: ToastAppearance\n icon?: BezierIcon\n /**\n * @deprecated use React.ReactNode content props instead.\n */\n actionContent?: string\n transitionDuration: TransitionDuration\n transform: InjectedInterpolation\n placement: ToastPlacement\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss: React.MouseEventHandler<HTMLDivElement>\n}\n\nexport type ToastContent = NonNullable<React.ReactNode>\n\nexport default interface ToastElementProps extends\n BezierComponentProps,\n Required<ContentProps<ToastContent>>,\n ToastElementOptions {}\n\nexport interface ToastProviderProps {\n autoDismissTimeout?: number\n container?: HTMLElement | null\n children?: ReactNode[] | ReactNode\n}\n\nexport type ToastId = string\n\nexport type OnDismissCallback = (id: ToastId) => void\n\nexport type ToastOptions = {\n preset?: ToastPreset\n icon?: BezierIcon\n appearance?: ToastAppearance\n actionContent?: string\n autoDismiss?: boolean\n rightSide?: boolean\n zIndex?: number\n onClick?: React.MouseEventHandler\n onDismiss?: OnDismissCallback\n}\n\nexport const defaultOptions: ToastOptions = {\n icon: InfoFilledIcon,\n appearance: ToastAppearance.Info,\n autoDismiss: false,\n onDismiss: noop,\n rightSide: false,\n}\n\nexport type ToastType = ToastOptions & {\n id: ToastId\n content: ToastContent\n /**\n * Updated version\n * @default 0\n */\n version?: number\n}\n\nexport interface ToastContextType {\n add: (content: ToastContent, options?: ToastOptions) => ToastId\n update: (toastId: ToastId, content: ToastContent, options?: ToastOptions) => ToastId\n remove: (id: ToastId) => void\n removeAll: () => void\n leftToasts: ToastType[]\n rightToasts: ToastType[]\n}\n\nexport type ToastContainerProps = {\n children?: ReactNode[]\n placement: ToastPlacement\n}\n\nexport interface ToastControllerProps extends ToastElementProps {\n autoDismiss: boolean\n autoDismissTimeout: number\n component: ComponentType<ToastElementProps>\n /**\n * Updated toast version\n * @default 0\n */\n version?: number\n}\n"],"names":["ToastPlacement","ToastAppearance","ToastIconColor","ToastPreset","defaultOptions","icon","InfoFilledIcon","appearance","Info","autoDismiss","onDismiss","noop","rightSide"],"mappings":";;;AAoBYA,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;EAAdA,cAAc,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAKdC,IAAAA,eAAe,0BAAfA,eAAe,EAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAfA,eAAe,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAfA,eAAe,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOfC,IAAAA,cAAc,0BAAdA,cAAc,EAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,oBAAA,CAAA;EAAdA,cAAc,CAAA,SAAA,CAAA,GAAA,qBAAA,CAAA;EAAdA,cAAc,CAAA,OAAA,CAAA,GAAA,kBAAA,CAAA;EAAdA,cAAc,CAAA,MAAA,CAAA,GAAA,mBAAA,CAAA;AAAA,EAAA,OAAdA,cAAc,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAOdC,IAAAA,WAAW,0BAAXA,WAAW,EAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAAXA,WAAW,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAXA,WAAW,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;AAAA,EAAA,OAAXA,WAAW,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AA0DhB,MAAMC,cAA4B,GAAG;AAC1CC,EAAAA,IAAI,EAAEC,cAAc;EACpBC,UAAU,EAAEN,eAAe,CAACO,IAAI;AAChCC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,SAAS,EAAEC,IAAI;AACfC,EAAAA,SAAS,EAAE,KAAA;AACb;;;;"}
@@ -13,6 +13,7 @@ import { css as FoundationCSS } from '../../foundation/FoundationStyledComponent
13
13
 
14
14
  function ToastProvider({
15
15
  autoDismissTimeout = 3000,
16
+ container: givenContainer,
16
17
  children = []
17
18
  }) {
18
19
  const isMounted = useIsMounted();
@@ -22,6 +23,7 @@ function ToastProvider({
22
23
  rightToasts,
23
24
  dismiss
24
25
  } = toastContextValue;
26
+ const container = givenContainer ?? getRootElement();
25
27
  const createContainer = useCallback((placement, toasts) => /*#__PURE__*/React__default.createElement(ToastContainer, {
26
28
  key: placement,
27
29
  placement: placement
@@ -57,7 +59,7 @@ function ToastProvider({
57
59
  }))), [autoDismissTimeout, dismiss]);
58
60
  return /*#__PURE__*/React__default.createElement(ToastContextProvider, {
59
61
  value: toastContextValue
60
- }, children, isMounted && /*#__PURE__*/createPortal([createContainer(ToastPlacement.BottomLeft, leftToasts), createContainer(ToastPlacement.BottomRight, rightToasts)], getRootElement()));
62
+ }, children, isMounted && /*#__PURE__*/createPortal([createContainer(ToastPlacement.BottomLeft, leftToasts), createContainer(ToastPlacement.BottomRight, rightToasts)], container));
61
63
  }
62
64
 
63
65
  export { ToastProvider as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.mjs","sources":["../../../../src/components/Toast/ToastProvider.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\n\nimport { createPortal } from 'react-dom'\n\nimport {\n TransitionDuration,\n css,\n} from '~/src/foundation'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getRootElement } from '~/src/utils/domUtils'\n\nimport {\n ToastPlacement,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport ToastContainer from './ToastContainer'\nimport { ToastContextProvider } from './ToastContext'\nimport ToastController from './ToastController'\nimport ToastElement from './ToastElement'\nimport useToastProviderValues from './useToastContextValues'\n\nfunction ToastProvider({\n autoDismissTimeout = 3000,\n children = [],\n}: ToastProviderProps) {\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const {\n leftToasts,\n rightToasts,\n dismiss,\n } = toastContextValue\n\n const createContainer = useCallback((placement: ToastPlacement, toasts: ToastType[]) => (\n <ToastContainer\n key={placement}\n placement={placement}\n >\n { toasts.map(({\n autoDismiss,\n content,\n preset,\n appearance,\n icon,\n actionContent,\n onClick,\n id,\n onDismiss,\n zIndex,\n version,\n }) => (\n <ToastController\n key={id}\n placement={placement}\n autoDismiss={autoDismiss ?? true}\n transitionDuration={TransitionDuration.M}\n actionContent={actionContent}\n onClick={onClick}\n autoDismissTimeout={autoDismissTimeout}\n preset={preset}\n appearance={appearance}\n content={content}\n icon={icon}\n component={ToastElement}\n onDismiss={() => dismiss(id, onDismiss)}\n transform={css``}\n zIndex={zIndex}\n version={version}\n />\n )) }\n </ToastContainer>\n ), [\n autoDismissTimeout,\n dismiss,\n ])\n\n return (\n <ToastContextProvider value={toastContextValue}>\n { children }\n { isMounted && createPortal(\n [\n createContainer(ToastPlacement.BottomLeft, leftToasts),\n createContainer(ToastPlacement.BottomRight, rightToasts),\n ],\n getRootElement(),\n ) }\n </ToastContextProvider>\n )\n}\n\nexport default ToastProvider\n"],"names":["ToastProvider","autoDismissTimeout","children","isMounted","useIsMounted","toastContextValue","useToastProviderValues","leftToasts","rightToasts","dismiss","createContainer","useCallback","placement","toasts","React","createElement","ToastContainer","key","map","autoDismiss","content","preset","appearance","icon","actionContent","onClick","id","onDismiss","zIndex","version","ToastController","transitionDuration","TransitionDuration","M","component","ToastElement","transform","css","ToastContextProvider","value","createPortal","ToastPlacement","BottomLeft","BottomRight","getRootElement"],"mappings":";;;;;;;;;;;;;AAuBA,SAASA,aAAaA,CAAC;AACrBC,EAAAA,kBAAkB,GAAG,IAAI;AACzBC,EAAAA,QAAQ,GAAG,EAAA;AACO,CAAC,EAAE;AACrB,EAAA,MAAMC,SAAS,GAAGC,YAAY,EAAE,CAAA;AAEhC,EAAA,MAAMC,iBAAiB,GAAGC,qBAAsB,EAAE,CAAA;EAClD,MAAM;IACJC,UAAU;IACVC,WAAW;AACXC,IAAAA,OAAAA;AACF,GAAC,GAAGJ,iBAAiB,CAAA;AAErB,EAAA,MAAMK,eAAe,GAAGC,WAAW,CAAC,CAACC,SAAyB,EAAEC,MAAmB,kBACjFC,cAAA,CAAAC,aAAA,CAACC,cAAc,EAAA;AACbC,IAAAA,GAAG,EAAEL,SAAU;AACfA,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAEnBC,MAAM,CAACK,GAAG,CAAC,CAAC;IACZC,WAAW;IACXC,OAAO;IACPC,MAAM;IACNC,UAAU;IACVC,IAAI;IACJC,aAAa;IACbC,OAAO;IACPC,EAAE;IACFC,SAAS;IACTC,MAAM;AACNC,IAAAA,OAAAA;AACF,GAAC,kBACCf,cAAA,CAAAC,aAAA,CAACe,eAAe,EAAA;AACdb,IAAAA,GAAG,EAAES,EAAG;AACRd,IAAAA,SAAS,EAAEA,SAAU;IACrBO,WAAW,EAAEA,WAAW,IAAI,IAAK;IACjCY,kBAAkB,EAAEC,kBAAkB,CAACC,CAAE;AACzCT,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,OAAO,EAAEA,OAAQ;AACjBxB,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCoB,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,UAAU,EAAEA,UAAW;AACvBF,IAAAA,OAAO,EAAEA,OAAQ;AACjBG,IAAAA,IAAI,EAAEA,IAAK;AACXW,IAAAA,SAAS,EAAEC,YAAa;IACxBR,SAAS,EAAEA,MAAMlB,OAAO,CAACiB,EAAE,EAAEC,SAAS,CAAE;IACxCS,SAAS,EAAEC,aAAI,CAAE,CAAA;AACjBT,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,OAAO,EAAEA,OAAAA;GACV,CACF,CACa,CACjB,EAAE,CACD5B,kBAAkB,EAClBQ,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,oBACEK,cAAA,CAAAC,aAAA,CAACuB,oBAAoB,EAAA;AAACC,IAAAA,KAAK,EAAElC,iBAAAA;AAAkB,GAAA,EAC3CH,QAAQ,EACRC,SAAS,iBAAIqC,YAAY,CACzB,CACE9B,eAAe,CAAC+B,cAAc,CAACC,UAAU,EAAEnC,UAAU,CAAC,EACtDG,eAAe,CAAC+B,cAAc,CAACE,WAAW,EAAEnC,WAAW,CAAC,CACzD,EACDoC,cAAc,EAChB,CACoB,CAAC,CAAA;AAE3B;;;;"}
1
+ {"version":3,"file":"ToastProvider.mjs","sources":["../../../../src/components/Toast/ToastProvider.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\n\nimport { createPortal } from 'react-dom'\n\nimport {\n TransitionDuration,\n css,\n} from '~/src/foundation'\n\nimport useIsMounted from '~/src/hooks/useIsMounted'\nimport { getRootElement } from '~/src/utils/domUtils'\n\nimport {\n ToastPlacement,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport ToastContainer from './ToastContainer'\nimport { ToastContextProvider } from './ToastContext'\nimport ToastController from './ToastController'\nimport ToastElement from './ToastElement'\nimport useToastProviderValues from './useToastContextValues'\n\nfunction ToastProvider({\n autoDismissTimeout = 3000,\n container: givenContainer,\n children = [],\n}: ToastProviderProps) {\n const isMounted = useIsMounted()\n\n const toastContextValue = useToastProviderValues()\n const {\n leftToasts,\n rightToasts,\n dismiss,\n } = toastContextValue\n const container = givenContainer ?? getRootElement()\n\n const createContainer = useCallback((placement: ToastPlacement, toasts: ToastType[]) => (\n <ToastContainer\n key={placement}\n placement={placement}\n >\n { toasts.map(({\n autoDismiss,\n content,\n preset,\n appearance,\n icon,\n actionContent,\n onClick,\n id,\n onDismiss,\n zIndex,\n version,\n }) => (\n <ToastController\n key={id}\n placement={placement}\n autoDismiss={autoDismiss ?? true}\n transitionDuration={TransitionDuration.M}\n actionContent={actionContent}\n onClick={onClick}\n autoDismissTimeout={autoDismissTimeout}\n preset={preset}\n appearance={appearance}\n content={content}\n icon={icon}\n component={ToastElement}\n onDismiss={() => dismiss(id, onDismiss)}\n transform={css``}\n zIndex={zIndex}\n version={version}\n />\n )) }\n </ToastContainer>\n ), [\n autoDismissTimeout,\n dismiss,\n ])\n\n return (\n <ToastContextProvider value={toastContextValue}>\n { children }\n { isMounted && createPortal(\n [\n createContainer(ToastPlacement.BottomLeft, leftToasts),\n createContainer(ToastPlacement.BottomRight, rightToasts),\n ],\n container,\n ) }\n </ToastContextProvider>\n )\n}\n\nexport default ToastProvider\n"],"names":["ToastProvider","autoDismissTimeout","container","givenContainer","children","isMounted","useIsMounted","toastContextValue","useToastProviderValues","leftToasts","rightToasts","dismiss","getRootElement","createContainer","useCallback","placement","toasts","React","createElement","ToastContainer","key","map","autoDismiss","content","preset","appearance","icon","actionContent","onClick","id","onDismiss","zIndex","version","ToastController","transitionDuration","TransitionDuration","M","component","ToastElement","transform","css","ToastContextProvider","value","createPortal","ToastPlacement","BottomLeft","BottomRight"],"mappings":";;;;;;;;;;;;;AAuBA,SAASA,aAAaA,CAAC;AACrBC,EAAAA,kBAAkB,GAAG,IAAI;AACzBC,EAAAA,SAAS,EAAEC,cAAc;AACzBC,EAAAA,QAAQ,GAAG,EAAA;AACO,CAAC,EAAE;AACrB,EAAA,MAAMC,SAAS,GAAGC,YAAY,EAAE,CAAA;AAEhC,EAAA,MAAMC,iBAAiB,GAAGC,qBAAsB,EAAE,CAAA;EAClD,MAAM;IACJC,UAAU;IACVC,WAAW;AACXC,IAAAA,OAAAA;AACF,GAAC,GAAGJ,iBAAiB,CAAA;AACrB,EAAA,MAAML,SAAS,GAAGC,cAAc,IAAIS,cAAc,EAAE,CAAA;AAEpD,EAAA,MAAMC,eAAe,GAAGC,WAAW,CAAC,CAACC,SAAyB,EAAEC,MAAmB,kBACjFC,cAAA,CAAAC,aAAA,CAACC,cAAc,EAAA;AACbC,IAAAA,GAAG,EAAEL,SAAU;AACfA,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EAEnBC,MAAM,CAACK,GAAG,CAAC,CAAC;IACZC,WAAW;IACXC,OAAO;IACPC,MAAM;IACNC,UAAU;IACVC,IAAI;IACJC,aAAa;IACbC,OAAO;IACPC,EAAE;IACFC,SAAS;IACTC,MAAM;AACNC,IAAAA,OAAAA;AACF,GAAC,kBACCf,cAAA,CAAAC,aAAA,CAACe,eAAe,EAAA;AACdb,IAAAA,GAAG,EAAES,EAAG;AACRd,IAAAA,SAAS,EAAEA,SAAU;IACrBO,WAAW,EAAEA,WAAW,IAAI,IAAK;IACjCY,kBAAkB,EAAEC,kBAAkB,CAACC,CAAE;AACzCT,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,OAAO,EAAEA,OAAQ;AACjB3B,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCuB,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,UAAU,EAAEA,UAAW;AACvBF,IAAAA,OAAO,EAAEA,OAAQ;AACjBG,IAAAA,IAAI,EAAEA,IAAK;AACXW,IAAAA,SAAS,EAAEC,YAAa;IACxBR,SAAS,EAAEA,MAAMnB,OAAO,CAACkB,EAAE,EAAEC,SAAS,CAAE;IACxCS,SAAS,EAAEC,aAAI,CAAE,CAAA;AACjBT,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,OAAO,EAAEA,OAAAA;GACV,CACF,CACa,CACjB,EAAE,CACD/B,kBAAkB,EAClBU,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,oBACEM,cAAA,CAAAC,aAAA,CAACuB,oBAAoB,EAAA;AAACC,IAAAA,KAAK,EAAEnC,iBAAAA;AAAkB,GAAA,EAC3CH,QAAQ,EACRC,SAAS,iBAAIsC,YAAY,CACzB,CACE9B,eAAe,CAAC+B,cAAc,CAACC,UAAU,EAAEpC,UAAU,CAAC,EACtDI,eAAe,CAAC+B,cAAc,CAACE,WAAW,EAAEpC,WAAW,CAAC,CACzD,EACDR,SACF,CACoB,CAAC,CAAA;AAE3B;;;;"}
@@ -51,6 +51,7 @@ export default interface ToastElementProps extends BezierComponentProps, Require
51
51
  }
52
52
  export interface ToastProviderProps {
53
53
  autoDismissTimeout?: number;
54
+ container?: HTMLElement | null;
54
55
  children?: ReactNode[] | ReactNode;
55
56
  }
56
57
  export type ToastId = string;
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EACL,KAAK,UAAU,EAEhB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,KAAK,kBAAkB,EAAE,yBAAwB;AAE1D,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAClB,mCAAkC;AACnC,OAAO,EAAE,KAAK,qBAAqB,EAAE,+BAA8B;AAGnE,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,oBAAY,cAAc;IACxB,OAAO,uBAAuB;IAC9B,OAAO,wBAAwB;IAC/B,KAAK,qBAAqB;IAC1B,IAAI,sBAAsB;CAC3B;AAED,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,SAAS,EAAE,qBAAqB,CAAA;IAChC,SAAS,EAAE,cAAc,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACjC,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;CACnD;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAEvD,MAAM,CAAC,OAAO,WAAW,iBAAkB,SACzC,oBAAoB,EACpB,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,EACpC,mBAAmB;CAAG;AAExB,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;AAErD,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACjC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,YAM5B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,YAAY,CAAA;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAA;IAC/D,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAA;IACpF,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,WAAW,EAAE,SAAS,EAAE,CAAA;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;IACtB,SAAS,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,WAAW,EAAE,OAAO,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC3C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
1
+ {"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type ToastProviderProps } from './Toast.types';
3
- declare function ToastProvider({ autoDismissTimeout, children, }: ToastProviderProps): React.JSX.Element;
3
+ declare function ToastProvider({ autoDismissTimeout, container: givenContainer, children, }: ToastProviderProps): React.JSX.Element;
4
4
  export default ToastProvider;
5
5
  //# sourceMappingURL=ToastProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAY1C,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAA;AAOtB,iBAAS,aAAa,CAAC,EACrB,kBAAyB,EACzB,QAAa,GACd,EAAE,kBAAkB,qBAiEpB;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAY1C,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAA;AAOtB,iBAAS,aAAa,CAAC,EACrB,kBAAyB,EACzB,SAAS,EAAE,cAAc,EACzB,QAAa,GACd,EAAE,kBAAkB,qBAkEpB;AAED,eAAe,aAAa,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@channel.io/bezier-react",
3
- "version": "1.16.0",
3
+ "version": "1.17.0",
4
4
  "description": "React components library that implements Bezier design system.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -75,6 +75,7 @@ export default interface ToastElementProps extends
75
75
 
76
76
  export interface ToastProviderProps {
77
77
  autoDismissTimeout?: number
78
+ container?: HTMLElement | null
78
79
  children?: ReactNode[] | ReactNode
79
80
  }
80
81
 
@@ -23,6 +23,7 @@ import useToastProviderValues from './useToastContextValues'
23
23
 
24
24
  function ToastProvider({
25
25
  autoDismissTimeout = 3000,
26
+ container: givenContainer,
26
27
  children = [],
27
28
  }: ToastProviderProps) {
28
29
  const isMounted = useIsMounted()
@@ -33,6 +34,7 @@ function ToastProvider({
33
34
  rightToasts,
34
35
  dismiss,
35
36
  } = toastContextValue
37
+ const container = givenContainer ?? getRootElement()
36
38
 
37
39
  const createContainer = useCallback((placement: ToastPlacement, toasts: ToastType[]) => (
38
40
  <ToastContainer
@@ -85,7 +87,7 @@ function ToastProvider({
85
87
  createContainer(ToastPlacement.BottomLeft, leftToasts),
86
88
  createContainer(ToastPlacement.BottomRight, rightToasts),
87
89
  ],
88
- getRootElement(),
90
+ container,
89
91
  ) }
90
92
  </ToastContextProvider>
91
93
  )