@channel.io/bezier-react 1.7.1 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Forms/FormControl/FormControl.js +1 -1
- package/dist/cjs/components/Forms/FormControl/FormControl.js.map +1 -1
- package/dist/cjs/components/Forms/FormControl/FormControlContext.js +4 -3
- package/dist/cjs/components/Forms/FormControl/FormControlContext.js.map +1 -1
- package/dist/cjs/components/Forms/FormGroup/FormGroup.js +2 -2
- package/dist/cjs/components/Forms/FormGroup/FormGroup.js.map +1 -1
- package/dist/cjs/components/Forms/FormHelperText/FormHelperText.js +2 -2
- package/dist/cjs/components/Forms/FormHelperText/FormHelperText.js.map +1 -1
- package/dist/cjs/components/Forms/FormLabel/FormLabel.js +2 -2
- package/dist/cjs/components/Forms/FormLabel/FormLabel.js.map +1 -1
- package/dist/cjs/components/Forms/SegmentedControl/SegmentedControlContext.js +3 -15
- package/dist/cjs/components/Forms/SegmentedControl/SegmentedControlContext.js.map +1 -1
- package/dist/cjs/components/Forms/useFormFieldProps.js +2 -2
- package/dist/cjs/components/Forms/useFormFieldProps.js.map +1 -1
- package/dist/cjs/components/ListItem/ListItem.styled.js +1 -1
- package/dist/cjs/components/Modals/Modal/Modal.js.map +1 -1
- package/dist/cjs/components/Modals/Modal/Modal.types.js.map +1 -1
- package/dist/cjs/components/Modals/Modal/ModalContent.js +1 -1
- package/dist/cjs/components/Modals/Modal/ModalContent.js.map +1 -1
- package/dist/cjs/components/Modals/Modal/ModalContentContext.js +4 -6
- package/dist/cjs/components/Modals/Modal/ModalContentContext.js.map +1 -1
- package/dist/cjs/components/Modals/Modal/ModalHeader.js +1 -1
- package/dist/cjs/components/Modals/Modal/ModalHeader.js.map +1 -1
- package/dist/cjs/components/OutlineItem/OutlineItem.js +2 -3
- package/dist/cjs/components/OutlineItem/OutlineItem.js.map +1 -1
- package/dist/cjs/components/OutlineItem/OutlineItemContext.js +9 -5
- package/dist/cjs/components/OutlineItem/OutlineItemContext.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.styled.js +1 -1
- package/dist/cjs/components/Tabs/TabAction.js +1 -1
- package/dist/cjs/components/Tabs/TabAction.js.map +1 -1
- package/dist/cjs/components/Tabs/TabItem.js +1 -1
- package/dist/cjs/components/Tabs/TabItem.js.map +1 -1
- package/dist/cjs/components/Tabs/TabList.js +1 -1
- package/dist/cjs/components/Tabs/TabList.js.map +1 -1
- package/dist/cjs/components/Tabs/TabListContext.js +4 -6
- package/dist/cjs/components/Tabs/TabListContext.js.map +1 -1
- package/dist/cjs/components/Toast/ToastContext.js +4 -6
- package/dist/cjs/components/Toast/ToastContext.js.map +1 -1
- package/dist/cjs/components/Toast/ToastProvider.js +1 -4
- package/dist/cjs/components/Toast/ToastProvider.js.map +1 -1
- package/dist/cjs/components/Toast/useToast.js +2 -3
- package/dist/cjs/components/Toast/useToast.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +4 -16
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.styled.js +3 -56
- package/dist/cjs/components/Tooltip/Tooltip.styled.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.types.js.map +1 -1
- package/dist/cjs/features/FeatureProvider.js +4 -3
- package/dist/cjs/features/FeatureProvider.js.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/reactUtils.js +21 -0
- package/dist/cjs/utils/reactUtils.js.map +1 -1
- package/dist/esm/components/Forms/FormControl/FormControl.mjs +2 -2
- package/dist/esm/components/Forms/FormControl/FormControl.mjs.map +1 -1
- package/dist/esm/components/Forms/FormControl/FormControlContext.mjs +3 -3
- package/dist/esm/components/Forms/FormControl/FormControlContext.mjs.map +1 -1
- package/dist/esm/components/Forms/FormGroup/FormGroup.mjs +1 -1
- package/dist/esm/components/Forms/FormGroup/FormGroup.mjs.map +1 -1
- package/dist/esm/components/Forms/FormHelperText/FormHelperText.mjs +1 -1
- package/dist/esm/components/Forms/FormHelperText/FormHelperText.mjs.map +1 -1
- package/dist/esm/components/Forms/FormLabel/FormLabel.mjs +1 -1
- package/dist/esm/components/Forms/FormLabel/FormLabel.mjs.map +1 -1
- package/dist/esm/components/Forms/SegmentedControl/SegmentedControlContext.mjs +3 -15
- package/dist/esm/components/Forms/SegmentedControl/SegmentedControlContext.mjs.map +1 -1
- package/dist/esm/components/Forms/useFormFieldProps.mjs +1 -1
- package/dist/esm/components/Forms/useFormFieldProps.mjs.map +1 -1
- package/dist/esm/components/ListItem/ListItem.styled.mjs +1 -1
- package/dist/esm/components/Modals/Modal/Modal.mjs.map +1 -1
- package/dist/esm/components/Modals/Modal/Modal.types.mjs.map +1 -1
- package/dist/esm/components/Modals/Modal/ModalContent.mjs +2 -2
- package/dist/esm/components/Modals/Modal/ModalContent.mjs.map +1 -1
- package/dist/esm/components/Modals/Modal/ModalContentContext.mjs +3 -4
- package/dist/esm/components/Modals/Modal/ModalContentContext.mjs.map +1 -1
- package/dist/esm/components/Modals/Modal/ModalHeader.mjs +3 -3
- package/dist/esm/components/Modals/Modal/ModalHeader.mjs.map +1 -1
- package/dist/esm/components/OutlineItem/OutlineItem.mjs +2 -3
- package/dist/esm/components/OutlineItem/OutlineItem.mjs.map +1 -1
- package/dist/esm/components/OutlineItem/OutlineItemContext.mjs +8 -3
- package/dist/esm/components/OutlineItem/OutlineItemContext.mjs.map +1 -1
- package/dist/esm/components/Spinner/Spinner.styled.mjs +1 -1
- package/dist/esm/components/Tabs/TabAction.mjs +3 -3
- package/dist/esm/components/Tabs/TabAction.mjs.map +1 -1
- package/dist/esm/components/Tabs/TabItem.mjs +3 -3
- package/dist/esm/components/Tabs/TabItem.mjs.map +1 -1
- package/dist/esm/components/Tabs/TabList.mjs +2 -2
- package/dist/esm/components/Tabs/TabList.mjs.map +1 -1
- package/dist/esm/components/Tabs/TabListContext.mjs +3 -4
- package/dist/esm/components/Tabs/TabListContext.mjs.map +1 -1
- package/dist/esm/components/Toast/ToastContext.mjs +3 -4
- package/dist/esm/components/Toast/ToastContext.mjs.map +1 -1
- package/dist/esm/components/Toast/ToastProvider.mjs +2 -5
- package/dist/esm/components/Toast/ToastProvider.mjs.map +1 -1
- package/dist/esm/components/Toast/useToast.mjs +3 -4
- package/dist/esm/components/Toast/useToast.mjs.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.mjs +4 -16
- package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.styled.mjs +3 -56
- package/dist/esm/components/Tooltip/Tooltip.styled.mjs.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.types.mjs.map +1 -1
- package/dist/esm/features/FeatureProvider.mjs +5 -4
- package/dist/esm/features/FeatureProvider.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/utils/reactUtils.mjs +21 -1
- package/dist/esm/utils/reactUtils.mjs.map +1 -1
- package/dist/types/components/Forms/FormControl/FormControlContext.d.ts +1 -1
- package/dist/types/components/Forms/FormControl/FormControlContext.d.ts.map +1 -1
- package/dist/types/components/Forms/FormControl/index.d.ts +1 -1
- package/dist/types/components/Forms/FormControl/index.d.ts.map +1 -1
- package/dist/types/components/Forms/SegmentedControl/SegmentedControlContext.d.ts +3 -3
- package/dist/types/components/Forms/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
- package/dist/types/components/Forms/index.d.ts +1 -2
- package/dist/types/components/Forms/index.d.ts.map +1 -1
- package/dist/types/components/Forms/useFormFieldProps.d.ts.map +1 -1
- package/dist/types/components/Modals/Modal/Modal.types.d.ts +1 -1
- package/dist/types/components/Modals/Modal/Modal.types.d.ts.map +1 -1
- package/dist/types/components/Modals/Modal/ModalContentContext.d.ts +2 -3
- package/dist/types/components/Modals/Modal/ModalContentContext.d.ts.map +1 -1
- package/dist/types/components/Modals/Modal/ModalHeader.d.ts.map +1 -1
- package/dist/types/components/OutlineItem/OutlineItem.d.ts.map +1 -1
- package/dist/types/components/OutlineItem/OutlineItemContext.d.ts +4 -10
- package/dist/types/components/OutlineItem/OutlineItemContext.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabAction.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabItem.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabListContext.d.ts +1 -2
- package/dist/types/components/Tabs/TabListContext.d.ts.map +1 -1
- package/dist/types/components/Toast/ToastContext.d.ts +1 -2
- package/dist/types/components/Toast/ToastContext.d.ts.map +1 -1
- package/dist/types/components/Toast/ToastProvider.d.ts.map +1 -1
- package/dist/types/components/Toast/useToast.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.styled.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.types.d.ts +3 -3
- package/dist/types/features/FeatureProvider.d.ts.map +1 -1
- package/dist/types/utils/reactUtils.d.ts +14 -0
- package/dist/types/utils/reactUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Forms/FormControl/FormControl.tsx +3 -3
- package/src/components/Forms/FormControl/FormControlContext.ts +5 -2
- package/src/components/Forms/FormControl/index.ts +1 -1
- package/src/components/Forms/FormGroup/FormGroup.tsx +1 -1
- package/src/components/Forms/FormHelperText/FormHelperText.tsx +1 -1
- package/src/components/Forms/FormLabel/FormLabel.tsx +1 -1
- package/src/components/Forms/SegmentedControl/SegmentedControlContext.ts +3 -26
- package/src/components/Forms/Slider/Slider.test.tsx +11 -4
- package/src/components/Forms/index.ts +0 -2
- package/src/components/Forms/useFormFieldProps.ts +1 -2
- package/src/components/KeyValueListItem/KeyValueListItem.test.tsx +4 -1
- package/src/components/Modals/Modal/Modal.stories.tsx +1 -1
- package/src/components/Modals/Modal/Modal.tsx +0 -1
- package/src/components/Modals/Modal/Modal.types.ts +1 -1
- package/src/components/Modals/Modal/ModalContent.tsx +3 -3
- package/src/components/Modals/Modal/ModalContentContext.ts +5 -4
- package/src/components/Modals/Modal/ModalHeader.tsx +3 -6
- package/src/components/OutlineItem/OutlineItem.tsx +6 -4
- package/src/components/OutlineItem/OutlineItemContext.ts +16 -5
- package/src/components/Tabs/TabAction.tsx +3 -6
- package/src/components/Tabs/TabItem.tsx +3 -6
- package/src/components/Tabs/TabList.tsx +3 -3
- package/src/components/Tabs/TabListContext.ts +5 -4
- package/src/components/Toast/ToastContext.ts +5 -5
- package/src/components/Toast/ToastProvider.tsx +3 -5
- package/src/components/Toast/useToast.ts +3 -5
- package/src/components/Tooltip/Tooltip.stories.tsx +2 -2
- package/src/components/Tooltip/Tooltip.styled.ts +0 -77
- package/src/components/Tooltip/Tooltip.test.tsx +8 -2
- package/src/components/Tooltip/Tooltip.tsx +4 -27
- package/src/components/Tooltip/Tooltip.types.ts +3 -3
- package/src/components/Tooltip/index.ts +0 -1
- package/src/features/FeatureProvider.tsx +9 -6
- package/src/utils/reactUtils.ts +41 -0
- package/dist/cjs/components/Forms/useFormControlContext.js +0 -13
- package/dist/cjs/components/Forms/useFormControlContext.js.map +0 -1
- package/dist/cjs/components/OutlineItem/useOutlineItemContext.js +0 -16
- package/dist/cjs/components/OutlineItem/useOutlineItemContext.js.map +0 -1
- package/dist/esm/components/Forms/useFormControlContext.mjs +0 -9
- package/dist/esm/components/Forms/useFormControlContext.mjs.map +0 -1
- package/dist/esm/components/OutlineItem/useOutlineItemContext.mjs +0 -12
- package/dist/esm/components/OutlineItem/useOutlineItemContext.mjs.map +0 -1
- package/dist/types/components/Forms/useFormControlContext.d.ts +0 -3
- package/dist/types/components/Forms/useFormControlContext.d.ts.map +0 -1
- package/dist/types/components/OutlineItem/useOutlineItemContext.d.ts +0 -4
- package/dist/types/components/OutlineItem/useOutlineItemContext.d.ts.map +0 -1
- package/src/components/Forms/useFormControlContext.ts +0 -9
- package/src/components/OutlineItem/useOutlineItemContext.ts +0 -16
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var React = require('react');
|
|
4
3
|
var functionUtils = require('../../utils/functionUtils.js');
|
|
4
|
+
var reactUtils = require('../../utils/reactUtils.js');
|
|
5
5
|
|
|
6
6
|
const defaultOutlineItemContext = {
|
|
7
7
|
depth: 0,
|
|
@@ -20,9 +20,13 @@ function mergeOutlineItemContexts(inherited, props, indent) {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
const
|
|
23
|
+
const [OutlineItemContextProvider, useOutlineItemContextBase] = reactUtils.createContext(defaultOutlineItemContext);
|
|
24
|
+
const useOutlineItemContext = (props, indent) => {
|
|
25
|
+
const inheritedContext = useOutlineItemContextBase() ?? defaultOutlineItemContext;
|
|
26
|
+
const context = mergeOutlineItemContexts(inheritedContext, props, indent);
|
|
27
|
+
return context;
|
|
28
|
+
};
|
|
24
29
|
|
|
25
|
-
exports.
|
|
26
|
-
exports.
|
|
27
|
-
exports.mergeOutlineItemContexts = mergeOutlineItemContexts;
|
|
30
|
+
exports.OutlineItemContextProvider = OutlineItemContextProvider;
|
|
31
|
+
exports.useOutlineItemContext = useOutlineItemContext;
|
|
28
32
|
//# sourceMappingURL=OutlineItemContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutlineItemContext.js","sources":["../../../../src/components/OutlineItem/OutlineItemContext.ts"],"sourcesContent":["import type React from 'react'\nimport {
|
|
1
|
+
{"version":3,"file":"OutlineItemContext.js","sources":["../../../../src/components/OutlineItem/OutlineItemContext.ts"],"sourcesContent":["import type React from 'react'\n\nimport { noop } from '~/src/utils/functionUtils'\nimport { createContext } from '~/src/utils/reactUtils'\n\ninterface OutlineItemContextProps {\n depth: number\n paddingLeft: number\n active: boolean\n onClick: (event?: React.MouseEvent<Element>, name?: string) => void\n}\n\nconst defaultOutlineItemContext = {\n depth: 0,\n paddingLeft: 0,\n active: false,\n onClick: noop,\n}\n\nfunction mergeOutlineItemContexts(\n inherited: OutlineItemContextProps,\n props: Partial<Omit<OutlineItemContextProps, 'depth'>>,\n indent: number,\n): OutlineItemContextProps {\n return {\n depth: inherited.depth + 1,\n paddingLeft: inherited.paddingLeft + (props.paddingLeft ?? 0) + (inherited.depth > 0 ? indent : 0),\n active: props.active ?? inherited.active,\n onClick: (event?: React.MouseEvent<Element>, name?: string) => {\n inherited.onClick(event, name)\n props.onClick?.(event, name)\n },\n }\n}\n\nconst [\n OutlineItemContextProvider,\n useOutlineItemContextBase,\n] = createContext<OutlineItemContextProps>(defaultOutlineItemContext)\n\nexport { OutlineItemContextProvider }\n\nexport const useOutlineItemContext = (props: Partial<Omit<OutlineItemContextProps, 'depth'>>, indent: number) => {\n const inheritedContext = useOutlineItemContextBase() ?? defaultOutlineItemContext\n const context = mergeOutlineItemContexts(inheritedContext, props, indent)\n return context\n}\n"],"names":["defaultOutlineItemContext","depth","paddingLeft","active","onClick","noop","mergeOutlineItemContexts","inherited","props","indent","event","name","OutlineItemContextProvider","useOutlineItemContextBase","createContext","useOutlineItemContext","inheritedContext","context"],"mappings":";;;;;AAYA,MAAMA,yBAAyB,GAAG;AAChCC,EAAAA,KAAK,EAAE,CAAC;AACRC,EAAAA,WAAW,EAAE,CAAC;AACdC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,OAAO,EAAEC,kBAAAA;AACX,CAAC,CAAA;AAED,SAASC,wBAAwBA,CAC/BC,SAAkC,EAClCC,KAAsD,EACtDC,MAAc,EACW;EACzB,OAAO;AACLR,IAAAA,KAAK,EAAEM,SAAS,CAACN,KAAK,GAAG,CAAC;IAC1BC,WAAW,EAAEK,SAAS,CAACL,WAAW,IAAIM,KAAK,CAACN,WAAW,IAAI,CAAC,CAAC,IAAIK,SAAS,CAACN,KAAK,GAAG,CAAC,GAAGQ,MAAM,GAAG,CAAC,CAAC;AAClGN,IAAAA,MAAM,EAAEK,KAAK,CAACL,MAAM,IAAII,SAAS,CAACJ,MAAM;AACxCC,IAAAA,OAAO,EAAEA,CAACM,KAAiC,EAAEC,IAAa,KAAK;AAC7DJ,MAAAA,SAAS,CAACH,OAAO,CAACM,KAAK,EAAEC,IAAI,CAAC,CAAA;AAC9BH,MAAAA,KAAK,CAACJ,OAAO,GAAGM,KAAK,EAAEC,IAAI,CAAC,CAAA;AAC9B,KAAA;GACD,CAAA;AACH,CAAA;AAEM,MAAA,CACJC,0BAA0B,EAC1BC,yBAAyB,CAC1B,GAAGC,wBAAa,CAA0Bd,yBAAyB,EAAC;MAIxDe,qBAAqB,GAAGA,CAACP,KAAsD,EAAEC,MAAc,KAAK;AAC/G,EAAA,MAAMO,gBAAgB,GAAGH,yBAAyB,EAAE,IAAIb,yBAAyB,CAAA;EACjF,MAAMiB,OAAO,GAAGX,wBAAwB,CAACU,gBAAgB,EAAER,KAAK,EAAEC,MAAM,CAAC,CAAA;AACzE,EAAA,OAAOQ,OAAO,CAAA;AAChB;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var Spinner_types = require('./Spinner.types.js');
|
|
4
|
-
var styled = require('styled-components');
|
|
5
4
|
var FoundationStyledComponent = require('../../foundation/FoundationStyledComponent.js');
|
|
5
|
+
var styled = require('styled-components');
|
|
6
6
|
|
|
7
7
|
function getThicknessFromSize(size) {
|
|
8
8
|
switch (size) {
|
|
@@ -41,7 +41,7 @@ const TabAction = /*#__PURE__*/React.forwardRef(function TabAction({
|
|
|
41
41
|
}, forwardedRef) {
|
|
42
42
|
const {
|
|
43
43
|
size
|
|
44
|
-
} =
|
|
44
|
+
} = TabListContext.useTabListContext();
|
|
45
45
|
return typeUtils.isNil(href) ? /*#__PURE__*/React.createElement(TabAction_styled.ToolbarButton, Object.assign({
|
|
46
46
|
size: size,
|
|
47
47
|
onClick: onClick,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabAction.js","sources":["../../../../src/components/Tabs/TabAction.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"TabAction.js","sources":["../../../../src/components/Tabs/TabAction.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { OpenInNewIcon } from '@channel.io/bezier-icons'\n\nimport { Typography } from '~/src/foundation'\n\nimport { isNil } from '~/src/utils/typeUtils'\n\nimport { IconSize } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { useTabListContext } from './TabListContext'\nimport {\n type TabActionElement,\n type TabActionProps,\n TabSize,\n} from './Tabs.types'\n\nimport * as Styled from './TabAction.styled'\n\nconst getTypoBy = (size: TabSize) => {\n switch (size) {\n case TabSize.L:\n return Typography.Size14\n case TabSize.M:\n case TabSize.S:\n default:\n return Typography.Size13\n }\n}\n\nconst getIconSizeBy = (size: TabSize) => {\n switch (size) {\n case TabSize.L:\n return IconSize.S\n default:\n return IconSize.XS\n }\n}\n\n/**\n * `TabAction` is a button for more action to open a new link or navigate to a different url.\n * If it has `href` props, it should act as a link.\n */\nexport const TabAction = forwardRef(function TabAction<Link extends string | undefined>({\n href,\n children,\n onClick,\n ...rest\n}: TabActionProps<Link>, forwardedRef: React.Ref<TabActionElement<Link>>,\n) {\n const { size } = useTabListContext()\n\n return (\n isNil(href) ? (\n <Styled.ToolbarButton\n size={size}\n onClick={onClick}\n ref={forwardedRef}\n {...rest}\n >\n <Text\n bold\n typo={getTypoBy(size)}\n >\n { children }\n </Text>\n </Styled.ToolbarButton>\n ) : (\n <Styled.ToolbarLink\n size={size}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n ref={forwardedRef}\n {...rest}\n >\n <Text\n bold\n typo={getTypoBy(size)}\n >\n { children }\n </Text>\n <Styled.LinkIcon\n source={OpenInNewIcon}\n size={getIconSizeBy(size)}\n />\n </Styled.ToolbarLink>\n )\n )\n})\n"],"names":["getTypoBy","size","TabSize","L","Typography","Size14","M","S","Size13","getIconSizeBy","IconSize","XS","TabAction","forwardRef","href","children","onClick","rest","forwardedRef","useTabListContext","isNil","React","createElement","Styled","Object","assign","ref","Text","bold","typo","target","rel","source","OpenInNewIcon"],"mappings":";;;;;;;;;;;;AAoBA,MAAMA,SAAS,GAAIC,IAAa,IAAK;AACnC,EAAA,QAAQA,IAAI;IACV,KAAKC,kBAAO,CAACC,CAAC;MACZ,OAAOC,qBAAU,CAACC,MAAM,CAAA;IAC1B,KAAKH,kBAAO,CAACI,CAAC,CAAA;IACd,KAAKJ,kBAAO,CAACK,CAAC,CAAA;AACd,IAAA;MACE,OAAOH,qBAAU,CAACI,MAAM,CAAA;AAC5B,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,aAAa,GAAIR,IAAa,IAAK;AACvC,EAAA,QAAQA,IAAI;IACV,KAAKC,kBAAO,CAACC,CAAC;MACZ,OAAOO,mBAAQ,CAACH,CAAC,CAAA;AACnB,IAAA;MACE,OAAOG,mBAAQ,CAACC,EAAE,CAAA;AACtB,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;AACA;MACaC,SAAS,gBAAGC,gBAAU,CAAC,SAASD,SAASA,CAAkC;EACtFE,IAAI;EACJC,QAAQ;EACRC,OAAO;EACP,GAAGC,IAAAA;AACiB,CAAC,EAAEC,YAA+C,EACtE;EACA,MAAM;AAAEjB,IAAAA,IAAAA;GAAM,GAAGkB,gCAAiB,EAAE,CAAA;AAEpC,EAAA,OACEC,eAAK,CAACN,IAAI,CAAC,gBACTO,KAAA,CAAAC,aAAA,CAACC,8BAAoB,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACnBxB,IAAAA,IAAI,EAAEA,IAAK;AACXe,IAAAA,OAAO,EAAEA,OAAQ;AACjBU,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAERI,eAAAA,KAAA,CAAAC,aAAA,CAACK,YAAI,EAAA;IACHC,IAAI,EAAA,IAAA;IACJC,IAAI,EAAE7B,SAAS,CAACC,IAAI,CAAA;AAAE,GAAA,EAEpBc,QACE,CACc,CAAC,gBAEvBM,KAAA,CAAAC,aAAA,CAACC,4BAAkB,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACjBxB,IAAAA,IAAI,EAAEA,IAAK;AACXa,IAAAA,IAAI,EAAEA,IAAK;AACXgB,IAAAA,MAAM,EAAC,QAAQ;AACfC,IAAAA,GAAG,EAAC,qBAAqB;AACzBL,IAAAA,GAAG,EAAER,YAAAA;AAAa,GAAA,EACdD,IAAI,CAERI,eAAAA,KAAA,CAAAC,aAAA,CAACK,YAAI,EAAA;IACHC,IAAI,EAAA,IAAA;IACJC,IAAI,EAAE7B,SAAS,CAACC,IAAI,CAAA;GAElBc,EAAAA,QACE,CAAC,eACPM,KAAA,CAAAC,aAAA,CAACC,yBAAe,EAAA;AACdS,IAAAA,MAAM,EAAEC,yBAAc;IACtBhC,IAAI,EAAEQ,aAAa,CAACR,IAAI,CAAA;AAAE,GAC3B,CACiB,CACrB,CAAA;AAEL,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabItem.js","sources":["../../../../src/components/Tabs/TabItem.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"TabItem.js","sources":["../../../../src/components/Tabs/TabItem.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport * as Tabs from '@radix-ui/react-tabs'\n\nimport {\n ButtonColorVariant,\n ButtonSize,\n ButtonStyleVariant,\n} from '~/src/components/Button'\n\nimport { useTabListContext } from './TabListContext'\nimport {\n type TabItemProps,\n TabSize,\n} from './Tabs.types'\n\nimport * as Styled from './TabItem.styled'\n\nconst getButtonSizeBy = (size: TabSize) => {\n switch (size) {\n case TabSize.L:\n return ButtonSize.L\n case TabSize.M:\n return ButtonSize.M\n default:\n case TabSize.S:\n return ButtonSize.S\n }\n}\n\n/**\n * `TabItem` is a button that activates its associated content.\n */\nexport const TabItem = forwardRef(function TabItem({\n disabled,\n value,\n children,\n ...rest\n}: TabItemProps, forwardedRef: React.Ref<HTMLButtonElement>) {\n const { size } = useTabListContext()\n\n if (typeof children !== 'string') {\n return null\n }\n\n return (\n <Tabs.TabsTrigger\n disabled={disabled}\n value={value}\n asChild\n >\n <Styled.Button\n disabled={disabled}\n text={children}\n size={getButtonSizeBy(size)}\n colorVariant={ButtonColorVariant.MonochromeLight}\n styleVariant={ButtonStyleVariant.Tertiary}\n ref={forwardedRef}\n {...rest}\n />\n </Tabs.TabsTrigger>\n )\n})\n"],"names":["getButtonSizeBy","size","TabSize","L","ButtonSize","M","S","TabItem","forwardRef","disabled","value","children","rest","forwardedRef","useTabListContext","React","createElement","Tabs","asChild","Styled","Object","assign","text","colorVariant","ButtonColorVariant","MonochromeLight","styleVariant","ButtonStyleVariant","Tertiary","ref"],"mappings":";;;;;;;;;AAkBA,MAAMA,eAAe,GAAIC,IAAa,IAAK;AACzC,EAAA,QAAQA,IAAI;IACV,KAAKC,kBAAO,CAACC,CAAC;MACZ,OAAOC,uBAAU,CAACD,CAAC,CAAA;IACrB,KAAKD,kBAAO,CAACG,CAAC;MACZ,OAAOD,uBAAU,CAACC,CAAC,CAAA;AACrB,IAAA,QAAA;IACA,KAAKH,kBAAO,CAACI,CAAC;MACZ,OAAOF,uBAAU,CAACE,CAAC,CAAA;AACvB,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;MACaC,OAAO,gBAAGC,gBAAU,CAAC,SAASD,OAAOA,CAAC;EACjDE,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACR,GAAGC,IAAAA;AACS,CAAC,EAAEC,YAA0C,EAAE;EAC3D,MAAM;AAAEZ,IAAAA,IAAAA;GAAM,GAAGa,gCAAiB,EAAE,CAAA;AAEpC,EAAA,IAAI,OAAOH,QAAQ,KAAK,QAAQ,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAACC,iBAAgB,EAAA;AACfR,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,KAAK,EAAEA,KAAM;IACbQ,OAAO,EAAA,IAAA;GAEPH,eAAAA,KAAA,CAAAC,aAAA,CAACG,qBAAa,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACZZ,IAAAA,QAAQ,EAAEA,QAAS;AACnBa,IAAAA,IAAI,EAAEX,QAAS;AACfV,IAAAA,IAAI,EAAED,eAAe,CAACC,IAAI,CAAE;IAC5BsB,YAAY,EAAEC,+BAAkB,CAACC,eAAgB;IACjDC,YAAY,EAAEC,+BAAkB,CAACC,QAAS;AAC1CC,IAAAA,GAAG,EAAEhB,YAAAA;GACDD,EAAAA,IAAI,CACT,CACe,CAAC,CAAA;AAEvB,CAAC;;;;"}
|
|
@@ -28,7 +28,7 @@ const TabList = /*#__PURE__*/React.forwardRef(function TabList({
|
|
|
28
28
|
const heightContextValue = React.useMemo(() => ({
|
|
29
29
|
size
|
|
30
30
|
}), [size]);
|
|
31
|
-
return /*#__PURE__*/React.createElement(TabListContext.
|
|
31
|
+
return /*#__PURE__*/React.createElement(TabListContext.TabListContextProvider, {
|
|
32
32
|
value: heightContextValue
|
|
33
33
|
}, /*#__PURE__*/React.createElement(TabList_styled.TabList, Object.assign({
|
|
34
34
|
size: size,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabList.js","sources":["../../../../src/components/Tabs/TabList.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useMemo,\n} from 'react'\n\nimport
|
|
1
|
+
{"version":3,"file":"TabList.js","sources":["../../../../src/components/Tabs/TabList.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useMemo,\n} from 'react'\n\nimport { TabListContextProvider } from './TabListContext'\nimport {\n type TabListProps,\n TabSize,\n} from './Tabs.types'\n\nimport * as Styled from './TabList.styled'\n\nconst heightBy = (size: TabSize) => {\n switch (size) {\n case TabSize.L:\n return 53\n case TabSize.M:\n return 45\n case TabSize.S:\n default:\n return 33\n }\n}\n\n/**\n * `TabList` gives size context to its children and decides the layout of `TabItems` and `TabActions`.\n */\nexport const TabList = forwardRef(function TabList({\n children,\n size = TabSize.M,\n ...rest\n}: TabListProps, forwardedRef: React.Ref<HTMLDivElement>) {\n const heightContextValue = useMemo(() => ({\n size,\n }), [size])\n\n return (\n <TabListContextProvider value={heightContextValue}>\n <Styled.TabList\n size={size}\n ref={forwardedRef}\n style={{\n '--bezier-tabs-size': `${heightBy(size)}px`,\n } as React.CSSProperties}\n {...rest}\n >\n { children }\n </Styled.TabList>\n </TabListContextProvider>\n )\n})\n"],"names":["heightBy","size","TabSize","L","M","S","TabList","forwardRef","children","rest","forwardedRef","heightContextValue","useMemo","React","createElement","TabListContextProvider","value","Styled","Object","assign","ref","style"],"mappings":";;;;;;;AAaA,MAAMA,QAAQ,GAAIC,IAAa,IAAK;AAClC,EAAA,QAAQA,IAAI;IACV,KAAKC,kBAAO,CAACC,CAAC;AACZ,MAAA,OAAO,EAAE,CAAA;IACX,KAAKD,kBAAO,CAACE,CAAC;AACZ,MAAA,OAAO,EAAE,CAAA;IACX,KAAKF,kBAAO,CAACG,CAAC,CAAA;AACd,IAAA;AACE,MAAA,OAAO,EAAE,CAAA;AACb,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;MACaC,OAAO,gBAAGC,gBAAU,CAAC,SAASD,OAAOA,CAAC;EACjDE,QAAQ;EACRP,IAAI,GAAGC,kBAAO,CAACE,CAAC;EAChB,GAAGK,IAAAA;AACS,CAAC,EAAEC,YAAuC,EAAE;AACxD,EAAA,MAAMC,kBAAkB,GAAGC,aAAO,CAAC,OAAO;AACxCX,IAAAA,IAAAA;AACF,GAAC,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC,CAAA;AAEX,EAAA,oBACEY,KAAA,CAAAC,aAAA,CAACC,qCAAsB,EAAA;AAACC,IAAAA,KAAK,EAAEL,kBAAAA;GAC7BE,eAAAA,KAAA,CAAAC,aAAA,CAACG,sBAAc,EAAAC,MAAA,CAAAC,MAAA,CAAA;AACblB,IAAAA,IAAI,EAAEA,IAAK;AACXmB,IAAAA,GAAG,EAAEV,YAAa;AAClBW,IAAAA,KAAK,EAAE;AACL,MAAA,oBAAoB,EAAG,CAAA,EAAErB,QAAQ,CAACC,IAAI,CAAE,CAAA,EAAA,CAAA;AAC1C,KAAA;AAAyB,GAAA,EACrBQ,IAAI,CAAA,EAEND,QACY,CACM,CAAC,CAAA;AAE7B,CAAC;;;;"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var React = require('react');
|
|
3
|
+
var reactUtils = require('../../utils/reactUtils.js');
|
|
6
4
|
var Tabs_types = require('./Tabs.types.js');
|
|
7
5
|
|
|
8
|
-
const
|
|
6
|
+
const [TabListContextProvider, useTabListContext] = reactUtils.createContext({
|
|
9
7
|
size: Tabs_types.TabSize.M
|
|
10
8
|
});
|
|
11
|
-
var TabListContext$1 = TabListContext;
|
|
12
9
|
|
|
13
|
-
exports.
|
|
10
|
+
exports.TabListContextProvider = TabListContextProvider;
|
|
11
|
+
exports.useTabListContext = useTabListContext;
|
|
14
12
|
//# sourceMappingURL=TabListContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabListContext.js","sources":["../../../../src/components/Tabs/TabListContext.ts"],"sourcesContent":["import { createContext } from '
|
|
1
|
+
{"version":3,"file":"TabListContext.js","sources":["../../../../src/components/Tabs/TabListContext.ts"],"sourcesContent":["import { createContext } from '~/src/utils/reactUtils'\n\nimport {\n type TabListContextValue,\n TabSize,\n} from './Tabs.types'\n\nexport const [\n TabListContextProvider,\n useTabListContext,\n] = createContext<TabListContextValue>({\n size: TabSize.M,\n})\n"],"names":["TabListContextProvider","useTabListContext","createContext","size","TabSize","M"],"mappings":";;;;;AAOO,MAAM,CACXA,sBAAsB,EACtBC,iBAAiB,CAClB,GAAGC,wBAAa,CAAsB;EACrCC,IAAI,EAAEC,kBAAO,CAACC,CAAAA;AAChB,CAAC;;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var React = require('react');
|
|
6
3
|
var functionUtils = require('../../utils/functionUtils.js');
|
|
4
|
+
var reactUtils = require('../../utils/reactUtils.js');
|
|
7
5
|
|
|
8
|
-
const
|
|
6
|
+
const [ToastContextProvider, useToastContext] = reactUtils.createContext({
|
|
9
7
|
add: () => '',
|
|
10
8
|
update: () => '',
|
|
11
9
|
remove: functionUtils.noop,
|
|
@@ -13,7 +11,7 @@ const ToastContext = /*#__PURE__*/React.createContext({
|
|
|
13
11
|
leftToasts: [],
|
|
14
12
|
rightToasts: []
|
|
15
13
|
});
|
|
16
|
-
var ToastContext$1 = ToastContext;
|
|
17
14
|
|
|
18
|
-
exports.
|
|
15
|
+
exports.ToastContextProvider = ToastContextProvider;
|
|
16
|
+
exports.useToastContext = useToastContext;
|
|
19
17
|
//# sourceMappingURL=ToastContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastContext.js","sources":["../../../../src/components/Toast/ToastContext.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ToastContext.js","sources":["../../../../src/components/Toast/ToastContext.ts"],"sourcesContent":["import { noop } from '~/src/utils/functionUtils'\nimport { createContext } from '~/src/utils/reactUtils'\n\nimport { type ToastContextType } from './Toast.types'\n\nexport const [\n ToastContextProvider,\n useToastContext,\n] = createContext<ToastContextType>({\n add: () => '',\n update: () => '',\n remove: noop,\n removeAll: noop,\n leftToasts: [],\n rightToasts: [],\n})\n"],"names":["ToastContextProvider","useToastContext","createContext","add","update","remove","noop","removeAll","leftToasts","rightToasts"],"mappings":";;;;;AAKO,MAAM,CACXA,oBAAoB,EACpBC,eAAe,CAChB,GAAGC,wBAAa,CAAmB;EAClCC,GAAG,EAAEA,MAAM,EAAE;EACbC,MAAM,EAAEA,MAAM,EAAE;AAChBC,EAAAA,MAAM,EAAEC,kBAAI;AACZC,EAAAA,SAAS,EAAED,kBAAI;AACfE,EAAAA,UAAU,EAAE,EAAE;AACdC,EAAAA,WAAW,EAAE,EAAA;AACf,CAAC;;;;;"}
|
|
@@ -14,9 +14,6 @@ var useToastContextValues = require('./useToastContextValues.js');
|
|
|
14
14
|
var index = require('../../foundation/Transition/index.js');
|
|
15
15
|
var FoundationStyledComponent = require('../../foundation/FoundationStyledComponent.js');
|
|
16
16
|
|
|
17
|
-
const {
|
|
18
|
-
Provider
|
|
19
|
-
} = ToastContext.default;
|
|
20
17
|
function ToastProvider({
|
|
21
18
|
autoDismissTimeout = 3000,
|
|
22
19
|
children = []
|
|
@@ -60,7 +57,7 @@ function ToastProvider({
|
|
|
60
57
|
zIndex: zIndex,
|
|
61
58
|
version: version
|
|
62
59
|
}))), [autoDismissTimeout, dismiss]);
|
|
63
|
-
return /*#__PURE__*/React.createElement(
|
|
60
|
+
return /*#__PURE__*/React.createElement(ToastContext.ToastContextProvider, {
|
|
64
61
|
value: toastContextValue
|
|
65
62
|
}, children, /*#__PURE__*/ReactDOM.createPortal([createContainer(Toast_types.ToastPlacement.BottomLeft, leftToasts), createContainer(Toast_types.ToastPlacement.BottomRight, rightToasts)], domUtils.getRootElement()));
|
|
66
63
|
}
|
|
@@ -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 { getRootElement } from '~/src/utils/domUtils'\n\nimport {\n ToastPlacement,\n type ToastProviderProps,\n type ToastType,\n} from './Toast.types'\nimport ToastContainer from './ToastContainer'\nimport
|
|
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 { 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 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 { 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","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":";;;;;;;;;;;;;;;;AAsBA,SAASA,aAAaA,CAAC;AACrBC,EAAAA,kBAAkB,GAAG,IAAI;AACzBC,EAAAA,QAAQ,GAAG,EAAA;AACO,CAAC,EAAE;AACrB,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;AACjBtB,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCkB,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,CACD1B,kBAAkB,EAClBM,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,oBACEK,KAAA,CAAAC,aAAA,CAACuB,iCAAoB,EAAA;AAACC,IAAAA,KAAK,EAAElC,iBAAAA;AAAkB,GAAA,EAC3CD,QAAQ,eACRoC,qBAAY,CACZ,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;;;;"}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var React = require('react');
|
|
6
5
|
var ToastContext = require('./ToastContext.js');
|
|
7
6
|
|
|
8
7
|
function useToast() {
|
|
9
|
-
const context =
|
|
8
|
+
const context = ToastContext.useToastContext();
|
|
10
9
|
if (!context) {
|
|
11
|
-
throw Error('
|
|
10
|
+
throw Error('\'useToast\' must be used within \'ToastProvider\'');
|
|
12
11
|
}
|
|
13
12
|
return {
|
|
14
13
|
addToast: context.add,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.js","sources":["../../../../src/components/Toast/useToast.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useToast.js","sources":["../../../../src/components/Toast/useToast.ts"],"sourcesContent":["import { useToastContext } from './ToastContext'\n\nexport default function useToast() {\n const context = useToastContext()\n\n if (!context) {\n throw Error('\\'useToast\\' must be used within \\'ToastProvider\\'')\n }\n\n return {\n addToast: context.add,\n updateToast: context.update,\n removeToast: context.remove,\n removeAllToasts: context.removeAll,\n leftToasts: context.leftToasts,\n rightToasts: context.rightToasts,\n }\n}\n"],"names":["useToast","context","useToastContext","Error","addToast","add","updateToast","update","removeToast","remove","removeAllToasts","removeAll","leftToasts","rightToasts"],"mappings":";;;;;;AAEe,SAASA,QAAQA,GAAG;AACjC,EAAA,MAAMC,OAAO,GAAGC,4BAAe,EAAE,CAAA;EAEjC,IAAI,CAACD,OAAO,EAAE;IACZ,MAAME,KAAK,CAAC,oDAAoD,CAAC,CAAA;AACnE,GAAA;EAEA,OAAO;IACLC,QAAQ,EAAEH,OAAO,CAACI,GAAG;IACrBC,WAAW,EAAEL,OAAO,CAACM,MAAM;IAC3BC,WAAW,EAAEP,OAAO,CAACQ,MAAM;IAC3BC,eAAe,EAAET,OAAO,CAACU,SAAS;IAClCC,UAAU,EAAEX,OAAO,CAACW,UAAU;IAC9BC,WAAW,EAAEZ,OAAO,CAACY,WAAAA;GACtB,CAAA;AACH;;;;"}
|
|
@@ -3,23 +3,11 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var index = require('../../node_modules/@radix-ui/react-tooltip/dist/index.js');
|
|
5
5
|
var domUtils = require('../../utils/domUtils.js');
|
|
6
|
+
var reactUtils = require('../../utils/reactUtils.js');
|
|
6
7
|
var typeUtils = require('../../utils/typeUtils.js');
|
|
7
8
|
var Tooltip_types = require('./Tooltip.types.js');
|
|
8
9
|
var Tooltip_styled = require('./Tooltip.styled.js');
|
|
9
10
|
|
|
10
|
-
// TODO: (@ed) Evolve it into a commonly reusable function
|
|
11
|
-
// FIXME: duplicate
|
|
12
|
-
function createContext(providerName, defaultValue) {
|
|
13
|
-
const Context = /*#__PURE__*/React.createContext(defaultValue);
|
|
14
|
-
function useContext(consumerName) {
|
|
15
|
-
const contextValue = React.useContext(Context);
|
|
16
|
-
if (!contextValue) {
|
|
17
|
-
throw new Error(`'${consumerName}' must be used within '${providerName}'`);
|
|
18
|
-
}
|
|
19
|
-
return contextValue;
|
|
20
|
-
}
|
|
21
|
-
return [Context.Provider, useContext];
|
|
22
|
-
}
|
|
23
11
|
function getSideAndAlign(placement) {
|
|
24
12
|
switch (placement) {
|
|
25
13
|
case Tooltip_types.TooltipPosition.TopCenter:
|
|
@@ -94,7 +82,7 @@ const [
|
|
|
94
82
|
/**
|
|
95
83
|
* NOTE: Custom context use because the radix-ui doesn't support `delayHide`.
|
|
96
84
|
*/
|
|
97
|
-
TooltipGlobalContextProvider, useTooltipGlobalContext] = createContext('TooltipProvider'
|
|
85
|
+
TooltipGlobalContextProvider, useTooltipGlobalContext] = reactUtils.createContext(null, 'TooltipProvider');
|
|
98
86
|
|
|
99
87
|
/**
|
|
100
88
|
* `TooltipProvider` is used to globally provide props to child tooltips.
|
|
@@ -110,9 +98,9 @@ TooltipGlobalContextProvider, useTooltipGlobalContext] = createContext('TooltipP
|
|
|
110
98
|
function TooltipProvider({
|
|
111
99
|
children,
|
|
112
100
|
allowHover = false,
|
|
113
|
-
delayShow =
|
|
101
|
+
delayShow = 300,
|
|
114
102
|
delayHide = 0,
|
|
115
|
-
skipDelayShow =
|
|
103
|
+
skipDelayShow = 500
|
|
116
104
|
}) {
|
|
117
105
|
const contextValue = React.useMemo(() => ({
|
|
118
106
|
delayHide
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { document } from '~/src/utils/domUtils'\nimport { isBoolean } from '~/src/utils/typeUtils'\n\nimport {\n TooltipPosition,\n type TooltipProps,\n type TooltipProviderProps,\n} from './Tooltip.types'\n\nimport * as Styled from './Tooltip.styled'\n\n// TODO: (@ed) Evolve it into a commonly reusable function\n// FIXME: duplicate\nfunction createContext<ContextValue>(\n providerName: string,\n defaultValue: ContextValue,\n) {\n const Context = React.createContext<ContextValue>(defaultValue)\n\n function useContext(consumerName: string) {\n const contextValue = React.useContext(Context)\n\n if (!contextValue) {\n throw new Error(`'${consumerName}' must be used within '${providerName}'`)\n }\n\n return contextValue\n }\n\n return [\n Context.Provider,\n useContext,\n ] as const\n}\n\nfunction getSideAndAlign(\n placement: TooltipPosition,\n): Pick<TooltipPrimitive.TooltipContentProps, 'side' | 'align'> {\n switch (placement) {\n case TooltipPosition.TopCenter:\n return {\n side: 'top',\n align: 'center',\n }\n case TooltipPosition.TopLeft:\n return {\n side: 'top',\n align: 'start',\n }\n case TooltipPosition.TopRight:\n return {\n side: 'top',\n align: 'end',\n }\n case TooltipPosition.RightCenter:\n return {\n side: 'right',\n align: 'center',\n }\n case TooltipPosition.RightTop:\n return {\n side: 'right',\n align: 'start',\n }\n case TooltipPosition.RightBottom:\n return {\n side: 'right',\n align: 'end',\n }\n case TooltipPosition.BottomCenter:\n return {\n side: 'bottom',\n align: 'center',\n }\n case TooltipPosition.BottomLeft:\n return {\n side: 'bottom',\n align: 'start',\n }\n case TooltipPosition.BottomRight:\n return {\n side: 'bottom',\n align: 'end',\n }\n case TooltipPosition.LeftCenter:\n return {\n side: 'left',\n align: 'center',\n }\n case TooltipPosition.LeftTop:\n return {\n side: 'left',\n align: 'start',\n }\n case TooltipPosition.LeftBottom:\n return {\n side: 'left',\n align: 'end',\n }\n default:\n // NOTE: should not reach here\n return {\n side: undefined,\n align: undefined,\n }\n }\n}\n\nconst [\n /**\n * NOTE: Custom context use because the radix-ui doesn't support `delayHide`.\n */\n TooltipGlobalContextProvider,\n useTooltipGlobalContext,\n] = createContext<Required<Pick<TooltipProviderProps, 'delayHide'>> | null>('TooltipProvider', null)\n\n/**\n * `TooltipProvider` is used to globally provide props to child tooltips.\n *\n * @example\n *\n * ```tsx\n * <TooltipProvider allowHover delayShow={1000}>\n * <Tooltip />\n * </TooltipProvider>\n * ```\n */\nexport function TooltipProvider({\n children,\n allowHover = false,\n delayShow = 0,\n delayHide = 0,\n skipDelayShow = 0,\n}: TooltipProviderProps) {\n const contextValue = useMemo(() => ({\n delayHide,\n }), [delayHide])\n\n return (\n <TooltipPrimitive.Provider\n delayDuration={delayShow}\n skipDelayDuration={skipDelayShow}\n disableHoverableContent={!allowHover}\n >\n <TooltipGlobalContextProvider value={contextValue}>\n { children }\n </TooltipGlobalContextProvider>\n </TooltipPrimitive.Provider>\n )\n}\n\n/**\n * `Tooltip` is a component that shows additional information when the mouse hovers or the keyboard is focused.\n *\n * @example\n *\n * ```tsx\n * // Anatomy of the Tooltip\n * <TooltipProvider>\n * <Tooltip />\n * </TooltipProvider>\n *\n * // Example of a Tooltip with a button\n * <Tooltip content=\"Ta-da!\">\n * <button>Hover me</button>\n * </Tooltip>\n * ```\n */\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(function Tooltip({\n as,\n children,\n defaultShow,\n onShow: onShowProp,\n onHide: onHideProp,\n disabled,\n content,\n description,\n icon,\n placement = TooltipPosition.BottomCenter,\n offset = 4,\n container = document.body,\n keepInContainer = true,\n allowHover,\n delayShow,\n delayHide: delayHideProp,\n ...rest\n}, forwardedRef) {\n const [show, setShow] = useState<boolean>(defaultShow ?? false)\n const timeoutRef = useRef<NodeJS.Timeout>()\n const { delayHide: globalDelayHide } = useTooltipGlobalContext('Tooltip')\n\n const delayHide = delayHideProp ?? globalDelayHide\n\n useEffect(function cleanUpTimeout() {\n return function cleanUp() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onShow = useCallback(() => {\n setShow(true)\n onShowProp?.()\n }, [onShowProp])\n\n const onHide = useCallback(() => {\n setShow(false)\n onHideProp?.()\n }, [onHideProp])\n\n const onOpenChange = useCallback((open: boolean) => {\n if (disabled) { return }\n\n if (open) {\n onShow()\n return\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = undefined\n }\n\n if (delayHide > 0) {\n timeoutRef.current = setTimeout(() => {\n onHide()\n }, delayHide)\n return\n }\n\n onHide()\n }, [\n disabled,\n delayHide,\n onShow,\n onHide,\n ])\n\n return (\n <TooltipPrimitive.Root\n open={show}\n defaultOpen={defaultShow}\n delayDuration={delayShow}\n disableHoverableContent={isBoolean(allowHover) ? !allowHover : undefined}\n onOpenChange={onOpenChange}\n >\n <TooltipPrimitive.Trigger asChild>\n { children }\n </TooltipPrimitive.Trigger>\n\n <TooltipPrimitive.Portal container={container}>\n <TooltipPrimitive.Content\n {...rest}\n {...getSideAndAlign(placement)}\n asChild\n ref={forwardedRef}\n sideOffset={offset}\n avoidCollisions={keepInContainer}\n collisionPadding={8}\n hideWhenDetached\n >\n <Styled.TooltipContent forwardedAs={as}>\n <Styled.TextContainer>\n <Styled.Content>\n { content }\n </Styled.Content>\n\n { description && (\n <Styled.Description>\n { description }\n </Styled.Description>\n ) }\n </Styled.TextContainer>\n\n { icon && (\n <Styled.Icon source={icon} />\n ) }\n </Styled.TooltipContent>\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n )\n})\n"],"names":["createContext","providerName","defaultValue","Context","React","useContext","consumerName","contextValue","Error","Provider","getSideAndAlign","placement","TooltipPosition","TopCenter","side","align","TopLeft","TopRight","RightCenter","RightTop","RightBottom","BottomCenter","BottomLeft","BottomRight","LeftCenter","LeftTop","LeftBottom","undefined","TooltipGlobalContextProvider","useTooltipGlobalContext","TooltipProvider","children","allowHover","delayShow","delayHide","skipDelayShow","useMemo","createElement","TooltipPrimitive","delayDuration","skipDelayDuration","disableHoverableContent","value","Tooltip","forwardRef","as","defaultShow","onShow","onShowProp","onHide","onHideProp","disabled","content","description","icon","offset","container","document","body","keepInContainer","delayHideProp","rest","forwardedRef","show","setShow","useState","timeoutRef","useRef","globalDelayHide","useEffect","cleanUpTimeout","cleanUp","current","clearTimeout","useCallback","onOpenChange","open","setTimeout","defaultOpen","isBoolean","asChild","Object","assign","ref","sideOffset","avoidCollisions","collisionPadding","hideWhenDetached","Styled","forwardedAs","source"],"mappings":";;;;;;;;;AAsBA;AACA;AACA,SAASA,aAAaA,CACpBC,YAAoB,EACpBC,YAA0B,EAC1B;AACA,EAAA,MAAMC,OAAO,gBAAGC,KAAK,CAACJ,aAAa,CAAeE,YAAY,CAAC,CAAA;EAE/D,SAASG,UAAUA,CAACC,YAAoB,EAAE;AACxC,IAAA,MAAMC,YAAY,GAAGH,KAAK,CAACC,UAAU,CAACF,OAAO,CAAC,CAAA;IAE9C,IAAI,CAACI,YAAY,EAAE;MACjB,MAAM,IAAIC,KAAK,CAAE,CAAA,CAAA,EAAGF,YAAa,CAAyBL,uBAAAA,EAAAA,YAAa,GAAE,CAAC,CAAA;AAC5E,KAAA;AAEA,IAAA,OAAOM,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,OAAO,CACLJ,OAAO,CAACM,QAAQ,EAChBJ,UAAU,CACX,CAAA;AACH,CAAA;AAEA,SAASK,eAAeA,CACtBC,SAA0B,EACoC;AAC9D,EAAA,QAAQA,SAAS;IACf,KAAKC,6BAAe,CAACC,SAAS;MAC5B,OAAO;AACLC,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACI,OAAO;MAC1B,OAAO;AACLF,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACK,QAAQ;MAC3B,OAAO;AACLH,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACM,WAAW;MAC9B,OAAO;AACLJ,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACO,QAAQ;MAC3B,OAAO;AACLL,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACQ,WAAW;MAC9B,OAAO;AACLN,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACS,YAAY;MAC/B,OAAO;AACLP,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACU,UAAU;MAC7B,OAAO;AACLR,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACW,WAAW;MAC9B,OAAO;AACLT,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACY,UAAU;MAC7B,OAAO;AACLV,QAAAA,IAAI,EAAE,MAAM;AACZC,QAAAA,KAAK,EAAE,QAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACa,OAAO;MAC1B,OAAO;AACLX,QAAAA,IAAI,EAAE,MAAM;AACZC,QAAAA,KAAK,EAAE,OAAA;OACR,CAAA;IACH,KAAKH,6BAAe,CAACc,UAAU;MAC7B,OAAO;AACLZ,QAAAA,IAAI,EAAE,MAAM;AACZC,QAAAA,KAAK,EAAE,KAAA;OACR,CAAA;AACH,IAAA;AACE;MACA,OAAO;AACLD,QAAAA,IAAI,EAAEa,SAAS;AACfZ,QAAAA,KAAK,EAAEY,SAAAA;OACR,CAAA;AACL,GAAA;AACF,CAAA;AAEA,MAAM;AACJ;AACF;AACA;AACEC,4BAA4B,EAC5BC,uBAAuB,CACxB,GAAG7B,aAAa,CAA2D,iBAAiB,EAAE,IAAI,CAAC,CAAA;;AAEpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS8B,eAAeA,CAAC;EAC9BC,QAAQ;AACRC,EAAAA,UAAU,GAAG,KAAK;AAClBC,EAAAA,SAAS,GAAG,CAAC;AACbC,EAAAA,SAAS,GAAG,CAAC;AACbC,EAAAA,aAAa,GAAG,CAAA;AACI,CAAC,EAAE;AACvB,EAAA,MAAM5B,YAAY,GAAG6B,aAAO,CAAC,OAAO;AAClCF,IAAAA,SAAAA;AACF,GAAC,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC,CAAA;AAEhB,EAAA,oBACE9B,KAAA,CAAAiC,aAAA,CAACC,cAAyB,EAAA;AACxBC,IAAAA,aAAa,EAAEN,SAAU;AACzBO,IAAAA,iBAAiB,EAAEL,aAAc;AACjCM,IAAAA,uBAAuB,EAAE,CAACT,UAAAA;AAAW,GAAA,eAErC5B,KAAA,CAAAiC,aAAA,CAACT,4BAA4B,EAAA;AAACc,IAAAA,KAAK,EAAEnC,YAAAA;GACjCwB,EAAAA,QAC0B,CACL,CAAC,CAAA;AAEhC,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaY,OAAO,gBAAGC,gBAAU,CAA+B,SAASD,OAAOA,CAAC;EAC/EE,EAAE;EACFd,QAAQ;EACRe,WAAW;AACXC,EAAAA,MAAM,EAAEC,UAAU;AAClBC,EAAAA,MAAM,EAAEC,UAAU;EAClBC,QAAQ;EACRC,OAAO;EACPC,WAAW;EACXC,IAAI;EACJ3C,SAAS,GAAGC,6BAAe,CAACS,YAAY;AACxCkC,EAAAA,MAAM,GAAG,CAAC;EACVC,SAAS,GAAGC,iBAAQ,CAACC,IAAI;AACzBC,EAAAA,eAAe,GAAG,IAAI;EACtB3B,UAAU;EACVC,SAAS;AACTC,EAAAA,SAAS,EAAE0B,aAAa;EACxB,GAAGC,IAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;EACf,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,cAAQ,CAAUnB,WAAW,IAAI,KAAK,CAAC,CAAA;AAC/D,EAAA,MAAMoB,UAAU,GAAGC,YAAM,EAAkB,CAAA;EAC3C,MAAM;AAAEjC,IAAAA,SAAS,EAAEkC,eAAAA;AAAgB,GAAC,GAAGvC,uBAAuB,CAAC,SAAS,CAAC,CAAA;AAEzE,EAAA,MAAMK,SAAS,GAAG0B,aAAa,IAAIQ,eAAe,CAAA;AAElDC,EAAAA,eAAS,CAAC,SAASC,cAAcA,GAAG;IAClC,OAAO,SAASC,OAAOA,GAAG;MACxB,IAAIL,UAAU,CAACM,OAAO,EAAE;AACtBC,QAAAA,YAAY,CAACP,UAAU,CAACM,OAAO,CAAC,CAAA;AAClC,OAAA;KACD,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMzB,MAAM,GAAG2B,iBAAW,CAAC,MAAM;IAC/BV,OAAO,CAAC,IAAI,CAAC,CAAA;AACbhB,IAAAA,UAAU,IAAI,CAAA;AAChB,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB,EAAA,MAAMC,MAAM,GAAGyB,iBAAW,CAAC,MAAM;IAC/BV,OAAO,CAAC,KAAK,CAAC,CAAA;AACdd,IAAAA,UAAU,IAAI,CAAA;AAChB,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB,EAAA,MAAMyB,YAAY,GAAGD,iBAAW,CAAEE,IAAa,IAAK;AAClD,IAAA,IAAIzB,QAAQ,EAAE;AAAE,MAAA,OAAA;AAAO,KAAA;AAEvB,IAAA,IAAIyB,IAAI,EAAE;AACR7B,MAAAA,MAAM,EAAE,CAAA;AACR,MAAA,OAAA;AACF,KAAA;IAEA,IAAImB,UAAU,CAACM,OAAO,EAAE;AACtBC,MAAAA,YAAY,CAACP,UAAU,CAACM,OAAO,CAAC,CAAA;MAChCN,UAAU,CAACM,OAAO,GAAG7C,SAAS,CAAA;AAChC,KAAA;IAEA,IAAIO,SAAS,GAAG,CAAC,EAAE;AACjBgC,MAAAA,UAAU,CAACM,OAAO,GAAGK,UAAU,CAAC,MAAM;AACpC5B,QAAAA,MAAM,EAAE,CAAA;OACT,EAAEf,SAAS,CAAC,CAAA;AACb,MAAA,OAAA;AACF,KAAA;AAEAe,IAAAA,MAAM,EAAE,CAAA;GACT,EAAE,CACDE,QAAQ,EACRjB,SAAS,EACTa,MAAM,EACNE,MAAM,CACP,CAAC,CAAA;AAEF,EAAA,oBACE7C,KAAA,CAAAiC,aAAA,CAACC,UAAqB,EAAA;AACpBsC,IAAAA,IAAI,EAAEb,IAAK;AACXe,IAAAA,WAAW,EAAEhC,WAAY;AACzBP,IAAAA,aAAa,EAAEN,SAAU;IACzBQ,uBAAuB,EAAEsC,mBAAS,CAAC/C,UAAU,CAAC,GAAG,CAACA,UAAU,GAAGL,SAAU;AACzEgD,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAAA,eAE3BvE,KAAA,CAAAiC,aAAA,CAACC,aAAwB,EAAA;IAAC0C,OAAO,EAAA,IAAA;GAC7BjD,EAAAA,QACsB,CAAC,eAE3B3B,KAAA,CAAAiC,aAAA,CAACC,YAAuB,EAAA;AAACkB,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,eAC5CpD,KAAA,CAAAiC,aAAA,CAACC,aAAwB,EAAA2C,MAAA,CAAAC,MAAA,CACnBrB,EAAAA,EAAAA,IAAI,EACJnD,eAAe,CAACC,SAAS,CAAC,EAAA;IAC9BqE,OAAO,EAAA,IAAA;AACPG,IAAAA,GAAG,EAAErB,YAAa;AAClBsB,IAAAA,UAAU,EAAE7B,MAAO;AACnB8B,IAAAA,eAAe,EAAE1B,eAAgB;AACjC2B,IAAAA,gBAAgB,EAAE,CAAE;IACpBC,gBAAgB,EAAA,IAAA;AAAA,GAAA,CAAA,eAEhBnF,KAAA,CAAAiC,aAAA,CAACmD,6BAAqB,EAAA;AAACC,IAAAA,WAAW,EAAE5C,EAAAA;AAAG,GAAA,eACrCzC,KAAA,CAAAiC,aAAA,CAACmD,4BAAoB,EACnBpF,IAAAA,eAAAA,KAAA,CAAAiC,aAAA,CAACmD,sBAAc,EACXpC,IAAAA,EAAAA,OACY,CAAC,EAEfC,WAAW,iBACXjD,KAAA,CAAAiC,aAAA,CAACmD,0BAAkB,QACfnC,WACgB,CAEF,CAAC,EAErBC,IAAI,iBACJlD,KAAA,CAAAiC,aAAA,CAACmD,mBAAW,EAAA;AAACE,IAAAA,MAAM,EAAEpC,IAAAA;AAAK,GAAE,CAET,CACC,CACH,CACJ,CAAC,CAAA;AAE5B,CAAC;;;;;"}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { document } from '~/src/utils/domUtils'\nimport { createContext } from '~/src/utils/reactUtils'\nimport { isBoolean } from '~/src/utils/typeUtils'\n\nimport {\n TooltipPosition,\n type TooltipProps,\n type TooltipProviderProps,\n} from './Tooltip.types'\n\nimport * as Styled from './Tooltip.styled'\n\nfunction getSideAndAlign(\n placement: TooltipPosition,\n): Pick<TooltipPrimitive.TooltipContentProps, 'side' | 'align'> {\n switch (placement) {\n case TooltipPosition.TopCenter:\n return {\n side: 'top',\n align: 'center',\n }\n case TooltipPosition.TopLeft:\n return {\n side: 'top',\n align: 'start',\n }\n case TooltipPosition.TopRight:\n return {\n side: 'top',\n align: 'end',\n }\n case TooltipPosition.RightCenter:\n return {\n side: 'right',\n align: 'center',\n }\n case TooltipPosition.RightTop:\n return {\n side: 'right',\n align: 'start',\n }\n case TooltipPosition.RightBottom:\n return {\n side: 'right',\n align: 'end',\n }\n case TooltipPosition.BottomCenter:\n return {\n side: 'bottom',\n align: 'center',\n }\n case TooltipPosition.BottomLeft:\n return {\n side: 'bottom',\n align: 'start',\n }\n case TooltipPosition.BottomRight:\n return {\n side: 'bottom',\n align: 'end',\n }\n case TooltipPosition.LeftCenter:\n return {\n side: 'left',\n align: 'center',\n }\n case TooltipPosition.LeftTop:\n return {\n side: 'left',\n align: 'start',\n }\n case TooltipPosition.LeftBottom:\n return {\n side: 'left',\n align: 'end',\n }\n default:\n // NOTE: should not reach here\n return {\n side: undefined,\n align: undefined,\n }\n }\n}\n\nconst [\n /**\n * NOTE: Custom context use because the radix-ui doesn't support `delayHide`.\n */\n TooltipGlobalContextProvider,\n useTooltipGlobalContext,\n] = createContext<Required<Pick<TooltipProviderProps, 'delayHide'>> | null>(null, 'TooltipProvider')\n\n/**\n * `TooltipProvider` is used to globally provide props to child tooltips.\n *\n * @example\n *\n * ```tsx\n * <TooltipProvider allowHover delayShow={1000}>\n * <Tooltip />\n * </TooltipProvider>\n * ```\n */\nexport function TooltipProvider({\n children,\n allowHover = false,\n delayShow = 300,\n delayHide = 0,\n skipDelayShow = 500,\n}: TooltipProviderProps) {\n const contextValue = useMemo(() => ({\n delayHide,\n }), [delayHide])\n\n return (\n <TooltipPrimitive.Provider\n delayDuration={delayShow}\n skipDelayDuration={skipDelayShow}\n disableHoverableContent={!allowHover}\n >\n <TooltipGlobalContextProvider value={contextValue}>\n { children }\n </TooltipGlobalContextProvider>\n </TooltipPrimitive.Provider>\n )\n}\n\n/**\n * `Tooltip` is a component that shows additional information when the mouse hovers or the keyboard is focused.\n *\n * @example\n *\n * ```tsx\n * // Anatomy of the Tooltip\n * <TooltipProvider>\n * <Tooltip />\n * </TooltipProvider>\n *\n * // Example of a Tooltip with a button\n * <Tooltip content=\"Ta-da!\">\n * <button>Hover me</button>\n * </Tooltip>\n * ```\n */\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(function Tooltip({\n as,\n children,\n defaultShow,\n onShow: onShowProp,\n onHide: onHideProp,\n disabled,\n content,\n description,\n icon,\n placement = TooltipPosition.BottomCenter,\n offset = 4,\n container = document.body,\n keepInContainer = true,\n allowHover,\n delayShow,\n delayHide: delayHideProp,\n ...rest\n}, forwardedRef) {\n const [show, setShow] = useState<boolean>(defaultShow ?? false)\n const timeoutRef = useRef<NodeJS.Timeout>()\n const { delayHide: globalDelayHide } = useTooltipGlobalContext('Tooltip')\n\n const delayHide = delayHideProp ?? globalDelayHide\n\n useEffect(function cleanUpTimeout() {\n return function cleanUp() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onShow = useCallback(() => {\n setShow(true)\n onShowProp?.()\n }, [onShowProp])\n\n const onHide = useCallback(() => {\n setShow(false)\n onHideProp?.()\n }, [onHideProp])\n\n const onOpenChange = useCallback((open: boolean) => {\n if (disabled) { return }\n\n if (open) {\n onShow()\n return\n }\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = undefined\n }\n\n if (delayHide > 0) {\n timeoutRef.current = setTimeout(() => {\n onHide()\n }, delayHide)\n return\n }\n\n onHide()\n }, [\n disabled,\n delayHide,\n onShow,\n onHide,\n ])\n\n return (\n <TooltipPrimitive.Root\n open={show}\n defaultOpen={defaultShow}\n delayDuration={delayShow}\n disableHoverableContent={isBoolean(allowHover) ? !allowHover : undefined}\n onOpenChange={onOpenChange}\n >\n <TooltipPrimitive.Trigger asChild>\n { children }\n </TooltipPrimitive.Trigger>\n\n <TooltipPrimitive.Portal container={container}>\n <TooltipPrimitive.Content\n {...rest}\n {...getSideAndAlign(placement)}\n asChild\n ref={forwardedRef}\n sideOffset={offset}\n avoidCollisions={keepInContainer}\n collisionPadding={8}\n hideWhenDetached\n >\n <Styled.TooltipContent forwardedAs={as}>\n <Styled.TextContainer>\n <Styled.Content>\n { content }\n </Styled.Content>\n\n { description && (\n <Styled.Description>\n { description }\n </Styled.Description>\n ) }\n </Styled.TextContainer>\n\n { icon && (\n <Styled.Icon source={icon} />\n ) }\n </Styled.TooltipContent>\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n )\n})\n"],"names":["getSideAndAlign","placement","TooltipPosition","TopCenter","side","align","TopLeft","TopRight","RightCenter","RightTop","RightBottom","BottomCenter","BottomLeft","BottomRight","LeftCenter","LeftTop","LeftBottom","undefined","TooltipGlobalContextProvider","useTooltipGlobalContext","createContext","TooltipProvider","children","allowHover","delayShow","delayHide","skipDelayShow","contextValue","useMemo","React","createElement","TooltipPrimitive","delayDuration","skipDelayDuration","disableHoverableContent","value","Tooltip","forwardRef","as","defaultShow","onShow","onShowProp","onHide","onHideProp","disabled","content","description","icon","offset","container","document","body","keepInContainer","delayHideProp","rest","forwardedRef","show","setShow","useState","timeoutRef","useRef","globalDelayHide","useEffect","cleanUpTimeout","cleanUp","current","clearTimeout","useCallback","onOpenChange","open","setTimeout","defaultOpen","isBoolean","asChild","Object","assign","ref","sideOffset","avoidCollisions","collisionPadding","hideWhenDetached","Styled","forwardedAs","source"],"mappings":"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"}
|
|
@@ -2,77 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
var ZIndex = require('../../constants/ZIndex.js');
|
|
4
4
|
var Text = require('../Text/Text.js');
|
|
5
|
-
var FoundationStyledComponent = require('../../foundation/FoundationStyledComponent.js');
|
|
6
5
|
var AlphaStack = require('../AlphaStack/AlphaStack.js');
|
|
7
6
|
var Typography = require('../../foundation/Typography.js');
|
|
8
7
|
var Icon$1 = require('../Icon/Icon.js');
|
|
9
8
|
var Icon_types = require('../Icon/Icon.types.js');
|
|
10
|
-
var
|
|
11
|
-
var styled = require('styled-components');
|
|
9
|
+
var FoundationStyledComponent = require('../../foundation/FoundationStyledComponent.js');
|
|
12
10
|
var Mixins = require('../../foundation/Mixins.js');
|
|
13
11
|
|
|
14
|
-
const fadeIn = styled.keyframes`
|
|
15
|
-
from {
|
|
16
|
-
opacity: 0;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
to {
|
|
20
|
-
opacity: 1;
|
|
21
|
-
}
|
|
22
|
-
`;
|
|
23
|
-
const SLIDE_OFFSET = 2;
|
|
24
|
-
const slideUp = styled.keyframes`
|
|
25
|
-
from {
|
|
26
|
-
transform: translateY(${SLIDE_OFFSET}px);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
to {
|
|
30
|
-
transform: translateY(0);
|
|
31
|
-
}
|
|
32
|
-
`;
|
|
33
|
-
const slideRight = styled.keyframes`
|
|
34
|
-
from {
|
|
35
|
-
transform: translateX(-${SLIDE_OFFSET}px);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
to {
|
|
39
|
-
transform: translateX(0);
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
const slideDown = styled.keyframes`
|
|
43
|
-
from {
|
|
44
|
-
transform: translateY(-${SLIDE_OFFSET}px);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
to {
|
|
48
|
-
transform: translateY(0);
|
|
49
|
-
}
|
|
50
|
-
`;
|
|
51
|
-
const slideLeft = styled.keyframes`
|
|
52
|
-
from {
|
|
53
|
-
transform: translateX(${SLIDE_OFFSET}px);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
to {
|
|
57
|
-
transform: translateX(0);
|
|
58
|
-
}
|
|
59
|
-
`;
|
|
60
|
-
const getSlideAnimation = frames => FoundationStyledComponent.css`
|
|
61
|
-
animation-name: ${() => frames}, ${() => fadeIn};
|
|
62
|
-
animation-duration: ${index.TransitionDuration.M}ms;
|
|
63
|
-
animation-timing-function: cubic-bezier(0.3, 0, 0, 1);
|
|
64
|
-
`;
|
|
65
12
|
const TooltipContent = /*#__PURE__*/FoundationStyledComponent.styled(AlphaStack.AlphaStack).attrs({
|
|
66
13
|
direction: 'horizontal',
|
|
67
14
|
spacing: 4
|
|
68
15
|
}).withConfig({
|
|
69
16
|
displayName: "Tooltipstyled__TooltipContent",
|
|
70
17
|
componentId: "sc-51cb65-0"
|
|
71
|
-
})(["z-index:", ";box-sizing:border-box;width:max-content;max-width:260px;height:max-content;padding:5px 8px;word-break:normal;word-wrap:break-word;", ";", "
|
|
18
|
+
})(["z-index:", ";box-sizing:border-box;width:max-content;max-width:260px;height:max-content;padding:5px 8px;word-break:normal;word-wrap:break-word;", ";", ";", ""], ZIndex.ZIndex.Tooltip, ({
|
|
72
19
|
foundation
|
|
73
20
|
}) => foundation?.elevation?.ev3(true), ({
|
|
74
21
|
foundation
|
|
75
|
-
}) => foundation?.rounding?.round8,
|
|
22
|
+
}) => foundation?.rounding?.round8, ({
|
|
76
23
|
interpolation
|
|
77
24
|
}) => interpolation);
|
|
78
25
|
const TextContainer = /*#__PURE__*/FoundationStyledComponent.styled.div.withConfig({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.styled.js","sources":["../../../../src/components/Tooltip/Tooltip.styled.ts"],"sourcesContent":["import {\n LineHeightAbsoluteNumber,\n
|
|
1
|
+
{"version":3,"file":"Tooltip.styled.js","sources":["../../../../src/components/Tooltip/Tooltip.styled.ts"],"sourcesContent":["import {\n LineHeightAbsoluteNumber,\n Typography,\n ellipsis,\n styled,\n} from '~/src/foundation'\n\nimport { ZIndex } from '~/src/constants/ZIndex'\n\nimport { AlphaStack } from '~/src/components/AlphaStack'\nimport {\n Icon as BaseIcon,\n IconSize,\n} from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type TooltipProps } from './Tooltip.types'\n\nexport const TooltipContent = styled(AlphaStack).attrs({\n direction: 'horizontal',\n spacing: 4,\n})<TooltipProps>`\n z-index: ${ZIndex.Tooltip};\n\n box-sizing: border-box;\n width: max-content;\n max-width: 260px;\n height: max-content;\n padding: 5px 8px;\n word-break: normal;\n word-wrap: break-word;\n\n ${({ foundation }) => foundation?.elevation?.ev3(true)};\n ${({ foundation }) => foundation?.rounding?.round8};\n\n ${({ interpolation }) => interpolation}\n`\n\nexport const TextContainer = styled.div`\n overflow: hidden;\n`\n\nexport const Content = styled(Text).attrs({ typo: Typography.Size13 })`\n color: ${({ foundation }) => foundation?.subTheme?.['txt-black-darkest']};\n /* NOTE: Line height of Typography.Size13 */\n ${ellipsis(20, LineHeightAbsoluteNumber.Lh18)}\n white-space: pre-wrap;\n`\n\nexport const Description = styled(Text).attrs({ typo: Typography.Size12 })`\n color: ${({ foundation }) => foundation?.subTheme?.['txt-black-dark']};\n`\n\nexport const Icon = styled(BaseIcon).attrs({\n size: IconSize.XS,\n})`\n padding: 1px;\n color: ${({ foundation }) => foundation?.subTheme?.['txt-black-darkest']};\n`\n"],"names":["TooltipContent","styled","AlphaStack","attrs","direction","spacing","withConfig","displayName","componentId","ZIndex","Tooltip","foundation","elevation","ev3","rounding","round8","interpolation","TextContainer","div","Content","Text","typo","Typography","Size13","subTheme","ellipsis","LineHeightAbsoluteNumber","Lh18","Description","Size12","Icon","BaseIcon","size","IconSize","XS"],"mappings":";;;;;;;;;;;AAkBO,MAAMA,cAAc,gBAAGC,gCAAM,CAACC,qBAAU,CAAC,CAACC,KAAK,CAAC;AACrDC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,OAAO,EAAE,CAAA;AACX,CAAC,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,+BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,UAAA,EAAA,qIAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EACWC,aAAM,CAACC,OAAO,EAUvB,CAAC;AAAEC,EAAAA,UAAAA;AAAW,CAAC,KAAKA,UAAU,EAAEC,SAAS,EAAEC,GAAG,CAAC,IAAI,CAAC,EACpD,CAAC;AAAEF,EAAAA,UAAAA;AAAW,CAAC,KAAKA,UAAU,EAAEG,QAAQ,EAAEC,MAAM,EAEhD,CAAC;AAAEC,EAAAA,aAAAA;AAAc,CAAC,KAAKA,aAAa,EACvC;MAEYC,aAAa,gBAAGhB,gCAAM,CAACiB,GAAG,CAAAZ,UAAA,CAAA;EAAAC,WAAA,EAAA,8BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAEtC,CAAA,CAAA,CAAA,kBAAA,CAAA,EAAA;AAEM,MAAMW,OAAO,gBAAGlB,gCAAM,CAACmB,YAAI,CAAC,CAACjB,KAAK,CAAC;EAAEkB,IAAI,EAAEC,qBAAU,CAACC,MAAAA;AAAO,CAAC,CAAC,CAAAjB,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,GAAA,EAAA,wBAAA,CAAA,EAC3D,CAAC;AAAEG,EAAAA,UAAAA;AAAW,CAAC,KAAKA,UAAU,EAAEa,QAAQ,GAAG,mBAAmB,CAAC,EAEtEC,eAAQ,CAAC,EAAE,EAAEC,mCAAwB,CAACC,IAAI,CAAC,EAE9C;AAEM,MAAMC,WAAW,gBAAG3B,gCAAM,CAACmB,YAAI,CAAC,CAACjB,KAAK,CAAC;EAAEkB,IAAI,EAAEC,qBAAU,CAACO,MAAAA;AAAO,CAAC,CAAC,CAAAvB,UAAA,CAAA;EAAAC,WAAA,EAAA,4BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,GAAA,CAAA,EAC/D,CAAC;AAAEG,EAAAA,UAAAA;AAAW,CAAC,KAAKA,UAAU,EAAEa,QAAQ,GAAG,gBAAgB,CAAC,EACtE;AAEM,MAAMM,IAAI,gBAAG7B,gCAAM,CAAC8B,WAAQ,CAAC,CAAC5B,KAAK,CAAC;EACzC6B,IAAI,EAAEC,mBAAQ,CAACC,EAAAA;AACjB,CAAC,CAAC,CAAA5B,UAAA,CAAA;EAAAC,WAAA,EAAA,qBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,GAAA,CAAA,EAES,CAAC;AAAEG,EAAAA,UAAAA;AAAW,CAAC,KAAKA,UAAU,EAAEa,QAAQ,GAAG,mBAAmB,CAAC;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.types.js","sources":["../../../../src/components/Tooltip/Tooltip.types.ts"],"sourcesContent":["import { type BezierIcon } from '@channel.io/bezier-icons'\n\nimport {\n type BezierComponentProps,\n type ChildrenProps,\n type ContentProps,\n type DisableProps,\n} from '~/src/types/ComponentProps'\n\n/**\n * An enumeration that determines the position of `Tooltip`.\n */\nexport enum TooltipPosition {\n TopCenter = 'topCenter',\n TopLeft = 'topLeft',\n TopRight = 'topRight',\n RightCenter = 'rightCenter',\n RightTop = 'rightTop',\n RightBottom = 'rightBottom',\n BottomCenter = 'bottomCenter',\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight',\n LeftCenter = 'leftCenter',\n LeftTop = 'leftTop',\n LeftBottom = 'leftBottom',\n}\n\ninterface TooltipProviderOptions {\n /**\n * Keeps the content of the tooltip open on hover. Disabling this feature affects accessibility.\n * @default false\n */\n allowHover?: boolean\n /**\n * The delay from when the mouse enters a tooltip trigger until the tooltip opens.\n * @default
|
|
1
|
+
{"version":3,"file":"Tooltip.types.js","sources":["../../../../src/components/Tooltip/Tooltip.types.ts"],"sourcesContent":["import { type BezierIcon } from '@channel.io/bezier-icons'\n\nimport {\n type BezierComponentProps,\n type ChildrenProps,\n type ContentProps,\n type DisableProps,\n} from '~/src/types/ComponentProps'\n\n/**\n * An enumeration that determines the position of `Tooltip`.\n */\nexport enum TooltipPosition {\n TopCenter = 'topCenter',\n TopLeft = 'topLeft',\n TopRight = 'topRight',\n RightCenter = 'rightCenter',\n RightTop = 'rightTop',\n RightBottom = 'rightBottom',\n BottomCenter = 'bottomCenter',\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight',\n LeftCenter = 'leftCenter',\n LeftTop = 'leftTop',\n LeftBottom = 'leftBottom',\n}\n\ninterface TooltipProviderOptions {\n /**\n * Keeps the content of the tooltip open on hover. Disabling this feature affects accessibility.\n * @default false\n */\n allowHover?: boolean\n /**\n * The delay from when the mouse enters a tooltip trigger until the tooltip opens.\n * @default 300\n */\n delayShow?: number\n /**\n * The delay from when the mouse leaves a tooltip content until the tooltip hides.\n * @default 0\n */\n delayHide?: number\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @default 500\n */\n skipDelayShow?: number\n}\n\ninterface TooltipOptions {\n /**\n * The open state of the tooltip when it is initially rendered.\n */\n defaultShow?: boolean\n /**\n * An element that sits below the tooltip content.\n */\n description?: React.ReactNode\n /**\n * A decorative icon that sits right of the tooltip content.\n */\n icon?: BezierIcon\n /**\n * Options to determine the location from the trigger.\n * @default TooltipPosition.BottomCenter\n */\n placement?: TooltipPosition\n /**\n * The distance in pixels from the trigger.\n * @default 4\n */\n offset?: number\n /**\n * Specify a container element to portal the content into.\n * @default document.body\n */\n container?: HTMLElement | null\n /**\n * When `true`, overrides the `position` of the tooltip\n * to prevent collisions with boundary edges.\n * @default true\n */\n keepInContainer?: boolean\n /**\n * Keeps the content of the tooltip open on hover. Disabling this feature affects accessibility.\n * Inherits from the nearest `TooltipProvider`.\n * @default false\n */\n allowHover?: boolean\n /**\n * The delay from when the mouse enters a tooltip trigger until the tooltip opens.\n * Inherits from the nearest `TooltipProvider`.\n * @default 300\n */\n delayShow?: number\n /**\n * The delay from when the mouse leaves a tooltip content until the tooltip hides.\n * Inherits from the nearest `TooltipProvider`.\n * @default 0\n */\n delayHide?: number\n /**\n * Callback function to be called when the tooltip is opened.\n */\n onShow?: () => void\n /**\n * Callback function to be called when the tooltip is closed.\n */\n onHide?: () => void\n /**\n * Event handler called when the escape key is down.\n * It can be prevented by calling `event.preventDefault`.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n /**\n * Event handler called when a pointer event occurs outside the bounds of the component.\n * It can be prevented by calling `event.preventDefault`.\n */\n onPointerDownOutside?: (event: CustomEvent<{ originalEvent: PointerEvent }>) => void\n}\n\nexport interface TooltipProviderProps extends\n ChildrenProps,\n TooltipProviderOptions {}\n\nexport interface TooltipProps extends\n BezierComponentProps,\n ChildrenProps<React.ReactElement>,\n ContentProps,\n DisableProps,\n Omit<React.HTMLAttributes<HTMLDivElement>, keyof ContentProps | keyof ChildrenProps>,\n TooltipOptions {}\n"],"names":["TooltipPosition"],"mappings":";;AASA;AACA;AACA;AACYA,IAAAA,eAAe,0BAAfA,eAAe,EAAA;EAAfA,eAAe,CAAA,WAAA,CAAA,GAAA,WAAA,CAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,UAAA,CAAA,GAAA,UAAA,CAAA;EAAfA,eAAe,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;EAAfA,eAAe,CAAA,UAAA,CAAA,GAAA,UAAA,CAAA;EAAfA,eAAe,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;EAAfA,eAAe,CAAA,cAAA,CAAA,GAAA,cAAA,CAAA;EAAfA,eAAe,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;EAAfA,eAAe,CAAA,aAAA,CAAA,GAAA,aAAA,CAAA;EAAfA,eAAe,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;EAAfA,eAAe,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAfA,eAAe,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;AAAA,EAAA,OAAfA,eAAe,CAAA;AAAA,CAAA,CAAA,EAAA;;;;"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
+
var reactUtils = require('../utils/reactUtils.js');
|
|
4
5
|
var Feature = require('./Feature.js');
|
|
5
6
|
|
|
6
7
|
const initialFeatureFlag = {
|
|
7
8
|
[Feature.FeatureType.SmoothCorners]: false
|
|
8
9
|
};
|
|
9
|
-
const
|
|
10
|
+
const [FeatureFlagContextProvider, useFeatureFlagContext] = reactUtils.createContext(initialFeatureFlag);
|
|
10
11
|
/**
|
|
11
12
|
* `FeatureProvider` is a component that activates features and provides.
|
|
12
13
|
*
|
|
@@ -40,12 +41,12 @@ function FeatureProvider({
|
|
|
40
41
|
}));
|
|
41
42
|
});
|
|
42
43
|
}, [features]);
|
|
43
|
-
return /*#__PURE__*/React.createElement(
|
|
44
|
+
return /*#__PURE__*/React.createElement(FeatureFlagContextProvider, {
|
|
44
45
|
value: featureFlag
|
|
45
46
|
}, children);
|
|
46
47
|
}
|
|
47
48
|
function useFeatureFlag(featureType) {
|
|
48
|
-
const contextValue =
|
|
49
|
+
const contextValue = useFeatureFlagContext();
|
|
49
50
|
return React.useMemo(() => contextValue[featureType], [contextValue, featureType]);
|
|
50
51
|
}
|
|
51
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureProvider.js","sources":["../../../src/features/FeatureProvider.tsx"],"sourcesContent":["import React, {\n
|
|
1
|
+
{"version":3,"file":"FeatureProvider.js","sources":["../../../src/features/FeatureProvider.tsx"],"sourcesContent":["import React, {\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react'\n\nimport { createContext } from '~/src/utils/reactUtils'\n\nimport {\n type Feature,\n FeatureType,\n} from './Feature'\n\nexport type FeatureFlag = Record<FeatureType, boolean>\n\nconst initialFeatureFlag: FeatureFlag = {\n [FeatureType.SmoothCorners]: false,\n}\n\nconst [\n FeatureFlagContextProvider,\n useFeatureFlagContext,\n] = createContext<FeatureFlag>(initialFeatureFlag)\n\ninterface FeatureProviderProps {\n children: React.ReactNode\n /**\n * Features to activate.\n */\n features: Feature[]\n}\n\n/**\n * `FeatureProvider` is a component that activates features and provides.\n *\n * @example\n *\n * ```tsx\n * <FeatureProvider features={[SmoothCornersFeature]}>\n * <App />\n * </FeatureProvider>\n * ```\n */\nexport function FeatureProvider({\n children,\n features,\n}: FeatureProviderProps) {\n const [featureFlag, setFeatureFlag] = useState<FeatureFlag>(initialFeatureFlag)\n\n useLayoutEffect(function activateFeatures() {\n if (!features) {\n return\n }\n\n const promises = features.map(feature => (\n feature.activate().then(activated => (\n { [feature.name]: activated }\n ))\n ))\n\n Promise.all(promises).then(flags => {\n setFeatureFlag(prev => ({\n ...prev,\n ...flags.reduce((acc, cur) => ({ ...acc, ...cur }), {}),\n }))\n })\n }, [features])\n\n return (\n <FeatureFlagContextProvider value={featureFlag}>\n { children }\n </FeatureFlagContextProvider>\n )\n}\n\nexport function useFeatureFlag(featureType: FeatureType) {\n const contextValue = useFeatureFlagContext()\n\n return useMemo(() => (\n contextValue[featureType]\n ), [\n contextValue,\n featureType,\n ])\n}\n"],"names":["initialFeatureFlag","FeatureType","SmoothCorners","FeatureFlagContextProvider","useFeatureFlagContext","createContext","FeatureProvider","children","features","featureFlag","setFeatureFlag","useState","useLayoutEffect","activateFeatures","promises","map","feature","activate","then","activated","name","Promise","all","flags","prev","reduce","acc","cur","React","createElement","value","useFeatureFlag","featureType","contextValue","useMemo"],"mappings":";;;;;;AAeA,MAAMA,kBAA+B,GAAG;EACtC,CAACC,mBAAW,CAACC,aAAa,GAAG,KAAA;AAC/B,CAAC,CAAA;AAED,MAAM,CACJC,0BAA0B,EAC1BC,qBAAqB,CACtB,GAAGC,wBAAa,CAAcL,kBAAkB,CAAC,CAAA;AAUlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,eAAeA,CAAC;EAC9BC,QAAQ;AACRC,EAAAA,QAAAA;AACoB,CAAC,EAAE;EACvB,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAQ,CAAcX,kBAAkB,CAAC,CAAA;AAE/EY,EAAAA,qBAAe,CAAC,SAASC,gBAAgBA,GAAG;IAC1C,IAAI,CAACL,QAAQ,EAAE;AACb,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMM,QAAQ,GAAGN,QAAQ,CAACO,GAAG,CAACC,OAAO,IACnCA,OAAO,CAACC,QAAQ,EAAE,CAACC,IAAI,CAACC,SAAS,KAC/B;MAAE,CAACH,OAAO,CAACI,IAAI,GAAGD,SAAAA;KAAW,CAC9B,CACF,CAAC,CAAA;IAEFE,OAAO,CAACC,GAAG,CAACR,QAAQ,CAAC,CAACI,IAAI,CAACK,KAAK,IAAI;MAClCb,cAAc,CAACc,IAAI,KAAK;AACtB,QAAA,GAAGA,IAAI;QACP,GAAGD,KAAK,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,MAAM;AAAE,UAAA,GAAGD,GAAG;UAAE,GAAGC,GAAAA;SAAK,CAAC,EAAE,EAAE,CAAA;AACxD,OAAC,CAAC,CAAC,CAAA;AACL,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACnB,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACEoB,KAAA,CAAAC,aAAA,CAAC1B,0BAA0B,EAAA;AAAC2B,IAAAA,KAAK,EAAErB,WAAAA;AAAY,GAAA,EAC3CF,QACwB,CAAC,CAAA;AAEjC,CAAA;AAEO,SAASwB,cAAcA,CAACC,WAAwB,EAAE;AACvD,EAAA,MAAMC,YAAY,GAAG7B,qBAAqB,EAAE,CAAA;AAE5C,EAAA,OAAO8B,aAAO,CAAC,MACbD,YAAY,CAACD,WAAW,CACzB,EAAE,CACDC,YAAY,EACZD,WAAW,CACZ,CAAC,CAAA;AACJ;;;;;"}
|