@rewrlution/papyrus-cli 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 (79) hide show
  1. package/README.md +4 -8
  2. package/dist/cli.js +0 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/auth/logout.js +2 -0
  5. package/dist/commands/auth/logout.js.map +1 -1
  6. package/dist/commands/journal/app.d.ts +1 -0
  7. package/dist/commands/journal/app.js +22 -0
  8. package/dist/commands/journal/app.js.map +1 -0
  9. package/dist/commands/journal/edit.js +8 -10
  10. package/dist/commands/journal/edit.js.map +1 -1
  11. package/dist/commands/journal/index.js +9 -10
  12. package/dist/commands/journal/index.js.map +1 -1
  13. package/dist/commands/journal/show.js +8 -14
  14. package/dist/commands/journal/show.js.map +1 -1
  15. package/dist/components/AppLayout.d.ts +32 -0
  16. package/dist/components/AppLayout.js +34 -0
  17. package/dist/components/AppLayout.js.map +1 -0
  18. package/dist/components/Divider.d.ts +7 -0
  19. package/dist/components/Divider.js +19 -0
  20. package/dist/components/Divider.js.map +1 -0
  21. package/dist/components/JournalBrowser.d.ts +14 -0
  22. package/dist/components/JournalBrowser.js +102 -0
  23. package/dist/components/JournalBrowser.js.map +1 -0
  24. package/dist/components/JournalList.d.ts +16 -0
  25. package/dist/components/JournalList.js +73 -0
  26. package/dist/components/JournalList.js.map +1 -0
  27. package/dist/components/JournalViewer.d.ts +5 -23
  28. package/dist/components/JournalViewer.js +73 -80
  29. package/dist/components/JournalViewer.js.map +1 -1
  30. package/dist/components/LoginForm.js +2 -2
  31. package/dist/components/LoginForm.js.map +1 -1
  32. package/dist/components/LogoCompact.d.ts +5 -0
  33. package/dist/components/LogoCompact.js +11 -0
  34. package/dist/components/LogoCompact.js.map +1 -0
  35. package/dist/components/RegisterForm.js +2 -2
  36. package/dist/components/RegisterForm.js.map +1 -1
  37. package/dist/components/StatusMessage.d.ts +2 -1
  38. package/dist/components/StatusMessage.js +3 -3
  39. package/dist/components/StatusMessage.js.map +1 -1
  40. package/dist/lib/auth/require-auth.js +4 -5
  41. package/dist/lib/auth/require-auth.js.map +1 -1
  42. package/dist/utils/alternate-screen.d.ts +46 -0
  43. package/dist/utils/alternate-screen.js +60 -0
  44. package/dist/utils/alternate-screen.js.map +1 -0
  45. package/dist/utils/date.js +3 -4
  46. package/dist/utils/date.js.map +1 -1
  47. package/dist/utils/editor.js +0 -1
  48. package/dist/utils/editor.js.map +1 -1
  49. package/dist/utils/journal-preview.d.ts +15 -0
  50. package/dist/utils/journal-preview.js +34 -0
  51. package/dist/utils/journal-preview.js.map +1 -0
  52. package/dist/utils/journal-preview.test.d.ts +1 -0
  53. package/dist/utils/journal-preview.test.js +62 -0
  54. package/dist/utils/journal-preview.test.js.map +1 -0
  55. package/dist/utils/messages.d.ts +43 -0
  56. package/dist/utils/messages.js +72 -0
  57. package/dist/utils/messages.js.map +1 -0
  58. package/dist/utils/text.d.ts +25 -0
  59. package/dist/utils/text.js +51 -0
  60. package/dist/utils/text.js.map +1 -0
  61. package/dist/utils/text.test.d.ts +1 -0
  62. package/dist/utils/text.test.js +47 -0
  63. package/dist/utils/text.test.js.map +1 -0
  64. package/package.json +3 -2
  65. package/dist/commands/journal/list.d.ts +0 -1
  66. package/dist/commands/journal/list.js +0 -20
  67. package/dist/commands/journal/list.js.map +0 -1
  68. package/dist/components/Browser.d.ts +0 -29
  69. package/dist/components/Browser.js +0 -124
  70. package/dist/components/Browser.js.map +0 -1
  71. package/dist/components/BrowserFooter.d.ts +0 -6
  72. package/dist/components/BrowserFooter.js +0 -6
  73. package/dist/components/BrowserFooter.js.map +0 -1
  74. package/dist/components/BrowserHeader.d.ts +0 -6
  75. package/dist/components/BrowserHeader.js +0 -6
  76. package/dist/components/BrowserHeader.js.map +0 -1
  77. package/dist/components/JournalListView.d.ts +0 -10
  78. package/dist/components/JournalListView.js +0 -40
  79. package/dist/components/JournalListView.js.map +0 -1
@@ -1,142 +1,135 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { Box, Text, useInput, useApp } from 'ink';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text, useInput, useApp, useStdout } from 'ink';
3
3
  import { useState, useMemo } from 'react';
4
4
  import { formatDateHeader } from '../utils/date.js';
