chaincss 1.12.8 → 1.12.11

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,14 @@
1
+ export const COMMON_CSS_PROPERTIES = [
2
+ 'color', 'background', 'background-color', 'background-image', 'background-size',
3
+ 'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
4
+ 'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
5
+ 'border', 'border-radius', 'border-width', 'border-style', 'border-color',
6
+ 'display', 'position', 'top', 'left', 'right', 'bottom',
7
+ 'width', 'height', 'max-width', 'min-width', 'max-height', 'min-height',
8
+ 'font-size', 'font-weight', 'font-family', 'font-style', 'line-height',
9
+ 'text-align', 'text-decoration', 'text-transform', 'letter-spacing',
10
+ 'opacity', 'z-index', 'overflow', 'cursor', 'pointer-events',
11
+ 'transition', 'transform', 'animation', 'animation-duration', 'animation-timing-function',
12
+ 'flex', 'grid', 'gap', 'justify-content', 'align-items', 'flex-direction',
13
+ 'box-shadow', 'outline', 'filter', 'backdrop-filter'
14
+ ]
package/browser/rtt.js CHANGED
@@ -1,16 +1,42 @@
1
1
  import { tokens, createTokens, responsive } from '../shared/tokens.mjs';
2
2
 
3
- let cssProperties = [];
3
+ let cachedProperties = null;
4
4
 
5
5
  const loadCSSProperties = async () => {
6
+ // Return cached if already loaded
7
+ if (cachedProperties !== null) {
8
+ return cachedProperties;
9
+ }
10
+ // Try CDN first (only once)
6
11
  try {
7
- const module = await import('../node/css-properties.json', {
8
- assert: { type: 'json' }
12
+ const controller = new AbortController();
13
+ const timeoutId = setTimeout(() => controller.abort(), 3000); // 3 second timeout
14
+
15
+ const response = await fetch('https://raw.githubusercontent.com/mdn/data/main/css/properties.json', {
16
+ signal: controller.signal
9
17
  });
10
- return module.default;
11
- } catch (e) {
12
- console.log('CSS properties file not found in package, will fetch from CDN');
13
- return null;
18
+ clearTimeout(timeoutId);
19
+
20
+ if (response.ok) {
21
+ const data = await response.json();
22
+ const allProperties = Object.keys(data);
23
+ const baseProperties = new Set();
24
+
25
+ allProperties.forEach(prop => {
26
+ const baseProp = prop.replace(/^-(webkit|moz|ms|o)-/, '');
27
+ baseProperties.add(baseProp);
28
+ });
29
+
30
+ cachedProperties = Array.from(baseProperties).sort();
31
+ console.log(`✅ Loaded ${cachedProperties.length} CSS properties from CDN`);
32
+ return cachedProperties;
33
+ }
34
+ } catch (error) {
35
+ console.log('CDN failed, using fallback CSS property list');
36
+ // Use hardcoded fallback (always works)
37
+ const { COMMON_CSS_PROPERTIES } = await import('./commonProps.js');
38
+ cachedProperties = COMMON_CSS_PROPERTIES;
39
+ return cachedProperties;
14
40
  }
15
41
  };
16
42
 
@@ -23,35 +49,18 @@ const chain = {
23
49
  return;
24
50
  }
25
51
 
26
- const localProperties = await loadCSSProperties();
27
- if (localProperties && localProperties.length > 0) {
28
- this.cachedValidProperties = localProperties;
29
- return;
30
- }
31
-
32
- try {
33
- console.log('Loading CSS properties from CDN...');
34
- const response = await fetch('https://raw.githubusercontent.com/mdn/data/main/css/properties.json');
35
- const data = await response.json();
36
- const allProperties = Object.keys(data);
37
-
38
- const baseProperties = new Set();
39
- allProperties.forEach(prop => {
40
- const baseProp = prop.replace(/^-(webkit|moz|ms|o)-/, '');
41
- baseProperties.add(baseProp);
42
- });
43
- this.cachedValidProperties = Array.from(baseProperties).sort();
44
- } catch (error) {
45
- console.error('Error loading from CDN:', error);
46
- this.cachedValidProperties = [];
47
- }
52
+ const properties = await loadCSSProperties();
53
+ this.cachedValidProperties = properties;
48
54
  },
49
55
  getCachedProperties() {
50
56
  return this.cachedValidProperties;
51
57
  }
52
58
  };
53
59
 
54
- chain.initializeProperties();
60
+ // Start initialization (non-blocking)
61
+ chain.initializeProperties().catch(err => {
62
+ console.error('Failed to load CSS properties:', err.message);
63
+ });
55
64
 
