Commit graph

526 commits

Author SHA1 Message Date
Andrew Prifer
455ac7736d
Fix default number nudge funcion (#328)
Fix default number nudge function
2022-10-26 19:26:19 +02:00
Andrew Prifer
43714fdf17
Notification improvements (#324) 2022-10-21 20:32:53 +00:00
Andrew Prifer
965d7085dc
Add runtime type checks to r3f (#323)
* Add better error/warning messages to r3f

* Fix notifications playground
2022-10-21 19:17:45 +00:00
Andrew Prifer
dee2361c95 Replace warnings with notifications
Also rewrote all warnings to be more helpful and readable.
2022-10-21 18:42:03 +02:00
Andrew Prifer
62bc12ab51
Create a notification system that can display notifications in Theatre.js' Studio (#320)
* Implement an internal library for studio notifications

* Improve design a little

* Document code

* Change relative import to absolute one

* Fix tiny styling issue

* Add notifications playground

* Add notifications empty state and keep notifications buttons always visible

Also fix a bug related to not clearing the type and uniqueness checkers.

* Simplify notifications playground

* Treat window as optional in case it runs in server code
2022-10-21 15:51:13 +02:00
Aria Minaei
151fcce298 Implement Sheet.deleteObject()
Co-authored-by: Elliot <key.draw@gmail.com>
2022-10-18 11:43:54 +02:00
Aria Minaei
d260f74c06 WIP - Implement dynamic prop types
TODO: Tests
2022-10-18 11:43:54 +02:00
Andrew Prifer
29e036638b
Normalize theatre keys in r3f (#317)
Also remove a stray console log and make makeStoreKey make more sense.
2022-10-16 16:02:35 +00:00
Andrew Prifer
25cf1d7fe8
Apply common sense constraints to window drag and resize (#309)
* Apply common sense constraints to window drag and resize

* Also apply the constraints to FocusRangeZone's panelMoveGestureHandlers
2022-10-07 15:03:05 +00:00
Aria Minaei
d0fdd823eb Log instead of warn when studio is initialized already
This should make it a little cleaner when `studio.initialize()` is called in a hot-reloaded module.
2022-09-27 23:32:31 +02:00
Aria Minaei
27ef3cc1c9 Implement playDynamicRange in audio sequences
Fixes #302
2022-09-27 23:32:01 +02:00
Aria Minaei
c4862ee6ef Allow re-registering the exact same extension 2022-09-27 23:28:23 +02:00
Aria Minaei
5bb4fc9340 Show more helpful warnings in SSR mode 2022-09-27 23:28:23 +02:00
Aria Minaei
3c9481f1b7 Don't use persistent storage in ssr mode 2022-09-27 23:28:23 +02:00
Aria Minaei
87acdbe9ea 0.5.0 2022-09-17 18:54:11 +02:00
Aria Minaei
c97377d868 0.5.0-rc.4 2022-09-17 18:54:11 +02:00
Elliot
39eb528af4
Add Sheet aggregate track (#284)
* Add Sheet aggregate track

* Update aggregate track keyframe copy algorithm

* Fix keyframe value sanitization

* Fix aggregate selections to be properly undefined

* Fix TS errors

* Remove incorrect comment and improve var name
2022-09-14 16:46:59 +00:00
Andrew Prifer
743254a6c6
Fix popover behavior when popover is open and the trigger is clicked (#211)
* Fix popover behavior when open and clicking on trigger

* Remove console log

* Resolve merge conflicts

* Remove destructuring in favor of property access

* Extract usePopover return type into an interface

* Fix merge
2022-09-14 09:05:09 -04:00
Elliot
ce79d3cd95
Fix ui render call, improve error message (#294) 2022-09-14 12:11:42 +00:00
Elliot
735bd983a5
Fix/0.5-compatability-tests (#293)
* Working changes

* Fix window undefined bug by updating lib

* Fix TransformControlsImpl import

* Fix compatibility tests>simple debuggable examples
2022-09-13 15:37:39 -04:00
Elliot
dbe6a6176e
Fix issue window undefined error in bundled studio (#280)
* Fix issue window undefined error in bundled studio

* Fix Studio.ts UI import
2022-08-19 14:25:22 +00:00
Elliot
898c3b7a48
Add alt key precision nudging to number input (#282)
* Add alt key precision nudging to number input

* Change shift + scrub scrub modifier to 1/10
2022-08-19 14:19:22 +00:00
Elliot
a871aa628f Revert "Handle requestPointerLock error cases in iframes P-199 (#272)"
This reverts commit 2ef9d5e346.
2022-08-17 16:14:36 -04:00
vezwork
766c55f9e7 Fix dopesheet-left prop labels 2022-08-11 14:40:09 -04:00
vezwork
0875b785ce Fix indentation in aggregate editor popover
Co-authored-by: Fülöp <fulopkovacs@users.noreply.github.com>
2022-08-11 14:15:57 -04:00
vezwork
047f01bb45 Change DeterminePropEditor... to take an array
- Add autoFocus to prop inputs
2022-08-11 14:15:57 -04:00
vezwork
38e6a4ba36 WIP aggregate editing popover working but !clean 2022-08-11 14:15:57 -04:00
Cole Lawrence
069902e054 Make derivation keepHot when using obj.value P-217
See https://linear.app/theatre/issue/P-217/if-objvalue-is-read-make-sure-i
2022-08-05 10:30:13 -04:00
Cole Lawrence
ea3e7434c6 Fix e2e visual regression tests by always showing Updates badge in CI
- ensure that window.__IS_VISUAL_REGRESSION_TESTING is true when CI=1
2022-08-03 11:38:44 -04:00
Cole Lawrence
74b338ac17 refactor: Remove unecessary data-header & ?? noop for event listener 2022-08-03 11:38:44 -04:00
Cole Lawrence
704f74a2c5 typo: Remove unused keyframe in destructure 2022-08-03 11:38:44 -04:00
Cole Lawrence
a0994051d6 GraphEditorToggle: Remove unecessary sheet access 2022-08-03 11:38:44 -04:00
Cole Lawrence
63056c5a58 fix validate path call (warning) & playground dom: Fix namespace warning 2022-08-03 11:38:44 -04:00
Cole Lawrence
efc33d4989 Remove unused className on OutlinePanel 2022-08-03 11:38:44 -04:00
Cole Lawrence
4de899b2ae Remove dead code, simply inset 2022-08-03 11:38:44 -04:00
Cole Lawrence
a4b24313a0 fix: deriver props type checking 2022-08-03 11:38:44 -04:00
Cole Lawrence
2ef9d5e346
Handle requestPointerLock error cases in iframes P-199 (#272)
See https://linear.app/theatre/issue/P-199/dont-use-pointer-lock-when-in-an-iframe
2022-08-03 13:55:09 +00:00
vezwork
1459163420 Fix compound props showing wrong control indicator 2022-07-26 10:22:08 -04:00
vezwork
0ed466f404 Hide toolbar divider when no extensions are there 2022-07-26 08:56:42 -04:00
Cole Lawrence
0b98750063 docs: Use http for localhost example audio 2022-07-25 12:12:46 -04:00
Cole Lawrence
6d550d850d fix(studio): capture [space] key after scrubbing fixes P-177
See https://linear.app/theatre/issue/P-177/beginners-scrubbing-the-playhead-from-within-an-iframe-then-[space]
2022-07-25 12:01:26 -04:00
Cole Lawrence
01729bf45e fix(studio): styles & placement for MoreMenu fixes P-178
See https://linear.app/theatre/issue/P-178/bug-broken-updater-ui-in-simple-html-page
2022-07-25 12:01:26 -04:00
Cole Lawrence
984a61347f Use "Theatre.js" for name consistency
Co-authored-by: Fülöp <fulopkovacs@users.noreply.github.com>
2022-07-25 12:01:26 -04:00
Cole Lawrence
217f191981 Export better named files to reduce confusion of state.json 2022-07-25 12:01:26 -04:00
Cole Lawrence
0b09751ada docs: Use US English spelling of "behavior" 2022-07-25 12:01:26 -04:00
Cole Lawrence
ca65280b93 Fix local imports of same module for @theatre/core 2022-07-25 12:01:26 -04:00
Cole Lawrence
00265471ba
Fix namespace and object with same name ordering in OutlinePanel (#262)
Fix P-206 namespace and object name rendered in wrong order
2022-07-21 18:04:00 +00:00
Aria Minaei
a8176a36f7 0.5.0-rc.3 2022-07-12 18:37:04 +02:00
Cole Lawrence
24ee1b3597 Fix typos in Project.ts 2022-07-12 11:11:19 -04:00
Aria Minaei
707a27462d Perf: Make <AggregateKeyframeTrack> render its children with memoized props 2022-07-12 13:34:29 +02:00
Aria Minaei
86dd2cbf86 Memoize comopnents of deriver() 2022-07-12 13:34:29 +02:00
Aria Minaei
558882ff0a Perf: memoize AggregateKeyframeEditor 2022-07-12 13:34:29 +02:00
Aria Minaei
b37ccb1e4e Perf: first-pass at reducing number of re-renders in <NextPrevKeyframeCursors> 2022-07-12 13:34:29 +02:00
Aria Minaei
f82c9d1155 Perf: Avoid re-rendering keyframes when snap targets change 2022-07-12 13:34:29 +02:00
Aria Minaei
8f08499fb6 Perf: Memoize SingleKeyframeEditor 2022-07-12 13:34:29 +02:00
Aria Minaei
10f21224f4 Perf: Memoize useEditingToolsForSimpleProp() as it is used in several place with the same arguments 2022-07-12 13:34:29 +02:00
Aria Minaei
bac27777c4 Perf-gain: memoize the sequence editor panel's dims to avoid unnecessary re-renders 2022-07-12 13:34:29 +02:00
Aria Minaei
8f1d26536b Sanitize sequence's length and subUnitsPerUnit
Possibly fixes P-173
2022-07-08 14:08:57 +02:00
Aria Minaei
ac9345ddbd Fix for OutlinePanel not being scrollable sometimes
Fixes P-179
2022-07-08 14:08:57 +02:00
Aria Minaei
7f17f985ee Fix PlayheadPositionPopover not accepting '0' as input 2022-07-08 14:08:57 +02:00
Aria Minaei
0631d02d31 0.5.0-rc.2 2022-07-07 22:34:51 +02:00
Aria Minaei
0e5b27d76d Add an extra test case to removePathFromObject() 2022-07-07 20:32:55 +02:00
Aria Minaei
ebf2a19900 Initialize the studio only once in tests 2022-07-07 20:32:55 +02:00
Aria Minaei
13d612f4b7 Add a helpful warning on auto-discarded scrubs 2022-07-07 20:32:55 +02:00
Aria
a9910fecba
Unsuppress useful warnings in core. (#248)
This also temporarily removes `coreLogger`'s config from the public API One reason is that we don't have many logs that could benefit from suppressing (see diff) so the experimental API would not be useful to the user yet.

Also, the default config was suppressing useful warnings. Those warnings _would_ have been dead-code-eliminated in production mode anyway, so having a separate config to suppress them in dev mode makes it confusing.

Fixes P-171
2022-07-07 10:27:21 +02:00
Aria Minaei
88df1ef004 Show a helpful warning if the user hadn't called studio.initialize() in a timely manner 2022-07-06 16:13:29 +02:00
Fülöp Kovács
fb02b297f1 Enable the preview of easing presets when the curveEditorPopover opens 2022-07-01 14:15:25 +02:00
vezwork
2d3466ebfe Fix react fragments not having a key.
Co-authored-by: Or Fleisher <fleisher.or@gmail.com>
2022-06-28 11:14:41 -04:00
Elliot
006121da91
Fix extension buttons spacing, add extension example (#229)
* Fix extension buttons spacing & styles
* Refactor extension button styles
* Clean up extension prism
2022-06-26 16:00:59 +00:00
Cole Lawrence
39d897cd83 fix(SequenceEditor): horizontal scroll with shift in macOS Firefox 2022-06-24 09:52:56 -04:00
Cole Lawrence
977ddb6574 doc: Light doc comment for isPropConfigComposite 2022-06-24 09:52:56 -04:00
Cole Lawrence
bbf7ee9244 style: Ensure consistent font-sizes for DetailPanel inputs 2022-06-24 09:52:56 -04:00
Cole Lawrence
28bd52d9e9 ux: color hex default to removeAlphaIfOpaque 2022-06-24 09:52:56 -04:00
Cole Lawrence
df692427ca dev: Build playground files much faster and add watch 2022-06-16 17:10:43 -04:00
Elliot
2c2e421382
Fix outline panel blocking clicks incorrectly (#223)
Co-authored-by: Fülöp Kovács <kovacs.fulop@gmail.com>
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
2022-06-16 16:14:51 +02:00
Cole Lawrence
4e4b8f83e9
Disable usePresence flags by default (#226) 2022-06-16 11:59:09 +00:00
Cole Lawrence
e8c8168f0b
UX: Add "PresenceFlag" item indicators (usePresence) (#184)
* feat/dev: Add usePresence and enable for keyframes & keyframe cursors
 * Enable hovered styles for AggregateKeyframeDot
 * Enable hovered styles for graph editor keyframes
2022-06-15 11:36:57 +00:00
Cole Lawrence
d4f572a744 feat: Add inline keyframe editing in graph editor 2022-06-13 10:03:09 -04:00
Andrew Prifer
c303748ca9 Fix transparencies in non-backdrop-blur browsers 2022-06-13 15:39:26 +02:00
Aria Minaei
1b36e8f6f9 Also highlight the hovered props in the sequence editor panel 2022-06-13 15:07:22 +02:00
Aria Minaei
4d92ad1932 Also highlight sheet objects 2022-06-13 15:07:22 +02:00
Aria Minaei
58bf030aaa Remove unused usePrism() 2022-06-13 15:07:22 +02:00
Aria Minaei
dc7e5a1128 Use text color rather than bg to highlight hovered props 2022-06-13 15:07:22 +02:00
Cole Lawrence
1b41f1afca feature: Add selecting a sheet object row via sequence editor 2022-06-13 15:07:22 +02:00
Cole Lawrence
0d9d78a032 docs: Remove useless/irrelevant comment 2022-06-13 15:07:22 +02:00
Cole Lawrence
ebf9b0e1cd dev: Remove unnecessary "files" field in tsconfig which screws with "Move to new file" refactor 2022-06-13 15:07:22 +02:00
Cole Lawrence
40d2c7fe04 docs: absoluteDims 2022-06-13 15:07:22 +02:00
Aria Minaei
c74aa1b930 Show hovered prop from sequence editor in details panel
* Remove an un-needed prism

Co-authored-by: Cole Lawrence <cole@colelawrence.com>
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-06-13 15:07:22 +02:00
Andrew Prifer
8ef99aef1b Revert "Fix popover behavior when open and clicking on trigger"
This reverts commit 935ac36467.
2022-06-10 21:27:02 +02:00
Andrew Prifer
935ac36467 Fix popover behavior when open and clicking on trigger 2022-06-10 21:26:09 +02:00
Andrew Prifer
f2673b91fe
Fix useFrameStampPositionRef (#209) 2022-06-10 17:56:35 +02:00
Cole Lawrence
f1844952ea
Add initial tools for managing derivations and React compatibility (#202)
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
Co-authored-by: Elliot <key.draw@gmail.com>
Co-authored-by: Aria <aria.minaei@gmail.com>
2022-06-09 19:12:40 +02:00
Elliot
bebf281517
Fix process.env.version in browser-bundles (#206)
* Fix `process.env.version` in browser-bundles

- also fix tsdoc warns in mjs files

Co-authored-by: Fülöp Kovács <kovacs.fulop@gmail.com>
Co-authored-by: Cole Lawrence <cole@colelawrence.com>

* Change to `process.env.THEATRE_VERSION`

Co-authored-by: Fülöp Kovács <kovacs.fulop@gmail.com>
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
2022-06-09 19:05:25 +02:00
Fülöp Kovács
d7fc381137 Make the keyframes dots smaller on hover 2022-06-08 19:12:05 +02:00
Fülöp Kovács
9b3031f0cc Make the dot bigger when the inline editor popover is open 2022-06-08 19:12:05 +02:00
Fülöp Kovács
6c943e176d Use a different color when a keyframe is selected AND the inline editor popup is open 2022-06-08 19:12:05 +02:00
Fülöp Kovács
5ce01e8350 Add initial solution for highlighting the keyframe that is being edited in the inline editor popup 2022-06-08 19:12:05 +02:00
Andrew Prifer
a90aee96f5
Fix aggregate keyframe dragging stopping in an edge case when the key for the drag element changes (#189)
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
2022-06-08 18:57:58 +02:00
Fülöp Kovács
6b0b9f0ba6 Fix styling inconsistencies 2022-06-08 14:49:47 +02:00
Fülöp Kovács
54bf1c4567 Fix a link in a docstring 2022-06-08 14:49:47 +02:00