@beeintel/batch-image 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +188 -184
  2. package/dist/chunks/{AdjustToolPanel-BELqYSUR.js → AdjustToolPanel-BEqQFYEO.js} +30 -29
  3. package/dist/chunks/BackgroundToolPanel-Dw3uT7S-.js +43 -0
  4. package/dist/chunks/{BatchMaterials-niGKrga3.js → BatchMaterials-HiK3VQc3.js} +1 -1
  5. package/dist/chunks/BatchModeChoices-BAslK92y.js +118 -0
  6. package/dist/chunks/{BatchOutputColorPicker-CCvmIF-b.js → BatchOutputColorPicker-CgtnQBA3.js} +1 -1
  7. package/dist/chunks/BatchReferenceFields-DbjXtKC4.js +308 -0
  8. package/dist/chunks/BeautifyToolPanel-imF6jnTG.js +220 -0
  9. package/dist/chunks/{BrandMarkToolPanel-FKxXth_3.js → BrandMarkToolPanel-C-gouhaT.js} +319 -333
  10. package/dist/chunks/{ContentTrimControl-BQfigZPq.js → ContentTrimControl-LgNIZbXa.js} +2 -2
  11. package/dist/chunks/{CropToolPanel-BhSuHkYm.js → CropToolPanel-DsPgFUWI.js} +60 -56
  12. package/dist/chunks/CutoutToolPanel-BhJngz89.js +78 -0
  13. package/dist/chunks/DisclosureToolPanel-DOaWm-im.js +72 -0
  14. package/dist/chunks/ExpandToolPanel-CuufFNiC.js +69 -0
  15. package/dist/chunks/{ImageEffectsToolPanel-BRLPIt4q.js → ImageEffectsToolPanel-BsfBZdYp.js} +63 -52
  16. package/dist/chunks/{IpAuditToolPanel-DfY-mBSe.js → IpAuditToolPanel-DOB7TEoI.js} +15 -13
  17. package/dist/chunks/{ListingToolPanel-B9Yh3LBK.js → ListingToolPanel-Dapetiw-.js} +170 -184
  18. package/dist/chunks/{MaterialSelectionPlate-DhioUjdW.js → MaterialSelectionPlate-BjNttUh8.js} +4 -4
  19. package/dist/chunks/MetadataToolPanel-G56L-VTi.js +116 -0
  20. package/dist/chunks/{OrientToolPanel-BTrwaWBm.js → OrientToolPanel-BJHfMixX.js} +3 -3
  21. package/dist/chunks/PluginActionFooter.vue_vue_type_script_setup_true_lang-DI8W37RA.js +122 -0
  22. package/dist/chunks/ResizeToolPanel-HDDArzWx.js +1171 -0
  23. package/dist/chunks/RetouchToolPanel-Drei3Dj7.js +358 -0
  24. package/dist/chunks/ShadowToolPanel-BM5MRfYB.js +258 -0
  25. package/dist/chunks/SvgExportToolPanel-D3KNi5AS.js +208 -0
  26. package/dist/chunks/TranslationToolPanel-DbNO3IKA.js +104 -0
  27. package/dist/chunks/{UpscaleToolPanel-D0H-j2Tr.js → UpscaleToolPanel-5kT1uUl0.js} +44 -39
  28. package/dist/chunks/arrow-up-DT1zSe8a.js +18 -0
  29. package/dist/chunks/{engine-D-T-1RSx.js → engine-BZ0nkcqj.js} +1 -1
  30. package/dist/chunks/{entry-DK9FjQZ_.js → entry-FNjvjYxd.js} +7512 -7395
  31. package/dist/chunks/{hosted-resources-COzZ7nZY.js → hosted-resources-C3iu_zn4.js} +2 -2
  32. package/dist/chunks/{loader-circle-UFoEem2a.js → loader-circle-pki8gM3_.js} +1 -1
  33. package/dist/chunks/{motionFeatures-D4miwXxc.js → motionFeatures-Cp11tdeb.js} +1 -1
  34. package/dist/chunks/{search-BjTSm1KS.js → search-BNwQCPna.js} +1 -1
  35. package/dist/chunks/{standard-cutout-vPpP6xBc.js → standard-cutout-iIOMfl6q.js} +1 -1
  36. package/dist/chunks/{static-logo-2F9ORZWc.js → static-logo-7HK4ubmZ.js} +1 -1
  37. package/dist/config.d.ts +6 -0
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.js +6 -5
  40. package/dist/processing.js +3 -3
  41. package/dist/resources.json +113 -103
  42. package/dist/slots.d.ts +2 -0
  43. package/dist/style.css +1 -1
  44. package/dist/tool-links.d.ts +10 -0
  45. package/dist/types/batch/public/config.d.ts +6 -0
  46. package/package.json +95 -95
  47. package/dist/chunks/BackgroundToolPanel-Dy_l8KFl.js +0 -41
  48. package/dist/chunks/BatchModeChoices-BRqn6zNI.js +0 -111
  49. package/dist/chunks/BatchReferenceFields-C4t7OSTw.js +0 -316
  50. package/dist/chunks/BeautifyToolPanel-Dc-ddaBC.js +0 -215
  51. package/dist/chunks/CutoutToolPanel-BfaZZSE_.js +0 -73
  52. package/dist/chunks/DisclosureToolPanel-B_oc5fld.js +0 -76
  53. package/dist/chunks/ExpandToolPanel-D_ZODTUZ.js +0 -67
  54. package/dist/chunks/MetadataToolPanel-KVrtb3K0.js +0 -104
  55. package/dist/chunks/PluginActionFooter.vue_vue_type_script_setup_true_lang-C2kJCYeA.js +0 -102
  56. package/dist/chunks/ResizeToolPanel-Ch_-WR74.js +0 -1178
  57. package/dist/chunks/RetouchToolPanel-BTS33Dsd.js +0 -350
  58. package/dist/chunks/ShadowToolPanel-DxJE4eyV.js +0 -254
  59. package/dist/chunks/SvgExportToolPanel-RHmuQARH.js +0 -219
  60. 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.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,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
- };