42 Commits

Author SHA1 Message Date
dwindown
7ba289be5c feat: add ads.txt for AdSense verification 2025-10-23 00:09:54 +07:00
dwindown
d083129bd4 chore: update package-lock.json for serve dependency 2025-10-22 15:40:00 +07:00
dwindown
7d0a3e2a63 fix: add serve for production deployment 2025-10-22 15:36:32 +07:00
dwindown
fb9c944366 feat: major update - Markdown Editor, CodeMirror upgrades, SEO improvements, tool cleanup
- Added new Markdown Editor with live preview, GFM support, PDF/HTML/DOCX export
- Upgraded all paste fields to CodeMirror with syntax highlighting and expand/collapse
- Enhanced Object Editor with advanced URL fetching and preview mode
- Improved export views with syntax highlighting in Table/Object editors
- Implemented SEO improvements (FAQ schema, breadcrumbs, internal linking)
- Added Related Tools recommendations component
- Created custom 404 page with tool suggestions
- Consolidated tools: removed JSON, Serialize, CSV-JSON (merged into main editors)
- Updated documentation and cleaned up redundant files
- Updated release notes with user-centric improvements
2025-10-22 15:20:22 +07:00
dwindown
08d345eaeb fix: use build:no-snap for deployment to avoid puppeteer/chrome dependency 2025-10-15 22:55:07 +07:00
dwindown
4158c15bff docs: simplify release notes for user clarity 2025-10-15 22:44:49 +07:00
dwindown
df0fb5d22a feat: Object Editor Preview Mode & Mobile Optimizations
Major Enhancements:
- Added Preview/Edit mode toggle to StructuredEditor component
  * Preview mode: Read-only view with full text visibility
  * Edit mode: Full editing capabilities with all controls
  * Toggle positioned below title, responsive on mobile
  * Works in both main ObjectEditor view and nested modals

- Clickable nested data in Preview mode
  * JSON/serialized values are blue and clickable
  * Opens modal directly without switching to Edit mode
  * Hover effects and tooltips for better UX
  * No longer need edit mode just to explore structure

Mobile Responsiveness Improvements:
- Fixed all data load notices in ObjectEditor (URL, Paste, Open tabs)
- Fixed all data load notices in TableEditor (URL, Paste, Open tabs)
- Notices now stack vertically on mobile with proper spacing
- Added break-words for long text, whitespace-nowrap for buttons
- Dark mode colors added for better visibility

Table Editor Fixes:
- Fixed sticky header showing row underneath (top-[-1px])
- Made Export section header mobile responsive
- Updated object modal footer layout:
  * Format info and properties combined on single line
  * Buttons moved to separate row below
  * Changed 'Apply Changes' to 'Save Changes' for consistency

StructuredEditor Improvements:
- Moved overflow-x handling from ObjectEditor to StructuredEditor
- Now works consistently in main view and nested modals
- Long strings scroll horizontally everywhere
- 'Add Property' button hidden in Preview mode
- Improved chevron colors for dark mode visibility

Technical Changes:
- StructuredEditor now manages its own editMode state
- readOnly prop can still be passed from parent if needed
- Proper conditional rendering for all UI elements
- Consistent mobile-first responsive design patterns
2025-10-15 22:40:57 +07:00
dwindown
f6c19e855d fix: improve SEO with pre-rendering and dynamic meta tags
Critical SEO improvements to fix Google Search Console indexing:

## Sitemap Updates:
- Added missing Invoice Editor and What's New pages
- Updated all lastmod dates to 2025-10-15
- Increased editor tools priority to 0.9
- Added organizational comments
- Fixed /whats-new route (was /release-notes)

## Pre-rendering Implementation:
- Added react-snap for static HTML generation
- Configured to pre-render all tool pages
- Solves React SPA indexing issue
- Crawlers now see full HTML content

## Dynamic Meta Tags:
- Added react-helmet-async for SEO management
- Created reusable SEO component with:
  - Dynamic titles and descriptions
  - Open Graph tags (Facebook)
  - Twitter Card tags
  - JSON-LD structured data
  - Canonical URLs
