Skip to content

ci: gate package installs through Aikido Safe-Chain#1994

Open
whitphx wants to merge 4 commits intomainfrom
dev/security-proxy-aikido
Open

ci: gate package installs through Aikido Safe-Chain#1994
whitphx wants to merge 4 commits intomainfrom
dev/security-proxy-aikido

Conversation

@whitphx
Copy link
Copy Markdown
Owner

@whitphx whitphx commented Apr 16, 2026

Every CI job that runs through the init-all composite action now routes yarn install / uv sync / pip install through Aikido Safe-Chain's PATH shims, which block known-malicious packages via a local proxy against Aikido Intel. Pinned to version 1.4.9 + SHA256 since this is a supply-chain security control. Linux-only; Windows matrix jobs rely on the Linux run catching the same lockfile-resolved deps.

Summary by CodeRabbit

  • Chores
    • CI now includes OS-aware setup steps on Linux and Windows to install and validate required tooling before runs.
    • The pipeline adds shim/bin paths so subsequent commands (e.g., yarn install, uv sync) resolve through the installed shims, improving consistency and integrity of tool execution.

Every CI job that runs through the init-all composite action now routes
`yarn install` / `uv sync` / `pip install` through Aikido Safe-Chain's
PATH shims, which block known-malicious packages via a local proxy
against Aikido Intel. Pinned to version 1.4.9 + SHA256 since this is a
supply-chain security control. Linux-only; Windows matrix jobs rely on
the Linux run catching the same lockfile-resolved deps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 16, 2026

⚠️ No Changeset found

Latest commit: c38390e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 16, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 16, 2026

Walkthrough

Adds OS-gated composite-action steps to .github/actions/init-all/action.yml that download pinned Aikido safe-chain binaries for Linux and Windows, verify SHA256, run setup-ci, and append Safe-Chain shim/bin directories to GITHUB_PATH, causing subsequent commands to resolve via Safe-Chain shims.

Changes

Cohort / File(s) Summary
Safe-Chain Installers (Linux & Windows)
/.github/actions/init-all/action.yml
Added OS-gated composite steps: download pinned safe-chain binary (safe-chain / safe-chain.exe), verify SHA256 (Linux: sha256sum -c; Windows: Get-FileHash with error on mismatch), run setup-ci, and append shim/bin to GITHUB_PATH. Alters command resolution for downstream steps (e.g., yarn install, uv sync) to route through Safe-Chain shims.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Workflow as GitHub Workflow
  participant Runner as Actions Runner (Linux/Windows)
  participant Releases as safe-chain Release
  participant Installer as safe-chain setup-ci
  participant Steps as Subsequent Steps (yarn, uv)
  Workflow->>Runner: start job
  Runner->>Releases: download pinned safe-chain binary
  Releases-->>Runner: safe-chain binary
  Runner->>Runner: verify SHA256\n(make executable on Linux)\nrun setup-ci
  Runner->>Installer: install shims & bin
  Runner->>Runner: append shim/bin to GITHUB_PATH
  Runner->>Steps: execute subsequent steps
  Steps->>Installer: resolve executables via shims
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I hopped into CI with a curious grin,
Fetched a safe-chain release to tuck changes in,
SHA checks and shims, I nudged down the lane,
Now yarn and uv skip safely through my train,
A rabbit's small patch to keep builds in sync. 🥕✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'ci: gate package installs through Aikido Safe-Chain' clearly and accurately summarizes the main change: integrating Aikido Safe-Chain to intercept and secure package installations in CI workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev/security-proxy-aikido

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

CI Report for edc8a94

Package Stats

Diffs are from f24c351 on main (workflow run: 24505716300)

stlite sharing editor

dist.tar: 14532 kiB (14532 kiB +0 kiB)

File Tree
.
└── dist
    ├── android-chrome-192x192.png
    ├── android-chrome-512x512.png
    ├── apple-touch-icon.png
    ├── assets
    │   ├── index-D-M48OQT.css
    │   ├── index-DSwl1Skm.js
    │   └── index-DSwl1Skm.js.map
    ├── browserconfig.xml
    ├── favicon-16x16.png
    ├── favicon-32x32.png
    ├── favicon.ico
    ├── index.html
    ├── logo192.png
    ├── logo512.png
    ├── manifest.json
    ├── mstile-150x150.png
    ├── ogp.png
    ├── robots.txt
    ├── safari-pinned-tab.svg
    └── samples
        ├── 000_intro
        │   ├── data
        │   │   └── logo.png
        │   ├── pages
        │   │   └── 🎈_subpage.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 001_template
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 010_streamlit_hello
        │   ├── README.md
        │   ├── agri.csv.gz
        │   ├── animation_demo.py
        │   ├── dataframe_demo.py
        │   ├── hello.py
        │   ├── mapping_demo.py
        │   ├── plotting_demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   ├── streamlit_app.py
        │   └── utils.py
        ├── 011_component_gallery
        │   ├── data
        │   │   └── capitals.csv
        │   ├── pages
        │   │   ├── annotations-in-altair.py
        │   │   ├── cat-purr.mp3
        │   │   ├── charts.altair_chart.py
        │   │   ├── charts.altair_custom_colors.py
        │   │   ├── charts.altair_selections.py
        │   │   ├── charts.area_chart.py
        │   │   ├── charts.area_chart1.py
        │   │   ├── charts.area_chart2.py
        │   │   ├── charts.area_chart_steamgraph.py
        │   │   ├── charts.audio-purr.py
        │   │   ├── charts.audio.py
        │   │   ├── charts.bar_chart.py
        │   │   ├── charts.bar_chart1.py
        │   │   ├── charts.bar_chart2.py
        │   │   ├── charts.bar_chart_horizontal.py
        │   │   ├── charts.bar_chart_unstacked.py
        │   │   ├── charts.bokeh_chart.py
        │   │   ├── charts.graphviz_chart.py
        │   │   ├── charts.image.py
        │   │   ├── charts.line_chart.py
        │   │   ├── charts.line_chart1.py
        │   │   ├── charts.line_chart2.py
        │   │   ├── charts.map.py
        │   │   ├── charts.map_color.py
        │   │   ├── charts.plotly_chart.py
        │   │   ├── charts.plotly_chart_config.py
        │   │   ├── charts.plotly_chart_event_state.py
        │   │   ├── charts.plotly_chart_event_state_selections.py
        │   │   ├── charts.plotly_chart_theme.py
        │   │   ├── charts.plotly_custom_colors.py
        │   │   ├── charts.pydeck_chart.py
        │   │   ├── charts.pydeck_event_state_selections.py
        │   │   ├── charts.pyplot.py
        │   │   ├── charts.scatter_chart.py
        │   │   ├── charts.scatter_chart1.py
        │   │   ├── charts.scatter_chart2.py
        │   │   ├── charts.vega_lite_chart.py
        │   │   ├── charts.vega_lite_theme.py
        │   │   ├── charts.video.py
        │   │   ├── charts.video2.py
        │   │   ├── chat.echo.py
        │   │   ├── chat.input-file-uploader.py
        │   │   ├── chat.input-inline.py
        │   │   ├── chat.input.py
        │   │   ├── chat.input_audio.py
        │   │   ├── chat.input_set_value.py
        │   │   ├── chat.llm.py
        │   │   ├── chat.message.py
        │   │   ├── chat.message1.py
        │   │   ├── chat.simple.py
        │   │   ├── components.cleanup_function.py
        │   │   ├── components.custom_anchors.py
        │   │   ├── components.interactive_svg.py
        │   │   ├── components.markdown_links.py
        │   │   ├── components.tailwind.py
        │   │   ├── components.text_input.py
        │   │   ├── create-a-simple-grid.py
        │   │   ├── data.areachart_column.py
        │   │   ├── data.audio_column.py
        │   │   ├── data.barchart_column.py
        │   │   ├── data.checkbox_column.py
        │   │   ├── data.column.py
        │   │   ├── data.column_config.empty.py
        │   │   ├── data.column_config.py
        │   │   ├── data.data_editor.py
        │   │   ├── data.data_editor1.py
        │   │   ├── data.data_editor2.py
        │   │   ├── data.data_editor3.py
        │   │   ├── data.data_editor4.py
        │   │   ├── data.data_editor_config.py
        │   │   ├── data.dataframe.py
        │   │   ├── data.dataframe1.py
        │   │   ├── data.dataframe2.py
        │   │   ├── data.dataframe_config.py
        │   │   ├── data.dataframe_config_index.py
        │   │   ├── data.dataframe_event_state_selections.py
        │   │   ├── data.dataframe_programmatic_selections.py
        │   │   ├── data.date_column.py
        │   │   ├── data.datetime_column.py
        │   │   ├── data.image_column.py
        │   │   ├── data.json.py
        │   │   ├── data.json_column.py
        │   │   ├── data.linechart_column.py
        │   │   ├── data.link_column.py
        │   │   ├── data.list_column.py
        │   │   ├── data.multiselect_column_1.py
        │   │   ├── data.multiselect_column_2.py
        │   │   ├── data.number_column.py
        │   │   ├── data.progress_column.py
        │   │   ├── data.selectbox_column.py
        │   │   ├── data.table.py
        │   │   ├── data.table_auto_header.py
        │   │   ├── data.table_confusion.py
        │   │   ├── data.table_hide_header_and_index.py
        │   │   ├── data.table_horizontal_border.py
        │   │   ├── data.table_markdown.py
        │   │   ├── data.text_column.py
        │   │   ├── data.time_column.py
        │   │   ├── data.video_column.py
        │   │   ├── dataframe-row-selections.py
        │   │   ├── execution.dialog.py
        │   │   ├── execution.fragment-rerun.py
        │   │   ├── execution.fragment.py
        │   │   ├── execution.fragment_balloon.py
        │   │   ├── flower.png
        │   │   ├── forms.form1.py
        │   │   ├── forms.form2.py
        │   │   ├── forms.form_container.py
        │   │   ├── forms.form_default.py
        │   │   ├── forms.form_overview.py
        │   │   ├── forms.form_process1.py
        │   │   ├── forms.form_process2.py
        │   │   ├── forms.form_process3.py
        │   │   ├── images
        │   │   │   ├── horizontal_blue.png
        │   │   │   ├── horizontal_red.png
        │   │   │   ├── icon_blue.png
        │   │   │   └── icon_red.png
        │   │   ├── layout.columns1.py
        │   │   ├── layout.columns2.py
        │   │   ├── layout.columns_borders.py
        │   │   ├── layout.columns_bottom_widgets.py
        │   │   ├── layout.columns_vertical_alignment.py
        │   │   ├── layout.container1.py
        │   │   ├── layout.container2.py
        │   │   ├── layout.container3.py
        │   │   ├── layout.container4.py
        │   │   ├── layout.container5.py
        │   │   ├── layout.empty.py
        │   │   ├── layout.empty_placeholder.py
        │   │   ├── layout.expander-callback.py
        │   │   ├── layout.expander-conditional-outside.py
        │   │   ├── layout.expander-lazy-load.py
        │   │   ├── layout.expander.py
        │   │   ├── layout.popover-callback.py
        │   │   ├── layout.popover-conditional-outside.py
        │   │   ├── layout.popover-lazy-load.py
        │   │   ├── layout.popover.py
        │   │   ├── layout.popover2.py
        │   │   ├── layout.space_horizontal.py
        │   │   ├── layout.space_vertical.py
        │   │   ├── layout.tabs-callback.py
        │   │   ├── layout.tabs-conditional-outside.py
        │   │   ├── layout.tabs-lazy-load.py
        │   │   ├── layout.tabs1.py
        │   │   ├── layout.tabs2.py
        │   │   ├── layout.tabs3.py
        │   │   ├── layouts.container4.py
        │   │   ├── media.logo.py
        │   │   ├── metric.example1.py
        │   │   ├── metric.example2.py
        │   │   ├── metric.example3.py
        │   │   ├── metric.example4.py
        │   │   ├── metric.example5.py
        │   │   ├── status.exception.py
        │   │   ├── status.progress.py
        │   │   ├── status.spinner.py
        │   │   ├── status.status.py
        │   │   ├── status.status1.py
        │   │   ├── status.toast.py
        │   │   ├── status.toast1.py
        │   │   ├── status.toast2.py
        │   │   ├── tailwind_example.js
        │   │   ├── text.badge.py
        │   │   ├── text.caption.py
        │   │   ├── text.code-ascii.py
        │   │   ├── text.code.py
        │   │   ├── text.header.py
        │   │   ├── text.latex.py
        │   │   ├── text.markdown.py
        │   │   ├── text.markdown1.py
        │   │   ├── text.subheader.py
        │   │   ├── text.text.py
        │   │   ├── text.text_area.py
        │   │   ├── text.title.py
        │   │   ├── text.write1.py
        │   │   ├── text.write2.py
        │   │   ├── text.write3.py
        │   │   ├── text.write_stream.py
        │   │   ├── utilities.help.py
        │   │   ├── utilities.help1.py
        │   │   ├── utilities.help2.py
        │   │   ├── utilities.html.py
        │   │   ├── widget.audio_input.py
        │   │   ├── widget.button.py
        │   │   ├── widget.button_icons.py
        │   │   ├── widget.button_shortcut.py
        │   │   ├── widget.camera_input.py
        │   │   ├── widget.checkbox.py
        │   │   ├── widget.color_picker.py
        │   │   ├── widget.date_input.py
        │   │   ├── widget.date_input1.py
        │   │   ├── widget.date_input_empty.py
        │   │   ├── widget.datetime_input.py
        │   │   ├── widget.datetime_input_empty.py
        │   │   ├── widget.download_button.py
        │   │   ├── widget.download_button_csv.py
        │   │   ├── widget.download_button_deferred.py
        │   │   ├── widget.download_button_file.py
        │   │   ├── widget.download_button_text.py
        │   │   ├── widget.feedback_stars.py
        │   │   ├── widget.feedback_thumbs.py
        │   │   ├── widget.file_uploader.py
        │   │   ├── widget.file_uploader_directory.py
        │   │   ├── widget.link_button.py
        │   │   ├── widget.menu_button.py
        │   │   ├── widget.multiselect.py
        │   │   ├── widget.multiselect_accept_new_options.py
        │   │   ├── widget.number_input.py
        │   │   ├── widget.number_input_empty.py
        │   │   ├── widget.pills_multi.py
        │   │   ├── widget.pills_single.py
        │   │   ├── widget.radio.py
        │   │   ├── widget.radio1.py
        │   │   ├── widget.radio_empty.py
        │   │   ├── widget.segmented_control_multi.py
        │   │   ├── widget.segmented_control_single.py
        │   │   ├── widget.select_slider.py
        │   │   ├── widget.selectbox.py
        │   │   ├── widget.selectbox1.py
        │   │   ├── widget.selectbox_accept_new_options.py
        │   │   ├── widget.selectbox_empty.py
        │   │   ├── widget.slider.py
        │   │   ├── widget.text_area.py
        │   │   ├── widget.text_input.py
        │   │   ├── widget.text_input1.py
        │   │   ├── widget.time_input.py
        │   │   ├── widget.time_input_empty.py
        │   │   ├── widget.toggle.py
        │   │   ├── widgets.audio_input_high_rate.py
        │   │   ├── widgets.change_parameters.py
        │   │   ├── widgets.change_parameters_best.py
        │   │   └── widgets.form_callbacks.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_hello
        │   ├── agri.csv.gz
        │   ├── hello.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_mpa-hello
        │   ├── 0_👋_Hello.py
        │   ├── agri.csv.gz
        │   ├── pages
        │   │   ├── 1_📈_Plotting_Demo.py
        │   │   ├── 2_🌍_Mapping_Demo.py
        │   │   ├── 3_📊_DataFrame_Demo.py
        │   │   └── 4_📷_Webcam_Demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── utils.py
        ├── 012_navigation.multipage_widgets
        │   ├── app.py
        │   └── stlite.json
        ├── 012_tutorials_custom-navigation
        │   ├── README.md
        │   ├── app.py
        │   ├── menu.py
        │   ├── pages
        │   │   ├── admin.py
        │   │   ├── super-admin.py
        │   │   └── user.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_tutorials_dynamic-navigation
        │   ├── README.md
        │   ├── admin
        │   │   ├── admin_1.py
        │   │   └── admin_2.py
        │   ├── images
        │   │   ├── horizontal_blue.png
        │   │   └── icon_blue.png
        │   ├── request
        │   │   ├── request_1.py
        │   │   └── request_2.py
        │   ├── respond
        │   │   ├── respond_1.py
        │   │   └── respond_2.py
        │   ├── settings.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_tutorials_fragments
        │   ├── README.md
        │   ├── app.py
        │   ├── pages
        │   │   ├── tutorial-fragment-multiple-container.py
        │   │   ├── tutorial-fragment-rerun.py
        │   │   └── tutorial-fragment-streaming.py
        │   └── stlite.json
        ├── 012_utilities.switch_page
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 012_widget.page_link
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 020_custom_components
        │   ├── home.py
        │   ├── pages
        │   │   ├── aggrid.py
        │   │   ├── agraph.py
        │   │   ├── cropper.py
        │   │   ├── d3_demo.py
        │   │   ├── drawable_canvas.py
        │   │   ├── embedcode.py
        │   │   ├── folium.py
        │   │   ├── lottie.py
        │   │   ├── player.py
        │   │   └── stmol.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 021_opencv
        │   ├── data
        │   │   └── logo.png
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 022_realtime_image_processing
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        └── 030_streamlit_e2e_tests
            ├── pages
            │   ├── empty_labels.py
            │   ├── iframe_resizer.py
            │   ├── redisplayed_widgets.py
            │   ├── session_state_frontend_sync.py
            │   ├── st_columns.py
            │   ├── st_disabled.py
            │   ├── st_disconnect.py
            │   ├── st_download_button.py
            │   ├── st_exception.py
            │   ├── st_experimental_get_query_params.py
            │   ├── st_experimental_set_query_params.py
            │   ├── st_form_column_association.py
            │   ├── st_image.py
            │   ├── st_image_replay.py
            │   ├── st_image_replay_old_image.py
            │   ├── st_image_svg_sizing.py
            │   ├── st_json.py
            │   ├── st_map.py
            │   ├── st_media_replay.py
            │   ├── st_pydeck_chart.py
            │   ├── st_pydeck_geo_layers.py
            │   ├── st_reuse_label.py
            │   ├── st_select_slider.py
            │   ├── st_session_state.py
            │   ├── st_set_page_config.py
            │   ├── st_sidebar.py
            │   ├── st_slider.py
            │   ├── st_tabs.py
            │   ├── st_tooltips.py
            │   ├── websocket_reconnects.py
            │   └── widget_state_heavy_usage.py
            ├── requirements.txt
            ├── stlite.json
            └── streamlit_app.py

37 directories, 378 files
File Sizes
       5946 ./dist/android-chrome-192x192.png
      18336 ./dist/android-chrome-512x512.png
       5553 ./dist/apple-touch-icon.png
-    382845 ./dist/assets/index-6lmQz_T3.js
-  12530260 ./dist/assets/index-6lmQz_T3.js.map
      16976 ./dist/assets/index-D-M48OQT.css
