@threekit-tools/treble 0.0.90 → 0.0.91-next-01

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 (205) hide show
  1. package/dist/Treble/Treble.d.ts +2 -2
  2. package/dist/Treble/Treble.js +2 -2
  3. package/dist/Treble/index.d.ts +1 -1
  4. package/dist/Treble/index.js +1 -1
  5. package/dist/components/BreatheAnimation/index.js +2 -2
  6. package/dist/components/TurntableAnimation/index.js +2 -2
  7. package/dist/components/containers/formInputContainer.js +3 -3
  8. package/dist/hooks/useAttribute/index.js +1 -5
  9. package/dist/hooks/useConfigurationChangeStatus/index.d.ts +2 -0
  10. package/dist/hooks/{usePlayerLoadingStatus → useConfigurationChangeStatus}/index.js +2 -2
  11. package/dist/hooks/useNestedConfigurator/index.js +1 -2
  12. package/dist/hooks/usePlayerReady/index.d.ts +2 -0
  13. package/dist/hooks/{useAnimationStart → usePlayerReady}/index.js +2 -2
  14. package/dist/hooks/useSpaces/Canvas.d.ts +37 -0
  15. package/dist/hooks/useSpaces/Canvas.js +199 -0
  16. package/dist/hooks/useSpaces/SpacesLayout.d.ts +11 -0
  17. package/dist/hooks/useSpaces/SpacesLayout.js +74 -0
  18. package/dist/hooks/useSpaces/SpacesState.d.ts +162 -0
  19. package/dist/hooks/useSpaces/SpacesState.js +1791 -0
  20. package/dist/hooks/useSpaces/constants.d.ts +44 -0
  21. package/dist/hooks/useSpaces/constants.js +105 -0
  22. package/dist/hooks/{useRoomBuilder → useSpaces}/dataHandlers.d.ts +6 -4
  23. package/dist/hooks/{useRoomBuilder → useSpaces}/dataHandlers.js +104 -42
  24. package/dist/hooks/useSpaces/draw/clearCanvas.d.ts +2 -0
  25. package/dist/hooks/useSpaces/draw/clearCanvas.js +9 -0
  26. package/dist/hooks/useSpaces/draw/drawBackground.d.ts +2 -0
  27. package/dist/hooks/useSpaces/draw/drawBackground.js +12 -0
  28. package/dist/hooks/useSpaces/draw/drawDimensions.d.ts +3 -0
  29. package/dist/hooks/useSpaces/draw/drawDimensions.js +53 -0
  30. package/dist/hooks/useSpaces/draw/drawDoors.d.ts +9 -0
  31. package/dist/hooks/useSpaces/draw/drawDoors.js +93 -0
  32. package/dist/hooks/useSpaces/draw/drawFloor.d.ts +3 -0
  33. package/dist/hooks/useSpaces/draw/drawFloor.js +36 -0
  34. package/dist/hooks/useSpaces/draw/drawGrid.d.ts +3 -0
  35. package/dist/hooks/useSpaces/draw/drawGrid.js +31 -0
  36. package/dist/hooks/useSpaces/draw/drawGuides.d.ts +3 -0
  37. package/dist/hooks/useSpaces/draw/drawGuides.js +23 -0
  38. package/dist/hooks/useSpaces/draw/drawOpenings.d.ts +9 -0
  39. package/dist/hooks/useSpaces/draw/drawOpenings.js +72 -0
  40. package/dist/hooks/useSpaces/draw/drawVertices.d.ts +8 -0
  41. package/dist/hooks/useSpaces/draw/drawVertices.js +61 -0
  42. package/dist/hooks/useSpaces/draw/drawWalls.d.ts +10 -0
  43. package/dist/hooks/useSpaces/draw/drawWalls.js +64 -0
  44. package/dist/hooks/useSpaces/draw/drawWindows.d.ts +9 -0
  45. package/dist/hooks/useSpaces/draw/drawWindows.js +82 -0
  46. package/dist/hooks/useSpaces/draw/index.d.ts +11 -0
  47. package/dist/hooks/useSpaces/draw/index.js +129 -0
  48. package/dist/hooks/useSpaces/geometry/addThicknessToLine.d.ts +3 -0
  49. package/dist/hooks/useSpaces/geometry/addThicknessToLine.js +13 -0
  50. package/dist/hooks/useSpaces/geometry/areLinesEqual.d.ts +3 -0
  51. package/dist/hooks/useSpaces/geometry/areLinesEqual.js +17 -0
  52. package/dist/hooks/useSpaces/geometry/arePointsEqual.d.ts +3 -0
  53. package/dist/hooks/useSpaces/geometry/arePointsEqual.js +8 -0
  54. package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.d.ts +3 -0
  55. package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.js +11 -0
  56. package/dist/hooks/useSpaces/geometry/closestPointOnLine.d.ts +3 -0
  57. package/dist/hooks/useSpaces/geometry/closestPointOnLine.js +13 -0
  58. package/dist/hooks/useSpaces/geometry/doLinesOverlap.d.ts +2 -0
  59. package/dist/hooks/useSpaces/geometry/doLinesOverlap.js +16 -0
  60. package/dist/hooks/useSpaces/geometry/euclideanMod.d.ts +2 -0
  61. package/dist/hooks/useSpaces/geometry/euclideanMod.js +6 -0
  62. package/dist/hooks/useSpaces/geometry/findLoops.d.ts +6 -0
  63. package/dist/hooks/{useRoomBuilder → useSpaces/geometry}/findLoops.js +14 -9
  64. package/dist/hooks/useSpaces/geometry/getAllLineIntersections.d.ts +6 -0
  65. package/dist/hooks/useSpaces/geometry/getAllLineIntersections.js +23 -0
  66. package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.d.ts +3 -0
  67. package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.js +7 -0
  68. package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.d.ts +3 -0
  69. package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.js +17 -0
  70. package/dist/hooks/useSpaces/geometry/getDistanceToLine.d.ts +3 -0
  71. package/dist/hooks/useSpaces/geometry/getDistanceToLine.js +10 -0
  72. package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.d.ts +3 -0
  73. package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.js +7 -0
  74. package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.d.ts +3 -0
  75. package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.js +17 -0
  76. package/dist/hooks/useSpaces/geometry/getLineOtherPoint.d.ts +3 -0
  77. package/dist/hooks/useSpaces/geometry/getLineOtherPoint.js +11 -0
  78. package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.d.ts +3 -0
  79. package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.js +43 -0
  80. package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.d.ts +3 -0
  81. package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.js +9 -0
  82. package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.d.ts +3 -0
  83. package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.js +20 -0
  84. package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.d.ts +3 -0
  85. package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.js +11 -0
  86. package/dist/hooks/useSpaces/geometry/getPolygonArea.d.ts +3 -0
  87. package/dist/hooks/useSpaces/geometry/getPolygonArea.js +15 -0
  88. package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.d.ts +3 -0
  89. package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.js +16 -0
  90. package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.d.ts +6 -0
  91. package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.js +17 -0
  92. package/dist/hooks/useSpaces/geometry/getTriangleArea.d.ts +3 -0
  93. package/dist/hooks/useSpaces/geometry/getTriangleArea.js +9 -0
  94. package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.d.ts +3 -0
  95. package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.js +12 -0
  96. package/dist/hooks/useSpaces/geometry/index.d.ts +30 -0
  97. package/dist/hooks/useSpaces/geometry/index.js +64 -0
  98. package/dist/hooks/useSpaces/geometry/isPointInPolygon.d.ts +3 -0
  99. package/dist/hooks/useSpaces/geometry/isPointInPolygon.js +21 -0
  100. package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.d.ts +3 -0
  101. package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.js +25 -0
  102. package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.d.ts +3 -0
  103. package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.js +11 -0
  104. package/dist/hooks/useSpaces/geometry/splitLineAtOffset.d.ts +3 -0
  105. package/dist/hooks/useSpaces/geometry/splitLineAtOffset.js +12 -0
  106. package/dist/hooks/useSpaces/geometry/splitLineAtPoint.d.ts +3 -0
  107. package/dist/hooks/useSpaces/geometry/splitLineAtPoint.js +9 -0
  108. package/dist/hooks/useSpaces/geometry/splitLineAtPoints.d.ts +3 -0
  109. package/dist/hooks/useSpaces/geometry/splitLineAtPoints.js +28 -0
  110. package/dist/hooks/useSpaces/index.d.ts +76 -0
  111. package/dist/hooks/useSpaces/index.js +475 -0
  112. package/dist/hooks/useSpaces/themes/blueprint.d.ts +3 -0
  113. package/dist/hooks/useSpaces/themes/blueprint.js +96 -0
  114. package/dist/hooks/useSpaces/themes/default.d.ts +3 -0
  115. package/dist/hooks/useSpaces/themes/default.js +96 -0
  116. package/dist/hooks/{useRoomBuilder/themes.d.ts → useSpaces/themes/index.d.ts} +3 -4
  117. package/dist/hooks/useSpaces/themes/index.js +21 -0
  118. package/dist/hooks/useSpaces/themes/light.d.ts +3 -0
  119. package/dist/hooks/useSpaces/themes/light.js +96 -0
  120. package/dist/hooks/{useRoomBuilder → useSpaces}/types.d.ts +131 -35
  121. package/dist/hooks/{useRoomBuilder → useSpaces}/types.js +13 -1
  122. package/dist/hooks/useSpaces/validators/areWallsDuplicated.d.ts +3 -0
  123. package/dist/hooks/useSpaces/validators/areWallsDuplicated.js +61 -0
  124. package/dist/hooks/useSpaces/validators/areWallsIntersecting.d.ts +3 -0
  125. package/dist/hooks/useSpaces/validators/areWallsIntersecting.js +42 -0
  126. package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.d.ts +3 -0
  127. package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.js +52 -0
  128. package/dist/hooks/useSpaces/validators/areWallsTooShort.d.ts +3 -0
  129. package/dist/hooks/useSpaces/validators/areWallsTooShort.js +37 -0
  130. package/dist/hooks/useSpaces/validators/index.d.ts +15 -0
  131. package/dist/hooks/useSpaces/validators/index.js +40 -0
  132. package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.d.ts +3 -0
  133. package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.js +31 -0
  134. package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.d.ts +3 -0
  135. package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.js +19 -0
  136. package/dist/hooks/useSpaces/validators/isLineTooShort.d.ts +3 -0
  137. package/dist/hooks/useSpaces/validators/isLineTooShort.js +26 -0
  138. package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.d.ts +4 -0
  139. package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.js +19 -0
  140. package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.d.ts +3 -0
  141. package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.js +19 -0
  142. package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.d.ts +3 -0
  143. package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.js +41 -0
  144. package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.d.ts +3 -0
  145. package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.js +54 -0
  146. package/dist/hooks/useSpaces/validators/isWallTooShort.d.ts +3 -0
  147. package/dist/hooks/useSpaces/validators/isWallTooShort.js +10 -0
  148. package/dist/hooks/{useRoomBuilder → useSpaces/validators}/messaging.js +1 -1
  149. package/dist/icons/AngleSnapping.d.ts +3 -0
  150. package/dist/icons/AngleSnapping.js +28 -0
  151. package/dist/icons/Center.d.ts +3 -0
  152. package/dist/icons/Center.js +24 -0
  153. package/dist/icons/Draw.js +3 -3
  154. package/dist/icons/GridSnapping.d.ts +3 -0
  155. package/dist/icons/GridSnapping.js +28 -0
  156. package/dist/icons/LayoutAlt.d.ts +3 -0
  157. package/dist/icons/LayoutAlt.js +21 -0
  158. package/dist/icons/Magnet.d.ts +3 -0
  159. package/dist/icons/Magnet.js +27 -0
  160. package/dist/icons/Player3D.d.ts +3 -0
  161. package/dist/icons/Player3D.js +21 -0
  162. package/dist/icons/Save.d.ts +3 -0
  163. package/dist/icons/Save.js +21 -0
  164. package/dist/icons/UnitCm.d.ts +3 -0
  165. package/dist/icons/UnitCm.js +22 -0
  166. package/dist/icons/UnitFeet.d.ts +3 -0
  167. package/dist/icons/UnitFeet.js +22 -0
  168. package/dist/icons/UnitInch.d.ts +3 -0
  169. package/dist/icons/UnitInch.js +22 -0
  170. package/dist/icons/UnitMeter.d.ts +3 -0
  171. package/dist/icons/UnitMeter.js +21 -0
  172. package/dist/icons/Window.js +4 -4
  173. package/dist/icons/index.js +22 -0
  174. package/dist/icons/types.d.ts +1 -1
  175. package/dist/index.d.ts +17 -3
  176. package/dist/index.js +35 -7
  177. package/dist/store/attributes.d.ts +1 -0
  178. package/dist/store/index.d.ts +39 -8
  179. package/dist/store/index.js +3 -1
  180. package/dist/store/product.js +4 -7
  181. package/dist/store/spaces.d.ts +47 -0
  182. package/dist/store/spaces.js +197 -0
  183. package/dist/store/treble.d.ts +1 -1
  184. package/dist/store/treble.js +24 -26
  185. package/dist/types.d.ts +6 -0
  186. package/package.json +1 -1
  187. package/dist/hooks/useAnimationStart/index.d.ts +0 -2
  188. package/dist/hooks/usePlayerLoadingStatus/index.d.ts +0 -2
  189. package/dist/hooks/useRoomBuilder/RoomBuilderState.d.ts +0 -95
  190. package/dist/hooks/useRoomBuilder/RoomBuilderState.js +0 -1237
  191. package/dist/hooks/useRoomBuilder/constants.d.ts +0 -41
  192. package/dist/hooks/useRoomBuilder/constants.js +0 -48
  193. package/dist/hooks/useRoomBuilder/draw.d.ts +0 -55
  194. package/dist/hooks/useRoomBuilder/draw.js +0 -573
  195. package/dist/hooks/useRoomBuilder/findLoops.d.ts +0 -5
  196. package/dist/hooks/useRoomBuilder/geometry.d.ts +0 -33
  197. package/dist/hooks/useRoomBuilder/geometry.js +0 -325
  198. package/dist/hooks/useRoomBuilder/index.d.ts +0 -40
  199. package/dist/hooks/useRoomBuilder/index.js +0 -303
  200. package/dist/hooks/useRoomBuilder/themes.js +0 -273
  201. package/dist/hooks/useRoomBuilder/validators.d.ts +0 -36
  202. package/dist/hooks/useRoomBuilder/validators.js +0 -362
  203. /package/dist/Treble/{snapshots.d.ts → snapshot.d.ts} +0 -0
  204. /package/dist/Treble/{snapshots.js → snapshot.js} +0 -0
  205. /package/dist/hooks/{useRoomBuilder → useSpaces/validators}/messaging.d.ts +0 -0