- Wrapped App with HelmetProvider
- Added SEO to Home page

## Route Fixes:
- Added /whats-new route (primary)
- Kept /release-notes as fallback
- Consistent routing across app

## Documentation:
- Created comprehensive SEO_FIX_GUIDE.md
- Step-by-step Google Search Console instructions
- Troubleshooting guide
- Timeline expectations
- Testing procedures

These changes will dramatically improve Google indexing and search visibility.
2025-10-15 10:01:48 +07:00
dwindown
f60c1d16c8 feat: comprehensive editor UX refinement with collapsible sections and data loss prevention
Major improvements to Object Editor, Table Editor, and Invoice Editor:

## UX Enhancements:
- Made export sections collapsible across all editors to reduce page height
- Added comprehensive, collapsible usage tips with eye-catching design
- Implemented consistent input method patterns (file auto-load, inline URL buttons)
- Paste sections now collapse after successful parsing with data summaries

## Data Loss Prevention:
- Added confirmation modals when switching input methods with existing data
- Amber-themed warning design with specific data summaries
- Suggests saving before proceeding with destructive actions
- Prevents accidental data loss across all editor tools

## Consistency Improvements:
- Standardized file input styling with 'tool-input' class
- URL fetch buttons now inline (not below input) across all editors
- Parse buttons positioned consistently on bottom-right
- Auto-load behavior for file inputs matching across editors

## Bug Fixes:
- Fixed Table Editor cell text overflow with proper truncation
- Fixed Object Editor file input to auto-load content
- Removed unnecessary parse buttons and checkboxes
- Fixed Invoice Editor URL form layout

## Documentation:
- Created EDITOR_TOOL_GUIDE.md with comprehensive patterns
- Created EDITOR_CHECKLIST.md for quick reference
- Created PROJECT_ROADMAP.md with future plans
- Created TODO.md with detailed task lists
- Documented data loss prevention patterns
- Added code examples and best practices

All editors now follow consistent UX patterns with improved user experience and data protection.
2025-10-15 00:12:54 +07:00
dwindown
14a07a6cba Fix ESLint warning in CodeMirrorEditor for CI build
- Properly positioned eslint-disable comment to suppress exhaustive-deps warning
- Prevents CI build failure due to warnings being treated as errors
- Build now compiles successfully in production environment
2025-09-28 23:40:14 +07:00
dwindown
68db19e076 UI consistency & code quality improvements
- Standardized InvoiceEditor CreateNew tab styling to match ObjectEditor design
- Fixed CodeMirror focus issues during editing by removing problematic dependencies
- Removed copy button from mindmap view for cleaner interface
- Resolved ESLint warnings in PostmanTreeTable.js with useCallback optimization
- Enhanced PDF generation with dynamic style swapping for better print output
- Updated commits.json with latest changes
2025-09-28 23:30:44 +07:00
dwindown
78570f04f0 feat: Enhanced release notes system, fixed invoice installments, and improved logo integration
- Updated release notes to use new JSON structure with individual commit timestamps
- Removed hash display from release notes for cleaner UI
- Fixed automatic recalculation of percentage-based installments in Invoice Editor and Preview
- Integrated custom logo.svg in header and footer with cleaner styling
- Moved all data files to /public/data/ for better organization
- Cleaned up unused release data files and improved file structure
2025-09-28 17:14:54 +07:00
dwindown
9993614073 feat: Dynamic What's New with Gitea API integration
 Fixed all ESLint warnings in analytics.js
 Created comprehensive releaseNotesAPI.js with multiple source support:
  - Static JSON fallback
  - Custom API endpoint support

 Updated ReleaseNotes component to use live Gitea API:
  - Uses environment variables for configuration
  - Graceful fallback to static data if API fails
  - Enhanced commit message parsing

 Build successful with no errors or warnings
 What's New feature now dynamically loads from your Git commits
