Skip to content

Releases: plotly/dash

Dash v3.0.2

01 Apr 19:45
2525a3d
Compare
Choose a tag to compare

Changed

  • #3113 Adjusted background polling requests to strip the data from the request, this allows for context to flow as normal. This addresses issue #3111
  • #3248 Changes to rendering logic:
    • if it is first time rendering, render from the parent props
    • listens only to updates for that single component, no children listening to parents
    • if parents change a prop with components as props, only the prop changed re-renders, this is then forced on all children regardless of whether or not the props changed

Fixed

  • #3251. Prevented default styles from overriding className_* props in dcc.Upload component.

Added

  • #3248 added new dashRenderType to determine why the component layout was changed (internal, callback, parent, clientsideApi):
    • this can be utilized to keep from rendering components by the component having dashRenderType defined as a prop, and the dashRenderType = true must be set on the component, eg (Div.dashRenderType = true)

Dash v3.0.1

25 Mar 15:11
cbbbfcb
Compare
Choose a tag to compare

Fixed

  • #3239 Remove stringcase dependency, fix #3238
  • #3232 Add error handling for when localStorage is disabled

Dash v3.0.0

17 Mar 19:53
304cfb2
Compare
Choose a tag to compare

Added

  • #2276 Added component prop static typing for Python.
    • #3152 Custom Python prop typing for component library.
      • Added -t, --custom-typing-module argument to dash-generate-components CLI, default to dash_prop_typing and can contains definitions in variables:
        • custom_imports: dict[ComponentName, list[str]] import statement to be copied at the top of the component class definition.
        • custom_props: dict[ComponentName, dict[PropName, function]] for custom props. The function signature is: def generate_type(type_info, component_name, prop_name) -> str
    • #3035 PropType generation for Typescript components allowing runtime prop validation when in debug mode.
  • #3121 Restyle and add version checker to dev tools.
  • #3029 Add pip install based hooks to Dash functionalities.
    • Packages can add an entry_points with key dash-hooks to their setup.py for a module to be run when a Dash app is started.
    • Add dash.hooks methods to hook into Dash apps.
      • hooks.layout takes the layout as argument and must return a layout, can be used to wrap or add to the layout of Dash apps.
      • hooks.callback defines a callback to be added to Dash apps.
      • hooks.clientside_callback defines a clientside callback to be added to Dash apps.
      • hooks.setup is called before a Dash app is started to get an instance of the app as first argument.
      • hooks.error to receive all callback errors.
      • hooks.index to change the Dash.index_string.
      • hooks.route to add a Flask route to the Dash app.
      • #3175 hooks.custom_data to add custom data called from the callback route to the user callback.
  • #3066 Adds window.dash_component_api for components developer as alternative to removed _dashprivate props.
    • Add dash_component_api.useDashContext, dash_component_api.DashContext to access the redux store and loading mechanisms.
      • DashContext.componentPath hold the path to the current component.
      • DashContext.useLoading(options?) selector to get a boolean if the component is loading.
      • DashContext.isLoading in case you need to use outside of a functional component.
      • DashContext.useSelector to create custom selectors for the connected redux store.
      • DashContext.useStore get the Dash app redux store.
      • DashContext.useDispatch to dispatch new actions on the Dash redux store.
    • Add dash_component_api.getLayout(path) to replace _dashprivate_layout.
    • Expose stringifyId in window.dash_component_api. #3175
    • Add window.dash_component_api.ExternalWrapper to render Dash components that are not part of the layout tree. #3170 #3183

Removed

  • #3066 loading_state removed from components props.
  • #3078 Deprecations removals
    • Removed dash.development.component_loader, components libraries now required to generate the components with dash-generate-components.
    • Dash.run_server has been removed in favor of Dash.run.
    • Removed dcc.LogoutButton component.
    • Renamed all long references to background.

Changed

  • #3093 Changed default React version to 18.3.1
    • defaultProps on functional components now emits a deprecation warning.
    • Deprecation notice on strings refs.

