Initial import: open-design source for helix-mind.ai distribution
Some checks failed
ci / Validate workspace (push) Successful in 12m32s
landing-page-ci / Validate landing page (push) Successful in 9m41s
landing-page-deploy / Deploy landing page (push) Failing after 5m23s
github-metrics / Generate repository metrics SVG (push) Failing after 2m6s
refresh-contributors-wall / Refresh contributors wall cache bust (push) Failing after 12s

This repository contains the open-design daemon CLI source code, built
and packaged at https://helix-mind.ai/cli/open-design/latest.tgz for use
by the HelixMind /design slash command.

Licenses: Apache-2.0 (root) + MIT (skills/*)
This commit is contained in:
marco
2026-05-06 20:50:24 +02:00
commit 5dd70b5016
1336 changed files with 287186 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
import { useState } from 'react';
import { useT } from '../i18n';
interface Props {
onSave: (name: string, content: string) => void;
onClose: () => void;
}
export function PasteTextDialog({ onSave, onClose }: Props) {
const t = useT();
const [name, setName] = useState('');
const [content, setContent] = useState('');
function commit() {
const trimmed = content.trim();
if (!trimmed) return;
const finalName = name.trim() || `paste-${Date.now()}.txt`;
onSave(ensureExtension(finalName, '.txt'), content);
}
return (
<div className="modal-backdrop" onClick={onClose}>
<div className="modal" onClick={(e) => e.stopPropagation()}>
<h2>{t('pasteDialog.title')}</h2>
<p className="hint">{t('pasteDialog.hint')}</p>
<label>
{t('pasteDialog.fileNameLabel')}
<input
type="text"
value={name}
placeholder={t('pasteDialog.namePlaceholder')}
onChange={(e) => setName(e.target.value)}
autoFocus
/>
</label>
<label>
{t('pasteDialog.contentLabel')}
<textarea
rows={10}
value={content}
placeholder={t('pasteDialog.contentPlaceholder')}
onChange={(e) => setContent(e.target.value)}
/>
</label>
<div className="row">
<button onClick={onClose}>{t('pasteDialog.cancel')}</button>
<button className="primary" onClick={commit} disabled={!content.trim()}>
{t('pasteDialog.save')}
</button>
</div>
</div>
</div>
);
}
function ensureExtension(name: string, ext: string): string {
if (/\.[a-z0-9]+$/i.test(name)) return name;
return `${name}${ext}`;
}