@snowcone-app/canvas 0.16.0 → 0.17.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/{CanvasStateV1-BQD8fCBU.js → CanvasStateV1-C6i6vU6p.js} +63 -63
- package/dist/{CanvasStateV1-BQD8fCBU.js.map → CanvasStateV1-C6i6vU6p.js.map} +1 -1
- package/dist/EditorCanvasImpl-C8SsT3C2.js +68 -0
- package/dist/EditorCanvasImpl-C8SsT3C2.js.map +1 -0
- package/dist/EditorContext-CyanYzo2.js +1131 -0
- package/dist/EditorContext-CyanYzo2.js.map +1 -0
- package/dist/{ImportManager-eotl7r5d.js → ElementFactory-C05JJkRp.js} +1510 -5121
- package/dist/ElementFactory-C05JJkRp.js.map +1 -0
- package/dist/{HybridHistoryManager-NL3zyEl4.js → HybridHistoryManager-Bht98XRv.js} +98 -98
- package/dist/{HybridHistoryManager-NL3zyEl4.js.map → HybridHistoryManager-Bht98XRv.js.map} +1 -1
- package/dist/ImportManager-kRYfIX-D.js +3617 -0
- package/dist/ImportManager-kRYfIX-D.js.map +1 -0
- package/dist/SnowconeCanvas-C3eZ9PP8.js +1047 -0
- package/dist/SnowconeCanvas-C3eZ9PP8.js.map +1 -0
- package/dist/ThemeContext-Rjz25x9X.js +75 -0
- package/dist/ThemeContext-Rjz25x9X.js.map +1 -0
- package/dist/UnifiedFontService-BAtqqkU4.js +1478 -0
- package/dist/UnifiedFontService-BAtqqkU4.js.map +1 -0
- package/dist/advanced.mjs +210 -207
- package/dist/advanced.mjs.map +1 -1
- package/dist/api/embed.d.ts +8 -4
- package/dist/api/testing.d.ts +1 -0
- package/dist/components/editor/EditorBuy.d.ts +49 -0
- package/dist/components/editor/EditorCanvas.d.ts +30 -0
- package/dist/components/editor/EditorCanvasImpl.d.ts +33 -0
- package/dist/components/editor/EditorPreview.d.ts +39 -0
- package/dist/components/editor/EditorRoot.d.ts +86 -0
- package/dist/components/editor/EditorTextField.d.ts +22 -0
- package/dist/components/editor/RootInternals.d.ts +77 -0
- package/dist/components/editor/designStateStore.d.ts +45 -0
- package/dist/components/editor/index.d.ts +23 -0
- package/dist/components/embed-realtime/RealtimeCanvas.d.ts +1 -1
- package/dist/components/embed-realtime/RealtimeEmbed.d.ts +5 -78
- package/dist/components/embed-realtime/RealtimeMockup.d.ts +5 -34
- package/dist/components/embed-realtime/context.d.ts +12 -2
- package/dist/components/embed-realtime/validateEmbed.d.ts +17 -3
- package/dist/design/design-builder.d.ts +81 -6
- package/dist/editorError-DMENTZ-3.js +19 -0
- package/dist/editorError-DMENTZ-3.js.map +1 -0
- package/dist/editorErrors-DbIEtCTt.js +29 -0
- package/dist/editorErrors-DbIEtCTt.js.map +1 -0
- package/dist/embed-B5kewSQY.js +738 -0
- package/dist/embed-B5kewSQY.js.map +1 -0
- package/dist/embed.mjs +38 -230
- package/dist/embed.mjs.map +1 -1
- package/dist/errors/editorError.d.ts +57 -0
- package/dist/iconify-D6eVIEy4.js +1089 -0
- package/dist/iconify-D6eVIEy4.js.map +1 -0
- package/dist/index.mjs +48 -46
- package/dist/index.mjs.map +1 -1
- package/dist/internals.mjs +105 -104
- package/dist/internals.mjs.map +1 -1
- package/dist/template-fields-GOM4MNfq.js +643 -0
- package/dist/template-fields-GOM4MNfq.js.map +1 -0
- package/dist/testing/editorErrors.d.ts +30 -0
- package/dist/testing.mjs +28 -23
- package/dist/testing.mjs.map +1 -1
- package/dist/{usePieceGuideBundle-Cyl695jv.js → usePieceGuideBundle-CGERAQJl.js} +2 -2
- package/dist/{usePieceGuideBundle-Cyl695jv.js.map → usePieceGuideBundle-CGERAQJl.js.map} +1 -1
- package/dist/validation-DEd6EOCP.js +19947 -0
- package/dist/validation-DEd6EOCP.js.map +1 -0
- package/dist/workers/export-worker.bundle.string.d.ts +1 -1
- package/package.json +12 -4
- package/dist/ImportManager-eotl7r5d.js.map +0 -1
- package/dist/ThemeContext-D9AaUw9v.js +0 -1200
- package/dist/ThemeContext-D9AaUw9v.js.map +0 -1
- package/dist/template-fields-PcSPApl5.js +0 -1632
- package/dist/template-fields-PcSPApl5.js.map +0 -1
- package/dist/validation-BpEod0Rn.js +0 -22953
- package/dist/validation-BpEod0Rn.js.map +0 -1
|
@@ -0,0 +1,1478 @@
|
|
|
1
|
+
import { jsx as Pe } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as Y, useContext as Ge, createContext as Be, useRef as le, useState as K, useCallback as f, useEffect as be } from "react";
|
|
3
|
+
import { u as fe } from "./EditorContext-CyanYzo2.js";
|
|
4
|
+
import { G, c as Q, C as ce } from "./HybridHistoryManager-Bht98XRv.js";
|
|
5
|
+
import { E as se } from "./ElementFactory-C05JJkRp.js";
|
|
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
|
+
async function Ae(e, t) {
|
|
486
|
+
try {
|
|
487
|
+
const r = await e.json();
|
|
488
|
+
if (r && typeof r == "object") {
|
|
489
|
+
const i = r;
|
|
490
|
+
if (typeof i.error == "string" && i.error) return i.error;
|
|
491
|
+
if (typeof i.message == "string" && i.message) return i.message;
|
|
492
|
+
}
|
|
493
|
+
} catch {
|
|
494
|
+
}
|
|
495
|
+
return t;
|
|
496
|
+
}
|
|
497
|
+
function Re(e) {
|
|
498
|
+
return {
|
|
499
|
+
async search({ query: t, page: r, perPage: i = 30 }) {
|
|
500
|
+
const c = new URLSearchParams({
|
|
501
|
+
query: t,
|
|
502
|
+
page: String(r),
|
|
503
|
+
perPage: String(i)
|
|
504
|
+
}), a = e.includes("?") ? "&" : "?", l = await fetch(`${e}${a}${c.toString()}`, {
|
|
505
|
+
method: "GET",
|
|
506
|
+
credentials: "same-origin"
|
|
507
|
+
});
|
|
508
|
+
if (!l.ok)
|
|
509
|
+
throw new Error(await Ae(l, `Image search failed (${l.status})`));
|
|
510
|
+
return await l.json();
|
|
511
|
+
},
|
|
512
|
+
trackSelect(t) {
|
|
513
|
+
fetch(e, {
|
|
514
|
+
method: "POST",
|
|
515
|
+
credentials: "same-origin",
|
|
516
|
+
headers: { "Content-Type": "application/json" },
|
|
517
|
+
body: JSON.stringify({
|
|
518
|
+
action: "track-select",
|
|
519
|
+
id: t.id,
|
|
520
|
+
source: t.source,
|
|
521
|
+
...t.downloadLocation ? { downloadLocation: t.downloadLocation } : {}
|
|
522
|
+
})
|
|
523
|
+
}).catch(() => {
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
function Oe(e) {
|
|
529
|
+
return {
|
|
530
|
+
async generate({ prompt: t, width: r, height: i, numberResults: c }) {
|
|
531
|
+
const a = await fetch(e, {
|
|
532
|
+
method: "POST",
|
|
533
|
+
credentials: "same-origin",
|
|
534
|
+
headers: { "Content-Type": "application/json" },
|
|
535
|
+
body: JSON.stringify({ prompt: t, width: r, height: i, numberResults: c })
|
|
536
|
+
});
|
|
537
|
+
if (!a.ok)
|
|
538
|
+
throw new Error(await Ae(a, `Image generation failed (${a.status})`));
|
|
539
|
+
const l = await a.json();
|
|
540
|
+
return { images: l.images ?? (l.imageUrl ? [{ imageUrl: l.imageUrl }] : []) };
|
|
541
|
+
}
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
function Ne(e) {
|
|
545
|
+
const t = "/api/image-proxy?url=";
|
|
546
|
+
if (!e || !e.startsWith(t)) return e;
|
|
547
|
+
try {
|
|
548
|
+
return decodeURIComponent(e.slice(t.length));
|
|
549
|
+
} catch {
|
|
550
|
+
return e;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
function We(e) {
|
|
554
|
+
return async function(r) {
|
|
555
|
+
const i = Ne(r);
|
|
556
|
+
if (!/^https?:\/\//.test(i))
|
|
557
|
+
throw new Error("Background removal isn't available for this image yet");
|
|
558
|
+
const c = await fetch(e, {
|
|
559
|
+
method: "POST",
|
|
560
|
+
credentials: "same-origin",
|
|
561
|
+
headers: { "Content-Type": "application/json" },
|
|
562
|
+
body: JSON.stringify({ imageUrl: i })
|
|
563
|
+
}), a = await c.json().catch(() => null);
|
|
564
|
+
if (!c.ok || !(a != null && a.imageUrl))
|
|
565
|
+
throw new Error((a == null ? void 0 : a.error) || (a == null ? void 0 : a.message) || `Background removal failed (${c.status})`);
|
|
566
|
+
return a.imageUrl;
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
const Me = {}, xe = Be(Me);
|
|
570
|
+
function at({ services: e, children: t }) {
|
|
571
|
+
const r = Y(() => e ? {
|
|
572
|
+
imageSearch: e.imageSearch ?? (e.imageSearchUrl ? Re(e.imageSearchUrl) : void 0),
|
|
573
|
+
generate: e.generate ?? (e.generateUrl ? Oe(e.generateUrl) : void 0),
|
|
574
|
+
vectors: e.vectors,
|
|
575
|
+
removeBackground: e.removeBackground ?? (e.bgRemoveUrl ? We(e.bgRemoveUrl) : void 0)
|
|
576
|
+
} : Me, [
|
|
577
|
+
e == null ? void 0 : e.imageSearch,
|
|
578
|
+
e == null ? void 0 : e.imageSearchUrl,
|
|
579
|
+
e == null ? void 0 : e.generate,
|
|
580
|
+
e == null ? void 0 : e.generateUrl,
|
|
581
|
+
e == null ? void 0 : e.vectors,
|
|
582
|
+
e == null ? void 0 : e.bgRemoveUrl,
|
|
583
|
+
e == null ? void 0 : e.removeBackground
|
|
584
|
+
]);
|
|
585
|
+
return /* @__PURE__ */ Pe(xe.Provider, { value: r, children: t });
|
|
586
|
+
}
|
|
587
|
+
function dt() {
|
|
588
|
+
return Ge(xe);
|
|
589
|
+
}
|
|
590
|
+
const De = Q("ElementPreviewRenderer"), _e = {
|
|
591
|
+
width: 40,
|
|
592
|
+
height: 40,
|
|
593
|
+
padding: 4,
|
|
594
|
+
backgroundColor: "transparent"
|
|
595
|
+
};
|
|
596
|
+
function Ze(e, t = {}) {
|
|
597
|
+
const r = { ..._e, ...t }, i = document.createElement("canvas");
|
|
598
|
+
i.width = r.width, i.height = r.height;
|
|
599
|
+
const c = i.getContext("2d");
|
|
600
|
+
if (!c)
|
|
601
|
+
return "";
|
|
602
|
+
r.backgroundColor !== "transparent" && (c.fillStyle = r.backgroundColor, c.fillRect(0, 0, r.width, r.height)), c.save();
|
|
603
|
+
try {
|
|
604
|
+
e instanceof G ? Ye(c, e, r) : Je(c, e, r);
|
|
605
|
+
} catch (a) {
|
|
606
|
+
De.warn("Failed to generate preview:", a);
|
|
607
|
+
}
|
|
608
|
+
return c.restore(), i.toDataURL("image/png");
|
|
609
|
+
}
|
|
610
|
+
function Je(e, t, r) {
|
|
611
|
+
var j;
|
|
612
|
+
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;
|
|
613
|
+
if (c === 0 || a === 0) {
|
|
614
|
+
me(e, t, r);
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
const l = r.width - r.padding * 2, S = r.height - r.padding * 2, h = Math.min(
|
|
618
|
+
l / c,
|
|
619
|
+
S / a,
|
|
620
|
+
1
|
|
621
|
+
// Don't scale up, only down
|
|
622
|
+
), p = c * h, y = a * h, b = r.padding + (l - p) / 2, E = r.padding + (S - y) / 2;
|
|
623
|
+
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();
|
|
624
|
+
}
|
|
625
|
+
function me(e, t, r) {
|
|
626
|
+
e.fillStyle = "#888888", e.font = "10px Arial", e.textAlign = "center", e.textBaseline = "middle";
|
|
627
|
+
const i = t.transformType || "Element";
|
|
628
|
+
e.fillText(i, r.width / 2, r.height / 2);
|
|
629
|
+
}
|
|
630
|
+
function Ye(e, t, r) {
|
|
631
|
+
const i = r.width - r.padding * 2, c = r.height - r.padding * 2, a = r.padding, l = r.padding;
|
|
632
|
+
e.fillStyle = "#888888", e.strokeStyle = "#666666", e.lineWidth = 1;
|
|
633
|
+
const S = c * 0.7, h = l + c * 0.3, p = i * 0.4, y = c * 0.2;
|
|
634
|
+
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(
|
|
635
|
+
t.children.length.toString(),
|
|
636
|
+
a + i / 2,
|
|
637
|
+
h + S / 2
|
|
638
|
+
));
|
|
639
|
+
}
|
|
640
|
+
const M = Q("Layers"), qe = 150;
|
|
641
|
+
async function we(e, t = 64, r = "transparent") {
|
|
642
|
+
try {
|
|
643
|
+
return Ze(e, {
|
|
644
|
+
width: t,
|
|
645
|
+
height: t,
|
|
646
|
+
padding: 8,
|
|
647
|
+
backgroundColor: r
|
|
648
|
+
}) || null;
|
|
649
|
+
} catch (i) {
|
|
650
|
+
return M.error("Failed to generate preview:", i), null;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
function Le(e, t, r, i, c, a = 0, l = null) {
|
|
654
|
+
return (a > 0 ? e : e.filter((h) => {
|
|
655
|
+
const p = h.parentId ?? null;
|
|
656
|
+
return h instanceof G, p === null;
|
|
657
|
+
})).map((h) => {
|
|
658
|
+
const p = h instanceof G, y = t === h.id || r.includes(h.id), b = {
|
|
659
|
+
id: h.id,
|
|
660
|
+
name: h.name || `Layer ${h.id.slice(0, 8)}`,
|
|
661
|
+
type: h.transformType,
|
|
662
|
+
visible: h.visible ?? !0,
|
|
663
|
+
locked: h.locked ?? !1,
|
|
664
|
+
isSelected: y,
|
|
665
|
+
isGroup: p,
|
|
666
|
+
depth: a,
|
|
667
|
+
parentId: l,
|
|
668
|
+
previewUrl: i.get(h.id) || null,
|
|
669
|
+
refreshPreview: async () => {
|
|
670
|
+
await c(h.id);
|
|
671
|
+
}
|
|
672
|
+
};
|
|
673
|
+
return p && h instanceof G && (b.children = Le(
|
|
674
|
+
h.children,
|
|
675
|
+
t,
|
|
676
|
+
r,
|
|
677
|
+
i,
|
|
678
|
+
c,
|
|
679
|
+
a + 1,
|
|
680
|
+
h.id
|
|
681
|
+
)), b;
|
|
682
|
+
});
|
|
683
|
+
}
|
|
684
|
+
function Ee(e) {
|
|
685
|
+
const t = [];
|
|
686
|
+
for (const r of e)
|
|
687
|
+
t.push(r), r.children && t.push(...Ee(r.children));
|
|
688
|
+
return t;
|
|
689
|
+
}
|
|
690
|
+
function ct(e = {}) {
|
|
691
|
+
var pe;
|
|
692
|
+
const {
|
|
693
|
+
artboardId: t,
|
|
694
|
+
includeHidden: r = !0,
|
|
695
|
+
previewSize: i = 64,
|
|
696
|
+
previewBackgroundColor: c,
|
|
697
|
+
autoRefreshPreviews: a = !1
|
|
698
|
+
} = e, {
|
|
699
|
+
elements: l,
|
|
700
|
+
selectedId: S,
|
|
701
|
+
multiSelection: h,
|
|
702
|
+
artboardManager: p,
|
|
703
|
+
handleSelectionChange: y,
|
|
704
|
+
handleElementUpdate: b,
|
|
705
|
+
setMultiSelection: E,
|
|
706
|
+
executeAddElement: j,
|
|
707
|
+
executeRemoveElement: H,
|
|
708
|
+
executeReorderElement: R
|
|
709
|
+
} = 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) => {
|
|
710
|
+
const n = l.find((s) => s.id === o);
|
|
711
|
+
if (!n) return;
|
|
712
|
+
const d = await we(n, i, O);
|
|
713
|
+
u.current.set(o, d), C((s) => s + 1);
|
|
714
|
+
}, [l, i, O]), w = Y(() => {
|
|
715
|
+
let o = l;
|
|
716
|
+
if (I) {
|
|
717
|
+
const n = p.getElementsOnArtboard(I);
|
|
718
|
+
o = o.filter((d) => n.includes(d.id));
|
|
719
|
+
}
|
|
720
|
+
return r || (o = o.filter((n) => n.visible !== !1)), o;
|
|
721
|
+
}, [l, I, r, p]), F = Y(() => Le(
|
|
722
|
+
w,
|
|
723
|
+
S,
|
|
724
|
+
h,
|
|
725
|
+
u.current,
|
|
726
|
+
ie
|
|
727
|
+
), [w, S, h, ie, g]), v = Y(() => Ee(F), [F]), V = Y(() => v.filter((o) => o.isSelected), [v]), k = f((o, n = !1) => {
|
|
728
|
+
n ? h.includes(o) ? E(h.filter((d) => d !== o)) : E([...h, o]) : y(o);
|
|
729
|
+
}, [h, E, y]), z = f((o) => {
|
|
730
|
+
E(o);
|
|
731
|
+
}, [E]), U = f(() => {
|
|
732
|
+
y(null), E([]);
|
|
733
|
+
}, [y, E]), _ = f((o) => {
|
|
734
|
+
const n = l.find((s) => s.id === o);
|
|
735
|
+
if (!n) return;
|
|
736
|
+
const d = n.clone();
|
|
737
|
+
d.visible = !(n.visible ?? !0), b(d);
|
|
738
|
+
}, [l, b]), N = f((o) => {
|
|
739
|
+
const n = l.find((s) => s.id === o);
|
|
740
|
+
if (!n) return;
|
|
741
|
+
const d = n.clone();
|
|
742
|
+
d.locked = !(n.locked ?? !1), b(d);
|
|
743
|
+
}, [l, b]), q = f((o, n) => {
|
|
744
|
+
const d = l.find((A) => A.id === o);
|
|
745
|
+
if (!d) return;
|
|
746
|
+
const s = d.clone();
|
|
747
|
+
s.name = n, b(s);
|
|
748
|
+
}, [l, b]), $ = f((o) => {
|
|
749
|
+
const n = l.find((d) => d.id === o);
|
|
750
|
+
if (!n) {
|
|
751
|
+
M.warn(`Element ${o} not found for deletion`);
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
H(n), (S === o || h.includes(o)) && (y(null), E(h.filter((d) => d !== o)));
|
|
755
|
+
}, [l, H, S, h, y, E]), T = f((o) => {
|
|
756
|
+
const n = l.find((P) => P.id === o);
|
|
757
|
+
if (!n) {
|
|
758
|
+
M.warn(`Element ${o} not found for duplication`);
|
|
759
|
+
return;
|
|
760
|
+
}
|
|
761
|
+
const s = n.clone().toJSON();
|
|
762
|
+
delete s.id;
|
|
763
|
+
const A = n.constructor, m = new A(s);
|
|
764
|
+
m.x = n.x + 20, m.y = n.y + 20;
|
|
765
|
+
const x = p.getArtboardIdForElement(o);
|
|
766
|
+
if (!x) {
|
|
767
|
+
M.warn(`Element ${o} not associated with any artboard`);
|
|
768
|
+
return;
|
|
769
|
+
}
|
|
770
|
+
j(m, x, o), y(m.id);
|
|
771
|
+
}, [l, p, j, y]), Z = f((o, n) => {
|
|
772
|
+
if (o === n) return;
|
|
773
|
+
if (o < 0 || o >= w.length) {
|
|
774
|
+
M.warn(`Invalid fromIndex: ${o}`);
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
if (n < 0 || n >= w.length) {
|
|
778
|
+
M.warn(`Invalid toIndex: ${n}`);
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
const d = w[o], s = w[n], A = o < n ? "after" : "before";
|
|
782
|
+
R(d.id, s.id, A);
|
|
783
|
+
}, [w, R]), te = f((o) => {
|
|
784
|
+
const n = v.findIndex((d) => d.id === o);
|
|
785
|
+
if (n < 0) {
|
|
786
|
+
M.warn(`Layer ${o} not found`);
|
|
787
|
+
return;
|
|
788
|
+
}
|
|
789
|
+
n >= v.length - 1 || Z(n, n + 1);
|
|
790
|
+
}, [v, Z]), W = f((o) => {
|
|
791
|
+
const n = v.findIndex((d) => d.id === o);
|
|
792
|
+
if (n < 0) {
|
|
793
|
+
M.warn(`Layer ${o} not found`);
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
796
|
+
n <= 0 || Z(n, n - 1);
|
|
797
|
+
}, [v, Z]), re = f((o) => {
|
|
798
|
+
if (o.length < 2) {
|
|
799
|
+
M.warn("Need at least 2 elements to create a group");
|
|
800
|
+
return;
|
|
801
|
+
}
|
|
802
|
+
const n = l.filter(
|
|
803
|
+
(L) => o.includes(L.id) && L.transformType !== "shape"
|
|
804
|
+
);
|
|
805
|
+
if (n.length < 2) {
|
|
806
|
+
M.warn("Need at least 2 groupable elements (shapes cannot be grouped)");
|
|
807
|
+
return;
|
|
808
|
+
}
|
|
809
|
+
const d = n.map((L) => p.getArtboardIdForElement(L.id)), s = [...new Set(d)];
|
|
810
|
+
if (s.length !== 1 || !s[0]) {
|
|
811
|
+
M.warn("All elements must be on the same artboard to group");
|
|
812
|
+
return;
|
|
813
|
+
}
|
|
814
|
+
const A = s[0], m = n.map((L) => L.getBoundingBox()).filter(Boolean);
|
|
815
|
+
if (m.length === 0) {
|
|
816
|
+
M.warn("Could not calculate bounding boxes for group");
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
const x = Math.min(...m.map((L) => L.x)), P = Math.min(...m.map((L) => L.y)), D = new G({
|
|
820
|
+
x,
|
|
821
|
+
y: P
|
|
822
|
+
});
|
|
823
|
+
D.children = n.map((L) => {
|
|
824
|
+
const oe = L.clone();
|
|
825
|
+
return oe.x = L.x - x, oe.y = L.y - P, oe;
|
|
826
|
+
}), n.forEach((L) => H(L)), j(D, A), y(D.id), E([]);
|
|
827
|
+
}, [l, p, H, j, y, E]), Fe = f((o) => {
|
|
828
|
+
const n = l.find((m) => m.id === o);
|
|
829
|
+
if (!n) {
|
|
830
|
+
M.warn(`Element ${o} not found for ungrouping`);
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
if (!(n instanceof G)) {
|
|
834
|
+
M.warn(`Element ${o} is not a group`);
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
const d = n;
|
|
838
|
+
if (!d.children || d.children.length === 0) {
|
|
839
|
+
M.warn(`Group ${o} has no children`);
|
|
840
|
+
return;
|
|
841
|
+
}
|
|
842
|
+
const s = p.getArtboardIdForElement(o);
|
|
843
|
+
if (!s) {
|
|
844
|
+
M.warn(`Group ${o} not associated with any artboard`);
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
847
|
+
const A = d.children.map((m) => {
|
|
848
|
+
const x = m.clone();
|
|
849
|
+
return x.x = m.x + d.x, x.y = m.y + d.y, x;
|
|
850
|
+
});
|
|
851
|
+
H(d), A.forEach((m) => j(m, s)), A.length > 0 && y(A[0].id), E([]);
|
|
852
|
+
}, [l, p, H, j, y, E]), ae = f(async (o = i) => {
|
|
853
|
+
const n = async (d) => {
|
|
854
|
+
for (const s of d) {
|
|
855
|
+
const A = await we(s, o, O);
|
|
856
|
+
u.current.set(s.id, A), s instanceof G && s.children.length > 0 && await n(s.children);
|
|
857
|
+
}
|
|
858
|
+
};
|
|
859
|
+
await n(w), C((d) => d + 1);
|
|
860
|
+
}, [i, O, w]);
|
|
861
|
+
be(() => {
|
|
862
|
+
if (!a) return;
|
|
863
|
+
const o = setTimeout(() => {
|
|
864
|
+
ae();
|
|
865
|
+
}, qe);
|
|
866
|
+
return () => clearTimeout(o);
|
|
867
|
+
}, [a, ae]);
|
|
868
|
+
const je = f(() => {
|
|
869
|
+
u.current.clear();
|
|
870
|
+
}, []), Se = f(
|
|
871
|
+
(o, n, d) => {
|
|
872
|
+
R(o, n, d);
|
|
873
|
+
},
|
|
874
|
+
[R]
|
|
875
|
+
), ze = f(
|
|
876
|
+
(o, n, d, s) => {
|
|
877
|
+
const A = l.find((J) => J.id === s);
|
|
878
|
+
if (!A || !(A instanceof G)) {
|
|
879
|
+
M.warn(`Group ${s} not found for reorder`);
|
|
880
|
+
return;
|
|
881
|
+
}
|
|
882
|
+
const m = A.clone(), x = m.children.findIndex((J) => J.id === o), P = m.children.findIndex((J) => J.id === n);
|
|
883
|
+
if (x === -1 || P === -1) {
|
|
884
|
+
M.warn(`Children not found in group for reorder: ${o}, ${n}`);
|
|
885
|
+
return;
|
|
886
|
+
}
|
|
887
|
+
const [D] = m.children.splice(x, 1), L = m.children.findIndex((J) => J.id === n), oe = d === "before" ? L : L + 1;
|
|
888
|
+
m.children.splice(oe, 0, D), b(m);
|
|
889
|
+
},
|
|
890
|
+
[l, b]
|
|
891
|
+
), He = f(
|
|
892
|
+
(o) => {
|
|
893
|
+
for (const n of l) {
|
|
894
|
+
if (n.id === o) return n;
|
|
895
|
+
if (n instanceof G) {
|
|
896
|
+
const d = n.children.find((s) => s.id === o);
|
|
897
|
+
if (d) return d;
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
return null;
|
|
901
|
+
},
|
|
902
|
+
[l]
|
|
903
|
+
), de = f(
|
|
904
|
+
(o) => {
|
|
905
|
+
for (const n of l)
|
|
906
|
+
if (n instanceof G && n.children.some((d) => d.id === o))
|
|
907
|
+
return n;
|
|
908
|
+
return null;
|
|
909
|
+
},
|
|
910
|
+
[l]
|
|
911
|
+
), Ve = f(
|
|
912
|
+
(o, n) => {
|
|
913
|
+
const d = l.find((P) => P.id === o), s = l.find((P) => P.id === n);
|
|
914
|
+
if (!d || !s || !(s instanceof G)) {
|
|
915
|
+
M.warn(`Cannot add ${o} to group ${n}`);
|
|
916
|
+
return;
|
|
917
|
+
}
|
|
918
|
+
if (!p.getArtboardIdForElement(o)) return;
|
|
919
|
+
const m = s.clone(), x = d.clone();
|
|
920
|
+
x.x = d.x, x.y = d.y, m.addChild(x), H(d), b(m);
|
|
921
|
+
},
|
|
922
|
+
[l, p, H, b]
|
|
923
|
+
), $e = f(
|
|
924
|
+
(o, n, d) => {
|
|
925
|
+
const s = de(o);
|
|
926
|
+
if (!s) {
|
|
927
|
+
M.warn(`Element ${o} is not inside a group`);
|
|
928
|
+
return;
|
|
929
|
+
}
|
|
930
|
+
const A = s.children.find((D) => D.id === o);
|
|
931
|
+
if (!A) return;
|
|
932
|
+
const m = p.getArtboardIdForElement(s.id);
|
|
933
|
+
if (!m) return;
|
|
934
|
+
const x = A.clone(), P = s.clone();
|
|
935
|
+
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);
|
|
936
|
+
},
|
|
937
|
+
[de, p, H, b, j, y]
|
|
938
|
+
), Te = f(() => {
|
|
939
|
+
const o = p.getActiveArtboardId();
|
|
940
|
+
if (!o) {
|
|
941
|
+
M.warn("No active artboard for creating a group");
|
|
942
|
+
return;
|
|
943
|
+
}
|
|
944
|
+
const n = new G({
|
|
945
|
+
x: 0,
|
|
946
|
+
y: 0,
|
|
947
|
+
name: "New Group"
|
|
948
|
+
});
|
|
949
|
+
j(n, o), y(n.id);
|
|
950
|
+
}, [p, j, y]);
|
|
951
|
+
return {
|
|
952
|
+
layers: F,
|
|
953
|
+
flatLayers: v,
|
|
954
|
+
selectedLayers: V,
|
|
955
|
+
selectLayer: k,
|
|
956
|
+
selectMultipleLayers: z,
|
|
957
|
+
clearSelection: U,
|
|
958
|
+
toggleVisibility: _,
|
|
959
|
+
toggleLock: N,
|
|
960
|
+
renameLayer: q,
|
|
961
|
+
deleteLayer: $,
|
|
962
|
+
duplicateLayer: T,
|
|
963
|
+
reorderLayers: Z,
|
|
964
|
+
reorderById: Se,
|
|
965
|
+
reorderWithinGroup: ze,
|
|
966
|
+
moveLayerForward: te,
|
|
967
|
+
moveLayerBackward: W,
|
|
968
|
+
groupLayers: re,
|
|
969
|
+
ungroupLayer: Fe,
|
|
970
|
+
addToGroup: Ve,
|
|
971
|
+
removeFromGroup: $e,
|
|
972
|
+
createEmptyGroup: Te,
|
|
973
|
+
findElementById: He,
|
|
974
|
+
findParentGroup: de,
|
|
975
|
+
generateAllPreviews: ae,
|
|
976
|
+
clearPreviewCache: je,
|
|
977
|
+
artboardId: I,
|
|
978
|
+
artboardManager: p,
|
|
979
|
+
layerCount: v.length
|
|
980
|
+
};
|
|
981
|
+
}
|
|
982
|
+
const ue = Q("useArtboards"), st = () => {
|
|
983
|
+
const {
|
|
984
|
+
artboards: e,
|
|
985
|
+
artboardManager: t,
|
|
986
|
+
refreshArtboards: r,
|
|
987
|
+
setSelectedId: i,
|
|
988
|
+
setMultiSelection: c
|
|
989
|
+
} = fe(), a = t.getActiveArtboardId(), l = t.getActiveArtboard(), S = Y(() => e.map((u) => {
|
|
990
|
+
const C = t.getElementsOnArtboard(u.id).length;
|
|
991
|
+
return {
|
|
992
|
+
id: u.id,
|
|
993
|
+
name: u.name,
|
|
994
|
+
x: u.x,
|
|
995
|
+
y: u.y,
|
|
996
|
+
width: u.width,
|
|
997
|
+
height: u.height,
|
|
998
|
+
backgroundColor: u.backgroundColor,
|
|
999
|
+
clipShape: u.clipShape,
|
|
1000
|
+
isActive: u.id === a,
|
|
1001
|
+
elementCount: C
|
|
1002
|
+
};
|
|
1003
|
+
}), [e, t, a]), h = Y(() => {
|
|
1004
|
+
if (!l) return null;
|
|
1005
|
+
const g = t.getElementsOnArtboard(l.id).length;
|
|
1006
|
+
return {
|
|
1007
|
+
id: l.id,
|
|
1008
|
+
name: l.name,
|
|
1009
|
+
x: l.x,
|
|
1010
|
+
y: l.y,
|
|
1011
|
+
width: l.width,
|
|
1012
|
+
height: l.height,
|
|
1013
|
+
backgroundColor: l.backgroundColor,
|
|
1014
|
+
clipShape: l.clipShape,
|
|
1015
|
+
isActive: !0,
|
|
1016
|
+
elementCount: g
|
|
1017
|
+
};
|
|
1018
|
+
}, [l, t]), p = f((u = 1200, g = 1200, C) => {
|
|
1019
|
+
const B = {
|
|
1020
|
+
width: u,
|
|
1021
|
+
height: g,
|
|
1022
|
+
...C
|
|
1023
|
+
};
|
|
1024
|
+
t.createArtboard(B), r();
|
|
1025
|
+
}, [t, r]), y = f((u) => {
|
|
1026
|
+
t.deleteArtboard(u), r();
|
|
1027
|
+
}, [t, r]), b = f((u) => {
|
|
1028
|
+
const g = e.find((C) => C.id === u);
|
|
1029
|
+
if (!g) {
|
|
1030
|
+
ue.warn(`[useArtboards] Artboard ${u} not found`);
|
|
1031
|
+
return;
|
|
1032
|
+
}
|
|
1033
|
+
t.createArtboard({
|
|
1034
|
+
width: g.width,
|
|
1035
|
+
height: g.height,
|
|
1036
|
+
name: `${g.name} Copy`,
|
|
1037
|
+
backgroundColor: g.backgroundColor,
|
|
1038
|
+
clipShape: g.clipShape
|
|
1039
|
+
}), r();
|
|
1040
|
+
}, [e, t, r]), E = f((u, g) => {
|
|
1041
|
+
const C = e.find((B) => B.id === u);
|
|
1042
|
+
if (!C) {
|
|
1043
|
+
ue.warn(`[useArtboards] Artboard ${u} not found`);
|
|
1044
|
+
return;
|
|
1045
|
+
}
|
|
1046
|
+
C.name = g, r();
|
|
1047
|
+
}, [e, r]), j = f((u, g) => {
|
|
1048
|
+
const C = e.find((B) => B.id === u);
|
|
1049
|
+
if (!C) {
|
|
1050
|
+
ue.warn(`[useArtboards] Artboard ${u} not found`);
|
|
1051
|
+
return;
|
|
1052
|
+
}
|
|
1053
|
+
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();
|
|
1054
|
+
}, [e, r]), H = f((u) => {
|
|
1055
|
+
i(null), c([]), t.setActiveArtboard(u), r();
|
|
1056
|
+
}, [t, r, i, c]), R = f((u, g) => {
|
|
1057
|
+
u !== g && (u < 0 || u >= e.length || g < 0 || g >= e.length || ([...e], t.reorderArtboards(u, g), r()));
|
|
1058
|
+
}, [e, t, r]);
|
|
1059
|
+
return {
|
|
1060
|
+
artboards: e,
|
|
1061
|
+
artboardsInfo: S,
|
|
1062
|
+
activeArtboard: l,
|
|
1063
|
+
activeArtboardId: a,
|
|
1064
|
+
activeArtboardInfo: h,
|
|
1065
|
+
createArtboard: p,
|
|
1066
|
+
deleteArtboard: y,
|
|
1067
|
+
duplicateArtboard: b,
|
|
1068
|
+
renameArtboard: E,
|
|
1069
|
+
updateArtboard: j,
|
|
1070
|
+
selectArtboard: H,
|
|
1071
|
+
reorderArtboards: R,
|
|
1072
|
+
count: e.length
|
|
1073
|
+
};
|
|
1074
|
+
}, Ke = Q("useExport");
|
|
1075
|
+
function ht() {
|
|
1076
|
+
const {
|
|
1077
|
+
artboards: e,
|
|
1078
|
+
artboardManager: t,
|
|
1079
|
+
elements: r,
|
|
1080
|
+
canvasRef: i
|
|
1081
|
+
} = fe(), [c, a] = K(!1), [l, S] = K(!1), [h, p] = K([]), [y, b] = K({}), [E, j] = K({
|
|
1082
|
+
totalExports: 0,
|
|
1083
|
+
avgExportTime: 0,
|
|
1084
|
+
isWorkerActive: !1
|
|
1085
|
+
}), H = le(0), R = le(null), u = se.supportsWorkerExport(), g = f(async (w, F = {}) => {
|
|
1086
|
+
const v = e.find((k) => k.id === w);
|
|
1087
|
+
if (!v)
|
|
1088
|
+
throw new Error(`[useExport] Artboard ${w} not found`);
|
|
1089
|
+
if (!i.current)
|
|
1090
|
+
throw new Error("[useExport] Canvas ref not available");
|
|
1091
|
+
a(!0);
|
|
1092
|
+
const V = {
|
|
1093
|
+
artboardId: w,
|
|
1094
|
+
artboardName: v.name,
|
|
1095
|
+
status: "rendering",
|
|
1096
|
+
progress: 0,
|
|
1097
|
+
timestamp: Date.now()
|
|
1098
|
+
};
|
|
1099
|
+
p((k) => [...k, V]);
|
|
1100
|
+
try {
|
|
1101
|
+
const k = Date.now(), z = B.current, U = t.getElementsOnArtboard(w), _ = z.filter(($) => U.includes($.id)), N = await se.exportArtboardToDataURL(
|
|
1102
|
+
v,
|
|
1103
|
+
_,
|
|
1104
|
+
i.current,
|
|
1105
|
+
{
|
|
1106
|
+
format: F.format || "png",
|
|
1107
|
+
scale: F.scale || 3,
|
|
1108
|
+
transparentBackground: F.transparentBackground ?? !0,
|
|
1109
|
+
...F
|
|
1110
|
+
}
|
|
1111
|
+
), q = Date.now() - k;
|
|
1112
|
+
return p(($) => $.map(
|
|
1113
|
+
(T) => T.artboardId === w ? { ...T, status: "complete", progress: 100, dataUrl: N, timestamp: Date.now() } : T
|
|
1114
|
+
)), b(($) => ({ ...$, [w]: N })), j(($) => ({
|
|
1115
|
+
totalExports: $.totalExports + 1,
|
|
1116
|
+
avgExportTime: ($.avgExportTime * $.totalExports + q) / ($.totalExports + 1),
|
|
1117
|
+
isWorkerActive: u
|
|
1118
|
+
})), N;
|
|
1119
|
+
} catch (k) {
|
|
1120
|
+
throw p((z) => z.map(
|
|
1121
|
+
(U) => U.artboardId === w ? { ...U, status: "error", error: k, timestamp: Date.now() } : U
|
|
1122
|
+
)), k;
|
|
1123
|
+
} finally {
|
|
1124
|
+
a(!1);
|
|
1125
|
+
}
|
|
1126
|
+
}, [e, t, r, i, u]), C = f(async (w = {}) => {
|
|
1127
|
+
a(!0);
|
|
1128
|
+
try {
|
|
1129
|
+
const F = e.map(async (k) => {
|
|
1130
|
+
const z = await g(k.id, w);
|
|
1131
|
+
return { id: k.id, dataUrl: z };
|
|
1132
|
+
}), v = await Promise.all(F), V = {};
|
|
1133
|
+
for (const { id: k, dataUrl: z } of v)
|
|
1134
|
+
V[k] = z;
|
|
1135
|
+
return V;
|
|
1136
|
+
} finally {
|
|
1137
|
+
a(!1);
|
|
1138
|
+
}
|
|
1139
|
+
}, [e, g]), B = le(r);
|
|
1140
|
+
B.current = r;
|
|
1141
|
+
const I = f(async (w, F = {}) => {
|
|
1142
|
+
const v = e.find((V) => V.id === w);
|
|
1143
|
+
if (!v)
|
|
1144
|
+
throw new Error(`[useExport] Artboard ${w} not found`);
|
|
1145
|
+
if (!i.current)
|
|
1146
|
+
throw new Error("[useExport] Canvas ref not available");
|
|
1147
|
+
a(!0);
|
|
1148
|
+
try {
|
|
1149
|
+
const V = B.current, k = t.getElementsOnArtboard(w), z = V.filter((_) => k.includes(_.id));
|
|
1150
|
+
return await se.exportArtboardToBlob(
|
|
1151
|
+
v,
|
|
1152
|
+
z,
|
|
1153
|
+
i.current,
|
|
1154
|
+
{
|
|
1155
|
+
format: F.format || "png",
|
|
1156
|
+
scale: F.scale || 3,
|
|
1157
|
+
transparentBackground: F.transparentBackground ?? !0,
|
|
1158
|
+
...F
|
|
1159
|
+
}
|
|
1160
|
+
);
|
|
1161
|
+
} finally {
|
|
1162
|
+
a(!1);
|
|
1163
|
+
}
|
|
1164
|
+
}, [e, t, r, i]), ee = f(async (w = {}) => {
|
|
1165
|
+
a(!0);
|
|
1166
|
+
try {
|
|
1167
|
+
const F = e.map(async (k) => {
|
|
1168
|
+
const z = await I(k.id, w);
|
|
1169
|
+
return { id: k.id, blob: z };
|
|
1170
|
+
}), v = await Promise.all(F), V = {};
|
|
1171
|
+
for (const { id: k, blob: z } of v)
|
|
1172
|
+
V[k] = z;
|
|
1173
|
+
return V;
|
|
1174
|
+
} finally {
|
|
1175
|
+
a(!1);
|
|
1176
|
+
}
|
|
1177
|
+
}, [e, I]), O = f(() => {
|
|
1178
|
+
H.current++, S(!1), R.current = null;
|
|
1179
|
+
}, []), ie = f((w) => {
|
|
1180
|
+
H.current++;
|
|
1181
|
+
const F = H.current;
|
|
1182
|
+
R.current = w, S(!0);
|
|
1183
|
+
const {
|
|
1184
|
+
artboardIds: v,
|
|
1185
|
+
interval: V = 500,
|
|
1186
|
+
scale: k = 3,
|
|
1187
|
+
format: z = "png",
|
|
1188
|
+
onChange: U
|
|
1189
|
+
} = w, _ = v ? e.filter((T) => v.includes(T.id)) : e, N = () => H.current === F, q = async () => {
|
|
1190
|
+
try {
|
|
1191
|
+
const T = _.map(async (W) => {
|
|
1192
|
+
const re = await g(W.id, {
|
|
1193
|
+
scale: k,
|
|
1194
|
+
format: z,
|
|
1195
|
+
transparentBackground: !0
|
|
1196
|
+
});
|
|
1197
|
+
return { id: W.id, dataUrl: re };
|
|
1198
|
+
}), Z = await Promise.all(T), te = {};
|
|
1199
|
+
for (const { id: W, dataUrl: re } of Z)
|
|
1200
|
+
te[W] = re;
|
|
1201
|
+
b((W) => ({ ...W, ...te })), U && U(te);
|
|
1202
|
+
} catch (T) {
|
|
1203
|
+
Ke.error("[useExport] Continuous export error:", T);
|
|
1204
|
+
}
|
|
1205
|
+
};
|
|
1206
|
+
(async () => {
|
|
1207
|
+
for (await q(); N() && (await new Promise((T) => setTimeout(T, V)), !!N()); )
|
|
1208
|
+
await q();
|
|
1209
|
+
})();
|
|
1210
|
+
}, [e, g]);
|
|
1211
|
+
return be(() => () => {
|
|
1212
|
+
O();
|
|
1213
|
+
}, [O]), {
|
|
1214
|
+
exportArtboard: g,
|
|
1215
|
+
exportArtboardAsBlob: I,
|
|
1216
|
+
exportAllArtboards: C,
|
|
1217
|
+
exportAllArtboardsAsBlobs: ee,
|
|
1218
|
+
startContinuousExport: ie,
|
|
1219
|
+
stopContinuousExport: O,
|
|
1220
|
+
isExporting: c,
|
|
1221
|
+
isContinuousExporting: l,
|
|
1222
|
+
progress: h,
|
|
1223
|
+
latestExports: y,
|
|
1224
|
+
supportsWorkerExport: u,
|
|
1225
|
+
workerStats: E
|
|
1226
|
+
};
|
|
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
|
+
at as C,
|
|
1467
|
+
ut as U,
|
|
1468
|
+
Oe as a,
|
|
1469
|
+
Re as b,
|
|
1470
|
+
We as c,
|
|
1471
|
+
dt as d,
|
|
1472
|
+
lt as e,
|
|
1473
|
+
ht as f,
|
|
1474
|
+
ct as g,
|
|
1475
|
+
Ze as h,
|
|
1476
|
+
st as u
|
|
1477
|
+
};
|
|
1478
|
+
//# sourceMappingURL=UnifiedFontService-BAtqqkU4.js.map
|