app-studio 0.4.7 → 0.5.0

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.
@@ -818,10 +818,10 @@ class UtilityClassManager {
818
818
  processedValue = `${processedValue}px`;
819
819
  }
820
820
  }
821
- let formatedValue = processedValue.toString().split(' ').join('-');
822
- let key = `${property}:${formatedValue}`;
823
- if (modifier) {
824
- key = `${property}:${formatedValue}|${modifier}`;
821
+ let formattedValue = processedValue.toString().split(' ').join('-');
822
+ let key = `${property}:${formattedValue}`;
823
+ if (modifier && context !== 'base') {
824
+ key = `${property}:${formattedValue}|${context}:${modifier}`;
825
825
  }
826
826
  if (this.classCache.has(key)) {
827
827
  return [this.classCache.get(key)];
@@ -833,7 +833,7 @@ class UtilityClassManager {
833
833
  }
834
834
  // console.log({ shorthand, property, processedValue });
835
835
  // Normaliser la valeur pour le nom de classe
836
- let normalizedValue = formatedValue.toString().replace(/\./g, 'p') // Replace dots with 'p'
836
+ let normalizedValue = formattedValue.toString().replace(/\./g, 'p') // Replace dots with 'p'
837
837
  .replace(/\s+/g, '-') // Replace spaces with '-'
838
838
  .replace(/[^a-zA-Z0-9\-]/g, '') // Remove other special characters
839
839
  .replace(/%/g, 'pct') // Replace % with 'pct'
@@ -843,7 +843,7 @@ class UtilityClassManager {
843
843
  .replace(/rem/g, 'rem'); // Keep 'rem' as is
844
844
  let baseClassName = `${shorthand}-${normalizedValue}`;
845
845
  // Préfixer les noms de classe pour les pseudo-classes et media queries
846
- let classNames = [];
846
+ let classNames = [baseClassName]; // Utiliser le nom de classe de base
847
847
  if (context === 'pseudo' && modifier) {
848
848
  // Pseudo-class : ajouter '-modifier' suffix
849
849
  const pseudoClassName = `${baseClassName}-${modifier}`;
@@ -875,8 +875,8 @@ class UtilityClassManager {
875
875
  cssRules.push(`.${escapedClassName} { ${cssProperty}: ${valueForCss}; }`);
876
876
  break;
877
877
  case 'pseudo':
878
- // Appliquer la pseudo-classe directement à la classe principale
879
- cssRules.push(`.${escapedClassName} { ${cssProperty}: ${valueForCss}; }`);
878
+ // Appliquer le pseudo-sélecteur au sélecteur de classe
879
+ cssRules.push(`.${escapedClassName}:${modifier} { ${cssProperty}: ${valueForCss}; }`);
880
880
  break;
881
881
  case 'media':
882
882
  // Les media queries sont gérées séparément
@@ -1004,22 +1004,40 @@ const extractUtilityClasses = (props, getColor, mediaQueries, devices) => {
1004
1004
  }
1005
1005
  // Gestion des animations
1006
1006
  if (props.animate) {
1007
- const animation = props.animate;
1008
- const {
1009
- keyframesName,
1010
- keyframes
1011
- } = generateKeyframes(animation);
1012
- if (keyframes && typeof document !== 'undefined') {
1013
- utilityClassManager.injectRule(keyframes);
1014
- }
1015
- computedStyles.animationName = keyframesName;
1016
- if (animation.duration) computedStyles.animationDuration = animation.duration;
1017
- if (animation.timingFunction) computedStyles.animationTimingFunction = animation.timingFunction;
1018
- if (animation.delay) computedStyles.animationDelay = animation.delay;
1019
- if (animation.iterationCount !== undefined) computedStyles.animationIterationCount = `${animation.iterationCount}`;
1020
- if (animation.direction) computedStyles.animationDirection = animation.direction;
1021
- if (animation.fillMode) computedStyles.animationFillMode = animation.fillMode;
1022
- if (animation.playState) computedStyles.animationPlayState = animation.playState;
1007
+ const animations = Array.isArray(props.animate) ? props.animate : [props.animate];
1008
+ const animationNames = [];
1009
+ const animationDurations = [];
1010
+ const animationTimingFunctions = [];
1011
+ const animationDelays = [];
1012
+ const animationIterationCounts = [];
1013
+ const animationDirections = [];
1014
+ const animationFillModes = [];
1015
+ const animationPlayStates = [];
1016
+ animations.forEach(animation => {
1017
+ const {
1018
+ keyframesName,
1019
+ keyframes
1020
+ } = generateKeyframes(animation);
1021
+ if (keyframes && typeof document !== 'undefined') {
1022
+ utilityClassManager.injectRule(keyframes);
1023
+ }
1024
+ animationNames.push(keyframesName);
1025
+ animationDurations.push(animation.duration || '0s');
1026
+ animationTimingFunctions.push(animation.timingFunction || 'ease');
1027
+ animationDelays.push(animation.delay || '0s');
1028
+ animationIterationCounts.push(animation.iterationCount !== undefined ? `${animation.iterationCount}` : '1');
1029
+ animationDirections.push(animation.direction || 'normal');
1030
+ animationFillModes.push(animation.fillMode || 'none');
1031
+ animationPlayStates.push(animation.playState || 'running');
1032
+ });
1033
+ computedStyles.animationName = animationNames.join(', ');
1034
+ computedStyles.animationDuration = animationDurations.join(', ');
1035
+ computedStyles.animationTimingFunction = animationTimingFunctions.join(', ');
1036
+ computedStyles.animationDelay = animationDelays.join(', ');
1037
+ computedStyles.animationIterationCount = animationIterationCounts.join(', ');
1038
+ computedStyles.animationDirection = animationDirections.join(', ');
1039
+ computedStyles.animationFillMode = animationFillModes.join(', ');
1040
+ computedStyles.animationPlayState = animationPlayStates.join(', ');
1023
1041
  }
1024
1042
  /**
1025
1043
  * Génère des classes utilitaires pour un ensemble de styles.
@@ -1070,24 +1088,58 @@ const extractUtilityClasses = (props, getColor, mediaQueries, devices) => {
1070
1088
  Object.keys(value).forEach(event => {
1071
1089
  const eventStyles = value[event];
1072
1090
  // Séparer les propriétés de transition et les autres propriétés
1073
- const transitionStyles = {};
1074
- const nonTransitionStyles = {};
1075
- Object.keys(eventStyles).forEach(prop => {
1076
- if (prop === 'transition') {
1077
- transitionStyles[prop] = eventStyles[prop];
1078
- } else {
1079
- nonTransitionStyles[prop] = eventStyles[prop];
1080
- }
1081
- });
1082
- // Appliquer les transitions aux styles de base
1083
- if (Object.keys(transitionStyles).length > 0) {
1084
- generateUtilityClasses(transitionStyles, 'base');
1091
+ // Extraire 'animate' des styles d'événement
1092
+ const {
1093
+ animate,
1094
+ ...otherEventStyles
1095
+ } = eventStyles;
1096
+ // Gestion des animations dans les événements
1097
+ if (animate) {
1098
+ const animations = Array.isArray(animate) ? animate : [animate];
1099
+ const animationNames = [];
1100
+ const animationDurations = [];
1101
+ const animationTimingFunctions = [];
1102
+ const animationDelays = [];
1103
+ const animationIterationCounts = [];
1104
+ const animationDirections = [];
1105
+ const animationFillModes = [];
1106
+ const animationPlayStates = [];
1107
+ animations.forEach(animation => {
1108
+ const {
1109
+ keyframesName,
1110
+ keyframes
1111
+ } = generateKeyframes(animation);
1112
+ if (keyframes && typeof document !== 'undefined') {
1113
+ utilityClassManager.injectRule(keyframes);
1114
+ }
1115
+ animationNames.push(keyframesName);
1116
+ animationDurations.push(animation.duration || '0s');
1117
+ animationTimingFunctions.push(animation.timingFunction || 'ease');
1118
+ animationDelays.push(animation.delay || '0s');
1119
+ animationIterationCounts.push(animation.iterationCount !== undefined ? `${animation.iterationCount}` : '1');
1120
+ animationDirections.push(animation.direction || 'normal');
1121
+ animationFillModes.push(animation.fillMode || 'none');
1122
+ animationPlayStates.push(animation.playState || 'running');
1123
+ });
1124
+ // Créer un objet avec les propriétés d'animation
1125
+ const animationStyles = {
1126
+ animationName: animationNames.join(', '),
1127
+ animationDuration: animationDurations.join(', '),
1128
+ animationTimingFunction: animationTimingFunctions.join(', '),
1129
+ animationDelay: animationDelays.join(', '),
1130
+ animationIterationCount: animationIterationCounts.join(', '),
1131
+ animationDirection: animationDirections.join(', '),
1132
+ animationFillMode: animationFillModes.join(', '),
1133
+ animationPlayState: animationPlayStates.join(', ')
1134
+ };
1135
+ // Fusionner les styles d'animation avec les autres styles de l'événement
1136
+ Object.assign(otherEventStyles, animationStyles);
1085
1137
  }
1086
1138
  // Générer les classes pour les pseudo-classes
1087
- if (Object.keys(nonTransitionStyles).length > 0) {
1139
+ if (Object.keys(otherEventStyles).length > 0) {
1088
1140
  const pseudo = mapEventToPseudo(event);
1089
1141
  if (pseudo) {
1090
- generateUtilityClasses(nonTransitionStyles, 'pseudo', pseudo);
1142
+ generateUtilityClasses(otherEventStyles, 'pseudo', pseudo);
1091
1143
  }
1092
1144
  }
1093
1145
  });
@@ -1208,7 +1260,7 @@ const fadeIn = function (duration, timingFunction) {
1208
1260
  from: {
1209
1261
  opacity: 0
1210
1262
  },
1211
- enter: {
1263
+ to: {
1212
1264
  opacity: 1
1213
1265
  },
1214
1266
  duration,
@@ -1226,7 +1278,7 @@ const fadeOut = function (duration, timingFunction) {
1226
1278
  from: {
1227
1279
  opacity: 1
1228
1280
  },
1229
- enter: {
1281
+ to: {
1230
1282
  opacity: 0
1231
1283
  },
1232
1284
  duration,
@@ -1244,7 +1296,7 @@ const slideInLeft = function (duration, timingFunction) {
1244
1296
  from: {
1245
1297
  transform: 'translateX(-100%)'
1246
1298
  },
1247
- enter: {
1299
+ to: {
1248
1300
  transform: 'translateX(0)'
1249
1301
  },
1250
1302
  duration,
@@ -1262,7 +1314,7 @@ const slideInRight = function (duration, timingFunction) {
1262
1314
  from: {
1263
1315
  transform: 'translateX(100%)'
1264
1316
  },
1265
- enter: {
1317
+ to: {
1266
1318
  transform: 'translateX(0)'
1267
1319
  },
1268
1320
  duration,
@@ -1280,7 +1332,7 @@ const slideInDown = function (duration, timingFunction) {
1280
1332
  from: {
1281
1333
  transform: 'translateY(-100%)'
1282
1334
  },
1283
- enter: {
1335
+ to: {
1284
1336
  transform: 'translateY(0)'
1285
1337
  },
1286
1338
  duration,
@@ -1298,7 +1350,7 @@ const slideInUp = function (duration, timingFunction) {
1298
1350
  from: {
1299
1351
  transform: 'translateY(100%)'
1300
1352
  },
1301
- enter: {
1353
+ to: {
1302
1354
  transform: 'translateY(0)'
1303
1355
  },
1304
1356
  duration,
@@ -1331,7 +1383,7 @@ const bounce = function (duration, timingFunction, iterationCount) {
1331
1383
  '80%': {
1332
1384
  transform: 'translateY(0)'
1333
1385
  },
1334
- enter: {
1386
+ to: {
1335
1387
  transform: 'translateY(0)'
1336
1388
  },
1337
1389
  duration,
@@ -1353,7 +1405,7 @@ const rotate = function (duration, timingFunction, iterationCount) {
1353
1405
  from: {
1354
1406
  transform: 'rotate(0deg)'
1355
1407
  },
1356
- enter: {
1408
+ to: {
1357
1409
  transform: 'rotate(360deg)'
1358
1410
  },
1359
1411
  duration,
@@ -1378,7 +1430,7 @@ const pulse = function (duration, timingFunction, iterationCount) {
1378
1430
  '50%': {
1379
1431
  transform: 'scale(1.05)'
1380
1432
  },
1381
- enter: {
1433
+ to: {
1382
1434
  transform: 'scale(1)'
1383
1435
  },
1384
1436
  duration,
@@ -1397,7 +1449,7 @@ const zoomIn = function (duration, timingFunction) {
1397
1449
  from: {
1398
1450
  transform: 'scale(0)'
1399
1451
  },
1400
- enter: {
1452
+ to: {
1401
1453
  transform: 'scale(1)'
1402
1454
  },
1403
1455
  duration,
@@ -1415,7 +1467,7 @@ const zoomOut = function (duration, timingFunction) {
1415
1467
  from: {
1416
1468
  transform: 'scale(1)'
1417
1469
  },
1418
- enter: {
1470
+ to: {
1419
1471
  transform: 'scale(0)'
1420
1472
  },
1421
1473
  duration,
@@ -1436,7 +1488,7 @@ const flash = function (duration, iterationCount) {
1436
1488
  '50%': {
1437
1489
  opacity: 0
1438
1490
  },
1439
- enter: {
1491
+ to: {
1440
1492
  opacity: 1
1441
1493
  },
1442
1494
  duration,
@@ -1481,7 +1533,7 @@ const shake = function (duration, iterationCount) {
1481
1533
  '90%': {
1482
1534
  transform: 'translateX(-10px)'
1483
1535
  },
1484
- enter: {
1536
+ to: {
1485
1537
  transform: 'translateX(0)'
1486
1538
  },
1487
1539
  duration,
@@ -1511,7 +1563,7 @@ const swing = function (duration, iterationCount) {
1511
1563
  '80%': {
1512
1564
  transform: 'rotate(-5deg)'
1513
1565
  },
1514
- enter: {
1566
+ to: {
1515
1567
  transform: 'rotate(0deg)'
1516
1568
  },
1517
1569
  duration,
@@ -1544,7 +1596,7 @@ const rubberBand = function (duration, timingFunction) {
1544
1596
  '75%': {
1545
1597
  transform: 'scale3d(1.05, 0.95, 1)'
1546
1598
  },
1547
- enter: {
1599
+ to: {
1548
1600
  transform: 'scale3d(1, 1, 1)'
1549
1601
  },
1550
1602
  duration,
@@ -1574,7 +1626,7 @@ const wobble = function (duration) {
1574
1626
  '75%': {
1575
1627
  transform: 'translateX(-5%) rotate(-1deg)'
1576
1628
  },
1577
- enter: {
1629
+ to: {
1578
1630
  transform: 'translateX(0%)'
1579
1631
  },
1580
1632
  duration
@@ -1591,7 +1643,7 @@ const flip = function (duration) {
1591
1643
  '40%': {
1592
1644
  transform: 'perspective(400px) rotateY(-180deg)'
1593
1645
  },
1594
- enter: {
1646
+ to: {
1595
1647
  transform: 'perspective(400px) rotateY(-360deg)'
1596
1648
  },
1597
1649
  duration
@@ -1620,7 +1672,7 @@ const heartBeat = function (duration, iterationCount) {
1620
1672
  '70%': {
1621
1673
  transform: 'scale(1)'
1622
1674
  },
1623
- enter: {
1675
+ to: {
1624
1676
  transform: 'scale(1)'
1625
1677
  },
1626
1678
  duration,
@@ -1636,7 +1688,7 @@ const rollIn = function (duration) {
1636
1688
  opacity: 0,
1637
1689
  transform: 'translateX(-100%) rotate(-120deg)'
1638
1690
  },
1639
- enter: {
1691
+ to: {
1640
1692
  opacity: 1,
1641
1693
  transform: 'translateX(0px) rotate(0deg)'
1642
1694
  },
@@ -1652,7 +1704,7 @@ const rollOut = function (duration) {
1652
1704
  opacity: 1,
1653
1705
  transform: 'translateX(0px) rotate(0deg)'
1654
1706
  },
1655
- enter: {
1707
+ to: {
1656
1708
  opacity: 0,
1657
1709
  transform: 'translateX(100%) rotate(120deg)'
1658
1710
  },
@@ -1678,7 +1730,7 @@ const lightSpeedIn = function (duration, timingFunction) {
1678
1730
  '80%': {
1679
1731
  transform: 'skewX(-5deg)'
1680
1732
  },
1681
- enter: {
1733
+ to: {
1682
1734
  transform: 'translateX(0)',
1683
1735
  opacity: 1
1684
1736
  },
@@ -1701,7 +1753,7 @@ const lightSpeedOut = function (duration, timingFunction) {
1701
1753
  opacity: 1,
1702
1754
  transform: 'translateX(-20%) skewX(20deg)'
1703
1755
  },
1704
- enter: {
1756
+ to: {
1705
1757
  opacity: 0,
1706
1758
  transform: 'translateX(-100%) skewX(30deg)'
1707
1759
  },
@@ -1738,7 +1790,7 @@ const hinge = function (duration, timingFunction) {
1738
1790
  transform: 'rotate(60deg)',
1739
1791
  opacity: 1
1740
1792
  },
1741
- enter: {
1793
+ to: {
1742
1794
  transform: 'translateY(700px)',
1743
1795
  opacity: 0
1744
1796
  },
@@ -1765,7 +1817,7 @@ const jackInTheBox = function (duration, timingFunction) {
1765
1817
  '70%': {
1766
1818
  transform: 'rotate(3deg)'
1767
1819
  },
1768
- enter: {
1820
+ to: {
1769
1821
  opacity: 1,
1770
1822
  transform: 'scale(1) rotate(0deg)'
1771
1823
  },
@@ -1789,7 +1841,7 @@ const flipInX = function (duration, timingFunction) {
1789
1841
  transform: 'perspective(400px) rotateX(-10deg)',
1790
1842
  opacity: 1
1791
1843
  },
1792
- enter: {
1844
+ to: {
1793
1845
  transform: 'perspective(400px) rotateX(0deg)'
1794
1846
  },
1795
1847
  duration,
@@ -1812,7 +1864,7 @@ const flipInY = function (duration, timingFunction) {
1812
1864
  transform: 'perspective(400px) rotateY(-10deg)',
1813
1865
  opacity: 1
1814
1866
  },
1815
- enter: {
1867
+ to: {
1816
1868
  transform: 'perspective(400px) rotateY(0deg)'
1817
1869
  },
1818
1870
  duration,
@@ -1870,7 +1922,7 @@ const tada = function (duration, iterationCount) {
1870
1922
  '40%, 60%, 80%': {
1871
1923
  transform: 'scale3d(1.1, 1.1, 1.1) rotate(-3deg)'
1872
1924
  },
1873
- enter: {
1925
+ to: {
1874
1926
  transform: 'scale3d(1, 1, 1)',
1875
1927
  opacity: 1
1876
1928
  },
@@ -1913,7 +1965,7 @@ const jello = function (duration, iterationCount) {
1913
1965
  '88.8%': {
1914
1966
  transform: 'skewX(0.09765625deg) skewY(0.09765625deg)'
1915
1967
  },
1916
- enter: {
1968
+ to: {
1917
1969
  transform: 'none'
1918
1970
  },
1919
1971
  duration,
@@ -1932,7 +1984,7 @@ const fadeInDown = function (duration, timingFunction) {
1932
1984
  opacity: 0,
1933
1985
  transform: 'translateY(-100%)'
1934
1986
  },
1935
- enter: {
1987
+ to: {
1936
1988
  opacity: 1,
1937
1989
  transform: 'translateY(0)'
1938
1990
  },
@@ -1952,7 +2004,7 @@ const fadeInUp = function (duration, timingFunction) {
1952
2004
  opacity: 0,
1953
2005
  transform: 'translateY(100%)'
1954
2006
  },
1955
- enter: {
2007
+ to: {
1956
2008
  opacity: 1,
1957
2009
  transform: 'translateY(0)'
1958
2010
  },
@@ -1979,7 +2031,7 @@ const bounceIn = function (duration, timingFunction) {
1979
2031
  '70%': {
1980
2032
  transform: 'scale(0.9)'
1981
2033
  },
1982
- enter: {
2034
+ to: {
1983
2035
  transform: 'scale(1)'
1984
2036
  },
1985
2037
  duration,
@@ -2004,7 +2056,7 @@ const bounceOut = function (duration, timingFunction) {
2004
2056
  opacity: 1,
2005
2057
  transform: 'scale(1.1)'
2006
2058
  },
2007
- enter: {
2059
+ to: {
2008
2060
  opacity: 0,
2009
2061
  transform: 'scale(0.3)'
2010
2062
  },
@@ -2023,7 +2075,7 @@ const slideOutLeft = function (duration, timingFunction) {
2023
2075
  from: {
2024
2076
  transform: 'translateX(0)'
2025
2077
  },
2026
- enter: {
2078
+ to: {
2027
2079
  transform: 'translateX(-100%)'
2028
2080
  },
2029
2081
  duration,
@@ -2041,7 +2093,7 @@ const slideOutRight = function (duration, timingFunction) {
2041
2093
  from: {
2042
2094
  transform: 'translateX(0)'
2043
2095
  },
2044
- enter: {
2096
+ to: {
2045
2097
  transform: 'translateX(100%)'
2046
2098
  },
2047
2099
  duration,
@@ -2064,7 +2116,7 @@ const zoomInDown = function (duration, timingFunction) {
2064
2116
  opacity: 1,
2065
2117
  transform: 'scale(0.475) translateY(60px)'
2066
2118
  },
2067
- enter: {
2119
+ to: {
2068
2120
  transform: 'scale(1) translateY(0)'
2069
2121
  },
2070
2122
  duration,
@@ -2087,7 +2139,7 @@ const zoomOutUp = function (duration, timingFunction) {
2087
2139
  opacity: 1,
2088
2140
  transform: 'scale(0.475) translateY(-60px)'
2089
2141
  },
2090
- enter: {
2142
+ to: {
2091
2143
  opacity: 0,
2092
2144
  transform: 'scale(0.1) translateY(-1000px)'
2093
2145
  },
@@ -2107,7 +2159,7 @@ const backInDown = function (duration, timingFunction) {
2107
2159
  opacity: 0.7,
2108
2160
  transform: 'translateY(-2000px) scaleY(2.5) scaleX(0.2)'
2109
2161
  },
2110
- enter: {
2162
+ to: {
2111
2163
  opacity: 1,
2112
2164
  transform: 'translateY(0) scaleY(1) scaleX(1)'
2113
2165
  },
@@ -2131,7 +2183,7 @@ const backOutUp = function (duration, timingFunction) {
2131
2183
  opacity: 0.7,
2132
2184
  transform: 'translateY(-20px)'
2133
2185
  },
2134
- enter: {
2186
+ to: {
2135
2187
  opacity: 0,
2136
2188
  transform: 'translateY(-2000px)'
2137
2189
  },
@@ -2156,7 +2208,7 @@ const shimmer = function (duration, timingFunction, iterationCount) {
2156
2208
  '50%': {
2157
2209
  transform: 'translateX(100%)'
2158
2210
  },
2159
- enter: {
2211
+ to: {
2160
2212
  transform: 'translateX(100%)'
2161
2213
  },
2162
2214
  duration,
@@ -1 +1 @@
1
- {"version":3,"file":"app-studio.cjs.development.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"app-studio.cjs.development.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}