geoiq-frontend-ui-kit 2.0.1 → 2.0.2

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 (494) hide show
  1. package/dist/components/atoms/badge/badge.styles.d.ts +2 -2
  2. package/dist/components/atoms/button/button.styles.d.ts +2 -2
  3. package/dist/components/atoms/checkbox/checkbox.styles.d.ts +2 -2
  4. package/dist/components/atoms/switch/switch.styles.d.ts +2 -2
  5. package/dist/components/molecules/alert/alert.styles.d.ts +1 -1
  6. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts +4 -0
  7. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts.map +1 -0
  8. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.types.d.ts +49 -0
  9. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.types.d.ts.map +1 -0
  10. package/dist/components/molecules/creatable-multi-combobox/index.d.ts +4 -0
  11. package/dist/components/molecules/creatable-multi-combobox/index.d.ts.map +1 -0
  12. package/dist/components/molecules/single-select/index.d.ts.map +1 -1
  13. package/dist/components/molecules/single-select/single-select-components.d.ts +3 -1
  14. package/dist/components/molecules/single-select/single-select-components.d.ts.map +1 -1
  15. package/dist/components/molecules/single-select/single-select.types.d.ts +9 -0
  16. package/dist/components/molecules/single-select/single-select.types.d.ts.map +1 -1
  17. package/dist/components/molecules/split-button/split-button.styles.d.ts +3 -3
  18. package/dist/components/molecules/swatch-grid/index.d.ts +3 -0
  19. package/dist/components/molecules/swatch-grid/index.d.ts.map +1 -0
  20. package/dist/components/molecules/swatch-grid/swatch-grid.d.ts +4 -0
  21. package/dist/components/molecules/swatch-grid/swatch-grid.d.ts.map +1 -0
  22. package/dist/components/molecules/swatch-grid/swatch-grid.types.d.ts +17 -0
  23. package/dist/components/molecules/swatch-grid/swatch-grid.types.d.ts.map +1 -0
  24. package/dist/components/molecules/tabs/tabs.d.ts.map +1 -1
  25. package/dist/components/molecules/tabs/tabs.styles.d.ts +2 -2
  26. package/dist/components/molecules/tabs/tabs.types.d.ts +1 -0
  27. package/dist/components/molecules/tabs/tabs.types.d.ts.map +1 -1
  28. package/dist/components/organisms/dialog/dialog.d.ts +1 -1
  29. package/dist/components/organisms/dialog/dialog.d.ts.map +1 -1
  30. package/dist/components/organisms/dialog/dialog.types.d.ts +9 -0
  31. package/dist/components/organisms/dialog/dialog.types.d.ts.map +1 -1
  32. package/dist/components/organisms/image-editor/components/color-picker.d.ts +7 -0
  33. package/dist/components/organisms/image-editor/components/color-picker.d.ts.map +1 -0
  34. package/dist/components/organisms/image-editor/components/layers-list.d.ts +9 -0
  35. package/dist/components/organisms/image-editor/components/layers-list.d.ts.map +1 -0
  36. package/dist/components/organisms/image-editor/components/panel-adjust.d.ts +9 -0
  37. package/dist/components/organisms/image-editor/components/panel-adjust.d.ts.map +1 -0
  38. package/dist/components/organisms/image-editor/components/panel-crop.d.ts +9 -0
  39. package/dist/components/organisms/image-editor/components/panel-crop.d.ts.map +1 -0
  40. package/dist/components/organisms/image-editor/components/panel-insert.d.ts +9 -0
  41. package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -0
  42. package/dist/components/organisms/image-editor/components/panel-selected.d.ts +9 -0
  43. package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -0
  44. package/dist/components/organisms/image-editor/components/panel.d.ts +9 -0
  45. package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -0
  46. package/dist/components/organisms/image-editor/components/portal-context.d.ts +3 -0
  47. package/dist/components/organisms/image-editor/components/portal-context.d.ts.map +1 -0
  48. package/dist/components/organisms/image-editor/components/ribbon.d.ts +9 -0
  49. package/dist/components/organisms/image-editor/components/ribbon.d.ts.map +1 -0
  50. package/dist/components/organisms/image-editor/components/shape-icons.d.ts +4 -0
  51. package/dist/components/organisms/image-editor/components/shape-icons.d.ts.map +1 -0
  52. package/dist/components/organisms/image-editor/components/stage.d.ts +18 -0
  53. package/dist/components/organisms/image-editor/components/stage.d.ts.map +1 -0
  54. package/dist/components/organisms/image-editor/components/status-bar.d.ts +6 -0
  55. package/dist/components/organisms/image-editor/components/status-bar.d.ts.map +1 -0
  56. package/dist/components/organisms/image-editor/image-editor-modal.d.ts +10 -0
  57. package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -0
  58. package/dist/components/organisms/image-editor/image-editor.d.ts +5 -0
  59. package/dist/components/organisms/image-editor/image-editor.d.ts.map +1 -0
  60. package/dist/components/organisms/image-editor/image-editor.types.d.ts +182 -0
  61. package/dist/components/organisms/image-editor/image-editor.types.d.ts.map +1 -0
  62. package/dist/components/organisms/image-editor/index.d.ts +4 -0
  63. package/dist/components/organisms/image-editor/index.d.ts.map +1 -0
  64. package/dist/components/organisms/image-editor/native-bridge.d.ts +3 -0
  65. package/dist/components/organisms/image-editor/native-bridge.d.ts.map +1 -0
  66. package/dist/components/organisms/image-editor/picture-studio-engine.d.ts +16 -0
  67. package/dist/components/organisms/image-editor/use-image-editor.d.ts +4 -0
  68. package/dist/components/organisms/image-editor/use-image-editor.d.ts.map +1 -0
  69. package/dist/components/organisms/navbar/navbar-desktop.d.ts.map +1 -1
  70. package/dist/components/organisms/navbar/navbar-extended.d.ts.map +1 -1
  71. package/dist/components/organisms/navbar/navbar-mobile.d.ts.map +1 -1
  72. package/dist/components/organisms/navbar/navbar.types.d.ts +17 -0
  73. package/dist/components/organisms/navbar/navbar.types.d.ts.map +1 -1
  74. package/dist/components/organisms/sheet/sheet.d.ts +1 -1
  75. package/dist/components/organisms/sheet/sheet.d.ts.map +1 -1
  76. package/dist/components/organisms/sheet/sheet.types.d.ts +1 -0
  77. package/dist/components/organisms/sheet/sheet.types.d.ts.map +1 -1
  78. package/dist/components/organisms/sidebar/sidebar-components.d.ts +1 -1
  79. package/dist/components/ui/brand-switcher/brand-switcher.d.ts +5 -0
  80. package/dist/components/ui/brand-switcher/brand-switcher.d.ts.map +1 -0
  81. package/dist/components/ui/brand-switcher/brand-switcher.types.d.ts +29 -0
  82. package/dist/components/ui/brand-switcher/brand-switcher.types.d.ts.map +1 -0
  83. package/dist/components/ui/brand-switcher/index.d.ts +3 -0
  84. package/dist/components/ui/brand-switcher/index.d.ts.map +1 -0
  85. package/dist/components/ui/credit-sheet/credit-sheet.d.ts.map +1 -1
  86. package/dist/components/ui/credit-sheet/credit-sheet.types.d.ts +3 -0
  87. package/dist/components/ui/credit-sheet/credit-sheet.types.d.ts.map +1 -1
  88. package/dist/components/ui/credits-indicator/credits-indicator.d.ts +6 -0
  89. package/dist/components/ui/credits-indicator/credits-indicator.d.ts.map +1 -0
  90. package/dist/components/ui/credits-indicator/credits-indicator.styles.d.ts +7 -0
  91. package/dist/components/ui/credits-indicator/credits-indicator.styles.d.ts.map +1 -0
  92. package/dist/components/ui/credits-indicator/credits-indicator.types.d.ts +14 -0
  93. package/dist/components/ui/credits-indicator/credits-indicator.types.d.ts.map +1 -0
  94. package/dist/components/ui/credits-indicator/index.d.ts +3 -0
  95. package/dist/components/ui/credits-indicator/index.d.ts.map +1 -0
  96. package/dist/components/ui/form-renderer/components/form-fields/components/multi-image-picker/index.d.ts.map +1 -1
  97. package/dist/components/ui/form-renderer/components/form-fields/components/single-image-picker/index.d.ts.map +1 -1
  98. package/dist/components/ui/form-renderer/components/form-fields/components/taggable-multi-image-picker/index.d.ts.map +1 -1
  99. package/dist/components/ui/form-renderer/components/form-fields/components/taggable-multi-image-picker-with-input/index.d.ts.map +1 -1
  100. package/dist/components/ui/form-renderer/components/form-fields/index.d.ts.map +1 -1
  101. package/dist/components/ui/form-renderer/components/form-read-only-view.d.ts.map +1 -1
  102. package/dist/components/ui/form-renderer/context/form-values/form-values.context.d.ts +4 -0
  103. package/dist/components/ui/form-renderer/context/form-values/form-values.context.d.ts.map +1 -1
  104. package/dist/components/ui/form-renderer/context/form-values/form-values.provider.d.ts +2 -0
  105. package/dist/components/ui/form-renderer/context/form-values/form-values.provider.d.ts.map +1 -1
  106. package/dist/components/ui/form-renderer/form-renderer.d.ts +10 -0
  107. package/dist/components/ui/form-renderer/form-renderer.d.ts.map +1 -1
  108. package/dist/components/ui/form-renderer/form.enums.d.ts +1 -0
  109. package/dist/components/ui/form-renderer/form.enums.d.ts.map +1 -1
  110. package/dist/components/ui/form-renderer/form.types.d.ts +20 -1
  111. package/dist/components/ui/form-renderer/form.types.d.ts.map +1 -1
  112. package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts +1 -1
  113. package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts.map +1 -1
  114. package/dist/components/ui/report-snippet-view/report-snippet-view-components.d.ts.map +1 -1
  115. package/dist/components/ui/request-credits-view/component/request-credit-dialog.d.ts.map +1 -1
  116. package/dist/components/ui/request-credits-view/component/request-credit-dialog.types.d.ts +3 -0
  117. package/dist/components/ui/request-credits-view/component/request-credit-dialog.types.d.ts.map +1 -1
  118. package/dist/components/ui/request-credits-view/index.d.ts +1 -0
  119. package/dist/components/ui/request-credits-view/index.d.ts.map +1 -1
  120. package/dist/components/ui/request-credits-view/request-credits-view.d.ts.map +1 -1
  121. package/dist/components/ui/request-credits-view/request-credits-view.types.d.ts +3 -0
  122. package/dist/components/ui/request-credits-view/request-credits-view.types.d.ts.map +1 -1
  123. package/dist/components/unstyled/spinner/spinner.styles.d.ts +1 -1
  124. package/dist/index.d.ts +8 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.es.js +210 -193
  127. package/dist/index.es.js.map +1 -1
  128. package/dist/index.es10.js +30 -23
  129. package/dist/index.es10.js.map +1 -1
  130. package/dist/index.es100.js +120 -10
  131. package/dist/index.es100.js.map +1 -1
  132. package/dist/index.es101.js +16 -97
  133. package/dist/index.es101.js.map +1 -1
  134. package/dist/index.es102.js +41 -60
  135. package/dist/index.es102.js.map +1 -1
  136. package/dist/index.es103.js +13 -54
  137. package/dist/index.es103.js.map +1 -1
  138. package/dist/index.es104.js +68 -5
  139. package/dist/index.es104.js.map +1 -1
  140. package/dist/index.es105.js +32 -9
  141. package/dist/index.es105.js.map +1 -1
  142. package/dist/index.es106.js +19 -32
  143. package/dist/index.es106.js.map +1 -1
  144. package/dist/index.es107.js +18 -61
  145. package/dist/index.es107.js.map +1 -1
  146. package/dist/index.es108.js +12 -22
  147. package/dist/index.es108.js.map +1 -1
  148. package/dist/index.es109.js +98 -22
  149. package/dist/index.es109.js.map +1 -1
  150. package/dist/index.es11.js +77 -25
  151. package/dist/index.es11.js.map +1 -1
  152. package/dist/index.es110.js +62 -21
  153. package/dist/index.es110.js.map +1 -1
  154. package/dist/index.es111.js +48 -174
  155. package/dist/index.es111.js.map +1 -1
  156. package/dist/index.es112.js +39 -37
  157. package/dist/index.es112.js.map +1 -1
  158. package/dist/index.es113.js +10 -40
  159. package/dist/index.es113.js.map +1 -1
  160. package/dist/index.es114.js +88 -37
  161. package/dist/index.es114.js.map +1 -1
  162. package/dist/index.es115.js +15 -13
  163. package/dist/index.es115.js.map +1 -1
  164. package/dist/index.es116.js +88 -261
  165. package/dist/index.es116.js.map +1 -1
  166. package/dist/index.es117.js +14 -9
  167. package/dist/index.es117.js.map +1 -1
  168. package/dist/index.es118.js +101 -67
  169. package/dist/index.es118.js.map +1 -1
  170. package/dist/index.es119.js +23 -185
  171. package/dist/index.es119.js.map +1 -1
  172. package/dist/index.es12.js +26 -14
  173. package/dist/index.es12.js.map +1 -1
  174. package/dist/index.es120.js +25 -23
  175. package/dist/index.es120.js.map +1 -1
  176. package/dist/index.es121.js +22 -177
  177. package/dist/index.es121.js.map +1 -1
  178. package/dist/index.es122.js +43 -7
  179. package/dist/index.es122.js.map +1 -1
  180. package/dist/index.es123.js +32 -84
  181. package/dist/index.es123.js.map +1 -1
  182. package/dist/index.es124.js +63 -37
  183. package/dist/index.es124.js.map +1 -1
  184. package/dist/index.es125.js +180 -11
  185. package/dist/index.es125.js.map +1 -1
  186. package/dist/index.es126.js +13 -35
  187. package/dist/index.es126.js.map +1 -1
  188. package/dist/index.es127.js +9 -16
  189. package/dist/index.es127.js.map +1 -1
  190. package/dist/index.es128.js +68 -5
  191. package/dist/index.es128.js.map +1 -1
  192. package/dist/index.es129.js +185 -10
  193. package/dist/index.es129.js.map +1 -1
  194. package/dist/index.es13.js +27 -19
  195. package/dist/index.es13.js.map +1 -1
  196. package/dist/index.es130.js +22 -10
  197. package/dist/index.es130.js.map +1 -1
  198. package/dist/index.es131.js +203 -2
  199. package/dist/index.es131.js.map +1 -1
  200. package/dist/index.es132.js +40 -22
  201. package/dist/index.es132.js.map +1 -1
  202. package/dist/index.es133.js +11 -257
  203. package/dist/index.es133.js.map +1 -1
  204. package/dist/index.es134.js +7 -35
  205. package/dist/index.es134.js.map +1 -1
  206. package/dist/index.es135.js +34 -8
  207. package/dist/index.es135.js.map +1 -1
  208. package/dist/index.es136.js +36 -78
  209. package/dist/index.es136.js.map +1 -1
  210. package/dist/index.es137.js +2 -76
  211. package/dist/index.es137.js.map +1 -1
  212. package/dist/index.es138.js +21 -110
  213. package/dist/index.es138.js.map +1 -1
  214. package/dist/index.es139.js +14 -107
  215. package/dist/index.es139.js.map +1 -1
  216. package/dist/index.es14.js +16 -46
  217. package/dist/index.es14.js.map +1 -1
  218. package/dist/index.es140.js +7 -87
  219. package/dist/index.es140.js.map +1 -1
  220. package/dist/index.es141.js +21 -128
  221. package/dist/index.es141.js.map +1 -1
  222. package/dist/index.es142.js +155 -114
  223. package/dist/index.es142.js.map +1 -1
  224. package/dist/index.es143.js +82 -6
  225. package/dist/index.es143.js.map +1 -1
  226. package/dist/index.es144.js +8 -0
  227. package/dist/index.es144.js.map +1 -0
  228. package/dist/index.es145.js +59 -0
  229. package/dist/index.es145.js.map +1 -0
  230. package/dist/index.es146.js +120 -0
  231. package/dist/index.es146.js.map +1 -0
  232. package/dist/index.es147.js +325 -0
  233. package/dist/index.es147.js.map +1 -0
  234. package/dist/index.es148.js +31 -0
  235. package/dist/index.es148.js.map +1 -0
  236. package/dist/index.es149.js +71 -0
  237. package/dist/index.es149.js.map +1 -0
  238. package/dist/index.es15.js +18 -21
  239. package/dist/index.es15.js.map +1 -1
  240. package/dist/index.es150.js +35 -0
  241. package/dist/index.es150.js.map +1 -0
  242. package/dist/index.es151.js +28 -0
  243. package/dist/index.es151.js.map +1 -0
  244. package/dist/index.es152.js +41 -0
  245. package/dist/index.es152.js.map +1 -0
  246. package/dist/index.es153.js +146 -0
  247. package/dist/index.es153.js.map +1 -0
  248. package/dist/index.es154.js +147 -0
  249. package/dist/index.es154.js.map +1 -0
  250. package/dist/index.es155.js +50 -0
  251. package/dist/index.es155.js.map +1 -0
  252. package/dist/index.es156.js +15 -0
  253. package/dist/index.es156.js.map +1 -0
  254. package/dist/index.es157.js +47 -0
  255. package/dist/index.es157.js.map +1 -0
  256. package/dist/index.es158.js +8 -0
  257. package/dist/index.es158.js.map +1 -0
  258. package/dist/index.es159.js +14 -0
  259. package/dist/index.es159.js.map +1 -0
  260. package/dist/index.es16.js +44 -22
  261. package/dist/index.es16.js.map +1 -1
  262. package/dist/index.es160.js +14 -0
  263. package/dist/index.es160.js.map +1 -0
  264. package/dist/index.es161.js +5 -0
  265. package/dist/index.es161.js.map +1 -0
  266. package/dist/index.es162.js +94 -0
  267. package/dist/index.es162.js.map +1 -0
  268. package/dist/index.es163.js +216 -0
  269. package/dist/index.es163.js.map +1 -0
  270. package/dist/index.es164.js +57 -0
  271. package/dist/index.es164.js.map +1 -0
  272. package/dist/index.es165.js +39 -0
  273. package/dist/index.es165.js.map +1 -0
  274. package/dist/index.es166.js +36 -0
  275. package/dist/index.es166.js.map +1 -0
  276. package/dist/index.es167.js +36 -0
  277. package/dist/index.es167.js.map +1 -0
  278. package/dist/index.es168.js +94 -0
  279. package/dist/index.es168.js.map +1 -0
  280. package/dist/index.es169.js +120 -0
  281. package/dist/index.es169.js.map +1 -0
  282. package/dist/index.es17.js +22 -20
  283. package/dist/index.es17.js.map +1 -1
  284. package/dist/index.es170.js +289 -0
  285. package/dist/index.es170.js.map +1 -0
  286. package/dist/index.es171.js +38 -0
  287. package/dist/index.es171.js.map +1 -0
  288. package/dist/index.es172.js +14 -0
  289. package/dist/index.es172.js.map +1 -0
  290. package/dist/index.es173.js +87 -0
  291. package/dist/index.es173.js.map +1 -0
  292. package/dist/index.es174.js +79 -0
  293. package/dist/index.es174.js.map +1 -0
  294. package/dist/index.es175.js +118 -0
  295. package/dist/index.es175.js.map +1 -0
  296. package/dist/index.es176.js +112 -0
  297. package/dist/index.es176.js.map +1 -0
  298. package/dist/index.es177.js +90 -0
  299. package/dist/index.es177.js.map +1 -0
  300. package/dist/index.es178.js +133 -0
  301. package/dist/index.es178.js.map +1 -0
  302. package/dist/index.es179.js +133 -0
  303. package/dist/index.es179.js.map +1 -0
  304. package/dist/index.es18.js +23 -73
  305. package/dist/index.es18.js.map +1 -1
  306. package/dist/index.es180.js +29 -0
  307. package/dist/index.es180.js.map +1 -0
  308. package/dist/index.es181.js +27 -0
  309. package/dist/index.es181.js.map +1 -0
  310. package/dist/index.es182.js +9 -0
  311. package/dist/index.es182.js.map +1 -0
  312. package/dist/index.es19.js +18 -48
  313. package/dist/index.es19.js.map +1 -1
  314. package/dist/index.es2.js +120 -22
  315. package/dist/index.es2.js.map +1 -1
  316. package/dist/index.es20.js +70 -45
  317. package/dist/index.es20.js.map +1 -1
  318. package/dist/index.es21.js +43 -122
  319. package/dist/index.es21.js.map +1 -1
  320. package/dist/index.es22.js +39 -96
  321. package/dist/index.es22.js.map +1 -1
  322. package/dist/index.es23.js +113 -152
  323. package/dist/index.es23.js.map +1 -1
  324. package/dist/index.es24.js +98 -64
  325. package/dist/index.es24.js.map +1 -1
  326. package/dist/index.es25.js +160 -77
  327. package/dist/index.es25.js.map +1 -1
  328. package/dist/index.es26.js +69 -51
  329. package/dist/index.es26.js.map +1 -1
  330. package/dist/index.es27.js +82 -17
  331. package/dist/index.es27.js.map +1 -1
  332. package/dist/index.es28.js +274 -2
  333. package/dist/index.es28.js.map +1 -1
  334. package/dist/index.es29.js +55 -5
  335. package/dist/index.es29.js.map +1 -1
  336. package/dist/index.es3.js +40 -41
  337. package/dist/index.es3.js.map +1 -1
  338. package/dist/index.es30.js +16 -75
  339. package/dist/index.es30.js.map +1 -1
  340. package/dist/index.es31.js +2 -28
  341. package/dist/index.es31.js.map +1 -1
  342. package/dist/index.es32.js +4 -84
  343. package/dist/index.es32.js.map +1 -1
  344. package/dist/index.es33.js +72 -43
  345. package/dist/index.es33.js.map +1 -1
  346. package/dist/index.es34.js +25 -68
  347. package/dist/index.es34.js.map +1 -1
  348. package/dist/index.es35.js +85 -12
  349. package/dist/index.es35.js.map +1 -1
  350. package/dist/index.es36.js +47 -85
  351. package/dist/index.es36.js.map +1 -1
  352. package/dist/index.es37.js +63 -32
  353. package/dist/index.es37.js.map +1 -1
  354. package/dist/index.es38.js +49 -40
  355. package/dist/index.es38.js.map +1 -1
  356. package/dist/index.es39.js +12 -98
  357. package/dist/index.es39.js.map +1 -1
  358. package/dist/index.es4.js +17 -17
  359. package/dist/index.es4.js.map +1 -1
  360. package/dist/index.es40.js +81 -156
  361. package/dist/index.es40.js.map +1 -1
  362. package/dist/index.es41.js +39 -226
  363. package/dist/index.es41.js.map +1 -1
  364. package/dist/index.es42.js +40 -269
  365. package/dist/index.es42.js.map +1 -1
  366. package/dist/index.es43.js +97 -21
  367. package/dist/index.es43.js.map +1 -1
  368. package/dist/index.es44.js +15 -9
  369. package/dist/index.es44.js.map +1 -1
  370. package/dist/index.es45.js +64 -20
  371. package/dist/index.es45.js.map +1 -1
  372. package/dist/index.es46.js +159 -61
  373. package/dist/index.es46.js.map +1 -1
  374. package/dist/index.es47.js +226 -123
  375. package/dist/index.es47.js.map +1 -1
  376. package/dist/index.es48.js +300 -109
  377. package/dist/index.es48.js.map +1 -1
  378. package/dist/index.es49.js +19 -31
  379. package/dist/index.es49.js.map +1 -1
  380. package/dist/index.es5.js +33 -31
  381. package/dist/index.es5.js.map +1 -1
  382. package/dist/index.es50.js +8 -142
  383. package/dist/index.es50.js.map +1 -1
  384. package/dist/index.es51.js +18 -70
  385. package/dist/index.es51.js.map +1 -1
  386. package/dist/index.es52.js +69 -21
  387. package/dist/index.es52.js.map +1 -1
  388. package/dist/index.es53.js +143 -103
  389. package/dist/index.es53.js.map +1 -1
  390. package/dist/index.es54.js +123 -11
  391. package/dist/index.es54.js.map +1 -1
  392. package/dist/index.es55.js +103 -18
  393. package/dist/index.es55.js.map +1 -1
  394. package/dist/index.es56.js +73 -11
  395. package/dist/index.es56.js.map +1 -1
  396. package/dist/index.es57.js +141 -16
  397. package/dist/index.es57.js.map +1 -1
  398. package/dist/index.es58.js +67 -40
  399. package/dist/index.es58.js.map +1 -1
  400. package/dist/index.es59.js +22 -86
  401. package/dist/index.es59.js.map +1 -1
  402. package/dist/index.es6.js +19 -23
  403. package/dist/index.es6.js.map +1 -1
  404. package/dist/index.es60.js +104 -7
  405. package/dist/index.es60.js.map +1 -1
  406. package/dist/index.es61.js +11 -41
  407. package/dist/index.es61.js.map +1 -1
  408. package/dist/index.es62.js +19 -79
  409. package/dist/index.es62.js.map +1 -1
  410. package/dist/index.es63.js +10 -35
  411. package/dist/index.es63.js.map +1 -1
  412. package/dist/index.es64.js +16 -86
  413. package/dist/index.es64.js.map +1 -1
  414. package/dist/index.es65.js +43 -58
  415. package/dist/index.es65.js.map +1 -1
  416. package/dist/index.es66.js +86 -69
  417. package/dist/index.es66.js.map +1 -1
  418. package/dist/index.es67.js +7 -32
  419. package/dist/index.es67.js.map +1 -1
  420. package/dist/index.es68.js +39 -65
  421. package/dist/index.es68.js.map +1 -1
  422. package/dist/index.es69.js +79 -28
  423. package/dist/index.es69.js.map +1 -1
  424. package/dist/index.es7.js +38 -43
  425. package/dist/index.es7.js.map +1 -1
  426. package/dist/index.es70.js +66 -84
  427. package/dist/index.es70.js.map +1 -1
  428. package/dist/index.es71.js +88 -11
  429. package/dist/index.es71.js.map +1 -1
  430. package/dist/index.es72.js +59 -46
  431. package/dist/index.es72.js.map +1 -1
  432. package/dist/index.es73.js +65 -108
  433. package/dist/index.es73.js.map +1 -1
  434. package/dist/index.es74.js +30 -15
  435. package/dist/index.es74.js.map +1 -1
  436. package/dist/index.es75.js +56 -35
  437. package/dist/index.es75.js.map +1 -1
  438. package/dist/index.es76.js +18 -19
  439. package/dist/index.es76.js.map +1 -1
  440. package/dist/index.es77.js +30 -38
  441. package/dist/index.es77.js.map +1 -1
  442. package/dist/index.es78.js +85 -28
  443. package/dist/index.es78.js.map +1 -1
  444. package/dist/index.es79.js +10 -94
  445. package/dist/index.es79.js.map +1 -1
  446. package/dist/index.es8.js +26 -33
  447. package/dist/index.es8.js.map +1 -1
  448. package/dist/index.es80.js +47 -2
  449. package/dist/index.es80.js.map +1 -1
  450. package/dist/index.es81.js +113 -6
  451. package/dist/index.es81.js.map +1 -1
  452. package/dist/index.es82.js +16 -26
  453. package/dist/index.es82.js.map +1 -1
  454. package/dist/index.es83.js +42 -109
  455. package/dist/index.es83.js.map +1 -1
  456. package/dist/index.es84.js +27 -22
  457. package/dist/index.es84.js.map +1 -1
  458. package/dist/index.es85.js +39 -18
  459. package/dist/index.es85.js.map +1 -1
  460. package/dist/index.es86.js +27 -18
  461. package/dist/index.es86.js.map +1 -1
  462. package/dist/index.es87.js +94 -18
  463. package/dist/index.es87.js.map +1 -1
  464. package/dist/index.es88.js +1 -18
  465. package/dist/index.es88.js.map +1 -1
  466. package/dist/index.es89.js +6 -49
  467. package/dist/index.es89.js.map +1 -1
  468. package/dist/index.es9.js +37 -72
  469. package/dist/index.es9.js.map +1 -1
  470. package/dist/index.es90.js +23 -84
  471. package/dist/index.es90.js.map +1 -1
  472. package/dist/index.es91.js +96 -99
  473. package/dist/index.es91.js.map +1 -1
  474. package/dist/index.es92.js +24 -16
  475. package/dist/index.es92.js.map +1 -1
  476. package/dist/index.es93.js +16 -22
  477. package/dist/index.es93.js.map +1 -1
  478. package/dist/index.es94.js +17 -100
  479. package/dist/index.es94.js.map +1 -1
  480. package/dist/index.es95.js +16 -71
  481. package/dist/index.es95.js.map +1 -1
  482. package/dist/index.es96.js +16 -42
  483. package/dist/index.es96.js.map +1 -1
  484. package/dist/index.es97.js +9 -32
  485. package/dist/index.es97.js.map +1 -1
  486. package/dist/index.es98.js +269 -15
  487. package/dist/index.es98.js.map +1 -1
  488. package/dist/index.es99.js +85 -17
  489. package/dist/index.es99.js.map +1 -1
  490. package/dist/lib/constants.d.ts +2 -0
  491. package/dist/lib/constants.d.ts.map +1 -0
  492. package/dist/styles.css +363 -31
  493. package/dist/ui-kit-preset.js +2 -1
  494. package/package.json +1 -1
