1/*  DokuWiki MoaiEditor Icons.js file
2    Version : 0.5 (May 5, 2026)
3    Author  : MoaiTools <info@moaitools.org>
4    License : GPL 3 (http://www.gnu.org/licenses/gpl.html) */
5
6/*  Various SVG icons used mainly by the buttons.
7*/
8MoaiEditor.Icons = class {
9
10    constructor() {
11
12        this.preview = '<img src="lib/plugins/moaieditor/icons/loading.png">';
13
14        this.ico_settings = `
15            <svg xmlns="http://www.w3.org/2000/svg"
16                 width="24" height="24" viewBox="0 0 24 24"
17                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
18                <path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.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"/>
19                <circle cx="12" cy="12" r="3"/>
20            </svg>`;
21
22
23        this.ico_layout_row = `
24            <svg xmlns="http://www.w3.org/2000/svg"
25                 viewBox="0 0 24 22" width="24" height="22"
26                 style="fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:butt;">
27                <path d=" M 2 5 v 13 a 2 2 0 0 0 2 2 h 16 a 2 2 0 0 0 2 -2 v -13"/>
28                <path fill="currentColor" d=" M 2 5 v -0.5  a 2 2 0 0 1 2 -2 h 16 a 2 2 0 0 1 2 2 v 0.5"/>
29                <path stroke-width="1" d=" M 12 5 v 15"/>
30            </svg>`;
31
32        this.ico_layout_col = `
33            <svg xmlns="http://www.w3.org/2000/svg"
34                 viewBox="0 0 24 22" width="24" height="22"
35                 style="fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:butt;">
36                <path d="M 2 5 v 13 a 2 2 0 0 0 2 2 h 16 a 2 2 0 0 0 2 -2 v -13"/>
37                <path fill="currentColor" d="M 2 5 v -0.5 a 2 2 0 0 1 2 -2 h 16 a 2 2 0 0 1 2 2 v 0.5"/>
38                <path stroke-width="1" d="M 2 12 h 20"/>
39            </svg>`;
40
41        this.ico_layout_single = `
42            <svg xmlns="http://www.w3.org/2000/svg"
43                 viewBox="0 0 24 22" width="24" height="22"
44                 style="fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:butt;">
45                <path d="M 2 5 v 13 a 2 2 0 0 0 2 2 h 16 a 2 2 0 0 0 2 -2 v -13"/>
46                <path fill="currentColor" d="M 2 5 v -0.5 a 2 2 0 0 1 2 -2 h 16 a 2 2 0 0 1 2 2 v 0.5"/>
47            </svg>`;
48
49        this.ico_divider_left = `
50            <svg xmlns="http://www.w3.org/2000/svg"
51                 viewBox="0 0 24 22" width="24" height="24"
52                 style="fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:butt;">
53                <rect width="4" height="17" x="3" y="3" fill="currentColor" opacity="0.2"/>
54                <rect width="20" height="17" x="2" y="3" rx="1" ry="1"/>
55                <path stroke-width="1" d=" M 8 3 v 17"/>
56                <path stroke-width="1.2" d=" M 16 7.5 l -4 4 l 4 4 "/>
57            </svg>`;
58
59        this.ico_divider_right = `
60            <svg xmlns="http://www.w3.org/2000/svg"
61                 viewBox="0 0 24 22" width="24" height="22"
62                 style="fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:butt;">
63                <rect width="4" height="17" x="17" y="3" fill="currentColor" opacity="0.2"/>
64                <rect width="20" height="17" x="2" y="3" rx="1" ry="1"/>
65                <path stroke-width="1" d=" M 16 3 v 17"/>
66                <path stroke-width="1.2" d=" M 8 7.5 l 4 4 l -4 4 "/>
67            </svg>`;
68
69        this.ico_divider_up = `
70            <svg xmlns="http://www.w3.org/2000/svg"
71                 viewBox="0 0 24 22" width="24" height="24"
72                 style="fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:butt;">
73                <rect width="20" height="3" x="2" y="5" fill="currentColor" opacity="0.2"/>
74                <rect width="20" height="17" x="2" y="3" rx="1" ry="1"/>
75                <path stroke-width="1" d=" M 2 9 h 20"/>
76                <path stroke-width="1.2" d=" M 8 16 l 4 -4 l 4 4 "/>
77            </svg>`;
78
79        this.ico_divider_down = `
80            <svg xmlns="http://www.w3.org/2000/svg"
81                 viewBox="0 0 24 22" width="24" height="22"
82                 style="fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:butt;">
83                <rect width="20" height="3" x="2" y="16" fill="currentColor" opacity="0.2"/>
84                <rect width="20" height="17" x="2" y="3" rx="1" ry="1"/>
85                <path stroke-width="1" d=" M 2 15 h 20"/>
86                <path stroke-width="1.2" d=" M 8 8 l 4 4 l 4 -4 "/>
87            </svg>`;
88
89        this.ico_livepreview = `
90            <svg xmlns="http://www.w3.org/2000/svg"
91                viewBox="0 0 24 22" width="24" height="24"
92                style="fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:butt;">
93               <rect width="20" height="17" x="2" y="3" rx="1" ry="1"/>
94               <path stroke-width="1" fill="currentColor" stroke-linecap="round" d="M 10 8 l 5 4 l -5 4 l 0 -8"/>
95            </svg>`;
96
97        this.ico_autoscroll1 = `
98            <svg xmlns="http://www.w3.org/2000/svg"
99                width="24" height="24" viewBox="0 0 24 24"
100                style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
101               <path d="M 12 4 v 5"/>
102               <path d="M 12 20 v -5"/>
103               <path d="m 8 17 4 4 4-4"/>
104               <path d="m 8 7 4-4 4 4"/>
105            </svg>`;
106
107        this.ico_autoscroll2 = `
108            <svg xmlns="http://www.w3.org/2000/svg"
109                width="24" height="24" viewBox="0 0 24 24"
110                style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
111               <path d="M 12 4 v16"/>
112               <path d="m 8 17 4 4 4-4"/>
113               <path d="m 8 7 4-4 4 4"/>
114            </svg>`;
115
116        this.ico_rabbit = `
117            <svg xmlns="http://www.w3.org/2000/svg"
118                width="240" height="210" viewBox="38 40 85 115"
119                style="fill:currentColor; stroke:currentColor; stroke-width:1;">
120                <path d="m 57.140122,127.24069 10.162908,9.07477 -0.143637,0.4329 -7.31447,4.82911 -2.842225,1.86484 -2.104096,0.38482 -2.21478,-0.21909 -1.831276,-0.57522 -1.418675,-0.9888 -1.080323,-1.49104 -0.607801,-1.66668 -0.05931,-1.71778 0.281215,-1.9527 0.817719,-1.7608 1.616773,-1.57368 z"/>
121                <path d="m 41.623077,80.252013 1.73037,-2.377241 2.266953,-2.215663 3.437395,-2.346971 3.465676,-1.212919 4.244592,-0.850659 5.602229,0.252119 5.927291,1.039143 6.308857,2.051087 8.625258,4.774054 6.805575,3.837488 6.999573,4.062235 3.745994,2.177132 0.45871,-2.492857 1.09648,-2.31889 -3.748357,-2.026261 -4.172747,-3.195315 -3.131872,-3.363674 -2.752569,-3.806296 -1.625635,-3.140839 -1.166397,-2.511899 -0.485224,-1.700456 0.0934,-2.142831 0.481534,-1.025033 1.150606,-1.516004 1.432634,-0.882153 1.607119,-0.335425 2.324293,0.448765 3.936569,1.344583 4.170476,2.094463 3.69424,2.553869 2.39541,2.118363 2.3308,2.502119 1.20764,1.625704 1.61914,2.370084 2.00755,3.836226 2.88957,0.06026 2.9394,0.432914 -1.48877,-3.407307 -1.75294,-3.367725 -1.59618,-2.558899 -1.78514,-2.281934 -2.27032,-2.516894 -2.29565,-2.166196 0.15238,-3.054226 0.62922,-3.353684 0.69735,-2.211781 0.51762,-0.90664 1.04123,-0.74164 1.49543,-0.354103 1.48507,0.101992 1.6102,0.895847 1.67518,1.799204 2.11623,2.579965 1.96657,3.228017 1.65468,3.478411 1.21723,3.327699 0.90362,4.046464 0.39063,3.570065 -0.11576,3.531364 -0.32777,2.927305 2.15981,1.285246 1.19651,1.189349 3.44763,2.669471 2.14532,1.768669 2.58794,2.307553 1.80774,2.608945 1.20222,3.486819 0.0932,3.666815 -1.077,3.877494 -1.33244,2.21928 -2.06514,2.1237 -2.87672,1.85252 -4.00258,0.87081 -22.2177,0.003 -5.21191,3.09369 -4.671711,2.8269 -2.715794,1.53744 -0.0136,-4.54394 -0.403598,-3.99931 -1.137269,-3.98703 -1.778384,-3.77331 -1.88728,-2.83473 -2.168782,-2.630916 -2.22626,-1.911278 -2.707547,-1.956679 -3.089045,-1.78399 -4.609793,-1.681763 -5.230709,-1.374606 -1.576359,-0.137591 -1.081584,0.21908 -1.023189,0.713013 -0.458039,0.690795 -0.344135,1.222372 -0.0011,1.171538 0.368993,1.140786 1.129388,1.005371 2.650765,0.936713 4.294814,1.177017 2.289043,0.765379 2.776797,1.447302 2.009023,1.474254 2.069169,1.852993 1.759532,2.31577 1.353095,2.22297 0.795467,1.76188 1.029102,2.89824 0.401585,2.81106 0.107952,10.59095 20.996833,0.0507 0.99538,0.12898 1.39873,0.71169 1.16887,0.97658 1.1324,1.72019 0.55437,1.63956 0.10178,1.70354 -0.21447,1.51231 -0.61696,1.50906 -1.31759,1.52183 -1.77219,0.96814 -2.33054,0.69198 -24.524026,-0.0194 -2.467758,-0.30287 -2.580957,-0.93223 -1.923167,-1.18112 -4.173836,-3.50334 -27.672374,-25.34671 -1.610878,-1.84469 -1.35105,-2.09163 -1.1909,-2.309741 -0.716756,-2.317221 -1.483241,0.895517 -2.301579,0.717047 -2.380012,0.238112 -2.123728,-0.208119 -2.042099,-0.466677 -2.323589,-1.097449 -1.663041,-1.337736 -1.330364,-1.428139 -1.238789,-2.036564 -0.639887,-1.808284 -0.334817,-2.167832 0.005,-2.512004 0.522823,-2.26 0.599083,-1.541013 1.031128,-1.578766 1.175013,-1.250664 1.410668,-1.259797 1.66764,-0.977877 2.310836,-0.806553 2.22703,-0.352761 2.342925,0.06112 1.334905,0.25976 1.554012,0.579546 1.335576,0.787006 1.462289,0.974272 z"/>
122            </svg>`;
123
124        this.ico_linewrap = `
125            <svg xmlns="http://www.w3.org/2000/svg"
126                width="24" height="24" viewBox="0 0 24 24"
127                style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
128               <path d="m16 16-3 3 3 3"/>
129               <path d="M3 12h14.5a1 1 0 0 1 0 7H13"/>
130               <path d="M3 19h6"/><path d="M3 5h18"/>
131            </svg>`.trim();
132
133        this.ico_fullscreen = `
134            <svg xmlns="http://www.w3.org/2000/svg"
135                 width="24" height="24" viewBox="0 0 24 24"
136                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
137                <path d="M15 3h6v6"/><path d="m21 3-7 7"/><path d="m3 21 7-7"/><path d="M9 21H3v-6"/></svg>
138            </svg>`.trim();
139
140        this.ico_scrolltop = `
141            <svg xmlns="http://www.w3.org/2000/svg"
142                 width="24" height="24" viewBox="0 0 24 24"
143                 style="fill:currentColor; stroke-linejoin=round">
144                 <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
145            </svg>`.trim();
146
147        this.ico_scrollbottom = `
148            <svg xmlns="http://www.w3.org/2000/svg"
149                 width="24" height="24" viewBox="0 0 24 24"
150                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
151                 <path d="M12 5v14"/><path d="m19 12-7 7-7-7"/>
152            </svg>`.trim();
153
154        this.ico_arrowleft = `
155            <svg xmlns="http://www.w3.org/2000/svg"
156                 width="24" height="24" viewBox="0 0 24 24"
157                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
158                 <path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>
159            </svg>`.trim();
160
161        this.ico_arrowright = `
162            <svg xmlns="http://www.w3.org/2000/svg"
163                 width="24" height="24" viewBox="0 0 24 24"
164                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
165                 <path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>
166            </svg>`.trim();
167
168        this.ico_arrowhrz = `
169            <svg xmlns="http://www.w3.org/2000/svg"
170                 width="24" height="24" viewBox="0 0 24 24"
171                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
172                <path d="m18 8 4 4-4 4"/>
173                <path d="M2 12h20"/>
174                <path d="m6 8-4 4 4 4"/>
175            </svg>`.trim();
176
177        this.ico_arrow_corner_leftdown = `
178            <svg xmlns="http://www.w3.org/2000/svg"
179                 width="24" height="24" viewBox="0 0 24 24"
180                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
181                <path d="m14 15-5 5-5-5"/>
182                <path d="M20 4h-7a4 4 0 0 0-4 4v12"/>
183            </svg>`.trim();
184
185        this.ico_summary = `
186            <svg xmlns="http://www.w3.org/2000/svg"
187                 width="24" height="24" viewBox="0 0 24 24"
188                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
189                 <path d="M11.5 15H7a4 4 0 0 0-4 4v2"/>
190                 <path d="M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z"/>
191                 <circle cx="10" cy="7" r="4"/>
192            </svg>`.trim();
193
194        this.ico_rsppanel = `
195            <svg xmlns="http://www.w3.org/2000/svg"
196                 width="24" height="24" viewBox="0 0 24 24"
197                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
198                 <path d="M12 12h.01"/><path d="M16 12h.01"/><path d="m17 7 5 5-5 5"/><path d="m7 7-5 5 5 5"/><path d="M8 12h.01"/>
199            </svg>`.trim();
200
201        this.ico_power = `
202            <svg xmlns="http://www.w3.org/2000/svg"
203                 width="24" height="24" viewBox="0 0 24 24"
204                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
205                 <path d="M12 2v10"/>
206                 <path d="M18.4 6.6a9 9 0 1 1-12.77.04"/>
207            </svg>`.trim();
208
209        this.ico_options = `
210            <svg xmlns="http://www.w3.org/2000/svg"
211                 width="24" height="24" viewBox="0 0 24 24"
212                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
213                 <path d="M14 17H5"/>
214                 <path d="M19 7h-9"/>
215                 <circle cx="17" cy="17" r="3"/>
216                 <circle cx="7" cy="7" r="3"/>
217            </svg>`;
218
219        this.ico_editor = `
220            <svg xmlns="http://www.w3.org/2000/svg"
221                 width="24" height="24" viewBox="0 0 24 24"
222                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
223                 <path d="m10 9-3 3 3 3"/>
224                 <path d="m14 15 3-3-3-3"/>
225                 <rect x="2" y="3" width="20" height="18" rx="2"/>
226            </svg>`;
227
228        this.ico_bot = `
229            <svg xmlns="http://www.w3.org/2000/svg"
230                 width="24" height="24" viewBox="0 0 24 24"
231                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
232                 <path d="M12 8V4H8"/>
233                 <rect width="16" height="12" x="4" y="8" rx="2"/>
234                 <path d="M2 14h2"/>
235                 <path d="M20 14h2"/>
236                 <path d="M15 13v2"/>
237                 <path d="M9 13v2"/>
238            </svg>`;
239
240        this.ico_fullwidth = `
241            <svg xmlns="http://www.w3.org/2000/svg"
242                 width="24" height="24" viewBox="0 0 24 24"
243                 style="fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin=round">
244                 <path d="m8 17-5-5 5-5"/>
245                 <path d="m16 17 5-5-5-5"/></svg>
246            </svg>`;
247
248        this.logo_moai = `
249            <svg xmlns="http://www.w3.org/2000/svg"
250                 width="50" height="100" viewBox="25 20 45 100"
251                 style="fill:currentColor; stroke:currentColor; stroke-width:1;">
252                <path d="m 51.034103,18.492826 2.339374,0.1258 2.101302,0.322352 2.13486,0.555576 1.92301,0.782838 1.728867,0.928057 1.643525,1.31883 1.386052,1.66591 1.173205,1.967822 0.828487,1.938593 0.515247,2.082041 -1.481984,12.170587 -1.844551,15.692691 -1.042726,10.415037 -0.453263,7.748871 -0.20701,7.044237 0.310288,4.747284 0.370713,3.781081 0.280082,1.731285 1.37591,1.171615 1.265693,1.593654 0.991224,1.687153 0.662567,1.676656 0.866934,2.930864 0.447776,2.85943 0.227753,3.70824 -0.0928,3.5711 -0.240255,2.82761 -0.580088,3.44691 h -31.34138 l -0.112236,-4.4428 -0.378171,-3.15961 -0.808594,-3.18928 -0.876093,-2.29798 -0.891866,-1.49972 -0.896924,-0.96922 -0.885002,-0.68326 -0.958411,-0.56208 -0.980704,-0.3756 -0.923362,-0.14283 -0.545436,-0.0223 0.741723,-4.262888 0.837879,-5.294921 0.397764,-3.917873 0.111641,-4.157237 -0.01021,-1.416833 -1.115303,-1.174644 -0.89309,-1.262338 -0.509786,-1.322493 -0.167132,-1.07337 0.05466,-1.026826 0.53004,-1.022266 0.824635,-0.822835 1.129641,-0.622552 1.835314,-0.711665 0.507675,-2.474728 0.06796,-0.582083 -1.075547,-0.112659 -1.128673,-0.416642 -0.886108,-0.518973 -0.879483,-0.835927 -0.875297,-0.968687 -0.729454,-1.131181 -0.671788,-1.382025 -0.518512,-1.270717 12.848863,-11.348026 0.810035,-2.159805 1.036825,-2.129644 1.135571,-1.789166 1.205666,-1.75824 1.305142,-1.63144 1.123456,-1.248987 1.217226,-1.258101 -0.03228,-1.52295 -0.247446,-1.236985 -0.386911,-0.878769 -0.434449,-0.846862 -0.627022,-1.031211 -1.064948,-1.541608 -1.217406,-1.492422 1.214027,-1.203545 1.247674,-1.702688 1.451372,-2.068227 1.591289,-2.557004 1.44181,-2.561912 0.946586,-1.642348 0.460005,-0.974505 z"/>
253            </svg>`;
254
255    }
256}; // End Class
257
258
259