Reflex

Latest version: v0.7.2

Safety actively analyzes 714919 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 15

0.3.4

Not secure
This release re-exposes top level names under the `reflex` namespace that were erroneously removed in v0.3.3

New Features

* [REF-723+] Upload with progress and cancellation by masenf in https://github.com/reflex-dev/reflex/pull/1899

What's Changed
* Add chat icon by Alek99 in https://github.com/reflex-dev/reflex/pull/2181
* Hosting CLI: remove requirements generation when init, add back timeout for deploy command, remove deploy legacy command by martinxu9 in https://github.com/reflex-dev/reflex/pull/2179
* add in new no_of_lines prop for text by tgberkeley in https://github.com/reflex-dev/reflex/pull/2184
* Apply new pyi script by Lendemor in https://github.com/reflex-dev/reflex/pull/2041
* Fix missing lazy imports by picklelo in https://github.com/reflex-dev/reflex/pull/2187
* reflex_init_in_docker_test: export both frontend and backend by masenf in https://github.com/reflex-dev/reflex/pull/2182
* Fix wrong modal sizes by Alek99 in https://github.com/reflex-dev/reflex/pull/2183
* Bump to v0.3.4 by picklelo in https://github.com/reflex-dev/reflex/pull/2193


**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.3.3...v0.3.4

0.3.3

Not secure
New Features

Python 3.12 is now supported

by masenf in https://github.com/reflex-dev/reflex/pull/2006

Next.js upgrade from 13 to 14

by Lendemor in https://github.com/reflex-dev/reflex/pull/2142

Clear Form using `reset_on_submit` prop

You can use the `reset_on_submit` on a form to reset form values to their original states after submitting the form. Simply set the value to True.

python
rx.form(
rx.input(id="text", placeholder="text"),
rx.button("Submit", type_="submit"),
reset_on_submit=True,
)