@@ -1,25 +1,22 @@
1
1
  import * as t from "react";
2
- import * as e from "@radix-ui/react-tooltip";
3
- import { cn as m } from "./index.es81.js";
4
- import { Typography as o } from "./index.es17.js";
5
- const f = e.Provider, g = e.Root, h = e.Trigger, n = t.forwardRef(({ className: a, sideOffset: i = 4, headerText: r, content: l, ...d }, s) => /* @__PURE__ */ t.createElement(
6
- e.Content,
7
- {
8
- ref: s,
9
- sideOffset: i,
10
- className: m(
11
- "z-50 overflow-hidden bg-light-1 rounded-lg bg p-3 text-xs text-light-4 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 border border-neutral-1 max-w-96 shadow-lg",
12
- a
13
- ),
14
- ...d
15
- },
16
- /* @__PURE__ */ t.createElement("div", { className: "flex gap-0.5 flex-col" }, /* @__PURE__ */ t.createElement(o, { variant: "body5", className: "text-light-2" }, r), /* @__PURE__ */ t.createElement(o, { variant: "body6", className: "text-light-4" }, l))
17
- ));
18
- n.displayName = e.Content.displayName;
2
+ import * as r from "@radix-ui/react-switch";
3
+ import { cn as a } from "./index.es89.js";
4
+ import { SwitchVariants as o, SwitchThumbVariants as n } from "./index.es84.js";
5
+ const h = t.forwardRef((m, i) => {
6
+ const { className: s, size: e, ...c } = m;
7
+ return /* @__PURE__ */ t.createElement(
8
+ r.Root,
9
+ {
10
+ className: a(o({ size: e }), s),
11
+ ...c,
12
+ ref: i
13
+ },
14
+ /* @__PURE__ */ t.createElement(r.Thumb, { className: a(n({ size: e })) })
15
+ );
16
+ });
17
+ h.displayName = "Switch";
19
18
  export {
20
- n as TooltipContent,
21
- f as TooltipProvider,
22
- h as TooltipTrigger,
23
- g as TooltipWrapper
19
+ h as Switch,
20
+ o as SwitchVariants
24
21
  };
