@peteai/presentation-editor 0.0.5 → 0.0.7

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 (310) hide show
  1. package/README.md +38 -38
  2. package/dist/components/editor/active-layers-buttons.svelte +56 -0
  3. package/dist/components/{presentation-editor → editor}/active-layers.svelte +89 -48
  4. package/dist/components/{presentation-editor/cognition-slides.d.ts → editor/cognition-pages.d.ts} +1 -1
  5. package/dist/components/{presentation-editor/cognition-slides.js → editor/cognition-pages.js} +1 -1
  6. package/dist/components/{presentation-editor → editor}/cursor-tooltip.svelte +6 -2
  7. package/dist/components/editor/cursor-tooltip.svelte.d.ts +7 -0
  8. package/dist/components/{presentation-editor → editor}/dragged.svelte +7 -3
  9. package/dist/components/editor/dragged.svelte.d.ts +7 -0
  10. package/dist/components/{presentation-editor/presentation-editor.svelte → editor/editor.svelte} +53 -48
  11. package/dist/components/editor/editor.svelte.d.ts +4 -0
  12. package/dist/components/editor/editor.svelte.js +1167 -0
  13. package/dist/components/{presentation-editor → editor}/header.svelte +11 -7
  14. package/dist/components/editor/header.svelte.d.ts +7 -0
  15. package/dist/components/{presentation-editor → editor}/hotkeys.svelte +41 -16
  16. package/dist/components/editor/index.d.ts +3 -0
  17. package/dist/components/editor/index.js +3 -0
  18. package/dist/components/{presentation-editor → editor}/layers/active-background-border.svelte +2 -2
  19. package/dist/components/{presentation-editor → editor}/layers/active-layer-border.svelte +5 -8
  20. package/dist/components/editor/layers/buttons/border-button/border-button-colors.svelte +59 -0
  21. package/dist/components/editor/layers/buttons/border-button/border-button-colors.svelte.d.ts +9 -0
  22. package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/border-button.svelte +47 -65
  23. package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/corner-radius-button.svelte +24 -28
  24. package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/flip-button.svelte +11 -12
  25. package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/opacity-button.svelte +32 -38
  26. package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/corner-scale-control.svelte +27 -32
  27. package/dist/components/editor/layers/controls/group-resize-control/group-resize-control.svelte +418 -0
  28. package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/rotate-control.svelte +27 -34
  29. package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/side-resize-control.svelte +9 -13
  30. package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/side-scale-control.svelte +13 -15
  31. package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/side-scale-control.svelte.d.ts +2 -2
  32. package/dist/components/{presentation-editor → editor}/layers/index.d.ts +3 -2
  33. package/dist/components/{presentation-editor → editor}/layers/index.js +6 -3
  34. package/dist/components/{presentation-editor → editor}/layers/layer-button.svelte +14 -8
  35. package/dist/components/{presentation-editor → editor}/layers/layer-thumb-wrapper.svelte +5 -6
  36. package/dist/components/{presentation-editor → editor}/layers/layer-wrapper.svelte +46 -57
  37. package/dist/components/{presentation-editor → editor}/layers/types/background/background-content-image.svelte +2 -2
  38. package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer-buttons.svelte +6 -6
  39. package/dist/components/editor/layers/types/background/background-layer-content.svelte +21 -0
  40. package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer-content.svelte.d.ts +2 -2
  41. package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer.svelte +5 -7
  42. package/dist/components/editor/layers/types/group/group-child-wrapper.svelte +44 -0
  43. package/dist/components/editor/layers/types/group/group-child-wrapper.svelte.d.ts +9 -0
  44. package/dist/components/editor/layers/types/group/group-layer-content.svelte +45 -0
  45. package/dist/components/editor/layers/types/group/group-layer-content.svelte.d.ts +9 -0
  46. package/dist/components/editor/layers/types/group/group-layer.svelte +33 -0
  47. package/dist/components/editor/layers/types/group/group-layer.svelte.d.ts +8 -0
  48. package/dist/components/editor/layers/types/group/index.d.ts +3 -0
  49. package/dist/components/editor/layers/types/group/index.js +3 -0
  50. package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-active.svelte +10 -13
  51. package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-content.svelte +14 -11
  52. package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer.svelte +8 -14
  53. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/alignment-button.svelte +13 -14
  54. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/alignment-button.svelte.d.ts +2 -2
  55. package/dist/components/editor/layers/types/text/buttons/bold-button/bold-button.svelte +65 -0
  56. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/bold-button/bold-button.svelte.d.ts +2 -2
  57. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/case-button.svelte +24 -30
  58. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/case-button.svelte.d.ts +2 -2
  59. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/color-button.svelte +4 -4
  60. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/color-button.svelte.d.ts +2 -2
  61. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/font-family-button.svelte +4 -4
  62. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/font-family-button.svelte.d.ts +2 -2
  63. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/font-size-button.svelte +33 -40
  64. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/font-size-button.svelte.d.ts +2 -2
  65. package/dist/components/editor/layers/types/text/buttons/italic-button/italic-button.svelte +65 -0
  66. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/italic-button/italic-button.svelte.d.ts +2 -2
  67. package/dist/components/editor/layers/types/text/buttons/list-button/list-button.svelte +113 -0
  68. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/list-button/list-button.svelte.d.ts +2 -2
  69. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/strikethrough-button.svelte +10 -11
  70. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/strikethrough-button.svelte.d.ts +2 -2
  71. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/underline-button.svelte +10 -11
  72. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/underline-button.svelte.d.ts +2 -2
  73. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/utils.d.ts +2 -0
  74. package/dist/components/editor/layers/types/text/editor/utils.js +166 -0
  75. package/dist/components/editor/layers/types/text/extensions/list/index.d.ts +3 -0
  76. package/dist/components/editor/layers/types/text/extensions/list/index.js +3 -0
  77. package/dist/components/editor/layers/types/text/extensions/list/list.d.ts +67 -0
  78. package/dist/components/editor/layers/types/text/extensions/list/list.js +237 -0
  79. package/dist/components/editor/layers/types/text/extensions/list-item/index.d.ts +3 -0
  80. package/dist/components/editor/layers/types/text/extensions/list-item/index.js +3 -0
  81. package/dist/components/editor/layers/types/text/extensions/list-item/list-item.d.ts +13 -0
  82. package/dist/components/editor/layers/types/text/extensions/list-item/list-item.js +264 -0
  83. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/index.d.ts +3 -0
  84. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/index.js +3 -0
  85. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/list-item-paragraph.d.ts +14 -0
  86. package/dist/components/editor/layers/types/text/extensions/list-item-paragraph/list-item-paragraph.js +27 -0
  87. package/dist/components/editor/layers/types/text/extensions/paragraph/index.d.ts +3 -0
  88. package/dist/components/editor/layers/types/text/extensions/paragraph/index.js +3 -0
  89. package/dist/components/editor/layers/types/text/extensions/paragraph/paragraph.d.ts +6 -0
  90. package/dist/components/editor/layers/types/text/extensions/paragraph/paragraph.js +28 -0
  91. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/index.d.ts +3 -0
  92. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/index.js +3 -0
  93. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/preserve-formatting-on-clear.d.ts +2 -0
  94. package/dist/components/editor/layers/types/text/extensions/preserve-formatting-on-clear/preserve-formatting-on-clear.js +74 -0
  95. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/text-transform.js +1 -4
  96. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions.js +13 -23
  97. package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/html-content.svelte +0 -9
  98. package/dist/components/editor/layers/types/text/index.d.ts +5 -0
  99. package/dist/components/editor/layers/types/text/index.js +5 -0
  100. package/dist/components/{presentation-editor/layers/types/html/html-layer-content.svelte → editor/layers/types/text/text-layer-content.svelte} +2 -2
  101. package/dist/components/editor/layers/types/text/text-layer-content.svelte.d.ts +9 -0
  102. package/dist/components/editor/layers/types/text/text-layer-edit.svelte +114 -0
  103. package/dist/components/editor/layers/types/text/text-layer-edit.svelte.d.ts +9 -0
  104. package/dist/components/editor/layers/types/text/text-layer.svelte +125 -0
  105. package/dist/components/editor/layers/types/text/text-layer.svelte.d.ts +7 -0
  106. package/dist/components/{presentation-editor → editor}/layers/utils.d.ts +9 -16
  107. package/dist/components/{presentation-editor → editor}/layers/utils.js +65 -68
  108. package/dist/components/{presentation-editor → editor}/menu/background-menu-content.svelte +24 -24
  109. package/dist/components/{presentation-editor → editor}/menu/background-menu-content.svelte.d.ts +4 -4
  110. package/dist/components/{presentation-editor → editor}/menu/layer-menu-content.svelte +62 -38
  111. package/dist/components/{presentation-editor/menu/slide-menu-content.svelte → editor/menu/page-menu-content.svelte} +19 -19
  112. package/dist/components/editor/menu/page-menu-content.svelte.d.ts +9 -0
  113. package/dist/components/{presentation-editor/slide-editor.svelte → editor/page-editor.svelte} +25 -24
  114. package/dist/components/editor/page-editor.svelte.d.ts +7 -0
  115. package/dist/components/{presentation-editor/slide-inner.svelte → editor/page-inner.svelte} +5 -5
  116. package/dist/components/{presentation-editor/sidebar/sidebar.svelte.d.ts → editor/page-inner.svelte.d.ts} +3 -3
  117. package/dist/components/editor/page.svelte +69 -0
  118. package/dist/components/editor/page.svelte.d.ts +4 -0
  119. package/dist/components/editor/pages-navigation/page-preview.svelte +36 -0
  120. package/dist/components/editor/pages-navigation/page-preview.svelte.d.ts +8 -0
  121. package/dist/components/{presentation-editor/slides-navigation/slide-preview.svelte → editor/pages-navigation/pages-navigation-item.svelte} +21 -41
  122. package/dist/components/editor/pages-navigation/pages-navigation-item.svelte.d.ts +11 -0
  123. package/dist/components/{presentation-editor/slides-navigation/slides-navigation.svelte → editor/pages-navigation/pages-navigation.svelte} +26 -21
  124. package/dist/components/editor/pages-navigation/pages-navigation.svelte.d.ts +7 -0
  125. package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-color.svelte +1 -1
  126. package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-gradient-picker.svelte +2 -2
  127. package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar.svelte +92 -89
  128. package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar-button.svelte +3 -3
  129. package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar.svelte +34 -39
  130. package/dist/components/{presentation-editor/sidebar/position-slidebar.svelte → editor/sidebar/position-sidebar.svelte} +28 -20
  131. package/dist/components/editor/sidebar/position-sidebar.svelte.d.ts +3 -0
  132. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab-button.svelte +5 -5
  133. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab.svelte +5 -5
  134. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-uploads-tab.svelte +4 -4
  135. package/dist/components/{presentation-editor → editor}/sidebar/sidebar-wrapper.svelte +6 -4
  136. package/dist/components/{presentation-editor → editor}/sidebar/sidebar.svelte +11 -7
  137. package/dist/components/editor/sidebar/sidebar.svelte.d.ts +7 -0
  138. package/dist/components/{presentation-editor → editor}/sidebar/uploads-image.svelte +3 -3
  139. package/dist/components/editor/types.d.ts +282 -0
  140. package/dist/components/{presentation-editor → editor}/utils.d.ts +14 -6
  141. package/dist/components/{presentation-editor → editor}/utils.js +97 -63
  142. package/dist/components/ui/color-picker/color-picker.svelte +2 -2
  143. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +2 -2
  144. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +1 -1
  145. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +1 -1
  146. package/dist/components/ui/dialog/dialog-content.svelte +3 -3
  147. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +3 -3
  148. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +2 -2
  149. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +1 -1
  150. package/dist/components/ui/dropdown-menu/index.d.ts +1 -0
  151. package/dist/components/ui/slider/slider.svelte +28 -20
  152. package/dist/index.d.ts +12 -6
  153. package/dist/index.js +5 -3
  154. package/package.json +43 -39
  155. package/dist/components/presentation-editor/active-layers-buttons.svelte +0 -53
  156. package/dist/components/presentation-editor/cursor-tooltip.svelte.d.ts +0 -18
  157. package/dist/components/presentation-editor/dragged.svelte.d.ts +0 -18
  158. package/dist/components/presentation-editor/header.svelte.d.ts +0 -18
  159. package/dist/components/presentation-editor/index.d.ts +0 -2
  160. package/dist/components/presentation-editor/index.js +0 -2
  161. package/dist/components/presentation-editor/layers/controls/group-resize-control/group-resize-control.svelte +0 -337
  162. package/dist/components/presentation-editor/layers/types/background/background-layer-content.svelte +0 -19
  163. package/dist/components/presentation-editor/layers/types/html/buttons/bold-button/bold-button.svelte +0 -71
  164. package/dist/components/presentation-editor/layers/types/html/buttons/italic-button/italic-button.svelte +0 -71
  165. package/dist/components/presentation-editor/layers/types/html/buttons/list-button/list-button.svelte +0 -90
  166. package/dist/components/presentation-editor/layers/types/html/editor/utils.js +0 -88
  167. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/index.d.ts +0 -3
  168. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/index.js +0 -3
  169. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/unstyled-list.d.ts +0 -47
  170. package/dist/components/presentation-editor/layers/types/html/extensions/unstyled-list/unstyled-list.js +0 -74
  171. package/dist/components/presentation-editor/layers/types/html/html-layer-content.svelte.d.ts +0 -9
  172. package/dist/components/presentation-editor/layers/types/html/html-layer-edit.svelte +0 -103
  173. package/dist/components/presentation-editor/layers/types/html/html-layer-edit.svelte.d.ts +0 -8
  174. package/dist/components/presentation-editor/layers/types/html/html-layer.svelte +0 -105
  175. package/dist/components/presentation-editor/layers/types/html/html-layer.svelte.d.ts +0 -7
  176. package/dist/components/presentation-editor/layers/types/html/index.d.ts +0 -5
  177. package/dist/components/presentation-editor/layers/types/html/index.js +0 -5
  178. package/dist/components/presentation-editor/menu/slide-menu-content.svelte.d.ts +0 -9
  179. package/dist/components/presentation-editor/presentation-editor.svelte.d.ts +0 -4
  180. package/dist/components/presentation-editor/presentation-editor.svelte.js +0 -813
  181. package/dist/components/presentation-editor/sidebar/position-slidebar.svelte.d.ts +0 -18
  182. package/dist/components/presentation-editor/slide-editor.svelte.d.ts +0 -7
  183. package/dist/components/presentation-editor/slide-inner.svelte.d.ts +0 -18
  184. package/dist/components/presentation-editor/slides-navigation/slide-preview.svelte.d.ts +0 -11
  185. package/dist/components/presentation-editor/slides-navigation/slides-navigation.svelte.d.ts +0 -3
  186. package/dist/components/presentation-editor/types.d.ts +0 -158
  187. /package/dist/components/{presentation-editor → editor}/active-layers-buttons.svelte.d.ts +0 -0
  188. /package/dist/components/{presentation-editor → editor}/active-layers.svelte.d.ts +0 -0
  189. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient-def.svelte +0 -0
  190. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient-def.svelte.d.ts +0 -0
  191. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient.svelte +0 -0
  192. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator-gradient.svelte.d.ts +0 -0
  193. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator.svelte +0 -0
  194. /package/dist/components/{presentation-editor → editor}/color-indicator/color-indicator.svelte.d.ts +0 -0
  195. /package/dist/components/{presentation-editor → editor}/color-indicator/index.d.ts +0 -0
  196. /package/dist/components/{presentation-editor → editor}/color-indicator/index.js +0 -0
  197. /package/dist/components/{presentation-editor → editor}/fonts.d.ts +0 -0
  198. /package/dist/components/{presentation-editor → editor}/fonts.js +0 -0
  199. /package/dist/components/{presentation-editor → editor}/hotkeys.svelte.d.ts +0 -0
  200. /package/dist/components/{presentation-editor → editor}/layers/active-background-border.svelte.d.ts +0 -0
  201. /package/dist/components/{presentation-editor → editor}/layers/active-layer-border.svelte.d.ts +0 -0
  202. /package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/border-button.svelte.d.ts +0 -0
  203. /package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/index.d.ts +0 -0
  204. /package/dist/components/{presentation-editor → editor}/layers/buttons/border-button/index.js +0 -0
  205. /package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/corner-radius-button.svelte.d.ts +0 -0
  206. /package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/index.d.ts +0 -0
  207. /package/dist/components/{presentation-editor → editor}/layers/buttons/corner-radius-button/index.js +0 -0
  208. /package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/flip-button.svelte.d.ts +0 -0
  209. /package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/index.d.ts +0 -0
  210. /package/dist/components/{presentation-editor → editor}/layers/buttons/flip-button/index.js +0 -0
  211. /package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/index.d.ts +0 -0
  212. /package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/index.js +0 -0
  213. /package/dist/components/{presentation-editor → editor}/layers/buttons/opacity-button/opacity-button.svelte.d.ts +0 -0
  214. /package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/corner-scale-control.svelte.d.ts +0 -0
  215. /package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/index.d.ts +0 -0
  216. /package/dist/components/{presentation-editor → editor}/layers/controls/corner-scale-control/index.js +0 -0
  217. /package/dist/components/{presentation-editor → editor}/layers/controls/group-resize-control/group-resize-control.svelte.d.ts +0 -0
  218. /package/dist/components/{presentation-editor → editor}/layers/controls/group-resize-control/index.d.ts +0 -0
  219. /package/dist/components/{presentation-editor → editor}/layers/controls/group-resize-control/index.js +0 -0
  220. /package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/index.d.ts +0 -0
  221. /package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/index.js +0 -0
  222. /package/dist/components/{presentation-editor → editor}/layers/controls/rotate-control/rotate-control.svelte.d.ts +0 -0
  223. /package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/index.d.ts +0 -0
  224. /package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/index.js +0 -0
  225. /package/dist/components/{presentation-editor → editor}/layers/controls/side-resize-control/side-resize-control.svelte.d.ts +0 -0
  226. /package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/index.d.ts +0 -0
  227. /package/dist/components/{presentation-editor → editor}/layers/controls/side-scale-control/index.js +0 -0
  228. /package/dist/components/{presentation-editor → editor}/layers/layer-button.svelte.d.ts +0 -0
  229. /package/dist/components/{presentation-editor → editor}/layers/layer-thumb-wrapper.svelte.d.ts +0 -0
  230. /package/dist/components/{presentation-editor → editor}/layers/layer-wrapper.svelte.d.ts +0 -0
  231. /package/dist/components/{presentation-editor → editor}/layers/types/background/background-content-image.svelte.d.ts +0 -0
  232. /package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer-buttons.svelte.d.ts +0 -0
  233. /package/dist/components/{presentation-editor → editor}/layers/types/background/background-layer.svelte.d.ts +0 -0
  234. /package/dist/components/{presentation-editor → editor}/layers/types/background/index.d.ts +0 -0
  235. /package/dist/components/{presentation-editor → editor}/layers/types/background/index.js +0 -0
  236. /package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-active.svelte.d.ts +0 -0
  237. /package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer-content.svelte.d.ts +0 -0
  238. /package/dist/components/{presentation-editor → editor}/layers/types/image/image-layer.svelte.d.ts +0 -0
  239. /package/dist/components/{presentation-editor → editor}/layers/types/image/index.d.ts +0 -0
  240. /package/dist/components/{presentation-editor → editor}/layers/types/image/index.js +0 -0
  241. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/index.d.ts +0 -0
  242. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/alignment-button/index.js +0 -0
  243. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/bold-button/index.d.ts +0 -0
  244. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/bold-button/index.js +0 -0
  245. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/index.d.ts +0 -0
  246. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/case-button/index.js +0 -0
  247. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/index.d.ts +0 -0
  248. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/color-button/index.js +0 -0
  249. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/index.d.ts +0 -0
  250. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-family-button/index.js +0 -0
  251. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/index.d.ts +0 -0
  252. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/font-size-button/index.js +0 -0
  253. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/italic-button/index.d.ts +0 -0
  254. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/italic-button/index.js +0 -0
  255. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/list-button/index.d.ts +0 -0
  256. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/list-button/index.js +0 -0
  257. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/index.d.ts +0 -0
  258. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/strikethrough-button/index.js +0 -0
  259. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/index.d.ts +0 -0
  260. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/buttons/underline-button/index.js +0 -0
  261. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/Editor.d.ts +0 -0
  262. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/Editor.js +0 -0
  263. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/createEditor.d.ts +0 -0
  264. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/createEditor.js +0 -0
  265. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/editor-content.svelte +0 -0
  266. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/editor-content.svelte.d.ts +0 -0
  267. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/index.d.ts +0 -0
  268. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/index.js +0 -0
  269. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/types.d.ts +0 -0
  270. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor/types.js +0 -0
  271. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/editor.css +0 -0
  272. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/font-family.d.ts +0 -0
  273. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/font-family.js +0 -0
  274. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/index.d.ts +0 -0
  275. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-family/index.js +0 -0
  276. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/font-size.d.ts +0 -0
  277. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/font-size.js +0 -0
  278. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/index.d.ts +0 -0
  279. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/font-size/index.js +0 -0
  280. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/index.d.ts +0 -0
  281. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/index.js +0 -0
  282. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/line-height.d.ts +0 -0
  283. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/line-height/line-height.js +0 -0
  284. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/index.d.ts +0 -0
  285. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/index.js +0 -0
  286. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/selection.d.ts +0 -0
  287. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/selection/selection.js +0 -0
  288. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/index.d.ts +0 -0
  289. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/index.js +0 -0
  290. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions/text-transform/text-transform.d.ts +0 -0
  291. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/extensions.d.ts +0 -0
  292. /package/dist/components/{presentation-editor/layers/types/html → editor/layers/types/text}/html-content.svelte.d.ts +0 -0
  293. /package/dist/components/{presentation-editor → editor}/menu/layer-menu-content.svelte.d.ts +0 -0
  294. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-color.svelte.d.ts +0 -0
  295. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar-gradient-picker.svelte.d.ts +0 -0
  296. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/color-sidebar.svelte.d.ts +0 -0
  297. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/index.d.ts +0 -0
  298. /package/dist/components/{presentation-editor → editor}/sidebar/color-sidebar/index.js +0 -0
  299. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar-button.svelte.d.ts +0 -0
  300. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/font-sidebar.svelte.d.ts +0 -0
  301. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/index.d.ts +0 -0
  302. /package/dist/components/{presentation-editor → editor}/sidebar/font-sidebar/index.js +0 -0
  303. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab-button.svelte.d.ts +0 -0
  304. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-text-tab.svelte.d.ts +0 -0
  305. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-uploads-tab.svelte.d.ts +0 -0
  306. /package/dist/components/{presentation-editor → editor}/sidebar/sidebar-wrapper.svelte.d.ts +0 -0
  307. /package/dist/components/{presentation-editor → editor}/sidebar/uploads-image.svelte.d.ts +0 -0
  308. /package/dist/components/{presentation-editor → editor}/snapping-guides.svelte +0 -0
  309. /package/dist/components/{presentation-editor → editor}/snapping-guides.svelte.d.ts +0 -0
  310. /package/dist/components/{presentation-editor → editor}/types.js +0 -0
