mirror of
https://github.com/VladSez/easy-invoice-pdf
synced 2026-04-21 13:37:40 +00:00
* feat: add OutOfDateDatesHelper, Shared invoice badge, etc * Introduced new markdown files for skills, covering typography, surfaces, animations, and performance to enhance interface design consistency. * feat: add isSharedInvoice prop to InvoiceForm for shared invoice indication * Introduced isSharedInvoice prop in InvoiceForm component to manage shared invoice state. * Updated UI to display tooltips for shared seller and buyer information, enhancing user awareness of shared invoices. * test: enhance invoice form tests with detailed validation for date fields and invoice number * fix: update label styling in UI component for improved visual consistency * Changed text class from text-balance to text-pretty in Label component to enhance design consistency across the application. * feat: enhance email visibility functionality in buyer and seller dialogs * Added email visibility toggle in BuyerDialog and SellerDialog components, allowing users to show or hide the email field in PDF outputs. * Updated related tests to ensure proper functionality of the email visibility feature. * Improved UI labels for required fields to enhance user experience and clarity. * feat: implement email visibility toggle in PDF for invoice templates * Added tests to verify email visibility toggles for both seller and buyer sections in the default and stripe invoice templates. * Included functionality to capture screenshots of PDFs with emails hidden and visible based on user selections. * Created new snapshot images for both email visibility states across different devices and browsers. * formatting * chore: update CI workflows to handle linting, type checking, and unit tests failures * Added to linting, type checking, and unit tests steps to prevent workflow failure on errors. * Modified email notification conditions to trigger only on failure of respective steps, improving error handling and notification accuracy. * refactor: update email visibility toggle tests to use role-based queries * refactor: simplify buyer and seller information forms by removing tooltip components and enhancing locked state visibility * Removed tooltip components from Buyer and Seller information sections, replacing them with a locked banner for better user guidance. * Updated input fields to reflect required status and improved accessibility by removing unnecessary aria attributes. * Enhanced the content of shared seller and buyer tooltips in the InvoiceForm for clarity. * refactor: remove isSharedInvoice prop and associated tooltips from Invoice components * Eliminated the isSharedInvoice prop from InvoiceForm and its usage in InvoiceClientPage. * Simplified the InvoicePageHeader content for shared invoices by replacing detailed tooltips with a concise message. * Streamlined the code for better readability and maintainability. * refactor: update locked banner visibility and improve invoice management UI * Enhanced visibility of locked banners in Buyer and Seller management forms, providing clearer guidance for modifying details. * Updated tests to verify the visibility and content of locked banners based on buyer and seller selection states. * Simplified the Invoice components by removing unnecessary props and improving layout consistency across the application. * refactor: improve error message layout and content in error handling components * Updated the Error component to separate error messages for better clarity and user guidance. * Enhanced the styling of the ErrorMessage component for improved readability and layout consistency.
121 lines
4.1 KiB
JSON
121 lines
4.1 KiB
JSON
{
|
|
"name": "pdf-invoice-generator",
|
|
"version": "1.0.2",
|
|
"private": true,
|
|
"packageManager": "pnpm@10.30.1+sha512.3590e550d5384caa39bd5c7c739f72270234b2f6059e13018f975c313b1eb9fefcc09714048765d4d9efe961382c312e624572c0420762bdc5d5940cdf9be73a",
|
|
"pnpm": {
|
|
"minimumReleaseAge": 4320
|
|
},
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"type-check": "tsc --noEmit --diagnostics",
|
|
"type-check:go": "npx tsgo --diagnostics",
|
|
"lint": "pnpm eslint . --cache",
|
|
"lint:fix": "pnpm eslint . --fix",
|
|
"prettify": "prettier --write --cache '**/*.{ts?(x),json,js,mjs,yml,yaml,md}'",
|
|
"knip": "knip",
|
|
"update-deps": "pnpm upgrade --interactive --latest -rLi --config.minimum-release-age=4320",
|
|
"vitest": "vitest --reporter=verbose",
|
|
"vitest:ui": "vitest --ui",
|
|
"e2e": "pnpm exec playwright test --reporter=list",
|
|
"e2e:ui": "pnpm exec playwright test --ui",
|
|
"e2e:not-flaky": "pnpm e2e --workers=2",
|
|
"e2e:update-snapshots": "pnpm e2e --update-snapshots",
|
|
"dedupe": "pnpm dedupe",
|
|
"lint-stage": "pnpm dlx lint-staged --verbose",
|
|
"check-meta": "pnpx check-site-meta",
|
|
"dev:email": "email dev --dir src/emails",
|
|
"prepare": "husky",
|
|
"expose-to-internet": "pnpm dlx cloudflared tunnel --url http://localhost:3000",
|
|
"cloudflared:tunnel": "pnpm dlx cloudflared tunnel run easy-invoice-pdf-local-dev",
|
|
"corepack:enable": "corepack enable",
|
|
"corepack:prepare": "corepack prepare pnpm@latest"
|
|
},
|
|
"dependencies": {
|
|
"@hookform/resolvers": "3.9.0",
|
|
"@mdx-js/loader": "3.1.0",
|
|
"@mdx-js/react": "3.1.0",
|
|
"@next/mdx": "15.3.3",
|
|
"@radix-ui/react-accordion": "1.2.3",
|
|
"@radix-ui/react-alert-dialog": "1.1.6",
|
|
"@radix-ui/react-dialog": "1.1.6",
|
|
"@radix-ui/react-dropdown-menu": "2.1.6",
|
|
"@radix-ui/react-label": "2.1.2",
|
|
"@radix-ui/react-popover": "1.1.6",
|
|
"@radix-ui/react-separator": "1.1.2",
|
|
"@radix-ui/react-slot": "1.1.2",
|
|
"@radix-ui/react-switch": "1.1.3",
|
|
"@radix-ui/react-tabs": "1.1.3",
|
|
"@radix-ui/react-tooltip": "1.1.8",
|
|
"@react-pdf/renderer": "4.3.0",
|
|
"@sentry/nextjs": "9.3.0",
|
|
"@t3-oss/env-nextjs": "0.13.4",
|
|
"@tailwindcss/typography": "0.5.16",
|
|
"@types/mdx": "2.0.13",
|
|
"@types/qrcode": "1.5.6",
|
|
"@types/ua-parser-js": "0.7.39",
|
|
"@upstash/ratelimit": "2.0.5",
|
|
"@upstash/redis": "1.34.6",
|
|
"@vercel/speed-insights": "1.2.0",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"cmdk": "1.0.0",
|
|
"dayjs": "1.11.13",
|
|
"eslint-plugin-react-hooks": "5.2.0",
|
|
"file-saver": "2.0.5",
|
|
"googleapis": "148.0.0",
|
|
"jiti": "2.4.2",
|
|
"jszip": "3.10.1",
|
|
"lucide-react": "0.477.0",
|
|
"lz-string": "1.5.0",
|
|
"n2words": "1.21.0",
|
|
"next": "14.2.15",
|
|
"next-intl": "4.0.2",
|
|
"qrcode": "1.5.4",
|
|
"react": "18.3.1",
|
|
"react-dom": "18.3.1",
|
|
"react-hook-form": "7.53.1",
|
|
"react-intersection-observer": "9.16.0",
|
|
"react-pdf": "9.2.1",
|
|
"remark-gfm": "4.0.1",
|
|
"resend": "4.2.0",
|
|
"sonner": "1.7.4",
|
|
"tailwind-merge": "2.6.0",
|
|
"tailwindcss-animate": "1.0.7",
|
|
"ua-parser-js": "2.0.3",
|
|
"use-debounce": "10.0.4",
|
|
"zod": "3.24.4"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "3.3.1",
|
|
"@next/eslint-plugin-next": "15.2.3",
|
|
"@playwright/test": "1.56.1",
|
|
"@types/file-saver": "2.0.7",
|
|
"@types/node": "22.8.1",
|
|
"@types/react": "18.3.12",
|
|
"@types/react-dom": "18.3.1",
|
|
"@typescript/native-preview": "7.0.0-dev.20260217.1",
|
|
"autoprefixer": "10.4.21",
|
|
"dotenv": "17.2.3",
|
|
"eslint": "9.33.0",
|
|
"eslint-config-next": "15.2.3",
|
|
"eslint-plugin-playwright": "2.2.0",
|
|
"eslint-plugin-react-you-might-not-need-an-effect": "0.0.39",
|
|
"husky": "9.1.7",
|
|
"knip": "5.85.0",
|
|
"lint-staged": "15.5.0",
|
|
"postcss": "^8",
|
|
"prettier": "3.5.3",
|
|
"prettier-plugin-tailwindcss": "0.6.11",
|
|
"react-email": "4.0.4",
|
|
"react-scan": "0.3.4",
|
|
"schema-dts": "1.1.5",
|
|
"shadcn": "3.2.1",
|
|
"tailwindcss": "3.4.14",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "8.56.0",
|
|
"vitest": "3.2.4"
|
|
}
|
|
}
|