reflex 0.8.7__py3-none-any.whl → 0.8.8a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of reflex might be problematic. Click here for more details.

Files changed (66) hide show
  1. reflex/app.py +13 -5
  2. reflex/app_mixins/lifespan.py +8 -2
  3. reflex/compiler/compiler.py +12 -12
  4. reflex/compiler/templates.py +629 -102
  5. reflex/compiler/utils.py +29 -20
  6. reflex/components/base/bare.py +17 -0
  7. reflex/components/component.py +37 -33
  8. reflex/components/core/cond.py +6 -12
  9. reflex/components/core/foreach.py +1 -1
  10. reflex/components/core/match.py +83 -60
  11. reflex/components/dynamic.py +3 -3
  12. reflex/components/el/elements/forms.py +31 -14
  13. reflex/components/el/elements/forms.pyi +0 -5
  14. reflex/components/lucide/icon.py +2 -1
  15. reflex/components/lucide/icon.pyi +2 -1
  16. reflex/components/markdown/markdown.py +2 -2
  17. reflex/components/radix/primitives/accordion.py +1 -1
  18. reflex/components/radix/primitives/drawer.py +1 -1
  19. reflex/components/radix/primitives/form.py +1 -1
  20. reflex/components/radix/primitives/slider.py +1 -1
  21. reflex/components/tags/cond_tag.py +14 -5
  22. reflex/components/tags/iter_tag.py +0 -26
  23. reflex/components/tags/match_tag.py +15 -6
  24. reflex/components/tags/tag.py +3 -6
  25. reflex/components/tags/tagless.py +14 -0
  26. reflex/constants/base.py +0 -2
  27. reflex/constants/installer.py +4 -4
  28. reflex/custom_components/custom_components.py +202 -15
  29. reflex/experimental/client_state.py +1 -1
  30. reflex/istate/manager.py +2 -1
  31. reflex/plugins/shared_tailwind.py +87 -62
  32. reflex/plugins/tailwind_v3.py +2 -2
  33. reflex/plugins/tailwind_v4.py +4 -4
  34. reflex/state.py +5 -1
  35. reflex/utils/format.py +2 -3
  36. reflex/utils/frontend_skeleton.py +2 -2
  37. reflex/utils/imports.py +18 -0
  38. reflex/utils/pyi_generator.py +10 -2
  39. reflex/utils/telemetry.py +4 -1
  40. reflex/utils/templates.py +1 -6
  41. {reflex-0.8.7.dist-info → reflex-0.8.8a1.dist-info}/METADATA +3 -4
  42. {reflex-0.8.7.dist-info → reflex-0.8.8a1.dist-info}/RECORD +45 -66
  43. reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -9
  44. reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -9
  45. reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -1
  46. reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -39
  47. reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -25
  48. reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -57
  49. reflex/.templates/jinja/web/package.json.jinja2 +0 -27
  50. reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -62
  51. reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -9
  52. reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -21
  53. reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -2
  54. reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -22
  55. reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -18
  56. reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -38
  57. reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -15
  58. reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -5
  59. reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -93
  60. reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -6
  61. reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -129
  62. reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -1
  63. reflex/.templates/jinja/web/vite.config.js.jinja2 +0 -74
  64. {reflex-0.8.7.dist-info → reflex-0.8.8a1.dist-info}/WHEEL +0 -0
  65. {reflex-0.8.7.dist-info → reflex-0.8.8a1.dist-info}/entry_points.txt +0 -0
  66. {reflex-0.8.7.dist-info → reflex-0.8.8a1.dist-info}/licenses/LICENSE +0 -0
@@ -2,7 +2,7 @@ reflex/__init__.py,sha256=_1PVYjDeA6_JyfXvL6OuKjjO6AX2oMiNcAq8AEHf6xw,10161
2
2
  reflex/__init__.pyi,sha256=0D46kHVUJPE_kgYL-BjraERu-MXNCPsQTZQShrijmeQ,10148
3
3
  reflex/__main__.py,sha256=6cVrGEyT3j3tEvlEVUatpaYfbB5EF3UVY-6vc_Z7-hw,108
4
4
  reflex/admin.py,sha256=Nbc38y-M8iaRBvh1W6DQu_D3kEhO8JFvxrog4q2cB_E,434
5
- reflex/app.py,sha256=SCsHNd0PxGES_B16vd5NFkZpHux5Q8BNkwhNgsmeuEk,77324
5
+ reflex/app.py,sha256=7jJ5knRgpbh5XWqMD3rTIy0bjqOJm-DkdlnC1geOX6c,77713
6
6
  reflex/assets.py,sha256=l5O_mlrTprC0lF7Rc_McOe3a0OtSLnRdNl_PqCpDCBA,3431
7
7
  reflex/base.py,sha256=Oh664QL3fZEHErhUasFqP7fE4olYf1y-9Oj6uZI2FCU,1173
8
8
  reflex/config.py,sha256=JhCChJ3WkOvC7sFIcKZ7T_JBobC0XiBlCPTlai6-fyU,20227
@@ -13,33 +13,12 @@ reflex/page.py,sha256=ssCbMVFuIy60vH-YhJUzN0OxzUwXFCCD3ej56dVjp3g,3525
13
13
  reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  reflex/reflex.py,sha256=KVlNh8nQGzuaYnpUtQ1D7Rcuqzp1TeKernlDucTXaQE,22578
15
15
  reflex/route.py,sha256=TnS4m6Hm-b3LfGFpm37iAMEd-_JISAouPW5FqUxTAfU,7858
16
- reflex/state.py,sha256=95dLzwoGaq6aC0dsSKIexaBUySnbeyRbfx2cTVixmx0,93059
16
+ reflex/state.py,sha256=3LuX6dejVnQL8m0e_db1K48iww3_xiE0jJD8ByNUFU4,93198
17
17
  reflex/style.py,sha256=JxbXXA4MTnXrk0XHEoMBoNC7J-M2oL5Hl3W_QmXvmBg,13222
18
18
  reflex/testing.py,sha256=kR-imGVnWCp6xiryuZcJJIfogRg2tcNT4tw5mt0T3sY,39901
19
19
  reflex/.templates/apps/blank/assets/favicon.ico,sha256=baxxgDAQ2V4-G5Q4S2yK5uUJTUGkv-AOWBQ0xd6myUo,4286
20
20
  reflex/.templates/apps/blank/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  reflex/.templates/apps/blank/code/blank.py,sha256=wry9E3VjC7qtt_gzqNOyo4KZAAlzVyNp3uhFkcLZmM0,898
