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
Cole Lawrence
8554c7b78c docs: Add some questions surrounding playhead snapping
* See https://www.notion.so/theatrejs/dragging-from-playhead-does-not-snap-dadac4fa755149cebbcb70a655c3a0d5
2022-04-20 11:23:29 -04:00
Aria Minaei
567c83f957 Style tweaks to the color picker
(temporary, until Mariusz re-works the color picker)
2022-04-20 12:52:54 +02:00
Aria Minaei
5ab47c2ad2 0.4.8-dev.3 2022-04-15 13:28:14 +02:00
Aria Minaei
c1cd25b906 Rename NonCompound to Simple
https://github.com/theatre-js/theatre/pull/118#discussion_r846633461
2022-04-10 20:51:45 +02:00
Aria Minaei
a5cf72cd57 Add comments to cloneDeepSerializable()
https://github.com/theatre-js/theatre/pull/118#discussion_r846635429
2022-04-10 20:36:10 +02:00
Aria Minaei
679629def8 Clarify a line
https://github.com/theatre-js/theatre/pull/118#discussion_r846634812
2022-04-10 20:16:32 +02:00
Aria Minaei
b2714ca876 Change all typeof x === 'undefined' to x === undefined`
https://github.com/theatre-js/theatre/pull/118#discussion_r846634374
2022-04-10 20:13:53 +02:00
Aria Minaei
f3dfb7cedb Add comments to Interpolator<T>
https://github.com/theatre-js/theatre/pull/118#discussion_r846632746
2022-04-10 20:03:49 +02:00
Aria Minaei
86cdbdb48c Rename stringLiteral.opts to valuesAndLabels
so it is not confused with `opts` from all other prop configs.

https://github.com/theatre-js/theatre/pull/118#discussion_r846632293
2022-04-10 19:57:13 +02:00
Aria Minaei
65f9f1c850 Rename deserialize() to deserializeAndSanitize()
https://github.com/theatre-js/theatre/pull/118#discussion_r846631233
2022-04-10 19:47:59 +02:00
Aria Minaei
8aff8ba86d Small refactor
https://github.com/theatre-js/theatre/pull/118#discussion_r846630857
2022-04-10 19:39:28 +02:00
Aria Minaei
225efe1329 More comments for prop configs
https://github.com/theatre-js/theatre/pull/118#discussion_r846630645
2022-04-10 19:34:56 +02:00
Aria Minaei
df188da2aa Small refactor
https://github.com/theatre-js/theatre/pull/118#discussion_r846630232
2022-04-10 19:18:54 +02:00
Aria Minaei
2c7591b589 Added remark about handling class instances ...
when validating `value` in `transactionApi.set(pointer, value)` where `pointer` points to a compound prop.

https://github.com/theatre-js/theatre/pull/118#discussion_r846629352
2022-04-09 17:32:36 +02:00
Aria Minaei
64874d644b Add comments to validateCommonOpts() 2022-04-09 17:12:52 +02:00
Aria Minaei
2c238f40fd Couple of lint fixes 2022-04-09 15:26:01 +02:00
Aria
16c070b6e9
Standardize handling of non-compound types (#118) 2022-04-09 15:02:39 +02:00
Elliot
0cc4f795a1
README: add theatre logo. Add/fix social links (#113)
* add theatre logo. Add/fix social links

* remove styles that don't work in github md

* Add more detailed getting started links to README

* change github links to use theatre-js org and autoformat
2022-04-05 13:29:40 -04:00
Don McCurdy
f1a1f48c0f
OutlinePanel: Display object list in A-Z order (#115) 2022-03-31 17:30:31 +02:00
Elliot
2bf081478f
Fix keyframe pasting to respect interpolation graph (#107) 2022-03-25 18:06:20 +01:00
Fulop
ffdebebfff
Add focus range (#94) 2022-03-25 16:44:18 +01:00
Elliot
8a9b26eb41
Add keyframe copy and paste draft (#105)
* Add keyframe copy and paste draft

Author:    vezwork <elliot@theatrejs.com>
Date:      Mon Mar 21 15:48:06 2022 -0400

* add first pass for copy and paste keyframes

Author:    vezwork <elliot@theatrejs.com>
Date:      Tue Mar 22 10:35:17 2022 -0400

* add clipboard with keyframes to ahistoric data

* Refactor keyframe context menu

* fix type error

* refactor context menus

* cleanup small bits of code

* reorder function defs

* Add connector copy keyframes and fix highlight left margin

* modify keyframe positioning

Co-authored-by: Elliot <elliot@Elliots-MacBook-Pro.local>
2022-03-24 12:28:17 -04:00
Aria Minaei
3c1799dcfd Document mousePositionD 2022-03-15 14:55:19 +01:00
Aria Minaei
0ea9271d7a Add docs to SequenceEditorPanel's spaces 2022-03-03 14:50:54 +01:00
Aria Minaei
9dfe912f65 Get rid of the scrollbars in SnapshotEditor 2022-03-03 12:35:38 +01:00
Fulop
3f2a9032f1
Make it possible to move the playhead to an exact position (#92) 2022-03-03 09:54:54 +01:00
Aria Minaei
53c3302cab Separate theatre's root from playground's 2022-03-02 23:12:33 +01:00
Aria Minaei
cc9a65fbd8 Don't allow the length of a sequence to go below zero
Fixes THE-80
2022-02-28 14:33:41 +01:00
Aria
d0965d17e4
Set up end-to-end tests (#85) 2022-02-28 13:15:27 +01:00
Aria Minaei
0d4d0c446e Fix the rest of the eslint warnings 2022-02-23 23:07:05 +01:00
Aria Minaei
aec6b2a251 Fix a bunch of eslint warnings 2022-02-23 22:53:39 +01:00
Aria Minaei
48c060e4be Add remarks about the core bundle 2022-02-23 18:58:39 +01:00
Aria Minaei
d7c96cff10 Upgrade nanoid 2022-02-23 13:18:34 +01:00
Andrew Prifer
bb2c7de299
Integrate Wallaby (#66) 2022-02-21 13:33:08 +01:00
Andrew Prifer
defb538561
Create color prop (#64)
Authored by andrew@theatrejs.com
2022-02-19 17:54:19 +01:00
Dan
93d1cfa5ec
Sort tracks (#75) 2022-02-14 12:19:35 +01:00
Aria Minaei
1b85707833 Bugfix: Only fall back to default value if sanitizer returns undefined
Fixes #72
2022-02-09 20:48:42 +01:00
Aria Minaei
590a8e3740 Remove the vertical scrollbars everywhere 2022-02-04 20:23:49 +01:00
Aria Minaei
ca5b2685bb Fix the scrollbar bug with non-webkit browsers
https://discord.com/channels/870988717190426644/870988717190426647/938364256271884320

https://discord.com/channels/870988717190426644/870988717190426647/938842750827262044
2022-02-04 20:21:23 +01:00
Andrew Prifer
eff1f158bc Provide high level description for the 4 packages 2022-01-19 15:55:36 +01:00
Aria Minaei
2ddd3a1259 0.4.8-dev.2 2021-12-17 17:38:29 +00:00
Aria
cb349b83a7
Preset easings (#51)
* WIP - Preset easing - 1

* Implement easing presets (WIP)

* Improve easing option colors

* Make easing option border radius smaller so it fits the design language better

* Fix easing option label color

* Remove candidate indicator because it'll conflict with focus state for keyboard navigation

* Improve match indicator

* Simplify search box implementation

(assuming it is for now only going to be a search box, this commit is easy to revert)

* Fix options grid on Firefox

* Implement arrow navigation

* Tiny arrow nav fix

* Now make it actually work lol

* Improve menu item name

* Fix up arrow behavior on search input

* Clean up dead code

Co-authored-by: Andrew Prifer <andrew.prifer@gmail.com>
2021-12-10 12:43:52 +01:00
Aria Minaei
607d6afe2b 0.4.8-dev.1 2021-11-25 18:39:17 +01:00
Aria Minaei
8ca44085de UX improvement: Inputs now correctly lose focus on outside gestures 2021-11-14 21:40:50 +01:00
Aria Minaei
fb53be8fe6 CurveEditor popover now opens with its text selected 2021-11-14 21:30:09 +01:00
Aria Minaei
c9fe91db30 Done: refactor sequencing non-scalars 2021-11-14 21:28:07 +01:00
Aria Minaei
2e02c2e2be WIP: refactor sequencing non-scalars - 3 2021-11-14 21:19:35 +01:00
Aria Minaei
3f91f0bdae WIP: refactor sequencing non-scalars - 2 2021-11-14 20:38:22 +01:00
Aria Minaei
4ec6dd1181 WIP: refactor sequencing non-scalars 2021-11-14 20:03:16 +01:00
Aria Minaei
67b8a708dc Refactored getArrayOfValidSequenceTracks() 2021-11-14 17:09:21 +01:00