@basic-ui/material 1.0.0-alpha.7 → 1.0.0-alpha.8
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 +152 -8
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Alert/Alert.d.ts +1 -1
- package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
- package/build/esm/Button/Button.d.ts +1 -1
- package/build/esm/Button/ButtonGroup.d.ts +1 -1
- package/build/esm/Button/FilledButton.d.ts +1 -1
- package/build/esm/Button/FilledButton.js +6 -8
- package/build/esm/Button/FilledButton.js.map +1 -1
- package/build/esm/Button/OutlinedButton.d.ts +1 -1
- package/build/esm/Button/TransparentButton.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/Combobox/Combobox.d.ts +7 -7
- package/build/esm/Dialog/Dialog.d.ts +1 -1
- package/build/esm/Dialog/Scrim.d.ts +1 -1
- package/build/esm/Divider/Divider.d.ts +1 -1
- package/build/esm/Link/Link.d.ts +1 -1
- package/build/esm/ListItem/ListItem.d.ts +1 -1
- package/build/esm/NavRail/NavRailItem.d.ts +5 -4
- package/build/esm/NavRail/NavRailItem.js +14 -8
- package/build/esm/NavRail/NavRailItem.js.map +1 -1
- package/build/esm/Paper/Paper.d.ts +1 -1
- package/build/esm/Select/Select.d.ts +1 -1
- package/build/esm/Select/SelectIcon.d.ts +1 -1
- package/build/esm/SelectionControl/SelectionControlText.d.ts +1 -1
- package/build/esm/Skeleton/Skeleton.d.ts +1 -1
- package/build/esm/Tab/Tab.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/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/TextField.d.ts +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +1 -1
- package/build/esm/color.d.ts +2 -0
- package/build/esm/color.js +8 -3
- package/build/esm/color.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/Button/Button.story.tsx +6 -1
- package/src/Button/FilledButton.tsx +4 -9
- package/src/NavRail/NavRail.story.tsx +93 -13
- package/src/NavRail/NavRailItem.tsx +45 -35
- package/src/ThemeExplorer/ThemeBuilder.story.tsx +27 -23
- package/src/color.ts +25 -4
- package/src/index.ts +1 -0
- package/src/ThemeExplorer/ThemeExplorer.story.tsx +0 -43
package/build/cjs/index.js
CHANGED
|
@@ -689,11 +689,16 @@ const alpha = (colorString, alphaValue) => theme => {
|
|
|
689
689
|
const rgb = polished.parseToRgb(color);
|
|
690
690
|
return `rgba(${rgb.red},${rgb.green},${rgb.blue},${alphaValue})`;
|
|
691
691
|
};
|
|
692
|
+
function mixColor(baseColor, overlayColor, overlayOpacity) {
|
|
693
|
+
return theme => {
|
|
694
|
+
baseColor = css.get(theme, `colors.${baseColor}`, baseColor);
|
|
695
|
+
overlayColor = overlayOpacity ? alpha(overlayColor, overlayOpacity)(theme) : css.get(theme, `colors.${overlayColor}`, overlayColor);
|
|
696
|
+
return `linear-gradient(${overlayColor}, ${overlayColor}), ${baseColor}`;
|
|
697
|
+
};
|
|
698
|
+
}
|
|
692
699
|
function getColorOverlay(theme, baseColor, overlayColor, overlayOpacity) {
|
|
693
|
-
baseColor = css.get(theme, `colors.${baseColor}`) || baseColor;
|
|
694
|
-
overlayColor = alpha(overlayColor, overlayOpacity)(theme);
|
|
695
700
|
return {
|
|
696
|
-
background:
|
|
701
|
+
background: mixColor(baseColor, overlayColor, overlayOpacity)(theme)
|
|
697
702
|
};
|
|
698
703
|
}
|
|
699
704
|
function getBackgroundOverlay(theme, backgroundOverlay, overlayColor = 'on.surface') {
|
|
@@ -931,10 +936,10 @@ const FilledButton = /*#__PURE__*/_styled__default['default'](BaseButton, proces
|
|
|
931
936
|
outlineOffset: '2px'
|
|
932
937
|
}
|
|
933
938
|
}), ({
|
|
934
|
-
color = 'primary'
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
})
|
|
939
|
+
color = 'primary'
|
|
940
|
+
}) => color === 'surface' && css.css({
|
|
941
|
+
background: mixColor('surface', 'primary', 0.05)
|
|
942
|
+
}), ({
|
|
938
943
|
color = 'primary',
|
|
939
944
|
theme,
|
|
940
945
|
isGroupedButton = false
|
|
@@ -960,7 +965,7 @@ const FilledButton = /*#__PURE__*/_styled__default['default'](BaseButton, proces
|
|
|
960
965
|
borderLeftWidth: 0
|
|
961
966
|
}
|
|
962
967
|
}
|
|
963
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
968
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpbGxlZEJ1dHRvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUTRCIiwiZmlsZSI6IkZpbGxlZEJ1dHRvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyByZWFkYWJsZUNvbG9yLCByZW0gfSBmcm9tICdwb2xpc2hlZCc7XG5pbXBvcnQgeyBnZXQsIGNzcyB9IGZyb20gJ0BzdHlsZWQtc3lzdGVtL2Nzcyc7XG5cbmltcG9ydCB7IEJhc2VCdXR0b24gfSBmcm9tICcuL0Jhc2VCdXR0b24nO1xuaW1wb3J0IHR5cGUgeyBUaGVtZSB9IGZyb20gJy4uL3RoZW1lJztcbmltcG9ydCB7IGFscGhhLCBtaXhDb2xvciB9IGZyb20gJy4uL2NvbG9yJztcblxuZXhwb3J0IGNvbnN0IEZpbGxlZEJ1dHRvbiA9IHN0eWxlZChCYXNlQnV0dG9uKShcbiAgKHsgY29sb3IgPSAncHJpbWFyeScsIHRoZW1lIH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogZ2V0KHRoZW1lLCBgY29sb3JzLiR7U3RyaW5nKGNvbG9yKX1gKSB8fCBjb2xvcixcbiAgICAgIGNvbG9yOlxuICAgICAgICBnZXQodGhlbWUsIGBjb2xvcnMub24uJHtTdHJpbmcoY29sb3IpfWApIHx8XG4gICAgICAgICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnID8gcmVhZGFibGVDb2xvcihjb2xvcikgOiB1bmRlZmluZWQpLFxuICAgICAgJyY6ZGlzYWJsZWQnOiB7XG4gICAgICAgIGNvbG9yOiBhbHBoYSgnb24uc3VyZmFjZScsIDAuMzgpLFxuICAgICAgICBiYWNrZ3JvdW5kOiBgbGluZWFyLWdyYWRpZW50KCR7Z2V0KHRoZW1lLCAnY29sb3JzLnN1cmZhY2UnKX0sICR7Z2V0KFxuICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICdjb2xvcnMuc3VyZmFjZSdcbiAgICAgICAgKX0pLCAke2FscGhhKCdvbi5zdXJmYWNlJywgMC4xMikodGhlbWUpfWAsXG4gICAgICAgIGJhY2tncm91bmRCbGVuZE1vZGU6ICdvdmVybGF5JyxcbiAgICAgICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgICB9LFxuICAgICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICAgICAgb3V0bGluZUNvbG9yOiBnZXQodGhlbWUsIGBjb2xvcnMuJHtTdHJpbmcoY29sb3IpfWApIHx8IGNvbG9yLFxuICAgICAgICBvdXRsaW5lV2lkdGg6IDIsXG4gICAgICAgIG91dGxpbmVTdHlsZTogJ2F1dG8nLFxuICAgICAgICBvdXRsaW5lT2Zmc2V0OiAnMnB4JyxcbiAgICAgIH0sXG4gICAgfSksXG4gICh7IGNvbG9yID0gJ3ByaW1hcnknIH0pID0+XG4gICAgY29sb3IgPT09ICdzdXJmYWNlJyAmJlxuICAgIGNzcyh7IGJhY2tncm91bmQ6IG1peENvbG9yKCdzdXJmYWNlJywgJ3ByaW1hcnknLCAwLjA1KSB9KSxcbiAgKHsgY29sb3IgPSAncHJpbWFyeScsIHRoZW1lLCBpc0dyb3VwZWRCdXR0b24gPSBmYWxzZSB9KSA9PlxuICAgIGlzR3JvdXBlZEJ1dHRvbiAmJiB7XG4gICAgICAnW2RhdGEtYnV0dG9uLWdyb3VwPVwiXCJdICYnOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOlxuICAgICAgICAgIGdldCh0aGVtZSwgYGNvbG9ycy5vbi4ke1N0cmluZyhjb2xvcil9YCkgfHxcbiAgICAgICAgICAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyA/IHJlYWRhYmxlQ29sb3IoY29sb3IpIDogdW5kZWZpbmVkKSxcbiAgICAgICAgJzpmaXJzdC1vZi10eXBlJzoge1xuICAgICAgICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlclJpZ2h0U3R5bGU6ICdzb2xpZCcsXG4gICAgICAgICAgYm9yZGVyUmlnaHRXaWR0aDogcmVtKDEpLFxuICAgICAgICB9LFxuICAgICAgICAnOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KDpsYXN0LW9mLXR5cGUpJzoge1xuICAgICAgICAgIGJvcmRlclJhZGl1czogMCxcbiAgICAgICAgfSxcbiAgICAgICAgJzpsYXN0LW9mLXR5cGUnOiB7XG4gICAgICAgICAgYm9yZGVyVG9wTGVmdFJhZGl1czogMCxcbiAgICAgICAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiAwLFxuICAgICAgICAgIGJvcmRlckxlZnRTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICBib3JkZXJMZWZ0V2lkdGg6IHJlbSgxKSxcbiAgICAgICAgfSxcbiAgICAgICAgJzpsYXN0LW9mLXR5cGU6bnRoLW9mLXR5cGUoMiknOiB7XG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoOiAwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmlwcGxlUHJvcGVydGllcyh0aGVtZTogVGhlbWUpIHtcbiAgcmV0dXJuIHtcbiAgICBob3Zlck9wYWNpdHk6IGdldCh0aGVtZSwgYGJ1dHRvbnMub3ZlcmxheXMuZmlsbGVkLmhvdmVyLm9wYWNpdHlgKSxcbiAgICBmb2N1c09wYWNpdHk6IGdldCh0aGVtZSwgYGJ1dHRvbnMub3ZlcmxheXMuZmlsbGVkLmZvY3VzLm9wYWNpdHlgKSxcbiAgICBwcmVzc2VkT3BhY2l0eTogZ2V0KHRoZW1lLCBgYnV0dG9ucy5vdmVybGF5cy5maWxsZWQucHJlc3NlZC5vcGFjaXR5YCksXG4gICAgcmlwcGxlRW5hYmxlZDogZmFsc2UsXG4gIH07XG59XG4iXX0= */");
|
|
964
969
|
function getRippleProperties$2(theme) {
|
|
965
970
|
return {
|
|
966
971
|
hoverOpacity: css.get(theme, `buttons.overlays.filled.hover.opacity`),
|
|
@@ -3751,6 +3756,141 @@ const MenuPopover = /*#__PURE__*/react$1.forwardRef((_ref4, ref) => {
|
|
|
3751
3756
|
}, props));
|
|
3752
3757
|
});
|
|
3753
3758
|
|
|
3759
|
+
const NavRailIndicator = /*#__PURE__*/react$1.forwardRef(function NavRailIndicator(props, forwardedRef) {
|
|
3760
|
+
const {
|
|
3761
|
+
as = 'div',
|
|
3762
|
+
children,
|
|
3763
|
+
__css
|
|
3764
|
+
} = props,
|
|
3765
|
+
otherProps = _objectWithoutPropertiesLoose__default['default'](props, ["as", "children", "__css"]);
|
|
3766
|
+
|
|
3767
|
+
return /*#__PURE__*/jsxRuntime.jsx(Box, _extends__default['default']({
|
|
3768
|
+
color: "currentColor",
|
|
3769
|
+
ref: forwardedRef,
|
|
3770
|
+
as: as,
|
|
3771
|
+
"data-nav-rail-item-indicator": ""
|
|
3772
|
+
}, otherProps, {
|
|
3773
|
+
__css: _extends__default['default']({
|
|
3774
|
+
width: '100%',
|
|
3775
|
+
height: '100%',
|
|
3776
|
+
maxWidth: "3.5rem",
|
|
3777
|
+
maxHeight: "3.5rem",
|
|
3778
|
+
borderRadius: 'full',
|
|
3779
|
+
bg: 'var(--indicator-background-color)',
|
|
3780
|
+
display: 'flex',
|
|
3781
|
+
alignItems: 'center',
|
|
3782
|
+
justifyContent: 'center',
|
|
3783
|
+
minHeight: "2rem",
|
|
3784
|
+
transition: 'background-color .2s cubic-bezier(.4,0,.2,1)',
|
|
3785
|
+
pointerEvents: 'none'
|
|
3786
|
+
}, __css),
|
|
3787
|
+
children: children
|
|
3788
|
+
}));
|
|
3789
|
+
});
|
|
3790
|
+
const NavRailLabel = /*#__PURE__*/react$1.forwardRef(function NavRailLabel(props, forwardedRef) {
|
|
3791
|
+
const {
|
|
3792
|
+
as = 'div',
|
|
3793
|
+
children,
|
|
3794
|
+
__css
|
|
3795
|
+
} = props,
|
|
3796
|
+
otherProps = _objectWithoutPropertiesLoose__default['default'](props, ["as", "children", "__css"]);
|
|
3797
|
+
|
|
3798
|
+
return /*#__PURE__*/jsxRuntime.jsx(Text, _extends__default['default']({
|
|
3799
|
+
ref: forwardedRef,
|
|
3800
|
+
as: as,
|
|
3801
|
+
variant: "caption",
|
|
3802
|
+
lineHeight: 1
|
|
3803
|
+
}, otherProps, {
|
|
3804
|
+
__css: _extends__default['default']({
|
|
3805
|
+
pt: "0.25rem",
|
|
3806
|
+
pb: "0.75rem",
|
|
3807
|
+
color: 'inherit',
|
|
3808
|
+
pointerEvents: 'none'
|
|
3809
|
+
}, __css),
|
|
3810
|
+
children: children
|
|
3811
|
+
}));
|
|
3812
|
+
});
|
|
3813
|
+
const NavRailItem = /*#__PURE__*/react$1.forwardRef(function NavRailItem(props, forwardedRef) {
|
|
3814
|
+
const {
|
|
3815
|
+
as = 'button',
|
|
3816
|
+
children,
|
|
3817
|
+
color = 'primary-container',
|
|
3818
|
+
selected = false,
|
|
3819
|
+
disabled = false,
|
|
3820
|
+
style,
|
|
3821
|
+
onKeyDown,
|
|
3822
|
+
onPointerDown,
|
|
3823
|
+
__css
|
|
3824
|
+
} = props,
|
|
3825
|
+
otherProps = _objectWithoutPropertiesLoose__default['default'](props, ["as", "children", "color", "selected", "disabled", "style", "onKeyDown", "onPointerDown", "__css"]);
|
|
3826
|
+
|
|
3827
|
+
const theme = useTheme();
|
|
3828
|
+
const baseOpacity = 0,
|
|
3829
|
+
hoverOpacity = 0.04,
|
|
3830
|
+
focusOpacity = 0.12,
|
|
3831
|
+
pressedOpacity = 0.12;
|
|
3832
|
+
const ripple = useRippleSurface({
|
|
3833
|
+
rippleColor: 'currentColor',
|
|
3834
|
+
onKeyDown,
|
|
3835
|
+
onPointerDown,
|
|
3836
|
+
baseOpacity,
|
|
3837
|
+
hoverOpacity,
|
|
3838
|
+
focusOpacity,
|
|
3839
|
+
pressedOpacity
|
|
3840
|
+
}); // Apply ripple from nav item to nav indicator
|
|
3841
|
+
|
|
3842
|
+
const rippleCss = react$1.useMemo(() => {
|
|
3843
|
+
const ret = {};
|
|
3844
|
+
const keys = Object.keys(ripple.__css);
|
|
3845
|
+
|
|
3846
|
+
for (const key of keys) {
|
|
3847
|
+
if (!key.startsWith('&')) {
|
|
3848
|
+
ret['& [data-nav-rail-item-indicator]'] = ret['& [data-nav-rail-item-indicator]'] || {};
|
|
3849
|
+
ret['& [data-nav-rail-item-indicator]'][key] = ripple.__css[key];
|
|
3850
|
+
continue;
|
|
3851
|
+
}
|
|
3852
|
+
|
|
3853
|
+
const newKey = key.replace(/(.+?)::(before|after)/g, '$1 [data-nav-rail-item-indicator]::$2');
|
|
3854
|
+
ret[newKey] = ripple.__css[key];
|
|
3855
|
+
}
|
|
3856
|
+
|
|
3857
|
+
return ret;
|
|
3858
|
+
}, [ripple.__css]);
|
|
3859
|
+
return /*#__PURE__*/jsxRuntime.jsx(Box, _extends__default['default']({
|
|
3860
|
+
ref: forwardedRef,
|
|
3861
|
+
as: as
|
|
3862
|
+
}, otherProps, {
|
|
3863
|
+
onPointerDown: ripple.onPointerDown,
|
|
3864
|
+
onKeyDown: ripple.onKeyDown,
|
|
3865
|
+
"aria-pressed": selected,
|
|
3866
|
+
type: "button",
|
|
3867
|
+
style: _extends__default['default']({}, ripple.style, style),
|
|
3868
|
+
disabled: disabled,
|
|
3869
|
+
__css: _extends__default['default']({
|
|
3870
|
+
display: 'flex',
|
|
3871
|
+
flexDirection: 'column',
|
|
3872
|
+
alignItems: 'center',
|
|
3873
|
+
transition: 'color .2s cubic-bezier(.4,0,.2,1)',
|
|
3874
|
+
color: selected ? `on.${color}` : 'on.surface-variant',
|
|
3875
|
+
'--indicator-background-color': selected ? styledSystem.get(theme, `colors.${color}`) : 'transparent',
|
|
3876
|
+
border: 'none',
|
|
3877
|
+
':focus': {
|
|
3878
|
+
outline: 'none'
|
|
3879
|
+
},
|
|
3880
|
+
backgroundColor: 'transparent',
|
|
3881
|
+
margin: 0,
|
|
3882
|
+
padding: 0,
|
|
3883
|
+
px: "0.75rem",
|
|
3884
|
+
minHeight: "3.75rem",
|
|
3885
|
+
height: "3.75rem",
|
|
3886
|
+
cursor: 'pointer',
|
|
3887
|
+
textDecoration: 'none',
|
|
3888
|
+
WebkitTapHighlightColor: 'transparent'
|
|
3889
|
+
}, rippleCss, __css),
|
|
3890
|
+
children: children
|
|
3891
|
+
}));
|
|
3892
|
+
});
|
|
3893
|
+
|
|
3754
3894
|
const innerDivRotate = react.keyframes({
|
|
3755
3895
|
'0%': {
|
|
3756
3896
|
transformOrigin: '50% 50%'
|
|
@@ -5366,6 +5506,9 @@ exports.MenuButton = MenuButton;
|
|
|
5366
5506
|
exports.MenuItem = MenuItem;
|
|
5367
5507
|
exports.MenuList = MenuList;
|
|
5368
5508
|
exports.MenuPopover = MenuPopover;
|
|
5509
|
+
exports.NavRailIndicator = NavRailIndicator;
|
|
5510
|
+
exports.NavRailItem = NavRailItem;
|
|
5511
|
+
exports.NavRailLabel = NavRailLabel;
|
|
5369
5512
|
exports.NotchedOutline = NotchedOutline;
|
|
5370
5513
|
exports.OutlinedContainer = OutlinedContainer;
|
|
5371
5514
|
exports.Paper = Paper;
|
|
@@ -5401,6 +5544,7 @@ exports.getBackgroundOverlay = getBackgroundOverlay;
|
|
|
5401
5544
|
exports.getColorOverlay = getColorOverlay;
|
|
5402
5545
|
exports.getDarkThemeBackgroundOverlay = getDarkThemeBackgroundOverlay;
|
|
5403
5546
|
exports.getTheme = getTheme;
|
|
5547
|
+
exports.mixColor = mixColor;
|
|
5404
5548
|
exports.rippleStyle = rippleStyle;
|
|
5405
5549
|
exports.sx = sx;
|
|
5406
5550
|
exports.theme = theme;
|