reshaped 3.2.7 → 3.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/CHANGELOG.md +35 -0
- package/dist/bundle.css +1 -1
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.js +11 -11
- package/dist/cjs/themes/_generator/definitions/figma.js +1 -0
- package/dist/cjs/themes/_generator/definitions/reshaped.js +5 -4
- package/dist/cjs/themes/_generator/tokens/duration/duration.types.d.ts +1 -1
- package/dist/cjs/themes/_generator/transform.js +17 -7
- package/dist/cjs/themes/_generator/utilities/generateColors.js +6 -6
- package/dist/cjs/themes/_generator/utilities/resolveTokenReference.js +1 -1
- package/dist/cjs/themes/figma/theme.css +1 -1
- package/dist/cjs/themes/reshaped/theme.css +1 -1
- package/dist/cjs/themes/slate/theme.css +1 -1
- package/dist/components/Alert/tests/Alert.stories.d.ts +5 -4
- package/dist/components/Alert/tests/Alert.stories.js +3 -2
- package/dist/components/Autocomplete/Autocomplete.js +3 -3
- package/dist/components/Autocomplete/Autocomplete.types.d.ts +8 -9
- package/dist/components/Badge/Badge.module.css +1 -1
- package/dist/components/Button/Button.module.css +1 -1
- package/dist/components/Card/Card.js +1 -1
- package/dist/components/ContextMenu/ContextMenu.d.ts +10 -0
- package/dist/components/ContextMenu/ContextMenu.js +37 -0
- package/dist/components/ContextMenu/ContextMenu.module.css +1 -0
- package/dist/components/ContextMenu/ContextMenu.types.d.ts +2 -0
- package/dist/components/ContextMenu/ContextMenu.types.js +1 -0
- package/dist/components/ContextMenu/index.d.ts +2 -0
- package/dist/components/ContextMenu/index.js +1 -0
- package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +18 -0
- package/dist/components/ContextMenu/tests/ContextMenu.stories.js +27 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +1 -2
- package/dist/components/DropdownMenu/DropdownMenu.js +2 -2
- package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +4 -4
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +1 -1
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.js +8 -0
- package/dist/components/FormControl/FormControl.context.d.ts +86 -86
- package/dist/components/Grid/Grid.js +5 -1
- package/dist/components/Hotkey/Hotkey.module.css +1 -1
- package/dist/components/Modal/Modal.js +1 -1
- package/dist/components/Modal/Modal.module.css +1 -1
- package/dist/components/Popover/Popover.js +1 -1
- package/dist/components/Popover/Popover.types.d.ts +1 -1
- package/dist/components/Resizable/Resizable.js +2 -2
- package/dist/components/Resizable/Resizable.module.css +1 -1
- package/dist/components/Resizable/Resizable.types.d.ts +3 -1
- package/dist/components/Resizable/tests/Resizable.stories.js +34 -1
- package/dist/components/ScrollArea/ScrollArea.js +9 -9
- package/dist/components/ScrollArea/ScrollArea.module.css +1 -1
- package/dist/components/ScrollArea/ScrollArea.types.d.ts +1 -4
- package/dist/components/ScrollArea/tests/ScrollArea.stories.d.ts +6 -4
- package/dist/components/ScrollArea/tests/ScrollArea.stories.js +28 -2
- package/dist/components/Table/Table.module.css +1 -1
- package/dist/components/Tabs/Tabs.module.css +1 -1
- package/dist/components/Tabs/Tabs.types.d.ts +2 -0
- package/dist/components/Tabs/TabsContext.d.ts +2 -2
- package/dist/components/Tabs/TabsPanel.js +3 -3
- package/dist/components/Text/Text.js +2 -1
- package/dist/components/TextField/TextField.js +4 -4
- package/dist/components/TextField/TextField.module.css +1 -1
- package/dist/components/TextField/TextField.types.d.ts +1 -0
- package/dist/components/Toast/Toast.js +3 -2
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js +4 -4
- package/dist/components/Tooltip/Tooltip.types.d.ts +1 -1
- package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +1 -1
- package/dist/components/View/View.js +8 -3
- package/dist/components/View/View.module.css +1 -1
- package/dist/components/View/View.types.d.ts +5 -5
- package/dist/components/View/tests/View.stories.js +6 -0
- package/dist/components/_private/Flyout/Flyout.module.css +1 -1
- package/dist/components/_private/Flyout/Flyout.types.d.ts +2 -1
- package/dist/components/_private/Flyout/FlyoutContent.js +6 -4
- package/dist/components/_private/Flyout/FlyoutControlled.js +12 -9
- package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +1 -0
- package/dist/components/_private/Flyout/tests/Flyout.stories.js +16 -1
- package/dist/components/_private/Flyout/useFlyout.d.ts +6 -11
- package/dist/components/_private/Flyout/useFlyout.js +19 -30
- package/dist/components/_private/Flyout/utilities/isFullyVisible.d.ts +6 -0
- package/dist/components/_private/Flyout/utilities/isFullyVisible.js +16 -0
- package/dist/components/_private/Portal/Portal.js +5 -2
- package/dist/hooks/_private/useOnClickOutside.d.ts +1 -1
- package/dist/hooks/_private/useOnClickOutside.js +8 -5
- package/dist/hooks/_private/useSingletonKeyboardMode.js +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/styles/align/align.css +1 -0
- package/dist/styles/align/index.d.ts +2 -1
- package/dist/styles/align/index.js +3 -3
- package/dist/styles/aspectRatio/aspectRatio.css +1 -0
- package/dist/styles/aspectRatio/index.d.ts +2 -1
- package/dist/styles/aspectRatio/index.js +2 -2
- package/dist/styles/bleed/bleed.module.css +1 -1
- package/dist/styles/bleed/index.js +2 -5
- package/dist/styles/height/height.module.css +1 -1
- package/dist/styles/height/index.js +2 -2
- package/dist/styles/inset/index.d.ts +2 -1
- package/dist/styles/inset/index.js +4 -7
- package/dist/styles/inset/inset.css +1 -0
- package/dist/styles/justify/index.d.ts +2 -1
- package/dist/styles/justify/index.js +3 -3
- package/dist/styles/justify/justify.css +1 -0
- package/dist/styles/maxHeight/index.js +2 -2
- package/dist/styles/maxHeight/maxHeight.module.css +1 -1
- package/dist/styles/maxWidth/index.js +2 -2
- package/dist/styles/maxWidth/maxWidth.module.css +1 -1
- package/dist/styles/minHeight/index.js +2 -2
- package/dist/styles/minHeight/minHeight.module.css +1 -1
- package/dist/styles/minWidth/index.js +2 -2
- package/dist/styles/minWidth/minWidth.module.css +1 -1
- package/dist/styles/padding/index.d.ts +2 -1
- package/dist/styles/padding/index.js +2 -2
- package/dist/styles/padding/padding.css +1 -0
- package/dist/styles/position/index.d.ts +2 -1
- package/dist/styles/position/index.js +4 -4
- package/dist/styles/position/position.css +1 -0
- package/dist/styles/textAlign/index.d.ts +2 -1
- package/dist/styles/textAlign/index.js +3 -3
- package/dist/styles/textAlign/textAlign.css +1 -0
- package/dist/styles/types.d.ts +5 -0
- package/dist/styles/width/index.js +2 -2
- package/dist/styles/width/width.module.css +1 -1
- package/dist/themes/_generator/definitions/figma.js +1 -0
- package/dist/themes/_generator/definitions/reshaped.js +5 -4
- package/dist/themes/_generator/tests/themes.stories.d.ts +4 -3
- package/dist/themes/_generator/tests/themes.stories.js +3 -2
- package/dist/themes/_generator/tokens/duration/duration.types.d.ts +1 -1
- package/dist/themes/_generator/utilities/generateColors.js +6 -6
- package/dist/themes/_generator/utilities/resolveTokenReference.js +1 -1
- package/dist/themes/figma/theme.css +1 -1
- package/dist/themes/reshaped/theme.css +1 -1
- package/dist/themes/slate/theme.css +1 -1
- package/dist/types/global.d.ts +4 -0
- package/dist/utilities/a11y/TrapFocus.js +1 -0
- package/dist/utilities/a11y/focus.d.ts +1 -1
- package/dist/utilities/a11y/focus.js +4 -1
- package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +6 -0
- package/dist/utilities/a11y/tests/TrapFocus.stories.js +59 -0
- package/dist/utilities/dom/find.d.ts +9 -0
- package/dist/utilities/dom/find.js +26 -0
- package/dist/utilities/dom/flyout.d.ts +2 -1
- package/dist/utilities/dom/flyout.js +13 -18
- package/dist/utilities/dom/index.d.ts +2 -2
- package/dist/utilities/dom/index.js +2 -2
- package/dist/utilities/scroll/lock.js +6 -2
- package/package.json +32 -32
- package/dist/styles/align/align.module.css +0 -1
- package/dist/styles/aspectRatio/aspectRatio.module.css +0 -1
- package/dist/styles/inset/inset.module.css +0 -1
- package/dist/styles/justify/justify.module.css +0 -1
- package/dist/styles/padding/padding.module.css +0 -1
- package/dist/styles/position/position.module.css +0 -1
- package/dist/styles/textAlign/textAlign.module.css +0 -1
@@ -4,7 +4,7 @@ const getMinWidthStyles = (value) => {
|
|
4
4
|
if (!value)
|
5
5
|
return null;
|
6
6
|
const variables = responsiveVariables("--rs-min-w", value);
|
7
|
-
const classNames = responsiveClassNames(s, (value) => (typeof value === "number" ? "unit" : "literal"), value, { excludeValueFromClassName: true });
|
8
|
-
return { classNames, variables };
|
7
|
+
const classNames = responsiveClassNames(s, (value) => (typeof value === "number" ? "--type-unit" : "--type-literal"), value, { excludeValueFromClassName: true });
|
8
|
+
return { classNames: [s.root, classNames], variables };
|
9
9
|
};
|
10
10
|
export default getMinWidthStyles;
|
@@ -1 +1 @@
|
|
1
|
-
.
|
1
|
+
.root[style*="--rs-min-w-"]{--rs-min-w-s:none;--rs-min-w-m:var(--rs-min-w-s);--rs-min-w-l:var(--rs-min-w-m);--rs-min-w-xl:var(--rs-min-w-l);--rs-min-w:var(--rs-min-w-s)}.--type-literal{min-width:var(--rs-min-w)!important}.--type-unit{min-width:calc(var(--rs-min-w) * var(--rs-unit-x1))!important}@media (--rs-viewport-m ){.root[style*="--rs-min-w-"]{--rs-min-w:var(--rs-min-w-m)}.--type-literal--m{min-width:var(--rs-min-w)!important}.--type-unit--m{min-width:calc(var(--rs-min-w) * var(--rs-unit-x1))!important}}@media (--rs-viewport-l ){.root[style*="--rs-min-w-"]{--rs-min-w:var(--rs-min-w-l)}.--type-literal--l{min-width:var(--rs-min-w)!important}.--type-unit--l{min-width:calc(var(--rs-min-w) * var(--rs-unit-x1))!important}}@media (--rs-viewport-xl ){.root[style*="--rs-min-w-"]{--rs-min-w:var(--rs-min-w-xl)}.--type-literal--xl{min-width:var(--rs-min-w)!important}.--type-unit--xl{min-width:calc(var(--rs-min-w) * var(--rs-unit-x1))!important}}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { responsiveVariables } from "../../utilities/helpers.js";
|
2
|
-
import
|
2
|
+
import "./padding.css";
|
3
3
|
const getPaddingStyles = (value) => {
|
4
4
|
if (!value)
|
5
5
|
return null;
|
6
6
|
const variables = responsiveVariables("--rs-p", value);
|
7
|
-
return {
|
7
|
+
return { variables };
|
8
8
|
};
|
9
9
|
export default getPaddingStyles;
|
@@ -0,0 +1 @@
|
|
1
|
+
[style*="--rs-p-"]{padding:calc(var(--rs-p) * var(--rs-unit-x1) - var(--rs-border-width, 0px));--rs-p-s:0;--rs-p-m:var(--rs-p-s);--rs-p-l:var(--rs-p-m);--rs-p-xl:var(--rs-p-l);--rs-p:var(--rs-p-s)}@media (--rs-viewport-m ){[style*="--rs-p-"]{--rs-p:var(--rs-p-m)}}@media (--rs-viewport-l ){[style*="--rs-p-"]{--rs-p:var(--rs-p-l)}}@media (--rs-viewport-xl ){[style*="--rs-p-"]{--rs-p:var(--rs-p-xl)}}
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import {
|
2
|
-
import
|
1
|
+
import { responsiveVariables } from "../../utilities/helpers.js";
|
2
|
+
import "./position.css";
|
3
3
|
const getPositionStyles = (value) => {
|
4
4
|
if (!value)
|
5
5
|
return null;
|
6
|
-
const
|
7
|
-
return {
|
6
|
+
const variables = responsiveVariables("--rs-position", value);
|
7
|
+
return { variables };
|
8
8
|
};
|
9
9
|
export default getPositionStyles;
|
@@ -0,0 +1 @@
|
|
1
|
+
[style*="--rs-position-"]{position:var(--rs-position)!important;--rs-position-s: ;--rs-position-m:var(--rs-position-s);--rs-position-l:var(--rs-position-m);--rs-position-xl:var(--rs-position-l);--rs-position:var(--rs-position-s)}@media (--rs-viewport-m ){[style*="--rs-position-"]{--rs-position:var(--rs-position-m)}}@media (--rs-viewport-l ){[style*="--rs-position-"]{--rs-position:var(--rs-position-l)}}@media (--rs-viewport-xl ){[style*="--rs-position-"]{--rs-position:var(--rs-position-xl)}}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import {
|
2
|
-
import
|
1
|
+
import { responsiveVariables } from "../../utilities/helpers.js";
|
2
|
+
import "./textAlign.css";
|
3
3
|
const getTextAlignStyles = (value) => {
|
4
4
|
if (!value)
|
5
5
|
return null;
|
6
6
|
return {
|
7
|
-
|
7
|
+
variables: responsiveVariables("--rs-text-align", value),
|
8
8
|
};
|
9
9
|
};
|
10
10
|
export default getTextAlignStyles;
|
@@ -0,0 +1 @@
|
|
1
|
+
[style*="--rs-text-align-"]{text-align:var(--rs-text-align)!important;--rs-text-align-s: ;--rs-text-align-m:var(--rs-text-align-s);--rs-text-align-l:var(--rs-text-align-m);--rs-text-align-xl:var(--rs-text-align-l);--rs-text-align:var(--rs-text-align-s)}@media (--rs-viewport-m ){[style*="--rs-text-align-"]{--rs-text-align:var(--rs-text-align-m)}}@media (--rs-viewport-l ){[style*="--rs-text-align-"]{--rs-text-align:var(--rs-text-align-l)}}@media (--rs-viewport-xl ){[style*="--rs-text-align-"]{--rs-text-align:var(--rs-text-align-xl)}}
|
package/dist/styles/types.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import * as G from "../types/global";
|
3
|
+
export type Inset = number | "auto";
|
3
4
|
export type TextAlign = "start" | "center" | "end";
|
4
5
|
export type Justify = "start" | "center" | "end" | "space-between";
|
5
6
|
export type Align = "start" | "center" | "end" | "stretch" | "baseline";
|
@@ -12,6 +13,10 @@ export type BorderColor = "neutral" | "neutral-faded" | "critical" | "critical-f
|
|
12
13
|
export type StaticStyleUtility<Value> = (value?: G.Responsive<Value>) => null | {
|
13
14
|
classNames: G.ClassName;
|
14
15
|
};
|
16
|
+
export type VariableStyleUtilityResult = null | {
|
17
|
+
variables: React.CSSProperties;
|
18
|
+
};
|
19
|
+
export type VariableStyleUtility<Value> = (value?: G.Responsive<Value>) => VariableStyleUtilityResult;
|
15
20
|
/**
|
16
21
|
* Utility controlled with classNames and css variables
|
17
22
|
* Classnames define the styles, variables define the values for those styles
|
@@ -4,7 +4,7 @@ const getWidthStyles = (value) => {
|
|
4
4
|
if (!value)
|
5
5
|
return null;
|
6
6
|
const variables = responsiveVariables("--rs-w", value);
|
7
|
-
const classNames = responsiveClassNames(s, (value) => (typeof value === "number" ? "unit" : "literal"), value, { excludeValueFromClassName: true });
|
8
|
-
return { classNames, variables };
|
7
|
+
const classNames = responsiveClassNames(s, (value) => (typeof value === "number" ? "--type-unit" : "--type-literal"), value, { excludeValueFromClassName: true });
|
8
|
+
return { classNames: [s.root, classNames], variables };
|
9
9
|
};
|
10
10
|
export default getWidthStyles;
|
@@ -1 +1 @@
|
|
1
|
-
.
|
1
|
+
.root[style*="--rs-w-"]{--rs-w-s:auto;--rs-w-m:var(--rs-w-s);--rs-w-l:var(--rs-w-m);--rs-w-xl:var(--rs-w-l);--rs-w:var(--rs-w-s)}.--type-literal{width:var(--rs-w)!important}.--type-unit{width:calc(var(--rs-w) * var(--rs-unit-x1))!important}@media (--rs-viewport-m ){.root[style*="--rs-w-"]{--rs-w:var(--rs-w-m)}.--type-literal--m{width:var(--rs-w)!important}.--type-unit--m{width:calc(var(--rs-w) * var(--rs-unit-x1))!important}}@media (--rs-viewport-l ){.root[style*="--rs-w-"]{--rs-w:var(--rs-w-l)}.--type-literal--l{width:var(--rs-w)!important}.--type-unit--l{width:calc(var(--rs-w) * var(--rs-unit-x1))!important}}@media (--rs-viewport-xl ){.root[style*="--rs-w-"]{--rs-w:var(--rs-w-xl)}.--type-literal--xl{width:var(--rs-w)!important}.--type-unit--xl{width:calc(var(--rs-w) * var(--rs-unit-x1))!important}}
|
@@ -111,22 +111,22 @@ const theme = {
|
|
111
111
|
backgroundCritical: { hex: "#e22c2c", hexDark: "#d02626" },
|
112
112
|
backgroundCriticalFaded: { hex: "#fdeded", hexDark: "#3e1f1f" },
|
113
113
|
borderCritical: { hex: "#bf2424", hexDark: "#f46969" },
|
114
|
-
borderCriticalFaded: { hex: "#
|
114
|
+
borderCriticalFaded: { hex: "#f3dad6", hexDark: "#5a2e29" },
|
115
115
|
foregroundCritical: { hex: "#c42525", hexDark: "#f36a6a" },
|
116
116
|
backgroundWarning: { hex: "#facc15", hexDark: "#f1c512" },
|
117
117
|
backgroundWarningFaded: { hex: "#fffae9", hexDark: "#2c271f" },
|
118
118
|
borderWarning: { hex: "#cfa90f", hexDark: "#b4920a" },
|
119
|
-
borderWarningFaded: { hex: "#
|
119
|
+
borderWarningFaded: { hex: "#ece2c4", hexDark: "#453c1e" },
|
120
120
|
foregroundWarning: { hex: "#7b6305", hexDark: "#b4920c" },
|
121
121
|
backgroundPositive: { hex: "#118850", hexDark: "#14784a" },
|
122
122
|
backgroundPositiveFaded: { hex: "#edfdf5", hexDark: "#1f2a23" },
|
123
123
|
borderPositive: { hex: "#0c6e40", hexDark: "#21ab6b" },
|
124
|
-
borderPositiveFaded: { hex: "#
|
124
|
+
borderPositiveFaded: { hex: "#d2eddb", hexDark: "#264431" },
|
125
125
|
foregroundPositive: { hex: "#0d7544", hexDark: "#18ab66" },
|
126
126
|
backgroundNeutral: { hex: "#dfe2ea", hexDark: "#494f60" },
|
127
127
|
backgroundNeutralFaded: { hex: "#f3f3f5", hexDark: "#222835" },
|
128
128
|
borderNeutral: { hex: "#0000001f", hexDark: "#ffffff24" },
|
129
|
-
borderNeutralFaded: { hex: "#
|
129
|
+
borderNeutralFaded: { hex: "#00000014", hexDark: "#ffffff14" },
|
130
130
|
foregroundNeutral: { hex: "#14181f", hexDark: "#eff1f5" },
|
131
131
|
foregroundNeutralFaded: { hex: "#5b667e", hexDark: "#c0c6d6" },
|
132
132
|
backgroundDisabled: { hex: "#eceef2", hexDark: "#1e212a" },
|
@@ -143,6 +143,7 @@ const theme = {
|
|
143
143
|
black: { hex: "#000000" },
|
144
144
|
},
|
145
145
|
duration: {
|
146
|
+
rapid: { ms: 100 },
|
146
147
|
fast: { ms: 200 },
|
147
148
|
medium: { ms: 300 },
|
148
149
|
slow: { ms: 400 },
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import React from "react";
|
1
2
|
declare const _default: {
|
2
3
|
title: string;
|
3
4
|
parameters: {
|
@@ -7,6 +8,6 @@ declare const _default: {
|
|
7
8
|
};
|
8
9
|
};
|
9
10
|
export default _default;
|
10
|
-
export declare const base: () =>
|
11
|
-
export declare const generation: () =>
|
12
|
-
export declare const onColors: () =>
|
11
|
+
export declare const base: () => React.JSX.Element;
|
12
|
+
export declare const generation: () => React.JSX.Element;
|
13
|
+
export declare const onColors: () => React.JSX.Element;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import React from "react";
|
1
2
|
import { Example } from "../../../utilities/storybook/index.js";
|
2
3
|
import View from "../../../components/View/index.js";
|
3
4
|
import Button from "../../../components/Button/index.js";
|
@@ -214,14 +215,14 @@ export const base = () => (<Example>
|
|
214
215
|
</Theme>
|
215
216
|
</Example.Item>
|
216
217
|
</Example>);
|
217
|
-
export const generation = () => (
|
218
|
+
export const generation = () => (<React.Fragment>
|
218
219
|
<style>
|
219
220
|
{cssGenerated}
|
220
221
|
{cssGenerated2}
|
221
222
|
</style>
|
222
223
|
<Theme name="generated">{componentExamples}</Theme>
|
223
224
|
{/* <Theme name="generated2">{componentExamples}</Theme> */}
|
224
|
-
|
225
|
+
</React.Fragment>);
|
225
226
|
const onColorsCss = getThemeCSS("on-color", {
|
226
227
|
color: {
|
227
228
|
backgroundPrimary: { hex: "#1abc9c", hexDark: "#16a085" },
|
@@ -2,7 +2,7 @@ import { parseHex, convertOklabToOkhsl, convertLrgbToOklab, convertRgbToLrgb, co
|
|
2
2
|
const hexToOkHsl = (hex) => {
|
3
3
|
const rgb = parseHex(hex);
|
4
4
|
if (!rgb)
|
5
|
-
throw new Error(`Can\'t generate rgb from ${hex} color`);
|
5
|
+
throw new Error(`[Reshaped] Can\'t generate rgb from ${hex} color`);
|
6
6
|
const lrgb = convertRgbToLrgb(rgb);
|
7
7
|
const oklab = convertLrgbToOklab(lrgb);
|
8
8
|
const okhsl = convertOklabToOkhsl(oklab);
|
@@ -62,22 +62,22 @@ const generateColorValues = (args) => {
|
|
62
62
|
? okhslToHex({
|
63
63
|
...bgFadedHsl,
|
64
64
|
l: 0,
|
65
|
-
alpha: 0.
|
65
|
+
alpha: 0.08,
|
66
66
|
})
|
67
67
|
: okhslToHex({
|
68
68
|
...bgFadedHsl,
|
69
69
|
s: 0.6 - 0.2 * hueLightness,
|
70
|
-
l: bgFadedHsl.l - 0.
|
70
|
+
l: bgFadedHsl.l - 0.07,
|
71
71
|
});
|
72
72
|
const bdFadedHexDark = key === "neutral"
|
73
73
|
? okhslToHex({
|
74
74
|
...bgFadedHslDark,
|
75
75
|
l: 1,
|
76
|
-
alpha: 0.
|
76
|
+
alpha: 0.08,
|
77
77
|
})
|
78
78
|
: okhslToHex({
|
79
79
|
...bgFadedHslDark,
|
80
|
-
l: bgFadedHslDark.l + 0.
|
80
|
+
l: bgFadedHslDark.l + 0.1,
|
81
81
|
});
|
82
82
|
const output = {
|
83
83
|
[`background${capitalizedKey}`]: {
|
@@ -148,7 +148,7 @@ const generateColorValues = (args) => {
|
|
148
148
|
const validateHexColor = (color) => {
|
149
149
|
const hexColorRegex = /^#([A-Fa-f0-9]{3}){2}$/;
|
150
150
|
if (!hexColorRegex.test(color)) {
|
151
|
-
throw new Error(`Invalid hex color: ${color}`);
|
151
|
+
throw new Error(`[Reshaped] Invalid hex color: ${color}`);
|
152
152
|
}
|
153
153
|
return color;
|
154
154
|
};
|
@@ -8,7 +8,7 @@ const resolveTokenReference = (theme, tokenType, ref) => {
|
|
8
8
|
referencedToken = tokenGroup[tokenName];
|
9
9
|
});
|
10
10
|
if (!referencedToken)
|
11
|
-
throw new Error(`Referenced token not found for: ${ref}`);
|
11
|
+
throw new Error(`[Reshaped] Referenced token not found for: ${ref}`);
|
12
12
|
return referencedToken;
|
13
13
|
};
|
14
14
|
export default resolveTokenReference;
|
@@ -1 +1 @@
|
|
1
|
-
[data-rs-theme=figma]{--rs-font-family-title:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-family-body:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-weight-regular:400;--rs-font-weight-medium:500;--rs-font-weight-semibold:600;--rs-font-weight-bold:700;--rs-font-weight-extrabold:800;--rs-font-weight-black:900;--rs-font-size-title-1:5rem;--rs-line-height-title-1:5.25rem;--rs-font-family-title-1:var(--rs-font-family-title);--rs-font-weight-title-1:var(--rs-font-weight-semibold);--rs-letter-spacing-title-1:normal;--rs-font-size-title-2:4rem;--rs-line-height-title-2:4.25rem;--rs-font-family-title-2:var(--rs-font-family-title);--rs-font-weight-title-2:var(--rs-font-weight-semibold);--rs-letter-spacing-title-2:normal;--rs-font-size-title-3:3.5rem;--rs-line-height-title-3:3.75rem;--rs-font-family-title-3:var(--rs-font-family-title);--rs-font-weight-title-3:var(--rs-font-weight-semibold);--rs-letter-spacing-title-3:normal;--rs-font-size-title-4:2.5rem;--rs-line-height-title-4:2.75rem;--rs-font-family-title-4:var(--rs-font-family-title);--rs-font-weight-title-4:var(--rs-font-weight-semibold);--rs-letter-spacing-title-4:normal;--rs-font-size-title-5:2.25rem;--rs-line-height-title-5:2.5rem;--rs-font-family-title-5:var(--rs-font-family-title);--rs-font-weight-title-5:var(--rs-font-weight-semibold);--rs-letter-spacing-title-5:normal;--rs-font-size-title-6:1.5rem;--rs-line-height-title-6:1.75rem;--rs-font-family-title-6:var(--rs-font-family-title);--rs-font-weight-title-6:var(--rs-font-weight-semibold);--rs-letter-spacing-title-6:normal;--rs-font-size-featured-1:1.375rem;--rs-line-height-featured-1:1.75rem;--rs-font-family-featured-1:var(--rs-font-family-body);--rs-letter-spacing-featured-1:normal;--rs-font-size-featured-2:1.25rem;--rs-line-height-featured-2:1.75rem;--rs-font-family-featured-2:var(--rs-font-family-body);--rs-letter-spacing-featured-2:normal;--rs-font-size-featured-3:1.125rem;--rs-line-height-featured-3:1.5rem;--rs-font-family-featured-3:var(--rs-font-family-body);--rs-letter-spacing-featured-3:normal;--rs-font-size-body-1:0.875rem;--rs-line-height-body-1:1.25rem;--rs-font-family-body-1:var(--rs-font-family-body);--rs-letter-spacing-body-1:normal;--rs-font-size-body-2:0.8125rem;--rs-line-height-body-2:1.25rem;--rs-font-family-body-2:var(--rs-font-family-body);--rs-letter-spacing-body-2:normal;--rs-font-size-body-3:0.6875rem;--rs-line-height-body-3:1rem;--rs-font-family-body-3:var(--rs-font-family-body);--rs-letter-spacing-body-3:normal;--rs-font-size-caption-1:0.6875rem;--rs-line-height-caption-1:1rem;--rs-font-family-caption-1:var(--rs-font-family-body);--rs-letter-spacing-caption-1:normal;--rs-font-size-caption-2:0.625rem;--rs-line-height-caption-2:0.75rem;--rs-font-family-caption-2:var(--rs-font-family-body);--rs-letter-spacing-caption-2:normal;--rs-unit-base:4px;--rs-unit-radius-small:4px;--rs-unit-radius-medium:4px;--rs-unit-radius-large:4px;--rs-unit-x1:4px;--rs-unit-x2:8px;--rs-unit-x3:12px;--rs-unit-x4:16px;--rs-unit-x5:20px;--rs-unit-x6:24px;--rs-unit-x7:28px;--rs-unit-x8:32px;--rs-unit-x9:36px;--rs-unit-x10:40px;--rs-radius-small:4px;--rs-radius-medium:8px;--rs-radius-large:12px;--rs-color-brand:#5a58f2;--rs-color-white:#fff;--rs-color-black:#000;--rs-color-on-background-primary:#fff;--rs-color-on-background-critical:#000;--rs-color-on-background-warning:#000;--rs-color-on-background-positive:#000;--rs-color-on-brand:#fff;--rs-color-rgb-white:255,255,255;--rs-color-rgb-black:0,0,0;--rs-duration-fast:200ms;--rs-duration-medium:300ms;--rs-duration-slow:400ms;--rs-easing-standard:cubic-bezier(0.4,0,0.2,1);--rs-easing-accelerate:cubic-bezier(0.4,0,1,1);--rs-easing-decelerate:cubic-bezier(0,0,0.2,1);--rs-shadow-raised:0px 1px 3px 0px rgba(0,0,0,.15);--rs-shadow-overlay:0px 10px 24px 0px rgba(0,0,0,.1),0px 2px 5px 0px rgba(0,0,0,.04);--rs-viewport-m-min:660;--rs-viewport-l-min:900;--rs-viewport-xl-min:1280}[data-rs-theme=figma][data-rs-color-mode=light]{--rs-color-background-primary:#0d99ff;--rs-color-background-primary-faded:#e5f4ff;--rs-color-border-primary:#007be5;--rs-color-border-primary-faded:#bde3ff;--rs-color-foreground-primary:#007be5;--rs-color-background-critical:#f24822;--rs-color-background-critical-faded:#ffe2e0;--rs-color-border-critical:#dc3412;--rs-color-border-critical-faded:#ffc7c2;--rs-color-foreground-critical:#dc3412;--rs-color-background-warning:#facc15;--rs-color-background-warning-faded:#fffae9;--rs-color-border-warning:#cfa90f;--rs-color-border-warning-faded:#
|
1
|
+
[data-rs-theme=figma]{--rs-font-family-title:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-family-body:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-weight-regular:400;--rs-font-weight-medium:500;--rs-font-weight-semibold:600;--rs-font-weight-bold:700;--rs-font-weight-extrabold:800;--rs-font-weight-black:900;--rs-font-size-title-1:5rem;--rs-line-height-title-1:5.25rem;--rs-font-family-title-1:var(--rs-font-family-title);--rs-font-weight-title-1:var(--rs-font-weight-semibold);--rs-letter-spacing-title-1:normal;--rs-font-size-title-2:4rem;--rs-line-height-title-2:4.25rem;--rs-font-family-title-2:var(--rs-font-family-title);--rs-font-weight-title-2:var(--rs-font-weight-semibold);--rs-letter-spacing-title-2:normal;--rs-font-size-title-3:3.5rem;--rs-line-height-title-3:3.75rem;--rs-font-family-title-3:var(--rs-font-family-title);--rs-font-weight-title-3:var(--rs-font-weight-semibold);--rs-letter-spacing-title-3:normal;--rs-font-size-title-4:2.5rem;--rs-line-height-title-4:2.75rem;--rs-font-family-title-4:var(--rs-font-family-title);--rs-font-weight-title-4:var(--rs-font-weight-semibold);--rs-letter-spacing-title-4:normal;--rs-font-size-title-5:2.25rem;--rs-line-height-title-5:2.5rem;--rs-font-family-title-5:var(--rs-font-family-title);--rs-font-weight-title-5:var(--rs-font-weight-semibold);--rs-letter-spacing-title-5:normal;--rs-font-size-title-6:1.5rem;--rs-line-height-title-6:1.75rem;--rs-font-family-title-6:var(--rs-font-family-title);--rs-font-weight-title-6:var(--rs-font-weight-semibold);--rs-letter-spacing-title-6:normal;--rs-font-size-featured-1:1.375rem;--rs-line-height-featured-1:1.75rem;--rs-font-family-featured-1:var(--rs-font-family-body);--rs-letter-spacing-featured-1:normal;--rs-font-size-featured-2:1.25rem;--rs-line-height-featured-2:1.75rem;--rs-font-family-featured-2:var(--rs-font-family-body);--rs-letter-spacing-featured-2:normal;--rs-font-size-featured-3:1.125rem;--rs-line-height-featured-3:1.5rem;--rs-font-family-featured-3:var(--rs-font-family-body);--rs-letter-spacing-featured-3:normal;--rs-font-size-body-1:0.875rem;--rs-line-height-body-1:1.25rem;--rs-font-family-body-1:var(--rs-font-family-body);--rs-letter-spacing-body-1:normal;--rs-font-size-body-2:0.8125rem;--rs-line-height-body-2:1.25rem;--rs-font-family-body-2:var(--rs-font-family-body);--rs-letter-spacing-body-2:normal;--rs-font-size-body-3:0.6875rem;--rs-line-height-body-3:1rem;--rs-font-family-body-3:var(--rs-font-family-body);--rs-letter-spacing-body-3:normal;--rs-font-size-caption-1:0.6875rem;--rs-line-height-caption-1:1rem;--rs-font-family-caption-1:var(--rs-font-family-body);--rs-letter-spacing-caption-1:normal;--rs-font-size-caption-2:0.625rem;--rs-line-height-caption-2:0.75rem;--rs-font-family-caption-2:var(--rs-font-family-body);--rs-letter-spacing-caption-2:normal;--rs-unit-base:4px;--rs-unit-radius-small:4px;--rs-unit-radius-medium:4px;--rs-unit-radius-large:4px;--rs-unit-x1:4px;--rs-unit-x2:8px;--rs-unit-x3:12px;--rs-unit-x4:16px;--rs-unit-x5:20px;--rs-unit-x6:24px;--rs-unit-x7:28px;--rs-unit-x8:32px;--rs-unit-x9:36px;--rs-unit-x10:40px;--rs-radius-small:4px;--rs-radius-medium:8px;--rs-radius-large:12px;--rs-color-brand:#5a58f2;--rs-color-white:#fff;--rs-color-black:#000;--rs-color-on-background-primary:#fff;--rs-color-on-background-critical:#000;--rs-color-on-background-warning:#000;--rs-color-on-background-positive:#000;--rs-color-on-brand:#fff;--rs-color-rgb-white:255,255,255;--rs-color-rgb-black:0,0,0;--rs-duration-rapid:100ms;--rs-duration-fast:200ms;--rs-duration-medium:300ms;--rs-duration-slow:400ms;--rs-easing-standard:cubic-bezier(0.4,0,0.2,1);--rs-easing-accelerate:cubic-bezier(0.4,0,1,1);--rs-easing-decelerate:cubic-bezier(0,0,0.2,1);--rs-shadow-raised:0px 1px 3px 0px rgba(0,0,0,.15);--rs-shadow-overlay:0px 10px 24px 0px rgba(0,0,0,.1),0px 2px 5px 0px rgba(0,0,0,.04);--rs-viewport-m-min:660;--rs-viewport-l-min:900;--rs-viewport-xl-min:1280}[data-rs-theme=figma][data-rs-color-mode=light]{--rs-color-background-primary:#0d99ff;--rs-color-background-primary-faded:#e5f4ff;--rs-color-border-primary:#007be5;--rs-color-border-primary-faded:#bde3ff;--rs-color-foreground-primary:#007be5;--rs-color-background-critical:#f24822;--rs-color-background-critical-faded:#ffe2e0;--rs-color-border-critical:#dc3412;--rs-color-border-critical-faded:#ffc7c2;--rs-color-foreground-critical:#dc3412;--rs-color-background-warning:#facc15;--rs-color-background-warning-faded:#fffae9;--rs-color-border-warning:#cfa90f;--rs-color-border-warning-faded:#ece2c4;--rs-color-foreground-warning:#7b6305;--rs-color-background-positive:#14ae5c;--rs-color-background-positive-faded:#daecdf;--rs-color-border-positive:#009951;--rs-color-border-positive-faded:#bbddc6;--rs-color-foreground-positive:#009951;--rs-color-background-neutral:#dfe2ea;--rs-color-background-neutral-faded:#f5f5f5;--rs-color-border-neutral:#e6e6e6;--rs-color-border-neutral-faded:#e6e6e6;--rs-color-foreground-neutral:#191919;--rs-color-foreground-neutral-faded:#474747;--rs-color-background-disabled:#e4e4e4;--rs-color-background-disabled-faded:#f5f5f5;--rs-color-border-disabled:#e6e6e6;--rs-color-foreground-disabled:#b2b2b2;--rs-color-background-elevation-base:#fff;--rs-color-background-elevation-raised:#fff;--rs-color-background-elevation-overlay:#fff;--rs-color-background-page:#fff;--rs-color-background-page-faded:#fafafa;--rs-color-background-neutral-highlighted:#d4d8e3;--rs-color-background-primary-highlighted:#007be5;--rs-color-background-positive-highlighted:#009951;--rs-color-background-critical-highlighted:#dc3412;--rs-color-rgb-background-primary:13,153,255;--rs-color-rgb-background-primary-faded:229,244,255;--rs-color-rgb-background-critical:242,72,34;--rs-color-rgb-background-critical-faded:255,226,224;--rs-color-rgb-background-warning:250,204,21;--rs-color-rgb-background-warning-faded:255,250,233;--rs-color-rgb-background-positive:20,174,92;--rs-color-rgb-background-positive-faded:218,236,223;--rs-color-on-background-neutral:#000;--rs-color-rgb-background-neutral:223,226,234;--rs-color-rgb-background-neutral-faded:245,245,245;--rs-color-rgb-background-disabled:228,228,228;--rs-color-rgb-background-disabled-faded:245,245,245;--rs-color-rgb-background-elevation-base:255,255,255;--rs-color-rgb-background-elevation-raised:255,255,255;--rs-color-rgb-background-elevation-overlay:255,255,255;--rs-color-rgb-background-page:255,255,255;--rs-color-rgb-background-page-faded:250,250,250;--rs-color-rgb-background-neutral-highlighted:212,216,227;--rs-color-rgb-background-primary-highlighted:0,123,229;--rs-color-rgb-background-positive-highlighted:0,153,81;--rs-color-rgb-background-critical-highlighted:220,52,18}[data-rs-theme=figma][data-rs-color-mode=dark]{--rs-color-background-primary:#0c8ce9;--rs-color-background-primary-faded:#394360;--rs-color-border-primary:#7cc4f8;--rs-color-border-primary-faded:#2a4d72;--rs-color-foreground-primary:#7cc4f8;--rs-color-background-critical:#e03e1a;--rs-color-background-critical-faded:#60332a;--rs-color-border-critical:#fca397;--rs-color-border-critical-faded:#803226;--rs-color-foreground-critical:#fca397;--rs-color-background-warning:#f1c512;--rs-color-background-warning-faded:#2c271f;--rs-color-border-warning:#b4920a;--rs-color-border-warning-faded:#453c1e;--rs-color-foreground-warning:#b4920c;--rs-color-background-positive:#198f51;--rs-color-background-positive-faded:#3d5749;--rs-color-border-positive:#79d297;--rs-color-border-positive-faded:#086338;--rs-color-foreground-positive:#79d297;--rs-color-background-neutral:#444;--rs-color-background-neutral-faded:#383838;--rs-color-border-neutral:#444;--rs-color-border-neutral-faded:#444;--rs-color-foreground-neutral:#fff;--rs-color-foreground-neutral-faded:#b2b2b2;--rs-color-background-disabled:#474747;--rs-color-background-disabled-faded:#3a3a3a;--rs-color-border-disabled:#3e3e3e;--rs-color-foreground-disabled:#656565;--rs-color-background-elevation-base:#2c2c2c;--rs-color-background-elevation-raised:#2c2c2c;--rs-color-background-elevation-overlay:#2c2c2c;--rs-color-background-page:#2c2c2c;--rs-color-background-page-faded:#1e1e1e;--rs-color-background-neutral-highlighted:#525252;--rs-color-background-primary-highlighted:#0a6dc2;--rs-color-background-positive-highlighted:#078348;--rs-color-background-critical-highlighted:#c4381c;--rs-color-rgb-background-primary:12,140,233;--rs-color-rgb-background-primary-faded:57,67,96;--rs-color-rgb-background-critical:224,62,26;--rs-color-rgb-background-critical-faded:96,51,42;--rs-color-rgb-background-warning:241,197,18;--rs-color-rgb-background-warning-faded:44,39,31;--rs-color-rgb-background-positive:25,143,81;--rs-color-rgb-background-positive-faded:61,87,73;--rs-color-on-background-neutral:#fff;--rs-color-rgb-background-neutral:68,68,68;--rs-color-rgb-background-neutral-faded:56,56,56;--rs-color-rgb-background-disabled:71,71,71;--rs-color-rgb-background-disabled-faded:58,58,58;--rs-color-rgb-background-elevation-base:44,44,44;--rs-color-rgb-background-elevation-raised:44,44,44;--rs-color-rgb-background-elevation-overlay:44,44,44;--rs-color-rgb-background-page:44,44,44;--rs-color-rgb-background-page-faded:30,30,30;--rs-color-rgb-background-neutral-highlighted:82,82,82;--rs-color-rgb-background-primary-highlighted:10,109,194;--rs-color-rgb-background-positive-highlighted:7,131,72;--rs-color-rgb-background-critical-highlighted:196,56,28}
|
@@ -1 +1 @@
|
|
1
|
-
[data-rs-theme=reshaped]{--rs-font-family-title:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-family-body:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-weight-regular:400;--rs-font-weight-medium:500;--rs-font-weight-semibold:600;--rs-font-weight-bold:700;--rs-font-weight-extrabold:800;--rs-font-weight-black:900;--rs-font-size-title-1:6rem;--rs-line-height-title-1:6.25rem;--rs-font-family-title-1:var(--rs-font-family-title);--rs-font-weight-title-1:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-1:normal;--rs-font-size-title-2:5rem;--rs-line-height-title-2:5.25rem;--rs-font-family-title-2:var(--rs-font-family-title);--rs-font-weight-title-2:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-2:normal;--rs-font-size-title-3:4rem;--rs-line-height-title-3:4.25rem;--rs-font-family-title-3:var(--rs-font-family-title);--rs-font-weight-title-3:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-3:normal;--rs-font-size-title-4:3.5rem;--rs-line-height-title-4:3.75rem;--rs-font-family-title-4:var(--rs-font-family-title);--rs-font-weight-title-4:var(--rs-font-weight-bold);--rs-letter-spacing-title-4:normal;--rs-font-size-title-5:3rem;--rs-line-height-title-5:3.25rem;--rs-font-family-title-5:var(--rs-font-family-title);--rs-font-weight-title-5:var(--rs-font-weight-bold);--rs-letter-spacing-title-5:normal;--rs-font-size-title-6:2.25rem;--rs-line-height-title-6:2.5rem;--rs-font-family-title-6:var(--rs-font-family-title);--rs-font-weight-title-6:var(--rs-font-weight-bold);--rs-letter-spacing-title-6:normal;--rs-font-size-featured-1:2rem;--rs-line-height-featured-1:2.5rem;--rs-font-family-featured-1:var(--rs-font-family-body);--rs-letter-spacing-featured-1:normal;--rs-font-size-featured-2:1.5rem;--rs-line-height-featured-2:2rem;--rs-font-family-featured-2:var(--rs-font-family-body);--rs-letter-spacing-featured-2:normal;--rs-font-size-featured-3:1.25rem;--rs-line-height-featured-3:1.75rem;--rs-font-family-featured-3:var(--rs-font-family-body);--rs-letter-spacing-featured-3:normal;--rs-font-size-body-1:1.125rem;--rs-line-height-body-1:1.75rem;--rs-font-family-body-1:var(--rs-font-family-body);--rs-letter-spacing-body-1:normal;--rs-font-size-body-2:1rem;--rs-line-height-body-2:1.5rem;--rs-font-family-body-2:var(--rs-font-family-body);--rs-letter-spacing-body-2:normal;--rs-font-size-body-3:0.875rem;--rs-line-height-body-3:1.25rem;--rs-font-family-body-3:var(--rs-font-family-body);--rs-letter-spacing-body-3:normal;--rs-font-size-caption-1:0.75rem;--rs-line-height-caption-1:1rem;--rs-font-family-caption-1:var(--rs-font-family-body);--rs-letter-spacing-caption-1:normal;--rs-font-size-caption-2:0.625rem;--rs-line-height-caption-2:0.75rem;--rs-font-family-caption-2:var(--rs-font-family-body);--rs-letter-spacing-caption-2:normal;--rs-unit-base:4px;--rs-unit-x1:4px;--rs-unit-x2:8px;--rs-unit-x3:12px;--rs-unit-x4:16px;--rs-unit-x5:20px;--rs-unit-x6:24px;--rs-unit-x7:28px;--rs-unit-x8:32px;--rs-unit-x9:36px;--rs-unit-x10:40px;--rs-radius-small:4px;--rs-radius-medium:8px;--rs-radius-large:12px;--rs-color-brand:#5a58f2;--rs-color-white:#fff;--rs-color-black:#000;--rs-color-on-background-primary:#fff;--rs-color-on-background-critical:#fff;--rs-color-on-background-warning:#000;--rs-color-on-background-positive:#fff;--rs-color-on-brand:#fff;--rs-color-rgb-white:255,255,255;--rs-color-rgb-black:0,0,0;--rs-duration-fast:200ms;--rs-duration-medium:300ms;--rs-duration-slow:400ms;--rs-easing-standard:cubic-bezier(0.4,0,0.2,1);--rs-easing-accelerate:cubic-bezier(0.4,0,1,1);--rs-easing-decelerate:cubic-bezier(0,0,0.2,1);--rs-shadow-raised:0px 1px 5px -4px rgba(0,0,0,.5),0px 4px 8px 0px rgba(0,0,0,.05);--rs-shadow-overlay:0px 5px 10px 0px rgba(0,0,0,.05),0px 15px 25px 0px rgba(0,0,0,.07);--rs-viewport-m-min:660;--rs-viewport-l-min:900;--rs-viewport-xl-min:1280}[data-rs-theme=reshaped][data-rs-color-mode=light]{--rs-color-background-primary:#5a58f2;--rs-color-background-primary-faded:#ecebfe;--rs-color-border-primary:#3b38ed;--rs-color-border-primary-faded:#dedcfb;--rs-color-foreground-primary:#4f4cf0;--rs-color-background-critical:#e22c2c;--rs-color-background-critical-faded:#fdeded;--rs-color-border-critical:#bf2424;--rs-color-border-critical-faded:#
|
1
|
+
[data-rs-theme=reshaped]{--rs-font-family-title:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-family-body:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-weight-regular:400;--rs-font-weight-medium:500;--rs-font-weight-semibold:600;--rs-font-weight-bold:700;--rs-font-weight-extrabold:800;--rs-font-weight-black:900;--rs-font-size-title-1:6rem;--rs-line-height-title-1:6.25rem;--rs-font-family-title-1:var(--rs-font-family-title);--rs-font-weight-title-1:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-1:normal;--rs-font-size-title-2:5rem;--rs-line-height-title-2:5.25rem;--rs-font-family-title-2:var(--rs-font-family-title);--rs-font-weight-title-2:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-2:normal;--rs-font-size-title-3:4rem;--rs-line-height-title-3:4.25rem;--rs-font-family-title-3:var(--rs-font-family-title);--rs-font-weight-title-3:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-3:normal;--rs-font-size-title-4:3.5rem;--rs-line-height-title-4:3.75rem;--rs-font-family-title-4:var(--rs-font-family-title);--rs-font-weight-title-4:var(--rs-font-weight-bold);--rs-letter-spacing-title-4:normal;--rs-font-size-title-5:3rem;--rs-line-height-title-5:3.25rem;--rs-font-family-title-5:var(--rs-font-family-title);--rs-font-weight-title-5:var(--rs-font-weight-bold);--rs-letter-spacing-title-5:normal;--rs-font-size-title-6:2.25rem;--rs-line-height-title-6:2.5rem;--rs-font-family-title-6:var(--rs-font-family-title);--rs-font-weight-title-6:var(--rs-font-weight-bold);--rs-letter-spacing-title-6:normal;--rs-font-size-featured-1:2rem;--rs-line-height-featured-1:2.5rem;--rs-font-family-featured-1:var(--rs-font-family-body);--rs-letter-spacing-featured-1:normal;--rs-font-size-featured-2:1.5rem;--rs-line-height-featured-2:2rem;--rs-font-family-featured-2:var(--rs-font-family-body);--rs-letter-spacing-featured-2:normal;--rs-font-size-featured-3:1.25rem;--rs-line-height-featured-3:1.75rem;--rs-font-family-featured-3:var(--rs-font-family-body);--rs-letter-spacing-featured-3:normal;--rs-font-size-body-1:1.125rem;--rs-line-height-body-1:1.75rem;--rs-font-family-body-1:var(--rs-font-family-body);--rs-letter-spacing-body-1:normal;--rs-font-size-body-2:1rem;--rs-line-height-body-2:1.5rem;--rs-font-family-body-2:var(--rs-font-family-body);--rs-letter-spacing-body-2:normal;--rs-font-size-body-3:0.875rem;--rs-line-height-body-3:1.25rem;--rs-font-family-body-3:var(--rs-font-family-body);--rs-letter-spacing-body-3:normal;--rs-font-size-caption-1:0.75rem;--rs-line-height-caption-1:1rem;--rs-font-family-caption-1:var(--rs-font-family-body);--rs-letter-spacing-caption-1:normal;--rs-font-size-caption-2:0.625rem;--rs-line-height-caption-2:0.75rem;--rs-font-family-caption-2:var(--rs-font-family-body);--rs-letter-spacing-caption-2:normal;--rs-unit-base:4px;--rs-unit-x1:4px;--rs-unit-x2:8px;--rs-unit-x3:12px;--rs-unit-x4:16px;--rs-unit-x5:20px;--rs-unit-x6:24px;--rs-unit-x7:28px;--rs-unit-x8:32px;--rs-unit-x9:36px;--rs-unit-x10:40px;--rs-radius-small:4px;--rs-radius-medium:8px;--rs-radius-large:12px;--rs-color-brand:#5a58f2;--rs-color-white:#fff;--rs-color-black:#000;--rs-color-on-background-primary:#fff;--rs-color-on-background-critical:#fff;--rs-color-on-background-warning:#000;--rs-color-on-background-positive:#fff;--rs-color-on-brand:#fff;--rs-color-rgb-white:255,255,255;--rs-color-rgb-black:0,0,0;--rs-duration-rapid:100ms;--rs-duration-fast:200ms;--rs-duration-medium:300ms;--rs-duration-slow:400ms;--rs-easing-standard:cubic-bezier(0.4,0,0.2,1);--rs-easing-accelerate:cubic-bezier(0.4,0,1,1);--rs-easing-decelerate:cubic-bezier(0,0,0.2,1);--rs-shadow-raised:0px 1px 5px -4px rgba(0,0,0,.5),0px 4px 8px 0px rgba(0,0,0,.05);--rs-shadow-overlay:0px 5px 10px 0px rgba(0,0,0,.05),0px 15px 25px 0px rgba(0,0,0,.07);--rs-viewport-m-min:660;--rs-viewport-l-min:900;--rs-viewport-xl-min:1280}[data-rs-theme=reshaped][data-rs-color-mode=light]{--rs-color-background-primary:#5a58f2;--rs-color-background-primary-faded:#ecebfe;--rs-color-border-primary:#3b38ed;--rs-color-border-primary-faded:#dedcfb;--rs-color-foreground-primary:#4f4cf0;--rs-color-background-critical:#e22c2c;--rs-color-background-critical-faded:#fdeded;--rs-color-border-critical:#bf2424;--rs-color-border-critical-faded:#f3dad6;--rs-color-foreground-critical:#c42525;--rs-color-background-warning:#facc15;--rs-color-background-warning-faded:#fffae9;--rs-color-border-warning:#cfa90f;--rs-color-border-warning-faded:#ece2c4;--rs-color-foreground-warning:#7b6305;--rs-color-background-positive:#118850;--rs-color-background-positive-faded:#edfdf5;--rs-color-border-positive:#0c6e40;--rs-color-border-positive-faded:#d2eddb;--rs-color-foreground-positive:#0d7544;--rs-color-background-neutral:#dfe2ea;--rs-color-background-neutral-faded:#f3f3f5;--rs-color-border-neutral:#0000001f;--rs-color-border-neutral-faded:#00000014;--rs-color-foreground-neutral:#14181f;--rs-color-foreground-neutral-faded:#5b667e;--rs-color-background-disabled:#eceef2;--rs-color-background-disabled-faded:#f5f6f9;--rs-color-border-disabled:#dfe2ea;--rs-color-foreground-disabled:#c6ccda;--rs-color-background-elevation-base:#fff;--rs-color-background-elevation-raised:#fff;--rs-color-background-elevation-overlay:#fff;--rs-color-background-page:#fff;--rs-color-background-page-faded:#f9f9fb;--rs-color-rgb-background-primary:90,88,242;--rs-color-rgb-background-primary-faded:236,235,254;--rs-color-rgb-background-critical:226,44,44;--rs-color-rgb-background-critical-faded:253,237,237;--rs-color-rgb-background-warning:250,204,21;--rs-color-rgb-background-warning-faded:255,250,233;--rs-color-rgb-background-positive:17,136,80;--rs-color-rgb-background-positive-faded:237,253,245;--rs-color-on-background-neutral:#000;--rs-color-rgb-background-neutral:223,226,234;--rs-color-rgb-background-neutral-faded:243,243,245;--rs-color-rgb-background-disabled:236,238,242;--rs-color-rgb-background-disabled-faded:245,246,249;--rs-color-rgb-background-elevation-base:255,255,255;--rs-color-rgb-background-elevation-raised:255,255,255;--rs-color-rgb-background-elevation-overlay:255,255,255;--rs-color-rgb-background-page:255,255,255;--rs-color-rgb-background-page-faded:249,249,251}[data-rs-theme=reshaped][data-rs-color-mode=dark]{--rs-color-background-primary:#524fea;--rs-color-background-primary-faded:#252544;--rs-color-border-primary:#8c8bf3;--rs-color-border-primary-faded:#323164;--rs-color-foreground-primary:#8b8af7;--rs-color-background-critical:#d02626;--rs-color-background-critical-faded:#3e1f1f;--rs-color-border-critical:#f46969;--rs-color-border-critical-faded:#5a2e29;--rs-color-foreground-critical:#f36a6a;--rs-color-background-warning:#f1c512;--rs-color-background-warning-faded:#2c271f;--rs-color-border-warning:#b4920a;--rs-color-border-warning-faded:#453c1e;--rs-color-foreground-warning:#b4920c;--rs-color-background-positive:#14784a;--rs-color-background-positive-faded:#1f2a23;--rs-color-border-positive:#21ab6b;--rs-color-border-positive-faded:#264431;--rs-color-foreground-positive:#18ab66;--rs-color-background-neutral:#494f60;--rs-color-background-neutral-faded:#222835;--rs-color-border-neutral:#ffffff24;--rs-color-border-neutral-faded:#ffffff14;--rs-color-foreground-neutral:#eff1f5;--rs-color-foreground-neutral-faded:#c0c6d6;--rs-color-background-disabled:#1e212a;--rs-color-background-disabled-faded:#171921;--rs-color-border-disabled:#262a34;--rs-color-foreground-disabled:#434959;--rs-color-background-elevation-base:#15171e;--rs-color-background-elevation-raised:#191b23;--rs-color-background-elevation-overlay:#1c1f28;--rs-color-background-page:#0f1116;--rs-color-background-page-faded:#111319;--rs-color-rgb-background-primary:82,79,234;--rs-color-rgb-background-primary-faded:37,37,68;--rs-color-rgb-background-critical:208,38,38;--rs-color-rgb-background-critical-faded:62,31,31;--rs-color-rgb-background-warning:241,197,18;--rs-color-rgb-background-warning-faded:44,39,31;--rs-color-rgb-background-positive:20,120,74;--rs-color-rgb-background-positive-faded:31,42,35;--rs-color-on-background-neutral:#fff;--rs-color-rgb-background-neutral:73,79,96;--rs-color-rgb-background-neutral-faded:34,40,53;--rs-color-rgb-background-disabled:30,33,42;--rs-color-rgb-background-disabled-faded:23,25,33;--rs-color-rgb-background-elevation-base:21,23,30;--rs-color-rgb-background-elevation-raised:25,27,35;--rs-color-rgb-background-elevation-overlay:28,31,40;--rs-color-rgb-background-page:15,17,22;--rs-color-rgb-background-page-faded:17,19,25}
|
@@ -1 +1 @@
|
|
1
|
-
[data-rs-theme=slate]{--rs-font-family-title:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-family-body:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-weight-regular:400;--rs-font-weight-medium:500;--rs-font-weight-semibold:600;--rs-font-weight-bold:700;--rs-font-weight-extrabold:800;--rs-font-weight-black:900;--rs-font-size-title-1:6rem;--rs-line-height-title-1:6.25rem;--rs-font-family-title-1:var(--rs-font-family-title);--rs-font-weight-title-1:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-1:normal;--rs-font-size-title-2:5rem;--rs-line-height-title-2:5.25rem;--rs-font-family-title-2:var(--rs-font-family-title);--rs-font-weight-title-2:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-2:normal;--rs-font-size-title-3:4rem;--rs-line-height-title-3:4.25rem;--rs-font-family-title-3:var(--rs-font-family-title);--rs-font-weight-title-3:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-3:normal;--rs-font-size-title-4:3.5rem;--rs-line-height-title-4:3.75rem;--rs-font-family-title-4:var(--rs-font-family-title);--rs-font-weight-title-4:var(--rs-font-weight-bold);--rs-letter-spacing-title-4:normal;--rs-font-size-title-5:3rem;--rs-line-height-title-5:3.25rem;--rs-font-family-title-5:var(--rs-font-family-title);--rs-font-weight-title-5:var(--rs-font-weight-bold);--rs-letter-spacing-title-5:normal;--rs-font-size-title-6:2.25rem;--rs-line-height-title-6:2.5rem;--rs-font-family-title-6:var(--rs-font-family-title);--rs-font-weight-title-6:var(--rs-font-weight-bold);--rs-letter-spacing-title-6:normal;--rs-font-size-featured-1:2rem;--rs-line-height-featured-1:2.5rem;--rs-font-family-featured-1:var(--rs-font-family-body);--rs-letter-spacing-featured-1:normal;--rs-font-size-featured-2:1.5rem;--rs-line-height-featured-2:2rem;--rs-font-family-featured-2:var(--rs-font-family-body);--rs-letter-spacing-featured-2:normal;--rs-font-size-featured-3:1.25rem;--rs-line-height-featured-3:1.75rem;--rs-font-family-featured-3:var(--rs-font-family-body);--rs-letter-spacing-featured-3:normal;--rs-font-size-body-1:1.125rem;--rs-line-height-body-1:1.75rem;--rs-font-family-body-1:var(--rs-font-family-body);--rs-letter-spacing-body-1:normal;--rs-font-size-body-2:1rem;--rs-line-height-body-2:1.5rem;--rs-font-family-body-2:var(--rs-font-family-body);--rs-letter-spacing-body-2:normal;--rs-font-size-body-3:0.875rem;--rs-line-height-body-3:1.25rem;--rs-font-family-body-3:var(--rs-font-family-body);--rs-letter-spacing-body-3:normal;--rs-font-size-caption-1:0.75rem;--rs-line-height-caption-1:1rem;--rs-font-family-caption-1:var(--rs-font-family-body);--rs-letter-spacing-caption-1:normal;--rs-font-size-caption-2:0.625rem;--rs-line-height-caption-2:0.75rem;--rs-font-family-caption-2:var(--rs-font-family-body);--rs-letter-spacing-caption-2:normal;--rs-unit-base:4px;--rs-unit-x1:4px;--rs-unit-x2:8px;--rs-unit-x3:12px;--rs-unit-x4:16px;--rs-unit-x5:20px;--rs-unit-x6:24px;--rs-unit-x7:28px;--rs-unit-x8:32px;--rs-unit-x9:36px;--rs-unit-x10:40px;--rs-radius-small:4px;--rs-radius-medium:8px;--rs-radius-large:12px;--rs-color-brand:#2563eb;--rs-color-white:#fff;--rs-color-black:#000;--rs-color-on-background-primary:#fff;--rs-color-on-background-critical:#fff;--rs-color-on-background-warning:#000;--rs-color-on-background-positive:#fff;--rs-color-on-brand:#fff;--rs-color-rgb-white:255,255,255;--rs-color-rgb-black:0,0,0;--rs-duration-fast:200ms;--rs-duration-medium:300ms;--rs-duration-slow:400ms;--rs-easing-standard:cubic-bezier(0.4,0,0.2,1);--rs-easing-accelerate:cubic-bezier(0.4,0,1,1);--rs-easing-decelerate:cubic-bezier(0,0,0.2,1);--rs-shadow-raised:0px 1px 5px -4px rgba(0,0,0,.5),0px 4px 8px 0px rgba(0,0,0,.05);--rs-shadow-overlay:0px 5px 10px 0px rgba(0,0,0,.05),0px 15px 25px 0px rgba(0,0,0,.07);--rs-viewport-m-min:660;--rs-viewport-l-min:900;--rs-viewport-xl-min:1280}[data-rs-theme=slate][data-rs-color-mode=light]{--rs-color-background-primary:#2563eb;--rs-color-background-primary-faded:#e8f0ff;--rs-color-border-primary:#1e5ce5;--rs-color-border-primary-faded:#
|
1
|
+
[data-rs-theme=slate]{--rs-font-family-title:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-family-body:Inter,BlinkMacSystemFont,-apple-system,Roboto,Helvetica,Arial,sans-serif;--rs-font-weight-regular:400;--rs-font-weight-medium:500;--rs-font-weight-semibold:600;--rs-font-weight-bold:700;--rs-font-weight-extrabold:800;--rs-font-weight-black:900;--rs-font-size-title-1:6rem;--rs-line-height-title-1:6.25rem;--rs-font-family-title-1:var(--rs-font-family-title);--rs-font-weight-title-1:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-1:normal;--rs-font-size-title-2:5rem;--rs-line-height-title-2:5.25rem;--rs-font-family-title-2:var(--rs-font-family-title);--rs-font-weight-title-2:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-2:normal;--rs-font-size-title-3:4rem;--rs-line-height-title-3:4.25rem;--rs-font-family-title-3:var(--rs-font-family-title);--rs-font-weight-title-3:var(--rs-font-weight-extrabold);--rs-letter-spacing-title-3:normal;--rs-font-size-title-4:3.5rem;--rs-line-height-title-4:3.75rem;--rs-font-family-title-4:var(--rs-font-family-title);--rs-font-weight-title-4:var(--rs-font-weight-bold);--rs-letter-spacing-title-4:normal;--rs-font-size-title-5:3rem;--rs-line-height-title-5:3.25rem;--rs-font-family-title-5:var(--rs-font-family-title);--rs-font-weight-title-5:var(--rs-font-weight-bold);--rs-letter-spacing-title-5:normal;--rs-font-size-title-6:2.25rem;--rs-line-height-title-6:2.5rem;--rs-font-family-title-6:var(--rs-font-family-title);--rs-font-weight-title-6:var(--rs-font-weight-bold);--rs-letter-spacing-title-6:normal;--rs-font-size-featured-1:2rem;--rs-line-height-featured-1:2.5rem;--rs-font-family-featured-1:var(--rs-font-family-body);--rs-letter-spacing-featured-1:normal;--rs-font-size-featured-2:1.5rem;--rs-line-height-featured-2:2rem;--rs-font-family-featured-2:var(--rs-font-family-body);--rs-letter-spacing-featured-2:normal;--rs-font-size-featured-3:1.25rem;--rs-line-height-featured-3:1.75rem;--rs-font-family-featured-3:var(--rs-font-family-body);--rs-letter-spacing-featured-3:normal;--rs-font-size-body-1:1.125rem;--rs-line-height-body-1:1.75rem;--rs-font-family-body-1:var(--rs-font-family-body);--rs-letter-spacing-body-1:normal;--rs-font-size-body-2:1rem;--rs-line-height-body-2:1.5rem;--rs-font-family-body-2:var(--rs-font-family-body);--rs-letter-spacing-body-2:normal;--rs-font-size-body-3:0.875rem;--rs-line-height-body-3:1.25rem;--rs-font-family-body-3:var(--rs-font-family-body);--rs-letter-spacing-body-3:normal;--rs-font-size-caption-1:0.75rem;--rs-line-height-caption-1:1rem;--rs-font-family-caption-1:var(--rs-font-family-body);--rs-letter-spacing-caption-1:normal;--rs-font-size-caption-2:0.625rem;--rs-line-height-caption-2:0.75rem;--rs-font-family-caption-2:var(--rs-font-family-body);--rs-letter-spacing-caption-2:normal;--rs-unit-base:4px;--rs-unit-x1:4px;--rs-unit-x2:8px;--rs-unit-x3:12px;--rs-unit-x4:16px;--rs-unit-x5:20px;--rs-unit-x6:24px;--rs-unit-x7:28px;--rs-unit-x8:32px;--rs-unit-x9:36px;--rs-unit-x10:40px;--rs-radius-small:4px;--rs-radius-medium:8px;--rs-radius-large:12px;--rs-color-brand:#2563eb;--rs-color-white:#fff;--rs-color-black:#000;--rs-color-on-background-primary:#fff;--rs-color-on-background-critical:#fff;--rs-color-on-background-warning:#000;--rs-color-on-background-positive:#fff;--rs-color-on-brand:#fff;--rs-color-rgb-white:255,255,255;--rs-color-rgb-black:0,0,0;--rs-duration-rapid:100ms;--rs-duration-fast:200ms;--rs-duration-medium:300ms;--rs-duration-slow:400ms;--rs-easing-standard:cubic-bezier(0.4,0,0.2,1);--rs-easing-accelerate:cubic-bezier(0.4,0,1,1);--rs-easing-decelerate:cubic-bezier(0,0,0.2,1);--rs-shadow-raised:0px 1px 5px -4px rgba(0,0,0,.5),0px 4px 8px 0px rgba(0,0,0,.05);--rs-shadow-overlay:0px 5px 10px 0px rgba(0,0,0,.05),0px 15px 25px 0px rgba(0,0,0,.07);--rs-viewport-m-min:660;--rs-viewport-l-min:900;--rs-viewport-xl-min:1280}[data-rs-theme=slate][data-rs-color-mode=light]{--rs-color-background-primary:#2563eb;--rs-color-background-primary-faded:#e8f0ff;--rs-color-border-primary:#1e5ce5;--rs-color-border-primary-faded:#d0ddf4;--rs-color-foreground-primary:#1e5ce5;--rs-color-background-critical:#e22c2c;--rs-color-background-critical-faded:#fff1ef;--rs-color-border-critical:#c22022;--rs-color-border-critical-faded:#f3dad6;--rs-color-foreground-critical:#c22022;--rs-color-background-warning:#facc15;--rs-color-background-warning-faded:#fff6dd;--rs-color-border-warning:#816802;--rs-color-border-warning-faded:#ece2c4;--rs-color-foreground-warning:#816802;--rs-color-background-positive:#118850;--rs-color-background-positive-faded:#ebfff1;--rs-color-border-positive:#0f7f4a;--rs-color-border-positive-faded:#d2eddb;--rs-color-foreground-positive:#0f7f4a;--rs-color-background-neutral:#e3e4e8;--rs-color-background-neutral-faded:#f3f3f5;--rs-color-border-neutral:#0000001f;--rs-color-border-neutral-faded:#00000014;--rs-color-foreground-neutral:#2c2e34;--rs-color-foreground-neutral-faded:#676a75;--rs-color-background-disabled:#edeeef;--rs-color-background-disabled-faded:#f6f6f7;--rs-color-border-disabled:#e2e2e4;--rs-color-foreground-disabled:#cbcccf;--rs-color-background-elevation-base:#fff;--rs-color-background-elevation-raised:#fff;--rs-color-background-elevation-overlay:#fff;--rs-color-background-page:#fff;--rs-color-background-page-faded:#fafbfb;--rs-color-rgb-background-primary:37,99,235;--rs-color-rgb-background-primary-faded:232,240,255;--rs-color-rgb-background-critical:226,44,44;--rs-color-rgb-background-critical-faded:255,241,239;--rs-color-rgb-background-warning:250,204,21;--rs-color-rgb-background-warning-faded:255,246,221;--rs-color-rgb-background-positive:17,136,80;--rs-color-rgb-background-positive-faded:235,255,241;--rs-color-on-background-neutral:#000;--rs-color-rgb-background-neutral:227,228,232;--rs-color-rgb-background-neutral-faded:243,243,245;--rs-color-rgb-background-disabled:237,238,239;--rs-color-rgb-background-disabled-faded:246,246,247;--rs-color-rgb-background-elevation-base:255,255,255;--rs-color-rgb-background-elevation-raised:255,255,255;--rs-color-rgb-background-elevation-overlay:255,255,255;--rs-color-rgb-background-page:255,255,255;--rs-color-rgb-background-page-faded:250,251,251}[data-rs-theme=slate][data-rs-color-mode=dark]{--rs-color-background-primary:#2563eb;--rs-color-background-primary-faded:#17243d;--rs-color-border-primary:#7199e5;--rs-color-border-primary-faded:#293b60;--rs-color-foreground-primary:#7199e5;--rs-color-background-critical:#d72828;--rs-color-background-critical-faded:#391b18;--rs-color-border-critical:#e68075;--rs-color-border-critical-faded:#5a2e29;--rs-color-foreground-critical:#e68075;--rs-color-background-warning:#d7ae06;--rs-color-background-warning-faded:#2b2410;--rs-color-border-warning:#eed58a;--rs-color-border-warning-faded:#453c1e;--rs-color-foreground-warning:#eed58a;--rs-color-background-positive:#118850;--rs-color-background-positive-faded:#152a1d;--rs-color-border-positive:#57b17c;--rs-color-border-positive-faded:#264431;--rs-color-foreground-positive:#57b17c;--rs-color-background-neutral:#393a42;--rs-color-background-neutral-faded:#212227;--rs-color-border-neutral:#ffffff24;--rs-color-border-neutral-faded:#ffffff14;--rs-color-foreground-neutral:#f3f3f5;--rs-color-foreground-neutral-faded:#c7c9d1;--rs-color-background-disabled:#242527;--rs-color-background-disabled-faded:#1b1b1d;--rs-color-border-disabled:#262729;--rs-color-foreground-disabled:#494a4e;--rs-color-background-elevation-base:#161617;--rs-color-background-elevation-raised:#18191a;--rs-color-background-elevation-overlay:#1d1d1f;--rs-color-background-page:#0e0e0f;--rs-color-background-page-faded:#131414;--rs-color-rgb-background-primary:37,99,235;--rs-color-rgb-background-primary-faded:23,36,61;--rs-color-rgb-background-critical:215,40,40;--rs-color-rgb-background-critical-faded:57,27,24;--rs-color-rgb-background-warning:215,174,6;--rs-color-rgb-background-warning-faded:43,36,16;--rs-color-rgb-background-positive:17,136,80;--rs-color-rgb-background-positive-faded:21,42,29;--rs-color-on-background-neutral:#fff;--rs-color-rgb-background-neutral:57,58,66;--rs-color-rgb-background-neutral-faded:33,34,39;--rs-color-rgb-background-disabled:36,37,39;--rs-color-rgb-background-disabled-faded:27,27,29;--rs-color-rgb-background-elevation-base:22,22,23;--rs-color-rgb-background-elevation-raised:24,25,26;--rs-color-rgb-background-elevation-overlay:29,29,31;--rs-color-rgb-background-page:14,14,15;--rs-color-rgb-background-page-faded:19,20,20}
|
package/dist/types/global.d.ts
CHANGED
@@ -21,6 +21,7 @@ class TrapFocus {
|
|
21
21
|
* Handle keyboard navigation while focus is trapped
|
22
22
|
*/
|
23
23
|
handleKeyDown = (event) => {
|
24
|
+
// if (event.defaultPrevented) return;
|
24
25
|
if (TrapFocus.chain.tailId !== this.chainId)
|
25
26
|
return;
|
26
27
|
const { mode, onNavigateOutside, pseudoFocus, includeTrigger } = this.options;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { FocusableElement } from "./types";
|
2
|
-
export declare const focusableSelector = "a,button,input:not([type=\"hidden\"]),textarea,select,details,[tabindex]
|
2
|
+
export declare const focusableSelector = "a,button,input:not([type=\"hidden\"]),textarea,select,details,[tabindex],[contenteditable]";
|
3
3
|
export declare const getActiveElement: (originEl?: HTMLElement | null) => HTMLButtonElement;
|
4
4
|
export declare const focusElement: (el: FocusableElement, options?: {
|
5
5
|
pseudoFocus?: boolean;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { getShadowRoot } from "../dom/index.js";
|
2
2
|
const pseudoFocusAttribute = "data-rs-focus";
|
3
|
-
export const focusableSelector = 'a,button,input:not([type="hidden"]),textarea,select,details,[tabindex]
|
3
|
+
export const focusableSelector = 'a,button,input:not([type="hidden"]),textarea,select,details,[tabindex],[contenteditable]';
|
4
4
|
export const getActiveElement = (originEl) => {
|
5
5
|
const shadowRoot = originEl ? getShadowRoot(originEl) : null;
|
6
6
|
const rootEl = shadowRoot ?? document;
|
@@ -25,6 +25,9 @@ export const getFocusableElements = (rootEl, options) => {
|
|
25
25
|
return false;
|
26
26
|
if (el.clientHeight === 0)
|
27
27
|
return false;
|
28
|
+
// Using getAttribute here since browser sets el.tabIndex to -1 by default
|
29
|
+
if (el.getAttribute("tabindex") === "-1")
|
30
|
+
return false;
|
28
31
|
if (el.type === "radio") {
|
29
32
|
let sameNameRadioEls;
|
30
33
|
if (el.form) {
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { Example } from "../../storybook/index.js";
|
3
|
+
import TrapFocus from "../TrapFocus.js";
|
4
|
+
import Button from "../../../components/Button/index.js";
|
5
|
+
import useToggle from "../../../hooks/useToggle.js";
|
6
|
+
import View from "../../../components/View/index.js";
|
7
|
+
import TextField from "../../../components/TextField/index.js";
|
8
|
+
import RadioGroup from "../../../components/RadioGroup/index.js";
|
9
|
+
import Radio from "../../../components/Radio/index.js";
|
10
|
+
import * as keys from "../../../constants/keys.js";
|
11
|
+
export default {
|
12
|
+
title: "Internal/TrapFocus",
|
13
|
+
};
|
14
|
+
const Editor = () => {
|
15
|
+
const pressedCountRef = React.useRef(1);
|
16
|
+
const handleKeyDown = (e) => {
|
17
|
+
if (e.key !== keys.TAB)
|
18
|
+
return;
|
19
|
+
if (pressedCountRef.current % 5)
|
20
|
+
e.preventDefault();
|
21
|
+
pressedCountRef.current += 1;
|
22
|
+
};
|
23
|
+
return (<View backgroundColor="neutral-faded" borderColor="neutral-faded" borderRadius="medium" padding={4} attributes={{ contentEditable: true, onKeyDown: handleKeyDown }}/>);
|
24
|
+
};
|
25
|
+
const Demo = () => {
|
26
|
+
const rootRef = React.useRef(null);
|
27
|
+
const trapToggle = useToggle();
|
28
|
+
React.useEffect(() => {
|
29
|
+
if (!trapToggle.active)
|
30
|
+
return;
|
31
|
+
if (!rootRef.current)
|
32
|
+
return;
|
33
|
+
const trapFocus = new TrapFocus(rootRef.current);
|
34
|
+
trapFocus.trap();
|
35
|
+
return () => trapFocus.release();
|
36
|
+
}, [trapToggle.active]);
|
37
|
+
return (<View gap={4}>
|
38
|
+
<Button onClick={trapToggle.activate}>Activate</Button>
|
39
|
+
{trapToggle.active && (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} gap={4} attributes={{ ref: rootRef }}>
|
40
|
+
<Button onClick={() => { }}>Button</Button>
|
41
|
+
<Button href="#">Link</Button>
|
42
|
+
<TextField name="input" placeholder="Input"/>
|
43
|
+
<RadioGroup name="radio">
|
44
|
+
<Radio value="1">Option 1</Radio>
|
45
|
+
<Radio value="2">Option 1</Radio>
|
46
|
+
</RadioGroup>
|
47
|
+
<Editor />
|
48
|
+
<Button onClick={trapToggle.deactivate} attributes={{ tabIndex: -1 }}>
|
49
|
+
Excluded
|
50
|
+
</Button>
|
51
|
+
<Button onClick={trapToggle.deactivate}>Deactivate</Button>
|
52
|
+
</View>)}
|
53
|
+
</View>);
|
54
|
+
};
|
55
|
+
export const base = () => (<Example>
|
56
|
+
<Example.Item title="Default">
|
57
|
+
<Demo />
|
58
|
+
</Example.Item>
|
59
|
+
</Example>);
|
@@ -1 +1,10 @@
|
|
1
1
|
export declare const findParent: (element: HTMLElement, condition: (el: HTMLElement) => boolean) => HTMLElement | null;
|
2
|
+
/**
|
3
|
+
* Containers used for scoping the rendering,
|
4
|
+
* mostly used in flyouts since the have to accommodate for positioning and overflow
|
5
|
+
*/
|
6
|
+
export declare const findClosestRenderContainer: (args: {
|
7
|
+
el: HTMLElement | null;
|
8
|
+
iteration?: number;
|
9
|
+
overflowOnly?: boolean;
|
10
|
+
}) => HTMLElement;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { getShadowRoot } from "./shadowDom.js";
|
1
2
|
export const findParent = (element, condition) => {
|
2
3
|
let currentElement = element.parentElement;
|
3
4
|
while (currentElement) {
|
@@ -7,3 +8,28 @@ export const findParent = (element, condition) => {
|
|
7
8
|
}
|
8
9
|
return null;
|
9
10
|
};
|
11
|
+
/**
|
12
|
+
* Containers used for scoping the rendering,
|
13
|
+
* mostly used in flyouts since the have to accommodate for positioning and overflow
|
14
|
+
*/
|
15
|
+
export const findClosestRenderContainer = (args) => {
|
16
|
+
const { el, iteration = 0, overflowOnly } = args;
|
17
|
+
const style = el && window.getComputedStyle(el);
|
18
|
+
const overflowY = style?.overflowY;
|
19
|
+
const position = style?.position;
|
20
|
+
const isScrollable = overflowY?.includes("scroll") || overflowY?.includes("auto");
|
21
|
+
const isFixed = position === "fixed" || position === "sticky";
|
22
|
+
// Only check shadow root on the first run
|
23
|
+
if (iteration === 0) {
|
24
|
+
const shadowRoot = getShadowRoot(el);
|
25
|
+
if (shadowRoot?.firstElementChild)
|
26
|
+
return shadowRoot.firstElementChild;
|
27
|
+
}
|
28
|
+
if (el === document.body || !el)
|
29
|
+
return document.body;
|
30
|
+
if (isScrollable && el.scrollHeight > el.clientHeight)
|
31
|
+
return el;
|
32
|
+
if (isFixed && !overflowOnly)
|
33
|
+
return el;
|
34
|
+
return findClosestRenderContainer({ el: el.parentElement, iteration: iteration + 1 });
|
35
|
+
};
|
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
import type * as G from "../../types/global";
|
2
|
+
export declare const getRectFromCoordinates: (coordinates: DOMRect | G.Coordinates) => DOMRect;
|
@@ -1,19 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
}
|
14
|
-
if (el === document.body || !el)
|
15
|
-
return document.body;
|
16
|
-
if ((isScrollable && el.scrollHeight > el.clientHeight) || isFixed)
|
17
|
-
return el;
|
18
|
-
return getClosestFlyoutTarget(el.parentElement, iteration + 1);
|
1
|
+
export const getRectFromCoordinates = (coordinates) => {
|
2
|
+
if ("width" in coordinates && coordinates.width !== undefined)
|
3
|
+
return coordinates;
|
4
|
+
return {
|
5
|
+
...coordinates,
|
6
|
+
width: 0,
|
7
|
+
height: 0,
|
8
|
+
left: coordinates.x,
|
9
|
+
right: coordinates.x,
|
10
|
+
top: coordinates.y,
|
11
|
+
bottom: coordinates.y,
|
12
|
+
toJSON: () => { },
|
13
|
+
};
|
19
14
|
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export {
|
1
|
+
export { getRectFromCoordinates } from "./flyout";
|
2
2
|
export { getShadowRoot } from "./shadowDom";
|
3
3
|
export { enableUserSelect, disableUserSelect } from "./userSelect";
|
4
|
-
export { findParent } from "./find";
|
4
|
+
export { findParent, findClosestRenderContainer } from "./find";
|