@app-studio/web 0.8.93 → 0.8.94
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/Button/Button/Button.style.d.ts +1 -2
- package/dist/components/Form/Select/Select/Select.state.d.ts +2 -1
- package/dist/components/Form/Switch/Switch/Switch.props.d.ts +2 -1
- package/dist/components/Form/Switch/Switch/Switch.state.d.ts +4 -2
- package/dist/components/Form/Switch/Switch/Switch.style.d.ts +3 -3
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/typography.d.ts +29 -0
- package/dist/web.cjs.development.js +217 -139
- 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 +217 -139
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +217 -139
- 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
|
@@ -470,20 +470,20 @@ var HeadingSizes = {
|
|
|
470
470
|
* Font sizes following typography guidelines
|
|
471
471
|
*/
|
|
472
472
|
var FontSizes = {
|
|
473
|
-
xs: '
|
|
474
|
-
sm: '
|
|
475
|
-
md: '
|
|
476
|
-
lg: '
|
|
473
|
+
xs: '10px',
|
|
474
|
+
sm: '12px',
|
|
475
|
+
md: '14px',
|
|
476
|
+
lg: '16px',
|
|
477
477
|
xl: '20px'
|
|
478
478
|
};
|
|
479
479
|
/**
|
|
480
480
|
* Line heights following typography guidelines
|
|
481
481
|
*/
|
|
482
482
|
var LineHeights = {
|
|
483
|
-
xs: '
|
|
484
|
-
sm: '
|
|
485
|
-
md: '
|
|
486
|
-
lg: '
|
|
483
|
+
xs: '14px',
|
|
484
|
+
sm: '16px',
|
|
485
|
+
md: '20px',
|
|
486
|
+
lg: '22px',
|
|
487
487
|
xl: '28px'
|
|
488
488
|
};
|
|
489
489
|
/**
|
|
@@ -3265,7 +3265,7 @@ var BadgeSizes = {
|
|
|
3265
3265
|
height: '32px',
|
|
3266
3266
|
padding: '0 12px',
|
|
3267
3267
|
// Typography
|
|
3268
|
-
fontSize: '
|
|
3268
|
+
fontSize: '16px',
|
|
3269
3269
|
fontWeight: '500',
|
|
3270
3270
|
lineHeight: '32px'
|
|
3271
3271
|
},
|
|
@@ -3275,7 +3275,7 @@ var BadgeSizes = {
|
|
|
3275
3275
|
height: '36px',
|
|
3276
3276
|
padding: '0 14px',
|
|
3277
3277
|
// Typography
|
|
3278
|
-
fontSize: '
|
|
3278
|
+
fontSize: '20px',
|
|
3279
3279
|
fontWeight: '500',
|
|
3280
3280
|
lineHeight: '36px'
|
|
3281
3281
|
}
|
|
@@ -3686,70 +3686,60 @@ var Loader = LoaderComponent;
|
|
|
3686
3686
|
*/
|
|
3687
3687
|
/**
|
|
3688
3688
|
* Button sizes following the 4px grid system
|
|
3689
|
-
*/
|
|
3690
|
-
var ButtonSizes = {
|
|
3689
|
+
*/var ButtonSizes = {
|
|
3691
3690
|
xs: {
|
|
3692
|
-
|
|
3691
|
+
minHeight: 3 * 4,
|
|
3692
|
+
paddingTop: 1,
|
|
3693
|
+
paddingBottom: 1,
|
|
3694
|
+
paddingLeft: 2,
|
|
3695
|
+
paddingRight: 2,
|
|
3696
|
+
fontSize: 10,
|
|
3697
|
+
fontWeight: '500',
|
|
3698
|
+
lineHeight: 14,
|
|
3699
|
+
letterSpacing: '-0.01em'
|
|
3700
|
+
},
|
|
3701
|
+
sm: {
|
|
3693
3702
|
minHeight: 4 * 4,
|
|
3694
|
-
paddingTop:
|
|
3695
|
-
paddingBottom:
|
|
3696
|
-
paddingLeft:
|
|
3697
|
-
paddingRight:
|
|
3698
|
-
// Typography
|
|
3703
|
+
paddingTop: 4,
|
|
3704
|
+
paddingBottom: 4,
|
|
3705
|
+
paddingLeft: 8,
|
|
3706
|
+
paddingRight: 8,
|
|
3699
3707
|
fontSize: 12,
|
|
3700
3708
|
fontWeight: '500',
|
|
3701
|
-
lineHeight:
|
|
3709
|
+
lineHeight: 16,
|
|
3702
3710
|
letterSpacing: '-0.01em'
|
|
3703
3711
|
},
|
|
3704
|
-
|
|
3705
|
-
// Height: 32px (8 × 4px)
|
|
3712
|
+
md: {
|
|
3706
3713
|
minHeight: 6 * 4,
|
|
3707
3714
|
paddingTop: 6,
|
|
3708
3715
|
paddingBottom: 6,
|
|
3709
3716
|
paddingLeft: 12,
|
|
3710
3717
|
paddingRight: 12,
|
|
3711
|
-
|
|
3712
|
-
fontSize: 12,
|
|
3718
|
+
fontSize: 14,
|
|
3713
3719
|
fontWeight: '500',
|
|
3714
|
-
lineHeight:
|
|
3720
|
+
lineHeight: 18,
|
|
3715
3721
|
letterSpacing: '-0.01em'
|
|
3716
3722
|
},
|
|
3717
|
-
|
|
3718
|
-
// Height: 40px (10 × 4px) - standard height for interactive elements
|
|
3723
|
+
lg: {
|
|
3719
3724
|
minHeight: 8 * 4,
|
|
3720
3725
|
paddingTop: 8,
|
|
3721
3726
|
paddingBottom: 8,
|
|
3722
3727
|
paddingLeft: 16,
|
|
3723
3728
|
paddingRight: 16,
|
|
3724
|
-
// Typography
|
|
3725
3729
|
fontSize: 16,
|
|
3726
3730
|
fontWeight: '500',
|
|
3727
|
-
lineHeight:
|
|
3731
|
+
lineHeight: 18,
|
|
3728
3732
|
letterSpacing: '-0.01em'
|
|
3729
3733
|
},
|
|
3730
|
-
|
|
3734
|
+
xl: {
|
|
3731
3735
|
minHeight: 10 * 4,
|
|
3732
3736
|
paddingTop: 10,
|
|
3733
3737
|
paddingBottom: 10,
|
|
3734
3738
|
paddingLeft: 20,
|
|
3735
3739
|
paddingRight: 20,
|
|
3736
|
-
|
|
3737
|
-
fontSize: 16,
|
|
3738
|
-
fontWeight: '500',
|
|
3739
|
-
lineHeight: 20,
|
|
3740
|
-
letterSpacing: '-0.01em'
|
|
3741
|
-
},
|
|
3742
|
-
xl: {
|
|
3743
|
-
// Height: 60px (15 × 4px)
|
|
3744
|
-
minHeight: 12 * 4,
|
|
3745
|
-
paddingTop: 12,
|
|
3746
|
-
paddingBottom: 12,
|
|
3747
|
-
paddingLeft: 24,
|
|
3748
|
-
paddingRight: 24,
|
|
3749
|
-
// Typography
|
|
3750
|
-
fontSize: 18,
|
|
3740
|
+
fontSize: 20,
|
|
3751
3741
|
fontWeight: '500',
|
|
3752
|
-
lineHeight:
|
|
3742
|
+
lineHeight: 22,
|
|
3753
3743
|
letterSpacing: '-0.01em'
|
|
3754
3744
|
}
|
|
3755
3745
|
};
|
|
@@ -6500,13 +6490,12 @@ var useSelectState = _ref => {
|
|
|
6500
6490
|
var {
|
|
6501
6491
|
placeholder,
|
|
6502
6492
|
isMulti,
|
|
6503
|
-
options
|
|
6493
|
+
options,
|
|
6494
|
+
id = "select-" + Math.random().toString(36).substr(2, 9)
|
|
6504
6495
|
} = _ref;
|
|
6505
6496
|
// Determines the default value based on the 'placeholder' and 'isMulti' props, setting to an empty array for multi-select or an empty string/single default option
|
|
6506
6497
|
var defaultValue = placeholder ? isMulti ? [] : '' // If there's a placeholder, set default to empty array for multi-select or empty string for single select
|
|
6507
|
-
: Array.isArray(options) && options.length > 0 ? options[0].value : ''; // If no placeholder, use the first option value if available, otherwise
|
|
6508
|
-
// State hook for managing visibility of the Select dropdown, initially set to hidden
|
|
6509
|
-
var [hide, setHide] = React__default.useState(true);
|
|
6498
|
+
: Array.isArray(options) && options.length > 0 ? options[0].value : isMulti ? [] : ''; // If no placeholder, use the first option value if available, otherwise empty array for multi-select or empty string for single select
|
|
6510
6499
|
// State hook for tracking mouse hover status over the Select component
|
|
6511
6500
|
var [isHovered, setIsHovered] = React__default.useState(false);
|
|
6512
6501
|
// State hook for tracking focus status of the Select input field
|
|
@@ -6515,8 +6504,11 @@ var useSelectState = _ref => {
|
|
|
6515
6504
|
var [value, setValue] = React__default.useState(defaultValue);
|
|
6516
6505
|
// State hook for keeping track of the currently highlighted index in the options list
|
|
6517
6506
|
var [highlightedIndex, setHighlightedIndex] = React__default.useState(0);
|
|
6507
|
+
// State hook for managing visibility of the Select dropdown, initially set to hidden
|
|
6508
|
+
var [hide, setHide] = React__default.useState(true);
|
|
6518
6509
|
// Returns an object containing all stateful values and their associated setters to manage the Select component's state
|
|
6519
6510
|
return {
|
|
6511
|
+
id,
|
|
6520
6512
|
value,
|
|
6521
6513
|
setValue,
|
|
6522
6514
|
hide,
|
|
@@ -6731,7 +6723,7 @@ var FieldContent = _ref => {
|
|
|
6731
6723
|
flexWrap: "nowrap",
|
|
6732
6724
|
alignItems: "center",
|
|
6733
6725
|
justifyContent: "space-between",
|
|
6734
|
-
marginBottom:
|
|
6726
|
+
marginBottom: 2,
|
|
6735
6727
|
// Visual properties
|
|
6736
6728
|
borderStyle: "solid",
|
|
6737
6729
|
borderColor: color,
|
|
@@ -6753,10 +6745,9 @@ var FieldIcons = _ref => {
|
|
|
6753
6745
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$l);
|
|
6754
6746
|
return /*#__PURE__*/React__default.createElement(appStudio.Center, Object.assign({
|
|
6755
6747
|
gap: 10,
|
|
6756
|
-
right:
|
|
6748
|
+
right: 10,
|
|
6757
6749
|
zIndex: 500,
|
|
6758
|
-
flexWrap: "nowrap"
|
|
6759
|
-
position: "absolute"
|
|
6750
|
+
flexWrap: "nowrap"
|
|
6760
6751
|
}, props), children);
|
|
6761
6752
|
};
|
|
6762
6753
|
|
|
@@ -6940,20 +6931,27 @@ var Item = _ref => {
|
|
|
6940
6931
|
} = _ref,
|
|
6941
6932
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$p);
|
|
6942
6933
|
// Handles the click event on an option by invoking the callback with the selected option's value
|
|
6943
|
-
var handleOptionClick = option =>
|
|
6934
|
+
var handleOptionClick = (e, option) => {
|
|
6935
|
+
e.stopPropagation();
|
|
6936
|
+
e.preventDefault();
|
|
6937
|
+
if (typeof callback === 'function') {
|
|
6938
|
+
callback(option);
|
|
6939
|
+
}
|
|
6940
|
+
};
|
|
6944
6941
|
// Toggles the hover state on the item
|
|
6945
6942
|
var handleHover = () => setIsHovered(!isHovered);
|
|
6946
6943
|
return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
|
|
6947
6944
|
as: "li",
|
|
6948
6945
|
// Layout properties
|
|
6949
6946
|
margin: 0,
|
|
6950
|
-
paddingVertical:
|
|
6951
|
-
paddingHorizontal:
|
|
6947
|
+
paddingVertical: 8,
|
|
6948
|
+
paddingHorizontal: 8,
|
|
6952
6949
|
listStyleType: "none",
|
|
6950
|
+
cursor: "pointer",
|
|
6953
6951
|
// Event handlers
|
|
6954
6952
|
onMouseEnter: handleHover,
|
|
6955
6953
|
onMouseLeave: handleHover,
|
|
6956
|
-
onClick:
|
|
6954
|
+
onClick: e => handleOptionClick(e, option.value),
|
|
6957
6955
|
// Visual properties
|
|
6958
6956
|
backgroundColor: isHovered ? 'color.gray.100' : 'transparent',
|
|
6959
6957
|
borderRadius: "4px" // Subtle rounded corners for items
|
|
@@ -6999,7 +6997,7 @@ var SelectBox = _ref2 => {
|
|
|
6999
6997
|
width: '95%',
|
|
7000
6998
|
height: '100%',
|
|
7001
6999
|
border: 'none',
|
|
7002
|
-
paddingVertical:
|
|
7000
|
+
paddingVertical: 4,
|
|
7003
7001
|
paddingHorizontal: 0,
|
|
7004
7002
|
// Typography properties
|
|
7005
7003
|
fontSize: appStudio.Typography.fontSizes[size],
|
|
@@ -7079,34 +7077,16 @@ var DropDown = _ref5 => {
|
|
|
7079
7077
|
} = _ref5;
|
|
7080
7078
|
var itemStates = useItemState();
|
|
7081
7079
|
var handleCallback = option => callback(option);
|
|
7082
|
-
// Shadow styles for the dropdown
|
|
7083
|
-
var shadow = {
|
|
7084
|
-
boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)'
|
|
7085
|
-
};
|
|
7080
|
+
// Shadow styles for the dropdown - now applied directly in the Element
|
|
7086
7081
|
return /*#__PURE__*/React__default.createElement(appStudio.Element, Object.assign({
|
|
7087
7082
|
as: "ul",
|
|
7088
7083
|
role: "dropdown",
|
|
7089
|
-
top: "100%",
|
|
7090
7084
|
width: "100%",
|
|
7091
7085
|
display: "flex",
|
|
7092
7086
|
flexDirection: "column",
|
|
7093
|
-
position: "absolute",
|
|
7094
|
-
marginTop: 8,
|
|
7095
|
-
marginLeft: 0,
|
|
7096
|
-
marginRight: 0,
|
|
7097
|
-
marginBottom: 0,
|
|
7098
|
-
padding: 0,
|
|
7099
|
-
maxHeight: "240px" // 60 × 4px grid
|
|
7100
|
-
,
|
|
7101
|
-
overflowY: "auto",
|
|
7102
|
-
zIndex: 1000,
|
|
7103
7087
|
backgroundColor: "color.white",
|
|
7104
|
-
borderRadius: "8px" // Consistent with design system (rounded-md)
|
|
7105
|
-
,
|
|
7106
|
-
borderWidth: "1px",
|
|
7107
|
-
borderStyle: "solid",
|
|
7108
|
-
borderColor: "color.gray.200",
|
|
7109
7088
|
transition: "all 0.2s ease",
|
|
7089
|
+
margin: 0,
|
|
7110
7090
|
style: {
|
|
7111
7091
|
scrollbarWidth: 'thin',
|
|
7112
7092
|
scrollbarColor: 'rgba(0, 0, 0, 0.2) transparent',
|
|
@@ -7121,7 +7101,7 @@ var DropDown = _ref5 => {
|
|
|
7121
7101
|
borderRadius: '4px'
|
|
7122
7102
|
}
|
|
7123
7103
|
}
|
|
7124
|
-
},
|
|
7104
|
+
}, views == null ? void 0 : views.dropDown), options && options.length > 0 && options.map((option, index) => (/*#__PURE__*/React__default.createElement(Item, Object.assign({
|
|
7125
7105
|
key: option.value,
|
|
7126
7106
|
size: size,
|
|
7127
7107
|
style: views['text'],
|
|
@@ -7204,23 +7184,57 @@ var SelectView = _ref7 => {
|
|
|
7204
7184
|
highlightedIndex
|
|
7205
7185
|
} = _ref7,
|
|
7206
7186
|
props = _objectWithoutPropertiesLoose(_ref7, _excluded4$6);
|
|
7187
|
+
// close when *any* other select opens
|
|
7188
|
+
React__default.useEffect(() => {
|
|
7189
|
+
var handleCloseAll = () => setHide(true);
|
|
7190
|
+
document.addEventListener('closeAllSelects', handleCloseAll);
|
|
7191
|
+
return () => document.removeEventListener('closeAllSelects', handleCloseAll);
|
|
7192
|
+
}, [setHide]);
|
|
7193
|
+
// Add a global click handler to close the dropdown when clicking outside
|
|
7194
|
+
React__default.useEffect(() => {
|
|
7195
|
+
var handleGlobalClick = e => {
|
|
7196
|
+
var target = e.target;
|
|
7197
|
+
// Only close if clicking outside of this specific select component
|
|
7198
|
+
if (!target.closest("#" + id) && !hide) {
|
|
7199
|
+
setHide(true);
|
|
7200
|
+
}
|
|
7201
|
+
};
|
|
7202
|
+
document.addEventListener('click', handleGlobalClick);
|
|
7203
|
+
return () => {
|
|
7204
|
+
document.removeEventListener('click', handleGlobalClick);
|
|
7205
|
+
};
|
|
7206
|
+
}, [id, hide, setHide]);
|
|
7207
7207
|
var showLabel = !!(isFocused && label);
|
|
7208
7208
|
var handleHover = () => setIsHovered(!isHovered);
|
|
7209
7209
|
var handleFocus = () => setIsFocused(true);
|
|
7210
7210
|
var handleClick = event => {
|
|
7211
|
+
// tell all other selects to close
|
|
7212
|
+
document.dispatchEvent(new Event('closeAllSelects'));
|
|
7211
7213
|
if (event && event.stopPropagation) event.stopPropagation();
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
+
// Toggle dropdown visibility
|
|
7215
|
+
var newHideState = !hide;
|
|
7216
|
+
setHide(newHideState);
|
|
7217
|
+
setIsFocused(!newHideState); // Set focus state based on dropdown visibility
|
|
7214
7218
|
};
|
|
7215
7219
|
var handleCallback = React.useCallback(option => {
|
|
7216
|
-
|
|
7220
|
+
// Close dropdown after selection
|
|
7221
|
+
setHide(true);
|
|
7222
|
+
// Tell all other selects to close
|
|
7223
|
+
document.dispatchEvent(new Event('closeAllSelects'));
|
|
7224
|
+
// Update value based on multi-select or single-select mode
|
|
7217
7225
|
if (isMulti && Array.isArray(value)) {
|
|
7218
|
-
!value.includes(option)
|
|
7226
|
+
if (!value.includes(option)) {
|
|
7227
|
+
var newValue = [...value, option];
|
|
7228
|
+
setValue(newValue);
|
|
7229
|
+
if (onChange) onChange(option);
|
|
7230
|
+
}
|
|
7219
7231
|
} else {
|
|
7220
7232
|
setValue(option);
|
|
7233
|
+
if (onChange) onChange(option);
|
|
7221
7234
|
}
|
|
7222
|
-
|
|
7223
|
-
|
|
7235
|
+
// Set focus to indicate selection
|
|
7236
|
+
setIsFocused(true);
|
|
7237
|
+
}, [isMulti, value, setHide, setValue, onChange, setIsFocused]);
|
|
7224
7238
|
var handleRemoveOption = valueOption => {
|
|
7225
7239
|
if (Array.isArray(value) && value.includes(valueOption)) {
|
|
7226
7240
|
var newValue = value.filter(option => option !== valueOption);
|
|
@@ -7228,11 +7242,24 @@ var SelectView = _ref7 => {
|
|
|
7228
7242
|
}
|
|
7229
7243
|
};
|
|
7230
7244
|
return /*#__PURE__*/React__default.createElement(FieldContainer, {
|
|
7245
|
+
style: {
|
|
7246
|
+
position: 'relative',
|
|
7247
|
+
width: '100%',
|
|
7248
|
+
display: 'inline-block'
|
|
7249
|
+
},
|
|
7250
|
+
id: id,
|
|
7231
7251
|
role: "SelectBox",
|
|
7232
7252
|
helperText: helperText,
|
|
7233
7253
|
error: error,
|
|
7234
7254
|
views: views,
|
|
7235
|
-
onClick:
|
|
7255
|
+
onClick: e => {
|
|
7256
|
+
// Stop propagation to prevent clicks from bubbling up
|
|
7257
|
+
e.stopPropagation();
|
|
7258
|
+
// Only handle click if not disabled or readonly
|
|
7259
|
+
if (!(isDisabled || isReadOnly)) {
|
|
7260
|
+
handleClick(e);
|
|
7261
|
+
}
|
|
7262
|
+
}
|
|
7236
7263
|
}, /*#__PURE__*/React__default.createElement(FieldContent, {
|
|
7237
7264
|
label: label,
|
|
7238
7265
|
size: size,
|
|
@@ -7282,39 +7309,78 @@ var SelectView = _ref7 => {
|
|
|
7282
7309
|
orientation: "up",
|
|
7283
7310
|
widthHeight: IconSizes$2[size],
|
|
7284
7311
|
style: views.icon
|
|
7285
|
-
})))))), !hide && (/*#__PURE__*/React__default.createElement(
|
|
7312
|
+
})))))), !hide && options.length > 0 && (/*#__PURE__*/React__default.createElement(appStudio.Element, {
|
|
7313
|
+
onClick: e => e.stopPropagation(),
|
|
7314
|
+
style: {
|
|
7315
|
+
position: 'absolute',
|
|
7316
|
+
top: 'calc(100% + 4px)',
|
|
7317
|
+
left: 0,
|
|
7318
|
+
right: 0,
|
|
7319
|
+
zIndex: 1000
|
|
7320
|
+
}
|
|
7321
|
+
}, /*#__PURE__*/React__default.createElement(DropDown, {
|
|
7286
7322
|
size: size,
|
|
7287
|
-
views: views,
|
|
7323
|
+
views: Object.assign({}, views, {
|
|
7324
|
+
dropDown: {
|
|
7325
|
+
borderRadius: '6px',
|
|
7326
|
+
border: '1px solid color.gray.200',
|
|
7327
|
+
boxShadow: '0 8px 16px rgba(0,0,0,0.1)',
|
|
7328
|
+
padding: '8px',
|
|
7329
|
+
maxHeight: '240px',
|
|
7330
|
+
overflowY: 'auto'
|
|
7331
|
+
}
|
|
7332
|
+
}),
|
|
7288
7333
|
options: options,
|
|
7289
7334
|
callback: handleCallback,
|
|
7290
7335
|
highlightedIndex: highlightedIndex,
|
|
7291
7336
|
setHighlightedIndex: setHighlightedIndex
|
|
7292
|
-
})));
|
|
7337
|
+
}))));
|
|
7293
7338
|
};
|
|
7294
7339
|
|
|
7295
7340
|
// Defines a functional component named 'SelectComponent', which is expected to receive 'SelectProps' as properties.
|
|
7296
7341
|
var SelectComponent = props => {
|
|
7342
|
+
// Ensure options is always an array
|
|
7343
|
+
var safeProps = Object.assign({}, props, {
|
|
7344
|
+
options: props.options || []
|
|
7345
|
+
});
|
|
7297
7346
|
// Invokes the 'useSelectState' hook with props to obtain stateful logic for the Select component.
|
|
7298
|
-
var selectStates = useSelectState(
|
|
7347
|
+
var selectStates = useSelectState(safeProps);
|
|
7299
7348
|
// Renders the 'SelectView' component, passing along any states controlled by 'useSelectState' and all properties passed to 'SelectComponent'.
|
|
7300
|
-
return /*#__PURE__*/React__default.createElement(SelectView, Object.assign({}, selectStates,
|
|
7349
|
+
return /*#__PURE__*/React__default.createElement(SelectView, Object.assign({}, selectStates, safeProps, {
|
|
7350
|
+
onClick: e => {
|
|
7351
|
+
// Stop propagation to prevent the global click handler from closing other dropdowns
|
|
7352
|
+
e.stopPropagation();
|
|
7353
|
+
if (props.onClick) props.onClick(e);
|
|
7354
|
+
}
|
|
7355
|
+
}));
|
|
7301
7356
|
};
|
|
7302
7357
|
// Exports 'SelectComponent' as 'Select', making it available for import in other parts of the application.
|
|
7303
7358
|
var Select = SelectComponent;
|
|
7304
7359
|
|
|
7305
|
-
// This file defines a custom hook for managing the state of a Switch component.
|
|
7360
|
+
// This file defines a custom hook for managing the state of a Switch component.
|
|
7361
|
+
// It allows tracking whether the switch is hovered, and its on/off state based on 'isDisabled' and 'isChecked' properties.
|
|
7306
7362
|
var useSwitchState = _ref => {
|
|
7307
7363
|
var {
|
|
7308
7364
|
isDisabled,
|
|
7309
7365
|
isChecked
|
|
7310
7366
|
} = _ref;
|
|
7311
7367
|
var [isHovered, setIsHovered] = React__default.useState(false);
|
|
7312
|
-
var [on, setOn] = React__default.useState(
|
|
7368
|
+
var [on, setOn] = React__default.useState(isChecked || false);
|
|
7369
|
+
var [value, setValue] = React__default.useState(isChecked || false);
|
|
7370
|
+
// Update the value when isChecked changes
|
|
7371
|
+
React.useEffect(() => {
|
|
7372
|
+
if (isChecked !== undefined) {
|
|
7373
|
+
setOn(isChecked);
|
|
7374
|
+
setValue(isChecked);
|
|
7375
|
+
}
|
|
7376
|
+
}, [isChecked]);
|
|
7313
7377
|
return {
|
|
7314
7378
|
isHovered,
|
|
7315
7379
|
setIsHovered,
|
|
7316
7380
|
on,
|
|
7317
|
-
setOn
|
|
7381
|
+
setOn,
|
|
7382
|
+
value,
|
|
7383
|
+
setValue
|
|
7318
7384
|
};
|
|
7319
7385
|
};
|
|
7320
7386
|
|
|
@@ -7330,68 +7396,68 @@ var useSwitchState = _ref => {
|
|
|
7330
7396
|
*/
|
|
7331
7397
|
/**
|
|
7332
7398
|
* Knob (circle) sizes for the Switch component
|
|
7333
|
-
* Following the 4px grid system
|
|
7399
|
+
* Following the 4px grid system - dimensions réduites
|
|
7334
7400
|
*/
|
|
7335
7401
|
var KnobSizes = {
|
|
7336
7402
|
xs: {
|
|
7403
|
+
height: '8px',
|
|
7404
|
+
width: '8px'
|
|
7405
|
+
},
|
|
7406
|
+
sm: {
|
|
7337
7407
|
height: '12px',
|
|
7338
7408
|
width: '12px'
|
|
7339
7409
|
},
|
|
7340
|
-
|
|
7410
|
+
md: {
|
|
7341
7411
|
height: '16px',
|
|
7342
7412
|
width: '16px'
|
|
7343
7413
|
},
|
|
7344
|
-
|
|
7414
|
+
lg: {
|
|
7345
7415
|
height: '20px',
|
|
7346
7416
|
width: '20px'
|
|
7347
7417
|
},
|
|
7348
|
-
|
|
7418
|
+
xl: {
|
|
7349
7419
|
height: '24px',
|
|
7350
7420
|
width: '24px'
|
|
7351
|
-
},
|
|
7352
|
-
xl: {
|
|
7353
|
-
height: '28px',
|
|
7354
|
-
width: '28px'
|
|
7355
7421
|
}
|
|
7356
7422
|
};
|
|
7357
7423
|
/**
|
|
7358
7424
|
* Slider (track) sizes for the Switch component
|
|
7359
|
-
* Following the 4px grid system
|
|
7425
|
+
* Following the 4px grid system - dimensions réduites
|
|
7360
7426
|
*/
|
|
7361
7427
|
var SliderSizes = {
|
|
7362
7428
|
xs: {
|
|
7363
|
-
height: '
|
|
7364
|
-
width: '
|
|
7429
|
+
height: '16px',
|
|
7430
|
+
width: '36px'
|
|
7365
7431
|
},
|
|
7366
7432
|
sm: {
|
|
7367
|
-
height: '
|
|
7368
|
-
width: '
|
|
7433
|
+
height: '20px',
|
|
7434
|
+
width: '44px'
|
|
7369
7435
|
},
|
|
7370
7436
|
md: {
|
|
7371
|
-
height: '
|
|
7372
|
-
width: '
|
|
7437
|
+
height: '24px',
|
|
7438
|
+
width: '52px'
|
|
7373
7439
|
},
|
|
7374
7440
|
lg: {
|
|
7375
|
-
height: '
|
|
7376
|
-
width: '
|
|
7441
|
+
height: '28px',
|
|
7442
|
+
width: '60px'
|
|
7377
7443
|
},
|
|
7378
7444
|
xl: {
|
|
7379
|
-
height: '
|
|
7380
|
-
width: '
|
|
7445
|
+
height: '32px',
|
|
7446
|
+
width: '68px'
|
|
7381
7447
|
}
|
|
7382
7448
|
};
|
|
7383
7449
|
/**
|
|
7384
|
-
* Padding for the Switch slider
|
|
7450
|
+
* Padding for the Switch slider - ajusté pour les nouvelles dimensions
|
|
7385
7451
|
* Following the 4px grid system
|
|
7386
7452
|
*/
|
|
7387
7453
|
var SliderPadding = {
|
|
7388
7454
|
xs: {
|
|
7389
7455
|
paddingVertical: 4,
|
|
7390
|
-
paddingHorizontal:
|
|
7456
|
+
paddingHorizontal: 2
|
|
7391
7457
|
},
|
|
7392
7458
|
sm: {
|
|
7393
7459
|
paddingVertical: 4,
|
|
7394
|
-
paddingHorizontal:
|
|
7460
|
+
paddingHorizontal: 2
|
|
7395
7461
|
},
|
|
7396
7462
|
md: {
|
|
7397
7463
|
paddingVertical: 4,
|
|
@@ -7449,7 +7515,6 @@ var SwitchView = _ref => {
|
|
|
7449
7515
|
isHovered = false,
|
|
7450
7516
|
isDisabled = false,
|
|
7451
7517
|
isReadOnly = false,
|
|
7452
|
-
on,
|
|
7453
7518
|
setOn,
|
|
7454
7519
|
onChange,
|
|
7455
7520
|
setValue = () => {},
|
|
@@ -7462,10 +7527,11 @@ var SwitchView = _ref => {
|
|
|
7462
7527
|
} = _ref,
|
|
7463
7528
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$q);
|
|
7464
7529
|
var handleToggle = event => {
|
|
7465
|
-
if (!isReadOnly) {
|
|
7466
|
-
|
|
7467
|
-
|
|
7468
|
-
|
|
7530
|
+
if (!isReadOnly && !isDisabled) {
|
|
7531
|
+
var newValue = event.target.checked;
|
|
7532
|
+
setValue(newValue);
|
|
7533
|
+
setOn(newValue);
|
|
7534
|
+
if (onChange) onChange(newValue);
|
|
7469
7535
|
}
|
|
7470
7536
|
};
|
|
7471
7537
|
var handleHover = () => setIsHovered(!isHovered);
|
|
@@ -7513,27 +7579,39 @@ var SwitchView = _ref => {
|
|
|
7513
7579
|
// Layout properties
|
|
7514
7580
|
display: "flex",
|
|
7515
7581
|
alignItems: "center",
|
|
7516
|
-
justifyContent: activeChild ? 'space-between' :
|
|
7582
|
+
justifyContent: value ? activeChild ? 'space-between' : 'flex-end' : inActiveChild ? 'space-between' : 'flex-start',
|
|
7517
7583
|
marginBottom: 4,
|
|
7518
7584
|
// Visual properties
|
|
7519
7585
|
borderRadius: "9999px" // Full rounded for pill shape
|
|
7520
7586
|
,
|
|
7521
7587
|
backgroundColor: isDisabled ? ColorSchemes.default.disabled : value ? isHovered ? ColorSchemes.states.hover.active : ColorSchemes.default.active : isHovered ? ColorSchemes.states.hover.inactive : ColorSchemes.default.inactive,
|
|
7588
|
+
overflow: "hidden",
|
|
7522
7589
|
// State properties
|
|
7523
7590
|
cursor: "pointer",
|
|
7524
7591
|
// Animation
|
|
7525
7592
|
transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
|
|
7526
7593
|
}, shadow, SliderPadding[size], SliderSizes[size], views['slider']), activeChild && value && (/*#__PURE__*/React__default.createElement(appStudio.View, {
|
|
7527
7594
|
marginLeft: 8,
|
|
7528
|
-
|
|
7595
|
+
marginRight: 4,
|
|
7596
|
+
transition: "all 0.3s ease",
|
|
7597
|
+
display: "flex",
|
|
7598
|
+
alignItems: "center",
|
|
7599
|
+
justifyContent: "center",
|
|
7600
|
+
height: "100%"
|
|
7529
7601
|
}, activeChild)), /*#__PURE__*/React__default.createElement(appStudio.View, Object.assign({
|
|
7530
7602
|
borderRadius: "50%",
|
|
7531
7603
|
backgroundColor: ColorSchemes.default.knob,
|
|
7532
7604
|
boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
|
|
7533
|
-
transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
|
|
7605
|
+
transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
7606
|
+
zIndex: 1
|
|
7534
7607
|
}, KnobSizes[size], views['circle'])), inActiveChild && !value && (/*#__PURE__*/React__default.createElement(appStudio.View, {
|
|
7535
7608
|
marginRight: 8,
|
|
7536
|
-
|
|
7609
|
+
marginLeft: 4,
|
|
7610
|
+
transition: "all 0.3s ease",
|
|
7611
|
+
display: "flex",
|
|
7612
|
+
alignItems: "center",
|
|
7613
|
+
justifyContent: "center",
|
|
7614
|
+
height: "100%"
|
|
7537
7615
|
}, inActiveChild))), labelPosition === 'right' && label && (/*#__PURE__*/React__default.createElement(Text, {
|
|
7538
7616
|
fontWeight: "500" // Medium weight for better readability
|
|
7539
7617
|
,
|
|
@@ -7819,7 +7897,7 @@ var TextFieldView = _ref => {
|
|
|
7819
7897
|
var fieldStyles = Object.assign({
|
|
7820
7898
|
// Layout properties
|
|
7821
7899
|
margin: 0,
|
|
7822
|
-
paddingVertical:
|
|
7900
|
+
paddingVertical: 4,
|
|
7823
7901
|
paddingHorizontal: 0,
|
|
7824
7902
|
width: '100%',
|
|
7825
7903
|
height: '100%',
|
|
@@ -7959,24 +8037,24 @@ var useCheckboxState = _ref => {
|
|
|
7959
8037
|
*/
|
|
7960
8038
|
var Sizes = {
|
|
7961
8039
|
xs: {
|
|
8040
|
+
height: '12px',
|
|
8041
|
+
width: '12px'
|
|
8042
|
+
},
|
|
8043
|
+
sm: {
|
|
7962
8044
|
height: '16px',
|
|
7963
8045
|
width: '16px'
|
|
7964
8046
|
},
|
|
7965
|
-
|
|
8047
|
+
md: {
|
|
7966
8048
|
height: '20px',
|
|
7967
8049
|
width: '20px'
|
|
7968
8050
|
},
|
|
7969
|
-
|
|
8051
|
+
lg: {
|
|
7970
8052
|
height: '24px',
|
|
7971
8053
|
width: '24px'
|
|
7972
8054
|
},
|
|
7973
|
-
|
|
8055
|
+
xl: {
|
|
7974
8056
|
height: '28px',
|
|
7975
8057
|
width: '28px'
|
|
7976
|
-
},
|
|
7977
|
-
xl: {
|
|
7978
|
-
height: '32px',
|
|
7979
|
-
width: '32px'
|
|
7980
8058
|
}
|
|
7981
8059
|
};
|
|
7982
8060
|
/**
|
|
@@ -10214,7 +10292,7 @@ var ComboBoxView = _ref => {
|
|
|
10214
10292
|
hint: placeholder,
|
|
10215
10293
|
isClearable: false,
|
|
10216
10294
|
left: /*#__PURE__*/React__default.createElement(SearchIcon, {
|
|
10217
|
-
widthHeight:
|
|
10295
|
+
widthHeight: 16
|
|
10218
10296
|
}),
|
|
10219
10297
|
views: {
|
|
10220
10298
|
container: Object.assign({
|
|
@@ -12775,17 +12853,17 @@ var useNavigationMenuState = function useNavigationMenuState(defaultActiveItemId
|
|
|
12775
12853
|
var NavigationMenuSizes = {
|
|
12776
12854
|
sm: {
|
|
12777
12855
|
padding: '8px 12px',
|
|
12778
|
-
fontSize: '
|
|
12856
|
+
fontSize: '12px',
|
|
12779
12857
|
fontWeight: '500'
|
|
12780
12858
|
},
|
|
12781
12859
|
md: {
|
|
12782
12860
|
padding: '12px 16px',
|
|
12783
|
-
fontSize: '
|
|
12861
|
+
fontSize: '14px',
|
|
12784
12862
|
fontWeight: '500'
|
|
12785
12863
|
},
|
|
12786
12864
|
lg: {
|
|
12787
12865
|
padding: '16px 20px',
|
|
12788
|
-
fontSize: '
|
|
12866
|
+
fontSize: '16px',
|
|
12789
12867
|
fontWeight: '500'
|
|
12790
12868
|
}
|
|
12791
12869
|
};
|
|
@@ -13733,8 +13811,8 @@ var HighlightStyles = {
|
|
|
13733
13811
|
}),
|
|
13734
13812
|
gradient: (color, secondaryColor) => ({
|
|
13735
13813
|
background: "linear-gradient(135deg, " + color + ", " + (secondaryColor || color) + ")",
|
|
13736
|
-
backgroundClip: 'text',
|
|
13737
|
-
webkitBackgroundClip: 'text',
|
|
13814
|
+
backgroundClip: 'text !important',
|
|
13815
|
+
webkitBackgroundClip: 'text !important',
|
|
13738
13816
|
color: 'transparent',
|
|
13739
13817
|
webkitTextFillColor: 'transparent',
|
|
13740
13818
|
display: 'inline-block',
|