@markup-canvas/core 1.0.0

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 (194) hide show
  1. package/README.md +245 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/lib/MarkupCanvas.d.ts +78 -0
  4. package/dist/lib/canvas/calcVisibleArea.d.ts +10 -0
  5. package/dist/lib/canvas/checkContainerDimensions.d.ts +1 -0
  6. package/dist/lib/canvas/config.d.ts +2 -0
  7. package/dist/lib/canvas/createCanvas.d.ts +2 -0
  8. package/dist/lib/canvas/createCanvasLayers.d.ts +6 -0
  9. package/dist/lib/canvas/getCanvasBounds.d.ts +2 -0
  10. package/dist/lib/canvas/getCanvasMethods.d.ts +12 -0
  11. package/dist/lib/canvas/getEmptyBounds.d.ts +2 -0
  12. package/dist/lib/canvas/index.d.ts +3 -0
  13. package/dist/lib/canvas/moveExistingContent.d.ts +1 -0
  14. package/dist/lib/canvas/setupCanvasContainer.d.ts +1 -0
  15. package/dist/lib/canvas/setupContentLayer.d.ts +1 -0
  16. package/dist/lib/canvas/setupTransformLayer.d.ts +2 -0
  17. package/dist/lib/config/constants.d.ts +2 -0
  18. package/dist/lib/config/createMarkupCanvasConfig.d.ts +2 -0
  19. package/dist/lib/constants.d.ts +7 -0
  20. package/dist/lib/events/EventEmitter.d.ts +7 -0
  21. package/dist/lib/events/constants.d.ts +7 -0
  22. package/dist/lib/events/index.d.ts +6 -0
  23. package/dist/lib/events/keyboard/handleKeyDown.d.ts +4 -0
  24. package/dist/lib/events/keyboard/handleKeyUp.d.ts +6 -0
  25. package/dist/lib/events/keyboard/setupKeyboardEvents.d.ts +2 -0
  26. package/dist/lib/events/keyboard/setupKeyboardNavigation.d.ts +2 -0
  27. package/dist/lib/events/mouse/handleClickToZoom.d.ts +2 -0
  28. package/dist/lib/events/mouse/handleMouseDown.d.ts +11 -0
  29. package/dist/lib/events/mouse/handleMouseLeave.d.ts +5 -0
  30. package/dist/lib/events/mouse/handleMouseMove.d.ts +7 -0
  31. package/dist/lib/events/mouse/handleMouseUp.d.ts +7 -0
  32. package/dist/lib/events/mouse/setupMouseDrag.d.ts +4 -0
  33. package/dist/lib/events/mouse/setupMouseEvents.d.ts +4 -0
  34. package/dist/lib/events/touch/getTouchCenter.d.ts +4 -0
  35. package/dist/lib/events/touch/getTouchDistance.d.ts +1 -0
  36. package/dist/lib/events/touch/handleTouchEnd.d.ts +2 -0
  37. package/dist/lib/events/touch/handleTouchMove.d.ts +2 -0
  38. package/dist/lib/events/touch/handleTouchStart.d.ts +2 -0
  39. package/dist/lib/events/touch/setupTouchEvents.d.ts +2 -0
  40. package/dist/lib/events/trackpad/createTrackpadPanHandler.d.ts +4 -0
  41. package/dist/lib/events/trackpad/detectTrackpadGesture.d.ts +2 -0
  42. package/dist/lib/events/utils/getAdaptiveZoomSpeed.d.ts +2 -0
  43. package/dist/lib/events/utils/resetClickState.d.ts +4 -0
  44. package/dist/lib/events/utils/resetDragState.d.ts +5 -0
  45. package/dist/lib/events/utils/updateCursor.d.ts +2 -0
  46. package/dist/lib/events/wheel/handleWheel.d.ts +2 -0
  47. package/dist/lib/events/wheel/setupWheelEvents.d.ts +2 -0
  48. package/dist/lib/events/wheel/setupWheelHandler.d.ts +2 -0
  49. package/dist/lib/helpers/index.d.ts +6 -0
  50. package/dist/lib/helpers/withClampedZoom.d.ts +2 -0
  51. package/dist/lib/helpers/withDebounce.d.ts +1 -0
  52. package/dist/lib/helpers/withFeatureEnabled.d.ts +2 -0
  53. package/dist/lib/helpers/withRAF.d.ts +4 -0
  54. package/dist/lib/helpers/withRulerCheck.d.ts +18 -0
  55. package/dist/lib/helpers/withRulerOffset.d.ts +3 -0
  56. package/dist/lib/matrix/canvasToContent.d.ts +2 -0
  57. package/dist/lib/matrix/clampZoom.d.ts +2 -0
  58. package/dist/lib/matrix/contentToCanvas.d.ts +2 -0
  59. package/dist/lib/matrix/createMatrix.d.ts +1 -0
  60. package/dist/lib/matrix/createMatrixString.d.ts +1 -0
  61. package/dist/lib/matrix/getZoomToMouseTransform.d.ts +2 -0
  62. package/dist/lib/matrix/index.d.ts +5 -0
  63. package/dist/lib/rulers/RulerElements.d.ts +6 -0
  64. package/dist/lib/rulers/constants.d.ts +19 -0
  65. package/dist/lib/rulers/createCornerBox.d.ts +2 -0
  66. package/dist/lib/rulers/createGridOverlay.d.ts +2 -0
  67. package/dist/lib/rulers/createHorizontalRuler.d.ts +2 -0
  68. package/dist/lib/rulers/createRulerElements.d.ts +3 -0
  69. package/dist/lib/rulers/createRulers.d.ts +2 -0
  70. package/dist/lib/rulers/createVerticalRuler.d.ts +2 -0
  71. package/dist/lib/rulers/index.d.ts +2 -0
  72. package/dist/lib/rulers/setupRulerEvents.d.ts +2 -0
  73. package/dist/lib/rulers/ticks/calculateTickSpacing.d.ts +1 -0
  74. package/dist/lib/rulers/ticks/createHorizontalTick.d.ts +2 -0
  75. package/dist/lib/rulers/ticks/createVerticalTick.d.ts +2 -0
  76. package/dist/lib/rulers/ticks/index.d.ts +3 -0
  77. package/dist/lib/rulers/updateGrid.d.ts +1 -0
  78. package/dist/lib/rulers/updateHorizontalRuler.d.ts +2 -0
  79. package/dist/lib/rulers/updateRulers.d.ts +2 -0
  80. package/dist/lib/rulers/updateVerticalRuler.d.ts +2 -0
  81. package/dist/lib/transform/applyTransform.d.ts +1 -0
  82. package/dist/lib/transform/applyZoomToCanvas.d.ts +2 -0
  83. package/dist/lib/transform/hardware-acceleration.d.ts +1 -0
  84. package/dist/lib/transform/index.d.ts +2 -0
  85. package/dist/lib/transition/disableTransition.d.ts +7 -0
  86. package/dist/lib/transition/enableTransition.d.ts +7 -0
  87. package/dist/lib/transition/index.d.ts +3 -0
  88. package/dist/lib/transition/withTransition.d.ts +2 -0
  89. package/dist/markup-canvas.cjs.js +2000 -0
  90. package/dist/markup-canvas.esm.js +1995 -0
  91. package/dist/markup-canvas.umd.js +2003 -0
  92. package/dist/markup-canvas.umd.min.js +1 -0
  93. package/dist/types/canvas.d.ts +86 -0
  94. package/dist/types/config.d.ts +38 -0
  95. package/dist/types/events.d.ts +33 -0
  96. package/dist/types/index.d.ts +5 -0
  97. package/dist/types/matrix.d.ts +17 -0
  98. package/dist/types/rulers.d.ts +31 -0
  99. package/dist/umd.d.ts +1 -0
  100. package/package.json +56 -0
  101. package/src/index.ts +19 -0
  102. package/src/lib/MarkupCanvas.ts +434 -0
  103. package/src/lib/canvas/calcVisibleArea.ts +20 -0
  104. package/src/lib/canvas/checkContainerDimensions.ts +20 -0
  105. package/src/lib/canvas/config.ts +29 -0
  106. package/src/lib/canvas/createCanvas.ts +61 -0
  107. package/src/lib/canvas/createCanvasLayers.ts +39 -0
  108. package/src/lib/canvas/getCanvasBounds.ts +68 -0
  109. package/src/lib/canvas/getCanvasMethods.ts +104 -0
  110. package/src/lib/canvas/getEmptyBounds.ts +22 -0
  111. package/src/lib/canvas/index.ts +3 -0
  112. package/src/lib/canvas/moveExistingContent.ts +9 -0
  113. package/src/lib/canvas/setupCanvasContainer.ts +22 -0
  114. package/src/lib/canvas/setupContentLayer.ts +6 -0
  115. package/src/lib/canvas/setupTransformLayer.ts +15 -0
  116. package/src/lib/config/constants.ts +56 -0
  117. package/src/lib/config/createMarkupCanvasConfig.ts +56 -0
  118. package/src/lib/constants.ts +16 -0
  119. package/src/lib/events/EventEmitter.ts +34 -0
  120. package/src/lib/events/constants.ts +9 -0
  121. package/src/lib/events/index.ts +6 -0
  122. package/src/lib/events/keyboard/handleKeyDown.ts +18 -0
  123. package/src/lib/events/keyboard/handleKeyUp.ts +28 -0
  124. package/src/lib/events/keyboard/setupKeyboardEvents.ts +114 -0
  125. package/src/lib/events/keyboard/setupKeyboardNavigation.ts +115 -0
  126. package/src/lib/events/mouse/handleClickToZoom.ts +54 -0
  127. package/src/lib/events/mouse/handleMouseDown.ts +45 -0
  128. package/src/lib/events/mouse/handleMouseLeave.ts +18 -0
  129. package/src/lib/events/mouse/handleMouseMove.ts +57 -0
  130. package/src/lib/events/mouse/handleMouseUp.ts +40 -0
  131. package/src/lib/events/mouse/setupMouseDrag.ts +159 -0
  132. package/src/lib/events/mouse/setupMouseEvents.ts +158 -0
  133. package/src/lib/events/touch/getTouchCenter.ts +6 -0
  134. package/src/lib/events/touch/getTouchDistance.ts +5 -0
  135. package/src/lib/events/touch/handleTouchEnd.ts +9 -0
  136. package/src/lib/events/touch/handleTouchMove.ts +58 -0
  137. package/src/lib/events/touch/handleTouchStart.ts +14 -0
  138. package/src/lib/events/touch/setupTouchEvents.ts +40 -0
  139. package/src/lib/events/trackpad/createTrackpadPanHandler.ts +35 -0
  140. package/src/lib/events/trackpad/detectTrackpadGesture.ts +22 -0
  141. package/src/lib/events/utils/getAdaptiveZoomSpeed.ts +21 -0
  142. package/src/lib/events/utils/resetClickState.ts +4 -0
  143. package/src/lib/events/utils/resetDragState.ts +17 -0
  144. package/src/lib/events/utils/updateCursor.ts +20 -0
  145. package/src/lib/events/wheel/handleWheel.ts +67 -0
  146. package/src/lib/events/wheel/setupWheelEvents.ts +24 -0
  147. package/src/lib/events/wheel/setupWheelHandler.ts +24 -0
  148. package/src/lib/helpers/index.ts +12 -0
  149. package/src/lib/helpers/withClampedZoom.ts +7 -0
  150. package/src/lib/helpers/withDebounce.ts +15 -0
  151. package/src/lib/helpers/withFeatureEnabled.ts +8 -0
  152. package/src/lib/helpers/withRAF.ts +38 -0
  153. package/src/lib/helpers/withRulerCheck.ts +52 -0
  154. package/src/lib/helpers/withRulerOffset.ts +14 -0
  155. package/src/lib/matrix/canvasToContent.ts +20 -0
  156. package/src/lib/matrix/clampZoom.ts +5 -0
  157. package/src/lib/matrix/contentToCanvas.ts +20 -0
  158. package/src/lib/matrix/createMatrix.ts +3 -0
  159. package/src/lib/matrix/createMatrixString.ts +3 -0
  160. package/src/lib/matrix/getZoomToMouseTransform.ts +46 -0
  161. package/src/lib/matrix/index.ts +5 -0
  162. package/src/lib/rulers/RulerElements.ts +6 -0
  163. package/src/lib/rulers/constants.ts +23 -0
  164. package/src/lib/rulers/createCornerBox.ts +27 -0
  165. package/src/lib/rulers/createGridOverlay.ts +22 -0
  166. package/src/lib/rulers/createHorizontalRuler.ts +24 -0
  167. package/src/lib/rulers/createRulerElements.ts +27 -0
  168. package/src/lib/rulers/createRulers.ts +94 -0
  169. package/src/lib/rulers/createVerticalRuler.ts +24 -0
  170. package/src/lib/rulers/index.ts +2 -0
  171. package/src/lib/rulers/setupRulerEvents.ts +23 -0
  172. package/src/lib/rulers/ticks/calculateTickSpacing.ts +15 -0
  173. package/src/lib/rulers/ticks/createHorizontalTick.ts +41 -0
  174. package/src/lib/rulers/ticks/createVerticalTick.ts +43 -0
  175. package/src/lib/rulers/ticks/index.ts +3 -0
  176. package/src/lib/rulers/updateGrid.ts +11 -0
  177. package/src/lib/rulers/updateHorizontalRuler.ts +32 -0
  178. package/src/lib/rulers/updateRulers.ts +33 -0
  179. package/src/lib/rulers/updateVerticalRuler.ts +31 -0
  180. package/src/lib/transform/applyTransform.ts +15 -0
  181. package/src/lib/transform/applyZoomToCanvas.ts +7 -0
  182. package/src/lib/transform/hardware-acceleration.ts +11 -0
  183. package/src/lib/transform/index.ts +2 -0
  184. package/src/lib/transition/disableTransition.ts +33 -0
  185. package/src/lib/transition/enableTransition.ts +26 -0
  186. package/src/lib/transition/index.ts +3 -0
  187. package/src/lib/transition/withTransition.ts +13 -0
  188. package/src/types/canvas.ts +89 -0
  189. package/src/types/config.ts +54 -0
  190. package/src/types/events.ts +31 -0
  191. package/src/types/index.ts +28 -0
  192. package/src/types/matrix.ts +19 -0
  193. package/src/types/rulers.ts +35 -0
  194. package/src/umd.ts +1 -0
