chaincss 2.0.5 → 2.0.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.
- package/dist/cli/index.js +391 -14
- package/dist/compiler/btt.d.ts +8 -0
- package/dist/compiler/btt.d.ts.map +1 -1
- package/dist/compiler/index.js +97 -1
- package/dist/core/compiler.d.ts.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.js +4505 -4098
- package/dist/plugins/vite.js +24029 -23628
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -518,9 +518,75 @@ var init_commonProps = __esm({
|
|
|
518
518
|
});
|
|
519
519
|
|
|
520
520
|
// src/compiler/btt.ts
|
|
521
|
+
var btt_exports = {};
|
|
522
|
+
__export(btt_exports, {
|
|
523
|
+
$: () => $,
|
|
524
|
+
atomicOptimizer: () => atomicOptimizer,
|
|
525
|
+
chain: () => chain,
|
|
526
|
+
chainObject: () => chain,
|
|
527
|
+
clearTimeline: () => clearTimeline,
|
|
528
|
+
compile: () => compile,
|
|
529
|
+
configureAtomic: () => configureAtomic,
|
|
530
|
+
createTokens: () => createTokens,
|
|
531
|
+
enableDebug: () => enableDebug,
|
|
532
|
+
enableTimeline: () => enableTimeline,
|
|
533
|
+
exportTimeline: () => exportTimeline,
|
|
534
|
+
generateComponentCode: () => generateComponentCode,
|
|
535
|
+
getStyleChanges: () => getStyleChanges,
|
|
536
|
+
getStyleDiff: () => getStyleDiff,
|
|
537
|
+
getStyleHistory: () => getStyleHistory,
|
|
538
|
+
helpers: () => helpers,
|
|
539
|
+
recipe: () => recipe,
|
|
540
|
+
run: () => run,
|
|
541
|
+
setAtomicOptimizer: () => setAtomicOptimizer,
|
|
542
|
+
setBreakpoints: () => setBreakpoints,
|
|
543
|
+
setSourceComments: () => setSourceComments,
|
|
544
|
+
tokens: () => tokens2
|
|
545
|
+
});
|
|
521
546
|
import path2 from "path";
|
|
522
547
|
import https from "https";
|
|
523
548
|
import { fileURLToPath } from "url";
|
|
549
|
+
function enableTimeline(enable = true) {
|
|
550
|
+
timelineEnabled = enable;
|
|
551
|
+
if (!enable) {
|
|
552
|
+
styleHistory = [];
|
|
553
|
+
styleChanges = [];
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
function getStyleHistory() {
|
|
557
|
+
return styleHistory;
|
|
558
|
+
}
|
|
559
|
+
function getStyleChanges() {
|
|
560
|
+
return styleChanges;
|
|
561
|
+
}
|
|
562
|
+
function getStyleDiff(snapshotId1, snapshotId2) {
|
|
563
|
+
const snapshot1 = styleHistory.find((s) => s.id === snapshotId1);
|
|
564
|
+
const snapshot2 = styleHistory.find((s) => s.id === snapshotId2);
|
|
565
|
+
if (!snapshot1 || !snapshot2) {
|
|
566
|
+
return { error: "Snapshot not found" };
|
|
567
|
+
}
|
|
568
|
+
const diff = {
|
|
569
|
+
added: {},
|
|
570
|
+
removed: {},
|
|
571
|
+
modified: {}
|
|
572
|
+
};
|
|
573
|
+
for (const [key, value] of Object.entries(snapshot2.styles)) {
|
|
574
|
+
if (!(key in snapshot1.styles)) {
|
|
575
|
+
diff.added[key] = value;
|
|
576
|
+
} else if (JSON.stringify(snapshot1.styles[key]) !== JSON.stringify(value)) {
|
|
577
|
+
diff.modified[key] = {
|
|
578
|
+
old: snapshot1.styles[key],
|
|
579
|
+
new: value
|
|
580
|
+
};
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
for (const [key, value] of Object.entries(snapshot1.styles)) {
|
|
584
|
+
if (!(key in snapshot2.styles)) {
|
|
585
|
+
diff.removed[key] = value;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
return diff;
|
|
589
|
+
}
|
|
524
590
|
function takeSnapshot(selector, styles, source) {
|
|
525
591
|
if (!timelineEnabled)
|
|
526
592
|
return "";
|
|
@@ -580,6 +646,239 @@ function takeSnapshot(selector, styles, source) {
|
|
|
580
646
|
}
|
|
581
647
|
return id;
|
|
582
648
|
}
|
|
649
|
+
function exportTimeline() {
|
|
650
|
+
return JSON.stringify({
|
|
651
|
+
history: styleHistory,
|
|
652
|
+
changes: styleChanges,
|
|
653
|
+
exportedAt: Date.now()
|
|
654
|
+
}, null, 2);
|
|
655
|
+
}
|
|
656
|
+
function clearTimeline() {
|
|
657
|
+
styleHistory = [];
|
|
658
|
+
styleChanges = [];
|
|
659
|
+
currentSnapshotId = 0;
|
|
660
|
+
}
|
|
661
|
+
function levenshteinDistance(a, b) {
|
|
662
|
+
const matrix = [];
|
|
663
|
+
for (let i = 0; i <= b.length; i++) {
|
|
664
|
+
matrix[i] = [i];
|
|
665
|
+
}
|
|
666
|
+
for (let j = 0; j <= a.length; j++) {
|
|
667
|
+
matrix[0][j] = j;
|
|
668
|
+
}
|
|
669
|
+
for (let i = 1; i <= b.length; i++) {
|
|
670
|
+
for (let j = 1; j <= a.length; j++) {
|
|
671
|
+
const cost = a[j - 1] === b[i - 1] ? 0 : 1;
|
|
672
|
+
matrix[i][j] = Math.min(
|
|
673
|
+
matrix[i - 1][j] + 1,
|
|
674
|
+
matrix[i][j - 1] + 1,
|
|
675
|
+
matrix[i - 1][j - 1] + cost
|
|
676
|
+
);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
return matrix[b.length][a.length];
|
|
680
|
+
}
|
|
681
|
+
function getSuggestion(prop, validProperties = []) {
|
|
682
|
+
const knownShorthands = Object.keys(shorthandMap);
|
|
683
|
+
const commonCSS = [
|
|
684
|
+
"display",
|
|
685
|
+
"position",
|
|
686
|
+
"margin",
|
|
687
|
+
"padding",
|
|
688
|
+
"color",
|
|
689
|
+
"background",
|
|
690
|
+
"background-color",
|
|
691
|
+
"border",
|
|
692
|
+
"border-radius",
|
|
693
|
+
"width",
|
|
694
|
+
"height",
|
|
695
|
+
"font-size",
|
|
696
|
+
"font-weight",
|
|
697
|
+
"text-align",
|
|
698
|
+
"cursor",
|
|
699
|
+
"opacity",
|
|
700
|
+
"z-index",
|
|
701
|
+
"overflow",
|
|
702
|
+
"flex",
|
|
703
|
+
"grid",
|
|
704
|
+
"gap",
|
|
705
|
+
"justify-content",
|
|
706
|
+
"align-items",
|
|
707
|
+
"transition",
|
|
708
|
+
"transform",
|
|
709
|
+
"animation"
|
|
710
|
+
];
|
|
711
|
+
const allKnown = [...knownShorthands, ...commonCSS, ...validProperties];
|
|
712
|
+
const uniqueKnown = [...new Set(allKnown)];
|
|
713
|
+
let bestMatch = "";
|
|
714
|
+
let bestDistance = 4;
|
|
715
|
+
for (const known of uniqueKnown) {
|
|
716
|
+
const distance = levenshteinDistance(prop.toLowerCase(), known.toLowerCase());
|
|
717
|
+
if (distance < bestDistance) {
|
|
718
|
+
bestDistance = distance;
|
|
719
|
+
bestMatch = known;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
if (bestMatch && bestDistance <= 3) {
|
|
723
|
+
return bestMatch;
|
|
724
|
+
}
|
|
725
|
+
return "";
|
|
726
|
+
}
|
|
727
|
+
function detectFrameworkFromProject() {
|
|
728
|
+
try {
|
|
729
|
+
__require.resolve("react/package.json");
|
|
730
|
+
return "react";
|
|
731
|
+
} catch (e) {
|
|
732
|
+
}
|
|
733
|
+
try {
|
|
734
|
+
__require.resolve("vue/package.json");
|
|
735
|
+
return "vue";
|
|
736
|
+
} catch (e) {
|
|
737
|
+
}
|
|
738
|
+
try {
|
|
739
|
+
__require.resolve("svelte/package.json");
|
|
740
|
+
return "svelte";
|
|
741
|
+
} catch (e) {
|
|
742
|
+
}
|
|
743
|
+
try {
|
|
744
|
+
__require.resolve("solid-js/package.json");
|
|
745
|
+
return "solid";
|
|
746
|
+
} catch (e) {
|
|
747
|
+
}
|
|
748
|
+
return "react";
|
|
749
|
+
}
|
|
750
|
+
function generateReactComponent(info) {
|
|
751
|
+
const propsInterface = info.propsDefinition ? Object.entries(info.propsDefinition).map(([key, type]) => ` ${key}?: ${type};`).join("\n") : " [key: string]: any;";
|
|
752
|
+
return `// Auto-generated by ChainCSS
|
|
753
|
+
import React from 'react';
|
|
754
|
+
import styles from './${info.name}.class.js';
|
|
755
|
+
import './${info.name}.css';
|
|
756
|
+
|
|
757
|
+
export interface ${info.name}Props {
|
|
758
|
+
className?: string;
|
|
759
|
+
children?: React.ReactNode;
|
|
760
|
+
${propsInterface}
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
export const ${info.name}: React.FC<${info.name}Props> = ({
|
|
764
|
+
className,
|
|
765
|
+
children,
|
|
766
|
+
...props
|
|
767
|
+
}) => {
|
|
768
|
+
const combinedClassName = [styles.${info.selector.replace(/^\./, "")}, className]
|
|
769
|
+
.filter(Boolean)
|
|
770
|
+
.join(' ');
|
|
771
|
+
|
|
772
|
+
return (
|
|
773
|
+
<div className={combinedClassName} {...props}>
|
|
774
|
+
{children}
|
|
775
|
+
</div>
|
|
776
|
+
);
|
|
777
|
+
};
|
|
778
|
+
|
|
779
|
+
${info.name}.displayName = 'ChainCSS${info.name}';
|
|
780
|
+
|
|
781
|
+
export default ${info.name};
|
|
782
|
+
`;
|
|
783
|
+
}
|
|
784
|
+
function generateVueComponent(info) {
|
|
785
|
+
const propsDefinition = info.propsDefinition ? Object.entries(info.propsDefinition).map(([key, type]) => ` ${key}: { type: ${type}, default: null },`).join("\n") : "";
|
|
786
|
+
return `<!-- Auto-generated by ChainCSS -->
|
|
787
|
+
<template>
|
|
788
|
+
<component
|
|
789
|
+
:is="tag"
|
|
790
|
+
:class="combinedClass"
|
|
791
|
+
v-bind="$attrs"
|
|
792
|
+
>
|
|
793
|
+
<slot />
|
|
794
|
+
</component>
|
|
795
|
+
</template>
|
|
796
|
+
|
|
797
|
+
<script>
|
|
798
|
+
import styles from './${info.name}.class.js';
|
|
799
|
+
import './${info.name}.css';
|
|
800
|
+
|
|
801
|
+
export default {
|
|
802
|
+
name: 'ChainCSS${info.name}',
|
|
803
|
+
props: {
|
|
804
|
+
tag: {
|
|
805
|
+
type: String,
|
|
806
|
+
default: 'div'
|
|
807
|
+
},
|
|
808
|
+
className: {
|
|
809
|
+
type: String,
|
|
810
|
+
default: ''
|
|
811
|
+
},
|
|
812
|
+
${propsDefinition}
|
|
813
|
+
},
|
|
814
|
+
computed: {
|
|
815
|
+
combinedClass() {
|
|
816
|
+
return [styles.${info.selector.replace(/^\./, "")}, this.className]
|
|
817
|
+
.filter(Boolean)
|
|
818
|
+
.join(' ');
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
};
|
|
822
|
+
</script>
|
|
823
|
+
`;
|
|
824
|
+
}
|
|
825
|
+
function generateSvelteComponent(info) {
|
|
826
|
+
return `<!-- Auto-generated by ChainCSS -->
|
|
827
|
+
<script>
|
|
828
|
+
import styles from './${info.name}.class.js';
|
|
829
|
+
import './${info.name}.css';
|
|
830
|
+
|
|
831
|
+
export let className = '';
|
|
832
|
+
export let tag = 'div';
|
|
833
|
+
|
|
834
|
+
$: combinedClass = [styles.${info.selector.replace(/^\./, "")}, className]
|
|
835
|
+
.filter(Boolean)
|
|
836
|
+
.join(' ');
|
|
837
|
+
</script>
|
|
838
|
+
|
|
839
|
+
<svelte:element this={tag} class={combinedClass}>
|
|
840
|
+
<slot />
|
|
841
|
+
</svelte:element>
|
|
842
|
+
`;
|
|
843
|
+
}
|
|
844
|
+
function generateSolidComponent(info) {
|
|
845
|
+
return `// Auto-generated by ChainCSS
|
|
846
|
+
import { splitProps } from 'solid-js';
|
|
847
|
+
import styles from './${info.name}.class.js';
|
|
848
|
+
import './${info.name}.css';
|
|
849
|
+
|
|
850
|
+
export function ${info.name}(props) {
|
|
851
|
+
const [local, others] = splitProps(props, ['class', 'children']);
|
|
852
|
+
const combinedClass = () => [styles.${info.selector.replace(/^\./, "")}, local.class]
|
|
853
|
+
.filter(Boolean)
|
|
854
|
+
.join(' ');
|
|
855
|
+
|
|
856
|
+
return (
|
|
857
|
+
<div class={combinedClass()} {...others}>
|
|
858
|
+
{local.children}
|
|
859
|
+
</div>
|
|
860
|
+
);
|
|
861
|
+
}
|
|
862
|
+
`;
|
|
863
|
+
}
|
|
864
|
+
function generateComponentCode(info) {
|
|
865
|
+
let framework = info.framework;
|
|
866
|
+
if (framework === "auto") {
|
|
867
|
+
framework = detectFrameworkFromProject();
|
|
868
|
+
}
|
|
869
|
+
switch (framework) {
|
|
870
|
+
case "react":
|
|
871
|
+
return generateReactComponent(info);
|
|
872
|
+
case "vue":
|
|
873
|
+
return generateVueComponent(info);
|
|
874
|
+
case "svelte":
|
|
875
|
+
return generateSvelteComponent(info);
|
|
876
|
+
case "solid":
|
|
877
|
+
return generateSolidComponent(info);
|
|
878
|
+
default:
|
|
879
|
+
return generateReactComponent(info);
|
|
880
|
+
}
|
|
881
|
+
}
|
|
583
882
|
function getSourceLocation() {
|
|
584
883
|
if (!enableSourceComments)
|
|
585
884
|
return null;
|
|
@@ -661,12 +960,23 @@ function max(...values) {
|
|
|
661
960
|
function clamp(min2, preferred, max2) {
|
|
662
961
|
return `clamp(${min2}, ${preferred}, ${max2})`;
|
|
663
962
|
}
|
|
963
|
+
function enableDebug(enable = true) {
|
|
964
|
+
debugMode = enable;
|
|
965
|
+
if (debugMode) {
|
|
966
|
+
console.log("\u{1F50D} ChainCSS Debug Mode Enabled");
|
|
967
|
+
}
|
|
968
|
+
}
|
|
664
969
|
function setBreakpoints(breakpoints) {
|
|
665
970
|
currentBreakpoints = { ...DEFAULT_BREAKPOINTS, ...breakpoints };
|
|
666
971
|
}
|
|
667
972
|
function setAtomicOptimizer(optimizer) {
|
|
668
973
|
atomicOptimizer = optimizer;
|
|
669
974
|
}
|
|
975
|
+
function configureAtomic(opts) {
|
|
976
|
+
if (atomicOptimizer) {
|
|
977
|
+
Object.assign(atomicOptimizer.options, opts);
|
|
978
|
+
}
|
|
979
|
+
}
|
|
670
980
|
function createTokens(tokenValues) {
|
|
671
981
|
const tokenObj = new DesignTokens(tokenValues);
|
|
672
982
|
currentTokenContext = tokenObj;
|
|
@@ -716,6 +1026,25 @@ function chaincssv2(useTokens = true) {
|
|
|
716
1026
|
};
|
|
717
1027
|
const handler = {
|
|
718
1028
|
get: (target, prop) => {
|
|
1029
|
+
if (prop === "componentName") {
|
|
1030
|
+
return (name) => {
|
|
1031
|
+
catcher._componentName = name;
|
|
1032
|
+
return proxy;
|
|
1033
|
+
};
|
|
1034
|
+
}
|
|
1035
|
+
if (prop === "component") {
|
|
1036
|
+
return (framework) => {
|
|
1037
|
+
catcher._generateComponent = true;
|
|
1038
|
+
catcher._framework = framework || "auto";
|
|
1039
|
+
return proxy;
|
|
1040
|
+
};
|
|
1041
|
+
}
|
|
1042
|
+
if (prop === "props") {
|
|
1043
|
+
return (propsDefinition) => {
|
|
1044
|
+
catcher._propsDefinition = propsDefinition;
|
|
1045
|
+
return proxy;
|
|
1046
|
+
};
|
|
1047
|
+
}
|
|
719
1048
|
if (prop === "debug") {
|
|
720
1049
|
return () => {
|
|
721
1050
|
debugMode = true;
|
|
@@ -919,6 +1248,17 @@ function chaincssv2(useTokens = true) {
|
|
|
919
1248
|
}
|
|
920
1249
|
const mappedProp = shorthandMap[prop] || prop;
|
|
921
1250
|
const cssProperty = mappedProp.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
1251
|
+
if (!shorthandMap[prop] && prop !== mappedProp) {
|
|
1252
|
+
const suggestion = getSuggestion(prop, validProperties);
|
|
1253
|
+
if (suggestion) {
|
|
1254
|
+
console.warn(`\u26A0\uFE0F ChainCSS: '${prop}' is not a recognized shorthand or CSS property. Did you mean '${suggestion}'?`);
|
|
1255
|
+
} else {
|
|
1256
|
+
console.warn(`\u26A0\uFE0F ChainCSS: '${prop}' is not a recognized shorthand or CSS property. It will be used as-is.`);
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
if (debugMode && mappedProp !== prop) {
|
|
1260
|
+
console.log(` \u{1F504} Shortcut: .${prop}() \u2192 ${mappedProp}`);
|
|
1261
|
+
}
|
|
922
1262
|
if (prop === "select") {
|
|
923
1263
|
return function(selector) {
|
|
924
1264
|
const nestedStyles = {};
|
|
@@ -1149,7 +1489,7 @@ function chaincssv2(useTokens = true) {
|
|
|
1149
1489
|
const cssProp = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
1150
1490
|
console.log(` \u{1F3A8} ${cssProp}: ${value}`);
|
|
1151
1491
|
}
|
|
1152
|
-
catcher[
|
|
1492
|
+
catcher[mappedProp] = resolveToken(value, useTokens, tokenContext);
|
|
1153
1493
|
return proxy;
|
|
1154
1494
|
};
|
|
1155
1495
|
}
|
|
@@ -5430,6 +5770,7 @@ export const classMap = {
|
|
|
5430
5770
|
const componentExports = /* @__PURE__ */ new Map();
|
|
5431
5771
|
const componentCSS = /* @__PURE__ */ new Map();
|
|
5432
5772
|
let allCSS = "";
|
|
5773
|
+
const allComponentInfo = [];
|
|
5433
5774
|
for (const file of components) {
|
|
5434
5775
|
const sourceDir = path4.dirname(file);
|
|
5435
5776
|
const baseName = path4.basename(file, ".chain.js");
|
|
@@ -5459,6 +5800,18 @@ export const classMap = {
|
|
|
5459
5800
|
compiledObj[`${baseName}_${name}`] = processedStyle;
|
|
5460
5801
|
compile(compiledObj);
|
|
5461
5802
|
componentCSSContent += chain.cssOutput + "\n";
|
|
5803
|
+
if (styleDef._generateComponent) {
|
|
5804
|
+
const componentName = styleDef._componentName || name;
|
|
5805
|
+
const selector = styleDef.selectors?.[0] || `.${componentName.toLowerCase()}`;
|
|
5806
|
+
allComponentInfo.push({
|
|
5807
|
+
name: componentName,
|
|
5808
|
+
selector,
|
|
5809
|
+
styles: styleDef,
|
|
5810
|
+
propsDefinition: styleDef._propsDefinition,
|
|
5811
|
+
framework: styleDef._framework || "auto",
|
|
5812
|
+
outputDir: stylesDir
|
|
5813
|
+
});
|
|
5814
|
+
}
|
|
5462
5815
|
}
|
|
5463
5816
|
}
|
|
5464
5817
|
if (code && componentCSSContent) {
|
|
@@ -5477,6 +5830,33 @@ export const classMap = {
|
|
|
5477
5830
|
}
|
|
5478
5831
|
}
|
|
5479
5832
|
}
|
|
5833
|
+
if (allComponentInfo.length > 0) {
|
|
5834
|
+
const { generateComponentCode: generateComponentCode2 } = await Promise.resolve().then(() => (init_btt(), btt_exports));
|
|
5835
|
+
for (const componentInfo of allComponentInfo) {
|
|
5836
|
+
try {
|
|
5837
|
+
const componentCode = generateComponentCode2({
|
|
5838
|
+
name: componentInfo.name,
|
|
5839
|
+
selector: componentInfo.selector,
|
|
5840
|
+
styles: componentInfo.styles,
|
|
5841
|
+
propsDefinition: componentInfo.propsDefinition,
|
|
5842
|
+
framework: componentInfo.framework
|
|
5843
|
+
});
|
|
5844
|
+
let ext = ".tsx";
|
|
5845
|
+
if (componentInfo.framework === "vue")
|
|
5846
|
+
ext = ".vue";
|
|
5847
|
+
if (componentInfo.framework === "svelte")
|
|
5848
|
+
ext = ".svelte";
|
|
5849
|
+
const componentPath = path4.join(componentInfo.outputDir, `${componentInfo.name}${ext}`);
|
|
5850
|
+
fs3.writeFileSync(componentPath, componentCode);
|
|
5851
|
+
if (this.config.verbose) {
|
|
5852
|
+
console.log(` \u2713 Generated component: ${componentPath}`);
|
|
5853
|
+
}
|
|
5854
|
+
} catch (error) {
|
|
5855
|
+
console.warn(` \u26A0 Failed to generate component for ${componentInfo.name}:`, error);
|
|
5856
|
+
}
|
|
5857
|
+
}
|
|
5858
|
+
console.log(`\u2713 Generated ${allComponentInfo.length} framework component(s)`);
|
|
5859
|
+
}
|
|
5480
5860
|
const globalStylesDir = path4.join(process.cwd(), "src/global-style");
|
|
5481
5861
|
if (!fs3.existsSync(globalStylesDir)) {
|
|
5482
5862
|
fs3.mkdirSync(globalStylesDir, { recursive: true });
|
|
@@ -5822,23 +6202,20 @@ program.command("init").description("Initialize ChainCSS configuration file").op
|
|
|
5822
6202
|
return;
|
|
5823
6203
|
}
|
|
5824
6204
|
const config = `export default {
|
|
6205
|
+
// Look for .chain.js files in src/styles folders
|
|
6206
|
+
inputs: ['src/**/*.chain.js', 'src/**/styles/*.chain.js'],
|
|
6207
|
+
|
|
6208
|
+
// Output class files next to source files (in the same folder)
|
|
6209
|
+
output: 'src',
|
|
6210
|
+
|
|
6211
|
+
// Where to put the combined global.css
|
|
6212
|
+
globalOutput: 'src/global.css',
|
|
6213
|
+
|
|
6214
|
+
verbose: true
|
|
5825
6215
|
components: 'src/**/*.chain.js'
|
|
5826
6216
|
};`;
|
|
5827
6217
|
writeFileSync(configPath, config);
|
|
5828
|
-
const exampleStyle = `import { $ } from 'chaincssv2';
|
|
5829
|
-
|
|
5830
|
-
export const button = $
|
|
5831
|
-
.display('inline-block')
|
|
5832
|
-
.padding('8px 16px')
|
|
5833
|
-
.backgroundColor('#667eea')
|
|
5834
|
-
.color('white')
|
|
5835
|
-
.borderRadius('8px')
|
|
5836
|
-
.cursor('pointer')
|
|
5837
|
-
.$el('.btn');
|
|
5838
|
-
`;
|
|
5839
|
-
writeFileSync("src/styles/example.chain.js", exampleStyle);
|
|
5840
6218
|
console.log(chalk3.green("\u2713 Created chaincss.config.js"));
|
|
5841
|
-
console.log(chalk3.green("\u2713 Created src/styles/example.chain.js"));
|
|
5842
6219
|
} catch (error) {
|
|
5843
6220
|
handleError(error, "init");
|
|
5844
6221
|
}
|
package/dist/compiler/btt.d.ts
CHANGED
|
@@ -23,6 +23,14 @@ export declare function getStyleChanges(): StyleChange[];
|
|
|
23
23
|
export declare function getStyleDiff(snapshotId1: string, snapshotId2: string): Record<string, any>;
|
|
24
24
|
export declare function exportTimeline(): string;
|
|
25
25
|
export declare function clearTimeline(): void;
|
|
26
|
+
interface ComponentInfo {
|
|
27
|
+
name: string;
|
|
28
|
+
selector: string;
|
|
29
|
+
styles: Record<string, any>;
|
|
30
|
+
propsDefinition?: Record<string, any>;
|
|
31
|
+
framework: 'react' | 'vue' | 'svelte' | 'solid' | 'auto';
|
|
32
|
+
}
|
|
33
|
+
export declare function generateComponentCode(info: ComponentInfo): string;
|
|
26
34
|
export declare function setSourceComments(enabled: boolean): void;
|
|
27
35
|
declare function calc(expression: string): string;
|
|
28
36
|
declare function add(a: string | number, b: string | number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btt.d.ts","sourceRoot":"","sources":["../../src/compiler/btt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"btt.d.ts","sourceRoot":"","sources":["../../src/compiler/btt.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/index.js
CHANGED
|
@@ -2838,6 +2838,72 @@ function takeSnapshot(selector, styles, source) {
|
|
|
2838
2838
|
}
|
|
2839
2839
|
return id;
|
|
2840
2840
|
}
|
|
2841
|
+
function levenshteinDistance(a, b) {
|
|
2842
|
+
const matrix = [];
|
|
2843
|
+
for (let i = 0; i <= b.length; i++) {
|
|
2844
|
+
matrix[i] = [i];
|
|
2845
|
+
}
|
|
2846
|
+
for (let j = 0; j <= a.length; j++) {
|
|
2847
|
+
matrix[0][j] = j;
|
|
2848
|
+
}
|
|
2849
|
+
for (let i = 1; i <= b.length; i++) {
|
|
2850
|
+
for (let j = 1; j <= a.length; j++) {
|
|
2851
|
+
const cost = a[j - 1] === b[i - 1] ? 0 : 1;
|
|
2852
|
+
matrix[i][j] = Math.min(
|
|
2853
|
+
matrix[i - 1][j] + 1,
|
|
2854
|
+
matrix[i][j - 1] + 1,
|
|
2855
|
+
matrix[i - 1][j - 1] + cost
|
|
2856
|
+
);
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2859
|
+
return matrix[b.length][a.length];
|
|
2860
|
+
}
|
|
2861
|
+
function getSuggestion(prop, validProperties = []) {
|
|
2862
|
+
const knownShorthands = Object.keys(shorthandMap);
|
|
2863
|
+
const commonCSS = [
|
|
2864
|
+
"display",
|
|
2865
|
+
"position",
|
|
2866
|
+
"margin",
|
|
2867
|
+
"padding",
|
|
2868
|
+
"color",
|
|
2869
|
+
"background",
|
|
2870
|
+
"background-color",
|
|
2871
|
+
"border",
|
|
2872
|
+
"border-radius",
|
|
2873
|
+
"width",
|
|
2874
|
+
"height",
|
|
2875
|
+
"font-size",
|
|
2876
|
+
"font-weight",
|
|
2877
|
+
"text-align",
|
|
2878
|
+
"cursor",
|
|
2879
|
+
"opacity",
|
|
2880
|
+
"z-index",
|
|
2881
|
+
"overflow",
|
|
2882
|
+
"flex",
|
|
2883
|
+
"grid",
|
|
2884
|
+
"gap",
|
|
2885
|
+
"justify-content",
|
|
2886
|
+
"align-items",
|
|
2887
|
+
"transition",
|
|
2888
|
+
"transform",
|
|
2889
|
+
"animation"
|
|
2890
|
+
];
|
|
2891
|
+
const allKnown = [...knownShorthands, ...commonCSS, ...validProperties];
|
|
2892
|
+
const uniqueKnown = [...new Set(allKnown)];
|
|
2893
|
+
let bestMatch = "";
|
|
2894
|
+
let bestDistance = 4;
|
|
2895
|
+
for (const known of uniqueKnown) {
|
|
2896
|
+
const distance = levenshteinDistance(prop.toLowerCase(), known.toLowerCase());
|
|
2897
|
+
if (distance < bestDistance) {
|
|
2898
|
+
bestDistance = distance;
|
|
2899
|
+
bestMatch = known;
|
|
2900
|
+
}
|
|
2901
|
+
}
|
|
2902
|
+
if (bestMatch && bestDistance <= 3) {
|
|
2903
|
+
return bestMatch;
|
|
2904
|
+
}
|
|
2905
|
+
return "";
|
|
2906
|
+
}
|
|
2841
2907
|
var enableSourceComments = true;
|
|
2842
2908
|
function getSourceLocation() {
|
|
2843
2909
|
if (!enableSourceComments)
|
|
@@ -3251,6 +3317,25 @@ function chaincssv2(useTokens = true) {
|
|
|
3251
3317
|
};
|
|
3252
3318
|
const handler = {
|
|
3253
3319
|
get: (target, prop) => {
|
|
3320
|
+
if (prop === "componentName") {
|
|
3321
|
+
return (name) => {
|
|
3322
|
+
catcher._componentName = name;
|
|
3323
|
+
return proxy;
|
|
3324
|
+
};
|
|
3325
|
+
}
|
|
3326
|
+
if (prop === "component") {
|
|
3327
|
+
return (framework) => {
|
|
3328
|
+
catcher._generateComponent = true;
|
|
3329
|
+
catcher._framework = framework || "auto";
|
|
3330
|
+
return proxy;
|
|
3331
|
+
};
|
|
3332
|
+
}
|
|
3333
|
+
if (prop === "props") {
|
|
3334
|
+
return (propsDefinition) => {
|
|
3335
|
+
catcher._propsDefinition = propsDefinition;
|
|
3336
|
+
return proxy;
|
|
3337
|
+
};
|
|
3338
|
+
}
|
|
3254
3339
|
if (prop === "debug") {
|
|
3255
3340
|
return () => {
|
|
3256
3341
|
debugMode = true;
|
|
@@ -3454,6 +3539,17 @@ function chaincssv2(useTokens = true) {
|
|
|
3454
3539
|
}
|
|
3455
3540
|
const mappedProp = shorthandMap[prop] || prop;
|
|
3456
3541
|
const cssProperty = mappedProp.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
3542
|
+
if (!shorthandMap[prop] && prop !== mappedProp) {
|
|
3543
|
+
const suggestion = getSuggestion(prop, validProperties);
|
|
3544
|
+
if (suggestion) {
|
|
3545
|
+
console.warn(`\u26A0\uFE0F ChainCSS: '${prop}' is not a recognized shorthand or CSS property. Did you mean '${suggestion}'?`);
|
|
3546
|
+
} else {
|
|
3547
|
+
console.warn(`\u26A0\uFE0F ChainCSS: '${prop}' is not a recognized shorthand or CSS property. It will be used as-is.`);
|
|
3548
|
+
}
|
|
3549
|
+
}
|
|
3550
|
+
if (debugMode && mappedProp !== prop) {
|
|
3551
|
+
console.log(` \u{1F504} Shortcut: .${prop}() \u2192 ${mappedProp}`);
|
|
3552
|
+
}
|
|
3457
3553
|
if (prop === "select") {
|
|
3458
3554
|
return function(selector) {
|
|
3459
3555
|
const nestedStyles = {};
|
|
@@ -3684,7 +3780,7 @@ function chaincssv2(useTokens = true) {
|
|
|
3684
3780
|
const cssProp = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
3685
3781
|
console.log(` \u{1F3A8} ${cssProp}: ${value}`);
|
|
3686
3782
|
}
|
|
3687
|
-
catcher[
|
|
3783
|
+
catcher[mappedProp] = resolveToken(value, useTokens, tokenContext);
|
|
3688
3784
|
return proxy;
|
|
3689
3785
|
};
|
|
3690
3786
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/core/compiler.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAgB9F,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,MAAM,GAAE,cAAmB;IAwBvC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,aAAa;IAgCvE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,aAAa;IAmC7D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAuC5D,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBzF,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAuB1F,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ3E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACxC,CAAC;IAqBI,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/core/compiler.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAgB9F,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,MAAM,GAAE,cAAmB;IAwBvC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,aAAa;IAgCvE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,aAAa;IAmC7D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAuC5D,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAgBzF,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAuB1F,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ3E,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACxC,CAAC;IAqBI,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA8J9C,YAAY;IAiB1B,OAAO,CAAC,IAAI;IASN,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhE,QAAQ,IAAI,GAAG;IAKf,UAAU,IAAI,IAAI;CAKnB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAGlD"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export interface StyleDefinition {
|
|
|
8
8
|
atRules?: AtRule[];
|
|
9
9
|
nestedRules?: NestedRule[];
|
|
10
10
|
themes?: ThemeBlock[];
|
|
11
|
+
_componentName?: string;
|
|
12
|
+
_generateComponent?: boolean;
|
|
13
|
+
_framework?: 'react' | 'vue' | 'svelte' | 'solid' | 'auto';
|
|
14
|
+
_propsDefinition?: Record<string, any>;
|
|
11
15
|
[cssProperty: string]: any;
|
|
12
16
|
}
|
|
13
17
|
export interface AtRule {
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|