2025-09-28 00:41:48 +07:00
dwindown
04db088ff9 feat: Invoice Editor improvements and code cleanup
Major Invoice Editor updates:
-  Fixed tripled scrollbar issue by removing unnecessary overflow classes
-  Implemented dynamic currency system with JSON data loading
-  Fixed F4 PDF generation error with proper paper size handling
-  Added proper padding to Total section matching table headers
-  Removed print functionality (users can print from PDF download)
-  Streamlined preview toolbar: Back, Size selector, Download PDF
-  Fixed all ESLint warnings and errors
-  Removed console.log statements across codebase for cleaner production
-  Added border-top to Total section for better visual consistency
-  Improved print CSS and removed JSX warnings

Additional improvements:
- Added currencies.json to public folder for proper HTTP access
- Enhanced MinimalTemplate with better spacing and layout
- Clean build with no warnings or errors
- Updated release notes with new features
2025-09-28 00:09:06 +07:00
dwindown
b2850ea145 fix: Remove unused variables to resolve ESLint errors
🔧 ESLint Fixes:
- Remove unused 'categoryConfig' variable in Layout.js (line 167)
- Remove unused 'isHome' variable in ToolSidebar.js (line 77)
- Remove unused 'Sparkles' import in tools.js (line 1)

 Build Status:
- All ESLint errors resolved
- Build now compiles successfully
- Ready for deployment

📁 Files Modified:
- /src/components/Layout.js - Removed unused categoryConfig for NON_TOOLS
- /src/components/ToolSidebar.js - Removed unused isHome for NON_TOOLS
- /src/config/tools.js - Removed unused Sparkles import
2025-09-24 19:21:28 +07:00
dwindown
7792190ea1 feat: Enhanced What's New feature with NON_TOOLS category and global footer
 What's New Feature & Navigation Improvements:
