Commit graph

401 commits

Author SHA1 Message Date
Elliot
cfbb6ab043 multi-curve curve popover editing (#176)
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-05-25 21:28:17 +02:00
Andrew Prifer
0690a85ae2
UI improvements/sidebar pinning (#175)
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-05-25 20:42:01 +02:00
Aria
ec18687a98
Re-do bundling, compat tests, and extension API (#174) 2022-05-25 00:37:18 +02:00
Cole Lawrence
e28a084dbb fix(studio): Duplicate keys in NamespaceTree 2022-05-20 12:02:38 -04:00
Cole Lawrence
9cf5c38aee
fix: useDrag now properly updates isDragging for React cycle (#173) 2022-05-20 17:36:25 +02:00
Cole Lawrence
bfc877ca8f style(OutlinePanel): remove hover highlight from .not-selectable header 2022-05-20 07:46:17 -04:00
Cole Lawrence
6b18054750 Add namespacing to Outline Panel 2022-05-20 07:46:17 -04:00
vezwork
0fa9608587 docs: add comment about topSoFar 2022-05-20 07:37:35 -04:00
vezwork
b84f2eb106 Refactor collapsing to be calculated in tree.
Co-authored-by: Fülöp <fulopkovacs@users.noreply.github.com>
2022-05-20 07:37:35 -04:00
Cole Lawrence
bc5e687250 docs: slashPaths normalizeSlashedPath 2022-05-20 07:37:35 -04:00
Cole Lawrence
f6e408f610 feature: Add sequence editor row collapsing
* Add hover state for chevron
 * Add StudioSheetItemKey id for use with sequenceEditorCollapsableItems

Co-authored-by: Elliot <key.draw@gmail.com>
2022-05-20 07:37:35 -04:00
Cole Lawrence
6fd718a6e7 refactor: Remove unused styled components in PropWithChildrenRow 2022-05-20 07:37:35 -04:00
Cole Lawrence
79f2424a8a refactor for useTooltip remove unnecessary as $IntentionalAny 2022-05-20 07:37:35 -04:00
Cole Lawrence
9400aa12a1 refactor: Assorted VFCs, dead code removal, use Nominals in ahistoric 2022-05-20 07:37:35 -04:00
Cole Lawrence
84daaaf94a dev: Add configurable ITheatreLogger
Addresses the lack of options we currently have for surfacing issues in
our application via debugging tools. Prioritizes performance and
usability (visually) over clarity in some places that could have been
object mapped.

A logger with three separate audiences:

 * `internal`: Logs for developers maintaining Theatre.js
 * `dev`: Logs for developers using Theatre.js
 * `public`: Logs for everyone

This logger supports:
 * multiple logging levels (error, warn, debug, trace),
 * multiple audience levels (internal, dev, public),
 * multiple categories (general, todo, troubleshooting)
 * named and keyed loggers (e.g.
   `rootLogger.named("Project", project.id)`)
 * console styling with deterministic coloring
 * console devtool maintains accurate sourcemap link to logging origin
   (e.g. `coreExports.ts:71` as opposed to `logger.ts:45` or whatever)
 * swappable logger
 * customizable filtering
 * Accepts lazy `args`: `args: () => object` via
  `logger.lazy.<level>("message", () => <expensive computation>)` (e.g.
  `logger.lazy.debugDev("Loaded project state", () => ({ save: bigProject.exportToSaveable() }))`)
2022-05-19 16:34:34 -04:00
Cole Lawrence
5d61060828 fix(useDrag): Refactor to separate detection
* Remove unecessary `modeRef`
 * Use "Domain modeling" principles to enforce state
2022-05-19 13:15:05 -04:00
vezwork
1f7206a66f Replace few usages of useRefAndState with useState 2022-05-19 13:15:05 -04:00
vezwork
c5ccb8c28d Add shouldPointerLock to useDrag, BasicNumberInput 2022-05-19 13:15:05 -04:00
vezwork
b547282d95 Remove DraggableArea in favor of useDrag 2022-05-19 13:15:05 -04:00
Don McCurdy
386a8fafac
theatre/r3f: Allow physical lighting in snapshot viewport (#114)
Co-authored-by: Andrew Prifer <andrew.prifer@gmail.com>
2022-05-19 12:48:59 +02:00
Fülöp
3d10325873
Add tests for Theatre.js + popular setups in the ecosystem (#165)
This implements some basic infra for testing Theatre.js with popular setups such as npm/yarn/pnpm, webpack/vite/parcel, js/ts, etc.

So far, the only existing setup has been with create-react-app. Will add more in the future.

Co-authored-by: Fülöp <fulopkovacs@users.noreply.github.com>
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-05-17 20:53:01 +02:00
Cole Lawrence
2324218453
Implement inline keyframe editing (#135)
* refactor: improve idents near DeterminePropEditor

* fix: Allow `MouseEvent` for `usePopover` `OpenFn`
 * Anticipate to be used with `useDrag` (which is written using `MouseEvent`s)

* refactor: rename local variable depth to visualIndentation

* fix: Hide out of bounds LengthIndicator

* pointer: Fix type errors with `getPointerParts` using generics

 * Fix param type for `getPointerMeta`

* Inline keyframe editor + popover nesting
 * Complete inline editor,
 * add reason for close popover, &
 * enable popover nesting
 * enable inline keyframe editing with splitting of DeterminePropEditor
 * usePopover has PopoverAutoCloseLock helper

Co-authored-by: Elliot <key.draw@gmail.com>
Co-authored-by: Aria <aria.minaei@gmail.com>

* prop editor: Reorganize prop-editors & improve documentation

Co-authored-by: Cole Lawrence <cole@colelawrence.com>
Co-authored-by: Elliot <key.draw@gmail.com>

Co-authored-by: Elliot <key.draw@gmail.com>
Co-authored-by: Aria <aria.minaei@gmail.com>
2022-05-16 14:14:47 +02:00
Cole Lawrence
e140bb6fc4
docs: Minor adjustments to Curve docs (#160) 2022-05-16 07:53:56 -04:00
Elliot
bd110ed01a
Add input selection on curve change (#158) 2022-05-13 13:18:00 -04:00
Elliot
cd9d03076b
Fix curveEditorPopover overwriting existing curve (#151)
* Fix curveEditorPopover overwriting existing curve

* Fix existing curve overwrite, other reactivity
2022-05-10 13:14:32 -04:00
Aria Minaei
417233a7c6 Fix the color inconsistency that shows up when dragging the focus range 2022-05-10 18:56:43 +02:00
Aria Minaei
7ce3111e07 Fix the cursor for the middle-button drag gesture 2022-05-10 18:29:03 +02:00
Aria Minaei
202b61c48c Simplify useDrag()'s API and implement middle-button dragging in SequenceEditor 2022-05-10 15:31:16 +02:00
Aria Minaei
e12d495f29 Fix the bug where small wheel events would leak to cause unwanted scroll 2022-05-10 15:27:43 +02:00
Aria Minaei
ab8361d24a Document VerticalScrollContainer 2022-05-10 15:26:28 +02:00
Cole Lawrence
8c271d187d marker: Optimize MarkerVisualDot svg
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-05-09 09:23:53 -04:00
vezwork
4281092ffc Fix MarkerDot non-visible when out of rightDims
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
2022-05-09 09:23:53 -04:00
vezwork
d4060730d7 Refactor data-pos common code 2022-05-09 09:23:53 -04:00
vezwork
030b6d2804 Initial marker features
- Add comments about cursor lock, framestamp lock
- Add PointableSet, Mark Ids, dataverse usage fix
- Add marker dragging, fix PointerCapturing

Co-authored-by: Cole Lawrence <cole@colelawrence.com>
Co-authored-by: Aria <aria.minaei@gmail.com>
2022-05-09 09:23:53 -04:00
Aria Minaei
a38201a835 Fix the visual glitches with FocusRangeCurtains 2022-05-05 15:17:35 +02:00
Aria Minaei
c6a7c40339 Fix the type errors from the rebase 2022-05-05 14:21:46 +02:00
Cole Lawrence
1387ce62d2 refactor: Add working Nominal types, clarify identifiers
* Use more Nominal types to help with internal code id usage consistency
 * Broke apart StudioHistoricState type

Co-authored-by: Aria <aria.minaei@gmail.com>
2022-05-05 07:58:44 -04:00
Cole Lawrence
9d9fc1680e refactor: add pointer types for prop editors 2022-05-05 07:58:44 -04:00
Cole Lawrence
91794f550d refactor/docs: Minor identifier tweaks for RightClick/ContextMenu 2022-05-05 07:58:40 -04:00
Elliot
fceb1eb60a
feature/single curve editor (#122)
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
Co-authored-by: Andrew Prifer <AndrewPrifer@users.noreply.github.com>
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-05-04 17:08:30 +02:00
Andrew Prifer
dceb3965d6
Make editable schema-based and add default schemas (#139)
* Make editable schema based and fix a couple UX issues

* Refactor the icons a bit

* Add support for points, lines, line segments, and line loops

* Adjust nudge multipliers

* Fix types

* Fix helpers not showing on hover in some cases
2022-05-04 16:43:44 +02:00
Aria Minaei
6caf8267c5 Bugfix: Ensure the focus range doesn't invert upon snapping 2022-05-03 12:42:53 +02:00
Aria
3ecc3dd012
QOL improvements to the FocusRange and SequenceEdito (#125) 2022-05-03 12:38:08 +02:00
Don McCurdy
dfd88c6b1e
Bump 'react-shadow' to v19.0.3 (#123) 2022-04-22 18:05:21 +02:00
Andrew Prifer
39da042edc
Fix various issues with the build system (#129)
* Fix react-icons breaking in CRA 5 for some reason

* Replace fuzzysort with fuzzy so we don't break Webpack

Webpack messes up esbuild’s internal modules if the inlined module is an AMD module. Check any new dep you add if it is an AMD module.

* Inline dataverse deps.

Mainly because the CJS build consuming the ESM lodash-es broke some bundlers.

* react-icons fix nr 2

* Stop eslint breaking in CRA 5

* Update r3f-cra example to CRA 5 and fix double-bundling react & co

* Fix r3f tree-shaking and switch to ESM only output

* Make r3f example shake studio and its extension in prod

* Examples have separate and wildly differing build setups so remove them from the pre-commit hook linting

* Update out-of-date yarn.lock
2022-04-21 22:03:51 +02:00
Aria Minaei
f2089302d5 Fix the horizontal misalignment bug in Firefox 2022-04-21 07:52:49 +02:00
Cole Lawrence
7c098c4655 Fix typo to permanentlySetValue 2022-04-20 11:32:22 -04:00
Cole Lawrence
0ccb9b2386 doc: Internals IShorthandProp 2022-04-20 11:25:41 -04:00
Cole Lawrence
ec287b9069 Rename useCursorLock useCssCursorLock + add docs 2022-04-20 11:25:08 -04:00
Cole Lawrence
9c3179b4b7 questions, cleaning, fix _sanitizeRgba undefined 2022-04-20 11:23:29 -04:00