@snowcone-app/canvas 0.17.3 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/{ImportManager-C_wBjWaV.js → CanvasRenderer-DUc-MOeR.js} +586 -806
  2. package/dist/CanvasRenderer-DUc-MOeR.js.map +1 -0
  3. package/dist/{CanvasStateV1-BG2hEc3-.js → CanvasStateV1-Bq48qhv5.js} +3 -3
  4. package/dist/{CanvasStateV1-BG2hEc3-.js.map → CanvasStateV1-Bq48qhv5.js.map} +1 -1
  5. package/dist/ContextualToolbars-CkLjHNPn.js +5833 -0
  6. package/dist/ContextualToolbars-CkLjHNPn.js.map +1 -0
  7. package/dist/EditorCanvasImpl-Bv4yagew.js +81 -0
  8. package/dist/EditorCanvasImpl-Bv4yagew.js.map +1 -0
  9. package/dist/EditorContext-5QpqAhjh.js +1184 -0
  10. package/dist/{EditorContext-CGkfmbgo.js.map → EditorContext-5QpqAhjh.js.map} +1 -1
  11. package/dist/{FontAnalyzer-CLv7_msL.js → FontAnalyzer-DIlqmyuf.js} +35 -35
  12. package/dist/FontAnalyzer-DIlqmyuf.js.map +1 -0
  13. package/dist/{ElementFactory-CuHSAPfg.js → ImportManager-D--7JnvW.js} +699 -476
  14. package/dist/ImportManager-D--7JnvW.js.map +1 -0
  15. package/dist/MenuButton-CeoEAtzP.js +7444 -0
  16. package/dist/MenuButton-CeoEAtzP.js.map +1 -0
  17. package/dist/SnowconeCanvas-C_O-aeaQ.js +1166 -0
  18. package/dist/SnowconeCanvas-C_O-aeaQ.js.map +1 -0
  19. package/dist/advanced.mjs +266 -264
  20. package/dist/advanced.mjs.map +1 -1
  21. package/dist/api/embed.d.ts +1 -1
  22. package/dist/components/ContextualToolbars.d.ts +8 -0
  23. package/dist/components/editor/EditorAdd.d.ts +11 -0
  24. package/dist/components/editor/EditorCanvasImpl.d.ts +6 -0
  25. package/dist/components/editor/EditorControls.d.ts +14 -0
  26. package/dist/components/editor/EditorHistory.d.ts +11 -0
  27. package/dist/components/editor/EditorLayers.d.ts +16 -0
  28. package/dist/components/editor/EditorMenu.d.ts +11 -0
  29. package/dist/components/editor/RootInternals.d.ts +7 -0
  30. package/dist/components/editor/index.d.ts +20 -0
  31. package/dist/components/embed/addElementTypes.d.ts +9 -0
  32. package/dist/contexts/EditorContext.d.ts +38 -0
  33. package/dist/core/preview-registry.d.ts +34 -0
  34. package/dist/{editorErrors-BY4Pdg7a.js → editorErrors-DXNfVXtD.js} +2 -2
  35. package/dist/{editorErrors-BY4Pdg7a.js.map → editorErrors-DXNfVXtD.js.map} +1 -1
  36. package/dist/embed-Cdbjay9i.js +961 -0
  37. package/dist/embed-Cdbjay9i.js.map +1 -0
  38. package/dist/embed.mjs +5 -5
  39. package/dist/index.mjs +7 -7
  40. package/dist/internals.mjs +12 -12
  41. package/dist/{template-fields-Z9x13sjM.js → template-fields-DgoBtajp.js} +266 -240
  42. package/dist/template-fields-DgoBtajp.js.map +1 -0
  43. package/dist/testing.mjs +3 -3
  44. package/dist/{usePieceGuideBundle-C1ipFnZd.js → usePieceGuideBundle-DVOISsB1.js} +2 -2
  45. package/dist/{usePieceGuideBundle-C1ipFnZd.js.map → usePieceGuideBundle-DVOISsB1.js.map} +1 -1
  46. package/dist/validation-0IscSfRb.js +9304 -0
  47. package/dist/validation-0IscSfRb.js.map +1 -0
  48. package/package.json +1 -1
  49. package/dist/EditorCanvasImpl-DQxqdgpq.js +0 -70
  50. package/dist/EditorCanvasImpl-DQxqdgpq.js.map +0 -1
  51. package/dist/EditorContext-CGkfmbgo.js +0 -1178
  52. package/dist/ElementFactory-CuHSAPfg.js.map +0 -1
  53. package/dist/FontAnalyzer-CLv7_msL.js.map +0 -1
  54. package/dist/ImportManager-C_wBjWaV.js.map +0 -1
  55. package/dist/SnowconeCanvas-DBbmx9qW.js +0 -1187
  56. package/dist/SnowconeCanvas-DBbmx9qW.js.map +0 -1
  57. package/dist/UnifiedFontService-Dsu5cwfT.js +0 -1478
  58. package/dist/UnifiedFontService-Dsu5cwfT.js.map +0 -1
  59. package/dist/embed--B8ot6Lj.js +0 -746
  60. package/dist/embed--B8ot6Lj.js.map +0 -1
  61. package/dist/iconify-D6eVIEy4.js +0 -1089
  62. package/dist/iconify-D6eVIEy4.js.map +0 -1
  63. package/dist/template-fields-Z9x13sjM.js.map +0 -1
  64. package/dist/validation-C795COGQ.js +0 -19959
  65. 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