@annotorious/annotorious 3.0.0-rc.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 (183) hide show
  1. package/README.md +6 -0
  2. package/dist/Annotorious.d.ts +15 -0
  3. package/dist/Annotorious.d.ts.map +1 -0
  4. package/dist/AnnotoriousOpts.d.ts +14 -0
  5. package/dist/AnnotoriousOpts.d.ts.map +1 -0
  6. package/dist/annotation/SVGAnnotationLayer.svelte.d.ts +1 -0
  7. package/dist/annotation/SVGAnnotationLayerPointerEvent.d.ts +11 -0
  8. package/dist/annotation/SVGAnnotationLayerPointerEvent.d.ts.map +1 -0
  9. package/dist/annotation/Transform.d.ts +6 -0
  10. package/dist/annotation/Transform.d.ts.map +1 -0
  11. package/dist/annotation/editors/Editor.svelte.d.ts +1 -0
  12. package/dist/annotation/editors/EditorMount.svelte.d.ts +1 -0
  13. package/dist/annotation/editors/Handle.d.ts +14 -0
  14. package/dist/annotation/editors/Handle.d.ts.map +1 -0
  15. package/dist/annotation/editors/editorsRegistry.d.ts +5 -0
  16. package/dist/annotation/editors/editorsRegistry.d.ts.map +1 -0
  17. package/dist/annotation/editors/index.d.ts +7 -0
  18. package/dist/annotation/editors/index.d.ts.map +1 -0
  19. package/dist/annotation/editors/polygon/PolygonEditor.svelte.d.ts +1 -0
  20. package/dist/annotation/editors/polygon/index.d.ts +2 -0
  21. package/dist/annotation/editors/polygon/index.d.ts.map +1 -0
  22. package/dist/annotation/editors/rectangle/RectangleEditor.svelte.d.ts +1 -0
  23. package/dist/annotation/editors/rectangle/index.d.ts +2 -0
  24. package/dist/annotation/editors/rectangle/index.d.ts.map +1 -0
  25. package/dist/annotation/index.d.ts +7 -0
  26. package/dist/annotation/index.d.ts.map +1 -0
  27. package/dist/annotation/shapes/Ellipse.svelte.d.ts +1 -0
  28. package/dist/annotation/shapes/Polygon.svelte.d.ts +1 -0
  29. package/dist/annotation/shapes/Rectangle.svelte.d.ts +1 -0
  30. package/dist/annotation/shapes/index.d.ts +4 -0
  31. package/dist/annotation/shapes/index.d.ts.map +1 -0
  32. package/dist/annotation/tools/DrawingToolConfig.d.ts +8 -0
  33. package/dist/annotation/tools/DrawingToolConfig.d.ts.map +1 -0
  34. package/dist/annotation/tools/ToolMount.svelte.d.ts +1 -0
  35. package/dist/annotation/tools/drawingToolsRegistry.d.ts +17 -0
  36. package/dist/annotation/tools/drawingToolsRegistry.d.ts.map +1 -0
  37. package/dist/annotation/tools/index.d.ts +5 -0
  38. package/dist/annotation/tools/index.d.ts.map +1 -0
  39. package/dist/annotation/tools/polygon/RubberbandPolygon.svelte.d.ts +1 -0
  40. package/dist/annotation/tools/polygon/index.d.ts +2 -0
  41. package/dist/annotation/tools/polygon/index.d.ts.map +1 -0
  42. package/dist/annotation/tools/rectangle/RubberbandRectangle.svelte.d.ts +1 -0
  43. package/dist/annotation/tools/rectangle/index.d.ts +2 -0
  44. package/dist/annotation/tools/rectangle/index.d.ts.map +1 -0
  45. package/dist/annotation/utils/index.d.ts +4 -0
  46. package/dist/annotation/utils/index.d.ts.map +1 -0
  47. package/dist/annotation/utils/math.d.ts +2 -0
  48. package/dist/annotation/utils/math.d.ts.map +1 -0
  49. package/dist/annotation/utils/responsive.d.ts +5 -0
  50. package/dist/annotation/utils/responsive.d.ts.map +1 -0
  51. package/dist/annotation/utils/styling.d.ts +4 -0
  52. package/dist/annotation/utils/styling.d.ts.map +1 -0
  53. package/dist/annotation/utils/touch.d.ts +2 -0
  54. package/dist/annotation/utils/touch.d.ts.map +1 -0
  55. package/dist/annotorious.css +1 -0
  56. package/dist/annotorious.es.js +3890 -0
  57. package/dist/annotorious.es.js.map +1 -0
  58. package/dist/annotorious.js +2 -0
  59. package/dist/annotorious.js.map +1 -0
  60. package/dist/index.d.ts +12 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/model/core/ImageAnnotation.d.ts +9 -0
  63. package/dist/model/core/ImageAnnotation.d.ts.map +1 -0
  64. package/dist/model/core/Shape.d.ts +20 -0
  65. package/dist/model/core/Shape.d.ts.map +1 -0
  66. package/dist/model/core/ellipse/Ellipse.d.ts +12 -0
  67. package/dist/model/core/ellipse/Ellipse.d.ts.map +1 -0
  68. package/dist/model/core/ellipse/ellipseUtils.d.ts +2 -0
  69. package/dist/model/core/ellipse/ellipseUtils.d.ts.map +1 -0
  70. package/dist/model/core/ellipse/index.d.ts +3 -0
  71. package/dist/model/core/ellipse/index.d.ts.map +1 -0
  72. package/dist/model/core/index.d.ts +7 -0
  73. package/dist/model/core/index.d.ts.map +1 -0
  74. package/dist/model/core/polygon/Polygon.d.ts +9 -0
  75. package/dist/model/core/polygon/Polygon.d.ts.map +1 -0
  76. package/dist/model/core/polygon/index.d.ts +3 -0
  77. package/dist/model/core/polygon/index.d.ts.map +1 -0
  78. package/dist/model/core/polygon/polygonUtils.d.ts +2 -0
  79. package/dist/model/core/polygon/polygonUtils.d.ts.map +1 -0
  80. package/dist/model/core/rectangle/Rectangle.d.ts +12 -0
  81. package/dist/model/core/rectangle/Rectangle.d.ts.map +1 -0
  82. package/dist/model/core/rectangle/index.d.ts +3 -0
  83. package/dist/model/core/rectangle/index.d.ts.map +1 -0
  84. package/dist/model/core/rectangle/rectangleUtils.d.ts +4 -0
  85. package/dist/model/core/rectangle/rectangleUtils.d.ts.map +1 -0
  86. package/dist/model/core/shapeUtils.d.ts +35 -0
  87. package/dist/model/core/shapeUtils.d.ts.map +1 -0
  88. package/dist/model/index.d.ts +3 -0
  89. package/dist/model/index.d.ts.map +1 -0
  90. package/dist/model/w3c/W3CImageFormatAdapter.d.ts +7 -0
  91. package/dist/model/w3c/W3CImageFormatAdapter.d.ts.map +1 -0
  92. package/dist/model/w3c/fragment/FragmentSelector.d.ts +10 -0
  93. package/dist/model/w3c/fragment/FragmentSelector.d.ts.map +1 -0
  94. package/dist/model/w3c/fragment/index.d.ts +2 -0
  95. package/dist/model/w3c/fragment/index.d.ts.map +1 -0
  96. package/dist/model/w3c/index.d.ts +4 -0
  97. package/dist/model/w3c/index.d.ts.map +1 -0
  98. package/dist/model/w3c/svg/SVG.d.ts +5 -0
  99. package/dist/model/w3c/svg/SVG.d.ts.map +1 -0
  100. package/dist/model/w3c/svg/SVGSelector.d.ts +9 -0
  101. package/dist/model/w3c/svg/SVGSelector.d.ts.map +1 -0
  102. package/dist/model/w3c/svg/index.d.ts +2 -0
  103. package/dist/model/w3c/svg/index.d.ts.map +1 -0
  104. package/dist/state/ImageAnnotationStore.d.ts +11 -0
  105. package/dist/state/ImageAnnotationStore.d.ts.map +1 -0
  106. package/dist/state/ImageAnnotatorState.d.ts +12 -0
  107. package/dist/state/ImageAnnotatorState.d.ts.map +1 -0
  108. package/dist/state/index.d.ts +3 -0
  109. package/dist/state/index.d.ts.map +1 -0
  110. package/dist/state/spatialTree.d.ts +21 -0
  111. package/dist/state/spatialTree.d.ts.map +1 -0
  112. package/dist/themes/index.d.ts +2 -0
  113. package/dist/themes/index.d.ts.map +1 -0
  114. package/dist/themes/smart/index.d.ts +2 -0
  115. package/dist/themes/smart/index.d.ts.map +1 -0
  116. package/dist/themes/smart/setTheme.d.ts +3 -0
  117. package/dist/themes/smart/setTheme.d.ts.map +1 -0
  118. package/package.json +55 -0
  119. package/src/Annotorious.css +74 -0
  120. package/src/Annotorious.ts +158 -0
  121. package/src/AnnotoriousOpts.ts +40 -0
  122. package/src/annotation/SVGAnnotationLayer.svelte +169 -0
  123. package/src/annotation/SVGAnnotationLayerPointerEvent.ts +55 -0
  124. package/src/annotation/Transform.ts +24 -0
  125. package/src/annotation/editors/Editor.svelte +61 -0
  126. package/src/annotation/editors/EditorMount.svelte +44 -0
  127. package/src/annotation/editors/Handle.ts +21 -0
  128. package/src/annotation/editors/editorsRegistry.ts +14 -0
  129. package/src/annotation/editors/index.ts +7 -0
  130. package/src/annotation/editors/polygon/PolygonEditor.svelte +64 -0
  131. package/src/annotation/editors/polygon/index.ts +1 -0
  132. package/src/annotation/editors/rectangle/RectangleEditor.svelte +143 -0
  133. package/src/annotation/editors/rectangle/index.ts +1 -0
  134. package/src/annotation/index.ts +7 -0
  135. package/src/annotation/shapes/Ellipse.svelte +32 -0
  136. package/src/annotation/shapes/Polygon.svelte +26 -0
  137. package/src/annotation/shapes/Rectangle.svelte +32 -0
  138. package/src/annotation/shapes/index.ts +3 -0
  139. package/src/annotation/tools/DrawingToolConfig.ts +9 -0
  140. package/src/annotation/tools/ToolMount.svelte +49 -0
  141. package/src/annotation/tools/drawingToolsRegistry.ts +26 -0
  142. package/src/annotation/tools/index.ts +4 -0
  143. package/src/annotation/tools/polygon/RubberbandPolygon.svelte +165 -0
  144. package/src/annotation/tools/polygon/index.ts +1 -0
  145. package/src/annotation/tools/rectangle/RubberbandRectangle.svelte +131 -0
  146. package/src/annotation/tools/rectangle/index.ts +1 -0
  147. package/src/annotation/utils/index.ts +3 -0
  148. package/src/annotation/utils/math.ts +6 -0
  149. package/src/annotation/utils/responsive.ts +56 -0
  150. package/src/annotation/utils/styling.ts +19 -0
  151. package/src/annotation/utils/touch.ts +1 -0
  152. package/src/index.ts +20 -0
  153. package/src/model/core/ImageAnnotation.ts +14 -0
  154. package/src/model/core/Shape.ts +37 -0
  155. package/src/model/core/ellipse/Ellipse.ts +21 -0
  156. package/src/model/core/ellipse/ellipseUtils.ts +28 -0
  157. package/src/model/core/ellipse/index.ts +2 -0
  158. package/src/model/core/index.ts +6 -0
  159. package/src/model/core/polygon/Polygon.ts +15 -0
  160. package/src/model/core/polygon/index.ts +2 -0
  161. package/src/model/core/polygon/polygonUtils.ts +43 -0
  162. package/src/model/core/rectangle/Rectangle.ts +21 -0
  163. package/src/model/core/rectangle/index.ts +2 -0
  164. package/src/model/core/rectangle/rectangleUtils.ts +17 -0
  165. package/src/model/core/shapeUtils.ts +57 -0
  166. package/src/model/index.ts +2 -0
  167. package/src/model/w3c/W3CImageFormatAdapter.ts +83 -0
  168. package/src/model/w3c/fragment/FragmentSelector.ts +59 -0
  169. package/src/model/w3c/fragment/index.ts +1 -0
  170. package/src/model/w3c/index.ts +3 -0
  171. package/src/model/w3c/svg/SVG.ts +36 -0
  172. package/src/model/w3c/svg/SVGSelector.ts +99 -0
  173. package/src/model/w3c/svg/index.ts +1 -0
  174. package/src/state/ImageAnnotationStore.ts +18 -0
  175. package/src/state/ImageAnnotatorState.ts +88 -0
  176. package/src/state/index.ts +2 -0
  177. package/src/state/spatialTree.ts +108 -0
  178. package/src/themes/dark/index.css +24 -0
  179. package/src/themes/index.ts +1 -0
  180. package/src/themes/light/index.css +30 -0
  181. package/src/themes/smart/index.ts +1 -0
  182. package/src/themes/smart/setTheme.ts +46 -0
  183. package/src/vite-env.d.ts +2 -0
