Commit Graph
100 Commits
Author SHA1 Message Date
valknar 782923f2e0 feat: refactor theme, add tailwind-scrollbar, and improve UI components
- Removed manual theme switching logic and ThemeProvider
- Installed and configured tailwind-scrollbar plugin
- Updated FileConverter and ConversionOptions to use shadcn Input
- Refactored FontSelector to use shadcn Tabs
- Simplified global styles and adjusted glassmorphic effects
2026-02-26 22:22:32 +01:00
valknar a3ef948600 docs: update README and GEMINI with favicon app and PWA info 2026-02-26 18:39:15 +01:00
valknar 283855d7a3 fix: icon.png size 2026-02-26 18:24:11 +01:00
valknar c8ff0e5dae fix(media): use processed inputFile for SVG conversion 2026-02-26 18:20:02 +01:00
valknar 8a9ff3582f fix(media): handle SVG inputs using browser Canvas pre-conversion for ImageMagick WASM 2026-02-26 18:15:41 +01:00
valknar f20cedffd5 feat: convert app to PWA with offline support and service worker 2026-02-26 18:01:33 +01:00
valknar 1d72f34b65 style: streamline media app upload component with favicon app styling 2026-02-26 17:52:41 +01:00
valknar 1f1b138089 feat: add Favicon Generator app with ImageMagick WASM support 2026-02-26 17:48:16 +01:00
valknar d99c88df0e fix(media): truncate long filename in download button 2026-02-26 17:12:27 +01:00
valknar 0db8ea8773 refactor: remove favorite and copy features from units converter 2026-02-26 12:40:03 +01:00
valknar e1406f427e refactor: rename figlet app to ascii and update all references 2026-02-26 12:31:10 +01:00
valknar 484423f299 refactor: rename pastel app to color and update all references 2026-02-26 12:19:22 +01:00
valknar 061ea1d806 feat: unify pastel application into single playground and remove standalone pages 2026-02-26 12:07:21 +01:00
valknar 225a9ad7fb fix: upload card 2026-02-25 21:44:34 +01:00
valknar 311d80bd41 fix: figlet text input card 2026-02-25 21:32:05 +01:00
valknar 84bc70b442 fix: ffmpeg import 2026-02-25 20:51:45 +01:00
valknarandCopilot 3a1e0153ac Update postinstall script for FFmpeg 0.12.10
Update the postinstall script to copy from the correct FFmpeg core version path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:40:06 +01:00
valknarandCopilot 40214d9748 Upgrade FFmpeg to latest version (0.12.10)
Updated @ffmpeg/core from 0.12.6 to 0.12.10 and updated CDN URL references.
The newer version may have better Turbopack compatibility.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:39:18 +01:00
valknarandCopilot 87f1384175 Fix FFmpeg WASM loading: use CDN instead of local files
The 'Cannot find module as expression is too dynamic' error occurs at runtime
when FFmpeg tries to dynamically load the core module. Using CDN URLs bypasses
this bundler issue entirely since absolute URLs don't require bundler analysis.

Switched to jsdelivr CDN for FFmpeg core and WASM files - this is a proven
approach used by many projects.

Fixes: wasmLoader.ts runtime error on media conversion

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:36:45 +01:00
valknarandCopilot 6d4426037c Fix FFmpeg import: use direct import like ImageMagick
Import FFmpeg at module level instead of dynamic import. The build now
compiles cleanly without Turbopack bundler warnings.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:29:55 +01:00
valknarandCopilot 3a8b409d1d Fix FFmpeg WASM bundler error: use runtime import instead of static analysis
The @ffmpeg/ffmpeg package has internal dynamic imports that Turbopack
cannot statically analyze, but they work fine at runtime. This change
moves the import to the loadFFmpeg function where it's needed, allowing
Turbopack to skip static analysis and let the bundler resolve it at runtime.

