app-studio 0.2.20 → 0.2.22
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/appstudio.cjs.development.js +65 -11
- package/dist/appstudio.cjs.development.js.map +1 -1
- package/dist/appstudio.cjs.production.min.js +1 -1
- package/dist/appstudio.cjs.production.min.js.map +1 -1
- package/dist/appstudio.esm.js +65 -11
- package/dist/appstudio.esm.js.map +1 -1
- package/dist/appstudio.umd.development.js +65 -11
- package/dist/appstudio.umd.development.js.map +1 -1
- package/dist/appstudio.umd.production.min.js +1 -1
- package/dist/appstudio.umd.production.min.js.map +1 -1
- package/dist/utils/cssProperties.d.ts +2 -0
- package/dist/utils/style.d.ts +3 -3
- package/package.json +1 -1
|
@@ -9,6 +9,30 @@ var React__default = _interopDefault(React);
|
|
|
9
9
|
var Color = _interopDefault(require('color-convert'));
|
|
10
10
|
|
|
11
11
|
const palette = {
|
|
12
|
+
whiteAlpha: {
|
|
13
|
+
50: 'rgba(255, 255, 255, 0.04)',
|
|
14
|
+
100: 'rgba(255, 255, 255, 0.06)',
|
|
15
|
+
200: 'rgba(255, 255, 255, 0.08)',
|
|
16
|
+
300: 'rgba(255, 255, 255, 0.16)',
|
|
17
|
+
400: 'rgba(255, 255, 255, 0.24)',
|
|
18
|
+
500: 'rgba(255, 255, 255, 0.36)',
|
|
19
|
+
600: 'rgba(255, 255, 255, 0.48)',
|
|
20
|
+
700: 'rgba(255, 255, 255, 0.64)',
|
|
21
|
+
800: 'rgba(255, 255, 255, 0.80)',
|
|
22
|
+
900: 'rgba(255, 255, 255, 0.92)'
|
|
23
|
+
},
|
|
24
|
+
blackAlpha: {
|
|
25
|
+
50: 'rgba(0, 0, 0, 0.04)',
|
|
26
|
+
100: 'rgba(0, 0, 0, 0.06)',
|
|
27
|
+
200: 'rgba(0, 0, 0, 0.08)',
|
|
28
|
+
300: 'rgba(0, 0, 0, 0.16)',
|
|
29
|
+
400: 'rgba(0, 0, 0, 0.24)',
|
|
30
|
+
500: 'rgba(0, 0, 0, 0.36)',
|
|
31
|
+
600: 'rgba(0, 0, 0, 0.48)',
|
|
32
|
+
700: 'rgba(0, 0, 0, 0.64)',
|
|
33
|
+
800: 'rgba(0, 0, 0, 0.80)',
|
|
34
|
+
900: 'rgba(0, 0, 0, 0.92)'
|
|
35
|
+
},
|
|
12
36
|
white: {
|
|
13
37
|
50: 'rgba(255, 255, 255, 0.04)',
|
|
14
38
|
100: 'rgba(255, 255, 255, 0.08)',
|
|
@@ -533,14 +557,11 @@ const ResponsiveProvider = _ref => {
|
|
|
533
557
|
// List of numeric properties that don't need 'px' suffix
|
|
534
558
|
// Keys to exclude when passing props to the component
|
|
535
559
|
const excludedKeys = /*#__PURE__*/new Set(['on', 'shadow', 'only', 'media', 'css', 'size', 'paddingHorizontal', 'paddingVertical', 'marginHorizontal', 'marginVertical', 'animate']);
|
|
560
|
+
// Keys to exclude when passing props to the component
|
|
561
|
+
const extraKeys = /*#__PURE__*/new Set(['on', 'shadow', 'only', 'media', 'css']);
|
|
536
562
|
const includeKeys = /*#__PURE__*/new Set(['src', 'alt', 'style', 'as']);
|
|
537
563
|
|
|
538
564
|
// styleHelpers.ts
|
|
539
|
-
// Excluded keys imported from constants.ts
|
|
540
|
-
// import { excludedKeys } from './constants';
|
|
541
|
-
const StyleProps = ['alignContent', 'alignItems', 'alignSelf', 'alignmentBaseline', 'all', 'animation', 'animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction', 'appearance', 'backdropFilter', 'backfaceVisibility', 'background', 'backgroundAttachment', 'backgroundBlendMode', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPosition', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundRepeatX', 'backgroundRepeatY', 'backgroundSize', 'baselineShift', 'blockSize', 'border', 'borderBlockEnd', 'borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth', 'borderBlockStart', 'borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth', 'borderBottom', 'borderBottomColor', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderBottomStyle', 'borderBottomWidth', 'borderCollapse', 'borderColor', 'borderImage', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderInlineEnd', 'borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth', 'borderInlineStart', 'borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth', 'borderLeft', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRadius', 'borderRight', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderSpacing', 'borderStyle', 'borderTop', 'borderTopColor', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderTopStyle', 'borderTopWidth', 'borderWidth', 'bottom', 'boxShadow', 'boxSizing', 'breakAfter', 'breakBefore', 'breakInside', 'bufferedRendering', 'captionSide', 'caretColor', 'clear', 'clip', 'clipPath', 'clipRule', 'color', 'colorInterpolation', 'colorInterpolationFilters', 'colorRendering', 'columnCount', 'columnFill', 'columnGap', 'columnRule', 'columnRuleColor', 'columnRuleStyle', 'columnRuleWidth', 'columnSpan', 'columnWidth', 'columns', 'contain', 'content', 'counterIncrement', 'counterReset', 'cursor', 'cx', 'cy', 'd', 'direction', 'display', 'dominantBaseline', 'emptyCells', 'fill', 'fillOpacity', 'fillRule', 'filter', 'flex', 'flexBasis', 'flexDirection', 'flexFlow', 'flexGrow', 'flexShrink', 'flexWrap', 'float', 'floodColor', 'floodOpacity', 'font', 'fontDisplay', 'fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontSize', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariationSettings', 'fontWeight', 'gap', 'grid', 'gridArea', 'gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridColumn', 'gridColumnEnd', 'gridColumnGap', 'gridColumnStart', 'gridGap', 'gridRow', 'gridRowEnd', 'gridRowGap', 'gridRowStart', 'gridTemplate', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows', 'height', 'hyphens', 'imageRendering', 'inlineSize', 'isolation', 'justifyContent', 'justifyItems', 'justifySelf', 'left', 'letterSpacing', 'lightingColor', 'lineBreak', 'lineHeight', 'listStyle', 'listStyleImage', 'listStylePosition', 'listStyleType', 'margin', 'marginBlockEnd', 'marginBlockStart', 'marginBottom', 'marginInlineEnd', 'marginInlineStart', 'marginLeft', 'marginRight', 'marginTop', 'marker', 'markerEnd', 'markerMid', 'markerStart', 'mask', 'maskType', 'maxBlockSize', 'maxHeight', 'maxInlineSize', 'maxWidth', 'maxZoom', 'minBlockSize', 'minHeight', 'minInlineSize', 'minWidth', 'minZoom', 'mixBlendMode', 'objectFit', 'objectPosition', 'offset', 'offsetDistance', 'offsetPath', 'offsetRotate', 'opacity', 'order', 'orientation', 'orphans', 'outline', 'outlineColor', 'outlineOffset', 'outlineStyle', 'outlineWidth', 'overflow', 'overflowAnchor', 'overflowWrap', 'overflowX', 'overflowY', 'overscrollBehavior', 'overscrollBehaviorBlock', 'overscrollBehaviorInline', 'overscrollBehaviorX', 'overscrollBehaviorY', 'padding', 'paddingBlockEnd', 'paddingBlockStart', 'paddingBottom', 'paddingInlineEnd', 'paddingInlineStart', 'paddingLeft', 'paddingRight', 'paddingTop', 'page', 'pageBreakAfter', 'pageBreakBefore', 'pageBreakInside', 'paintOrder', 'perspective', 'perspectiveOrigin', 'placeContent', 'placeItems', 'placeSelf', 'pointerEvents', 'position', 'quotes', 'r', 'resize', 'right', 'rowGap', 'rx', 'ry', 'scrollBehavior', 'scrollMargin', 'scrollMarginBlock', 'scrollMarginBlockEnd', 'scrollMarginBlockStart', 'scrollMarginBottom', 'scrollMarginInline', 'scrollMarginInlineEnd', 'scrollMarginInlineStart', 'scrollMarginLeft', 'scrollMarginRight', 'scrollMarginTop', 'scrollPadding', 'scrollPaddingBlock', 'scrollPaddingBlockEnd', 'scrollPaddingBlockStart', 'scrollPaddingBottom', 'scrollPaddingInline', 'scrollPaddingInlineEnd', 'scrollPaddingInlineStart', 'scrollPaddingLeft', 'scrollPaddingRight', 'scrollPaddingTop', 'scrollSnapAlign', 'scrollSnapStop', 'scrollSnapType', 'shapeImageThreshold', 'shapeMargin', 'shapeOutside', 'shapeRendering', 'size', 'speak', 'src', 'stopColor', 'stopOpacity', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'tabSize', 'tableLayout', 'textAlign', 'textAlignLast', 'textAnchor', 'textCombineUpright', 'textDecoration', 'textDecorationColor', 'textDecorationLine', 'textDecorationSkipInk', 'textDecorationStyle', 'textDecorationThickness', 'textEmphasis', 'textIndent', 'textOrientation', 'textOverflow', 'textRendering', 'textShadow', 'textSizeAdjust', 'textTransform', 'textUnderlinePosition', 'textJustify', 'top', 'touchAction', 'transform', 'transformBox', 'transformOrigin', 'transformStyle', 'transition', 'transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction', 'unicodeBidi', 'unicodeRange', 'userSelect', 'userZoom', 'vectorEffect', 'verticalAlign', 'visibility', 'wrap', 'whiteSpace', 'widows', 'width', 'willChange', 'wordBreak', 'wordSpacing', 'wordWrap', 'writingMode', 'x', 'y', 'zIndex', 'zoom', 'alwaysBounceHorizontal', 'alwaysBounceVertical', 'automaticallyAdjustContentInsets', 'bounces', 'bouncesZoom', 'canCancelContentTouches', 'centerContent', 'contentLayoutStyle', 'contentInset', 'contentInsetAdjustmentBehavior', 'contentOffset', 'decelerationRate', 'directionalLockEnabled', 'disableIntervalMomentum', 'disableScrollViewPanResponder', 'endFillColor', 'fadingEdgeLength', 'horizontal', 'indicatorStyle', 'invertStickyHeaders', 'keyboardDismissMode', 'keyboardShouldPersistTaps', 'maintainVisibleContentPosition', 'maximumZoomScale', 'minimumZoomScale', 'nestedScrollEnabled', 'onContentSizeChange', 'onMomentumScrollBegin', 'onMomentumScrollEnd', 'onScroll', 'onScrollBeginDrag', 'onScrollEndDrag', 'onScrollToTop', 'overScrollMode', 'pagingEnabled', 'persistentScrollbar', 'pinchGestureEnabled', 'refreshControl', 'removeClippedSubviews', 'scrollBarThumbImage', 'scrollEnabled', 'scrollEventThrottle', 'scrollIndicatorInsets', 'scrollPerfTag', 'scrollToOverflowEnabled', 'scrollsToTop', 'DEPRECATED_sendUpdatedChildFrames', 'showsHorizontalScrollIndicator', 'showsVerticalScrollIndicator', 'snapToAlignment', 'snapToEnd', 'snapToInterval', 'snapToOffsets', 'snapToStart', 'stickyHeaderIndices', 'zoomScale', 'borderRightColor', 'backfaceVisibility', 'borderBottomColor', 'borderBottomEndRadius', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderBottomStartRadius', 'borderBottomWidth', 'borderColor', 'borderEndColor', 'borderLeftColor', 'borderLeftWidth', 'borderRadius', 'backgroundColor', 'borderRightWidth', 'borderStartColor', 'borderStyle', 'borderTopColor', 'borderTopEndRadius', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderTopStartRadius', 'borderTopWidth', 'borderWidth', 'border', 'opacity', 'elevation', 'shadowColor', 'shadowOffset', 'shadowOpacity', 'shadowRadius', 'alignContent', 'alignItems', 'alignSelf', 'aspectRatio', 'borderBottomWidth', 'borderEndWidth', 'borderLeftWidth', 'borderRightWidth', 'borderStartWidth', 'borderTopWidth', 'borderWidth', 'bottom', 'direction', 'display', 'end', 'flex', 'flexBasis', 'flexDirection', 'flexGrow', 'flexShrink', 'flexWrap', 'height', 'justifyContent', 'left', 'margin', 'marginBottom', 'marginEnd', 'marginHorizontal', 'marginLeft', 'marginRight', 'marginStart', 'marginTop', 'marginVertical', 'maxHeight', 'maxWidth', 'minHeight', 'minWidth', 'overflow', 'overflowX', 'overflowY', 'padding', 'paddingBottom', 'paddingEnd', 'paddingHorizontal', 'paddingLeft', 'paddingRight', 'paddingStart', 'paddingTop', 'paddingVertical', 'position', 'right', 'start', 'top', 'width', 'zIndex', 'borderTopRightRadius', 'backfaceVisibility', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderColor', 'borderRadius', 'borderTopLeftRadius', 'backgroundColor', 'borderWidth', 'opacity', 'overflow', 'overflowX', 'overflowY', 'resizeMode', 'tintColor', 'overlayColor', 'transform', 'transformMatrix', 'rotation', 'scaleX', 'scaleY', 'translateX', 'translateY', 'perspective', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'skewX', 'skewY', 'testID', 'decomposedMatrix', 'gridRowStart', 'gridRowEnd', 'gridColumnStart', 'gridColumnEnd', 'lineClamp', 'writingMode', 'objectFit', 'objectPosition', 'placeItems', 'placeSelf'];
|
|
542
|
-
const StyledProps = /*#__PURE__*/new Set(StyleProps);
|
|
543
|
-
const nonStyleAttributes = /*#__PURE__*/new Set(['length', 'parentRule', 'src']);
|
|
544
565
|
// Function to convert style object to CSS string
|
|
545
566
|
const styleObjectToCss = styleObj => {
|
|
546
567
|
return Object.entries(styleObj).map(_ref => {
|
|
@@ -556,8 +577,17 @@ const toKebabCase = str => str.replace(/([A-Z])/g, match => '-' + match.toLowerC
|
|
|
556
577
|
// // For simplicity, we assume all props not in excludedKeys are style props
|
|
557
578
|
// return !excludedKeys.has(prop);
|
|
558
579
|
// };
|
|
559
|
-
const
|
|
560
|
-
|
|
580
|
+
//const cssExtraProps: Array<keyof CSSProperties> = [
|
|
581
|
+
const cssExtraProps = ['textJustify', 'lineClamp'];
|
|
582
|
+
// Create a set of all valid CSS properties
|
|
583
|
+
const StyleProps = [... /*#__PURE__*/Object.keys( /*#__PURE__*/document.createElement('div').style), ...cssExtraProps];
|
|
584
|
+
// Create a set of all valid CSS properties
|
|
585
|
+
const StyledProps = /*#__PURE__*/new Set(StyleProps);
|
|
586
|
+
// console.log({
|
|
587
|
+
// props: JSON.stringify(StyleProps.filter((prop) => !cssProperties.has(prop))),
|
|
588
|
+
// });
|
|
589
|
+
const isStyleProp = prop => {
|
|
590
|
+
return (StyledProps.has(prop) || extraKeys.has(prop)) && !includeKeys.has(prop);
|
|
561
591
|
};
|
|
562
592
|
|
|
563
593
|
const Shadows = {
|
|
@@ -791,6 +821,7 @@ class UtilityClassManager {
|
|
|
791
821
|
if (!shorthand) {
|
|
792
822
|
shorthand = property.replace(/([A-Z])/g, '-$1').toLowerCase();
|
|
793
823
|
}
|
|
824
|
+
// console.log({ shorthand, property, processedValue });
|
|
794
825
|
// Normaliser la valeur pour le nom de classe
|
|
795
826
|
let normalizedValue = processedValue.toString().replace(/\./g, 'p') // Remplacer les points par 'p'
|
|
796
827
|
.replace(/\s+/g, '-') // Remplacer les espaces par '-'
|
|
@@ -994,6 +1025,9 @@ const extractUtilityClasses = (props, getColor, mediaQueries, devices) => {
|
|
|
994
1025
|
if (modifier === void 0) {
|
|
995
1026
|
modifier = '';
|
|
996
1027
|
}
|
|
1028
|
+
console.log({
|
|
1029
|
+
styles
|
|
1030
|
+
});
|
|
997
1031
|
Object.keys(styles).forEach(property => {
|
|
998
1032
|
const value = styles[property];
|
|
999
1033
|
let mediaQueriesForClass = [];
|
|
@@ -1006,8 +1040,17 @@ const extractUtilityClasses = (props, getColor, mediaQueries, devices) => {
|
|
|
1006
1040
|
}
|
|
1007
1041
|
}
|
|
1008
1042
|
|
|
1009
|
-
|
|
1010
|
-
|
|
1043
|
+
if (value !== undefined) {
|
|
1044
|
+
const classNames = utilityClassManager.getClassNames(property, value, context, modifier, getColor, mediaQueriesForClass);
|
|
1045
|
+
classes.push(...classNames);
|
|
1046
|
+
} else {
|
|
1047
|
+
console.error({
|
|
1048
|
+
styles,
|
|
1049
|
+
value,
|
|
1050
|
+
property
|
|
1051
|
+
});
|
|
1052
|
+
debugger;
|
|
1053
|
+
}
|
|
1011
1054
|
});
|
|
1012
1055
|
};
|
|
1013
1056
|
// Générer des classes utilitaires pour les styles calculés
|
|
@@ -1052,8 +1095,16 @@ const extractUtilityClasses = (props, getColor, mediaQueries, devices) => {
|
|
|
1052
1095
|
}
|
|
1053
1096
|
} else {
|
|
1054
1097
|
// Générer une classe utilitaire pour cette propriété et valeur
|
|
1055
|
-
|
|
1056
|
-
|
|
1098
|
+
if (value !== undefined) {
|
|
1099
|
+
const classNames = utilityClassManager.getClassNames(property, value, 'base', '', getColor);
|
|
1100
|
+
classes.push(...classNames);
|
|
1101
|
+
} else {
|
|
1102
|
+
console.error({
|
|
1103
|
+
value,
|
|
1104
|
+
property
|
|
1105
|
+
});
|
|
1106
|
+
debugger;
|
|
1107
|
+
}
|
|
1057
1108
|
}
|
|
1058
1109
|
}
|
|
1059
1110
|
});
|
|
@@ -1073,6 +1124,9 @@ const Element = /*#__PURE__*/React__default.memo(props => {
|
|
|
1073
1124
|
mediaQueries,
|
|
1074
1125
|
devices
|
|
1075
1126
|
} = useResponsiveContext();
|
|
1127
|
+
console.log({
|
|
1128
|
+
rest
|
|
1129
|
+
});
|
|
1076
1130
|
// Extraire les classes utilitaires
|
|
1077
1131
|
const utilityClasses = React.useMemo(() => extractUtilityClasses(rest, getColor, mediaQueries, devices), [rest, getColor, mediaQueries, devices]);
|
|
1078
1132
|
// Gérer les événements
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appstudio.cjs.development.js","sources":["../src/utils/colors.ts","../src/providers/Theme.tsx","../src/providers/Responsive.tsx","../src/utils/constants.ts","../src/utils/style.ts","../src/utils/shadow.ts","../src/utils/animation.ts","../src/utils/cssClass.ts","../src/components/Element.tsx","../src/components/View.tsx","../src/components/Image.tsx","../src/components/Text.tsx","../src/components/Form.tsx","../src/components/Animation.tsx","../src/utils/typography.ts","../src/utils/env.ts","../src/hooks/useMount.ts","../src/hooks/useResponsive.ts"],"sourcesContent":["export type ColorPalette = Record<string, Record<number, string>>;\n\nexport type ColorSingleton = Record<\n string,\n {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n }\n>;\n\nexport const palette: ColorPalette = {\n white: {\n 50: 'rgba(255, 255, 255, 0.04)',\n 100: 'rgba(255, 255, 255, 0.08)',\n 200: 'rgba(255, 255, 255, 0.16)',\n 300: 'rgba(255, 255, 255, 0.24)',\n 400: 'rgba(255, 255, 255, 0.36)',\n 500: 'rgba(255, 255, 255, 0.48)',\n 600: 'rgba(255, 255, 255, 0.64)',\n 700: 'rgba(255, 255, 255, 0.80)',\n 800: 'rgba(255, 255, 255, 0.92)',\n 900: 'rgba(255, 255, 255, 1)',\n },\n\n black: {\n 50: 'rgba(0, 0, 0, 0.04)',\n 100: 'rgba(0, 0, 0, 0.08)',\n 200: 'rgba(0, 0, 0, 0.16)',\n 300: 'rgba(0, 0, 0, 0.24)',\n 400: 'rgba(0, 0, 0, 0.36)',\n 500: 'rgba(0, 0, 0, 0.48)',\n 600: 'rgba(0, 0, 0, 0.64)',\n 700: 'rgba(0, 0, 0, 0.80)',\n 800: 'rgba(0, 0, 0, 0.92)',\n 900: 'rgba(0, 0, 0, 1)',\n },\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n },\n lightBlue: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n warmGray: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n trueGray: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n gray: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n dark: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n coolGray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n },\n blueGray: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n};\n","import React, { createContext, useContext } from 'react';\nimport { palette as defaultPalette } from '../utils/colors'; // Assurez-vous que ce chemin est correct\n\ntype ColorConfig = Record<string, any>; // Permet des objets imbriqués\ntype VariantColorConfig = Record<string, Record<string, string>>;\n\ninterface Theme {\n main: ColorConfig;\n components?: Record<string, Record<string, any>>;\n}\n\ninterface Colors {\n main?: ColorConfig;\n palette?: VariantColorConfig;\n}\n\ninterface ThemeContextProps {\n getColor: (color: string) => string;\n theme?: Theme;\n colors?: Colors;\n}\n\n// Configuration de thème par défaut\nexport const defaultThemeMain: ColorConfig = {\n primary: 'color.black',\n secondary: 'color.blue',\n success: 'color.green.500',\n error: 'color.red.500',\n warning: 'color.orange.500',\n disabled: 'color.gray.500',\n loading: 'color.dark.500',\n};\n\n// Configuration des couleurs par défaut\nexport const defaultColors: ColorConfig = {\n white: '#FFFFFF',\n black: '#000000',\n red: '#FF0000',\n green: '#00FF00',\n blue: '#0000FF',\n yellow: '#FFFF00',\n cyan: '#00FFFF',\n magenta: '#FF00FF',\n grey: '#808080',\n orange: '#FFA500',\n brown: '#A52A2A',\n purple: '#800080',\n pink: '#FFC0CB',\n lime: '#00FF00',\n teal: '#008080',\n navy: '#000080',\n olive: '#808000',\n maroon: '#800000',\n gold: '#FFD700',\n silver: '#C0C0C0',\n indigo: '#4B0082',\n violet: '#EE82EE',\n beige: '#F5F5DC',\n turquoise: '#40E0D0',\n coral: '#FF7F50',\n chocolate: '#D2691E',\n skyBlue: '#87CEEB',\n plum: '#DDA0DD',\n darkGreen: '#006400',\n salmon: '#FA8072',\n};\n\n// Création du contexte de thème avec des valeurs par défaut\nexport const ThemeContext = createContext<ThemeContextProps>({\n getColor: (name: string): string => name,\n colors: {\n main: defaultColors,\n palette: defaultPalette,\n },\n theme: { main: defaultThemeMain, components: {} },\n});\n\n// Hook personnalisé pour utiliser le contexte de thème\nexport const useTheme = () => useContext(ThemeContext);\n\n// Fonction de fusion profonde simple\nconst deepMerge = (target: any, source: any): any => {\n if (typeof source !== 'object' || source === null) {\n return target;\n }\n\n const merged = { ...target };\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const sourceValue = source[key];\n const targetValue = target[key];\n\n if (Array.isArray(sourceValue)) {\n // Remplacer les tableaux\n merged[key] = sourceValue;\n } else if (\n typeof sourceValue === 'object' &&\n sourceValue !== null &&\n !Array.isArray(sourceValue)\n ) {\n // Fusion récursive des objets\n merged[key] = deepMerge(targetValue || {}, sourceValue);\n } else {\n // Remplacer les autres types de valeurs\n merged[key] = sourceValue;\n }\n }\n }\n\n return merged;\n};\n\n// Composant ThemeProvider\nexport const ThemeProvider = ({\n theme = {\n main: defaultThemeMain,\n components: {},\n },\n colors = {\n main: defaultColors,\n palette: defaultPalette,\n },\n children,\n}: {\n theme?: Theme;\n colors?: Colors;\n children: React.ReactNode;\n}): React.ReactElement => {\n // Fusion profonde des thèmes par défaut avec ceux fournis\n const mergedTheme = deepMerge(defaultThemeMain, theme);\n\n // Fusion profonde des couleurs par défaut avec celles fournies\n const mergedColors = deepMerge(\n { main: defaultColors, palette: defaultPalette },\n colors\n );\n\n /**\n * Fonction pour récupérer une couleur basée sur un chemin en chaîne.\n * Supporte les références imbriquées comme 'theme.button.primary.background'.\n * @param name - Le nom de la couleur à récupérer.\n * @returns La valeur de couleur résolue ou le nom original si non trouvé.\n */\n\n const getColor = (name: string): string => {\n if (name === 'transparent') return name;\n\n try {\n if (name.startsWith('theme.')) {\n const keys = name.split('.');\n let value: any = mergedTheme;\n\n for (let i = 1; i < keys.length; i++) {\n value = value[keys[i]];\n if (value === undefined) {\n console.warn(`Couleur \"${name}\" non trouvée dans le thème.`);\n return name;\n }\n }\n\n if (typeof value === 'string') {\n return getColor(value); // Résoudre les références imbriquées\n } else {\n console.warn(\n `La couleur \"${name}\" a résolu à une valeur non-string.`\n );\n return name;\n }\n } else if (name.startsWith('color.')) {\n const keys = name.split('.');\n\n if (keys.length === 2) {\n // Exemple : \"color.white\"\n const colorName = keys[1];\n return mergedColors.main[colorName] || name;\n } else if (keys.length === 3) {\n // Exemple : \"color.palette.primary.500\"\n const [_, paletteName, variant] = keys;\n if (\n mergedColors.palette[paletteName] &&\n mergedColors.palette[paletteName][variant]\n ) {\n return mergedColors.palette[paletteName][variant];\n } else {\n console.warn(`Color ${_} non trouvée`);\n }\n }\n console.warn(\n `Color \"${name}\" non trouvée dans la palette ou les couleurs principales.`\n );\n }\n } catch (e) {\n console.error('Erreur lors de la récupération de la couleur:', e);\n }\n\n return name; // Retourner le nom original si non trouvé\n };\n\n return (\n <ThemeContext.Provider\n value={{\n getColor,\n theme: mergedTheme,\n colors: mergedColors,\n }}\n >\n {children}\n </ThemeContext.Provider>\n );\n};\n","// ResponsiveContext.tsx\nimport React, { ReactNode, createContext, useContext } from 'react';\n\nexport type ResponsiveConfig = Record<string, number>;\nconst defaultBreakpointsConfig: ResponsiveConfig = {\n xs: 0,\n sm: 340,\n md: 560,\n lg: 1080,\n xl: 1300,\n};\n\nexport type ScreenOrientation = 'landscape' | 'portrait';\n\n// Inclure la fonction corrigée getMediaQueries ici\nconst getMediaQueries = (b: ResponsiveConfig) => {\n const sortedBreakpoints = Object.keys(b)\n .map((key) => ({\n breakpoint: key as keyof ResponsiveConfig,\n min: b[key],\n max: 0, // Initialisé à 0, sera mis à jour\n }))\n .sort((a, b) => a.min - b.min);\n\n // Définir les valeurs max pour chaque breakpoint sauf le dernier\n for (let i = 0; i < sortedBreakpoints.length - 1; i++) {\n sortedBreakpoints[i].max = sortedBreakpoints[i + 1].min - 1;\n }\n // Le dernier breakpoint n'a pas de max\n\n const query: Record<string, string> = {};\n sortedBreakpoints.forEach((sizeScreen) => {\n let mediaQuery = 'only screen';\n if (sizeScreen.min !== undefined && sizeScreen.min >= 0) {\n mediaQuery += ` and (min-width: ${sizeScreen.min}px)`;\n }\n if (sizeScreen.max !== undefined && sizeScreen.max > 0) {\n mediaQuery += ` and (max-width: ${sizeScreen.max}px)`;\n }\n query[sizeScreen.breakpoint] = mediaQuery.trim();\n });\n\n return query;\n};\n\nexport type DeviceConfig = Record<string, string[]>;\nconst defaultDeviceConfig: DeviceConfig = {\n mobile: ['xs', 'sm'],\n tablet: ['md', 'lg'],\n desktop: ['lg', 'xl'],\n};\n\nexport type QueryConfig = Record<string, string>;\n\nexport type ScreenConfig = {\n breakpoints: ResponsiveConfig;\n devices: DeviceConfig;\n mediaQueries: QueryConfig;\n};\n\nexport const ResponsiveContext = createContext<ScreenConfig>({\n breakpoints: defaultBreakpointsConfig,\n devices: defaultDeviceConfig,\n mediaQueries: getMediaQueries(defaultBreakpointsConfig),\n});\n\nexport const useResponsiveContext = () => useContext(ResponsiveContext);\n\nexport const ResponsiveProvider = ({\n breakpoints = defaultBreakpointsConfig,\n devices = defaultDeviceConfig,\n children,\n}: {\n breakpoints?: ResponsiveConfig;\n devices?: DeviceConfig;\n children?: ReactNode;\n}): React.ReactElement => {\n return (\n <ResponsiveContext.Provider\n value={{\n breakpoints,\n devices,\n mediaQueries: getMediaQueries(breakpoints),\n }}\n >\n {children}\n </ResponsiveContext.Provider>\n );\n};\n","// constants.ts\nimport { CSSProperties } from 'react';\n\n// List of numeric properties that don't need 'px' suffix\nexport const NumberProps = new Set<string>([\n 'numberOfLines',\n 'fontWeight',\n 'timeStamp',\n 'flex',\n 'flexGrow',\n 'flexShrink',\n 'order',\n 'zIndex',\n 'aspectRatio',\n 'shadowOpacity',\n 'shadowRadius',\n 'scale',\n 'opacity',\n 'min',\n 'max',\n 'now',\n]);\n\n// Keys to exclude when passing props to the component\nexport const excludedKeys = new Set<string>([\n 'on',\n 'shadow',\n 'only',\n 'media',\n 'css',\n 'size',\n 'paddingHorizontal',\n 'paddingVertical',\n 'marginHorizontal',\n 'marginVertical',\n 'animate',\n // Add more styling props here if needed\n]);\n\n// Keys to exclude when passing props to the component\nexport const extraKeys = new Set<string>([\n 'on',\n 'shadow',\n 'only',\n 'media',\n 'css',\n // Add more styling props here if needed\n]);\n\nexport const includeKeys = new Set<string>(['src', 'alt', 'style', 'as']);\n\n// Type definitions for animation props\nexport interface AnimationProps {\n from: CSSProperties;\n enter: CSSProperties;\n leave?: CSSProperties;\n duration?: string;\n timingFunction?: string;\n delay?: string;\n iterationCount?: string | number;\n direction?: string;\n fillMode?: string;\n playState?: string;\n}\n","// styleHelpers.ts\nimport { NumberProps } from './constants';\n// Excluded keys imported from constants.ts\n// import { excludedKeys } from './constants';\n\nexport const StyleProps = [\n 'alignContent',\n 'alignItems',\n 'alignSelf',\n 'alignmentBaseline',\n 'all',\n 'animation',\n 'animationDelay',\n 'animationDirection',\n 'animationDuration',\n 'animationFillMode',\n 'animationIterationCount',\n 'animationName',\n 'animationPlayState',\n 'animationTimingFunction',\n 'appearance',\n 'backdropFilter',\n 'backfaceVisibility',\n 'background',\n 'backgroundAttachment',\n 'backgroundBlendMode',\n 'backgroundClip',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundOrigin',\n 'backgroundPosition',\n 'backgroundPositionX',\n 'backgroundPositionY',\n 'backgroundRepeat',\n 'backgroundRepeatX',\n 'backgroundRepeatY',\n 'backgroundSize',\n 'baselineShift',\n 'blockSize',\n 'border',\n 'borderBlockEnd',\n 'borderBlockEndColor',\n 'borderBlockEndStyle',\n 'borderBlockEndWidth',\n 'borderBlockStart',\n 'borderBlockStartColor',\n 'borderBlockStartStyle',\n 'borderBlockStartWidth',\n 'borderBottom',\n 'borderBottomColor',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderBottomStyle',\n 'borderBottomWidth',\n 'borderCollapse',\n 'borderColor',\n 'borderImage',\n 'borderImageOutset',\n 'borderImageRepeat',\n 'borderImageSlice',\n 'borderImageSource',\n 'borderImageWidth',\n 'borderInlineEnd',\n 'borderInlineEndColor',\n 'borderInlineEndStyle',\n 'borderInlineEndWidth',\n 'borderInlineStart',\n 'borderInlineStartColor',\n 'borderInlineStartStyle',\n 'borderInlineStartWidth',\n 'borderLeft',\n 'borderLeftColor',\n 'borderLeftStyle',\n 'borderLeftWidth',\n 'borderRadius',\n 'borderRight',\n 'borderRightColor',\n 'borderRightStyle',\n 'borderRightWidth',\n 'borderSpacing',\n 'borderStyle',\n 'borderTop',\n 'borderTopColor',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderTopStyle',\n 'borderTopWidth',\n 'borderWidth',\n 'bottom',\n 'boxShadow',\n 'boxSizing',\n 'breakAfter',\n 'breakBefore',\n 'breakInside',\n 'bufferedRendering',\n 'captionSide',\n 'caretColor',\n 'clear',\n 'clip',\n 'clipPath',\n 'clipRule',\n 'color',\n 'colorInterpolation',\n 'colorInterpolationFilters',\n 'colorRendering',\n 'columnCount',\n 'columnFill',\n 'columnGap',\n 'columnRule',\n 'columnRuleColor',\n 'columnRuleStyle',\n 'columnRuleWidth',\n 'columnSpan',\n 'columnWidth',\n 'columns',\n 'contain',\n 'content',\n 'counterIncrement',\n 'counterReset',\n 'cursor',\n 'cx',\n 'cy',\n 'd',\n 'direction',\n 'display',\n 'dominantBaseline',\n 'emptyCells',\n 'fill',\n 'fillOpacity',\n 'fillRule',\n 'filter',\n 'flex',\n 'flexBasis',\n 'flexDirection',\n 'flexFlow',\n 'flexGrow',\n 'flexShrink',\n 'flexWrap',\n 'float',\n 'floodColor',\n 'floodOpacity',\n 'font',\n 'fontDisplay',\n 'fontFamily',\n 'fontFeatureSettings',\n 'fontKerning',\n 'fontSize',\n 'fontStretch',\n 'fontStyle',\n 'fontVariant',\n 'fontVariantCaps',\n 'fontVariantEastAsian',\n 'fontVariantLigatures',\n 'fontVariantNumeric',\n 'fontVariationSettings',\n 'fontWeight',\n 'gap',\n 'grid',\n 'gridArea',\n 'gridAutoColumns',\n 'gridAutoFlow',\n 'gridAutoRows',\n 'gridColumn',\n 'gridColumnEnd',\n 'gridColumnGap',\n 'gridColumnStart',\n 'gridGap',\n 'gridRow',\n 'gridRowEnd',\n 'gridRowGap',\n 'gridRowStart',\n 'gridTemplate',\n 'gridTemplateAreas',\n 'gridTemplateColumns',\n 'gridTemplateRows',\n 'height',\n 'hyphens',\n 'imageRendering',\n 'inlineSize',\n 'isolation',\n 'justifyContent',\n 'justifyItems',\n 'justifySelf',\n 'left',\n 'letterSpacing',\n 'lightingColor',\n 'lineBreak',\n 'lineHeight',\n 'listStyle',\n 'listStyleImage',\n 'listStylePosition',\n 'listStyleType',\n 'margin',\n 'marginBlockEnd',\n 'marginBlockStart',\n 'marginBottom',\n 'marginInlineEnd',\n 'marginInlineStart',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marker',\n 'markerEnd',\n 'markerMid',\n 'markerStart',\n 'mask',\n 'maskType',\n 'maxBlockSize',\n 'maxHeight',\n 'maxInlineSize',\n 'maxWidth',\n 'maxZoom',\n 'minBlockSize',\n 'minHeight',\n 'minInlineSize',\n 'minWidth',\n 'minZoom',\n 'mixBlendMode',\n 'objectFit',\n 'objectPosition',\n 'offset',\n 'offsetDistance',\n 'offsetPath',\n 'offsetRotate',\n 'opacity',\n 'order',\n 'orientation',\n 'orphans',\n 'outline',\n 'outlineColor',\n 'outlineOffset',\n 'outlineStyle',\n 'outlineWidth',\n 'overflow',\n 'overflowAnchor',\n 'overflowWrap',\n 'overflowX',\n 'overflowY',\n 'overscrollBehavior',\n 'overscrollBehaviorBlock',\n 'overscrollBehaviorInline',\n 'overscrollBehaviorX',\n 'overscrollBehaviorY',\n 'padding',\n 'paddingBlockEnd',\n 'paddingBlockStart',\n 'paddingBottom',\n 'paddingInlineEnd',\n 'paddingInlineStart',\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'page',\n 'pageBreakAfter',\n 'pageBreakBefore',\n 'pageBreakInside',\n 'paintOrder',\n 'perspective',\n 'perspectiveOrigin',\n 'placeContent',\n 'placeItems',\n 'placeSelf',\n 'pointerEvents',\n 'position',\n 'quotes',\n 'r',\n 'resize',\n 'right',\n 'rowGap',\n 'rx',\n 'ry',\n 'scrollBehavior',\n 'scrollMargin',\n 'scrollMarginBlock',\n 'scrollMarginBlockEnd',\n 'scrollMarginBlockStart',\n 'scrollMarginBottom',\n 'scrollMarginInline',\n 'scrollMarginInlineEnd',\n 'scrollMarginInlineStart',\n 'scrollMarginLeft',\n 'scrollMarginRight',\n 'scrollMarginTop',\n 'scrollPadding',\n 'scrollPaddingBlock',\n 'scrollPaddingBlockEnd',\n 'scrollPaddingBlockStart',\n 'scrollPaddingBottom',\n 'scrollPaddingInline',\n 'scrollPaddingInlineEnd',\n 'scrollPaddingInlineStart',\n 'scrollPaddingLeft',\n 'scrollPaddingRight',\n 'scrollPaddingTop',\n 'scrollSnapAlign',\n 'scrollSnapStop',\n 'scrollSnapType',\n 'shapeImageThreshold',\n 'shapeMargin',\n 'shapeOutside',\n 'shapeRendering',\n 'size',\n 'speak',\n 'src',\n 'stopColor',\n 'stopOpacity',\n 'stroke',\n 'strokeDasharray',\n 'strokeDashoffset',\n 'strokeLinecap',\n 'strokeLinejoin',\n 'strokeMiterlimit',\n 'strokeOpacity',\n 'strokeWidth',\n 'tabSize',\n 'tableLayout',\n 'textAlign',\n 'textAlignLast',\n 'textAnchor',\n 'textCombineUpright',\n 'textDecoration',\n 'textDecorationColor',\n 'textDecorationLine',\n 'textDecorationSkipInk',\n 'textDecorationStyle',\n 'textDecorationThickness',\n 'textEmphasis',\n 'textIndent',\n 'textOrientation',\n 'textOverflow',\n 'textRendering',\n 'textShadow',\n 'textSizeAdjust',\n 'textTransform',\n 'textUnderlinePosition',\n 'textJustify',\n 'top',\n 'touchAction',\n 'transform',\n 'transformBox',\n 'transformOrigin',\n 'transformStyle',\n 'transition',\n 'transitionDelay',\n 'transitionDuration',\n 'transitionProperty',\n 'transitionTimingFunction',\n 'unicodeBidi',\n 'unicodeRange',\n 'userSelect',\n 'userZoom',\n 'vectorEffect',\n 'verticalAlign',\n 'visibility',\n 'wrap',\n 'whiteSpace',\n 'widows',\n 'width',\n 'willChange',\n 'wordBreak',\n 'wordSpacing',\n 'wordWrap',\n 'writingMode',\n 'x',\n 'y',\n 'zIndex',\n 'zoom',\n 'alwaysBounceHorizontal',\n 'alwaysBounceVertical',\n 'automaticallyAdjustContentInsets',\n 'bounces',\n 'bouncesZoom',\n 'canCancelContentTouches',\n 'centerContent',\n 'contentLayoutStyle',\n 'contentInset',\n 'contentInsetAdjustmentBehavior',\n 'contentOffset',\n 'decelerationRate',\n 'directionalLockEnabled',\n 'disableIntervalMomentum',\n 'disableScrollViewPanResponder',\n 'endFillColor',\n 'fadingEdgeLength',\n 'horizontal',\n 'indicatorStyle',\n 'invertStickyHeaders',\n 'keyboardDismissMode',\n 'keyboardShouldPersistTaps',\n 'maintainVisibleContentPosition',\n 'maximumZoomScale',\n 'minimumZoomScale',\n 'nestedScrollEnabled',\n 'onContentSizeChange',\n 'onMomentumScrollBegin',\n 'onMomentumScrollEnd',\n 'onScroll',\n 'onScrollBeginDrag',\n 'onScrollEndDrag',\n 'onScrollToTop',\n 'overScrollMode',\n 'pagingEnabled',\n 'persistentScrollbar',\n 'pinchGestureEnabled',\n 'refreshControl',\n 'removeClippedSubviews',\n 'scrollBarThumbImage',\n 'scrollEnabled',\n 'scrollEventThrottle',\n 'scrollIndicatorInsets',\n 'scrollPerfTag',\n 'scrollToOverflowEnabled',\n 'scrollsToTop',\n 'DEPRECATED_sendUpdatedChildFrames',\n 'showsHorizontalScrollIndicator',\n 'showsVerticalScrollIndicator',\n 'snapToAlignment',\n 'snapToEnd',\n 'snapToInterval',\n 'snapToOffsets',\n 'snapToStart',\n 'stickyHeaderIndices',\n 'zoomScale',\n 'borderRightColor',\n 'backfaceVisibility',\n 'borderBottomColor',\n 'borderBottomEndRadius',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderBottomStartRadius',\n 'borderBottomWidth',\n 'borderColor',\n 'borderEndColor',\n 'borderLeftColor',\n 'borderLeftWidth',\n 'borderRadius',\n 'backgroundColor',\n 'borderRightWidth',\n 'borderStartColor',\n 'borderStyle',\n 'borderTopColor',\n 'borderTopEndRadius',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderTopStartRadius',\n 'borderTopWidth',\n 'borderWidth',\n 'border',\n 'opacity',\n 'elevation',\n 'shadowColor',\n 'shadowOffset',\n 'shadowOpacity',\n 'shadowRadius',\n 'alignContent',\n 'alignItems',\n 'alignSelf',\n 'aspectRatio',\n 'borderBottomWidth',\n 'borderEndWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderStartWidth',\n 'borderTopWidth',\n 'borderWidth',\n 'bottom',\n 'direction',\n 'display',\n 'end',\n 'flex',\n 'flexBasis',\n 'flexDirection',\n 'flexGrow',\n 'flexShrink',\n 'flexWrap',\n 'height',\n 'justifyContent',\n 'left',\n 'margin',\n 'marginBottom',\n 'marginEnd',\n 'marginHorizontal',\n 'marginLeft',\n 'marginRight',\n 'marginStart',\n 'marginTop',\n 'marginVertical',\n 'maxHeight',\n 'maxWidth',\n 'minHeight',\n 'minWidth',\n 'overflow',\n 'overflowX',\n 'overflowY',\n 'padding',\n 'paddingBottom',\n 'paddingEnd',\n 'paddingHorizontal',\n 'paddingLeft',\n 'paddingRight',\n 'paddingStart',\n 'paddingTop',\n 'paddingVertical',\n 'position',\n 'right',\n 'start',\n 'top',\n 'width',\n 'zIndex',\n 'borderTopRightRadius',\n 'backfaceVisibility',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderColor',\n 'borderRadius',\n 'borderTopLeftRadius',\n 'backgroundColor',\n 'borderWidth',\n 'opacity',\n 'overflow',\n 'overflowX',\n 'overflowY',\n 'resizeMode',\n 'tintColor',\n 'overlayColor',\n 'transform',\n 'transformMatrix',\n 'rotation',\n 'scaleX',\n 'scaleY',\n 'translateX',\n 'translateY',\n 'perspective',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'scale',\n 'skewX',\n 'skewY',\n 'testID',\n 'decomposedMatrix',\n 'gridRowStart',\n 'gridRowEnd',\n 'gridColumnStart',\n 'gridColumnEnd',\n 'lineClamp',\n 'writingMode',\n 'objectFit',\n 'objectPosition',\n 'placeItems',\n 'placeSelf',\n];\n\nexport const StyledProps = new Set(StyleProps);\n\nconst nonStyleAttributes = new Set(['length', 'parentRule', 'src']);\n\n// Function to set the size of the element\nexport const setSize = (\n newSize: string | number,\n styleProps: Record<string, any>\n) => {\n styleProps.height = styleProps.width = newSize; // Set height and width\n};\n\n// Function to convert style object to CSS string\nexport const styleObjectToCss = (styleObj: Record<string, any>): string => {\n return Object.entries(styleObj)\n .map(([key, value]) => `${toKebabCase(key)}: ${value};`)\n .join(' ');\n};\n\n// Function to convert camelCase to kebab-case\nexport const toKebabCase = (str: string): string =>\n str.replace(/([A-Z])/g, (match) => '-' + match.toLowerCase());\n\n// // Function to check if a property is a style prop\n// export const isStyleProp = (prop: string): boolean => {\n// // Implement your logic to determine if a prop is a style prop\n// // For simplicity, we assume all props not in excludedKeys are style props\n// return !excludedKeys.has(prop);\n// };\n\nexport const isStyleProp = (property: string): boolean => {\n return StyledProps.has(property) || nonStyleAttributes.has(property);\n};\n\n// Function to process and normalize style properties\nexport const processStyleProperty = (\n property: string,\n value: any,\n getColor: (color: string) => string\n): string | number => {\n if (typeof value === 'number' && !NumberProps.has(property)) {\n return `${value}px`;\n } else if (property.toLowerCase().includes('color')) {\n return getColor(value);\n } else {\n return value;\n }\n};\n","export type Shadow = {\n shadowColor: string;\n shadowOffset: {\n width: number;\n height: number;\n };\n shadowOpacity: number;\n shadowRadius: number;\n};\n\nexport const Shadows: Record<number, Shadow> = {\n 0: {\n shadowColor: '#000',\n shadowOffset: {\n width: 1,\n height: 2,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n },\n 1: {\n shadowColor: '#000',\n shadowOffset: {\n width: 2,\n height: 2,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n },\n 2: {\n shadowColor: '#000',\n shadowOffset: {\n width: 3,\n height: 3,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n },\n 3: {\n shadowColor: '#000',\n shadowOffset: {\n width: 4,\n height: 4,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n },\n 4: {\n shadowColor: '#000',\n shadowOffset: {\n width: 5,\n height: 5,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n },\n 5: {\n shadowColor: '#000',\n shadowOffset: {\n width: 6,\n height: 6,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n },\n 6: {\n shadowColor: '#000',\n shadowOffset: {\n width: 7,\n height: 7,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n },\n 7: {\n shadowColor: '#000',\n shadowOffset: {\n width: 8,\n height: 8,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n },\n 8: {\n shadowColor: '#000',\n shadowOffset: {\n width: 9,\n height: 9,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n },\n 9: {\n shadowColor: '#000',\n shadowOffset: {\n width: 10,\n height: 10,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n },\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n// animationHelpers.ts\nimport { styleObjectToCss } from './style';\n\nlet keyframesCounter = 0;\nconst keyframesCache = new Map<string, string>();\n\nexport const generateKeyframes = (\n animation: any\n): { keyframesName: string; keyframes: string } => {\n // Exclure les propriétés qui ne font pas partie des keyframes\n const {\n duration,\n timingFunction,\n delay,\n iterationCount,\n direction,\n fillMode,\n playState,\n ...keyframesDef\n } = animation;\n\n // Générer une clé pour le cache basée sur les keyframes\n const animationConfigString = JSON.stringify(keyframesDef);\n\n if (keyframesCache.has(animationConfigString)) {\n const keyframesName = keyframesCache.get(animationConfigString)!;\n return { keyframesName, keyframes: '' }; // Les keyframes existent déjà\n }\n\n const keyframesName = `animation-${keyframesCounter++}`;\n keyframesCache.set(animationConfigString, keyframesName);\n\n const keyframesContent: string[] = [];\n\n // Trier les clés pour assurer un ordre cohérent\n const keyframeKeys = Object.keys(keyframesDef).sort((a, b) => {\n const getPercentage = (key: string): number => {\n if (key === 'from') return 0;\n if (key === 'to' || key === 'enter') return 100;\n return parseInt(key.replace('%', ''), 10);\n };\n return getPercentage(a) - getPercentage(b);\n });\n\n keyframeKeys.forEach((key) => {\n const cssKey = key === 'enter' ? 'to' : key; // Remplacer 'enter' par 'to'\n const styles = keyframesDef[key];\n keyframesContent.push(`${cssKey} { ${styleObjectToCss(styles)} }`);\n });\n\n const keyframes = `\n @keyframes ${keyframesName} {\n ${keyframesContent.join('\\n')}\n }\n `;\n\n return { keyframesName, keyframes };\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable prefer-const */\nimport { Shadows } from './shadow';\nimport Color from 'color-convert';\nimport { generateKeyframes } from './animation';\nimport { isStyleProp, StyleProps } from './style';\nimport { CssProps } from '../components/Element';\n\n// utils/UtilityClassManager.ts\ntype StyleContext = 'base' | 'pseudo' | 'media';\n\nclass UtilityClassManager {\n private styleSheet: CSSStyleSheet | null = null;\n private classCache: Map<string, string> = new Map();\n private maxCacheSize: number;\n private propertyShorthand: Record<string, string>;\n\n constructor(\n propertyShorthand: Record<string, string>,\n maxCacheSize: number = 10000\n ) {\n this.propertyShorthand = propertyShorthand;\n this.maxCacheSize = maxCacheSize;\n this.initStyleSheet();\n }\n\n private initStyleSheet() {\n if (typeof document !== 'undefined') {\n let styleTag = document.getElementById(\n 'utility-classes'\n ) as HTMLStyleElement;\n if (!styleTag) {\n styleTag = document.createElement('style');\n styleTag.id = 'utility-classes';\n document.head.appendChild(styleTag);\n }\n this.styleSheet = styleTag.sheet as CSSStyleSheet;\n }\n }\n\n private escapeClassName(className: string): string {\n return className.replace(/:/g, '\\\\:');\n }\n\n injectRule(cssRule: string) {\n if (this.styleSheet) {\n try {\n const existingRules = Array.from(this.styleSheet.cssRules).map(\n (rule) => rule.cssText\n );\n if (!existingRules.includes(cssRule)) {\n this.styleSheet.insertRule(cssRule, this.styleSheet.cssRules.length);\n }\n } catch (e) {\n console.error(\n `Erreur lors de l'insertion de la règle CSS: \"${cssRule}\"`,\n e\n );\n }\n }\n }\n\n private addToCache(key: string, className: string) {\n if (this.classCache.size >= this.maxCacheSize) {\n const firstKey = this.classCache.keys().next().value;\n this.classCache.delete(firstKey);\n }\n this.classCache.set(key, className);\n }\n\n /**\n * Génère un ou plusieurs noms de classes pour une propriété et une valeur donnée.\n * @param property La propriété CSS (ex: 'padding', 'color').\n * @param value La valeur de la propriété (ex: '10px', '#fff').\n * @param context Le contexte de la classe ('base', 'pseudo', 'media').\n * @param modifier Le modificateur pour les pseudo-classes ou media queries (ex: 'hover', 'sm').\n * @param getColor Fonction pour convertir les couleurs si nécessaire.\n * @param mediaQueries Un tableau de media queries associées (utilisé uniquement pour le contexte 'media').\n * @returns Un tableau de noms de classes générés.\n */\n public getClassNames(\n property: string,\n value: any,\n context: StyleContext = 'base',\n modifier: string = '',\n getColor: (color: string) => string = (color) => color,\n mediaQueries: string[] = []\n ): string[] {\n let processedValue = value;\n\n // Si la propriété est une couleur, la convertir en valeur hexadécimale ou RGB\n if (property.toLowerCase().includes('color')) {\n processedValue = getColor(value);\n }\n\n let key = `${property}:${processedValue}`;\n if (modifier) {\n key = `${property}:${processedValue}|${modifier}`;\n }\n\n if (this.classCache.has(key)) {\n return [this.classCache.get(key)!];\n }\n\n // Générer un nom de classe unique avec le modificateur\n let shorthand = this.propertyShorthand[property];\n if (!shorthand) {\n shorthand = property.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n\n // Normaliser la valeur pour le nom de classe\n let normalizedValue = processedValue\n .toString()\n .replace(/\\./g, 'p') // Remplacer les points par 'p'\n .replace(/\\s+/g, '-') // Remplacer les espaces par '-'\n .replace(/[^a-zA-Z0-9\\-]/g, ''); // Supprimer les autres caractères spéciaux\n\n let baseClassName = `${shorthand}-${normalizedValue}`;\n\n // Préfixer les noms de classe pour les pseudo-classes et media queries\n let classNames: string[] = [];\n\n if (context === 'pseudo' && modifier) {\n // Pseudo-class : ajouter '-modifier' suffix\n const pseudoClassName = `${baseClassName}-${modifier}`;\n classNames.push(pseudoClassName);\n } else if (context === 'media' && modifier) {\n // Media query : générer une classe pour chaque media query associée\n mediaQueries.forEach(() => {\n const mediaClassName = `${modifier}:${baseClassName}`;\n classNames.push(mediaClassName);\n });\n } else {\n classNames.push(baseClassName);\n }\n\n // Convertir camelCase en kebab-case\n const cssProperty = property.replace(/([A-Z])/g, '-$1').toLowerCase();\n let valueForCss = processedValue;\n\n // Ajouter des unités si nécessaire\n if (typeof valueForCss === 'number') {\n const propertiesWithUnits = [\n 'width',\n 'height',\n 'padding',\n 'margin',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'padding-bottom',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-bottom',\n 'transform',\n 'transition',\n ];\n if (propertiesWithUnits.includes(cssProperty)) {\n valueForCss = `${valueForCss}px`;\n }\n }\n\n // Construire les règles CSS pour chaque classe générée\n classNames.forEach((className) => {\n const escapedClassName = this.escapeClassName(className);\n let cssRules: string[] = [];\n\n switch (context) {\n case 'base':\n cssRules.push(\n `.${escapedClassName} { ${cssProperty}: ${valueForCss}; }`\n );\n break;\n case 'pseudo':\n // Appliquer la pseudo-classe directement à la classe principale\n cssRules.push(\n `.${escapedClassName} { ${cssProperty}: ${valueForCss}; }`\n );\n break;\n case 'media':\n // Les media queries sont gérées séparément\n\n mediaQueries.forEach((mq) => {\n cssRules.push(\n `@media ${mq} { .${escapedClassName} { ${cssProperty}: ${valueForCss}; } }`\n );\n\n if ((window as any).isResponsive === true) {\n cssRules.push(\n `.${modifier} { .${escapedClassName} { ${cssProperty}: ${valueForCss}; } }`\n );\n }\n });\n\n break;\n default:\n cssRules.push(\n `.${escapedClassName} { ${cssProperty}: ${valueForCss}; }`\n );\n }\n\n console.log({ mediaQueries, cssRules, modifier });\n // Injecter les règles CSS\n cssRules.forEach((rule) => this.injectRule(rule));\n\n // Ajouter au cache\n this.addToCache(key, className);\n });\n\n return classNames;\n }\n}\n\n/**\n * Mappe un événement React à une pseudo-classe CSS.\n * @param event L'événement React (ex: 'hover', 'active')\n * @returns La pseudo-classe CSS correspondante ou null si non supporté.\n */\nconst mapEventToPseudo = (event: string): string | null => {\n const eventMap: Record<string, string> = {\n hover: 'hover',\n active: 'active',\n focus: 'focus',\n visited: 'visited',\n // Ajoutez d'autres mappings si nécessaire\n };\n return eventMap[event] || null;\n};\n\n/**\n * Génère des abréviations pour les propriétés CSS.\n * @param styledProps Tableau des propriétés CSS à abréger.\n * @returns Un objet mappant chaque propriété CSS à son abréviation.\n */\nfunction generatePropertyShorthand(\n styledProps: string[]\n): Record<string, string> {\n const propertyShorthand: Record<string, string> = {};\n const usedAbbreviations = new Set<string>();\n\n /**\n * Génère une abréviation unique pour une propriété CSS donnée.\n * @param prop La propriété CSS à abréger.\n * @returns L'abréviation unique générée.\n */\n function generateAbbreviation(prop: string): string {\n const first = prop[0].toLowerCase();\n const last = prop[prop.length - 1].toLowerCase();\n const middle = prop.slice(1, -1).replace(/[a-z]/g, '').toLowerCase();\n let abbr = first + middle + last;\n\n if (abbr.length < 2) {\n abbr = prop.slice(0, 2).toLowerCase();\n }\n\n let i = 0;\n let uniqueAbbr = abbr;\n while (usedAbbreviations.has(uniqueAbbr)) {\n i++;\n uniqueAbbr = abbr + prop.slice(-i, prop.length).toLowerCase();\n }\n\n usedAbbreviations.add(uniqueAbbr);\n return uniqueAbbr;\n }\n\n for (const prop of styledProps) {\n propertyShorthand[prop] = generateAbbreviation(prop);\n }\n\n return propertyShorthand;\n}\n\nconst propertyShorthand = generatePropertyShorthand(StyleProps);\nconst utilityClassManager = new UtilityClassManager(propertyShorthand);\n\nexport const extractUtilityClasses = (\n props: CssProps,\n getColor: (color: string) => string,\n mediaQueries: Record<string, string>,\n devices: Record<string, string[]>\n): string[] => {\n const classes: string[] = [];\n\n // Styles calculés basés sur les props\n const computedStyles: Record<string, any> = {};\n\n // Gestion de la taille de l'élément\n const size =\n props.height !== undefined &&\n props.width !== undefined &&\n props.height === props.width\n ? props.height\n : props.size\n ? props.size\n : null;\n\n if (size) {\n const sizeValue = typeof size === 'number' ? `${size}px` : size;\n computedStyles.width = sizeValue;\n computedStyles.height = sizeValue;\n }\n\n // Gestion du padding et de la marge\n if (props.paddingHorizontal) {\n const paddingH =\n typeof props.paddingHorizontal === 'number'\n ? `${props.paddingHorizontal}px`\n : props.paddingHorizontal;\n computedStyles.paddingLeft = paddingH;\n computedStyles.paddingRight = paddingH;\n }\n if (props.marginHorizontal) {\n const marginH =\n typeof props.marginHorizontal === 'number'\n ? `${props.marginHorizontal}px`\n : props.marginHorizontal;\n computedStyles.marginLeft = marginH;\n computedStyles.marginRight = marginH;\n }\n if (props.paddingVertical) {\n const paddingV =\n typeof props.paddingVertical === 'number'\n ? `${props.paddingVertical}px`\n : props.paddingVertical;\n computedStyles.paddingTop = paddingV;\n computedStyles.paddingBottom = paddingV;\n }\n if (props.marginVertical) {\n const marginV =\n typeof props.marginVertical === 'number'\n ? `${props.marginVertical}px`\n : props.marginVertical;\n computedStyles.marginTop = marginV;\n computedStyles.marginBottom = marginV;\n }\n\n // Application des ombres si spécifié\n if (props.shadow) {\n let shadowValue: number;\n if (\n typeof props.shadow === 'number' &&\n Shadows[props.shadow] !== undefined\n ) {\n shadowValue = props.shadow;\n } else if (typeof props.shadow === 'boolean') {\n shadowValue = props.shadow ? 2 : 0;\n } else {\n shadowValue = 2;\n }\n\n if (Shadows[shadowValue]) {\n const shadowColor = Shadows[shadowValue].shadowColor;\n const shadowOpacity = Shadows[shadowValue].shadowOpacity;\n const shadowOffset = Shadows[shadowValue].shadowOffset;\n const shadowRadius = Shadows[shadowValue].shadowRadius;\n\n // Convertir la couleur en rgba\n const rgb = Color.hex.rgb(shadowColor);\n const rgbaColor = `rgba(${rgb.join(',')}, ${shadowOpacity})`;\n\n computedStyles.boxShadow = `${shadowOffset.height}px ${shadowOffset.width}px ${shadowRadius}px ${rgbaColor}`;\n }\n }\n\n // Gestion des animations\n if (props.animate) {\n const animation = props.animate;\n const { keyframesName, keyframes } = generateKeyframes(animation);\n\n if (keyframes && typeof document !== 'undefined') {\n utilityClassManager.injectRule(keyframes);\n }\n\n computedStyles.animationName = keyframesName;\n if (animation.duration)\n computedStyles.animationDuration = animation.duration;\n if (animation.timingFunction)\n computedStyles.animationTimingFunction = animation.timingFunction;\n if (animation.delay) computedStyles.animationDelay = animation.delay;\n if (animation.iterationCount !== undefined)\n computedStyles.animationIterationCount = `${animation.iterationCount}`;\n if (animation.direction)\n computedStyles.animationDirection = animation.direction;\n if (animation.fillMode)\n computedStyles.animationFillMode = animation.fillMode;\n if (animation.playState)\n computedStyles.animationPlayState = animation.playState;\n }\n\n /**\n * Génère des classes utilitaires pour un ensemble de styles.\n * @param styles Les styles à transformer en classes utilitaires.\n * @param context Le contexte des styles ('base', 'pseudo', 'media').\n * @param modifier Le modificateur pour les pseudo-classes ou media queries.\n */\n const generateUtilityClasses = (\n styles: Record<string, any>,\n context: 'base' | 'pseudo' | 'media' = 'base',\n modifier: string = ''\n ) => {\n Object.keys(styles).forEach((property) => {\n const value = styles[property];\n let mediaQueriesForClass: string[] = [];\n\n if (context === 'media') {\n // 'modifier' peut être un breakpoint ou un dispositif\n if (mediaQueries[modifier]) {\n mediaQueriesForClass = [mediaQueries[modifier]];\n } else if (devices[modifier]) {\n mediaQueriesForClass = devices[modifier]\n .map((mq) => mediaQueries[mq])\n .filter((mq) => mq); // Filtrer les media queries valides\n }\n }\n\n const classNames = utilityClassManager.getClassNames(\n property,\n value,\n context,\n modifier,\n getColor,\n mediaQueriesForClass\n );\n\n classes.push(...classNames);\n });\n };\n\n // Générer des classes utilitaires pour les styles calculés\n generateUtilityClasses(computedStyles, 'base');\n\n // Parcourir toutes les propriétés de style et générer des classes utilitaires\n Object.keys(props).forEach((property) => {\n if (\n property !== 'style' &&\n (isStyleProp(property) || ['on', 'media'].includes(property))\n ) {\n const value = props[property];\n\n if (typeof value === 'object' && value !== null) {\n if (property === 'on') {\n // Styles liés aux événements (pseudo-classes)\n Object.keys(value).forEach((event) => {\n const eventStyles = value[event];\n // Séparer les propriétés de transition et les autres propriétés\n const transitionStyles: Record<string, any> = {};\n const nonTransitionStyles: Record<string, any> = {};\n\n Object.keys(eventStyles).forEach((prop) => {\n if (prop === 'transition') {\n transitionStyles[prop] = eventStyles[prop];\n } else {\n nonTransitionStyles[prop] = eventStyles[prop];\n }\n });\n\n // Appliquer les transitions aux styles de base\n if (Object.keys(transitionStyles).length > 0) {\n generateUtilityClasses(transitionStyles, 'base');\n }\n\n // Générer les classes pour les pseudo-classes\n if (Object.keys(nonTransitionStyles).length > 0) {\n const pseudo = mapEventToPseudo(event);\n if (pseudo) {\n generateUtilityClasses(nonTransitionStyles, 'pseudo', pseudo);\n }\n }\n });\n } else if (property === 'media') {\n // Styles conditionnels basés sur les media queries ou devices\n Object.keys(value).forEach((screenOrDevice) => {\n const mediaStyles = value[screenOrDevice];\n generateUtilityClasses(mediaStyles, 'media', screenOrDevice);\n });\n }\n } else {\n // Générer une classe utilitaire pour cette propriété et valeur\n const classNames = utilityClassManager.getClassNames(\n property,\n value,\n 'base',\n '',\n getColor\n );\n classes.push(...classNames);\n }\n }\n });\n\n return classes;\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable prefer-const */\n// Element.tsx\nimport React, { CSSProperties, useMemo } from 'react';\nimport { useTheme } from '../providers/Theme';\nimport { useResponsiveContext } from '../providers/Responsive';\n\nimport { isStyleProp } from '../utils/style';\nimport { AnimationProps, excludedKeys, includeKeys } from '../utils/constants';\nimport { extractUtilityClasses } from '../utils/cssClass';\nimport { Shadow } from '../utils/shadow';\n\nexport interface ElementProps extends CssProps {\n on?: Record<string, CssProps>;\n media?: Record<string, CssProps>;\n only?: string[];\n css?: CSSProperties;\n}\n\nexport interface CssProps {\n children?: React.ReactNode;\n size?: number;\n paddingHorizontal?: number | string;\n marginHorizontal?: number | string;\n paddingVertical?: number | string;\n marginVertical?: number | string;\n shadow?: boolean | number | Shadow;\n style?: CSSProperties;\n animate?: AnimationProps;\n onPress?: () => void;\n as?: keyof JSX.IntrinsicElements;\n [key: string]: any;\n}\n\nexport const Element: React.FC<ElementProps> = React.memo((props) => {\n const { onPress, ...rest } = props;\n const { getColor } = useTheme();\n const { mediaQueries, devices } = useResponsiveContext();\n\n // Extraire les classes utilitaires\n const utilityClasses = useMemo(\n () => extractUtilityClasses(rest, getColor, mediaQueries, devices),\n [rest, getColor, mediaQueries, devices]\n );\n\n // Gérer les événements\n const newProps: any = {};\n if (onPress) {\n newProps.onClick = onPress;\n }\n\n // Ajouter les classes utilitaires\n if (utilityClasses.length > 0) {\n newProps.className = utilityClasses.join(' ');\n }\n\n // Ajouter le reste des props qui ne sont pas des styles\n const { style, children, ...otherProps } = rest;\n Object.keys(otherProps).forEach((key) => {\n if ((!excludedKeys.has(key) && !isStyleProp(key)) || includeKeys.has(key)) {\n newProps[key] = otherProps[key];\n }\n });\n\n // Ajouter les styles inline s'il y en a\n if (style) {\n newProps.style = style;\n }\n\n // Définir le composant HTML\n const Component = newProps.as || 'div';\n delete newProps.as;\n\n return <Component {...newProps}>{children}</Component>;\n});\n","import React from 'react';\nimport { Element, ElementProps } from './Element';\n\nimport { ViewStyleProps } from '../types/style';\nimport { CSSProperties } from 'react';\n\ninterface ScrollProps extends ViewProps {\n // Définir des props spécifiques pour Scroll si nécessaire\n}\n\ninterface SpanProps extends Omit<ViewProps, 'as'> {\n // Définir des props spécifiques pour Span si nécessaire\n}\n\nexport interface ViewProps\n extends Omit<\n ViewStyleProps,\n 'children' | 'translate' | 'style' | 'pointerEvents'\n >,\n Omit<CSSProperties, 'translate' | 'animation'>,\n ElementProps {\n onPress?: (..._args: any) => void;\n}\n\nexport const View: React.FC<ViewProps> = React.memo((props) => (\n <Element {...props} />\n));\n\nexport const Div = View;\n\nexport const SafeArea = View;\n\nexport const Scroll: React.FC<ScrollProps> = React.memo((props) => (\n <View overflow={'auto'} {...props} />\n));\n\nexport const Span: React.FC<SpanProps> = React.memo((props) => (\n <Element {...props} as=\"span\" />\n));\n","import React from 'react';\nimport { CSSProperties } from 'react';\nimport { Element, ElementProps } from './Element';\nimport { ImageStyleProps } from '../types/style';\n\nexport interface ImageProps\n extends Omit<ImageStyleProps, 'children' | 'style' | 'pointerEvents'>,\n Omit<\n Partial<HTMLImageElement>,\n | 'width'\n | 'height'\n | 'children'\n | 'translate'\n | 'target'\n | 'border'\n | 'animate'\n | 'draggable'\n | 'style'\n >,\n Omit<CSSProperties, 'animation'>,\n ElementProps {}\n\nexport const Image = React.memo((props: ImageProps) => (\n <Element {...props} as=\"img\" />\n));\n","import React from 'react';\nimport { CSSProperties } from 'react';\nimport { Element, ElementProps } from './Element';\nimport { TextStyleProps } from '../types/style';\n\nexport interface TextProps\n extends Omit<\n TextStyleProps,\n 'children' | 'style' | 'onPress' | 'pointerEvents'\n >,\n Omit<CSSProperties, 'animation'>,\n ElementProps {\n toUpperCase?: boolean;\n}\n\nexport const Text = React.memo((props: TextProps) => {\n return <Element {...props} />;\n});\n","import React from 'react';\nimport { Element, ElementProps } from './Element';\nimport { ViewStyleProps } from '../types/style';\nimport { CSSProperties } from 'react';\n\n// Common props pour éviter la répétition\ninterface CommonProps\n extends Omit<ViewStyleProps, 'children' | 'style' | 'pointerEvents'> {}\n\n// Props pour le composant Form\nexport interface FormProps\n extends CommonProps,\n Omit<\n Partial<HTMLFormElement>,\n | 'width'\n | 'height'\n | 'children'\n | 'translate'\n | 'target'\n | 'border'\n | 'draggable'\n >,\n CSSProperties,\n ElementProps {}\n\n// Props pour le composant Button\nexport interface ButtonProps\n extends CommonProps,\n Omit<\n Partial<HTMLButtonElement>,\n | 'width'\n | 'height'\n | 'children'\n | 'translate'\n | 'type'\n | 'border'\n | 'animate'\n | 'style'\n | 'draggable'\n >,\n Omit<CSSProperties, 'animation'>,\n ElementProps {\n children?: React.ReactNode;\n // ... autres props ...\n onClick?: (..._args: any) => void;\n // ... autres props ...\n}\n\n// Props pour le composant Input\nexport interface InputProps\n extends ElementProps,\n CommonProps,\n Omit<\n Partial<HTMLInputElement>,\n 'width' | 'height' | 'animate' | 'style' | 'children'\n >,\n Omit<CSSProperties, 'style' | 'dir' | 'translate'> {}\n\n// Utilisation de React.memo pour une meilleure performance\nexport const Form = React.memo((props: FormProps) => (\n <Element {...props} as=\"form\" />\n));\n\nexport const Input = React.memo((props: InputProps) => (\n <Element {...props} as=\"input\" />\n));\n\nexport const Button = React.memo((props: ButtonProps) => (\n <Element {...props} as=\"button\" />\n));\n","// animations.ts\n\nexport const fadeIn = (duration = '1s', timingFunction = 'ease') => ({\n from: { opacity: 0 },\n enter: { opacity: 1 },\n duration,\n timingFunction,\n});\n\nexport const fadeOut = (duration = '1s', timingFunction = 'ease') => ({\n from: { opacity: 1 },\n enter: { opacity: 0 },\n duration,\n timingFunction,\n});\n\nexport const slideInLeft = (\n duration = '0.5s',\n timingFunction = 'ease-out'\n) => ({\n from: { transform: 'translateX(-100%)' },\n enter: { transform: 'translateX(0)' },\n duration,\n timingFunction,\n});\n\nexport const slideInRight = (\n duration = '0.5s',\n timingFunction = 'ease-out'\n) => ({\n from: { transform: 'translateX(100%)' },\n enter: { transform: 'translateX(0)' },\n duration,\n timingFunction,\n});\n\nexport const slideInDown = (\n duration = '0.5s',\n timingFunction = 'ease-out'\n) => ({\n from: { transform: 'translateY(-100%)' },\n enter: { transform: 'translateY(0)' },\n duration,\n timingFunction,\n});\n\nexport const slideInUp = (duration = '0.5s', timingFunction = 'ease-out') => ({\n from: { transform: 'translateY(100%)' },\n enter: { transform: 'translateY(0)' },\n duration,\n timingFunction,\n});\n\nexport const bounce = (\n duration = '2s',\n timingFunction = 'ease',\n iterationCount = 'infinite'\n) => ({\n from: { transform: 'translateY(0)' },\n '20%': { transform: 'translateY(-30px)' },\n '40%': { transform: 'translateY(0)' },\n '60%': { transform: 'translateY(-15px)' },\n '80%': { transform: 'translateY(0)' },\n enter: { transform: 'translateY(0)' },\n duration,\n timingFunction,\n iterationCount,\n});\n\nexport const rotate = (\n duration = '1s',\n timingFunction = 'linear',\n iterationCount = 'infinite'\n) => ({\n from: { transform: 'rotate(0deg)' },\n enter: { transform: 'rotate(360deg)' },\n duration,\n timingFunction,\n iterationCount,\n});\n\nexport const pulse = (\n duration = '1s',\n timingFunction = 'ease-in-out',\n iterationCount = 'infinite'\n) => ({\n from: { transform: 'scale(1)' },\n '50%': { transform: 'scale(1.05)' },\n enter: { transform: 'scale(1)' },\n duration,\n timingFunction,\n iterationCount,\n});\n\nexport const zoomIn = (duration = '0.5s', timingFunction = 'ease-out') => ({\n from: { transform: 'scale(0)' },\n enter: { transform: 'scale(1)' },\n duration,\n timingFunction,\n});\n\nexport const zoomOut = (duration = '0.5s', timingFunction = 'ease-out') => ({\n from: { transform: 'scale(1)' },\n enter: { transform: 'scale(0)' },\n duration,\n timingFunction,\n});\n\nexport const flash = (duration = '1s', iterationCount = 'infinite') => ({\n from: { opacity: 1 },\n '50%': { opacity: 0 },\n enter: { opacity: 1 },\n duration,\n iterationCount,\n});\n\nexport const shake = (duration = '0.5s', iterationCount = 'infinite') => ({\n from: { transform: 'translateX(0)' },\n '10%': { transform: 'translateX(-10px)' },\n '20%': { transform: 'translateX(10px)' },\n '30%': { transform: 'translateX(-10px)' },\n '40%': { transform: 'translateX(10px)' },\n '50%': { transform: 'translateX(-10px)' },\n '60%': { transform: 'translateX(10px)' },\n '70%': { transform: 'translateX(-10px)' },\n '80%': { transform: 'translateX(10px)' },\n '90%': { transform: 'translateX(-10px)' },\n enter: { transform: 'translateX(0)' },\n duration,\n iterationCount,\n});\n\nexport const swing = (duration = '1s', iterationCount = 'infinite') => ({\n from: { transform: 'rotate(0deg)' },\n '20%': { transform: 'rotate(15deg)' },\n '40%': { transform: 'rotate(-10deg)' },\n '60%': { transform: 'rotate(5deg)' },\n '80%': { transform: 'rotate(-5deg)' },\n enter: { transform: 'rotate(0deg)' },\n duration,\n iterationCount,\n});\n\nexport const rubberBand = (\n duration = '1s',\n timingFunction = 'ease-in-out'\n) => ({\n from: { transform: 'scale3d(1, 1, 1)' },\n '30%': { transform: 'scale3d(1.25, 0.75, 1)' },\n '40%': { transform: 'scale3d(0.75, 1.25, 1)' },\n '50%': { transform: 'scale3d(1.15, 0.85, 1)' },\n '65%': { transform: 'scale3d(0.95, 1.05, 1)' },\n '75%': { transform: 'scale3d(1.05, 0.95, 1)' },\n enter: { transform: 'scale3d(1, 1, 1)' },\n duration,\n timingFunction,\n});\n\nexport const wobble = (duration = '1s') => ({\n from: { transform: 'translateX(0%)' },\n '15%': { transform: 'translateX(-25%) rotate(-5deg)' },\n '30%': { transform: 'translateX(20%) rotate(3deg)' },\n '45%': { transform: 'translateX(-15%) rotate(-3deg)' },\n '60%': { transform: 'translateX(10%) rotate(2deg)' },\n '75%': { transform: 'translateX(-5%) rotate(-1deg)' },\n enter: { transform: 'translateX(0%)' },\n duration,\n});\n\nexport const flip = (duration = '1s') => ({\n from: {\n transform: 'perspective(400px) rotateY(0deg)',\n },\n '40%': {\n transform: 'perspective(400px) rotateY(-180deg)',\n },\n enter: {\n transform: 'perspective(400px) rotateY(-360deg)',\n },\n duration,\n});\n\nexport const heartBeat = (duration = '1.3s', iterationCount = 'infinite') => ({\n from: { transform: 'scale(1)' },\n '14%': { transform: 'scale(1.3)' },\n '28%': { transform: 'scale(1)' },\n '42%': { transform: 'scale(1.3)' },\n '70%': { transform: 'scale(1)' },\n enter: { transform: 'scale(1)' },\n duration,\n iterationCount,\n});\n\nexport const rollIn = (duration = '1s') => ({\n from: {\n opacity: 0,\n transform: 'translateX(-100%) rotate(-120deg)',\n },\n enter: {\n opacity: 1,\n transform: 'translateX(0px) rotate(0deg)',\n },\n duration,\n});\n\nexport const rollOut = (duration = '1s') => ({\n from: {\n opacity: 1,\n transform: 'translateX(0px) rotate(0deg)',\n },\n enter: {\n opacity: 0,\n transform: 'translateX(100%) rotate(120deg)',\n },\n duration,\n});\n\nexport const lightSpeedIn = (duration = '1s', timingFunction = 'ease-out') => ({\n from: {\n transform: 'translateX(100%) skewX(-30deg)',\n opacity: 0,\n },\n '60%': {\n transform: 'skewX(20deg)',\n opacity: 1,\n },\n '80%': {\n transform: 'skewX(-5deg)',\n },\n enter: {\n transform: 'translateX(0)',\n opacity: 1,\n },\n duration,\n timingFunction,\n});\n\nexport const lightSpeedOut = (duration = '1s', timingFunction = 'ease-in') => ({\n from: {\n opacity: 1,\n },\n '20%': {\n opacity: 1,\n transform: 'translateX(-20%) skewX(20deg)',\n },\n enter: {\n opacity: 0,\n transform: 'translateX(-100%) skewX(30deg)',\n },\n duration,\n timingFunction,\n});\n\nexport const hinge = (duration = '2s', timingFunction = 'ease-in-out') => ({\n from: {\n transform: 'rotate(0deg)',\n transformOrigin: 'top left',\n opacity: 1,\n },\n '20%': {\n transform: 'rotate(80deg)',\n opacity: 1,\n },\n '40%': {\n transform: 'rotate(60deg)',\n opacity: 1,\n },\n '60%': {\n transform: 'rotate(80deg)',\n opacity: 1,\n },\n '80%': {\n transform: 'rotate(60deg)',\n opacity: 1,\n },\n enter: {\n transform: 'translateY(700px)',\n opacity: 0,\n },\n duration,\n timingFunction,\n});\n\nexport const jackInTheBox = (duration = '1s', timingFunction = 'ease') => ({\n from: {\n opacity: 0,\n transform: 'scale(0.1) rotate(30deg)',\n transformOrigin: 'center bottom',\n },\n '50%': {\n transform: 'rotate(-10deg)',\n },\n '70%': {\n transform: 'rotate(3deg)',\n },\n enter: {\n opacity: 1,\n transform: 'scale(1) rotate(0deg)',\n },\n duration,\n timingFunction,\n});\n\nexport const flipInX = (duration = '1s', timingFunction = 'ease-in') => ({\n from: {\n transform: 'perspective(400px) rotateX(90deg)',\n opacity: 0,\n },\n '40%': {\n transform: 'perspective(400px) rotateX(-10deg)',\n opacity: 1,\n },\n enter: {\n transform: 'perspective(400px) rotateX(0deg)',\n },\n duration,\n timingFunction,\n});\n\nexport const flipInY = (duration = '1s', timingFunction = 'ease-in') => ({\n from: {\n transform: 'perspective(400px) rotateY(90deg)',\n opacity: 0,\n },\n '40%': {\n transform: 'perspective(400px) rotateY(-10deg)',\n opacity: 1,\n },\n enter: {\n transform: 'perspective(400px) rotateY(0deg)',\n },\n duration,\n timingFunction,\n});\n\nexport const headShake = (duration = '1s', iterationCount = 'infinite') => ({\n from: {\n transform: 'translateX(0)',\n },\n '6.5%': {\n transform: 'translateX(-6px) rotateY(-9deg)',\n },\n '18.5%': {\n transform: 'translateX(5px) rotateY(7deg)',\n },\n '31.5%': {\n transform: 'translateX(-3px) rotateY(-5deg)',\n },\n '43.5%': {\n transform: 'translateX(2px) rotateY(3deg)',\n },\n '50%': {\n transform: 'translateX(0)',\n },\n duration,\n iterationCount,\n});\n\nexport const tada = (duration = '1s', iterationCount = 'infinite') => ({\n from: { transform: 'scale3d(1, 1, 1)', opacity: 1 },\n '10%, 20%': {\n transform: 'scale3d(0.9, 0.9, 0.9) rotate(-3deg)',\n },\n '30%, 50%, 70%, 90%': {\n transform: 'scale3d(1.1, 1.1, 1.1) rotate(3deg)',\n },\n '40%, 60%, 80%': {\n transform: 'scale3d(1.1, 1.1, 1.1) rotate(-3deg)',\n },\n enter: { transform: 'scale3d(1, 1, 1)', opacity: 1 },\n duration,\n iterationCount,\n});\n\nexport const jello = (duration = '1s', iterationCount = 'infinite') => ({\n from: { transform: 'none' },\n '11.1%': { transform: 'skewX(-12.5deg) skewY(-12.5deg)' },\n '22.2%': { transform: 'skewX(6.25deg) skewY(6.25deg)' },\n '33.3%': { transform: 'skewX(-3.125deg) skewY(-3.125deg)' },\n '44.4%': { transform: 'skewX(1.5625deg) skewY(1.5625deg)' },\n '55.5%': { transform: 'skewX(-0.78125deg) skewY(-0.78125deg)' },\n '66.6%': { transform: 'skewX(0.390625deg) skewY(0.390625deg)' },\n '77.7%': { transform: 'skewX(-0.1953125deg) skewY(-0.1953125deg)' },\n '88.8%': { transform: 'skewX(0.09765625deg) skewY(0.09765625deg)' },\n enter: { transform: 'none' },\n duration,\n iterationCount,\n});\n\nexport const fadeInDown = (duration = '1s', timingFunction = 'ease-out') => ({\n from: {\n opacity: 0,\n transform: 'translateY(-100%)',\n },\n enter: {\n opacity: 1,\n transform: 'translateY(0)',\n },\n duration,\n timingFunction,\n});\n\nexport const fadeInUp = (duration = '1s', timingFunction = 'ease-out') => ({\n from: {\n opacity: 0,\n transform: 'translateY(100%)',\n },\n enter: {\n opacity: 1,\n transform: 'translateY(0)',\n },\n duration,\n timingFunction,\n});\n\nexport const bounceIn = (duration = '0.75s', timingFunction = 'ease-in') => ({\n from: {\n opacity: 0,\n transform: 'scale(0.3)',\n },\n '50%': {\n opacity: 1,\n transform: 'scale(1.05)',\n },\n '70%': {\n transform: 'scale(0.9)',\n },\n enter: {\n transform: 'scale(1)',\n },\n duration,\n timingFunction,\n});\n\nexport const bounceOut = (duration = '0.75s', timingFunction = 'ease-out') => ({\n from: {\n transform: 'scale(1)',\n },\n '20%': {\n transform: 'scale(0.9)',\n },\n '50%, 55%': {\n opacity: 1,\n transform: 'scale(1.1)',\n },\n enter: {\n opacity: 0,\n transform: 'scale(0.3)',\n },\n duration,\n timingFunction,\n});\n\nexport const slideOutLeft = (\n duration = '0.5s',\n timingFunction = 'ease-in'\n) => ({\n from: {\n transform: 'translateX(0)',\n },\n enter: {\n transform: 'translateX(-100%)',\n },\n duration,\n timingFunction,\n});\n\nexport const slideOutRight = (\n duration = '0.5s',\n timingFunction = 'ease-in'\n) => ({\n from: {\n transform: 'translateX(0)',\n },\n enter: {\n transform: 'translateX(100%)',\n },\n duration,\n timingFunction,\n});\n\nexport const zoomInDown = (duration = '1s', timingFunction = 'ease-out') => ({\n from: {\n opacity: 0,\n transform: 'scale(0.1) translateY(-1000px)',\n },\n '60%': {\n opacity: 1,\n transform: 'scale(0.475) translateY(60px)',\n },\n enter: {\n transform: 'scale(1) translateY(0)',\n },\n duration,\n timingFunction,\n});\n\nexport const zoomOutUp = (duration = '1s', timingFunction = 'ease-in') => ({\n from: {\n opacity: 1,\n transform: 'scale(1) translateY(0)',\n },\n '40%': {\n opacity: 1,\n transform: 'scale(0.475) translateY(-60px)',\n },\n enter: {\n opacity: 0,\n transform: 'scale(0.1) translateY(-1000px)',\n },\n duration,\n timingFunction,\n});\n\nexport const backInDown = (duration = '1s', timingFunction = 'ease-in') => ({\n from: {\n opacity: 0.7,\n transform: 'translateY(-2000px) scaleY(2.5) scaleX(0.2)',\n },\n enter: {\n opacity: 1,\n transform: 'translateY(0) scaleY(1) scaleX(1)',\n },\n duration,\n timingFunction,\n});\n\nexport const backOutUp = (duration = '1s', timingFunction = 'ease-in') => ({\n from: {\n opacity: 1,\n transform: 'translateY(0)',\n },\n '80%': {\n opacity: 0.7,\n transform: 'translateY(-20px)',\n },\n enter: {\n opacity: 0,\n transform: 'translateY(-2000px)',\n },\n duration,\n timingFunction,\n});\n","export const Typography = {\n letterSpacings: {\n tighter: -0.08,\n tight: -0.4,\n normal: 0,\n wide: 0.4,\n wider: 0.8,\n widest: 1.6,\n },\n lineHeights: {\n xs: 10,\n sm: 12,\n md: 14,\n lg: 16,\n xl: 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 64,\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n extraBold: 800,\n black: 900,\n },\n fontSizes: {\n xs: 10,\n sm: 12,\n md: 14,\n lg: 16,\n xl: 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 64,\n },\n};\n","/**\n * whether in browser env\n */\nexport const isBrowser = (): boolean =>\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n\n/**\n * get window.g_initialProps\n */\nexport const getWindowInitialProps = () =>\n isBrowser() ? (window as any).g_initialProps : undefined;\n\n/**\n * whether SSR success in client\n */\nexport const isSSR = !isBrowser();\n\nexport function isDev() {\n let dev = false;\n\n if (isBrowser()) {\n dev = !(window.location.hostname.indexOf('localhost') === -1);\n }\n return dev;\n}\n\nexport function isProd() {\n if (isBrowser()) {\n if (window && window.location && window.location.hostname) {\n return (\n window.location.hostname.includes('localhost') ||\n window.location.hostname.includes('develop')\n );\n }\n }\n return false;\n}\n\nexport function isMobile() {\n return navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i);\n}\n","import { useEffect } from 'react';\nexport const useMount = (callback: () => void) => {\n useEffect(() => {\n callback();\n }, []);\n};\n","import { useState } from 'react';\nimport {\n useResponsiveContext,\n ScreenOrientation,\n} from '../providers/Responsive';\n\nimport { useMount } from './useMount';\n\nexport const createQuery = (keyScreen: string, query: string, set: any) => {\n const mql = window.matchMedia(query);\n const onChange = () => {\n if (!!mql.matches) {\n set(keyScreen);\n }\n };\n\n mql.addListener(onChange);\n if (!!mql.matches) {\n set(keyScreen);\n }\n\n return () => {\n mql.removeListener(onChange);\n };\n};\n\nexport const useResponsive = () => {\n const { breakpoints, devices, mediaQueries } = useResponsiveContext();\n const [screen, setScreen] = useState('xs');\n const [orientation, setOrientation] = useState(\n 'landscape' as ScreenOrientation\n );\n\n useMount(() => {\n for (const screenSize in mediaQueries) {\n createQuery(screenSize, mediaQueries[screenSize], setScreen);\n }\n createQuery(\n 'landscape',\n 'only screen and (orientation: landscape)',\n setOrientation\n );\n createQuery(\n 'portrait',\n 'only screen and (orientation: portrait)',\n setOrientation\n );\n });\n\n const on = (device: keyof typeof devices) => {\n return devices[device].includes(screen);\n };\n\n const is = (s: keyof typeof breakpoints) => {\n return s == screen;\n };\n\n return {\n breakpoints,\n devices,\n orientation,\n screen,\n on,\n is,\n };\n};\n"],"names":["palette","white","black","rose","pink","fuchsia","purple","violet","indigo","blue","lightBlue","cyan","teal","emerald","green","lime","yellow","amber","orange","red","warmGray","trueGray","gray","dark","coolGray","blueGray","defaultThemeMain","primary","secondary","success","error","warning","disabled","loading","defaultColors","magenta","grey","brown","navy","olive","maroon","gold","silver","beige","turquoise","coral","chocolate","skyBlue","plum","darkGreen","salmon","ThemeContext","createContext","getColor","name","colors","main","defaultPalette","theme","components","useTheme","useContext","deepMerge","target","source","merged","key","Object","prototype","hasOwnProperty","call","sourceValue","targetValue","Array","isArray","ThemeProvider","_ref","children","mergedTheme","mergedColors","startsWith","keys","split","value","i","length","undefined","console","warn","colorName","_","paletteName","variant","e","React","Provider","defaultBreakpointsConfig","xs","sm","md","lg","xl","getMediaQueries","b","sortedBreakpoints","map","breakpoint","min","max","sort","a","query","forEach","sizeScreen","mediaQuery","trim","defaultDeviceConfig","mobile","tablet","desktop","ResponsiveContext","breakpoints","devices","mediaQueries","useResponsiveContext","ResponsiveProvider","excludedKeys","Set","includeKeys","StyleProps","StyledProps","nonStyleAttributes","styleObjectToCss","styleObj","entries","toKebabCase","join","str","replace","match","toLowerCase","isStyleProp","property","has","Shadows","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","keyframesCounter","keyframesCache","Map","generateKeyframes","animation","duration","timingFunction","delay","iterationCount","direction","fillMode","playState","keyframesDef","animationConfigString","JSON","stringify","keyframesName","get","keyframes","set","keyframesContent","keyframeKeys","getPercentage","parseInt","cssKey","styles","push","UtilityClassManager","constructor","propertyShorthand","maxCacheSize","initStyleSheet","document","styleTag","getElementById","createElement","id","head","appendChild","styleSheet","sheet","escapeClassName","className","injectRule","cssRule","existingRules","from","cssRules","rule","cssText","includes","insertRule","addToCache","classCache","size","firstKey","next","delete","getClassNames","context","modifier","color","processedValue","shorthand","normalizedValue","toString","baseClassName","classNames","pseudoClassName","mediaClassName","cssProperty","valueForCss","propertiesWithUnits","escapedClassName","mq","window","isResponsive","log","mapEventToPseudo","event","eventMap","hover","active","focus","visited","generatePropertyShorthand","styledProps","usedAbbreviations","generateAbbreviation","prop","first","last","middle","slice","abbr","uniqueAbbr","add","utilityClassManager","extractUtilityClasses","props","classes","computedStyles","sizeValue","paddingHorizontal","paddingH","paddingLeft","paddingRight","marginHorizontal","marginH","marginLeft","marginRight","paddingVertical","paddingV","paddingTop","paddingBottom","marginVertical","marginV","marginTop","marginBottom","shadow","shadowValue","rgb","Color","hex","rgbaColor","boxShadow","animate","animationName","animationDuration","animationTimingFunction","animationDelay","animationIterationCount","animationDirection","animationFillMode","animationPlayState","generateUtilityClasses","mediaQueriesForClass","filter","eventStyles","transitionStyles","nonTransitionStyles","pseudo","screenOrDevice","mediaStyles","Element","memo","onPress","rest","utilityClasses","useMemo","newProps","onClick","style","otherProps","Component","as","View","Div","SafeArea","Scroll","overflow","Span","Image","Text","Form","Input","Button","fadeIn","opacity","enter","fadeOut","slideInLeft","transform","slideInRight","slideInDown","slideInUp","bounce","rotate","pulse","zoomIn","zoomOut","flash","shake","swing","rubberBand","wobble","flip","heartBeat","rollIn","rollOut","lightSpeedIn","lightSpeedOut","hinge","transformOrigin","jackInTheBox","flipInX","flipInY","headShake","tada","jello","fadeInDown","fadeInUp","bounceIn","bounceOut","slideOutLeft","slideOutRight","zoomInDown","zoomOutUp","backInDown","backOutUp","Typography","letterSpacings","tighter","tight","normal","wide","wider","widest","lineHeights","fontWeights","hairline","thin","light","medium","semiBold","bold","extraBold","fontSizes","isBrowser","getWindowInitialProps","g_initialProps","isSSR","isDev","dev","location","hostname","indexOf","isProd","isMobile","navigator","userAgent","useMount","callback","useEffect","createQuery","keyScreen","mql","matchMedia","onChange","matches","addListener","removeListener","useResponsive","screen","setScreen","useState","orientation","setOrientation","screenSize","on","device","is","s"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"appstudio.cjs.development.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|