@basic-ui/material 0.1.10 → 0.1.13
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/build/cjs/index.js +36 -31
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Alert/Alert.d.ts +1 -1
- package/build/esm/AppBar/AppBar.d.ts +1 -1
- package/build/esm/AppBar/AppBarButton.d.ts +1 -1
- package/build/esm/Badge/Badge.d.ts +1 -1
- package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
- package/build/esm/BottomSheet/BottomSheetSurface.d.ts +1 -1
- package/build/esm/Button/BaseButton.d.ts +1 -1
- package/build/esm/Button/Button.d.ts +1 -1
- package/build/esm/Button/FilledButton.d.ts +1 -1
- package/build/esm/Button/FloatingActionButton.d.ts +7 -0
- package/build/esm/Button/FloatingActionButton.js +8 -0
- package/build/esm/Button/FloatingActionButton.js.map +1 -0
- package/build/esm/Button/OutlinedButton.d.ts +1 -3
- package/build/esm/Button/TransparentButton.d.ts +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +1 -1
- package/build/esm/CheckBox/CheckBoxIcon.d.ts +1 -1
- package/build/esm/Chip/ButtonChip.d.ts +1 -1
- package/build/esm/Chip/ChipBase.d.ts +1 -1
- package/build/esm/Chip/ChoiceChip.d.ts +1 -1
- package/build/esm/ColorMode/ColorModeProvider.js +10 -3
- package/build/esm/ColorMode/ColorModeProvider.js.map +1 -1
- package/build/esm/Combobox/Combobox.d.ts +7 -7
- package/build/esm/Dialog/Dialog.d.ts +1 -1
- package/build/esm/Dialog/DialogBackdrop.d.ts +1 -1
- package/build/esm/Dialog/DialogContainer.d.ts +1 -1
- package/build/esm/Dialog/DialogSurface.d.ts +1 -1
- package/build/esm/Dialog/Scrim.d.ts +1 -1
- package/build/esm/Dialog/useDialogAnimation.js +1 -1
- package/build/esm/Dialog/useDialogAnimation.js.map +1 -1
- package/build/esm/Divider/Divider.d.ts +1 -1
- package/build/esm/LineRipple/LineRipple.d.ts +1 -1
- package/build/esm/Link/Link.d.ts +1 -1
- package/build/esm/List/List.d.ts +1 -1
- package/build/esm/ListItem/ListItem.d.ts +1 -1
- package/build/esm/Menu/Menu.d.ts +4 -4
- package/build/esm/Paper/Paper.d.ts +1 -1
- package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
- package/build/esm/Ripple/keyframes.js +0 -2
- package/build/esm/Ripple/keyframes.js.map +1 -1
- package/build/esm/Ripple/useRipple.js +4 -4
- package/build/esm/Ripple/useRipple.js.map +1 -1
- package/build/esm/Select/SelectIcon.d.ts +1 -1
- package/build/esm/SelectItem/SelectItem.d.ts +1 -1
- package/build/esm/SelectionControl/SelectionControlLabel.d.ts +1 -1
- package/build/esm/SelectionControl/SelectionControlText.d.ts +1 -1
- package/build/esm/Skeleton/DelayAppearance.d.ts +1 -1
- package/build/esm/Skeleton/Skeleton.d.ts +1 -1
- package/build/esm/Snackbar/Snackbar.d.ts +1 -1
- package/build/esm/Snackbar/Stack.d.ts +2 -0
- package/build/esm/Snackbar/Stack.js.map +1 -1
- package/build/esm/Switch/Switch.d.ts +1 -1
- package/build/esm/Tab/Tab.d.ts +1 -1
- package/build/esm/Tab/TabList.d.ts +1 -1
- package/build/esm/Tab/TabPanel.d.ts +1 -1
- package/build/esm/TabIndicator/TabIndicator.d.ts +1 -1
- package/build/esm/Table/Table.d.ts +1 -1
- package/build/esm/Table/TableBody.d.ts +1 -1
- package/build/esm/Table/TableCell.d.ts +1 -1
- package/build/esm/Table/TableHead.d.ts +1 -1
- package/build/esm/Table/TableRow.d.ts +1 -1
- package/build/esm/Text/Text.d.ts +1 -1
- package/build/esm/TextField/FilledContainer.d.ts +1 -1
- package/build/esm/TextField/HelperText.d.ts +1 -1
- package/build/esm/TextField/Input.d.ts +1 -1
- package/build/esm/TextField/OutlinedContainer.d.ts +1 -1
- package/build/esm/TextField/TextField.d.ts +1 -1
- package/build/esm/ThemeExplorer/ColorPicker.d.ts +8 -0
- package/build/esm/ThemeExplorer/ColorPicker.js +76 -0
- package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -0
- package/build/esm/ThemeExplorer/TextFieldColorPicker.d.ts +9 -0
- package/build/esm/ThemeExplorer/TextFieldColorPicker.js +100 -0
- package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -0
- package/build/esm/ThemeExplorer/ThemeColors.d.ts +5 -0
- package/build/esm/ThemeExplorer/ThemeColors.js +80 -0
- package/build/esm/ThemeExplorer/ThemeColors.js.map +1 -0
- package/build/esm/ThemeExplorer/components.d.ts +31 -0
- package/build/esm/ThemeExplorer/components.js +184 -0
- package/build/esm/ThemeExplorer/components.js.map +1 -0
- package/build/esm/ThemeExplorer/makeColorScheme.d.ts +66 -0
- package/build/esm/ThemeExplorer/makeColorScheme.js +66 -0
- package/build/esm/ThemeExplorer/makeColorScheme.js.map +1 -0
- package/build/esm/ThemeExplorer/useDeferredColor.d.ts +3 -0
- package/build/esm/ThemeExplorer/useDeferredColor.js +11 -0
- package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -0
- package/build/esm/ThemeExplorer/useLocalStorageCachedState.d.ts +1 -0
- package/build/esm/ThemeExplorer/useLocalStorageCachedState.js +11 -0
- package/build/esm/ThemeExplorer/useLocalStorageCachedState.js.map +1 -0
- package/build/esm/Tooltip/Tooltip.d.ts +1 -1
- package/build/esm/hooks/useAnimation.js +22 -21
- package/build/esm/hooks/useAnimation.js.map +1 -1
- package/build/esm/theme/useTheme.d.ts +1 -425
- package/build/tsconfig.tsbuildinfo +102 -142
- package/package.json +10 -8
- package/src/ColorMode/ColorModeProvider.tsx +9 -3
- package/src/Dialog/useDialogAnimation.tsx +1 -1
- package/src/Ripple/keyframes.ts +0 -2
- package/src/Ripple/useRipple.ts +6 -4
- package/src/Snackbar/Stack.tsx +1 -0
- package/src/hooks/useAnimation.ts +42 -32
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@basic-ui/material",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Accessible React Components used as building blocks for UI patterns",
|
|
5
5
|
"author": "Lucas Terra <lucasterra7@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,18 +14,20 @@
|
|
|
14
14
|
],
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"scripts": {
|
|
17
|
-
"start": "yarn run -T start-storybook -p 9001 -c ./scripts/storybook",
|
|
18
17
|
"build": "concurrently \"yarn:build:*\"",
|
|
19
18
|
"build:dts": "tsc -p ./tsconfig.json --isolatedModules false --declaration --emitDeclarationOnly",
|
|
20
19
|
"build:cjs": "rollup -c ../../rollup.config.js",
|
|
21
20
|
"build:esm": "cross-env NODE_ENV=production BABEL_ENV=esm babel --config-file ../../babel.config.js ./src --extensions \".ts,.tsx,.js,.jsx\" --source-maps --out-dir ./build/esm --ignore \"**/*.story.tsx,**/*.story.ts,**/*.test.tsx,**/*.test.ts\"",
|
|
21
|
+
"build-storybook": "build-storybook -c ../../scripts/storybook -o .out",
|
|
22
22
|
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}' --fix",
|
|
23
23
|
"format": "prettier --write '**/*.js'",
|
|
24
|
+
"start": "yarn run -T start-storybook -p 9001 -c ./scripts/storybook",
|
|
25
|
+
"serve": "http-server .out",
|
|
24
26
|
"typecheck": "tsc --noEmit",
|
|
25
27
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
26
28
|
},
|
|
27
29
|
"dependencies": {
|
|
28
|
-
"@basic-ui/core": "^0.0.
|
|
30
|
+
"@basic-ui/core": "^0.0.36",
|
|
29
31
|
"@styled-system/should-forward-prop": "5.1.5",
|
|
30
32
|
"@types/styled-system": "^5.1.10",
|
|
31
33
|
"@types/styled-system__css": "^5.0.14",
|
|
@@ -33,8 +35,8 @@
|
|
|
33
35
|
"styled-system": "^5.1.5"
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
|
-
"@emotion/react": "11.
|
|
37
|
-
"@emotion/styled": "11.1
|
|
38
|
+
"@emotion/react": "11.9.0",
|
|
39
|
+
"@emotion/styled": "11.8.1",
|
|
38
40
|
"polished": "^4.1.1"
|
|
39
41
|
},
|
|
40
42
|
"peerDependencies": {
|
|
@@ -44,9 +46,9 @@
|
|
|
44
46
|
"@emotion/styled": "11.x",
|
|
45
47
|
"@styled-system/css": "*",
|
|
46
48
|
"polished": ">=3.0.0",
|
|
47
|
-
"react": "
|
|
48
|
-
"react-dom": "
|
|
49
|
+
"react": "^16.14.0 || ^17.0.0 || ^18.0.0",
|
|
50
|
+
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0",
|
|
49
51
|
"react-spring": "^9.0.0"
|
|
50
52
|
},
|
|
51
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "6fe8c9cf2cff7546aeb8c6d0b700f78f9ba6e1a5"
|
|
52
54
|
}
|
|
@@ -65,14 +65,20 @@ export const ColorModeProvider: React.FC<ColorModeProviderProps> = (props) => {
|
|
|
65
65
|
}, [setColorMode]);
|
|
66
66
|
|
|
67
67
|
const globalStyles = useMemo(() => {
|
|
68
|
-
const ret = {
|
|
69
|
-
|
|
68
|
+
const ret = {
|
|
69
|
+
body: { colorScheme: 'light', ...(styles['default'] || {}) },
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
ret[`.${DEFAULT_THEME_CLASS}`] = {
|
|
73
|
+
colorScheme: 'light',
|
|
74
|
+
...(styles['default'] || {}),
|
|
75
|
+
};
|
|
70
76
|
|
|
71
77
|
for (const key in styles) {
|
|
72
78
|
if (key === 'default') {
|
|
73
79
|
continue;
|
|
74
80
|
}
|
|
75
|
-
ret[`.${DARK_THEME_CLASS}`] = styles[key];
|
|
81
|
+
ret[`.${DARK_THEME_CLASS}`] = { colorScheme: 'dark', ...styles[key] };
|
|
76
82
|
}
|
|
77
83
|
|
|
78
84
|
return ret;
|
|
@@ -4,7 +4,7 @@ const styles = {
|
|
|
4
4
|
slide: {
|
|
5
5
|
closed: { opacity: 0.6, transform: 'translateY(100%)' },
|
|
6
6
|
open: { opacity: 1, transform: 'translateY(0%)' },
|
|
7
|
-
close: { opacity: 0, transform: 'translateY(
|
|
7
|
+
close: { opacity: 0, transform: 'translateY(10%)' },
|
|
8
8
|
},
|
|
9
9
|
grow: {
|
|
10
10
|
closed: { opacity: 0.8, transform: 'scale(0.8)' },
|
package/src/Ripple/keyframes.ts
CHANGED
|
@@ -27,11 +27,9 @@ export const opacityIn: Keyframes = keyframes({
|
|
|
27
27
|
|
|
28
28
|
export const opacityOut: Keyframes = keyframes({
|
|
29
29
|
from: {
|
|
30
|
-
transform: `translate(var(${RIPPLE_TRANSLATE_END}, 0)) scale(var(${RIPPLE_SCALE_END}, 1))`,
|
|
31
30
|
opacity: `var(${RIPPLE_OPACITY_END})`,
|
|
32
31
|
},
|
|
33
32
|
to: {
|
|
34
|
-
transform: `translate(var(${RIPPLE_TRANSLATE_END}, 0)) scale(var(${RIPPLE_SCALE_END}, 1))`,
|
|
35
33
|
opacity: '0',
|
|
36
34
|
},
|
|
37
35
|
});
|
package/src/Ripple/useRipple.ts
CHANGED
|
@@ -105,7 +105,7 @@ export const useRipple = (opts: RippleOptions) => {
|
|
|
105
105
|
// clear timeouts to avoid setting state on unmounted component
|
|
106
106
|
useEffect(() => {
|
|
107
107
|
return () => {
|
|
108
|
-
|
|
108
|
+
restartTimeout.current && cancelAnimationFrame(restartTimeout.current);
|
|
109
109
|
clearTimeout(enteringTimeout.current);
|
|
110
110
|
clearTimeout(leavingTimeout.current);
|
|
111
111
|
};
|
|
@@ -157,12 +157,12 @@ export const useRipple = (opts: RippleOptions) => {
|
|
|
157
157
|
|
|
158
158
|
rippleState.current = 'restart';
|
|
159
159
|
setRipple({ ...defaultRipple });
|
|
160
|
-
restartTimeout.current =
|
|
160
|
+
restartTimeout.current = requestAnimationFrame(() => {
|
|
161
161
|
rippleState.current = 'entering';
|
|
162
162
|
setRipple(calculateRipplePosition(rect, clientX, clientY, center));
|
|
163
163
|
|
|
164
164
|
enteringTimeout.current = window.setTimeout(setEntered, enterDuration);
|
|
165
|
-
}
|
|
165
|
+
});
|
|
166
166
|
};
|
|
167
167
|
|
|
168
168
|
// Styling
|
|
@@ -175,7 +175,9 @@ export const useRipple = (opts: RippleOptions) => {
|
|
|
175
175
|
`${opacityIn} ${enterDuration / 3}ms forwards`;
|
|
176
176
|
break;
|
|
177
177
|
case 'leaving':
|
|
178
|
-
animation =
|
|
178
|
+
animation =
|
|
179
|
+
`${radiusIn} ${enterDuration}ms forwards,` +
|
|
180
|
+
`${opacityOut} ${leaveDuration}ms forwards`;
|
|
179
181
|
break;
|
|
180
182
|
}
|
|
181
183
|
|
package/src/Snackbar/Stack.tsx
CHANGED
|
@@ -43,51 +43,61 @@ export function useAnimation<
|
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
const handleClose = useCallback(() => {
|
|
46
|
-
setAnimation((animation) =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
style: animationStyle.closed,
|
|
57
|
-
open: false,
|
|
58
|
-
timing: closeTimeoutInMilliseconds,
|
|
59
|
-
});
|
|
60
|
-
}, closeTimeoutInMilliseconds);
|
|
46
|
+
setAnimation((animation) =>
|
|
47
|
+
animation.state === 'closed'
|
|
48
|
+
? animation
|
|
49
|
+
: {
|
|
50
|
+
...animation,
|
|
51
|
+
state: 'close',
|
|
52
|
+
style: animationStyle.close || animationStyle.closed,
|
|
53
|
+
timing: closeTimeoutInMilliseconds,
|
|
54
|
+
}
|
|
55
|
+
);
|
|
61
56
|
}, [animationStyle, closeTimeoutInMilliseconds]);
|
|
62
57
|
|
|
63
58
|
const handleOpen = useCallback(() => {
|
|
64
|
-
setAnimation((animation) =>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
59
|
+
setAnimation((animation) =>
|
|
60
|
+
animation.state === 'open'
|
|
61
|
+
? animation
|
|
62
|
+
: {
|
|
63
|
+
...animation,
|
|
64
|
+
open: true,
|
|
65
|
+
state: 'opening',
|
|
66
|
+
style: animationStyle.opening || animationStyle.closed,
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}, [animationStyle]);
|
|
70
|
+
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
if (state === 'opening') {
|
|
71
73
|
setAnimation((animation) => ({
|
|
72
74
|
...animation,
|
|
73
75
|
state: 'open',
|
|
74
76
|
style: animationStyle.open,
|
|
75
77
|
timing: openTimeoutInMilliseconds,
|
|
76
78
|
}));
|
|
77
|
-
}
|
|
78
|
-
}, [animationStyle, openTimeoutInMilliseconds]);
|
|
79
|
+
}
|
|
80
|
+
}, [animationStyle.open, openTimeoutInMilliseconds, state]);
|
|
81
|
+
|
|
82
|
+
useEffect(() => {
|
|
83
|
+
if (state === 'close') {
|
|
84
|
+
const timeout = setTimeout(() => {
|
|
85
|
+
setAnimation({
|
|
86
|
+
state: 'closed',
|
|
87
|
+
style: animationStyle.closed,
|
|
88
|
+
open: false,
|
|
89
|
+
timing: closeTimeoutInMilliseconds,
|
|
90
|
+
});
|
|
91
|
+
}, closeTimeoutInMilliseconds);
|
|
92
|
+
return () => clearTimeout(timeout);
|
|
93
|
+
}
|
|
94
|
+
}, [animationStyle.closed, closeTimeoutInMilliseconds, state]);
|
|
79
95
|
|
|
80
96
|
useEffect(() => {
|
|
81
97
|
if (openProp) {
|
|
82
|
-
|
|
83
|
-
return () => {
|
|
84
|
-
cancelAnimationFrame(frameHandler);
|
|
85
|
-
};
|
|
98
|
+
handleOpen();
|
|
86
99
|
} else {
|
|
87
|
-
|
|
88
|
-
return () => {
|
|
89
|
-
clearTimeout(timeoutHandler);
|
|
90
|
-
};
|
|
100
|
+
handleClose();
|
|
91
101
|
}
|
|
92
102
|
}, [handleClose, handleOpen, openProp]);
|
|
93
103
|
|