@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,12 +1,12 @@
1
1
  <script lang="ts">
2
- import PlusIcon from 'lucide-svelte/icons/plus';
3
- // import PaletteIcon from 'lucide-svelte/icons/palette';
2
+ import PlusIcon from '@lucide/svelte/icons/plus';
3
+ // import PaletteIcon from '@lucide/svelte/icons/palette';
4
4
  import { ColorPicker } from '../../../ui/color-picker/index.js';
5
5
  import * as Popover from '../../../ui/popover/index.js';
6
6
  import * as Tabs from '../../../ui/tabs/index.js';
7
7
  import { cn, createDebouncedCallback } from '../../../../utils.js';
8
- import { getPresentationEditorContext } from '../../presentation-editor.svelte.js';
9
- import type { HistoryAction, Gradient, ImageLayer, HtmlLayer } from '../../types.js';
8
+ import { getEditorContext } from '../../editor.svelte.js';
9
+ import type { HistoryAction, Gradient, ImageLayer, TextLayer, Layer, Page } from '../../types.js';
10
10
  import SidebarWrapper from '../sidebar-wrapper.svelte';
11
11
  import ColorSidebarGradientPicker from './color-sidebar-gradient-picker.svelte';
12
12
  import ColorSidebarColor from './color-sidebar-color.svelte';
@@ -15,12 +15,12 @@
15
15
  createEditorNotReactive,
16
16
  extractNodeColors,
17
17
  extractSelectionColors,
18
- } from '../../layers/types/html/editor/utils.js';
18
+ } from '../../layers/types/text/editor/utils.js';
19
19
  import { extractBorderColors } from '../../layers/utils.js';
20
20
 
21
21
  let open = $state(false);
22
22
 
23
- const editor = getPresentationEditorContext();
23
+ const editor = getEditorContext();
24
24
 
25
25
  const { htmlEditor } = editor;
26
26
 
@@ -83,17 +83,26 @@
83
83
 