22
- reflex/.templates/jinja/app/rxconfig.py.jinja2,sha256=ywlCgdKvAcUzmzyW-TGIiYCF5yqIH641PD0tWr6tOTc,170
23
- reflex/.templates/jinja/custom_components/README.md.jinja2,sha256=qA4XZDxOTc2gRIG7CO1VvVawOgThwZqU2RZvRTPhXwE,127
24
- reflex/.templates/jinja/custom_components/__init__.py.jinja2,sha256=z5n2tvoS7iNDaM6mUGKETdpGlC0oA1_rrYURu7O_xpk,32
25
- reflex/.templates/jinja/custom_components/demo_app.py.jinja2,sha256=ipbKtObNqQLcwbFowod_bSWW4bttW_8bNyTXl7JL1zg,826
26
- reflex/.templates/jinja/custom_components/pyproject.toml.jinja2,sha256=HG-k3pruUlMy7xYz339hgFkNMTLqB-C_FTLKkOgfBPM,630
27
- reflex/.templates/jinja/custom_components/src.py.jinja2,sha256=e80PwMI6NoeQtGJ0NXWhYrkqUe7jvvJTFuztYQe-R5w,2403
28
- reflex/.templates/jinja/web/package.json.jinja2,sha256=cS9M6ADYDoYL2Kc8m5dYhV8eDaehOXb6qK_IOijT3N0,673
29
- reflex/.templates/jinja/web/vite.config.js.jinja2,sha256=pSrDq10Y4oSSO55CCsxsT2I0OUIoqBnEhxjG6ElFVN4,1715
30
- reflex/.templates/jinja/web/pages/_app.js.jinja2,sha256=tG-SRR7DCP3SxLoUl_5rIRmL1uBDVnkcenSUxy459hY,1575
31
- reflex/.templates/jinja/web/pages/_document.js.jinja2,sha256=v_r79GPGKnw1g9Bg4lK9o_ow5AzBnvKdz0nv3OgJyzU,166
32
- reflex/.templates/jinja/web/pages/base_page.js.jinja2,sha256=nteivFZgOhgwxlPvejgaoxKTPGvDRb7_JAXhsZDZeLM,361
33
- reflex/.templates/jinja/web/pages/component.js.jinja2,sha256=1Pui62uSL7LYA7FXZrh9ZmhKH8vHYu663eR134hhsAY,86
34
- reflex/.templates/jinja/web/pages/custom_component.js.jinja2,sha256=xUOfUwREPp4h2kozr6mEqSAASnNLzC9b9XHCXVsUQjg,485
35
- reflex/.templates/jinja/web/pages/index.js.jinja2,sha256=7sXw99TfjlcLYiLKlWvD3k-3IuFzLO4Y63mvSU97uds,360
36
- reflex/.templates/jinja/web/pages/macros.js.jinja2,sha256=RtMZ6eufmMrHghNDMKpueSAhd-znKjgBbJXAAHFc7vU,901
37
- reflex/.templates/jinja/web/pages/stateful_component.js.jinja2,sha256=gAipi5MiAVgHntadfThsogunlqpmUwLk5ROLyJJGgUM,387
38
- reflex/.templates/jinja/web/pages/stateful_components.js.jinja2,sha256=BfHi7ckH9u5xOliKWxjgmnia6AJbNnII97SC-dt_KSU,101
39
- reflex/.templates/jinja/web/pages/utils.js.jinja2,sha256=12v0-q-o-m0Oxr0H35GTtoJqGRpmbZSrRd5js95F5fI,3156
40
- reflex/.templates/jinja/web/styles/styles.css.jinja2,sha256=acb0EFvhRLLMc_EDguy1qcMq9CJ6i2tsWUzFyXi-9vk,163
41
- reflex/.templates/jinja/web/utils/context.js.jinja2,sha256=l1k-H4Y0DmOdeMr8xVEwkSzeBpVc1o94cOjJJ3B2WSY,4103
42
- reflex/.templates/jinja/web/utils/theme.js.jinja2,sha256=OSpBMh0Z9tTeqb10js4ZtnE9s1RV4gJfE8629csST8M,26
43
22
  reflex/.templates/web/.gitignore,sha256=3tT0CtVkCL09D_Y3Hd4myUgGcBuESeavCa0WHU5ifJ4,417
44
23
  reflex/.templates/web/jsconfig.json,sha256=rhQZZRBYxBWclFYTeU6UakzbGveM4qyRQZUpEAVhyqY,118
45
24
  reflex/.templates/web/postcss.config.js,sha256=6Hf540Ny078yfmJ_-tniZtmgHW6euyEyxO0zH-Y1EtQ,86
@@ -58,17 +37,17 @@ reflex/.templates/web/utils/helpers/paste.js,sha256=ef30HsR83jRzzvZnl8yV79yqFP8T
58
37
  reflex/.templates/web/utils/helpers/range.js,sha256=Bjr7Ex1Mghpsopjfrcp__IVFw8F8AsMiP-0nE20ZZwk,1091
59
38
  reflex/.templates/web/utils/helpers/throttle.js,sha256=qxeyaEojaTeX36FPGftzVWrzDsRQU4iqg3U9RJz9Vj4,566
60
39
  reflex/app_mixins/__init__.py,sha256=Oegz3-gZLP9p2OAN5ALNbsgxuNQfS6lGZgQA8cc-9mQ,137
61
- reflex/app_mixins/lifespan.py,sha256=9rrdVUY0nHyk3gj31WJm7mw6I7KHBNtvSs9tZdwUm4I,3300
40
+ reflex/app_mixins/lifespan.py,sha256=a156ZUYVo2bN1Tv-4WmWSjojo90PP_2-V12BX0q8YNw,3543
62
41
  reflex/app_mixins/middleware.py,sha256=BKhe0jUFO1_TylEC48LUZyaeYyPmAYW-NV4H5Rw221k,2848
63
42
  reflex/app_mixins/mixin.py,sha256=R1YncalqDrbdPZvpKVbm72ZKmQZxYAWfuFq9JknzTqQ,305
64
43
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
65
- reflex/compiler/compiler.py,sha256=AEGoZRG3PVOUf_5lZxlAt0pwsXg-lYIdOluyzpMuyOI,29088
66
- reflex/compiler/templates.py,sha256=eWBtJBrriUyb7j4yRCi2X8MVauIVAfz0Ip6NaXLUhIM,6104
67
- reflex/compiler/utils.py,sha256=587KMP1BDYYigAY6looM9L69Eoq3PEOxCB8k7r9BW5A,18922
44
+ reflex/compiler/compiler.py,sha256=mvGynpsmFI5de5vQcH7Urkv7l8eOO_ytUxB4_XigbyY,29125
45
+ reflex/compiler/templates.py,sha256=PcFJpmFJ99OlQtgXd_UKVCUQ62LDWAwMnwL3QKZgXI0,20080
46
+ reflex/compiler/utils.py,sha256=saz5INjH5C7WO1bS3FE1vRm5sKcSXrNnbmFpmLI0xyw,19128
68
47
  reflex/components/__init__.py,sha256=eWpgWFbSQDj2TpGp6StEbxU7roQgzY7ZM0XIcIc5RE8,588
69
48
  reflex/components/__init__.pyi,sha256=7VFHtJGIjvGtD3IiPk848IPWYSCcPRT1EyPGljLhYlU,736
