From 7eec2ec1aed3b831141516338f1fe7d25524f1e6 Mon Sep 17 00:00:00 2001 From: anuphilipp3 Date: Fri, 21 Aug 2026 19:28:13 +0530 Subject: [PATCH] feat(generators): migrate all 13 Generators onto the shared tool kit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 3 of the tool-consistency pass. Every Generator now renders through ToolShell + IOPanel/ToolTextArea (output) and kit-surface panels (config), instead of hand-rolled Cards — sharing one visual language with the Formatters, Converters, and base64. Migrated (logic preserved — generation, live displays, workers, i18n): - uuid-generator, hash-generator, ssh-key-generator, hmac-generator, secret-api-key-generator, totp-generator, qr-code-generator, lorem-ipsum, gitignore-generator, docker-compose-generator, markdown-table-generator, cron-builder, mock-data-generator Live behaviour verified intact: TOTP countdown still ticks, QR still renders + downloads, SSH key blocks preserved, mock-data worker + mobile tabs intact. Consistent with earlier phases, the per-category header accent color is no longer applied (ToolShell/ToolPageHeader don't surface it) — cosmetic only. 0 type errors; all 13 pages render. Co-Authored-By: Claude Opus 4.8 --- .../cron-builder/cron-builder-layout.tsx | 105 +++--- .../docker-compose-generator-layout.tsx | 57 ++- .../gitignore-generator/gitignore-layout.tsx | 79 ++-- .../hash-generator/hash-generator-layout.tsx | 27 +- .../hmac-generator/hmac-generator-layout.tsx | 246 +++++++------ .../lorem-ipsum/lorem-ipsum-layout.tsx | 61 ++-- .../markdown-table-generator-layout.tsx | 343 +++++++++--------- .../mock-data-generator-layout.tsx | 56 ++- .../qr-code-generator-layout.tsx | 35 +- .../secret-api-key-generator-layout.tsx | 91 ++--- .../ssh-key-generator-layout.tsx | 124 ++++--- .../totp-generator/totp-generator-layout.tsx | 27 +- .../uuid-generator/uuid-generator-layout.tsx | 80 ++-- 13 files changed, 602 insertions(+), 729 deletions(-) diff --git a/apps/desktop-ui/src/components/cron-builder/cron-builder-layout.tsx b/apps/desktop-ui/src/components/cron-builder/cron-builder-layout.tsx index cdcbc659..7527ed06 100644 --- a/apps/desktop-ui/src/components/cron-builder/cron-builder-layout.tsx +++ b/apps/desktop-ui/src/components/cron-builder/cron-builder-layout.tsx @@ -4,7 +4,6 @@ import { format } from 'date-fns'; import { useMemo, useState } from 'react'; import { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard'; import { Button } from '@/components/ui/button'; -import { Card } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { @@ -26,9 +25,7 @@ import { validateCron, } from '@/lib/cron-utils'; import { IconRepeat } from '@tabler/icons-react'; -import { CATEGORY_ACCENT } from '@/components/dashboard/types'; -import { RevealItem } from '@/components/dashboard/dashboard-reveal'; -import { ToolPageHeader } from '@/components/tools/tool-page-header'; +import { ToolShell } from '@/components/tools/tool-shell'; import { CopyTextButton } from '@/components/tools/copy-text-button'; import { ToolErrorBanner } from '@/components/tools/tool-error-banner'; import { useLocale, useTranslations } from 'next-intl'; @@ -44,12 +41,12 @@ function QuickPick({ }) { return ( updateField(idx, e.target.value)} - className="font-mono text-sm h-9 flex-1 min-w-0" + className="h-9 min-w-0 flex-1 font-mono text-sm" spellCheck={false} aria-label={uiLabel} /> - updateField(idx, v)} - placeholder={t('quickPick')} - /> + updateField(idx, v)} placeholder={t('quickPick')} /> ); })} - + - -