@rowsncolumns/grid 9.0.4 → 13.2.33

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 (208) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +53 -59
  3. package/dist/cjs/Cell.d.ts +35 -0
  4. package/dist/cjs/Cell.d.ts.map +1 -0
  5. package/dist/cjs/Cell.js +29 -0
  6. package/dist/{CellOverlay.d.ts → cjs/CellOverlay.d.ts} +5 -5
  7. package/dist/cjs/CellOverlay.d.ts.map +1 -0
  8. package/dist/cjs/CellOverlay.js +126 -0
  9. package/dist/cjs/Context.d.ts +8 -0
  10. package/dist/cjs/Context.d.ts.map +1 -0
  11. package/dist/cjs/Context.js +13 -0
  12. package/dist/{FillHandle.d.ts → cjs/FillHandle.d.ts} +2 -1
  13. package/dist/cjs/FillHandle.d.ts.map +1 -0
  14. package/dist/cjs/FillHandle.js +26 -0
  15. package/dist/cjs/Grid.d.ts +558 -0
  16. package/dist/cjs/Grid.d.ts.map +1 -0
  17. package/dist/cjs/Grid.js +2446 -0
  18. package/dist/{GridLine.d.ts → cjs/GridLine.d.ts} +2 -1
  19. package/dist/cjs/GridLine.d.ts.map +1 -0
  20. package/dist/cjs/GridLine.js +10 -0
  21. package/dist/cjs/Image.d.ts +11 -0
  22. package/dist/cjs/Image.d.ts.map +1 -0
  23. package/dist/cjs/Image.js +57 -0
  24. package/dist/cjs/MemoizedGrid.d.ts +49 -0
  25. package/dist/cjs/MemoizedGrid.d.ts.map +1 -0
  26. package/dist/cjs/MemoizedGrid.js +105 -0
  27. package/dist/cjs/Selection.d.ts +5 -0
  28. package/dist/cjs/Selection.d.ts.map +1 -0
  29. package/dist/cjs/Selection.js +10 -0
  30. package/dist/{helpers.d.ts → cjs/helpers.d.ts} +59 -39
  31. package/dist/cjs/helpers.d.ts.map +1 -0
  32. package/dist/cjs/helpers.js +1409 -0
  33. package/dist/{hooks → cjs/hooks}/useCopyPaste.d.ts +3 -2
  34. package/dist/cjs/hooks/useCopyPaste.d.ts.map +1 -0
  35. package/dist/cjs/hooks/useCopyPaste.js +230 -0
  36. package/dist/{hooks → cjs/hooks}/useEditable.d.ts +21 -8
  37. package/dist/cjs/hooks/useEditable.d.ts.map +1 -0
  38. package/dist/cjs/hooks/useEditable.js +491 -0
  39. package/dist/{hooks → cjs/hooks}/useFilter.d.ts +3 -2
  40. package/dist/cjs/hooks/useFilter.d.ts.map +1 -0
  41. package/dist/cjs/hooks/useFilter.js +97 -0
  42. package/dist/{hooks → cjs/hooks}/useImage.d.ts +1 -0
  43. package/dist/cjs/hooks/useImage.d.ts.map +1 -0
  44. package/dist/cjs/hooks/useImage.js +80 -0
  45. package/dist/{hooks → cjs/hooks}/usePagination.d.ts +3 -2
  46. package/dist/cjs/hooks/usePagination.d.ts.map +1 -0
  47. package/dist/cjs/hooks/usePagination.js +53 -0
  48. package/dist/{hooks → cjs/hooks}/useSizer.d.ts +28 -29
  49. package/dist/cjs/hooks/useSizer.d.ts.map +1 -0
  50. package/dist/cjs/hooks/useSizer.js +176 -0
  51. package/dist/{hooks → cjs/hooks}/useTooltip.d.ts +2 -1
  52. package/dist/cjs/hooks/useTooltip.d.ts.map +1 -0
  53. package/dist/cjs/hooks/useTooltip.js +82 -0
  54. package/dist/{hooks → cjs/hooks}/useUndo.d.ts +2 -1
  55. package/dist/cjs/hooks/useUndo.d.ts.map +1 -0
  56. package/dist/cjs/hooks/useUndo.js +87 -0
  57. package/dist/cjs/index.d.ts +19 -0
  58. package/dist/cjs/index.d.ts.map +1 -0
  59. package/dist/cjs/index.js +29 -0
  60. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  61. package/dist/{types.d.ts → cjs/types.d.ts} +8 -3
  62. package/dist/cjs/types.d.ts.map +1 -0
  63. package/dist/{types.js → cjs/types.js} +7 -8
  64. package/dist/cjs/utils.d.ts +9 -0
  65. package/dist/cjs/utils.d.ts.map +1 -0
  66. package/dist/cjs/utils.js +58 -0
  67. package/dist/cjs/vitest.config.d.ts +3 -0
  68. package/dist/cjs/vitest.config.d.ts.map +1 -0
  69. package/dist/cjs/vitest.config.js +24 -0
  70. package/dist/esm/Cell.d.ts +35 -0
  71. package/dist/esm/Cell.d.ts.map +1 -0
  72. package/dist/esm/Cell.js +24 -0
  73. package/dist/esm/CellOverlay.d.ts +21 -0
  74. package/dist/esm/CellOverlay.d.ts.map +1 -0
  75. package/dist/esm/CellOverlay.js +120 -0
  76. package/dist/esm/Context.d.ts +8 -0
  77. package/dist/esm/Context.d.ts.map +1 -0
  78. package/dist/esm/Context.js +9 -0
  79. package/dist/esm/FillHandle.d.ts +8 -0
  80. package/dist/esm/FillHandle.d.ts.map +1 -0
  81. package/dist/{FillHandle.js → esm/FillHandle.js} +5 -11
  82. package/dist/esm/Grid.d.ts +558 -0
  83. package/dist/esm/Grid.d.ts.map +1 -0
  84. package/dist/esm/Grid.js +2451 -0
  85. package/dist/esm/GridLine.d.ts +5 -0
  86. package/dist/esm/GridLine.d.ts.map +1 -0
  87. package/dist/esm/GridLine.js +7 -0
  88. package/dist/esm/Image.d.ts +11 -0
  89. package/dist/esm/Image.d.ts.map +1 -0
  90. package/dist/esm/Image.js +53 -0
  91. package/dist/esm/MemoizedGrid.d.ts +49 -0
  92. package/dist/esm/MemoizedGrid.d.ts.map +1 -0
  93. package/dist/esm/MemoizedGrid.js +98 -0
  94. package/dist/esm/Selection.d.ts +5 -0
  95. package/dist/esm/Selection.d.ts.map +1 -0
  96. package/dist/esm/Selection.js +7 -0
  97. package/dist/esm/helpers.d.ts +281 -0
  98. package/dist/esm/helpers.d.ts.map +1 -0
  99. package/dist/esm/helpers.js +1260 -0
  100. package/dist/esm/hooks/useCopyPaste.d.ts +53 -0
  101. package/dist/esm/hooks/useCopyPaste.d.ts.map +1 -0
  102. package/dist/{hooks → esm/hooks}/useCopyPaste.js +40 -46
  103. package/dist/esm/hooks/useEditable.d.ts +253 -0
  104. package/dist/esm/hooks/useEditable.d.ts.map +1 -0
  105. package/dist/esm/hooks/useEditable.js +482 -0
  106. package/dist/esm/hooks/useFilter.d.ts +69 -0
  107. package/dist/esm/hooks/useFilter.d.ts.map +1 -0
  108. package/dist/{hooks → esm/hooks}/useFilter.js +22 -42
  109. package/dist/esm/hooks/useImage.d.ts +13 -0
  110. package/dist/esm/hooks/useImage.d.ts.map +1 -0
  111. package/dist/esm/hooks/useImage.js +76 -0
  112. package/dist/esm/hooks/usePagination.d.ts +69 -0
  113. package/dist/esm/hooks/usePagination.d.ts.map +1 -0
  114. package/dist/esm/hooks/usePagination.js +47 -0
  115. package/dist/esm/hooks/useSizer.d.ts +114 -0
  116. package/dist/esm/hooks/useSizer.d.ts.map +1 -0
  117. package/dist/esm/hooks/useSizer.js +176 -0
  118. package/dist/esm/hooks/useTooltip.d.ts +43 -0
  119. package/dist/esm/hooks/useTooltip.d.ts.map +1 -0
  120. package/dist/esm/hooks/useTooltip.js +80 -0
  121. package/dist/esm/hooks/useUndo.d.ts +36 -0
  122. package/dist/esm/hooks/useUndo.d.ts.map +1 -0
  123. package/dist/{hooks → esm/hooks}/useUndo.js +16 -25
  124. package/dist/esm/index.d.ts +19 -0
  125. package/dist/esm/index.d.ts.map +1 -0
  126. package/dist/esm/index.js +17 -0
  127. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  128. package/dist/esm/types.d.ts +70 -0
  129. package/dist/esm/types.d.ts.map +1 -0
  130. package/dist/esm/types.js +68 -0
  131. package/dist/esm/utils.d.ts +9 -0
  132. package/dist/esm/utils.d.ts.map +1 -0
  133. package/dist/esm/utils.js +104 -0
  134. package/dist/esm/vitest.config.d.ts +3 -0
  135. package/dist/esm/vitest.config.d.ts.map +1 -0
  136. package/dist/esm/vitest.config.js +22 -0
  137. package/package.json +28 -29
  138. package/dist/Cell.d.ts +0 -23
  139. package/dist/Cell.js +0 -55
  140. package/dist/Cell.js.map +0 -1
  141. package/dist/CellOverlay.js +0 -116
  142. package/dist/CellOverlay.js.map +0 -1
  143. package/dist/FillHandle.js.map +0 -1
  144. package/dist/Grid.d.ts +0 -385
  145. package/dist/Grid.js +0 -1684
  146. package/dist/Grid.js.map +0 -1
  147. package/dist/GridLine.js +0 -13
  148. package/dist/GridLine.js.map +0 -1
  149. package/dist/Image.d.ts +0 -8
  150. package/dist/Image.js +0 -50
  151. package/dist/Image.js.map +0 -1
  152. package/dist/Selection.d.ts +0 -4
  153. package/dist/Selection.js +0 -9
  154. package/dist/Selection.js.map +0 -1
  155. package/dist/helpers.js +0 -1033
  156. package/dist/helpers.js.map +0 -1
  157. package/dist/hooks/useCopyPaste.js.map +0 -1
  158. package/dist/hooks/useEditable.js +0 -477
  159. package/dist/hooks/useEditable.js.map +0 -1
  160. package/dist/hooks/useFilter.js.map +0 -1
  161. package/dist/hooks/useImage.js +0 -42
  162. package/dist/hooks/useImage.js.map +0 -1
  163. package/dist/hooks/usePagination.js +0 -73
  164. package/dist/hooks/usePagination.js.map +0 -1
  165. package/dist/hooks/useSelection.d.ts +0 -175
  166. package/dist/hooks/useSelection.js +0 -982
  167. package/dist/hooks/useSelection.js.map +0 -1
  168. package/dist/hooks/useSizer.js +0 -150
  169. package/dist/hooks/useSizer.js.map +0 -1
  170. package/dist/hooks/useTooltip.js +0 -106
  171. package/dist/hooks/useTooltip.js.map +0 -1
  172. package/dist/hooks/useTouch.d.ts +0 -21
  173. package/dist/hooks/useTouch.js +0 -73
  174. package/dist/hooks/useTouch.js.map +0 -1
  175. package/dist/hooks/useUndo.js.map +0 -1
  176. package/dist/index.d.ts +0 -25
  177. package/dist/index.js +0 -61
  178. package/dist/index.js.map +0 -1
  179. package/dist/types.js.map +0 -1
  180. package/dist/utils.d.ts +0 -8
  181. package/dist/utils.js +0 -153
  182. package/dist/utils.js.map +0 -1
  183. package/src/Cell.tsx +0 -100
  184. package/src/CellOverlay.tsx +0 -191
  185. package/src/FillHandle.tsx +0 -37
  186. package/src/Grid.tsx +0 -2677
  187. package/src/GridLine.tsx +0 -23
  188. package/src/Image.tsx +0 -43
  189. package/src/Selection.tsx +0 -9
  190. package/src/helpers.ts +0 -1455
  191. package/src/hooks/useCopyPaste.ts +0 -265
  192. package/src/hooks/useEditable.tsx +0 -945
  193. package/src/hooks/useFilter.tsx +0 -233
  194. package/src/hooks/useImage.ts +0 -57
  195. package/src/hooks/usePagination.tsx +0 -153
  196. package/src/hooks/useSelection.ts +0 -1440
  197. package/src/hooks/useSizer.ts +0 -312
  198. package/src/hooks/useTooltip.tsx +0 -172
  199. package/src/hooks/useTouch.ts +0 -116
  200. package/src/hooks/useUndo.ts +0 -134
  201. package/src/index.tsx +0 -46
  202. package/src/tests/Grid.spec.tsx +0 -47
  203. package/src/tests/helpers.test.ts +0 -292
  204. package/src/tests/usePagination.test.ts +0 -28
  205. package/src/tests/useSelection.test.ts +0 -27
  206. package/src/tests/useUndo.test.ts +0 -73
  207. package/src/types.ts +0 -69
  208. package/src/utils.tsx +0 -287
