@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.
Files changed (249) hide show
  1. package/LICENSE +62 -0
  2. package/README.md +63 -2
  3. package/dist/components/AccessibilityHintsPanel.d.ts +142 -0
  4. package/dist/components/AccessibilityHintsPanel.d.ts.map +1 -0
  5. package/dist/components/AccessibilityHintsPanel.js +158 -0
  6. package/dist/components/AccessibilityHintsPanel.js.map +1 -0
  7. package/dist/components/AnnotationOverlay.d.ts +142 -0
  8. package/dist/components/AnnotationOverlay.d.ts.map +1 -0
  9. package/dist/components/AnnotationOverlay.js +141 -0
  10. package/dist/components/AnnotationOverlay.js.map +1 -0
  11. package/dist/components/AnnotationsSidebar.d.ts +98 -0
  12. package/dist/components/AnnotationsSidebar.d.ts.map +1 -0
  13. package/dist/components/AnnotationsSidebar.js +100 -0
  14. package/dist/components/AnnotationsSidebar.js.map +1 -0
  15. package/dist/components/BarcodeGeneratorPanel.d.ts +58 -0
  16. package/dist/components/BarcodeGeneratorPanel.d.ts.map +1 -0
  17. package/dist/components/BarcodeGeneratorPanel.js +91 -0
  18. package/dist/components/BarcodeGeneratorPanel.js.map +1 -0
  19. package/dist/components/BraillePanel.d.ts +99 -0
  20. package/dist/components/BraillePanel.d.ts.map +1 -0
  21. package/dist/components/BraillePanel.js +221 -0
  22. package/dist/components/BraillePanel.js.map +1 -0
  23. package/dist/components/BrandAssetsPanel.d.ts +130 -0
  24. package/dist/components/BrandAssetsPanel.d.ts.map +1 -0
  25. package/dist/components/BrandAssetsPanel.js +125 -0
  26. package/dist/components/BrandAssetsPanel.js.map +1 -0
  27. package/dist/components/BrandConsistencyPanel.d.ts +140 -0
  28. package/dist/components/BrandConsistencyPanel.d.ts.map +1 -0
  29. package/dist/components/BrandConsistencyPanel.js +158 -0
  30. package/dist/components/BrandConsistencyPanel.js.map +1 -0
  31. package/dist/components/ComplianceFindingsPanel.d.ts +62 -0
  32. package/dist/components/ComplianceFindingsPanel.d.ts.map +1 -0
  33. package/dist/components/ComplianceFindingsPanel.js +118 -0
  34. package/dist/components/ComplianceFindingsPanel.js.map +1 -0
  35. package/dist/components/DesignSuggestionsPanel.d.ts +148 -0
  36. package/dist/components/DesignSuggestionsPanel.d.ts.map +1 -0
  37. package/dist/components/DesignSuggestionsPanel.js +154 -0
  38. package/dist/components/DesignSuggestionsPanel.js.map +1 -0
  39. package/dist/components/DielineParametersPanel.d.ts +62 -0
  40. package/dist/components/DielineParametersPanel.d.ts.map +1 -0
  41. package/dist/components/DielineParametersPanel.js +170 -0
  42. package/dist/components/DielineParametersPanel.js.map +1 -0
  43. package/dist/components/DielinePreview.d.ts +150 -0
  44. package/dist/components/DielinePreview.d.ts.map +1 -0
  45. package/dist/components/DielinePreview.js +146 -0
  46. package/dist/components/DielinePreview.js.map +1 -0
  47. package/dist/components/EditorApp.d.ts +39 -5
  48. package/dist/components/EditorApp.d.ts.map +1 -1
  49. package/dist/components/EditorApp.js +110 -5
  50. package/dist/components/EditorApp.js.map +1 -1
  51. package/dist/components/EditorCanvas.d.ts +51 -2
  52. package/dist/components/EditorCanvas.d.ts.map +1 -1
  53. package/dist/components/EditorCanvas.js +117 -48
  54. package/dist/components/EditorCanvas.js.map +1 -1
  55. package/dist/components/EmailNotifyPanel.d.ts +165 -0
  56. package/dist/components/EmailNotifyPanel.d.ts.map +1 -0
  57. package/dist/components/EmailNotifyPanel.js +211 -0
  58. package/dist/components/EmailNotifyPanel.js.map +1 -0
  59. package/dist/components/FileDropZone.d.ts +9 -1
  60. package/dist/components/FileDropZone.d.ts.map +1 -1
  61. package/dist/components/FileDropZone.js +53 -5
  62. package/dist/components/FileDropZone.js.map +1 -1
  63. package/dist/components/FoldEditorPanel.d.ts +68 -0
  64. package/dist/components/FoldEditorPanel.d.ts.map +1 -0
  65. package/dist/components/FoldEditorPanel.js +65 -0
  66. package/dist/components/FoldEditorPanel.js.map +1 -0
  67. package/dist/components/FoldPreviewOverlay.d.ts +48 -0
  68. package/dist/components/FoldPreviewOverlay.d.ts.map +1 -0
  69. package/dist/components/FoldPreviewOverlay.js +182 -0
  70. package/dist/components/FoldPreviewOverlay.js.map +1 -0
  71. package/dist/components/Gs1DigitalLinkPanel.d.ts +103 -0
  72. package/dist/components/Gs1DigitalLinkPanel.d.ts.map +1 -0
  73. package/dist/components/Gs1DigitalLinkPanel.js +199 -0
  74. package/dist/components/Gs1DigitalLinkPanel.js.map +1 -0
  75. package/dist/components/HistoryPanel.d.ts +39 -0
  76. package/dist/components/HistoryPanel.d.ts.map +1 -0
  77. package/dist/components/HistoryPanel.js +72 -0
  78. package/dist/components/HistoryPanel.js.map +1 -0
  79. package/dist/components/IccSoftProofOverlay.d.ts +67 -0
  80. package/dist/components/IccSoftProofOverlay.d.ts.map +1 -0
  81. package/dist/components/IccSoftProofOverlay.js +119 -0
  82. package/dist/components/IccSoftProofOverlay.js.map +1 -0
  83. package/dist/components/ImposePanel.d.ts +71 -0
  84. package/dist/components/ImposePanel.d.ts.map +1 -0
  85. package/dist/components/ImposePanel.js +127 -0
  86. package/dist/components/ImposePanel.js.map +1 -0
  87. package/dist/components/InksPanel.d.ts +61 -0
  88. package/dist/components/InksPanel.d.ts.map +1 -0
  89. package/dist/components/InksPanel.js +84 -0
  90. package/dist/components/InksPanel.js.map +1 -0
  91. package/dist/components/JobSetupPanel.d.ts +118 -0
  92. package/dist/components/JobSetupPanel.d.ts.map +1 -0
  93. package/dist/components/JobSetupPanel.js +169 -0
  94. package/dist/components/JobSetupPanel.js.map +1 -0
  95. package/dist/components/LayersPanel.d.ts.map +1 -1
  96. package/dist/components/LayersPanel.js +1 -0
  97. package/dist/components/LayersPanel.js.map +1 -1
  98. package/dist/components/MarkLibraryPanel.d.ts +131 -0
  99. package/dist/components/MarkLibraryPanel.d.ts.map +1 -0
  100. package/dist/components/MarkLibraryPanel.js +184 -0
  101. package/dist/components/MarkLibraryPanel.js.map +1 -0
  102. package/dist/components/MisEstimateButton.d.ts +73 -0
  103. package/dist/components/MisEstimateButton.d.ts.map +1 -0
  104. package/dist/components/MisEstimateButton.js +57 -0
  105. package/dist/components/MisEstimateButton.js.map +1 -0
  106. package/dist/components/NutritionPanel.d.ts +118 -0
  107. package/dist/components/NutritionPanel.d.ts.map +1 -0
  108. package/dist/components/NutritionPanel.js +169 -0
  109. package/dist/components/NutritionPanel.js.map +1 -0
  110. package/dist/components/PageNavigator.d.ts +26 -0
  111. package/dist/components/PageNavigator.d.ts.map +1 -0
  112. package/dist/components/PageNavigator.js +96 -0
  113. package/dist/components/PageNavigator.js.map +1 -0
  114. package/dist/components/PaletteManager.d.ts +32 -0
  115. package/dist/components/PaletteManager.d.ts.map +1 -0
  116. package/dist/components/PaletteManager.js +89 -0
  117. package/dist/components/PaletteManager.js.map +1 -0
  118. package/dist/components/PaletteToSpotPanel.d.ts +122 -0
  119. package/dist/components/PaletteToSpotPanel.d.ts.map +1 -0
  120. package/dist/components/PaletteToSpotPanel.js +160 -0
  121. package/dist/components/PaletteToSpotPanel.js.map +1 -0
  122. package/dist/components/PreflightAutoFixPanel.d.ts +110 -0
  123. package/dist/components/PreflightAutoFixPanel.d.ts.map +1 -0
  124. package/dist/components/PreflightAutoFixPanel.js +119 -0
  125. package/dist/components/PreflightAutoFixPanel.js.map +1 -0
  126. package/dist/components/PreflightDiffPanel.d.ts +127 -0
  127. package/dist/components/PreflightDiffPanel.d.ts.map +1 -0
  128. package/dist/components/PreflightDiffPanel.js +0 -0
  129. package/dist/components/PreflightDiffPanel.js.map +1 -0
  130. package/dist/components/ProcessRulesPanel.d.ts +81 -0
  131. package/dist/components/ProcessRulesPanel.d.ts.map +1 -0
  132. package/dist/components/ProcessRulesPanel.js +143 -0
  133. package/dist/components/ProcessRulesPanel.js.map +1 -0
  134. package/dist/components/SlackNotifyPanel.d.ts +139 -0
  135. package/dist/components/SlackNotifyPanel.d.ts.map +1 -0
  136. package/dist/components/SlackNotifyPanel.js +133 -0
  137. package/dist/components/SlackNotifyPanel.js.map +1 -0
  138. package/dist/components/SmartSpotMatchPanel.d.ts +143 -0
  139. package/dist/components/SmartSpotMatchPanel.d.ts.map +1 -0
  140. package/dist/components/SmartSpotMatchPanel.js +159 -0
  141. package/dist/components/SmartSpotMatchPanel.js.map +1 -0
  142. package/dist/components/SwatchesPicker.d.ts +83 -0
  143. package/dist/components/SwatchesPicker.d.ts.map +1 -0
  144. package/dist/components/SwatchesPicker.js +151 -0
  145. package/dist/components/SwatchesPicker.js.map +1 -0
  146. package/dist/components/TacOverlay.d.ts +47 -0
  147. package/dist/components/TacOverlay.d.ts.map +1 -0
  148. package/dist/components/TacOverlay.js +116 -0
  149. package/dist/components/TacOverlay.js.map +1 -0
  150. package/dist/components/TrapEditorPanel.d.ts +52 -0
  151. package/dist/components/TrapEditorPanel.d.ts.map +1 -0
  152. package/dist/components/TrapEditorPanel.js +64 -0
  153. package/dist/components/TrapEditorPanel.js.map +1 -0
  154. package/dist/components/TrapPreviewOverlay.d.ts +64 -0
  155. package/dist/components/TrapPreviewOverlay.d.ts.map +1 -0
  156. package/dist/components/TrapPreviewOverlay.js +120 -0
  157. package/dist/components/TrapPreviewOverlay.js.map +1 -0
  158. package/dist/components/VariantMatrixPanel.d.ts +61 -0
  159. package/dist/components/VariantMatrixPanel.d.ts.map +1 -0
  160. package/dist/components/VariantMatrixPanel.js +97 -0
  161. package/dist/components/VariantMatrixPanel.js.map +1 -0
  162. package/dist/components/VariantMatrixVersionPanel.d.ts +122 -0
  163. package/dist/components/VariantMatrixVersionPanel.d.ts.map +1 -0
  164. package/dist/components/VariantMatrixVersionPanel.js +162 -0
  165. package/dist/components/VariantMatrixVersionPanel.js.map +1 -0
  166. package/dist/components/WebhookNotifyPanel.d.ts +160 -0
  167. package/dist/components/WebhookNotifyPanel.d.ts.map +1 -0
  168. package/dist/components/WebhookNotifyPanel.js +100 -0
  169. package/dist/components/WebhookNotifyPanel.js.map +1 -0
  170. package/dist/components/WhiteUnderbasePanel.d.ts +107 -0
  171. package/dist/components/WhiteUnderbasePanel.d.ts.map +1 -0
  172. package/dist/components/WhiteUnderbasePanel.js +104 -0
  173. package/dist/components/WhiteUnderbasePanel.js.map +1 -0
  174. package/dist/data/dielines.json +35 -0
  175. package/dist/hooks/useEditorMode.d.ts +25 -5
  176. package/dist/hooks/useEditorMode.d.ts.map +1 -1
  177. package/dist/hooks/useEditorMode.js +18 -5
  178. package/dist/hooks/useEditorMode.js.map +1 -1
  179. package/dist/index.d.ts +49 -2
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +49 -2
  182. package/dist/index.js.map +1 -1
  183. package/dist/lens/dieline-overlay.d.ts +25 -0
  184. package/dist/lens/dieline-overlay.d.ts.map +1 -0
  185. package/dist/lens/dieline-overlay.js +50 -0
  186. package/dist/lens/dieline-overlay.js.map +1 -0
  187. package/dist/lens/index.d.ts +27 -0
  188. package/dist/lens/index.d.ts.map +1 -0
  189. package/dist/lens/index.js +28 -0
  190. package/dist/lens/index.js.map +1 -0
  191. package/dist/lens/preflight-findings.d.ts +21 -0
  192. package/dist/lens/preflight-findings.d.ts.map +1 -0
  193. package/dist/lens/preflight-findings.js +82 -0
  194. package/dist/lens/preflight-findings.js.map +1 -0
  195. package/dist/lib/barcode-scan.d.ts +154 -0
  196. package/dist/lib/barcode-scan.d.ts.map +1 -0
  197. package/dist/lib/barcode-scan.js +152 -0
  198. package/dist/lib/barcode-scan.js.map +1 -0
  199. package/dist/lib/color-math.d.ts +76 -0
  200. package/dist/lib/color-math.d.ts.map +1 -0
  201. package/dist/lib/color-math.js +96 -0
  202. package/dist/lib/color-math.js.map +1 -0
  203. package/dist/lib/dieline-template.d.ts +169 -0
  204. package/dist/lib/dieline-template.d.ts.map +1 -1
  205. package/dist/lib/dieline-template.js +229 -1
  206. package/dist/lib/dieline-template.js.map +1 -1
  207. package/dist/lib/editor-config.d.ts +384 -1
  208. package/dist/lib/editor-config.d.ts.map +1 -1
  209. package/dist/lib/editor-config.js +89 -2
  210. package/dist/lib/editor-config.js.map +1 -1
  211. package/dist/lib/fold-geometry.d.ts +144 -0
  212. package/dist/lib/fold-geometry.d.ts.map +1 -0
  213. package/dist/lib/fold-geometry.js +138 -0
  214. package/dist/lib/fold-geometry.js.map +1 -0
  215. package/dist/lib/merge-tokens.d.ts +81 -0
  216. package/dist/lib/merge-tokens.d.ts.map +1 -0
  217. package/dist/lib/merge-tokens.js +88 -0
  218. package/dist/lib/merge-tokens.js.map +1 -0
  219. package/dist/lib/palette-registry.d.ts +40 -0
  220. package/dist/lib/palette-registry.d.ts.map +1 -0
  221. package/dist/lib/palette-registry.js +49 -0
  222. package/dist/lib/palette-registry.js.map +1 -0
  223. package/dist/lib/panel-anchor.d.ts +101 -0
  224. package/dist/lib/panel-anchor.d.ts.map +1 -0
  225. package/dist/lib/panel-anchor.js +68 -0
  226. package/dist/lib/panel-anchor.js.map +1 -0
  227. package/dist/lib/preflight/checks.d.ts.map +1 -1
  228. package/dist/lib/preflight/checks.js +71 -0
  229. package/dist/lib/preflight/checks.js.map +1 -1
  230. package/dist/lib/preflight/types.d.ts.map +1 -1
  231. package/dist/lib/preflight/types.js +11 -0
  232. package/dist/lib/preflight/types.js.map +1 -1
  233. package/dist/lib/rasterize.d.ts +93 -0
  234. package/dist/lib/rasterize.d.ts.map +1 -0
  235. package/dist/lib/rasterize.js +117 -0
  236. package/dist/lib/rasterize.js.map +1 -0
  237. package/dist/lib/separations-registry.d.ts +99 -0
  238. package/dist/lib/separations-registry.d.ts.map +1 -0
  239. package/dist/lib/separations-registry.js +59 -0
  240. package/dist/lib/separations-registry.js.map +1 -0
  241. package/dist/lib/unwired.d.ts +29 -0
  242. package/dist/lib/unwired.d.ts.map +1 -0
  243. package/dist/lib/unwired.js +58 -0
  244. package/dist/lib/unwired.js.map +1 -0
  245. package/package.json +29 -11
  246. package/dist/components/SeparationsPanel.d.ts +0 -9
  247. package/dist/components/SeparationsPanel.d.ts.map +0 -1
  248. package/dist/components/SeparationsPanel.js +0 -168
  249. 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;AAqBF,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,EAAE,KAAK,2CAyIP"}
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"}
@@ -11,6 +11,7 @@ const ICONS = {
11
11
  ellipse: "◯",
12
12
  text: "T",
13
13
  image: "▣",
14
+ path: "↯",
14
15
  };
15
16
  function label(o) {
16
17
  if (o.name)
@@ -1 +1 @@
1
- {"version":3,"file":"LayersPanel.js","sourceRoot":"","sources":["../../src/components/LayersPanel.tsx"],"names":[],"mappings":"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"}
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"}