+    382941 ./dist/assets/index-DSwl1Skm.js
+  12530364 ./dist/assets/index-DSwl1Skm.js.map
        246 ./dist/browserconfig.xml
       1028 ./dist/favicon-16x16.png
       1751 ./dist/favicon-32x32.png
      15086 ./dist/favicon.ico
       2263 ./dist/index.html
       4517 ./dist/logo192.png
      12188 ./dist/logo512.png
        714 ./dist/manifest.json
       3911 ./dist/mstile-150x150.png
      43307 ./dist/ogp.png
         67 ./dist/robots.txt
       8806 ./dist/safari-pinned-tab.svg
       4517 ./dist/samples/000_intro/data/logo.png
        311 ./dist/samples/000_intro/pages/🎈_subpage.py
         66 ./dist/samples/000_intro/stlite.json
       3392 ./dist/samples/000_intro/streamlit_app.py
         68 ./dist/samples/001_template/stlite.json
         49 ./dist/samples/001_template/streamlit_app.py
       1536 ./dist/samples/010_streamlit_hello/README.md
      36065 ./dist/samples/010_streamlit_hello/agri.csv.gz
       3290 ./dist/samples/010_streamlit_hello/animation_demo.py
       2529 ./dist/samples/010_streamlit_hello/dataframe_demo.py
       1491 ./dist/samples/010_streamlit_hello/hello.py
       3744 ./dist/samples/010_streamlit_hello/mapping_demo.py
       1772 ./dist/samples/010_streamlit_hello/plotting_demo.py
          7 ./dist/samples/010_streamlit_hello/requirements.txt
         69 ./dist/samples/010_streamlit_hello/stlite.json
       1820 ./dist/samples/010_streamlit_hello/streamlit_app.py
       1053 ./dist/samples/010_streamlit_hello/utils.py
       2530 ./dist/samples/011_component_gallery/data/capitals.csv
       1776 ./dist/samples/011_component_gallery/pages/annotations-in-altair.py
     184083 ./dist/samples/011_component_gallery/pages/cat-purr.mp3
        828 ./dist/samples/011_component_gallery/pages/charts.altair_chart.py
       2169 ./dist/samples/011_component_gallery/pages/charts.altair_custom_colors.py
        704 ./dist/samples/011_component_gallery/pages/charts.altair_selections.py
        183 ./dist/samples/011_component_gallery/pages/charts.area_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.area_chart1.py
        344 ./dist/samples/011_component_gallery/pages/charts.area_chart2.py
        170 ./dist/samples/011_component_gallery/pages/charts.area_chart_steamgraph.py
         87 ./dist/samples/011_component_gallery/pages/charts.audio-purr.py
       1773 ./dist/samples/011_component_gallery/pages/charts.audio.py
        182 ./dist/samples/011_component_gallery/pages/charts.bar_chart.py
        308 ./dist/samples/011_component_gallery/pages/charts.bar_chart1.py
        339 ./dist/samples/011_component_gallery/pages/charts.bar_chart2.py
        155 ./dist/samples/011_component_gallery/pages/charts.bar_chart_horizontal.py
        148 ./dist/samples/011_component_gallery/pages/charts.bar_chart_unstacked.py
        245 ./dist/samples/011_component_gallery/pages/charts.bokeh_chart.py
        650 ./dist/samples/011_component_gallery/pages/charts.graphviz_chart.py
        461 ./dist/samples/011_component_gallery/pages/charts.image.py
        183 ./dist/samples/011_component_gallery/pages/charts.line_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.line_chart1.py
        253 ./dist/samples/011_component_gallery/pages/charts.line_chart2.py
        217 ./dist/samples/011_component_gallery/pages/charts.map.py
        426 ./dist/samples/011_component_gallery/pages/charts.map_color.py
        375 ./dist/samples/011_component_gallery/pages/charts.plotly_chart.py
        222 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_config.py
        196 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state.py
        299 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state_selections.py
        733 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_theme.py
        759 ./dist/samples/011_component_gallery/pages/charts.plotly_custom_colors.py
       1040 ./dist/samples/011_component_gallery/pages/charts.pydeck_chart.py
        895 ./dist/samples/011_component_gallery/pages/charts.pydeck_event_state_selections.py
        199 ./dist/samples/011_component_gallery/pages/charts.pyplot.py
        186 ./dist/samples/011_component_gallery/pages/charts.scatter_chart.py
        319 ./dist/samples/011_component_gallery/pages/charts.scatter_chart1.py
        305 ./dist/samples/011_component_gallery/pages/charts.scatter_chart2.py
        529 ./dist/samples/011_component_gallery/pages/charts.vega_lite_chart.py
       1016 ./dist/samples/011_component_gallery/pages/charts.vega_lite_theme.py
        388 ./dist/samples/011_component_gallery/pages/charts.video.py
        527 ./dist/samples/011_component_gallery/pages/charts.video2.py
        887 ./dist/samples/011_component_gallery/pages/chat.echo.py
        274 ./dist/samples/011_component_gallery/pages/chat.input-file-uploader.py
        250 ./dist/samples/011_component_gallery/pages/chat.input-inline.py
        137 ./dist/samples/011_component_gallery/pages/chat.input.py
        268 ./dist/samples/011_component_gallery/pages/chat.input_audio.py
        192 ./dist/samples/011_component_gallery/pages/chat.input_set_value.py
       2645 ./dist/samples/011_component_gallery/pages/chat.llm.py
        142 ./dist/samples/011_component_gallery/pages/chat.message.py
        153 ./dist/samples/011_component_gallery/pages/chat.message1.py
       1277 ./dist/samples/011_component_gallery/pages/chat.simple.py
       1218 ./dist/samples/011_component_gallery/pages/components.cleanup_function.py
       1072 ./dist/samples/011_component_gallery/pages/components.custom_anchors.py
       1121 ./dist/samples/011_component_gallery/pages/components.interactive_svg.py
        641 ./dist/samples/011_component_gallery/pages/components.markdown_links.py
        800 ./dist/samples/011_component_gallery/pages/components.tailwind.py
       1658 ./dist/samples/011_component_gallery/pages/components.text_input.py
        651 ./dist/samples/011_component_gallery/pages/create-a-simple-grid.py
        670 ./dist/samples/011_component_gallery/pages/data.areachart_column.py
       1228 ./dist/samples/011_component_gallery/pages/data.audio_column.py
        640 ./dist/samples/011_component_gallery/pages/data.barchart_column.py
        572 ./dist/samples/011_component_gallery/pages/data.checkbox_column.py
        542 ./dist/samples/011_component_gallery/pages/data.column.py
        580 ./dist/samples/011_component_gallery/pages/data.column_config.empty.py
       3119 ./dist/samples/011_component_gallery/pages/data.column_config.py
        460 ./dist/samples/011_component_gallery/pages/data.data_editor.py
        480 ./dist/samples/011_component_gallery/pages/data.data_editor1.py
        410 ./dist/samples/011_component_gallery/pages/data.data_editor2.py
        903 ./dist/samples/011_component_gallery/pages/data.data_editor3.py
        814 ./dist/samples/011_component_gallery/pages/data.data_editor4.py
        874 ./dist/samples/011_component_gallery/pages/data.data_editor_config.py
        207 ./dist/samples/011_component_gallery/pages/data.dataframe.py
        235 ./dist/samples/011_component_gallery/pages/data.dataframe1.py
        614 ./dist/samples/011_component_gallery/pages/data.dataframe2.py
        900 ./dist/samples/011_component_gallery/pages/data.dataframe_config.py
        432 ./dist/samples/011_component_gallery/pages/data.dataframe_config_index.py
        332 ./dist/samples/011_component_gallery/pages/data.dataframe_event_state_selections.py
        643 ./dist/samples/011_component_gallery/pages/data.dataframe_programmatic_selections.py
        654 ./dist/samples/011_component_gallery/pages/data.date_column.py
        735 ./dist/samples/011_component_gallery/pages/data.datetime_column.py
       1019 ./dist/samples/011_component_gallery/pages/data.image_column.py
        239 ./dist/samples/011_component_gallery/pages/data.json.py
        485 ./dist/samples/011_component_gallery/pages/data.json_column.py
        669 ./dist/samples/011_component_gallery/pages/data.linechart_column.py
        975 ./dist/samples/011_component_gallery/pages/data.link_column.py
        668 ./dist/samples/011_component_gallery/pages/data.list_column.py
        657 ./dist/samples/011_component_gallery/pages/data.multiselect_column_1.py
        522 ./dist/samples/011_component_gallery/pages/data.multiselect_column_2.py
        513 ./dist/samples/011_component_gallery/pages/data.number_column.py
        487 ./dist/samples/011_component_gallery/pages/data.progress_column.py
        766 ./dist/samples/011_component_gallery/pages/data.selectbox_column.py
        206 ./dist/samples/011_component_gallery/pages/data.table.py
        523 ./dist/samples/011_component_gallery/pages/data.table_auto_header.py
        351 ./dist/samples/011_component_gallery/pages/data.table_confusion.py
        155 ./dist/samples/011_component_gallery/pages/data.table_hide_header_and_index.py
        444 ./dist/samples/011_component_gallery/pages/data.table_horizontal_border.py
        443 ./dist/samples/011_component_gallery/pages/data.table_markdown.py
        549 ./dist/samples/011_component_gallery/pages/data.text_column.py
        636 ./dist/samples/011_component_gallery/pages/data.time_column.py
        557 ./dist/samples/011_component_gallery/pages/data.video_column.py
       2555 ./dist/samples/011_component_gallery/pages/dataframe-row-selections.py
        528 ./dist/samples/011_component_gallery/pages/execution.dialog.py
        461 ./dist/samples/011_component_gallery/pages/execution.fragment-rerun.py
        543 ./dist/samples/011_component_gallery/pages/execution.fragment.py
        296 ./dist/samples/011_component_gallery/pages/execution.fragment_balloon.py
     411449 ./dist/samples/011_component_gallery/pages/flower.png
        377 ./dist/samples/011_component_gallery/pages/forms.form1.py
        185 ./dist/samples/011_component_gallery/pages/forms.form2.py
        606 ./dist/samples/011_component_gallery/pages/forms.form_container.py
        347 ./dist/samples/011_component_gallery/pages/forms.form_default.py
       1442 ./dist/samples/011_component_gallery/pages/forms.form_overview.py
        243 ./dist/samples/011_component_gallery/pages/forms.form_process1.py
        468 ./dist/samples/011_component_gallery/pages/forms.form_process2.py
        637 ./dist/samples/011_component_gallery/pages/forms.form_process3.py
      39446 ./dist/samples/011_component_gallery/pages/images/horizontal_blue.png
      32992 ./dist/samples/011_component_gallery/pages/images/horizontal_red.png
       4241 ./dist/samples/011_component_gallery/pages/images/icon_blue.png
       3763 ./dist/samples/011_component_gallery/pages/images/icon_red.png
        577 ./dist/samples/011_component_gallery/pages/layout.columns1.py
        267 ./dist/samples/011_component_gallery/pages/layout.columns2.py
        176 ./dist/samples/011_component_gallery/pages/layout.columns_borders.py
        203 ./dist/samples/011_component_gallery/pages/layout.columns_bottom_widgets.py
        606 ./dist/samples/011_component_gallery/pages/layout.columns_vertical_alignment.py
        284 ./dist/samples/011_component_gallery/pages/layout.container1.py
        191 ./dist/samples/011_component_gallery/pages/layout.container2.py
        169 ./dist/samples/011_component_gallery/pages/layout.container3.py
        118 ./dist/samples/011_component_gallery/pages/layout.container4.py
        152 ./dist/samples/011_component_gallery/pages/layout.container5.py
        229 ./dist/samples/011_component_gallery/pages/layout.empty.py
        586 ./dist/samples/011_component_gallery/pages/layout.empty_placeholder.py
        444 ./dist/samples/011_component_gallery/pages/layout.expander-callback.py
        216 ./dist/samples/011_component_gallery/pages/layout.expander-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.expander-lazy-load.py
        452 ./dist/samples/011_component_gallery/pages/layout.expander.py
        484 ./dist/samples/011_component_gallery/pages/layout.popover-callback.py
        234 ./dist/samples/011_component_gallery/pages/layout.popover-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.popover-lazy-load.py
        169 ./dist/samples/011_component_gallery/pages/layout.popover.py
        263 ./dist/samples/011_component_gallery/pages/layout.popover2.py
        129 ./dist/samples/011_component_gallery/pages/layout.space_horizontal.py
        220 ./dist/samples/011_component_gallery/pages/layout.space_vertical.py
        658 ./dist/samples/011_component_gallery/pages/layout.tabs-callback.py
        605 ./dist/samples/011_component_gallery/pages/layout.tabs-conditional-outside.py
        499 ./dist/samples/011_component_gallery/pages/layout.tabs-lazy-load.py
        395 ./dist/samples/011_component_gallery/pages/layout.tabs1.py
        268 ./dist/samples/011_component_gallery/pages/layout.tabs2.py
        447 ./dist/samples/011_component_gallery/pages/layout.tabs3.py
        118 ./dist/samples/011_component_gallery/pages/layouts.container4.py
        476 ./dist/samples/011_component_gallery/pages/media.logo.py
        110 ./dist/samples/011_component_gallery/pages/metric.example1.py
        178 ./dist/samples/011_component_gallery/pages/metric.example2.py
        175 ./dist/samples/011_component_gallery/pages/metric.example3.py
        277 ./dist/samples/011_component_gallery/pages/metric.example4.py
        502 ./dist/samples/011_component_gallery/pages/metric.example5.py
        102 ./dist/samples/011_component_gallery/pages/status.exception.py
        303 ./dist/samples/011_component_gallery/pages/status.progress.py
        144 ./dist/samples/011_component_gallery/pages/status.spinner.py
        250 ./dist/samples/011_component_gallery/pages/status.status.py
        355 ./dist/samples/011_component_gallery/pages/status.status1.py
        105 ./dist/samples/011_component_gallery/pages/status.toast.py
        185 ./dist/samples/011_component_gallery/pages/status.toast1.py
        262 ./dist/samples/011_component_gallery/pages/status.toast2.py
     437557 ./dist/samples/011_component_gallery/pages/tailwind_example.js
        221 ./dist/samples/011_component_gallery/pages/text.badge.py
         56 ./dist/samples/011_component_gallery/pages/text.caption.py
        566 ./dist/samples/011_component_gallery/pages/text.code-ascii.py
        114 ./dist/samples/011_component_gallery/pages/text.code.py
        329 ./dist/samples/011_component_gallery/pages/text.header.py
        170 ./dist/samples/011_component_gallery/pages/text.latex.py
        552 ./dist/samples/011_component_gallery/pages/text.markdown.py
        240 ./dist/samples/011_component_gallery/pages/text.markdown1.py
        356 ./dist/samples/011_component_gallery/pages/text.subheader.py
         94 ./dist/samples/011_component_gallery/pages/text.text.py
        444 ./dist/samples/011_component_gallery/pages/text.text_area.py
        104 ./dist/samples/011_component_gallery/pages/text.title.py
         65 ./dist/samples/011_component_gallery/pages/text.write1.py
        155 ./dist/samples/011_component_gallery/pages/text.write2.py
        332 ./dist/samples/011_component_gallery/pages/text.write3.py
        733 ./dist/samples/011_component_gallery/pages/text.write_stream.py
         64 ./dist/samples/011_component_gallery/pages/utilities.help.py
        245 ./dist/samples/011_component_gallery/pages/utilities.help1.py
        123 ./dist/samples/011_component_gallery/pages/utilities.help2.py
        111 ./dist/samples/011_component_gallery/pages/utilities.html.py
        122 ./dist/samples/011_component_gallery/pages/widget.audio_input.py
        210 ./dist/samples/011_component_gallery/pages/widget.button.py
        409 ./dist/samples/011_component_gallery/pages/widget.button_icons.py
        336 ./dist/samples/011_component_gallery/pages/widget.button_shortcut.py
        162 ./dist/samples/011_component_gallery/pages/widget.camera_input.py
         88 ./dist/samples/011_component_gallery/pages/widget.checkbox.py
        115 ./dist/samples/011_component_gallery/pages/widget.color_picker.py
        143 ./dist/samples/011_component_gallery/pages/widget.date_input.py
        341 ./dist/samples/011_component_gallery/pages/widget.date_input1.py
        127 ./dist/samples/011_component_gallery/pages/widget.date_input_empty.py
        190 ./dist/samples/011_component_gallery/pages/widget.datetime_input.py
        150 ./dist/samples/011_component_gallery/pages/widget.datetime_input_empty.py
        917 ./dist/samples/011_component_gallery/pages/widget.download_button.py
        490 ./dist/samples/011_component_gallery/pages/widget.download_button_csv.py
        247 ./dist/samples/011_component_gallery/pages/widget.download_button_deferred.py
        208 ./dist/samples/011_component_gallery/pages/widget.download_button_file.py
        338 ./dist/samples/011_component_gallery/pages/widget.download_button_text.py
        213 ./dist/samples/011_component_gallery/pages/widget.feedback_stars.py
        215 ./dist/samples/011_component_gallery/pages/widget.feedback_thumbs.py
        230 ./dist/samples/011_component_gallery/pages/widget.file_uploader.py
        202 ./dist/samples/011_component_gallery/pages/widget.file_uploader_directory.py
         88 ./dist/samples/011_component_gallery/pages/widget.link_button.py
        264 ./dist/samples/011_component_gallery/pages/widget.menu_button.py
        196 ./dist/samples/011_component_gallery/pages/widget.multiselect.py
        235 ./dist/samples/011_component_gallery/pages/widget.multiselect_accept_new_options.py
        111 ./dist/samples/011_component_gallery/pages/widget.number_input.py
        155 ./dist/samples/011_component_gallery/pages/widget.number_input_empty.py
        203 ./dist/samples/011_component_gallery/pages/widget.pills_multi.py
        409 ./dist/samples/011_component_gallery/pages/widget.pills_single.py
        351 ./dist/samples/011_component_gallery/pages/widget.radio.py
        693 ./dist/samples/011_component_gallery/pages/widget.radio1.py
        205 ./dist/samples/011_component_gallery/pages/widget.radio_empty.py
        215 ./dist/samples/011_component_gallery/pages/widget.segmented_control_multi.py
        421 ./dist/samples/011_component_gallery/pages/widget.segmented_control_single.py
        478 ./dist/samples/011_component_gallery/pages/widget.select_slider.py
        167 ./dist/samples/011_component_gallery/pages/widget.selectbox.py
        685 ./dist/samples/011_component_gallery/pages/widget.selectbox1.py
        272 ./dist/samples/011_component_gallery/pages/widget.selectbox_accept_new_options.py
        232 ./dist/samples/011_component_gallery/pages/widget.selectbox_empty.py
        657 ./dist/samples/011_component_gallery/pages/widget.slider.py
        503 ./dist/samples/011_component_gallery/pages/widget.text_area.py
        124 ./dist/samples/011_component_gallery/pages/widget.text_input.py
        884 ./dist/samples/011_component_gallery/pages/widget.text_input1.py
        132 ./dist/samples/011_component_gallery/pages/widget.time_input.py
        122 ./dist/samples/011_component_gallery/pages/widget.time_input_empty.py
        102 ./dist/samples/011_component_gallery/pages/widget.toggle.py
        144 ./dist/samples/011_component_gallery/pages/widgets.audio_input_high_rate.py
        307 ./dist/samples/011_component_gallery/pages/widgets.change_parameters.py
        558 ./dist/samples/011_component_gallery/pages/widgets.change_parameters_best.py
        468 ./dist/samples/011_component_gallery/pages/widgets.form_callbacks.py
        259 ./dist/samples/011_component_gallery/requirements.txt
         71 ./dist/samples/011_component_gallery/stlite.json
       1901 ./dist/samples/011_component_gallery/streamlit_app.py
      36065 ./dist/samples/012_hello/agri.csv.gz
       7239 ./dist/samples/012_hello/hello.py
         45 ./dist/samples/012_hello/requirements.txt
         51 ./dist/samples/012_hello/stlite.json
       1637 ./dist/samples/012_mpa-hello/0_👋_Hello.py
      36065 ./dist/samples/012_mpa-hello/agri.csv.gz
       1691 ./dist/samples/012_mpa-hello/pages/1_📈_Plotting_Demo.py
       3775 ./dist/samples/012_mpa-hello/pages/2_🌍_Mapping_Demo.py
       2522 ./dist/samples/012_mpa-hello/pages/3_📊_DataFrame_Demo.py
       1674 ./dist/samples/012_mpa-hello/pages/4_📷_Webcam_Demo.py
         59 ./dist/samples/012_mpa-hello/requirements.txt
         68 ./dist/samples/012_mpa-hello/stlite.json
        957 ./dist/samples/012_mpa-hello/utils.py
        295 ./dist/samples/012_navigation.multipage_widgets/app.py
         60 ./dist/samples/012_navigation.multipage_widgets/stlite.json
        495 ./dist/samples/012_tutorials_custom-navigation/README.md
        649 ./dist/samples/012_tutorials_custom-navigation/app.py
       1172 ./dist/samples/012_tutorials_custom-navigation/menu.py
        504 ./dist/samples/012_tutorials_custom-navigation/pages/admin.py
        497 ./dist/samples/012_tutorials_custom-navigation/pages/super-admin.py
        341 ./dist/samples/012_tutorials_custom-navigation/pages/user.py
         18 ./dist/samples/012_tutorials_custom-navigation/requirements.txt
         71 ./dist/samples/012_tutorials_custom-navigation/stlite.json
        496 ./dist/samples/012_tutorials_dynamic-navigation/README.md
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_1.py
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_2.py
      39446 ./dist/samples/012_tutorials_dynamic-navigation/images/horizontal_blue.png
       4241 ./dist/samples/012_tutorials_dynamic-navigation/images/icon_blue.png
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_2.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_2.py
        105 ./dist/samples/012_tutorials_dynamic-navigation/settings.py
         82 ./dist/samples/012_tutorials_dynamic-navigation/stlite.json
       1940 ./dist/samples/012_tutorials_dynamic-navigation/streamlit_app.py
        529 ./dist/samples/012_tutorials_fragments/README.md
          0 ./dist/samples/012_tutorials_fragments/app.py
       1294 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-multiple-container.py
       2897 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-rerun.py
       1748 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-streaming.py
         63 ./dist/samples/012_tutorials_fragments/stlite.json
        489 ./dist/samples/012_utilities.switch_page/README.md
        204 ./dist/samples/012_utilities.switch_page/pages/page_1.py
        204 ./dist/samples/012_utilities.switch_page/pages/page_2.py
         18 ./dist/samples/012_utilities.switch_page/requirements.txt
         68 ./dist/samples/012_utilities.switch_page/stlite.json
        204 ./dist/samples/012_utilities.switch_page/your_app.py
        484 ./dist/samples/012_widget.page_link/README.md
        289 ./dist/samples/012_widget.page_link/pages/page_1.py
        289 ./dist/samples/012_widget.page_link/pages/page_2.py
         18 ./dist/samples/012_widget.page_link/requirements.txt
         65 ./dist/samples/012_widget.page_link/stlite.json
        289 ./dist/samples/012_widget.page_link/your_app.py
        332 ./dist/samples/020_custom_components/home.py
        649 ./dist/samples/020_custom_components/pages/aggrid.py
       1086 ./dist/samples/020_custom_components/pages/agraph.py
       1260 ./dist/samples/020_custom_components/pages/cropper.py
        344 ./dist/samples/020_custom_components/pages/d3_demo.py
       1740 ./dist/samples/020_custom_components/pages/drawable_canvas.py
        251 ./dist/samples/020_custom_components/pages/embedcode.py
       5270 ./dist/samples/020_custom_components/pages/folium.py
       1022 ./dist/samples/020_custom_components/pages/lottie.py
        285 ./dist/samples/020_custom_components/pages/player.py
        343 ./dist/samples/020_custom_components/pages/stmol.py
        187 ./dist/samples/020_custom_components/requirements.txt
         62 ./dist/samples/020_custom_components/stlite.json
       4517 ./dist/samples/021_opencv/data/logo.png
         14 ./dist/samples/021_opencv/requirements.txt
         60 ./dist/samples/021_opencv/stlite.json
       1092 ./dist/samples/021_opencv/streamlit_app.py
         30 ./dist/samples/022_realtime_image_processing/requirements.txt
         79 ./dist/samples/022_realtime_image_processing/stlite.json
       2568 ./dist/samples/022_realtime_image_processing/streamlit_app.py
        724 ./dist/samples/030_streamlit_e2e_tests/pages/empty_labels.py
        733 ./dist/samples/030_streamlit_e2e_tests/pages/iframe_resizer.py
        876 ./dist/samples/030_streamlit_e2e_tests/pages/redisplayed_widgets.py
       1225 ./dist/samples/030_streamlit_e2e_tests/pages/session_state_frontend_sync.py
       1400 ./dist/samples/030_streamlit_e2e_tests/pages/st_columns.py
       1140 ./dist/samples/030_streamlit_e2e_tests/pages/st_disabled.py
        616 ./dist/samples/030_streamlit_e2e_tests/pages/st_disconnect.py
       1681 ./dist/samples/030_streamlit_e2e_tests/pages/st_download_button.py
       2475 ./dist/samples/030_streamlit_e2e_tests/pages/st_exception.py
        747 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_get_query_params.py
        856 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_set_query_params.py
       2405 ./dist/samples/030_streamlit_e2e_tests/pages/st_form_column_association.py
       3329 ./dist/samples/030_streamlit_e2e_tests/pages/st_image.py
       2160 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay.py
        810 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay_old_image.py
       1705 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_svg_sizing.py
        762 ./dist/samples/030_streamlit_e2e_tests/pages/st_json.py
       1484 ./dist/samples/030_streamlit_e2e_tests/pages/st_map.py
        969 ./dist/samples/030_streamlit_e2e_tests/pages/st_media_replay.py
       2141 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_chart.py
       1524 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_geo_layers.py
       1263 ./dist/samples/030_streamlit_e2e_tests/pages/st_reuse_label.py
       2551 ./dist/samples/030_streamlit_e2e_tests/pages/st_select_slider.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_session_state.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_set_page_config.py
       1087 ./dist/samples/030_streamlit_e2e_tests/pages/st_sidebar.py
       2458 ./dist/samples/030_streamlit_e2e_tests/pages/st_slider.py
       1149 ./dist/samples/030_streamlit_e2e_tests/pages/st_tabs.py
       2732 ./dist/samples/030_streamlit_e2e_tests/pages/st_tooltips.py
       1108 ./dist/samples/030_streamlit_e2e_tests/pages/websocket_reconnects.py
        730 ./dist/samples/030_streamlit_e2e_tests/pages/widget_state_heavy_usage.py
         27 ./dist/samples/030_streamlit_e2e_tests/requirements.txt
         75 ./dist/samples/030_streamlit_e2e_tests/stlite.json
        117 ./dist/samples/030_streamlit_e2e_tests/streamlit_app.py

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/init-all/action.yml:
- Around line 91-108: The CI step "Install Aikido Safe-Chain" only runs for
runner.os == 'Linux', leaving platform-agnostic dependency targets like make
venv and make node_modules unscanned on Windows; update the workflow to either
add a Windows branch that installs a Windows-safe-chain shim (create a new step
guarded by runner.os == 'Windows' that sets SAFE_CHAIN_VERSION/SAFE_CHAIN_SHA256
and downloads the Windows safe-chain binary or installer analogous to the Linux
step and adds its shims to GITHUB_PATH) or modify the dependency steps that call
make venv / make node_modules to be skipped on Windows (wrap those runs with if:
runner.os == 'Linux' or add an explicit conditional to only run them when the
safe-chain step has run), referencing the existing step name "Install Aikido
Safe-Chain", environment vars SAFE_CHAIN_VERSION/SAFE_CHAIN_SHA256, and the make
targets "make venv" and "make node_modules" so the protection covers Windows
jobs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce0aa591-63b5-43ed-8ed4-36f6ff15d4d0

