@emailmaker/filemanager 0.10.101 → 0.10.103

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 (807) hide show
  1. package/adapters/systemFolderPath.d.ts +1 -1
  2. package/assets/image-editor/fonts/Rubik-Black.woff2 +0 -0
  3. package/assets/image-editor/fonts/Rubik-Bold.woff2 +0 -0
  4. package/assets/image-editor/fonts/Rubik-Light.woff2 +0 -0
  5. package/assets/image-editor/fonts/Rubik-Regular.woff2 +0 -0
  6. package/assets/image-editor/fonts/caveat-v23-cyrillic_latin-regular.woff2 +0 -0
  7. package/assets/image-editor/fonts/commissioner-v24-cyrillic_latin-regular.woff2 +0 -0
  8. package/assets/image-editor/fonts/inter-v20-cyrillic_latin-regular.woff2 +0 -0
  9. package/assets/image-editor/fonts/oswald-v57-cyrillic_latin-regular.woff2 +0 -0
  10. package/assets/image-editor/fonts/pacifico-v23-cyrillic_latin-regular.woff2 +0 -0
  11. package/assets/image-editor/fonts/playfair-display-v40-cyrillic_latin-regular.woff2 +0 -0
  12. package/assets/image-editor/images/brushes/black/circle.png +0 -0
  13. package/assets/image-editor/images/brushes/black/diamond.png +0 -0
  14. package/assets/image-editor/images/brushes/black/hline.png +0 -0
  15. package/assets/image-editor/images/brushes/black/pencil.png +0 -0
  16. package/assets/image-editor/images/brushes/black/spray.png +0 -0
  17. package/assets/image-editor/images/brushes/black/square.png +0 -0
  18. package/assets/image-editor/images/brushes/black/vline.png +0 -0
  19. package/assets/image-editor/images/brushes/white/circle.png +0 -0
  20. package/assets/image-editor/images/brushes/white/diamond.png +0 -0
  21. package/assets/image-editor/images/brushes/white/hline.png +0 -0
  22. package/assets/image-editor/images/brushes/white/pencil.png +0 -0
  23. package/assets/image-editor/images/brushes/white/spray.png +0 -0
  24. package/assets/image-editor/images/brushes/white/square.png +0 -0
  25. package/assets/image-editor/images/brushes/white/vline.png +0 -0
  26. package/assets/image-editor/images/filter/blackWhite.jpg +0 -0
  27. package/assets/image-editor/images/filter/blendColor.jpg +0 -0
  28. package/assets/image-editor/images/filter/blur.jpg +0 -0
  29. package/assets/image-editor/images/filter/brightness.jpg +0 -0
  30. package/assets/image-editor/images/filter/brownie.jpg +0 -0
  31. package/assets/image-editor/images/filter/emboss.jpg +0 -0
  32. package/assets/image-editor/images/filter/gamma.jpg +0 -0
  33. package/assets/image-editor/images/filter/grayscale.jpg +0 -0
  34. package/assets/image-editor/images/filter/invert.jpg +0 -0
  35. package/assets/image-editor/images/filter/kodachrome.jpg +0 -0
  36. package/assets/image-editor/images/filter/noise.jpg +0 -0
  37. package/assets/image-editor/images/filter/original.jpg +0 -0
  38. package/assets/image-editor/images/filter/pixelate.jpg +0 -0
  39. package/assets/image-editor/images/filter/polaroid.jpg +0 -0
  40. package/assets/image-editor/images/filter/removeColor.jpg +0 -0
  41. package/assets/image-editor/images/filter/sepia.jpg +0 -0
  42. package/assets/image-editor/images/filter/sharpen.jpg +0 -0
  43. package/assets/image-editor/images/filter/technicolor.jpg +0 -0
  44. package/assets/image-editor/images/filter/vintage.jpg +0 -0
  45. package/assets/image-editor/images/frames/art1/bottom.png +0 -0
  46. package/assets/image-editor/images/frames/art1/bottomLeft.png +0 -0
  47. package/assets/image-editor/images/frames/art1/bottomRight.png +0 -0
  48. package/assets/image-editor/images/frames/art1/left.png +0 -0
  49. package/assets/image-editor/images/frames/art1/right.png +0 -0
  50. package/assets/image-editor/images/frames/art1/thumbnail.png +0 -0
  51. package/assets/image-editor/images/frames/art1/top.png +0 -0
  52. package/assets/image-editor/images/frames/art1/topLeft.png +0 -0
  53. package/assets/image-editor/images/frames/art1/topRight.png +0 -0
  54. package/assets/image-editor/images/frames/art2/bottom.png +0 -0
  55. package/assets/image-editor/images/frames/art2/bottomLeft.png +0 -0
  56. package/assets/image-editor/images/frames/art2/bottomRight.png +0 -0
  57. package/assets/image-editor/images/frames/art2/left.png +0 -0
  58. package/assets/image-editor/images/frames/art2/right.png +0 -0
  59. package/assets/image-editor/images/frames/art2/thumbnail.png +0 -0
  60. package/assets/image-editor/images/frames/art2/top.png +0 -0
  61. package/assets/image-editor/images/frames/art2/topLeft.png +0 -0
  62. package/assets/image-editor/images/frames/art2/topRight.png +0 -0
  63. package/assets/image-editor/images/frames/basic/thumbnail.png +0 -0
  64. package/assets/image-editor/images/frames/ebony/bottom.png +0 -0
  65. package/assets/image-editor/images/frames/ebony/bottomLeft.png +0 -0
  66. package/assets/image-editor/images/frames/ebony/bottomRight.png +0 -0
  67. package/assets/image-editor/images/frames/ebony/left.png +0 -0
  68. package/assets/image-editor/images/frames/ebony/right.png +0 -0
  69. package/assets/image-editor/images/frames/ebony/thumbnail.png +0 -0
  70. package/assets/image-editor/images/frames/ebony/top.png +0 -0
  71. package/assets/image-editor/images/frames/ebony/topLeft.png +0 -0
  72. package/assets/image-editor/images/frames/ebony/topRight.png +0 -0
  73. package/assets/image-editor/images/frames/grunge1/bottom.png +0 -0
  74. package/assets/image-editor/images/frames/grunge1/bottomLeft.png +0 -0
  75. package/assets/image-editor/images/frames/grunge1/bottomRight.png +0 -0
  76. package/assets/image-editor/images/frames/grunge1/left.png +0 -0
  77. package/assets/image-editor/images/frames/grunge1/right.png +0 -0
  78. package/assets/image-editor/images/frames/grunge1/thumbnail.png +0 -0
  79. package/assets/image-editor/images/frames/grunge1/top.png +0 -0
  80. package/assets/image-editor/images/frames/grunge1/topLeft.png +0 -0
  81. package/assets/image-editor/images/frames/grunge1/topRight.png +0 -0
  82. package/assets/image-editor/images/frames/grunge2/bottom.png +0 -0
  83. package/assets/image-editor/images/frames/grunge2/bottomLeft.png +0 -0
  84. package/assets/image-editor/images/frames/grunge2/bottomRight.png +0 -0
  85. package/assets/image-editor/images/frames/grunge2/left.png +0 -0
  86. package/assets/image-editor/images/frames/grunge2/right.png +0 -0
  87. package/assets/image-editor/images/frames/grunge2/thumbnail.png +0 -0
  88. package/assets/image-editor/images/frames/grunge2/top.png +0 -0
  89. package/assets/image-editor/images/frames/grunge2/topLeft.png +0 -0
  90. package/assets/image-editor/images/frames/grunge2/topRight.png +0 -0
  91. package/assets/image-editor/images/frames/oak/bottom.png +0 -0
  92. package/assets/image-editor/images/frames/oak/bottomLeft.png +0 -0
  93. package/assets/image-editor/images/frames/oak/bottomRight.png +0 -0
  94. package/assets/image-editor/images/frames/oak/left.png +0 -0
  95. package/assets/image-editor/images/frames/oak/right.png +0 -0
  96. package/assets/image-editor/images/frames/oak/thumbnail.png +0 -0
  97. package/assets/image-editor/images/frames/oak/top.png +0 -0
  98. package/assets/image-editor/images/frames/oak/topLeft.png +0 -0
  99. package/assets/image-editor/images/frames/oak/topRight.png +0 -0
  100. package/assets/image-editor/images/frames/pine/bottom.png +0 -0
  101. package/assets/image-editor/images/frames/pine/bottomLeft.png +0 -0
  102. package/assets/image-editor/images/frames/pine/bottomRight.png +0 -0
  103. package/assets/image-editor/images/frames/pine/left.png +0 -0
  104. package/assets/image-editor/images/frames/pine/right.png +0 -0
  105. package/assets/image-editor/images/frames/pine/thumbnail.png +0 -0
  106. package/assets/image-editor/images/frames/pine/top.png +0 -0
  107. package/assets/image-editor/images/frames/pine/topLeft.png +0 -0
  108. package/assets/image-editor/images/frames/pine/topRight.png +0 -0
  109. package/assets/image-editor/images/frames/rainbow/bottom.png +0 -0
  110. package/assets/image-editor/images/frames/rainbow/bottomLeft.png +0 -0
  111. package/assets/image-editor/images/frames/rainbow/bottomRight.png +0 -0
  112. package/assets/image-editor/images/frames/rainbow/left.png +0 -0
  113. package/assets/image-editor/images/frames/rainbow/right.png +0 -0
  114. package/assets/image-editor/images/frames/rainbow/thumbnail.png +0 -0
  115. package/assets/image-editor/images/frames/rainbow/top.png +0 -0
  116. package/assets/image-editor/images/frames/rainbow/topLeft.png +0 -0
  117. package/assets/image-editor/images/frames/rainbow/topRight.png +0 -0
  118. package/assets/image-editor/images/gradients/0.png +0 -0
  119. package/assets/image-editor/images/gradients/1.png +0 -0
  120. package/assets/image-editor/images/gradients/10.png +0 -0
  121. package/assets/image-editor/images/gradients/11.png +0 -0
  122. package/assets/image-editor/images/gradients/12.png +0 -0
  123. package/assets/image-editor/images/gradients/2.png +0 -0
  124. package/assets/image-editor/images/gradients/3.png +0 -0
  125. package/assets/image-editor/images/gradients/4.png +0 -0
  126. package/assets/image-editor/images/gradients/5.png +0 -0
  127. package/assets/image-editor/images/gradients/6.png +0 -0
  128. package/assets/image-editor/images/gradients/7.png +0 -0
  129. package/assets/image-editor/images/gradients/8.png +0 -0
  130. package/assets/image-editor/images/gradients/9.png +0 -0
  131. package/assets/image-editor/images/samples/sample1.jpg +0 -0
  132. package/assets/image-editor/images/samples/sample1_thumbnail.jpg +0 -0
  133. package/assets/image-editor/images/samples/sample2.jpg +0 -0
  134. package/assets/image-editor/images/samples/sample2_thumbnail.jpg +0 -0
  135. package/assets/image-editor/images/samples/sample3.jpg +0 -0
  136. package/assets/image-editor/images/samples/sample3_thumbnail.jpg +0 -0
  137. package/assets/image-editor/images/samples/sample4.json +871 -871
  138. package/assets/image-editor/images/stickers/beach/0.svg +25 -25
  139. package/assets/image-editor/images/stickers/beach/1.svg +14 -14
  140. package/assets/image-editor/images/stickers/beach/10.svg +34 -34
  141. package/assets/image-editor/images/stickers/beach/11.svg +27 -27
  142. package/assets/image-editor/images/stickers/beach/12.svg +10 -10
  143. package/assets/image-editor/images/stickers/beach/13.svg +25 -25
  144. package/assets/image-editor/images/stickers/beach/14.svg +16 -16
  145. package/assets/image-editor/images/stickers/beach/15.svg +14 -14
  146. package/assets/image-editor/images/stickers/beach/16.svg +44 -44
  147. package/assets/image-editor/images/stickers/beach/17.svg +35 -35
  148. package/assets/image-editor/images/stickers/beach/18.svg +32 -32
  149. package/assets/image-editor/images/stickers/beach/19.svg +23 -23
  150. package/assets/image-editor/images/stickers/beach/2.svg +14 -14
  151. package/assets/image-editor/images/stickers/beach/20.svg +24 -24
  152. package/assets/image-editor/images/stickers/beach/21.svg +11 -11
  153. package/assets/image-editor/images/stickers/beach/3.svg +26 -26
  154. package/assets/image-editor/images/stickers/beach/4.svg +25 -25
  155. package/assets/image-editor/images/stickers/beach/5.svg +22 -22
  156. package/assets/image-editor/images/stickers/beach/6.svg +20 -20
  157. package/assets/image-editor/images/stickers/beach/7.svg +32 -32
  158. package/assets/image-editor/images/stickers/beach/8.svg +28 -28
  159. package/assets/image-editor/images/stickers/beach/9.svg +18 -18
  160. package/assets/image-editor/images/stickers/bubbles/0.png +0 -0
  161. package/assets/image-editor/images/stickers/bubbles/1.png +0 -0
  162. package/assets/image-editor/images/stickers/bubbles/10.png +0 -0
  163. package/assets/image-editor/images/stickers/bubbles/100.png +0 -0
  164. package/assets/image-editor/images/stickers/bubbles/101.png +0 -0
  165. package/assets/image-editor/images/stickers/bubbles/102.png +0 -0
  166. package/assets/image-editor/images/stickers/bubbles/103.png +0 -0
  167. package/assets/image-editor/images/stickers/bubbles/105.png +0 -0
  168. package/assets/image-editor/images/stickers/bubbles/11.png +0 -0
  169. package/assets/image-editor/images/stickers/bubbles/12.png +0 -0
  170. package/assets/image-editor/images/stickers/bubbles/13.png +0 -0
  171. package/assets/image-editor/images/stickers/bubbles/14.png +0 -0
  172. package/assets/image-editor/images/stickers/bubbles/15.png +0 -0
  173. package/assets/image-editor/images/stickers/bubbles/16.png +0 -0
  174. package/assets/image-editor/images/stickers/bubbles/17.png +0 -0
  175. package/assets/image-editor/images/stickers/bubbles/18.png +0 -0
  176. package/assets/image-editor/images/stickers/bubbles/19.png +0 -0
  177. package/assets/image-editor/images/stickers/bubbles/2.png +0 -0
  178. package/assets/image-editor/images/stickers/bubbles/20.png +0 -0
  179. package/assets/image-editor/images/stickers/bubbles/21.png +0 -0
  180. package/assets/image-editor/images/stickers/bubbles/22.png +0 -0
  181. package/assets/image-editor/images/stickers/bubbles/23.png +0 -0
  182. package/assets/image-editor/images/stickers/bubbles/24.png +0 -0
  183. package/assets/image-editor/images/stickers/bubbles/25.png +0 -0
  184. package/assets/image-editor/images/stickers/bubbles/26.png +0 -0
  185. package/assets/image-editor/images/stickers/bubbles/27.png +0 -0
  186. package/assets/image-editor/images/stickers/bubbles/28.png +0 -0
  187. package/assets/image-editor/images/stickers/bubbles/29.png +0 -0
  188. package/assets/image-editor/images/stickers/bubbles/3.png +0 -0
  189. package/assets/image-editor/images/stickers/bubbles/30.png +0 -0
  190. package/assets/image-editor/images/stickers/bubbles/31.png +0 -0
  191. package/assets/image-editor/images/stickers/bubbles/32.png +0 -0
  192. package/assets/image-editor/images/stickers/bubbles/33.png +0 -0
  193. package/assets/image-editor/images/stickers/bubbles/34.png +0 -0
  194. package/assets/image-editor/images/stickers/bubbles/35.png +0 -0
  195. package/assets/image-editor/images/stickers/bubbles/36.png +0 -0
  196. package/assets/image-editor/images/stickers/bubbles/37.png +0 -0
  197. package/assets/image-editor/images/stickers/bubbles/38.png +0 -0
  198. package/assets/image-editor/images/stickers/bubbles/39.png +0 -0
  199. package/assets/image-editor/images/stickers/bubbles/4.png +0 -0
  200. package/assets/image-editor/images/stickers/bubbles/40.png +0 -0
  201. package/assets/image-editor/images/stickers/bubbles/41.png +0 -0
  202. package/assets/image-editor/images/stickers/bubbles/42.png +0 -0
  203. package/assets/image-editor/images/stickers/bubbles/43.png +0 -0
  204. package/assets/image-editor/images/stickers/bubbles/44.png +0 -0
  205. package/assets/image-editor/images/stickers/bubbles/45.png +0 -0
  206. package/assets/image-editor/images/stickers/bubbles/46.png +0 -0
  207. package/assets/image-editor/images/stickers/bubbles/47.png +0 -0
  208. package/assets/image-editor/images/stickers/bubbles/48.png +0 -0
  209. package/assets/image-editor/images/stickers/bubbles/49.png +0 -0
  210. package/assets/image-editor/images/stickers/bubbles/5.png +0 -0
  211. package/assets/image-editor/images/stickers/bubbles/50.png +0 -0
  212. package/assets/image-editor/images/stickers/bubbles/51.png +0 -0
  213. package/assets/image-editor/images/stickers/bubbles/52.png +0 -0
  214. package/assets/image-editor/images/stickers/bubbles/53.png +0 -0
  215. package/assets/image-editor/images/stickers/bubbles/54.png +0 -0
  216. package/assets/image-editor/images/stickers/bubbles/55.png +0 -0
  217. package/assets/image-editor/images/stickers/bubbles/56.png +0 -0
  218. package/assets/image-editor/images/stickers/bubbles/57.png +0 -0
  219. package/assets/image-editor/images/stickers/bubbles/58.png +0 -0
  220. package/assets/image-editor/images/stickers/bubbles/59.png +0 -0
  221. package/assets/image-editor/images/stickers/bubbles/6.png +0 -0
  222. package/assets/image-editor/images/stickers/bubbles/60.png +0 -0
  223. package/assets/image-editor/images/stickers/bubbles/61.png +0 -0
  224. package/assets/image-editor/images/stickers/bubbles/62.png +0 -0
  225. package/assets/image-editor/images/stickers/bubbles/63.png +0 -0
  226. package/assets/image-editor/images/stickers/bubbles/64.png +0 -0
  227. package/assets/image-editor/images/stickers/bubbles/65.png +0 -0
  228. package/assets/image-editor/images/stickers/bubbles/66.png +0 -0
  229. package/assets/image-editor/images/stickers/bubbles/67.png +0 -0
  230. package/assets/image-editor/images/stickers/bubbles/68.png +0 -0
  231. package/assets/image-editor/images/stickers/bubbles/69.png +0 -0
  232. package/assets/image-editor/images/stickers/bubbles/7.png +0 -0
  233. package/assets/image-editor/images/stickers/bubbles/70.png +0 -0
  234. package/assets/image-editor/images/stickers/bubbles/71.png +0 -0
  235. package/assets/image-editor/images/stickers/bubbles/72.png +0 -0
  236. package/assets/image-editor/images/stickers/bubbles/73.png +0 -0
  237. package/assets/image-editor/images/stickers/bubbles/74.png +0 -0
  238. package/assets/image-editor/images/stickers/bubbles/75.png +0 -0
  239. package/assets/image-editor/images/stickers/bubbles/76.png +0 -0
  240. package/assets/image-editor/images/stickers/bubbles/77.png +0 -0
  241. package/assets/image-editor/images/stickers/bubbles/78.png +0 -0
  242. package/assets/image-editor/images/stickers/bubbles/79.png +0 -0
  243. package/assets/image-editor/images/stickers/bubbles/8.png +0 -0
  244. package/assets/image-editor/images/stickers/bubbles/80.png +0 -0
  245. package/assets/image-editor/images/stickers/bubbles/81.png +0 -0
  246. package/assets/image-editor/images/stickers/bubbles/82.png +0 -0
  247. package/assets/image-editor/images/stickers/bubbles/83.png +0 -0
  248. package/assets/image-editor/images/stickers/bubbles/84.png +0 -0
  249. package/assets/image-editor/images/stickers/bubbles/85.png +0 -0
  250. package/assets/image-editor/images/stickers/bubbles/86.png +0 -0
  251. package/assets/image-editor/images/stickers/bubbles/87.png +0 -0
  252. package/assets/image-editor/images/stickers/bubbles/88.png +0 -0
  253. package/assets/image-editor/images/stickers/bubbles/89.png +0 -0
  254. package/assets/image-editor/images/stickers/bubbles/9.png +0 -0
  255. package/assets/image-editor/images/stickers/bubbles/90.png +0 -0
  256. package/assets/image-editor/images/stickers/bubbles/91.png +0 -0
  257. package/assets/image-editor/images/stickers/bubbles/92.png +0 -0
  258. package/assets/image-editor/images/stickers/bubbles/93.png +0 -0
  259. package/assets/image-editor/images/stickers/bubbles/94.png +0 -0
  260. package/assets/image-editor/images/stickers/bubbles/95.png +0 -0
  261. package/assets/image-editor/images/stickers/bubbles/96.png +0 -0
  262. package/assets/image-editor/images/stickers/bubbles/97.png +0 -0
  263. package/assets/image-editor/images/stickers/bubbles/98.png +0 -0
  264. package/assets/image-editor/images/stickers/bubbles/99.png +0 -0
  265. package/assets/image-editor/images/stickers/categories/beach.svg +17 -17
  266. package/assets/image-editor/images/stickers/categories/clouds.svg +14 -14
  267. package/assets/image-editor/images/stickers/categories/doodles.svg +12 -12
  268. package/assets/image-editor/images/stickers/categories/emoticon.svg +9 -9
  269. package/assets/image-editor/images/stickers/categories/landmark.svg +19 -19
  270. package/assets/image-editor/images/stickers/categories/speech-bubble.svg +5 -5
  271. package/assets/image-editor/images/stickers/categories/star.svg +5 -5
  272. package/assets/image-editor/images/stickers/categories/transportation.svg +17 -17
  273. package/assets/image-editor/images/stickers/clouds/0.png +0 -0
  274. package/assets/image-editor/images/stickers/clouds/1.png +0 -0
  275. package/assets/image-editor/images/stickers/clouds/10.png +0 -0
  276. package/assets/image-editor/images/stickers/clouds/11.png +0 -0
  277. package/assets/image-editor/images/stickers/clouds/12.png +0 -0
  278. package/assets/image-editor/images/stickers/clouds/13.png +0 -0
  279. package/assets/image-editor/images/stickers/clouds/14.png +0 -0
  280. package/assets/image-editor/images/stickers/clouds/2.png +0 -0
  281. package/assets/image-editor/images/stickers/clouds/3.png +0 -0
  282. package/assets/image-editor/images/stickers/clouds/4.png +0 -0
  283. package/assets/image-editor/images/stickers/clouds/5.png +0 -0
  284. package/assets/image-editor/images/stickers/clouds/6.png +0 -0
  285. package/assets/image-editor/images/stickers/clouds/7.png +0 -0
  286. package/assets/image-editor/images/stickers/clouds/8.png +0 -0
  287. package/assets/image-editor/images/stickers/clouds/9.png +0 -0
  288. package/assets/image-editor/images/stickers/doodles/0.svg +201 -201
  289. package/assets/image-editor/images/stickers/doodles/1.svg +255 -255
  290. package/assets/image-editor/images/stickers/doodles/10.svg +160 -160
  291. package/assets/image-editor/images/stickers/doodles/11.svg +393 -393
  292. package/assets/image-editor/images/stickers/doodles/12.svg +293 -293
  293. package/assets/image-editor/images/stickers/doodles/13.svg +251 -251
  294. package/assets/image-editor/images/stickers/doodles/14.svg +370 -370
  295. package/assets/image-editor/images/stickers/doodles/15.svg +194 -194
  296. package/assets/image-editor/images/stickers/doodles/16.svg +383 -383
  297. package/assets/image-editor/images/stickers/doodles/17.svg +346 -346
  298. package/assets/image-editor/images/stickers/doodles/18.svg +286 -286
  299. package/assets/image-editor/images/stickers/doodles/19.svg +241 -241
  300. package/assets/image-editor/images/stickers/doodles/2.svg +227 -227
  301. package/assets/image-editor/images/stickers/doodles/20.svg +330 -330
  302. package/assets/image-editor/images/stickers/doodles/21.svg +200 -200
  303. package/assets/image-editor/images/stickers/doodles/22.svg +308 -308
  304. package/assets/image-editor/images/stickers/doodles/23.svg +518 -518
  305. package/assets/image-editor/images/stickers/doodles/24.svg +207 -207
  306. package/assets/image-editor/images/stickers/doodles/25.svg +260 -260
  307. package/assets/image-editor/images/stickers/doodles/26.svg +380 -380
  308. package/assets/image-editor/images/stickers/doodles/27.svg +222 -222
  309. package/assets/image-editor/images/stickers/doodles/28.svg +164 -164
  310. package/assets/image-editor/images/stickers/doodles/29.svg +271 -271
  311. package/assets/image-editor/images/stickers/doodles/3.svg +272 -272
  312. package/assets/image-editor/images/stickers/doodles/30.svg +283 -283
  313. package/assets/image-editor/images/stickers/doodles/31.svg +257 -257
  314. package/assets/image-editor/images/stickers/doodles/32.svg +276 -276
  315. package/assets/image-editor/images/stickers/doodles/33.svg +198 -198
  316. package/assets/image-editor/images/stickers/doodles/34.svg +314 -314
  317. package/assets/image-editor/images/stickers/doodles/35.svg +236 -236
  318. package/assets/image-editor/images/stickers/doodles/36.svg +273 -273
  319. package/assets/image-editor/images/stickers/doodles/37.svg +284 -284
  320. package/assets/image-editor/images/stickers/doodles/38.svg +167 -167
  321. package/assets/image-editor/images/stickers/doodles/39.svg +381 -381
  322. package/assets/image-editor/images/stickers/doodles/4.svg +216 -216
  323. package/assets/image-editor/images/stickers/doodles/40.svg +198 -198
  324. package/assets/image-editor/images/stickers/doodles/41.svg +259 -259
  325. package/assets/image-editor/images/stickers/doodles/42.svg +371 -371
  326. package/assets/image-editor/images/stickers/doodles/43.svg +198 -198
  327. package/assets/image-editor/images/stickers/doodles/44.svg +174 -174
  328. package/assets/image-editor/images/stickers/doodles/45.svg +178 -178
  329. package/assets/image-editor/images/stickers/doodles/46.svg +211 -211
  330. package/assets/image-editor/images/stickers/doodles/47.svg +195 -195
  331. package/assets/image-editor/images/stickers/doodles/48.svg +293 -293
  332. package/assets/image-editor/images/stickers/doodles/49.svg +191 -191
  333. package/assets/image-editor/images/stickers/doodles/5.svg +179 -179
  334. package/assets/image-editor/images/stickers/doodles/50.svg +323 -323
  335. package/assets/image-editor/images/stickers/doodles/51.svg +308 -308
  336. package/assets/image-editor/images/stickers/doodles/52.svg +162 -162
  337. package/assets/image-editor/images/stickers/doodles/53.svg +263 -263
  338. package/assets/image-editor/images/stickers/doodles/54.svg +175 -175
  339. package/assets/image-editor/images/stickers/doodles/55.svg +177 -177
  340. package/assets/image-editor/images/stickers/doodles/56.svg +160 -160
  341. package/assets/image-editor/images/stickers/doodles/57.svg +115 -115
  342. package/assets/image-editor/images/stickers/doodles/58.svg +327 -327
  343. package/assets/image-editor/images/stickers/doodles/59.svg +197 -197
  344. package/assets/image-editor/images/stickers/doodles/6.svg +388 -388
  345. package/assets/image-editor/images/stickers/doodles/60.svg +414 -414
  346. package/assets/image-editor/images/stickers/doodles/61.svg +287 -287
  347. package/assets/image-editor/images/stickers/doodles/62.svg +193 -193
  348. package/assets/image-editor/images/stickers/doodles/63.svg +329 -329
  349. package/assets/image-editor/images/stickers/doodles/64.svg +150 -150
  350. package/assets/image-editor/images/stickers/doodles/65.svg +275 -275
  351. package/assets/image-editor/images/stickers/doodles/66.svg +174 -174
  352. package/assets/image-editor/images/stickers/doodles/67.svg +343 -343
  353. package/assets/image-editor/images/stickers/doodles/68.svg +242 -242
  354. package/assets/image-editor/images/stickers/doodles/69.svg +160 -160
  355. package/assets/image-editor/images/stickers/doodles/7.svg +194 -194
  356. package/assets/image-editor/images/stickers/doodles/70.svg +365 -365
  357. package/assets/image-editor/images/stickers/doodles/71.svg +454 -454
  358. package/assets/image-editor/images/stickers/doodles/72.svg +162 -162
  359. package/assets/image-editor/images/stickers/doodles/73.svg +393 -393
  360. package/assets/image-editor/images/stickers/doodles/74.svg +206 -206
  361. package/assets/image-editor/images/stickers/doodles/75.svg +275 -275
  362. package/assets/image-editor/images/stickers/doodles/76.svg +350 -350
  363. package/assets/image-editor/images/stickers/doodles/77.svg +323 -323
  364. package/assets/image-editor/images/stickers/doodles/78.svg +316 -316
  365. package/assets/image-editor/images/stickers/doodles/79.svg +503 -503
  366. package/assets/image-editor/images/stickers/doodles/8.svg +185 -185
  367. package/assets/image-editor/images/stickers/doodles/80.svg +235 -235
  368. package/assets/image-editor/images/stickers/doodles/81.svg +184 -184
  369. package/assets/image-editor/images/stickers/doodles/82.svg +246 -246
  370. package/assets/image-editor/images/stickers/doodles/83.svg +125 -125
  371. package/assets/image-editor/images/stickers/doodles/84.svg +168 -168
  372. package/assets/image-editor/images/stickers/doodles/85.svg +138 -138
  373. package/assets/image-editor/images/stickers/doodles/86.svg +223 -223
  374. package/assets/image-editor/images/stickers/doodles/87.svg +475 -475
  375. package/assets/image-editor/images/stickers/doodles/88.svg +172 -172
  376. package/assets/image-editor/images/stickers/doodles/89.svg +199 -199
  377. package/assets/image-editor/images/stickers/doodles/9.svg +368 -368
  378. package/assets/image-editor/images/stickers/doodles/90.svg +298 -298
  379. package/assets/image-editor/images/stickers/doodles/91.svg +176 -176
  380. package/assets/image-editor/images/stickers/doodles/92.svg +152 -152
  381. package/assets/image-editor/images/stickers/doodles/93.svg +206 -206
  382. package/assets/image-editor/images/stickers/doodles/94.svg +202 -202
  383. package/assets/image-editor/images/stickers/doodles/95.svg +114 -114
  384. package/assets/image-editor/images/stickers/doodles/96.svg +149 -149
  385. package/assets/image-editor/images/stickers/doodles/97.svg +197 -197
  386. package/assets/image-editor/images/stickers/doodles/98.svg +397 -397
  387. package/assets/image-editor/images/stickers/doodles/99.svg +502 -502
  388. package/assets/image-editor/images/stickers/emoticons/afro-1.svg +122 -122
  389. package/assets/image-editor/images/stickers/emoticons/afro.svg +85 -85
  390. package/assets/image-editor/images/stickers/emoticons/agent.svg +114 -114
  391. package/assets/image-editor/images/stickers/emoticons/alien-1.svg +60 -60
  392. package/assets/image-editor/images/stickers/emoticons/alien.svg +64 -64
  393. package/assets/image-editor/images/stickers/emoticons/angel.svg +47 -47
  394. package/assets/image-editor/images/stickers/emoticons/angry-1.svg +83 -83
  395. package/assets/image-editor/images/stickers/emoticons/angry-2.svg +48 -48
  396. package/assets/image-editor/images/stickers/emoticons/angry-3.svg +45 -45
  397. package/assets/image-editor/images/stickers/emoticons/angry-4.svg +52 -52
  398. package/assets/image-editor/images/stickers/emoticons/angry-5.svg +62 -62
  399. package/assets/image-editor/images/stickers/emoticons/angry.svg +78 -78
  400. package/assets/image-editor/images/stickers/emoticons/arguing.svg +49 -49
  401. package/assets/image-editor/images/stickers/emoticons/arrogant.svg +98 -98
  402. package/assets/image-editor/images/stickers/emoticons/asian-1.svg +52 -52
  403. package/assets/image-editor/images/stickers/emoticons/asian.svg +54 -54
  404. package/assets/image-editor/images/stickers/emoticons/avatar.svg +49 -49
  405. package/assets/image-editor/images/stickers/emoticons/baby-1.svg +51 -51
  406. package/assets/image-editor/images/stickers/emoticons/baby-2.svg +54 -54
  407. package/assets/image-editor/images/stickers/emoticons/baby.svg +66 -66
  408. package/assets/image-editor/images/stickers/emoticons/bully.svg +68 -68
  409. package/assets/image-editor/images/stickers/emoticons/burglar.svg +75 -75
  410. package/assets/image-editor/images/stickers/emoticons/businessman.svg +52 -52
  411. package/assets/image-editor/images/stickers/emoticons/cheeky-1.svg +83 -83
  412. package/assets/image-editor/images/stickers/emoticons/cheeky.svg +73 -73
  413. package/assets/image-editor/images/stickers/emoticons/clown.svg +75 -75
  414. package/assets/image-editor/images/stickers/emoticons/confused-1.svg +74 -74
  415. package/assets/image-editor/images/stickers/emoticons/confused-2.svg +55 -55
  416. package/assets/image-editor/images/stickers/emoticons/confused-3.svg +45 -45
  417. package/assets/image-editor/images/stickers/emoticons/confused.svg +66 -66
  418. package/assets/image-editor/images/stickers/emoticons/creepy.svg +60 -60
  419. package/assets/image-editor/images/stickers/emoticons/crying-1.svg +55 -55
  420. package/assets/image-editor/images/stickers/emoticons/crying-2.svg +83 -83
  421. package/assets/image-editor/images/stickers/emoticons/crying-3.svg +53 -53
  422. package/assets/image-editor/images/stickers/emoticons/crying.svg +59 -59
  423. package/assets/image-editor/images/stickers/emoticons/dazed-1.svg +63 -63
  424. package/assets/image-editor/images/stickers/emoticons/dazed-2.svg +51 -51
  425. package/assets/image-editor/images/stickers/emoticons/dazed-3.svg +55 -55
  426. package/assets/image-editor/images/stickers/emoticons/dazed.svg +56 -56
  427. package/assets/image-editor/images/stickers/emoticons/dead-1.svg +61 -61
  428. package/assets/image-editor/images/stickers/emoticons/dead-2.svg +80 -80
  429. package/assets/image-editor/images/stickers/emoticons/dead-3.svg +66 -66
  430. package/assets/image-editor/images/stickers/emoticons/dead-4.svg +54 -54
  431. package/assets/image-editor/images/stickers/emoticons/dead-5.svg +52 -52
  432. package/assets/image-editor/images/stickers/emoticons/dead-6.svg +53 -53
  433. package/assets/image-editor/images/stickers/emoticons/dead.svg +54 -54
  434. package/assets/image-editor/images/stickers/emoticons/desperate-1.svg +47 -47
  435. package/assets/image-editor/images/stickers/emoticons/desperate.svg +75 -75
  436. package/assets/image-editor/images/stickers/emoticons/detective.svg +75 -75
  437. package/assets/image-editor/images/stickers/emoticons/dissapointment.svg +70 -70
  438. package/assets/image-editor/images/stickers/emoticons/doctor.svg +61 -61
  439. package/assets/image-editor/images/stickers/emoticons/drunk.svg +55 -55
  440. package/assets/image-editor/images/stickers/emoticons/dumb.svg +50 -50
  441. package/assets/image-editor/images/stickers/emoticons/emo-1.svg +104 -104
  442. package/assets/image-editor/images/stickers/emoticons/emo-2.svg +111 -111
  443. package/assets/image-editor/images/stickers/emoticons/emo.svg +56 -56
  444. package/assets/image-editor/images/stickers/emoticons/emoticon.svg +84 -84
  445. package/assets/image-editor/images/stickers/emoticons/evil.svg +59 -59
  446. package/assets/image-editor/images/stickers/emoticons/faint-1.svg +75 -75
  447. package/assets/image-editor/images/stickers/emoticons/faint.svg +84 -84
  448. package/assets/image-editor/images/stickers/emoticons/flirt-1.svg +81 -81
  449. package/assets/image-editor/images/stickers/emoticons/flirt-2.svg +68 -68
  450. package/assets/image-editor/images/stickers/emoticons/flirt.svg +71 -71
  451. package/assets/image-editor/images/stickers/emoticons/flirty.svg +60 -60
  452. package/assets/image-editor/images/stickers/emoticons/gangster.svg +54 -54
  453. package/assets/image-editor/images/stickers/emoticons/geek-1.svg +76 -76
  454. package/assets/image-editor/images/stickers/emoticons/geek.svg +69 -69
  455. package/assets/image-editor/images/stickers/emoticons/gentleman-1.svg +82 -82
  456. package/assets/image-editor/images/stickers/emoticons/gentleman-2.svg +58 -58
  457. package/assets/image-editor/images/stickers/emoticons/gentleman-3.svg +54 -54
  458. package/assets/image-editor/images/stickers/emoticons/gentleman-4.svg +59 -59
  459. package/assets/image-editor/images/stickers/emoticons/gentleman.svg +57 -57
  460. package/assets/image-editor/images/stickers/emoticons/ginger.svg +55 -55
  461. package/assets/image-editor/images/stickers/emoticons/girl-1.svg +70 -70
  462. package/assets/image-editor/images/stickers/emoticons/girl.svg +73 -73
  463. package/assets/image-editor/images/stickers/emoticons/goofy-1.svg +46 -46
  464. package/assets/image-editor/images/stickers/emoticons/goofy-2.svg +79 -79
  465. package/assets/image-editor/images/stickers/emoticons/goofy-3.svg +79 -79
  466. package/assets/image-editor/images/stickers/emoticons/goofy-4.svg +46 -46
  467. package/assets/image-editor/images/stickers/emoticons/goofy.svg +79 -79
  468. package/assets/image-editor/images/stickers/emoticons/grubby-1.svg +114 -114
  469. package/assets/image-editor/images/stickers/emoticons/grubby.svg +165 -165
  470. package/assets/image-editor/images/stickers/emoticons/happy-1.svg +49 -49
  471. package/assets/image-editor/images/stickers/emoticons/happy-10.svg +62 -62
  472. package/assets/image-editor/images/stickers/emoticons/happy-11.svg +55 -55
  473. package/assets/image-editor/images/stickers/emoticons/happy-12.svg +53 -53
  474. package/assets/image-editor/images/stickers/emoticons/happy-13.svg +58 -58
  475. package/assets/image-editor/images/stickers/emoticons/happy-14.svg +62 -62
  476. package/assets/image-editor/images/stickers/emoticons/happy-15.svg +49 -49
  477. package/assets/image-editor/images/stickers/emoticons/happy-16.svg +49 -49
  478. package/assets/image-editor/images/stickers/emoticons/happy-2.svg +71 -71
  479. package/assets/image-editor/images/stickers/emoticons/happy-3.svg +74 -74
  480. package/assets/image-editor/images/stickers/emoticons/happy-4.svg +77 -77
  481. package/assets/image-editor/images/stickers/emoticons/happy-5.svg +52 -52
  482. package/assets/image-editor/images/stickers/emoticons/happy-6.svg +54 -54
  483. package/assets/image-editor/images/stickers/emoticons/happy-7.svg +58 -58
  484. package/assets/image-editor/images/stickers/emoticons/happy-8.svg +42 -42
  485. package/assets/image-editor/images/stickers/emoticons/happy-9.svg +45 -45
  486. package/assets/image-editor/images/stickers/emoticons/happy.svg +48 -48
  487. package/assets/image-editor/images/stickers/emoticons/harry-potter.svg +68 -68
  488. package/assets/image-editor/images/stickers/emoticons/heisenberg.svg +80 -80
  489. package/assets/image-editor/images/stickers/emoticons/hipster-1.svg +118 -118
  490. package/assets/image-editor/images/stickers/emoticons/hipster-2.svg +49 -49
  491. package/assets/image-editor/images/stickers/emoticons/hipster.svg +48 -48
  492. package/assets/image-editor/images/stickers/emoticons/in-love-1.svg +62 -62
  493. package/assets/image-editor/images/stickers/emoticons/in-love-2.svg +48 -48
  494. package/assets/image-editor/images/stickers/emoticons/in-love-3.svg +49 -49
  495. package/assets/image-editor/images/stickers/emoticons/in-love-4.svg +50 -50
  496. package/assets/image-editor/images/stickers/emoticons/in-love-5.svg +49 -49
  497. package/assets/image-editor/images/stickers/emoticons/in-love-6.svg +53 -53
  498. package/assets/image-editor/images/stickers/emoticons/in-love.svg +57 -57
  499. package/assets/image-editor/images/stickers/emoticons/japan.svg +79 -79
  500. package/assets/image-editor/images/stickers/emoticons/jew.svg +83 -83
  501. package/assets/image-editor/images/stickers/emoticons/joyful-1.svg +72 -72
  502. package/assets/image-editor/images/stickers/emoticons/joyful-2.svg +45 -45
  503. package/assets/image-editor/images/stickers/emoticons/joyful.svg +47 -47
  504. package/assets/image-editor/images/stickers/emoticons/kiss-1.svg +48 -48
  505. package/assets/image-editor/images/stickers/emoticons/kiss-2.svg +59 -59
  506. package/assets/image-editor/images/stickers/emoticons/kiss-3.svg +53 -53
  507. package/assets/image-editor/images/stickers/emoticons/kiss-4.svg +59 -59
  508. package/assets/image-editor/images/stickers/emoticons/kiss.svg +67 -67
  509. package/assets/image-editor/images/stickers/emoticons/laughing-1.svg +54 -54
  510. package/assets/image-editor/images/stickers/emoticons/laughing-2.svg +57 -57
  511. package/assets/image-editor/images/stickers/emoticons/laughing-3.svg +55 -55
  512. package/assets/image-editor/images/stickers/emoticons/laughing.svg +56 -56
  513. package/assets/image-editor/images/stickers/emoticons/listening.svg +55 -55
  514. package/assets/image-editor/images/stickers/emoticons/love.svg +74 -74
  515. package/assets/image-editor/images/stickers/emoticons/manly.svg +75 -75
  516. package/assets/image-editor/images/stickers/emoticons/miserly-1.svg +90 -90
  517. package/assets/image-editor/images/stickers/emoticons/miserly.svg +82 -82
  518. package/assets/image-editor/images/stickers/emoticons/nerd-1.svg +88 -88
  519. package/assets/image-editor/images/stickers/emoticons/nerd-2.svg +73 -73
  520. package/assets/image-editor/images/stickers/emoticons/nerd-3.svg +60 -60
  521. package/assets/image-editor/images/stickers/emoticons/nerd-4.svg +70 -70
  522. package/assets/image-editor/images/stickers/emoticons/nerd.svg +88 -88
  523. package/assets/image-editor/images/stickers/emoticons/ninja.svg +51 -51
  524. package/assets/image-editor/images/stickers/emoticons/pirate-1.svg +92 -92
  525. package/assets/image-editor/images/stickers/emoticons/pirate-2.svg +48 -48
  526. package/assets/image-editor/images/stickers/emoticons/pirate.svg +286 -286
  527. package/assets/image-editor/images/stickers/emoticons/punk-1.svg +134 -134
  528. package/assets/image-editor/images/stickers/emoticons/punk-2.svg +153 -153
  529. package/assets/image-editor/images/stickers/emoticons/punk.svg +82 -82
  530. package/assets/image-editor/images/stickers/emoticons/rapper.svg +51 -51
  531. package/assets/image-editor/images/stickers/emoticons/relieved.svg +56 -56
  532. package/assets/image-editor/images/stickers/emoticons/rich-1.svg +59 -59
  533. package/assets/image-editor/images/stickers/emoticons/rich-2.svg +93 -93
  534. package/assets/image-editor/images/stickers/emoticons/rich.svg +88 -88
  535. package/assets/image-editor/images/stickers/emoticons/rockstar.svg +177 -177
  536. package/assets/image-editor/images/stickers/emoticons/sad-1.svg +43 -43
  537. package/assets/image-editor/images/stickers/emoticons/sad-2.svg +49 -49
  538. package/assets/image-editor/images/stickers/emoticons/sad-3.svg +49 -49
  539. package/assets/image-editor/images/stickers/emoticons/sad-4.svg +49 -49
  540. package/assets/image-editor/images/stickers/emoticons/sad-5.svg +45 -45
  541. package/assets/image-editor/images/stickers/emoticons/sad-6.svg +47 -47
  542. package/assets/image-editor/images/stickers/emoticons/sad.svg +47 -47
  543. package/assets/image-editor/images/stickers/emoticons/scared-1.svg +79 -79
  544. package/assets/image-editor/images/stickers/emoticons/scared-2.svg +59 -59
  545. package/assets/image-editor/images/stickers/emoticons/scared-3.svg +52 -52
  546. package/assets/image-editor/images/stickers/emoticons/scared.svg +45 -45
  547. package/assets/image-editor/images/stickers/emoticons/sceptic-1.svg +59 -59
  548. package/assets/image-editor/images/stickers/emoticons/sceptic-2.svg +80 -80
  549. package/assets/image-editor/images/stickers/emoticons/sceptic-3.svg +59 -59
  550. package/assets/image-editor/images/stickers/emoticons/sceptic-4.svg +46 -46
  551. package/assets/image-editor/images/stickers/emoticons/sceptic-5.svg +43 -43
  552. package/assets/image-editor/images/stickers/emoticons/sceptic-6.svg +42 -42
  553. package/assets/image-editor/images/stickers/emoticons/sceptic-7.svg +50 -50
  554. package/assets/image-editor/images/stickers/emoticons/sceptic.svg +44 -44
  555. package/assets/image-editor/images/stickers/emoticons/secret.svg +48 -48
  556. package/assets/image-editor/images/stickers/emoticons/shocked-1.svg +67 -67
  557. package/assets/image-editor/images/stickers/emoticons/shocked-2.svg +44 -44
  558. package/assets/image-editor/images/stickers/emoticons/shocked-3.svg +48 -48
  559. package/assets/image-editor/images/stickers/emoticons/shocked.svg +46 -46
  560. package/assets/image-editor/images/stickers/emoticons/sick-1.svg +55 -55
  561. package/assets/image-editor/images/stickers/emoticons/sick-2.svg +48 -48
  562. package/assets/image-editor/images/stickers/emoticons/sick-3.svg +49 -49
  563. package/assets/image-editor/images/stickers/emoticons/sick-4.svg +52 -52
  564. package/assets/image-editor/images/stickers/emoticons/sick.svg +52 -52
  565. package/assets/image-editor/images/stickers/emoticons/silent.svg +43 -43
  566. package/assets/image-editor/images/stickers/emoticons/skeleton.svg +64 -64
  567. package/assets/image-editor/images/stickers/emoticons/smile.svg +43 -43
  568. package/assets/image-editor/images/stickers/emoticons/smiling-1.svg +47 -47
  569. package/assets/image-editor/images/stickers/emoticons/smiling.svg +75 -75
  570. package/assets/image-editor/images/stickers/emoticons/smoked.svg +131 -131
  571. package/assets/image-editor/images/stickers/emoticons/smug-1.svg +74 -74
  572. package/assets/image-editor/images/stickers/emoticons/smug-2.svg +82 -82
  573. package/assets/image-editor/images/stickers/emoticons/smug-3.svg +71 -71
  574. package/assets/image-editor/images/stickers/emoticons/smug-4.svg +50 -50
  575. package/assets/image-editor/images/stickers/emoticons/smug-5.svg +64 -64
  576. package/assets/image-editor/images/stickers/emoticons/smug-6.svg +82 -82
  577. package/assets/image-editor/images/stickers/emoticons/smug.svg +96 -96
  578. package/assets/image-editor/images/stickers/emoticons/sporty.svg +68 -68
  579. package/assets/image-editor/images/stickers/emoticons/stunned.svg +72 -72
  580. package/assets/image-editor/images/stickers/emoticons/superhero-1.svg +60 -60
  581. package/assets/image-editor/images/stickers/emoticons/superhero-2.svg +47 -47
  582. package/assets/image-editor/images/stickers/emoticons/superhero-3.svg +48 -48
  583. package/assets/image-editor/images/stickers/emoticons/superhero-4.svg +52 -52
  584. package/assets/image-editor/images/stickers/emoticons/superhero.svg +45 -45
  585. package/assets/image-editor/images/stickers/emoticons/surprised-1.svg +47 -47
  586. package/assets/image-editor/images/stickers/emoticons/surprised.svg +58 -58
  587. package/assets/image-editor/images/stickers/emoticons/thinking.svg +43 -43
  588. package/assets/image-editor/images/stickers/emoticons/tired-1.svg +78 -78
  589. package/assets/image-editor/images/stickers/emoticons/tired-2.svg +65 -65
  590. package/assets/image-editor/images/stickers/emoticons/tired-3.svg +59 -59
  591. package/assets/image-editor/images/stickers/emoticons/tired.svg +83 -83
  592. package/assets/image-editor/images/stickers/emoticons/tough-1.svg +65 -65
  593. package/assets/image-editor/images/stickers/emoticons/tough.svg +158 -158
  594. package/assets/image-editor/images/stickers/emoticons/trendy.svg +57 -57
  595. package/assets/image-editor/images/stickers/emoticons/vampire-1.svg +56 -56
  596. package/assets/image-editor/images/stickers/emoticons/vampire.svg +59 -59
  597. package/assets/image-editor/images/stickers/emoticons/wink-1.svg +54 -54
  598. package/assets/image-editor/images/stickers/emoticons/wink-2.svg +64 -64
  599. package/assets/image-editor/images/stickers/emoticons/wink.svg +73 -73
  600. package/assets/image-editor/images/stickers/emoticons/winking-1.svg +52 -52
  601. package/assets/image-editor/images/stickers/emoticons/winking.svg +43 -43
  602. package/assets/image-editor/images/stickers/emoticons/yawning-1.svg +62 -62
  603. package/assets/image-editor/images/stickers/emoticons/yawning-2.svg +51 -51
  604. package/assets/image-editor/images/stickers/emoticons/yawning-3.svg +51 -51
  605. package/assets/image-editor/images/stickers/emoticons/yawning.svg +73 -73
  606. package/assets/image-editor/images/stickers/emoticons/yelling.svg +80 -80
  607. package/assets/image-editor/images/stickers/emoticons/zombie.svg +65 -65
  608. package/assets/image-editor/images/stickers/landmarks/0.svg +38 -38
  609. package/assets/image-editor/images/stickers/landmarks/1.svg +46 -46
  610. package/assets/image-editor/images/stickers/landmarks/10.svg +18 -18
  611. package/assets/image-editor/images/stickers/landmarks/11.svg +81 -81
  612. package/assets/image-editor/images/stickers/landmarks/12.svg +77 -77
  613. package/assets/image-editor/images/stickers/landmarks/13.svg +42 -42
  614. package/assets/image-editor/images/stickers/landmarks/14.svg +78 -78
  615. package/assets/image-editor/images/stickers/landmarks/15.svg +84 -84
  616. package/assets/image-editor/images/stickers/landmarks/16.svg +87 -87
  617. package/assets/image-editor/images/stickers/landmarks/17.svg +60 -60
  618. package/assets/image-editor/images/stickers/landmarks/18.svg +30 -30
  619. package/assets/image-editor/images/stickers/landmarks/19.svg +36 -36
  620. package/assets/image-editor/images/stickers/landmarks/2.svg +28 -28
  621. package/assets/image-editor/images/stickers/landmarks/20.svg +137 -137
  622. package/assets/image-editor/images/stickers/landmarks/21.svg +63 -63
  623. package/assets/image-editor/images/stickers/landmarks/22.svg +26 -26
  624. package/assets/image-editor/images/stickers/landmarks/23.svg +52 -52
  625. package/assets/image-editor/images/stickers/landmarks/24.svg +56 -56
  626. package/assets/image-editor/images/stickers/landmarks/25.svg +40 -40
  627. package/assets/image-editor/images/stickers/landmarks/26.svg +34 -34
  628. package/assets/image-editor/images/stickers/landmarks/27.svg +32 -32
  629. package/assets/image-editor/images/stickers/landmarks/28.svg +19 -19
  630. package/assets/image-editor/images/stickers/landmarks/29.svg +23 -23
  631. package/assets/image-editor/images/stickers/landmarks/3.svg +36 -36
  632. package/assets/image-editor/images/stickers/landmarks/30.svg +36 -36
  633. package/assets/image-editor/images/stickers/landmarks/31.svg +27 -27
  634. package/assets/image-editor/images/stickers/landmarks/32.svg +25 -25
  635. package/assets/image-editor/images/stickers/landmarks/33.svg +29 -29
  636. package/assets/image-editor/images/stickers/landmarks/34.svg +72 -72
  637. package/assets/image-editor/images/stickers/landmarks/35.svg +18 -18
  638. package/assets/image-editor/images/stickers/landmarks/36.svg +45 -45
  639. package/assets/image-editor/images/stickers/landmarks/37.svg +46 -46
  640. package/assets/image-editor/images/stickers/landmarks/38.svg +44 -44
  641. package/assets/image-editor/images/stickers/landmarks/39.svg +23 -23
  642. package/assets/image-editor/images/stickers/landmarks/4.svg +33 -33
  643. package/assets/image-editor/images/stickers/landmarks/40.svg +25 -25
  644. package/assets/image-editor/images/stickers/landmarks/41.svg +69 -69
  645. package/assets/image-editor/images/stickers/landmarks/42.svg +75 -75
  646. package/assets/image-editor/images/stickers/landmarks/43.svg +44 -44
  647. package/assets/image-editor/images/stickers/landmarks/44.svg +65 -65
  648. package/assets/image-editor/images/stickers/landmarks/45.svg +19 -19
  649. package/assets/image-editor/images/stickers/landmarks/46.svg +47 -47
  650. package/assets/image-editor/images/stickers/landmarks/47.svg +544 -544
  651. package/assets/image-editor/images/stickers/landmarks/48.svg +162 -162
  652. package/assets/image-editor/images/stickers/landmarks/49.svg +70 -70
  653. package/assets/image-editor/images/stickers/landmarks/5.svg +36 -36
  654. package/assets/image-editor/images/stickers/landmarks/50.svg +52 -52
  655. package/assets/image-editor/images/stickers/landmarks/51.svg +110 -110
  656. package/assets/image-editor/images/stickers/landmarks/52.svg +41 -41
  657. package/assets/image-editor/images/stickers/landmarks/53.svg +74 -74
  658. package/assets/image-editor/images/stickers/landmarks/54.svg +36 -36
  659. package/assets/image-editor/images/stickers/landmarks/55.svg +84 -84
  660. package/assets/image-editor/images/stickers/landmarks/56.svg +93 -93
  661. package/assets/image-editor/images/stickers/landmarks/57.svg +67 -67
  662. package/assets/image-editor/images/stickers/landmarks/58.svg +101 -101
  663. package/assets/image-editor/images/stickers/landmarks/59.svg +47 -47
  664. package/assets/image-editor/images/stickers/landmarks/6.svg +59 -59
  665. package/assets/image-editor/images/stickers/landmarks/60.svg +134 -134
  666. package/assets/image-editor/images/stickers/landmarks/61.svg +79 -79
  667. package/assets/image-editor/images/stickers/landmarks/62.svg +43 -43
  668. package/assets/image-editor/images/stickers/landmarks/63.svg +83 -83
  669. package/assets/image-editor/images/stickers/landmarks/64.svg +99 -99
  670. package/assets/image-editor/images/stickers/landmarks/65.svg +79 -79
  671. package/assets/image-editor/images/stickers/landmarks/66.svg +37 -37
  672. package/assets/image-editor/images/stickers/landmarks/67.svg +82 -82
  673. package/assets/image-editor/images/stickers/landmarks/68.svg +216 -216
  674. package/assets/image-editor/images/stickers/landmarks/69.svg +17 -17
  675. package/assets/image-editor/images/stickers/landmarks/7.svg +16 -16
  676. package/assets/image-editor/images/stickers/landmarks/70.svg +45 -45
  677. package/assets/image-editor/images/stickers/landmarks/71.svg +37 -37
  678. package/assets/image-editor/images/stickers/landmarks/72.svg +28 -28
  679. package/assets/image-editor/images/stickers/landmarks/73.svg +25 -25
  680. package/assets/image-editor/images/stickers/landmarks/74.svg +23 -23
  681. package/assets/image-editor/images/stickers/landmarks/75.svg +88 -88
  682. package/assets/image-editor/images/stickers/landmarks/76.svg +25 -25
  683. package/assets/image-editor/images/stickers/landmarks/77.svg +23 -23
  684. package/assets/image-editor/images/stickers/landmarks/78.svg +63 -63
  685. package/assets/image-editor/images/stickers/landmarks/79.svg +25 -25
  686. package/assets/image-editor/images/stickers/landmarks/8.svg +52 -52
  687. package/assets/image-editor/images/stickers/landmarks/80.svg +29 -29
  688. package/assets/image-editor/images/stickers/landmarks/81.svg +44 -44
  689. package/assets/image-editor/images/stickers/landmarks/82.svg +83 -83
  690. package/assets/image-editor/images/stickers/landmarks/83.svg +65 -65
  691. package/assets/image-editor/images/stickers/landmarks/84.svg +31 -31
  692. package/assets/image-editor/images/stickers/landmarks/85.svg +30 -30
  693. package/assets/image-editor/images/stickers/landmarks/86.svg +26 -26
  694. package/assets/image-editor/images/stickers/landmarks/87.svg +132 -132
  695. package/assets/image-editor/images/stickers/landmarks/88.svg +93 -93
  696. package/assets/image-editor/images/stickers/landmarks/89.svg +91 -91
  697. package/assets/image-editor/images/stickers/landmarks/9.svg +70 -70
  698. package/assets/image-editor/images/stickers/landmarks/90.svg +65 -65
  699. package/assets/image-editor/images/stickers/landmarks/91.svg +36 -36
  700. package/assets/image-editor/images/stickers/landmarks/92.svg +66 -66
  701. package/assets/image-editor/images/stickers/landmarks/93.svg +65 -65
  702. package/assets/image-editor/images/stickers/landmarks/94.svg +28 -28
  703. package/assets/image-editor/images/stickers/landmarks/95.svg +31 -31
  704. package/assets/image-editor/images/stickers/landmarks/96.svg +25 -25
  705. package/assets/image-editor/images/stickers/landmarks/97.svg +31 -31
  706. package/assets/image-editor/images/stickers/landmarks/98.svg +52 -52
  707. package/assets/image-editor/images/stickers/landmarks/99.svg +56 -56
  708. package/assets/image-editor/images/stickers/stars/0.png +0 -0
  709. package/assets/image-editor/images/stickers/stars/1.png +0 -0
  710. package/assets/image-editor/images/stickers/stars/2.png +0 -0
  711. package/assets/image-editor/images/stickers/stars/3.png +0 -0
  712. package/assets/image-editor/images/stickers/stars/4.png +0 -0
  713. package/assets/image-editor/images/stickers/stars/5.png +0 -0
  714. package/assets/image-editor/images/stickers/transportation/0.svg +26 -26
  715. package/assets/image-editor/images/stickers/transportation/1.svg +10 -10
  716. package/assets/image-editor/images/stickers/transportation/10.svg +16 -16
  717. package/assets/image-editor/images/stickers/transportation/11.svg +30 -30
  718. package/assets/image-editor/images/stickers/transportation/12.svg +22 -22
  719. package/assets/image-editor/images/stickers/transportation/13.svg +24 -24
  720. package/assets/image-editor/images/stickers/transportation/14.svg +19 -19
  721. package/assets/image-editor/images/stickers/transportation/15.svg +23 -23
  722. package/assets/image-editor/images/stickers/transportation/16.svg +25 -25
  723. package/assets/image-editor/images/stickers/transportation/17.svg +34 -34
  724. package/assets/image-editor/images/stickers/transportation/18.svg +29 -29
  725. package/assets/image-editor/images/stickers/transportation/19.svg +24 -24
  726. package/assets/image-editor/images/stickers/transportation/2.svg +27 -27
  727. package/assets/image-editor/images/stickers/transportation/20.svg +25 -25
  728. package/assets/image-editor/images/stickers/transportation/21.svg +22 -22
  729. package/assets/image-editor/images/stickers/transportation/3.svg +18 -18
  730. package/assets/image-editor/images/stickers/transportation/4.svg +24 -24
  731. package/assets/image-editor/images/stickers/transportation/5.svg +15 -15
  732. package/assets/image-editor/images/stickers/transportation/6.svg +25 -25
  733. package/assets/image-editor/images/stickers/transportation/7.svg +17 -17
  734. package/assets/image-editor/images/stickers/transportation/8.svg +28 -28
  735. package/assets/image-editor/images/stickers/transportation/9.svg +23 -23
  736. package/assets/image-editor/images/textures/0.png +0 -0
  737. package/assets/image-editor/images/textures/1.png +0 -0
  738. package/assets/image-editor/images/textures/10.png +0 -0
  739. package/assets/image-editor/images/textures/11.png +0 -0
  740. package/assets/image-editor/images/textures/12.png +0 -0
  741. package/assets/image-editor/images/textures/13.png +0 -0
  742. package/assets/image-editor/images/textures/14.png +0 -0
  743. package/assets/image-editor/images/textures/15.png +0 -0
  744. package/assets/image-editor/images/textures/16.png +0 -0
  745. package/assets/image-editor/images/textures/17.png +0 -0
  746. package/assets/image-editor/images/textures/18.png +0 -0
  747. package/assets/image-editor/images/textures/19.png +0 -0
  748. package/assets/image-editor/images/textures/2.png +0 -0
  749. package/assets/image-editor/images/textures/20.png +0 -0
  750. package/assets/image-editor/images/textures/21.png +0 -0
  751. package/assets/image-editor/images/textures/22.png +0 -0
  752. package/assets/image-editor/images/textures/23.png +0 -0
  753. package/assets/image-editor/images/textures/24.png +0 -0
  754. package/assets/image-editor/images/textures/25.png +0 -0
  755. package/assets/image-editor/images/textures/26.png +0 -0
  756. package/assets/image-editor/images/textures/27.png +0 -0
  757. package/assets/image-editor/images/textures/28.png +0 -0
  758. package/assets/image-editor/images/textures/3.png +0 -0
  759. package/assets/image-editor/images/textures/4.png +0 -0
  760. package/assets/image-editor/images/textures/5.png +0 -0
  761. package/assets/image-editor/images/textures/6.png +0 -0
  762. package/assets/image-editor/images/textures/7.png +0 -0
  763. package/assets/image-editor/images/textures/8.png +0 -0
  764. package/assets/image-editor/images/textures/9.png +0 -0
  765. package/components/EmIcons/EmIcons.d.ts +30 -15
  766. package/components/ImageIcons/useIconsCopyToFolder.d.ts +2 -2
  767. package/constants/index.d.ts +8 -8
  768. package/debug-script.js +445 -445
  769. package/file-manager-IconsTab-Cv51TWYV.js +2426 -0
  770. package/file-manager-ImageCodeGenerator-DroVucLL.js +368 -0
  771. package/file-manager-JsBarcode-Cji_rnaG.js +2692 -0
  772. package/file-manager-browser-CweGvoKm.js +1229 -0
  773. package/file-manager-hooks-Dg-OcR_x.js +12256 -0
  774. package/file-manager-rolldown-runtime-DtPi1Y-2.js +13 -0
  775. package/file-manager-useMediaListEngine-ByGmaaib.js +921 -0
  776. package/file-manager.css +2 -3373
  777. package/file-manager.esm.js +8932 -2
  778. package/file-manager.js +28 -60217
  779. package/hooks/notifications/useNotificationsBase.d.ts +1 -1
  780. package/hooks/usePixieEditor.d.ts +1 -1
  781. package/i18n.d.ts +0 -1
  782. package/index.d.ts +5 -9
  783. package/mockServiceWorker.js +344 -344
  784. package/notification.d.ts +643 -646
  785. package/package.json +36 -36
  786. package/sample-files.json +104 -104
  787. package/shared/fileManagerApiError.d.ts +2 -2
  788. package/suppress-resize-observer-errors.js +60 -60
  789. package/test-pixie-loading.html +108 -108
  790. package/types.d.ts +8 -0
  791. package/utils/fileFormatUtils.d.ts +2 -2
  792. package/utils/jsonDataProvider.d.ts +4 -4
  793. package/utils/libraryTabLock.d.ts +11 -0
  794. package/utils/libraryTabLock.test.d.ts +1 -0
  795. package/utils/sortHelpers.d.ts +1 -1
  796. package/utils/themeUtils.d.ts +2 -2
  797. package/widgets/layout/errorBoundary/errorBoundary.d.ts +1 -2
  798. package/129.1f7048a0e93daec2ca44.js +0 -3893
  799. package/276.c0a535f6d0c018f0ff32.js +0 -426
  800. package/583.177f1aa2edb14f5f073e.js +0 -2978
  801. package/file-manager-IconsTab-_WPQISpD.js +0 -2
  802. package/file-manager-ImageCodeGenerator-BDrvWfI1.js +0 -2
  803. package/file-manager-JsBarcode-zmCuJ0oz.js +0 -2
  804. package/file-manager-browser-B-aFTXwm.js +0 -2
  805. package/file-manager-index-C_WmI5Gt.js +0 -10
  806. package/fm-icons-tab.dbc6aea218d2ab6b3de5.js +0 -2304
  807. package/fm-image-code-generator.50fded261e49f2abdf2b.js +0 -370
