geoiq-frontend-ui-kit 2.0.3 → 2.0.4

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 (505) hide show
  1. package/dist/components/atoms/accordion/accordion.d.ts +1 -2
  2. package/dist/components/atoms/accordion/accordion.d.ts.map +1 -1
  3. package/dist/components/atoms/avatar/avatar.d.ts +1 -2
  4. package/dist/components/atoms/avatar/avatar.d.ts.map +1 -1
  5. package/dist/components/atoms/badge/badge.d.ts +2 -2
  6. package/dist/components/atoms/badge/badge.d.ts.map +1 -1
  7. package/dist/components/atoms/skeleton/skeleton.d.ts +1 -1
  8. package/dist/components/atoms/skeleton/skeleton.d.ts.map +1 -1
  9. package/dist/components/atoms/tooltip/tooltip.d.ts +2 -2
  10. package/dist/components/atoms/tooltip/tooltip.d.ts.map +1 -1
  11. package/dist/components/molecules/breadcrumb/breadcrumb-components.d.ts +2 -2
  12. package/dist/components/molecules/breadcrumb/breadcrumb.d.ts +1 -2
  13. package/dist/components/molecules/breadcrumb/breadcrumb.d.ts.map +1 -1
  14. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts +1 -2
  15. package/dist/components/molecules/creatable-multi-combobox/creatable-multi-combobox.d.ts.map +1 -1
  16. package/dist/components/molecules/dropdown-menu/dropdown-menu-components.d.ts +1 -1
  17. package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts +1 -2
  18. package/dist/components/molecules/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  19. package/dist/components/molecules/multi-combobox/index.d.ts +2 -2
  20. package/dist/components/molecules/multi-combobox/index.d.ts.map +1 -1
  21. package/dist/components/molecules/multi-select/index.d.ts +2 -2
  22. package/dist/components/molecules/multi-select/index.d.ts.map +1 -1
  23. package/dist/components/molecules/pagination/pagination-components.d.ts +4 -4
  24. package/dist/components/molecules/single-combobox/single-combobox.d.ts +2 -2
  25. package/dist/components/molecules/single-combobox/single-combobox.d.ts.map +1 -1
  26. package/dist/components/molecules/stepper/stepper-components.d.ts +1 -1
  27. package/dist/components/molecules/stepper/stepper-components.d.ts.map +1 -1
  28. package/dist/components/molecules/stepper/stepper.d.ts +1 -2
  29. package/dist/components/molecules/stepper/stepper.d.ts.map +1 -1
  30. package/dist/components/molecules/stepper/stepper.mock.d.ts +2 -2
  31. package/dist/components/molecules/stepper/stepper.mock.d.ts.map +1 -1
  32. package/dist/components/molecules/swatch-grid/swatch-grid.d.ts +1 -2
  33. package/dist/components/molecules/swatch-grid/swatch-grid.d.ts.map +1 -1
  34. package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts +1 -3
  35. package/dist/components/molecules/toast/assets/svgs/danger-icon.d.ts.map +1 -1
  36. package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts +1 -3
  37. package/dist/components/molecules/toast/assets/svgs/info-icon.d.ts.map +1 -1
  38. package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts +1 -3
  39. package/dist/components/molecules/toast/assets/svgs/success-icon.d.ts.map +1 -1
  40. package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts +1 -3
  41. package/dist/components/molecules/toast/assets/svgs/warning-icon.d.ts.map +1 -1
  42. package/dist/components/molecules/toast/toast-components.d.ts +1 -1
  43. package/dist/components/molecules/toast/toast.d.ts +1 -2
  44. package/dist/components/molecules/toast/toast.d.ts.map +1 -1
  45. package/dist/components/molecules/toggle-multi-select/index.d.ts +2 -2
  46. package/dist/components/molecules/toggle-multi-select/index.d.ts.map +1 -1
  47. package/dist/components/organisms/alert-dialog/alert-dialog-components.d.ts +2 -2
  48. package/dist/components/organisms/alert-dialog/alert-dialog.d.ts +1 -2
  49. package/dist/components/organisms/alert-dialog/alert-dialog.d.ts.map +1 -1
  50. package/dist/components/organisms/dialog/dialog-components.d.ts +2 -2
  51. package/dist/components/organisms/dialog/dialog.d.ts +1 -2
  52. package/dist/components/organisms/dialog/dialog.d.ts.map +1 -1
  53. package/dist/components/organisms/image-editor/components/color-picker.d.ts +1 -3
  54. package/dist/components/organisms/image-editor/components/color-picker.d.ts.map +1 -1
  55. package/dist/components/organisms/image-editor/components/layers-list.d.ts +1 -2
  56. package/dist/components/organisms/image-editor/components/layers-list.d.ts.map +1 -1
  57. package/dist/components/organisms/image-editor/components/line-session-bar.d.ts +20 -0
  58. package/dist/components/organisms/image-editor/components/line-session-bar.d.ts.map +1 -0
  59. package/dist/components/organisms/image-editor/components/panel-adjust.d.ts +1 -2
  60. package/dist/components/organisms/image-editor/components/panel-adjust.d.ts.map +1 -1
  61. package/dist/components/organisms/image-editor/components/panel-crop.d.ts +1 -2
  62. package/dist/components/organisms/image-editor/components/panel-crop.d.ts.map +1 -1
  63. package/dist/components/organisms/image-editor/components/panel-insert.d.ts +1 -2
  64. package/dist/components/organisms/image-editor/components/panel-insert.d.ts.map +1 -1
  65. package/dist/components/organisms/image-editor/components/panel-selected.d.ts +1 -2
  66. package/dist/components/organisms/image-editor/components/panel-selected.d.ts.map +1 -1
  67. package/dist/components/organisms/image-editor/components/panel.d.ts +1 -2
  68. package/dist/components/organisms/image-editor/components/panel.d.ts.map +1 -1
  69. package/dist/components/organisms/image-editor/components/ribbon.d.ts +1 -2
  70. package/dist/components/organisms/image-editor/components/ribbon.d.ts.map +1 -1
  71. package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts +9 -0
  72. package/dist/components/organisms/image-editor/components/saved-layers-list.d.ts.map +1 -0
  73. package/dist/components/organisms/image-editor/components/status-bar.d.ts +1 -2
  74. package/dist/components/organisms/image-editor/components/status-bar.d.ts.map +1 -1
  75. package/dist/components/organisms/image-editor/image-editor-modal.d.ts +1 -2
  76. package/dist/components/organisms/image-editor/image-editor-modal.d.ts.map +1 -1
  77. package/dist/components/organisms/image-editor/image-editor.types.d.ts +73 -0
  78. package/dist/components/organisms/image-editor/image-editor.types.d.ts.map +1 -1
  79. package/dist/components/organisms/image-editor/use-image-editor.d.ts.map +1 -1
  80. package/dist/components/organisms/sheet/sheet-components.d.ts +2 -2
  81. package/dist/components/organisms/sheet/sheet.d.ts +1 -2
  82. package/dist/components/organisms/sheet/sheet.d.ts.map +1 -1
  83. package/dist/components/organisms/sidebar/sidebar.d.ts +1 -2
  84. package/dist/components/organisms/sidebar/sidebar.d.ts.map +1 -1
  85. package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts +1 -1
  86. package/dist/components/ui/agent-snippet-view/agent-snippet-view.d.ts.map +1 -1
  87. package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts +1 -2
  88. package/dist/components/ui/map-marker-hover-card/components/map-cluster-hover-card.d.ts.map +1 -1
  89. package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts +1 -2
  90. package/dist/components/ui/map-marker-hover-card/components/map-point-hover-card.d.ts.map +1 -1
  91. package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts +1 -2
  92. package/dist/components/ui/map-marker-hover-card/map-marker-hover-card.d.ts.map +1 -1
  93. package/dist/components/ui/star-score/star-score.d.ts +1 -2
  94. package/dist/components/ui/star-score/star-score.d.ts.map +1 -1
  95. package/dist/components/unstyled/calendar/calendar.d.ts +1 -1
  96. package/dist/components/unstyled/calendar/calendar.d.ts.map +1 -1
  97. package/dist/components/unstyled/command/index.d.ts +2 -2
  98. package/dist/components/unstyled/command/index.d.ts.map +1 -1
  99. package/dist/components/unstyled/date-picker/date-picker.d.ts +2 -2
  100. package/dist/components/unstyled/date-picker/date-picker.d.ts.map +1 -1
  101. package/dist/components/unstyled/hover-card/hover-card.d.ts +1 -2
  102. package/dist/components/unstyled/hover-card/hover-card.d.ts.map +1 -1
  103. package/dist/components/unstyled/popover/popover.d.ts +1 -2
  104. package/dist/components/unstyled/popover/popover.d.ts.map +1 -1
  105. package/dist/components/unstyled/table/table.d.ts +2 -2
  106. package/dist/components/unstyled/table/table.d.ts.map +1 -1
  107. package/dist/index.es.js +88 -88
  108. package/dist/{index10.es.js → index.es10.js} +3 -3
  109. package/dist/{index10.es.js.map → index.es10.js.map} +1 -1
  110. package/dist/index.es100.js +152 -0
  111. package/dist/index.es100.js.map +1 -0
  112. package/dist/{index101.es.js → index.es101.js} +1 -1
  113. package/dist/{index101.es.js.map → index.es101.js.map} +1 -1
  114. package/dist/{index136.es.js → index.es102.js} +1 -1
  115. package/dist/{index136.es.js.map → index.es102.js.map} +1 -1
  116. package/dist/{index133.es.js → index.es103.js} +1 -1
  117. package/dist/{index133.es.js.map → index.es103.js.map} +1 -1
  118. package/dist/{index134.es.js → index.es104.js} +1 -1
  119. package/dist/{index134.es.js.map → index.es104.js.map} +1 -1
  120. package/dist/{index135.es.js → index.es105.js} +3 -3
  121. package/dist/{index135.es.js.map → index.es105.js.map} +1 -1
  122. package/dist/{index97.es.js → index.es106.js} +1 -1
  123. package/dist/index.es106.js.map +1 -0
  124. package/dist/{index107.es.js → index.es107.js} +5 -5
  125. package/dist/{index107.es.js.map → index.es107.js.map} +1 -1
  126. package/dist/{index99.es.js → index.es108.js} +1 -1
  127. package/dist/index.es108.js.map +1 -0
  128. package/dist/{index103.es.js → index.es109.js} +2 -2
  129. package/dist/{index103.es.js.map → index.es109.js.map} +1 -1
  130. package/dist/{index11.es.js → index.es11.js} +4 -4
  131. package/dist/{index11.es.js.map → index.es11.js.map} +1 -1
  132. package/dist/{index115.es.js → index.es110.js} +2 -2
  133. package/dist/{index115.es.js.map → index.es110.js.map} +1 -1
  134. package/dist/{index116.es.js → index.es111.js} +6 -6
  135. package/dist/{index116.es.js.map → index.es111.js.map} +1 -1
  136. package/dist/{index98.es.js → index.es112.js} +1 -1
  137. package/dist/index.es112.js.map +1 -0
  138. package/dist/{index106.es.js → index.es113.js} +1 -1
  139. package/dist/{index106.es.js.map → index.es113.js.map} +1 -1
  140. package/dist/{index132.es.js → index.es114.js} +3 -3
  141. package/dist/{index132.es.js.map → index.es114.js.map} +1 -1
  142. package/dist/{index130.es.js → index.es115.js} +3 -3
  143. package/dist/{index130.es.js.map → index.es115.js.map} +1 -1
  144. package/dist/{index128.es.js → index.es116.js} +1 -1
  145. package/dist/{index128.es.js.map → index.es116.js.map} +1 -1
  146. package/dist/{index129.es.js → index.es117.js} +5 -5
  147. package/dist/{index129.es.js.map → index.es117.js.map} +1 -1
  148. package/dist/{index108.es.js → index.es118.js} +1 -1
  149. package/dist/{index108.es.js.map → index.es118.js.map} +1 -1
  150. package/dist/{index105.es.js → index.es119.js} +1 -1
  151. package/dist/{index105.es.js.map → index.es119.js.map} +1 -1
  152. package/dist/{index12.es.js → index.es12.js} +3 -3
  153. package/dist/{index12.es.js.map → index.es12.js.map} +1 -1
  154. package/dist/{index121.es.js → index.es120.js} +4 -4
  155. package/dist/{index121.es.js.map → index.es120.js.map} +1 -1
  156. package/dist/{index122.es.js → index.es121.js} +3 -3
  157. package/dist/{index122.es.js.map → index.es121.js.map} +1 -1
  158. package/dist/{index123.es.js → index.es122.js} +3 -3
  159. package/dist/{index123.es.js.map → index.es122.js.map} +1 -1
  160. package/dist/{index124.es.js → index.es123.js} +3 -3
  161. package/dist/{index124.es.js.map → index.es123.js.map} +1 -1
  162. package/dist/{index125.es.js → index.es124.js} +10 -10
  163. package/dist/{index125.es.js.map → index.es124.js.map} +1 -1
  164. package/dist/{index126.es.js → index.es125.js} +10 -10
  165. package/dist/{index126.es.js.map → index.es125.js.map} +1 -1
  166. package/dist/{index127.es.js → index.es126.js} +5 -5
  167. package/dist/{index127.es.js.map → index.es126.js.map} +1 -1
  168. package/dist/{index110.es.js → index.es127.js} +4 -4
  169. package/dist/{index110.es.js.map → index.es127.js.map} +1 -1
  170. package/dist/{index111.es.js → index.es128.js} +4 -4
  171. package/dist/{index111.es.js.map → index.es128.js.map} +1 -1
  172. package/dist/{index112.es.js → index.es129.js} +5 -5
  173. package/dist/{index112.es.js.map → index.es129.js.map} +1 -1
  174. package/dist/{index13.es.js → index.es13.js} +3 -3
  175. package/dist/{index13.es.js.map → index.es13.js.map} +1 -1
  176. package/dist/{index113.es.js → index.es130.js} +2 -2
  177. package/dist/{index113.es.js.map → index.es130.js.map} +1 -1
  178. package/dist/{index114.es.js → index.es131.js} +3 -3
  179. package/dist/{index114.es.js.map → index.es131.js.map} +1 -1
  180. package/dist/{index109.es.js → index.es132.js} +1 -1
  181. package/dist/{index109.es.js.map → index.es132.js.map} +1 -1
  182. package/dist/{index100.es.js → index.es133.js} +1 -1
  183. package/dist/{index100.es.js.map → index.es133.js.map} +1 -1
  184. package/dist/{index102.es.js → index.es134.js} +2 -2
  185. package/dist/{index102.es.js.map → index.es134.js.map} +1 -1
  186. package/dist/{index104.es.js → index.es135.js} +1 -1
  187. package/dist/{index104.es.js.map → index.es135.js.map} +1 -1
  188. package/dist/{index131.es.js → index.es136.js} +5 -5
  189. package/dist/{index131.es.js.map → index.es136.js.map} +1 -1
  190. package/dist/{index143.es.js → index.es137.js} +1 -1
  191. package/dist/{index143.es.js.map → index.es137.js.map} +1 -1
  192. package/dist/{index144.es.js → index.es138.js} +12 -11
  193. package/dist/index.es138.js.map +1 -0
  194. package/dist/{index145.es.js → index.es139.js} +3 -3
  195. package/dist/{index145.es.js.map → index.es139.js.map} +1 -1
  196. package/dist/{index14.es.js → index.es14.js} +2 -2
  197. package/dist/{index14.es.js.map → index.es14.js.map} +1 -1
  198. package/dist/{index146.es.js → index.es140.js} +2 -2
  199. package/dist/{index146.es.js.map → index.es140.js.map} +1 -1
  200. package/dist/index.es141.js +77 -0
  201. package/dist/index.es141.js.map +1 -0
  202. package/dist/{index147.es.js → index.es142.js} +1 -1
  203. package/dist/{index147.es.js.map → index.es142.js.map} +1 -1
  204. package/dist/{index148.es.js → index.es143.js} +1 -1
  205. package/dist/{index148.es.js.map → index.es143.js.map} +1 -1
  206. package/dist/{index149.es.js → index.es144.js} +10 -7
  207. package/dist/index.es144.js.map +1 -0
  208. package/dist/index.es145.js +408 -0
  209. package/dist/index.es145.js.map +1 -0
  210. package/dist/{index151.es.js → index.es146.js} +16 -12
  211. package/dist/index.es146.js.map +1 -0
  212. package/dist/{index152.es.js → index.es147.js} +5 -5
  213. package/dist/{index152.es.js.map → index.es147.js.map} +1 -1
  214. package/dist/{index153.es.js → index.es148.js} +17 -16
  215. package/dist/index.es148.js.map +1 -0
  216. package/dist/{index154.es.js → index.es149.js} +2 -2
  217. package/dist/{index154.es.js.map → index.es149.js.map} +1 -1
  218. package/dist/{index15.es.js → index.es15.js} +3 -3
  219. package/dist/{index15.es.js.map → index.es15.js.map} +1 -1
  220. package/dist/{index155.es.js → index.es150.js} +4 -4
  221. package/dist/{index155.es.js.map → index.es150.js.map} +1 -1
  222. package/dist/index.es151.js +215 -0
  223. package/dist/index.es151.js.map +1 -0
  224. package/dist/{index157.es.js → index.es152.js} +5 -5
  225. package/dist/{index157.es.js.map → index.es152.js.map} +1 -1
  226. package/dist/index.es153.js +147 -0
  227. package/dist/index.es153.js.map +1 -0
  228. package/dist/index.es154.js +50 -0
  229. package/dist/index.es154.js.map +1 -0
  230. package/dist/index.es155.js +358 -0
  231. package/dist/index.es155.js.map +1 -0
  232. package/dist/{index137.es.js → index.es156.js} +2 -2
  233. package/dist/{index137.es.js.map → index.es156.js.map} +1 -1
  234. package/dist/{index138.es.js → index.es157.js} +1 -1
  235. package/dist/{index138.es.js.map → index.es157.js.map} +1 -1
  236. package/dist/{index159.es.js → index.es158.js} +1 -1
  237. package/dist/{index159.es.js.map → index.es158.js.map} +1 -1
  238. package/dist/{index139.es.js → index.es159.js} +3 -3
  239. package/dist/{index139.es.js.map → index.es159.js.map} +1 -1
  240. package/dist/{index16.es.js → index.es16.js} +8 -8
  241. package/dist/{index16.es.js.map → index.es16.js.map} +1 -1
  242. package/dist/{index140.es.js → index.es160.js} +1 -1
  243. package/dist/{index140.es.js.map → index.es160.js.map} +1 -1
  244. package/dist/{index141.es.js → index.es161.js} +1 -1
  245. package/dist/{index141.es.js.map → index.es161.js.map} +1 -1
  246. package/dist/{index142.es.js → index.es162.js} +1 -1
  247. package/dist/{index142.es.js.map → index.es162.js.map} +1 -1
  248. package/dist/{index160.es.js → index.es163.js} +1 -1
  249. package/dist/{index160.es.js.map → index.es163.js.map} +1 -1
  250. package/dist/{index161.es.js → index.es164.js} +1 -1
  251. package/dist/{index161.es.js.map → index.es164.js.map} +1 -1
  252. package/dist/{index162.es.js → index.es165.js} +1 -1
  253. package/dist/{index162.es.js.map → index.es165.js.map} +1 -1
  254. package/dist/{index164.es.js → index.es166.js} +2 -2
  255. package/dist/{index164.es.js.map → index.es166.js.map} +1 -1
  256. package/dist/{index165.es.js → index.es167.js} +2 -2
  257. package/dist/{index165.es.js.map → index.es167.js.map} +1 -1
  258. package/dist/{index166.es.js → index.es168.js} +4 -4
  259. package/dist/{index166.es.js.map → index.es168.js.map} +1 -1
  260. package/dist/{index167.es.js → index.es169.js} +4 -4
  261. package/dist/{index167.es.js.map → index.es169.js.map} +1 -1
  262. package/dist/{index17.es.js → index.es17.js} +3 -3
  263. package/dist/{index17.es.js.map → index.es17.js.map} +1 -1
  264. package/dist/index.es170.js +101 -0
  265. package/dist/index.es170.js.map +1 -0
  266. package/dist/index.es171.js +259 -0
  267. package/dist/index.es171.js.map +1 -0
  268. package/dist/index.es172.js +66 -0
  269. package/dist/index.es172.js.map +1 -0
  270. package/dist/{index170.es.js → index.es173.js} +19 -19
  271. package/dist/{index170.es.js.map → index.es173.js.map} +1 -1
  272. package/dist/{index171.es.js → index.es174.js} +4 -4
  273. package/dist/{index171.es.js.map → index.es174.js.map} +1 -1
  274. package/dist/{index172.es.js → index.es175.js} +2 -2
  275. package/dist/{index172.es.js.map → index.es175.js.map} +1 -1
  276. package/dist/{index180.es.js → index.es176.js} +1 -1
  277. package/dist/{index180.es.js.map → index.es176.js.map} +1 -1
  278. package/dist/{index181.es.js → index.es177.js} +2 -2
  279. package/dist/{index181.es.js.map → index.es177.js.map} +1 -1
  280. package/dist/{index173.es.js → index.es178.js} +6 -6
  281. package/dist/{index173.es.js.map → index.es178.js.map} +1 -1
  282. package/dist/{index174.es.js → index.es179.js} +16 -17
  283. package/dist/{index174.es.js.map → index.es179.js.map} +1 -1
  284. package/dist/{index18.es.js → index.es18.js} +2 -2
  285. package/dist/{index18.es.js.map → index.es18.js.map} +1 -1
  286. package/dist/{index175.es.js → index.es180.js} +26 -27
  287. package/dist/{index175.es.js.map → index.es180.js.map} +1 -1
  288. package/dist/{index176.es.js → index.es181.js} +12 -13
  289. package/dist/{index176.es.js.map → index.es181.js.map} +1 -1
  290. package/dist/{index177.es.js → index.es182.js} +5 -5
  291. package/dist/{index177.es.js.map → index.es182.js.map} +1 -1
  292. package/dist/{index178.es.js → index.es183.js} +26 -27
  293. package/dist/{index178.es.js.map → index.es183.js.map} +1 -1
  294. package/dist/{index179.es.js → index.es184.js} +29 -30
  295. package/dist/{index179.es.js.map → index.es184.js.map} +1 -1
  296. package/dist/{index182.es.js → index.es185.js} +1 -1
  297. package/dist/{index182.es.js.map → index.es185.js.map} +1 -1
  298. package/dist/{index19.es.js → index.es19.js} +4 -4
  299. package/dist/{index19.es.js.map → index.es19.js.map} +1 -1
  300. package/dist/{index2.es.js → index.es2.js} +5 -5
  301. package/dist/{index2.es.js.map → index.es2.js.map} +1 -1
  302. package/dist/{index20.es.js → index.es20.js} +5 -5
  303. package/dist/{index20.es.js.map → index.es20.js.map} +1 -1
  304. package/dist/{index21.es.js → index.es21.js} +6 -6
  305. package/dist/{index21.es.js.map → index.es21.js.map} +1 -1
  306. package/dist/{index22.es.js → index.es22.js} +2 -2
  307. package/dist/{index22.es.js.map → index.es22.js.map} +1 -1
  308. package/dist/{index23.es.js → index.es23.js} +7 -7
  309. package/dist/{index23.es.js.map → index.es23.js.map} +1 -1
  310. package/dist/{index24.es.js → index.es24.js} +7 -7
  311. package/dist/{index24.es.js.map → index.es24.js.map} +1 -1
  312. package/dist/{index25.es.js → index.es25.js} +3 -3
  313. package/dist/{index25.es.js.map → index.es25.js.map} +1 -1
  314. package/dist/{index26.es.js → index.es26.js} +2 -2
  315. package/dist/{index26.es.js.map → index.es26.js.map} +1 -1
  316. package/dist/{index27.es.js → index.es27.js} +7 -7
  317. package/dist/{index27.es.js.map → index.es27.js.map} +1 -1
  318. package/dist/{index28.es.js → index.es28.js} +9 -9
  319. package/dist/{index28.es.js.map → index.es28.js.map} +1 -1
  320. package/dist/{index29.es.js → index.es29.js} +5 -5
  321. package/dist/{index29.es.js.map → index.es29.js.map} +1 -1
  322. package/dist/{index3.es.js → index.es3.js} +3 -3
  323. package/dist/{index3.es.js.map → index.es3.js.map} +1 -1
  324. package/dist/{index30.es.js → index.es30.js} +3 -3
  325. package/dist/{index30.es.js.map → index.es30.js.map} +1 -1
  326. package/dist/{index31.es.js → index.es31.js} +1 -1
  327. package/dist/{index31.es.js.map → index.es31.js.map} +1 -1
  328. package/dist/{index32.es.js → index.es32.js} +2 -2
  329. package/dist/{index32.es.js.map → index.es32.js.map} +1 -1
  330. package/dist/{index33.es.js → index.es33.js} +3 -3
  331. package/dist/{index33.es.js.map → index.es33.js.map} +1 -1
  332. package/dist/{index34.es.js → index.es34.js} +5 -5
  333. package/dist/{index34.es.js.map → index.es34.js.map} +1 -1
  334. package/dist/{index35.es.js → index.es35.js} +6 -6
  335. package/dist/{index35.es.js.map → index.es35.js.map} +1 -1
  336. package/dist/{index36.es.js → index.es36.js} +5 -5
  337. package/dist/{index36.es.js.map → index.es36.js.map} +1 -1
  338. package/dist/{index37.es.js → index.es37.js} +6 -6
  339. package/dist/{index37.es.js.map → index.es37.js.map} +1 -1
  340. package/dist/{index38.es.js → index.es38.js} +2 -2
  341. package/dist/{index38.es.js.map → index.es38.js.map} +1 -1
  342. package/dist/{index39.es.js → index.es39.js} +3 -3
  343. package/dist/{index39.es.js.map → index.es39.js.map} +1 -1
  344. package/dist/{index4.es.js → index.es4.js} +2 -2
  345. package/dist/{index4.es.js.map → index.es4.js.map} +1 -1
  346. package/dist/{index40.es.js → index.es40.js} +4 -4
  347. package/dist/{index40.es.js.map → index.es40.js.map} +1 -1
  348. package/dist/{index41.es.js → index.es41.js} +5 -5
  349. package/dist/{index41.es.js.map → index.es41.js.map} +1 -1
  350. package/dist/{index42.es.js → index.es42.js} +4 -4
  351. package/dist/{index42.es.js.map → index.es42.js.map} +1 -1
  352. package/dist/{index43.es.js → index.es43.js} +2 -2
  353. package/dist/{index43.es.js.map → index.es43.js.map} +1 -1
  354. package/dist/{index44.es.js → index.es44.js} +2 -2
  355. package/dist/{index44.es.js.map → index.es44.js.map} +1 -1
  356. package/dist/index.es45.js +69 -0
  357. package/dist/index.es45.js.map +1 -0
  358. package/dist/{index46.es.js → index.es46.js} +9 -9
  359. package/dist/{index46.es.js.map → index.es46.js.map} +1 -1
  360. package/dist/{index47.es.js → index.es47.js} +7 -7
  361. package/dist/{index47.es.js.map → index.es47.js.map} +1 -1
  362. package/dist/{index48.es.js → index.es48.js} +10 -10
  363. package/dist/{index48.es.js.map → index.es48.js.map} +1 -1
  364. package/dist/{index49.es.js → index.es49.js} +2 -2
  365. package/dist/{index49.es.js.map → index.es49.js.map} +1 -1
  366. package/dist/{index5.es.js → index.es5.js} +2 -2
  367. package/dist/{index5.es.js.map → index.es5.js.map} +1 -1
  368. package/dist/{index50.es.js → index.es50.js} +1 -1
  369. package/dist/{index50.es.js.map → index.es50.js.map} +1 -1
  370. package/dist/{index51.es.js → index.es51.js} +2 -2
  371. package/dist/{index51.es.js.map → index.es51.js.map} +1 -1
  372. package/dist/{index52.es.js → index.es52.js} +3 -3
  373. package/dist/{index52.es.js.map → index.es52.js.map} +1 -1
  374. package/dist/{index53.es.js → index.es53.js} +7 -7
  375. package/dist/{index53.es.js.map → index.es53.js.map} +1 -1
  376. package/dist/{index54.es.js → index.es54.js} +4 -4
  377. package/dist/{index54.es.js.map → index.es54.js.map} +1 -1
  378. package/dist/{index55.es.js → index.es55.js} +5 -5
  379. package/dist/{index55.es.js.map → index.es55.js.map} +1 -1
  380. package/dist/{index56.es.js → index.es56.js} +3 -3
  381. package/dist/{index56.es.js.map → index.es56.js.map} +1 -1
  382. package/dist/{index57.es.js → index.es57.js} +9 -9
  383. package/dist/{index57.es.js.map → index.es57.js.map} +1 -1
  384. package/dist/{index58.es.js → index.es58.js} +3 -4
  385. package/dist/{index58.es.js.map → index.es58.js.map} +1 -1
  386. package/dist/{index59.es.js → index.es59.js} +2 -2
  387. package/dist/{index59.es.js.map → index.es59.js.map} +1 -1
  388. package/dist/{index6.es.js → index.es6.js} +2 -2
  389. package/dist/{index6.es.js.map → index.es6.js.map} +1 -1
  390. package/dist/{index60.es.js → index.es60.js} +3 -3
  391. package/dist/{index60.es.js.map → index.es60.js.map} +1 -1
  392. package/dist/{index61.es.js → index.es61.js} +2 -2
  393. package/dist/{index61.es.js.map → index.es61.js.map} +1 -1
  394. package/dist/{index62.es.js → index.es62.js} +2 -2
  395. package/dist/{index62.es.js.map → index.es62.js.map} +1 -1
  396. package/dist/{index63.es.js → index.es63.js} +2 -2
  397. package/dist/{index63.es.js.map → index.es63.js.map} +1 -1
  398. package/dist/{index64.es.js → index.es64.js} +3 -3
  399. package/dist/{index64.es.js.map → index.es64.js.map} +1 -1
  400. package/dist/{index65.es.js → index.es65.js} +3 -3
  401. package/dist/{index65.es.js.map → index.es65.js.map} +1 -1
  402. package/dist/{index66.es.js → index.es66.js} +2 -2
  403. package/dist/{index66.es.js.map → index.es66.js.map} +1 -1
  404. package/dist/{index67.es.js → index.es67.js} +3 -3
  405. package/dist/{index67.es.js.map → index.es67.js.map} +1 -1
  406. package/dist/{index68.es.js → index.es68.js} +3 -3
  407. package/dist/{index68.es.js.map → index.es68.js.map} +1 -1
  408. package/dist/{index69.es.js → index.es69.js} +6 -6
  409. package/dist/{index69.es.js.map → index.es69.js.map} +1 -1
  410. package/dist/{index7.es.js → index.es7.js} +2 -2
  411. package/dist/{index7.es.js.map → index.es7.js.map} +1 -1
  412. package/dist/{index70.es.js → index.es70.js} +6 -6
  413. package/dist/{index70.es.js.map → index.es70.js.map} +1 -1
  414. package/dist/{index71.es.js → index.es71.js} +4 -4
  415. package/dist/{index71.es.js.map → index.es71.js.map} +1 -1
  416. package/dist/{index72.es.js → index.es72.js} +8 -8
  417. package/dist/{index72.es.js.map → index.es72.js.map} +1 -1
  418. package/dist/{index73.es.js → index.es73.js} +5 -5
  419. package/dist/{index73.es.js.map → index.es73.js.map} +1 -1
  420. package/dist/{index74.es.js → index.es74.js} +1 -1
  421. package/dist/{index74.es.js.map → index.es74.js.map} +1 -1
  422. package/dist/{index75.es.js → index.es75.js} +1 -1
  423. package/dist/{index75.es.js.map → index.es75.js.map} +1 -1
  424. package/dist/{index76.es.js → index.es76.js} +1 -1
  425. package/dist/{index76.es.js.map → index.es76.js.map} +1 -1
  426. package/dist/{index77.es.js → index.es77.js} +1 -1
  427. package/dist/{index77.es.js.map → index.es77.js.map} +1 -1
  428. package/dist/{index78.es.js → index.es78.js} +2 -2
  429. package/dist/{index78.es.js.map → index.es78.js.map} +1 -1
  430. package/dist/{index79.es.js → index.es79.js} +1 -1
  431. package/dist/{index79.es.js.map → index.es79.js.map} +1 -1
  432. package/dist/{index8.es.js → index.es8.js} +3 -3
  433. package/dist/{index8.es.js.map → index.es8.js.map} +1 -1
  434. package/dist/{index80.es.js → index.es80.js} +3 -3
  435. package/dist/{index80.es.js.map → index.es80.js.map} +1 -1
  436. package/dist/{index81.es.js → index.es81.js} +4 -4
  437. package/dist/{index81.es.js.map → index.es81.js.map} +1 -1
  438. package/dist/{index82.es.js → index.es82.js} +1 -1
  439. package/dist/{index82.es.js.map → index.es82.js.map} +1 -1
  440. package/dist/{index83.es.js → index.es83.js} +1 -1
  441. package/dist/{index83.es.js.map → index.es83.js.map} +1 -1
  442. package/dist/{index84.es.js.map → index.es84.js.map} +1 -1
  443. package/dist/{index85.es.js → index.es85.js} +2 -2
  444. package/dist/{index85.es.js.map → index.es85.js.map} +1 -1
  445. package/dist/{index86.es.js → index.es86.js} +2 -2
  446. package/dist/{index86.es.js.map → index.es86.js.map} +1 -1
  447. package/dist/{index87.es.js → index.es87.js} +1 -1
  448. package/dist/{index87.es.js.map → index.es87.js.map} +1 -1
  449. package/dist/index.es88.js +5 -0
  450. package/dist/index.es88.js.map +1 -0
  451. package/dist/{index89.es.js → index.es89.js} +1 -1
  452. package/dist/{index89.es.js.map → index.es89.js.map} +1 -1
  453. package/dist/{index9.es.js → index.es9.js} +4 -4
  454. package/dist/{index9.es.js.map → index.es9.js.map} +1 -1
  455. package/dist/{index90.es.js → index.es90.js} +2 -2
  456. package/dist/{index90.es.js.map → index.es90.js.map} +1 -1
  457. package/dist/{index91.es.js → index.es91.js} +3 -3
  458. package/dist/{index91.es.js.map → index.es91.js.map} +1 -1
  459. package/dist/{index92.es.js → index.es92.js} +1 -1
  460. package/dist/{index92.es.js.map → index.es92.js.map} +1 -1
  461. package/dist/{index93.es.js → index.es93.js} +1 -1
  462. package/dist/{index93.es.js.map → index.es93.js.map} +1 -1
  463. package/dist/{index94.es.js → index.es94.js} +1 -1
  464. package/dist/{index94.es.js.map → index.es94.js.map} +1 -1
  465. package/dist/{index95.es.js → index.es95.js} +1 -1
  466. package/dist/{index95.es.js.map → index.es95.js.map} +1 -1
  467. package/dist/{index96.es.js → index.es96.js} +1 -1
  468. package/dist/{index96.es.js.map → index.es96.js.map} +1 -1
  469. package/dist/{index117.es.js → index.es97.js} +1 -1
  470. package/dist/index.es97.js.map +1 -0
  471. package/dist/{index118.es.js → index.es98.js} +24 -23
  472. package/dist/index.es98.js.map +1 -0
  473. package/dist/{index119.es.js → index.es99.js} +1 -1
  474. package/dist/index.es99.js.map +1 -0
  475. package/dist/styles.css +72 -11
  476. package/package.json +1 -1
  477. package/dist/index117.es.js.map +0 -1
  478. package/dist/index118.es.js.map +0 -1
  479. package/dist/index119.es.js.map +0 -1
  480. package/dist/index120.es.js +0 -105
  481. package/dist/index120.es.js.map +0 -1
  482. package/dist/index144.es.js.map +0 -1
  483. package/dist/index149.es.js.map +0 -1
  484. package/dist/index150.es.js +0 -325
  485. package/dist/index150.es.js.map +0 -1
  486. package/dist/index151.es.js.map +0 -1
  487. package/dist/index153.es.js.map +0 -1
  488. package/dist/index156.es.js +0 -146
  489. package/dist/index156.es.js.map +0 -1
  490. package/dist/index158.es.js +0 -50
  491. package/dist/index158.es.js.map +0 -1
  492. package/dist/index163.es.js +0 -216
  493. package/dist/index163.es.js.map +0 -1
  494. package/dist/index168.es.js +0 -94
  495. package/dist/index168.es.js.map +0 -1
  496. package/dist/index169.es.js +0 -120
  497. package/dist/index169.es.js.map +0 -1
  498. package/dist/index45.es.js +0 -67
  499. package/dist/index45.es.js.map +0 -1
  500. package/dist/index88.es.js +0 -5
  501. package/dist/index88.es.js.map +0 -1
  502. package/dist/index97.es.js.map +0 -1
  503. package/dist/index98.es.js.map +0 -1
  504. package/dist/index99.es.js.map +0 -1
  505. package/dist/{index84.es.js → index.es84.js} +1 -1
