mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
# Description of Changes Currently, the tables in the processor are inconsistently styled and function differently to each other because they don't all share the same table component. This is a big problem since the Processor is a largely table-based UI and most of most pages in it are tables. This PR creates a new common `DataTable` component and converts all existing tables in the Processor (other than those in the docs pages) to use it, tweaking the individual tables content as necessary so they all work the same. The `DataTable` component is designed to take minimal JSX as arguments. Instead, it takes typed data from the caller and it converts that into JSX, which makes it a lot easier to guarantee that the tables will all render the same and if we want to update the table styling in the future, we just need to do it in one place. I also added sorting capabilities to many of the tables since it was easy with the library and it was appropriate for many of the existing table columns. ## Table Comparisons <img width="2296" height="861" alt="AuditTab-comparison" src="https://github.com/user-attachments/assets/92473508-3f93-45c4-9485-ee21d0d1ecd0" /> <img width="2296" height="617" alt="DocumentExtractions-comparison" src="https://github.com/user-attachments/assets/cf194210-f4c9-42d1-bce1-5a70c0f8fdc5" /> <img width="2296" height="369" alt="InstanceHealthTable-comparison" src="https://github.com/user-attachments/assets/4b048c62-4237-4043-ae89-047df0cd7e60" /> <img width="2296" height="2304" alt="Integrations-comparison" src="https://github.com/user-attachments/assets/9d9edead-8da0-4d49-a249-253579cfdb0e" /> <img width="2296" height="521" alt="InvoicesList-comparison" src="https://github.com/user-attachments/assets/2b6d40b7-d63d-404b-a834-79d5fc62ba9d" /> <img width="2296" height="348" alt="LinkedInstancesTable-comparison" src="https://github.com/user-attachments/assets/fb65c660-baa4-4fcd-8893-05be1962fdab" /> <img width="2296" height="356" alt="PendingInvitations-comparison" src="https://github.com/user-attachments/assets/1f0105ed-b1f8-4e4e-998f-57024875a28f" /> <img width="2296" height="306" alt="PipelinesTable-comparison" src="https://github.com/user-attachments/assets/d84255bd-37f3-4245-b2b5-ef8c06c000ae" /> <img width="2296" height="652" alt="PolicyCatalogue-comparison" src="https://github.com/user-attachments/assets/55f25f20-46f0-47c0-aa40-516cbd5acab5" /> <img width="2296" height="1221" alt="ReviewQueueTable-comparison" src="https://github.com/user-attachments/assets/2206a50c-731f-48cc-958f-aad5e30e47b0" /> <img width="2296" height="344" alt="SourcesTable-comparison" src="https://github.com/user-attachments/assets/76b54efb-54ea-42a8-a0b1-b0cb21f73296" /> <img width="2296" height="659" alt="UsersDirectory-comparison" src="https://github.com/user-attachments/assets/524d1b63-efcf-4ac8-a07d-11aa1849c189" />
184 lines
6.2 KiB
JSON
184 lines
6.2 KiB
JSON
{
|
|
"name": "frontend",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"license": "SEE LICENSE IN https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/proprietary/LICENSE",
|
|
"proxy": "http://localhost:8080",
|
|
"dependencies": {
|
|
"@atlaskit/pragmatic-drag-and-drop": "^1.7.7",
|
|
"@cantoo/pdf-lib": "^2.5.3",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@embedpdf/core": "^2.14.4",
|
|
"@embedpdf/engines": "^2.14.4",
|
|
"@embedpdf/models": "^2.14.4",
|
|
"@embedpdf/plugin-annotation": "^2.14.4",
|
|
"@embedpdf/plugin-attachment": "^2.14.4",
|
|
"@embedpdf/plugin-bookmark": "^2.14.4",
|
|
"@embedpdf/plugin-document-manager": "^2.14.4",
|
|
"@embedpdf/plugin-export": "^2.14.4",
|
|
"@embedpdf/plugin-history": "^2.14.4",
|
|
"@embedpdf/plugin-interaction-manager": "^2.14.4",
|
|
"@embedpdf/plugin-pan": "^2.14.4",
|
|
"@embedpdf/plugin-print": "^2.14.4",
|
|
"@embedpdf/plugin-redaction": "^2.14.4",
|
|
"@embedpdf/plugin-render": "^2.14.4",
|
|
"@embedpdf/plugin-rotate": "^2.14.4",
|
|
"@embedpdf/plugin-scroll": "^2.14.4",
|
|
"@embedpdf/plugin-search": "^2.14.4",
|
|
"@embedpdf/plugin-selection": "^2.14.4",
|
|
"@embedpdf/plugin-spread": "^2.14.4",
|
|
"@embedpdf/plugin-thumbnail": "^2.14.4",
|
|
"@embedpdf/plugin-tiling": "^2.14.4",
|
|
"@embedpdf/plugin-viewport": "^2.14.4",
|
|
"@embedpdf/plugin-zoom": "^2.14.4",
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.1",
|
|
"@mantine/core": "^8.3.1",
|
|
"@mantine/dates": "^8.3.1",
|
|
"@mantine/dropzone": "^8.3.1",
|
|
"@mantine/hooks": "^8.3.1",
|
|
"@mui/icons-material": "^9.2.0",
|
|
"@mui/material": "^9.0.0",
|
|
"@posthog/react": "^1.8.2",
|
|
"@reactour/tour": "^3.8.0",
|
|
"@stripe/react-stripe-js": "^6.8.0",
|
|
"@stripe/stripe-js": "^9.10.0",
|
|
"@supabase/supabase-js": "^2.47.13",
|
|
"@tailwindcss/postcss": "^4.1.13",
|
|
"@tanstack/react-query": "^5.101.4",
|
|
"@tanstack/react-table": "^9.1.2",
|
|
"@tanstack/react-virtual": "^3.13.12",
|
|
"@tauri-apps/api": "^2.10.1",
|
|
"@tauri-apps/plugin-dialog": "2.7.0",
|
|
"@tauri-apps/plugin-fs": "2.5.0",
|
|
"@tauri-apps/plugin-http": "^2.5.7",
|
|
"@tauri-apps/plugin-notification": "^2.3.3",
|
|
"@tauri-apps/plugin-shell": "^2.3.5",
|
|
"@userback/widget": "^0.3.12",
|
|
"autoprefixer": "^10.4.21",
|
|
"axios": "^1.15.0",
|
|
"d3": "^7.9.0",
|
|
"i18next": "^25.10.10",
|
|
"i18next-browser-languagedetector": "^8.2.0",
|
|
"jszip": "^3.10.1",
|
|
"license-report": "^6.8.0",
|
|
"pdfjs-dist": "^5.4.149",
|
|
"peerjs": "^1.5.5",
|
|
"pixelmatch": "^7.1.0",
|
|
"posthog-js": "^1.405.2",
|
|
"qrcode.react": "^4.2.0",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"react-easy-crop": "^5.5.6",
|
|
"react-i18next": "^16.6.6",
|
|
"react-markdown": "^9.0.3",
|
|
"react-rnd": "^10.5.2",
|
|
"react-router-dom": "^7.9.1",
|
|
"recharts": "^3.7.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"signature_pad": "^5.0.4",
|
|
"smol-toml": "^1.4.2",
|
|
"tailwindcss": "^4.1.13",
|
|
"use-sync-external-store": "^1.6.0",
|
|
"web-vitals": "^5.1.0"
|
|
},
|
|
"scripts": {
|
|
"docs:sync": "tsx editor/scripts/sync-portal-docs.mts",
|
|
"update:minor": "node scripts/update-minor.js",
|
|
"update:major": "npx npm-check-updates -u && npm install",
|
|
"update:interactive": "npx npm-check-updates -i",
|
|
"update:minor-strict": "npx npm-check-updates -u --target minor && npm install",
|
|
"tauri:setup-dev-update": "bash scripts/dev-update-test/setup-dev-updater.sh",
|
|
"tauri:build-dev-update": "bash scripts/dev-update-test/build-dev-update.sh",
|
|
"tauri:serve-dev-update": "bash scripts/dev-update-test/serve-update.sh",
|
|
"tauri:test-update-e2e": "bash scripts/dev-update-test/test-update-e2e.sh",
|
|
"tauri:test-update-e2e:install": "bash scripts/dev-update-test/test-update-e2e.sh --install",
|
|
"tauri:dev-with-update": "cd editor && npx tsx scripts/setup-env.mts --desktop && node scripts/generate-icons.js && npx tauri dev --config src-tauri/tauri.conf.dev-update.json"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@iconify-json/material-symbols": "^1.2.83",
|
|
"@iconify/react": "^6.0.2",
|
|
"@iconify/utils": "^3.1.4",
|
|
"@playwright/test": "^1.55.0",
|
|
"@storybook/addon-a11y": "^9.1.20",
|
|
"@storybook/addon-docs": "^9.1.20",
|
|
"@storybook/addon-themes": "^9.1.20",
|
|
"@storybook/addon-vitest": "^9.1.20",
|
|
"@storybook/react-vite": "^9.1.20",
|
|
"@tauri-apps/cli": "^2.9.6",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/jest-dom": "^6.8.0",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/d3": "^7.4.3",
|
|
"@types/gapi": "^0.0.47",
|
|
"@types/gapi.client.drive-v3": "^0.0.5",
|
|
"@types/google.accounts": "^0.0.18",
|
|
"@types/google.picker": "^0.0.51",
|
|
"@types/node": "^24.5.2",
|
|
"@types/react": "^19.2.18",
|
|
"@types/react-dom": "^19.2.4",
|
|
"@types/use-sync-external-store": "^0.0.6",
|
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
"@vitejs/plugin-react-swc": "^4.1.0",
|
|
"@vitest/browser": "3.2.7",
|
|
"@vitest/coverage-v8": "3.2.7",
|
|
"dotenv": "^16.4.7",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"jsdom": "^27.0.0",
|
|
"json-schema-to-typescript": "^15.0.4",
|
|
"license-checker": "^25.0.1",
|
|
"msw": "^2.14.6",
|
|
"msw-storybook-addon": "^2.0.7",
|
|
"oxlint": "^1.77.0",
|
|
"postcss": "^8.5.12",
|
|
"postcss-cli": "^11.0.1",
|
|
"postcss-preset-mantine": "^1.18.0",
|
|
"postcss-simple-vars": "^7.0.1",
|
|
"prettier": "^3.8.1",
|
|
"puppeteer": "^24.25.0",
|
|
"rollup-plugin-visualizer": "^7.0.1",
|
|
"storybook": "^9.1.20",
|
|
"stylelint": "^17.14.1",
|
|
"tsx": "^4.22.4",
|
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
"vite": "^7.3.2",
|
|
"vite-plugin-compression2": "^2.5.3",
|
|
"vite-plugin-static-copy": "^3.1.4",
|
|
"vite-tsconfig-paths": "^5.1.4",
|
|
"vitest": "3.2.7"
|
|
},
|
|
"depcheck": {
|
|
"ignoreMatches": [
|
|
"@emotion/*",
|
|
"tailwindcss",
|
|
"@testing-library/user-event",
|
|
"@vitest/coverage-v8"
|
|
]
|
|
},
|
|
"overrides": {
|
|
"devalue": "^5.8.1",
|
|
"tsconfck": {
|
|
"typescript": "$typescript"
|
|
}
|
|
},
|
|
"msw": {
|
|
"workerDirectory": [
|
|
"editor/public"
|
|
]
|
|
}
|
|
}
|