geoiq-frontend-ui-kit 2.0.2 → 2.0.4
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/dist/components/organisms/image-editor/components/line-session-bar.d.ts +20 -0
- package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -0
- package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +9 -0
- package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -0
- package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/image-editor.types.d.ts +73 -0
- package/dist/components/organisms/image-editor/image-editor.types.d.ts.map +1 -1
- package/dist/components/organisms/image-editor/use-image-editor.d.ts.map +1 -1
- package/dist/components/ui/request-credits-view/component/request-credit-dialog.d.ts.map +1 -1
- package/dist/index.es100.js +147 -120
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js +16 -11
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js +7 -41
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js +21 -10
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js +7 -74
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js +177 -30
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js +45 -16
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js +42 -20
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js +22 -12
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js +122 -98
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es11.js +1 -1
- package/dist/index.es110.js +33 -62
- package/dist/index.es110.js.map +1 -1
- package/dist/index.es111.js +60 -52
- package/dist/index.es111.js.map +1 -1
- package/dist/index.es112.js +10 -41
- package/dist/index.es112.js.map +1 -1
- package/dist/index.es113.js +21 -11
- package/dist/index.es113.js.map +1 -1
- package/dist/index.es114.js +42 -92
- package/dist/index.es114.js.map +1 -1
- package/dist/index.es115.js +37 -16
- package/dist/index.es115.js.map +1 -1
- package/dist/index.es116.js +12 -99
- package/dist/index.es116.js.map +1 -1
- package/dist/index.es117.js +92 -13
- package/dist/index.es117.js.map +1 -1
- package/dist/index.es118.js +13 -101
- package/dist/index.es118.js.map +1 -1
- package/dist/index.es119.js +71 -20
- package/dist/index.es119.js.map +1 -1
- package/dist/index.es12.js +1 -1
- package/dist/index.es120.js +34 -25
- package/dist/index.es120.js.map +1 -1
- package/dist/index.es121.js +20 -22
- package/dist/index.es121.js.map +1 -1
- package/dist/index.es122.js +16 -45
- package/dist/index.es122.js.map +1 -1
- package/dist/index.es123.js +11 -34
- package/dist/index.es123.js.map +1 -1
- package/dist/index.es124.js +96 -61
- package/dist/index.es124.js.map +1 -1
- package/dist/index.es125.js +57 -174
- package/dist/index.es125.js.map +1 -1
- package/dist/index.es126.js +50 -17
- package/dist/index.es126.js.map +1 -1
- package/dist/index.es127.js +2 -2
- package/dist/index.es128.js +2 -2
- package/dist/index.es129.js +1 -1
- package/dist/index.es130.js +1 -1
- package/dist/index.es131.js +2 -2
- package/dist/index.es132.js +35 -38
- package/dist/index.es132.js.map +1 -1
- package/dist/index.es133.js +41 -7
- package/dist/index.es133.js.map +1 -1
- package/dist/index.es134.js +88 -7
- package/dist/index.es134.js.map +1 -1
- package/dist/index.es135.js +14 -34
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es136.js +269 -35
- package/dist/index.es136.js.map +1 -1
- package/dist/index.es137.js +7 -2
- package/dist/index.es137.js.map +1 -1
- package/dist/index.es138.js +23 -25
- package/dist/index.es138.js.map +1 -1
- package/dist/index.es139.js +169 -15
- package/dist/index.es139.js.map +1 -1
- package/dist/index.es140.js +82 -7
- package/dist/index.es140.js.map +1 -1
- package/dist/index.es141.js +73 -21
- package/dist/index.es141.js.map +1 -1
- package/dist/index.es142.js +3 -168
- package/dist/index.es142.js.map +1 -1
- package/dist/index.es143.js +56 -82
- package/dist/index.es143.js.map +1 -1
- package/dist/index.es144.js +119 -4
- package/dist/index.es144.js.map +1 -1
- package/dist/index.es145.js +405 -56
- package/dist/index.es145.js.map +1 -1
- package/dist/index.es146.js +25 -110
- package/dist/index.es146.js.map +1 -1
- package/dist/index.es147.js +60 -314
- package/dist/index.es147.js.map +1 -1
- package/dist/index.es148.js +29 -24
- package/dist/index.es148.js.map +1 -1
- package/dist/index.es149.js +21 -64
- package/dist/index.es149.js.map +1 -1
- package/dist/index.es150.js +36 -30
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es151.js +211 -24
- package/dist/index.es151.js.map +1 -1
- package/dist/index.es152.js +141 -35
- package/dist/index.es152.js.map +1 -1
- package/dist/index.es153.js +141 -140
- package/dist/index.es153.js.map +1 -1
- package/dist/index.es154.js +45 -142
- package/dist/index.es154.js.map +1 -1
- package/dist/index.es155.js +353 -45
- package/dist/index.es155.js.map +1 -1
- package/dist/index.es156.js +14 -10
- package/dist/index.es156.js.map +1 -1
- package/dist/index.es157.js +10 -42
- package/dist/index.es157.js.map +1 -1
- package/dist/index.es158.js +44 -5
- package/dist/index.es158.js.map +1 -1
- package/dist/index.es159.js +5 -11
- package/dist/index.es159.js.map +1 -1
- package/dist/index.es16.js +1 -1
- package/dist/index.es160.js +10 -10
- package/dist/index.es160.js.map +1 -1
- package/dist/index.es161.js +11 -2
- package/dist/index.es161.js.map +1 -1
- package/dist/index.es162.js +2 -91
- package/dist/index.es162.js.map +1 -1
- package/dist/index.es163.js +2 -213
- package/dist/index.es163.js.map +1 -1
- package/dist/index.es164.js +23 -52
- package/dist/index.es164.js.map +1 -1
- package/dist/index.es165.js +88 -33
- package/dist/index.es165.js.map +1 -1
- package/dist/index.es166.js +52 -31
- package/dist/index.es166.js.map +1 -1
- package/dist/index.es167.js +32 -29
- package/dist/index.es167.js.map +1 -1
- package/dist/index.es168.js +26 -84
- package/dist/index.es168.js.map +1 -1
- package/dist/index.es169.js +27 -111
- package/dist/index.es169.js.map +1 -1
- package/dist/index.es170.js +97 -285
- package/dist/index.es170.js.map +1 -1
- package/dist/index.es171.js +251 -30
- package/dist/index.es171.js.map +1 -1
- package/dist/index.es172.js +63 -11
- package/dist/index.es172.js.map +1 -1
- package/dist/index.es173.js +284 -82
- package/dist/index.es173.js.map +1 -1
- package/dist/index.es174.js +29 -70
- package/dist/index.es174.js.map +1 -1
- package/dist/index.es175.js +10 -114
- package/dist/index.es175.js.map +1 -1
- package/dist/index.es176.js +23 -106
- package/dist/index.es176.js.map +1 -1
- package/dist/index.es177.js +19 -82
- package/dist/index.es177.js.map +1 -1
- package/dist/index.es178.js +63 -109
- package/dist/index.es178.js.map +1 -1
- package/dist/index.es179.js +63 -117
- package/dist/index.es179.js.map +1 -1
- package/dist/index.es180.js +112 -23
- package/dist/index.es180.js.map +1 -1
- package/dist/index.es181.js +103 -18
- package/dist/index.es181.js.map +1 -1
- package/dist/index.es182.js +86 -5
- package/dist/index.es182.js.map +1 -1
- package/dist/index.es183.js +133 -0
- package/dist/index.es183.js.map +1 -0
- package/dist/index.es184.js +133 -0
- package/dist/index.es184.js.map +1 -0
- package/dist/index.es185.js +9 -0
- package/dist/index.es185.js.map +1 -0
- package/dist/index.es19.js +1 -1
- package/dist/index.es2.js +21 -21
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es21.js +3 -3
- package/dist/index.es22.js +1 -1
- package/dist/index.es25.js +1 -1
- package/dist/index.es27.js +1 -1
- package/dist/index.es28.js +2 -2
- package/dist/index.es30.js +1 -1
- package/dist/index.es32.js +1 -1
- package/dist/index.es33.js +1 -1
- package/dist/index.es45.js +48 -46
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +2 -2
- package/dist/index.es47.js +1 -1
- package/dist/index.es48.js +1 -1
- package/dist/index.es53.js +1 -1
- package/dist/index.es54.js +1 -1
- package/dist/index.es57.js +1 -1
- package/dist/index.es59.js +1 -1
- package/dist/index.es67.js +2 -2
- package/dist/index.es68.js +1 -1
- package/dist/index.es71.js +1 -1
- package/dist/index.es72.js +7 -7
- package/dist/index.es73.js +2 -2
- package/dist/index.es85.js +1 -1
- package/dist/index.es97.js +16 -11
- package/dist/index.es97.js.map +1 -1
- package/dist/index.es98.js +89 -262
- package/dist/index.es98.js.map +1 -1
- package/dist/index.es99.js +13 -87
- package/dist/index.es99.js.map +1 -1
- package/dist/styles.css +55 -0
- package/package.json +2 -1
package/dist/index.es164.js
CHANGED
|
@@ -1,57 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
function s(n) {
|
|
14
|
-
const r = [...n.panPointers.values()].slice(0, 2);
|
|
15
|
-
if (r.length !== 2) return null;
|
|
16
|
-
const i = f(r);
|
|
17
|
-
return { x: i.x, y: i.y, distance: t(r) };
|
|
18
|
-
}
|
|
19
|
-
function d(n) {
|
|
20
|
-
n.panFrame != null && (cancelAnimationFrame(n.panFrame), n.panFrame = null);
|
|
21
|
-
}
|
|
22
|
-
function y(n) {
|
|
23
|
-
const r = [...n.panPointers.values()].slice(0, 2);
|
|
24
|
-
if (r.length !== 2 || !n.panLast || !n.stageEl) return;
|
|
25
|
-
const i = n.stageEl, o = f(r), e = t(r), c = i.getBoundingClientRect(), p = o.x - c.left, a = o.y - c.top;
|
|
26
|
-
if (n.panLast.distance > 0 && e > 0) {
|
|
27
|
-
const u = e / n.panLast.distance;
|
|
28
|
-
if (Math.abs(u - 1) > 5e-3) {
|
|
29
|
-
const P = n.viewScale;
|
|
30
|
-
m(n, n.zoom * u);
|
|
31
|
-
const l = n.viewScale / P;
|
|
32
|
-
l !== 1 && (i.scrollLeft = (i.scrollLeft + p) * l - p, i.scrollTop = (i.scrollTop + a) * l - a);
|
|
1
|
+
import { cva as e } from "class-variance-authority";
|
|
2
|
+
const t = e(
|
|
3
|
+
"w-auto min-w-[50px] h-5 flex items-center justify-center gap-2 px-1 py-0.5 rounded-[4px]",
|
|
4
|
+
{
|
|
5
|
+
variants: {
|
|
6
|
+
trend: {
|
|
7
|
+
1: "bg-success-1 border border-success-1",
|
|
8
|
+
"-1": "bg-danger-1 border border-danger-1",
|
|
9
|
+
0: "",
|
|
10
|
+
null: ""
|
|
11
|
+
}
|
|
33
12
|
}
|
|
34
13
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function h(n, r) {
|
|
46
|
-
n.panPointers && (n.panFrame != null && (d(n), y(n)), n.panPointers.delete(r.pointerId), n.panLast = n.panPointers.size >= 2 ? s(n) : null);
|
|
47
|
-
}
|
|
48
|
-
function I(n) {
|
|
49
|
-
d(n), n.panPointers?.clear(), n.panLast = null;
|
|
50
|
-
}
|
|
14
|
+
), s = e("text-sm", {
|
|
15
|
+
variants: {
|
|
16
|
+
trend: {
|
|
17
|
+
1: "text-success-1",
|
|
18
|
+
"-1": "text-danger-1",
|
|
19
|
+
0: "",
|
|
20
|
+
null: ""
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
51
24
|
export {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
h as panPointerUp,
|
|
55
|
-
I as resetPan
|
|
25
|
+
t as trendBoxStyles,
|
|
26
|
+
s as trendValueStyles
|
|
56
27
|
};
|
|
57
28
|
//# sourceMappingURL=index.es164.js.map
|
package/dist/index.es164.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es164.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index.es164.js","sources":["../src/components/ui/report-snippet-view/report-snippet-view-style.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const trendBoxStyles = cva(\n 'w-auto min-w-[50px] h-5 flex items-center justify-center gap-2 px-1 py-0.5 rounded-[4px]',\n {\n variants: {\n trend: {\n '1': 'bg-success-1 border border-success-1',\n '-1': 'bg-danger-1 border border-danger-1',\n '0': '',\n null: '',\n },\n },\n }\n)\n\nexport const trendValueStyles = cva('text-sm', {\n variants: {\n trend: {\n '1': 'text-success-1',\n '-1': 'text-danger-1',\n '0': '',\n null: '',\n },\n },\n})\n"],"names":["trendBoxStyles","cva","trendValueStyles"],"mappings":";AAEO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,GAAK;AAAA,QACL,MAAM;AAAA,QACN,GAAK;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEJ,GAEaC,IAAmBD,EAAI,WAAW;AAAA,EAC7C,UAAU;AAAA,IACR,OAAO;AAAA,MACL,GAAK;AAAA,MACL,MAAM;AAAA,MACN,GAAK;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,CAAC;"}
|
package/dist/index.es165.js
CHANGED
|
@@ -1,39 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
let s = null;
|
|
2
|
+
function d() {
|
|
3
|
+
if (s !== null) return s;
|
|
4
|
+
if (typeof document > "u") return !1;
|
|
5
|
+
const t = document.createElement("canvas").getContext("2d");
|
|
6
|
+
return s = !!t && "filter" in t, s;
|
|
6
7
|
}
|
|
7
|
-
function
|
|
8
|
-
return
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
function p(t) {
|
|
9
|
+
return String(t).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
10
|
+
}
|
|
11
|
+
function h(t) {
|
|
12
|
+
const e = parseFloat(t);
|
|
13
|
+
return Number.isNaN(e) ? null : t.trim().endsWith("%") ? e / 100 : e;
|
|
14
|
+
}
|
|
15
|
+
function u(t, e) {
|
|
16
|
+
return `<feComponentTransfer>${["R", "G", "B"].map(
|
|
17
|
+
(n) => `<feFunc${n} type="linear" slope="${t}" intercept="${e}"/>`
|
|
18
|
+
).join("")}</feComponentTransfer>`;
|
|
19
|
+
}
|
|
20
|
+
function m(t) {
|
|
21
|
+
const e = 1 - t;
|
|
22
|
+
return `<feColorMatrix type="matrix" values="${[
|
|
23
|
+
0.393 + 0.607 * e,
|
|
24
|
+
0.769 - 0.769 * e,
|
|
25
|
+
0.189 - 0.189 * e,
|
|
26
|
+
0,
|
|
27
|
+
0,
|
|
28
|
+
0.349 - 0.349 * e,
|
|
29
|
+
0.686 + 0.314 * e,
|
|
30
|
+
0.168 - 0.168 * e,
|
|
31
|
+
0,
|
|
32
|
+
0,
|
|
33
|
+
0.272 - 0.272 * e,
|
|
34
|
+
0.534 - 0.534 * e,
|
|
35
|
+
0.131 + 0.869 * e,
|
|
36
|
+
0,
|
|
37
|
+
0,
|
|
38
|
+
0,
|
|
39
|
+
0,
|
|
40
|
+
0,
|
|
41
|
+
1,
|
|
42
|
+
0
|
|
43
|
+
].join(" ")}"/>`;
|
|
44
|
+
}
|
|
45
|
+
function g(t) {
|
|
46
|
+
const e = [], i = /([a-zA-Z-]+)\(([^)]*)\)/g;
|
|
47
|
+
let n;
|
|
48
|
+
for (; (n = i.exec(t)) !== null; ) {
|
|
49
|
+
const a = n[1].toLowerCase(), r = h(n[2]);
|
|
50
|
+
if (r !== null)
|
|
51
|
+
switch (a) {
|
|
52
|
+
case "brightness":
|
|
53
|
+
e.push(u(r, 0));
|
|
54
|
+
break;
|
|
55
|
+
case "contrast":
|
|
56
|
+
e.push(u(r, -0.5 * r + 0.5));
|
|
57
|
+
break;
|
|
58
|
+
case "saturate":
|
|
59
|
+
e.push(`<feColorMatrix type="saturate" values="${r}"/>`);
|
|
60
|
+
break;
|
|
61
|
+
case "grayscale":
|
|
62
|
+
e.push(
|
|
63
|
+
`<feColorMatrix type="saturate" values="${1 - r}"/>`
|
|
64
|
+
);
|
|
65
|
+
break;
|
|
66
|
+
case "sepia":
|
|
67
|
+
e.push(m(r));
|
|
68
|
+
break;
|
|
69
|
+
case "hue-rotate":
|
|
70
|
+
e.push(`<feColorMatrix type="hueRotate" values="${r}"/>`);
|
|
71
|
+
break;
|
|
72
|
+
case "blur":
|
|
73
|
+
r > 0 && e.push(`<feGaussianBlur stdDeviation="${r}"/>`);
|
|
74
|
+
break;
|
|
18
75
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
/* @__PURE__ */ e.createElement(s, { className: "h-3.5 w-3.5" })
|
|
33
|
-
)
|
|
34
|
-
))) : /* @__PURE__ */ e.createElement("p", { className: "text-xs italic text-light-4" }, "No layers yet. Use Text, Draw, or Shape."));
|
|
76
|
+
}
|
|
77
|
+
return e;
|
|
78
|
+
}
|
|
79
|
+
function v(t, e) {
|
|
80
|
+
return new Promise((i, n) => {
|
|
81
|
+
const a = g(e);
|
|
82
|
+
if (!a.length) {
|
|
83
|
+
n(new Error("no translatable filter primitives"));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const { width: r, height: l } = t, c = t.toDataURL("image/png"), f = `<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${l}"><filter id="f" color-interpolation-filters="sRGB" x="0" y="0" width="100%" height="100%">${a.join("")}</filter><image href="${p(c)}" width="${r}" height="${l}" filter="url(#f)"/></svg>`, o = new Image();
|
|
87
|
+
o.onload = () => i(o), o.onerror = () => n(new Error("filter rasterisation failed")), o.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(f);
|
|
88
|
+
});
|
|
35
89
|
}
|
|
36
90
|
export {
|
|
37
|
-
|
|
91
|
+
v as rasterizeWithFilter,
|
|
92
|
+
d as supportsContextFilter
|
|
38
93
|
};
|
|
39
94
|
//# sourceMappingURL=index.es165.js.map
|
package/dist/index.es165.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es165.js","sources":["../src/components/organisms/image-editor/
|
|
1
|
+
{"version":3,"file":"index.es165.js","sources":["../src/components/organisms/image-editor/engine/canvas-filter.js"],"sourcesContent":["let contextFilterSupport = null\n\nexport function supportsContextFilter() {\n if (contextFilterSupport !== null) return contextFilterSupport\n if (typeof document === 'undefined') return false\n const ctx = document.createElement('canvas').getContext('2d')\n contextFilterSupport = !!ctx && 'filter' in ctx\n return contextFilterSupport\n}\n\nfunction escapeXml(value) {\n return String(value)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n}\n\nfunction toAmount(raw) {\n const value = parseFloat(raw)\n if (Number.isNaN(value)) return null\n return raw.trim().endsWith('%') ? value / 100 : value\n}\n\nfunction componentTransfer(slope, intercept) {\n const fn = ['R', 'G', 'B']\n .map(\n (c) =>\n `<feFunc${c} type=\"linear\" slope=\"${slope}\" intercept=\"${intercept}\"/>`\n )\n .join('')\n return `<feComponentTransfer>${fn}</feComponentTransfer>`\n}\n\nfunction sepiaMatrix(amount) {\n const r = 1 - amount\n const m = [\n 0.393 + 0.607 * r,\n 0.769 - 0.769 * r,\n 0.189 - 0.189 * r,\n 0,\n 0,\n 0.349 - 0.349 * r,\n 0.686 + 0.314 * r,\n 0.168 - 0.168 * r,\n 0,\n 0,\n 0.272 - 0.272 * r,\n 0.534 - 0.534 * r,\n 0.131 + 0.869 * r,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n ]\n return `<feColorMatrix type=\"matrix\" values=\"${m.join(' ')}\"/>`\n}\n\nfunction toSvgPrimitives(filter) {\n const primitives = []\n const re = /([a-zA-Z-]+)\\(([^)]*)\\)/g\n let match\n\n while ((match = re.exec(filter)) !== null) {\n const name = match[1].toLowerCase()\n const amount = toAmount(match[2])\n if (amount === null) continue\n\n switch (name) {\n case 'brightness':\n primitives.push(componentTransfer(amount, 0))\n break\n case 'contrast':\n primitives.push(componentTransfer(amount, -0.5 * amount + 0.5))\n break\n case 'saturate':\n primitives.push(`<feColorMatrix type=\"saturate\" values=\"${amount}\"/>`)\n break\n case 'grayscale':\n primitives.push(\n `<feColorMatrix type=\"saturate\" values=\"${1 - amount}\"/>`\n )\n break\n case 'sepia':\n primitives.push(sepiaMatrix(amount))\n break\n case 'hue-rotate':\n primitives.push(`<feColorMatrix type=\"hueRotate\" values=\"${amount}\"/>`)\n break\n case 'blur':\n if (amount > 0) {\n primitives.push(`<feGaussianBlur stdDeviation=\"${amount}\"/>`)\n }\n break\n default:\n break\n }\n }\n\n return primitives\n}\n\nexport function rasterizeWithFilter(sourceCanvas, filter) {\n return new Promise((resolve, reject) => {\n const primitives = toSvgPrimitives(filter)\n if (!primitives.length) {\n reject(new Error('no translatable filter primitives'))\n return\n }\n\n const { width, height } = sourceCanvas\n const href = sourceCanvas.toDataURL('image/png')\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${width}\" height=\"${height}\">` +\n `<filter id=\"f\" color-interpolation-filters=\"sRGB\" ` +\n `x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">${primitives.join('')}</filter>` +\n `<image href=\"${escapeXml(href)}\" width=\"${width}\" height=\"${height}\" ` +\n `filter=\"url(#f)\"/>` +\n `</svg>`\n\n const img = new Image()\n img.onload = () => resolve(img)\n img.onerror = () => reject(new Error('filter rasterisation failed'))\n img.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svg)\n })\n}\n"],"names":["contextFilterSupport","supportsContextFilter","ctx","escapeXml","value","toAmount","raw","componentTransfer","slope","intercept","c","sepiaMatrix","amount","r","toSvgPrimitives","filter","primitives","re","match","name","rasterizeWithFilter","sourceCanvas","resolve","reject","width","height","href","svg","img"],"mappings":"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"}
|
package/dist/index.es166.js
CHANGED
|
@@ -1,36 +1,57 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
import { applyZoom as m, renderOverlay as x } from "./index.es145.js";
|
|
2
|
+
function f(n) {
|
|
3
|
+
const [r, i] = n;
|
|
4
|
+
return { x: (r.x + i.x) / 2, y: (r.y + i.y) / 2 };
|
|
5
|
+
}
|
|
6
|
+
function t(n) {
|
|
7
|
+
const [r, i] = n;
|
|
8
|
+
return Math.hypot(r.x - i.x, r.y - i.y);
|
|
9
|
+
}
|
|
10
|
+
function g(n) {
|
|
11
|
+
n.dragMode && (n.pendingStroke = null, n.pendingShape = null, n.dragMode = null, n.activePointerId != null && n.overlayEl?.hasPointerCapture?.(n.activePointerId) && n.overlayEl.releasePointerCapture(n.activePointerId), n.activePointerId = null, x(n), n.notify());
|
|
12
|
+
}
|
|
13
|
+
function s(n) {
|
|
14
|
+
const r = [...n.panPointers.values()].slice(0, 2);
|
|
15
|
+
if (r.length !== 2) return null;
|
|
16
|
+
const i = f(r);
|
|
17
|
+
return { x: i.x, y: i.y, distance: t(r) };
|
|
18
|
+
}
|
|
19
|
+
function d(n) {
|
|
20
|
+
n.panFrame != null && (cancelAnimationFrame(n.panFrame), n.panFrame = null);
|
|
21
|
+
}
|
|
22
|
+
function y(n) {
|
|
23
|
+
const r = [...n.panPointers.values()].slice(0, 2);
|
|
24
|
+
if (r.length !== 2 || !n.panLast || !n.stageEl) return;
|
|
25
|
+
const i = n.stageEl, o = f(r), e = t(r), c = i.getBoundingClientRect(), p = o.x - c.left, a = o.y - c.top;
|
|
26
|
+
if (n.panLast.distance > 0 && e > 0) {
|
|
27
|
+
const u = e / n.panLast.distance;
|
|
28
|
+
if (Math.abs(u - 1) > 5e-3) {
|
|
29
|
+
const P = n.viewScale;
|
|
30
|
+
m(n, n.zoom * u);
|
|
31
|
+
const l = n.viewScale / P;
|
|
32
|
+
l !== 1 && (i.scrollLeft = (i.scrollLeft + p) * l - p, i.scrollTop = (i.scrollTop + a) * l - a);
|
|
30
33
|
}
|
|
31
|
-
|
|
34
|
+
}
|
|
35
|
+
i.scrollLeft -= o.x - n.panLast.x, i.scrollTop -= o.y - n.panLast.y, n.panLast = { x: o.x, y: o.y, distance: e };
|
|
36
|
+
}
|
|
37
|
+
function L(n, r) {
|
|
38
|
+
return r.pointerType === "mouse" || (n.panPointers ??= /* @__PURE__ */ new Map(), n.panPointers.set(r.pointerId, { x: r.clientX, y: r.clientY }), !n.stageEl || n.panPointers.size < 2) ? !1 : (g(n), n.panLast = s(n), !0);
|
|
39
|
+
}
|
|
40
|
+
function F(n, r) {
|
|
41
|
+
return !n.panPointers?.has(r.pointerId) || (n.panPointers.set(r.pointerId, { x: r.clientX, y: r.clientY }), n.panPointers.size < 2 || !n.panLast || !n.stageEl) ? !1 : (n.panFrame == null && (n.panFrame = requestAnimationFrame(() => {
|
|
42
|
+
n.panFrame = null, y(n);
|
|
43
|
+
})), !0);
|
|
44
|
+
}
|
|
45
|
+
function h(n, r) {
|
|
46
|
+
n.panPointers && (n.panFrame != null && (d(n), y(n)), n.panPointers.delete(r.pointerId), n.panLast = n.panPointers.size >= 2 ? s(n) : null);
|
|
47
|
+
}
|
|
48
|
+
function I(n) {
|
|
49
|
+
d(n), n.panPointers?.clear(), n.panLast = null;
|
|
32
50
|
}
|
|
33
51
|
export {
|
|
34
|
-
|
|
52
|
+
L as panPointerDown,
|
|
53
|
+
F as panPointerMove,
|
|
54
|
+
h as panPointerUp,
|
|
55
|
+
I as resetPan
|
|
35
56
|
};
|
|
36
57
|
//# sourceMappingURL=index.es166.js.map
|
package/dist/index.es166.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es166.js","sources":["../src/components/organisms/image-editor/
|
|
1
|
+
{"version":3,"file":"index.es166.js","sources":["../src/components/organisms/image-editor/engine/touch-pan.js"],"sourcesContent":["import { applyZoom, renderOverlay } from './rendering.js'\n\nfunction midpoint(points) {\n const [a, b] = points\n return { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 }\n}\n\nfunction distance(points) {\n const [a, b] = points\n return Math.hypot(a.x - b.x, a.y - b.y)\n}\n\nfunction cancelActiveDrag(state) {\n if (!state.dragMode) return\n state.pendingStroke = null\n state.pendingShape = null\n state.dragMode = null\n if (\n state.activePointerId != null &&\n state.overlayEl?.hasPointerCapture?.(state.activePointerId)\n ) {\n state.overlayEl.releasePointerCapture(state.activePointerId)\n }\n state.activePointerId = null\n renderOverlay(state)\n state.notify()\n}\n\nfunction baseline(state) {\n const points = [...state.panPointers.values()].slice(0, 2)\n if (points.length !== 2) return null\n const mid = midpoint(points)\n return { x: mid.x, y: mid.y, distance: distance(points) }\n}\n\nfunction cancelFrame(state) {\n if (state.panFrame == null) return\n cancelAnimationFrame(state.panFrame)\n state.panFrame = null\n}\n\nfunction applyGesture(state) {\n const points = [...state.panPointers.values()].slice(0, 2)\n if (points.length !== 2 || !state.panLast || !state.stageEl) return\n\n const stage = state.stageEl\n const mid = midpoint(points)\n const dist = distance(points)\n const rect = stage.getBoundingClientRect()\n const localX = mid.x - rect.left\n const localY = mid.y - rect.top\n\n if (state.panLast.distance > 0 && dist > 0) {\n const ratio = dist / state.panLast.distance\n if (Math.abs(ratio - 1) > 0.005) {\n const previousScale = state.viewScale\n applyZoom(state, state.zoom * ratio)\n const scaled = state.viewScale / previousScale\n if (scaled !== 1) {\n stage.scrollLeft = (stage.scrollLeft + localX) * scaled - localX\n stage.scrollTop = (stage.scrollTop + localY) * scaled - localY\n }\n }\n }\n\n stage.scrollLeft -= mid.x - state.panLast.x\n stage.scrollTop -= mid.y - state.panLast.y\n state.panLast = { x: mid.x, y: mid.y, distance: dist }\n}\n\nexport function panPointerDown(state, e) {\n if (e.pointerType === 'mouse') return false\n state.panPointers ??= new Map()\n state.panPointers.set(e.pointerId, { x: e.clientX, y: e.clientY })\n if (!state.stageEl || state.panPointers.size < 2) return false\n\n cancelActiveDrag(state)\n state.panLast = baseline(state)\n return true\n}\n\nexport function panPointerMove(state, e) {\n if (!state.panPointers?.has(e.pointerId)) return false\n state.panPointers.set(e.pointerId, { x: e.clientX, y: e.clientY })\n if (state.panPointers.size < 2 || !state.panLast || !state.stageEl) {\n return false\n }\n\n if (state.panFrame == null) {\n state.panFrame = requestAnimationFrame(() => {\n state.panFrame = null\n applyGesture(state)\n })\n }\n return true\n}\n\nexport function panPointerUp(state, e) {\n if (!state.panPointers) return\n if (state.panFrame != null) {\n cancelFrame(state)\n applyGesture(state)\n }\n state.panPointers.delete(e.pointerId)\n state.panLast = state.panPointers.size >= 2 ? baseline(state) : null\n}\n\nexport function resetPan(state) {\n cancelFrame(state)\n state.panPointers?.clear()\n state.panLast = null\n}\n"],"names":["midpoint","points","a","b","distance","cancelActiveDrag","state","renderOverlay","baseline","mid","cancelFrame","applyGesture","stage","dist","rect","localX","localY","ratio","previousScale","applyZoom","scaled","panPointerDown","e","panPointerMove","panPointerUp","resetPan"],"mappings":"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"}
|
package/dist/index.es167.js
CHANGED
|
@@ -1,36 +1,39 @@
|
|
|
1
|
+
import { X as s, Type as n, Sticker as c, Shapes as m } from "lucide-react";
|
|
1
2
|
import e from "react";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("
|
|
8
|
-
|
|
9
|
-
{
|
|
10
|
-
items: o,
|
|
11
|
-
value: r.cropRatio,
|
|
12
|
-
onValueChange: t.setCropRatio,
|
|
13
|
-
container: a
|
|
14
|
-
}
|
|
15
|
-
), /* @__PURE__ */ e.createElement("div", { className: "my-3.5 h-px bg-neutral-1" }), /* @__PURE__ */ e.createElement(
|
|
16
|
-
"button",
|
|
17
|
-
{
|
|
18
|
-
type: "button",
|
|
19
|
-
onClick: t.applyCrop,
|
|
20
|
-
className: "mb-2 w-full rounded-lg bg-rest-p1 py-2.5 text-sm text-white hover:bg-hover-p1"
|
|
21
|
-
},
|
|
22
|
-
"Apply crop"
|
|
23
|
-
), /* @__PURE__ */ e.createElement(
|
|
24
|
-
"button",
|
|
3
|
+
import { cn as i } from "./index.es89.js";
|
|
4
|
+
function o(t) {
|
|
5
|
+
return t === "text" ? /* @__PURE__ */ e.createElement(n, { className: "h-3.5 w-3.5 shrink-0 text-light-4" }) : t === "sticker" ? /* @__PURE__ */ e.createElement(c, { className: "h-3.5 w-3.5 shrink-0 text-light-4" }) : /* @__PURE__ */ e.createElement(m, { className: "h-3.5 w-3.5 shrink-0 text-light-4" });
|
|
6
|
+
}
|
|
7
|
+
function h({ ui: t, engine: a }) {
|
|
8
|
+
return /* @__PURE__ */ e.createElement("div", null, /* @__PURE__ */ e.createElement("div", { className: "my-3.5 h-px bg-neutral-1" }), /* @__PURE__ */ e.createElement("div", { className: "mb-2 flex items-center justify-between text-xs text-light-4" }, /* @__PURE__ */ e.createElement("span", null, "Layers"), /* @__PURE__ */ e.createElement("span", null, t.layers.length || "")), t.layers.length ? /* @__PURE__ */ e.createElement("div", { className: "flex flex-col gap-1.5" }, [...t.layers].reverse().map((r) => /* @__PURE__ */ e.createElement(
|
|
9
|
+
"div",
|
|
25
10
|
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
key: r.id,
|
|
12
|
+
className: i(
|
|
13
|
+
"flex items-center gap-2 rounded-lg border border-neutral-1 bg-white px-2.5 py-1.5 text-xs cursor-pointer",
|
|
14
|
+
t.selected?.id === r.id && "border-rest-p1 ring-1 ring-rest-p1"
|
|
15
|
+
),
|
|
16
|
+
onClick: () => {
|
|
17
|
+
t.mode !== "select" && a.setMode("select"), a.selectLayer(r.id);
|
|
18
|
+
}
|
|
29
19
|
},
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
o(r.type),
|
|
21
|
+
/* @__PURE__ */ e.createElement("span", { className: "flex-1 truncate" }, r.name),
|
|
22
|
+
/* @__PURE__ */ e.createElement(
|
|
23
|
+
"button",
|
|
24
|
+
{
|
|
25
|
+
type: "button",
|
|
26
|
+
title: "Delete",
|
|
27
|
+
onClick: (l) => {
|
|
28
|
+
l.stopPropagation(), a.deleteLayer(r.id);
|
|
29
|
+
},
|
|
30
|
+
className: "text-light-4 hover:text-danger-1"
|
|
31
|
+
},
|
|
32
|
+
/* @__PURE__ */ e.createElement(s, { className: "h-3.5 w-3.5" })
|
|
33
|
+
)
|
|
34
|
+
))) : /* @__PURE__ */ e.createElement("p", { className: "text-xs italic text-light-4" }, "No layers yet. Use Text, Draw, or Shape."));
|
|
32
35
|
}
|
|
33
36
|
export {
|
|
34
|
-
|
|
37
|
+
h as LayersList
|
|
35
38
|
};
|
|
36
39
|
//# sourceMappingURL=index.es167.js.map
|
package/dist/index.es167.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es167.js","sources":["../src/components/organisms/image-editor/components/
|
|
1
|
+
{"version":3,"file":"index.es167.js","sources":["../src/components/organisms/image-editor/components/layers-list.tsx"],"sourcesContent":["import { Shapes, Sticker, Type, X } from 'lucide-react'\nimport React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nimport { ImageEditorEngine, ImageEditorUiState } from '../image-editor.types'\n\ninterface LayersListProps {\n ui: ImageEditorUiState\n engine: ImageEditorEngine\n}\n\nfunction layerIcon(type: string) {\n if (type === 'text')\n return <Type className=\"h-3.5 w-3.5 shrink-0 text-light-4\" />\n if (type === 'sticker')\n return <Sticker className=\"h-3.5 w-3.5 shrink-0 text-light-4\" />\n return <Shapes className=\"h-3.5 w-3.5 shrink-0 text-light-4\" />\n}\n\nexport function LayersList({ ui, engine }: LayersListProps) {\n return (\n <div>\n <div className=\"my-3.5 h-px bg-neutral-1\" />\n <div className=\"mb-2 flex items-center justify-between text-xs text-light-4\">\n <span>Layers</span>\n <span>{ui.layers.length || ''}</span>\n </div>\n {!ui.layers.length ? (\n <p className=\"text-xs italic text-light-4\">\n No layers yet. Use Text, Draw, or Shape.\n </p>\n ) : (\n <div className=\"flex flex-col gap-1.5\">\n {[...ui.layers].reverse().map((l) => (\n <div\n key={l.id}\n className={cn(\n 'flex items-center gap-2 rounded-lg border border-neutral-1 bg-white px-2.5 py-1.5 text-xs cursor-pointer',\n ui.selected?.id === l.id && 'border-rest-p1 ring-1 ring-rest-p1'\n )}\n onClick={() => {\n if (ui.mode !== 'select') engine.setMode('select')\n engine.selectLayer(l.id)\n }}\n >\n {layerIcon(l.type)}\n <span className=\"flex-1 truncate\">{l.name}</span>\n <button\n type=\"button\"\n title=\"Delete\"\n onClick={(e) => {\n e.stopPropagation()\n engine.deleteLayer(l.id)\n }}\n className=\"text-light-4 hover:text-danger-1\"\n >\n <X className=\"h-3.5 w-3.5\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["layerIcon","type","React","Type","Sticker","Shapes","LayersList","ui","engine","l","cn","e","X"],"mappings":";;;AAYA,SAASA,EAAUC,GAAc;AAC/B,SAAIA,MAAS,SACJC,gBAAAA,EAAA,cAACC,GAAA,EAAK,WAAU,oCAAA,CAAoC,IACzDF,MAAS,YACJC,gBAAAA,EAAA,cAACE,GAAA,EAAQ,WAAU,oCAAA,CAAoC,IACzDF,gBAAAA,EAAA,cAACG,GAAA,EAAO,WAAU,oCAAA,CAAoC;AAC/D;AAEO,SAASC,EAAW,EAAE,IAAAC,GAAI,QAAAC,KAA2B;AAC1D,SACEN,gBAAAA,EAAA,cAAC,aACCA,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,2BAAA,CAA2B,mCACzC,OAAA,EAAI,WAAU,iEACbA,gBAAAA,EAAA,cAAC,QAAA,MAAK,QAAM,GACZA,gBAAAA,EAAA,cAAC,cAAMK,EAAG,OAAO,UAAU,EAAG,CAChC,GACEA,EAAG,OAAO,SAKVL,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,wBAAA,GACZ,CAAC,GAAGK,EAAG,MAAM,EAAE,QAAA,EAAU,IAAI,CAACE,MAC7BP,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKO,EAAE;AAAA,MACP,WAAWC;AAAA,QACT;AAAA,QACAH,EAAG,UAAU,OAAOE,EAAE,MAAM;AAAA,MAAA;AAAA,MAE9B,SAAS,MAAM;AACb,QAAIF,EAAG,SAAS,YAAUC,EAAO,QAAQ,QAAQ,GACjDA,EAAO,YAAYC,EAAE,EAAE;AAAA,MACzB;AAAA,IAAA;AAAA,IAECT,EAAUS,EAAE,IAAI;AAAA,IACjBP,gBAAAA,EAAA,cAAC,QAAA,EAAK,WAAU,kBAAA,GAAmBO,EAAE,IAAK;AAAA,IAC1CP,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAAS,CAACS,MAAM;AACd,UAAAA,EAAE,gBAAA,GACFH,EAAO,YAAYC,EAAE,EAAE;AAAA,QACzB;AAAA,QACA,WAAU;AAAA,MAAA;AAAA,MAEVP,gBAAAA,EAAA,cAACU,GAAA,EAAE,WAAU,cAAA,CAAc;AAAA,IAAA;AAAA,EAC7B,CAEH,CACH,IAhCAV,gBAAAA,EAAA,cAAC,KAAA,EAAE,WAAU,8BAAA,GAA8B,0CAE3C,CAgCJ;AAEJ;"}
|