@@ -0,0 +1,19 @@
1
+ import { Cell, CellRenderer } from "./Cell";
2
+ import { CellOverlay, CellRenderer as CellOverlayRenderer } from "./CellOverlay";
3
+ import Grid from "./Grid";
4
+ import useFilter from "./hooks/useFilter";
5
+ import useUndo from "./hooks/useUndo";
6
+ import { Image } from "./Image";
7
+ import Selection from "./Selection";
8
+ export { Grid, CellRenderer, Cell, CellOverlay, useUndo, useFilter, CellOverlayRenderer, Image, Selection, };
9
+ export * from "./Grid";
10
+ export * from "./helpers";
11
+ export * from "./hooks/useFilter";
12
+ export * from "./hooks/useUndo";
13
+ export * from "./hooks/useTooltip";
14
+ export * from "./hooks/useEditable";
15
+ export * from "./types";
16
+ export type { ImageProps } from "./Image";
17
+ export * from "./utils";
18
+ export * from "./Context";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,YAAY,IAAI,mBAAmB,EACpC,MAAM,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,KAAK,EACL,SAAS,GACV,CAAC;AACF,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Selection = exports.Image = exports.CellOverlayRenderer = exports.useFilter = exports.useUndo = exports.CellOverlay = exports.Cell = exports.CellRenderer = exports.Grid = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var Cell_1 = require("./Cell");
6
+ Object.defineProperty(exports, "Cell", { enumerable: true, get: function () { return Cell_1.Cell; } });
7
+ Object.defineProperty(exports, "CellRenderer", { enumerable: true, get: function () { return Cell_1.CellRenderer; } });
8
+ var CellOverlay_1 = require("./CellOverlay");
9
+ Object.defineProperty(exports, "CellOverlay", { enumerable: true, get: function () { return CellOverlay_1.CellOverlay; } });
10
+ Object.defineProperty(exports, "CellOverlayRenderer", { enumerable: true, get: function () { return CellOverlay_1.CellRenderer; } });
11
+ var Grid_1 = tslib_1.__importDefault(require("./Grid"));
12
+ exports.Grid = Grid_1.default;
13
+ var useFilter_1 = tslib_1.__importDefault(require("./hooks/useFilter"));
14
+ exports.useFilter = useFilter_1.default;
15
+ var useUndo_1 = tslib_1.__importDefault(require("./hooks/useUndo"));
16
+ exports.useUndo = useUndo_1.default;
17
+ var Image_1 = require("./Image");
18
+ Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return Image_1.Image; } });
19
+ var Selection_1 = tslib_1.__importDefault(require("./Selection"));
20
+ exports.Selection = Selection_1.default;
21
+ tslib_1.__exportStar(require("./Grid"), exports);
22
+ tslib_1.__exportStar(require("./helpers"), exports);
23
+ tslib_1.__exportStar(require("./hooks/useFilter"), exports);
24
+ tslib_1.__exportStar(require("./hooks/useUndo"), exports);
25
+ tslib_1.__exportStar(require("./hooks/useTooltip"), exports);
26
+ tslib_1.__exportStar(require("./hooks/useEditable"), exports);
27
+ tslib_1.__exportStar(require("./types"), exports);
28
+ tslib_1.__exportStar(require("./utils"), exports);
29
+ tslib_1.__exportStar(require("./Context"), exports);
@@ -0,0 +1 @@
1
+ {"root":["../../cell.tsx","../../celloverlay.tsx","../../context.tsx","../../fillhandle.tsx","../../grid.tsx","../../gridline.tsx","../../image.tsx","../../memoizedgrid.tsx","../../selection.tsx","../../helpers.ts","../../index.tsx","../../types.ts","../../utils.tsx","../../vitest.config.ts","../../hooks/usecopypaste.ts","../../hooks/useeditable.tsx","../../hooks/usefilter.tsx","../../hooks/useimage.ts","../../hooks/usepagination.tsx","../../hooks/usesizer.ts","../../hooks/usetooltip.tsx","../../hooks/useundo.ts"],"version":"5.8.3"}
@@ -58,8 +58,13 @@ export declare enum MimeType {
58
58
  json = "application/json"
59
59
  }
