@app-studio/web 0.9.13 → 0.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Toggle/Toggle/Toggle.style.d.ts +7 -1
- package/dist/components/Toggle/Toggle/Toggle.view.d.ts +3 -0
- package/dist/web.cjs.development.js +100 -24
- package/dist/web.cjs.development.js.map +1 -1
- package/dist/web.cjs.production.min.js +1 -1
- package/dist/web.cjs.production.min.js.map +1 -1
- package/dist/web.esm.js +100 -24
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +100 -24
- package/dist/web.umd.development.js.map +1 -1
- package/dist/web.umd.production.min.js +1 -1
- package/dist/web.umd.production.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ViewProps } from 'app-studio';
|
|
2
|
+
import { Shape, Variant } from './Toggle.type';
|
|
2
3
|
export declare const ToggleShapes: Record<Shape, number | string>;
|
|
4
|
+
/**
|
|
5
|
+
* Generate toggle variants with proper color combinations based on main color and contrast
|
|
6
|
+
* Similar to Button's getButtonVariants function
|
|
7
|
+
*/
|
|
8
|
+
export declare const getToggleVariants: (color: string, isLight: boolean) => Record<Variant, ViewProps>;
|
|
@@ -17036,8 +17036,78 @@ var useToggleState = defaultToggled => {
|
|
|
17036
17036
|
};
|
|
17037
17037
|
};
|
|
17038
17038
|
|
|
17039
|
-
var
|
|
17039
|
+
var ToggleShapes = {
|
|
17040
|
+
sharp: 0,
|
|
17041
|
+
rounded: 4,
|
|
17042
|
+
pillShaped: 24
|
|
17043
|
+
};
|
|
17044
|
+
/**
|
|
17045
|
+
* Generate toggle variants with proper color combinations based on main color and contrast
|
|
17046
|
+
* Similar to Button's getButtonVariants function
|
|
17047
|
+
*/
|
|
17048
|
+
var getToggleVariants = (color, isLight) => ({
|
|
17049
|
+
outline: {
|
|
17050
|
+
backgroundColor: 'transparent',
|
|
17051
|
+
color: color,
|
|
17052
|
+
borderWidth: 1,
|
|
17053
|
+
borderStyle: 'solid',
|
|
17054
|
+
borderColor: color,
|
|
17055
|
+
_hover: {
|
|
17056
|
+
backgroundColor: color,
|
|
17057
|
+
color: isLight ? 'color.black' : 'color.white',
|
|
17058
|
+
transform: 'translateY(-1px)'
|
|
17059
|
+
},
|
|
17060
|
+
_active: {
|
|
17061
|
+
backgroundColor: color,
|
|
17062
|
+
color: isLight ? 'color.black' : 'color.white',
|
|
17063
|
+
transform: 'translateY(0)'
|
|
17064
|
+
},
|
|
17065
|
+
transition: 'all 0.2s ease'
|
|
17066
|
+
},
|
|
17067
|
+
ghost: {
|
|
17068
|
+
backgroundColor: 'transparent',
|
|
17069
|
+
color: color,
|
|
17070
|
+
borderWidth: 0,
|
|
17071
|
+
borderStyle: 'none',
|
|
17072
|
+
borderColor: 'transparent',
|
|
17073
|
+
_hover: {
|
|
17074
|
+
backgroundColor: color,
|
|
17075
|
+
color: isLight ? 'color.black' : 'color.white',
|
|
17076
|
+
transform: 'translateY(-1px)'
|
|
17077
|
+
},
|
|
17078
|
+
_active: {
|
|
17079
|
+
backgroundColor: color,
|
|
17080
|
+
color: isLight ? 'color.black' : 'color.white',
|
|
17081
|
+
transform: 'translateY(0)'
|
|
17082
|
+
},
|
|
17083
|
+
transition: 'all 0.2s ease'
|
|
17084
|
+
},
|
|
17085
|
+
link: {
|
|
17086
|
+
backgroundColor: 'transparent',
|
|
17087
|
+
color: color,
|
|
17088
|
+
borderWidth: 1,
|
|
17089
|
+
borderStyle: 'solid',
|
|
17090
|
+
borderColor: 'transparent',
|
|
17091
|
+
textDecoration: 'underline',
|
|
17092
|
+
textUnderlineOffset: '1px',
|
|
17093
|
+
textDecorationThickness: '1px',
|
|
17094
|
+
_hover: {
|
|
17095
|
+
borderColor: color,
|
|
17096
|
+
textDecorationThickness: '2px',
|
|
17097
|
+
transform: 'translateY(-1px)'
|
|
17098
|
+
},
|
|
17099
|
+
_active: {
|
|
17100
|
+
borderColor: color,
|
|
17101
|
+
textDecorationThickness: '2px',
|
|
17102
|
+
transform: 'translateY(0)'
|
|
17103
|
+
},
|
|
17104
|
+
transition: 'all 0.2s ease'
|
|
17105
|
+
}
|
|
17106
|
+
});
|
|
17107
|
+
|
|
17108
|
+
var _excluded$T = ["children", "shape", "variant", "isHovered", "setIsHovered", "isDisabled", "isToggle", "setIsToggled", "onToggle", "views", "backgroundColor", "color", "themeMode"];
|
|
17040
17109
|
var ToggleView = _ref => {
|
|
17110
|
+
var _ref2;
|
|
17041
17111
|
var {
|
|
17042
17112
|
children,
|
|
17043
17113
|
shape = 'rounded',
|
|
@@ -17048,25 +17118,30 @@ var ToggleView = _ref => {
|
|
|
17048
17118
|
isToggle,
|
|
17049
17119
|
setIsToggled,
|
|
17050
17120
|
onToggle,
|
|
17051
|
-
views
|
|
17121
|
+
views,
|
|
17122
|
+
backgroundColor,
|
|
17123
|
+
// primary candidate for main color
|
|
17124
|
+
color,
|
|
17125
|
+
// 2nd candidate for main color
|
|
17126
|
+
themeMode: elementMode
|
|
17052
17127
|
} = _ref,
|
|
17053
17128
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$T);
|
|
17054
|
-
|
|
17129
|
+
/* theme helpers */
|
|
17130
|
+
var {
|
|
17131
|
+
getColor,
|
|
17132
|
+
themeMode
|
|
17133
|
+
} = appStudio.useTheme();
|
|
17134
|
+
var mode = elementMode != null ? elementMode : themeMode;
|
|
17135
|
+
/* MAIN COLOR – determines the entire palette */
|
|
17136
|
+
var mainColorKey = (_ref2 = backgroundColor != null ? backgroundColor : color) != null ? _ref2 : 'theme.primary';
|
|
17137
|
+
var mainTone = getColor(isDisabled ? 'theme.disabled' : mainColorKey, {
|
|
17138
|
+
themeMode: mode
|
|
17139
|
+
});
|
|
17140
|
+
var tone = contrast(mainTone);
|
|
17141
|
+
/* variant palette */
|
|
17142
|
+
var palette = React.useMemo(() => getToggleVariants(mainTone, tone === 'light'), [mainTone, tone]);
|
|
17143
|
+
var base = palette[variant];
|
|
17055
17144
|
var isActive = !!(isToggle || isHovered);
|
|
17056
|
-
var toggleVariants = {
|
|
17057
|
-
outline: {
|
|
17058
|
-
borderWidth: 1,
|
|
17059
|
-
borderStyle: 'solid',
|
|
17060
|
-
borderColor: 'color.trueGray.400'
|
|
17061
|
-
},
|
|
17062
|
-
link: {
|
|
17063
|
-
borderWidth: 1,
|
|
17064
|
-
borderStyle: 'solid',
|
|
17065
|
-
borderColor: isActive ? toggleColor : 'transparent',
|
|
17066
|
-
textDecoration: 'underline'
|
|
17067
|
-
},
|
|
17068
|
-
ghost: {}
|
|
17069
|
-
};
|
|
17070
17145
|
var handleHover = () => setIsHovered(!isHovered);
|
|
17071
17146
|
var handleToggle = () => {
|
|
17072
17147
|
if (!isDisabled) {
|
|
@@ -17083,14 +17158,15 @@ var ToggleView = _ref => {
|
|
|
17083
17158
|
role: "Toggle",
|
|
17084
17159
|
padding: shape === 'pillShaped' ? '10px 12px' : '8px',
|
|
17085
17160
|
width: "fit-content",
|
|
17086
|
-
color: isActive ? 'color.white' : toggleColor,
|
|
17087
|
-
backgroundColor: isActive ? toggleColor : 'transparent',
|
|
17088
|
-
onMouseEnter: handleHover,
|
|
17089
|
-
onMouseLeave: () => setIsHovered(false),
|
|
17090
17161
|
cursor: isDisabled ? 'not-allowed' : 'pointer',
|
|
17091
|
-
borderRadius: shape
|
|
17092
|
-
onClick: handleToggle
|
|
17093
|
-
|
|
17162
|
+
borderRadius: ToggleShapes[shape],
|
|
17163
|
+
onClick: handleToggle,
|
|
17164
|
+
onMouseEnter: handleHover,
|
|
17165
|
+
onMouseLeave: () => setIsHovered(false)
|
|
17166
|
+
}, base, isActive && {
|
|
17167
|
+
backgroundColor: mainTone,
|
|
17168
|
+
color: tone === 'light' ? 'color.black' : 'color.white'
|
|
17169
|
+
}, props, views == null ? void 0 : views.container), children);
|
|
17094
17170
|
};
|
|
17095
17171
|
|
|
17096
17172
|
var _excluded$U = ["children", "shape", "variant", "isDisabled", "isToggled", "onToggle"];
|