@paperjsx/json-to-pptx-pro 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +69 -0
- package/dist-pro/accessibilityRemediation-JCCWTNLI.js +1 -0
- package/dist-pro/accessibilityValidator-PNPHJ7DT.js +1 -0
- package/dist-pro/chunk-4BFWRWGW.js +1 -0
- package/dist-pro/chunk-54L7UJFX.js +1 -0
- package/dist-pro/chunk-7MQHUWBC.js +1 -0
- package/dist-pro/chunk-7OH2BCHB.js +1 -0
- package/dist-pro/chunk-ATW2DQGN.js +1 -0
- package/dist-pro/chunk-AU5HXCGI.js +1 -0
- package/dist-pro/chunk-BRMIGHX5.js +1 -0
- package/dist-pro/chunk-CEEMFICV.js +2138 -0
- package/dist-pro/chunk-CT3ZL3KD.js +1 -0
- package/dist-pro/chunk-D33P4D2I.js +1 -0
- package/dist-pro/chunk-DIB2EOON.js +40 -0
- package/dist-pro/chunk-HGXLLLMM.js +1 -0
- package/dist-pro/chunk-HI4JFT7W.js +1 -0
- package/dist-pro/chunk-HKVBMVGH.js +2 -0
- package/dist-pro/chunk-IQQAF6DF.js +1 -0
- package/dist-pro/chunk-JBV3SHHJ.js +1 -0
- package/dist-pro/chunk-JKZFYDBI.js +1 -0
- package/dist-pro/chunk-KITDCLGP.js +1 -0
- package/dist-pro/chunk-N7MH4LUH.js +1 -0
- package/dist-pro/chunk-NBTN5HDS.js +16 -0
- package/dist-pro/chunk-OLTONCQC.js +1 -0
- package/dist-pro/chunk-QCSPOFAH.js +1 -0
- package/dist-pro/chunk-QLDFKBHR.js +1 -0
- package/dist-pro/chunk-RDC4FC4R.js +1 -0
- package/dist-pro/chunk-RS6UVNDG.js +1 -0
- package/dist-pro/chunk-RYAMBRNH.js +1 -0
- package/dist-pro/chunk-SUQ4PGPT.js +37 -0
- package/dist-pro/chunk-UXO6SOIA.js +3 -0
- package/dist-pro/chunk-UYCBIQVO.js +4 -0
- package/dist-pro/chunk-VGZBBSUY.js +1 -0
- package/dist-pro/chunk-VR7UEGNY.js +1 -0
- package/dist-pro/chunk-WOT6VMZA.js +1 -0
- package/dist-pro/chunk-XRJXR3CS.js +1 -0
- package/dist-pro/chunk-YFMEN6A3.js +4 -0
- package/dist-pro/constants-M7ZVYTHA.js +1 -0
- package/dist-pro/converter/pptx-to-pdf.js +76 -0
- package/dist-pro/engine/archiveAssembler.js +1 -0
- package/dist-pro/engine/previewGenerator.js +1 -0
- package/dist-pro/engine/templateMutator.js +1 -0
- package/dist-pro/index.js +1 -0
- package/dist-pro/layout/index.js +1 -0
- package/dist-pro/public/engine.js +1 -0
- package/dist-pro/public/interpreter.js +1 -0
- package/dist-pro/public/quality.js +1 -0
- package/dist-pro/public/renderer.js +1 -0
- package/dist-pro/public/validator.js +1 -0
- package/dist-pro/rasterizer-O3LV7S73.js +1 -0
- package/dist-pro/renderer/index.js +1 -0
- package/dist-pro/src-6P7ZCHQN.js +23 -0
- package/dist-pro/svg/exporter.js +1 -0
- package/dist-pro/types/core/src/compatibility/pptxCompatibility.d.ts +19 -0
- package/dist-pro/types/core/src/compatibility/pptxCompatibility.d.ts.map +1 -0
- package/dist-pro/types/core/src/compatibility/shared.d.ts +52 -0
- package/dist-pro/types/core/src/compatibility/shared.d.ts.map +1 -0
- package/dist-pro/types/core/src/contextStorage.d.ts +21 -0
- package/dist-pro/types/core/src/contextStorage.d.ts.map +1 -0
- package/dist-pro/types/core/src/converter/pptx-to-pdf.d.ts +11 -0
- package/dist-pro/types/core/src/converter/pptx-to-pdf.d.ts.map +1 -0
- package/dist-pro/types/core/src/deterministicMode.d.ts +13 -0
- package/dist-pro/types/core/src/deterministicMode.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/cycle.d.ts +3 -0
- package/dist-pro/types/core/src/diagrams/cycle.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/hierarchy.d.ts +3 -0
- package/dist-pro/types/core/src/diagrams/hierarchy.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/index.d.ts +14 -0
- package/dist-pro/types/core/src/diagrams/index.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/list.d.ts +3 -0
- package/dist-pro/types/core/src/diagrams/list.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/matrix.d.ts +3 -0
- package/dist-pro/types/core/src/diagrams/matrix.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/processFlow.d.ts +3 -0
- package/dist-pro/types/core/src/diagrams/processFlow.d.ts.map +1 -0
- package/dist-pro/types/core/src/diagrams/pyramid.d.ts +3 -0
- package/dist-pro/types/core/src/diagrams/pyramid.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine/archiveAssembler.d.ts +34 -0
- package/dist-pro/types/core/src/engine/archiveAssembler.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine/documentValidation.d.ts +3 -0
- package/dist-pro/types/core/src/engine/documentValidation.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine/previewGenerator.d.ts +9 -0
- package/dist-pro/types/core/src/engine/previewGenerator.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine/slideProcessor.d.ts +54 -0
- package/dist-pro/types/core/src/engine/slideProcessor.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine/templateMutator.d.ts +13 -0
- package/dist-pro/types/core/src/engine/templateMutator.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine/templatePreflight.d.ts +5 -0
- package/dist-pro/types/core/src/engine/templatePreflight.d.ts.map +1 -0
- package/dist-pro/types/core/src/engine.d.ts +80 -0
- package/dist-pro/types/core/src/engine.d.ts.map +1 -0
- package/dist-pro/types/core/src/engineMode.d.ts +14 -0
- package/dist-pro/types/core/src/engineMode.d.ts.map +1 -0
- package/dist-pro/types/core/src/errors.d.ts +37 -0
- package/dist-pro/types/core/src/errors.d.ts.map +1 -0
- package/dist-pro/types/core/src/feature-gate.d.ts +18 -0
- package/dist-pro/types/core/src/feature-gate.d.ts.map +1 -0
- package/dist-pro/types/core/src/fetchRetry.d.ts +6 -0
- package/dist-pro/types/core/src/fetchRetry.d.ts.map +1 -0
- package/dist-pro/types/core/src/index-lite.d.ts +2 -0
- package/dist-pro/types/core/src/index-lite.d.ts.map +1 -0
- package/dist-pro/types/core/src/index.d.ts +69 -0
- package/dist-pro/types/core/src/index.d.ts.map +1 -0
- package/dist-pro/types/core/src/interpreter/agentSchema.d.ts +145 -0
- package/dist-pro/types/core/src/interpreter/agentSchema.d.ts.map +1 -0
- package/dist-pro/types/core/src/interpreter/index.d.ts +7 -0
- package/dist-pro/types/core/src/interpreter/index.d.ts.map +1 -0
- package/dist-pro/types/core/src/interpreter/interpreter.d.ts +17 -0
- package/dist-pro/types/core/src/interpreter/interpreter.d.ts.map +1 -0
- package/dist-pro/types/core/src/interpreter/slideSplitter.d.ts +22 -0
- package/dist-pro/types/core/src/interpreter/slideSplitter.d.ts.map +1 -0
- package/dist-pro/types/core/src/interpreter/templates.d.ts +12 -0
- package/dist-pro/types/core/src/interpreter/templates.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/build.d.ts +9 -0
- package/dist-pro/types/core/src/layout/build.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/extract.d.ts +27 -0
- package/dist-pro/types/core/src/layout/extract.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/ghostGrid.d.ts +10 -0
- package/dist-pro/types/core/src/layout/ghostGrid.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/index.d.ts +9 -0
- package/dist-pro/types/core/src/layout/index.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/measureBridge.d.ts +12 -0
- package/dist-pro/types/core/src/layout/measureBridge.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/traverse.d.ts +8 -0
- package/dist-pro/types/core/src/layout/traverse.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/visualOrder.d.ts +16 -0
- package/dist-pro/types/core/src/layout/visualOrder.d.ts.map +1 -0
- package/dist-pro/types/core/src/layout/yoga.d.ts +6 -0
- package/dist-pro/types/core/src/layout/yoga.d.ts.map +1 -0
- package/dist-pro/types/core/src/license.d.ts +17 -0
- package/dist-pro/types/core/src/license.d.ts.map +1 -0
- package/dist-pro/types/core/src/logger.d.ts +23 -0
- package/dist-pro/types/core/src/logger.d.ts.map +1 -0
- package/dist-pro/types/core/src/normalizer.d.ts +12 -0
- package/dist-pro/types/core/src/normalizer.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/animationBehaviors.d.ts +22 -0
- package/dist-pro/types/core/src/ooxml/animationBehaviors.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/animationEffects.d.ts +21 -0
- package/dist-pro/types/core/src/ooxml/animationEffects.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/animationTypes.d.ts +27 -0
- package/dist-pro/types/core/src/ooxml/animationTypes.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartCapabilities.d.ts +24 -0
- package/dist-pro/types/core/src/ooxml/chart/chartCapabilities.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartColorResolver.d.ts +12 -0
- package/dist-pro/types/core/src/ooxml/chart/chartColorResolver.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartExXml.d.ts +17 -0
- package/dist-pro/types/core/src/ooxml/chart/chartExXml.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartLayout.d.ts +39 -0
- package/dist-pro/types/core/src/ooxml/chart/chartLayout.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartRels.d.ts +16 -0
- package/dist-pro/types/core/src/ooxml/chart/chartRels.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXml.d.ts +9 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXml.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlAxes.d.ts +15 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlAxes.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlClassic.d.ts +10 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlClassic.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlDecor.d.ts +8 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlDecor.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlSeries.d.ts +11 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlSeries.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlShared.d.ts +9 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlShared.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlSpecial.d.ts +5 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlSpecial.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlXY.d.ts +4 -0
- package/dist-pro/types/core/src/ooxml/chart/chartXmlXY.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/excelEmitter.d.ts +9 -0
- package/dist-pro/types/core/src/ooxml/chart/excelEmitter.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/index.d.ts +51 -0
- package/dist-pro/types/core/src/ooxml/chart/index.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/pvceRenderer.d.ts +9 -0
- package/dist-pro/types/core/src/ooxml/chart/pvceRenderer.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/rasterizer.d.ts +30 -0
- package/dist-pro/types/core/src/ooxml/chart/rasterizer.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/chart/waterfallCompat.d.ts +3 -0
- package/dist-pro/types/core/src/ooxml/chart/waterfallCompat.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/colorXml.d.ts +11 -0
- package/dist-pro/types/core/src/ooxml/colorXml.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/comments.d.ts +24 -0
- package/dist-pro/types/core/src/ooxml/comments.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/constants.d.ts +25 -0
- package/dist-pro/types/core/src/ooxml/constants.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/contentTypes.d.ts +2 -0
- package/dist-pro/types/core/src/ooxml/contentTypes.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/customProps.d.ts +6 -0
- package/dist-pro/types/core/src/ooxml/customProps.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/deterministicIds.d.ts +2 -0
- package/dist-pro/types/core/src/ooxml/deterministicIds.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/docProps.d.ts +11 -0
- package/dist-pro/types/core/src/ooxml/docProps.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/autoFitPolicy.d.ts +17 -0
- package/dist-pro/types/core/src/ooxml/drawing/autoFitPolicy.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/chart.d.ts +23 -0
- package/dist-pro/types/core/src/ooxml/drawing/chart.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/connector.d.ts +3 -0
- package/dist-pro/types/core/src/ooxml/drawing/connector.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/geometry.d.ts +3 -0
- package/dist-pro/types/core/src/ooxml/drawing/geometry.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/image.d.ts +8 -0
- package/dist-pro/types/core/src/ooxml/drawing/image.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/math.d.ts +60 -0
- package/dist-pro/types/core/src/ooxml/drawing/math.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/orchestrator.d.ts +72 -0
- package/dist-pro/types/core/src/ooxml/drawing/orchestrator.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/shape.d.ts +8 -0
- package/dist-pro/types/core/src/ooxml/drawing/shape.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/table.d.ts +8 -0
- package/dist-pro/types/core/src/ooxml/drawing/table.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/text.d.ts +14 -0
- package/dist-pro/types/core/src/ooxml/drawing/text.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/textUtils.d.ts +56 -0
- package/dist-pro/types/core/src/ooxml/drawing/textUtils.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/webVideo.d.ts +12 -0
- package/dist-pro/types/core/src/ooxml/drawing/webVideo.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/drawing/xmlEscape.d.ts +7 -0
- package/dist-pro/types/core/src/ooxml/drawing/xmlEscape.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/fontEmbed.d.ts +30 -0
- package/dist-pro/types/core/src/ooxml/fontEmbed.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/handoutMaster.d.ts +10 -0
- package/dist-pro/types/core/src/ooxml/handoutMaster.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/media.d.ts +108 -0
- package/dist-pro/types/core/src/ooxml/media.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/packageParts.d.ts +15 -0
- package/dist-pro/types/core/src/ooxml/packageParts.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/presentation.d.ts +13 -0
- package/dist-pro/types/core/src/ooxml/presentation.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/presentationOrder.d.ts +5 -0
- package/dist-pro/types/core/src/ooxml/presentationOrder.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/rIdCalc.d.ts +46 -0
- package/dist-pro/types/core/src/ooxml/rIdCalc.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/relationships.d.ts +7 -0
- package/dist-pro/types/core/src/ooxml/relationships.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/slide.d.ts +32 -0
- package/dist-pro/types/core/src/ooxml/slide.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/slideRelationships.d.ts +51 -0
- package/dist-pro/types/core/src/ooxml/slideRelationships.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/theme.d.ts +4 -0
- package/dist-pro/types/core/src/ooxml/theme.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/timing.d.ts +7 -0
- package/dist-pro/types/core/src/ooxml/timing.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/transition.d.ts +3 -0
- package/dist-pro/types/core/src/ooxml/transition.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/urlGuard.d.ts +27 -0
- package/dist-pro/types/core/src/ooxml/urlGuard.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/webVideoDetect.d.ts +10 -0
- package/dist-pro/types/core/src/ooxml/webVideoDetect.d.ts.map +1 -0
- package/dist-pro/types/core/src/ooxml/zipper.d.ts +64 -0
- package/dist-pro/types/core/src/ooxml/zipper.d.ts.map +1 -0
- package/dist-pro/types/core/src/public/engine.d.ts +12 -0
- package/dist-pro/types/core/src/public/engine.d.ts.map +1 -0
- package/dist-pro/types/core/src/public/interpreter.d.ts +3 -0
- package/dist-pro/types/core/src/public/interpreter.d.ts.map +1 -0
- package/dist-pro/types/core/src/public/quality.d.ts +12 -0
- package/dist-pro/types/core/src/public/quality.d.ts.map +1 -0
- package/dist-pro/types/core/src/public/renderer.d.ts +3 -0
- package/dist-pro/types/core/src/public/renderer.d.ts.map +1 -0
- package/dist-pro/types/core/src/public/validator.d.ts +2 -0
- package/dist-pro/types/core/src/public/validator.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/accessibility-contract.d.ts +46 -0
- package/dist-pro/types/core/src/quality/accessibility-contract.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/accessibilityRemediation.d.ts +10 -0
- package/dist-pro/types/core/src/quality/accessibilityRemediation.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/accessibilityValidator.d.ts +32 -0
- package/dist-pro/types/core/src/quality/accessibilityValidator.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/chartInventory.d.ts +20 -0
- package/dist-pro/types/core/src/quality/chartInventory.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/corpus.d.ts +17 -0
- package/dist-pro/types/core/src/quality/corpus.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/document-diff.d.ts +5 -0
- package/dist-pro/types/core/src/quality/document-diff.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/packageDiff.d.ts +10 -0
- package/dist-pro/types/core/src/quality/packageDiff.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/public-quality-types.d.ts +11 -0
- package/dist-pro/types/core/src/quality/public-quality-types.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/repair.d.ts +23 -0
- package/dist-pro/types/core/src/quality/repair.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/report.d.ts +137 -0
- package/dist-pro/types/core/src/quality/report.d.ts.map +1 -0
- package/dist-pro/types/core/src/quality/structuralValidation.d.ts +3 -0
- package/dist-pro/types/core/src/quality/structuralValidation.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderContext.d.ts +45 -0
- package/dist-pro/types/core/src/renderContext.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasAsync.d.ts +6 -0
- package/dist-pro/types/core/src/renderer/canvasAsync.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasEffects.d.ts +10 -0
- package/dist-pro/types/core/src/renderer/canvasEffects.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasPlaceholders.d.ts +8 -0
- package/dist-pro/types/core/src/renderer/canvasPlaceholders.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasRenderer.d.ts +10 -0
- package/dist-pro/types/core/src/renderer/canvasRenderer.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasShapes.d.ts +4 -0
- package/dist-pro/types/core/src/renderer/canvasShapes.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasTable.d.ts +5 -0
- package/dist-pro/types/core/src/renderer/canvasTable.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/canvasText.d.ts +9 -0
- package/dist-pro/types/core/src/renderer/canvasText.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/colorResolver.d.ts +16 -0
- package/dist-pro/types/core/src/renderer/colorResolver.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/fontBridge.d.ts +28 -0
- package/dist-pro/types/core/src/renderer/fontBridge.d.ts.map +1 -0
- package/dist-pro/types/core/src/renderer/index.d.ts +43 -0
- package/dist-pro/types/core/src/renderer/index.d.ts.map +1 -0
- package/dist-pro/types/core/src/svg/exporter.d.ts +9 -0
- package/dist-pro/types/core/src/svg/exporter.d.ts.map +1 -0
- package/dist-pro/types/core/src/svg/shapePaths.d.ts +11 -0
- package/dist-pro/types/core/src/svg/shapePaths.d.ts.map +1 -0
- package/dist-pro/types/core/src/template/layoutMapper.d.ts +17 -0
- package/dist-pro/types/core/src/template/layoutMapper.d.ts.map +1 -0
- package/dist-pro/types/core/src/template/mutator.d.ts +45 -0
- package/dist-pro/types/core/src/template/mutator.d.ts.map +1 -0
- package/dist-pro/types/core/src/template/parser.d.ts +75 -0
- package/dist-pro/types/core/src/template/parser.d.ts.map +1 -0
- package/dist-pro/types/core/src/template/placeholderInjector.d.ts +11 -0
- package/dist-pro/types/core/src/template/placeholderInjector.d.ts.map +1 -0
- package/dist-pro/types/core/src/template/themeResolver.d.ts +47 -0
- package/dist-pro/types/core/src/template/themeResolver.d.ts.map +1 -0
- package/dist-pro/types/core/src/template/xmlParser.d.ts +11 -0
- package/dist-pro/types/core/src/template/xmlParser.d.ts.map +1 -0
- package/dist-pro/types/core/src/types/ast.d.ts +1090 -0
- package/dist-pro/types/core/src/types/ast.d.ts.map +1 -0
- package/dist-pro/types/core/src/types/literals.d.ts +20 -0
- package/dist-pro/types/core/src/types/literals.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/autoFit.d.ts +32 -0
- package/dist-pro/types/core/src/typography/autoFit.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/autoFont.d.ts +3 -0
- package/dist-pro/types/core/src/typography/autoFont.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/bidi.d.ts +9 -0
- package/dist-pro/types/core/src/typography/bidi.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/fontCache.d.ts +30 -0
- package/dist-pro/types/core/src/typography/fontCache.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/fontFallback.d.ts +29 -0
- package/dist-pro/types/core/src/typography/fontFallback.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/fontPaths.d.ts +18 -0
- package/dist-pro/types/core/src/typography/fontPaths.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/harfbuzzLoader.d.ts +26 -0
- package/dist-pro/types/core/src/typography/harfbuzzLoader.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/knuthPlass.d.ts +36 -0
- package/dist-pro/types/core/src/typography/knuthPlass.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/metrics.d.ts +20 -0
- package/dist-pro/types/core/src/typography/metrics.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/richMetrics.d.ts +13 -0
- package/dist-pro/types/core/src/typography/richMetrics.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/segmentCache.d.ts +42 -0
- package/dist-pro/types/core/src/typography/segmentCache.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/shaper.d.ts +15 -0
- package/dist-pro/types/core/src/typography/shaper.d.ts.map +1 -0
- package/dist-pro/types/core/src/typography/tableAutoSize.d.ts +10 -0
- package/dist-pro/types/core/src/typography/tableAutoSize.d.ts.map +1 -0
- package/dist-pro/types/core/src/validator/schema.d.ts +3143 -0
- package/dist-pro/types/core/src/validator/schema.d.ts.map +1 -0
- package/dist-pro/types/core/src/zIndex.d.ts +20 -0
- package/dist-pro/types/core/src/zIndex.d.ts.map +1 -0
- package/dist-pro/types/document-diff/src/index.d.ts +50 -0
- package/dist-pro/types/document-diff/src/index.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/encryption/pdf-encrypt.d.ts +3 -0
- package/dist-pro/types/json-to-pdf/src/encryption/pdf-encrypt.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/encryption/permissions.d.ts +9 -0
- package/dist-pro/types/json-to-pdf/src/encryption/permissions.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/encryption/types.d.ts +24 -0
- package/dist-pro/types/json-to-pdf/src/encryption/types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/engine.d.ts +64 -0
- package/dist-pro/types/json-to-pdf/src/engine.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/font-embedding.d.ts +92 -0
- package/dist-pro/types/json-to-pdf/src/font-embedding.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/font-source.d.ts +12 -0
- package/dist-pro/types/json-to-pdf/src/font-source.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/harfbuzz.d.ts +14 -0
- package/dist-pro/types/json-to-pdf/src/harfbuzz.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/helvetica-widths.d.ts +13 -0
- package/dist-pro/types/json-to-pdf/src/helvetica-widths.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/image-embedding.d.ts +31 -0
- package/dist-pro/types/json-to-pdf/src/image-embedding.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/index.d.ts +36 -0
- package/dist-pro/types/json-to-pdf/src/index.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/pdf-form-fill.d.ts +38 -0
- package/dist-pro/types/json-to-pdf/src/pdf-form-fill.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/pdf-objects.d.ts +42 -0
- package/dist-pro/types/json-to-pdf/src/pdf-objects.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/pdf-renderer.d.ts +216 -0
- package/dist-pro/types/json-to-pdf/src/pdf-renderer.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/pdf-writer.d.ts +13 -0
- package/dist-pro/types/json-to-pdf/src/pdf-writer.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/pdfa/srgb-icc-profile.d.ts +2 -0
- package/dist-pro/types/json-to-pdf/src/pdfa/srgb-icc-profile.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase10-quality.d.ts +3 -0
- package/dist-pro/types/json-to-pdf/src/phase10-quality.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase10-repair.d.ts +4 -0
- package/dist-pro/types/json-to-pdf/src/phase10-repair.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase10-signature.d.ts +17 -0
- package/dist-pro/types/json-to-pdf/src/phase10-signature.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase10-types.d.ts +106 -0
- package/dist-pro/types/json-to-pdf/src/phase10-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase10-validate.d.ts +28 -0
- package/dist-pro/types/json-to-pdf/src/phase10-validate.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase3-linebreak.d.ts +18 -0
- package/dist-pro/types/json-to-pdf/src/phase3-linebreak.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase3-render.d.ts +113 -0
- package/dist-pro/types/json-to-pdf/src/phase3-render.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase3-types.d.ts +115 -0
- package/dist-pro/types/json-to-pdf/src/phase3-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase4-types.d.ts +106 -0
- package/dist-pro/types/json-to-pdf/src/phase4-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase5-table-layout.d.ts +37 -0
- package/dist-pro/types/json-to-pdf/src/phase5-table-layout.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase5-types.d.ts +60 -0
- package/dist-pro/types/json-to-pdf/src/phase5-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase6-analyze.d.ts +51 -0
- package/dist-pro/types/json-to-pdf/src/phase6-analyze.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase6-types.d.ts +149 -0
- package/dist-pro/types/json-to-pdf/src/phase6-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase7-analyze.d.ts +16 -0
- package/dist-pro/types/json-to-pdf/src/phase7-analyze.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase7-types.d.ts +46 -0
- package/dist-pro/types/json-to-pdf/src/phase7-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase8-analyze.d.ts +4 -0
- package/dist-pro/types/json-to-pdf/src/phase8-analyze.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase8-types.d.ts +16 -0
- package/dist-pro/types/json-to-pdf/src/phase8-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase9-stream.d.ts +5 -0
- package/dist-pro/types/json-to-pdf/src/phase9-stream.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/phase9-types.d.ts +11 -0
- package/dist-pro/types/json-to-pdf/src/phase9-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/pro-guard.d.ts +5 -0
- package/dist-pro/types/json-to-pdf/src/pro-guard.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/public-quality-types.d.ts +44 -0
- package/dist-pro/types/json-to-pdf/src/public-quality-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/shared-quality.d.ts +4 -0
- package/dist-pro/types/json-to-pdf/src/shared-quality.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/svg.d.ts +4 -0
- package/dist-pro/types/json-to-pdf/src/svg.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/vendor-types.d.ts +37 -0
- package/dist-pro/types/json-to-pdf/src/vendor-types.d.ts.map +1 -0
- package/dist-pro/types/json-to-pdf/src/winansi-encoding.d.ts +26 -0
- package/dist-pro/types/json-to-pdf/src/winansi-encoding.d.ts.map +1 -0
- package/dist-pro/types/license/src/errors.d.ts +11 -0
- package/dist-pro/types/license/src/errors.d.ts.map +1 -0
- package/dist-pro/types/license/src/index.d.ts +5 -0
- package/dist-pro/types/license/src/index.d.ts.map +1 -0
- package/dist-pro/types/license/src/license.d.ts +16 -0
- package/dist-pro/types/license/src/license.d.ts.map +1 -0
- package/dist-pro/types/license/src/quality.d.ts +44 -0
- package/dist-pro/types/license/src/quality.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/accessibility.d.ts +102 -0
- package/dist-pro/types/pvce/src/charts/accessibility.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/collision-solver.d.ts +97 -0
- package/dist-pro/types/pvce/src/charts/collision-solver.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/color-pipeline.d.ts +149 -0
- package/dist-pro/types/pvce/src/charts/color-pipeline.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/compiler.d.ts +155 -0
- package/dist-pro/types/pvce/src/charts/compiler.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/determinism.d.ts +104 -0
- package/dist-pro/types/pvce/src/charts/determinism.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/glyph-oracle.d.ts +113 -0
- package/dist-pro/types/pvce/src/charts/glyph-oracle.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/index.d.ts +46 -0
- package/dist-pro/types/pvce/src/charts/index.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/path-optimizer.d.ts +106 -0
- package/dist-pro/types/pvce/src/charts/path-optimizer.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/svg-renderer.d.ts +96 -0
- package/dist-pro/types/pvce/src/charts/svg-renderer.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/charts/types.d.ts +459 -0
- package/dist-pro/types/pvce/src/charts/types.d.ts.map +1 -0
- package/dist-pro/types/pvce/src/index.d.ts +2 -0
- package/dist-pro/types/pvce/src/index.d.ts.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PVCE Color Pipeline
|
|
3
|
+
* ===================
|
|
4
|
+
* Document 4: Print-Specific Color & Accessible Data Structures
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Section 2: Dual-mode color (RGB/CMYK/Monochrome)
|
|
8
|
+
* - Section 3: Deterministic pattern overlays
|
|
9
|
+
* - Section 4: WCAG contrast checking
|
|
10
|
+
* - Perceptual luminance calculations
|
|
11
|
+
*/
|
|
12
|
+
import { UnifiedColor, ColorPalette, PatternDefinition, ColorMode } from "./types.js";
|
|
13
|
+
/** WCAG minimum contrast ratios */
|
|
14
|
+
export declare const WCAG_CONTRAST: {
|
|
15
|
+
readonly AA_NORMAL: 4.5;
|
|
16
|
+
readonly AA_LARGE: 3;
|
|
17
|
+
readonly AAA_NORMAL: 7;
|
|
18
|
+
readonly AAA_LARGE: 4.5;
|
|
19
|
+
};
|
|
20
|
+
/** Minimum grayscale difference between series (Doc 4, Section 2: 15%) */
|
|
21
|
+
export declare const MIN_GRAY_DIFFERENCE = 15;
|
|
22
|
+
/**
|
|
23
|
+
* Default PVCE palette - designed for both screen and print.
|
|
24
|
+
* Colors are chosen for:
|
|
25
|
+
* - High contrast ratios (WCAG AA against white: 4.5:1 minimum)
|
|
26
|
+
* - Distinct grayscale values (min 15% difference)
|
|
27
|
+
* - Clean CMYK conversion
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_PALETTE_COLORS: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Colorblind-safe palette (Deuteranopia/Protanopia friendly).
|
|
32
|
+
*/
|
|
33
|
+
export declare const COLORBLIND_SAFE_COLORS: string[];
|
|
34
|
+
/**
|
|
35
|
+
* Monochrome palette with well-distributed grayscale values.
|
|
36
|
+
* Each color is chosen to have at least 15% difference from adjacent colors.
|
|
37
|
+
* Values range from very dark (10%) to light (80%).
|
|
38
|
+
*/
|
|
39
|
+
export declare const MONOCHROME_PALETTE_COLORS: string[];
|
|
40
|
+
/**
|
|
41
|
+
* ColorPipeline - Manages color transformations for print and screen.
|
|
42
|
+
*
|
|
43
|
+
* Doc 4 Compliance:
|
|
44
|
+
* - Section 2: RGB to CMYK and Grayscale conversion
|
|
45
|
+
* - Section 3: Deterministic pattern assignment
|
|
46
|
+
* - Contrast ratio calculation
|
|
47
|
+
*/
|
|
48
|
+
export declare class ColorPipeline {
|
|
49
|
+
private colorMode;
|
|
50
|
+
private enablePatterns;
|
|
51
|
+
private customPalette?;
|
|
52
|
+
constructor(options?: {
|
|
53
|
+
colorMode?: ColorMode;
|
|
54
|
+
enablePatterns?: boolean;
|
|
55
|
+
palette?: string[];
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Set the color mode (rgb, cmyk, or monochrome).
|
|
59
|
+
*/
|
|
60
|
+
setColorMode(mode: ColorMode): void;
|
|
61
|
+
/**
|
|
62
|
+
* Enable/disable pattern overlays for accessibility.
|
|
63
|
+
*/
|
|
64
|
+
setPatternMode(enabled: boolean): void;
|
|
65
|
+
/**
|
|
66
|
+
* Convert a hex color to UnifiedColor with all representations.
|
|
67
|
+
*/
|
|
68
|
+
parseColor(hex: string): UnifiedColor;
|
|
69
|
+
/**
|
|
70
|
+
* Get the appropriate color value based on current mode.
|
|
71
|
+
*/
|
|
72
|
+
getColor(color: UnifiedColor): string;
|
|
73
|
+
/**
|
|
74
|
+
* Get color for a series index from the palette.
|
|
75
|
+
*/
|
|
76
|
+
getSeriesColor(seriesIndex: number): UnifiedColor;
|
|
77
|
+
/**
|
|
78
|
+
* Get pattern definition for a series (Doc 4, Section 3).
|
|
79
|
+
* Patterns are deterministically mapped to series index.
|
|
80
|
+
*/
|
|
81
|
+
getSeriesPattern(seriesIndex: number): PatternDefinition;
|
|
82
|
+
/**
|
|
83
|
+
* Check if patterns should be used (>3 series or monochrome mode).
|
|
84
|
+
*/
|
|
85
|
+
shouldUsePatterns(seriesCount: number): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Generate a complete color palette with patterns.
|
|
88
|
+
*/
|
|
89
|
+
createPalette(seriesCount: number, name?: string): ColorPalette;
|
|
90
|
+
/**
|
|
91
|
+
* Calculate contrast ratio between two colors (WCAG formula).
|
|
92
|
+
*/
|
|
93
|
+
getContrastRatio(color1: UnifiedColor, color2: UnifiedColor): number;
|
|
94
|
+
/**
|
|
95
|
+
* Check if two colors have sufficient contrast for text.
|
|
96
|
+
*/
|
|
97
|
+
hasAdequateContrast(foreground: UnifiedColor, background: UnifiedColor, isLargeText?: boolean): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Find a text color (black or white) with best contrast.
|
|
100
|
+
*/
|
|
101
|
+
getTextColor(background: UnifiedColor): UnifiedColor;
|
|
102
|
+
/**
|
|
103
|
+
* Ensure grayscale values are distinct enough (Doc 4, Section 2).
|
|
104
|
+
* Returns adjusted colors if needed.
|
|
105
|
+
*/
|
|
106
|
+
ensureGrayscaleDistinction(colors: UnifiedColor[]): UnifiedColor[];
|
|
107
|
+
private hexToRGB;
|
|
108
|
+
private rgbToHex;
|
|
109
|
+
/**
|
|
110
|
+
* Convert RGB to CMYK using standard formulas.
|
|
111
|
+
* Doc 4, Section 2: ICC Color Profiles support.
|
|
112
|
+
*/
|
|
113
|
+
private rgbToCMYK;
|
|
114
|
+
/**
|
|
115
|
+
* Convert RGB to Grayscale using perceptual luminance.
|
|
116
|
+
* Doc 4, Section 2: Deterministic Color-to-Gray Mapping.
|
|
117
|
+
*/
|
|
118
|
+
private rgbToGrayscale;
|
|
119
|
+
private grayscaleToRGB;
|
|
120
|
+
private cmykToString;
|
|
121
|
+
private grayscaleToString;
|
|
122
|
+
/**
|
|
123
|
+
* Calculate relative luminance for WCAG contrast formula.
|
|
124
|
+
*/
|
|
125
|
+
private getRelativeLuminance;
|
|
126
|
+
/**
|
|
127
|
+
* Check contrast between all adjacent colors in palette.
|
|
128
|
+
*/
|
|
129
|
+
private checkPaletteContrast;
|
|
130
|
+
}
|
|
131
|
+
/** Global color pipeline instance */
|
|
132
|
+
export declare const colorPipeline: ColorPipeline;
|
|
133
|
+
/**
|
|
134
|
+
* Parse a hex color to unified format.
|
|
135
|
+
*/
|
|
136
|
+
export declare function parseColor(hex: string): UnifiedColor;
|
|
137
|
+
/**
|
|
138
|
+
* Get contrast ratio between two hex colors.
|
|
139
|
+
*/
|
|
140
|
+
export declare function getContrastRatio(hex1: string, hex2: string): number;
|
|
141
|
+
/**
|
|
142
|
+
* Check WCAG contrast compliance.
|
|
143
|
+
*/
|
|
144
|
+
export declare function meetsContrastRequirement(foregroundHex: string, backgroundHex: string, level?: "AA" | "AAA", isLargeText?: boolean): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Create a monochrome-safe palette with patterns.
|
|
147
|
+
*/
|
|
148
|
+
export declare function createMonochromePalette(seriesCount: number): ColorPalette;
|
|
149
|
+
//# sourceMappingURL=color-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-pipeline.d.ts","sourceRoot":"","sources":["../../../../../../pvce/src/charts/color-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIL,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAEjB,SAAS,EACV,MAAM,YAAY,CAAC;AAMpB,mCAAmC;AACnC,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAkBtC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAW1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAS1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,EAW7C,CAAC;AAMF;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAC,CAAW;gBAG/B,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACf;IAOR;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAInC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAItC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAarC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAWrC;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY;IAUjD;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB;IAkBxD;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAM/C;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,YAAY;IAqB1E;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAUpE;;OAEG;IACH,mBAAmB,CACjB,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,YAAY,EACxB,WAAW,GAAE,OAAe,GAC3B,OAAO;IAQV;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY;IAUpD;;;OAGG;IACH,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE;IAuClE,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,QAAQ;IAKhB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAuBjB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAiB7B;AAMD,qCAAqC;AACrC,eAAO,MAAM,aAAa,eAAsB,CAAC;AAMjD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAEpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAInE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,IAAI,GAAG,KAAY,EAC1B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAWT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAMzE"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PVCE (Precision-Vector Charting Engine) - Main Compiler
|
|
3
|
+
* =======================================================
|
|
4
|
+
*
|
|
5
|
+
* This is the core compiler that implements all four PVCE documents:
|
|
6
|
+
* - Doc 1: Deterministic Scene Graph & Compiler Architecture
|
|
7
|
+
* - Doc 2: Typographic Precision & Label Collision Logic
|
|
8
|
+
* - Doc 3: Sub-Pixel Vector Normalization & Scaling
|
|
9
|
+
* - Doc 4: Print-Specific Color & Accessible Data Structures
|
|
10
|
+
*
|
|
11
|
+
* The compiler follows a strict "Input to IR" pipeline:
|
|
12
|
+
* 1. Validate input
|
|
13
|
+
* 2. Calculate scales
|
|
14
|
+
* 3. Generate Scene Graph (IR)
|
|
15
|
+
* 4. Render to SVG
|
|
16
|
+
*/
|
|
17
|
+
import { ChartInput, ChartType, CompilationResult } from "./types.js";
|
|
18
|
+
/** Compiler options */
|
|
19
|
+
export interface CompilerOptions {
|
|
20
|
+
/** Output SVG width */
|
|
21
|
+
width?: number;
|
|
22
|
+
/** Output SVG height */
|
|
23
|
+
height?: number;
|
|
24
|
+
/** Font family for labels */
|
|
25
|
+
fontFamily?: string;
|
|
26
|
+
/** Base font size */
|
|
27
|
+
fontSize?: number;
|
|
28
|
+
/** Enable accessibility features */
|
|
29
|
+
accessibility?: boolean;
|
|
30
|
+
/** Enable monochrome mode */
|
|
31
|
+
monochrome?: boolean;
|
|
32
|
+
/** Enable pattern overlays */
|
|
33
|
+
patterns?: boolean;
|
|
34
|
+
/** Embed source data in XMP */
|
|
35
|
+
embedSourceData?: boolean;
|
|
36
|
+
/** Custom color palette */
|
|
37
|
+
palette?: string[];
|
|
38
|
+
/** Deterministic seed (auto-derived from data if not provided) */
|
|
39
|
+
seed?: number;
|
|
40
|
+
/** Pretty-print SVG output */
|
|
41
|
+
prettyPrint?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* PVCECompiler - The main charting engine compiler.
|
|
45
|
+
*
|
|
46
|
+
* Implements all requirements from Documents 1-4:
|
|
47
|
+
* - Pure function pipeline (Doc 1)
|
|
48
|
+
* - Glyph Oracle & collision detection (Doc 2)
|
|
49
|
+
* - SVG-first rendering with sub-pixel snapping (Doc 3)
|
|
50
|
+
* - Accessibility & color management (Doc 4)
|
|
51
|
+
*/
|
|
52
|
+
export declare class PVCECompiler {
|
|
53
|
+
private glyphOracle;
|
|
54
|
+
private collisionSolver;
|
|
55
|
+
private svgRenderer;
|
|
56
|
+
private colorPipeline;
|
|
57
|
+
private accessibilityGenerator;
|
|
58
|
+
private pathOptimizer;
|
|
59
|
+
private options;
|
|
60
|
+
private stats;
|
|
61
|
+
constructor(options?: CompilerOptions);
|
|
62
|
+
/**
|
|
63
|
+
* Compile a chart to Scene Graph and SVG.
|
|
64
|
+
* This is the main entry point - Doc 1, Section 2: The Pure-Function Pipeline.
|
|
65
|
+
*/
|
|
66
|
+
compile<T>(chartType: ChartType, input: ChartInput<T>): CompilationResult;
|
|
67
|
+
/**
|
|
68
|
+
* Compile a bar chart.
|
|
69
|
+
*/
|
|
70
|
+
private compileBarChart;
|
|
71
|
+
/**
|
|
72
|
+
* Compile a line chart with path optimization (Doc 3, Section 2).
|
|
73
|
+
*/
|
|
74
|
+
private compileLineChart;
|
|
75
|
+
/**
|
|
76
|
+
* Compile a scatter chart with label collision detection (Doc 2, Section 4).
|
|
77
|
+
*/
|
|
78
|
+
private compileScatterChart;
|
|
79
|
+
/**
|
|
80
|
+
* Compile a pie/donut chart with radial labeling (Doc 2, Section 5).
|
|
81
|
+
*/
|
|
82
|
+
private compilePieChart;
|
|
83
|
+
/**
|
|
84
|
+
* Compile a waterfall chart.
|
|
85
|
+
*/
|
|
86
|
+
private compileWaterfallChart;
|
|
87
|
+
/**
|
|
88
|
+
* Create X-axis labels with collision detection (Doc 2, Section 3).
|
|
89
|
+
*/
|
|
90
|
+
private createXAxisLabels;
|
|
91
|
+
/**
|
|
92
|
+
* Create Y-axis labels (Doc 2: Fixed Gutter Strategy).
|
|
93
|
+
*/
|
|
94
|
+
private createYAxisLabels;
|
|
95
|
+
/**
|
|
96
|
+
* Create grid lines.
|
|
97
|
+
*/
|
|
98
|
+
private createGridLines;
|
|
99
|
+
private normalizeBarData;
|
|
100
|
+
private normalizeLineData;
|
|
101
|
+
private normalizeScatterData;
|
|
102
|
+
private normalizePieData;
|
|
103
|
+
private normalizeWaterfallData;
|
|
104
|
+
/**
|
|
105
|
+
* Calculate Y-axis width based on max label width (Doc 1, Section 5).
|
|
106
|
+
*/
|
|
107
|
+
private calculateAxisWidth;
|
|
108
|
+
/**
|
|
109
|
+
* Format axis value for display.
|
|
110
|
+
*/
|
|
111
|
+
private formatAxisValue;
|
|
112
|
+
/**
|
|
113
|
+
* Sub-pixel grid snapping (Doc 3, Section 5).
|
|
114
|
+
*/
|
|
115
|
+
private snap;
|
|
116
|
+
/**
|
|
117
|
+
* Create arc path for pie charts.
|
|
118
|
+
*/
|
|
119
|
+
private createArcPath;
|
|
120
|
+
/**
|
|
121
|
+
* Generate patterns for the palette.
|
|
122
|
+
*/
|
|
123
|
+
private generatePatterns;
|
|
124
|
+
/**
|
|
125
|
+
* Derive seed from data hash.
|
|
126
|
+
*/
|
|
127
|
+
private deriveSeed;
|
|
128
|
+
/**
|
|
129
|
+
* Count nodes in scene graph.
|
|
130
|
+
*/
|
|
131
|
+
private countNodes;
|
|
132
|
+
/**
|
|
133
|
+
* Reset stats for new compilation.
|
|
134
|
+
*/
|
|
135
|
+
private resetStats;
|
|
136
|
+
/**
|
|
137
|
+
* Create minimal accessibility metadata.
|
|
138
|
+
*/
|
|
139
|
+
private createMinimalAccessibility;
|
|
140
|
+
/**
|
|
141
|
+
* Create minimal XMP metadata.
|
|
142
|
+
*/
|
|
143
|
+
private createMinimalXMP;
|
|
144
|
+
}
|
|
145
|
+
/** Default compiler instance */
|
|
146
|
+
export declare const pvceCompiler: PVCECompiler;
|
|
147
|
+
/**
|
|
148
|
+
* Compile a chart with default options.
|
|
149
|
+
*/
|
|
150
|
+
export declare function compileChart<T>(chartType: ChartType, input: ChartInput<T>, options?: CompilerOptions): CompilationResult;
|
|
151
|
+
/**
|
|
152
|
+
* Quick compile to SVG string only.
|
|
153
|
+
*/
|
|
154
|
+
export declare function chartToSVG<T>(chartType: ChartType, data: T, options?: CompilerOptions): string;
|
|
155
|
+
//# sourceMappingURL=compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../../../pvce/src/charts/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PVCE Determinism Engine
|
|
3
|
+
* =======================
|
|
4
|
+
* Document 1, Section 4: Absolute Determinism - The "Time = 0" Mandate
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Seedable PRNG (Pseudo-Random Number Generator)
|
|
8
|
+
* - Data hashing for VRT (Visual Regression Testing)
|
|
9
|
+
* - Zero-animation policy enforcement
|
|
10
|
+
* - Deterministic ID generation
|
|
11
|
+
*/
|
|
12
|
+
import type { SeededRandom, SceneGraph, SceneNode } from "./types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Mulberry32 - A fast, high-quality 32-bit PRNG.
|
|
15
|
+
* Produces deterministic sequences from a given seed.
|
|
16
|
+
*
|
|
17
|
+
* Used for:
|
|
18
|
+
* - Jitter plots (Doc 1, Section 4: Math.random() Ban)
|
|
19
|
+
* - Consistent scatter point positioning
|
|
20
|
+
* - Reproducible "random" visual elements
|
|
21
|
+
*/
|
|
22
|
+
export declare class Mulberry32 implements SeededRandom {
|
|
23
|
+
private state;
|
|
24
|
+
readonly seed: number;
|
|
25
|
+
constructor(seed: number);
|
|
26
|
+
/**
|
|
27
|
+
* Get next random number in range [0, 1).
|
|
28
|
+
*/
|
|
29
|
+
next(): number;
|
|
30
|
+
/**
|
|
31
|
+
* Get random integer in range [min, max] (inclusive).
|
|
32
|
+
*/
|
|
33
|
+
nextInt(min: number, max: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Get random item from array.
|
|
36
|
+
*/
|
|
37
|
+
choice<T>(array: T[]): T;
|
|
38
|
+
/**
|
|
39
|
+
* Shuffle array using Fisher-Yates algorithm.
|
|
40
|
+
* Returns a new array (does not mutate input).
|
|
41
|
+
*/
|
|
42
|
+
shuffle<T>(array: T[]): T[];
|
|
43
|
+
/**
|
|
44
|
+
* Reset to initial seed state.
|
|
45
|
+
*/
|
|
46
|
+
reset(): void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Generate a deterministic hash from chart data.
|
|
50
|
+
* Used for VRT verification (Doc 1, Section 3: metadata.dataHash).
|
|
51
|
+
*/
|
|
52
|
+
export declare function hashData(data: unknown): string;
|
|
53
|
+
/**
|
|
54
|
+
* Generate a short hash (first 8 chars) for display/IDs.
|
|
55
|
+
*/
|
|
56
|
+
export declare function shortHash(data: unknown): string;
|
|
57
|
+
/**
|
|
58
|
+
* Generate a deterministic ID from data index.
|
|
59
|
+
* Doc 1, Section 3: "Deterministic ID generated from data index"
|
|
60
|
+
*/
|
|
61
|
+
export declare function generateNodeId(prefix: string, dataIndex: number, parentId?: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Generate IDs for an array of items.
|
|
64
|
+
*/
|
|
65
|
+
export declare function generateNodeIds(prefix: string, count: number, parentId?: string): string[];
|
|
66
|
+
/**
|
|
67
|
+
* Strip all animation-related attributes from scene nodes.
|
|
68
|
+
* Doc 1, Section 4: "All animations are stripped at the compiler level."
|
|
69
|
+
*/
|
|
70
|
+
export declare function stripAnimations(node: SceneNode): SceneNode;
|
|
71
|
+
/**
|
|
72
|
+
* Verify a scene graph has no animations.
|
|
73
|
+
*/
|
|
74
|
+
export declare function verifyNoAnimations(graph: SceneGraph): {
|
|
75
|
+
valid: boolean;
|
|
76
|
+
violations: string[];
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Validate scene graph for determinism requirements.
|
|
80
|
+
*/
|
|
81
|
+
export declare function validateDeterminism(graph: SceneGraph): {
|
|
82
|
+
valid: boolean;
|
|
83
|
+
errors: string[];
|
|
84
|
+
warnings: string[];
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Compare two scene graphs for equality.
|
|
88
|
+
* Used for "Same Data, Same ID" test (Doc 1, Section 6).
|
|
89
|
+
*/
|
|
90
|
+
export declare function compareSceneGraphs(graph1: SceneGraph, graph2: SceneGraph): {
|
|
91
|
+
equal: boolean;
|
|
92
|
+
differences: string[];
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Derive a seed from data for reproducible "random" elements.
|
|
96
|
+
* Doc 1, Section 4: "Seed is derived from the data hash"
|
|
97
|
+
*/
|
|
98
|
+
export declare function deriveSeedFromData(data: unknown): number;
|
|
99
|
+
/**
|
|
100
|
+
* Create a seeded random generator from chart data.
|
|
101
|
+
*/
|
|
102
|
+
export declare function createSeededRandom(data: unknown): SeededRandom;
|
|
103
|
+
export { SeededRandom };
|
|
104
|
+
//# sourceMappingURL=determinism.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"determinism.d.ts","sourceRoot":"","sources":["../../../../../../pvce/src/charts/determinism.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOtE;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,KAAK,CAAS;IACtB,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,MAAM;IAKxB;;OAEG;IACH,IAAI,IAAI,MAAM;IAOd;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIzC;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC;IAIxB;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAS3B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAG9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE/C;AA6BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAIV;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CA0B1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAuBA;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAyCA;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,GACjB;IACD,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CA8DA;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAIxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAG9D;AAMD,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PVCE Glyph Oracle - Text Measurement Engine
|
|
3
|
+
* ============================================
|
|
4
|
+
* Document 2, Section 2: The Text Measurement Oracle
|
|
5
|
+
*
|
|
6
|
+
* Provides deterministic text measurement without DOM dependency.
|
|
7
|
+
* Uses pre-calculated glyph metrics with caching for performance.
|
|
8
|
+
*/
|
|
9
|
+
import { GlyphMetrics, TextBox, LBU, Point } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* GlyphOracle - Deterministic text measurement engine
|
|
12
|
+
*
|
|
13
|
+
* Features (Doc 2 compliance):
|
|
14
|
+
* - Pre-calculated glyph metrics (no DOM dependency)
|
|
15
|
+
* - Session-based caching for performance (Doc 2, Section 7)
|
|
16
|
+
* - Sub-pixel precision for accurate layout
|
|
17
|
+
* - Multi-font support with fallback
|
|
18
|
+
*/
|
|
19
|
+
export declare class GlyphOracle {
|
|
20
|
+
private cache;
|
|
21
|
+
private readonly maxCacheSize;
|
|
22
|
+
private cacheHits;
|
|
23
|
+
private cacheMisses;
|
|
24
|
+
constructor(options?: {
|
|
25
|
+
maxCacheSize?: number;
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Measure text dimensions deterministically.
|
|
29
|
+
* Doc 2, Section 2: "Exact bounding box of every string"
|
|
30
|
+
*/
|
|
31
|
+
measureText(text: string, fontSize: number, fontFamily?: string): GlyphMetrics;
|
|
32
|
+
/**
|
|
33
|
+
* Get raw font metrics for a font family.
|
|
34
|
+
* Used by E-BBox calculator for glyph envelope calculations.
|
|
35
|
+
*/
|
|
36
|
+
getFontMetrics(fontFamily: string): {
|
|
37
|
+
avgCharWidth: number;
|
|
38
|
+
capHeight: number;
|
|
39
|
+
xHeight: number;
|
|
40
|
+
ascent: number;
|
|
41
|
+
descent: number;
|
|
42
|
+
lineHeight: number;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create a TextBox with full positioning information.
|
|
46
|
+
* Doc 2, Section 2: TextBox interface
|
|
47
|
+
*/
|
|
48
|
+
createTextBox(text: string, fontSize: number, options?: {
|
|
49
|
+
fontFamily?: string;
|
|
50
|
+
anchor?: "start" | "middle" | "end";
|
|
51
|
+
rotation?: number;
|
|
52
|
+
padding?: number;
|
|
53
|
+
}): TextBox;
|
|
54
|
+
/**
|
|
55
|
+
* Calculate the maximum label width for a set of labels.
|
|
56
|
+
* Used for "Fixed Gutter Strategy" (Doc 1, Section 5).
|
|
57
|
+
*/
|
|
58
|
+
getMaxLabelWidth(labels: string[], fontSize: number, fontFamily?: string): number;
|
|
59
|
+
/**
|
|
60
|
+
* Get bounding box for rotated text.
|
|
61
|
+
* Used for 45° and 90° label rotation (Doc 2, Section 3).
|
|
62
|
+
*/
|
|
63
|
+
getRotatedBounds(textBox: TextBox): {
|
|
64
|
+
width: LBU;
|
|
65
|
+
height: LBU;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Check if two text boxes overlap.
|
|
69
|
+
* Used for collision detection (Doc 2, Section 3).
|
|
70
|
+
*/
|
|
71
|
+
boxesOverlap(box1: TextBox, pos1: Point, box2: TextBox, pos2: Point): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Format number for display (e.g., currency, percentage).
|
|
74
|
+
* Pre-measures result for consistent layout.
|
|
75
|
+
*/
|
|
76
|
+
formatAndMeasure(value: number, format: "number" | "currency" | "percent" | "compact", fontSize: number, fontFamily?: string, options?: {
|
|
77
|
+
currency?: string;
|
|
78
|
+
decimals?: number;
|
|
79
|
+
locale?: string;
|
|
80
|
+
}): {
|
|
81
|
+
text: string;
|
|
82
|
+
metrics: GlyphMetrics;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Get cache statistics.
|
|
86
|
+
*/
|
|
87
|
+
getStats(): {
|
|
88
|
+
cacheSize: number;
|
|
89
|
+
cacheHits: number;
|
|
90
|
+
cacheMisses: number;
|
|
91
|
+
hitRate: number;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Clear the glyph cache.
|
|
95
|
+
*/
|
|
96
|
+
clearCache(): void;
|
|
97
|
+
private getCacheKey;
|
|
98
|
+
private addToCache;
|
|
99
|
+
private evictOldestEntry;
|
|
100
|
+
private getAnchoredX;
|
|
101
|
+
private compactNumber;
|
|
102
|
+
}
|
|
103
|
+
/** Global GlyphOracle instance for shared caching */
|
|
104
|
+
export declare const glyphOracle: GlyphOracle;
|
|
105
|
+
/**
|
|
106
|
+
* Measure text using the global oracle.
|
|
107
|
+
*/
|
|
108
|
+
export declare function measureText(text: string, fontSize: number, fontFamily?: string): GlyphMetrics;
|
|
109
|
+
/**
|
|
110
|
+
* Get max width of labels.
|
|
111
|
+
*/
|
|
112
|
+
export declare function getMaxLabelWidth(labels: string[], fontSize: number, fontFamily?: string): number;
|
|
113
|
+
//# sourceMappingURL=glyph-oracle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyph-oracle.d.ts","sourceRoot":"","sources":["../../../../../../pvce/src/charts/glyph-oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PVCE (Precision-Vector Charting Engine) - Main Entry Point
|
|
3
|
+
* ==========================================================
|
|
4
|
+
*
|
|
5
|
+
* Production-ready charting engine implementing:
|
|
6
|
+
* - Doc 1: Deterministic Scene Graph & Compiler Architecture
|
|
7
|
+
* - Doc 2: Typographic Precision & Label Collision Logic
|
|
8
|
+
* - Doc 3: Sub-Pixel Vector Normalization & Scaling
|
|
9
|
+
* - Doc 4: Print-Specific Color & Accessible Data Structures
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { compileChart, chartToSVG } from './pvce';
|
|
14
|
+
*
|
|
15
|
+
* // Quick SVG generation
|
|
16
|
+
* const svg = chartToSVG('bar', [10, 20, 30, 40]);
|
|
17
|
+
*
|
|
18
|
+
* // Full compilation with metadata
|
|
19
|
+
* const result = compileChart('line', {
|
|
20
|
+
* data: { categories: ['Q1', 'Q2', 'Q3'], values: [100, 150, 200] },
|
|
21
|
+
* encoding: {},
|
|
22
|
+
* constraints: { width: 800, height: 600 }
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* console.log(result.svg);
|
|
26
|
+
* console.log(result.accessibility.altText);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export type { SceneGraph, SceneNode, SceneNodeType, SceneAttributes, SceneGraphMetadata, NodeMetadata, LBU, Point, Rect, TextBox, GlyphMetrics, GlyphCacheEntry, LabelPlacement, LeaderLine, RGBColor, CMYKColor, GrayscaleValue, UnifiedColor, ColorPalette, PatternDefinition, PatternType, ColorMode, AccessibilityMetadata, DataPointAccessibility, XMPMetadata, ChartType, ChartInput, ChartEncoding, ChartConstraints, ChartConfig, CompilationResult, CompilationStats, ValidationResult, ValidationError, ValidationWarning, SeededRandom, OptimizedPath, PathSimplificationOptions, } from "./types.js";
|
|
30
|
+
export { CollisionLevel } from "./types.js";
|
|
31
|
+
export { VIRTUAL_CANVAS, HAIRLINE_MIN_PT, SNAP_THRESHOLD } from "./types.js";
|
|
32
|
+
import { PVCECompiler as _PVCECompiler, pvceCompiler as _pvceCompiler, compileChart as _compileChart, chartToSVG as _chartToSVG } from "./compiler.js";
|
|
33
|
+
export { _PVCECompiler as PVCECompiler, _pvceCompiler as pvceCompiler };
|
|
34
|
+
export { _compileChart as compileChart, _chartToSVG as chartToSVG };
|
|
35
|
+
export type { CompilerOptions } from "./compiler.js";
|
|
36
|
+
export { GlyphOracle, glyphOracle, measureText, getMaxLabelWidth, } from "./glyph-oracle.js";
|
|
37
|
+
export { AxisCollisionSolver, collisionSolver, resolveAxisLabels, resolvePointLabels, } from "./collision-solver.js";
|
|
38
|
+
export type { CollisionConfig } from "./collision-solver.js";
|
|
39
|
+
export { SVGRenderer, svgRenderer, renderToSVG, snapToGrid, ensureMinStroke, } from "./svg-renderer.js";
|
|
40
|
+
export type { SVGRenderOptions } from "./svg-renderer.js";
|
|
41
|
+
export { ColorPipeline, colorPipeline, parseColor, getContrastRatio, meetsContrastRequirement, createMonochromePalette, WCAG_CONTRAST, MIN_GRAY_DIFFERENCE, DEFAULT_PALETTE_COLORS, COLORBLIND_SAFE_COLORS, } from "./color-pipeline.js";
|
|
42
|
+
export { AccessibilityGenerator, accessibilityGenerator, generateChartAltText, generateXMPMetadata, hashChartData, } from "./accessibility.js";
|
|
43
|
+
export type { AccessibilityOptions, ChartData } from "./accessibility.js";
|
|
44
|
+
export { Mulberry32, hashData, shortHash, generateNodeId, generateNodeIds, stripAnimations, verifyNoAnimations, validateDeterminism, compareSceneGraphs, deriveSeedFromData, createSeededRandom, } from "./determinism.js";
|
|
45
|
+
export { PathOptimizer, pathOptimizer, simplifyPath, simplifyPathString, optimizeLineChart, } from "./path-optimizer.js";
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../pvce/src/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,YAAY,EAEV,UAAU,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,EAGZ,GAAG,EACH,KAAK,EACL,IAAI,EAGJ,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAU,EAGV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,SAAS,EAGT,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EAGX,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EAGX,iBAAiB,EACjB,gBAAgB,EAGhB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAGjB,YAAY,EAGZ,aAAa,EACb,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,YAAY,IAAI,aAAa,EAC7B,YAAY,IAAI,aAAa,EAC7B,UAAU,IAAI,WAAW,EAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,aAAa,IAAI,YAAY,EAAE,CAAC;AAExE,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAEpE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EACL,aAAa,EACb,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|