84
84
  const currentColor = $derived.by(() => {
85
85
  if (editor.activeSidebarPopup === 'backgroundColor') {
86
- return editor.activeSlide.backgroundColor;
86
+ return editor.activePage.backgroundColor;
87
87
  } else if (editor.activeSidebarPopup === 'textColor') {
88
- if ($htmlEditor) {
88
+ if (editor.activeAction?.type === 'edit') {
89
89
  const colors = extractSelectionColors($htmlEditor);
90
+ return colors.length === 1
91
+ ? colors[0]
92
+ : $htmlEditor.getAttributes('textStyle').color || defaultColor;
93
+ } else {
94
+ const set = new Set<string>();
95
+ editor.selectedSimpleLayersNotLocked
96
+ .filter((layer) => layer.type === 'text')
97
+ .forEach((layer) => extractNodeColors(layer.html, set));
98
+ const colors = Array.from(set);
90
99
  if (colors.length === 1) {
91
- return $htmlEditor.getAttributes('textStyle').color || defaultColor;
100
+ return colors[0];
92
101
  }
93
102
  }
94
103
  } else if (editor.activeSidebarPopup === 'borderColor') {
95
104
  const borderColors = extractBorderColors(
96
- editor.activeLayers.filter((layer) => layer.type === 'image'),
105
+ editor.selectedSimpleLayersNotLocked.filter((layer) => layer.type === 'image'),
97
106
  );
98
107
  if (!borderColors) {
99
108
  return defaultColor;
@@ -106,19 +115,21 @@
106
115
  const documentColors = $derived.by(() => {
107
116
  const colorSet = new Set<string>();
108
117
 
109
- editor.slides.forEach((slide) => {
110
- if (slide.backgroundColor) {
111
- colorSet.add(slide.backgroundColor);
112
- }
113
- slide.layers.forEach((layer) => {
114
- if (layer.type === 'html') {
115
- extractNodeColors(layer.html, colorSet);
116
- } else if (layer.type === 'image') {
117
- if (layer.borderWidth && layer.borderColor) {
118
- colorSet.add(layer.borderColor);
119
- }
118
+ const extractLayerColors = (layer: Layer) => {
119
+ if (layer.type === 'text') {
120
+ extractNodeColors(layer.html, colorSet);
121
+ } else if (layer.type === 'image') {
122
+ if (layer.borderWidth && layer.borderColor) {
123
+ colorSet.add(layer.borderColor);
120
124
  }
121
- });
125
+ }
126
+ };
127
+
128
+ editor.pages.forEach((page) => {
129
+ if (page.backgroundColor) {
130
+ colorSet.add(page.backgroundColor);
131
+ }
132
+ page.layers.forEach((layer) => extractLayerColors(layer));
122
133
  });
123
134
 
124
135
  let colorsArray = Array.from(colorSet);
@@ -136,7 +147,7 @@
136
147
 
137
148
  let undo: object | null = null;
138
149
  let initialBorderColor: (ImageLayer & { state: ImageLayer })[] | null = null;
139
- let initialTextColor: (HtmlLayer & { state: HtmlLayer })[] | null = null;
150
+ let initialTextColor: (TextLayer & { state: TextLayer })[] | null = null;
140
151
 
141
152
  const editorNotReactive = createEditorNotReactive();
142
153
 
@@ -149,11 +160,16 @@
149
160
 
150
161
  if (editor.activeSidebarPopup === 'backgroundColor') {
151
162
  if (!undo) {
152
- undo = { backgroundColor: editor.activeSlide.backgroundColor };
163
+ undo = { backgroundColor: editor.activePage.backgroundColor };
153
164
  }
154
165
  const redo = { backgroundColor: value };
155
- Object.assign(editor.activeSlide, redo);
156
- const action: HistoryAction = { type: 'slide', slideId: editor.activeSlide.id, undo, redo };
166
+ Object.assign(editor.activePage, redo);
167
+ const action: HistoryAction = {
168
+ type: 'pageUpdate',
169
+ pageId: editor.activePage.id,
170
+ undo,
171
+ redo,
172
+ };
157
173
  if (debounce) {
158
174
  debouncedUpdates(action);
159
175
  } else {
@@ -169,103 +185,90 @@
169
185
  }
170
186
  } else {
171
187
  if (!initialTextColor) {
172
- initialTextColor = editor.activeLayers
173
- .filter((layer) => layer.type === 'html')
188
+ initialTextColor = editor.selectedSimpleLayersNotLocked
189
+ .filter((layer) => layer.type === 'text')
174
190
  .map((layer) => ({ ...layer, state: layer }));
175
191
  }
176
- const action: HistoryAction = {
177
- type: 'layersGroup',
178
- actions: initialTextColor.map((layerWithState) => {
179
- const { state, ...layer } = layerWithState;
180
-
181
- let chain = editorNotReactive.chain().setContent(layer.html).selectAll();
182
- if (value === defaultColor) {
183
- chain = chain.unsetColor();
184
- } else {
185
- chain = chain.setColor(value);
186
- }
187
- chain.run();
188
-
189
- const undo = { html: layer.html };
190
- const redo = { html: editorNotReactive.getJSON() };
191
- Object.assign(state, redo);
192
-
193
- return {
194
- type: 'layer',
195
- slideId: editor.activeSlide.id,
196
- layer: { id: layer.id, type: layer.type },
197
- undo,
198
- redo,
199
- };
200
- }),
201
- };
192
+ const actions: HistoryAction[] = initialTextColor.map((layerWithState) => {
193
+ const { state, ...layer } = layerWithState;
194
+
195
+ let chain = editorNotReactive.chain().setContent(layer.html).selectAll();
196
+ if (value === defaultColor) {
197
+ chain = chain.unsetColor();
198
+ } else {
199
+ chain = chain.setColor(value);
200
+ }
201
+ chain.run();
202
+
203
+ const undo = { html: layer.html };
204
+ const redo = { html: editorNotReactive.getJSON() };
205
+ Object.assign(state, redo);
206
+
207
+ return {
208
+ type: 'layerUpdate',
209
+ pageId: editor.activePage.id,
210
+ layer: { id: layer.id, type: layer.type },
211
+ undo,
212
+ redo,
213
+ };
214
+ });
202
215
  if (debounce) {
203
- debouncedUpdates(action);
216
+ debouncedUpdates(actions);
204
217
  } else {
205
- editor.historyPush(action);
218
+ editor.historyPush(actions);
206
219
  initialTextColor = null;
207
220
  }
208
221
  }
209
- if ($htmlEditor) {
210
- if (value === defaultColor) {
211
- $htmlEditor.chain().focus().unsetColor().run();
212
- } else {
213
- $htmlEditor.chain().focus().setColor(value).run();
214
- }
215
- }
216
222
  } else if (editor.activeSidebarPopup === 'borderColor') {
217
223
  if (!initialBorderColor) {
218
- initialBorderColor = editor.activeLayers
224
+ initialBorderColor = editor.selectedSimpleLayersNotLocked
219
225
  .filter((layer) => layer.type === 'image')
220
226
  .filter((layer) => layer.borderWidth)
221
227
  .map((layer) => ({ ...layer, state: layer }));
222
228
  }
223
- const action: HistoryAction = {
224
- type: 'layersGroup',
225
- actions: initialBorderColor.map((layerWithState) => {
226
- const { state, ...layer } = layerWithState;
229
+ const actions: HistoryAction[] = initialBorderColor.map((layerWithState) => {
230
+ const { state, ...layer } = layerWithState;
227
231
 
228
- const undo = { borderColor: layer.borderColor };
229
- const redo = { borderColor: value };
232
+ const undo = { borderColor: layer.borderColor };
233
+ const redo = { borderColor: value };
230
234
 
231
- Object.assign(state, redo);
235
+ Object.assign(state, redo);
232
236
 
233
- return {
234
- type: 'layer',
235
- slideId: editor.activeSlide.id,
236
- layer: { id: layer.id, type: layer.type },
237
- undo,
238
- redo,
239
- };
240
- }),
241
- };
237
+ return {
238
+ type: 'layerUpdate',
239
+ pageId: editor.activePage.id,
240
+ layer: { id: layer.id, type: layer.type },
241
+ undo,
242
+ redo,
243
+ };
244
+ });
242
245
  if (debounce) {
243
- debouncedUpdates(action);
246
+ debouncedUpdates(actions);
244
247
  } else {
245
- editor.historyPush(action);
248
+ editor.historyPush(actions);
246
249
  initialBorderColor = null;
247
250
  }
248
251
  }
249
252
  };
250
253
 
251
- const debouncedUpdates = createDebouncedCallback((action) => {
252
- console.log('debouncedUpdates', action);
253
- editor.historyPush(action);
254
+ const debouncedUpdates = createDebouncedCallback((actions) => {
255
+ console.log('debouncedUpdates', actions);
256
+ editor.historyPush(actions);
254
257
  undo = null;
255
258
  }, 750);
256
259
 
257
260
  $effect(() => {
258
- const { activeLayers, activeBackground } = editor;
261
+ const { selectedSimpleLayersNotLocked } = editor;
259
262
  if (editor.activeSidebarPopup === 'backgroundColor') {
260
- if (!activeBackground) {
263
+ if (editor.activeSelection.type !== 'background') {
261
264
  editor.activeSidebarPopup = null;
262
265
  }
263
266
  } else if (editor.activeSidebarPopup === 'borderColor') {
264
- if (!activeLayers.some((layer) => layer.type === 'image' && layer.borderWidth)) {
267
+ if (!selectedSimpleLayersNotLocked.some((layer) => layer.type === 'image')) {
265
268
  editor.activeSidebarPopup = null;
266
269
  }
267
270
  } else if (editor.activeSidebarPopup === 'textColor') {
268
- if (!activeLayers.some((layer) => layer.type === 'html')) {
271
+ if (!selectedSimpleLayersNotLocked.some((layer) => layer.type === 'text')) {
269
272
  editor.activeSidebarPopup = null;
270
273
  }
271
274
  }
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import CheckIcon from 'lucide-svelte/icons/check';
3
- import { getPresentationEditorContext } from '../../presentation-editor.svelte.js';
2
+ import CheckIcon from '@lucide/svelte/icons/check';
3
+ import { getEditorContext } from '../../editor.svelte.js';
4
4
  import { onMount } from 'svelte';
5
5
  import { Button, type ButtonProps } from '../../../ui/button/index.js';
6
6
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  let { family, active, ...restProps }: Props = $props();
13
13
 
14
- const editor = getPresentationEditorContext();
14
+ const editor = getEditorContext();
15
15
 
16
16
  onMount(() => {
17
17
  editor.loadFont(family);
@@ -1,25 +1,23 @@
1
1
  <script lang="ts">
2
- import { tick } from 'svelte';
3
- import SearchIcon from 'lucide-svelte/icons/search';
4
- import BackIcon from 'lucide-svelte/icons/arrow-left';
5
- import DocumentIcon from 'lucide-svelte/icons/file-text';
6
- import PopularIcon from 'lucide-svelte/icons/chart-no-axes-combined';
2
+ import SearchIcon from '@lucide/svelte/icons/search';
3
+ import BackIcon from '@lucide/svelte/icons/arrow-left';
4
+ import DocumentIcon from '@lucide/svelte/icons/file-text';
5
+ import PopularIcon from '@lucide/svelte/icons/chart-no-axes-combined';
7
6
  import { InfiniteLoader, LoaderState } from '../../../ui/infinite-loader/index.js';
8
7
  import { Input } from '../../../ui/input/index.js';
9
8
  import { Button } from '../../../ui/button/index.js';
10
9
  import { Separator } from '../../../ui/separator/index.js';
11
10
  import { cn } from '../../../../utils.js';
12
- import { getPresentationEditorContext } from '../../presentation-editor.svelte.js';
11
+ import { getEditorContext } from '../../editor.svelte.js';
13
12
  import SidebarWrapper from '../sidebar-wrapper.svelte';
14
13
  import {
15
14
  createEditorNotReactive,
16
15
  extractNodeFonts,
17
16
  extractSelectionFonts,
18
- } from '../../layers/types/html/editor/utils.js';
17
+ } from '../../layers/types/text/editor/utils.js';
19
18
  import FontSidebarButton from './font-sidebar-button.svelte';
20
- import { applyHtmlToLayer } from '../../layers/utils.js';
21
19
 
22
- const editor = getPresentationEditorContext();
20
+ const editor = getEditorContext();
23
21
 
24
22
  let { htmlEditor } = editor;
25
23
 
@@ -29,14 +27,16 @@
29
27
 
30
28
  const fonts = Object.keys(editor.fonts).map(mapFont);
31
29
 
32
- let htmlLayers = $derived(editor.activeLayers.filter((layer) => layer.type === 'html'));
30
+ let textLayers = $derived(
31
+ editor.selectedSimpleLayersNotLocked.filter((layer) => layer.type === 'text'),
32
+ );
33
33
 
34
34
  const currentFonts = $derived.by(() => {
35
35
  if (editor.activeAction?.type === 'edit') {
36
36
  return extractSelectionFonts($htmlEditor);
37
37
  } else {
38
38
  const set = new Set<string>();
39
- htmlLayers.forEach((layer) => extractNodeFonts(layer.html, set));
39
+ textLayers.forEach((layer) => extractNodeFonts(layer.html, set));
40
40
  return Array.from(set);
41
41
  }
42
42
  });
@@ -44,9 +44,9 @@
44
44
  const documentFonts = $derived.by(() => {
45
45
  const fontsSet = new Set<string>();
46
46
 
47
- editor.slides.forEach((slide) => {
48
- slide.layers.forEach((layer) => {
49
- if (layer.type === 'html') {
47
+ editor.pages.forEach((page) => {
48
+ page.layers.forEach((layer) => {
49
+ if (layer.type === 'text') {
50
50
  extractNodeFonts(layer.html).forEach(fontsSet.add, fontsSet);
51
51
  }
52
52
  });
@@ -66,36 +66,31 @@
66
66
  if (editor.activeAction?.type === 'edit') {
67
67
  $htmlEditor.commands.setFontFamily(family);
68
68
  } else {
69
- editor.historyPush({
70
- type: 'layersGroup',
71
- actions: await Promise.all(
72
- htmlLayers.map(async (layer) => {
73
- editorNotReactive
74
- .chain()
75
- .setContent(layer.html)
76
- .selectAll()
77
- .setFontFamily(family)
78
- .run();
79
-
80
- const undo = { html: layer.html, x: layer.x, y: layer.y, height: layer.height };
81
- const redo = await applyHtmlToLayer(layer, editorNotReactive.getJSON());
82
-
83
- return {
84
- type: 'layer',
85
- slideId: editor.activeSlide.id,
86
- layer: { id: layer.id, type: layer.type },
87
- undo,
88
- redo,
89
- };
90
- }),
91
- ),
92
- });
69
+ editor.historyPush(
70
+ (
71
+ await Promise.all(
72
+ textLayers.map(async (layer) => {
73
+ editorNotReactive
74
+ .chain()
75
+ .setContent(layer.html)
76
+ .selectAll()
77
+ .setFontFamily(family)
78
+ .run();
79
+
80
+ return editor.applyHtmlToLayer(
81
+ editor.createTextLayerInitial(editor.activePage, layer),
82
+ editorNotReactive.getJSON(),
83
+ );
84
+ }),
85
+ )
86
+ ).flat(),
87
+ );
93
88
  }
94
89
  };
95
90
 
96
91
  $effect(() => {
97
92
  if (editor.activeSidebarPopup === 'font') {
98
- if (!editor.activeLayers.some((layer) => layer.type === 'html')) {
93
+ if (!editor.selectedSimpleLayersNotLocked.some((layer) => layer.type === 'text')) {
99
94
  editor.activeSidebarPopup = null;
100
95
  }
101
96
  }
@@ -0,0 +1,112 @@
1
+ <script lang="ts">
2
+ import XIcon from '@lucide/svelte/icons/x';
3
+ import { Button } from '../../ui/button/index.js';
4
+ import { Slider } from '../../ui/slider/index.js';
5
+ import { Input } from '../../ui/input/index.js';
6
+ import { getEditorContext } from '../editor.svelte.js';
7
+ import {
8
+ calculateImageLayerPropsForImageRotate,
9
+ calculateRelativeRects,
10
+ } from '../layers/utils.js';
11
+ import type { ImageLayer } from '../types.js';
12
+
13
+ interface Props {
14
+ layer: ImageLayer;
15
+ }
16
+
17
+ let { layer }: Props = $props();
18
+
19
+ const editor = $derived(getEditorContext());
20
+
21
+ let value = $derived(Math.round(layer.imageRotate * 10) / 10);
22
+ let originalLayer = $derived(
23
+ editor.selectedLayersNotLocked.find((l) => l.id === layer.id),
24
+ ) as ImageLayer;
25
+
26
+ const min = -180;
27
+ const max = 180;
28
+ const step = 0.1;
29
+
30
+ let layerCache: ImageLayer | null = $state.snapshot(null);
31
+
32
+ const setImageRotate = (value: string | number) => {
33
+ value = Number(value);
34
+ if (!layerCache) {
35
+ layerCache = $state.snapshot(layer);
36
+ }
37
+ const props = calculateImageLayerPropsForImageRotate(layerCache, value);
38
+ Object.assign(layer, props);
39
+ };
40
+
41
+ const applyChanges = () => {
42
+ if (!originalLayer) return;
43
+ const relativeLayer = editor.activeGroupAndChild
44
+ ? (calculateRelativeRects(editor.activeGroupAndChild.groupLayer, [layer])[0] as ImageLayer)
45
+ : layer;
46
+ // Define keys to check for changes in image layer properties
47
+ const imageLayerKeys: (keyof ImageLayer)[] = [
48
+ 'imageRotate', // Rotation angle of the image
49
+ 'scale', // Scale/zoom level
50
+ 'width', // Width dimension
51
+ 'height', // Height dimension
52
+ 'offsetX', // X offset position
53
+ 'offsetY', // Y offset position
54
+ ];
55
+
56
+ // Filter keys that have different values between original and relative layers
57
+ const changedKeys = imageLayerKeys.filter((key) => originalLayer[key] !== relativeLayer[key]);
58
+ if (changedKeys.length > 0) {
59
+ editor.historyPush({
60
+ type: 'layerUpdate',
61
+ pageId: editor.activePage.id,
62
+ layer: { id: layer.id, type: layer.type },
63
+ undo: Object.fromEntries(changedKeys.map((key) => [key, originalLayer[key]])),
64
+ redo: Object.fromEntries(changedKeys.map((key) => [key, relativeLayer[key]])),
65
+ });
66
+ }
67
+ editor.imageCropLayer = null;
68
+ };
69
+
70
+ $effect(() => {
71
+ if (!originalLayer) {
72
+ editor.imageCropLayer = null;
73
+ }
74
+ });
75
+ </script>
76
+
77
+ <div class="flex h-full flex-col gap-2">
78
+ <div class="flex items-center justify-between">
79
+ <div class="text-sm font-bold">Crop</div>
80
+ <Button variant="ghost" size="icon" onclick={() => (editor.imageCropLayer = null)}>
81
+ <XIcon />
82
+ </Button>
83
+ </div>
84
+ <div class="flex-1 resize-none overflow-y-auto">
85
+ <div class="flex items-center gap-2">
86
+ <div class="grow">
87
+ <Slider
88
+ type="single"
89
+ {value}
90
+ {min}
91
+ {max}
92
+ {step}
93
+ onValueChange={(value) => setImageRotate(value)}
94
+ onValueCommit={() => (layerCache = null)}
95
+ />
96
+ </div>
97
+ <Input
98
+ class="w-12 bg-transparent p-0 text-center font-semibold leading-none [&::-webkit-inner-spin-button]:appearance-none"
99
+ inputmode="decimal"
100
+ placeholder="--"
101
+ {value}
102
+ onchange={(e) => setImageRotate(e.currentTarget.value)}
103
+ />
104
+ </div>
105
+ <div class="flex justify-end gap-2 p-2">
106
+ <Button class="flex-1" variant="outline" onclick={() => (editor.imageCropLayer = null)}>
107
+ Cancel
108
+ </Button>
109
+ <Button class="flex-1" onclick={applyChanges}>Done</Button>
110
+ </div>
111
+ </div>
112
+ </div>
@@ -0,0 +1,7 @@
1
+ import type { ImageLayer } from '../types.js';
2
+ interface Props {
3
+ layer: ImageLayer;
4
+ }
5
+ declare const ImageCropSidebar: import("svelte").Component<Props, {}, "">;
6
+ type ImageCropSidebar = ReturnType<typeof ImageCropSidebar>;
7
+ export default ImageCropSidebar;
@@ -1,33 +1,35 @@
1
1
  <script lang="ts">
2
2
  import { flip } from 'svelte/animate';
3
- import { dndzone } from 'svelte-dnd-action';
4
- import XIcon from 'lucide-svelte/icons/x';
3
+ import { dndzone, type DndEvent } from 'svelte-dnd-action';
4
+ import XIcon from '@lucide/svelte/icons/x';
5
5
  import * as ContextMenu from '../../ui/context-menu/index.js';
6
6
  import { Button } from '../../ui/button/index.js';
7
7
  import {
8
8
  LayerButton,
9
9
  LayerThumbWrapper,
10
- HtmlLayerContent,
10
+ TextLayerContent,
11
11
  ImageLayerContent,
12
12
  BackgroundLayerContent,
13
+ GroupLayerContent,
13
14
  } from '../layers/index.js';
14
- import { getPresentationEditorContext } from '../presentation-editor.svelte.js';
15
+ import { getEditorContext } from '../editor.svelte.js';
15
16
  import LayerMenuContent from '../menu/layer-menu-content.svelte';
16
17
  import BackgroundMenuContent from '../menu/background-menu-content.svelte';
18
+ import type { Layer } from '../types.js';
17
19
 
18
- const editor = getPresentationEditorContext();
20
+ const editor = $derived(getEditorContext());
19
21
 
20
22
  const flipDurationMs = 300;
21
23
  const otherOptions = { flipDurationMs, type: 'layers', dropTargetStyle: {} };
22
24
 
23
- function handleDndConsider(e) {
24
- editor.activeSlide.layers = e.detail.items;
25
+ function handleDndConsider(e: CustomEvent<DndEvent<Layer>>) {
26
+ editor.rootLayers = e.detail.items;
25
27
  }
26
28
 
27
- async function handleDndFinalize(e) {
29
+ async function handleDndFinalize(e: CustomEvent<DndEvent<Layer>>) {
28
30
  console.log('handleDndFinalize', e);
29
31
 
30
- editor.activeSlide.layers = e.detail.items;
32
+ editor.rootLayers = e.detail.items;
31
33
 
32
34
  const index = e.detail.items.findIndex((item) => item.id === e.detail.info.id);
33
35
  const item = e.detail.items[index];
@@ -51,8 +53,8 @@
51
53
 
52
54
  if (redo) {
53
55
  editor.historyPush({
54
- type: 'layer',
55
- slideId: editor.activeSlide.id,
56
+ type: 'layerUpdate',
57
+ pageId: editor.activePage.id,
56
58
  layer: { id: item.id, type: item.type },
57
59
  undo: { sortOrder: item.sortOrder },
58
60
  redo,
@@ -61,7 +63,7 @@
61
63
  }
62
64
  </script>
63
65
 
64
- <div class="flex flex-col gap-2">
66
+ <div class="flex h-full flex-col gap-2">
65
67
  <div class="flex items-center justify-between">
66
68
  <div class="text-sm font-bold">Position</div>
67
69
  <Button variant="ghost" size="icon" onclick={() => (editor.activeSidebarPopup = null)}>
@@ -75,27 +77,31 @@
75
77
  class="flex flex-col-reverse gap-2"
76
78
  aria-label="Layers"
77
79
  use:dndzone={{
78
- items: editor.activeSlide.layers,
79
- dragDisabled: editor.activeSlide.locked,
80
+ items: editor.rootLayers,
81
+ dragDisabled: editor.activePage.locked,
80
82
  ...otherOptions,
81
83
  }}
82
84
  onconsider={handleDndConsider}
83
85
  onfinalize={handleDndFinalize}
84
86
  >
85
- {#each editor.activeSlide.layers as layer (layer.id)}
87
+ {#each editor.rootLayers as layer (layer.id)}
86
88
  <div aria-label={layer.type} animate:flip={{ duration: flipDurationMs }}>
87
89
  <ContextMenu.Root
88
90
  onOpenChange={(open) =>
89
- open && !editor.activeLayerIds.has(layer.id) && editor.setActiveLayers(layer.id)}
91
+ open &&
92
+ !editor.activeLayers.find((l) => l.id === layer.id) &&
93
+ editor.setActiveLayers(layer.id)}
90
94
  >
91
95
  <ContextMenu.Trigger>
92
96
  <LayerButton {layer}>
93
97
  <LayerThumbWrapper {layer} thumb={{ width: 192, height: 32 }}>
94
98
  {#snippet children({ thumbScale })}
95
- {#if layer.type === 'html'}
96
- <HtmlLayerContent {layer} {thumbScale} />
99
+ {#if layer.type === 'text'}
100
+ <TextLayerContent {layer} {thumbScale} />
97
101
  {:else if layer.type === 'image'}
98
102
  <ImageLayerContent {layer} {thumbScale} />
103
+ {:else if layer.type === 'group'}
104
+ <GroupLayerContent page={editor.activePage} {layer} {thumbScale} />
99
105
  {/if}
100
106
  {/snippet}
101
107
  </LayerThumbWrapper>
@@ -117,12 +123,12 @@
117
123
  style:width="{editor.width * thumbScale}px"
118
124
  style:height="{editor.height * thumbScale}px"
119
125
  >
120
- <BackgroundLayerContent slide={editor.activeSlide} {thumbScale} />
126
+ <BackgroundLayerContent page={editor.activePage} {thumbScale} />
121
127
  </div>
122
128
  </LayerButton>
123
129
  </ContextMenu.Trigger>
124
130
  <ContextMenu.Content class="w-72">
125
- <BackgroundMenuContent {editor} slide={editor.activeSlide} />
131
+ <BackgroundMenuContent {editor} page={editor.activePage} />
126
132
  </ContextMenu.Content>
127
133
  </ContextMenu.Root>
128
134
  </div>
@@ -0,0 +1,3 @@
1
+ declare const PositionSidebar: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type PositionSidebar = ReturnType<typeof PositionSidebar>;
3
+ export default PositionSidebar;