From bdb3c887f360d5fd61d81548a8bfa03e59b9fc6f Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Wed, 3 Dec 2025 12:55:34 +0000 Subject: [PATCH] opensource text editor (#5146) # Description of Changes --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details. --- .../converters/ConvertPdfJsonController.java | 2 -- .../model/api/PdfJsonConversionProgress.java | 0 .../SPDF/model/json/PdfJsonAnnotation.java | 0 .../SPDF/model/json/PdfJsonCosValue.java | 0 .../SPDF/model/json/PdfJsonDocument.java | 0 .../model/json/PdfJsonDocumentMetadata.java | 0 .../software/SPDF/model/json/PdfJsonFont.java | 0 .../model/json/PdfJsonFontCidSystemInfo.java | 0 .../json/PdfJsonFontConversionCandidate.java | 0 .../json/PdfJsonFontConversionStatus.java | 0 .../model/json/PdfJsonFontType3Glyph.java | 0 .../SPDF/model/json/PdfJsonFormField.java | 0 .../SPDF/model/json/PdfJsonImageElement.java | 0 .../SPDF/model/json/PdfJsonMetadata.java | 0 .../software/SPDF/model/json/PdfJsonPage.java | 0 .../SPDF/model/json/PdfJsonPageDimension.java | 0 .../SPDF/model/json/PdfJsonStream.java | 0 .../SPDF/model/json/PdfJsonTextColor.java | 0 .../SPDF/model/json/PdfJsonTextElement.java | 0 .../service/PdfJsonConversionService.java | 0 .../SPDF/service/PdfJsonCosMapper.java | 0 .../service/PdfJsonFallbackFontService.java | 0 .../pdfjson/JobOwnershipServiceImpl.java | 0 .../pdfjson/NoOpJobOwnershipService.java | 0 .../service/pdfjson/PdfJsonFontService.java | 0 .../service/pdfjson/PdfJsonImageService.java | 0 .../pdfjson/PdfJsonMetadataService.java | 0 .../pdfjson/PdfLazyLoadingService.java | 0 .../pdfjson/type3/Type3ConversionRequest.java | 0 .../type3/Type3ConversionStrategy.java | 0 .../type3/Type3FontConversionService.java | 0 .../type3/Type3FontSignatureCalculator.java | 0 .../pdfjson/type3/Type3GlyphContext.java | 0 .../pdfjson/type3/Type3GlyphExtractor.java | 0 .../pdfjson/type3/Type3GraphicsEngine.java | 0 .../pdfjson/type3/Type3LibraryStrategy.java | 0 .../type3/library/Type3FontLibrary.java | 0 .../type3/library/Type3FontLibraryEntry.java | 0 .../type3/library/Type3FontLibraryMatch.java | 0 .../library/Type3FontLibraryPayload.java | 0 .../type3/model/Type3GlyphOutline.java | 0 .../type3/tool/Type3SignatureTool.java | 0 .../tools/pdfTextEditor/FontStatusPanel.tsx | 0 .../tools/pdfTextEditor/PdfTextEditorView.tsx | 12 +++++-- .../core/data/useTranslatedToolRegistry.tsx | 18 ++++++++++ .../tools/pdfTextEditor/PdfTextEditor.tsx | 2 +- .../tools/pdfTextEditor/fontAnalysis.ts | 0 .../tools/pdfTextEditor/pdfTextEditorTypes.ts | 0 .../tools/pdfTextEditor/pdfTextEditorUtils.ts | 0 frontend/src/core/types/toolId.ts | 1 + frontend/src/core/utils/urlMapping.ts | 1 + .../data/useProprietaryToolRegistry.tsx | 33 ++----------------- .../proprietary/types/proprietaryToolId.ts | 1 - frontend/src/proprietary/utils/urlMapping.ts | 4 +-- 54 files changed, 33 insertions(+), 41 deletions(-) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java (99%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/api/PdfJsonConversionProgress.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonAnnotation.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonCosValue.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocument.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocumentMetadata.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonFont.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontCidSystemInfo.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionCandidate.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionStatus.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontType3Glyph.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonFormField.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonImageElement.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonMetadata.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonPage.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonPageDimension.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonStream.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextColor.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextElement.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/PdfJsonConversionService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/PdfJsonCosMapper.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/PdfJsonFallbackFontService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/JobOwnershipServiceImpl.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/NoOpJobOwnershipService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonFontService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonImageService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonMetadataService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/PdfLazyLoadingService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionRequest.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionStrategy.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontConversionService.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontSignatureCalculator.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphContext.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphExtractor.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GraphicsEngine.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3LibraryStrategy.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibrary.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryEntry.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryMatch.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryPayload.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/model/Type3GlyphOutline.java (100%) rename app/{proprietary => core}/src/main/java/stirling/software/SPDF/service/pdfjson/type3/tool/Type3SignatureTool.java (100%) rename frontend/src/{proprietary => core}/components/tools/pdfTextEditor/FontStatusPanel.tsx (100%) rename frontend/src/{proprietary => core}/components/tools/pdfTextEditor/PdfTextEditorView.tsx (99%) rename frontend/src/{proprietary => core}/tools/pdfTextEditor/PdfTextEditor.tsx (99%) rename frontend/src/{proprietary => core}/tools/pdfTextEditor/fontAnalysis.ts (100%) rename frontend/src/{proprietary => core}/tools/pdfTextEditor/pdfTextEditorTypes.ts (100%) rename frontend/src/{proprietary => core}/tools/pdfTextEditor/pdfTextEditorUtils.ts (100%) diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java similarity index 99% rename from app/proprietary/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java rename to app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java index ef29c72e5..3b9f98c8c 100644 --- a/app/proprietary/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPdfJsonController.java @@ -31,12 +31,10 @@ import stirling.software.common.model.api.PDFFile; import stirling.software.common.service.JobOwnershipService; import stirling.software.common.util.ExceptionUtils; import stirling.software.common.util.WebResponseUtils; -import stirling.software.proprietary.security.config.PremiumEndpoint; @Slf4j @ConvertApi @RequiredArgsConstructor -@PremiumEndpoint public class ConvertPdfJsonController { private final PdfJsonConversionService pdfJsonConversionService; diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/api/PdfJsonConversionProgress.java b/app/core/src/main/java/stirling/software/SPDF/model/api/PdfJsonConversionProgress.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/api/PdfJsonConversionProgress.java rename to app/core/src/main/java/stirling/software/SPDF/model/api/PdfJsonConversionProgress.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonAnnotation.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonAnnotation.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonAnnotation.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonAnnotation.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonCosValue.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonCosValue.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonCosValue.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonCosValue.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocument.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocument.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocument.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocument.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocumentMetadata.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocumentMetadata.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocumentMetadata.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonDocumentMetadata.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFont.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFont.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFont.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFont.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontCidSystemInfo.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontCidSystemInfo.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontCidSystemInfo.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontCidSystemInfo.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionCandidate.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionCandidate.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionCandidate.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionCandidate.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionStatus.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionStatus.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionStatus.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontConversionStatus.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontType3Glyph.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontType3Glyph.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontType3Glyph.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFontType3Glyph.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFormField.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFormField.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonFormField.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonFormField.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonImageElement.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonImageElement.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonImageElement.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonImageElement.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonMetadata.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonMetadata.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonMetadata.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonMetadata.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonPage.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonPage.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonPage.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonPage.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonPageDimension.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonPageDimension.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonPageDimension.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonPageDimension.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonStream.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonStream.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonStream.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonStream.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextColor.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextColor.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextColor.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextColor.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextElement.java b/app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextElement.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextElement.java rename to app/core/src/main/java/stirling/software/SPDF/model/json/PdfJsonTextElement.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/PdfJsonConversionService.java b/app/core/src/main/java/stirling/software/SPDF/service/PdfJsonConversionService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/PdfJsonConversionService.java rename to app/core/src/main/java/stirling/software/SPDF/service/PdfJsonConversionService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/PdfJsonCosMapper.java b/app/core/src/main/java/stirling/software/SPDF/service/PdfJsonCosMapper.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/PdfJsonCosMapper.java rename to app/core/src/main/java/stirling/software/SPDF/service/PdfJsonCosMapper.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/PdfJsonFallbackFontService.java b/app/core/src/main/java/stirling/software/SPDF/service/PdfJsonFallbackFontService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/PdfJsonFallbackFontService.java rename to app/core/src/main/java/stirling/software/SPDF/service/PdfJsonFallbackFontService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/JobOwnershipServiceImpl.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/JobOwnershipServiceImpl.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/JobOwnershipServiceImpl.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/JobOwnershipServiceImpl.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/NoOpJobOwnershipService.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/NoOpJobOwnershipService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/NoOpJobOwnershipService.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/NoOpJobOwnershipService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonFontService.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonFontService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonFontService.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonFontService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonImageService.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonImageService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonImageService.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonImageService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonMetadataService.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonMetadataService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonMetadataService.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfJsonMetadataService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfLazyLoadingService.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfLazyLoadingService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/PdfLazyLoadingService.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/PdfLazyLoadingService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionRequest.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionRequest.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionRequest.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionRequest.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionStrategy.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionStrategy.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionStrategy.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3ConversionStrategy.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontConversionService.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontConversionService.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontConversionService.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontConversionService.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontSignatureCalculator.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontSignatureCalculator.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontSignatureCalculator.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3FontSignatureCalculator.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphContext.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphContext.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphContext.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphContext.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphExtractor.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphExtractor.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphExtractor.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GlyphExtractor.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GraphicsEngine.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GraphicsEngine.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GraphicsEngine.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3GraphicsEngine.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3LibraryStrategy.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3LibraryStrategy.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3LibraryStrategy.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/Type3LibraryStrategy.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibrary.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibrary.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibrary.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibrary.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryEntry.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryEntry.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryEntry.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryEntry.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryMatch.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryMatch.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryMatch.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryMatch.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryPayload.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryPayload.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryPayload.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/library/Type3FontLibraryPayload.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/model/Type3GlyphOutline.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/model/Type3GlyphOutline.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/model/Type3GlyphOutline.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/model/Type3GlyphOutline.java diff --git a/app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/tool/Type3SignatureTool.java b/app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/tool/Type3SignatureTool.java similarity index 100% rename from app/proprietary/src/main/java/stirling/software/SPDF/service/pdfjson/type3/tool/Type3SignatureTool.java rename to app/core/src/main/java/stirling/software/SPDF/service/pdfjson/type3/tool/Type3SignatureTool.java diff --git a/frontend/src/proprietary/components/tools/pdfTextEditor/FontStatusPanel.tsx b/frontend/src/core/components/tools/pdfTextEditor/FontStatusPanel.tsx similarity index 100% rename from frontend/src/proprietary/components/tools/pdfTextEditor/FontStatusPanel.tsx rename to frontend/src/core/components/tools/pdfTextEditor/FontStatusPanel.tsx diff --git a/frontend/src/proprietary/components/tools/pdfTextEditor/PdfTextEditorView.tsx b/frontend/src/core/components/tools/pdfTextEditor/PdfTextEditorView.tsx similarity index 99% rename from frontend/src/proprietary/components/tools/pdfTextEditor/PdfTextEditorView.tsx rename to frontend/src/core/components/tools/pdfTextEditor/PdfTextEditorView.tsx index 3c9309e96..0dbe8c50e 100644 --- a/frontend/src/proprietary/components/tools/pdfTextEditor/PdfTextEditorView.tsx +++ b/frontend/src/core/components/tools/pdfTextEditor/PdfTextEditorView.tsx @@ -33,7 +33,7 @@ import MergeTypeIcon from '@mui/icons-material/MergeType'; import CallSplitIcon from '@mui/icons-material/CallSplit'; import MoreVertIcon from '@mui/icons-material/MoreVert'; import { Rnd } from 'react-rnd'; -import NavigationWarningModal from '@core/components/shared/NavigationWarningModal'; +import NavigationWarningModal from '@app/components/shared/NavigationWarningModal'; import { PdfTextEditorViewData, @@ -2147,14 +2147,20 @@ const selectionToolbarPosition = useMemo(() => { // Determine text wrapping behavior based on whether text has been changed const hasChanges = changed; const widthExtended = resolvedWidth - baseWidth > 0.5; - const enableWrap = isParagraphLayout || widthExtended || isEditing || hasChanges; + // Only enable wrapping if: + // 1. It's paragraph layout (multi-line groups should wrap) + // 2. Width was manually extended (user explicitly made space for wrapping) + // 3. Has changes AND was already wrapping (preserve existing wrap state) + // DO NOT enable wrapping just because isEditing - text should only wrap when it actually overflows + const wasWrapping = isParagraphLayout || widthExtended; + const enableWrap = wasWrapping || (hasChanges && wasWrapping); const whiteSpace = enableWrap ? 'pre-wrap' : 'pre'; const wordBreak = enableWrap ? 'break-word' : 'normal'; const overflowWrap = enableWrap ? 'break-word' : 'normal'; // For paragraph mode, allow height to grow to accommodate lines without wrapping // For single-line mode, maintain fixed height based on PDF bounds - const useFlexibleHeight = isEditing || enableWrap || (isParagraphLayout && lineCount > 1); + const useFlexibleHeight = enableWrap || (isParagraphLayout && lineCount > 1); // The renderGroupContainer wrapper adds 4px horizontal padding (2px left + 2px right) // We need to add this to the container width to compensate, so the inner content diff --git a/frontend/src/core/data/useTranslatedToolRegistry.tsx b/frontend/src/core/data/useTranslatedToolRegistry.tsx index cda99dc40..5d0bcd622 100644 --- a/frontend/src/core/data/useTranslatedToolRegistry.tsx +++ b/frontend/src/core/data/useTranslatedToolRegistry.tsx @@ -43,6 +43,7 @@ import CertSign from "@app/tools/CertSign"; import BookletImposition from "@app/tools/BookletImposition"; import Flatten from "@app/tools/Flatten"; import Rotate from "@app/tools/Rotate"; +import PdfTextEditor from "@app/tools/pdfTextEditor/PdfTextEditor"; import ChangeMetadata from "@app/tools/ChangeMetadata"; import Crop from "@app/tools/Crop"; import Sign from "@app/tools/Sign"; @@ -890,6 +891,23 @@ export function useTranslatedToolCatalog(): TranslatedToolCatalog { automationSettings: RedactSingleStepSettings, synonyms: getSynonyms(t, "redact") }, + pdfTextEditor: { + icon: , + name: t("home.pdfTextEditor.title", "PDF Text Editor"), + component: PdfTextEditor, + description: t( + "home.pdfTextEditor.desc", + "Review and edit text and images in PDFs with grouped text editing and PDF regeneration" + ), + categoryId: ToolCategoryId.RECOMMENDED_TOOLS, + subcategoryId: SubcategoryId.GENERAL, + maxFiles: 1, + endpoints: ["text-editor-pdf"], + synonyms: getSynonyms(t, "pdfTextEditor"), + supportsAutomate: false, + automationSettings: null, + versionStatus: "alpha", + }, }; const regularTools = {} as RegularToolRegistry; diff --git a/frontend/src/proprietary/tools/pdfTextEditor/PdfTextEditor.tsx b/frontend/src/core/tools/pdfTextEditor/PdfTextEditor.tsx similarity index 99% rename from frontend/src/proprietary/tools/pdfTextEditor/PdfTextEditor.tsx rename to frontend/src/core/tools/pdfTextEditor/PdfTextEditor.tsx index 6337c23fd..571f3be09 100644 --- a/frontend/src/proprietary/tools/pdfTextEditor/PdfTextEditor.tsx +++ b/frontend/src/core/tools/pdfTextEditor/PdfTextEditor.tsx @@ -10,7 +10,7 @@ import { CONVERSION_ENDPOINTS } from '@app/constants/convertConstants'; import apiClient from '@app/services/apiClient'; import { downloadBlob, downloadTextAsFile } from '@app/utils/downloadUtils'; import { getFilenameFromHeaders } from '@app/utils/fileResponseUtils'; -import { pdfWorkerManager } from '@core/services/pdfWorkerManager'; +import { pdfWorkerManager } from '@app/services/pdfWorkerManager'; import { Util } from 'pdfjs-dist/legacy/build/pdf.mjs'; import { PdfJsonDocument, diff --git a/frontend/src/proprietary/tools/pdfTextEditor/fontAnalysis.ts b/frontend/src/core/tools/pdfTextEditor/fontAnalysis.ts similarity index 100% rename from frontend/src/proprietary/tools/pdfTextEditor/fontAnalysis.ts rename to frontend/src/core/tools/pdfTextEditor/fontAnalysis.ts diff --git a/frontend/src/proprietary/tools/pdfTextEditor/pdfTextEditorTypes.ts b/frontend/src/core/tools/pdfTextEditor/pdfTextEditorTypes.ts similarity index 100% rename from frontend/src/proprietary/tools/pdfTextEditor/pdfTextEditorTypes.ts rename to frontend/src/core/tools/pdfTextEditor/pdfTextEditorTypes.ts diff --git a/frontend/src/proprietary/tools/pdfTextEditor/pdfTextEditorUtils.ts b/frontend/src/core/tools/pdfTextEditor/pdfTextEditorUtils.ts similarity index 100% rename from frontend/src/proprietary/tools/pdfTextEditor/pdfTextEditorUtils.ts rename to frontend/src/core/tools/pdfTextEditor/pdfTextEditorUtils.ts diff --git a/frontend/src/core/types/toolId.ts b/frontend/src/core/types/toolId.ts index 23b03a871..752be58f4 100644 --- a/frontend/src/core/types/toolId.ts +++ b/frontend/src/core/types/toolId.ts @@ -54,6 +54,7 @@ export const CORE_REGULAR_TOOL_IDS = [ 'replaceColor', 'showJS', 'bookletImposition', + 'pdfTextEditor', ] as const; export const CORE_SUPER_TOOL_IDS = [ diff --git a/frontend/src/core/utils/urlMapping.ts b/frontend/src/core/utils/urlMapping.ts index aa2a3c57c..9cc5d1839 100644 --- a/frontend/src/core/utils/urlMapping.ts +++ b/frontend/src/core/utils/urlMapping.ts @@ -97,6 +97,7 @@ export const URL_TO_TOOL_MAP: Record = { '/automate': 'automate', '/sign': 'sign', '/add-text': 'addText', + '/pdf-text-editor': 'pdfTextEditor', // Developer tools '/dev-api': 'devApi', diff --git a/frontend/src/proprietary/data/useProprietaryToolRegistry.tsx b/frontend/src/proprietary/data/useProprietaryToolRegistry.tsx index 154433438..7181598b9 100644 --- a/frontend/src/proprietary/data/useProprietaryToolRegistry.tsx +++ b/frontend/src/proprietary/data/useProprietaryToolRegistry.tsx @@ -1,13 +1,5 @@ import { useMemo } from "react"; -import LocalIcon from "@app/components/shared/LocalIcon"; -import { useTranslation } from "react-i18next"; -import { getSynonyms } from "@app/utils/toolSynonyms"; -import PdfTextEditor from "@app/tools/pdfTextEditor/PdfTextEditor"; -import { - SubcategoryId, - ToolCategoryId, - type ProprietaryToolRegistry, -} from "@app/data/toolsTaxonomy"; +import { type ProprietaryToolRegistry } from "@app/data/toolsTaxonomy"; /** * Hook that provides the proprietary tool registry. @@ -16,26 +8,5 @@ import { * and will be included in the main tool registry. */ export function useProprietaryToolRegistry(): ProprietaryToolRegistry { - const { t } = useTranslation(); - - return useMemo(() => ({ - pdfTextEditor: { - icon: , - name: t("home.pdfTextEditor.title", "PDF Text Editor"), - component: PdfTextEditor, - description: t( - "home.pdfTextEditor.desc", - "Review and edit text and images in PDFs with grouped text editing and PDF regeneration" - ), - categoryId: ToolCategoryId.RECOMMENDED_TOOLS, - subcategoryId: SubcategoryId.GENERAL, - maxFiles: 1, - endpoints: ["text-editor-pdf"], - synonyms: getSynonyms(t, "pdfTextEditor"), - supportsAutomate: false, - automationSettings: null, - versionStatus: "alpha", - requiresPremium: true, - }, - }), [t]); + return useMemo(() => ({}), []); } diff --git a/frontend/src/proprietary/types/proprietaryToolId.ts b/frontend/src/proprietary/types/proprietaryToolId.ts index 92e3548a3..084cffa29 100644 --- a/frontend/src/proprietary/types/proprietaryToolId.ts +++ b/frontend/src/proprietary/types/proprietaryToolId.ts @@ -5,7 +5,6 @@ */ export const PROPRIETARY_REGULAR_TOOL_IDS = [ - 'pdfTextEditor', ] as const; export const PROPRIETARY_SUPER_TOOL_IDS = [ diff --git a/frontend/src/proprietary/utils/urlMapping.ts b/frontend/src/proprietary/utils/urlMapping.ts index 13bc379fb..969686ef5 100644 --- a/frontend/src/proprietary/utils/urlMapping.ts +++ b/frontend/src/proprietary/utils/urlMapping.ts @@ -8,9 +8,7 @@ import { ToolId } from '@app/types/toolId'; import { URL_TO_TOOL_MAP as CORE_URL_TO_TOOL_MAP } from '@core/utils/urlMapping'; // Proprietary URL mappings -const PROPRIETARY_URL_MAPPINGS: Record = { - '/pdf-text-editor': 'pdfTextEditor', -}; +const PROPRIETARY_URL_MAPPINGS: Record = {}; // Merge core and proprietary mappings export const URL_TO_TOOL_MAP: Record = {