Commit Graph

1553 Commits

Author SHA1 Message Date
Martin Xu
aa2cf80f70
[REF-2774] Send runtime error in telemetry (#3276) 2024-05-10 18:15:03 -07:00
Masen Furer
b95e02a805
rx.accordion customizability overhaul (#3266)
* rx.accordion customizability overhaul

* fix low contrast font in "classic" variant
* relative font sizing, so setting font_size on the root works now
* use CSS vars wherever possible to make downstream styling easier
* optional dividers between accordion items
* support `radius`
* support `duration` and `easing` for controlling the animation
* fix animation jank while keeping padding_y
* lookup `data-variant` via CSS instead of passing props in python
* fix "surface" variant to use `--accent-surface` as radix intended

* Restore default variant: "classic"

* Fix accordion primitive radius
2024-05-10 16:50:02 -07:00
Martin Xu
2789f32134
[REF-2774] Add ReflexError and subclasses, send in telemetry (#3271) 2024-05-10 12:12:42 -07:00
Martin Xu
4e959694a1
enable telemetry for frontend package download subprocess (#3270) 2024-05-10 10:17:10 -07:00
seewind
0238ee96df
#3185 fix tailwind.config.js: support corePlugins, important, prefix, separator (#3260) 2024-05-09 15:05:35 -07:00
Masen Furer
d767dc5fc7
[REF-2802] Foreach should respect modifications to children (#3263)
* Unit tests for add_style and component styles with foreach

The styles should be correctly applied for components that are rendered as part
of a foreach.

* [REF-2802] Foreach should respect modifications to children

Components are mutable, and there is logic that depends on walking through the
component tree and making modifications to components along the way. These
modifications _must_ be respected by foreach for consistency.

Modifications necessary to fix the bug:

* Change the hash function in `_render` to get a hash over the render_fn's
  `__code__` object. This way we get a stable hash without having to call the
  render function with bogus values.
* Call the render function once during `create` and save the result as a child
  of the Foreach component (tree walks will modify this instance).
* Directly render the original (and possibly modified) child component instead
  of calling the render_fn again and creating a new component instance at
  render time.

Additional changes because they're nice:

* Deprecate passing `**props` to `rx.foreach`. No one should have been
  doing this anyway, because it just does not work in any reasonable way.
* Raise `ForeachVarError` when the iterable type is Any
* Raise `ForeachRenderError` when the render function does not take 1 or 2 args.
* Link to the foreach component docs when either of those errors are hit.
* Change the `iterable` arg in `create` to accept `Var[Iterable] | Iterable`
  for better typing support (and remove some type: ignore comments)
* Simplify `_render` and `render` methods -- remove unused and potentially
  confusing code.

* Fixup: `to_bytes` requires `byteorder` arg before py3.11
2024-05-09 15:04:26 -07:00
Masen Furer
554d0d03d2
form: default width="100%" (#3261) 2024-05-09 13:11:54 -07:00
Masen Furer
6fb254ae3d
[REF-2789] Graceful deprecation of rx.input.root and rx.input.input (#3249)
* [REF-2789] Graceful deprecation of rx.input.root and rx.input.input

Handle previously valid code where rx.input.root wrapped
rx.input/rx.input.input and rx.input.slot.

Raise deprecation warnings with hints about how to refactor code.

Copy props from rx.input.root to children inputs and apply any rx.input.slot
components to children inputs in an attempt to keep existing code working as
best as possible.

Fix DebounceInput:
  * pass children through (for rx.input.slots)
  * pass _rename_props through (for color_scheme)

* Fix for case where `rx.input.root` had event triggers

Fix for case where `rx.input.root` had no input children
2024-05-08 14:39:22 -07:00
Masen Furer
7fee5d9e8d
Radix 3.0 tweaks (#3257)
* radix themes progress: expose `max` prop

It doesn't work yet, but PR filed for radix-ui/themes:
https://github.com/radix-ui/themes/pull/492

* Move `progress` and `toast` to `_x`

[REF-2779] Expose skeleton and data_list in top level namespace.
2024-05-08 14:02:37 -07:00
benedikt-bartscher
38c46ec4d5
copy background task marker (#3255) 2024-05-08 13:31:20 -07:00
Thomas Brandého
bdcbe006a2
update blank template (#3219)
* update blank template

* update CONTRIBUTING.md

* adjust min_height of main stack

* simplify stuff

* fix import order for blank template and tell ruff to ignore it
2024-05-08 13:30:14 -07:00
Elijah Ahianyo
1d093486b9
[REF-2622] Throw warning for incompatible uvicorn version on windows (#3246) 2024-05-08 10:52:37 -07:00
Masen Furer
6b8a6f353b
icon_button: Icon size should be specified as int pixels, not str (#3247) 2024-05-07 19:31:01 -07:00
Masen Furer
ea0f490030
[REF-2764] dep update 0.5.0 (#3245)
* upgrade to latest pip for in_docker_test_script.sh

* Bump gunicorn to 22.0.0 (security)

Changelog: https://docs.gunicorn.org/en/stable/news.html#id1

use utime to notify workers liveness
migrate setup to pyproject.toml
fix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)
parsing additional requests is no longer attempted past unsupported request framing
on HTTP versions < 1.1 support for chunked transfer is refused (only used in exploits)
requests conflicting configured or passed SCRIPT_NAME now produce a verbose error
Trailer fields are no longer inspected for headers indicating secure scheme
support Python 3.12

** Breaking changes **
minimum version is Python 3.7
the limitations on valid characters in the HTTP method have been bounded to Internet Standards
requests specifying unsupported transfer coding (order) are refused by default (rare)
HTTP methods are no longer casefolded by default (IANA method registry contains none affected)
HTTP methods containing the number sign (#) are no longer accepted by default (rare)
HTTP versions < 1.0 or >= 2.0 are no longer accepted by default (rare, only HTTP/1.1 is supported)
HTTP versions consisting of multiple digits or containing a prefix/suffix are no longer accepted
HTTP header field names Gunicorn cannot safely map to variables are silently dropped, as in other software
HTTP headers with empty field name are refused by default (no legitimate use cases, used in exploits)
requests with both Transfer-Encoding and Content-Length are refused by default (such a message might indicate an attempt to perform request smuggling)
empty transfer codings are no longer permitted (reportedly seen with really old & broken proxies)

** SECURITY **
fix CVE-2024-1135

* Remove TYPE_CHECKING guard for pydantic v1 imports

Retain TYPE_CHECKING guard in v1 fallback to force pyright into pydantic.v1 namespace

* Run unit tests with pydantic v1 now that v2 is installed via poetry
2024-05-07 15:15:52 -07:00
Nikhil Rao
940afb2c92
Remove deprecations for 0.5.0 (#3222) 2024-05-07 08:55:42 -07:00
Masen Furer
aa8858b113
Expose color_scheme on TabsTrigger (#3112) 2024-05-06 18:36:44 -07:00
benedikt-bartscher
185ec31a71
do not access state __subclasses__, prevent issues with AppHarness (#3143) 2024-05-06 18:35:25 -07:00
Masen Furer
83371d51d3
[REF-2658] Alembic should use batch mode for autogenerate (#3223) 2024-05-06 18:34:55 -07:00
benedikt-bartscher
b3c06bd139
prevent issues with #3214 (#3237) 2024-05-06 18:34:16 -07:00
Thomas Brandého
57476966f3
add_style api (#3202) 2024-05-06 16:59:11 -07:00
Elijah Ahianyo
0838e5ac6a
[REF-2676][REF-2751] Windows Skip ARM devices on bun install + Telemetry (#3212) 2024-05-06 09:50:05 -07:00
Elijah Ahianyo
9c7dbdbc72
[REF-2643] Throw Errors for duplicate Routes (#3155) 2024-05-03 12:15:40 -07:00
Elijah Ahianyo
24d15acae6
Windows Pin Version followup (Use Windows Install Link) (#3193) 2024-05-03 12:14:22 -07:00
Thomas Brandého
a7355962fd
prevent shadowing of computed vars (#3221) 2024-05-03 12:13:57 -07:00
Thomas Brandého
1817c30e22
add toast component (#3186) 2024-05-03 12:09:11 -07:00
Nikhil Rao
7903a1020d
Clean up config and app API (#3197) 2024-05-02 18:15:28 -07:00
Elijah Ahianyo
db47d39979
Windows --frontend-only fix ctrl + c (#3181) 2024-05-01 17:40:27 -07:00
Masen Furer
c636c91c9c
[REF-2273] Implement .setvar special EventHandler (#3163)
* Allow EventHandler args to be partially applied

When an EventHandler is called with an incomplete set of args it creates a
partial EventSpec. This change allows Component._create_event_chain to apply
remaining args from an args_spec to an existing EventSpec to make it
functional.

Instead of requiring the use of `lambda` functions to pass arguments to an
EventHandler, they can now be passed directly and any remaining args defined in
the event trigger will be applied after those.

* [REF-2273] Implement `.setvar` special EventHandler

All State subclasses will now have a special `setvar` EventHandler which
appears in the autocomplete drop down, passes static analysis, and canbe used
to set State Vars in response to event triggers.

Before:
    rx.input(value=State.a, on_change=State.set_a)

After:
    rx.input(value=State.a, on_change=State.setvar("a"))

This reduces the "magic" because `setvar` is statically defined on all State
subclasses.

* Catch invalid Var names and types at compile time

* Add test cases for State.setvar

* Use a proper redis-compatible token
2024-05-01 17:13:55 -07:00
Masen Furer
aeca983290
Allow StatefulComponent to also be rendered via __str__ (#3211)
This makes it easier to implement React "render functions" when wrapping
components that require children to be a callable.
2024-05-01 17:03:40 -07:00
khhan0130
be93b1280c
Update CodeBlock class to accept rx.color in custom_style (#3168) 2024-05-01 14:48:33 -07:00
Elijah Ahianyo
93c4f5024e
Windows Pin Bun version (#3192) 2024-05-01 14:47:03 -07:00
Masen Furer
19d8f6c752
[REF-2523] Implement new public Component API (#3203) 2024-05-01 14:46:27 -07:00
benedikt-bartscher
e31b458a69
allow optional props with None default value (#3179) 2024-05-01 13:33:38 -07:00
benedikt-bartscher
73e9123733
migrate deprecated redis.close to redis.aclose (#3199) 2024-05-01 12:05:00 -07:00
Martin Xu
fe731e385d
custom component install as editable mode (#3200) 2024-04-30 18:12:16 -07:00
Masen Furer
b7e85ecec4
[REF-2574] Default width for Stack (+children) and default padding for container (#3104) 2024-04-30 13:15:57 -07:00
Angelina Sheyko
4b6a7ff8e3
Fixed unused kwargs in reflex.App (#3170) 2024-04-29 13:53:27 -07:00
Masen Furer
3564df7620
Implement throttle and debounce as event actions (#3091) 2024-04-26 17:28:51 -07:00
benedikt-bartscher
c2017b295e
Improved get_attribute_access_type (#3156) 2024-04-26 17:28:30 -07:00
Masen Furer
74eaab5e19
Integration testing: Firefox compatibility (#3162)
* Integration testing: Firefox compatibility

* test_client_side_storage: ruff format
2024-04-26 13:44:08 -07:00
Thomas Brandého
92cdc15896
IconButton for color_mode with nice default and a position props to control it (#3165) 2024-04-26 12:08:09 -07:00
Elijah Ahianyo
3a58558166
Bump bun version to 1.1.5 (#3176) 2024-04-26 11:50:51 -07:00
Thomas Brandého
0ef695d842
add default underline for links (#3148) 2024-04-26 11:42:05 -07:00
Masen Furer
0a8aaea599
[REF-2682] Foreach over dict uses Tuple arg value (#3160)
* test_foreach: assert on arg _var_type

* [REF-2682] Foreach over dict uses Tuple arg value

When iterating over a Var with _var_type dict, the resulting arg value
_var_type should be Tuple[key, value] so it can be correctly used with other
var operations.

Fix #3157

* Correct _var_type for iteration over Tuple of multiple types

The arg value when iterating over a tuple could be any of the possible values
mentioned in the annotation.

When only one type is used, the Union collapses to the base type, at least in py3.11

* Add comments
2024-04-25 09:10:55 -07:00
Thomas Brandého
ac36bfc6ea
Radix 3.0 (#3159) 2024-04-25 08:33:29 -07:00
Thomas Brandého
0c0477cffb
extend rx.input allowed types (#3149) 2024-04-24 16:04:56 -07:00
Ogidi Ifechukwu
ce2bd2286e
Refactor upload component and add styled upload component (#3035) 2024-04-24 13:45:22 -07:00
Angelina Sheyko
cd1a30d758
Fixed app name validation (#3146) 2024-04-24 13:32:36 -07:00
Martin Xu
a5f9001cf9
send template info in init telemetry event (#3153) 2024-04-24 06:47:33 -07:00
Jirka Borovec
4d567b7ec1
ruff-format: unify Black with Ruff v0.1 (#2837)
* ruff-format: unify Black with Ruff

* ruff lint.

* v0.1.0

* run precommit

* hand fixing

* fix `not isinstance(...)`

Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>

* rev isinstance(...) with noqa

* exclude = ["*.pyi"]

* apply precommit

* apply format

* revert pyi

* fixing

* Fix or

Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>

* Update reflex/components/datadisplay/code.pyi

* Apply suggestions from code review

Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>

* Update tests/components/core/test_colors.py

* Update reflex/app.py

* Update reflex/app.py

* Update benchmarks/test_benchmark_compile_pages.py

* Update benchmarks/test_benchmark_compile_pages.py

* Update benchmarks/test_benchmark_compile_pages.py

---------

Co-authored-by: Thomas Brandého <thomas.brandeho@gmail.com>
2024-04-23 14:40:06 -07:00
Elijah Ahianyo
8e4d6a4781
[REF-2636]Improve Error message for unsupported event trigger (#3147)
* Improve Error message for unsupported event trigger

* typo fix

* fix ci

* add tests

* Update reflex/components/component.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* fix typo

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-04-23 14:36:26 -07:00
Masen Furer
cd4f6bd056
[REF-2620] Fallback to npm (not bun) (#3138)
get_package_manager() will always resolve to npm
2024-04-22 18:17:54 -07:00
Ihor
415ce5557c
fix: args issue in __init__ of App class (#3140) (#3141) 2024-04-22 15:43:16 -07:00
benedikt-bartscher
0a1ff38920
separate DECORATED_PAGES per reflex app (#3102) 2024-04-22 11:32:31 -07:00
Masen Furer
041abb39c8
[REF-2619] Re-init when the template is out of date (#3121) 2024-04-22 11:32:00 -07:00
Masen Furer
19007ee2a1
pin react-focus-lock to 2.11.3 (#3123) 2024-04-19 21:12:42 -07:00
Masen Furer
6ca5f48ae7
[REF-2587] Ignore top-level theme appearance (#3119)
* pyi_generator: ignore `app.py` and single files

When running pyi_generator in pre-commit, it passes individual changed files on
the command line as targets, and these were not being properly excluded
according to the EXCLUDED_FILES list.

Add app.py to the EXCLUDED_FILES list so it does not get regenerated
automatically.

* [REF-2587] Ignore top-level theme appearance

From the Radix docs, it is not recommended to actually set `appearance`, but
instead use next-themes to set and switch the appearance dynamically.

Because Reflex already compiles the top-level theme into the next-themes
ThemeProvider, we can blank out the appearance prop after compiling contexts.js
to avoid a mismatch between the selected app appearance and the appearance in
the rx.theme when displaying overlay components.

Fix #2992
2024-04-19 14:43:45 -07:00
Elijah Ahianyo
7b61e7e4bc
Use Fallback command on all platforms (#3099)
* Use Fallback command on all platforms

* precommit fix

* obtain the loglevel cmd for fallback as well

* address PR comment
2024-04-18 20:00:41 -07:00
Martin Xu
c567334c92
allow set in var.contains (#3113)
* allow set in var.contains

* fix UT
2024-04-18 20:00:18 -07:00
benedikt-bartscher
98a4f58134
app_source can be partial (#3100) 2024-04-18 14:00:42 -07:00
Thomas Brandého
36f564d5b0
Experimental layout components (#3066) 2024-04-18 10:54:19 -07:00
Masen Furer
5466d0d9a6
Use errors='replace' with subprocess (#3096) 2024-04-17 12:59:52 -07:00
benedikt-bartscher
9b7e5f4710
improve auto-generated AppHarness app_name with partials (#3088) 2024-04-16 12:32:01 -07:00
Masen Furer
a84bc1e04f
[REF-2586] Pass child event_trigger through DebounceInput (#3092) 2024-04-16 12:31:46 -07:00
benedikt-bartscher
3014db1c1c
do not clear all decorated pages during AppHarness tests (#3093) 2024-04-16 09:17:43 -07:00
Masen Furer
82279b4f1a
Simplify run_process_with_fallback logic (#3089)
* Simplify `run_process_with_fallback` logic

Include log streaming for initial command and fallback command. This is
necessary because if the command produces significant output that is not
consumed, it can fill the OS pipe and block the process from running.

* Avoid overwriting next.config.js when content has not changed

Windows cannot seem to detect when the file changes but the
content is the same and triggers a much longer hot-reload
cycle to deal with the "updated next.config.js"

* Handle case where `next.config.js` doesn't exist yet
2024-04-15 14:49:53 -07:00
Thomas Brandého
b8525261b5
add pathlib.Path serializer (#3082) 2024-04-13 01:27:10 +02:00
Masen Furer
3c8c7c3c46
[REF-1586] Use bun as a package manager on windows (#2359) 2024-04-11 16:43:01 -07:00
Thomas Brandého
e377ce70b6
add run_in_thread (#3077) 2024-04-11 16:42:14 -07:00
wassaf shahzad
4056ad613f
fix: removed .git in template URL (#3049) 2024-04-11 15:35:34 -07:00
Yummy-Yums
6837eb8e8f
Fix For When user selects Empty files using File Upload (#3051) 2024-04-11 15:35:15 -07:00
Masen Furer
fc0be257a3
Fix annotated EventHandler (#3076) 2024-04-11 15:34:00 -07:00
hugehope
713ee06ab7
chore: fix some typos in comments (#3071) 2024-04-11 14:34:23 -07:00
Thomas Brandého
a3cb475247
minimal fix for upload_url in rx.download (#3073) 2024-04-11 14:08:16 -07:00
Elijah Ahianyo
04ab2b9a71
[REF-2524] Tuple unpacking should apply at component level (#3062) 2024-04-11 14:04:19 -07:00
Masen Furer
1a11941577
[REF-2392] Expose next.config.js transpilePackages key (#3006) 2024-04-11 13:50:42 -07:00
Masen Furer
d7abcd45de
Force pydantic v1 for sqlmodel compatibility (#3026) 2024-04-11 13:42:30 -07:00
wassaf shahzad
9073a2781b
added serializer for enums (#3058) 2024-04-09 21:13:43 -07:00
Nikhil Rao
dd241a1097
Add frontend flag to _init (#3054) 2024-04-09 13:15:18 -07:00
Nikhil Rao
d5e3ccaed8
Get project name from pyproject (#3048) 2024-04-08 18:49:24 -07:00
Elijah Ahianyo
fdc944e002
Literal Error Formatting (#3037) 2024-04-08 11:29:40 -07:00
Martin Xu
67702e0927
remove prompt for display name (#3025) 2024-04-05 18:25:37 -07:00
Thomas Brandého
11a64e04d5
change to a nicer error message when reflex run fail (#3023) 2024-04-05 13:44:03 -07:00
Martin Xu
43dff5397c
bugfix in processing the user entered keywords for custom component share command (#3012) 2024-04-04 18:23:04 -07:00
Tom Gotsman
8c99a4a7f5
add logo to blank template (#3014) 2024-04-04 16:06:19 -07:00
Martin Xu
7d36610cae
Support reflex app creation from templates from github (#2490) 2024-04-04 15:31:34 -07:00
Nikhil Rao
44d6c997dd
Reflex run automatically inits when needed (#3011) 2024-04-04 14:34:12 -07:00
Martin Xu
ef5c5bea2b
[REF-2303] Update custom component template for new API (#3007) 2024-04-04 11:58:39 -07:00
Tom Gotsman
0619017626
adding a reflex logo component (#2994) 2024-04-04 11:26:25 -07:00
Thomas Brandého
8735e01e5c
add experimental namespace under rx._x (#2951)
* add experimental namespace under rx._x

* add warning when using rx._x
2024-04-04 19:59:28 +02:00
Phuc Tran
2ba526fb8e
Fix typo under page.py (#3001) 2024-04-04 09:26:45 -07:00
Martin Xu
5274f04b66
[REF-2296] Rename recursive functions (#2999) 2024-04-04 09:26:31 -07:00
Elijah Ahianyo
619c0b0d06
Exclude .web dir when running uvicorn (#2986) 2024-04-04 09:25:03 -07:00
Swaraj Baral
ae3dfc6412
Added custom_attrs to the list of trigger props (#2980) 2024-04-04 09:24:48 -07:00
Thomas Brandého
bf0ebb8d09
Lendemor/improve coverage (#2988)
* add more tests

* add tests to raise coverage

* more tests, bump coverage to 73

* fix up icon_button test

* fix darglint for app.py

* fix utcnow usage warning

* set threshold to 72

* fix timestamp

* fix unit tests for linux-redis

* removed commented code and put a TODO
2024-04-04 14:31:43 +02:00
Thomas Brandého
34ee07ecd1
use dict instead of set to store hooks (#2995) 2024-04-03 17:13:42 -07:00
Sidharth Anil
b2c51b82a5
Windows uvicorn bug fix (#2954) 2024-04-03 14:43:28 -07:00
Elijah Ahianyo
d43a85bab2
Unpack component tuples in a fragment (#2985) 2024-04-03 10:44:04 -07:00
Martin Xu
00b1e193ad
the keywords in pyproject.toml template have extra spaces (#2990) 2024-04-02 14:07:12 -07:00
Alek Petuskey
0981ac675b
Update sidebar template (#2959) 2024-04-02 11:48:34 -07:00
Aman Salwan
0e221f0984
Logic for removing the 'None' property along with its corresponding test case. (#2969) 2024-04-02 11:37:05 -07:00
Martin Xu
6d400eddc9
Revert "[REF-2269] Add add_imports API for component class (#2937)" (#2978)
This reverts commit 8edd1dfdc9.
2024-04-01 15:57:03 -07:00
Martin Xu
df5489807d
adjust share command prompt (#2965)
* adjust share command prompt

* use lower case "y" for console.ask, keep order consistent as "y" then "n"

* share command update: do not suggest demo URL is mandatory, also move to the last question; when checking if user has permission to upsert package, do POST to record this package (if first time sharing)

* clean up prompt for preview image
2024-04-01 11:32:34 -07:00
Thomas Brandého
0af4770180
generate pyi files when building/publishing 3rd party component (#2945)
* build pyi files when building/publishing 3rd party

* fix typo in workflow

* add future annotation

* add tests to pass coverage check

* add more unit tests

* omit pyi_generator from test coverage

* change black from dev deps to direct deps

* remake all pyi

* format pyi if black is present, return as if otherwise

* fix requested changes

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-03-29 09:54:21 -07:00
Masen Furer
55b0fb36e8
[REF-2219] Avoid refetching states that are already cached (#2953)
* Add test_get_state_from_sibling_not_cached

A better unit test to catch issues with refetching parent states
and calculating the wrong parent state names to fetch.

* _determine_missing_parent_states: correctly generate state names

Prepend only the previous state name to the current relative_parent_state_name
instead of joining all of the previous state names together.

* [REF-2219] Avoid refetching states that are already cached

The already cached states may have unsaved changes which can be wiped out if
they are refetched from redis in the middle of handling an event.

If the root state already knows about one of the potentially missing states,
then use the instance that is already cached.

Fix #2851
2024-03-29 09:42:25 -07:00
Masen Furer
628c865530
Set is_hydrated=False at route onChangeStart (#2949)
* Connection pulser only depends on has_connection_errors

Avoid showing the WiFi error icon when the state is hydrating / navigating
because not being hydrated is not indicative of a connection error in itself.

* Set is_hydrated=False at route onChangeStart

When navigation event starts, set is_hydrated=False on the client side before
any on_load event is dispatched. This avoids a flickering problem where the
client browser navigates and briefly shows content on the page before
processing on_load events associated with the page.

Fix #2885

* Update pyi
2024-03-29 09:41:18 -07:00
Malte Klemm
86526cba51
[REF-2127] Loosen requirements (#2796)
* Remove upper bounds of most dependencies.

Also adds a import try except block for pydantic.v1 and relocks.

Keep black and ruff to not mess to much with current formatting

Make pyright see the right import as long as constraint still lock pydantiv v1

Down pin pytest-asyncio again due to known issue

Fix upload handler with latest versions of fastapi

Change comment

* Add changed lockfile

* Set max versions for deps

* Revert app.pyi

---------

Co-authored-by: Malte Klemm <malte.klemm@blueyonder.com>
Co-authored-by: Nikhil Rao <nikhil@reflex.dev>
2024-03-29 09:26:53 -07:00
Masen Furer
5510eaf820
[REF-2265] ComponentState: scaffold for copying State per Component instance (#2923)
* [REF-2265] ComponentState: scaffold for copying State per Component instance

Define a base ComponentState which can be used to easily create copies of the
given State definition (Vars and EventHandlers) that are tied to a particular
instance of a Component (returned by get_component)

* Define `State` field on `Component` for typing compatibility.

This is an Optional field of Type[State] and is populated by ComponentState.

* Add integration/test_component_state.py

Create two independent counters and increment them separately

* Add unit test for ComponentState
2024-03-29 09:22:25 -07:00
Martin Xu
f372402ee4
[REF-2272] Support declaring EventHandlers directly in component (#2952) 2024-03-29 06:26:07 -07:00
Yummy-Yums
e2eced79b1
Scroll to feature (#2948)
* updated watchdog dep

* added scroll_to feature

* Fix pre-commit and pyi issues

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-03-28 17:18:08 -07:00
Masen Furer
8ef193809c
textarea: expose auto_height and enter_key_submit props (#2884)
* textarea: expose auto_height and enter_key_submit props

These two props improve the workflow for chat apps and other situations where
we want multiline input.

auto_height: resize the textarea based on its contents

enter_key_submit: pressing enter submits the enclosing form (shift+enter
inserts new lines)

Fix #1231

* Update pyi
2024-03-28 17:17:30 -07:00
Martin Xu
68c56a9811
[REF-2168] Add share options to custom component commands (#2883)
* add command to share custom component info for gallery

* cleanup

* tested

* Update custom_components.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* reorder the questions

* ask user to verify info before publishing

* remove questions already captured in pyproject.toml

* no need to cache form inputs since not many questions

* tested

* cleanup

* delete test

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-03-28 15:13:37 -07:00
Masen Furer
c9e87d70df
parse_args_spec: resolve annotations with typing.get_type_hints (#2849)
* parse_args_spec: resolve annotations with typing.get_type_hints

Ensure that event trigger specs in modules with future annotations are resolved
correctly.

Fix #2848

* Fix arg spec for on_upload_progress event

Make py3.8 compatible with `get_type_hints`
2024-03-28 12:16:04 -07:00
Martin Xu
8edd1dfdc9
[REF-2269] Add add_imports API for component class (#2937) 2024-03-28 11:03:26 -07:00
Thomas Brandého
1810288007
remove inheritance from Flex for list components (#2936) 2024-03-28 10:58:36 -07:00
Masen Furer
03eb258ee7
[REF-2416] Pass shell=True when starting AppHarness on Windows (#2944)
In exec.py, run_process_and_launch_url already passes `shell=True` on windows,
but the AppHarness has never really been used on Windows, so we were missing
this detail.

Fix #2941
2024-03-27 16:22:58 -07:00
Masen Furer
b23859a45d
[REF-2302] When a Var points to a model, prefer access to model fields. (#2893)
* When a Var points to a model, prefer access to model fields.

When a Var points to a model, and fields of the model share the same name as
Var operations, access to the model fields is now preferred to avoid having Var
operation names shadow model fields. Since most Var operations do not actually
work against Models, this does not really block any functionality.

* Special case for ComputedVar needing to internally access fget

Since fget is a "slot" on property, normal __getattribute__ access cannot find it.

* Workaround https://github.com/python/cpython/issues/88459

In python 3.9 and 3.10, the `isinstance(list[...], type)` returns True, but
it's not a valid class for use in issubclass
2024-03-27 16:22:46 -07:00
Masen Furer
b788890696
[REF-2089] Use dill instead of cloudpickle for serialization (#2922)
* Use dill instead of cloudpickle for serialization

* smaller size pickles
* support dynamically defined states
* avoid issues with unpickleable globals

* pyproject: add dill, remove cloudpickle

* poetry.lock: relock dependencies

* Dynamically convert EventHandler to functools.partial

Instead of converting the functions up front and assigning them to the
instance, unbox the function from the EventHandler when it is requested via
__getattribute__. This reduces the size of the per-instance pickle, because
event handler bodies do not need to be included.

* Improve checking for cython_function_or_method

Because pydantic can be installed without cython, only use the workaround in
the case where the BaseModel.validate function is NOT a FunctionType,
indicating it's a cython function.

* Serialize all State subclasses by reference
2024-03-27 13:47:33 -07:00
Elijah Ahianyo
b34c97d725
Default to None if bun/fnm version is Invalid (#2940) 2024-03-27 12:38:56 -07:00
Thomas Brandého
94823f1317
fix hook order to use ref inside user hooks (#2906)
* fix hook order to use ref inside user hooks

* 2nd attempt to fix ref_hook order

* add missing definition

* remove print statements
2024-03-27 12:49:11 +01:00
Masen Furer
012151132e
Remove page.pyi: it's out of date, and not necessary (#2924)
Fix #2908
2024-03-26 20:21:29 +01:00
benedikt-bartscher
f27eae7655
fix AppHarness reloading (#2916)
* move AppHarness tests to module scope

* fix AppHarness reloading

* add test

* docstrings and formatting

* fix benchmarks not reloading state module
2024-03-26 11:09:46 -07:00
Elijah Ahianyo
61c6728006
[REF-2229]Dedupe deprecation warnings (#2871)
* Dedupe deprecation warnings

* Update reflex/utils/console.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* address PR comments

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-03-26 16:33:55 +00:00
wassaf shahzad
15dc7f4552
added feature to automatically change port (#2867) 2024-03-25 17:38:28 -07:00
Elijah Ahianyo
8a2b92f2e9
[REF-2117]:rx.color_mode_cond to work in f-strings (#2775) 2024-03-25 17:31:53 -07:00
Lucca Psaila
fbc6e7eba3
Update LUCIDE_ICON_LIST with newest Icon names (#2891) 2024-03-25 15:23:10 -07:00
Thomas Brandého
f19a6a8c8d
use radix box instead of chakra one for responsive elements (#2921) 2024-03-25 15:16:48 -07:00
Martin Xu
1e3e1dfe17
include twine in dependencies on pyproject.toml instead of installing on fly (#2895) 2024-03-21 12:48:41 -07:00
Masen Furer
58f706ac7a
[REF-1982] state: Warn if redis state is "too big" (#2868)
If the state serializes to over 100kb and has substates, then print a warning
suggesting the developer reduce the size of the state.
2024-03-20 16:50:48 -07:00
Masen Furer
6a071a27e2
vars: set _was_touched when updating cached vars (#2886)
Ensure that updated cached vars are persisted into redis.
2024-03-20 09:50:42 -07:00
Thomas Brandého
1a66e145b5
make list namespace to follow convention of other comps (#2879) 2024-03-19 18:16:54 -07:00
Masen Furer
7debd3dbb9
When __REFLEX_SKIP_COMPILE == "yes" allow telemetry to fail (#2881)
* When __REFLEX_SKIP_COMPILE == "yes" allow telemetry to fail

Allow running `--backend-only` without a .web directory

* When re-initializing a pre-project_hash project, do not blow up on KeyError
2024-03-19 14:30:55 -07:00
Masen Furer
f446d063fb
HighLevelSelect: pass flex_shrink prop to SelectTrigger (#2876)
* Revert "Remove width prop from rx.select (#2835)"

This reverts commit d14292dc9b.

* HighLevelSelect: pass flex_shrink prop to SelectTrigger

This allows the high level select to have width="100%" and also shrink-to-fit inside a parent container.

Fix #2824, kind of
2024-03-18 15:49:15 -07:00
Masen Furer
ee1ff7f93f
[REF-2122] Opt-in multiprocess compile (#2838)
* Revert "Revert "Revert "Revert "use process pool to compile faster (#2377)" (#2434)" (#2497)" (#2595)"

This reverts commit 6b6eea4d7d.

* Adjust number of operations for more correct progress bar

* app: recognize REFLEX_COMPILE_PROCESSES and REFLEX_COMPILE_THREADS

Control whether multiprocessing is used and the number of processes or threads
that should be used.

This will allow users to opt-in to the new, potentially hazardous,
multiprocessing mode, which results in much faster compiles, but has already
been reverted 4 times. Lets leave the code in this time, but use the thread
pool executor by default.

Limiting the number of threads or processes to 1 can also aid in debugging
issues that arise during compile time.

* Allow REFLEX_COMPILE_PROCESSES=0 to trigger multiprocessing with auto workers
2024-03-15 17:29:52 -07:00
Masen Furer
b89a18f632
Separate get_hooks and get_hooks_internal for stable output (#2710)
* Separate `get_hooks` and `get_hooks_internal` for stable output

When downstream component wrappers depend on State when writing hooks, they
need to be assured that all internal hooks (events, var hooks, memoized
handlers, etc) will be rendered prior to user-defined hooks.

This also makes it less likely for downstream components to feel the need to
overwrite `get_hooks` (no underscore) directly and break internal functioning
of Reflex components.

* Include internal hooks in AppWrap and Page

* Apply get_hooks_internal in a few more places
2024-03-15 16:16:09 -07:00
Masen Furer
479b5182aa
[REF-2216] Warn if windows is used with py312 (#2856)
Display a warning message, recommending python 3.11 with the current release of
reflex.

We need this until running with a uvicorn version that has better support for
py3.12 on windows.
2024-03-15 11:16:20 -07:00
Thomas Brandého
1048f86dd3
convert text inside list_item to span and set icon display to inline (#2860)
* convert text inside list_item to span and set icon display to inline

* fix props

* add comment for reflex-web
2024-03-15 10:57:20 -07:00
Masen Furer
432fcd4a5b
Account for imports of @rx.memo components for frontend package installation (#2863)
* CustomComponent ignores the annotation type in favor of the passed value

Do not require rx.memo wrapped functions to have 100% correct annotations.

* test_custom_component_get_imports: test imports from wrapped custom components

* Account for imports of custom components for frontend installation

Create new ImportVar that only install the package to avoid rendering the
imports in the page that contains the custom component itself.

* Handle Imports that should never be installed

* Fix up double negative logic

* Perf Optimization: use the imports we already calculate during compile

Instead of augmenting _get_imports with a weird, slow, recursive crawl and
dictionary reconstruction, just use the imports that we compile into the
components.js file to install frontend packages needed by the custom
components.

Same effect, but adds essentially zero overhead to the compilation.
2024-03-15 09:59:59 -07:00
Masen Furer
fb2c3606d9
Get client_ip from asgi.scope (#2808)
* Get `client_ip` from `asgi.scope`

It seems like REMOTE_ADDR is always 127.0.0.1, which is not super useful when
trying to figure out where the websocket connection is originating from.

Of course this isn't a silver bullet because most-likely the WS will be passed
through a reverse proxy anyway... in that case, the client IP is likely in the
headers under `x_forwarded_for`

* client_ip: fallback to REMOTE_ADDR
2024-03-14 10:03:30 -07:00
Elijah Ahianyo
a06b570e3a
Benchmark with app harness (#2774) 2024-03-13 15:59:55 -07:00
Emmanuel Onwuegbusi
2a8d9d1ef4
added name of Var to error message (#2827) 2024-03-13 15:39:49 -07:00
benedikt-bartscher
5701a72c8f
Bare sqlalchemy metadata (#2355) 2024-03-13 15:32:35 -07:00
Masen Furer
036afa951a
Make @rx.memo work with state vars passed as props (#2810)
* Make @rx.memo work with state vars passed as props

Seems like this was a regression from the StatefulComponent refactor, because
trying to pass a state Var to a CustomComponent gave undefined, likely due to
`_get_vars` not accounting for `self.props` in CustomComponents.

With this change, it works.

Integration test added to `test_var_operations.py`

* Allow CustomComponent props to be Component

Avoid calling `.json()` on all Base types because the Var serializer already
does that, but this way, more specific types (like Component) can be serialized
differently.

When the type is Component, attach a VarData with the imports and hooks to when
the Var is rendered, it also carries the correct imports/hooks and does not
throw frontend errors.
2024-03-13 13:41:17 -07:00
Thomas Brandého
92db402539
telemetry refactor + unit tests (#2786) 2024-03-13 12:38:54 -07:00
Masen Furer
f52ff56440
[REF-2086] Avoid "Warning: The path to the Node binary could not be found. (#2803) 2024-03-13 12:35:43 -07:00
Nikhil Rao
d14292dc9b
Remove width prop from rx.select (#2835) 2024-03-13 12:32:12 -07:00
Thomas Brandého
e5fc5f9a83
better default title for seo (also remove default description) (#2844)
* better default title for seo (also remove default description)
2024-03-13 11:18:54 -07:00
Masen Furer
eb18ce90d5
[REF-2172] Add DECORATED_PAGES before compiling in thread (#2841) 2024-03-12 10:28:37 -07:00
Masen Furer
94e750a5f1
[REF-2157] Allow rx.download to resolve rx.get_upload_url links (#2813) 2024-03-11 12:29:34 -07:00
hjpr
4413cb4038
Allow access to position from HighLevelSelect (#2829) 2024-03-11 12:27:38 -07:00
benedikt-bartscher
8a3c9383fb
improve event handler state references (#2818) 2024-03-11 12:18:18 -07:00
Masen Furer
c809107d09
[REF-2158] Enable state when on_load or event_triggers are set. (#2815)
* [REF-2158] Enable state when `on_load` or event_triggers are set.

Basically all events in a reflex app require the backend to be up, even the
built-in server side events round trip to the backend and require "state" even
if no user-defined state classes are declared.

test_app_state_determination: checking that state is enabled at the right time

* Clear out DECORATED_PAGES when initializing a new app
2024-03-08 17:34:09 -08:00
Martin Xu
bf297e2f5b
[REF-2141] Custom component command improvements (#2807)
* add custom component command improvements

* fix test

* fix regex to include both single/double quotes
2024-03-07 20:42:22 -08:00
benedikt-bartscher
f5b7eca9c7
add support for sqlalchemy AssociationProxys (#2809)
* add support for sqlalchemy AssociationProxys

* python 3.8 compatibility
2024-03-07 15:19:35 -08:00
benedikt-bartscher
19a5cdd408
Track state usage (#2441)
* rebase

* pass include_children kwarg in radix FormRoot

* respect include_children

* ruff fixes

* readd statemanager init, run pyi gen

* minor performance imporovements, fix for state changes

* fix pyi and pyright

* pass include_children for chakra

* remove old state detection

* add test for unused states in stateless app

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-03-07 14:25:55 -08:00
Masen Furer
5d647a498f
[REF-1368] Move common form functionality to rx.el.forms (#2801)
* [REF-1368] Move common form functionality to rx.el.forms

Allow plain HTML Form element to have magic on_submit event handler.

* Chakra and Radix forms inherit `on_submit` functionality from rx.el.form

Consolidate logic in the basic HTML form and use it in both Radix and Chakra
form wrappers.

* from __future__ import annotations for py38
2024-03-07 13:17:54 -08:00
benedikt-bartscher
8903ebb8b0
add webdriver option arguments via env (#2783)
* add webdriver option arguments via env

* forgot to split the args
2024-03-06 17:13:40 -08:00
Masen Furer
ecb4dbaea9
[REF-2098] Allow overlay Close components to have on_click handlers (#2793)
* [REF-2098] Allow overlay Close components to have on_click handlers

The child of the Radix *Close components are passed `asChild`, meaning they are
treated as the direct child of the Close itself. This causes the `on_click`
handler attached to such an element to override the default `on_click` behavior
of the Close, which is to close the overlay, thus breaking the desired behavior
of the Close component.

When creating a Close component, if the child has an `on_click` handler, then
internally wrap it in a `Flex` so that the `Flex` gets the `asChild` treatment,
and both the default on_click and the child's on_click are both fired.

Bonus fix: pass `asChild` when constructing the `DrawerClose` to avoid a
<button> in <button> warning in the browser console, because the Drawer does
NOT pass `asChild` to the Close by default.

* Move Trigger logic to RadixThemesTriggerComponent base class

Apply trigger logic to Trigger, Close, Cancel, and Accept components; including
hover_card and dropdown_menu.
2024-03-06 17:09:46 -08:00
Nikhil Rao
c61419a761
Unwrap images in rx.markdown (#2789) 2024-03-06 16:03:33 -08:00
Masen Furer
77d551f781
[REF-1994] ThemePanel: clear chakra-ui-color-mode key when using theme panel (#2799)
The ThemePanel fights with the ThemeProvider when the user color preference key differs from the `appearance` prop specified in the theme. To avoid issues when using the ThemePanel (in development), clear out the user color preference before loading the page and before unloading the page (to ensure it does not freeze on reload).

Clearing the user preference isn't ideal production behavior, but typically the
ThemePanel is only used during development for trying out different styles, and
having it not freeze the app is better dev behavior.

Fix #2650
2024-03-06 15:32:08 -08:00
Masen Furer
03aa28320a
Perf improvements (part 1) (#2779)
* types: remove runtime imports from `is_generic_alias`

Reduce try/except contexts for better performance.

* _decode_var optimizations:

* compile the regex once at module scope
* fast path string scan for REFLEX_VAR_OPENING_TAG before doing more complex logic

* Avoid repeated `hasattr` check in `is_union`

`is_union` gets called a lot, and the hasattr check can be resolved at import
time for better performance.
2024-03-06 10:42:20 -08:00
Carlos Llatser
2125701c2d
Fix encoding of the .gitignore file on Windows (#2797) 2024-03-06 09:40:55 -08:00
Thomas Brandého
1b207eb444
fix template (#2787) 2024-03-05 16:10:44 -08:00
Masen Furer
c79719f7be
Expose on_drop event trigger for rx.upload component. (#2766)
* Expose `on_drop` event trigger for rx.upload component.

If `on_drop` is provided, it should be an EventSpec accepting the special
rx.upload_files() arg.

When `on_drop` is provided, it will be called immediately when files are
selected. The default functionality of saving a file list to be uploaded later
will not be available.

* update pyi file

* Undeprecate explicit EventChain
2024-03-05 12:07:36 -08:00
Masen Furer
75b63cbc25
[REF-2087] Better rx.progress styling integration with radix themes (#2762)
* [REF-2087] Better rx.progress styling integration with radix themes

Support the `radius` prop on `ProgressRoot`, via data-radius and CSS tokens

Support the `color_scheme` on `ProgressIndicator`, via data-accent-color and CSS token

Move high-level `Progress` to a real `Component` subclass to get better pyi hinting

Allow overriding the background color of the `ProgressIndicator` via low-level api

Remove `value` and `max` props from `ProgressRoot` (these only apply to `ProgressIndicator`)

* Progress: do not pass `value` or `max` to ProgressRoot

* progress: use background_color instead of background-color
2024-03-05 12:07:20 -08:00
Masen Furer
fc190c8c8f
app_module_for_backend: wait for _compile in prod mode (#2760)
* Expose reflex.utils.exec.is_prod_mode

Formalize runtime checking of the app's `--env` parameter.

* app_module_for_backend: wait for _compile in prod mode

Prod mode uses separate worker processes that fork from the main process.

If the app is not fully compiled when the fork occurs, any further changes to
the app (like mounting the _upload endpoint) will not be reflected in the
workers. This is not a performance hit because compile is skipped anyway
for backend processes and hot reload is not in the picture for prod mode.

* remove _is_dev_mode and replace it with calls to is_prod_mode()

_is_dev_mode was a private function in the compiler, but now that utils.exec
exposes is_prod_mode, we should use that throughout for consistency
2024-03-04 16:50:31 -08:00
Masen Furer
4f12d2e269
Fix infinite recursion when a substate named "state" has a computed var (#2778)
* test_potentially_dirty_substates: when a state named State should be computed

Catch a regression introduced in 0.4.3a1

* _potentially_dirty_substates: qualify substate name

When looking up substate classes, ensure the qualified name is used to avoid
issues with same-named substates.
2024-03-04 13:13:08 -08:00
Masen Furer
9327bfaa71
Mark Upload.is_used when calling get_upload_url (#2765) 2024-03-03 19:47:17 -08:00
Pablo GS
bbb9253985
Solved Nodejs prerequisite check (#2767) 2024-03-03 19:47:05 -08:00
macmoritz
9e0452beb0
pass lang and custom_attrs from app to html root (#2697)
* pass lang and custom_attrs from app to html root

* fix some pre-commit errors and try adding lang

* fix tests

* really fix test

* cleanup with @benedikt-bartscher

* fix props and tests

* use str instead of var

* change typing of html_custom_attrs to not allow Vars
2024-03-03 13:51:20 -08:00
Frank Bold Society
ab6ebfc1a8
Update CSS padding in accordion.py (#2759)
Typo in default padding for AccordionContent.

"15px, 20px" lead to invalid CSS.

"15px 20px" is correct.
2024-03-01 12:32:44 -08:00
Yummy-Yums
7725c48fb7
Reconnection Logic (#2743)
* reconnection logic

* prettier state.js

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-29 16:21:35 -08:00
Tom Gotsman
93fc269860
initial attempt at writing test for urls (#2689)
* initial attempt at writing test for urls

* turn it into a pytest test

* fix precommit and add wrong url to make sure test work

* fix darglint error and fix url set error

* black error

* add to test .md files in reflex as well

* update to fix masen comment

* black formatting

* Fix trailing slash in reflex/state.py

---------

Co-authored-by: Tom Gotsman <tomgotsman@Toms-MacBook-Pro.local>
Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-29 13:45:57 -08:00
wassaf shahzad
0a18eaa28b
DRAFT PR - Added code for computed backend vars (#2540)
* added code for computed backend vars

* fixed formatting issues

* fix small bug

* fixes ruff issue

* fixed black issue

* augment test for backend computed var

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-29 13:00:41 -08:00
Thomas Brandého
cc678e8648
add pulser for connection + adjust condition for connnection_modal (#2676)
* add pulser for connection + adjust condition for connnection_modal

* update style for connection pulser

* rename connectError to connectErrors

* resolve update bug of connectErrors

* fix pulse definition

* rollback pulse definition

* Define WifiOffPulse icon as its own component

Attach the pulse keyframes and imports to the icon itself so that the code gets
properly included in stateful_components.js when it is used.

* limit number of errors in memory

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-29 19:01:12 +01:00
Thomas Brandého
bea9eb4349
fix drawer on_open_change event (#2755) 2024-02-29 18:04:59 +01:00
Martin Xu
4f9cdd6472
Add support for custom components starter (#2314) 2024-02-28 15:25:26 -08:00
benedikt-bartscher
e70c149752
call default_factorys on State.reset (#2749) 2024-02-28 14:55:22 -08:00
Thomas Brandého
3bcd0672e5
update templates radix sidebar (#2705) 2024-02-28 14:52:24 -08:00
Amir Molavi
842c7e6882
Add config to rx.plotly component (#2745) 2024-02-28 12:44:33 -08:00
Thomas Brandého
2062c1dd05
fix initial value for color_mode (#2741)
* fix initial value for color_mode

* better fix
2024-02-28 03:31:38 +01:00
Elijah Ahianyo
7ec7f031a3
Only alert users of reflex upgrade once per project (#2731) 2024-02-27 17:12:21 -08:00
Masen Furer
3c3c331856
[REF-2101] Support default_value and default_checked on rx.el.input (#2739) 2024-02-27 16:57:37 -08:00
Masen Furer
deae662e2a
[REF-1988] API to Get instance of Arbitrary State class (#2678)
* WiP get_state

* Refactor get_state fast path

Rudimentary protection for state instance access from a background task
(StateProxy)

* retain dirty substate marking per `_mark_dirty` call to avoid test changes

* Find common ancestor by part instead of by character

Fix StateProxy for substates and parent_state attributes (have to handle in
__getattr__, not property)

Fix type annotation for `get_state`

* test_state: workflow test for `get_state` functionality

* Do not reset _always_dirty_substates when adding vars

Reset the substate tracking only when the class is instantiated.

* test_state_tree: test substate access in a larger state tree

Ensure that `get_state` returns the proper "branch" of the state tree depending
on what substate is requested.

* test_format: fixup broken tests from adding substates of TestState

* Fix flaky integration tests with more polling

* AppHarness: reset _always_dirty_substates on rx.State

* RuntimeError unless State is instantiated with _reflex_internal_init=True

Avoid user errors trying to directly instantiate State classes

* Helper functions for _substate_key and _split_substate_key

Unify the implementation of generating and decoding the token + state name
format used for redis state sharding.

* StateManagerRedis: use create_task in get_state and set_state

read and write substates concurrently (allow redis to shine)

* test_state_inheritance: use polling cuz life too short for flaky tests

kthnxbai ❤️

* Move _is_testing_env to reflex.utils.exec.is_testing_env

Reuse the code in app.py

* Break up `BaseState.get_state` and friends into separate methods

* Add test case for pre-fetching cached var dependency

* Move on_load_internal and update_vars_internal to substates

Avoid loading the entire state tree to process these common internal events. If
the state tree is very large, this allow page navigation to occur more quickly.

Pre-fetch substates that contain cached vars, as they may need to be recomputed
if certain vars change.

* Do not copy ROUTER_DATA into all substates.

This is a waste of time and memory, and can be handled via a special case in
__getattribute__

* Track whether State instance _was_touched

Avoid wasting time serializing states that have no modifications

* Do not persist states in `StateManagerRedis.get_state`

Wait until the state is actually modified, and then persist it as part of `set_state`.

Factor out common logic into helper methods for readability and to reduce
duplication of common logic.

To avoid having to recursively call `get_state`, which would require persisting
the instance and then getting it again, some of the initialization logic
regarding parent_state and substates is duplicated when creating a new
instance. This is for performance reasons.

* Remove stray print()

* context.js.jinja2: fix check for empty local storage / cookie vars

* Add comments for onLoadInternalEvent and initialEvents

* nit: typo

* split _get_was_touched into _update_was_touched

Improve clarity in cases where _get_was_touched was being called for its side
effects only.

* Remove extraneous information from incorrect State instantiation error

* Update missing redis exception message
2024-02-27 13:02:08 -08:00
Carlos Llatser
bf07315cb4
Add header tag for exporting its corresponding component (#2732) 2024-02-27 09:58:31 -08:00
Thomas Brandého
467fb794da
fix telemetry for init event (#2736) 2024-02-27 18:53:57 +01:00
Chris Davis
39175f5812
Update sidebar template README.md (#2735) 2024-02-27 09:50:26 -08:00
Masen Furer
fc874e2ece
Avoid frontend errors with getRefValue (#2691) 2024-02-26 19:38:02 -08:00
Masen Furer
350a051a45
[REF-1741] Disallow routes with /api prefix (#2711) 2024-02-26 19:34:51 -08:00
Thomas Brandého
0464a7723e
remove chakra from markdown component_map (#2709) 2024-02-26 19:34:22 -08:00
wassaf shahzad
4d3d9aa717
added accent option in color (#2713) 2024-02-25 19:47:56 -08:00
benedikt-bartscher
24541aa91c
fix inherited backend var deps (#2715)
* fix inherited backend var deps

* fixing the real issue with @masenf

* Revert "fix inherited backend var deps"

This reverts commit 894e3e14ac.

* python 3.8
2024-02-24 14:05:49 -08:00
Tom Gotsman
d0e62b5020
small update to color scheme high level select (#2712)
Co-authored-by: Tom Gotsman <tomgotsman@Toms-MacBook-Pro.local>
2024-02-24 14:05:36 -08:00
benedikt-bartscher
cace611aec
do not store new_backend_vars in State class (#2707) 2024-02-24 13:56:22 -08:00
benedikt-bartscher
93f402c773
Initial values for computed vars (#2670)
* initial values for computed vars draft

* add tests, add computed_var overloads

* fix darglint

* pass initial to substates when calling dict

* add tests for for child states

* format black

* allow None as initial value

* rename runtime_only to raises_at_runtime

* cleanup unused arguments of ComputedVars

* refactor cached_var to be partial of computed_var
2024-02-24 13:45:07 -08:00
Timothy Pidashev
d698e4dcd7
Bump axios version to 1.6.0 (#2699) 2024-02-22 14:45:47 -08:00
Thomas Brandého
05044ed912
use direction props from radix.Flex (#2696)
* use direction props from radix.Flex

* override direction props

* test no var

* confirm no var

* add comment for reflex-web
2024-02-22 13:33:10 -08:00
Elijah Ahianyo
b849c8d9d8
Debounce input_ref Truthiness check for vars (#2692)
* Debounce `input_ref` Truthiness check for vars

* fix integration test
2024-02-22 11:21:15 -08:00
Masen Furer
421bfa034a
Apply app theme color_mode/appearance as next-themes default (#2654)
* Apply app theme color_mode/appearance as next-themes default

* compiler: blacken
2024-02-22 10:14:38 -08:00
Masen Furer
953495775d
[REF-2045] Implement __reduce_ex__ for MutableProxy (#2688)
* test_state: augment modify_state test for writing MutableProxy

If the object contains a MutableProxy inside of it, then we get a pickling
error.

* Implement __reduce_ex__ for MutableProxy

Pass through `__reduce_ex__` onto the wrapped instance to strip it off when
cloudpickling to redis.

* base: get_value actually works with a str key

Unless the key isn't a field on the model, then it falls back to the previous
behavior of just returning the given key as is... why does it do this? I don't
know.
2024-02-22 10:14:14 -08:00
Elijah Ahianyo
f4666c4c96
Make rx.Upload a memoization leaf (#2695) 2024-02-22 08:15:47 -08:00
Krys
278183b526
fix image serializing - REF-1889 (#2550)
* fix image serializing

* If get_format_mimetype does not work, look up format in Image.MIME

Throw a warning if the image format does not have an associated MIME type and
ultimately fallback to image/png and let the browser figure it out.

* test_media: end to end serialization of PIL images

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-22 08:13:19 -08:00
Elijah Ahianyo
a6fb25e139
Progress component to support color_scheme on component level (#2684)
* Progress component to support `color_scheme` on component level

* pyi fix
2024-02-21 14:38:27 -08:00
Martin Xu
a3be76fb75
use sync redis client to sanity check (#2679) 2024-02-21 07:01:44 -08:00
Masen Furer
4601cca997
Revert "Added descriptor for backend vars (#2618)" (#2682)
This reverts commit f9d219407f.
2024-02-21 05:41:27 -08:00
Masen Furer
756bf9b0f4
[REF-1885] Shard Substates when serializing to Redis (#2574)
* Move sharding internal to StateManager

Avoid leaking sharding implementation details all over the State class and
breaking the API

* WiP StateManager based sharding

* Copy the state __dict__ when serializing to avoid breaking the instance

* State tests need to pass the correct substate token for redis

* state: when getting parent_state, set top_level=False

ensure that we don't end up with a broken tree

* test_app: get tests passing with redis by passing the correct token

refactor upload tests to suck less

* test_client_storage: look up substate key

* state.py: pass static checks

* test_dynamic_routes: working with redis state shard

* Update the remaining AppHarness tests to pass {token}_{state.get_full_name()}

* test_app: pass all tokens with state suffix

* StateManagerRedis: clean up commentary
2024-02-21 01:50:25 -08:00
wassaf shahzad
f9d219407f
Added descriptor for backend vars (#2618)
* Added descriptor for backend vars

* Fixed darglint issue
2024-02-20 15:51:48 -08:00
Thomas Brandého
9d051d383e
ThemePanel is toggleable with bool in Theme (#2675)
* ThemePanel is toggleable with bool in Theme

* change prop name to theme_panel
2024-02-20 15:51:24 -08:00
abulvenz
980834605b
feat: Synchronizing localStorage between tabs using browser events (#2533)
* feat: Synchronizing localStorage between tabs using browser events

* test_client_storage: Test sync'd local storage vars

* update_vars_internal: generic handler to apply var changes to state tree

Apply fully qualified var names to each substate they are associated with. This
allows consistent updates to arbitrary state vars without having to know their
"setter" arguments, in case the user has overwritted the `set_x` name.

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-20 15:14:55 -08:00
benedikt-bartscher
6c49b96d9d
Fix SQLAlchemy list types (#2668)
* fix sqlalchemy relationship list type hints

* py3.8 and py3.9 compatibility

Co-authored-by: Masen Furer <m_github@0x26.net>

* add missing import

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-20 15:14:33 -08:00
wassaf shahzad
0b771db10a
fixed bug in var type for iterable types (#2617)
* fixed bug in var type for iterable types

* added test cases

* formatting issue

* fixed black formatting  issues
2024-02-20 15:02:20 -08:00
Elijah Ahianyo
37f66207fc
Use classes for allowed components (#2662) 2024-02-20 14:40:48 -08:00
Elijah Ahianyo
ec31f00185
Accordion Items unique Value (#2663)
* Accordion Items unique Value

use crypto.randomUUID to generate accordion item value at runtime instead of compile time

* use generateUUID in state.js instead of crypto.randomUUID()
2024-02-20 11:50:50 -08:00
Elijah Ahianyo
eeff4142ab
Accordion Root Exclude color_scheme and variant props in tag (#2664)
* Accordion Root Exclude `color_scheme` and `variant` props in tag

* colorScheme -> color for radix primitives

* remove _rename_props based on pr comments

* lint

* pyi fix

* pop instead of del
2024-02-20 09:57:01 -08:00
Masen Furer
279e9bfa28
[REF-1993] link: respect is_external prop and other attributes on A tag (#2651)
* link: respect `is_external` prop and other attributes on A tag

Instead of passing all props to NextLink by default, only pass props that
NextLink understands, placing the remaining props on the Radix link

Add a test case to avoid regression of `is_external` behavior.

* Link is a MemoizationLeaf

Because Link is often rendered with NextLink as_child, and NextLink breaks if
the href is stateful outside of a Link, ensure that any stateful child of Link
gets memoized together.
2024-02-19 15:43:27 -08:00
abulvenz
052f82cd06
fix: File upload error after using rx.clear_selected_files (#2666) 2024-02-19 10:42:11 -08:00
Nikhil Rao
899e35edba
Deprecate get_asset_path (#2644) 2024-02-16 11:53:51 -08:00
Nikhil Rao
4ad238c42c
Update deprecation version to 0.5.0 (#2642) 2024-02-16 11:23:15 -08:00
Elijah Ahianyo
3f24b42260
Drawer component styles should only be in css dict (#2640) 2024-02-16 09:41:02 -08:00
Masen Furer
10984ef869
Quick fixes for regressions in 0.4.0 (#2639)
* rx.el.img accepts Any type for src prop

This retains compatibility with the previous chakra image src prop.

* Re-add `moment` back to top-level namespace
2024-02-15 22:48:52 -08:00
Masen Furer
1698e3e5e3
Fix more information link to v0.4.0 blog post (#2638) 2024-02-15 20:51:06 -08:00
Masen Furer
3350fa0388
Component: translate underscore suffix for props supported by chakra (#2636)
* Component: translate underscore suffix for props supported by chakra

type_ becomes type
min_ becomes min
max_ becomes max
id_ becomes id

The deprecation warning is only displayed when the underscore suffix prop is
passed and the non-underscore suffix prop is defined on the given component.

* Rename type_ to type in accordion and scroll_area

All of the new radix components avoid the underscore suffix names where
possible.

* Update deprecation warning wording

* Refactor for readability

* Do not raise deprecation warning for `id_`

id is kind of a special prop because it exists on all components

* Add test case for deprecating underscore suffix props
2024-02-15 20:46:06 -08:00
Nikhil Rao
0beec0b2a6
Default high level radio to horizontal (#2637) 2024-02-15 20:34:52 -08:00
Masen Furer
b03fa5709f
rx.theme: Recognize color_mode in addition to appearance (#2635) 2024-02-15 18:15:44 -08:00
Nikhil Rao
7240f8ee6f
Handle component namespaces in global styles (#2630) 2024-02-15 16:03:10 -08:00
Thomas Brandého
0cb66fb561
set default align stack (#2626) 2024-02-15 13:57:27 -08:00
Thomas Brandého
411a3a1f13
accordion default classname (#2628) 2024-02-15 13:57:12 -08:00
Nikhil Rao
6ded702d03
Simplify app template (#2627) 2024-02-15 12:51:52 -08:00
Masen Furer
d979d99338
[REF-1902] [REF-1987] Chakra upgrade message (#2624)
* Show rx.chakra upgrade message _before_ overwriting the version

Ensure that the conditions for showing the rx.chakra upgrade message
are checked before overwriting the version saved in .web/reflex.json.

Check for the absense of a config file to suppress the upgrade message
when init'ing a brand new project.

Check for the existance of `reflex.json` before opening it, since it
might not exist at the point it's checked.

* Update more information link in chakra upgrade message

* Fix long line
2024-02-15 12:49:53 -08:00
Timothy Pidashev
45b70a130c
align vstack in blank demo app (#2625) 2024-02-15 12:17:53 -08:00
Martin Xu
37eeea1100
Spacing literal should include "0" (#2622)
* spacing literal should include "0"

* rename to LiteralSpacing

* pyi
2024-02-15 11:54:38 -08:00
Masen Furer
44000af633
Unbreak demo app (#2623)
Apparently this was converted before code_block got moved back to the top
level.
2024-02-15 11:09:00 -08:00
Elijah Ahianyo
791fcc9b41
Text as_ prop literals update (#2620)
Support more literal values
2024-02-15 11:08:19 -08:00
Nikhil Rao
80c62da062
Use align start by default stacks (#2619) 2024-02-14 22:43:16 -08:00
Thomas Brandého
39486386f4
fix value/default_value in accordion (#2616)
* fix value/default_value in accordion

* fix for 3.8 compat

* update comment
2024-02-14 17:06:28 -08:00
Masen Furer
a91987c051
Update docstrings for Radix components based on upstream descriptions (#2615)
These are better than copying the generic description of Button in many many
many components.
2024-02-14 15:51:38 -08:00
Masen Furer
f12746d859
Inherit _rename_props from parent classes (#2613)
Ensure that _rename_props from base classes add to the list of _rename_props in subclasses.

Add a test case to validate this behavior.
2024-02-14 14:36:01 -08:00
Elijah Ahianyo
74d90ffb65
Apply themes to drawer content (#2612) 2024-02-14 13:36:48 -08:00
Elijah Ahianyo
d8a9a0c95d
Accordion var data Attribute Error Fix (#2611) 2024-02-14 11:55:05 -08:00
Thomas Brandého
48d6717bb8
add span in text namespace (#2607) 2024-02-14 10:30:26 -08:00
Thomas Brandého
4232767b69
update docstrings for Dialog components (#2608) 2024-02-14 10:29:09 -08:00
Alek Petuskey
eadbf1d3db
Fix comments on drawer (#2604)
* Fix comments on drawer

* Fix precommit

* Fix pyi

* Fix table invalid children

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
2024-02-13 22:10:18 -08:00
invrainbow
e729a315f8
Fix fstrings being escaped improperly (#2571) 2024-02-13 14:32:44 -08:00
invrainbow
fccb73ee70
Fix rx.progress to support max prop (#2601) 2024-02-13 14:25:31 -08:00
Elijah Ahianyo
5e9b472d1b
[REF-1919] Valid Children/parents to allow Foreach,Cond,Match and Fragment (#2591) 2024-02-13 14:22:22 -08:00
invrainbow
eea3b00deb
Fix AccordionItem interactive docs not showing up (#2600) 2024-02-13 14:08:30 -08:00
Masen Furer
656e43503c
[REF-1840] Clean up color_scheme mapping (#2602) 2024-02-13 14:07:25 -08:00
Masen Furer
4b327edeb6
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-13 12:36:30 -08:00
Tom Gotsman
dec777485f
rx.download accepts data arg as either str or bytes (#2493)
* initial attempt that works for dataframe and text downloads

* changes for masens comments

* Instead of using blob, just send a data: URL from the backend

* Enable rx.download directly with Var

If the Var is string-like and starts with `data:`, then no special processing
occurs. Otherwise, the value is passed to JSON.stringify and downloaded as
text/plain.

* event: update docstring and comments on rx.download

Raise ValueError when URL and data are both provided, or the data provided is
not one of the expected types.

---------

Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-13 12:35:31 -08:00
jackie-pc
6b6eea4d7d
Revert "Revert "Revert "use process pool to compile faster (#2377)" (#2434)" (#2497)" (#2595) 2024-02-13 12:16:35 -08:00
Nikhil Rao
db90006512
Update input to use textfield.input (#2599) 2024-02-13 12:13:48 -08:00
Thomas Brandého
5328f624d4
update connection banner and connection modal to use Radix component instead of chakra (#2593) 2024-02-13 12:05:59 -08:00
Martin Xu
fda6785d56
sub form.root to form class solely for documentation (#2594) 2024-02-13 12:03:17 -08:00
jackie-pc
b130dd07cd
print background compile errors ASAP (#2596) 2024-02-13 12:02:37 -08:00
Elijah Ahianyo
c1089fc8f9
[REF-1925] Accordion foreach fix (#2598) 2024-02-13 11:58:48 -08:00
Masen Furer
d26ceb236d
Expose get_upload_url and get_upload_dir at top level 2024-02-13 11:14:15 -08:00
Masen Furer
dcba038de5
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-13 11:10:33 -08:00
Masen Furer
b5f06991a9
Change names to get_upload_dir and get_upload_url (#2587)
These shorter names are more concise and easier to type without losing
significant information.
2024-02-13 11:09:48 -08:00
Masen Furer
4206afeb7b
[REF-1958] Remove shadowed radix css props (#2590)
* style: shorthand replacements need camelCase

Avoid warning on terminal and in browser console from using kebab-case CSS
props with emotion.

* _rename_props only replace prop name once

In case the value also contains the prop name, we don't want to replace it
multiple times.

* pyi_generator: ignore _rename_props in create signature

* Avoid shadowing CSS prop `display` and `gap`

Replace usages of `gap` with `spacing` to retain Radix sizing number system,
while allowing users to specify a responsive `gap` using CSS units.

Remove `display` props from radix components, allowing `display` to accept
responsive lists.

* checkbox: apply `gap` to `flex` if provided

* Remove _rename_props from .create signatures

* Fix spacing prop in blank template

* Fixup tests after changing style shorthand to return camelCase
2024-02-13 10:06:28 -08:00
Nikhil Rao
f05d5ba7ba
Rename components in top level namespace (#2589) 2024-02-12 21:35:49 -08:00
invrainbow
f2a931339a
Merge pull request #2588 from reflex-dev/brandon/fix-progress
Fixes to rx.progress
2024-02-12 19:34:18 -08:00
invrainbow
61234ae164
Fix operator precedence (#2573) 2024-02-12 19:30:25 -08:00
Brandon Hsiao
de6835f464 ruff 2024-02-12 19:16:20 -08:00
Brandon Hsiao
481c9d9dbd fix, lint 2024-02-12 18:57:52 -08:00
Brandon Hsiao
977a9d632b add fixes to rx.progress 2024-02-12 18:38:34 -08:00
Alek Petuskey
de30e15b1d
Add alias for Vaul drawer (#2586) 2024-02-12 15:29:45 -08:00
Nikhil Rao
5c6a800b62
Update styles for progress (#2570) 2024-02-12 15:20:36 -08:00
Tom Gotsman
71e4d539f6
Remove dropdown menu sub content extra props (#2582) 2024-02-12 15:19:05 -08:00
Masen Furer
0da21ea605
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-12 15:05:34 -08:00
Masen Furer
47a6901695
banner.py: fix import specification for getBackendURL (#2584)
* banner.py: fix import specification for getBackendURL

Use the constant Dirs.STATE_PATH

* state.js: only `getBackendURL` dynamically when running client side

During server side rendering, `getBackendURL` cannot access the current
location from the `window`, because there is no `window`.

* Better client-side context checking

Thanks jackie
2024-02-12 15:04:59 -08:00
Masen Furer
eafe53369e
keep-chakra: whitelist is always whitelist (#2585)
Regardless of whether the same name exists in the top level rx.<x> namespace,
always convert whitelisted names to rx.chakra.<x>
2024-02-12 14:55:39 -08:00
Masen Furer
fc6eff7104
Convert templates to use rx.chakra where needed (#2555)
* Convert templates to use `rx.chakra` where needed

* reflex_init_in_docker_test: run test on PR into reflex-0.4.0

This is why we didn't catch the template issues earlier
2024-02-12 13:32:23 -08:00
Thomas Brandého
798b72825d
fix match import in iconbutton (#2552) 2024-02-12 12:36:48 -08:00
Masen Furer
2b7e7450f8
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-12 12:22:50 -08:00
Masen Furer
10e8bd010c
Upload Workflow Refactor (#2309)
* upload with StaticFiles

* always create uploaded files folder

* just use /_upload to serve uploaded files

* Upload: update pyi file

* app.py: only mount Upload StaticFiles if the upload component is used
2024-02-12 12:21:56 -08:00
Martin Xu
6e946631f3
alias form to form.root (#2579) 2024-02-12 10:57:17 -08:00
Nikhil Rao
93c0091aad
remove extra props on scroll area (#2581) 2024-02-12 10:54:58 -08:00
Masen Furer
58b5e2f5bd
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-09 19:38:35 -08:00
Elijah Ahianyo
ccc9c32c95
Get rx.color working with fstrings (#2562)
* fix for rx.color working with fstrings

* Fix fstrings issues
2024-02-09 17:06:55 -08:00
Masen Furer
3136a86e58
[REF-1921] Remove HTML attributes that shadow CSS props (#2566) 2024-02-09 16:13:35 -08:00
Masen Furer
78c54b3486
Use rx.el.img as rx.image (#2558)
* Use rx.el.img as rx.image

* Update test_image to work with plain rx.el.img
2024-02-08 14:44:53 -08:00
Masen Furer
3619595bcc
Fixup import of ChakraComponent
It is no longer exposed in rx.components namespace
2024-02-08 12:50:07 -08:00
jackie-pc
a4c8c72177
(dev mode) start backend without waiting for page compilation (#2549)
* start backend without waiting for page compilation

* remove prints for measuring time saved

* pin tighter on uvicorn
2024-02-08 12:13:39 -08:00
Masen Furer
d28109f4c4
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-08 11:54:02 -08:00
Masen Furer
7fb9747fa7
Fix missing getEventURL function in connection banner (#2557)
After a previous PR replaced `getEventURL` with `getBackendURL`, the banner
code was not updated, leading to problems rendering the connection banner.
2024-02-08 11:53:38 -08:00
Elijah Ahianyo
601dd34792
rx.color to work with conditional vars (#2546) 2024-02-08 11:45:15 -08:00
Elijah Ahianyo
64a90fa6eb
Decorator to validate rx.color prop fields (#2553) 2024-02-08 11:21:46 -08:00
jackie-pc
a4ee985509
CLI script to maintain Chakra backed components in rx namespace in older apps (#2322) 2024-02-08 11:12:20 -08:00
Masen Furer
b607531318
Unbreak tests after recent changes in main (p2) 2024-02-08 10:46:40 -08:00
Masen Furer
c596651de6
Fix pre-commit issues introduced from merging origin/main 2024-02-08 10:28:45 -08:00
Masen Furer
ae20644a82
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-08 10:17:34 -08:00
Alek Petuskey
ea2a5904f2
Text default as p (#2551) 2024-02-07 18:53:59 -08:00
Tom Gotsman
cb66933921
many small changes from going over all props (#2532) 2024-02-07 18:16:47 -08:00
Masen Furer
450aa909ca
state.js: determine upload URL dynamically (#2531) 2024-02-07 15:33:16 -08:00
benedikt-bartscher
eabbbea171
fix EventHandlers and ComputedVars inherited by mixin classes (#2534)
* wip event handlers for state mixins

* fix computed vars, prepare event handler tests

* fix computed vars and event handlers inherited by mixins

* Base is not a mixin

* improve state inheritance tests

* wait for alerts to appear

* poll_for_content to fix flaky ci tests
2024-02-07 14:48:39 -08:00
Masen Furer
c124650082
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-07 13:53:39 -08:00
Thomas Brandého
88f0be004d
ordered & unordered lists (#2537) 2024-02-07 12:29:29 -08:00
Tom Gotsman
57b75c6497
update slider so width automatically set (#2542) 2024-02-07 12:06:41 -08:00
Elijah Ahianyo
ce867d2f81
Support for Shorthand css props. (#2547) 2024-02-07 12:05:04 -08:00
Nikhil Rao
eacd534137
Increase debounce timeout to 300ms (#2541) 2024-02-07 11:55:43 -08:00
Masen Furer
de6244483d
[REF-1743] Implement radix-native color mode switch and button (#2526) 2024-02-07 11:55:25 -08:00
Elijah Ahianyo
1e4b0a163c
Map Accordion color schemes to radix colors (#2511) 2024-02-07 09:52:09 -08:00
Nikhil Rao
51a9b75141
Don't purge web dir if flag is set (#2529) 2024-02-06 14:27:44 -08:00
Thomas Brandého
a858d3a755
remove radix icons (#2538)
* remove radix icons

* update pyi
2024-02-06 14:21:22 -08:00
Nikhil Rao
e2c3081d1e
Remove focus-visible package (#2535) 2024-02-06 11:36:12 -08:00
Elijah Ahianyo
8e2c9681f7
Radix Components Valid children/parents (#2495) 2024-02-06 10:55:00 -08:00
Masen Furer
c9fadafc06
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-06 10:42:24 -08:00
Masen Furer
b3fb77f0d8
Add rx.lucide to top-level namespace 2024-02-06 09:38:18 -08:00
jackie-pc
0f3857ec9a
inline memoize components in compiled page files, to prevent hot reload errors (#2527) 2024-02-05 12:31:06 -08:00
Masen Furer
660113fcf9
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-05 11:41:40 -08:00
Masen Furer
f99c48806a
Top-level namespace tweaks (#2523)
* pyi_generator: always ignore files starting with `tests`

* Move CodeBlock out of chakra namespace

* Expose additional names in the top-level namespace

* code pyi fixup

* expose input and quote at the top-level

* add text_field to top-level namespace (maybe)

* fixup chakra code.pyi

* Remove `text_field` from top level namespace

* Remove top-level big C Cond

* fixup top level pyi
2024-02-05 11:14:02 -08:00
Martin Xu
1bf4e23bf3
add dropdown primitive props (#2521) 2024-02-04 18:57:33 -08:00
Alek Petuskey
5589cbbfc2
Refactor rx.color (#2522)
* Refactor

* Lint

* Change name space to top level

* Update test

* Lint

* Fix pyright

* Update pyi

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
Co-authored-by: Nikhil Rao <nikhil@reflex.dev>
2024-02-04 15:39:07 -08:00
Nikhil Rao
05d1be2182
Move core components to radix namespace (#2506) 2024-02-02 14:26:46 -08:00
Masen Furer
8a3cec11cd
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-02 13:50:41 -08:00
Thomas Brandého
ba3de9b9e9
fix icon_button to size children lucide icon correctly. (#2515) 2024-02-02 12:23:31 -08:00
Masen Furer
2f70e3e43a
[REF-1839] Reserve top-level __call__ for a future high level API (#2518)
* Reserve top-level __call__ for a future high level API

Instead of aliasing the top-level `__call__` to `.root`, require users
to explicitly call `.root` to avoid breakage when a future high level
API gets implemented and takes over the top-level `__call__`

Fix REF-1839

* alertdialog: forgot this one
2024-02-02 12:16:59 -08:00
Alek Petuskey
02e626465c
Add comment for theme panel needed for docs (#2508)
* Add comment for theme panel needed for docs

* update pyi

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
Co-authored-by: Masen Furer <m_github@0x26.net>
2024-02-02 09:41:27 -08:00
benedikt-bartscher
9ce4e85050
fix appharness regex for functions with return type (#2512) 2024-02-02 09:35:44 -08:00
Masen Furer
35b20d26b5
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-02-02 08:39:10 -08:00
Masen Furer
6d33156d15
Move is_used to Upload component rather than UploadFilesProvider (#2514) 2024-02-01 17:57:43 -08:00
Tom Gotsman
1b4229691a
All event handlers inherit from event triggers (#2507)
* update to ensure every radix component only inherits events from EventTriggers class

* update the naming of event handlers to swap name on_value_change and on_checked_change to on_change

* update to call _replace_prop_names in component.py

* small darglint error fix

* update to ensure every radix component only inherits events from EventTriggers class

* update the naming of event handlers to swap name on_value_change and on_checked_change to on_change

* update to call _replace_prop_names in component.py

* small darglint error fix

* updates to pass pytest tests

* small fix

* duplicate removal

---------

Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
2024-02-01 16:11:15 -08:00
Martin Xu
c067033ed0
radix Theme panel_background prop: transparent -> translucent (#2504) 2024-01-31 16:06:23 -08:00
Masen Furer
9c086163df
[REF-1631] Clean up the rx.radix namespace (#2501) 2024-01-31 15:32:17 -08:00
Martin Xu
38845db60c
Add props from Radix tooltip primitives to tooltip component (#2499)
* add tooltip primitives props to tooltip

* ruff
2024-01-31 14:21:34 -08:00
Nikhil Rao
5176a7cb14
Support component create methods as keys in global styles (#2498) 2024-01-31 12:25:18 -08:00
Masen Furer
4df279b060
Merge remote-tracking branch 'origin/main' into reflex-0.4.0 2024-01-31 12:06:51 -08:00
jackie-pc
80c9eb34e4
Rework telemetry to support installation_id (#2480) 2024-01-31 11:39:48 -08:00
Masen Furer
a5302f1866
[0.4.0] Namespace the Drawer primitive subcomponents (#2492) 2024-01-31 11:39:13 -08:00
jackie-pc
80dce21ac0
Revert "Revert "use process pool to compile faster (#2377)" (#2434)" (#2497) 2024-01-31 11:38:28 -08:00
wassaf shahzad
84a2bb9671
Added Environmental variable REFLEX_DIR (#2457) 2024-01-30 18:18:29 -08:00
Elijah Ahianyo
d2fd0d3b92
[REF-1742] Radio group prop types fix (#2452) 2024-01-30 18:14:20 -08:00
Masen Furer
e12b15f1fe
[REF-1738] Remove radix-specific layout/margin props (#2442) 2024-01-30 16:58:28 -08:00
Nikhil Rao
27b9a10233 Merge branch 'main' into reflex-0.4.0 2024-01-30 16:48:38 -08:00
Nikhil Rao
833507b73a
Fix accordion pyi (#2491) 2024-01-30 16:12:50 -08:00
benedikt-bartscher
be7f7969ed
improve sqlalchemy type parsing (#2474)
* improve sqlalchemy type parsing

* add support for propertys and relationships

* cleanup duplicate property check

* avoid confusion, improve readability
2024-01-30 15:57:56 -08:00
jackie-pc
032017df3a
simple pytest benchmark for measuring event <=> state update round trip time (#2489) 2024-01-30 15:55:55 -08:00
Thomas Brandého
6cf411aeb3
add center / spacer / hstack / vstack in radix/themes/layout (#2331) 2024-01-30 15:39:22 -08:00
Thomas Brandého
1d6da9010e
fix color of icon to match theme (#2488) 2024-01-30 14:31:57 -08:00
Thomas Brandého
0b3693f744
fix kebab case for icon (#2487) 2024-01-30 14:31:47 -08:00
Masen Furer
8ecfd07668
Radix themes: replace color_scheme with color in get_fields (#2486) 2024-01-30 14:08:18 -08:00
Tianze
209c5fab7b
Tabs validate parent is proper tab container (#2463) 2024-01-30 11:45:00 -08:00
Martin Xu
0378b2aa3a
Radix primitive based Drawer component (#2445) 2024-01-29 20:32:11 -08:00
Masen Furer
bd9d6e6789
Radix Primitive Component Namespaces
Expose subcomponents of radix primitives wrapped in a SimpleNamespace with a
__call__ method that points to the high-level API entry point.
2024-01-29 17:38:58 -08:00
Masen Furer
bece5bdb44
[REF-1632] Apply rx.App styles to Radix Themes root div (#2481) 2024-01-29 16:58:05 -08:00
Kumara Guru M
3b1443e76f
Update meta parameter to accept a list of any type (#2477) 2024-01-29 16:52:28 -08:00
Martin Xu
b6f4422378
Use form_root as form high level API (#2479) 2024-01-29 13:42:01 -08:00
Elijah Ahianyo
3a97a10d92
Pass down themes for rx.cond and rx.match (#2432) 2024-01-29 12:03:36 -08:00
Thomas Brandého
11f6d7ccef
add lucide icons as a candidate for core icon library (#2444) 2024-01-29 11:43:00 -08:00
Nikhil Rao
01c2a1ed7d
Set correct type when indexing into Var[str] (#2469)
* Index into strings

* Write tests
2024-01-28 21:57:02 -08:00
Masen Furer
b2c749fc9f
[REF-1763] Rename color to color_scheme in all radix themes components (#2468) 2024-01-28 16:54:01 -08:00
Martin Xu
3c7356ac3c
remove modal prop from dialog (#2470) 2024-01-28 15:56:45 -08:00
Tom Gotsman
14e35e51ee
add separator default width to fill the container (#2459) 2024-01-28 15:51:11 -08:00
Nikhil Rao
d68de02bc8
Revert "Individually Import Chakra Packages (#2405)" (#2472) 2024-01-28 15:39:59 -08:00
Alek Petuskey
670faf291a
[WIP] rx.color (#2443)
* Color module intial commit

* Improvments

* Update reflex/constants/colors.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* Comments+tests

* Fix import

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MacBook-Pro.local>
2024-01-28 14:06:08 -08:00
Tom Gotsman
8203b888fe
minor update to callout (#2466)
* minor update to callout

* pyi changes

---------

Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
2024-01-26 15:39:19 -08:00
Masen Furer
52d2bccbca
[REF-1746] Define value prop on base rx.el.textarea (#2467) 2024-01-26 15:11:22 -08:00
wassaf shahzad
069892d8ee
fixed issue with hypens (#2450) 2024-01-26 14:14:46 -08:00
Elijah Ahianyo
aad009e5df
Accordion style merge issue fix (#2446) 2024-01-26 14:12:18 -08:00
Masen Furer
a2e0807dc1
Chakra IconButton comes from "@chakra-ui/button@2.1.0" package (#2465) 2024-01-26 14:10:51 -08:00
Tom Gotsman
8ae67f89e3
small changes to texfield and separator (#2448) 2024-01-25 13:36:32 -08:00
Alek Petuskey
00a8054850
Individually Import Chakra Packages (#2405)
* Base lib switch

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
2024-01-25 10:22:46 -08:00
Elijah Ahianyo
5f1751acc2
Vardata for rx.Match (#2439) 2024-01-24 14:55:49 -08:00
Masen Furer
1a50a63b98
Docstrings for radix components (#2407) 2024-01-24 12:39:05 -08:00
Martin Xu
ec889c411b
radix link renders as next link by default use (#2440)
* radix link renders as next link by default use

* pyi

* rewrite

* pyi didn't seem to overwrite

* color -> color_scheme
2024-01-24 12:05:44 -08:00
Nikhil Rao
e94dcf335c
Input high level api (#2410)
* Input high level api

* finish off input high level api

* Switch order of props

---------

Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
2024-01-24 10:53:46 -08:00
benedikt-bartscher
0d8efb9b55
parse return type annotations of sqlalchemy hybrid properties (#2422)
* parse return type annotations of sqlylchemy hybrid properties

* use get_type_hints instead of __annotations__
2024-01-23 14:00:07 -08:00
benedikt-bartscher
0b1b8ee639
auto enable /_upload endpoint only if Upload component is used (#2430) 2024-01-23 12:20:06 -08:00
Martin Xu
84858854ae
Clean up Radix Form component (#2423)
* form pr

* cleanup

* pyi
2024-01-22 15:07:27 -08:00
Elijah Ahianyo
bd22bcfa60
Accordion styling fix (#2420) 2024-01-22 13:04:01 -08:00
Nikhil Rao
f513f4c089
Revert "use process pool to compile faster (#2377)" (#2434) 2024-01-22 12:56:07 -08:00
Tom Gotsman
b305f895a8
minor update to select prop (#2424) 2024-01-21 13:31:47 -08:00
Masen Furer
9446a1e99f
[REF-1705] Do not overwrite Var attributes during format (#2421) 2024-01-19 15:17:00 -08:00
Nikhil Rao
a92abbb0ce
Radix callout high level api (#2409) 2024-01-18 18:19:26 -08:00
Tom Gotsman
c8693851fe
update to allow items to be autogenerated for docs (#2419) 2024-01-18 17:37:20 -08:00
Tom Gotsman
676f2c5dc2
radiogroup high level api (#2401) 2024-01-18 16:41:55 -08:00
Tom Gotsman
7d99d235f1
create high level api for select component (#2402) 2024-01-18 16:24:36 -08:00
Tom Gotsman
035fc8e15a
high level api for checkbox (#2406) 2024-01-18 15:58:02 -08:00
Nikhil Rao
2abecbdb9c
Remove default radix theme (#2403) 2024-01-18 15:25:23 -08:00
Alek Petuskey
d466c2aaa2
Radix Accordion (#2310) 2024-01-18 14:20:21 -08:00
Masen Furer
6fcc4fd357
Allow app harness tests to import State subclasses (#2408) 2024-01-18 12:54:29 -08:00
jackie-pc
2c270585ab
Skip frontend packages install if previously done (#2400) 2024-01-16 17:52:28 -08:00
benedikt-bartscher
1aca1b677f
fix is_backend_variable for dunder prefixed variables (#2391) 2024-01-16 17:37:05 -08:00
Alek Petuskey
0bb9a021a2
Overlay Components Improvements (#2395) 2024-01-15 15:06:27 -08:00
Masen Furer
fc2f6cddf9
Inset: fix comment (#2389) 2024-01-12 14:40:28 -08:00
Masen Furer
fb89c374b1
Correct Radix Themes Slider props (#2386) 2024-01-12 14:40:08 -08:00
Masen Furer
6b6f3ae0be
Fix docstrings and comments for Box and Card components (#2385) 2024-01-12 14:39:45 -08:00
benedikt-bartscher
ae1a6e1acc
inherit computed vars from state mixins (#2351) 2024-01-12 14:22:38 -08:00
jackie-pc
a8756cb0f8
use process pool to compile faster (#2377) 2024-01-12 14:22:18 -08:00
Masen Furer
27ed574b63
aspectratio: fix docstring and extra literal def (#2379) 2024-01-11 14:04:06 -08:00
Elijah Ahianyo
05b4267bb4
Pin version for data editor deps (#2383) 2024-01-11 14:03:41 -08:00
Martin Xu
a53af00480
Clean up Radix Avatar components props (#2375)
* clean up some props for some radix components

* pyi
2024-01-11 11:26:43 -08:00
Tom Gotsman
c81fa261b2
update radix components (#2380)
* update radix components

* update for pyi

* updates for pre commit

* update pyi again

---------

Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
2024-01-10 17:56:04 -08:00
Nikhil Rao
16f9f743bb
Import radix as rx.radix (#2374) 2024-01-09 10:36:37 -08:00
Elijah Ahianyo
26a9e79a5f
Resolve correct python path on windows (#2373) 2024-01-09 09:58:06 -08:00
Masen Furer
7cec7feb63
Update comments in template apps (#2370) 2024-01-08 16:10:56 -08:00
macmoritz
43a0867bb4
add time_picker component (#2343) 2024-01-05 18:25:10 -08:00
Masen Furer
87844c3f7d
Enable real app AppHarness tests to not specify state= (#2358) 2024-01-05 17:47:31 -08:00
Tom Gotsman
51baa94ed5
adding cancel and action sub components for alert dialog and rename alert dialog root (#2352)
* adding cancel and action sub components for alert dialog

* updates to pass integration tests

* add components

---------

Co-authored-by: Tom Gotsman <tomgotsman@Toms-MacBook-Pro.local>
Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
2024-01-05 11:37:15 -08:00
Elijah Ahianyo
abfc099779
rx.match component (#2318)
* initial commit

* add more tests

* refactor match jinja template

* add docstrings

* cleanup

* possible fix for pyright

* fix conflicts

* fix conflicts again

* comments

* fixed bug from review

* fix tests

* address PR comment

* fix tests

* type error improvement

* formatting

* darglint fix

* more tests

* stringify switch condition and cases as js doesnt support complex types(lists and dicts) in switch cases.

* Update reflex/vars.py

Co-authored-by: Masen Furer <m_github@0x26.net>

* change usages

* Precommit fix

---------

Co-authored-by: Alek Petuskey <alek@pynecone.io>
Co-authored-by: Masen Furer <m_github@0x26.net>
Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
2024-01-04 09:48:18 -08:00
Tom Gotsman
32b9b00e05
update inline so all props have comments (#2353) 2024-01-03 15:30:47 -08:00
benedikt-bartscher
58a7e5e460
support parsing type args of DeclarativeBase subclasses (#2348) 2024-01-03 11:55:07 -08:00
Masen Furer
414a879879
Handle VarData roundtrip when encoded value contains newline (#2350) 2024-01-03 09:46:22 -08:00
Masen Furer
accaf6dc52
[REF-1365] Radix + Tailwind Compatibility (and allow tailwind to be completely disabled) (#2246) 2023-12-28 00:14:04 -08:00
Thomas Brandého
78429866bd
fix editable property of columns being ignored in data_editor (#2338) 2023-12-28 00:09:07 -08:00
Jishnu N
c5c42665eb
add: reflex init app name validator (#2336) 2023-12-28 00:07:55 -08:00
Masen Furer
0211e9a0e5
Avoid passing props to lists and list items (#2326) 2023-12-21 15:58:45 -08:00
Thomas Brandého
f75d5f2808
fix tailwind for stateful components imported from utils (#2328) 2023-12-21 10:43:11 -08:00
Thomas Brandého
527fa4bc3f
Add slider, progress, and form primitives (#2306) 2023-12-21 10:32:40 -08:00
Nikhil Rao
93c97383d9
Refactor chakra components into separate folder (#2315) 2023-12-21 09:52:08 -08:00
Masen Furer
1289182f2e
Remove app.compile() from templates (#2327) 2023-12-21 09:49:30 -08:00
Romain Bury
42bcea7631
update tailwind.config.js.jinja2 to add darkMode option (#2312) 2023-12-20 15:43:47 -08:00
Nikhil Rao
cfb9d44e0c
Apply default theme to apps (#2320) 2023-12-20 15:17:49 -08:00
dodeca-6-tope
97f528e7b5
add size prop to the number input (#2311) 2023-12-20 13:54:20 -08:00
Tom Gotsman
5c5d17df59
Fixing bugs in radix (#2316) 2023-12-20 13:52:56 -08:00
Thomas Brandého
8ac08e2cb4
color_scheme props added and updated pyi files (#2279) 2023-12-18 20:47:18 -08:00
Nikhil Rao
5d21f0ca60
Add high-level API for accordion (#2285) 2023-12-18 17:21:49 -08:00
jackie-pc
7388617b72
apps should no longer call "app.compile()" (#2291) 2023-12-18 16:06:21 -08:00
Martin Xu
3c07537c11
only exclude assets folder if it's in the root_dir (#2308) 2023-12-18 15:51:13 -08:00
Elijah Ahianyo
53e402f47b
Chakra input component type_ prop literal (#2292) 2023-12-18 15:43:51 -08:00
Elijah Ahianyo
70ac284370
Create .web only after template selection (#2288) 2023-12-14 15:18:27 -08:00
jackie-pc
92bd3da676
capture exceptions thrown by any process in run_concurrently_context (#2296) 2023-12-14 14:41:45 -08:00
Martin Xu
9da65b9a9a
[REF-1464] Handle requirements.txt encoding (#2284) 2023-12-14 14:25:40 -08:00
Masen Furer
e245b6b6a0
support SQLModel 0.0.14 + SQLAlchemy 2 (#2283) 2023-12-12 17:52:11 -08:00
Elijah Ahianyo
9629b59617
DataFrame Serializer fix (#2281) 2023-12-12 14:03:40 -08:00
benedikt-bartscher
f90982ea06
use redis-py url syntax for redis_url (#2267)
* use redis-py url syntax for redis_url

* port is optional

* Add StateManagerRedis.close method

The close helper method always calls `close_connection_pool=True` so that all
outstanding redis operations can be stopped before changing event loops.

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2023-12-12 10:54:10 -08:00
Masen Furer
e52267477c
[REF-1417] Convert underscore-prefixed style props to pseudo selector (#2266) 2023-12-11 13:37:57 -08:00
Alek Petuskey
421be5748b
Warning if newer reflex/reflex-hosting-cli available (#2271)
* Check to see if there are new reflex version avaliable if so throw a warning

* precommit

* request -> httpx

* Fix pr comments

* Forgot import

* Generalize check_latest_package_version

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MBP.attlocal.net>
2023-12-08 21:21:12 -08:00
Nikhil Rao
96f68cb94d
Implement accordion component (#2262)
* Implement accordion component

* Fix literal annotation

* Use style prop instead of css

* Move accordion to primitives folder

* Add pyi file

* Fix pyright

* Add apply_theme method

* Fix apply_theme

* Use apply_theme method

* Fix lint
2023-12-08 21:20:30 -08:00
Thomas Brandého
0ca903e468
wrap radix icons (#2263)
* Add inital ui

* More radix updates

* Add el inheritance

* Add el inheritance for layout

* Triggers + primitive prop inheritance

* Initial Primitives

* Small fix

* Update select

* Radix Themes fixups (#2245)

* [REF-1367] Fix up event trigger specs

* Add missing name/value props for form controls

Checkbox was incorrectly tagged Button
TextArea was incorrectly tagged TextArea.Input

* [REF-1364] Radix Link now renders as a NextLink

For href as Var or href does not contain the ://, then
render as a NextLink for efficient inner-app navigation

* More changes

* PYI

* add @radix-ui/icons to radix.themes

* add pyi file

* fix for py3.8

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
Co-authored-by: Masen Furer <m_github@0x26.net>
2023-12-07 14:08:20 -08:00
Thomas Brandého
a0bd83b915
add event triggers for base html components (#2276) 2023-12-07 11:22:40 -08:00
Thomas Brandého
caf32605ca
add next/image and next-video in next namespace (#2223) 2023-12-07 10:38:47 -08:00
Tom Gotsman
d6374ca3f0
update var join function to use empty string (#2270) 2023-12-06 16:51:13 -08:00
Alek Petuskey
7164b91d7b
Implement Radix Themes (#2236) 2023-12-06 16:47:03 -08:00
Nikhil Rao
46d03880e6
Format var better in error message (#2269) 2023-12-06 13:31:29 -08:00
Martin Xu
93e9e39aeb
fix condition for creating requirements.txt (#2260) 2023-12-06 11:28:58 -08:00
Masen Furer
e0a1b39231
[REF-1425] Always capitalize tag of StatefulComponent (#2264) 2023-12-06 09:41:09 -08:00
Masen Furer
21000d9889
state.js: do not connect unless a state subclass is defined (#2259) 2023-12-05 17:14:47 -08:00
Martin Xu
77405d1701
Only check requirements update in interactive mode (#2258) 2023-12-05 15:57:41 -08:00
Martin Xu
0fff63a52e
Pass export function with more args to hosting CLI (#2254) 2023-12-04 17:13:38 -08:00
Nikhil Rao
19c01492be
Update sidebar tutorial for new substates (#2256) 2023-12-04 16:49:28 -08:00
Masen Furer
0bbae2d3d5
[REF-1404] router_data not updated when processing events (#2255) 2023-12-04 16:45:22 -08:00
Masen Furer
eb79da8538
[REF-1352] Markdown component_map hash improvements (#2241) 2023-12-01 11:45:22 -08:00
Masen Furer
49ccd2f1fb
Generalize MemoizationLeaf Component mixin (#2247) 2023-12-01 11:41:11 -08:00
Thomas Brandého
1109f8f508
deprecate state arg in App() (#2237) 2023-12-01 09:50:40 -08:00
Masen Furer
4ada79c1e5
[REF-1349] RechartsCharts and ResponsiveContainer must be memo leaf (#2240) 2023-12-01 09:49:59 -08:00
Masen Furer
60147dec65
[REF-201] Separate on_load handler from initial hydration (#1847) 2023-11-30 12:21:15 -08:00
Masen Furer
3c7af9fad4
Support hooks in custom components (state, addEvents) (#2234) 2023-11-30 09:59:09 -08:00
Masen Furer
a2d5bbc133
[reflex-web tweaks] Do not memoize children of InputGroup (#2230) 2023-11-30 09:48:28 -08:00
Masen Furer
a86bcb3c72
[reflex-web tweaks] chakra Icon is a ChakraComponent (use sx for style) (#2231)
* chakra Icon is a ChakraComponent (use sx for style)

* icon: update pyi file
2023-11-29 14:48:32 -08:00
Elijah Ahianyo
e3ee98098a
RED-1052/rx.State as Base State (#2146) 2023-11-29 09:43:33 -08:00
Martin Xu
f8395b1fd6
Separate out the hosting CLI from main repo (#2165) 2023-11-28 15:20:06 -08:00
Masen Furer
3deb2cec93
code_block responds to color mode by default (#2228) 2023-11-28 13:24:38 -08:00
Masen Furer
0c55723df4
[REF-1158] Move chakra-only deps to chakra lib (#2171) 2023-11-28 00:04:07 -08:00
Masen Furer
ee87e62efa
[REF-1035] Track ComputedVar dependency per class (#2067) 2023-11-27 18:17:53 -08:00
Masen Furer
626357ed87
Memoize markdown component_map (#2219) 2023-11-27 18:09:41 -08:00
Alek Petuskey
065b1b88d2
Add index on tabs (#2225)
* Add index on tabs
---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
2023-11-27 17:59:35 -08:00
Masen Furer
527437cf23
[REF-144] Add context in each component to prevent rerenders (#2198) 2023-11-27 16:05:59 -08:00
Thomas Brandého
ed5b3818cb
update removal version of deprecated features (#2224) 2023-11-27 14:04:55 -08:00
Thomas Brandého
8fc254041b
fix name for import var when is default and add tests (#2214) 2023-11-26 12:46:43 -08:00
Elijah Ahianyo
7f75571e67
Deprecate event namespace config knob (#2218) 2023-11-26 12:45:50 -08:00
Thomas Brandého
d61b83fde7
add/subtract in moment (#2212) 2023-11-22 13:13:59 -08:00
Masen Furer
1603144c7d
[REF-889] useContext per substate (#2149) 2023-11-21 11:52:06 -08:00
Nikhil Rao
e9437ad941
Use singleton app provider to speed up compiles (#2172) 2023-11-20 18:11:24 -08:00
Nikhil Rao
b5f6ab3a82
Fix pyright errors (#2210) 2023-11-20 18:10:41 -08:00
Tom Gotsman
b6e7744498
update column select literals (#2150) 2023-11-20 16:17:27 -08:00
Masen Furer
5eb4c4e62a
Serialize PIL Image in its format (#2201) 2023-11-20 16:17:09 -08:00
Tom Gotsman
5198daebae
keep app id (project hash) the same even after re-init (#2195) 2023-11-20 15:30:14 -08:00
Elijah Ahianyo
714edb3cde
REF-1202: Upgrade bun version if it differs from reflex set version (#2206) 2023-11-20 15:21:17 -08:00
Alek Petuskey
88a3276356
HTML Refactor (#2164) 2023-11-20 15:16:03 -08:00
Thomas Brandého
1b402b65be
fix offset of data_editor input when page is scrolled (#2208) 2023-11-20 15:15:00 -08:00
Elijah Ahianyo
7f810ece21
To camel case fix (#2205) 2023-11-20 11:33:48 -08:00
Nikhil Rao
c5c2ca2b7b
Upgrade to bun 1.0.13 (#2202) 2023-11-20 09:42:12 -08:00
Masen Furer
8e7d4819ee
check_generated_pyi: fix diff checking (#2029) 2023-11-17 15:21:52 -08:00
Nikhil Rao
c3e652b8c1
Speed up reflex CLI imports (#2185) 2023-11-17 12:31:07 -08:00
Thomas Brandého
1a83f85783
_valid_children and _invalid_children accessible from class (#2192) 2023-11-17 12:30:18 -08:00
Masen Furer
7eccc6d988
[REF-723+] Upload with progress and cancellation (#1899) 2023-11-16 15:46:13 -08:00
Alek Petuskey
e399b5a98c
Fix wrong modal sizes (#2183) 2023-11-16 15:35:15 -08:00
Nikhil Rao
f1005e774e
Fix missing lazy imports (#2187) 2023-11-16 13:20:48 -08:00
Thomas Brandého
ddb1f8133b
Apply new pyi script (#2041) 2023-11-16 10:27:04 -08:00
Tom Gotsman
d3314233bd
add in new no_of_lines prop for text (#2184)
* add in new no_of_lines prop for text

* black update

---------

Co-authored-by: Tom Gotsman <tomgotsman@toms-mbp.lan>
2023-11-15 17:59:52 -08:00
Martin Xu
adb26787c8
Hosting CLI: remove requirements generation when init, add back timeout for deploy command, remove deploy legacy command (#2179) 2023-11-15 16:23:34 -08:00
Alek Petuskey
93dcc6300d
Add chat icon (#2181) 2023-11-15 16:02:44 -08:00
Masen Furer
ce47fcfd6c
Fix CustomComponent rendering (#2169) 2023-11-14 13:03:12 -08:00
Elijah Ahianyo
f7f8aa171b
Set is_hydrated var explicitly on rx.State (#2168) 2023-11-14 10:26:25 -08:00
Masen Furer
f3929f47e3
form: only pass handleSubmit when on_submit is defined (#2162) 2023-11-13 23:27:42 -08:00
Masen Furer
812ca2377b
Add ConnectionModel and ConnectionBanner to lazy components (#2167) 2023-11-13 23:25:54 -08:00
Nikhil Rao
33e4816950
Lazy import modules in reflex (#2144) 2023-11-13 19:48:12 -08:00
Masen Furer
27b09132b5
form: generate a unique on_submit suffix in create (#2154) 2023-11-13 12:52:26 -08:00
Elijah Ahianyo
ea22452b27
Reduce Syntax highlighter footprint (#2037) 2023-11-13 12:47:55 -08:00
Thomas Brandého
39cc1b2f12
Upgrade to NextJS 14 (#2142) 2023-11-13 09:52:51 -08:00
Masen Furer
5e6520cb5d
Support Form controls via name attribute (no ID or ref) (#2012) 2023-11-10 12:58:59 -08:00
Elijah Ahianyo
7a04652a6a
Revert "Bun as runtime on Mac and Linux (#2138)" (#2153) 2023-11-09 13:01:48 -08:00
Elijah Ahianyo
4d6fa9b823
Bun as runtime on Mac and Linux (#2138) 2023-11-08 16:22:02 -08:00
Elijah Ahianyo
96eca4f690
Windows Hot reload Peer Dependencies (#2106) 2023-11-08 10:26:35 -08:00
Thomas Brandého
c835ad0737
fix to_snake_case and add tests (#2133) 2023-11-06 12:13:28 -08:00
Masen Furer
61c9afd5a5
Support Python 3.12 (#2006) 2023-11-06 12:08:14 -08:00
Masen Furer
53d4c438ed
Assume wss:// with no port when frontend is HTTPS (#2129) 2023-11-06 12:06:07 -08:00
Nikhil Rao
e703d87450
Set unique index vars in rx.foreach (#2126) 2023-11-03 16:20:42 -07:00
Masen Furer
e6b02555f4
Github Codespaces Support 🪐 (#2125) 2023-11-03 16:08:31 -07:00
Nikhil Rao
6e1bce3412
Prompt for template on reflex init (#2122) 2023-11-03 13:37:01 -07:00
Thomas Brandého
eb52edb067
components as props (#2124) 2023-11-03 13:29:18 -07:00
Martin Xu
4c97b4c4c0
Hosting CLI: use http endpoint to return deploy milestones (#2085) 2023-11-03 12:13:46 -07:00
Masen Furer
b313aaf3ef
rx.call_script callback needs to await promises (#2121) 2023-11-02 14:37:02 -07:00
Martin Xu
4a526620ac
[REF-1042] Hosting CLI: check the user selected app name (#2102) 2023-11-02 14:34:10 -07:00
Thomas Brandého
eeeab441d8
add column resize for data editor (#2099) 2023-11-02 12:22:35 -07:00
Masen Furer
fbedc9447e
Compatibility with older typer versions (#2117) 2023-11-02 11:28:37 -07:00
Masen Furer
bf20a530df
Do not stop prop is there is no prop to stop (#2116)
Check that desired event actions are defined on the object passed as the DOM
event before calling them to avoid frontend errors.
2023-11-02 10:21:41 -07:00
Nikhil Rao
6e71393ed5
Use blank template as default (#2109) 2023-11-01 15:59:34 -07:00
Masen Furer
050dd3da92
pyproject.toml: bump typer to 0.9.0 (#2068) 2023-11-01 12:15:24 -07:00
shu-qian
a1c39b9968
Add 'orientation' Property to Reflex Stepper Components (#2089)
* Added 'orientation' property to Stepper

* import Literal in reflex/components/navigation/stepper.py

* Update reflex/components/navigation/stepper.py

---------

Co-authored-by: sq <1838545301@qq.com>
Co-authored-by: Masen Furer <m_github@0x26.net>
2023-11-01 11:51:23 -07:00
Thomas Brandého
96c09b0f6b
make download work for state vars (#2092) 2023-10-31 17:08:10 -07:00
Thomas Brandého
853a43eaab
fix portal when using multiple datatable (#2094) 2023-10-31 17:07:28 -07:00
Thomas Brandého
60c8c1d40e
cleanup dataeditor js code and hooks (#2095) 2023-10-31 17:06:49 -07:00
Masen Furer
5211706bd4
base: expand template content to right edge of screen (#2104) 2023-10-31 17:06:22 -07:00
Masen Furer
8eb68a006e
Expose gunicorn_worker_class via Config (#2084) 2023-10-31 13:45:29 -07:00
Masen Furer
56476d0a86
Expose DOM event actions on EventHandler, EventSpec, and EventChain (stopPropagation) (#1891)
* Expose preventDefault and stopPropagation for DOM events

All EventHandler, EventSpec, and EventChain can now carry these extra
"event_actions" that will be applied inside the frontend code when an event is
triggered from the DOM.

Fix #1621
Fix REF-675

* Test cases (and fixes) for "event_actions"

* form: from __future__ import annotations

for py38, py39 compat

* Revert overzealous merge conflict resolution
2023-10-31 11:42:42 -07:00
Masen Furer
269334014d
base template: read README as utf-8 (#2064) 2023-10-27 16:50:39 -07:00
Nikhil Rao
d5c7cedf31
Support 3.9 on templates (#2065) 2023-10-27 16:49:29 -07:00
Nikhil Rao
5e444a7b7b
Update readme path for templates (#2060) 2023-10-27 14:07:38 -07:00
Martin Xu
8ad9f3a96e
show all columns in list deployments, let CP control what columns user see (#2061) 2023-10-27 13:56:30 -07:00
Nikhil Rao
bb77d14fbc
Update demo command to open demo.reflex.run (#2059) 2023-10-27 13:16:02 -07:00
Nikhil Rao
6b7bd8e51b
Update base template styling (#2050) 2023-10-27 12:47:00 -07:00
Martin Xu
23255d49d4
Add back build log command to CLI (#2053) 2023-10-27 11:30:04 -07:00
Elijah Ahianyo
a2e185cced
Add none to color scheme literal (#2055) 2023-10-27 11:21:21 -07:00
Masen Furer
ff4c5a5cf8
Remove .pyc and __pycache__ from template dir (#2056) 2023-10-27 11:20:46 -07:00
Thomas Brandého
3262f29613
fix editable column and theme casting (#2051) 2023-10-27 09:38:25 -07:00
Thomas Brandého
edf9c32142
fix onload method not working in prod mode (#2049) 2023-10-27 08:43:02 -07:00
Nikhil Rao
804f55dbf2
Use demo app for reflex demo command (#2048) 2023-10-26 21:49:00 -07:00
Alek Petuskey
f5e9debe4f
Add CLI demo command (#2044) 2023-10-26 20:24:19 -07:00
Tom Gotsman
d2afaf5bb3
Add demo app template (#2046) 2023-10-26 19:45:33 -07:00
Nikhil Rao
8133aa10c9
Update base template (#2027) 2023-10-26 17:59:14 -07:00
Masen Furer
f66c6c3361
Support callback for rx.call_script (#2045) 2023-10-26 17:54:48 -07:00
Martin Xu
e9cf822460
CLI will not set auto/stop setting for deployment (#2040)
* do not set autostart/autostop as default on CLI

* cli feedback

* fix test

* clean up last few messages

* catch general exception for export and exit
2023-10-26 17:47:22 -07:00
Alek Petuskey
70a6b5f2d3
Autogenerating Dependencies During Deployment (#2033) 2023-10-26 17:32:58 -07:00
Thomas Brandého
9a5579e1ef
Add datagrid editor (#1941) 2023-10-26 16:17:34 -07:00
Masen Furer
21dbdc0103
Replace renamed Var.type_ with _var_type (#2039) 2023-10-26 12:34:00 -07:00
Martin Xu
fe01f0cf11
add region check upfront when user deploys interactively (#2030) 2023-10-26 10:07:49 -07:00
Masen Furer
92dd68c51f
Improve Var type handling for better rx.Model attribute access (#2010) 2023-10-25 11:55:50 -07:00
Martin Xu
f404205c3f
CLI improvements (#2026) 2023-10-24 15:35:51 -07:00
Masen Furer
93d19d6dc3
[REF-938] Fix up radix themes issues (#2002) 2023-10-24 14:29:54 -07:00
Elijah Ahianyo
1662066af5
Remove victory charts (#1945) 2023-10-24 14:20:03 -07:00
Masen Furer
1734ba0b6d
Generate state delta from processed state instance (#2023) 2023-10-24 10:44:12 -07:00
Masen Furer
6ea657a4fd
[REF-876] Update base template styles (#2022) 2023-10-24 10:35:37 -07:00
Elijah Ahianyo
d785bd98da
Radix Themes style notation fix (#2025) 2023-10-24 10:29:44 -07:00
Elijah Ahianyo
b8f0674556
Improve Event handler Error message (#2019) 2023-10-24 10:28:51 -07:00
Martin Xu
81053618c9
CLI switch to prod server (#2016) 2023-10-24 09:43:20 -07:00
jackie-pc
53566c2adf
[reflex hosting] clean up tmp dir for storing zip archives (#2021) 2023-10-24 09:36:10 -07:00
jackie-pc
b3499e6b7a
[reflex export] backend.zip excludes dirs that look like venv dirs (#2009) 2023-10-23 09:01:42 -07:00
Masen Furer
91bbf91c52
Resolve npm path and fnm path on Windows (#2015) 2023-10-23 08:59:48 -07:00
Thomas Brandého
d00425276d
fix fnm version check (#2014) 2023-10-23 08:45:55 -07:00
Thomas Brandého
490ae40a40
Wrap Moment Component (#1994)
* wip wrap moment

* add some props to moment

* fix typing for 3.8

* fix comment for props and add create method for moment-timezone
2023-10-23 13:24:11 +02:00
Martin Xu
07ca8fcb3b
[REF-99] Add first version of CLI for hosting service (#1810) 2023-10-21 13:09:56 -07:00
Masen Furer
fe244b7eec
multi_select somewhat usable (#1861) 2023-10-20 09:43:46 -07:00
jackie-pc
c653f95435
support exporting to zip archives to a dir that is not cwd (to be used by hosting cli) (#2005) 2023-10-20 09:40:30 -07:00
Elijah Ahianyo
7b8b64668d
Rehydrate client storage after rx.remove_local_storage and rx.remove_cookies (#1998) 2023-10-19 15:43:43 -07:00
Nikhil Rao
e7f0cd8e4c
Stop double compiles in dev mode (#1990) 2023-10-19 15:26:14 -07:00
Masen Furer
cbf5b61a23
Drop python3.7 support (#2003)
* Drop python3.7 support

* poetry.lock: relock without py3.7

* Update README/CONTRIBUTING to say 3.8+
2023-10-19 22:21:29 +02:00
Elijah Ahianyo
06bdf9ed8a
Remove 0.3.0 deprecated features (#1947) 2023-10-19 09:44:32 -07:00
Elijah Ahianyo
b652d40ee5
Remove Default state (#1978) 2023-10-18 09:57:27 -07:00
Nikhil Rao
b4bb849388
Fix posthog (#1992) 2023-10-18 12:30:09 +02:00
Masen Furer
f6a7eed359
Fix AppHarness tests (#1987)
* test_client_storage: remove race conditions for cookie assignment

Poll for default timeout for cookies to appear in the controlled browser.

* Remove use of deprecated get_token and get_sid in core

Both reflex.app and reflex.state were still using deprecated methods, which
were throwing unsolvable warnings for end users.

* Remove deprecated router functions from integration tests

Mostly removing custom "token" var and replacing with
router.session.client_token.

Also replacing `get_query_params` and `get_current_page` usage as well.

* fix upload tests

Cannot pass substate as main app state, since it blocks us from accessing
"inherited vars"

* state: do NOT reset `router` to default

When calling `.reset` to reset state vars, do NOT reset the router data, as
that could mess up internal event processing.
2023-10-18 01:46:13 +02:00
Biresh Biswas
317b883ec8
fix rx.audio playing prop type: str to bool (#1986) 2023-10-17 13:03:57 -07:00
Thomas Brandého
df09c716c6
fix serialization as a whole for list/dict/Base containing custom items to serialize (#1984) 2023-10-17 10:44:54 -07:00
Masen Furer
d1d5812602
format: event arg values use backticks (#1926) 2023-10-17 10:42:35 -07:00
Masen Furer
1efc61e1c4
Warn when computed vars raise an exception (#1939) 2023-10-17 10:41:36 -07:00
Masen Furer
c3f5f345bb
convert initialEvents to a function (#1982) 2023-10-17 10:39:56 -07:00
Thomas Brandého
b1bab1206d
deprecate get_ methods for router_data, use BaseVars instead (#1967) 2023-10-17 09:59:44 -07:00
Masen Furer
67606561d3
[REF-668] Wrap MyApp with radix Theme component (#1867)
* partly add some radix-ui/themes based components

* add @radix-ui/themes integration to top-level app

* WiP: compile _app_wrap based on which component library is used

TODO: working color mode

* WiP get color mode working with agnostic provider

still not perfect, as the RadixColorModeProvider seems to trip hydration errors
when using color_mode_cond component, but for now, this provides a nice balance
between the two libraries and allows them to interoperate.

* WiP template _app.js instead of making a separate wrap file

* WiP: use next-themes for consistent darkmode switching

* strict pin chakra deps

* Move ChakraColorModeProvider to separate js file

* move nasty radix themes js code into js files

* remove chakra from default imports

* chakra fixup import to use .js extension

* Add radix theme typography and layout components

* do NOT special case the radix theme...

avoid templating json and applying it, avoid non-customizable logic

just add the radix Theme component as an app wrap if the user specifies it to
rx.App, and any other app-wrap theme-like component could _also_ be used
without having to change the code.

this also allows different themes for different sections of the app by simply
placing elements inside a different rdxt.theme wrapper.

* Theme uses "radius" not "borderRadius"

* move next-themes to main packages.json

this is always used, regardless of the component library

* test_app: test cases for app_wrap interface

* Finish wrapping Button, Switch, and TextField components

* docstring, comments, static fixups

* debounce: use alias or tag when passing child Element

Fix REF-830

* test_app: ruin my beautiful indentation

* py38 compatibility

* Add event triggers for switch and TextField

* Add type hints for radix theme components

* radix themes fixups from writing the tests

* Add integration test for radix themes components

* test_app: mock out package installation

we only need the compile result, we're not actually trying to install packages

* avoid incompatible version of @emotion/react

* test_radix_themes: include theme_panel component

* next-themes default scheme: "light"

until all of our components look good in dark mode, need to keep the default as
light mode regardless of the system setting.
2023-10-16 15:31:50 -07:00
Masen Furer
4c554c953d
ChartBase.create: include default min dimensions (RESUB) (#1975) 2023-10-16 12:05:33 -07:00
Elijah Ahianyo
c6abeb31a5
Props as Literals (#1921) 2023-10-15 20:16:39 -07:00
Alek Petuskey
7d4194be34
Added base template + improve templating code (#1937) 2023-10-15 20:02:41 -07:00
Elijah Ahianyo
433ccda3a6
No state No Websocket (#1950) 2023-10-13 14:54:59 -07:00
Masen Furer
024cb5fa9b
Var field cleanup (#1943) 2023-10-13 14:53:55 -07:00
Masen Furer
684912e33b
[REF-843] Automatically update api_url and deploy_url (#1954) 2023-10-13 12:59:19 -07:00
Masen Furer
d0cb5b07e7
AppHarness: support headless mode and driver selection (#1963) 2023-10-13 12:53:20 -07:00
Elijah Ahianyo
2c4ffc879f
Deprecate rx.get_cookies (#1961) 2023-10-13 09:21:06 -07:00
Nikhil Rao
7019708638
Fix custom components special props (#1956) 2023-10-12 15:27:41 -07:00
Masen Furer
14bb662eb1
bun version bump to 1.0.4 (#1942) 2023-10-11 00:07:18 -07:00
Alek Petuskey
86c624e939
Readded victory create methods and imports (#1938) 2023-10-09 11:53:41 -07:00
Alek Petuskey
80bf48b872
Pin Recharts Dependency (#1934)
* Pin dependency

* Translated README.md file to Brazilian Portuguese (PT-BR) (#1936)

* Namespace Recharts + Victory Back With Depreciation Warning (#1928)

---------

Co-authored-by: Alek Petuskey <alekpetuskey@Aleks-MBP.attlocal.net>
Co-authored-by: Victor Moura <26290053+victorcmoura@users.noreply.github.com>
2023-10-08 19:33:37 -07:00
Alek Petuskey
06103a4d8d
Namespace Recharts + Victory Back With Depreciation Warning (#1928) 2023-10-08 19:09:09 -07:00
Thomas Brandého
837549bf6e
fix backward compat of menu api (#1925) 2023-10-05 12:55:47 -07:00
Nikhil Rao
85937c2369
Pin frontend package versions (#1920) 2023-10-05 12:45:21 -07:00
Elijah Ahianyo
513835cf74
Update Deprecations (#1927) 2023-10-05 12:12:42 -07:00
Nikhil Rao
a72a6b7d2f
Add forward slash to local JS import (#1924) 2023-10-05 10:38:40 -07:00
Alek Petuskey
67eb661704
Core Graphing -> Recharts (#1878) 2023-10-04 15:05:08 -07:00
Elijah Ahianyo
68664a5094
Deprecate set_cookie and set_local_storage (#1917) 2023-10-04 14:15:37 -07:00
Thomas Brandého
58933278ad
fix rx.image src not working with state (#1915) 2023-10-04 14:15:18 -07:00
Thomas Brandého
c131f76e33
fix menu items= API (#1905) 2023-10-02 17:42:36 -07:00
Nikhil Rao
53d205ad9f
Improve default rx.markdown styling (#1904) 2023-10-02 11:52:16 -07:00
Masen Furer
4b84c2a471
state: subclass of MutableState must return _mark_dirty return value (#1898) 2023-10-02 11:17:45 -07:00
Masen Furer
0a196693a3
Add Editor component (#1851) 2023-10-02 09:41:58 -07:00
Thomas Brandého
7df3f2f621
allow external link for redirect (#1902) 2023-10-02 09:37:46 -07:00
Masen Furer
418f9ad569
state: get_value unwraps MutableProxy first (#1887) 2023-10-01 10:13:27 -07:00
Masen Furer
4f6b3c049b
State.reset uses deepcopy on defaults (#1889) 2023-09-29 16:33:16 -07:00
Masen Furer
5ca7f29853
MutableProxy wraps values yielded by __iter__ (#1876) 2023-09-28 17:34:46 -07:00
Masen Furer
bd0cd18796
circular_progress cleanup: size, thickness, label (#1879) 2023-09-28 17:29:28 -07:00
Thomas Brandého
dcb17103bb
code cleanup (split constants into a folder) (#1866) 2023-09-28 17:27:20 -07:00
Elijah Ahianyo
8326abf5d5
Button Group variant and size props (#1873) 2023-09-28 10:56:28 -07:00
Elijah Ahianyo
26885d98cf
rx.table __bool__ regression fix (#1828) 2023-09-28 09:31:01 -07:00
Masen Furer
991c7202a7
rx.call_script: a real EventHandler to execute arbitrary javascript (#1860) 2023-09-27 18:27:48 -07:00
Nikhil Rao
41872dfdc9
Format event handlers not in importable modules (#1875) 2023-09-27 11:30:15 -07:00
Elijah Ahianyo
4e82102ad0
Add button spinner_placement prop (#1871) 2023-09-26 10:24:38 -07:00
Nikhil Rao
d1019fb977
Fix style rendering in markdown (#1869) 2023-09-26 10:24:12 -07:00
Nikhil Rao
89404e0b4a
Add head components to app (#1868) 2023-09-25 16:53:15 -07:00
Nikhil Rao
8231993e5a
Improvements to custom styles in rx.markdown (#1852) 2023-09-25 15:59:48 -07:00
Masen Furer
2f284a08b6
component: imports override _get_dependencies_imports (#1859) 2023-09-24 01:46:35 -07:00
Masen Furer
83d7a044fe
StateProxy rebinds functools.partial and methods that are bound to the proxied State (#1853) 2023-09-21 17:59:18 -07:00
Masen Furer
351611ca25
rx.background and StateManager.modify_state provides safe exclusive access to state (#1676) 2023-09-21 11:42:11 -07:00
Thomas Brandého
211dc15995
New API to define triggers (#1820) 2023-09-21 09:47:22 -07:00
Thomas Brandého
84bae0dc7d
use jinja2 to render package.json (#1849) 2023-09-21 09:46:11 -07:00
Masen Furer
0cd7242bb2
exec: print the URL, not the address the server binds to (#1846) 2023-09-20 19:31:06 -07:00
Nikhil Rao
ac8dfc5f91
Format component as React string (#1848) 2023-09-20 19:30:38 -07:00
Elijah Ahianyo
d81d544b97
add option to disable Tailwind (#1842) 2023-09-20 16:47:58 -07:00
Thomas Brandého
15ced6b795
allow for non-installable imports (#1843) 2023-09-20 16:47:27 -07:00
Masen Furer
1bfb579b20
state: implement __copy__ and __deepcopy__ for MutableProxy (#1845) 2023-09-20 16:46:49 -07:00
Nikhil Rao
3113aecb30
Support custom styling for code in markdown (#1844) 2023-09-20 11:40:25 -07:00
Elijah Ahianyo
2750228dbb
Prevent Substate class shadowing (#1827) 2023-09-19 15:56:39 -07:00
Nikhil Rao
9e533ee58a
Remove extra imports from rx.markdown (#1837) 2023-09-19 15:52:56 -07:00
Masen Furer
1430075bdc
Reassign state Var when fields on a Base instance change (#1748) 2023-09-18 13:52:10 -07:00
Nikhil Rao
264c44e630
Disable metrics in CI (#1822) 2023-09-15 18:15:25 -07:00
Nikhil Rao
541e311617
Simplify base rxconfig (#1821) 2023-09-16 02:43:16 +02:00
Nikhil Rao
1938a6cc58
Add serializers for different var types (#1816) 2023-09-15 17:19:26 -07:00
Elijah Ahianyo
74d227d2fd
Move custom styles to root App file(_app.js) (#1764) 2023-09-15 13:18:35 -07:00
Evan Harley
63ae96ede3
Number input float (#1817) 2023-09-15 09:58:33 -07:00
Elijah Ahianyo
796f523c03
Remove deprecated route decorator (#1815) 2023-09-14 10:29:29 -07:00
Thomas Brandého
b378827b83
add download event (#1797) 2023-09-13 09:56:00 -07:00
Elijah Ahianyo
f2b0915aff
Type Validation for Var Operations and Enhanced Compatibility (#1674) 2023-09-12 15:57:40 -07:00
wassaf shahzad
1c598b8428
added check to remove local import starting from . (#1807) 2023-09-12 15:54:57 -07:00
Masen Furer
43f3990448
numberinput: check _id is not None to avoid Var truthiness warning (#1806) 2023-09-12 12:36:22 -07:00
Elijah Ahianyo
06a110a07d
Style props with Callable Values (#1751) 2023-09-12 11:26:53 -07:00
wassaf shahzad
77edb01e74
removed is_read_only from select (#1799) 2023-09-12 08:38:49 -07:00
Evan Harley
fca5815a37
Implemented color_scheme for Tabs Component (#1792) 2023-09-09 22:43:11 -07:00
Thomas Brandého
27eeab485e
move dynamic imports to dedicated method (#1785) 2023-09-08 14:53:39 -07:00
Martin Xu
3406be3ff8
supply default for sqlmodel PK for both DB and python to work (#1788) 2023-09-08 14:51:57 -07:00
Elijah Ahianyo
891e6a4736
Allow underscores in routes (#1713) 2023-09-08 12:18:33 -07:00
Nikhil Rao
47d789e9a6
Don't show error logs on sigint (#1781) 2023-09-07 15:54:52 -07:00
Masen Furer
43ac87f5ca
exec: don't debug print the line, processes.stream_logs already does (#1780) 2023-09-07 15:31:08 -07:00
Thomas Brandého
2d570b3bcd
Fix some docstrings in pyi (#1773) 2023-09-07 12:55:49 -07:00
Nikhil Rao
abc09f9074
Don't show app running message twice (#1770) 2023-09-07 01:41:26 -07:00
Thomas Brandého
043648da07
improve pyi files generation (#1765) 2023-09-07 00:23:17 -07:00
Masen Furer
6fa9bfea09
Fix rx.Cookie with custom name (#1767) 2023-09-06 14:02:24 -07:00
Joe Doss
ca723c83bc
Upgrade Bun 0.7.0 to 0.7.3 (#1757) 2023-09-06 13:20:07 -07:00
Elijah Ahianyo
141d1c3aab
Deprecation warning enhancement (#1738) 2023-09-06 10:46:44 -07:00
Masen Furer
dd03a277cf
Fixup warning when frontend_packages are specified and tailwind is not (#1761) 2023-09-06 10:26:14 -07:00
Masen Furer
393a7c6e2a
Send updated client-side storage values when hydrating (#1758) 2023-09-05 23:27:39 -07:00
Masen Furer
2e014422f5
App: only render default overlay_component when DefaultState is not used (#1744) 2023-09-05 16:22:25 -07:00
Masen Furer
38c5503f94
Client-side Routing (404 redirect) (#1695) 2023-09-05 16:22:00 -07:00
Thomas Brandého
03a92bc60e
remove frontend_package option (#1700) 2023-09-05 13:45:18 -07:00
Masen Furer
71811a600c
Var: __bool__ and __iter__ always raise a TypeError (#1750) 2023-09-05 13:44:22 -07:00
wassaf shahzad
e99d6723bc
added changes for datetime (#1745)
* added changes for datetime

* fixed formatting

* fixed darglint issue

* test_state: check for other datetime module classes

* utils/types.py: use issubclass check

fix docstring copy/paste issue

* utils/format.py: reuse types.is_datetime check

---------

Co-authored-by: Masen Furer <m_github@0x26.net>
2023-09-04 22:29:02 -07:00
Masen Furer
b44c2176e0
Track var dependencies in comprehensions and nested functions (#1728) 2023-09-04 14:31:17 -07:00
Nev Delap
41e97bbc46
Issues 1633 Add frontend_path to config to support running multiple reflex apps off the same domain, and 1583 Show the correct info on where the site is being served. (#1724)
* Support setting Next.js basePath in Reflex config. (#1633)

- Tests.
- And sorted config in next.config.js template.

* Display the correct running at url with basePath if it is set. (#1583)

* Formatting, fixed by black.

* Fix indenting in test data.

* Fixed that conflict resolution shouldnt have included console.debug line.

* Rmove use of :=. Add http:// to url. Use urljoin to build url.
2023-09-02 06:38:22 -07:00
Masen Furer
f9fad58769
ConnectionModal uses Cond for rendering (#1739) 2023-09-01 13:07:48 -07:00
Elijah Ahianyo
829a7751b5
Refactor: Move format_prop Static Method for Improved Reusability (#1714) 2023-09-01 13:01:11 -07:00
Nikhil Rao
1d9f25be6d
Fix project hash and modernize type annotations (#1704) 2023-08-31 17:04:39 -07:00
Masen Furer
97869136bd
state: _init_mutable_fields for backend vars as well (#1729) 2023-08-31 15:50:20 -07:00
Masen Furer
ca4724cec8
AppHarness: disable telemetry for test apps (#1733) 2023-08-31 14:57:28 -07:00
Thomas Brandého
63b5fbd7b0
add pyi_generator script (#1708) 2023-08-31 14:25:56 -07:00
Alek Petuskey
fed75ea7f8
Incrementally Add New Packages (#1607) 2023-08-31 14:20:44 -07:00
Nikhil Rao
7d7b7901a9
Fix setting substate client storage (#1723) 2023-08-31 09:54:27 -07:00
Masen Furer
cc89f2b6e7
Proper serialization for chained Event payloads (#1725) 2023-08-31 09:50:15 -07:00
Masen Furer
99843d98af
debounce_input should respect child ref (#1717) 2023-08-30 12:46:55 -07:00
Masen Furer
9fbc75d84a
Client-side storage / State integration (#1629) 2023-08-30 12:43:29 -07:00
Masen Furer
2392c52928
Implement on_mount and on_unmount for all components. (#1636) 2023-08-30 09:50:39 -07:00
Thomas Brandého
bb44fcdaa1
renamed reserved endpoints of Reflex (#1542) 2023-08-30 09:33:54 -07:00
Elijah Ahianyo
689f078aa3
Fix Node Installation on ARM-based Macs with FNM (#1701) 2023-08-29 14:59:56 -07:00
Nikhil Rao
1372042228
Fix run frontend only (#1706) 2023-08-28 20:32:27 -07:00
Masen Furer
6b481ecfc3
ConnectionModal and ConnectionBanner cleanup (#1379) 2023-08-28 18:04:52 -07:00
Martin Xu
51f0339fa4
Add special var for upload: clear_selected_files (#1703) 2023-08-28 17:15:31 -07:00
Martin Xu
2e1aea9713
Add contains, reverse operations for Var (#1679) 2023-08-28 14:59:50 -07:00
Nikhil Rao
6bfce48b0c
Use stream_logs for frontend process (#1682) 2023-08-25 16:16:51 -07:00
Masen Furer
3916668461
Avoid compile step when running production backend (#1665) 2023-08-25 14:50:03 -07:00
Shashank Tiwari
b02afc326e
added if condition check to not echo DB_URL (#1681) 2023-08-25 14:11:44 -07:00
Masen Furer
12e516da64
state: _init_event_handlers recursively (#1640) 2023-08-25 13:28:58 -07:00
Elijah Ahianyo
dbaa6a1e56
Fnm and node for POSIX (#1606) 2023-08-25 13:04:10 -07:00
Martin Xu
76b8af3b42
Refactor zipping in reflex export (#1668) 2023-08-23 17:18:16 -07:00
Martin Xu
82dc237f44
Revert "Use DebounceInput wrapper for fully controlled Editable" (#1670) 2023-08-23 17:16:03 -07:00
Masen Furer
81fd9d1e9c
Run backend from the main thread in dev mode (#1653) 2023-08-23 16:52:54 -07:00
Elijah Ahianyo
217a5806ee
Validate component children (#1647) 2023-08-23 15:56:27 -07:00
Masen Furer
457173eed7
ReflexList: reassign field on insert (#1652) 2023-08-23 15:33:56 -07:00
Thomas Brandého
57855f56a1
add type conversion for int,float in built-in setters (#1660) 2023-08-23 01:10:51 -07:00
Masen Furer
196bdc5101
model: only pass "check_same_thread" arg for sqlite database (#1662) 2023-08-22 14:07:36 -07:00
wassaf shahzad
42e9924273
added support for limits in pagination (#1646) 2023-08-22 00:42:34 -07:00
Mudassir Chapra
0ce77c1ca9
Added the step prop to Slider[Issue #1639] (#1643) 2023-08-21 15:10:52 -07:00
danik292
af08e06569
remove prop debounce_timeout from input and textarea (#1645) 2023-08-21 14:44:59 -07:00
Martin Xu
d884b7ba96
Use DebounceInput wrapper for fully controlled Editable (#1650) 2023-08-21 14:25:56 -07:00
Masen Furer
5c3685f0c4
remove unused file upload code (#1634)
this code is no longer used, since file uploads are handled via state/hooks
provided in the upload component itself.
2023-08-21 11:30:53 -07:00
Martin Xu
f5067d4050
add prop debounce_timeout to input and textarea, default to 50 (#1627) 2023-08-18 16:58:35 -07:00
Masen Furer
e6dfe67594
Show config in system debug (#1626) 2023-08-18 15:02:44 -07:00
Nikhil Rao
0beb7a409f
Clean up config parameters (#1591) 2023-08-18 14:22:20 -07:00
Masen Furer
042710ca91
Handle file uploads with component-local state (#1616) 2023-08-18 13:12:17 -07:00
Thomas Brandého
f771894077
add system infos to output when in loglevel debug (#1567) 2023-08-18 13:00:49 -07:00
Martin Xu
fd4a6257c3
Remove unused full_control related code (#1624)
* remove full_control related code

* remove more unused code
2023-08-18 12:56:33 -07:00
wassaf shahzad
0be5d670ed
Added fix for serializing PIL images (#1619) 2023-08-18 11:17:42 -07:00
Martin Xu
510b71e644
Check the yield/return from user defined event handlers are valid (#1614) 2023-08-18 01:36:30 -07:00
Masen Furer
efefa757a0
state.js: fix prod mode! applyDelta must operate on new_state (#1613) 2023-08-17 13:35:11 -07:00
Masen Furer
bb337be06c
link: fix link with no href (#1612) 2023-08-17 13:32:53 -07:00
Elijah Ahianyo
98fae89319
Automatic Install FNM and Node for Windows: (#1566) 2023-08-17 11:23:09 -07:00
Masen Furer
afcbe7e5a6
Move initial state to separate file (#1599) 2023-08-17 09:54:07 -07:00
Masen Furer
26e45c1f18
format_dict: only unescape quotes when removing outer quotes (#1609) 2023-08-17 09:45:25 -07:00
Nikhil Rao
00714c60ac
Fix rx.link href prop and Var.to_string type (#1600)
* Fix rx.link href prop

* Update bool var types
2023-08-16 11:41:19 -07:00
Elijah Ahianyo
ed4de0d7ba
Reinstate bun path (#1552) 2023-08-15 17:39:43 -07:00
Masen Furer
2eefb5d26c
Fix non-default imports for NoSSRComponent (#1548) 2023-08-15 17:32:23 -07:00
Masen Furer
2ff823e89a
Event Loop Refactor (#1590) 2023-08-15 15:17:08 -07:00
Nikhil Rao
6d15326abf
Support f-strings in component children and non-style props (#1575) 2023-08-14 11:33:16 -07:00
Nikhil Rao
6830ab40cc
Update urls to reflex.dev (#1572) 2023-08-11 17:55:03 -07:00
Nikhil Rao
fbcfb51771
App harness use new_process (#1573) 2023-08-11 17:54:34 -07:00
Nikhil Rao
56ab2bb012
Add trailing slash for paths (#1517) 2023-08-11 13:55:59 -07:00
Alek Petuskey
005c7df394
Add windows warning message. (#1570) 2023-08-11 13:54:32 -07:00
mat-mil
fa1642fd6b
chore: ignore all files with .db extensions in .gitignore (#1568)
* chore: ignore all files with .db extensions in .gitignore

* Fix unit tests for .gitignore
2023-08-11 13:29:58 -07:00
Elijah Ahianyo
2fa087a0fa
Event Handlers should not shadow base state methods (#1543) 2023-08-10 12:47:35 -07:00
Thomas Brandého
cebc5982f3
fix missing on_load parameter in custom_404 (#1541) 2023-08-10 11:21:45 -07:00
Smit Parmar
ef78465f16
Added support for RelexSet wrapper (#1535) 2023-08-10 09:59:03 -07:00
Thomas Brandého
cd47815a4d
form support more inputs (#1554) 2023-08-10 09:54:04 -07:00
Elijah Ahianyo
6c517a39df
Flex props to support Lists (#1553) 2023-08-09 20:48:28 -07:00
Alek Petuskey
9f7a7a1e4a
Got rid of mod_import (#1547) 2023-08-08 17:20:09 -07:00
Masen Furer
1d0a34a3f5
Expose NoSSRComponent for downstream use (#1537) 2023-08-07 14:47:07 -07:00
Masen Furer
544d352e55
Run AppHarness selenium integration tests in CI (#1538) 2023-08-07 14:46:09 -07:00
Masen Furer
4a658ef9be
Wrap Input and TextArea with DebounceInput for full control (#1484) 2023-08-07 14:27:42 -07:00
Masen Furer
e214aa26aa
NoSSRComponent recognizes is_default (#1533) 2023-08-07 11:50:37 -07:00
Nikhil Rao
9d53f4c1e1
Add alt tag for images (#1524) 2023-08-04 17:05:16 -07:00
Thomas Brandého
134df9dbaa
fix lost events when yielding (#1521) 2023-08-04 16:39:46 -07:00
Elijah Ahianyo
a9b7394e0e
Remove Home folder for windows (#1502) 2023-08-03 14:27:38 -07:00
Masen Furer
123b91a37d
add __main__ entry point to allow python -m reflex (#1516) 2023-08-03 14:26:50 -07:00
jackie-pc
c452ec774d
CI: Basic integration test for WSL (#1510) 2023-08-03 14:26:09 -07:00
Thomas Brandého
9222bbbdf2
fix state reset() (#1501) 2023-08-02 11:02:05 -07:00
Masen Furer
919f239168
check_initialized: skip REFLEX_DIR check for backend only (#1478) 2023-08-02 06:33:56 -07:00
Nikhil Rao
deef553e82
Fix deploy command (#1496) 2023-08-01 18:01:45 -07:00
Nikhil Rao
9acfaf1706
Simplify rxconfig template (#1492) 2023-08-01 15:04:23 -07:00
jackie-pc
837978f378
Full OS matrix builds for unit and integration tests (Linux, Mac, Windows) (#1460) 2023-08-01 11:34:12 -07:00
Nikhil Rao
91c0de4b5f
Use concurrent.futures for threading (#1483) 2023-07-31 17:45:40 -07:00
Alek Petuskey
b9536bcf40
Fix Nextjs Dynamic Import (#1480)
* Fix dunamic imoprt for react player and plotly

* Fix format

* Fix pr comments

* Update react player

---------

Co-authored-by: Alek Petuskey <alekpetuskey@aleks-mbp.lan>
2023-07-31 16:02:14 -07:00
Masen Furer
c11d9e657f
Disable fully controlled Input and TextArea (#1383) 2023-07-31 12:19:34 -07:00
Milo Chen
850ab43325
replace favicon.ico to represent reflex (#1469) 2023-07-31 12:03:25 -07:00
Nikhil Rao
f01eff5b29
Show status bar on reflex init (#1467)
* Show status bar on reflex init

* Fix tests

* Fix version

* Fix test
2023-07-30 20:45:34 -07:00
Nikhil Rao
068bcd906e
Add unified logging (#1462) 2023-07-30 19:58:48 -07:00
Nikhil Rao
e1cb09e9d4
Remove curl and parallelize node/bun install (#1458) 2023-07-28 17:53:24 -07:00
Thomas Brandého
6555234dee
fix breadcrumb API & add get_page_crumbs method (#1387) 2023-07-28 16:40:49 -07:00
Nikhil Rao
7304351a66
Improve prerequisites check (#1454) 2023-07-28 16:29:50 -07:00
Nikhil Rao
0ebe1529a6
Update version flag (#1452) 2023-07-28 12:30:39 -07:00
Thomas Brandého
6bc622e67d
update behaviour for wrong state passed as argument (#1447) 2023-07-28 11:18:36 -07:00
jackie-pc
e6f4bcdb95
Github action to run unit tests on windows (#1444) 2023-07-28 11:12:01 -07:00
Nikhil Rao
e26bba80a6
Create ~/.reflex directory and update integration tests (#1419) 2023-07-27 16:39:53 -07:00
Thomas Brandého
3faad315ca
rename rx.route decorator (#1442) 2023-07-27 14:11:08 -07:00
Elijah Ahianyo
3fa33bd644
List and Dict mutation on setattr (#1428) 2023-07-27 12:45:57 -07:00
Thomas Brandého
43220438b6
update templates to remove deprecation warning (#1437) 2023-07-27 11:02:09 -07:00
jackie-pc
7a09554cfa
dev-mode compile: purge .web dir at last min to reduce downtime window (#1430) 2023-07-26 16:04:48 -07:00
Nikhil Rao
d0fc965c7f
rx.markdown custom styles for tags (#1416) 2023-07-25 13:28:02 -07:00
Elijah Ahianyo
5eeb560238
Bugfix for hidden refs (#1418) 2023-07-25 09:56:37 -07:00
TaiJuWu
0a25859255
feature: Auto install node by nvm on Linux (#1404) 2023-07-25 00:12:39 -07:00
Nikhil Rao
c94b2e4636
Fix foreach indexing (#1403) 2023-07-21 20:09:20 -07:00
Nikhil Rao
d3deade107
Bump version to 0.2.2 (#1400) 2023-07-21 12:00:55 -07:00
Thomas Brandého
06f6e1e7bd
improve 404 logic (#1398) 2023-07-21 11:51:04 -07:00
Masen Furer
77c4451d24
integration/test_server_side_event.py: tests for set_value (#1390) 2023-07-21 11:50:51 -07:00
Elijah Ahianyo
549ab4e708
rx.App state arg should not be required (#1361) 2023-07-21 11:47:38 -07:00
Kabir Goel
278b9ab7e2
Allow custom Tailwind content (#1399) 2023-07-21 11:47:06 -07:00
Siddhant Goel
6f5ac6ace2
fix: check bun installation exit code during reflex init (#1385) 2023-07-21 11:43:15 -07:00
Thomas Brandého
9510c58296
Fix datatable rendering (#1360) 2023-07-21 11:23:51 -07:00
Nikhil Rao
723105d8bb
Fix foreach index type (#1389) 2023-07-20 13:03:28 -07:00
Masen Furer
915685c073
state.js: do not shadow outer state var (#1375) 2023-07-19 18:09:55 -07:00
Elijah Ahianyo
4505279d5d
Synchronize Event Namespace (#1370) 2023-07-19 18:05:42 -07:00
Masen Furer
370e1fd04c
table: allow rows to be a Var (#1374) 2023-07-19 18:01:44 -07:00
Nikhil Rao
d1924bb4a6
Fix sitemap output dir (#1382) 2023-07-19 17:55:52 -07:00
Mendie Uwemedimo
23fa6d5ec4
enable SQL statements echo with SQLALCHEMY_ECHO config constant for debugging (#1369) 2023-07-19 14:06:17 -07:00
Masen Furer
bfec196d84
Expose Script component from next/script (#1355) 2023-07-18 18:57:50 -07:00
Masen Furer
3cbee575fe
reflex db cli: catch exception in makemigrations (#1362) 2023-07-18 14:07:16 -07:00
Elijah Ahianyo
ca11b82432
Yield with uploads (#1339) 2023-07-18 14:06:57 -07:00
Nikhil Rao
3f151f054d
Generate sitemap on export (#1358)
* Generate sitemap on export

* Remove prints
2023-07-17 23:14:37 -07:00
Alek Petuskey
be9120b251
Export Error Handling + Improved CLI (#1359) 2023-07-17 22:50:57 -07:00
Masen Furer
4a661a5395
reflex db migrate CLI and associated config (#1336) 2023-07-17 18:06:50 -07:00
pigeon
d6b191538e
Add custom message when the user exits an app (#1345) 2023-07-17 11:45:48 -07:00
Nikhil Rao
7397cd795a
Optimize dev mode compile (#1348) 2023-07-17 11:42:07 -07:00
Elijah Ahianyo
40953d05ac
Strict type checking for indexing with vars (#1333) 2023-07-13 15:46:15 -07:00
Masen Furer
2c97c1e7ca
reflex.testing.AppHarness: tools for testing reflex apps (#1326) 2023-07-13 15:45:57 -07:00
Masen Furer
3a07e990be
respect "env" from rxconfig (#1338) 2023-07-13 15:44:50 -07:00
Thomas Brandého
c15839da40
parameter for turning off nextJS compression (#1316) 2023-07-13 15:33:01 -07:00
Nikhil Rao
bb6be16963
Fix codeblock import (#1337) 2023-07-12 17:09:24 -07:00
Masen Furer
5505d10989
rx.Model: automigrate using alembic (#1321) 2023-07-12 15:47:19 -07:00
Alek Petuskey
f79ba97ce3
Add input element addons left/right (#1335) 2023-07-12 15:37:06 -07:00
Elijah Ahianyo
7f0fc86816
Computed vars tuple and str indexing support (#1322) 2023-07-12 15:26:34 -07:00
Masen Furer
5cbf7da952
state.js: accumulate incoming events (#1313)
If the backend yields multiple events from a single event handler, ensure that
each event gets appended to the pending result before being transferred to the
state. Previously each incoming event would overwrite any other pending
event(s) leading to racy and unpredictable behavior when yielding events from
the backend in quick succession.

Fixes #1309

Bonus Fix: when setting `processing: false` after client-side events (like
_console), spread from `result`, not `state` to avoid accumulating duplicate
queued events. I think this was originally an undiscovered bug that was exposed
by the main fix.
2023-07-07 12:58:13 -07:00
Masen Furer
333e2b3184
component: do not create ref for dynamic id (#1307)
allow dynamic id (BaseVar) to be specified (from state value or foreach), but
do not create a react reference for it, since that must be known at compile
time.

if a react ref is needed, then specify a string _at compile time_, not from
state.

fix #1302
2023-07-06 06:16:13 -07:00
Thomas Brandého
d4964886fd
fix the link toward docs in default apps (#1292) 2023-07-06 05:53:56 -07:00
Masen Furer
20e2a25c9a
vars: unbox EventHandler and functools.partial for dep analysis (#1305)
When calculating the variable dependencies of a cached_var, reach into objects
with .func or .fn attributes and perform analysis on those.

Fix #1303
2023-07-05 16:05:49 -07:00
Siddhant Goel
59c4a5e962
Replace pkg_resources with importlib (#1301)
* Install importlib_metadata for Python 3.7

* Replace pkg_resources with importlib
2023-07-05 11:10:03 -07:00
Masen Furer
51452a6e5a
reflex export: get_app before setup_frontend (#1286) 2023-06-30 17:58:31 -07:00
Sheldon
6b54b2500c
fix pc export (#1265) 2023-06-30 14:26:15 -07:00
Nikhil Rao
72fe55ae72
Add default styles to markdown (#1284) 2023-06-30 13:16:30 -07:00
Thomas Brandého
903c81dd21
fix silent compilation error (#1281) 2023-06-30 09:46:17 -07:00
Masen Furer
5d4f402987
link: clear as property if link has no href (#1272) 2023-06-29 18:45:34 -07:00
Masen Furer
ffa6ddf8b8
migrate_to_reflex: convert pcconfig to rxconfig (#1270)
* migrate_to_reflex: convert pcconfig to rxconfig

fix #1269

* migrate_to_reflex: replace pynecone.io links with reflex.dev
2023-06-29 16:10:48 -07:00
Elijah Ahianyo
272f0eb003
Bugfix: Some Pages are not Generated: (#1278)
Fix issue with some pages not being generated
2023-06-29 16:01:31 -07:00
Nikhil Rao
bb96e12940
Fix missing stdout in event handlers (#1271) 2023-06-28 16:26:09 -07:00
Masen Furer
cd63297fe4
state: Leading underscore functions are not backend vars (#1268) 2023-06-28 15:32:49 -07:00
Elijah Ahianyo
3b3fc4f965
Local storage clear and remove (#1222) 2023-06-28 11:59:27 -07:00
Elijah Ahianyo
be48e13c71
Remove cookies (#1223) 2023-06-27 18:04:29 -07:00
Siddhant Goel
c6c4410db5
Allow view overrides for registering models with admin (#1249) 2023-06-27 14:08:09 -07:00
Elijah Ahianyo
1d4fda273b
pc export flag rename (#1258) 2023-06-27 13:09:58 -07:00