70
- reflex/components/component.py,sha256=2eZlhNMh_unz-3wMJ2ZEuDT0CjKKOh5KUocbDgLb0t0,98541
71
- reflex/components/dynamic.py,sha256=AyOjAW5LQZlDShIFJ7d9P2dFTI-1pr1tZR32E2Rhr9s,7422
49
+ reflex/components/component.py,sha256=sv_zeiC8hZMn8DptUHgBzX2wffVNT3EzepWXxJd68R4,98628
50
+ reflex/components/dynamic.py,sha256=WfN1waxtRuuZ3-8MvooDi4SkFxem4R8wAHOLXx_9rCo,7422
72
51
  reflex/components/field.py,sha256=j5JZFzNlET3GAIW91m1L31RypXylMAxJNm0-CJbtykM,5745
73
52
  reflex/components/literals.py,sha256=hogLnwTJxFJODIvqihg-GD9kFZVsEBDoYzaRit56Nuk,501
74
53
  reflex/components/props.py,sha256=BH7RiRu_EI2BRkB1PyBVp6tLeFTTV4FzGEdDIXXQ9Bk,14378
@@ -76,7 +55,7 @@ reflex/components/base/__init__.py,sha256=6DzVn2oVZqmsXYq3r9AN8Q40R0NAsyRpSyVzBD
76
55
  reflex/components/base/__init__.pyi,sha256=CoM0dGGkZSKLNHe6KBS4Zgc6sRpRGM5dZ_EuVmZ2qkA,883
77
56
  reflex/components/base/app_wrap.py,sha256=5K_myvYvHPeAJbm3BdEX17tKvdNEj6SV9RYahbIQBAQ,514
78
57
  reflex/components/base/app_wrap.pyi,sha256=opdrLSp-IGFibjM4bPLZPxLsyhc1H6nev2F9XhPfOSg,1996
79
- reflex/components/base/bare.py,sha256=jv6HStlixsBTPR6Q_PQnd7MtQDz3ncktcLYUODqwog0,7733
58
+ reflex/components/base/bare.py,sha256=yALgxs1OhssQVcrcJwWtprw_DKKeXjVMLMZpTzn0Isc,8271
80
59
  reflex/components/base/body.py,sha256=KLPOhxVsKyjPwrY9AziCOOG_c9ckOqIhI4n2i3_Q3NU,129
81
60
  reflex/components/base/body.pyi,sha256=VG8N-0ocwgFOJR9mXfu6a5BtIY_jR7mK9lX3Y22g9GQ,8655
82
61
  reflex/components/base/document.py,sha256=Fr7y22NbeKeiz8kWPH2q5BpFjKdq-AmY-sxZilee_H8,636
@@ -103,15 +82,15 @@ reflex/components/core/breakpoints.py,sha256=7nNG9Ewjvbk1hB0VoFiQxlDR333Mq2y977C
103
82
  reflex/components/core/clipboard.py,sha256=lrM4KpbioSqBclhvtrgawgeg9Vq2dKsv40xP4bUgYmA,3339
104
83
  reflex/components/core/clipboard.pyi,sha256=Wt84ce1rd5vje-KuzAIkn_0riAD91_VtnZcRiRBsFLs,3230
105
84
  reflex/components/core/colors.py,sha256=gkT5o5OqI_BR5fGMcCmBUpaz99XRNol9zAis46WktI4,1564
106
- reflex/components/core/cond.py,sha256=pvswEzF9kMKcL5G5TkvJc3zce4RVYrhAN5gLM-9WsI4,5657
85
+ reflex/components/core/cond.py,sha256=zjDM7Elf0iYpA1MtnUjXvEbD5XvYbluWDTaQ96uxZSI,5531
107
86
  reflex/components/core/debounce.py,sha256=P0rj23JKVsx_dzPMVI4HTOyrXhhacxh-QkI4Z9K6KNQ,5022
108
87
  reflex/components/core/debounce.pyi,sha256=-vEa4eIS2VlHwoL1jMmAey_dMGzz0h4VbDhzC6JT6vI,3105
109
- reflex/components/core/foreach.py,sha256=U0vXz1WQjj0gnfkjhgW2cWEfi-gurbsaC5YC8GnqBq4,6269
88
+ reflex/components/core/foreach.py,sha256=HCAoDfdyumK8FvgNrfnQeNRaf6Cngn_6U02640M8ofI,6264
110
89
  reflex/components/core/helmet.py,sha256=9Fr2Tz_J2v8r5t1xeZClL0V5-fEWTiFAXTcJ6bECvAw,220
111
90
  reflex/components/core/helmet.pyi,sha256=dp5AOEPQYM77-_ylpsbgbsZkUqu37RblgUGw7Y0BGcI,2391
112
91
  reflex/components/core/html.py,sha256=JKK3MsbuzxtcVXbzvW_Q4TZuF9yk3WwiC9LmQl34rzA,1303
113
92
  reflex/components/core/html.pyi,sha256=yDzRQ10yf8ZzbP76C2rEG2gx6Vud_Ez3LcHDWMgyFns,8944
114
- reflex/components/core/match.py,sha256=tRSR-77Y9MoKMYr15PRR5LmEmxkSFOhY4Bxb7KnUx9g,9092
93
+ reflex/components/core/match.py,sha256=xBB9vtWgVlotPHq6ssng8lzxwXDDQLp9k6Ew5RPPd3U,9888
115
94
  reflex/components/core/responsive.py,sha256=ACZdtJ4a4F8B3dm1k8h6J2_UJx0Z5LDB7XHQ2ty4wAc,1911
116
95
  reflex/components/core/sticky.py,sha256=2B3TxrwG2Rtp_lv1VkMOIF2bqSiT7qYGbqbiZiMKxKY,3856
117
96
  reflex/components/core/sticky.pyi,sha256=jtxJjHR8eZEq2yKHGr0U16Nof4OpDXMadf1JtA_6ofk,32750
@@ -137,8 +116,8 @@ reflex/components/el/elements/__init__.py,sha256=_uZaPHSQSDZBqo-v_hRZECJbWBY3Srq
137
116
  reflex/components/el/elements/__init__.pyi,sha256=LCaxINN6BUqHsxgpDITjOUqJnF3x5rRI8y2fj62ZT14,8680
138
117
  reflex/components/el/elements/base.py,sha256=4jnwyCQUHvWcIfwiIWVCiIC_jbwZlkAiOgx73t7tdw8,3075
139
118
  reflex/components/el/elements/base.pyi,sha256=RPdq_8Z1gkV-5n2qeEVQWpPCwVSTzY4eYb6iIJVU-ig,10074
140
- reflex/components/el/elements/forms.py,sha256=HK3bJd4pUU7CBjC4Py9Q_AblyaUE6ELyifHQ2lVWDhs,21395
141
- reflex/components/el/elements/forms.pyi,sha256=4O2RyZPyC5WGA52SKYWOEvRrbiWg7emLzbtO_w8G_3w,168606
119
+ reflex/components/el/elements/forms.py,sha256=75RJqmw4vBEUeYFNZwza91BpiXnEVSSK3HVPqyZcK44,22004
120
+ reflex/components/el/elements/forms.pyi,sha256=NSmo68oksZkzOoSGA5XKNVzqU0K3WIzkFN82EDLC-f8,168115
142
121
  reflex/components/el/elements/inline.py,sha256=q3Ku_x8L9NaXrYQovCfkWwZ5AfXG0VyhGN_OT73kA0Y,4126
