@beeintel/batch-image 1.0.1 → 1.1.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 (55) hide show
  1. package/README.md +186 -184
  2. package/dist/chunks/{AdjustToolPanel-BELqYSUR.js → AdjustToolPanel-DCNhkuE4.js} +29 -28
  3. package/dist/chunks/BackgroundToolPanel-D3TILm-m.js +43 -0
  4. package/dist/chunks/{BatchMaterials-niGKrga3.js → BatchMaterials-BPJeE3y9.js} +1 -1
  5. package/dist/chunks/BatchModeChoices-BuP83uOq.js +118 -0
  6. package/dist/chunks/{BatchOutputColorPicker-CCvmIF-b.js → BatchOutputColorPicker-CZoQzBII.js} +1 -1
  7. package/dist/chunks/BatchReferenceFields-B7SL__lu.js +308 -0
  8. package/dist/chunks/BeautifyToolPanel-DsTOjndh.js +220 -0
  9. package/dist/chunks/{BrandMarkToolPanel-FKxXth_3.js → BrandMarkToolPanel-Cob9bPYT.js} +319 -333
  10. package/dist/chunks/{ContentTrimControl-BQfigZPq.js → ContentTrimControl-CKNfHz_u.js} +1 -1
  11. package/dist/chunks/{CropToolPanel-BhSuHkYm.js → CropToolPanel-6MiynTP2.js} +60 -56
  12. package/dist/chunks/CutoutToolPanel-V-AUrbwz.js +78 -0
  13. package/dist/chunks/DisclosureToolPanel-DvouSIbA.js +72 -0
  14. package/dist/chunks/ExpandToolPanel-C98UZmBx.js +69 -0
  15. package/dist/chunks/{ImageEffectsToolPanel-BRLPIt4q.js → ImageEffectsToolPanel-hA0TlEix.js} +63 -52
  16. package/dist/chunks/{IpAuditToolPanel-DfY-mBSe.js → IpAuditToolPanel-BCQ8Kewh.js} +15 -13
  17. package/dist/chunks/{ListingToolPanel-B9Yh3LBK.js → ListingToolPanel-DH-xpvLp.js} +170 -184
  18. package/dist/chunks/{MaterialSelectionPlate-DhioUjdW.js → MaterialSelectionPlate-CQBIf6ZJ.js} +4 -4
  19. package/dist/chunks/MetadataToolPanel-z4RK3JCb.js +116 -0
  20. package/dist/chunks/{OrientToolPanel-BTrwaWBm.js → OrientToolPanel-BwtT0xKI.js} +2 -2
  21. package/dist/chunks/PluginActionFooter.vue_vue_type_script_setup_true_lang-DIRuJ1De.js +122 -0
  22. package/dist/chunks/ResizeToolPanel-BVeZbKJl.js +1171 -0
  23. package/dist/chunks/RetouchToolPanel-CqSzWVOK.js +358 -0
  24. package/dist/chunks/ShadowToolPanel-BgsCgLay.js +258 -0
  25. package/dist/chunks/SvgExportToolPanel-CdCXYYHF.js +208 -0
  26. package/dist/chunks/TranslationToolPanel-D4ETI6sf.js +102 -0
  27. package/dist/chunks/{UpscaleToolPanel-D0H-j2Tr.js → UpscaleToolPanel-D_hmQLEi.js} +44 -39
  28. package/dist/chunks/arrow-up-C1vBvuff.js +18 -0
  29. package/dist/chunks/{entry-DK9FjQZ_.js → entry-DVV89YMR.js} +7504 -7389
  30. package/dist/chunks/{loader-circle-UFoEem2a.js → loader-circle-GPucRX_4.js} +1 -1
  31. package/dist/chunks/{motionFeatures-D4miwXxc.js → motionFeatures-_pQ-ZW4p.js} +1 -1
  32. package/dist/chunks/{search-BjTSm1KS.js → search-CUAg5uDr.js} +1 -1
  33. package/dist/config.d.ts +6 -0
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.js +6 -5
  36. package/dist/resources.json +104 -94
  37. package/dist/slots.d.ts +2 -0
  38. package/dist/style.css +1 -1
  39. package/dist/tool-links.d.ts +10 -0
  40. package/dist/types/batch/public/config.d.ts +6 -0
  41. package/package.json +95 -95
  42. package/dist/chunks/BackgroundToolPanel-Dy_l8KFl.js +0 -41
  43. package/dist/chunks/BatchModeChoices-BRqn6zNI.js +0 -111
  44. package/dist/chunks/BatchReferenceFields-C4t7OSTw.js +0 -316
  45. package/dist/chunks/BeautifyToolPanel-Dc-ddaBC.js +0 -215
  46. package/dist/chunks/CutoutToolPanel-BfaZZSE_.js +0 -73
  47. package/dist/chunks/DisclosureToolPanel-B_oc5fld.js +0 -76
  48. package/dist/chunks/ExpandToolPanel-D_ZODTUZ.js +0 -67
  49. package/dist/chunks/MetadataToolPanel-KVrtb3K0.js +0 -104
  50. package/dist/chunks/PluginActionFooter.vue_vue_type_script_setup_true_lang-C2kJCYeA.js +0 -102
  51. package/dist/chunks/ResizeToolPanel-Ch_-WR74.js +0 -1178
  52. package/dist/chunks/RetouchToolPanel-BTS33Dsd.js +0 -350
  53. package/dist/chunks/ShadowToolPanel-DxJE4eyV.js +0 -254
  54. package/dist/chunks/SvgExportToolPanel-RHmuQARH.js +0 -219
  55. package/dist/chunks/TranslationToolPanel-B_qTA1hM.js +0 -125