📥 Commits

Reviewing files that changed from the base of the PR and between 67a1136 and edc8a94.

📒 Files selected for processing (1)
  • .github/actions/init-all/action.yml

Comment thread .github/actions/init-all/action.yml Outdated
Matrix jobs on windows-latest (desktop test/packaging) also resolve the
same lockfile-pinned packages, so they deserve the same malware-proxy
protection as Linux. Without it, a malicious postinstall script could
execute on the Windows runner before the parallel Linux job flags the
same package and fails the PR. Pinned to version 1.4.9 with its own
SHA256 for the Windows binary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

CI Report for b71fadf

Package Stats

Diffs are from 67a1136 on main (workflow run: 24508122553)

stlite sharing editor

dist.tar: 14532 kiB (14532 kiB +0 kiB)

File Tree
.
└── dist
    ├── android-chrome-192x192.png
    ├── android-chrome-512x512.png
    ├── apple-touch-icon.png
    ├── assets
    │   ├── index-BRTlXxBO.js
    │   ├── index-BRTlXxBO.js.map
    │   └── index-D-M48OQT.css
    ├── browserconfig.xml
    ├── favicon-16x16.png
    ├── favicon-32x32.png
    ├── favicon.ico
    ├── index.html
    ├── logo192.png
    ├── logo512.png
    ├── manifest.json
    ├── mstile-150x150.png
    ├── ogp.png
    ├── robots.txt
    ├── safari-pinned-tab.svg
    └── samples
        ├── 000_intro
        │   ├── data
        │   │   └── logo.png
        │   ├── pages
        │   │   └── 🎈_subpage.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 001_template
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 010_streamlit_hello
        │   ├── README.md
        │   ├── agri.csv.gz
        │   ├── animation_demo.py
        │   ├── dataframe_demo.py
        │   ├── hello.py
        │   ├── mapping_demo.py
        │   ├── plotting_demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   ├── streamlit_app.py
        │   └── utils.py
        ├── 011_component_gallery
        │   ├── data
        │   │   └── capitals.csv
        │   ├── pages
        │   │   ├── annotations-in-altair.py
        │   │   ├── cat-purr.mp3
        │   │   ├── charts.altair_chart.py
        │   │   ├── charts.altair_custom_colors.py
        │   │   ├── charts.altair_selections.py
        │   │   ├── charts.area_chart.py
        │   │   ├── charts.area_chart1.py
        │   │   ├── charts.area_chart2.py
        │   │   ├── charts.area_chart_steamgraph.py
        │   │   ├── charts.audio-purr.py
        │   │   ├── charts.audio.py
        │   │   ├── charts.bar_chart.py
        │   │   ├── charts.bar_chart1.py
        │   │   ├── charts.bar_chart2.py
        │   │   ├── charts.bar_chart_horizontal.py
        │   │   ├── charts.bar_chart_unstacked.py
        │   │   ├── charts.bokeh_chart.py
        │   │   ├── charts.graphviz_chart.py
        │   │   ├── charts.image.py
        │   │   ├── charts.line_chart.py
        │   │   ├── charts.line_chart1.py
        │   │   ├── charts.line_chart2.py
        │   │   ├── charts.map.py
        │   │   ├── charts.map_color.py
        │   │   ├── charts.plotly_chart.py
        │   │   ├── charts.plotly_chart_config.py
        │   │   ├── charts.plotly_chart_event_state.py
        │   │   ├── charts.plotly_chart_event_state_selections.py
        │   │   ├── charts.plotly_chart_theme.py
        │   │   ├── charts.plotly_custom_colors.py
        │   │   ├── charts.pydeck_chart.py
        │   │   ├── charts.pydeck_event_state_selections.py
        │   │   ├── charts.pyplot.py
        │   │   ├── charts.scatter_chart.py
        │   │   ├── charts.scatter_chart1.py
        │   │   ├── charts.scatter_chart2.py
        │   │   ├── charts.vega_lite_chart.py
        │   │   ├── charts.vega_lite_theme.py
        │   │   ├── charts.video.py
        │   │   ├── charts.video2.py
        │   │   ├── chat.echo.py
        │   │   ├── chat.input-file-uploader.py
        │   │   ├── chat.input-inline.py
        │   │   ├── chat.input.py
        │   │   ├── chat.input_audio.py
        │   │   ├── chat.input_set_value.py
        │   │   ├── chat.llm.py
        │   │   ├── chat.message.py
        │   │   ├── chat.message1.py
        │   │   ├── chat.simple.py
        │   │   ├── components.cleanup_function.py
        │   │   ├── components.custom_anchors.py
        │   │   ├── components.interactive_svg.py
        │   │   ├── components.markdown_links.py
        │   │   ├── components.tailwind.py
        │   │   ├── components.text_input.py
        │   │   ├── create-a-simple-grid.py
        │   │   ├── data.areachart_column.py
        │   │   ├── data.audio_column.py
        │   │   ├── data.barchart_column.py
        │   │   ├── data.checkbox_column.py
        │   │   ├── data.column.py
        │   │   ├── data.column_config.empty.py
        │   │   ├── data.column_config.py
        │   │   ├── data.data_editor.py
        │   │   ├── data.data_editor1.py
        │   │   ├── data.data_editor2.py
        │   │   ├── data.data_editor3.py
        │   │   ├── data.data_editor4.py
        │   │   ├── data.data_editor_config.py
        │   │   ├── data.dataframe.py
        │   │   ├── data.dataframe1.py
        │   │   ├── data.dataframe2.py
        │   │   ├── data.dataframe_config.py
        │   │   ├── data.dataframe_config_index.py
        │   │   ├── data.dataframe_event_state_selections.py
        │   │   ├── data.dataframe_programmatic_selections.py
        │   │   ├── data.date_column.py
        │   │   ├── data.datetime_column.py
        │   │   ├── data.image_column.py
        │   │   ├── data.json.py
        │   │   ├── data.json_column.py
        │   │   ├── data.linechart_column.py
        │   │   ├── data.link_column.py
        │   │   ├── data.list_column.py
        │   │   ├── data.multiselect_column_1.py
        │   │   ├── data.multiselect_column_2.py
        │   │   ├── data.number_column.py
        │   │   ├── data.progress_column.py
        │   │   ├── data.selectbox_column.py
        │   │   ├── data.table.py
        │   │   ├── data.table_auto_header.py
        │   │   ├── data.table_confusion.py
        │   │   ├── data.table_hide_header_and_index.py
        │   │   ├── data.table_horizontal_border.py
        │   │   ├── data.table_markdown.py
        │   │   ├── data.text_column.py
        │   │   ├── data.time_column.py
        │   │   ├── data.video_column.py
        │   │   ├── dataframe-row-selections.py
        │   │   ├── execution.dialog.py
        │   │   ├── execution.fragment-rerun.py
        │   │   ├── execution.fragment.py
        │   │   ├── execution.fragment_balloon.py
        │   │   ├── flower.png
        │   │   ├── forms.form1.py
        │   │   ├── forms.form2.py
        │   │   ├── forms.form_container.py
        │   │   ├── forms.form_default.py
        │   │   ├── forms.form_overview.py
        │   │   ├── forms.form_process1.py
        │   │   ├── forms.form_process2.py
        │   │   ├── forms.form_process3.py
        │   │   ├── images
        │   │   │   ├── horizontal_blue.png
        │   │   │   ├── horizontal_red.png
        │   │   │   ├── icon_blue.png
        │   │   │   └── icon_red.png
        │   │   ├── layout.columns1.py
        │   │   ├── layout.columns2.py
        │   │   ├── layout.columns_borders.py
        │   │   ├── layout.columns_bottom_widgets.py
        │   │   ├── layout.columns_vertical_alignment.py
        │   │   ├── layout.container1.py
        │   │   ├── layout.container2.py
        │   │   ├── layout.container3.py
        │   │   ├── layout.container4.py
        │   │   ├── layout.container5.py
        │   │   ├── layout.empty.py
        │   │   ├── layout.empty_placeholder.py
        │   │   ├── layout.expander-callback.py
        │   │   ├── layout.expander-conditional-outside.py
        │   │   ├── layout.expander-lazy-load.py
        │   │   ├── layout.expander.py
        │   │   ├── layout.popover-callback.py
        │   │   ├── layout.popover-conditional-outside.py
        │   │   ├── layout.popover-lazy-load.py
        │   │   ├── layout.popover.py
        │   │   ├── layout.popover2.py
        │   │   ├── layout.space_horizontal.py
        │   │   ├── layout.space_vertical.py
        │   │   ├── layout.tabs-callback.py
        │   │   ├── layout.tabs-conditional-outside.py
        │   │   ├── layout.tabs-lazy-load.py
        │   │   ├── layout.tabs1.py
        │   │   ├── layout.tabs2.py
        │   │   ├── layout.tabs3.py
        │   │   ├── layouts.container4.py
        │   │   ├── media.logo.py
        │   │   ├── metric.example1.py
        │   │   ├── metric.example2.py
        │   │   ├── metric.example3.py
        │   │   ├── metric.example4.py
        │   │   ├── metric.example5.py
        │   │   ├── status.exception.py
        │   │   ├── status.progress.py
        │   │   ├── status.spinner.py
        │   │   ├── status.status.py
        │   │   ├── status.status1.py
        │   │   ├── status.toast.py
        │   │   ├── status.toast1.py
        │   │   ├── status.toast2.py
        │   │   ├── tailwind_example.js
        │   │   ├── text.badge.py
        │   │   ├── text.caption.py
        │   │   ├── text.code-ascii.py
        │   │   ├── text.code.py
        │   │   ├── text.header.py
        │   │   ├── text.latex.py
        │   │   ├── text.markdown.py
        │   │   ├── text.markdown1.py
        │   │   ├── text.subheader.py
        │   │   ├── text.text.py
        │   │   ├── text.text_area.py
        │   │   ├── text.title.py
        │   │   ├── text.write1.py
        │   │   ├── text.write2.py
        │   │   ├── text.write3.py
        │   │   ├── text.write_stream.py
        │   │   ├── utilities.help.py
        │   │   ├── utilities.help1.py
        │   │   ├── utilities.help2.py
        │   │   ├── utilities.html.py
        │   │   ├── widget.audio_input.py
        │   │   ├── widget.button.py
        │   │   ├── widget.button_icons.py
        │   │   ├── widget.button_shortcut.py
        │   │   ├── widget.camera_input.py
        │   │   ├── widget.checkbox.py
        │   │   ├── widget.color_picker.py
        │   │   ├── widget.date_input.py
        │   │   ├── widget.date_input1.py
        │   │   ├── widget.date_input_empty.py
        │   │   ├── widget.datetime_input.py
        │   │   ├── widget.datetime_input_empty.py
        │   │   ├── widget.download_button.py
        │   │   ├── widget.download_button_csv.py
        │   │   ├── widget.download_button_deferred.py
        │   │   ├── widget.download_button_file.py
        │   │   ├── widget.download_button_text.py
        │   │   ├── widget.feedback_stars.py
        │   │   ├── widget.feedback_thumbs.py
        │   │   ├── widget.file_uploader.py
        │   │   ├── widget.file_uploader_directory.py
        │   │   ├── widget.link_button.py
        │   │   ├── widget.menu_button.py
        │   │   ├── widget.multiselect.py
        │   │   ├── widget.multiselect_accept_new_options.py
        │   │   ├── widget.number_input.py
        │   │   ├── widget.number_input_empty.py
        │   │   ├── widget.pills_multi.py
        │   │   ├── widget.pills_single.py
        │   │   ├── widget.radio.py
        │   │   ├── widget.radio1.py
        │   │   ├── widget.radio_empty.py
        │   │   ├── widget.segmented_control_multi.py
        │   │   ├── widget.segmented_control_single.py
        │   │   ├── widget.select_slider.py
        │   │   ├── widget.selectbox.py
        │   │   ├── widget.selectbox1.py
        │   │   ├── widget.selectbox_accept_new_options.py
        │   │   ├── widget.selectbox_empty.py
        │   │   ├── widget.slider.py
        │   │   ├── widget.text_area.py
        │   │   ├── widget.text_input.py
        │   │   ├── widget.text_input1.py
        │   │   ├── widget.time_input.py
        │   │   ├── widget.time_input_empty.py
        │   │   ├── widget.toggle.py
        │   │   ├── widgets.audio_input_high_rate.py
        │   │   ├── widgets.change_parameters.py
        │   │   ├── widgets.change_parameters_best.py
        │   │   └── widgets.form_callbacks.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_hello
        │   ├── agri.csv.gz
        │   ├── hello.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_mpa-hello
        │   ├── 0_👋_Hello.py
        │   ├── agri.csv.gz
        │   ├── pages
        │   │   ├── 1_📈_Plotting_Demo.py
        │   │   ├── 2_🌍_Mapping_Demo.py
        │   │   ├── 3_📊_DataFrame_Demo.py
        │   │   └── 4_📷_Webcam_Demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── utils.py
        ├── 012_navigation.multipage_widgets
        │   ├── app.py
        │   └── stlite.json
        ├── 012_tutorials_custom-navigation
        │   ├── README.md
        │   ├── app.py
        │   ├── menu.py
        │   ├── pages
        │   │   ├── admin.py
        │   │   ├── super-admin.py
        │   │   └── user.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_tutorials_dynamic-navigation
        │   ├── README.md
        │   ├── admin
        │   │   ├── admin_1.py
        │   │   └── admin_2.py
        │   ├── images
        │   │   ├── horizontal_blue.png
        │   │   └── icon_blue.png
        │   ├── request
        │   │   ├── request_1.py
        │   │   └── request_2.py
        │   ├── respond
        │   │   ├── respond_1.py
        │   │   └── respond_2.py
        │   ├── settings.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_tutorials_fragments
        │   ├── README.md
        │   ├── app.py
        │   ├── pages
        │   │   ├── tutorial-fragment-multiple-container.py
        │   │   ├── tutorial-fragment-rerun.py
        │   │   └── tutorial-fragment-streaming.py
        │   └── stlite.json
        ├── 012_utilities.switch_page
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 012_widget.page_link
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 020_custom_components
        │   ├── home.py
        │   ├── pages
        │   │   ├── aggrid.py
        │   │   ├── agraph.py
        │   │   ├── cropper.py
        │   │   ├── d3_demo.py
        │   │   ├── drawable_canvas.py
        │   │   ├── embedcode.py
        │   │   ├── folium.py
        │   │   ├── lottie.py
        │   │   ├── player.py
        │   │   └── stmol.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 021_opencv
        │   ├── data
        │   │   └── logo.png
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 022_realtime_image_processing
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        └── 030_streamlit_e2e_tests
            ├── pages
            │   ├── empty_labels.py
            │   ├── iframe_resizer.py
            │   ├── redisplayed_widgets.py
            │   ├── session_state_frontend_sync.py
            │   ├── st_columns.py
            │   ├── st_disabled.py
            │   ├── st_disconnect.py
            │   ├── st_download_button.py
            │   ├── st_exception.py
            │   ├── st_experimental_get_query_params.py
            │   ├── st_experimental_set_query_params.py
            │   ├── st_form_column_association.py
            │   ├── st_image.py
            │   ├── st_image_replay.py
            │   ├── st_image_replay_old_image.py
            │   ├── st_image_svg_sizing.py
            │   ├── st_json.py
            │   ├── st_map.py
            │   ├── st_media_replay.py
            │   ├── st_pydeck_chart.py
            │   ├── st_pydeck_geo_layers.py
            │   ├── st_reuse_label.py
            │   ├── st_select_slider.py
            │   ├── st_session_state.py
            │   ├── st_set_page_config.py
            │   ├── st_sidebar.py
            │   ├── st_slider.py
            │   ├── st_tabs.py
            │   ├── st_tooltips.py
            │   ├── websocket_reconnects.py
            │   └── widget_state_heavy_usage.py
            ├── requirements.txt
            ├── stlite.json
            └── streamlit_app.py

37 directories, 378 files
File Sizes
       5946 ./dist/android-chrome-192x192.png
      18336 ./dist/android-chrome-512x512.png
       5553 ./dist/apple-touch-icon.png