60
60
  export declare enum MouseButtonCodes {
61
- "left" = 1,
62
- "middle" = 2,
63
- "right" = 3
61
+ "left" = 0,
62
+ "middle" = 1,
63
+ "right" = 2
64
64
  }
65
65
  export type SelectionPolicy = "single" | "range" | "multiple";
66
+ export type RowRange = {
67
+ start: number;
68
+ end: number;
69
+ };
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,KAAK;IACV,IAAI,KAAK;IACT,EAAE,KAAK;IACP,IAAI,KAAK;IACT,MAAM,KAAK;IACX,GAAG,IAAI;IACP,IAAI,KAAK;IACT,MAAM,KAAK;IACX,SAAS,IAAI;IACb,KAAK,KAAK;IACV,CAAC,KAAK;IACN,KAAK,KAAK;IACV,GAAG,KAAK;IACR,CAAC,KAAK;IACN,IAAI,KAAK;IACT,GAAG,KAAK;IACR,QAAQ,KAAK;IACb,MAAM,KAAK;IACX,CAAC,KAAK;IACN,QAAQ,KAAK;IACb,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,UAAU,MAAM;IAChB,KAAK,KAAK;IACV,UAAU,MAAM;IAChB,OAAO,MAAM;IACb,KAAK,KAAK;IACV,MAAM,KAAK;IACX,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,EAAE,MAAM;IACR,GAAG,MAAM;IACT,GAAG,MAAM;IACT,GAAG,MAAM;CACV;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,QAAQ;IAClB,IAAI,cAAc;IAClB,GAAG,aAAa;IAChB,KAAK,eAAe;IACpB,IAAI,qBAAqB;CAC1B;AAED,oBAAY,gBAAgB;IAC1B,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,OAAO,IAAI;CACZ;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC"}
@@ -48,25 +48,24 @@ var KeyCodes;
48
48
  KeyCodes[KeyCodes["F10"] = 121] = "F10";
