Commit graph

91 commits

Author SHA1 Message Date
Aria
b83164f26f
Switch to Vite (#434) 2023-07-16 22:19:21 +02:00
Colin Duffy
e7f23cfa4e
feat(example): three-basic (#418) 2023-05-12 19:11:26 +02:00
Aria Minaei
2b10e46441 Fix the bugs in assetStorage 2023-01-25 15:08:22 +01:00
Aria Minaei
00bb2d3310 Fix the recursion issue with theatric 2023-01-24 18:46:09 +01:00
Aria Minaei
a30bba0708 Convert extensions' Dropdown tool to Flyout
And use the style of a regular context Theatre.js menu.
2023-01-23 22:23:06 +01:00
Colin Duffy
3d343cc59e
Feat/studio extension dropdowns (#379) 2023-01-23 22:16:38 +01:00
Andrew Prifer
8470b67d4b
Support the entire getProject config in theatric's initialize() function (#384)
Support the entire getProject config in initialize
2023-01-22 21:59:29 +00:00
Andrew Prifer
246e75ccb5
Theatric - a leva-like Theatre.js API for React (#375)
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2023-01-22 18:01:31 +01:00
Aria Minaei
41fb7de533 Tweak the style of ImagePropEditor 2023-01-22 14:28:41 +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
c354a602a4 Remove Box in favor of Atom 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
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
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
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
Andrew Prifer
484cfeb8ba
Add camera playground (#343) 2022-11-22 14:34:15 +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
10c2b69bf3 Implement useExtensionButton() 2022-10-18 11:43:54 +02:00
Aria Minaei
ca9360fc29 Allow audio files in the playground 2022-09-27 23:32:01 +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
a871aa628f Revert "Handle requestPointerLock error cases in iframes P-199 (#272)"
This reverts commit 2ef9d5e346.
2022-08-17 16:14:36 -04:00
Cole Lawrence
e0c9626d68 dev: Add "reading obj value" playground test 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
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
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
Aria Minaei
d2ef25f8d4 Quick hack to fix the randomly breaking e2e tests 2022-07-07 16:36:12 +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
Andrew Prifer
a3d9892841
Relax editable TS types to allow creating editable versions of all the JSX.IntrinsicElements elements. (#237)
Enable custom editable components through relaxed typescript types
2022-06-28 16:11:28 +00: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
aa60556046 dev: Playground "dom" offsets new boxes 2022-06-24 09:52:56 -04:00
Andrew Prifer
162174568b
Replace Vite with ESBuild for the playground (#213) 2022-06-13 12:47:07 +00:00
Andrew Prifer
34c7b06baf
Improve dom example performance (#208)
Apply animation in dom example in a performant way
2022-06-10 15:27:33 +02:00
Andrew Prifer
763d37aee3
UI fixes (#187)
Co-authored-by: Aria Minaei <aria.minaei@gmail.com>
2022-06-01 14:46:37 +02:00
Aria
9b4aa4b0e0
Make @theatre/r3f play well with different vs of react,three,r3f #177 2022-05-27 21:59:51 +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
Cole Lawrence
5ee9a2543f playground(dom): Add nested compound prop "favoriteFood" 2022-05-23 12:46:30 -04:00
Cole Lawrence
75a20c50ac Add "Example Namespace / *" to some objects in r3f-rocket 2022-05-20 07:46:17 -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
Andrew Prifer
95d4e1d315
Create reference window for r3f (#169)
* Add reference window (and fix tooltips)

* Replace image with data url so the build doesn't fail
2022-05-18 17:04:07 +02:00
Andrew Prifer
fc9df7c346
Support multiple sheet instances (#153)
* Support multiple/nested sheets and sheet instances

* Add playground for instances

* Fix playground and example

* Change r3f's objectKey to storeKey to avoid confusion

* Update all editable/uniqueName variables used as store key to storeKey too

* Fix lint warnings
2022-05-16 12:43:45 +02:00
Andrew Prifer
10b4954ee2
Support fog editing in r3f second try (#163)
* Add support for editable fog

* Oops
2022-05-15 22:04:00 +02:00