@rasamjs/tools 0.0.0-stage → 0.2.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 (131) hide show
  1. package/API.md +308 -0
  2. package/CHANGELOG.md +53 -0
  3. package/LICENSE +21 -0
  4. package/README.md +138 -2
  5. package/RELEASING.md +88 -0
  6. package/dist/advanced/context.d.ts +15 -0
  7. package/dist/advanced/context.d.ts.map +1 -0
  8. package/dist/advanced/context.js +2 -0
  9. package/dist/advanced/context.js.map +1 -0
  10. package/dist/advanced/curves.d.ts +5 -0
  11. package/dist/advanced/curves.d.ts.map +1 -0
  12. package/dist/advanced/curves.js +65 -0
  13. package/dist/advanced/curves.js.map +1 -0
  14. package/dist/advanced/geometry.d.ts +17 -0
  15. package/dist/advanced/geometry.d.ts.map +1 -0
  16. package/dist/advanced/geometry.js +61 -0
  17. package/dist/advanced/geometry.js.map +1 -0
  18. package/dist/advanced/rotation.d.ts +4 -0
  19. package/dist/advanced/rotation.d.ts.map +1 -0
  20. package/dist/advanced/rotation.js +86 -0
  21. package/dist/advanced/rotation.js.map +1 -0
  22. package/dist/advanced/session.d.ts +5 -0
  23. package/dist/advanced/session.d.ts.map +1 -0
  24. package/dist/advanced/session.js +240 -0
  25. package/dist/advanced/session.js.map +1 -0
  26. package/dist/advanced/snapper.d.ts +29 -0
  27. package/dist/advanced/snapper.d.ts.map +1 -0
  28. package/dist/advanced/snapper.js +118 -0
  29. package/dist/advanced/snapper.js.map +1 -0
  30. package/dist/advanced/types.d.ts +30 -0
  31. package/dist/advanced/types.d.ts.map +1 -0
  32. package/dist/advanced/types.js +2 -0
  33. package/dist/advanced/types.js.map +1 -0
  34. package/dist/drawing.d.ts +5 -0
  35. package/dist/drawing.d.ts.map +1 -0
  36. package/dist/drawing.js +3 -0
  37. package/dist/drawing.js.map +1 -0
  38. package/dist/editor/draw-tool.d.ts +35 -0
  39. package/dist/editor/draw-tool.d.ts.map +1 -0
  40. package/dist/editor/draw-tool.js +174 -0
  41. package/dist/editor/draw-tool.js.map +1 -0
  42. package/dist/editor/path-editor.d.ts +34 -0
  43. package/dist/editor/path-editor.d.ts.map +1 -0
  44. package/dist/editor/path-editor.js +208 -0
  45. package/dist/editor/path-editor.js.map +1 -0
  46. package/dist/editor/pointer.d.ts +21 -0
  47. package/dist/editor/pointer.d.ts.map +1 -0
  48. package/dist/editor/pointer.js +86 -0
  49. package/dist/editor/pointer.js.map +1 -0
  50. package/dist/editor/surface.d.ts +31 -0
  51. package/dist/editor/surface.d.ts.map +1 -0
  52. package/dist/editor/surface.js +138 -0
  53. package/dist/editor/surface.js.map +1 -0
  54. package/dist/grid.d.ts +23 -0
  55. package/dist/grid.d.ts.map +1 -0
  56. package/dist/grid.js +84 -0
  57. package/dist/grid.js.map +1 -0
  58. package/dist/rulers.d.ts +30 -0
  59. package/dist/rulers.d.ts.map +1 -0
  60. package/dist/rulers.js +234 -0
  61. package/dist/rulers.js.map +1 -0
  62. package/dist/snapping/advanced.d.ts +3 -0
  63. package/dist/snapping/advanced.d.ts.map +1 -0
  64. package/dist/snapping/advanced.js +2 -0
  65. package/dist/snapping/advanced.js.map +1 -0
  66. package/dist/snapping/guides.d.ts +14 -0
  67. package/dist/snapping/guides.d.ts.map +1 -0
  68. package/dist/snapping/guides.js +109 -0
  69. package/dist/snapping/guides.js.map +1 -0
  70. package/dist/snapping/lines.d.ts +43 -0
  71. package/dist/snapping/lines.d.ts.map +1 -0
  72. package/dist/snapping/lines.js +74 -0
  73. package/dist/snapping/lines.js.map +1 -0
  74. package/dist/snapping/options.d.ts +18 -0
  75. package/dist/snapping/options.d.ts.map +1 -0
  76. package/dist/snapping/options.js +44 -0
  77. package/dist/snapping/options.js.map +1 -0
  78. package/dist/snapping/overlay.d.ts +22 -0
  79. package/dist/snapping/overlay.d.ts.map +1 -0
  80. package/dist/snapping/overlay.js +165 -0
  81. package/dist/snapping/overlay.js.map +1 -0
  82. package/dist/snapping/session.d.ts +25 -0
  83. package/dist/snapping/session.d.ts.map +1 -0
  84. package/dist/snapping/session.js +89 -0
  85. package/dist/snapping/session.js.map +1 -0
  86. package/dist/snapping/snapper.d.ts +22 -0
  87. package/dist/snapping/snapper.d.ts.map +1 -0
  88. package/dist/snapping/snapper.js +140 -0
  89. package/dist/snapping/snapper.js.map +1 -0
  90. package/dist/snapping/spacing.d.ts +27 -0
  91. package/dist/snapping/spacing.d.ts.map +1 -0
  92. package/dist/snapping/spacing.js +127 -0
  93. package/dist/snapping/spacing.js.map +1 -0
  94. package/dist/snapping/targets.d.ts +7 -0
  95. package/dist/snapping/targets.d.ts.map +1 -0
  96. package/dist/snapping/targets.js +71 -0
  97. package/dist/snapping/targets.js.map +1 -0
  98. package/dist/snapping/types.d.ts +35 -0
  99. package/dist/snapping/types.d.ts.map +1 -0
  100. package/dist/snapping/types.js +2 -0
  101. package/dist/snapping/types.js.map +1 -0
  102. package/dist/snapping.d.ts +4 -0
  103. package/dist/snapping.d.ts.map +1 -0
  104. package/dist/snapping.js +3 -0
  105. package/dist/snapping.js.map +1 -0
  106. package/package.json +73 -4
  107. package/src/advanced/context.ts +15 -0
  108. package/src/advanced/curves.ts +65 -0
  109. package/src/advanced/geometry.ts +74 -0
  110. package/src/advanced/rotation.ts +93 -0
  111. package/src/advanced/session.ts +276 -0
  112. package/src/advanced/snapper.ts +124 -0
  113. package/src/advanced/types.ts +31 -0
  114. package/src/drawing.ts +4 -0
  115. package/src/editor/draw-tool.ts +190 -0
  116. package/src/editor/path-editor.ts +224 -0
  117. package/src/editor/pointer.ts +85 -0
  118. package/src/editor/surface.ts +141 -0
  119. package/src/grid.ts +99 -0
  120. package/src/rulers.ts +245 -0
  121. package/src/snapping/advanced.ts +8 -0
  122. package/src/snapping/guides.ts +132 -0
  123. package/src/snapping/lines.ts +108 -0
  124. package/src/snapping/options.ts +47 -0
  125. package/src/snapping/overlay.ts +186 -0
  126. package/src/snapping/session.ts +116 -0
  127. package/src/snapping/snapper.ts +147 -0
  128. package/src/snapping/spacing.ts +157 -0
  129. package/src/snapping/targets.ts +88 -0
  130. package/src/snapping/types.ts +27 -0
  131. package/src/snapping.ts +3 -0