Fixed

  • #3080 Fix docstring generation for components using single-line or nonstandard-indent leading comments
  • #3103 Fix Graph component becomes unresponsive if an invalid figure is passed
  • #3190 Fix issue with cache key generation by adding option to include triggered inputs. Fixes #3189
  • #3130 Fix HOST variable when using conda.
  • #3066 Improve performance of context components re-rendering.
  • #3171 JupyterDash Fix - Alive Check
  • #3168 Fix clientside pattern matching with a dot in the id.

Dash v3.0.0rc4

04 Mar 20:42
e7d95c5
Compare
Choose a tag to compare
Dash v3.0.0rc4 Pre-release
Pre-release

Fixed

  • #3197 Fix initial props not updated in setProps causing the initial value of props to not be able to be set again.
  • #3183 Fix external wrapper requiring id.
  • #3184 Fix devtools dark mode button color issue and other ui fixes for the version checker.

Changed

  • #3183 Change ExternalWrapper props to component, componentPath.
  • #3197 Improved layout path sum stringify of paths.

Dash v3.0.0rc3

21 Feb 18:18
0049cab
Compare
Choose a tag to compare
Dash v3.0.0rc3 Pre-release
Pre-release

[3.0.0-rc3] - 2025-02-21

Added

  • #3121 Restyle and add version checker to dev tools.
  • #3175 Add custom_data hook.
  • #3175 Improved error for removed Dash app attribute, run_server and long_callback
  • #3175 Expose stringifyId in window.dash_component_api.

Fixed

  • #3175 Fix ExternalWrapper rendering children and support pattern matching ids.

Dash v3.0.0rc2

18 Feb 20:30
3541ee4
Compare
Choose a tag to compare
Dash v3.0.0rc2 Pre-release
Pre-release

Added

  • #3152 Custom Python prop typing for component library.
    • Added -t, --custom-typing-module argument to dash-generate-components CLI, default to dash_prop_typing and can contains definitions in variables:
      • custom_imports: dict[ComponentName, list[str]] import statement to be copied at the top of the component class definition.
      • custom_props: dict[ComponentName, dict[PropName, function]] for custom props. The function signature is: def generate_type(type_info, component_name, prop_name) -> str
  • #3170 Add window.dash_component_api.ExternalWrapper to render Dash components that are not part of the layout tree.

Fixed

  • #3142 Fix typing generation for id and dates props.
  • #3164 Fix typing on progress and cancel background callback.
  • #3157 Fix hook priority.

Dash v3.0.0rc1

28 Jan 21:11
b711247
Compare
Choose a tag to compare
Dash v3.0.0rc1 Pre-release
Pre-release

Added

  • #2276 Python typing definition generation for components __init__.
  • #3035 PropType generation for Typescript components allowing runtime prop validation when in debug mode.
  • #3066 Adds window.dash_component_api for components developer as alternative to removed _dashprivate props.
    • Add dash_component_api.useDashContext, dash_component_api.DashContext to access the redux store and loading mechanisms.
      • DashContext.componentPath hold the path to the current component.
      • DashContext.useLoading(options?) selector to get a boolean if the component is loading.
      • DashContext.isLoading in case you need to use outside of a functional component.
      • DashContext.useSelector to create custom selectors for the connected redux store.
      • DashContext.useStore get the Dash app redux store.
      • DashContext.useDispatch to dispatch new actions on the Dash redux store.
    • Add dash_component_api.getLayout(path) to replace _dashprivate_layout.
  • #3029 Add pip install based hooks to Dash functionalities.
    • Packages can add an entry_points with key dash-hooks to their setup.py for a module to be run when a Dash app is started.
    • Add dash.hooks methods to hook into Dash apps.
      • hooks.layout takes the layout as argument and must return a layout, can be used to wrap or add to the layout of Dash apps.
      • hooks.callback defines a callback to be added to Dash apps.
      • hooks.clientside_callback defines a clientside callback to be added to Dash apps.
      • hooks.setup is called before a Dash app is started to get an instance of the app as first argument.
      • hooks.error to receive all callback errors.
      • hooks.index to change the Dash.index_string.
      • hooks.route to add a Flask route to the Dash app.