-    382845 ./dist/assets/index-Cq9uvDGj.js
-  12530260 ./dist/assets/index-Cq9uvDGj.js.map
+    382941 ./dist/assets/index-BRTlXxBO.js
+  12530364 ./dist/assets/index-BRTlXxBO.js.map
      16976 ./dist/assets/index-D-M48OQT.css
        246 ./dist/browserconfig.xml
       1028 ./dist/favicon-16x16.png
       1751 ./dist/favicon-32x32.png
      15086 ./dist/favicon.ico
       2263 ./dist/index.html
       4517 ./dist/logo192.png
      12188 ./dist/logo512.png
        714 ./dist/manifest.json
       3911 ./dist/mstile-150x150.png
      43307 ./dist/ogp.png
         67 ./dist/robots.txt
       8806 ./dist/safari-pinned-tab.svg
       4517 ./dist/samples/000_intro/data/logo.png
        311 ./dist/samples/000_intro/pages/🎈_subpage.py
         66 ./dist/samples/000_intro/stlite.json
       3392 ./dist/samples/000_intro/streamlit_app.py
         68 ./dist/samples/001_template/stlite.json
         49 ./dist/samples/001_template/streamlit_app.py
       1536 ./dist/samples/010_streamlit_hello/README.md
      36065 ./dist/samples/010_streamlit_hello/agri.csv.gz
       3290 ./dist/samples/010_streamlit_hello/animation_demo.py
       2529 ./dist/samples/010_streamlit_hello/dataframe_demo.py
       1491 ./dist/samples/010_streamlit_hello/hello.py
       3744 ./dist/samples/010_streamlit_hello/mapping_demo.py
       1772 ./dist/samples/010_streamlit_hello/plotting_demo.py
          7 ./dist/samples/010_streamlit_hello/requirements.txt
         69 ./dist/samples/010_streamlit_hello/stlite.json
       1820 ./dist/samples/010_streamlit_hello/streamlit_app.py
       1053 ./dist/samples/010_streamlit_hello/utils.py
       2530 ./dist/samples/011_component_gallery/data/capitals.csv
       1776 ./dist/samples/011_component_gallery/pages/annotations-in-altair.py
     184083 ./dist/samples/011_component_gallery/pages/cat-purr.mp3
        828 ./dist/samples/011_component_gallery/pages/charts.altair_chart.py
       2169 ./dist/samples/011_component_gallery/pages/charts.altair_custom_colors.py
        704 ./dist/samples/011_component_gallery/pages/charts.altair_selections.py
        183 ./dist/samples/011_component_gallery/pages/charts.area_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.area_chart1.py
        344 ./dist/samples/011_component_gallery/pages/charts.area_chart2.py
        170 ./dist/samples/011_component_gallery/pages/charts.area_chart_steamgraph.py
         87 ./dist/samples/011_component_gallery/pages/charts.audio-purr.py
       1773 ./dist/samples/011_component_gallery/pages/charts.audio.py
        182 ./dist/samples/011_component_gallery/pages/charts.bar_chart.py
        308 ./dist/samples/011_component_gallery/pages/charts.bar_chart1.py
        339 ./dist/samples/011_component_gallery/pages/charts.bar_chart2.py
        155 ./dist/samples/011_component_gallery/pages/charts.bar_chart_horizontal.py
        148 ./dist/samples/011_component_gallery/pages/charts.bar_chart_unstacked.py
        245 ./dist/samples/011_component_gallery/pages/charts.bokeh_chart.py
        650 ./dist/samples/011_component_gallery/pages/charts.graphviz_chart.py
        461 ./dist/samples/011_component_gallery/pages/charts.image.py
        183 ./dist/samples/011_component_gallery/pages/charts.line_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.line_chart1.py
        253 ./dist/samples/011_component_gallery/pages/charts.line_chart2.py
        217 ./dist/samples/011_component_gallery/pages/charts.map.py
        426 ./dist/samples/011_component_gallery/pages/charts.map_color.py
        375 ./dist/samples/011_component_gallery/pages/charts.plotly_chart.py
        222 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_config.py
        196 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state.py
        299 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state_selections.py
        733 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_theme.py
        759 ./dist/samples/011_component_gallery/pages/charts.plotly_custom_colors.py
       1040 ./dist/samples/011_component_gallery/pages/charts.pydeck_chart.py
        895 ./dist/samples/011_component_gallery/pages/charts.pydeck_event_state_selections.py
        199 ./dist/samples/011_component_gallery/pages/charts.pyplot.py
        186 ./dist/samples/011_component_gallery/pages/charts.scatter_chart.py
        319 ./dist/samples/011_component_gallery/pages/charts.scatter_chart1.py
        305 ./dist/samples/011_component_gallery/pages/charts.scatter_chart2.py
        529 ./dist/samples/011_component_gallery/pages/charts.vega_lite_chart.py
       1016 ./dist/samples/011_component_gallery/pages/charts.vega_lite_theme.py
        388 ./dist/samples/011_component_gallery/pages/charts.video.py
        527 ./dist/samples/011_component_gallery/pages/charts.video2.py
        887 ./dist/samples/011_component_gallery/pages/chat.echo.py
        274 ./dist/samples/011_component_gallery/pages/chat.input-file-uploader.py
        250 ./dist/samples/011_component_gallery/pages/chat.input-inline.py
        137 ./dist/samples/011_component_gallery/pages/chat.input.py
        268 ./dist/samples/011_component_gallery/pages/chat.input_audio.py
        192 ./dist/samples/011_component_gallery/pages/chat.input_set_value.py
       2645 ./dist/samples/011_component_gallery/pages/chat.llm.py
        142 ./dist/samples/011_component_gallery/pages/chat.message.py
        153 ./dist/samples/011_component_gallery/pages/chat.message1.py
       1277 ./dist/samples/011_component_gallery/pages/chat.simple.py
       1218 ./dist/samples/011_component_gallery/pages/components.cleanup_function.py
       1072 ./dist/samples/011_component_gallery/pages/components.custom_anchors.py
       1121 ./dist/samples/011_component_gallery/pages/components.interactive_svg.py
        641 ./dist/samples/011_component_gallery/pages/components.markdown_links.py
        800 ./dist/samples/011_component_gallery/pages/components.tailwind.py
       1658 ./dist/samples/011_component_gallery/pages/components.text_input.py
        651 ./dist/samples/011_component_gallery/pages/create-a-simple-grid.py
        670 ./dist/samples/011_component_gallery/pages/data.areachart_column.py
       1228 ./dist/samples/011_component_gallery/pages/data.audio_column.py
        640 ./dist/samples/011_component_gallery/pages/data.barchart_column.py
        572 ./dist/samples/011_component_gallery/pages/data.checkbox_column.py
        542 ./dist/samples/011_component_gallery/pages/data.column.py
        580 ./dist/samples/011_component_gallery/pages/data.column_config.empty.py
       3119 ./dist/samples/011_component_gallery/pages/data.column_config.py
        460 ./dist/samples/011_component_gallery/pages/data.data_editor.py
        480 ./dist/samples/011_component_gallery/pages/data.data_editor1.py
        410 ./dist/samples/011_component_gallery/pages/data.data_editor2.py
        903 ./dist/samples/011_component_gallery/pages/data.data_editor3.py
        814 ./dist/samples/011_component_gallery/pages/data.data_editor4.py
        874 ./dist/samples/011_component_gallery/pages/data.data_editor_config.py
        207 ./dist/samples/011_component_gallery/pages/data.dataframe.py
        235 ./dist/samples/011_component_gallery/pages/data.dataframe1.py
        614 ./dist/samples/011_component_gallery/pages/data.dataframe2.py
        900 ./dist/samples/011_component_gallery/pages/data.dataframe_config.py
        432 ./dist/samples/011_component_gallery/pages/data.dataframe_config_index.py
        332 ./dist/samples/011_component_gallery/pages/data.dataframe_event_state_selections.py
        643 ./dist/samples/011_component_gallery/pages/data.dataframe_programmatic_selections.py
        654 ./dist/samples/011_component_gallery/pages/data.date_column.py
        735 ./dist/samples/011_component_gallery/pages/data.datetime_column.py
       1019 ./dist/samples/011_component_gallery/pages/data.image_column.py
        239 ./dist/samples/011_component_gallery/pages/data.json.py
        485 ./dist/samples/011_component_gallery/pages/data.json_column.py
        669 ./dist/samples/011_component_gallery/pages/data.linechart_column.py
        975 ./dist/samples/011_component_gallery/pages/data.link_column.py
        668 ./dist/samples/011_component_gallery/pages/data.list_column.py
        657 ./dist/samples/011_component_gallery/pages/data.multiselect_column_1.py
        522 ./dist/samples/011_component_gallery/pages/data.multiselect_column_2.py
        513 ./dist/samples/011_component_gallery/pages/data.number_column.py
        487 ./dist/samples/011_component_gallery/pages/data.progress_column.py
        766 ./dist/samples/011_component_gallery/pages/data.selectbox_column.py
        206 ./dist/samples/011_component_gallery/pages/data.table.py
        523 ./dist/samples/011_component_gallery/pages/data.table_auto_header.py
        351 ./dist/samples/011_component_gallery/pages/data.table_confusion.py
        155 ./dist/samples/011_component_gallery/pages/data.table_hide_header_and_index.py
        444 ./dist/samples/011_component_gallery/pages/data.table_horizontal_border.py
        443 ./dist/samples/011_component_gallery/pages/data.table_markdown.py
        549 ./dist/samples/011_component_gallery/pages/data.text_column.py
        636 ./dist/samples/011_component_gallery/pages/data.time_column.py
        557 ./dist/samples/011_component_gallery/pages/data.video_column.py
       2555 ./dist/samples/011_component_gallery/pages/dataframe-row-selections.py
        528 ./dist/samples/011_component_gallery/pages/execution.dialog.py
        461 ./dist/samples/011_component_gallery/pages/execution.fragment-rerun.py
        543 ./dist/samples/011_component_gallery/pages/execution.fragment.py
        296 ./dist/samples/011_component_gallery/pages/execution.fragment_balloon.py
     411449 ./dist/samples/011_component_gallery/pages/flower.png
        377 ./dist/samples/011_component_gallery/pages/forms.form1.py
        185 ./dist/samples/011_component_gallery/pages/forms.form2.py
        606 ./dist/samples/011_component_gallery/pages/forms.form_container.py
        347 ./dist/samples/011_component_gallery/pages/forms.form_default.py
       1442 ./dist/samples/011_component_gallery/pages/forms.form_overview.py
        243 ./dist/samples/011_component_gallery/pages/forms.form_process1.py
        468 ./dist/samples/011_component_gallery/pages/forms.form_process2.py
        637 ./dist/samples/011_component_gallery/pages/forms.form_process3.py
      39446 ./dist/samples/011_component_gallery/pages/images/horizontal_blue.png
      32992 ./dist/samples/011_component_gallery/pages/images/horizontal_red.png
       4241 ./dist/samples/011_component_gallery/pages/images/icon_blue.png
       3763 ./dist/samples/011_component_gallery/pages/images/icon_red.png
        577 ./dist/samples/011_component_gallery/pages/layout.columns1.py
        267 ./dist/samples/011_component_gallery/pages/layout.columns2.py
        176 ./dist/samples/011_component_gallery/pages/layout.columns_borders.py
        203 ./dist/samples/011_component_gallery/pages/layout.columns_bottom_widgets.py
        606 ./dist/samples/011_component_gallery/pages/layout.columns_vertical_alignment.py
        284 ./dist/samples/011_component_gallery/pages/layout.container1.py
        191 ./dist/samples/011_component_gallery/pages/layout.container2.py
        169 ./dist/samples/011_component_gallery/pages/layout.container3.py
        118 ./dist/samples/011_component_gallery/pages/layout.container4.py
        152 ./dist/samples/011_component_gallery/pages/layout.container5.py
        229 ./dist/samples/011_component_gallery/pages/layout.empty.py
        586 ./dist/samples/011_component_gallery/pages/layout.empty_placeholder.py
        444 ./dist/samples/011_component_gallery/pages/layout.expander-callback.py
        216 ./dist/samples/011_component_gallery/pages/layout.expander-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.expander-lazy-load.py
        452 ./dist/samples/011_component_gallery/pages/layout.expander.py
        484 ./dist/samples/011_component_gallery/pages/layout.popover-callback.py
        234 ./dist/samples/011_component_gallery/pages/layout.popover-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.popover-lazy-load.py
        169 ./dist/samples/011_component_gallery/pages/layout.popover.py
        263 ./dist/samples/011_component_gallery/pages/layout.popover2.py
        129 ./dist/samples/011_component_gallery/pages/layout.space_horizontal.py
        220 ./dist/samples/011_component_gallery/pages/layout.space_vertical.py
        658 ./dist/samples/011_component_gallery/pages/layout.tabs-callback.py
        605 ./dist/samples/011_component_gallery/pages/layout.tabs-conditional-outside.py
        499 ./dist/samples/011_component_gallery/pages/layout.tabs-lazy-load.py
        395 ./dist/samples/011_component_gallery/pages/layout.tabs1.py
        268 ./dist/samples/011_component_gallery/pages/layout.tabs2.py
        447 ./dist/samples/011_component_gallery/pages/layout.tabs3.py
        118 ./dist/samples/011_component_gallery/pages/layouts.container4.py
        476 ./dist/samples/011_component_gallery/pages/media.logo.py
        110 ./dist/samples/011_component_gallery/pages/metric.example1.py
        178 ./dist/samples/011_component_gallery/pages/metric.example2.py
        175 ./dist/samples/011_component_gallery/pages/metric.example3.py
        277 ./dist/samples/011_component_gallery/pages/metric.example4.py
        502 ./dist/samples/011_component_gallery/pages/metric.example5.py
        102 ./dist/samples/011_component_gallery/pages/status.exception.py
        303 ./dist/samples/011_component_gallery/pages/status.progress.py
        144 ./dist/samples/011_component_gallery/pages/status.spinner.py
        250 ./dist/samples/011_component_gallery/pages/status.status.py
        355 ./dist/samples/011_component_gallery/pages/status.status1.py
        105 ./dist/samples/011_component_gallery/pages/status.toast.py
        185 ./dist/samples/011_component_gallery/pages/status.toast1.py
        262 ./dist/samples/011_component_gallery/pages/status.toast2.py
     437557 ./dist/samples/011_component_gallery/pages/tailwind_example.js
        221 ./dist/samples/011_component_gallery/pages/text.badge.py
         56 ./dist/samples/011_component_gallery/pages/text.caption.py
        566 ./dist/samples/011_component_gallery/pages/text.code-ascii.py
        114 ./dist/samples/011_component_gallery/pages/text.code.py
        329 ./dist/samples/011_component_gallery/pages/text.header.py
        170 ./dist/samples/011_component_gallery/pages/text.latex.py
        552 ./dist/samples/011_component_gallery/pages/text.markdown.py
        240 ./dist/samples/011_component_gallery/pages/text.markdown1.py
        356 ./dist/samples/011_component_gallery/pages/text.subheader.py
         94 ./dist/samples/011_component_gallery/pages/text.text.py
        444 ./dist/samples/011_component_gallery/pages/text.text_area.py
        104 ./dist/samples/011_component_gallery/pages/text.title.py
         65 ./dist/samples/011_component_gallery/pages/text.write1.py
        155 ./dist/samples/011_component_gallery/pages/text.write2.py
        332 ./dist/samples/011_component_gallery/pages/text.write3.py
        733 ./dist/samples/011_component_gallery/pages/text.write_stream.py
         64 ./dist/samples/011_component_gallery/pages/utilities.help.py
        245 ./dist/samples/011_component_gallery/pages/utilities.help1.py
        123 ./dist/samples/011_component_gallery/pages/utilities.help2.py
        111 ./dist/samples/011_component_gallery/pages/utilities.html.py
        122 ./dist/samples/011_component_gallery/pages/widget.audio_input.py
        210 ./dist/samples/011_component_gallery/pages/widget.button.py
        409 ./dist/samples/011_component_gallery/pages/widget.button_icons.py
        336 ./dist/samples/011_component_gallery/pages/widget.button_shortcut.py
        162 ./dist/samples/011_component_gallery/pages/widget.camera_input.py
         88 ./dist/samples/011_component_gallery/pages/widget.checkbox.py
        115 ./dist/samples/011_component_gallery/pages/widget.color_picker.py
        143 ./dist/samples/011_component_gallery/pages/widget.date_input.py
        341 ./dist/samples/011_component_gallery/pages/widget.date_input1.py
        127 ./dist/samples/011_component_gallery/pages/widget.date_input_empty.py
        190 ./dist/samples/011_component_gallery/pages/widget.datetime_input.py
        150 ./dist/samples/011_component_gallery/pages/widget.datetime_input_empty.py
        917 ./dist/samples/011_component_gallery/pages/widget.download_button.py
        490 ./dist/samples/011_component_gallery/pages/widget.download_button_csv.py
        247 ./dist/samples/011_component_gallery/pages/widget.download_button_deferred.py
        208 ./dist/samples/011_component_gallery/pages/widget.download_button_file.py
        338 ./dist/samples/011_component_gallery/pages/widget.download_button_text.py
        213 ./dist/samples/011_component_gallery/pages/widget.feedback_stars.py
        215 ./dist/samples/011_component_gallery/pages/widget.feedback_thumbs.py
        230 ./dist/samples/011_component_gallery/pages/widget.file_uploader.py
        202 ./dist/samples/011_component_gallery/pages/widget.file_uploader_directory.py
         88 ./dist/samples/011_component_gallery/pages/widget.link_button.py
        264 ./dist/samples/011_component_gallery/pages/widget.menu_button.py
        196 ./dist/samples/011_component_gallery/pages/widget.multiselect.py
        235 ./dist/samples/011_component_gallery/pages/widget.multiselect_accept_new_options.py
        111 ./dist/samples/011_component_gallery/pages/widget.number_input.py
        155 ./dist/samples/011_component_gallery/pages/widget.number_input_empty.py
        203 ./dist/samples/011_component_gallery/pages/widget.pills_multi.py
        409 ./dist/samples/011_component_gallery/pages/widget.pills_single.py
        351 ./dist/samples/011_component_gallery/pages/widget.radio.py
        693 ./dist/samples/011_component_gallery/pages/widget.radio1.py
        205 ./dist/samples/011_component_gallery/pages/widget.radio_empty.py
        215 ./dist/samples/011_component_gallery/pages/widget.segmented_control_multi.py
        421 ./dist/samples/011_component_gallery/pages/widget.segmented_control_single.py
        478 ./dist/samples/011_component_gallery/pages/widget.select_slider.py
        167 ./dist/samples/011_component_gallery/pages/widget.selectbox.py
        685 ./dist/samples/011_component_gallery/pages/widget.selectbox1.py
        272 ./dist/samples/011_component_gallery/pages/widget.selectbox_accept_new_options.py
        232 ./dist/samples/011_component_gallery/pages/widget.selectbox_empty.py
        657 ./dist/samples/011_component_gallery/pages/widget.slider.py
        503 ./dist/samples/011_component_gallery/pages/widget.text_area.py
        124 ./dist/samples/011_component_gallery/pages/widget.text_input.py
        884 ./dist/samples/011_component_gallery/pages/widget.text_input1.py
        132 ./dist/samples/011_component_gallery/pages/widget.time_input.py
        122 ./dist/samples/011_component_gallery/pages/widget.time_input_empty.py
        102 ./dist/samples/011_component_gallery/pages/widget.toggle.py
        144 ./dist/samples/011_component_gallery/pages/widgets.audio_input_high_rate.py
        307 ./dist/samples/011_component_gallery/pages/widgets.change_parameters.py
        558 ./dist/samples/011_component_gallery/pages/widgets.change_parameters_best.py
        468 ./dist/samples/011_component_gallery/pages/widgets.form_callbacks.py
        259 ./dist/samples/011_component_gallery/requirements.txt
         71 ./dist/samples/011_component_gallery/stlite.json
       1901 ./dist/samples/011_component_gallery/streamlit_app.py
      36065 ./dist/samples/012_hello/agri.csv.gz
       7239 ./dist/samples/012_hello/hello.py
         45 ./dist/samples/012_hello/requirements.txt
         51 ./dist/samples/012_hello/stlite.json
       1637 ./dist/samples/012_mpa-hello/0_👋_Hello.py
      36065 ./dist/samples/012_mpa-hello/agri.csv.gz
       1691 ./dist/samples/012_mpa-hello/pages/1_📈_Plotting_Demo.py
       3775 ./dist/samples/012_mpa-hello/pages/2_🌍_Mapping_Demo.py
       2522 ./dist/samples/012_mpa-hello/pages/3_📊_DataFrame_Demo.py
       1674 ./dist/samples/012_mpa-hello/pages/4_📷_Webcam_Demo.py
         59 ./dist/samples/012_mpa-hello/requirements.txt
         68 ./dist/samples/012_mpa-hello/stlite.json
        957 ./dist/samples/012_mpa-hello/utils.py
        295 ./dist/samples/012_navigation.multipage_widgets/app.py
         60 ./dist/samples/012_navigation.multipage_widgets/stlite.json
        495 ./dist/samples/012_tutorials_custom-navigation/README.md
        649 ./dist/samples/012_tutorials_custom-navigation/app.py
       1172 ./dist/samples/012_tutorials_custom-navigation/menu.py
        504 ./dist/samples/012_tutorials_custom-navigation/pages/admin.py
        497 ./dist/samples/012_tutorials_custom-navigation/pages/super-admin.py
        341 ./dist/samples/012_tutorials_custom-navigation/pages/user.py
         18 ./dist/samples/012_tutorials_custom-navigation/requirements.txt
         71 ./dist/samples/012_tutorials_custom-navigation/stlite.json
        496 ./dist/samples/012_tutorials_dynamic-navigation/README.md
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_1.py
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_2.py
      39446 ./dist/samples/012_tutorials_dynamic-navigation/images/horizontal_blue.png
       4241 ./dist/samples/012_tutorials_dynamic-navigation/images/icon_blue.png
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_2.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_2.py
        105 ./dist/samples/012_tutorials_dynamic-navigation/settings.py
         82 ./dist/samples/012_tutorials_dynamic-navigation/stlite.json
       1940 ./dist/samples/012_tutorials_dynamic-navigation/streamlit_app.py
        529 ./dist/samples/012_tutorials_fragments/README.md
          0 ./dist/samples/012_tutorials_fragments/app.py
       1294 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-multiple-container.py
       2897 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-rerun.py
       1748 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-streaming.py
         63 ./dist/samples/012_tutorials_fragments/stlite.json
        489 ./dist/samples/012_utilities.switch_page/README.md
        204 ./dist/samples/012_utilities.switch_page/pages/page_1.py
        204 ./dist/samples/012_utilities.switch_page/pages/page_2.py
         18 ./dist/samples/012_utilities.switch_page/requirements.txt
         68 ./dist/samples/012_utilities.switch_page/stlite.json
        204 ./dist/samples/012_utilities.switch_page/your_app.py
        484 ./dist/samples/012_widget.page_link/README.md
        289 ./dist/samples/012_widget.page_link/pages/page_1.py
        289 ./dist/samples/012_widget.page_link/pages/page_2.py
         18 ./dist/samples/012_widget.page_link/requirements.txt
         65 ./dist/samples/012_widget.page_link/stlite.json
        289 ./dist/samples/012_widget.page_link/your_app.py
        332 ./dist/samples/020_custom_components/home.py
        649 ./dist/samples/020_custom_components/pages/aggrid.py
       1086 ./dist/samples/020_custom_components/pages/agraph.py
       1260 ./dist/samples/020_custom_components/pages/cropper.py
        344 ./dist/samples/020_custom_components/pages/d3_demo.py
       1740 ./dist/samples/020_custom_components/pages/drawable_canvas.py
        251 ./dist/samples/020_custom_components/pages/embedcode.py
       5270 ./dist/samples/020_custom_components/pages/folium.py
       1022 ./dist/samples/020_custom_components/pages/lottie.py
        285 ./dist/samples/020_custom_components/pages/player.py
        343 ./dist/samples/020_custom_components/pages/stmol.py
        187 ./dist/samples/020_custom_components/requirements.txt
         62 ./dist/samples/020_custom_components/stlite.json
       4517 ./dist/samples/021_opencv/data/logo.png
         14 ./dist/samples/021_opencv/requirements.txt
         60 ./dist/samples/021_opencv/stlite.json
       1092 ./dist/samples/021_opencv/streamlit_app.py
         30 ./dist/samples/022_realtime_image_processing/requirements.txt
         79 ./dist/samples/022_realtime_image_processing/stlite.json
       2568 ./dist/samples/022_realtime_image_processing/streamlit_app.py
        724 ./dist/samples/030_streamlit_e2e_tests/pages/empty_labels.py
        733 ./dist/samples/030_streamlit_e2e_tests/pages/iframe_resizer.py
        876 ./dist/samples/030_streamlit_e2e_tests/pages/redisplayed_widgets.py
       1225 ./dist/samples/030_streamlit_e2e_tests/pages/session_state_frontend_sync.py
       1400 ./dist/samples/030_streamlit_e2e_tests/pages/st_columns.py
       1140 ./dist/samples/030_streamlit_e2e_tests/pages/st_disabled.py
        616 ./dist/samples/030_streamlit_e2e_tests/pages/st_disconnect.py
       1681 ./dist/samples/030_streamlit_e2e_tests/pages/st_download_button.py
       2475 ./dist/samples/030_streamlit_e2e_tests/pages/st_exception.py
        747 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_get_query_params.py
        856 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_set_query_params.py
       2405 ./dist/samples/030_streamlit_e2e_tests/pages/st_form_column_association.py
       3329 ./dist/samples/030_streamlit_e2e_tests/pages/st_image.py
       2160 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay.py
        810 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay_old_image.py
       1705 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_svg_sizing.py
        762 ./dist/samples/030_streamlit_e2e_tests/pages/st_json.py
       1484 ./dist/samples/030_streamlit_e2e_tests/pages/st_map.py
        969 ./dist/samples/030_streamlit_e2e_tests/pages/st_media_replay.py
       2141 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_chart.py
       1524 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_geo_layers.py
       1263 ./dist/samples/030_streamlit_e2e_tests/pages/st_reuse_label.py
       2551 ./dist/samples/030_streamlit_e2e_tests/pages/st_select_slider.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_session_state.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_set_page_config.py
       1087 ./dist/samples/030_streamlit_e2e_tests/pages/st_sidebar.py
       2458 ./dist/samples/030_streamlit_e2e_tests/pages/st_slider.py
       1149 ./dist/samples/030_streamlit_e2e_tests/pages/st_tabs.py
       2732 ./dist/samples/030_streamlit_e2e_tests/pages/st_tooltips.py
       1108 ./dist/samples/030_streamlit_e2e_tests/pages/websocket_reconnects.py
        730 ./dist/samples/030_streamlit_e2e_tests/pages/widget_state_heavy_usage.py
         27 ./dist/samples/030_streamlit_e2e_tests/requirements.txt
         75 ./dist/samples/030_streamlit_e2e_tests/stlite.json
        117 ./dist/samples/030_streamlit_e2e_tests/streamlit_app.py

@github-actions
Copy link
Copy Markdown
Contributor

CI Report for 4c0e625

Package Stats

Diffs are from 67a1136 on main (workflow run: 24508122553)

stlite sharing editor

dist.tar: 14532 kiB (14532 kiB +0 kiB)