25
22
  //# sourceMappingURL=index.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es15.js","sources":["../src/components/atoms/tooltip/tooltip-components.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '@/lib/utils'\nimport { Typography } from '@/components/atoms/typography'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\ntype TooltipContentProps = {\n headerText: React.ReactNode\n content: React.ReactNode\n} & Omit<\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>,\n 'content'\n>\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, sideOffset = 4, headerText, content, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 overflow-hidden bg-light-1 rounded-lg bg p-3 text-xs text-light-4 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 border border-neutral-1 max-w-96 shadow-lg',\n className\n )}\n {...props}\n >\n <div className=\"flex gap-0.5 flex-col\">\n <Typography variant={'body5'} className=\"text-light-2\">\n {headerText}\n </Typography>\n <Typography variant={'body6'} className=\"text-light-4\">\n {content}\n </Typography>\n </div>\n </TooltipPrimitive.Content>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport {\n Tooltip as TooltipWrapper,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n}\n"],"names":["TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","React","className","sideOffset","headerText","content","props","ref","cn","Typography"],"mappings":";;;;AAQA,MAAMA,IAAkBC,EAAiB,UAEnCC,IAAUD,EAAiB,MAE3BE,IAAiBF,EAAiB,SAUlCG,IAAiBC,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,YAAAC,IAAa,GAAG,YAAAC,GAAY,SAAAC,GAAS,GAAGC,EAAA,GAASC,MAC/D,gBAAAN,EAAA;AAAA,EAACJ,EAAiB;AAAA,EAAjB;AAAA,IACC,KAAAU;AAAA,IACA,YAAAJ;AAAA,IACA,WAAWK;AAAA,MACT;AAAA,MACAN;AAAA,IAAA;AAAA,IAED,GAAGI;AAAA,EAAA;AAAA,kCAEH,OAAA,EAAI,WAAU,2BACb,gBAAAL,EAAA,cAACQ,GAAA,EAAW,SAAS,SAAS,WAAU,kBACrCL,CACH,mCACCK,GAAA,EAAW,SAAS,SAAS,WAAU,eAAA,GACrCJ,CACH,CACF;AACF,CACD;AACDL,EAAe,cAAcH,EAAiB,QAAQ;"}