5
+ import { AppLayout } from './AppLayout.js';
6
+ // Special characters
7
+ const NBSP = '\u00A0'; // Non-breaking space
8
+ const VBAR = '│'; // Vertical bar for line number separator
9
+ // Line number formatting
10
+ const LINE_NUMBER_WIDTH = 4; // Width for padded line numbers
11
+ const LINE_NUMBER_SEPARATOR = ` ${VBAR} `; // " │ " with spaces
5
12
  /**
6
- * Interactive journal viewer with keyboard navigation and scrolling.
13
+ * Journal viewer - displays full journal content with scrolling.
7
14
  *
8
- * Features:
9
- * - Virtual scrolling (only renders visible lines for performance)
10
- * - Horizontal panning for long lines (no text wrapping)
11
- * - Line numbers for easy reference
12
- * - Sticky header with date and position indicator
13
- * - Sticky footer with keyboard shortcuts
14
- * - Multiple navigation methods (arrows, vim keys, page up/down)
15
- *
16
- * Architecture:
17
- * 1. Split content into lines (memoized for performance)
18
- * 2. Calculate viewport dimensions based on terminal size
19
- * 3. Track scroll position (vertical and horizontal)
20
- * 4. Only render visible slice of content (virtual scrolling)
21
- * 5. Update scroll position on keyboard input
22
- *
23
- * Key Design Decisions:
24
- * - Each content line = 1 display row (no wrapping, use horizontal panning instead)
25
- * - Line numbers always correspond to content lines (1:1 mapping)
26
- * - Progress calculated from last visible line (shows 100% when viewing all content)
27
- * - Auto-reset horizontal position when moving vertically (better UX)
28
- * - React keys use line numbers (unique, stable identifiers)
15
+ * Uses AppLayout for consistent layout structure.
16
+ * Handles viewer-specific navigation and scrolling.
29
17
  */