File Tree
.
└── dist
    ├── android-chrome-192x192.png
    ├── android-chrome-512x512.png
    ├── apple-touch-icon.png
    ├── assets
    │   ├── index-Bh1exFu_.js
    │   ├── index-Bh1exFu_.js.map
    │   └── index-D-M48OQT.css
    ├── browserconfig.xml
    ├── favicon-16x16.png
    ├── favicon-32x32.png
    ├── favicon.ico
    ├── index.html
    ├── logo192.png
    ├── logo512.png
    ├── manifest.json
    ├── mstile-150x150.png
    ├── ogp.png
    ├── robots.txt
    ├── safari-pinned-tab.svg
    └── samples
        ├── 000_intro
        │   ├── data
        │   │   └── logo.png
        │   ├── pages
        │   │   └── 🎈_subpage.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 001_template
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 010_streamlit_hello
        │   ├── README.md
        │   ├── agri.csv.gz
        │   ├── animation_demo.py
        │   ├── dataframe_demo.py
        │   ├── hello.py
        │   ├── mapping_demo.py
        │   ├── plotting_demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   ├── streamlit_app.py
        │   └── utils.py
        ├── 011_component_gallery
        │   ├── data
        │   │   └── capitals.csv
        │   ├── pages
        │   │   ├── annotations-in-altair.py
        │   │   ├── cat-purr.mp3
        │   │   ├── charts.altair_chart.py
        │   │   ├── charts.altair_custom_colors.py
        │   │   ├── charts.altair_selections.py
        │   │   ├── charts.area_chart.py
        │   │   ├── charts.area_chart1.py
        │   │   ├── charts.area_chart2.py
        │   │   ├── charts.area_chart_steamgraph.py
        │   │   ├── charts.audio-purr.py
        │   │   ├── charts.audio.py
        │   │   ├── charts.bar_chart.py
        │   │   ├── charts.bar_chart1.py
        │   │   ├── charts.bar_chart2.py
        │   │   ├── charts.bar_chart_horizontal.py
        │   │   ├── charts.bar_chart_unstacked.py
        │   │   ├── charts.bokeh_chart.py
        │   │   ├── charts.graphviz_chart.py
        │   │   ├── charts.image.py
        │   │   ├── charts.line_chart.py
        │   │   ├── charts.line_chart1.py
        │   │   ├── charts.line_chart2.py
        │   │   ├── charts.map.py
        │   │   ├── charts.map_color.py
        │   │   ├── charts.plotly_chart.py
        │   │   ├── charts.plotly_chart_config.py
        │   │   ├── charts.plotly_chart_event_state.py
        │   │   ├── charts.plotly_chart_event_state_selections.py
        │   │   ├── charts.plotly_chart_theme.py
        │   │   ├── charts.plotly_custom_colors.py
        │   │   ├── charts.pydeck_chart.py
        │   │   ├── charts.pydeck_event_state_selections.py
        │   │   ├── charts.pyplot.py
        │   │   ├── charts.scatter_chart.py
        │   │   ├── charts.scatter_chart1.py
        │   │   ├── charts.scatter_chart2.py
        │   │   ├── charts.vega_lite_chart.py
        │   │   ├── charts.vega_lite_theme.py
        │   │   ├── charts.video.py
        │   │   ├── charts.video2.py
        │   │   ├── chat.echo.py
        │   │   ├── chat.input-file-uploader.py
        │   │   ├── chat.input-inline.py
        │   │   ├── chat.input.py
        │   │   ├── chat.input_audio.py
        │   │   ├── chat.input_set_value.py
        │   │   ├── chat.llm.py
        │   │   ├── chat.message.py
        │   │   ├── chat.message1.py
        │   │   ├── chat.simple.py
        │   │   ├── components.cleanup_function.py
        │   │   ├── components.custom_anchors.py
        │   │   ├── components.interactive_svg.py
        │   │   ├── components.markdown_links.py
        │   │   ├── components.tailwind.py
        │   │   ├── components.text_input.py
        │   │   ├── create-a-simple-grid.py
        │   │   ├── data.areachart_column.py
        │   │   ├── data.audio_column.py
        │   │   ├── data.barchart_column.py
        │   │   ├── data.checkbox_column.py
        │   │   ├── data.column.py
        │   │   ├── data.column_config.empty.py
        │   │   ├── data.column_config.py
        │   │   ├── data.data_editor.py
        │   │   ├── data.data_editor1.py
        │   │   ├── data.data_editor2.py
        │   │   ├── data.data_editor3.py
        │   │   ├── data.data_editor4.py
        │   │   ├── data.data_editor_config.py
        │   │   ├── data.dataframe.py
        │   │   ├── data.dataframe1.py
        │   │   ├── data.dataframe2.py
        │   │   ├── data.dataframe_config.py
        │   │   ├── data.dataframe_config_index.py
        │   │   ├── data.dataframe_event_state_selections.py
        │   │   ├── data.dataframe_programmatic_selections.py
        │   │   ├── data.date_column.py
        │   │   ├── data.datetime_column.py
        │   │   ├── data.image_column.py
        │   │   ├── data.json.py
        │   │   ├── data.json_column.py
        │   │   ├── data.linechart_column.py
        │   │   ├── data.link_column.py
        │   │   ├── data.list_column.py
        │   │   ├── data.multiselect_column_1.py
        │   │   ├── data.multiselect_column_2.py
        │   │   ├── data.number_column.py
        │   │   ├── data.progress_column.py
        │   │   ├── data.selectbox_column.py
        │   │   ├── data.table.py
        │   │   ├── data.table_auto_header.py
        │   │   ├── data.table_confusion.py
        │   │   ├── data.table_hide_header_and_index.py
        │   │   ├── data.table_horizontal_border.py
        │   │   ├── data.table_markdown.py
        │   │   ├── data.text_column.py
        │   │   ├── data.time_column.py
        │   │   ├── data.video_column.py
        │   │   ├── dataframe-row-selections.py
        │   │   ├── execution.dialog.py
        │   │   ├── execution.fragment-rerun.py
        │   │   ├── execution.fragment.py
        │   │   ├── execution.fragment_balloon.py
        │   │   ├── flower.png
        │   │   ├── forms.form1.py
        │   │   ├── forms.form2.py
        │   │   ├── forms.form_container.py
        │   │   ├── forms.form_default.py
        │   │   ├── forms.form_overview.py
        │   │   ├── forms.form_process1.py
        │   │   ├── forms.form_process2.py
        │   │   ├── forms.form_process3.py
        │   │   ├── images
        │   │   │   ├── horizontal_blue.png
        │   │   │   ├── horizontal_red.png
        │   │   │   ├── icon_blue.png
        │   │   │   └── icon_red.png
        │   │   ├── layout.columns1.py
        │   │   ├── layout.columns2.py
        │   │   ├── layout.columns_borders.py
        │   │   ├── layout.columns_bottom_widgets.py
        │   │   ├── layout.columns_vertical_alignment.py
        │   │   ├── layout.container1.py
        │   │   ├── layout.container2.py
        │   │   ├── layout.container3.py
        │   │   ├── layout.container4.py
        │   │   ├── layout.container5.py
        │   │   ├── layout.empty.py
        │   │   ├── layout.empty_placeholder.py
        │   │   ├── layout.expander-callback.py
        │   │   ├── layout.expander-conditional-outside.py
        │   │   ├── layout.expander-lazy-load.py
        │   │   ├── layout.expander.py
        │   │   ├── layout.popover-callback.py
        │   │   ├── layout.popover-conditional-outside.py
        │   │   ├── layout.popover-lazy-load.py
        │   │   ├── layout.popover.py
        │   │   ├── layout.popover2.py
        │   │   ├── layout.space_horizontal.py
        │   │   ├── layout.space_vertical.py
        │   │   ├── layout.tabs-callback.py
        │   │   ├── layout.tabs-conditional-outside.py
        │   │   ├── layout.tabs-lazy-load.py
        │   │   ├── layout.tabs1.py
        │   │   ├── layout.tabs2.py
        │   │   ├── layout.tabs3.py
        │   │   ├── layouts.container4.py
        │   │   ├── media.logo.py
        │   │   ├── metric.example1.py
        │   │   ├── metric.example2.py
        │   │   ├── metric.example3.py
        │   │   ├── metric.example4.py
        │   │   ├── metric.example5.py
        │   │   ├── status.exception.py
        │   │   ├── status.progress.py
        │   │   ├── status.spinner.py
        │   │   ├── status.status.py
        │   │   ├── status.status1.py
        │   │   ├── status.toast.py
        │   │   ├── status.toast1.py
        │   │   ├── status.toast2.py
        │   │   ├── tailwind_example.js
        │   │   ├── text.badge.py
        │   │   ├── text.caption.py
        │   │   ├── text.code-ascii.py
        │   │   ├── text.code.py
        │   │   ├── text.header.py
        │   │   ├── text.latex.py
        │   │   ├── text.markdown.py
        │   │   ├── text.markdown1.py
        │   │   ├── text.subheader.py
        │   │   ├── text.text.py
        │   │   ├── text.text_area.py
        │   │   ├── text.title.py
        │   │   ├── text.write1.py
        │   │   ├── text.write2.py
        │   │   ├── text.write3.py
        │   │   ├── text.write_stream.py
        │   │   ├── utilities.help.py
        │   │   ├── utilities.help1.py
        │   │   ├── utilities.help2.py
        │   │   ├── utilities.html.py
        │   │   ├── widget.audio_input.py
        │   │   ├── widget.button.py
        │   │   ├── widget.button_icons.py
        │   │   ├── widget.button_shortcut.py
        │   │   ├── widget.camera_input.py
        │   │   ├── widget.checkbox.py
        │   │   ├── widget.color_picker.py
        │   │   ├── widget.date_input.py
        │   │   ├── widget.date_input1.py
        │   │   ├── widget.date_input_empty.py
        │   │   ├── widget.datetime_input.py
        │   │   ├── widget.datetime_input_empty.py
        │   │   ├── widget.download_button.py
        │   │   ├── widget.download_button_csv.py
        │   │   ├── widget.download_button_deferred.py
        │   │   ├── widget.download_button_file.py
        │   │   ├── widget.download_button_text.py
        │   │   ├── widget.feedback_stars.py
        │   │   ├── widget.feedback_thumbs.py
        │   │   ├── widget.file_uploader.py
        │   │   ├── widget.file_uploader_directory.py
        │   │   ├── widget.link_button.py
        │   │   ├── widget.menu_button.py
        │   │   ├── widget.multiselect.py
        │   │   ├── widget.multiselect_accept_new_options.py
        │   │   ├── widget.number_input.py
        │   │   ├── widget.number_input_empty.py
        │   │   ├── widget.pills_multi.py
        │   │   ├── widget.pills_single.py
        │   │   ├── widget.radio.py
        │   │   ├── widget.radio1.py
        │   │   ├── widget.radio_empty.py
        │   │   ├── widget.segmented_control_multi.py
        │   │   ├── widget.segmented_control_single.py
        │   │   ├── widget.select_slider.py
        │   │   ├── widget.selectbox.py
        │   │   ├── widget.selectbox1.py
        │   │   ├── widget.selectbox_accept_new_options.py
        │   │   ├── widget.selectbox_empty.py
        │   │   ├── widget.slider.py
        │   │   ├── widget.text_area.py
        │   │   ├── widget.text_input.py
        │   │   ├── widget.text_input1.py
        │   │   ├── widget.time_input.py
        │   │   ├── widget.time_input_empty.py
        │   │   ├── widget.toggle.py
        │   │   ├── widgets.audio_input_high_rate.py
        │   │   ├── widgets.change_parameters.py
        │   │   ├── widgets.change_parameters_best.py
        │   │   └── widgets.form_callbacks.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_hello
        │   ├── agri.csv.gz
        │   ├── hello.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_mpa-hello
        │   ├── 0_👋_Hello.py
        │   ├── agri.csv.gz
        │   ├── pages
        │   │   ├── 1_📈_Plotting_Demo.py
        │   │   ├── 2_🌍_Mapping_Demo.py
        │   │   ├── 3_📊_DataFrame_Demo.py
        │   │   └── 4_📷_Webcam_Demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── utils.py
        ├── 012_navigation.multipage_widgets
        │   ├── app.py
        │   └── stlite.json
        ├── 012_tutorials_custom-navigation
        │   ├── README.md
        │   ├── app.py
        │   ├── menu.py
        │   ├── pages
        │   │   ├── admin.py
        │   │   ├── super-admin.py
        │   │   └── user.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_tutorials_dynamic-navigation
        │   ├── README.md
        │   ├── admin
        │   │   ├── admin_1.py
        │   │   └── admin_2.py
        │   ├── images
        │   │   ├── horizontal_blue.png
        │   │   └── icon_blue.png
        │   ├── request
        │   │   ├── request_1.py
        │   │   └── request_2.py
        │   ├── respond
        │   │   ├── respond_1.py
        │   │   └── respond_2.py
        │   ├── settings.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_tutorials_fragments
        │   ├── README.md
        │   ├── app.py
        │   ├── pages
        │   │   ├── tutorial-fragment-multiple-container.py
        │   │   ├── tutorial-fragment-rerun.py
        │   │   └── tutorial-fragment-streaming.py
        │   └── stlite.json
        ├── 012_utilities.switch_page
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 012_widget.page_link
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 020_custom_components
        │   ├── home.py
        │   ├── pages
        │   │   ├── aggrid.py
        │   │   ├── agraph.py
        │   │   ├── cropper.py
        │   │   ├── d3_demo.py
        │   │   ├── drawable_canvas.py
        │   │   ├── embedcode.py
        │   │   ├── folium.py
        │   │   ├── lottie.py
        │   │   ├── player.py
        │   │   └── stmol.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 021_opencv
        │   ├── data
        │   │   └── logo.png
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 022_realtime_image_processing
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        └── 030_streamlit_e2e_tests
            ├── pages
            │   ├── empty_labels.py
            │   ├── iframe_resizer.py
            │   ├── redisplayed_widgets.py
            │   ├── session_state_frontend_sync.py
            │   ├── st_columns.py
            │   ├── st_disabled.py
            │   ├── st_disconnect.py
            │   ├── st_download_button.py
            │   ├── st_exception.py
            │   ├── st_experimental_get_query_params.py
            │   ├── st_experimental_set_query_params.py
            │   ├── st_form_column_association.py
            │   ├── st_image.py
            │   ├── st_image_replay.py
            │   ├── st_image_replay_old_image.py
            │   ├── st_image_svg_sizing.py
            │   ├── st_json.py
            │   ├── st_map.py
            │   ├── st_media_replay.py
            │   ├── st_pydeck_chart.py
            │   ├── st_pydeck_geo_layers.py
            │   ├── st_reuse_label.py
            │   ├── st_select_slider.py
            │   ├── st_session_state.py
            │   ├── st_set_page_config.py
            │   ├── st_sidebar.py
            │   ├── st_slider.py
            │   ├── st_tabs.py
            │   ├── st_tooltips.py
            │   ├── websocket_reconnects.py
            │   └── widget_state_heavy_usage.py
            ├── requirements.txt
            ├── stlite.json
            └── streamlit_app.py

37 directories, 378 files
File Sizes
       5946 ./dist/android-chrome-192x192.png
      18336 ./dist/android-chrome-512x512.png
       5553 ./dist/apple-touch-icon.png