56
65
  const resolveToken = (value, useTokens) => {
57
66
  if (!useTokens || typeof value !== 'string' || !value.startsWith('$')) {
@@ -66,75 +75,229 @@ const resolveToken = (value, useTokens) => {
66
75
  };
67
76
 
68
77
  function $(useTokens = true) {
69
- const regularStyles = {};
70
- const hoverStyles = {};
71
- let isBuildingHover = false;
72
-
78
+ const catcher = {};
73
79
  const validProperties = chain.cachedValidProperties;
74
80
 
75
- // Create the main proxy
76
- const createProxy = () => {
77
- const handler = {
78
- get: (target, prop) => {
79
- // Handle .block()
80
- if (prop === 'block') {
81
- return (...args) => {
82
- const result = { ...regularStyles };
83
-
84
- // Add hover styles if any exist
85
- if (Object.keys(hoverStyles).length > 0) {
86
- result.hover = { ...hoverStyles };
87
- }
88
-
89
- if (args.length > 0) {
90
- result.selectors = args;
91
- }
92
-
93
- // Clear for next use
94
- Object.keys(regularStyles).forEach(key => delete regularStyles[key]);
95
- Object.keys(hoverStyles).forEach(key => delete hoverStyles[key]);
96
- isBuildingHover = false;
97
-
81
+ const handler = {
82
+ get: (target, prop) => {
83
+ if (prop === 'block') {
84
+ return function(...args) {
85
+ if (args.length === 0) {
86
+ const result = { ...catcher };
87
+ Object.keys(catcher).forEach(key => delete catcher[key]);
98
88
  return result;
89
+ }
90
+ const result = {
91
+ selectors: args,
92
+ ...catcher
99
93
  };
100
- }
101
-
102
- // Handle .hover()
103
- if (prop === 'hover') {
104
- return () => {
105
- isBuildingHover = true;
106
- return proxy; // Return the same proxy, just with hover mode on
107
- };
108
- }
94
+ Object.keys(catcher).forEach(key => delete catcher[key]);
95
+ return result;
96
+ };
97
+ }
109
98
 
110
- if(prop==='end'){
111
- return () => {
112
- isBuildingHover = false;
113
- return proxy; // Return the same proxy, but end of hover mode
99
+ if (prop === 'hover') {
100
+ return () => {
101
+ const hoverCatcher = {};
102
+ const hoverHandler = {
103
+ get: (hoverTarget, hoverProp) => {
104
+ if (hoverProp === 'end') {
105
+ return () => {
106
+ catcher.hover = { ...hoverCatcher };
107
+ Object.keys(hoverCatcher).forEach(key => delete hoverCatcher[key]);
108
+ return proxy;
109
+ };
110
+ }
111
+ const cssProperty = hoverProp.replace(/([A-Z])/g, '-$1').toLowerCase();
112
+ if (validProperties && validProperties.length > 0 && !validProperties.includes(cssProperty)) {
113
+ console.warn(`Warning: '${cssProperty}' may not be a valid CSS property`);
114
+ }
115
+ return (value) => {
116
+ hoverCatcher[hoverProp] = resolveToken(value, useTokens);
117
+ return hoverProxy;
118
+ };
119
+ }
114
120
  };
115
- }
116
-
117
- // Handle regular CSS properties
118
- const cssProperty = prop.replace(/([A-Z])/g, '-$1').toLowerCase();
119
- if (validProperties && validProperties.length > 0 && !validProperties.includes(cssProperty)) {
120
- console.warn(`Warning: '${cssProperty}' may not be a valid CSS property`);
121
- }
122
-
123
- return (value) => {
124
- if (isBuildingHover) {
125
- hoverStyles[prop] = resolveToken(value, useTokens);
126
- } else {
127
- regularStyles[prop] = resolveToken(value, useTokens);
128
- }
121
+ const hoverProxy = new Proxy({}, hoverHandler);
122
+ return hoverProxy;
123
+ };
124
+ }
125
+
126
+ if (prop === 'end') {
127
+ return () => {
129
128
  return proxy;
130
129
  };
131
130
  }
132
- };
133
-
134
- return new Proxy({}, handler);
131
+
132
+ if (prop === 'select') {
133
+ return function(selector) {
134
+ const props = {};
135
+ const selectorProxy = new Proxy({}, {
136
+ get: (target, methodProp) => {
137
+ if (methodProp === 'block') {
138
+ return function() {
139
+ return {
140
+ selectors: [selector],
141
+ ...props
142
+ };
143
+ };
144
+ }
145
+ return function(value) {
146
+ props[methodProp] = resolveToken(value, useTokens);
147
+ return selectorProxy;
148
+ };
149
+ }
150
+ });
151
+ return selectorProxy;
152
+ };
153
+ }
154
+
155
+ // At-Rules
156
+ if (prop === 'media') {
157
+ return function(query, callback) {
158
+ const subChain = $(useTokens);
159
+ const result = callback(subChain);
160
+ if (!catcher.atRules) catcher.atRules = [];
161
+ catcher.atRules.push({
162
+ type: 'media',
163
+ query: query,
164
+ styles: result
165
+ });
166
+ return proxy;
167
+ };
168
+ }
169
+
170
+ if (prop === 'keyframes') {
171
+ return function(name, callback) {
172
+ const keyframeContext = { _keyframeSteps: {} };
173
+ const keyframeProxy = new Proxy(keyframeContext, {
174
+ get: (target, stepProp) => {
175
+ if (stepProp === 'from' || stepProp === 'to') {
176
+ return function(stepCallback) {
177
+ const subChain = $(useTokens);
178
+ const properties = stepCallback(subChain).block();
179
+ target._keyframeSteps[stepProp] = properties;
180
+ return keyframeProxy;
181
+ };
182
+ }
183
+ if (stepProp === 'percent') {
184
+ return function(value, stepCallback) {
185
+ const subChain = $(useTokens);
186
+ const properties = stepCallback(subChain).block();
187
+ target._keyframeSteps[`${value}%`] = properties;
188
+ return keyframeProxy;
189
+ };
190
+ }
191
+ return undefined;
192
+ }
193
+ });
194
+ callback(keyframeProxy);
195
+ if (!catcher.atRules) catcher.atRules = [];
196
+ catcher.atRules.push({
197
+ type: 'keyframes',
198
+ name: name,
199
+ steps: keyframeContext._keyframeSteps
200
+ });
201
+ return proxy;
202
+ };
203
+ }
204
+
205
+ if (prop === 'fontFace') {
206
+ return function(callback) {
207
+ const subChain = $(useTokens);
208
+ const fontProps = callback(subChain).block();
209
+ if (!catcher.atRules) catcher.atRules = [];
210
+ catcher.atRules.push({
211
+ type: 'font-face',
212
+ properties: fontProps
213
+ });
214
+ return proxy;
215
+ };
216
+ }
217
+
218
+ if (prop === 'supports') {
219
+ return function(condition, callback) {
220
+ const subChain = $(useTokens);
221
+ const styles = callback(subChain);
222
+ if (!catcher.atRules) catcher.atRules = [];
223
+ catcher.atRules.push({
224
+ type: 'supports',
225
+ condition: condition,
226
+ styles: styles
227
+ });
228
+ return proxy;
229
+ };
230
+ }
231
+
232
+ if (prop === 'container') {
233
+ return function(condition, callback) {
234
+ const subChain = $(useTokens);
235
+ const styles = callback(subChain);
236
+ if (!catcher.atRules) catcher.atRules = [];
237
+ catcher.atRules.push({
238
+ type: 'container',
239
+ condition: condition,
240
+ styles: styles
241
+ });
242
+ return proxy;
243
+ };
244
+ }
245
+
246
+ if (prop === 'layer') {
247
+ return function(name, callback) {
248
+ const subChain = $(useTokens);
249
+ const styles = callback(subChain);
250
+ if (!catcher.atRules) catcher.atRules = [];
251
+ catcher.atRules.push({
252
+ type: 'layer',
253
+ name: name,
254
+ styles: styles
255
+ });
256
+ return proxy;
257
+ };
258
+ }
259
+
260
+ if (prop === 'counterStyle') {
261
+ return function(name, callback) {
262
+ const subChain = $(useTokens);
263
+ const properties = callback(subChain).block();
264
+ if (!catcher.atRules) catcher.atRules = [];
265
+ catcher.atRules.push({
266
+ type: 'counter-style',
267
+ name: name,
268
+ properties: properties
269
+ });
270
+ return proxy;
271
+ };
272
+ }
273
+
274
+ if (prop === 'property') {
275
+ return function(name, callback) {
276
+ const subChain = $(useTokens);
277
+ const descriptors = callback(subChain).block();
278
+ if (!catcher.atRules) catcher.atRules = [];
279
+ catcher.atRules.push({
280
+ type: 'property',
281
+ name: name,
282
+ descriptors: descriptors
283
+ });
284
+ return proxy;
285
+ };
286
+ }
287
+
288
+ const cssProperty = prop.replace(/([A-Z])/g, '-$1').toLowerCase();
289
+ if (validProperties && validProperties.length > 0 && !validProperties.includes(cssProperty)) {
290
+ console.warn(`Warning: '${cssProperty}' may not be a valid CSS property`);
291
+ }
292
+
293
+ return function(value) {
294
+ catcher[prop] = resolveToken(value, useTokens);
295
+ return proxy;
296
+ };
297
+ }
135
298
  };
136
299
 
137
- const proxy = createProxy();
300
+ const proxy = new Proxy({}, handler);
138
301
  return proxy;
139
302
  }
140
303
 
@@ -166,34 +329,29 @@ const compile = (obj) => {
166
329
 
167
330
  // Generate normal styles
168
331
  let normalCSS = '';
169
- let hoverCSS = '';
170
-
171
332
  for (let prop in element) {
172
333
  if (element.hasOwnProperty(prop) && prop !== 'selectors' && prop !== 'hover') {
173
334
  const kebabKey = prop.replace(/([A-Z])/g, '-$1').toLowerCase();
174
335
  normalCSS += ` ${kebabKey}: ${element[prop]};\n`;
175
336
  }
176
337
  }
338
+ if (normalCSS) {
339
+ cssString += `${selectors.join(', ')} {\n${normalCSS}}\n`;
340
+ }
177
341
 
178
- // Generate hover styles if present
342
+ // Generate hover styles
179
343
  if (element.hover && typeof element.hover === 'object') {
344
+ let hoverCSS = '';
180
345
  for (let prop in element.hover) {
181
- if (element.hover.hasOwnProperty(prop)) {
346
+ if (element.hover.hasOwnProperty(prop) && prop !== 'selectors') {
182
347
  const kebabKey = prop.replace(/([A-Z])/g, '-$1').toLowerCase();
183
348
  hoverCSS += ` ${kebabKey}: ${element.hover[prop]};\n`;
184
349
  }
185
350
  }
186
- }
187
-
188
- // Add normal styles
189
- if (normalCSS) {
190
- cssString += `${selectors.join(', ')} {\n${normalCSS}}\n`;
191
- }
192
-
193
- // Add hover styles as separate rule
194
- if (hoverCSS) {
195
- const hoverSelectors = selectors.map(s => `${s}:hover`);
196
- cssString += `${hoverSelectors.join(', ')} {\n${hoverCSS}}\n`;
351
+ if (hoverCSS) {
352
+ const hoverSelectors = selectors.map(s => `${s}:hover`);
353
+ cssString += `${hoverSelectors.join(', ')} {\n${hoverCSS}}\n`;
354
+ }
197
355
  }
198
356
  }
199
357
  }
package/node/chaincss.js CHANGED
@@ -345,12 +345,9 @@ const processor = async (inputFile, outputFile) => {
345
345
  try {
346
346
  const input = path.resolve(inputFile);
347
347
  const outputDir = path.resolve(outputFile);
348
- //console.log('const output = path.resolve(outputFile) : ',output);
349
- //const outputDir = path.dirname(output);
350
348
  if (!fs.existsSync(outputDir)) {
351
349
  fs.mkdirSync(outputDir, { recursive: true });
352
350
  }
353
- console.log('const outputDir = path.dirname(output) : ',outputDir);
354
351
  const content = fs.readFileSync(input, 'utf8');
355
352
  const processedCSS = processJavascriptBlocks(content, input);
356
353
  if (!validateCSS(processedCSS)) {
@@ -360,11 +357,9 @@ const processor = async (inputFile, outputFile) => {
360
357
  const result = await processAndMinifyCss(processedCSS, input, stylePath);
361
358
  if (result.css) {
362
359
  fs.writeFileSync(stylePath, result.css, 'utf8');
363
- console.log(`✅ CSS compiled successfully: ${stylePath}`);
364
360
  if (result.map) {
365
361
  const mapFile = `${stylePath}.map`;
366
362
  fs.writeFileSync(mapFile, result.map, 'utf8');
367
- console.log(`✅ Source map: ${mapFile}`);
368
363
  }
369
364
 
370
365
  // ========== ATOMIC CLASS MAP GENERATION ==========
@@ -0,0 +1,633 @@
1
+ [
2
+ "--*",
3
+ "accelerator",
4
+ "accent-color",
5
+ "align-content",
6
+ "align-items",
7
+ "align-self",
8
+ "align-tracks",
9
+ "alignment-baseline",
10
+ "all",
11
+ "anchor-name",
12
+ "anchor-scope",
13
+ "animation",
14
+ "animation-composition",
15
+ "animation-delay",
16
+ "animation-direction",
17
+ "animation-duration",
18
+ "animation-fill-mode",
19
+ "animation-iteration-count",
20
+ "animation-name",
21
+ "animation-play-state",
22
+ "animation-range",
23
+ "animation-range-end",
24
+ "animation-range-start",
25
+ "animation-timeline",
26
+ "animation-timing-function",
27
+ "animation-trigger",
28
+ "appearance",
29
+ "aspect-ratio",
30
+ "backdrop-filter",
31
+ "backface-visibility",
32
+ "background",
33
+ "background-attachment",
34
+ "background-blend-mode",
35
+ "background-clip",
36
+ "background-color",
37
+ "background-image",
38
+ "background-origin",
39
+ "background-position",
40
+ "background-position-x",
41
+ "background-position-y",
42
+ "background-repeat",
43
+ "background-size",
44
+ "baseline-shift",
45
+ "baseline-source",
46
+ "binding",
47
+ "block-progression",
48
+ "block-size",
49
+ "border",
50
+ "border-before",
51
+ "border-before-color",
52
+ "border-before-style",
53
+ "border-before-width",
54
+ "border-block",
55
+ "border-block-color",
56
+ "border-block-end",
57
+ "border-block-end-color",
58
+ "border-block-end-style",
59
+ "border-block-end-width",
60
+ "border-block-start",
61
+ "border-block-start-color",
62
+ "border-block-start-style",
63
+ "border-block-start-width",
64
+ "border-block-style",
65
+ "border-block-width",
66
+ "border-bottom",
67
+ "border-bottom-color",
68
+ "border-bottom-colors",
69
+ "border-bottom-left-radius",
70
+ "border-bottom-right-radius",
71
+ "border-bottom-style",
72
+ "border-bottom-width",
73
+ "border-collapse",
74
+ "border-color",
75
+ "border-end-end-radius",
76
+ "border-end-start-radius",
77
+ "border-image",
78
+ "border-image-outset",
79
+ "border-image-repeat",
80
+ "border-image-slice",
81
+ "border-image-source",
82
+ "border-image-width",
83
+ "border-inline",
84
+ "border-inline-color",
85
+ "border-inline-end",
86
+ "border-inline-end-color",
87
+ "border-inline-end-style",
88
+ "border-inline-end-width",
89
+ "border-inline-start",
90
+ "border-inline-start-color",
91
+ "border-inline-start-style",
92
+ "border-inline-start-width",
93
+ "border-inline-style",
94
+ "border-inline-width",
95
+ "border-left",
96
+ "border-left-color",
97
+ "border-left-colors",
98
+ "border-left-style",
99
+ "border-left-width",
100
+ "border-radius",
101
+ "border-right",
102
+ "border-right-color",
103
+ "border-right-colors",
104
+ "border-right-style",
105
+ "border-right-width",
106
+ "border-spacing",
107
+ "border-start-end-radius",
108
+ "border-start-start-radius",
109
+ "border-style",
110
+ "border-top",
111
+ "border-top-color",
112
+ "border-top-colors",
113
+ "border-top-left-radius",
114
+ "border-top-right-radius",
115
+ "border-top-style",
116
+ "border-top-width",
117
+ "border-width",
118
+ "bottom",
119
+ "box-align",
120
+ "box-decoration-break",
121
+ "box-direction",
122
+ "box-flex",
123
+ "box-flex-group",
124
+ "box-lines",
125
+ "box-ordinal-group",
126
+ "box-orient",
127
+ "box-pack",
128
+ "box-reflect",
129
+ "box-shadow",
130
+ "box-sizing",
131
+ "break-after",
132
+ "break-before",
133
+ "break-inside",
134
+ "caption-side",
135
+ "caret",
136
+ "caret-animation",
137
+ "caret-color",
138
+ "caret-shape",
139
+ "clear",
140
+ "clip",
141
+ "clip-path",
142
+ "clip-rule",
143
+ "color",
144
+ "color-interpolation-filters",
145
+ "color-scheme",
146
+ "column-count",
147
+ "column-fill",
148
+ "column-gap",
149
+ "column-height",
150
+ "column-rule",
151
+ "column-rule-color",
152
+ "column-rule-style",
153
+ "column-rule-width",
154
+ "column-span",
155
+ "column-width",
156
+ "column-wrap",
157
+ "columns",
158
+ "contain",
159
+ "contain-intrinsic-block-size",
160
+ "contain-intrinsic-height",
161
+ "contain-intrinsic-inline-size",
162
+ "contain-intrinsic-size",
163
+ "contain-intrinsic-width",
164
+ "container",
165
+ "container-name",
166
+ "container-type",
167
+ "content",
168
+ "content-visibility",
169
+ "content-zoom-chaining",
170
+ "content-zoom-limit",
171
+ "content-zoom-limit-max",
172
+ "content-zoom-limit-min",
173
+ "content-zoom-snap",
174
+ "content-zoom-snap-points",
175
+ "content-zoom-snap-type",
176
+ "content-zooming",
177
+ "context-properties",
178
+ "corner-block-end-shape",
179
+ "corner-block-start-shape",
180
+ "corner-bottom-left-shape",
181
+ "corner-bottom-right-shape",
182
+ "corner-bottom-shape",
183
+ "corner-end-end-shape",
184
+ "corner-end-start-shape",
185
+ "corner-inline-end-shape",
186
+ "corner-inline-start-shape",
187
+ "corner-left-shape",
188
+ "corner-right-shape",
189
+ "corner-shape",
190
+ "corner-start-end-shape",
191
+ "corner-start-start-shape",
192
+ "corner-top-left-shape",
193
+ "corner-top-right-shape",
194
+ "corner-top-shape",
195
+ "counter-increment",
196
+ "counter-reset",
197
+ "counter-set",
198
+ "cursor",
199
+ "cx",
200
+ "cy",
201
+ "d",
202
+ "direction",
203
+ "display",
204
+ "dominant-baseline",
205
+ "dynamic-range-limit",
206
+ "empty-cells",
207
+ "field-sizing",
208
+ "fill",
209
+ "fill-opacity",
210
+ "fill-rule",
211
+ "filter",
212
+ "flex",
213
+ "flex-basis",
214
+ "flex-direction",
215
+ "flex-flow",
216
+ "flex-grow",
217
+ "flex-shrink",
218
+ "flex-wrap",
219
+ "float",
220
+ "float-edge",
221
+ "flood-color",
222
+ "flood-opacity",
223
+ "flow-from",
224
+ "flow-into",
225
+ "font",
226
+ "font-family",
227
+ "font-feature-settings",
228
+ "font-kerning",
229
+ "font-language-override",
230
+ "font-optical-sizing",
231
+ "font-palette",
232
+ "font-size",
233
+ "font-size-adjust",
234
+ "font-smooth",
235
+ "font-stretch",
236
+ "font-style",
237
+ "font-synthesis",
238
+ "font-synthesis-position",
239
+ "font-synthesis-small-caps",
240
+ "font-synthesis-style",
241
+ "font-synthesis-weight",
242
+ "font-variant",
243
+ "font-variant-alternates",
244
+ "font-variant-caps",
245
+ "font-variant-east-asian",
246
+ "font-variant-emoji",
247
+ "font-variant-ligatures",
248
+ "font-variant-numeric",
249
+ "font-variant-position",
250
+ "font-variation-settings",
251
+ "font-weight",
252
+ "font-width",
253
+ "force-broken-image-icon",
254
+ "forced-color-adjust",
255
+ "gap",
256
+ "grid",
257
+ "grid-area",
258
+ "grid-auto-columns",
259
+ "grid-auto-flow",
260
+ "grid-auto-rows",
261
+ "grid-column",
262
+ "grid-column-end",
263
+ "grid-column-gap",
264
+ "grid-column-start",
265
+ "grid-columns",
266
+ "grid-gap",
267
+ "grid-row",
268
+ "grid-row-end",
269
+ "grid-row-gap",
270
+ "grid-row-start",
271
+ "grid-rows",
272
+ "grid-template",
273
+ "grid-template-areas",
274
+ "grid-template-columns",
275
+ "grid-template-rows",
276
+ "hanging-punctuation",
277
+ "height",
278
+ "high-contrast-adjust",
279
+ "hyphenate-character",
280
+ "hyphenate-limit-chars",
281
+ "hyphenate-limit-lines",
282
+ "hyphenate-limit-zone",
283
+ "hyphens",
284
+ "image-orientation",
285
+ "image-rendering",
286
+ "image-resolution",
287
+ "ime-align",
288
+ "ime-mode",
289
+ "initial-letter",
290
+ "initial-letter-align",
291
+ "inline-size",
292
+ "inset",
293
+ "inset-block",
294
+ "inset-block-end",
295
+ "inset-block-start",
296
+ "inset-inline",
297
+ "inset-inline-end",
298
+ "inset-inline-start",
299
+ "interactivity",
300
+ "interest-delay",
301
+ "interest-delay-end",
302
+ "interest-delay-start",
303
+ "interpolate-size",
304
+ "isolation",
305
+ "justify-content",
306
+ "justify-items",
307
+ "justify-self",
308
+ "justify-tracks",
309
+ "left",
310
+ "letter-spacing",
311
+ "lighting-color",
312
+ "line-break",
313
+ "line-clamp",
314
+ "line-height",
315
+ "line-height-step",
316
+ "list-style",
317
+ "list-style-image",
318
+ "list-style-position",
319
+ "list-style-type",
320
+ "margin",
321
+ "margin-block",
322
+ "margin-block-end",
323
+ "margin-block-start",
324
+ "margin-bottom",
325
+ "margin-inline",
326
+ "margin-inline-end",
327
+ "margin-inline-start",
328
+ "margin-left",
329
+ "margin-right",
330
+ "margin-top",
331
+ "margin-trim",
332
+ "marker",
333
+ "marker-end",
334
+ "marker-mid",
335
+ "marker-start",
336
+ "mask",
337
+ "mask-attachment",
338
+ "mask-border",
339
+ "mask-border-mode",
340
+ "mask-border-outset",
341
+ "mask-border-repeat",
342
+ "mask-border-slice",
343
+ "mask-border-source",
344
+ "mask-border-width",
345
+ "mask-clip",
346
+ "mask-composite",
347
+ "mask-image",
348
+ "mask-mode",
349
+ "mask-origin",
350
+ "mask-position",
351
+ "mask-position-x",
352
+ "mask-position-y",
353
+ "mask-repeat",
354
+ "mask-repeat-x",
355
+ "mask-repeat-y",
356
+ "mask-size",
357
+ "mask-type",
358
+ "masonry-auto-flow",
359
+ "math-depth",
360
+ "math-shift",
361
+ "math-style",
362
+ "max-block-size",
363
+ "max-height",
364
+ "max-inline-size",
365
+ "max-lines",
366
+ "max-width",
367
+ "min-block-size",
368
+ "min-height",
369
+ "min-inline-size",
370
+ "min-width",
371
+ "mix-blend-mode",
372
+ "object-fit",
373
+ "object-position",
374
+ "object-view-box",
375
+ "offset",
376
+ "offset-anchor",
377
+ "offset-distance",
378
+ "offset-path",
379
+ "offset-position",
380
+ "offset-rotate",
381
+ "opacity",
382
+ "order",
383
+ "orient",
384
+ "orphans",
385
+ "outline",
386
+ "outline-color",
387
+ "outline-offset",
388
+ "outline-radius",
389
+ "outline-radius-bottomleft",
390
+ "outline-radius-bottomright",
391
+ "outline-radius-topleft",
392
+ "outline-radius-topright",
393
+ "outline-style",
394
+ "outline-width",
395
+ "overflow",
396
+ "overflow-anchor",
397
+ "overflow-block",
398
+ "overflow-clip-box",
399
+ "overflow-clip-margin",
400
+ "overflow-inline",
401
+ "overflow-scrolling",
402
+ "overflow-style",
403
+ "overflow-wrap",
404
+ "overflow-x",
405
+ "overflow-y",
406
+ "overlay",
407
+ "overscroll-behavior",
408
+ "overscroll-behavior-block",
409
+ "overscroll-behavior-inline",
410
+ "overscroll-behavior-x",
411
+ "overscroll-behavior-y",
412
+ "padding",
413
+ "padding-block",
414
+ "padding-block-end",
415
+ "padding-block-start",
416
+ "padding-bottom",
417
+ "padding-inline",
418
+ "padding-inline-end",
419
+ "padding-inline-start",
420
+ "padding-left",
421
+ "padding-right",
422
+ "padding-top",
423
+ "page",
424
+ "page-break-after",
425
+ "page-break-before",
426
+ "page-break-inside",
427
+ "paint-order",
428
+ "perspective",
429
+ "perspective-origin",
430
+ "place-content",
431
+ "place-items",
432
+ "place-self",
433
+ "pointer-events",
434
+ "position",
435
+ "position-anchor",
436
+ "position-area",
437
+ "position-try",
438
+ "position-try-fallbacks",
439
+ "position-try-order",
440
+ "position-visibility",
441
+ "print-color-adjust",
442
+ "quotes",
443
+ "r",
444
+ "reading-flow",
445
+ "reading-order",
446
+ "resize",
447
+ "right",
448
+ "rotate",
449
+ "row-gap",
450
+ "ruby-align",
451
+ "ruby-merge",
452
+ "ruby-overhang",
453
+ "ruby-position",
454
+ "rx",
455
+ "ry",
456
+ "scale",
457
+ "scroll-behavior",
458
+ "scroll-chaining",
459
+ "scroll-initial-target",
460
+ "scroll-limit",
461
+ "scroll-limit-x-max",
462
+ "scroll-limit-x-min",
463
+ "scroll-limit-y-max",
464
+ "scroll-limit-y-min",
465
+ "scroll-margin",
466
+ "scroll-margin-block",
467
+ "scroll-margin-block-end",
468
+ "scroll-margin-block-start",
469
+ "scroll-margin-bottom",
470
+ "scroll-margin-inline",
471
+ "scroll-margin-inline-end",
472
+ "scroll-margin-inline-start",
473
+ "scroll-margin-left",
474
+ "scroll-margin-right",
475
+ "scroll-margin-top",
476
+ "scroll-marker-group",
477
+ "scroll-padding",
478
+ "scroll-padding-block",
479
+ "scroll-padding-block-end",
480
+ "scroll-padding-block-start",
481
+ "scroll-padding-bottom",
482
+ "scroll-padding-inline",
483
+ "scroll-padding-inline-end",
484
+ "scroll-padding-inline-start",
485
+ "scroll-padding-left",
486
+ "scroll-padding-right",
487
+ "scroll-padding-top",
488
+ "scroll-rails",
489
+ "scroll-snap-align",
490
+ "scroll-snap-coordinate",
491
+ "scroll-snap-destination",
492
+ "scroll-snap-points-x",
493
+ "scroll-snap-points-y",
494
+ "scroll-snap-stop",
495
+ "scroll-snap-type",
496
+ "scroll-snap-type-x",
497
+ "scroll-snap-type-y",
498
+ "scroll-snap-x",
499
+ "scroll-snap-y",
500
+ "scroll-target-group",
501
+ "scroll-timeline",
502
+ "scroll-timeline-axis",
503
+ "scroll-timeline-name",
504
+ "scroll-translation",
505
+ "scrollbar-3dlight-color",
506
+ "scrollbar-arrow-color",
507
+ "scrollbar-base-color",
508
+ "scrollbar-color",
509
+ "scrollbar-darkshadow-color",
510
+ "scrollbar-face-color",
511
+ "scrollbar-gutter",
512
+ "scrollbar-highlight-color",
513
+ "scrollbar-shadow-color",
514
+ "scrollbar-track-color",
515
+ "scrollbar-width",
516
+ "shape-image-threshold",
517
+ "shape-margin",
518
+ "shape-outside",
519
+ "shape-rendering",
520
+ "speak-as",
521
+ "stack-sizing",
522
+ "stop-color",
523
+ "stop-opacity",
524
+ "stroke",
525
+ "stroke-color",
526
+ "stroke-dasharray",
527
+ "stroke-dashoffset",
528
+ "stroke-linecap",
529
+ "stroke-linejoin",
530
+ "stroke-miterlimit",
531
+ "stroke-opacity",
532
+ "stroke-width",
533
+ "tab-size",
534
+ "table-layout",
535
+ "tap-highlight-color",
536
+ "text-align",
537
+ "text-align-last",
538
+ "text-anchor",
539
+ "text-autospace",
540
+ "text-blink",
541
+ "text-box",
542
+ "text-box-edge",
543
+ "text-box-trim",
544
+ "text-combine-upright",
545
+ "text-decoration",
546
+ "text-decoration-color",
547
+ "text-decoration-inset",
548
+ "text-decoration-line",
549
+ "text-decoration-skip",
550
+ "text-decoration-skip-ink",
551
+ "text-decoration-style",
552
+ "text-decoration-thickness",
553
+ "text-emphasis",
554
+ "text-emphasis-color",
555
+ "text-emphasis-position",
556
+ "text-emphasis-style",
557
+ "text-fill-color",
558
+ "text-indent",
559
+ "text-justify",
560
+ "text-orientation",
561
+ "text-overflow",
562
+ "text-rendering",
563
+ "text-shadow",
564
+ "text-size-adjust",
565
+ "text-spacing-trim",
566
+ "text-stroke",
567
+ "text-stroke-color",
568
+ "text-stroke-width",
569
+ "text-transform",
570
+ "text-underline-offset",
571
+ "text-underline-position",
572
+ "text-wrap",
573
+ "text-wrap-mode",
574
+ "text-wrap-style",
575
+ "timeline-scope",
576
+ "timeline-trigger",
577
+ "timeline-trigger-activation-range",
578
+ "timeline-trigger-activation-range-end",
579
+ "timeline-trigger-activation-range-start",
580
+ "timeline-trigger-active-range",
581
+ "timeline-trigger-active-range-end",
582
+ "timeline-trigger-active-range-start",
583
+ "timeline-trigger-name",
584
+ "timeline-trigger-source",
585
+ "top",
586
+ "touch-action",
587
+ "touch-callout",
588
+ "touch-select",
589
+ "transform",
590
+ "transform-box",
591
+ "transform-origin",
592
+ "transform-style",
593
+ "transition",
594
+ "transition-behavior",
595
+ "transition-delay",
596
+ "transition-duration",
597
+ "transition-property",
598
+ "transition-timing-function",
599
+ "translate",
600
+ "trigger-scope",
601
+ "unicode-bidi",
602
+ "user-focus",
603
+ "user-input",
604
+ "user-modify",
605
+ "user-select",
606
+ "vector-effect",
607
+ "vertical-align",
608
+ "view-timeline",
609
+ "view-timeline-axis",
610
+ "view-timeline-inset",
611
+ "view-timeline-name",
612
+ "view-transition-class",
613
+ "view-transition-name",
614
+ "visibility",
615
+ "white-space",
616
+ "white-space-collapse",
617
+ "widows",
618
+ "width",
619
+ "will-change",
620
+ "window-dragging",
621
+ "window-shadow",
622
+ "word-break",
623
+ "word-spacing",
624
+ "word-wrap",
625
+ "wrap-flow",
626
+ "wrap-margin",
627
+ "wrap-through",
628
+ "writing-mode",
629
+ "x",
630
+ "y",
631
+ "z-index",
632
+ "zoom"
633
+ ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chaincss",
3
- "version": "1.12.8",
3
+ "version": "1.12.11",
4
4
  "description": "Chainable CSS-in-JS with build-time compilation, atomic CSS, and zero-runtime options",
5
5
  "keywords": [
6
6
  "css",
@@ -12,7 +12,23 @@
12
12
  "react",
13
13
  "nextjs",
14
14
  "vite",
15
- "webpack"
15
+ "webpack",
16
+ "styled-components",
17
+ "emotion",
18
+ "tailwind",
19
+ "vanilla-extract",
20
+ "panda-css",
21
+ "styling",
22
+ "component-library",
23
+ "theming",
24
+ "responsive",
25
+ "buildtime-css",
26
+ "buildtime",
27
+ "stylesheet",
28
+ "javascript",
29
+ "typescript",
30
+ "runtime-css",
31
+ "runtime"
16
32
  ],
17
33
  "author": "Rommel Caneos",
18
34
  "license": "MIT",
@@ -93,7 +109,8 @@
93
109
  ],
94
110
  "publishConfig": {
95
111
  "access": "public",
96
- "registry": "https://registry.npmjs.org/"
112
+ "registry": "https://registry.npmjs.org/",
113
+ "provenance": false
97
114
  },
98
115
  "bin": {
99
116
  "chaincss": "./node/chaincss.js"