143
122
  reflex/components/el/elements/inline.pyi,sha256=0pjqiHH8DmFfghbM8MK5tqgiZGSnfT-o055GINU8xrA,231760
144
123
  reflex/components/el/elements/media.py,sha256=t5vDG5q8K_-YTu2tkyeC7bXb0O913Z5C74jPhDjIqmA,14586
@@ -159,10 +138,10 @@ reflex/components/gridjs/__init__.py,sha256=xJwDm1AZ70L5-t9LLqZwGUtDpijbf1KuMYDT
159
138
  reflex/components/gridjs/datatable.py,sha256=7JKrRw1zkpFB0_wwoaIhrVrldsm7-dyi3PASgqLq8Hc,4224
160
139
  reflex/components/gridjs/datatable.pyi,sha256=kFgv82vCgfdWZaUq4bZ73G8X3mkw6ecvSRkZ9G9-28E,5185
161
140
  reflex/components/lucide/__init__.py,sha256=EggTK2MuQKQeOBLKW-mF0VaDK9zdWBImu1HO2dvHZbE,73
162
- reflex/components/lucide/icon.py,sha256=5rGGbkfNTftuDPllEsBQ8MCwFEjddG9pnsogKjFjp6w,35202
163
- reflex/components/lucide/icon.pyi,sha256=F3gzfvQuyI1KJWnL2O5uAtwZeNNv0F60ARqWZVZr0uM,37996
141
+ reflex/components/lucide/icon.py,sha256=Ow04V0M_9Ccgitp82NqaxTpMkTcIGYxTactJRZrrQMI,35214
142
+ reflex/components/lucide/icon.pyi,sha256=aqYf3ax3GX7RH4BUIfIG-PIeFVwZe0P9SHbucfb7q1Y,38008
164
143
  reflex/components/markdown/__init__.py,sha256=Dfl1At5uYoY7H4ufZU_RY2KOGQDLtj75dsZ2BTqqAns,87
165
- reflex/components/markdown/markdown.py,sha256=scDHnmn2n4KHXS2Imqa1jw1wTk1ewCB2MojC9NgKGHQ,15503
144
+ reflex/components/markdown/markdown.py,sha256=kzvO2VnfCbxV7AcIMBJbxLtAlQ6U5T_QB_JTh8l-HJ4,15450
166
145
  reflex/components/markdown/markdown.pyi,sha256=oOlXZItHB0TPWsFz1Qjvr3KzG8sssthBp40UO_KkRIA,4322
167
146
  reflex/components/moment/__init__.py,sha256=jGnZgRBivYJQPIcFgtLaXFteCeIG3gGH5ACXkjEgmsI,92
168
147
  reflex/components/moment/moment.py,sha256=fhhzrun9USb8J30btpyyDD3JuXF_N7EL5Dou3x7NQYw,4080
@@ -174,17 +153,17 @@ reflex/components/radix/__init__.py,sha256=fRsLvIO3MrTtPOXtmnxYDB9phvzlcbyB_utgp
174
153
  reflex/components/radix/__init__.pyi,sha256=ke_dGrpFMNHd3MgQ9qiStSQDlGcJ39KVSrpIxayBU3c,3927
175
154
  reflex/components/radix/primitives/__init__.py,sha256=R2sdZJqQCYaLScGkXnXDKAjVgV5MidceemooEUtvBt4,443
176
155
  reflex/components/radix/primitives/__init__.pyi,sha256=kOCtVqDuSsBt5-lCcqM-3CBJsv-QokWIfkq0_iyqVDU,413
177
- reflex/components/radix/primitives/accordion.py,sha256=vAhTGNxdeqPjD3O-rYj4fHvt0V0hPBA06qczjX9hAm0,16191
156
+ reflex/components/radix/primitives/accordion.py,sha256=yr_GtuU8cGiMyXmWXFx-Tz8P1dyz-zNTa1-bsHoME-Y,16191
178
157
  reflex/components/radix/primitives/accordion.pyi,sha256=QuAwkB02qfJs8zqHfS25tpLYCjlnenEIMH61KKI8u1Q,28219
179
158
  reflex/components/radix/primitives/base.py,sha256=9OvGDI1to8XL_a2hr3fNBQUwTHZBUO424ea2-UTKD18,770
180
159
  reflex/components/radix/primitives/base.pyi,sha256=Cv5PCGNBO-QFXvBs5E5sxIkcQUgSHHUhSxQPl64T4ZU,4635
181
- reflex/components/radix/primitives/drawer.py,sha256=Nxd745cuNFsiZIZh33gJjm5RfGwrbv-yeSEkHa6OI-8,9262
160
+ reflex/components/radix/primitives/drawer.py,sha256=3-l8kUX9WZ-4SFbMIVOeU5CJWHHC5SMLpZk_kgd2o3I,9262
182
161
  reflex/components/radix/primitives/drawer.pyi,sha256=bdYaa6-WjH3kdFBFZc2IRwfSTrgqI3vFy5ueQuvAHEo,29735
183
- reflex/components/radix/primitives/form.py,sha256=oqyJeJNpmG3sRmHqZbI-HaYR0PDbDcJVTR96Um4HFn4,4801
162
+ reflex/components/radix/primitives/form.py,sha256=jxCt0xZRE9Xx5tBIJNojYwyvhN631_aNdlFQSPgm2dU,4801
184
163
  reflex/components/radix/primitives/form.pyi,sha256=1g9IOcPDWPQDrdLYkeHgVXnF9Dcsng82yH8xKlOjrRw,47184
185
164
  reflex/components/radix/primitives/progress.py,sha256=UvuUn6eWEhnhqImDvYOwa9Z3CE5gu5EV28uPBbZAT4k,3988
186
165
  reflex/components/radix/primitives/progress.pyi,sha256=63AyvhVFf1lDG5NQTW-1o2Ek_kx2dt_tVAS-5RXM-Fw,16469
187
- reflex/components/radix/primitives/slider.py,sha256=tS8tqVwoTj9hSiUktxotZBvWoItL4CuhvGnWZrnhek8,5030
166
+ reflex/components/radix/primitives/slider.py,sha256=a0btZ7GCuyXHSV4CZbXD7AP1BTh_VHvOnrac3a8BnCY,5030
188
167
  reflex/components/radix/primitives/slider.pyi,sha256=Hv8YlWsCgGhstlaq9_C8abryIu60bImpjCvzTwbDVn0,12446
189
168
  reflex/components/radix/themes/__init__.py,sha256=3ASzR_OrjkLXZ6CksGKIQPOcyYZ984NzXrn2UCIdxUc,492
190
169
  reflex/components/radix/themes/__init__.pyi,sha256=B_xv0vBBRsCOinQasRO3ni_g8xbpucIPXCn5xZckgww,445
@@ -325,31 +304,31 @@ reflex/components/sonner/__init__.py,sha256=L_mdRIy7-ccRGSz5VK6J8O-c-e-D1p9xWw29
325
304
  reflex/components/sonner/toast.py,sha256=sJ9E60VaMBwoev4aBrKr42ygN7e0jajNTooa5o5wYPQ,12505