1
+ {"version":3,"file":"index.es15.js","sources":["../src/components/atoms/switch/switch.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport * as SwitchPrimitives from '@radix-ui/react-switch'\nimport { cn } from '@/lib/utils'\nimport { SwitchThumbVariants, SwitchVariants } from './switch.styles'\nimport { SwitchProps } from './switch.types'\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchProps\n>((props, ref) => {\n const { className, size, ...rest } = props\n\n return (\n <SwitchPrimitives.Root\n className={cn(SwitchVariants({ size }), className)}\n {...rest}\n ref={ref}\n >\n <SwitchPrimitives.Thumb className={cn(SwitchThumbVariants({ size }))} />\n </SwitchPrimitives.Root>\n )\n})\n\nSwitch.displayName = 'Switch'\n\nexport { Switch, SwitchVariants }\n"],"names":["Switch","React","props","ref","className","size","rest","SwitchPrimitives","cn","SwitchVariants","SwitchThumbVariants"],"mappings":";;;;AAOA,MAAMA,IAASC,EAAM,WAGnB,CAACC,GAAOC,MAAQ;AAChB,QAAM,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,MAASJ;AAErC,SACE,gBAAAD,EAAA;AAAA,IAACM,EAAiB;AAAA,IAAjB;AAAA,MACC,WAAWC,EAAGC,EAAe,EAAE,MAAAJ,EAAA,CAAM,GAAGD,CAAS;AAAA,MAChD,GAAGE;AAAA,MACJ,KAAAH;AAAA,IAAA;AAAA,IAEA,gBAAAF,EAAA,cAACM,EAAiB,OAAjB,EAAuB,WAAWC,EAAGE,EAAoB,EAAE,MAAAL,EAAA,CAAM,CAAC,EAAA,CAAG;AAAA,EAAA;AAG5E,CAAC;AAEDL,EAAO,cAAc;"}
@@ -0,0 +1,35 @@
1
+ import { renderOverlay as r } from "./index.es147.js";
2
+ import { commitTextEdit as l } from "./index.es151.js";
3
+ const t = {
4
+ select: "Select — click a layer to move it",
5
+ crop: "Crop — drag a box",
6
+ text: "Text tool",
7
+ draw: "Draw tool",
8
+ shape: "Shape tool",
9
+ sticker: "Sticker tool"
10
+ };
11
+ function n(o) {
12
+ return `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='${encodeURIComponent(o)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 2 4 4-14 14H4v-4L18 2z'/%3E%3Cpath d='m14.5 5.5 4 4'/%3E%3C/svg%3E") 2 22, crosshair`;
13
+ }
14
+ const i = {
15
+ select: "default",
16
+ crop: "crosshair",
17
+ text: "text",
18
+ shape: "crosshair",
19
+ sticker: "default"
20
+ };
21
+ function c(o) {
22
+ o.overlayEl && (o.overlayEl.style.cursor = o.mode === "draw" ? n(o.drawColor) : i[o.mode] || "default");
23
+ }
24
+ function p(o, e) {
25
+ o.mode !== "select" && l(o), o.mode = e, o.pendingShape = null, o.cropRect = null, c(o), r(o), o.statusText = t[e], o.notify();
26
+ }
27
+ function u(o, e) {
28
+ o.selectedId = e, r(o), o.notify();
29
+ }
30
+ export {
31
+ c as applyModeCursor,
32
+ u as selectLayer,
33
+ p as setMode
34
+ };
35
+ //# sourceMappingURL=index.es150.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es150.js","sources":["../src/components/organisms/image-editor/engine/mode.js"],"sourcesContent":["import { renderOverlay } from './rendering.js'\nimport { commitTextEdit } from './text-editor.js'\n\nconst STATUS_BY_MODE = {\n select: 'Select — click a layer to move it',\n crop: 'Crop — drag a box',\n text: 'Text tool',\n draw: 'Draw tool',\n shape: 'Shape tool',\n sticker: 'Sticker tool',\n}\n\nfunction pencilCursor(color) {\n const stroke = encodeURIComponent(color)\n return `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='${stroke}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 2 4 4-14 14H4v-4L18 2z'/%3E%3Cpath d='m14.5 5.5 4 4'/%3E%3C/svg%3E\") 2 22, crosshair`\n}\n\nconst CURSOR_BY_MODE = {\n select: 'default',\n crop: 'crosshair',\n text: 'text',\n shape: 'crosshair',\n sticker: 'default',\n}\n\nexport function applyModeCursor(state) {\n if (!state.overlayEl) return\n state.overlayEl.style.cursor =\n state.mode === 'draw'\n ? pencilCursor(state.drawColor)\n : CURSOR_BY_MODE[state.mode] || 'default'\n}\n\nexport function setMode(state, m) {\n if (state.mode !== 'select') commitTextEdit(state)\n state.mode = m\n state.pendingShape = null\n state.cropRect = null\n applyModeCursor(state)\n renderOverlay(state)\n state.statusText = STATUS_BY_MODE[m]\n state.notify()\n}\n\nexport function selectLayer(state, id) {\n state.selectedId = id\n renderOverlay(state)\n state.notify()\n}\n"],"names":["STATUS_BY_MODE","pencilCursor","color","CURSOR_BY_MODE","applyModeCursor","state","setMode","m","commitTextEdit","renderOverlay","selectLayer","id"],"mappings":";;AAGA,MAAMA,IAAiB;AAAA,EACrB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACX;AAEA,SAASC,EAAaC,GAAO;AAE3B,SAAO,oIADQ,mBAAmBA,CAAK,CAC0G;AACnJ;AAEA,MAAMC,IAAiB;AAAA,EACrB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASC,EAAgBC,GAAO;AACrC,EAAKA,EAAM,cACXA,EAAM,UAAU,MAAM,SACpBA,EAAM,SAAS,SACXJ,EAAaI,EAAM,SAAS,IAC5BF,EAAeE,EAAM,IAAI,KAAK;AACtC;AAEO,SAASC,EAAQD,GAAOE,GAAG;AAChC,EAAIF,EAAM,SAAS,YAAUG,EAAeH,CAAK,GACjDA,EAAM,OAAOE,GACbF,EAAM,eAAe,MACrBA,EAAM,WAAW,MACjBD,EAAgBC,CAAK,GACrBI,EAAcJ,CAAK,GACnBA,EAAM,aAAaL,EAAeO,CAAC,GACnCF,EAAM,OAAM;AACd;AAEO,SAASK,EAAYL,GAAOM,GAAI;AACrC,EAAAN,EAAM,aAAaM,GACnBF,EAAcJ,CAAK,GACnBA,EAAM,OAAM;AACd;"}
@@ -0,0 +1,28 @@
1
+ import { keepingFixed as E, render as x, layerBounds as d, renderOverlay as y } from "./index.es147.js";
2
+ const u = 16, r = 28;
3
+ function c(e) {
4
+ const i = e.textEditorEl;
5
+ !i || i.offsetParent === null || (i.style.height = "auto", i.style.height = Math.max(r, i.scrollHeight) + "px");
6
+ }
7
+ function p(e, i, n) {
8
+ e.editingLayer = i, e.editingSelectAll = !!n;
9
+ const t = d(e, i), l = e.overlayEl.getBoundingClientRect(), o = e.overlayEl.parentElement.getBoundingClientRect();
10
+ e.textEditorEl.value = i.text === "Text" ? "" : i.text, e.textEditorEl.style.left = l.left - o.left + t.x * e.viewScale + "px", e.textEditorEl.style.top = l.top - o.top + t.y * e.viewScale + "px", e.textEditorEl.style.width = Math.max(60, t.w * e.viewScale) + "px", e.textEditorEl.style.height = Math.max(r, t.h * e.viewScale) + "px", e.textEditorEl.style.fontFamily = i.font, e.textEditorEl.style.fontSize = u + "px", e.textEditorEl.style.color = i.color, i._editing = !0, y(e), e.notify(), requestAnimationFrame(() => c(e));
11
+ }
12
+ function f(e) {
13
+ if (!e.editingLayer) return;
14
+ const i = e.editingLayer;
15
+ E(e, i, { x: i.x, y: i.y }, () => {
16
+ i.text = e.textEditorEl.value.trim() === "" ? "Text" : e.textEditorEl.value;
17
+ }), i._editing = !1, e.editingLayer = null, x(e), e.notify();
18
+ }
19
+ function h(e) {
20
+ e.editingLayer && (f(e), e.textEditorEl && e.textEditorEl.blur());
21
+ }
22
+ export {
23
+ c as autoGrowTextEditor,
24
+ h as blurTextEditor,
25
+ f as commitTextEdit,
26
+ p as openTextEditor
27
+ };
28
+ //# sourceMappingURL=index.es151.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es151.js","sources":["../src/components/organisms/image-editor/engine/text-editor.js"],"sourcesContent":["import {\n keepingFixed,\n layerBounds,\n render,\n renderOverlay,\n} from './rendering.js'\n\nconst EDITOR_FONT_SIZE = 16\nconst EDITOR_MIN_HEIGHT = 28\n\n// Grow the box to fit what is typed; no-op while hidden (scrollHeight is 0).\nexport function autoGrowTextEditor(state) {\n const el = state.textEditorEl\n if (!el || el.offsetParent === null) return\n el.style.height = 'auto'\n el.style.height = Math.max(EDITOR_MIN_HEIGHT, el.scrollHeight) + 'px'\n}\n\nexport function openTextEditor(state, L, selectAll) {\n state.editingLayer = L\n state.editingSelectAll = !!selectAll\n const b = layerBounds(state, L),\n r = state.overlayEl.getBoundingClientRect(),\n wr = state.overlayEl.parentElement.getBoundingClientRect()\n state.textEditorEl.value = L.text === 'Text' ? '' : L.text\n state.textEditorEl.style.left =\n r.left - wr.left + b.x * state.viewScale + 'px'\n state.textEditorEl.style.top = r.top - wr.top + b.y * state.viewScale + 'px'\n state.textEditorEl.style.width = Math.max(60, b.w * state.viewScale) + 'px'\n state.textEditorEl.style.height =\n Math.max(EDITOR_MIN_HEIGHT, b.h * state.viewScale) + 'px'\n state.textEditorEl.style.fontFamily = L.font\n state.textEditorEl.style.fontSize = EDITOR_FONT_SIZE + 'px'\n state.textEditorEl.style.color = L.color\n L._editing = true\n renderOverlay(state)\n state.notify()\n // notify() is what un-hides the textarea, so measure on the next frame.\n requestAnimationFrame(() => autoGrowTextEditor(state))\n}\n\nexport function commitTextEdit(state) {\n if (!state.editingLayer) return\n const L = state.editingLayer\n // Longer text means taller bounds; hold the top-left corner.\n keepingFixed(state, L, { x: L.x, y: L.y }, () => {\n L.text =\n state.textEditorEl.value.trim() === '' ? 'Text' : state.textEditorEl.value\n })\n L._editing = false\n state.editingLayer = null\n render(state)\n state.notify()\n}\n\n// Committing alone leaves the hidden textarea focused, keeping the keyboard up.\nexport function blurTextEditor(state) {\n if (!state.editingLayer) return\n commitTextEdit(state)\n if (state.textEditorEl) state.textEditorEl.blur()\n}\n"],"names":["EDITOR_FONT_SIZE","EDITOR_MIN_HEIGHT","autoGrowTextEditor","state","el","openTextEditor","L","selectAll","b","layerBounds","r","wr","renderOverlay","commitTextEdit","keepingFixed","render","blurTextEditor"],"mappings":";AAOA,MAAMA,IAAmB,IACnBC,IAAoB;AAGnB,SAASC,EAAmBC,GAAO;AACxC,QAAMC,IAAKD,EAAM;AACjB,EAAI,CAACC,KAAMA,EAAG,iBAAiB,SAC/BA,EAAG,MAAM,SAAS,QAClBA,EAAG,MAAM,SAAS,KAAK,IAAIH,GAAmBG,EAAG,YAAY,IAAI;AACnE;AAEO,SAASC,EAAeF,GAAOG,GAAGC,GAAW;AAClD,EAAAJ,EAAM,eAAeG,GACrBH,EAAM,mBAAmB,CAAC,CAACI;AAC3B,QAAMC,IAAIC,EAAYN,GAAOG,CAAC,GAC5BI,IAAIP,EAAM,UAAU,sBAAqB,GACzCQ,IAAKR,EAAM,UAAU,cAAc,sBAAqB;AAC1D,EAAAA,EAAM,aAAa,QAAQG,EAAE,SAAS,SAAS,KAAKA,EAAE,MACtDH,EAAM,aAAa,MAAM,OACvBO,EAAE,OAAOC,EAAG,OAAOH,EAAE,IAAIL,EAAM,YAAY,MAC7CA,EAAM,aAAa,MAAM,MAAMO,EAAE,MAAMC,EAAG,MAAMH,EAAE,IAAIL,EAAM,YAAY,MACxEA,EAAM,aAAa,MAAM,QAAQ,KAAK,IAAI,IAAIK,EAAE,IAAIL,EAAM,SAAS,IAAI,MACvEA,EAAM,aAAa,MAAM,SACvB,KAAK,IAAIF,GAAmBO,EAAE,IAAIL,EAAM,SAAS,IAAI,MACvDA,EAAM,aAAa,MAAM,aAAaG,EAAE,MACxCH,EAAM,aAAa,MAAM,WAAWH,IAAmB,MACvDG,EAAM,aAAa,MAAM,QAAQG,EAAE,OACnCA,EAAE,WAAW,IACbM,EAAcT,CAAK,GACnBA,EAAM,OAAM,GAEZ,sBAAsB,MAAMD,EAAmBC,CAAK,CAAC;AACvD;AAEO,SAASU,EAAeV,GAAO;AACpC,MAAI,CAACA,EAAM,aAAc;AACzB,QAAMG,IAAIH,EAAM;AAEhB,EAAAW,EAAaX,GAAOG,GAAG,EAAE,GAAGA,EAAE,GAAG,GAAGA,EAAE,EAAC,GAAI,MAAM;AAC/C,IAAAA,EAAE,OACAH,EAAM,aAAa,MAAM,KAAI,MAAO,KAAK,SAASA,EAAM,aAAa;AAAA,EACzE,CAAC,GACDG,EAAE,WAAW,IACbH,EAAM,eAAe,MACrBY,EAAOZ,CAAK,GACZA,EAAM,OAAM;AACd;AAGO,SAASa,EAAeb,GAAO;AACpC,EAAKA,EAAM,iBACXU,EAAeV,CAAK,GAChBA,EAAM,gBAAcA,EAAM,aAAa,KAAI;AACjD;"}
@@ -0,0 +1,41 @@
1
+ import { pushHistory as t } from "./index.es148.js";
2
+ import { emitChange as d } from "./index.es146.js";
3
+ import { render as a } from "./index.es147.js";
4
+ function h(o, n) {
5
+ return new Promise((i, c) => {
6
+ const r = o.stickerImageCache.get(n);
7
+ if (r && r.complete && r.naturalWidth) {
8
+ i(r);
9
+ return;
10
+ }
11
+ const e = new Image();
12
+ e.crossOrigin = "anonymous", e.onload = () => {
13
+ o.stickerImageCache.set(n, e), i(e);
14
+ }, e.onerror = c, e.src = n;
15
+ });
16
+ }
17
+ function l(o, n) {
18
+ h(o, n).then((i) => {
19
+ t(o);
20
+ const c = o.sourceCanvas.width * 0.25, r = c * (i.naturalHeight / i.naturalWidth || 1), e = {
21
+ id: o.nextId++,
22
+ type: "sticker",
23
+ src: n,
24
+ x: (o.sourceCanvas.width - c) / 2,
25
+ y: (o.sourceCanvas.height - r) / 2,
26
+ w: c,
27
+ h: r,
28
+ rotation: 0,
29
+ flipH: !1,
30
+ flipV: !1
31
+ };
32
+ o.layers.push(e), a(o), o.mode = "select", o.selectedId = e.id, o.statusText = "Sticker added", d(o);
33
+ }).catch(() => {
34
+ o.statusText = "Could not load that sticker (CORS?)", o.notify();
35
+ });
36
+ }
37
+ export {
38
+ l as addSticker,
39
+ h as loadStickerImage
40
+ };
41
+ //# sourceMappingURL=index.es152.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es152.js","sources":["../src/components/organisms/image-editor/engine/stickers.js"],"sourcesContent":["import { pushHistory } from './history.js'\nimport { emitChange } from './state.js'\nimport { render } from './rendering.js'\n\nexport function loadStickerImage(state, src) {\n return new Promise((resolve, reject) => {\n const cached = state.stickerImageCache.get(src)\n if (cached && cached.complete && cached.naturalWidth) {\n resolve(cached)\n return\n }\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.onload = () => {\n state.stickerImageCache.set(src, img)\n resolve(img)\n }\n img.onerror = reject\n img.src = src\n })\n}\n\nexport function addSticker(state, src) {\n loadStickerImage(state, src)\n .then((img) => {\n pushHistory(state)\n const w = state.sourceCanvas.width * 0.25\n const h = w * (img.naturalHeight / img.naturalWidth || 1)\n const L = {\n id: state.nextId++,\n type: 'sticker',\n src,\n x: (state.sourceCanvas.width - w) / 2,\n y: (state.sourceCanvas.height - h) / 2,\n w,\n h,\n rotation: 0,\n flipH: false,\n flipV: false,\n }\n state.layers.push(L)\n render(state)\n state.mode = 'select'\n state.selectedId = L.id\n state.statusText = 'Sticker added'\n emitChange(state)\n })\n .catch(() => {\n state.statusText = 'Could not load that sticker (CORS?)'\n state.notify()\n })\n}\n"],"names":["loadStickerImage","state","src","resolve","reject","cached","img","addSticker","pushHistory","w","h","L","render","emitChange"],"mappings":";;;AAIO,SAASA,EAAiBC,GAAOC,GAAK;AAC3C,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACtC,UAAMC,IAASJ,EAAM,kBAAkB,IAAIC,CAAG;AAC9C,QAAIG,KAAUA,EAAO,YAAYA,EAAO,cAAc;AACpD,MAAAF,EAAQE,CAAM;AACd;AAAA,IACF;AACA,UAAMC,IAAM,IAAI,MAAK;AACrB,IAAAA,EAAI,cAAc,aAClBA,EAAI,SAAS,MAAM;AACjB,MAAAL,EAAM,kBAAkB,IAAIC,GAAKI,CAAG,GACpCH,EAAQG,CAAG;AAAA,IACb,GACAA,EAAI,UAAUF,GACdE,EAAI,MAAMJ;AAAA,EACZ,CAAC;AACH;AAEO,SAASK,EAAWN,GAAOC,GAAK;AACrC,EAAAF,EAAiBC,GAAOC,CAAG,EACxB,KAAK,CAACI,MAAQ;AACb,IAAAE,EAAYP,CAAK;AACjB,UAAMQ,IAAIR,EAAM,aAAa,QAAQ,MAC/BS,IAAID,KAAKH,EAAI,gBAAgBA,EAAI,gBAAgB,IACjDK,IAAI;AAAA,MACR,IAAIV,EAAM;AAAA,MACV,MAAM;AAAA,MACN,KAAAC;AAAA,MACA,IAAID,EAAM,aAAa,QAAQQ,KAAK;AAAA,MACpC,IAAIR,EAAM,aAAa,SAASS,KAAK;AAAA,MACrC,GAAAD;AAAA,MACA,GAAAC;AAAA,MACA,UAAU;AAAA,MACV,OAAO;AAAA,MACP,OAAO;AAAA,IACf;AACM,IAAAT,EAAM,OAAO,KAAKU,CAAC,GACnBC,EAAOX,CAAK,GACZA,EAAM,OAAO,UACbA,EAAM,aAAaU,EAAE,IACrBV,EAAM,aAAa,iBACnBY,EAAWZ,CAAK;AAAA,EAClB,CAAC,EACA,MAAM,MAAM;AACX,IAAAA,EAAM,aAAa,uCACnBA,EAAM,OAAM;AAAA,EACd,CAAC;AACL;"}
@@ -0,0 +1,146 @@
1
+ import { pushHistory as l } from "./index.es148.js";
2
+ import { emitChange as r, getSel as c } from "./index.es146.js";
3
+ import { render as o, keepingFixed as u, clampTextSize as d, clampBoxWidth as y } from "./index.es147.js";
4
+ import { SHAPES as p } from "./index.es145.js";
5
+ import { applyModeCursor as h } from "./index.es150.js";
6
+ function t(e, n, i) {
7
+ u(e, n, { x: n.x, y: n.y }, i);
8
+ }
9
+ function g(e) {
10
+ if (e.type === "text")
11
+ return "“" + (e.text.length > 16 ? e.text.slice(0, 16) + "…" : e.text) + "”";
12
+ if (e.type === "stroke")
13
+ return e.style === "highlight" ? "Highlighter" : "Brush stroke";
14
+ if (e.type === "sticker") return "Sticker";
15
+ const n = p.find((i) => i.id === e.shape);
16
+ return n ? n.name : e.shape;
17
+ }
18
+ function x(e, n) {
19
+ l(e), e.layers = e.layers.filter((i) => i.id !== n), e.selectedId === n && (e.selectedId = null), o(e), e.statusText = "Layer deleted", r(e);
20
+ }
21
+ function C(e) {
22
+ e.selectedId != null && x(e, e.selectedId);
23
+ }
24
+ function F(e) {
25
+ const n = c(e);
26
+ if (!n) return;
27
+ l(e);
28
+ const i = JSON.parse(JSON.stringify(n));
29
+ i.id = e.nextId++, i.type === "text" || i.type === "shape" || i.type === "sticker" ? (i.x += 20, i.y += 20) : i.type === "stroke" && (i.points = i.points.map((f) => ({ x: f.x + 20, y: f.y + 20 }))), e.layers.push(i), e.selectedId = i.id, o(e), e.statusText = "Layer duplicated", r(e);
30
+ }
31
+ function k(e) {
32
+ const n = e.layers.findIndex((f) => f.id === e.selectedId);
33
+ if (n < 0) return;
34
+ l(e);
35
+ const [i] = e.layers.splice(n, 1);
36
+ e.layers.push(i), o(e), r(e);
37
+ }
38
+ function z(e) {
39
+ const n = e.layers.findIndex((f) => f.id === e.selectedId);
40
+ if (n < 0) return;
41
+ l(e);
42
+ const [i] = e.layers.splice(n, 1);
43
+ e.layers.unshift(i), o(e), r(e);
44
+ }
45
+ function B(e, n, i) {
46
+ e.adj[n] = i, o(e), e.notify();
47
+ }
48
+ function W(e, n) {
49
+ e.adj.filter = n, o(e), r(e);
50
+ }
51
+ function b(e, n) {
52
+ e.selectedShapeType = n, e.notify();
53
+ }
54
+ function j(e, n) {
55
+ e.shapeFill = n, e.notify();
56
+ }
57
+ function w(e, n) {
58
+ e.shapeWidth = n, e.notify();
59
+ }
60
+ function H(e, n) {
61
+ e.brushSize = n, e.notify();
62
+ }
63
+ function L(e, n) {
64
+ e.brushStyle = n, e.notify();
65
+ }
66
+ function N(e, n) {
67
+ e.textFont = n, e.notify();
68
+ }
69
+ function A(e, n) {
70
+ e.textSize = n, e.notify();
71
+ }
72
+ function J(e, n) {
73
+ e.textColor = n, e.notify();
74
+ }
75
+ function O(e, n) {
76
+ e.shapeColor = n, e.notify();
77
+ }
78
+ function P(e, n) {
79
+ e.drawColor = n, h(e), e.notify();
80
+ }
81
+ function D(e, n) {
82
+ const i = c(e);
83
+ i && (l(e), i.color = n, o(e), r(e));
84
+ }
85
+ function E(e, n) {
86
+ const i = c(e);
87
+ !i || i.type !== "text" || (t(e, i, () => {
88
+ i.text = n;
89
+ }), o(e), e.notify());
90
+ }
91
+ function M(e, n) {
92
+ const i = c(e);
93
+ i && (l(e), t(e, i, () => {
94
+ i.font = n;
95
+ }), o(e), r(e));
96
+ }
97
+ function q(e, n) {
98
+ const i = c(e);
99
+ i && (t(e, i, () => {
100
+ i.size = n, d(e, i);
101
+ }), o(e), e.notify());
102
+ }
103
+ function v(e, n) {
104
+ const i = c(e);
105
+ !i || i.type !== "text" || (t(e, i, () => {
106
+ i.boxWidth = n, y(e, i), d(e, i);
107
+ }), o(e), e.notify());
108
+ }
109
+ function G(e, n) {
110
+ const i = c(e);
111
+ i && (l(e), i.fill = n, o(e), r(e));
112
+ }
113
+ function K(e, n) {
114
+ const i = c(e);
115
+ i && (t(e, i, () => {
116
+ i.width = n;
117
+ }), o(e), e.notify());
118
+ }
119
+ export {
120
+ k as bringSelectedToFront,
121
+ x as deleteLayer,
122
+ C as deleteSelected,
123
+ F as duplicateSelected,
124
+ g as layerName,
125
+ b as selectShapeType,
126
+ z as sendSelectedToBack,
127
+ B as setAdjustment,
128
+ H as setBrushSize,
129
+ L as setBrushStyle,
130
+ P as setDrawColor,
131
+ W as setFilter,
132
+ v as setSelectedBoxWidth,
133
+ D as setSelectedColor,
134
+ M as setSelectedFont,
135
+ G as setSelectedShapeFill,
136
+ E as setSelectedText,
137
+ q as setSelectedTextSize,
138
+ K as setSelectedWidth,
139
+ O as setShapeColor,
140
+ j as setShapeFill,
141
+ w as setShapeWidth,
142
+ J as setTextColor,
143
+ N as setTextFont,
144
+ A as setTextSize
145
+ };
146
+ //# sourceMappingURL=index.es153.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es153.js","sources":["../src/components/organisms/image-editor/engine/layer-actions.js"],"sourcesContent":["import { pushHistory } from './history.js'\nimport { emitChange, getSel } from './state.js'\nimport {\n render,\n clampTextSize,\n clampBoxWidth,\n keepingFixed,\n} from './rendering.js'\n\n// These all resize the bounds, which would swing a rotated layer's centre.\nfunction resizeInPlace(state, L, mutate) {\n keepingFixed(state, L, { x: L.x, y: L.y }, mutate)\n}\nimport { SHAPES } from './constants.js'\nimport { applyModeCursor } from './mode.js'\n\nexport function layerName(L) {\n if (L.type === 'text')\n return '“' + (L.text.length > 16 ? L.text.slice(0, 16) + '…' : L.text) + '”'\n if (L.type === 'stroke')\n return L.style === 'highlight' ? 'Highlighter' : 'Brush stroke'\n if (L.type === 'sticker') return 'Sticker'\n const s = SHAPES.find((s) => s.id === L.shape)\n return s ? s.name : L.shape\n}\n\nexport function deleteLayer(state, id) {\n pushHistory(state)\n state.layers = state.layers.filter((l) => l.id !== id)\n if (state.selectedId === id) state.selectedId = null\n render(state)\n state.statusText = 'Layer deleted'\n emitChange(state)\n}\n\nexport function deleteSelected(state) {\n if (state.selectedId != null) deleteLayer(state, state.selectedId)\n}\n\nexport function duplicateSelected(state) {\n const L = getSel(state)\n if (!L) return\n pushHistory(state)\n const copy = JSON.parse(JSON.stringify(L))\n copy.id = state.nextId++\n if (\n copy.type === 'text' ||\n copy.type === 'shape' ||\n copy.type === 'sticker'\n ) {\n copy.x += 20\n copy.y += 20\n } else if (copy.type === 'stroke') {\n copy.points = copy.points.map((p) => ({ x: p.x + 20, y: p.y + 20 }))\n }\n state.layers.push(copy)\n state.selectedId = copy.id\n render(state)\n state.statusText = 'Layer duplicated'\n emitChange(state)\n}\n\nexport function bringSelectedToFront(state) {\n const i = state.layers.findIndex((l) => l.id === state.selectedId)\n if (i < 0) return\n pushHistory(state)\n const [L] = state.layers.splice(i, 1)\n state.layers.push(L)\n render(state)\n emitChange(state)\n}\n\nexport function sendSelectedToBack(state) {\n const i = state.layers.findIndex((l) => l.id === state.selectedId)\n if (i < 0) return\n pushHistory(state)\n const [L] = state.layers.splice(i, 1)\n state.layers.unshift(L)\n render(state)\n emitChange(state)\n}\n\nexport function setAdjustment(state, key, value) {\n state.adj[key] = value\n render(state)\n state.notify()\n}\nexport function setFilter(state, id) {\n state.adj.filter = id\n render(state)\n emitChange(state)\n}\nexport function selectShapeType(state, id) {\n state.selectedShapeType = id\n state.notify()\n}\nexport function setShapeFill(state, v) {\n state.shapeFill = v\n state.notify()\n}\nexport function setShapeWidth(state, v) {\n state.shapeWidth = v\n state.notify()\n}\nexport function setBrushSize(state, v) {\n state.brushSize = v\n state.notify()\n}\nexport function setBrushStyle(state, v) {\n state.brushStyle = v\n state.notify()\n}\nexport function setTextFont(state, v) {\n state.textFont = v\n state.notify()\n}\nexport function setTextSize(state, v) {\n state.textSize = v\n state.notify()\n}\nexport function setTextColor(state, v) {\n state.textColor = v\n state.notify()\n}\nexport function setShapeColor(state, v) {\n state.shapeColor = v\n state.notify()\n}\nexport function setDrawColor(state, v) {\n state.drawColor = v\n applyModeCursor(state)\n state.notify()\n}\n\nexport function setSelectedColor(state, v) {\n const L = getSel(state)\n if (!L) return\n pushHistory(state)\n L.color = v\n render(state)\n emitChange(state)\n}\nexport function setSelectedText(state, v) {\n const L = getSel(state)\n if (!L || L.type !== 'text') return\n resizeInPlace(state, L, () => {\n L.text = v\n })\n render(state)\n state.notify()\n}\nexport function setSelectedFont(state, v) {\n const L = getSel(state)\n if (!L) return\n pushHistory(state)\n resizeInPlace(state, L, () => {\n L.font = v\n })\n render(state)\n emitChange(state)\n}\nexport function setSelectedTextSize(state, v) {\n const L = getSel(state)\n if (!L) return\n resizeInPlace(state, L, () => {\n L.size = v\n clampTextSize(state, L)\n })\n render(state)\n state.notify()\n}\nexport function setSelectedBoxWidth(state, v) {\n const L = getSel(state)\n if (!L || L.type !== 'text') return\n resizeInPlace(state, L, () => {\n L.boxWidth = v\n clampBoxWidth(state, L)\n clampTextSize(state, L)\n })\n render(state)\n state.notify()\n}\nexport function setSelectedShapeFill(state, v) {\n const L = getSel(state)\n if (!L) return\n pushHistory(state)\n L.fill = v\n render(state)\n emitChange(state)\n}\nexport function setSelectedWidth(state, v) {\n const L = getSel(state)\n if (!L) return\n resizeInPlace(state, L, () => {\n L.width = v\n })\n render(state)\n state.notify()\n}\n"],"names":["resizeInPlace","state","L","mutate","keepingFixed","layerName","s","SHAPES","deleteLayer","id","pushHistory","l","render","emitChange","deleteSelected","duplicateSelected","getSel","copy","p","bringSelectedToFront","i","sendSelectedToBack","setAdjustment","key","value","setFilter","selectShapeType","setShapeFill","v","setShapeWidth","setBrushSize","setBrushStyle","setTextFont","setTextSize","setTextColor","setShapeColor","setDrawColor","applyModeCursor","setSelectedColor","setSelectedText","setSelectedFont","setSelectedTextSize","clampTextSize","setSelectedBoxWidth","clampBoxWidth","setSelectedShapeFill","setSelectedWidth"],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import { supportsContextFilter as v, rasterizeWithFilter as C } from "./index.es162.js";
2
+ import { syncCanvasSize as m, render as g, baseFilter as p, paintLayer as w } from "./index.es147.js";
3
+ import { emit as l, emitChange as f, getState as y, resetAdjValues as S } from "./index.es146.js";
4
+ import { loadStickerImage as I } from "./index.es152.js";
5
+ function L(e) {
6
+ const n = (e.type || "").toLowerCase();
7
+ if (n === "image/heic" || n === "image/heif") return !0;
8
+ const i = e instanceof File ? e.name.toLowerCase() : "";
9
+ return i.endsWith(".heic") || i.endsWith(".heif");
10
+ }
11
+ function d(e, n) {
12
+ n(URL.createObjectURL(e));
13
+ }
14
+ function h(e, n) {
15
+ import("heic2any").then(
16
+ ({ default: i }) => i({ blob: e, toType: "image/jpeg", quality: 0.8 })
17
+ ).then(
18
+ (i) => d(Array.isArray(i) ? i[0] : i, n)
19
+ ).catch(() => d(e, n));
20
+ }
21
+ function B(e, n, i) {
22
+ if (e.isLoadingImage = !0, e.notify(), !n) {
23
+ i(null);
24
+ return;
25
+ }
26
+ if (n instanceof HTMLCanvasElement) {
27
+ i(n.toDataURL());
28
+ return;
29
+ }
30
+ if (typeof Blob < "u" && (n instanceof Blob || n instanceof File)) {
31
+ if (L(n)) {
32
+ if (typeof createImageBitmap == "function") {
33
+ createImageBitmap(n).then((r) => {
34
+ r.close(), d(n, i);
35
+ }).catch(() => h(n, i));
36
+ return;
37
+ }
38
+ h(n, i);
39
+ return;
40
+ }
41
+ d(n, i);
42
+ return;
43
+ }
44
+ i(n);
45
+ }
46
+ function T(e, n) {
47
+ const i = () => {
48
+ typeof n == "string" && n.startsWith("blob:") && URL.revokeObjectURL(n);
49
+ }, r = new Image();
50
+ r.crossOrigin = "anonymous", r.onload = () => {
51
+ let o = r.naturalWidth, a = r.naturalHeight;
52
+ const c = 2e3;
53
+ if (Math.max(o, a) > c) {
54
+ const t = c / Math.max(o, a);
55
+ o = Math.round(o * t), a = Math.round(a * t);
56
+ }
57
+ e.sourceCanvas.width = o, e.sourceCanvas.height = a, e.sourceCanvas.getContext("2d").drawImage(r, 0, 0, o, a), e.originalCanvas = document.createElement("canvas"), e.originalCanvas.width = o, e.originalCanvas.height = a, e.originalCanvas.getContext("2d").drawImage(e.sourceCanvas, 0, 0), i(), e.layers = [], e.selectedId = null, e.undoStack = [], e.redoStack = [], e.zoom = 1, S(e), e.mounted && m(e), g(e), e.mode = "select", e.isLoadingImage = !1, e.statusText = "Image loaded", l(e, "load", { width: o, height: a }), f(e);
58
+ }, r.onerror = () => {
59
+ i(), e.isLoadingImage = !1, e.statusText = "Could not load that image (CORS?)", console.warn(
60
+ "[ImageEditor] Failed to load image (likely a CORS issue on the source URL). Reset stays disabled since there is nothing to revert to.",
61
+ typeof n == "string" ? n.slice(0, 80) : n
62
+ ), e.notify();
63
+ }, r.src = n;
64
+ }
65
+ function F(e, n) {
66
+ if (!n || !n.image) return;
67
+ const i = new Image();
68
+ i.onload = () => {
69
+ e.sourceCanvas.width = n.width || i.naturalWidth, e.sourceCanvas.height = n.height || i.naturalHeight, e.sourceCanvas.getContext("2d").drawImage(i, 0, 0, e.sourceCanvas.width, e.sourceCanvas.height), e.originalCanvas = document.createElement("canvas"), e.originalCanvas.width = e.sourceCanvas.width, e.originalCanvas.height = e.sourceCanvas.height, e.originalCanvas.getContext("2d").drawImage(i, 0, 0, e.sourceCanvas.width, e.sourceCanvas.height), e.layers = JSON.parse(JSON.stringify(n.layers || [])), e.layers.forEach((o) => {
70
+ o.id >= e.nextId && (e.nextId = o.id + 1);
71
+ }), Object.assign(e.adj, n.adjustments || {}), e.selectedId = null, e.undoStack = [], e.redoStack = [], e.zoom = 1, e.mounted && m(e), g(e), e.mode = "select", e.statusText = "State restored", l(e, "load", { restored: !0 }), f(e);
72
+ const r = [
73
+ ...new Set(
74
+ e.layers.filter((o) => o.type === "sticker").map((o) => o.src)
75
+ )
76
+ ];
77
+ r.length && Promise.all(
78
+ r.map((o) => I(e, o).catch(() => {
79
+ }))
80
+ ).then(() => g(e));
81
+ }, i.src = n.image;
82
+ }
83
+ async function x(e) {
84
+ const n = document.createElement("canvas");
85
+ n.width = e.sourceCanvas.width, n.height = e.sourceCanvas.height;
86
+ const i = n.getContext("2d"), r = p(e);
87
+ if (v())
88
+ i.filter = r, i.drawImage(e.sourceCanvas, 0, 0), i.filter = "none";
89
+ else
90
+ try {
91
+ const o = await C(e.sourceCanvas, r);
92
+ i.drawImage(o, 0, 0);
93
+ } catch {
94
+ i.drawImage(e.sourceCanvas, 0, 0);
95
+ }
96
+ return e.layers.forEach((o) => {
97
+ o._editing || w(e, i, o);
98
+ }), n;
99
+ }
100
+ function k(e, n, i, r) {
101
+ const o = n.toDataURL(r), a = {
102
+ blob: i,
103
+ dataURL: o,
104
+ canvas: n,
105
+ width: n.width,
106
+ height: n.height,
107
+ type: i && i.type || r || "image/png",
108
+ state: y(e),
109
+ getBlob: (c, t) => new Promise((u) => n.toBlob((s) => u(s), c || "image/png", t)),
110
+ download: (c) => {
111
+ const t = URL.createObjectURL(i), u = document.createElement("a");
112
+ return u.href = t, u.download = c || "picture-studio.png", u.click(), setTimeout(() => URL.revokeObjectURL(t), 1e3), a;
113
+ }
114
+ };
115
+ return a;
116
+ }
117
+ function O(e, n, i) {
118
+ return x(e).then(
119
+ (r) => new Promise((o) => {
120
+ r.toBlob(
121
+ (a) => o(k(e, r, a, n || "image/png")),
122
+ n || "image/png",
123
+ i
124
+ );
125
+ })
126
+ );
127
+ }
128
+ function M(e, n) {
129
+ if (!e.isSaving)
130
+ return e.isSaving = !0, e.notify(), O(e, "image/jpeg", 0.92).then((i) => {
131
+ l(e, "save", i);
132
+ const r = typeof e.config.onSave == "function" ? e.config.onSave(i, n) : void 0;
133
+ return Promise.resolve(r).finally(() => {
134
+ e.isSaving = !1, e.notify(), e.config.keepOpenOnSave || n.close();
135
+ });
136
+ }).catch(() => {
137
+ e.isSaving = !1, e.notify();
138
+ });
139
+ }
140
+ export {
141
+ T as doLoadImage,
142
+ M as doSave,
143
+ F as loadState,
144
+ B as normalizeSource,
145
+ O as produce
146
+ };
147
+ //# sourceMappingURL=index.es154.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es154.js","sources":["../src/components/organisms/image-editor/engine/save-export.js"],"sourcesContent":["import { rasterizeWithFilter, supportsContextFilter } from './canvas-filter.js'\nimport { render, syncCanvasSize, baseFilter, paintLayer } from './rendering.js'\nimport { emit, emitChange, getState, resetAdjValues } from './state.js'\nimport { loadStickerImage } from './stickers.js'\n\nfunction isHeic(file) {\n const type = (file.type || '').toLowerCase()\n if (type === 'image/heic' || type === 'image/heif') return true\n const name = file instanceof File ? file.name.toLowerCase() : ''\n return name.endsWith('.heic') || name.endsWith('.heif')\n}\n\nfunction toObjectURL(blob, cb) {\n cb(URL.createObjectURL(blob))\n}\n\nfunction convertHeicThenLoad(src, cb) {\n import('heic2any')\n .then(({ default: heic2any }) =>\n heic2any({ blob: src, toType: 'image/jpeg', quality: 0.8 })\n )\n .then((converted) =>\n toObjectURL(Array.isArray(converted) ? converted[0] : converted, cb)\n )\n .catch(() => toObjectURL(src, cb))\n}\n\nexport function normalizeSource(state, src, cb) {\n state.isLoadingImage = true\n state.notify()\n if (!src) {\n cb(null)\n return\n }\n if (src instanceof HTMLCanvasElement) {\n cb(src.toDataURL())\n return\n }\n if (\n typeof Blob !== 'undefined' &&\n (src instanceof Blob || src instanceof File)\n ) {\n if (isHeic(src)) {\n if (typeof createImageBitmap === 'function') {\n createImageBitmap(src)\n .then((bmp) => {\n bmp.close()\n toObjectURL(src, cb)\n })\n .catch(() => convertHeicThenLoad(src, cb))\n return\n }\n convertHeicThenLoad(src, cb)\n return\n }\n toObjectURL(src, cb)\n return\n }\n cb(src)\n}\n\nexport function doLoadImage(state, dataURL) {\n const revoke = () => {\n if (typeof dataURL === 'string' && dataURL.startsWith('blob:')) {\n URL.revokeObjectURL(dataURL)\n }\n }\n const im = new Image()\n im.crossOrigin = 'anonymous'\n im.onload = () => {\n let w = im.naturalWidth,\n h = im.naturalHeight\n const MAX = 2000\n if (Math.max(w, h) > MAX) {\n const s = MAX / Math.max(w, h)\n w = Math.round(w * s)\n h = Math.round(h * s)\n }\n state.sourceCanvas.width = w\n state.sourceCanvas.height = h\n state.sourceCanvas.getContext('2d').drawImage(im, 0, 0, w, h)\n state.originalCanvas = document.createElement('canvas')\n state.originalCanvas.width = w\n state.originalCanvas.height = h\n state.originalCanvas.getContext('2d').drawImage(state.sourceCanvas, 0, 0)\n revoke()\n state.layers = []\n state.selectedId = null\n state.undoStack = []\n state.redoStack = []\n state.zoom = 1\n resetAdjValues(state)\n if (state.mounted) syncCanvasSize(state)\n render(state)\n state.mode = 'select'\n state.isLoadingImage = false\n state.statusText = 'Image loaded'\n emit(state, 'load', { width: w, height: h })\n emitChange(state)\n }\n im.onerror = () => {\n revoke()\n state.isLoadingImage = false\n state.statusText = 'Could not load that image (CORS?)'\n // eslint-disable-next-line no-console\n console.warn(\n '[ImageEditor] Failed to load image (likely a CORS issue on the source URL). ' +\n 'Reset stays disabled since there is nothing to revert to.',\n typeof dataURL === 'string' ? dataURL.slice(0, 80) : dataURL\n )\n state.notify()\n }\n im.src = dataURL\n}\n\nexport function loadState(state, s) {\n if (!s || !s.image) return\n const im = new Image()\n im.onload = () => {\n state.sourceCanvas.width = s.width || im.naturalWidth\n state.sourceCanvas.height = s.height || im.naturalHeight\n state.sourceCanvas\n .getContext('2d')\n .drawImage(im, 0, 0, state.sourceCanvas.width, state.sourceCanvas.height)\n state.originalCanvas = document.createElement('canvas')\n state.originalCanvas.width = state.sourceCanvas.width\n state.originalCanvas.height = state.sourceCanvas.height\n state.originalCanvas\n .getContext('2d')\n .drawImage(im, 0, 0, state.sourceCanvas.width, state.sourceCanvas.height)\n state.layers = JSON.parse(JSON.stringify(s.layers || []))\n state.layers.forEach((L) => {\n if (L.id >= state.nextId) state.nextId = L.id + 1\n })\n Object.assign(state.adj, s.adjustments || {})\n state.selectedId = null\n state.undoStack = []\n state.redoStack = []\n state.zoom = 1\n if (state.mounted) syncCanvasSize(state)\n render(state)\n state.mode = 'select'\n state.statusText = 'State restored'\n emit(state, 'load', { restored: true })\n emitChange(state)\n const stickerSrcs = [\n ...new Set(\n state.layers.filter((L) => L.type === 'sticker').map((L) => L.src)\n ),\n ]\n if (stickerSrcs.length) {\n Promise.all(\n stickerSrcs.map((src) => loadStickerImage(state, src).catch(() => {}))\n ).then(() => render(state))\n }\n }\n im.src = s.image\n}\n\nasync function flatten(state) {\n const out = document.createElement('canvas')\n out.width = state.sourceCanvas.width\n out.height = state.sourceCanvas.height\n const o = out.getContext('2d')\n const filter = baseFilter(state)\n\n if (supportsContextFilter()) {\n o.filter = filter\n o.drawImage(state.sourceCanvas, 0, 0)\n o.filter = 'none'\n } else {\n try {\n const filtered = await rasterizeWithFilter(state.sourceCanvas, filter)\n o.drawImage(filtered, 0, 0)\n } catch {\n o.drawImage(state.sourceCanvas, 0, 0)\n }\n }\n\n state.layers.forEach((L) => {\n if (!L._editing) paintLayer(state, o, L)\n })\n return out\n}\n\nfunction buildResult(state, canvasEl, blob, type) {\n const dataURL = canvasEl.toDataURL(type || 'image/png')\n const result = {\n blob: blob,\n dataURL: dataURL,\n canvas: canvasEl,\n width: canvasEl.width,\n height: canvasEl.height,\n type: (blob && blob.type) || type || 'image/png',\n state: getState(state),\n getBlob: (t, q) =>\n new Promise((res) => canvasEl.toBlob((b) => res(b), t || 'image/png', q)),\n download: (filename) => {\n const url = URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.href = url\n a.download = filename || 'picture-studio.png'\n a.click()\n setTimeout(() => URL.revokeObjectURL(url), 1000)\n return result\n },\n }\n return result\n}\n\nexport function produce(state, type, quality) {\n return flatten(state).then(\n (canvasEl) =>\n new Promise((resolve) => {\n canvasEl.toBlob(\n (blob) =>\n resolve(buildResult(state, canvasEl, blob, type || 'image/png')),\n type || 'image/png',\n quality\n )\n })\n )\n}\n\nexport function doSave(state, self) {\n if (state.isSaving) return\n state.isSaving = true\n state.notify()\n return produce(state, 'image/jpeg', 0.92)\n .then((result) => {\n emit(state, 'save', result)\n const ret =\n typeof state.config.onSave === 'function'\n ? state.config.onSave(result, self)\n : undefined\n return Promise.resolve(ret).finally(() => {\n state.isSaving = false\n state.notify()\n if (!state.config.keepOpenOnSave) self.close()\n })\n })\n .catch(() => {\n state.isSaving = false\n state.notify()\n })\n}\n"],"names":["isHeic","file","type","name","toObjectURL","blob","cb","convertHeicThenLoad","src","heic2any","converted","normalizeSource","state","bmp","doLoadImage","dataURL","revoke","im","w","h","MAX","s","resetAdjValues","syncCanvasSize","render","emit","emitChange","loadState","L","stickerSrcs","loadStickerImage","flatten","out","o","filter","baseFilter","supportsContextFilter","filtered","rasterizeWithFilter","paintLayer","buildResult","canvasEl","result","getState","t","q","res","b","filename","url","a","produce","quality","resolve","doSave","self","ret"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { onDown as u, onMove as y, onUp as E, onDbl as f } from "./index.es163.js";
2
+ import { autoGrowTextEditor as a, commitTextEdit as m, blurTextEditor as g } from "./index.es151.js";
3
+ import { undo as L, redo as x } from "./index.es148.js";
4
+ import { applyModeCursor as k, selectLayer as l, setMode as D } from "./index.es150.js";
5
+ import { fitStage as w, render as p, syncCanvasSize as P } from "./index.es147.js";
6
+ import { normalizeSource as T, doLoadImage as z } from "./index.es154.js";
7
+ import { deleteLayer as K } from "./index.es153.js";
8
+ import { panPointerUp as t, resetPan as c, panPointerDown as C, panPointerMove as h } from "./index.es164.js";
9
+ function A(e, i, o) {
10
+ e.canvasEl = o.canvas, e.overlayEl = o.overlay, e.textEditorEl = o.textEditor, e.stageEl = o.stage, e.ctx = e.canvasEl.getContext("2d"), e.octx = e.overlayEl.getContext("2d"), e.mounted = !0, k(e), e.overlayEl.addEventListener(
11
+ "lostpointercapture",
12
+ (r) => t(e, r)
13
+ ), e.overlayEl.addEventListener("pointerdown", (r) => {
14
+ r.preventDefault(), r.isPrimary && e.panPointers?.size && c(e), !C(e, r) && u(e, r);
15
+ }), e.overlayEl.addEventListener("pointermove", (r) => {
16
+ r.preventDefault(), !h(e, r) && y(e, r);
17
+ }), e.overlayEl.addEventListener("pointerup", (r) => {
18
+ t(e, r), E(e, r);
19
+ }), e.overlayEl.addEventListener("pointercancel", (r) => {
20
+ c(e), E(e, r);
21
+ }), e.overlayEl.addEventListener("dblclick", (r) => f(e, r));
22
+ const d = () => {
23
+ e.editingLayer && (g(e), l(e, null));
24
+ };
25
+ e.textEditorEl.addEventListener("keydown", (r) => {
26
+ r.key === "Enter" ? (r.stopPropagation(), (r.metaKey || r.ctrlKey) && (r.preventDefault(), d())) : r.key === "Escape" && (r.stopPropagation(), e.editingLayer && (e.editingLayer._editing = !1), e.editingLayer = null, e.textEditorEl.blur(), l(e, null));
27
+ }), e.textEditorEl.addEventListener("input", () => a(e)), e.textEditorEl.addEventListener("blur", () => m(e)), e.stageEl.addEventListener(
28
+ "pointerdown",
29
+ (r) => {
30
+ r.target !== e.textEditorEl && (d(), r.target !== e.overlayEl && e.selectedId != null && l(e, null));
31
+ },
32
+ !0
33
+ ), ["dragover", "dragenter"].forEach(
34
+ (r) => e.stageEl.addEventListener(r, (n) => n.preventDefault())
35
+ ), e.stageEl.addEventListener("drop", (r) => {
36
+ r.preventDefault();
37
+ const n = r.dataTransfer.files[0];
38
+ n && n.type.startsWith("image/") && T(e, n, (v) => z(e, v));
39
+ }), i._keyHandler = (r) => {
40
+ if (!i.isOpen()) return;
41
+ const n = document.activeElement && document.activeElement.tagName;
42
+ n === "INPUT" || n === "TEXTAREA" || n === "SELECT" || ((r.metaKey || r.ctrlKey) && r.key === "z" && !r.shiftKey ? (r.preventDefault(), L(e)) : (r.metaKey || r.ctrlKey) && (r.key === "y" || r.shiftKey && r.key === "z") ? (r.preventDefault(), x(e)) : r.key === "Escape" ? e.mode !== "select" || e.selectedId != null ? (D(e, "select"), l(e, null)) : e.config.closeOnEscape !== !1 && i.close() : (r.key === "Delete" || r.key === "Backspace") && e.selectedId != null && e.mode === "select" && (r.preventDefault(), K(e, e.selectedId)));
43
+ }, document.addEventListener("keydown", i._keyHandler), i._resizeHandler = () => {
44
+ e.sourceCanvas.width && i.isOpen() && (w(e), p(e));
45
+ }, window.addEventListener("resize", i._resizeHandler), e.sourceCanvas.width && (P(e), p(e));
46
+ }
47
+ export {
48
+ A as mount
49
+ };
50
+ //# sourceMappingURL=index.es155.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es155.js","sources":["../src/components/organisms/image-editor/engine/mount.js"],"sourcesContent":["import { onDown, onMove, onUp, onDbl } from './pointer.js'\nimport {\n autoGrowTextEditor,\n blurTextEditor,\n commitTextEdit,\n} from './text-editor.js'\nimport { undo, redo } from './history.js'\nimport { setMode, selectLayer, applyModeCursor } from './mode.js'\nimport { fitStage, render, syncCanvasSize } from './rendering.js'\nimport { normalizeSource, doLoadImage } from './save-export.js'\nimport { deleteLayer } from './layer-actions.js'\nimport {\n panPointerDown,\n panPointerMove,\n panPointerUp,\n resetPan,\n} from './touch-pan.js'\n\nexport function mount(state, self, refs) {\n state.canvasEl = refs.canvas\n state.overlayEl = refs.overlay\n state.textEditorEl = refs.textEditor\n state.stageEl = refs.stage\n state.ctx = state.canvasEl.getContext('2d')\n state.octx = state.overlayEl.getContext('2d')\n state.mounted = true\n applyModeCursor(state)\n\n state.overlayEl.addEventListener('lostpointercapture', (e) =>\n panPointerUp(state, e)\n )\n state.overlayEl.addEventListener('pointerdown', (e) => {\n e.preventDefault()\n if (e.isPrimary && state.panPointers?.size) resetPan(state)\n if (panPointerDown(state, e)) return\n onDown(state, e)\n })\n state.overlayEl.addEventListener('pointermove', (e) => {\n e.preventDefault()\n if (panPointerMove(state, e)) return\n onMove(state, e)\n })\n state.overlayEl.addEventListener('pointerup', (e) => {\n panPointerUp(state, e)\n onUp(state, e)\n })\n state.overlayEl.addEventListener('pointercancel', (e) => {\n resetPan(state)\n onUp(state, e)\n })\n state.overlayEl.addEventListener('dblclick', (e) => onDbl(state, e))\n\n // Commit, unfocus, deselect — guarded so an ordinary drag never deselects.\n const endTextEdit = () => {\n if (!state.editingLayer) return\n blurTextEditor(state)\n selectLayer(state, null)\n }\n\n state.textEditorEl.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n // Enter inserts a newline; stopped so no parent form reads it as submit.\n e.stopPropagation()\n if (e.metaKey || e.ctrlKey) {\n e.preventDefault()\n endTextEdit()\n }\n } else if (e.key === 'Escape') {\n // Escape discards the edit, so restore nothing — just let go.\n e.stopPropagation()\n if (state.editingLayer) state.editingLayer._editing = false\n state.editingLayer = null\n state.textEditorEl.blur()\n selectLayer(state, null)\n }\n })\n state.textEditorEl.addEventListener('input', () => autoGrowTextEditor(state))\n state.textEditorEl.addEventListener('blur', () => commitTextEdit(state))\n\n // Capture phase: the overlay preventDefaults away the implicit blur.\n state.stageEl.addEventListener(\n 'pointerdown',\n (e) => {\n if (e.target === state.textEditorEl) return\n endTextEdit()\n // Presses on the padding deselect; presses on the image are onDown's.\n if (e.target !== state.overlayEl && state.selectedId != null) {\n selectLayer(state, null)\n }\n },\n true\n )\n\n ;['dragover', 'dragenter'].forEach((ev) =>\n state.stageEl.addEventListener(ev, (e) => e.preventDefault())\n )\n state.stageEl.addEventListener('drop', (e) => {\n e.preventDefault()\n const f = e.dataTransfer.files[0]\n if (f && f.type.startsWith('image/'))\n normalizeSource(state, f, (d) => doLoadImage(state, d))\n })\n\n self._keyHandler = (e) => {\n if (!self.isOpen()) return\n const tag = document.activeElement && document.activeElement.tagName\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT') return\n if ((e.metaKey || e.ctrlKey) && e.key === 'z' && !e.shiftKey) {\n e.preventDefault()\n undo(state)\n } else if (\n (e.metaKey || e.ctrlKey) &&\n (e.key === 'y' || (e.shiftKey && e.key === 'z'))\n ) {\n e.preventDefault()\n redo(state)\n } else if (e.key === 'Escape') {\n if (state.mode !== 'select' || state.selectedId != null) {\n setMode(state, 'select')\n selectLayer(state, null)\n } else if (state.config.closeOnEscape !== false) self.close()\n } else if (\n (e.key === 'Delete' || e.key === 'Backspace') &&\n state.selectedId != null &&\n state.mode === 'select'\n ) {\n e.preventDefault()\n deleteLayer(state, state.selectedId)\n }\n }\n document.addEventListener('keydown', self._keyHandler)\n\n self._resizeHandler = () => {\n if (state.sourceCanvas.width && self.isOpen()) {\n fitStage(state)\n render(state)\n }\n }\n window.addEventListener('resize', self._resizeHandler)\n\n if (state.sourceCanvas.width) {\n syncCanvasSize(state)\n render(state)\n }\n}\n"],"names":["mount","state","self","refs","applyModeCursor","e","panPointerUp","resetPan","panPointerDown","onDown","panPointerMove","onMove","onUp","onDbl","endTextEdit","blurTextEditor","selectLayer","autoGrowTextEditor","commitTextEdit","ev","f","normalizeSource","d","doLoadImage","tag","undo","redo","setMode","deleteLayer","fitStage","render","syncCanvasSize"],"mappings":";;;;;;;;AAkBO,SAASA,EAAMC,GAAOC,GAAMC,GAAM;AACvC,EAAAF,EAAM,WAAWE,EAAK,QACtBF,EAAM,YAAYE,EAAK,SACvBF,EAAM,eAAeE,EAAK,YAC1BF,EAAM,UAAUE,EAAK,OACrBF,EAAM,MAAMA,EAAM,SAAS,WAAW,IAAI,GAC1CA,EAAM,OAAOA,EAAM,UAAU,WAAW,IAAI,GAC5CA,EAAM,UAAU,IAChBG,EAAgBH,CAAK,GAErBA,EAAM,UAAU;AAAA,IAAiB;AAAA,IAAsB,CAACI,MACtDC,EAAaL,GAAOI,CAAC;AAAA,EACzB,GACEJ,EAAM,UAAU,iBAAiB,eAAe,CAACI,MAAM;AAGrD,IAFAA,EAAE,eAAc,GACZA,EAAE,aAAaJ,EAAM,aAAa,QAAMM,EAASN,CAAK,GACtD,CAAAO,EAAeP,GAAOI,CAAC,KAC3BI,EAAOR,GAAOI,CAAC;AAAA,EACjB,CAAC,GACDJ,EAAM,UAAU,iBAAiB,eAAe,CAACI,MAAM;AAErD,IADAA,EAAE,eAAc,GACZ,CAAAK,EAAeT,GAAOI,CAAC,KAC3BM,EAAOV,GAAOI,CAAC;AAAA,EACjB,CAAC,GACDJ,EAAM,UAAU,iBAAiB,aAAa,CAACI,MAAM;AACnD,IAAAC,EAAaL,GAAOI,CAAC,GACrBO,EAAKX,GAAOI,CAAC;AAAA,EACf,CAAC,GACDJ,EAAM,UAAU,iBAAiB,iBAAiB,CAACI,MAAM;AACvD,IAAAE,EAASN,CAAK,GACdW,EAAKX,GAAOI,CAAC;AAAA,EACf,CAAC,GACDJ,EAAM,UAAU,iBAAiB,YAAY,CAACI,MAAMQ,EAAMZ,GAAOI,CAAC,CAAC;AAGnE,QAAMS,IAAc,MAAM;AACxB,IAAKb,EAAM,iBACXc,EAAed,CAAK,GACpBe,EAAYf,GAAO,IAAI;AAAA,EACzB;AAEA,EAAAA,EAAM,aAAa,iBAAiB,WAAW,CAACI,MAAM;AACpD,IAAIA,EAAE,QAAQ,WAEZA,EAAE,gBAAe,IACbA,EAAE,WAAWA,EAAE,aACjBA,EAAE,eAAc,GAChBS,EAAW,MAEJT,EAAE,QAAQ,aAEnBA,EAAE,gBAAe,GACbJ,EAAM,iBAAcA,EAAM,aAAa,WAAW,KACtDA,EAAM,eAAe,MACrBA,EAAM,aAAa,KAAI,GACvBe,EAAYf,GAAO,IAAI;AAAA,EAE3B,CAAC,GACDA,EAAM,aAAa,iBAAiB,SAAS,MAAMgB,EAAmBhB,CAAK,CAAC,GAC5EA,EAAM,aAAa,iBAAiB,QAAQ,MAAMiB,EAAejB,CAAK,CAAC,GAGvEA,EAAM,QAAQ;AAAA,IACZ;AAAA,IACA,CAACI,MAAM;AACL,MAAIA,EAAE,WAAWJ,EAAM,iBACvBa,EAAW,GAEPT,EAAE,WAAWJ,EAAM,aAAaA,EAAM,cAAc,QACtDe,EAAYf,GAAO,IAAI;AAAA,IAE3B;AAAA,IACA;AAAA,EACJ,GAEG,CAAC,YAAY,WAAW,EAAE;AAAA,IAAQ,CAACkB,MAClClB,EAAM,QAAQ,iBAAiBkB,GAAI,CAACd,MAAMA,EAAE,eAAc,CAAE;AAAA,EAChE,GACEJ,EAAM,QAAQ,iBAAiB,QAAQ,CAACI,MAAM;AAC5C,IAAAA,EAAE,eAAc;AAChB,UAAMe,IAAIf,EAAE,aAAa,MAAM,CAAC;AAChC,IAAIe,KAAKA,EAAE,KAAK,WAAW,QAAQ,KACjCC,EAAgBpB,GAAOmB,GAAG,CAACE,MAAMC,EAAYtB,GAAOqB,CAAC,CAAC;AAAA,EAC1D,CAAC,GAEDpB,EAAK,cAAc,CAACG,MAAM;AACxB,QAAI,CAACH,EAAK,SAAU;AACpB,UAAMsB,IAAM,SAAS,iBAAiB,SAAS,cAAc;AAC7D,IAAIA,MAAQ,WAAWA,MAAQ,cAAcA,MAAQ,cAChDnB,EAAE,WAAWA,EAAE,YAAYA,EAAE,QAAQ,OAAO,CAACA,EAAE,YAClDA,EAAE,eAAc,GAChBoB,EAAKxB,CAAK,MAETI,EAAE,WAAWA,EAAE,aACfA,EAAE,QAAQ,OAAQA,EAAE,YAAYA,EAAE,QAAQ,QAE3CA,EAAE,eAAc,GAChBqB,EAAKzB,CAAK,KACDI,EAAE,QAAQ,WACfJ,EAAM,SAAS,YAAYA,EAAM,cAAc,QACjD0B,EAAQ1B,GAAO,QAAQ,GACvBe,EAAYf,GAAO,IAAI,KACdA,EAAM,OAAO,kBAAkB,MAAOC,EAAK,MAAK,KAE1DG,EAAE,QAAQ,YAAYA,EAAE,QAAQ,gBACjCJ,EAAM,cAAc,QACpBA,EAAM,SAAS,aAEfI,EAAE,eAAc,GAChBuB,EAAY3B,GAAOA,EAAM,UAAU;AAAA,EAEvC,GACA,SAAS,iBAAiB,WAAWC,EAAK,WAAW,GAErDA,EAAK,iBAAiB,MAAM;AAC1B,IAAID,EAAM,aAAa,SAASC,EAAK,OAAM,MACzC2B,EAAS5B,CAAK,GACd6B,EAAO7B,CAAK;AAAA,EAEhB,GACA,OAAO,iBAAiB,UAAUC,EAAK,cAAc,GAEjDD,EAAM,aAAa,UACrB8B,EAAe9B,CAAK,GACpB6B,EAAO7B,CAAK;AAEhB;"}
@@ -0,0 +1,15 @@
1
+ import { cva as a } from "class-variance-authority";
2
+ const t = {
3
+ img: a("", {
4
+ variants: {
5
+ hasIcon: {
6
+ true: "w-12 h-12",
7
+ false: "h-5 w-5"
8
+ }
9
+ }
10
+ })
11
+ };
12
+ export {
13
+ t as hoverDetailCardStyles
14
+ };
15
+ //# sourceMappingURL=index.es156.js.map