30
18
  export const JournalViewer = ({ date, content, onExit, }) => {
31
19
  const { exit } = useApp();
20
+ const { stdout } = useStdout();
32
21
  // Split content into lines (memoized to avoid re-splitting on every render)
33
- const contentLines = useMemo(() => content.split('\n'), [content]);
34
- // Viewport configuration - calculate available space
35
- const terminalHeight = process.stdout.rows || 24;
36
- const terminalWidth = process.stdout.columns || 120;
37
- // Reserve space for UI elements
38
- // Note: These are estimates. Ink's flexbox will determine actual layout.
39
- const headerHeight = 3; // Header box takes ~3 lines
40
- const footerHeight = 2; // Footer box takes ~2 lines
41
- const reservedHeight = headerHeight + footerHeight;
42
- // Ensure we have at least 5 visible lines even in small terminals
22
+ // Remove trailing empty line if file ends with newline (which is standard)
23
+ const contentLines = useMemo(() => {
24
+ const lines = content.split('\n');
25
+ // If file ends with newline, split creates an empty last element - remove it
26
+ if (lines.length > 0 && lines[lines.length - 1] === '') {
27
+ return lines.slice(0, -1);
28
+ }
29
+ return lines;
30
+ }, [content]);
31
+ // Viewport configuration - use same stdout as AppLayoutGeneric
32
+ const terminalHeight = stdout?.rows || 24;
33
+ const terminalWidth = stdout?.columns || 120;
34
+ // Reserve space for UI elements:
35
+ // - Outer box border: 2 (top + bottom, handled by AppLayoutGeneric's height={terminalHeight-2})
36
+ // - Logo: 1
37
+ // - Divider: 1
38
+ // - Header: 1
39
+ // - Divider: 1
40
+ // - [Content area - what we calculate here]
41
+ // - Divider: 1
42
+ // - Footer: 1
43
+ // - Flex layout overhead: 2 (accounting for flexbox rendering and potential shrinkage)
44
+ // Total reserved: 2 + 1 + 1 + 1 + 1 + 1 + 1 + 2 = 10
45
+ const reservedHeight = 10;
43
46
  const visibleLines = Math.max(5, terminalHeight - reservedHeight);
44
- // Calculate available width for content (account for borders, padding, line numbers)
45
- const borderWidth = 2; // Left + right border (1 char each)
46
- const paddingWidth = 2; // paddingX={1} means 1 space on each side
47
- const lineNumberWidth = 7; // " 1 │ " format (4 digits + space + │ + space)
47
+ // Calculate available width for content
48
+ const borderWidth = 2;
49
+ const paddingWidth = 2;
50
+ const lineNumberWidth = LINE_NUMBER_WIDTH + LINE_NUMBER_SEPARATOR.length; // e.g., " 1 │ " = 4 + 3 = 7
48
51
  const contentWidth = terminalWidth - borderWidth - paddingWidth - lineNumberWidth;
49
52
  // Scroll state
50
- const [scrollOffset, setScrollOffset] = useState(0); // Vertical scroll (which line is at top)
51
- const [horizontalOffset, setHorizontalOffset] = useState(0); // Horizontal scroll (which column to start from)
52
- // Calculate maximum scroll position (can't scroll past end of content)
53
+ const [scrollOffset, setScrollOffset] = useState(0);
54
+ const [horizontalOffset, setHorizontalOffset] = useState(0);
55
+ // Calculate maximum scroll position
53
56
  const maxScroll = Math.max(0, contentLines.length - visibleLines);
54
57
  // Keyboard navigation
55
58
  useInput((input, key) => {
56
59
  // Quit (q or Escape)
57
60
  if (input === 'q' || key.escape) {
58
61
  if (onExit) {
59
- onExit(); // Call callback if provided (for returning to list view)
62
+ onExit();
60
63
  }
61
64
  else {
62
- exit(); // Exit app if no callback (standalone viewer)
65
+ exit();
63
66
  }
64
67
  return;
65
68
  }
66
69
  // Vertical navigation
67
- // Down (↓ or j)
68
70
  if (key.downArrow || input === 'j') {
69
71
  setScrollOffset((prev) => Math.min(prev + 1, maxScroll));
70
- setHorizontalOffset(0); // Reset to start of line
72
+ setHorizontalOffset(0);
71
73
  }
72
- // Up (↑ or k)
73
74
  if (key.upArrow || input === 'k') {
74
75
  setScrollOffset((prev) => Math.max(prev - 1, 0));
75
- setHorizontalOffset(0); // Reset to start of line
76
+ setHorizontalOffset(0);
76
77
  }
77
- // Page down (PgDn or Space)
78
78
  if (key.pageDown || input === ' ') {
79
79
  setScrollOffset((prev) => Math.min(prev + visibleLines, maxScroll));
80
- setHorizontalOffset(0); // Reset to start of line
80
+ setHorizontalOffset(0);
81
81
  }
82
- // Page up (PgUp)
83
82
  if (key.pageUp) {
84
83
  setScrollOffset((prev) => Math.max(prev - visibleLines, 0));
85
- setHorizontalOffset(0); // Reset to start of line
84
+ setHorizontalOffset(0);
86
85
  }
87
- // Jump to top (Home or g)
88
86
  if (key.home || input === 'g') {
89
87
  setScrollOffset(0);
90
- setHorizontalOffset(0); // Reset to start of line
88
+ setHorizontalOffset(0);
91
89
  }
92
- // Jump to bottom (End or G)
93
90
  if (key.end || input === 'G') {
94
91
  setScrollOffset(maxScroll);
95
- setHorizontalOffset(0); // Reset to start of line
92
+ setHorizontalOffset(0);
96
93
  }
97
94
  // Horizontal navigation
98
- // Left (← or h)
99
95
  if (key.leftArrow || input === 'h') {
100
96
  setHorizontalOffset((prev) => Math.max(prev - 10, 0));
101
97
  }
102
- // Right (→ or l)
103
98
  if (key.rightArrow || input === 'l') {
104
99
  setHorizontalOffset((prev) => prev + 10);
105
100
  }
106
- // Jump to start of line (0)
107
101
  if (input === '0') {
108
102
  setHorizontalOffset(0);
109
103
  }
110
104
  });
111
105
  // Virtual scrolling: only render visible lines
112
- // This is critical for performance with large journals (1000+ lines)
113
106
  const visibleContent = contentLines.slice(scrollOffset, scrollOffset + visibleLines);
114
- // Calculate position info based on LAST visible line
115
- // This ensures progress shows 100% when all content is visible
116
- // Example: Viewing lines 1-11 of 11 shows "Line 11/11 (100%)"
107
+ // Pad with empty lines to fill the terminal height
108
+ const paddingNeeded = Math.max(0, visibleLines - visibleContent.length);
109
+ const emptyLines = Array(paddingNeeded).fill('');
110
+ // Calculate position info
117
111
  const lastVisibleLine = Math.min(scrollOffset + visibleLines, contentLines.length);
118
112
  const progress = calculateProgress(lastVisibleLine, contentLines.length);
119
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, children: _jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { bold: true, color: "cyan", children: ["# ", formatDateHeader(date)] }), _jsxs(Text, { dimColor: true, children: ["Line ", lastVisibleLine, "/", contentLines.length, " (", progress, "%)"] })] }) }), _jsx(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "round", borderColor: "gray", paddingX: 1, children: visibleContent.map((line, idx) => {
120
- // Calculate actual line number in the full content
121
- const lineNumber = scrollOffset + idx + 1;
122
- const lineNumberStr = lineNumber.toString().padStart(4, ' ');
123
- // Slice line horizontally based on horizontal offset
124
- // This implements horizontal panning (no text wrapping)
125
- const visiblePortion = line.substring(horizontalOffset, horizontalOffset + contentWidth);
126
- // CRITICAL: Use lineNumber as React key (unique, stable identifier)
127
- // DO NOT use idx or scrollOffset + idx (causes stale content bug)
128
- // Note: We use a non-breaking space (U+00A0) for empty lines to prevent Ink
129
- // from collapsing the line entirely. Regular space might get optimized away.
130
- const displayContent = visiblePortion || '\u00A0'; // Non-breaking space
131
- return (_jsxs(Box, { flexDirection: "row", minHeight: 1, children: [_jsxs(Text, { dimColor: true, children: [lineNumberStr, " \u2502 "] }), _jsx(Text, { children: displayContent })] }, lineNumber));
132
- }) }), _jsx(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, children: _jsxs(Text, { dimColor: true, children: ["\u2191\u2193/jk Scroll \u2022 \u2190\u2192/hl Pan \u2022 0 Home \u2022 PgUp/PgDn Page \u2022 g/G Top/Bot \u2022 q Quit", horizontalOffset > 0 && ` • Col ${horizontalOffset + 1}+`] }) })] }));
113
+ // Header content: date and position
114
+ const headerContent = (_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { bold: true, color: "cyan", children: formatDateHeader(date) }), _jsxs(Text, { dimColor: true, children: ["Line ", lastVisibleLine, "/", contentLines.length, " (", progress, "%)"] })] }));
115
+ // Footer content: keyboard shortcuts
116
+ const footerContent = (_jsxs(Text, { dimColor: true, children: ["\u2191\u2193/jk Scroll \u2022 \u2190\u2192/hl Pan \u2022 0 Home \u2022 PgUp/PgDn Page \u2022 g/G Top/Bot \u2022 q Quit", horizontalOffset > 0 && ` • Col ${horizontalOffset + 1}+`] }));
117
+ // Format empty line number column (matches width of actual line numbers)
118
+ const emptyLineNumberColumn = ''.padStart(LINE_NUMBER_WIDTH, ' ') + LINE_NUMBER_SEPARATOR;
119
+ // Content area: scrollable journal lines
120
+ const contentArea = (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [visibleContent.map((line, idx) => {
121
+ const lineNumber = scrollOffset + idx + 1;
122
+ const lineNumberStr = lineNumber
123
+ .toString()
124
+ .padStart(LINE_NUMBER_WIDTH, ' ');
125
+ const visiblePortion = line.substring(horizontalOffset, horizontalOffset + contentWidth);
126
+ const displayContent = visiblePortion || NBSP;
127
+ return (_jsxs(Box, { flexDirection: "row", minHeight: 1, children: [_jsx(Text, { dimColor: true, children: lineNumberStr + LINE_NUMBER_SEPARATOR }), _jsx(Text, { children: displayContent })] }, lineNumber));
128
+ }), emptyLines.map((_, idx) => (_jsxs(Box, { flexDirection: "row", minHeight: 1, children: [_jsx(Text, { dimColor: true, children: emptyLineNumberColumn }), _jsx(Text, { children: NBSP })] }, `empty-${idx}`)))] }));
129
+ return (_jsx(AppLayout, { headerContent: headerContent, footerContent: footerContent, children: contentArea }));
133
130
  };
134
131
  /**
135
132
  * Calculate percentage through content.
136
- *
137
- * @param currentLine - Current line number (1-indexed)
138
- * @param totalLines - Total number of lines
139
- * @returns Percentage (0-100)
140
133
  */
141
134
  function calculateProgress(currentLine, totalLines) {
142
135
  if (totalLines === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"JournalViewer.js","sourceRoot":"","sources":["../../src/components/JournalViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JournalViewer.js","sourceRoot":"","sources":["../../src/components/JournalViewer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC7D,OAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAqB;AACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,qBAAqB;AAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,yCAAyC;AAE3D,yBAAyB;AACzB,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC,gCAAgC;AAC7D,MAAM,qBAAqB,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,oBAAoB;AAQ/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/B,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,6EAA6E;QAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,+DAA+D;IAC/D,MAAM,cAAc,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC;IAE7C,iCAAiC;IACjC,gGAAgG;IAChG,YAAY;IACZ,eAAe;IACf,cAAc;IACd,eAAe;IACf,4CAA4C;IAC5C,eAAe;IACf,cAAc;IACd,uFAAuF;IACvF,qDAAqD;IACrD,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,CAAC;IAElE,wCAAwC;IACxC,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,MAAM,eAAe,GAAG,iBAAiB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,8BAA8B;IACxG,MAAM,YAAY,GAChB,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,CAAC;IAE/D,eAAe;IACf,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IAElE,sBAAsB;IACtB,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,qBAAqB;QACrB,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC;YACT,CAAC;YACD,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACzD,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACjC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClC,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;YACpE,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5D,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC7B,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACpC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CACvC,YAAY,EACZ,YAAY,GAAG,YAAY,CAC5B,CAAC;IAEF,mDAAmD;IACnD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEjD,0BAA0B;IAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,YAAY,GAAG,YAAY,EAC3B,YAAY,CAAC,MAAM,CACpB,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEzE,oCAAoC;IACpC,MAAM,aAAa,GAAG,CACpB,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,aACjC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YACpB,gBAAgB,CAAC,IAAI,CAAC,GAClB,EACP,MAAC,IAAI,IAAC,QAAQ,4BACN,eAAe,OAAG,YAAY,CAAC,MAAM,QAAI,QAAQ,UAClD,IACH,CACP,CAAC;IAEF,qCAAqC;IACrC,MAAM,aAAa,GAAG,CACpB,MAAC,IAAI,IAAC,QAAQ,6IAEX,gBAAgB,GAAG,CAAC,IAAI,UAAU,gBAAgB,GAAG,CAAC,GAAG,IACrD,CACR,CAAC;IAEF,yEAAyE;IACzE,MAAM,qBAAqB,GACzB,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC;IAE9D,yCAAyC;IACzC,MAAM,WAAW,GAAG,CAClB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACpC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAChC,MAAM,UAAU,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC1C,MAAM,aAAa,GAAG,UAAU;qBAC7B,QAAQ,EAAE;qBACV,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CACnC,gBAAgB,EAChB,gBAAgB,GAAG,YAAY,CAChC,CAAC;gBACF,MAAM,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;gBAE9C,OAAO,CACL,MAAC,GAAG,IAAkB,aAAa,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,aACpD,KAAC,IAAI,IAAC,QAAQ,kBAAE,aAAa,GAAG,qBAAqB,GAAQ,EAC7D,KAAC,IAAI,cAAE,cAAc,GAAQ,KAFrB,UAAU,CAGd,CACP,CAAC;YACJ,CAAC,CAAC,EAED,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAC1B,MAAC,GAAG,IAAsB,aAAa,EAAC,KAAK,EAAC,SAAS,EAAE,CAAC,aACxD,KAAC,IAAI,IAAC,QAAQ,kBAAE,qBAAqB,GAAQ,EAC7C,KAAC,IAAI,cAAE,IAAI,GAAQ,KAFX,SAAS,GAAG,EAAE,CAGlB,CACP,CAAC,IACE,CACP,CAAC;IAEF,OAAO,CACL,KAAC,SAAS,IAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,YAClE,WAAW,GACF,CACb,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB,CAAC,WAAmB,EAAE,UAAkB;IAChE,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;AACtD,CAAC"}
@@ -6,7 +6,7 @@ import { SigninSchema } from '@rewrlution/papyrus-shared';
6
6
  import { api } from '../lib/api/index.js';
7
7
  import { ColdStartAwareSpinner } from './ColdStart.js';
8
8
  import { FormInput } from './FormInput.js';
9
- import { Logo } from './Logo.js';
9
+ import { LogoCompact } from './LogoCompact.js';
10
10
  import { StatusMessage } from './StatusMessage.js';
11
11
  export function LoginForm() {
12
12
  const { exit } = useApp();
@@ -63,6 +63,6 @@ export function LoginForm() {
63
63
  exit(); // Exit with code 0 - error message already displayed
64
64
  }, 1000);
65
65
  };
66
- return (_jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 2, children: [_jsx(Logo, {}), _jsx(Newline, {}), _jsx(Text, { color: "gray", dimColor: true, children: "Login to your account" }), _jsx(Text, { color: "gray", dimColor: true, children: "Press Ctrl+C to cancel" }), _jsx(Newline, {}), step === 'email' && (_jsx(FormInput, { label: "Email", value: email, onChange: setEmail, placeholder: "user@example.com", focus: true })), step === 'password' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: "Email:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: email })] }), _jsx(FormInput, { label: "Password", value: password, onChange: setPassword, mask: "*", focus: true })] })), step === 'validating' && (_jsx(StatusMessage, { type: "loading", message: "Validating..." })), step === 'submitting' && (_jsx(ColdStartAwareSpinner, { message: "Logging in..." })), step === 'success' && (_jsx(StatusMessage, { type: "success", message: `Welcome back, ${userName}!` })), step === 'error' && (_jsx(StatusMessage, { type: "error", message: errorMessage }))] }));
66
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 2, children: [_jsx(LogoCompact, {}), _jsx(Newline, {}), _jsx(Text, { color: "gray", dimColor: true, children: "Login to your account" }), _jsx(Text, { color: "gray", dimColor: true, children: "Press Ctrl+C to cancel" }), _jsx(Newline, {}), step === 'email' && (_jsx(FormInput, { label: "Email", value: email, onChange: setEmail, placeholder: "user@example.com", focus: true })), step === 'password' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: "Email:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: email })] }), _jsx(FormInput, { label: "Password", value: password, onChange: setPassword, mask: "*", focus: true })] })), step === 'validating' && (_jsx(StatusMessage, { type: "loading", message: "Validating..." })), step === 'submitting' && (_jsx(ColdStartAwareSpinner, { message: "Logging in..." })), step === 'success' && (_jsx(StatusMessage, { type: "success", message: `Welcome back, ${userName}!` })), step === 'error' && (_jsx(StatusMessage, { type: "error", message: errorMessage }))] }));
67
67
  }
68
68
  //# sourceMappingURL=LoginForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginForm.js","sourceRoot":"","sources":["../../src/components/LoginForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoginForm.js","sourceRoot":"","sources":["../../src/components/LoginForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Compact logo for interactive commands (login, register, list)
3
+ * Takes up minimal space while maintaining branding
4
+ */
5
+ export declare function LogoCompact(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import chalk from 'chalk';
3
+ import { Text, Box } from 'ink';
4
+ /**
5
+ * Compact logo for interactive commands (login, register, list)
6
+ * Takes up minimal space while maintaining branding
7
+ */
8
+ export function LogoCompact() {
9
+ return (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { children: [chalk.cyan('P'), chalk.blue('A'), chalk.green('P'), chalk.yellow('Y'), chalk.rgb(255, 165, 0)('R'), chalk.magenta('U'), chalk.red('S'), " ", chalk.gray('│'), ' ', chalk.dim('AI-powered developer journaling')] }) }));
10
+ }
11
+ //# sourceMappingURL=LogoCompact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoCompact.js","sourceRoot":"","sources":["../../src/components/LogoCompact.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,MAAC,IAAI,eACF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EACf,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAChB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EACjB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAC3B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAClB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EACrC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,IACxC,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -6,7 +6,7 @@ import { SignupSchema } from '@rewrlution/papyrus-shared';
6
6
  import { api } from '../lib/api/index.js';
7
7
  import { ColdStartAwareSpinner } from './ColdStart.js';
8
8
  import { FormInput } from './FormInput.js';
9
- import { Logo } from './Logo.js';
9
+ import { LogoCompact } from './LogoCompact.js';
10
10
  import { StatusMessage } from './StatusMessage.js';
11
11
  export function RegisterForm() {
12
12
  const { exit } = useApp();
@@ -67,6 +67,6 @@ export function RegisterForm() {
67
67
  exit(); // Exit with code 0 - error message already displayed
68
68
  }, 1000);
69
69
  };
70
- return (_jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 2, children: [_jsx(Logo, {}), _jsx(Newline, {}), _jsx(Text, { color: "gray", dimColor: true, children: "Create your Papyrus account" }), _jsx(Text, { color: "gray", dimColor: true, children: "Press Ctrl+C to cancel" }), _jsx(Newline, {}), step === 'email' && (_jsx(FormInput, { label: "Email", value: email, onChange: setEmail, placeholder: "user@example.com", focus: true })), step === 'password' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: "Email:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: email })] }), _jsx(FormInput, { label: "Password (8+ chars, uppercase, lowercase, number, special char)", value: password, onChange: setPassword, mask: "*", focus: true })] })), step === 'confirmPassword' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: "Email:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: email })] }), _jsx(Text, { color: "cyan", bold: true, children: "Password:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: '*'.repeat(password.length) })] }), _jsx(FormInput, { label: "Confirm Password", value: confirmPassword, onChange: setConfirmPassword, mask: "*", focus: true })] })), step === 'validating' && (_jsx(StatusMessage, { type: "loading", message: "Validating..." })), step === 'submitting' && (_jsx(ColdStartAwareSpinner, { message: "Creating account..." })), step === 'success' && (_jsx(StatusMessage, { type: "success", message: `Registration successful!\nPlease check ${userName} to verify your account. If you don't receive the verification email, contact: rewrlution@gmail.com` })), step === 'error' && (_jsx(StatusMessage, { type: "error", message: errorMessage }))] }));
70
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 2, children: [_jsx(LogoCompact, {}), _jsx(Newline, {}), _jsx(Text, { color: "gray", dimColor: true, children: "Create your Papyrus account" }), _jsx(Text, { color: "gray", dimColor: true, children: "Press Ctrl+C to cancel" }), _jsx(Newline, {}), step === 'email' && (_jsx(FormInput, { label: "Email", value: email, onChange: setEmail, placeholder: "user@example.com", focus: true })), step === 'password' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: "Email:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: email })] }), _jsx(FormInput, { label: "Password (8+ chars, uppercase, lowercase, number, special char)", value: password, onChange: setPassword, mask: "*", focus: true })] })), step === 'confirmPassword' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: "Email:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: email })] }), _jsx(Text, { color: "cyan", bold: true, children: "Password:" }), _jsxs(Box, { marginLeft: 2, marginBottom: 1, children: [_jsx(Text, { color: "gray", children: '> ' }), _jsx(Text, { children: '*'.repeat(password.length) })] }), _jsx(FormInput, { label: "Confirm Password", value: confirmPassword, onChange: setConfirmPassword, mask: "*", focus: true })] })), step === 'validating' && (_jsx(StatusMessage, { type: "loading", message: "Validating..." })), step === 'submitting' && (_jsx(ColdStartAwareSpinner, { message: "Creating account..." })), step === 'success' && (_jsx(StatusMessage, { type: "success", message: `Registration successful!\nPlease check ${userName} to verify your account. If you don't receive the verification email, contact: rewrlution@gmail.com` })), step === 'error' && (_jsx(StatusMessage, { type: "error", message: errorMessage }))] }));
71
71
  }
