@peteai/presentation-editor 0.0.6 → 0.0.8

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 (330) hide show
  1. package/README.md +38 -38
  2. package/dist/components/editor/active-layers-buttons.svelte +56 -0
  3. package/dist/components/editor/active-layers.svelte +237 -0
  4. package/dist/components/editor/active-layers.svelte.d.ts +8 -0
  5. package/dist/components/{presentation-editor/cognition-slides.d.ts → editor/cognition-pages.d.ts} +1 -1
  6. package/dist/components/{presentation-editor/cognition-slides.js → editor/cognition-pages.js} +1 -1
  7. package/dist/components/{presentation-editor → editor}/cursor-tooltip.svelte +6 -2
  8. package/dist/components/editor/cursor-tooltip.svelte.d.ts +7 -0
  9. package/dist/components/{presentation-editor → editor}/dragged.svelte +7 -3
  10. package/dist/components/editor/dragged.svelte.d.ts +7 -0
  11. package/dist/components/{presentation-editor/presentation-editor.svelte → editor/editor.svelte} +64 -61
  12. package/dist/components/editor/editor.svelte.d.ts +4 -0
  13. package/dist/components/editor/editor.svelte.js +1169 -0
  14. package/dist/components/editor/header.svelte +62 -0
  15. package/dist/components/editor/header.svelte.d.ts +7 -0
  16. package/dist/components/{presentation-editor → editor}/hotkeys.svelte +48 -16
  17. package/dist/components/editor/index.d.ts +3 -0
  18. package/dist/components/editor/index.js +3 -0
  19. package/dist/components/{presentation-editor → editor}/layers/active-background-border.svelte +2 -2
  20. package/dist/components/{presentation-editor → editor}/layers/active-layer-border.svelte +5 -8
  21. package/dist/components/editor/layers/buttons/border-button/border-button-colors.svelte +59 -0
  22. package/dist/components/editor/layers/buttons/border-button/border-button-colors.svelte.d.ts +9 -0
  23. package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/border-button.svelte +47 -65
  24. package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/corner-radius-button.svelte +24 -28
  25. package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/flip-button.svelte +11 -12
  26. package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/opacity-button.svelte +33 -44
  27. package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/corner-scale-control.svelte +27 -32
  28. package/dist/components/editor/layers/controls/group-resize-control/group-resize-control.svelte +418 -0
  29. package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/rotate-control.svelte +33 -34
  30. package/dist/components/editor/layers/controls/rotate-control/rotate-control.svelte.d.ts +6 -0
  31. package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/side-resize-control.svelte +22 -26
  32. package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/side-scale-control.svelte +13 -15
  33. package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/side-scale-control.svelte.d.ts +2 -2
  34. package/dist/components/editor/layers/index.d.ts +10 -0
  35. package/dist/components/{presentation-editor → editor}/layers/index.js +8 -5
  36. package/dist/components/{presentation-editor → editor}/layers/layer-button.svelte +14 -8
  37. package/dist/components/{presentation-editor → editor}/layers/layer-thumb-wrapper.svelte +5 -6
  38. package/dist/components/{presentation-editor → editor}/layers/layer-wrapper.svelte +46 -57
  39. package/dist/components/editor/layers/types/background/background-content-image.svelte +36 -0
  40. package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer-buttons.svelte +6 -6
  41. package/dist/components/editor/layers/types/background/background-layer-content.svelte +21 -0
  42. package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer-content.svelte.d.ts +2 -2
  43. package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer.svelte +7 -9
  44. package/dist/components/editor/layers/types/group/group-child-wrapper.svelte +44 -0
  45. package/dist/components/editor/layers/types/group/group-child-wrapper.svelte.d.ts +9 -0
  46. package/dist/components/editor/layers/types/group/group-layer-content.svelte +45 -0
  47. package/dist/components/editor/layers/types/group/group-layer-content.svelte.d.ts +9 -0
  48. package/dist/components/editor/layers/types/group/group-layer.svelte +33 -0
  49. package/dist/components/editor/layers/types/group/group-layer.svelte.d.ts +8 -0
  50. package/dist/components/editor/layers/types/group/index.d.ts +3 -0
  51. package/dist/components/editor/layers/types/group/index.js +3 -0
  52. package/dist/components/editor/layers/types/image/controls/image-rotate-control/image-rotate-control.svelte +120 -0
  53. package/dist/components/editor/layers/types/image/controls/image-rotate-control/image-rotate-control.svelte.d.ts +8 -0
  54. package/dist/components/editor/layers/types/image/controls/image-rotate-control/index.d.ts +2 -0
  55. package/dist/components/editor/layers/types/image/controls/image-rotate-control/index.js +4 -0
  56. package/dist/components/editor/layers/types/image/controls/image-scale-control/image-scale-control.svelte +154 -0
  57. package/dist/components/editor/layers/types/image/controls/image-scale-control/image-scale-control.svelte.d.ts +91 -0
  58. package/dist/components/editor/layers/types/image/controls/image-scale-control/index.d.ts +2 -0
  59. package/dist/components/editor/layers/types/image/controls/image-scale-control/index.js +4 -0
  60. package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-active.svelte +10 -13
  61. package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-content.svelte +15 -12
  62. package/dist/components/editor/layers/types/image/image-layer-crop.svelte +182 -0
  63. package/dist/components/editor/layers/types/image/image-layer-crop.svelte.d.ts +10 -0
  64. package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer.svelte +24 -14
  65. package/dist/components/editor/layers/types/image/index.d.ts +4 -0
  66. package/dist/components/editor/layers/types/image/index.js +4 -0
  67. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/alignment-button.svelte +13 -14
  68. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/alignment-button.svelte.d.ts +2 -2
  69. package/dist/components/editor/layers/types/text/buttons/bold-button/bold-button.svelte +65 -0
  70. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/bold-button/bold-button.svelte.d.ts +2 -2
  71. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/case-button.svelte +24 -30
  72. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/case-button.svelte.d.ts +2 -2
  73. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/color-button.svelte +4 -4
  74. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/color-button.svelte.d.ts +2 -2
  75. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/font-family-button.svelte +4 -4
  76. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/font-family-button.svelte.d.ts +2 -2
  77. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/font-size-button.svelte +33 -40
  78. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/font-size-button.svelte.d.ts +2 -2
  79. package/dist/components/editor/layers/types/text/buttons/italic-button/italic-button.svelte +65 -0
  80. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/italic-button/italic-button.svelte.d.ts +2 -2
  81. package/dist/components/editor/layers/types/text/buttons/list-button/list-button.svelte +113 -0
  82. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/list-button/list-button.svelte.d.ts +2 -2
  83. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/strikethrough-button.svelte +10 -11
  84. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/strikethrough-button.svelte.d.ts +2 -2
  85. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/underline-button.svelte +10 -11
  86. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/underline-button.svelte.d.ts +2 -2
  87. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/utils.d.ts +2 -0
  88. package/dist/components/editor/layers/types/text/editor/utils.js +166 -0
  89. package/dist/components/editor/layers/types/text/extensions/list/index.d.ts +3 -0
  90. package/dist/components/editor/layers/types/text/extensions/list/index.js +3 -0
  91. package/dist/components/editor/layers/types/text/extensions/list/list.d.ts +67 -0
  92. package/dist/components/editor/layers/types/text/extensions/list/list.js +237 -0
  93. package/dist/components/editor/layers/types/text/extensions/list-item/index.d.ts +3 -0
  94. package/dist/components/editor/layers/types/text/extensions/list-item/index.js +3 -0
  95. package/dist/components/editor/layers/types/text/extensions/list-item/list-item.d.ts +13 -0
  96. package/dist/components/editor/layers/types/text/extensions/list-item/list-item.js +262 -0
  97. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/index.d.ts +3 -0
  98. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/index.js +3 -0
  99. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/list-item-paragraph.d.ts +14 -0
  100. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/list-item-paragraph.js +27 -0
  101. package/dist/components/editor/layers/types/text/extensions/paragraph/index.d.ts +3 -0
  102. package/dist/components/editor/layers/types/text/extensions/paragraph/index.js +3 -0
  103. package/dist/components/editor/layers/types/text/extensions/paragraph/paragraph.d.ts +6 -0
  104. package/dist/components/editor/layers/types/text/extensions/paragraph/paragraph.js +28 -0
  105. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/index.d.ts +3 -0
  106. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/index.js +3 -0
  107. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/preserve-formatting-on-clear.d.ts +2 -0
  108. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/preserve-formatting-on-clear.js +74 -0
  109. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/text-transform.js +1 -4
  110. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions.js +13 -23
  111. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/html-content.svelte +0 -9
  112. package/dist/components/editor/layers/types/text/index.d.ts +5 -0
  113. package/dist/components/editor/layers/types/text/index.js +5 -0
  114. package/dist/components/{presentation-editor/layers/types/html/html-layer-content.svelte → editor/layers/types/text/text-layer-content.svelte} +2 -2
  115. package/dist/components/editor/layers/types/text/text-layer-content.svelte.d.ts +9 -0
  116. package/dist/components/editor/layers/types/text/text-layer-edit.svelte +114 -0
  117. package/dist/components/editor/layers/types/text/text-layer-edit.svelte.d.ts +9 -0
  118. package/dist/components/editor/layers/types/text/text-layer.svelte +125 -0
  119. package/dist/components/editor/layers/types/text/text-layer.svelte.d.ts +7 -0
  120. package/dist/components/{presentation-editor → editor}/layers/utils.d.ts +32 -24
  121. package/dist/components/{presentation-editor → editor}/layers/utils.js +152 -102
  122. package/dist/components/{presentation-editor → editor}/menu/background-menu-content.svelte +24 -24
  123. package/dist/components/{presentation-editor → editor}/menu/background-menu-content.svelte.d.ts +4 -4
  124. package/dist/components/{presentation-editor → editor}/menu/layer-menu-content.svelte +62 -38
  125. package/dist/components/{presentation-editor/menu/slide-menu-content.svelte → editor/menu/page-menu-content.svelte} +19 -19
  126. package/dist/components/editor/menu/page-menu-content.svelte.d.ts +9 -0
  127. package/dist/components/{presentation-editor/slide-editor.svelte → editor/page-editor.svelte} +30 -25
  128. package/dist/components/editor/page-editor.svelte.d.ts +7 -0
  129. package/dist/components/{presentation-editor/slide-inner.svelte → editor/page-inner.svelte} +5 -5
  130. package/dist/components/{presentation-editor/sidebar/sidebar.svelte.d.ts → editor/page-inner.svelte.d.ts} +3 -3
  131. package/dist/components/editor/page.svelte +69 -0
  132. package/dist/components/editor/page.svelte.d.ts +4 -0
  133. package/dist/components/editor/pages-navigation/page-preview.svelte +36 -0
  134. package/dist/components/editor/pages-navigation/page-preview.svelte.d.ts +8 -0
  135. package/dist/components/{presentation-editor/slides-navigation/slide-preview.svelte → editor/pages-navigation/pages-navigation-item.svelte} +21 -41
  136. package/dist/components/editor/pages-navigation/pages-navigation-item.svelte.d.ts +11 -0
  137. package/dist/components/{presentation-editor/slides-navigation/slides-navigation.svelte → editor/pages-navigation/pages-navigation.svelte} +26 -21
  138. package/dist/components/editor/pages-navigation/pages-navigation.svelte.d.ts +7 -0
  139. package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-color.svelte +1 -1
  140. package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-gradient-picker.svelte +2 -2
  141. package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar.svelte +92 -89
  142. package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar-button.svelte +3 -3
  143. package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar.svelte +34 -39
  144. package/dist/components/editor/sidebar/image-crop-sidebar.svelte +112 -0
  145. package/dist/components/editor/sidebar/image-crop-sidebar.svelte.d.ts +7 -0
  146. package/dist/components/{presentation-editor/sidebar/position-slidebar.svelte → editor/sidebar/position-sidebar.svelte} +26 -20
  147. package/dist/components/editor/sidebar/position-sidebar.svelte.d.ts +3 -0
  148. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab-button.svelte +5 -5
  149. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab.svelte +5 -5
  150. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-uploads-tab.svelte +4 -4
  151. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-wrapper.svelte +6 -4
  152. package/dist/components/{presentation-editor → editor}/sidebar/sidebar.svelte +17 -10
  153. package/dist/components/editor/sidebar/sidebar.svelte.d.ts +7 -0
  154. package/dist/components/{presentation-editor → editor}/sidebar/uploads-image.svelte +3 -3
  155. package/dist/components/editor/types.d.ts +283 -0
  156. package/dist/components/{presentation-editor → editor}/utils.d.ts +14 -6
  157. package/dist/components/{presentation-editor → editor}/utils.js +98 -63
  158. package/dist/components/ui/color-picker/color-picker.svelte +2 -2
  159. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +2 -2
  160. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +1 -1
  161. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +1 -1
  162. package/dist/components/ui/dialog/dialog-content.svelte +3 -3
  163. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +3 -3
  164. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +2 -2
  165. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +1 -1
  166. package/dist/components/ui/dropdown-menu/index.d.ts +1 -0
  167. package/dist/components/ui/slider/slider.svelte +28 -20
  168. package/dist/index.d.ts +12 -6
  169. package/dist/index.js +5 -3
  170. package/package.json +42 -38
  171. package/dist/components/presentation-editor/active-layers-buttons.svelte +0 -53
  172. package/dist/components/presentation-editor/active-layers.svelte +0 -181
  173. package/dist/components/presentation-editor/active-layers.svelte.d.ts +0 -3
  174. package/dist/components/presentation-editor/cursor-tooltip.svelte.d.ts +0 -18
  175. package/dist/components/presentation-editor/dragged.svelte.d.ts +0 -18
  176. package/dist/components/presentation-editor/header.svelte +0 -54
  177. package/dist/components/presentation-editor/header.svelte.d.ts +0 -18
  178. package/dist/components/presentation-editor/index.d.ts +0 -2
  179. package/dist/components/presentation-editor/index.js +0 -2
  180. package/dist/components/presentation-editor/layers/controls/group-resize-control/group-resize-control.svelte +0 -337
  181. package/dist/components/presentation-editor/layers/controls/rotate-control/rotate-control.svelte.d.ts +0 -3
  182. package/dist/components/presentation-editor/layers/index.d.ts +0 -9
  183. package/dist/components/presentation-editor/layers/types/background/background-content-image.svelte +0 -41
  184. package/dist/components/presentation-editor/layers/types/background/background-layer-content.svelte +0 -19
  185. package/dist/components/presentation-editor/layers/types/html/buttons/bold-button/bold-button.svelte +0 -71
  186. package/dist/components/presentation-editor/layers/types/html/buttons/italic-button/italic-button.svelte +0 -71
  187. package/dist/components/presentation-editor/layers/types/html/buttons/list-button/list-button.svelte +0 -90
  188. package/dist/components/presentation-editor/layers/types/html/editor/utils.js +0 -88
  189. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/index.d.ts +0 -3
  190. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/index.js +0 -3
  191. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/unstyled-list.d.ts +0 -47
  192. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/unstyled-list.js +0 -74
  193. package/dist/components/presentation-editor/layers/types/html/html-layer-content.svelte.d.ts +0 -9
  194. package/dist/components/presentation-editor/layers/types/html/html-layer-edit.svelte +0 -103
  195. package/dist/components/presentation-editor/layers/types/html/html-layer-edit.svelte.d.ts +0 -8
  196. package/dist/components/presentation-editor/layers/types/html/html-layer.svelte +0 -105
  197. package/dist/components/presentation-editor/layers/types/html/html-layer.svelte.d.ts +0 -7
  198. package/dist/components/presentation-editor/layers/types/html/index.d.ts +0 -5
  199. package/dist/components/presentation-editor/layers/types/html/index.js +0 -5
  200. package/dist/components/presentation-editor/layers/types/image/index.d.ts +0 -3
  201. package/dist/components/presentation-editor/layers/types/image/index.js +0 -3
  202. package/dist/components/presentation-editor/menu/slide-menu-content.svelte.d.ts +0 -9
  203. package/dist/components/presentation-editor/presentation-editor.svelte.d.ts +0 -4
  204. package/dist/components/presentation-editor/presentation-editor.svelte.js +0 -813
  205. package/dist/components/presentation-editor/sidebar/position-slidebar.svelte.d.ts +0 -18
  206. package/dist/components/presentation-editor/slide-editor.svelte.d.ts +0 -7
  207. package/dist/components/presentation-editor/slide-inner.svelte.d.ts +0 -18
  208. package/dist/components/presentation-editor/slides-navigation/slide-preview.svelte.d.ts +0 -11
  209. package/dist/components/presentation-editor/slides-navigation/slides-navigation.svelte.d.ts +0 -3
  210. package/dist/components/presentation-editor/types.d.ts +0 -158
  211. /package/dist/components/{presentation-editor → editor}/active-layers-buttons.svelte.d.ts +0 -0
  212. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient-def.svelte +0 -0
  213. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient-def.svelte.d.ts +0 -0
  214. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient.svelte +0 -0
  215. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient.svelte.d.ts +0 -0
  216. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator.svelte +0 -0
  217. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator.svelte.d.ts +0 -0
  218. /package/dist/components/{presentation-editor → editor}/color-indicator/index.d.ts +0 -0
  219. /package/dist/components/{presentation-editor → editor}/color-indicator/index.js +0 -0
  220. /package/dist/components/{presentation-editor → editor}/fonts.d.ts +0 -0
  221. /package/dist/components/{presentation-editor → editor}/fonts.js +0 -0
  222. /package/dist/components/{presentation-editor → editor}/hotkeys.svelte.d.ts +0 -0
  223. /package/dist/components/{presentation-editor → editor}/layers/active-background-border.svelte.d.ts +0 -0
  224. /package/dist/components/{presentation-editor → editor}/layers/active-layer-border.svelte.d.ts +0 -0
  225. /package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/border-button.svelte.d.ts +0 -0
  226. /package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/index.d.ts +0 -0
  227. /package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/index.js +0 -0
  228. /package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/corner-radius-button.svelte.d.ts +0 -0
  229. /package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/index.d.ts +0 -0
  230. /package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/index.js +0 -0
  231. /package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/flip-button.svelte.d.ts +0 -0
  232. /package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/index.d.ts +0 -0
  233. /package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/index.js +0 -0
  234. /package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/index.d.ts +0 -0
  235. /package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/index.js +0 -0
  236. /package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/opacity-button.svelte.d.ts +0 -0
  237. /package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/corner-scale-control.svelte.d.ts +0 -0
  238. /package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/index.d.ts +0 -0
  239. /package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/index.js +0 -0
  240. /package/dist/components/{presentation-editor → editor}/layers/controls/group-resize-control/group-resize-control.svelte.d.ts +0 -0
  241. /package/dist/components/{presentation-editor → editor}/layers/controls/group-resize-control/index.d.ts +0 -0
  242. /package/dist/components/{presentation-editor → editor}/layers/controls/group-resize-control/index.js +0 -0
  243. /package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/index.d.ts +0 -0
  244. /package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/index.js +0 -0
  245. /package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/index.d.ts +0 -0
  246. /package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/index.js +0 -0
  247. /package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/side-resize-control.svelte.d.ts +0 -0
  248. /package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/index.d.ts +0 -0
  249. /package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/index.js +0 -0
  250. /package/dist/components/{presentation-editor → editor}/layers/layer-button.svelte.d.ts +0 -0
  251. /package/dist/components/{presentation-editor → editor}/layers/layer-thumb-wrapper.svelte.d.ts +0 -0
  252. /package/dist/components/{presentation-editor → editor}/layers/layer-wrapper.svelte.d.ts +0 -0
  253. /package/dist/components/{presentation-editor → editor}/layers/types/background/background-content-image.svelte.d.ts +0 -0
  254. /package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer-buttons.svelte.d.ts +0 -0
  255. /package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer.svelte.d.ts +0 -0
  256. /package/dist/components/{presentation-editor → editor}/layers/types/background/index.d.ts +0 -0
  257. /package/dist/components/{presentation-editor → editor}/layers/types/background/index.js +0 -0
  258. /package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-active.svelte.d.ts +0 -0
  259. /package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-content.svelte.d.ts +0 -0
  260. /package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer.svelte.d.ts +0 -0
  261. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/index.d.ts +0 -0
  262. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/index.js +0 -0
  263. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/bold-button/index.d.ts +0 -0
  264. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/bold-button/index.js +0 -0
  265. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/index.d.ts +0 -0
  266. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/index.js +0 -0
  267. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/index.d.ts +0 -0
  268. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/index.js +0 -0
  269. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/index.d.ts +0 -0
  270. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/index.js +0 -0
  271. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/index.d.ts +0 -0
  272. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/index.js +0 -0
  273. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/italic-button/index.d.ts +0 -0
  274. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/italic-button/index.js +0 -0
  275. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/list-button/index.d.ts +0 -0
  276. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/list-button/index.js +0 -0
  277. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/index.d.ts +0 -0
  278. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/index.js +0 -0
  279. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/index.d.ts +0 -0
  280. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/index.js +0 -0
  281. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/Editor.d.ts +0 -0
  282. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/Editor.js +0 -0
  283. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/createEditor.d.ts +0 -0
  284. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/createEditor.js +0 -0
  285. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/editor-content.svelte +0 -0
  286. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/editor-content.svelte.d.ts +0 -0
  287. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/index.d.ts +0 -0
  288. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/index.js +0 -0
  289. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/types.d.ts +0 -0
  290. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/types.js +0 -0
  291. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor.css +0 -0
  292. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/font-family.d.ts +0 -0
  293. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/font-family.js +0 -0
  294. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/index.d.ts +0 -0
  295. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/index.js +0 -0
  296. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/font-size.d.ts +0 -0
  297. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/font-size.js +0 -0
  298. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/index.d.ts +0 -0
  299. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/index.js +0 -0
  300. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/index.d.ts +0 -0
  301. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/index.js +0 -0
  302. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/line-height.d.ts +0 -0
  303. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/line-height.js +0 -0
  304. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/index.d.ts +0 -0
  305. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/index.js +0 -0
  306. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/selection.d.ts +0 -0
  307. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/selection.js +0 -0
  308. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/index.d.ts +0 -0
  309. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/index.js +0 -0
  310. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/text-transform.d.ts +0 -0
  311. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions.d.ts +0 -0
  312. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/html-content.svelte.d.ts +0 -0
  313. /package/dist/components/{presentation-editor → editor}/menu/layer-menu-content.svelte.d.ts +0 -0
  314. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-color.svelte.d.ts +0 -0
  315. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-gradient-picker.svelte.d.ts +0 -0
  316. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar.svelte.d.ts +0 -0
  317. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/index.d.ts +0 -0
  318. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/index.js +0 -0
  319. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar-button.svelte.d.ts +0 -0
  320. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar.svelte.d.ts +0 -0
  321. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/index.d.ts +0 -0
  322. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/index.js +0 -0
  323. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab-button.svelte.d.ts +0 -0
  324. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab.svelte.d.ts +0 -0
  325. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-uploads-tab.svelte.d.ts +0 -0
  326. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-wrapper.svelte.d.ts +0 -0
  327. /package/dist/components/{presentation-editor → editor}/sidebar/uploads-image.svelte.d.ts +0 -0
  328. /package/dist/components/{presentation-editor → editor}/snapping-guides.svelte +0 -0
  329. /package/dist/components/{presentation-editor → editor}/snapping-guides.svelte.d.ts +0 -0
  330. /package/dist/components/{presentation-editor → editor}/types.js +0 -0