@@ -0,0 +1,358 @@
1
+ import { pushHistory as f, popHistory as O } from "./index.es146.js";
2
+ import { emitChange as P } from "./index.es144.js";
3
+ import { MULTI_POINT_SHAPES as R, render as t, paintLayer as S, onRotateHandle as A, layerCenter as b, onResizeHandle as T, isMultiPoint as I, layerBounds as v, DIRECTIONAL_SHAPES as z, rotatePoint as C, clampBoxWidth as W, clampTextSize as _, renderOverlay as g, normRect as F, toLayerSpace as D } from "./index.es145.js";
4
+ import { setMode as k, selectLayer as x } from "./index.es148.js";
5
+ import { openTextEditor as N } from "./index.es149.js";
6
+ function a(n, l) {
7
+ const r = n.dragMode && n.dragRect ? n.dragRect : n.overlayEl.getBoundingClientRect(), o = (l.clientX - r.left) / r.width * n.sourceCanvas.width, e = (l.clientY - r.top) / r.height * n.sourceCanvas.height;
8
+ return {
9
+ x: Math.min(Math.max(o, 0), n.sourceCanvas.width),
10
+ y: Math.min(Math.max(e, 0), n.sourceCanvas.height)
11
+ };
12
+ }
13
+ function J(n, l) {
14
+ if (!l) return n;
15
+ const r = l * Math.PI / 180, o = Math.abs(Math.cos(r)), e = Math.abs(Math.sin(r)), d = n.w * o + n.h * e, i = n.w * e + n.h * o, c = n.x + n.w / 2, h = n.y + n.h / 2;
16
+ return { x: c - d / 2, y: h - i / 2, w: d, h: i };
17
+ }
18
+ function q(n) {
19
+ return n.type !== "shape" ? 0 : z.includes(n.shape) || n.fill !== "fill" ? (n.width || 0) / 2 : 0;
20
+ }
21
+ function K(n, l) {
22
+ const r = J(v(n, l), l.rotation), o = q(l), e = {
23
+ x: r.x - o,
24
+ y: r.y - o,
25
+ w: r.w + o * 2,
26
+ h: r.h + o * 2
27
+ }, d = Math.min(Math.max(e.x, 0), n.sourceCanvas.width - e.w) - e.x, i = Math.min(Math.max(e.y, 0), n.sourceCanvas.height - e.h) - e.y;
28
+ !d && !i || (l.type === "stroke" ? l.points = l.points.map((c) => ({ x: c.x + d, y: c.y + i })) : (l.x += d, l.y += i));
29
+ }
30
+ function m(n, l) {
31
+ const { layers: r } = n;
32
+ for (let o = r.length - 1; o >= 0; o--) {
33
+ const e = v(n, r[o]), d = D(n, r[o], l);
34
+ if (d.x >= e.x - 6 && d.x <= e.x + e.w + 6 && d.y >= e.y - 6 && d.y <= e.y + e.h + 6)
35
+ return r[o];
36
+ }
37
+ return null;
38
+ }
39
+ function H() {
40
+ return typeof window < "u" && window.matchMedia && window.matchMedia("(pointer: coarse)").matches ? 40 : 22;
41
+ }
42
+ const E = Math.PI / 8, B = 4;
43
+ function nn(n) {
44
+ const l = n.pendingPoly;
45
+ if (!l)
46
+ return { active: !1, pointCount: 0, canFinish: !1, canClose: !1 };
47
+ const r = l.layer.points.length;
48
+ return { active: !0, pointCount: r, canFinish: r >= 2, canClose: r >= 3 };
49
+ }
50
+ function L(n, l, r) {
51
+ if (!r || !n) return l;
52
+ const o = l.x - n.x, e = l.y - n.y, d = Math.hypot(o, e);
53
+ if (!d) return l;
54
+ const i = Math.round(Math.atan2(e, o) / E) * E;
55
+ return {
56
+ x: n.x + Math.cos(i) * d,
57
+ y: n.y + Math.sin(i) * d
58
+ };
59
+ }
60
+ function on(n) {
61
+ const l = n.pendingPoly;
62
+ if (l) {
63
+ if (l.layer.points.length <= 1) {
64
+ Z(n);
65
+ return;
66
+ }
67
+ l.layer.points.pop(), n.statusText = `${l.layer.points.length} point${l.layer.points.length === 1 ? "" : "s"} — Backspace removes the last`, w(n), n.notify();
68
+ }
69
+ }
70
+ function U(n, l, r) {
71
+ n.pendingPoly = { layer: l, preview: r }, l.points = [{ x: r.x, y: r.y }], delete l.w, delete l.h, n.statusText = "Click to add points · double-click to finish · Esc cancels", w(n), n.notify();
72
+ }
73
+ function w(n) {
74
+ const l = n.pendingPoly;
75
+ if (!l) return;
76
+ const r = n.octx, o = l.layer.points;
77
+ r.clearRect(0, 0, n.overlayEl.width, n.overlayEl.height), n.layers.forEach((h) => S(n, r, h));
78
+ const e = {
79
+ ...l.layer,
80
+ points: l.preview ? o.concat([l.preview]) : o
81
+ };
82
+ e.points.length >= 2 && S(n, r, e);
83
+ const d = 1 / (n.viewScale || 1), i = 5 * d;
84
+ r.save(), r.lineWidth = 2 * d, o.forEach((h, y) => {
85
+ y !== 0 && (r.beginPath(), r.arc(h.x, h.y, i, 0, Math.PI * 2), r.fillStyle = "#ffffff", r.strokeStyle = l.layer.color, r.fill(), r.stroke());
86
+ });
87
+ const c = o[0];
88
+ if (c) {
89
+ const h = o.length >= 3 && l.preview && Math.hypot(l.preview.x - c.x, l.preview.y - c.y) <= H();
90
+ r.beginPath(), r.arc(c.x, c.y, (h ? 11 : 7) * d, 0, Math.PI * 2), r.fillStyle = h ? l.layer.color : "#ffffff", r.strokeStyle = l.layer.color, r.lineWidth = (h ? 3 : 2) * d, r.fill(), r.stroke(), h && (r.beginPath(), r.arc(c.x, c.y, 4 * d, 0, Math.PI * 2), r.fillStyle = "#ffffff", r.fill());
91
+ }
92
+ r.restore(), V(n, o.length);
93
+ }
94
+ function V(n, l) {
95
+ const r = n.octx, o = 1 / (n.viewScale || 1), e = 10 * o, d = 13 * o, i = typeof window < "u" && window.matchMedia && window.matchMedia("(pointer: coarse)").matches, c = i ? "Tap" : "Click";
96
+ let h;
97
+ l < 2 ? h = `${c} to place the next point` : i ? h = l < 3 ? `${c} to add points · use the bar below to finish` : `${c} the first point to close · or finish below` : h = l < 3 ? "Double-click or Enter to finish · Backspace undoes · Esc cancels" : "Click the first point to close · Double-click to finish · Backspace undoes", r.save(), r.font = `${d}px Avenir Next, Segoe UI, sans-serif`, r.textBaseline = "top";
98
+ const y = r.measureText(h).width;
99
+ r.fillStyle = "rgba(17,17,17,.82)", r.beginPath();
100
+ const p = e, u = e, M = y + e * 2, s = d + e * 1.4;
101
+ r.roundRect ? r.roundRect(p, u, M, s, 6 * o) : r.rect(p, u, M, s), r.fill(), r.fillStyle = "#ffffff", r.fillText(h, p + e, u + e * 0.6), r.restore();
102
+ }
103
+ function rn(n, l) {
104
+ const r = n.layers.find((o) => o.id === n.selectedId);
105
+ !r || r.type !== "shape" || R.includes(r.shape) && (f(n), (!r.points || r.points.length < 2) && (r.points = [
106
+ { x: r.x, y: r.y },
107
+ { x: r.x + (r.w || 0), y: r.y + (r.h || 0) }
108
+ ]), delete r.w, delete r.h, r.closed = !1, n.selectedId = null, n.mode = "shape", n.multiPointMode = !0, n.pendingPoly = { layer: r, preview: r.points[r.points.length - 1] }, n.statusText = "Continuing line — click to add points · double-click to finish", w(n), n.notify());
109
+ }
110
+ function $(n, l) {
111
+ const r = n.pendingPoly;
112
+ if (!r) return;
113
+ const o = r.layer;
114
+ if (n.pendingPoly = null, o.points.length < 2) {
115
+ n.layers = n.layers.filter((e) => e.id !== o.id), O(n), k(n, "select"), t(n), n.notify();
116
+ return;
117
+ }
118
+ o.closed = !!l, n.layers.some((e) => e.id === o.id) || n.layers.push(o), n.mode = "shape", x(n, o.id), n.statusText = l ? "Shape closed — click to start another" : "Line added — click to start another", t(n), P(n);
119
+ }
120
+ function Z(n) {
121
+ const l = n.pendingPoly;
122
+ l && (n.pendingPoly = null, n.layers = n.layers.filter((r) => r.id !== l.layer.id), O(n), t(n), n.statusText = "Cancelled", n.notify());
123
+ }
124
+ function en(n, l) {
125
+ if (!n.sourceCanvas.width || n.dragMode) return;
126
+ n.overlayEl.setPointerCapture(l.pointerId), n.activePointerId = l.pointerId, n.dragRect = n.overlayEl.getBoundingClientRect();
127
+ const r = a(n, l);
128
+ if (n.pendingPoly) {
129
+ const o = n.pendingPoly.layer.points, e = o[0];
130
+ if (o.length >= 3 && Math.hypot(r.x - e.x, r.y - e.y) <= H()) {
131
+ $(n, !0);
132
+ return;
133
+ }
134
+ const d = o[o.length - 1], i = L(d, r, l.shiftKey);
135
+ (!d || Math.hypot(i.x - d.x, i.y - d.y) > B) && o.push({ x: i.x, y: i.y }), n.pendingPoly.preview = i, w(n);
136
+ return;
137
+ }
138
+ if (n.mode === "select") {
139
+ const o = n.selectedId != null ? n.layers.find((i) => i.id === n.selectedId) : null;
140
+ if (o && A(n, r, o)) {
141
+ const i = b(n, o);
142
+ n.dragMode = "rotate", n.rotateStart = {
143
+ center: i,
144
+ angle: Math.atan2(r.y - i.y, r.x - i.x),
145
+ rotation: o.rotation || 0
146
+ }, f(n);
147
+ return;
148
+ }
149
+ const e = o ? T(n, r, o) : null;
150
+ if (e) {
151
+ if (n.dragMode = "resize", n.resizeCorner = e, n.dragStart = r, n.dragOrig = JSON.parse(JSON.stringify(o)), o.type === "shape" && I(o)) {
152
+ const i = v(n, o), c = e === "tl" || e === "bl", h = e === "tl" || e === "tr";
153
+ n.resizeAnchor = {
154
+ x: c ? i.x + i.w : i.x,
155
+ y: h ? i.y + i.h : i.y
156
+ }, n.dragOrig._bounds = {
157
+ w: c ? -i.w : i.w,
158
+ h: h ? -i.h : i.h
159
+ }, n.dragOrig._anchorPt = {
160
+ x: n.resizeAnchor.x,
161
+ y: n.resizeAnchor.y
162
+ };
163
+ } else if (o.type === "shape" && z.includes(o.shape))
164
+ n.resizeAnchor = e === "start" ? { x: o.x + o.w, y: o.y + o.h } : { x: o.x, y: o.y };
165
+ else {
166
+ const i = v(n, o), c = e === "tl" || e === "bl";
167
+ n.resizeAnchor = {
168
+ x: c ? i.x + i.w : i.x,
169
+ // Text keeps its top edge: its height follows the wrapping.
170
+ y: o.type === "text" ? i.y : e === "tl" || e === "tr" ? i.y + i.h : i.y
171
+ };
172
+ }
173
+ n.resizeCenter = b(n, o), n.resizeAnchorWorld = C(
174
+ n.resizeAnchor,
175
+ n.resizeCenter,
176
+ o.rotation || 0
177
+ ), f(n);
178
+ return;
179
+ }
180
+ const d = m(n, r);
181
+ d ? (x(n, d.id), n.dragMode = "move", n.dragStart = r, n.dragOrig = JSON.parse(JSON.stringify(d)), f(n)) : x(n, null);
182
+ } else if (n.mode === "text") {
183
+ f(n);
184
+ const o = {
185
+ id: n.nextId++,
186
+ type: "text",
187
+ text: "Text",
188
+ x: r.x,
189
+ y: r.y,
190
+ size: n.textSize,
191
+ font: n.textFont,
192
+ color: n.textColor,
193
+ rotation: 0,
194
+ flipH: !1,
195
+ flipV: !1,
196
+ boxWidth: 10
197
+ };
198
+ n.octx.font = `${o.size}px ${o.font}`;
199
+ const e = n.octx.measureText(o.text).width;
200
+ o.boxWidth = Math.round(Math.max(700, e + 40)), W(n, o), _(n, o), n.layers.push(o), k(n, "select"), x(n, o.id), N(n, o, !0);
201
+ } else n.mode === "draw" ? (f(n), n.pendingStroke = {
202
+ id: n.nextId++,
203
+ type: "stroke",
204
+ color: n.drawColor,
205
+ width: n.brushSize,
206
+ style: n.brushStyle,
207
+ points: [r]
208
+ }, n.dragMode = "draw") : n.mode === "shape" ? (f(n), n.pendingShape = {
209
+ id: n.nextId++,
210
+ type: "shape",
211
+ shape: n.selectedShapeType,
212
+ fill: n.shapeFill,
213
+ width: n.shapeWidth,
214
+ color: n.shapeColor,
215
+ x: r.x,
216
+ y: r.y,
217
+ w: 0,
218
+ h: 0,
219
+ rotation: 0,
220
+ flipH: !1,
221
+ flipV: !1
222
+ }, n.dragMode = "newshape", n.dragStart = r) : n.mode === "crop" && (n.dragMode = "crop", n.cropStart = r, n.cropRect = { x: r.x, y: r.y, w: 0, h: 0 });
223
+ }
224
+ function ln(n, l) {
225
+ if (n.pendingPoly) {
226
+ const o = n.pendingPoly.layer.points;
227
+ n.pendingPoly.preview = L(
228
+ o[o.length - 1],
229
+ a(n, l),
230
+ l.shiftKey
231
+ ), w(n);
232
+ return;
233
+ }
234
+ if (n.dragMode && n.activePointerId != null && l.pointerId !== n.activePointerId)
235
+ return;
236
+ if (!n.dragMode) {
237
+ if (n.mode === "select") {
238
+ const o = a(n, l), e = n.selectedId != null ? n.layers.find((i) => i.id === n.selectedId) : null, d = e ? T(n, o, e) : null;
239
+ e && A(n, o, e) ? n.overlayEl.style.cursor = "grab" : d === "start" || d === "end" ? n.overlayEl.style.cursor = e.w >= 0 == e.h >= 0 ? "nwse-resize" : "nesw-resize" : d ? n.overlayEl.style.cursor = d === "tl" || d === "br" ? "nwse-resize" : "nesw-resize" : e && m(n, o) === e ? n.overlayEl.style.cursor = "move" : m(n, o) ? n.overlayEl.style.cursor = "pointer" : n.overlayEl.style.cursor = "default";
240
+ }
241
+ return;
242
+ }
243
+ const r = a(n, l);
244
+ if (n.dragMode === "move") {
245
+ const o = r.x - n.dragStart.x, e = r.y - n.dragStart.y, d = n.layers.find((i) => i.id === n.selectedId);
246
+ d.type === "shape" && I(d) ? d.points = n.dragOrig.points.map((i) => ({
247
+ x: i.x + o,
248
+ y: i.y + e
249
+ })) : d.type === "text" || d.type === "shape" || d.type === "sticker" ? (d.x = n.dragOrig.x + o, d.y = n.dragOrig.y + e) : d.type === "stroke" && (d.points = n.dragOrig.points.map((i) => ({
250
+ x: i.x + o,
251
+ y: i.y + e
252
+ }))), K(n, d), g(n);
253
+ } else if (n.dragMode === "resize") {
254
+ const o = n.layers.find((i) => i.id === n.selectedId), e = o.rotation || 0, d = e ? C(r, n.resizeCenter, -e) : r;
255
+ if (o.type === "text") {
256
+ const i = n.resizeCorner === "tl" || n.resizeCorner === "bl";
257
+ if (o.y = n.dragOrig.y, o.size = n.dragOrig.size, i) {
258
+ const c = n.dragOrig.x + n.dragOrig.boxWidth;
259
+ o.boxWidth = Math.max(20, c - d.x), o.x = c - o.boxWidth;
260
+ } else
261
+ o.x = n.dragOrig.x, o.boxWidth = Math.max(20, d.x - n.dragOrig.x);
262
+ W(n, o), _(n, o), n.notify();
263
+ } else if (o.type === "shape" && I(o)) {
264
+ const i = n.resizeAnchor, c = n.dragOrig._bounds, h = 8, y = c.w > 0 ? (d.x - i.x) / (c.w || 1) : 1, p = c.h > 0 ? (d.y - i.y) / (c.h || 1) : 1, u = Math.abs(c.w * y) < h ? h / (c.w || 1) : y, M = Math.abs(c.h * p) < h ? h / (c.h || 1) : p;
265
+ o.points = n.dragOrig.points.map((s) => ({
266
+ x: i.x + (s.x - n.dragOrig._anchorPt.x) * u,
267
+ y: i.y + (s.y - n.dragOrig._anchorPt.y) * M
268
+ }));
269
+ } else if (o.type === "shape" && z.includes(o.shape)) {
270
+ const i = n.resizeAnchor, c = 8;
271
+ let h = d.x - i.x, y = d.y - i.y;
272
+ if (Math.hypot(h, y) < c) {
273
+ const p = Math.atan2(y || 1, h || 1);
274
+ h = c * Math.cos(p), y = c * Math.sin(p);
275
+ }
276
+ n.resizeCorner === "start" ? (o.x = i.x + h, o.y = i.y + y, o.w = -h, o.h = -y) : (o.x = i.x, o.y = i.y, o.w = h, o.h = y);
277
+ } else if (o.type === "shape" || o.type === "sticker") {
278
+ const i = n.resizeAnchor, c = 8;
279
+ let h = d.x - i.x, y = d.y - i.y;
280
+ Math.abs(h) < c && (h = i.x + c <= n.sourceCanvas.width ? c : -c), Math.abs(y) < c && (y = i.y + c <= n.sourceCanvas.height ? c : -c), o.x = Math.min(i.x, i.x + h), o.y = Math.min(i.y, i.y + y), o.w = Math.abs(h), o.h = Math.abs(y);
281
+ }
282
+ if (e) {
283
+ const i = C(n.resizeAnchor, b(n, o), e);
284
+ o.x += n.resizeAnchorWorld.x - i.x, o.y += n.resizeAnchorWorld.y - i.y;
285
+ }
286
+ g(n);
287
+ } else if (n.dragMode === "rotate") {
288
+ const o = n.layers.find((y) => y.id === n.selectedId), { center: e, angle: d, rotation: i } = n.rotateStart, c = Math.atan2(r.y - e.y, r.x - e.x) - d, h = i + c * 180 / Math.PI;
289
+ o.rotation = (h % 360 + 360) % 360, g(n);
290
+ } else if (n.dragMode === "draw")
291
+ n.pendingStroke.points.push(r), n.octx.clearRect(0, 0, n.overlayEl.width, n.overlayEl.height), n.layers.forEach((o) => S(n, n.octx, o)), S(n, n.octx, n.pendingStroke);
292
+ else if (n.dragMode === "newshape")
293
+ n.pendingShape.w = r.x - n.dragStart.x, n.pendingShape.h = r.y - n.dragStart.y, g(n);
294
+ else if (n.dragMode === "crop") {
295
+ let o = r.x - n.cropStart.x, e = r.y - n.cropStart.y;
296
+ if (n.cropRatio !== "free") {
297
+ const d = parseFloat(n.cropRatio);
298
+ e = Math.sign(e || 1) * Math.abs(o) / d;
299
+ const i = e >= 0 ? n.sourceCanvas.height - n.cropStart.y : n.cropStart.y;
300
+ Math.abs(e) > i && (e = Math.sign(e) * i, o = Math.sign(o || 1) * Math.abs(e) * d);
301
+ }
302
+ n.cropRect = { x: n.cropStart.x, y: n.cropStart.y, w: o, h: e }, g(n);
303
+ }
304
+ }
305
+ function dn(n, l) {
306
+ if (!(l && n.dragMode && n.activePointerId != null && l.pointerId !== n.activePointerId)) {
307
+ if (n.dragMode === "draw" && n.pendingStroke)
308
+ n.pendingStroke.points.length >= 1 && (n.layers.push(n.pendingStroke), x(n, n.pendingStroke.id)), n.pendingStroke = null, t(n), n.statusText = "Stroke added", P(n);
309
+ else if (n.dragMode === "newshape" && n.pendingShape) {
310
+ const r = Math.hypot(
311
+ n.pendingShape.w || 0,
312
+ n.pendingShape.h || 0
313
+ );
314
+ if (n.multiPointMode && R.includes(n.pendingShape.shape)) {
315
+ const o = n.pendingShape, e = { x: o.x + (o.w || 0), y: o.y + (o.h || 0) };
316
+ n.pendingShape = null, U(n, o, { x: o.x, y: o.y }), r > B && (o.points.push(e), n.pendingPoly.preview = e);
317
+ } else if (Math.abs(n.pendingShape.w) > 3 || Math.abs(n.pendingShape.h) > 3) {
318
+ n.layers.push(n.pendingShape);
319
+ const o = n.pendingShape.id;
320
+ n.pendingShape = null, k(n, "select"), x(n, o), n.statusText = "Shape added", P(n);
321
+ } else
322
+ n.pendingShape = null, g(n), n.notify();
323
+ } else if (n.dragMode === "crop")
324
+ n.cropRect && (n.cropRect = F(n.cropRect)), g(n), n.notify();
325
+ else if (n.dragMode === "move" || n.dragMode === "resize" || n.dragMode === "rotate") {
326
+ if (n.dragMode === "rotate") {
327
+ const r = n.layers.find((o) => o.id === n.selectedId);
328
+ r && (n.statusText = `Rotated to ${Math.round(r.rotation)}°`);
329
+ }
330
+ t(n), n.notify();
331
+ }
332
+ n.activePointerId != null && (n.overlayEl.hasPointerCapture(n.activePointerId) && n.overlayEl.releasePointerCapture(n.activePointerId), n.activePointerId = null), n.dragMode = null, n.dragStart = null, n.dragOrig = null, n.dragRect = null, n.resizeAnchor = null, n.resizeCenter = null, n.resizeAnchorWorld = null, n.rotateStart = null;
333
+ }
334
+ }
335
+ function cn(n, l) {
336
+ if (n.pendingPoly) {
337
+ $(n, !1);
338
+ return;
339
+ }
340
+ if (n.mode !== "select") return;
341
+ const r = a(n, l), o = m(n, r);
342
+ o && o.type === "text" && (x(n, o.id), N(n, o, !1));
343
+ }
344
+ export {
345
+ B as CLICK_SLOP,
346
+ Z as cancelPoly,
347
+ $ as finishPoly,
348
+ m as hitLayer,
349
+ cn as onDbl,
350
+ en as onDown,
351
+ ln as onMove,
352
+ dn as onUp,
353
+ nn as polyStatus,
354
+ rn as resumePoly,
355
+ a as toSource,
356
+ on as undoPolyPoint
357
+ };
358
+ //# sourceMappingURL=index.es155.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es155.js","sources":["../src/components/organisms/image-editor/engine/pointer.js"],"sourcesContent":["import { pushHistory, popHistory } from './history.js'\nimport { emitChange } from './state.js'\nimport {\n render,\n renderOverlay,\n paintLayer,\n layerBounds,\n onResizeHandle,\n normRect,\n clampTextSize,\n clampBoxWidth,\n onRotateHandle,\n layerCenter,\n rotatePoint,\n toLayerSpace,\n DIRECTIONAL_SHAPES,\n MULTI_POINT_SHAPES,\n isMultiPoint,\n} from './rendering.js'\nimport { setMode, selectLayer } from './mode.js'\nimport { openTextEditor } from './text-editor.js'\n\nexport function toSource(state, e) {\n // While actively dragging, use the rect captured at pointerdown instead of\n // re-querying live — on mobile the browser's address-bar/toolbar chrome\n // can collapse mid-gesture (typically ~1s in) and reflow the canvas out\n // from under the drag. Since this is (pointer position - element origin),\n // a rect that shifts mid-drag snaps the result toward 0 (leftmost/\n // smallest), which is exactly what re-querying every move would do.\n const r =\n state.dragMode && state.dragRect\n ? state.dragRect\n : state.overlayEl.getBoundingClientRect()\n const x = ((e.clientX - r.left) / r.width) * state.sourceCanvas.width\n const y = ((e.clientY - r.top) / r.height) * state.sourceCanvas.height\n return {\n x: Math.min(Math.max(x, 0), state.sourceCanvas.width),\n y: Math.min(Math.max(y, 0), state.sourceCanvas.height),\n }\n}\n\nfunction rotatedAABB(b, rotationDeg) {\n if (!rotationDeg) return b\n const rad = (rotationDeg * Math.PI) / 180\n const cos = Math.abs(Math.cos(rad)),\n sin = Math.abs(Math.sin(rad))\n const w = b.w * cos + b.h * sin,\n h = b.w * sin + b.h * cos\n const cx = b.x + b.w / 2,\n cy = b.y + b.h / 2\n return { x: cx - w / 2, y: cy - h / 2, w, h }\n}\n\nfunction strokeMargin(L) {\n if (L.type !== 'shape') return 0\n const alwaysStroked = DIRECTIONAL_SHAPES.includes(L.shape)\n return alwaysStroked || L.fill !== 'fill' ? (L.width || 0) / 2 : 0\n}\n\nfunction clampLayerToCanvas(state, L) {\n const rotated = rotatedAABB(layerBounds(state, L), L.rotation)\n const margin = strokeMargin(L)\n const b = {\n x: rotated.x - margin,\n y: rotated.y - margin,\n w: rotated.w + margin * 2,\n h: rotated.h + margin * 2,\n }\n const dx = Math.min(Math.max(b.x, 0), state.sourceCanvas.width - b.w) - b.x\n const dy = Math.min(Math.max(b.y, 0), state.sourceCanvas.height - b.h) - b.y\n if (!dx && !dy) return\n if (L.type === 'stroke') {\n L.points = L.points.map((pt) => ({ x: pt.x + dx, y: pt.y + dy }))\n } else {\n L.x += dx\n L.y += dy\n }\n}\n\nexport function hitLayer(state, p) {\n const { layers } = state\n for (let i = layers.length - 1; i >= 0; i--) {\n const b = layerBounds(state, layers[i])\n const q = toLayerSpace(state, layers[i], p)\n if (\n q.x >= b.x - 6 &&\n q.x <= b.x + b.w + 6 &&\n q.y >= b.y - 6 &&\n q.y <= b.y + b.h + 6\n )\n return layers[i]\n }\n return null\n}\n\n// --- multi-point (\"extended\") line sessions -------------------------------\n\n// Fingers are far less precise than a cursor, so coarse pointers get a target\n// near the 44px accessibility minimum.\nfunction closeHitRadius() {\n const coarse =\n typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(pointer: coarse)').matches\n return coarse ? 40 : 22\n}\nconst SNAP_STEP = Math.PI / 8\n// Below this drag distance a pointer gesture counts as a click, not a drag.\nexport const CLICK_SLOP = 4\n\nexport function isPolyActive(state) {\n return !!state.pendingPoly\n}\n\nexport function polyStatus(state) {\n const poly = state.pendingPoly\n if (!poly)\n return { active: false, pointCount: 0, canFinish: false, canClose: false }\n const n = poly.layer.points.length\n return { active: true, pointCount: n, canFinish: n >= 2, canClose: n >= 3 }\n}\n\n// With Shift held, lock the next segment to a fixed angle from the last point\n// -- the usual way drawing tools make clean horizontals, verticals and 45s.\nfunction snapPreview(anchor, p, shift) {\n if (!shift || !anchor) return p\n const dx = p.x - anchor.x\n const dy = p.y - anchor.y\n const len = Math.hypot(dx, dy)\n if (!len) return p\n const ang = Math.round(Math.atan2(dy, dx) / SNAP_STEP) * SNAP_STEP\n return {\n x: anchor.x + Math.cos(ang) * len,\n y: anchor.y + Math.sin(ang) * len,\n }\n}\n\nexport function undoPolyPoint(state) {\n const poly = state.pendingPoly\n if (!poly) return\n if (poly.layer.points.length <= 1) {\n cancelPoly(state)\n return\n }\n poly.layer.points.pop()\n state.statusText = `${poly.layer.points.length} point${\n poly.layer.points.length === 1 ? '' : 's'\n } — Backspace removes the last`\n drawPolyPreview(state)\n state.notify()\n}\n\nfunction startPoly(state, shapeLayer, p) {\n state.pendingPoly = { layer: shapeLayer, preview: p }\n shapeLayer.points = [{ x: p.x, y: p.y }]\n delete shapeLayer.w\n delete shapeLayer.h\n state.statusText =\n 'Click to add points · double-click to finish · Esc cancels'\n drawPolyPreview(state)\n state.notify()\n}\n\nfunction drawPolyPreview(state) {\n const poly = state.pendingPoly\n if (!poly) return\n const c = state.octx\n const pts = poly.layer.points\n c.clearRect(0, 0, state.overlayEl.width, state.overlayEl.height)\n state.layers.forEach((L) => paintLayer(state, c, L))\n\n const ghost = {\n ...poly.layer,\n points: poly.preview ? pts.concat([poly.preview]) : pts,\n }\n if (ghost.points.length >= 2) paintLayer(state, c, ghost)\n\n const k = 1 / (state.viewScale || 1)\n const r = 5 * k\n\n c.save()\n c.lineWidth = 2 * k\n pts.forEach((pt, i) => {\n if (i === 0) return\n c.beginPath()\n c.arc(pt.x, pt.y, r, 0, Math.PI * 2)\n c.fillStyle = '#ffffff'\n c.strokeStyle = poly.layer.color\n c.fill()\n c.stroke()\n })\n\n // The first point is the close target: it grows and fills once the cursor is\n // near enough that a click would actually close the path.\n const first = pts[0]\n if (first) {\n const near =\n pts.length >= 3 &&\n poly.preview &&\n Math.hypot(poly.preview.x - first.x, poly.preview.y - first.y) <=\n closeHitRadius()\n c.beginPath()\n c.arc(first.x, first.y, (near ? 11 : 7) * k, 0, Math.PI * 2)\n c.fillStyle = near ? poly.layer.color : '#ffffff'\n c.strokeStyle = poly.layer.color\n c.lineWidth = (near ? 3 : 2) * k\n c.fill()\n c.stroke()\n if (near) {\n c.beginPath()\n c.arc(first.x, first.y, 4 * k, 0, Math.PI * 2)\n c.fillStyle = '#ffffff'\n c.fill()\n }\n }\n c.restore()\n\n drawPolyHint(state, pts.length)\n}\n\n// Pinned to the canvas so the rules are where the eyes are. On touch the button\n// bar carries the actions, so the hint only explains what a tap does.\nfunction drawPolyHint(state, count) {\n const c = state.octx\n const k = 1 / (state.viewScale || 1)\n const pad = 10 * k\n const size = 13 * k\n const coarse =\n typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(pointer: coarse)').matches\n const verb = coarse ? 'Tap' : 'Click'\n let msg\n if (count < 2) msg = `${verb} to place the next point`\n else if (coarse)\n msg =\n count < 3\n ? `${verb} to add points · use the bar below to finish`\n : `${verb} the first point to close · or finish below`\n else\n msg =\n count < 3\n ? 'Double-click or Enter to finish · Backspace undoes · Esc cancels'\n : 'Click the first point to close · Double-click to finish · Backspace undoes'\n\n c.save()\n c.font = `${size}px Avenir Next, Segoe UI, sans-serif`\n c.textBaseline = 'top'\n const w = c.measureText(msg).width\n c.fillStyle = 'rgba(17,17,17,.82)'\n c.beginPath()\n const bx = pad,\n by = pad,\n bw = w + pad * 2,\n bh = size + pad * 1.4\n if (c.roundRect) c.roundRect(bx, by, bw, bh, 6 * k)\n else c.rect(bx, by, bw, bh)\n c.fill()\n c.fillStyle = '#ffffff'\n c.fillText(msg, bx + pad, by + pad * 0.6)\n c.restore()\n}\n\n// Without this, continuing a finished line means clicking near its end -- which\n// lands on the rotate/resize handle and spins the layer instead.\nexport function resumePoly(state, id) {\n const L = state.layers.find((l) => l.id === (id ?? state.selectedId))\n if (!L || L.type !== 'shape') return\n if (!MULTI_POINT_SHAPES.includes(L.shape)) return\n pushHistory(state)\n if (!L.points || L.points.length < 2) {\n L.points = [\n { x: L.x, y: L.y },\n { x: L.x + (L.w || 0), y: L.y + (L.h || 0) },\n ]\n }\n delete L.w\n delete L.h\n L.closed = false\n state.selectedId = null\n state.mode = 'shape'\n state.multiPointMode = true\n state.pendingPoly = { layer: L, preview: L.points[L.points.length - 1] }\n state.statusText =\n 'Continuing line — click to add points · double-click to finish'\n drawPolyPreview(state)\n state.notify()\n}\n\nexport function finishPoly(state, close) {\n const poly = state.pendingPoly\n if (!poly) return\n const L = poly.layer\n state.pendingPoly = null\n if (L.points.length < 2) {\n // A lone click never became a line -- drop it and undo the history entry.\n state.layers = state.layers.filter((l) => l.id !== L.id)\n popHistory(state)\n setMode(state, 'select')\n render(state)\n state.notify()\n return\n }\n L.closed = !!close\n if (!state.layers.some((l) => l.id === L.id)) state.layers.push(L)\n // Stay on the shape tool: drawing one line usually means drawing another.\n // The layer is still selected, so its options are immediately editable.\n state.mode = 'shape'\n selectLayer(state, L.id)\n state.statusText = close\n ? 'Shape closed — click to start another'\n : 'Line added — click to start another'\n render(state)\n emitChange(state)\n}\n\nexport function cancelPoly(state) {\n const poly = state.pendingPoly\n if (!poly) return\n state.pendingPoly = null\n state.layers = state.layers.filter((l) => l.id !== poly.layer.id)\n popHistory(state)\n render(state)\n state.statusText = 'Cancelled'\n state.notify()\n}\n\nexport function onDown(state, e) {\n if (!state.sourceCanvas.width) return\n if (state.dragMode) return\n state.overlayEl.setPointerCapture(e.pointerId)\n state.activePointerId = e.pointerId\n state.dragRect = state.overlayEl.getBoundingClientRect()\n const p = toSource(state, e)\n if (state.pendingPoly) {\n const pts = state.pendingPoly.layer.points\n const first = pts[0]\n if (\n pts.length >= 3 &&\n Math.hypot(p.x - first.x, p.y - first.y) <= closeHitRadius()\n ) {\n finishPoly(state, true)\n return\n }\n const last = pts[pts.length - 1]\n const q = snapPreview(last, p, e.shiftKey)\n // Ignore a double-click's second down: it would add a zero-length segment.\n if (!last || Math.hypot(q.x - last.x, q.y - last.y) > CLICK_SLOP) {\n pts.push({ x: q.x, y: q.y })\n }\n state.pendingPoly.preview = q\n drawPolyPreview(state)\n return\n }\n if (state.mode === 'select') {\n const sel =\n state.selectedId != null\n ? state.layers.find((l) => l.id === state.selectedId)\n : null\n if (sel && onRotateHandle(state, p, sel)) {\n const c = layerCenter(state, sel)\n state.dragMode = 'rotate'\n state.rotateStart = {\n center: c,\n angle: Math.atan2(p.y - c.y, p.x - c.x),\n rotation: sel.rotation || 0,\n }\n pushHistory(state)\n return\n }\n const corner = sel ? onResizeHandle(state, p, sel) : null\n if (corner) {\n state.dragMode = 'resize'\n state.resizeCorner = corner\n state.dragStart = p\n state.dragOrig = JSON.parse(JSON.stringify(sel))\n if (sel.type === 'shape' && isMultiPoint(sel)) {\n const b = layerBounds(state, sel)\n const isLeft = corner === 'tl' || corner === 'bl'\n const isTop = corner === 'tl' || corner === 'tr'\n state.resizeAnchor = {\n x: isLeft ? b.x + b.w : b.x,\n y: isTop ? b.y + b.h : b.y,\n }\n // Stash the untouched geometry so scaling stays absolute and cannot\n // accumulate drift across move events.\n state.dragOrig._bounds = {\n w: isLeft ? -b.w : b.w,\n h: isTop ? -b.h : b.h,\n }\n state.dragOrig._anchorPt = {\n x: state.resizeAnchor.x,\n y: state.resizeAnchor.y,\n }\n } else if (\n sel.type === 'shape' &&\n DIRECTIONAL_SHAPES.includes(sel.shape)\n ) {\n state.resizeAnchor =\n corner === 'start'\n ? { x: sel.x + sel.w, y: sel.y + sel.h }\n : { x: sel.x, y: sel.y }\n } else {\n const b = layerBounds(state, sel)\n const isLeft = corner === 'tl' || corner === 'bl'\n state.resizeAnchor = {\n x: isLeft ? b.x + b.w : b.x,\n // Text keeps its top edge: its height follows the wrapping.\n y:\n sel.type === 'text'\n ? b.y\n : corner === 'tl' || corner === 'tr'\n ? b.y + b.h\n : b.y,\n }\n }\n state.resizeCenter = layerCenter(state, sel)\n state.resizeAnchorWorld = rotatePoint(\n state.resizeAnchor,\n state.resizeCenter,\n sel.rotation || 0\n )\n pushHistory(state)\n return\n }\n const hit = hitLayer(state, p)\n if (hit) {\n selectLayer(state, hit.id)\n state.dragMode = 'move'\n state.dragStart = p\n state.dragOrig = JSON.parse(JSON.stringify(hit))\n pushHistory(state)\n } else selectLayer(state, null)\n } else if (state.mode === 'text') {\n pushHistory(state)\n const L = {\n id: state.nextId++,\n type: 'text',\n text: 'Text',\n x: p.x,\n y: p.y,\n size: state.textSize,\n font: state.textFont,\n color: state.textColor,\n rotation: 0,\n flipH: false,\n flipV: false,\n boxWidth: 10,\n }\n state.octx.font = `${L.size}px ${L.font}`\n const placeholderWidth = state.octx.measureText(L.text).width\n L.boxWidth = Math.round(Math.max(700, placeholderWidth + 40))\n clampBoxWidth(state, L)\n clampTextSize(state, L)\n state.layers.push(L)\n setMode(state, 'select')\n selectLayer(state, L.id)\n openTextEditor(state, L, true)\n } else if (state.mode === 'draw') {\n pushHistory(state)\n state.pendingStroke = {\n id: state.nextId++,\n type: 'stroke',\n color: state.drawColor,\n width: state.brushSize,\n style: state.brushStyle,\n points: [p],\n }\n state.dragMode = 'draw'\n } else if (state.mode === 'shape') {\n pushHistory(state)\n state.pendingShape = {\n id: state.nextId++,\n type: 'shape',\n shape: state.selectedShapeType,\n fill: state.shapeFill,\n width: state.shapeWidth,\n color: state.shapeColor,\n x: p.x,\n y: p.y,\n w: 0,\n h: 0,\n rotation: 0,\n flipH: false,\n flipV: false,\n }\n state.dragMode = 'newshape'\n state.dragStart = p\n } else if (state.mode === 'crop') {\n state.dragMode = 'crop'\n state.cropStart = p\n state.cropRect = { x: p.x, y: p.y, w: 0, h: 0 }\n }\n}\n\nexport function onMove(state, e) {\n if (state.pendingPoly) {\n const pts = state.pendingPoly.layer.points\n state.pendingPoly.preview = snapPreview(\n pts[pts.length - 1],\n toSource(state, e),\n e.shiftKey\n )\n drawPolyPreview(state)\n return\n }\n if (\n state.dragMode &&\n state.activePointerId != null &&\n e.pointerId !== state.activePointerId\n ) {\n return\n }\n if (!state.dragMode) {\n if (state.mode === 'select') {\n const p = toSource(state, e),\n sel =\n state.selectedId != null\n ? state.layers.find((l) => l.id === state.selectedId)\n : null\n const corner = sel ? onResizeHandle(state, p, sel) : null\n if (sel && onRotateHandle(state, p, sel)) {\n state.overlayEl.style.cursor = 'grab'\n } else if (corner === 'start' || corner === 'end') {\n state.overlayEl.style.cursor =\n sel.w >= 0 === sel.h >= 0 ? 'nwse-resize' : 'nesw-resize'\n } else if (corner) {\n state.overlayEl.style.cursor =\n corner === 'tl' || corner === 'br' ? 'nwse-resize' : 'nesw-resize'\n } else if (sel && hitLayer(state, p) === sel) {\n state.overlayEl.style.cursor = 'move'\n } else if (hitLayer(state, p)) {\n state.overlayEl.style.cursor = 'pointer'\n } else {\n state.overlayEl.style.cursor = 'default'\n }\n }\n return\n }\n const p = toSource(state, e)\n if (state.dragMode === 'move') {\n const dx = p.x - state.dragStart.x,\n dy = p.y - state.dragStart.y,\n L = state.layers.find((l) => l.id === state.selectedId)\n if (L.type === 'shape' && isMultiPoint(L)) {\n L.points = state.dragOrig.points.map((pt) => ({\n x: pt.x + dx,\n y: pt.y + dy,\n }))\n } else if (\n L.type === 'text' ||\n L.type === 'shape' ||\n L.type === 'sticker'\n ) {\n L.x = state.dragOrig.x + dx\n L.y = state.dragOrig.y + dy\n } else if (L.type === 'stroke') {\n L.points = state.dragOrig.points.map((pt) => ({\n x: pt.x + dx,\n y: pt.y + dy,\n }))\n }\n clampLayerToCanvas(state, L)\n renderOverlay(state)\n } else if (state.dragMode === 'resize') {\n const L = state.layers.find((l) => l.id === state.selectedId)\n const rot = L.rotation || 0\n // Resize along the layer's own axes, so a tilted box grows the way it looks.\n const q = rot ? rotatePoint(p, state.resizeCenter, -rot) : p\n if (L.type === 'text') {\n const isLeft = state.resizeCorner === 'tl' || state.resizeCorner === 'bl'\n // Absolute from drag start, so the fix-up below cannot accumulate.\n L.y = state.dragOrig.y\n L.size = state.dragOrig.size\n if (isLeft) {\n const rightEdge = state.dragOrig.x + state.dragOrig.boxWidth\n L.boxWidth = Math.max(20, rightEdge - q.x)\n L.x = rightEdge - L.boxWidth\n } else {\n L.x = state.dragOrig.x\n L.boxWidth = Math.max(20, q.x - state.dragOrig.x)\n }\n clampBoxWidth(state, L)\n clampTextSize(state, L)\n state.notify()\n } else if (L.type === 'shape' && isMultiPoint(L)) {\n // Multi-point paths have no single \"end\" to drag, so scale every point\n // about the opposite corner instead.\n const anchor = state.resizeAnchor\n const ob = state.dragOrig._bounds\n const MIN_SIZE = 8\n const sx = ob.w > 0 ? (q.x - anchor.x) / (ob.w || 1) : 1\n const sy = ob.h > 0 ? (q.y - anchor.y) / (ob.h || 1) : 1\n const kx = Math.abs(ob.w * sx) < MIN_SIZE ? MIN_SIZE / (ob.w || 1) : sx\n const ky = Math.abs(ob.h * sy) < MIN_SIZE ? MIN_SIZE / (ob.h || 1) : sy\n L.points = state.dragOrig.points.map((pt) => ({\n x: anchor.x + (pt.x - state.dragOrig._anchorPt.x) * kx,\n y: anchor.y + (pt.y - state.dragOrig._anchorPt.y) * ky,\n }))\n } else if (L.type === 'shape' && DIRECTIONAL_SHAPES.includes(L.shape)) {\n const anchor = state.resizeAnchor\n const MIN_LEN = 8\n let w = q.x - anchor.x\n let h = q.y - anchor.y\n if (Math.hypot(w, h) < MIN_LEN) {\n const ang = Math.atan2(h || 1, w || 1)\n w = MIN_LEN * Math.cos(ang)\n h = MIN_LEN * Math.sin(ang)\n }\n if (state.resizeCorner === 'start') {\n L.x = anchor.x + w\n L.y = anchor.y + h\n L.w = -w\n L.h = -h\n } else {\n L.x = anchor.x\n L.y = anchor.y\n L.w = w\n L.h = h\n }\n } else if (L.type === 'shape' || L.type === 'sticker') {\n const anchor = state.resizeAnchor\n const MIN_SIZE = 8\n let w = q.x - anchor.x\n let h = q.y - anchor.y\n if (Math.abs(w) < MIN_SIZE) {\n w =\n anchor.x + MIN_SIZE <= state.sourceCanvas.width ? MIN_SIZE : -MIN_SIZE\n }\n if (Math.abs(h) < MIN_SIZE) {\n h =\n anchor.y + MIN_SIZE <= state.sourceCanvas.height\n ? MIN_SIZE\n : -MIN_SIZE\n }\n L.x = Math.min(anchor.x, anchor.x + w)\n L.y = Math.min(anchor.y, anchor.y + h)\n L.w = Math.abs(w)\n L.h = Math.abs(h)\n }\n // Resizing moves the centre it spins about; pin the anchor back down.\n if (rot) {\n const moved = rotatePoint(state.resizeAnchor, layerCenter(state, L), rot)\n L.x += state.resizeAnchorWorld.x - moved.x\n L.y += state.resizeAnchorWorld.y - moved.y\n }\n renderOverlay(state)\n } else if (state.dragMode === 'rotate') {\n const L = state.layers.find((l) => l.id === state.selectedId)\n const { center, angle, rotation } = state.rotateStart\n const swept = Math.atan2(p.y - center.y, p.x - center.x) - angle\n const deg = rotation + (swept * 180) / Math.PI\n L.rotation = ((deg % 360) + 360) % 360\n renderOverlay(state)\n } else if (state.dragMode === 'draw') {\n state.pendingStroke.points.push(p)\n state.octx.clearRect(0, 0, state.overlayEl.width, state.overlayEl.height)\n state.layers.forEach((L) => paintLayer(state, state.octx, L))\n paintLayer(state, state.octx, state.pendingStroke)\n } else if (state.dragMode === 'newshape') {\n state.pendingShape.w = p.x - state.dragStart.x\n state.pendingShape.h = p.y - state.dragStart.y\n renderOverlay(state)\n } else if (state.dragMode === 'crop') {\n let w = p.x - state.cropStart.x,\n h = p.y - state.cropStart.y\n if (state.cropRatio !== 'free') {\n const rr = parseFloat(state.cropRatio)\n h = (Math.sign(h || 1) * Math.abs(w)) / rr\n const maxH =\n h >= 0\n ? state.sourceCanvas.height - state.cropStart.y\n : state.cropStart.y\n if (Math.abs(h) > maxH) {\n h = Math.sign(h) * maxH\n w = Math.sign(w || 1) * Math.abs(h) * rr\n }\n }\n state.cropRect = { x: state.cropStart.x, y: state.cropStart.y, w, h }\n renderOverlay(state)\n }\n}\n\nexport function onUp(state, e) {\n if (\n e &&\n state.dragMode &&\n state.activePointerId != null &&\n e.pointerId !== state.activePointerId\n ) {\n return\n }\n if (state.dragMode === 'draw' && state.pendingStroke) {\n if (state.pendingStroke.points.length >= 1) {\n state.layers.push(state.pendingStroke)\n selectLayer(state, state.pendingStroke.id)\n }\n state.pendingStroke = null\n render(state)\n state.statusText = 'Stroke added'\n emitChange(state)\n } else if (state.dragMode === 'newshape' && state.pendingShape) {\n const dragged = Math.hypot(\n state.pendingShape.w || 0,\n state.pendingShape.h || 0\n )\n if (\n state.multiPointMode &&\n MULTI_POINT_SHAPES.includes(state.pendingShape.shape)\n ) {\n // Multi-point is an explicit mode, so it opens a session either way:\n // a drag lays down the first segment, a click just the first corner.\n const L = state.pendingShape\n const end = { x: L.x + (L.w || 0), y: L.y + (L.h || 0) }\n state.pendingShape = null\n startPoly(state, L, { x: L.x, y: L.y })\n if (dragged > CLICK_SLOP) {\n L.points.push(end)\n state.pendingPoly.preview = end\n }\n } else if (\n Math.abs(state.pendingShape.w) > 3 ||\n Math.abs(state.pendingShape.h) > 3\n ) {\n state.layers.push(state.pendingShape)\n const id = state.pendingShape.id\n state.pendingShape = null\n setMode(state, 'select')\n selectLayer(state, id)\n state.statusText = 'Shape added'\n emitChange(state)\n } else {\n state.pendingShape = null\n renderOverlay(state)\n state.notify()\n }\n } else if (state.dragMode === 'crop') {\n if (state.cropRect) state.cropRect = normRect(state.cropRect)\n renderOverlay(state)\n state.notify()\n } else if (\n state.dragMode === 'move' ||\n state.dragMode === 'resize' ||\n state.dragMode === 'rotate'\n ) {\n if (state.dragMode === 'rotate') {\n const L = state.layers.find((l) => l.id === state.selectedId)\n if (L) state.statusText = `Rotated to ${Math.round(L.rotation)}°`\n }\n render(state)\n state.notify()\n }\n if (state.activePointerId != null) {\n if (state.overlayEl.hasPointerCapture(state.activePointerId)) {\n state.overlayEl.releasePointerCapture(state.activePointerId)\n }\n state.activePointerId = null\n }\n state.dragMode = null\n state.dragStart = null\n state.dragOrig = null\n state.dragRect = null\n state.resizeAnchor = null\n state.resizeCenter = null\n state.resizeAnchorWorld = null\n state.rotateStart = null\n}\n\nexport function onDbl(state, e) {\n if (state.pendingPoly) {\n finishPoly(state, false)\n return\n }\n if (state.mode !== 'select') return\n const p = toSource(state, e),\n hit = hitLayer(state, p)\n if (hit && hit.type === 'text') {\n selectLayer(state, hit.id)\n openTextEditor(state, hit, false)\n }\n}\n"],"names":["toSource","state","e","x","y","rotatedAABB","b","rotationDeg","rad","cos","sin","w","h","cx","cy","strokeMargin","L","DIRECTIONAL_SHAPES","clampLayerToCanvas","rotated","layerBounds","margin","dx","dy","pt","hitLayer","p","layers","i","q","toLayerSpace","closeHitRadius","SNAP_STEP","CLICK_SLOP","polyStatus","poly","n","snapPreview","anchor","shift","len","ang","undoPolyPoint","cancelPoly","drawPolyPreview","startPoly","shapeLayer","c","pts","paintLayer","ghost","k","r","first","near","drawPolyHint","count","pad","size","coarse","verb","msg","bx","by","bw","bh","resumePoly","id","l","MULTI_POINT_SHAPES","pushHistory","finishPoly","close","popHistory","setMode","render","selectLayer","emitChange","onDown","last","sel","onRotateHandle","layerCenter","corner","onResizeHandle","isMultiPoint","isLeft","isTop","rotatePoint","hit","placeholderWidth","clampBoxWidth","clampTextSize","openTextEditor","onMove","renderOverlay","rot","rightEdge","ob","MIN_SIZE","sx","sy","kx","ky","MIN_LEN","moved","center","angle","rotation","swept","deg","rr","maxH","onUp","dragged","end","normRect","onDbl"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { cva as r } from "class-variance-authority";
2
- import { StepItemStatus as e } from "./index31.es.js";
2
+ import { StepItemStatus as e } from "./index.es31.js";
3
3
  const o = r(
4
4
  "h-8 w-8 border-2 flex items-center justify-center rounded-full cursor-pointer trasnition-all",
5
5
  {
@@ -16,4 +16,4 @@ const o = r(
16
16
  export {
17
17
  o as StepItemVariants
18
18
  };
19
- //# sourceMappingURL=index137.es.js.map
19
+ //# sourceMappingURL=index.es156.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index137.es.js","sources":["../src/components/molecules/stepper/stepper.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport { StepItemStatus } from './stepper.type'\nexport const StepItemVariants = cva(\n 'h-8 w-8 border-2 flex items-center justify-center rounded-full cursor-pointer trasnition-all',\n {\n variants: {\n variant: {\n pending: 'border-neutral-2 ',\n current:\n 'bg-primary-1 border-primary-2 hover:bg-hover-t1 active:bg-click-t1',\n completed:\n 'bg-rest-p1 hover:bg-hover-p1 active:bg-click-p1 border-none',\n },\n },\n defaultVariants: { variant: StepItemStatus.PENDING },\n }\n)\n"],"names":["StepItemVariants","cva","StepItemStatus"],"mappings":";;AAEO,MAAMA,IAAmBC;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB,EAAE,SAASC,EAAe,QAAA;AAAA,EAAQ;AAEvD;"}
1
+ {"version":3,"file":"index.es156.js","sources":["../src/components/molecules/stepper/stepper.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport { StepItemStatus } from './stepper.type'\nexport const StepItemVariants = cva(\n 'h-8 w-8 border-2 flex items-center justify-center rounded-full cursor-pointer trasnition-all',\n {\n variants: {\n variant: {\n pending: 'border-neutral-2 ',\n current:\n 'bg-primary-1 border-primary-2 hover:bg-hover-t1 active:bg-click-t1',\n completed:\n 'bg-rest-p1 hover:bg-hover-p1 active:bg-click-p1 border-none',\n },\n },\n defaultVariants: { variant: StepItemStatus.PENDING },\n }\n)\n"],"names":["StepItemVariants","cva","StepItemStatus"],"mappings":";;AAEO,MAAMA,IAAmBC;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SACE;AAAA,QACF,WACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB,EAAE,SAASC,EAAe,QAAA;AAAA,EAAQ;AAEvD;"}
@@ -12,4 +12,4 @@ const t = {
12
12
  export {
13
13
  t as hoverDetailCardStyles
14
14
  };
15
- //# sourceMappingURL=index138.es.js.map
15
+ //# sourceMappingURL=index.es157.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index138.es.js","sources":["../src/components/ui/map-marker-hover-card/map-marker-hover-card.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const hoverDetailCardStyles = {\n img: cva('', {\n variants: {\n hasIcon: {\n true: 'w-12 h-12',\n false: 'h-5 w-5',\n },\n },\n }),\n}\n"],"names":["hoverDetailCardStyles","cva"],"mappings":";AAEO,MAAMA,IAAwB;AAAA,EACnC,KAAKC,EAAI,IAAI;AAAA,IACX,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AACH;"}
1
+ {"version":3,"file":"index.es157.js","sources":["../src/components/ui/map-marker-hover-card/map-marker-hover-card.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const hoverDetailCardStyles = {\n img: cva('', {\n variants: {\n hasIcon: {\n true: 'w-12 h-12',\n false: 'h-5 w-5',\n },\n },\n }),\n}\n"],"names":["hoverDetailCardStyles","cva"],"mappings":";AAEO,MAAMA,IAAwB;AAAA,EACnC,KAAKC,EAAI,IAAI;AAAA,IACX,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AACH;"}
@@ -44,4 +44,4 @@ const s = r(
44
44
  export {
45
45
  s as OTPInputVariants
46
46
  };
47
- //# sourceMappingURL=index159.es.js.map
47
+ //# sourceMappingURL=index.es158.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index159.es.js","sources":["../src/components/unstyled/otp-input/otp-input.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const OTPInputVariants = cva(\n `relative flex h-12 w-11 items-center justify-center border-y border-r border-input text-light-1 transition-all\n first:rounded-l-md first:border-l last:rounded-r-md`,\n {\n variants: {\n isError: {\n true: '',\n false: '',\n },\n isFocused: {\n true: '',\n false: '',\n },\n },\n defaultVariants: {\n isError: false,\n isFocused: false,\n },\n compoundVariants: [\n {\n isError: true,\n isFocused: true,\n className: 'border-danger-2 ring-4 ring-danger-1',\n },\n {\n isError: false,\n isFocused: true,\n className: 'border-primary-2 ring-4 ring-primary-1',\n },\n {\n isError: true,\n isFocused: false,\n className: 'border-danger-2',\n },\n {\n isError: false,\n isFocused: false,\n className: 'border-neutral-2',\n },\n ],\n }\n)\n"],"names":["OTPInputVariants","cva"],"mappings":";AAEO,MAAMA,IAAmBC;AAAA,EAC9B;AAAA;AAAA,EAEA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,WAAW;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,WAAW;AAAA,IAAA;AAAA,IAEb,kBAAkB;AAAA,MAChB;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"index.es158.js","sources":["../src/components/unstyled/otp-input/otp-input.styles.ts"],"sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const OTPInputVariants = cva(\n `relative flex h-12 w-11 items-center justify-center border-y border-r border-input text-light-1 transition-all\n first:rounded-l-md first:border-l last:rounded-r-md`,\n {\n variants: {\n isError: {\n true: '',\n false: '',\n },\n isFocused: {\n true: '',\n false: '',\n },\n },\n defaultVariants: {\n isError: false,\n isFocused: false,\n },\n compoundVariants: [\n {\n isError: true,\n isFocused: true,\n className: 'border-danger-2 ring-4 ring-danger-1',\n },\n {\n isError: false,\n isFocused: true,\n className: 'border-primary-2 ring-4 ring-primary-1',\n },\n {\n isError: true,\n isFocused: false,\n className: 'border-danger-2',\n },\n {\n isError: false,\n isFocused: false,\n className: 'border-neutral-2',\n },\n ],\n }\n)\n"],"names":["OTPInputVariants","cva"],"mappings":";AAEO,MAAMA,IAAmBC;AAAA,EAC9B;AAAA;AAAA,EAEA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,WAAW;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,WAAW;AAAA,IAAA;AAAA,IAEb,kBAAkB;AAAA,MAChB;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,MAEb;AAAA,QACE,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;"}
@@ -1,8 +1,8 @@
1
1
  import e from "react";
2
- import { FormField as m } from "./index170.es.js";
3
- import { Typography as r } from "./index19.es.js";
2
+ import { FormField as m } from "./index.es173.js";
3
+ import { Typography as r } from "./index.es19.js";
4
4
  const i = ({ section: t }) => /* @__PURE__ */ e.createElement("div", { className: "form-section" }, /* @__PURE__ */ e.createElement("section", { className: "flex flex-col gap-3" }, /* @__PURE__ */ e.createElement(r, { variant: "h3", className: "text-light-2" }, t.name), t.fields.map((a) => /* @__PURE__ */ e.createElement(m, { key: a.id, field: a }))));
5
5
  export {
6
6
  i as FormSection
7
7
  };
8
- //# sourceMappingURL=index139.es.js.map
8
+ //# sourceMappingURL=index.es159.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index139.es.js","sources":["../src/components/ui/form-renderer/components/form-section.tsx"],"sourcesContent":["// components/FormSection.tsx\nimport React from 'react'\nimport { FormSection as FormSectionType } from '../form.types'\nimport { FormField } from './form-fields'\nimport { Typography } from '@/components/atoms/typography'\ninterface FormSectionProps {\n section: FormSectionType\n}\n\nexport const FormSection: React.FC<FormSectionProps> = ({ section }) => {\n return (\n <div className=\"form-section\">\n <section className=\"flex flex-col gap-3\">\n <Typography variant=\"h3\" className=\"text-light-2\">\n {section.name}\n </Typography>\n {section.fields.map((field) => (\n <FormField key={field.id} field={field} />\n ))}\n </section>\n </div>\n )\n}\n"],"names":["FormSection","section","React","Typography","field","FormField"],"mappings":";;;AASO,MAAMA,IAA0C,CAAC,EAAE,SAAAC,QAEtDC,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,eAAA,GACbA,gBAAAA,EAAA,cAAC,WAAA,EAAQ,WAAU,yBACjBA,gBAAAA,EAAA,cAACC,GAAA,EAAW,SAAQ,MAAK,WAAU,eAAA,GAChCF,EAAQ,IACX,GACCA,EAAQ,OAAO,IAAI,CAACG,MACnBF,gBAAAA,EAAA,cAACG,GAAA,EAAU,KAAKD,EAAM,IAAI,OAAAA,EAAA,CAAc,CACzC,CACH,CACF;"}
1
+ {"version":3,"file":"index.es159.js","sources":["../src/components/ui/form-renderer/components/form-section.tsx"],"sourcesContent":["// components/FormSection.tsx\nimport React from 'react'\nimport { FormSection as FormSectionType } from '../form.types'\nimport { FormField } from './form-fields'\nimport { Typography } from '@/components/atoms/typography'\ninterface FormSectionProps {\n section: FormSectionType\n}\n\nexport const FormSection: React.FC<FormSectionProps> = ({ section }) => {\n return (\n <div className=\"form-section\">\n <section className=\"flex flex-col gap-3\">\n <Typography variant=\"h3\" className=\"text-light-2\">\n {section.name}\n </Typography>\n {section.fields.map((field) => (\n <FormField key={field.id} field={field} />\n ))}\n </section>\n </div>\n )\n}\n"],"names":["FormSection","section","React","Typography","field","FormField"],"mappings":";;;AASO,MAAMA,IAA0C,CAAC,EAAE,SAAAC,QAEtDC,gBAAAA,EAAA,cAAC,OAAA,EAAI,WAAU,eAAA,GACbA,gBAAAA,EAAA,cAAC,WAAA,EAAQ,WAAU,yBACjBA,gBAAAA,EAAA,cAACC,GAAA,EAAW,SAAQ,MAAK,WAAU,eAAA,GAChCF,EAAQ,IACX,GACCA,EAAQ,OAAO,IAAI,CAACG,MACnBF,gBAAAA,EAAA,cAACG,GAAA,EAAU,KAAKD,EAAM,IAAI,OAAAA,EAAA,CAAc,CACzC,CACH,CACF;"}
@@ -1,12 +1,12 @@
1
1
  import * as e from "react";
2
- import { cn as u } from "./index89.es.js";
3
- import { Typography as n } from "./index19.es.js";
2
+ import { cn as u } from "./index.es89.js";
3
+ import { Typography as n } from "./index.es19.js";
4
4
  import "lucide-react";
5
- import "./index60.es.js";
6
- import "./index90.es.js";
7
- import "./index29.es.js";
8
- import "./index35.es.js";
9
- import { TextAreaVariants as m } from "./index101.es.js";
5
+ import "./index.es60.js";
6
+ import "./index.es90.js";
7
+ import "./index.es29.js";
8
+ import "./index.es35.js";
9
+ import { TextAreaVariants as m } from "./index.es101.js";
10
10
  const g = e.forwardRef(
11
11
  ({ className: o, inputLabel: i, showTextCount: l, maximumTextCount: a, id: d, ...t }, f) => {
12
12
  const [r, s] = e.useState(!1), c = e.useRef(null);
@@ -46,4 +46,4 @@ g.displayName = "Textarea";
46
46
  export {
47
47
  g as Textarea
48
48
  };
49
- //# sourceMappingURL=index16.es.js.map
49
+ //# sourceMappingURL=index.es16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index16.es.js","sources":["../src/components/atoms/textarea/textarea.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\nimport { Typography } from '@/index'\nimport { TextAreaVariants } from './textarea.styles'\nimport type { TextareaProps } from './textarea.types'\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n { className, inputLabel, showTextCount, maximumTextCount, id, ...props },\n ref\n ) => {\n const [isFocused, setIsFocused] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n React.useEffect(() => {\n if (isFocused) {\n inputRef.current?.focus()\n }\n }, [isFocused])\n return (\n <div id={id}>\n {inputLabel && (\n <Typography variant={'body4'} className={`text-light-3`}>\n {inputLabel}\n </Typography>\n )}\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n TextAreaVariants({\n isFocused,\n disabled: props.disabled,\n className,\n })\n )}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n ref={ref}\n maxLength={maximumTextCount}\n {...props}\n />\n\n {showTextCount && (\n <Typography\n variant={'body4'}\n className={`text-light-4 mt-1.5 flex justify-end`}\n >\n {props.value?.toString().length}/{maximumTextCount}\n </Typography>\n )}\n </div>\n )\n }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n"],"names":["Textarea","React","className","inputLabel","showTextCount","maximumTextCount","id","props","ref","isFocused","setIsFocused","inputRef","Typography","cn","TextAreaVariants"],"mappings":";;;;;;;;;AAOA,MAAMA,IAAWC,EAAM;AAAA,EACrB,CACE,EAAE,WAAAC,GAAW,YAAAC,GAAY,eAAAC,GAAe,kBAAAC,GAAkB,IAAAC,GAAI,GAAGC,EAAA,GACjEC,MACG;AACH,UAAM,CAACC,GAAWC,CAAY,IAAIT,EAAM,SAAS,EAAK,GAChDU,IAAWV,EAAM,OAAyB,IAAI;AACpD,WAAAA,EAAM,UAAU,MAAM;AACpB,MAAIQ,KACFE,EAAS,SAAS,MAAA;AAAA,IAEtB,GAAG,CAACF,CAAS,CAAC,GAEZ,gBAAAR,EAAA,cAAC,OAAA,EAAI,IAAAK,EAAA,GACFH,KACC,gBAAAF,EAAA,cAACW,GAAA,EAAW,SAAS,SAAS,WAAW,eAAA,GACtCT,CACH,GAEF,gBAAAF,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWY;AAAA,UACT;AAAA,UACAX;AAAA,UACAY,EAAiB;AAAA,YACf,WAAAL;AAAA,YACA,UAAUF,EAAM;AAAA,YAChB,WAAAL;AAAA,UAAA,CACD;AAAA,QAAA;AAAA,QAEH,SAAS,MAAMQ,EAAa,EAAI;AAAA,QAChC,QAAQ,MAAMA,EAAa,EAAK;AAAA,QAChC,KAAAF;AAAA,QACA,WAAWH;AAAA,QACV,GAAGE;AAAA,MAAA;AAAA,IAAA,GAGLH,KACC,gBAAAH,EAAA;AAAA,MAACW;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,MAEVL,EAAM,OAAO,SAAA,EAAW;AAAA,MAAO;AAAA,MAAEF;AAAA,IAAA,CAGxC;AAAA,EAEJ;AACF;AACAL,EAAS,cAAc;"}
1
+ {"version":3,"file":"index.es16.js","sources":["../src/components/atoms/textarea/textarea.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils'\nimport { Typography } from '@/index'\nimport { TextAreaVariants } from './textarea.styles'\nimport type { TextareaProps } from './textarea.types'\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n { className, inputLabel, showTextCount, maximumTextCount, id, ...props },\n ref\n ) => {\n const [isFocused, setIsFocused] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n React.useEffect(() => {\n if (isFocused) {\n inputRef.current?.focus()\n }\n }, [isFocused])\n return (\n <div id={id}>\n {inputLabel && (\n <Typography variant={'body4'} className={`text-light-3`}>\n {inputLabel}\n </Typography>\n )}\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n TextAreaVariants({\n isFocused,\n disabled: props.disabled,\n className,\n })\n )}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n ref={ref}\n maxLength={maximumTextCount}\n {...props}\n />\n\n {showTextCount && (\n <Typography\n variant={'body4'}\n className={`text-light-4 mt-1.5 flex justify-end`}\n >\n {props.value?.toString().length}/{maximumTextCount}\n </Typography>\n )}\n </div>\n )\n }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n"],"names":["Textarea","React","className","inputLabel","showTextCount","maximumTextCount","id","props","ref","isFocused","setIsFocused","inputRef","Typography","cn","TextAreaVariants"],"mappings":";;;;;;;;;AAOA,MAAMA,IAAWC,EAAM;AAAA,EACrB,CACE,EAAE,WAAAC,GAAW,YAAAC,GAAY,eAAAC,GAAe,kBAAAC,GAAkB,IAAAC,GAAI,GAAGC,EAAA,GACjEC,MACG;AACH,UAAM,CAACC,GAAWC,CAAY,IAAIT,EAAM,SAAS,EAAK,GAChDU,IAAWV,EAAM,OAAyB,IAAI;AACpD,WAAAA,EAAM,UAAU,MAAM;AACpB,MAAIQ,KACFE,EAAS,SAAS,MAAA;AAAA,IAEtB,GAAG,CAACF,CAAS,CAAC,GAEZ,gBAAAR,EAAA,cAAC,OAAA,EAAI,IAAAK,EAAA,GACFH,KACC,gBAAAF,EAAA,cAACW,GAAA,EAAW,SAAS,SAAS,WAAW,eAAA,GACtCT,CACH,GAEF,gBAAAF,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWY;AAAA,UACT;AAAA,UACAX;AAAA,UACAY,EAAiB;AAAA,YACf,WAAAL;AAAA,YACA,UAAUF,EAAM;AAAA,YAChB,WAAAL;AAAA,UAAA,CACD;AAAA,QAAA;AAAA,QAEH,SAAS,MAAMQ,EAAa,EAAI;AAAA,QAChC,QAAQ,MAAMA,EAAa,EAAK;AAAA,QAChC,KAAAF;AAAA,QACA,WAAWH;AAAA,QACV,GAAGE;AAAA,MAAA;AAAA,IAAA,GAGLH,KACC,gBAAAH,EAAA;AAAA,MAACW;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,MAEVL,EAAM,OAAO,SAAA,EAAW;AAAA,MAAO;AAAA,MAAEF;AAAA,IAAA,CAGxC;AAAA,EAEJ;AACF;AACAL,EAAS,cAAc;"}
@@ -11,4 +11,4 @@ export {
11
11
  o as FormStructureContext,
12
12
  n as useFormStructure
13
13
  };
14
- //# sourceMappingURL=index140.es.js.map
14
+ //# sourceMappingURL=index.es160.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index140.es.js","sources":["../src/components/ui/form-renderer/context/form-structure/form-structure.context.ts"],"sourcesContent":["// contexts/FormStructureContext.tsx\nimport { createContext, useContext } from 'react'\nimport { FormStructure, FormStep } from '../../form.types'\n\ninterface FormStructureContextType {\n structure: FormStructure\n currentStepIndex: number\n currentStep: FormStep\n goToNextStep: () => void\n goToPreviousStep: () => void\n goToStep: (stepIndex: number) => void\n isFirstStep: boolean\n isLastStep: boolean\n totalSteps: number\n}\n\nexport const FormStructureContext =\n createContext<FormStructureContextType | null>(null)\n\nexport const useFormStructure = () => {\n const context = useContext(FormStructureContext)\n if (!context) {\n throw new Error(\n 'useFormStructure must be used within a FormStructureProvider'\n )\n }\n return context\n}\n"],"names":["FormStructureContext","createContext","useFormStructure","context","useContext"],"mappings":";AAgBO,MAAMA,IACXC,EAA+C,IAAI,GAExCC,IAAmB,MAAM;AACpC,QAAMC,IAAUC,EAAWJ,CAAoB;AAC/C,MAAI,CAACG;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,SAAOA;AACT;"}
1
+ {"version":3,"file":"index.es160.js","sources":["../src/components/ui/form-renderer/context/form-structure/form-structure.context.ts"],"sourcesContent":["// contexts/FormStructureContext.tsx\nimport { createContext, useContext } from 'react'\nimport { FormStructure, FormStep } from '../../form.types'\n\ninterface FormStructureContextType {\n structure: FormStructure\n currentStepIndex: number\n currentStep: FormStep\n goToNextStep: () => void\n goToPreviousStep: () => void\n goToStep: (stepIndex: number) => void\n isFirstStep: boolean\n isLastStep: boolean\n totalSteps: number\n}\n\nexport const FormStructureContext =\n createContext<FormStructureContextType | null>(null)\n\nexport const useFormStructure = () => {\n const context = useContext(FormStructureContext)\n if (!context) {\n throw new Error(\n 'useFormStructure must be used within a FormStructureProvider'\n )\n }\n return context\n}\n"],"names":["FormStructureContext","createContext","useFormStructure","context","useContext"],"mappings":";AAgBO,MAAMA,IACXC,EAA+C,IAAI,GAExCC,IAAmB,MAAM;AACpC,QAAMC,IAAUC,EAAWJ,CAAoB;AAC/C,MAAI,CAACG;AACH,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAGJ,SAAOA;AACT;"}
@@ -11,4 +11,4 @@ export {
11
11
  r as FormValuesContext,
12
12
  n as useFormValues
13
13
  };
14
- //# sourceMappingURL=index141.es.js.map
14
+ //# sourceMappingURL=index.es161.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index141.es.js","sources":["../src/components/ui/form-renderer/context/form-values/form-values.context.ts"],"sourcesContent":["// contexts/FormValuesContext.tsx\nimport { createContext, useContext } from 'react'\nimport {\n AssetValue,\n FormField,\n FormFieldValue,\n FormStep,\n FormValues,\n onToggleImageEditor,\n} from '../../form.types'\n\ninterface FormValuesContextType {\n values: FormValues\n errors: Record<string, string>\n setValue: (fieldId: string, value: FormFieldValue) => void\n setFormValues: (formValues: FormValues) => void\n validateField: (field: FormField) => {\n isValid: boolean\n errorMessage: string\n }\n validateStep: (step: FormStep) => {\n isStepValid: boolean\n errors: Record<string, string>\n }\n submitForm: () => void\n onAssetUpload?: (file: File) => Promise<AssetValue>\n onToggleImageEditor?: onToggleImageEditor\n /** Returns headers for API requests (e.g. Authorization from cookie). Used by CreatableMultiCombobox */\n getRequestHeaders?: () =>\n | Record<string, string>\n | Promise<Record<string, string>>\n /** Returns extra body fields for create option API (e.g. { email } from cookie). Used by CreatableMultiCombobox */\n getCreateOptionExtraBody?: () =>\n | Record<string, unknown>\n | Promise<Record<string, unknown>>\n}\n\nexport const FormValuesContext = createContext<FormValuesContextType | null>(\n null\n)\n\nexport const useFormValues = () => {\n const context = useContext(FormValuesContext)\n if (!context) {\n throw new Error('useFormValues must be used within a FormValuesProvider')\n }\n return context\n}\n"],"names":["FormValuesContext","createContext","useFormValues","context","useContext"],"mappings":";AAqCO,MAAMA,IAAoBC;AAAA,EAC/B;AACF,GAEaC,IAAgB,MAAM;AACjC,QAAMC,IAAUC,EAAWJ,CAAiB;AAC5C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,wDAAwD;AAE1E,SAAOA;AACT;"}
1
+ {"version":3,"file":"index.es161.js","sources":["../src/components/ui/form-renderer/context/form-values/form-values.context.ts"],"sourcesContent":["// contexts/FormValuesContext.tsx\nimport { createContext, useContext } from 'react'\nimport {\n AssetValue,\n FormField,\n FormFieldValue,\n FormStep,\n FormValues,\n onToggleImageEditor,\n} from '../../form.types'\n\ninterface FormValuesContextType {\n values: FormValues\n errors: Record<string, string>\n setValue: (fieldId: string, value: FormFieldValue) => void\n setFormValues: (formValues: FormValues) => void\n validateField: (field: FormField) => {\n isValid: boolean\n errorMessage: string\n }\n validateStep: (step: FormStep) => {\n isStepValid: boolean\n errors: Record<string, string>\n }\n submitForm: () => void\n onAssetUpload?: (file: File) => Promise<AssetValue>\n onToggleImageEditor?: onToggleImageEditor\n /** Returns headers for API requests (e.g. Authorization from cookie). Used by CreatableMultiCombobox */\n getRequestHeaders?: () =>\n | Record<string, string>\n | Promise<Record<string, string>>\n /** Returns extra body fields for create option API (e.g. { email } from cookie). Used by CreatableMultiCombobox */\n getCreateOptionExtraBody?: () =>\n | Record<string, unknown>\n | Promise<Record<string, unknown>>\n}\n\nexport const FormValuesContext = createContext<FormValuesContextType | null>(\n null\n)\n\nexport const useFormValues = () => {\n const context = useContext(FormValuesContext)\n if (!context) {\n throw new Error('useFormValues must be used within a FormValuesProvider')\n }\n return context\n}\n"],"names":["FormValuesContext","createContext","useFormValues","context","useContext"],"mappings":";AAqCO,MAAMA,IAAoBC;AAAA,EAC/B;AACF,GAEaC,IAAgB,MAAM;AACjC,QAAMC,IAAUC,EAAWJ,CAAiB;AAC5C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,wDAAwD;AAE1E,SAAOA;AACT;"}