@channel.io/bezier-react 2.2.3 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Emoji/Emoji.js +6 -2
- package/dist/cjs/components/Emoji/Emoji.js.map +1 -1
- package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.js +2 -2
- package/dist/cjs/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.js.map +1 -1
- package/dist/cjs/components/OutlineItem/OutlineItem.js +1 -1
- package/dist/cjs/components/OutlineItem/OutlineItem.js.map +1 -1
- package/dist/cjs/components/Toast/Toast.js +4 -3
- package/dist/cjs/components/Toast/Toast.js.map +1 -1
- package/dist/cjs/styles.css +1 -1
- package/dist/esm/components/Emoji/Emoji.mjs +6 -2
- package/dist/esm/components/Emoji/Emoji.mjs.map +1 -1
- package/dist/esm/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.mjs +2 -2
- package/dist/esm/components/FeatureProvider/SmoothCornersFeature/SmoothCornersFeature.mjs.map +1 -1
- package/dist/esm/components/OutlineItem/OutlineItem.mjs +1 -1
- package/dist/esm/components/OutlineItem/OutlineItem.mjs.map +1 -1
- package/dist/esm/components/Toast/Toast.mjs +4 -3
- package/dist/esm/components/Toast/Toast.mjs.map +1 -1
- package/dist/esm/styles.css +1 -1
- package/dist/types/components/Emoji/Emoji.d.ts +0 -1
- package/dist/types/components/Emoji/Emoji.d.ts.map +1 -1
- package/dist/types/components/Emoji/Emoji.types.d.ts +8 -1
- package/dist/types/components/Emoji/Emoji.types.d.ts.map +1 -1
- package/dist/types/components/Toast/Toast.d.ts +1 -1
- package/dist/types/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/components/Toast/Toast.types.d.ts +8 -0
- package/dist/types/components/Toast/Toast.types.d.ts.map +1 -1
- package/dist/types/components/TokenProvider/TokenProvider.d.ts +1 -1
- package/dist/types/components/TokenProvider/TokenProvider.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/AlphaButton/Button.module.scss +3 -0
- package/src/components/AlphaFloatingButton/FloatingButton.module.scss +2 -0
- package/src/components/AlphaFloatingIconButton/FloatingIconButton.module.scss +2 -0
- package/src/components/AlphaIconButton/IconButton.module.scss +3 -0
- package/src/components/Banner/Banner.stories.tsx +2 -2
- package/src/components/Button/Button.module.scss +8 -1
- package/src/components/Emoji/Emoji.stories.tsx +5 -15
- package/src/components/Emoji/Emoji.test.tsx +1 -3
- package/src/components/Emoji/Emoji.tsx +10 -2
- package/src/components/Emoji/Emoji.types.ts +8 -1
- package/src/components/Icon/Icon.stories.tsx +1 -2
- package/src/components/OutlineItem/OutlineItem.module.scss +1 -3
- package/src/components/OutlineItem/OutlineItem.tsx +1 -1
- package/src/components/TextField/TextField.module.scss +1 -0
- package/src/components/Toast/Toast.tsx +7 -3
- package/src/components/Toast/Toast.types.ts +8 -0
- package/src/stories/alpha-color.mdx +64 -51
- package/src/styles/components/elevation.module.scss +1 -0
- package/src/styles/components/radius.module.scss +1 -0
- package/src/styles/components/z-index.module.scss +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Emoji.d.ts","sourceRoot":"","sources":["../../../../src/components/Emoji/Emoji.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Emoji.d.ts","sourceRoot":"","sources":["../../../../src/components/Emoji/Emoji.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAO7D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAM3C;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,mFAwBhB,CAAA"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import type { BezierComponentProps, SizeProps } from "../../types/props";
|
|
2
2
|
export type EmojiSize = '16' | '20' | '24' | '30' | '36' | '42' | '48' | '60' | '72' | '90' | '120';
|
|
3
3
|
interface EmojiOwnProps {
|
|
4
|
+
/**
|
|
5
|
+
* Name of the emoji. e.g. 'grinning', 'smiley', etc.
|
|
6
|
+
*/
|
|
4
7
|
name: string;
|
|
5
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated
|
|
10
|
+
* `imageUrl` is created in the component and will be removed in the next major version.
|
|
11
|
+
*/
|
|
12
|
+
imageUrl?: string;
|
|
6
13
|
}
|
|
7
14
|
export interface EmojiProps extends BezierComponentProps<'div'>, SizeProps<EmojiSize>, EmojiOwnProps {
|
|
8
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Emoji.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Emoji/Emoji.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,0BAAyB;AAExE,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,CAAA;AAET,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Emoji.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Emoji/Emoji.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,0BAAyB;AAExE,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,CAAA;AAET,UAAU,aAAa;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UACf,SAAQ,oBAAoB,CAAC,KAAK,CAAC,EACjC,SAAS,CAAC,SAAS,CAAC,EACpB,aAAa;CAAG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ToastProps, type ToastProviderProps, type ToastType } from './Toast.types';
|
|
3
3
|
export declare function Toast({ placement, appearance: appearanceProp, preset, icon: iconProp, content, zIndex, autoDismiss, autoDismissTimeout, version, onDismiss, }: ToastProps): React.JSX.Element;
|
|
4
|
-
export declare function ToastProvider({ autoDismissTimeout, container: givenContainer, offset, children, }: ToastProviderProps): React.JSX.Element;
|
|
4
|
+
export declare function ToastProvider({ autoDismissTimeout, container: givenContainer, zIndex, offset, children, }: ToastProviderProps): React.JSX.Element;
|
|
5
5
|
export declare function useToast(): {
|
|
6
6
|
addToast: (content: import("./Toast.types").ToastContent, options?: import("./Toast.types").ToastOptions) => import("./Toast.types").ToastId;
|
|
7
7
|
updateToast: (toastId: import("./Toast.types").ToastId, content: import("./Toast.types").ToastContent, options?: import("./Toast.types").ToastOptions) => import("./Toast.types").ToastId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AA2BvE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACf,MAAM,eAAe,CAAA;AA8BtB,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,IAAI,EAAE,QAAQ,EACd,OAAO,EACP,MAAgB,EAChB,WAAkB,EAClB,kBAAkB,EAClB,OAAW,EACX,SAAS,GACV,EAAE,UAAU,qBAmGZ;AAkBD,wBAAgB,aAAa,CAAC,EAC5B,kBAAyB,EACzB,SAAS,EAAE,cAAc,EACzB,MAAuB,EACvB,QAAa,GACd,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AA2BvE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACf,MAAM,eAAe,CAAA;AA8BtB,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,IAAI,EAAE,QAAQ,EACd,OAAO,EACP,MAAgB,EAChB,WAAkB,EAClB,kBAAkB,EAClB,OAAW,EACX,SAAS,GACV,EAAE,UAAU,qBAmGZ;AAkBD,wBAAgB,aAAa,CAAC,EAC5B,kBAAyB,EACzB,SAAS,EAAE,cAAc,EACzB,MAAgB,EAChB,MAAuB,EACvB,QAAa,GACd,EAAE,kBAAkB,qBAmDpB;AAED,wBAAgB,QAAQ;;;;;;;EAevB"}
|
|
@@ -10,6 +10,9 @@ interface ToastOwnProps {
|
|
|
10
10
|
appearance?: ToastAppearance;
|
|
11
11
|
preset?: ToastPreset;
|
|
12
12
|
icon?: BezierIcon;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use `zIndex` of `ToastProvider` instead
|
|
15
|
+
*/
|
|
13
16
|
zIndex?: ZIndex;
|
|
14
17
|
autoDismiss?: boolean;
|
|
15
18
|
autoDismissTimeout?: number;
|
|
@@ -31,6 +34,11 @@ type Offset = {
|
|
|
31
34
|
interface ToastProviderOwnProps {
|
|
32
35
|
offset?: Offset;
|
|
33
36
|
container?: HTMLElement | null;
|
|
37
|
+
/**
|
|
38
|
+
* z-index level of the Toast container
|
|
39
|
+
* @default 'toast'
|
|
40
|
+
*/
|
|
41
|
+
zIndex?: ZIndex;
|
|
34
42
|
}
|
|
35
43
|
export interface ToastProviderProps extends ChildrenProps, Pick<ToastProps, 'autoDismissTimeout'>, ToastProviderOwnProps {
|
|
36
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,0BAAyB;AACzE,OAAO,EAAE,KAAK,MAAM,EAAE,2BAA0B;AAEhD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAEtE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEhF,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAEvD,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,YAAY,CAAC,EAAE,aAAa;CAAG;AAEhF,KAAK,MAAM,GAAG;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"Toast.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/Toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,0BAAyB;AACzE,OAAO,EAAE,KAAK,MAAM,EAAE,2BAA0B;AAEhD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,cAAc,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAEtE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEhF,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAEvD,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,YAAY,CAAC,EAAE,aAAa;CAAG;AAEhF,KAAK,MAAM,GAAG;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBACf,SAAQ,aAAa,EACnB,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,EACtC,qBAAqB;CAAG;AAE5B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;AAErD,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,UAAU,EACV,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,CAC5D,GAAG;IACF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,YAAY,CAAA;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAA;IAC/D,MAAM,EAAE,CACN,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,KACnB,OAAO,CAAA;IACZ,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,WAAW,EAAE,SAAS,EAAE,CAAA;CACzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type TokenContextValue, type TokenProviderProps } from './TokenProvider.types';
|
|
3
|
-
declare const useTokenContext: (consumerName: string) =>
|
|
3
|
+
declare const useTokenContext: (consumerName: string) => TokenContextValue;
|
|
4
4
|
export { useTokenContext };
|
|
5
5
|
/**
|
|
6
6
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/TokenProvider/TokenProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAA;AAE9B,QAAA,MAA6B,eAAe,
|
|
1
|
+
{"version":3,"file":"TokenProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/TokenProvider/TokenProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAA;AAE9B,QAAA,MAA6B,eAAe,6CACoB,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,CAAA;AAa1B;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,qBAcxE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@channel.io/bezier-react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "React components library that implements Bezier design system.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"@babel/preset-env": "^7.23.9",
|
|
64
64
|
"@babel/preset-react": "^7.23.3",
|
|
65
65
|
"@babel/preset-typescript": "^7.23.3",
|
|
66
|
-
"@channel.io/bezier-icons": "0.
|
|
66
|
+
"@channel.io/bezier-icons": "0.35.0",
|
|
67
67
|
"@chromatic-com/storybook": "^1",
|
|
68
68
|
"@rollup/plugin-alias": "^5.1.0",
|
|
69
69
|
"@rollup/plugin-babel": "^6.0.4",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
"dependencies": {
|
|
134
|
-
"@channel.io/bezier-tokens": "0.2.
|
|
134
|
+
"@channel.io/bezier-tokens": "0.2.7",
|
|
135
135
|
"@radix-ui/react-checkbox": "^1.0.4",
|
|
136
136
|
"@radix-ui/react-dialog": "^1.0.5",
|
|
137
137
|
"@radix-ui/react-radio-group": "^1.1.3",
|
|
@@ -186,6 +186,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
186
186
|
&:where(.variant-primary) {
|
|
187
187
|
@each $color in $chromatic-colors {
|
|
188
188
|
&:where(.color-#{'' + $color}) {
|
|
189
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
189
190
|
background-color: var(--bgtxt-#{$color}-dark);
|
|
190
191
|
}
|
|
191
192
|
}
|
|
@@ -202,6 +203,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
202
203
|
&:where(.variant-secondary) {
|
|
203
204
|
@each $color in $chromatic-colors {
|
|
204
205
|
&:where(.color-#{'' + $color}) {
|
|
206
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
205
207
|
background-color: var(--bgtxt-#{$color}-lighter);
|
|
206
208
|
}
|
|
207
209
|
}
|
|
@@ -214,6 +216,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
214
216
|
&:where(.variant-tertiary) {
|
|
215
217
|
@each $color in $chromatic-colors {
|
|
216
218
|
&:where(.color-#{'' + $color}) {
|
|
219
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
217
220
|
background-color: var(--bgtxt-#{$color}-lightest);
|
|
218
221
|
}
|
|
219
222
|
}
|
|
@@ -139,6 +139,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
139
139
|
&:where(.variant-primary) {
|
|
140
140
|
@each $color in $chromatic-colors {
|
|
141
141
|
&:where(.color-#{'' + $color}) {
|
|
142
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
142
143
|
background-color: var(--bgtxt-#{$color}-dark);
|
|
143
144
|
}
|
|
144
145
|
}
|
|
@@ -155,6 +156,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
155
156
|
&:where(.variant-secondary) {
|
|
156
157
|
@each $color in $chromatic-colors {
|
|
157
158
|
&:where(.color-#{'' + $color}) {
|
|
159
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
158
160
|
background-color: var(--bgtxt-#{$color}-lighter);
|
|
159
161
|
}
|
|
160
162
|
}
|
|
@@ -112,6 +112,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
112
112
|
&:where(.variant-primary) {
|
|
113
113
|
@each $color in $chromatic-colors {
|
|
114
114
|
&:where(.color-#{'' + $color}) {
|
|
115
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
115
116
|
background-color: var(--bgtxt-#{$color}-dark);
|
|
116
117
|
}
|
|
117
118
|
}
|
|
@@ -128,6 +129,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
128
129
|
&:where(.variant-secondary) {
|
|
129
130
|
@each $color in $chromatic-colors {
|
|
130
131
|
&:where(.color-#{'' + $color}) {
|
|
132
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
131
133
|
background-color: var(--bgtxt-#{$color}-lighter);
|
|
132
134
|
}
|
|
133
135
|
}
|
|
@@ -167,6 +167,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
167
167
|
&:where(.variant-primary) {
|
|
168
168
|
@each $color in $chromatic-colors {
|
|
169
169
|
&:where(.color-#{'' + $color}) {
|
|
170
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
170
171
|
background-color: var(--bgtxt-#{$color}-dark);
|
|
171
172
|
}
|
|
172
173
|
}
|
|
@@ -183,6 +184,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
183
184
|
&:where(.variant-secondary) {
|
|
184
185
|
@each $color in $chromatic-colors {
|
|
185
186
|
&:where(.color-#{'' + $color}) {
|
|
187
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
186
188
|
background-color: var(--bgtxt-#{$color}-lighter);
|
|
187
189
|
}
|
|
188
190
|
}
|
|
@@ -195,6 +197,7 @@ $chromatic-colors: 'blue', 'red', 'green', 'cobalt', 'orange', 'pink', 'purple';
|
|
|
195
197
|
&:where(.variant-tertiary) {
|
|
196
198
|
@each $color in $chromatic-colors {
|
|
197
199
|
&:where(.color-#{'' + $color}) {
|
|
200
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
198
201
|
background-color: var(--bgtxt-#{$color}-lightest);
|
|
199
202
|
}
|
|
200
203
|
}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
BlockIcon,
|
|
5
5
|
CancelIcon,
|
|
6
6
|
CancelSmallIcon,
|
|
7
|
-
|
|
7
|
+
ChannelBtnFilledIcon,
|
|
8
8
|
CheckCircleFilledIcon,
|
|
9
9
|
ErrorTriangleFilledIcon,
|
|
10
10
|
Hourglass3Icon,
|
|
@@ -262,7 +262,7 @@ export const UsageLinkTo: StoryObj<{}> = {
|
|
|
262
262
|
render: () => (
|
|
263
263
|
<Banner
|
|
264
264
|
variant="cobalt"
|
|
265
|
-
icon={
|
|
265
|
+
icon={ChannelBtnFilledIcon}
|
|
266
266
|
content="채널톡 정말 좋은 서비스에요."
|
|
267
267
|
hasLink
|
|
268
268
|
linkText="사용안내"
|
|
@@ -81,9 +81,11 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
|
|
|
81
81
|
@each $color-variant in $chromatic-color-variants {
|
|
82
82
|
&:where(.color-#{$color-variant}) {
|
|
83
83
|
color: var(--bgtxt-absolute-white-dark);
|
|
84
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
84
85
|
background-color: var(--bgtxt-#{$color-variant}-normal);
|
|
85
86
|
|
|
86
87
|
&#{$active-selector} {
|
|
88
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
87
89
|
background-color: var(--bgtxt-#{$color-variant}-dark);
|
|
88
90
|
}
|
|
89
91
|
}
|
|
@@ -112,12 +114,14 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
|
|
|
112
114
|
&:where(.style-secondary) {
|
|
113
115
|
@each $color-variant in $chromatic-color-variants {
|
|
114
116
|
&:where(.color-#{$color-variant}) {
|
|
117
|
+
/* stylelint-disable bezier/validate-token */
|
|
115
118
|
color: var(--bgtxt-#{$color-variant}-normal);
|
|
116
119
|
background-color: var(--bgtxt-#{$color-variant}-lightest);
|
|
117
120
|
|
|
118
121
|
&#{$active-selector} {
|
|
119
122
|
background-color: var(--bgtxt-#{$color-variant}-lighter);
|
|
120
123
|
}
|
|
124
|
+
/* stylelint-enable bezier/validate-token */
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
127
|
|
|
@@ -154,10 +158,11 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
|
|
|
154
158
|
|
|
155
159
|
@each $color-variant in $chromatic-color-variants {
|
|
156
160
|
&:where(.color-#{$color-variant}) {
|
|
161
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
157
162
|
color: var(--bgtxt-#{$color-variant}-normal);
|
|
158
163
|
|
|
159
164
|
&#{$active-selector} {
|
|
160
|
-
|
|
165
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
161
166
|
background-color: var(--bgtxt-#{$color-variant}-lightest);
|
|
162
167
|
}
|
|
163
168
|
}
|
|
@@ -192,9 +197,11 @@ $active-selector: ':where(.active, :hover):where(:not(:disabled))';
|
|
|
192
197
|
@each $color-variant in $chromatic-color-variants {
|
|
193
198
|
&:where(.color-#{$color-variant}) {
|
|
194
199
|
color: var(--bgtxt-absolute-white-dark);
|
|
200
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
195
201
|
background-color: var(--bgtxt-#{$color-variant}-normal);
|
|
196
202
|
|
|
197
203
|
&#{$active-selector} {
|
|
204
|
+
/* stylelint-disable-next-line bezier/validate-token */
|
|
198
205
|
background-color: var(--bgtxt-#{$color-variant}-dark);
|
|
199
206
|
}
|
|
200
207
|
}
|
|
@@ -3,25 +3,15 @@ import { type Meta, type StoryObj } from '@storybook/react'
|
|
|
3
3
|
import { Emoji } from './Emoji'
|
|
4
4
|
import { type EmojiProps } from './Emoji.types'
|
|
5
5
|
|
|
6
|
-
const
|
|
7
|
-
'https://cf.exp.channel.io/asset/emoji/images/80/blush.png'
|
|
8
|
-
|
|
9
|
-
const meta: Meta<typeof Emoji> = {
|
|
6
|
+
const meta = {
|
|
10
7
|
component: Emoji,
|
|
11
|
-
|
|
12
|
-
imageUrl: {
|
|
13
|
-
control: {
|
|
14
|
-
type: 'text',
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
}
|
|
8
|
+
} satisfies Meta<EmojiProps>
|
|
19
9
|
|
|
20
10
|
export default meta
|
|
21
11
|
|
|
22
|
-
export const Primary
|
|
12
|
+
export const Primary = {
|
|
23
13
|
args: {
|
|
24
14
|
size: '24',
|
|
25
|
-
|
|
15
|
+
name: 'blush',
|
|
26
16
|
},
|
|
27
|
-
}
|
|
17
|
+
} satisfies StoryObj<typeof meta>
|
|
@@ -5,10 +5,8 @@ import { render } from '~/src/utils/test'
|
|
|
5
5
|
import { EMOJI_TEST_ID, Emoji } from './Emoji'
|
|
6
6
|
import { type EmojiProps } from './Emoji.types'
|
|
7
7
|
|
|
8
|
-
const MOCK_EMOJI_URL = 'https://cf.exp.channel.io/asset/emoji/images/80/a.png'
|
|
9
|
-
|
|
10
8
|
describe('Emoji Test >', () => {
|
|
11
|
-
const defaultProps: EmojiProps = {
|
|
9
|
+
const defaultProps: EmojiProps = { size: '24', name: 'a' }
|
|
12
10
|
|
|
13
11
|
const renderComponent = (props?: Partial<EmojiProps>) =>
|
|
14
12
|
render(
|
|
@@ -2,6 +2,7 @@ import React, { type CSSProperties, forwardRef } from 'react'
|
|
|
2
2
|
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { isDev } from '~/src/utils/assert'
|
|
5
6
|
import { cssUrl } from '~/src/utils/style'
|
|
6
7
|
|
|
7
8
|
import { type EmojiProps } from './Emoji.types'
|
|
@@ -10,13 +11,16 @@ import styles from './Emoji.module.scss'
|
|
|
10
11
|
|
|
11
12
|
export const EMOJI_TEST_ID = 'bezier-emoji'
|
|
12
13
|
|
|
14
|
+
const getEmojiUrl = (name: EmojiProps['name'], size: '160' | '80' | '44') => {
|
|
15
|
+
return `https://cf${isDev() ? '.exp' : ''}.channel.io/asset/emoji/images/${size}/${name}.png`
|
|
16
|
+
}
|
|
17
|
+
|
|
13
18
|
/**
|
|
14
19
|
* `Emoji` is a component for representing emoji with variant size.
|
|
15
20
|
* @example
|
|
16
21
|
* ```tsx
|
|
17
22
|
* <Emoji
|
|
18
23
|
* name="A"
|
|
19
|
-
* imageUrl="https://cf.exp.channel.io/asset/emoji/images/80/a.png"
|
|
20
24
|
* size="20"
|
|
21
25
|
* />
|
|
22
26
|
* ```
|
|
@@ -25,6 +29,8 @@ export const Emoji = forwardRef<HTMLDivElement, EmojiProps>(function Emoji(
|
|
|
25
29
|
{ style, imageUrl, className, name, size = '24', ...rest },
|
|
26
30
|
forwardedRef
|
|
27
31
|
) {
|
|
32
|
+
const assetSize = Number(size) >= 60 ? '160' : '80'
|
|
33
|
+
|
|
28
34
|
return (
|
|
29
35
|
<div
|
|
30
36
|
ref={forwardedRef}
|
|
@@ -32,7 +38,9 @@ export const Emoji = forwardRef<HTMLDivElement, EmojiProps>(function Emoji(
|
|
|
32
38
|
aria-description={name}
|
|
33
39
|
style={
|
|
34
40
|
{
|
|
35
|
-
'--b-emoji-background-image': cssUrl(
|
|
41
|
+
'--b-emoji-background-image': cssUrl(
|
|
42
|
+
imageUrl ?? getEmojiUrl(name, assetSize)
|
|
43
|
+
),
|
|
36
44
|
...style,
|
|
37
45
|
} as CSSProperties
|
|
38
46
|
}
|
|
@@ -14,8 +14,15 @@ export type EmojiSize =
|
|
|
14
14
|
| '120'
|
|
15
15
|
|
|
16
16
|
interface EmojiOwnProps {
|
|
17
|
+
/**
|
|
18
|
+
* Name of the emoji. e.g. 'grinning', 'smiley', etc.
|
|
19
|
+
*/
|
|
17
20
|
name: string
|
|
18
|
-
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated
|
|
23
|
+
* `imageUrl` is created in the component and will be removed in the next major version.
|
|
24
|
+
*/
|
|
25
|
+
imageUrl?: string
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
export interface EmojiProps
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
BookmarkFilledIcon,
|
|
6
6
|
CallInProgressIcon,
|
|
7
7
|
ChannelBtnFilledIcon,
|
|
8
|
-
ChannelIcon,
|
|
9
8
|
CheckCircleIcon,
|
|
10
9
|
ChevronDownDoubleIcon,
|
|
11
10
|
ChevronRightIcon,
|
|
@@ -55,7 +54,7 @@ export default meta
|
|
|
55
54
|
|
|
56
55
|
export const Primary: StoryObj<IconProps> = {
|
|
57
56
|
args: {
|
|
58
|
-
source:
|
|
57
|
+
source: ChannelBtnFilledIcon,
|
|
59
58
|
size: 'm',
|
|
60
59
|
color: 'bg-black-darker',
|
|
61
60
|
},
|
|
@@ -82,7 +82,7 @@ export function Toast({
|
|
|
82
82
|
|
|
83
83
|
const className = classNames(
|
|
84
84
|
styles.ToastElement,
|
|
85
|
-
|
|
85
|
+
getZIndexClassName(zIndex),
|
|
86
86
|
placement && styles[`placement-${placement}`],
|
|
87
87
|
isSlidingOut && styles['slide-out']
|
|
88
88
|
)
|
|
@@ -193,6 +193,7 @@ const DEFAULT_OFFSET = {
|
|
|
193
193
|
export function ToastProvider({
|
|
194
194
|
autoDismissTimeout = 3000,
|
|
195
195
|
container: givenContainer,
|
|
196
|
+
zIndex = 'toast',
|
|
196
197
|
offset = DEFAULT_OFFSET,
|
|
197
198
|
children = [],
|
|
198
199
|
}: ToastProviderProps) {
|
|
@@ -213,7 +214,10 @@ export function ToastProvider({
|
|
|
213
214
|
? { right: px(offset?.right ?? DEFAULT_OFFSET.right) }
|
|
214
215
|
: { left: px(offset?.left ?? DEFAULT_OFFSET.left) }),
|
|
215
216
|
}}
|
|
216
|
-
className={
|
|
217
|
+
className={classNames(
|
|
218
|
+
styles.ToastContainer,
|
|
219
|
+
getZIndexClassName(zIndex)
|
|
220
|
+
)}
|
|
217
221
|
>
|
|
218
222
|
{toasts.map(({ id, onDismiss, ...rest }) => (
|
|
219
223
|
<Toast
|
|
@@ -227,7 +231,7 @@ export function ToastProvider({
|
|
|
227
231
|
</div>
|
|
228
232
|
</InvertedThemeProvider>
|
|
229
233
|
),
|
|
230
|
-
[autoDismissTimeout, dismiss, offset]
|
|
234
|
+
[autoDismissTimeout, dismiss, offset, zIndex]
|
|
231
235
|
)
|
|
232
236
|
|
|
233
237
|
return (
|
|
@@ -16,6 +16,9 @@ interface ToastOwnProps {
|
|
|
16
16
|
appearance?: ToastAppearance
|
|
17
17
|
preset?: ToastPreset
|
|
18
18
|
icon?: BezierIcon
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use `zIndex` of `ToastProvider` instead
|
|
21
|
+
*/
|
|
19
22
|
zIndex?: ZIndex
|
|
20
23
|
autoDismiss?: boolean
|
|
21
24
|
autoDismissTimeout?: number
|
|
@@ -40,6 +43,11 @@ type Offset = {
|
|
|
40
43
|
interface ToastProviderOwnProps {
|
|
41
44
|
offset?: Offset
|
|
42
45
|
container?: HTMLElement | null
|
|
46
|
+
/**
|
|
47
|
+
* z-index level of the Toast container
|
|
48
|
+
* @default 'toast'
|
|
49
|
+
*/
|
|
50
|
+
zIndex?: ZIndex
|
|
43
51
|
}
|
|
44
52
|
|
|
45
53
|
export interface ToastProviderProps
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Markdown, Meta } from '@storybook/blocks'
|
|
1
|
+
import { Markdown, Meta, DocsStory } from '@storybook/blocks'
|
|
2
2
|
import { tokens } from '@channel.io/bezier-tokens/alpha'
|
|
3
|
+
import { useLayoutEffect, useState } from 'react'
|
|
3
4
|
|
|
4
5
|
import {
|
|
5
6
|
LightThemeProvider,
|
|
@@ -9,60 +10,72 @@ import { HStack, VStack } from '~/src/components/Stack'
|
|
|
9
10
|
|
|
10
11
|
<Meta title="alpha-foundation/Color" />
|
|
11
12
|
|
|
12
|
-
export const Color = ({ name, value, reference }) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
export const Color = ({ isHoveredColor, name, value, reference }) => {
|
|
14
|
+
const [isHovered, setIsHovered] = useState(false)
|
|
15
|
+
const color = isHovered ? `var(--${name}-hovered, var(--${name}))` : `var(--${name})`
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
|
|
19
|
+
<HStack
|
|
20
|
+
spacing={10}
|
|
21
|
+
height={80}
|
|
22
|
+
align="center"
|
|
23
|
+
>
|
|
24
|
+
<div
|
|
25
|
+
style={{
|
|
26
|
+
flex: 1,
|
|
27
|
+
boxShadow: value,
|
|
28
|
+
backgroundColor: color,
|
|
29
|
+
height: '100%',
|
|
30
|
+
}}
|
|
31
|
+
onMouseEnter={() => {
|
|
32
|
+
setIsHovered(true)
|
|
33
|
+
}}
|
|
34
|
+
onMouseLeave={() => {
|
|
35
|
+
setIsHovered(false)
|
|
36
|
+
}}
|
|
37
|
+
/>
|
|
38
|
+
<VStack
|
|
39
|
+
style={{
|
|
40
|
+
flex: 1,
|
|
41
|
+
color: 'var(--alpha-color-fg-black-darkest)',
|
|
42
|
+
}}
|
|
43
|
+
spacing={4}
|
|
44
|
+
justify="center"
|
|
45
|
+
>
|
|
46
|
+
<span style={{ fontSize: 11 }}>{name}</span>
|
|
47
|
+
<pre
|
|
48
|
+
style={{
|
|
49
|
+
display: 'flex',
|
|
50
|
+
alignItems: 'center',
|
|
51
|
+
gap: 3,
|
|
52
|
+
fontSize: 9,
|
|
53
|
+
lineHeight: 1,
|
|
54
|
+
color: 'var(--alpha-color-fg-black-dark)',
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
{isHoveredColor ? '' : reference ? 'var' : ''}
|
|
58
|
+
<pre
|
|
24
59
|
style={{
|
|
25
|
-
|
|
26
|
-
|
|
60
|
+
display: 'inline-flex',
|
|
61
|
+
fontSize: 'inherit',
|
|
62
|
+
lineHeight: 'inherit',
|
|
63
|
+
padding: '1px 2px',
|
|
64
|
+
backgroundColor: 'var(--alpha-color-bg-grey-lighter)',
|
|
65
|
+
borderRadius: 3,
|
|
66
|
+
border: '1px solid var(--alpha-color-bg-black-lightest)',
|
|
27
67
|
}}
|
|
28
|
-
spacing={4}
|
|
29
|
-
justify="center"
|
|
30
68
|
>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
fontSize: 9,
|
|
38
|
-
lineHeight: 1,
|
|
39
|
-
color: 'var(--alpha-color-fg-black-dark)',
|
|
40
|
-
}}
|
|
41
|
-
>
|
|
42
|
-
{reference ? 'var' : ''}
|
|
43
|
-
<pre
|
|
44
|
-
style={{
|
|
45
|
-
display: 'inline-flex',
|
|
46
|
-
fontSize: 'inherit',
|
|
47
|
-
lineHeight: 'inherit',
|
|
48
|
-
padding: '1px 2px',
|
|
49
|
-
backgroundColor: 'var(--alpha-color-bg-grey-lighter)',
|
|
50
|
-
borderRadius: 3,
|
|
51
|
-
border: '1px solid var(--alpha-color-bg-black-lightest)',
|
|
52
|
-
}}
|
|
53
|
-
>
|
|
54
|
-
{reference ? reference : value}
|
|
55
|
-
</pre>
|
|
56
|
-
</pre>
|
|
57
|
-
</VStack>
|
|
58
|
-
</HStack>
|
|
59
|
-
)
|
|
60
|
-
}
|
|
69
|
+
{isHoveredColor ? value : reference ? reference : value}
|
|
70
|
+
</pre>
|
|
71
|
+
</pre>
|
|
72
|
+
</VStack>
|
|
73
|
+
</HStack>
|
|
74
|
+
)}
|
|
61
75
|
|
|
62
76
|
export const Primary = () => (
|
|
63
77
|
<HStack>
|
|
64
|
-
|
|
65
|
-
<VStack style={{ flex: 1, backgroundColor: 'var(--alpha-color-surface-normal)' }} padding={20}>
|
|
78
|
+
<VStack style={{ flex: 1, backgroundColor: 'var(--alpha-color-surface-normal)' }} padding={0}>
|
|
66
79
|
{Object.entries(tokens.global.color).map(([key, { value, ref }]) => (
|
|
67
80
|
<Color
|
|
68
81
|
key={key}
|
|
@@ -74,7 +87,7 @@ export const Primary = () => (
|
|
|
74
87
|
</VStack>
|
|
75
88
|
|
|
76
89
|
<LightThemeProvider>
|
|
77
|
-
<VStack style={{ flex: 1, backgroundColor: 'var(--alpha-color-surface-normal)' }} padding={
|
|
90
|
+
<VStack style={{ flex: 1, backgroundColor: 'var(--alpha-color-surface-normal)' }} padding={0}>
|
|
78
91
|
{Object.entries(tokens.lightTheme.color).map(([key, { value, ref }]) => (
|
|
79
92
|
<Color
|
|
80
93
|
key={key}
|
|
@@ -87,7 +100,7 @@ export const Primary = () => (
|
|
|
87
100
|
</LightThemeProvider>
|
|
88
101
|
|
|
89
102
|
<DarkThemeProvider>
|
|
90
|
-
<VStack style={{ flex: 1, backgroundColor: 'var(--alpha-color-surface-normal)' }} padding={
|
|
103
|
+
<VStack style={{ flex: 1, backgroundColor: 'var(--alpha-color-surface-normal)' }} padding={0}>
|
|
91
104
|
{Object.entries(tokens.darkTheme.color).map(([key, { value, ref }]) => (
|
|
92
105
|
<Color
|
|
93
106
|
key={key}
|