@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.
- package/dist/index.js +105 -56
- package/package.json +1 -1
- package/dist/IDBStorage.js +0 -19
- package/dist/PaneManager.js +0 -112
- package/dist/Scrub.js +0 -134
- package/dist/Studio.js +0 -405
- package/dist/StudioBundle.js +0 -21
- package/dist/StudioStore/StudioStore.js +0 -163
- package/dist/StudioStore/createTransactionPrivateApi.js +0 -204
- package/dist/StudioStore/generateDiskStateRevision.js +0 -4
- package/dist/StudioStore/persistStateOfStudio.js +0 -61
- package/dist/TheatreStudio.js +0 -154
- package/dist/UI/UI.js +0 -65
- package/dist/UI/UINonSSRBits.js +0 -60
- package/dist/UIRoot/PanelsRoot.js +0 -19
- package/dist/UIRoot/PointerCapturing.js +0 -96
- package/dist/UIRoot/ProvideTheme.js +0 -9
- package/dist/UIRoot/UIRoot.js +0 -79
- package/dist/UIRoot/useKeyboardShortcuts.js +0 -158
- package/dist/checkForUpdates.js +0 -86
- package/dist/css.js +0 -116
- package/dist/getStudio.js +0 -10
- package/dist/notify.js +0 -328
- package/dist/panels/BasePanel/BasePanel.js +0 -74
- package/dist/panels/BasePanel/ExtensionPaneWrapper.js +0 -138
- package/dist/panels/BasePanel/PanelDragZone.js +0 -88
- package/dist/panels/BasePanel/PanelResizeHandle.js +0 -184
- package/dist/panels/BasePanel/PanelResizers.js +0 -14
- package/dist/panels/BasePanel/PanelWrapper.js +0 -34
- package/dist/panels/BasePanel/common.js +0 -52
- package/dist/panels/DetailPanel/DetailPanel.js +0 -146
- package/dist/panels/DetailPanel/DeterminePropEditorForDetail/DetailCompoundPropEditor.js +0 -169
- package/dist/panels/DetailPanel/DeterminePropEditorForDetail/DetailSimplePropEditor.js +0 -22
- package/dist/panels/DetailPanel/DeterminePropEditorForDetail/SingleRowPropEditor.js +0 -89
- package/dist/panels/DetailPanel/DeterminePropEditorForDetail/getDetailRowHighlightBackground.js +0 -7
- package/dist/panels/DetailPanel/DeterminePropEditorForDetail/rowIndentationFormulaCSS.js +0 -1
- package/dist/panels/DetailPanel/DeterminePropEditorForDetail.js +0 -28
- package/dist/panels/DetailPanel/EmptyState.js +0 -36
- package/dist/panels/DetailPanel/ObjectDetails.js +0 -52
- package/dist/panels/DetailPanel/ProjectDetails/StateConflictRow.js +0 -86
- package/dist/panels/DetailPanel/ProjectDetails.js +0 -98
- package/dist/panels/OutlinePanel/BaseItem.js +0 -136
- package/dist/panels/OutlinePanel/ObjectsList/ObjectItem.js +0 -14
- package/dist/panels/OutlinePanel/ObjectsList/ObjectsList.js +0 -85
- package/dist/panels/OutlinePanel/OutlinePanel.js +0 -73
- package/dist/panels/OutlinePanel/ProjectsList/ProjectListItem.js +0 -38
- package/dist/panels/OutlinePanel/ProjectsList/ProjectsList.js +0 -22
- package/dist/panels/OutlinePanel/SheetsList/SheetInstanceItem.js +0 -36
- package/dist/panels/OutlinePanel/SheetsList/SheetItem.js +0 -23
- package/dist/panels/OutlinePanel/SheetsList/SheetsList.js +0 -15
- package/dist/panels/OutlinePanel/outlinePanelUtils.js +0 -23
- package/dist/panels/SequenceEditorPanel/DopeSheet/DopeSheet.js +0 -21
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/AnyCompositeRow.js +0 -74
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/Left.js +0 -25
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/PrimitivePropRow.js +0 -97
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/PropWithChildrenRow.js +0 -15
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/SheetObjectRow.js +0 -19
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/SheetRow.js +0 -20
- package/dist/panels/SequenceEditorPanel/DopeSheet/Left/usePropHighlightMouseEnter.js +0 -33
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeConnector.js +0 -187
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeDot.js +0 -158
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeEditor.js +0 -32
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/AggregateKeyframeVisualDot.js +0 -61
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/iif.js +0 -3
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregateKeyframeEditor/useAggregateKeyframeEditorUtils.js +0 -73
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/AggregatedKeyframeTrack/AggregatedKeyframeTrack.js +0 -407
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/BasicKeyframedTrack.js +0 -108
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/BasicKeyframeConnector.js +0 -185
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/CurveEditorPopover.js +0 -397
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/CurveSegmentEditor.js +0 -136
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/EasingOption.js +0 -52
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/SVGCurveSegment.js +0 -43
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/colors.js +0 -3
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/shared.js +0 -84
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/useFreezableMemo.js +0 -16
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/CurveEditorPopover/useUIOptionGrid.js +0 -82
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/DeterminePropEditorForSingleKeyframe.js +0 -93
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/SingleKeyframeDot.js +0 -254
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/SingleKeyframeEditor.js +0 -22
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/useSingleKeyframeInlineEditorPopover.js +0 -11
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/BasicKeyframedTrack/KeyframeEditor/useTempTransactionEditingTools.js +0 -43
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/DopeSheetBackground.js +0 -24
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/DopeSheetSelectionView.js +0 -272
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/FocusRangeCurtains.js +0 -88
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/HorizontallyScrollableArea.js +0 -215
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/KeyframeSnapTarget.js +0 -55
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/LengthIndicator/LengthEditorPopover.js +0 -69
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/LengthIndicator/LengthIndicator.js +0 -217
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/PrimitivePropRow.js +0 -25
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/PropWithChildrenRow.js +0 -18
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/Right.js +0 -30
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/Row.js +0 -50
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/SheetObjectRow.js +0 -14
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/SheetRow.js +0 -14
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/collectAggregateKeyframes.js +0 -92
- package/dist/panels/SequenceEditorPanel/DopeSheet/Right/keyframeRowUI/ConnectorLine.js +0 -62
- package/dist/panels/SequenceEditorPanel/DopeSheet/selections.js +0 -149
- package/dist/panels/SequenceEditorPanel/DopeSheet/setCollapsedSheetObjectOrCompoundProp.js +0 -10
- package/dist/panels/SequenceEditorPanel/FrameGrid/FrameGrid.js +0 -92
- package/dist/panels/SequenceEditorPanel/FrameGrid/StampsGrid.js +0 -99
- package/dist/panels/SequenceEditorPanel/FrameGrid/createGrid.js +0 -49
- package/dist/panels/SequenceEditorPanel/FrameStampPositionProvider.js +0 -189
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/BasicKeyframedTrack.js +0 -91
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/Curve.js +0 -87
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/CurveHandle.js +0 -186
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/GraphEditorDotNonScalar.js +0 -162
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/GraphEditorDotScalar.js +0 -209
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/GraphEditorNonScalarDash.js +0 -23
- package/dist/panels/SequenceEditorPanel/GraphEditor/BasicKeyframedTrack/KeyframeEditor/KeyframeEditor.js +0 -30
- package/dist/panels/SequenceEditorPanel/GraphEditor/GraphEditor.js +0 -73
- package/dist/panels/SequenceEditorPanel/GraphEditor/PrimitivePropGraph.js +0 -20
- package/dist/panels/SequenceEditorPanel/GraphEditorToggle.js +0 -59
- package/dist/panels/SequenceEditorPanel/RightOverlay/DopeSnap.js +0 -36
- package/dist/panels/SequenceEditorPanel/RightOverlay/DopeSnapHitZoneUI.js +0 -57
- package/dist/panels/SequenceEditorPanel/RightOverlay/FocusRangeZone/FocusRangeStrip.js +0 -233
- package/dist/panels/SequenceEditorPanel/RightOverlay/FocusRangeZone/FocusRangeThumb.js +0 -217
- package/dist/panels/SequenceEditorPanel/RightOverlay/FocusRangeZone/FocusRangeZone.js +0 -181
- package/dist/panels/SequenceEditorPanel/RightOverlay/FrameStamp.js +0 -65
- package/dist/panels/SequenceEditorPanel/RightOverlay/HorizontalScrollbar.js +0 -235
- package/dist/panels/SequenceEditorPanel/RightOverlay/Markers/MarkerDot.js +0 -184
- package/dist/panels/SequenceEditorPanel/RightOverlay/Markers/MarkerEditorPopover.js +0 -65
- package/dist/panels/SequenceEditorPanel/RightOverlay/Markers/Markers.js +0 -13
- package/dist/panels/SequenceEditorPanel/RightOverlay/Playhead.js +0 -265
- package/dist/panels/SequenceEditorPanel/RightOverlay/PlayheadPositionPopover.js +0 -64
- package/dist/panels/SequenceEditorPanel/RightOverlay/RightOverlay.js +0 -35
- package/dist/panels/SequenceEditorPanel/RightOverlay/TopStrip.js +0 -31
- package/dist/panels/SequenceEditorPanel/SequenceEditorPanel.js +0 -179
- package/dist/panels/SequenceEditorPanel/VerticalScrollContainer.js +0 -42
- package/dist/panels/SequenceEditorPanel/layout/layout.js +0 -166
- package/dist/panels/SequenceEditorPanel/layout/tree.js +0 -139
- package/dist/panels/SequenceEditorPanel/whatPropIsHighlighted.js +0 -58
- package/dist/propEditors/DefaultValueIndicator.js +0 -64
- package/dist/propEditors/NextPrevKeyframeCursors.js +0 -135
- package/dist/propEditors/getNearbyKeyframesOfTrack.js +0 -46
- package/dist/propEditors/simpleEditors/BooleanPropEditor.js +0 -17
- package/dist/propEditors/simpleEditors/FilePropEditor.js +0 -118
- package/dist/propEditors/simpleEditors/ISimplePropEditorReactProps.js +0 -1
- package/dist/propEditors/simpleEditors/ImagePropEditor.js +0 -126
- package/dist/propEditors/simpleEditors/NumberPropEditor.js +0 -9
- package/dist/propEditors/simpleEditors/RgbaPropEditor.js +0 -73
- package/dist/propEditors/simpleEditors/StringLiteralPropEditor.js +0 -10
- package/dist/propEditors/simpleEditors/StringPropEditor.js +0 -6
- package/dist/propEditors/simpleEditors/simplePropEditorByPropType.js +0 -16
- package/dist/propEditors/useEditingToolsForCompoundProp.js +0 -228
- package/dist/propEditors/useEditingToolsForSimpleProp.js +0 -229
- package/dist/propEditors/utils/IEditingTools.js +0 -1
- package/dist/propEditors/utils/PropConfigForType.js +0 -1
- package/dist/propEditors/utils/getPropTypeByPointer.js +0 -48
- package/dist/propEditors/utils/propNameTextCSS.js +0 -7
- package/dist/selectors.js +0 -63
- package/dist/store/index.js +0 -184
- package/dist/store/stateEditors.js +0 -774
- package/dist/store/types/ahistoric.js +0 -1
- package/dist/store/types/ephemeral.js +0 -1
- package/dist/store/types/historic.js +0 -1
- package/dist/store/types/index.js +0 -3
- package/dist/toolbars/ExtensionToolbar/ExtensionToolbar.js +0 -51
- package/dist/toolbars/ExtensionToolbar/Toolset.js +0 -27
- package/dist/toolbars/ExtensionToolbar/tools/ExtensionFlyoutMenu.js +0 -51
- package/dist/toolbars/ExtensionToolbar/tools/IconButton.js +0 -16
- package/dist/toolbars/ExtensionToolbar/tools/Switch.js +0 -20
- package/dist/toolbars/GlobalToolbar.js +0 -142
- package/dist/toolbars/MoreMenu/MoreMenu.js +0 -133
- package/dist/toolbars/PinButton.js +0 -26
- package/dist/uiComponents/DetailPanelButton.js +0 -21
- package/dist/uiComponents/PointerEventsHandler.js +0 -80
- package/dist/uiComponents/Popover/ArrowContext.js +0 -3
- package/dist/uiComponents/Popover/BasicPopover.js +0 -35
- package/dist/uiComponents/Popover/BasicTooltip.js +0 -10
- package/dist/uiComponents/Popover/ErrorTooltip.js +0 -9
- package/dist/uiComponents/Popover/MinimalTooltip.js +0 -6
- package/dist/uiComponents/Popover/PopoverArrow.js +0 -38
- package/dist/uiComponents/Popover/TooltipContext.js +0 -46
- package/dist/uiComponents/Popover/TooltipWrapper.js +0 -103
- package/dist/uiComponents/Popover/usePopover.js +0 -132
- package/dist/uiComponents/Popover/useTooltip.js +0 -33
- package/dist/uiComponents/RoomToClick.js +0 -10
- package/dist/uiComponents/SVGIcon.js +0 -19
- package/dist/uiComponents/ShowMousePosition.js +0 -30
- package/dist/uiComponents/colorPicker/components/EditingProvider.js +0 -15
- package/dist/uiComponents/colorPicker/components/RgbaColorPicker.js +0 -31
- package/dist/uiComponents/colorPicker/components/common/Alpha.js +0 -54
- package/dist/uiComponents/colorPicker/components/common/AlphaColorPicker.js +0 -28
- package/dist/uiComponents/colorPicker/components/common/Hue.js +0 -41
- package/dist/uiComponents/colorPicker/components/common/Interactive.js +0 -142
- package/dist/uiComponents/colorPicker/components/common/Pointer.js +0 -39
- package/dist/uiComponents/colorPicker/components/common/Saturation.js +0 -44
- package/dist/uiComponents/colorPicker/hooks/useColorManipulation.js +0 -77
- package/dist/uiComponents/colorPicker/hooks/useEventCallback.js +0 -10
- package/dist/uiComponents/colorPicker/hooks/useIsomorphicLayoutEffect.js +0 -5
- package/dist/uiComponents/colorPicker/index.js +0 -1
- package/dist/uiComponents/colorPicker/types.js +0 -1
- package/dist/uiComponents/colorPicker/utils/clamp.js +0 -6
- package/dist/uiComponents/colorPicker/utils/compare.js +0 -25
- package/dist/uiComponents/colorPicker/utils/convert.js +0 -165
- package/dist/uiComponents/colorPicker/utils/round.js +0 -3
- package/dist/uiComponents/colorPicker/utils/validate.js +0 -10
- package/dist/uiComponents/createCursorLock.js +0 -2
- package/dist/uiComponents/form/BasicCheckbox.js +0 -5
- package/dist/uiComponents/form/BasicNumberInput.js +0 -261
- package/dist/uiComponents/form/BasicSelect.js +0 -58
- package/dist/uiComponents/form/BasicStringInput.js +0 -151
- package/dist/uiComponents/form/BasicSwitch.js +0 -60
- package/dist/uiComponents/icons/AddImage.js +0 -6
- package/dist/uiComponents/icons/ArrowClockwise.js +0 -6
- package/dist/uiComponents/icons/ArrowsOutCardinal.js +0 -6
- package/dist/uiComponents/icons/Bell.js +0 -6
- package/dist/uiComponents/icons/Camera.js +0 -7
- package/dist/uiComponents/icons/ChevronDown.js +0 -6
- package/dist/uiComponents/icons/ChevronLeft.js +0 -6
- package/dist/uiComponents/icons/ChevronRight.js +0 -6
- package/dist/uiComponents/icons/Cube.js +0 -6
- package/dist/uiComponents/icons/CubeFull.js +0 -6
- package/dist/uiComponents/icons/CubeHalf.js +0 -6
- package/dist/uiComponents/icons/CubeRendered.js +0 -7
- package/dist/uiComponents/icons/Details.js +0 -6
- package/dist/uiComponents/icons/DoubleChevronLeft.js +0 -6
- package/dist/uiComponents/icons/DoubleChevronRight.js +0 -6
- package/dist/uiComponents/icons/Ellipsis.js +0 -6
- package/dist/uiComponents/icons/EllipsisFill.js +0 -6
- package/dist/uiComponents/icons/GlobeSimple.js +0 -6
- package/dist/uiComponents/icons/Outline.js +0 -6
- package/dist/uiComponents/icons/Package.js +0 -6
- package/dist/uiComponents/icons/Resize.js +0 -7
- package/dist/uiComponents/icons/Trash.js +0 -6
- package/dist/uiComponents/icons/index.js +0 -20
- package/dist/uiComponents/isSafari.js +0 -2
- package/dist/uiComponents/onPointerOutside.js +0 -19
- package/dist/uiComponents/selects/BasicSelect.js +0 -24
- package/dist/uiComponents/simpleContextMenu/ContextMenu/BaseMenu.js +0 -40
- package/dist/uiComponents/simpleContextMenu/ContextMenu/ContextMenu.js +0 -87
- package/dist/uiComponents/simpleContextMenu/ContextMenu/Item.js +0 -37
- package/dist/uiComponents/simpleContextMenu/useContextMenu.js +0 -20
- package/dist/uiComponents/simpleContextMenu/useRequestContextMenu.js +0 -22
- package/dist/uiComponents/toolbar/ToolbarDropdownSelect.js +0 -7
- package/dist/uiComponents/toolbar/ToolbarIconButton.js +0 -74
- package/dist/uiComponents/toolbar/ToolbarSwitchSelect.js +0 -12
- package/dist/uiComponents/toolbar/ToolbarSwitchSelectContainer.js +0 -9
- package/dist/uiComponents/useBoundingClientRect.js +0 -13
- package/dist/uiComponents/useDebugRefreshEvery.js +0 -19
- package/dist/uiComponents/useDrag.js +0 -199
- package/dist/uiComponents/useHotspot.js +0 -30
- package/dist/uiComponents/useHover.js +0 -23
- package/dist/uiComponents/useHoverWithoutDescendants.js +0 -33
- package/dist/uiComponents/useKeyDown.js +0 -9
- package/dist/uiComponents/useKeyDownCallback.js +0 -28
- package/dist/uiComponents/useLockSet.js +0 -17
- package/dist/uiComponents/useLogger.js +0 -16
- package/dist/uiComponents/useOnClickOutside.js +0 -25
- package/dist/uiComponents/useOnKeyDown.js +0 -12
- package/dist/uiComponents/usePresence.js +0 -156
- package/dist/uiComponents/useValToAtom.js +0 -11
- package/dist/utils/absoluteDims.js +0 -7
- package/dist/utils/contextualWebComponents.js +0 -44
- package/dist/utils/copyToClipboard.js +0 -28
- package/dist/utils/derive-utils.js +0 -61
- package/dist/utils/devStringify.js +0 -20
- package/dist/utils/invariant.js +0 -79
- package/dist/utils/isMac.js +0 -2
- package/dist/utils/keyboardUtils.js +0 -23
- package/dist/utils/mousePositionD.js +0 -18
- package/dist/utils/redux/actionCreator.js +0 -15
- package/dist/utils/redux/actionCreator.test.js +0 -35
- package/dist/utils/redux/actionReducersBundle.js +0 -18
- package/dist/utils/redux/atomFromReduxStore.js +0 -11
- package/dist/utils/redux/configureStore.js +0 -18
- package/dist/utils/redux/pointerFriendlySelector.js +0 -8
- package/dist/utils/redux/withHistory/withBatchActions.js +0 -13
- package/dist/utils/redux/withHistory/withHistory.js +0 -157
- package/dist/utils/renderInPortalInContext.js +0 -38
- package/dist/utils/selectClosestHTMLAncestor.js +0 -13
- package/dist/utils/tightJsonStringify.js +0 -27
- package/dist/utils/tightJsonStringify.test.js +0 -25
- package/dist/utils/useRefAndState.js +0 -32
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
import { clamp, isInteger, round } from 'lodash-es';
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import React, { useMemo, useRef } from 'react';
|
|
5
|
-
import styled from 'styled-components';
|
|
6
|
-
import { mergeRefs } from 'react-merge-refs';
|
|
7
|
-
import useRefAndState from '@tomorrowevening/theatre-studio/utils/useRefAndState';
|
|
8
|
-
import useOnClickOutside from '@tomorrowevening/theatre-studio/uiComponents/useOnClickOutside';
|
|
9
|
-
import useDrag from '@tomorrowevening/theatre-studio/uiComponents/useDrag';
|
|
10
|
-
const Container = styled.div `
|
|
11
|
-
height: 100%;
|
|
12
|
-
width: 100%;
|
|
13
|
-
position: relative;
|
|
14
|
-
z-index: 0;
|
|
15
|
-
box-sizing: border-box;
|
|
16
|
-
display: flex;
|
|
17
|
-
align-items: center;
|
|
18
|
-
|
|
19
|
-
&:after {
|
|
20
|
-
position: absolute;
|
|
21
|
-
inset: 1px 0 2px;
|
|
22
|
-
display: block;
|
|
23
|
-
content: ' ';
|
|
24
|
-
background-color: transparent;
|
|
25
|
-
border: 1px solid transparent;
|
|
26
|
-
z-index: -2;
|
|
27
|
-
box-sizing: border-box;
|
|
28
|
-
border-radius: 1px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
&:hover,
|
|
32
|
-
&.dragging,
|
|
33
|
-
&.editingViaKeyboard {
|
|
34
|
-
&:after {
|
|
35
|
-
background-color: #10101042;
|
|
36
|
-
border-color: #00000059;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
`;
|
|
40
|
-
const Input = styled.input `
|
|
41
|
-
background: transparent;
|
|
42
|
-
border: 1px solid transparent;
|
|
43
|
-
color: rgba(255, 255, 255, 0.9);
|
|
44
|
-
padding: 1px 6px;
|
|
45
|
-
font: inherit;
|
|
46
|
-
outline: none;
|
|
47
|
-
cursor: ew-resize;
|
|
48
|
-
text-align: left;
|
|
49
|
-
width: 100%;
|
|
50
|
-
height: calc(100% - 4px);
|
|
51
|
-
border-radius: 2px;
|
|
52
|
-
|
|
53
|
-
&:focus {
|
|
54
|
-
cursor: text;
|
|
55
|
-
}
|
|
56
|
-
`;
|
|
57
|
-
const FillIndicator = styled.div `
|
|
58
|
-
position: absolute;
|
|
59
|
-
inset: 3px 2px 4px;
|
|
60
|
-
transform: scale(var(--percentage), 1);
|
|
61
|
-
transform-origin: top left;
|
|
62
|
-
background-color: #2d5561;
|
|
63
|
-
z-index: -1;
|
|
64
|
-
border-radius: 2px;
|
|
65
|
-
pointer-events: none;
|
|
66
|
-
|
|
67
|
-
${Container}.dragging &, ${Container}.noFocus:hover & {
|
|
68
|
-
background-color: #338198;
|
|
69
|
-
}
|
|
70
|
-
`;
|
|
71
|
-
const DragWrap = styled.div `
|
|
72
|
-
display: contents;
|
|
73
|
-
`;
|
|
74
|
-
const alwaysValid = (v) => true;
|
|
75
|
-
const BasicNumberInput = (propsA) => {
|
|
76
|
-
const [stateRef] = useRefAndState({ mode: 'noFocus' });
|
|
77
|
-
const isValid = propsA.isValid ?? alwaysValid;
|
|
78
|
-
const propsRef = useRef(propsA);
|
|
79
|
-
propsRef.current = propsA;
|
|
80
|
-
const inputRef = useRef(null);
|
|
81
|
-
useOnClickOutside(inputRef.current, () => {
|
|
82
|
-
inputRef.current.blur();
|
|
83
|
-
}, stateRef.current.mode === 'editingViaKeyboard');
|
|
84
|
-
const bodyCursorBeforeDrag = useRef(null);
|
|
85
|
-
const callbacks = useMemo(() => {
|
|
86
|
-
const inputChange = (e) => {
|
|
87
|
-
const target = e.target;
|
|
88
|
-
const { value } = target;
|
|
89
|
-
const curState = stateRef.current;
|
|
90
|
-
stateRef.current = { ...curState, currentEditedValueInString: value };
|
|
91
|
-
const valInFloat = parseFloat(value);
|
|
92
|
-
if (!isFinite(valInFloat) || !isValid(valInFloat))
|
|
93
|
-
return;
|
|
94
|
-
propsRef.current.temporarilySetValue(valInFloat);
|
|
95
|
-
};
|
|
96
|
-
const onBlur = () => {
|
|
97
|
-
if (stateRef.current.mode === 'editingViaKeyboard') {
|
|
98
|
-
commitKeyboardInput();
|
|
99
|
-
stateRef.current = { mode: 'noFocus' };
|
|
100
|
-
}
|
|
101
|
-
if (propsA.onBlur)
|
|
102
|
-
propsA.onBlur();
|
|
103
|
-
};
|
|
104
|
-
const commitKeyboardInput = () => {
|
|
105
|
-
const curState = stateRef.current;
|
|
106
|
-
const value = parseFloat(curState.currentEditedValueInString);
|
|
107
|
-
if (!isFinite(value) || !isValid(value)) {
|
|
108
|
-
propsRef.current.discardTemporaryValue();
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
if (curState.valueBeforeEditing === value) {
|
|
112
|
-
propsRef.current.discardTemporaryValue();
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
propsRef.current.permanentlySetValue(value);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
const onInputKeyDown = (e) => {
|
|
120
|
-
if (e.key === 'Escape') {
|
|
121
|
-
propsRef.current.discardTemporaryValue();
|
|
122
|
-
stateRef.current = { mode: 'noFocus' };
|
|
123
|
-
inputRef.current.blur();
|
|
124
|
-
}
|
|
125
|
-
else if (e.key === 'Enter' || e.key === 'Tab') {
|
|
126
|
-
commitKeyboardInput();
|
|
127
|
-
inputRef.current.blur();
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
const onClick = (e) => {
|
|
131
|
-
if (stateRef.current.mode === 'noFocus') {
|
|
132
|
-
const c = inputRef.current;
|
|
133
|
-
c.focus();
|
|
134
|
-
e.preventDefault();
|
|
135
|
-
e.stopPropagation();
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
e.stopPropagation();
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
const onFocus = () => {
|
|
142
|
-
if (stateRef.current.mode === 'noFocus') {
|
|
143
|
-
transitionToEditingViaKeyboardMode();
|
|
144
|
-
}
|
|
145
|
-
else if (stateRef.current.mode === 'editingViaKeyboard') {
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
const transitionToEditingViaKeyboardMode = () => {
|
|
149
|
-
const curValue = propsRef.current.value;
|
|
150
|
-
stateRef.current = {
|
|
151
|
-
mode: 'editingViaKeyboard',
|
|
152
|
-
currentEditedValueInString: String(curValue),
|
|
153
|
-
valueBeforeEditing: curValue,
|
|
154
|
-
};
|
|
155
|
-
setTimeout(() => {
|
|
156
|
-
inputRef.current.focus();
|
|
157
|
-
inputRef.current.setSelectionRange(0, 100);
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
let inputWidth;
|
|
161
|
-
const transitionToDraggingMode = () => {
|
|
162
|
-
const curValue = propsRef.current.value;
|
|
163
|
-
inputWidth = inputRef.current?.getBoundingClientRect().width;
|
|
164
|
-
stateRef.current = {
|
|
165
|
-
mode: 'dragging',
|
|
166
|
-
};
|
|
167
|
-
let valueBeforeDragging = curValue;
|
|
168
|
-
let valueDuringDragging = curValue;
|
|
169
|
-
bodyCursorBeforeDrag.current = document.body.style.cursor;
|
|
170
|
-
return {
|
|
171
|
-
onDrag(_dx, _dy, e, mx) {
|
|
172
|
-
// We use `mx` here because it allows us to offer better UX when dragging
|
|
173
|
-
// a value beyond its range. If we were to use `_dx`, and the number had a range,
|
|
174
|
-
// and the user nudged the number beyond its range, they would have to un-nudge all
|
|
175
|
-
// the way back until the number's value is within its range. But with `mx`,
|
|
176
|
-
// as soon as they reverse their mouse drag, the number will jump back to its range.
|
|
177
|
-
const deltaX = e.altKey ? mx / 10 : mx;
|
|
178
|
-
const newValue = valueDuringDragging +
|
|
179
|
-
propsA.nudge({
|
|
180
|
-
deltaX,
|
|
181
|
-
deltaFraction: deltaX / inputWidth,
|
|
182
|
-
magnitude: 1,
|
|
183
|
-
});
|
|
184
|
-
valueDuringDragging = propsA.range
|
|
185
|
-
? clamp(newValue, propsA.range[0], propsA.range[1])
|
|
186
|
-
: newValue;
|
|
187
|
-
propsRef.current.temporarilySetValue(valueDuringDragging);
|
|
188
|
-
},
|
|
189
|
-
onDragEnd(happened) {
|
|
190
|
-
if (!happened) {
|
|
191
|
-
propsRef.current.discardTemporaryValue();
|
|
192
|
-
stateRef.current = { mode: 'noFocus' };
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
if (valueBeforeDragging === valueDuringDragging) {
|
|
196
|
-
propsRef.current.discardTemporaryValue();
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
propsRef.current.permanentlySetValue(valueDuringDragging);
|
|
200
|
-
}
|
|
201
|
-
stateRef.current = { mode: 'noFocus' };
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
onClick() {
|
|
205
|
-
inputRef.current.focus();
|
|
206
|
-
inputRef.current.setSelectionRange(0, 100);
|
|
207
|
-
},
|
|
208
|
-
};
|
|
209
|
-
};
|
|
210
|
-
return {
|
|
211
|
-
inputChange,
|
|
212
|
-
onBlur,
|
|
213
|
-
transitionToDraggingMode,
|
|
214
|
-
onInputKeyDown,
|
|
215
|
-
onClick,
|
|
216
|
-
onFocus,
|
|
217
|
-
};
|
|
218
|
-
}, []);
|
|
219
|
-
// Call onBlur on unmount. Because technically it _is_ a blur, but also, otherwise edits wouldn't be committed.
|
|
220
|
-
useEffect(() => {
|
|
221
|
-
return () => {
|
|
222
|
-
callbacks.onBlur();
|
|
223
|
-
};
|
|
224
|
-
}, []);
|
|
225
|
-
let value = stateRef.current.mode !== 'editingViaKeyboard'
|
|
226
|
-
? format(propsA.value)
|
|
227
|
-
: stateRef.current.currentEditedValueInString;
|
|
228
|
-
if (typeof value === 'number' && isNaN(value)) {
|
|
229
|
-
value = 'NaN';
|
|
230
|
-
}
|
|
231
|
-
const _refs = [inputRef];
|
|
232
|
-
if (propsA.inputRef)
|
|
233
|
-
_refs.push(propsA.inputRef);
|
|
234
|
-
const theInput = (React.createElement(Input, { key: "input", type: "text", onChange: callbacks.inputChange, value: value, onBlur: callbacks.onBlur, onKeyDown: callbacks.onInputKeyDown, onClick: callbacks.onClick, onFocus: callbacks.onFocus, ref: mergeRefs(_refs), onMouseDown: (e) => {
|
|
235
|
-
e.stopPropagation();
|
|
236
|
-
}, onDoubleClick: (e) => {
|
|
237
|
-
e.preventDefault();
|
|
238
|
-
e.stopPropagation();
|
|
239
|
-
}, autoFocus: propsA.autoFocus }));
|
|
240
|
-
const { range } = propsA;
|
|
241
|
-
const num = parseFloat(value);
|
|
242
|
-
const fillIndicator = range ? (React.createElement(FillIndicator, { style: {
|
|
243
|
-
// @ts-ignore
|
|
244
|
-
'--percentage': clamp((num - range[0]) / (range[1] - range[0]), 0, 1),
|
|
245
|
-
} })) : null;
|
|
246
|
-
const [dragNode, setDragNode] = useState(null);
|
|
247
|
-
useDrag(dragNode, {
|
|
248
|
-
debugName: 'form/BasicNumberInput',
|
|
249
|
-
onDragStart: callbacks.transitionToDraggingMode,
|
|
250
|
-
lockCSSCursorTo: 'ew-resize',
|
|
251
|
-
shouldPointerLock: true,
|
|
252
|
-
disabled: stateRef.current.mode === 'editingViaKeyboard',
|
|
253
|
-
});
|
|
254
|
-
return (React.createElement(Container, { className: propsA.className + ' ' + stateRef.current.mode },
|
|
255
|
-
React.createElement(DragWrap, { ref: setDragNode }, theInput),
|
|
256
|
-
fillIndicator));
|
|
257
|
-
};
|
|
258
|
-
function format(v) {
|
|
259
|
-
return isNaN(v) ? 'NaN' : isInteger(v) ? v.toFixed(0) : round(v, 3).toString();
|
|
260
|
-
}
|
|
261
|
-
export default BasicNumberInput;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import React, { useCallback } from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import { CgSelect } from 'react-icons/all';
|
|
4
|
-
const Container = styled.div `
|
|
5
|
-
width: 100%;
|
|
6
|
-
position: relative;
|
|
7
|
-
`;
|
|
8
|
-
const IconContainer = styled.div `
|
|
9
|
-
position: absolute;
|
|
10
|
-
right: 0px;
|
|
11
|
-
top: 0;
|
|
12
|
-
bottom: 0;
|
|
13
|
-
width: 1.5em;
|
|
14
|
-
font-size: 14px;
|
|
15
|
-
display: flex;
|
|
16
|
-
align-items: center;
|
|
17
|
-
color: #6b7280;
|
|
18
|
-
pointer-events: none;
|
|
19
|
-
`;
|
|
20
|
-
const Select = styled.select `
|
|
21
|
-
appearance: none;
|
|
22
|
-
background-color: transparent;
|
|
23
|
-
box-sizing: border-box;
|
|
24
|
-
border: 1px solid transparent;
|
|
25
|
-
color: rgba(255, 255, 255, 0.85);
|
|
26
|
-
padding: 1px 6px;
|
|
27
|
-
font: inherit;
|
|
28
|
-
outline: none;
|
|
29
|
-
text-align: left;
|
|
30
|
-
width: 100%;
|
|
31
|
-
border-radius: 2px;
|
|
32
|
-
/*
|
|
33
|
-
looks like putting percentages in the height of a select box doesn't work in Firefox. Not sure why.
|
|
34
|
-
So we're hard-coding the height to 26px, unlike all other inputs that use a relative height.
|
|
35
|
-
*/
|
|
36
|
-
height: 26px /* calc(100% - 4px); */;
|
|
37
|
-
|
|
38
|
-
@supports (-moz-appearance: none) {
|
|
39
|
-
/* Ugly hack to remove the extra left padding that shows up only in Firefox */
|
|
40
|
-
text-indent: -2px;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
&:hover,
|
|
44
|
-
&:focus {
|
|
45
|
-
background-color: #10101042;
|
|
46
|
-
border-color: #00000059;
|
|
47
|
-
}
|
|
48
|
-
`;
|
|
49
|
-
function BasicSelect({ value, onChange, options, className, autoFocus, }) {
|
|
50
|
-
const _onChange = useCallback((el) => {
|
|
51
|
-
onChange(String(el.target.value));
|
|
52
|
-
}, [onChange]);
|
|
53
|
-
return (React.createElement(Container, null,
|
|
54
|
-
React.createElement(Select, { className: className, value: value, onChange: _onChange, autoFocus: autoFocus }, Object.keys(options).map((key, i) => (React.createElement("option", { key: 'option-' + i, value: key }, options[key])))),
|
|
55
|
-
React.createElement(IconContainer, null,
|
|
56
|
-
React.createElement(CgSelect, null))));
|
|
57
|
-
}
|
|
58
|
-
export default BasicSelect;
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
import React, { useMemo, useRef } from 'react';
|
|
4
|
-
import { mergeRefs } from 'react-merge-refs';
|
|
5
|
-
import useRefAndState from '@tomorrowevening/theatre-studio/utils/useRefAndState';
|
|
6
|
-
import useOnClickOutside from '@tomorrowevening/theatre-studio/uiComponents/useOnClickOutside';
|
|
7
|
-
const Input = styled.input.attrs({ type: 'text' }) `
|
|
8
|
-
background: transparent;
|
|
9
|
-
border: 1px solid transparent;
|
|
10
|
-
color: rgba(255, 255, 255, 0.9);
|
|
11
|
-
padding: 1px 6px;
|
|
12
|
-
font: inherit;
|
|
13
|
-
outline: none;
|
|
14
|
-
cursor: text;
|
|
15
|
-
text-align: left;
|
|
16
|
-
width: 100%;
|
|
17
|
-
height: calc(100% - 4px);
|
|
18
|
-
border-radius: 2px;
|
|
19
|
-
border: 1px solid transparent;
|
|
20
|
-
box-sizing: border-box;
|
|
21
|
-
|
|
22
|
-
&:hover {
|
|
23
|
-
background-color: #10101042;
|
|
24
|
-
border-color: #00000059;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
&:hover,
|
|
28
|
-
&:focus {
|
|
29
|
-
cursor: text;
|
|
30
|
-
background-color: #10101042;
|
|
31
|
-
border-color: #00000059;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
&.invalid {
|
|
35
|
-
border-color: red;
|
|
36
|
-
}
|
|
37
|
-
`;
|
|
38
|
-
const alwaysValid = (v) => true;
|
|
39
|
-
const BasicStringInput = (props) => {
|
|
40
|
-
const [stateRef] = useRefAndState({ mode: 'noFocus' });
|
|
41
|
-
const isValid = props.isValid ?? alwaysValid;
|
|
42
|
-
const propsRef = useRef(props);
|
|
43
|
-
propsRef.current = props;
|
|
44
|
-
const inputRef = useRef(null);
|
|
45
|
-
useOnClickOutside(inputRef.current, () => {
|
|
46
|
-
inputRef.current.blur();
|
|
47
|
-
}, stateRef.current.mode === 'editingViaKeyboard');
|
|
48
|
-
const callbacks = useMemo(() => {
|
|
49
|
-
const inputChange = (e) => {
|
|
50
|
-
const target = e.target;
|
|
51
|
-
const { value } = target;
|
|
52
|
-
const curState = stateRef.current;
|
|
53
|
-
stateRef.current = { ...curState, currentEditedValueInString: value };
|
|
54
|
-
if (!isValid(value))
|
|
55
|
-
return;
|
|
56
|
-
propsRef.current.temporarilySetValue(value);
|
|
57
|
-
};
|
|
58
|
-
const onBlur = () => {
|
|
59
|
-
if (stateRef.current.mode === 'editingViaKeyboard') {
|
|
60
|
-
commitKeyboardInput();
|
|
61
|
-
stateRef.current = { mode: 'noFocus' };
|
|
62
|
-
}
|
|
63
|
-
propsRef.current.onBlur?.();
|
|
64
|
-
};
|
|
65
|
-
const commitKeyboardInput = () => {
|
|
66
|
-
const curState = stateRef.current;
|
|
67
|
-
const value = curState.currentEditedValueInString;
|
|
68
|
-
if (!isValid(value)) {
|
|
69
|
-
propsRef.current.discardTemporaryValue();
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
if (curState.valueBeforeEditing === value) {
|
|
73
|
-
propsRef.current.discardTemporaryValue();
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
propsRef.current.permanentlySetValue(value);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
const onInputKeyDown = (e) => {
|
|
81
|
-
if (e.key === 'Escape') {
|
|
82
|
-
propsRef.current.discardTemporaryValue();
|
|
83
|
-
stateRef.current = { mode: 'noFocus' };
|
|
84
|
-
inputRef.current.blur();
|
|
85
|
-
}
|
|
86
|
-
else if (e.key === 'Enter' || e.key === 'Tab') {
|
|
87
|
-
commitKeyboardInput();
|
|
88
|
-
inputRef.current.blur();
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
const onClick = (e) => {
|
|
92
|
-
if (stateRef.current.mode === 'noFocus') {
|
|
93
|
-
const c = inputRef.current;
|
|
94
|
-
c.focus();
|
|
95
|
-
e.preventDefault();
|
|
96
|
-
e.stopPropagation();
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
e.stopPropagation();
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const onFocus = () => {
|
|
103
|
-
if (stateRef.current.mode === 'noFocus') {
|
|
104
|
-
transitionToEditingViaKeyboardMode();
|
|
105
|
-
}
|
|
106
|
-
else if (stateRef.current.mode === 'editingViaKeyboard') {
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
const transitionToEditingViaKeyboardMode = () => {
|
|
110
|
-
const curValue = propsRef.current.value;
|
|
111
|
-
stateRef.current = {
|
|
112
|
-
mode: 'editingViaKeyboard',
|
|
113
|
-
currentEditedValueInString: String(curValue),
|
|
114
|
-
valueBeforeEditing: curValue,
|
|
115
|
-
};
|
|
116
|
-
setTimeout(() => {
|
|
117
|
-
inputRef.current.focus();
|
|
118
|
-
});
|
|
119
|
-
};
|
|
120
|
-
return {
|
|
121
|
-
inputChange,
|
|
122
|
-
onBlur,
|
|
123
|
-
onInputKeyDown,
|
|
124
|
-
onClick,
|
|
125
|
-
onFocus,
|
|
126
|
-
};
|
|
127
|
-
}, []);
|
|
128
|
-
// Call onBlur on unmount. Because technically it _is_ a blur, but also, otherwise edits wouldn't be committed.
|
|
129
|
-
useEffect(() => {
|
|
130
|
-
return () => {
|
|
131
|
-
callbacks.onBlur();
|
|
132
|
-
};
|
|
133
|
-
}, []);
|
|
134
|
-
let value = stateRef.current.mode !== 'editingViaKeyboard'
|
|
135
|
-
? format(props.value)
|
|
136
|
-
: stateRef.current.currentEditedValueInString;
|
|
137
|
-
const _refs = [inputRef];
|
|
138
|
-
if (props.inputRef)
|
|
139
|
-
_refs.push(props.inputRef);
|
|
140
|
-
const theInput = (React.createElement(Input, { key: "input", type: "text", className: `${props.className ?? ''} ${!isValid(value) ? 'invalid' : ''}`, onChange: callbacks.inputChange, value: value, onBlur: callbacks.onBlur, onKeyDown: callbacks.onInputKeyDown, onClick: callbacks.onClick, onFocus: callbacks.onFocus, ref: mergeRefs(_refs), onMouseDown: (e) => {
|
|
141
|
-
e.stopPropagation();
|
|
142
|
-
}, onDoubleClick: (e) => {
|
|
143
|
-
e.preventDefault();
|
|
144
|
-
e.stopPropagation();
|
|
145
|
-
}, autoFocus: props.autoFocus }));
|
|
146
|
-
return theInput;
|
|
147
|
-
};
|
|
148
|
-
function format(v) {
|
|
149
|
-
return v;
|
|
150
|
-
}
|
|
151
|
-
export default BasicStringInput;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { darken } from 'polished';
|
|
2
|
-
import React, { useCallback } from 'react';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
const Container = styled.form `
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: row;
|
|
7
|
-
align-items: stretch;
|
|
8
|
-
vertical-align: middle;
|
|
9
|
-
justify-content: stretch;
|
|
10
|
-
height: 24px;
|
|
11
|
-
width: 100%;
|
|
12
|
-
`;
|
|
13
|
-
const Label = styled.label `
|
|
14
|
-
padding: 0 0.5em;
|
|
15
|
-
background: transparent;
|
|
16
|
-
/* background: #373748; */
|
|
17
|
-
display: flex;
|
|
18
|
-
align-items: center;
|
|
19
|
-
justify-content: center;
|
|
20
|
-
flex-grow: 1;
|
|
21
|
-
color: #a7a7a7;
|
|
22
|
-
border: 1px solid transparent;
|
|
23
|
-
box-sizing: border-box;
|
|
24
|
-
border-right-width: 0px;
|
|
25
|
-
|
|
26
|
-
& + &:last-child {
|
|
27
|
-
border-right-width: 1px;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
${Container}:hover > & {
|
|
31
|
-
border-color: #1c2123;
|
|
32
|
-
/* background-color: #373748; */
|
|
33
|
-
/* color: ${darken(0.1, 'white')}; */
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
&&:hover {
|
|
37
|
-
background-color: #464654;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
&&[data-checked='true'] {
|
|
41
|
-
color: white;
|
|
42
|
-
background: #3f3f4c;
|
|
43
|
-
}
|
|
44
|
-
`;
|
|
45
|
-
const Input = styled.input `
|
|
46
|
-
position: absolute;
|
|
47
|
-
opacity: 0;
|
|
48
|
-
pointer-events: none;
|
|
49
|
-
width: 0;
|
|
50
|
-
height: 0;
|
|
51
|
-
`;
|
|
52
|
-
function BasicSwitch({ value, onChange, options, autoFocus, }) {
|
|
53
|
-
const _onChange = useCallback((el) => {
|
|
54
|
-
onChange(String(el.target.value));
|
|
55
|
-
}, [onChange]);
|
|
56
|
-
return (React.createElement(Container, { role: "radiogroup" }, Object.keys(options).map((key, i) => (React.createElement(Label, { key: 'label-' + i, "data-checked": value === key },
|
|
57
|
-
options[key],
|
|
58
|
-
React.createElement(Input, { type: "radio", checked: value === key, value: key, onChange: _onChange, name: "switchbox", autoFocus: autoFocus }))))));
|
|
59
|
-
}
|
|
60
|
-
export default BasicSwitch;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function AddImage(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M3.335 13.998c-.367 0-.68-.13-.942-.391a1.285 1.285 0 01-.391-.942v-9.33c0-.367.13-.68.391-.942.261-.26.575-.391.942-.391h5.998v3.332h1.333v1.333h3.332v5.998c0 .367-.13.68-.391.942-.261.26-.575.391-.942.391h-9.33zM4 11.332H12L9.499 8 7.5 10.666l-1.5-2-1.999 2.666zm7.331-5.331V4.668H10V3.335h1.333V2.002h1.333v1.333h1.333v1.333h-1.333V6h-1.333z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default AddImage;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function ArrowClockwise(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M5.586 3.38a5 5 0 015.45 1.087L12.574 6h-1.572a.5.5 0 000 1h3a.5.5 0 00.5-.5v-3a.5.5 0 10-1 0v2.013l-1.76-1.754a6 6 0 100 8.482.5.5 0 10-.707-.707A5 5 0 115.587 3.38z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default ArrowClockwise;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function ArrowsOutCardinal(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M8 1a.498.498 0 01.358.15l1.764 1.765a.5.5 0 01-.707.707L8.5 2.707V6a.5.5 0 01-1 0V2.707l-.915.915a.5.5 0 11-.707-.707l1.768-1.769A.498.498 0 018 1zM8 9.5a.5.5 0 01.5.5v3.292l.915-.915a.5.5 0 01.707.707L8.37 14.836a.499.499 0 01-.74.001l-1.752-1.753a.5.5 0 01.707-.707l.915.915V10a.5.5 0 01.5-.5zM3.622 6.584a.5.5 0 10-.707-.707L1.146 7.646a.498.498 0 00.018.724l1.751 1.752a.5.5 0 10.707-.708L2.708 8.5H6a.5.5 0 000-1H2.706l.916-.916zM12.378 5.877a.5.5 0 01.707 0l1.768 1.769a.498.498 0 01-.017.724l-1.751 1.752a.5.5 0 01-.707-.708l.914-.914H10a.5.5 0 010-1h3.294l-.916-.916a.5.5 0 010-.707z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default ArrowsOutCardinal;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function Bell(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M8 1.57c-.416 0-.752.36-.752.804v.482c-1.715.372-3.006 1.994-3.006 3.938v.473c0 1.18-.407 2.32-1.14 3.205l-.173.208a.85.85 0 00-.125.864.75.75 0 00.686.475h9.019a.752.752 0 00.686-.475.845.845 0 00-.125-.864l-.174-.208a5.026 5.026 0 01-1.139-3.205v-.473c0-1.944-1.291-3.566-3.006-3.938v-.482c0-.445-.336-.804-.752-.804zm1.063 12.39c.282-.301.44-.71.44-1.138H6.496c0 .428.158.837.44 1.138.281.302.664.47 1.063.47.4 0 .783-.168 1.064-.47z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default Bell;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function Camera(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.767 5.75a2.75 2.75 0 100 5.5 2.75 2.75 0 000-5.5zM6.017 8.5a1.75 1.75 0 113.5 0 1.75 1.75 0 01-3.5 0z", fill: "currentColor" }),
|
|
5
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.773 2.25a.5.5 0 00-.416.223l-.85 1.277H2.782a1.496 1.496 0 00-1.497 1.5v7a1.501 1.501 0 001.497 1.5h9.972a1.496 1.496 0 001.498-1.5v-7a1.501 1.501 0 00-1.498-1.5h-1.726l-.849-1.277a.5.5 0 00-.416-.223H5.773zm-.58 2.277L6.04 3.25h3.453l.849 1.277a.5.5 0 00.416.223h1.994a.496.496 0 01.498.5v7a.501.501 0 01-.498.5H2.781a.495.495 0 01-.497-.5v-7a.501.501 0 01.497-.5h1.995a.5.5 0 00.416-.223z", fill: "currentColor" })));
|
|
6
|
-
}
|
|
7
|
-
export default Camera;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function ChevronDown(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8 10.5L4 6.654 5.2 5.5 8 8.385 10.8 5.5 12 6.654 8 10.5z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default ChevronDown;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function ChevronLeft(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M10.45 2.266l.956.954-4.763 4.763 4.763 4.762-.955.954-5.712-5.716 5.712-5.717z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default ChevronLeft;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function ChevronRight(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M5.694 2.266l-.955.954 4.763 4.763-4.763 4.762.955.954 5.712-5.716-5.712-5.717z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default ChevronRight;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function Cube(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.51.953L2.01 4.046c-.314.178-.51.51-.511.87v6.168c.002.354.202.695.51.87l5.5 3.093c.298.171.682.171.98 0l5.5-3.093c.308-.175.508-.516.51-.87V4.919a1.008 1.008 0 00-.51-.872L8.49.953a1.003 1.003 0 00-.98 0zm5.474 3.674L8 1.824l-4.977 2.8 5.03 2.804 4.93-2.8zM2.5 5.477v5.605l5.007 2.816.047-5.604L2.5 5.477zm6.007 8.414l4.99-2.807.003-5.6-4.946 2.81-.047 5.597z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default Cube;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function CubeFull(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M2.135 4.253l5.968 3.241 5.746-3.241-5.252-3.064a1 1 0 00-.993-.008L2.135 4.253zM7.586 14.947V8.338l-5.922-3.25v5.918a1 1 0 00.507.87l5.415 3.071zM8.414 14.947V8.338l5.922-3.25v5.918a1 1 0 01-.507.87l-5.415 3.071z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default CubeFull;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function CubeHalf(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M13.988 4.05L8.488.958a1.015 1.015 0 00-.975 0l-5.5 3.094c-.286.161-.514.533-.513.868v6.163c0 .356.202.7.513.875l5.5 3.094c.3.164.671.168.975 0l5.5-3.094c.31-.175.511-.519.512-.875V4.919c.002-.327-.223-.705-.512-.868zM8.056 7.427l-5.031-2.8L8 1.826l4.981 2.8-4.925 2.8zm5.444 3.656l-4.994 2.813.05-5.6L13.5 5.481v5.6z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default CubeHalf;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function CubeRendered(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { d: "M8.202 2.973l-2.92 1.58 2.714 1.58 2.817-1.58-2.61-1.58zM3.532 10.555v-3.22l3.031 1.72v3l-3.03-1.5zM12.532 10.555v-3.22l-3.031 1.72v3l3.031-1.5z", fill: "#fff" }),
|
|
5
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.51.955c.298-.171.682-.171.98 0l5.5 3.093c.315.179.508.51.51.87v6.165a1.024 1.024 0 01-.51.873l-5.5 3.093a1.003 1.003 0 01-.98 0L2.01 11.957a1.025 1.025 0 01-.511-.874V4.918c.002-.355.203-.696.51-.87L7.51.955zm.49.871l4.982 2.802-4.928 2.8-5.03-2.803L8 1.826zm-5.5 9.255V5.477l5.054 2.817-.047 5.606L2.5 11.08zm6.007 2.812l4.99-2.807.003-5.602-4.946 2.81-.047 5.599z", fill: "currentColor" })));
|
|
6
|
-
}
|
|
7
|
-
export default CubeRendered;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function Details(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.5 3c-1.072 0-1.969.904-1.969 1.969 0 1 .929 1.968 1.969 1.968h9A1.969 1.969 0 1012.5 3h-9zm9 1H5.531v1.938H12.5A.969.969 0 0012.5 4zM3.5 9.14a1.969 1.969 0 000 3.938h9a1.969 1.969 0 100-3.937h-9zm9 1H8.406v1.938H12.5a.969.969 0 100-1.937z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default Details;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function DoubleChevronLeft(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.732 4.048l-.792-.792L7.2 8l4.74 4.744.792-.792L8.781 8l3.951-3.952zm-3.932 0l-.792-.792L3.268 8l4.74 4.744.792-.792L4.848 8 8.8 4.048z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default DoubleChevronLeft;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function DoubleChevronRight(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.694 3.765l.792-.792 4.74 4.744-4.74 4.744-.792-.793 3.951-3.951-3.951-3.952zm3.932 0l.792-.792 4.74 4.744-4.74 4.744-.792-.793 3.952-3.951-3.952-3.952z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default DoubleChevronRight;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
function Ellipsis(props) {
|
|
3
|
-
return (React.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props },
|
|
4
|
-
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M.166 7.994a2.26 2.26 0 114.518 0 2.26 2.26 0 01-4.518 0zM2.425 6.91a1.085 1.085 0 100 2.17 1.085 1.085 0 000-2.17zM5.74 7.994a2.26 2.26 0 114.519 0 2.26 2.26 0 01-4.519 0zM8 6.91a1.085 1.085 0 100 2.17 1.085 1.085 0 000-2.17zM13.575 5.735a2.26 2.26 0 100 4.519 2.26 2.26 0 000-4.52zm-1.086 2.26a1.085 1.085 0 112.171 0 1.085 1.085 0 01-2.17 0z", fill: "currentColor" })));
|
|
5
|
-
}
|
|
6
|
-
export default Ellipsis;
|