326
305
  reflex/components/sonner/toast.pyi,sha256=cj0zlkcFVmJ3CrHe2XIsF0MeBw61Bn-hrGkzHTFz8Og,7782
327
306
  reflex/components/tags/__init__.py,sha256=Pc0JU-Tv_W7KCsydXgbKmu7w2VtHNkI6Cx2hTkNhW_Q,152
328
- reflex/components/tags/cond_tag.py,sha256=kqN3FoDzr5fZUng1KDIvGmdQCLd7Tni3TQ_iaEz8F-w,641
329
- reflex/components/tags/iter_tag.py,sha256=6w0pLBJ4ZJq1B3mz9kV3b8fULCGhzqpMDHWPbHphFxA,4421
330
- reflex/components/tags/match_tag.py,sha256=cMSa_hbuEV8uFg0iCwLhRJ0J6-oU5rKQf9Z2-h2Necc,632
331
- reflex/components/tags/tag.py,sha256=AbB8MtmmMUAvlMtQe7XLL-afsb1rckzo4R1MJ1RsNQs,3865
332
- reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
307
+ reflex/components/tags/cond_tag.py,sha256=svlnSP2ZMwHqjsHa3fq7a7K2--3XTLo5FcbjOw7fVik,849
308
+ reflex/components/tags/iter_tag.py,sha256=Q4rPOt0NSjYhAPDOnNtu7XPxn3MCYZInZjYU3xPJq2Q,3716
309
+ reflex/components/tags/match_tag.py,sha256=ppkf2o4sMcaK-lAn7cNC3ZcmiUUbtdVhRdsw6IvD10s,805
310
+ reflex/components/tags/tag.py,sha256=wlwD1We3ipgibPGsT1FS0aYYaJasLsjlfaOTgUT_aGg,3848
311
+ reflex/components/tags/tagless.py,sha256=APeSG-6N5-ucWwkq_hUl7zfT_vpoKleQdP80wPERG18,904
333
312
  reflex/constants/__init__.py,sha256=q2Jf-LBbNcGrOmx5M7QotIAYW_t3m02TsmmdtJ5_IhM,2190
334
- reflex/constants/base.py,sha256=ei3YERoOFdS3yrCYbr7GDcPNlFN9YkVIZRBcj-MWFYw,7619
313
+ reflex/constants/base.py,sha256=rZ2JFO3mu5fVpjIUbiPJ7YCbensCjefbzYtV9uEwqpw,7539
335
314
  reflex/constants/colors.py,sha256=n-FN7stNrvk5rCN0TAvE28dqwUeQZHue-b5q1CO0EyQ,2048
336
315
  reflex/constants/compiler.py,sha256=bzmC1OW6kWr06rV1Gwoa2AtQ4yPoGhEzeoqpiNY0jwU,5703
337
316
  reflex/constants/config.py,sha256=8OIjiBdZZJrRVHsNBheMwopE9AwBFFzau0SXqXKcrPg,1715
338
317
  reflex/constants/custom_components.py,sha256=joJt4CEt1yKy7wsBH6vYo7_QRW0O_fWXrrTf0VY2q14,1317
339
318
  reflex/constants/event.py,sha256=tgoynWQi2L0_Kqc3XhXo7XXL76A-OKhJGHRrNjm7gFw,2885
340
- reflex/constants/installer.py,sha256=VmJfwEUfgr9lcIVNlYoUXFHDYRfwrBtUKm6dSu4GOHg,4191
319
+ reflex/constants/installer.py,sha256=VmTFvbevO5lk_t1KbY4Nq_uvnfnFzUChf4IJWfjBCbs,4191
341
320
  reflex/constants/route.py,sha256=UBjqaAOxiUxlDZCSY4O2JJChKvA4MZrhUU0E5rNvKbM,2682
342
321
  reflex/constants/state.py,sha256=dkoVvO9JcJyHovHJlGsZx-dDxpM80OvS4cJEm_TUOiM,349
343
322
  reflex/constants/utils.py,sha256=e1ChEvbHfmE_V2UJvCSUhD_qTVAIhEGPpRJSqdSd6PA,780
344
323
  reflex/custom_components/__init__.py,sha256=R4zsvOi4dfPmHc18KEphohXnQFBPnUCb50cMR5hSLDE,36
345
- reflex/custom_components/custom_components.py,sha256=ho4C_Yf_tbf7iZaiqtk7GFllMSzoHHDXBxhKzapwZzo,20218
324
+ reflex/custom_components/custom_components.py,sha256=QfSEiPQY7Z7ZdYDsxJOgtD7EZopIdGw2ERpt_dMcPCs,25500
346
325
  reflex/experimental/__init__.py,sha256=P8fe8S2e2gy2HCwHFGQzr3lPMmh7qN5Ii2e8ukoPHuQ,1664
347
- reflex/experimental/client_state.py,sha256=1VOe6rYhpOBOZi7-tZwfOnSNPPdX3tsXzlfgNs7aDrg,10020
326
+ reflex/experimental/client_state.py,sha256=adITjFmvzO081yaVgne2PZpG0hc_SrJHyLLbE-zfet0,10024
348
327
  reflex/experimental/hooks.py,sha256=CHYGrAE5t8riltrJmDFgJ4D2Vhmhw-y3B3MSGNlOQow,2366
349
328
  reflex/istate/__init__.py,sha256=afq_pCS5B_REC-Kl3Rbaa538uWi59xNz4INeuENcWnk,2039
350
329
  reflex/istate/data.py,sha256=KrANpAQFTZcfFWnxyykgK1FRNuXTwTin1WYpyqymV-U,7547
351
330
  reflex/istate/dynamic.py,sha256=xOQ9upZVPf6ngqcLQZ9HdAAYmoWwJ8kRFPH34Q5HTiM,91
352
- reflex/istate/manager.py,sha256=8EezUlCGkkg_UIs1xa460kZFdJ9qHo6naazphT4jqns,30446
331
+ reflex/istate/manager.py,sha256=xQhvpTqnsVI5DmnZOq39IiQ-g1d-gtihQdEGKKM6-oQ,30531
353
332
  reflex/istate/proxy.py,sha256=Q8JrV1m6drVcTNJL9JuN-nKUXclazs96OHl_fhR0UBk,25928
354
333
  reflex/istate/storage.py,sha256=gCPoiZxuG-Rw0y-Pz3OC7rv4o08dQ_jK1fE2u8Jhxqg,4339
355
334
  reflex/istate/wrappers.py,sha256=p8uuioXRbR5hperwbOJHUcWdu7hukLikQdoR7qrnKsI,909
@@ -359,10 +338,10 @@ reflex/middleware/middleware.py,sha256=p5VVoIgQ_NwOg_GOY6g0S4fmrV76_VE1zt-HiwbMw
359
338
  reflex/plugins/__init__.py,sha256=jrMWQqMxCwDwgwQYTygeR_pIewMcvIFwAnngPbjSumQ,439