-    382845 ./dist/assets/index-Cq9uvDGj.js
-  12530260 ./dist/assets/index-Cq9uvDGj.js.map
+    382941 ./dist/assets/index-Bh1exFu_.js
+  12530364 ./dist/assets/index-Bh1exFu_.js.map
      16976 ./dist/assets/index-D-M48OQT.css
        246 ./dist/browserconfig.xml
       1028 ./dist/favicon-16x16.png
       1751 ./dist/favicon-32x32.png
      15086 ./dist/favicon.ico
       2263 ./dist/index.html
       4517 ./dist/logo192.png
      12188 ./dist/logo512.png
        714 ./dist/manifest.json
       3911 ./dist/mstile-150x150.png
      43307 ./dist/ogp.png
         67 ./dist/robots.txt
       8806 ./dist/safari-pinned-tab.svg
       4517 ./dist/samples/000_intro/data/logo.png
        311 ./dist/samples/000_intro/pages/🎈_subpage.py
         66 ./dist/samples/000_intro/stlite.json
       3392 ./dist/samples/000_intro/streamlit_app.py
         68 ./dist/samples/001_template/stlite.json
         49 ./dist/samples/001_template/streamlit_app.py
       1536 ./dist/samples/010_streamlit_hello/README.md
      36065 ./dist/samples/010_streamlit_hello/agri.csv.gz
       3290 ./dist/samples/010_streamlit_hello/animation_demo.py
       2529 ./dist/samples/010_streamlit_hello/dataframe_demo.py
       1491 ./dist/samples/010_streamlit_hello/hello.py
       3744 ./dist/samples/010_streamlit_hello/mapping_demo.py
       1772 ./dist/samples/010_streamlit_hello/plotting_demo.py
          7 ./dist/samples/010_streamlit_hello/requirements.txt
         69 ./dist/samples/010_streamlit_hello/stlite.json
       1820 ./dist/samples/010_streamlit_hello/streamlit_app.py
       1053 ./dist/samples/010_streamlit_hello/utils.py
       2530 ./dist/samples/011_component_gallery/data/capitals.csv
       1776 ./dist/samples/011_component_gallery/pages/annotations-in-altair.py
     184083 ./dist/samples/011_component_gallery/pages/cat-purr.mp3
        828 ./dist/samples/011_component_gallery/pages/charts.altair_chart.py
       2169 ./dist/samples/011_component_gallery/pages/charts.altair_custom_colors.py
        704 ./dist/samples/011_component_gallery/pages/charts.altair_selections.py
        183 ./dist/samples/011_component_gallery/pages/charts.area_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.area_chart1.py
        344 ./dist/samples/011_component_gallery/pages/charts.area_chart2.py
        170 ./dist/samples/011_component_gallery/pages/charts.area_chart_steamgraph.py
         87 ./dist/samples/011_component_gallery/pages/charts.audio-purr.py
       1773 ./dist/samples/011_component_gallery/pages/charts.audio.py
        182 ./dist/samples/011_component_gallery/pages/charts.bar_chart.py
        308 ./dist/samples/011_component_gallery/pages/charts.bar_chart1.py
        339 ./dist/samples/011_component_gallery/pages/charts.bar_chart2.py
        155 ./dist/samples/011_component_gallery/pages/charts.bar_chart_horizontal.py
        148 ./dist/samples/011_component_gallery/pages/charts.bar_chart_unstacked.py
        245 ./dist/samples/011_component_gallery/pages/charts.bokeh_chart.py
        650 ./dist/samples/011_component_gallery/pages/charts.graphviz_chart.py
        461 ./dist/samples/011_component_gallery/pages/charts.image.py
        183 ./dist/samples/011_component_gallery/pages/charts.line_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.line_chart1.py
        253 ./dist/samples/011_component_gallery/pages/charts.line_chart2.py
        217 ./dist/samples/011_component_gallery/pages/charts.map.py
        426 ./dist/samples/011_component_gallery/pages/charts.map_color.py
        375 ./dist/samples/011_component_gallery/pages/charts.plotly_chart.py
        222 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_config.py
        196 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state.py
        299 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state_selections.py
        733 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_theme.py
        759 ./dist/samples/011_component_gallery/pages/charts.plotly_custom_colors.py
       1040 ./dist/samples/011_component_gallery/pages/charts.pydeck_chart.py
        895 ./dist/samples/011_component_gallery/pages/charts.pydeck_event_state_selections.py
        199 ./dist/samples/011_component_gallery/pages/charts.pyplot.py
        186 ./dist/samples/011_component_gallery/pages/charts.scatter_chart.py
        319 ./dist/samples/011_component_gallery/pages/charts.scatter_chart1.py
        305 ./dist/samples/011_component_gallery/pages/charts.scatter_chart2.py
        529 ./dist/samples/011_component_gallery/pages/charts.vega_lite_chart.py
       1016 ./dist/samples/011_component_gallery/pages/charts.vega_lite_theme.py
        388 ./dist/samples/011_component_gallery/pages/charts.video.py
        527 ./dist/samples/011_component_gallery/pages/charts.video2.py
        887 ./dist/samples/011_component_gallery/pages/chat.echo.py
        274 ./dist/samples/011_component_gallery/pages/chat.input-file-uploader.py
        250 ./dist/samples/011_component_gallery/pages/chat.input-inline.py
        137 ./dist/samples/011_component_gallery/pages/chat.input.py
        268 ./dist/samples/011_component_gallery/pages/chat.input_audio.py
        192 ./dist/samples/011_component_gallery/pages/chat.input_set_value.py
       2645 ./dist/samples/011_component_gallery/pages/chat.llm.py
        142 ./dist/samples/011_component_gallery/pages/chat.message.py
        153 ./dist/samples/011_component_gallery/pages/chat.message1.py
       1277 ./dist/samples/011_component_gallery/pages/chat.simple.py
       1218 ./dist/samples/011_component_gallery/pages/components.cleanup_function.py
       1072 ./dist/samples/011_component_gallery/pages/components.custom_anchors.py
       1121 ./dist/samples/011_component_gallery/pages/components.interactive_svg.py
        641 ./dist/samples/011_component_gallery/pages/components.markdown_links.py
        800 ./dist/samples/011_component_gallery/pages/components.tailwind.py
       1658 ./dist/samples/011_component_gallery/pages/components.text_input.py
        651 ./dist/samples/011_component_gallery/pages/create-a-simple-grid.py
        670 ./dist/samples/011_component_gallery/pages/data.areachart_column.py
       1228 ./dist/samples/011_component_gallery/pages/data.audio_column.py
        640 ./dist/samples/011_component_gallery/pages/data.barchart_column.py
        572 ./dist/samples/011_component_gallery/pages/data.checkbox_column.py
        542 ./dist/samples/011_component_gallery/pages/data.column.py
        580 ./dist/samples/011_component_gallery/pages/data.column_config.empty.py
       3119 ./dist/samples/011_component_gallery/pages/data.column_config.py
        460 ./dist/samples/011_component_gallery/pages/data.data_editor.py
        480 ./dist/samples/011_component_gallery/pages/data.data_editor1.py
        410 ./dist/samples/011_component_gallery/pages/data.data_editor2.py
        903 ./dist/samples/011_component_gallery/pages/data.data_editor3.py
        814 ./dist/samples/011_component_gallery/pages/data.data_editor4.py
        874 ./dist/samples/011_component_gallery/pages/data.data_editor_config.py
        207 ./dist/samples/011_component_gallery/pages/data.dataframe.py
        235 ./dist/samples/011_component_gallery/pages/data.dataframe1.py
        614 ./dist/samples/011_component_gallery/pages/data.dataframe2.py
        900 ./dist/samples/011_component_gallery/pages/data.dataframe_config.py
        432 ./dist/samples/011_component_gallery/pages/data.dataframe_config_index.py
        332 ./dist/samples/011_component_gallery/pages/data.dataframe_event_state_selections.py
        643 ./dist/samples/011_component_gallery/pages/data.dataframe_programmatic_selections.py
        654 ./dist/samples/011_component_gallery/pages/data.date_column.py
        735 ./dist/samples/011_component_gallery/pages/data.datetime_column.py
       1019 ./dist/samples/011_component_gallery/pages/data.image_column.py
        239 ./dist/samples/011_component_gallery/pages/data.json.py
        485 ./dist/samples/011_component_gallery/pages/data.json_column.py
        669 ./dist/samples/011_component_gallery/pages/data.linechart_column.py
        975 ./dist/samples/011_component_gallery/pages/data.link_column.py
        668 ./dist/samples/011_component_gallery/pages/data.list_column.py
        657 ./dist/samples/011_component_gallery/pages/data.multiselect_column_1.py
        522 ./dist/samples/011_component_gallery/pages/data.multiselect_column_2.py
        513 ./dist/samples/011_component_gallery/pages/data.number_column.py
        487 ./dist/samples/011_component_gallery/pages/data.progress_column.py
        766 ./dist/samples/011_component_gallery/pages/data.selectbox_column.py
        206 ./dist/samples/011_component_gallery/pages/data.table.py
        523 ./dist/samples/011_component_gallery/pages/data.table_auto_header.py
        351 ./dist/samples/011_component_gallery/pages/data.table_confusion.py
        155 ./dist/samples/011_component_gallery/pages/data.table_hide_header_and_index.py
        444 ./dist/samples/011_component_gallery/pages/data.table_horizontal_border.py
        443 ./dist/samples/011_component_gallery/pages/data.table_markdown.py
        549 ./dist/samples/011_component_gallery/pages/data.text_column.py
        636 ./dist/samples/011_component_gallery/pages/data.time_column.py
        557 ./dist/samples/011_component_gallery/pages/data.video_column.py
       2555 ./dist/samples/011_component_gallery/pages/dataframe-row-selections.py
        528 ./dist/samples/011_component_gallery/pages/execution.dialog.py
        461 ./dist/samples/011_component_gallery/pages/execution.fragment-rerun.py
        543 ./dist/samples/011_component_gallery/pages/execution.fragment.py
        296 ./dist/samples/011_component_gallery/pages/execution.fragment_balloon.py
     411449 ./dist/samples/011_component_gallery/pages/flower.png
        377 ./dist/samples/011_component_gallery/pages/forms.form1.py
        185 ./dist/samples/011_component_gallery/pages/forms.form2.py
        606 ./dist/samples/011_component_gallery/pages/forms.form_container.py
        347 ./dist/samples/011_component_gallery/pages/forms.form_default.py
       1442 ./dist/samples/011_component_gallery/pages/forms.form_overview.py
        243 ./dist/samples/011_component_gallery/pages/forms.form_process1.py
        468 ./dist/samples/011_component_gallery/pages/forms.form_process2.py
        637 ./dist/samples/011_component_gallery/pages/forms.form_process3.py
      39446 ./dist/samples/011_component_gallery/pages/images/horizontal_blue.png
      32992 ./dist/samples/011_component_gallery/pages/images/horizontal_red.png
       4241 ./dist/samples/011_component_gallery/pages/images/icon_blue.png
       3763 ./dist/samples/011_component_gallery/pages/images/icon_red.png
        577 ./dist/samples/011_component_gallery/pages/layout.columns1.py
        267 ./dist/samples/011_component_gallery/pages/layout.columns2.py
        176 ./dist/samples/011_component_gallery/pages/layout.columns_borders.py
        203 ./dist/samples/011_component_gallery/pages/layout.columns_bottom_widgets.py
        606 ./dist/samples/011_component_gallery/pages/layout.columns_vertical_alignment.py
        284 ./dist/samples/011_component_gallery/pages/layout.container1.py
        191 ./dist/samples/011_component_gallery/pages/layout.container2.py
        169 ./dist/samples/011_component_gallery/pages/layout.container3.py
        118 ./dist/samples/011_component_gallery/pages/layout.container4.py
        152 ./dist/samples/011_component_gallery/pages/layout.container5.py
        229 ./dist/samples/011_component_gallery/pages/layout.empty.py
        586 ./dist/samples/011_component_gallery/pages/layout.empty_placeholder.py
        444 ./dist/samples/011_component_gallery/pages/layout.expander-callback.py
        216 ./dist/samples/011_component_gallery/pages/layout.expander-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.expander-lazy-load.py
        452 ./dist/samples/011_component_gallery/pages/layout.expander.py
        484 ./dist/samples/011_component_gallery/pages/layout.popover-callback.py
        234 ./dist/samples/011_component_gallery/pages/layout.popover-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.popover-lazy-load.py
        169 ./dist/samples/011_component_gallery/pages/layout.popover.py
        263 ./dist/samples/011_component_gallery/pages/layout.popover2.py
        129 ./dist/samples/011_component_gallery/pages/layout.space_horizontal.py
        220 ./dist/samples/011_component_gallery/pages/layout.space_vertical.py
        658 ./dist/samples/011_component_gallery/pages/layout.tabs-callback.py
        605 ./dist/samples/011_component_gallery/pages/layout.tabs-conditional-outside.py
        499 ./dist/samples/011_component_gallery/pages/layout.tabs-lazy-load.py
        395 ./dist/samples/011_component_gallery/pages/layout.tabs1.py
        268 ./dist/samples/011_component_gallery/pages/layout.tabs2.py
        447 ./dist/samples/011_component_gallery/pages/layout.tabs3.py
        118 ./dist/samples/011_component_gallery/pages/layouts.container4.py
        476 ./dist/samples/011_component_gallery/pages/media.logo.py
        110 ./dist/samples/011_component_gallery/pages/metric.example1.py
        178 ./dist/samples/011_component_gallery/pages/metric.example2.py
        175 ./dist/samples/011_component_gallery/pages/metric.example3.py
        277 ./dist/samples/011_component_gallery/pages/metric.example4.py
        502 ./dist/samples/011_component_gallery/pages/metric.example5.py
        102 ./dist/samples/011_component_gallery/pages/status.exception.py
        303 ./dist/samples/011_component_gallery/pages/status.progress.py
        144 ./dist/samples/011_component_gallery/pages/status.spinner.py
        250 ./dist/samples/011_component_gallery/pages/status.status.py
        355 ./dist/samples/011_component_gallery/pages/status.status1.py
        105 ./dist/samples/011_component_gallery/pages/status.toast.py
        185 ./dist/samples/011_component_gallery/pages/status.toast1.py
        262 ./dist/samples/011_component_gallery/pages/status.toast2.py
     437557 ./dist/samples/011_component_gallery/pages/tailwind_example.js
        221 ./dist/samples/011_component_gallery/pages/text.badge.py
         56 ./dist/samples/011_component_gallery/pages/text.caption.py
        566 ./dist/samples/011_component_gallery/pages/text.code-ascii.py
        114 ./dist/samples/011_component_gallery/pages/text.code.py
        329 ./dist/samples/011_component_gallery/pages/text.header.py
        170 ./dist/samples/011_component_gallery/pages/text.latex.py
        552 ./dist/samples/011_component_gallery/pages/text.markdown.py
        240 ./dist/samples/011_component_gallery/pages/text.markdown1.py
        356 ./dist/samples/011_component_gallery/pages/text.subheader.py
         94 ./dist/samples/011_component_gallery/pages/text.text.py
        444 ./dist/samples/011_component_gallery/pages/text.text_area.py
        104 ./dist/samples/011_component_gallery/pages/text.title.py
         65 ./dist/samples/011_component_gallery/pages/text.write1.py
        155 ./dist/samples/011_component_gallery/pages/text.write2.py
        332 ./dist/samples/011_component_gallery/pages/text.write3.py
        733 ./dist/samples/011_component_gallery/pages/text.write_stream.py
         64 ./dist/samples/011_component_gallery/pages/utilities.help.py
        245 ./dist/samples/011_component_gallery/pages/utilities.help1.py
        123 ./dist/samples/011_component_gallery/pages/utilities.help2.py
        111 ./dist/samples/011_component_gallery/pages/utilities.html.py
        122 ./dist/samples/011_component_gallery/pages/widget.audio_input.py
        210 ./dist/samples/011_component_gallery/pages/widget.button.py
        409 ./dist/samples/011_component_gallery/pages/widget.button_icons.py
        336 ./dist/samples/011_component_gallery/pages/widget.button_shortcut.py
        162 ./dist/samples/011_component_gallery/pages/widget.camera_input.py
         88 ./dist/samples/011_component_gallery/pages/widget.checkbox.py
        115 ./dist/samples/011_component_gallery/pages/widget.color_picker.py
        143 ./dist/samples/011_component_gallery/pages/widget.date_input.py
        341 ./dist/samples/011_component_gallery/pages/widget.date_input1.py
        127 ./dist/samples/011_component_gallery/pages/widget.date_input_empty.py
        190 ./dist/samples/011_component_gallery/pages/widget.datetime_input.py
        150 ./dist/samples/011_component_gallery/pages/widget.datetime_input_empty.py
        917 ./dist/samples/011_component_gallery/pages/widget.download_button.py
        490 ./dist/samples/011_component_gallery/pages/widget.download_button_csv.py
        247 ./dist/samples/011_component_gallery/pages/widget.download_button_deferred.py
        208 ./dist/samples/011_component_gallery/pages/widget.download_button_file.py
        338 ./dist/samples/011_component_gallery/pages/widget.download_button_text.py
        213 ./dist/samples/011_component_gallery/pages/widget.feedback_stars.py
        215 ./dist/samples/011_component_gallery/pages/widget.feedback_thumbs.py
        230 ./dist/samples/011_component_gallery/pages/widget.file_uploader.py
        202 ./dist/samples/011_component_gallery/pages/widget.file_uploader_directory.py
         88 ./dist/samples/011_component_gallery/pages/widget.link_button.py
        264 ./dist/samples/011_component_gallery/pages/widget.menu_button.py
        196 ./dist/samples/011_component_gallery/pages/widget.multiselect.py
        235 ./dist/samples/011_component_gallery/pages/widget.multiselect_accept_new_options.py
        111 ./dist/samples/011_component_gallery/pages/widget.number_input.py
        155 ./dist/samples/011_component_gallery/pages/widget.number_input_empty.py
        203 ./dist/samples/011_component_gallery/pages/widget.pills_multi.py
        409 ./dist/samples/011_component_gallery/pages/widget.pills_single.py
        351 ./dist/samples/011_component_gallery/pages/widget.radio.py
        693 ./dist/samples/011_component_gallery/pages/widget.radio1.py
        205 ./dist/samples/011_component_gallery/pages/widget.radio_empty.py
        215 ./dist/samples/011_component_gallery/pages/widget.segmented_control_multi.py
        421 ./dist/samples/011_component_gallery/pages/widget.segmented_control_single.py
        478 ./dist/samples/011_component_gallery/pages/widget.select_slider.py
        167 ./dist/samples/011_component_gallery/pages/widget.selectbox.py
        685 ./dist/samples/011_component_gallery/pages/widget.selectbox1.py
        272 ./dist/samples/011_component_gallery/pages/widget.selectbox_accept_new_options.py
        232 ./dist/samples/011_component_gallery/pages/widget.selectbox_empty.py
        657 ./dist/samples/011_component_gallery/pages/widget.slider.py
        503 ./dist/samples/011_component_gallery/pages/widget.text_area.py
        124 ./dist/samples/011_component_gallery/pages/widget.text_input.py
        884 ./dist/samples/011_component_gallery/pages/widget.text_input1.py
        132 ./dist/samples/011_component_gallery/pages/widget.time_input.py
        122 ./dist/samples/011_component_gallery/pages/widget.time_input_empty.py
        102 ./dist/samples/011_component_gallery/pages/widget.toggle.py
        144 ./dist/samples/011_component_gallery/pages/widgets.audio_input_high_rate.py
        307 ./dist/samples/011_component_gallery/pages/widgets.change_parameters.py
        558 ./dist/samples/011_component_gallery/pages/widgets.change_parameters_best.py
        468 ./dist/samples/011_component_gallery/pages/widgets.form_callbacks.py
        259 ./dist/samples/011_component_gallery/requirements.txt
         71 ./dist/samples/011_component_gallery/stlite.json
       1901 ./dist/samples/011_component_gallery/streamlit_app.py
      36065 ./dist/samples/012_hello/agri.csv.gz
       7239 ./dist/samples/012_hello/hello.py
         45 ./dist/samples/012_hello/requirements.txt
         51 ./dist/samples/012_hello/stlite.json
       1637 ./dist/samples/012_mpa-hello/0_👋_Hello.py
      36065 ./dist/samples/012_mpa-hello/agri.csv.gz
       1691 ./dist/samples/012_mpa-hello/pages/1_📈_Plotting_Demo.py
       3775 ./dist/samples/012_mpa-hello/pages/2_🌍_Mapping_Demo.py
       2522 ./dist/samples/012_mpa-hello/pages/3_📊_DataFrame_Demo.py
       1674 ./dist/samples/012_mpa-hello/pages/4_📷_Webcam_Demo.py
         59 ./dist/samples/012_mpa-hello/requirements.txt
         68 ./dist/samples/012_mpa-hello/stlite.json
        957 ./dist/samples/012_mpa-hello/utils.py
        295 ./dist/samples/012_navigation.multipage_widgets/app.py
         60 ./dist/samples/012_navigation.multipage_widgets/stlite.json
        495 ./dist/samples/012_tutorials_custom-navigation/README.md
        649 ./dist/samples/012_tutorials_custom-navigation/app.py
       1172 ./dist/samples/012_tutorials_custom-navigation/menu.py
        504 ./dist/samples/012_tutorials_custom-navigation/pages/admin.py
        497 ./dist/samples/012_tutorials_custom-navigation/pages/super-admin.py
        341 ./dist/samples/012_tutorials_custom-navigation/pages/user.py
         18 ./dist/samples/012_tutorials_custom-navigation/requirements.txt
         71 ./dist/samples/012_tutorials_custom-navigation/stlite.json
        496 ./dist/samples/012_tutorials_dynamic-navigation/README.md
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_1.py
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_2.py
      39446 ./dist/samples/012_tutorials_dynamic-navigation/images/horizontal_blue.png
       4241 ./dist/samples/012_tutorials_dynamic-navigation/images/icon_blue.png
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_2.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_2.py
        105 ./dist/samples/012_tutorials_dynamic-navigation/settings.py
         82 ./dist/samples/012_tutorials_dynamic-navigation/stlite.json
       1940 ./dist/samples/012_tutorials_dynamic-navigation/streamlit_app.py
        529 ./dist/samples/012_tutorials_fragments/README.md
          0 ./dist/samples/012_tutorials_fragments/app.py
       1294 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-multiple-container.py
       2897 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-rerun.py
       1748 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-streaming.py
         63 ./dist/samples/012_tutorials_fragments/stlite.json
        489 ./dist/samples/012_utilities.switch_page/README.md
        204 ./dist/samples/012_utilities.switch_page/pages/page_1.py
        204 ./dist/samples/012_utilities.switch_page/pages/page_2.py
         18 ./dist/samples/012_utilities.switch_page/requirements.txt
         68 ./dist/samples/012_utilities.switch_page/stlite.json
        204 ./dist/samples/012_utilities.switch_page/your_app.py
        484 ./dist/samples/012_widget.page_link/README.md
        289 ./dist/samples/012_widget.page_link/pages/page_1.py
        289 ./dist/samples/012_widget.page_link/pages/page_2.py
         18 ./dist/samples/012_widget.page_link/requirements.txt
         65 ./dist/samples/012_widget.page_link/stlite.json
        289 ./dist/samples/012_widget.page_link/your_app.py
        332 ./dist/samples/020_custom_components/home.py
        649 ./dist/samples/020_custom_components/pages/aggrid.py
       1086 ./dist/samples/020_custom_components/pages/agraph.py
       1260 ./dist/samples/020_custom_components/pages/cropper.py
        344 ./dist/samples/020_custom_components/pages/d3_demo.py
       1740 ./dist/samples/020_custom_components/pages/drawable_canvas.py
        251 ./dist/samples/020_custom_components/pages/embedcode.py
       5270 ./dist/samples/020_custom_components/pages/folium.py
       1022 ./dist/samples/020_custom_components/pages/lottie.py
        285 ./dist/samples/020_custom_components/pages/player.py
        343 ./dist/samples/020_custom_components/pages/stmol.py
        187 ./dist/samples/020_custom_components/requirements.txt
         62 ./dist/samples/020_custom_components/stlite.json
       4517 ./dist/samples/021_opencv/data/logo.png
         14 ./dist/samples/021_opencv/requirements.txt
         60 ./dist/samples/021_opencv/stlite.json
       1092 ./dist/samples/021_opencv/streamlit_app.py
         30 ./dist/samples/022_realtime_image_processing/requirements.txt
         79 ./dist/samples/022_realtime_image_processing/stlite.json
       2568 ./dist/samples/022_realtime_image_processing/streamlit_app.py
        724 ./dist/samples/030_streamlit_e2e_tests/pages/empty_labels.py
        733 ./dist/samples/030_streamlit_e2e_tests/pages/iframe_resizer.py
        876 ./dist/samples/030_streamlit_e2e_tests/pages/redisplayed_widgets.py
       1225 ./dist/samples/030_streamlit_e2e_tests/pages/session_state_frontend_sync.py
       1400 ./dist/samples/030_streamlit_e2e_tests/pages/st_columns.py
       1140 ./dist/samples/030_streamlit_e2e_tests/pages/st_disabled.py
        616 ./dist/samples/030_streamlit_e2e_tests/pages/st_disconnect.py
       1681 ./dist/samples/030_streamlit_e2e_tests/pages/st_download_button.py
       2475 ./dist/samples/030_streamlit_e2e_tests/pages/st_exception.py
        747 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_get_query_params.py
        856 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_set_query_params.py
       2405 ./dist/samples/030_streamlit_e2e_tests/pages/st_form_column_association.py
       3329 ./dist/samples/030_streamlit_e2e_tests/pages/st_image.py
       2160 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay.py
        810 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay_old_image.py
       1705 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_svg_sizing.py
        762 ./dist/samples/030_streamlit_e2e_tests/pages/st_json.py
       1484 ./dist/samples/030_streamlit_e2e_tests/pages/st_map.py
        969 ./dist/samples/030_streamlit_e2e_tests/pages/st_media_replay.py
       2141 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_chart.py
       1524 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_geo_layers.py
       1263 ./dist/samples/030_streamlit_e2e_tests/pages/st_reuse_label.py
       2551 ./dist/samples/030_streamlit_e2e_tests/pages/st_select_slider.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_session_state.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_set_page_config.py
       1087 ./dist/samples/030_streamlit_e2e_tests/pages/st_sidebar.py
       2458 ./dist/samples/030_streamlit_e2e_tests/pages/st_slider.py
       1149 ./dist/samples/030_streamlit_e2e_tests/pages/st_tabs.py
       2732 ./dist/samples/030_streamlit_e2e_tests/pages/st_tooltips.py
       1108 ./dist/samples/030_streamlit_e2e_tests/pages/websocket_reconnects.py
        730 ./dist/samples/030_streamlit_e2e_tests/pages/widget_state_heavy_usage.py
         27 ./dist/samples/030_streamlit_e2e_tests/requirements.txt
         75 ./dist/samples/030_streamlit_e2e_tests/stlite.json
        117 ./dist/samples/030_streamlit_e2e_tests/streamlit_app.py

@github-actions
Copy link
Copy Markdown
Contributor

CI Report for c38390e

Package Stats

Diffs are from 4af86d1 on main (workflow run: 24758826707)

stlite sharing editor

dist.tar: 14532 kiB (14532 kiB +0 kiB)

