mirror of
https://github.com/VladSez/easy-invoice-pdf
synced 2026-04-21 21:47:52 +00:00
* feat: enhance Android PDF viewer with error handling and memoization - Added error handling for PDF loading failures in AndroidPdfViewer, utilizing Sentry for logging and user-friendly toast notifications. - Implemented memoization for the InvoicePdfTemplate to optimize rendering performance. - Updated layout.tsx to include necessary CSS for PDF rendering. - Adjusted index.tsx comments for clarity on viewer types. * feat: add new toasts, cleanup landing page, add stripe template * feat: enhance PDF footer and update tests for dynamic content - Introduced a new InvoiceFooter component to modularize footer rendering in PDF templates, improving code organization and reusability. - Updated PDF tests to verify dynamic content in footers, including current month/year and payment due date, ensuring accurate invoice representation. - Added PROD_WEBSITE_URL to config for consistent URL usage across components. - Improved Telegram message handling with cache control headers for better performance. * feat: implement invoice sharing logic and logo handling for stripe template - Added state management for sharing invoices, including validation for logos that exceed URL length limits. - Updated the share invoice button to reflect sharing capabilities based on logo presence. - Introduced logo upload functionality with validation for file type and size, enhancing user experience. - Refactored invoice form to disable sharing when a logo is present in Stripe templates, ensuring compliance with URL constraints. - Improved toast notifications for user feedback on sharing and logo upload actions. * feat: update invoice descriptions and enhance date handling in PDF templates - Updated invoice descriptions in multiple languages to clarify that the tool runs entirely in the browser. - Refactored date handling in the Stripe template components to ensure accurate formatting based on the invoice's language settings. - Introduced a new InvoiceBody component to modularize the PDF rendering process, improving code organization and reusability. - Enhanced the StripeDueAmount and StripeFooter components to reflect the updated date logic and improve overall clarity in the invoice presentation. - Added localization support for date formatting using dayjs across various components. - Added new currencies * chore: remove unused vercel.json and add new e2e tests for invoice sharing and PDF generation - Deleted the unused vercel.json configuration file. - Updated the about page test to reflect changes in the description for clarity. - Removed redundant error message checks in the invoice form tests. - Added new e2e tests for PDF generation and sharing logic specific to the Stripe template, ensuring comprehensive coverage of invoice functionalities. * feat: enhance umami tracking with invoice template data and improve error handling * refactor: improve tooltips text and design, improve error handling and test assertions in invoice form and logo upload utilities - Enhanced error handling in the logo upload function to ensure input elements are present and base64 data is provided. - Updated e2e tests for the invoice generator page to use more reliable URL assertions. - Refactored invoice form logic to simplify sharing validation based on template and logo presence. - Improved button accessibility and user experience by clarifying aria-disabled attributes in various components. * refactor: update CTA toast logic and improve button components - Changed the timer for showing the CTA toast from 30 seconds to 40 seconds. * fix tests * fix: update date formatting in general information section to respect locale settings * feat: add changelog page with mdx support - Added support for MDX files in the Next.js configuration, allowing for rich content in the changelog. - Introduced a new changelog layout and page structure to display updates effectively. - Implemented dynamic routing for individual changelog entries, improving navigation and user experience. - Enhanced the footer component with subscription functionality and improved styling. - Updated translations to include changelog links across multiple languages. - Added new components for date formatting and project logo descriptions to enhance the changelog presentation. * feat: add environment configuration and update social links in tests - Created a new .env.example file to define environment variables for server and client configurations, including Sentry, Resend, Redis, and personal information for invoices. - Updated e2e tests to utilize GITHUB_URL and TWITTER_URL from the config for social media links, enhancing maintainability and consistency across the application. - Refactored footer and about page components to use dynamic URLs for GitHub and Twitter, improving code clarity and reducing hardcoded values. * chore: update environment configuration and README for clarity - Updated .env.example to set default values for Sentry and Google Drive API configurations, enhancing clarity for new developers. - Modified env.ts to remove minimum length validation for environment variables, simplifying the setup process. - Enhanced README with quick start instructions and service links for Resend, Upstash, Google Drive API, and Telegram Bot API, improving onboarding experience. * chore: add localtunnel script to package.json and adjust input component styles - Added a new script expose-to-internet in package.json for localtunnel to facilitate external access during development. - Updated the Input component to conditionally adjust width for date type inputs, enhancing responsiveness and usability. * fix: update tagline in various components for consistency * refactor: enhance loading component layout and styling * refactor: improve invoice form validation and template handling - Enhanced the InvoiceForm component to validate data before saving to local storage using Zod. - Updated GeneralInformation component to handle template-specific updates for date format and clear fields based on the selected template. - Adjusted StripeSellerBuyerInfo component styles for better spacing and consistency. - Improved InvoiceBody component to handle invoice total formatting more robustly. - Updated translations for 'billTo' in multiple languages for better accuracy. * footer fix * refactor: standardize date formatting in invoice templates - Introduced STRIPE_DEFAULT_DATE_FORMAT constant for consistent date formatting across invoice-related components. - Updated template tests to utilize the new date format for improved maintainability. - Adjusted GeneralInformation component to set date format based on the selected template, enhancing clarity and consistency.
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import type { Config } from "tailwindcss";
|
|
|
|
const config: Config = {
|
|
darkMode: ["class"],
|
|
content: [
|
|
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
|
|
"./content/**/*.{md,mdx}",
|
|
],
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
background: "var(--background)",
|
|
foreground: "var(--foreground)",
|
|
},
|
|
borderRadius: {
|
|
lg: "var(--radius)",
|
|
md: "calc(var(--radius) - 2px)",
|
|
sm: "calc(var(--radius) - 4px)",
|
|
},
|
|
keyframes: {
|
|
"accordion-down": {
|
|
from: {
|
|
height: "0",
|
|
},
|
|
to: {
|
|
height: "var(--radix-accordion-content-height)",
|
|
},
|
|
},
|
|
"accordion-up": {
|
|
from: {
|
|
height: "var(--radix-accordion-content-height)",
|
|
},
|
|
to: {
|
|
height: "0",
|
|
},
|
|
},
|
|
heartbeat: {
|
|
"0%": { transform: "scale(1)" },
|
|
"25%": { transform: "scale(1.4)" },
|
|
"50%": { transform: "scale(1)" },
|
|
"75%": { transform: "scale(1.4)" },
|
|
"100%": { transform: "scale(1)" },
|
|
},
|
|
},
|
|
animation: {
|
|
"accordion-down": "accordion-down 0.2s ease-out",
|
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
heartbeat: "heartbeat 3s ease-in-out infinite 25s", // 3s = duration of animation, infinite = repeat forever, 25s = delay before starting animation
|
|
},
|
|
},
|
|
},
|
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
plugins: [require("tailwindcss-animate"), require("@tailwindcss/typography")],
|
|
};
|
|
export default config;
|