@channel.io/bezier-react 2.0.0-alpha.19 → 2.0.0-alpha.20
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/alpha-components/DialogPrimitive/DialogPrimitive.js +53 -0
- package/dist/cjs/alpha-components/DialogPrimitive/DialogPrimitive.js.map +1 -0
- package/dist/cjs/alpha-components/TooltipPrimitive/TooltipPrimitive.js +41 -0
- package/dist/cjs/alpha-components/TooltipPrimitive/TooltipPrimitive.js.map +1 -0
- package/dist/cjs/alpha-components/index.js +22 -0
- package/dist/cjs/alpha-components/index.js.map +1 -0
- package/dist/cjs/components/Avatar/Avatar.js +2 -2
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/AvatarGroup/AvatarGroup.js +2 -2
- package/dist/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/cjs/components/Modal/Modal.js +15 -15
- package/dist/cjs/components/Modal/Modal.js.map +1 -1
- package/dist/cjs/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.js → SmoothCornersBox/SmoothCornersBox.js} +7 -7
- package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.js.map +1 -0
- package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.module.scss.js +8 -0
- package/dist/cjs/components/SmoothCornersBox/SmoothCornersBox.module.scss.js.map +1 -0
- package/dist/cjs/components/Tooltip/Tooltip.js +6 -6
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/node_modules/@radix-ui/react-arrow/dist/index.js +29 -0
- package/dist/cjs/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/@radix-ui/react-dialog/dist/index.js +0 -16
- package/dist/cjs/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js +55 -0
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js +17 -10
- package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -1
- package/dist/cjs/styles.css +1 -1
- package/dist/esm/alpha-components/DialogPrimitive/DialogPrimitive.mjs +44 -0
- package/dist/esm/alpha-components/DialogPrimitive/DialogPrimitive.mjs.map +1 -0
- package/dist/esm/alpha-components/TooltipPrimitive/TooltipPrimitive.mjs +34 -0
- package/dist/esm/alpha-components/TooltipPrimitive/TooltipPrimitive.mjs.map +1 -0
- package/dist/esm/alpha-components/index.mjs +3 -0
- package/dist/esm/alpha-components/index.mjs.map +1 -0
- package/dist/esm/components/Avatar/Avatar.mjs +2 -2
- package/dist/esm/components/Avatar/Avatar.mjs.map +1 -1
- package/dist/esm/components/AvatarGroup/AvatarGroup.mjs +2 -2
- package/dist/esm/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
- package/dist/esm/components/Modal/Modal.mjs +9 -9
- package/dist/esm/components/Modal/Modal.mjs.map +1 -1
- package/dist/esm/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.mjs → SmoothCornersBox/SmoothCornersBox.mjs} +6 -6
- package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.mjs.map +1 -0
- package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.module.scss.mjs +4 -0
- package/dist/esm/components/SmoothCornersBox/SmoothCornersBox.module.scss.mjs.map +1 -0
- package/dist/esm/components/Tooltip/Tooltip.mjs +6 -6
- package/dist/esm/components/Tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/node_modules/@radix-ui/react-arrow/dist/index.mjs +26 -0
- package/dist/esm/node_modules/@radix-ui/react-arrow/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@radix-ui/react-dialog/dist/index.mjs +1 -9
- package/dist/esm/node_modules/@radix-ui/react-dialog/dist/index.mjs.map +1 -1
- package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs +54 -1
- package/dist/esm/node_modules/@radix-ui/react-popper/dist/index.mjs.map +1 -1
- package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs +18 -7
- package/dist/esm/node_modules/@radix-ui/react-tooltip/dist/index.mjs.map +1 -1
- package/dist/esm/styles.css +1 -1
- package/dist/types/alpha-components/DialogPrimitive/DialogPrimitive.d.ts +34 -0
- package/dist/types/alpha-components/DialogPrimitive/DialogPrimitive.d.ts.map +1 -0
- package/dist/types/alpha-components/DialogPrimitive/DialogPrimitive.types.d.ts +34 -0
- package/dist/types/alpha-components/DialogPrimitive/DialogPrimitive.types.d.ts.map +1 -0
- package/dist/types/alpha-components/DialogPrimitive/index.d.ts +3 -0
- package/dist/types/alpha-components/DialogPrimitive/index.d.ts.map +1 -0
- package/dist/types/alpha-components/TooltipPrimitive/TooltipPrimitive.d.ts +26 -0
- package/dist/types/alpha-components/TooltipPrimitive/TooltipPrimitive.d.ts.map +1 -0
- package/dist/types/alpha-components/TooltipPrimitive/TooltipPrimitive.types.d.ts +26 -0
- package/dist/types/alpha-components/TooltipPrimitive/TooltipPrimitive.types.d.ts.map +1 -0
- package/dist/types/alpha-components/TooltipPrimitive/index.d.ts +3 -0
- package/dist/types/alpha-components/TooltipPrimitive/index.d.ts.map +1 -0
- package/dist/types/alpha-components/index.d.ts +3 -0
- package/dist/types/alpha-components/index.d.ts.map +1 -0
- package/dist/types/components/Modal/Modal.d.ts.map +1 -1
- package/dist/types/components/SmoothCornersBox/SmoothCornersBox.d.ts +15 -0
- package/dist/types/components/SmoothCornersBox/SmoothCornersBox.d.ts.map +1 -0
- package/dist/types/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.types.d.ts → SmoothCornersBox/SmoothCornersBox.types.d.ts} +3 -3
- package/dist/types/components/SmoothCornersBox/SmoothCornersBox.types.d.ts.map +1 -0
- package/dist/types/components/SmoothCornersBox/index.d.ts +3 -0
- package/dist/types/components/SmoothCornersBox/index.d.ts.map +1 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +14 -2
- package/src/alpha-components/DialogPrimitive/DialogPrimitive.tsx +50 -0
- package/src/alpha-components/DialogPrimitive/DialogPrimitive.types.ts +50 -0
- package/src/alpha-components/DialogPrimitive/index.ts +20 -0
- package/src/alpha-components/TooltipPrimitive/TooltipPrimitive.tsx +38 -0
- package/src/alpha-components/TooltipPrimitive/TooltipPrimitive.types.ts +38 -0
- package/src/alpha-components/TooltipPrimitive/index.ts +16 -0
- package/src/alpha-components/index.ts +2 -0
- package/src/components/Avatar/Avatar.tsx +6 -6
- package/src/components/AvatarGroup/AvatarGroup.tsx +3 -3
- package/src/components/Modal/Modal.tsx +28 -18
- package/src/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.stories.tsx → SmoothCornersBox/SmoothCornersBox.stories.tsx} +7 -7
- package/src/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.test.tsx → SmoothCornersBox/SmoothCornersBox.test.tsx} +6 -6
- package/src/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.tsx → SmoothCornersBox/SmoothCornersBox.tsx} +5 -5
- package/src/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.types.ts → SmoothCornersBox/SmoothCornersBox.types.ts} +3 -3
- package/src/components/{AlphaSmoothCornersBox/__snapshots__/AlphaSmoothCornersBox.test.tsx.snap → SmoothCornersBox/__snapshots__/SmoothCornersBox.test.tsx.snap} +1 -1
- package/src/components/SmoothCornersBox/index.ts +2 -0
- package/src/components/Tooltip/Tooltip.tsx +19 -13
- package/src/index.ts +1 -1
- package/dist/cjs/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.js.map +0 -1
- package/dist/cjs/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.module.scss.js +0 -8
- package/dist/cjs/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.module.scss.js.map +0 -1
- package/dist/esm/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.mjs.map +0 -1
- package/dist/esm/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.module.scss.mjs +0 -4
- package/dist/esm/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.module.scss.mjs.map +0 -1
- package/dist/types/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.d.ts +0 -15
- package/dist/types/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.d.ts.map +0 -1
- package/dist/types/components/AlphaSmoothCornersBox/AlphaSmoothCornersBox.types.d.ts.map +0 -1
- package/dist/types/components/AlphaSmoothCornersBox/index.d.ts +0 -3
- package/dist/types/components/AlphaSmoothCornersBox/index.d.ts.map +0 -1
- package/src/components/AlphaSmoothCornersBox/index.ts +0 -2
- /package/src/components/{AlphaSmoothCornersBox/AlphaSmoothCornersBox.module.scss → SmoothCornersBox/SmoothCornersBox.module.scss} +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('../../node_modules/@radix-ui/react-dialog/dist/index.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#root}
|
|
7
|
+
*/
|
|
8
|
+
const DialogPrimitive = index.Dialog;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#close}
|
|
12
|
+
*/
|
|
13
|
+
const DialogPrimitiveClose = index.DialogClose;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#content}
|
|
17
|
+
*/
|
|
18
|
+
const DialogPrimitiveContent = index.DialogContent;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#description}
|
|
22
|
+
*/
|
|
23
|
+
const DialogPrimitiveDescription = index.DialogDescription;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#overlay}
|
|
27
|
+
*/
|
|
28
|
+
const DialogPrimitiveOverlay = index.DialogOverlay;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#portal}
|
|
32
|
+
*/
|
|
33
|
+
const DialogPrimitivePortal = index.DialogPortal;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#title}
|
|
37
|
+
*/
|
|
38
|
+
const DialogPrimitiveTitle = index.DialogTitle;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#trigger}
|
|
42
|
+
*/
|
|
43
|
+
const DialogPrimitiveTrigger = index.DialogTrigger;
|
|
44
|
+
|
|
45
|
+
exports.DialogPrimitive = DialogPrimitive;
|
|
46
|
+
exports.DialogPrimitiveClose = DialogPrimitiveClose;
|
|
47
|
+
exports.DialogPrimitiveContent = DialogPrimitiveContent;
|
|
48
|
+
exports.DialogPrimitiveDescription = DialogPrimitiveDescription;
|
|
49
|
+
exports.DialogPrimitiveOverlay = DialogPrimitiveOverlay;
|
|
50
|
+
exports.DialogPrimitivePortal = DialogPrimitivePortal;
|
|
51
|
+
exports.DialogPrimitiveTitle = DialogPrimitiveTitle;
|
|
52
|
+
exports.DialogPrimitiveTrigger = DialogPrimitiveTrigger;
|
|
53
|
+
//# sourceMappingURL=DialogPrimitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogPrimitive.js","sources":["../../../../src/alpha-components/DialogPrimitive/DialogPrimitive.tsx"],"sourcesContent":["import {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n} from '@radix-ui/react-dialog'\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#root}\n */\nexport const DialogPrimitive = Dialog\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#close}\n */\nexport const DialogPrimitiveClose = DialogClose\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#content}\n */\nexport const DialogPrimitiveContent = DialogContent\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#description}\n */\nexport const DialogPrimitiveDescription = DialogDescription\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#overlay}\n */\nexport const DialogPrimitiveOverlay = DialogOverlay\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#portal}\n */\nexport const DialogPrimitivePortal = DialogPortal\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#title}\n */\nexport const DialogPrimitiveTitle = DialogTitle\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/dialog#trigger}\n */\nexport const DialogPrimitiveTrigger = DialogTrigger\n"],"names":["DialogPrimitive","Dialog","DialogPrimitiveClose","DialogClose","DialogPrimitiveContent","DialogContent","DialogPrimitiveDescription","DialogDescription","DialogPrimitiveOverlay","DialogOverlay","DialogPrimitivePortal","DialogPortal","DialogPrimitiveTitle","DialogTitle","DialogPrimitiveTrigger","DialogTrigger"],"mappings":";;;;AAWA;AACA;AACA;AACO,MAAMA,eAAe,GAAGC,aAAM;;AAErC;AACA;AACA;AACO,MAAMC,oBAAoB,GAAGC,kBAAW;;AAE/C;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGC,oBAAa;;AAEnD;AACA;AACA;AACO,MAAMC,0BAA0B,GAAGC,wBAAiB;;AAE3D;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGC,oBAAa;;AAEnD;AACA;AACA;AACO,MAAMC,qBAAqB,GAAGC,mBAAY;;AAEjD;AACA;AACA;AACO,MAAMC,oBAAoB,GAAGC,kBAAW;;AAE/C;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGC;;;;;;;;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('../../node_modules/@radix-ui/react-tooltip/dist/index.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#provider}
|
|
7
|
+
*/
|
|
8
|
+
const TooltipPrimitiveProvider = index.TooltipProvider;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#root}
|
|
12
|
+
*/
|
|
13
|
+
const TooltipPrimitive = index.Tooltip;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#trigger}
|
|
17
|
+
*/
|
|
18
|
+
const TooltipPrimitiveTrigger = index.TooltipTrigger;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#portal}
|
|
22
|
+
*/
|
|
23
|
+
const TooltipPrimitivePortal = index.TooltipPortal;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#content}
|
|
27
|
+
*/
|
|
28
|
+
const TooltipPrimitiveContent = index.TooltipContent;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#arrow}
|
|
32
|
+
*/
|
|
33
|
+
const TooltipPrimitiveArrow = index.TooltipArrow;
|
|
34
|
+
|
|
35
|
+
exports.TooltipPrimitive = TooltipPrimitive;
|
|
36
|
+
exports.TooltipPrimitiveArrow = TooltipPrimitiveArrow;
|
|
37
|
+
exports.TooltipPrimitiveContent = TooltipPrimitiveContent;
|
|
38
|
+
exports.TooltipPrimitivePortal = TooltipPrimitivePortal;
|
|
39
|
+
exports.TooltipPrimitiveProvider = TooltipPrimitiveProvider;
|
|
40
|
+
exports.TooltipPrimitiveTrigger = TooltipPrimitiveTrigger;
|
|
41
|
+
//# sourceMappingURL=TooltipPrimitive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TooltipPrimitive.js","sources":["../../../../src/alpha-components/TooltipPrimitive/TooltipPrimitive.tsx"],"sourcesContent":["import {\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n} from '@radix-ui/react-tooltip'\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#provider}\n */\nexport const TooltipPrimitiveProvider = TooltipProvider\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#root}\n */\nexport const TooltipPrimitive = Tooltip\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#trigger}\n */\nexport const TooltipPrimitiveTrigger = TooltipTrigger\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#portal}\n */\nexport const TooltipPrimitivePortal = TooltipPortal\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#content}\n */\nexport const TooltipPrimitiveContent = TooltipContent\n\n/**\n * @see {@link https://www.radix-ui.com/primitives/docs/components/tooltip#arrow}\n */\nexport const TooltipPrimitiveArrow = TooltipArrow\n"],"names":["TooltipPrimitiveProvider","TooltipProvider","TooltipPrimitive","Tooltip","TooltipPrimitiveTrigger","TooltipTrigger","TooltipPrimitivePortal","TooltipPortal","TooltipPrimitiveContent","TooltipContent","TooltipPrimitiveArrow","TooltipArrow"],"mappings":";;;;AASA;AACA;AACA;AACO,MAAMA,wBAAwB,GAAGC,sBAAe;;AAEvD;AACA;AACA;AACO,MAAMC,gBAAgB,GAAGC,cAAO;;AAEvC;AACA;AACA;AACO,MAAMC,uBAAuB,GAAGC,qBAAc;;AAErD;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGC,oBAAa;;AAEnD;AACA;AACA;AACO,MAAMC,uBAAuB,GAAGC,qBAAc;;AAErD;AACA;AACA;AACO,MAAMC,qBAAqB,GAAGC;;;;;;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var DialogPrimitive = require('./DialogPrimitive/DialogPrimitive.js');
|
|
4
|
+
var TooltipPrimitive = require('./TooltipPrimitive/TooltipPrimitive.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.DialogPrimitive = DialogPrimitive.DialogPrimitive;
|
|
9
|
+
exports.DialogPrimitiveClose = DialogPrimitive.DialogPrimitiveClose;
|
|
10
|
+
exports.DialogPrimitiveContent = DialogPrimitive.DialogPrimitiveContent;
|
|
11
|
+
exports.DialogPrimitiveDescription = DialogPrimitive.DialogPrimitiveDescription;
|
|
12
|
+
exports.DialogPrimitiveOverlay = DialogPrimitive.DialogPrimitiveOverlay;
|
|
13
|
+
exports.DialogPrimitivePortal = DialogPrimitive.DialogPrimitivePortal;
|
|
14
|
+
exports.DialogPrimitiveTitle = DialogPrimitive.DialogPrimitiveTitle;
|
|
15
|
+
exports.DialogPrimitiveTrigger = DialogPrimitive.DialogPrimitiveTrigger;
|
|
16
|
+
exports.TooltipPrimitive = TooltipPrimitive.TooltipPrimitive;
|
|
17
|
+
exports.TooltipPrimitiveArrow = TooltipPrimitive.TooltipPrimitiveArrow;
|
|
18
|
+
exports.TooltipPrimitiveContent = TooltipPrimitive.TooltipPrimitiveContent;
|
|
19
|
+
exports.TooltipPrimitivePortal = TooltipPrimitive.TooltipPrimitivePortal;
|
|
20
|
+
exports.TooltipPrimitiveProvider = TooltipPrimitive.TooltipPrimitiveProvider;
|
|
21
|
+
exports.TooltipPrimitiveTrigger = TooltipPrimitive.TooltipPrimitiveTrigger;
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -7,7 +7,7 @@ var defaultAvatar = require('./assets/default-avatar.svg.js');
|
|
|
7
7
|
var useProgressiveImage = require('./useProgressiveImage.js');
|
|
8
8
|
var Avatar_module = require('./Avatar.module.scss.js');
|
|
9
9
|
var ThemeProvider = require('../ThemeProvider/ThemeProvider.js');
|
|
10
|
-
var
|
|
10
|
+
var SmoothCornersBox = require('../SmoothCornersBox/SmoothCornersBox.js');
|
|
11
11
|
var Status = require('../Status/Status.js');
|
|
12
12
|
|
|
13
13
|
const shadow = {
|
|
@@ -84,7 +84,7 @@ const Avatar = /*#__PURE__*/React.forwardRef(function Avatar({
|
|
|
84
84
|
className: index.default(Avatar_module.default.Avatar, Avatar_module.default[`size-${size}`], disabled && Avatar_module.default.disabled, className),
|
|
85
85
|
"data-disabled": disabled,
|
|
86
86
|
"data-testid": AVATAR_WRAPPER_TEST_ID
|
|
87
|
-
}, rest), /*#__PURE__*/React.createElement(
|
|
87
|
+
}, rest), /*#__PURE__*/React.createElement(SmoothCornersBox.SmoothCornersBox, {
|
|
88
88
|
ref: forwardedRef,
|
|
89
89
|
"aria-label": name,
|
|
90
90
|
className: index.default(Avatar_module.default.AvatarImage, Number(size) >= 72 && Avatar_module.default['big-size'], showBorder && Avatar_module.default.bordered),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useMemo,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport {\n
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useMemo,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport { isEmpty } from '~/src/utils/type'\n\nimport {\n SmoothCornersBox,\n type SmoothCornersBoxProps,\n} from '~/src/components/SmoothCornersBox'\nimport {\n Status,\n type StatusSize,\n} from '~/src/components/Status'\nimport { useTokens } from '~/src/components/ThemeProvider'\n\nimport type { AvatarProps } from './Avatar.types'\nimport defaultAvatarUrl from './assets/default-avatar.svg'\nimport useProgressiveImage from './useProgressiveImage'\n\nimport styles from './Avatar.module.scss'\n\nconst shadow: SmoothCornersBoxProps['shadow'] = {\n spreadRadius: 2,\n color: 'bg-white-high',\n}\n\nexport function useAvatarRadiusToken() {\n return useTokens().global.radius['radius-42-p']\n}\n\nexport const AVATAR_WRAPPER_TEST_ID = 'bezier-avatar-wrapper'\nexport const AVATAR_TEST_ID = 'bezier-avatar'\nexport const STATUS_WRAPPER_TEST_ID = 'bezier-status-wrapper'\n\n/**\n * `Avatar` is a component for representing some profile image.\n * @example\n *\n * ```tsx\n * <Avatar\n * avatarUrl=\"'https://cf.channel.io/thumb/200x200/pub-file/1/606d87d059a6093594c0/ch-symbol-filled-smiley-bg.png\"\n * name=\"channel\"\n * size=\"48\"\n * showBorder\n * disabled\n * />\n * ```\n */\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar({\n avatarUrl = '',\n fallbackUrl = defaultAvatarUrl,\n size = '24',\n name,\n disabled = false,\n showBorder = false,\n smoothCorners = true,\n status,\n className,\n children,\n ...rest\n}, forwardedRef) {\n const loadedAvatarUrl = useProgressiveImage(avatarUrl, fallbackUrl)\n const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()\n\n const StatusComponent = useMemo(() => {\n if (\n (isEmpty(children) && !status)\n || (children && !React.isValidElement(children))\n ) {\n return null\n }\n\n const statusSize: StatusSize = (() => {\n switch (size) {\n case '90':\n case '120':\n return 'l'\n default:\n return 'm'\n }\n })()\n\n const Contents = (() => {\n if (children) { return children }\n if (status) {\n return (\n <Status\n type={status}\n size={statusSize}\n />\n )\n }\n return null\n })()\n\n return Contents && (\n <div\n className={styles.StatusWrapper}\n data-testid={STATUS_WRAPPER_TEST_ID}\n >\n { Contents }\n </div>\n )\n }, [\n status,\n size,\n children,\n ])\n\n return (\n <div\n className={classNames(\n styles.Avatar,\n styles[`size-${size}`],\n disabled && styles.disabled,\n className,\n )}\n data-disabled={disabled}\n data-testid={AVATAR_WRAPPER_TEST_ID}\n {...rest}\n >\n <SmoothCornersBox\n ref={forwardedRef}\n aria-label={name}\n className={classNames(\n styles.AvatarImage,\n Number(size) >= 72 && styles['big-size'],\n showBorder && styles.bordered,\n )}\n disabled={!smoothCorners}\n borderRadius={AVATAR_BORDER_RADIUS}\n shadow={showBorder ? shadow : undefined}\n backgroundColor=\"bg-white-normal\"\n backgroundImage={loadedAvatarUrl}\n data-testid={AVATAR_TEST_ID}\n >\n { StatusComponent }\n </SmoothCornersBox>\n </div>\n )\n})\n"],"names":["shadow","spreadRadius","color","useAvatarRadiusToken","useTokens","global","radius","AVATAR_WRAPPER_TEST_ID","AVATAR_TEST_ID","STATUS_WRAPPER_TEST_ID","Avatar","forwardRef","avatarUrl","fallbackUrl","defaultAvatarUrl","size","name","disabled","showBorder","smoothCorners","status","className","children","rest","forwardedRef","loadedAvatarUrl","useProgressiveImage","AVATAR_BORDER_RADIUS","StatusComponent","useMemo","isEmpty","React","isValidElement","statusSize","Contents","createElement","Status","type","styles","StatusWrapper","Object","assign","classNames","SmoothCornersBox","ref","AvatarImage","Number","bordered","borderRadius","undefined","backgroundColor","backgroundImage"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ var array = require('../../utils/array.js');
|
|
|
7
7
|
var style = require('../../utils/style.js');
|
|
8
8
|
var AvatarGroup_module = require('./AvatarGroup.module.scss.js');
|
|
9
9
|
var Avatar = require('../Avatar/Avatar.js');
|
|
10
|
-
var
|
|
10
|
+
var SmoothCornersBox = require('../SmoothCornersBox/SmoothCornersBox.js');
|
|
11
11
|
var Icon = require('../Icon/Icon.js');
|
|
12
12
|
var Text = require('../Text/Text.js');
|
|
13
13
|
|
|
@@ -110,7 +110,7 @@ const AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup({
|
|
|
110
110
|
onMouseEnter: onMouseEnterEllipsis,
|
|
111
111
|
onMouseLeave: onMouseLeaveEllipsis,
|
|
112
112
|
"data-testid": AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID
|
|
113
|
-
}, /*#__PURE__*/React.createElement(
|
|
113
|
+
}, /*#__PURE__*/React.createElement(SmoothCornersBox.SmoothCornersBox, {
|
|
114
114
|
borderRadius: AVATAR_BORDER_RADIUS,
|
|
115
115
|
backgroundColor: "bgtxt-absolute-black-lightest",
|
|
116
116
|
className: AvatarGroup_module.default.AvatarEllipsisIcon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarGroup.js","sources":["../../../../src/components/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useMemo,\n} from 'react'\n\nimport { MoreIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isLastIndex } from '~/src/utils/array'\nimport { px } from '~/src/utils/style'\n\nimport { AlphaSmoothCornersBox } from '~/src/components/AlphaSmoothCornersBox'\nimport {\n type AvatarProps,\n type AvatarSize,\n useAvatarRadiusToken,\n} from '~/src/components/Avatar'\nimport { Icon } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type AvatarGroupProps } from './AvatarGroup.types'\n\nimport styles from './AvatarGroup.module.scss'\n\nconst MAX_AVATAR_LIST_COUNT = 99\nconst AVATAR_GROUP_DEFAULT_SPACING = 4\nexport const AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID = 'bezier-avatar-group-ellipsis-icon'\n\nfunction getRestAvatarListCountText(count: number, max: number) {\n const restCount = count - max\n return `+${restCount > MAX_AVATAR_LIST_COUNT ? MAX_AVATAR_LIST_COUNT : restCount}`\n}\n\n// TODO: Not specified\nfunction getProperIconSize(avatarSize: AvatarSize) {\n return ({\n 20: 'xxs',\n 24: 'xs',\n 30: 's',\n 36: 'm',\n 42: 'm',\n 48: 'l',\n 72: 'l',\n 90: 'l',\n 120: 'l',\n } as const)[avatarSize]\n}\n\n// TODO: Not specified\nfunction getProperTypoSize(avatarSize: AvatarSize) {\n return ({\n 20: '12',\n 24: '13',\n 30: '15',\n 36: '16',\n 42: '18',\n 48: '24',\n 72: '24',\n 90: '24',\n 120: '24',\n } as const)[avatarSize]\n}\n\n/**\n * `AvatarGroup` is a component for grouping `Avatar` components\n * @example\n *\n * ```tsx\n * <AvatarGroup\n * max={2}\n * spacing={4}\n * ellipsisType=\"icon\"\n * >\n * <Avatar />\n * <Avatar />\n * <Avatar />\n * </AvatarGroup>\n * ```\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(function AvatarGroup({\n max,\n size = '24',\n spacing = AVATAR_GROUP_DEFAULT_SPACING,\n ellipsisType = 'icon',\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n style,\n className,\n children,\n ...rest\n}, forwardedRef) {\n const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()\n\n const renderAvatarElement = useCallback((\n avatar: React.ReactElement<AvatarProps>,\n avatarListCount: number,\n ) => {\n const key = avatar.key ?? `${avatar.props.name}-${avatar.props.avatarUrl}`\n const shouldShowBorder = avatarListCount > 1 && spacing < 0\n const showBorder = avatar.props.showBorder || shouldShowBorder\n return React.cloneElement(avatar, { key, size, showBorder })\n }, [\n size,\n spacing,\n ])\n\n const avatarListCount = useMemo(() => (\n React.Children.count(children)\n ), [children])\n\n const AvatarListComponent = useMemo(() => {\n if (avatarListCount <= max) {\n return React.Children.map(children, (avatar) => (\n React.isValidElement<AvatarProps>(avatar) && renderAvatarElement(avatar, avatarListCount)\n ))\n }\n\n const sliceEndIndex = max - avatarListCount\n const slicedAvatarList = React.Children.toArray(children).slice(0, sliceEndIndex)\n\n return slicedAvatarList.map((avatar, index, arr) => {\n if (!React.isValidElement<AvatarProps>(avatar)) { return null }\n\n const AvatarElement = renderAvatarElement(avatar, slicedAvatarList.length)\n\n if (!isLastIndex(arr, index)) {\n return AvatarElement\n }\n\n if (ellipsisType === 'icon') {\n return (\n <div\n key=\"ellipsis\"\n className={styles.AvatarEllipsisIconWrapper}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n data-testid={AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID}\n >\n <AlphaSmoothCornersBox\n borderRadius={AVATAR_BORDER_RADIUS}\n backgroundColor=\"bgtxt-absolute-black-lightest\"\n className={styles.AvatarEllipsisIcon}\n >\n <Icon\n source={MoreIcon}\n size={getProperIconSize(size)}\n color=\"bgtxt-absolute-white-dark\"\n />\n </AlphaSmoothCornersBox>\n { AvatarElement }\n </div>\n )\n }\n\n if (ellipsisType === 'count') {\n return (\n <React.Fragment key=\"ellipsis\">\n { AvatarElement }\n <div\n style={{\n '--b-avatar-group-ellipsis-ml': px(Math.max(spacing, AVATAR_GROUP_DEFAULT_SPACING)),\n } as React.CSSProperties}\n className={classNames(\n styles.AvatarEllipsisCountWrapper,\n styles[`size-${size}`],\n )}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n >\n <Text\n typo={getProperTypoSize(size)}\n color=\"txt-black-dark\"\n className={styles.AvatarEllipsisCount}\n >\n { getRestAvatarListCountText(avatarListCount, max) }\n </Text>\n </div>\n </React.Fragment>\n )\n }\n\n return null\n })\n }, [\n avatarListCount,\n max,\n children,\n renderAvatarElement,\n ellipsisType,\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n AVATAR_BORDER_RADIUS,\n size,\n spacing,\n ])\n\n return (\n <div\n role=\"group\"\n ref={forwardedRef}\n className={classNames(\n styles.AvatarGroup,\n styles[`size-${size}`],\n className,\n )}\n style={{\n '--b-avatar-group-spacing': px(spacing),\n ...style,\n } as React.CSSProperties}\n {...rest}\n >\n { AvatarListComponent }\n </div>\n )\n})\n"],"names":["MAX_AVATAR_LIST_COUNT","AVATAR_GROUP_DEFAULT_SPACING","AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID","getRestAvatarListCountText","count","max","restCount","getProperIconSize","avatarSize","getProperTypoSize","AvatarGroup","forwardRef","size","spacing","ellipsisType","onMouseEnterEllipsis","onMouseLeaveEllipsis","style","className","children","rest","forwardedRef","AVATAR_BORDER_RADIUS","useAvatarRadiusToken","renderAvatarElement","useCallback","avatar","avatarListCount","key","props","name","avatarUrl","shouldShowBorder","showBorder","React","cloneElement","useMemo","Children","AvatarListComponent","map","isValidElement","sliceEndIndex","slicedAvatarList","toArray","slice","index","arr","AvatarElement","length","isLastIndex","createElement","styles","AvatarEllipsisIconWrapper","onMouseEnter","onMouseLeave","AlphaSmoothCornersBox","borderRadius","backgroundColor","AvatarEllipsisIcon","Icon","source","MoreIcon","color","Fragment","px","Math","classNames","AvatarEllipsisCountWrapper","Text","typo","AvatarEllipsisCount","Object","assign","role","ref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AvatarGroup.js","sources":["../../../../src/components/AvatarGroup/AvatarGroup.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useMemo,\n} from 'react'\n\nimport { MoreIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { isLastIndex } from '~/src/utils/array'\nimport { px } from '~/src/utils/style'\n\nimport {\n type AvatarProps,\n type AvatarSize,\n useAvatarRadiusToken,\n} from '~/src/components/Avatar'\nimport { Icon } from '~/src/components/Icon'\nimport { SmoothCornersBox } from '~/src/components/SmoothCornersBox'\nimport { Text } from '~/src/components/Text'\n\nimport { type AvatarGroupProps } from './AvatarGroup.types'\n\nimport styles from './AvatarGroup.module.scss'\n\nconst MAX_AVATAR_LIST_COUNT = 99\nconst AVATAR_GROUP_DEFAULT_SPACING = 4\nexport const AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID = 'bezier-avatar-group-ellipsis-icon'\n\nfunction getRestAvatarListCountText(count: number, max: number) {\n const restCount = count - max\n return `+${restCount > MAX_AVATAR_LIST_COUNT ? MAX_AVATAR_LIST_COUNT : restCount}`\n}\n\n// TODO: Not specified\nfunction getProperIconSize(avatarSize: AvatarSize) {\n return ({\n 20: 'xxs',\n 24: 'xs',\n 30: 's',\n 36: 'm',\n 42: 'm',\n 48: 'l',\n 72: 'l',\n 90: 'l',\n 120: 'l',\n } as const)[avatarSize]\n}\n\n// TODO: Not specified\nfunction getProperTypoSize(avatarSize: AvatarSize) {\n return ({\n 20: '12',\n 24: '13',\n 30: '15',\n 36: '16',\n 42: '18',\n 48: '24',\n 72: '24',\n 90: '24',\n 120: '24',\n } as const)[avatarSize]\n}\n\n/**\n * `AvatarGroup` is a component for grouping `Avatar` components\n * @example\n *\n * ```tsx\n * <AvatarGroup\n * max={2}\n * spacing={4}\n * ellipsisType=\"icon\"\n * >\n * <Avatar />\n * <Avatar />\n * <Avatar />\n * </AvatarGroup>\n * ```\n */\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(function AvatarGroup({\n max,\n size = '24',\n spacing = AVATAR_GROUP_DEFAULT_SPACING,\n ellipsisType = 'icon',\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n style,\n className,\n children,\n ...rest\n}, forwardedRef) {\n const AVATAR_BORDER_RADIUS = useAvatarRadiusToken()\n\n const renderAvatarElement = useCallback((\n avatar: React.ReactElement<AvatarProps>,\n avatarListCount: number,\n ) => {\n const key = avatar.key ?? `${avatar.props.name}-${avatar.props.avatarUrl}`\n const shouldShowBorder = avatarListCount > 1 && spacing < 0\n const showBorder = avatar.props.showBorder || shouldShowBorder\n return React.cloneElement(avatar, { key, size, showBorder })\n }, [\n size,\n spacing,\n ])\n\n const avatarListCount = useMemo(() => (\n React.Children.count(children)\n ), [children])\n\n const AvatarListComponent = useMemo(() => {\n if (avatarListCount <= max) {\n return React.Children.map(children, (avatar) => (\n React.isValidElement<AvatarProps>(avatar) && renderAvatarElement(avatar, avatarListCount)\n ))\n }\n\n const sliceEndIndex = max - avatarListCount\n const slicedAvatarList = React.Children.toArray(children).slice(0, sliceEndIndex)\n\n return slicedAvatarList.map((avatar, index, arr) => {\n if (!React.isValidElement<AvatarProps>(avatar)) { return null }\n\n const AvatarElement = renderAvatarElement(avatar, slicedAvatarList.length)\n\n if (!isLastIndex(arr, index)) {\n return AvatarElement\n }\n\n if (ellipsisType === 'icon') {\n return (\n <div\n key=\"ellipsis\"\n className={styles.AvatarEllipsisIconWrapper}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n data-testid={AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID}\n >\n <SmoothCornersBox\n borderRadius={AVATAR_BORDER_RADIUS}\n backgroundColor=\"bgtxt-absolute-black-lightest\"\n className={styles.AvatarEllipsisIcon}\n >\n <Icon\n source={MoreIcon}\n size={getProperIconSize(size)}\n color=\"bgtxt-absolute-white-dark\"\n />\n </SmoothCornersBox>\n { AvatarElement }\n </div>\n )\n }\n\n if (ellipsisType === 'count') {\n return (\n <React.Fragment key=\"ellipsis\">\n { AvatarElement }\n <div\n style={{\n '--b-avatar-group-ellipsis-ml': px(Math.max(spacing, AVATAR_GROUP_DEFAULT_SPACING)),\n } as React.CSSProperties}\n className={classNames(\n styles.AvatarEllipsisCountWrapper,\n styles[`size-${size}`],\n )}\n onMouseEnter={onMouseEnterEllipsis}\n onMouseLeave={onMouseLeaveEllipsis}\n >\n <Text\n typo={getProperTypoSize(size)}\n color=\"txt-black-dark\"\n className={styles.AvatarEllipsisCount}\n >\n { getRestAvatarListCountText(avatarListCount, max) }\n </Text>\n </div>\n </React.Fragment>\n )\n }\n\n return null\n })\n }, [\n avatarListCount,\n max,\n children,\n renderAvatarElement,\n ellipsisType,\n onMouseEnterEllipsis,\n onMouseLeaveEllipsis,\n AVATAR_BORDER_RADIUS,\n size,\n spacing,\n ])\n\n return (\n <div\n role=\"group\"\n ref={forwardedRef}\n className={classNames(\n styles.AvatarGroup,\n styles[`size-${size}`],\n className,\n )}\n style={{\n '--b-avatar-group-spacing': px(spacing),\n ...style,\n } as React.CSSProperties}\n {...rest}\n >\n { AvatarListComponent }\n </div>\n )\n})\n"],"names":["MAX_AVATAR_LIST_COUNT","AVATAR_GROUP_DEFAULT_SPACING","AVATAR_GROUP_ELLIPSIS_ICON_TEST_ID","getRestAvatarListCountText","count","max","restCount","getProperIconSize","avatarSize","getProperTypoSize","AvatarGroup","forwardRef","size","spacing","ellipsisType","onMouseEnterEllipsis","onMouseLeaveEllipsis","style","className","children","rest","forwardedRef","AVATAR_BORDER_RADIUS","useAvatarRadiusToken","renderAvatarElement","useCallback","avatar","avatarListCount","key","props","name","avatarUrl","shouldShowBorder","showBorder","React","cloneElement","useMemo","Children","AvatarListComponent","map","isValidElement","sliceEndIndex","slicedAvatarList","toArray","slice","index","arr","AvatarElement","length","isLastIndex","createElement","styles","AvatarEllipsisIconWrapper","onMouseEnter","onMouseLeave","SmoothCornersBox","borderRadius","backgroundColor","AvatarEllipsisIcon","Icon","source","MoreIcon","color","Fragment","px","Math","classNames","AvatarEllipsisCountWrapper","Text","typo","AvatarEllipsisCount","Object","assign","role","ref"],"mappings":";;;;;;;;;;;;;AAyBA,MAAMA,qBAAqB,GAAG,EAAE,CAAA;AAChC,MAAMC,4BAA4B,GAAG,CAAC,CAAA;AAC/B,MAAMC,kCAAkC,GAAG,oCAAmC;AAErF,SAASC,0BAA0BA,CAACC,KAAa,EAAEC,GAAW,EAAE;AAC9D,EAAA,MAAMC,SAAS,GAAGF,KAAK,GAAGC,GAAG,CAAA;EAC7B,OAAQ,CAAA,CAAA,EAAGC,SAAS,GAAGN,qBAAqB,GAAGA,qBAAqB,GAAGM,SAAU,CAAC,CAAA,CAAA;AACpF,CAAA;;AAEA;AACA,SAASC,iBAAiBA,CAACC,UAAsB,EAAE;EACjD,OAAQ;AACN,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,GAAG,EAAE,GAAA;GACN,CAAWA,UAAU,CAAC,CAAA;AACzB,CAAA;;AAEA;AACA,SAASC,iBAAiBA,CAACD,UAAsB,EAAE;EACjD,OAAQ;AACN,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,GAAG,EAAE,IAAA;GACN,CAAWA,UAAU,CAAC,CAAA;AACzB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaE,WAAW,gBAAGC,gBAAU,CAAmC,SAASD,WAAWA,CAAC;EAC3FL,GAAG;AACHO,EAAAA,IAAI,GAAG,IAAI;AACXC,EAAAA,OAAO,GAAGZ,4BAA4B;AACtCa,EAAAA,YAAY,GAAG,MAAM;EACrBC,oBAAoB;EACpBC,oBAAoB;SACpBC,OAAK;EACLC,SAAS;EACTC,QAAQ;EACR,GAAGC,IAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;AACf,EAAA,MAAMC,oBAAoB,GAAGC,2BAAoB,EAAE,CAAA;EAEnD,MAAMC,mBAAmB,GAAGC,iBAAW,CAAC,CACtCC,MAAuC,EACvCC,eAAuB,KACpB;AACH,IAAA,MAAMC,GAAG,GAAGF,MAAM,CAACE,GAAG,IAAK,GAAEF,MAAM,CAACG,KAAK,CAACC,IAAK,CAAGJ,CAAAA,EAAAA,MAAM,CAACG,KAAK,CAACE,SAAU,CAAC,CAAA,CAAA;IAC1E,MAAMC,gBAAgB,GAAGL,eAAe,GAAG,CAAC,IAAId,OAAO,GAAG,CAAC,CAAA;IAC3D,MAAMoB,UAAU,GAAGP,MAAM,CAACG,KAAK,CAACI,UAAU,IAAID,gBAAgB,CAAA;AAC9D,IAAA,oBAAOE,KAAK,CAACC,YAAY,CAACT,MAAM,EAAE;MAAEE,GAAG;MAAEhB,IAAI;AAAEqB,MAAAA,UAAAA;AAAW,KAAC,CAAC,CAAA;AAC9D,GAAC,EAAE,CACDrB,IAAI,EACJC,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,MAAMc,eAAe,GAAGS,aAAO,CAAC,MAC9BF,KAAK,CAACG,QAAQ,CAACjC,KAAK,CAACe,QAAQ,CAC9B,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,MAAMmB,mBAAmB,GAAGF,aAAO,CAAC,MAAM;IACxC,IAAIT,eAAe,IAAItB,GAAG,EAAE;MAC1B,OAAO6B,KAAK,CAACG,QAAQ,CAACE,GAAG,CAACpB,QAAQ,EAAGO,MAAM,iBACzCQ,KAAK,CAACM,cAAc,CAAcd,MAAM,CAAC,IAAIF,mBAAmB,CAACE,MAAM,EAAEC,eAAe,CACzF,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,MAAMc,aAAa,GAAGpC,GAAG,GAAGsB,eAAe,CAAA;AAC3C,IAAA,MAAMe,gBAAgB,GAAGR,KAAK,CAACG,QAAQ,CAACM,OAAO,CAACxB,QAAQ,CAAC,CAACyB,KAAK,CAAC,CAAC,EAAEH,aAAa,CAAC,CAAA;IAEjF,OAAOC,gBAAgB,CAACH,GAAG,CAAC,CAACb,MAAM,EAAEmB,OAAK,EAAEC,GAAG,KAAK;AAClD,MAAA,IAAI,eAACZ,KAAK,CAACM,cAAc,CAAcd,MAAM,CAAC,EAAE;AAAE,QAAA,OAAO,IAAI,CAAA;AAAC,OAAA;MAE9D,MAAMqB,aAAa,GAAGvB,mBAAmB,CAACE,MAAM,EAAEgB,gBAAgB,CAACM,MAAM,CAAC,CAAA;AAE1E,MAAA,IAAI,CAACC,iBAAW,CAACH,GAAG,EAAED,OAAK,CAAC,EAAE;AAC5B,QAAA,OAAOE,aAAa,CAAA;AACtB,OAAA;MAEA,IAAIjC,YAAY,KAAK,MAAM,EAAE;QAC3B,oBACEoB,KAAA,CAAAgB,aAAA,CAAA,KAAA,EAAA;AACEtB,UAAAA,GAAG,EAAC,UAAU;UACdV,SAAS,EAAEiC,0BAAM,CAACC,yBAA0B;AAC5CC,UAAAA,YAAY,EAAEtC,oBAAqB;AACnCuC,UAAAA,YAAY,EAAEtC,oBAAqB;UACnC,aAAad,EAAAA,kCAAAA;AAAmC,SAAA,eAEhDgC,KAAA,CAAAgB,aAAA,CAACK,iCAAgB,EAAA;AACfC,UAAAA,YAAY,EAAElC,oBAAqB;AACnCmC,UAAAA,eAAe,EAAC,+BAA+B;UAC/CvC,SAAS,EAAEiC,0BAAM,CAACO,kBAAAA;AAAmB,SAAA,eAErCxB,KAAA,CAAAgB,aAAA,CAACS,SAAI,EAAA;AACHC,UAAAA,MAAM,EAAEC,oBAAS;AACjBjD,UAAAA,IAAI,EAAEL,iBAAiB,CAACK,IAAI,CAAE;AAC9BkD,UAAAA,KAAK,EAAC,2BAAA;AAA2B,SAClC,CACe,CAAC,EACjBf,aACC,CAAC,CAAA;AAEV,OAAA;MAEA,IAAIjC,YAAY,KAAK,OAAO,EAAE;AAC5B,QAAA,oBACEoB,KAAA,CAAAgB,aAAA,CAAChB,KAAK,CAAC6B,QAAQ,EAAA;AAACnC,UAAAA,GAAG,EAAC,UAAA;AAAU,SAAA,EAC1BmB,aAAa,eACfb,KAAA,CAAAgB,aAAA,CAAA,KAAA,EAAA;AACEjC,UAAAA,KAAK,EAAE;YACL,8BAA8B,EAAE+C,QAAE,CAACC,IAAI,CAAC5D,GAAG,CAACQ,OAAO,EAAEZ,4BAA4B,CAAC,CAAA;WAC3D;AACzBiB,UAAAA,SAAS,EAAEgD,aAAU,CACnBf,0BAAM,CAACgB,0BAA0B,EACjChB,0BAAM,CAAE,CAAA,KAAA,EAAOvC,IAAK,CAAA,CAAC,CACvB,CAAE;AACFyC,UAAAA,YAAY,EAAEtC,oBAAqB;AACnCuC,UAAAA,YAAY,EAAEtC,oBAAAA;AAAqB,SAAA,eAEnCkB,KAAA,CAAAgB,aAAA,CAACkB,SAAI,EAAA;AACHC,UAAAA,IAAI,EAAE5D,iBAAiB,CAACG,IAAI,CAAE;AAC9BkD,UAAAA,KAAK,EAAC,gBAAgB;UACtB5C,SAAS,EAAEiC,0BAAM,CAACmB,mBAAAA;SAEhBnE,EAAAA,0BAA0B,CAACwB,eAAe,EAAEtB,GAAG,CAC7C,CACH,CACS,CAAC,CAAA;AAErB,OAAA;AAEA,MAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;GACH,EAAE,CACDsB,eAAe,EACftB,GAAG,EACHc,QAAQ,EACRK,mBAAmB,EACnBV,YAAY,EACZC,oBAAoB,EACpBC,oBAAoB,EACpBM,oBAAoB,EACpBV,IAAI,EACJC,OAAO,CACR,CAAC,CAAA;AAEF,EAAA,oBACEqB,KAAA,CAAAgB,aAAA,CAAAqB,KAAAA,EAAAA,MAAA,CAAAC,MAAA,CAAA;AACEC,IAAAA,IAAI,EAAC,OAAO;AACZC,IAAAA,GAAG,EAAErD,YAAa;AAClBH,IAAAA,SAAS,EAAEgD,aAAU,CACnBf,0BAAM,CAACzC,WAAW,EAClByC,0BAAM,CAAE,QAAOvC,IAAK,CAAA,CAAC,CAAC,EACtBM,SACF,CAAE;AACFD,IAAAA,KAAK,EAAE;AACL,MAAA,0BAA0B,EAAE+C,QAAE,CAACnD,OAAO,CAAC;MACvC,GAAGI,OAAAA;AACL,KAAA;GACIG,EAAAA,IAAI,CAENkB,EAAAA,mBACC,CAAC,CAAA;AAEV,CAAC;;;;;"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var bezierIcons = require('@channel.io/bezier-icons');
|
|
5
|
-
var index = require('../../node_modules
|
|
6
|
-
var index$1 = require('../../node_modules/classnames/index.js');
|
|
5
|
+
var index = require('../../node_modules/classnames/index.js');
|
|
7
6
|
var useMergeRefs = require('../../hooks/useMergeRefs.js');
|
|
8
7
|
var propsHelpers = require('../../types/props-helpers.js');
|
|
9
8
|
var react = require('../../utils/react.js');
|
|
10
9
|
var style = require('../../utils/style.js');
|
|
11
10
|
var type = require('../../utils/type.js');
|
|
12
11
|
var Modal_module = require('./Modal.module.scss.js');
|
|
12
|
+
var DialogPrimitive = require('../../alpha-components/DialogPrimitive/DialogPrimitive.js');
|
|
13
13
|
var WindowProvider = require('../WindowProvider/WindowProvider.js');
|
|
14
14
|
var ThemeProvider = require('../ThemeProvider/ThemeProvider.js');
|
|
15
15
|
var Button = require('../Button/Button.js');
|
|
@@ -52,7 +52,7 @@ function Modal({
|
|
|
52
52
|
const callback = open ? onShow : onHide;
|
|
53
53
|
callback?.();
|
|
54
54
|
}, [onShow, onHide]);
|
|
55
|
-
return /*#__PURE__*/React.createElement(
|
|
55
|
+
return /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitive, {
|
|
56
56
|
open: show,
|
|
57
57
|
defaultOpen: defaultShow,
|
|
58
58
|
onOpenChange: onOpenChange
|
|
@@ -112,14 +112,14 @@ const ModalContent = /*#__PURE__*/React.forwardRef(function ModalContent({
|
|
|
112
112
|
const propsContextValue = React.useMemo(() => ({
|
|
113
113
|
showCloseIcon
|
|
114
114
|
}), [showCloseIcon]);
|
|
115
|
-
return /*#__PURE__*/React.createElement(
|
|
115
|
+
return /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitivePortal, {
|
|
116
116
|
container: container
|
|
117
117
|
}, /*#__PURE__*/React.createElement(ThemeProvider.ThemeProvider, {
|
|
118
118
|
themeName: ThemeProvider.useThemeName()
|
|
119
|
-
}, /*#__PURE__*/React.createElement(
|
|
119
|
+
}, /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitiveOverlay, {
|
|
120
120
|
style: overlayStyle,
|
|
121
|
-
className: index
|
|
122
|
-
}, /*#__PURE__*/React.createElement(
|
|
121
|
+
className: index.default(Modal_module.default.ModalOverlay, propsHelpers.getZIndexClassName(zIndex))
|
|
122
|
+
}, /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitiveContent, {
|
|
123
123
|
asChild: true,
|
|
124
124
|
onPointerDownOutside: e => {
|
|
125
125
|
if (preventHideOnOutsideClick) {
|
|
@@ -139,7 +139,7 @@ const ModalContent = /*#__PURE__*/React.forwardRef(function ModalContent({
|
|
|
139
139
|
'--b-modal-height': style.cssDimension(height),
|
|
140
140
|
...style$1
|
|
141
141
|
},
|
|
142
|
-
className: index
|
|
142
|
+
className: index.default(Modal_module.default.ModalContent, className)
|
|
143
143
|
}, rest), /*#__PURE__*/React.createElement("section", {
|
|
144
144
|
className: Modal_module.default.ModalSection
|
|
145
145
|
}, /*#__PURE__*/React.createElement(ModalContainerContextProvider, {
|
|
@@ -175,7 +175,7 @@ function ModalHeaderTitle({
|
|
|
175
175
|
bold: true,
|
|
176
176
|
color: "txt-black-darkest"
|
|
177
177
|
}, children);
|
|
178
|
-
return /*#__PURE__*/React.createElement(
|
|
178
|
+
return /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitiveTitle, {
|
|
179
179
|
asChild: true
|
|
180
180
|
}, !type.isNil(subtitle) ? /*#__PURE__*/React.createElement("hgroup", {
|
|
181
181
|
className: Modal_module.default.HeadingGroup,
|
|
@@ -211,7 +211,7 @@ const ModalHeader = /*#__PURE__*/React.forwardRef(function ModalHeader({
|
|
|
211
211
|
const Hidden = hidden ? VisuallyHidden.VisuallyHidden : React.Fragment;
|
|
212
212
|
return /*#__PURE__*/React.createElement(Hidden, null, /*#__PURE__*/React.createElement("header", Object.assign({
|
|
213
213
|
ref: forwardedRef,
|
|
214
|
-
className: index
|
|
214
|
+
className: index.default(Modal_module.default.ModalHeader, hidden && Modal_module.default.hidden, className)
|
|
215
215
|
}, rest), hasTitleArea && /*#__PURE__*/React.createElement("div", {
|
|
216
216
|
className: Modal_module.default.TitleContainer
|
|
217
217
|
}, title && /*#__PURE__*/React.createElement(ModalHeaderTitle, {
|
|
@@ -221,7 +221,7 @@ const ModalHeader = /*#__PURE__*/React.forwardRef(function ModalHeader({
|
|
|
221
221
|
className: Modal_module.default.CloseIconButtonSpacer,
|
|
222
222
|
as: "div",
|
|
223
223
|
size: "m"
|
|
224
|
-
})), description && /*#__PURE__*/React.createElement(
|
|
224
|
+
})), description && /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitiveDescription, {
|
|
225
225
|
asChild: true
|
|
226
226
|
}, /*#__PURE__*/React.createElement(Text.Text, {
|
|
227
227
|
as: "p",
|
|
@@ -240,7 +240,7 @@ const ModalBody = /*#__PURE__*/React.forwardRef(function ModalBody({
|
|
|
240
240
|
}, forwardedRef) {
|
|
241
241
|
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
242
242
|
ref: forwardedRef,
|
|
243
|
-
className: index
|
|
243
|
+
className: index.default(Modal_module.default.ModalBody, className)
|
|
244
244
|
}, rest), children);
|
|
245
245
|
});
|
|
246
246
|
|
|
@@ -256,7 +256,7 @@ const ModalFooter = /*#__PURE__*/React.forwardRef(function ModalFooter({
|
|
|
256
256
|
}, forwardedRef) {
|
|
257
257
|
return /*#__PURE__*/React.createElement("footer", Object.assign({
|
|
258
258
|
ref: forwardedRef,
|
|
259
|
-
className: index
|
|
259
|
+
className: index.default(Modal_module.default.ModalFooter, className)
|
|
260
260
|
}, rest), leftContent && /*#__PURE__*/React.createElement("div", {
|
|
261
261
|
className: Modal_module.default.FooterLeftContent
|
|
262
262
|
}, leftContent), rightContent && /*#__PURE__*/React.createElement("div", {
|
|
@@ -273,7 +273,7 @@ const ModalFooter = /*#__PURE__*/React.forwardRef(function ModalFooter({
|
|
|
273
273
|
function ModalTrigger({
|
|
274
274
|
children
|
|
275
275
|
}) {
|
|
276
|
-
return /*#__PURE__*/React.createElement(
|
|
276
|
+
return /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitiveTrigger, {
|
|
277
277
|
asChild: true
|
|
278
278
|
}, children);
|
|
279
279
|
}
|
|
@@ -285,7 +285,7 @@ function ModalTrigger({
|
|
|
285
285
|
function ModalClose({
|
|
286
286
|
children
|
|
287
287
|
}) {
|
|
288
|
-
return /*#__PURE__*/React.createElement(
|
|
288
|
+
return /*#__PURE__*/React.createElement(DialogPrimitive.DialogPrimitiveClose, {
|
|
289
289
|
asChild: true
|
|
290
290
|
}, children);
|
|
291
291
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useMemo,\n useState,\n} from 'react'\n\nimport { CancelIcon } from '@channel.io/bezier-icons'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { createContext } from '~/src/utils/react'\nimport { cssDimension } from '~/src/utils/style'\nimport {\n isNil,\n isNumber,\n} from '~/src/utils/type'\n\nimport { Button } from '~/src/components/Button'\nimport { Text } from '~/src/components/Text'\nimport {\n ThemeProvider,\n useThemeName,\n} from '~/src/components/ThemeProvider'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport {\n type ModalBodyProps,\n type ModalCloseProps,\n type ModalContentProps,\n type ModalContentPropsContextValue,\n type ModalFooterProps,\n type ModalHeaderProps,\n type ModalProps,\n type ModalTitleSize,\n type ModalTriggerProps,\n} from './Modal.types'\n\nimport styles from './Modal.module.scss'\n\nconst [\n ModalContainerContextProvider,\n useModalContainerContext,\n] = createContext<HTMLElement | undefined>(undefined)\n\nexport { useModalContainerContext }\n\nconst [\n ModalContentPropsContextProvider,\n useModalContentPropsContext,\n] = createContext<ModalContentPropsContextValue>({\n showCloseIcon: false,\n})\n\n/**\n * `Modal` is a dialog that appears on top of the page.\n *\n * `Modal` is a context of the Modal-related components. It doesn't render any DOM node.\n * It controls the visibility of the entire component and provides\n * handlers and accessibility properties to Modal-related components.\n * @example\n *\n * ```tsx\n * // Anatomy of the Modal\n * <Modal>\n * <ModalTrigger />\n * <ModalContent>\n * <ModalHeader />\n * <ModalBody />\n * <ModalFooter />\n * </ModalContent>\n * </Modal>\n * ```\n */\nexport function Modal({\n children,\n show,\n defaultShow,\n onShow,\n onHide,\n}: ModalProps) {\n const onOpenChange = useCallback<NonNullable<DialogPrimitive.DialogProps['onOpenChange']>>((open) => {\n const callback = open ? onShow : onHide\n callback?.()\n }, [\n onShow,\n onHide,\n ])\n\n return (\n <DialogPrimitive.Root\n open={show}\n defaultOpen={defaultShow}\n onOpenChange={onOpenChange}\n >\n { children }\n </DialogPrimitive.Root>\n )\n}\n\n/**\n * `ModalContent` is a container of the modal content.\n * It creates a portal to render the modal content outside of the DOM tree\n * and renders overlay behind the modal content too.\n */\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(function ModalContent({\n children,\n style,\n className,\n container: givenContainer,\n showCloseIcon = false,\n preventHideOnOutsideClick = false,\n width = 'max-content',\n height = 'fit-content',\n zIndex = 'modal',\n collisionPadding = { top: 40, bottom: 40 },\n ...rest\n}, forwardedRef) {\n const rootElement = useRootElement()\n const container = givenContainer ?? rootElement\n const [contentContainer, setContentContainer] = useState<HTMLElement>()\n\n const contentRef = useMergeRefs(\n forwardedRef,\n useCallback((node: HTMLElement | null) => {\n setContentContainer(node ?? undefined)\n }, []),\n )\n\n const overlayStyle = (() => {\n const padding = (() => {\n if (isNumber(collisionPadding)) {\n return `${collisionPadding}px`\n }\n\n const { top, right, bottom, left } = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPadding,\n }\n\n return `${top}px ${right}px ${bottom}px ${left}px`\n })()\n\n return ({\n '--b-modal-collision-padding': padding,\n } as React.CSSProperties)\n })()\n\n const propsContextValue = useMemo((): ModalContentPropsContextValue => ({\n showCloseIcon,\n }), [showCloseIcon])\n\n return (\n <DialogPrimitive.Portal container={container}>\n <ThemeProvider themeName={useThemeName()}>\n <DialogPrimitive.Overlay\n style={overlayStyle}\n className={classNames(\n styles.ModalOverlay,\n getZIndexClassName(zIndex),\n )}\n >\n <DialogPrimitive.Content\n asChild\n onPointerDownOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n onInteractOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n >\n <div\n aria-modal=\"true\"\n ref={contentRef}\n style={{\n '--b-modal-width': cssDimension(width),\n '--b-modal-height': cssDimension(height),\n ...style,\n } as React.CSSProperties}\n className={classNames(\n styles.ModalContent,\n className,\n )}\n {...rest}\n >\n <section className={styles.ModalSection}>\n <ModalContainerContextProvider value={contentContainer}>\n <ModalContentPropsContextProvider value={propsContextValue}>\n { children }\n </ModalContentPropsContextProvider>\n </ModalContainerContextProvider>\n\n { /* NOTE: To prevent focusing first on the close button when opening the modal, place the close button behind. */ }\n { showCloseIcon && (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ModalClose>\n <Button\n className={styles.CloseIconButton}\n size=\"m\"\n leftContent={CancelIcon}\n colorVariant=\"monochrome-dark\"\n styleVariant=\"tertiary\"\n />\n </ModalClose>\n ) }\n </section>\n </div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Overlay>\n </ThemeProvider>\n </DialogPrimitive.Portal>\n )\n})\n\nfunction getTitleTypo(size: ModalTitleSize) {\n return ({\n l: '24',\n m: '16',\n } as const)[size]\n}\n\nfunction ModalHeaderTitle({\n children,\n size,\n subtitle,\n}: React.PropsWithChildren<Pick<ModalHeaderProps, 'subtitle'> & {\n size: NonNullable<ModalHeaderProps['titleSize']>\n}>) {\n const Title = (\n <Text\n className={styles.Title}\n as=\"h2\"\n typo={getTitleTypo(size)}\n bold\n color=\"txt-black-darkest\"\n >\n { children }\n </Text>\n )\n\n return (\n <DialogPrimitive.Title asChild>\n { !isNil(subtitle)\n ? (\n <hgroup\n className={styles.HeadingGroup}\n role=\"group\"\n aria-roledescription=\"Heading group\"\n >\n { Title }\n\n <Text\n aria-roledescription=\"subtitle\"\n as=\"p\"\n bold\n color=\"txt-black-dark\"\n typo=\"13\"\n >\n { subtitle }\n </Text>\n </hgroup>\n )\n : Title }\n </DialogPrimitive.Title>\n )\n}\n\n/**\n * `ModalHeader` is a header of the modal content.\n * It renders the accessible title and description of the modal.\n * If you want to hide the title and description, use `hidden` prop.\n */\nexport const ModalHeader = forwardRef<HTMLElement, ModalHeaderProps>(function ModalHeader({\n className,\n title,\n subtitle,\n description,\n titleSize = 'l',\n hidden = false,\n ...rest\n}, forwardedRef) {\n const { showCloseIcon } = useModalContentPropsContext()\n const hasTitleArea = title || showCloseIcon\n const Hidden = hidden ? VisuallyHidden : React.Fragment\n\n return (\n <Hidden>\n <header\n ref={forwardedRef}\n className={classNames(\n styles.ModalHeader,\n hidden && styles.hidden,\n className,\n )}\n {...rest}\n >\n { hasTitleArea && (\n <div className={styles.TitleContainer}>\n { title && (\n <ModalHeaderTitle\n size={titleSize}\n subtitle={subtitle}\n >\n { title }\n </ModalHeaderTitle>\n ) }\n\n { showCloseIcon && (\n <Button\n className={styles.CloseIconButtonSpacer}\n as=\"div\"\n size=\"m\"\n />\n ) }\n </div>\n ) }\n\n { description && (\n <DialogPrimitive.Description asChild>\n <Text\n as=\"p\"\n color=\"txt-black-darkest\"\n typo=\"15\"\n >\n { description }\n </Text>\n </DialogPrimitive.Description>\n ) }\n </header>\n </Hidden>\n )\n})\n\n/**\n * `ModalBody` is a simple wrapper of the main modal content.\n */\nexport const ModalBody = forwardRef(function ModalBody({\n children,\n className,\n ...rest\n}: ModalBodyProps, forwardedRef: React.Ref<HTMLDivElement>) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(\n styles.ModalBody,\n className,\n )}\n {...rest}\n >\n { children }\n </div>\n )\n})\n\n/**\n * `ModalFooter` is a simple wrapper of the footer of the modal content.\n * Usually, it contains the action buttons of the modal.\n */\nexport const ModalFooter = forwardRef<HTMLElement, ModalFooterProps>(function ModalFooter({\n className,\n leftContent,\n rightContent,\n ...rest\n}, forwardedRef) {\n return (\n <footer\n ref={forwardedRef}\n className={classNames(\n styles.ModalFooter,\n className,\n )}\n {...rest}\n >\n { leftContent && (\n <div className={styles.FooterLeftContent}>\n { leftContent }\n </div>\n ) }\n\n { rightContent && (\n <div className={styles.FooterRightContent}>\n { rightContent }\n </div>\n ) }\n </footer>\n )\n})\n\n/**\n * `ModalTrigger` is a button that opens the modal. **It doesn't render any DOM node.**\n * It passes the handler that opens the modal and accessibility properties to the children.\n *\n * It **must** be placed outside of the `ModalContent`.\n */\nexport function ModalTrigger({ children }: ModalTriggerProps) {\n return (\n <DialogPrimitive.Trigger asChild>\n { children }\n </DialogPrimitive.Trigger>\n )\n}\n\n/**\n * `ModalClose` is a button that closes the modal. **It doesn't render any DOM node.**\n * It passes the handler that closes the modal to the children.\n */\nexport function ModalClose({ children }: ModalCloseProps) {\n return (\n <DialogPrimitive.Close asChild>\n { children }\n </DialogPrimitive.Close>\n )\n}\n"],"names":["ModalContainerContextProvider","useModalContainerContext","createContext","undefined","ModalContentPropsContextProvider","useModalContentPropsContext","showCloseIcon","Modal","children","show","defaultShow","onShow","onHide","onOpenChange","useCallback","open","callback","React","createElement","DialogPrimitive","defaultOpen","ModalContent","forwardRef","style","className","container","givenContainer","preventHideOnOutsideClick","width","height","zIndex","collisionPadding","top","bottom","rest","forwardedRef","rootElement","useRootElement","contentContainer","setContentContainer","useState","contentRef","useMergeRefs","node","overlayStyle","padding","isNumber","right","left","propsContextValue","useMemo","ThemeProvider","themeName","useThemeName","classNames","styles","ModalOverlay","getZIndexClassName","asChild","onPointerDownOutside","e","preventDefault","onInteractOutside","Object","assign","ref","cssDimension","ModalSection","value","ModalClose","Button","CloseIconButton","size","leftContent","CancelIcon","colorVariant","styleVariant","getTitleTypo","l","m","ModalHeaderTitle","subtitle","Title","Text","as","typo","bold","color","isNil","HeadingGroup","role","ModalHeader","title","description","titleSize","hidden","hasTitleArea","Hidden","VisuallyHidden","Fragment","TitleContainer","CloseIconButtonSpacer","ModalBody","ModalFooter","rightContent","FooterLeftContent","FooterRightContent","ModalTrigger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useMemo,\n useState,\n} from 'react'\n\nimport { CancelIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport useMergeRefs from '~/src/hooks/useMergeRefs'\nimport { getZIndexClassName } from '~/src/types/props-helpers'\nimport { createContext } from '~/src/utils/react'\nimport { cssDimension } from '~/src/utils/style'\nimport {\n isNil,\n isNumber,\n} from '~/src/utils/type'\n\nimport {\n DialogPrimitive,\n DialogPrimitiveClose,\n DialogPrimitiveContent,\n DialogPrimitiveDescription,\n DialogPrimitiveOverlay,\n DialogPrimitivePortal,\n type DialogPrimitiveProps,\n DialogPrimitiveTitle,\n DialogPrimitiveTrigger,\n} from '~/src/alpha-components/DialogPrimitive'\nimport { Button } from '~/src/components/Button'\nimport { Text } from '~/src/components/Text'\nimport {\n ThemeProvider,\n useThemeName,\n} from '~/src/components/ThemeProvider'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\nimport { useRootElement } from '~/src/components/WindowProvider'\n\nimport {\n type ModalBodyProps,\n type ModalCloseProps,\n type ModalContentProps,\n type ModalContentPropsContextValue,\n type ModalFooterProps,\n type ModalHeaderProps,\n type ModalProps,\n type ModalTitleSize,\n type ModalTriggerProps,\n} from './Modal.types'\n\nimport styles from './Modal.module.scss'\n\nconst [\n ModalContainerContextProvider,\n useModalContainerContext,\n] = createContext<HTMLElement | undefined>(undefined)\n\nexport { useModalContainerContext }\n\nconst [\n ModalContentPropsContextProvider,\n useModalContentPropsContext,\n] = createContext<ModalContentPropsContextValue>({\n showCloseIcon: false,\n})\n\n/**\n * `Modal` is a dialog that appears on top of the page.\n *\n * `Modal` is a context of the Modal-related components. It doesn't render any DOM node.\n * It controls the visibility of the entire component and provides\n * handlers and accessibility properties to Modal-related components.\n * @example\n *\n * ```tsx\n * // Anatomy of the Modal\n * <Modal>\n * <ModalTrigger />\n * <ModalContent>\n * <ModalHeader />\n * <ModalBody />\n * <ModalFooter />\n * </ModalContent>\n * </Modal>\n * ```\n */\nexport function Modal({\n children,\n show,\n defaultShow,\n onShow,\n onHide,\n}: ModalProps) {\n const onOpenChange = useCallback<NonNullable<DialogPrimitiveProps['onOpenChange']>>((open) => {\n const callback = open ? onShow : onHide\n callback?.()\n }, [\n onShow,\n onHide,\n ])\n\n return (\n <DialogPrimitive\n open={show}\n defaultOpen={defaultShow}\n onOpenChange={onOpenChange}\n >\n { children }\n </DialogPrimitive>\n )\n}\n\n/**\n * `ModalContent` is a container of the modal content.\n * It creates a portal to render the modal content outside of the DOM tree\n * and renders overlay behind the modal content too.\n */\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(function ModalContent({\n children,\n style,\n className,\n container: givenContainer,\n showCloseIcon = false,\n preventHideOnOutsideClick = false,\n width = 'max-content',\n height = 'fit-content',\n zIndex = 'modal',\n collisionPadding = { top: 40, bottom: 40 },\n ...rest\n}, forwardedRef) {\n const rootElement = useRootElement()\n const container = givenContainer ?? rootElement\n const [contentContainer, setContentContainer] = useState<HTMLElement>()\n\n const contentRef = useMergeRefs(\n forwardedRef,\n useCallback((node: HTMLElement | null) => {\n setContentContainer(node ?? undefined)\n }, []),\n )\n\n const overlayStyle = (() => {\n const padding = (() => {\n if (isNumber(collisionPadding)) {\n return `${collisionPadding}px`\n }\n\n const { top, right, bottom, left } = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPadding,\n }\n\n return `${top}px ${right}px ${bottom}px ${left}px`\n })()\n\n return ({\n '--b-modal-collision-padding': padding,\n } as React.CSSProperties)\n })()\n\n const propsContextValue = useMemo((): ModalContentPropsContextValue => ({\n showCloseIcon,\n }), [showCloseIcon])\n\n return (\n <DialogPrimitivePortal container={container}>\n <ThemeProvider themeName={useThemeName()}>\n <DialogPrimitiveOverlay\n style={overlayStyle}\n className={classNames(\n styles.ModalOverlay,\n getZIndexClassName(zIndex),\n )}\n >\n <DialogPrimitiveContent\n asChild\n onPointerDownOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n onInteractOutside={(e) => {\n if (preventHideOnOutsideClick) {\n e.preventDefault()\n }\n }}\n >\n <div\n aria-modal=\"true\"\n ref={contentRef}\n style={{\n '--b-modal-width': cssDimension(width),\n '--b-modal-height': cssDimension(height),\n ...style,\n } as React.CSSProperties}\n className={classNames(\n styles.ModalContent,\n className,\n )}\n {...rest}\n >\n <section className={styles.ModalSection}>\n <ModalContainerContextProvider value={contentContainer}>\n <ModalContentPropsContextProvider value={propsContextValue}>\n { children }\n </ModalContentPropsContextProvider>\n </ModalContainerContextProvider>\n\n { /* NOTE: To prevent focusing first on the close button when opening the modal, place the close button behind. */ }\n { showCloseIcon && (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ModalClose>\n <Button\n className={styles.CloseIconButton}\n size=\"m\"\n leftContent={CancelIcon}\n colorVariant=\"monochrome-dark\"\n styleVariant=\"tertiary\"\n />\n </ModalClose>\n ) }\n </section>\n </div>\n </DialogPrimitiveContent>\n </DialogPrimitiveOverlay>\n </ThemeProvider>\n </DialogPrimitivePortal>\n )\n})\n\nfunction getTitleTypo(size: ModalTitleSize) {\n return ({\n l: '24',\n m: '16',\n } as const)[size]\n}\n\nfunction ModalHeaderTitle({\n children,\n size,\n subtitle,\n}: React.PropsWithChildren<Pick<ModalHeaderProps, 'subtitle'> & {\n size: NonNullable<ModalHeaderProps['titleSize']>\n}>) {\n const Title = (\n <Text\n className={styles.Title}\n as=\"h2\"\n typo={getTitleTypo(size)}\n bold\n color=\"txt-black-darkest\"\n >\n { children }\n </Text>\n )\n\n return (\n <DialogPrimitiveTitle asChild>\n { !isNil(subtitle)\n ? (\n <hgroup\n className={styles.HeadingGroup}\n role=\"group\"\n aria-roledescription=\"Heading group\"\n >\n { Title }\n\n <Text\n aria-roledescription=\"subtitle\"\n as=\"p\"\n bold\n color=\"txt-black-dark\"\n typo=\"13\"\n >\n { subtitle }\n </Text>\n </hgroup>\n )\n : Title }\n </DialogPrimitiveTitle>\n )\n}\n\n/**\n * `ModalHeader` is a header of the modal content.\n * It renders the accessible title and description of the modal.\n * If you want to hide the title and description, use `hidden` prop.\n */\nexport const ModalHeader = forwardRef<HTMLElement, ModalHeaderProps>(function ModalHeader({\n className,\n title,\n subtitle,\n description,\n titleSize = 'l',\n hidden = false,\n ...rest\n}, forwardedRef) {\n const { showCloseIcon } = useModalContentPropsContext()\n const hasTitleArea = title || showCloseIcon\n const Hidden = hidden ? VisuallyHidden : React.Fragment\n\n return (\n <Hidden>\n <header\n ref={forwardedRef}\n className={classNames(\n styles.ModalHeader,\n hidden && styles.hidden,\n className,\n )}\n {...rest}\n >\n { hasTitleArea && (\n <div className={styles.TitleContainer}>\n { title && (\n <ModalHeaderTitle\n size={titleSize}\n subtitle={subtitle}\n >\n { title }\n </ModalHeaderTitle>\n ) }\n\n { showCloseIcon && (\n <Button\n className={styles.CloseIconButtonSpacer}\n as=\"div\"\n size=\"m\"\n />\n ) }\n </div>\n ) }\n\n { description && (\n <DialogPrimitiveDescription asChild>\n <Text\n as=\"p\"\n color=\"txt-black-darkest\"\n typo=\"15\"\n >\n { description }\n </Text>\n </DialogPrimitiveDescription>\n ) }\n </header>\n </Hidden>\n )\n})\n\n/**\n * `ModalBody` is a simple wrapper of the main modal content.\n */\nexport const ModalBody = forwardRef(function ModalBody({\n children,\n className,\n ...rest\n}: ModalBodyProps, forwardedRef: React.Ref<HTMLDivElement>) {\n return (\n <div\n ref={forwardedRef}\n className={classNames(\n styles.ModalBody,\n className,\n )}\n {...rest}\n >\n { children }\n </div>\n )\n})\n\n/**\n * `ModalFooter` is a simple wrapper of the footer of the modal content.\n * Usually, it contains the action buttons of the modal.\n */\nexport const ModalFooter = forwardRef<HTMLElement, ModalFooterProps>(function ModalFooter({\n className,\n leftContent,\n rightContent,\n ...rest\n}, forwardedRef) {\n return (\n <footer\n ref={forwardedRef}\n className={classNames(\n styles.ModalFooter,\n className,\n )}\n {...rest}\n >\n { leftContent && (\n <div className={styles.FooterLeftContent}>\n { leftContent }\n </div>\n ) }\n\n { rightContent && (\n <div className={styles.FooterRightContent}>\n { rightContent }\n </div>\n ) }\n </footer>\n )\n})\n\n/**\n * `ModalTrigger` is a button that opens the modal. **It doesn't render any DOM node.**\n * It passes the handler that opens the modal and accessibility properties to the children.\n *\n * It **must** be placed outside of the `ModalContent`.\n */\nexport function ModalTrigger({ children }: ModalTriggerProps) {\n return (\n <DialogPrimitiveTrigger asChild>\n { children }\n </DialogPrimitiveTrigger>\n )\n}\n\n/**\n * `ModalClose` is a button that closes the modal. **It doesn't render any DOM node.**\n * It passes the handler that closes the modal to the children.\n */\nexport function ModalClose({ children }: ModalCloseProps) {\n return (\n <DialogPrimitiveClose asChild>\n { children }\n </DialogPrimitiveClose>\n )\n}\n"],"names":["ModalContainerContextProvider","useModalContainerContext","createContext","undefined","ModalContentPropsContextProvider","useModalContentPropsContext","showCloseIcon","Modal","children","show","defaultShow","onShow","onHide","onOpenChange","useCallback","open","callback","React","createElement","DialogPrimitive","defaultOpen","ModalContent","forwardRef","style","className","container","givenContainer","preventHideOnOutsideClick","width","height","zIndex","collisionPadding","top","bottom","rest","forwardedRef","rootElement","useRootElement","contentContainer","setContentContainer","useState","contentRef","useMergeRefs","node","overlayStyle","padding","isNumber","right","left","propsContextValue","useMemo","DialogPrimitivePortal","ThemeProvider","themeName","useThemeName","DialogPrimitiveOverlay","classNames","styles","ModalOverlay","getZIndexClassName","DialogPrimitiveContent","asChild","onPointerDownOutside","e","preventDefault","onInteractOutside","Object","assign","ref","cssDimension","ModalSection","value","ModalClose","Button","CloseIconButton","size","leftContent","CancelIcon","colorVariant","styleVariant","getTitleTypo","l","m","ModalHeaderTitle","subtitle","Title","Text","as","typo","bold","color","DialogPrimitiveTitle","isNil","HeadingGroup","role","ModalHeader","title","description","titleSize","hidden","hasTitleArea","Hidden","VisuallyHidden","Fragment","TitleContainer","CloseIconButtonSpacer","DialogPrimitiveDescription","ModalBody","ModalFooter","rightContent","FooterLeftContent","FooterRightContent","ModalTrigger","DialogPrimitiveTrigger","DialogPrimitiveClose"],"mappings":"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"}
|
|
@@ -3,22 +3,22 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var index = require('../../node_modules/classnames/index.js');
|
|
5
5
|
var style = require('../../utils/style.js');
|
|
6
|
-
var
|
|
6
|
+
var SmoothCornersBox_module = require('./SmoothCornersBox.module.scss.js');
|
|
7
7
|
var FeatureProvider = require('../FeatureProvider/FeatureProvider.js');
|
|
8
8
|
var FeatureProvider_types = require('../FeatureProvider/FeatureProvider.types.js');
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* `
|
|
11
|
+
* `SmoothCornersBox` is a simple `div` element with smooth corners.
|
|
12
12
|
* It is available by enabling the `SmoothCornersFeature`.
|
|
13
13
|
* @example
|
|
14
14
|
*
|
|
15
15
|
* ```tsx
|
|
16
16
|
* <AppProvider features={[SmoothCornersFeature]}>
|
|
17
|
-
* <
|
|
17
|
+
* <SmoothCornersBox />
|
|
18
18
|
* </AppProvider>
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
21
|
+
const SmoothCornersBox = /*#__PURE__*/React.forwardRef(function SmoothCornersBox({
|
|
22
22
|
children,
|
|
23
23
|
style: style$1,
|
|
24
24
|
className,
|
|
@@ -51,10 +51,10 @@ const AlphaSmoothCornersBox = /*#__PURE__*/React.forwardRef(function AlphaSmooth
|
|
|
51
51
|
'--b-smooth-corners-box-background-color': style.cssVar(backgroundColor),
|
|
52
52
|
'--b-smooth-corners-box-background-image': style.cssUrl(backgroundImage)
|
|
53
53
|
},
|
|
54
|
-
className: index.default(
|
|
54
|
+
className: index.default(SmoothCornersBox_module.default.SmoothCornersBox, className),
|
|
55
55
|
"data-state": FeatureProvider.useFeatureFlag(FeatureProvider_types.FeatureType.SmoothCorners) && !disabled ? 'enabled' : 'disabled'
|
|
56
56
|
}), children);
|
|
57
57
|
});
|
|
58
58
|
|
|
59
|
-
exports.
|
|
60
|
-
//# sourceMappingURL=
|
|
59
|
+
exports.SmoothCornersBox = SmoothCornersBox;
|
|
60
|
+
//# sourceMappingURL=SmoothCornersBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmoothCornersBox.js","sources":["../../../../src/components/SmoothCornersBox/SmoothCornersBox.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport classNames from 'classnames'\n\nimport {\n cssUrl,\n cssVar,\n px,\n} from '~/src/utils/style'\n\nimport {\n FeatureType,\n useFeatureFlag,\n} from '~/src/components/FeatureProvider'\n\nimport { type SmoothCornersBoxProps } from './SmoothCornersBox.types'\n\nimport styles from './SmoothCornersBox.module.scss'\n\n/**\n * `SmoothCornersBox` is a simple `div` element with smooth corners.\n * It is available by enabling the `SmoothCornersFeature`.\n * @example\n *\n * ```tsx\n * <AppProvider features={[SmoothCornersFeature]}>\n * <SmoothCornersBox />\n * </AppProvider>\n * ```\n */\nexport const SmoothCornersBox = forwardRef<HTMLDivElement, SmoothCornersBoxProps>(function SmoothCornersBox({\n children,\n style,\n className,\n disabled,\n borderRadius,\n margin,\n shadow,\n backgroundColor,\n backgroundImage,\n ...rest\n}, forwardedRef) {\n const shadowBlurRadius = shadow?.blurRadius ?? 0\n const shadowSpreadRadius = shadow?.spreadRadius ?? 0\n\n return (\n <div\n {...rest}\n ref={forwardedRef}\n style={{\n ...style,\n '--b-smooth-corners-box-border-radius': borderRadius,\n '--b-smooth-corners-box-shadow-offset-x': px(shadow?.offsetX),\n '--b-smooth-corners-box-shadow-offset-y': px(shadow?.offsetY),\n '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,\n '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,\n '--b-smooth-corners-box-shadow-color': cssVar(shadow?.color),\n /**\n * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.\n * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}\n */\n '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,\n '--b-smooth-corners-box-margin': `${margin ?? 0}px`,\n '--b-smooth-corners-box-background-color': cssVar(backgroundColor),\n '--b-smooth-corners-box-background-image': cssUrl(backgroundImage),\n } as React.CSSProperties}\n className={classNames(\n styles.SmoothCornersBox,\n className,\n )}\n data-state={\n useFeatureFlag(FeatureType.SmoothCorners) && !disabled\n ? 'enabled'\n : 'disabled'\n }\n >\n { children }\n </div>\n )\n})\n"],"names":["SmoothCornersBox","forwardRef","children","style","className","disabled","borderRadius","margin","shadow","backgroundColor","backgroundImage","rest","forwardedRef","shadowBlurRadius","blurRadius","shadowSpreadRadius","spreadRadius","React","createElement","Object","assign","ref","px","offsetX","offsetY","cssVar","color","Math","max","cssUrl","classNames","styles","useFeatureFlag","FeatureType","SmoothCorners"],"mappings":";;;;;;;;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACaA,gBAAgB,gBAAGC,gBAAU,CAAwC,SAASD,gBAAgBA,CAAC;EAC1GE,QAAQ;SACRC,OAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,eAAe;EACf,GAAGC,IAAAA;AACL,CAAC,EAAEC,YAAY,EAAE;AACf,EAAA,MAAMC,gBAAgB,GAAGL,MAAM,EAAEM,UAAU,IAAI,CAAC,CAAA;AAChD,EAAA,MAAMC,kBAAkB,GAAGP,MAAM,EAAEQ,YAAY,IAAI,CAAC,CAAA;EAEpD,oBACEC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,MAAA,CAAAC,MAAA,KACMT,IAAI,EAAA;AACRU,IAAAA,GAAG,EAAET,YAAa;AAClBT,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGA,OAAK;AACR,MAAA,sCAAsC,EAAEG,YAAY;AACpD,MAAA,wCAAwC,EAAEgB,QAAE,CAACd,MAAM,EAAEe,OAAO,CAAC;AAC7D,MAAA,wCAAwC,EAAED,QAAE,CAACd,MAAM,EAAEgB,OAAO,CAAC;MAC7D,2CAA2C,EAAG,CAAEX,EAAAA,gBAAiB,CAAG,EAAA,CAAA;MACpE,6CAA6C,EAAG,CAAEE,EAAAA,kBAAmB,CAAG,EAAA,CAAA;AACxE,MAAA,qCAAqC,EAAEU,YAAM,CAACjB,MAAM,EAAEkB,KAAK,CAAC;AAC5D;AACR;AACA;AACA;AACQ,MAAA,gCAAgC,EAAG,CAAA,EAAEC,IAAI,CAACC,GAAG,CAACf,gBAAgB,EAAEE,kBAAkB,CAAC,GAAG,CAAE,CAAG,EAAA,CAAA;AAC3F,MAAA,+BAA+B,EAAG,CAAA,EAAER,MAAM,IAAI,CAAE,CAAG,EAAA,CAAA;AACnD,MAAA,yCAAyC,EAAEkB,YAAM,CAAChB,eAAe,CAAC;MAClE,yCAAyC,EAAEoB,YAAM,CAACnB,eAAe,CAAA;KAC1C;IACzBN,SAAS,EAAE0B,aAAU,CACnBC,+BAAM,CAAC/B,gBAAgB,EACvBI,SACF,CAAE;IACF,YACE4B,EAAAA,8BAAc,CAACC,iCAAW,CAACC,aAAa,CAAC,IAAI,CAAC7B,QAAQ,GAClD,SAAS,GACT,UAAA;AACL,GAAA,CAAA,EAECH,QACC,CAAC,CAAA;AAEV,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmoothCornersBox.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var index = require('../../node_modules/@radix-ui/react-tooltip/dist/index.js');
|
|
5
4
|
var type = require('../../utils/type.js');
|
|
6
5
|
var Tooltip_module = require('./Tooltip.module.scss.js');
|
|
7
6
|
var WindowProvider = require('../WindowProvider/WindowProvider.js');
|
|
7
|
+
var TooltipPrimitive = require('../../alpha-components/TooltipPrimitive/TooltipPrimitive.js');
|
|
8
8
|
var ThemeProvider = require('../ThemeProvider/ThemeProvider.js');
|
|
9
9
|
var Stack = require('../Stack/Stack.js');
|
|
10
10
|
var Text = require('../Text/Text.js');
|
|
@@ -159,19 +159,19 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip({
|
|
|
159
159
|
}
|
|
160
160
|
onHide();
|
|
161
161
|
}, [shouldBeHidden, delayHide, onShow, onHide]);
|
|
162
|
-
return /*#__PURE__*/React.createElement(
|
|
162
|
+
return /*#__PURE__*/React.createElement(TooltipPrimitive.TooltipPrimitiveProvider, {
|
|
163
163
|
skipDelayDuration: 0
|
|
164
|
-
}, /*#__PURE__*/React.createElement(
|
|
164
|
+
}, /*#__PURE__*/React.createElement(TooltipPrimitive.TooltipPrimitive, {
|
|
165
165
|
open: show,
|
|
166
166
|
defaultOpen: defaultShow,
|
|
167
167
|
delayDuration: delayShow,
|
|
168
168
|
disableHoverableContent: !allowHover,
|
|
169
169
|
onOpenChange: onOpenChange
|
|
170
|
-
}, /*#__PURE__*/React.createElement(
|
|
170
|
+
}, /*#__PURE__*/React.createElement(TooltipPrimitive.TooltipPrimitiveTrigger, {
|
|
171
171
|
asChild: true
|
|
172
|
-
}, children), /*#__PURE__*/React.createElement(
|
|
172
|
+
}, children), /*#__PURE__*/React.createElement(TooltipPrimitive.TooltipPrimitivePortal, {
|
|
173
173
|
container: container
|
|
174
|
-
}, /*#__PURE__*/React.createElement(ThemeProvider.InvertedThemeProvider, null, /*#__PURE__*/React.createElement(
|
|
174
|
+
}, /*#__PURE__*/React.createElement(ThemeProvider.InvertedThemeProvider, null, /*#__PURE__*/React.createElement(TooltipPrimitive.TooltipPrimitiveContent, Object.assign({}, rest, getSideAndAlign(placement), {
|
|
175
175
|
asChild: true,
|
|
176
176
|
ref: forwardedRef,
|
|
177
177
|
sideOffset: offset,
|