@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,13 +1,17 @@
1
1
  <script lang="ts">
2
- import UndoIcon from 'lucide-svelte/icons/undo-2';
3
- import RedoIcon from 'lucide-svelte/icons/redo-2';
2
+ import UndoIcon from '@lucide/svelte/icons/undo-2';
3
+ import RedoIcon from '@lucide/svelte/icons/redo-2';
4
4
  import { Separator } from '../ui/separator/index.js';
5
5
  import { Button } from '../ui/button/index.js';
6
- import { getPresentationEditorContext } from './presentation-editor.svelte.js';
6
+ import type { Editor } from './editor.svelte.js';
7
7
  import { BackgroundLayerButtons } from './layers/index.js';
8
8
  import ActiveLayersButtons from './active-layers-buttons.svelte';
9
9
 
10
- const editor = getPresentationEditorContext();
10
+ interface Props {
11
+ editor: Editor;
12
+ }
13
+
14
+ const { editor }: Props = $props();
11
15
  </script>
12
16
 
13
17
  <div class="bg-background h-12 w-full border-b border-gray-200 px-2">
@@ -30,9 +34,9 @@
30
34
  <RedoIcon class="h-6 w-6" />
31
35
  </Button>
32
36
  <div class="grid grid-flow-col items-center gap-2 overflow-x-auto">
