@jolly-pixel/ui 1.0.1
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/LICENSE +44 -0
- package/README.md +194 -0
- package/dist/color/area.d.ts +24 -0
- package/dist/color/area.d.ts.map +1 -0
- package/dist/color/area.js +27 -0
- package/dist/color/area.js.map +1 -0
- package/dist/color/draft.d.ts +10 -0
- package/dist/color/draft.d.ts.map +1 -0
- package/dist/color/draft.js +18 -0
- package/dist/color/draft.js.map +1 -0
- package/dist/containers/Dialog.d.ts +20 -0
- package/dist/containers/Dialog.d.ts.map +1 -0
- package/dist/containers/Dialog.js +162 -0
- package/dist/containers/Dialog.js.map +1 -0
- package/dist/containers/Dialog.styles.d.ts +2 -0
- package/dist/containers/Dialog.styles.d.ts.map +1 -0
- package/dist/containers/Dialog.styles.js +54 -0
- package/dist/containers/Dialog.styles.js.map +1 -0
- package/dist/containers/Dock.d.ts +97 -0
- package/dist/containers/Dock.d.ts.map +1 -0
- package/dist/containers/Dock.js +432 -0
- package/dist/containers/Dock.js.map +1 -0
- package/dist/containers/Dock.styles.d.ts +2 -0
- package/dist/containers/Dock.styles.d.ts.map +1 -0
- package/dist/containers/Dock.styles.js +358 -0
- package/dist/containers/Dock.styles.js.map +1 -0
- package/dist/containers/DockLayout.d.ts +51 -0
- package/dist/containers/DockLayout.d.ts.map +1 -0
- package/dist/containers/DockLayout.js +601 -0
- package/dist/containers/DockLayout.js.map +1 -0
- package/dist/containers/Floating.d.ts +56 -0
- package/dist/containers/Floating.d.ts.map +1 -0
- package/dist/containers/Floating.js +437 -0
- package/dist/containers/Floating.js.map +1 -0
- package/dist/containers/Floating.styles.d.ts +2 -0
- package/dist/containers/Floating.styles.d.ts.map +1 -0
- package/dist/containers/Floating.styles.js +123 -0
- package/dist/containers/Floating.styles.js.map +1 -0
- package/dist/containers/Folder.d.ts +30 -0
- package/dist/containers/Folder.d.ts.map +1 -0
- package/dist/containers/Folder.js +220 -0
- package/dist/containers/Folder.js.map +1 -0
- package/dist/containers/Folder.styles.d.ts +2 -0
- package/dist/containers/Folder.styles.d.ts.map +1 -0
- package/dist/containers/Folder.styles.js +228 -0
- package/dist/containers/Folder.styles.js.map +1 -0
- package/dist/containers/FolderListController.d.ts +28 -0
- package/dist/containers/FolderListController.d.ts.map +1 -0
- package/dist/containers/FolderListController.js +219 -0
- package/dist/containers/FolderListController.js.map +1 -0
- package/dist/containers/Pane.d.ts +109 -0
- package/dist/containers/Pane.d.ts.map +1 -0
- package/dist/containers/Pane.js +429 -0
- package/dist/containers/Pane.js.map +1 -0
- package/dist/containers/Pane.styles.d.ts +2 -0
- package/dist/containers/Pane.styles.d.ts.map +1 -0
- package/dist/containers/Pane.styles.js +193 -0
- package/dist/containers/Pane.styles.js.map +1 -0
- package/dist/containers/Rail.d.ts +14 -0
- package/dist/containers/Rail.d.ts.map +1 -0
- package/dist/containers/Rail.js +52 -0
- package/dist/containers/Rail.js.map +1 -0
- package/dist/containers/Tab.d.ts +17 -0
- package/dist/containers/Tab.d.ts.map +1 -0
- package/dist/containers/Tab.js +61 -0
- package/dist/containers/Tab.js.map +1 -0
- package/dist/containers/Tabs.d.ts +21 -0
- package/dist/containers/Tabs.d.ts.map +1 -0
- package/dist/containers/Tabs.js +166 -0
- package/dist/containers/Tabs.js.map +1 -0
- package/dist/containers/Tabs.styles.d.ts +2 -0
- package/dist/containers/Tabs.styles.d.ts.map +1 -0
- package/dist/containers/Tabs.styles.js +99 -0
- package/dist/containers/Tabs.styles.js.map +1 -0
- package/dist/containers/Toolbar.d.ts +15 -0
- package/dist/containers/Toolbar.d.ts.map +1 -0
- package/dist/containers/Toolbar.js +62 -0
- package/dist/containers/Toolbar.js.map +1 -0
- package/dist/containers/dialogHelpers.d.ts +24 -0
- package/dist/containers/dialogHelpers.d.ts.map +1 -0
- package/dist/containers/dialogHelpers.js +89 -0
- package/dist/containers/dialogHelpers.js.map +1 -0
- package/dist/containers/events.d.ts +75 -0
- package/dist/containers/events.d.ts.map +1 -0
- package/dist/containers/events.js +9 -0
- package/dist/containers/events.js.map +1 -0
- package/dist/containers/layout.d.ts +86 -0
- package/dist/containers/layout.d.ts.map +1 -0
- package/dist/containers/layout.js +240 -0
- package/dist/containers/layout.js.map +1 -0
- package/dist/containers/resize.d.ts +8 -0
- package/dist/containers/resize.d.ts.map +1 -0
- package/dist/containers/resize.js +28 -0
- package/dist/containers/resize.js.map +1 -0
- package/dist/controls/Button.d.ts +32 -0
- package/dist/controls/Button.d.ts.map +1 -0
- package/dist/controls/Button.js +83 -0
- package/dist/controls/Button.js.map +1 -0
- package/dist/controls/Button.styles.d.ts +2 -0
- package/dist/controls/Button.styles.d.ts.map +1 -0
- package/dist/controls/Button.styles.js +86 -0
- package/dist/controls/Button.styles.js.map +1 -0
- package/dist/controls/ButtonGroup.d.ts +26 -0
- package/dist/controls/ButtonGroup.d.ts.map +1 -0
- package/dist/controls/ButtonGroup.js +159 -0
- package/dist/controls/ButtonGroup.js.map +1 -0
- package/dist/controls/ButtonGroup.styles.d.ts +2 -0
- package/dist/controls/ButtonGroup.styles.d.ts.map +1 -0
- package/dist/controls/ButtonGroup.styles.js +104 -0
- package/dist/controls/ButtonGroup.styles.js.map +1 -0
- package/dist/controls/Checkbox.d.ts +20 -0
- package/dist/controls/Checkbox.d.ts.map +1 -0
- package/dist/controls/Checkbox.js +73 -0
- package/dist/controls/Checkbox.js.map +1 -0
- package/dist/controls/Checkbox.styles.d.ts +3 -0
- package/dist/controls/Checkbox.styles.d.ts.map +1 -0
- package/dist/controls/Checkbox.styles.js +116 -0
- package/dist/controls/Checkbox.styles.js.map +1 -0
- package/dist/controls/Color.d.ts +35 -0
- package/dist/controls/Color.d.ts.map +1 -0
- package/dist/controls/Color.js +224 -0
- package/dist/controls/Color.js.map +1 -0
- package/dist/controls/Color.styles.d.ts +2 -0
- package/dist/controls/Color.styles.d.ts.map +1 -0
- package/dist/controls/Color.styles.js +89 -0
- package/dist/controls/Color.styles.js.map +1 -0
- package/dist/controls/ColorPicker.d.ts +40 -0
- package/dist/controls/ColorPicker.d.ts.map +1 -0
- package/dist/controls/ColorPicker.js +423 -0
- package/dist/controls/ColorPicker.js.map +1 -0
- package/dist/controls/ColorPicker.styles.d.ts +5 -0
- package/dist/controls/ColorPicker.styles.d.ts.map +1 -0
- package/dist/controls/ColorPicker.styles.js +305 -0
- package/dist/controls/ColorPicker.styles.js.map +1 -0
- package/dist/controls/Control.d.ts +21 -0
- package/dist/controls/Control.d.ts.map +1 -0
- package/dist/controls/Control.js +137 -0
- package/dist/controls/Control.js.map +1 -0
- package/dist/controls/Control.styles.d.ts +2 -0
- package/dist/controls/Control.styles.d.ts.map +1 -0
- package/dist/controls/Control.styles.js +108 -0
- package/dist/controls/Control.styles.js.map +1 -0
- package/dist/controls/Controls.d.ts +25 -0
- package/dist/controls/Controls.d.ts.map +1 -0
- package/dist/controls/Controls.js +72 -0
- package/dist/controls/Controls.js.map +1 -0
- package/dist/controls/Controls.styles.d.ts +2 -0
- package/dist/controls/Controls.styles.d.ts.map +1 -0
- package/dist/controls/Controls.styles.js +102 -0
- package/dist/controls/Controls.styles.js.map +1 -0
- package/dist/controls/Flags.d.ts +26 -0
- package/dist/controls/Flags.d.ts.map +1 -0
- package/dist/controls/Flags.js +91 -0
- package/dist/controls/Flags.js.map +1 -0
- package/dist/controls/Flags.styles.d.ts +2 -0
- package/dist/controls/Flags.styles.d.ts.map +1 -0
- package/dist/controls/Flags.styles.js +65 -0
- package/dist/controls/Flags.styles.js.map +1 -0
- package/dist/controls/Number.d.ts +31 -0
- package/dist/controls/Number.d.ts.map +1 -0
- package/dist/controls/Number.js +161 -0
- package/dist/controls/Number.js.map +1 -0
- package/dist/controls/Number.styles.d.ts +5 -0
- package/dist/controls/Number.styles.d.ts.map +1 -0
- package/dist/controls/Number.styles.js +53 -0
- package/dist/controls/Number.styles.js.map +1 -0
- package/dist/controls/PropertyRow.d.ts +26 -0
- package/dist/controls/PropertyRow.d.ts.map +1 -0
- package/dist/controls/PropertyRow.js +77 -0
- package/dist/controls/PropertyRow.js.map +1 -0
- package/dist/controls/PropertyRow.styles.d.ts +5 -0
- package/dist/controls/PropertyRow.styles.d.ts.map +1 -0
- package/dist/controls/PropertyRow.styles.js +115 -0
- package/dist/controls/PropertyRow.styles.js.map +1 -0
- package/dist/controls/Range.d.ts +30 -0
- package/dist/controls/Range.d.ts.map +1 -0
- package/dist/controls/Range.js +196 -0
- package/dist/controls/Range.js.map +1 -0
- package/dist/controls/Range.styles.d.ts +2 -0
- package/dist/controls/Range.styles.d.ts.map +1 -0
- package/dist/controls/Range.styles.js +29 -0
- package/dist/controls/Range.styles.js.map +1 -0
- package/dist/controls/Select.d.ts +24 -0
- package/dist/controls/Select.d.ts.map +1 -0
- package/dist/controls/Select.js +104 -0
- package/dist/controls/Select.js.map +1 -0
- package/dist/controls/Select.styles.d.ts +2 -0
- package/dist/controls/Select.styles.d.ts.map +1 -0
- package/dist/controls/Select.styles.js +51 -0
- package/dist/controls/Select.styles.js.map +1 -0
- package/dist/controls/Separator.d.ts +19 -0
- package/dist/controls/Separator.d.ts.map +1 -0
- package/dist/controls/Separator.js +55 -0
- package/dist/controls/Separator.js.map +1 -0
- package/dist/controls/Separator.styles.d.ts +2 -0
- package/dist/controls/Separator.styles.d.ts.map +1 -0
- package/dist/controls/Separator.styles.js +49 -0
- package/dist/controls/Separator.styles.js.map +1 -0
- package/dist/controls/Slider.d.ts +27 -0
- package/dist/controls/Slider.d.ts.map +1 -0
- package/dist/controls/Slider.js +170 -0
- package/dist/controls/Slider.js.map +1 -0
- package/dist/controls/Slider.styles.d.ts +2 -0
- package/dist/controls/Slider.styles.d.ts.map +1 -0
- package/dist/controls/Slider.styles.js +165 -0
- package/dist/controls/Slider.styles.js.map +1 -0
- package/dist/controls/Text.d.ts +17 -0
- package/dist/controls/Text.d.ts.map +1 -0
- package/dist/controls/Text.js +99 -0
- package/dist/controls/Text.js.map +1 -0
- package/dist/controls/flagMask.d.ts +13 -0
- package/dist/controls/flagMask.d.ts.map +1 -0
- package/dist/controls/flagMask.js +27 -0
- package/dist/controls/flagMask.js.map +1 -0
- package/dist/controls/roving.d.ts +5 -0
- package/dist/controls/roving.d.ts.map +1 -0
- package/dist/controls/roving.js +20 -0
- package/dist/controls/roving.js.map +1 -0
- package/dist/controls/types.d.ts +18 -0
- package/dist/controls/types.d.ts.map +1 -0
- package/dist/controls/types.js +2 -0
- package/dist/controls/types.js.map +1 -0
- package/dist/data/Tree.d.ts +44 -0
- package/dist/data/Tree.d.ts.map +1 -0
- package/dist/data/Tree.js +662 -0
- package/dist/data/Tree.js.map +1 -0
- package/dist/data/Tree.styles.d.ts +2 -0
- package/dist/data/Tree.styles.d.ts.map +1 -0
- package/dist/data/Tree.styles.js +244 -0
- package/dist/data/Tree.styles.js.map +1 -0
- package/dist/data/Tree.types.d.ts +46 -0
- package/dist/data/Tree.types.d.ts.map +1 -0
- package/dist/data/Tree.types.js +2 -0
- package/dist/data/Tree.types.js.map +1 -0
- package/dist/data/dropZone.d.ts +14 -0
- package/dist/data/dropZone.d.ts.map +1 -0
- package/dist/data/dropZone.js +26 -0
- package/dist/data/dropZone.js.map +1 -0
- package/dist/data/events.d.ts +23 -0
- package/dist/data/events.d.ts.map +1 -0
- package/dist/data/events.js +9 -0
- package/dist/data/events.js.map +1 -0
- package/dist/data/resolveRename.d.ts +5 -0
- package/dist/data/resolveRename.d.ts.map +1 -0
- package/dist/data/resolveRename.js +12 -0
- package/dist/data/resolveRename.js.map +1 -0
- package/dist/data/resolveReparent.d.ts +33 -0
- package/dist/data/resolveReparent.d.ts.map +1 -0
- package/dist/data/resolveReparent.js +82 -0
- package/dist/data/resolveReparent.js.map +1 -0
- package/dist/data/rowDragSession.d.ts +19 -0
- package/dist/data/rowDragSession.d.ts.map +1 -0
- package/dist/data/rowDragSession.js +74 -0
- package/dist/data/rowDragSession.js.map +1 -0
- package/dist/data/selection.d.ts +16 -0
- package/dist/data/selection.d.ts.map +1 -0
- package/dist/data/selection.js +57 -0
- package/dist/data/selection.js.map +1 -0
- package/dist/data/treeNodes.d.ts +19 -0
- package/dist/data/treeNodes.d.ts.map +1 -0
- package/dist/data/treeNodes.js +71 -0
- package/dist/data/treeNodes.js.map +1 -0
- package/dist/dom.d.ts +13 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +25 -0
- package/dist/dom.js.map +1 -0
- package/dist/facade/Binding.d.ts +25 -0
- package/dist/facade/Binding.d.ts.map +1 -0
- package/dist/facade/Binding.js +145 -0
- package/dist/facade/Binding.js.map +1 -0
- package/dist/facade/Button.d.ts +19 -0
- package/dist/facade/Button.d.ts.map +1 -0
- package/dist/facade/Button.js +34 -0
- package/dist/facade/Button.js.map +1 -0
- package/dist/facade/Container.d.ts +32 -0
- package/dist/facade/Container.d.ts.map +1 -0
- package/dist/facade/Container.js +83 -0
- package/dist/facade/Container.js.map +1 -0
- package/dist/facade/Dock.d.ts +11 -0
- package/dist/facade/Dock.d.ts.map +1 -0
- package/dist/facade/Dock.js +27 -0
- package/dist/facade/Dock.js.map +1 -0
- package/dist/facade/Folder.d.ts +16 -0
- package/dist/facade/Folder.d.ts.map +1 -0
- package/dist/facade/Folder.js +19 -0
- package/dist/facade/Folder.js.map +1 -0
- package/dist/facade/Monitor.d.ts +37 -0
- package/dist/facade/Monitor.d.ts.map +1 -0
- package/dist/facade/Monitor.js +66 -0
- package/dist/facade/Monitor.js.map +1 -0
- package/dist/facade/Pane.d.ts +55 -0
- package/dist/facade/Pane.d.ts.map +1 -0
- package/dist/facade/Pane.js +60 -0
- package/dist/facade/Pane.js.map +1 -0
- package/dist/facade/Presence.d.ts +29 -0
- package/dist/facade/Presence.d.ts.map +1 -0
- package/dist/facade/Presence.js +48 -0
- package/dist/facade/Presence.js.map +1 -0
- package/dist/facade/Separator.d.ts +11 -0
- package/dist/facade/Separator.d.ts.map +1 -0
- package/dist/facade/Separator.js +24 -0
- package/dist/facade/Separator.js.map +1 -0
- package/dist/facade/dispatch.d.ts +22 -0
- package/dist/facade/dispatch.d.ts.map +1 -0
- package/dist/facade/dispatch.js +67 -0
- package/dist/facade/dispatch.js.map +1 -0
- package/dist/facade/monitorFields.d.ts +11 -0
- package/dist/facade/monitorFields.d.ts.map +1 -0
- package/dist/facade/monitorFields.js +13 -0
- package/dist/facade/monitorFields.js.map +1 -0
- package/dist/facade/monitorValue.d.ts +8 -0
- package/dist/facade/monitorValue.d.ts.map +1 -0
- package/dist/facade/monitorValue.js +13 -0
- package/dist/facade/monitorValue.js.map +1 -0
- package/dist/feedback/JollyPixelLogo.d.ts +2 -0
- package/dist/feedback/JollyPixelLogo.d.ts.map +1 -0
- package/dist/feedback/JollyPixelLogo.js +91 -0
- package/dist/feedback/JollyPixelLogo.js.map +1 -0
- package/dist/feedback/Loading.d.ts +36 -0
- package/dist/feedback/Loading.d.ts.map +1 -0
- package/dist/feedback/Loading.js +175 -0
- package/dist/feedback/Loading.js.map +1 -0
- package/dist/feedback/Loading.styles.d.ts +2 -0
- package/dist/feedback/Loading.styles.d.ts.map +1 -0
- package/dist/feedback/Loading.styles.js +236 -0
- package/dist/feedback/Loading.styles.js.map +1 -0
- package/dist/feedback/Log.d.ts +21 -0
- package/dist/feedback/Log.d.ts.map +1 -0
- package/dist/feedback/Log.js +126 -0
- package/dist/feedback/Log.js.map +1 -0
- package/dist/feedback/Log.styles.d.ts +2 -0
- package/dist/feedback/Log.styles.d.ts.map +1 -0
- package/dist/feedback/Log.styles.js +65 -0
- package/dist/feedback/Log.styles.js.map +1 -0
- package/dist/feedback/LogQueue.d.ts +12 -0
- package/dist/feedback/LogQueue.d.ts.map +1 -0
- package/dist/feedback/LogQueue.js +91 -0
- package/dist/feedback/LogQueue.js.map +1 -0
- package/dist/feedback/LogQueue.types.d.ts +16 -0
- package/dist/feedback/LogQueue.types.d.ts.map +1 -0
- package/dist/feedback/LogQueue.types.js +2 -0
- package/dist/feedback/LogQueue.types.js.map +1 -0
- package/dist/feedback/Progress.d.ts +24 -0
- package/dist/feedback/Progress.d.ts.map +1 -0
- package/dist/feedback/Progress.js +120 -0
- package/dist/feedback/Progress.js.map +1 -0
- package/dist/feedback/Progress.styles.d.ts +2 -0
- package/dist/feedback/Progress.styles.d.ts.map +1 -0
- package/dist/feedback/Progress.styles.js +150 -0
- package/dist/feedback/Progress.styles.js.map +1 -0
- package/dist/feedback/index.d.ts +6 -0
- package/dist/feedback/index.d.ts.map +1 -0
- package/dist/feedback/index.js +5 -0
- package/dist/feedback/index.js.map +1 -0
- package/dist/feedback/normalizeProgress.d.ts +11 -0
- package/dist/feedback/normalizeProgress.d.ts.map +1 -0
- package/dist/feedback/normalizeProgress.js +24 -0
- package/dist/feedback/normalizeProgress.js.map +1 -0
- package/dist/field/DraftController.d.ts +24 -0
- package/dist/field/DraftController.d.ts.map +1 -0
- package/dist/field/DraftController.js +72 -0
- package/dist/field/DraftController.js.map +1 -0
- package/dist/field/JollyField.d.ts +101 -0
- package/dist/field/JollyField.d.ts.map +1 -0
- package/dist/field/JollyField.js +356 -0
- package/dist/field/JollyField.js.map +1 -0
- package/dist/field/JollyField.styles.d.ts +5 -0
- package/dist/field/JollyField.styles.d.ts.map +1 -0
- package/dist/field/JollyField.styles.js +439 -0
- package/dist/field/JollyField.styles.js.map +1 -0
- package/dist/field/PointerFocusController.d.ts +16 -0
- package/dist/field/PointerFocusController.d.ts.map +1 -0
- package/dist/field/PointerFocusController.js +36 -0
- package/dist/field/PointerFocusController.js.map +1 -0
- package/dist/field/PopoverController.d.ts +60 -0
- package/dist/field/PopoverController.d.ts.map +1 -0
- package/dist/field/PopoverController.js +122 -0
- package/dist/field/PopoverController.js.map +1 -0
- package/dist/field/events.d.ts +14 -0
- package/dist/field/events.d.ts.map +1 -0
- package/dist/field/events.js +25 -0
- package/dist/field/events.js.map +1 -0
- package/dist/field/mixed.d.ts +15 -0
- package/dist/field/mixed.d.ts.map +1 -0
- package/dist/field/mixed.js +10 -0
- package/dist/field/mixed.js.map +1 -0
- package/dist/field/pointerModality.d.ts +14 -0
- package/dist/field/pointerModality.d.ts.map +1 -0
- package/dist/field/pointerModality.js +26 -0
- package/dist/field/pointerModality.js.map +1 -0
- package/dist/field/predicates.d.ts +18 -0
- package/dist/field/predicates.d.ts.map +1 -0
- package/dist/field/predicates.js +42 -0
- package/dist/field/predicates.js.map +1 -0
- package/dist/geometry/Rect.d.ts +10 -0
- package/dist/geometry/Rect.d.ts.map +1 -0
- package/dist/geometry/Rect.js +2 -0
- package/dist/geometry/Rect.js.map +1 -0
- package/dist/geometry/anchoredPosition.d.ts +23 -0
- package/dist/geometry/anchoredPosition.d.ts.map +1 -0
- package/dist/geometry/anchoredPosition.js +62 -0
- package/dist/geometry/anchoredPosition.js.map +1 -0
- package/dist/geometry/clampToViewport.d.ts +23 -0
- package/dist/geometry/clampToViewport.d.ts.map +1 -0
- package/dist/geometry/clampToViewport.js +16 -0
- package/dist/geometry/clampToViewport.js.map +1 -0
- package/dist/icon/Icon.d.ts +21 -0
- package/dist/icon/Icon.d.ts.map +1 -0
- package/dist/icon/Icon.js +88 -0
- package/dist/icon/Icon.js.map +1 -0
- package/dist/icon/builtins.d.ts +2 -0
- package/dist/icon/builtins.d.ts.map +1 -0
- package/dist/icon/builtins.js +149 -0
- package/dist/icon/builtins.js.map +1 -0
- package/dist/icon/index.d.ts +3 -0
- package/dist/icon/index.d.ts.map +1 -0
- package/dist/icon/index.js +3 -0
- package/dist/icon/index.js.map +1 -0
- package/dist/icon/registry.d.ts +20 -0
- package/dist/icon/registry.d.ts.map +1 -0
- package/dist/icon/registry.js +20 -0
- package/dist/icon/registry.js.map +1 -0
- package/dist/index.d.ts +96 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/interaction/drag/DragSession.d.ts +111 -0
- package/dist/interaction/drag/DragSession.d.ts.map +1 -0
- package/dist/interaction/drag/DragSession.js +273 -0
- package/dist/interaction/drag/DragSession.js.map +1 -0
- package/dist/interaction/drag/dragGhost.d.ts +47 -0
- package/dist/interaction/drag/dragGhost.d.ts.map +1 -0
- package/dist/interaction/drag/dragGhost.js +77 -0
- package/dist/interaction/drag/dragGhost.js.map +1 -0
- package/dist/interaction/drag/dragOverlay.d.ts +44 -0
- package/dist/interaction/drag/dragOverlay.d.ts.map +1 -0
- package/dist/interaction/drag/dragOverlay.js +169 -0
- package/dist/interaction/drag/dragOverlay.js.map +1 -0
- package/dist/interaction/drag/dropIndex.d.ts +26 -0
- package/dist/interaction/drag/dropIndex.d.ts.map +1 -0
- package/dist/interaction/drag/dropIndex.js +34 -0
- package/dist/interaction/drag/dropIndex.js.map +1 -0
- package/dist/interaction/ensureDocumentStyles.d.ts +5 -0
- package/dist/interaction/ensureDocumentStyles.d.ts.map +1 -0
- package/dist/interaction/ensureDocumentStyles.js +14 -0
- package/dist/interaction/ensureDocumentStyles.js.map +1 -0
- package/dist/interaction/scrub/ScrubController.d.ts +27 -0
- package/dist/interaction/scrub/ScrubController.d.ts.map +1 -0
- package/dist/interaction/scrub/ScrubController.js +114 -0
- package/dist/interaction/scrub/ScrubController.js.map +1 -0
- package/dist/interaction/scrub/dragGuide.d.ts +9 -0
- package/dist/interaction/scrub/dragGuide.d.ts.map +1 -0
- package/dist/interaction/scrub/dragGuide.js +54 -0
- package/dist/interaction/scrub/dragGuide.js.map +1 -0
- package/dist/math/AxisController.d.ts +37 -0
- package/dist/math/AxisController.d.ts.map +1 -0
- package/dist/math/AxisController.js +141 -0
- package/dist/math/AxisController.js.map +1 -0
- package/dist/math/Point2d.d.ts +33 -0
- package/dist/math/Point2d.d.ts.map +1 -0
- package/dist/math/Point2d.js +169 -0
- package/dist/math/Point2d.js.map +1 -0
- package/dist/math/Point2d.styles.d.ts +2 -0
- package/dist/math/Point2d.styles.d.ts.map +1 -0
- package/dist/math/Point2d.styles.js +55 -0
- package/dist/math/Point2d.styles.js.map +1 -0
- package/dist/math/Quaternion.d.ts +33 -0
- package/dist/math/Quaternion.d.ts.map +1 -0
- package/dist/math/Quaternion.js +149 -0
- package/dist/math/Quaternion.js.map +1 -0
- package/dist/math/Quaternion.styles.d.ts +3 -0
- package/dist/math/Quaternion.styles.d.ts.map +1 -0
- package/dist/math/Quaternion.styles.js +5 -0
- package/dist/math/Quaternion.styles.js.map +1 -0
- package/dist/math/Transform.d.ts +62 -0
- package/dist/math/Transform.d.ts.map +1 -0
- package/dist/math/Transform.js +179 -0
- package/dist/math/Transform.js.map +1 -0
- package/dist/math/Transform.styles.d.ts +2 -0
- package/dist/math/Transform.styles.d.ts.map +1 -0
- package/dist/math/Transform.styles.js +21 -0
- package/dist/math/Transform.styles.js.map +1 -0
- package/dist/math/Vector2.d.ts +14 -0
- package/dist/math/Vector2.d.ts.map +1 -0
- package/dist/math/Vector2.js +33 -0
- package/dist/math/Vector2.js.map +1 -0
- package/dist/math/Vector3.d.ts +11 -0
- package/dist/math/Vector3.d.ts.map +1 -0
- package/dist/math/Vector3.js +22 -0
- package/dist/math/Vector3.js.map +1 -0
- package/dist/math/Vector4.d.ts +11 -0
- package/dist/math/Vector4.d.ts.map +1 -0
- package/dist/math/Vector4.js +22 -0
- package/dist/math/Vector4.js.map +1 -0
- package/dist/math/VectorField.d.ts +33 -0
- package/dist/math/VectorField.d.ts.map +1 -0
- package/dist/math/VectorField.js +152 -0
- package/dist/math/VectorField.js.map +1 -0
- package/dist/math/VectorField.styles.d.ts +5 -0
- package/dist/math/VectorField.styles.d.ts.map +1 -0
- package/dist/math/VectorField.styles.js +111 -0
- package/dist/math/VectorField.styles.js.map +1 -0
- package/dist/math/axes.d.ts +6 -0
- package/dist/math/axes.d.ts.map +1 -0
- package/dist/math/axes.js +38 -0
- package/dist/math/axes.js.map +1 -0
- package/dist/math/components.d.ts +3 -0
- package/dist/math/components.d.ts.map +1 -0
- package/dist/math/components.js +46 -0
- package/dist/math/components.js.map +1 -0
- package/dist/math/equals.d.ts +10 -0
- package/dist/math/equals.d.ts.map +1 -0
- package/dist/math/equals.js +52 -0
- package/dist/math/equals.js.map +1 -0
- package/dist/math/euler.d.ts +20 -0
- package/dist/math/euler.d.ts.map +1 -0
- package/dist/math/euler.js +65 -0
- package/dist/math/euler.js.map +1 -0
- package/dist/math/guards.d.ts +8 -0
- package/dist/math/guards.d.ts.map +1 -0
- package/dist/math/guards.js +53 -0
- package/dist/math/guards.js.map +1 -0
- package/dist/math/types.d.ts +32 -0
- package/dist/math/types.d.ts.map +1 -0
- package/dist/math/types.js +2 -0
- package/dist/math/types.js.map +1 -0
- package/dist/monitors/Graph.d.ts +39 -0
- package/dist/monitors/Graph.d.ts.map +1 -0
- package/dist/monitors/Graph.js +171 -0
- package/dist/monitors/Graph.js.map +1 -0
- package/dist/monitors/Graph.styles.d.ts +2 -0
- package/dist/monitors/Graph.styles.d.ts.map +1 -0
- package/dist/monitors/Graph.styles.js +46 -0
- package/dist/monitors/Graph.styles.js.map +1 -0
- package/dist/monitors/Monitor.d.ts +19 -0
- package/dist/monitors/Monitor.d.ts.map +1 -0
- package/dist/monitors/Monitor.js +61 -0
- package/dist/monitors/Monitor.js.map +1 -0
- package/dist/monitors/Monitor.styles.d.ts +2 -0
- package/dist/monitors/Monitor.styles.d.ts.map +1 -0
- package/dist/monitors/Monitor.styles.js +38 -0
- package/dist/monitors/Monitor.styles.js.map +1 -0
- package/dist/monitors/format.d.ts +7 -0
- package/dist/monitors/format.d.ts.map +1 -0
- package/dist/monitors/format.js +28 -0
- package/dist/monitors/format.js.map +1 -0
- package/dist/network/RoomPresenceSource.d.ts +29 -0
- package/dist/network/RoomPresenceSource.d.ts.map +1 -0
- package/dist/network/RoomPresenceSource.js +116 -0
- package/dist/network/RoomPresenceSource.js.map +1 -0
- package/dist/network/index.d.ts +2 -0
- package/dist/network/index.d.ts.map +1 -0
- package/dist/network/index.js +2 -0
- package/dist/network/index.js.map +1 -0
- package/dist/numeric/evaluate.d.ts +12 -0
- package/dist/numeric/evaluate.d.ts.map +1 -0
- package/dist/numeric/evaluate.js +206 -0
- package/dist/numeric/evaluate.js.map +1 -0
- package/dist/numeric/format.d.ts +14 -0
- package/dist/numeric/format.d.ts.map +1 -0
- package/dist/numeric/format.js +47 -0
- package/dist/numeric/format.js.map +1 -0
- package/dist/numeric/modifierMultiplier.d.ts +12 -0
- package/dist/numeric/modifierMultiplier.d.ts.map +1 -0
- package/dist/numeric/modifierMultiplier.js +13 -0
- package/dist/numeric/modifierMultiplier.js.map +1 -0
- package/dist/numeric/valueFromDelta.d.ts +26 -0
- package/dist/numeric/valueFromDelta.d.ts.map +1 -0
- package/dist/numeric/valueFromDelta.js +34 -0
- package/dist/numeric/valueFromDelta.js.map +1 -0
- package/dist/peer/LockController.d.ts +26 -0
- package/dist/peer/LockController.d.ts.map +1 -0
- package/dist/peer/LockController.js +111 -0
- package/dist/peer/LockController.js.map +1 -0
- package/dist/peer/Presence.d.ts +37 -0
- package/dist/peer/Presence.d.ts.map +1 -0
- package/dist/peer/Presence.js +151 -0
- package/dist/peer/Presence.js.map +1 -0
- package/dist/peer/Presence.styles.d.ts +2 -0
- package/dist/peer/Presence.styles.d.ts.map +1 -0
- package/dist/peer/Presence.styles.js +86 -0
- package/dist/peer/Presence.styles.js.map +1 -0
- package/dist/peer/PresenceSource.d.ts +28 -0
- package/dist/peer/PresenceSource.d.ts.map +1 -0
- package/dist/peer/PresenceSource.js +20 -0
- package/dist/peer/PresenceSource.js.map +1 -0
- package/dist/peer/events.d.ts +13 -0
- package/dist/peer/events.d.ts.map +1 -0
- package/dist/peer/events.js +9 -0
- package/dist/peer/events.js.map +1 -0
- package/dist/peer/presenceContext.d.ts +22 -0
- package/dist/peer/presenceContext.d.ts.map +1 -0
- package/dist/peer/presenceContext.js +42 -0
- package/dist/peer/presenceContext.js.map +1 -0
- package/dist/peer/resolveLock.d.ts +18 -0
- package/dist/peer/resolveLock.d.ts.map +1 -0
- package/dist/peer/resolveLock.js +38 -0
- package/dist/peer/resolveLock.js.map +1 -0
- package/dist/peer/toPresencePeers.d.ts +7 -0
- package/dist/peer/toPresencePeers.d.ts.map +1 -0
- package/dist/peer/toPresencePeers.js +14 -0
- package/dist/peer/toPresencePeers.js.map +1 -0
- package/dist/peer/types.d.ts +16 -0
- package/dist/peer/types.d.ts.map +1 -0
- package/dist/peer/types.js +2 -0
- package/dist/peer/types.js.map +1 -0
- package/dist/stats/MetricDefinition.d.ts +23 -0
- package/dist/stats/MetricDefinition.d.ts.map +1 -0
- package/dist/stats/MetricDefinition.js +14 -0
- package/dist/stats/MetricDefinition.js.map +1 -0
- package/dist/stats/Stats.d.ts +23 -0
- package/dist/stats/Stats.d.ts.map +1 -0
- package/dist/stats/Stats.js +354 -0
- package/dist/stats/Stats.js.map +1 -0
- package/dist/stats/Stats.styles.d.ts +2 -0
- package/dist/stats/Stats.styles.d.ts.map +1 -0
- package/dist/stats/Stats.styles.js +60 -0
- package/dist/stats/Stats.styles.js.map +1 -0
- package/dist/stats/StatsRecorder.d.ts +29 -0
- package/dist/stats/StatsRecorder.d.ts.map +1 -0
- package/dist/stats/StatsRecorder.js +151 -0
- package/dist/stats/StatsRecorder.js.map +1 -0
- package/dist/stats/builtins.d.ts +14 -0
- package/dist/stats/builtins.d.ts.map +1 -0
- package/dist/stats/builtins.js +63 -0
- package/dist/stats/builtins.js.map +1 -0
- package/dist/stats/index.d.ts +3 -0
- package/dist/stats/index.d.ts.map +1 -0
- package/dist/stats/index.js +3 -0
- package/dist/stats/index.js.map +1 -0
- package/dist/storage/LocalStorageAdapter.d.ts +28 -0
- package/dist/storage/LocalStorageAdapter.d.ts.map +1 -0
- package/dist/storage/LocalStorageAdapter.js +57 -0
- package/dist/storage/LocalStorageAdapter.js.map +1 -0
- package/dist/storage/MemoryStorageAdapter.d.ts +10 -0
- package/dist/storage/MemoryStorageAdapter.d.ts.map +1 -0
- package/dist/storage/MemoryStorageAdapter.js +13 -0
- package/dist/storage/MemoryStorageAdapter.js.map +1 -0
- package/dist/storage/PersistedState.d.ts +20 -0
- package/dist/storage/PersistedState.d.ts.map +1 -0
- package/dist/storage/PersistedState.js +34 -0
- package/dist/storage/PersistedState.js.map +1 -0
- package/dist/storage/StorageAdapter.d.ts +5 -0
- package/dist/storage/StorageAdapter.d.ts.map +1 -0
- package/dist/storage/StorageAdapter.js +2 -0
- package/dist/storage/StorageAdapter.js.map +1 -0
- package/dist/storage/keys.d.ts +13 -0
- package/dist/storage/keys.d.ts.map +1 -0
- package/dist/storage/keys.js +58 -0
- package/dist/storage/keys.js.map +1 -0
- package/dist/theme/ambientTheme.d.ts +5 -0
- package/dist/theme/ambientTheme.d.ts.map +1 -0
- package/dist/theme/ambientTheme.js +54 -0
- package/dist/theme/ambientTheme.js.map +1 -0
- package/dist/theme/components/DensityControl.d.ts +23 -0
- package/dist/theme/components/DensityControl.d.ts.map +1 -0
- package/dist/theme/components/DensityControl.js +78 -0
- package/dist/theme/components/DensityControl.js.map +1 -0
- package/dist/theme/components/ScopeHost.d.ts +21 -0
- package/dist/theme/components/ScopeHost.d.ts.map +1 -0
- package/dist/theme/components/ScopeHost.js +34 -0
- package/dist/theme/components/ScopeHost.js.map +1 -0
- package/dist/theme/components/ThemeControl.d.ts +23 -0
- package/dist/theme/components/ThemeControl.d.ts.map +1 -0
- package/dist/theme/components/ThemeControl.js +78 -0
- package/dist/theme/components/ThemeControl.js.map +1 -0
- package/dist/theme/components/ThemePreferences.d.ts +34 -0
- package/dist/theme/components/ThemePreferences.d.ts.map +1 -0
- package/dist/theme/components/ThemePreferences.js +151 -0
- package/dist/theme/components/ThemePreferences.js.map +1 -0
- package/dist/theme/font.d.ts +11 -0
- package/dist/theme/font.d.ts.map +1 -0
- package/dist/theme/font.js +50 -0
- package/dist/theme/font.js.map +1 -0
- package/dist/theme/peerColor.d.ts +7 -0
- package/dist/theme/peerColor.d.ts.map +1 -0
- package/dist/theme/peerColor.js +11 -0
- package/dist/theme/peerColor.js.map +1 -0
- package/dist/theme/preferences.d.ts +5 -0
- package/dist/theme/preferences.d.ts.map +1 -0
- package/dist/theme/preferences.js +22 -0
- package/dist/theme/preferences.js.map +1 -0
- package/dist/theme/resolveThemeToken.d.ts +7 -0
- package/dist/theme/resolveThemeToken.d.ts.map +1 -0
- package/dist/theme/resolveThemeToken.js +39 -0
- package/dist/theme/resolveThemeToken.js.map +1 -0
- package/dist/theme/styles/fallbacks.d.ts +54 -0
- package/dist/theme/styles/fallbacks.d.ts.map +1 -0
- package/dist/theme/styles/fallbacks.js +56 -0
- package/dist/theme/styles/fallbacks.js.map +1 -0
- package/dist/theme/styles/hiddenStyles.d.ts +9 -0
- package/dist/theme/styles/hiddenStyles.d.ts.map +1 -0
- package/dist/theme/styles/hiddenStyles.js +15 -0
- package/dist/theme/styles/hiddenStyles.js.map +1 -0
- package/dist/theme/styles/mixins.d.ts +21 -0
- package/dist/theme/styles/mixins.d.ts.map +1 -0
- package/dist/theme/styles/mixins.js +41 -0
- package/dist/theme/styles/mixins.js.map +1 -0
- package/dist/theme/styles/themeStyles.d.ts +5 -0
- package/dist/theme/styles/themeStyles.d.ts.map +1 -0
- package/dist/theme/styles/themeStyles.js +23 -0
- package/dist/theme/styles/themeStyles.js.map +1 -0
- package/dist/theme/tokens/density.d.ts +8 -0
- package/dist/theme/tokens/density.d.ts.map +1 -0
- package/dist/theme/tokens/density.js +29 -0
- package/dist/theme/tokens/density.js.map +1 -0
- package/dist/theme/tokens/ramps.d.ts +5 -0
- package/dist/theme/tokens/ramps.d.ts.map +1 -0
- package/dist/theme/tokens/ramps.js +47 -0
- package/dist/theme/tokens/ramps.js.map +1 -0
- package/dist/theme/tokens/scales.d.ts +5 -0
- package/dist/theme/tokens/scales.d.ts.map +1 -0
- package/dist/theme/tokens/scales.js +63 -0
- package/dist/theme/tokens/scales.js.map +1 -0
- package/dist/theme/tokens/semantic.d.ts +5 -0
- package/dist/theme/tokens/semantic.d.ts.map +1 -0
- package/dist/theme/tokens/semantic.js +208 -0
- package/dist/theme/tokens/semantic.js.map +1 -0
- package/dist/theme/types.d.ts +6 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +2 -0
- package/dist/theme/types.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
// Import Internal Dependencies
|
|
2
|
+
import { createDragOverlay } from "./dragOverlay.js";
|
|
3
|
+
import { resolveDropIndex } from "./dropIndex.js";
|
|
4
|
+
import { ensureDocumentStyles } from "../ensureDocumentStyles.js";
|
|
5
|
+
import { kFallback } from "../../theme/styles/fallbacks.js";
|
|
6
|
+
import { resolveThemeToken } from "../../theme/resolveThemeToken.js";
|
|
7
|
+
// CONSTANTS
|
|
8
|
+
const kThreshold = 4;
|
|
9
|
+
const kDeadBand = 6;
|
|
10
|
+
const kDraggingClass = "jolly-pane-dragging";
|
|
11
|
+
const kInsertionThickness = 2;
|
|
12
|
+
const kEnterDepth = 48;
|
|
13
|
+
const kChipOffset = 12;
|
|
14
|
+
const kChipHeight = 22;
|
|
15
|
+
/**
|
|
16
|
+
* Runs one pointer drag of a pane or folder.
|
|
17
|
+
*
|
|
18
|
+
* Nothing is mutated while the pointer moves: the session resolves an armed
|
|
19
|
+
* zone and an insertion index, paints them, and reports the final position
|
|
20
|
+
* once through `onCommit`. A release below the movement threshold is a click,
|
|
21
|
+
* so it reports no placement; `onEnd` still runs, and runs exactly once.
|
|
22
|
+
*/
|
|
23
|
+
export function startDragSession(options) {
|
|
24
|
+
const { source, event, handle = source, zones, probe, ghostLabel, visuals = true, ghost = true, ghostElement, threshold = kThreshold, deadBand = kDeadBand, onStart, onPreview, onCommit, onCancel, onEnd } = options;
|
|
25
|
+
const pointerId = event.pointerId;
|
|
26
|
+
const originX = event.clientX;
|
|
27
|
+
const originY = event.clientY;
|
|
28
|
+
let started = false;
|
|
29
|
+
let settled = false;
|
|
30
|
+
let overlay = null;
|
|
31
|
+
let armed = [];
|
|
32
|
+
let current = null;
|
|
33
|
+
let ghostX = -kChipOffset;
|
|
34
|
+
let ghostY = -kChipOffset;
|
|
35
|
+
let result = {
|
|
36
|
+
zone: null,
|
|
37
|
+
index: 0,
|
|
38
|
+
x: originX,
|
|
39
|
+
y: originY
|
|
40
|
+
};
|
|
41
|
+
function begin() {
|
|
42
|
+
started = true;
|
|
43
|
+
armed = zones();
|
|
44
|
+
if (visuals) {
|
|
45
|
+
const rect = source.getBoundingClientRect();
|
|
46
|
+
const element = ghost ? ghostElement?.() ?? null : null;
|
|
47
|
+
// Nothing has moved yet, so the source still sits where it was grabbed
|
|
48
|
+
// and the offset taken at pointerdown still holds.
|
|
49
|
+
if (element !== null) {
|
|
50
|
+
ghostX = originX - rect.x;
|
|
51
|
+
ghostY = originY - rect.y;
|
|
52
|
+
}
|
|
53
|
+
overlay = createDragOverlay({
|
|
54
|
+
accent: resolveThemeToken(source, "--jolly-accent-fill", String(kFallback.focusRing)),
|
|
55
|
+
label: ghostLabel,
|
|
56
|
+
ghost,
|
|
57
|
+
element,
|
|
58
|
+
scope: source,
|
|
59
|
+
width: element === null ? Math.max(rect.width, 120) : rect.width,
|
|
60
|
+
height: kChipHeight
|
|
61
|
+
});
|
|
62
|
+
overlay.showZones(armed.map((zone) => zone.rect));
|
|
63
|
+
}
|
|
64
|
+
ensureSessionStyles();
|
|
65
|
+
document.documentElement.classList.add(kDraggingClass);
|
|
66
|
+
onStart?.();
|
|
67
|
+
}
|
|
68
|
+
function update(clientX, clientY) {
|
|
69
|
+
const zone = armed.find((candidate) => contains(candidate.rect, clientX, clientY)) ?? entered(armed, probe?.(clientX, clientY) ?? null);
|
|
70
|
+
overlay?.armZone(zone === null ? null : armed.indexOf(zone));
|
|
71
|
+
if (zone === null) {
|
|
72
|
+
current = null;
|
|
73
|
+
overlay?.hideInsertion();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const sameZone = result.zone !== null && result.zone.id === zone.id;
|
|
77
|
+
current = resolveDropIndex({
|
|
78
|
+
position: zone.axis === "y" ? clientY : clientX,
|
|
79
|
+
candidates: zone.candidates,
|
|
80
|
+
current: sameZone ? current : null,
|
|
81
|
+
deadBand
|
|
82
|
+
});
|
|
83
|
+
if (movesNothing(zone, current)) {
|
|
84
|
+
overlay?.hideInsertion();
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
overlay?.showInsertion(zone.line(current));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
overlay?.moveGhost(clientX - ghostX, clientY - ghostY);
|
|
91
|
+
result = {
|
|
92
|
+
zone,
|
|
93
|
+
index: current ?? 0,
|
|
94
|
+
x: clientX,
|
|
95
|
+
y: clientY
|
|
96
|
+
};
|
|
97
|
+
onPreview?.(result);
|
|
98
|
+
}
|
|
99
|
+
function teardown() {
|
|
100
|
+
handle.removeEventListener("pointermove", onPointerMove);
|
|
101
|
+
handle.removeEventListener("pointerup", onPointerUp);
|
|
102
|
+
handle.removeEventListener("pointercancel", onPointerCancel);
|
|
103
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
104
|
+
if (handle.hasPointerCapture(pointerId)) {
|
|
105
|
+
handle.releasePointerCapture(pointerId);
|
|
106
|
+
}
|
|
107
|
+
overlay?.destroy();
|
|
108
|
+
overlay = null;
|
|
109
|
+
document.documentElement.classList.remove(kDraggingClass);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Ends the session exactly once, whatever released it.
|
|
113
|
+
*
|
|
114
|
+
* A drag that never passed the threshold reports no placement, but still
|
|
115
|
+
* settles: `onEnd` is the caller's only guarantee that the session is over.
|
|
116
|
+
*/
|
|
117
|
+
function settle(commit) {
|
|
118
|
+
if (settled) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
settled = true;
|
|
122
|
+
const notify = started;
|
|
123
|
+
teardown();
|
|
124
|
+
if (notify) {
|
|
125
|
+
if (commit) {
|
|
126
|
+
onCommit(result);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
onCancel?.();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
onEnd?.();
|
|
133
|
+
}
|
|
134
|
+
function onPointerMove(moveEvent) {
|
|
135
|
+
if (moveEvent.pointerId !== pointerId) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (!started) {
|
|
139
|
+
const travelled = Math.hypot(moveEvent.clientX - originX, moveEvent.clientY - originY);
|
|
140
|
+
if (travelled < threshold) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
begin();
|
|
144
|
+
}
|
|
145
|
+
update(moveEvent.clientX, moveEvent.clientY);
|
|
146
|
+
}
|
|
147
|
+
function onPointerUp(upEvent) {
|
|
148
|
+
if (upEvent.pointerId !== pointerId) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
settle(true);
|
|
152
|
+
}
|
|
153
|
+
function onPointerCancel(cancelEvent) {
|
|
154
|
+
if (cancelEvent.pointerId !== pointerId) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
settle(false);
|
|
158
|
+
}
|
|
159
|
+
function onKeyDown(keyEvent) {
|
|
160
|
+
if (keyEvent.key !== "Escape") {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
keyEvent.preventDefault();
|
|
164
|
+
keyEvent.stopPropagation();
|
|
165
|
+
settle(false);
|
|
166
|
+
}
|
|
167
|
+
handle.setPointerCapture(pointerId);
|
|
168
|
+
handle.addEventListener("pointermove", onPointerMove);
|
|
169
|
+
handle.addEventListener("pointerup", onPointerUp);
|
|
170
|
+
handle.addEventListener("pointercancel", onPointerCancel);
|
|
171
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
172
|
+
return {
|
|
173
|
+
cancel() {
|
|
174
|
+
settle(false);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Builds the insertion line for a vertical stack of children.
|
|
180
|
+
*/
|
|
181
|
+
export function verticalInsertionLine(bounds, candidates, index) {
|
|
182
|
+
const position = index === 0 ?
|
|
183
|
+
(candidates[0]?.start ?? bounds.y) :
|
|
184
|
+
edgeOf(candidates[index - 1], bounds.y + bounds.height);
|
|
185
|
+
return {
|
|
186
|
+
x: bounds.x,
|
|
187
|
+
y: position - (kInsertionThickness / 2),
|
|
188
|
+
width: bounds.width,
|
|
189
|
+
height: kInsertionThickness
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Builds the insertion line for a horizontal stack of children.
|
|
194
|
+
*/
|
|
195
|
+
export function horizontalInsertionLine(bounds, candidates, index) {
|
|
196
|
+
const position = index === 0 ?
|
|
197
|
+
(candidates[0]?.start ?? bounds.x) :
|
|
198
|
+
edgeOf(candidates[index - 1], bounds.x + bounds.width);
|
|
199
|
+
return {
|
|
200
|
+
x: position - (kInsertionThickness / 2),
|
|
201
|
+
y: bounds.y,
|
|
202
|
+
width: kInsertionThickness,
|
|
203
|
+
height: bounds.height
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function edgeOf(candidate, fallback) {
|
|
207
|
+
return candidate === undefined ?
|
|
208
|
+
fallback :
|
|
209
|
+
candidate.start + candidate.size;
|
|
210
|
+
}
|
|
211
|
+
function contains(rect, x, y) {
|
|
212
|
+
return x >= rect.x &&
|
|
213
|
+
x <= rect.x + rect.width &&
|
|
214
|
+
y >= rect.y &&
|
|
215
|
+
y <= rect.y + rect.height;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Zone the dragged box has sunk furthest into, or `null` for none.
|
|
219
|
+
*
|
|
220
|
+
* Depth is measured across the zone, on the axis its children do not stack
|
|
221
|
+
* along, so a window docks by moving toward the dock rather than by covering
|
|
222
|
+
* its whole length. A zone thinner than the required depth arms on full
|
|
223
|
+
* coverage instead, which is the case of an emptied dock reduced to a band.
|
|
224
|
+
*/
|
|
225
|
+
function entered(zones, box) {
|
|
226
|
+
if (box === null) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
let best = null;
|
|
230
|
+
let deepest = 0;
|
|
231
|
+
for (const zone of zones) {
|
|
232
|
+
const across = zone.axis === "y" ?
|
|
233
|
+
overlap(box.x, box.width, zone.rect.x, zone.rect.width) :
|
|
234
|
+
overlap(box.y, box.height, zone.rect.y, zone.rect.height);
|
|
235
|
+
const along = zone.axis === "y" ?
|
|
236
|
+
overlap(box.y, box.height, zone.rect.y, zone.rect.height) :
|
|
237
|
+
overlap(box.x, box.width, zone.rect.x, zone.rect.width);
|
|
238
|
+
const needed = Math.min(kEnterDepth, zone.axis === "y" ? zone.rect.width : zone.rect.height);
|
|
239
|
+
if (along > 0 && across >= needed && across > deepest) {
|
|
240
|
+
deepest = across;
|
|
241
|
+
best = zone;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return best;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Overlap of two extents on one axis, in pixels.
|
|
248
|
+
*/
|
|
249
|
+
function overlap(start, size, otherStart, otherSize) {
|
|
250
|
+
return Math.max(0, Math.min(start + size, otherStart + otherSize) - Math.max(start, otherStart));
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* True when inserting at `index` would leave the dragged element exactly where
|
|
254
|
+
* it already sits, which is every index a lone child can resolve to.
|
|
255
|
+
*/
|
|
256
|
+
function movesNothing(zone, index) {
|
|
257
|
+
const source = zone.source ?? null;
|
|
258
|
+
return source !== null &&
|
|
259
|
+
(index === source || index === source + 1);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Lazily installs the document-level cursor lock used during a drag.
|
|
263
|
+
*/
|
|
264
|
+
function ensureSessionStyles() {
|
|
265
|
+
ensureDocumentStyles("jolly-drag-session-styles", `
|
|
266
|
+
html.${kDraggingClass},
|
|
267
|
+
html.${kDraggingClass} * {
|
|
268
|
+
cursor: grabbing !important;
|
|
269
|
+
user-select: none !important;
|
|
270
|
+
}
|
|
271
|
+
`);
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=DragSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragSession.js","sourceRoot":"","sources":["../../../src/interaction/drag/DragSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { StorageAdapter } from "../../storage/StorageAdapter.ts";
|
|
2
|
+
/**
|
|
3
|
+
* A container a drag can clone its ghost from.
|
|
4
|
+
*/
|
|
5
|
+
export interface GhostSource extends HTMLElement {
|
|
6
|
+
storage: StorageAdapter;
|
|
7
|
+
/** Client rect of the chrome the ghost keeps. */
|
|
8
|
+
headerRect(): DOMRect;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Theme token names a scope host declares.
|
|
12
|
+
*
|
|
13
|
+
* Read from the stylesheet that declares them rather than hand-listed, so the
|
|
14
|
+
* two cannot drift: a token added to the theme is carried onto a ghost without
|
|
15
|
+
* anyone remembering to list it here. Computed once and kept.
|
|
16
|
+
*/
|
|
17
|
+
export declare function themeTokenNames(): readonly string[];
|
|
18
|
+
/**
|
|
19
|
+
* Copies the resolved theme onto an element standing outside every scope host.
|
|
20
|
+
*
|
|
21
|
+
* A ghost renders in `document.body`, where none of the tokens are declared,
|
|
22
|
+
* and would otherwise paint itself out of the usage-site fallbacks alone. One
|
|
23
|
+
* level of copying is enough because the computed value of a custom property
|
|
24
|
+
* already has its own `var()` references substituted. `color-scheme` comes
|
|
25
|
+
* along because the tokens are built on `light-dark()`, which resolves against
|
|
26
|
+
* the scheme in force rather than where it was declared.
|
|
27
|
+
*/
|
|
28
|
+
export declare function copyTheme(source: HTMLElement, target: HTMLElement): void;
|
|
29
|
+
/**
|
|
30
|
+
* Clones a container down to the chrome a drag needs to show.
|
|
31
|
+
*
|
|
32
|
+
* The clone is a real element: once connected it renders its own shadow DOM,
|
|
33
|
+
* so the ghost matches the source without replicating any of its styling. It
|
|
34
|
+
* drops the light DOM, whose controls hold state a shallow clone cannot carry
|
|
35
|
+
* and whose contents are not what the gesture is about. Storage is swapped for
|
|
36
|
+
* a scratch adapter because a container restores its open state on connect and
|
|
37
|
+
* would otherwise reopen itself a microtask after being built.
|
|
38
|
+
*
|
|
39
|
+
* The clone is squeezed to its header rather than folded shut. Folding would
|
|
40
|
+
* turn a chevron the other way and report a state the container being carried
|
|
41
|
+
* is not in; clipping leaves every control reading exactly as its source does.
|
|
42
|
+
*
|
|
43
|
+
* Callers reassign whatever the source held as an unreflected property, `label`
|
|
44
|
+
* and `title` above all, since only attributes survive a clone.
|
|
45
|
+
*/
|
|
46
|
+
export declare function headerGhost<T extends GhostSource>(source: T): T;
|
|
47
|
+
//# sourceMappingURL=dragGhost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dragGhost.d.ts","sourceRoot":"","sources":["../../../src/interaction/drag/dragGhost.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,OAAO,EAAE,cAAc,CAAC;IACxB,iDAAiD;IACjD,UAAU,IAAI,OAAO,CAAC;CACvB;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,SAAS,MAAM,EAAE,CAMnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,GAClB,IAAI,CAqBN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,MAAM,EAAE,CAAC,GACR,CAAC,CAkBH"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Import Internal Dependencies
|
|
2
|
+
import { MemoryStorageAdapter } from "../../storage/MemoryStorageAdapter.js";
|
|
3
|
+
import { themeStyles } from "../../theme/styles/themeStyles.js";
|
|
4
|
+
// CONSTANTS
|
|
5
|
+
const kTokenPattern = /--jolly-[a-z0-9-]+(?=\s*:)/g;
|
|
6
|
+
let cachedNames = null;
|
|
7
|
+
/**
|
|
8
|
+
* Theme token names a scope host declares.
|
|
9
|
+
*
|
|
10
|
+
* Read from the stylesheet that declares them rather than hand-listed, so the
|
|
11
|
+
* two cannot drift: a token added to the theme is carried onto a ghost without
|
|
12
|
+
* anyone remembering to list it here. Computed once and kept.
|
|
13
|
+
*/
|
|
14
|
+
export function themeTokenNames() {
|
|
15
|
+
cachedNames ??= [
|
|
16
|
+
...new Set(themeStyles.cssText.match(kTokenPattern) ?? [])
|
|
17
|
+
];
|
|
18
|
+
return cachedNames;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Copies the resolved theme onto an element standing outside every scope host.
|
|
22
|
+
*
|
|
23
|
+
* A ghost renders in `document.body`, where none of the tokens are declared,
|
|
24
|
+
* and would otherwise paint itself out of the usage-site fallbacks alone. One
|
|
25
|
+
* level of copying is enough because the computed value of a custom property
|
|
26
|
+
* already has its own `var()` references substituted. `color-scheme` comes
|
|
27
|
+
* along because the tokens are built on `light-dark()`, which resolves against
|
|
28
|
+
* the scheme in force rather than where it was declared.
|
|
29
|
+
*/
|
|
30
|
+
export function copyTheme(source, target) {
|
|
31
|
+
const computed = getComputedStyle(source);
|
|
32
|
+
for (const name of themeTokenNames()) {
|
|
33
|
+
const value = computed.getPropertyValue(name);
|
|
34
|
+
if (value !== "") {
|
|
35
|
+
target.style.setProperty(name, value);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
target.style.setProperty("color-scheme", computed.colorScheme);
|
|
39
|
+
target.style.setProperty("font-family", computed.fontFamily);
|
|
40
|
+
target.style.setProperty("font-size", computed.fontSize);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Clones a container down to the chrome a drag needs to show.
|
|
44
|
+
*
|
|
45
|
+
* The clone is a real element: once connected it renders its own shadow DOM,
|
|
46
|
+
* so the ghost matches the source without replicating any of its styling. It
|
|
47
|
+
* drops the light DOM, whose controls hold state a shallow clone cannot carry
|
|
48
|
+
* and whose contents are not what the gesture is about. Storage is swapped for
|
|
49
|
+
* a scratch adapter because a container restores its open state on connect and
|
|
50
|
+
* would otherwise reopen itself a microtask after being built.
|
|
51
|
+
*
|
|
52
|
+
* The clone is squeezed to its header rather than folded shut. Folding would
|
|
53
|
+
* turn a chevron the other way and report a state the container being carried
|
|
54
|
+
* is not in; clipping leaves every control reading exactly as its source does.
|
|
55
|
+
*
|
|
56
|
+
* Callers reassign whatever the source held as an unreflected property, `label`
|
|
57
|
+
* and `title` above all, since only attributes survive a clone.
|
|
58
|
+
*/
|
|
59
|
+
export function headerGhost(source) {
|
|
60
|
+
const ghost = source.cloneNode(false);
|
|
61
|
+
Object.assign(ghost.style, {
|
|
62
|
+
height: `${source.headerRect().height}px`,
|
|
63
|
+
overflow: "hidden"
|
|
64
|
+
});
|
|
65
|
+
// A throwaway replica answers for nothing: leaving the identity on it would
|
|
66
|
+
// put a second element under the same key and id into the document, where
|
|
67
|
+
// "getElementById" and every key-based query would find it.
|
|
68
|
+
ghost.removeAttribute("key");
|
|
69
|
+
ghost.removeAttribute("id");
|
|
70
|
+
// The source dims itself in place. A ghost that did the same would read as a
|
|
71
|
+
// second dropped element rather than the one being carried.
|
|
72
|
+
ghost.removeAttribute("dragging");
|
|
73
|
+
ghost.storage = new MemoryStorageAdapter();
|
|
74
|
+
ghost.inert = true;
|
|
75
|
+
return ghost;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=dragGhost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dragGhost.js","sourceRoot":"","sources":["../../../src/interaction/drag/dragGhost.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,YAAY;AACZ,MAAM,aAAa,GAAG,6BAA6B,CAAC;AAWpD,IAAI,WAAW,GAA6B,IAAI,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,WAAW,KAAK;QACd,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3D,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CACvB,MAAmB,EACnB,MAAmB;IAEnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,cAAc,EACd,QAAQ,CAAC,WAAW,CACrB,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,aAAa,EACb,QAAQ,CAAC,UAAU,CACpB,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,WAAW,EACX,QAAQ,CAAC,QAAQ,CAClB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CACzB,MAAS;IAET,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAM,CAAC;IAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,IAAI;QACzC,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,4EAA4E;IAC5E,0EAA0E;IAC1E,4DAA4D;IAC5D,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5B,6EAA6E;IAC7E,4DAA4D;IAC5D,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAClC,KAAK,CAAC,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAEnB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Rect } from "../../geometry/Rect.ts";
|
|
2
|
+
export interface DragOverlayOptions {
|
|
3
|
+
accent: string;
|
|
4
|
+
label: string;
|
|
5
|
+
/** Trails the cursor with a label chip. */
|
|
6
|
+
ghost?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Carried in place of the label chip, normally a header-only clone of the
|
|
9
|
+
* dragged container. Styled by the overlay only where it has to be: position,
|
|
10
|
+
* width and lift. Everything it paints is its own.
|
|
11
|
+
*/
|
|
12
|
+
element?: HTMLElement | null;
|
|
13
|
+
/**
|
|
14
|
+
* Element to read the theme from, normally the drag source. Without one the
|
|
15
|
+
* overlay declares no tokens and `element` falls back to its usage-site
|
|
16
|
+
* defaults.
|
|
17
|
+
*/
|
|
18
|
+
scope?: HTMLElement;
|
|
19
|
+
/** Ghost width, normally the source rect. The chip also uses `height`. */
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
}
|
|
23
|
+
export interface DragOverlay {
|
|
24
|
+
/** Paints the bands that arm a container while a drag is running. */
|
|
25
|
+
showZones(zones: readonly Rect[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Raises the zone the pointer has armed, by index into the last `showZones`,
|
|
28
|
+
* or lowers them all for `null`.
|
|
29
|
+
*/
|
|
30
|
+
armZone(index: number | null): void;
|
|
31
|
+
showInsertion(rect: Rect): void;
|
|
32
|
+
hideInsertion(): void;
|
|
33
|
+
moveGhost(x: number, y: number): void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates the document-level visuals for a pane or folder drag.
|
|
38
|
+
*
|
|
39
|
+
* Lives in `document.body` and therefore outside any theme scope host. The
|
|
40
|
+
* bands and the insertion line take colours already resolved by the caller;
|
|
41
|
+
* `scope` is what lets a cloned `element` resolve the rest for itself.
|
|
42
|
+
*/
|
|
43
|
+
export declare function createDragOverlay(options: DragOverlayOptions): DragOverlay;
|
|
44
|
+
//# sourceMappingURL=dragOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dragOverlay.d.ts","sourceRoot":"","sources":["../../../src/interaction/drag/dragOverlay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AA8CnD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,SAAS,CACP,KAAK,EAAE,SAAS,IAAI,EAAE,GACrB,IAAI,CAAC;IACR;;;OAGG;IACH,OAAO,CACL,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI,CAAC;IACR,aAAa,CACX,IAAI,EAAE,IAAI,GACT,IAAI,CAAC;IACR,aAAa,IAAI,IAAI,CAAC;IACtB,SAAS,CACP,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,IAAI,CAAC;IACR,OAAO,IAAI,IAAI,CAAC;CACjB;AA+BD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,WAAW,CAuHb"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// Import Internal Dependencies
|
|
2
|
+
import { copyTheme } from "./dragGhost.js";
|
|
3
|
+
// CONSTANTS
|
|
4
|
+
const kOverlayClass = "jolly-drag-overlay";
|
|
5
|
+
const kInsertionClass = "jolly-drag-insertion";
|
|
6
|
+
const kGhostClass = "jolly-drag-ghost";
|
|
7
|
+
const kZoneClass = "jolly-drag-zone";
|
|
8
|
+
const kArmedClass = "jolly-drag-zone-armed";
|
|
9
|
+
const kTopLayer = "2147483646";
|
|
10
|
+
const kZoneFade = 120;
|
|
11
|
+
/*
|
|
12
|
+
* A zone is a wash and nothing else: no border, no radius. It covers a whole
|
|
13
|
+
* dock, and an outline around something that large reads as a box drawn over
|
|
14
|
+
* the layout rather than as the layout offering to take something.
|
|
15
|
+
*
|
|
16
|
+
* The wash is the accent, which is the colour a dock already tints itself with
|
|
17
|
+
* when it is being resized, but at a fainter stop: a zone covers a whole dock
|
|
18
|
+
* rather than a handle. The armed zone is the same wash one step up, which is
|
|
19
|
+
* the whole of the difference between a dock on offer and the one about to
|
|
20
|
+
* take the drop.
|
|
21
|
+
*/
|
|
22
|
+
const kIdleZone = {
|
|
23
|
+
background: "var(--jolly-dock-zone-bg, rgb(47 111 216 / 0.06))"
|
|
24
|
+
};
|
|
25
|
+
const kArmedZone = {
|
|
26
|
+
background: "var(--jolly-dock-zone-bg-armed, rgb(47 111 216 / 0.1))"
|
|
27
|
+
};
|
|
28
|
+
/*
|
|
29
|
+
* The insertion line is neutral for the same reason the zones are: it lands as
|
|
30
|
+
* often on an accent-filled pane header as on a plain row, and an accent line
|
|
31
|
+
* on accent chrome is no line at all. Muted ink rather than full ink keeps it
|
|
32
|
+
* from reading as a hard rule ruled through the layout, and the ring in the
|
|
33
|
+
* surface behind it is what carries it over any fill it happens to cross.
|
|
34
|
+
*/
|
|
35
|
+
const kInsertion = {
|
|
36
|
+
background: "var(--jolly-text-muted, rgb(90 98 112))",
|
|
37
|
+
borderRadius: "999px",
|
|
38
|
+
boxShadow: [
|
|
39
|
+
"0 0 0 1px var(--jolly-surface, rgb(255 255 255 / 0.9))",
|
|
40
|
+
"0 1px 4px rgb(0 0 0 / 0.28)"
|
|
41
|
+
].join(", ")
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Builds the fallback ghost, for a caller that supplies no element of its own.
|
|
45
|
+
*
|
|
46
|
+
* A flat accent block with the label on it: enough to show that something is
|
|
47
|
+
* being carried, and no imitation of any particular container.
|
|
48
|
+
*/
|
|
49
|
+
function labelChip(options) {
|
|
50
|
+
const chip = document.createElement("div");
|
|
51
|
+
chip.textContent = options.label;
|
|
52
|
+
Object.assign(chip.style, {
|
|
53
|
+
display: "flex",
|
|
54
|
+
alignItems: "center",
|
|
55
|
+
height: `${options.height}px`,
|
|
56
|
+
padding: "0 8px",
|
|
57
|
+
border: `1px solid ${options.accent}`,
|
|
58
|
+
borderRadius: "3px",
|
|
59
|
+
background: options.accent,
|
|
60
|
+
color: "white",
|
|
61
|
+
font: "inherit",
|
|
62
|
+
letterSpacing: "0.08em",
|
|
63
|
+
overflow: "hidden",
|
|
64
|
+
whiteSpace: "nowrap"
|
|
65
|
+
});
|
|
66
|
+
return chip;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Creates the document-level visuals for a pane or folder drag.
|
|
70
|
+
*
|
|
71
|
+
* Lives in `document.body` and therefore outside any theme scope host. The
|
|
72
|
+
* bands and the insertion line take colours already resolved by the caller;
|
|
73
|
+
* `scope` is what lets a cloned `element` resolve the rest for itself.
|
|
74
|
+
*/
|
|
75
|
+
export function createDragOverlay(options) {
|
|
76
|
+
const root = document.createElement("div");
|
|
77
|
+
root.className = kOverlayClass;
|
|
78
|
+
Object.assign(root.style, {
|
|
79
|
+
position: "fixed",
|
|
80
|
+
inset: "0",
|
|
81
|
+
pointerEvents: "none",
|
|
82
|
+
zIndex: kTopLayer
|
|
83
|
+
});
|
|
84
|
+
if (options.scope !== undefined) {
|
|
85
|
+
copyTheme(options.scope, root);
|
|
86
|
+
}
|
|
87
|
+
const insertion = document.createElement("div");
|
|
88
|
+
insertion.className = kInsertionClass;
|
|
89
|
+
Object.assign(insertion.style, {
|
|
90
|
+
position: "fixed",
|
|
91
|
+
display: "none",
|
|
92
|
+
...kInsertion
|
|
93
|
+
});
|
|
94
|
+
const ghost = options.element ?? labelChip(options);
|
|
95
|
+
ghost.classList.add(kGhostClass);
|
|
96
|
+
Object.assign(ghost.style, {
|
|
97
|
+
position: "fixed",
|
|
98
|
+
boxSizing: "border-box",
|
|
99
|
+
width: `${options.width}px`,
|
|
100
|
+
opacity: "0.85",
|
|
101
|
+
pointerEvents: "none"
|
|
102
|
+
});
|
|
103
|
+
if (options.ghost === false) {
|
|
104
|
+
ghost.style.display = "none";
|
|
105
|
+
}
|
|
106
|
+
else if (options.element !== undefined &&
|
|
107
|
+
options.element !== null) {
|
|
108
|
+
// Only a replica needs lifting off the page: the chip is already a solid
|
|
109
|
+
// block of accent, and reads as carried without one.
|
|
110
|
+
ghost.style.boxShadow = "var(--jolly-shadow-floating, 0 4px 16px rgb(0 0 0 / 0.3))";
|
|
111
|
+
}
|
|
112
|
+
root.append(insertion, ghost);
|
|
113
|
+
document.body.append(root);
|
|
114
|
+
const bands = [];
|
|
115
|
+
return {
|
|
116
|
+
showZones(zones) {
|
|
117
|
+
for (const band of bands) {
|
|
118
|
+
band.remove();
|
|
119
|
+
}
|
|
120
|
+
bands.length = 0;
|
|
121
|
+
for (const zone of zones) {
|
|
122
|
+
const band = document.createElement("div");
|
|
123
|
+
band.className = kZoneClass;
|
|
124
|
+
Object.assign(band.style, {
|
|
125
|
+
position: "fixed",
|
|
126
|
+
left: `${zone.x}px`,
|
|
127
|
+
top: `${zone.y}px`,
|
|
128
|
+
width: `${zone.width}px`,
|
|
129
|
+
height: `${zone.height}px`,
|
|
130
|
+
transition: `background-color ${kZoneFade}ms var(--jolly-easing, ease)`,
|
|
131
|
+
...kIdleZone
|
|
132
|
+
});
|
|
133
|
+
// Zones appear the instant a drag begins, all of them at once. Fading
|
|
134
|
+
// them in is what keeps that from reading as the layout flinching.
|
|
135
|
+
band.animate([{ opacity: 0 }, { opacity: 1 }], { duration: kZoneFade, easing: "ease-out" });
|
|
136
|
+
bands.push(band);
|
|
137
|
+
root.prepend(band);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
armZone(index) {
|
|
141
|
+
for (let position = 0; position < bands.length; position++) {
|
|
142
|
+
const band = bands[position];
|
|
143
|
+
const armed = position === index;
|
|
144
|
+
band.classList.toggle(kArmedClass, armed);
|
|
145
|
+
Object.assign(band.style, armed ? kArmedZone : kIdleZone);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
showInsertion(rect) {
|
|
149
|
+
Object.assign(insertion.style, {
|
|
150
|
+
display: "block",
|
|
151
|
+
left: `${rect.x}px`,
|
|
152
|
+
top: `${rect.y}px`,
|
|
153
|
+
width: `${rect.width}px`,
|
|
154
|
+
height: `${rect.height}px`
|
|
155
|
+
});
|
|
156
|
+
},
|
|
157
|
+
hideInsertion() {
|
|
158
|
+
insertion.style.display = "none";
|
|
159
|
+
},
|
|
160
|
+
moveGhost(x, y) {
|
|
161
|
+
ghost.style.left = `${x}px`;
|
|
162
|
+
ghost.style.top = `${y}px`;
|
|
163
|
+
},
|
|
164
|
+
destroy() {
|
|
165
|
+
root.remove();
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=dragOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dragOverlay.js","sourceRoot":"","sources":["../../../src/interaction/drag/dragOverlay.ts"],"names":[],"mappings":"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"}
|