File Tree
.
└── dist
    ├── android-chrome-192x192.png
    ├── android-chrome-512x512.png
    ├── apple-touch-icon.png
    ├── assets
    │   ├── index-D-M48OQT.css
    │   ├── index-DPynqASi.js
    │   └── index-DPynqASi.js.map
    ├── browserconfig.xml
    ├── favicon-16x16.png
    ├── favicon-32x32.png
    ├── favicon.ico
    ├── index.html
    ├── logo192.png
    ├── logo512.png
    ├── manifest.json
    ├── mstile-150x150.png
    ├── ogp.png
    ├── robots.txt
    ├── safari-pinned-tab.svg
    └── samples
        ├── 000_intro
        │   ├── data
        │   │   └── logo.png
        │   ├── pages
        │   │   └── 🎈_subpage.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 001_template
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 010_streamlit_hello
        │   ├── README.md
        │   ├── agri.csv.gz
        │   ├── animation_demo.py
        │   ├── dataframe_demo.py
        │   ├── hello.py
        │   ├── mapping_demo.py
        │   ├── plotting_demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   ├── streamlit_app.py
        │   └── utils.py
        ├── 011_component_gallery
        │   ├── data
        │   │   └── capitals.csv
        │   ├── pages
        │   │   ├── annotations-in-altair.py
        │   │   ├── cat-purr.mp3
        │   │   ├── charts.altair_chart.py
        │   │   ├── charts.altair_custom_colors.py
        │   │   ├── charts.altair_selections.py
        │   │   ├── charts.area_chart.py
        │   │   ├── charts.area_chart1.py
        │   │   ├── charts.area_chart2.py
        │   │   ├── charts.area_chart_steamgraph.py
        │   │   ├── charts.audio-purr.py
        │   │   ├── charts.audio.py
        │   │   ├── charts.bar_chart.py
        │   │   ├── charts.bar_chart1.py
        │   │   ├── charts.bar_chart2.py
        │   │   ├── charts.bar_chart_horizontal.py
        │   │   ├── charts.bar_chart_unstacked.py
        │   │   ├── charts.bokeh_chart.py
        │   │   ├── charts.graphviz_chart.py
        │   │   ├── charts.image.py
        │   │   ├── charts.line_chart.py
        │   │   ├── charts.line_chart1.py
        │   │   ├── charts.line_chart2.py
        │   │   ├── charts.map.py
        │   │   ├── charts.map_color.py
        │   │   ├── charts.plotly_chart.py
        │   │   ├── charts.plotly_chart_config.py
        │   │   ├── charts.plotly_chart_event_state.py
        │   │   ├── charts.plotly_chart_event_state_selections.py
        │   │   ├── charts.plotly_chart_theme.py
        │   │   ├── charts.plotly_custom_colors.py
        │   │   ├── charts.pydeck_chart.py
        │   │   ├── charts.pydeck_event_state_selections.py
        │   │   ├── charts.pyplot.py
        │   │   ├── charts.scatter_chart.py
        │   │   ├── charts.scatter_chart1.py
        │   │   ├── charts.scatter_chart2.py
        │   │   ├── charts.vega_lite_chart.py
        │   │   ├── charts.vega_lite_theme.py
        │   │   ├── charts.video.py
        │   │   ├── charts.video2.py
        │   │   ├── chat.echo.py
        │   │   ├── chat.input-file-uploader.py
        │   │   ├── chat.input-inline.py
        │   │   ├── chat.input.py
        │   │   ├── chat.input_audio.py
        │   │   ├── chat.input_set_value.py
        │   │   ├── chat.llm.py
        │   │   ├── chat.message.py
        │   │   ├── chat.message1.py
        │   │   ├── chat.simple.py
        │   │   ├── components.cleanup_function.py
        │   │   ├── components.custom_anchors.py
        │   │   ├── components.interactive_svg.py
        │   │   ├── components.markdown_links.py
        │   │   ├── components.tailwind.py
        │   │   ├── components.text_input.py
        │   │   ├── create-a-simple-grid.py
        │   │   ├── data.areachart_column.py
        │   │   ├── data.audio_column.py
        │   │   ├── data.barchart_column.py
        │   │   ├── data.checkbox_column.py
        │   │   ├── data.column.py
        │   │   ├── data.column_config.empty.py
        │   │   ├── data.column_config.py
        │   │   ├── data.data_editor.py
        │   │   ├── data.data_editor1.py
        │   │   ├── data.data_editor2.py
        │   │   ├── data.data_editor3.py
        │   │   ├── data.data_editor4.py
        │   │   ├── data.data_editor_config.py
        │   │   ├── data.dataframe.py
        │   │   ├── data.dataframe1.py
        │   │   ├── data.dataframe2.py
        │   │   ├── data.dataframe_config.py
        │   │   ├── data.dataframe_config_index.py
        │   │   ├── data.dataframe_event_state_selections.py
        │   │   ├── data.dataframe_programmatic_selections.py
        │   │   ├── data.date_column.py
        │   │   ├── data.datetime_column.py
        │   │   ├── data.image_column.py
        │   │   ├── data.json.py
        │   │   ├── data.json_column.py
        │   │   ├── data.linechart_column.py
        │   │   ├── data.link_column.py
        │   │   ├── data.list_column.py
        │   │   ├── data.multiselect_column_1.py
        │   │   ├── data.multiselect_column_2.py
        │   │   ├── data.number_column.py
        │   │   ├── data.progress_column.py
        │   │   ├── data.selectbox_column.py
        │   │   ├── data.table.py
        │   │   ├── data.table_auto_header.py
        │   │   ├── data.table_confusion.py
        │   │   ├── data.table_hide_header_and_index.py
        │   │   ├── data.table_horizontal_border.py
        │   │   ├── data.table_markdown.py
        │   │   ├── data.text_column.py
        │   │   ├── data.time_column.py
        │   │   ├── data.video_column.py
        │   │   ├── dataframe-row-selections.py
        │   │   ├── execution.dialog.py
        │   │   ├── execution.fragment-rerun.py
        │   │   ├── execution.fragment.py
        │   │   ├── execution.fragment_balloon.py
        │   │   ├── flower.png
        │   │   ├── forms.form1.py
        │   │   ├── forms.form2.py
        │   │   ├── forms.form_container.py
        │   │   ├── forms.form_default.py
        │   │   ├── forms.form_overview.py
        │   │   ├── forms.form_process1.py
        │   │   ├── forms.form_process2.py
        │   │   ├── forms.form_process3.py
        │   │   ├── images
        │   │   │   ├── horizontal_blue.png
        │   │   │   ├── horizontal_red.png
        │   │   │   ├── icon_blue.png
        │   │   │   └── icon_red.png
        │   │   ├── layout.columns1.py
        │   │   ├── layout.columns2.py
        │   │   ├── layout.columns_borders.py
        │   │   ├── layout.columns_bottom_widgets.py
        │   │   ├── layout.columns_vertical_alignment.py
        │   │   ├── layout.container1.py
        │   │   ├── layout.container2.py
        │   │   ├── layout.container3.py
        │   │   ├── layout.container4.py
        │   │   ├── layout.container5.py
        │   │   ├── layout.empty.py
        │   │   ├── layout.empty_placeholder.py
        │   │   ├── layout.expander-callback.py
        │   │   ├── layout.expander-conditional-outside.py
        │   │   ├── layout.expander-lazy-load.py
        │   │   ├── layout.expander.py
        │   │   ├── layout.popover-callback.py
        │   │   ├── layout.popover-conditional-outside.py
        │   │   ├── layout.popover-lazy-load.py
        │   │   ├── layout.popover.py
        │   │   ├── layout.popover2.py
        │   │   ├── layout.space_horizontal.py
        │   │   ├── layout.space_vertical.py
        │   │   ├── layout.tabs-callback.py
        │   │   ├── layout.tabs-conditional-outside.py
        │   │   ├── layout.tabs-lazy-load.py
        │   │   ├── layout.tabs1.py
        │   │   ├── layout.tabs2.py
        │   │   ├── layout.tabs3.py
        │   │   ├── layouts.container4.py
        │   │   ├── media.logo.py
        │   │   ├── metric.example1.py
        │   │   ├── metric.example2.py
        │   │   ├── metric.example3.py
        │   │   ├── metric.example4.py
        │   │   ├── metric.example5.py
        │   │   ├── status.exception.py
        │   │   ├── status.progress.py
        │   │   ├── status.spinner.py
        │   │   ├── status.status.py
        │   │   ├── status.status1.py
        │   │   ├── status.toast.py
        │   │   ├── status.toast1.py
        │   │   ├── status.toast2.py
        │   │   ├── tailwind_example.js
        │   │   ├── text.badge.py
        │   │   ├── text.caption.py
        │   │   ├── text.code-ascii.py
        │   │   ├── text.code.py
        │   │   ├── text.header.py
        │   │   ├── text.latex.py
        │   │   ├── text.markdown.py
        │   │   ├── text.markdown1.py
        │   │   ├── text.subheader.py
        │   │   ├── text.text.py
        │   │   ├── text.text_area.py
        │   │   ├── text.title.py
        │   │   ├── text.write1.py
        │   │   ├── text.write2.py
        │   │   ├── text.write3.py
        │   │   ├── text.write_stream.py
        │   │   ├── utilities.help.py
        │   │   ├── utilities.help1.py
        │   │   ├── utilities.help2.py
        │   │   ├── utilities.html.py
        │   │   ├── widget.audio_input.py
        │   │   ├── widget.button.py
        │   │   ├── widget.button_icons.py
        │   │   ├── widget.button_shortcut.py
        │   │   ├── widget.camera_input.py
        │   │   ├── widget.checkbox.py
        │   │   ├── widget.color_picker.py
        │   │   ├── widget.date_input.py
        │   │   ├── widget.date_input1.py
        │   │   ├── widget.date_input_empty.py
        │   │   ├── widget.datetime_input.py
        │   │   ├── widget.datetime_input_empty.py
        │   │   ├── widget.download_button.py
        │   │   ├── widget.download_button_csv.py
        │   │   ├── widget.download_button_deferred.py
        │   │   ├── widget.download_button_file.py
        │   │   ├── widget.download_button_text.py
        │   │   ├── widget.feedback_stars.py
        │   │   ├── widget.feedback_thumbs.py
        │   │   ├── widget.file_uploader.py
        │   │   ├── widget.file_uploader_directory.py
        │   │   ├── widget.link_button.py
        │   │   ├── widget.menu_button.py
        │   │   ├── widget.multiselect.py
        │   │   ├── widget.multiselect_accept_new_options.py
        │   │   ├── widget.number_input.py
        │   │   ├── widget.number_input_empty.py
        │   │   ├── widget.pills_multi.py
        │   │   ├── widget.pills_single.py
        │   │   ├── widget.radio.py
        │   │   ├── widget.radio1.py
        │   │   ├── widget.radio_empty.py
        │   │   ├── widget.segmented_control_multi.py
        │   │   ├── widget.segmented_control_single.py
        │   │   ├── widget.select_slider.py
        │   │   ├── widget.selectbox.py
        │   │   ├── widget.selectbox1.py
        │   │   ├── widget.selectbox_accept_new_options.py
        │   │   ├── widget.selectbox_empty.py
        │   │   ├── widget.slider.py
        │   │   ├── widget.text_area.py
        │   │   ├── widget.text_input.py
        │   │   ├── widget.text_input1.py
        │   │   ├── widget.time_input.py
        │   │   ├── widget.time_input_empty.py
        │   │   ├── widget.toggle.py
        │   │   ├── widgets.audio_input_high_rate.py
        │   │   ├── widgets.change_parameters.py
        │   │   ├── widgets.change_parameters_best.py
        │   │   └── widgets.form_callbacks.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_hello
        │   ├── agri.csv.gz
        │   ├── hello.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_mpa-hello
        │   ├── 0_👋_Hello.py
        │   ├── agri.csv.gz
        │   ├── pages
        │   │   ├── 1_📈_Plotting_Demo.py
        │   │   ├── 2_🌍_Mapping_Demo.py
        │   │   ├── 3_📊_DataFrame_Demo.py
        │   │   └── 4_📷_Webcam_Demo.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── utils.py
        ├── 012_navigation.multipage_widgets
        │   ├── app.py
        │   └── stlite.json
        ├── 012_tutorials_custom-navigation
        │   ├── README.md
        │   ├── app.py
        │   ├── menu.py
        │   ├── pages
        │   │   ├── admin.py
        │   │   ├── super-admin.py
        │   │   └── user.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 012_tutorials_dynamic-navigation
        │   ├── README.md
        │   ├── admin
        │   │   ├── admin_1.py
        │   │   └── admin_2.py
        │   ├── images
        │   │   ├── horizontal_blue.png
        │   │   └── icon_blue.png
        │   ├── request
        │   │   ├── request_1.py
        │   │   └── request_2.py
        │   ├── respond
        │   │   ├── respond_1.py
        │   │   └── respond_2.py
        │   ├── settings.py
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 012_tutorials_fragments
        │   ├── README.md
        │   ├── app.py
        │   ├── pages
        │   │   ├── tutorial-fragment-multiple-container.py
        │   │   ├── tutorial-fragment-rerun.py
        │   │   └── tutorial-fragment-streaming.py
        │   └── stlite.json
        ├── 012_utilities.switch_page
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 012_widget.page_link
        │   ├── README.md
        │   ├── pages
        │   │   ├── page_1.py
        │   │   └── page_2.py
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── your_app.py
        ├── 020_custom_components
        │   ├── home.py
        │   ├── pages
        │   │   ├── aggrid.py
        │   │   ├── agraph.py
        │   │   ├── cropper.py
        │   │   ├── d3_demo.py
        │   │   ├── drawable_canvas.py
        │   │   ├── embedcode.py
        │   │   ├── folium.py
        │   │   ├── lottie.py
        │   │   ├── player.py
        │   │   └── stmol.py
        │   ├── requirements.txt
        │   └── stlite.json
        ├── 021_opencv
        │   ├── data
        │   │   └── logo.png
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        ├── 022_realtime_image_processing
        │   ├── requirements.txt
        │   ├── stlite.json
        │   └── streamlit_app.py
        └── 030_streamlit_e2e_tests
            ├── pages
            │   ├── empty_labels.py
            │   ├── iframe_resizer.py
            │   ├── redisplayed_widgets.py
            │   ├── session_state_frontend_sync.py
            │   ├── st_columns.py
            │   ├── st_disabled.py
            │   ├── st_disconnect.py
            │   ├── st_download_button.py
            │   ├── st_exception.py
            │   ├── st_experimental_get_query_params.py
            │   ├── st_experimental_set_query_params.py
            │   ├── st_form_column_association.py
            │   ├── st_image.py
            │   ├── st_image_replay.py
            │   ├── st_image_replay_old_image.py
            │   ├── st_image_svg_sizing.py
            │   ├── st_json.py
            │   ├── st_map.py
            │   ├── st_media_replay.py
            │   ├── st_pydeck_chart.py
            │   ├── st_pydeck_geo_layers.py
            │   ├── st_reuse_label.py
            │   ├── st_select_slider.py
            │   ├── st_session_state.py
            │   ├── st_set_page_config.py
            │   ├── st_sidebar.py
            │   ├── st_slider.py
            │   ├── st_tabs.py
            │   ├── st_tooltips.py
            │   ├── websocket_reconnects.py
            │   └── widget_state_heavy_usage.py
            ├── requirements.txt
            ├── stlite.json
            └── streamlit_app.py

37 directories, 378 files
File Sizes
       5946 ./dist/android-chrome-192x192.png
      18336 ./dist/android-chrome-512x512.png
       5553 ./dist/apple-touch-icon.png
      16976 ./dist/assets/index-D-M48OQT.css