360
339
  reflex/plugins/_screenshot.py,sha256=CAOaRpbrpTTIswwCXqhv7WYShB86Ao9MVv6dcXJzRb4,3958
361
340
  reflex/plugins/base.py,sha256=5BgzCM7boj9kJ6FGzVzVlgQk-crJuVmOLCl1PXvv4-E,3372
362
- reflex/plugins/shared_tailwind.py,sha256=UXUndEEcYBZ02klymw-vSZv01IZVLJG3oSaBHpQ617U,6426
341
+ reflex/plugins/shared_tailwind.py,sha256=Zx1TDAjpXGI5aEjpB8NWS__xYRSNu_SEMTB6Z3ub120,7305
363
342
  reflex/plugins/sitemap.py,sha256=Jj47uSMnkxndl7awkl48EhlQylBfY00WuMBNyTBcZHA,6186
364
- reflex/plugins/tailwind_v3.py,sha256=7bXI-zsGoS1pW27-_gskxGaUOQ7NQMPcYkoI5lnmIMA,4819
365
- reflex/plugins/tailwind_v4.py,sha256=gDzQd9M1F03n6sU0xSKhNZZ3xFO5SJMBmSXL-dPteOM,5239
343
+ reflex/plugins/tailwind_v3.py,sha256=jCEZ5UYdr706Mw48L-WSHOUB6O55o1C3uG6AMwXqZoI,4810
344
+ reflex/plugins/tailwind_v4.py,sha256=q6OxgWENu4fml4mKr8ncgjIU5ENgQCfNagtUOh51hik,5230
366
345
  reflex/utils/__init__.py,sha256=y-AHKiRQAhk2oAkvn7W8cRVTZVK625ff8tTwvZtO7S4,24
367
346
  reflex/utils/build.py,sha256=GLT2ycqgAe1cw__MFbfdlYrkzcTnY1oJ8cAv80jEcnQ,8641
368
347
  reflex/utils/codespaces.py,sha256=kEQ-j-jclTukFpXDlYgNp95kYMGDrQmP3VNEoYGZ1u4,3052
@@ -372,9 +351,9 @@ reflex/utils/decorator.py,sha256=QUZntENupeW5FA5mNRTx0I1GzGKFQXhMjVg24_IIM5o,395
372
351
  reflex/utils/exceptions.py,sha256=Wwu7Ji2xgq521bJKtU2NgjwhmFfnG8erirEVN2h8S-g,8884
373
352
  reflex/utils/exec.py,sha256=o0u81B6pHv5Yt982V1vFYEJDxgM-HxmM5KRUBbTYmZI,21965
374
353
  reflex/utils/export.py,sha256=Z2AHuhkxGQzOi9I90BejQ4qEcD0URr2i-ZU5qTJt7eQ,2562
375
- reflex/utils/format.py,sha256=FZe5NA0U3K0n0k7r8RIGcx-eHpN7sf8eQX9w1C8_uR8,21120
376
- reflex/utils/frontend_skeleton.py,sha256=oPF7JUnRmBANbk3rBYPSCjKHvlgdN90kotVnNqHTfUI,8604
377
- reflex/utils/imports.py,sha256=Ov-lqv-PfsPl3kTEW13r5aDauIfn6TqzEMyv42RKLOA,3761
354
+ reflex/utils/format.py,sha256=ZgZndjYujTMiHaG2Yg3LPVqr7-yoZZTBvlCLNX07iEU,21109
355
+ reflex/utils/frontend_skeleton.py,sha256=aCWJZN-xtZ9pOMrUwpx9RDXorCpTcNDeD9p3Meh-Q5U,8608
356
+ reflex/utils/imports.py,sha256=3hBb_3UPRjHt90HiFEoAt1acJWQ29RU8PFA1rFLLVRo,4242
378
357
  reflex/utils/js_runtimes.py,sha256=ipVrZCajiRcjow-nQeUuxPS_c6F_NpfvMtITOesbPjU,13153
379
358
  reflex/utils/lazy_loader.py,sha256=BiY9OvmAJDCz10qpuyTYv9duXgMFQa6RXKQmTO9hqKU,4453
380
359
  reflex/utils/misc.py,sha256=folEweZVCrhHNkkqut9KqQdTJ80HxwL_gI41m40FnNM,4592
@@ -383,13 +362,13 @@ reflex/utils/net.py,sha256=q3h5pNbAlFiqy8U15S9DTOvzy_OnenVVug5ROBTGRTA,4267
383
362
  reflex/utils/path_ops.py,sha256=_RS17IQDNr5vcoLLGZx2-z1E5WP-JgDHvaRAOgqrZiU,8154
384
363
  reflex/utils/prerequisites.py,sha256=LEQCGg_PpvrNOBiOMZUZRrqWXYAW1Zkp56tHAPrpL9s,18643
385
364
  reflex/utils/processes.py,sha256=t-ufWwu9RDsSMXCSsmjS2TILP5s7-AY94Rgx2O2gHMw,18178
386
- reflex/utils/pyi_generator.py,sha256=HdmUVs50Bk7MAMFSvpATRhH--_50w-9URMFnjLlwT40,46086
365
+ reflex/utils/pyi_generator.py,sha256=j-xzMg2XjjM7eJsdx5cG4tWpe__ef0a8Isv1AvawqpA,46393
387
366
  reflex/utils/redir.py,sha256=E6lJ6UYGQs_uCyQAKHT_dDMplo5IRZ9JarWfvgGAgGo,1731
388
367
  reflex/utils/registry.py,sha256=omKh5rrsybDuuKmh4K88lwdwwcpGsu3Vc4pCko_djKY,2239
389
368
  reflex/utils/rename.py,sha256=qdE4SXHOaNs-TDGrnJz-h_nvLWA1C5osVrWb4wLSfyI,5262
390
369
  reflex/utils/serializers.py,sha256=sVLfbWIBKPpmo0CVVxoxXGu0K3R9mYMWgaI02LXZmcM,13952
391
- reflex/utils/telemetry.py,sha256=Ps0Q98dD5RZUlt5skZx2Iopc-hXv5DUdomHZw4u3QcI,10696
392
- reflex/utils/templates.py,sha256=ytAkuBadwlAxL3TA8AeqCIpdll6nENVgyC_jKbWvovY,14376
370
+ reflex/utils/telemetry.py,sha256=KY54NmGWyJVSf9TMTcXw2V6gIbEqut1JkAXmmtIlRfw,10776
371
+ reflex/utils/templates.py,sha256=tWo3jO6laQX8b0gUsqHkio_hUQGIvFbmXC-lxiGcdRo,14251
393
372
  reflex/utils/token_manager.py,sha256=o_HGbqT9WfYRmek2iY9nem4vDZMz8Q4Dra-eW1lKmuA,6999
394
373
  reflex/utils/types.py,sha256=jFHfd2-yHWV61L7YP2gc9Zj2ZLwdthHOOfRIc_PAWH0,38390
395
374
  reflex/vars/__init__.py,sha256=85eXMt32bFoKtMdH3KxYRMD8mtnKyYiQcThPxJLoW1k,1359
@@ -401,8 +380,8 @@ reflex/vars/number.py,sha256=tO7pnvFaBsedq1HWT4skytnSqHWMluGEhUbjAUMx8XQ,28190
401
380
  reflex/vars/object.py,sha256=BDmeiwG8v97s_BnR1Egq3NxOKVjv9TfnREB3cz0zZtk,17322
402
381
  reflex/vars/sequence.py,sha256=1kBrqihspyjyQ1XDqFPC8OpVGtZs_EVkOdIKBro5ilA,55249
403
382
  scripts/hatch_build.py,sha256=-4pxcLSFmirmujGpQX9UUxjhIC03tQ_fIQwVbHu9kc0,1861
404
- reflex-0.8.7.dist-info/METADATA,sha256=nTin5FphJmxeB1EMtS8Tqa-wOJLeAKdGgYfVvoL4F7M,12539
405
- reflex-0.8.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
406
- reflex-0.8.7.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
407
- reflex-0.8.7.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
408
- reflex-0.8.7.dist-info/RECORD,,
383
+ reflex-0.8.8a1.dist-info/METADATA,sha256=YRd_uiDbOXgskGwb-csfoXMKBmyglU9xxt-k4lnguYY,12507
384
+ reflex-0.8.8a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
385
+ reflex-0.8.8a1.dist-info/entry_points.txt,sha256=Rxt4dXc7MLBNt5CSHTehVPuSe9Xqow4HLX55nD9tQQ0,45
386
+ reflex-0.8.8a1.dist-info/licenses/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
387
+ reflex-0.8.8a1.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- import reflex as rx
2
-
3
- config = rx.Config(
4
- app_name="{{ app_name }}",
5
- plugins=[
6
- rx.plugins.SitemapPlugin(),
7
- rx.plugins.TailwindV4Plugin(),
8
- ],
9
- )
@@ -1,9 +0,0 @@
1
- # {{ module_name }}
2
-
3
- A Reflex custom component {{ module_name }}.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- pip install {{ package_name }}
9
- ```
@@ -1 +0,0 @@
1
- from .{{ module_name }} import *
@@ -1,39 +0,0 @@
1
- """Welcome to Reflex! This file showcases the custom component in a basic app."""
2
-
3
- from rxconfig import config
4
-
5
- import reflex as rx
6
-
7
- from {{ custom_component_module_dir }} import {{ module_name }}
8
-
9
- filename = f"{config.app_name}/{config.app_name}.py"
10
-
11
-
12
- class State(rx.State):
13
- """The app state."""
14
-
15
- pass
16
-
17
-
18
- def index() -> rx.Component:
19
- return rx.center(
20
- rx.theme_panel(),
21
- rx.vstack(
22
- rx.heading("Welcome to Reflex!", size="9"),
23
- rx.text(
24
- "Test your custom component by editing ",
25
- rx.code(filename),
26
- font_size="2em",
27
- ),
28
- {{ module_name }}(),
29
- align="center",
30
- spacing="7",
31
- ),
32
- height="100vh",
33
- )
34
-
35
-
36
- # Add state and page to the app.
37
- app = rx.App()
38
- app.add_page(index)
39
-
@@ -1,25 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools", "wheel"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name = "{{ package_name }}"
7
- version = "0.0.1"
8
- description = "Reflex custom component {{ module_name }}"
9
- readme = "README.md"
10
- license = { text = "Apache-2.0" }
11
- requires-python = ">=3.10"
12
- authors = [{ name = "", email = "YOUREMAIL@domain.com" }]
13
- keywords = ["reflex","reflex-custom-components"]
14
-
15
- dependencies = ["reflex>={{ reflex_version }}"]
16
-
17
- classifiers = ["Development Status :: 4 - Beta"]
18
-
19
- [project.urls]
20
-
21
- [project.optional-dependencies]
22
- dev = ["build", "twine"]
23
-
24
- [tool.setuptools.packages.find]
25
- where = ["custom_components"]
@@ -1,57 +0,0 @@
1
- """Reflex custom component {{ component_class_name }}."""
2
-
3
- # For wrapping react guide, visit https://reflex.dev/docs/wrapping-react/overview/
4
-
5
- import reflex as rx
6
-
7
- # Some libraries you want to wrap may require dynamic imports.
8
- # This is because they they may not be compatible with Server-Side Rendering (SSR).
9
- # To handle this in Reflex, all you need to do is subclass `NoSSRComponent` instead.
10
- # For example:
11
- # from reflex.components.component import NoSSRComponent
12
- # class {{ component_class_name }}(NoSSRComponent):
13
- # pass
14
-
15
-
16
- class {{ component_class_name }}(rx.Component):
17
- """{{ component_class_name }} component."""
18
-
19
- # The React library to wrap.
20
- library = "Fill-Me"
21
-
22
- # The React component tag.
23
- tag = "Fill-Me"
24
-
25
- # If the tag is the default export from the module, you must set is_default = True.
26
- # This is normally used when components don't have curly braces around them when importing.
27
- # is_default = True
28
-
29
- # If you are wrapping another components with the same tag as a component in your project
30
- # you can use aliases to differentiate between them and avoid naming conflicts.
31
- # alias = "Other{{ component_class_name }}"
32
-
33
- # The props of the React component.
34
- # Note: when Reflex compiles the component to Javascript,
35
- # `snake_case` property names are automatically formatted as `camelCase`.
36
- # The prop names may be defined in `camelCase` as well.
37
- # some_prop: rx.Var[str] = "some default value"
38
- # some_other_prop: rx.Var[int] = 1
39
-
40
- # By default Reflex will install the library you have specified in the library property.
41
- # However, sometimes you may need to install other libraries to use a component.
42
- # In this case you can use the lib_dependencies property to specify other libraries to install.
43
- # lib_dependencies: list[str] = []
44
-
45
- # Event triggers declaration if any.
46
- # Below is equivalent to merging `{ "on_change": lambda e: [e] }`
47
- # onto the default event triggers of parent/base Component.
48
- # The function defined for the `on_change` trigger maps event for the javascript
49
- # trigger to what will be passed to the backend event handler function.
50
- # on_change: rx.EventHandler[lambda e: [e]]
51
-
52
- # To add custom code to your component
53
- # def _get_custom_code(self) -> str:
54
- # return "const customCode = 'customCode';"
55
-
56
-
57
- {{ module_name }} = {{ component_class_name }}.create
@@ -1,27 +0,0 @@
1
- {
2
- "name": "reflex",
3
- "type": "module",
4
- "scripts": {
5
- "dev": "{{ scripts.dev }}",
6
- "export": "{{ scripts.export }}",
7
- "prod": "{{ scripts.prod }}"
8
- },
9
- "dependencies": {
10
- {% for package, version in dependencies.items() %}
11
- "{{ package }}": "{{ version }}"{% if not loop.last %},{% endif %}
12
-
13
- {% endfor %}
14
- },
15
- "devDependencies": {
16
- {% for package, version in dev_dependencies.items() %}
17
- "{{ package }}": "{{ version }}"{% if not loop.last %},{% endif %}
18
-
19
- {% endfor %}
20
- },
21
- "overrides": {
22
- {% for package, version in overrides.items() %}
23
- "{{ package }}": "{{ version }}"{% if not loop.last %},{% endif %}
24
-
25
- {% endfor %}
26
- }
27
- }
@@ -1,62 +0,0 @@
1
- {% extends "web/pages/base_page.js.jinja2" %}
2
- {% from "web/pages/macros.js.jinja2" import renderHooks %}
3
-
4
- {% block early_imports %}
5
- import reflexGlobalStyles from '$/styles/__reflex_global_styles.css?url';
6
- {% endblock %}
7
-
8
- {% block declaration %}
9
- import { EventLoopProvider, StateProvider, defaultColorMode } from "$/utils/context";
10
- import { ThemeProvider } from '$/utils/react-theme';
11
- import { Layout as AppLayout } from './_document';
12
- import { Outlet } from 'react-router';
13
- {% for library_alias, library_path in window_libraries %}
14
- import * as {{library_alias}} from "{{library_path}}";
15
- {% endfor %}
16
-
17
- {% for custom_code in custom_codes %}
18
- {{custom_code}}
19
- {% endfor %}
20
- {% endblock %}
21
-
22
- {% block export %}
23
- export const links = () => [
24
- { rel: 'stylesheet', href: reflexGlobalStyles, type: 'text/css' }
25
- ];
26
-
27
- function AppWrap({children}) {
28
- {{ renderHooks(hooks) }}
29
-
30
- return (
31
- {{utils.render(render)}}
32
- )
33
- }
34
-
35
-
36
- export function Layout({children}) {
37
- useEffect(() => {
38
- // Make contexts and state objects available globally for dynamic eval'd components
39
- let windowImports = {
40
- {% for library_alias, library_path in window_libraries %}
41
- "{{library_path}}": {{library_alias}},
42
- {% endfor %}
43
- };
44
- window["__reflex"] = windowImports;
45
- }, []);
46
-
47
- return jsx(AppLayout, {},
48
- jsx(ThemeProvider, {defaultTheme: defaultColorMode, attribute: "class"},
49
- jsx(StateProvider, {},
50
- jsx(EventLoopProvider, {},
51
- jsx(AppWrap, {}, children)
52
- )
53
- )
54
- )
55
- );
56
- }
57
-
58
- export default function App() {
59
- return jsx(Outlet, {});
60
- }
61
-
62
- {% endblock %}
@@ -1,9 +0,0 @@
1
- {% extends "web/pages/base_page.js.jinja2" %}
2
-
3
- {% block export %}
4
- export function Layout({children}) {
5
- return (
6
- {{utils.render(document)}}
7
- )
8
- }
9
- {% endblock %}
@@ -1,21 +0,0 @@
1
- {% import 'web/pages/utils.js.jinja2' as utils %}
2
-
3
- {% block early_imports %}
4
- {% endblock %}
5
-
6
- {%- block imports_libs %}
7
-
8
- {% for module in imports%}
9
- {{- utils.get_import(module) }}
10
- {% endfor %}
11
-
12
- {% for dynamic_import in dynamic_imports %}
13
- {{dynamic_import}}
14
- {% endfor %}
15
- {% endblock %}
16
-
17
- {% block declaration %}
18
- {% endblock %}
19
-
20
- {% block export %}
21
- {% endblock %}
@@ -1,2 +0,0 @@
1
- {% import 'web/pages/utils.js.jinja2' as utils %}
2
- {{utils.render(component.render())}}
@@ -1,22 +0,0 @@
1
- {% extends "web/pages/base_page.js.jinja2" %}
2
- {% from "web/pages/macros.js.jinja2" import renderHooks %}
3
-
4
- {% block declaration %}
5
- {% for custom_code in custom_codes %}
6
- {{custom_code}}
7
- {% endfor %}
8
- {% endblock %}
9
-
10
- {% block export %}
11
- {% for component in components %}
12
-
13
- export const {{component.name}} = memo(({ {{-component.props|join(", ")-}} }) => {
14
- {{ renderHooks(component.hooks) }}
15
-
16
- return(
17
- {{utils.render(component.render)}}
18
- )
19
-
20
- })
21
- {% endfor %}
22
- {% endblock %}
@@ -1,18 +0,0 @@
1
- {% extends "web/pages/base_page.js.jinja2" %}
2
- {% from "web/pages/macros.js.jinja2" import renderHooks %}
3
-
4
- {% block declaration %}
5
- {% for custom_code in custom_codes %}
6
- {{custom_code}}
7
- {% endfor %}
8
- {% endblock %}
9
-
10
- {% block export %}
11
- export default function Component() {
12
- {{ renderHooks(hooks)}}
13
-
14
- return (
15
- {{utils.render(render)}}
16
- )
17
- }
18
- {% endblock %}
@@ -1,38 +0,0 @@
1
- {% macro renderHooks(hooks) %}
2
- {% set sorted_hooks = sort_hooks(hooks) %}
3
-
4
- {# Render the grouped hooks #}
5
- {% for hook, _ in sorted_hooks[const.hook_position.INTERNAL] %}
6
- {{ hook }}
7
- {% endfor %}
8
-
9
- {% for hook, _ in sorted_hooks[const.hook_position.PRE_TRIGGER] %}
10
- {{ hook }}
11
- {% endfor %}
12
-
13
- {% for hook, _ in sorted_hooks[const.hook_position.POST_TRIGGER] %}
14
- {{ hook }}
15
- {% endfor %}
16
- {% endmacro %}
17
-
18
- {% macro renderHooksWithMemo(hooks, memo)%}
19
- {% set sorted_hooks = sort_hooks(hooks) %}
20
-
21
- {# Render the grouped hooks #}
22
- {% for hook, _ in sorted_hooks[const.hook_position.INTERNAL] %}
23
- {{ hook }}
24
- {% endfor %}
25
-
26
- {% for hook, _ in sorted_hooks[const.hook_position.PRE_TRIGGER] %}
27
- {{ hook }}
28
- {% endfor %}
29
-
30
- {% for hook in memo %}
31
- {{ hook }}
32
- {% endfor %}
33
-
34
- {% for hook, _ in sorted_hooks[const.hook_position.POST_TRIGGER] %}
35
- {{ hook }}
36
- {% endfor %}
37
-
38
- {% endmacro %}
@@ -1,15 +0,0 @@
1
- {% import 'web/pages/utils.js.jinja2' as utils %}
2
- {% from 'web/pages/macros.js.jinja2' import renderHooksWithMemo %}
3
- {% set all_hooks = component._get_all_hooks() %}
4
-
5
- {% if export %}
6
- export function {{tag_name}} () {
7
- {% else %}
8
- function {{tag_name}} () {
9
- {% endif %}
10
- {{ renderHooksWithMemo(all_hooks, memo_trigger_hooks) }}
11
-
12
- return (
13
- {{utils.render(component.render())}}
14
- )
15
- }
@@ -1,5 +0,0 @@
1
- {% extends "web/pages/base_page.js.jinja2" %}
2
-
3
- {% block export %}
4
- {{ memoized_code }}
5
- {% endblock %}