@@ -1,2304 +0,0 @@
1
- (Object(typeof self !== "undefined" ? self : this)["webpackChunkfileManager"] = Object(typeof self !== "undefined" ? self : this)["webpackChunkfileManager"] || []).push([[379],{
2
-
3
- /***/ 1560:
4
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5
-
6
- "use strict";
7
- // ESM COMPAT FLAG
8
- __webpack_require__.r(__webpack_exports__);
9
-
10
- // EXPORTS
11
- __webpack_require__.d(__webpack_exports__, {
12
- IconsTab: () => (/* binding */ IconsTab),
13
- "default": () => (/* binding */ ImageIcons_IconsTab)
14
- });
15
-
16
- // EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
17
- var jsx_runtime = __webpack_require__(4848);
18
- // EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
19
- var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(5442);
20
- var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_);
21
- // EXTERNAL MODULE: external {"root":"antd","commonjs2":"antd","commonjs":"antd","amd":"antd"}
22
- var external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_ = __webpack_require__(550);
23
- // EXTERNAL MODULE: ./src/hooks/notifications/useNotificationsBase.tsx + 1 modules
24
- var useNotificationsBase = __webpack_require__(4505);
25
- // EXTERNAL MODULE: ./node_modules/react-i18next/dist/es/index.js + 15 modules
26
- var es = __webpack_require__(2389);
27
- // EXTERNAL MODULE: external {"commonjs2":"@untitledui/icons","commonjs":"@untitledui/icons","amd":"@untitledui/icons"}
28
- var icons_ = __webpack_require__(7928);
29
- // EXTERNAL MODULE: ./src/hooks/index.ts + 6 modules
30
- var hooks = __webpack_require__(7433);
31
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
32
- var injectStylesIntoStyleTag = __webpack_require__(5072);
33
- var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
34
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
35
- var styleDomAPI = __webpack_require__(7825);
36
- var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI);
37
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
38
- var insertBySelector = __webpack_require__(7659);
39
- var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector);
40
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
41
- var setAttributesWithoutAttributes = __webpack_require__(5056);
42
- var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes);
43
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
44
- var insertStyleElement = __webpack_require__(540);
45
- var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
46
- // EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
47
- var styleTagTransform = __webpack_require__(1113);
48
- var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
49
- // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/sass-loader/dist/cjs.js!./src/components/ImageIcons/iconsTab.module.scss
50
- var iconsTab_module = __webpack_require__(9875);
51
- var iconsTab_module_default = /*#__PURE__*/__webpack_require__.n(iconsTab_module);
52
- ;// ./src/components/ImageIcons/iconsTab.module.scss
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
- var options = {};
65
-
66
- options.styleTagTransform = (styleTagTransform_default());
67
- options.setAttributes = (setAttributesWithoutAttributes_default());
68
- options.insert = insertBySelector_default().bind(null, "head");
69
- options.domAPI = (styleDomAPI_default());
70
- options.insertStyleElement = (insertStyleElement_default());
71
-
72
- var update = injectStylesIntoStyleTag_default()((iconsTab_module_default()), options);
73
-
74
-
75
-
76
-
77
- /* harmony default export */ const ImageIcons_iconsTab_module = ((iconsTab_module_default()) && (iconsTab_module_default()).locals ? (iconsTab_module_default()).locals : undefined);
78
-
79
- ;// ./src/components/ImageIcons/IconsSearchForm.tsx
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
- const IconsSearchForm = ({ query, onQueryChange, onSubmit, hasResults = false, inputRef, }) => {
88
- const { t } = (0,es/* useTranslation */.Bd)();
89
- const { options } = (0,hooks/* useFileManagerContext */.wh)();
90
- const { config } = options;
91
- const showResultsMode = query.length > 0 && hasResults;
92
- return ((0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsSearchFormCenteredContainer, children: [(0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form, { layout: "inline", onFinish: onSubmit, className: showResultsMode ? ImageIcons_iconsTab_module.iconsSearchResults : ImageIcons_iconsTab_module.iconsSearchFormCentered, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form.Item, { className: ImageIcons_iconsTab_module.iconsSearchFormInput, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Input, { ref: inputRef, className: ImageIcons_iconsTab_module.iconsSearchFormInputInput, allowClear: true, prefix: (0,jsx_runtime.jsx)(icons_.SearchMd, { size: 16, strokeWidth: config === null || config === void 0 ? void 0 : config.iconStrokeWidth, onClick: onSubmit }), placeholder: t('Search icons'), value: query, onChange: e => onQueryChange(e.target.value), onKeyDown: e => e.code === 'Space' && onSubmit(), onPressEnter: onSubmit, spellCheck: "false" }) }) }), showResultsMode && (0,jsx_runtime.jsx)("div", { className: `ant-divider ${ImageIcons_iconsTab_module.iconsSearchDivider}`, role: "separator" })] }));
93
- };
94
- /* harmony default export */ const ImageIcons_IconsSearchForm = (IconsSearchForm);
95
-
96
- ;// ./src/components/ImageIcons/IconsControls.tsx
97
-
98
-
99
-
100
-
101
-
102
- const IconsControls = props => {
103
- const { t } = (0,es/* useTranslation */.Bd)();
104
- const { colorHex, setColorHex, colorHex2, setColorHex2, colorHex3, setColorHex3, sizePx, setSizePx, strokeWidth, setStrokeWidth, showSecondColor, showThirdColor, } = props;
105
- return ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsControls, children: (0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsControlsControls, children: [(0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsControlsNumField, children: [(0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Typography.Text, { type: "secondary", className: ImageIcons_iconsTab_module.iconsControlsNumLabel, children: t('Size') }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.InputNumber, { className: ImageIcons_iconsTab_module.iconsControlsNumInput, min: 20, max: 200, step: 1, value: sizePx, suffix: (0,jsx_runtime.jsx)("span", { className: ImageIcons_iconsTab_module.iconsControlsNumSuffix, children: "px" }), onChange: v => setSizePx(typeof v === 'number' && !Number.isNaN(v) ? v : 50), "aria-label": t('Size') })] }), (0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsControlsNumField, children: [(0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Typography.Text, { type: "secondary", className: ImageIcons_iconsTab_module.iconsControlsNumLabel, children: t('Stroke width') }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.InputNumber, { className: ImageIcons_iconsTab_module.iconsControlsNumInput, min: 0.3, max: 3, step: 0.1, value: typeof strokeWidth === 'number' ? strokeWidth : 1, suffix: (0,jsx_runtime.jsx)("span", { className: ImageIcons_iconsTab_module.iconsControlsNumSuffix, children: "px" }), onChange: v => setStrokeWidth(typeof v === 'number' && !Number.isNaN(v) ? v : 1), "aria-label": t('Stroke width') })] }), (0,jsx_runtime.jsxs)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Space, { size: 8, children: [(0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsControlElement, children: [(0,jsx_runtime.jsx)("span", { children: t('Color1') }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.ColorPicker, { value: colorHex, format: "hex", disabledAlpha: true, showText: true, onChange: (color, hex) => {
106
- const newColor = typeof color === 'string' ? color : (color === null || color === void 0 ? void 0 : color.toHexString) ? color.toHexString() : hex;
107
- setColorHex(newColor);
108
- }, size: "middle" })] }), showSecondColor && ((0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsControlElement, children: [(0,jsx_runtime.jsx)("span", { children: t('Color2') }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.ColorPicker, { value: colorHex2, format: "hex", disabledAlpha: true, showText: true, onChange: (color, hex) => {
109
- const newColor = typeof color === 'string' ? color : (color === null || color === void 0 ? void 0 : color.toHexString) ? color.toHexString() : hex;
110
- setColorHex2(newColor);
111
- }, size: "middle" })] })), showThirdColor && ((0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsControlElement, children: [(0,jsx_runtime.jsx)("span", { children: t('Color3') }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.ColorPicker, { value: colorHex3, format: "hex", disabledAlpha: true, showText: true, onChange: (color, hex) => {
112
- const newColor = typeof color === 'string' ? color : (color === null || color === void 0 ? void 0 : color.toHexString) ? color.toHexString() : hex;
113
- setColorHex3(newColor);
114
- }, size: "middle" })] }))] })] }) }));
115
- };
116
- /* harmony default export */ const ImageIcons_IconsControls = (IconsControls);
117
-
118
- // EXTERNAL MODULE: external {"root":"AntDesignIcons","commonjs2":"@ant-design/icons","commonjs":"@ant-design/icons","amd":"@ant-design/icons"}
119
- var icons_amd_ant_design_icons_ = __webpack_require__(7892);
120
- // EXTERNAL MODULE: ./src/components/NoFilesMessage/NoFilesMessage.tsx + 1 modules
121
- var NoFilesMessage = __webpack_require__(1790);
122
- // EXTERNAL MODULE: ./src/hooks/useCustomIcons.ts + 1 modules
123
- var useCustomIcons = __webpack_require__(1864);
124
- // EXTERNAL MODULE: ./src/presentation/media-list/useMediaListEngine.ts + 1 modules
125
- var useMediaListEngine = __webpack_require__(3263);
126
- ;// ./src/components/ImageIcons/IconsGrid.tsx
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
- const antIcon = (0,jsx_runtime.jsx)(icons_amd_ant_design_icons_.LoadingOutlined, { style: { fontSize: 20 }, spin: true });
138
- const PREFETCH_THRESHOLD_PX = 240;
139
- /** Фиксированная минимальная ширина колонки: не зависит от previewSize, иначе при каждом px меняется число колонок и размер «прыгает». */
140
- const GRID_MIN_COLUMN_WIDTH_PX = 160;
141
- /** Превью + подпись + отступы карточки (см. .iconsGridItem padding / .iconsGridItemName). */
142
- const GRID_ROW_HEIGHT_BEYOND_THUMB_PX = 56;
143
- const IconsGrid = ({ items, loading, isCollectingResults = false, hasMore = false, hasQuery, selectedHash, onItemClick, onInsert: _onInsert, onLoadMore, colorVars, svgTextMap, previewSize, selectedHashes, onToggleSelect, }) => {
144
- const { t } = (0,es/* useTranslation */.Bd)();
145
- const { ThumbsUpIcon } = (0,useCustomIcons/* useCustomIcons */.D)();
146
- const hasSelected = Boolean(selectedHashes && selectedHashes.size > 0);
147
- const loadMoreLockRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
148
- const { positionedItems, containerHeight, isNearEnd, handleViewportChange } = (0,useMediaListEngine/* useMediaListEngine */.W)({
149
- items,
150
- getId: item => item.hash,
151
- getPreviewSrc: () => undefined,
152
- getAltText: item => item.name,
153
- layoutMode: 'grid',
154
- minColumnWidth: GRID_MIN_COLUMN_WIDTH_PX,
155
- estimatedItemHeight: (previewSize !== null && previewSize !== void 0 ? previewSize : 50) + GRID_ROW_HEIGHT_BEYOND_THUMB_PX,
156
- gap: 16,
157
- prefetchThresholdPx: PREFETCH_THRESHOLD_PX,
158
- });
159
- const viewportContainerRef = (0,hooks/* useViewportMetricsSync */._O)(handleViewportChange, [
160
- items.length,
161
- previewSize !== null && previewSize !== void 0 ? previewSize : 50,
162
- ]);
163
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
164
- if (!hasMore) {
165
- loadMoreLockRef.current = null;
166
- }
167
- }, [hasMore, items.length]);
168
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
169
- if (!loading && !isCollectingResults && hasMore && items.length > 0 && isNearEnd) {
170
- if (loadMoreLockRef.current === items.length) {
171
- return;
172
- }
173
- loadMoreLockRef.current = items.length;
174
- onLoadMore === null || onLoadMore === void 0 ? void 0 : onLoadMore();
175
- }
176
- }, [hasMore, isCollectingResults, isNearEnd, items.length, loading, onLoadMore]);
177
- const emptyContent = hasQuery ? ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridEmptyState, children: (0,jsx_runtime.jsx)(NoFilesMessage/* NoFilesMessage */.G, {}) })) : ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridEmptyState, children: (0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.resultsContainer, children: [(0,jsx_runtime.jsx)("span", { className: ImageIcons_iconsTab_module.videoIcon, children: (0,jsx_runtime.jsx)(ThumbsUpIcon, { className: ImageIcons_iconsTab_module.playButton, style: { width: 48, height: 49, marginBottom: 10 } }) }), (0,jsx_runtime.jsx)("h1", { className: ImageIcons_iconsTab_module.title, children: t('Thousands of icons') }), (0,jsx_runtime.jsx)("p", { className: ImageIcons_iconsTab_module.subtitle, children: t("Enter a search query and we'll find the perfect icon for you") })] }) }));
178
- return ((0,jsx_runtime.jsxs)("div", { id: "iconsScrollableDiv", ref: viewportContainerRef, className: ImageIcons_iconsTab_module.iconsGrid, children: [items.length === 0 && !loading ? (emptyContent) : ((0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridVirtualCanvas, style: { height: containerHeight }, children: positionedItems.map(({ row, layout }) => {
179
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
180
- const item = row.item;
181
- const isSelected = Boolean((selectedHashes && selectedHashes.has(item.hash)) || selectedHash === item.hash);
182
- const svgHtml = svgTextMap[item.hash];
183
- return ((0,jsx_runtime.jsxs)("div", { style: {
184
- position: 'absolute',
185
- top: layout.top,
186
- left: layout.left,
187
- width: layout.width,
188
- height: layout.height,
189
- }, className: `${ImageIcons_iconsTab_module.iconsGridItem} ${isSelected ? ImageIcons_iconsTab_module.iconsGridItemSelected : ''} ${hasSelected ? ImageIcons_iconsTab_module.iconsGridShowCheckboxes : ''}`, onClick: () => onItemClick(item), children: [(0,jsx_runtime.jsx)("div", { style: { height: previewSize !== null && previewSize !== void 0 ? previewSize : 50 }, className: ImageIcons_iconsTab_module.iconsGridItemThumbnail, children: svgHtml ? ((0,jsx_runtime.jsx)("div", { style: {
190
- color: colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex,
191
- ['--icon-grad-1']: (_a = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex) !== null && _a !== void 0 ? _a : '#000',
192
- ['--icon-grad-2']: (_b = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex2) !== null && _b !== void 0 ? _b : '#ff007a',
193
- ['--icon-color-1']: (_c = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex) !== null && _c !== void 0 ? _c : '#000',
194
- ['--icon-color-2']: (_d = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex2) !== null && _d !== void 0 ? _d : '#ff007a',
195
- ['--icon-color-3']: (_e = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex3) !== null && _e !== void 0 ? _e : '#00C2FF',
196
- ['--icon-stroke-1']: (_f = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex) !== null && _f !== void 0 ? _f : '#000',
197
- ['--icon-stroke-2']: (_g = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex2) !== null && _g !== void 0 ? _g : '#ff007a',
198
- ['--icon-stroke-3']: (_h = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex3) !== null && _h !== void 0 ? _h : '#00C2FF',
199
- ['--icon-fill-1']: (_j = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex) !== null && _j !== void 0 ? _j : '#000',
200
- ['--icon-fill-2']: (_k = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex2) !== null && _k !== void 0 ? _k : '#ff007a',
201
- ['--icon-fill-3']: (_l = colorVars === null || colorVars === void 0 ? void 0 : colorVars.colorHex3) !== null && _l !== void 0 ? _l : '#00C2FF',
202
- }, dangerouslySetInnerHTML: { __html: svgHtml }, className: ImageIcons_iconsTab_module.iconsGridItemSvg })) : ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridItemImg, style: { display: 'flex', alignItems: 'center', justifyContent: 'center' }, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Spin, { indicator: antIcon, size: "small" }) })) }), (0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridItemName, title: item.name, children: item.name }), onToggleSelect ? ((0,jsx_runtime.jsx)("div", { onClick: e => {
203
- e.stopPropagation();
204
- }, className: ImageIcons_iconsTab_module.iconsGridCheckbox, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Checkbox, { checked: Boolean(selectedHashes && selectedHashes.has(item.hash)), onChange: () => onToggleSelect(item.hash) }) })) : null] }, item.hash));
205
- }) }), isCollectingResults && ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridLoadingMore, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Spin, { indicator: antIcon }) }))] })), loading && items.length === 0 && ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsGridLoading, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Spin, { indicator: antIcon }) }))] }));
206
- };
207
- /* harmony default export */ const ImageIcons_IconsGrid = (IconsGrid);
208
-
209
- ;// ./src/components/ImageIcons/defaultIconStockTranslate.ts
210
- function hasCyrillic(s) {
211
- return /[\u0400-\u04FF]/.test(s);
212
- }
213
- function createIconStockTranslateFetch(url) {
214
- const trimmedUrl = url.trim();
215
- return async (input, opts) => {
216
- var _a, _b;
217
- const text = input.trim();
218
- if (!hasCyrillic(text)) {
219
- return text;
220
- }
221
- try {
222
- const res = await fetch(trimmedUrl, {
223
- method: 'POST',
224
- headers: { 'Content-Type': 'application/json' },
225
- body: JSON.stringify({ text: input, locale: opts.locale }),
226
- credentials: 'same-origin',
227
- });
228
- if (!res.ok) {
229
- return text;
230
- }
231
- const data = (await res.json());
232
- const out = (_b = (_a = data.translatedText) !== null && _a !== void 0 ? _a : data.text) !== null && _b !== void 0 ? _b : text;
233
- return String(out).trim() || text;
234
- }
235
- catch (_c) {
236
- return text;
237
- }
238
- };
239
- }
240
- /** `handleTranslate` имеет приоритет; иначе при непустом `iconStockTranslateUrl` — POST с телом `{ text, locale? }`. */
241
- function resolveIconStockTranslate(config) {
242
- var _a;
243
- if (!config)
244
- return undefined;
245
- if (config.handleTranslate)
246
- return config.handleTranslate;
247
- const url = (_a = config.iconStockTranslateUrl) === null || _a === void 0 ? void 0 : _a.trim();
248
- if (!url)
249
- return undefined;
250
- return createIconStockTranslateFetch(url);
251
- }
252
-
253
- // EXTERNAL MODULE: ./node_modules/@iconify-json/lucide/index.mjs + 2 modules
254
- var lucide = __webpack_require__(4393);
255
- // EXTERNAL MODULE: ./node_modules/@iconify-json/tabler/index.mjs + 2 modules
256
- var tabler = __webpack_require__(27);
257
- // EXTERNAL MODULE: ./node_modules/@iconify/utils/lib/icon-set/get-icon.js + 3 modules
258
- var get_icon = __webpack_require__(9249);
259
- ;// ./src/components/ImageIcons/iconSearchRuLexicon.ts
260
- /** Стоп-слова при многословном AND-поиске. */
261
- const STOP_WORDS = new Set([
262
- 'и',
263
- 'в',
264
- 'во',
265
- 'на',
266
- 'с',
267
- 'со',
268
- 'к',
269
- 'ко',
270
- 'у',
271
- 'о',
272
- 'об',
273
- 'от',
274
- 'до',
275
- 'по',
276
- 'за',
277
- 'из',
278
- 'без',
279
- 'для',
280
- 'при',
281
- 'про',
282
- 'или',
283
- 'the',
284
- 'a',
285
- 'an',
286
- 'and',
287
- 'or',
288
- 'of',
289
- 'to',
290
- 'in',
291
- 'on',
292
- 'for',
293
- ]);
294
- /**
295
- * RU → подстроки в slug / словах из имён Lucide и Tabler Icons.
296
- */
297
- const RU_ICON_TERMS = {
298
- дом: ['home', 'house'],
299
- домой: ['home'],
300
- сердце: ['heart'],
301
- любовь: ['heart'],
302
- звезда: ['star'],
303
- солнце: ['sun'],
304
- луна: ['moon'],
305
- облако: ['cloud'],
306
- дождь: ['rain', 'cloud'],
307
- снег: ['snow'],
308
- огонь: ['fire', 'flame'],
309
- вода: ['droplet', 'water'],
310
- молния: ['bolt', 'zap', 'lightning'],
311
- пользователь: ['user', 'person'],
312
- человек: ['user', 'person', 'people'],
313
- люди: ['users', 'people'],
314
- лицо: ['face', 'smile'],
315
- улыбка: ['smile'],
316
- рука: ['hand'],
317
- глаз: ['eye'],
318
- ключ: ['key'],
319
- замок: ['lock'],
320
- почта: ['mail', 'email', 'inbox'],
321
- письмо: ['mail', 'envelope', 'email'],
322
- конверт: ['envelope', 'mail'],
323
- сообщение: ['message', 'chat'],
324
- чат: ['message', 'chat'],
325
- телефон: ['phone'],
326
- смартфон: ['smartphone', 'device'],
327
- камера: ['camera'],
328
- фото: ['image', 'photo'],
329
- картинка: ['image', 'picture'],
330
- изображение: ['image', 'photo'],
331
- видео: ['video'],
332
- музыка: ['music'],
333
- звук: ['volume', 'speaker', 'audio'],
334
- микрофон: ['mic', 'microphone'],
335
- поиск: ['search'],
336
- лупа: ['search'],
337
- настройки: ['settings', 'cog', 'gear'],
338
- меню: ['menu'],
339
- закрыть: ['x', 'close'],
340
- удалить: ['trash', 'delete'],
341
- корзина: ['trash'],
342
- редактировать: ['edit', 'pencil'],
343
- копировать: ['copy'],
344
- сохранить: ['save'],
345
- скачать: ['download'],
346
- загрузить: ['upload'],
347
- папка: ['folder'],
348
- файл: ['file', 'document'],
349
- документ: ['file', 'document'],
350
- текст: ['text'],
351
- календарь: ['calendar'],
352
- время: ['clock'],
353
- часы: ['clock', 'watch'],
354
- карта: ['map'],
355
- глобус: ['globe'],
356
- мир: ['globe', 'world', 'earth'],
357
- адрес: ['map-pin', 'location', 'pin'],
358
- метка: ['map-pin', 'marker', 'pin'],
359
- стрелка: ['arrow', 'chevron'],
360
- влево: ['left', 'arrow-left', 'chevron-left'],
361
- вправо: ['right', 'arrow-right', 'chevron-right'],
362
- вверх: ['up', 'arrow-up', 'chevron-up'],
363
- вниз: ['down', 'arrow-down', 'chevron-down'],
364
- плей: ['play'],
365
- пауза: ['pause'],
366
- стоп: ['stop'],
367
- галочка: ['check'],
368
- крестик: ['x'],
369
- плюс: ['plus'],
370
- минус: ['minus'],
371
- покупки: ['shopping', 'cart', 'bag'],
372
- магазин: ['store', 'shop'],
373
- подарок: ['gift'],
374
- щит: ['shield'],
375
- банк: ['bank', 'building'],
376
- картабанковская: ['credit-card', 'card'],
377
- уведомление: ['bell'],
378
- колокол: ['bell'],
379
- флаг: ['flag'],
380
- закладка: ['bookmark'],
381
- ссылка: ['link'],
382
- код: ['code', 'terminal'],
383
- терминал: ['terminal'],
384
- лампочка: ['lightbulb', 'light-bulb'],
385
- идея: ['lightbulb'],
386
- батарея: ['battery'],
387
- питание: ['power', 'plug'],
388
- сеть: ['wifi', 'network'],
389
- принтер: ['printer'],
390
- монитор: ['monitor', 'display'],
391
- компьютер: ['computer', 'laptop', 'pc'],
392
- клавиатура: ['keyboard'],
393
- книга: ['book'],
394
- график: ['chart', 'graph'],
395
- таблица: ['table', 'grid'],
396
- список: ['list'],
397
- фильтр: ['filter'],
398
- тег: ['tag'],
399
- отправить: ['send'],
400
- поделиться: ['share'],
401
- нравится: ['thumbs', 'like'],
402
- скрыть: ['eye-off', 'hidden'],
403
- предупреждение: ['alert', 'warning'],
404
- ошибка: ['x-circle', 'alert-circle'],
405
- успех: ['check-circle'],
406
- информация: ['info'],
407
- помощь: ['help'],
408
- вопрос: ['help', 'question'],
409
- язык: ['language', 'languages', 'translate'],
410
- перевод: ['language', 'translate'],
411
- масштаб: ['zoom', 'maximize'],
412
- экран: ['monitor', 'screen', 'display'],
413
- цвет: ['palette', 'swatch'],
414
- кисть: ['brush', 'paint'],
415
- карандаш: ['pencil'],
416
- выравнивание: ['align'],
417
- центр: ['center'],
418
- круг: ['circle'],
419
- квадрат: ['square'],
420
- вход: ['log-in', 'login'],
421
- выход: ['log-out', 'logout'],
422
- профиль: ['user', 'account'],
423
- команда: ['users', 'group'],
424
- задача: ['check', 'list', 'todo'],
425
- цель: ['target'],
426
- вложение: ['paperclip'],
427
- архив: ['archive'],
428
- ножницы: ['scissors'],
429
- скрепка: ['paperclip'],
430
- локация: ['map-pin'],
431
- навигация: ['navigation', 'compass'],
432
- компас: ['compass'],
433
- самолет: ['plane', 'airplane'],
434
- машина: ['car'],
435
- мяч: ['ball'],
436
- мячик: ['ball'],
437
- поезд: ['train'],
438
- корабль: ['ship'],
439
- велосипед: ['bike', 'bicycle'],
440
- кофе: ['coffee'],
441
- еда: ['utensils', 'cake', 'pizza'],
442
- собака: ['dog'],
443
- кошка: ['cat'],
444
- птица: ['bird'],
445
- дерево: ['tree'],
446
- цветок: ['flower'],
447
- гора: ['mountain'],
448
- волны: ['waves'],
449
- зонт: ['umbrella'],
450
- работа: ['briefcase'],
451
- школа: ['school', 'academic', 'graduation'],
452
- больница: ['cross', 'heart', 'medical'],
453
- ребенок: ['baby'],
454
- семья: ['home', 'users'],
455
- группа: ['users', 'group'],
456
- мужчина: ['man', 'user'],
457
- женщина: ['woman', 'user'],
458
- кольцо: ['ring'],
459
- корона: ['crown'],
460
- медаль: ['medal', 'award'],
461
- кубок: ['trophy'],
462
- рюкзак: ['backpack'],
463
- чемодан: ['luggage'],
464
- кошелек: ['wallet'],
465
- очки: ['glasses'],
466
- шляпа: ['hat'],
467
- рубашка: ['shirt'],
468
- обувь: ['shoe'],
469
- здание: ['building'],
470
- окно: ['window'],
471
- дверь: ['door'],
472
- лифт: ['arrow-up-down', 'arrows-up-down'],
473
- парковка: ['parking'],
474
- топливо: ['fuel'],
475
- дорога: ['route', 'road'],
476
- мост: ['bridge'],
477
- река: ['waves'],
478
- море: ['waves'],
479
- ночь: ['moon'],
480
- день: ['sun'],
481
- таймер: ['timer'],
482
- будильник: ['alarm'],
483
- деньги: ['banknote', 'currency', 'dollar'],
484
- процент: ['percent'],
485
- квитанция: ['receipt'],
486
- счет: ['receipt', 'document'],
487
- договор: ['document', 'signature'],
488
- печать: ['stamp'],
489
- подпись: ['signature', 'pen'],
490
- суд: ['scale'],
491
- полиция: ['shield'],
492
- пожарные: ['fire'],
493
- скорая: ['life', 'buoy', 'cross'],
494
- аптека: ['pill'],
495
- таблетка: ['pill'],
496
- здоровье: ['heart', 'pulse'],
497
- рост: ['trending-up', 'arrow-up'],
498
- падение: ['trending-down', 'arrow-down'],
499
- робот: ['bot', 'cpu'],
500
- мозг: ['brain'],
501
- база: ['database'],
502
- сервер: ['server'],
503
- облакоинтернет: ['cloud'],
504
- заметка: ['note', 'sticky'],
505
- комментарий: ['chat', 'bubble'],
506
- якорь: ['anchor'],
507
- пароль: ['key', 'lock'],
508
- отпечаток: ['fingerprint'],
509
- обновить: ['refresh', 'sync'],
510
- синхронизация: ['refresh', 'sync'],
511
- наушники: ['headphones'],
512
- громкость: ['volume'],
513
- беззвука: ['volume-x', 'mute'],
514
- повтор: ['repeat'],
515
- следующий: ['skip-forward', 'forward'],
516
- предыдущий: ['skip-back', 'backward'],
517
- камеравыкл: ['camera-off'],
518
- микрофонвыкл: ['mic-off'],
519
- телефонзвонок: ['phone-call'],
520
- входящие: ['inbox'],
521
- исходящие: ['send', 'outbox'],
522
- черновик: ['draft', 'file'],
523
- спам: ['ban', 'shield'],
524
- рассылка: ['mail', 'send'],
525
- подписка: ['bell', 'rss'],
526
- отписка: ['bell-off'],
527
- палитра: ['palette'],
528
- градиент: ['gradient'],
529
- слои: ['layers'],
530
- кроп: ['crop'],
531
- поворот: ['rotate'],
532
- гаечный: ['wrench'],
533
- молоток: ['hammer'],
534
- баг: ['bug'],
535
- штрихкод: ['barcode'],
536
- куаркод: ['qr-code'],
537
- звезда2: ['sparkles'],
538
- магия: ['wand', 'sparkles'],
539
- снежинка: ['snowflake'],
540
- радуга: ['rainbow'],
541
- лист: ['leaf'],
542
- ракета: ['rocket'],
543
- спутник: ['satellite'],
544
- капля: ['droplet'],
545
- грузовик: ['truck'],
546
- автобус: ['bus'],
547
- такси: ['car', 'taxi'],
548
- торт: ['cake'],
549
- пицца: ['pizza'],
550
- яблоко: ['apple'],
551
- банан: ['banana'],
552
- рыба: ['fish'],
553
- вино: ['wine'],
554
- пиво: ['beer'],
555
- чашка: ['cup', 'mug'],
556
- рассылка2: ['mail', 'megaphone'],
557
- шаблон: ['layout', 'file'],
558
- воронка: ['filter', 'funnel'],
559
- аналитика: ['chart', 'pie'],
560
- отчет: ['document', 'chart'],
561
- дашборд: ['layout', 'grid'],
562
- поддержка: ['life-buoy', 'headset'],
563
- /** Бренды / сервисы (подстроки в `brand-*`, `*-in-*` и т.п.) */
564
- телеграм: ['telegram', 'send'],
565
- вотсап: ['whatsapp'],
566
- инстаграм: ['instagram'],
567
- ютуб: ['youtube'],
568
- твиттер: ['twitter'],
569
- фейсбук: ['facebook'],
570
- гитхаб: ['github', 'git'],
571
- гугл: ['google', 'chrome'],
572
- яндекс: ['search'],
573
- эпл: ['apple'],
574
- вк: ['vk'],
575
- };
576
- function iconSearchRuLexicon_hasCyrillic(s) {
577
- return /[\u0400-\u04FF]/.test(s);
578
- }
579
- function isWordChar(code) {
580
- return ((code >= 48 && code <= 57) ||
581
- (code >= 65 && code <= 90) ||
582
- (code >= 97 && code <= 122) ||
583
- (code >= 1040 && code <= 1103) ||
584
- code === 1025 ||
585
- code === 1105);
586
- }
587
- function trimTokenEdges(t) {
588
- let start = 0;
589
- let end = t.length;
590
- while (start < end && !isWordChar(t.charCodeAt(start)))
591
- start += 1;
592
- while (end > start && !isWordChar(t.charCodeAt(end - 1)))
593
- end -= 1;
594
- return t.slice(start, end);
595
- }
596
- function tokenize(q) {
597
- return q
598
- .toLowerCase()
599
- .trim()
600
- .split(/[\s,.;/\\|]+/)
601
- .map(trimTokenEdges)
602
- .filter(t => t.length >= 2 && !STOP_WORDS.has(t));
603
- }
604
- /** Группы для AND: в каждой — OR по англ. подстрокам. */
605
- function buildRuExpandedGroups(query) {
606
- const tokens = tokenize(query);
607
- if (tokens.length === 0)
608
- return [];
609
- const groups = [];
610
- for (const token of tokens) {
611
- if (iconSearchRuLexicon_hasCyrillic(token)) {
612
- const en = RU_ICON_TERMS[token];
613
- if (en === null || en === void 0 ? void 0 : en.length) {
614
- groups.push([...en]);
615
- }
616
- else {
617
- groups.push([token]);
618
- }
619
- }
620
- else {
621
- groups.push([token]);
622
- }
623
- }
624
- return groups;
625
- }
626
- function buildSearchNeedles(query) {
627
- const direct = query.trim().toLowerCase();
628
- const groups = buildRuExpandedGroups(query);
629
- return { direct, groups };
630
- }
631
- function haystackMatchesRuAware(haystack, direct, groups) {
632
- if (direct.length >= 2 && haystack.includes(direct)) {
633
- return true;
634
- }
635
- if (groups.length === 0) {
636
- return false;
637
- }
638
- return groups.every(g => g.some(needle => needle.length >= 2 && haystack.includes(needle)));
639
- }
640
-
641
- ;// ./src/components/ImageIcons/iconStockSearch.ts
642
-
643
-
644
-
645
-
646
- const STOCK_SETS = [
647
- { json: lucide/* icons */.Pt, label: 'Lucide' },
648
- { json: tabler/* icons */.Pt, label: 'Tabler Icons' },
649
- ];
650
- function resolveCanonicalSlug(set, slug) {
651
- let s = slug;
652
- const icons = set.icons;
653
- for (let guard = 0; guard < 24; guard += 1) {
654
- const raw = icons[s];
655
- if (raw && typeof raw.parent === 'string') {
656
- s = raw.parent;
657
- continue;
658
- }
659
- break;
660
- }
661
- return s;
662
- }
663
- function isHiddenCanonical(set, slug) {
664
- const raw = set.icons[slug];
665
- return Boolean(raw && 'body' in raw && raw.hidden);
666
- }
667
- function prettyName(slug) {
668
- return slug
669
- .split('-')
670
- .map(p => (p.length ? p.charAt(0).toUpperCase() + p.slice(1) : p))
671
- .join(' ');
672
- }
673
- function buildRowsForSet(json, label) {
674
- const prefix = json.prefix || label.toLowerCase();
675
- const rows = [];
676
- for (const slug of Object.keys(json.icons)) {
677
- const raw = json.icons[slug];
678
- if (raw && 'body' in raw && raw.hidden)
679
- continue;
680
- const canonical = resolveCanonicalSlug(json, slug);
681
- if (isHiddenCanonical(json, canonical))
682
- continue;
683
- if (!(0,get_icon/* getIconData */.y)(json, slug))
684
- continue;
685
- const haystack = `${slug} ${slug.replace(/-/g, ' ')}`.toLowerCase();
686
- rows.push({ prefix, slug, canonical, haystack, label });
687
- }
688
- return rows;
689
- }
690
- let searchRows = null;
691
- function getRows() {
692
- if (!searchRows) {
693
- searchRows = STOCK_SETS.flatMap(({ json, label }) => buildRowsForSet(json, label));
694
- }
695
- return searchRows;
696
- }
697
- function scoreRowMatch(row, direct, groups) {
698
- const { haystack, slug } = row;
699
- if (!haystackMatchesRuAware(haystack, direct, groups))
700
- return 0;
701
- let score = 10;
702
- if (direct.length >= 2 && haystack.includes(direct)) {
703
- if (slug.startsWith(direct))
704
- score += 100;
705
- else if (haystack.startsWith(direct))
706
- score += 50;
707
- else if (haystack.split(/\s+/).some(p => p.startsWith(direct)))
708
- score += 30;
709
- else
710
- score += 15;
711
- }
712
- else if (groups.length > 0) {
713
- for (const g of groups) {
714
- const matched = g.filter(n => n.length >= 2 && haystack.includes(n));
715
- if (matched.length === 0)
716
- continue;
717
- const best = Math.max(...matched.map(needle => {
718
- if (slug.startsWith(needle))
719
- return 100;
720
- if (haystack.startsWith(needle))
721
- return 50;
722
- if (haystack.split(/\s+/).some(p => p.startsWith(needle)))
723
- return 30;
724
- return 15;
725
- }));
726
- score += best;
727
- }
728
- }
729
- return score;
730
- }
731
- /** Стабильный id вида `prefix:icon-name` для кэша и `StreamlineSearchItem.hash`. */
732
- function listMatchingStockIconIds(query) {
733
- const trimmed = query.trim();
734
- if (trimmed.length < 3)
735
- return [];
736
- const { direct, groups } = buildSearchNeedles(trimmed);
737
- const byId = new Map();
738
- for (const row of getRows()) {
739
- const score = scoreRowMatch(row, direct, groups);
740
- if (score <= 0)
741
- continue;
742
- const fullId = `${row.prefix}:${row.canonical}`;
743
- const prev = byId.get(fullId);
744
- if (!prev || score > prev.score) {
745
- byId.set(fullId, { score });
746
- }
747
- }
748
- return Array.from(byId.entries())
749
- .sort((a, b) => b[1].score - a[1].score || a[0].localeCompare(b[0]))
750
- .map(([id]) => id);
751
- }
752
- /** Сохраняет порядок `primary`, в конец добавляет id из `secondary`, которых ещё не было. */
753
- function mergeStockIconIdsOrdered(primary, secondary) {
754
- if (secondary.length === 0)
755
- return primary;
756
- const seen = new Set(primary);
757
- const out = [...primary];
758
- for (const id of secondary) {
759
- if (!seen.has(id)) {
760
- seen.add(id);
761
- out.push(id);
762
- }
763
- }
764
- return out;
765
- }
766
- function stockIconIdToItem(fullId) {
767
- var _a;
768
- const colon = fullId.indexOf(':');
769
- const prefix = colon > 0 ? fullId.slice(0, colon) : '';
770
- const canonical = colon > 0 ? fullId.slice(colon + 1) : fullId;
771
- const entry = STOCK_SETS.find(s => (s.json.prefix || s.label.toLowerCase()) === prefix);
772
- const familyName = (_a = entry === null || entry === void 0 ? void 0 : entry.label) !== null && _a !== void 0 ? _a : prefix;
773
- return {
774
- hash: fullId,
775
- name: prettyName(canonical),
776
- imagePreviewUrl: '',
777
- isFree: true,
778
- familySlug: prefix,
779
- familyName,
780
- };
781
- }
782
-
783
- // EXTERNAL MODULE: ./node_modules/@iconify/utils/lib/svg/build.js + 3 modules
784
- var build = __webpack_require__(1452);
785
- // EXTERNAL MODULE: ./node_modules/@iconify/utils/lib/svg/html.js
786
- var html = __webpack_require__(6649);
787
- // EXTERNAL MODULE: ./src/utils/svgToPng.ts
788
- var svgToPng = __webpack_require__(3817);
789
- ;// ./src/utils/svgParseUtils.ts
790
- /**
791
- * Утилиты для парсинга SVG: определение количества цветов, толщины линий и стиля иконок.
792
- * Поддерживает атрибуты и inline style, градиенты (linear и radial), различные форматы цветов.
793
- */
794
- const SHAPE_TAGS = 'path|rect|circle|ellipse|polygon|line|polyline|g';
795
- /** Конвертирует цвет в hex для ColorPicker (rgb, rgba, имя → #rrggbb) */
796
- function colorToHex(raw) {
797
- var _a;
798
- const s = raw.trim();
799
- if (/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(s)) {
800
- const m = s.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})/);
801
- if (m) {
802
- const hex = m[1].length === 3 ? m[1].replace(/(.)/g, '$1$1') : m[1];
803
- return '#' + hex.toLowerCase();
804
- }
805
- }
806
- const rgb = s.match(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);
807
- if (rgb) {
808
- return '#' + [1, 2, 3].map(i => parseInt(rgb[i], 10).toString(16).padStart(2, '0')).join('');
809
- }
810
- const rgba = s.match(/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*[\d.]+\s*\)/);
811
- if (rgba) {
812
- return '#' + [1, 2, 3].map(i => parseInt(rgba[i], 10).toString(16).padStart(2, '0')).join('');
813
- }
814
- const named = {
815
- black: '#000000', white: '#ffffff', red: '#ff0000', green: '#008000', blue: '#0000ff',
816
- };
817
- const lower = s.toLowerCase();
818
- return (_a = named[lower]) !== null && _a !== void 0 ? _a : (normalizeColorForCompare(s) || '#000000');
819
- }
820
- /** Нормализует цвет к hex для сравнения (без учёта прозрачности для уникальности) */
821
- function normalizeColorForCompare(raw) {
822
- const s = raw.trim();
823
- if (!s || s === 'none' || s === 'transparent')
824
- return null;
825
- if (/^url\(#/.test(s))
826
- return null; // градиент — не считаем как отдельный цвет
827
- if (/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(s)) {
828
- const m = s.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})/);
829
- return m ? '#' + (m[1].length === 3 ? m[1].replace(/(.)/g, '$1$1') : m[1]).toLowerCase() : null;
830
- }
831
- if (/^rgb\(/.test(s)) {
832
- const m = s.match(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);
833
- if (m)
834
- return '#' + [1, 2, 3].map(i => parseInt(m[i], 10).toString(16).padStart(2, '0')).join('');
835
- }
836
- if (/^rgba\(/.test(s)) {
837
- const m = s.match(/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*[\d.]+\s*\)/);
838
- if (m)
839
- return '#' + [1, 2, 3].map(i => parseInt(m[i], 10).toString(16).padStart(2, '0')).join('');
840
- }
841
- const namedColors = {
842
- black: '#000000', white: '#ffffff', red: '#ff0000', green: '#008000', blue: '#0000ff',
843
- };
844
- const lower = s.toLowerCase();
845
- if (namedColors[lower])
846
- return namedColors[lower];
847
- if (lower === 'currentcolor' || lower === 'inherit')
848
- return null;
849
- if (/^[a-zA-Z]+$/.test(s))
850
- return null;
851
- return null;
852
- }
853
- /** Извлекает значение CSS-свойства из строки style */
854
- function extractFromStyle(styleStr, prop) {
855
- const re = new RegExp(`${prop}\\s*:\\s*([^;]+)`, 'i');
856
- const m = styleStr.match(re);
857
- return m ? m[1].trim() : null;
858
- }
859
- /** Собирает все цвета fill/stroke из SVG (атрибуты + style) */
860
- function extractColorsFromSvg(svg) {
861
- const colors = [];
862
- const seen = new Set();
863
- // 1. Градиенты — stop-color
864
- const stopColors = Array.from(svg.matchAll(/<stop[^>]*?stop-color\s*=\s*["']([^"']+)["']/gi)).map(m => m[1]);
865
- stopColors.forEach(c => {
866
- const norm = normalizeColorForCompare(c);
867
- if (norm && !seen.has(norm)) {
868
- seen.add(norm);
869
- colors.push(c);
870
- }
871
- });
872
- // 2. Элементы с fill/stroke в атрибутах
873
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
874
- let match;
875
- while ((match = attrRe.exec(svg)) !== null) {
876
- const attrs = match[1];
877
- // fill="..." или fill='...'
878
- const fillM = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
879
- if (fillM && fillM[1]) {
880
- const norm = normalizeColorForCompare(fillM[1]);
881
- if (norm && !seen.has(norm)) {
882
- seen.add(norm);
883
- colors.push(fillM[1]);
884
- }
885
- }
886
- // stroke="..." или stroke='...'
887
- const strokeM = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
888
- if (strokeM && strokeM[1]) {
889
- const norm = normalizeColorForCompare(strokeM[1]);
890
- if (norm && !seen.has(norm)) {
891
- seen.add(norm);
892
- colors.push(strokeM[1]);
893
- }
894
- }
895
- // style="fill: ...; stroke: ..."
896
- const styleM = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
897
- if (styleM && styleM[1]) {
898
- const fill = extractFromStyle(styleM[1], 'fill');
899
- if (fill) {
900
- const norm = normalizeColorForCompare(fill);
901
- if (norm && !seen.has(norm)) {
902
- seen.add(norm);
903
- colors.push(fill);
904
- }
905
- }
906
- const stroke = extractFromStyle(styleM[1], 'stroke');
907
- if (stroke) {
908
- const norm = normalizeColorForCompare(stroke);
909
- if (norm && !seen.has(norm)) {
910
- seen.add(norm);
911
- colors.push(stroke);
912
- }
913
- }
914
- }
915
- }
916
- // 3. Глобальные fill/stroke на svg
917
- const svgOpen = svg.match(/<svg([^>]*)>/i);
918
- if (svgOpen && svgOpen[1]) {
919
- const attrs = svgOpen[1];
920
- for (const [attrName, reStr] of [
921
- ['fill', /fill\s*=\s*["']([^"']*)["']/i],
922
- ['stroke', /stroke\s*=\s*["']([^"']*)["']/i],
923
- ]) {
924
- const m = attrs.match(reStr);
925
- if (m && m[1]) {
926
- const norm = normalizeColorForCompare(m[1]);
927
- if (norm && !seen.has(norm)) {
928
- seen.add(norm);
929
- colors.push(m[1]);
930
- }
931
- }
932
- }
933
- const styleM = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
934
- if (styleM && styleM[1]) {
935
- for (const prop of ['fill', 'stroke']) {
936
- const v = extractFromStyle(styleM[1], prop);
937
- if (v) {
938
- const norm = normalizeColorForCompare(v);
939
- if (norm && !seen.has(norm)) {
940
- seen.add(norm);
941
- colors.push(v);
942
- }
943
- }
944
- }
945
- }
946
- }
947
- return colors;
948
- }
949
- /** Считает элементы с fill (не none, не url) */
950
- function countFills(svg) {
951
- let count = 0;
952
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
953
- let m;
954
- while ((m = attrRe.exec(svg)) !== null) {
955
- const attrs = m[1];
956
- const fillAttr = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
957
- const fillStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
958
- const fillFromAttr = fillAttr && fillAttr[1] && !/^none$/i.test(fillAttr[1]) && !/^url\(#/i.test(fillAttr[1]);
959
- const fillFromStyle = fillStyle && extractFromStyle(fillStyle[1], 'fill') && !/^none$/i.test(extractFromStyle(fillStyle[1], 'fill'));
960
- if (fillFromAttr || fillFromStyle)
961
- count += 1;
962
- }
963
- return count;
964
- }
965
- /** Считает элементы с stroke (не none, не url) */
966
- function countStrokes(svg) {
967
- let count = 0;
968
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
969
- let m;
970
- while ((m = attrRe.exec(svg)) !== null) {
971
- const attrs = m[1];
972
- const strokeAttr = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
973
- const strokeStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
974
- const strokeFromAttr = strokeAttr && strokeAttr[1] && !/^none$/i.test(strokeAttr[1]) && !/^url\(#/i.test(strokeAttr[1]);
975
- const strokeFromStyle = strokeStyle && extractFromStyle(strokeStyle[1], 'stroke') && !/^none$/i.test(extractFromStyle(strokeStyle[1], 'stroke'));
976
- if (strokeFromAttr || strokeFromStyle)
977
- count += 1;
978
- }
979
- return count;
980
- }
981
- /** Проверяет наличие градиентов (linear или radial) */
982
- function hasGradient(svg) {
983
- return /<linearGradient/i.test(svg) || /<radialGradient/i.test(svg) || /fill="url\(#|stroke="url\(#/i.test(svg);
984
- }
985
- /** Парсит числовое значение stroke-width, отбрасывая px, em и т.д. */
986
- function parseStrokeWidthValue(raw) {
987
- const s = raw.trim().replace(/(?:px|em|ex|%)\s*$/i, '');
988
- const v = parseFloat(s);
989
- if (Number.isNaN(v) || v <= 0 || v > 10)
990
- return null;
991
- return Math.round(v * 10) / 10;
992
- }
993
- /** Извлекает stroke-width из SVG — только из видимых shape-элементов, избегает defs */
994
- function extractStrokeWidth(svg) {
995
- const values = [];
996
- const defsEnd = svg.indexOf('</defs>');
997
- const mainContent = defsEnd >= 0 ? svg.slice(defsEnd) : svg;
998
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})[^>]*stroke-width\\s*=\\s*["']([^"']+)["']`, 'gi');
999
- let m;
1000
- while ((m = attrRe.exec(mainContent)) !== null) {
1001
- const v = parseStrokeWidthValue(m[1]);
1002
- if (v != null)
1003
- values.push(v);
1004
- }
1005
- const styleRe = new RegExp(`<(?:${SHAPE_TAGS})[^>]*style\\s*=\\s*["'][^"']*stroke-width\\s*:\\s*([^;"]+)[^"']*["']`, 'gi');
1006
- while ((m = styleRe.exec(mainContent)) !== null) {
1007
- const v = parseStrokeWidthValue(m[1]);
1008
- if (v != null)
1009
- values.push(v);
1010
- }
1011
- if (values.length === 0)
1012
- return undefined;
1013
- values.sort((a, b) => a - b);
1014
- const mid = Math.floor(values.length / 2);
1015
- return values.length % 2 === 1 ? values[mid] : (values[mid - 1] + values[mid]) / 2;
1016
- }
1017
- /** Парсит SVG и возвращает метаданные для определения стиля family */
1018
- function parseSvgForFamily(svg) {
1019
- const colors = extractColorsFromSvg(svg);
1020
- return {
1021
- colors,
1022
- fillsCount: countFills(svg),
1023
- strokesCount: countStrokes(svg),
1024
- hasGradient: hasGradient(svg),
1025
- strokeWidth: extractStrokeWidth(svg),
1026
- };
1027
- }
1028
- /** Агрегирует результаты по нескольким SVG */
1029
- function aggregateSvgParseResults(results) {
1030
- const allColors = [];
1031
- const colorSet = new Set();
1032
- let fillsCount = 0;
1033
- let strokesCount = 0;
1034
- let hasGradient = false;
1035
- let strokeWidth;
1036
- for (const r of results) {
1037
- fillsCount += r.fillsCount;
1038
- strokesCount += r.strokesCount;
1039
- if (r.hasGradient)
1040
- hasGradient = true;
1041
- for (const c of r.colors) {
1042
- const norm = normalizeColorForCompare(c);
1043
- if (norm && !colorSet.has(norm)) {
1044
- colorSet.add(norm);
1045
- allColors.push(c);
1046
- }
1047
- }
1048
- if (strokeWidth == null && r.strokeWidth != null)
1049
- strokeWidth = r.strokeWidth;
1050
- }
1051
- return {
1052
- colors: allColors,
1053
- fillsCount,
1054
- strokesCount,
1055
- hasGradient,
1056
- strokeWidth,
1057
- };
1058
- }
1059
- function addColorToMap(map, rawVal, nextIdxRef) {
1060
- const norm = normalizeColorForCompare(rawVal);
1061
- if (norm && !map.has(norm)) {
1062
- map.set(norm, nextIdxRef.v);
1063
- nextIdxRef.v = Math.min(nextIdxRef.v + 1, 3);
1064
- }
1065
- }
1066
- /**
1067
- * Строит карту: нормализованный цвет → индекс переменной (1, 2, 3...).
1068
- * Порядок — по первому появлению цвета (сначала svg, затем shape-элементы).
1069
- */
1070
- function buildFillColorToVarIndexMap(svg) {
1071
- var _a, _b, _c, _d;
1072
- const map = new Map();
1073
- const nextIdxRef = { v: 1 };
1074
- const svgOpen = svg.match(/<svg([^>]*)>/i);
1075
- if (svgOpen === null || svgOpen === void 0 ? void 0 : svgOpen[1]) {
1076
- const m = svgOpen[1].match(/fill\s*=\s*["']([^"']*)["']/i);
1077
- if ((m === null || m === void 0 ? void 0 : m[1]) && !/^none$/i.test(m[1]) && !/^url\(#/i.test(m[1]))
1078
- addColorToMap(map, m[1], nextIdxRef);
1079
- }
1080
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
1081
- let m;
1082
- while ((m = attrRe.exec(svg)) !== null) {
1083
- const attrs = m[1];
1084
- const fillAttr = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1085
- const fillStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1086
- const fillFromStyle = (_a = fillStyle === null || fillStyle === void 0 ? void 0 : fillStyle[1]) === null || _a === void 0 ? void 0 : _a.match(/fill\s*:\s*([^;]+)/i);
1087
- const fillVal = (_d = ((_b = fillAttr === null || fillAttr === void 0 ? void 0 : fillAttr[1]) !== null && _b !== void 0 ? _b : (_c = fillFromStyle === null || fillFromStyle === void 0 ? void 0 : fillFromStyle[1]) === null || _c === void 0 ? void 0 : _c.trim())) === null || _d === void 0 ? void 0 : _d.trim();
1088
- if (fillVal && !/^none$/i.test(fillVal) && !/^url\(#/i.test(fillVal)) {
1089
- addColorToMap(map, fillVal, nextIdxRef);
1090
- }
1091
- }
1092
- return map;
1093
- }
1094
- /**
1095
- * Единая карта цветов: fill и stroke в порядке появления.
1096
- * Используется для правильного отображения обводки (stroke) как отдельного цвета.
1097
- */
1098
- function buildUnifiedColorToVarIndexMap(svg) {
1099
- var _a, _b, _c, _d, _e, _f, _g, _h;
1100
- const map = new Map();
1101
- const nextIdxRef = { v: 1 };
1102
- const addColor = (rawVal) => {
1103
- const norm = normalizeColorForCompare(rawVal);
1104
- if (norm && !map.has(norm)) {
1105
- map.set(norm, nextIdxRef.v);
1106
- nextIdxRef.v = Math.min(nextIdxRef.v + 1, 3);
1107
- }
1108
- };
1109
- const svgOpen = svg.match(/<svg([^>]*)>/i);
1110
- if (svgOpen === null || svgOpen === void 0 ? void 0 : svgOpen[1]) {
1111
- const attrs = svgOpen[1];
1112
- const fillM = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1113
- const strokeM = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1114
- if ((fillM === null || fillM === void 0 ? void 0 : fillM[1]) && !/^none$/i.test(fillM[1]) && !/^url\(#/i.test(fillM[1]))
1115
- addColor(fillM[1]);
1116
- if ((strokeM === null || strokeM === void 0 ? void 0 : strokeM[1]) && !/^none$/i.test(strokeM[1]) && !/^url\(#/i.test(strokeM[1]))
1117
- addColor(strokeM[1]);
1118
- }
1119
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
1120
- let m;
1121
- while ((m = attrRe.exec(svg)) !== null) {
1122
- const attrs = m[1];
1123
- const fillAttr = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1124
- const fillStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1125
- const fillFromStyle = (_a = fillStyle === null || fillStyle === void 0 ? void 0 : fillStyle[1]) === null || _a === void 0 ? void 0 : _a.match(/fill\s*:\s*([^;]+)/i);
1126
- const fillVal = (_d = ((_b = fillAttr === null || fillAttr === void 0 ? void 0 : fillAttr[1]) !== null && _b !== void 0 ? _b : (_c = fillFromStyle === null || fillFromStyle === void 0 ? void 0 : fillFromStyle[1]) === null || _c === void 0 ? void 0 : _c.trim())) === null || _d === void 0 ? void 0 : _d.trim();
1127
- if (fillVal && !/^none$/i.test(fillVal) && !/^url\(#/i.test(fillVal))
1128
- addColor(fillVal);
1129
- const strokeAttr = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1130
- const strokeStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1131
- const strokeFromStyle = (_e = strokeStyle === null || strokeStyle === void 0 ? void 0 : strokeStyle[1]) === null || _e === void 0 ? void 0 : _e.match(/stroke\s*:\s*([^;]+)/i);
1132
- const strokeVal = (_h = ((_f = strokeAttr === null || strokeAttr === void 0 ? void 0 : strokeAttr[1]) !== null && _f !== void 0 ? _f : (_g = strokeFromStyle === null || strokeFromStyle === void 0 ? void 0 : strokeFromStyle[1]) === null || _g === void 0 ? void 0 : _g.trim())) === null || _h === void 0 ? void 0 : _h.trim();
1133
- if (strokeVal && !/^none$/i.test(strokeVal) && !/^url\(#/i.test(strokeVal))
1134
- addColor(strokeVal);
1135
- }
1136
- return map;
1137
- }
1138
- /** Аналогично для stroke. Учитывает stroke на <svg> — наследуется paths. */
1139
- function buildStrokeColorToVarIndexMap(svg) {
1140
- var _a, _b, _c, _d;
1141
- const map = new Map();
1142
- const nextIdxRef = { v: 1 };
1143
- const svgOpen = svg.match(/<svg([^>]*)>/i);
1144
- if (svgOpen === null || svgOpen === void 0 ? void 0 : svgOpen[1]) {
1145
- const m = svgOpen[1].match(/stroke\s*=\s*["']([^"']*)["']/i);
1146
- if ((m === null || m === void 0 ? void 0 : m[1]) && !/^none$/i.test(m[1]) && !/^url\(#/i.test(m[1]))
1147
- addColorToMap(map, m[1], nextIdxRef);
1148
- }
1149
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
1150
- let m;
1151
- while ((m = attrRe.exec(svg)) !== null) {
1152
- const attrs = m[1];
1153
- const strokeAttr = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1154
- const strokeStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1155
- const strokeFromStyle = (_a = strokeStyle === null || strokeStyle === void 0 ? void 0 : strokeStyle[1]) === null || _a === void 0 ? void 0 : _a.match(/stroke\s*:\s*([^;]+)/i);
1156
- const strokeVal = (_d = ((_b = strokeAttr === null || strokeAttr === void 0 ? void 0 : strokeAttr[1]) !== null && _b !== void 0 ? _b : (_c = strokeFromStyle === null || strokeFromStyle === void 0 ? void 0 : strokeFromStyle[1]) === null || _c === void 0 ? void 0 : _c.trim())) === null || _d === void 0 ? void 0 : _d.trim();
1157
- if (strokeVal && !/^none$/i.test(strokeVal) && !/^url\(#/i.test(strokeVal)) {
1158
- addColorToMap(map, strokeVal, nextIdxRef);
1159
- }
1160
- }
1161
- return map;
1162
- }
1163
- /**
1164
- * Извлекает цвета из SVG в том же порядке, что и buildUnifiedColorToVarIndexMap.
1165
- * Возвращает [color1, color2, color3] — сырые значения для пикеров.
1166
- */
1167
- function extractColorsInUnifiedOrder(svg) {
1168
- var _a, _b, _c, _d, _e, _f, _g, _h;
1169
- const result = [];
1170
- const seen = new Set();
1171
- const addColor = (rawVal) => {
1172
- const norm = normalizeColorForCompare(rawVal);
1173
- if (norm && !seen.has(norm)) {
1174
- seen.add(norm);
1175
- result.push(rawVal);
1176
- }
1177
- };
1178
- const stopColors = Array.from(svg.matchAll(/<stop[^>]*?stop-color\s*=\s*["']([^"']+)["']/gi)).map(m => m[1]);
1179
- if (stopColors.length >= 2) {
1180
- stopColors.slice(0, 3).forEach(c => addColor(c));
1181
- return result;
1182
- }
1183
- const svgOpen = svg.match(/<svg([^>]*)>/i);
1184
- if (svgOpen === null || svgOpen === void 0 ? void 0 : svgOpen[1]) {
1185
- const attrs = svgOpen[1];
1186
- const fillM = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1187
- const strokeM = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1188
- if ((fillM === null || fillM === void 0 ? void 0 : fillM[1]) && !/^none$/i.test(fillM[1]) && !/^url\(#/i.test(fillM[1]))
1189
- addColor(fillM[1]);
1190
- if ((strokeM === null || strokeM === void 0 ? void 0 : strokeM[1]) && !/^none$/i.test(strokeM[1]) && !/^url\(#/i.test(strokeM[1]))
1191
- addColor(strokeM[1]);
1192
- }
1193
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
1194
- let m;
1195
- while ((m = attrRe.exec(svg)) !== null) {
1196
- const attrs = m[1];
1197
- const fillAttr = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1198
- const fillStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1199
- const fillFromStyle = (_a = fillStyle === null || fillStyle === void 0 ? void 0 : fillStyle[1]) === null || _a === void 0 ? void 0 : _a.match(/fill\s*:\s*([^;]+)/i);
1200
- const fillVal = (_d = ((_b = fillAttr === null || fillAttr === void 0 ? void 0 : fillAttr[1]) !== null && _b !== void 0 ? _b : (_c = fillFromStyle === null || fillFromStyle === void 0 ? void 0 : fillFromStyle[1]) === null || _c === void 0 ? void 0 : _c.trim())) === null || _d === void 0 ? void 0 : _d.trim();
1201
- if (fillVal && !/^none$/i.test(fillVal) && !/^url\(#/i.test(fillVal))
1202
- addColor(fillVal);
1203
- const strokeAttr = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1204
- const strokeStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1205
- const strokeFromStyle = (_e = strokeStyle === null || strokeStyle === void 0 ? void 0 : strokeStyle[1]) === null || _e === void 0 ? void 0 : _e.match(/stroke\s*:\s*([^;]+)/i);
1206
- const strokeVal = (_h = ((_f = strokeAttr === null || strokeAttr === void 0 ? void 0 : strokeAttr[1]) !== null && _f !== void 0 ? _f : (_g = strokeFromStyle === null || strokeFromStyle === void 0 ? void 0 : strokeFromStyle[1]) === null || _g === void 0 ? void 0 : _g.trim())) === null || _h === void 0 ? void 0 : _h.trim();
1207
- if (strokeVal && !/^none$/i.test(strokeVal) && !/^url\(#/i.test(strokeVal))
1208
- addColor(strokeVal);
1209
- }
1210
- return result.slice(0, 3);
1211
- }
1212
- /** Извлекает цвета для установки в пикеры (stops, fills, strokes по приоритету) */
1213
- function extractColorsForPickers(svg) {
1214
- const stops = Array.from(svg.matchAll(/<stop[^>]*?stop-color\s*=\s*["']([^"']+)["']/gi)).map(m => m[1]);
1215
- const fills = [];
1216
- const strokes = [];
1217
- const svgOpen = svg.match(/<svg([^>]*)>/i);
1218
- if (svgOpen === null || svgOpen === void 0 ? void 0 : svgOpen[1]) {
1219
- const attrs = svgOpen[1];
1220
- const svgFill = attrs.match(/fill\s*=\s*["']([^"']+)["']/i);
1221
- const svgStroke = attrs.match(/stroke\s*=\s*["']([^"']+)["']/i);
1222
- if ((svgFill === null || svgFill === void 0 ? void 0 : svgFill[1]) && !/^none$/i.test(svgFill[1]) && !/^url\(#/i.test(svgFill[1]))
1223
- fills.push(svgFill[1]);
1224
- if ((svgStroke === null || svgStroke === void 0 ? void 0 : svgStroke[1]) && !/^none$/i.test(svgStroke[1]) && !/^url\(#/i.test(svgStroke[1]))
1225
- strokes.push(svgStroke[1]);
1226
- }
1227
- const attrRe = new RegExp(`<(?:${SHAPE_TAGS})([^>]*)>`, 'gi');
1228
- let m;
1229
- while ((m = attrRe.exec(svg)) !== null) {
1230
- const attrs = m[1];
1231
- const fillAttr = attrs.match(/fill\s*=\s*["']([^"']+)["']/i);
1232
- const strokeAttr = attrs.match(/stroke\s*=\s*["']([^"']+)["']/i);
1233
- if ((fillAttr === null || fillAttr === void 0 ? void 0 : fillAttr[1]) && !/^none$/i.test(fillAttr[1]) && !/^url\(#/i.test(fillAttr[1]))
1234
- fills.push(fillAttr[1]);
1235
- if ((strokeAttr === null || strokeAttr === void 0 ? void 0 : strokeAttr[1]) && !/^none$/i.test(strokeAttr[1]) && !/^url\(#/i.test(strokeAttr[1]))
1236
- strokes.push(strokeAttr[1]);
1237
- const styleM = attrs.match(/style\s*=\s*["']([^"']+)["']/i);
1238
- if (styleM) {
1239
- const f = extractFromStyle(styleM[1], 'fill');
1240
- const s = extractFromStyle(styleM[1], 'stroke');
1241
- if (f && !/^none$/i.test(f))
1242
- fills.push(f);
1243
- if (s && !/^none$/i.test(s))
1244
- strokes.push(s);
1245
- }
1246
- }
1247
- return { fills, strokes, stops };
1248
- }
1249
-
1250
- ;// ./src/components/ImageIcons/normalizeSvgForCss.ts
1251
-
1252
- /**
1253
- * Prepares SVG for tinting via CSS variables in the grid / preview (Lucide + Tabler / Iconify).
1254
- */
1255
- function normalizeSvgForCss(text, opts) {
1256
- let out = text;
1257
- const hasGradientDef = /<linearGradient[\s\S]*?<\/linearGradient>/i.test(out) || /<radialGradient[\s\S]*?<\/radialGradient>/i.test(out);
1258
- const usesGradientRef = /fill="url\(#/i.test(out) || /stroke="url\(#/i.test(out);
1259
- if (!usesGradientRef) {
1260
- const colorMap = buildUnifiedColorToVarIndexMap(out);
1261
- const getColorVar = (raw) => {
1262
- const norm = normalizeColorForCompare(raw);
1263
- const idx = norm ? colorMap.get(norm) : undefined;
1264
- if (idx === 1)
1265
- return 'var(--icon-color-1)';
1266
- if (idx === 2)
1267
- return 'var(--icon-color-2)';
1268
- if (idx === 3)
1269
- return 'var(--icon-color-3)';
1270
- return 'currentColor';
1271
- };
1272
- out = out.replace(/<svg([^>]*)>/i, (_full, attrs) => {
1273
- let newAttrs = attrs;
1274
- const svgFill = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1275
- if ((svgFill === null || svgFill === void 0 ? void 0 : svgFill[1]) && !/^none$/i.test(svgFill[1]) && !/^url\(#/i.test(svgFill[1])) {
1276
- newAttrs = newAttrs.replace(/fill\s*=\s*["'][^"']*["']/i, `fill="${getColorVar(svgFill[1])}"`);
1277
- }
1278
- const svgStroke = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1279
- if ((svgStroke === null || svgStroke === void 0 ? void 0 : svgStroke[1]) && !/^none$/i.test(svgStroke[1]) && !/^url\(#/i.test(svgStroke[1])) {
1280
- newAttrs = newAttrs.replace(/stroke\s*=\s*["'][^"']*["']/i, `stroke="${getColorVar(svgStroke[1])}"`);
1281
- }
1282
- return `<svg${newAttrs}>`;
1283
- });
1284
- out = out.replace(/<(path|rect|circle|ellipse|polygon|line|polyline)([^>]*?)(\/>|>)/gi, (_full, tag, attrs, end) => {
1285
- var _a, _b, _c, _d, _e, _f, _g, _h;
1286
- let newAttrs = attrs;
1287
- const fillAttr = attrs.match(/fill\s*=\s*["']([^"']*)["']/i);
1288
- const fillStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1289
- const fillFromStyle = (_a = fillStyle === null || fillStyle === void 0 ? void 0 : fillStyle[1]) === null || _a === void 0 ? void 0 : _a.match(/fill\s*:\s*([^;]+)/i);
1290
- const fillVal = (_d = ((_b = fillAttr === null || fillAttr === void 0 ? void 0 : fillAttr[1]) !== null && _b !== void 0 ? _b : (_c = fillFromStyle === null || fillFromStyle === void 0 ? void 0 : fillFromStyle[1]) === null || _c === void 0 ? void 0 : _c.trim())) === null || _d === void 0 ? void 0 : _d.trim();
1291
- if (fillVal && !/^none$/i.test(fillVal) && !/^url\(#/i.test(fillVal)) {
1292
- const varName = getColorVar(fillVal);
1293
- if (fillAttr)
1294
- newAttrs = newAttrs.replace(/fill\s*=\s*["'][^"']*["']/i, `fill="${varName}"`);
1295
- else if (fillStyle === null || fillStyle === void 0 ? void 0 : fillStyle[1]) {
1296
- newAttrs = newAttrs.replace(/style\s*=\s*["']([^"']*)["']/i, (_m, s) => {
1297
- const replaced = s.replace(/fill\s*:\s*[^;]+/gi, 'fill: ' + varName);
1298
- return 'style="' + replaced + '"';
1299
- });
1300
- }
1301
- }
1302
- const strokeAttr = attrs.match(/stroke\s*=\s*["']([^"']*)["']/i);
1303
- const strokeStyle = attrs.match(/style\s*=\s*["']([^"']*)["']/i);
1304
- const strokeFromStyle = (_e = strokeStyle === null || strokeStyle === void 0 ? void 0 : strokeStyle[1]) === null || _e === void 0 ? void 0 : _e.match(/stroke\s*:\s*([^;]+)/i);
1305
- const strokeVal = (_h = ((_f = strokeAttr === null || strokeAttr === void 0 ? void 0 : strokeAttr[1]) !== null && _f !== void 0 ? _f : (_g = strokeFromStyle === null || strokeFromStyle === void 0 ? void 0 : strokeFromStyle[1]) === null || _g === void 0 ? void 0 : _g.trim())) === null || _h === void 0 ? void 0 : _h.trim();
1306
- const hasStroke = strokeVal && !/^none$/i.test(strokeVal) && !/^url\(#/i.test(strokeVal);
1307
- if (hasStroke) {
1308
- const varName = getColorVar(strokeVal);
1309
- if (strokeAttr)
1310
- newAttrs = newAttrs.replace(/stroke\s*=\s*["'][^"']*["']/i, `stroke="${varName}"`);
1311
- else if (strokeStyle === null || strokeStyle === void 0 ? void 0 : strokeStyle[1]) {
1312
- newAttrs = newAttrs.replace(/style\s*=\s*["']([^"']*)["']/i, (_m, s) => {
1313
- const replaced = s.replace(/stroke\s*:\s*[^;]+/gi, 'stroke: ' + varName);
1314
- return 'style="' + replaced + '"';
1315
- });
1316
- }
1317
- }
1318
- return `<${tag}${newAttrs}${end}`;
1319
- });
1320
- }
1321
- if (hasGradientDef) {
1322
- out = out.replace(/<linearGradient([^>]*?)>([\s\S]*?)<\/linearGradient>/gi, (_full, attrs, inner) => {
1323
- let idx = 0;
1324
- const replacedInner = inner.replace(/<stop([^>]*?)>/gi, (_s, sattrs) => {
1325
- const varName = idx === 0 ? 'var(--icon-grad-1)' : 'var(--icon-grad-2)';
1326
- idx += 1;
1327
- if (/stop-color\s*=/.test(sattrs)) {
1328
- const replaced = sattrs.replace(/stop-color="[^"]*"/i, 'stop-color="' + varName + '"');
1329
- return '<stop' + replaced + '>';
1330
- }
1331
- return '<stop' + sattrs + ' stop-color="' + varName + '">';
1332
- });
1333
- return `<linearGradient${attrs}>${replacedInner}</linearGradient>`;
1334
- });
1335
- out = out.replace(/<radialGradient([^>]*?)>([\s\S]*?)<\/radialGradient>/gi, (_full, attrs, inner) => {
1336
- let idx = 0;
1337
- const replacedInner = inner.replace(/<stop([^>]*?)>/gi, (_s, sattrs) => {
1338
- const varName = idx === 0 ? 'var(--icon-grad-1)' : 'var(--icon-grad-2)';
1339
- idx += 1;
1340
- if (/stop-color\s*=/.test(sattrs)) {
1341
- const replaced = sattrs.replace(/stop-color="[^"]*"/i, 'stop-color="' + varName + '"');
1342
- return '<stop' + replaced + '>';
1343
- }
1344
- return '<stop' + sattrs + ' stop-color="' + varName + '">';
1345
- });
1346
- return `<radialGradient${attrs}>${replacedInner}</radialGradient>`;
1347
- });
1348
- }
1349
- if (typeof (opts === null || opts === void 0 ? void 0 : opts.strokeWidth) === 'number' && !Number.isNaN(opts.strokeWidth)) {
1350
- if (/stroke-width\s*=\s*["'][^"']*["']/i.test(out)) {
1351
- out = out.replace(/stroke-width\s*=\s*["'][^"']*["']/gi, `stroke-width="${opts.strokeWidth}"`);
1352
- }
1353
- if (/stroke-width\s*:/.test(out)) {
1354
- out = out.replace(/stroke-width\s*:\s*[^;]+/gi, `stroke-width: ${opts.strokeWidth}`);
1355
- }
1356
- if (!/stroke-width/i.test(out)) {
1357
- out = out.replace(/<svg/, `<svg stroke-width="${opts.strokeWidth}"`);
1358
- }
1359
- }
1360
- out = out.replace(/<svg([^>]*)>/i, (_full, attrs) => {
1361
- const newAttrs = attrs.replace(/\swidth="[^"]*"/i, '').replace(/\sheight="[^"]*"/i, '');
1362
- return `<svg${newAttrs} width="100%" height="100%">`;
1363
- });
1364
- return out;
1365
- }
1366
-
1367
- ;// ./src/components/ImageIcons/useIconifyStock.ts
1368
-
1369
-
1370
-
1371
-
1372
-
1373
-
1374
- const svgCache = new Map();
1375
- const ICON_JSON_BY_PREFIX = {
1376
- [lucide/* icons */.Pt.prefix || 'lucide']: lucide/* icons */.Pt,
1377
- [tabler/* icons */.Pt.prefix || 'tabler']: tabler/* icons */.Pt,
1378
- };
1379
- function parseStockIconId(iconId) {
1380
- const i = iconId.indexOf(':');
1381
- if (i <= 0)
1382
- return null;
1383
- const prefix = iconId.slice(0, i);
1384
- const slug = iconId.slice(i + 1);
1385
- if (!slug)
1386
- return null;
1387
- return { prefix, slug };
1388
- }
1389
- function buildRawSvg(prefix, slug, size) {
1390
- const set = ICON_JSON_BY_PREFIX[prefix];
1391
- if (!set) {
1392
- throw new Error(`Unknown icon set prefix: ${prefix}`);
1393
- }
1394
- const data = (0,get_icon/* getIconData */.y)(set, slug);
1395
- if (!data) {
1396
- throw new Error(`Unknown icon: ${prefix}:${slug}`);
1397
- }
1398
- const built = (0,build/* iconToSVG */.p)(data, { width: size, height: size });
1399
- let svg = (0,html/* iconToHTML */.U)(built.body, built.attributes);
1400
- svg = svg.replace(/<svg([^>]*)>/i, (_full, attrs) => {
1401
- const newAttrs = attrs.replace(/\swidth="[^"]*"/i, '').replace(/\sheight="[^"]*"/i, '');
1402
- return `<svg${newAttrs} width="100%" height="100%">`;
1403
- });
1404
- return svg;
1405
- }
1406
- function useIconifyStock(useCssColor) {
1407
- const fetchSvgDataUrl = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (iconId, options) => {
1408
- var _a, _b, _c, _d, _e, _f, _g, _h;
1409
- const parsed = parseStockIconId(iconId);
1410
- if (!parsed) {
1411
- throw new Error(`Invalid icon id (expected prefix:name): ${iconId}`);
1412
- }
1413
- const { prefix, slug } = parsed;
1414
- const size = (_a = options === null || options === void 0 ? void 0 : options.size) !== null && _a !== void 0 ? _a : 96;
1415
- const keyParts = [
1416
- iconId,
1417
- useCssColor ? 'css=1' : 'css=0',
1418
- useCssColor
1419
- ? ''
1420
- : `c1=${(_c = (_b = options === null || options === void 0 ? void 0 : options.inlineColors) === null || _b === void 0 ? void 0 : _b.colorHex) !== null && _c !== void 0 ? _c : ''}|c2=${(_e = (_d = options === null || options === void 0 ? void 0 : options.inlineColors) === null || _d === void 0 ? void 0 : _d.colorHex2) !== null && _e !== void 0 ? _e : ''}|c3=${(_g = (_f = options === null || options === void 0 ? void 0 : options.inlineColors) === null || _f === void 0 ? void 0 : _f.colorHex3) !== null && _g !== void 0 ? _g : ''}`,
1421
- (options === null || options === void 0 ? void 0 : options.strokeWidth) != null ? `sw=${options.strokeWidth}` : '',
1422
- `s=${size}`,
1423
- ].filter(Boolean);
1424
- const cacheKey = keyParts.join('|');
1425
- const cached = svgCache.get(cacheKey);
1426
- if (cached)
1427
- return cached;
1428
- if ((_h = options === null || options === void 0 ? void 0 : options.signal) === null || _h === void 0 ? void 0 : _h.aborted) {
1429
- throw new DOMException('Aborted', 'AbortError');
1430
- }
1431
- const originalText = buildRawSvg(prefix, slug, size);
1432
- let svgText = originalText;
1433
- if (useCssColor) {
1434
- svgText = normalizeSvgForCss(svgText, { strokeWidth: options === null || options === void 0 ? void 0 : options.strokeWidth });
1435
- }
1436
- else if (options === null || options === void 0 ? void 0 : options.inlineColors) {
1437
- svgText = (0,svgToPng/* applyInlineColors */.K7)(svgText, options.inlineColors);
1438
- }
1439
- const dataUrl = `data:image/svg+xml;utf8,${encodeURIComponent(svgText)}`;
1440
- const result = { text: svgText, url: dataUrl, original: originalText };
1441
- svgCache.set(cacheKey, result);
1442
- return result;
1443
- }, [useCssColor]);
1444
- return { fetchSvgDataUrl, normalizeSvgForCss: normalizeSvgForCss };
1445
- }
1446
-
1447
- // EXTERNAL MODULE: ./src/components/FolderTree/FolderTree.tsx + 1 modules
1448
- var FolderTree = __webpack_require__(486);
1449
- // EXTERNAL MODULE: ./src/components/FileModals/FileModals.module.scss
1450
- var FileModals_module = __webpack_require__(5954);
1451
- // EXTERNAL MODULE: ./src/hooks/useFolderSelectionMenu.tsx
1452
- var useFolderSelectionMenu = __webpack_require__(520);
1453
- // EXTERNAL MODULE: ./src/hooks/useNotifications.tsx
1454
- var useNotifications = __webpack_require__(3435);
1455
- // EXTERNAL MODULE: ./src/utils/dedupeUploadNamesOnClient.ts
1456
- var dedupeUploadNamesOnClient = __webpack_require__(3795);
1457
- // EXTERNAL MODULE: ./src/utils/nameNormalization.ts
1458
- var nameNormalization = __webpack_require__(7407);
1459
- // EXTERNAL MODULE: ./src/utils/resolveUniqueUploadName.ts
1460
- var resolveUniqueUploadName = __webpack_require__(7742);
1461
- ;// ./src/components/ImageIcons/useIconsCopyToFolder.tsx
1462
-
1463
-
1464
-
1465
-
1466
-
1467
-
1468
-
1469
-
1470
-
1471
-
1472
- async function uploadSelectedIconsToFolder(params) {
1473
- var _a;
1474
- const { hashes, items, folderId, dataProviders, getPngDataUrlForItem, dataUrlToBlob, config } = params;
1475
- let successCount = 0;
1476
- let failCount = 0;
1477
- for (const hash of hashes) {
1478
- const item = items.find(i => i.hash === hash);
1479
- if (!item) {
1480
- failCount += 1;
1481
- continue;
1482
- }
1483
- const dataUrl = await getPngDataUrlForItem(item);
1484
- if (!dataUrl) {
1485
- failCount += 1;
1486
- continue;
1487
- }
1488
- const fileNameBase = ((_a = item.name) === null || _a === void 0 ? void 0 : _a.trim()) || `icon-${hash}`;
1489
- const normalizedFileName = (0,nameNormalization/* normalizeFileName */.Px)(`${fileNameBase}.png`, config);
1490
- const fileName = await (0,resolveUniqueUploadName/* resolveUniqueUploadNameWithProvider */.v)(dataProviders, normalizedFileName, folderId, false, (0,dedupeUploadNamesOnClient/* isDedupeUploadNamesOnClientEnabled */.m)(config));
1491
- const blob = dataUrlToBlob(dataUrl, 'image/png');
1492
- const file = new File([blob], fileName, {
1493
- type: 'image/png',
1494
- lastModified: Date.now(),
1495
- });
1496
- try {
1497
- await dataProviders.uploadFile({
1498
- name: fileName,
1499
- size: file.size,
1500
- type: file.type,
1501
- folderId,
1502
- data: file,
1503
- extension: 'png',
1504
- });
1505
- successCount += 1;
1506
- }
1507
- catch (_b) {
1508
- failCount += 1;
1509
- }
1510
- }
1511
- return { successCount, failCount };
1512
- }
1513
- const useIconsCopyToFolder = ({ items, selectedHashes, getPngDataUrlForItem, dataUrlToBlob, clearSelection, }) => {
1514
- const { t } = (0,es/* useTranslation */.Bd)();
1515
- const { options, state: fmState } = (0,hooks/* useFileManagerContext */.wh)();
1516
- const notification = (0,useNotifications/* useNotifications */.E$)();
1517
- const [isCopyIconsModalVisible, setIsCopyIconsModalVisible] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(false);
1518
- const [copyForm] = external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form.useForm();
1519
- const [isCopyLoading, setIsCopyLoading] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(false);
1520
- const copyInFlightRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(false);
1521
- const { state: foldersState, actions: { fetchFolders, fetchChildFolders, handleModalOk: handleFolderModalOk }, } = (0,hooks/* useFolders */.nv)();
1522
- const { EmptyFolderIcon } = (0,useCustomIcons/* useCustomIcons */.D)();
1523
- const { activeFormField, setActiveFormField, generateMenuItemsFromFolders } = (0,useFolderSelectionMenu/* useFolderSelectionMenu */.p)({
1524
- folders: Array.isArray(foldersState.folders) ? foldersState.folders : [],
1525
- selectedFolder: fmState.selectedFolder,
1526
- EmptyFolderIcon,
1527
- handleCreateFolderModalOk: handleFolderModalOk,
1528
- setIsLoading: setIsCopyLoading,
1529
- t,
1530
- });
1531
- const openCopyModal = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async () => {
1532
- await fetchFolders();
1533
- setIsCopyIconsModalVisible(true);
1534
- }, [fetchFolders]);
1535
- const handleCopyTreeSelect = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (selectedKeys) => {
1536
- if (selectedKeys.length > 0) {
1537
- copyForm.setFieldsValue({ targetFolder: selectedKeys[0] });
1538
- if (activeFormField !== selectedKeys[0].toString()) {
1539
- setActiveFormField('');
1540
- }
1541
- }
1542
- }, [activeFormField, copyForm, setActiveFormField]);
1543
- const performCopyToFolder = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (overrideFolderId) => {
1544
- var _a, _b;
1545
- try {
1546
- const { dataProviders } = options;
1547
- if (!dataProviders || (!dataProviders.uploadFile && !dataProviders.uploadFiles)) {
1548
- notification.error({
1549
- id: 'FILES_UPLOAD_PROVIDER_NOT_CONFIGURED',
1550
- message: t('API-endpoint for file upload is not configured'),
1551
- placement: 'bottomRight',
1552
- });
1553
- return;
1554
- }
1555
- const folderId = overrideFolderId || (fmState === null || fmState === void 0 ? void 0 : fmState.selectedFolder) || undefined;
1556
- const hashes = Array.from(selectedHashes);
1557
- if (hashes.length === 0)
1558
- return;
1559
- const uploadFile = (_a = dataProviders.uploadFile) !== null && _a !== void 0 ? _a : (async (args) => {
1560
- var _a, _b, _c;
1561
- if (!dataProviders.uploadFiles) {
1562
- throw new Error('Upload is not supported by data provider');
1563
- }
1564
- const result = await dataProviders.uploadFiles({
1565
- folderId: args.folderId,
1566
- items: [
1567
- {
1568
- name: args.name,
1569
- size: args.size,
1570
- type: args.type,
1571
- folderId: args.folderId,
1572
- data: args.data,
1573
- extension: args.extension,
1574
- },
1575
- ],
1576
- });
1577
- const first = (_a = result === null || result === void 0 ? void 0 : result.detailed) === null || _a === void 0 ? void 0 : _a[0];
1578
- if (!result || !result.success || !first || first.success === false) {
1579
- const errorMessage = ((_b = first === null || first === void 0 ? void 0 : first.error) === null || _b === void 0 ? void 0 : _b.message) || ((_c = result === null || result === void 0 ? void 0 : result.error) === null || _c === void 0 ? void 0 : _c.message) || 'Upload failed';
1580
- throw new Error(errorMessage);
1581
- }
1582
- return first.data;
1583
- });
1584
- const { successCount, failCount } = await uploadSelectedIconsToFolder({
1585
- hashes,
1586
- items,
1587
- folderId,
1588
- dataProviders: {
1589
- uploadFile,
1590
- getFiles: dataProviders.getFiles,
1591
- getFolders: dataProviders.getFolders,
1592
- },
1593
- getPngDataUrlForItem,
1594
- dataUrlToBlob,
1595
- config: options === null || options === void 0 ? void 0 : options.config,
1596
- });
1597
- if (successCount > 0) {
1598
- notification.success({
1599
- id: 'FILES_COPY_SUCCESS',
1600
- message: t('Files copied'),
1601
- placement: 'bottomRight',
1602
- data: {
1603
- successCount,
1604
- totalCount: hashes.length,
1605
- itemIds: hashes,
1606
- folderId: folderId !== null && folderId !== void 0 ? folderId : null,
1607
- },
1608
- });
1609
- }
1610
- if (failCount > 0) {
1611
- notification.error({
1612
- id: 'FILES_COPY_ERROR',
1613
- message: t('При копировании произошли ошибки'),
1614
- placement: 'bottomRight',
1615
- data: {
1616
- failCount,
1617
- totalCount: hashes.length,
1618
- itemIds: hashes,
1619
- folderId: folderId !== null && folderId !== void 0 ? folderId : null,
1620
- },
1621
- });
1622
- }
1623
- clearSelection();
1624
- }
1625
- catch (e) {
1626
- console.error(e);
1627
- notification.error({
1628
- id: 'FILES_COPY_ERROR',
1629
- message: t('При копировании произошли ошибки'),
1630
- placement: 'bottomRight',
1631
- innerException: e,
1632
- data: {
1633
- failCount: Array.from(selectedHashes).length || 0,
1634
- totalCount: Array.from(selectedHashes).length || 0,
1635
- itemIds: Array.from(selectedHashes),
1636
- folderId: (_b = fmState === null || fmState === void 0 ? void 0 : fmState.selectedFolder) !== null && _b !== void 0 ? _b : null,
1637
- },
1638
- });
1639
- }
1640
- }, [
1641
- clearSelection,
1642
- dataUrlToBlob,
1643
- getPngDataUrlForItem,
1644
- items,
1645
- notification,
1646
- options,
1647
- selectedHashes,
1648
- fmState === null || fmState === void 0 ? void 0 : fmState.selectedFolder,
1649
- t,
1650
- ]);
1651
- const closeCopyModal = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(() => {
1652
- if (isCopyLoading || copyInFlightRef.current)
1653
- return;
1654
- setIsCopyIconsModalVisible(false);
1655
- setActiveFormField('');
1656
- setIsCopyLoading(false);
1657
- }, [isCopyLoading, setActiveFormField]);
1658
- const resetAfterClose = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(() => {
1659
- setActiveFormField('');
1660
- setIsCopyLoading(false);
1661
- }, [setActiveFormField]);
1662
- const handleIconsCopyOk = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (targetFolder) => {
1663
- if (copyInFlightRef.current)
1664
- return;
1665
- copyInFlightRef.current = true;
1666
- setIsCopyLoading(true);
1667
- try {
1668
- await performCopyToFolder(targetFolder !== null && targetFolder !== void 0 ? targetFolder : null);
1669
- setIsCopyIconsModalVisible(false);
1670
- setActiveFormField('');
1671
- }
1672
- finally {
1673
- copyInFlightRef.current = false;
1674
- setIsCopyLoading(false);
1675
- }
1676
- }, [performCopyToFolder, setActiveFormField]);
1677
- const handleCreateFolderAndCopy = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(() => {
1678
- var _a;
1679
- const targetFolder = (_a = fmState.selectedFolder) !== null && _a !== void 0 ? _a : 'folders';
1680
- setActiveFormField(targetFolder);
1681
- copyForm.setFieldsValue({ folderName: t('New folder'), targetFolder });
1682
- }, [copyForm, fmState.selectedFolder, setActiveFormField, t]);
1683
- return {
1684
- isCopyIconsModalVisible,
1685
- isCopyLoading,
1686
- copyForm,
1687
- openCopyModal,
1688
- closeCopyModal,
1689
- resetAfterClose,
1690
- handleCopyTreeSelect,
1691
- handleIconsCopyOk,
1692
- handleCreateFolderAndCopy,
1693
- fetchChildFolders,
1694
- generateMenuItemsFromFolders,
1695
- };
1696
- };
1697
-
1698
- ;// ./src/components/ImageIcons/IconsTab.tsx
1699
-
1700
-
1701
-
1702
-
1703
-
1704
-
1705
-
1706
-
1707
-
1708
-
1709
-
1710
-
1711
-
1712
-
1713
-
1714
-
1715
-
1716
-
1717
-
1718
- const FIRST_LOAD_LIMIT = 30;
1719
- const SCROLL_LOAD_LIMIT = 30;
1720
- const ICON_STOCK_SVG_FETCH_CONCURRENCY = 8;
1721
- async function mapWithConcurrency(items, limit, fn) {
1722
- if (items.length === 0)
1723
- return [];
1724
- const results = new Array(items.length);
1725
- let nextIndex = 0;
1726
- const poolSize = Math.max(1, Math.min(limit, items.length));
1727
- const worker = async () => {
1728
- while (true) {
1729
- const i = nextIndex++;
1730
- if (i >= items.length)
1731
- return;
1732
- results[i] = await fn(items[i]);
1733
- }
1734
- };
1735
- await Promise.all(Array.from({ length: poolSize }, () => worker()));
1736
- return results;
1737
- }
1738
- const IconsTab = ({ customRequest, query: queryProp, setQuery: setQueryProp, inputRef, }) => {
1739
- var _a, _b, _c;
1740
- const { t } = (0,es/* useTranslation */.Bd)();
1741
- const message = (0,useNotificationsBase/* useMessage */.JX)();
1742
- const [localQuery, setLocalQuery] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState('');
1743
- const query = queryProp !== undefined ? queryProp : localQuery;
1744
- const setQuery = setQueryProp !== undefined ? setQueryProp : setLocalQuery;
1745
- const [effectiveQuery, setEffectiveQuery] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState('');
1746
- const [items, setItems] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState([]);
1747
- const [offset, setOffset] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(0);
1748
- const [hasMore, setHasMore] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(false);
1749
- const [loading, setLoading] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(false);
1750
- const [isCollectingResults, setIsCollectingResults] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(false);
1751
- const [selectedHash, setSelectedHash] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(null);
1752
- const [svgTextMap, setSvgTextMap] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState({});
1753
- const [originalSvgMap, setOriginalSvgMap] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState({});
1754
- const [colorHex, setColorHex] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState('#000000');
1755
- const [colorHex2, setColorHex2] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState('#ff007a');
1756
- const [colorHex3, setColorHex3] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState('#00C2FF');
1757
- const [strokeWidth, setStrokeWidth] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(1);
1758
- const [sizePx, setSizePx] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(50);
1759
- /** Lucide / Tabler SVG: CSS variables in the grid; PNG export bakes colors client-side. */
1760
- const useCssColor = true;
1761
- const [isInsertLoading, setIsInsertLoading] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(false);
1762
- const fileManager = (0,hooks/* useFileManagerContext */.wh)();
1763
- const { options } = fileManager;
1764
- const isMountedRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(false);
1765
- const searchDebounceRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
1766
- const searchSeqRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(0);
1767
- const lastCompletedSearchSignatureRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
1768
- const fetchSearchRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
1769
- const translateRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(undefined);
1770
- translateRef.current = resolveIconStockTranslate(options === null || options === void 0 ? void 0 : options.config);
1771
- const localeRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef((_a = options === null || options === void 0 ? void 0 : options.config) === null || _a === void 0 ? void 0 : _a.locale);
1772
- localeRef.current = (_b = options === null || options === void 0 ? void 0 : options.config) === null || _b === void 0 ? void 0 : _b.locale;
1773
- const svgAbortRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
1774
- const svgLoadFailuresRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(new Set());
1775
- const insertAbortRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
1776
- const inFlightSearchKeysRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(new Set());
1777
- const [selectedHashes, setSelectedHashes] = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useState(new Set());
1778
- const sortedStockIdsRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef([]);
1779
- const colorsExtractedForQueryRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(null);
1780
- const { fetchSvgDataUrl, normalizeSvgForCss } = useIconifyStock(useCssColor);
1781
- const aggregatedParse = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useMemo(() => {
1782
- if (items.length === 0)
1783
- return null;
1784
- const itemHashes = new Set(items.map(i => i.hash));
1785
- const source = Object.keys(originalSvgMap).some(h => itemHashes.has(h)) ? originalSvgMap : svgTextMap;
1786
- const texts = items.map(i => source[i.hash]).filter((t) => Boolean(t));
1787
- if (texts.length === 0)
1788
- return null;
1789
- const results = texts.map(txt => parseSvgForFamily(txt));
1790
- return aggregateSvgParseResults(results);
1791
- }, [items, originalSvgMap, svgTextMap]);
1792
- const hasAnyGradient = Boolean(aggregatedParse === null || aggregatedParse === void 0 ? void 0 : aggregatedParse.hasGradient);
1793
- const usesSecondColorVar = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useMemo(() => {
1794
- return items.some(i => {
1795
- const txt = svgTextMap[i.hash];
1796
- return txt && /var\(--icon-color-2\)/i.test(txt);
1797
- });
1798
- }, [items, svgTextMap]);
1799
- const usesThirdColorVar = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useMemo(() => {
1800
- return items.some(i => {
1801
- const txt = svgTextMap[i.hash];
1802
- return txt && /var\(--icon-color-3\)/i.test(txt);
1803
- });
1804
- }, [items, svgTextMap]);
1805
- const showSecondColor = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useMemo(() => {
1806
- if (!useCssColor)
1807
- return false;
1808
- if (!aggregatedParse)
1809
- return false;
1810
- return hasAnyGradient || (aggregatedParse.colors.length >= 2 && usesSecondColorVar);
1811
- }, [aggregatedParse, hasAnyGradient, useCssColor, usesSecondColorVar]);
1812
- const showThirdColor = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useMemo(() => {
1813
- if (!useCssColor)
1814
- return false;
1815
- if (!aggregatedParse)
1816
- return false;
1817
- return aggregatedParse.colors.length >= 3 && usesThirdColorVar;
1818
- }, [aggregatedParse, useCssColor, usesThirdColorVar]);
1819
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
1820
- isMountedRef.current = true;
1821
- return () => {
1822
- var _a, _b;
1823
- isMountedRef.current = false;
1824
- try {
1825
- (_a = svgAbortRef.current) === null || _a === void 0 ? void 0 : _a.abort();
1826
- (_b = insertAbortRef.current) === null || _b === void 0 ? void 0 : _b.abort();
1827
- }
1828
- catch (_c) {
1829
- // ignore
1830
- }
1831
- };
1832
- }, []);
1833
- const initialQueryRef = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef(query);
1834
- const fetchSearch = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(
1835
- // eslint-disable-next-line sonarjs/cognitive-complexity -- lucide search + infinite scroll
1836
- async (args) => {
1837
- var _a, _b, _c;
1838
- const baseQuery = (_b = (_a = args.override) === null || _a === void 0 ? void 0 : _a.query) !== null && _b !== void 0 ? _b : effectiveQuery;
1839
- if (!baseQuery || baseQuery.trim().length < 3)
1840
- return;
1841
- if (args.initial ? loading : isCollectingResults || loading)
1842
- return;
1843
- if (!isMountedRef.current)
1844
- return;
1845
- if (args.initial) {
1846
- sortedStockIdsRef.current =
1847
- ((_c = args.override) === null || _c === void 0 ? void 0 : _c.stockIds) !== undefined ? args.override.stockIds : listMatchingStockIconIds(baseQuery);
1848
- setLoading(true);
1849
- setItems([]);
1850
- setSvgTextMap({});
1851
- setOriginalSvgMap({});
1852
- setOffset(0);
1853
- setHasMore(false);
1854
- }
1855
- else {
1856
- setIsCollectingResults(true);
1857
- }
1858
- const all = sortedStockIdsRef.current;
1859
- const currentOffset = args.initial ? 0 : offset;
1860
- const limit = args.initial ? FIRST_LOAD_LIMIT : SCROLL_LOAD_LIMIT;
1861
- const requestKey = `${baseQuery}|${currentOffset}|${limit}|${args.initial ? 'i' : 'm'}`;
1862
- if (inFlightSearchKeysRef.current.has(requestKey)) {
1863
- return;
1864
- }
1865
- inFlightSearchKeysRef.current.add(requestKey);
1866
- try {
1867
- const batch = all.slice(currentOffset, currentOffset + limit).map(stockIconIdToItem);
1868
- if (!isMountedRef.current)
1869
- return;
1870
- if (args.initial) {
1871
- const nextItems = batch.filter((item, index, allItems) => allItems.findIndex(candidate => candidate.hash === item.hash) === index);
1872
- setItems(nextItems);
1873
- }
1874
- else {
1875
- setItems(prev => {
1876
- const knownHashes = new Set(prev.map(item => item.hash));
1877
- const nextBatch = batch.filter(item => !knownHashes.has(item.hash));
1878
- return nextBatch.length > 0 ? [...prev, ...nextBatch] : prev;
1879
- });
1880
- }
1881
- setHasMore(currentOffset + batch.length < all.length);
1882
- setOffset(currentOffset + batch.length);
1883
- }
1884
- catch (e) {
1885
- if ((e === null || e === void 0 ? void 0 : e.name) === 'AbortError')
1886
- return;
1887
- console.error(e);
1888
- message.error(t('Request error'));
1889
- }
1890
- finally {
1891
- if (isMountedRef.current) {
1892
- if (args.initial) {
1893
- setLoading(false);
1894
- }
1895
- else {
1896
- setIsCollectingResults(false);
1897
- }
1898
- }
1899
- inFlightSearchKeysRef.current.delete(requestKey);
1900
- }
1901
- }, [effectiveQuery, isCollectingResults, loading, offset, t]);
1902
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
1903
- fetchSearchRef.current = fetchSearch;
1904
- }, [fetchSearch]);
1905
- const runSearch = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (rawQuery) => {
1906
- var _a;
1907
- if (!rawQuery || rawQuery.trim().length < 3)
1908
- return;
1909
- const requestedSignature = rawQuery.trim();
1910
- if (lastCompletedSearchSignatureRef.current === requestedSignature) {
1911
- return;
1912
- }
1913
- const requestId = ++searchSeqRef.current;
1914
- const rawTrim = rawQuery.trim();
1915
- let translatedQuery = rawTrim;
1916
- if (translateRef.current) {
1917
- try {
1918
- const out = await translateRef.current(rawQuery, { locale: localeRef.current });
1919
- translatedQuery = (out !== null && out !== void 0 ? out : rawTrim).trim() || rawTrim;
1920
- }
1921
- catch (e) {
1922
- console.error('IconsTab: translation error', e);
1923
- translatedQuery = rawTrim;
1924
- }
1925
- }
1926
- if (requestId !== searchSeqRef.current)
1927
- return;
1928
- svgLoadFailuresRef.current.clear();
1929
- setSelectedHash(null);
1930
- setSelectedHashes(new Set());
1931
- setEffectiveQuery(translatedQuery);
1932
- let stockIds;
1933
- if (translateRef.current && rawTrim !== translatedQuery) {
1934
- stockIds = mergeStockIconIdsOrdered(listMatchingStockIconIds(translatedQuery), listMatchingStockIconIds(rawTrim));
1935
- }
1936
- await ((_a = fetchSearchRef.current) === null || _a === void 0 ? void 0 : _a.call(fetchSearchRef, {
1937
- initial: true,
1938
- override: { query: translatedQuery, stockIds },
1939
- }));
1940
- lastCompletedSearchSignatureRef.current = requestedSignature;
1941
- }, []);
1942
- const handleSubmit = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async () => {
1943
- if (!query || query.trim().length < 3)
1944
- return;
1945
- if (searchDebounceRef.current) {
1946
- window.clearTimeout(searchDebounceRef.current);
1947
- searchDebounceRef.current = null;
1948
- }
1949
- await runSearch(query);
1950
- }, [query, runSearch]);
1951
- const resetToInitialIconsState = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(() => {
1952
- searchSeqRef.current += 1;
1953
- svgLoadFailuresRef.current.clear();
1954
- sortedStockIdsRef.current = [];
1955
- colorsExtractedForQueryRef.current = null;
1956
- setEffectiveQuery('');
1957
- setItems([]);
1958
- setIsCollectingResults(false);
1959
- setHasMore(false);
1960
- setOffset(0);
1961
- lastCompletedSearchSignatureRef.current = null;
1962
- setSelectedHash(null);
1963
- setSelectedHashes(new Set());
1964
- setColorHex('#000000');
1965
- setColorHex2('#ff007a');
1966
- setColorHex3('#00C2FF');
1967
- }, []);
1968
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
1969
- const initialQuery = initialQueryRef.current;
1970
- if (initialQuery && initialQuery.trim().length >= 3) {
1971
- runSearch(initialQuery);
1972
- }
1973
- // eslint-disable-next-line react-hooks/exhaustive-deps
1974
- }, []);
1975
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
1976
- const trimmed = query.trim();
1977
- if (searchDebounceRef.current) {
1978
- window.clearTimeout(searchDebounceRef.current);
1979
- searchDebounceRef.current = null;
1980
- }
1981
- if (trimmed.length < 3) {
1982
- resetToInitialIconsState();
1983
- return;
1984
- }
1985
- searchDebounceRef.current = window.setTimeout(() => {
1986
- runSearch(trimmed);
1987
- }, 700);
1988
- }, [query, resetToInitialIconsState, runSearch]);
1989
- const handleIconClick = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback((item) => {
1990
- setSelectedHash(item.hash);
1991
- }, []);
1992
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
1993
- var _a;
1994
- if (items.length === 0)
1995
- return;
1996
- let toFetch = items.map(i => i.hash).filter(h => !svgTextMap[h]);
1997
- toFetch = toFetch.filter(h => !svgLoadFailuresRef.current.has(h));
1998
- if (toFetch.length === 0)
1999
- return;
2000
- let cancelled = false;
2001
- (_a = svgAbortRef.current) === null || _a === void 0 ? void 0 : _a.abort();
2002
- const controller = new AbortController();
2003
- svgAbortRef.current = controller;
2004
- mapWithConcurrency(toFetch, ICON_STOCK_SVG_FETCH_CONCURRENCY, h => fetchSvgDataUrl(h, {
2005
- strokeWidth: typeof strokeWidth === 'number' ? strokeWidth : undefined,
2006
- size: sizePx,
2007
- signal: controller.signal,
2008
- inlineColors: useCssColor ? undefined : { colorHex, colorHex2, colorHex3 },
2009
- })
2010
- .then(r => ({ h, r }))
2011
- .catch((err) => {
2012
- if ((err === null || err === void 0 ? void 0 : err.name) === 'AbortError') {
2013
- return { h, r: null };
2014
- }
2015
- svgLoadFailuresRef.current.add(h);
2016
- return { h, r: null };
2017
- }))
2018
- .then(results => {
2019
- if (cancelled || !isMountedRef.current)
2020
- return;
2021
- const textUpdates = {};
2022
- const originalUpdates = {};
2023
- results.forEach(rr => {
2024
- if (rr && rr.h && rr.r) {
2025
- textUpdates[rr.h] = rr.r.text;
2026
- if (rr.r.original)
2027
- originalUpdates[rr.h] = rr.r.original;
2028
- }
2029
- });
2030
- if (Object.keys(textUpdates).length > 0)
2031
- setSvgTextMap(prev => (Object.assign(Object.assign({}, prev), textUpdates)));
2032
- if (Object.keys(originalUpdates).length > 0)
2033
- setOriginalSvgMap(prev => (Object.assign(Object.assign({}, prev), originalUpdates)));
2034
- })
2035
- .catch(() => {
2036
- /* aborted or network */
2037
- });
2038
- return () => {
2039
- cancelled = true;
2040
- controller.abort();
2041
- };
2042
- }, [colorHex, colorHex2, colorHex3, fetchSvgDataUrl, items, sizePx, strokeWidth, svgTextMap, useCssColor]);
2043
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
2044
- if (items.length === 0)
2045
- return;
2046
- const hashes = items.map(i => i.hash);
2047
- const updatesText = {};
2048
- let changed = false;
2049
- hashes.forEach(h => {
2050
- const base = originalSvgMap[h] || svgTextMap[h];
2051
- if (!base)
2052
- return;
2053
- const next = normalizeSvgForCss(base, { strokeWidth: typeof strokeWidth === 'number' ? strokeWidth : undefined });
2054
- if (next && next !== svgTextMap[h]) {
2055
- updatesText[h] = next;
2056
- changed = true;
2057
- }
2058
- });
2059
- if (changed && Object.keys(updatesText).length > 0) {
2060
- setSvgTextMap(prev => (Object.assign(Object.assign({}, prev), updatesText)));
2061
- }
2062
- }, [items, normalizeSvgForCss, originalSvgMap, strokeWidth, svgTextMap]);
2063
- external_root_React_commonjs2_react_commonjs_react_amd_react_default().useEffect(() => {
2064
- if (items.length === 0)
2065
- return;
2066
- const q = effectiveQuery.trim();
2067
- if (!q || colorsExtractedForQueryRef.current === q)
2068
- return;
2069
- const firstWithOrig = items.find(i => originalSvgMap[i.hash]);
2070
- if (!firstWithOrig)
2071
- return;
2072
- const raw = originalSvgMap[firstWithOrig.hash];
2073
- if (!raw)
2074
- return;
2075
- colorsExtractedForQueryRef.current = q;
2076
- const colors = extractColorsInUnifiedOrder(raw);
2077
- const toHex = (c) => {
2078
- const s = (c || '').trim();
2079
- const m = s.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);
2080
- if (m) {
2081
- const hex = m[1].length === 3 ? m[1].replace(/(.)/g, '$1$1') : m[1];
2082
- return '#' + hex.toLowerCase();
2083
- }
2084
- return colorToHex(c);
2085
- };
2086
- if (colors[0])
2087
- setColorHex(toHex(colors[0]));
2088
- if (colors[1])
2089
- setColorHex2(toHex(colors[1]));
2090
- if (colors[2])
2091
- setColorHex3(toHex(colors[2]));
2092
- }, [effectiveQuery, items, originalSvgMap]);
2093
- const buildSvgWithInlineColors = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback((svg) => (0,svgToPng/* applyInlineColors */.K7)(svg, { colorHex, colorHex2, colorHex3 }), [colorHex, colorHex2, colorHex3]);
2094
- const toggleSelect = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback((hash) => {
2095
- setSelectedHashes(prev => {
2096
- const next = new Set(prev);
2097
- if (next.has(hash))
2098
- next.delete(hash);
2099
- else
2100
- next.add(hash);
2101
- return next;
2102
- });
2103
- }, []);
2104
- const clearSelection = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(() => {
2105
- setSelectedHashes(new Set());
2106
- }, []);
2107
- const selectedItem = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useMemo(() => {
2108
- if (selectedHashes.size === 1) {
2109
- const [hash] = Array.from(selectedHashes);
2110
- return items.find(item => item.hash === hash) || null;
2111
- }
2112
- if (selectedHashes.size === 0 && selectedHash) {
2113
- return items.find(item => item.hash === selectedHash) || null;
2114
- }
2115
- return null;
2116
- }, [items, selectedHash, selectedHashes]);
2117
- const dataUrlToBlob = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback((dataUrl, mimeType = 'image/png') => {
2118
- try {
2119
- const parts = dataUrl.split(',');
2120
- if (parts.length < 2)
2121
- return new Blob([], { type: mimeType });
2122
- const base64Data = parts[1] || '';
2123
- const byteCharacters = atob(base64Data);
2124
- const byteNumbers = new Array(byteCharacters.length);
2125
- for (let i = 0; i < byteCharacters.length; i += 1) {
2126
- byteNumbers[i] = byteCharacters.charCodeAt(i);
2127
- }
2128
- const byteArray = new Uint8Array(byteNumbers);
2129
- return new Blob([byteArray], { type: mimeType });
2130
- }
2131
- catch (_a) {
2132
- return new Blob([], { type: mimeType });
2133
- }
2134
- }, []);
2135
- const getPngDataUrlForItem = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (item, signal) => {
2136
- try {
2137
- let svgText = svgTextMap[item.hash] || originalSvgMap[item.hash];
2138
- if (!svgText) {
2139
- const svgRes = await fetchSvgDataUrl(item.hash, {
2140
- strokeWidth: typeof strokeWidth === 'number' ? strokeWidth : undefined,
2141
- size: sizePx,
2142
- signal,
2143
- inlineColors: useCssColor ? undefined : { colorHex, colorHex2, colorHex3 },
2144
- });
2145
- svgText = svgRes.text;
2146
- }
2147
- const forPng = useCssColor ? buildSvgWithInlineColors(svgText) : svgText;
2148
- const dims = (0,svgToPng/* computeSvgTargetDimensions */.of)(forPng, sizePx);
2149
- return (0,svgToPng/* rasterizeSvgToPng */.e2)(forPng, dims.width, dims.height);
2150
- }
2151
- catch (_a) {
2152
- return null;
2153
- }
2154
- }, [
2155
- buildSvgWithInlineColors,
2156
- colorHex,
2157
- colorHex2,
2158
- colorHex3,
2159
- fetchSvgDataUrl,
2160
- originalSvgMap,
2161
- sizePx,
2162
- strokeWidth,
2163
- svgTextMap,
2164
- useCssColor,
2165
- ]);
2166
- const handleInsert = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useCallback(async (item) => {
2167
- var _a;
2168
- try {
2169
- if (!isMountedRef.current)
2170
- return;
2171
- setIsInsertLoading(true);
2172
- (_a = insertAbortRef.current) === null || _a === void 0 ? void 0 : _a.abort();
2173
- const controller = new AbortController();
2174
- insertAbortRef.current = controller;
2175
- const dataUrl = await getPngDataUrlForItem(item, controller.signal);
2176
- if (!isMountedRef.current || !dataUrl)
2177
- return;
2178
- await Promise.resolve(customRequest(dataUrl));
2179
- }
2180
- catch (e) {
2181
- console.error('IconsTab: insert error', e);
2182
- message.error(t('Request error'));
2183
- }
2184
- finally {
2185
- if (isMountedRef.current)
2186
- setIsInsertLoading(false);
2187
- }
2188
- }, [customRequest, getPngDataUrlForItem, t]);
2189
- const { isCopyIconsModalVisible, isCopyLoading, copyForm, openCopyModal, closeCopyModal, resetAfterClose, handleCopyTreeSelect, handleIconsCopyOk, fetchChildFolders, generateMenuItemsFromFolders, handleCreateFolderAndCopy, } = useIconsCopyToFolder({
2190
- items,
2191
- selectedHashes,
2192
- getPngDataUrlForItem,
2193
- dataUrlToBlob,
2194
- clearSelection,
2195
- });
2196
- const showResultsUi = Boolean(effectiveQuery.trim()) && (items.length > 0 || loading);
2197
- const showSelectionHeader = showResultsUi && selectedHashes.size > 0;
2198
- return ((0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { children: [(0,jsx_runtime.jsxs)("div", { className: `${ImageIcons_iconsTab_module.iconsTab} ${effectiveQuery.trim() ? ImageIcons_iconsTab_module.hasSearch : ''}`, children: [showResultsUi && showSelectionHeader ? ((0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsHeaderContainer, children: [(0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsHeaderContainerLeft, children: [(0,jsx_runtime.jsxs)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Typography.Text, { type: "secondary", children: [selectedHashes.size, " ", t('selected')] }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Button, { icon: (0,jsx_runtime.jsx)(icons_.Scale01, { size: 16 }), onClick: clearSelection, children: t('Deselected') })] }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Space, { children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Button, { icon: (0,jsx_runtime.jsx)(icons_.Copy04, { size: 16 }), onClick: openCopyModal, children: t('Copy to folder') }) })] })) : ((0,jsx_runtime.jsx)(ImageIcons_IconsSearchForm, { query: query, onQueryChange: setQuery, onSubmit: handleSubmit, hasResults: items.length > 0 || loading, inputRef: inputRef })), showResultsUi ? ((0,jsx_runtime.jsx)(ImageIcons_IconsControls, { colorHex: colorHex, setColorHex: setColorHex, colorHex2: colorHex2, setColorHex2: setColorHex2, colorHex3: colorHex3, setColorHex3: setColorHex3, sizePx: sizePx, setSizePx: setSizePx, strokeWidth: strokeWidth, setStrokeWidth: setStrokeWidth, showSecondColor: showSecondColor, showThirdColor: showThirdColor })) : null, (0,jsx_runtime.jsx)(ImageIcons_IconsGrid, { items: items, loading: loading, isCollectingResults: isCollectingResults, hasMore: hasMore, hasQuery: Boolean(effectiveQuery.trim()), selectedHash: selectedHash, onItemClick: handleIconClick, onInsert: handleInsert, onLoadMore: () => {
2199
- fetchSearch({ initial: false }).catch(() => {
2200
- /* ignore */
2201
- });
2202
- }, colorVars: { colorHex, colorHex2, colorHex3 }, svgTextMap: svgTextMap, previewSize: sizePx, selectedHashes: selectedHashes, onToggleSelect: toggleSelect }), selectedItem ? ((0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.iconsBottomBar, children: [(0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Divider, { className: "zero-divider" }), (0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.iconsBottomBarContent, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Space, { children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Button, { size: "large", type: "primary", style: { height: 40 }, loading: isInsertLoading, onClick: () => handleInsert(selectedItem), children: t('Choose') }) }) })] })) : null] }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Modal, { title: (0,jsx_runtime.jsx)("div", { className: "modal-title", children: t('Copy to folder') }), open: isCopyIconsModalVisible, onCancel: () => {
2203
- if (isCopyLoading)
2204
- return;
2205
- closeCopyModal();
2206
- }, mask: { closable: !isCopyLoading }, closable: !isCopyLoading, keyboard: !isCopyLoading, centered: true, getContainer: options.getModalContainer, footer: (0,jsx_runtime.jsxs)("div", { className: FileModals_module["default"].formFooter, children: [(0,jsx_runtime.jsxs)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Button, { className: FileModals_module["default"].folderButton, onClick: handleCreateFolderAndCopy, loading: isCopyLoading, children: [(0,jsx_runtime.jsx)(icons_.FolderPlus, { size: 18, strokeWidth: (_c = options.config) === null || _c === void 0 ? void 0 : _c.iconStrokeWidth }), t('Create folder')] }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Button, { type: "primary", className: FileModals_module["default"].folderButton, onClick: () => {
2207
- closeCopyModal();
2208
- }, loading: isCopyLoading, children: t('Done') })] }), afterClose: () => resetAfterClose(), children: (0,jsx_runtime.jsxs)("div", { className: ImageIcons_iconsTab_module.copyToFolderModalBody, children: [isCopyLoading ? ((0,jsx_runtime.jsx)("div", { className: ImageIcons_iconsTab_module.copyToFolderModalLoadingOverlay, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Spin, { size: "large" }) })) : null, (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form, { form: copyForm, layout: "vertical", initialValues: { targetFolder: 'folders', folderName: t('New folder'), is_force_create: false }, children: (0,jsx_runtime.jsxs)("div", { className: FileModals_module["default"].foldersWrapper, children: [(0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form.Item, { name: "targetFolder", rules: [{ required: true, message: t('Select the destination folder') }], className: FileModals_module["default"].formItem, children: (0,jsx_runtime.jsx)(FolderTree/* FolderTree */.z, { onSelect: handleCopyTreeSelect, generateMenuItems: () => generateMenuItemsFromFolders({
2209
- targetForm: copyForm,
2210
- onTreeSelect: handleCopyTreeSelect,
2211
- onComplete: handleIconsCopyOk,
2212
- actionButtonText: t('Copy here'),
2213
- }), fetchChildFolders: fetchChildFolders, disabledFolders: [], mode: "selection", className: 'folderSelectionTree', defaultExpandAll: true }) }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form.Item, { name: 'folderName', style: { display: 'none' }, rules: [
2214
- {
2215
- required: true,
2216
- validator: (_, value) => {
2217
- if (typeof value === 'string' && value.trim().length === 0) {
2218
- return Promise.reject(new Error(t('Enter the name of the folder')));
2219
- }
2220
- return Promise.resolve();
2221
- },
2222
- },
2223
- ], children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Input, {}) }), (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Form.Item, { name: 'is_force_create', style: { display: 'none' }, children: (0,jsx_runtime.jsx)(external_root_antd_commonjs2_antd_commonjs_antd_amd_antd_.Input, {}) })] }) })] }) })] }));
2224
- };
2225
- /* harmony default export */ const ImageIcons_IconsTab = (IconsTab);
2226
-
2227
-
2228
- /***/ }),
2229
-
2230
- /***/ 9875:
2231
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2232
-
2233
- // Imports
2234
- var ___CSS_LOADER_API_SOURCEMAP_IMPORT___ = __webpack_require__(1354);
2235
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(6314);
2236
- var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);
2237
- // Module
2238
- ___CSS_LOADER_EXPORT___.push([module.id, `.iconsTab-module__iconsTab__rVCdL{display:flex;flex-direction:column;height:100%;min-height:0}.iconsTab-module__iconsTab__rVCdL.iconsTab-module__hasSearch__eOBPx{padding-top:0}.iconsTab-module__iconsSearchWrapper__Wl05l{width:100%;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;line-height:0;display:flex;flex-direction:column;align-items:center;padding:24px}.iconsTab-module__iconsSearchForm__pOT9P{display:flex;gap:8px;width:100%;margin-bottom:0}.iconsTab-module__iconsSearchFormCenteredContainer__EcZ66{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;width:100%;padding:24px 24px 0}.iconsTab-module__iconsSearchFormCentered__mBHMX{display:flex;flex-direction:row;width:100%;align-items:flex-start;justify-content:center}.iconsTab-module__iconsSearchFormCentered__mBHMX .iconsTab-module__iconsSearchFormInput__aOh5i{width:640px;max-width:100%;padding:0;margin:auto auto 0;transition:all 300ms ease}.iconsTab-module__iconsSearchFormCentered__mBHMX .iconsTab-module__iconsSearchFormInputInput__P1TM6{max-width:100%;width:100%}.iconsTab-module__iconsSearchFormInput__aOh5i{width:240px;padding:0;margin-bottom:0;transition:all 300ms ease}.iconsTab-module__iconsSearchResults__iMIGw{width:100%;display:flex;flex-direction:row;gap:8px;align-items:flex-start;justify-content:flex-start}.iconsTab-module__iconsSearchResults__iMIGw .iconsTab-module__iconsSearchFormInput__aOh5i{width:240px;flex:0 0 auto;margin-bottom:0}.iconsTab-module__iconsControlsControls__fPlU6{display:flex;align-items:center;gap:16px}.iconsTab-module__iconsSearchFormInputInput__P1TM6{width:100%}.iconsTab-module__iconsControls__U6HDG{display:flex;justify-content:space-between;align-items:center;width:100%;padding:24px 6px 24px 24px;border-bottom:1px solid var(--colorBorder)}.iconsTab-module__iconsControlsFamilySlug__WcZT7{opacity:.7}.iconsTab-module__iconsControlElement___RXMX{display:flex;align-items:center;gap:8px}.iconsTab-module__iconsControlElement___RXMX>span{color:var(--colorTextTertiary)}.iconsTab-module__iconsControlsNumField__HTFGx{display:flex;align-items:center;gap:10px}.iconsTab-module__iconsControlsNumLabel__eG_77{flex-shrink:0;margin:0 !important;white-space:nowrap}.iconsTab-module__iconsControlsNumInput__ez7U0{min-width:104px}.iconsTab-module__iconsControlsNumInput__ez7U0 .ant-input-number-affix-wrapper{border-radius:9999px}.iconsTab-module__iconsControlsNumSuffix__TqwCn{color:var(--ant-color-text-tertiary, rgba(0, 0, 0, 0.45));font-size:13px;line-height:1;user-select:none}.iconsTab-module__iconsControlsCompact__kjz5q{position:relative}.iconsTab-module__iconsControlsInputNumber__uJAmX{width:110px}.iconsTab-module__iconsControlsInputNumber__uJAmX .ant-input-number,.iconsTab-module__iconsControlsInputNumber__uJAmX .ant-input-number-focused{border-top-left-radius:6px;border-bottom-left-radius:6px}.iconsTab-module__iconsControlsDropdownBtn__CsHya{padding:0;height:32px;min-width:36px;width:36px;border-top-right-radius:6px !important;border-bottom-right-radius:6px !important;border-top-left-radius:0 !important;border-bottom-left-radius:0 !important;display:inline-flex;align-items:center;justify-content:center;color:var(--colorTextTertiary)}.iconsTab-module__iconsControlsDropdownBtn__CsHya .anticon{font-size:12px;line-height:1}.iconsTab-module__iconsControlsDropdownBtn__CsHya:hover{color:var(--colorTextSecondary)}.iconsTab-module__iconsControlsCompact__kjz5q .iconsTab-module__iconsControlsDropdownBtn__CsHya{border-top-right-radius:6px !important;border-bottom-right-radius:6px !important}.iconsTab-module__sliderDropdown__rp1Dw{position:absolute;left:50%;transform:translateX(-50%);top:calc(100% + 6px);width:240px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 4px 12px rgba(0,0,0,.12);border-radius:8px;padding:10px 12px;z-index:1000}.iconsTab-module__iconsControlsHeader__Dk5bC{display:flex;align-items:center}.iconsTab-module__iconsSearchFormSelect__wc4Eb{width:160px !important}.iconsTab-module__iconsSearchFormStyleItem__s6wIB{margin-bottom:0;animation:iconsTab-module__fadeInSlide__JHeZ6 300ms ease forwards}@keyframes iconsTab-module__fadeInSlide__JHeZ6{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.iconsTab-module__iconsSearchDivider__baxtd{margin-top:24px;margin-bottom:0;border-color:var(--colorBorder);width:100%}.iconsTab-module__iconsSearchFormInputIcon__LGFqD{font-size:16px;cursor:pointer}.iconsTab-module__iconsGrid__fdgZB{width:100%;flex:1 1 auto;min-height:0;overflow:auto;overflow-x:hidden;box-sizing:border-box;padding:24px}.iconsTab-module__iconsBottomBar__ZJjsz{position:sticky;bottom:0;background:var(--colorBgLayout);z-index:5;width:100%}.iconsTab-module__iconsBottomBarContent__9SxMG{display:flex;justify-content:right;padding:17px 24px;align-items:center}.iconsTab-module__iconsGridEmpty__gE6NT{margin:40px 0px}.iconsTab-module__iconsGridEmptyState__OGcNZ{display:flex;justify-content:center;align-items:center;padding:0}.iconsTab-module__resultsContainer__u4uoQ{width:640px;max-width:100%;overflow:auto;box-sizing:border-box;padding:60px 16px;border-radius:12px;background-color:var(--colorBgContainer);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.iconsTab-module__playButton__CS3Kr{color:var(--colorPrimary);margin-bottom:16px}.iconsTab-module__title__X8NPu{font-size:16px;font-weight:600;line-height:1.2;margin-bottom:4px}.iconsTab-module__subtitle__k6wsl{font-size:14px;color:var(--colorSecondary);line-height:1.2}.iconsTab-module__iconsGridInfiniteScroll__x0_E9{overflow:hidden !important}.iconsTab-module__iconsGridLoadingMore__MJy6W{display:flex;justify-content:center;padding:16px 0}.iconsTab-module__iconsGridGrid__jpJcf{display:grid;grid-template-columns:repeat(auto-fill, minmax(var(--icons-grid-min-col, 148px), 1fr));gap:16px}.iconsTab-module__iconsGridVirtualCanvas__cdbMd{position:relative;width:100%}.iconsTab-module__iconsGridItem__iHBC0{position:relative;border-radius:8px;padding:12px;background:#fff;cursor:pointer;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;box-shadow:inset 0 0 0 1px #f0f0f0}.iconsTab-module__iconsGridItemThumbnail__nz4oB{display:flex;align-items:center;justify-content:center;flex:1 1 auto;min-height:0}.iconsTab-module__iconsGridItemSvg__nMNf2{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.iconsTab-module__iconsGridItemImg__uR1rx{max-width:100%;object-fit:contain}.iconsTab-module__iconsGridItemName__dxHty{margin-top:8px;font-size:12px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:0 0 auto}.iconsTab-module__iconsGridItemSelected__O6f4h::after{content:"";position:absolute;inset:0;border:2px solid #1890ff;border-radius:inherit;pointer-events:none}.iconsTab-module__iconsGridItemInsertButton__nuuWZ{position:absolute;top:8px;right:8px}.iconsTab-module__iconsGridLoading__r5wNu{display:flex;align-items:center;justify-content:center;width:100%;min-height:50vh}.iconsTab-module__iconsControlsBackButton__lHXYH{margin-right:20px}.iconsTab-module__iconsGridCheckbox__TebOL{position:absolute;top:8px;left:8px;z-index:2;opacity:0;pointer-events:none;transition:opacity .15s ease-in-out}.iconsTab-module__iconsGridItem__iHBC0:hover .iconsTab-module__iconsGridCheckbox__TebOL{opacity:1;pointer-events:auto}.iconsTab-module__iconsGridShowCheckboxes__Lwxc6 .iconsTab-module__iconsGridCheckbox__TebOL{opacity:1;pointer-events:auto}.iconsTab-module__iconsHeaderContainer__nlaKy{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;box-sizing:border-box;padding:24px 24px;margin:0;border-bottom:1px solid var(--colorBorder)}.iconsTab-module__iconsHeaderContainerLeft__sqO0_{display:flex;gap:10px;align-items:center}.iconsTab-module__iconsHeaderDivider__ujyPd{margin-top:24px;margin-bottom:0;border-color:var(--colorBorder);width:100%}.iconsTab-module__copyToFolderModalBody__AkxuH{position:relative}.iconsTab-module__copyToFolderModalLoadingOverlay__dd9RB{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.6);pointer-events:all}`, "",{"version":3,"sources":["webpack://./src/components/ImageIcons/iconsTab.module.scss"],"names":[],"mappings":"AAAA,kCACI,YAAA,CACA,qBAAA,CACA,WAAA,CACA,YAAA,CAEA,oEACI,aAAA,CAIR,4CACI,UAAA,CACA,WAAA,CACA,YAAA,CACA,eAAA,CACA,qBAAA,CACA,aAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CAGJ,yCACI,YAAA,CACA,OAAA,CACA,UAAA,CACA,eAAA,CAGJ,0DACI,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,0BAAA,CACA,UAAA,CACA,mBAAA,CAGJ,iDACI,YAAA,CACA,kBAAA,CACA,UAAA,CACA,sBAAA,CACA,sBAAA,CAEA,+FACI,WAAA,CACA,cAAA,CACA,SAAA,CACA,kBAAA,CACA,yBAAA,CAGJ,oGACI,cAAA,CACA,UAAA,CAIR,8CACI,WAAA,CACA,SAAA,CACA,eAAA,CACA,yBAAA,CAGJ,4CACI,UAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0FACI,WAAA,CACA,aAAA,CACA,eAAA,CAIR,+CACI,YAAA,CACA,kBAAA,CACA,QAAA,CAGJ,mDACI,UAAA,CAKJ,uCACI,YAAA,CACA,6BAAA,CACA,kBAAA,CACA,UAAA,CACA,0BAAA,CACA,0CAAA,CAGJ,iDACI,UAAA,CAGJ,6CACI,YAAA,CACA,kBAAA,CACA,OAAA,CAEA,kDACI,8BAAA,CAIR,+CACI,YAAA,CACA,kBAAA,CACA,QAAA,CAGJ,+CACI,aAAA,CACA,mBAAA,CACA,kBAAA,CAGJ,+CACI,eAAA,CAGJ,+EACI,oBAAA,CAGJ,gDACI,yDAAA,CACA,cAAA,CACA,aAAA,CACA,gBAAA,CAGJ,8CACI,iBAAA,CAGJ,kDACI,WAAA,CAGJ,gJAEI,0BAAA,CACA,6BAAA,CAGJ,kDACI,SAAA,CACA,WAAA,CACA,cAAA,CACA,UAAA,CACA,sCAAA,CACA,yCAAA,CACA,mCAAA,CACA,sCAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,8BAAA,CAEA,2DACI,cAAA,CACA,aAAA,CAGJ,wDACI,+BAAA,CAIR,gGACI,sCAAA,CACA,yCAAA,CAGJ,wCACI,iBAAA,CACA,QAAA,CACA,0BAAA,CACA,oBAAA,CACA,WAAA,CACA,eAAA,CACA,gCAAA,CACA,qCAAA,CACA,iBAAA,CACA,iBAAA,CACA,YAAA,CAGJ,6CACI,YAAA,CACA,kBAAA,CAIJ,+CACI,sBAAA,CAGJ,kDACI,eAAA,CACA,iEAAA,CAGJ,+CACI,KACI,SAAA,CACA,2BAAA,CAEJ,GACI,SAAA,CACA,uBAAA,CAAA,CAIR,4CACI,eAAA,CACA,eAAA,CACA,+BAAA,CACA,UAAA,CAGJ,kDACI,cAAA,CACA,cAAA,CAGJ,mCACI,UAAA,CACA,aAAA,CACA,YAAA,CACA,aAAA,CACA,iBAAA,CACA,qBAAA,CACA,YAAA,CAGJ,wCACI,eAAA,CACA,QAAA,CACA,+BAAA,CACA,SAAA,CACA,UAAA,CAGJ,+CACI,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,kBAAA,CAGJ,wCACI,eAAA,CAGJ,6CACI,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,SAAA,CAGJ,0CACI,WAAA,CACA,cAAA,CACA,aAAA,CACA,qBAAA,CACA,iBAAA,CACA,kBAAA,CACA,wCAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,iBAAA,CAGJ,oCACI,yBAAA,CACA,kBAAA,CAGJ,+BACI,cAAA,CACA,eAAA,CACA,eAAA,CACA,iBAAA,CAGJ,kCACI,cAAA,CACA,2BAAA,CACA,eAAA,CAGJ,iDACI,0BAAA,CAGJ,8CACI,YAAA,CACA,sBAAA,CACA,cAAA,CAGJ,uCACI,YAAA,CACA,sFAAA,CACA,QAAA,CAGJ,gDACI,iBAAA,CACA,UAAA,CAGJ,uCACI,iBAAA,CACA,iBAAA,CACA,YAAA,CACA,eAAA,CACA,cAAA,CACA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,eAAA,CACA,kCAAA,CAGJ,gDACI,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,aAAA,CACA,YAAA,CAGJ,0CACI,UAAA,CACA,WAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAGJ,0CACI,cAAA,CACA,kBAAA,CAGJ,2CACI,cAAA,CACA,cAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,aAAA,CAGJ,sDACI,UAAA,CACA,iBAAA,CACA,OAAA,CACA,wBAAA,CACA,qBAAA,CACA,mBAAA,CAGJ,mDACI,iBAAA,CACA,OAAA,CACA,SAAA,CAGJ,0CACI,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,eAAA,CAGJ,iDACI,iBAAA,CAGJ,2CACI,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,SAAA,CACA,mBAAA,CACA,mCAAA,CAGJ,wFACI,SAAA,CACA,mBAAA,CAGJ,4FACI,SAAA,CACA,mBAAA,CAGJ,8CACI,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,QAAA,CACA,UAAA,CACA,qBAAA,CACA,iBAAA,CACA,QAAA,CACA,0CAAA,CAGJ,kDACI,YAAA,CACA,QAAA,CACA,kBAAA,CAGJ,4CACI,eAAA,CACA,eAAA,CACA,+BAAA,CACA,UAAA,CAGJ,+CACI,iBAAA,CAGJ,yDACI,iBAAA,CACA,OAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA","sourcesContent":[".iconsTab {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n min-height: 0;\r\n\r\n &.hasSearch {\r\n padding-top: 0;\r\n }\r\n}\r\n\r\n.iconsSearchWrapper {\r\n width: 100%;\r\n height: 100%;\r\n min-height: 0;\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n line-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 24px;\r\n}\r\n\r\n.iconsSearchForm {\r\n display: flex;\r\n gap: 8px;\r\n width: 100%;\r\n margin-bottom: 0;\r\n}\r\n\r\n.iconsSearchFormCenteredContainer {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n width: 100%;\r\n padding: 24px 24px 0;\r\n}\r\n\r\n.iconsSearchFormCentered {\r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n align-items: flex-start;\r\n justify-content: center;\r\n\r\n .iconsSearchFormInput {\r\n width: 640px;\r\n max-width: 100%;\r\n padding: 0;\r\n margin: auto auto 0;\r\n transition: all 300ms ease;\r\n }\r\n\r\n .iconsSearchFormInputInput {\r\n max-width: 100%;\r\n width: 100%;\r\n }\r\n}\r\n\r\n.iconsSearchFormInput {\r\n width: 240px;\r\n padding: 0;\r\n margin-bottom: 0;\r\n transition: all 300ms ease;\r\n}\r\n\r\n.iconsSearchResults {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n gap: 8px;\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n\r\n .iconsSearchFormInput {\r\n width: 240px;\r\n flex: 0 0 auto;\r\n margin-bottom: 0;\r\n }\r\n}\r\n\r\n.iconsControlsControls {\r\n display: flex;\r\n align-items: center;\r\n gap: 16px;\r\n}\r\n\r\n.iconsSearchFormInputInput {\r\n width: 100%;\r\n}\r\n\r\n\r\n\r\n.iconsControls {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n padding: 24px 6px 24px 24px;\r\n border-bottom: 1px solid var(--colorBorder);\r\n}\r\n\r\n.iconsControlsFamilySlug {\r\n opacity: 0.7\r\n}\r\n\r\n.iconsControlElement {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n & > span {\r\n color: var(--colorTextTertiary);\r\n }\r\n}\r\n\r\n.iconsControlsNumField {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n}\r\n\r\n.iconsControlsNumLabel {\r\n flex-shrink: 0;\r\n margin: 0 !important;\r\n white-space: nowrap;\r\n}\r\n\r\n.iconsControlsNumInput {\r\n min-width: 104px;\r\n}\r\n\r\n.iconsControlsNumInput :global(.ant-input-number-affix-wrapper) {\r\n border-radius: 9999px;\r\n}\r\n\r\n.iconsControlsNumSuffix {\r\n color: var(--ant-color-text-tertiary, rgba(0, 0, 0, 0.45));\r\n font-size: 13px;\r\n line-height: 1;\r\n user-select: none;\r\n}\r\n\r\n.iconsControlsCompact {\r\n position: relative;\r\n}\r\n\r\n.iconsControlsInputNumber {\r\n width: 110px;\r\n}\r\n\r\n.iconsControlsInputNumber :global(.ant-input-number),\r\n.iconsControlsInputNumber :global(.ant-input-number-focused) {\r\n border-top-left-radius: 6px;\r\n border-bottom-left-radius: 6px;\r\n}\r\n\r\n.iconsControlsDropdownBtn {\r\n padding: 0;\r\n height: 32px;\r\n min-width: 36px;\r\n width: 36px;\r\n border-top-right-radius: 6px !important;\r\n border-bottom-right-radius: 6px !important;\r\n border-top-left-radius: 0 !important;\r\n border-bottom-left-radius: 0 !important;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--colorTextTertiary);\r\n\r\n :global(.anticon) {\r\n font-size: 12px;\r\n line-height: 1;\r\n }\r\n\r\n &:hover {\r\n color: var(--colorTextSecondary);\r\n }\r\n}\r\n\r\n.iconsControlsCompact .iconsControlsDropdownBtn {\r\n border-top-right-radius: 6px !important;\r\n border-bottom-right-radius: 6px !important;\r\n}\r\n\r\n.sliderDropdown {\r\n position: absolute;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n top: calc(100% + 6px);\r\n width: 240px;\r\n background: #fff;\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\r\n border-radius: 8px;\r\n padding: 10px 12px;\r\n z-index: 1000;\r\n}\r\n\r\n.iconsControlsHeader {\r\n display: flex;\r\n align-items: center;\r\n // gap: 24px;\r\n}\r\n\r\n.iconsSearchFormSelect {\r\n width: 160px !important;\r\n}\r\n\r\n.iconsSearchFormStyleItem {\r\n margin-bottom: 0;\r\n animation: fadeInSlide 300ms ease forwards;\r\n}\r\n\r\n@keyframes fadeInSlide {\r\n from {\r\n opacity: 0;\r\n transform: translateX(-10px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n}\r\n\r\n.iconsSearchDivider {\r\n margin-top: 24px;\r\n margin-bottom: 0;\r\n border-color: var(--colorBorder);\r\n width: 100%;\r\n}\r\n\r\n.iconsSearchFormInputIcon {\r\n font-size: 16px;\r\n cursor: pointer;\r\n}\r\n\r\n.iconsGrid {\r\n width: 100%;\r\n flex: 1 1 auto;\r\n min-height: 0;\r\n overflow: auto;\r\n overflow-x: hidden;\r\n box-sizing: border-box;\r\n padding: 24px;\r\n}\r\n\r\n.iconsBottomBar {\r\n position: sticky;\r\n bottom: 0;\r\n background: var(--colorBgLayout);\r\n z-index: 5;\r\n width: 100%;\r\n}\r\n\r\n.iconsBottomBarContent {\r\n display: flex;\r\n justify-content: right;\r\n padding: 17px 24px;\r\n align-items: center;\r\n}\r\n\r\n.iconsGridEmpty {\r\n margin: 40px 0px;\r\n}\r\n\r\n.iconsGridEmptyState {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 0\r\n}\r\n\r\n.resultsContainer {\r\n width: 640px;\r\n max-width: 100%;\r\n overflow: auto;\r\n box-sizing: border-box;\r\n padding: 60px 16px;\r\n border-radius: 12px;\r\n background-color: var(--colorBgContainer);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n text-align: center;\r\n}\r\n\r\n.playButton {\r\n color: var(--colorPrimary);\r\n margin-bottom: 16px;\r\n}\r\n\r\n.title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n line-height: 1.2;\r\n margin-bottom: 4px;\r\n}\r\n\r\n.subtitle {\r\n font-size: 14px;\r\n color: var(--colorSecondary);\r\n line-height: 1.2;\r\n}\r\n\r\n.iconsGridInfiniteScroll {\r\n overflow: hidden !important;\r\n}\r\n\r\n.iconsGridLoadingMore {\r\n display: flex;\r\n justify-content: center;\r\n padding: 16px 0;\r\n}\r\n\r\n.iconsGridGrid {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fill, minmax(var(--icons-grid-min-col, 148px), 1fr));\r\n gap: 16px;\r\n}\r\n\r\n.iconsGridVirtualCanvas {\r\n position: relative;\r\n width: 100%;\r\n}\r\n\r\n.iconsGridItem {\r\n position: relative;\r\n border-radius: 8px;\r\n padding: 12px;\r\n background: #fff;\r\n cursor: pointer;\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n box-shadow: inset 0 0 0 1px #f0f0f0;\r\n}\r\n\r\n.iconsGridItemThumbnail {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex: 1 1 auto;\r\n min-height: 0;\r\n}\r\n\r\n.iconsGridItemSvg {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.iconsGridItemImg {\r\n max-width: 100%;\r\n object-fit: contain;\r\n}\r\n\r\n.iconsGridItemName {\r\n margin-top: 8px;\r\n font-size: 12px;\r\n line-height: 1.2;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n flex: 0 0 auto;\r\n}\r\n\r\n.iconsGridItemSelected::after {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n border: 2px solid #1890ff;\r\n border-radius: inherit;\r\n pointer-events: none;\r\n}\r\n\r\n.iconsGridItemInsertButton {\r\n position: absolute;\r\n top: 8px;\r\n right: 8px;\r\n}\r\n\r\n.iconsGridLoading {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 100%;\r\n min-height: 50vh;\r\n}\r\n\r\n.iconsControlsBackButton {\r\n margin-right: 20px;\r\n}\r\n\r\n.iconsGridCheckbox {\r\n position: absolute;\r\n top: 8px;\r\n left: 8px;\r\n z-index: 2;\r\n opacity: 0;\r\n pointer-events: none;\r\n transition: opacity 0.15s ease-in-out;\r\n}\r\n\r\n.iconsGridItem:hover .iconsGridCheckbox {\r\n opacity: 1;\r\n pointer-events: auto;\r\n}\r\n\r\n.iconsGridShowCheckboxes .iconsGridCheckbox {\r\n opacity: 1;\r\n pointer-events: auto;\r\n}\r\n\r\n.iconsHeaderContainer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n width: 100%;\r\n box-sizing: border-box;\r\n padding: 24px 24px;\r\n margin: 0;\r\n border-bottom: 1px solid var(--colorBorder);\r\n}\r\n\r\n.iconsHeaderContainerLeft {\r\n display: flex;\r\n gap: 10px;\r\n align-items: center;\r\n}\r\n\r\n.iconsHeaderDivider {\r\n margin-top: 24px;\r\n margin-bottom: 0;\r\n border-color: var(--colorBorder);\r\n width: 100%;\r\n}\r\n\r\n.copyToFolderModalBody {\r\n position: relative;\r\n}\r\n\r\n.copyToFolderModalLoadingOverlay {\r\n position: absolute;\r\n inset: 0;\r\n z-index: 10;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: rgba(255, 255, 255, 0.6);\r\n pointer-events: all;\r\n}\r\n"],"sourceRoot":""}]);
2239
- // Exports
2240
- ___CSS_LOADER_EXPORT___.locals = {
2241
- "iconsTab": `iconsTab-module__iconsTab__rVCdL`,
2242
- "hasSearch": `iconsTab-module__hasSearch__eOBPx`,
2243
- "iconsSearchWrapper": `iconsTab-module__iconsSearchWrapper__Wl05l`,
2244
- "iconsSearchForm": `iconsTab-module__iconsSearchForm__pOT9P`,
2245
- "iconsSearchFormCenteredContainer": `iconsTab-module__iconsSearchFormCenteredContainer__EcZ66`,
2246
- "iconsSearchFormCentered": `iconsTab-module__iconsSearchFormCentered__mBHMX`,
2247
- "iconsSearchFormInput": `iconsTab-module__iconsSearchFormInput__aOh5i`,
2248
- "iconsSearchFormInputInput": `iconsTab-module__iconsSearchFormInputInput__P1TM6`,
2249
- "iconsSearchResults": `iconsTab-module__iconsSearchResults__iMIGw`,
2250
- "iconsControlsControls": `iconsTab-module__iconsControlsControls__fPlU6`,
2251
- "iconsControls": `iconsTab-module__iconsControls__U6HDG`,
2252
- "iconsControlsFamilySlug": `iconsTab-module__iconsControlsFamilySlug__WcZT7`,
2253
- "iconsControlElement": `iconsTab-module__iconsControlElement___RXMX`,
2254
- "iconsControlsNumField": `iconsTab-module__iconsControlsNumField__HTFGx`,
2255
- "iconsControlsNumLabel": `iconsTab-module__iconsControlsNumLabel__eG_77`,
2256
- "iconsControlsNumInput": `iconsTab-module__iconsControlsNumInput__ez7U0`,
2257
- "iconsControlsNumSuffix": `iconsTab-module__iconsControlsNumSuffix__TqwCn`,
2258
- "iconsControlsCompact": `iconsTab-module__iconsControlsCompact__kjz5q`,
2259
- "iconsControlsInputNumber": `iconsTab-module__iconsControlsInputNumber__uJAmX`,
2260
- "iconsControlsDropdownBtn": `iconsTab-module__iconsControlsDropdownBtn__CsHya`,
2261
- "sliderDropdown": `iconsTab-module__sliderDropdown__rp1Dw`,
2262
- "iconsControlsHeader": `iconsTab-module__iconsControlsHeader__Dk5bC`,
2263
- "iconsSearchFormSelect": `iconsTab-module__iconsSearchFormSelect__wc4Eb`,
2264
- "iconsSearchFormStyleItem": `iconsTab-module__iconsSearchFormStyleItem__s6wIB`,
2265
- "fadeInSlide": `iconsTab-module__fadeInSlide__JHeZ6`,
2266
- "iconsSearchDivider": `iconsTab-module__iconsSearchDivider__baxtd`,
2267
- "iconsSearchFormInputIcon": `iconsTab-module__iconsSearchFormInputIcon__LGFqD`,
2268
- "iconsGrid": `iconsTab-module__iconsGrid__fdgZB`,
2269
- "iconsBottomBar": `iconsTab-module__iconsBottomBar__ZJjsz`,
2270
- "iconsBottomBarContent": `iconsTab-module__iconsBottomBarContent__9SxMG`,
2271
- "iconsGridEmpty": `iconsTab-module__iconsGridEmpty__gE6NT`,
2272
- "iconsGridEmptyState": `iconsTab-module__iconsGridEmptyState__OGcNZ`,
2273
- "resultsContainer": `iconsTab-module__resultsContainer__u4uoQ`,
2274
- "playButton": `iconsTab-module__playButton__CS3Kr`,
2275
- "title": `iconsTab-module__title__X8NPu`,
2276
- "subtitle": `iconsTab-module__subtitle__k6wsl`,
2277
- "iconsGridInfiniteScroll": `iconsTab-module__iconsGridInfiniteScroll__x0_E9`,
2278
- "iconsGridLoadingMore": `iconsTab-module__iconsGridLoadingMore__MJy6W`,
2279
- "iconsGridGrid": `iconsTab-module__iconsGridGrid__jpJcf`,
2280
- "iconsGridVirtualCanvas": `iconsTab-module__iconsGridVirtualCanvas__cdbMd`,
2281
- "iconsGridItem": `iconsTab-module__iconsGridItem__iHBC0`,
2282
- "iconsGridItemThumbnail": `iconsTab-module__iconsGridItemThumbnail__nz4oB`,
2283
- "iconsGridItemSvg": `iconsTab-module__iconsGridItemSvg__nMNf2`,
2284
- "iconsGridItemImg": `iconsTab-module__iconsGridItemImg__uR1rx`,
2285
- "iconsGridItemName": `iconsTab-module__iconsGridItemName__dxHty`,
2286
- "iconsGridItemSelected": `iconsTab-module__iconsGridItemSelected__O6f4h`,
2287
- "iconsGridItemInsertButton": `iconsTab-module__iconsGridItemInsertButton__nuuWZ`,
2288
- "iconsGridLoading": `iconsTab-module__iconsGridLoading__r5wNu`,
2289
- "iconsControlsBackButton": `iconsTab-module__iconsControlsBackButton__lHXYH`,
2290
- "iconsGridCheckbox": `iconsTab-module__iconsGridCheckbox__TebOL`,
2291
- "iconsGridShowCheckboxes": `iconsTab-module__iconsGridShowCheckboxes__Lwxc6`,
2292
- "iconsHeaderContainer": `iconsTab-module__iconsHeaderContainer__nlaKy`,
2293
- "iconsHeaderContainerLeft": `iconsTab-module__iconsHeaderContainerLeft__sqO0_`,
2294
- "iconsHeaderDivider": `iconsTab-module__iconsHeaderDivider__ujyPd`,
2295
- "copyToFolderModalBody": `iconsTab-module__copyToFolderModalBody__AkxuH`,
2296
- "copyToFolderModalLoadingOverlay": `iconsTab-module__copyToFolderModalLoadingOverlay__dd9RB`
2297
- };
2298
- module.exports = ___CSS_LOADER_EXPORT___;
2299
-
2300
-
2301
- /***/ })
2302
-
2303
- }]);
2304
- //# sourceMappingURL=fm-icons-tab.dbc6aea218d2ab6b3de5.js.map