@@ -0,0 +1,3 @@
1
+ import { ICoordinate2D, ICoordinatesLine } from '../types';
2
+ declare function splitLineAtPoints(line: ICoordinatesLine, points: Array<ICoordinate2D>): Array<ICoordinatesLine>;
3
+ export default splitLineAtPoints;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ var orderCoordinatesOnLineSegment_1 = __importDefault(require("./orderCoordinatesOnLineSegment"));
16
+ function splitLineAtPoints(line, points) {
17
+ if (!points.length)
18
+ return [line];
19
+ var orderedPoints = (0, orderCoordinatesOnLineSegment_1.default)(__spreadArray(__spreadArray([], line, true), points, true));
20
+ return (orderedPoints[0][0] === line[0][0] ? orderedPoints : orderedPoints.reverse()).reduce(function (output, point, i) {
21
+ if (!i)
22
+ return output;
23
+ else
24
+ output.push([orderedPoints[i - 1], point]);
25
+ return output;
26
+ }, []);
27
+ }
28
+ exports.default = splitLineAtPoints;
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import type { IHydratedAttributeArray } from '../../types';
3
+ import type { ICoordinate2D, IElementName, IElementPublic, ISpacesHookProps } from './types';
4
+ import { IModes, IUnits, IElements } from './types';
5
+ import { IThemes } from './themes';
6
+ import SpacesLayout from './SpacesLayout';
7
+ interface IUseSpaces {
8
+ draw: () => void;
9
+ canvasRef: React.RefObject<HTMLCanvasElement>;
10
+ [IElements.WALL]?: IHydratedAttributeArray;
11
+ [IElements.WINDOW]?: IHydratedAttributeArray;
12
+ [IElements.DOOR]?: IHydratedAttributeArray;
13
+ [IElements.OPENING]?: IHydratedAttributeArray;
14
+ selectedElement: IElementPublic | null;
15
+ reset: () => void;
16
+ recenter: (zoomToFit?: boolean) => void;
17
+ deleteElement: (type: IElementName, index: number) => void;
18
+ dimensions: {
19
+ enabled: boolean;
20
+ handleToggle: (val?: boolean) => void;
21
+ };
22
+ angleSnapping: {
23
+ enabled: boolean;
24
+ handleToggle: (val?: boolean) => void;
25
+ };
26
+ guideSnapping: {
27
+ enabled: boolean;
28
+ handleToggle: (val?: boolean) => void;
29
+ };
30
+ gridSnapping: {
31
+ enabled: boolean;
32
+ handleToggle: (val?: boolean) => void;
33
+ };
34
+ zoom: {
35
+ min: number;
36
+ max: number;
37
+ value: number;
38
+ handleChange: (value: number) => void;
39
+ };
40
+ unit: {
41
+ value: IUnits;
42
+ options: Array<{
43
+ label: string;
44
+ value: IUnits;
45
+ selected: boolean;
46
+ handleSelect: () => void;
47
+ }>;
48
+ handleChange: (unit: IUnits) => void;
49
+ };
50
+ translate: {
51
+ handleChange: (delta: ICoordinate2D) => void;
52
+ };
53
+ mode: {
54
+ value: IModes;
55
+ options: Array<{
56
+ label: IModes;
57
+ value: IModes;
58
+ selected: boolean;
59
+ handleSelect: () => void;
60
+ }>;
61
+ handleChange: (mode: IModes) => void;
62
+ };
63
+ layouts: Array<{
64
+ label: string;
65
+ loops: Array<ICoordinate2D[]>;
66
+ handleSelect: () => void;
67
+ }>;
68
+ }
69
+ declare const useSpaces: {
70
+ (props: ISpacesHookProps): IUseSpaces;
71
+ themes: typeof IThemes;
72
+ units: typeof IUnits;
73
+ modes: typeof IModes;
74
+ LayoutIcon: typeof SpacesLayout;
75
+ };
76
+ export default useSpaces;
@@ -0,0 +1,475 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ var react_1 = require("react");
41
+ var types_1 = require("./types");
42
+ var useConfigurator_1 = __importDefault(require("../useConfigurator"));
43
+ var SpacesState_1 = __importDefault(require("./SpacesState"));
44
+ var constants_1 = require("./constants");
45
+ var themes_1 = __importStar(require("./themes"));
46
+ var SpacesLayout_1 = __importDefault(require("./SpacesLayout"));
47
+ var store_1 = require("../../store");
48
+ var spaces_1 = require("../../store/spaces");
49
+ var useThreekitInitStatus_1 = __importDefault(require("../useThreekitInitStatus"));
50
+ var useSpaces = function (props) {
51
+ var _a;
52
+ var attributesState = (0, useConfigurator_1.default)()[0];
53
+ var hasLoaded = (0, useThreekitInitStatus_1.default)();
54
+ var dispatch = (0, store_1.useThreekitDispatch)();
55
+ var layouts = (0, store_1.useThreekitSelector)(spaces_1.getLayouts);
56
+ var zoom = (0, store_1.useThreekitSelector)(spaces_1.getZoom);
57
+ var unit = (0, store_1.useThreekitSelector)(spaces_1.getUnit);
58
+ var translation = (0, store_1.useThreekitSelector)(spaces_1.getTranslation);
59
+ var modeValue = (0, store_1.useThreekitSelector)(spaces_1.getMode);
60
+ var showDimensions = (0, store_1.useThreekitSelector)(spaces_1.getShowDimensions);
61
+ var angleSnappingEnabled = (0, store_1.useThreekitSelector)(spaces_1.getAngleSnappingEnabled);
62
+ var guideSnappingEnabled = (0, store_1.useThreekitSelector)(spaces_1.getGuideSnappingEnabled);
63
+ var gridSnappingEnabled = (0, store_1.useThreekitSelector)(spaces_1.getGridSnappingEnabled);
64
+ var _b = (0, react_1.useState)(null), selectedElement = _b[0], setSelectedElement = _b[1];
65
+ var canvasRef = (0, react_1.useRef)(null);
66
+ var selectElementPending = (0, react_1.useRef)(null);
67
+ var translationAnchorRef = (0, react_1.useRef)(null);
68
+ var preppedConfig = Object.assign({
69
+ scale: constants_1.SCALE,
70
+ unit: types_1.IUnits.FEET,
71
+ snapProximity: constants_1.SNAP_PROXIMITY,
72
+ zoomDefault: zoom || constants_1.ZOOM_DEFAULT,
73
+ translateDefault: translation || constants_1.TRANSLATE_DEFAULT,
74
+ disableGuides: false,
75
+ styles: ((_a = props.config) === null || _a === void 0 ? void 0 : _a.theme) && themes_1.default[props.config.theme]
76
+ ? themes_1.default[props.config.theme]
77
+ : themes_1.default[themes_1.IThemes.DEFAULT],
78
+ }, props.config);
79
+ var attributeNames = Object.assign(constants_1.ATTRIBUTE_NAME_DEFAULTS, props.attributes);
80
+ var spacesRef = (0, react_1.useRef)(new SpacesState_1.default(__assign(__assign({}, props), { config: preppedConfig, attributes: attributeNames })));
81
+ var drawSpaces = function () { return spacesRef.current.drawSpaces(canvasRef.current); };
82
+ (0, react_1.useEffect)(function () {
83
+ var attributesDelinked = JSON.parse(JSON.stringify(attributesState));
84
+ spacesRef.current.setAttributesToState(attributesDelinked);
85
+ drawSpaces();
86
+ }, [attributesState]);
87
+ (0, react_1.useEffect)(function () {
88
+ var _a;
89
+ var guidesEnabled = !(((_a = props.config) === null || _a === void 0 ? void 0 : _a.disableGuides) || false);
90
+ dispatch((0, spaces_1.setGuideSnappingEnabled)(guidesEnabled));
91
+ spacesRef.current.guideSnappingEnabled = guidesEnabled;
92
+ }, []);
93
+ (0, react_1.useEffect)(function () {
94
+ var _a;
95
+ if (zoom &&
96
+ ((_a = props.config) === null || _a === void 0 ? void 0 : _a.zoomDefault) &&
97
+ props.config.zoomDefault >= spacesRef.current.zoomMin &&
98
+ spacesRef.current.zoomMax >= props.config.zoomDefault)
99
+ updateZoom(props.config.zoomDefault);
100
+ updateUnit(preppedConfig.unit);
101
+ }, []);
102
+ (0, react_1.useEffect)(function () {
103
+ var _a, _b;
104
+ if (canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current) {
105
+ spacesRef.current.canvasDimensions = [
106
+ canvasRef.current.width,
107
+ canvasRef.current.height,
108
+ ];
109
+ canvasRef.current.addEventListener('mousedown', handleDrawWallStart);
110
+ canvasRef.current.addEventListener('mousemove', handleDrawWallMouseMove);
111
+ document.addEventListener('mouseup', handleDrawWallFinish);
112
+ canvasRef.current.addEventListener('mousemove', handleHover);
113
+ canvasRef.current.addEventListener('mousedown', handleSelectElement);
114
+ canvasRef.current.addEventListener('mousemove', handleMoveSelectedElement);
115
+ if (!((_a = props.config) === null || _a === void 0 ? void 0 : _a.translateDisabled))
116
+ canvasRef.current.addEventListener('mousemove', handleMoveCanvas);
117
+ document.addEventListener('mouseup', handleSetSelectedElement);
118
+ if (!((_b = props.config) === null || _b === void 0 ? void 0 : _b.zoomDisabled))
119
+ canvasRef.current.addEventListener('wheel', handleScrollToZoom);
120
+ }
121
+ return function () {
122
+ var _a, _b;
123
+ if (canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current) {
124
+ canvasRef.current.removeEventListener('mousedown', handleDrawWallStart);
125
+ canvasRef.current.removeEventListener('mousemove', handleDrawWallMouseMove);
126
+ document.removeEventListener('mouseup', handleDrawWallFinish);
127
+ canvasRef.current.removeEventListener('mousemove', handleHover);
128
+ canvasRef.current.removeEventListener('mousedown', handleSelectElement);
129
+ canvasRef.current.removeEventListener('mousemove', handleMoveSelectedElement);
130
+ if (!((_a = props.config) === null || _a === void 0 ? void 0 : _a.translateDisabled))
131
+ canvasRef.current.removeEventListener('mousemove', handleMoveCanvas);
132
+ document.removeEventListener('mouseup', handleSetSelectedElement);
133
+ if (!((_b = props.config) === null || _b === void 0 ? void 0 : _b.zoomDisabled))
134
+ canvasRef.current.removeEventListener('wheel', handleScrollToZoom);
135
+ }
136
+ };
137
+ });
138
+ (0, react_1.useEffect)(function () {
139
+ spacesRef.current.showDimensions = showDimensions;
140
+ spacesRef.current.angleSnappingEnabled = angleSnappingEnabled;
141
+ spacesRef.current.guideSnappingEnabled = guideSnappingEnabled;
142
+ spacesRef.current.gridSnappingEnabled = gridSnappingEnabled;
143
+ spacesRef.current.selectedElement = selectedElement
144
+ ? {
145
+ type: selectedElement.path[0],
146
+ index: selectedElement.path[1],
147
+ }
148
+ : null;
149
+ drawSpaces();
150
+ }, [
151
+ selectedElement,
152
+ showDimensions,
153
+ angleSnappingEnabled,
154
+ guideSnappingEnabled,
155
+ gridSnappingEnabled,
156
+ ]);
157
+ (0, react_1.useEffect)(function () {
158
+ if (!hasLoaded)
159
+ return;
160
+ var layoutIds = props.layouts || [];
161
+ dispatch((0, spaces_1.hydrateLayouts)(layoutIds, {
162
+ walls: attributeNames[types_1.IElements.WALL],
163
+ startX: attributeNames.wallStartX,
164
+ startZ: attributeNames.wallStartZ,
165
+ endX: attributeNames.wallEndX,
166
+ endZ: attributeNames.wallEndZ,
167
+ }));
168
+ }, [hasLoaded, JSON.stringify(props.layouts)]);
169
+ var updateZoom = function (value) {
170
+ spacesRef.current.zoom = value;
171
+ if (!spacesRef.current.zoom)
172
+ return;
173
+ dispatch((0, spaces_1.setZoom)(spacesRef.current.zoom));
174
+ };
175
+ var updateUnit = function (unit) {
176
+ if (!spacesRef.current)
177
+ return;
178
+ spacesRef.current.unit = unit;
179
+ if (!spacesRef.current.unit)
180
+ return;
181
+ dispatch((0, spaces_1.setUnit)(spacesRef.current.unit));
182
+ spacesRef.current.drawSpaces(canvasRef.current);
183
+ };
184
+ var handleRecenter = function (zoomToFit) {
185
+ spacesRef.current.centerSpace(canvasRef.current, zoomToFit);
186
+ dispatch((0, spaces_1.setZoom)(spacesRef.current.zoom));
187
+ };
188
+ var handleSelectModeHover = function (canvas, cursorPoint) {
189
+ if (spacesRef.current.activeElement !== null)
190
+ return;
191
+ if (translationAnchorRef.current)
192
+ return;
193
+ spacesRef.current.highlightElementIfInProximity(canvas, cursorPoint);
194
+ };
195
+ var handleSelectElement = function (e) {
196
+ var _a;
197
+ if (!canvasRef.current)
198
+ return;
199
+ if (modeValue !== types_1.IModes.SELECT)
200
+ return;
201
+ var cursorPoint = [e.offsetX, e.offsetY];
202
+ spacesRef.current.selectElementIfInProximity(canvasRef.current, cursorPoint);
203
+ var element = spacesRef.current.getElementUiAtPoint(cursorPoint);
204
+ if (!element) {
205
+ if (selectedElement !== null)
206
+ setSelectedElement(null);
207
+ if (!((_a = props.config) === null || _a === void 0 ? void 0 : _a.translateDisabled) && !spacesRef.current.activeElement)
208
+ translationAnchorRef.current = cursorPoint;
209
+ return;
210
+ }
211
+ if (spacesRef.current.activeElement ||
212
+ (selectedElement &&
213
+ JSON.stringify(element.path) !== JSON.stringify(selectedElement.path)))
214
+ setSelectedElement(null);
215
+ selectElementPending.current = element;
216
+ };
217
+ var handleMoveSelectedElement = function (e) {
218
+ if (modeValue !== types_1.IModes.SELECT)
219
+ return;
220
+ if (!canvasRef.current)
221
+ return;
222
+ var point = [e.offsetX, e.offsetY];
223
+ spacesRef.current.moveActiveElement(canvasRef.current, point);
224
+ selectElementPending.current = null;
225
+ };
226
+ var handleMoveCanvas = function (e) {
227
+ if (modeValue !== types_1.IModes.SELECT)
228
+ return;
229
+ if (!canvasRef.current)
230
+ return;
231
+ if (spacesRef.current.selectedElement || !translationAnchorRef.current)
232
+ return;
233
+ var delta = [
234
+ e.offsetX - translationAnchorRef.current[0],
235
+ e.offsetY - translationAnchorRef.current[1],
236
+ ];
237
+ handleChangeTranslate(delta);
238
+ translationAnchorRef.current = [e.offsetX, e.offsetY];
239
+ };
240
+ var handleSetSelectedElement = function (e) {
241
+ var _a;
242
+ if (modeValue !== types_1.IModes.SELECT)
243
+ return;
244
+ if (!canvasRef.current)
245
+ return;
246
+ if (!((_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
247
+ spacesRef.current.cancelMoveActiveElement(canvasRef.current);
248
+ return;
249
+ }
250
+ spacesRef.current.finishMoveActiveElement(canvasRef.current);
251
+ if (selectElementPending.current) {
252
+ setSelectedElement(selectElementPending.current);
253
+ selectElementPending.current = null;
254
+ return;
255
+ }
256
+ if (translationAnchorRef.current)
257
+ translationAnchorRef.current = null;
258
+ };
259
+ var handleDrawModeHover = function (canvas, cursorPoint) {
260
+ if (spacesRef.current.isDrawWallActive)
261
+ return;
262
+ spacesRef.current.showNewWallAnchor(canvas, cursorPoint);
263
+ };
264
+ var handleDrawWallStart = function (e) {
265
+ if (modeValue !== types_1.IModes.DRAW)
266
+ return;
267
+ var cursorPoint = [e.offsetX, e.offsetY];
268
+ spacesRef.current.startDrawNewWall(cursorPoint);
269
+ };
270
+ var handleDrawWallMouseMove = function (e) {
271
+ if (modeValue !== types_1.IModes.DRAW)
272
+ return;
273
+ if (!canvasRef.current)
274
+ return;
275
+ var cursorPoint = [e.offsetX, e.offsetY];
276
+ if (spacesRef.current.isDrawWallActive)
277
+ spacesRef.current.drawNewWall(canvasRef.current, cursorPoint);
278
+ };
279
+ var handleDrawWallFinish = function (e) {
280
+ var _a;
281
+ if (modeValue !== types_1.IModes.DRAW)
282
+ return;
283
+ if (!canvasRef.current)
284
+ return;
285
+ if (!((_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
286
+ spacesRef.current.cancelDrawNewWall(canvasRef.current);
287
+ return;
288
+ }
289
+ spacesRef.current.finishDrawNewWall(canvasRef.current);
290
+ };
291
+ var handleScrollToZoom = function (e) {
292
+ var _a;
293
+ if (!canvasRef.current)
294
+ return;
295
+ var zoomSensitivity = ((_a = props.config) === null || _a === void 0 ? void 0 : _a.zoomSensitivity) || constants_1.ZOOM_SENSITIVITY;
296
+ updateZoom(-1 * e.deltaY * zoomSensitivity);
297
+ e.preventDefault();
298
+ };
299
+ var handleHover = function (e) {
300
+ if (!canvasRef.current)
301
+ return;
302
+ var cursorPoint = [e.offsetX, e.offsetY];
303
+ if (modeValue === types_1.IModes.DRAW)
304
+ handleDrawModeHover(canvasRef.current, cursorPoint);
305
+ else if (modeValue === types_1.IModes.SELECT)
306
+ handleSelectModeHover(canvasRef.current, cursorPoint);
307
+ };
308
+ var prepFeatureAttributeForOutput = function (type, attribute) {
309
+ if (!attribute)
310
+ return undefined;
311
+ var values = attribute.values.map(function (val) { return (__assign(__assign({}, val), { add: function (addToWallIndex, feature) {
312
+ return spacesRef.current.addFeature(type, addToWallIndex, __assign({ assetId: val.assetId }, (feature || {})));
313
+ } })); });
314
+ var value = attribute.value.map(function (val, i) { return (__assign(__assign({}, val), { delete: function () { return spacesRef.current.deleteFeature(type, i); } })); });
315
+ return __assign(__assign({}, attribute), { values: values, value: value });
316
+ };
317
+ var prepWallAttributeForOutput = function (attribute) {
318
+ if (!attribute)
319
+ return undefined;
320
+ var values = attribute.values.map(function (val) { return (__assign({}, val)); });
321
+ var value = attribute.value.map(function (val, i) { return (__assign(__assign({}, val), { delete: function () { var _a; return (_a = spacesRef.current) === null || _a === void 0 ? void 0 : _a.deleteWall(i); }, splitWall: function (offset) { var _a; return (_a = spacesRef.current) === null || _a === void 0 ? void 0 : _a.splitWallAtOffset(i, offset); } })); });
322
+ return __assign(__assign({}, attribute), { values: values, value: value });
323
+ };
324
+ var getElementFromAttributeName = function (attributeName) {
325
+ var elementAttr = Object.entries(attributeNames).find(function (_a) {
326
+ var _ = _a[0], attrName = _a[1];
327
+ return attrName === attributeName;
328
+ });
329
+ if (!elementAttr)
330
+ return;
331
+ return elementAttr[0];
332
+ };
333
+ var handleSetMode = function (mode) {
334
+ if (mode === modeValue)
335
+ return;
336
+ drawSpaces();
337
+ dispatch((0, spaces_1.setMode)(mode));
338
+ setSelectedElement(null);
339
+ };
340
+ var handleReset = function () {
341
+ var _a;
342
+ (_a = spacesRef.current) === null || _a === void 0 ? void 0 : _a.deleteAll();
343
+ setSelectedElement(null);
344
+ };
345
+ var handleDeleteElement = function (type, index) {
346
+ var _a;
347
+ var elementType = type;
348
+ if (Object.values(attributeNames).includes(type)) {
349
+ var updatedType = getElementFromAttributeName(type);
350
+ if (!updatedType)
351
+ return;
352
+ elementType = updatedType;
353
+ }
354
+ (_a = spacesRef.current) === null || _a === void 0 ? void 0 : _a.deleteElement(elementType, index);
355
+ setSelectedElement(null);
356
+ };
357
+ var handleToggleDimensions = function (val) {
358
+ if (val === undefined)
359
+ dispatch((0, spaces_1.setShowDimensions)(!showDimensions));
360
+ else
361
+ dispatch((0, spaces_1.setShowDimensions)(val));
362
+ setSelectedElement(null);
363
+ };
364
+ var handleToggleAngleSnapping = function (val) {
365
+ if (val === undefined)
366
+ dispatch((0, spaces_1.setAngleSnappingEnabled)(!angleSnappingEnabled));
367
+ else
368
+ dispatch((0, spaces_1.setAngleSnappingEnabled)(val));
369
+ setSelectedElement(null);
370
+ };
371
+ var handleToggleGuideSnapping = function (val) {
372
+ if (val === undefined)
373
+ dispatch((0, spaces_1.setGuideSnappingEnabled)(!guideSnappingEnabled));
374
+ else
375
+ dispatch((0, spaces_1.setGuideSnappingEnabled)(val));
376
+ setSelectedElement(null);
377
+ };
378
+ var handleToggleGridSnapping = function (val) {
379
+ if (val === undefined)
380
+ dispatch((0, spaces_1.setGridSnappingEnabled)(!gridSnappingEnabled));
381
+ else
382
+ dispatch((0, spaces_1.setGridSnappingEnabled)(val));
383
+ setSelectedElement(null);
384
+ };
385
+ var handleChangeTranslate = function (delta) {
386
+ spacesRef.current.translate = [
387
+ spacesRef.current.translate[0] + delta[0],
388
+ spacesRef.current.translate[1] + delta[1],
389
+ ];
390
+ dispatch((0, spaces_1.setTranslation)(spacesRef.current.translate));
391
+ drawSpaces();
392
+ };
393
+ return {
394
+ draw: drawSpaces,
395
+ canvasRef: canvasRef,
396
+ selectedElement: selectedElement === null
397
+ ? selectedElement
398
+ : __assign(__assign({}, selectedElement), { path: [
399
+ attributeNames[selectedElement.path[0]],
400
+ selectedElement.path[1],
401
+ ], type: selectedElement.path[0], deleteElement: function () { return handleDeleteElement.apply(void 0, selectedElement.path); }, splitWall: selectedElement.path[0] !== types_1.IElements.WALL
402
+ ? undefined
403
+ : function (offset) {
404
+ return spacesRef.current.splitWallAtOffset(selectedElement.path[1], offset);
405
+ }, addFeature: selectedElement.path[0] !== types_1.IElements.WALL
406
+ ? undefined
407
+ : function (type, feature) {
408
+ return spacesRef.current.addFeature(type, selectedElement.path[1], feature);
409
+ } }),
410
+ mode: {
411
+ value: modeValue,
412
+ options: [types_1.IModes.SELECT, types_1.IModes.DRAW].map(function (el) { return ({
413
+ value: el,
414
+ label: el,
415
+ selected: modeValue === el,
416
+ handleSelect: function () { return handleSetMode(el); },
417
+ }); }),
418
+ handleChange: handleSetMode,
419
+ },
420
+ dimensions: {
421
+ enabled: showDimensions,
422
+ handleToggle: handleToggleDimensions,
423
+ },
424
+ angleSnapping: {
425
+ enabled: angleSnappingEnabled,
426
+ handleToggle: handleToggleAngleSnapping,
427
+ },
428
+ guideSnapping: {
429
+ enabled: guideSnappingEnabled,
430
+ handleToggle: handleToggleGuideSnapping,
431
+ },
432
+ gridSnapping: {
433
+ enabled: gridSnappingEnabled,
434
+ handleToggle: handleToggleGridSnapping,
435
+ },
436
+ zoom: {
437
+ min: spacesRef.current.zoomMin,
438
+ max: spacesRef.current.zoomMax,
439
+ value: zoom || constants_1.ZOOM_DEFAULT,
440
+ handleChange: updateZoom,
441
+ },
442
+ unit: {
443
+ value: unit,
444
+ options: [types_1.IUnits.FEET, types_1.IUnits.METER, types_1.IUnits.INCH, types_1.IUnits.CM].map(function (el) { return ({
445
+ value: el,
446
+ label: el,
447
+ selected: unit === el,
448
+ handleSelect: function () { return updateUnit(el); },
449
+ }); }),
450
+ handleChange: updateUnit,
451
+ },
452
+ translate: {
453
+ handleChange: handleChangeTranslate,
454
+ },
455
+ reset: handleReset,
456
+ recenter: handleRecenter,
457
+ deleteElement: handleDeleteElement,
458
+ layouts: layouts.map(function (layout) { return ({
459
+ label: layout.label,
460
+ loops: layout.loop,
461
+ handleSelect: function () {
462
+ return window.threekit.configurator.setFullConfiguration(layout.configuration);
463
+ },
464
+ }); }),
465
+ walls: prepWallAttributeForOutput(attributesState === null || attributesState === void 0 ? void 0 : attributesState[attributeNames[types_1.IElements.WALL]]),
466
+ windows: prepFeatureAttributeForOutput(types_1.IElements.WINDOW, attributesState === null || attributesState === void 0 ? void 0 : attributesState[attributeNames[types_1.IElements.WINDOW]]),
467
+ doors: prepFeatureAttributeForOutput(types_1.IElements.DOOR, attributesState === null || attributesState === void 0 ? void 0 : attributesState[attributeNames[types_1.IElements.DOOR]]),
468
+ openings: prepFeatureAttributeForOutput(types_1.IElements.OPENING, attributesState === null || attributesState === void 0 ? void 0 : attributesState[attributeNames[types_1.IElements.OPENING]]),
469
+ };
470
+ };
471
+ useSpaces.themes = themes_1.IThemes;
472
+ useSpaces.units = types_1.IUnits;
473
+ useSpaces.modes = types_1.IModes;
474
+ useSpaces.LayoutIcon = SpacesLayout_1.default;
475
+ exports.default = useSpaces;
@@ -0,0 +1,3 @@
1
+ import type { ISpacesStyles } from '../types';
2
+ declare const theme: ISpacesStyles;
3
+ export default theme;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var WALL_THICKNESS = 22;
4
+ var VERTEX_RADIUS = (WALL_THICKNESS - 8) / 2;
5
+ var FEATURE_THICKNESS = WALL_THICKNESS + 6;
6
+ var HIGHLIGHT_COLOR = '#36738E';
7
+ var ACTIVE_COLOR = 'green';
8
+ var ERROR_COLOR = 'red';
9
+ var theme = {
10
+ grid: {
11
+ lineThickness: 2,
12
+ lineColor: '#fff',
13
+ showSubdivisions: true,
14
+ subdivisionLineThickness: 1,
15
+ subdivisionLineColor: '#fff',
16
+ subdivisionThreshold: 20,
17
+ backgroundColor: '#37588B',
18
+ },
19
+ guides: {
20
+ color: 'red',
21
+ thickness: 1,
22
+ },
23
+ floor: {
24
+ color: '#eee',
25
+ textColor: '#666',
26
+ },
27
+ dimensions: {
28
+ padding: WALL_THICKNESS / 2 + 12,
29
+ lineThickness: 1,
30
+ lineColor: '#fff',
31
+ fontSize: 14,
32
+ font: 'Helvetica',
33
+ textColor: '#444',
34
+ textBackgroundColor: '#fff',
35
+ },
36
+ wall: {
37
+ fill: '#848484',
38
+ stroke: '#fff',
39
+ strokeWidth: 1,
40
+ thickness: WALL_THICKNESS,
41
+ highlight: {
42
+ fill: HIGHLIGHT_COLOR,
43
+ stroke: HIGHLIGHT_COLOR,
44
+ },
45
+ active: {
46
+ fill: ACTIVE_COLOR,
47
+ stroke: ACTIVE_COLOR,
48
+ },
49
+ error: {
50
+ fill: ERROR_COLOR,
51
+ stroke: ERROR_COLOR,
52
+ },
53
+ },
54
+ vertex: {
55
+ innerFill: '#fff',
56
+ outerFill: '#fff',
57
+ stroke: '#36738E',
58
+ strokeWidth: 0,
59
+ outerRadius: VERTEX_RADIUS,
60
+ innerRadius: VERTEX_RADIUS / 2,
61
+ highlight: {
62
+ innerFill: HIGHLIGHT_COLOR,
63
+ outerFill: HIGHLIGHT_COLOR,
64
+ stroke: HIGHLIGHT_COLOR,
65
+ },
66
+ active: {
67
+ innerFill: ACTIVE_COLOR,
68
+ outerFill: ACTIVE_COLOR,
69
+ stroke: ACTIVE_COLOR,
70
+ },
71
+ error: {
72
+ innerFill: ERROR_COLOR,
73
+ outerFill: ERROR_COLOR,
74
+ stroke: ERROR_COLOR,
75
+ },
76
+ },
77
+ feature: {
78
+ fill: '#888',
79
+ stroke: '#888',
80
+ strokeWidth: 0,
81
+ thickness: FEATURE_THICKNESS,
82
+ highlight: {
83
+ fill: HIGHLIGHT_COLOR,
84
+ stroke: HIGHLIGHT_COLOR,
85
+ },
86
+ active: {
87
+ fill: ACTIVE_COLOR,
88
+ stroke: ACTIVE_COLOR,
89
+ },
90
+ error: {
91
+ fill: ERROR_COLOR,
92
+ stroke: ERROR_COLOR,
93
+ },
94
+ },
95
+ };
96
+ exports.default = theme;
@@ -0,0 +1,3 @@
1
+ import type { ISpacesStyles } from '../types';
2
+ declare const theme: ISpacesStyles;
3
+ export default theme;