@@ -1,34 +1,37 @@
1
1
  <script lang="ts">
2
- import CopyIcon from 'lucide-svelte/icons/copy';
3
- import PasteIcon from 'lucide-svelte/icons/clipboard';
4
- import DuplicateIcon from 'lucide-svelte/icons/copy-plus';
5
- import TrashIcon from 'lucide-svelte/icons/trash-2';
6
- import LayerIcon from 'lucide-svelte/icons/layers';
7
- import LayerBringForwardIcon from 'lucide-svelte/icons/arrow-up';
8
- import LayerBringToFrontIcon from 'lucide-svelte/icons/arrow-up-to-line';
9
- import LayerSendBackwardIcon from 'lucide-svelte/icons/arrow-down';
10
- import LayerSendToBackIcon from 'lucide-svelte/icons/arrow-down-to-line';
11
- import AlignLeftIcon from 'lucide-svelte/icons/align-start-vertical';
12
- import AlignCenterIcon from 'lucide-svelte/icons/align-center-vertical';
13
- import AlignRightIcon from 'lucide-svelte/icons/align-end-vertical';
14
- import AlignTopIcon from 'lucide-svelte/icons/align-start-horizontal';
15
- import AlignMiddleIcon from 'lucide-svelte/icons/align-center-horizontal';
16
- import AlignBottomIcon from 'lucide-svelte/icons/align-end-horizontal';
17
- import LockIcon from 'lucide-svelte/icons/lock-keyhole';
18
- import UnlockIcon from 'lucide-svelte/icons/lock-keyhole-open';
19
- import SetAsBackgroundIcon from 'lucide-svelte/icons/image-upscale';
2
+ import CopyIcon from '@lucide/svelte/icons/copy';
3
+ import PasteIcon from '@lucide/svelte/icons/clipboard';
4
+ import DuplicateIcon from '@lucide/svelte/icons/copy-plus';
5
+ import TrashIcon from '@lucide/svelte/icons/trash-2';
6
+ import LayerIcon from '@lucide/svelte/icons/layers';
7
+ import LayerBringForwardIcon from '@lucide/svelte/icons/arrow-up';
8
+ import LayerBringToFrontIcon from '@lucide/svelte/icons/arrow-up-to-line';
9
+ import LayerSendBackwardIcon from '@lucide/svelte/icons/arrow-down';
10
+ import LayerSendToBackIcon from '@lucide/svelte/icons/arrow-down-to-line';
11
+ import AlignLeftIcon from '@lucide/svelte/icons/align-start-vertical';
12
+ import AlignCenterIcon from '@lucide/svelte/icons/align-center-vertical';
13
+ import AlignRightIcon from '@lucide/svelte/icons/align-end-vertical';
14
+ import AlignTopIcon from '@lucide/svelte/icons/align-start-horizontal';
15
+ import AlignMiddleIcon from '@lucide/svelte/icons/align-center-horizontal';
16
+ import AlignBottomIcon from '@lucide/svelte/icons/align-end-horizontal';
17
+ import GroupIcon from '@lucide/svelte/icons/group';
18
+ import UngroupIcon from '@lucide/svelte/icons/ungroup';
19
+ import LockIcon from '@lucide/svelte/icons/lock-keyhole';
20
+ import UnlockIcon from '@lucide/svelte/icons/lock-keyhole-open';
21
+ import SetAsBackgroundIcon from '@lucide/svelte/icons/image-upscale';
20
22
  import * as DropdownMenu from '../../ui/dropdown-menu/index.js';