Fixes: Cannot find module as expression is too dynamic error

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:27:53 +01:00
valknarandCopilot b5812c97b4 fix: handle FFmpeg dynamic import more gracefully
- lazy-load FFmpeg class to avoid static analysis issues
- add proper null checks for FFmpeg instance
- use initFFmpeg() helper to manage async initialization
- fixes bundler 'too dynamic' error with static-friendly approach

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:24:24 +01:00
valknarandCopilot 45a48abc91 fix: resolve FFmpeg WASM loader dynamic import error
- moved FFmpeg and initializeImageMagick imports to top level (static)
- removed dynamic imports that caused bundler analysis issues
- simplified ImageMagick initialization
- fixes: 'Cannot find module as expression is too dynamic' error

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 20:22:04 +01:00
valknar dd71130977 fix: conversion options styling 2026-02-25 20:20:04 +01:00
valknarandCopilot b560dcbc8e refactor: streamline media converter UI and layout
- consolidated file upload and metadata display in single card
- replaced complex FormatSelector with simple shadcn Select component
- inlined all conversion options without toggle display
- restructured layout to 2-column grid matching pastel app pattern:
  - left column: upload and conversion options
  - right column: conversion results
- removed unused components (FileInfo, FormatSelector, ConversionOptionsPanel)
- cleaned up imports and simplified component hierarchy

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-25 19:59:22 +01:00
valknar 56cdb1ae4a fix: remove media conversion presets 2026-02-25 19:20:22 +01:00
valknar 4668d771c1 style: remove emojis from media app format presets 2026-02-25 18:34:39 +01:00
valknar 4898ad942b style: remove emojis from media app quality presets 2026-02-25 18:30:23 +01:00
valknar 317a80dbad refactor: remove category colors from units app 2026-02-25 18:24:15 +01:00
valknar f28a2d1eab refactor: replace html range input with shadcn slider in batch operations 2026-02-25 18:18:03 +01:00
valknar 7eeb8399b3 refactor: externalize AppPage component and streamline all tool pages 2026-02-25 18:04:32 +01:00
valknar 71c22e465e refactor: replace html textarea with shadcn Textarea component 2026-02-25 16:20:25 +01:00
valknar 40e0b0e375 refactor: streamline TextInput classes with shadcn input 2026-02-25 16:13:10 +01:00
valknar 880bce157b style: improve light theme border and input visibility 2026-02-25 16:09:29 +01:00
valknar 2fb2eaa54c refactor: use Card, CardTitle and CardContent in Figlet and Units apps 2026-02-25 16:00:10 +01:00
valknar 4ccf316184 refactor: use shadcn Card component in pastel app 2026-02-25 13:35:29 +01:00
valknar 57ba63aa32 fix: update nginx fallback to properly serve custom 404 page 2026-02-25 11:49:39 +01:00
valknar 0732c9c5e2 feat: add custom 404 page and update nginx error handling 2026-02-25 11:46:37 +01:00
valknar 9bee255647 style: rename Pastel (Color) to Pastel in sidebar 2026-02-25 11:23:03 +01:00
valknar da7f60cf04 docs: update README with Media app information and project structure 2026-02-25 11:22:38 +01:00
valknar 5612176996 refactor: externalize app icons and update stats count 2026-02-25 11:14:24 +01:00
valknar 77e0114e96 refactor: load WASM from local assets via postinstall script 2026-02-25 10:52:59 +01:00
valknar 08e1cac3a0 feat: streamline WASM loading with local priority and cleanup UI 2026-02-25 10:44:49 +01:00
valknar 84cf6ecab0 feat: remove keyboard shortcuts from media app 2026-02-25 10:15:28 +01:00
valknar fbc8cdeebe feat: add media converter app and fix compilation errors 2026-02-25 10:07:25 +01:00
valknar 1da6168f37 fix: sidebar logo 2026-02-24 19:19:34 +01:00
valknar 5f46ba8c74 fix: breadcrumb root 2026-02-24 19:14:58 +01:00
valknar a604789285 fix: figlet cards padding 2026-02-24 19:05:22 +01:00
valknar 5d6ace4e46 fix: old styling with new shadcn components 2026-02-24 16:58:17 +01:00
valknar 9c6b184f7e refactor: update UI component usage to match latest shadcn APIs 2026-02-24 16:20:35 +01:00
valknar bf4729fa4d feat: integrate icon.png as favicon and remove legacy icon.svg 2026-02-24 15:27:16 +01:00
valknar d61add82cd feat: implement sort by hue for named colors using pastel-wasm 2026-02-24 10:45:00 +01:00
valknar d65a7c6c30 feat: remove statistics from Distinct Colors generator 2026-02-24 09:45:09 +01:00
valknar f779d4aa9d fix: remove color_spaces from CapabilitiesData to match implementation 2026-02-23 18:28:30 +01:00
valknar 3061260eec feat: remove colorspace option from pastel gradients (not supported by API) 2026-02-23 18:22:12 +01:00
valknar ab930a3279 fix: oklab string format and debounced color history 2026-02-23 17:52:06 +01:00
valknar 2d59f3aaca docs: update README and repository structure 2026-02-23 17:43:38 +01:00
valknar 4e7fc24582 chore: update icon and units description 2026-02-23 17:41:03 +01:00
valknar 906b0e081b feat: create app/icon.png from app/icon.svg 2026-02-23 17:33:12 +01:00
valknar 95b270810b feat: use NEXT_PUBLIC_SITE_URL and remove redundant preconnect 2026-02-23 17:21:46 +01:00
valknar b7d427023e feat: add Umami tracking support 2026-02-23 17:09:44 +01:00
valknar 4108ffc23f fix: app shell header logo display 2026-02-23 14:04:13 +01:00
valknar 43faed224f Feat: Refine UI and consolidate components
- Updated the heading in the Pastel page from 'Color Playground' to 'Pastel'.
- Adjusted the logo size in the Hero component for better visual balance.
- Removed duplicate/unused Footer components from pastel layout and ui directories.
2026-02-23 14:00:09 +01:00
valknar 5ab1387165 style: update Logo and Kit title styling in App Shell 2026-02-23 13:33:17 +01:00
valknar facb7e5161 style: remove outer margins and scale elements in app/icon.svg 2026-02-23 13:21:59 +01:00
valknar 90b045f349 style(figlet): update default text and remove search keyboard hint 2026-02-23 09:46:35 +01:00
valknar 6fbcdd3674 docs: generate comprehensive new README 2026-02-23 09:28:57 +01:00
valknar 8ce12c4c70 style(pastel): unify card title sizes with figlet 2026-02-23 09:25:51 +01:00
valknar fd2ada4438 refactor(pastel): remove keyboard shortcuts and useKeyboard hook 2026-02-23 08:41:32 +01:00
valknar 2160b9aaa0 style: unify keyboard shortcut hints across tools using Pastel style
- Add shortcut hints below tool descriptions in Figlet and Units pages
- Revert experimental button-based shortcut layout in Units
- Remove redundant shortcut hints from Units footer
- Ensure consistent kbd tag styling across the application
2026-02-23 08:27:26 +01:00
valknar 7806bcbede refactor: flatten Pastel routes by removing intermediate palettes and accessibility paths
- Move sub-routes from /pastel/palettes/* and /pastel/accessibility/* to direct children of /pastel
- Update AppSidebar navigation links
- Update Pastel Navbar and Footer links
- Update Tailwind source directives in pastel/globals.css
- Remove intermediate page files
2026-02-23 08:18:44 +01:00
valknar 3a100f8fde feat: move units search and category select to a row below description
- Relocate SearchUnits and Category Select into a dedicated row at the top of MainConverter
- Remove them from the converter card header for a cleaner layout
- Update vertical spacing for better visual hierarchy
2026-02-23 08:09:51 +01:00
valknar 93bbc2ef22 fix: improve robustness of search focus keyboard shortcut
- Update FontSelector to prevent '/' shortcut from triggering when another input is focused
- Ensure consistent behavior for '/' focus across Figlet and Units tools
2026-02-23 08:05:33 +01:00
valknar 81fa370ec9 style: update unit category colors to match Tailwind palette
- Harmonize category colors with standard Tailwind CSS 500 shades
- Use Rose, Violet, Emerald, Amber, Blue, and Indigo for grouping related units
- Synchronize hex values in units.ts with OKLCH variables in globals.css
2026-02-23 08:03:55 +01:00
valknar d767f9714c style: improve icon alignment in figlet font selector tabs
- Switch from inline-block to flex items-center justify-center for filter tab buttons
- Adjust icon spacing for better visual balance
2026-02-23 08:01:48 +01:00
valknar 59ad5143eb style: unify button row styling in figlet font preview
- Update Copy, Share, PNG, and TXT button icons to h-3 w-3 with mr-2
- Matches the styling of the Random font button for a consistent UI
2026-02-23 08:00:34 +01:00
valknar d9315ecf7d style: streamline inputs and selects with more visible borders
- Increase --border opacity in both light and dark modes
- Harmonize Input and Select components with consistent rounded-lg corners
- Replace native selects in MainConverter with styled Select component
2026-02-23 07:56:16 +01:00
valknar 9a95e97150 feat: align units converter header into a single row
- Move unit search into the CardHeader
- Align title, search, and category selector into one row using flexbox
- Update SearchUnits component to allow custom class names and remove hardcoded max-width
2026-02-23 07:51:39 +01:00
valknar dbdd28d552 feat: move unit search input inside the converter card
- Relocate SearchUnits from a standalone position to inside the main converter card
- Add a subtle border-b separator for visual clarity within the card content
2026-02-23 07:50:03 +01:00
valknar 30f88c6f9d feat: replace category grid with select dropdown in units converter
- Consolidate category selection into the main converter card
- Use a space-saving Select component for category switching
- Add category color indicator to the select dropdown
2026-02-23 07:48:06 +01:00
valknar e7cc825c54 feat: remove recent conversions functionality from units
- Delete ConversionHistory component
- Remove history-related logic and state from MainConverter
- Clean up history imports and types in CommandPalette and storage utilities
- Remove history storage functions from lib/units/storage.ts
2026-02-23 07:45:15 +01:00
valknar d1c95254b0 fix: update nginx for proper Next.js deep linking support
- Prioritize .html in try_files to correctly resolve static export routes
2026-02-23 02:36:54 +01:00
valknar d2dcd2ca9f fix: resolve linting errors and improve ESLint configuration
- Downgrade ESLint to v9 to avoid circular structure errors in v10 config validation
- Downgrade eslint-config-next to v15 for stability
- Configure eslint.config.mjs with FlatCompat and appropriate ignores (.next, out)
- Escape entities in ColorBlindPage and SearchUnits to fix react/no-unescaped-entities
- Use useMemo for debounced function in FigletConverter to fix react-hooks/exhaustive-deps
2026-02-23 02:31:49 +01:00
valknar a9d0fd8443 refactor: streamline toast system and harmonize UI across tools
- Migrate all toast notifications to sonner and remove custom ToastProvider
- Align Card and TextInput styling across Figlet and Pastel (rounded-lg, border-based)
- Fix build error by removing non-existent export in lib/units/index.ts
- Clean up unused Figlet components and constants
2026-02-23 02:04:46 +01:00
valknar 09838a203c refactor: consolidate utilities, clean up components, and improve theme persistence
- Consolidate common utilities (cn, format, time) into lib/utils
- Remove redundant utility files from pastel and units directories
- Clean up unused components (Separator, KeyboardShortcutsHelp)
- Relocate CommandPalette to components/units/ui/
- Force dark mode on landing page and improve theme persistence logic
- Add FOUC prevention script to RootLayout
- Fix sidebar height constraint in AppShell
2026-02-23 00:40:45 +01:00
valknar 2000623c67 feat: implement Figlet, Pastel, and Unit tools with a unified layout
- Add Figlet text converter with font selection and history
- Add Pastel color palette generator and manipulation suite
- Add comprehensive Units converter with category-based logic
- Introduce AppShell with Sidebar and Header for navigation
- Modernize theme system with CSS variables and new animations
- Update project configuration and dependencies
2026-02-22 21:35:53 +01:00
valknarandClaude Opus 4.6 ff6bb873eb update: tools count from 6 to 3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 07:54:22 +01:00
valknarandClaude Opus 4.6 67e05f9890 remove: Audio, Paint, and Convert tools from kit listing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 07:47:58 +01:00
valknarandClaude 443b87f97b update: replace Draw with Paint image editor
- Remove Draw tool (whiteboard/diagrams)
- Add Paint image editor (paint.kit.pivoine.art)
- Features: multi-layer canvas, drawing tools, 50+ filters
- Inspired by miniPaint, built with modern web technologies
- Update icon to paintbrush
- Keep gradient-pink-rose styling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 21:19:28 +01:00
valknarandClaude f109093eab fix: replace file icon with git branch icon
- Update Hero and Footer to use proper git branch icon
- Icon shows branching pattern with circles (commits)
- Better representation of git repository link
- Maintains hover color transitions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 22:03:48 +01:00
valknarandClaude 398c4cd8ec feat: add git icons to View on Dev links
- Add file-plus icon to Hero button
- Add file-plus icon to Footer link
- Icons change color on hover (gray → purple)
- Better visual indication for repository links

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:59:47 +01:00
valknarandClaude 59b88518f6 update: replace GitHub links with dev.pivoine.art
- Update hero button: GitHub → dev.pivoine.art/valknar/kit-ui
- Update footer link: GitHub → dev.pivoine.art/valknar/kit-ui
- Remove GitHub icon from both locations
- Change labels to "View on Dev"
- Repository now hosted on dev.pivoine.art

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:55:10 +01:00
valknarandClaude 312dd7fda0 remove: GitHub link from footer
- Remove GitHub icon and link from footer
- Repository now hosted at dev.pivoine.art/valknar/kit-ui
- Center footer content with justify-center

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 21:32:34 +01:00
valknarandClaude f4bc89e5fe fix: correct Audio gradient class name
- Change gradient-orange-red to gradient-orange-pink
- Use correct gradient class that exists in globals.css
- Fixes missing colors on Audio tool card

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 18:13:00 +01:00
valknarandClaude 4efb2d536d design: update Audio tool gradient to orange-red
- Change Audio gradient from purple-blue to orange-red
- Update accent color to #f97316 (vibrant orange)
- Better differentiation from Pastel (indigo-purple)
- Orange-red gradient fits audio/music theme

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 18:10:57 +01:00
valknarandClaude b094bd3af9 update: replace Stirling with Audio tool
- Remove Stirling PDF toolkit from tools list
- Add Audio editor (audio.kit.pivoine.art)
- Audio features: multi-track editing, effects, real-time analysis
- Export formats: WAV, MP3, OGG, FLAC
- Browser-based, privacy-first audio editing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 15:30:41 +01:00
valknarandClaude 4dcc7e7025 remove: delete GitHub Actions workflow
- Remove .github/workflows/docker-publish.yml
- CI/CD no longer needed for this project

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 11:31:49 +01:00
valknarandClaude be2227ef6f update: rebrand Vert to Convert with improved description
Build and Push Docker Image / build-and-push (push) Failing after 1m15s
- Rename tool from "Vert" to "Convert" across all files
- Update URL: vert.kit.pivoine.art → convert.kit.pivoine.art
- Improve description to highlight WebAssembly technology
- Update metadata keywords from 'vert' to 'convert'
- Better reflect actual features: videos, images, and audio conversion

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 11:18:52 +01:00
valknarandClaude 593c76de5c design: improve UI consistency and footer layout
- Update text sizing to text-base throughout for consistency
- Improve arrow icon visibility (gray-400 → gray-200 on hover)
- Reorganize tool badges: Open Source first, specialty second, Free third
- Update badge labels: Vert (Converter), Stirling (PDF), Units/Figlet (Open Source)
- Redesign footer: single-row layout with brand pill, centered copyright, GitHub link
- Update footer border: lighter gray-600, constrained to content width

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 16:53:03 +01:00
valknarandClaude 9dd47173d9 fix: improve card hover contrast and update Figlet icon
Card Hover Improvements:
- Increased gradient overlay opacity from 10% to 30% on hover
- Much better contrast and visibility
- Cards now have more prominent hover state
- Better user feedback on interaction

Figlet Icon Update:
- Changed from document icon to a-arrow-up icon
- Letter 'A' with upward arrow representing text/typography
- Better represents ASCII art text generation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 16:12:05 +01:00