* [web] extract PythonExecutionContext and PythonRunner to manage pyodide execution per file
* [web] define worker URL in python execution context in order to avoid breaking cjs-based tests
* [web] use null check for doc contents to allow running empty python files
* [web] flush buffered editor ops before refreshing snapshot for python execution
* [web] catch getExecutionContext errors in python runner to prevent unhandled rejections
* [web] add PythonRunner unit tests and extract shared WorkerMock
* refactor: rename snapshot to state in PythonRunner
* fix: remove unnecessary path normalization in PythonExecutionProvider
* fix cypress tests
GitOrigin-RevId: 9c55586d982fe8df5b90374227005c6b83e94d1f
* adding a toast for import docx feedback form link
* renaming importDocxFeedbackToast to importDocxFeedbackToastGenerator
* fixing capital letter in translation
* adding noopener and shorter link
GitOrigin-RevId: fc1ea105f5d092e25bd2dc3966710a897959d944
* creating useProjectUploader hook
* removing a comment and polishing some code
* removing doc from the array
* rewording comments
* creating the modal that appears after docs conversion is completed
* moving the file
* renaming translations
* moving into modals
* adding content within a list
* removing the newUrl variable
* changing translation name
* adding a button in the test
GitOrigin-RevId: f08ec6b02874f93a79039b831afad820239e094c
* feat: adding usage rate limiting to workbench and aligning editor context values for suggestionsLeft
* feat: prepend word token to headers of token rate limiter to prevent confusion with usage rate limiter
* Shared AI paywalls (#31948)
* feat: renaming hasPremiumSuggestion and adding token limits to editor context and project load
* feat: adding new ai features paywall component
* feat: rename getRemainingFeatureUses to token based naming for token based limiter, removed checking for feature usage on anonymous users, and removed guard on null userId since we shouldnt be calling getRemainingFeatureUses on a nonexistent user
* feat: using token rate limit headers to set token rate values in editor context
* feat: update workbench to be available without refreshing if rate limit reset occurs within session
* fix: move paywall out of inert section
* Hide new paywalls behind FF and open plans page on upgrade attempt (#32023)
* feat: hide new paywalls behind FF
* feat: update ai paywall buttons to navigate to plans page post quota plans change release
* feat: showing a fair limit notificaiton pre-quota change, and updating paywall to not fire if user has premium already (#32056)
GitOrigin-RevId: 565fb128d55543fea34c383bc4abeaa3dd148d09
* merging ide-redesign/components/file-tree into features/file-tree
* moving ide-redesign/contexts/settings-modal-context to features/settings/contexts
* use-collapsible-file-tree.tsx → features/file-tree/hooks
* use-focus-on-setting.tsx → features/settings/hooks
* use-project-notification-preferences.ts → features/settings/hooks
* use-rail-overflow.tsx→ features/ide-react/hooks
* deleting use-switch-enable-new-editor-state.ts
* use-toolbar-menu-editor-commands.tsx → features/source-editor/hooks
* npm run extract-translations
* modifying the test to target correct buttons and removing a test for old component
* adding a test back and modifying it
* changing the test
GitOrigin-RevId: baa1e9a992c88b84313eea82161354d4958cf1ef
* [web] Remove new editor elements for CE/SP
Makes rendering of elements conditional or completely removes them from CE/SP:
- Subscription link is removed from settings modal
- Documentation link is present on `proxyLearn === true`
- Contact us link is present when `support` module is available (not the case for CE/SP)
* Using hidden instead of conditional rendering in settings
GitOrigin-RevId: 562563d0bc4d0ca919e336f0c13cf6b476c6cf31
* feat: integrate main layout, toolbar, and rail from redesign into main ide-react folder
* feat: remove additional files no longer used after ide redesign
GitOrigin-RevId: 8fd77f63cb9c67be91995a9dde13b0fe2376d80f