21
- import { getPresentationEditorContext } from '../presentation-editor.svelte.js';
23
+ import { getEditorContext } from '../editor.svelte.js';
22
24
  import { checkIfMac } from '../../../utils.js';
23
25
 
24
- const editor = getPresentationEditorContext();
26
+ const editor = getEditorContext();
25
27
 
26
28
  const someLayersLocked = $derived(editor.activeLayers.some((layer) => layer.locked));
27
- const locked = $derived(editor.activeSlide.locked || someLayersLocked);
29
+ const locked = $derived(editor.activePage.locked || someLayersLocked);
28
30
 
29
31
  const isMac = checkIfMac();
30
32
 
31
33
  const activeLayerIds = $derived(editor.activeLayers.map((l) => l.id));
34
+ const selectedLayerIds = $derived(editor.selectedLayers.map((l) => l.id));
32
35
 
33
36
  const singleImageLayer = $derived(
34
37
  editor.activeLayers.length === 1 && editor.activeLayers[0].type === 'image'
@@ -36,10 +39,10 @@
36
39
  : null,
37
40
  );
38
41
 
39
- let overlaps = editor.getLayerOverlaps(editor.activeSlide, editor.activeLayers);
42
+ let overlaps = editor.getLayerOverlaps(editor.activePage, editor.activeLayers);
40
43
  </script>
41
44
 
42
- <DropdownMenu.Item onclick={() => editor.copyLayers(editor.activeSlide.id, activeLayerIds)}>
45
+ <DropdownMenu.Item onclick={() => editor.copyLayers(editor.activePage.id, activeLayerIds)}>
43
46
  <CopyIcon />
44
47
  Copy
45
48
  <DropdownMenu.Shortcut>{isMac ? '⌘C' : 'Ctrl+C'}</DropdownMenu.Shortcut>
@@ -55,7 +58,7 @@
55
58
  <DropdownMenu.Shortcut>{isMac ? '⌘D' : 'Ctrl+D'}</DropdownMenu.Shortcut>
56
59
  </DropdownMenu.Item>
57
60
  <DropdownMenu.Item
58
- onclick={() => editor.removeLayers(editor.activeSlide.id, activeLayerIds)}
61
+ onclick={() => editor.removeLayers(editor.activePage.id, selectedLayerIds)}
59
62
  disabled={locked}
60
63
  >
61
64
  <TrashIcon />
@@ -74,7 +77,7 @@
74
77
  <DropdownMenu.SubContent class="w-56" align="start">
75
78
  <DropdownMenu.Item
76
79
  disabled={overlaps.forward === undefined}
77
- onclick={() => editor.moveLayers(editor.activeSlide.id, activeLayerIds, 'forward')}
80
+ onclick={() => editor.moveLayers(editor.activePage.id, activeLayerIds, 'forward')}
78
81
  >