72
72
  //# sourceMappingURL=RegisterForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegisterForm.js","sourceRoot":"","sources":["../../src/components/RegisterForm.tsx"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAWnD,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAE1B,aAAa;IACb,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAW,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE7C,0CAA0C;IAC1C,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClD,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,IAAI,KAAK,iBAAiB,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChE,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,qDAAqD;QACrD,OAAO,CAAC,YAAY,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,6BAA6B;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBACjD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,eAAe,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,CAAC;YAEjB,kDAAkD;YAClD,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjB,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChB,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBACvB,eAAe,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO,CAAC,kDAAkD;QAC5D,CAAC;QAED,+CAA+C;QAC/C,OAAO,CAAC,YAAY,CAAC,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;YAClD,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,eAAe,CAAC,KAAK,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC;YACxD,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QAED,+CAA+C;QAC/C,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,qDAAqD;QAC/D,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aAElD,KAAC,IAAI,KAAG,EACR,KAAC,OAAO,KAAG,EAGX,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,kDAEpB,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,6CAEpB,EACP,KAAC,OAAO,KAAG,EAGV,IAAI,KAAK,OAAO,IAAI,CACnB,KAAC,SAAS,IACR,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,kBAAkB,EAC9B,KAAK,EAAE,IAAI,GACX,CACH,EAGA,IAAI,KAAK,UAAU,IAAI,CACtB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,6BAEhB,EACP,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aACjC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,GAAQ,EAChC,KAAC,IAAI,cAAE,KAAK,GAAQ,IAChB,EAGN,KAAC,SAAS,IACR,KAAK,EAAC,iEAAiE,EACvE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAC,GAAG,EACR,KAAK,EAAE,IAAI,GACX,IACE,CACP,EAGA,IAAI,KAAK,iBAAiB,IAAI,CAC7B,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAEzB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,6BAEhB,EACP,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aACjC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,GAAQ,EAChC,KAAC,IAAI,cAAE,KAAK,GAAQ,IAChB,EAEN,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,gCAEhB,EACP,MAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aACjC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,GAAQ,EAChC,KAAC,IAAI,cAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAQ,IACtC,EAGN,KAAC,SAAS,IACR,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAC,GAAG,EACR,KAAK,EAAE,IAAI,GACX,IACE,CACP,EAGA,IAAI,KAAK,YAAY,IAAI,CACxB,KAAC,aAAa,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAC,eAAe,GAAG,CACzD,EAGA,IAAI,KAAK,YAAY,IAAI,CACxB,KAAC,qBAAqB,IAAC,OAAO,EAAC,qBAAqB,GAAG,CACxD,EAGA,IAAI,KAAK,SAAS,IAAI,CACrB,KAAC,aAAa,IACZ,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,0CAA0C,QAAQ,qGAAqG,GAChK,CACH,EAGA,IAAI,KAAK,OAAO,IAAI,CACnB,KAAC,aAAa,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,YAAY,GAAI,CACtD,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"RegisterForm.js","sourceRoot":"","sources":["../../src/components/RegisterForm.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ type MessageType = 'success' | 'error' | 'info' | 'loading';