-    382845 ./dist/assets/index-D-glotWX.js
-  12530257 ./dist/assets/index-D-glotWX.js.map
+    382941 ./dist/assets/index-DPynqASi.js
+  12530361 ./dist/assets/index-DPynqASi.js.map
        246 ./dist/browserconfig.xml
       1028 ./dist/favicon-16x16.png
       1751 ./dist/favicon-32x32.png
      15086 ./dist/favicon.ico
       2263 ./dist/index.html
       4517 ./dist/logo192.png
      12188 ./dist/logo512.png
        714 ./dist/manifest.json
       3911 ./dist/mstile-150x150.png
      43307 ./dist/ogp.png
         67 ./dist/robots.txt
       8806 ./dist/safari-pinned-tab.svg
       4517 ./dist/samples/000_intro/data/logo.png
        311 ./dist/samples/000_intro/pages/🎈_subpage.py
         66 ./dist/samples/000_intro/stlite.json
       3392 ./dist/samples/000_intro/streamlit_app.py
         68 ./dist/samples/001_template/stlite.json
         49 ./dist/samples/001_template/streamlit_app.py
       1536 ./dist/samples/010_streamlit_hello/README.md
      36065 ./dist/samples/010_streamlit_hello/agri.csv.gz
       3290 ./dist/samples/010_streamlit_hello/animation_demo.py
       2529 ./dist/samples/010_streamlit_hello/dataframe_demo.py
       1491 ./dist/samples/010_streamlit_hello/hello.py
       3744 ./dist/samples/010_streamlit_hello/mapping_demo.py
       1772 ./dist/samples/010_streamlit_hello/plotting_demo.py
          7 ./dist/samples/010_streamlit_hello/requirements.txt
         69 ./dist/samples/010_streamlit_hello/stlite.json
       1820 ./dist/samples/010_streamlit_hello/streamlit_app.py
       1053 ./dist/samples/010_streamlit_hello/utils.py
       2530 ./dist/samples/011_component_gallery/data/capitals.csv
       1776 ./dist/samples/011_component_gallery/pages/annotations-in-altair.py
     184083 ./dist/samples/011_component_gallery/pages/cat-purr.mp3
        828 ./dist/samples/011_component_gallery/pages/charts.altair_chart.py
       2169 ./dist/samples/011_component_gallery/pages/charts.altair_custom_colors.py
        704 ./dist/samples/011_component_gallery/pages/charts.altair_selections.py
        183 ./dist/samples/011_component_gallery/pages/charts.area_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.area_chart1.py
        344 ./dist/samples/011_component_gallery/pages/charts.area_chart2.py
        170 ./dist/samples/011_component_gallery/pages/charts.area_chart_steamgraph.py
         87 ./dist/samples/011_component_gallery/pages/charts.audio-purr.py
       1773 ./dist/samples/011_component_gallery/pages/charts.audio.py
        182 ./dist/samples/011_component_gallery/pages/charts.bar_chart.py
        308 ./dist/samples/011_component_gallery/pages/charts.bar_chart1.py
        339 ./dist/samples/011_component_gallery/pages/charts.bar_chart2.py
        155 ./dist/samples/011_component_gallery/pages/charts.bar_chart_horizontal.py
        148 ./dist/samples/011_component_gallery/pages/charts.bar_chart_unstacked.py
        245 ./dist/samples/011_component_gallery/pages/charts.bokeh_chart.py
        650 ./dist/samples/011_component_gallery/pages/charts.graphviz_chart.py
        461 ./dist/samples/011_component_gallery/pages/charts.image.py
        183 ./dist/samples/011_component_gallery/pages/charts.line_chart.py
        309 ./dist/samples/011_component_gallery/pages/charts.line_chart1.py
        253 ./dist/samples/011_component_gallery/pages/charts.line_chart2.py
        217 ./dist/samples/011_component_gallery/pages/charts.map.py
        426 ./dist/samples/011_component_gallery/pages/charts.map_color.py
        375 ./dist/samples/011_component_gallery/pages/charts.plotly_chart.py
        222 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_config.py
        196 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state.py
        299 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_event_state_selections.py
        733 ./dist/samples/011_component_gallery/pages/charts.plotly_chart_theme.py
        759 ./dist/samples/011_component_gallery/pages/charts.plotly_custom_colors.py
       1040 ./dist/samples/011_component_gallery/pages/charts.pydeck_chart.py
        895 ./dist/samples/011_component_gallery/pages/charts.pydeck_event_state_selections.py
        199 ./dist/samples/011_component_gallery/pages/charts.pyplot.py
        186 ./dist/samples/011_component_gallery/pages/charts.scatter_chart.py
        319 ./dist/samples/011_component_gallery/pages/charts.scatter_chart1.py
        305 ./dist/samples/011_component_gallery/pages/charts.scatter_chart2.py
        529 ./dist/samples/011_component_gallery/pages/charts.vega_lite_chart.py
       1016 ./dist/samples/011_component_gallery/pages/charts.vega_lite_theme.py
        388 ./dist/samples/011_component_gallery/pages/charts.video.py
        527 ./dist/samples/011_component_gallery/pages/charts.video2.py
        887 ./dist/samples/011_component_gallery/pages/chat.echo.py
        274 ./dist/samples/011_component_gallery/pages/chat.input-file-uploader.py
        250 ./dist/samples/011_component_gallery/pages/chat.input-inline.py
        137 ./dist/samples/011_component_gallery/pages/chat.input.py
        268 ./dist/samples/011_component_gallery/pages/chat.input_audio.py
        192 ./dist/samples/011_component_gallery/pages/chat.input_set_value.py
       2645 ./dist/samples/011_component_gallery/pages/chat.llm.py
        142 ./dist/samples/011_component_gallery/pages/chat.message.py
        153 ./dist/samples/011_component_gallery/pages/chat.message1.py
       1277 ./dist/samples/011_component_gallery/pages/chat.simple.py
       1218 ./dist/samples/011_component_gallery/pages/components.cleanup_function.py
       1072 ./dist/samples/011_component_gallery/pages/components.custom_anchors.py
       1121 ./dist/samples/011_component_gallery/pages/components.interactive_svg.py
        641 ./dist/samples/011_component_gallery/pages/components.markdown_links.py
        800 ./dist/samples/011_component_gallery/pages/components.tailwind.py
       1658 ./dist/samples/011_component_gallery/pages/components.text_input.py
        651 ./dist/samples/011_component_gallery/pages/create-a-simple-grid.py
        670 ./dist/samples/011_component_gallery/pages/data.areachart_column.py
       1228 ./dist/samples/011_component_gallery/pages/data.audio_column.py
        640 ./dist/samples/011_component_gallery/pages/data.barchart_column.py
        572 ./dist/samples/011_component_gallery/pages/data.checkbox_column.py
        542 ./dist/samples/011_component_gallery/pages/data.column.py
        580 ./dist/samples/011_component_gallery/pages/data.column_config.empty.py
       3119 ./dist/samples/011_component_gallery/pages/data.column_config.py
        460 ./dist/samples/011_component_gallery/pages/data.data_editor.py
        480 ./dist/samples/011_component_gallery/pages/data.data_editor1.py
        410 ./dist/samples/011_component_gallery/pages/data.data_editor2.py
        903 ./dist/samples/011_component_gallery/pages/data.data_editor3.py
        814 ./dist/samples/011_component_gallery/pages/data.data_editor4.py
        874 ./dist/samples/011_component_gallery/pages/data.data_editor_config.py
        207 ./dist/samples/011_component_gallery/pages/data.dataframe.py
        235 ./dist/samples/011_component_gallery/pages/data.dataframe1.py
        614 ./dist/samples/011_component_gallery/pages/data.dataframe2.py
        900 ./dist/samples/011_component_gallery/pages/data.dataframe_config.py
        432 ./dist/samples/011_component_gallery/pages/data.dataframe_config_index.py
        332 ./dist/samples/011_component_gallery/pages/data.dataframe_event_state_selections.py
        643 ./dist/samples/011_component_gallery/pages/data.dataframe_programmatic_selections.py
        654 ./dist/samples/011_component_gallery/pages/data.date_column.py
        735 ./dist/samples/011_component_gallery/pages/data.datetime_column.py
       1019 ./dist/samples/011_component_gallery/pages/data.image_column.py
        239 ./dist/samples/011_component_gallery/pages/data.json.py
        485 ./dist/samples/011_component_gallery/pages/data.json_column.py
        669 ./dist/samples/011_component_gallery/pages/data.linechart_column.py
        975 ./dist/samples/011_component_gallery/pages/data.link_column.py
        668 ./dist/samples/011_component_gallery/pages/data.list_column.py
        657 ./dist/samples/011_component_gallery/pages/data.multiselect_column_1.py
        522 ./dist/samples/011_component_gallery/pages/data.multiselect_column_2.py
        513 ./dist/samples/011_component_gallery/pages/data.number_column.py
        487 ./dist/samples/011_component_gallery/pages/data.progress_column.py
        766 ./dist/samples/011_component_gallery/pages/data.selectbox_column.py
        206 ./dist/samples/011_component_gallery/pages/data.table.py
        523 ./dist/samples/011_component_gallery/pages/data.table_auto_header.py
        351 ./dist/samples/011_component_gallery/pages/data.table_confusion.py
        155 ./dist/samples/011_component_gallery/pages/data.table_hide_header_and_index.py
        444 ./dist/samples/011_component_gallery/pages/data.table_horizontal_border.py
        443 ./dist/samples/011_component_gallery/pages/data.table_markdown.py
        549 ./dist/samples/011_component_gallery/pages/data.text_column.py
        636 ./dist/samples/011_component_gallery/pages/data.time_column.py
        557 ./dist/samples/011_component_gallery/pages/data.video_column.py
       2555 ./dist/samples/011_component_gallery/pages/dataframe-row-selections.py
        528 ./dist/samples/011_component_gallery/pages/execution.dialog.py
        461 ./dist/samples/011_component_gallery/pages/execution.fragment-rerun.py
        543 ./dist/samples/011_component_gallery/pages/execution.fragment.py
        296 ./dist/samples/011_component_gallery/pages/execution.fragment_balloon.py
     411449 ./dist/samples/011_component_gallery/pages/flower.png
        377 ./dist/samples/011_component_gallery/pages/forms.form1.py
        185 ./dist/samples/011_component_gallery/pages/forms.form2.py
        606 ./dist/samples/011_component_gallery/pages/forms.form_container.py
        347 ./dist/samples/011_component_gallery/pages/forms.form_default.py
       1442 ./dist/samples/011_component_gallery/pages/forms.form_overview.py
        243 ./dist/samples/011_component_gallery/pages/forms.form_process1.py
        468 ./dist/samples/011_component_gallery/pages/forms.form_process2.py
        637 ./dist/samples/011_component_gallery/pages/forms.form_process3.py
      39446 ./dist/samples/011_component_gallery/pages/images/horizontal_blue.png
      32992 ./dist/samples/011_component_gallery/pages/images/horizontal_red.png
       4241 ./dist/samples/011_component_gallery/pages/images/icon_blue.png
       3763 ./dist/samples/011_component_gallery/pages/images/icon_red.png
        577 ./dist/samples/011_component_gallery/pages/layout.columns1.py
        267 ./dist/samples/011_component_gallery/pages/layout.columns2.py
        176 ./dist/samples/011_component_gallery/pages/layout.columns_borders.py
        203 ./dist/samples/011_component_gallery/pages/layout.columns_bottom_widgets.py
        606 ./dist/samples/011_component_gallery/pages/layout.columns_vertical_alignment.py
        284 ./dist/samples/011_component_gallery/pages/layout.container1.py
        191 ./dist/samples/011_component_gallery/pages/layout.container2.py
        169 ./dist/samples/011_component_gallery/pages/layout.container3.py
        118 ./dist/samples/011_component_gallery/pages/layout.container4.py
        152 ./dist/samples/011_component_gallery/pages/layout.container5.py
        229 ./dist/samples/011_component_gallery/pages/layout.empty.py
        586 ./dist/samples/011_component_gallery/pages/layout.empty_placeholder.py
        444 ./dist/samples/011_component_gallery/pages/layout.expander-callback.py
        216 ./dist/samples/011_component_gallery/pages/layout.expander-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.expander-lazy-load.py
        452 ./dist/samples/011_component_gallery/pages/layout.expander.py
        484 ./dist/samples/011_component_gallery/pages/layout.popover-callback.py
        234 ./dist/samples/011_component_gallery/pages/layout.popover-conditional-outside.py
        237 ./dist/samples/011_component_gallery/pages/layout.popover-lazy-load.py
        169 ./dist/samples/011_component_gallery/pages/layout.popover.py
        263 ./dist/samples/011_component_gallery/pages/layout.popover2.py
        129 ./dist/samples/011_component_gallery/pages/layout.space_horizontal.py
        220 ./dist/samples/011_component_gallery/pages/layout.space_vertical.py
        658 ./dist/samples/011_component_gallery/pages/layout.tabs-callback.py
        605 ./dist/samples/011_component_gallery/pages/layout.tabs-conditional-outside.py
        499 ./dist/samples/011_component_gallery/pages/layout.tabs-lazy-load.py
        395 ./dist/samples/011_component_gallery/pages/layout.tabs1.py
        268 ./dist/samples/011_component_gallery/pages/layout.tabs2.py
        447 ./dist/samples/011_component_gallery/pages/layout.tabs3.py
        118 ./dist/samples/011_component_gallery/pages/layouts.container4.py
        476 ./dist/samples/011_component_gallery/pages/media.logo.py
        110 ./dist/samples/011_component_gallery/pages/metric.example1.py
        178 ./dist/samples/011_component_gallery/pages/metric.example2.py
        175 ./dist/samples/011_component_gallery/pages/metric.example3.py
        277 ./dist/samples/011_component_gallery/pages/metric.example4.py
        502 ./dist/samples/011_component_gallery/pages/metric.example5.py
        102 ./dist/samples/011_component_gallery/pages/status.exception.py
        303 ./dist/samples/011_component_gallery/pages/status.progress.py
        144 ./dist/samples/011_component_gallery/pages/status.spinner.py
        250 ./dist/samples/011_component_gallery/pages/status.status.py
        355 ./dist/samples/011_component_gallery/pages/status.status1.py
        105 ./dist/samples/011_component_gallery/pages/status.toast.py
        185 ./dist/samples/011_component_gallery/pages/status.toast1.py
        262 ./dist/samples/011_component_gallery/pages/status.toast2.py
     437557 ./dist/samples/011_component_gallery/pages/tailwind_example.js
        221 ./dist/samples/011_component_gallery/pages/text.badge.py
         56 ./dist/samples/011_component_gallery/pages/text.caption.py
        566 ./dist/samples/011_component_gallery/pages/text.code-ascii.py
        114 ./dist/samples/011_component_gallery/pages/text.code.py
        329 ./dist/samples/011_component_gallery/pages/text.header.py
        170 ./dist/samples/011_component_gallery/pages/text.latex.py
        552 ./dist/samples/011_component_gallery/pages/text.markdown.py
        240 ./dist/samples/011_component_gallery/pages/text.markdown1.py
        356 ./dist/samples/011_component_gallery/pages/text.subheader.py
         94 ./dist/samples/011_component_gallery/pages/text.text.py
        444 ./dist/samples/011_component_gallery/pages/text.text_area.py
        104 ./dist/samples/011_component_gallery/pages/text.title.py
         65 ./dist/samples/011_component_gallery/pages/text.write1.py
        155 ./dist/samples/011_component_gallery/pages/text.write2.py
        332 ./dist/samples/011_component_gallery/pages/text.write3.py
        733 ./dist/samples/011_component_gallery/pages/text.write_stream.py
         64 ./dist/samples/011_component_gallery/pages/utilities.help.py
        245 ./dist/samples/011_component_gallery/pages/utilities.help1.py
        123 ./dist/samples/011_component_gallery/pages/utilities.help2.py
        111 ./dist/samples/011_component_gallery/pages/utilities.html.py
        122 ./dist/samples/011_component_gallery/pages/widget.audio_input.py
        210 ./dist/samples/011_component_gallery/pages/widget.button.py
        409 ./dist/samples/011_component_gallery/pages/widget.button_icons.py
        336 ./dist/samples/011_component_gallery/pages/widget.button_shortcut.py
        162 ./dist/samples/011_component_gallery/pages/widget.camera_input.py
         88 ./dist/samples/011_component_gallery/pages/widget.checkbox.py
        115 ./dist/samples/011_component_gallery/pages/widget.color_picker.py
        143 ./dist/samples/011_component_gallery/pages/widget.date_input.py
        341 ./dist/samples/011_component_gallery/pages/widget.date_input1.py
        127 ./dist/samples/011_component_gallery/pages/widget.date_input_empty.py
        190 ./dist/samples/011_component_gallery/pages/widget.datetime_input.py
        150 ./dist/samples/011_component_gallery/pages/widget.datetime_input_empty.py
        917 ./dist/samples/011_component_gallery/pages/widget.download_button.py
        490 ./dist/samples/011_component_gallery/pages/widget.download_button_csv.py
        247 ./dist/samples/011_component_gallery/pages/widget.download_button_deferred.py
        208 ./dist/samples/011_component_gallery/pages/widget.download_button_file.py
        338 ./dist/samples/011_component_gallery/pages/widget.download_button_text.py
        213 ./dist/samples/011_component_gallery/pages/widget.feedback_stars.py
        215 ./dist/samples/011_component_gallery/pages/widget.feedback_thumbs.py
        230 ./dist/samples/011_component_gallery/pages/widget.file_uploader.py
        202 ./dist/samples/011_component_gallery/pages/widget.file_uploader_directory.py
         88 ./dist/samples/011_component_gallery/pages/widget.link_button.py
        264 ./dist/samples/011_component_gallery/pages/widget.menu_button.py
        196 ./dist/samples/011_component_gallery/pages/widget.multiselect.py
        235 ./dist/samples/011_component_gallery/pages/widget.multiselect_accept_new_options.py
        111 ./dist/samples/011_component_gallery/pages/widget.number_input.py
        155 ./dist/samples/011_component_gallery/pages/widget.number_input_empty.py
        203 ./dist/samples/011_component_gallery/pages/widget.pills_multi.py
        409 ./dist/samples/011_component_gallery/pages/widget.pills_single.py
        351 ./dist/samples/011_component_gallery/pages/widget.radio.py
        693 ./dist/samples/011_component_gallery/pages/widget.radio1.py
        205 ./dist/samples/011_component_gallery/pages/widget.radio_empty.py
        215 ./dist/samples/011_component_gallery/pages/widget.segmented_control_multi.py
        421 ./dist/samples/011_component_gallery/pages/widget.segmented_control_single.py
        478 ./dist/samples/011_component_gallery/pages/widget.select_slider.py
        167 ./dist/samples/011_component_gallery/pages/widget.selectbox.py
        685 ./dist/samples/011_component_gallery/pages/widget.selectbox1.py
        272 ./dist/samples/011_component_gallery/pages/widget.selectbox_accept_new_options.py
        232 ./dist/samples/011_component_gallery/pages/widget.selectbox_empty.py
        657 ./dist/samples/011_component_gallery/pages/widget.slider.py
        503 ./dist/samples/011_component_gallery/pages/widget.text_area.py
        124 ./dist/samples/011_component_gallery/pages/widget.text_input.py
        884 ./dist/samples/011_component_gallery/pages/widget.text_input1.py
        132 ./dist/samples/011_component_gallery/pages/widget.time_input.py
        122 ./dist/samples/011_component_gallery/pages/widget.time_input_empty.py
        102 ./dist/samples/011_component_gallery/pages/widget.toggle.py
        144 ./dist/samples/011_component_gallery/pages/widgets.audio_input_high_rate.py
        307 ./dist/samples/011_component_gallery/pages/widgets.change_parameters.py
        558 ./dist/samples/011_component_gallery/pages/widgets.change_parameters_best.py
        468 ./dist/samples/011_component_gallery/pages/widgets.form_callbacks.py
        259 ./dist/samples/011_component_gallery/requirements.txt
         71 ./dist/samples/011_component_gallery/stlite.json
       1901 ./dist/samples/011_component_gallery/streamlit_app.py
      36065 ./dist/samples/012_hello/agri.csv.gz
       7239 ./dist/samples/012_hello/hello.py
         45 ./dist/samples/012_hello/requirements.txt
         51 ./dist/samples/012_hello/stlite.json
       1637 ./dist/samples/012_mpa-hello/0_👋_Hello.py
      36065 ./dist/samples/012_mpa-hello/agri.csv.gz
       1691 ./dist/samples/012_mpa-hello/pages/1_📈_Plotting_Demo.py
       3775 ./dist/samples/012_mpa-hello/pages/2_🌍_Mapping_Demo.py
       2522 ./dist/samples/012_mpa-hello/pages/3_📊_DataFrame_Demo.py
       1674 ./dist/samples/012_mpa-hello/pages/4_📷_Webcam_Demo.py
         59 ./dist/samples/012_mpa-hello/requirements.txt
         68 ./dist/samples/012_mpa-hello/stlite.json
        957 ./dist/samples/012_mpa-hello/utils.py
        295 ./dist/samples/012_navigation.multipage_widgets/app.py
         60 ./dist/samples/012_navigation.multipage_widgets/stlite.json
        495 ./dist/samples/012_tutorials_custom-navigation/README.md
        649 ./dist/samples/012_tutorials_custom-navigation/app.py
       1172 ./dist/samples/012_tutorials_custom-navigation/menu.py
        504 ./dist/samples/012_tutorials_custom-navigation/pages/admin.py
        497 ./dist/samples/012_tutorials_custom-navigation/pages/super-admin.py
        341 ./dist/samples/012_tutorials_custom-navigation/pages/user.py
         18 ./dist/samples/012_tutorials_custom-navigation/requirements.txt
         71 ./dist/samples/012_tutorials_custom-navigation/stlite.json
        496 ./dist/samples/012_tutorials_dynamic-navigation/README.md
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_1.py
        104 ./dist/samples/012_tutorials_dynamic-navigation/admin/admin_2.py
      39446 ./dist/samples/012_tutorials_dynamic-navigation/images/horizontal_blue.png
       4241 ./dist/samples/012_tutorials_dynamic-navigation/images/icon_blue.png
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/request/request_2.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_1.py
        106 ./dist/samples/012_tutorials_dynamic-navigation/respond/respond_2.py
        105 ./dist/samples/012_tutorials_dynamic-navigation/settings.py
         82 ./dist/samples/012_tutorials_dynamic-navigation/stlite.json
       1940 ./dist/samples/012_tutorials_dynamic-navigation/streamlit_app.py
        529 ./dist/samples/012_tutorials_fragments/README.md
          0 ./dist/samples/012_tutorials_fragments/app.py
       1294 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-multiple-container.py
       2897 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-rerun.py
       1748 ./dist/samples/012_tutorials_fragments/pages/tutorial-fragment-streaming.py
         63 ./dist/samples/012_tutorials_fragments/stlite.json
        489 ./dist/samples/012_utilities.switch_page/README.md
        204 ./dist/samples/012_utilities.switch_page/pages/page_1.py
        204 ./dist/samples/012_utilities.switch_page/pages/page_2.py
         18 ./dist/samples/012_utilities.switch_page/requirements.txt
         68 ./dist/samples/012_utilities.switch_page/stlite.json
        204 ./dist/samples/012_utilities.switch_page/your_app.py
        484 ./dist/samples/012_widget.page_link/README.md
        289 ./dist/samples/012_widget.page_link/pages/page_1.py
        289 ./dist/samples/012_widget.page_link/pages/page_2.py
         18 ./dist/samples/012_widget.page_link/requirements.txt
         65 ./dist/samples/012_widget.page_link/stlite.json
        289 ./dist/samples/012_widget.page_link/your_app.py
        332 ./dist/samples/020_custom_components/home.py
        649 ./dist/samples/020_custom_components/pages/aggrid.py
       1086 ./dist/samples/020_custom_components/pages/agraph.py
       1260 ./dist/samples/020_custom_components/pages/cropper.py
        344 ./dist/samples/020_custom_components/pages/d3_demo.py
       1740 ./dist/samples/020_custom_components/pages/drawable_canvas.py
        251 ./dist/samples/020_custom_components/pages/embedcode.py
       5270 ./dist/samples/020_custom_components/pages/folium.py
       1022 ./dist/samples/020_custom_components/pages/lottie.py
        285 ./dist/samples/020_custom_components/pages/player.py
        343 ./dist/samples/020_custom_components/pages/stmol.py
        187 ./dist/samples/020_custom_components/requirements.txt
         62 ./dist/samples/020_custom_components/stlite.json
       4517 ./dist/samples/021_opencv/data/logo.png
         14 ./dist/samples/021_opencv/requirements.txt
         60 ./dist/samples/021_opencv/stlite.json
       1092 ./dist/samples/021_opencv/streamlit_app.py
         30 ./dist/samples/022_realtime_image_processing/requirements.txt
         79 ./dist/samples/022_realtime_image_processing/stlite.json
       2568 ./dist/samples/022_realtime_image_processing/streamlit_app.py
        724 ./dist/samples/030_streamlit_e2e_tests/pages/empty_labels.py
        733 ./dist/samples/030_streamlit_e2e_tests/pages/iframe_resizer.py
        876 ./dist/samples/030_streamlit_e2e_tests/pages/redisplayed_widgets.py
       1225 ./dist/samples/030_streamlit_e2e_tests/pages/session_state_frontend_sync.py
       1400 ./dist/samples/030_streamlit_e2e_tests/pages/st_columns.py
       1140 ./dist/samples/030_streamlit_e2e_tests/pages/st_disabled.py
        616 ./dist/samples/030_streamlit_e2e_tests/pages/st_disconnect.py
       1681 ./dist/samples/030_streamlit_e2e_tests/pages/st_download_button.py
       2475 ./dist/samples/030_streamlit_e2e_tests/pages/st_exception.py
        747 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_get_query_params.py
        856 ./dist/samples/030_streamlit_e2e_tests/pages/st_experimental_set_query_params.py
       2405 ./dist/samples/030_streamlit_e2e_tests/pages/st_form_column_association.py
       3329 ./dist/samples/030_streamlit_e2e_tests/pages/st_image.py
       2160 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay.py
        810 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_replay_old_image.py
       1705 ./dist/samples/030_streamlit_e2e_tests/pages/st_image_svg_sizing.py
        762 ./dist/samples/030_streamlit_e2e_tests/pages/st_json.py
       1484 ./dist/samples/030_streamlit_e2e_tests/pages/st_map.py
        969 ./dist/samples/030_streamlit_e2e_tests/pages/st_media_replay.py
       2141 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_chart.py
       1524 ./dist/samples/030_streamlit_e2e_tests/pages/st_pydeck_geo_layers.py
       1263 ./dist/samples/030_streamlit_e2e_tests/pages/st_reuse_label.py
       2551 ./dist/samples/030_streamlit_e2e_tests/pages/st_select_slider.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_session_state.py
       1592 ./dist/samples/030_streamlit_e2e_tests/pages/st_set_page_config.py
       1087 ./dist/samples/030_streamlit_e2e_tests/pages/st_sidebar.py
       2458 ./dist/samples/030_streamlit_e2e_tests/pages/st_slider.py
       1149 ./dist/samples/030_streamlit_e2e_tests/pages/st_tabs.py
       2732 ./dist/samples/030_streamlit_e2e_tests/pages/st_tooltips.py
       1108 ./dist/samples/030_streamlit_e2e_tests/pages/websocket_reconnects.py
        730 ./dist/samples/030_streamlit_e2e_tests/pages/widget_state_heavy_usage.py
         27 ./dist/samples/030_streamlit_e2e_tests/requirements.txt
         75 ./dist/samples/030_streamlit_e2e_tests/stlite.json
        117 ./dist/samples/030_streamlit_e2e_tests/streamlit_app.py

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/actions/init-all/action.yml (1)

23-29: ⚠️ Potential issue | 🟠 Major

Prevent dependency caches from bypassing the Safe-Chain gate.

The setup-uv (lines 23–29) and Yarn (lines 52–59) caches are restored before Safe-Chain shims are installed (lines 85–131). If uv sync and yarn install satisfy packages from these restored caches, they will skip network downloads and bypass the Safe-Chain proxy's live malware check. This allows packages cached before Safe-Chain deployment—or cached packages that later become malicious—to pass through unchecked.

Recommended mitigations:

  • Add cache-suffix: safe-chain-1.4.9 to the setup-uv action to rotate the Python cache key.
  • Update the Yarn cache key to include a Safe-Chain prefix (e.g., ${{ runner.os }}-safe-chain-1.4.9-yarn-${{ hashFiles('**/yarn.lock') }}).

Both the cache-suffix parameter and custom key modifications are supported by the respective actions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/init-all/action.yml around lines 23 - 29, The caches for
setup-uv and Yarn are restored before Safe-Chain shims are installed, allowing
cached packages to bypass Safe-Chain checks; update the setup-uv step (uses:
astral-sh/setup-uv) to include the cache-suffix parameter set to a Safe-Chain
version (e.g., cache-suffix: safe-chain-1.4.9) to rotate the Python cache key,
and modify the Yarn cache restore/save steps to include a Safe-Chain prefix in
their key (e.g., prefix runner.os with "safe-chain-1.4.9" such as "${{ runner.os
}}-safe-chain-1.4.9-yarn-${{ hashFiles('**/yarn.lock') }}") so restored caches
cannot bypass the Safe-Chain proxy.
🧹 Nitpick comments (1)
.github/actions/init-all/action.yml (1)

91-111: Gate Safe-Chain setup on whether this action will install packages.

Right now every Linux/Windows caller downloads and runs Safe-Chain, even when make venv and make node_modules are both skipped. Narrowing the condition avoids unrelated CI failures for setup-only/protoc-only jobs.

♻️ Proposed condition tightening
     - name: Install Aikido Safe-Chain (Linux)
-      if: runner.os == 'Linux'
+      if: runner.os == 'Linux' && (inputs.python-version-file || (inputs.node-version-file && inputs.install-node-modules == 'true'))
@@
     - name: Install Aikido Safe-Chain (Windows)
-      if: runner.os == 'Windows'
+      if: runner.os == 'Windows' && (inputs.python-version-file || (inputs.node-version-file && inputs.install-node-modules == 'true'))
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/init-all/action.yml around lines 91 - 111, The Safe-Chain
install steps run unconditionally per-OS; change their if-conditions so they
only run when the job will actually install packages (i.e., when the workflow
inputs or flags that trigger package installation are enabled). Update the "if"
on the "Install Aikido Safe-Chain (Linux)" and "Install Aikido Safe-Chain
(Windows)" steps to AND the existing runner.os check with the boolean/inputs
that indicate package setup (for example: add checks like inputs.install_python
== 'true' or inputs.install_node == 'true' or a single inputs.run_install ==
'true' depending on your workflow inputs), so safe-chain is only downloaded when
make venv / make node_modules (or equivalent install flags) will run. Ensure you
reference those exact input names used by the workflow when modifying the if
expression.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.github/actions/init-all/action.yml:
- Around line 23-29: The caches for setup-uv and Yarn are restored before
Safe-Chain shims are installed, allowing cached packages to bypass Safe-Chain
checks; update the setup-uv step (uses: astral-sh/setup-uv) to include the
cache-suffix parameter set to a Safe-Chain version (e.g., cache-suffix:
safe-chain-1.4.9) to rotate the Python cache key, and modify the Yarn cache
restore/save steps to include a Safe-Chain prefix in their key (e.g., prefix
runner.os with "safe-chain-1.4.9" such as "${{ runner.os
}}-safe-chain-1.4.9-yarn-${{ hashFiles('**/yarn.lock') }}") so restored caches
cannot bypass the Safe-Chain proxy.

---

Nitpick comments:
In @.github/actions/init-all/action.yml:
- Around line 91-111: The Safe-Chain install steps run unconditionally per-OS;
change their if-conditions so they only run when the job will actually install
packages (i.e., when the workflow inputs or flags that trigger package
installation are enabled). Update the "if" on the "Install Aikido Safe-Chain
(Linux)" and "Install Aikido Safe-Chain (Windows)" steps to AND the existing
runner.os check with the boolean/inputs that indicate package setup (for
example: add checks like inputs.install_python == 'true' or inputs.install_node
== 'true' or a single inputs.run_install == 'true' depending on your workflow
inputs), so safe-chain is only downloaded when make venv / make node_modules (or
equivalent install flags) will run. Ensure you reference those exact input names
used by the workflow when modifying the if expression.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c1b8d3fb-a82a-450b-add8-bf41653666f6

📥 Commits

Reviewing files that changed from the base of the PR and between b71fadf and c38390e.

📒 Files selected for processing (1)
  • .github/actions/init-all/action.yml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant