* Move `hasLintingError` from scope to react state
* Move `permissionsLevel` to IdeReactContext states
* Get `permissionsLevel` from `useIdeReactContext()`
* Set `permissionsLevel` in mocked `IdeReactProvider`
* Replace `permissions` scope by React state
* Fixup `permission` changes
* Remove redundant type
GitOrigin-RevId: 6203c61f9ac429789624196bf67e508310f4577f
* Reapply "Increase the length of unsaved doc time before the editor is locked (#23431)"
This reverts commit d0efca398e59ca488c530ee9ec5ca76f29843679.
* Use pendingOpCreatedAt if inflightOpCreatedAt isn't set
GitOrigin-RevId: b3301d7cc1554215a4ba569537bd47beeefde20f
* Use opInflightSince to measure unsaved doc time
* Use performance.now() for lastAcked timestamp
* Use inflightOpCreatedAt
* Increase MAX_UNSAVED_ALERT_SECONDS to 15
* Increase MAX_UNSAVED_SECONDS to 30
* Increase FATAL_OP_TIMEOUT to 45000
* Convert "Connection lost" modal to a notification
GitOrigin-RevId: 2d4233723620fd03ce6d6c5795c48c33c0b2f92c
* Notify about unsaved changes
* Move system message components and types to shared folder
* Add system messages component
GitOrigin-RevId: ab81a24888847bd9a8a390fd1af6b58f471f7a4b