79
82
  <LayerBringForwardIcon />
80
83
  Bring forward
@@ -82,7 +85,7 @@
82
85
  </DropdownMenu.Item>
83
86
  <DropdownMenu.Item
84
87
  disabled={overlaps.front === undefined}
85
- onclick={() => editor.moveLayers(editor.activeSlide.id, activeLayerIds, 'front')}
88
+ onclick={() => editor.moveLayers(editor.activePage.id, activeLayerIds, 'front')}
86
89
  >
87
90
  <LayerBringToFrontIcon />
88
91
  Bring to front
@@ -90,7 +93,7 @@
90
93
  </DropdownMenu.Item>
91
94
  <DropdownMenu.Item
92
95
  disabled={overlaps.backward === undefined}
93
- onclick={() => editor.moveLayers(editor.activeSlide.id, activeLayerIds, 'backward')}
96
+ onclick={() => editor.moveLayers(editor.activePage.id, activeLayerIds, 'backward')}
94
97
  >
95
98
  <LayerSendBackwardIcon />
96
99
  Send backward
@@ -98,7 +101,7 @@
98
101
  </DropdownMenu.Item>
99
102
  <DropdownMenu.Item
100
103
  disabled={overlaps.back === undefined}
101
- onclick={() => editor.moveLayers(editor.activeSlide.id, activeLayerIds, 'back')}
104
+ onclick={() => editor.moveLayers(editor.activePage.id, activeLayerIds, 'back')}
102
105
  >
103
106
  <LayerSendToBackIcon />
104
107
  Send to back
@@ -115,38 +118,38 @@
115
118
  </DropdownMenu.SubTrigger>
116
119
  <DropdownMenu.SubContent class="w-32" align="start">
117
120
  <DropdownMenu.Item
118
- onclick={() => editor.alignLayers(editor.activeSlide.id, activeLayerIds, 'left')}
121
+ onclick={() => editor.alignLayers(editor.activePage.id, activeLayerIds, 'left')}
119
122
  >
120
123
  <AlignLeftIcon />
121
124
  Left
122
125
  </DropdownMenu.Item>
123
126
  <DropdownMenu.Item
124
- onclick={() => editor.alignLayers(editor.activeSlide.id, activeLayerIds, 'center')}
127
+ onclick={() => editor.alignLayers(editor.activePage.id, activeLayerIds, 'center')}
125
128
  >
126
129
  <AlignCenterIcon />
127
130
  Center