@@ -0,0 +1,27 @@
1
+ import type { AnyNode, Point } from '@rasamjs/core';
2
+
3
+ export interface SnapperOptions {
4
+ readonly tolerance?: number;
5
+ readonly shapes?: boolean;
6
+ readonly spacing?: boolean;
7
+ readonly grid?: number | { readonly size: number; readonly origin?: Point } | null;
8
+ readonly targets?: (nodes: readonly AnyNode[]) => Iterable<AnyNode>;
9
+ readonly modifier?: 'ctrl' | 'none';
10
+ readonly style?: { readonly stroke?: string; readonly gapStroke?: string };
11
+ }
12
+
13
+ export type SnapRequest =
14
+ | { readonly kind: 'point'; readonly client: Point }
15
+ | {
16
+ readonly kind: 'move' | 'resize';
17
+ readonly nodes: readonly AnyNode[];
18
+ readonly client: Point;
19
+ readonly corners: readonly Point[];
20
+ readonly anchor?: Point;
21
+ readonly centered?: boolean;
22
+ };
23
+
24
+ export interface SnapSession {
25
+ snap(client: Point, modifiers: { readonly ignore: boolean; readonly centered?: boolean }): Point;
26
+ end(): void;
27
+ }
@@ -0,0 +1,3 @@
1
+ /** Opt-in snapping tools for rasam drawings. */
2
+ export { Snapper } from './snapping/snapper.js';
3
+ export type { SnapperOptions, SnapRequest, SnapSession } from './snapping/types.js';