Git Product home page Git Product logo

dash-html-components's Introduction

Notice

As of Dash 2, the development of dash-html-components has been moved to the main Dash repo

This package exists for backward compatibility


dash-html-components

Vanilla HTML components for Dash

Install dependencies

  1. Create a virtual env and activate.

    $ virtualenv venv
    $ venv/bin/activate
    

    Note: venv\Scripts\activate for Windows

  2. Install Python packages required to build components.

    $ pip install -r dev-requirements.txt
    
  3. Generate components and install npm packages

    $ npm install
    

Generating HTML Components

The components in src/components, as well as the export index in src/index.js are programmatically generated from element definitions in scripts/. To regenerate:

$ npm run generate-components

The list of attributes is regenerated by scraping the MDN HTML attribute reference.

Note: This step will have already been done for you when you ran npm install

Development

Testing your components in Dash

  1. Watch for changes

     $ npm run build:watch
    
  2. Install module locally (after every change)

     # Generate metadata, and build the JavaScript bundle
     $ npm run install-local
    
     # Now you're done. For subsequent changes, if you've got `npm run build:watch`
     $ python setup.py install
    
  3. Run the Dash layout you want to test

     # Import dash_html_components to your layout, then run it:
     $ python my_dash_layout.py
    

Installing Python package locally

Before publishing to PyPi, you can test installing the module locally:

# Install in `site-packages` on your machine
$ npm run install-local

Uninstalling Python package locally

$ npm run uninstall-local

Contributing

See the contributing guide for guidelines on contributing to this project.

Create a production build and publish:

  1. Build your code:

    $ npm run build
    
  2. Create a Python tarball

    $ python setup.py sdist
    

    This distribution tarball will get generated in the dist/ folder

  3. Test your tarball by copying it into a new environment and installing it locally:

    $ pip install dash-html-components-<new-version>.tar.gz
    
  4. If it works, then you can publish the component to NPM and PyPI:

    1. Publish on PyPI
      $ twine upload dist/*
      
    2. Cleanup the dist folder (optional)
      $ rm -rf dist
      
    3. Publish on NPM (Optional if chosen False in publish_on_npm)
      $ npm publish
      
      Publishing your component to NPM will make the JavaScript bundles available on the unpkg CDN. By default, Dash servers the component library's CSS and JS from the remote unpkg CDN, so if you haven't published the component package to NPM you'll need to set the serve_locally flags to True (unless you choose False on publish_on_npm). We will eventually make serve_locally=True the default, follow our progress in this issue.

dash-html-components's People

Contributors

akronix avatar alexcjohnson avatar ann-marie-ward avatar byronz avatar chriddyp avatar coopy avatar dependabot[bot] avatar hammadtheone avatar harryturr avatar jackluo avatar jbampton avatar jonmmease avatar marc-andre-rivet avatar mjclawar avatar mkcor avatar ned2 avatar nicolaskruchten avatar pravj avatar rmarren1 avatar rpkyle avatar shammamah-zz avatar synapticarbors avatar t4rk1n avatar valentijnnieman avatar waralex avatar wbrgss avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.