128
131
  </DropdownMenu.Item>
129
132
  <DropdownMenu.Item
130
- onclick={() => editor.alignLayers(editor.activeSlide.id, activeLayerIds, 'right')}
133
+ onclick={() => editor.alignLayers(editor.activePage.id, activeLayerIds, 'right')}
131
134
  >
132
135
  <AlignRightIcon />
133
136
  Right
134
137
  </DropdownMenu.Item>
135
138
  <DropdownMenu.Separator />
136
139
  <DropdownMenu.Item
137
- onclick={() => editor.alignLayers(editor.activeSlide.id, activeLayerIds, 'top')}
140
+ onclick={() => editor.alignLayers(editor.activePage.id, activeLayerIds, 'top')}
138
141
  >
139
142
  <AlignTopIcon />
140
143
  Top
141
144
  </DropdownMenu.Item>
142
145
  <DropdownMenu.Item
143
- onclick={() => editor.alignLayers(editor.activeSlide.id, activeLayerIds, 'middle')}
146
+ onclick={() => editor.alignLayers(editor.activePage.id, activeLayerIds, 'middle')}
144
147
  >
145
148
  <AlignMiddleIcon />
146
149
  Middle
147
150
  </DropdownMenu.Item>
148
151
  <DropdownMenu.Item
149
- onclick={() => editor.alignLayers(editor.activeSlide.id, activeLayerIds, 'bottom')}
152
+ onclick={() => editor.alignLayers(editor.activePage.id, activeLayerIds, 'bottom')}
150
153
  >
151
154
  <AlignBottomIcon />
152
155
  Bottom
@@ -156,10 +159,31 @@
156
159
 
157
160
  <DropdownMenu.Separator />
158
161
 
