@tomorrowevening/theatre-studio 1.0.5 → 1.0.6

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 (274) hide show
  1. package/dist/index.js +105 -56
  2. package/package.json +1 -1
  3. package/dist/IDBStorage.js +0 -19
  4. package/dist/PaneManager.js +0 -112
  5. package/dist/Scrub.js +0 -134
  6. package/dist/Studio.js +0 -405
  7. package/dist/StudioBundle.js +0 -21
  8. package/dist/StudioStore/StudioStore.js +0 -163
  9. package/dist/StudioStore/createTransactionPrivateApi.js +0 -204
  10. package/dist/StudioStore/generateDiskStateRevision.js +0 -4
  11. package/dist/StudioStore/persistStateOfStudio.js +0 -61
  12. package/dist/TheatreStudio.js +0 -154
  13. package/dist/UI/UI.js +0 -65
  14. package/dist/UI/UINonSSRBits.js +0 -60
  15. package/dist/UIRoot/PanelsRoot.js +0 -19
  16. package/dist/UIRoot/PointerCapturing.js +0 -96
  17. package/dist/UIRoot/ProvideTheme.js +0 -9
  18. package/dist/UIRoot/UIRoot.js +0 -79
  19. package/dist/UIRoot/useKeyboardShortcuts.js +0 -158
  20. package/dist/checkForUpdates.js +0 -86
  21. package/dist/css.js +0 -116
  22. package/dist/getStudio.js +0 -10
  23. package/dist/notify.js +0 -328
  24. package/dist/panels/BasePanel/BasePanel.js +0 -74
  25. package/dist/panels/BasePanel/ExtensionPaneWrapper.js +0 -138
  26. package/dist/panels/BasePanel/PanelDragZone.js +0 -88
  27. package/dist/panels/BasePanel/PanelResizeHandle.js +0 -184
  28. package/dist/panels/BasePanel/PanelResizers.js +0 -14
  29. package/dist/panels/BasePanel/PanelWrapper.js +0 -34
  30. package/dist/panels/BasePanel/common.js +0 -52
  31. package/dist/panels/DetailPanel/DetailPanel.js +0 -146
  32. package/dist/panels/DetailPanel/DeterminePropEditorForDetail/DetailCompoundPropEditor.js +0 -169
  33. package/dist/panels/DetailPanel/DeterminePropEditorForDetail/DetailSimplePropEditor.js +0 -22
  34. package/dist/panels/DetailPanel/DeterminePropEditorForDetail/SingleRowPropEditor.js +0 -89
  35. package/dist/panels/DetailPanel/DeterminePropEditorForDetail/getDetailRowHighlightBackground.js +0 -7
  36. package/dist/panels/DetailPanel/DeterminePropEditorForDetail/rowIndentationFormulaCSS.js +0 -1
  37. package/dist/panels/DetailPanel/DeterminePropEditorForDetail.js +0 -28
  38. package/dist/panels/DetailPanel/EmptyState.js +0 -36
  39. package/dist/panels/DetailPanel/ObjectDetails.js +0 -52
  40. package/dist/panels/DetailPanel/ProjectDetails/StateConflictRow.js +0 -86
  41. package/dist/panels/DetailPanel/ProjectDetails.js +0 -98
  42. package/dist/panels/OutlinePanel/BaseItem.js +0 -136
  43. package/dist/panels/OutlinePanel/ObjectsList/ObjectItem.js +0 -14
  44. package/dist/panels/OutlinePanel/ObjectsList/ObjectsList.js +0 -85
  45. package/dist/panels/OutlinePanel/OutlinePanel.js +0 -73
  46. package/dist/panels/OutlinePanel/ProjectsList/ProjectListItem.js +0 -38
  47. package/dist/panels/OutlinePanel/ProjectsList/ProjectsList.js +0 -22
  48. package/dist/panels/OutlinePanel/SheetsList/SheetInstanceItem.js +0 -36
  49. package/dist/panels/OutlinePanel/SheetsList/SheetItem.js +0 -23
  50. package/dist/panels/OutlinePanel/SheetsList/SheetsList.js +0 -15
  51. package/dist/panels/OutlinePanel/outlinePanelUtils.js +0 -23
  52. package/dist/panels/SequenceEditorPanel/DopeSheet/DopeSheet.js +0 -21
  53. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/AnyCompositeRow.js +0 -74
  54. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/Left.js +0 -25
  55. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/PrimitivePropRow.js +0 -97
  56. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/PropWithChildrenRow.js +0 -15
  57. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/SheetObjectRow.js +0 -19
  58. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/SheetRow.js +0 -20
  59. package/dist/panels/SequenceEditorPanel/DopeSheet/Left/usePropHighlightMouseEnter.js +0 -33
  60. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeConnector.js +0 -187
  61. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeDot.js +0 -158
  62. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeEditor.js +0 -32
  63. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeVisualDot.js +0 -61
  64. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/iif.js +0 -3
  65. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/useAggregateKeyframeEditorUtils.js +0 -73
  66. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregatedKeyframeTrack.js +0 -407
  67. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/BasicKeyframedTrack.js +0 -108
  68. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/BasicKeyframeConnector.js +0 -185
  69. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/CurveEditorPopover.js +0 -397
  70. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/CurveSegmentEditor.js +0 -136
  71. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/EasingOption.js +0 -52
  72. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/SVGCurveSegment.js +0 -43
  73. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/colors.js +0 -3
  74. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/shared.js +0 -84
  75. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/useFreezableMemo.js +0 -16
  76. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/useUIOptionGrid.js +0 -82
  77. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/DeterminePropEditorForSingleKeyframe.js +0 -93
  78. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/SingleKeyframeDot.js +0 -254
  79. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/SingleKeyframeEditor.js +0 -22
  80. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/useSingleKeyframeInlineEditorPopover.js +0 -11
  81. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/useTempTransactionEditingTools.js +0 -43
  82. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/DopeSheetBackground.js +0 -24
  83. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/DopeSheetSelectionView.js +0 -272
  84. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/FocusRangeCurtains.js +0 -88
  85. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/HorizontallyScrollableArea.js +0 -215
  86. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/KeyframeSnapTarget.js +0 -55
  87. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/LengthIndicator/LengthEditorPopover.js +0 -69
  88. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/LengthIndicator/LengthIndicator.js +0 -217
  89. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/PrimitivePropRow.js +0 -25
  90. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/PropWithChildrenRow.js +0 -18
  91. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/Right.js +0 -30
  92. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/Row.js +0 -50
  93. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/SheetObjectRow.js +0 -14
  94. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/SheetRow.js +0 -14
  95. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/collectAggregateKeyframes.js +0 -92
  96. package/dist/panels/SequenceEditorPanel/DopeSheet/Right/keyframeRowUI/ConnectorLine.js +0 -62
  97. package/dist/panels/SequenceEditorPanel/DopeSheet/selections.js +0 -149
  98. package/dist/panels/SequenceEditorPanel/DopeSheet/setCollapsedSheetObjectOrCompoundProp.js +0 -10
  99. package/dist/panels/SequenceEditorPanel/FrameGrid/FrameGrid.js +0 -92
  100. package/dist/panels/SequenceEditorPanel/FrameGrid/StampsGrid.js +0 -99
  101. package/dist/panels/SequenceEditorPanel/FrameGrid/createGrid.js +0 -49
  102. package/dist/panels/SequenceEditorPanel/FrameStampPositionProvider.js +0 -189
  103. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/BasicKeyframedTrack.js +0 -91
  104. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/Curve.js +0 -87
  105. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/CurveHandle.js +0 -186
  106. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/GraphEditorDotNonScalar.js +0 -162
  107. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/GraphEditorDotScalar.js +0 -209
  108. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/GraphEditorNonScalarDash.js +0 -23
  109. package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/KeyframeEditor.js +0 -30
  110. package/dist/panels/SequenceEditorPanel/GraphEditor/GraphEditor.js +0 -73
  111. package/dist/panels/SequenceEditorPanel/GraphEditor/PrimitivePropGraph.js +0 -20
  112. package/dist/panels/SequenceEditorPanel/GraphEditorToggle.js +0 -59
  113. package/dist/panels/SequenceEditorPanel/RightOverlay/DopeSnap.js +0 -36
  114. package/dist/panels/SequenceEditorPanel/RightOverlay/DopeSnapHitZoneUI.js +0 -57
  115. package/dist/panels/SequenceEditorPanel/RightOverlay/FocusRangeZone/FocusRangeStrip.js +0 -233
  116. package/dist/panels/SequenceEditorPanel/RightOverlay/FocusRangeZone/FocusRangeThumb.js +0 -217
  117. package/dist/panels/SequenceEditorPanel/RightOverlay/FocusRangeZone/FocusRangeZone.js +0 -181
  118. package/dist/panels/SequenceEditorPanel/RightOverlay/FrameStamp.js +0 -65
  119. package/dist/panels/SequenceEditorPanel/RightOverlay/HorizontalScrollbar.js +0 -235
  120. package/dist/panels/SequenceEditorPanel/RightOverlay/Markers/MarkerDot.js +0 -184
  121. package/dist/panels/SequenceEditorPanel/RightOverlay/Markers/MarkerEditorPopover.js +0 -65
  122. package/dist/panels/SequenceEditorPanel/RightOverlay/Markers/Markers.js +0 -13
  123. package/dist/panels/SequenceEditorPanel/RightOverlay/Playhead.js +0 -265
  124. package/dist/panels/SequenceEditorPanel/RightOverlay/PlayheadPositionPopover.js +0 -64
  125. package/dist/panels/SequenceEditorPanel/RightOverlay/RightOverlay.js +0 -35
  126. package/dist/panels/SequenceEditorPanel/RightOverlay/TopStrip.js +0 -31
  127. package/dist/panels/SequenceEditorPanel/SequenceEditorPanel.js +0 -179
  128. package/dist/panels/SequenceEditorPanel/VerticalScrollContainer.js +0 -42
  129. package/dist/panels/SequenceEditorPanel/layout/layout.js +0 -166
  130. package/dist/panels/SequenceEditorPanel/layout/tree.js +0 -139
  131. package/dist/panels/SequenceEditorPanel/whatPropIsHighlighted.js +0 -58
  132. package/dist/propEditors/DefaultValueIndicator.js +0 -64
  133. package/dist/propEditors/NextPrevKeyframeCursors.js +0 -135
  134. package/dist/propEditors/getNearbyKeyframesOfTrack.js +0 -46
  135. package/dist/propEditors/simpleEditors/BooleanPropEditor.js +0 -17
  136. package/dist/propEditors/simpleEditors/FilePropEditor.js +0 -118
  137. package/dist/propEditors/simpleEditors/ISimplePropEditorReactProps.js +0 -1
  138. package/dist/propEditors/simpleEditors/ImagePropEditor.js +0 -126
  139. package/dist/propEditors/simpleEditors/NumberPropEditor.js +0 -9
  140. package/dist/propEditors/simpleEditors/RgbaPropEditor.js +0 -73
  141. package/dist/propEditors/simpleEditors/StringLiteralPropEditor.js +0 -10
  142. package/dist/propEditors/simpleEditors/StringPropEditor.js +0 -6
  143. package/dist/propEditors/simpleEditors/simplePropEditorByPropType.js +0 -16
  144. package/dist/propEditors/useEditingToolsForCompoundProp.js +0 -228
  145. package/dist/propEditors/useEditingToolsForSimpleProp.js +0 -229
  146. package/dist/propEditors/utils/IEditingTools.js +0 -1
  147. package/dist/propEditors/utils/PropConfigForType.js +0 -1
  148. package/dist/propEditors/utils/getPropTypeByPointer.js +0 -48
  149. package/dist/propEditors/utils/propNameTextCSS.js +0 -7
  150. package/dist/selectors.js +0 -63
  151. package/dist/store/index.js +0 -184
  152. package/dist/store/stateEditors.js +0 -774
  153. package/dist/store/types/ahistoric.js +0 -1
  154. package/dist/store/types/ephemeral.js +0 -1
  155. package/dist/store/types/historic.js +0 -1
  156. package/dist/store/types/index.js +0 -3
  157. package/dist/toolbars/ExtensionToolbar/ExtensionToolbar.js +0 -51
  158. package/dist/toolbars/ExtensionToolbar/Toolset.js +0 -27
  159. package/dist/toolbars/ExtensionToolbar/tools/ExtensionFlyoutMenu.js +0 -51
  160. package/dist/toolbars/ExtensionToolbar/tools/IconButton.js +0 -16
  161. package/dist/toolbars/ExtensionToolbar/tools/Switch.js +0 -20
  162. package/dist/toolbars/GlobalToolbar.js +0 -142
  163. package/dist/toolbars/MoreMenu/MoreMenu.js +0 -133
  164. package/dist/toolbars/PinButton.js +0 -26
  165. package/dist/uiComponents/DetailPanelButton.js +0 -21
  166. package/dist/uiComponents/PointerEventsHandler.js +0 -80
  167. package/dist/uiComponents/Popover/ArrowContext.js +0 -3
  168. package/dist/uiComponents/Popover/BasicPopover.js +0 -35
  169. package/dist/uiComponents/Popover/BasicTooltip.js +0 -10
  170. package/dist/uiComponents/Popover/ErrorTooltip.js +0 -9
  171. package/dist/uiComponents/Popover/MinimalTooltip.js +0 -6
  172. package/dist/uiComponents/Popover/PopoverArrow.js +0 -38
  173. package/dist/uiComponents/Popover/TooltipContext.js +0 -46
  174. package/dist/uiComponents/Popover/TooltipWrapper.js +0 -103
  175. package/dist/uiComponents/Popover/usePopover.js +0 -132
  176. package/dist/uiComponents/Popover/useTooltip.js +0 -33
  177. package/dist/uiComponents/RoomToClick.js +0 -10
  178. package/dist/uiComponents/SVGIcon.js +0 -19
  179. package/dist/uiComponents/ShowMousePosition.js +0 -30
  180. package/dist/uiComponents/colorPicker/components/EditingProvider.js +0 -15
  181. package/dist/uiComponents/colorPicker/components/RgbaColorPicker.js +0 -31
  182. package/dist/uiComponents/colorPicker/components/common/Alpha.js +0 -54
  183. package/dist/uiComponents/colorPicker/components/common/AlphaColorPicker.js +0 -28
  184. package/dist/uiComponents/colorPicker/components/common/Hue.js +0 -41
  185. package/dist/uiComponents/colorPicker/components/common/Interactive.js +0 -142
  186. package/dist/uiComponents/colorPicker/components/common/Pointer.js +0 -39
  187. package/dist/uiComponents/colorPicker/components/common/Saturation.js +0 -44
  188. package/dist/uiComponents/colorPicker/hooks/useColorManipulation.js +0 -77
  189. package/dist/uiComponents/colorPicker/hooks/useEventCallback.js +0 -10
  190. package/dist/uiComponents/colorPicker/hooks/useIsomorphicLayoutEffect.js +0 -5
  191. package/dist/uiComponents/colorPicker/index.js +0 -1
  192. package/dist/uiComponents/colorPicker/types.js +0 -1
  193. package/dist/uiComponents/colorPicker/utils/clamp.js +0 -6
  194. package/dist/uiComponents/colorPicker/utils/compare.js +0 -25
  195. package/dist/uiComponents/colorPicker/utils/convert.js +0 -165
  196. package/dist/uiComponents/colorPicker/utils/round.js +0 -3
  197. package/dist/uiComponents/colorPicker/utils/validate.js +0 -10
  198. package/dist/uiComponents/createCursorLock.js +0 -2
  199. package/dist/uiComponents/form/BasicCheckbox.js +0 -5
  200. package/dist/uiComponents/form/BasicNumberInput.js +0 -261
  201. package/dist/uiComponents/form/BasicSelect.js +0 -58
  202. package/dist/uiComponents/form/BasicStringInput.js +0 -151
  203. package/dist/uiComponents/form/BasicSwitch.js +0 -60
  204. package/dist/uiComponents/icons/AddImage.js +0 -6
  205. package/dist/uiComponents/icons/ArrowClockwise.js +0 -6
  206. package/dist/uiComponents/icons/ArrowsOutCardinal.js +0 -6
  207. package/dist/uiComponents/icons/Bell.js +0 -6
  208. package/dist/uiComponents/icons/Camera.js +0 -7
  209. package/dist/uiComponents/icons/ChevronDown.js +0 -6
  210. package/dist/uiComponents/icons/ChevronLeft.js +0 -6
  211. package/dist/uiComponents/icons/ChevronRight.js +0 -6
  212. package/dist/uiComponents/icons/Cube.js +0 -6
  213. package/dist/uiComponents/icons/CubeFull.js +0 -6
  214. package/dist/uiComponents/icons/CubeHalf.js +0 -6
  215. package/dist/uiComponents/icons/CubeRendered.js +0 -7
  216. package/dist/uiComponents/icons/Details.js +0 -6
  217. package/dist/uiComponents/icons/DoubleChevronLeft.js +0 -6
  218. package/dist/uiComponents/icons/DoubleChevronRight.js +0 -6
  219. package/dist/uiComponents/icons/Ellipsis.js +0 -6
  220. package/dist/uiComponents/icons/EllipsisFill.js +0 -6
  221. package/dist/uiComponents/icons/GlobeSimple.js +0 -6
  222. package/dist/uiComponents/icons/Outline.js +0 -6
  223. package/dist/uiComponents/icons/Package.js +0 -6
  224. package/dist/uiComponents/icons/Resize.js +0 -7
  225. package/dist/uiComponents/icons/Trash.js +0 -6
  226. package/dist/uiComponents/icons/index.js +0 -20
  227. package/dist/uiComponents/isSafari.js +0 -2
  228. package/dist/uiComponents/onPointerOutside.js +0 -19
  229. package/dist/uiComponents/selects/BasicSelect.js +0 -24
  230. package/dist/uiComponents/simpleContextMenu/ContextMenu/BaseMenu.js +0 -40
  231. package/dist/uiComponents/simpleContextMenu/ContextMenu/ContextMenu.js +0 -87
  232. package/dist/uiComponents/simpleContextMenu/ContextMenu/Item.js +0 -37
  233. package/dist/uiComponents/simpleContextMenu/useContextMenu.js +0 -20
  234. package/dist/uiComponents/simpleContextMenu/useRequestContextMenu.js +0 -22
  235. package/dist/uiComponents/toolbar/ToolbarDropdownSelect.js +0 -7
  236. package/dist/uiComponents/toolbar/ToolbarIconButton.js +0 -74
  237. package/dist/uiComponents/toolbar/ToolbarSwitchSelect.js +0 -12
  238. package/dist/uiComponents/toolbar/ToolbarSwitchSelectContainer.js +0 -9
  239. package/dist/uiComponents/useBoundingClientRect.js +0 -13
  240. package/dist/uiComponents/useDebugRefreshEvery.js +0 -19
  241. package/dist/uiComponents/useDrag.js +0 -199
  242. package/dist/uiComponents/useHotspot.js +0 -30
  243. package/dist/uiComponents/useHover.js +0 -23
  244. package/dist/uiComponents/useHoverWithoutDescendants.js +0 -33
  245. package/dist/uiComponents/useKeyDown.js +0 -9
  246. package/dist/uiComponents/useKeyDownCallback.js +0 -28
  247. package/dist/uiComponents/useLockSet.js +0 -17
  248. package/dist/uiComponents/useLogger.js +0 -16
  249. package/dist/uiComponents/useOnClickOutside.js +0 -25
  250. package/dist/uiComponents/useOnKeyDown.js +0 -12
  251. package/dist/uiComponents/usePresence.js +0 -156
  252. package/dist/uiComponents/useValToAtom.js +0 -11
  253. package/dist/utils/absoluteDims.js +0 -7
  254. package/dist/utils/contextualWebComponents.js +0 -44
  255. package/dist/utils/copyToClipboard.js +0 -28
  256. package/dist/utils/derive-utils.js +0 -61
  257. package/dist/utils/devStringify.js +0 -20
  258. package/dist/utils/invariant.js +0 -79
  259. package/dist/utils/isMac.js +0 -2
  260. package/dist/utils/keyboardUtils.js +0 -23
  261. package/dist/utils/mousePositionD.js +0 -18
  262. package/dist/utils/redux/actionCreator.js +0 -15
  263. package/dist/utils/redux/actionCreator.test.js +0 -35
  264. package/dist/utils/redux/actionReducersBundle.js +0 -18
  265. package/dist/utils/redux/atomFromReduxStore.js +0 -11
  266. package/dist/utils/redux/configureStore.js +0 -18
  267. package/dist/utils/redux/pointerFriendlySelector.js +0 -8
  268. package/dist/utils/redux/withHistory/withBatchActions.js +0 -13
  269. package/dist/utils/redux/withHistory/withHistory.js +0 -157
  270. package/dist/utils/renderInPortalInContext.js +0 -38
  271. package/dist/utils/selectClosestHTMLAncestor.js +0 -13
  272. package/dist/utils/tightJsonStringify.js +0 -27
  273. package/dist/utils/tightJsonStringify.test.js +0 -25
  274. package/dist/utils/useRefAndState.js +0 -32
@@ -1,73 +0,0 @@
1
- import React, { useEffect, useLayoutEffect } from 'react';
2
- import styled from 'styled-components';
3
- import { panelZIndexes } from '@tomorrowevening/theatre-studio/panels/BasePanel/common';
4
- import ProjectsList from './ProjectsList/ProjectsList';
5
- import { useVal } from '@tomorrowevening/theatre-react';
6
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
7
- import useHotspot from '@tomorrowevening/theatre-studio/uiComponents/useHotspot';
8
- import { Atom, prism, val } from '@tomorrowevening/theatre-dataverse';
9
- import { pointerEventsAutoInNormalMode } from '@tomorrowevening/theatre-studio/css';
10
- const headerHeight = `44px`;
11
- const Container = styled.div `
12
- ${pointerEventsAutoInNormalMode};
13
- background-color: transparent;
14
- position: absolute;
15
- left: 8px;
16
- z-index: ${panelZIndexes.outlinePanel};
17
-
18
- top: calc(${headerHeight} + 8px);
19
- height: fit-content;
20
- max-height: calc(100% - ${headerHeight});
21
- overflow-y: scroll;
22
- overflow-x: hidden;
23
- padding: 0;
24
- user-select: none;
25
-
26
- &::-webkit-scrollbar {
27
- display: none;
28
- }
29
-
30
- scrollbar-width: none;
31
-
32
- display: ${({ pin }) => (pin ? 'block' : 'none')};
33
-
34
- &:hover {
35
- display: block;
36
- }
37
-
38
- // Create a small buffer on the bottom to aid selecting the bottom item in a long, scrolling list
39
- &::after {
40
- content: '';
41
- display: block;
42
- height: 20px;
43
- }
44
- `;
45
- const OutlinePanel = () => {
46
- const pin = useVal(getStudio().atomP.ahistoric.pinOutline) ?? true;
47
- const show = useVal(shouldShowOutlineD);
48
- const active = useHotspot('left');
49
- useLayoutEffect(() => {
50
- isOutlinePanelHotspotActiveB.set(active);
51
- }, [active]);
52
- // cleanup
53
- useEffect(() => {
54
- return () => {
55
- isOutlinePanelHoveredB.set(false);
56
- isOutlinePanelHotspotActiveB.set(false);
57
- };
58
- }, []);
59
- return (React.createElement(Container, { pin: pin || show, onMouseEnter: () => {
60
- isOutlinePanelHoveredB.set(true);
61
- }, onMouseLeave: () => {
62
- isOutlinePanelHoveredB.set(false);
63
- } },
64
- React.createElement(ProjectsList, null)));
65
- };
66
- export default OutlinePanel;
67
- const isOutlinePanelHotspotActiveB = new Atom(false);
68
- const isOutlinePanelHoveredB = new Atom(false);
69
- export const shouldShowOutlineD = prism(() => {
70
- const isHovered = val(isOutlinePanelHoveredB.prism);
71
- const isHotspotActive = val(isOutlinePanelHotspotActiveB.prism);
72
- return isHovered || isHotspotActive;
73
- });
@@ -1,38 +0,0 @@
1
- import React, { useCallback } from 'react';
2
- import BaseItem from '@tomorrowevening/theatre-studio/panels/OutlinePanel/BaseItem';
3
- import SheetsList from '@tomorrowevening/theatre-studio/panels/OutlinePanel/SheetsList/SheetsList';
4
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
5
- import { usePrism } from '@tomorrowevening/theatre-react';
6
- import { getOutlineSelection } from '@tomorrowevening/theatre-studio/selectors';
7
- import { val } from '@tomorrowevening/theatre-dataverse';
8
- import styled from 'styled-components';
9
- import { useCollapseStateInOutlinePanel } from '@tomorrowevening/theatre-studio/panels/OutlinePanel/outlinePanelUtils';
10
- const ConflictNotice = styled.div `
11
- color: #ff6363;
12
- margin-left: 11px;
13
- background: #4c282d;
14
- padding: 2px 8px;
15
- border-radius: 2px;
16
- font-size: 10px;
17
- box-shadow: 0 2px 8px -4px black;
18
- `;
19
- const ProjectListItem = ({ depth, project }) => {
20
- const selection = usePrism(() => getOutlineSelection(), []);
21
- const hasConflict = usePrism(() => {
22
- const projectId = project.address.projectId;
23
- const loadingState = val(getStudio().atomP.ephemeral.coreByProject[projectId].loadingState);
24
- return loadingState?.type === 'browserStateIsNotBasedOnDiskState';
25
- }, [project]);
26
- const select = useCallback(() => {
27
- getStudio().transaction(({ stateEditors }) => {
28
- stateEditors.studio.historic.panels.outline.selection.set([project]);
29
- });
30
- }, [project]);
31
- const { collapsed, setCollapsed } = useCollapseStateInOutlinePanel(project);
32
- return (React.createElement(BaseItem, { depth: depth, label: project.address.projectId, setIsCollapsed: setCollapsed, collapsed: collapsed, labelDecoration: hasConflict ? React.createElement(ConflictNotice, null, "Has Conflicts") : null, children: React.createElement(SheetsList, { project: project, depth: depth + 1 }), selectionStatus: selection.includes(project)
33
- ? 'selected'
34
- : selection.some((s) => s.address.projectId === project.address.projectId)
35
- ? 'descendant-is-selected'
36
- : 'not-selected', select: select }));
37
- };
38
- export default ProjectListItem;
@@ -1,22 +0,0 @@
1
- import { val } from '@tomorrowevening/theatre-dataverse';
2
- import { usePrism } from '@tomorrowevening/theatre-react';
3
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
4
- import React from 'react';
5
- import styled from 'styled-components';
6
- import ProjectListItem from './ProjectListItem';
7
- const Container = styled.ul `
8
- list-style: none;
9
- margin: 0;
10
- padding: 0;
11
- padding-right: 4px;
12
- `;
13
- const ProjectsList = (props) => {
14
- return usePrism(() => {
15
- const projects = val(getStudio().projectsP);
16
- return (React.createElement(Container, null, Object.keys(projects).map((projectId) => {
17
- const project = projects[projectId];
18
- return (React.createElement(ProjectListItem, { depth: 0, project: project, key: `projectListItem-${projectId}` }));
19
- })));
20
- }, []);
21
- };
22
- export default ProjectsList;
@@ -1,36 +0,0 @@
1
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
2
- import { getOutlineSelection } from '@tomorrowevening/theatre-studio/selectors';
3
- import { usePrism } from '@tomorrowevening/theatre-react';
4
- import React, { useCallback } from 'react';
5
- import styled from 'styled-components';
6
- import ObjectsList from '@tomorrowevening/theatre-studio/panels/OutlinePanel/ObjectsList/ObjectsList';
7
- import BaseItem from '@tomorrowevening/theatre-studio/panels/OutlinePanel/BaseItem';
8
- import { useCollapseStateInOutlinePanel } from '@tomorrowevening/theatre-studio/panels/OutlinePanel/outlinePanelUtils';
9
- const Head = styled.div `
10
- display: flex;
11
- `;
12
- const Container = styled.li `
13
- color: ${(props) => (props.isSelected ? 'white' : 'hsl(1, 1%, 80%)')};
14
- `;
15
- const Body = styled.div ``;
16
- export const SheetInstanceItem = ({ sheet, depth }) => {
17
- const { collapsed, setCollapsed } = useCollapseStateInOutlinePanel(sheet);
18
- const setSelectedSheet = useCallback(() => {
19
- getStudio().transaction(({ stateEditors }) => {
20
- stateEditors.studio.historic.panels.outline.selection.set([sheet]);
21
- });
22
- }, [sheet]);
23
- return usePrism(() => {
24
- const selection = getOutlineSelection();
25
- return (React.createElement(BaseItem, { depth: depth, select: setSelectedSheet, setIsCollapsed: setCollapsed, collapsed: collapsed, selectionStatus: selection.some((s) => s === sheet)
26
- ? 'selected'
27
- : selection.some((s) => s.type === 'Theatre_SheetObject' && s.sheet === sheet)
28
- ? 'descendant-is-selected'
29
- : 'not-selected', label: React.createElement(Head, null,
30
- sheet.address.sheetId,
31
- ": ",
32
- sheet.address.sheetInstanceId) },
33
- React.createElement(Body, null,
34
- React.createElement(ObjectsList, { depth: depth + 1, sheet: sheet, key: 'objectList' + sheet.address.sheetInstanceId }))));
35
- }, [depth, collapsed]);
36
- };
@@ -1,23 +0,0 @@
1
- import { usePrism } from '@tomorrowevening/theatre-react';
2
- import { val } from '@tomorrowevening/theatre-dataverse';
3
- import React from 'react';
4
- import styled from 'styled-components';
5
- import { SheetInstanceItem } from './SheetInstanceItem';
6
- const Head = styled.div `
7
- display: flex;
8
- `;
9
- const Container = styled.li `
10
- color: ${(props) => (props.isSelected ? 'white' : 'hsl(1, 1%, 80%)')};
11
- `;
12
- const Body = styled.div ``;
13
- export const SheetItem = ({ sheetId, depth, project }) => {
14
- return usePrism(() => {
15
- const template = val(project.sheetTemplatesP[sheetId]);
16
- if (!template)
17
- return React.createElement(React.Fragment, null);
18
- const allInstances = val(template.instancesP);
19
- return (React.createElement(React.Fragment, null, Object.entries(allInstances).map(([_, inst]) => {
20
- return (React.createElement(SheetInstanceItem, { key: inst.address.sheetInstanceId, sheet: inst, depth: depth }));
21
- })));
22
- }, [depth, sheetId, project]);
23
- };
@@ -1,15 +0,0 @@
1
- import { getRegisteredSheetIds } from '@tomorrowevening/theatre-studio/selectors';
2
- import { usePrism } from '@tomorrowevening/theatre-react';
3
- import React from 'react';
4
- import { SheetItem } from './SheetItem';
5
- const SheetsList = ({ project, depth }) => {
6
- return usePrism(() => {
7
- if (!project)
8
- return null;
9
- const registeredSheetIds = getRegisteredSheetIds(project);
10
- return (React.createElement(React.Fragment, null, registeredSheetIds.map((sheetId) => {
11
- return (React.createElement(SheetItem, { depth: depth, sheetId: sheetId, key: `sheet-${sheetId}`, project: project }));
12
- })));
13
- }, [project, depth]);
14
- };
15
- export default SheetsList;
@@ -1,23 +0,0 @@
1
- import { useCallback } from 'react';
2
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
3
- import { useVal } from '@tomorrowevening/theatre-react';
4
- export function useCollapseStateInOutlinePanel(item) {
5
- const itemKey = item.type === 'namespace'
6
- ? `namespace:${item.sheet.address.sheetId}:${item.path.join('/')}`
7
- : item.type === 'Theatre_Project'
8
- ? 'project'
9
- : item.type === 'Theatre_Sheet'
10
- ? `sheetInstance:${item.address.sheetId}:${item.address.sheetInstanceId}`
11
- : 'unknown';
12
- const projectId = item.type === 'namespace'
13
- ? item.sheet.address.projectId
14
- : item.address.projectId;
15
- const isCollapsed = useVal(getStudio().atomP.ahistoric.projects.stateByProjectId[projectId]
16
- .collapsedItemsInOutline[itemKey]) ?? false;
17
- const setCollapsed = useCallback((isCollapsed) => {
18
- getStudio().transaction(({ stateEditors }) => {
19
- stateEditors.studio.ahistoric.projects.stateByProjectId.collapsedItemsInOutline.set({ projectId, isCollapsed, itemKey: itemKey });
20
- });
21
- }, [itemKey]);
22
- return { collapsed: isCollapsed, setCollapsed };
23
- }
@@ -1,21 +0,0 @@
1
- import { useVal } from '@tomorrowevening/theatre-react';
2
- import React from 'react';
3
- import styled from 'styled-components';
4
- import Left from './Left/Left';
5
- import DopeSheetBackground from './Right/DopeSheetBackground';
6
- import Right from './Right/Right';
7
- import VerticalScrollContainer from '@tomorrowevening/theatre-studio/panels/SequenceEditorPanel/VerticalScrollContainer';
8
- const Container = styled.div `
9
- position: absolute;
10
- left: 0;
11
- right: 0;
12
- `;
13
- const DopeSheet = ({ layoutP, }) => {
14
- const height = useVal(layoutP.dopeSheetDims.height);
15
- return (React.createElement(Container, { style: { height: height + 'px' } },
16
- React.createElement(DopeSheetBackground, { layoutP: layoutP }),
17
- React.createElement(VerticalScrollContainer, null,
18
- React.createElement(Left, { layoutP: layoutP }),
19
- React.createElement(Right, { layoutP: layoutP }))));
20
- };
21
- export default DopeSheet;
@@ -1,74 +0,0 @@
1
- import { theme } from '@tomorrowevening/theatre-studio/css';
2
- import React, { useRef } from 'react';
3
- import { HiOutlineChevronRight } from 'react-icons/all';
4
- import styled from 'styled-components';
5
- import { propNameTextCSS } from '@tomorrowevening/theatre-studio/propEditors/utils/propNameTextCSS';
6
- import { usePropHighlightMouseEnter } from './usePropHighlightMouseEnter';
7
- export const LeftRowContainer = styled.li `
8
- --depth: ${(props) => props.depth};
9
- margin: 0;
10
- padding: 0;
11
- list-style: none;
12
- `;
13
- export const BaseHeader = styled.div `
14
- border-bottom: 1px solid #7695b705;
15
- `;
16
- const LeftRowHeader = styled(BaseHeader) `
17
- padding-left: calc(8px + var(--depth) * 20px);
18
-
19
- display: flex;
20
- align-items: stretch;
21
- color: ${theme.panel.body.compoudThing.label.color};
22
-
23
- box-sizing: border-box;
24
-
25
- ${(props) => props.isSelected && `background: blue`};
26
- `;
27
- const LeftRowHead_Label = styled.span `
28
- ${propNameTextCSS};
29
- overflow-x: hidden;
30
- text-overflow: ellipsis;
31
- white-space: nowrap;
32
- padding-right: 4px;
33
- line-height: 26px;
34
- flex-wrap: nowrap;
35
-
36
- ${LeftRowHeader}:hover & {
37
- color: #ccc;
38
- }
39
- `;
40
- const LeftRowHead_Icon = styled.span `
41
- width: 12px;
42
- padding: 8px;
43
- font-size: 9px;
44
- display: flex;
45
- align-items: center;
46
-
47
- transition: transform 0.05s ease-out, color 0.1s ease-out;
48
- transform: rotateZ(${(props) => (props.isCollapsed ? 0 : 90)}deg);
49
- color: #66686a;
50
-
51
- &:hover {
52
- transform: rotateZ(${(props) => (props.isCollapsed ? 15 : 75)}deg);
53
- color: #c0c4c9;
54
- }
55
- `;
56
- const LeftRowChildren = styled.ul `
57
- margin: 0;
58
- padding: 0;
59
- list-style: none;
60
- `;
61
- const AnyCompositeRow = ({ leaf, label, children, isSelectable, isSelected, toggleSelect, toggleCollapsed, isCollapsed, }) => {
62
- const hasChildren = Array.isArray(children) && children.length > 0;
63
- const rowHeaderRef = useRef(null);
64
- usePropHighlightMouseEnter(rowHeaderRef.current, leaf);
65
- return leaf.shouldRender ? (React.createElement(LeftRowContainer, { depth: leaf.depth },
66
- React.createElement(LeftRowHeader, { ref: rowHeaderRef, style: {
67
- height: leaf.nodeHeight + 'px',
68
- }, isSelectable: isSelectable === true, isSelected: isSelected === true, onClick: toggleSelect, isEven: leaf.n % 2 === 0 },
69
- React.createElement(LeftRowHead_Icon, { isCollapsed: isCollapsed, onClick: toggleCollapsed },
70
- React.createElement(HiOutlineChevronRight, null)),
71
- React.createElement(LeftRowHead_Label, null, label)),
72
- hasChildren && React.createElement(LeftRowChildren, null, children))) : null;
73
- };
74
- export default AnyCompositeRow;
@@ -1,25 +0,0 @@
1
- import { usePrism } from '@tomorrowevening/theatre-react';
2
- import { val } from '@tomorrowevening/theatre-dataverse';
3
- import React from 'react';
4
- import styled from 'styled-components';
5
- import SheetRow from './SheetRow';
6
- const Container = styled.div `
7
- position: absolute;
8
- left: 0;
9
- overflow-x: visible;
10
- `;
11
- const ListContainer = styled.ul `
12
- margin: 0;
13
- padding: 0;
14
- list-style: none;
15
- `;
16
- const Left = ({ layoutP }) => {
17
- return usePrism(() => {
18
- const tree = val(layoutP.tree);
19
- const width = val(layoutP.leftDims.width);
20
- return (React.createElement(Container, { style: { width: width + 'px', top: tree.top + 'px' } },
21
- React.createElement(ListContainer, null,
22
- React.createElement(SheetRow, { leaf: tree }))));
23
- }, [layoutP]);
24
- };
25
- export default Left;
@@ -1,97 +0,0 @@
1
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
2
- import { encodePathToProp } from '@tomorrowevening/theatre-shared/utils/addresses';
3
- import pointerDeep from '@tomorrowevening/theatre-shared/utils/pointerDeep';
4
- import { usePrism } from '@tomorrowevening/theatre-react';
5
- import { val } from '@tomorrowevening/theatre-dataverse';
6
- import React, { useCallback, useRef } from 'react';
7
- import styled from 'styled-components';
8
- import { useEditingToolsForSimplePropInDetailsPanel } from '@tomorrowevening/theatre-studio/propEditors/useEditingToolsForSimpleProp';
9
- import { nextPrevCursorsTheme } from '@tomorrowevening/theatre-studio/propEditors/NextPrevKeyframeCursors';
10
- import { graphEditorColors } from '@tomorrowevening/theatre-studio/panels/SequenceEditorPanel/GraphEditor/GraphEditor';
11
- import { BaseHeader, LeftRowContainer as BaseContainer } from './AnyCompositeRow';
12
- import { propNameTextCSS } from '@tomorrowevening/theatre-studio/propEditors/utils/propNameTextCSS';
13
- import { usePropHighlightMouseEnter } from './usePropHighlightMouseEnter';
14
- const theme = {
15
- label: {
16
- color: `#9a9a9a`,
17
- },
18
- };
19
- const PrimitivePropRowContainer = styled(BaseContainer) ``;
20
- const PrimitivePropRowHead = styled(BaseHeader) `
21
- display: flex;
22
- color: ${theme.label.color};
23
- padding-right: 12px;
24
- align-items: center;
25
- justify-content: flex-end;
26
- box-sizing: border-box;
27
- `;
28
- const PrimitivePropRowIconContainer = styled.button `
29
- background: none;
30
- border: none;
31
- outline: none;
32
- display: flex;
33
- box-sizing: border-box;
34
- font-size: 14px;
35
- align-items: center;
36
- height: 100%;
37
- margin-left: 12px;
38
- color: ${(props) => props.isSelected
39
- ? graphEditorColors[props.graphEditorColor].iconColor
40
- : nextPrevCursorsTheme.offColor};
41
-
42
- &:not([disabled]):hover {
43
- color: white;
44
- }
45
- `;
46
- const GraphIcon = () => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "10", height: "12", viewBox: "0 0 640 512" },
47
- React.createElement("g", { transform: "translate(0 100)" },
48
- React.createElement("path", { fill: "currentColor", d: "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z" }))));
49
- const PrimitivePropRowHead_Label = styled.span `
50
- margin-right: 4px;
51
- ${propNameTextCSS};
52
-
53
- ${PrimitivePropRowHead}:hover & {
54
- color: #ccc;
55
- }
56
- `;
57
- const PrimitivePropRow = ({ leaf }) => {
58
- const pointerToProp = pointerDeep(leaf.sheetObject.propsP, leaf.pathToProp);
59
- const obj = leaf.sheetObject;
60
- const { controlIndicators } = useEditingToolsForSimplePropInDetailsPanel(pointerToProp, obj, leaf.propConf);
61
- const possibleColor = usePrism(() => {
62
- const c = leaf.sheetObject.address;
63
- const encodedPathToProp = encodePathToProp(leaf.pathToProp);
64
- return val(getStudio().atomP.historic.projects.stateByProjectId[c.projectId]
65
- .stateBySheetId[c.sheetId].sequenceEditor.selectedPropsByObject[c.objectKey][encodedPathToProp]);
66
- }, [leaf]);
67
- const isSelectedRef = useRef(false);
68
- const isSelected = typeof possibleColor === 'string';
69
- isSelectedRef.current = isSelected;
70
- const toggleSelect = useCallback(() => {
71
- const c = leaf.sheetObject.address;
72
- getStudio().transaction(({ stateEditors }) => {
73
- if (isSelectedRef.current) {
74
- stateEditors.studio.historic.projects.stateByProjectId.stateBySheetId.sequenceEditor.removePropFromGraphEditor({ ...c, pathToProp: leaf.pathToProp });
75
- }
76
- else {
77
- stateEditors.studio.historic.projects.stateByProjectId.stateBySheetId.sequenceEditor.addPropToGraphEditor({ ...c, pathToProp: leaf.pathToProp });
78
- stateEditors.studio.historic.panels.sequenceEditor.graphEditor.setIsOpen({
79
- isOpen: true,
80
- });
81
- }
82
- });
83
- }, [leaf]);
84
- const label = leaf.propConf.label ?? leaf.pathToProp[leaf.pathToProp.length - 1];
85
- const isSelectable = true;
86
- const headRef = useRef(null);
87
- usePropHighlightMouseEnter(headRef.current, leaf);
88
- return (React.createElement(PrimitivePropRowContainer, { depth: leaf.depth },
89
- React.createElement(PrimitivePropRowHead, { ref: headRef, isEven: leaf.n % 2 === 0, style: {
90
- height: leaf.nodeHeight + 'px',
91
- }, isSelected: isSelected === true },
92
- React.createElement(PrimitivePropRowHead_Label, null, label),
93
- controlIndicators,
94
- React.createElement(PrimitivePropRowIconContainer, { onClick: toggleSelect, isSelected: isSelected === true, graphEditorColor: possibleColor ?? '1', style: { opacity: isSelectable ? 1 : 0.25 }, disabled: !isSelectable },
95
- React.createElement(GraphIcon, null)))));
96
- };
97
- export default PrimitivePropRow;
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import AnyCompositeRow from './AnyCompositeRow';
3
- import PrimitivePropRow from './PrimitivePropRow';
4
- import { setCollapsedSheetItem } from '@tomorrowevening/theatre-studio/panels/SequenceEditorPanel/DopeSheet/setCollapsedSheetObjectOrCompoundProp';
5
- export const decideRowByPropType = (leaf) => {
6
- const key = 'prop' + leaf.pathToProp[leaf.pathToProp.length - 1];
7
- return leaf.shouldRender ? (leaf.type === 'propWithChildren' ? (React.createElement(PropWithChildrenRow, { leaf: leaf, key: key })) : (React.createElement(PrimitivePropRow, { leaf: leaf, key: key }))) : (React.createElement(React.Fragment, { key: key }));
8
- };
9
- const PropWithChildrenRow = ({ leaf }) => {
10
- return (React.createElement(AnyCompositeRow, { leaf: leaf, label: leaf.pathToProp[leaf.pathToProp.length - 1], isCollapsed: leaf.isCollapsed, toggleCollapsed: () => setCollapsedSheetItem(!leaf.isCollapsed, {
11
- sheetAddress: leaf.sheetObject.address,
12
- sheetItemKey: leaf.sheetItemKey,
13
- }) }, leaf.children.map((propLeaf) => decideRowByPropType(propLeaf))));
14
- };
15
- export default PropWithChildrenRow;
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- import AnyCompositeRow from './AnyCompositeRow';
3
- import { decideRowByPropType } from './PropWithChildrenRow';
4
- import { setCollapsedSheetItem } from '@tomorrowevening/theatre-studio/panels/SequenceEditorPanel/DopeSheet/setCollapsedSheetObjectOrCompoundProp';
5
- import getStudio from '@tomorrowevening/theatre-studio/getStudio';
6
- const LeftSheetObjectRow = ({ leaf }) => {
7
- return (React.createElement(AnyCompositeRow, { leaf: leaf, label: leaf.sheetObject.address.objectKey, isCollapsed: leaf.isCollapsed, toggleSelect: () => {
8
- // set selection to this sheet object on click
9
- getStudio().transaction(({ stateEditors }) => {
10
- stateEditors.studio.historic.panels.outline.selection.set([
11
- leaf.sheetObject,
12
- ]);
13
- });
14
- }, toggleCollapsed: () => setCollapsedSheetItem(!leaf.isCollapsed, {
15
- sheetAddress: leaf.sheetObject.address,
16
- sheetItemKey: leaf.sheetItemKey,
17
- }) }, leaf.children.map((leaf) => decideRowByPropType(leaf))));
18
- };
19
- export default LeftSheetObjectRow;
@@ -1,20 +0,0 @@
1
- import { usePrism } from '@tomorrowevening/theatre-react';
2
- import React from 'react';
3
- import LeftSheetObjectRow from './SheetObjectRow';
4
- import AnyCompositeRow from './AnyCompositeRow';
5
- import { setCollapsedSheetItem } from '@tomorrowevening/theatre-studio/panels/SequenceEditorPanel/DopeSheet/setCollapsedSheetObjectOrCompoundProp';
6
- import uniqueKeyForAnyObject from '@tomorrowevening/theatre-shared/utils/uniqueKeyForAnyObject';
7
- const SheetRow = ({ leaf }) => {
8
- return usePrism(() => {
9
- return (React.createElement(AnyCompositeRow, { leaf: leaf, label: leaf.sheet.address.sheetId, isCollapsed: leaf.isCollapsed, toggleCollapsed: () => {
10
- setCollapsedSheetItem(!leaf.isCollapsed, {
11
- sheetAddress: leaf.sheet.address,
12
- sheetItemKey: leaf.sheetItemKey,
13
- });
14
- } }, leaf.children.map((sheetObjectLeaf) => (React.createElement(LeftSheetObjectRow, { key: 'sheetObject-' +
15
- // we don't use the object's address as the key because if a user calls `sheet.detachObject(key)` and later
16
- // calls `sheet.object(key)` with the same key, we want to re-render this row.
17
- uniqueKeyForAnyObject(sheetObjectLeaf.sheetObject), leaf: sheetObjectLeaf })))));
18
- }, [leaf]);
19
- };
20
- export default SheetRow;
@@ -1,33 +0,0 @@
1
- import { useLayoutEffect } from 'react';
2
- import { whatPropIsHighlighted } from '@tomorrowevening/theatre-studio/panels/SequenceEditorPanel/whatPropIsHighlighted';
3
- /** This should ignore if */
4
- export function usePropHighlightMouseEnter(node, leaf) {
5
- useLayoutEffect(() => {
6
- if (!node)
7
- return;
8
- if (leaf.type !== 'propWithChildren' &&
9
- leaf.type !== 'primitiveProp' &&
10
- leaf.type !== 'sheetObject')
11
- return;
12
- let unlock = null;
13
- const propAddress = {
14
- ...leaf.sheetObject.address,
15
- pathToProp: leaf.type === 'sheetObject' ? [] : leaf.pathToProp,
16
- };
17
- function onMouseEnter() {
18
- unlock = whatPropIsHighlighted.replaceLock(propAddress, () => {
19
- // cleanup on forced unlock
20
- });
21
- }
22
- function onMouseLeave() {
23
- unlock?.();
24
- }
25
- node.addEventListener('mouseenter', onMouseEnter);
26
- node.addEventListener('mouseleave', onMouseLeave);
27
- return () => {
28
- unlock?.();
29
- node.removeEventListener('mouseenter', onMouseEnter);
30
- node.removeEventListener('mouseleave', onMouseLeave);
31
- };
32
- }, [node]);
33
- }