vibe-design-system 2.5.1 → 2.5.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-design-system",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
4
4
  "description": "Auto-generate design systems for vibe coding projects",
5
5
  "type": "module",
6
6
  "bin": {
@@ -620,7 +620,7 @@ function extractComponentSuggestions() {
620
620
  if (count < 2) continue;
621
621
  const suggestedName = suggestNameFromContent(innerText) || suggestNameFromPattern(pattern);
622
622
  suggestions.push({
623
- suggestedName: suggestedName.replace(/\s+/g, ""),
623
+ suggestedName: sanitizeComponentName(suggestedName.replace(/\s+/g, "")),
624
624
  tagName: tagName || "div",
625
625
  pattern,
626
626
  fullJsx,
@@ -635,6 +635,15 @@ function extractComponentSuggestions() {
635
635
 
636
636
  const VDS_GENERATED_DIR = path.join(COMPONENTS_DIR, "vds-generated");
637
637
 
638
+ /** Ensure component name is valid JS: no leading digits/special chars, PascalCase. */
639
+ function sanitizeComponentName(name) {
640
+ if (!name || typeof name !== "string") return "Extracted";
641
+ let s = name.replace(/\s+/g, "").replace(/^[0-9\W_]+/, "");
642
+ if (!s) return "Extracted";
643
+ s = s.charAt(0).toUpperCase() + s.slice(1);
644
+ return s;
645
+ }
646
+
638
647
  function toKebab(str) {
639
648
  return str.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "");
640
649
  }
@@ -659,7 +668,7 @@ function writeVdsGeneratedComponents(suggestions) {
659
668
  const entries = [];
660
669
  for (let i = 0; i < suggestions.length; i++) {
661
670
  const s = suggestions[i];
662
- let baseName = (s.suggestedName || "Extracted").replace(/\s+/g, "");
671
+ let baseName = sanitizeComponentName(s.suggestedName || "Extracted");
663
672
  let fileName = baseName + ".tsx";
664
673
  if (usedNames.has(fileName)) fileName = baseName + String(i + 1) + ".tsx";
665
674
  usedNames.add(fileName);