33
- {#if !editor.activeSlide.locked}
34
- {#if editor.activeBackground}
35
- {#if !editor.activeSlide.backgroundLocked}
37
+ {#if !editor.activePage.locked}
38
+ {#if editor.activeSelection.type === 'background'}
39
+ {#if !editor.activePage.backgroundLocked}
36
40
  <BackgroundLayerButtons />
37
41
  {/if}
38
42
  {:else if editor.activeLayers.length}
@@ -0,0 +1,7 @@
1
+ import type { Editor } from './editor.svelte.js';
2
+ interface Props {
3
+ editor: Editor;
4
+ }
5
+ declare const Header: import("svelte").Component<Props, {}, "">;
6
+ type Header = ReturnType<typeof Header>;
7
+ export default Header;
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- import { getPresentationEditorContext } from './presentation-editor.svelte.js';
2
+ import { getEditorContext } from './editor.svelte.js';
3
3
 
4
- const editor = getPresentationEditorContext();
4
+ const editor = getEditorContext();
5
5
 
6
6
  const onKeyDown = (e: KeyboardEvent) => {
7
7
  console.log('keydown hotkey', e);
@@ -20,18 +20,18 @@
20
20
  }
21
21
  } else if (!editor.activeAction) {
22
22
  if (e.code === 'Enter' && (e.metaKey || e.ctrlKey)) {
23
- editor.addSlide();
23
+ editor.addPage();
24
24
  e.preventDefault();
25
25
  } else if (['Delete', 'Backspace'].includes(e.code)) {
26
26
  if (editor.activeLayers.length) {
27
27
  editor.removeLayers(
28
- editor.activeSlide.id,
29
- editor.activeLayers.map(({ id }) => id),
28
+ editor.activePage.id,
29
+ editor.selectedLayers.map((l) => l.id),
30
30
  );
31
- } else if (editor.activeBackground) {
32
- editor.removeBackground(editor.activeSlide.id);
33
- } else if (editor.slideSelected) {
34
- editor.removeSlide(editor.activeSlide.id);
31
+ } else if (editor.activeSelection.type === 'background') {
32
+ editor.removeBackground(editor.activePage.id);
33
+ } else if (editor.pageSelected) {
34
+ editor.removePage(editor.activePage.id);
35
35
  }
36
36
  } else if (e.code === 'KeyZ') {
37
37
  if (e.metaKey || e.ctrlKey) {
@@ -44,25 +44,25 @@
44
44
  } else if (e.code === 'KeyY' && (e.metaKey || e.ctrlKey)) {
45
45
  editor.historyRedo();
46
46
  } else if (e.code === 'KeyD' && (e.metaKey || e.ctrlKey)) {
47
- if (editor.slideSelected) {
48
- editor.duplicateSlide(editor.activeSlide);
47
+ if (editor.pageSelected) {
48
+ editor.duplicatePage(editor.activePage);
49
49
  e.preventDefault();
50
50
  }
51
51
  } else if (e.code === 'KeyC' && (e.metaKey || e.ctrlKey)) {
52
52
  if (editor.activeLayers.length) {
53
53
  editor.copyLayers(
54
- editor.activeSlide.id,
54
+ editor.activePage.id,
55
55
  editor.activeLayers.map(({ id }) => id),
56
56
  );
57
- } else if (editor.slideSelected) {
58
- editor.copySlide(editor.activeSlide.id);
57
+ } else if (editor.pageSelected) {
58
+ editor.copyPage(editor.activePage.id);
59
59
  }
60
60
  } else if (e.code === 'KeyV' && (e.metaKey || e.ctrlKey)) {
61
61
  editor.clipboardPaste();
62
62
  } else if (e.code === 'BracketLeft' && (e.metaKey || e.ctrlKey)) {
63
63
  if (editor.activeLayers.length) {
64
64
  editor.moveLayers(
65
- editor.activeSlide.id,
65
+ editor.activePage.id,
66
66
  editor.activeLayers.map(({ id }) => id),
67
67
  e.altKey ? 'back' : 'backward',
68
68
  );
@@ -71,12 +71,37 @@
71
71
  } else if (e.code === 'BracketRight' && (e.metaKey || e.ctrlKey)) {
72
72
  if (editor.activeLayers.length) {
73
73
  editor.moveLayers(
74
- editor.activeSlide.id,
74
+ editor.activePage.id,
75
75
  editor.activeLayers.map(({ id }) => id),
76
76
  e.altKey ? 'front' : 'forward',
77
77
  );
78
78
  e.preventDefault();
79
79
  }
80
+ } else if (e.code === 'KeyG' && (e.metaKey || e.ctrlKey)) {
81
+ if (editor.activeLayers.length) {
82
+ if (e.shiftKey) {
83
+ console.log('ungroup');
84
+ editor.ungroupLayers(
85
+ editor.activePage.id,
86
+ editor.activeLayers.map(({ id }) => id),
87
+ );
88
+ } else {
89
+ editor.groupLayers(
90
+ editor.activePage.id,
91
+ editor.activeLayers.map(({ id }) => id),
92
+ );
93
+ }
94
+ e.preventDefault();
95
+ }
96
+ } else if (e.code === 'KeyL' && e.altKey && e.shiftKey) {
97
+ if (editor.activeLayers.length) {
98
+ editor.toggleLayersLocked(
99
+ editor.activePage.id,
100
+ editor.activeLayers.map(({ id }) => id),
101
+ !editor.activeLayers.some(({ locked }) => locked),
102
+ );
103
+ e.preventDefault();
104
+ }
80
105
  }
81
106
  }
82
107
  };
@@ -0,0 +1,3 @@
1
+ import Editor from './editor.svelte';
2
+ import Page from './page.svelte';
3
+ export { Editor, Page };
@@ -0,0 +1,3 @@
1
+ import Editor from './editor.svelte';
2
+ import Page from './page.svelte';
3
+ export { Editor, Page };
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
- import { getPresentationEditorContext } from '../presentation-editor.svelte.js';
2
+ import { getEditorContext } from '../editor.svelte.js';
3
3
 
4
- const editor = getPresentationEditorContext();
4
+ const editor = getEditorContext();
5
5
  </script>
6
6
 
7
7
  <div
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
- import { getPresentationEditorContext } from '../presentation-editor.svelte.js';
3
2
  import type { Layer } from '../types.js';
3
+ import { getEditorContext } from '../editor.svelte.js';
4
4
 
5
5
  interface Props {
6
6
  layer: Layer;
@@ -8,17 +8,14 @@
8
8
 
9
9
  let { layer }: Props = $props();
10
10
 
11
- const editor = getPresentationEditorContext();
12
-
13
- let scale = $derived(layer.scale ?? 1);
14
- let rotate = $derived(layer.rotate ?? 0);
11
+ const editor = getEditorContext();
15
12
  </script>
16
13
 
17
14
  <div
18
15
  class="pointer-events-none absolute left-0 top-0 h-full w-full"
19
- style:width={`${layer.width * scale * editor.zoom}px`}
20
- style:height={`${layer.height * scale * editor.zoom}px`}
21
- style:transform={`translate(${layer.x * editor.zoom}px, ${layer.y * editor.zoom}px) rotate(${rotate}deg)`}
16
+ style:width={`${layer.width * layer.scale * editor.zoom}px`}
17
+ style:height={`${layer.height * layer.scale * editor.zoom}px`}
18
+ style:transform={`translate(${layer.x * editor.zoom}px, ${layer.y * editor.zoom}px) rotate(${layer.rotate}deg)`}
22
19
  >
23
20
  <div
24
21
  class="border-primary absolute -inset-px border-2"
@@ -0,0 +1,59 @@
1
+ <script lang="ts">
2
+ import { Button, type ButtonProps } from '../../../../ui/button/index.js';
3
+ import { AlphaGrid } from '../../../../ui/color-picker/index.js';
4
+ import { ColorIndicatorGradientDef } from '../../../color-indicator/index.js';
5
+ import { generateId } from '../../../../../utils.js';
6
+
7
+ interface Props extends ButtonProps {
8
+ borderColors: string[];
9
+ width: number;
10
+ height: number;
11
+ }
12
+
13
+ let { borderColors, width, height, ...restProps }: Props = $props();
14
+
15
+ let partitionWidth = $derived(width / borderColors.length);
16
+
17
+ let gradientId = generateId();
18
+
19
+ const isGradient = (color: string) => ~color.indexOf(':');
20
+
21
+ let containGradient = $derived(borderColors.some(isGradient));
22
+ </script>
23
+
24
+ <Button variant="ghost" size="icon-xs" {...restProps}>
25
+ <span
26
+ class="relative overflow-hidden rounded-full border border-gray-300"
27
+ style:width="{width}px"
28
+ style:height="{height}px"
29
+ >
30
+ <AlphaGrid size={12}>
31
+ <svg class="absolute inset-0" preserveAspectRatio="none" viewBox="0 0 {width} {height}">
32
+ {#if containGradient}
33
+ <defs>
34
+ {#each borderColors as color, index}
35
+ {#if isGradient(color)}
36
+ <ColorIndicatorGradientDef id="{gradientId}_{index}" {color} {width} {height} />
37
+ {/if}
38
+ {/each}
39
+ </defs>
40
+ {/if}
41
+ {#each borderColors as color, index}
42
+ <rect
43
+ y="0"
44
+ x={index * partitionWidth}
45
+ {height}
46
+ width={partitionWidth}
47
+ fill={isGradient(color) ? `url(#${gradientId}_${index})` : color}
48
+ shape-rendering="crispEdges"
49
+ ></rect>
50
+ {/each}
51
+ </svg>
52
+ <span
53
+ class="bg-background absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full"
54
+ style:width="{width / 2}px"
55
+ style:height="{height / 2}px"
56
+ ></span>
57
+ </AlphaGrid>
58
+ </span>
59
+ </Button>
@@ -0,0 +1,9 @@
1
+ import { type ButtonProps } from '../../../../ui/button/index.js';
2
+ interface Props extends ButtonProps {
3
+ borderColors: string[];
4
+ width: number;
5
+ height: number;
6
+ }
7
+ declare const BorderButtonColors: import("svelte").Component<Props, {}, "">;
8
+ type BorderButtonColors = ReturnType<typeof BorderButtonColors>;
9
+ export default BorderButtonColors;
@@ -4,18 +4,15 @@
4
4
  import BorderSolidIcon from 'svelte-radix/BorderSolid.svelte';
5
5
  import BorderDashedIcon from 'svelte-radix/BorderDashed.svelte';
6
6
  import BorderDottedIcon from 'svelte-radix/BorderDotted.svelte';
7
- import type {
8
- ImageLayer,
9
- LayerBorder,
10
- HistoryAction,
11
- } from '../../../types.js';
12
- import { getPresentationEditorContext } from '../../../presentation-editor.svelte.js';
7
+ import type { ImageLayer, LayerBorder, HistoryAction } from '../../../types.js';
8
+ import { getEditorContext } from '../../../editor.svelte.js';
13
9
  import * as Popover from '../../../../ui/popover/index.js';
14
10
  import { Button } from '../../../../ui/button/index.js';
15
11
  import { Slider } from '../../../../ui/slider/index.js';
16
12
  import { Input } from '../../../../ui/input/index.js';
17
13
  import { createDebouncedCallback } from '../../../../../utils.js';
18
- import { buildBackgroundCircleStyle, extractBorderColors } from '../../utils.js';
14
+ import { extractBorderColors } from '../../utils.js';
15
+ import BorderButtonColors from './border-button-colors.svelte';
19
16
 
20
17
  interface Props {
21
18
  layers: ImageLayer[];
@@ -23,25 +20,24 @@
23
20
 
24
21
  let { layers = $bindable() }: Props = $props();
25
22
 
26
- const editor = getPresentationEditorContext();
27
-
28
- const getLayerBorderWidth = (layer: ImageLayer) =>
29
- layer.borderStyle ? layer.borderWidth || 0 : 0;
23
+ const editor = getEditorContext();
30
24
 
31
25
  const borderWidth = $derived.by(() => {
32
26
  if (!layers.length) return;
33
27
 
34
- const firstLayerBorderWidth = getLayerBorderWidth(layers[0]);
35
- const allSame = layers.every((layer) => getLayerBorderWidth(layer) === firstLayerBorderWidth);
28
+ const firstLayerBorderWidth = layers[0].borderWidth;
29
+ const allSame = layers.every((layer) => layer.borderWidth === firstLayerBorderWidth);
36
30
 
37
31
  return allSame ? firstLayerBorderWidth : undefined;
38
32
  });
39
33
 
34
+ const getLayerBorderStyle = (layer: ImageLayer) => (layer.borderWidth ? layer.borderStyle : null);
35
+
40
36
  const borderStyle = $derived.by(() => {
41
37
  if (!layers.length) return;
42
38
 
43
- const firstLayerBorderWidth = layers[0].borderStyle;
44
- const allSame = layers.every((layer) => layer.borderStyle === firstLayerBorderWidth);
39
+ const firstLayerBorderWidth = getLayerBorderStyle(layers[0]);
40
+ const allSame = layers.every((layer) => getLayerBorderStyle(layer) === firstLayerBorderWidth);
45
41
 
46
42
  return allSame ? firstLayerBorderWidth : undefined;
47
43
  });
@@ -51,32 +47,31 @@
51
47
  const setStyle = (value: LayerBorder['borderStyle']) => {
52
48
  if (value === borderStyle) return;
53
49
 
54
- editor.historyPush({
55
- type: 'layersGroup',
56
- actions: layers.map((layer) => {
50
+ editor.historyPush(
51
+ layers.map((layer) => {
57
52
  const undo = {
58
53
  borderStyle: layer.borderStyle,
59
54
  borderWidth: layer.borderWidth,
60
55
  };
61
56
  const redo = {
62
57
  borderStyle: value,
63
- borderWidth: layer.borderWidth ?? 10,
58
+ borderWidth: layer.borderWidth || 10,
64
59
  };
65
60
  Object.assign(layer, redo);
66
61
  return {
67
- type: 'layer',
68
- slideId: editor.activeSlide.id,
62
+ type: 'layerUpdate',
63
+ pageId: editor.activePage.id,
69
64
  layer: { id: layer.id, type: layer.type },
70
65
  undo,
71
66
  redo,
72
67
  };
73
68
  }),
74
- });
69
+ );
75
70
  };
76
71
 
77
72
  let initial: (ImageLayer & { state: ImageLayer })[] | null = null;
78
- const debouncedHistoryPush = createDebouncedCallback((action: HistoryAction) => {
79
- editor.historyPush(action);
73
+ const debouncedHistoryPush = createDebouncedCallback((actions: HistoryAction[]) => {
74
+ editor.historyPush(actions);
80
75
  initial = null;
81
76
  }, 500);
82
77
 
@@ -92,32 +87,27 @@
92
87
  if (!initial) {
93
88
  initial = layers.map((layer) => ({ ...layer, state: layer }));
94
89
  }
95
- const action: HistoryAction = {
96
- type: 'layersGroup',
97
- actions: initial.map((layerWithState) => {
98
- const { state, ...layer } = layerWithState;
99
- const undo = {
100
- borderStyle: layer.borderStyle,
101
- borderWidth: layer.borderWidth,
102
- };
103
- const redo = {
104
- borderStyle: layer.borderStyle ?? 'solid',
105
- borderWidth: borderWidth,
106
- };
107
- Object.assign(state, redo);
108
- return {
109
- type: 'layer',
110
- slideId: editor.activeSlide.id,
111
- layer: { id: layer.id, type: layer.type },
112
- undo,
113
- redo,
114
- };
115
- }),
116
- };
90
+ const actions: HistoryAction[] = initial.map((layerWithState) => {
91
+ const { state, ...layer } = layerWithState;
92
+ const undo = {
93
+ borderWidth: layer.borderWidth,
94
+ };
95
+ const redo = {
96
+ borderWidth: borderWidth,
97
+ };
98
+ Object.assign(state, redo);
99
+ return {
100
+ type: 'layerUpdate',
101
+ pageId: editor.activePage.id,
102
+ layer: { id: layer.id, type: layer.type },
103
+ undo,
104
+ redo,
105
+ };
106
+ });
117
107
  if (debounce) {
118
- debouncedHistoryPush(action);
108
+ debouncedHistoryPush(actions);
119
109
  } else {
120
- editor.historyPush(action);
110
+ editor.historyPush(actions);
121
111
  initial = null;
122
112
  }
123
113
  };
@@ -138,8 +128,8 @@
138
128
  <Button
139
129
  variant="outline"
140
130
  class="w-12 p-2"
141
- active={borderStyle === null}
142
- onclick={() => setStyle(null)}
131
+ active={borderWidth === 0}
132
+ onclick={() => setWidth(0)}
143
133
  >
144
134
  <BorderNoneIcon class="h-6 w-6" />
145
135
  </Button>
@@ -175,7 +165,7 @@
175
165
  <div class="grow">
176
166
  <Slider
177
167
  type="single"
178
- value={borderWidth || 0}
168
+ value={borderWidth}
179
169
  {min}
180
170
  {max}
181
171
  step={1}
@@ -188,7 +178,7 @@
188
178
  inputmode="decimal"
189
179
  placeholder="--"
190
180
  value={borderWidth}
191
- onchange={(e) => setWidth(e.target.value)}
181
+ onchange={(e) => setWidth(e.currentTarget.value)}
192
182
  />
193
183
  </div>
194
184
  </div>
@@ -197,19 +187,11 @@
197
187
  </Popover.Root>
198
188
 
199
189
  {#if borderColors}
200
- <Button
201
- variant="ghost"
202
- size="icon-xs"
190
+ <BorderButtonColors
191
+ {borderColors}
192
+ width={24}
193
+ height={24}
203
194
  onclick={() => editor.toggleActiveSidebarPopup('borderColor')}
204
195
  active={editor.activeSidebarPopup === 'borderColor'}
205
- >
206
- <span
207
- class="relative h-6 w-6 rounded-full border border-gray-300"
208
- style={buildBackgroundCircleStyle(borderColors)}
209
- >
210
- <span
211
- class="bg-background absolute left-1/2 top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full"
212
- ></span>
213
- </span>
214
- </Button>
196
+ />
215
197
  {/if}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import CornerRadiusIcon from 'svelte-radix/CornerTopLeft.svelte';
3
3
  import type { ImageLayer, HistoryAction } from '../../../types.js';
4
- import { getPresentationEditorContext } from '../../../presentation-editor.svelte.js';
4
+ import { getEditorContext } from '../../../editor.svelte.js';
5
5
  import * as Popover from '../../../../ui/popover/index.js';
6
6
  import { Button } from '../../../../ui/button/index.js';
7
7
  import { Slider } from '../../../../ui/slider/index.js';
@@ -14,7 +14,7 @@
14
14
 
15
15
  let { layers = $bindable() }: Props = $props();
16
16
 
17
- const editor = getPresentationEditorContext();
17
+ const editor = getEditorContext();
18
18
 
19
19
  const cornerRadius = $derived.by(() => {
20
20
  if (!layers.length) return;
@@ -22,14 +22,13 @@
22
22
  const firstLayerCornerRadius = layers[0].cornerRadius;
23
23
  const allSame = layers.every((layer) => layer.cornerRadius === firstLayerCornerRadius);
24
24
 
25
- return allSame ? firstLayerCornerRadius || 0 : undefined;
25
+ return allSame ? firstLayerCornerRadius : undefined;
26
26
  });
27
27
 
28
28
  let initial: (ImageLayer & { state: ImageLayer })[] | null = null;
29
- let undo: { cornerRadius: number | null } | null = null;
30
- const debouncedHistoryPush = createDebouncedCallback((action: HistoryAction) => {
31
- editor.historyPush(action);
32
- undo = null;
29
+ const debouncedHistoryPush = createDebouncedCallback((actions: HistoryAction[]) => {
30
+ editor.historyPush(actions);
31
+ initial = null;
33
32
  }, 500);
34
33
 
35
34
  let min = 0;
@@ -44,27 +43,24 @@
44
43
  if (!initial) {
45
44
  initial = layers.map((layer) => ({ ...layer, state: layer }));
46
45
  }
47
- const action: HistoryAction = {
48
- type: 'layersGroup',
49
- actions: initial.map((layerWithState) => {
50
- const { state, ...layer } = layerWithState;
51
- const undo = { cornerRadius: layer.cornerRadius };
52
- const redo = { cornerRadius: value || null };
53
- Object.assign(state, redo);
54
- return {
55
- type: 'layer',
56
- slideId: editor.activeSlide.id,
57
- layer: { id: layer.id, type: layer.type },
58
- undo,
59
- redo,
60
- };
61
- }),
62
- };
46
+ const actions: HistoryAction[] = initial.map((layerWithState) => {
47
+ const { state, ...layer } = layerWithState;
48
+ const undo = { cornerRadius: layer.cornerRadius };
49
+ const redo = { cornerRadius: value };
50
+ Object.assign(state, redo);
51
+ return {
52
+ type: 'layerUpdate',
53
+ pageId: editor.activePage.id,
54
+ layer: { id: layer.id, type: layer.type },
55
+ undo,
56
+ redo,
57
+ };
58
+ });
63
59
  if (debounce) {
64
- debouncedHistoryPush(action);
60
+ debouncedHistoryPush(actions);
65
61
  } else {
66
- editor.historyPush(action);
67
- undo = null;
62
+ editor.historyPush(actions);
63
+ initial = null;
68
64
  }
69
65
  };
70
66
  </script>
@@ -85,7 +81,7 @@
85
81
  <div class="grow">
86
82
  <Slider
87
83
  type="single"
88
- value={cornerRadius || 0}
84
+ value={cornerRadius}
89
85
  {min}
90
86
  {max}
91
87
  step={1}
@@ -98,7 +94,7 @@
98
94
  inputmode="decimal"
99
95
  placeholder="--"
100
96
  value={cornerRadius}
101
- onchange={(e) => setCornerRadius(e.target.value)}
97
+ onchange={(e) => setCornerRadius(e.currentTarget.value)}
102
98
  />
103
99
  </div>
104
100
  </div>
@@ -1,8 +1,8 @@
1
1
  <script lang="ts">
2
- import FlipHorizontalIcon from 'lucide-svelte/icons/flip-horizontal';
3
- import FlipVerticalIcon from 'lucide-svelte/icons/flip-vertical';
2
+ import FlipHorizontalIcon from '@lucide/svelte/icons/flip-horizontal';
3
+ import FlipVerticalIcon from '@lucide/svelte/icons/flip-vertical';
4
4
  import type { ImageLayer, BackgroundImage } from '../../../types.js';
5
- import { getPresentationEditorContext } from '../../../presentation-editor.svelte.js';
5
+ import { getEditorContext } from '../../../editor.svelte.js';
6
6
  import * as DropdownMenu from '../../../../ui/dropdown-menu/index.js';
7
7
  import { buttonVariants } from '../../../../ui/button/index.js';
8
8
 
@@ -12,32 +12,31 @@
12
12
 
13
13
  let { layers = $bindable() }: Props = $props();
14
14
 
15
- const editor = getPresentationEditorContext();
15
+ const editor = getEditorContext();
16
16
 
17
17
  const flipToggle = (isHorizontal?: boolean) => () => {
18
18
  if (Array.isArray(layers)) {
19
- editor.historyPush({
20
- type: 'layersGroup',
21
- actions: layers.map((layer) => {
19
+ editor.historyPush(
20
+ layers.map((layer) => {
22
21
  const undo = isHorizontal ? { flipY: layer.flipY } : { flipX: layer.flipX };
23
22
  const redo = isHorizontal ? { flipY: !layer.flipY } : { flipX: !layer.flipX };
24
23
  Object.assign(layer, redo);
25
24
  return {
26
- type: 'layer',
27
- slideId: editor.activeSlide.id,
25
+ type: 'layerUpdate',
26
+ pageId: editor.activePage.id,
28
27
  layer: { id: layer.id, type: layer.type },
29
28
  undo,
30
29
  redo,
31
30
  };
32
31
  }),
33
- });
32
+ );
34
33
  } else {
35
34
  const undo = isHorizontal ? { flipY: layers.flipY } : { flipX: layers.flipX };
36
35
  const redo = isHorizontal ? { flipY: !layers.flipY } : { flipX: !layers.flipX };
37
36
  Object.assign(layers, redo);
38
37
  editor.historyPush({
39
- type: 'backgroundImage',
40
- slideId: editor.activeSlide.id,
38
+ type: 'backgroundImageUpdate',
39
+ pageId: editor.activePage.id,
41
40
  undo,
42
41
  redo,
43
42
  });