specsmd 0.0.5 → 0.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.
Files changed (2) hide show
  1. package/lib/ink-logo.mjs +52 -7
  2. package/package.json +1 -1
package/lib/ink-logo.mjs CHANGED
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * specs.md Logo Component
4
4
  *
5
- * Red ASCII logo with black shadows
5
+ * Red ASCII logo with dark gray shadows
6
6
  */
7
7
 
8
8
  import React from 'react';
@@ -10,12 +10,13 @@ import { render, Text, Box } from 'ink';
10
10
 
11
11
  const { createElement: h } = React;
12
12
 
13
- // Colors (red)
13
+ // Colors
14
14
  const LOGO_COLOR = '#CC0000';
15
+ const SHADOW_COLOR = '#333333';
15
16
  const VERSION_COLOR = '#FF3333';
16
17
 
17
18
  // ASCII Logo (exact from specs.md branding)
18
- const asciiLogoRaw = `
19
+ const asciiLogo = `
19
20
  █████
20
21
  ░░███
21
22
  █████ ████████ ██████ ██████ █████ █████████████ ███████
@@ -29,13 +30,57 @@ const asciiLogoRaw = `
29
30
  ░░░░░
30
31
  `;
31
32
 
32
- // Process to remove shadow characters (░ becomes space for black background)
33
- const asciiLogo = asciiLogoRaw.replace(/░/g, ' ');
33
+ // Render logo with colored characters
34
+ const ColoredLogo = () => {
35
+ const lines = asciiLogo.split('\n');
36
+
37
+ return h(Box, { flexDirection: 'column' },
38
+ lines.map((line, lineIndex) => {
39
+ // Parse each line into segments of same-colored characters
40
+ const segments = [];
41
+ let currentType = null;
42
+ let currentText = '';
43
+
44
+ for (const char of line) {
45
+ let charType;
46
+ if (char === '█') {
47
+ charType = 'fill';
48
+ } else if (char === '░') {
49
+ charType = 'shadow';
50
+ } else {
51
+ charType = 'space';
52
+ }
53
+
54
+ if (charType !== currentType && currentText) {
55
+ segments.push({ type: currentType, text: currentText });
56
+ currentText = '';
57
+ }
58
+ currentType = charType;
59
+ currentText += char;
60
+ }
61
+ if (currentText) {
62
+ segments.push({ type: currentType, text: currentText });
63
+ }
64
+
65
+ return h(Text, { key: lineIndex },
66
+ segments.map((seg, segIndex) => {
67
+ if (seg.type === 'fill') {
68
+ return h(Text, { key: segIndex, color: LOGO_COLOR }, seg.text);
69
+ } else if (seg.type === 'shadow') {
70
+ return h(Text, { key: segIndex, color: SHADOW_COLOR }, seg.text);
71
+ } else {
72
+ return h(Text, { key: segIndex }, seg.text);
73
+ }
74
+ })
75
+ );
76
+ })
77
+ );
78
+ };
34
79
 
35
80
  // Header component
36
81
  const Header = ({ version = '0.0.3' }) => {
37
82
  return h(Box, { flexDirection: 'column' },
38
- h(Text, { color: LOGO_COLOR }, asciiLogo),
83
+ h(ColoredLogo),
39
84
  h(Box, { marginTop: 0 },
40
85
  h(Text, { color: LOGO_COLOR },
41
86
  ' AI-native development orchestration ',
@@ -46,7 +91,7 @@ const Header = ({ version = '0.0.3' }) => {
46
91
  };
47
92
 
48
93
  // Exports for use in other modules
49
- export { Header, asciiLogo, LOGO_COLOR, VERSION_COLOR };
94
+ export { Header, asciiLogo, LOGO_COLOR, SHADOW_COLOR, VERSION_COLOR };
50
95
 
51
96
  // App component for standalone testing
52
97
  const App = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specsmd",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Multi-agent orchestration system for AI-native software development. Delivers AI-DLC, Agile, and custom SDLC flows as markdown-based agent systems.",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {