* Update Node.js to 20.x in Dockerfile
* Update Node.js types and engines entry to 20.x
* Update Node.js version in .nvmrc
* Use node version from .nvmrc in linting job
* Use Type Assertion for clearTimeout
* Basic adding of posts
* Switch active post on focus
* Conditionally show plus button
* Insert posts midthread
* Track active/inactive post
* Delete posts in a thread
* Focus after deletion
* Tweak empty post detection
* Mix height for active only
* Move toolbar with post on web
* Fix footer positioning
* Post All button
* Fix reply to positioning
* Improve memoization
* Improve memoization for clearVideo
* Remove unnecessary argument
* Add some manual memoization to fix re-renders
* Scroll to bottom on add new
* Fix opacity on Android
* Add backdrop
* Fix videos
* Check alt for video too
* Clear pending publish on error
* Fork alt message by type
* Separate placeholder for next posts
* Limit hitslop to avoid clashes
* Use Redix FocusTrap (#5638)
* Use Redix FocusTrap
* force resolutions on radix libs
* add focus guards
* use @radix-ui/dismissable-layer for escape handling
* fix banner menu keypress by using `Pressable`
* add menu in dialog example to storybook
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* use DismissableLayer/FocusScope for composer
* fix storybook dialog
* thread Portal through Prompt and avatar/banner
* fix dialog style regression
* remove tamagui
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* add to dropdown menu
* use normal profile mutation hook
* add pin as reason
* request pins
* shadow update
* rm logs
* get prev pinned from getProfile
* fix toasts
* invalidate after appview ready
* don't mutate params
* rm log
* use checkCommited rather than manual whenAppViewReady
* move to mutation
* even more optimistic optimistic update
* allow pins in `posts_and_author_threads`
* update @atproto/api
* add reasonPin type
* fix strange type error in unrelated query
* another missing type
* grow banner when overscrolling
* add blurview
* make backdrop blur as it scrolls
* add activity indicator
* use rotated spinner instead of arrow
* persist position of back button
* make back button prettier
* make blur less jarring
* Unify effects
* Tweak impl
* determine if should animate based on scroll amount
* sign comment
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Support emoji in text with custom font
* Add emoji support to elements that need it
* Remove unused file causing lint failure
* Fix a few more emoji locations
* Couple more
* No throw
* chore: handle built css assets
* chore: let prettier handle css code
* refactor: let webpack build css assets
* chore: prettier on bskyembed
* chore: touch empty.txt on css directory
* chore: do the same to the workflow
* add lib
* add validation
* log
* add some common typos
* add tests
* reset hasWarned state on edit
* shorten path
* Move test file, adjust regex, add test
* Get real nit picky
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Add some comments
* Decouple language settings
* Normalize on read/write
* Refactor
* Support device locale on app startup
* Cleanup, port to web
* Clean up comments
* Comment
* Try not to mutate
* Protect util handling, update test
* Dedupe array values
* Add fontScale, gate it, fix some computes
* Add inter, integrate
* Clean up
* Apply to old Text component
* Use numeric weight
* Cleanup
* Clean up appearance settings
* Global tracking
* Fix regular italic variant
* Refactor settings and fontScale values
* Remove flags
* Get rid of lower weight font usage
* Remove gate from settings
* Refactor appearance settings for reuse
* Add neue type nux
* Update defaults
* Load fonts, add fallback families
* Load fonts via plugin in production
* Fixes
* Fix for web
* Nits
---------
Co-authored-by: Hailey <me@haileyok.com>