Removed

  • #3066 loading_state removed from components props.
  • #3078 Deprecations removals
    • Removed dash.development.component_loader, components libraries now required to generate the components with dash-generate-components.
    • Dash.run_server has been removed in favor of Dash.run.
    • Removed dcc.LogoutButton component.
    • Renamed all long references to background.

Changed

  • #3093 Changed default React version to 18.3.1
    • defaultProps on functional components now emits a deprecation warning.
    • Deprecation notice on strings refs.

Fixed

  • #3080 Fix docstring generation for components using single-line or nonstandard-indent leading comments
  • #3103 Fix Graph component becomes unresponsive if an invalid figure is passed
  • #3130 Fix HOST variable when using conda.
  • #3066 Improve performance of context components re-rendering.

Dash v2.18.2

04 Nov 21:17
a1049de
Compare
Choose a tag to compare

Fixed

  • #2939 Fixes bug with whitespace on DataTable when merge_duplicate_header=True. Fixes #2870
  • #2994 Keep generated doc-string order for shape or exact props. Fixes #2990
  • #3011 Fixed an exception error caused by assigning None to array properties with exact or shape element types. Fixes #3010
  • #2991 Add support for URL decoding of the search parameter for pages.
  • #3025 Fix no output callback with error handler setting the response to NoUpdate and triggering an error.
  • #3034 Remove whitespace from metadata.json files to reduce package size.
  • #3009 Performance improvement on (pattern-matching) callbacks.
  • #3028 Fix jupyterlab v4 support.
  • #2926 Fix components defaultProps with react 18.3.1
  • #3051 Add missing request data to callback context. Fix #2235.

Dash v2.18.1

12 Sep 16:11
5c7287f
Compare
Choose a tag to compare

Fixed

  • #2987 Fix multioutput requiring same number of no_update. Fixes #2986
  • 2988 Fix error handler and grouped outputs. Fixes #2983
  • #2841 Fix typing on Dash init.
  • #1548 Enable changing of selenium url, fix for selenium grid support.

Deprecated

  • #2985 Deprecate dynamic component loader.
  • #2985 Deprecate run_server, use run instead.
  • #2899 Deprecate dcc.LogoutButton, can be replaced with a html.Button or html.A. eg: html.A(href=os.getenv('DASH_LOGOUT_URL')) on a Dash Enterprise instance.
  • #2995 Deprecate Dash.__init__ keywords:
    • The plugins keyword will be removed.
    • Old long_callback_manager keyword will be removed, can use background_callback_manager instead.

Dash v2.18.0

04 Sep 14:31
851721b
Compare
Choose a tag to compare

Added

  • #2881 Add outputs_list to window.dash_clientside.callback_context. Fixes #2877.
  • #2903 Add callback on_error handler, either globally on Dash init or per callback basis. Receives the exception as first argument, can return output(s) or None for no_update. Access to original callback context is preserved and set_props works inside the error handler.
  • #2936 Adds support for TypeScript 5.5+.
  • #2789 Add library loading capacity to _allow_dynamic_callbacks

Fixed

  • #2898 Fix error thrown when using non-existent components in callback running keyword. Fixes #2897.
  • #2892 Fix ensures dcc.Dropdown menu maxHeight option works with Datatable. Fixes #2529 #2225
  • #2896 The tabIndex parameter of Div can accept number or string type. Fixes #2891
  • #2900 Allow strings in layout list. Fixes #2890
  • #2908 Fix when environment variables are ignored by Dash.run() at runtime. Fixes #2902
  • #2888 Add id to dcc.Loading DOM. Fixes #2878
  • #2922 Fix background callback hash_function when source is unavailable. Fixes #1885
  • #2915 Fix 'AttributeError' when layout is a function that returns a list of components. Fixes #2905
  • #2956 Add missing useEffect dependency to dcc.Loading component.
  • #2909 Rehighlights dcc.Markdown when it is updated, fixes #2895