49
49
  KeyCodes[KeyCodes["F11"] = 122] = "F11";
50
50
  KeyCodes[KeyCodes["F12"] = 123] = "F12";
51
- })(KeyCodes = exports.KeyCodes || (exports.KeyCodes = {}));
51
+ })(KeyCodes || (exports.KeyCodes = KeyCodes = {}));
52
52
  var Direction;
53
53
  (function (Direction) {
54
54
  Direction["Up"] = "UP";
55
55
  Direction["Down"] = "DOWN";
56
56
  Direction["Left"] = "LEFT";
57
57
  Direction["Right"] = "RIGHT";
58
- })(Direction = exports.Direction || (exports.Direction = {}));
58
+ })(Direction || (exports.Direction = Direction = {}));
59
59
  var MimeType;
60
60
  (function (MimeType) {
61
61
  MimeType["html"] = "text/html";
62
62
  MimeType["csv"] = "text/csv";
63
63
  MimeType["plain"] = "text/plain";
64
64
  MimeType["json"] = "application/json";
65
- })(MimeType = exports.MimeType || (exports.MimeType = {}));
65
+ })(MimeType || (exports.MimeType = MimeType = {}));
66
66
  var MouseButtonCodes;
67
67
  (function (MouseButtonCodes) {
68
- MouseButtonCodes[MouseButtonCodes["left"] = 1] = "left";
69
- MouseButtonCodes[MouseButtonCodes["middle"] = 2] = "middle";
70
- MouseButtonCodes[MouseButtonCodes["right"] = 3] = "right";
71
- })(MouseButtonCodes = exports.MouseButtonCodes || (exports.MouseButtonCodes = {}));
72
- //# sourceMappingURL=types.js.map
68
+ MouseButtonCodes[MouseButtonCodes["left"] = 0] = "left";
69
+ MouseButtonCodes[MouseButtonCodes["middle"] = 1] = "middle";
70
+ MouseButtonCodes[MouseButtonCodes["right"] = 2] = "right";
71
+ })(MouseButtonCodes || (exports.MouseButtonCodes = MouseButtonCodes = {}));
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { SelectionProps } from "./Grid";
3
+ /**
4
+ * Create Pure HTML boxes
5
+ * @param param0
6
+ * @returns
7
+ */
8
+ export declare const createHTMLBox: ({ x, y, width, height, fill, stroke, strokeLeftColor, strokeTopColor, strokeRightColor, strokeBottomColor, strokeWidth, strokeTopWidth, strokeRightWidth, strokeBottomWidth, strokeLeftWidth, index, strokeStyle, fillOpacity, draggable, isDragging, borderCoverWidth, children, ...props }: SelectionProps) => React.JSX.Element;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,8RAwB3B,cAAc,sBA4IhB,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHTMLBox = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ /**
7
+ * Create Pure HTML boxes
8
+ * @param param0
9
+ * @returns
10
+ */
11
+ var createHTMLBox = function (_a) {
12
+ var _b = _a.x, x = _b === void 0 ? 0 : _b, _c = _a.y, y = _c === void 0 ? 0 : _c, _d = _a.width, width = _d === void 0 ? 0 : _d, _e = _a.height, height = _e === void 0 ? 0 : _e, fill = _a.fill, stroke = _a.stroke, _f = _a.strokeLeftColor, strokeLeftColor = _f === void 0 ? stroke : _f, _g = _a.strokeTopColor, strokeTopColor = _g === void 0 ? stroke : _g, _h = _a.strokeRightColor, strokeRightColor = _h === void 0 ? stroke : _h, _j = _a.strokeBottomColor, strokeBottomColor = _j === void 0 ? stroke : _j, _k = _a.strokeWidth, strokeWidth = _k === void 0 ? 0 : _k, _l = _a.strokeTopWidth, strokeTopWidth = _l === void 0 ? strokeWidth : _l, _m = _a.strokeRightWidth, strokeRightWidth = _m === void 0 ? strokeWidth : _m, _o = _a.strokeBottomWidth, strokeBottomWidth = _o === void 0 ? strokeWidth : _o, _p = _a.strokeLeftWidth, strokeLeftWidth = _p === void 0 ? strokeWidth : _p, index = _a.index, _q = _a.strokeStyle, strokeStyle = _q === void 0 ? "solid" : _q, _r = _a.fillOpacity, fillOpacity = _r === void 0 ? 1 : _r, draggable = _a.draggable, isDragging = _a.isDragging, _s = _a.borderCoverWidth, borderCoverWidth = _s === void 0 ? 5 : _s, children = _a.children, props = tslib_1.__rest(_a, ["x", "y", "width", "height", "fill", "stroke", "strokeLeftColor", "strokeTopColor", "strokeRightColor", "strokeBottomColor", "strokeWidth", "strokeTopWidth", "strokeRightWidth", "strokeBottomWidth", "strokeLeftWidth", "index", "strokeStyle", "fillOpacity", "draggable", "isDragging", "borderCoverWidth", "children"]);
13
+ var lineStyles = {
14
+ borderWidth: 0,
15
+ position: "absolute",
16
+ pointerEvents: "none",
17
+ };
18
+ /**
19
+ * Border cover is so that there is enough
20
+ * draggable handle area for the user.
21
+ * Default is 5px
22
+ */
23
+ var showBorderCover = draggable;
24
+ var borderCoverStyle = {
25
+ position: "absolute",
26
+ pointerEvents: draggable ? "auto" : "none",
27
+ cursor: draggable ? (isDragging ? "grabbing" : "grab") : "initial",
28
+ };
29
+ width = width - Math.floor(strokeWidth / 2);
30
+ height = height - Math.floor(strokeWidth / 2);
31
+ var lines = [
32
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: width, height: strokeTopWidth, borderColor: strokeTopColor, borderTopWidth: strokeTopWidth, borderStyle: strokeStyle }), key: "top" }, props)),
33
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x + width, "px, ").concat(y, "px, 0)"), width: strokeRightWidth, height: height, borderColor: strokeRightColor, borderRightWidth: strokeRightWidth, borderStyle: strokeStyle }), key: "right" }, props)),
34
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x, "px, ").concat(y + height, "px, 0)"), width: width + strokeTopWidth, height: strokeBottomWidth, borderColor: strokeBottomColor, borderBottomWidth: strokeBottomWidth, borderStyle: strokeStyle }), key: "bottom" }, props)),
35
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, lineStyles), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: strokeLeftWidth, height: height, borderColor: strokeLeftColor, borderLeftWidth: strokeLeftWidth, borderStyle: strokeStyle }), key: "left" }, props)),
36
+ ];
37
+ var borderCovers = [
38
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: width, height: 5 }), key: "top" }, props)),
39
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x + width - borderCoverWidth + strokeRightWidth, "px, ").concat(y, "px, 0)"), width: borderCoverWidth, height: height }), key: "right" }, props)),
40
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x, "px, ").concat(y + height - borderCoverWidth + strokeBottomWidth, "px, 0)"), width: width + strokeTopWidth, height: borderCoverWidth }), key: "bottom" }, props)),
41
+ react_1.default.createElement("div", tslib_1.__assign({ style: tslib_1.__assign(tslib_1.__assign({}, borderCoverStyle), { transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"), width: borderCoverWidth, height: height }), key: "left" }, props)),
42
+ ];
43
+ return (react_1.default.createElement(react_1.default.Fragment, { key: index },
44
+ fill && (react_1.default.createElement("div", { style: {
45
+ position: "absolute",
46
+ transform: "translate3d(".concat(x, "px, ").concat(y, "px, 0)"),
47
+ height: height,
48
+ width: width,
49
+ backgroundColor: fill,
50
+ opacity: fillOpacity,
51
+ userSelect: "none",
52
+ pointerEvents: "none",
53
+ } })),
54
+ lines,
55
+ showBorderCover && borderCovers,
56
+ children));
57
+ };
58
+ exports.createHTMLBox = createHTMLBox;
@@ -0,0 +1,3 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vitest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../../vitest.config.ts"],"names":[],"mappings":";AAGA,wBAsBG"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // vitest.config.ts
4
+ var config_1 = require("vitest/config");
5
+ exports.default = (0, config_1.defineConfig)({
6
+ test: {
7
+ globals: true,
8
+ environment: "jsdom",
9
+ // ✅ correct location for deps.inline
10
+ deps: {
11
+ inline: ["konva", "react-konva"],
12
+ },
13
+ },
14
+ // Ensure Vite bundles these for SSR-style test runs
15
+ ssr: {
16
+ noExternal: ["konva", "react-konva"],
17
+ },
18
+ // Prefer the ESM build of react-konva (avoid its CJS wrapper that requires konva)
19
+ resolve: {
20
+ alias: {
21
+ "react-konva": "react-konva/es/ReactKonvaCore.js",
22
+ },
23
+ },
24
+ });
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import type { RendererProps } from "./Grid";
3
+ export interface CellProps extends RendererProps {
4
+ value?: string;
5
+ color?: string;
6
+ padding?: number;
7
+ bold?: boolean;
8
+ italic?: boolean;
9
+ strikethrough?: boolean;
10
+ underline?: boolean;
11
+ lineHeight?: number;
12
+ textDecoration?: string;
13
+ verticalAlignment?: string;
14
+ horizontalAlignment?: string;
15
+ fontFamily?: string;
16
+ fontSize?: number;
17
+ wrapStrategy?: string;
18
+ scale?: number;
19
+ backgroundColor?: string;
20
+ image?: string;
21
+ children?: React.ReactNode;
22
+ }
23
+ /**
24
+ * Default cell component
25
+ * @param props
26
+ */
27
+ declare const Cell: React.FC<CellProps>;
28
+ /**
29
+ * Default CellRenderer
30
+ * @param props
31
+ */
32
+ declare const CellRenderer: (props: RendererProps) => React.JSX.Element;
33
+ export default CellRenderer;
34
+ export { CellRenderer, Cell };
35
+ //# sourceMappingURL=Cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cell.d.ts","sourceRoot":"","sources":["../../Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG5C,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAgD5B,CAAC;AAIH;;;GAGG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,aAAa,sBAEzC,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React, { memo } from "react";
2
+ import { Group, Text } from "react-konva";
3
+ import { isNull } from "./helpers";
4
+ /**
5
+ * Default cell component
6
+ * @param props
7
+ */
8
+ const Cell = memo((props) => {
9
+ const { x = 0, y = 0, width, height, value, horizontalAlignment = "left", verticalAlignment = "bottom", color = "#333", padding = 3, fontFamily = "Arial", fontSize = 12, children, wrapStrategy = "none", bold, italic, textDecoration, lineHeight = 1, } = props;
10
+ const textStyle = `${bold ? "bold" : "normal"} ${italic ? "italic" : "normal"}`;
11
+ return (React.createElement(Group, null,
12
+ isNull(value) ? null : (React.createElement(Text, { x: x, y: y, height: height, width: width, text: value, fill: color, verticalAlign: verticalAlignment, align: horizontalAlignment, fontFamily: fontFamily, fontStyle: textStyle, textDecoration: textDecoration, padding: padding, wrap: wrapStrategy, fontSize: fontSize, hitStrokeWidth: 0, lineHeight: lineHeight })),
13
+ children));
14
+ });
15
+ Cell.displayName = "Cell";
16
+ /**
17
+ * Default CellRenderer
18
+ * @param props
19
+ */
20
+ const CellRenderer = (props) => {
21
+ return React.createElement(Cell, { ...props });
22
+ };
23
+ export default CellRenderer;
24
+ export { CellRenderer, Cell };
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import type { CellProps } from "./Cell";
3
+ import type { RendererProps } from "./Grid";
4
+ export type StrokeCellProps = Omit<CellProps, "key" | "rowIndex" | "columnIndex">;
5
+ /**
6
+ * Offset helps multiple borders to align properly
7
+ * @param width
8
+ */
9
+ export declare const getOffsetFromWidth: (width: number) => number;
10
+ /**
11
+ * Only used for strokes
12
+ */
13
+ declare const CellOverlay: React.FC<StrokeCellProps>;
14
+ /**
15
+ * Default CellRenderer
16
+ * @param props
17
+ */
18
+ declare const CellRenderer: (props: RendererProps) => React.JSX.Element | null;
19
+ export default CellRenderer;
20
+ export { CellRenderer, CellOverlay };
21
+ //# sourceMappingURL=CellOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellOverlay.d.ts","sourceRoot":"","sources":["../../CellOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAK5C,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,SAAS,EACT,KAAK,GAAG,UAAU,GAAG,aAAa,CACnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WAE/C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgJzC,CAAC;AAEH;;;GAGG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,aAAa,6BAmEzC,CAAC;AAGF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,120 @@
1
+ import React, { memo } from "react";
2
+ import { Shape } from "react-konva";
3
+ /* Array placeholder */
4
+ const EMPTY_ARRAY = [];
5
+ /**
6
+ * Offset helps multiple borders to align properly
7
+ * @param width
8
+ */
9
+ export const getOffsetFromWidth = (width) => {
10
+ return width / 2 - 0.5;
11
+ };
12
+ /**
13
+ * Only used for strokes
14
+ */
15
+ const CellOverlay = memo((props) => {
16
+ const { x, y, width, height, strokeTopColor, strokeRightColor, strokeBottomColor, strokeLeftColor, strokeDiagonalUpColor, strokeDiagonalDownColor, strokeTopDash = EMPTY_ARRAY, strokeRightDash = EMPTY_ARRAY, strokeBottomDash = EMPTY_ARRAY, strokeLeftDash = EMPTY_ARRAY, strokeDiagonalUpDash = EMPTY_ARRAY, strokeDiagonalDownDash = EMPTY_ARRAY, strokeTopWidth = 0, strokeRightWidth = 0, strokeBottomWidth = 0, strokeLeftWidth = 0, strokeDiagonalUpWidth = 0, strokeDiagonalDownWidth = 0, lineCap, } = props;
17
+ const userStroke = strokeTopColor ||
18
+ strokeRightColor ||
19
+ strokeBottomColor ||
20
+ strokeLeftColor ||
21
+ strokeDiagonalUpColor ||
22
+ strokeDiagonalDownColor;
23
+ if (!userStroke)
24
+ return null;
25
+ return (React.createElement(Shape, { x: x, y: y, width: width, height: height, listening: false, perfectDrawEnabled: false, sceneFunc: (context, shape) => {
26
+ /* Top border */
27
+ if (strokeTopColor) {
28
+ context.beginPath();
29
+ context.moveTo(strokeLeftColor ? -getOffsetFromWidth(strokeLeftWidth) : 0, 0.5);
30
+ context.lineTo(shape.width() +
31
+ (strokeRightColor ? getOffsetFromWidth(strokeRightWidth) + 1 : 1), 0.5);
32
+ context.setAttr("strokeStyle", strokeTopColor);
33
+ context.setAttr("lineWidth", strokeTopWidth);
34
+ context.setAttr("lineCap", lineCap);
35
+ context.setLineDash(strokeTopDash);
36
+ context.stroke();
37
+ }
38
+ /* Bottom border */
39
+ if (strokeBottomColor) {
40
+ context.beginPath();
41
+ context.moveTo(strokeLeftColor ? -getOffsetFromWidth(strokeLeftWidth) : 0, shape.height() + 0.5);
42
+ context.lineTo(shape.width() +
43
+ (strokeRightColor ? getOffsetFromWidth(strokeRightWidth) + 1 : 1), shape.height() + 0.5);
44
+ context.setAttr("lineWidth", strokeBottomWidth);
45
+ context.setAttr("strokeStyle", strokeBottomColor);
46
+ context.setAttr("lineCap", lineCap);
47
+ context.setLineDash(strokeBottomDash);
48
+ context.stroke();
49
+ }
50
+ /* Left border */
51
+ if (strokeLeftColor) {
52
+ context.beginPath();
53
+ context.moveTo(0.5, strokeTopColor ? -getOffsetFromWidth(strokeTopWidth) : 0);
54
+ context.lineTo(0.5, shape.height() +
55
+ (strokeBottomColor
56
+ ? getOffsetFromWidth(strokeBottomWidth) + 1
57
+ : 1));
58
+ context.setAttr("strokeStyle", strokeLeftColor);
59
+ context.setAttr("lineWidth", strokeLeftWidth);
60
+ context.setAttr("lineCap", lineCap);
61
+ context.setLineDash(strokeLeftDash);
62
+ context.stroke();
63
+ }
64
+ /* Right border */
65
+ if (strokeRightColor) {
66
+ context.beginPath();
67
+ context.moveTo(shape.width() + 0.5, strokeTopColor ? -getOffsetFromWidth(strokeTopWidth) : 0);
68
+ context.lineTo(shape.width() + 0.5, shape.height() +
69
+ (strokeBottomColor
70
+ ? getOffsetFromWidth(strokeBottomWidth) + 1
71
+ : 1));
72
+ context.setAttr("strokeStyle", strokeRightColor);
73
+ context.setAttr("lineWidth", strokeRightWidth);
74
+ context.setAttr("lineCap", lineCap);
75
+ context.setLineDash(strokeRightDash);
76
+ context.stroke();
77
+ }
78
+ /* Diagonal: top-left to bottom-right (diagonalDown) */
79
+ if (strokeDiagonalDownColor) {
80
+ context.beginPath();
81
+ context.moveTo(0, 0);
82
+ context.lineTo(shape.width(), shape.height());
83
+ context.setAttr("strokeStyle", strokeDiagonalDownColor);
84
+ context.setAttr("lineWidth", strokeDiagonalDownWidth);
85
+ context.setAttr("lineCap", lineCap);
86
+ context.setLineDash(strokeDiagonalDownDash);
87
+ context.stroke();
88
+ }
89
+ /* Diagonal: bottom-left to top-right (diagonalUp) */
90
+ if (strokeDiagonalUpColor) {
91
+ context.beginPath();
92
+ context.moveTo(0, shape.height());
93
+ context.lineTo(shape.width(), 0);
94
+ context.setAttr("strokeStyle", strokeDiagonalUpColor);
95
+ context.setAttr("lineWidth", strokeDiagonalUpWidth);
96
+ context.setAttr("lineCap", lineCap);
97
+ context.setLineDash(strokeDiagonalUpDash);
98
+ context.stroke();
99
+ }
100
+ } }));
101
+ });
102
+ /**
103
+ * Default CellRenderer
104
+ * @param props
105
+ */
106
+ const CellRenderer = (props) => {
107
+ const { x, y, width, height, stroke, strokeTopColor = stroke, strokeRightColor = stroke, strokeBottomColor = stroke, strokeLeftColor = stroke, strokeDiagonalUpColor, strokeDiagonalDownColor, strokeDash = EMPTY_ARRAY, strokeTopDash = EMPTY_ARRAY, strokeRightDash = EMPTY_ARRAY, strokeBottomDash = EMPTY_ARRAY, strokeLeftDash = EMPTY_ARRAY, strokeDiagonalUpDash = EMPTY_ARRAY, strokeDiagonalDownDash = EMPTY_ARRAY, strokeWidth = 1, strokeTopWidth = strokeWidth, strokeRightWidth = strokeWidth, strokeBottomWidth = strokeWidth, strokeLeftWidth = strokeWidth, strokeDiagonalUpWidth = strokeWidth, strokeDiagonalDownWidth = strokeWidth, lineCap = "butt", key, } = props;
108
+ const userStroke = strokeTopColor ||
109
+ strokeRightColor ||
110
+ strokeBottomColor ||
111
+ strokeLeftColor ||
112
+ strokeDiagonalUpColor ||
113
+ strokeDiagonalDownColor;
114
+ if (!userStroke)
115
+ return null;
116
+ return (React.createElement(CellOverlay, { key: key, x: x, y: y, width: width, height: height, strokeTopColor: strokeTopColor, strokeRightColor: strokeRightColor, strokeBottomColor: strokeBottomColor, strokeLeftColor: strokeLeftColor, strokeDiagonalUpColor: strokeDiagonalUpColor, strokeDiagonalDownColor: strokeDiagonalDownColor, strokeDash: strokeDash, strokeTopDash: strokeTopDash, strokeRightDash: strokeRightDash, strokeBottomDash: strokeBottomDash, strokeLeftDash: strokeLeftDash, strokeDiagonalUpDash: strokeDiagonalUpDash, strokeDiagonalDownDash: strokeDiagonalDownDash, strokeTopWidth: strokeTopWidth, strokeRightWidth: strokeRightWidth, strokeBottomWidth: strokeBottomWidth, strokeLeftWidth: strokeLeftWidth, strokeDiagonalUpWidth: strokeDiagonalUpWidth, strokeDiagonalDownWidth: strokeDiagonalDownWidth, lineCap: lineCap }));
117
+ };
118
+ CellOverlay.displayName = "CellOverlay";
119
+ export default CellRenderer;
120
+ export { CellRenderer, CellOverlay };
@@ -0,0 +1,8 @@
1
+ import type { CellInterface, CellPosition } from "./Grid";
2
+ type GridContext = {
3
+ getCellOffsetFromCoords(coords: CellInterface, readonly?: boolean): CellPosition | undefined;
4
+ };
5
+ export declare const GridContext: import("react").Context<GridContext | undefined>;
6
+ export declare const useGridContext: () => GridContext;
7
+ export {};
8
+ //# sourceMappingURL=Context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../Context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE1D,KAAK,WAAW,GAAG;IACjB,uBAAuB,CACrB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,OAAO,GACjB,YAAY,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,WAAW,kDAAoD,CAAC;AAE7E,eAAO,MAAM,cAAc,mBAM1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { createContext, useContext } from "react";
2
+ export const GridContext = createContext(undefined);
3
+ export const useGridContext = () => {
4
+ const contextValue = useContext(GridContext);
5
+ if (!contextValue) {
6
+ throw "Wrap your grid in GridContext.Provider";
7
+ }
8
+ return contextValue;
9
+ };
@@ -0,0 +1,8 @@
1
+ import type { ShapeConfig } from "konva/lib/Shape";
2
+ import React from "react";
3
+ /**
4
+ * Fill handle component
5
+ */
6
+ declare const FillHandle: React.FC<ShapeConfig>;
7
+ export default FillHandle;
8
+ //# sourceMappingURL=FillHandle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FillHandle.d.ts","sourceRoot":"","sources":["../../FillHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4BrC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,19 +1,14 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
1
+ import React from "react";
7
2
  /**
8
3
  * Fill handle component
9
4
  */
10
5
  const FillHandle = ({ x = 0, y = 0, stroke, strokeWidth = 1, size = 8, borderColor, ...props }) => {
11
6
  if (x === 0 || y === 0)
12
7
  return null;
13
- return (react_1.default.createElement("div", { style: {
8
+ return (React.createElement("div", { style: {
14
9
  position: "absolute",
15
- left: x - size / 2,
16
- top: y - size / 2,
10
+ transform: `translate3d(${x - size / 2}px, ${y - size / 2}px, 0)`,
11
+ transformOrigin: "0, 0",
17
12
  width: size,
18
13
  height: size,
19
14
  border: `${strokeWidth}px ${borderColor} solid`,
@@ -24,5 +19,4 @@ const FillHandle = ({ x = 0, y = 0, stroke, strokeWidth = 1, size = 8, borderCol
24
19
  pointerEvents: "all",
25
20
  }, ...props }));
26
21
  };
27
- exports.default = FillHandle;
28
- //# sourceMappingURL=FillHandle.js.map
22
+ export default FillHandle;