@cli-use/tui 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../node_modules/tsup/assets/esm_shims.js","../../src/examples/ink-demo.tsx","../../src/cli/index.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import React, { useState } from 'react';\nimport { render, Box, Text, useInput } from 'ink';\n\nconst Counter = () => {\n const [count, setCount] = useState(0);\n\n useInput((input, key) => {\n if (key.escape || key.ctrl('c')) {\n process.exit(0);\n }\n if (key.return) {\n setCount(c => c + 1);\n }\n });\n\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Box borderStyle=\"double\" borderColor=\"cyan\" padding={1} marginBottom={1}>\n <Text bold color=\"magenta\">\n ✨ cli-use Demo - Beautiful Terminal UIs (Ink)\n </Text>\n </Box>\n\n <Box borderStyle=\"single\" borderColor=\"blue\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\" gap={1}>\n <Text bold>Features:</Text>\n <Text>• Cross-platform (macOS, Linux, Windows)</Text>\n <Text>• React-based components</Text>\n <Text>• Beautiful styling out of the box</Text>\n <Text>• TypeScript support</Text>\n </Box>\n </Box>\n\n <Box borderStyle=\"round\" borderColor=\"green\" padding={1} marginBottom={1}>\n <Box flexDirection=\"column\" alignItems=\"center\" gap={1}>\n <Text bold color=\"green\">🔢 Interactive Counter</Text>\n <Text>Count: {count}</Text>\n <Text dim>Press Enter to increment, ESC to exit</Text>\n </Box>\n </Box>\n\n <Box>\n <Text dim color=\"gray\">\n Built with ❤️ for beautiful terminal interfaces\n </Text>\n </Box>\n </Box>\n );\n};\n\nrender(<Counter />);\n","#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { createRequire } from 'module';\nimport { spawn } from 'child_process';\nimport { fileURLToPath } from 'url';\nimport path from 'path';\n\nconst require = createRequire(import.meta.url);\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst program = new Command();\n\nprogram.name('cli-use').description('React-based Terminal UI Framework').version('0.1.0');\n\nprogram\n .command('dev')\n .description('Start development mode')\n .action(() => {\n showDevTUI();\n });\n\nprogram\n .command('build')\n .description('Build project')\n .action(() => {\n showBuildTUI();\n });\n\nprogram\n .command('init [project-name]')\n .description('Create a new cli-use project')\n .action((projectName) => {\n showInitTUI(projectName || 'my-tui-app');\n });\n\nprogram\n .command('run <example>')\n .description('Run an example application')\n .action((exampleName) => {\n if (exampleName === 'ratatui') {\n showRustDemo();\n } else {\n showRunTUI(exampleName);\n }\n });\n\nprogram\n .command('examples')\n .description('List available examples')\n .action(() => {\n showExamplesTUI();\n });\n\nprogram.option('-d, --demo', 'Run the ink demo').action(() => {\n // Demo option handled at top level\n});\n\nconst options = program.parse(process.argv);\n\n// Handle --demo flag\nif (options.opts().demo) {\n // Since we're using ESM, we use import to run the ink demo\n import('../examples/ink-demo.tsx').catch((err: unknown) => {\n console.error('Failed to run demo:', err);\n process.exit(1);\n });\n}\n\nfunction showRustDemo() {\n const isWindows = process.platform === 'win32';\n const extension = isWindows ? '.exe' : '';\n const binaryPath = path.resolve(\n __dirname,\n `../../native/target/release/ratatui-demo${extension}`\n );\n\n console.log(chalk.cyan('Starting Ratatui Demo...'));\n\n const child = spawn(binaryPath, [], {\n stdio: 'inherit',\n });\n\n child.on('error', (err) => {\n console.error(chalk.red('Failed to start demo:'), err.message);\n console.log(\n chalk.yellow(\n '\\nMake sure you have built the Rust binary first by running: npm run build:rust'\n )\n );\n });\n}\n\nfunction showDevTUI() {\n console.clear();\n console.log('');\n console.log(\n chalk.cyan('┌─────────────────────────────────────────────────────────────────────┐')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold.white('cli-use ') + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Development Mode') + ' '.repeat(46) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.yellow('●') +\n ' ' +\n chalk.white('Watching for changes...') +\n ' '.repeat(36) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Build completed') +\n ' '.repeat(39) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.yellow('●') +\n ' ' +\n chalk.white('Hot Reload: Active') +\n ' '.repeat(37) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Quick Actions') + ' '.repeat(43) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('[r]') +\n ' ' +\n chalk.white('Rebuild') +\n ' '.repeat(43) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('[t]') +\n ' ' +\n chalk.white('Run tests') +\n ' '.repeat(43) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('[e]') +\n ' ' +\n chalk.white('Run example') +\n ' '.repeat(41) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('[q]') +\n ' ' +\n chalk.white('Quit') +\n ' '.repeat(46) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Output') + ' '.repeat(48) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Starting dev server...') +\n ' '.repeat(36) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim('Waiting for file changes...') +\n ' '.repeat(34) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Project Status') + ' '.repeat(43) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('Files: ') +\n chalk.cyan('142') +\n ' '.repeat(4) +\n chalk.white('Lines: ') +\n chalk.cyan('8,547') +\n ' '.repeat(35) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('Components: ') +\n chalk.green('7') +\n ' '.repeat(2) +\n chalk.white('Hooks: ') +\n chalk.green('8') +\n ' '.repeat(40) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('└─────────────────────────────────────────────────────────────────────┘')\n );\n console.log('');\n console.log(\n chalk.dim('Press ') +\n chalk.cyan('Ctrl+C') +\n chalk.dim(' to exit') +\n ' | ' +\n chalk.dim('Version: ') +\n chalk.white('0.1.0')\n );\n console.log('');\n}\n\nfunction showBuildTUI() {\n console.clear();\n console.log('');\n console.log(\n chalk.cyan('┌─────────────────────────────────────────────────────────────────────┐')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold.white('cli-use ') + chalk.cyan(' │'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Build Progress') + ' '.repeat(45) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Building...') + ' '.repeat(43) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('TypeScript compilation') +\n ' '.repeat(35) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Bundle with tsup') +\n ' '.repeat(38) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Generate declarations') +\n ' '.repeat(33) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.yellow('○') +\n ' ' +\n chalk.white('Optimize') +\n ' '.repeat(45) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' [' +\n chalk.green('█'.repeat(30)) +\n chalk.dim('░'.repeat(10)) +\n '] ' +\n chalk.white('75%') +\n ' '.repeat(4) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Output Files') + ' '.repeat(43) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + chalk.cyan('dist/') + ' '.repeat(49) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim('├── index.js ') +\n chalk.dim('(') +\n chalk.white('21.2 KB') +\n chalk.dim(')') +\n ' '.repeat(36) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.dim('├── cli/') + ' '.repeat(47) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim('│ └── index.js ') +\n chalk.dim('(') +\n chalk.white('3.0 KB') +\n chalk.dim(')') +\n ' '.repeat(34) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.dim('├── hooks/') + ' '.repeat(45) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim('│ └── index.js ') +\n chalk.dim('(') +\n chalk.white('7.3 KB') +\n chalk.dim(')') +\n ' '.repeat(34) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim('├── *.d.ts ') +\n chalk.dim('(') +\n chalk.white('4.2 KB') +\n chalk.dim(')') +\n ' '.repeat(39) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Build Summary') + ' '.repeat(43) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('Duration: ') +\n chalk.cyan('2.4s') +\n ' '.repeat(45) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('Bundles: ') +\n chalk.green('3') +\n ' '.repeat(45) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('Size: ') +\n chalk.cyan('31.5 KB') +\n ' '.repeat(45) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.white('Status: ') +\n chalk.green('✓ Success') +\n ' '.repeat(42) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('└─────────────────────────────────────────────────────────────────────┘')\n );\n console.log('');\n}\n\nfunction showInitTUI(projectName: string) {\n console.clear();\n console.log('');\n console.log(\n chalk.cyan('┌─────────────────────────────────────────────────────────────────────┐')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold.white('cli-use ') + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Project Setup') + ' '.repeat(45) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Creating new project:') + ' '.repeat(37) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('○') +\n ' ' +\n chalk.white('Project name: ') +\n chalk.green(projectName) +\n ' '.repeat(34) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Package: ') +\n chalk.cyan('cli-use@0.1.0') +\n ' '.repeat(32) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Template: ') +\n chalk.cyan('default') +\n ' '.repeat(38) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Project Structure') + ' '.repeat(39) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + chalk.cyan('src/') + ' '.repeat(49) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.dim('├── components/') + ' '.repeat(45) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.dim('│ ├── Box.tsx') + ' '.repeat(42) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.dim('│ ├── Text.tsx') + ' '.repeat(42) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.dim('│ ├── Button.tsx') + ' '.repeat(40) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.dim('│ └── ...') + ' '.repeat(47) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + chalk.dim('├── hooks/') + ' '.repeat(47) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.dim('├── renderer/') + ' '.repeat(44) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.dim('├── App.tsx') + ' '.repeat(45) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + chalk.dim('├── index.ts') + ' '.repeat(45) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.dim('└── package.json') + ' '.repeat(43) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Next Steps') + ' '.repeat(45) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('1.') +\n ' ' +\n chalk.white('cd ' + projectName) +\n ' '.repeat(40) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('2.') +\n ' ' +\n chalk.white('npm install') +\n ' '.repeat(44) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('3.') +\n ' ' +\n chalk.white('npm run dev') +\n ' '.repeat(43) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('4.') +\n ' ' +\n chalk.white('Start building!') +\n ' '.repeat(42) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('└─────────────────────────────────────────────────────────────────────┘')\n );\n console.log('');\n}\n\nfunction showRunTUI(exampleName: string) {\n console.clear();\n console.log('');\n console.log(\n chalk.cyan('┌─────────────────────────────────────────────────────────────────────┐')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold.white('cli-use ') + chalk.cyan(' │'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Example Runner') + ' '.repeat(44) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.bold('Running: ') +\n chalk.cyan(exampleName) +\n ' '.repeat(39) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n\n const examples = [\n {\n name: 'counter',\n title: 'Counter',\n desc: 'Interactive counter with keyboard controls',\n tags: ['beginner', 'hooks'],\n },\n { name: 'demo', title: 'Demo', desc: 'Feature demonstration showcase', tags: ['overview'] },\n {\n name: 'todos',\n title: 'Todo List',\n desc: 'Todo list with navigation',\n tags: ['interactive', 'state'],\n },\n {\n name: 'ratatui',\n title: 'Rust Demo',\n desc: 'Native Rust TUI integration',\n tags: ['rust', 'advanced'],\n },\n ];\n\n examples.forEach((ex, i) => {\n const isCurrent = ex.name === exampleName;\n const status = isCurrent ? chalk.green('●') : chalk.dim('○');\n const marker = isCurrent ? chalk.cyan('▶') : chalk.dim(' ');\n console.log(\n chalk.cyan('│') +\n ' ' +\n marker +\n ' ' +\n status +\n ' ' +\n chalk.white(ex.name) +\n ' '.repeat(39) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.dim(ex.desc) + ' '.repeat(47) + chalk.cyan('│'));\n if (i < examples.length - 1) {\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n }\n });\n\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Controls') + ' '.repeat(46) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('↑/↓') +\n ' ' +\n chalk.white('Navigate') +\n ' '.repeat(43) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('q') +\n ' ' +\n chalk.white('Quit') +\n ' '.repeat(46) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('r') +\n ' ' +\n chalk.white('Restart') +\n ' '.repeat(43) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Output') + ' '.repeat(47) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.green('✓') +\n ' ' +\n chalk.white('Example started successfully') +\n ' '.repeat(32) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim('Use arrow keys to interact with example') +\n ' '.repeat(19) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('└─────────────────────────────────────────────────────────────────────┘')\n );\n console.log('');\n}\n\nfunction showExamplesTUI() {\n console.clear();\n console.log('');\n console.log(\n chalk.cyan('┌─────────────────────────────────────────────────────────────────────┐')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold.white('cli-use ') + chalk.cyan(' │'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.bold('Example Gallery') + ' '.repeat(43) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n\n const examples = [\n {\n name: 'counter',\n title: 'Counter',\n desc: 'Interactive counter with keyboard controls',\n tags: ['beginner', 'hooks'],\n },\n { name: 'demo', title: 'Demo', desc: 'Feature demonstration showcase', tags: ['overview'] },\n {\n name: 'todos',\n title: 'Todo List',\n desc: 'Todo list with navigation',\n tags: ['interactive', 'state'],\n },\n ];\n\n examples.forEach((ex, i) => {\n const status = i === 0 ? chalk.cyan('▶') : chalk.dim('○');\n const tags = ex.tags.map((t) => chalk.dim('[') + chalk.cyan(t) + chalk.dim(']')).join(' ');\n console.log(\n chalk.cyan('│') +\n ' ' +\n status +\n ' ' +\n chalk.bold(ex.name) +\n ' - ' +\n chalk.white(ex.title) +\n ' '.repeat(26) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.dim(ex.desc) +\n ' '.repeat(33) +\n tags +\n ' '.repeat(5) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n });\n\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('├─────────────────────────────────────────────────────────────────────┤')\n );\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Commands') + ' '.repeat(46) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') + ' ' + chalk.cyan('cli-use run counter') + ' '.repeat(34) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.cyan('cli-use run demo') + ' '.repeat(36) + chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') + ' ' + chalk.cyan('cli-use run todos') + ' '.repeat(35) + chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + chalk.bold('Shortcuts') + ' '.repeat(46) + chalk.cyan('│'));\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('n') +\n '/' +\n chalk.cyan('p') +\n ' ' +\n chalk.white('Next/Prev example') +\n ' '.repeat(36) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('enter') +\n ' ' +\n chalk.white('Run selected') +\n ' '.repeat(39) +\n chalk.cyan('│')\n );\n console.log(\n chalk.cyan('│') +\n ' ' +\n chalk.cyan('q') +\n ' ' +\n chalk.white('Quit') +\n ' '.repeat(44) +\n chalk.cyan('│')\n );\n console.log(chalk.cyan('│') + ' ' + ' '.repeat(54) + chalk.cyan('│'));\n console.log(\n chalk.cyan('└─────────────────────────────────────────────────────────────────────┘')\n );\n console.log('');\n}\n"],"mappings":"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","names":["fileURLToPath","path","require","__filename","__dirname"]}
@@ -0,0 +1,309 @@
1
+ /**
2
+ * @license MIT
3
+ * cli-use - React-based Terminal UI Framework
4
+ * Inspired by Ratatui (https://ratatui.rs)
5
+ */
6
+ "use strict";
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+
25
+ // src/hooks/index.ts
26
+ var hooks_exports = {};
27
+ __export(hooks_exports, {
28
+ useApp: () => useApp,
29
+ useAppState: () => useAppState,
30
+ useFocus: () => useFocus,
31
+ useInput: () => useInput,
32
+ useInterval: () => useInterval,
33
+ useKey: () => useKey,
34
+ useList: () => useList,
35
+ useStdout: () => useStdout,
36
+ useStdoutDimensions: () => useStdoutDimensions,
37
+ useTimeout: () => useTimeout
38
+ });
39
+ module.exports = __toCommonJS(hooks_exports);
40
+
41
+ // src/hooks/useApp.ts
42
+ var import_react = require("react");
43
+ var useApp = (options = {}) => {
44
+ const rendererRef = (0, import_react.useRef)(null);
45
+ const [size, setSize] = (0, import_react.useState)({ cols: 80, rows: 24 });
46
+ const [running, setRunning] = (0, import_react.useState)(false);
47
+ (0, import_react.useEffect)(() => {
48
+ const cleanupResize = () => {
49
+ };
50
+ setRunning(true);
51
+ return () => {
52
+ setRunning(false);
53
+ cleanupResize();
54
+ };
55
+ }, []);
56
+ const exit = () => {
57
+ if (rendererRef.current) {
58
+ setRunning(false);
59
+ }
60
+ };
61
+ return {
62
+ renderer: rendererRef.current,
63
+ size,
64
+ running,
65
+ exit
66
+ };
67
+ };
68
+
69
+ // src/hooks/useInput.ts
70
+ var import_react2 = require("react");
71
+ var useInput = (callback, deps = []) => {
72
+ (0, import_react2.useEffect)(() => {
73
+ const readline = require("readline");
74
+ const handler = (chunk, key) => {
75
+ if (!key) return;
76
+ callback({
77
+ key: key.name || "",
78
+ name: key.name || "",
79
+ ctrl: key.ctrl || false,
80
+ meta: key.meta || false,
81
+ shift: key.shift || false,
82
+ sequence: key.sequence || ""
83
+ });
84
+ };
85
+ process.stdin.setRawMode(true);
86
+ readline.emitKeypressEvents(process.stdin);
87
+ process.stdin.on("keypress", handler);
88
+ return () => {
89
+ process.stdin.off("keypress", handler);
90
+ };
91
+ }, [callback, ...deps]);
92
+ };
93
+ var useKey = (keyName, callback, deps = []) => {
94
+ const keys = Array.isArray(keyName) ? keyName : [keyName];
95
+ useInput(
96
+ (0, import_react2.useCallback)(
97
+ ({ key, ctrl, meta }) => {
98
+ if (ctrl || meta) return;
99
+ if (keys.includes(key)) {
100
+ callback();
101
+ }
102
+ },
103
+ [callback, keys]
104
+ ),
105
+ deps
106
+ );
107
+ };
108
+
109
+ // src/hooks/useFocus.ts
110
+ var import_react3 = require("react");
111
+ var useFocus = (initialFocus = 0, itemCount) => {
112
+ const [focusedIndex, setFocusedIndex] = (0, import_react3.useState)(initialFocus);
113
+ const focusableRefs = (0, import_react3.useRef)(/* @__PURE__ */ new Map());
114
+ const focusNext = (0, import_react3.useCallback)(() => {
115
+ setFocusedIndex((current) => (current + 1) % itemCount);
116
+ }, [itemCount]);
117
+ const focusPrevious = (0, import_react3.useCallback)(() => {
118
+ setFocusedIndex((current) => (current - 1 + itemCount) % itemCount);
119
+ }, [itemCount]);
120
+ const setFocus = (0, import_react3.useCallback)((index) => {
121
+ if (index >= 0 && index < itemCount) {
122
+ setFocusedIndex(index);
123
+ }
124
+ }, [itemCount]);
125
+ const isFocused = (0, import_react3.useCallback)(
126
+ (index) => index === focusedIndex,
127
+ [focusedIndex]
128
+ );
129
+ (0, import_react3.useEffect)(() => {
130
+ const readline = require("readline");
131
+ readline.emitKeypressEvents(process.stdin);
132
+ process.stdin.setRawMode(true);
133
+ const handleKeyPress = (_chunk, key) => {
134
+ if (key.name === "tab" || key.name === "right") {
135
+ focusNext();
136
+ } else if (key.name === "left") {
137
+ focusPrevious();
138
+ }
139
+ };
140
+ process.stdin.on("keypress", handleKeyPress);
141
+ return () => {
142
+ process.stdin.off("keypress", handleKeyPress);
143
+ };
144
+ }, [focusNext, focusPrevious]);
145
+ return {
146
+ focusedIndex,
147
+ focusNext,
148
+ focusPrevious,
149
+ setFocus,
150
+ isFocused
151
+ };
152
+ };
153
+
154
+ // src/hooks/useStdout.ts
155
+ var import_react4 = require("react");
156
+ var useStdoutDimensions = () => {
157
+ const [dimensions, setDimensions] = (0, import_react4.useState)(() => ({
158
+ columns: process.stdout.columns || 80,
159
+ rows: process.stdout.rows || 24
160
+ }));
161
+ (0, import_react4.useEffect)(() => {
162
+ const handleResize = () => {
163
+ setDimensions({
164
+ columns: process.stdout.columns || 80,
165
+ rows: process.stdout.rows || 24
166
+ });
167
+ };
168
+ process.stdout.on("resize", handleResize);
169
+ return () => {
170
+ process.stdout.off("resize", handleResize);
171
+ };
172
+ }, []);
173
+ return dimensions;
174
+ };
175
+ var useStdout = () => {
176
+ const write = (0, import_react4.useCallback)((data) => {
177
+ process.stdout.write(data);
178
+ }, []);
179
+ return { write };
180
+ };
181
+
182
+ // src/hooks/useInterval.ts
183
+ var import_react5 = require("react");
184
+ var useInterval = (callback, delay) => {
185
+ const savedCallback = (0, import_react5.useRef)(callback);
186
+ (0, import_react5.useEffect)(() => {
187
+ savedCallback.current = callback;
188
+ }, [callback]);
189
+ (0, import_react5.useEffect)(() => {
190
+ if (delay === null) return;
191
+ const tick = () => savedCallback.current();
192
+ const id = setInterval(tick, delay);
193
+ return () => clearInterval(id);
194
+ }, [delay]);
195
+ };
196
+ var useTimeout = (callback, delay) => {
197
+ const savedCallback = (0, import_react5.useRef)(callback);
198
+ (0, import_react5.useEffect)(() => {
199
+ savedCallback.current = callback;
200
+ }, [callback]);
201
+ (0, import_react5.useEffect)(() => {
202
+ if (delay === null) return;
203
+ const tick = () => savedCallback.current();
204
+ const id = setTimeout(tick, delay);
205
+ return () => clearTimeout(id);
206
+ }, [delay]);
207
+ };
208
+
209
+ // src/hooks/useAppState.ts
210
+ var import_react6 = require("react");
211
+ var useAppState = (initialState = "idle") => {
212
+ const [state, setState] = (0, import_react6.useState)(initialState);
213
+ const [error, setError] = (0, import_react6.useState)(null);
214
+ const setLoading = (0, import_react6.useCallback)(() => {
215
+ setState("loading");
216
+ setError(null);
217
+ }, []);
218
+ const setSuccess = (0, import_react6.useCallback)(() => {
219
+ setState("success");
220
+ setError(null);
221
+ }, []);
222
+ const setErrorState = (0, import_react6.useCallback)((err) => {
223
+ setState("error");
224
+ setError(err);
225
+ }, []);
226
+ const setIdle = (0, import_react6.useCallback)(() => {
227
+ setState("idle");
228
+ setError(null);
229
+ }, []);
230
+ const isLoading = state === "loading";
231
+ const isSuccess = state === "success";
232
+ const isError = state === "error";
233
+ const isIdle = state === "idle";
234
+ return {
235
+ state,
236
+ error,
237
+ isLoading,
238
+ isSuccess,
239
+ isError,
240
+ isIdle,
241
+ setLoading,
242
+ setSuccess,
243
+ setError: setErrorState,
244
+ setIdle
245
+ };
246
+ };
247
+
248
+ // src/hooks/useList.ts
249
+ var import_react7 = require("react");
250
+ var useList = ({
251
+ initialItems = [],
252
+ initialIndex = 0,
253
+ loop = true
254
+ } = {}) => {
255
+ const [items, setItems] = (0, import_react7.useState)(initialItems);
256
+ const [index, setIndex] = (0, import_react7.useState)(initialIndex);
257
+ const next = (0, import_react7.useCallback)(() => {
258
+ setIndex((current) => {
259
+ if (items.length === 0) return 0;
260
+ const nextIndex = current + 1;
261
+ if (nextIndex >= items.length) {
262
+ return loop ? 0 : items.length - 1;
263
+ }
264
+ return nextIndex;
265
+ });
266
+ }, [items.length, loop]);
267
+ const previous = (0, import_react7.useCallback)(() => {
268
+ setIndex((current) => {
269
+ if (items.length === 0) return 0;
270
+ const prevIndex = current - 1;
271
+ if (prevIndex < 0) {
272
+ return loop ? items.length - 1 : 0;
273
+ }
274
+ return prevIndex;
275
+ });
276
+ }, [items.length, loop]);
277
+ const select = (0, import_react7.useCallback)((item) => {
278
+ const newIndex = items.indexOf(item);
279
+ if (newIndex !== -1) {
280
+ setIndex(newIndex);
281
+ }
282
+ }, [items]);
283
+ const selectedIndex = index;
284
+ const selectedItem = items[index] ?? null;
285
+ return {
286
+ items,
287
+ setItems,
288
+ index: selectedIndex,
289
+ setIndex,
290
+ selectedItem,
291
+ next,
292
+ previous,
293
+ select
294
+ };
295
+ };
296
+ // Annotate the CommonJS export names for ESM import in node:
297
+ 0 && (module.exports = {
298
+ useApp,
299
+ useAppState,
300
+ useFocus,
301
+ useInput,
302
+ useInterval,
303
+ useKey,
304
+ useList,
305
+ useStdout,
306
+ useStdoutDimensions,
307
+ useTimeout
308
+ });
309
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/index.ts","../../src/hooks/useApp.ts","../../src/hooks/useInput.ts","../../src/hooks/useFocus.ts","../../src/hooks/useStdout.ts","../../src/hooks/useInterval.ts","../../src/hooks/useAppState.ts","../../src/hooks/useList.ts"],"sourcesContent":["export { useApp } from './useApp.js';\nexport { useInput, useKey } from './useInput.js';\nexport { useFocus } from './useFocus.js';\nexport { useStdout, useStdoutDimensions } from './useStdout.js';\nexport { useInterval, useTimeout } from './useInterval.js';\nexport { useAppState } from './useAppState.js';\nexport { useList } from './useList.js';\n","import { Renderer } from '../renderer/index.js';\nimport { useEffect, useState, useRef } from 'react';\n\ninterface AppOptions {\n fullscreen?: boolean;\n alternateScreen?: boolean;\n mouseCapture?: boolean;\n}\n\n/**\n * useApp - Hook for managing the application lifecycle\n */\nexport const useApp = (options: AppOptions = {}) => {\n const rendererRef = useRef<Renderer | null>(null);\n const [size, setSize] = useState({ cols: 80, rows: 24 });\n const [running, setRunning] = useState(false);\n\n useEffect(() => {\n // Note: Renderer is not fully implemented yet, this is a skeleton\n // const renderer = new Renderer();\n // rendererRef.current = renderer;\n //\n // renderer.start();\n //\n // // Set initial size\n // setSize(renderer.getSize());\n //\n // // Setup resize handler\n // const cleanupResize = renderer.getTerminal().onResize((newSize) => {\n // setSize(newSize);\n // });\n //\n // setRunning(true);\n\n const cleanupResize = () => {\n // Cleanup function\n };\n\n setRunning(true);\n\n return () => {\n setRunning(false);\n cleanupResize();\n // renderer.stop();\n };\n }, []);\n\n const exit = () => {\n if (rendererRef.current) {\n // rendererRef.current.stop();\n setRunning(false);\n }\n };\n\n return {\n renderer: rendererRef.current,\n size,\n running,\n exit,\n };\n};\n","import { useEffect, useCallback } from 'react';\n\ninterface InputEvent {\n key: string;\n name: string;\n ctrl: boolean;\n meta: boolean;\n shift: boolean;\n sequence: string;\n}\n\ninterface ReadlineKey {\n name?: string;\n ctrl?: boolean;\n meta?: boolean;\n shift?: boolean;\n sequence?: string;\n}\n\ntype InputCallback = (input: InputEvent) => void;\n\n/**\n * useInput - Hook for capturing keyboard input\n */\nexport const useInput = (callback: InputCallback, deps: any[] = []) => {\n useEffect(() => {\n const readline = require('node:readline');\n\n const handler = (chunk: Buffer, key: ReadlineKey) => {\n if (!key) return;\n\n callback({\n key: key.name || '',\n name: key.name || '',\n ctrl: key.ctrl || false,\n meta: key.meta || false,\n shift: key.shift || false,\n sequence: key.sequence || '',\n });\n };\n\n process.stdin.setRawMode(true);\n readline.emitKeypressEvents(process.stdin);\n\n process.stdin.on('keypress', handler);\n\n return () => {\n process.stdin.off('keypress', handler);\n };\n }, [callback, ...deps]);\n};\n\n/**\n * useKey - Hook for capturing specific key presses\n */\nexport const useKey = (\n keyName: string | string[],\n callback: () => void,\n deps: any[] = []\n) => {\n const keys = Array.isArray(keyName) ? keyName : [keyName];\n\n useInput(\n useCallback(\n ({ key, ctrl, meta }) => {\n // Don't trigger if modifier keys are pressed (unless specified)\n if (ctrl || meta) return;\n\n if (keys.includes(key)) {\n callback();\n }\n },\n [callback, keys]\n ),\n deps\n );\n};\n","import { useState, useCallback, useRef, useEffect } from 'react';\n\ninterface FocusableElement {\n id: string;\n index: number;\n}\n\ninterface KeyPressEvent {\n name?: string;\n}\n\n/**\n * useFocus - Hook for managing focus state in forms and lists\n */\nexport const useFocus = (initialFocus = 0, itemCount: number) => {\n const [focusedIndex, setFocusedIndex] = useState(initialFocus);\n const focusableRefs = useRef<Map<number, HTMLElement>>(new Map());\n\n const focusNext = useCallback(() => {\n setFocusedIndex((current) => (current + 1) % itemCount);\n }, [itemCount]);\n\n const focusPrevious = useCallback(() => {\n setFocusedIndex((current) => (current - 1 + itemCount) % itemCount);\n }, [itemCount]);\n\n const setFocus = useCallback((index: number) => {\n if (index >= 0 && index < itemCount) {\n setFocusedIndex(index);\n }\n }, [itemCount]);\n\n const isFocused = useCallback(\n (index: number) => index === focusedIndex,\n [focusedIndex]\n );\n\n // Keyboard navigation\n useEffect(() => {\n const readline = require('node:readline');\n readline.emitKeypressEvents(process.stdin);\n process.stdin.setRawMode(true);\n\n const handleKeyPress = (_chunk: Buffer, key: KeyPressEvent) => {\n if (key.name === 'tab' || key.name === 'right') {\n focusNext();\n } else if (key.name === 'left') {\n focusPrevious();\n }\n };\n\n process.stdin.on('keypress', handleKeyPress);\n\n return () => {\n process.stdin.off('keypress', handleKeyPress);\n };\n }, [focusNext, focusPrevious]);\n\n return {\n focusedIndex,\n focusNext,\n focusPrevious,\n setFocus,\n isFocused,\n };\n};\n","import { useCallback, useEffect, useState } from 'react';\n\n/**\n * useStdoutDimensions - Hook for getting terminal dimensions\n */\nexport const useStdoutDimensions = () => {\n const [dimensions, setDimensions] = useState(() => ({\n columns: process.stdout.columns || 80,\n rows: process.stdout.rows || 24,\n }));\n\n useEffect(() => {\n const handleResize = () => {\n setDimensions({\n columns: process.stdout.columns || 80,\n rows: process.stdout.rows || 24,\n });\n };\n\n process.stdout.on('resize', handleResize);\n\n return () => {\n process.stdout.off('resize', handleResize);\n };\n }, []);\n\n return dimensions;\n};\n\n/**\n * useStdout - Hook for stdout operations\n */\nexport const useStdout = () => {\n const write = useCallback((data: string) => {\n process.stdout.write(data);\n }, []);\n\n return { write };\n};\n","import { useEffect, useRef } from 'react';\n\n/**\n * useInterval - Hook for setting up intervals\n */\nexport const useInterval = (callback: () => void, delay: number | null) => {\n const savedCallback = useRef(callback);\n\n // Remember the latest callback\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval\n useEffect(() => {\n if (delay === null) return;\n\n const tick = () => savedCallback.current();\n\n const id = setInterval(tick, delay);\n\n return () => clearInterval(id);\n }, [delay]);\n};\n\n/**\n * useTimeout - Hook for setting up timeouts\n */\nexport const useTimeout = (callback: () => void, delay: number | null) => {\n const savedCallback = useRef(callback);\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (delay === null) return;\n\n const tick = () => savedCallback.current();\n\n const id = setTimeout(tick, delay);\n\n return () => clearTimeout(id);\n }, [delay]);\n};\n","import { useState, useCallback } from 'react';\n\ntype AppState = 'idle' | 'loading' | 'success' | 'error';\n\n/**\n * useAppState - Hook for managing application state\n */\nexport const useAppState = (initialState: AppState = 'idle') => {\n const [state, setState] = useState<AppState>(initialState);\n const [error, setError] = useState<Error | null>(null);\n\n const setLoading = useCallback(() => {\n setState('loading');\n setError(null);\n }, []);\n\n const setSuccess = useCallback(() => {\n setState('success');\n setError(null);\n }, []);\n\n const setErrorState = useCallback((err: Error) => {\n setState('error');\n setError(err);\n }, []);\n\n const setIdle = useCallback(() => {\n setState('idle');\n setError(null);\n }, []);\n\n const isLoading = state === 'loading';\n const isSuccess = state === 'success';\n const isError = state === 'error';\n const isIdle = state === 'idle';\n\n return {\n state,\n error,\n isLoading,\n isSuccess,\n isError,\n isIdle,\n setLoading,\n setSuccess,\n setError: setErrorState,\n setIdle,\n };\n};\n","import { useState, useCallback } from 'react';\n\ninterface ListOptions<T> {\n initialItems?: T[];\n initialIndex?: number;\n loop?: boolean;\n}\n\n/**\n * useList - Hook for managing list navigation\n */\nexport const useList = <T>({\n initialItems = [],\n initialIndex = 0,\n loop = true,\n}: ListOptions<T> = {}) => {\n const [items, setItems] = useState<T[]>(initialItems);\n const [index, setIndex] = useState(initialIndex);\n\n const next = useCallback(() => {\n setIndex((current) => {\n if (items.length === 0) return 0;\n\n const nextIndex = current + 1;\n\n if (nextIndex >= items.length) {\n return loop ? 0 : items.length - 1;\n }\n\n return nextIndex;\n });\n }, [items.length, loop]);\n\n const previous = useCallback(() => {\n setIndex((current) => {\n if (items.length === 0) return 0;\n\n const prevIndex = current - 1;\n\n if (prevIndex < 0) {\n return loop ? items.length - 1 : 0;\n }\n\n return prevIndex;\n });\n }, [items.length, loop]);\n\n const select = useCallback((item: T) => {\n const newIndex = items.indexOf(item);\n if (newIndex !== -1) {\n setIndex(newIndex);\n }\n }, [items]);\n\n const selectedIndex = index;\n const selectedItem = items[index] ?? null;\n\n return {\n items,\n setItems,\n index: selectedIndex,\n setIndex,\n selectedItem,\n next,\n previous,\n select,\n };\n};\n"],"mappings":"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","names":["import_react","import_react","import_react","import_react","import_react","import_react"]}
@@ -0,0 +1,4 @@
1
+ export { u as useApp, a as useAppState, b as useFocus, c as useInput, d as useInterval, e as useKey, f as useList, g as useStdout, h as useStdoutDimensions, i as useTimeout } from '../index-DAO84gkm.cjs';
2
+ import 'node:tty';
3
+ import 'node:readline';
4
+ import 'react';
@@ -0,0 +1,4 @@
1
+ export { u as useApp, a as useAppState, b as useFocus, c as useInput, d as useInterval, e as useKey, f as useList, g as useStdout, h as useStdoutDimensions, i as useTimeout } from '../index-DAO84gkm.js';
2
+ import 'node:tty';
3
+ import 'node:readline';
4
+ import 'react';