This repository is a community-driven collection of Streamlit 'extras' — custom components and utilities that extend Streamlit's functionality. It is a Python library (package `streamlit-extras`) that provides over 40 self-contained subpackages, each implementing a specific UI widget, layout helper, or data exploration tool. The architecture is modular: each extra is a subpackage under `src/streamlit_extras/` with a standardized metadata convention (`__title__`, `__desc__`, etc.) and a central `@extra` decorator for registration. Some extras are pure Python wrappers around Streamlit's native APIs (e.g., `grid`, `stateful_button`, `stoggle`), while others are full Custom Components v2 (CCv2) with React/TypeScript frontends built with Vite (e.g., `three_viewer`, `json_editor`, `sigma_graph`). The build system uses Hatch with a custom build hook to compile React frontends during wheel packaging. The gallery app (`gallery/streamlit_app.py`) serves as a demo and documentation explorer. The codebase is well-organized but has several deprecated extras that rely on private Streamlit APIs, and test coverage is limited to metadata validation. Overall, it is a solid, actively maintained library with reusable patterns for Streamlit component development.
This repository is a collection of demos and examples for integrating the Aliyun ApsaraVideo Player (Aliplayer) into web applications. It showcases various features including VOD playback, live streaming, ads, interactive components (danmaku, comments, likes, playlists), and platform-specific implementations (WeChat mini-program, responsive design). The demos are built using different technologies: plain JavaScript/jQuery, Vue.js, React, and WeChat mini-program. The repository includes a custom component system that allows extending the player with reusable UI elements. While the demos are functional and demonstrate practical integration patterns, the codebase exhibits some technical drift due to outdated dependencies (e.g., zepto, webpack 4.0) and code duplication across demos. The custom components, however, are well-crafted and follow a consistent pattern for encapsulation and registration, making them reusable in other projects.