@@ -0,0 +1,10 @@
1
+ import type { WorkspaceDisplay } from './contracts';
2
+ export interface WorkspaceToolLink {
3
+ readonly toolId: string;
4
+ readonly entryId?: string;
5
+ readonly groupId: string;
6
+ readonly title: string;
7
+ readonly href: string;
8
+ }
9
+ /** Stable links for landing pages; each target is resolved by the workspace on load. */
10
+ export declare function listWorkspaceToolLinks(workspaceUrl: string, locale?: NonNullable<WorkspaceDisplay['locale']>): readonly WorkspaceToolLink[];
@@ -27,6 +27,10 @@ export interface WorkspaceNavigationRequest {
27
27
  readonly toolId?: string;
28
28
  readonly entryId?: string;
29
29
  }
30
+ export interface WorkspaceToolLocation {
31
+ readonly toolId?: string;
32
+ readonly entryId?: string;
33
+ }
30
34
  export interface WorkspaceConfig {
31
35
  toolOptions?: {
32
36
  translation?: {
@@ -43,6 +47,8 @@ export interface WorkspaceConfig {
43
47
  /** The host opens its route/container. The core never constructs a product URL. */
44
48
  navigation?: {
45
49
  openWorkspace(request: WorkspaceNavigationRequest): void | Promise<void>;
50
+ /** Optional URL sync for hosts with tool landing pages. */
51
+ onToolChange?(location: WorkspaceToolLocation): void;
46
52
  };
47
53
  parameterDefaults?: readonly WorkspaceParameterDefault[];
48
54
  capabilities?: readonly WorkspaceCapability[];
package/package.json CHANGED
@@ -1,95 +1,95 @@
1
- {
2
- "name": "@beeintel/batch-image",
3
- "version": "1.0.1",
4
- "description": "Embeddable batch image workspace for Vue applications",
5
- "publishConfig": {
6
- "access": "public",
7
- "registry": "https://registry.npmjs.org/"
8
- },
9
- "type": "module",
10
- "files": [
11
- "dist",
12
- "README.md",
13
- "FONT-LICENSE.txt"
14
- ],
15
- "main": "./dist/index.js",
16
- "module": "./dist/index.js",
17
- "types": "./dist/index.d.ts",
18
- "exports": {
19
- ".": {
20
- "types": "./dist/index.d.ts",
21
- "import": "./dist/index.js"
22
- },
23
- "./style.css": "./dist/style.css",
24
- "./processing": {
25
- "types": "./dist/processing.d.ts",
26
- "import": "./dist/processing.js"
27
- },
28
- "./resources.json": "./dist/resources.json",
29
- "./node": {
30
- "types": "./dist/node/index.d.mts",
31
- "import": "./dist/node/index.mjs"
32
- }
33
- },
34
- "sideEffects": [
35
- "**/*.css"
36
- ],
37
- "scripts": {
38
- "build": "node scripts/build.mjs",
39
- "watch": "node scripts/watch.mjs",
40
- "typecheck": "vue-tsc --noEmit",
41
- "test": "vitest run --maxWorkers=1 --config vitest.config.ts",
42
- "prepack": "pnpm run build"
43
- },
44
- "peerDependencies": {
45
- "vue": "^3.5.0",
46
- "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
47
- },
48
- "dependencies": {
49
- "@huggingface/transformers": "4.3.0",
50
- "@imgly/background-removal": "1.7.0",
51
- "@lucide/vue": "1.47.0",
52
- "@lunapaint/tga-codec": "0.2.0",
53
- "@tanstack/vue-virtual": "3.13.39",
54
- "@xmldom/xmldom": "0.9.12",
55
- "driver.js": "1.9.0",
56
- "fflate": "0.8.3",
57
- "gifenc": "1.0.3",
58
- "imagetracerjs": "1.2.6",
59
- "motion-v": "2.5.1",
60
- "onnxruntime-common": "1.21.0",
61
- "onnxruntime-web": "1.21.0",
62
- "pinia": "4.0.3",
63
- "svgo": "4.0.0",
64
- "upng-js": "2.1.0",
65
- "vue-i18n": "11.4.13"
66
- },
67
- "devDependencies": {
68
- "@types/node": "22.18.6",
69
- "@vitejs/plugin-vue": "5.2.4",
70
- "@vue/compiler-dom": "3.5.41",
71
- "@vue/compiler-sfc": "3.5.41",
72
- "@vue/devtools-api": "8.2.1",
73
- "@vue/server-renderer": "3.5.41",
74
- "@vue/test-utils": "2.4.6",
75
- "@webgpu/types": "0.1.60",
76
- "css-tree": "3.2.1",
77
- "fake-indexeddb": "6.2.5",
78
- "jsdom": "26.1.0",
79
- "sharp": "0.34.5",
80
- "typescript": "5.8.3",
81
- "vite": "6.4.3",
82
- "vitest": "3.2.4",
83
- "vue": "3.5.41",
84
- "vue-router": "4.5.1",
85
- "vue-tsc": "3.0.8"
86
- },
87
- "bin": {
88
- "batch-images-prepare-resources": "./dist/node/cli.mjs"
89
- },
90
- "peerDependenciesMeta": {
91
- "vite": {
92
- "optional": true
93
- }
94
- }
95
- }
1
+ {
2
+ "name": "@beeintel/batch-image",
3
+ "version": "1.1.0",
4
+ "description": "Embeddable batch image workspace for Vue applications",
5
+ "publishConfig": {
6
+ "access": "public",
7
+ "registry": "https://registry.npmjs.org/"
8
+ },
9
+ "type": "module",
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "FONT-LICENSE.txt"
14
+ ],
15
+ "main": "./dist/index.js",
16
+ "module": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./style.css": "./dist/style.css",
24
+ "./processing": {
25
+ "types": "./dist/processing.d.ts",
26
+ "import": "./dist/processing.js"
27
+ },
28
+ "./resources.json": "./dist/resources.json",
29
+ "./node": {
30
+ "types": "./dist/node/index.d.mts",
31
+ "import": "./dist/node/index.mjs"
32
+ }
33
+ },
34
+ "sideEffects": [
35
+ "**/*.css"
36
+ ],
37
+ "scripts": {
38
+ "build": "node scripts/build.mjs",
39
+ "watch": "node scripts/watch.mjs",
40
+ "typecheck": "vue-tsc --noEmit",
41
+ "test": "vitest run --maxWorkers=1 --config vitest.config.ts",
42
+ "prepack": "pnpm run build"
43
+ },
44
+ "peerDependencies": {
45
+ "vue": "^3.5.0",
46
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
47
+ },
48
+ "dependencies": {
49
+ "@huggingface/transformers": "4.3.0",
50
+ "@imgly/background-removal": "1.7.0",
51
+ "@lucide/vue": "1.47.0",
52
+ "@lunapaint/tga-codec": "0.2.0",
53
+ "@tanstack/vue-virtual": "3.13.39",
54
+ "@xmldom/xmldom": "0.9.12",
55
+ "driver.js": "1.9.0",
56
+ "fflate": "0.8.3",
57
+ "gifenc": "1.0.3",
58
+ "imagetracerjs": "1.2.6",
59
+ "motion-v": "2.5.1",
60
+ "onnxruntime-common": "1.21.0",
61
+ "onnxruntime-web": "1.21.0",
62
+ "pinia": "4.0.3",
63
+ "svgo": "4.0.0",
64
+ "upng-js": "2.1.0",
65
+ "vue-i18n": "11.4.13"
66
+ },
67
+ "devDependencies": {
68
+ "@types/node": "22.18.6",
69
+ "@vitejs/plugin-vue": "5.2.4",
70
+ "@vue/compiler-dom": "3.5.41",
71
+ "@vue/compiler-sfc": "3.5.41",
72
+ "@vue/devtools-api": "8.2.1",
73
+ "@vue/server-renderer": "3.5.41",
74
+ "@vue/test-utils": "2.4.6",
75
+ "@webgpu/types": "0.1.60",
76
+ "css-tree": "3.2.1",
77
+ "fake-indexeddb": "6.2.5",
78
+ "jsdom": "26.1.0",
79
+ "sharp": "0.34.5",
80
+ "typescript": "5.8.3",
81
+ "vite": "6.4.3",
82
+ "vitest": "3.2.4",
83
+ "vue": "3.5.41",
84
+ "vue-router": "4.5.1",
85
+ "vue-tsc": "3.0.8"
86
+ },
87
+ "bin": {
88
+ "batch-images-prepare-resources": "./dist/node/cli.mjs"
89
+ },
90
+ "peerDependenciesMeta": {
91
+ "vite": {
92
+ "optional": true
93
+ }
94
+ }
95
+ }
@@ -1,41 +0,0 @@
1
- import { defineComponent as u, openBlock as m, createBlock as f, withCtx as l, createElementVNode as o, toDisplayString as c, unref as t, createVNode as d } from "vue";
2
- import { F as x, G as b, _ as p } from "./entry-DK9FjQZ_.js";
3
- import { u as P, _ as g, n as k } from "./PluginActionFooter.vue_vue_type_script_setup_true_lang-C2kJCYeA.js";
4
- import { B as v } from "./BatchOutputColorPicker-CCvmIF-b.js";
5
- const B = ["disabled"], _ = { class: "output-color-field" }, C = /* @__PURE__ */ u({
6
- __name: "BackgroundToolPanel",
7
- props: {
8
- context: {}
9
- },
10
- setup(e) {
11
- const { ui: a } = x(), s = e, i = P(() => s.context);
12
- return (h, n) => (m(), f(b, { context: e.context }, {
13
- actions: l(() => [
14
- d(g, {
15
- context: e.context,
16
- available: t(k)(e.context)
17
- }, null, 8, ["context", "available"])
18
- ]),
19
- default: l(() => [
20
- o("fieldset", {
21
- class: "tool-fields plugin-fields",
22
- disabled: e.context.readonly
23
- }, [
24
- o("p", null, c(t(a)("common.toolPanel_018bab40")), 1),
25
- o("div", _, [
26
- o("span", null, c(t(a)("common.toolPanel_243779ee")), 1),
27
- d(v, {
28
- "model-value": t(i).backgroundColor,
29
- disabled: e.context.readonly,
30
- "onUpdate:modelValue": n[0] || (n[0] = (r) => e.context.updateDraft({ backgroundColor: r }))
31
- }, null, 8, ["model-value", "disabled"])
32
- ])
33
- ], 8, B)
34
- ]),
35
- _: 1
36
- }, 8, ["context"]));
37
- }
38
- }), I = /* @__PURE__ */ p(C, [["__scopeId", "data-v-6d76bf29"]]);
39
- export {
40
- I as default
41
- };
@@ -1,111 +0,0 @@
1
- import { defineComponent as L, openBlock as a, createElementBlock as s, createElementVNode as o, toDisplayString as b, unref as r, Fragment as h, renderList as m, createCommentVNode as g } from "vue";
2
- import { F as B, D as M, _ as v } from "./entry-DK9FjQZ_.js";
3
- const C = { class: "batch-mode-choices" }, V = { class: "mode-label" }, A = ["aria-label"], D = ["aria-label", "aria-pressed", "disabled", "onClick", "onKeydown"], E = ["src"], I = {
4
- key: 1,
5
- viewBox: "0 0 120 76",
6
- "aria-hidden": "true"
7
- }, N = {
8
- fill: "#f3f5ed",
9
- stroke: "#899774",
10
- "stroke-width": "1.4"
11
- }, S = ["y"], F = ["y"], H = { key: 2 }, K = /* @__PURE__ */ L({
12
- __name: "BatchModeChoices",
13
- props: {
14
- modelValue: {},
15
- label: {},
16
- options: {},
17
- disabled: { type: Boolean }
18
- },
19
- emits: ["update:modelValue"],
20
- setup(i, { emit: k }) {
21
- const { ui: R, uiText: d, batchI18n: x } = B(), { displayState: w } = M(), u = i, p = k;
22
- function f(n) {
23
- !u.disabled && !n.disabled && p("update:modelValue", n.value);
24
- }
25
- function _(n, t) {
26
- if (!["ArrowLeft", "ArrowRight"].includes(n.key)) return;
27
- n.preventDefault(), n.stopPropagation();
28
- const e = (n.key === "ArrowRight" ? 1 : -1) * (w.value.direction === "rtl" ? -1 : 1), l = u.options.indexOf(t);
29
- for (let c = l + e; c >= 0 && c < u.options.length; c += e) {
30
- const y = u.options[c];
31
- if (!(y.disabled || u.disabled)) {
32
- f(y), n.currentTarget.parentElement?.querySelectorAll("button")[c]?.focus();
33
- break;
34
- }
35
- }
36
- }
37
- return (n, t) => (a(), s("section", C, [
38
- o("span", V, b(r(d)(i.label)), 1),
39
- o("div", {
40
- class: "mode-options",
41
- role: "group",
42
- "aria-label": r(d)(i.label)
43
- }, [
44
- (a(!0), s(h, null, m(i.options, (e) => (a(), s("button", {
45
- key: e.value,
46
- type: "button",
47
- "aria-label": r(d)(i.label) + (r(x).global.locale.value === "zh-CN" ? ":" : ": ") + r(d)(e.label),
48
- "aria-pressed": i.modelValue === e.value,
49
- disabled: i.disabled || e.disabled,
50
- onClick: (l) => f(e),
51
- onKeydown: (l) => _(l, e)
52
- }, [
53
- e.image ? (a(), s("img", {
54
- key: 0,
55
- src: e.image,
56
- alt: ""
57
- }, null, 8, E)) : e.flow ? (a(), s("svg", I, [
58
- o("g", N, [
59
- e.flow === "one-to-many" ? (a(), s(h, { key: 0 }, [
60
- t[0] || (t[0] = o("rect", {
61
- x: "8",
62
- y: "26",
63
- width: "25",
64
- height: "26",
65
- rx: "4"
66
- }, null, -1)),
67
- (a(), s(h, null, m([5, 28, 51], (l) => o("rect", {
68
- key: l,
69
- x: "87",
70
- y: l,
71
- width: "25",
72
- height: "20",
73
- rx: "3"
74
- }, null, 8, S)), 64)),
75
- t[1] || (t[1] = o("path", {
76
- d: "M39 39H76M65 31L77 39L65 47M83 15L77 39L83 61",
77
- fill: "none"
78
- }, null, -1))
79
- ], 64)) : (a(), s(h, { key: 1 }, [
80
- (a(), s(h, null, m([5, 28, 51], (l) => o("rect", {
81
- key: l,
82
- x: "8",
83
- y: l,
84
- width: "25",
85
- height: "20",
86
- rx: "3"
87
- }, null, 8, F)), 64)),
88
- t[2] || (t[2] = o("rect", {
89
- x: "87",
90
- y: "26",
91
- width: "25",
92
- height: "26",
93
- rx: "4"
94
- }, null, -1)),
95
- t[3] || (t[3] = o("path", {
96
- d: "M39 15L45 39L39 61M46 39H77M65 31L77 39L65 47",
97
- fill: "none"
98
- }, null, -1))
99
- ], 64))
100
- ])
101
- ])) : g("", !0),
102
- o("strong", null, b(r(d)(e.label)), 1),
103
- e.description ? (a(), s("small", H, b(r(d)(e.description)), 1)) : g("", !0)
104
- ], 40, D))), 128))
105
- ], 8, A)
106
- ]));
107
- }
108
- }), z = /* @__PURE__ */ v(K, [["__scopeId", "data-v-aed5bfa1"]]);
109
- export {
110
- z as B
111
- };