2
2
  interface StatusMessageProps {
3
3
  type: MessageType;
4
4
  message: string;
5
+ hint?: string;
5
6
  }
6
- export declare function StatusMessage({ type, message }: StatusMessageProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function StatusMessage({ type, message, hint }: StatusMessageProps): import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
3
  const icons = {
4
4
  success: '✅',
@@ -12,8 +12,8 @@ const colors = {
12
12
  info: 'blue',
13
13
  loading: 'cyan',
14
14
  };
15
- export function StatusMessage({ type, message }) {
15
+ export function StatusMessage({ type, message, hint }) {
16
16
  const lines = message.split('\n');
17
- return (_jsx(Box, { marginTop: 1, flexDirection: "column", children: lines.map((line, index) => (_jsx(Text, { color: colors[type], children: index === 0 ? `${icons[type]} ${line}` : ` ${line}` }, index))) }));
17
+ return (_jsxs(Box, { flexDirection: "column", children: [lines.map((line, index) => (_jsx(Text, { color: colors[type], children: index === 0 ? `${icons[type]} ${line}` : ` ${line}` }, index))), hint && _jsxs(Text, { color: "gray", children: ["\uD83D\uDCA1 ", hint] })] }));
18
18
  }
19
19
  //# sourceMappingURL=StatusMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusMessage.js","sourceRoot":"","sources":["../../src/components/StatusMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAUhC,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAsB;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,KAAC,IAAI,IAAa,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,YAClC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,IAD7C,KAAK,CAET,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"StatusMessage.js","sourceRoot":"","sources":["../../src/components/StatusMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAsB;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,KAAC,IAAI,IAAa,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,YAClC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,IAD7C,KAAK,CAET,CACR,CAAC,EACD,IAAI,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,8BAAK,IAAI,IAAQ,IACxC,CACP,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import * as msg from '../../utils/messages.js';
1
2
  import { isTokenExpired, isTokenExpiringSoon, getTimeUntilExpiration, } from '../../utils/token.js';
2
3
  import { tokenStore } from '../storage/index.js';
3
4
  /**
@@ -93,15 +94,13 @@ export function requireAuth(options = {}) {
93
94
  export function ensureAuthenticated(options = {}) {
94
95
  const authResult = requireAuth(options);
95
96
  if (!authResult.isAuthenticated) {
96
- console.error(`Error: ${authResult.message}`);
97
- process.exit(1);
97
+ msg.error(authResult.message);
98
98
  }
99
99
  if (authResult.isExpired) {
100
- console.error(`Error: ${authResult.message}`);
101
- process.exit(1);
100
+ msg.error(authResult.message);
102
101
  }
103
102
  if (authResult.isExpiringSoon && authResult.message) {
104
- console.warn(`Warning: ${authResult.message}`);
103
+ msg.warn(authResult.message);
105
104
  }
106
105
  }
107
106
  //# sourceMappingURL=require-auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"require-auth.js","sourceRoot":"","sources":["../../../src/lib/auth/require-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA2BjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,EAAE,wBAAwB,GAAG,EAAE,EAAE,kBAAkB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7E,mCAAmC;IACnC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QACzB,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,qDAAqD;SAC/D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,kDAAkD;SAC5D,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,oCAAoC;QACpC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,6DAA6D;SACvE,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IAC1E,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,YAAY;QAC5B,mBAAmB;QACnB,OAAO,EACL,YAAY,IAAI,kBAAkB,IAAI,mBAAmB;YACvD,CAAC,CAAC,+BAA+B,mBAAmB,4CAA4C;YAChG,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA8B,EAAE;IAClE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"require-auth.js","sourceRoot":"","sources":["../../../src/lib/auth/require-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA2BjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,EAAE,wBAAwB,GAAG,EAAE,EAAE,kBAAkB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7E,mCAAmC;IACnC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QACzB,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,qDAAqD;SAC/D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,kDAAkD;SAC5D,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,oCAAoC;QACpC,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,KAAK;YACrB,mBAAmB,EAAE,IAAI;YACzB,OAAO,EAAE,6DAA6D;SACvE,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IAC1E,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,YAAY;QAC5B,mBAAmB;QACnB,OAAO,EACL,YAAY,IAAI,kBAAkB,IAAI,mBAAmB;YACvD,CAAC,CAAC,+BAA+B,mBAAmB,4CAA4C;YAChG,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA8B,EAAE;IAClE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAQ,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Alternate Screen Buffer Management
3
+ *
4
+ * Provides clean full-screen terminal UI experience using alternate screen buffer.
5
+ * When you enter alternate screen, the terminal saves current state and gives you
6
+ * a clean canvas. When you exit, it restores everything as if your app was never there.
7
+ *
8
+ * This is the standard approach used by vim, less, htop, and all professional TUI tools.
9
+ *
10
+ * ## Usage
11
+ *
12
+ * ```typescript
13
+ * import { withAlternateScreen } from './alternate-screen.js';
14
+ * import { render } from 'ink';
15
+ *
16
+ * await withAlternateScreen(async () => {
17
+ * const { waitUntilExit } = render(<YourComponent />);
18
+ * await waitUntilExit();
19
+ * });
20
+ * ```
21
+ *
22
+ * ## Known Limitations
23
+ *
24
+ * VS Code's integrated terminal may not properly restore screen state for complex
25
+ * Ink components. This is a VS Code limitation, not a bug in our code. The same
26
+ * code works perfectly in Windows Terminal, Git Bash, PowerShell, and other terminals.
27
+ *
28
+ * @see https://github.com/sindresorhus/ansi-escapes
29
+ */
30
+ /**
31
+ * Enter the alternate screen buffer.
32
+ * Saves current terminal state and switches to a clean screen.
33
+ */
34
+ export declare function enterAlternateScreen(): void;
35
+ /**
36
+ * Exit the alternate screen buffer.
37
+ * Restores the original terminal state.
38
+ */
39
+ export declare function exitAlternateScreen(): void;
40
+ /**
41
+ * Execute a function within the alternate screen buffer.
42
+ * Ensures the screen is properly restored even if an error occurs.
43
+ *
44
+ * @param fn - Async function to execute in alternate screen
45
+ */
46
+ export declare function withAlternateScreen(fn: () => Promise<void>): Promise<void>;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Alternate Screen Buffer Management
3
+ *
4
+ * Provides clean full-screen terminal UI experience using alternate screen buffer.
5
+ * When you enter alternate screen, the terminal saves current state and gives you
6
+ * a clean canvas. When you exit, it restores everything as if your app was never there.
7
+ *
8
+ * This is the standard approach used by vim, less, htop, and all professional TUI tools.
9
+ *
10
+ * ## Usage
11
+ *
12
+ * ```typescript
13
+ * import { withAlternateScreen } from './alternate-screen.js';
14
+ * import { render } from 'ink';
15
+ *
16
+ * await withAlternateScreen(async () => {
17
+ * const { waitUntilExit } = render(<YourComponent />);
18
+ * await waitUntilExit();
19
+ * });
20
+ * ```
21
+ *
22
+ * ## Known Limitations
23
+ *
24
+ * VS Code's integrated terminal may not properly restore screen state for complex
25
+ * Ink components. This is a VS Code limitation, not a bug in our code. The same
26
+ * code works perfectly in Windows Terminal, Git Bash, PowerShell, and other terminals.
27
+ *
28
+ * @see https://github.com/sindresorhus/ansi-escapes
29
+ */
30
+ import ansiEscapes from 'ansi-escapes';
31
+ /**
32
+ * Enter the alternate screen buffer.
33
+ * Saves current terminal state and switches to a clean screen.
34
+ */
35
+ export function enterAlternateScreen() {
36
+ process.stdout.write(ansiEscapes.enterAlternativeScreen);
37
+ }
38
+ /**
39
+ * Exit the alternate screen buffer.
40
+ * Restores the original terminal state.
41
+ */
42
+ export function exitAlternateScreen() {
43
+ process.stdout.write(ansiEscapes.exitAlternativeScreen);
44
+ }
45
+ /**
46
+ * Execute a function within the alternate screen buffer.
47
+ * Ensures the screen is properly restored even if an error occurs.
48
+ *
49
+ * @param fn - Async function to execute in alternate screen
50
+ */
51
+ export async function withAlternateScreen(fn) {
52
+ enterAlternateScreen();
53
+ try {
54
+ await fn();
55
+ }
56
+ finally {
57
+ exitAlternateScreen();
58
+ }
59
+ }
60
+ //# sourceMappingURL=alternate-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternate-screen.js","sourceRoot":"","sources":["../../src/utils/alternate-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAuB;IAEvB,oBAAoB,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;YAAS,CAAC;QACT,mBAAmB,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -102,10 +102,9 @@ export function parseDateToLocalTimestamp(dateString) {
102
102
  * Example: "20260104" → "January 4, 2026 (Saturday)"
103
103
  */
104
104
  export function formatDateHeader(dateStr) {
105
- const year = dateStr.substring(0, 4);
106
- const month = dateStr.substring(4, 6);
107
- const day = dateStr.substring(6, 8);
108
- const date = new Date(`${year}-${month}-${day}`);
105
+ // Use parseDateToLocalTimestamp to create Date in local timezone at noon
106
+ // This avoids timezone edge cases (e.g., "2025-10-06" as UTC being "2025-10-05" in PST)
107
+ const date = parseDateToLocalTimestamp(dateStr);
109
108
  const options = {
110
109
  year: 'numeric',
111
110
  month: 'long',
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,6 @@ export function openInEditor(content, baseFilename = 'papyrus.md') {
52
52
  fs.writeFileSync(tempFile, content, 'utf-8');
53
53
  try {
54
54
  const editor = detectEditor();
55
- console.log(`Opening in ${editor}...`);
56
55
  // Determine args based on editor
57
56
  const args = editor === 'code' ? ['--wait', tempFile] : [tempFile];
58
57
  const result = spawnSync(editor, args, {