plugin-gentleman 1.0.3 → 1.0.4

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/package.json +1 -1
  2. package/tui.tsx +11 -20
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "plugin-gentleman",
4
- "version": "1.0.3",
4
+ "version": "1.0.4",
5
5
  "description": "OpenCode TUI plugin featuring Mustachi - an animated ASCII mascot with eyes, mustache, and optional motivational phrases during busy states",
6
6
  "type": "module",
7
7
  "exports": {
package/tui.tsx CHANGED
@@ -227,22 +227,14 @@ const HomeLogo = (props: { theme: TuiThemeCurrent }) => {
227
227
  } else if (idx >= (2 * totalLines) / 3) {
228
228
  color = darkGray // Bottom shadow
229
229
  }
230
- return <text fg={color}>{line}</text>
230
+ return <text fg={color}>{line.padEnd(61, " ")}</text>
231
231
  })}
232
232
 
233
- {/* OpenCode branding — enlarged and prominent */}
234
- <box flexDirection="column" alignItems="center" marginTop={1}>
235
- <box flexDirection="row" gap={0}>
236
- <text fg={props.theme.textMuted}>╔═══════════╗</text>
237
- </box>
238
- <box flexDirection="row" gap={0}>
239
- <text fg={props.theme.textMuted}>║ </text>
240
- <text fg={props.theme.primary} bold={true}>OpenCode</text>
241
- <text fg={props.theme.textMuted}> ║</text>
242
- </box>
243
- <box flexDirection="row" gap={0}>
244
- <text fg={props.theme.textMuted}>╚═══════════╝</text>
245
- </box>
233
+ {/* OpenCode branding */}
234
+ <box flexDirection="row" gap={0} marginTop={1}>
235
+ <text fg={props.theme.textMuted} dimColor={true}>╭ </text>
236
+ <text fg={props.theme.primary} bold={true}> O p e n C o d e </text>
237
+ <text fg={props.theme.textMuted} dimColor={true}> ╮</text>
246
238
  </box>
247
239
 
248
240
  <text> </text>
@@ -378,8 +370,6 @@ const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; isBusy?:
378
370
  return lines
379
371
  }
380
372
 
381
- const faceLines = buildFace()
382
-
383
373
  // Grayscale palette for TUI clarity
384
374
  const lightGray = "#C0C0C0" // Light gray for highlights
385
375
  const midGray = "#808080" // Mid gray for main body
@@ -389,24 +379,25 @@ const SidebarMustachi = (props: { theme: TuiThemeCurrent; config: Cfg; isBusy?:
389
379
  return (
390
380
  <box flexDirection="column" alignItems="center">
391
381
  {/* Full Mustachi face with grayscale gradient + pink tongue */}
392
- {faceLines.map((line, idx) => {
382
+ {buildFace().map((line, idx, arr) => {
393
383
  // Check if this is a tongue line
394
384
  const isTongue = line.startsWith("TONGUE:")
395
385
  const displayLine = isTongue ? line.substring(7) : line
386
+ const paddedLine = displayLine.padEnd(25, " ")
396
387
 
397
388
  if (isTongue) {
398
- return <text fg={tongueColor}>{displayLine}</text>
389
+ return <text fg={tongueColor}>{paddedLine}</text>
399
390
  }
400
391
 
401
392
  // Apply grayscale gradient to eyes and mustache
402
- const totalLines = faceLines.length
393
+ const totalLines = arr.length
403
394
  let color = midGray
404
395
  if (idx < totalLines / 3) {
405
396
  color = lightGray // Top highlight
406
397
  } else if (idx >= (2 * totalLines) / 3) {
407
398
  color = darkGray // Bottom shadow
408
399
  }
409
- return <text fg={color}>{displayLine}</text>
400
+ return <text fg={color}>{paddedLine}</text>
410
401
  })}
411
402
 
412
403
  {/* Busy phrase if loading */}