@printwithsynergy/artwork-pdf-editor 0.1.6 → 0.3.0
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 +62 -0
- package/README.md +63 -2
- package/dist/components/AccessibilityHintsPanel.d.ts +142 -0
- package/dist/components/AccessibilityHintsPanel.d.ts.map +1 -0
- package/dist/components/AccessibilityHintsPanel.js +158 -0
- package/dist/components/AccessibilityHintsPanel.js.map +1 -0
- package/dist/components/AnnotationOverlay.d.ts +142 -0
- package/dist/components/AnnotationOverlay.d.ts.map +1 -0
- package/dist/components/AnnotationOverlay.js +141 -0
- package/dist/components/AnnotationOverlay.js.map +1 -0
- package/dist/components/AnnotationsSidebar.d.ts +98 -0
- package/dist/components/AnnotationsSidebar.d.ts.map +1 -0
- package/dist/components/AnnotationsSidebar.js +100 -0
- package/dist/components/AnnotationsSidebar.js.map +1 -0
- package/dist/components/BarcodeGeneratorPanel.d.ts +58 -0
- package/dist/components/BarcodeGeneratorPanel.d.ts.map +1 -0
- package/dist/components/BarcodeGeneratorPanel.js +91 -0
- package/dist/components/BarcodeGeneratorPanel.js.map +1 -0
- package/dist/components/BraillePanel.d.ts +99 -0
- package/dist/components/BraillePanel.d.ts.map +1 -0
- package/dist/components/BraillePanel.js +221 -0
- package/dist/components/BraillePanel.js.map +1 -0
- package/dist/components/BrandAssetsPanel.d.ts +130 -0
- package/dist/components/BrandAssetsPanel.d.ts.map +1 -0
- package/dist/components/BrandAssetsPanel.js +125 -0
- package/dist/components/BrandAssetsPanel.js.map +1 -0
- package/dist/components/BrandConsistencyPanel.d.ts +140 -0
- package/dist/components/BrandConsistencyPanel.d.ts.map +1 -0
- package/dist/components/BrandConsistencyPanel.js +158 -0
- package/dist/components/BrandConsistencyPanel.js.map +1 -0
- package/dist/components/ComplianceFindingsPanel.d.ts +62 -0
- package/dist/components/ComplianceFindingsPanel.d.ts.map +1 -0
- package/dist/components/ComplianceFindingsPanel.js +118 -0
- package/dist/components/ComplianceFindingsPanel.js.map +1 -0
- package/dist/components/DesignSuggestionsPanel.d.ts +148 -0
- package/dist/components/DesignSuggestionsPanel.d.ts.map +1 -0
- package/dist/components/DesignSuggestionsPanel.js +154 -0
- package/dist/components/DesignSuggestionsPanel.js.map +1 -0
- package/dist/components/DielineParametersPanel.d.ts +62 -0
- package/dist/components/DielineParametersPanel.d.ts.map +1 -0
- package/dist/components/DielineParametersPanel.js +170 -0
- package/dist/components/DielineParametersPanel.js.map +1 -0
- package/dist/components/DielinePreview.d.ts +150 -0
- package/dist/components/DielinePreview.d.ts.map +1 -0
- package/dist/components/DielinePreview.js +146 -0
- package/dist/components/DielinePreview.js.map +1 -0
- package/dist/components/EditorApp.d.ts +39 -5
- package/dist/components/EditorApp.d.ts.map +1 -1
- package/dist/components/EditorApp.js +110 -5
- package/dist/components/EditorApp.js.map +1 -1
- package/dist/components/EditorCanvas.d.ts +51 -2
- package/dist/components/EditorCanvas.d.ts.map +1 -1
- package/dist/components/EditorCanvas.js +117 -48
- package/dist/components/EditorCanvas.js.map +1 -1
- package/dist/components/EmailNotifyPanel.d.ts +165 -0
- package/dist/components/EmailNotifyPanel.d.ts.map +1 -0
- package/dist/components/EmailNotifyPanel.js +211 -0
- package/dist/components/EmailNotifyPanel.js.map +1 -0
- package/dist/components/FileDropZone.d.ts +9 -1
- package/dist/components/FileDropZone.d.ts.map +1 -1
- package/dist/components/FileDropZone.js +53 -5
- package/dist/components/FileDropZone.js.map +1 -1
- package/dist/components/FoldEditorPanel.d.ts +68 -0
- package/dist/components/FoldEditorPanel.d.ts.map +1 -0
- package/dist/components/FoldEditorPanel.js +65 -0
- package/dist/components/FoldEditorPanel.js.map +1 -0
- package/dist/components/FoldPreviewOverlay.d.ts +48 -0
- package/dist/components/FoldPreviewOverlay.d.ts.map +1 -0
- package/dist/components/FoldPreviewOverlay.js +182 -0
- package/dist/components/FoldPreviewOverlay.js.map +1 -0
- package/dist/components/Gs1DigitalLinkPanel.d.ts +103 -0
- package/dist/components/Gs1DigitalLinkPanel.d.ts.map +1 -0
- package/dist/components/Gs1DigitalLinkPanel.js +199 -0
- package/dist/components/Gs1DigitalLinkPanel.js.map +1 -0
- package/dist/components/HistoryPanel.d.ts +39 -0
- package/dist/components/HistoryPanel.d.ts.map +1 -0
- package/dist/components/HistoryPanel.js +72 -0
- package/dist/components/HistoryPanel.js.map +1 -0
- package/dist/components/IccSoftProofOverlay.d.ts +67 -0
- package/dist/components/IccSoftProofOverlay.d.ts.map +1 -0
- package/dist/components/IccSoftProofOverlay.js +119 -0
- package/dist/components/IccSoftProofOverlay.js.map +1 -0
- package/dist/components/ImposePanel.d.ts +71 -0
- package/dist/components/ImposePanel.d.ts.map +1 -0
- package/dist/components/ImposePanel.js +127 -0
- package/dist/components/ImposePanel.js.map +1 -0
- package/dist/components/InksPanel.d.ts +61 -0
- package/dist/components/InksPanel.d.ts.map +1 -0
- package/dist/components/InksPanel.js +84 -0
- package/dist/components/InksPanel.js.map +1 -0
- package/dist/components/JobSetupPanel.d.ts +118 -0
- package/dist/components/JobSetupPanel.d.ts.map +1 -0
- package/dist/components/JobSetupPanel.js +169 -0
- package/dist/components/JobSetupPanel.js.map +1 -0
- package/dist/components/LayersPanel.d.ts.map +1 -1
- package/dist/components/LayersPanel.js +1 -0
- package/dist/components/LayersPanel.js.map +1 -1
- package/dist/components/MarkLibraryPanel.d.ts +131 -0
- package/dist/components/MarkLibraryPanel.d.ts.map +1 -0
- package/dist/components/MarkLibraryPanel.js +184 -0
- package/dist/components/MarkLibraryPanel.js.map +1 -0
- package/dist/components/MisEstimateButton.d.ts +73 -0
- package/dist/components/MisEstimateButton.d.ts.map +1 -0
- package/dist/components/MisEstimateButton.js +57 -0
- package/dist/components/MisEstimateButton.js.map +1 -0
- package/dist/components/NutritionPanel.d.ts +118 -0
- package/dist/components/NutritionPanel.d.ts.map +1 -0
- package/dist/components/NutritionPanel.js +169 -0
- package/dist/components/NutritionPanel.js.map +1 -0
- package/dist/components/PageNavigator.d.ts +26 -0
- package/dist/components/PageNavigator.d.ts.map +1 -0
- package/dist/components/PageNavigator.js +96 -0
- package/dist/components/PageNavigator.js.map +1 -0
- package/dist/components/PaletteManager.d.ts +32 -0
- package/dist/components/PaletteManager.d.ts.map +1 -0
- package/dist/components/PaletteManager.js +89 -0
- package/dist/components/PaletteManager.js.map +1 -0
- package/dist/components/PaletteToSpotPanel.d.ts +122 -0
- package/dist/components/PaletteToSpotPanel.d.ts.map +1 -0
- package/dist/components/PaletteToSpotPanel.js +160 -0
- package/dist/components/PaletteToSpotPanel.js.map +1 -0
- package/dist/components/PreflightAutoFixPanel.d.ts +110 -0
- package/dist/components/PreflightAutoFixPanel.d.ts.map +1 -0
- package/dist/components/PreflightAutoFixPanel.js +119 -0
- package/dist/components/PreflightAutoFixPanel.js.map +1 -0
- package/dist/components/PreflightDiffPanel.d.ts +127 -0
- package/dist/components/PreflightDiffPanel.d.ts.map +1 -0
- package/dist/components/PreflightDiffPanel.js +0 -0
- package/dist/components/PreflightDiffPanel.js.map +1 -0
- package/dist/components/ProcessRulesPanel.d.ts +81 -0
- package/dist/components/ProcessRulesPanel.d.ts.map +1 -0
- package/dist/components/ProcessRulesPanel.js +143 -0
- package/dist/components/ProcessRulesPanel.js.map +1 -0
- package/dist/components/SlackNotifyPanel.d.ts +139 -0
- package/dist/components/SlackNotifyPanel.d.ts.map +1 -0
- package/dist/components/SlackNotifyPanel.js +133 -0
- package/dist/components/SlackNotifyPanel.js.map +1 -0
- package/dist/components/SmartSpotMatchPanel.d.ts +143 -0
- package/dist/components/SmartSpotMatchPanel.d.ts.map +1 -0
- package/dist/components/SmartSpotMatchPanel.js +159 -0
- package/dist/components/SmartSpotMatchPanel.js.map +1 -0
- package/dist/components/SwatchesPicker.d.ts +83 -0
- package/dist/components/SwatchesPicker.d.ts.map +1 -0
- package/dist/components/SwatchesPicker.js +151 -0
- package/dist/components/SwatchesPicker.js.map +1 -0
- package/dist/components/TacOverlay.d.ts +47 -0
- package/dist/components/TacOverlay.d.ts.map +1 -0
- package/dist/components/TacOverlay.js +116 -0
- package/dist/components/TacOverlay.js.map +1 -0
- package/dist/components/TrapEditorPanel.d.ts +52 -0
- package/dist/components/TrapEditorPanel.d.ts.map +1 -0
- package/dist/components/TrapEditorPanel.js +64 -0
- package/dist/components/TrapEditorPanel.js.map +1 -0
- package/dist/components/TrapPreviewOverlay.d.ts +64 -0
- package/dist/components/TrapPreviewOverlay.d.ts.map +1 -0
- package/dist/components/TrapPreviewOverlay.js +120 -0
- package/dist/components/TrapPreviewOverlay.js.map +1 -0
- package/dist/components/VariantMatrixPanel.d.ts +61 -0
- package/dist/components/VariantMatrixPanel.d.ts.map +1 -0
- package/dist/components/VariantMatrixPanel.js +97 -0
- package/dist/components/VariantMatrixPanel.js.map +1 -0
- package/dist/components/VariantMatrixVersionPanel.d.ts +122 -0
- package/dist/components/VariantMatrixVersionPanel.d.ts.map +1 -0
- package/dist/components/VariantMatrixVersionPanel.js +162 -0
- package/dist/components/VariantMatrixVersionPanel.js.map +1 -0
- package/dist/components/WebhookNotifyPanel.d.ts +160 -0
- package/dist/components/WebhookNotifyPanel.d.ts.map +1 -0
- package/dist/components/WebhookNotifyPanel.js +100 -0
- package/dist/components/WebhookNotifyPanel.js.map +1 -0
- package/dist/components/WhiteUnderbasePanel.d.ts +107 -0
- package/dist/components/WhiteUnderbasePanel.d.ts.map +1 -0
- package/dist/components/WhiteUnderbasePanel.js +104 -0
- package/dist/components/WhiteUnderbasePanel.js.map +1 -0
- package/dist/data/dielines.json +35 -0
- package/dist/hooks/useEditorMode.d.ts +25 -5
- package/dist/hooks/useEditorMode.d.ts.map +1 -1
- package/dist/hooks/useEditorMode.js +18 -5
- package/dist/hooks/useEditorMode.js.map +1 -1
- package/dist/index.d.ts +49 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -2
- package/dist/index.js.map +1 -1
- package/dist/lens/dieline-overlay.d.ts +25 -0
- package/dist/lens/dieline-overlay.d.ts.map +1 -0
- package/dist/lens/dieline-overlay.js +50 -0
- package/dist/lens/dieline-overlay.js.map +1 -0
- package/dist/lens/index.d.ts +27 -0
- package/dist/lens/index.d.ts.map +1 -0
- package/dist/lens/index.js +28 -0
- package/dist/lens/index.js.map +1 -0
- package/dist/lens/preflight-findings.d.ts +21 -0
- package/dist/lens/preflight-findings.d.ts.map +1 -0
- package/dist/lens/preflight-findings.js +82 -0
- package/dist/lens/preflight-findings.js.map +1 -0
- package/dist/lib/barcode-scan.d.ts +154 -0
- package/dist/lib/barcode-scan.d.ts.map +1 -0
- package/dist/lib/barcode-scan.js +152 -0
- package/dist/lib/barcode-scan.js.map +1 -0
- package/dist/lib/color-math.d.ts +76 -0
- package/dist/lib/color-math.d.ts.map +1 -0
- package/dist/lib/color-math.js +96 -0
- package/dist/lib/color-math.js.map +1 -0
- package/dist/lib/dieline-template.d.ts +169 -0
- package/dist/lib/dieline-template.d.ts.map +1 -1
- package/dist/lib/dieline-template.js +229 -1
- package/dist/lib/dieline-template.js.map +1 -1
- package/dist/lib/editor-config.d.ts +384 -1
- package/dist/lib/editor-config.d.ts.map +1 -1
- package/dist/lib/editor-config.js +89 -2
- package/dist/lib/editor-config.js.map +1 -1
- package/dist/lib/fold-geometry.d.ts +144 -0
- package/dist/lib/fold-geometry.d.ts.map +1 -0
- package/dist/lib/fold-geometry.js +138 -0
- package/dist/lib/fold-geometry.js.map +1 -0
- package/dist/lib/merge-tokens.d.ts +81 -0
- package/dist/lib/merge-tokens.d.ts.map +1 -0
- package/dist/lib/merge-tokens.js +88 -0
- package/dist/lib/merge-tokens.js.map +1 -0
- package/dist/lib/palette-registry.d.ts +40 -0
- package/dist/lib/palette-registry.d.ts.map +1 -0
- package/dist/lib/palette-registry.js +49 -0
- package/dist/lib/palette-registry.js.map +1 -0
- package/dist/lib/panel-anchor.d.ts +101 -0
- package/dist/lib/panel-anchor.d.ts.map +1 -0
- package/dist/lib/panel-anchor.js +68 -0
- package/dist/lib/panel-anchor.js.map +1 -0
- package/dist/lib/preflight/checks.d.ts.map +1 -1
- package/dist/lib/preflight/checks.js +71 -0
- package/dist/lib/preflight/checks.js.map +1 -1
- package/dist/lib/preflight/types.d.ts.map +1 -1
- package/dist/lib/preflight/types.js +11 -0
- package/dist/lib/preflight/types.js.map +1 -1
- package/dist/lib/rasterize.d.ts +93 -0
- package/dist/lib/rasterize.d.ts.map +1 -0
- package/dist/lib/rasterize.js +117 -0
- package/dist/lib/rasterize.js.map +1 -0
- package/dist/lib/separations-registry.d.ts +99 -0
- package/dist/lib/separations-registry.d.ts.map +1 -0
- package/dist/lib/separations-registry.js +59 -0
- package/dist/lib/separations-registry.js.map +1 -0
- package/dist/lib/unwired.d.ts +29 -0
- package/dist/lib/unwired.d.ts.map +1 -0
- package/dist/lib/unwired.js +58 -0
- package/dist/lib/unwired.js.map +1 -0
- package/package.json +29 -11
- package/dist/components/SeparationsPanel.d.ts +0 -9
- package/dist/components/SeparationsPanel.d.ts.map +0 -1
- package/dist/components/SeparationsPanel.js +0 -168
- package/dist/components/SeparationsPanel.js.map +0 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export function InksPanel({ pdfB64, loader, onSelect }) {
|
|
9
|
+
const [inks, setInks] = useState(null);
|
|
10
|
+
const [error, setError] = useState(null);
|
|
11
|
+
const [loading, setLoading] = useState(false);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!pdfB64) {
|
|
14
|
+
setInks(null);
|
|
15
|
+
setError(null);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let disposed = false;
|
|
19
|
+
setLoading(true);
|
|
20
|
+
setError(null);
|
|
21
|
+
loader(pdfB64)
|
|
22
|
+
.then((next) => {
|
|
23
|
+
if (disposed)
|
|
24
|
+
return;
|
|
25
|
+
setInks(next);
|
|
26
|
+
setLoading(false);
|
|
27
|
+
})
|
|
28
|
+
.catch((err) => {
|
|
29
|
+
if (disposed)
|
|
30
|
+
return;
|
|
31
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
32
|
+
setLoading(false);
|
|
33
|
+
});
|
|
34
|
+
return () => {
|
|
35
|
+
disposed = true;
|
|
36
|
+
};
|
|
37
|
+
}, [pdfB64, loader]);
|
|
38
|
+
if (!pdfB64) {
|
|
39
|
+
return (_jsx("div", { "data-testid": "inks-panel", style: { padding: "0.5rem", opacity: 0.6 }, children: "Render the document to see its ink list." }));
|
|
40
|
+
}
|
|
41
|
+
if (loading) {
|
|
42
|
+
return (_jsx("div", { "data-testid": "inks-panel", style: { padding: "0.5rem", opacity: 0.6 }, children: "Loading inks\u2026" }));
|
|
43
|
+
}
|
|
44
|
+
if (error) {
|
|
45
|
+
return (_jsxs("div", { "data-testid": "inks-panel", role: "alert", style: { padding: "0.5rem", color: "#a00" }, children: ["Couldn't load inks: ", error] }));
|
|
46
|
+
}
|
|
47
|
+
if (!inks || inks.length === 0) {
|
|
48
|
+
return (_jsx("div", { "data-testid": "inks-panel", style: { padding: "0.5rem", opacity: 0.6 }, children: "No named separations in this document." }));
|
|
49
|
+
}
|
|
50
|
+
return (_jsxs("div", { "data-testid": "inks-panel", style: { padding: "0.5rem" }, children: [_jsxs("h3", { style: { margin: "0 0 0.5rem 0" }, children: ["Inks (", inks.length, ")"] }), _jsx("ul", { style: { listStyle: "none", padding: 0, margin: 0 }, children: inks.map((ink) => (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => onSelect?.(ink), "aria-label": `Select ${ink.name}`, style: {
|
|
51
|
+
display: "flex",
|
|
52
|
+
alignItems: "center",
|
|
53
|
+
gap: "0.5rem",
|
|
54
|
+
width: "100%",
|
|
55
|
+
padding: "0.25rem 0.5rem",
|
|
56
|
+
background: "transparent",
|
|
57
|
+
border: "none",
|
|
58
|
+
cursor: onSelect ? "pointer" : "default",
|
|
59
|
+
textAlign: "left",
|
|
60
|
+
}, children: [_jsx("span", { "aria-hidden": "true", style: swatchStyleFor(ink) }), _jsx("span", { style: { flex: 1 }, children: ink.name }), _jsxs("small", { style: { opacity: 0.6 }, children: [ink.color_space, " \u00B7 p", ink.occurs_on_pages.map((p) => p + 1).join(",")] })] }) }, ink.name))) })] }));
|
|
61
|
+
}
|
|
62
|
+
/** Best-effort swatch chip. We don't have a Lab→sRGB pipeline in the
|
|
63
|
+
* editor (codex-pdf owns colour conversion); show a process-color
|
|
64
|
+
* hint for the common CMYK names and a neutral chip otherwise. */
|
|
65
|
+
function swatchStyleFor(ink) {
|
|
66
|
+
const lower = ink.name.toLowerCase();
|
|
67
|
+
const base = {
|
|
68
|
+
width: "0.85rem",
|
|
69
|
+
height: "0.85rem",
|
|
70
|
+
borderRadius: "0.15rem",
|
|
71
|
+
border: "1px solid #888",
|
|
72
|
+
flexShrink: 0,
|
|
73
|
+
};
|
|
74
|
+
if (lower.includes("cyan"))
|
|
75
|
+
return { ...base, background: "#00aeef" };
|
|
76
|
+
if (lower.includes("magenta"))
|
|
77
|
+
return { ...base, background: "#ec008c" };
|
|
78
|
+
if (lower.includes("yellow"))
|
|
79
|
+
return { ...base, background: "#fff200" };
|
|
80
|
+
if (lower.includes("black") || lower.includes("key"))
|
|
81
|
+
return { ...base, background: "#000" };
|
|
82
|
+
return { ...base, background: "#ddd" };
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=InksPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InksPanel.js","sourceRoot":"","sources":["../../src/components/InksPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Print process category. Mirrors `PrintContext.process` in
|
|
3
|
+
* `@artworkpdf/document-model` — kept as a structural literal so this
|
|
4
|
+
* package doesn't pull a document-model dependency.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export type PrintProcess = "offset" | "flexo" | "gravure" | "digital" | "screen";
|
|
9
|
+
/**
|
|
10
|
+
* Substrate finish category. Mirrors the document-model shape.
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export type SubstrateFinish = "matte" | "gloss" | "satin" | "uncoated";
|
|
14
|
+
/**
|
|
15
|
+
* Substrate compositional class — collapses the long tail of named
|
|
16
|
+
* stocks into the four rule-relevant buckets that lint-pdf's
|
|
17
|
+
* `substrate_is` matcher (Wave 2 PR-C) operates on. Distinct from
|
|
18
|
+
* {@link SubstrateFinish}: a `coated` stock can be `gloss` or `matte`;
|
|
19
|
+
* `newsprint` is always `uncoated`. Mirrors `SubstrateClass` in
|
|
20
|
+
* `@artworkpdf/document-model/preflight`; duplicated here so this
|
|
21
|
+
* package stays consumable without the document-model peer dep.
|
|
22
|
+
*
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export type SubstrateClass = "coated" | "uncoated" | "newsprint" | "synthetic";
|
|
26
|
+
/**
|
|
27
|
+
* Editable shape consumed by {@link JobSetupPanel}. Mirrors
|
|
28
|
+
* `PrintContext` in `@artworkpdf/document-model`; kept structural so
|
|
29
|
+
* this UI package stays consumable by hosts that don't import the
|
|
30
|
+
* document-model.
|
|
31
|
+
*
|
|
32
|
+
* Hosts thread this in as `value` + `onChange`; the panel is a
|
|
33
|
+
* controlled component — it owns no state of its own.
|
|
34
|
+
*
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export type JobSetupValue = {
|
|
38
|
+
process: PrintProcess;
|
|
39
|
+
substrate: {
|
|
40
|
+
id: string;
|
|
41
|
+
color: string;
|
|
42
|
+
opacity: number;
|
|
43
|
+
finish: SubstrateFinish;
|
|
44
|
+
/**
|
|
45
|
+
* Rule-relevant substrate class (P1). When set, the value flows
|
|
46
|
+
* through {@link preflightContextOf} to lint-pdf's
|
|
47
|
+
* `/v1/preflight/process` `substrate` query parameter, narrowing
|
|
48
|
+
* the rule set to substrate-aware checks. Optional because legacy
|
|
49
|
+
* jobs predate the field — hosts that omit it get the
|
|
50
|
+
* substrate-agnostic ruleset.
|
|
51
|
+
*/
|
|
52
|
+
class?: SubstrateClass;
|
|
53
|
+
};
|
|
54
|
+
/** ISO 3166-1 alpha-2 codes, e.g. `["US", "CA", "GB"]`. */
|
|
55
|
+
targetMarkets?: string[];
|
|
56
|
+
/** ICC profile name — free text in this wave; library-backed selector lands later. */
|
|
57
|
+
colorProfile?: string;
|
|
58
|
+
/** Total Area Coverage limit, percent (e.g. `300` for offset, `260` for newsprint). */
|
|
59
|
+
tacLimit?: number;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Narrow projection of {@link JobSetupValue} that drives
|
|
63
|
+
* process-aware preflight. Returned by {@link preflightContextOf};
|
|
64
|
+
* the two fields map 1:1 to lint-pdf's `?process=&substrate=` query
|
|
65
|
+
* parameters on `/v1/preflight/process` (Wave 2 PR-E).
|
|
66
|
+
*
|
|
67
|
+
* `substrate` is *optional* (not `SubstrateClass | undefined`) so a
|
|
68
|
+
* `JSON.stringify` / `URLSearchParams.append` round-trip on the
|
|
69
|
+
* client side omits the parameter entirely instead of serializing
|
|
70
|
+
* `substrate=undefined` — lint-pdf reads the absence as "run the
|
|
71
|
+
* substrate-agnostic ruleset".
|
|
72
|
+
*
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
export type PreflightContext = {
|
|
76
|
+
process: PrintProcess;
|
|
77
|
+
substrate?: SubstrateClass;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Project a {@link JobSetupValue} onto the two fields lint-pdf's
|
|
81
|
+
* process-aware preflight endpoint cares about. Pure function — call
|
|
82
|
+
* site decides whether to debounce, memoize, or feed straight into
|
|
83
|
+
* the preflight client.
|
|
84
|
+
*
|
|
85
|
+
* Omits the `substrate` key entirely when the host hasn't set
|
|
86
|
+
* `value.substrate.class`, so callers can spread the return value
|
|
87
|
+
* straight into a query-param builder without filtering `undefined`s.
|
|
88
|
+
*
|
|
89
|
+
* @public
|
|
90
|
+
*/
|
|
91
|
+
export declare function preflightContextOf(value: JobSetupValue): PreflightContext;
|
|
92
|
+
/**
|
|
93
|
+
* Props for the print-context modal.
|
|
94
|
+
*
|
|
95
|
+
* `enable_print_context: false` hides the panel entirely; mount with
|
|
96
|
+
* `<JobSetupPanel />` only when {@link showFeature} returns true for
|
|
97
|
+
* `print_context`.
|
|
98
|
+
*
|
|
99
|
+
* @public
|
|
100
|
+
*/
|
|
101
|
+
export type JobSetupPanelProps = {
|
|
102
|
+
value: JobSetupValue;
|
|
103
|
+
onChange: (next: JobSetupValue) => void;
|
|
104
|
+
onClose: () => void;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Modal panel for editing a document's print context (F2).
|
|
108
|
+
*
|
|
109
|
+
* Renders a five-field form: process, substrate (id/color/opacity/
|
|
110
|
+
* finish composite), color profile (ICC), TAC limit, and target
|
|
111
|
+
* markets. Writes propagate through `onChange` immediately —
|
|
112
|
+
* controlled component, no local state — so hosts can persist into
|
|
113
|
+
* `document.printContext` without an explicit save step.
|
|
114
|
+
*
|
|
115
|
+
* @public
|
|
116
|
+
*/
|
|
117
|
+
export declare function JobSetupPanel({ value, onChange, onClose }: JobSetupPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
118
|
+
//# sourceMappingURL=JobSetupPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JobSetupPanel.d.ts","sourceRoot":"","sources":["../../src/components/JobSetupPanel.tsx"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,eAAe,CAAC;QACxB;;;;;;;WAOG;QACH,KAAK,CAAC,EAAE,cAAc,CAAC;KACxB,CAAC;IACF,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,CAIzE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAgCF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CAiR7E"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useEffect } from "react";
|
|
5
|
+
/**
|
|
6
|
+
* Project a {@link JobSetupValue} onto the two fields lint-pdf's
|
|
7
|
+
* process-aware preflight endpoint cares about. Pure function — call
|
|
8
|
+
* site decides whether to debounce, memoize, or feed straight into
|
|
9
|
+
* the preflight client.
|
|
10
|
+
*
|
|
11
|
+
* Omits the `substrate` key entirely when the host hasn't set
|
|
12
|
+
* `value.substrate.class`, so callers can spread the return value
|
|
13
|
+
* straight into a query-param builder without filtering `undefined`s.
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export function preflightContextOf(value) {
|
|
18
|
+
const ctx = { process: value.process };
|
|
19
|
+
if (value.substrate.class !== undefined)
|
|
20
|
+
ctx.substrate = value.substrate.class;
|
|
21
|
+
return ctx;
|
|
22
|
+
}
|
|
23
|
+
const PANEL_BG = "#1a0f08";
|
|
24
|
+
const BORDER = "#3d1a00";
|
|
25
|
+
const BRAND = "#fc5102";
|
|
26
|
+
const TEXT = "#f4ece6";
|
|
27
|
+
const MUTED = "#888";
|
|
28
|
+
const labelStyle = {
|
|
29
|
+
display: "block",
|
|
30
|
+
fontSize: "0.7rem",
|
|
31
|
+
letterSpacing: "0.08em",
|
|
32
|
+
textTransform: "uppercase",
|
|
33
|
+
color: MUTED,
|
|
34
|
+
marginBottom: "0.25rem",
|
|
35
|
+
};
|
|
36
|
+
const inputStyle = {
|
|
37
|
+
width: "100%",
|
|
38
|
+
padding: "0.45rem 0.6rem",
|
|
39
|
+
background: "#0f0a05",
|
|
40
|
+
border: `1px solid ${BORDER}`,
|
|
41
|
+
borderRadius: 4,
|
|
42
|
+
color: TEXT,
|
|
43
|
+
fontSize: "0.85rem",
|
|
44
|
+
fontFamily: "inherit",
|
|
45
|
+
};
|
|
46
|
+
const PROCESSES = ["offset", "flexo", "gravure", "digital", "screen"];
|
|
47
|
+
const FINISHES = ["matte", "gloss", "satin", "uncoated"];
|
|
48
|
+
const SUBSTRATE_CLASSES = ["coated", "uncoated", "newsprint", "synthetic"];
|
|
49
|
+
/**
|
|
50
|
+
* Modal panel for editing a document's print context (F2).
|
|
51
|
+
*
|
|
52
|
+
* Renders a five-field form: process, substrate (id/color/opacity/
|
|
53
|
+
* finish composite), color profile (ICC), TAC limit, and target
|
|
54
|
+
* markets. Writes propagate through `onChange` immediately —
|
|
55
|
+
* controlled component, no local state — so hosts can persist into
|
|
56
|
+
* `document.printContext` without an explicit save step.
|
|
57
|
+
*
|
|
58
|
+
* @public
|
|
59
|
+
*/
|
|
60
|
+
export function JobSetupPanel({ value, onChange, onClose }) {
|
|
61
|
+
function patch(p) {
|
|
62
|
+
onChange({ ...value, ...p });
|
|
63
|
+
}
|
|
64
|
+
function patchSubstrate(p) {
|
|
65
|
+
onChange({ ...value, substrate: { ...value.substrate, ...p } });
|
|
66
|
+
}
|
|
67
|
+
// Close on Escape — matches PaletteManager pattern + standard
|
|
68
|
+
// modal a11y. Focus trapping is deferred (substantial; tracked as
|
|
69
|
+
// a follow-up).
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
function handleEscape(e) {
|
|
72
|
+
if (e.key === "Escape")
|
|
73
|
+
onClose();
|
|
74
|
+
}
|
|
75
|
+
document.addEventListener("keydown", handleEscape);
|
|
76
|
+
return () => document.removeEventListener("keydown", handleEscape);
|
|
77
|
+
}, [onClose]);
|
|
78
|
+
return (_jsx("div", { role: "dialog", "aria-label": "Job setup \u2014 print context", "aria-modal": "true",
|
|
79
|
+
// Click on the backdrop (this element) closes; clicks inside
|
|
80
|
+
// the inner panel stopPropagate via the panel's own handler.
|
|
81
|
+
onClick: (e) => {
|
|
82
|
+
if (e.target === e.currentTarget)
|
|
83
|
+
onClose();
|
|
84
|
+
}, style: {
|
|
85
|
+
position: "fixed",
|
|
86
|
+
inset: 0,
|
|
87
|
+
background: "rgba(0,0,0,0.55)",
|
|
88
|
+
display: "flex",
|
|
89
|
+
alignItems: "center",
|
|
90
|
+
justifyContent: "center",
|
|
91
|
+
zIndex: 100,
|
|
92
|
+
}, children: _jsxs("div", { style: {
|
|
93
|
+
background: PANEL_BG,
|
|
94
|
+
border: `1px solid ${BORDER}`,
|
|
95
|
+
borderRadius: 8,
|
|
96
|
+
padding: "1.25rem",
|
|
97
|
+
width: "min(440px, 92vw)",
|
|
98
|
+
maxHeight: "85vh",
|
|
99
|
+
overflow: "auto",
|
|
100
|
+
color: TEXT,
|
|
101
|
+
fontFamily: "inherit",
|
|
102
|
+
}, children: [_jsxs("div", { style: { display: "flex", alignItems: "center", marginBottom: "1rem" }, children: [_jsx("h2", { style: { margin: 0, fontSize: "1rem", fontWeight: 700, color: BRAND }, children: "Job setup" }), _jsx("span", { style: { flex: 1 } }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close job setup", style: {
|
|
103
|
+
background: "transparent",
|
|
104
|
+
border: `1px solid ${BORDER}`,
|
|
105
|
+
color: TEXT,
|
|
106
|
+
borderRadius: 4,
|
|
107
|
+
padding: "0.25rem 0.55rem",
|
|
108
|
+
cursor: "pointer",
|
|
109
|
+
fontSize: "0.85rem",
|
|
110
|
+
fontFamily: "inherit",
|
|
111
|
+
}, children: "\u00D7" })] }), _jsxs("div", { style: { display: "grid", gap: "0.85rem" }, children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "js-process", style: labelStyle, children: "Print process" }), _jsx("select", { id: "js-process", value: value.process, onChange: (e) => patch({ process: e.target.value }), style: inputStyle, children: PROCESSES.map((p) => (_jsx("option", { value: p, children: p }, p))) })] }), _jsxs("fieldset", { style: { border: `1px solid ${BORDER}`, borderRadius: 6, padding: "0.6rem 0.75rem" }, children: [_jsx("legend", { style: { padding: "0 0.35rem", fontSize: "0.72rem", color: MUTED }, children: "Substrate" }), _jsxs("div", { style: { display: "grid", gap: "0.55rem" }, children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "js-substrate-id", style: labelStyle, children: "Id" }), _jsx("input", { id: "js-substrate-id", value: value.substrate.id, onChange: (e) => patchSubstrate({ id: e.target.value }), style: inputStyle })] }), _jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 1fr", gap: "0.55rem" }, children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "js-substrate-color", style: labelStyle, children: "Color" }), _jsx("input", { id: "js-substrate-color", value: value.substrate.color, onChange: (e) => patchSubstrate({ color: e.target.value }), style: inputStyle })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "js-substrate-opacity", style: labelStyle, children: "Opacity (0\u20131)" }), _jsx("input", { id: "js-substrate-opacity", type: "number", step: "0.01", min: "0", max: "1", value: value.substrate.opacity, onChange: (e) => {
|
|
112
|
+
// Empty → no-op (don't conflate "user clearing
|
|
113
|
+
// the field" with "fully transparent"). Out-of-
|
|
114
|
+
// range typed input gets clamped to [0,1]
|
|
115
|
+
// because HTML min/max only constrain the
|
|
116
|
+
// spinner, not raw keyboard input.
|
|
117
|
+
const v = e.target.value;
|
|
118
|
+
if (v === "")
|
|
119
|
+
return;
|
|
120
|
+
const n = Number(v);
|
|
121
|
+
if (Number.isNaN(n))
|
|
122
|
+
return;
|
|
123
|
+
const clamped = Math.min(1, Math.max(0, n));
|
|
124
|
+
patchSubstrate({ opacity: clamped });
|
|
125
|
+
}, style: inputStyle })] })] }), _jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 1fr", gap: "0.55rem" }, children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "js-substrate-finish", style: labelStyle, children: "Finish" }), _jsx("select", { id: "js-substrate-finish", value: value.substrate.finish, onChange: (e) => patchSubstrate({ finish: e.target.value }), style: inputStyle, children: FINISHES.map((f) => (_jsx("option", { value: f, children: f }, f))) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "js-substrate-class", style: labelStyle, children: "Class (preflight)" }), _jsxs("select", { id: "js-substrate-class",
|
|
126
|
+
// Empty option == "no class set" — passed to lint-pdf as
|
|
127
|
+
// a missing query param, which falls back to the
|
|
128
|
+
// substrate-agnostic ruleset rather than failing.
|
|
129
|
+
value: value.substrate.class ?? "", onChange: (e) => {
|
|
130
|
+
const v = e.target.value;
|
|
131
|
+
if (v === "") {
|
|
132
|
+
const { class: _, ...rest } = value.substrate;
|
|
133
|
+
onChange({ ...value, substrate: rest });
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
patchSubstrate({ class: v });
|
|
137
|
+
}
|
|
138
|
+
}, style: inputStyle, children: [_jsx("option", { value: "", children: "\u2014 none \u2014" }), SUBSTRATE_CLASSES.map((c) => (_jsx("option", { value: c, children: c }, c)))] })] })] })] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "js-icc", style: labelStyle, children: "Color profile (ICC)" }), _jsx("input", { id: "js-icc", value: value.colorProfile ?? "", onChange: (e) => {
|
|
139
|
+
const v = e.target.value;
|
|
140
|
+
if (v) {
|
|
141
|
+
patch({ colorProfile: v });
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const { colorProfile: _, ...rest } = value;
|
|
145
|
+
onChange(rest);
|
|
146
|
+
}
|
|
147
|
+
}, placeholder: "ISOcoated_v2_eci", style: inputStyle })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "js-tac", style: labelStyle, children: "TAC limit (%)" }), _jsx("input", { id: "js-tac", type: "number", min: "0", max: "400", value: value.tacLimit ?? "", onChange: (e) => {
|
|
148
|
+
if (e.target.value === "") {
|
|
149
|
+
const { tacLimit: _, ...rest } = value;
|
|
150
|
+
onChange(rest);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
patch({ tacLimit: Number(e.target.value) });
|
|
154
|
+
}
|
|
155
|
+
}, placeholder: "300", style: inputStyle })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "js-markets", style: labelStyle, children: "Target markets (comma-separated ISO 3166-1 alpha-2)" }), _jsx("input", { id: "js-markets", value: (value.targetMarkets ?? []).join(", "), onChange: (e) => {
|
|
156
|
+
const parts = e.target.value
|
|
157
|
+
.split(",")
|
|
158
|
+
.map((s) => s.trim().toUpperCase())
|
|
159
|
+
.filter(Boolean);
|
|
160
|
+
if (parts.length > 0) {
|
|
161
|
+
patch({ targetMarkets: parts });
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const { targetMarkets: _, ...rest } = value;
|
|
165
|
+
onChange(rest);
|
|
166
|
+
}
|
|
167
|
+
}, placeholder: "US, CA, GB", style: inputStyle })] })] })] }) }));
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=JobSetupPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JobSetupPanel.js","sourceRoot":"","sources":["../../src/components/JobSetupPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayersPanel.d.ts","sourceRoot":"","sources":["../../src/components/LayersPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"LayersPanel.d.ts","sourceRoot":"","sources":["../../src/components/LayersPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAsBF,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,KAAK,2CAyIP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayersPanel.js","sourceRoot":"","sources":["../../src/components/LayersPanel.tsx"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,YAAY,CAAC;;AAYb,MAAM,EAAE,GAAG,SAAS,CAAC;AACrB,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,KAAK,GAAG,MAAM,CAAC;AAErB,MAAM,KAAK,GAAsC;IAC/C,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"LayersPanel.js","sourceRoot":"","sources":["../../src/components/LayersPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave 4 M1 — Mark library picker panel.
|
|
3
|
+
*
|
|
4
|
+
* Surfaces a host-provided library of printer marks (crop, registration,
|
|
5
|
+
* color bar, slug, other) as a browsable, filterable picker. When the
|
|
6
|
+
* user clicks an entry, the panel emits the full {@link MarkLibraryEntry}
|
|
7
|
+
* via `onSelect` — the host then wires that into the active page's
|
|
8
|
+
* marks template (typically the `marksTemplate` field on the v3 job
|
|
9
|
+
* submit request, ready for compile-pdf's marks producer).
|
|
10
|
+
*
|
|
11
|
+
* Loader adapter pattern: hosts wire an async function that resolves
|
|
12
|
+
* to the catalogue (typically compile-pdf's `/v1/marks/catalogue`
|
|
13
|
+
* endpoint when it ships, or a local JSON bundle in the meantime).
|
|
14
|
+
* The editor stays free of any compile-pdf runtime dep — same approach
|
|
15
|
+
* as `SwatchesPicker`, `ComplianceFindingsPanel`, `InksPanel`, etc.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
import type { ReactElement } from "react";
|
|
20
|
+
/**
|
|
21
|
+
* Discriminator on which the picker groups its entries and which
|
|
22
|
+
* the compile-pdf marks producer pivots on. `"other"` is the escape
|
|
23
|
+
* hatch for tenant-specific marks that don't map to the four
|
|
24
|
+
* canonical print-shop buckets.
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
27
|
+
*/
|
|
28
|
+
export type MarkCategory = "crop" | "registration" | "color-bar" | "slug" | "other";
|
|
29
|
+
/**
|
|
30
|
+
* One entry in the mark library. Structurally compatible with
|
|
31
|
+
* compile-pdf's mark catalogue shape (subset: only the fields the
|
|
32
|
+
* picker actually needs). Duplicated here so the editor stays
|
|
33
|
+
* consumable without the compile-pdf SDK.
|
|
34
|
+
*
|
|
35
|
+
* `thumbnailDataUrl` is optional — when present, the picker renders
|
|
36
|
+
* a small preview image; when absent it falls back to a text-only
|
|
37
|
+
* row. `description` is the optional hover tooltip / a11y body.
|
|
38
|
+
*
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
export type MarkLibraryEntry = {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
category: MarkCategory;
|
|
45
|
+
thumbnailDataUrl?: string;
|
|
46
|
+
description?: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Host-supplied adapter. Returns the full mark catalogue. Rejects on
|
|
50
|
+
* transport errors; the panel surfaces the message inline. Hosts
|
|
51
|
+
* should memoize the function with `useCallback` so an unrelated
|
|
52
|
+
* parent re-render doesn't trigger a spurious refetch.
|
|
53
|
+
*
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
export type MarkLibraryLoaderFn = () => Promise<readonly MarkLibraryEntry[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Filter spec accepted by {@link filterMarks}.
|
|
59
|
+
*
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
export type MarkLibraryFilter = {
|
|
63
|
+
category?: MarkCategory;
|
|
64
|
+
/** Case-insensitive substring filter on `name`. Whitespace-only
|
|
65
|
+
* values are treated as absent so a stray space doesn't blank
|
|
66
|
+
* the catalogue. */
|
|
67
|
+
query?: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Result row from {@link groupMarksByCategory}.
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
export type MarkLibraryGroup = {
|
|
75
|
+
category: MarkCategory;
|
|
76
|
+
marks: readonly MarkLibraryEntry[];
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
export type MarkLibraryPanelProps = {
|
|
82
|
+
/** Adapter that resolves to the catalogue. The panel calls it on
|
|
83
|
+
* mount and whenever the function reference changes. */
|
|
84
|
+
loader: MarkLibraryLoaderFn;
|
|
85
|
+
/** Pre-filter to a single category (host-controlled, distinct from
|
|
86
|
+
* the in-panel UI search). Absent → all categories. */
|
|
87
|
+
filterCategory?: MarkCategory;
|
|
88
|
+
/** Id of the currently active mark — host-controlled selection
|
|
89
|
+
* affordance. The matching row renders in the "active" style. */
|
|
90
|
+
activeMarkId?: string;
|
|
91
|
+
/** Click callback. Hosts wire the selected entry into the active
|
|
92
|
+
* page's marks template / job submit request. */
|
|
93
|
+
onSelect?: (entry: MarkLibraryEntry) => void;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Canonical order mark categories render in. Crop is the
|
|
97
|
+
* highest-priority press concern; "other" is the escape hatch at
|
|
98
|
+
* the end.
|
|
99
|
+
*
|
|
100
|
+
* @public
|
|
101
|
+
*/
|
|
102
|
+
export declare const MARK_CATEGORY_ORDER: readonly MarkCategory[];
|
|
103
|
+
/**
|
|
104
|
+
* Group marks by category in {@link MARK_CATEGORY_ORDER}. Returns a
|
|
105
|
+
* stable five-bucket shape so renderers iterate without absent-key
|
|
106
|
+
* checks. Unknown runtime categories fall into "other" rather than
|
|
107
|
+
* being dropped (defensive against forward-compat catalogue
|
|
108
|
+
* extensions).
|
|
109
|
+
*
|
|
110
|
+
* Pure function.
|
|
111
|
+
*
|
|
112
|
+
* @public
|
|
113
|
+
*/
|
|
114
|
+
export declare function groupMarksByCategory(marks: readonly MarkLibraryEntry[]): readonly MarkLibraryGroup[];
|
|
115
|
+
/**
|
|
116
|
+
* Filter marks by category / name substring. Returns a new array;
|
|
117
|
+
* preserves input order. Pure function.
|
|
118
|
+
*
|
|
119
|
+
* @public
|
|
120
|
+
*/
|
|
121
|
+
export declare function filterMarks(marks: readonly MarkLibraryEntry[], filter: MarkLibraryFilter): readonly MarkLibraryEntry[];
|
|
122
|
+
/**
|
|
123
|
+
* Stateful picker that loads the host-supplied catalogue, exposes a
|
|
124
|
+
* live name search, and emits the selected entry. Handles loading /
|
|
125
|
+
* error / empty states inline (matches `ComplianceFindingsPanel`'s
|
|
126
|
+
* adapter pattern).
|
|
127
|
+
*
|
|
128
|
+
* @public
|
|
129
|
+
*/
|
|
130
|
+
export declare function MarkLibraryPanel({ loader, filterCategory, activeMarkId, onSelect, }: MarkLibraryPanelProps): ReactElement;
|
|
131
|
+
//# sourceMappingURL=MarkLibraryPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkLibraryPanel.d.ts","sourceRoot":"","sources":["../../src/components/MarkLibraryPanel.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;yBAEqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;6DACyD;IACzD,MAAM,EAAE,mBAAmB,CAAC;IAC5B;4DACwD;IACxD,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B;sEACkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;sDACkD;IAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAMtD,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACjC,SAAS,gBAAgB,EAAE,CAY7B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,MAAM,EAAE,iBAAiB,GACxB,SAAS,gBAAgB,EAAE,CAO7B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,EAAE,qBAAqB,GAAG,YAAY,CA8GtC"}
|