@@ -1,16 +1,18 @@
1
1
  <script lang="ts">
2
- import RotateIcon from 'lucide-svelte/icons/refresh-cw';
3
- import { getPresentationEditorContext } from '../../../presentation-editor.svelte.js';
4
- import {
5
- calculateGroupRotatedBoundingBox,
6
- calculateLayerTransform,
7
- type Transform,
8
- } from '../../utils.js';
2
+ import RotateIcon from '@lucide/svelte/icons/refresh-cw';
3
+ import { getEditorContext } from '../../../editor.svelte.js';
4
+ import { calculateGroupRotatedBoundingBox, type Transform } from '../../utils.js';
9
5
  import type { Layer } from '../../../types.js';
10
6
 
7
+ interface Props {
8
+ pageRef: HTMLDivElement;
9
+ }
10
+
11
+ const { pageRef }: Props = $props();
12
+
11
13
  const type = 'rotate';
12
14
 
13
- const editor = getPresentationEditorContext();
15
+ const editor = getEditorContext();
14
16
 
15
17
  let element: HTMLElement | null = $state(null);
16
18
 
@@ -46,13 +48,11 @@
46
48
  initial = {
47
49
  clientX: e.clientX,
48
50
  clientY: e.clientY,
49
- bbox:
51
+ bbox: $state.snapshot(
50
52
  editor.activeLayers.length === 1
51
- ? calculateLayerTransform(editor.activeLayers[0])
52
- : calculateGroupRotatedBoundingBox(
53
- editor.activeLayers.map(calculateLayerTransform),
54
- editor.activeGroupRotate,
55
- ),
53
+ ? editor.activeLayers[0]
54
+ : calculateGroupRotatedBoundingBox(editor.activeLayers, editor.activeGroupRotate),
55
+ ),
56
56
  layers: editor.activeLayers.map((layer) => ({ ...layer, state: layer })),
57
57
  };