- Added attractive 'What's New' button to homepage with gradient design and sparkle effects
- Created NON_TOOLS category for better navigation organization (Home, What's New)
- Separated navigation items in sidebar and mobile menu with clear visual hierarchy
- Implemented unified global footer across all pages for consistency

🎨 Design Enhancements:
- Stunning gradient button with indigo→purple→pink colors and hover animations
- Perfect placement between stats and tools grid for maximum visibility
- Consistent indigo-purple theming for non-tools category
- Professional sparkle effects and scale transforms on hover

🔧 Technical Improvements:
- Removed duplicate footer from Terms of Service page
- Unified footer implementation reduces code duplication
- Enhanced mobile dropdown with proper NON_TOOLS separation
- Updated sidebar with category-based styling and separators

📁 Files Modified:
- /src/config/tools.js - Added NON_TOOLS category and What's New entry
- /src/components/ToolSidebar.js - Separated NON_TOOLS with visual hierarchy
- /src/components/Layout.js - Updated mobile menu and implemented global footer
- /src/pages/Home.js - Added attractive What's New button with animations
- /src/pages/TermsOfService.js - Removed duplicate footer
- /src/pages/ReleaseNotes.js - Updated with latest implementation details
2025-09-24 19:02:12 +07:00
dwindown
21d0406ece Improve ObjectEditor and PostmanTable UI/UX
- Enhanced JSON parsing with smart error handling for trailing commas
- Fixed StructuredEditor array handling - array indices now non-editable
- Improved PostmanTable styling: removed border radius, solid thead background
- Enhanced icon spacing and alignment for better visual hierarchy
- Added copy feedback system with green check icons (2500ms duration)
- Restructured MindmapView node layout with dedicated action column
- Added HTML rendering toggle for PostmanTable similar to MindmapView
- Implemented consistent copy functionality across components
- Removed debug console.log statements for cleaner codebase
2025-09-24 14:05:10 +07:00
dwindown
57655410ab feat: optimize analytics and mobile UI improvements
Analytics & Consent Optimization:
- Auto-grant all consent for non-EEA users (maximize analytics data)
- EEA users still see consent banner (GDPR compliant)
- Removed debugging console logs from consent system
- Analytics now works in both development and production

Mobile UI Improvements:
- Fixed feature list layout on homepage (responsive flex layout)
- Improved consent banner button styling (better padding, full-width on mobile)
- Fixed mobile dropdown menu positioning (now sticky to header with overlay)
- Enhanced mobile navigation UX with proper z-index and backdrop

Legal Compliance:
- EEA users: Explicit consent required (GDPR compliant)
- Non-EEA users: Automatic tracking (legal, maximizes data collection)
- Maintains privacy-first approach while optimizing analytics coverage
2025-09-24 01:15:20 +07:00
dwindown
2e67a2bca2 feat: comprehensive SEO optimization and GDPR compliance
- Added Terms of Service and Privacy Policy pages with contact info
- Implemented Google Analytics with Consent Mode v2 for GDPR compliance
- Created sitemap.xml and robots.txt for search engine optimization
- Added dynamic meta tags, Open Graph, and structured data (JSON-LD)
- Implemented GDPR consent banner with TCF 2.2 compatibility
- Enhanced sidebar with category-colored hover states and proper active/inactive styling
- Fixed all ESLint warnings for clean deployment
- Added comprehensive SEO utilities and privacy-first analytics tracking

Ready for production deployment with full legal compliance and SEO optimization.
2025-09-24 00:12:28 +07:00
dwindown
dd03a7213f Remove all remaining unused variables and ESLint warnings
- Removed unused functions: handleClearConfirm, handleClearCancel, exportToJson, exportToCsv
- Removed unused variable: allDecimals and its references
- Added ESLint disable comment for error variable (used in UI but not detected by linter)
- Build now compiles successfully with zero warnings or errors
- Ready for CI/CD deployment in Coolify
2025-09-23 15:30:05 +07:00
dwindown
5f6aa2210a Fix ESLint errors for successful deployment
- Fixed mixed operators in contentExtractor.js with proper parentheses
- Removed unused variables and imports across all components
- Fixed useCallback dependencies in ObjectEditor.js
- Corrected == to === comparisons in TableEditor.js
- Fixed undefined variable references
- Wrapped serializeToPhp in useCallback to resolve dependency warning
- Updated table column width styling from min-w to w for consistent layout

Build now passes successfully with only non-blocking warnings remaining.
2025-09-23 14:46:30 +07:00
dwindown
977e784df2 Improve ObjectEditor and Add TableEditor 2025-09-23 14:17:13 +07:00
dwindown
cf750114f7 🐛 Remove all setSelectedRowIndex references
- Remove setSelectedRowIndex calls from handleRowClick
- Remove setSelectedRowIndex calls from handleBack
- Remove setSelectedRowIndex calls from handleBreadcrumbClick
- Build now passes ESLint validation 
2025-09-21 17:29:46 +07:00
dwindown
ece5ffc63f 🐛 Fix ESLint errors in PostmanTable.js
- Remove unused useMemo import
- Remove unused selectedRowIndex state
- Remove unused isComplexValue function
- Fix CI deployment build failure
2025-09-21 17:27:27 +07:00
dwindown
f2163c9814 Enhanced Object Editor with fetch data & mobile improvements
🚀 New Features:
- Fetch Data functionality with URL input and error handling
- Auto-protocol detection (adds https:// if missing)
- Smart content-type handling for various JSON APIs
- Perfect for Telegram Bot API, GitHub API, JSONPlaceholder, etc.

📱 Mobile Responsiveness:
- Desktop: Clean tab interface for view modes
- Mobile: Native select dropdown with emoji icons
- StructuredEditor: Horizontal scroll for wide JSON structures
- Input data field auto-hides on successful fetch

🐛 Critical Fixes:
- Fixed StructuredEditor reinitialization loop issue
- Fixed deep nested property/array item deletion
- Proper array splicing and object property removal
- Internal vs external data change tracking

🎨 UX Improvements:
- Loading states during fetch operations
- Better error messages and validation
- Responsive button layouts and spacing
- Enhanced usage tips with fetch examples
2025-09-21 17:08:20 +07:00
dwindown
e1c74e4a4e 🎯 Complete Postman-Style Table View with Consistent Design
 New Features:
- Authentic Postman table experience with horizontal arrays & vertical objects
- Click rows to drill down with breadcrumb navigation
- Smart data detection (arrays → tables, objects → key-value, primitives → display)
- Clickable breadcrumb buttons for easy navigation
- Back button for seamless exploration

🎨 Consistent Visual Design:
- Unified type notation across Visual Editor, Mindmap, and Table views
- Color-coded pills with icons for all data types:
  🔵 Objects (blue) 🟢 Arrays (green) 🟣 Strings (purple)
  🟠 Numbers (orange) 🟡 Booleans (yellow)  Null (gray)
- Button-style breadcrumb vs circular data pills for clear distinction
- Full dark mode support throughout

🔧 UX Improvements:
- Output formats hidden by default with 'See Data Outputs' toggle
- Left-aligned toggle button matching existing UI
- Preserved PostmanTreeTable as asset for hierarchical view
- Enhanced sample data with realistic array/object structure
- Professional styling matching Postman's interface

🚀 Technical Implementation:
- Dynamic column generation from array data
- Path-based navigation with state management
- Type-aware rendering with consistent icons
- Responsive design for all screen sizes
- Clean component architecture
2025-09-21 16:33:28 +07:00
dwindown
12d45590cd 🐛 Add debug console logs to troubleshoot deployment 2025-09-21 15:09:17 +07:00
dwindown
b8164d617e 🔄 Update Object Editor description to mention mindmap visualization 2025-09-21 14:32:30 +07:00
dwindown
e59ebcb5d3 Fix phpSerialize useCallback dependency 2025-09-21 13:37:04 +07:00
dwindown
5ccb1e2421 Fix ESLint warnings for deployment 2025-09-21 13:29:30 +07:00
dwindown
d3ca407777 Enhanced mindmap visualization with professional UI
🎯 Major Features Added:
- Snap to grid functionality (20x20 grid, default enabled)
- Tidy Up button for instant node reorganization
- Copy node values with one-click clipboard integration
- HTML rendering toggle (render/raw modes for HTML content)
- Accordion-style collapsible panels (Controls & Legend)
- Automatic fitView on fullscreen toggle with smooth animations

🎨 UI/UX Improvements:
- Professional accordion layout with exclusive panel opening
- Consistent button alignment and styling across all controls
- Legend moved to top-right with icon+color indicators
- Vertical button stack: Controls → Legend → Tidy Up → Fullscreen
- Smooth transitions and hover effects throughout
- Clean, uncluttered interface with folded panels by default

🔧 Technical Enhancements:
- Fixed ResizeObserver errors with proper error handling
- Optimized React rendering with memo and useCallback
- Debounced DOM updates to prevent infinite loops
- React Flow instance management for programmatic control
- Removed redundant Raw Input button for cleaner interface

🚀 Performance & Stability:
- Error boundary implementation for ResizeObserver issues
- Proper cleanup of event listeners and timeouts
- Memoized components to prevent unnecessary re-renders
- Smooth 300ms animations for all state transitions
2025-09-21 12:33:39 +07:00
dwindown
82d14622ac Add Text Length Checker tool with comprehensive text analysis features
- Add new TextLengthTool.js with real-time text statistics
- Features: character/word/line/sentence/paragraph counting, reading time estimation
- Add Text Length Checker to navigation (ToolSidebar, Layout, App routing)
- Add Text Length Checker card to homepage
- Fix button styling with flex alignment for better UX
- Route: /text-length with Type icon from lucide-react
2025-09-21 07:09:33 +07:00
dwindown
6f5bdf5f0d Fix PHP serialization and add Long Text type to Visual Editor
- Fixed PHP serialization byte length calculation for escaped strings
- Added Long Text type with textarea for multiline strings in StructuredEditor
- Auto-detects strings with newlines and displays them as textarea
- Improvements apply to both SerializeTool and JsonTool visual editors
- Resolves parse errors with quoted strings and multiline content
2025-08-21 23:45:46 +07:00
dwindown
65cc3bc54d Fix package-lock.json TypeScript version mismatch for deployment 2025-08-21 23:19:22 +07:00
dwindown
22d333d932 fix serialize and json tool to handle boolean type and number type field, and fix the nested rows in array and object type 2025-08-21 23:12:43 +07:00
dwindown
97459ea313 feat: Enhanced developer tools UX with visual improvements
- Fixed StructuredEditor auto-type detection to only trigger on empty fields
- Made array keys readonly with proper index display and full-width value inputs
- Enhanced PHP unserialize to handle empty strings, NULL values, and complex data
- Added JSON to CSV support for single objects as Key-Value format
- Upgraded DiffTool with react-diff-view for professional GitHub-style diffs
- Added theme-synchronized diff colors with proper contrast in light/dark modes
- Implemented red/green text on matching backgrounds for optimal readability
2025-08-07 20:05:11 +07:00
dwindown
bc7e2a8986 Remove abandoned HTML Preview Tool files and fix ESLint warnings
- Removed unused imports (Key, Palette, QrCode) from Layout.js
- Deleted all HTML Preview Tool files from repository
- Removed HtmlPreviewTool import and route from App.js
- Build now completes successfully without ESLint warnings
- Ready for deployment in CI environment
2025-08-04 13:27:19 +07:00
dwindown
45ddccc2f6 Fix missing imports in Layout.js to resolve deployment ESLint errors
- Added Database, LinkIcon, Code2, and ChevronDown imports from lucide-react
- Build now completes successfully without blocking errors
- Ready for deployment
2025-08-04 13:18:39 +07:00
dwindown
76c0a0d014 Remove HTML Preview Tool from navigation and add to gitignore
- Removed HTML Preview Tool from navigation menu in Layout.js
- Cleaned up unused Code import
- Added HTML Preview related files to .gitignore
- Project builds successfully without HTML Preview Tool
2025-08-04 13:04:11 +07:00
dwindown
e1bc8d193d Fix HTML Preview Tool critical bugs: PreviewFrame ref and click handler
- Fixed missing ref={previewFrameRef} on first PreviewFrame component (line 336)
  * This was causing 'PreviewFrame API not available' errors during save operations
  * Both fullscreen and normal mode PreviewFrame instances now have proper ref connection

- Fixed click handler attachment bug in setupInspectModeStyles function
  * Click handler was being skipped when styles were already injected
  * Now always attaches click handler when inspect mode is activated
  * Added proper cleanup to prevent duplicate event listeners

- Fixed variable scope issues in PreviewFrame.fresh.js
  * styleElement and cursorStyleElement now properly scoped for cleanup function
  * Added references to existing elements when styles already present

- Removed unused variables and fixed eslint warnings
  * Removed unused indentSize variable in BeautifierTool.js
  * Removed unused onSave and onDomUpdate props in PreviewFrame.fresh.js
  * Fixed unnecessary escape character in script tag

These fixes restore the Enhanced Option A DOM manipulation architecture:
- Inspector sidebar should now appear when clicking elements in inspect mode
- Save functionality should work without 'PreviewFrame ref not available' errors
- Live editing of element properties should work through PreviewFrame API
- Iframe refresh prevention during inspector operations maintained
2025-08-03 22:04:25 +07:00
dwindown
7afb83753c Add .gitignore and remove node_modules from tracking
- Added comprehensive .gitignore file
- Removed node_modules from git tracking
- Clean repository ready for deployment
2025-08-02 09:32:50 +07:00
dwindown
7f2dd5260f Initial commit: Developer Tools MVP with visual editor
- Complete React app with 7 developer tools
- JSON Tool with visual structured editor
- Serialize Tool with visual structured editor
- URL, Base64, CSV/JSON, Beautifier, Diff tools
- Responsive navigation with dropdown menu
- Dark/light mode toggle
- Mobile-responsive design with sticky header
- All tools working with copy/paste functionality
2025-08-02 09:31:26 +07:00