@sumi-forge/react 1.0.0 → 1.0.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.
- package/README.md +40 -1
- package/dist-lib/components/SumiSansui.d.ts +40 -0
- package/dist-lib/index.cjs +2 -0
- package/dist-lib/index.cjs.map +1 -0
- package/{dist → dist-lib}/index.d.ts +1 -0
- package/{dist → dist-lib}/index.js +984 -456
- package/dist-lib/index.js.map +1 -0
- package/dist-lib/presets.d.ts +21 -0
- package/{dist → dist-lib}/types.d.ts +23 -0
- package/package.json +15 -14
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/presets.d.ts +0 -12
- /package/{dist → dist-lib}/components/JapaneseCalligraphy.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiBrushCanvas.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiButton.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiIcon.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiLandscape.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiMaskReveal.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiSectionPainter.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiStroke.d.ts +0 -0
- /package/{dist → dist-lib}/components/SumiVFX.d.ts +0 -0
- /package/{dist → dist-lib}/gifEncoder.d.ts +0 -0
- /package/{dist → dist-lib}/math.d.ts +0 -0
- /package/{dist → dist-lib}/techniques.d.ts +0 -0
- /package/{dist → dist-lib}/vfxRenderer.d.ts +0 -0
|
@@ -134,6 +134,115 @@ function y(e, t) {
|
|
|
134
134
|
}
|
|
135
135
|
// src/lib/sumi-forge/presets.ts
|
|
136
136
|
var b = {
|
|
137
|
+
classic_washi: {
|
|
138
|
+
id: "classic_washi",
|
|
139
|
+
name: "Washi Clássico & Nanquim",
|
|
140
|
+
jp: "水墨山水",
|
|
141
|
+
romaji: "Suiboku Sansui",
|
|
142
|
+
subtitle: "Papel Washi envelhecido, nanquim tradicional e aguadas de carvão",
|
|
143
|
+
isDark: !1,
|
|
144
|
+
colors: {
|
|
145
|
+
background: "#EFECE4",
|
|
146
|
+
ink: "#181715",
|
|
147
|
+
wash: "#524E46",
|
|
148
|
+
mist: "#EFECE4",
|
|
149
|
+
accent: "#C8232C"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
jade_mineral: {
|
|
153
|
+
id: "jade_mineral",
|
|
154
|
+
name: "Verde Mineral & Jade",
|
|
155
|
+
jp: "青緑山水",
|
|
156
|
+
romaji: "Seiryoku Sansui",
|
|
157
|
+
subtitle: "Estilo imperial com pigmento mineral verde-celadon nas encostas",
|
|
158
|
+
isDark: !1,
|
|
159
|
+
colors: {
|
|
160
|
+
background: "#EDE8DC",
|
|
161
|
+
ink: "#1A211E",
|
|
162
|
+
wash: "#527361",
|
|
163
|
+
mist: "#EDE8DC",
|
|
164
|
+
accent: "#3B6E52"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
night_obsidian: {
|
|
168
|
+
id: "night_obsidian",
|
|
169
|
+
name: "Noite Obsidiana (Dark Mode)",
|
|
170
|
+
jp: "夜行山水",
|
|
171
|
+
romaji: "Yakō Sansui",
|
|
172
|
+
subtitle: "Céu noturno em carvão profundo com cristas iluminadas em marfim",
|
|
173
|
+
isDark: !0,
|
|
174
|
+
colors: {
|
|
175
|
+
background: "#141518",
|
|
176
|
+
ink: "#E8E2D5",
|
|
177
|
+
wash: "#2A2D34",
|
|
178
|
+
mist: "#141518",
|
|
179
|
+
accent: "#C8232C"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
crimson_dawn: {
|
|
183
|
+
id: "crimson_dawn",
|
|
184
|
+
name: "Alvorada Carmesim",
|
|
185
|
+
jp: "暁山水",
|
|
186
|
+
romaji: "Akatsuki Sansui",
|
|
187
|
+
subtitle: "Bruma matinal aquecida por aguadas de vermelhão e cinza-pedra",
|
|
188
|
+
isDark: !1,
|
|
189
|
+
colors: {
|
|
190
|
+
background: "#F2ECE4",
|
|
191
|
+
ink: "#1D1817",
|
|
192
|
+
wash: "#944347",
|
|
193
|
+
mist: "#F2ECE4",
|
|
194
|
+
accent: "#C8232C"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
cobalt_porcelain: {
|
|
198
|
+
id: "cobalt_porcelain",
|
|
199
|
+
name: "Azul Índigo & Porcelana",
|
|
200
|
+
jp: "藍染山水",
|
|
201
|
+
romaji: "Aizome Sansui",
|
|
202
|
+
subtitle: "Tons serenos de índigo oriental sobre papel de arroz claro",
|
|
203
|
+
isDark: !1,
|
|
204
|
+
colors: {
|
|
205
|
+
background: "#EDF0F2",
|
|
206
|
+
ink: "#101C29",
|
|
207
|
+
wash: "#3B5C7A",
|
|
208
|
+
mist: "#EDF0F2",
|
|
209
|
+
accent: "#1E4E79"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}, x = [
|
|
213
|
+
{
|
|
214
|
+
id: "panoramic_river",
|
|
215
|
+
name: "Horizonte Fluvial & Barco Solitário",
|
|
216
|
+
jp: "江湖遠景",
|
|
217
|
+
romaji: "Kōko Enkei",
|
|
218
|
+
ptMeaning: "Águas tranquilas que se estendem até o horizonte infinito",
|
|
219
|
+
description: "Grande espelho d’água com ondulações calmas, ilhas distantes na neblina, promontório rochoso em primeiro plano e pescador solitário."
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
id: "karst_peaks",
|
|
223
|
+
name: "Picos Escarpados & Abismo",
|
|
224
|
+
jp: "奇峰聳立",
|
|
225
|
+
romaji: "Kihō Shōritsu",
|
|
226
|
+
ptMeaning: "Picos extraordinários que se erguem com majestade acima das nuvens",
|
|
227
|
+
description: "Torres verticais dramáticas com fissuras de rocha Cunfa, pinheiros agarrados às escarpas e silhuetas fantasmas ao fundo."
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: "layered_valley",
|
|
231
|
+
name: "Vale das Cinco Neblinas",
|
|
232
|
+
jp: "重巒畳嶂",
|
|
233
|
+
romaji: "Jūran Jōshō",
|
|
234
|
+
ptMeaning: "Cordilheiras sobrepostas em harmonia profunda entre o céu e a terra",
|
|
235
|
+
description: "Cinco a sete camadas de colinas e montanhas entrelaçadas com aguada mineral, matas de pinheiros nas cristas e neblina nos vales."
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
id: "twin_gorges",
|
|
239
|
+
name: "Desfiladeiro Noturno & Travessia",
|
|
240
|
+
jp: "峡谷孤舟",
|
|
241
|
+
romaji: "Kyōkoku Koshū",
|
|
242
|
+
ptMeaning: "A travessia serena entre grandes paredes de rocha milenar",
|
|
243
|
+
description: "Picos imponentes flanqueando um canal profundo com ilha de pinheiros em primeiro plano, perfeito tanto em papel claro quanto no Modo Noturno."
|
|
244
|
+
}
|
|
245
|
+
], S = {
|
|
137
246
|
fuji_sakura: {
|
|
138
247
|
id: "fuji_sakura",
|
|
139
248
|
name: "Monte Fuji & Sakura Carmesim",
|
|
@@ -255,7 +364,7 @@ var b = {
|
|
|
255
364
|
sporeAccent: "#F59E0B"
|
|
256
365
|
}
|
|
257
366
|
}
|
|
258
|
-
},
|
|
367
|
+
}, C = [
|
|
259
368
|
{
|
|
260
369
|
id: "hyb_slash_great_wave_katana",
|
|
261
370
|
name: "Corte da Grande Onda (Katana Hokusai)",
|
|
@@ -333,7 +442,7 @@ var b = {
|
|
|
333
442
|
defaultSchool: "abyssal_curse",
|
|
334
443
|
description: "Braços espirais logarítmicos convergindo sobre núcleo abissal oclusivo e aguada Tarashikomi."
|
|
335
444
|
}
|
|
336
|
-
],
|
|
445
|
+
], w = {
|
|
337
446
|
archetype: "hyb_slash_great_wave_katana",
|
|
338
447
|
school: "calligraphy_tide",
|
|
339
448
|
colors: {
|
|
@@ -375,14 +484,14 @@ var b = {
|
|
|
375
484
|
fps: 16,
|
|
376
485
|
seed: 8472,
|
|
377
486
|
frameSize: 128
|
|
378
|
-
},
|
|
487
|
+
}, T = {
|
|
379
488
|
sunIntensity: 1,
|
|
380
489
|
mountainIntensity: 1,
|
|
381
490
|
sakuraBranchIntensity: 1,
|
|
382
491
|
sakuraPetalsIntensity: 1,
|
|
383
492
|
waterReflectionIntensity: 1,
|
|
384
493
|
mistKumoIntensity: 1
|
|
385
|
-
},
|
|
494
|
+
}, E = [
|
|
386
495
|
{
|
|
387
496
|
id: 1,
|
|
388
497
|
code: "TEC-01",
|
|
@@ -577,7 +686,7 @@ var b = {
|
|
|
577
686
|
}
|
|
578
687
|
];
|
|
579
688
|
// src/lib/sumi-forge/techniques.ts
|
|
580
|
-
function
|
|
689
|
+
function D(e, t, n, r = {}) {
|
|
581
690
|
let i = e.rough, a = e.colors;
|
|
582
691
|
return {
|
|
583
692
|
roughness: i.roughness * .65,
|
|
@@ -591,7 +700,7 @@ function T(e, t, n, r = {}) {
|
|
|
591
700
|
...r
|
|
592
701
|
};
|
|
593
702
|
}
|
|
594
|
-
function
|
|
703
|
+
function O(e, t) {
|
|
595
704
|
let { spine: n, maxWidth: r, bristleCount: i, dryBrushGap: a, taperStart: o, taperEnd: s, color: c, alpha: f = 1, offsetNormal: p = 0, headReach: m = 1, tailRetract: h = 0, erosionProgress: g = 0, erosionScale: v = 1, hookWaves: y = 0, roundHeadCap: b = !0, seed: x } = t;
|
|
596
705
|
if (n.length < 2 || m <= h + .01) return;
|
|
597
706
|
let S = Math.max(1, Math.min(44, Math.round(i)));
|
|
@@ -647,7 +756,7 @@ function E(e, t) {
|
|
|
647
756
|
}
|
|
648
757
|
e.restore();
|
|
649
758
|
}
|
|
650
|
-
function
|
|
759
|
+
function k(e, t, n, r, i, a, o, s) {
|
|
651
760
|
if (t.length < 4 || r <= 0) return;
|
|
652
761
|
let c = l(s + 991);
|
|
653
762
|
e.save();
|
|
@@ -663,7 +772,7 @@ function D(e, t, n, r, i, a, o, s) {
|
|
|
663
772
|
}
|
|
664
773
|
e.restore();
|
|
665
774
|
}
|
|
666
|
-
function
|
|
775
|
+
function A(e, t, n, r, i) {
|
|
667
776
|
let { rootX: a, rootY: o, ctrl1X: s, ctrl1Y: c, ctrl2X: l, ctrl2Y: u, tipX: d, tipY: p, maxBellyWidth: m, striationCount: h = 5, alpha: g = 1, seed: y } = i, b = f({
|
|
668
777
|
x: a,
|
|
669
778
|
y: o
|
|
@@ -685,8 +794,8 @@ function O(e, t, n, r, i) {
|
|
|
685
794
|
e.save(), e.beginPath(), C.forEach(([t, n], r) => {
|
|
686
795
|
r === 0 ? e.moveTo(t, n) : e.lineTo(t, n);
|
|
687
796
|
}), e.closePath();
|
|
688
|
-
let w = e.createLinearGradient(a, o, d, p),
|
|
689
|
-
w.addColorStop(0, _(
|
|
797
|
+
let w = e.createLinearGradient(a, o, d, p), T = n.colors;
|
|
798
|
+
w.addColorStop(0, _(T.coreGlow, g)), w.addColorStop(.28, _(v(T.coreGlow, T.energySecondary, .35), g)), w.addColorStop(.68, _(T.energySecondary, g * .96)), w.addColorStop(.92, _(v(T.energySecondary, T.inkPrimary, .45), g * .95)), w.addColorStop(1, _(T.inkPrimary, g)), e.fillStyle = w, e.fill();
|
|
690
799
|
for (let t = 0; t < h; t++) {
|
|
691
800
|
let n = h === 1 ? 0 : t / (h - 1) * 2 - 1;
|
|
692
801
|
e.beginPath();
|
|
@@ -694,20 +803,20 @@ function O(e, t, n, r, i) {
|
|
|
694
803
|
let r = b[t], i = Math.sin(r.t ** .58 * Math.PI) * Math.max(0, 1 - r.t) ** .7 * 1.48, a = n * .36 * m * i, o = r.x + r.nx * a, s = r.y + r.ny * a;
|
|
695
804
|
t === 2 ? e.moveTo(o, s) : e.lineTo(o, s);
|
|
696
805
|
}
|
|
697
|
-
e.strokeStyle = _(t % 2 == 0 ?
|
|
806
|
+
e.strokeStyle = _(t % 2 == 0 ? T.coreGlow : T.inkPrimary, g * (t % 2 == 0 ? .5 : .42)), e.lineWidth = Math.max(.5, .75 * r), e.stroke();
|
|
698
807
|
}
|
|
699
808
|
if (t && n.rough.outlineWidth > .1) {
|
|
700
809
|
let e = C.filter((e, t) => t % 3 == 0);
|
|
701
|
-
t.polygon(e,
|
|
810
|
+
t.polygon(e, D(n, r, y, {
|
|
702
811
|
fill: void 0,
|
|
703
|
-
stroke: _(
|
|
812
|
+
stroke: _(T.inkPrimary, g * .85)
|
|
704
813
|
}));
|
|
705
814
|
}
|
|
706
815
|
e.restore();
|
|
707
816
|
}
|
|
708
|
-
function
|
|
817
|
+
function j(e, t, n, r, i, a, o, s) {
|
|
709
818
|
let c = (t + r) * .5 + (i - n) * .25, l = (n + i) * .5 - (r - t) * .25;
|
|
710
|
-
|
|
819
|
+
O(e, {
|
|
711
820
|
spine: p({
|
|
712
821
|
x: t,
|
|
713
822
|
y: n
|
|
@@ -728,7 +837,7 @@ function k(e, t, n, r, i, a, o, s) {
|
|
|
728
837
|
seed: s
|
|
729
838
|
});
|
|
730
839
|
}
|
|
731
|
-
function
|
|
840
|
+
function M(e, t, n, r, i, a, o, s, c, u, d) {
|
|
732
841
|
let f = l(d), p = c.colors;
|
|
733
842
|
e.save();
|
|
734
843
|
for (let l = 0; l < o; l++) {
|
|
@@ -737,14 +846,14 @@ function A(e, t, n, r, i, a, o, s, c, u, d) {
|
|
|
737
846
|
[n - x, r - S],
|
|
738
847
|
[C, w],
|
|
739
848
|
[v, y]
|
|
740
|
-
],
|
|
849
|
+
], D(c, u, d + l * 31, { strokeWidth: Math.max(.5, .7 * u) })), f() > .25) {
|
|
741
850
|
let t = g * (1.12 + f() * .38), i = h + a * (.5 + f() * .35), o = n + Math.cos(i) * t, s = r + Math.sin(i) * t, c = Math.max(.8, (1.1 + f() * 1.4) * u);
|
|
742
851
|
e.beginPath(), e.arc(o, s, c, 0, Math.PI * 2), e.fillStyle = p.coreGlow, e.fill(), e.strokeStyle = p.inkPrimary, e.lineWidth = Math.max(.45, .6 * u), e.stroke();
|
|
743
852
|
}
|
|
744
853
|
}
|
|
745
854
|
e.restore();
|
|
746
855
|
}
|
|
747
|
-
function
|
|
856
|
+
function N(e, t, n, r, i, a, o, s, c, l) {
|
|
748
857
|
if (n.length < 6) return;
|
|
749
858
|
let u = o.colors, d = [], f = [];
|
|
750
859
|
for (let e of n) {
|
|
@@ -766,15 +875,15 @@ function j(e, t, n, r, i, a, o, s, c, l) {
|
|
|
766
875
|
e.stroke();
|
|
767
876
|
}
|
|
768
877
|
let g = n[n.length - 1], v = n[Math.max(0, n.length - 3)], y = Math.atan2(g.y - v.y, g.x - v.x);
|
|
769
|
-
|
|
878
|
+
M(e, t, g.x, g.y, y, i, a, r * .58, o, s, l + 101);
|
|
770
879
|
let b = n[Math.floor(n.length * .62)];
|
|
771
880
|
if (b) {
|
|
772
881
|
let n = Math.atan2(b.ny * i, b.nx * i);
|
|
773
|
-
|
|
882
|
+
M(e, t, b.x + b.nx * i * r * .32, b.y + b.ny * i * r * .32, n, i, Math.max(3, Math.floor(a * .65)), r * .42, o, s, l + 203);
|
|
774
883
|
}
|
|
775
884
|
e.restore();
|
|
776
885
|
}
|
|
777
|
-
function
|
|
886
|
+
function P(e, t, n, r, i) {
|
|
778
887
|
let { startX: a, startY: o, endX: s, endY: c, maxThickness: l, lobeCount: u = 3, curlRadius: d = l * .48, flip: p = 1, alpha: m = .92, seed: h } = i, g = s - a, y = c - o, b = a + g * .32 - y * .18 * p, x = o + y * .32 + g * .18 * p, S = a + g * .72 + y * .12 * p, C = o + y * .72 - g * .12 * p, w = f({
|
|
779
888
|
x: a,
|
|
780
889
|
y: o
|
|
@@ -787,14 +896,14 @@ function M(e, t, n, r, i) {
|
|
|
787
896
|
}, {
|
|
788
897
|
x: s,
|
|
789
898
|
y: c
|
|
790
|
-
}, 44, n.dynamics.jitterAmount * .12, h),
|
|
899
|
+
}, 44, n.dynamics.jitterAmount * .12, h), T = [], E = [];
|
|
791
900
|
for (let e = 0; e < w.length; e++) {
|
|
792
901
|
let t = w[e], n = t.t, r = .58 + .42 * Math.abs(Math.sin(n * Math.PI * u)), i = Math.sin(n ** .62 * Math.PI) * 1.28, a = l * .62 * r * i, o = l * .28 * Math.sin(n * Math.PI);
|
|
793
|
-
|
|
902
|
+
T.push([t.x + t.nx * p * a, t.y + t.ny * p * a]), E.push([t.x - t.nx * p * o, t.y - t.ny * p * o]);
|
|
794
903
|
}
|
|
795
904
|
let O = n.colors;
|
|
796
|
-
e.save(), e.beginPath(),
|
|
797
|
-
for (let t =
|
|
905
|
+
e.save(), e.beginPath(), T.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n));
|
|
906
|
+
for (let t = E.length - 1; t >= 0; t--) e.lineTo(E[t][0], E[t][1]);
|
|
798
907
|
e.closePath();
|
|
799
908
|
let k = e.createLinearGradient(a, o, s, c);
|
|
800
909
|
k.addColorStop(0, _(O.inkPrimary, m * .75)), k.addColorStop(.55, _(v(O.energySecondary, O.coreGlow, .45), m * .88)), k.addColorStop(1, _(O.coreGlow, m * .95)), e.fillStyle = k, e.fill(), e.strokeStyle = _(O.inkPrimary, m * .85), e.lineWidth = Math.max(.75, 1.15 * r * (n.rough.outlineWidth * .7)), e.stroke();
|
|
@@ -803,13 +912,13 @@ function M(e, t, n, r, i) {
|
|
|
803
912
|
let t = e / 22, n = M + p * (.4 + t * Math.PI * 2.25), r = d * (.92 - t * .76);
|
|
804
913
|
F.push([N + Math.cos(n) * r, P + Math.sin(n) * r]);
|
|
805
914
|
}
|
|
806
|
-
e.beginPath(), F.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n)), e.strokeStyle = _(O.inkPrimary, m * .92), e.lineWidth = Math.max(.8, 1.35 * r), e.stroke(), t && n.rough.outlineWidth > .2 && t.curve(F.filter((e, t) => t % 2 == 0),
|
|
915
|
+
e.beginPath(), F.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n)), e.strokeStyle = _(O.inkPrimary, m * .92), e.lineWidth = Math.max(.8, 1.35 * r), e.stroke(), t && n.rough.outlineWidth > .2 && t.curve(F.filter((e, t) => t % 2 == 0), D(n, r, h + 59, { stroke: _(O.inkPrimary, m * .82) })), e.restore();
|
|
807
916
|
}
|
|
808
|
-
function
|
|
917
|
+
function F(e, t, n, r, i, a, o, s, c, u) {
|
|
809
918
|
let d = l(u);
|
|
810
919
|
for (let l = 0; l < a; l++) {
|
|
811
920
|
let f = a === 1 ? 0 : l / (a - 1) * 2 - 1, p = l % 2 == 0 ? 1 : -1, m = n + f * i * .38 - p * i * .22, h = r + (d() - .5) * i * .16;
|
|
812
|
-
|
|
921
|
+
P(e, t, o, s, {
|
|
813
922
|
startX: m,
|
|
814
923
|
startY: h,
|
|
815
924
|
endX: n + f * i * .38 + p * i * .26,
|
|
@@ -822,7 +931,7 @@ function N(e, t, n, r, i, a, o, s, c, u) {
|
|
|
822
931
|
});
|
|
823
932
|
}
|
|
824
933
|
}
|
|
825
|
-
function
|
|
934
|
+
function I(e, t, n, r, i, a, o, s, c, l, u) {
|
|
826
935
|
let f = [], p = Math.cos(o), m = Math.sin(o);
|
|
827
936
|
for (let e = 0; e < 36; e++) {
|
|
828
937
|
let t = e / 36 * Math.PI * 2, o = 1 + (d(Math.cos(t) * 1.6, Math.sin(t) * 1.6, u) - .5) * s, c = Math.cos(t) * i * o, l = Math.sin(t) * a * o;
|
|
@@ -831,12 +940,12 @@ function P(e, t, n, r, i, a, o, s, c, l, u) {
|
|
|
831
940
|
let h = c.colors;
|
|
832
941
|
e.save(), e.beginPath(), f.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n)), e.closePath(), e.globalAlpha = 1, e.fillStyle = h.energySecondary, e.fill();
|
|
833
942
|
let g = n + p * i * .32, _ = r + m * i * .32, y = e.createRadialGradient(g, _, i * .08, n, r, Math.max(i, a) * 1.05);
|
|
834
|
-
y.addColorStop(0, "#FFFFFF"), y.addColorStop(.38, h.coreGlow), y.addColorStop(.75, h.energySecondary), y.addColorStop(1, v(h.inkPrimary, h.energySecondary, .35)), e.fillStyle = y, e.fill(), e.strokeStyle = h.inkPrimary, e.lineWidth = Math.max(1, 1.5 * l), e.stroke(), t && c.rough.outlineWidth > .2 && t.polygon(f.filter((e, t) => t % 2 == 0),
|
|
943
|
+
y.addColorStop(0, "#FFFFFF"), y.addColorStop(.38, h.coreGlow), y.addColorStop(.75, h.energySecondary), y.addColorStop(1, v(h.inkPrimary, h.energySecondary, .35)), e.fillStyle = y, e.fill(), e.strokeStyle = h.inkPrimary, e.lineWidth = Math.max(1, 1.5 * l), e.stroke(), t && c.rough.outlineWidth > .2 && t.polygon(f.filter((e, t) => t % 2 == 0), D(c, l, u + 41, {
|
|
835
944
|
fill: void 0,
|
|
836
945
|
stroke: h.inkPrimary
|
|
837
946
|
})), e.restore();
|
|
838
947
|
}
|
|
839
|
-
function
|
|
948
|
+
function L(e, t, n, r, i, a, o, s, c, l) {
|
|
840
949
|
let u = Math.cos(a), f = Math.sin(a);
|
|
841
950
|
e.save(), e.beginPath();
|
|
842
951
|
for (let a = 0; a <= 36; a++) {
|
|
@@ -847,7 +956,7 @@ function F(e, t, n, r, i, a, o, s, c, l) {
|
|
|
847
956
|
let p = Math.max(1, Math.max(r, i)), m = e.createRadialGradient(t, n, Math.min(r, i) * .1, t, n, p);
|
|
848
957
|
m.addColorStop(0, _(o, c * .42)), m.addColorStop(.68, _(s, c * .58)), m.addColorStop(.9, _(s, c * .78)), m.addColorStop(1, _(s, 0)), e.fillStyle = m, e.fill(), e.restore();
|
|
849
958
|
}
|
|
850
|
-
function
|
|
959
|
+
function R(e, t, n, r, i, a, o, s, c, l) {
|
|
851
960
|
if (a <= 1 || o <= 1) return;
|
|
852
961
|
let u = Math.cos(i), d = Math.sin(i), f = -d, p = u, m = o * .5, h = a * .72, g = [n, r], y = [n + f * m, r + p * m], b = [n - f * m, r - p * m], x = [n + u * h + f * m * .82, r + d * h + p * m * .82], S = [n + u * h - f * m * .82, r + d * h - p * m * .82], C = [n + u * a, r + d * a], w = s.colors;
|
|
853
962
|
e.save(), e.beginPath(), [
|
|
@@ -861,20 +970,20 @@ function I(e, t, n, r, i, a, o, s, c, l) {
|
|
|
861
970
|
S,
|
|
862
971
|
b
|
|
863
972
|
].forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n)), e.closePath(), e.fillStyle = v(w.energySecondary, w.inkPrimary, .28), e.fill(), e.beginPath(), e.moveTo(g[0], g[1]), e.lineTo(C[0], C[1]), e.strokeStyle = "#FFFFFF", e.lineWidth = Math.max(.8, 1.2 * c), e.stroke();
|
|
864
|
-
let
|
|
973
|
+
let T = [
|
|
865
974
|
y,
|
|
866
975
|
x,
|
|
867
976
|
C,
|
|
868
977
|
S,
|
|
869
978
|
b
|
|
870
979
|
];
|
|
871
|
-
t ? t.polygon(
|
|
980
|
+
t ? t.polygon(T, D(s, c, l, {
|
|
872
981
|
fill: s.rough.fillStyle === "solid" ? void 0 : _(w.inkPrimary, .25),
|
|
873
982
|
stroke: w.inkPrimary,
|
|
874
983
|
strokeWidth: Math.max(.9, s.rough.outlineWidth * .85 * c)
|
|
875
|
-
})) : (e.beginPath(),
|
|
984
|
+
})) : (e.beginPath(), T.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n)), e.closePath(), e.strokeStyle = w.inkPrimary, e.lineWidth = Math.max(.9, 1.3 * c), e.stroke()), e.restore();
|
|
876
985
|
}
|
|
877
|
-
function
|
|
986
|
+
function z(e, t, n, r, i, a, o, s, c = 1, u = 1) {
|
|
878
987
|
if (r < 1 || c <= .01) return;
|
|
879
988
|
let d = l(u);
|
|
880
989
|
e.save(), e.translate(t, n), e.rotate(i);
|
|
@@ -892,10 +1001,10 @@ function L(e, t, n, r, i, a, o, s, c = 1, u = 1) {
|
|
|
892
1001
|
}
|
|
893
1002
|
e.restore();
|
|
894
1003
|
}
|
|
895
|
-
function
|
|
1004
|
+
function B(e, t, n, r, i, a, o, s = .92) {
|
|
896
1005
|
e.save(), e.translate(t, n), e.rotate(i), e.scale(1, Math.max(.28, Math.min(1, a))), e.beginPath(), e.moveTo(-r * .5, 0), e.bezierCurveTo(-r * .2, -r * .55, r * .45, -r * .48, r * .6, -r * .12), e.lineTo(r * .42, 0), e.lineTo(r * .6, r * .12), e.bezierCurveTo(r * .45, r * .48, -r * .2, r * .55, -r * .5, 0), e.closePath(), e.fillStyle = _(o, s), e.fill(), e.restore();
|
|
897
1006
|
}
|
|
898
|
-
function
|
|
1007
|
+
function V(e, t, n, r, i, a, o, s, c, u = .9, d = 1) {
|
|
899
1008
|
if (r < 8 || u <= .01) return;
|
|
900
1009
|
let p = l(d);
|
|
901
1010
|
e.save(), e.translate(t, n), e.rotate(i);
|
|
@@ -934,12 +1043,12 @@ function z(e, t, n, r, i, a, o, s, c, u = .9, d = 1) {
|
|
|
934
1043
|
e.beginPath(), S.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n));
|
|
935
1044
|
for (let t = C.length - 1; t >= 0; t--) e.lineTo(C[t][0], C[t][1]);
|
|
936
1045
|
e.closePath(), e.fillStyle = _(c, u * .95), e.fill(), e.save(), e.clip();
|
|
937
|
-
let T = v[Math.floor(v.length * .16)],
|
|
938
|
-
T &&
|
|
1046
|
+
let T = v[Math.floor(v.length * .16)], E = v[Math.floor(v.length * .48)], D = v[Math.floor(v.length * .72)];
|
|
1047
|
+
T && L(e, T.x, T.y + (p() - .5) * w * .25, w * .55, w * .42, .3, s, s, u * .95, d + 11), E && L(e, E.x, E.y - w * .12, w * .62, w * .45, -.2, s, s, u * .9, d + 23), D && L(e, D.x, D.y, w * .42, w * .35, .1, o, o, u * .85, d + 37), e.restore(), e.beginPath(), S.forEach(([t, n], r) => r === 0 ? e.moveTo(t, n) : e.lineTo(t, n));
|
|
939
1048
|
for (let t = C.length - 1; t >= 0; t--) e.lineTo(C[t][0], C[t][1]);
|
|
940
1049
|
e.closePath(), e.strokeStyle = _(o, u * .88), e.lineWidth = Math.max(1.1, r * .018), e.stroke();
|
|
941
1050
|
let k = v.slice(Math.floor(v.length * .26), Math.floor(v.length * .76));
|
|
942
|
-
k.length >= 4 &&
|
|
1051
|
+
k.length >= 4 && O(e, {
|
|
943
1052
|
spine: k.map((e, t, n) => ({
|
|
944
1053
|
...e,
|
|
945
1054
|
t: t / Math.max(1, n.length - 1)
|
|
@@ -958,7 +1067,7 @@ function z(e, t, n, r, i, a, o, s, c, u = .9, d = 1) {
|
|
|
958
1067
|
if (A) for (let t of [-1, 1]) e.beginPath(), e.arc(A.x - r * .03, A.y + t * w * .22, Math.max(1.1, r * .016), 0, Math.PI * 2), e.fillStyle = _(o, u), e.fill(), e.beginPath(), e.moveTo(m * .96, t * w * .1), e.quadraticCurveTo(m * 1.08, t * w * .28, m * 1.02, t * w * .42), e.strokeStyle = _(o, u * .78), e.lineWidth = Math.max(.8, r * .011), e.stroke();
|
|
959
1068
|
e.restore();
|
|
960
1069
|
}
|
|
961
|
-
function
|
|
1070
|
+
function H(e, t, n, r, i, a, o, s, c, u, d, m, h) {
|
|
962
1071
|
if (s <= .02) return;
|
|
963
1072
|
let g = l(h), _ = r - t, v = i - n, y = Math.sin(c * .9 + h) * 5, b = Math.cos(c * .75 + h) * 4, x = f({
|
|
964
1073
|
x: t,
|
|
@@ -973,7 +1082,7 @@ function B(e, t, n, r, i, a, o, s, c, u, d, m, h) {
|
|
|
973
1082
|
x: r + y,
|
|
974
1083
|
y: i + b
|
|
975
1084
|
}, 68, .26, h);
|
|
976
|
-
|
|
1085
|
+
O(e, {
|
|
977
1086
|
spine: x,
|
|
978
1087
|
maxWidth: o,
|
|
979
1088
|
bristleCount: 22,
|
|
@@ -1001,7 +1110,7 @@ function B(e, t, n, r, i, a, o, s, c, u, d, m, h) {
|
|
|
1001
1110
|
x: f,
|
|
1002
1111
|
y: m
|
|
1003
1112
|
}, 40, .22, h + 50 + n * 19);
|
|
1004
|
-
C.push(g),
|
|
1113
|
+
C.push(g), O(e, {
|
|
1005
1114
|
spine: g,
|
|
1006
1115
|
maxWidth: o * .52,
|
|
1007
1116
|
bristleCount: 12,
|
|
@@ -1022,12 +1131,12 @@ function B(e, t, n, r, i, a, o, s, c, u, d, m, h) {
|
|
|
1022
1131
|
let l = Math.min(1, (s - a * .72) * 2.8);
|
|
1023
1132
|
if (l <= .05) continue;
|
|
1024
1133
|
let f = t[Math.min(t.length - 1, Math.floor(a * (t.length - 1)))], p = 1 - a * .55, _ = (g() - .45) * o * 1.1 * p, v = f.x + f.nx * _ + Math.sin(c * 1.3 + i) * 1.5, y = f.y + f.ny * _ + Math.cos(c * 1.1 + i) * 1.5, b = (o * .42 + g() * o * .34) * l;
|
|
1025
|
-
|
|
1134
|
+
z(e, v, y, Math.max(4, b), i * .8 + n + Math.sin(c + i) * .08, d, m, u, .95, h + 200 + n * 50 + i);
|
|
1026
1135
|
}
|
|
1027
1136
|
});
|
|
1028
1137
|
}
|
|
1029
1138
|
// node_modules/.pnpm/roughjs@4.6.6/node_modules/roughjs/bundled/rough.esm.js
|
|
1030
|
-
function
|
|
1139
|
+
function U(e, t, n) {
|
|
1031
1140
|
if (e && e.length) {
|
|
1032
1141
|
let [r, i] = t, a = Math.PI / 180 * n, o = Math.cos(a), s = Math.sin(a);
|
|
1033
1142
|
for (let t of e) {
|
|
@@ -1036,17 +1145,17 @@ function V(e, t, n) {
|
|
|
1036
1145
|
}
|
|
1037
1146
|
}
|
|
1038
1147
|
}
|
|
1039
|
-
function
|
|
1148
|
+
function W(e, t) {
|
|
1040
1149
|
return e[0] === t[0] && e[1] === t[1];
|
|
1041
1150
|
}
|
|
1042
|
-
function
|
|
1151
|
+
function G(e, t, n, r = 1) {
|
|
1043
1152
|
let i = n, a = Math.max(t, .1), o = e[0] && e[0][0] && typeof e[0][0] == "number" ? [e] : e, s = [0, 0];
|
|
1044
|
-
if (i) for (let e of o)
|
|
1153
|
+
if (i) for (let e of o) U(e, s, i);
|
|
1045
1154
|
let c = function(e, t, n) {
|
|
1046
1155
|
let r = [];
|
|
1047
1156
|
for (let t of e) {
|
|
1048
1157
|
let e = [...t];
|
|
1049
|
-
|
|
1158
|
+
W(e[0], e[e.length - 1]) || e.push([e[0][0], e[0][1]]), e.length > 2 && r.push(e);
|
|
1050
1159
|
}
|
|
1051
1160
|
let i = [];
|
|
1052
1161
|
t = Math.max(t, .1);
|
|
@@ -1089,21 +1198,21 @@ function U(e, t, n, r = 1) {
|
|
|
1089
1198
|
return i;
|
|
1090
1199
|
}(o, a, r);
|
|
1091
1200
|
if (i) {
|
|
1092
|
-
for (let e of o)
|
|
1201
|
+
for (let e of o) U(e, s, -i);
|
|
1093
1202
|
(function(e, t, n) {
|
|
1094
1203
|
let r = [];
|
|
1095
|
-
e.forEach(((e) => r.push(...e))),
|
|
1204
|
+
e.forEach(((e) => r.push(...e))), U(r, t, n);
|
|
1096
1205
|
})(c, s, -i);
|
|
1097
1206
|
}
|
|
1098
1207
|
return c;
|
|
1099
1208
|
}
|
|
1100
|
-
function
|
|
1209
|
+
function K(e, t) {
|
|
1101
1210
|
let n = t.hachureAngle + 90, r = t.hachureGap;
|
|
1102
1211
|
r < 0 && (r = 4 * t.strokeWidth), r = Math.round(Math.max(r, .1));
|
|
1103
1212
|
let i = 1;
|
|
1104
|
-
return t.roughness >= 1 && (t.randomizer?.next() || Math.random()) > .7 && (i = r),
|
|
1213
|
+
return t.roughness >= 1 && (t.randomizer?.next() || Math.random()) > .7 && (i = r), G(e, r, n, i || 1);
|
|
1105
1214
|
}
|
|
1106
|
-
var
|
|
1215
|
+
var q = class {
|
|
1107
1216
|
constructor(e) {
|
|
1108
1217
|
this.helper = e;
|
|
1109
1218
|
}
|
|
@@ -1111,7 +1220,7 @@ var G = class {
|
|
|
1111
1220
|
return this._fillPolygons(e, t);
|
|
1112
1221
|
}
|
|
1113
1222
|
_fillPolygons(e, t) {
|
|
1114
|
-
let n =
|
|
1223
|
+
let n = K(e, t);
|
|
1115
1224
|
return {
|
|
1116
1225
|
type: "fillSketch",
|
|
1117
1226
|
ops: this.renderLines(n, t)
|
|
@@ -1123,32 +1232,32 @@ var G = class {
|
|
|
1123
1232
|
return n;
|
|
1124
1233
|
}
|
|
1125
1234
|
};
|
|
1126
|
-
function
|
|
1235
|
+
function J(e) {
|
|
1127
1236
|
let t = e[0], n = e[1];
|
|
1128
1237
|
return Math.sqrt((t[0] - n[0]) ** 2 + (t[1] - n[1]) ** 2);
|
|
1129
1238
|
}
|
|
1130
|
-
var
|
|
1239
|
+
var Y = class extends q {
|
|
1131
1240
|
fillPolygons(e, t) {
|
|
1132
1241
|
let n = t.hachureGap;
|
|
1133
1242
|
n < 0 && (n = 4 * t.strokeWidth), n = Math.max(n, .1);
|
|
1134
|
-
let r =
|
|
1135
|
-
for (let [e, t] of r)
|
|
1243
|
+
let r = K(e, Object.assign({}, t, { hachureGap: n })), i = Math.PI / 180 * t.hachureAngle, a = [], o = .5 * n * Math.cos(i), s = .5 * n * Math.sin(i);
|
|
1244
|
+
for (let [e, t] of r) J([e, t]) && a.push([[e[0] - o, e[1] + s], [...t]], [[e[0] + o, e[1] - s], [...t]]);
|
|
1136
1245
|
return {
|
|
1137
1246
|
type: "fillSketch",
|
|
1138
1247
|
ops: this.renderLines(a, t)
|
|
1139
1248
|
};
|
|
1140
1249
|
}
|
|
1141
|
-
},
|
|
1250
|
+
}, ee = class extends q {
|
|
1142
1251
|
fillPolygons(e, t) {
|
|
1143
1252
|
let n = this._fillPolygons(e, t), r = Object.assign({}, t, { hachureAngle: t.hachureAngle + 90 }), i = this._fillPolygons(e, r);
|
|
1144
1253
|
return n.ops = n.ops.concat(i.ops), n;
|
|
1145
1254
|
}
|
|
1146
|
-
},
|
|
1255
|
+
}, te = class {
|
|
1147
1256
|
constructor(e) {
|
|
1148
1257
|
this.helper = e;
|
|
1149
1258
|
}
|
|
1150
1259
|
fillPolygons(e, t) {
|
|
1151
|
-
let n =
|
|
1260
|
+
let n = K(e, t = Object.assign({}, t, { hachureAngle: 0 }));
|
|
1152
1261
|
return this.dotsOnLines(n, t);
|
|
1153
1262
|
}
|
|
1154
1263
|
dotsOnLines(e, t) {
|
|
@@ -1158,7 +1267,7 @@ var q = class extends G {
|
|
|
1158
1267
|
i < 0 && (i = t.strokeWidth / 2);
|
|
1159
1268
|
let a = r / 4;
|
|
1160
1269
|
for (let o of e) {
|
|
1161
|
-
let e =
|
|
1270
|
+
let e = J(o), s = e / r, c = Math.ceil(s) - 1, l = e - c * r, u = (o[0][0] + o[1][0]) / 2 - r / 4, d = Math.min(o[0][1], o[1][1]);
|
|
1162
1271
|
for (let e = 0; e < c; e++) {
|
|
1163
1272
|
let o = d + l + e * r, s = u - a + 2 * Math.random() * a, c = o - a + 2 * Math.random() * a, f = this.helper.ellipse(s, c, i, i, t);
|
|
1164
1273
|
n.push(...f.ops);
|
|
@@ -1169,12 +1278,12 @@ var q = class extends G {
|
|
|
1169
1278
|
ops: n
|
|
1170
1279
|
};
|
|
1171
1280
|
}
|
|
1172
|
-
},
|
|
1281
|
+
}, ne = class {
|
|
1173
1282
|
constructor(e) {
|
|
1174
1283
|
this.helper = e;
|
|
1175
1284
|
}
|
|
1176
1285
|
fillPolygons(e, t) {
|
|
1177
|
-
let n =
|
|
1286
|
+
let n = K(e, t);
|
|
1178
1287
|
return {
|
|
1179
1288
|
type: "fillSketch",
|
|
1180
1289
|
ops: this.dashedLine(n, t)
|
|
@@ -1183,7 +1292,7 @@ var q = class extends G {
|
|
|
1183
1292
|
dashedLine(e, t) {
|
|
1184
1293
|
let n = t.dashOffset < 0 ? t.hachureGap < 0 ? 4 * t.strokeWidth : t.hachureGap : t.dashOffset, r = t.dashGap < 0 ? t.hachureGap < 0 ? 4 * t.strokeWidth : t.hachureGap : t.dashGap, i = [];
|
|
1185
1294
|
return e.forEach(((e) => {
|
|
1186
|
-
let a =
|
|
1295
|
+
let a = J(e), o = Math.floor(a / (n + r)), s = (a + r - o * (n + r)) / 2, c = e[0], l = e[1];
|
|
1187
1296
|
c[0] > l[0] && (c = e[1], l = e[0]);
|
|
1188
1297
|
let u = Math.atan((l[1] - c[1]) / (l[0] - c[0]));
|
|
1189
1298
|
for (let e = 0; e < o; e++) {
|
|
@@ -1192,12 +1301,12 @@ var q = class extends G {
|
|
|
1192
1301
|
}
|
|
1193
1302
|
})), i;
|
|
1194
1303
|
}
|
|
1195
|
-
},
|
|
1304
|
+
}, re = class {
|
|
1196
1305
|
constructor(e) {
|
|
1197
1306
|
this.helper = e;
|
|
1198
1307
|
}
|
|
1199
1308
|
fillPolygons(e, t) {
|
|
1200
|
-
let n = t.hachureGap < 0 ? 4 * t.strokeWidth : t.hachureGap, r = t.zigzagOffset < 0 ? n : t.zigzagOffset, i =
|
|
1309
|
+
let n = t.hachureGap < 0 ? 4 * t.strokeWidth : t.hachureGap, r = t.zigzagOffset < 0 ? n : t.zigzagOffset, i = K(e, t = Object.assign({}, t, { hachureGap: n + r }));
|
|
1201
1310
|
return {
|
|
1202
1311
|
type: "fillSketch",
|
|
1203
1312
|
ops: this.zigzagLines(i, r, t)
|
|
@@ -1206,7 +1315,7 @@ var q = class extends G {
|
|
|
1206
1315
|
zigzagLines(e, t, n) {
|
|
1207
1316
|
let r = [];
|
|
1208
1317
|
return e.forEach(((e) => {
|
|
1209
|
-
let i =
|
|
1318
|
+
let i = J(e), a = Math.round(i / (2 * t)), o = e[0], s = e[1];
|
|
1210
1319
|
o[0] > s[0] && (o = e[1], s = e[0]);
|
|
1211
1320
|
let c = Math.atan((s[1] - o[1]) / (s[0] - o[0]));
|
|
1212
1321
|
for (let e = 0; e < a; e++) {
|
|
@@ -1215,14 +1324,14 @@ var q = class extends G {
|
|
|
1215
1324
|
}
|
|
1216
1325
|
})), r;
|
|
1217
1326
|
}
|
|
1218
|
-
}, X = {},
|
|
1327
|
+
}, X = {}, ie = class {
|
|
1219
1328
|
constructor(e) {
|
|
1220
1329
|
this.seed = e;
|
|
1221
1330
|
}
|
|
1222
1331
|
next() {
|
|
1223
1332
|
return this.seed ? (2 ** 31 - 1 & (this.seed = Math.imul(48271, this.seed))) / 2 ** 31 : Math.random();
|
|
1224
1333
|
}
|
|
1225
|
-
},
|
|
1334
|
+
}, ae = 0, oe = 1, se = 2, ce = {
|
|
1226
1335
|
A: 7,
|
|
1227
1336
|
a: 7,
|
|
1228
1337
|
C: 6,
|
|
@@ -1244,42 +1353,42 @@ var q = class extends G {
|
|
|
1244
1353
|
Z: 0,
|
|
1245
1354
|
z: 0
|
|
1246
1355
|
};
|
|
1247
|
-
function
|
|
1356
|
+
function le(e, t) {
|
|
1248
1357
|
return e.type === t;
|
|
1249
1358
|
}
|
|
1250
|
-
function
|
|
1359
|
+
function ue(e) {
|
|
1251
1360
|
let t = [], n = function(e) {
|
|
1252
1361
|
let t = [];
|
|
1253
1362
|
for (; e !== "";) if (e.match(/^([ \t\r\n,]+)/)) e = e.substr(RegExp.$1.length);
|
|
1254
1363
|
else if (e.match(/^([aAcChHlLmMqQsStTvVzZ])/)) t[t.length] = {
|
|
1255
|
-
type:
|
|
1364
|
+
type: ae,
|
|
1256
1365
|
text: RegExp.$1
|
|
1257
1366
|
}, e = e.substr(RegExp.$1.length);
|
|
1258
1367
|
else {
|
|
1259
1368
|
if (!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) return [];
|
|
1260
1369
|
t[t.length] = {
|
|
1261
|
-
type:
|
|
1370
|
+
type: oe,
|
|
1262
1371
|
text: `${parseFloat(RegExp.$1)}`
|
|
1263
1372
|
}, e = e.substr(RegExp.$1.length);
|
|
1264
1373
|
}
|
|
1265
1374
|
return t[t.length] = {
|
|
1266
|
-
type:
|
|
1375
|
+
type: se,
|
|
1267
1376
|
text: ""
|
|
1268
1377
|
}, t;
|
|
1269
1378
|
}(e), r = "BOD", i = 0, a = n[i];
|
|
1270
|
-
for (; !
|
|
1379
|
+
for (; !le(a, se);) {
|
|
1271
1380
|
let o = 0, s = [];
|
|
1272
1381
|
if (r === "BOD") {
|
|
1273
|
-
if (a.text !== "M" && a.text !== "m") return
|
|
1274
|
-
i++, o =
|
|
1275
|
-
} else
|
|
1382
|
+
if (a.text !== "M" && a.text !== "m") return ue("M0,0" + e);
|
|
1383
|
+
i++, o = ce[a.text], r = a.text;
|
|
1384
|
+
} else le(a, oe) ? o = ce[r] : (i++, o = ce[a.text], r = a.text);
|
|
1276
1385
|
if (!(i + o < n.length)) throw Error("Path data ended short");
|
|
1277
1386
|
for (let e = i; e < i + o; e++) {
|
|
1278
1387
|
let t = n[e];
|
|
1279
|
-
if (!
|
|
1388
|
+
if (!le(t, oe)) throw Error("Param not a number: " + r + "," + t.text);
|
|
1280
1389
|
s[s.length] = +t.text;
|
|
1281
1390
|
}
|
|
1282
|
-
if (typeof
|
|
1391
|
+
if (typeof ce[r] != "number") throw Error("Bad segment: " + r);
|
|
1283
1392
|
{
|
|
1284
1393
|
let e = {
|
|
1285
1394
|
key: r,
|
|
@@ -1290,7 +1399,7 @@ function ce(e) {
|
|
|
1290
1399
|
}
|
|
1291
1400
|
return t;
|
|
1292
1401
|
}
|
|
1293
|
-
function
|
|
1402
|
+
function de(e) {
|
|
1294
1403
|
let t = 0, n = 0, r = 0, i = 0, a = [];
|
|
1295
1404
|
for (let { key: o, data: s } of e) switch (o) {
|
|
1296
1405
|
case "M":
|
|
@@ -1423,7 +1532,7 @@ function le(e) {
|
|
|
1423
1532
|
}
|
|
1424
1533
|
return a;
|
|
1425
1534
|
}
|
|
1426
|
-
function
|
|
1535
|
+
function fe(e) {
|
|
1427
1536
|
let t = [], n = "", r = 0, i = 0, a = 0, o = 0, s = 0, c = 0;
|
|
1428
1537
|
for (let { key: l, data: u } of e) {
|
|
1429
1538
|
switch (l) {
|
|
@@ -1513,7 +1622,7 @@ function ue(e) {
|
|
|
1513
1622
|
c,
|
|
1514
1623
|
l
|
|
1515
1624
|
]
|
|
1516
|
-
}), r = c, i = l) : (r !== c || i !== l) && (
|
|
1625
|
+
}), r = c, i = l) : (r !== c || i !== l) && (me(r, i, c, l, e, n, a, o, s).forEach((function(e) {
|
|
1517
1626
|
t.push({
|
|
1518
1627
|
key: "C",
|
|
1519
1628
|
data: e
|
|
@@ -1530,16 +1639,16 @@ function ue(e) {
|
|
|
1530
1639
|
}
|
|
1531
1640
|
return t;
|
|
1532
1641
|
}
|
|
1533
|
-
function
|
|
1642
|
+
function pe(e, t, n) {
|
|
1534
1643
|
return [e * Math.cos(n) - t * Math.sin(n), e * Math.sin(n) + t * Math.cos(n)];
|
|
1535
1644
|
}
|
|
1536
|
-
function
|
|
1645
|
+
function me(e, t, n, r, i, a, o, s, c, l) {
|
|
1537
1646
|
let u = (d = o, Math.PI * d / 180);
|
|
1538
1647
|
var d;
|
|
1539
1648
|
let f = [], p = 0, m = 0, h = 0, g = 0;
|
|
1540
1649
|
if (l) [p, m, h, g] = l;
|
|
1541
1650
|
else {
|
|
1542
|
-
[e, t] =
|
|
1651
|
+
[e, t] = pe(e, t, -u), [n, r] = pe(n, r, -u);
|
|
1543
1652
|
let o = (e - n) / 2, l = (t - r) / 2, d = o * o / (i * i) + l * l / (a * a);
|
|
1544
1653
|
d > 1 && (d = Math.sqrt(d), i *= d, a *= d);
|
|
1545
1654
|
let f = i * i, _ = a * a, v = f * _ - f * l * l - _ * o * o, y = f * l * l + _ * o * o, b = (s === c ? -1 : 1) * Math.sqrt(Math.abs(v / y));
|
|
@@ -1548,7 +1657,7 @@ function fe(e, t, n, r, i, a, o, s, c, l) {
|
|
|
1548
1657
|
let _ = m - p;
|
|
1549
1658
|
if (Math.abs(_) > 120 * Math.PI / 180) {
|
|
1550
1659
|
let e = m, t = n, s = r;
|
|
1551
|
-
m = c && m > p ? p + 120 * Math.PI / 180 * 1 : p + 120 * Math.PI / 180 * -1, f =
|
|
1660
|
+
m = c && m > p ? p + 120 * Math.PI / 180 * 1 : p + 120 * Math.PI / 180 * -1, f = me(n = h + i * Math.cos(m), r = g + a * Math.sin(m), t, s, i, a, o, 0, c, [
|
|
1552
1661
|
m,
|
|
1553
1662
|
e,
|
|
1554
1663
|
h,
|
|
@@ -1570,7 +1679,7 @@ function fe(e, t, n, r, i, a, o, s, c, l) {
|
|
|
1570
1679
|
].concat(f);
|
|
1571
1680
|
let e = [];
|
|
1572
1681
|
for (let t = 0; t < f.length; t += 3) {
|
|
1573
|
-
let n =
|
|
1682
|
+
let n = pe(f[t][0], f[t][1], u), r = pe(f[t + 1][0], f[t + 1][1], u), i = pe(f[t + 2][0], f[t + 2][1], u);
|
|
1574
1683
|
e.push([
|
|
1575
1684
|
n[0],
|
|
1576
1685
|
n[1],
|
|
@@ -1583,27 +1692,27 @@ function fe(e, t, n, r, i, a, o, s, c, l) {
|
|
|
1583
1692
|
return e;
|
|
1584
1693
|
}
|
|
1585
1694
|
}
|
|
1586
|
-
var
|
|
1695
|
+
var he = {
|
|
1587
1696
|
randOffset: function(e, t) {
|
|
1588
1697
|
return Z(e, t);
|
|
1589
1698
|
},
|
|
1590
1699
|
randOffsetWithRange: function(e, t, n) {
|
|
1591
|
-
return
|
|
1700
|
+
return Oe(e, t, n);
|
|
1592
1701
|
},
|
|
1593
1702
|
ellipse: function(e, t, n, r, i) {
|
|
1594
|
-
return
|
|
1703
|
+
return xe(e, t, i, be(n, r, i)).opset;
|
|
1595
1704
|
},
|
|
1596
1705
|
doubleLineOps: function(e, t, n, r, i) {
|
|
1597
1706
|
return Q(e, t, n, r, i, !0);
|
|
1598
1707
|
}
|
|
1599
1708
|
};
|
|
1600
|
-
function
|
|
1709
|
+
function ge(e, t, n, r, i) {
|
|
1601
1710
|
return {
|
|
1602
1711
|
type: "path",
|
|
1603
1712
|
ops: Q(e, t, n, r, i)
|
|
1604
1713
|
};
|
|
1605
1714
|
}
|
|
1606
|
-
function
|
|
1715
|
+
function _e(e, t, n) {
|
|
1607
1716
|
let r = (e || []).length;
|
|
1608
1717
|
if (r > 2) {
|
|
1609
1718
|
let i = [];
|
|
@@ -1613,14 +1722,14 @@ function he(e, t, n) {
|
|
|
1613
1722
|
ops: i
|
|
1614
1723
|
};
|
|
1615
1724
|
}
|
|
1616
|
-
return r === 2 ?
|
|
1725
|
+
return r === 2 ? ge(e[0][0], e[0][1], e[1][0], e[1][1], n) : {
|
|
1617
1726
|
type: "path",
|
|
1618
1727
|
ops: []
|
|
1619
1728
|
};
|
|
1620
1729
|
}
|
|
1621
|
-
function
|
|
1730
|
+
function ve(e, t, n, r, i) {
|
|
1622
1731
|
return function(e, t) {
|
|
1623
|
-
return
|
|
1732
|
+
return _e(e, !0, t);
|
|
1624
1733
|
}([
|
|
1625
1734
|
[e, t],
|
|
1626
1735
|
[e + n, t],
|
|
@@ -1628,13 +1737,13 @@ function ge(e, t, n, r, i) {
|
|
|
1628
1737
|
[e, t + r]
|
|
1629
1738
|
], i);
|
|
1630
1739
|
}
|
|
1631
|
-
function
|
|
1740
|
+
function ye(e, t) {
|
|
1632
1741
|
if (e.length) {
|
|
1633
|
-
let n = typeof e[0][0] == "number" ? [e] : e, r =
|
|
1742
|
+
let n = typeof e[0][0] == "number" ? [e] : e, r = Ae(n[0], 1 * (1 + .2 * t.roughness), t), i = t.disableMultiStroke ? [] : Ae(n[0], 1.5 * (1 + .22 * t.roughness), Ee(t));
|
|
1634
1743
|
for (let e = 1; e < n.length; e++) {
|
|
1635
1744
|
let a = n[e];
|
|
1636
1745
|
if (a.length) {
|
|
1637
|
-
let e =
|
|
1746
|
+
let e = Ae(a, 1 * (1 + .2 * t.roughness), t), n = t.disableMultiStroke ? [] : Ae(a, 1.5 * (1 + .22 * t.roughness), Ee(t));
|
|
1638
1747
|
for (let t of e) t.op !== "move" && r.push(t);
|
|
1639
1748
|
for (let e of n) e.op !== "move" && i.push(e);
|
|
1640
1749
|
}
|
|
@@ -1649,7 +1758,7 @@ function _e(e, t) {
|
|
|
1649
1758
|
ops: []
|
|
1650
1759
|
};
|
|
1651
1760
|
}
|
|
1652
|
-
function
|
|
1761
|
+
function be(e, t, n) {
|
|
1653
1762
|
let r = Math.sqrt(2 * Math.PI * Math.sqrt(((e / 2) ** 2 + (t / 2) ** 2) / 2)), i = Math.ceil(Math.max(n.curveStepCount, n.curveStepCount / Math.sqrt(200) * r)), a = 2 * Math.PI / i, o = Math.abs(e / 2), s = Math.abs(t / 2), c = 1 - n.curveFitting;
|
|
1654
1763
|
return o += Z(o * c, n), s += Z(s * c, n), {
|
|
1655
1764
|
increment: a,
|
|
@@ -1657,10 +1766,10 @@ function ve(e, t, n) {
|
|
|
1657
1766
|
ry: s
|
|
1658
1767
|
};
|
|
1659
1768
|
}
|
|
1660
|
-
function
|
|
1661
|
-
let [i, a] =
|
|
1769
|
+
function xe(e, t, n, r) {
|
|
1770
|
+
let [i, a] = Me(r.increment, e, t, r.rx, r.ry, 1, r.increment * Oe(.1, Oe(.4, 1, n), n), n), o = je(i, null, n);
|
|
1662
1771
|
if (!n.disableMultiStroke && n.roughness !== 0) {
|
|
1663
|
-
let [i] =
|
|
1772
|
+
let [i] = Me(r.increment, e, t, r.rx, r.ry, 1.5, 0, n), a = je(i, null, n);
|
|
1664
1773
|
o = o.concat(a);
|
|
1665
1774
|
}
|
|
1666
1775
|
return {
|
|
@@ -1671,15 +1780,15 @@ function ye(e, t, n, r) {
|
|
|
1671
1780
|
}
|
|
1672
1781
|
};
|
|
1673
1782
|
}
|
|
1674
|
-
function
|
|
1783
|
+
function Se(e, t, n, r, i, a, o, s, c) {
|
|
1675
1784
|
let l = e, u = t, d = Math.abs(n / 2), f = Math.abs(r / 2);
|
|
1676
1785
|
d += Z(.01 * d, c), f += Z(.01 * f, c);
|
|
1677
1786
|
let p = i, m = a;
|
|
1678
1787
|
for (; p < 0;) p += 2 * Math.PI, m += 2 * Math.PI;
|
|
1679
1788
|
m - p > 2 * Math.PI && (p = 0, m = 2 * Math.PI);
|
|
1680
|
-
let h = 2 * Math.PI / c.curveStepCount, g = Math.min(h / 2, (m - p) / 2), _ =
|
|
1789
|
+
let h = 2 * Math.PI / c.curveStepCount, g = Math.min(h / 2, (m - p) / 2), _ = Ne(g, l, u, d, f, p, m, 1, c);
|
|
1681
1790
|
if (!c.disableMultiStroke) {
|
|
1682
|
-
let e =
|
|
1791
|
+
let e = Ne(g, l, u, d, f, p, m, 1.5, c);
|
|
1683
1792
|
_.push(...e);
|
|
1684
1793
|
}
|
|
1685
1794
|
return o && (s ? _.push(...Q(l, u, l + d * Math.cos(p), u + f * Math.sin(p), c), ...Q(l, u, l + d * Math.cos(m), u + f * Math.sin(m), c)) : _.push({
|
|
@@ -1693,8 +1802,8 @@ function be(e, t, n, r, i, a, o, s, c) {
|
|
|
1693
1802
|
ops: _
|
|
1694
1803
|
};
|
|
1695
1804
|
}
|
|
1696
|
-
function
|
|
1697
|
-
let n =
|
|
1805
|
+
function Ce(e, t) {
|
|
1806
|
+
let n = fe(de(ue(e))), r = [], i = [0, 0], a = [0, 0];
|
|
1698
1807
|
for (let { key: e, data: o } of n) switch (e) {
|
|
1699
1808
|
case "M":
|
|
1700
1809
|
a = [o[0], o[1]], i = [o[0], o[1]];
|
|
@@ -1704,7 +1813,7 @@ function xe(e, t) {
|
|
|
1704
1813
|
break;
|
|
1705
1814
|
case "C": {
|
|
1706
1815
|
let [e, n, i, s, c, l] = o;
|
|
1707
|
-
r.push(...
|
|
1816
|
+
r.push(...Pe(e, n, i, s, c, l, a, t)), a = [c, l];
|
|
1708
1817
|
break;
|
|
1709
1818
|
}
|
|
1710
1819
|
case "Z": r.push(...Q(a[0], a[1], i[0], i[1], t)), a = [i[0], i[1]];
|
|
@@ -1714,7 +1823,7 @@ function xe(e, t) {
|
|
|
1714
1823
|
ops: r
|
|
1715
1824
|
};
|
|
1716
1825
|
}
|
|
1717
|
-
function
|
|
1826
|
+
function we(e, t) {
|
|
1718
1827
|
let n = [];
|
|
1719
1828
|
for (let r of e) if (r.length) {
|
|
1720
1829
|
let e = t.maxRandomnessOffset || 0, i = r.length;
|
|
@@ -1734,55 +1843,55 @@ function Se(e, t) {
|
|
|
1734
1843
|
ops: n
|
|
1735
1844
|
};
|
|
1736
1845
|
}
|
|
1737
|
-
function
|
|
1846
|
+
function Te(e, t) {
|
|
1738
1847
|
return function(e, t) {
|
|
1739
1848
|
let n = e.fillStyle || "hachure";
|
|
1740
1849
|
if (!X[n]) switch (n) {
|
|
1741
1850
|
case "zigzag":
|
|
1742
|
-
X[n] || (X[n] = new
|
|
1851
|
+
X[n] || (X[n] = new Y(t));
|
|
1743
1852
|
break;
|
|
1744
1853
|
case "cross-hatch":
|
|
1745
|
-
X[n] || (X[n] = new
|
|
1854
|
+
X[n] || (X[n] = new ee(t));
|
|
1746
1855
|
break;
|
|
1747
1856
|
case "dots":
|
|
1748
|
-
X[n] || (X[n] = new
|
|
1857
|
+
X[n] || (X[n] = new te(t));
|
|
1749
1858
|
break;
|
|
1750
1859
|
case "dashed":
|
|
1751
|
-
X[n] || (X[n] = new
|
|
1860
|
+
X[n] || (X[n] = new ne(t));
|
|
1752
1861
|
break;
|
|
1753
1862
|
case "zigzag-line":
|
|
1754
|
-
X[n] || (X[n] = new
|
|
1863
|
+
X[n] || (X[n] = new re(t));
|
|
1755
1864
|
break;
|
|
1756
|
-
default: n = "hachure", X[n] || (X[n] = new
|
|
1865
|
+
default: n = "hachure", X[n] || (X[n] = new q(t));
|
|
1757
1866
|
}
|
|
1758
1867
|
return X[n];
|
|
1759
|
-
}(t,
|
|
1868
|
+
}(t, he).fillPolygons(e, t);
|
|
1760
1869
|
}
|
|
1761
|
-
function
|
|
1870
|
+
function Ee(e) {
|
|
1762
1871
|
let t = Object.assign({}, e);
|
|
1763
1872
|
return t.randomizer = void 0, e.seed && (t.seed = e.seed + 1), t;
|
|
1764
1873
|
}
|
|
1765
|
-
function
|
|
1766
|
-
return e.randomizer ||= new
|
|
1874
|
+
function De(e) {
|
|
1875
|
+
return e.randomizer ||= new ie(e.seed || 0), e.randomizer.next();
|
|
1767
1876
|
}
|
|
1768
|
-
function
|
|
1769
|
-
return n.roughness * r * (
|
|
1877
|
+
function Oe(e, t, n, r = 1) {
|
|
1878
|
+
return n.roughness * r * (De(n) * (t - e) + e);
|
|
1770
1879
|
}
|
|
1771
1880
|
function Z(e, t, n = 1) {
|
|
1772
|
-
return
|
|
1881
|
+
return Oe(-e, e, t, n);
|
|
1773
1882
|
}
|
|
1774
1883
|
function Q(e, t, n, r, i, a = !1) {
|
|
1775
|
-
let o = a ? i.disableMultiStrokeFill : i.disableMultiStroke, s =
|
|
1884
|
+
let o = a ? i.disableMultiStrokeFill : i.disableMultiStroke, s = ke(e, t, n, r, i, !0, !1);
|
|
1776
1885
|
if (o) return s;
|
|
1777
|
-
let c =
|
|
1886
|
+
let c = ke(e, t, n, r, i, !0, !0);
|
|
1778
1887
|
return s.concat(c);
|
|
1779
1888
|
}
|
|
1780
|
-
function
|
|
1889
|
+
function ke(e, t, n, r, i, a, o) {
|
|
1781
1890
|
let s = (e - n) ** 2 + (t - r) ** 2, c = Math.sqrt(s), l = 1;
|
|
1782
1891
|
l = c < 200 ? 1 : c > 500 ? .4 : -.0016668 * c + 1.233334;
|
|
1783
1892
|
let u = i.maxRandomnessOffset || 0;
|
|
1784
1893
|
u * u * 100 > s && (u = c / 10);
|
|
1785
|
-
let d = u / 2, f = .2 + .2 *
|
|
1894
|
+
let d = u / 2, f = .2 + .2 * De(i), p = i.bowing * i.maxRandomnessOffset * (r - t) / 200, m = i.bowing * i.maxRandomnessOffset * (e - n) / 200;
|
|
1786
1895
|
p = Z(p, i, l), m = Z(m, i, l);
|
|
1787
1896
|
let h = [], g = () => Z(d, i, l), _ = () => Z(u, i, l), v = i.preserveVertices;
|
|
1788
1897
|
return a && (o ? h.push({
|
|
@@ -1813,14 +1922,14 @@ function De(e, t, n, r, i, a, o) {
|
|
|
1813
1922
|
]
|
|
1814
1923
|
}), h;
|
|
1815
1924
|
}
|
|
1816
|
-
function
|
|
1925
|
+
function Ae(e, t, n) {
|
|
1817
1926
|
if (!e.length) return [];
|
|
1818
1927
|
let r = [];
|
|
1819
1928
|
r.push([e[0][0] + Z(t, n), e[0][1] + Z(t, n)]), r.push([e[0][0] + Z(t, n), e[0][1] + Z(t, n)]);
|
|
1820
1929
|
for (let i = 1; i < e.length; i++) r.push([e[i][0] + Z(t, n), e[i][1] + Z(t, n)]), i === e.length - 1 && r.push([e[i][0] + Z(t, n), e[i][1] + Z(t, n)]);
|
|
1821
|
-
return
|
|
1930
|
+
return je(r, null, n);
|
|
1822
1931
|
}
|
|
1823
|
-
function
|
|
1932
|
+
function je(e, t, n) {
|
|
1824
1933
|
let r = e.length, i = [];
|
|
1825
1934
|
if (r > 3) {
|
|
1826
1935
|
let a = [], o = 1 - n.curveTightness;
|
|
@@ -1862,10 +1971,10 @@ function ke(e, t, n) {
|
|
|
1862
1971
|
e[2][0],
|
|
1863
1972
|
e[2][1]
|
|
1864
1973
|
]
|
|
1865
|
-
})) : r === 2 && i.push(...
|
|
1974
|
+
})) : r === 2 && i.push(...ke(e[0][0], e[0][1], e[1][0], e[1][1], n, !0, !0));
|
|
1866
1975
|
return i;
|
|
1867
1976
|
}
|
|
1868
|
-
function
|
|
1977
|
+
function Me(e, t, n, r, i, a, o, s) {
|
|
1869
1978
|
let c = [], l = [];
|
|
1870
1979
|
if (s.roughness === 0) {
|
|
1871
1980
|
e /= 4, l.push([t + r * Math.cos(-e), n + i * Math.sin(-e)]);
|
|
@@ -1886,13 +1995,13 @@ function Ae(e, t, n, r, i, a, o, s) {
|
|
|
1886
1995
|
}
|
|
1887
1996
|
return [l, c];
|
|
1888
1997
|
}
|
|
1889
|
-
function
|
|
1998
|
+
function Ne(e, t, n, r, i, a, o, s, c) {
|
|
1890
1999
|
let l = a + Z(.1, c), u = [];
|
|
1891
2000
|
u.push([Z(s, c) + t + .9 * r * Math.cos(l - e), Z(s, c) + n + .9 * i * Math.sin(l - e)]);
|
|
1892
2001
|
for (let a = l; a <= o; a += e) u.push([Z(s, c) + t + r * Math.cos(a), Z(s, c) + n + i * Math.sin(a)]);
|
|
1893
|
-
return u.push([t + r * Math.cos(o), n + i * Math.sin(o)]), u.push([t + r * Math.cos(o), n + i * Math.sin(o)]),
|
|
2002
|
+
return u.push([t + r * Math.cos(o), n + i * Math.sin(o)]), u.push([t + r * Math.cos(o), n + i * Math.sin(o)]), je(u, null, c);
|
|
1894
2003
|
}
|
|
1895
|
-
function
|
|
2004
|
+
function Pe(e, t, n, r, i, a, o, s) {
|
|
1896
2005
|
let c = [], l = [s.maxRandomnessOffset || 1, (s.maxRandomnessOffset || 1) + .3], u = [0, 0], d = s.disableMultiStroke ? 1 : 2, f = s.preserveVertices;
|
|
1897
2006
|
for (let p = 0; p < d; p++) p === 0 ? c.push({
|
|
1898
2007
|
op: "move",
|
|
@@ -1913,20 +2022,20 @@ function Me(e, t, n, r, i, a, o, s) {
|
|
|
1913
2022
|
});
|
|
1914
2023
|
return c;
|
|
1915
2024
|
}
|
|
1916
|
-
function
|
|
2025
|
+
function Fe(e) {
|
|
1917
2026
|
return [...e];
|
|
1918
2027
|
}
|
|
1919
|
-
function
|
|
2028
|
+
function Ie(e, t = 0) {
|
|
1920
2029
|
let n = e.length;
|
|
1921
2030
|
if (n < 3) throw Error("A curve must have at least three points.");
|
|
1922
2031
|
let r = [];
|
|
1923
|
-
if (n === 3) r.push(
|
|
2032
|
+
if (n === 3) r.push(Fe(e[0]), Fe(e[1]), Fe(e[2]), Fe(e[2]));
|
|
1924
2033
|
else {
|
|
1925
2034
|
let n = [];
|
|
1926
2035
|
n.push(e[0], e[0]);
|
|
1927
2036
|
for (let t = 1; t < e.length; t++) n.push(e[t]), t === e.length - 1 && n.push(e[t]);
|
|
1928
2037
|
let i = [], a = 1 - t;
|
|
1929
|
-
r.push(
|
|
2038
|
+
r.push(Fe(n[0]));
|
|
1930
2039
|
for (let e = 1; e + 2 < n.length; e++) {
|
|
1931
2040
|
let t = n[e];
|
|
1932
2041
|
i[0] = [t[0], t[1]], i[1] = [t[0] + (a * n[e + 1][0] - a * n[e - 1][0]) / 6, t[1] + (a * n[e + 1][1] - a * n[e - 1][1]) / 6], i[2] = [n[e + 1][0] + (a * n[e][0] - a * n[e + 2][0]) / 6, n[e + 1][1] + (a * n[e][1] - a * n[e + 2][1]) / 6], i[3] = [n[e + 1][0], n[e + 1][1]], r.push(i[1], i[2], i[3]);
|
|
@@ -1934,19 +2043,19 @@ function Pe(e, t = 0) {
|
|
|
1934
2043
|
}
|
|
1935
2044
|
return r;
|
|
1936
2045
|
}
|
|
1937
|
-
function
|
|
2046
|
+
function Le(e, t) {
|
|
1938
2047
|
return (e[0] - t[0]) ** 2 + (e[1] - t[1]) ** 2;
|
|
1939
2048
|
}
|
|
1940
|
-
function
|
|
1941
|
-
let r =
|
|
1942
|
-
if (r === 0) return
|
|
2049
|
+
function Re(e, t, n) {
|
|
2050
|
+
let r = Le(t, n);
|
|
2051
|
+
if (r === 0) return Le(e, t);
|
|
1943
2052
|
let i = ((e[0] - t[0]) * (n[0] - t[0]) + (e[1] - t[1]) * (n[1] - t[1])) / r;
|
|
1944
|
-
return i = Math.max(0, Math.min(1, i)),
|
|
2053
|
+
return i = Math.max(0, Math.min(1, i)), Le(e, ze(t, n, i));
|
|
1945
2054
|
}
|
|
1946
|
-
function
|
|
2055
|
+
function ze(e, t, n) {
|
|
1947
2056
|
return [e[0] + (t[0] - e[0]) * n, e[1] + (t[1] - e[1]) * n];
|
|
1948
2057
|
}
|
|
1949
|
-
function
|
|
2058
|
+
function Be(e, t, n, r) {
|
|
1950
2059
|
let i = r || [];
|
|
1951
2060
|
if (function(e, t) {
|
|
1952
2061
|
let n = e[t + 0], r = e[t + 1], i = e[t + 2], a = e[t + 3], o = 3 * r[0] - 2 * n[0] - a[0];
|
|
@@ -1959,15 +2068,15 @@ function Re(e, t, n, r) {
|
|
|
1959
2068
|
return l *= l, o < c && (o = c), s < l && (s = l), o + s;
|
|
1960
2069
|
}(e, t) < n) {
|
|
1961
2070
|
let n = e[t + 0];
|
|
1962
|
-
i.length ? (a = i[i.length - 1], o = n, Math.sqrt(
|
|
2071
|
+
i.length ? (a = i[i.length - 1], o = n, Math.sqrt(Le(a, o)) > 1 && i.push(n)) : i.push(n), i.push(e[t + 3]);
|
|
1963
2072
|
} else {
|
|
1964
|
-
let r = .5, a = e[t + 0], o = e[t + 1], s = e[t + 2], c = e[t + 3], l =
|
|
1965
|
-
|
|
2073
|
+
let r = .5, a = e[t + 0], o = e[t + 1], s = e[t + 2], c = e[t + 3], l = ze(a, o, r), u = ze(o, s, r), d = ze(s, c, r), f = ze(l, u, r), p = ze(u, d, r), m = ze(f, p, r);
|
|
2074
|
+
Be([
|
|
1966
2075
|
a,
|
|
1967
2076
|
l,
|
|
1968
2077
|
f,
|
|
1969
2078
|
m
|
|
1970
|
-
], 0, n, i),
|
|
2079
|
+
], 0, n, i), Be([
|
|
1971
2080
|
m,
|
|
1972
2081
|
p,
|
|
1973
2082
|
d,
|
|
@@ -1977,23 +2086,23 @@ function Re(e, t, n, r) {
|
|
|
1977
2086
|
var a, o;
|
|
1978
2087
|
return i;
|
|
1979
2088
|
}
|
|
1980
|
-
function
|
|
1981
|
-
return
|
|
2089
|
+
function Ve(e, t) {
|
|
2090
|
+
return He(e, 0, e.length, t);
|
|
1982
2091
|
}
|
|
1983
|
-
function
|
|
2092
|
+
function He(e, t, n, r, i) {
|
|
1984
2093
|
let a = i || [], o = e[t], s = e[n - 1], c = 0, l = 1;
|
|
1985
2094
|
for (let r = t + 1; r < n - 1; ++r) {
|
|
1986
|
-
let t =
|
|
2095
|
+
let t = Re(e[r], o, s);
|
|
1987
2096
|
t > c && (c = t, l = r);
|
|
1988
2097
|
}
|
|
1989
|
-
return Math.sqrt(c) > r ? (
|
|
2098
|
+
return Math.sqrt(c) > r ? (He(e, t, l + 1, r, a), He(e, l, n, r, a)) : (a.length || a.push(o), a.push(s)), a;
|
|
1990
2099
|
}
|
|
1991
|
-
function
|
|
2100
|
+
function Ue(e, t = .15, n) {
|
|
1992
2101
|
let r = [], i = (e.length - 1) / 3;
|
|
1993
|
-
for (let n = 0; n < i; n++)
|
|
1994
|
-
return n && n > 0 ?
|
|
2102
|
+
for (let n = 0; n < i; n++) Be(e, 3 * n, t, r);
|
|
2103
|
+
return n && n > 0 ? He(r, 0, r.length, n) : r;
|
|
1995
2104
|
}
|
|
1996
|
-
var $ = "none",
|
|
2105
|
+
var $ = "none", We = class {
|
|
1997
2106
|
constructor(e) {
|
|
1998
2107
|
this.defaultOptions = {
|
|
1999
2108
|
maxRandomnessOffset: 2,
|
|
@@ -2033,10 +2142,10 @@ var $ = "none", He = class {
|
|
|
2033
2142
|
}
|
|
2034
2143
|
line(e, t, n, r, i) {
|
|
2035
2144
|
let a = this._o(i);
|
|
2036
|
-
return this._d("line", [
|
|
2145
|
+
return this._d("line", [ge(e, t, n, r, a)], a);
|
|
2037
2146
|
}
|
|
2038
2147
|
rectangle(e, t, n, r, i) {
|
|
2039
|
-
let a = this._o(i), o = [], s =
|
|
2148
|
+
let a = this._o(i), o = [], s = ve(e, t, n, r, a);
|
|
2040
2149
|
if (a.fill) {
|
|
2041
2150
|
let i = [
|
|
2042
2151
|
[e, t],
|
|
@@ -2044,17 +2153,17 @@ var $ = "none", He = class {
|
|
|
2044
2153
|
[e + n, t + r],
|
|
2045
2154
|
[e, t + r]
|
|
2046
2155
|
];
|
|
2047
|
-
a.fillStyle === "solid" ? o.push(
|
|
2156
|
+
a.fillStyle === "solid" ? o.push(we([i], a)) : o.push(Te([i], a));
|
|
2048
2157
|
}
|
|
2049
2158
|
return a.stroke !== $ && o.push(s), this._d("rectangle", o, a);
|
|
2050
2159
|
}
|
|
2051
2160
|
ellipse(e, t, n, r, i) {
|
|
2052
|
-
let a = this._o(i), o = [], s =
|
|
2161
|
+
let a = this._o(i), o = [], s = be(n, r, a), c = xe(e, t, a, s);
|
|
2053
2162
|
if (a.fill) {
|
|
2054
2163
|
if (a.fillStyle === "solid") {
|
|
2055
|
-
let n =
|
|
2164
|
+
let n = xe(e, t, a, s).opset;
|
|
2056
2165
|
n.type = "fillPath", o.push(n);
|
|
2057
|
-
} else o.push(
|
|
2166
|
+
} else o.push(Te([c.estimatedPoints], a));
|
|
2058
2167
|
}
|
|
2059
2168
|
return a.stroke !== $ && o.push(c.opset), this._d("ellipse", o, a);
|
|
2060
2169
|
}
|
|
@@ -2064,15 +2173,15 @@ var $ = "none", He = class {
|
|
|
2064
2173
|
}
|
|
2065
2174
|
linearPath(e, t) {
|
|
2066
2175
|
let n = this._o(t);
|
|
2067
|
-
return this._d("linearPath", [
|
|
2176
|
+
return this._d("linearPath", [_e(e, !1, n)], n);
|
|
2068
2177
|
}
|
|
2069
2178
|
arc(e, t, n, r, i, a, o = !1, s) {
|
|
2070
|
-
let c = this._o(s), l = [], u =
|
|
2179
|
+
let c = this._o(s), l = [], u = Se(e, t, n, r, i, a, o, !0, c);
|
|
2071
2180
|
if (o && c.fill) {
|
|
2072
2181
|
if (c.fillStyle === "solid") {
|
|
2073
2182
|
let o = Object.assign({}, c);
|
|
2074
2183
|
o.disableMultiStroke = !0;
|
|
2075
|
-
let s =
|
|
2184
|
+
let s = Se(e, t, n, r, i, a, !0, !1, o);
|
|
2076
2185
|
s.type = "fillPath", l.push(s);
|
|
2077
2186
|
} else l.push(function(e, t, n, r, i, a, o) {
|
|
2078
2187
|
let s = e, c = t, l = Math.abs(n / 2), u = Math.abs(r / 2);
|
|
@@ -2082,16 +2191,16 @@ var $ = "none", He = class {
|
|
|
2082
2191
|
f - d > 2 * Math.PI && (d = 0, f = 2 * Math.PI);
|
|
2083
2192
|
let p = (f - d) / o.curveStepCount, m = [];
|
|
2084
2193
|
for (let e = d; e <= f; e += p) m.push([s + l * Math.cos(e), c + u * Math.sin(e)]);
|
|
2085
|
-
return m.push([s + l * Math.cos(f), c + u * Math.sin(f)]), m.push([s, c]),
|
|
2194
|
+
return m.push([s + l * Math.cos(f), c + u * Math.sin(f)]), m.push([s, c]), Te([m], o);
|
|
2086
2195
|
}(e, t, n, r, i, a, c));
|
|
2087
2196
|
}
|
|
2088
2197
|
return c.stroke !== $ && l.push(u), this._d("arc", l, c);
|
|
2089
2198
|
}
|
|
2090
2199
|
curve(e, t) {
|
|
2091
|
-
let n = this._o(t), r = [], i =
|
|
2200
|
+
let n = this._o(t), r = [], i = ye(e, n);
|
|
2092
2201
|
if (n.fill && n.fill !== $) {
|
|
2093
2202
|
if (n.fillStyle === "solid") {
|
|
2094
|
-
let t =
|
|
2203
|
+
let t = ye(e, Object.assign(Object.assign({}, n), {
|
|
2095
2204
|
disableMultiStroke: !0,
|
|
2096
2205
|
roughness: n.roughness ? n.roughness + n.fillShapeRoughnessGain : 0
|
|
2097
2206
|
}));
|
|
@@ -2103,29 +2212,29 @@ var $ = "none", He = class {
|
|
|
2103
2212
|
let t = [], i = e;
|
|
2104
2213
|
if (i.length) {
|
|
2105
2214
|
let e = typeof i[0][0] == "number" ? [i] : i;
|
|
2106
|
-
for (let r of e) r.length < 3 ? t.push(...r) : r.length === 3 ? t.push(...
|
|
2215
|
+
for (let r of e) r.length < 3 ? t.push(...r) : r.length === 3 ? t.push(...Ue(Ie([
|
|
2107
2216
|
r[0],
|
|
2108
2217
|
r[0],
|
|
2109
2218
|
r[1],
|
|
2110
2219
|
r[2]
|
|
2111
|
-
]), 10, (1 + n.roughness) / 2)) : t.push(...
|
|
2220
|
+
]), 10, (1 + n.roughness) / 2)) : t.push(...Ue(Ie(r), 10, (1 + n.roughness) / 2));
|
|
2112
2221
|
}
|
|
2113
|
-
t.length && r.push(
|
|
2222
|
+
t.length && r.push(Te([t], n));
|
|
2114
2223
|
}
|
|
2115
2224
|
}
|
|
2116
2225
|
return n.stroke !== $ && r.push(i), this._d("curve", r, n);
|
|
2117
2226
|
}
|
|
2118
2227
|
polygon(e, t) {
|
|
2119
|
-
let n = this._o(t), r = [], i =
|
|
2120
|
-
return n.fill && (n.fillStyle === "solid" ? r.push(
|
|
2228
|
+
let n = this._o(t), r = [], i = _e(e, !0, n);
|
|
2229
|
+
return n.fill && (n.fillStyle === "solid" ? r.push(we([e], n)) : r.push(Te([e], n))), n.stroke !== $ && r.push(i), this._d("polygon", r, n);
|
|
2121
2230
|
}
|
|
2122
2231
|
path(e, t) {
|
|
2123
2232
|
let n = this._o(t), r = [];
|
|
2124
2233
|
if (!e) return this._d("path", r, n);
|
|
2125
2234
|
e = (e || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " ");
|
|
2126
2235
|
let i = n.fill && n.fill !== "transparent" && n.fill !== $, a = n.stroke !== $, o = !!(n.simplification && n.simplification < 1), s = function(e, t, n) {
|
|
2127
|
-
let r =
|
|
2128
|
-
s.length >= 4 && a.push(...
|
|
2236
|
+
let r = fe(de(ue(e))), i = [], a = [], o = [0, 0], s = [], c = () => {
|
|
2237
|
+
s.length >= 4 && a.push(...Ue(s, t)), s = [];
|
|
2129
2238
|
}, l = () => {
|
|
2130
2239
|
c(), a.length && (i.push(a), a = []);
|
|
2131
2240
|
};
|
|
@@ -2148,15 +2257,15 @@ var $ = "none", He = class {
|
|
|
2148
2257
|
if (l(), !n) return i;
|
|
2149
2258
|
let u = [];
|
|
2150
2259
|
for (let e of i) {
|
|
2151
|
-
let t =
|
|
2260
|
+
let t = Ve(e, n);
|
|
2152
2261
|
t.length && u.push(t);
|
|
2153
2262
|
}
|
|
2154
2263
|
return u;
|
|
2155
|
-
}(e, 1, o ? 4 - 4 * (n.simplification || 1) : (1 + n.roughness) / 2), c =
|
|
2264
|
+
}(e, 1, o ? 4 - 4 * (n.simplification || 1) : (1 + n.roughness) / 2), c = Ce(e, n);
|
|
2156
2265
|
if (i) {
|
|
2157
2266
|
if (n.fillStyle === "solid") {
|
|
2158
2267
|
if (s.length === 1) {
|
|
2159
|
-
let t =
|
|
2268
|
+
let t = Ce(e, Object.assign(Object.assign({}, n), {
|
|
2160
2269
|
disableMultiStroke: !0,
|
|
2161
2270
|
roughness: n.roughness ? n.roughness + n.fillShapeRoughnessGain : 0
|
|
2162
2271
|
}));
|
|
@@ -2164,11 +2273,11 @@ var $ = "none", He = class {
|
|
|
2164
2273
|
type: "fillPath",
|
|
2165
2274
|
ops: this._mergedShape(t.ops)
|
|
2166
2275
|
});
|
|
2167
|
-
} else r.push(
|
|
2168
|
-
} else r.push(
|
|
2276
|
+
} else r.push(we(s, n));
|
|
2277
|
+
} else r.push(Te(s, n));
|
|
2169
2278
|
}
|
|
2170
2279
|
return a && (o ? s.forEach(((e) => {
|
|
2171
|
-
r.push(
|
|
2280
|
+
r.push(_e(e, !1, n));
|
|
2172
2281
|
})) : r.push(c)), this._d("path", r, n);
|
|
2173
2282
|
}
|
|
2174
2283
|
opsToPath(e, t) {
|
|
@@ -2226,9 +2335,9 @@ var $ = "none", He = class {
|
|
|
2226
2335
|
_mergedShape(e) {
|
|
2227
2336
|
return e.filter(((e, t) => t === 0 || e.op !== "move"));
|
|
2228
2337
|
}
|
|
2229
|
-
},
|
|
2338
|
+
}, Ge = class {
|
|
2230
2339
|
constructor(e, t) {
|
|
2231
|
-
this.canvas = e, this.ctx = this.canvas.getContext("2d"), this.gen = new
|
|
2340
|
+
this.canvas = e, this.ctx = this.canvas.getContext("2d"), this.gen = new We(t);
|
|
2232
2341
|
}
|
|
2233
2342
|
draw(e) {
|
|
2234
2343
|
let t = e.sets || [], n = e.options || this.getDefaultOptions(), r = this.ctx, i = e.options.fixedDecimalPlaceDigits;
|
|
@@ -2307,20 +2416,20 @@ var $ = "none", He = class {
|
|
|
2307
2416
|
let n = this.gen.path(e, t);
|
|
2308
2417
|
return this.draw(n), n;
|
|
2309
2418
|
}
|
|
2310
|
-
},
|
|
2419
|
+
}, Ke = "http://www.w3.org/2000/svg", qe = class {
|
|
2311
2420
|
constructor(e, t) {
|
|
2312
|
-
this.svg = e, this.gen = new
|
|
2421
|
+
this.svg = e, this.gen = new We(t);
|
|
2313
2422
|
}
|
|
2314
2423
|
draw(e) {
|
|
2315
|
-
let t = e.sets || [], n = e.options || this.getDefaultOptions(), r = this.svg.ownerDocument || window.document, i = r.createElementNS(
|
|
2424
|
+
let t = e.sets || [], n = e.options || this.getDefaultOptions(), r = this.svg.ownerDocument || window.document, i = r.createElementNS(Ke, "g"), a = e.options.fixedDecimalPlaceDigits;
|
|
2316
2425
|
for (let o of t) {
|
|
2317
2426
|
let t = null;
|
|
2318
2427
|
switch (o.type) {
|
|
2319
2428
|
case "path":
|
|
2320
|
-
t = r.createElementNS(
|
|
2429
|
+
t = r.createElementNS(Ke, "path"), t.setAttribute("d", this.opsToPath(o, a)), t.setAttribute("stroke", n.stroke), t.setAttribute("stroke-width", n.strokeWidth + ""), t.setAttribute("fill", "none"), n.strokeLineDash && t.setAttribute("stroke-dasharray", n.strokeLineDash.join(" ").trim()), n.strokeLineDashOffset && t.setAttribute("stroke-dashoffset", `${n.strokeLineDashOffset}`);
|
|
2321
2430
|
break;
|
|
2322
2431
|
case "fillPath":
|
|
2323
|
-
t = r.createElementNS(
|
|
2432
|
+
t = r.createElementNS(Ke, "path"), t.setAttribute("d", this.opsToPath(o, a)), t.setAttribute("stroke", "none"), t.setAttribute("stroke-width", "0"), t.setAttribute("fill", n.fill || ""), e.shape !== "curve" && e.shape !== "polygon" || t.setAttribute("fill-rule", "evenodd");
|
|
2324
2433
|
break;
|
|
2325
2434
|
case "fillSketch": t = this.fillSketch(r, o, n);
|
|
2326
2435
|
}
|
|
@@ -2331,7 +2440,7 @@ var $ = "none", He = class {
|
|
|
2331
2440
|
fillSketch(e, t, n) {
|
|
2332
2441
|
let r = n.fillWeight;
|
|
2333
2442
|
r < 0 && (r = n.strokeWidth / 2);
|
|
2334
|
-
let i = e.createElementNS(
|
|
2443
|
+
let i = e.createElementNS(Ke, "path");
|
|
2335
2444
|
return i.setAttribute("d", this.opsToPath(t, n.fixedDecimalPlaceDigits)), i.setAttribute("stroke", n.fill || ""), i.setAttribute("stroke-width", r + ""), i.setAttribute("fill", "none"), n.fillLineDash && i.setAttribute("stroke-dasharray", n.fillLineDash.join(" ").trim()), n.fillLineDashOffset && i.setAttribute("stroke-dashoffset", `${n.fillLineDashOffset}`), i;
|
|
2336
2445
|
}
|
|
2337
2446
|
get generator() {
|
|
@@ -2379,28 +2488,28 @@ var $ = "none", He = class {
|
|
|
2379
2488
|
let n = this.gen.path(e, t);
|
|
2380
2489
|
return this.draw(n);
|
|
2381
2490
|
}
|
|
2382
|
-
},
|
|
2383
|
-
canvas: (e, t) => new
|
|
2384
|
-
svg: (e, t) => new
|
|
2385
|
-
generator: (e) => new
|
|
2386
|
-
newSeed: () =>
|
|
2491
|
+
}, Je = {
|
|
2492
|
+
canvas: (e, t) => new Ge(e, t),
|
|
2493
|
+
svg: (e, t) => new qe(e, t),
|
|
2494
|
+
generator: (e) => new We(e),
|
|
2495
|
+
newSeed: () => We.newSeed()
|
|
2387
2496
|
};
|
|
2388
2497
|
// src/lib/sumi-forge/vfxRenderer.ts
|
|
2389
|
-
function
|
|
2498
|
+
function Ye(e, t, n, r, i, a, o = !1) {
|
|
2390
2499
|
let s = r / 128, c = n <= 1 ? .32 : t / (n - 1), u = a.seed, d = a.colors;
|
|
2391
2500
|
e.save(), o || (a.bgMode === "washi" ? (e.fillStyle = "#F4F1EA", e.fillRect(0, 0, r, i)) : a.bgMode === "dark" && (e.fillStyle = "#111113", e.fillRect(0, 0, r, i)));
|
|
2392
2501
|
let p = null;
|
|
2393
2502
|
try {
|
|
2394
|
-
p =
|
|
2503
|
+
p = Je.canvas(e.canvas);
|
|
2395
2504
|
} catch {
|
|
2396
2505
|
p = null;
|
|
2397
2506
|
}
|
|
2398
2507
|
let h = Math.min(1, 1 - (1 - c) ** 3.4), g = c < .18 ? 0 : ((c - .18) / .82) ** 1.55 * .78, _ = c < .25 ? 0 : ((c - .25) / .75) ** 1.25 * a.dynamics.erosionStrength, v = c >= .18 && c <= .46 ? Math.sin((c - .18) / .28 * Math.PI) : 0, b = a.brush.angle * Math.PI / 180, x = 64 * s, S = 64 * s;
|
|
2399
|
-
a.dynamics.glowIntensity > .2 && _ < .88 &&
|
|
2508
|
+
a.dynamics.glowIntensity > .2 && _ < .88 && L(e, x, S, 46 * s * (.7 + h * .35), 38 * s * (.7 + h * .35), b, d.coreGlow, d.energySecondary, Math.max(.08, (1 - _ * .85) * .32 * a.dynamics.glowIntensity), u + 11);
|
|
2400
2509
|
let C = a.archetype;
|
|
2401
2510
|
if (C === "hyb_slash_great_wave_katana" || C === "water_slash") {
|
|
2402
2511
|
let n = -Math.PI * .78 * a.brush.arcSweep + b, r = Math.PI * .68 * a.brush.arcSweep + b, i = m(x, S, 43 * s, 36 * s * a.brush.curvature, n, r, b * .35, .12, 88, a.dynamics.jitterAmount, u);
|
|
2403
|
-
|
|
2512
|
+
O(e, {
|
|
2404
2513
|
spine: i,
|
|
2405
2514
|
maxWidth: 24 * s * a.brush.strokeThickness,
|
|
2406
2515
|
bristleCount: a.brush.bristleCount,
|
|
@@ -2416,10 +2525,10 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2416
2525
|
seed: u
|
|
2417
2526
|
});
|
|
2418
2527
|
let o = i.filter((e) => e.t >= g * .85 && e.t <= h);
|
|
2419
|
-
o.length >= 6 && _ < .82 &&
|
|
2528
|
+
o.length >= 6 && _ < .82 && N(e, p, o.map((e, t, n) => ({
|
|
2420
2529
|
...e,
|
|
2421
2530
|
t: t / Math.max(1, n.length - 1)
|
|
2422
|
-
})), 19 * s * a.brush.strokeThickness * (1 - _ * .45), 1, C === "hyb_slash_great_wave_katana" ? 6 : 4, a, s, Math.max(.2, 1 - _ * .65), u + t * 7),
|
|
2531
|
+
})), 19 * s * a.brush.strokeThickness * (1 - _ * .45), 1, C === "hyb_slash_great_wave_katana" ? 6 : 4, a, s, Math.max(.2, 1 - _ * .65), u + t * 7), O(e, {
|
|
2423
2532
|
spine: i,
|
|
2424
2533
|
maxWidth: (8 + v * 5) * s * a.brush.strokeThickness,
|
|
2425
2534
|
bristleCount: Math.max(6, Math.floor(a.brush.bristleCount * .45)),
|
|
@@ -2433,7 +2542,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2433
2542
|
erosionProgress: _ * 1.1,
|
|
2434
2543
|
erosionScale: a.dynamics.erosionScale,
|
|
2435
2544
|
seed: u + 303
|
|
2436
|
-
}),
|
|
2545
|
+
}), k(e, i, c, a.dynamics.splatterCount, a.dynamics.splatterSpread, s, d, u);
|
|
2437
2546
|
} else if (C === "hyb_slash_crimson_phoenix_arc") {
|
|
2438
2547
|
let t = f({
|
|
2439
2548
|
x: 18 * s,
|
|
@@ -2448,7 +2557,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2448
2557
|
x: 110 * s,
|
|
2449
2558
|
y: 20 * s
|
|
2450
2559
|
}, 92, a.dynamics.jitterAmount, u);
|
|
2451
|
-
|
|
2560
|
+
O(e, {
|
|
2452
2561
|
spine: t,
|
|
2453
2562
|
maxWidth: 22 * s * a.brush.strokeThickness,
|
|
2454
2563
|
bristleCount: a.brush.bristleCount,
|
|
@@ -2466,7 +2575,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2466
2575
|
let r = (n + .5) / 7;
|
|
2467
2576
|
if (r < g || r > h) continue;
|
|
2468
2577
|
let i = t[Math.min(t.length - 1, Math.floor(r * (t.length - 1)))], o = (22 + Math.sin(r * Math.PI) * 18) * s * (1 - _ * .55), c = Math.atan2(i.ny, i.nx) - .45, l = i.x + Math.cos(c) * o, f = i.y + Math.sin(c) * o;
|
|
2469
|
-
|
|
2578
|
+
A(e, p, a, s, {
|
|
2470
2579
|
rootX: i.x,
|
|
2471
2580
|
rootY: i.y,
|
|
2472
2581
|
ctrl1X: i.x + Math.cos(c - .5) * o * .42,
|
|
@@ -2479,12 +2588,12 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2479
2588
|
striationCount: 5,
|
|
2480
2589
|
alpha: Math.max(.2, 1 - _ * .65),
|
|
2481
2590
|
seed: u + n * 67
|
|
2482
|
-
}), n % 2 == 0 && _ < .7 &&
|
|
2591
|
+
}), n % 2 == 0 && _ < .7 && j(e, l, f, l + Math.cos(c - .2) * 14 * s, f + Math.sin(c - .2) * 14 * s, 3.2 * s, d.energySecondary, u + n * 131);
|
|
2483
2592
|
}
|
|
2484
|
-
|
|
2593
|
+
k(e, t, c, a.dynamics.splatterCount, a.dynamics.splatterSpread, s, d, u);
|
|
2485
2594
|
} else if (C === "sakura_tempest_slash") {
|
|
2486
2595
|
let t = m(x, S, 44 * s, 34 * s * a.brush.curvature, -Math.PI * .85 + b, Math.PI * .75 + b, -.25, -.15, 92, a.dynamics.jitterAmount, u);
|
|
2487
|
-
|
|
2596
|
+
O(e, {
|
|
2488
2597
|
spine: t,
|
|
2489
2598
|
maxWidth: 21 * s * a.brush.strokeThickness,
|
|
2490
2599
|
bristleCount: a.brush.bristleCount,
|
|
@@ -2497,7 +2606,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2497
2606
|
erosionProgress: _,
|
|
2498
2607
|
erosionScale: a.dynamics.erosionScale,
|
|
2499
2608
|
seed: u
|
|
2500
|
-
}),
|
|
2609
|
+
}), O(e, {
|
|
2501
2610
|
spine: t,
|
|
2502
2611
|
maxWidth: 9 * s * a.brush.strokeThickness,
|
|
2503
2612
|
bristleCount: Math.max(8, Math.floor(a.brush.bristleCount * .5)),
|
|
@@ -2517,11 +2626,11 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2517
2626
|
let i = (r + .4) / 9;
|
|
2518
2627
|
if (i > h) continue;
|
|
2519
2628
|
let a = t[Math.min(t.length - 1, Math.floor(i * (t.length - 1)))], o = Math.max(0, c - i * .35) * 18 * s, l = a.x + a.nx * ((n() - .35) * 18 * s + o), f = a.y + a.ny * ((n() - .35) * 18 * s - o * .4), p = (5.5 + r % 3 * 2.5) * s * (1 - _ * .35);
|
|
2520
|
-
r % 2 == 0 ?
|
|
2629
|
+
r % 2 == 0 ? z(e, l, f, p, c * 1.8 + r, d.energySecondary, d.coreGlow, d.inkPrimary, Math.max(.2, 1 - _ * .5), u + r * 43) : B(e, l, f, p * 1.1, c * 3.2 + r, .45 + .5 * Math.abs(Math.cos(c * 4 + r)), d.energySecondary, Math.max(.25, 1 - _ * .4));
|
|
2521
2630
|
}
|
|
2522
2631
|
} else if (C === "enso_sigil") {
|
|
2523
2632
|
let t = Math.PI * 1.82 * a.brush.arcSweep, n = m(x, S, 41 * s, 40 * s * a.brush.curvature, -Math.PI * .85 + b + c * .25, -Math.PI * .85 + t + b + c * .25, 0, -.06, 96, a.dynamics.jitterAmount * .7, u);
|
|
2524
|
-
|
|
2633
|
+
O(e, {
|
|
2525
2634
|
spine: n,
|
|
2526
2635
|
maxWidth: 22 * s * a.brush.strokeThickness,
|
|
2527
2636
|
bristleCount: a.brush.bristleCount,
|
|
@@ -2535,7 +2644,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2535
2644
|
erosionScale: a.dynamics.erosionScale,
|
|
2536
2645
|
roundHeadCap: !0,
|
|
2537
2646
|
seed: u
|
|
2538
|
-
}),
|
|
2647
|
+
}), O(e, {
|
|
2539
2648
|
spine: n,
|
|
2540
2649
|
maxWidth: 10 * s * a.brush.strokeThickness,
|
|
2541
2650
|
bristleCount: Math.max(8, Math.floor(a.brush.bristleCount * .55)),
|
|
@@ -2549,12 +2658,12 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2549
2658
|
erosionProgress: _,
|
|
2550
2659
|
erosionScale: a.dynamics.erosionScale,
|
|
2551
2660
|
seed: u + 149
|
|
2552
|
-
}),
|
|
2661
|
+
}), k(e, n, c, a.dynamics.splatterCount, a.dynamics.splatterSpread, s, d, u);
|
|
2553
2662
|
} else if (C === "elem_fire_meteor_bolide") {
|
|
2554
2663
|
let n = Math.min(1, c * 1.25), r = (24 + n * 68) * s, i = (24 + n * 68) * s, o = (10 + n * 18) * s, l = (10 + n * 18) * s, d = Math.atan2(i - l, r - o), f = (16 - _ * 4) * s * a.brush.strokeThickness;
|
|
2555
2664
|
for (let t = 0; t < 4; t++) {
|
|
2556
2665
|
let n = (t - 1.5) * 14 * s;
|
|
2557
|
-
|
|
2666
|
+
A(e, p, a, s, {
|
|
2558
2667
|
rootX: r,
|
|
2559
2668
|
rootY: i,
|
|
2560
2669
|
ctrl1X: (r + o) * .55 + n,
|
|
@@ -2570,10 +2679,10 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2570
2679
|
});
|
|
2571
2680
|
}
|
|
2572
2681
|
if (c < .85) {
|
|
2573
|
-
|
|
2682
|
+
I(e, p, r, i, f * 1.12, f * .94, d, .24, a, s, u + t * 13);
|
|
2574
2683
|
for (let t of [-1, 1]) {
|
|
2575
2684
|
let n = d + t * Math.PI * .42, o = r + Math.cos(n) * f * .72, c = i + Math.sin(n) * f * .72, l = d + Math.PI + t * .28;
|
|
2576
|
-
|
|
2685
|
+
A(e, p, a, s, {
|
|
2577
2686
|
rootX: o,
|
|
2578
2687
|
rootY: c,
|
|
2579
2688
|
ctrl1X: o + Math.cos(n) * 10 * s,
|
|
@@ -2589,19 +2698,19 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2589
2698
|
});
|
|
2590
2699
|
}
|
|
2591
2700
|
}
|
|
2592
|
-
c > .55 &&
|
|
2701
|
+
c > .55 && F(e, p, r, i, 46 * s * ((c - .5) * 1.8), 4, a, s, Math.min(.95, (c - .5) * 1.9), u + 701);
|
|
2593
2702
|
} else if (C === "elem_water_glacial_spikes") {
|
|
2594
2703
|
let t = c < .28 ? Math.min(1.12, (c / .28) ** .65 * 1.12) : Math.max(.15, 1 - Math.max(0, c - .65) * 2.1);
|
|
2595
2704
|
for (let n = 0; n < 6; n++) {
|
|
2596
2705
|
let r = n / 5 * 2 - 1, i = -Math.PI * .5 + r * .68 + b * .3, o = (56 - Math.abs(r) * 22) * s * t * a.brush.strokeThickness, c = (16 - Math.abs(r) * 4) * s * a.brush.strokeThickness;
|
|
2597
|
-
|
|
2706
|
+
R(e, p, x + r * 16 * s, 104 * s, i, o, c, a, s, u + n * 97);
|
|
2598
2707
|
}
|
|
2599
|
-
|
|
2708
|
+
F(e, p, x, 104 * s, 68 * s, 4, a, s, Math.max(.25, 1 - _ * .7), u + 503);
|
|
2600
2709
|
} else if (C === "solid_ref_fumaca") {
|
|
2601
2710
|
let t = .65 + h * .55;
|
|
2602
2711
|
for (let n = 0; n < 5; n++) {
|
|
2603
2712
|
let r = n / 5 * Math.PI * 2 + c * .55 + b, i = (14 + c * 24) * s, o = x + Math.cos(r) * i * .35, l = S + Math.sin(r) * i * .35, d = x + Math.cos(r + .55) * (36 * s * t), f = S + Math.sin(r + .55) * (36 * s * t);
|
|
2604
|
-
|
|
2713
|
+
P(e, p, a, s, {
|
|
2605
2714
|
startX: o,
|
|
2606
2715
|
startY: l,
|
|
2607
2716
|
endX: d,
|
|
@@ -2614,10 +2723,10 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2614
2723
|
});
|
|
2615
2724
|
}
|
|
2616
2725
|
} else if (C === "elem_water_healing_fountain") {
|
|
2617
|
-
|
|
2726
|
+
L(e, x, 82 * s, 44 * s, 26 * s, 0, d.coreGlow, d.energySecondary, .75 * (1 - _ * .5), u + 31);
|
|
2618
2727
|
for (let t = 0; t < 3; t++) {
|
|
2619
2728
|
let n = t * Math.PI * 2 / 3 + c * Math.PI * 1.4;
|
|
2620
|
-
|
|
2729
|
+
O(e, {
|
|
2621
2730
|
spine: f({
|
|
2622
2731
|
x: x + Math.sin(n) * 20 * s,
|
|
2623
2732
|
y: 106 * s
|
|
@@ -2647,7 +2756,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2647
2756
|
} else if (C === "portal_abyssal_vortex") {
|
|
2648
2757
|
for (let t = 0; t < 3; t++) {
|
|
2649
2758
|
let n = t / 3 * Math.PI * 2 + c * Math.PI * 1.5 + b;
|
|
2650
|
-
|
|
2759
|
+
O(e, {
|
|
2651
2760
|
spine: m(x, S, 45 * s, 42 * s * a.brush.curvature, n, n + Math.PI * 1.45, 0, -.52, 76, a.dynamics.jitterAmount * .5, u + t * 61),
|
|
2652
2761
|
maxWidth: 16 * s * a.brush.strokeThickness,
|
|
2653
2762
|
bristleCount: Math.max(10, Math.floor(a.brush.bristleCount * .7)),
|
|
@@ -2665,7 +2774,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2665
2774
|
e.beginPath(), e.arc(x, S, 13 * s * (1 - _ * .35), 0, Math.PI * 2), e.fillStyle = d.inkPrimary, e.fill(), e.strokeStyle = d.coreGlow, e.lineWidth = 1.5 * s, e.stroke();
|
|
2666
2775
|
} else {
|
|
2667
2776
|
let t = C === "hyb_slash_blood_moon_scythe", n = (t ? Math.PI * 1.52 : Math.PI * 1.18) * a.brush.arcSweep, r = m(x, S, 44 * s, (t ? 42 : 34) * s * a.brush.curvature, -n * .55 + b, n * .55 + b, .22, t ? -.18 : .08, 96, a.dynamics.jitterAmount, u);
|
|
2668
|
-
|
|
2777
|
+
O(e, {
|
|
2669
2778
|
spine: r,
|
|
2670
2779
|
maxWidth: (t ? 28 : 23) * s * a.brush.strokeThickness,
|
|
2671
2780
|
bristleCount: a.brush.bristleCount,
|
|
@@ -2680,7 +2789,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2680
2789
|
hookWaves: a.dynamics.hookWaves,
|
|
2681
2790
|
roundHeadCap: !0,
|
|
2682
2791
|
seed: u
|
|
2683
|
-
}),
|
|
2792
|
+
}), O(e, {
|
|
2684
2793
|
spine: r,
|
|
2685
2794
|
maxWidth: 14 * s * a.brush.strokeThickness,
|
|
2686
2795
|
bristleCount: Math.max(8, Math.floor(a.brush.bristleCount * .68)),
|
|
@@ -2696,7 +2805,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2696
2805
|
hookWaves: a.dynamics.hookWaves,
|
|
2697
2806
|
roundHeadCap: !1,
|
|
2698
2807
|
seed: u + 199
|
|
2699
|
-
}),
|
|
2808
|
+
}), O(e, {
|
|
2700
2809
|
spine: r,
|
|
2701
2810
|
maxWidth: (6.5 + v * 4.5) * s * a.brush.strokeThickness,
|
|
2702
2811
|
bristleCount: Math.max(5, Math.floor(a.brush.bristleCount * .38)),
|
|
@@ -2711,7 +2820,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2711
2820
|
erosionScale: a.dynamics.erosionScale,
|
|
2712
2821
|
roundHeadCap: !1,
|
|
2713
2822
|
seed: u + 397
|
|
2714
|
-
}),
|
|
2823
|
+
}), k(e, r, c, a.dynamics.splatterCount, a.dynamics.splatterSpread, s, d, u);
|
|
2715
2824
|
}
|
|
2716
2825
|
if (a.channelMode !== "composite") {
|
|
2717
2826
|
let t = y(e.getImageData(0, 0, r, i), a);
|
|
@@ -2719,7 +2828,7 @@ function qe(e, t, n, r, i, a, o = !1) {
|
|
|
2719
2828
|
}
|
|
2720
2829
|
e.restore();
|
|
2721
2830
|
}
|
|
2722
|
-
function
|
|
2831
|
+
function Xe(e, t, n = 4) {
|
|
2723
2832
|
let r = Math.ceil(t.totalFrames / n), i = t.frameSize;
|
|
2724
2833
|
e.width = i * n, e.height = i * r;
|
|
2725
2834
|
let a = e.getContext("2d");
|
|
@@ -2727,12 +2836,12 @@ function Je(e, t, n = 4) {
|
|
|
2727
2836
|
a.clearRect(0, 0, e.width, e.height);
|
|
2728
2837
|
for (let e = 0; e < t.totalFrames; e++) {
|
|
2729
2838
|
let r = e % n, o = Math.floor(e / n);
|
|
2730
|
-
a.save(), a.beginPath(), a.rect(r * i, o * i, i, i), a.clip(), a.translate(r * i, o * i),
|
|
2839
|
+
a.save(), a.beginPath(), a.rect(r * i, o * i, i, i), a.clip(), a.translate(r * i, o * i), Ye(a, e, t.totalFrames, i, i, t, !0), a.restore();
|
|
2731
2840
|
}
|
|
2732
2841
|
}
|
|
2733
2842
|
}
|
|
2734
2843
|
// src/lib/sumi-forge/gifEncoder.ts
|
|
2735
|
-
function
|
|
2844
|
+
function Ze(e, t, n, r) {
|
|
2736
2845
|
let i = [], a = (e) => i.push(e & 255), o = (e) => {
|
|
2737
2846
|
i.push(e & 255), i.push(e >> 8 & 255);
|
|
2738
2847
|
}, s = (e) => {
|
|
@@ -2757,13 +2866,13 @@ function Ye(e, t, n, r) {
|
|
|
2757
2866
|
}
|
|
2758
2867
|
}
|
|
2759
2868
|
a(8);
|
|
2760
|
-
let s =
|
|
2869
|
+
let s = Qe(e, 8);
|
|
2761
2870
|
for (let e = 0; e < s.length; e++) a(s[e]);
|
|
2762
2871
|
a(0);
|
|
2763
2872
|
}
|
|
2764
2873
|
return a(59), new Uint8Array(i);
|
|
2765
2874
|
}
|
|
2766
|
-
function
|
|
2875
|
+
function Qe(e, t) {
|
|
2767
2876
|
let n = 1 << t, r = n + 1, i = t + 1, a = r + 1, o = /* @__PURE__ */ new Map(), s = [], c = 0, l = 0, u = [], d = () => {
|
|
2768
2877
|
if (u.length > 0) {
|
|
2769
2878
|
s.push(u.length);
|
|
@@ -2782,24 +2891,24 @@ function Xe(e, t) {
|
|
|
2782
2891
|
return f(p), f(r), l > 0 && u.push(c & 255), d(), s;
|
|
2783
2892
|
}
|
|
2784
2893
|
// src/lib/sumi-forge/components/SumiMaskReveal.tsx
|
|
2785
|
-
var
|
|
2786
|
-
let w = r(null), T = r(null),
|
|
2894
|
+
var $e = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Sumi-e revelada por máscara caligráfica", choreography: a = "fuji_masterpiece", duration: c = 3.4, bristleCount: u = 26, dryBrushGap: d = .28, seed: g = 8472, showLiveInkAccents: _ = !0, maskOnlyPreview: v = !1, progress: y, replayTrigger: b = 0, interactiveBrush: x = !0, showTouchControls: S = !0, className: C = "" }) => {
|
|
2895
|
+
let w = r(null), T = r(null), E = r(null), D = r(""), k = r(!0), A = r(null), [j, M] = i(!1), [N, P] = i(!1), [F, I] = i(a === "interactive_brush"), [R, V] = i(0), H = r([]), U = r(null), W = r({
|
|
2787
2896
|
x: 0,
|
|
2788
2897
|
y: 0,
|
|
2789
2898
|
active: !1
|
|
2790
2899
|
}), G = r(0), K = r(performance.now());
|
|
2791
2900
|
t(() => {
|
|
2792
|
-
|
|
2901
|
+
I(a === "interactive_brush");
|
|
2793
2902
|
}, [a]), t(() => {
|
|
2794
|
-
M(!1), P(!1),
|
|
2903
|
+
M(!1), P(!1), D.current = "";
|
|
2795
2904
|
let t = new Image();
|
|
2796
2905
|
t.crossOrigin = "anonymous", t.onload = () => {
|
|
2797
|
-
A.current = t,
|
|
2906
|
+
A.current = t, D.current = "", M(!0);
|
|
2798
2907
|
}, t.onerror = () => {
|
|
2799
2908
|
P(!0);
|
|
2800
2909
|
}, t.src = e;
|
|
2801
2910
|
}, [e]), t(() => {
|
|
2802
|
-
K.current = performance.now(), H.current = [], V(0), G.current++,
|
|
2911
|
+
K.current = performance.now(), H.current = [], V(0), G.current++, D.current = "";
|
|
2803
2912
|
}, [
|
|
2804
2913
|
b,
|
|
2805
2914
|
a,
|
|
@@ -2820,9 +2929,9 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
2820
2929
|
}, []), t(() => {
|
|
2821
2930
|
let e = w.current;
|
|
2822
2931
|
if (!e) return;
|
|
2823
|
-
T.current ||= document.createElement("canvas"),
|
|
2824
|
-
let t = T.current, n =
|
|
2825
|
-
e[0] && (i = e[0].contentRect,
|
|
2932
|
+
T.current ||= document.createElement("canvas"), E.current ||= document.createElement("canvas");
|
|
2933
|
+
let t = T.current, n = E.current, r = 0, i = e.getBoundingClientRect(), o = new ResizeObserver((e) => {
|
|
2934
|
+
e[0] && (i = e[0].contentRect, D.current = "");
|
|
2826
2935
|
});
|
|
2827
2936
|
o.observe(e);
|
|
2828
2937
|
let s = (o) => {
|
|
@@ -2831,15 +2940,15 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
2831
2940
|
return;
|
|
2832
2941
|
}
|
|
2833
2942
|
let b = Math.min(1.75, window.devicePixelRatio || 1), x = Math.max(220, Math.floor(i.width || e.clientWidth || 500)), S = Math.max(160, Math.floor(i.height || e.clientHeight || 320)), C = Math.floor(x * b), w = Math.floor(S * b);
|
|
2834
|
-
(e.width !== C || e.height !== w) && (e.width = C, e.height = w, t.width = C, t.height = w, n.width = C, n.height = w,
|
|
2835
|
-
let T = e.getContext("2d"),
|
|
2836
|
-
if (!T || !
|
|
2837
|
-
let P = (o - K.current) / 1e3,
|
|
2838
|
-
if (
|
|
2839
|
-
if (
|
|
2943
|
+
(e.width !== C || e.height !== w) && (e.width = C, e.height = w, t.width = C, t.height = w, n.width = C, n.height = w, D.current = "");
|
|
2944
|
+
let T = e.getContext("2d"), E = t.getContext("2d"), M = n.getContext("2d");
|
|
2945
|
+
if (!T || !E || !M) return;
|
|
2946
|
+
let P = (o - K.current) / 1e3, I = F || a === "interactive_brush", R = I ? .16 : Math.min(1, P / Math.max(.4, c)), V = y === void 0 ? R : y, q = V >= .998 ? 1 : Math.round(V * 90) / 90, J = Math.max(.52, Math.min(x / 920, S / 560)), Y = `${C}x${w}:${a}:${I}:${q}:${u}:${d}:${g}:${v}:${j}:${G.current}`;
|
|
2947
|
+
if (D.current !== Y) {
|
|
2948
|
+
if (E.save(), E.setTransform(b, 0, 0, b, 0, 0), E.clearRect(0, 0, x, S), I) H.current.length === 0 && !U.current && L(E, x * .5, S * .48, x * .14, S * .14, 0, "#000000", "#000000", .85, g + 19);
|
|
2840
2949
|
else if (a === "fuji_masterpiece") {
|
|
2841
2950
|
let e = Math.min(1, q * 2.2);
|
|
2842
|
-
if (e > .01 &&
|
|
2951
|
+
if (e > .01 && L(E, x * .79, S * .28, x * .22 * e, x * .22 * e, 0, "#000000", "#000000", 1, g + 11), [
|
|
2843
2952
|
{
|
|
2844
2953
|
x0: x * .74,
|
|
2845
2954
|
y0: S * .45,
|
|
@@ -2880,7 +2989,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
2880
2989
|
x: e.x1,
|
|
2881
2990
|
y: e.y1
|
|
2882
2991
|
}, 48, .15, g + 100 + t * 19);
|
|
2883
|
-
E
|
|
2992
|
+
O(E, {
|
|
2884
2993
|
spine: r,
|
|
2885
2994
|
maxWidth: e.w,
|
|
2886
2995
|
bristleCount: u,
|
|
@@ -2960,7 +3069,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
2960
3069
|
let n = Math.max(0, Math.min(1, (q - e.start) / (e.end - e.start)));
|
|
2961
3070
|
if (n <= .01) return;
|
|
2962
3071
|
let r = f(e.p0, e.p1, e.p2, e.p3, 52, .2, g + 200 + t * 29);
|
|
2963
|
-
E
|
|
3072
|
+
O(E, {
|
|
2964
3073
|
spine: r,
|
|
2965
3074
|
maxWidth: e.w,
|
|
2966
3075
|
bristleCount: u,
|
|
@@ -2974,13 +3083,13 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
2974
3083
|
});
|
|
2975
3084
|
}), q > .55) {
|
|
2976
3085
|
let e = (q - .55) / .45;
|
|
2977
|
-
|
|
3086
|
+
L(E, x * .5, S * .5, x * .72 * e, S * .72 * e, 0, "#000000", "#000000", Math.min(1, e * 1.35), g + 555);
|
|
2978
3087
|
}
|
|
2979
3088
|
} else if (a === "katana_slashes") for (let e = 0; e < 6; e++) {
|
|
2980
3089
|
let t = e * .11, n = Math.max(0, Math.min(1, (q - t) / .45));
|
|
2981
3090
|
if (n <= .01) continue;
|
|
2982
3091
|
let r = S * (.12 + e / 5 * .78), i = S * (.08 + (5 - e) / 5 * .84), a = e % 2 == 0;
|
|
2983
|
-
E
|
|
3092
|
+
O(E, {
|
|
2984
3093
|
spine: p({
|
|
2985
3094
|
x: a ? -x * .05 : x * 1.05,
|
|
2986
3095
|
y: r
|
|
@@ -3008,7 +3117,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3008
3117
|
let n = Math.max(0, Math.min(1, (q - t * .15) / .65));
|
|
3009
3118
|
if (n <= .01) continue;
|
|
3010
3119
|
let r = e * ((t + .6) / 3);
|
|
3011
|
-
E
|
|
3120
|
+
O(E, {
|
|
3012
3121
|
spine: m(x * .5, S * .5, r, r * .82, -Math.PI * .85 + t * 1.2, Math.PI * 1.35 + t * 1.2, 0, .15, 68, .15, g + t * 59),
|
|
3013
3122
|
maxWidth: 190 * J,
|
|
3014
3123
|
bristleCount: u,
|
|
@@ -3025,7 +3134,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3025
3134
|
let t = Math.max(0, Math.min(1, (q - e * .1) / .55));
|
|
3026
3135
|
if (t <= .01) continue;
|
|
3027
3136
|
let n = S * (.15 + e / 4 * .72);
|
|
3028
|
-
E
|
|
3137
|
+
O(E, {
|
|
3029
3138
|
spine: f({
|
|
3030
3139
|
x: -x * .05,
|
|
3031
3140
|
y: n + 30 * J
|
|
@@ -3070,7 +3179,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3070
3179
|
pressure: .75
|
|
3071
3180
|
}
|
|
3072
3181
|
] : e, r = h(n, .1, g + t * 17), i = n.reduce((e, t) => e + t.pressure, 0) / n.length;
|
|
3073
|
-
|
|
3182
|
+
L(E, n[0].x, n[0].y, 46 * J, 38 * J, t * .7, "#000000", "#000000", .95, g + 800 + t * 19), O(E, {
|
|
3074
3183
|
spine: r,
|
|
3075
3184
|
maxWidth: 122 * J * (.75 + i * .85),
|
|
3076
3185
|
bristleCount: Math.max(14, Math.floor(u * .85)),
|
|
@@ -3081,23 +3190,23 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3081
3190
|
alpha: 1,
|
|
3082
3191
|
seed: g + 900 + t * 23
|
|
3083
3192
|
});
|
|
3084
|
-
}),
|
|
3193
|
+
}), E.restore(), M.save(), M.setTransform(b, 0, 0, b, 0, 0), M.clearRect(0, 0, x, S), v) M.drawImage(t, 0, 0, x, S);
|
|
3085
3194
|
else if (j && A.current && !N) {
|
|
3086
3195
|
let e = A.current, n = e.width / Math.max(1, e.height), r = x / S, i = x, a = S, o = 0, s = 0;
|
|
3087
|
-
r > n ? (i = x, a = x / n, s = (S - a) * .5) : (a = S, i = S * n, o = (x - i) * .5), M.drawImage(e, o, s, i, a), M.globalCompositeOperation = "destination-in", M.drawImage(t, 0, 0, x, S), M.globalCompositeOperation = "source-over",
|
|
3196
|
+
r > n ? (i = x, a = x / n, s = (S - a) * .5) : (a = S, i = S * n, o = (x - i) * .5), M.drawImage(e, o, s, i, a), M.globalCompositeOperation = "destination-in", M.drawImage(t, 0, 0, x, S), M.globalCompositeOperation = "source-over", I && (M.globalCompositeOperation = "destination-over", M.globalAlpha = .12, M.drawImage(e, o, s, i, a), M.globalAlpha = 1, M.globalCompositeOperation = "source-over");
|
|
3088
3197
|
} else M.drawImage(t, 0, 0, x, S);
|
|
3089
|
-
M.restore(),
|
|
3198
|
+
M.restore(), D.current = Y;
|
|
3090
3199
|
}
|
|
3091
3200
|
if (T.save(), T.setTransform(b, 0, 0, b, 0, 0), T.clearRect(0, 0, x, S), T.drawImage(n, 0, 0, x, S), v || ((U.current ? [...H.current, U.current] : H.current).forEach((e, t) => {
|
|
3092
3201
|
if (e.length !== 0) for (let n = 0; n < e.length; n += 4) {
|
|
3093
3202
|
let r = e[n];
|
|
3094
|
-
|
|
3203
|
+
z(T, r.x + Math.sin(t + n) * 8 * J, r.y + Math.cos(t + n) * 8 * J, (6.5 + n % 3 * 2) * J, (t + n) * .7, "#C8232C", "#FFF5F5", "#141413", .78, g + 1400 + t * 31 + n);
|
|
3095
3204
|
}
|
|
3096
3205
|
}), W.current.active && U.current && (T.beginPath(), T.arc(W.current.x, W.current.y, 24 * J, 0, Math.PI * 2), T.strokeStyle = "rgba(200, 35, 44, 0.55)", T.lineWidth = 1.75, T.stroke())), _ && !v && V > .15) {
|
|
3097
3206
|
let e = l(g + 777);
|
|
3098
3207
|
for (let t = 0; t < 14; t++) {
|
|
3099
3208
|
let n = e() * x * .72, r = e() * S * .78, i = 16 + e() * 22, a = (n + P * i * 1.2 + Math.sin(P * 1.5 + t) * 16 * J) % (x * .96), o = (r + P * i * .55 + Math.cos(P * 1.2 + t) * 12 * J) % (S * .9);
|
|
3100
|
-
t % 5 == 0 ?
|
|
3209
|
+
t % 5 == 0 ? z(T, a, o, (6.5 + t % 3 * 2) * J, P * .9 + t, "#C8232C", "#FFF5F5", "#141413", .85 * Math.min(1, (V - .15) * 2), g + t * 31) : B(T, a, o, (5 + t % 4 * 2) * J, P * 1.8 + t, .4 + .55 * Math.abs(Math.sin(P * 2.2 + t)), "#C8232C", .88 * Math.min(1, (V - .15) * 2));
|
|
3101
3210
|
}
|
|
3102
3211
|
}
|
|
3103
3212
|
T.restore(), (V < 1 || _ && !v || U.current !== null) && (r = requestAnimationFrame(s));
|
|
@@ -3109,7 +3218,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3109
3218
|
j,
|
|
3110
3219
|
N,
|
|
3111
3220
|
a,
|
|
3112
|
-
|
|
3221
|
+
F,
|
|
3113
3222
|
c,
|
|
3114
3223
|
u,
|
|
3115
3224
|
d,
|
|
@@ -3194,20 +3303,20 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3194
3303
|
className: "absolute bottom-2.5 left-2.5 right-2.5 flex flex-wrap items-center justify-between gap-1.5 pointer-events-none z-10",
|
|
3195
3304
|
children: [/* @__PURE__ */ s("div", {
|
|
3196
3305
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-[#F8F4EC]/90 backdrop-blur-md border border-[#11100E]/20 text-[11px] font-medium text-[#11100E] shadow-xs",
|
|
3197
|
-
children: [/* @__PURE__ */ o("span", { className: "w-2 h-2 rounded-full bg-[#C8232C] shrink-0" }), /* @__PURE__ */ o("span", { children:
|
|
3306
|
+
children: [/* @__PURE__ */ o("span", { className: "w-2 h-2 rounded-full bg-[#C8232C] shrink-0" }), /* @__PURE__ */ o("span", { children: F ? R === 0 ? "Arraste o dedo ou toque na tela para revelar a pintura" : `${R} ${R === 1 ? "pincelada aplicada" : "pinceladas aplicadas"}` : "Toque ou arraste na tela para pintar" })]
|
|
3198
3307
|
}), /* @__PURE__ */ s("div", {
|
|
3199
3308
|
className: "flex items-center gap-1.5 pointer-events-auto",
|
|
3200
3309
|
children: [/* @__PURE__ */ o("button", {
|
|
3201
3310
|
type: "button",
|
|
3202
3311
|
onClick: (e) => {
|
|
3203
|
-
e.stopPropagation(), H.current = [], V(0),
|
|
3312
|
+
e.stopPropagation(), H.current = [], V(0), I(!0), q();
|
|
3204
3313
|
},
|
|
3205
|
-
className: `px-2.5 py-1 rounded-[3px] text-[11px] font-medium border transition-colors cursor-pointer ${
|
|
3206
|
-
children:
|
|
3207
|
-
}),
|
|
3314
|
+
className: `px-2.5 py-1 rounded-[3px] text-[11px] font-medium border transition-colors cursor-pointer ${F ? "bg-[#C8232C] text-[#FAF7F0] border-[#11100E]" : "bg-[#F8F4EC]/92 text-[#11100E] border-[#11100E]/60 hover:bg-[#11100E] hover:text-[#FAF7F0]"}`,
|
|
3315
|
+
children: F ? "Limpar & Pintar do Zero" : "Pintar do Zero (Toque)"
|
|
3316
|
+
}), F && /* @__PURE__ */ o("button", {
|
|
3208
3317
|
type: "button",
|
|
3209
3318
|
onClick: (e) => {
|
|
3210
|
-
e.stopPropagation(), H.current = [], V(0),
|
|
3319
|
+
e.stopPropagation(), H.current = [], V(0), I(!1), K.current = performance.now(), q();
|
|
3211
3320
|
},
|
|
3212
3321
|
className: "px-2.5 py-1 rounded-[3px] text-[11px] font-medium bg-[#11100E] text-[#FAF7F0] border border-[#11100E] hover:bg-[#272420] transition-colors cursor-pointer",
|
|
3213
3322
|
children: "Auto-Revelar"
|
|
@@ -3215,24 +3324,24 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3215
3324
|
})]
|
|
3216
3325
|
})]
|
|
3217
3326
|
});
|
|
3218
|
-
},
|
|
3327
|
+
}, et = ({ revealProgress: e, revealProgressRef: n, layers: i, colors: a, seed: s = 8472, animated: c = !0, windSpeed: u = 1, className: h = "", interactive: g = !0 }) => {
|
|
3219
3328
|
let y = r(null), b = r(!0), x = r({
|
|
3220
3329
|
x: .5,
|
|
3221
3330
|
y: .5,
|
|
3222
3331
|
smoothX: .5,
|
|
3223
3332
|
smoothY: .5,
|
|
3224
3333
|
active: !1
|
|
3225
|
-
}),
|
|
3226
|
-
...
|
|
3334
|
+
}), S = r(performance.now()), C = {
|
|
3335
|
+
...T,
|
|
3227
3336
|
...i
|
|
3228
|
-
},
|
|
3337
|
+
}, E = {
|
|
3229
3338
|
inkPrimary: a?.inkPrimary ?? "#141413",
|
|
3230
3339
|
energySecondary: a?.energySecondary ?? "#C8232C",
|
|
3231
3340
|
coreGlow: a?.coreGlow ?? "#FFF7F5",
|
|
3232
3341
|
sporeAccent: a?.sporeAccent ?? "#4A5559"
|
|
3233
3342
|
};
|
|
3234
3343
|
return t(() => {
|
|
3235
|
-
|
|
3344
|
+
S.current = performance.now();
|
|
3236
3345
|
}, [s]), t(() => {
|
|
3237
3346
|
let e = y.current;
|
|
3238
3347
|
if (!e || typeof IntersectionObserver > "u") return;
|
|
@@ -3245,8 +3354,8 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3245
3354
|
}, []), t(() => {
|
|
3246
3355
|
let t = y.current;
|
|
3247
3356
|
if (!t) return;
|
|
3248
|
-
let r = document.createElement("canvas"), i = document.createElement("canvas"), a = document.createElement("canvas"), o = document.createElement("canvas"), h = document.createElement("canvas"), g = [],
|
|
3249
|
-
e[0] && (k = e[0].contentRect,
|
|
3357
|
+
let r = document.createElement("canvas"), i = document.createElement("canvas"), a = document.createElement("canvas"), o = document.createElement("canvas"), h = document.createElement("canvas"), g = [], T = "", D = 0, k = t.getBoundingClientRect(), A = new ResizeObserver((e) => {
|
|
3358
|
+
e[0] && (k = e[0].contentRect, T = "");
|
|
3250
3359
|
});
|
|
3251
3360
|
A.observe(t);
|
|
3252
3361
|
let j = (e, t, n) => {
|
|
@@ -3261,29 +3370,29 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3261
3370
|
e.width = c, e.height = u;
|
|
3262
3371
|
});
|
|
3263
3372
|
let d = e < 640, y = Math.min(e / (d ? 720 : 1200), t / 700), b = r.getContext("2d");
|
|
3264
|
-
if (b &&
|
|
3373
|
+
if (b && C.sunIntensity > .02) {
|
|
3265
3374
|
b.save(), b.setTransform(n, 0, 0, n, 0, 0), b.clearRect(0, 0, e, t);
|
|
3266
|
-
let r = e * (d ? .75 : .795), i = t * (d ? .23 : .275), a = Math.min(e, t) * (d ? .185 : .165) * Math.min(1.3,
|
|
3267
|
-
|
|
3375
|
+
let r = e * (d ? .75 : .795), i = t * (d ? .23 : .275), a = Math.min(e, t) * (d ? .185 : .165) * Math.min(1.3, C.sunIntensity);
|
|
3376
|
+
L(b, r, i, a * 1.08, a * 1.05, .15, E.energySecondary, E.energySecondary, .88 * Math.min(1, C.sunIntensity), s + 11), b.save(), b.beginPath(), b.arc(r, i, a * .94, 0, Math.PI * 2), b.fillStyle = _(E.energySecondary, .94 * Math.min(1, C.sunIntensity)), b.fill(), b.restore(), O(b, {
|
|
3268
3377
|
spine: m(r, i, a * .92, a * .92, -Math.PI * .85, Math.PI * .95, 0, 0, 64, .12, s + 23),
|
|
3269
3378
|
maxWidth: a * .24,
|
|
3270
3379
|
bristleCount: 16,
|
|
3271
3380
|
dryBrushGap: .46,
|
|
3272
3381
|
taperStart: .5,
|
|
3273
3382
|
taperEnd: .92,
|
|
3274
|
-
color:
|
|
3275
|
-
alpha: .95 * Math.min(1,
|
|
3383
|
+
color: E.energySecondary,
|
|
3384
|
+
alpha: .95 * Math.min(1, C.sunIntensity),
|
|
3276
3385
|
headReach: 1,
|
|
3277
3386
|
seed: s + 29
|
|
3278
3387
|
}), b.restore();
|
|
3279
3388
|
}
|
|
3280
3389
|
let x = i.getContext("2d");
|
|
3281
3390
|
if (x) {
|
|
3282
|
-
if (x.save(), x.setTransform(n, 0, 0, n, 0, 0), x.clearRect(0, 0, e, t),
|
|
3283
|
-
let n = e * (d ? .68 : .735), r = t * (d ? .52 : .485), i = e * (d ? .065 : .046), a = e * (d ? .16 : .33), o = e * .99, c = t * .79, u = Math.min(1,
|
|
3391
|
+
if (x.save(), x.setTransform(n, 0, 0, n, 0, 0), x.clearRect(0, 0, e, t), C.mountainIntensity > .02) {
|
|
3392
|
+
let n = e * (d ? .68 : .735), r = t * (d ? .52 : .485), i = e * (d ? .065 : .046), a = e * (d ? .16 : .33), o = e * .99, c = t * .79, u = Math.min(1, C.mountainIntensity);
|
|
3284
3393
|
x.save(), x.beginPath(), x.moveTo(a, c), x.quadraticCurveTo(e * (d ? .48 : .58), t * .68, n - i, r + 4 * y), x.lineTo(n - i * .3, r), x.lineTo(n + i * .45, r + 2 * y), x.lineTo(n + i, r + 6 * y), x.quadraticCurveTo(e * .84, t * .65, o, c - 12 * y), x.closePath();
|
|
3285
3394
|
let f = x.createLinearGradient(n, r, n, c);
|
|
3286
|
-
f.addColorStop(0, _(
|
|
3395
|
+
f.addColorStop(0, _(E.inkPrimary, .92 * u)), f.addColorStop(.45, _(v(E.inkPrimary, E.sporeAccent, .45), .78 * u)), f.addColorStop(.85, _(E.sporeAccent, .32 * u)), f.addColorStop(1, _(E.sporeAccent, 0)), x.fillStyle = f, x.fill(), x.restore(), O(x, {
|
|
3287
3396
|
spine: p({
|
|
3288
3397
|
x: n - i,
|
|
3289
3398
|
y: r + 4 * y
|
|
@@ -3299,11 +3408,11 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3299
3408
|
dryBrushGap: .38,
|
|
3300
3409
|
taperStart: .4,
|
|
3301
3410
|
taperEnd: .95,
|
|
3302
|
-
color:
|
|
3411
|
+
color: E.inkPrimary,
|
|
3303
3412
|
alpha: .88 * u,
|
|
3304
3413
|
headReach: 1,
|
|
3305
3414
|
seed: s + 107
|
|
3306
|
-
}),
|
|
3415
|
+
}), O(x, {
|
|
3307
3416
|
spine: p({
|
|
3308
3417
|
x: n + i,
|
|
3309
3418
|
y: r + 5 * y
|
|
@@ -3319,7 +3428,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3319
3428
|
dryBrushGap: .42,
|
|
3320
3429
|
taperStart: .4,
|
|
3321
3430
|
taperEnd: .95,
|
|
3322
|
-
color:
|
|
3431
|
+
color: E.inkPrimary,
|
|
3323
3432
|
alpha: .85 * u,
|
|
3324
3433
|
headReach: 1,
|
|
3325
3434
|
seed: s + 113
|
|
@@ -3327,7 +3436,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3327
3436
|
let m = l(s + 151);
|
|
3328
3437
|
for (let a = 0; a < 12; a++) {
|
|
3329
3438
|
let o = a / 11 * 2 - 1, c = n + o * i * .92, l = r + Math.abs(o) * 6 * y, d = n + o * e * (.14 + m() * .08), f = r + t * (.11 + m() * .09);
|
|
3330
|
-
|
|
3439
|
+
O(x, {
|
|
3331
3440
|
spine: p({
|
|
3332
3441
|
x: c,
|
|
3333
3442
|
y: l
|
|
@@ -3343,7 +3452,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3343
3452
|
dryBrushGap: .32,
|
|
3344
3453
|
taperStart: .25,
|
|
3345
3454
|
taperEnd: .92,
|
|
3346
|
-
color: a % 2 == 0 ? "#FAF8F5" :
|
|
3455
|
+
color: a % 2 == 0 ? "#FAF8F5" : E.inkPrimary,
|
|
3347
3456
|
alpha: (a % 2 == 0 ? .95 : .78) * u,
|
|
3348
3457
|
headReach: 1,
|
|
3349
3458
|
roundHeadCap: !1,
|
|
@@ -3351,26 +3460,26 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3351
3460
|
});
|
|
3352
3461
|
}
|
|
3353
3462
|
}
|
|
3354
|
-
let r = Math.min(1,
|
|
3463
|
+
let r = Math.min(1, C.waterReflectionIntensity), a = Math.min(1, C.mistKumoIntensity);
|
|
3355
3464
|
if (a > .02) {
|
|
3356
3465
|
let n = null;
|
|
3357
3466
|
try {
|
|
3358
|
-
n =
|
|
3467
|
+
n = Je.canvas(i);
|
|
3359
3468
|
} catch {
|
|
3360
3469
|
n = null;
|
|
3361
3470
|
}
|
|
3362
3471
|
let r = {
|
|
3363
|
-
...
|
|
3472
|
+
...w,
|
|
3364
3473
|
colors: {
|
|
3365
|
-
inkPrimary: v(
|
|
3474
|
+
inkPrimary: v(E.sporeAccent, "#D6D1C7", .6),
|
|
3366
3475
|
energySecondary: "#EFECE4",
|
|
3367
3476
|
coreGlow: "#FAF8F4",
|
|
3368
|
-
sporeAccent:
|
|
3477
|
+
sporeAccent: E.sporeAccent
|
|
3369
3478
|
}
|
|
3370
3479
|
};
|
|
3371
3480
|
for (let i = 0; i < 4; i++) {
|
|
3372
3481
|
let o = e * (.45 + i * .14), c = t * (.75 + i % 2 * .03);
|
|
3373
|
-
|
|
3482
|
+
P(x, n, r, y, {
|
|
3374
3483
|
startX: o - 75 * y,
|
|
3375
3484
|
startY: c,
|
|
3376
3485
|
endX: o + 75 * y,
|
|
@@ -3385,7 +3494,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3385
3494
|
}
|
|
3386
3495
|
if (r > .02) {
|
|
3387
3496
|
let n = t * .845;
|
|
3388
|
-
|
|
3497
|
+
O(x, {
|
|
3389
3498
|
spine: f({
|
|
3390
3499
|
x: e * (d ? .46 : .56),
|
|
3391
3500
|
y: n + 6 * y
|
|
@@ -3404,7 +3513,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3404
3513
|
dryBrushGap: .22,
|
|
3405
3514
|
taperStart: .75,
|
|
3406
3515
|
taperEnd: .65,
|
|
3407
|
-
color:
|
|
3516
|
+
color: E.inkPrimary,
|
|
3408
3517
|
alpha: .94 * r,
|
|
3409
3518
|
headReach: 1,
|
|
3410
3519
|
seed: s + 521
|
|
@@ -3445,14 +3554,14 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3445
3554
|
x: e.x,
|
|
3446
3555
|
y: e.y - e.h
|
|
3447
3556
|
}, 16, .15, s + 600 + t);
|
|
3448
|
-
|
|
3557
|
+
O(x, {
|
|
3449
3558
|
spine: n,
|
|
3450
3559
|
maxWidth: 4.2 * y,
|
|
3451
3560
|
bristleCount: 5,
|
|
3452
3561
|
dryBrushGap: .15,
|
|
3453
3562
|
taperStart: .2,
|
|
3454
3563
|
taperEnd: .7,
|
|
3455
|
-
color:
|
|
3564
|
+
color: E.inkPrimary,
|
|
3456
3565
|
alpha: .95 * r,
|
|
3457
3566
|
seed: s + 610 + t
|
|
3458
3567
|
});
|
|
@@ -3467,14 +3576,14 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3467
3576
|
x: e.x + a,
|
|
3468
3577
|
y: i + 2 * y
|
|
3469
3578
|
}, 18, .2, s + 630 + t * 10 + n);
|
|
3470
|
-
|
|
3579
|
+
O(x, {
|
|
3471
3580
|
spine: o,
|
|
3472
3581
|
maxWidth: 9 * y,
|
|
3473
3582
|
bristleCount: 7,
|
|
3474
3583
|
dryBrushGap: .3,
|
|
3475
3584
|
taperStart: .7,
|
|
3476
3585
|
taperEnd: .7,
|
|
3477
|
-
color:
|
|
3586
|
+
color: E.inkPrimary,
|
|
3478
3587
|
alpha: .92 * r,
|
|
3479
3588
|
seed: s + 650 + t * 10 + n
|
|
3480
3589
|
});
|
|
@@ -3484,10 +3593,10 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3484
3593
|
x.restore();
|
|
3485
3594
|
}
|
|
3486
3595
|
g = [];
|
|
3487
|
-
let
|
|
3488
|
-
if (
|
|
3489
|
-
|
|
3490
|
-
let r = Math.min(1,
|
|
3596
|
+
let S = a.getContext("2d");
|
|
3597
|
+
if (S && C.sakuraBranchIntensity > .02) {
|
|
3598
|
+
S.save(), S.setTransform(n, 0, 0, n, 0, 0), S.clearRect(0, 0, e, t);
|
|
3599
|
+
let r = Math.min(1, C.sakuraBranchIntensity), i = f({
|
|
3491
3600
|
x: -24 * y,
|
|
3492
3601
|
y: t * .68
|
|
3493
3602
|
}, {
|
|
@@ -3500,14 +3609,14 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3500
3609
|
x: e * .46,
|
|
3501
3610
|
y: -t * .08
|
|
3502
3611
|
}, 80, .28, s + 701);
|
|
3503
|
-
|
|
3612
|
+
O(S, {
|
|
3504
3613
|
spine: i,
|
|
3505
|
-
maxWidth: 44 * y * Math.min(1.25,
|
|
3614
|
+
maxWidth: 44 * y * Math.min(1.25, C.sakuraBranchIntensity),
|
|
3506
3615
|
bristleCount: 24,
|
|
3507
3616
|
dryBrushGap: .28,
|
|
3508
3617
|
taperStart: .1,
|
|
3509
3618
|
taperEnd: .99,
|
|
3510
|
-
color:
|
|
3619
|
+
color: E.inkPrimary,
|
|
3511
3620
|
alpha: .96 * r,
|
|
3512
3621
|
headReach: 1,
|
|
3513
3622
|
roundHeadCap: !0,
|
|
@@ -3612,25 +3721,25 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3612
3721
|
], o = [i];
|
|
3613
3722
|
if (a.forEach((e, t) => {
|
|
3614
3723
|
let n = f(e.p0, e.p1, e.p2, e.p3, 48, .24, s + 750 + t * 31);
|
|
3615
|
-
o.push(n),
|
|
3724
|
+
o.push(n), O(S, {
|
|
3616
3725
|
spine: n,
|
|
3617
|
-
maxWidth: e.width * Math.min(1.25,
|
|
3726
|
+
maxWidth: e.width * Math.min(1.25, C.sakuraBranchIntensity),
|
|
3618
3727
|
bristleCount: 14,
|
|
3619
3728
|
dryBrushGap: .26,
|
|
3620
3729
|
taperStart: .12,
|
|
3621
3730
|
taperEnd: .99,
|
|
3622
|
-
color:
|
|
3731
|
+
color: E.inkPrimary,
|
|
3623
3732
|
alpha: .95 * r,
|
|
3624
3733
|
headReach: 1,
|
|
3625
3734
|
roundHeadCap: !1,
|
|
3626
3735
|
seed: s + 760 + t * 31
|
|
3627
3736
|
});
|
|
3628
|
-
}),
|
|
3737
|
+
}), C.sakuraPetalsIntensity > .02) {
|
|
3629
3738
|
let e = l(s + 881);
|
|
3630
3739
|
o.forEach((t, n) => {
|
|
3631
3740
|
let r = n === 0 ? 18 : 11;
|
|
3632
3741
|
for (let i = 0; i < r; i++) {
|
|
3633
|
-
let a = .12 + i / Math.max(1, r - 1) * .87, o = t[Math.min(t.length - 1, Math.floor(a * (t.length - 1)))], c = 1 - a * .55, l = (e() - .45) * 26 * y * c, u = o.x + o.nx * l, d = o.y + o.ny * l, f = (8.5 + e() * 10.5) * y * Math.min(1.25,
|
|
3742
|
+
let a = .12 + i / Math.max(1, r - 1) * .87, o = t[Math.min(t.length - 1, Math.floor(a * (t.length - 1)))], c = 1 - a * .55, l = (e() - .45) * 26 * y * c, u = o.x + o.nx * l, d = o.y + o.ny * l, f = (8.5 + e() * 10.5) * y * Math.min(1.25, C.sakuraPetalsIntensity), p = .48 + a * .26 + n * .025 + e() * .05;
|
|
3634
3743
|
g.push({
|
|
3635
3744
|
bx: u,
|
|
3636
3745
|
by: d,
|
|
@@ -3642,77 +3751,77 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3642
3751
|
}
|
|
3643
3752
|
});
|
|
3644
3753
|
}
|
|
3645
|
-
|
|
3754
|
+
S.restore();
|
|
3646
3755
|
}
|
|
3647
|
-
let
|
|
3648
|
-
if (
|
|
3649
|
-
|
|
3650
|
-
let e = Math.min(1,
|
|
3756
|
+
let T = o.getContext("2d");
|
|
3757
|
+
if (T) {
|
|
3758
|
+
T.save(), T.setTransform(1, 0, 0, 1, 0, 0), T.clearRect(0, 0, c, u), T.drawImage(r, 0, 0), T.drawImage(i, 0, 0), T.drawImage(a, 0, 0), T.setTransform(n, 0, 0, n, 0, 0);
|
|
3759
|
+
let e = Math.min(1, C.sakuraPetalsIntensity);
|
|
3651
3760
|
g.forEach((t) => {
|
|
3652
|
-
let n =
|
|
3653
|
-
n.addColorStop(0, _(
|
|
3654
|
-
}),
|
|
3761
|
+
let n = T.createRadialGradient(t.bx, t.by, 0, t.bx, t.by, t.radius * 1.45);
|
|
3762
|
+
n.addColorStop(0, _(E.energySecondary, .22 * e)), n.addColorStop(.65, _(E.energySecondary, .08 * e)), n.addColorStop(1, _(E.energySecondary, 0)), T.fillStyle = n, T.beginPath(), T.arc(t.bx, t.by, t.radius * 1.45, 0, Math.PI * 2), T.fill(), z(T, t.bx, t.by, t.radius, t.angle, E.energySecondary, E.coreGlow, E.inkPrimary, .95 * e, t.seed);
|
|
3763
|
+
}), T.restore();
|
|
3655
3764
|
}
|
|
3656
|
-
},
|
|
3765
|
+
}, M = (f) => {
|
|
3657
3766
|
if (!b.current && e === 1) {
|
|
3658
|
-
c && (
|
|
3767
|
+
c && (D = requestAnimationFrame(M));
|
|
3659
3768
|
return;
|
|
3660
3769
|
}
|
|
3661
|
-
let m = Math.min(1.75, window.devicePixelRatio || 1), v = Math.max(300, Math.floor(k.width || t.clientWidth || 800)), y = Math.max(220, Math.floor(k.height || t.clientHeight || 500)),
|
|
3662
|
-
(t.width !==
|
|
3663
|
-
let
|
|
3664
|
-
|
|
3770
|
+
let m = Math.min(1.75, window.devicePixelRatio || 1), v = Math.max(300, Math.floor(k.width || t.clientWidth || 800)), y = Math.max(220, Math.floor(k.height || t.clientHeight || 500)), w = Math.floor(v * m), A = Math.floor(y * m);
|
|
3771
|
+
(t.width !== w || t.height !== A) && (t.width = w, t.height = A, T = "");
|
|
3772
|
+
let N = `${w}x${A}:${s}:${C.sunIntensity}:${C.mountainIntensity}:${C.sakuraBranchIntensity}:${C.sakuraPetalsIntensity}:${C.waterReflectionIntensity}:${C.mistKumoIntensity}:${E.inkPrimary}:${E.energySecondary}`;
|
|
3773
|
+
T !== N && (j(v, y, m), T = N);
|
|
3665
3774
|
let P = t.getContext("2d");
|
|
3666
3775
|
if (!P) return;
|
|
3667
|
-
let F = (f -
|
|
3776
|
+
let F = (f - S.current) / 1e3, I = Math.min(1, F / 2.4), L = n?.current === void 0 ? e === void 0 ? I : e : n.current, R = Math.max(0, Math.min(1, L)), V = c ? F * u : 1.5, H = x.current, U = H.active ? H.x : .5, W = H.active ? H.y : .5;
|
|
3668
3777
|
H.smoothX += (U - H.smoothX) * .08, H.smoothY += (W - H.smoothY) * .08;
|
|
3669
3778
|
let G = v < 640, K = Math.min(v / (G ? 720 : 1200), y / 700), q = (H.smoothX - .5) * 14 * K, J = (H.smoothY - .5) * 8 * K;
|
|
3670
|
-
if (P.save(), P.setTransform(m, 0, 0, m, 0, 0), P.clearRect(0, 0, v, y),
|
|
3779
|
+
if (P.save(), P.setTransform(m, 0, 0, m, 0, 0), P.clearRect(0, 0, v, y), R >= .998) P.drawImage(o, q * .35, J * .3, v, y);
|
|
3671
3780
|
else {
|
|
3672
|
-
let e = v * (G ? .75 : .795) + q * .35, t = y * (G ? .23 : .275) + J * .25, n = Math.min(v, y) * (G ? .185 : .165) * Math.min(1.3,
|
|
3673
|
-
if (
|
|
3781
|
+
let e = v * (G ? .75 : .795) + q * .35, t = y * (G ? .23 : .275) + J * .25, n = Math.min(v, y) * (G ? .185 : .165) * Math.min(1.3, C.sunIntensity), o = Math.max(0, Math.min(1, R / .44));
|
|
3782
|
+
if (C.sunIntensity > .02 && o > .005) {
|
|
3674
3783
|
let i = 1 - (1 - o) ** 3, a = n * (.35 + i * .95), s = P.createRadialGradient(e, t, a * .08, e, t, a);
|
|
3675
|
-
s.addColorStop(0, _(
|
|
3784
|
+
s.addColorStop(0, _(E.energySecondary, .85 * i)), s.addColorStop(.65, _(E.energySecondary, .55 * i)), s.addColorStop(.88, _(E.energySecondary, .24 * i)), s.addColorStop(1, _(E.energySecondary, 0)), P.save(), P.fillStyle = s, P.beginPath(), P.arc(e, t, a, 0, Math.PI * 2), P.fill(), P.globalAlpha = o ** 1.4, P.drawImage(r, q * .35, J * .3, v, y), P.restore();
|
|
3676
3785
|
}
|
|
3677
|
-
let s = Math.max(0, Math.min(1, (
|
|
3786
|
+
let s = Math.max(0, Math.min(1, (R - .1) / .52));
|
|
3678
3787
|
if (s > .005) {
|
|
3679
3788
|
let e = h.getContext("2d");
|
|
3680
3789
|
if (e) {
|
|
3681
|
-
e.save(), e.setTransform(1, 0, 0, 1, 0, 0), e.clearRect(0, 0,
|
|
3790
|
+
e.save(), e.setTransform(1, 0, 0, 1, 0, 0), e.clearRect(0, 0, w, A), e.drawImage(i, 0, 0), e.setTransform(m, 0, 0, m, 0, 0), e.globalCompositeOperation = "destination-in";
|
|
3682
3791
|
let t = 1 - (1 - s) ** 2.5, n = v * .72, r = y * .65, a = Math.hypot(v * .75, y * .6) * t, o = e.createRadialGradient(n, r, a * .2, n, r, Math.max(10, a));
|
|
3683
3792
|
o.addColorStop(0, "rgba(0,0,0,1)"), o.addColorStop(.82, "rgba(0,0,0,0.92)"), o.addColorStop(1, "rgba(0,0,0,0)"), e.fillStyle = o, e.fillRect(0, 0, v, y), e.restore(), P.drawImage(h, q * .35, J * .3, v, y);
|
|
3684
3793
|
}
|
|
3685
3794
|
}
|
|
3686
|
-
let c = Math.max(0, Math.min(1, (
|
|
3687
|
-
if (
|
|
3795
|
+
let c = Math.max(0, Math.min(1, (R - .08) / .46));
|
|
3796
|
+
if (C.sakuraBranchIntensity > .02 && c > .005) {
|
|
3688
3797
|
let e = h.getContext("2d");
|
|
3689
3798
|
if (e) {
|
|
3690
|
-
e.save(), e.setTransform(1, 0, 0, 1, 0, 0), e.clearRect(0, 0,
|
|
3799
|
+
e.save(), e.setTransform(1, 0, 0, 1, 0, 0), e.clearRect(0, 0, w, A), e.drawImage(a, 0, 0), e.setTransform(m, 0, 0, m, 0, 0), e.globalCompositeOperation = "destination-in";
|
|
3691
3800
|
let t = 1 - (1 - c) ** 2.2, n = Math.hypot(v * .68, y * .85) * 1.12, r = Math.max(12, n * t), i = y * .64, o = e.createRadialGradient(0, i, r * .55, 0, i, r);
|
|
3692
3801
|
o.addColorStop(0, "rgba(0,0,0,1)"), o.addColorStop(.85, "rgba(0,0,0,1)"), o.addColorStop(1, "rgba(0,0,0,0)"), e.fillStyle = o, e.fillRect(0, 0, v, y), e.restore(), P.drawImage(h, q * .35, J * .3, v, y);
|
|
3693
3802
|
}
|
|
3694
3803
|
}
|
|
3695
|
-
if (
|
|
3696
|
-
let e = Math.min(1,
|
|
3804
|
+
if (C.sakuraPetalsIntensity > .02 && R > .48) {
|
|
3805
|
+
let e = Math.min(1, C.sakuraPetalsIntensity);
|
|
3697
3806
|
P.save(), P.translate(q * .35, J * .3);
|
|
3698
3807
|
for (let t = 0; t < g.length; t++) {
|
|
3699
|
-
let n = g[t], r = (
|
|
3808
|
+
let n = g[t], r = (R - n.stainStart) / .16;
|
|
3700
3809
|
if (r <= .01) continue;
|
|
3701
3810
|
let i = Math.min(1, r), a = 1 - (1 - i) ** 3, o = n.radius * (.4 + a * 1.25), s = i < .5 ? i / .5 * .42 * e : (.42 - (i - .5) / .5 * .2) * e, c = P.createRadialGradient(n.bx, n.by, 0, n.bx, n.by, o);
|
|
3702
|
-
if (c.addColorStop(0, _(
|
|
3811
|
+
if (c.addColorStop(0, _(E.energySecondary, s * 1.3)), c.addColorStop(.6, _(E.energySecondary, s * .7)), c.addColorStop(1, _(E.energySecondary, 0)), P.fillStyle = c, P.beginPath(), P.arc(n.bx, n.by, o, 0, Math.PI * 2), P.fill(), i > .18) {
|
|
3703
3812
|
let t = 1 - (1 - Math.min(1, (i - .18) / .82)) ** 2.5;
|
|
3704
|
-
|
|
3813
|
+
z(P, n.bx, n.by, n.radius * (.45 + t * .55), n.angle, E.energySecondary, E.coreGlow, E.inkPrimary, .95 * e * t, n.seed);
|
|
3705
3814
|
}
|
|
3706
3815
|
}
|
|
3707
3816
|
P.restore();
|
|
3708
3817
|
}
|
|
3709
3818
|
}
|
|
3710
|
-
let Y = Math.max(0, Math.min(1,
|
|
3711
|
-
if (
|
|
3712
|
-
let e = v * (G ? .75 : .795) + q * .35, t = y * (G ? .23 : .275) + J * .25, n = Math.min(v, y) * (G ? .185 : .165) * Y ** .45 * Math.min(1.3,
|
|
3819
|
+
let Y = Math.max(0, Math.min(1, R * 1.6));
|
|
3820
|
+
if (C.sunIntensity > .02 && Y > .2) {
|
|
3821
|
+
let e = v * (G ? .75 : .795) + q * .35, t = y * (G ? .23 : .275) + J * .25, n = Math.min(v, y) * (G ? .185 : .165) * Y ** .45 * Math.min(1.3, C.sunIntensity), r = l(s + 47);
|
|
3713
3822
|
for (let i = 0; i < 7; i++) {
|
|
3714
3823
|
let a = t + n * (.58 + i / 7 * .72), o = n * (1.12 - Math.abs(i - 2.5) * .12 + Math.sin(V * 1.5 + i) * .04), c = (r() - .35) * n * .45;
|
|
3715
|
-
|
|
3824
|
+
O(P, {
|
|
3716
3825
|
spine: p({
|
|
3717
3826
|
x: e - o + c,
|
|
3718
3827
|
y: a
|
|
@@ -3728,20 +3837,20 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3728
3837
|
dryBrushGap: .48,
|
|
3729
3838
|
taperStart: .85,
|
|
3730
3839
|
taperEnd: .85,
|
|
3731
|
-
color:
|
|
3732
|
-
alpha: (.8 - i * .06) * Math.min(1,
|
|
3840
|
+
color: E.energySecondary,
|
|
3841
|
+
alpha: (.8 - i * .06) * Math.min(1, C.sunIntensity) * Y,
|
|
3733
3842
|
headReach: Y,
|
|
3734
3843
|
roundHeadCap: !1,
|
|
3735
3844
|
seed: s + i * 41
|
|
3736
3845
|
});
|
|
3737
3846
|
}
|
|
3738
3847
|
}
|
|
3739
|
-
let ee = Math.max(0, Math.min(1, (
|
|
3740
|
-
if (
|
|
3741
|
-
let e = Math.min(1,
|
|
3848
|
+
let ee = Math.max(0, Math.min(1, (R - .2) * 1.4));
|
|
3849
|
+
if (C.waterReflectionIntensity > .02 && ee > .15) {
|
|
3850
|
+
let e = Math.min(1, C.waterReflectionIntensity), t = l(s + 401);
|
|
3742
3851
|
for (let n = 0; n < 9; n++) {
|
|
3743
3852
|
let r = y * (.81 + n / 9 * .16), i = v * (.28 + t() * .62) + Math.sin(V * .9 + n) * 8 * K, a = v * (.08 + t() * .16);
|
|
3744
|
-
|
|
3853
|
+
O(P, {
|
|
3745
3854
|
spine: p({
|
|
3746
3855
|
x: i - a,
|
|
3747
3856
|
y: r
|
|
@@ -3757,7 +3866,7 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3757
3866
|
dryBrushGap: .52,
|
|
3758
3867
|
taperStart: .85,
|
|
3759
3868
|
taperEnd: .85,
|
|
3760
|
-
color: n % 3 == 0 ?
|
|
3869
|
+
color: n % 3 == 0 ? E.inkPrimary : E.sporeAccent,
|
|
3761
3870
|
alpha: (.22 + n % 3 * .11) * e * ee,
|
|
3762
3871
|
headReach: ee,
|
|
3763
3872
|
roundHeadCap: !1,
|
|
@@ -3765,31 +3874,31 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3765
3874
|
});
|
|
3766
3875
|
}
|
|
3767
3876
|
}
|
|
3768
|
-
if (
|
|
3769
|
-
let e = Math.min(1, (
|
|
3877
|
+
if (C.sakuraPetalsIntensity > .05 && R > .62) {
|
|
3878
|
+
let e = Math.min(1, (R - .62) / .3), t = l(s + 1201), n = Math.round((G ? 14 : 22) * Math.min(1.4, C.sakuraPetalsIntensity));
|
|
3770
3879
|
for (let r = 0; r < n; r++) {
|
|
3771
3880
|
let n = t() * v * .75, i = t() * y * .82, a = 18 + t() * 24, o = (n + V * a * 1.35 + Math.sin(V * 1.5 + r) * 20 * K) % (v * .95), c = (i + V * a * .65 + Math.cos(V * 1.1 + r) * 12 * K) % (y * .88), l = d(o * .005, c * .005, s + r);
|
|
3772
|
-
|
|
3881
|
+
B(P, o, c, (5.5 + r % 4 * 2) * K, V * (1.2 + r % 3 * .4) + l * Math.PI, .35 + .6 * Math.abs(Math.sin(V * 2.1 + r)), E.energySecondary, .88 * e);
|
|
3773
3882
|
}
|
|
3774
3883
|
}
|
|
3775
|
-
P.restore(), (c || e === void 0 && !n) && (
|
|
3884
|
+
P.restore(), (c || e === void 0 && !n) && (D = requestAnimationFrame(M));
|
|
3776
3885
|
};
|
|
3777
|
-
return
|
|
3778
|
-
cancelAnimationFrame(
|
|
3886
|
+
return D = requestAnimationFrame(M), () => {
|
|
3887
|
+
cancelAnimationFrame(D), A.disconnect();
|
|
3779
3888
|
};
|
|
3780
3889
|
}, [
|
|
3781
3890
|
e,
|
|
3782
3891
|
n,
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3892
|
+
C.sunIntensity,
|
|
3893
|
+
C.mountainIntensity,
|
|
3894
|
+
C.sakuraBranchIntensity,
|
|
3895
|
+
C.sakuraPetalsIntensity,
|
|
3896
|
+
C.waterReflectionIntensity,
|
|
3897
|
+
C.mistKumoIntensity,
|
|
3898
|
+
E.inkPrimary,
|
|
3899
|
+
E.energySecondary,
|
|
3900
|
+
E.coreGlow,
|
|
3901
|
+
E.sporeAccent,
|
|
3793
3902
|
s,
|
|
3794
3903
|
c,
|
|
3795
3904
|
u
|
|
@@ -3805,13 +3914,13 @@ var Ze = ({ src: e = "/assets/aistudio/image_8f7809d3.png", alt: n = "Pintura Su
|
|
|
3805
3914
|
},
|
|
3806
3915
|
className: `block w-full h-full select-none ${h}`
|
|
3807
3916
|
});
|
|
3808
|
-
},
|
|
3917
|
+
}, tt = {
|
|
3809
3918
|
inkPrimary: "#141413",
|
|
3810
3919
|
energySecondary: "#C8232C",
|
|
3811
3920
|
coreGlow: "#FFF5F5",
|
|
3812
3921
|
sporeAccent: "#4A4742"
|
|
3813
3922
|
};
|
|
3814
|
-
function
|
|
3923
|
+
function nt(e, t = 880, n = 460) {
|
|
3815
3924
|
let r = (e) => e / 880 * t, i = (e) => e / 460 * n, a = Math.max(.55, Math.min(t / 820, n / 440));
|
|
3816
3925
|
return [
|
|
3817
3926
|
{
|
|
@@ -4009,10 +4118,10 @@ function et(e, t = 880, n = 460) {
|
|
|
4009
4118
|
}
|
|
4010
4119
|
];
|
|
4011
4120
|
}
|
|
4012
|
-
function
|
|
4121
|
+
function rt(e, t, n = 1) {
|
|
4013
4122
|
if (t.points.length < 2 || n <= .01) return;
|
|
4014
4123
|
let r = h(t.points, .14, t.seed), i = t.points.reduce((e, t) => e + t.pressure, 0) / t.points.length, a = 32 * t.thickness * (.45 + i * .85), { inkPrimary: o, energySecondary: s, coreGlow: c, sporeAccent: u } = t.colors, d = {
|
|
4015
|
-
...
|
|
4124
|
+
...w,
|
|
4016
4125
|
colors: t.colors,
|
|
4017
4126
|
seed: t.seed
|
|
4018
4127
|
};
|
|
@@ -4020,11 +4129,11 @@ function tt(e, t, n = 1) {
|
|
|
4020
4129
|
let c = Math.max(1, Math.floor(r.length / 7)), l = Math.max(1, Math.floor(r.length * n));
|
|
4021
4130
|
for (let n = 0; n < l; n += c) {
|
|
4022
4131
|
let c = r[n], l = Math.atan2(-c.nx, c.ny);
|
|
4023
|
-
|
|
4132
|
+
L(e, c.x, c.y, a * .95 * (.6 + i * .6), a * .82 * (.6 + i * .6), l, s, o, .52, t.seed + n * 19);
|
|
4024
4133
|
}
|
|
4025
4134
|
} else if (t.brushType === "sumi_kasure") {
|
|
4026
4135
|
let i = r[Math.floor(r.length * .45)], s = Math.atan2(-r[0].nx, r[0].ny);
|
|
4027
|
-
|
|
4136
|
+
L(e, i.x, i.y, a * 1.3, a * .7, s, u, o, .16 * n, t.seed + 7), O(e, {
|
|
4028
4137
|
spine: r,
|
|
4029
4138
|
maxWidth: a,
|
|
4030
4139
|
bristleCount: t.bristleCount,
|
|
@@ -4037,7 +4146,7 @@ function tt(e, t, n = 1) {
|
|
|
4037
4146
|
seed: t.seed
|
|
4038
4147
|
});
|
|
4039
4148
|
} else if (t.brushType === "sakura_branch") {
|
|
4040
|
-
|
|
4149
|
+
O(e, {
|
|
4041
4150
|
spine: r,
|
|
4042
4151
|
maxWidth: a * .82,
|
|
4043
4152
|
bristleCount: t.bristleCount,
|
|
@@ -4053,12 +4162,12 @@ function tt(e, t, n = 1) {
|
|
|
4053
4162
|
for (let n = 2; n < d; n += 3) {
|
|
4054
4163
|
if (u() < .22) continue;
|
|
4055
4164
|
let l = r[n], d = (u() - .48) * a * 1.15, f = l.x + l.nx * d, p = l.y + l.ny * d, m = (6.5 + u() * 8.5) * (.7 + i * .5);
|
|
4056
|
-
u() > .55 &&
|
|
4165
|
+
u() > .55 && L(e, f, p, m * 1.45, m * 1.35, u() * Math.PI, s, o, .24, t.seed + n * 41), z(e, f, p, m, u() * Math.PI * 2, s, c, o, .94, t.seed + n * 29);
|
|
4057
4166
|
}
|
|
4058
|
-
} else if (t.brushType === "hokusai_wave")
|
|
4167
|
+
} else if (t.brushType === "hokusai_wave") N(e, null, r.slice(0, Math.max(6, Math.floor(r.length * n))), a * 1.35, 1, 6, d, 1, .95, t.seed);
|
|
4059
4168
|
else if (t.brushType === "suibokuga_flame") {
|
|
4060
4169
|
let i = r[0], o = r[Math.floor(r.length * .33 * n)] || i, s = r[Math.floor(r.length * .66 * n)] || o, c = r[Math.max(1, Math.floor((r.length - 1) * n))] || s;
|
|
4061
|
-
|
|
4170
|
+
A(e, null, d, 1, {
|
|
4062
4171
|
rootX: i.x,
|
|
4063
4172
|
rootY: i.y,
|
|
4064
4173
|
ctrl1X: o.x,
|
|
@@ -4074,7 +4183,7 @@ function tt(e, t, n = 1) {
|
|
|
4074
4183
|
});
|
|
4075
4184
|
} else if (t.brushType === "kumo_cloud") {
|
|
4076
4185
|
let i = r[0], o = r[Math.max(1, Math.floor((r.length - 1) * n))] || i;
|
|
4077
|
-
|
|
4186
|
+
P(e, null, d, 1, {
|
|
4078
4187
|
startX: i.x,
|
|
4079
4188
|
startY: i.y,
|
|
4080
4189
|
endX: o.x,
|
|
@@ -4086,7 +4195,7 @@ function tt(e, t, n = 1) {
|
|
|
4086
4195
|
});
|
|
4087
4196
|
}
|
|
4088
4197
|
}
|
|
4089
|
-
var
|
|
4198
|
+
var it = ({ activeBrush: n = "sakura_branch", colors: a = tt, strokeThickness: s = 1.25, bristleCount: c = 26, dryBrushGap: l = .32, activeLayer: u = "foreground", layerOpacities: d = {
|
|
4090
4199
|
background: 1,
|
|
4091
4200
|
midground: 1,
|
|
4092
4201
|
foreground: 1
|
|
@@ -4117,7 +4226,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4117
4226
|
].forEach((t) => {
|
|
4118
4227
|
let n = d[t] ?? 1;
|
|
4119
4228
|
n <= .01 || (e.save(), e.globalAlpha = n, S.current.forEach((n) => {
|
|
4120
|
-
n.layerId === t &&
|
|
4229
|
+
n.layerId === t && rt(e, n, 1);
|
|
4121
4230
|
}), e.restore());
|
|
4122
4231
|
}), e.restore();
|
|
4123
4232
|
}, [
|
|
@@ -4128,7 +4237,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4128
4237
|
let e = g.current;
|
|
4129
4238
|
if (!e) return;
|
|
4130
4239
|
let t = Math.min(1.75, window.devicePixelRatio || 1), n = Math.max(240, e.clientWidth || 640), r = Math.max(180, e.clientHeight || 420);
|
|
4131
|
-
!C.current && n > 0 && r > 0 && (S.current =
|
|
4240
|
+
!C.current && n > 0 && r > 0 && (S.current = nt(a, n, r), C.current = !0, v.current = !1), (e.width !== Math.floor(n * t) || e.height !== Math.floor(r * t)) && (e.width = Math.floor(n * t), e.height = Math.floor(r * t), v.current = !1), _.current ||= document.createElement("canvas");
|
|
4132
4241
|
let i = _.current;
|
|
4133
4242
|
(i.width !== e.width || i.height !== e.height) && (i.width = e.width, i.height = e.height, v.current = !1);
|
|
4134
4243
|
let o = e.getContext("2d"), s = i.getContext("2d");
|
|
@@ -4146,10 +4255,10 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4146
4255
|
t <= .01 || (o.save(), o.globalAlpha = t, S.current.forEach((t, n) => {
|
|
4147
4256
|
if (t.layerId !== e) return;
|
|
4148
4257
|
let r = n / i, a = (n + 1) / i, s = Math.max(0, Math.min(1, (u - r) / (a - r)));
|
|
4149
|
-
|
|
4258
|
+
rt(o, t, s);
|
|
4150
4259
|
}), o.restore());
|
|
4151
4260
|
}), o.restore();
|
|
4152
|
-
} else v.current ||= (O(s, n, r, t), !0), o.save(), o.setTransform(t, 0, 0, t, 0, 0), o.clearRect(0, 0, n, r), o.drawImage(i, 0, 0, n, r), w.current && (o.globalAlpha = d[w.current.layerId] ?? 1,
|
|
4261
|
+
} else v.current ||= (O(s, n, r, t), !0), o.save(), o.setTransform(t, 0, 0, t, 0, 0), o.clearRect(0, 0, n, r), o.drawImage(i, 0, 0, n, r), w.current && (o.globalAlpha = d[w.current.layerId] ?? 1, rt(o, w.current, 1)), o.restore();
|
|
4153
4262
|
}, [
|
|
4154
4263
|
a,
|
|
4155
4264
|
d,
|
|
@@ -4219,7 +4328,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4219
4328
|
},
|
|
4220
4329
|
loadFujiPresetStrokes: () => {
|
|
4221
4330
|
let e = g.current, t = Math.max(260, e?.clientWidth || 880), n = Math.max(200, e?.clientHeight || 460);
|
|
4222
|
-
S.current =
|
|
4331
|
+
S.current = nt(a, t, n), D(), A();
|
|
4223
4332
|
},
|
|
4224
4333
|
exportPng: () => {
|
|
4225
4334
|
let e = g.current;
|
|
@@ -4317,7 +4426,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4317
4426
|
style: { touchAction: "none" },
|
|
4318
4427
|
className: `block w-full h-full cursor-crosshair touch-none select-none ${h}`
|
|
4319
4428
|
});
|
|
4320
|
-
},
|
|
4429
|
+
}, at = ({ variant: e = "horizontal_kasure", inkColor: n = "#141413", accentColor: i = "#C8232C", bristleCount: a = 18, dryBrushGap: s = .36, thickness: c = 14, seed: l = 4096, animateOnMount: u = !0, className: d = "" }) => {
|
|
4321
4430
|
let h = r(null);
|
|
4322
4431
|
return t(() => {
|
|
4323
4432
|
let t = h.current;
|
|
@@ -4331,7 +4440,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4331
4440
|
let x = u ? Math.min(1, (h - o) / 950) : 1, S = 1 - (1 - x) ** 3.2;
|
|
4332
4441
|
if (e === "enso_seal") {
|
|
4333
4442
|
let e = Math.min(v, y) * .38;
|
|
4334
|
-
|
|
4443
|
+
O(b, {
|
|
4335
4444
|
spine: m(v * .5, y * .5, e, e * .96, -Math.PI * .8, Math.PI * .95, 0, -.05, 72, .12, l),
|
|
4336
4445
|
maxWidth: c,
|
|
4337
4446
|
bristleCount: a,
|
|
@@ -4342,7 +4451,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4342
4451
|
headReach: S,
|
|
4343
4452
|
seed: l
|
|
4344
4453
|
});
|
|
4345
|
-
} else if (e === "s_curve_flourish")
|
|
4454
|
+
} else if (e === "s_curve_flourish") O(b, {
|
|
4346
4455
|
spine: f({
|
|
4347
4456
|
x: 12,
|
|
4348
4457
|
y: y * .65
|
|
@@ -4379,7 +4488,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4379
4488
|
x: v - 12,
|
|
4380
4489
|
y: y * .42
|
|
4381
4490
|
}, 72, .18, l);
|
|
4382
|
-
|
|
4491
|
+
O(b, {
|
|
4383
4492
|
spine: e,
|
|
4384
4493
|
maxWidth: c,
|
|
4385
4494
|
bristleCount: a,
|
|
@@ -4397,9 +4506,9 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4397
4506
|
].forEach((t, r) => {
|
|
4398
4507
|
if (t > S) return;
|
|
4399
4508
|
let a = e[Math.floor(t * (e.length - 1))];
|
|
4400
|
-
a &&
|
|
4509
|
+
a && z(b, a.x, a.y + (r % 2 == 0 ? -4 : 4), Math.min(y * .32, c * .75), r * .9, i, "#FFF5F5", n, .95, l + r * 31);
|
|
4401
4510
|
});
|
|
4402
|
-
} else
|
|
4511
|
+
} else O(b, {
|
|
4403
4512
|
spine: p({
|
|
4404
4513
|
x: 8,
|
|
4405
4514
|
y: y * .55
|
|
@@ -4435,24 +4544,24 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4435
4544
|
ref: h,
|
|
4436
4545
|
className: `block w-full select-none ${d}`
|
|
4437
4546
|
});
|
|
4438
|
-
},
|
|
4547
|
+
}, ot = ({ config: e, mode: n = "player", fixedFrame: i = null, size: a = 256, paused: s = !1, onFrameTick: c, className: l = "" }) => {
|
|
4439
4548
|
let u = r(null), d = r(0), f = r(!0), p = {
|
|
4440
|
-
...
|
|
4549
|
+
...w,
|
|
4441
4550
|
...e,
|
|
4442
4551
|
colors: {
|
|
4443
|
-
...
|
|
4552
|
+
...w.colors,
|
|
4444
4553
|
...e?.colors
|
|
4445
4554
|
},
|
|
4446
4555
|
brush: {
|
|
4447
|
-
...
|
|
4556
|
+
...w.brush,
|
|
4448
4557
|
...e?.brush
|
|
4449
4558
|
},
|
|
4450
4559
|
dynamics: {
|
|
4451
|
-
...
|
|
4560
|
+
...w.dynamics,
|
|
4452
4561
|
...e?.dynamics
|
|
4453
4562
|
},
|
|
4454
4563
|
rough: {
|
|
4455
|
-
...
|
|
4564
|
+
...w.rough,
|
|
4456
4565
|
...e?.rough
|
|
4457
4566
|
}
|
|
4458
4567
|
};
|
|
@@ -4472,14 +4581,14 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4472
4581
|
let e = u.current;
|
|
4473
4582
|
if (!e) return;
|
|
4474
4583
|
if (n === "spritesheet") {
|
|
4475
|
-
|
|
4584
|
+
Xe(e, p, 4);
|
|
4476
4585
|
return;
|
|
4477
4586
|
}
|
|
4478
4587
|
e.width = a, e.height = a;
|
|
4479
4588
|
let t = e.getContext("2d");
|
|
4480
4589
|
if (!t) return;
|
|
4481
4590
|
let r = (e) => {
|
|
4482
|
-
t.clearRect(0, 0, a, a),
|
|
4591
|
+
t.clearRect(0, 0, a, a), Ye(t, e, p.totalFrames, a, a, p, p.bgMode === "checker" || p.bgMode === "transparent");
|
|
4483
4592
|
};
|
|
4484
4593
|
if (i !== null || s) {
|
|
4485
4594
|
r(i === null ? d.current : i);
|
|
@@ -4501,8 +4610,8 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4501
4610
|
ref: u,
|
|
4502
4611
|
className: `block max-w-full h-auto select-none ${p.bgMode === "checker" ? "checker-bg" : ""} ${l}`
|
|
4503
4612
|
});
|
|
4504
|
-
},
|
|
4505
|
-
let d = r(null), h = r(null), g = r(""), y = r(!0),
|
|
4613
|
+
}, st = ({ theme: e, scrollProgress: n = 1, scrollProgressRef: i, school: a = "fuji_sakura", seed: s = 8472, ambientMotion: c = !0, className: u = "" }) => {
|
|
4614
|
+
let d = r(null), h = r(null), g = r(""), y = r(!0), b = r(performance.now());
|
|
4506
4615
|
return t(() => {
|
|
4507
4616
|
let t = d.current;
|
|
4508
4617
|
if (!t || typeof IntersectionObserver > "u") return;
|
|
@@ -4523,23 +4632,23 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4523
4632
|
let t = d.current;
|
|
4524
4633
|
if (!t) return;
|
|
4525
4634
|
h.current ||= document.createElement("canvas");
|
|
4526
|
-
let r = h.current, o = 0, u = t.getBoundingClientRect(),
|
|
4635
|
+
let r = h.current, o = 0, u = t.getBoundingClientRect(), x = new ResizeObserver((e) => {
|
|
4527
4636
|
e[0] && (u = e[0].contentRect, g.current = "");
|
|
4528
4637
|
});
|
|
4529
|
-
|
|
4530
|
-
let
|
|
4638
|
+
x.observe(t);
|
|
4639
|
+
let C = (t, n, r, i, o, c) => {
|
|
4531
4640
|
if (t.save(), t.setTransform(o, 0, 0, o, 0, 0), t.clearRect(0, 0, r, i), c <= .005) {
|
|
4532
4641
|
t.restore();
|
|
4533
4642
|
return;
|
|
4534
4643
|
}
|
|
4535
|
-
let l = r < 640, u = Math.min(r / (l ? 760 : 1280), Math.max(.62, i / 520)), d =
|
|
4536
|
-
...
|
|
4644
|
+
let l = r < 640, u = Math.min(r / (l ? 760 : 1280), Math.max(.62, i / 520)), d = S[a]?.colors ?? S.fuji_sakura.colors, h = {
|
|
4645
|
+
...w,
|
|
4537
4646
|
school: a,
|
|
4538
4647
|
colors: d,
|
|
4539
4648
|
seed: s
|
|
4540
4649
|
}, g = null;
|
|
4541
4650
|
try {
|
|
4542
|
-
g =
|
|
4651
|
+
g = Je.canvas(n);
|
|
4543
4652
|
} catch {
|
|
4544
4653
|
g = null;
|
|
4545
4654
|
}
|
|
@@ -4547,7 +4656,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4547
4656
|
let e = (r + 48) * c;
|
|
4548
4657
|
t.save(), t.beginPath(), t.moveTo(-24, 0), t.lineTo(e, 0), t.quadraticCurveTo(e - 12, i * .62, Math.max(-24, e - 36), i - 4), t.bezierCurveTo(e * .68, i - 1, e * .32, i - 6, -24, i - 3), t.closePath();
|
|
4549
4658
|
let n = t.createLinearGradient(0, 0, 0, i);
|
|
4550
|
-
n.addColorStop(0, "rgba(245, 240, 230, 0.97)"), n.addColorStop(.78, "rgba(239, 232, 219, 0.95)"), n.addColorStop(1, "rgba(230, 221, 206, 0.88)"), t.fillStyle = n, t.fill(), t.restore(),
|
|
4659
|
+
n.addColorStop(0, "rgba(245, 240, 230, 0.97)"), n.addColorStop(.78, "rgba(239, 232, 219, 0.95)"), n.addColorStop(1, "rgba(230, 221, 206, 0.88)"), t.fillStyle = n, t.fill(), t.restore(), O(t, {
|
|
4551
4660
|
spine: f({
|
|
4552
4661
|
x: -20,
|
|
4553
4662
|
y: i * .5
|
|
@@ -4585,7 +4694,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4585
4694
|
x: r + 20,
|
|
4586
4695
|
y: i - 5
|
|
4587
4696
|
}, 64, .04, s + 19);
|
|
4588
|
-
if (
|
|
4697
|
+
if (O(t, {
|
|
4589
4698
|
spine: a,
|
|
4590
4699
|
maxWidth: 5.5,
|
|
4591
4700
|
bristleCount: 10,
|
|
@@ -4597,7 +4706,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4597
4706
|
headReach: c,
|
|
4598
4707
|
roundHeadCap: !0,
|
|
4599
4708
|
seed: s + 23
|
|
4600
|
-
}),
|
|
4709
|
+
}), O(t, {
|
|
4601
4710
|
spine: a,
|
|
4602
4711
|
maxWidth: 3.2,
|
|
4603
4712
|
bristleCount: 7,
|
|
@@ -4612,11 +4721,11 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4612
4721
|
seed: s + 29
|
|
4613
4722
|
}), c > .65) {
|
|
4614
4723
|
let e = Math.min(.85, (c - .65) * 2.5);
|
|
4615
|
-
|
|
4724
|
+
B(t, r * .88, i - 7, 5.5, .4, .7, "#C8232C", e), B(t, r * .91, i - 4, 4.2, 1.2, .55, "#E11D48", e);
|
|
4616
4725
|
}
|
|
4617
|
-
} else if (e === "sakura_katana_canopy")
|
|
4726
|
+
} else if (e === "sakura_katana_canopy") L(t, r * .84, i * .18, r * .15 * c, r * .15 * c, 0, "#FFF5F5", "#C8232C", .2, s + 19), H(t, r + 18, i * .14, r * (l ? .56 : .65), i * .04, -1, Math.max(16, 26 * u), c, 0, d.inkPrimary, d.energySecondary, d.coreGlow, s + 101), H(t, -18, i * .94, r * (l ? .36 : .28), i * .81, 1, Math.max(15, 24 * u), c, 1.5, d.inkPrimary, d.energySecondary, d.coreGlow, s + 149);
|
|
4618
4727
|
else if (e === "koi_river_rapids") {
|
|
4619
|
-
let e =
|
|
4728
|
+
let e = S.calligraphy_tide.colors, n = {
|
|
4620
4729
|
...h,
|
|
4621
4730
|
colors: e
|
|
4622
4731
|
}, a = f({
|
|
@@ -4632,7 +4741,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4632
4741
|
x: r * 1.05,
|
|
4633
4742
|
y: i * .22
|
|
4634
4743
|
}, 72, .1, s + 211);
|
|
4635
|
-
|
|
4744
|
+
O(t, {
|
|
4636
4745
|
spine: a,
|
|
4637
4746
|
maxWidth: Math.max(95, 185 * u),
|
|
4638
4747
|
bristleCount: 22,
|
|
@@ -4645,7 +4754,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4645
4754
|
hookWaves: 3,
|
|
4646
4755
|
roundHeadCap: !1,
|
|
4647
4756
|
seed: s + 223
|
|
4648
|
-
}),
|
|
4757
|
+
}), O(t, {
|
|
4649
4758
|
spine: a,
|
|
4650
4759
|
maxWidth: Math.max(42, 82 * u),
|
|
4651
4760
|
bristleCount: 14,
|
|
@@ -4672,7 +4781,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4672
4781
|
x: r * .27,
|
|
4673
4782
|
y: i * .2
|
|
4674
4783
|
}, 52, .14, s + 241).filter((e) => e.t <= c);
|
|
4675
|
-
o.length >= 8 &&
|
|
4784
|
+
o.length >= 8 && N(t, g, o.map((e, t, n) => ({
|
|
4676
4785
|
...e,
|
|
4677
4786
|
t: t / Math.max(1, n.length - 1)
|
|
4678
4787
|
})), Math.max(34, 66 * u), 1, 6, n, Math.max(.85, u * 1.1), .68, s + 251);
|
|
@@ -4689,10 +4798,10 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4689
4798
|
x: r * .74,
|
|
4690
4799
|
y: i * .28
|
|
4691
4800
|
}, 52, .14, s + 263).filter((e) => e.t <= c);
|
|
4692
|
-
d.length >= 8 &&
|
|
4801
|
+
d.length >= 8 && N(t, g, d.map((e, t, n) => ({
|
|
4693
4802
|
...e,
|
|
4694
4803
|
t: t / Math.max(1, n.length - 1)
|
|
4695
|
-
})), Math.max(32, 58 * u), -1, 5, n, Math.max(.82, u * 1.05), .64, s + 271),
|
|
4804
|
+
})), Math.max(32, 58 * u), -1, 5, n, Math.max(.82, u * 1.05), .64, s + 271), H(t, r + 14, i * .07, r * (l ? .68 : .76), i * .16, 1, Math.max(14, 22 * u), c, 0, "#11100E", "#C8232C", "#FFF5F5", s + 299);
|
|
4696
4805
|
} else if (e === "misty_mountains_sakura") [{
|
|
4697
4806
|
x0: -r * .02,
|
|
4698
4807
|
xPeak: r * .16,
|
|
@@ -4710,7 +4819,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4710
4819
|
}].forEach((e, n) => {
|
|
4711
4820
|
t.save(), t.beginPath(), t.moveTo(e.x0, e.yBase), t.quadraticCurveTo((e.x0 + e.xPeak) * .5, (e.yBase + e.yPeak) * .52, e.xPeak, e.yPeak), t.quadraticCurveTo((e.xPeak + e.x1) * .5, (e.yBase + e.yPeak) * .52, e.x1, e.yBase), t.closePath();
|
|
4712
4821
|
let r = t.createLinearGradient(e.xPeak, e.yPeak, e.xPeak, e.yBase);
|
|
4713
|
-
r.addColorStop(0, _(d.inkPrimary, e.alpha * c)), r.addColorStop(.7, _(v(d.inkPrimary, "#4A5559", .5), e.alpha * .5 * c)), r.addColorStop(1, _(d.inkPrimary, 0)), t.fillStyle = r, t.fill(), t.restore(),
|
|
4822
|
+
r.addColorStop(0, _(d.inkPrimary, e.alpha * c)), r.addColorStop(.7, _(v(d.inkPrimary, "#4A5559", .5), e.alpha * .5 * c)), r.addColorStop(1, _(d.inkPrimary, 0)), t.fillStyle = r, t.fill(), t.restore(), O(t, {
|
|
4714
4823
|
spine: p({
|
|
4715
4824
|
x: e.xPeak,
|
|
4716
4825
|
y: e.yPeak
|
|
@@ -4731,12 +4840,12 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4731
4840
|
headReach: c,
|
|
4732
4841
|
seed: s + 320 + n * 17
|
|
4733
4842
|
});
|
|
4734
|
-
}),
|
|
4843
|
+
}), F(t, g, r * .15, i * .18, Math.max(140, 235 * u * c), 4, h, Math.max(.8, u), .26 * c, s + 331), F(t, g, r * .85, i * .78, Math.max(150, 250 * u * c), 4, h, Math.max(.8, u), .26 * c, s + 347), H(t, -14, i * .96, r * (l ? .28 : .2), i * .76, 1, Math.max(16, 24 * u), c, 0, d.inkPrimary, "#C8232C", "#FFF5F5", s + 373), H(t, r + 14, i * .96, r * (l ? .72 : .8), i * .76, -1, Math.max(16, 24 * u), c, 1.2, d.inkPrimary, "#C8232C", "#FFF5F5", s + 389);
|
|
4735
4844
|
else if (e === "enso_imperial_seal") {
|
|
4736
4845
|
let e = r * .5, n = i * .52, a = Math.min(r, i) * .44;
|
|
4737
|
-
|
|
4846
|
+
L(t, e, n, a * 1.04 * c, a * 1.02 * c, .1, d.coreGlow, d.energySecondary, .18 * c, s + 401);
|
|
4738
4847
|
let o = m(e, n, a, a * .96, -Math.PI * .82, Math.PI * .96, 0, -.06, 84, .16, s + 419);
|
|
4739
|
-
|
|
4848
|
+
O(t, {
|
|
4740
4849
|
spine: o,
|
|
4741
4850
|
maxWidth: Math.max(20, 38 * u),
|
|
4742
4851
|
bristleCount: 24,
|
|
@@ -4748,7 +4857,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4748
4857
|
headReach: c,
|
|
4749
4858
|
roundHeadCap: !0,
|
|
4750
4859
|
seed: s + 431
|
|
4751
|
-
}),
|
|
4860
|
+
}), O(t, {
|
|
4752
4861
|
spine: o,
|
|
4753
4862
|
maxWidth: Math.max(7, 13 * u),
|
|
4754
4863
|
bristleCount: 12,
|
|
@@ -4760,7 +4869,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4760
4869
|
alpha: .34,
|
|
4761
4870
|
headReach: Math.max(0, c - .08),
|
|
4762
4871
|
seed: s + 449
|
|
4763
|
-
}),
|
|
4872
|
+
}), H(t, -12, i * .84, r * (l ? .28 : .22), i * .52, 1, Math.max(15, 23 * u), c, 0, d.inkPrimary, d.energySecondary, d.coreGlow, s + 463), H(t, r + 12, i * .22, r * (l ? .72 : .78), i * .5, -1, Math.max(15, 23 * u), c, 1.1, d.inkPrimary, d.energySecondary, d.coreGlow, s + 479);
|
|
4764
4873
|
}
|
|
4765
4874
|
t.restore();
|
|
4766
4875
|
}, T = (d) => {
|
|
@@ -4770,43 +4879,43 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4770
4879
|
}
|
|
4771
4880
|
let f = Math.min(1.75, window.devicePixelRatio || 1), p = Math.max(240, Math.floor(u.width || t.clientWidth || 600)), m = Math.max(52, Math.floor(u.height || t.clientHeight || 120)), h = Math.floor(p * f), _ = Math.floor(m * f);
|
|
4772
4881
|
(t.width !== h || t.height !== _) && (t.width = h, t.height = _, r.width = h, r.height = _, g.current = "");
|
|
4773
|
-
let v = t.getContext("2d"),
|
|
4774
|
-
if (!v || !
|
|
4775
|
-
let
|
|
4882
|
+
let v = t.getContext("2d"), x = r.getContext("2d");
|
|
4883
|
+
if (!v || !x) return;
|
|
4884
|
+
let w = i ? i.current : n, E = Math.max(0, Math.min(1, w));
|
|
4776
4885
|
if (e === "header_single_stroke" && E <= .005) {
|
|
4777
4886
|
v.clearRect(0, 0, h, _);
|
|
4778
4887
|
return;
|
|
4779
4888
|
}
|
|
4780
4889
|
let D = e === "header_single_stroke" ? Math.min(1, E ** .6) : Math.min(1, E ** .65 * 1.15), O = D >= .995 ? 1 : Math.round(D * 60) / 60, k = `${e}:${h}x${_}:${O}:${a}:${s}`;
|
|
4781
|
-
if (g.current !== k && (
|
|
4782
|
-
let t = (d -
|
|
4890
|
+
if (g.current !== k && (C(x, r, p, m, f, O), g.current = k), v.save(), v.setTransform(f, 0, 0, f, 0, 0), v.clearRect(0, 0, p, m), v.drawImage(r, 0, 0, p, m), c && D > .1) {
|
|
4891
|
+
let t = (d - b.current) / 1e3, n = p < 640, r = Math.min(p / (n ? 760 : 1280), Math.max(.62, m / 520)), i = S[a]?.colors ?? S.fuji_sakura.colors;
|
|
4783
4892
|
if (e === "sakura_katana_canopy") {
|
|
4784
4893
|
let e = l(s + 199), a = n ? 10 : 15;
|
|
4785
4894
|
for (let n = 0; n < a; n++) {
|
|
4786
4895
|
let a = e() * p, o = e() * m;
|
|
4787
|
-
|
|
4896
|
+
B(v, (a + t * (16 + n % 5 * 5) + Math.sin(t + n) * 16) % p, (o + t * (7 + n % 3 * 4) + Math.cos(t + n) * 10) % m, (5 + n % 4 * 1.8) * r, t * 1.4 + n, .35 + .55 * Math.abs(Math.sin(t * 2 + n)), i.energySecondary, .72 * D);
|
|
4788
4897
|
}
|
|
4789
4898
|
} else if (e === "koi_river_rapids" && D > .15) {
|
|
4790
4899
|
let e = Math.min(.95, (D - .12) * 1.35);
|
|
4791
|
-
|
|
4900
|
+
V(v, p * .56 + Math.cos(t * .6) * 22 * r, m * .18 + Math.sin(t * .75) * 12 * r, Math.max(95, 160 * r), -.24 + Math.sin(t * .7) * .08, t * 3.2, "#11100E", "#C8232C", "#FAF8F5", e, s + 281), V(v, p * .08 + Math.sin(t * .55) * 16 * r, m * .43 + Math.cos(t * .7) * 18 * r, Math.max(88, 145 * r), -.95 + Math.cos(t * .65) * .08, t * 3 + 1.4, "#11100E", "#E11D48", "#FFF7ED", e, s + 293), V(v, p * .63 + Math.sin(t * .5) * 24 * r, m * .91 + Math.cos(t * .6) * 10 * r, Math.max(90, 148 * r), -Math.PI + .28 + Math.sin(t * .6) * .07, t * 3.1 + 2.7, "#11100E", "#C8232C", "#FAF8F5", e, s + 307);
|
|
4792
4901
|
} else if (e === "misty_mountains_sakura") {
|
|
4793
4902
|
let e = l(s + 395);
|
|
4794
4903
|
for (let n = 0; n < 10; n++) {
|
|
4795
4904
|
let i = e() * p, a = e() * m;
|
|
4796
|
-
|
|
4905
|
+
B(v, (i + t * (14 + n % 4 * 4) + Math.sin(t + n) * 14) % p, (a + t * (6 + n % 3 * 3) + Math.cos(t + n) * 8) % m, (4.8 + n % 3 * 1.6) * r, t * 1.2 + n, .4 + .5 * Math.abs(Math.sin(t * 1.8 + n)), "#C8232C", .65 * D);
|
|
4797
4906
|
}
|
|
4798
4907
|
} else if (e === "enso_imperial_seal") {
|
|
4799
4908
|
let e = p * .5, n = m * .52, a = Math.min(p, m) * .44, o = l(s + 499);
|
|
4800
4909
|
for (let s = 0; s < 12; s++) {
|
|
4801
4910
|
let c = s / 12 * Math.PI * 2 + t * .22, l = a * (.85 + (o() - .3) * .35);
|
|
4802
|
-
|
|
4911
|
+
B(v, e + Math.cos(c) * l, n + Math.sin(c) * l, Math.max(5, 8 * r * D), t * 1.3 + s, .4 + .5 * Math.abs(Math.sin(t + s)), i.energySecondary, .5 * D);
|
|
4803
4912
|
}
|
|
4804
4913
|
}
|
|
4805
4914
|
}
|
|
4806
4915
|
v.restore(), (c || i) && (o = requestAnimationFrame(T));
|
|
4807
4916
|
};
|
|
4808
4917
|
return o = requestAnimationFrame(T), () => {
|
|
4809
|
-
cancelAnimationFrame(o),
|
|
4918
|
+
cancelAnimationFrame(o), x.disconnect();
|
|
4810
4919
|
};
|
|
4811
4920
|
}, [
|
|
4812
4921
|
e,
|
|
@@ -4819,7 +4928,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4819
4928
|
ref: d,
|
|
4820
4929
|
className: `block w-full h-full pointer-events-none select-none ${u}`
|
|
4821
4930
|
});
|
|
4822
|
-
},
|
|
4931
|
+
}, ct = ({ name: e, size: n = 22, color: i = "#11100E", seed: a = 101, className: s = "" }) => {
|
|
4823
4932
|
let c = r(null), l = Math.max(20, n);
|
|
4824
4933
|
return t(() => {
|
|
4825
4934
|
let t = c.current;
|
|
@@ -4830,7 +4939,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4830
4939
|
if (!r) return;
|
|
4831
4940
|
let o = i;
|
|
4832
4941
|
i === "currentColor" && t.parentElement && (o = window.getComputedStyle(t.parentElement).color || "#11100E"), r.save(), r.scale(n, n), r.clearRect(0, 0, l, l), r.lineCap = "round", r.lineJoin = "round";
|
|
4833
|
-
let s =
|
|
4942
|
+
let s = Je.canvas(t), u = l / 24, d = {
|
|
4834
4943
|
stroke: o,
|
|
4835
4944
|
strokeWidth: Math.max(1.85, 2 * u),
|
|
4836
4945
|
roughness: .22,
|
|
@@ -4843,7 +4952,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
4843
4952
|
fill: o,
|
|
4844
4953
|
fillStyle: "solid"
|
|
4845
4954
|
};
|
|
4846
|
-
if (e === "logo")
|
|
4955
|
+
if (e === "logo") O(r, {
|
|
4847
4956
|
spine: m(12 * u, 12 * u, 9.2 * u, 9 * u, -Math.PI * .78, Math.PI * 1.05, 0, 0, 36, .08, a),
|
|
4848
4957
|
maxWidth: 3.4 * u,
|
|
4849
4958
|
bristleCount: 10,
|
|
@@ -5032,7 +5141,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
5032
5141
|
className: `inline-block shrink-0 pointer-events-none select-none ${s}`,
|
|
5033
5142
|
"aria-hidden": "true"
|
|
5034
5143
|
});
|
|
5035
|
-
},
|
|
5144
|
+
}, lt = ({ size: e = 36, className: n = "" }) => {
|
|
5036
5145
|
let i = r(null);
|
|
5037
5146
|
return t(() => {
|
|
5038
5147
|
let t = i.current;
|
|
@@ -5043,14 +5152,14 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
5043
5152
|
if (!r) return;
|
|
5044
5153
|
r.save(), r.scale(n, n), r.clearRect(0, 0, e, e);
|
|
5045
5154
|
let a = e / 40;
|
|
5046
|
-
|
|
5155
|
+
Je.canvas(t).circle(25.5 * a, 14.5 * a, 14.5 * a, {
|
|
5047
5156
|
stroke: "#C8232C",
|
|
5048
5157
|
fill: "#C8232C",
|
|
5049
5158
|
fillStyle: "solid",
|
|
5050
5159
|
roughness: .25,
|
|
5051
5160
|
preserveVertices: !0,
|
|
5052
5161
|
seed: 77
|
|
5053
|
-
}),
|
|
5162
|
+
}), O(r, {
|
|
5054
5163
|
spine: m(20 * a, 20 * a, 15.5 * a, 15.2 * a, -Math.PI * .82, Math.PI * .98, 0, -.05, 54, .08, 8472),
|
|
5055
5164
|
maxWidth: 4.8 * a,
|
|
5056
5165
|
bristleCount: 14,
|
|
@@ -5061,7 +5170,7 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
5061
5170
|
alpha: .96,
|
|
5062
5171
|
roundHeadCap: !0,
|
|
5063
5172
|
seed: 8472
|
|
5064
|
-
}),
|
|
5173
|
+
}), O(r, {
|
|
5065
5174
|
spine: p({
|
|
5066
5175
|
x: 10 * a,
|
|
5067
5176
|
y: 29 * a
|
|
@@ -5091,9 +5200,9 @@ var nt = ({ activeBrush: n = "sakura_branch", colors: a = $e, strokeThickness: s
|
|
|
5091
5200
|
className: `inline-block shrink-0 pointer-events-none select-none ${n}`,
|
|
5092
5201
|
"aria-hidden": "true"
|
|
5093
5202
|
});
|
|
5094
|
-
},
|
|
5095
|
-
function
|
|
5096
|
-
let a = `${e}x${t}:${n}:${r ?? "none"}:${i}`, o =
|
|
5203
|
+
}, ut = /* @__PURE__ */ new Map();
|
|
5204
|
+
function dt(e, t, n, r, i) {
|
|
5205
|
+
let a = `${e}x${t}:${n}:${r ?? "none"}:${i}`, o = ut.get(a);
|
|
5097
5206
|
if (o) return {
|
|
5098
5207
|
mainPaths: [o[0] ?? ""],
|
|
5099
5208
|
accentPaths: o[1] ? [o[1]] : []
|
|
@@ -5102,7 +5211,7 @@ function lt(e, t, n, r, i) {
|
|
|
5102
5211
|
mainPaths: [],
|
|
5103
5212
|
accentPaths: []
|
|
5104
5213
|
};
|
|
5105
|
-
let s = document.createElementNS("http://www.w3.org/2000/svg", "svg"), c =
|
|
5214
|
+
let s = document.createElementNS("http://www.w3.org/2000/svg", "svg"), c = Je.svg(s), l = c.rectangle(1.5, 1.5, Math.max(4, e - 3), Math.max(4, t - 3), {
|
|
5106
5215
|
stroke: n,
|
|
5107
5216
|
strokeWidth: 1.45,
|
|
5108
5217
|
roughness: .36,
|
|
@@ -5125,12 +5234,12 @@ function lt(e, t, n, r, i) {
|
|
|
5125
5234
|
}).querySelectorAll("path").forEach((e) => {
|
|
5126
5235
|
let t = e.getAttribute("d");
|
|
5127
5236
|
t && d.push(t);
|
|
5128
|
-
}),
|
|
5237
|
+
}), ut.set(a, [u.join(" "), d.join(" ")]), {
|
|
5129
5238
|
mainPaths: u,
|
|
5130
5239
|
accentPaths: d
|
|
5131
5240
|
};
|
|
5132
5241
|
}
|
|
5133
|
-
var
|
|
5242
|
+
var ft = ({ variant: e = "washi", size: t = "md", active: a = !1, seed: c = 108, fullWidth: l = !1, className: u = "", children: d, disabled: f, ...p }) => {
|
|
5134
5243
|
let m = r(null), [h, g] = i({
|
|
5135
5244
|
w: 0,
|
|
5136
5245
|
h: 0
|
|
@@ -5160,7 +5269,7 @@ var ut = ({ variant: e = "washi", size: t = "md", active: a = !1, seed: c = 108,
|
|
|
5160
5269
|
sm: "px-3.5 py-1.5 text-xs gap-2 min-h-[34px]",
|
|
5161
5270
|
md: "px-4 py-2.5 text-xs sm:text-sm gap-2.5 min-h-[40px]",
|
|
5162
5271
|
lg: "px-5 py-3 text-sm gap-2.5 min-h-[44px]"
|
|
5163
|
-
}, { mainPaths: T, accentPaths: E } = h.w > 0 && h.h > 0 ?
|
|
5272
|
+
}, { mainPaths: T, accentPaths: E } = h.w > 0 && h.h > 0 ? dt(h.w, h.h, S, C, c) : {
|
|
5164
5273
|
mainPaths: [],
|
|
5165
5274
|
accentPaths: []
|
|
5166
5275
|
};
|
|
@@ -5199,7 +5308,7 @@ var ut = ({ variant: e = "washi", size: t = "md", active: a = !1, seed: c = 108,
|
|
|
5199
5308
|
children: d
|
|
5200
5309
|
})]
|
|
5201
5310
|
});
|
|
5202
|
-
},
|
|
5311
|
+
}, pt = ({ strokeColor: e = "#11100E", innerAccentColor: n = "rgba(17, 16, 14, 0.14)", seed: a = 303, className: c = "", children: l, ...u }) => {
|
|
5203
5312
|
let d = r(null), [f, p] = i({
|
|
5204
5313
|
w: 0,
|
|
5205
5314
|
h: 0
|
|
@@ -5218,7 +5327,7 @@ var ut = ({ variant: e = "washi", size: t = "md", active: a = !1, seed: c = 108,
|
|
|
5218
5327
|
let n = new ResizeObserver(t);
|
|
5219
5328
|
return n.observe(e), () => n.disconnect();
|
|
5220
5329
|
}, []);
|
|
5221
|
-
let { mainPaths: m, accentPaths: h } = f.w > 0 && f.h > 0 ?
|
|
5330
|
+
let { mainPaths: m, accentPaths: h } = f.w > 0 && f.h > 0 ? dt(f.w, f.h, e, n, a) : {
|
|
5222
5331
|
mainPaths: [],
|
|
5223
5332
|
accentPaths: []
|
|
5224
5333
|
};
|
|
@@ -5247,7 +5356,7 @@ var ut = ({ variant: e = "washi", size: t = "md", active: a = !1, seed: c = 108,
|
|
|
5247
5356
|
}, `main-${n}`))]
|
|
5248
5357
|
}), l]
|
|
5249
5358
|
});
|
|
5250
|
-
},
|
|
5359
|
+
}, mt = ({ jp: e, romaji: n, pt: l, variant: u = "inline", tooltipPlacement: d = "top", className: f = "" }) => {
|
|
5251
5360
|
let [p, m] = i(!1), h = r(null), [g, _] = i({
|
|
5252
5361
|
top: 0,
|
|
5253
5362
|
left: 0,
|
|
@@ -5349,6 +5458,425 @@ var ut = ({ variant: e = "washi", size: t = "md", active: a = !1, seed: c = 108,
|
|
|
5349
5458
|
})
|
|
5350
5459
|
}), x] });
|
|
5351
5460
|
};
|
|
5352
|
-
|
|
5461
|
+
// src/lib/sumi-forge/components/SumiSansui.tsx
|
|
5462
|
+
function ht(e) {
|
|
5463
|
+
let t = e.replace("#", "").trim();
|
|
5464
|
+
if (t.length < 6) return !1;
|
|
5465
|
+
let n = parseInt(t.slice(0, 2), 16) || 0, r = parseInt(t.slice(2, 4), 16) || 0, i = parseInt(t.slice(4, 6), 16) || 0;
|
|
5466
|
+
return (.299 * n + .587 * r + .114 * i) / 255 < .32;
|
|
5467
|
+
}
|
|
5468
|
+
function gt(e, t, n, r, i) {
|
|
5469
|
+
let a = b.classic_washi;
|
|
5470
|
+
if (e === "auto" && typeof window < "u") {
|
|
5471
|
+
a = document.documentElement.classList.contains("dark") ? b.night_obsidian : b.classic_washi;
|
|
5472
|
+
let e = getComputedStyle(document.documentElement), o = e.getPropertyValue("--sumi-bg").trim(), s = e.getPropertyValue("--sumi-ink").trim(), c = e.getPropertyValue("--sumi-wash").trim(), l = e.getPropertyValue("--sumi-mist").trim(), u = e.getPropertyValue("--sumi-accent").trim(), d = {
|
|
5473
|
+
background: n || t?.background || o || a.colors.background,
|
|
5474
|
+
ink: r || t?.ink || s || a.colors.ink,
|
|
5475
|
+
wash: i || t?.wash || c || a.colors.wash,
|
|
5476
|
+
mist: t?.mist || l || n || t?.background || a.colors.mist,
|
|
5477
|
+
accent: t?.accent || u || a.colors.accent
|
|
5478
|
+
};
|
|
5479
|
+
return {
|
|
5480
|
+
resolved: d,
|
|
5481
|
+
isDark: ht(d.background)
|
|
5482
|
+
};
|
|
5483
|
+
}
|
|
5484
|
+
e !== "auto" && b[e] && (a = b[e]);
|
|
5485
|
+
let o = n || t?.background || a.colors.background;
|
|
5486
|
+
return {
|
|
5487
|
+
resolved: {
|
|
5488
|
+
background: o,
|
|
5489
|
+
ink: r || t?.ink || a.colors.ink,
|
|
5490
|
+
wash: i || t?.wash || a.colors.wash,
|
|
5491
|
+
mist: t?.mist || n || t?.background || a.colors.mist,
|
|
5492
|
+
accent: t?.accent || a.colors.accent
|
|
5493
|
+
},
|
|
5494
|
+
isDark: ht(o)
|
|
5495
|
+
};
|
|
5496
|
+
}
|
|
5497
|
+
function _t(e, t, n, r, i, a, o, s, c) {
|
|
5498
|
+
let u = l(c), d = (u() - .5) * r * .24, f = t + d, p = n - r;
|
|
5499
|
+
e.save(), e.beginPath(), e.moveTo(t, n + 2 * i), e.quadraticCurveTo(t + d * .35, n - r * .52, f, p), e.strokeStyle = _(a, s * .92), e.lineWidth = Math.max(.8, r * .068), e.lineCap = "round", e.stroke();
|
|
5500
|
+
let m = Math.max(3, Math.min(7, Math.floor(r / (5.5 * i)) + 2));
|
|
5501
|
+
for (let t = 0; t < m; t++) {
|
|
5502
|
+
let n = t / Math.max(1, m - 1), c = p + n * r * .68, l = f - d * n * .55 + (u() - .5) * 2.5 * i, h = r * (.24 + Math.sin(n * Math.PI * .85) * .28) * (.8 + u() * .35);
|
|
5503
|
+
e.beginPath(), e.ellipse(l, c, h * .58, Math.max(1.2, r * .065), 0, 0, Math.PI * 2), e.fillStyle = _(o, s * .34), e.fill(), e.beginPath(), e.moveTo(l - h * .55, c + (u() - .5) * 1.5 * i), e.quadraticCurveTo(l, c - 1.6 * i, l + h * .55, c + (u() - .5) * 1.5 * i), e.strokeStyle = _(a, s * .94), e.lineWidth = Math.max(.9, r * .062), e.stroke();
|
|
5504
|
+
}
|
|
5505
|
+
e.restore();
|
|
5506
|
+
}
|
|
5507
|
+
function vt(e, t, n, r, i, a, o, s, c) {
|
|
5508
|
+
let u = l(c);
|
|
5509
|
+
e.save(), e.lineCap = "round", e.lineJoin = "round";
|
|
5510
|
+
let d = t - r * .32, f = n + r * .06, p = r * .78;
|
|
5511
|
+
e.beginPath(), e.moveTo(d, f + 4 * i), e.quadraticCurveTo(d - p * .12, f - p * .48, d - p * .24, f - p), e.moveTo(d - p * .1, f - p * .55), e.lineTo(d - p * .38, f - p * .78), e.moveTo(d - p * .14, f - p * .68), e.lineTo(d + p * .08, f - p * .88), e.strokeStyle = _(a, s * .92), e.lineWidth = Math.max(1.2, r * .048), e.stroke();
|
|
5512
|
+
for (let c = 0; c < 2; c++) {
|
|
5513
|
+
let l = t + c * r * .28, d = n + c * r * .05, f = r * (c === 0 ? 1.02 : .88), p = l + (c === 0 ? .08 : .15) * f, m = d - f;
|
|
5514
|
+
e.beginPath(), e.moveTo(l, d + 5 * i), e.quadraticCurveTo(l - f * .06, d - f * .5, p, m), e.strokeStyle = _(a, s * .95), e.lineWidth = Math.max(1.3, f * .052), e.stroke(), e.beginPath(), e.moveTo(l - f * .02, d - f * .58), e.lineTo(p + f * .18, m + f * .16), e.lineWidth = Math.max(.9, f * .035), e.stroke();
|
|
5515
|
+
for (let t = 0; t < 7; t++) {
|
|
5516
|
+
let n = t / 7 * Math.PI * 2 + u() * .5, r = f * (.06 + u() * .22), i = p + Math.cos(n) * r, c = m + Math.sin(n) * r * .68, l = Math.max(1.8, f * (.055 + u() * .045)), d = t % 2 == 0;
|
|
5517
|
+
e.beginPath(), e.arc(i, c, l, 0, Math.PI * 2), e.fillStyle = _(d ? a : o, s * (d ? .86 : .52)), e.fill();
|
|
5518
|
+
}
|
|
5519
|
+
}
|
|
5520
|
+
e.restore();
|
|
5521
|
+
}
|
|
5522
|
+
function yt(e, t, n, r, i, a, o, s, c) {
|
|
5523
|
+
let u = l(i.seed), f = (i.centerX - i.spanW * .5) * t, p = (i.centerX + i.spanW * .5) * t, m = i.peakY * n, h = i.baseY * n, g = Math.max(12, h - m), y = Math.max(48, Math.min(130, Math.floor((p - f) / (4 * r)))), b = [];
|
|
5524
|
+
for (let e = 0; e <= y; e++) {
|
|
5525
|
+
let t = e / y, n = f + t * (p - f), r = Math.max(0, Math.min(1, t + (i.skew || 0) * Math.sin(t * Math.PI))), a = Math.sin(r * Math.PI), o = Math.max(0, a) ** +i.sharpness;
|
|
5526
|
+
if (i.plateau && i.plateau > 0) {
|
|
5527
|
+
let e = 1 - i.plateau * .42;
|
|
5528
|
+
o = Math.min(e, o) / e;
|
|
5529
|
+
}
|
|
5530
|
+
let s = d(t * 3.6, i.seed * .013, i.seed), c = d(t * 9.5, i.seed * .029, i.seed + 71), l = .72 + (s - .35) * .52 + (c - .5) * .16, u = h - g * o * Math.max(.12, l);
|
|
5531
|
+
b.push({
|
|
5532
|
+
x: n,
|
|
5533
|
+
y: u,
|
|
5534
|
+
u: t,
|
|
5535
|
+
env: o
|
|
5536
|
+
});
|
|
5537
|
+
}
|
|
5538
|
+
let x = b[0];
|
|
5539
|
+
for (let e of b) e.y < x.y && (x = e);
|
|
5540
|
+
e.save(), e.beginPath(), e.moveTo(f, h + 6 * r);
|
|
5541
|
+
for (let t of b) e.lineTo(t.x, t.y);
|
|
5542
|
+
e.lineTo(p, h + 6 * r), e.closePath();
|
|
5543
|
+
let S = e.createLinearGradient(0, x.y, 0, h + 4 * r), C = (.14 + i.depth * .42) * (o ? 1.35 : 1), w = Math.max(.52, Math.min(.95, .92 - c * .18));
|
|
5544
|
+
if (o) {
|
|
5545
|
+
let e = v(a.wash, a.ink, .16 * i.depth);
|
|
5546
|
+
S.addColorStop(0, _(e, Math.min(.95, C + .25))), S.addColorStop(w * .65, _(a.wash, Math.min(.9, C * .85))), S.addColorStop(1, _(a.mist, .96));
|
|
5547
|
+
} else {
|
|
5548
|
+
let e = v(a.wash, a.ink, .18 * i.depth);
|
|
5549
|
+
S.addColorStop(0, _(e, C)), S.addColorStop(w * .6, _(a.wash, C * .58)), S.addColorStop(w, _(a.mist, .85)), S.addColorStop(1, _(a.mist, .98));
|
|
5550
|
+
}
|
|
5551
|
+
if (e.fillStyle = S, e.fill(), i.cunfaDensity > .05 && i.depth > .22) {
|
|
5552
|
+
e.save(), e.clip();
|
|
5553
|
+
let t = Math.floor((14 + i.spanW * 28) * i.cunfaDensity * (.55 + i.depth * .65));
|
|
5554
|
+
for (let n = 0; n < t; n++) {
|
|
5555
|
+
let t = b[Math.floor((.08 + u() * .84) * (b.length - 1))];
|
|
5556
|
+
if (!t || t.env < .14) continue;
|
|
5557
|
+
let o = h - t.y;
|
|
5558
|
+
if (o < 10 * r) continue;
|
|
5559
|
+
let s = o * (.03 + u() * .38), c = t.x + (u() - .5) * 14 * r, l = t.y + s, d = o * (.22 + u() * .48), f = t.u < .5 ? -1 : 1, p = i.sharpness > 1.35 ? f * (4 + u() * 14) * r : f * (12 + u() * 28) * r;
|
|
5560
|
+
e.beginPath(), e.moveTo(c, l), e.bezierCurveTo(c + p * .35 + (u() - .5) * 6 * r, l + d * .35, c + p * .7 - (u() - .5) * 6 * r, l + d * .72, c + p, l + d);
|
|
5561
|
+
let m = (.14 + i.depth * .32) * (.5 + u() * .6);
|
|
5562
|
+
e.strokeStyle = _(a.ink, m), e.lineWidth = (.55 + u() * .95) * r, e.lineCap = "round", e.stroke(), n % 5 == 0 && i.depth > .55 && (e.beginPath(), e.moveTo(t.x, t.y + 1.5 * r), e.quadraticCurveTo(t.x + p * .45, t.y + d * .42, t.x + p * .85, t.y + d * .82), e.strokeStyle = _(a.ink, m * 1.25), e.lineWidth = (.9 + u() * .9) * r, e.stroke());
|
|
5563
|
+
}
|
|
5564
|
+
e.restore();
|
|
5565
|
+
}
|
|
5566
|
+
if (i.depth > .18) {
|
|
5567
|
+
let t = Math.min(.98, .22 + i.depth * .76), n = (1.1 + i.depth * 2.4) * r;
|
|
5568
|
+
for (let o = 0; o < b.length - 1; o++) {
|
|
5569
|
+
let s = b[o], c = b[o + 1], l = Math.sin(s.u * Math.PI);
|
|
5570
|
+
if (l < .04) continue;
|
|
5571
|
+
let u = .75 + .5 * d(s.u * 12, i.seed * .07, i.seed + 303), f = Math.max(.45 * r, n * l ** .65 * u);
|
|
5572
|
+
e.beginPath(), e.moveTo(s.x, s.y), e.lineTo(c.x, c.y), e.strokeStyle = _(a.ink, t * Math.min(1, l * 1.6)), e.lineWidth = f, e.lineCap = "round", e.stroke();
|
|
5573
|
+
}
|
|
5574
|
+
}
|
|
5575
|
+
if (i.treeStyle !== "none" && s > .05) {
|
|
5576
|
+
if (i.treeStyle === "foliage") {
|
|
5577
|
+
let t = b[Math.floor(b.length * .46)];
|
|
5578
|
+
t && vt(e, t.x, t.y + 8 * r, Math.min(72 * r, g * 1.15), r, a.ink, a.wash, .95, i.seed + 501);
|
|
5579
|
+
} else if (i.treeStyle === "pines") {
|
|
5580
|
+
let t = Math.max(1, Math.floor((3 + i.spanW * 8) * s * (.5 + i.depth * .7)));
|
|
5581
|
+
for (let n = 0; n < t; n++) {
|
|
5582
|
+
let t = b[Math.floor((.15 + u() * .7) * (b.length - 1))];
|
|
5583
|
+
if (!t || t.env < .22) continue;
|
|
5584
|
+
let o = (9 + u() * 16 * i.depth) * r;
|
|
5585
|
+
_t(e, t.x, t.y + (u() * 5 + 1) * r, o, r, a.ink, a.wash, Math.min(.96, .45 + i.depth * .55), i.seed + 700 + n * 29);
|
|
5586
|
+
}
|
|
5587
|
+
} else if (i.treeStyle === "distant_dots") {
|
|
5588
|
+
let t = Math.floor(12 * s);
|
|
5589
|
+
for (let n = 0; n < t; n++) {
|
|
5590
|
+
let t = b[Math.floor((.18 + u() * .64) * (b.length - 1))];
|
|
5591
|
+
if (!t || t.env < .25) continue;
|
|
5592
|
+
let n = (2.5 + u() * 3.8) * r;
|
|
5593
|
+
e.beginPath(), e.moveTo(t.x, t.y + .5 * r), e.lineTo(t.x + (u() - .5) * 1.5 * r, t.y - n), e.strokeStyle = _(a.ink, .55 * i.depth), e.lineWidth = .85 * r, e.stroke(), e.beginPath(), e.arc(t.x, t.y - n, (1.1 + u() * 1.2) * r, 0, Math.PI * 2), e.fillStyle = _(a.ink, .5 * i.depth), e.fill();
|
|
5594
|
+
}
|
|
5595
|
+
}
|
|
5596
|
+
}
|
|
5597
|
+
e.restore();
|
|
5598
|
+
}
|
|
5599
|
+
function bt(e, t, n, r, i, a) {
|
|
5600
|
+
e.save(), e.translate(t, n), e.beginPath(), e.moveTo(-r * .95, -r * .12), e.quadraticCurveTo(0, r * .24, r * .98, -r * .16), e.quadraticCurveTo(0, r * .08, -r * .95, -r * .12), e.fillStyle = _(i, a * .94), e.fill();
|
|
5601
|
+
let o = -r * .12;
|
|
5602
|
+
e.beginPath(), e.moveTo(o, r * .02), e.lineTo(o + r * .04, -r * .52), e.strokeStyle = _(i, a * .92), e.lineWidth = Math.max(1.1, r * .11), e.lineCap = "round", e.stroke(), e.beginPath(), e.moveTo(o - r * .2, -r * .48), e.lineTo(o + r * .05, -r * .66), e.lineTo(o + r * .26, -r * .48), e.closePath(), e.fillStyle = _(i, a * .94), e.fill(), e.beginPath(), e.moveTo(o + r * .22, -r * .42), e.lineTo(-r * .48, r * .22), e.strokeStyle = _(i, a * .72), e.lineWidth = Math.max(.65, r * .055), e.stroke();
|
|
5603
|
+
for (let t = 0; t < 2; t++) {
|
|
5604
|
+
let n = r * (.22 + t * .14), o = r * (.65 - t * .2);
|
|
5605
|
+
e.beginPath(), e.moveTo(-o, n), e.lineTo(o, n), e.strokeStyle = _(i, a * (.28 - t * .1)), e.lineWidth = Math.max(.5, r * .045), e.stroke();
|
|
5606
|
+
}
|
|
5607
|
+
e.restore();
|
|
5608
|
+
}
|
|
5609
|
+
function xt(e, t, n) {
|
|
5610
|
+
let r = l(t), i = [];
|
|
5611
|
+
if (e === "panoramic_river") return i.push({
|
|
5612
|
+
centerX: .71 + (r() - .5) * .06,
|
|
5613
|
+
spanW: .42,
|
|
5614
|
+
peakY: .22 + r() * .05,
|
|
5615
|
+
baseY: .37,
|
|
5616
|
+
sharpness: .95,
|
|
5617
|
+
skew: .15,
|
|
5618
|
+
depth: .16,
|
|
5619
|
+
cunfaDensity: .1,
|
|
5620
|
+
treeStyle: "none",
|
|
5621
|
+
seed: t + 11
|
|
5622
|
+
}), i.push({
|
|
5623
|
+
centerX: .94,
|
|
5624
|
+
spanW: .28,
|
|
5625
|
+
peakY: .27,
|
|
5626
|
+
baseY: .38,
|
|
5627
|
+
sharpness: .85,
|
|
5628
|
+
depth: .2,
|
|
5629
|
+
cunfaDensity: .1,
|
|
5630
|
+
treeStyle: "none",
|
|
5631
|
+
seed: t + 23
|
|
5632
|
+
}), i.push({
|
|
5633
|
+
centerX: .58 + (r() - .5) * .05,
|
|
5634
|
+
spanW: .34,
|
|
5635
|
+
peakY: .3 + r() * .03,
|
|
5636
|
+
baseY: .38,
|
|
5637
|
+
sharpness: .75,
|
|
5638
|
+
plateau: .65,
|
|
5639
|
+
skew: -.2,
|
|
5640
|
+
depth: .58,
|
|
5641
|
+
cunfaDensity: .75,
|
|
5642
|
+
treeStyle: "distant_dots",
|
|
5643
|
+
seed: t + 37
|
|
5644
|
+
}), i.push({
|
|
5645
|
+
centerX: .83 + (r() - .5) * .04,
|
|
5646
|
+
spanW: .26,
|
|
5647
|
+
peakY: .28 + r() * .03,
|
|
5648
|
+
baseY: .39,
|
|
5649
|
+
sharpness: 1.05,
|
|
5650
|
+
skew: -.1,
|
|
5651
|
+
depth: .66,
|
|
5652
|
+
cunfaDensity: .85,
|
|
5653
|
+
treeStyle: "distant_dots",
|
|
5654
|
+
seed: t + 53
|
|
5655
|
+
}), i.push({
|
|
5656
|
+
centerX: .93,
|
|
5657
|
+
spanW: .29,
|
|
5658
|
+
peakY: .81,
|
|
5659
|
+
baseY: 1.02,
|
|
5660
|
+
sharpness: .82,
|
|
5661
|
+
skew: -.15,
|
|
5662
|
+
depth: .98,
|
|
5663
|
+
cunfaDensity: 1.25,
|
|
5664
|
+
treeStyle: "foliage",
|
|
5665
|
+
seed: t + 89
|
|
5666
|
+
}), i;
|
|
5667
|
+
if (e === "karst_peaks") return i.push({
|
|
5668
|
+
centerX: .57 + (r() - .5) * .06,
|
|
5669
|
+
spanW: .36,
|
|
5670
|
+
peakY: .34,
|
|
5671
|
+
baseY: .86,
|
|
5672
|
+
sharpness: 1.55,
|
|
5673
|
+
depth: .18,
|
|
5674
|
+
cunfaDensity: .15,
|
|
5675
|
+
treeStyle: "none",
|
|
5676
|
+
seed: t + 101
|
|
5677
|
+
}), i.push({
|
|
5678
|
+
centerX: .9 + (r() - .5) * .04,
|
|
5679
|
+
spanW: .32,
|
|
5680
|
+
peakY: .36 + r() * .06,
|
|
5681
|
+
baseY: .93,
|
|
5682
|
+
sharpness: 1.85,
|
|
5683
|
+
skew: -.12,
|
|
5684
|
+
depth: .68,
|
|
5685
|
+
cunfaDensity: 1.15,
|
|
5686
|
+
treeStyle: "pines",
|
|
5687
|
+
seed: t + 131
|
|
5688
|
+
}), i.push({
|
|
5689
|
+
centerX: .68 + (r() - .5) * .05,
|
|
5690
|
+
spanW: .31,
|
|
5691
|
+
peakY: .16 + r() * .05,
|
|
5692
|
+
baseY: .94,
|
|
5693
|
+
sharpness: 2.15,
|
|
5694
|
+
skew: .08,
|
|
5695
|
+
depth: .92,
|
|
5696
|
+
cunfaDensity: 1.35,
|
|
5697
|
+
treeStyle: "pines",
|
|
5698
|
+
seed: t + 167
|
|
5699
|
+
}), i.push({
|
|
5700
|
+
centerX: .92,
|
|
5701
|
+
spanW: .32,
|
|
5702
|
+
peakY: .86,
|
|
5703
|
+
baseY: 1.03,
|
|
5704
|
+
sharpness: .88,
|
|
5705
|
+
depth: 1,
|
|
5706
|
+
cunfaDensity: 1.2,
|
|
5707
|
+
treeStyle: "pines",
|
|
5708
|
+
seed: t + 199
|
|
5709
|
+
}), i;
|
|
5710
|
+
if (e === "twin_gorges") return i.push({
|
|
5711
|
+
centerX: .18,
|
|
5712
|
+
spanW: .45,
|
|
5713
|
+
peakY: .22,
|
|
5714
|
+
baseY: .78,
|
|
5715
|
+
sharpness: 1.35,
|
|
5716
|
+
depth: .18,
|
|
5717
|
+
cunfaDensity: .15,
|
|
5718
|
+
treeStyle: "none",
|
|
5719
|
+
seed: t + 211
|
|
5720
|
+
}), i.push({
|
|
5721
|
+
centerX: .82,
|
|
5722
|
+
spanW: .45,
|
|
5723
|
+
peakY: .2,
|
|
5724
|
+
baseY: .78,
|
|
5725
|
+
sharpness: 1.4,
|
|
5726
|
+
depth: .2,
|
|
5727
|
+
cunfaDensity: .15,
|
|
5728
|
+
treeStyle: "none",
|
|
5729
|
+
seed: t + 223
|
|
5730
|
+
}), i.push({
|
|
5731
|
+
centerX: .28 + (r() - .5) * .04,
|
|
5732
|
+
spanW: .28,
|
|
5733
|
+
peakY: .42,
|
|
5734
|
+
baseY: .9,
|
|
5735
|
+
sharpness: 1.9,
|
|
5736
|
+
depth: .65,
|
|
5737
|
+
cunfaDensity: 1,
|
|
5738
|
+
treeStyle: "pines",
|
|
5739
|
+
seed: t + 241
|
|
5740
|
+
}), i.push({
|
|
5741
|
+
centerX: .76 + (r() - .5) * .04,
|
|
5742
|
+
spanW: .3,
|
|
5743
|
+
peakY: .35,
|
|
5744
|
+
baseY: .91,
|
|
5745
|
+
sharpness: 1.95,
|
|
5746
|
+
depth: .76,
|
|
5747
|
+
cunfaDensity: 1.15,
|
|
5748
|
+
treeStyle: "pines",
|
|
5749
|
+
seed: t + 263
|
|
5750
|
+
}), i.push({
|
|
5751
|
+
centerX: .55 + (r() - .5) * .04,
|
|
5752
|
+
spanW: .34,
|
|
5753
|
+
peakY: .18 + r() * .04,
|
|
5754
|
+
baseY: .93,
|
|
5755
|
+
sharpness: 2.1,
|
|
5756
|
+
skew: .06,
|
|
5757
|
+
depth: .94,
|
|
5758
|
+
cunfaDensity: 1.3,
|
|
5759
|
+
treeStyle: "pines",
|
|
5760
|
+
seed: t + 281
|
|
5761
|
+
}), i.push({
|
|
5762
|
+
centerX: .12,
|
|
5763
|
+
spanW: .34,
|
|
5764
|
+
peakY: .85,
|
|
5765
|
+
baseY: 1.03,
|
|
5766
|
+
sharpness: .9,
|
|
5767
|
+
depth: 1,
|
|
5768
|
+
cunfaDensity: 1.2,
|
|
5769
|
+
treeStyle: "pines",
|
|
5770
|
+
seed: t + 307
|
|
5771
|
+
}), i;
|
|
5772
|
+
let a = Math.max(4, Math.min(8, n));
|
|
5773
|
+
for (let e = 0; e < a; e++) {
|
|
5774
|
+
let n = e / Math.max(1, a - 1), o = e % 2 == 0, s = o ? .22 + (r() - .4) * .18 : .78 + (r() - .6) * .18, c = .54 + r() * .22, l = .16 + n * .48 + (r() - .5) * .05, u = Math.min(1.04, l + .34 + n * .12);
|
|
5775
|
+
i.push({
|
|
5776
|
+
centerX: s,
|
|
5777
|
+
spanW: c,
|
|
5778
|
+
peakY: l,
|
|
5779
|
+
baseY: u,
|
|
5780
|
+
sharpness: 1.05 + (r() - .5) * .35,
|
|
5781
|
+
skew: o ? -.14 : .14,
|
|
5782
|
+
depth: .16 + n ** .85 * .84,
|
|
5783
|
+
cunfaDensity: .35 + n * .95,
|
|
5784
|
+
treeStyle: n < .25 ? "none" : "pines",
|
|
5785
|
+
seed: t + 400 + e * 43
|
|
5786
|
+
});
|
|
5787
|
+
}
|
|
5788
|
+
return i;
|
|
5789
|
+
}
|
|
5790
|
+
var St = ({ seed: n = 8472, composition: i = "panoramic_river", theme: a = "classic_washi", colors: s, backgroundColor: c, inkColor: u, washColor: d, ridgeLayers: f = 6, treeDensity: p = 1, mistDensity: m = 1, showBoat: h = !0, animated: g = !1, actionsRef: v, className: y = "" }) => {
|
|
5791
|
+
let b = r(null), x = r(null), S = r(""), C = r(!0), w = e((e) => {
|
|
5792
|
+
let t = b.current;
|
|
5793
|
+
if (!t) return;
|
|
5794
|
+
let r = document.createElement("a");
|
|
5795
|
+
r.download = e || `sumi-sansui-${i}-${n}.png`, r.href = t.toDataURL("image/png"), r.click();
|
|
5796
|
+
}, [i, n]);
|
|
5797
|
+
return t(() => {
|
|
5798
|
+
v && (v.current = { exportPng: w });
|
|
5799
|
+
}, [v, w]), t(() => {
|
|
5800
|
+
let e = b.current;
|
|
5801
|
+
if (!e || typeof IntersectionObserver > "u") return;
|
|
5802
|
+
let t = new IntersectionObserver((e) => {
|
|
5803
|
+
e.forEach((e) => {
|
|
5804
|
+
C.current = e.isIntersecting;
|
|
5805
|
+
});
|
|
5806
|
+
}, {
|
|
5807
|
+
rootMargin: "100px 0px",
|
|
5808
|
+
threshold: .01
|
|
5809
|
+
});
|
|
5810
|
+
return t.observe(e), () => t.disconnect();
|
|
5811
|
+
}, []), t(() => {
|
|
5812
|
+
let e = b.current;
|
|
5813
|
+
if (!e) return;
|
|
5814
|
+
x.current ||= document.createElement("canvas");
|
|
5815
|
+
let t = x.current, r = 0, o = e.getBoundingClientRect(), v = new ResizeObserver((e) => {
|
|
5816
|
+
e[0] && (o = e[0].contentRect, S.current = "");
|
|
5817
|
+
});
|
|
5818
|
+
v.observe(e);
|
|
5819
|
+
let y = performance.now(), w = (v) => {
|
|
5820
|
+
if (!C.current && g) {
|
|
5821
|
+
r = requestAnimationFrame(w);
|
|
5822
|
+
return;
|
|
5823
|
+
}
|
|
5824
|
+
let b = Math.min(2, window.devicePixelRatio || 1), x = Math.max(220, Math.floor(o.width || e.clientWidth || 640)), T = Math.max(150, Math.floor(o.height || e.clientHeight || 360)), E = Math.floor(x * b), D = Math.floor(T * b);
|
|
5825
|
+
(e.width !== E || e.height !== D) && (e.width = E, e.height = D, t.width = E, t.height = D, S.current = "");
|
|
5826
|
+
let { resolved: O, isDark: k } = gt(a, s, c, u, d), A = Math.max(.55, Math.min(x / 900, T / 460)), j = `${E}x${D}:${n}:${i}:${f}:${p}:${m}:${O.background}:${O.ink}:${O.wash}:${O.mist}:${O.accent}`, M = e.getContext("2d"), N = t.getContext("2d");
|
|
5827
|
+
if (!M || !N) return;
|
|
5828
|
+
if (S.current !== j) {
|
|
5829
|
+
N.save(), N.setTransform(b, 0, 0, b, 0, 0), N.clearRect(0, 0, x, T), N.fillStyle = O.background, N.fillRect(0, 0, x, T);
|
|
5830
|
+
let e = l(n + 999);
|
|
5831
|
+
N.strokeStyle = _(O.ink, k ? .03 : .022), N.lineWidth = .6;
|
|
5832
|
+
for (let t = 0; t < 42; t++) {
|
|
5833
|
+
let t = e() * T;
|
|
5834
|
+
N.beginPath(), N.moveTo(0, t), N.lineTo(x, t + (e() - .5) * 4), N.stroke();
|
|
5835
|
+
}
|
|
5836
|
+
let t = xt(i, n, f), r = t.filter((e) => e.depth < .9), a = t.filter((e) => e.depth >= .9);
|
|
5837
|
+
for (let e of r) yt(N, x, T, A, e, O, k, p, m);
|
|
5838
|
+
let o = l(n + 777), s = i === "panoramic_river" ? T * .37 : i === "layered_valley" ? T * .72 : T * .88, c = i === "panoramic_river" ? 58 : i === "layered_valley" ? 18 : 16;
|
|
5839
|
+
for (let e = 0; e < c; e++) {
|
|
5840
|
+
let e = o() ** .85, t = s + e * (T * .96 - s), n = o() * x * .92, r = (28 + o() * 135) * A * (.65 + (1 - e) * .5);
|
|
5841
|
+
N.beginPath(), N.moveTo(n - r * .5, t), N.lineTo(n + r * .5, t), N.strokeStyle = _(O.ink, (k ? .14 : .18) * (.45 + o() * .55)), N.lineWidth = Math.max(.5, .75 * A), N.stroke();
|
|
5842
|
+
}
|
|
5843
|
+
for (let e of a) yt(N, x, T, A, e, O, k, p, m);
|
|
5844
|
+
N.restore(), S.current = j;
|
|
5845
|
+
}
|
|
5846
|
+
M.save(), M.setTransform(b, 0, 0, b, 0, 0), M.clearRect(0, 0, x, T), M.drawImage(t, 0, 0, x, T);
|
|
5847
|
+
let P = g ? (v - y) / 1e3 : 0;
|
|
5848
|
+
if (h) {
|
|
5849
|
+
let e = l(n + 555), t = x * .61, r = T * .81, a = 15 * A;
|
|
5850
|
+
i === "panoramic_river" ? (t = x * (.58 + (e() - .5) * .08), r = T * (.76 + (e() - .5) * .05), a = 15.5 * A) : i === "karst_peaks" ? (t = x * (.43 + (e() - .5) * .06), r = T * .94, a = 12 * A) : i === "layered_valley" ? (t = x * .51, r = T * .9, a = 10.5 * A) : i === "twin_gorges" && (t = x * .37, r = T * .94, a = 11.5 * A);
|
|
5851
|
+
let o = g ? Math.sin(P * .55) * 8 * A : 0, s = g ? Math.cos(P * 1.1) * 1.2 * A : 0;
|
|
5852
|
+
bt(M, t + o, r + s, Math.max(8, a), O.ink, .92);
|
|
5853
|
+
}
|
|
5854
|
+
M.restore(), g && (r = requestAnimationFrame(w));
|
|
5855
|
+
};
|
|
5856
|
+
return r = requestAnimationFrame(w), () => {
|
|
5857
|
+
cancelAnimationFrame(r), v.disconnect();
|
|
5858
|
+
};
|
|
5859
|
+
}, [
|
|
5860
|
+
n,
|
|
5861
|
+
i,
|
|
5862
|
+
a,
|
|
5863
|
+
s,
|
|
5864
|
+
c,
|
|
5865
|
+
u,
|
|
5866
|
+
d,
|
|
5867
|
+
f,
|
|
5868
|
+
p,
|
|
5869
|
+
m,
|
|
5870
|
+
h,
|
|
5871
|
+
g
|
|
5872
|
+
]), /* @__PURE__ */ o("div", {
|
|
5873
|
+
className: `relative w-full h-full overflow-hidden select-none ${y}`,
|
|
5874
|
+
children: /* @__PURE__ */ o("canvas", {
|
|
5875
|
+
ref: b,
|
|
5876
|
+
className: "block w-full h-full"
|
|
5877
|
+
})
|
|
5878
|
+
});
|
|
5879
|
+
};
|
|
5880
|
+
export { C as ARCHETYPE_CATALOG, T as DEFAULT_FUJI_LAYERS, w as DEFAULT_VFX_CONFIG, mt as JapaneseCalligraphy, S as MAGIC_SCHOOLS, x as SANSUI_COMPOSITIONS, b as SANSUI_THEMES, lt as SumiBrandEmblem, it as SumiBrushCanvas, ft as SumiButton, ct as SumiIcon, et as SumiLandscape, $e as SumiMaskReveal, pt as SumiRoughBox, St as SumiSansui, st as SumiSectionPainter, at as SumiStroke, ot as SumiVFX, E as TECHNIQUES_CATALOG, l as createSeededRandom, V as drawCalligraphicKoiCarp, k as drawCentrifugalSplatters, H as drawCornerSakuraBranch, j as drawDetachedSumiFlameWisp, R as drawFacetedRoughCrystal, A as drawFlamePetalTongue, B as drawFloatingSakuraPetal, M as drawHokusaiFoamClawCluster, N as drawHokusaiWaveCrest, z as drawSakuraBlossom, I as drawSolidOpaqueCoreSphere, O as drawSumiKasureRibbon, L as drawTarashikomiWashBlob, F as drawUkiyoeCloudBank, P as drawUkiyoeCloudScrollVolute, Ze as encodeAnimatedGIF89a, d as fbmNoise2D, g as hexToRgb, D as makeFineRoughOptions, v as mixHex, y as recolorReferenceSheetData, Xe as renderCompleteSpriteSheet, Ye as renderVFXFrame, _ as rgbaStr, f as sampleCubicCurve, u as sampleNoise2D, m as samplePolarArc, p as sampleQuadraticCurve, h as samplesToSpine };
|
|
5353
5881
|
|
|
5354
5882
|
//# sourceMappingURL=index.js.map
|