@@ -0,0 +1,12 @@
1
+ export * from './annotation';
2
+ export * from './model';
3
+ export * from './state';
4
+ export * from './themes';
5
+ export * from './annotation/tools';
6
+ export * from './Annotorious';
7
+ export * from './AnnotoriousOpts';
8
+ export * from '@annotorious/core/src/model';
9
+ export * from '@annotorious/core/src/presence';
10
+ export * from '@annotorious/core/src/utils';
11
+ export type { HoverState, Selection, SelectionState, Store, StoreObserver } from '@annotorious/core/src/state';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,YAAY,EACV,UAAU,EACV,SAAS,EACT,cAAc,EACd,KAAK,EACL,aAAa,EACd,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Annotation, AnnotationTarget } from '@annotorious/core';
2
+ import type { Shape } from './Shape';
3
+ export interface ImageAnnotation extends Annotation {
4
+ target: ImageAnnotationTarget;
5
+ }
6
+ export interface ImageAnnotationTarget extends AnnotationTarget {
7
+ selector: Shape;
8
+ }
9
+ //# sourceMappingURL=ImageAnnotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageAnnotation.d.ts","sourceRoot":"","sources":["../../../src/model/core/ImageAnnotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAEjD,MAAM,EAAE,qBAAqB,CAAC;CAE/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAE7D,QAAQ,EAAE,KAAK,CAAA;CAEhB"}
@@ -0,0 +1,20 @@
1
+ import type { AbstractSelector } from '@annotorious/core';
2
+ export interface Shape extends AbstractSelector {
3
+ type: ShapeType;
4
+ geometry: Geometry;
5
+ }
6
+ export declare enum ShapeType {
7
+ ELLIPSE = "ELLIPSE",
8
+ POLYGON = "POLYGON",
9
+ RECTANGLE = "RECTANGLE"
10
+ }
11
+ export interface Geometry {
12
+ bounds: Bounds;
13
+ }
14
+ export interface Bounds {
15
+ minX: number;
16
+ minY: number;
17
+ maxX: number;
18
+ maxY: number;
19
+ }
20
+ //# sourceMappingURL=Shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shape.d.ts","sourceRoot":"","sources":["../../../src/model/core/Shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,KAAM,SAAQ,gBAAgB;IAE7C,IAAI,EAAE,SAAS,CAAC;IAEhB,QAAQ,EAAE,QAAQ,CAAC;CAEpB;AAED,oBAAY,SAAS;IAEnB,OAAO,YAAY;IAEnB,OAAO,YAAY;IAEnB,SAAS,cAAc;CAExB;AAED,MAAM,WAAW,QAAQ;IAEvB,MAAM,EAAE,MAAM,CAAC;CAEhB;AAED,MAAM,WAAW,MAAM;IAErB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;CAEd"}
@@ -0,0 +1,12 @@
1
+ import type { Bounds, Geometry, Shape } from '../Shape';
2
+ export interface Ellipse extends Shape {
3
+ geometry: EllipseGeometry;
4
+ }
5
+ export interface EllipseGeometry extends Geometry {
6
+ cx: number;
7
+ cy: number;
8
+ rx: number;
9
+ ry: number;
10
+ bounds: Bounds;
11
+ }
12
+ //# sourceMappingURL=Ellipse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ellipse.d.ts","sourceRoot":"","sources":["../../../../src/model/core/ellipse/Ellipse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,OAAQ,SAAQ,KAAK;IAEpC,QAAQ,EAAE,eAAe,CAAC;CAE3B;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAE/C,EAAE,EAAE,MAAM,CAAC;IAEX,EAAE,EAAE,MAAM,CAAC;IAEX,EAAE,EAAE,MAAM,CAAC;IAEX,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,MAAM,CAAC;CAEhB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ellipseUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipseUtils.d.ts","sourceRoot":"","sources":["../../../../src/model/core/ellipse/ellipseUtils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './Ellipse';
2
+ export * from './ellipseUtils';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/core/ellipse/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './ellipse';
2
+ export * from './polygon';
3
+ export * from './rectangle';
4
+ export * from './ImageAnnotation';
5
+ export * from './Shape';
6
+ export * from './shapeUtils';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Bounds, Geometry, Shape } from '../Shape';
2
+ export interface Polygon extends Shape {
3
+ geometry: PolygonGeometry;
4
+ }
5
+ export interface PolygonGeometry extends Geometry {
6
+ points: Array<Array<number>>;
7
+ bounds: Bounds;
8
+ }
9
+ //# sourceMappingURL=Polygon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Polygon.d.ts","sourceRoot":"","sources":["../../../../src/model/core/polygon/Polygon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,OAAQ,SAAQ,KAAK;IAEpC,QAAQ,EAAE,eAAe,CAAC;CAE3B;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAE/C,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7B,MAAM,EAAE,MAAM,CAAC;CAEhB"}
@@ -0,0 +1,3 @@
1
+ export * from './Polygon';
2
+ export * from './polygonUtils';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/core/polygon/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=polygonUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygonUtils.d.ts","sourceRoot":"","sources":["../../../../src/model/core/polygon/polygonUtils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { Bounds, Geometry, Shape } from '../Shape';
2
+ export interface Rectangle extends Shape {
3
+ geometry: RectangleGeometry;
4
+ }
5
+ export interface RectangleGeometry extends Geometry {
6
+ x: number;
7
+ y: number;
8
+ w: number;
9
+ h: number;
10
+ bounds: Bounds;
11
+ }
12
+ //# sourceMappingURL=Rectangle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rectangle.d.ts","sourceRoot":"","sources":["../../../../src/model/core/rectangle/Rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,SAAU,SAAQ,KAAK;IAEtC,QAAQ,EAAE,iBAAiB,CAAC;CAE7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IAEjD,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,CAAC,EAAE,MAAM,CAAC;IAEV,MAAM,EAAE,MAAM,CAAC;CAEhB"}
@@ -0,0 +1,3 @@
1
+ export * from './Rectangle';
2
+ export * from './rectangleUtils';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/core/rectangle/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Rectangle } from './Rectangle';
2
+ import { type ShapeUtil } from '../shapeUtils';
3
+ export declare const RectangleUtil: ShapeUtil<Rectangle>;
4
+ //# sourceMappingURL=rectangleUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rectangleUtils.d.ts","sourceRoot":"","sources":["../../../../src/model/core/rectangle/rectangleUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAElE,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,SAAS,CAU9C,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { Bounds, Shape, ShapeType } from './Shape';
2
+ export interface ShapeUtil<T extends Shape> {
3
+ area: (shape: T) => number;
4
+ intersects: (shape: T, x: number, y: number) => boolean;
5
+ }
6
+ /**
7
+ * Registers a new ShapeUtil for a given shape type.
8
+ * @param type the shape type
9
+ * @param util the ShapeUtil implementation for this shape type
10
+ */
11
+ export declare const registerShapeUtil: (type: ShapeType | string, util: ShapeUtil<any>) => ShapeUtil<any>;
12
+ /**
13
+ * Computes the area of the given shape. Delegates to the corresponding ShapeUtil.
14
+ * @param shape the shape
15
+ */
16
+ export declare const computeArea: (shape: Shape) => number;
17
+ /**
18
+ * Tests if the given shape intersects the given point. Delegates to
19
+ * the corresponding ShapeUtil.
20
+ * @param shape the shape
21
+ * @param x point x coord
22
+ * @param y point y coord
23
+ * @returns true if shape and point intersect
24
+ */
25
+ export declare const intersects: (shape: Shape, x: number, y: number) => boolean;
26
+ /**
27
+ * Computes Bounds from a given list of points.
28
+ * @param points the points
29
+ * @returns the Bounds
30
+ */
31
+ export declare const boundsFromPoints: (points: Array<[
32
+ number,
33
+ number
34
+ ]>) => Bounds;
35
+ //# sourceMappingURL=shapeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapeUtils.d.ts","sourceRoot":"","sources":["../../../src/model/core/shapeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,KAAK;IAExC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAE3B,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAEzD;AAID;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAU,SAAS,GAAG,MAAM,QAAQ,UAAU,GAAG,CAAC,mBAC1D,CAAC;AAEvB;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK,WAAkC,CAAC;AAE3E;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,UAAW,KAAK,KAAK,MAAM,KAAK,MAAM,KAAG,OACrB,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAY,MAAM;IAAC,MAAM;IAAE,MAAM;CAAC,CAAC,KAAG,MAclE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './core';
2
+ export * from './w3c';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { FormatAdapter, ParseResult, W3CAnnotation } from '@annotorious/core';
2
+ import type { ImageAnnotation } from '../core';
3
+ export type W3CImageFormatAdapter = FormatAdapter<ImageAnnotation, W3CAnnotation>;
4
+ export declare const W3CImageFormat: (source: string, invertY?: boolean) => W3CImageFormatAdapter;
5
+ export declare const parseW3CImageAnnotation: (annotation: W3CAnnotation, invertY?: boolean) => ParseResult<ImageAnnotation>;
6
+ export declare const serializeW3CImageAnnotation: (annotation: ImageAnnotation, source: string) => W3CAnnotation;
7
+ //# sourceMappingURL=W3CImageFormatAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"W3CImageFormatAdapter.d.ts","sourceRoot":"","sources":["../../../src/model/w3c/W3CImageFormatAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAMlE,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAElF,eAAO,MAAM,cAAc,WACjB,MAAM,YACL,OAAO,0BAUjB,CAAA;AAED,eAAO,MAAM,uBAAuB,eACtB,aAAa,YAChB,OAAO,KACf,YAAY,eAAe,CA6B7B,CAAA;AAED,eAAO,MAAM,2BAA2B,eAC1B,eAAe,UACnB,MAAM,KACb,aAmBF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { W3CSelector } from '@annotorious/core';
2
+ import type { Rectangle, RectangleGeometry } from '../../core';
3
+ export interface FragmentSelector extends W3CSelector {
4
+ type: 'FragmentSelector';
5
+ conformsTo: 'http://www.w3.org/TR/media-frags/';
6
+ value: string;
7
+ }
8
+ export declare const parseFragmentSelector: (fragmentOrSelector: FragmentSelector | string, invertY?: boolean) => Rectangle;
9
+ export declare const serializeFragmentSelector: (geometry: RectangleGeometry) => FragmentSelector;
10
+ //# sourceMappingURL=FragmentSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FragmentSelector.d.ts","sourceRoot":"","sources":["../../../../src/model/w3c/fragment/FragmentSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IAEnD,IAAI,EAAE,kBAAkB,CAAC;IAEzB,UAAU,EAAE,mCAAmC,CAAC;IAEhD,KAAK,EAAE,MAAM,CAAC;CAEf;AAED,eAAO,MAAM,qBAAqB,uBACZ,gBAAgB,GAAG,MAAM,wBAE5C,SA+BF,CAAC;AAEF,eAAO,MAAM,yBAAyB,aAAc,iBAAiB,KAAG,gBAQvE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './FragmentSelector';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/w3c/fragment/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './fragment';
2
+ export * from './svg';
3
+ export * from './W3CImageFormatAdapter';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/model/w3c/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
2
+ export declare const sanitize: (doc: Element | Document) => Element | Document;
3
+ /** Helper that forces an un-namespaced node to SVG **/
4
+ export declare const insertSVGNamespace: (originalDoc: Document) => Element;
5
+ //# sourceMappingURL=SVG.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SVG.d.ts","sourceRoot":"","sources":["../../../../src/model/w3c/svg/SVG.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,+BAA+B,CAAC;AAE1D,eAAO,MAAM,QAAQ,QAAS,OAAO,GAAG,QAAQ,uBAmB/C,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,gBAAiB,QAAQ,KAAG,OAW1D,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { W3CSelector } from '@annotorious/core';
2
+ import type { Shape } from '../../core';
3
+ export interface SVGSelector extends W3CSelector {
4
+ type: 'SvgSelector';
5
+ value: string;
6
+ }
7
+ export declare const parseSVGSelector: <T extends Shape>(valueOrSelector: SVGSelector | string) => T;
8
+ export declare const serializeSVGSelector: (shape: Shape) => SVGSelector;
9
+ //# sourceMappingURL=SVGSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SVGSelector.d.ts","sourceRoot":"","sources":["../../../../src/model/w3c/svg/SVGSelector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAsD,KAAK,EAAE,MAAM,YAAY,CAAC;AAG5F,MAAM,WAAW,WAAY,SAAQ,WAAW;IAE9C,IAAI,EAAE,aAAa,CAAC;IAEpB,KAAK,EAAE,MAAM,CAAC;CAEf;AA6DD,eAAO,MAAM,gBAAgB,qCAAsC,WAAW,GAAG,MAAM,MAOtF,CAAA;AAED,eAAO,MAAM,oBAAoB,UAAW,KAAK,KAAG,WAiBnD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './SVGSelector';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/w3c/svg/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Store, SvelteAnnotatorState, SvelteStore } from '@annotorious/core';
2
+ import type { ImageAnnotation } from '../model';
3
+ export type ImageAnnotationStore = Store<ImageAnnotation> & {
4
+ getAt(x: number, y: number): ImageAnnotation | undefined;
5
+ getIntersecting(x: number, y: number, width: number, height: number): ImageAnnotation[];
6
+ };
7
+ export type SvelteImageAnnotationStore = SvelteStore<ImageAnnotation> & ImageAnnotationStore;
8
+ export type SvelteImageAnnotatorState = SvelteAnnotatorState<ImageAnnotation> & {
9
+ store: SvelteImageAnnotationStore;
10
+ };
11
+ //# sourceMappingURL=ImageAnnotationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageAnnotationStore.d.ts","sourceRoot":"","sources":["../../src/state/ImageAnnotationStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG;IAE1D,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IAEzD,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CAEzF,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,oBAAoB,CAAC;AAE7F,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,eAAe,CAAC,GAAG;IAE9E,KAAK,EAAE,0BAA0B,CAAC;CAEnC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { ImageAnnotation } from '../model';
2
+ import type { AnnotoriousOpts } from '../AnnotoriousOpts';
3
+ import { type AnnotatorState, type HoverState, type SelectionState } from '@annotorious/core';
4
+ import type { ImageAnnotationStore, SvelteImageAnnotatorState } from './ImageAnnotationStore';
5
+ export type ImageAnnotatorState<T extends ImageAnnotationStore = ImageAnnotationStore> = AnnotatorState<ImageAnnotation> & {
6
+ store: T;
7
+ selection: SelectionState<ImageAnnotation>;
8
+ hover: HoverState<ImageAnnotation>;
9
+ };
10
+ export declare const createImageAnnotatorState: <E extends unknown>(opts: AnnotoriousOpts<ImageAnnotation, E>) => ImageAnnotatorState<ImageAnnotationStore>;
11
+ export declare const createSvelteImageAnnotatorState: <E extends unknown>(opts: AnnotoriousOpts<ImageAnnotation, E>) => SvelteImageAnnotatorState;
12
+ //# sourceMappingURL=ImageAnnotatorState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageAnnotatorState.d.ts","sourceRoot":"","sources":["../../src/state/ImageAnnotatorState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EACV,oBAAoB,EAEpB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,cAAc,CAAC,eAAe,CAAC,GAAG;IAEzH,KAAK,EAAE,CAAC,CAAC;IAET,SAAS,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;CAEpC,CAAA;AAED,eAAO,MAAM,yBAAyB,oEAEnC,oBAAoB,oBAAoB,CAwC1C,CAAA;AAED,eAAO,MAAM,+BAA+B,oEAEzC,yBASF,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './ImageAnnotationStore';
2
+ export * from './ImageAnnotatorState';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ImageAnnotationTarget } from '../model';
2
+ interface IndexedTarget {
3
+ minX: number;
4
+ minY: number;
5
+ maxX: number;
6
+ maxY: number;
7
+ target: ImageAnnotationTarget;
8
+ }
9
+ export declare const createSpatialTree: () => {
10
+ all: () => IndexedTarget[];
11
+ clear: () => void;
12
+ getAt: (x: number, y: number) => ImageAnnotationTarget | null;
13
+ getIntersecting: (x: number, y: number, width: number, height: number) => ImageAnnotationTarget[];
14
+ insert: (target: ImageAnnotationTarget) => void;
15
+ remove: (target: ImageAnnotationTarget) => void;
16
+ set: (targets: ImageAnnotationTarget[], replace?: boolean) => void;
17
+ size: () => number;
18
+ update: (previous: ImageAnnotationTarget, updated: ImageAnnotationTarget) => void;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=spatialTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatialTree.d.ts","sourceRoot":"","sources":["../../src/state/spatialTree.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,UAAU,aAAa;IAErB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,qBAAqB,CAAC;CAE/B;AAED,eAAO,MAAM,iBAAiB;;;eA8CV,MAAM,KAAK,MAAM,KAAG,qBAAqB,GAAG,IAAI;yBAqBtC,MAAM,KAAK,MAAM,SAAS,MAAM,UAAU,MAAM;qBAtDpD,qBAAqB;qBASrB,qBAAqB;mBAWvB,qBAAqB,EAAE,YAAW,OAAO;;uBALrC,qBAAqB,WAAW,qBAAqB;CA6DhF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './smart';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './setTheme';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/themes/smart/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const sampleBrightness: (imageOrCanvas: HTMLElement) => number;
2
+ export declare const setTheme: (imageOrCanvas: HTMLElement, container: HTMLElement) => void;
3
+ //# sourceMappingURL=setTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setTheme.d.ts","sourceRoot":"","sources":["../../../src/themes/smart/setTheme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,kBAAmB,WAAW,WAmC1D,CAAA;AAED,eAAO,MAAM,QAAQ,kBAAmB,WAAW,aAAa,WAAW,SAQ1E,CAAA"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@annotorious/annotorious",
3
+ "version": "3.0.0-rc.1",
4
+ "description": "Add image annotation functionality to any web page with a few lines of JavaScript",
5
+ "author": "Rainer Simon",
6
+ "license": "BSD-3-Clause",
7
+ "homepage": "https://annotorious.github.io",
8
+ "type": "module",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/annotorious/annotorious.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/annotorious/annotorious/issues"
15
+ },
16
+ "scripts": {
17
+ "start": "vite",
18
+ "build": "vite build",
19
+ "preview": "vite preview",
20
+ "test": "vitest"
21
+ },
22
+ "main": "./dist/annotorious.js",
23
+ "module": "./dist/annotorious.es.js",
24
+ "types": "./dist/index.d.ts",
25
+ "files": [
26
+ "dist",
27
+ "src"
28
+ ],
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/annotorious.es.js",
33
+ "require": "./dist/annotorious.js"
34
+ },
35
+ "./annotorious.css": "./dist/annotorious.css",
36
+ "./src": "./src/index.ts",
37
+ "./src/annotation": "./src/annotation/index.ts",
38
+ "./src/model": "./src/model/index.ts"
39
+ },
40
+ "devDependencies": {
41
+ "@sveltejs/vite-plugin-svelte": "^2.4.6",
42
+ "@tsconfig/svelte": "^3.0.0",
43
+ "@types/rbush": "^3.0.2",
44
+ "jsdom": "^22.1.0",
45
+ "svelte": "^3.59.2",
46
+ "typescript": "^4.9.5",
47
+ "vite": "^4.4.9",
48
+ "vite-plugin-dts": "^3.6.0",
49
+ "vitest": "^0.34.6"
50
+ },
51
+ "dependencies": {
52
+ "rbush": "^3.0.1",
53
+ "uuid": "^9.0.1"
54
+ }
55
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Essential common styles only. Everything else
3
+ * is contained in extra 'theme' stylesheets.
4
+ */
5
+ .a9s-annotationlayer {
6
+ box-sizing: border-box;
7
+ height: 100%;
8
+ left: 0;
9
+ outline: none;
10
+ position: absolute;
11
+ top: 0;
12
+ touch-action: none;
13
+ width: 100%;
14
+
15
+ -webkit-user-select: none;
16
+ -moz-user-select: none;
17
+ -ms-user-select: none;
18
+ -o-user-select: none;
19
+ user-select: none;
20
+ }
21
+
22
+ .a9s-annotationlayer ellipse,
23
+ .a9s-annotationlayer polygon,
24
+ .a9s-annotationlayer rect {
25
+ fill: transparent;
26
+ shape-rendering: geometricPrecision;
27
+ vector-effect: non-scaling-stroke;
28
+ }
29
+
30
+ .a9s-edge-handle {
31
+ fill: transparent;
32
+ stroke: transparent;
33
+ stroke-width: 6px;
34
+ }
35
+
36
+ .a9s-shape-handle {
37
+ cursor: move;
38
+ }
39
+
40
+ .a9s-corner-handle {
41
+ cursor: move;
42
+ }
43
+
44
+ .a9s-edge-handle-top {
45
+ cursor: n-resize;
46
+ }
47
+
48
+ .a9s-edge-handle-right {
49
+ cursor: e-resize;
50
+ }
51
+
52
+ .a9s-edge-handle-bottom {
53
+ cursor: s-resize;
54
+ }
55
+
56
+ .a9s-edge-handle-left {
57
+ cursor: w-resize;
58
+ }
59
+
60
+ .a9s-corner-handle.a9s-corner-handle-topleft {
61
+ cursor: nw-resize;
62
+ }
63
+
64
+ .a9s-corner-handle.a9s-corner-handle-topright {
65
+ cursor: ne-resize;
66
+ }
67
+
68
+ .a9s-corner-handle.a9s-corner-handle-bottomright {
69
+ cursor: se-resize;
70
+ }
71
+
72
+ .a9s-corner-handle.a9s-corner-handle-bottomleft {
73
+ cursor: sw-resize;
74
+ }