diff --git a/.agents/skills/impeccable/scripts/lib/design-parser.mjs b/.agents/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.agents/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.agents/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.claude/skills/impeccable/scripts/lib/design-parser.mjs b/.claude/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.claude/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.claude/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.cursor/skills/impeccable/scripts/lib/design-parser.mjs b/.cursor/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.cursor/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.cursor/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.gemini/skills/impeccable/scripts/lib/design-parser.mjs b/.gemini/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.gemini/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.gemini/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.github/skills/impeccable/scripts/lib/design-parser.mjs b/.github/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.github/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.github/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.grok/skills/impeccable/scripts/lib/design-parser.mjs b/.grok/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.grok/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.grok/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.hermes/skills/impeccable/scripts/lib/design-parser.mjs b/.hermes/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.hermes/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.hermes/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.kiro/skills/impeccable/scripts/lib/design-parser.mjs b/.kiro/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.kiro/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.kiro/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.opencode/skills/impeccable/scripts/lib/design-parser.mjs b/.opencode/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.opencode/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.opencode/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.pi/skills/impeccable/scripts/lib/design-parser.mjs b/.pi/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.pi/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.pi/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.qoder/skills/impeccable/scripts/lib/design-parser.mjs b/.qoder/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.qoder/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.qoder/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.rovodev/skills/impeccable/scripts/lib/design-parser.mjs b/.rovodev/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.rovodev/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.rovodev/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.trae-cn/skills/impeccable/scripts/lib/design-parser.mjs b/.trae-cn/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.trae-cn/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.trae-cn/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.trae/skills/impeccable/scripts/lib/design-parser.mjs b/.trae/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.trae/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.trae/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/.vibe/skills/impeccable/scripts/lib/design-parser.mjs b/.vibe/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/.vibe/skills/impeccable/scripts/lib/design-parser.mjs +++ b/.vibe/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n'); diff --git a/plugin/skills/impeccable/scripts/lib/design-parser.mjs b/plugin/skills/impeccable/scripts/lib/design-parser.mjs index 7b060eeca..cab191d69 100644 --- a/plugin/skills/impeccable/scripts/lib/design-parser.mjs +++ b/plugin/skills/impeccable/scripts/lib/design-parser.mjs @@ -196,9 +196,6 @@ function parseScalar(raw) { const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g; const OKLCH_RE = /oklch\([^)]+\)/gi; -const RGBA_RE = /rgba?\([^)]+\)/gi; -const BOX_SHADOW_RE = /(?:box-shadow:\s*)?((?:-?\d[\w\d\s\-.,/()#%]*)+)/; -const NAMED_RULE_RE = /\*\*(The [^*]+?Rule)\.\*\*\s*(.+)/; // ---------- Section splitting ---------- @@ -550,36 +547,6 @@ function detectFormat(v) { return 'unknown'; } -function scanInlineColors(lines) { - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, ''); - const color = parseColorBullet(trimmed); - if (color) out.push(color); - } - return out; -} - -function parseStitchInlineGroups(lines) { - // Stitch writes: `* **Primary (`#00478d` to `#005eb8`):** Use for "..."` - // Each bullet IS its own role. Group them under the spoken role name. - const out = []; - for (const line of lines) { - if (!/^\s*[-*]\s/.test(line)) continue; - const trimmed = line.replace(/^\s*[-*]\s+/, '').trim(); - const m = trimmed.match( - /^\*\*([A-Z][a-zA-Z]+)\s*\(([^)]+)\):\*\*\s*(.*)$/ - ); - if (m) { - const role = m[1]; - const color = buildColor(role, m[2], m[3]); - out.push({ role, colors: [color] }); - } - } - return out; -} - function extractTypography(section) { if (!section) return null; const text = section.lines.join('\n');