@cleartrip/ct-design-style-manager 3.1.0-SNAPSHOT-test.6

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.
@@ -0,0 +1,403 @@
1
+ import { ThemeManager, useTheme } from '@cleartrip/ct-design-theme';
2
+ import { useMemo } from 'react';
3
+ import { css } from '@emotion/css';
4
+ import valueParser from 'postcss-value-parser';
5
+
6
+ var useStableMemo = function (callback, deps) {
7
+ return useMemo(function () {
8
+ return callback();
9
+ }, deps);
10
+ };
11
+
12
+ function normalizeColor(color) {
13
+ {
14
+ return color;
15
+ }
16
+ }
17
+ var isWebColor = function (color) {
18
+ return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;
19
+ };
20
+ var normalizeColorWrapper = function (color, opacity) {
21
+ if (color == null)
22
+ return;
23
+ if (typeof color === 'string' && isWebColor(color)) {
24
+ return color;
25
+ }
26
+ };
27
+ var colorProps = {
28
+ backgroundColor: true,
29
+ borderColor: true,
30
+ borderTopColor: true,
31
+ borderRightColor: true,
32
+ borderBottomColor: true,
33
+ borderLeftColor: true,
34
+ color: true,
35
+ shadowColor: true,
36
+ textDecorationColor: true,
37
+ textShadowColor: true,
38
+ };
39
+ var unitlessNumbers = {
40
+ animationIterationCount: true,
41
+ aspectRatio: true,
42
+ borderImageOutset: true,
43
+ borderImageSlice: true,
44
+ borderImageWidth: true,
45
+ boxFlex: true,
46
+ boxFlexGroup: true,
47
+ boxOrdinalGroup: true,
48
+ columnCount: true,
49
+ flex: true,
50
+ flexGrow: true,
51
+ flexOrder: true,
52
+ flexPositive: true,
53
+ flexShrink: true,
54
+ flexNegative: true,
55
+ fontWeight: true,
56
+ gridRow: true,
57
+ gridRowEnd: true,
58
+ gridRowGap: true,
59
+ gridRowStart: true,
60
+ gridColumn: true,
61
+ gridColumnEnd: true,
62
+ gridColumnGap: true,
63
+ gridColumnStart: true,
64
+ lineClamp: true,
65
+ opacity: true,
66
+ order: true,
67
+ orphans: true,
68
+ tabSize: true,
69
+ widows: true,
70
+ zIndex: true,
71
+ zoom: true,
72
+ fillOpacity: true,
73
+ floodOpacity: true,
74
+ stopOpacity: true,
75
+ strokeDasharray: true,
76
+ strokeDashoffset: true,
77
+ strokeMiterlimit: true,
78
+ strokeOpacity: true,
79
+ strokeWidth: true,
80
+ scale: true,
81
+ scaleX: true,
82
+ scaleY: true,
83
+ scaleZ: true,
84
+ shadowOpacity: true,
85
+ };
86
+ function normalizeValueWithProperty(value, property) {
87
+ var returnValue = value;
88
+ if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {
89
+ returnValue = "".concat(value, "px");
90
+ }
91
+ else if (property != null && colorProps[property]) {
92
+ returnValue = normalizeColor(value);
93
+ }
94
+ return returnValue;
95
+ }
96
+ var warnedKeys = {};
97
+ function warnOnce(key, message) {
98
+ if (process.env.NODE_ENV !== 'production') {
99
+ if (warnedKeys[key]) {
100
+ return;
101
+ }
102
+ console.warn(message);
103
+ warnedKeys[key] = true;
104
+ }
105
+ }
106
+ var emptyObject = {};
107
+ var defaultOffset = { height: 0, width: 0 };
108
+ var createBoxShadowValue = function (style) {
109
+ var shadowColor = style.shadowColor, shadowOffset = style.shadowOffset; style.shadowOpacity; var shadowRadius = style.shadowRadius;
110
+ var _a = shadowOffset || defaultOffset, height = _a.height, width = _a.width;
111
+ var offsetX = normalizeValueWithProperty(width);
112
+ var offsetY = normalizeValueWithProperty(height);
113
+ var blurRadius = normalizeValueWithProperty(shadowRadius || 0);
114
+ var color = normalizeColorWrapper(shadowColor || 'black');
115
+ if (color != null && offsetX != null && offsetY != null && blurRadius != null) {
116
+ return "".concat(offsetX, " ").concat(offsetY, " ").concat(blurRadius, " ").concat(color);
117
+ }
118
+ };
119
+ var createTextShadowValue = function (style) {
120
+ var textShadowColor = style.textShadowColor, textShadowOffset = style.textShadowOffset, textShadowRadius = style.textShadowRadius;
121
+ var _a = textShadowOffset || defaultOffset, height = _a.height, width = _a.width;
122
+ var radius = textShadowRadius || 0;
123
+ var offsetX = normalizeValueWithProperty(width);
124
+ var offsetY = normalizeValueWithProperty(height);
125
+ var blurRadius = normalizeValueWithProperty(radius);
126
+ var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');
127
+ if (color &&
128
+ (height !== 0 || width !== 0 || radius !== 0) &&
129
+ offsetX != null &&
130
+ offsetY != null &&
131
+ blurRadius != null) {
132
+ return "".concat(offsetX, " ").concat(offsetY, " ").concat(blurRadius, " ").concat(color);
133
+ }
134
+ };
135
+ var mapTransform = function (transform) {
136
+ var type = Object.keys(transform)[0];
137
+ var value = transform[type];
138
+ if (type === 'matrix' || type === 'matrix3d') {
139
+ return "".concat(type, "(").concat(value.join(','), ")");
140
+ }
141
+ else {
142
+ var normalizedValue = normalizeValueWithProperty(value, type);
143
+ return "".concat(type, "(").concat(normalizedValue, ")");
144
+ }
145
+ };
146
+ var createTransformValue = function (value) {
147
+ return value.map(mapTransform).join(' ');
148
+ };
149
+ var PROPERTIES_STANDARD = {
150
+ borderBottomEndRadius: 'borderEndEndRadius',
151
+ borderBottomStartRadius: 'borderEndStartRadius',
152
+ borderTopEndRadius: 'borderStartEndRadius',
153
+ borderTopStartRadius: 'borderStartStartRadius',
154
+ borderEndColor: 'borderInlineEndColor',
155
+ borderEndStyle: 'borderInlineEndStyle',
156
+ borderEndWidth: 'borderInlineEndWidth',
157
+ borderStartColor: 'borderInlineStartColor',
158
+ borderStartStyle: 'borderInlineStartStyle',
159
+ borderStartWidth: 'borderInlineStartWidth',
160
+ end: 'insetInlineEnd',
161
+ marginEnd: 'marginInlineEnd',
162
+ marginHorizontal: 'marginInline',
163
+ marginStart: 'marginInlineStart',
164
+ marginVertical: 'marginBlock',
165
+ paddingEnd: 'paddingInlineEnd',
166
+ paddingHorizontal: 'paddingInline',
167
+ paddingStart: 'paddingInlineStart',
168
+ paddingVertical: 'paddingBlock',
169
+ start: 'insetInlineStart',
170
+ };
171
+ var ignoredProps = {
172
+ elevation: true,
173
+ overlayColor: true,
174
+ resizeMode: true,
175
+ tintColor: true,
176
+ };
177
+ var preprocess = function (originalStyle, options) {
178
+ if (options === void 0) { options = {}; }
179
+ var style = originalStyle || emptyObject;
180
+ var nextStyle = {};
181
+ if ((options.shadow === true,
182
+ style.shadowColor != null ||
183
+ style.shadowOffset != null ||
184
+ style.shadowOpacity != null ||
185
+ style.shadowRadius != null)) {
186
+ warnOnce('shadowStyles', "\"shadow*\" style props are deprecated. Use \"boxShadow\".");
187
+ var boxShadowValue = createBoxShadowValue(style);
188
+ if (boxShadowValue != null && nextStyle.boxShadow == null) {
189
+ var boxShadow = style.boxShadow;
190
+ var value = boxShadow ? "".concat(boxShadow, ", ").concat(boxShadowValue) : boxShadowValue;
191
+ nextStyle.boxShadow = value;
192
+ }
193
+ }
194
+ if ((options.textShadow === true && style.textShadowColor != null) ||
195
+ style.textShadowOffset != null ||
196
+ style.textShadowRadius != null) {
197
+ warnOnce('textShadowStyles', "\"textShadow*\" style props are deprecated. Use \"textShadow\".");
198
+ var textShadowValue = createTextShadowValue(style);
199
+ if (textShadowValue != null && nextStyle.textShadow == null) {
200
+ var textShadow = style.textShadow;
201
+ var value = textShadow ? "".concat(textShadow, ", ").concat(textShadowValue) : textShadowValue;
202
+ nextStyle.textShadow = value;
203
+ }
204
+ }
205
+ for (var originalProp in style) {
206
+ if (ignoredProps[originalProp] != null ||
207
+ originalProp === 'shadowColor' ||
208
+ originalProp === 'shadowOffset' ||
209
+ originalProp === 'shadowOpacity' ||
210
+ originalProp === 'shadowRadius' ||
211
+ originalProp === 'textShadowColor' ||
212
+ originalProp === 'textShadowOffset' ||
213
+ originalProp === 'textShadowRadius') {
214
+ continue;
215
+ }
216
+ var originalValue = style[originalProp];
217
+ var prop = PROPERTIES_STANDARD[originalProp] || originalProp;
218
+ var value = originalValue;
219
+ if (!Object.prototype.hasOwnProperty.call(style, originalProp) || (prop !== originalProp && style[prop] != null)) {
220
+ continue;
221
+ }
222
+ if (prop === 'aspectRatio' && typeof value === 'number') {
223
+ nextStyle[prop] = value.toString();
224
+ }
225
+ else if (prop === 'fontVariant') {
226
+ if (Array.isArray(value) && value.length > 0) {
227
+ value = value.join(' ');
228
+ }
229
+ nextStyle[prop] = value;
230
+ }
231
+ else if (prop === 'textAlignVertical') {
232
+ if (style.verticalAlign == null) {
233
+ nextStyle.verticalAlign = value === 'center' ? 'middle' : value;
234
+ }
235
+ }
236
+ else if (prop === 'transform') {
237
+ if (Array.isArray(value)) {
238
+ value = createTransformValue(value);
239
+ }
240
+ nextStyle.transform = value;
241
+ }
242
+ else {
243
+ nextStyle[prop] = normalizeValueWithProperty(value, prop);
244
+ }
245
+ }
246
+ return nextStyle;
247
+ };
248
+
249
+ var invalidShortforms = {
250
+ background: true,
251
+ borderBottom: true,
252
+ borderLeft: true,
253
+ borderRight: true,
254
+ borderTop: true,
255
+ font: true,
256
+ grid: true,
257
+ outline: true,
258
+ textDecoration: true,
259
+ };
260
+ var invalidMultiValueShortforms = {
261
+ flex: true,
262
+ margin: true,
263
+ padding: true,
264
+ borderColor: true,
265
+ borderRadius: true,
266
+ borderStyle: true,
267
+ borderWidth: true,
268
+ inset: true,
269
+ insetBlock: true,
270
+ insetInline: true,
271
+ marginBlock: true,
272
+ marginInline: true,
273
+ marginHorizontal: true,
274
+ marginVertical: true,
275
+ paddingBlock: true,
276
+ paddingInline: true,
277
+ paddingHorizontal: true,
278
+ paddingVertical: true,
279
+ overflow: true,
280
+ overscrollBehavior: true,
281
+ backgroundPosition: true,
282
+ };
283
+ function error(message) {
284
+ console.error(message);
285
+ }
286
+ function validate(obj) {
287
+ for (var k in obj) {
288
+ var prop = k.trim();
289
+ var value = obj[prop];
290
+ var isInvalid = false;
291
+ if (value === null) {
292
+ continue;
293
+ }
294
+ if (typeof value === 'string' && value.indexOf('!important') > -1) {
295
+ error("Invalid style declaration \"".concat(prop, ":").concat(value, "\". Values cannot include \"!important\""));
296
+ isInvalid = true;
297
+ }
298
+ else {
299
+ var suggestion = '';
300
+ if (prop === 'animation' || prop === 'animationName') {
301
+ suggestion = 'Did you mean "animationKeyframes"?';
302
+ isInvalid = true;
303
+ }
304
+ else if (prop === 'direction') {
305
+ suggestion = 'Did you mean "writingDirection"?';
306
+ isInvalid = true;
307
+ }
308
+ else if (invalidShortforms[prop]) {
309
+ suggestion = 'Please use long-form properties.';
310
+ isInvalid = true;
311
+ }
312
+ else if (invalidMultiValueShortforms[prop]) {
313
+ if (typeof value === 'string' && valueParser(value).nodes.length > 1) {
314
+ suggestion = "Value is \"".concat(value, "\" but only single values are supported.");
315
+ isInvalid = true;
316
+ }
317
+ }
318
+ if (suggestion !== '') {
319
+ error("Invalid style property of \"".concat(prop, "\". ").concat(suggestion));
320
+ }
321
+ }
322
+ if (isInvalid) {
323
+ delete obj[k];
324
+ }
325
+ }
326
+ }
327
+
328
+ var makeStyles = function (styleFactory, customTheme) {
329
+ var theme = customTheme || ThemeManager.get();
330
+ var styles = styleFactory(theme);
331
+ for (var _i = 0, _a = Object.entries(styles); _i < _a.length; _i++) {
332
+ var _b = _a[_i], key = _b[0], value = _b[1];
333
+ var updatedValue = typeof value === 'function' ? value(theme) : value;
334
+ styles[key] = updatedValue;
335
+ }
336
+ var classes = {};
337
+ for (var _c = 0, _d = Object.entries(styles); _c < _d.length; _c++) {
338
+ var _e = _d[_c], key = _e[0], value = _e[1];
339
+ var defaultPreprocessOptions = { shadow: true, textShadow: true };
340
+ validate(value);
341
+ var updatedStyle = preprocess(value, defaultPreprocessOptions);
342
+ classes[key] = css(updatedStyle);
343
+ }
344
+ return classes;
345
+ };
346
+
347
+ var useStyles = function (styleFactory, dep) {
348
+ var theme = useTheme();
349
+ return useStableMemo(function () {
350
+ var adaptedFactory = function (providedTheme) {
351
+ return styleFactory(providedTheme);
352
+ };
353
+ return makeStyles(adaptedFactory, theme);
354
+ }, dep);
355
+ };
356
+
357
+ var StylingCacheManager = (function () {
358
+ function StylingCacheManager() {
359
+ if (StylingCacheManager.instance) {
360
+ throw new Error('You can only create one instance!');
361
+ }
362
+ StylingCacheManager.instance = this;
363
+ this.cache = new WeakMap();
364
+ }
365
+ StylingCacheManager.prototype.set = function (key, value) {
366
+ this.cache.set(key, value);
367
+ };
368
+ StylingCacheManager.prototype.get = function (key) {
369
+ return this.cache.get(key);
370
+ };
371
+ return StylingCacheManager;
372
+ }());
373
+ var StylingCache = Object.freeze(new StylingCacheManager());
374
+
375
+ var useWebMergeStyles = function (styles, deps) {
376
+ return useStableMemo(function () {
377
+ var classes = [];
378
+ styles.forEach(function (style) {
379
+ if (typeof style === 'string') {
380
+ classes.push(style);
381
+ }
382
+ else {
383
+ if (style) {
384
+ var _style = StylingCache.get(style);
385
+ if (_style) {
386
+ classes.push(_style);
387
+ }
388
+ else {
389
+ var defaultPreprocessOptions = { shadow: true, textShadow: true };
390
+ var preprocessedStyle = preprocess(style, defaultPreprocessOptions);
391
+ var emotionClass = css(preprocessedStyle);
392
+ StylingCache.set(style, emotionClass);
393
+ classes.push(emotionClass);
394
+ }
395
+ }
396
+ }
397
+ });
398
+ return css(classes);
399
+ }, deps);
400
+ };
401
+
402
+ export { makeStyles, useStyles, useWebMergeStyles };
403
+ //# sourceMappingURL=ct-design-styleManager.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-styleManager.esm.js","sources":["../src/useStableMemo/index.ts","../src/makeStyles/preprocess/index.ts","../src/makeStyles/validate/index.ts","../src/makeStyles/index.ts","../src/useStyles/index.ts","../src/StylingCache/index.ts","../src/useWebMergeStyles/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}