162
+ {#if editor.activeLayers.length > 1}
163
+ <DropdownMenu.Item
164
+ onclick={() => editor.groupLayers(editor.activePage.id, activeLayerIds)}
165
+ disabled={locked}
166
+ >
167
+ <GroupIcon />
168
+ Group
169
+ <DropdownMenu.Shortcut>{isMac ? '⌘G' : 'Ctrl+G'}</DropdownMenu.Shortcut>
170
+ </DropdownMenu.Item>
171
+ {/if}
172
+
173
+ {#if editor.activeLayers.every((layer) => layer.type === 'group')}
174
+ <DropdownMenu.Item
175
+ onclick={() => editor.ungroupLayers(editor.activePage.id, activeLayerIds)}
176
+ disabled={locked}
177
+ >
178
+ <UngroupIcon />
179
+ Ungroup
180
+ <DropdownMenu.Shortcut>{isMac ? '⇧⌘G' : 'Ctrl+Shift+G'}</DropdownMenu.Shortcut>
181
+ </DropdownMenu.Item>
182
+ {/if}
183
+
159
184
  <DropdownMenu.Item
160
- onclick={() =>
161
- editor.toggleLayersLocked(editor.activeSlide.id, activeLayerIds, !someLayersLocked)}
162
- disabled={editor.activeSlide.locked}
185
+ onclick={() => editor.toggleLayersLocked(editor.activePage.id, activeLayerIds, !someLayersLocked)}
186
+ disabled={editor.activePage.locked}
163
187
  >
164
188
  {#if someLayersLocked}
165
189
  <UnlockIcon />
@@ -174,7 +198,7 @@
174
198
  {#if singleImageLayer}
175
199
  <DropdownMenu.Separator />
176
200
  <DropdownMenu.Item
177
- onclick={() => editor.imageLayerToBackground(editor.activeSlide.id, singleImageLayer.id)}
201
+ onclick={() => editor.imageLayerToBackground(editor.activePage.id, singleImageLayer.id)}
178
202
  disabled={locked}
179
203
  >
180
204
  <SetAsBackgroundIcon />
@@ -1,29 +1,29 @@
1
1
  <script lang="ts">
2
- import CopyIcon from 'lucide-svelte/icons/copy';
3
- import PasteIcon from 'lucide-svelte/icons/clipboard';
4
- import DuplicateIcon from 'lucide-svelte/icons/copy-plus';
5
- import AddIcon from 'lucide-svelte/icons/file-plus-2';
6
- import TrashIcon from 'lucide-svelte/icons/trash-2';
7
- import LockIcon from 'lucide-svelte/icons/lock-keyhole';
8
- import UnlockIcon from 'lucide-svelte/icons/lock-keyhole-open';
2
+ import CopyIcon from '@lucide/svelte/icons/copy';
3
+ import PasteIcon from '@lucide/svelte/icons/clipboard';
4
+ import DuplicateIcon from '@lucide/svelte/icons/copy-plus';
5
+ import AddIcon from '@lucide/svelte/icons/file-plus-2';
6
+ import TrashIcon from '@lucide/svelte/icons/trash-2';
7
+ import LockIcon from '@lucide/svelte/icons/lock-keyhole';
8
+ import UnlockIcon from '@lucide/svelte/icons/lock-keyhole-open';
9
9
  import * as DropdownMenu from '../../ui/dropdown-menu/index.js';
10
- import type { PresentationEditor } from '../presentation-editor.svelte.js';
11
- import type { Slide } from '../types.js';
10
+ import type { Editor } from '../editor.svelte.js';
11
+ import type { Page } from '../types.js';
12
12
  import { checkIfMac } from '../../../utils.js';
13
13
 
14
14
  interface Props {
15
- editor: PresentationEditor;
16
- slide: Slide;
15
+ editor: Editor;
16
+ page: Page;
17
17
  }
18
18
 
19
- let { editor, slide }: Props = $props();
19
+ let { editor, page }: Props = $props();
20
20
 
21
- const locked = $derived(slide.locked);
21
+ const locked = $derived(page.locked);
22
22
 
23
23
  const isMac = checkIfMac();
24
24
  </script>
25
25
 
26
- <DropdownMenu.Item onclick={() => editor.copySlide(slide.id)}>
26
+ <DropdownMenu.Item onclick={() => editor.copyPage(page.id)}>
27
27
  <CopyIcon />
28
28
  Copy
29
29
  <DropdownMenu.Shortcut>{isMac ? '⌘C' : 'Ctrl+C'}</DropdownMenu.Shortcut>
@@ -35,19 +35,19 @@
35
35
  <DropdownMenu.Shortcut>{isMac ? '⌘V' : 'Ctrl+V'}</DropdownMenu.Shortcut>
36
36
  </DropdownMenu.Item>
37
37
 
38
- <DropdownMenu.Item onclick={() => editor.addSlide()}>
38
+ <DropdownMenu.Item onclick={() => editor.addPage()}>
39
39
  <AddIcon />
40
40
  Add page
41
41
  <DropdownMenu.Shortcut>{isMac ? '⌘⏎' : 'Ctrl+⏎'}</DropdownMenu.Shortcut>
42
42
  </DropdownMenu.Item>
43
43
 
44
- <DropdownMenu.Item onclick={() => editor.duplicateSlide(slide)}>
44
+ <DropdownMenu.Item onclick={() => editor.duplicatePage(page)}>
45
45
  <DuplicateIcon />
46
46
  Duplicate page
47
47
  <DropdownMenu.Shortcut>{isMac ? '⌘D' : 'Ctrl+D'}</DropdownMenu.Shortcut>
48
48
  </DropdownMenu.Item>
49
49
 
50
- <DropdownMenu.Item onclick={() => editor.removeSlide(slide.id)} disabled={locked}>
50
+ <DropdownMenu.Item onclick={() => editor.removePage(page.id)} disabled={locked}>
51
51
  <TrashIcon />
52
52
  Delete page
53
53
  <DropdownMenu.Shortcut>DELETE</DropdownMenu.Shortcut>
@@ -55,8 +55,8 @@
55
55
 
56
56
  <DropdownMenu.Separator />
57
57
 
58
- <DropdownMenu.Item onclick={() => editor.toggleSlideLocked(slide.id)}>
59
- {#if slide.locked}
58
+ <DropdownMenu.Item onclick={() => editor.togglePageLocked(page.id)}>
59
+ {#if page.locked}
60
60
  <UnlockIcon />
61
61
  Unlock page
62
62
  {:else}
@@ -0,0 +1,9 @@
1
+ import type { Editor } from '../editor.svelte.js';
2
+ import type { Page } from '../types.js';
3
+ interface Props {
4
+ editor: Editor;
5
+ page: Page;
6
+ }
7
+ declare const PageMenuContent: import("svelte").Component<Props, {}, "">;
8
+ type PageMenuContent = ReturnType<typeof PageMenuContent>;
9
+ export default PageMenuContent;
@@ -5,13 +5,14 @@
5
5
  ActiveLayerBorder,
6
6
  LayerWrapper,
7
7
  BackgroundLayer,
8
- HtmlLayer,
8
+ TextLayer,
9
9
  ImageLayer,
10
10
  ActiveBackgroundBorder,
11
+ GroupLayer,
11
12
  } from './layers/index.js';
12
13
  import type { ActiveLayerGuide } from './types.js';
13
- import { getPresentationEditorContext } from './presentation-editor.svelte.js';
14
- import SlideInner from './slide-inner.svelte';
14
+ import { getEditorContext } from './editor.svelte.js';
15
+ import PageInner from './page-inner.svelte';
15
16
  import ActiveLayers from './active-layers.svelte';
16
17
  import SnappingGuides from './snapping-guides.svelte';
17
18
 
@@ -22,7 +23,7 @@
22
23
 
23
24
  let { viewportRef = $bindable(null), wrapperRef = $bindable(null) }: Props = $props();
24
25
 
25
- const editor = getPresentationEditorContext();
26
+ const editor = getEditorContext();
26
27
 
27
28
  let activeLayerGuides: ActiveLayerGuide[] = $state([]);
28
29
 
@@ -37,7 +38,7 @@
37
38
  <div class="flex min-h-full flex-1">
38
39
  <div class="box-border flex w-full shrink-0 items-center justify-center p-0">
39
40
  <div bind:this={wrapperRef} class="translate-x-0 translate-y-0 p-4 transition-transform">
40
- <div class="relative flex flex-col items-center" data-slide-container>
41
+ <div class="relative flex flex-col items-center" data-page-container>
41
42
  <div
42
43
  class="m-0 overflow-hidden shadow-xl"
43
44
  style:width="{scaledWidth}px"
@@ -55,17 +56,15 @@
55
56
  style:height="{editor.height}px"
56
57
  >
57
58
  <BackgroundLayer bind:hoveredLayerId />
58
- <SlideInner />
59
- {#each editor.activeSlide.layers as layer, i (layer.id)}
60
- <LayerWrapper
61
- bind:layer={editor.activeSlide.layers[i]}
62
- bind:hoveredLayerId
63
- bind:activeLayerGuides
64
- >
65
- {#if editor.activeSlide.layers[i].type === 'html'}
66
- <HtmlLayer bind:layer={editor.activeSlide.layers[i]} />
67
- {:else if editor.activeSlide.layers[i].type === 'image'}
68
- <ImageLayer bind:layer={editor.activeSlide.layers[i]} />
59
+ <PageInner />
60
+ {#each editor.rootLayers as layer (layer.id)}
61
+ <LayerWrapper {layer} bind:hoveredLayerId bind:activeLayerGuides>
62
+ {#if layer.type === 'text'}
63
+ <TextLayer {layer} />
64
+ {:else if layer.type === 'image'}
65
+ <ImageLayer {layer} />
66
+ {:else if layer.type === 'group'}
67
+ <GroupLayer page={editor.activePage} {layer} />
69
68
  {/if}
70
69
  </LayerWrapper>
71
70
  {/each}
@@ -77,14 +76,16 @@
77
76
  style:width="{scaledWidth}px"
78
77
  style:height="{scaledHeight}px"
79
78
  >
80
- {#if hoveredLayerId === 'background'}
81
- {#if !editor.activeBackground}
82
- <ActiveBackgroundBorder />
83
- {/if}
84
- {:else if hoveredLayerId && !editor.activeLayerIds.has(hoveredLayerId)}
85
- {@const layer = editor.activeSlide.layers.find(({ id }) => id === hoveredLayerId)}
86
- {#if layer}
87
- <ActiveLayerBorder {layer} />
79
+ {#if hoveredLayerId}
80
+ {#if hoveredLayerId === 'background'}
81
+ {#if editor.activeSelection.type !== 'background'}
82
+ <ActiveBackgroundBorder />
83
+ {/if}
84
+ {:else if !editor.activeLayers.find((l) => l.id === hoveredLayerId)}
85
+ {@const layer = editor.rootLayers.find(({ id }) => id === hoveredLayerId)}
86
+ {#if layer}
87
+ <ActiveLayerBorder {layer} />
88
+ {/if}
88
89
  {/if}
89
90
  {/if}
90
91
 
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ viewportRef: HTMLDivElement | null;
3
+ wrapperRef: HTMLDivElement | null;
4
+ }
5
+ declare const PageEditor: import("svelte").Component<Props, {}, "viewportRef" | "wrapperRef">;
6
+ type PageEditor = ReturnType<typeof PageEditor>;
7
+ export default PageEditor;
@@ -1,13 +1,13 @@
1
1
  <script lang="ts">
2
2
  import { cn } from '../../utils.js';
3
- import { getPresentationEditorContext } from './presentation-editor.svelte.js';
3
+ import { getEditorContext } from './editor.svelte.js';
4
4
 
5
- const editor = getPresentationEditorContext();
5
+ const editor = getEditorContext();
6
6
 
7
7
  const inset = Math.round(Math.min(editor.width, editor.height) / 10);
8
8
 
9
9
  const onDragEnter = (e: DragEvent) => {
10
- console.log('dragenter slide inner', e);
10
+ console.log('dragenter page inner', e);
11
11
 
12
12
  if (editor.dragged) {
13
13
  e.preventDefault();
@@ -23,7 +23,7 @@
23
23
  };
24
24
 
25
25
  const onDragOver = (e: DragEvent) => {
26
- // console.log('dragover slide inner', e);
26
+ // console.log('dragover page inner', e);
27
27
  if (editor.dragged) {
28
28
  e.preventDefault();
29
29
  e.stopPropagation();
@@ -31,7 +31,7 @@
31
31
  };
32
32
 
33
33
  const onDrop = (e: DragEvent) => {
34
- console.log('drop slide inner', e);
34
+ console.log('drop page inner', e);
35
35
 
36
36
  const { dragged } = editor;
37
37
  if (dragged) {
@@ -11,8 +11,8 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
11
11
  };
12
12
  z_$$bindings?: Bindings;
13
13
  }
14
- declare const Sidebar: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
14
+ declare const PageInner: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
15
  [evt: string]: CustomEvent<any>;
16
16
  }, {}, {}, string>;
17
- type Sidebar = InstanceType<typeof Sidebar>;
18
- export default Sidebar;
17
+ type PageInner = InstanceType<typeof PageInner>;
18
+ export default PageInner;
@@ -0,0 +1,69 @@
1
+ <script lang="ts">
2
+ import { BROWSER } from 'esm-env';
3
+ import { onMount } from 'svelte';
4
+ import type { PageOptions } from './types.js';
5
+ import { extractNodeFonts } from './layers/types/text/editor/utils.js';
6
+ import { defaultFonts } from './fonts.js';
7
+ import PagePreview from './pages-navigation/page-preview.svelte';
8
+
9
+ const {
10
+ page,
11
+ thumbScale = 1,
12
+ fonts = defaultFonts,
13
+ loadFont = async (family: string) => {
14
+ const font = fonts[family];
15
+ if (!font) return;
16
+ const WebFont = await import('webfontloader');
17
+ return new Promise((resolve, reject) => {
18
+ WebFont.load({
19
+ [font.type]: { families: [family] },
20
+ active: () => resolve(),
21
+ inactive: reject,
22
+ });
23
+ });
24
+ },
25
+ class: className,
26
+ ...restProps
27
+ }: PageOptions = $props();
28
+
29
+ if (BROWSER) {
30
+ const fontFamilies = page.layers
31
+ .filter((layer) => layer.type === 'text')
32
+ .flatMap((layer) => extractNodeFonts(layer.html));
33
+ Promise.all(fontFamilies.map(loadFont));
34
+ }
35
+
36
+ let element: HTMLDivElement | null = $state(null);
37
+
38
+ let width = 1920 * thumbScale;
39
+ let height = 1080 * thumbScale;
40
+
41
+ let scale = $state(1);
42
+
43
+ onMount(() => {
44
+ const observer = new ResizeObserver((entries) => {
45
+ for (const entry of entries) {
46
+ const scaleX = entry.contentRect.width / width;
47
+ const scaleY = entry.contentRect.height / height;
48
+ scale = Math.min(scaleX, scaleY); // preserve aspect ratio
49
+ }
50
+ });
51
+
52
+ if (element) observer.observe(element);
53
+
54
+ return () => observer.disconnect();
55
+ });
56
+ </script>
57
+
58
+ <div class={className} {...restProps}>
59
+ <div bind:this={element} class="h-full w-full">
60
+ <div
61
+ class="relative origin-top-left"
62
+ style:width="{width}px"
63
+ style:height="{height}px"
64
+ style:transform="scale({scale})"
65
+ >
66
+ <PagePreview {page} {thumbScale} />
67
+ </div>
68
+ </div>
69
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { PageOptions } from './types.js';
2
+ declare const Page: import("svelte").Component<PageOptions, {}, "">;
3
+ type Page = ReturnType<typeof Page>;
4
+ export default Page;
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import {
3
+ BackgroundLayerContent,
4
+ LayerThumbWrapper,
5
+ TextLayerContent,
6
+ ImageLayerContent,
7
+ GroupLayerContent,
8
+ } from '../layers/index.js';
9
+ import type { Page } from '../types.js';
10
+
11
+ interface Props {
12
+ page: Page;
13
+ thumbScale: number;
14
+ }
15
+
16
+ let { page, thumbScale }: Props = $props();
17
+
18
+ let rootLayers = $derived(page.layers.filter((l) => l.type === 'group' || !l.groupId));
19
+ </script>
20
+
21
+ <div class="absolute inset-0 overflow-hidden">
22
+ <BackgroundLayerContent {page} {thumbScale} />
23
+ </div>
24
+ {#each rootLayers as layer (layer.id)}
25
+ <LayerThumbWrapper {layer} thumb={thumbScale}>
26
+ {#snippet children({ thumbScale })}
27
+ {#if layer.type === 'text'}
28
+ <TextLayerContent {layer} {thumbScale} />
29
+ {:else if layer.type === 'image'}
30
+ <ImageLayerContent {layer} {thumbScale} />
31
+ {:else if layer.type === 'group'}
32
+ <GroupLayerContent {page} {layer} {thumbScale} />
33
+ {/if}
34
+ {/snippet}
35
+ </LayerThumbWrapper>
36
+ {/each}
@@ -0,0 +1,8 @@
1
+ import type { Page } from '../types.js';
2
+ interface Props {
3
+ page: Page;
4
+ thumbScale: number;
5
+ }
6
+ declare const PagePreview: import("svelte").Component<Props, {}, "">;
7
+ type PagePreview = ReturnType<typeof PagePreview>;
8
+ export default PagePreview;