@snowcone-app/canvas 0.17.3 → 0.18.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/dist/{ImportManager-C_wBjWaV.js → CanvasRenderer-DUc-MOeR.js} +586 -806
- package/dist/CanvasRenderer-DUc-MOeR.js.map +1 -0
- package/dist/{CanvasStateV1-BG2hEc3-.js → CanvasStateV1-Bq48qhv5.js} +3 -3
- package/dist/{CanvasStateV1-BG2hEc3-.js.map → CanvasStateV1-Bq48qhv5.js.map} +1 -1
- package/dist/ContextualToolbars-CkLjHNPn.js +5833 -0
- package/dist/ContextualToolbars-CkLjHNPn.js.map +1 -0
- package/dist/EditorCanvasImpl-Bv4yagew.js +81 -0
- package/dist/EditorCanvasImpl-Bv4yagew.js.map +1 -0
- package/dist/EditorContext-5QpqAhjh.js +1184 -0
- package/dist/{EditorContext-CGkfmbgo.js.map → EditorContext-5QpqAhjh.js.map} +1 -1
- package/dist/{FontAnalyzer-CLv7_msL.js → FontAnalyzer-DIlqmyuf.js} +35 -35
- package/dist/FontAnalyzer-DIlqmyuf.js.map +1 -0
- package/dist/{ElementFactory-CuHSAPfg.js → ImportManager-D--7JnvW.js} +699 -476
- package/dist/ImportManager-D--7JnvW.js.map +1 -0
- package/dist/MenuButton-CeoEAtzP.js +7444 -0
- package/dist/MenuButton-CeoEAtzP.js.map +1 -0
- package/dist/SnowconeCanvas-C_O-aeaQ.js +1166 -0
- package/dist/SnowconeCanvas-C_O-aeaQ.js.map +1 -0
- package/dist/advanced.mjs +266 -264
- package/dist/advanced.mjs.map +1 -1
- package/dist/api/embed.d.ts +1 -1
- package/dist/components/ContextualToolbars.d.ts +8 -0
- package/dist/components/editor/EditorAdd.d.ts +11 -0
- package/dist/components/editor/EditorCanvasImpl.d.ts +6 -0
- package/dist/components/editor/EditorControls.d.ts +14 -0
- package/dist/components/editor/EditorHistory.d.ts +11 -0
- package/dist/components/editor/EditorLayers.d.ts +16 -0
- package/dist/components/editor/EditorMenu.d.ts +11 -0
- package/dist/components/editor/RootInternals.d.ts +7 -0
- package/dist/components/editor/index.d.ts +20 -0
- package/dist/components/embed/addElementTypes.d.ts +9 -0
- package/dist/contexts/EditorContext.d.ts +38 -0
- package/dist/core/preview-registry.d.ts +34 -0
- package/dist/{editorErrors-BY4Pdg7a.js → editorErrors-DXNfVXtD.js} +2 -2
- package/dist/{editorErrors-BY4Pdg7a.js.map → editorErrors-DXNfVXtD.js.map} +1 -1
- package/dist/embed-Cdbjay9i.js +961 -0
- package/dist/embed-Cdbjay9i.js.map +1 -0
- package/dist/embed.mjs +5 -5
- package/dist/index.mjs +7 -7
- package/dist/internals.mjs +12 -12
- package/dist/{template-fields-Z9x13sjM.js → template-fields-DgoBtajp.js} +266 -240
- package/dist/template-fields-DgoBtajp.js.map +1 -0
- package/dist/testing.mjs +3 -3
- package/dist/{usePieceGuideBundle-C1ipFnZd.js → usePieceGuideBundle-DVOISsB1.js} +2 -2
- package/dist/{usePieceGuideBundle-C1ipFnZd.js.map → usePieceGuideBundle-DVOISsB1.js.map} +1 -1
- package/dist/validation-0IscSfRb.js +9304 -0
- package/dist/validation-0IscSfRb.js.map +1 -0
- package/package.json +3 -3
- package/dist/EditorCanvasImpl-DQxqdgpq.js +0 -70
- package/dist/EditorCanvasImpl-DQxqdgpq.js.map +0 -1
- package/dist/EditorContext-CGkfmbgo.js +0 -1178
- package/dist/ElementFactory-CuHSAPfg.js.map +0 -1
- package/dist/FontAnalyzer-CLv7_msL.js.map +0 -1
- package/dist/ImportManager-C_wBjWaV.js.map +0 -1
- package/dist/SnowconeCanvas-DBbmx9qW.js +0 -1187
- package/dist/SnowconeCanvas-DBbmx9qW.js.map +0 -1
- package/dist/UnifiedFontService-Dsu5cwfT.js +0 -1478
- package/dist/UnifiedFontService-Dsu5cwfT.js.map +0 -1
- package/dist/embed--B8ot6Lj.js +0 -746
- package/dist/embed--B8ot6Lj.js.map +0 -1
- package/dist/iconify-D6eVIEy4.js +0 -1089
- package/dist/iconify-D6eVIEy4.js.map +0 -1
- package/dist/template-fields-Z9x13sjM.js.map +0 -1
- package/dist/validation-C795COGQ.js +0 -19959
- package/dist/validation-C795COGQ.js.map +0 -1
|
@@ -1,1478 +0,0 @@
|
|
|
1
|
-
import { useRef as le, useState as K, useCallback as f, useMemo as Y, useEffect as be, useContext as Pe, createContext as Ge } from "react";
|
|
2
|
-
import { u as fe } from "./EditorContext-CGkfmbgo.js";
|
|
3
|
-
import { G, c as Q, C as ce } from "./FontAnalyzer-CLv7_msL.js";
|
|
4
|
-
import { E as se } from "./ElementFactory-CuHSAPfg.js";
|
|
5
|
-
import { jsx as Be } from "react/jsx-runtime";
|
|
6
|
-
const Ue = {
|
|
7
|
-
"eos-icons:loading": {
|
|
8
|
-
body: '<path fill="currentColor" d="M12 2A10 10 0 1 0 22 12A10 10 0 0 0 12 2Zm0 18a8 8 0 1 1 8-8A8 8 0 0 1 12 20Z" opacity=".5"/><path fill="currentColor" d="M20 12h2A10 10 0 0 0 12 2V4A8 8 0 0 1 20 12Z"><animateTransform attributeName="transform" dur="1s" from="0 12 12" repeatCount="indefinite" to="360 12 12" type="rotate"/></path>',
|
|
9
|
-
width: 24,
|
|
10
|
-
height: 24
|
|
11
|
-
},
|
|
12
|
-
"fa6-solid:icons": {
|
|
13
|
-
body: '<path fill="currentColor" d="M500.3 7.3c7.4 6 11.7 15.1 11.7 24.7v144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71l-96 19.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1.6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2l11.9 17.8H240c26.5 0 48 21.5 48 48v112c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48zM192 408a48 48 0 1 0-96 0a48 48 0 1 0 96 0m286.7-129.7L440.3 368H496c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9.9s-8.2-12.4-5.3-19.2l38.3-89.8H336c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0l-96.8-99.9c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5l9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z"/>',
|
|
14
|
-
width: 512,
|
|
15
|
-
height: 512
|
|
16
|
-
},
|
|
17
|
-
"gravity-ui:arrow-down-to-square": {
|
|
18
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M8.53 11.78a.75.75 0 0 1-1.06 0l-2.5-2.5a.75.75 0 0 1 1.06-1.06l1.22 1.22V1.75a.75.75 0 0 1 1.5 0v7.69l1.22-1.22a.75.75 0 1 1 1.06 1.06zM4.25 4a.75.75 0 1 1 0 1.5H4A1.5 1.5 0 0 0 2.5 7v5A1.5 1.5 0 0 0 4 13.5h8a1.5 1.5 0 0 0 1.5-1.5V7A1.5 1.5 0 0 0 12 5.5h-.25a.75.75 0 0 1 0-1.5H12a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3z" clip-rule="evenodd"/>',
|
|
19
|
-
width: 24,
|
|
20
|
-
height: 24
|
|
21
|
-
},
|
|
22
|
-
"gravity-ui:arrow-left": {
|
|
23
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M14.75 8a.75.75 0 0 1-.75.75H3.81l2.72 2.72a.75.75 0 1 1-1.06 1.06l-4-4a.75.75 0 0 1 0-1.06l4-4a.75.75 0 0 1 1.06 1.06L3.81 7.25H14a.75.75 0 0 1 .75.75" clip-rule="evenodd"/>',
|
|
24
|
-
width: 24,
|
|
25
|
-
height: 24
|
|
26
|
-
},
|
|
27
|
-
"gravity-ui:arrow-rotate-left": {
|
|
28
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 1 1-6.445 7.348a.75.75 0 1 1 1.487-.194A5.001 5.001 0 1 0 4.43 4.5h1.32a.75.75 0 0 1 0 1.5h-3A.75.75 0 0 1 2 5.25v-3a.75.75 0 0 1 1.5 0v1.06A6.48 6.48 0 0 1 8 1.5" clip-rule="evenodd"/>',
|
|
29
|
-
width: 24,
|
|
30
|
-
height: 24
|
|
31
|
-
},
|
|
32
|
-
"gravity-ui:bars": {
|
|
33
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M1.25 3.25A.75.75 0 0 1 2 2.5h12A.75.75 0 0 1 14 4H2a.75.75 0 0 1-.75-.75m0 4.75A.75.75 0 0 1 2 7.25h12a.75.75 0 0 1 0 1.5H2A.75.75 0 0 1 1.25 8M2 12a.75.75 0 0 0 0 1.5h12a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>',
|
|
34
|
-
width: 24,
|
|
35
|
-
height: 24
|
|
36
|
-
},
|
|
37
|
-
"gravity-ui:bold": {
|
|
38
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M4.25 2.25A.75.75 0 0 0 3.5 3v10c0 .414.336.75.75.75H9.5a3.25 3.25 0 0 0 1.477-6.146A3.25 3.25 0 0 0 8.5 2.25zm3.5 5a1.75 1.75 0 1 0 0-3.5h-2v3.5zm-2 1.5v3.5h3a1.75 1.75 0 1 0 0-3.5z" clip-rule="evenodd"/>',
|
|
39
|
-
width: 24,
|
|
40
|
-
height: 24
|
|
41
|
-
},
|
|
42
|
-
"gravity-ui:check": {
|
|
43
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M13.488 3.43a.75.75 0 0 1 .081 1.058l-6 7a.75.75 0 0 1-1.1.042l-3.5-3.5A.75.75 0 0 1 4.03 6.97l2.928 2.927l5.473-6.385a.75.75 0 0 1 1.057-.081" clip-rule="evenodd"/>',
|
|
44
|
-
width: 24,
|
|
45
|
-
height: 24
|
|
46
|
-
},
|
|
47
|
-
"gravity-ui:chevron-down": {
|
|
48
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M2.97 5.47a.75.75 0 0 1 1.06 0L8 9.44l3.97-3.97a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0l-4.5-4.5a.75.75 0 0 1 0-1.06" clip-rule="evenodd"/>',
|
|
49
|
-
width: 24,
|
|
50
|
-
height: 24
|
|
51
|
-
},
|
|
52
|
-
"gravity-ui:chevron-right": {
|
|
53
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8L5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0" clip-rule="evenodd"/>',
|
|
54
|
-
width: 24,
|
|
55
|
-
height: 24
|
|
56
|
-
},
|
|
57
|
-
"gravity-ui:chevron-up": {
|
|
58
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M13.03 10.53a.75.75 0 0 1-1.06 0L8 6.56l-3.97 3.97a.75.75 0 1 1-1.06-1.06l4.5-4.5a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1 0 1.06" clip-rule="evenodd"/>',
|
|
59
|
-
width: 24,
|
|
60
|
-
height: 24
|
|
61
|
-
},
|
|
62
|
-
"gravity-ui:circle-fill": {
|
|
63
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14" clip-rule="evenodd"/>',
|
|
64
|
-
width: 24,
|
|
65
|
-
height: 24
|
|
66
|
-
},
|
|
67
|
-
"gravity-ui:copy": {
|
|
68
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M12 2.5H8A1.5 1.5 0 0 0 6.5 4v1H8a3 3 0 0 1 3 3v1.5h1A1.5 1.5 0 0 0 13.5 8V4A1.5 1.5 0 0 0 12 2.5M11 11h1a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H8a3 3 0 0 0-3 3v1H4a3 3 0 0 0-3 3v4a3 3 0 0 0 3 3h4a3 3 0 0 0 3-3zM4 6.5h4A1.5 1.5 0 0 1 9.5 8v4A1.5 1.5 0 0 1 8 13.5H4A1.5 1.5 0 0 1 2.5 12V8A1.5 1.5 0 0 1 4 6.5" clip-rule="evenodd"/>',
|
|
69
|
-
width: 24,
|
|
70
|
-
height: 24
|
|
71
|
-
},
|
|
72
|
-
"gravity-ui:italic": {
|
|
73
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M7.25 2a.75.75 0 0 0 0 1.5h1.317l-2.7 9H4.25a.75.75 0 1 0 0 1.5h4.5a.75.75 0 0 0 0-1.5H7.433l2.7-9h1.617a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>',
|
|
74
|
-
width: 24,
|
|
75
|
-
height: 24
|
|
76
|
-
},
|
|
77
|
-
"gravity-ui:layers": {
|
|
78
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="m2.789 5.283l4.037-2.02A2.5 2.5 0 0 1 7.944 3h.112c.388 0 .77.09 1.118.264l4.037 2.019a.522.522 0 0 1 0 .934l-4.037 2.02a2.5 2.5 0 0 1-1.118.263h-.112a2.5 2.5 0 0 1-1.118-.264L2.79 6.217a.523.523 0 0 1 0-.934M1 5.75c0-.766.433-1.466 1.118-1.809l4.037-2.019a4 4 0 0 1 1.79-.422h.11a4 4 0 0 1 1.79.422l4.037 2.019a2.023 2.023 0 0 1 0 3.618l-.882.44l.882.442a2.023 2.023 0 0 1 0 3.618l-4.037 2.019a4 4 0 0 1-1.79.422h-.11a4 4 0 0 1-1.79-.422l-4.037-2.02a2.023 2.023 0 0 1 0-3.617L3 8l-.882-.441A2.02 2.02 0 0 1 1 5.75m3.677 3.088l-1.888.945a.523.523 0 0 0 0 .934l4.037 2.019A2.5 2.5 0 0 0 7.944 13h.112a2.5 2.5 0 0 0 1.118-.264l4.037-2.019a.523.523 0 0 0 0-.934l-1.888-.945l-1.478.74a4 4 0 0 1-1.79.422h-.11a4 4 0 0 1-1.79-.422z" clip-rule="evenodd"/>',
|
|
79
|
-
width: 24,
|
|
80
|
-
height: 24
|
|
81
|
-
},
|
|
82
|
-
"gravity-ui:magic-wand": {
|
|
83
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="m11.1 5.894l-.412.903l.671.732l1.356 1.48l-1.994-.227l-.986-.113l-.49.864l-.987 1.747l-.4-1.967l-.198-.972l-.973-.198l-1.966-.4l1.746-.989l.864-.489l-.112-.986l-.227-1.994L8.47 4.641l.732.67l.903-.411l1.826-.832zM7.02 1.276l2.465 2.26l3.043-1.387c.842-.384 1.708.483 1.325 1.324l-1.387 3.043l2.259 2.465c.625.682.069 1.774-.85 1.67l-3.323-.38l-1.646 2.911c-.456.805-1.666.613-1.85-.293l-.667-3.277l-3.277-.666c-.906-.185-1.098-1.395-.293-1.85l2.91-1.647l-.378-3.322c-.105-.92.987-1.476 1.669-.85M5.53 11.53a.75.75 0 1 0-1.06-1.06l-3.5 3.5a.75.75 0 1 0 1.06 1.06z" clip-rule="evenodd"/>',
|
|
84
|
-
width: 24,
|
|
85
|
-
height: 24
|
|
86
|
-
},
|
|
87
|
-
"gravity-ui:magnifier": {
|
|
88
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M11.5 7a4.5 4.5 0 1 1-9 0a4.5 4.5 0 0 1 9 0m-.82 4.74a6 6 0 1 1 1.06-1.06l2.79 2.79a.75.75 0 1 1-1.06 1.06z" clip-rule="evenodd"/>',
|
|
89
|
-
width: 24,
|
|
90
|
-
height: 24
|
|
91
|
-
},
|
|
92
|
-
"gravity-ui:minus": {
|
|
93
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M1.75 8a.75.75 0 0 1 .75-.75h11a.75.75 0 0 1 0 1.5h-11A.75.75 0 0 1 1.75 8" clip-rule="evenodd"/>',
|
|
94
|
-
width: 24,
|
|
95
|
-
height: 24
|
|
96
|
-
},
|
|
97
|
-
"gravity-ui:pencil": {
|
|
98
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M11.423 1A3.577 3.577 0 0 1 15 4.577c0 .27-.108.53-.3.722l-.528.529l-1.971 1.971l-5.059 5.059a3 3 0 0 1-1.533.82l-2.638.528a1 1 0 0 1-1.177-1.177l.528-2.638a3 3 0 0 1 .82-1.533l5.059-5.059l2.5-2.5c.191-.191.451-.299.722-.299m-2.31 4.009l-4.91 4.91a1.5 1.5 0 0 0-.41.766l-.38 1.903l1.902-.38a1.5 1.5 0 0 0 .767-.41l4.91-4.91a2.08 2.08 0 0 0-1.88-1.88m3.098.658a3.6 3.6 0 0 0-1.878-1.879l1.28-1.28c.995.09 1.788.884 1.878 1.88z" clip-rule="evenodd"/>',
|
|
99
|
-
width: 24,
|
|
100
|
-
height: 24
|
|
101
|
-
},
|
|
102
|
-
"gravity-ui:picture": {
|
|
103
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M11.5 3h-7A1.5 1.5 0 0 0 3 4.5v5.027l.962-.7a1.75 1.75 0 0 1 2.079.016l.928.696l2.368-2.03a1.75 1.75 0 0 1 2.325.043L13 8.787V4.5A1.5 1.5 0 0 0 11.5 3m3 7.498V4.5a3 3 0 0 0-3-3h-7a3 3 0 0 0-3 3v7a3 3 0 0 0 3 3h7a3 3 0 0 0 3-3zm-1.5.33l-2.355-2.174a.25.25 0 0 0-.332-.006L7.488 11.07l-.457.392l-.481-.361l-1.41-1.057a.25.25 0 0 0-.296-.002L3 11.381v.119A1.5 1.5 0 0 0 4.5 13h7a1.5 1.5 0 0 0 1.5-1.5zM7.5 6a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0" clip-rule="evenodd"/>',
|
|
104
|
-
width: 24,
|
|
105
|
-
height: 24
|
|
106
|
-
},
|
|
107
|
-
"gravity-ui:plus": {
|
|
108
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M8 1.75a.75.75 0 0 1 .75.75v4.75h4.75a.75.75 0 0 1 0 1.5H8.75v4.75a.75.75 0 0 1-1.5 0V8.75H2.5a.75.75 0 0 1 0-1.5h4.75V2.5A.75.75 0 0 1 8 1.75" clip-rule="evenodd"/>',
|
|
109
|
-
width: 24,
|
|
110
|
-
height: 24
|
|
111
|
-
},
|
|
112
|
-
"gravity-ui:scissors": {
|
|
113
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M4.5 6a1.5 1.5 0 1 0 0-3a1.5 1.5 0 0 0 0 3m-3-1.5a3 3 0 0 0 4.524 2.585L6.939 8l-.915.915a3 3 0 1 0 1.06 1.06L8.122 8.94l5.501 3.209a.75.75 0 1 0 .756-1.296L9.488 8l4.89-2.852a.75.75 0 0 0-.756-1.296l-5.5 3.209l-1.037-1.037A3 3 0 1 0 1.5 4.5m3 5.5a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0-3" clip-rule="evenodd"/>',
|
|
114
|
-
width: 24,
|
|
115
|
-
height: 24
|
|
116
|
-
},
|
|
117
|
-
"gravity-ui:sparkles": {
|
|
118
|
-
body: '<path fill="currentColor" d="M13 10a.75.75 0 0 1 .725.556a2.37 2.37 0 0 0 1.72 1.72a.75.75 0 0 1 0 1.449a2.37 2.37 0 0 0-1.72 1.72a.75.75 0 0 1-1.45 0a2.37 2.37 0 0 0-1.72-1.72a.75.75 0 0 1 0-1.45a2.37 2.37 0 0 0 1.72-1.72l.043-.117A.75.75 0 0 1 13 10M7 0a1.5 1.5 0 0 1 1.48 1.253c.242 1.455.696 2.364 1.3 2.968c.603.603 1.512 1.057 2.967 1.3a1.5 1.5 0 0 1 0 2.958c-1.455.243-2.364.697-2.968 1.3c-.603.604-1.057 1.513-1.3 2.968a1.5 1.5 0 0 1-2.958 0c-.243-1.455-.697-2.364-1.3-2.968c-.604-.603-1.513-1.057-2.968-1.3a1.5 1.5 0 0 1 0-2.958c1.455-.243 2.364-.697 2.968-1.3c.603-.604 1.057-1.513 1.3-2.968l.028-.133A1.5 1.5 0 0 1 7 0m0 1.5C6.45 4.8 4.8 6.45 1.5 7c3.3.55 4.95 2.2 5.5 5.5c.55-3.3 2.2-4.95 5.5-5.5C9.2 6.45 7.55 4.8 7 1.5"/>',
|
|
119
|
-
width: 24,
|
|
120
|
-
height: 24
|
|
121
|
-
},
|
|
122
|
-
"gravity-ui:text": {
|
|
123
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M3.279 2.544A.75.75 0 0 1 4 2h8a.75.75 0 0 1 .721.544l.5 1.75a.75.75 0 1 1-1.442.412L11.434 3.5H8.75l-.004 9H9.5a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5h.746l.004-9H4.566L4.22 4.706a.75.75 0 1 1-1.442-.412z" clip-rule="evenodd"/>',
|
|
124
|
-
width: 24,
|
|
125
|
-
height: 24
|
|
126
|
-
},
|
|
127
|
-
"gravity-ui:text-align-center": {
|
|
128
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M2.75 2a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zm0 7a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zm2 3.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zM4 6.25a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 4 6.25" clip-rule="evenodd"/>',
|
|
129
|
-
width: 24,
|
|
130
|
-
height: 24
|
|
131
|
-
},
|
|
132
|
-
"gravity-ui:text-align-justify": {
|
|
133
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M2.75 2a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zM2 6.25a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 6.25M2.75 9a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zm0 3.5a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>',
|
|
134
|
-
width: 24,
|
|
135
|
-
height: 24
|
|
136
|
-
},
|
|
137
|
-
"gravity-ui:text-align-left": {
|
|
138
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M2.75 2a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zm0 7a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zm0 3.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zM2 6.25a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 2 6.25" clip-rule="evenodd"/>',
|
|
139
|
-
width: 24,
|
|
140
|
-
height: 24
|
|
141
|
-
},
|
|
142
|
-
"gravity-ui:text-align-right": {
|
|
143
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M2.75 2a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zM6 6.25a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 6 6.25M2.75 9a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5zm4 3.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>',
|
|
144
|
-
width: 24,
|
|
145
|
-
height: 24
|
|
146
|
-
},
|
|
147
|
-
"gravity-ui:underline": {
|
|
148
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M5 2.75a.75.75 0 0 0-1.5 0V7a4.5 4.5 0 0 0 9 0V2.75a.75.75 0 0 0-1.5 0V7a3 3 0 0 1-6 0zm-.75 9.75a.75.75 0 0 0 0 1.5h7.5a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>',
|
|
149
|
-
width: 24,
|
|
150
|
-
height: 24
|
|
151
|
-
},
|
|
152
|
-
"healthicons:polygon": {
|
|
153
|
-
body: '<path fill="currentColor" fill-rule="evenodd" d="M28 10c0 .507-.094.992-.266 1.438l7.696 5.497a4 4 0 1 1 2.706 7.063l-2.32 10.437A4 4 0 1 1 30.126 39H17.874A4.002 4.002 0 0 1 10 38a4 4 0 0 1 2.184-3.565l-2.32-10.437a4 4 0 1 1 2.706-7.063l7.696-5.497A4 4 0 1 1 28 10m-6.57 3.065l-7.696 5.497a4 4 0 0 1-1.917 5.003l2.319 10.437A4 4 0 0 1 17.874 37h12.252a4 4 0 0 1 3.738-2.998l2.32-10.437a4 4 0 0 1-1.918-5.003l-7.695-5.497A3.98 3.98 0 0 1 24 14a3.98 3.98 0 0 1-2.57-.935" clip-rule="evenodd"/>',
|
|
154
|
-
width: 48,
|
|
155
|
-
height: 48
|
|
156
|
-
},
|
|
157
|
-
"heroicons:swatch": {
|
|
158
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4.098 19.902a3.75 3.75 0 0 0 5.304 0l6.401-6.402M6.75 21A3.75 3.75 0 0 1 3 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 0 0 3.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88a1.124 1.124 0 0 1 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75z"/>',
|
|
159
|
-
width: 24,
|
|
160
|
-
height: 24
|
|
161
|
-
},
|
|
162
|
-
"hugeicons:layer-bring-forward": {
|
|
163
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m15.89 11.5l3.397 1.56C21.096 13.892 22 14.308 22 15s-.904 1.109-2.713 1.94l-4.893 2.247c-1.18.542-1.77.813-2.394.813s-1.214-.271-2.394-.813l-4.893-2.248C2.904 16.11 2 15.693 2 15s.904-1.109 2.713-1.94L8.11 11.5m3.89-7V15m3-8c-.59-.607-2.16-3-3-3S9.59 6.393 9 7"/>',
|
|
164
|
-
width: 24,
|
|
165
|
-
height: 24
|
|
166
|
-
},
|
|
167
|
-
"hugeicons:layer-send-backward": {
|
|
168
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m15.89 12.5l3.397-1.56C21.096 10.108 22 9.692 22 9s-.904-1.109-2.713-1.94l-4.893-2.247C13.214 4.271 12.624 4 12 4s-1.214.271-2.394.813L4.713 7.061C2.904 7.89 2 8.307 2 9s.904 1.109 2.713 1.94L8.11 12.5m3.89 7V9m3 8c-.59.607-2.16 3-3 3s-2.41-2.393-3-3"/>',
|
|
169
|
-
width: 24,
|
|
170
|
-
height: 24
|
|
171
|
-
},
|
|
172
|
-
"lucide:a-large-small": {
|
|
173
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m15 16l2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16m-6.303-2h5.606M2 16l4.039-9.69a.5.5 0 0 1 .923 0L11 16m-7.696-3h6.392"/>',
|
|
174
|
-
width: 24,
|
|
175
|
-
height: 24
|
|
176
|
-
},
|
|
177
|
-
"lucide:aperture": {
|
|
178
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="m14.31 8l5.74 9.94M9.69 8h11.48M7.38 12l5.74-9.94M9.69 16L3.95 6.06M14.31 16H2.83m13.79-4l-5.74 9.94"/></g>',
|
|
179
|
-
width: 24,
|
|
180
|
-
height: 24
|
|
181
|
-
},
|
|
182
|
-
"lucide:arrow-left": {
|
|
183
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m12 19l-7-7l7-7m7 7H5"/>',
|
|
184
|
-
width: 24,
|
|
185
|
-
height: 24
|
|
186
|
-
},
|
|
187
|
-
"lucide:arrow-up-from-dot": {
|
|
188
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m5 9l7-7l7 7m-7 7V2"/><circle cx="12" cy="21" r="1"/></g>',
|
|
189
|
-
width: 24,
|
|
190
|
-
height: 24
|
|
191
|
-
},
|
|
192
|
-
"lucide:blend": {
|
|
193
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="9" cy="9" r="7"/><circle cx="15" cy="15" r="7"/></g>',
|
|
194
|
-
width: 24,
|
|
195
|
-
height: 24
|
|
196
|
-
},
|
|
197
|
-
"lucide:case-upper": {
|
|
198
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11h4.5a1 1 0 0 1 0 5h-4a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h3a1 1 0 0 1 0 5M2 16l4.039-9.69a.5.5 0 0 1 .923 0L11 16m-7.696-3h6.392"/>',
|
|
199
|
-
width: 24,
|
|
200
|
-
height: 24
|
|
201
|
-
},
|
|
202
|
-
"lucide:circle": {
|
|
203
|
-
body: '<circle cx="12" cy="12" r="10" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>',
|
|
204
|
-
width: 24,
|
|
205
|
-
height: 24
|
|
206
|
-
},
|
|
207
|
-
"lucide:circle-dashed": {
|
|
208
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.1 2.182a10 10 0 0 1 3.8 0m0 19.636a10 10 0 0 1-3.8 0m7.509-18.097a10 10 0 0 1 2.69 2.7M2.182 13.9a10 10 0 0 1 0-3.8m18.097 7.509a10 10 0 0 1-2.7 2.69M21.818 10.1a10 10 0 0 1 0 3.8M3.721 6.391a10 10 0 0 1 2.7-2.69m-.03 16.578a10 10 0 0 1-2.69-2.7"/>',
|
|
209
|
-
width: 24,
|
|
210
|
-
height: 24
|
|
211
|
-
},
|
|
212
|
-
"lucide:cloud": {
|
|
213
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9"/>',
|
|
214
|
-
width: 24,
|
|
215
|
-
height: 24
|
|
216
|
-
},
|
|
217
|
-
"lucide:copy": {
|
|
218
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></g>',
|
|
219
|
-
width: 24,
|
|
220
|
-
height: 24
|
|
221
|
-
},
|
|
222
|
-
"lucide:credit-card": {
|
|
223
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="20" height="14" x="2" y="5" rx="2"/><path d="M2 10h20"/></g>',
|
|
224
|
-
width: 24,
|
|
225
|
-
height: 24
|
|
226
|
-
},
|
|
227
|
-
"lucide:crop": {
|
|
228
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6 2v14a2 2 0 0 0 2 2h14"/><path d="M18 22V8a2 2 0 0 0-2-2H2"/></g>',
|
|
229
|
-
width: 24,
|
|
230
|
-
height: 24
|
|
231
|
-
},
|
|
232
|
-
"lucide:ellipsis-vertical": {
|
|
233
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></g>',
|
|
234
|
-
width: 24,
|
|
235
|
-
height: 24
|
|
236
|
-
},
|
|
237
|
-
"lucide:flag": {
|
|
238
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528"/>',
|
|
239
|
-
width: 24,
|
|
240
|
-
height: 24
|
|
241
|
-
},
|
|
242
|
-
"lucide:flip-horizontal-2": {
|
|
243
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 7l5 5l-5 5zm18 0l-5 5l5 5zm-9 13v2m0-8v2m0-8v2m0-8v2"/>',
|
|
244
|
-
width: 24,
|
|
245
|
-
height: 24
|
|
246
|
-
},
|
|
247
|
-
"lucide:flip-vertical-2": {
|
|
248
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m17 3l-5 5l-5-5zm0 18l-5-5l-5 5zM4 12H2m8 0H8m8 0h-2m8 0h-2"/>',
|
|
249
|
-
width: 24,
|
|
250
|
-
height: 24
|
|
251
|
-
},
|
|
252
|
-
"lucide:folder-open": {
|
|
253
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 14l1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"/>',
|
|
254
|
-
width: 24,
|
|
255
|
-
height: 24
|
|
256
|
-
},
|
|
257
|
-
"lucide:folder-plus": {
|
|
258
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m-3-3h6m5 7a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>',
|
|
259
|
-
width: 24,
|
|
260
|
-
height: 24
|
|
261
|
-
},
|
|
262
|
-
"lucide:grid-2x2": {
|
|
263
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12 3v18m-9-9h18"/><rect width="18" height="18" x="3" y="3" rx="2"/></g>',
|
|
264
|
-
width: 24,
|
|
265
|
-
height: 24
|
|
266
|
-
},
|
|
267
|
-
"lucide:grid-3x3": {
|
|
268
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M3 9h18M3 15h18M9 3v18m6-18v18"/></g>',
|
|
269
|
-
width: 24,
|
|
270
|
-
height: 24
|
|
271
|
-
},
|
|
272
|
-
"lucide:grip-vertical": {
|
|
273
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="9" cy="12" r="1"/><circle cx="9" cy="5" r="1"/><circle cx="9" cy="19" r="1"/><circle cx="15" cy="12" r="1"/><circle cx="15" cy="5" r="1"/><circle cx="15" cy="19" r="1"/></g>',
|
|
274
|
-
width: 24,
|
|
275
|
-
height: 24
|
|
276
|
-
},
|
|
277
|
-
"lucide:hexagon": {
|
|
278
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16"/>',
|
|
279
|
-
width: 24,
|
|
280
|
-
height: 24
|
|
281
|
-
},
|
|
282
|
-
"lucide:image": {
|
|
283
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/></g>',
|
|
284
|
-
width: 24,
|
|
285
|
-
height: 24
|
|
286
|
-
},
|
|
287
|
-
"lucide:italic": {
|
|
288
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 4h-9m4 16H5M15 4L9 20"/>',
|
|
289
|
-
width: 24,
|
|
290
|
-
height: 24
|
|
291
|
-
},
|
|
292
|
-
"lucide:layout-grid": {
|
|
293
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><rect width="7" height="7" x="3" y="3" rx="1"/><rect width="7" height="7" x="14" y="3" rx="1"/><rect width="7" height="7" x="14" y="14" rx="1"/><rect width="7" height="7" x="3" y="14" rx="1"/></g>',
|
|
294
|
-
width: 24,
|
|
295
|
-
height: 24
|
|
296
|
-
},
|
|
297
|
-
"lucide:lightbulb": {
|
|
298
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4"/>',
|
|
299
|
-
width: 24,
|
|
300
|
-
height: 24
|
|
301
|
-
},
|
|
302
|
-
"lucide:loader-circle": {
|
|
303
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 1 1-6.219-8.56"/>',
|
|
304
|
-
width: 24,
|
|
305
|
-
height: 24
|
|
306
|
-
},
|
|
307
|
-
"lucide:minus": {
|
|
308
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14"/>',
|
|
309
|
-
width: 24,
|
|
310
|
-
height: 24
|
|
311
|
-
},
|
|
312
|
-
"lucide:moon": {
|
|
313
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/>',
|
|
314
|
-
width: 24,
|
|
315
|
-
height: 24
|
|
316
|
-
},
|
|
317
|
-
"lucide:move-vertical": {
|
|
318
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 2v20m-4-4l4 4l4-4M8 6l4-4l4 4"/>',
|
|
319
|
-
width: 24,
|
|
320
|
-
height: 24
|
|
321
|
-
},
|
|
322
|
-
"lucide:paint-bucket": {
|
|
323
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 7L6 2m12.992 10H2.041m19.104 6.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595M8.5 4.5l2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33"/>',
|
|
324
|
-
width: 24,
|
|
325
|
-
height: 24
|
|
326
|
-
},
|
|
327
|
-
"lucide:palette": {
|
|
328
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M12 22a1 1 0 0 1 0-20a10 9 0 0 1 10 9a5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"/><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/></g>',
|
|
329
|
-
width: 24,
|
|
330
|
-
height: 24
|
|
331
|
-
},
|
|
332
|
-
"lucide:pen-line": {
|
|
333
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 21h8m.174-14.188a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/>',
|
|
334
|
-
width: 24,
|
|
335
|
-
height: 24
|
|
336
|
-
},
|
|
337
|
-
"lucide:pen-tool": {
|
|
338
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z"/><path d="m18 13l-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18M2.3 2.3l7.286 7.286"/><circle cx="11" cy="11" r="2"/></g>',
|
|
339
|
-
width: 24,
|
|
340
|
-
height: 24
|
|
341
|
-
},
|
|
342
|
-
"lucide:redo-2": {
|
|
343
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m15 14l5-5l-5-5"/><path d="M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13"/></g>',
|
|
344
|
-
width: 24,
|
|
345
|
-
height: 24
|
|
346
|
-
},
|
|
347
|
-
"lucide:rotate-ccw": {
|
|
348
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 12a9 9 0 1 0 9-9a9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/></g>',
|
|
349
|
-
width: 24,
|
|
350
|
-
height: 24
|
|
351
|
-
},
|
|
352
|
-
"lucide:rotate-cw": {
|
|
353
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/></g>',
|
|
354
|
-
width: 24,
|
|
355
|
-
height: 24
|
|
356
|
-
},
|
|
357
|
-
"lucide:scissors": {
|
|
358
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="6" cy="6" r="3"/><path d="M8.12 8.12L12 12m8-8L8.12 15.88"/><circle cx="6" cy="18" r="3"/><path d="M14.8 14.8L20 20"/></g>',
|
|
359
|
-
width: 24,
|
|
360
|
-
height: 24
|
|
361
|
-
},
|
|
362
|
-
"lucide:settings": {
|
|
363
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0a2.34 2.34 0 0 0 3.319 1.915a2.34 2.34 0 0 1 2.33 4.033a2.34 2.34 0 0 0 0 3.831a2.34 2.34 0 0 1-2.33 4.033a2.34 2.34 0 0 0-3.319 1.915a2.34 2.34 0 0 1-4.659 0a2.34 2.34 0 0 0-3.32-1.915a2.34 2.34 0 0 1-2.33-4.033a2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"/><circle cx="12" cy="12" r="3"/></g>',
|
|
364
|
-
width: 24,
|
|
365
|
-
height: 24
|
|
366
|
-
},
|
|
367
|
-
"lucide:shapes": {
|
|
368
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z"/><rect width="7" height="7" x="3" y="14" rx="1"/><circle cx="17.5" cy="17.5" r="3.5"/></g>',
|
|
369
|
-
width: 24,
|
|
370
|
-
height: 24
|
|
371
|
-
},
|
|
372
|
-
"lucide:sparkles": {
|
|
373
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4"/><circle cx="4" cy="20" r="2"/></g>',
|
|
374
|
-
width: 24,
|
|
375
|
-
height: 24
|
|
376
|
-
},
|
|
377
|
-
"lucide:square": {
|
|
378
|
-
body: '<rect width="18" height="18" x="3" y="3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" rx="2"/>',
|
|
379
|
-
width: 24,
|
|
380
|
-
height: 24
|
|
381
|
-
},
|
|
382
|
-
"lucide:square-round-corner": {
|
|
383
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 11a8 8 0 0 0-8-8m8 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>',
|
|
384
|
-
width: 24,
|
|
385
|
-
height: 24
|
|
386
|
-
},
|
|
387
|
-
"lucide:stamp": {
|
|
388
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13m10 2.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1zM5 22h14"/>',
|
|
389
|
-
width: 24,
|
|
390
|
-
height: 24
|
|
391
|
-
},
|
|
392
|
-
"lucide:star": {
|
|
393
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z"/>',
|
|
394
|
-
width: 24,
|
|
395
|
-
height: 24
|
|
396
|
-
},
|
|
397
|
-
"lucide:sun": {
|
|
398
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="12" cy="12" r="4"/><path d="M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></g>',
|
|
399
|
-
width: 24,
|
|
400
|
-
height: 24
|
|
401
|
-
},
|
|
402
|
-
"lucide:text-cursor": {
|
|
403
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1M7 22h1a4 4 0 0 0 4-4M7 2h1a4 4 0 0 1 4 4"/>',
|
|
404
|
-
width: 24,
|
|
405
|
-
height: 24
|
|
406
|
-
},
|
|
407
|
-
"lucide:trash": {
|
|
408
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>',
|
|
409
|
-
width: 24,
|
|
410
|
-
height: 24
|
|
411
|
-
},
|
|
412
|
-
"lucide:trending-up": {
|
|
413
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M16 7h6v6"/><path d="m22 7l-8.5 8.5l-5-5L2 17"/></g>',
|
|
414
|
-
width: 24,
|
|
415
|
-
height: 24
|
|
416
|
-
},
|
|
417
|
-
"lucide:triangle": {
|
|
418
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/>',
|
|
419
|
-
width: 24,
|
|
420
|
-
height: 24
|
|
421
|
-
},
|
|
422
|
-
"lucide:type": {
|
|
423
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2M9 20h6"/>',
|
|
424
|
-
width: 24,
|
|
425
|
-
height: 24
|
|
426
|
-
},
|
|
427
|
-
"lucide:undo-2": {
|
|
428
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M9 14L4 9l5-5"/><path d="M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11"/></g>',
|
|
429
|
-
width: 24,
|
|
430
|
-
height: 24
|
|
431
|
-
},
|
|
432
|
-
"lucide:venetian-mask": {
|
|
433
|
-
body: '<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M18 11c-1.5 0-2.5.5-3 2"/><path d="M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5a8 8 0 0 1 5 2a8 8 0 0 1 5-2a5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2a8 8 0 0 0-5-2z"/><path d="M6 11c1.5 0 2.5.5 3 2"/></g>',
|
|
434
|
-
width: 24,
|
|
435
|
-
height: 24
|
|
436
|
-
},
|
|
437
|
-
"lucide:waves": {
|
|
438
|
-
body: '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2c2.5 0 2.5-2 5-2c1.3 0 1.9.5 2.5 1M2 12c.6.5 1.2 1 2.5 1c2.5 0 2.5-2 5-2c2.6 0 2.4 2 5 2c2.5 0 2.5-2 5-2c1.3 0 1.9.5 2.5 1M2 18c.6.5 1.2 1 2.5 1c2.5 0 2.5-2 5-2c2.6 0 2.4 2 5 2c2.5 0 2.5-2 5-2c1.3 0 1.9.5 2.5 1"/>',
|
|
439
|
-
width: 24,
|
|
440
|
-
height: 24
|
|
441
|
-
},
|
|
442
|
-
"material-symbols:award-star-outline": {
|
|
443
|
-
body: '<path fill="currentColor" d="M9.075 16.25L12 14.475l2.925 1.775l-.775-3.325l2.6-2.25l-3.425-.275L12 7.25l-1.325 3.15l-3.425.275l2.6 2.25zM12 23.3L8.65 20H4v-4.65L.7 12L4 8.65V4h4.65L12 .7L15.35 4H20v4.65L23.3 12L20 15.35V20h-4.65zm0-2.8l2.5-2.5H18v-3.5l2.5-2.5L18 9.5V6h-3.5L12 3.5L9.5 6H6v3.5L3.5 12L6 14.5V18h3.5zm0-8.5"/>',
|
|
444
|
-
width: 24,
|
|
445
|
-
height: 24
|
|
446
|
-
},
|
|
447
|
-
"mdi:cube-outline": {
|
|
448
|
-
body: '<path fill="currentColor" d="M21 16.5c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18s-.41-.06-.57-.18l-7.9-4.44A.99.99 0 0 1 3 16.5v-9c0-.38.21-.71.53-.88l7.9-4.44c.16-.12.36-.18.57-.18s.41.06.57.18l7.9 4.44c.32.17.53.5.53.88zM12 4.15L6.04 7.5L12 10.85l5.96-3.35zM5 15.91l6 3.38v-6.71L5 9.21zm14 0v-6.7l-6 3.37v6.71z"/>',
|
|
449
|
-
width: 24,
|
|
450
|
-
height: 24
|
|
451
|
-
},
|
|
452
|
-
"mdi:format-color-fill": {
|
|
453
|
-
body: '<path fill="currentColor" d="M19 11.5s-2 2.17-2 3.5a2 2 0 0 0 2 2a2 2 0 0 0 2-2c0-1.33-2-3.5-2-3.5M5.21 10L10 5.21L14.79 10m1.77-1.06L7.62 0L6.21 1.41l2.38 2.38l-5.15 5.15c-.59.56-.59 1.53 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.59.59-1.56 0-2.12"/>',
|
|
454
|
-
width: 24,
|
|
455
|
-
height: 24
|
|
456
|
-
},
|
|
457
|
-
"mdi:image-remove": {
|
|
458
|
-
body: '<path fill="currentColor" d="M13.3 21H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v8.3c-.6-.2-1.3-.3-2-.3c-1.1 0-2.2.3-3.1.9L14.5 12L11 16.5l-2.5-3L5 18h8.1c-.1.3-.1.7-.1 1c0 .7.1 1.4.3 2m7.1-2l2.1 2.1l-1.4 1.4l-2.1-2.1l-2.1 2.1l-1.4-1.4l2.1-2.1l-2.1-2.1l1.4-1.4l2.1 2.1l2.1-2.1l1.4 1.4z"/>',
|
|
459
|
-
width: 24,
|
|
460
|
-
height: 24
|
|
461
|
-
},
|
|
462
|
-
"ph:monitor-fill": {
|
|
463
|
-
body: '<path fill="currentColor" d="M232 64v112a24 24 0 0 1-24 24H48a24 24 0 0 1-24-24V64a24 24 0 0 1 24-24h160a24 24 0 0 1 24 24m-72 152H96a8 8 0 0 0 0 16h64a8 8 0 0 0 0-16"/>',
|
|
464
|
-
width: 256,
|
|
465
|
-
height: 256
|
|
466
|
-
},
|
|
467
|
-
"radix-icons:font-size": {
|
|
468
|
-
body: '<path fill="currentColor" d="M2.5 2.1a.4.4 0 0 1 .283.117l2 2l.05.064a.4.4 0 0 1-.05.503a.4.4 0 0 1-.503.05l-.063-.05L2.9 3.467v8.067l1.317-1.317a.4.4 0 0 1 .566.566l-2 2a.4.4 0 0 1-.566 0l-2-2l-.051-.063a.4.4 0 0 1 .554-.554l.063.051l1.316 1.316V3.467L.783 4.784a.401.401 0 0 1-.566-.567l2-2l.061-.05A.4.4 0 0 1 2.5 2.1m5.47 9.64a.501.501 0 0 1-.94-.34zm2.53-8.99a.5.5 0 0 1 .47.33l3 8.32a.5.5 0 0 1-.94.34l-.983-2.724H8.953l-.982 2.724l-.471-.17l-.47-.17l3-8.32l.031-.07a.5.5 0 0 1 .439-.26M9.259 8.166h2.482L10.5 4.725z"/>',
|
|
469
|
-
width: 15,
|
|
470
|
-
height: 15
|
|
471
|
-
}
|
|
472
|
-
}, Ce = typeof window < "u";
|
|
473
|
-
async function Ie() {
|
|
474
|
-
if (!Ce) return;
|
|
475
|
-
const { addIcon: e } = await import("./iconify-D6eVIEy4.js");
|
|
476
|
-
for (const [t, r] of Object.entries(Ue))
|
|
477
|
-
e(t, r);
|
|
478
|
-
}
|
|
479
|
-
let he = !1;
|
|
480
|
-
function lt() {
|
|
481
|
-
he || !Ce || (he = !0, Ie().catch(() => {
|
|
482
|
-
he = !1;
|
|
483
|
-
}));
|
|
484
|
-
}
|
|
485
|
-
const Re = Q("ElementPreviewRenderer"), Oe = {
|
|
486
|
-
width: 40,
|
|
487
|
-
height: 40,
|
|
488
|
-
padding: 4,
|
|
489
|
-
backgroundColor: "transparent"
|
|
490
|
-
};
|
|
491
|
-
function Ne(e, t = {}) {
|
|
492
|
-
const r = { ...Oe, ...t }, i = document.createElement("canvas");
|
|
493
|
-
i.width = r.width, i.height = r.height;
|
|
494
|
-
const c = i.getContext("2d");
|
|
495
|
-
if (!c)
|
|
496
|
-
return "";
|
|
497
|
-
r.backgroundColor !== "transparent" && (c.fillStyle = r.backgroundColor, c.fillRect(0, 0, r.width, r.height)), c.save();
|
|
498
|
-
try {
|
|
499
|
-
e instanceof G ? De(c, e, r) : We(c, e, r);
|
|
500
|
-
} catch (a) {
|
|
501
|
-
Re.warn("Failed to generate preview:", a);
|
|
502
|
-
}
|
|
503
|
-
return c.restore(), i.toDataURL("image/png");
|
|
504
|
-
}
|
|
505
|
-
function We(e, t, r) {
|
|
506
|
-
var j;
|
|
507
|
-
const i = ((j = t.getBoundingBox) == null ? void 0 : j.call(t)) || { x: 0, y: 0, width: 100, height: 100 }, c = i.width, a = i.height;
|
|
508
|
-
if (c === 0 || a === 0) {
|
|
509
|
-
me(e, t, r);
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
const l = r.width - r.padding * 2, S = r.height - r.padding * 2, h = Math.min(
|
|
513
|
-
l / c,
|
|
514
|
-
S / a,
|
|
515
|
-
1
|
|
516
|
-
// Don't scale up, only down
|
|
517
|
-
), p = c * h, y = a * h, b = r.padding + (l - p) / 2, E = r.padding + (S - y) / 2;
|
|
518
|
-
e.save(), e.translate(b - i.x * h, E - i.y * h), e.scale(h, h), typeof t.render == "function" ? t.render(e, !1, !1) : me(e, t, r), e.restore();
|
|
519
|
-
}
|
|
520
|
-
function me(e, t, r) {
|
|
521
|
-
e.fillStyle = "#888888", e.font = "10px Arial", e.textAlign = "center", e.textBaseline = "middle";
|
|
522
|
-
const i = t.transformType || "Element";
|
|
523
|
-
e.fillText(i, r.width / 2, r.height / 2);
|
|
524
|
-
}
|
|
525
|
-
function De(e, t, r) {
|
|
526
|
-
const i = r.width - r.padding * 2, c = r.height - r.padding * 2, a = r.padding, l = r.padding;
|
|
527
|
-
e.fillStyle = "#888888", e.strokeStyle = "#666666", e.lineWidth = 1;
|
|
528
|
-
const S = c * 0.7, h = l + c * 0.3, p = i * 0.4, y = c * 0.2;
|
|
529
|
-
e.fillRect(a, h, i, S), e.fillRect(a, h - y, p, y), t.children && t.children.length > 0 && (e.fillStyle = "#FFFFFF", e.font = "bold 10px Arial", e.textAlign = "center", e.textBaseline = "middle", e.fillText(
|
|
530
|
-
t.children.length.toString(),
|
|
531
|
-
a + i / 2,
|
|
532
|
-
h + S / 2
|
|
533
|
-
));
|
|
534
|
-
}
|
|
535
|
-
const M = Q("Layers"), _e = 150;
|
|
536
|
-
async function we(e, t = 64, r = "transparent") {
|
|
537
|
-
try {
|
|
538
|
-
return Ne(e, {
|
|
539
|
-
width: t,
|
|
540
|
-
height: t,
|
|
541
|
-
padding: 8,
|
|
542
|
-
backgroundColor: r
|
|
543
|
-
}) || null;
|
|
544
|
-
} catch (i) {
|
|
545
|
-
return M.error("Failed to generate preview:", i), null;
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
function Ae(e, t, r, i, c, a = 0, l = null) {
|
|
549
|
-
return (a > 0 ? e : e.filter((h) => {
|
|
550
|
-
const p = h.parentId ?? null;
|
|
551
|
-
return h instanceof G, p === null;
|
|
552
|
-
})).map((h) => {
|
|
553
|
-
const p = h instanceof G, y = t === h.id || r.includes(h.id), b = {
|
|
554
|
-
id: h.id,
|
|
555
|
-
name: h.name || `Layer ${h.id.slice(0, 8)}`,
|
|
556
|
-
type: h.transformType,
|
|
557
|
-
visible: h.visible ?? !0,
|
|
558
|
-
locked: h.locked ?? !1,
|
|
559
|
-
isSelected: y,
|
|
560
|
-
isGroup: p,
|
|
561
|
-
depth: a,
|
|
562
|
-
parentId: l,
|
|
563
|
-
previewUrl: i.get(h.id) || null,
|
|
564
|
-
refreshPreview: async () => {
|
|
565
|
-
await c(h.id);
|
|
566
|
-
}
|
|
567
|
-
};
|
|
568
|
-
return p && h instanceof G && (b.children = Ae(
|
|
569
|
-
h.children,
|
|
570
|
-
t,
|
|
571
|
-
r,
|
|
572
|
-
i,
|
|
573
|
-
c,
|
|
574
|
-
a + 1,
|
|
575
|
-
h.id
|
|
576
|
-
)), b;
|
|
577
|
-
});
|
|
578
|
-
}
|
|
579
|
-
function Me(e) {
|
|
580
|
-
const t = [];
|
|
581
|
-
for (const r of e)
|
|
582
|
-
t.push(r), r.children && t.push(...Me(r.children));
|
|
583
|
-
return t;
|
|
584
|
-
}
|
|
585
|
-
function at(e = {}) {
|
|
586
|
-
var pe;
|
|
587
|
-
const {
|
|
588
|
-
artboardId: t,
|
|
589
|
-
includeHidden: r = !0,
|
|
590
|
-
previewSize: i = 64,
|
|
591
|
-
previewBackgroundColor: c,
|
|
592
|
-
autoRefreshPreviews: a = !1
|
|
593
|
-
} = e, {
|
|
594
|
-
elements: l,
|
|
595
|
-
selectedId: S,
|
|
596
|
-
multiSelection: h,
|
|
597
|
-
artboardManager: p,
|
|
598
|
-
handleSelectionChange: y,
|
|
599
|
-
handleElementUpdate: b,
|
|
600
|
-
setMultiSelection: E,
|
|
601
|
-
executeAddElement: j,
|
|
602
|
-
executeRemoveElement: H,
|
|
603
|
-
executeReorderElement: R
|
|
604
|
-
} = fe(), u = le(/* @__PURE__ */ new Map()), [g, C] = K(0), B = p.getActiveArtboardId(), I = t !== void 0 ? t : B, ee = I ? (pe = p.getArtboard) == null ? void 0 : pe.call(p, I) : null, O = c ?? (ee == null ? void 0 : ee.backgroundColor) ?? "transparent", ie = f(async (o) => {
|
|
605
|
-
const n = l.find((s) => s.id === o);
|
|
606
|
-
if (!n) return;
|
|
607
|
-
const d = await we(n, i, O);
|
|
608
|
-
u.current.set(o, d), C((s) => s + 1);
|
|
609
|
-
}, [l, i, O]), w = Y(() => {
|
|
610
|
-
let o = l;
|
|
611
|
-
if (I) {
|
|
612
|
-
const n = p.getElementsOnArtboard(I);
|
|
613
|
-
o = o.filter((d) => n.includes(d.id));
|
|
614
|
-
}
|
|
615
|
-
return r || (o = o.filter((n) => n.visible !== !1)), o;
|
|
616
|
-
}, [l, I, r, p]), F = Y(() => Ae(
|
|
617
|
-
w,
|
|
618
|
-
S,
|
|
619
|
-
h,
|
|
620
|
-
u.current,
|
|
621
|
-
ie
|
|
622
|
-
), [w, S, h, ie, g]), v = Y(() => Me(F), [F]), V = Y(() => v.filter((o) => o.isSelected), [v]), k = f((o, n = !1) => {
|
|
623
|
-
n ? h.includes(o) ? E(h.filter((d) => d !== o)) : E([...h, o]) : y(o);
|
|
624
|
-
}, [h, E, y]), z = f((o) => {
|
|
625
|
-
E(o);
|
|
626
|
-
}, [E]), U = f(() => {
|
|
627
|
-
y(null), E([]);
|
|
628
|
-
}, [y, E]), _ = f((o) => {
|
|
629
|
-
const n = l.find((s) => s.id === o);
|
|
630
|
-
if (!n) return;
|
|
631
|
-
const d = n.clone();
|
|
632
|
-
d.visible = !(n.visible ?? !0), b(d);
|
|
633
|
-
}, [l, b]), N = f((o) => {
|
|
634
|
-
const n = l.find((s) => s.id === o);
|
|
635
|
-
if (!n) return;
|
|
636
|
-
const d = n.clone();
|
|
637
|
-
d.locked = !(n.locked ?? !1), b(d);
|
|
638
|
-
}, [l, b]), q = f((o, n) => {
|
|
639
|
-
const d = l.find((A) => A.id === o);
|
|
640
|
-
if (!d) return;
|
|
641
|
-
const s = d.clone();
|
|
642
|
-
s.name = n, b(s);
|
|
643
|
-
}, [l, b]), $ = f((o) => {
|
|
644
|
-
const n = l.find((d) => d.id === o);
|
|
645
|
-
if (!n) {
|
|
646
|
-
M.warn(`Element ${o} not found for deletion`);
|
|
647
|
-
return;
|
|
648
|
-
}
|
|
649
|
-
H(n), (S === o || h.includes(o)) && (y(null), E(h.filter((d) => d !== o)));
|
|
650
|
-
}, [l, H, S, h, y, E]), T = f((o) => {
|
|
651
|
-
const n = l.find((P) => P.id === o);
|
|
652
|
-
if (!n) {
|
|
653
|
-
M.warn(`Element ${o} not found for duplication`);
|
|
654
|
-
return;
|
|
655
|
-
}
|
|
656
|
-
const s = n.clone().toJSON();
|
|
657
|
-
delete s.id;
|
|
658
|
-
const A = n.constructor, m = new A(s);
|
|
659
|
-
m.x = n.x + 20, m.y = n.y + 20;
|
|
660
|
-
const x = p.getArtboardIdForElement(o);
|
|
661
|
-
if (!x) {
|
|
662
|
-
M.warn(`Element ${o} not associated with any artboard`);
|
|
663
|
-
return;
|
|
664
|
-
}
|
|
665
|
-
j(m, x, o), y(m.id);
|
|
666
|
-
}, [l, p, j, y]), Z = f((o, n) => {
|
|
667
|
-
if (o === n) return;
|
|
668
|
-
if (o < 0 || o >= w.length) {
|
|
669
|
-
M.warn(`Invalid fromIndex: ${o}`);
|
|
670
|
-
return;
|
|
671
|
-
}
|
|
672
|
-
if (n < 0 || n >= w.length) {
|
|
673
|
-
M.warn(`Invalid toIndex: ${n}`);
|
|
674
|
-
return;
|
|
675
|
-
}
|
|
676
|
-
const d = w[o], s = w[n], A = o < n ? "after" : "before";
|
|
677
|
-
R(d.id, s.id, A);
|
|
678
|
-
}, [w, R]), te = f((o) => {
|
|
679
|
-
const n = v.findIndex((d) => d.id === o);
|
|
680
|
-
if (n < 0) {
|
|
681
|
-
M.warn(`Layer ${o} not found`);
|
|
682
|
-
return;
|
|
683
|
-
}
|
|
684
|
-
n >= v.length - 1 || Z(n, n + 1);
|
|
685
|
-
}, [v, Z]), W = f((o) => {
|
|
686
|
-
const n = v.findIndex((d) => d.id === o);
|
|
687
|
-
if (n < 0) {
|
|
688
|
-
M.warn(`Layer ${o} not found`);
|
|
689
|
-
return;
|
|
690
|
-
}
|
|
691
|
-
n <= 0 || Z(n, n - 1);
|
|
692
|
-
}, [v, Z]), re = f((o) => {
|
|
693
|
-
if (o.length < 2) {
|
|
694
|
-
M.warn("Need at least 2 elements to create a group");
|
|
695
|
-
return;
|
|
696
|
-
}
|
|
697
|
-
const n = l.filter(
|
|
698
|
-
(L) => o.includes(L.id) && L.transformType !== "shape"
|
|
699
|
-
);
|
|
700
|
-
if (n.length < 2) {
|
|
701
|
-
M.warn("Need at least 2 groupable elements (shapes cannot be grouped)");
|
|
702
|
-
return;
|
|
703
|
-
}
|
|
704
|
-
const d = n.map((L) => p.getArtboardIdForElement(L.id)), s = [...new Set(d)];
|
|
705
|
-
if (s.length !== 1 || !s[0]) {
|
|
706
|
-
M.warn("All elements must be on the same artboard to group");
|
|
707
|
-
return;
|
|
708
|
-
}
|
|
709
|
-
const A = s[0], m = n.map((L) => L.getBoundingBox()).filter(Boolean);
|
|
710
|
-
if (m.length === 0) {
|
|
711
|
-
M.warn("Could not calculate bounding boxes for group");
|
|
712
|
-
return;
|
|
713
|
-
}
|
|
714
|
-
const x = Math.min(...m.map((L) => L.x)), P = Math.min(...m.map((L) => L.y)), D = new G({
|
|
715
|
-
x,
|
|
716
|
-
y: P
|
|
717
|
-
});
|
|
718
|
-
D.children = n.map((L) => {
|
|
719
|
-
const oe = L.clone();
|
|
720
|
-
return oe.x = L.x - x, oe.y = L.y - P, oe;
|
|
721
|
-
}), n.forEach((L) => H(L)), j(D, A), y(D.id), E([]);
|
|
722
|
-
}, [l, p, H, j, y, E]), Fe = f((o) => {
|
|
723
|
-
const n = l.find((m) => m.id === o);
|
|
724
|
-
if (!n) {
|
|
725
|
-
M.warn(`Element ${o} not found for ungrouping`);
|
|
726
|
-
return;
|
|
727
|
-
}
|
|
728
|
-
if (!(n instanceof G)) {
|
|
729
|
-
M.warn(`Element ${o} is not a group`);
|
|
730
|
-
return;
|
|
731
|
-
}
|
|
732
|
-
const d = n;
|
|
733
|
-
if (!d.children || d.children.length === 0) {
|
|
734
|
-
M.warn(`Group ${o} has no children`);
|
|
735
|
-
return;
|
|
736
|
-
}
|
|
737
|
-
const s = p.getArtboardIdForElement(o);
|
|
738
|
-
if (!s) {
|
|
739
|
-
M.warn(`Group ${o} not associated with any artboard`);
|
|
740
|
-
return;
|
|
741
|
-
}
|
|
742
|
-
const A = d.children.map((m) => {
|
|
743
|
-
const x = m.clone();
|
|
744
|
-
return x.x = m.x + d.x, x.y = m.y + d.y, x;
|
|
745
|
-
});
|
|
746
|
-
H(d), A.forEach((m) => j(m, s)), A.length > 0 && y(A[0].id), E([]);
|
|
747
|
-
}, [l, p, H, j, y, E]), ae = f(async (o = i) => {
|
|
748
|
-
const n = async (d) => {
|
|
749
|
-
for (const s of d) {
|
|
750
|
-
const A = await we(s, o, O);
|
|
751
|
-
u.current.set(s.id, A), s instanceof G && s.children.length > 0 && await n(s.children);
|
|
752
|
-
}
|
|
753
|
-
};
|
|
754
|
-
await n(w), C((d) => d + 1);
|
|
755
|
-
}, [i, O, w]);
|
|
756
|
-
be(() => {
|
|
757
|
-
if (!a) return;
|
|
758
|
-
const o = setTimeout(() => {
|
|
759
|
-
ae();
|
|
760
|
-
}, _e);
|
|
761
|
-
return () => clearTimeout(o);
|
|
762
|
-
}, [a, ae]);
|
|
763
|
-
const je = f(() => {
|
|
764
|
-
u.current.clear();
|
|
765
|
-
}, []), Se = f(
|
|
766
|
-
(o, n, d) => {
|
|
767
|
-
R(o, n, d);
|
|
768
|
-
},
|
|
769
|
-
[R]
|
|
770
|
-
), ze = f(
|
|
771
|
-
(o, n, d, s) => {
|
|
772
|
-
const A = l.find((J) => J.id === s);
|
|
773
|
-
if (!A || !(A instanceof G)) {
|
|
774
|
-
M.warn(`Group ${s} not found for reorder`);
|
|
775
|
-
return;
|
|
776
|
-
}
|
|
777
|
-
const m = A.clone(), x = m.children.findIndex((J) => J.id === o), P = m.children.findIndex((J) => J.id === n);
|
|
778
|
-
if (x === -1 || P === -1) {
|
|
779
|
-
M.warn(`Children not found in group for reorder: ${o}, ${n}`);
|
|
780
|
-
return;
|
|
781
|
-
}
|
|
782
|
-
const [D] = m.children.splice(x, 1), L = m.children.findIndex((J) => J.id === n), oe = d === "before" ? L : L + 1;
|
|
783
|
-
m.children.splice(oe, 0, D), b(m);
|
|
784
|
-
},
|
|
785
|
-
[l, b]
|
|
786
|
-
), He = f(
|
|
787
|
-
(o) => {
|
|
788
|
-
for (const n of l) {
|
|
789
|
-
if (n.id === o) return n;
|
|
790
|
-
if (n instanceof G) {
|
|
791
|
-
const d = n.children.find((s) => s.id === o);
|
|
792
|
-
if (d) return d;
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
return null;
|
|
796
|
-
},
|
|
797
|
-
[l]
|
|
798
|
-
), de = f(
|
|
799
|
-
(o) => {
|
|
800
|
-
for (const n of l)
|
|
801
|
-
if (n instanceof G && n.children.some((d) => d.id === o))
|
|
802
|
-
return n;
|
|
803
|
-
return null;
|
|
804
|
-
},
|
|
805
|
-
[l]
|
|
806
|
-
), Ve = f(
|
|
807
|
-
(o, n) => {
|
|
808
|
-
const d = l.find((P) => P.id === o), s = l.find((P) => P.id === n);
|
|
809
|
-
if (!d || !s || !(s instanceof G)) {
|
|
810
|
-
M.warn(`Cannot add ${o} to group ${n}`);
|
|
811
|
-
return;
|
|
812
|
-
}
|
|
813
|
-
if (!p.getArtboardIdForElement(o)) return;
|
|
814
|
-
const m = s.clone(), x = d.clone();
|
|
815
|
-
x.x = d.x, x.y = d.y, m.addChild(x), H(d), b(m);
|
|
816
|
-
},
|
|
817
|
-
[l, p, H, b]
|
|
818
|
-
), $e = f(
|
|
819
|
-
(o, n, d) => {
|
|
820
|
-
const s = de(o);
|
|
821
|
-
if (!s) {
|
|
822
|
-
M.warn(`Element ${o} is not inside a group`);
|
|
823
|
-
return;
|
|
824
|
-
}
|
|
825
|
-
const A = s.children.find((D) => D.id === o);
|
|
826
|
-
if (!A) return;
|
|
827
|
-
const m = p.getArtboardIdForElement(s.id);
|
|
828
|
-
if (!m) return;
|
|
829
|
-
const x = A.clone(), P = s.clone();
|
|
830
|
-
P.removeChild(o), b(P), n && d ? j(x, m, d === "after" ? n : void 0, d === "before" ? n : void 0) : j(x, m, void 0, s.id), y(x.id);
|
|
831
|
-
},
|
|
832
|
-
[de, p, H, b, j, y]
|
|
833
|
-
), Te = f(() => {
|
|
834
|
-
const o = p.getActiveArtboardId();
|
|
835
|
-
if (!o) {
|
|
836
|
-
M.warn("No active artboard for creating a group");
|
|
837
|
-
return;
|
|
838
|
-
}
|
|
839
|
-
const n = new G({
|
|
840
|
-
x: 0,
|
|
841
|
-
y: 0,
|
|
842
|
-
name: "New Group"
|
|
843
|
-
});
|
|
844
|
-
j(n, o), y(n.id);
|
|
845
|
-
}, [p, j, y]);
|
|
846
|
-
return {
|
|
847
|
-
layers: F,
|
|
848
|
-
flatLayers: v,
|
|
849
|
-
selectedLayers: V,
|
|
850
|
-
selectLayer: k,
|
|
851
|
-
selectMultipleLayers: z,
|
|
852
|
-
clearSelection: U,
|
|
853
|
-
toggleVisibility: _,
|
|
854
|
-
toggleLock: N,
|
|
855
|
-
renameLayer: q,
|
|
856
|
-
deleteLayer: $,
|
|
857
|
-
duplicateLayer: T,
|
|
858
|
-
reorderLayers: Z,
|
|
859
|
-
reorderById: Se,
|
|
860
|
-
reorderWithinGroup: ze,
|
|
861
|
-
moveLayerForward: te,
|
|
862
|
-
moveLayerBackward: W,
|
|
863
|
-
groupLayers: re,
|
|
864
|
-
ungroupLayer: Fe,
|
|
865
|
-
addToGroup: Ve,
|
|
866
|
-
removeFromGroup: $e,
|
|
867
|
-
createEmptyGroup: Te,
|
|
868
|
-
findElementById: He,
|
|
869
|
-
findParentGroup: de,
|
|
870
|
-
generateAllPreviews: ae,
|
|
871
|
-
clearPreviewCache: je,
|
|
872
|
-
artboardId: I,
|
|
873
|
-
artboardManager: p,
|
|
874
|
-
layerCount: v.length
|
|
875
|
-
};
|
|
876
|
-
}
|
|
877
|
-
const ue = Q("useArtboards"), dt = () => {
|
|
878
|
-
const {
|
|
879
|
-
artboards: e,
|
|
880
|
-
artboardManager: t,
|
|
881
|
-
refreshArtboards: r,
|
|
882
|
-
setSelectedId: i,
|
|
883
|
-
setMultiSelection: c
|
|
884
|
-
} = fe(), a = t.getActiveArtboardId(), l = t.getActiveArtboard(), S = Y(() => e.map((u) => {
|
|
885
|
-
const C = t.getElementsOnArtboard(u.id).length;
|
|
886
|
-
return {
|
|
887
|
-
id: u.id,
|
|
888
|
-
name: u.name,
|
|
889
|
-
x: u.x,
|
|
890
|
-
y: u.y,
|
|
891
|
-
width: u.width,
|
|
892
|
-
height: u.height,
|
|
893
|
-
backgroundColor: u.backgroundColor,
|
|
894
|
-
clipShape: u.clipShape,
|
|
895
|
-
isActive: u.id === a,
|
|
896
|
-
elementCount: C
|
|
897
|
-
};
|
|
898
|
-
}), [e, t, a]), h = Y(() => {
|
|
899
|
-
if (!l) return null;
|
|
900
|
-
const g = t.getElementsOnArtboard(l.id).length;
|
|
901
|
-
return {
|
|
902
|
-
id: l.id,
|
|
903
|
-
name: l.name,
|
|
904
|
-
x: l.x,
|
|
905
|
-
y: l.y,
|
|
906
|
-
width: l.width,
|
|
907
|
-
height: l.height,
|
|
908
|
-
backgroundColor: l.backgroundColor,
|
|
909
|
-
clipShape: l.clipShape,
|
|
910
|
-
isActive: !0,
|
|
911
|
-
elementCount: g
|
|
912
|
-
};
|
|
913
|
-
}, [l, t]), p = f((u = 1200, g = 1200, C) => {
|
|
914
|
-
const B = {
|
|
915
|
-
width: u,
|
|
916
|
-
height: g,
|
|
917
|
-
...C
|
|
918
|
-
};
|
|
919
|
-
t.createArtboard(B), r();
|
|
920
|
-
}, [t, r]), y = f((u) => {
|
|
921
|
-
t.deleteArtboard(u), r();
|
|
922
|
-
}, [t, r]), b = f((u) => {
|
|
923
|
-
const g = e.find((C) => C.id === u);
|
|
924
|
-
if (!g) {
|
|
925
|
-
ue.warn(`[useArtboards] Artboard ${u} not found`);
|
|
926
|
-
return;
|
|
927
|
-
}
|
|
928
|
-
t.createArtboard({
|
|
929
|
-
width: g.width,
|
|
930
|
-
height: g.height,
|
|
931
|
-
name: `${g.name} Copy`,
|
|
932
|
-
backgroundColor: g.backgroundColor,
|
|
933
|
-
clipShape: g.clipShape
|
|
934
|
-
}), r();
|
|
935
|
-
}, [e, t, r]), E = f((u, g) => {
|
|
936
|
-
const C = e.find((B) => B.id === u);
|
|
937
|
-
if (!C) {
|
|
938
|
-
ue.warn(`[useArtboards] Artboard ${u} not found`);
|
|
939
|
-
return;
|
|
940
|
-
}
|
|
941
|
-
C.name = g, r();
|
|
942
|
-
}, [e, r]), j = f((u, g) => {
|
|
943
|
-
const C = e.find((B) => B.id === u);
|
|
944
|
-
if (!C) {
|
|
945
|
-
ue.warn(`[useArtboards] Artboard ${u} not found`);
|
|
946
|
-
return;
|
|
947
|
-
}
|
|
948
|
-
g.name !== void 0 && (C.name = g.name), g.width !== void 0 && (C.width = g.width), g.height !== void 0 && (C.height = g.height), g.backgroundColor !== void 0 && (C.backgroundColor = g.backgroundColor), g.clipShape !== void 0 && (C.clipShape = g.clipShape), "distressTexture" in g && (C.distressTexture = g.distressTexture ? { ...g.distressTexture } : void 0), r();
|
|
949
|
-
}, [e, r]), H = f((u) => {
|
|
950
|
-
i(null), c([]), t.setActiveArtboard(u), r();
|
|
951
|
-
}, [t, r, i, c]), R = f((u, g) => {
|
|
952
|
-
u !== g && (u < 0 || u >= e.length || g < 0 || g >= e.length || ([...e], t.reorderArtboards(u, g), r()));
|
|
953
|
-
}, [e, t, r]);
|
|
954
|
-
return {
|
|
955
|
-
artboards: e,
|
|
956
|
-
artboardsInfo: S,
|
|
957
|
-
activeArtboard: l,
|
|
958
|
-
activeArtboardId: a,
|
|
959
|
-
activeArtboardInfo: h,
|
|
960
|
-
createArtboard: p,
|
|
961
|
-
deleteArtboard: y,
|
|
962
|
-
duplicateArtboard: b,
|
|
963
|
-
renameArtboard: E,
|
|
964
|
-
updateArtboard: j,
|
|
965
|
-
selectArtboard: H,
|
|
966
|
-
reorderArtboards: R,
|
|
967
|
-
count: e.length
|
|
968
|
-
};
|
|
969
|
-
}, Ze = Q("useExport");
|
|
970
|
-
function ct() {
|
|
971
|
-
const {
|
|
972
|
-
artboards: e,
|
|
973
|
-
artboardManager: t,
|
|
974
|
-
elements: r,
|
|
975
|
-
canvasRef: i
|
|
976
|
-
} = fe(), [c, a] = K(!1), [l, S] = K(!1), [h, p] = K([]), [y, b] = K({}), [E, j] = K({
|
|
977
|
-
totalExports: 0,
|
|
978
|
-
avgExportTime: 0,
|
|
979
|
-
isWorkerActive: !1
|
|
980
|
-
}), H = le(0), R = le(null), u = se.supportsWorkerExport(), g = f(async (w, F = {}) => {
|
|
981
|
-
const v = e.find((k) => k.id === w);
|
|
982
|
-
if (!v)
|
|
983
|
-
throw new Error(`[useExport] Artboard ${w} not found`);
|
|
984
|
-
if (!i.current)
|
|
985
|
-
throw new Error("[useExport] Canvas ref not available");
|
|
986
|
-
a(!0);
|
|
987
|
-
const V = {
|
|
988
|
-
artboardId: w,
|
|
989
|
-
artboardName: v.name,
|
|
990
|
-
status: "rendering",
|
|
991
|
-
progress: 0,
|
|
992
|
-
timestamp: Date.now()
|
|
993
|
-
};
|
|
994
|
-
p((k) => [...k, V]);
|
|
995
|
-
try {
|
|
996
|
-
const k = Date.now(), z = B.current, U = t.getElementsOnArtboard(w), _ = z.filter(($) => U.includes($.id)), N = await se.exportArtboardToDataURL(
|
|
997
|
-
v,
|
|
998
|
-
_,
|
|
999
|
-
i.current,
|
|
1000
|
-
{
|
|
1001
|
-
format: F.format || "png",
|
|
1002
|
-
scale: F.scale || 3,
|
|
1003
|
-
transparentBackground: F.transparentBackground ?? !0,
|
|
1004
|
-
...F
|
|
1005
|
-
}
|
|
1006
|
-
), q = Date.now() - k;
|
|
1007
|
-
return p(($) => $.map(
|
|
1008
|
-
(T) => T.artboardId === w ? { ...T, status: "complete", progress: 100, dataUrl: N, timestamp: Date.now() } : T
|
|
1009
|
-
)), b(($) => ({ ...$, [w]: N })), j(($) => ({
|
|
1010
|
-
totalExports: $.totalExports + 1,
|
|
1011
|
-
avgExportTime: ($.avgExportTime * $.totalExports + q) / ($.totalExports + 1),
|
|
1012
|
-
isWorkerActive: u
|
|
1013
|
-
})), N;
|
|
1014
|
-
} catch (k) {
|
|
1015
|
-
throw p((z) => z.map(
|
|
1016
|
-
(U) => U.artboardId === w ? { ...U, status: "error", error: k, timestamp: Date.now() } : U
|
|
1017
|
-
)), k;
|
|
1018
|
-
} finally {
|
|
1019
|
-
a(!1);
|
|
1020
|
-
}
|
|
1021
|
-
}, [e, t, r, i, u]), C = f(async (w = {}) => {
|
|
1022
|
-
a(!0);
|
|
1023
|
-
try {
|
|
1024
|
-
const F = e.map(async (k) => {
|
|
1025
|
-
const z = await g(k.id, w);
|
|
1026
|
-
return { id: k.id, dataUrl: z };
|
|
1027
|
-
}), v = await Promise.all(F), V = {};
|
|
1028
|
-
for (const { id: k, dataUrl: z } of v)
|
|
1029
|
-
V[k] = z;
|
|
1030
|
-
return V;
|
|
1031
|
-
} finally {
|
|
1032
|
-
a(!1);
|
|
1033
|
-
}
|
|
1034
|
-
}, [e, g]), B = le(r);
|
|
1035
|
-
B.current = r;
|
|
1036
|
-
const I = f(async (w, F = {}) => {
|
|
1037
|
-
const v = e.find((V) => V.id === w);
|
|
1038
|
-
if (!v)
|
|
1039
|
-
throw new Error(`[useExport] Artboard ${w} not found`);
|
|
1040
|
-
if (!i.current)
|
|
1041
|
-
throw new Error("[useExport] Canvas ref not available");
|
|
1042
|
-
a(!0);
|
|
1043
|
-
try {
|
|
1044
|
-
const V = B.current, k = t.getElementsOnArtboard(w), z = V.filter((_) => k.includes(_.id));
|
|
1045
|
-
return await se.exportArtboardToBlob(
|
|
1046
|
-
v,
|
|
1047
|
-
z,
|
|
1048
|
-
i.current,
|
|
1049
|
-
{
|
|
1050
|
-
format: F.format || "png",
|
|
1051
|
-
scale: F.scale || 3,
|
|
1052
|
-
transparentBackground: F.transparentBackground ?? !0,
|
|
1053
|
-
...F
|
|
1054
|
-
}
|
|
1055
|
-
);
|
|
1056
|
-
} finally {
|
|
1057
|
-
a(!1);
|
|
1058
|
-
}
|
|
1059
|
-
}, [e, t, r, i]), ee = f(async (w = {}) => {
|
|
1060
|
-
a(!0);
|
|
1061
|
-
try {
|
|
1062
|
-
const F = e.map(async (k) => {
|
|
1063
|
-
const z = await I(k.id, w);
|
|
1064
|
-
return { id: k.id, blob: z };
|
|
1065
|
-
}), v = await Promise.all(F), V = {};
|
|
1066
|
-
for (const { id: k, blob: z } of v)
|
|
1067
|
-
V[k] = z;
|
|
1068
|
-
return V;
|
|
1069
|
-
} finally {
|
|
1070
|
-
a(!1);
|
|
1071
|
-
}
|
|
1072
|
-
}, [e, I]), O = f(() => {
|
|
1073
|
-
H.current++, S(!1), R.current = null;
|
|
1074
|
-
}, []), ie = f((w) => {
|
|
1075
|
-
H.current++;
|
|
1076
|
-
const F = H.current;
|
|
1077
|
-
R.current = w, S(!0);
|
|
1078
|
-
const {
|
|
1079
|
-
artboardIds: v,
|
|
1080
|
-
interval: V = 500,
|
|
1081
|
-
scale: k = 3,
|
|
1082
|
-
format: z = "png",
|
|
1083
|
-
onChange: U
|
|
1084
|
-
} = w, _ = v ? e.filter((T) => v.includes(T.id)) : e, N = () => H.current === F, q = async () => {
|
|
1085
|
-
try {
|
|
1086
|
-
const T = _.map(async (W) => {
|
|
1087
|
-
const re = await g(W.id, {
|
|
1088
|
-
scale: k,
|
|
1089
|
-
format: z,
|
|
1090
|
-
transparentBackground: !0
|
|
1091
|
-
});
|
|
1092
|
-
return { id: W.id, dataUrl: re };
|
|
1093
|
-
}), Z = await Promise.all(T), te = {};
|
|
1094
|
-
for (const { id: W, dataUrl: re } of Z)
|
|
1095
|
-
te[W] = re;
|
|
1096
|
-
b((W) => ({ ...W, ...te })), U && U(te);
|
|
1097
|
-
} catch (T) {
|
|
1098
|
-
Ze.error("[useExport] Continuous export error:", T);
|
|
1099
|
-
}
|
|
1100
|
-
};
|
|
1101
|
-
(async () => {
|
|
1102
|
-
for (await q(); N() && (await new Promise((T) => setTimeout(T, V)), !!N()); )
|
|
1103
|
-
await q();
|
|
1104
|
-
})();
|
|
1105
|
-
}, [e, g]);
|
|
1106
|
-
return be(() => () => {
|
|
1107
|
-
O();
|
|
1108
|
-
}, [O]), {
|
|
1109
|
-
exportArtboard: g,
|
|
1110
|
-
exportArtboardAsBlob: I,
|
|
1111
|
-
exportAllArtboards: C,
|
|
1112
|
-
exportAllArtboardsAsBlobs: ee,
|
|
1113
|
-
startContinuousExport: ie,
|
|
1114
|
-
stopContinuousExport: O,
|
|
1115
|
-
isExporting: c,
|
|
1116
|
-
isContinuousExporting: l,
|
|
1117
|
-
progress: h,
|
|
1118
|
-
latestExports: y,
|
|
1119
|
-
supportsWorkerExport: u,
|
|
1120
|
-
workerStats: E
|
|
1121
|
-
};
|
|
1122
|
-
}
|
|
1123
|
-
async function xe(e, t) {
|
|
1124
|
-
try {
|
|
1125
|
-
const r = await e.json();
|
|
1126
|
-
if (r && typeof r == "object") {
|
|
1127
|
-
const i = r;
|
|
1128
|
-
if (typeof i.error == "string" && i.error) return i.error;
|
|
1129
|
-
if (typeof i.message == "string" && i.message) return i.message;
|
|
1130
|
-
}
|
|
1131
|
-
} catch {
|
|
1132
|
-
}
|
|
1133
|
-
return t;
|
|
1134
|
-
}
|
|
1135
|
-
function Je(e) {
|
|
1136
|
-
return {
|
|
1137
|
-
async search({ query: t, page: r, perPage: i = 30 }) {
|
|
1138
|
-
const c = new URLSearchParams({
|
|
1139
|
-
query: t,
|
|
1140
|
-
page: String(r),
|
|
1141
|
-
perPage: String(i)
|
|
1142
|
-
}), a = e.includes("?") ? "&" : "?", l = await fetch(`${e}${a}${c.toString()}`, {
|
|
1143
|
-
method: "GET",
|
|
1144
|
-
credentials: "same-origin"
|
|
1145
|
-
});
|
|
1146
|
-
if (!l.ok)
|
|
1147
|
-
throw new Error(await xe(l, `Image search failed (${l.status})`));
|
|
1148
|
-
return await l.json();
|
|
1149
|
-
},
|
|
1150
|
-
trackSelect(t) {
|
|
1151
|
-
fetch(e, {
|
|
1152
|
-
method: "POST",
|
|
1153
|
-
credentials: "same-origin",
|
|
1154
|
-
headers: { "Content-Type": "application/json" },
|
|
1155
|
-
body: JSON.stringify({
|
|
1156
|
-
action: "track-select",
|
|
1157
|
-
id: t.id,
|
|
1158
|
-
source: t.source,
|
|
1159
|
-
...t.downloadLocation ? { downloadLocation: t.downloadLocation } : {}
|
|
1160
|
-
})
|
|
1161
|
-
}).catch(() => {
|
|
1162
|
-
});
|
|
1163
|
-
}
|
|
1164
|
-
};
|
|
1165
|
-
}
|
|
1166
|
-
function Ye(e) {
|
|
1167
|
-
return {
|
|
1168
|
-
async generate({ prompt: t, width: r, height: i, numberResults: c }) {
|
|
1169
|
-
const a = await fetch(e, {
|
|
1170
|
-
method: "POST",
|
|
1171
|
-
credentials: "same-origin",
|
|
1172
|
-
headers: { "Content-Type": "application/json" },
|
|
1173
|
-
body: JSON.stringify({ prompt: t, width: r, height: i, numberResults: c })
|
|
1174
|
-
});
|
|
1175
|
-
if (!a.ok)
|
|
1176
|
-
throw new Error(await xe(a, `Image generation failed (${a.status})`));
|
|
1177
|
-
const l = await a.json();
|
|
1178
|
-
return { images: l.images ?? (l.imageUrl ? [{ imageUrl: l.imageUrl }] : []) };
|
|
1179
|
-
}
|
|
1180
|
-
};
|
|
1181
|
-
}
|
|
1182
|
-
function qe(e) {
|
|
1183
|
-
const t = "/api/image-proxy?url=";
|
|
1184
|
-
if (!e || !e.startsWith(t)) return e;
|
|
1185
|
-
try {
|
|
1186
|
-
return decodeURIComponent(e.slice(t.length));
|
|
1187
|
-
} catch {
|
|
1188
|
-
return e;
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
function Ke(e) {
|
|
1192
|
-
return async function(r) {
|
|
1193
|
-
const i = qe(r);
|
|
1194
|
-
if (!/^https?:\/\//.test(i))
|
|
1195
|
-
throw new Error("Background removal isn't available for this image yet");
|
|
1196
|
-
const c = await fetch(e, {
|
|
1197
|
-
method: "POST",
|
|
1198
|
-
credentials: "same-origin",
|
|
1199
|
-
headers: { "Content-Type": "application/json" },
|
|
1200
|
-
body: JSON.stringify({ imageUrl: i })
|
|
1201
|
-
}), a = await c.json().catch(() => null);
|
|
1202
|
-
if (!c.ok || !(a != null && a.imageUrl))
|
|
1203
|
-
throw new Error((a == null ? void 0 : a.error) || (a == null ? void 0 : a.message) || `Background removal failed (${c.status})`);
|
|
1204
|
-
return a.imageUrl;
|
|
1205
|
-
};
|
|
1206
|
-
}
|
|
1207
|
-
const Le = {}, Ee = Ge(Le);
|
|
1208
|
-
function st({ services: e, children: t }) {
|
|
1209
|
-
const r = Y(() => e ? {
|
|
1210
|
-
imageSearch: e.imageSearch ?? (e.imageSearchUrl ? Je(e.imageSearchUrl) : void 0),
|
|
1211
|
-
generate: e.generate ?? (e.generateUrl ? Ye(e.generateUrl) : void 0),
|
|
1212
|
-
vectors: e.vectors,
|
|
1213
|
-
removeBackground: e.removeBackground ?? (e.bgRemoveUrl ? Ke(e.bgRemoveUrl) : void 0)
|
|
1214
|
-
} : Le, [
|
|
1215
|
-
e == null ? void 0 : e.imageSearch,
|
|
1216
|
-
e == null ? void 0 : e.imageSearchUrl,
|
|
1217
|
-
e == null ? void 0 : e.generate,
|
|
1218
|
-
e == null ? void 0 : e.generateUrl,
|
|
1219
|
-
e == null ? void 0 : e.vectors,
|
|
1220
|
-
e == null ? void 0 : e.bgRemoveUrl,
|
|
1221
|
-
e == null ? void 0 : e.removeBackground
|
|
1222
|
-
]);
|
|
1223
|
-
return /* @__PURE__ */ Be(Ee.Provider, { value: r, children: t });
|
|
1224
|
-
}
|
|
1225
|
-
function ht() {
|
|
1226
|
-
return Pe(Ee);
|
|
1227
|
-
}
|
|
1228
|
-
const ye = Q("GoogleFontsService");
|
|
1229
|
-
let X = [], ne = null;
|
|
1230
|
-
async function Xe() {
|
|
1231
|
-
return X.length > 0 ? X : ne || (ne = fetch("/google-fonts.json").then((e) => {
|
|
1232
|
-
if (!e.ok)
|
|
1233
|
-
throw new Error(`HTTP error! status: ${e.status}`);
|
|
1234
|
-
return e.json();
|
|
1235
|
-
}).then((e) => (Array.isArray(e) ? X = e.map((t) => ({
|
|
1236
|
-
family: t.family,
|
|
1237
|
-
category: t.category || "sans-serif",
|
|
1238
|
-
subsets: t.subsets || [],
|
|
1239
|
-
variants: t.variants || [],
|
|
1240
|
-
popularity: t.popularity
|
|
1241
|
-
})) : ye.error("Unexpected API response structure:", e), X)).catch((e) => (ye.error("Error fetching Google Fonts:", e), ne = null, [])), ne);
|
|
1242
|
-
}
|
|
1243
|
-
function ge() {
|
|
1244
|
-
return X;
|
|
1245
|
-
}
|
|
1246
|
-
function Qe() {
|
|
1247
|
-
return X.length > 0;
|
|
1248
|
-
}
|
|
1249
|
-
function ke(e) {
|
|
1250
|
-
return {
|
|
1251
|
-
"sans serif": "sans-serif",
|
|
1252
|
-
serif: "serif",
|
|
1253
|
-
display: "display",
|
|
1254
|
-
handwriting: "script",
|
|
1255
|
-
monospace: "monospace"
|
|
1256
|
-
}[e.toLowerCase()] || "display";
|
|
1257
|
-
}
|
|
1258
|
-
const ve = Q("UnifiedFontService");
|
|
1259
|
-
class et {
|
|
1260
|
-
constructor() {
|
|
1261
|
-
this.searchCache = /* @__PURE__ */ new Map(), this.previewFontLinks = /* @__PURE__ */ new Set();
|
|
1262
|
-
}
|
|
1263
|
-
// ========================================
|
|
1264
|
-
// Initialization
|
|
1265
|
-
// ========================================
|
|
1266
|
-
/**
|
|
1267
|
-
* Initialize Google Fonts
|
|
1268
|
-
*/
|
|
1269
|
-
async initialize() {
|
|
1270
|
-
try {
|
|
1271
|
-
await Xe();
|
|
1272
|
-
} catch (t) {
|
|
1273
|
-
ve.error("Failed to initialize UnifiedFontService:", t);
|
|
1274
|
-
}
|
|
1275
|
-
}
|
|
1276
|
-
/**
|
|
1277
|
-
* Check if fonts are loaded
|
|
1278
|
-
*/
|
|
1279
|
-
isFontsLoaded() {
|
|
1280
|
-
return Qe();
|
|
1281
|
-
}
|
|
1282
|
-
// ========================================
|
|
1283
|
-
// Font Retrieval
|
|
1284
|
-
// ========================================
|
|
1285
|
-
/**
|
|
1286
|
-
* Get all fonts.
|
|
1287
|
-
* Returns system fonts + Google Fonts (deduplicated)
|
|
1288
|
-
*/
|
|
1289
|
-
getAllFonts() {
|
|
1290
|
-
const t = ce.filter((i) => !i.googleFont), r = this.mapGoogleFonts(ge());
|
|
1291
|
-
return this.mergeFonts([...t, ...r]);
|
|
1292
|
-
}
|
|
1293
|
-
/**
|
|
1294
|
-
* Get recommended fonts (TSHIRT_FONTS curated list)
|
|
1295
|
-
*/
|
|
1296
|
-
getRecommendedFonts() {
|
|
1297
|
-
return ce;
|
|
1298
|
-
}
|
|
1299
|
-
// ========================================
|
|
1300
|
-
// Dual Search Strategy
|
|
1301
|
-
// ========================================
|
|
1302
|
-
/**
|
|
1303
|
-
* Search fonts by name (text search)
|
|
1304
|
-
*/
|
|
1305
|
-
async searchFontsByName(t) {
|
|
1306
|
-
if (!t.trim())
|
|
1307
|
-
return this.getAllFonts();
|
|
1308
|
-
const r = `search:${t.toLowerCase()}`;
|
|
1309
|
-
if (this.searchCache.has(r))
|
|
1310
|
-
return this.searchCache.get(r);
|
|
1311
|
-
const i = t.toLowerCase().trim(), c = ge().filter((l) => l.family.toLowerCase().includes(i)).map((l) => this.mapGoogleFont(l)), a = this.mergeFonts(c);
|
|
1312
|
-
return this.searchCache.set(r, a), a;
|
|
1313
|
-
}
|
|
1314
|
-
/**
|
|
1315
|
-
* Filter fonts by category
|
|
1316
|
-
*/
|
|
1317
|
-
async filterFontsByCategory(t) {
|
|
1318
|
-
if (t === "system")
|
|
1319
|
-
return ce.filter((a) => !a.googleFont);
|
|
1320
|
-
const r = `category:${t}`;
|
|
1321
|
-
if (this.searchCache.has(r))
|
|
1322
|
-
return this.searchCache.get(r);
|
|
1323
|
-
const i = ge().filter((a) => ke(a.category) === t).map((a) => this.mapGoogleFont(a)), c = this.mergeFonts(i);
|
|
1324
|
-
return this.searchCache.set(r, c), c;
|
|
1325
|
-
}
|
|
1326
|
-
/**
|
|
1327
|
-
* Combined search: text search + category filter
|
|
1328
|
-
* Option A: Search overrides category (simpler UX)
|
|
1329
|
-
*/
|
|
1330
|
-
async searchAndFilterFonts(t, r) {
|
|
1331
|
-
return t.trim() ? this.searchFontsByName(t) : r !== "all" ? this.filterFontsByCategory(r) : this.getAllFonts();
|
|
1332
|
-
}
|
|
1333
|
-
// ========================================
|
|
1334
|
-
// Font Loading
|
|
1335
|
-
// ========================================
|
|
1336
|
-
/**
|
|
1337
|
-
* Load a font. All exposed fonts are Google fonts; the picker no
|
|
1338
|
-
* longer offers true "system" fonts that aren't on Google Fonts
|
|
1339
|
-
* because Android lacks them and we'd render inconsistently across
|
|
1340
|
-
* platforms.
|
|
1341
|
-
*/
|
|
1342
|
-
async loadFont(t) {
|
|
1343
|
-
try {
|
|
1344
|
-
t.googleFont && this.loadGoogleFont(t.name);
|
|
1345
|
-
} catch (r) {
|
|
1346
|
-
ve.error(`Failed to load font ${t.name}:`, r);
|
|
1347
|
-
}
|
|
1348
|
-
}
|
|
1349
|
-
/**
|
|
1350
|
-
* Load a Google Font by family name alone (full font, link injection).
|
|
1351
|
-
* For callers that only have a family string — e.g. `useFontBinding`
|
|
1352
|
-
* applying a template's designer-curated font option — not a full
|
|
1353
|
-
* {@link FontDefinition}. Idempotent per family.
|
|
1354
|
-
*/
|
|
1355
|
-
loadGoogleFontByName(t) {
|
|
1356
|
-
this.loadGoogleFont(t);
|
|
1357
|
-
}
|
|
1358
|
-
/**
|
|
1359
|
-
* Load Google Font via CSS link injection (full font)
|
|
1360
|
-
*/
|
|
1361
|
-
loadGoogleFont(t) {
|
|
1362
|
-
const r = `font-${t.replace(/\s+/g, "-").toLowerCase()}`;
|
|
1363
|
-
if (document.getElementById(r)) return;
|
|
1364
|
-
const i = document.createElement("link");
|
|
1365
|
-
i.id = r, i.rel = "stylesheet", i.href = `https://fonts.googleapis.com/css2?family=${t.replace(/\s+/g, "+")}:wght@400;700&display=swap`, document.head.appendChild(i);
|
|
1366
|
-
}
|
|
1367
|
-
/**
|
|
1368
|
-
* Load Google Font with only specific characters (for previews)
|
|
1369
|
-
* Uses the text= parameter to load minimal glyphs (~99.9% smaller than full font)
|
|
1370
|
-
* See: https://developers.google.com/fonts/docs/getting_started#optimizing_your_font_requests
|
|
1371
|
-
*
|
|
1372
|
-
* @param fontName - Font family name
|
|
1373
|
-
* @param text - Text to render (only these characters will be loaded)
|
|
1374
|
-
*/
|
|
1375
|
-
loadGoogleFontForPreview(t, r) {
|
|
1376
|
-
const i = encodeURIComponent(r), c = `font-preview-${t.replace(/\s+/g, "-").toLowerCase()}`;
|
|
1377
|
-
if (document.getElementById(c)) return;
|
|
1378
|
-
const a = document.createElement("link");
|
|
1379
|
-
a.id = c, a.rel = "stylesheet", a.href = `https://fonts.googleapis.com/css2?family=${t.replace(/\s+/g, "+")}&display=swap&text=${i}`, document.head.appendChild(a), this.previewFontLinks.add(c);
|
|
1380
|
-
}
|
|
1381
|
-
/**
|
|
1382
|
-
* Clear all preview font links from DOM
|
|
1383
|
-
* Call this when closing the font browser to free memory
|
|
1384
|
-
*/
|
|
1385
|
-
clearPreviewFonts() {
|
|
1386
|
-
this.previewFontLinks.forEach((t) => {
|
|
1387
|
-
const r = document.getElementById(t);
|
|
1388
|
-
r && r.remove();
|
|
1389
|
-
}), this.previewFontLinks.clear();
|
|
1390
|
-
}
|
|
1391
|
-
/**
|
|
1392
|
-
* Get count of loaded preview fonts
|
|
1393
|
-
*/
|
|
1394
|
-
getPreviewFontCount() {
|
|
1395
|
-
return this.previewFontLinks.size;
|
|
1396
|
-
}
|
|
1397
|
-
// ========================================
|
|
1398
|
-
// Font Mapping & Merging
|
|
1399
|
-
// ========================================
|
|
1400
|
-
/**
|
|
1401
|
-
* Map Google Font metadata to FontDefinition
|
|
1402
|
-
*/
|
|
1403
|
-
mapGoogleFont(t) {
|
|
1404
|
-
var r;
|
|
1405
|
-
return {
|
|
1406
|
-
name: t.family,
|
|
1407
|
-
category: ke(t.category),
|
|
1408
|
-
googleFont: !0,
|
|
1409
|
-
source: "google",
|
|
1410
|
-
weights: ((r = t.variants) == null ? void 0 : r.map((i) => {
|
|
1411
|
-
const c = i.match(/\d+/);
|
|
1412
|
-
return c ? parseInt(c[0], 10) : i === "regular" ? 400 : null;
|
|
1413
|
-
}).filter((i) => i !== null)) || [400]
|
|
1414
|
-
};
|
|
1415
|
-
}
|
|
1416
|
-
/**
|
|
1417
|
-
* Map Google Fonts array to FontDefinitions
|
|
1418
|
-
*/
|
|
1419
|
-
mapGoogleFonts(t) {
|
|
1420
|
-
return t.map((r) => this.mapGoogleFont(r));
|
|
1421
|
-
}
|
|
1422
|
-
/**
|
|
1423
|
-
* Merge fonts from multiple sources and deduplicate by family name
|
|
1424
|
-
*/
|
|
1425
|
-
mergeFonts(t) {
|
|
1426
|
-
const r = /* @__PURE__ */ new Map();
|
|
1427
|
-
return t.forEach((i) => {
|
|
1428
|
-
const c = i.name.toLowerCase().trim();
|
|
1429
|
-
r.has(c) || r.set(c, i);
|
|
1430
|
-
}), Array.from(r.values()).sort((i, c) => i.name.localeCompare(c.name));
|
|
1431
|
-
}
|
|
1432
|
-
// ========================================
|
|
1433
|
-
// Cache Management
|
|
1434
|
-
// ========================================
|
|
1435
|
-
/**
|
|
1436
|
-
* Clear search cache
|
|
1437
|
-
*/
|
|
1438
|
-
clearSearchCache() {
|
|
1439
|
-
this.searchCache.clear();
|
|
1440
|
-
}
|
|
1441
|
-
/**
|
|
1442
|
-
* Clear all caches
|
|
1443
|
-
*/
|
|
1444
|
-
clearAllCaches() {
|
|
1445
|
-
this.clearSearchCache();
|
|
1446
|
-
}
|
|
1447
|
-
// ========================================
|
|
1448
|
-
// Stats & Debugging
|
|
1449
|
-
// ========================================
|
|
1450
|
-
/**
|
|
1451
|
-
* Get service stats for debugging
|
|
1452
|
-
*/
|
|
1453
|
-
getStats() {
|
|
1454
|
-
const t = this.getAllFonts(), r = t.filter((c) => c.googleFont), i = t.filter((c) => !c.googleFont);
|
|
1455
|
-
return {
|
|
1456
|
-
initialized: this.isFontsLoaded(),
|
|
1457
|
-
totalFonts: t.length,
|
|
1458
|
-
googleFontsCount: r.length,
|
|
1459
|
-
systemFontsCount: i.length,
|
|
1460
|
-
searchCacheSize: this.searchCache.size
|
|
1461
|
-
};
|
|
1462
|
-
}
|
|
1463
|
-
}
|
|
1464
|
-
const ut = new et();
|
|
1465
|
-
export {
|
|
1466
|
-
st as C,
|
|
1467
|
-
ut as U,
|
|
1468
|
-
Ye as a,
|
|
1469
|
-
Je as b,
|
|
1470
|
-
Ke as c,
|
|
1471
|
-
ht as d,
|
|
1472
|
-
lt as e,
|
|
1473
|
-
ct as f,
|
|
1474
|
-
at as g,
|
|
1475
|
-
Ne as h,
|
|
1476
|
-
dt as u
|
|
1477
|
-
};
|
|
1478
|
-
//# sourceMappingURL=UnifiedFontService-Dsu5cwfT.js.map
|