(by masenf in https://github.com/reflex-dev/reflex/pull/2012)

Forms support dynamic names.

- Dynamic refs / ids don't really work but you can use dynamic names instead

python
rx.form(
rx.vstack(
rx.input(name="name_input"),
rx.hstack(rx.pin_input(length=4, name="pin_input")),
rx.number_input(name="number_input"),
rx.checkbox(name="bool_input"),
rx.switch(name="bool_input2"),
rx.slider(name="slider_input"),
rx.range_slider(name="range_input"),
rx.radio_group(["option1", "option2"], name="radio_input"),
rx.select(["option1", "option2"], name="select_input"),
rx.text_area(name="text_area_input"),
rx.input(
name="debounce_input",
debounce_timeout=0,
on_change=rx.console_log,
),
rx.button("Submit", type_="submit"),
),
),


- Use `rx.Var.range` (similar to python’s `range` ) with `rx.foreach` to dynamically create form elements with dynamic names. `rx.Var.range(v1, v2, step)` takes in start, end and step values which should be integers or `Var` integers.

python
class State:
grid: int = 4

def handle_submit(self, form_data: dict):
print(form_data)

rx.form(
rx.responsive_grid(
rx.foreach(
rx.Var.range(State.grid),
lambda i: rx.foreach(
rx.Var.range(State.grid),
lambda j: rx.input(
name=f"grid_{i}_{j}",
placeholder=f"grid {i} {j}",
key=f"{i}_{j}",
width="4em",
),
),
),
columns=[State.grid],
),
rx.button("Submit", type_="submit"),
reset_on_submit=True,
on_submit=State.handle_submit,
),



New form-based code should prefer to use the `name` attribute to avoid the overhead of using refs for no specific gain (unless focus or value setting is required).

(by masenf in https://github.com/reflex-dev/reflex/pull/2012)

Improvements

- Assume secure protocol (wss://) and no port If the frontend is being accessed via `HTTPS` and the `API_URL` is either `localhost`, `0.0.0.0` or `::` and uses a non-secure protocol by masenf in https://github.com/reflex-dev/reflex/pull/2129
- Reduce Syntax highlighter footprint by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/2037
- Lazy import modules in reflex by picklelo in https://github.com/reflex-dev/reflex/pull/2144

Doc fixups

- fix: grammatical errors & typo in Spanish [[readme.md](http://readme.md/)](http://readme.md/) by cllatser in https://github.com/reflex-dev/reflex/pull/2139
- docs: remove duplicated content in [[CONTRIBUTING.md](http://contributing.md/)](http://contributing.md/) by Jaspreet-singh-1032 in https://github.com/reflex-dev/reflex/pull/2152
- docs: revise typo in korean README and common CONTRIBUTING readme by young-hun-jo in https://github.com/reflex-dev/reflex/pull/2160

Bug Fixes

- fix an issue where some fields in `State.router.headers` were not getting updated by Lendemor in https://github.com/reflex-dev/reflex/pull/2133
- Resolve peer dependency conflict causing package-lock.json to relock on every run by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/2106

Other Changes

- Add benchmarking by Alek99 in https://github.com/reflex-dev/reflex/pull/2143

New Contributors

- cllatser made their first contribution in https://github.com/reflex-dev/reflex/pull/2130
- Jaspreet-singh-1032 made their first contribution in https://github.com/reflex-dev/reflex/pull/2152
- young-hun-jo made their first contribution in https://github.com/reflex-dev/reflex/pull/2160

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.3.2...0.3.3

0.3.2

Not secure
Thank you to our wonderful users and contributors! :clap: :tada:

New Features

Expose `stop_propagation` and `prevent_default` on Event Handlers

When an event trigger should not propagate to DOM elements nested below it use `.stop_propagation`.

When an event action should override the browser default (like following a link), use `.prevent_default`.

Each of these "event actions" will trigger the frontend to call the corresponding method on the DOM event associated with the event trigger. Both actions may be applied to the same event handler.

* Expose DOM event actions on EventHandler, EventSpec, and EventChain (stopPropagation) by masenf in https://github.com/reflex-dev/reflex/pull/1891
* Do not stop prop is there is no prop to stop by masenf in https://github.com/reflex-dev/reflex/pull/2116

Gunicorn Worker Class

The `gunicorn_worker_class` may be specified in `rxconfig.py` to configure low-level uvicorn settings when running in `prod` mode. See [example](https://github.com/orgs/reflex-dev/discussions/2070#discussioncomment-7428180) in dicussion 2070.

* Expose gunicorn_worker_class via Config by masenf in https://github.com/reflex-dev/reflex/pull/2084

Components can be passed as props

Components can now accept props with type `Var[Component]`, which allows for greater customization of components and greater flexibility when wrapping third-party components.

This only works for static components passed at compile-time. Components cannot be used in a State Var.

* components as props by Lendemor in https://github.com/reflex-dev/reflex/pull/2124

Github Codespaces

Creating a codespace from the reflex repo is now supported. Be sure to open the Backend URL in the browser first (or mark the port as Public) to allow the frontend to access the backend via websocket.

* Github Codespaces Support 🪐 by masenf in https://github.com/reflex-dev/reflex/pull/2125

Improvements

Add `orientation` prop to `rx.stepper`

* Add 'orientation' Property to Reflex Stepper Components by shu-qian in https://github.com/reflex-dev/reflex/pull/2089

Add column resize for data editor

* add column resize for data editor by Lendemor in https://github.com/reflex-dev/reflex/pull/2099

Doc fixups

* fix: Typo in README.md by debajoti in https://github.com/reflex-dev/reflex/pull/2069
* fix: Grammatical error & typo in CONTRIBUTING.md by debajoti in https://github.com/reflex-dev/reflex/pull/2072
* docs: fixed wrapping react link by Shreyas0410 in https://github.com/reflex-dev/reflex/pull/2097
* Added links for Github issues and contributing.md file by Sentious in https://github.com/reflex-dev/reflex/pull/2076
* DALL E and API docs by krishvsoni in https://github.com/reflex-dev/reflex/pull/2082
* Typos fixed in multiple files by SandeshPyakurel in https://github.com/reflex-dev/reflex/pull/2090
* Fix readme links by picklelo in https://github.com/reflex-dev/reflex/pull/2118

Template Improvements

* base: expand template content to right edge of screen by masenf in https://github.com/reflex-dev/reflex/pull/2104
* Use blank template as default by picklelo in https://github.com/reflex-dev/reflex/pull/2109
* Prompt for template on reflex init by picklelo in https://github.com/reflex-dev/reflex/pull/2122

Hosting Service CLI

* [REF-1042] Hosting CLI: check the user selected app name by martinxu9 in https://github.com/reflex-dev/reflex/pull/2102
* Hosting CLI: use http endpoint to return deploy milestones by martinxu9 in https://github.com/reflex-dev/reflex/pull/2085

Other Improvements

* pyproject.toml: bump typer to 0.9.0 by masenf in https://github.com/reflex-dev/reflex/pull/2068
* Compatibility with older typer versions by masenf in https://github.com/reflex-dev/reflex/pull/2117
* cleanup dataeditor js code and hooks by Lendemor in https://github.com/reflex-dev/reflex/pull/2095
* rx.call_script callback needs to await promises by masenf in https://github.com/reflex-dev/reflex/pull/2121

Bug Fixes

* fix docker example by dodeca-6-tope in https://github.com/reflex-dev/reflex/pull/2086
* fix portal when using multiple dataeditor by Lendemor in https://github.com/reflex-dev/reflex/pull/2094
* make download work for state vars by Lendemor in https://github.com/reflex-dev/reflex/pull/2092
* Set unique index vars in rx.foreach by picklelo in https://github.com/reflex-dev/reflex/pull/2126

README Translations

* Added Spanish Readme by bryan-trz in https://github.com/reflex-dev/reflex/pull/2028

New Contributors
* debajoti made their first contribution in https://github.com/reflex-dev/reflex/pull/2069
* dodeca-6-tope made their first contribution in https://github.com/reflex-dev/reflex/pull/2086
* Shreyas0410 made their first contribution in https://github.com/reflex-dev/reflex/pull/2097
* Sentious made their first contribution in https://github.com/reflex-dev/reflex/pull/2076
* krishvsoni made their first contribution in https://github.com/reflex-dev/reflex/pull/2082
* SandeshPyakurel made their first contribution in https://github.com/reflex-dev/reflex/pull/2090
* shu-qian made their first contribution in https://github.com/reflex-dev/reflex/pull/2089
* bryan-trz made their first contribution in https://github.com/reflex-dev/reflex/pull/2028

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.3.1...v0.3.2

0.3.1

Not secure

0.3.0

Not secure
Breaking Changes

Drop Python 3.7 Support

* Drop python3.7 support by masenf in https://github.com/reflex-dev/reflex/pull/2003

Victory charts are completely removed in this release.

Graph and chart functionailty has been replaced by Recharts, see [the docs](https://reflex.dev/docs/library/graphing/areachart/) for more examples.

* Remove victory charts by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1945

Removal of Deprecated Browser Storage API

* Deprecate rx.get_cookies by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1961
* Remove 0.3.0 deprecated features by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1947

rx.Var Fields are Renamed

Most users are not interacting the `Var` class directly, but if you are, the following fields have been renamed:

* `name` -> `_var_name`
* `type_` -> `_var_type`
* `state` -> `_var_state`
* `is_local` -> `_var_is_local`
* `is_string` -> `_var_is_string`

This allows `rx.Base` and `rx.Model` classes using these field names to be accessed through State vars.

* Var field cleanup by masenf in https://github.com/reflex-dev/reflex/pull/1943
* Replace renamed Var.type_ with _var_type by masenf in https://github.com/reflex-dev/reflex/pull/2039

Prop Values are Validated

Each component prop now defines values as `typing.Literal`, which has two effects:

* In IDEs, the allowed values for a field will be prominently displayed.
* When compiling, invalid literal values for props will raise an exception.

The following code will now raise `ValueError`

python
rx.button("Foo", color_scheme="silly")


console
ValueError: prop value for color_scheme of the `Button` component should be one of the following: none,gray,red,orange,yellow,green,teal,blue,cyan,purple,pink,whiteAlpha,blackAlpha,linkedin,facebook,messenger,whatsapp,twitter,telegram. Got 'silly' instead


If you _need_ to pass an unrecognized prop value, you can wrap it in an `rx.Var`.

python
rx.button("Foo", color_scheme=rx.Var.create("silly"))


* Props as Literals by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1921

New Features

New Base Template

When running `reflex init` in a new directory, a multi-page template will be deployed instead of the Welcome to Reflex page. This provides a better starting point for more complex apps.

Use `reflex init --template blank` to generate a new app with the previous template.

* Added base template + improve templating code by Alek99 in https://github.com/reflex-dev/reflex/pull/1937
* [REF-876] Update base template styles by masenf in https://github.com/reflex-dev/reflex/pull/2022
* Update base template styling by picklelo in https://github.com/reflex-dev/reflex/pull/2050
* Update base template by picklelo in https://github.com/reflex-dev/reflex/pull/2027

New Component: `rx.data_editor`

Based on the Glide Data Grid, the new `rx.data_editor` component supports in place editing of data tables and is more feature rich than the existing `rx.data_table` component.

See [the docs](https://reflex.dev/docs/library/datadisplay/dataeditor/) for more examples and details.

(Note: pandas dataframe is not currently supported, but will be coming soon)

* Lendemor/add datagrid editor by Lendemor in https://github.com/reflex-dev/reflex/pull/1941
* fix editable column and theme casting by Lendemor in https://github.com/reflex-dev/reflex/pull/2051

State.router

The `State.router` property provides access to the current page's router data in a way that can be accessed from both the frontend and the backend.

Previous `State.get_current_page()`, `State.get_query_params()`, and others are now deprecated.

* deprecate get_ methods for router_data, use BaseVars instead by Lendemor in https://github.com/reflex-dev/reflex/pull/1967

New component: `rx.moment`

Simple date/time formatting on the frontend, and provides an event trigger that can be fired peridically from the frontend.

* Wrap Moment Component by Lendemor in https://github.com/reflex-dev/reflex/pull/1994
* [react-moment](https://www.npmjs.com/package/react-moment) is used under the hood.

Reflex Hosting Preview

This release includes support for the new Reflex Hosting service, currently in closed testing, please reach out on Discord for more information.

* [REF-99] Add first version of CLI for hosting service by martinxu9 in https://github.com/reflex-dev/reflex/pull/1810
* [reflex hosting] clean up tmp dir for storing zip archives by jackie-pc in https://github.com/reflex-dev/reflex/pull/2021
* CLI switch to prod server by martinxu9 in https://github.com/reflex-dev/reflex/pull/2016
* CLI improvements by martinxu9 in https://github.com/reflex-dev/reflex/pull/2026
* add region check upfront when user deploys interactively by martinxu9 in https://github.com/reflex-dev/reflex/pull/2030
* CLI will not set auto/stop setting for deployment by martinxu9 in https://github.com/reflex-dev/reflex/pull/2040
* Add back build log command to CLI by martinxu9 in https://github.com/reflex-dev/reflex/pull/2053

Demo App

Running `reflex demo` will now open a demo app based on the new base template showing some reflex features.

* Tom/template demo app by tgberkeley in https://github.com/reflex-dev/reflex/pull/2046
* Add CLI demo command by Alek99 in https://github.com/reflex-dev/reflex/pull/2044
* Use demo app for reflex demo command by picklelo in https://github.com/reflex-dev/reflex/pull/2048
* Update demo command to open demo.reflex.run by picklelo in https://github.com/reflex-dev/reflex/pull/2059

(Currently using a remotely hosted version of the app, but subsequent release will run the demo app locally.)

Radix Themes Preview

Reflex is moving away from Chakra-UI component to [Radix-UI](https://www.radix-ui.com/themes/docs/overview/getting-started). And some of the new components are available in this release for testing in the `reflex.components.radix.themes` module. More details to follow.

* [REF-668] Wrap MyApp with radix Theme component by masenf in https://github.com/reflex-dev/reflex/pull/1867
* [REF-938] Fix up radix themes issues by masenf in https://github.com/reflex-dev/reflex/pull/2002

Improvements

Automatic `API_URL`

Most users will not have to explicitly set `API_URL` unless their frontend and backend are running on different hosts or via a load balancer.

When the default `API_URL` of `http://localhost:{backend_port}` is used, and the frontend is not being accessed on `localhost`, assume that the backend and frontend are on the same host.

* [REF-843] Automatically update api_url and deploy_url by masenf in https://github.com/reflex-dev/reflex/pull/1954

Support for Static Sites

Do not display the connection error banner or attempt to connect to the backend if the app does not use State.

* No state No Websocket by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1950
* Remove Default state by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1978

Improve `reflex export`

* Support exporting to zip archives to a dir that is not cwd (to be use by hosting cli) by jackie-pc in https://github.com/reflex-dev/reflex/pull/2005
* [reflex export] backend.zip excludes dirs that look like venv dirs by jackie-pc in https://github.com/reflex-dev/reflex/pull/2009

Access Relationship Attributes on `rx.Model`

* Improve Var type handling for better rx.Model attribute access by masenf in https://github.com/reflex-dev/reflex/pull/2010

Autogenerate missing `requirements.txt`

An app must have a `requirements.txt` to be deployed via the hosting service, so Reflex will create one based on top-level packages in the environment where it is running.

* Autogenerating Dependencies During Deployment by Alek99 in https://github.com/reflex-dev/reflex/pull/2033

Support `callback` in `rx.call_script`

When running arbitrary script, it is now possible to pass the result back to an Event Handler. See [the updated docs](https://reflex.dev/docs/api-reference/browser_javascript/) for more examples.

* Support callback for rx.call_script by masenf in https://github.com/reflex-dev/reflex/pull/2045

Miscellaneous

* Warn when computed vars raise an exception by masenf in https://github.com/reflex-dev/reflex/pull/1939
* Stop double compiles in dev mode by picklelo in https://github.com/reflex-dev/reflex/pull/1990
* Improve Event handler Error message by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/2019
* Relax wrapt dependency for tensorflow compatibility by masenf in https://github.com/reflex-dev/reflex/pull/2001

Bug Fixes

* Fix custom components special props by picklelo in https://github.com/reflex-dev/reflex/pull/1956
* Fix charts not displaying without specifying width and height
* ChartBase.create: include default min dimensions (RESUB) by masenf in https://github.com/reflex-dev/reflex/pull/1975
* Fix Cookie and LocalStorage values being reset on navigation
* convert initialEvents to a function by masenf in https://github.com/reflex-dev/reflex/pull/1982
* Bug: changing type of playing by Billa05 in https://github.com/reflex-dev/reflex/pull/1986
* Rehydrate client storage after rx.remove_local_storage and rx.remove_cookies by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1998
* multi_select somewhat usable by masenf in https://github.com/reflex-dev/reflex/pull/1861
* fix fnm version check by Lendemor in https://github.com/reflex-dev/reflex/pull/2014
* Resolve npm path and fnm path on Windows by masenf in https://github.com/reflex-dev/reflex/pull/2015
* Radix Themes style notation fix by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/2025
* Generate state delta from processed state instance by masenf in https://github.com/reflex-dev/reflex/pull/2023
* fix onload method not working in prod mode (and hosting) by Lendemor in https://github.com/reflex-dev/reflex/pull/2049
* Add none to color scheme literal by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/2055

README translations

* Translated README.md file in Italian (IT) by LucianCrainic in https://github.com/reflex-dev/reflex/pull/1946
* Translate README.md file in Korean by starcat37 in https://github.com/reflex-dev/reflex/pull/2011
* docs: fixed hindi translation by smty2018 in https://github.com/reflex-dev/reflex/pull/2018

Other Changes

* bun version bump to 1.0.4 by masenf in https://github.com/reflex-dev/reflex/pull/1942
* Bump to v0.2.9 by picklelo in https://github.com/reflex-dev/reflex/pull/1953
* AppHarness: support headless mode and driver selection by masenf in https://github.com/reflex-dev/reflex/pull/1963
* Lighthouse Test CI by Alek99 in https://github.com/reflex-dev/reflex/pull/1974
* format: event arg values use backticks by masenf in https://github.com/reflex-dev/reflex/pull/1926
* fix serialization as a whole for list/dict/Base containing custom items to serialize by Lendemor in https://github.com/reflex-dev/reflex/pull/1984
* Fix AppHarness tests by masenf in https://github.com/reflex-dev/reflex/pull/1987
* test_app: cleanup state_name logic and fixup get_sid() call by masenf in https://github.com/reflex-dev/reflex/pull/1993
* Fix posthog by picklelo in https://github.com/reflex-dev/reflex/pull/1992
* Refactor pyi_generator to use AST directly by masenf in https://github.com/reflex-dev/reflex/pull/2034
* Remove .pyc and __pycache__ from template dir by masenf in https://github.com/reflex-dev/reflex/pull/2056

New Contributors
* LucianCrainic made their first contribution in https://github.com/reflex-dev/reflex/pull/1946
* Billa05 made their first contribution in https://github.com/reflex-dev/reflex/pull/1986
* starcat37 made their first contribution in https://github.com/reflex-dev/reflex/pull/2011
* smty2018 made their first contribution in https://github.com/reflex-dev/reflex/pull/2018
* tgberkeley made their first contribution in https://github.com/reflex-dev/reflex/pull/2046

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.9...v0.3.0

0.2.9

Not secure
Breaking Changes

`rx.constants` module refactored

- Many names have changed for better organization and namespacing of the growing number of constant values.
- `rx.constants` is not really a public API, but some existing code may have been accessing values in this module.
- code cleanup (split constants into a folder) by Lendemor in https://github.com/reflex-dev/reflex/pull/1866

New Features

Core Graphing Library is now [Recharts](https://recharts.org/api)

The API for rendering charts and graphs has changed.

- See the [docs](https://reflex.dev/docs/library/graphing/areachart/) for examples and more information.
- Victory charts are deprecated and will be removed in a subsequent release.
- `rx.data` is no longer used.
- https://github.com/reflex-dev/reflex/pull/1878

Run Arbitrary Javascript from Event Handler

- rx.call_script: a real EventHandler to execute arbitrary javascript by masenf in https://github.com/reflex-dev/reflex/pull/1860

Redirect into New Window

- `return rx.redirect("https://google.com", external=True)` to open page in new tab/window
- allow external link for redirect by Lendemor in https://github.com/reflex-dev/reflex/pull/1902

HTML Editor Component

- Add **Editor** component by masenf in https://github.com/reflex-dev/reflex/pull/1851

Improvements

- Allow arbitrary Reflex components to map to markdown tags for more customizable styling.
- Improvements to custom styles in rx.markdown by picklelo in https://github.com/reflex-dev/reflex/pull/1852
- Fix custom style rendering in markdown by picklelo in https://github.com/reflex-dev/reflex/pull/1869
- Improve default rx.markdown styling by picklelo in https://github.com/reflex-dev/reflex/pull/1904
- Include scripts in `<head>` for every page by setting `head_components` prop in `rx.App`
- Add head components to app by picklelo in https://github.com/reflex-dev/reflex/pull/1868
- Adding Missing Props to `button`, `button_group`, and `circular_progress`
- Add button spinner_placement prop by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1871
- Button Group variant and size props by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1873
- circular_progress cleanup: size, thickness, label by masenf in https://github.com/reflex-dev/reflex/pull/1879
- Add `Readme.md` for turkish language by 09u2h4n in https://github.com/reflex-dev/reflex/pull/1922
- Pin frontend package versions by picklelo in https://github.com/reflex-dev/reflex/pull/1920
- More reliable deploys without bringing in unexpected upstream changes

Bug Fixes

- component: `imports` override `_get_dependencies_imports` by masenf in https://github.com/reflex-dev/reflex/pull/1859
- Fix regression where `rx.table` stopped working with state Var
- rx.table `__bool__` regression fix by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1828
- `MutableProxy` fixes when accessing `list`, `dict`, or `set` vars on a State
- MutableProxy wraps values yielded by `__iter__` by masenf in https://github.com/reflex-dev/reflex/pull/1876
- State.reset uses deepcopy on defaults by masenf in https://github.com/reflex-dev/reflex/pull/1889
- state: `get_value` unwraps MutableProxy first by masenf in https://github.com/reflex-dev/reflex/pull/1887
- state: subclass of MutableState must return _mark_dirty return value by masenf in https://github.com/reflex-dev/reflex/pull/1898
- fix rx.image src not working with state by Lendemor in https://github.com/reflex-dev/reflex/pull/1915
- fix menu items= API by Lendemor in https://github.com/reflex-dev/reflex/pull/1905
- Lendemor/fix backward compat of menu api by Lendemor in https://github.com/reflex-dev/reflex/pull/1925

Other Changes

- Bump to v0.2.8 by picklelo in https://github.com/reflex-dev/reflex/pull/1855
- Format event handlers not in importable modules by picklelo in https://github.com/reflex-dev/reflex/pull/1875
- Add a placeholder timeout to GitHub Actions unit tests by jackwcodes in https://github.com/reflex-dev/reflex/pull/1897
- test_state: assert popped value is the actual value by masenf in https://github.com/reflex-dev/reflex/pull/1906
- Deprecate set_cookie and set_local_storage by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1917
- Add forward slash to local JS import by picklelo in https://github.com/reflex-dev/reflex/pull/1924
- Update Deprecations by ElijahAhianyo in https://github.com/reflex-dev/reflex/pull/1927

New Contributors

- jackwcodes made their first contribution in https://github.com/reflex-dev/reflex/pull/1897
- 09u2h4n made their first contribution in https://github.com/reflex-dev/reflex/pull/1922

**Full Changelog**: https://github.com/reflex-dev/reflex/compare/v0.2.8...v0.3.0

Page 9 of 15

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.