Aria Minaei
1e1a5f5831
More tests/docs for dataverse
2023-01-16 18:31:13 +01:00
Aria Minaei
155c84523a
Rename IdentityPrismProvider
=> PointerToPrismProvider
2023-01-16 17:25:44 +01:00
Aria Minaei
2b396a5295
0.6.0-dev.4
2023-01-16 13:53:56 +01:00
Aria Minaei
a0c7255157
Add more tests to dataverse
2023-01-15 22:04:27 +01:00
Aria Minaei
e3a9d7665a
Add test to pointers
2023-01-15 18:17:34 +01:00
Aria Minaei
ab77e09462
Add tests to Atom
2023-01-15 17:58:16 +01:00
Aria Minaei
9ec9bed80e
Fix the links in playground
2023-01-15 14:53:50 +01:00
Aria Minaei
415938212a
Add notes to dataverse's docs
2023-01-15 14:50:33 +01:00
Aria Minaei
3c68ed26ad
Remove Atom.set|getState()
2023-01-15 12:42:28 +01:00
Aria
d649858529
Feature: Custom RAFDrivers ( #374 )
...
Co-authored-by: Pete Feltham <dev@felthy.com>
Co-authored-by: Andrew Prifer <andrew.prifer@gmail.com>
2023-01-14 15:01:09 +01:00
Aria Minaei
41ce858c2b
Fully retire Box
2023-01-04 20:51:03 +01:00
Aria Minaei
ac9d8b4481
Replace Atom.setIn()
and Atom.reduceIn()
with the type-safe Atom.setByPointer()
and Atom.reduceByPointer()
2023-01-04 20:51:01 +01:00
Aria Minaei
5b6306bde9
Fix the lint warnings
2023-01-04 20:49:44 +01:00
Aria Minaei
c354a602a4
Remove Box
in favor of Atom
2023-01-04 20:49:44 +01:00
Aria Minaei
2bd1dc85a9
Remove `EventEmitter
2023-01-04 20:49:44 +01:00
Aria Minaei
867cf51acb
Remove Tappable
and Emitter
2023-01-04 20:49:44 +01:00
Aria Minaei
391958f5cf
Use EventEmitter
instead of Emitter
in Box
...
... so that we have one less dependency on `Tappable`
2023-01-04 20:49:44 +01:00
Aria Minaei
d2876a7c9a
Unify Derivation and Prism 13/13
2023-01-04 20:49:44 +01:00
Aria Minaei
b2116e9a5d
Unify Derivation and Prism 11/n
...
`useDerivation()` => `usePrismInstance()`
2023-01-04 20:49:44 +01:00
Aria Minaei
1236900ddf
Unify Derivation and Prism 10/n
2023-01-04 20:49:44 +01:00
Aria Minaei
3552f50613
Unify Derivation and Prism 9/n
2023-01-04 20:49:44 +01:00
Aria Minaei
27b9c96afd
Unify Derivation and Prism 8/n
2023-01-04 20:49:44 +01:00
Aria Minaei
acf34d393d
Unify Derivation and Prism 7/n
2023-01-04 20:49:44 +01:00
Aria Minaei
859cb40e0f
Unify Derivation and Prism 6/n
2023-01-04 20:49:44 +01:00
Aria Minaei
0a0c35a7b7
Unify Derivation and Prism 5/n
2023-01-04 20:49:44 +01:00
Aria Minaei
a38d96ec95
Unify Derivation and Prism 4/n
2023-01-04 20:49:43 +01:00
Aria Minaei
06808f99e9
Unify Derivation and Prism 3/n
2023-01-04 20:49:43 +01:00
Aria Minaei
bfba1d4879
Unify Derivation and Prism 2/n
2023-01-04 20:49:43 +01:00
Aria Minaei
12b3f477bc
Unify Derivation and Prism (1/n)
2023-01-04 20:49:43 +01:00
Aria Minaei
e9bbb0ef41
Remove PrismDerivation.map/flatMap()
2023-01-04 20:49:43 +01:00
Aria Minaei
a073984b2f
Mark add/removeDependent()
as internal
2023-01-04 20:49:43 +01:00
Aria Minaei
194de8d833
Simplify Derivation.onChange()
...
It no longer uses `DerivationEmitter`.
2023-01-04 20:49:43 +01:00
Aria Minaei
a24a149a52
Remove Derivation.tapImmediate()
...
This is now just an extra flag on `Derivation.onChange()`
2023-01-04 20:49:43 +01:00
Aria Minaei
f2bb24ef99
Change the signature of Derivation.changes()
to Derivation.onChange()
...
This way, we no longer expose the `Tappable` interface so we can remove it later.
2023-01-04 20:49:43 +01:00
Aria Minaei
f1cb8edc91
Simplify Derivation.onStale()
2023-01-04 20:49:43 +01:00
Aria Minaei
5c1aa1cd50
Remove Derivation.changesWithoutValues()
...
And replace it with `Derivation.onStale()`
2023-01-04 20:49:43 +01:00
Aria Minaei
9094e3041e
Remove AbstractDerivation
...
At this point, the only derivation that we have is `PrismDerivation`.
2023-01-04 20:49:43 +01:00
Aria Minaei
63228fd86a
Simplify prism.state()
2023-01-04 20:49:43 +01:00
Aria Minaei
ee68112867
Implement prism.source()
2023-01-04 20:49:43 +01:00
Aria Minaei
b117ee0aff
Retire DerivationFromSource
(1/2)
...
This is supposed to break the build. In the next commit, I'll implement `HotScope.source()` to fix the build.
2023-01-04 20:49:43 +01:00
Aria Minaei
918dd754a7
Retire ConstantDerivation
2023-01-04 20:49:43 +01:00
Aria Minaei
ed322b66de
Separate the hot path from the cold path in prisms
2023-01-04 20:49:43 +01:00
Aria Minaei
c81fe11e52
Rename Prism.changesWithoutValues()
to onStale()
2023-01-04 20:49:43 +01:00
Aria Minaei
a71fff0c73
Don't expose PrismDerivation as a class
2023-01-04 20:49:43 +01:00
Aria Minaei
e0a61981c9
Have PrismDerivation no longer extend AbstractDerivation
2023-01-04 20:49:43 +01:00
Aria Minaei
0655e5b1c4
Add performance note about prism scopes
2023-01-04 20:49:43 +01:00
Aria Minaei
83832ef85b
Note down that map/flatMap must be removed
2023-01-04 20:49:43 +01:00
Aria Minaei
6d7d461223
Remove all WeakMaps from prism's scope
...
... making it easier to debug prism scopes. Again, there is a perf regression here.
2023-01-04 20:49:43 +01:00
Aria Minaei
1c69cb7055
Save prism effects in the prism scope, rather than a WeakMap
...
... for easier debugging, but there is a perf regression which I
can't yet quantify as the benchmark suit doesn't support comparisons.
2023-01-04 20:49:43 +01:00
Aria Minaei
ae8be59366
Implement a basic benchmark test, and deprecate derivation.map()/flatMap()
...
This starts a new workspace at `packages/benchmarks` where future benchmarks
are going to sit. For now, it only contains a basic profile of a `sequence.play()`
setup.
It also removes all uses of `AbstractDerivation.map()/flatMap()` and uses prisms
instead.
2023-01-04 20:49:35 +01:00
Aria Minaei
45b548660c
0.6.0-dev.3
2023-01-04 20:35:56 +01:00
Aria
718beb4d7b
Catch more SSR issues and improve compat tests ( #353 )
...
This will cause the build to fail, as this will catch an SSR issue, which will be fixed after merging #369
2023-01-04 20:03:47 +01:00
Aria
feb3ad34b8
Compact and collapsible compound prop editor
...
* Create compact vector prop editor
* MAke all compound props collapsible
* Add collapsed indicator for compound props
* Persist collapsed state accross component rerenders
* Adjust dom playground to use the new vector prop
Co-authored-by: Andrew Prifer <andrew.prifer@gmail.com>
2023-01-04 12:43:49 +01:00
Aria Minaei
f6361e7905
0.6.0-dev.2
2023-01-02 22:34:50 +01:00
Aria Minaei
438a83d2d4
0.6.0-dev.1
2023-01-02 19:47:23 +01:00
Aria Minaei
c58bc694ee
Fix: Re-render the panels when object identity change
...
This fixes the pesky "Argument 'der' in 'useDerivation(der)' should not change between renders."
2022-12-31 22:54:52 +01:00
Andrew Prifer
8d8e2348dd
Create idb-backed image prop ( #366 )
...
Co-authored-by: Clement Roche <rchclement@gmail.com>
2022-12-31 11:01:16 +01:00
Aria Minaei
95b329b02d
0.5.1
2022-12-31 10:54:27 +01:00
Aria Minaei
fcd3ab7ec5
0.5.1-rc.2
2022-12-07 10:24:50 +01:00
Aria Minaei
a9adc2640c
0.5.1-rc.1
2022-11-25 11:21:28 +01:00
Andrew Prifer
e3a194c7dd
Playground improvements ( #342 )
...
Remove previews, add vs code task, open in chrome
2022-11-22 15:05:11 +00:00
Andrew Prifer
484cfeb8ba
Add camera playground ( #343 )
2022-11-22 14:34:15 +00:00
Aria Minaei
a8a9b5ef05
Rename deleteObject()
and related params
...
Since `sheet.deleteObject()` doesn't actually delete the values
of the props of that object, I decided to rename it to `detachObject()`.
Also, the param `override` sounded too similar to the concept of value overrides,
so I renamed it to `reconfigure`.
2022-11-10 16:23:15 +01: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
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
ef5752cbd3
Add a playground for dynamic trees in r3f
2022-10-18 11:43:54 +02:00
Aria Minaei
a9c3c00153
Implement dynamic scene trees in r3f
...
This makes it possible to add/remove objects on the fly, do hot-module reloading, change object configs on the fly, and more.
2022-10-18 11:43:54 +02:00
Aria Minaei
10c2b69bf3
Implement useExtensionButton()
2022-10-18 11:43:54 +02:00
Andrew Prifer
e708463377
Remove useless TS type ( #318 )
2022-10-17 14:13:23 +00: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
54ed4c3c41
Improve light support in theatre/r3f ( #316 )
...
Add color to all light types and add ambient and hemisphere lights
2022-10-14 13:43:53 +00:00
Andrew Prifer
6497bf2097
Add instant editable cameras to the r3f extension ( #315 )
...
Add spruced up editable orthographic/perspective camera
2022-10-13 18:14:53 +00:00
Andrew Prifer
3ec8c20fa6
Warn about (possibly) incorrect custom camera ( #308 )
...
Print a warning if people use e.perspectiveCamera or e.orthographicCamera
2022-10-06 14:22:39 +00:00
Aria Minaei
ca9360fc29
Allow audio files in the playground
2022-09-27 23:32:01 +02:00
Aria Minaei
179c7a8158
Allow audio files in the playground
2022-09-27 23:32:01 +02:00
Aria Minaei
6d49e5977c
Remove the warning about SSR mode
...
It's being misunderstood as an error message https://discord.com/channels/870988717190426644/870988717190426647/1020751857024503828
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
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
Andrew Prifer
8680f9d89e
Replace uniqueName with theatreKey ( #285 )
2022-09-14 08:36:49 -04: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
Andrew Prifer
494c60d0c3
Require Opt modifier for orbiting ( #286 )
2022-08-25 19:55:47 +02: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
Andrew Prifer
14603bccbd
Make transform controls only update the props that are being manipulated in the current mode of the transform controls ( #279 )
...
Only update the transform that is being manipulated in the current mode
2022-08-15 15:15:37 +00:00
Cole Lawrence
e0c9626d68
dev: Add "reading obj value" playground test
2022-08-05 10:30:13 -04:00
Cole Lawrence
c00144464d
dev: Fix playground scroll y on home page
2022-08-05 10:30:13 -04:00
vezwork
fdf268ad43
Add comments and remove extra performance measure
...
Co-authored-by: Cole Lawrence <cole@colelawrence.com>
2022-08-04 13:34:08 -04:00
Cole Lawrence
62def1e883
Add r3f stress + Ticker.__ticks counter
2022-08-04 13:34:08 -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
963b03ab6e
dev: Add warning for unbound .tick() call
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
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
Cole Lawrence
8bd37a28d6
r3f fix: Pinching creates more than one undo level in r3f P-202
...
See https://linear.app/theatre/issue/P-202/pinching-creates-more-than-one-undo-level-in-r3f-history-bug
2022-08-02 16:06:15 -04:00
Fülöp Kovács
e3226da492
Add namespacing to dom example
2022-07-26 10:43:36 +01:00
Cole Lawrence
fcc23b3863
Add variants of the extension example
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
58f04685ad
r3f: Accept function for objRef like for setState
2022-07-25 12:01:26 -04:00
Cole Lawrence
415e493834
doc: Add doc to Ticker.raf
2022-07-25 12:01:26 -04:00
Cole Lawrence
a48155f8dc
r3f readme: Update with corrected API
2022-07-25 12:01:26 -04:00