58
58
  editor.activeAction = { id: actionId, type, cursor: 'cursor-grabbing' };
@@ -70,41 +70,40 @@
70
70
  editor.activeAction = null;
71
71
  if (!initial || currentRotate === initial.bbox.rotate) return;
72
72
 
73
- editor.historyPush({
74
- type: 'layersGroup',
75
- actions: initial.layers.map((layer) => {
73
+ editor.historyPush(
74
+ initial.layers.map((layer) => {
76
75
  if (editor.isLayerOutOfBounds(layer.state)) {
77
76
  return {
78
- type: 'layersRemove',
79
- slideId: editor.activeSlide.id,
80
- layers: [layer],
77
+ type: 'layerRemove',
78
+ pageId: editor.activePage.id,
79
+ layer,
81
80
  };
82
81
  } else {
83
82
  return {
84
- type: 'layer',
85
- slideId: editor.activeSlide.id,
83
+ type: 'layerUpdate',
84
+ pageId: editor.activePage.id,
86
85
  layer: { id: layer.id, type: layer.type },
87
86
  undo: { x: layer.x, y: layer.y, rotate: layer.rotate },
88
87
  redo: { x: layer.state.x, y: layer.state.y, rotate: layer.state.rotate },
89
88
  };
90
89
  }
91
90
  }),
92
- });
91
+ );
93
92
  };
94
93
 
95
94
  const onMouseMove = (e: MouseEvent) => {
96
95
  if (!initial || editor.activeAction?.id !== actionId || !element) return;
97
96
 
98
- const slideClientRect = element.closest('[data-slide-container]')?.getBoundingClientRect();
99
- if (!slideClientRect) return;
97
+ const pageRect = pageRef.getBoundingClientRect();
98
+ if (!pageRect) return;
100
99
 
101
- const { x: slideX, y: slideY } = slideClientRect;
100
+ const { x: pageX, y: pageY } = pageRect;
102
101
 
103
- const { width, height, x, y, rotate } = initial.bbox;
102
+ const { width, height, x, y, rotate, scale } = initial.bbox;
104
103
 
105
104
  // Calculate the center of the layer
106
- const clientX = slideX + x * editor.zoom + (width * editor.zoom) / 2;
107
- const clientY = slideY + y * editor.zoom + (height * editor.zoom) / 2;
105
+ const clientX = pageX + (x + (width * scale) / 2) * editor.zoom;
106
+ const clientY = pageY + (y + (height * scale) / 2) * editor.zoom;
108
107
 
109
108
  // Calculate the current angle based on the current mouse position relative to the center of the layer
110
109
  const currentAngle = Math.atan2(
@@ -134,10 +133,10 @@
134
133
  const centerY = y + height / 2;
135
134
 
136
135
  initial.layers.forEach((layer) => {
137
- const { width, height, x, y, rotate } = calculateLayerTransform(layer);
136
+ const { width, height, x, y, rotate, scale } = layer;
138
137
  // Find center of layerect
139
- const layerCenterX = x + width / 2;
140
- const layerCenterY = y + height / 2;
138
+ const layerCenterX = x + (width * scale) / 2;
139
+ const layerCenterY = y + (height * scale) / 2;
141
140
 
142
141
  // Translate to origin
143
142
  const dx = layerCenterX - centerX;
@@ -152,8 +151,8 @@
152
151
  const newCenterY = rotatedY + centerY;
153
152
 
154
153
  // Compute new top-left corner
155
- const newX = newCenterX - width / 2;
156
- const newY = newCenterY - height / 2;
154
+ const newX = newCenterX - (width * scale) / 2;
155
+ const newY = newCenterY - (height * scale) / 2;
157
156
 
158
157
  const newRotate = normalizeRotation(rotate + rotateDiff);
159
158
 
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ pageRef: HTMLDivElement;
3
+ }
4
+ declare const RotateControl: import("svelte").Component<Props, {}, "">;
5
+ type RotateControl = ReturnType<typeof RotateControl>;
6
+ export default RotateControl;
@@ -48,13 +48,13 @@
48
48
  </script>
49
49
 
50
50
  <script lang="ts">
51
- import { getPresentationEditorContext } from '../../../presentation-editor.svelte.js';
51
+ import { getEditorContext } from '../../../editor.svelte.js';
52
52
  import { cn } from '../../../../../utils.js';
53
53
  import { calculateNewPosition } from '../../utils.js';
54
54
 
55
55
  let { origin, layer = $bindable() }: Props = $props();
56
56
 
57
- const editor = getPresentationEditorContext();
57
+ const editor = getEditorContext();
58
58
 
59
59
  const { base, handler, grip, cursor } = sideResizeControlVariants({ origin });
60
60
 
@@ -94,14 +94,14 @@
94
94
 
95
95
  if (editor.isLayerOutOfBounds(layer)) {
96
96
  editor.historyPush({
97
- type: 'layersRemove',
98
- slideId: editor.activeSlide.id,
99
- layers: [initial.layer],
97
+ type: 'layerRemove',
98
+ pageId: editor.activePage.id,
99
+ layer: initial.layer,
100
100
  });
101
101
  } else {
102
102
  editor.historyPush({
103
- type: 'layer',
104
- slideId: editor.activeSlide.id,
103
+ type: 'layerUpdate',
104
+ pageId: editor.activePage.id,
105
105
  layer: { id: layer.id, type: layer.type },
106
106
  undo: {
107
107
  scale: initial.layer.scale,
@@ -130,11 +130,7 @@
130
130
  if (!initial || editor.activeAction?.id !== actionId) return;
131
131
 
132
132
  isChanged = true;
133
- const { width, height, x, y, flipX, flipY } = initial.layer;
134
- const scale = initial.layer.scale || 1;
135
- const rotate = initial.layer.rotate || 0;
136
- const offsetX = initial.layer.offsetX || 0;
137
- const offsetY = initial.layer.offsetY || 0;
133
+ const { width, height, x, y, scale, rotate, offsetX, offsetY, flipX, flipY } = initial.layer;
138
134
 
139
135
  const angle = (rotate * Math.PI) / 180;
140
136
  const xDiff = (e.clientX - initial.clientX) / editor.zoom;
@@ -150,13 +146,13 @@
150
146
  const snapping = 10;
151
147
  if ((origin === 'left' && !flipX) || (origin === 'right' && flipX)) {
152
148
  newWidth = Math.max(newWidth + adjustedXDiff, 10);
153
- const maxWidth = layer.image.width - offsetX;
149
+ const maxWidth = layer.image.width + offsetX;
154
150
  const maxWidthDiff = maxWidth * scale - newWidth;
155
151
  if (Math.abs(maxWidthDiff) < snapping) {
156
152
  newWidth = maxWidth * scale;
157
153
  } else if (maxWidthDiff < 0) {
158
154
  newScale = newWidth / maxWidth;
159
- newOffsetY += ((layer.image.height / 2 - offsetY) * (newScale - scale)) / newScale;
155
+ newOffsetY -= ((layer.image.height / 2 + offsetY) * (newScale - scale)) / newScale;
160
156
  }
161
157
  } else if ((origin === 'top' && !flipY) || (origin === 'bottom' && flipY)) {
162
158
  newHeight = Math.max(newHeight + adjustedYDiff, 10);
@@ -166,37 +162,37 @@
166
162
  newHeight = maxHeight * scale;
167
163
  } else if (maxHeightDiff < 0) {
168
164
  newScale = newHeight / maxHeight;
169
- newOffsetX += ((layer.image.width / 2 - offsetX) * (newScale - scale)) / newScale;
165
+ newOffsetX -= ((layer.image.width / 2 + offsetX) * (newScale - scale)) / newScale;
170
166
  }
171
167
  } else if ((origin === 'right' && !flipX) || (origin === 'left' && flipX)) {
172
168
  const adjustedDiff = Math.min(adjustedXDiff, newWidth - 10);
173
169
  newWidth -= adjustedDiff;
174
- newOffsetX += adjustedDiff / scale;
170
+ newOffsetX -= adjustedDiff / scale;
175
171
  if (Math.abs(newOffsetX * scale) < snapping) {
176
172
  newOffsetX = 0;
177
- newWidth = (width + offsetX) * scale;
178
- } else if (newOffsetX < 0) {
173
+ newWidth = (width - offsetX) * scale;
174
+ } else if (newOffsetX > 0) {
179
175
  newOffsetX = 0;
180
- newScale = newWidth / (width + offsetX);
181
- newOffsetY += ((layer.image.height / 2 - offsetY) * (newScale - scale)) / newScale;
176
+ newScale = newWidth / (width - offsetX);
177
+ newOffsetY -= ((layer.image.height / 2 + offsetY) * (newScale - scale)) / newScale;
182
178
  }
183
179
  } else if ((origin === 'bottom' && !flipY) || (origin === 'top' && flipY)) {
184
180
  const adjustedDiff = Math.min(adjustedYDiff, newHeight - 10);
185
181
  newHeight -= adjustedDiff;
186
- newOffsetY += adjustedDiff / scale;
182
+ newOffsetY -= adjustedDiff / scale;
187
183
  if (Math.abs(newOffsetY * scale) < snapping) {
188
184
  newOffsetY = 0;
189
- newHeight = (height + offsetY) * scale;
190
- } else if (newOffsetY < 0) {
185
+ newHeight = (height - offsetY) * scale;
186
+ } else if (newOffsetY > 0) {
191
187
  newOffsetY = 0;
192
- newScale = newHeight / (height + offsetY);
193
- newOffsetX += ((layer.image.width / 2 - offsetX) * (newScale - scale)) / newScale;
188
+ newScale = newHeight / (height - offsetY);
189
+ newOffsetX -= ((layer.image.width / 2 + offsetX) * (newScale - scale)) / newScale;
194
190
  }
195
191
  }
196
192
 
197
193
  const { newX, newY } = calculateNewPosition(
198
194
  origin,
199
- { x, y, width: width * scale, height: height * scale, rotate },
195
+ { x, y, width, height, rotate, scale },
200
196
  newWidth,
201
197
  newHeight,
202
198
  );
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" module>
2
2
  import { tv, type VariantProps } from 'tailwind-variants';
3
- import type { HtmlLayer } from '../../../types.js';
3
+ import type { TextLayer } from '../../../types.js';
4
4
 
5
5
  const sideScaleControlVariants = tv({
6
6
  slots: {
@@ -28,21 +28,21 @@
28
28
 
29
29
  export interface Props {
30
30
  origin: NonNullable<Origin>;
31
- layer: HtmlLayer;
31
+ layer: TextLayer;
32
32
  }
33
33
  </script>
34
34
 
35
35
  <script lang="ts">
36
36
  import { tick } from 'svelte';
37
- import { getPresentationEditorContext } from '../../../presentation-editor.svelte.js';
37
+ import { getEditorContext } from '../../../editor.svelte.js';
38
38
  import { cn } from '../../../../../utils.js';
39
39
  import { calculateNewPosition } from '../../utils.js';
40
40
 
41
41
  let { origin, layer = $bindable() }: Props = $props();
42
42
 
43
- const editor = getPresentationEditorContext();
43
+ const editor = getEditorContext();
44
44
 
45
- let initial: { clientX: number; clientY: number; layer: HtmlLayer } | null = null;
45
+ let initial: { clientX: number; clientY: number; layer: TextLayer } | null = null;
46
46
  let isChanged = false;
47
47
  const actionId = editor.generateId();
48
48
 
@@ -79,14 +79,14 @@
79
79
 
80
80
  if (editor.isLayerOutOfBounds(layer)) {
81
81
  editor.historyPush({
82
- type: 'layersRemove',
83
- slideId: editor.activeSlide.id,
84
- layers: [initial.layer],
82
+ type: 'layerRemove',
83
+ pageId: editor.activePage.id,
84
+ layer: initial.layer,
85
85
  });
86
86
  } else {
87
87
  editor.historyPush({
88
- type: 'layer',
89
- slideId: editor.activeSlide.id,
88
+ type: 'layerUpdate',
89
+ pageId: editor.activePage.id,
90
90
  layer: { id: layer.id, type: layer.type },
91
91
  undo: {
92
92
  x: initial.layer.x,
@@ -103,9 +103,7 @@
103
103
  const onMouseMove = async (e: MouseEvent) => {
104
104
  if (!initial || editor.activeAction?.id !== actionId) return;
105
105
 
106
- const { width, height, x, y } = initial.layer;
107
- const scale = initial.layer.scale || 1;
108
- const rotate = initial.layer.rotate || 0;
106
+ const { width, height, x, y, scale, rotate } = initial.layer;
109
107
 
110
108
  const angle = (rotate * Math.PI) / 180;
111
109
  const xDiff = (e.clientX - initial.clientX) / editor.zoom;
@@ -121,7 +119,7 @@
121
119
  newWidth = Math.max(newWidth, 10);
122
120
  isChanged = newWidth !== width * scale;
123
121
 
124
- layer.width = newWidth / scale;
122
+ Object.assign(layer, { width: newWidth / scale });
125
123
  await tick();
126
124
 
127
125
  const layerContent = document.getElementById(`layer-content-${layer.id}`);
@@ -130,7 +128,7 @@
130
128
 
131
129
  const { newX, newY } = calculateNewPosition(
132
130
  `top-${origin}`,
133
- { x, y, width: width * scale, height: height * scale, rotate },
131
+ { x, y, width, height, rotate, scale },
134
132
  newWidth,
135
133
  newHeight,
136
134
  );
@@ -1,5 +1,5 @@
1
1
  import { type VariantProps } from 'tailwind-variants';
2
- import type { HtmlLayer } from '../../../types.js';
2
+ import type { TextLayer } from '../../../types.js';
3
3
  declare const sideScaleControlVariants: import("tailwind-variants").TVReturnType<{
4
4
  origin: {
5
5
  right: {
@@ -55,7 +55,7 @@ declare const sideScaleControlVariants: import("tailwind-variants").TVReturnType
55
55
  type Origin = VariantProps<typeof sideScaleControlVariants>['origin'];
56
56
  export interface Props {
57
57
  origin: NonNullable<Origin>;
58
- layer: HtmlLayer;
58
+ layer: TextLayer;
59
59
  }
60
60
  declare const SideScaleControl: import("svelte").Component<Props, {}, "layer">;
61
61
  type SideScaleControl = ReturnType<typeof SideScaleControl>;
@@ -0,0 +1,10 @@
1
+ import LayerButton from './layer-button.svelte';
2
+ import LayerThumbWrapper from './layer-thumb-wrapper.svelte';
3
+ import LayerWrapper from './layer-wrapper.svelte';
4
+ import ActiveBackgroundBorder from './active-background-border.svelte';
5
+ import ActiveLayerBorder from './active-layer-border.svelte';
6
+ import { BackgroundLayer, BackgroundLayerContent, BackgroundLayerButtons } from './types/background/index.js';
7
+ import { TextLayer, TextLayerContent, HtmlContent, TextLayerEdit } from './types/text/index.js';
8
+ import { ImageLayer, ImageLayerContent, ImageLayerCrop } from './types/image/index.js';
9
+ import { GroupLayer, GroupLayerContent } from './types/group/index.js';
10
+ export { LayerButton, LayerThumbWrapper, LayerWrapper, BackgroundLayer, BackgroundLayerContent, BackgroundLayerButtons, TextLayer, TextLayerContent, HtmlContent, TextLayerEdit, ImageLayer, ImageLayerContent, ImageLayerCrop, GroupLayer, GroupLayerContent, ActiveBackgroundBorder, ActiveLayerBorder, };
@@ -4,8 +4,9 @@ import LayerWrapper from './layer-wrapper.svelte';
4
4
  import ActiveBackgroundBorder from './active-background-border.svelte';
5
5
  import ActiveLayerBorder from './active-layer-border.svelte';
6
6
  import { BackgroundLayer, BackgroundLayerContent, BackgroundLayerButtons, } from './types/background/index.js';
7
- import { HtmlLayer, HtmlLayerContent, HtmlContent, HtmlLayerEdit } from './types/html/index.js';
8
- import { ImageLayer, ImageLayerContent } from './types/image/index.js';
7
+ import { TextLayer, TextLayerContent, HtmlContent, TextLayerEdit } from './types/text/index.js';
8
+ import { ImageLayer, ImageLayerContent, ImageLayerCrop } from './types/image/index.js';
9
+ import { GroupLayer, GroupLayerContent } from './types/group/index.js';
9
10
  export {
10
11
  // layer buttons
11
12
  LayerButton, LayerThumbWrapper,
@@ -13,9 +14,11 @@ LayerButton, LayerThumbWrapper,
13
14
  LayerWrapper,
14
15
  // background layer
15
16
  BackgroundLayer, BackgroundLayerContent, BackgroundLayerButtons,
16
- // html layer
17
- HtmlLayer, HtmlLayerContent, HtmlContent, HtmlLayerEdit,
17
+ // text layer
18
+ TextLayer, TextLayerContent, HtmlContent, TextLayerEdit,
18
19
  //image layer
19
- ImageLayer, ImageLayerContent,
20
+ ImageLayer, ImageLayerContent, ImageLayerCrop,
21
+ // group layer
22
+ GroupLayer, GroupLayerContent,
20
23
  // layers state
21
24
  ActiveBackgroundBorder, ActiveLayerBorder, };
@@ -1,9 +1,10 @@
1
1
  <script lang="ts">
2
- import GripVerticalIcon from 'lucide-svelte/icons/grip-vertical';
3
- import LockedIcon from 'lucide-svelte/icons/lock-keyhole';
2
+ import GripVerticalIcon from '@lucide/svelte/icons/grip-vertical';
3
+ import LockedIcon from '@lucide/svelte/icons/lock-keyhole';
4
+ import GroupIcon from '@lucide/svelte/icons/group';
4
5
  import { cn } from '../../../utils.js';
5
6
  import type { Layer } from '../types.js';
6
- import { getPresentationEditorContext } from '../presentation-editor.svelte.js';
7
+ import { getEditorContext } from '../editor.svelte.js';
7
8
 
8
9
  interface Props {
9
10
  layer?: Layer;
@@ -12,12 +13,13 @@
12
13
 
13
14
  let { layer, children }: Props = $props();
14
15
 
15
- const editor = getPresentationEditorContext();
16
+ const editor = getEditorContext();
16
17
 
17
18
  const onclick = (e: MouseEvent) => {
18
19
  if (layer) {
19
20
  if (e.metaKey) {
20
- editor.setActiveLayers(layer.id, editor.activeLayerIds.has(layer.id) ? 'delete' : 'add');
21
+ const action = editor.activeLayers.find((l) => l.id === layer.id) ? 'delete' : 'add';
22
+ editor.setActiveLayers(layer.id, action);
21
23
  } else {
22
24
  editor.setActiveLayers(layer.id);
23
25
  }
@@ -33,13 +35,15 @@
33
35
  class={cn(
34
36
  'bg-muted flex w-full items-center justify-between rounded-md border-2 border-transparent p-2 outline-none',
35
37
  {
36
- 'border-blue-500': layer ? editor.activeLayerIds.has(layer.id) : editor.activeBackground,
38
+ 'border-blue-500': layer
39
+ ? editor.activeLayers.find((l) => l.id === layer.id)
40
+ : editor.activeSelection.type === 'background',
37
41
  },
38
42
  )}
39
43
  >
40
44
  <div class="h-6 w-6">
41
45
  {#if layer}
42
- {#if !editor.activeSlide.locked && !layer.locked}
46
+ {#if !editor.activePage.locked && !layer.locked}
43
47
  <GripVerticalIcon class="size-6" />
44
48
  {/if}
45
49
  {/if}
@@ -48,8 +52,10 @@
48
52
  {@render children?.()}
49
53
  </div>
50
54
  <div class="h-6 w-6">
51
- {#if editor.activeSlide.locked || (layer ? layer.locked : editor.activeSlide.backgroundLocked)}
55
+ {#if editor.activePage.locked || (layer ? layer.locked : editor.activePage.backgroundLocked)}
52
56
  <LockedIcon class="size-6" />
57
+ {:else if layer?.type === 'group'}
58
+ <GroupIcon class="size-6" />
53
59
  {/if}
54
60
  </div>
55
61
  </button>
@@ -16,21 +16,20 @@
16
16
  const cos = Math.abs(Math.cos(radians));
17
17
  const sin = Math.abs(Math.sin(radians));
18
18
 
19
- const width = layer.width * scale * cos + layer.height * scale * sin;
20
- const height = layer.width * scale * sin + layer.height * scale * cos;
19
+ const width = layer.width * layer.scale * cos + layer.height * layer.scale * sin;
20
+ const height = layer.width * layer.scale * sin + layer.height * layer.scale * cos;
21
21
 
22
22
  return Math.min(thumb.width / width, thumb.height / height);
23
23
  };
24
24
 
25
- let scale = $derived(layer.scale || 1);
26
25
  let thumbScale = $derived(typeof thumb === 'object' ? getThumbScale(layer, thumb) : thumb);
27
26
  </script>
28
27
 
29
28
  <div
30
29
  class="pointer-events-none absolute"
31
- style:width="{layer.width * scale * thumbScale}px"
32
- style:height="{layer.height * scale * thumbScale}px"
33
- style:transform={`${typeof thumb !== 'object' ? `translate(${layer.x * thumbScale}px, ${layer.y * thumbScale}px)` : ''} rotate(${layer.rotate || 0}deg)`}
30
+ style:width="{layer.width * layer.scale * thumbScale}px"
31
+ style:height="{layer.height * layer.scale * thumbScale}px"
32
+ style:transform={`${typeof thumb !== 'object' ? `translate(${layer.x * thumbScale}px, ${layer.y * thumbScale}px)` : ''} rotate(${layer.rotate}deg)`}
34
33
  >
35
34
  {@render children?.({ thumbScale })}
36
35
  </div>