@scaleflex/crop 2.0.1

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 (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +452 -0
  3. package/dist/a11y/aria.d.ts +5 -0
  4. package/dist/a11y/keyboard.d.ts +13 -0
  5. package/dist/animation/lerp.d.ts +15 -0
  6. package/dist/animation/spring.d.ts +15 -0
  7. package/dist/canvas/bleed-layer.d.ts +6 -0
  8. package/dist/canvas/crop-frame.d.ts +32 -0
  9. package/dist/canvas/grid-layer.d.ts +7 -0
  10. package/dist/canvas/hit-test.d.ts +10 -0
  11. package/dist/canvas/image-layer.d.ts +28 -0
  12. package/dist/canvas/overlay-layer.d.ts +6 -0
  13. package/dist/canvas/renderer.d.ts +34 -0
  14. package/dist/chunks/sfx-crop-1LGASewd.cjs +353 -0
  15. package/dist/chunks/sfx-crop-CEe6OfTZ.js +2030 -0
  16. package/dist/core/config.d.ts +10 -0
  17. package/dist/core/crop-controller.d.ts +65 -0
  18. package/dist/core/types.d.ts +270 -0
  19. package/dist/define.cjs +1194 -0
  20. package/dist/define.d.ts +1 -0
  21. package/dist/define.js +1746 -0
  22. package/dist/elements/base.d.ts +17 -0
  23. package/dist/elements/icons.d.ts +21 -0
  24. package/dist/elements/parse-shapes.d.ts +13 -0
  25. package/dist/elements/popover-anchor.d.ts +20 -0
  26. package/dist/elements/sfx-crop-canvas.d.ts +24 -0
  27. package/dist/elements/sfx-crop-canvas.styles.d.ts +1 -0
  28. package/dist/elements/sfx-crop-rotate.d.ts +42 -0
  29. package/dist/elements/sfx-crop-rotate.styles.d.ts +5 -0
  30. package/dist/elements/sfx-crop-shapes.d.ts +67 -0
  31. package/dist/elements/sfx-crop-shapes.styles.d.ts +6 -0
  32. package/dist/elements/sfx-crop-toolbar.d.ts +64 -0
  33. package/dist/elements/sfx-crop-toolbar.styles.d.ts +7 -0
  34. package/dist/elements/sfx-crop-zoom.d.ts +66 -0
  35. package/dist/elements/sfx-crop-zoom.styles.d.ts +7 -0
  36. package/dist/elements/sfx-crop.d.ts +134 -0
  37. package/dist/elements/sfx-crop.styles.d.ts +9 -0
  38. package/dist/export/exporter.d.ts +19 -0
  39. package/dist/index.cjs +2 -0
  40. package/dist/index.d.ts +22 -0
  41. package/dist/index.js +65 -0
  42. package/dist/interactions/drag-crop.d.ts +10 -0
  43. package/dist/interactions/pinch-zoom.d.ts +14 -0
  44. package/dist/interactions/pointer-tracker.d.ts +29 -0
  45. package/dist/interactions/resize-handles.d.ts +13 -0
  46. package/dist/interactions/wheel-zoom.d.ts +12 -0
  47. package/dist/react/define-CVJd5aYk.cjs +1545 -0
  48. package/dist/react/define-t4Z6KaLY.js +2590 -0
  49. package/dist/react/index-B-csHwK2.cjs +2 -0
  50. package/dist/react/index-CktjrogS.js +1468 -0
  51. package/dist/react/index.cjs +2 -0
  52. package/dist/react/index.d.ts +21 -0
  53. package/dist/react/index.js +10 -0
  54. package/dist/react/sfx-crop.d.ts +86 -0
  55. package/dist/react/use-sfx-crop-controller.d.ts +74 -0
  56. package/dist/react/use-sfx-crop.d.ts +31 -0
  57. package/dist/styles/shared.css.d.ts +20 -0
  58. package/dist/transforms/constrain.d.ts +68 -0
  59. package/dist/transforms/matrix.d.ts +23 -0
  60. package/dist/transforms/transform-state.d.ts +12 -0
  61. package/dist/utils/events.d.ts +16 -0
  62. package/dist/utils/math.d.ts +12 -0
  63. package/package.json +108 -0
@@ -0,0 +1,14 @@
1
+ import { PointerInfo } from './pointer-tracker';
2
+ export interface PinchState {
3
+ initialDistance: number;
4
+ initialScale: number;
5
+ initialCenterX: number;
6
+ initialCenterY: number;
7
+ }
8
+ export interface PinchResult {
9
+ scale: number;
10
+ panDeltaX: number;
11
+ panDeltaY: number;
12
+ }
13
+ export declare function startPinch(pointers: PointerInfo[], currentScale: number): PinchState | null;
14
+ export declare function updatePinch(state: PinchState, pointers: PointerInfo[], minScale: number, maxScale: number): PinchResult;
@@ -0,0 +1,29 @@
1
+ export interface PointerInfo {
2
+ id: number;
3
+ x: number;
4
+ y: number;
5
+ startX: number;
6
+ startY: number;
7
+ pressure: number;
8
+ pointerType: 'mouse' | 'touch' | 'pen';
9
+ shiftKey: boolean;
10
+ altKey: boolean;
11
+ }
12
+ export interface PinchEvent {
13
+ centerX: number;
14
+ centerY: number;
15
+ scale: number;
16
+ distance: number;
17
+ }
18
+ export interface PointerTrackerCallbacks {
19
+ onPointerDown(pointer: PointerInfo, pointers: PointerInfo[]): void;
20
+ onPointerMove(pointer: PointerInfo, pointers: PointerInfo[]): void;
21
+ onPointerUp(pointer: PointerInfo, pointers: PointerInfo[]): void;
22
+ onHover?(pointer: PointerInfo): void;
23
+ onPinch?(e: PinchEvent): void;
24
+ onWheel?(e: WheelEvent): void;
25
+ }
26
+ export interface PointerTrackerHandle {
27
+ destroy(): void;
28
+ }
29
+ export declare function createPointerTracker(element: HTMLElement, callbacks: PointerTrackerCallbacks): PointerTrackerHandle;
@@ -0,0 +1,13 @@
1
+ import { CropRect, CropShapeName } from '../core/types';
2
+ export interface ResizeState {
3
+ handle: string;
4
+ startCrop: CropRect;
5
+ startX: number;
6
+ startY: number;
7
+ }
8
+ export interface ResizeModifiers {
9
+ shiftKey: boolean;
10
+ altKey: boolean;
11
+ }
12
+ export declare function startResize(handle: string, crop: CropRect, pointerX: number, pointerY: number): ResizeState;
13
+ export declare function updateResize(state: ResizeState, pointerX: number, pointerY: number, imageWidth: number, imageHeight: number, cropShape: CropShapeName, minCropSize: number, modifiers?: ResizeModifiers): CropRect;
@@ -0,0 +1,12 @@
1
+ export interface WheelZoomConfig {
2
+ minScale: number;
3
+ maxScale: number;
4
+ sensitivity: number;
5
+ }
6
+ export interface WheelZoomResult {
7
+ scale: number;
8
+ panDeltaX: number;
9
+ panDeltaY: number;
10
+ }
11
+ /** Calculate new scale and pan from a wheel event. Centers zoom on cursor position. */
12
+ export declare function handleWheelZoom(deltaY: number, currentScale: number, config: WheelZoomConfig, cursorX?: number, cursorY?: number, canvasCenterX?: number, canvasCenterY?: number): WheelZoomResult;