@@ -0,0 +1,2 @@
1
+ import type { Point } from "@/types";
2
+ export declare function canvasToContent(canvasX: number, canvasY: number, matrix: DOMMatrix): Point;
@@ -0,0 +1,2 @@
1
+ import type { MarkupCanvasConfig } from "@/types/index.js";
2
+ export declare function clampZoom(scale: number, config: Required<MarkupCanvasConfig>): number;
@@ -0,0 +1,2 @@
1
+ import type { Point } from "@/types";
2
+ export declare function contentToCanvas(contentX: number, contentY: number, matrix: DOMMatrix): Point;
@@ -0,0 +1 @@
1
+ export declare function createMatrix(scale: number, translateX: number, translateY: number): DOMMatrix;
@@ -0,0 +1 @@
1
+ export declare function createMatrixString(matrix: DOMMatrix): string;
@@ -0,0 +1,2 @@
1
+ import type { MarkupCanvasConfig, Transform } from "@/types/index.js";
2
+ export declare function getZoomToMouseTransform(mouseX: number, mouseY: number, currentTransform: Transform, zoomFactor: number, config: Required<MarkupCanvasConfig>): Transform;
@@ -0,0 +1,5 @@
1
+ export { canvasToContent } from "./canvasToContent.js";
2
+ export { clampZoom } from "./clampZoom.js";
3
+ export { contentToCanvas } from "./contentToCanvas.js";
4
+ export { createMatrix } from "./createMatrix.js";
5
+ export { getZoomToMouseTransform } from "./getZoomToMouseTransform.js";
@@ -0,0 +1,6 @@
1
+ export interface RulerElements {
2
+ horizontalRuler: HTMLElement;
3
+ verticalRuler: HTMLElement;
4
+ cornerBox: HTMLElement;
5
+ gridOverlay?: HTMLElement;
6
+ }
@@ -0,0 +1,19 @@
1
+ export declare const RULER_SIZE = 24;
2
+ export declare const RULER_Z_INDEX: {
3
+ readonly GRID: 100;
4
+ readonly RULERS: 1000;
5
+ readonly CORNER: 1001;
6
+ };
7
+ export declare const TICK_SETTINGS: {
8
+ readonly MAJOR_HEIGHT: 6;
9
+ readonly MINOR_HEIGHT: 4;
10
+ readonly MAJOR_WIDTH: 8;
11
+ readonly MINOR_WIDTH: 4;
12
+ readonly MAJOR_MULTIPLIER: 5;
13
+ readonly LABEL_INTERVAL: 100;
14
+ };
15
+ export declare const GRID_SETTINGS: {
16
+ readonly BASE_SIZE: 100;
17
+ readonly MIN_SIZE: 20;
18
+ readonly MAX_SIZE: 200;
19
+ };
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function createCornerBox(config: Required<RulerOptions>): HTMLElement;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function createGridOverlay(config: Required<RulerOptions>): HTMLElement;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function createHorizontalRuler(config: Required<RulerOptions>): HTMLElement;
@@ -0,0 +1,3 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ import type { RulerElements } from "./RulerElements.js";
3
+ export declare function createRulerElements(container: HTMLElement, config: Required<RulerOptions>): RulerElements;
@@ -0,0 +1,2 @@
1
+ import type { RulerCanvas as Canvas, MarkupCanvasConfig, RulerSystem } from "@/types/index.js";
2
+ export declare function createRulers(canvas: Canvas, config: Required<MarkupCanvasConfig>): RulerSystem | null;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function createVerticalRuler(config: Required<RulerOptions>): HTMLElement;
@@ -0,0 +1,2 @@
1
+ export type { RulerOptions, RulerSystem } from "@/types/index.js";
2
+ export { createRulers } from "./createRulers.js";
@@ -0,0 +1,2 @@
1
+ import type { RulerCanvas as Canvas } from "@/types/index.js";
2
+ export declare function setupRulerEvents(canvas: Canvas, updateCallback: () => void): () => void;
@@ -0,0 +1 @@
1
+ export declare function calculateTickSpacing(contentSize: number, canvasSize: number): number;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function createHorizontalTick(container: HTMLElement | DocumentFragment, position: number, pixelPos: number, tickSpacing: number, config: Required<RulerOptions>): void;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function createVerticalTick(container: HTMLElement | DocumentFragment, position: number, pixelPos: number, tickSpacing: number, config: Required<RulerOptions>): void;
@@ -0,0 +1,3 @@
1
+ export { calculateTickSpacing } from "./calculateTickSpacing.js";
2
+ export { createHorizontalTick } from "./createHorizontalTick.js";
3
+ export { createVerticalTick } from "./createVerticalTick.js";
@@ -0,0 +1 @@
1
+ export declare function updateGrid(gridOverlay: HTMLElement, scale: number, translateX: number, translateY: number): void;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function updateHorizontalRuler(ruler: HTMLElement, contentLeft: number, contentRight: number, canvasWidth: number, scale: number, config: Required<RulerOptions>): void;
@@ -0,0 +1,2 @@
1
+ import type { RulerCanvas as Canvas, RulerOptions } from "@/types/index.js";
2
+ export declare function updateRulers(canvas: Canvas, horizontalRuler: HTMLElement, verticalRuler: HTMLElement, gridOverlay: HTMLElement | undefined, config: Required<RulerOptions>): void;
@@ -0,0 +1,2 @@
1
+ import type { RulerOptions } from "@/types/index.js";
2
+ export declare function updateVerticalRuler(ruler: HTMLElement, contentTop: number, contentBottom: number, canvasHeight: number, scale: number, config: Required<RulerOptions>): void;
@@ -0,0 +1 @@
1
+ export declare function applyTransform(element: HTMLElement, matrix: DOMMatrix): boolean;
@@ -0,0 +1,2 @@
1
+ import type { Canvas } from "@/types";
2
+ export declare function applyZoomToCanvas(canvas: Canvas, rawZoomFactor: number, centerX: number, centerY: number): boolean;
@@ -0,0 +1 @@
1
+ export declare function enableHardwareAcceleration(element: HTMLElement): boolean;
@@ -0,0 +1,2 @@
1
+ export { applyTransform } from "./applyTransform.js";
2
+ export { enableHardwareAcceleration } from "./hardware-acceleration.js";
@@ -0,0 +1,7 @@
1
+ import type { MarkupCanvasConfig } from "@/types";
2
+ declare global {
3
+ interface Window {
4
+ __markupCanvasTransitionTimeout?: number;
5
+ }
6
+ }
7
+ export declare function disableTransition(element: HTMLElement, config: MarkupCanvasConfig): boolean;
@@ -0,0 +1,7 @@
1
+ import type { MarkupCanvasConfig } from "@/types";
2
+ declare global {
3
+ interface Window {
4
+ __markupCanvasTransitionTimeout?: number;
5
+ }
6
+ }
7
+ export declare function enableTransition(element: HTMLElement, config: MarkupCanvasConfig): boolean;
@@ -0,0 +1,3 @@
1
+ export { disableTransition } from "./disableTransition.js";
2
+ export { enableTransition } from "./enableTransition.js";
3
+ export { withTransition } from "./withTransition.js";
@@ -0,0 +1,2 @@
1
+ import type { MarkupCanvasConfig } from "@/types";
2
+ export declare function withTransition<T>(element: HTMLElement, config: MarkupCanvasConfig, operation: () => T): T;