head 1.17; access; symbols pkgsrc-2026Q1:1.16.0.4 pkgsrc-2026Q1-base:1.16 pkgsrc-2025Q4:1.16.0.2 pkgsrc-2025Q4-base:1.16 pkgsrc-2025Q3:1.15.0.2 pkgsrc-2025Q3-base:1.15 pkgsrc-2025Q2:1.11.0.2 pkgsrc-2025Q2-base:1.11 pkgsrc-2025Q1:1.9.0.2 pkgsrc-2025Q1-base:1.9 pkgsrc-2024Q4:1.8.0.2 pkgsrc-2024Q4-base:1.8 pkgsrc-2024Q3:1.4.0.2 pkgsrc-2024Q3-base:1.4; locks; strict; comment @# @; 1.17 date 2026.03.29.18.58.37; author wiz; state Exp; branches; next 1.16; commitid Q9IVxTPizyer2UzG; 1.16 date 2025.09.22.20.21.24; author wiz; state Exp; branches; next 1.15; commitid WQq6vpU0J5IrxKbG; 1.15 date 2025.09.02.08.45.41; author adam; state Exp; branches; next 1.14; commitid sRvO0XLK9XGCk79G; 1.14 date 2025.08.03.10.32.33; author wiz; state Exp; branches; next 1.13; commitid yElOAbaOM5a9Tg5G; 1.13 date 2025.07.27.09.51.55; author wiz; state Exp; branches; next 1.12; commitid XxpWl0DIml9XSm4G; 1.12 date 2025.07.13.10.52.55; author wiz; state Exp; branches; next 1.11; commitid iHpo4TLKjGYXFz2G; 1.11 date 2025.06.10.06.07.28; author wiz; state Exp; branches; next 1.10; commitid 4vzwB0sniuXI9jYF; 1.10 date 2025.04.20.21.52.04; author wiz; state Exp; branches; next 1.9; commitid Vtfc1kABUoSv1QRF; 1.9 date 2025.02.23.17.23.06; author wiz; state Exp; branches; next 1.8; commitid a5SYsLS6iStQkCKF; 1.8 date 2024.12.06.22.06.50; author wiz; state Exp; branches; next 1.7; commitid Ov8wk6k3JPwAruAF; 1.7 date 2024.11.17.10.02.25; author wiz; state Exp; branches; next 1.6; commitid VBrUjmsxxK6Y2ZxF; 1.6 date 2024.10.30.14.52.27; author wiz; state Exp; branches; next 1.5; commitid ADueiTdEzQVieHvF; 1.5 date 2024.10.19.11.34.15; author wiz; state Exp; branches; next 1.4; commitid mh7YODGFyHwguguF; 1.4 date 2024.09.13.09.46.07; author wiz; state Exp; branches; next 1.3; commitid LCogOvAYMXAU2DpF; 1.3 date 2024.08.25.10.45.47; author wiz; state Exp; branches; next 1.2; commitid V9rReEFCMQgfZbnF; 1.2 date 2024.07.29.07.29.03; author wiz; state Exp; branches; next 1.1; commitid PYDCemgypI0sLHjF; 1.1 date 2024.07.14.12.33.43; author wiz; state Exp; branches; next ; commitid kXBbzcPwbbwZVNhF; desc @@ 1.17 log @py-textual: update to 8.2.1. 8.2.1 Fixes a crash when a selected widget is removed while selecting 8.2.0 This release enhances text selection, with auto-scrolling, and the ability to select across container widgets. This work was sponsored by Mistral AI. @ text @@@comment $NetBSD$ ${PYSITELIB}/resources/snapshot_report_template.jinja2 ${PYSITELIB}/${WHEEL_INFODIR}/METADATA ${PYSITELIB}/${WHEEL_INFODIR}/RECORD ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL ${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE ${PYSITELIB}/textual/__init__.py ${PYSITELIB}/textual/__init__.pyc ${PYSITELIB}/textual/__init__.pyo ${PYSITELIB}/textual/__main__.py ${PYSITELIB}/textual/__main__.pyc ${PYSITELIB}/textual/__main__.pyo ${PYSITELIB}/textual/_animator.py ${PYSITELIB}/textual/_animator.pyc ${PYSITELIB}/textual/_animator.pyo ${PYSITELIB}/textual/_ansi_sequences.py ${PYSITELIB}/textual/_ansi_sequences.pyc ${PYSITELIB}/textual/_ansi_sequences.pyo ${PYSITELIB}/textual/_ansi_theme.py ${PYSITELIB}/textual/_ansi_theme.pyc ${PYSITELIB}/textual/_ansi_theme.pyo ${PYSITELIB}/textual/_arrange.py ${PYSITELIB}/textual/_arrange.pyc ${PYSITELIB}/textual/_arrange.pyo ${PYSITELIB}/textual/_auto_scroll.py ${PYSITELIB}/textual/_auto_scroll.pyc ${PYSITELIB}/textual/_auto_scroll.pyo ${PYSITELIB}/textual/_binary_encode.py ${PYSITELIB}/textual/_binary_encode.pyc ${PYSITELIB}/textual/_binary_encode.pyo ${PYSITELIB}/textual/_border.py ${PYSITELIB}/textual/_border.pyc ${PYSITELIB}/textual/_border.pyo ${PYSITELIB}/textual/_box_drawing.py ${PYSITELIB}/textual/_box_drawing.pyc ${PYSITELIB}/textual/_box_drawing.pyo ${PYSITELIB}/textual/_callback.py ${PYSITELIB}/textual/_callback.pyc ${PYSITELIB}/textual/_callback.pyo ${PYSITELIB}/textual/_cells.py ${PYSITELIB}/textual/_cells.pyc ${PYSITELIB}/textual/_cells.pyo ${PYSITELIB}/textual/_color_constants.py ${PYSITELIB}/textual/_color_constants.pyc ${PYSITELIB}/textual/_color_constants.pyo ${PYSITELIB}/textual/_compat.py ${PYSITELIB}/textual/_compat.pyc ${PYSITELIB}/textual/_compat.pyo ${PYSITELIB}/textual/_compositor.py ${PYSITELIB}/textual/_compositor.pyc ${PYSITELIB}/textual/_compositor.pyo ${PYSITELIB}/textual/_context.py ${PYSITELIB}/textual/_context.pyc ${PYSITELIB}/textual/_context.pyo ${PYSITELIB}/textual/_debug.py ${PYSITELIB}/textual/_debug.pyc ${PYSITELIB}/textual/_debug.pyo ${PYSITELIB}/textual/_dispatch_key.py ${PYSITELIB}/textual/_dispatch_key.pyc ${PYSITELIB}/textual/_dispatch_key.pyo ${PYSITELIB}/textual/_doc.py ${PYSITELIB}/textual/_doc.pyc ${PYSITELIB}/textual/_doc.pyo ${PYSITELIB}/textual/_duration.py ${PYSITELIB}/textual/_duration.pyc ${PYSITELIB}/textual/_duration.pyo ${PYSITELIB}/textual/_easing.py ${PYSITELIB}/textual/_easing.pyc ${PYSITELIB}/textual/_easing.pyo ${PYSITELIB}/textual/_event_broker.py ${PYSITELIB}/textual/_event_broker.pyc ${PYSITELIB}/textual/_event_broker.pyo ${PYSITELIB}/textual/_extrema.py ${PYSITELIB}/textual/_extrema.pyc ${PYSITELIB}/textual/_extrema.pyo ${PYSITELIB}/textual/_files.py ${PYSITELIB}/textual/_files.pyc ${PYSITELIB}/textual/_files.pyo ${PYSITELIB}/textual/_immutable_sequence_view.py ${PYSITELIB}/textual/_immutable_sequence_view.pyc ${PYSITELIB}/textual/_immutable_sequence_view.pyo ${PYSITELIB}/textual/_import_app.py ${PYSITELIB}/textual/_import_app.pyc ${PYSITELIB}/textual/_import_app.pyo ${PYSITELIB}/textual/_keyboard_protocol.py ${PYSITELIB}/textual/_keyboard_protocol.pyc ${PYSITELIB}/textual/_keyboard_protocol.pyo ${PYSITELIB}/textual/_layout_resolve.py ${PYSITELIB}/textual/_layout_resolve.pyc ${PYSITELIB}/textual/_layout_resolve.pyo ${PYSITELIB}/textual/_line_split.py ${PYSITELIB}/textual/_line_split.pyc ${PYSITELIB}/textual/_line_split.pyo ${PYSITELIB}/textual/_log.py ${PYSITELIB}/textual/_log.pyc ${PYSITELIB}/textual/_log.pyo ${PYSITELIB}/textual/_loop.py ${PYSITELIB}/textual/_loop.pyc ${PYSITELIB}/textual/_loop.pyo ${PYSITELIB}/textual/_markup_playground.py ${PYSITELIB}/textual/_markup_playground.pyc ${PYSITELIB}/textual/_markup_playground.pyo ${PYSITELIB}/textual/_node_list.py ${PYSITELIB}/textual/_node_list.pyc ${PYSITELIB}/textual/_node_list.pyo ${PYSITELIB}/textual/_on.py ${PYSITELIB}/textual/_on.pyc ${PYSITELIB}/textual/_on.pyo ${PYSITELIB}/textual/_opacity.py ${PYSITELIB}/textual/_opacity.pyc ${PYSITELIB}/textual/_opacity.pyo ${PYSITELIB}/textual/_parser.py ${PYSITELIB}/textual/_parser.pyc ${PYSITELIB}/textual/_parser.pyo ${PYSITELIB}/textual/_partition.py ${PYSITELIB}/textual/_partition.pyc ${PYSITELIB}/textual/_partition.pyo ${PYSITELIB}/textual/_path.py ${PYSITELIB}/textual/_path.pyc ${PYSITELIB}/textual/_path.pyo ${PYSITELIB}/textual/_profile.py ${PYSITELIB}/textual/_profile.pyc ${PYSITELIB}/textual/_profile.pyo ${PYSITELIB}/textual/_queue.py ${PYSITELIB}/textual/_queue.pyc ${PYSITELIB}/textual/_queue.pyo ${PYSITELIB}/textual/_resolve.py ${PYSITELIB}/textual/_resolve.pyc ${PYSITELIB}/textual/_resolve.pyo ${PYSITELIB}/textual/_segment_tools.py ${PYSITELIB}/textual/_segment_tools.pyc ${PYSITELIB}/textual/_segment_tools.pyo ${PYSITELIB}/textual/_sleep.py ${PYSITELIB}/textual/_sleep.pyc ${PYSITELIB}/textual/_sleep.pyo ${PYSITELIB}/textual/_slug.py ${PYSITELIB}/textual/_slug.pyc ${PYSITELIB}/textual/_slug.pyo ${PYSITELIB}/textual/_spatial_map.py ${PYSITELIB}/textual/_spatial_map.pyc ${PYSITELIB}/textual/_spatial_map.pyo ${PYSITELIB}/textual/_styles_cache.py ${PYSITELIB}/textual/_styles_cache.pyc ${PYSITELIB}/textual/_styles_cache.pyo ${PYSITELIB}/textual/_text_area_theme.py ${PYSITELIB}/textual/_text_area_theme.pyc ${PYSITELIB}/textual/_text_area_theme.pyo ${PYSITELIB}/textual/_time.py ${PYSITELIB}/textual/_time.pyc ${PYSITELIB}/textual/_time.pyo ${PYSITELIB}/textual/_tree_sitter.py ${PYSITELIB}/textual/_tree_sitter.pyc ${PYSITELIB}/textual/_tree_sitter.pyo ${PYSITELIB}/textual/_two_way_dict.py ${PYSITELIB}/textual/_two_way_dict.pyc ${PYSITELIB}/textual/_two_way_dict.pyo ${PYSITELIB}/textual/_types.py ${PYSITELIB}/textual/_types.pyc ${PYSITELIB}/textual/_types.pyo ${PYSITELIB}/textual/_wait.py ${PYSITELIB}/textual/_wait.pyc ${PYSITELIB}/textual/_wait.pyo ${PYSITELIB}/textual/_widget_navigation.py ${PYSITELIB}/textual/_widget_navigation.pyc ${PYSITELIB}/textual/_widget_navigation.pyo ${PYSITELIB}/textual/_win_sleep.py ${PYSITELIB}/textual/_win_sleep.pyc ${PYSITELIB}/textual/_win_sleep.pyo ${PYSITELIB}/textual/_work_decorator.py ${PYSITELIB}/textual/_work_decorator.pyc ${PYSITELIB}/textual/_work_decorator.pyo ${PYSITELIB}/textual/_wrap.py ${PYSITELIB}/textual/_wrap.pyc ${PYSITELIB}/textual/_wrap.pyo ${PYSITELIB}/textual/_xterm_parser.py ${PYSITELIB}/textual/_xterm_parser.pyc ${PYSITELIB}/textual/_xterm_parser.pyo ${PYSITELIB}/textual/actions.py ${PYSITELIB}/textual/actions.pyc ${PYSITELIB}/textual/actions.pyo ${PYSITELIB}/textual/app.py ${PYSITELIB}/textual/app.pyc ${PYSITELIB}/textual/app.pyo ${PYSITELIB}/textual/await_complete.py ${PYSITELIB}/textual/await_complete.pyc ${PYSITELIB}/textual/await_complete.pyo ${PYSITELIB}/textual/await_remove.py ${PYSITELIB}/textual/await_remove.pyc ${PYSITELIB}/textual/await_remove.pyo ${PYSITELIB}/textual/binding.py ${PYSITELIB}/textual/binding.pyc ${PYSITELIB}/textual/binding.pyo ${PYSITELIB}/textual/box_model.py ${PYSITELIB}/textual/box_model.pyc ${PYSITELIB}/textual/box_model.pyo ${PYSITELIB}/textual/cache.py ${PYSITELIB}/textual/cache.pyc ${PYSITELIB}/textual/cache.pyo ${PYSITELIB}/textual/canvas.py ${PYSITELIB}/textual/canvas.pyc ${PYSITELIB}/textual/canvas.pyo ${PYSITELIB}/textual/case.py ${PYSITELIB}/textual/case.pyc ${PYSITELIB}/textual/case.pyo ${PYSITELIB}/textual/clock.py ${PYSITELIB}/textual/clock.pyc ${PYSITELIB}/textual/clock.pyo ${PYSITELIB}/textual/color.py ${PYSITELIB}/textual/color.pyc ${PYSITELIB}/textual/color.pyo ${PYSITELIB}/textual/command.py ${PYSITELIB}/textual/command.pyc ${PYSITELIB}/textual/command.pyo ${PYSITELIB}/textual/compose.py ${PYSITELIB}/textual/compose.pyc ${PYSITELIB}/textual/compose.pyo ${PYSITELIB}/textual/constants.py ${PYSITELIB}/textual/constants.pyc ${PYSITELIB}/textual/constants.pyo ${PYSITELIB}/textual/containers.py ${PYSITELIB}/textual/containers.pyc ${PYSITELIB}/textual/containers.pyo ${PYSITELIB}/textual/content.py ${PYSITELIB}/textual/content.pyc ${PYSITELIB}/textual/content.pyo ${PYSITELIB}/textual/coordinate.py ${PYSITELIB}/textual/coordinate.pyc ${PYSITELIB}/textual/coordinate.pyo ${PYSITELIB}/textual/css/__init__.py ${PYSITELIB}/textual/css/__init__.pyc ${PYSITELIB}/textual/css/__init__.pyo ${PYSITELIB}/textual/css/_error_tools.py ${PYSITELIB}/textual/css/_error_tools.pyc ${PYSITELIB}/textual/css/_error_tools.pyo ${PYSITELIB}/textual/css/_help_renderables.py ${PYSITELIB}/textual/css/_help_renderables.pyc ${PYSITELIB}/textual/css/_help_renderables.pyo ${PYSITELIB}/textual/css/_help_text.py ${PYSITELIB}/textual/css/_help_text.pyc ${PYSITELIB}/textual/css/_help_text.pyo ${PYSITELIB}/textual/css/_style_properties.py ${PYSITELIB}/textual/css/_style_properties.pyc ${PYSITELIB}/textual/css/_style_properties.pyo ${PYSITELIB}/textual/css/_styles_builder.py ${PYSITELIB}/textual/css/_styles_builder.pyc ${PYSITELIB}/textual/css/_styles_builder.pyo ${PYSITELIB}/textual/css/constants.py ${PYSITELIB}/textual/css/constants.pyc ${PYSITELIB}/textual/css/constants.pyo ${PYSITELIB}/textual/css/errors.py ${PYSITELIB}/textual/css/errors.pyc ${PYSITELIB}/textual/css/errors.pyo ${PYSITELIB}/textual/css/match.py ${PYSITELIB}/textual/css/match.pyc ${PYSITELIB}/textual/css/match.pyo ${PYSITELIB}/textual/css/model.py ${PYSITELIB}/textual/css/model.pyc ${PYSITELIB}/textual/css/model.pyo ${PYSITELIB}/textual/css/parse.py ${PYSITELIB}/textual/css/parse.pyc ${PYSITELIB}/textual/css/parse.pyo ${PYSITELIB}/textual/css/query.py ${PYSITELIB}/textual/css/query.pyc ${PYSITELIB}/textual/css/query.pyo ${PYSITELIB}/textual/css/scalar.py ${PYSITELIB}/textual/css/scalar.pyc ${PYSITELIB}/textual/css/scalar.pyo ${PYSITELIB}/textual/css/scalar_animation.py ${PYSITELIB}/textual/css/scalar_animation.pyc ${PYSITELIB}/textual/css/scalar_animation.pyo ${PYSITELIB}/textual/css/styles.py ${PYSITELIB}/textual/css/styles.pyc ${PYSITELIB}/textual/css/styles.pyo ${PYSITELIB}/textual/css/stylesheet.py ${PYSITELIB}/textual/css/stylesheet.pyc ${PYSITELIB}/textual/css/stylesheet.pyo ${PYSITELIB}/textual/css/tokenize.py ${PYSITELIB}/textual/css/tokenize.pyc ${PYSITELIB}/textual/css/tokenize.pyo ${PYSITELIB}/textual/css/tokenizer.py ${PYSITELIB}/textual/css/tokenizer.pyc ${PYSITELIB}/textual/css/tokenizer.pyo ${PYSITELIB}/textual/css/transition.py ${PYSITELIB}/textual/css/transition.pyc ${PYSITELIB}/textual/css/transition.pyo ${PYSITELIB}/textual/css/types.py ${PYSITELIB}/textual/css/types.pyc ${PYSITELIB}/textual/css/types.pyo ${PYSITELIB}/textual/demo/__main__.py ${PYSITELIB}/textual/demo/__main__.pyc ${PYSITELIB}/textual/demo/__main__.pyo ${PYSITELIB}/textual/demo/_project_data.py ${PYSITELIB}/textual/demo/_project_data.pyc ${PYSITELIB}/textual/demo/_project_data.pyo ${PYSITELIB}/textual/demo/_project_stargazer_updater.py ${PYSITELIB}/textual/demo/_project_stargazer_updater.pyc ${PYSITELIB}/textual/demo/_project_stargazer_updater.pyo ${PYSITELIB}/textual/demo/_project_stars.py ${PYSITELIB}/textual/demo/_project_stars.pyc ${PYSITELIB}/textual/demo/_project_stars.pyo ${PYSITELIB}/textual/demo/data.py ${PYSITELIB}/textual/demo/data.pyc ${PYSITELIB}/textual/demo/data.pyo ${PYSITELIB}/textual/demo/demo_app.py ${PYSITELIB}/textual/demo/demo_app.pyc ${PYSITELIB}/textual/demo/demo_app.pyo ${PYSITELIB}/textual/demo/game.py ${PYSITELIB}/textual/demo/game.pyc ${PYSITELIB}/textual/demo/game.pyo ${PYSITELIB}/textual/demo/home.py ${PYSITELIB}/textual/demo/home.pyc ${PYSITELIB}/textual/demo/home.pyo ${PYSITELIB}/textual/demo/page.py ${PYSITELIB}/textual/demo/page.pyc ${PYSITELIB}/textual/demo/page.pyo ${PYSITELIB}/textual/demo/projects.py ${PYSITELIB}/textual/demo/projects.pyc ${PYSITELIB}/textual/demo/projects.pyo ${PYSITELIB}/textual/demo/widgets.py ${PYSITELIB}/textual/demo/widgets.pyc ${PYSITELIB}/textual/demo/widgets.pyo ${PYSITELIB}/textual/design.py ${PYSITELIB}/textual/design.pyc ${PYSITELIB}/textual/design.pyo ${PYSITELIB}/textual/document/__init__.py ${PYSITELIB}/textual/document/__init__.pyc ${PYSITELIB}/textual/document/__init__.pyo ${PYSITELIB}/textual/document/_document.py ${PYSITELIB}/textual/document/_document.pyc ${PYSITELIB}/textual/document/_document.pyo ${PYSITELIB}/textual/document/_document_navigator.py ${PYSITELIB}/textual/document/_document_navigator.pyc ${PYSITELIB}/textual/document/_document_navigator.pyo ${PYSITELIB}/textual/document/_edit.py ${PYSITELIB}/textual/document/_edit.pyc ${PYSITELIB}/textual/document/_edit.pyo ${PYSITELIB}/textual/document/_history.py ${PYSITELIB}/textual/document/_history.pyc ${PYSITELIB}/textual/document/_history.pyo ${PYSITELIB}/textual/document/_syntax_aware_document.py ${PYSITELIB}/textual/document/_syntax_aware_document.pyc ${PYSITELIB}/textual/document/_syntax_aware_document.pyo ${PYSITELIB}/textual/document/_wrapped_document.py ${PYSITELIB}/textual/document/_wrapped_document.pyc ${PYSITELIB}/textual/document/_wrapped_document.pyo ${PYSITELIB}/textual/dom.py ${PYSITELIB}/textual/dom.pyc ${PYSITELIB}/textual/dom.pyo ${PYSITELIB}/textual/driver.py ${PYSITELIB}/textual/driver.pyc ${PYSITELIB}/textual/driver.pyo ${PYSITELIB}/textual/drivers/__init__.py ${PYSITELIB}/textual/drivers/__init__.pyc ${PYSITELIB}/textual/drivers/__init__.pyo ${PYSITELIB}/textual/drivers/_byte_stream.py ${PYSITELIB}/textual/drivers/_byte_stream.pyc ${PYSITELIB}/textual/drivers/_byte_stream.pyo ${PYSITELIB}/textual/drivers/_input_reader.py ${PYSITELIB}/textual/drivers/_input_reader.pyc ${PYSITELIB}/textual/drivers/_input_reader.pyo ${PYSITELIB}/textual/drivers/_input_reader_linux.py ${PYSITELIB}/textual/drivers/_input_reader_linux.pyc ${PYSITELIB}/textual/drivers/_input_reader_linux.pyo ${PYSITELIB}/textual/drivers/_input_reader_windows.py ${PYSITELIB}/textual/drivers/_input_reader_windows.pyc ${PYSITELIB}/textual/drivers/_input_reader_windows.pyo ${PYSITELIB}/textual/drivers/_writer_thread.py ${PYSITELIB}/textual/drivers/_writer_thread.pyc ${PYSITELIB}/textual/drivers/_writer_thread.pyo ${PYSITELIB}/textual/drivers/headless_driver.py ${PYSITELIB}/textual/drivers/headless_driver.pyc ${PYSITELIB}/textual/drivers/headless_driver.pyo ${PYSITELIB}/textual/drivers/linux_driver.py ${PYSITELIB}/textual/drivers/linux_driver.pyc ${PYSITELIB}/textual/drivers/linux_driver.pyo ${PYSITELIB}/textual/drivers/linux_inline_driver.py ${PYSITELIB}/textual/drivers/linux_inline_driver.pyc ${PYSITELIB}/textual/drivers/linux_inline_driver.pyo ${PYSITELIB}/textual/drivers/web_driver.py ${PYSITELIB}/textual/drivers/web_driver.pyc ${PYSITELIB}/textual/drivers/web_driver.pyo ${PYSITELIB}/textual/drivers/win32.py ${PYSITELIB}/textual/drivers/win32.pyc ${PYSITELIB}/textual/drivers/win32.pyo ${PYSITELIB}/textual/drivers/windows_driver.py ${PYSITELIB}/textual/drivers/windows_driver.pyc ${PYSITELIB}/textual/drivers/windows_driver.pyo ${PYSITELIB}/textual/errors.py ${PYSITELIB}/textual/errors.pyc ${PYSITELIB}/textual/errors.pyo ${PYSITELIB}/textual/eta.py ${PYSITELIB}/textual/eta.pyc ${PYSITELIB}/textual/eta.pyo ${PYSITELIB}/textual/events.py ${PYSITELIB}/textual/events.pyc ${PYSITELIB}/textual/events.pyo ${PYSITELIB}/textual/expand_tabs.py ${PYSITELIB}/textual/expand_tabs.pyc ${PYSITELIB}/textual/expand_tabs.pyo ${PYSITELIB}/textual/features.py ${PYSITELIB}/textual/features.pyc ${PYSITELIB}/textual/features.pyo ${PYSITELIB}/textual/file_monitor.py ${PYSITELIB}/textual/file_monitor.pyc ${PYSITELIB}/textual/file_monitor.pyo ${PYSITELIB}/textual/filter.py ${PYSITELIB}/textual/filter.pyc ${PYSITELIB}/textual/filter.pyo ${PYSITELIB}/textual/fuzzy.py ${PYSITELIB}/textual/fuzzy.pyc ${PYSITELIB}/textual/fuzzy.pyo ${PYSITELIB}/textual/geometry.py ${PYSITELIB}/textual/geometry.pyc ${PYSITELIB}/textual/geometry.pyo ${PYSITELIB}/textual/getters.py ${PYSITELIB}/textual/getters.pyc ${PYSITELIB}/textual/getters.pyo ${PYSITELIB}/textual/highlight.py ${PYSITELIB}/textual/highlight.pyc ${PYSITELIB}/textual/highlight.pyo ${PYSITELIB}/textual/keys.py ${PYSITELIB}/textual/keys.pyc ${PYSITELIB}/textual/keys.pyo ${PYSITELIB}/textual/layout.py ${PYSITELIB}/textual/layout.pyc ${PYSITELIB}/textual/layout.pyo ${PYSITELIB}/textual/layouts/__init__.py ${PYSITELIB}/textual/layouts/__init__.pyc ${PYSITELIB}/textual/layouts/__init__.pyo ${PYSITELIB}/textual/layouts/factory.py ${PYSITELIB}/textual/layouts/factory.pyc ${PYSITELIB}/textual/layouts/factory.pyo ${PYSITELIB}/textual/layouts/grid.py ${PYSITELIB}/textual/layouts/grid.pyc ${PYSITELIB}/textual/layouts/grid.pyo ${PYSITELIB}/textual/layouts/horizontal.py ${PYSITELIB}/textual/layouts/horizontal.pyc ${PYSITELIB}/textual/layouts/horizontal.pyo ${PYSITELIB}/textual/layouts/stream.py ${PYSITELIB}/textual/layouts/stream.pyc ${PYSITELIB}/textual/layouts/stream.pyo ${PYSITELIB}/textual/layouts/vertical.py ${PYSITELIB}/textual/layouts/vertical.pyc ${PYSITELIB}/textual/layouts/vertical.pyo ${PYSITELIB}/textual/lazy.py ${PYSITELIB}/textual/lazy.pyc ${PYSITELIB}/textual/lazy.pyo ${PYSITELIB}/textual/logging.py ${PYSITELIB}/textual/logging.pyc ${PYSITELIB}/textual/logging.pyo ${PYSITELIB}/textual/map_geometry.py ${PYSITELIB}/textual/map_geometry.pyc ${PYSITELIB}/textual/map_geometry.pyo ${PYSITELIB}/textual/markup.py ${PYSITELIB}/textual/markup.pyc ${PYSITELIB}/textual/markup.pyo ${PYSITELIB}/textual/message.py ${PYSITELIB}/textual/message.pyc ${PYSITELIB}/textual/message.pyo ${PYSITELIB}/textual/message_pump.py ${PYSITELIB}/textual/message_pump.pyc ${PYSITELIB}/textual/message_pump.pyo ${PYSITELIB}/textual/messages.py ${PYSITELIB}/textual/messages.pyc ${PYSITELIB}/textual/messages.pyo ${PYSITELIB}/textual/notifications.py ${PYSITELIB}/textual/notifications.pyc ${PYSITELIB}/textual/notifications.pyo ${PYSITELIB}/textual/pad.py ${PYSITELIB}/textual/pad.pyc ${PYSITELIB}/textual/pad.pyo ${PYSITELIB}/textual/pilot.py ${PYSITELIB}/textual/pilot.pyc ${PYSITELIB}/textual/pilot.pyo ${PYSITELIB}/textual/py.typed ${PYSITELIB}/textual/reactive.py ${PYSITELIB}/textual/reactive.pyc ${PYSITELIB}/textual/reactive.pyo ${PYSITELIB}/textual/render.py ${PYSITELIB}/textual/render.pyc ${PYSITELIB}/textual/render.pyo ${PYSITELIB}/textual/renderables/__init__.py ${PYSITELIB}/textual/renderables/__init__.pyc ${PYSITELIB}/textual/renderables/__init__.pyo ${PYSITELIB}/textual/renderables/_blend_colors.py ${PYSITELIB}/textual/renderables/_blend_colors.pyc ${PYSITELIB}/textual/renderables/_blend_colors.pyo ${PYSITELIB}/textual/renderables/background_screen.py ${PYSITELIB}/textual/renderables/background_screen.pyc ${PYSITELIB}/textual/renderables/background_screen.pyo ${PYSITELIB}/textual/renderables/bar.py ${PYSITELIB}/textual/renderables/bar.pyc ${PYSITELIB}/textual/renderables/bar.pyo ${PYSITELIB}/textual/renderables/blank.py ${PYSITELIB}/textual/renderables/blank.pyc ${PYSITELIB}/textual/renderables/blank.pyo ${PYSITELIB}/textual/renderables/digits.py ${PYSITELIB}/textual/renderables/digits.pyc ${PYSITELIB}/textual/renderables/digits.pyo ${PYSITELIB}/textual/renderables/gradient.py ${PYSITELIB}/textual/renderables/gradient.pyc ${PYSITELIB}/textual/renderables/gradient.pyo ${PYSITELIB}/textual/renderables/sparkline.py ${PYSITELIB}/textual/renderables/sparkline.pyc ${PYSITELIB}/textual/renderables/sparkline.pyo ${PYSITELIB}/textual/renderables/styled.py ${PYSITELIB}/textual/renderables/styled.pyc ${PYSITELIB}/textual/renderables/styled.pyo ${PYSITELIB}/textual/renderables/text_opacity.py ${PYSITELIB}/textual/renderables/text_opacity.pyc ${PYSITELIB}/textual/renderables/text_opacity.pyo ${PYSITELIB}/textual/renderables/tint.py ${PYSITELIB}/textual/renderables/tint.pyc ${PYSITELIB}/textual/renderables/tint.pyo ${PYSITELIB}/textual/rlock.py ${PYSITELIB}/textual/rlock.pyc ${PYSITELIB}/textual/rlock.pyo ${PYSITELIB}/textual/screen.py ${PYSITELIB}/textual/screen.pyc ${PYSITELIB}/textual/screen.pyo ${PYSITELIB}/textual/scroll_view.py ${PYSITELIB}/textual/scroll_view.pyc ${PYSITELIB}/textual/scroll_view.pyo ${PYSITELIB}/textual/scrollbar.py ${PYSITELIB}/textual/scrollbar.pyc ${PYSITELIB}/textual/scrollbar.pyo ${PYSITELIB}/textual/selection.py ${PYSITELIB}/textual/selection.pyc ${PYSITELIB}/textual/selection.pyo ${PYSITELIB}/textual/signal.py ${PYSITELIB}/textual/signal.pyc ${PYSITELIB}/textual/signal.pyo ${PYSITELIB}/textual/strip.py ${PYSITELIB}/textual/strip.pyc ${PYSITELIB}/textual/strip.pyo ${PYSITELIB}/textual/style.py ${PYSITELIB}/textual/style.pyc ${PYSITELIB}/textual/style.pyo ${PYSITELIB}/textual/suggester.py ${PYSITELIB}/textual/suggester.pyc ${PYSITELIB}/textual/suggester.pyo ${PYSITELIB}/textual/suggestions.py ${PYSITELIB}/textual/suggestions.pyc ${PYSITELIB}/textual/suggestions.pyo ${PYSITELIB}/textual/system_commands.py ${PYSITELIB}/textual/system_commands.pyc ${PYSITELIB}/textual/system_commands.pyo ${PYSITELIB}/textual/theme.py ${PYSITELIB}/textual/theme.pyc ${PYSITELIB}/textual/theme.pyo ${PYSITELIB}/textual/timer.py ${PYSITELIB}/textual/timer.pyc ${PYSITELIB}/textual/timer.pyo ${PYSITELIB}/textual/tree-sitter/highlights/bash.scm ${PYSITELIB}/textual/tree-sitter/highlights/css.scm ${PYSITELIB}/textual/tree-sitter/highlights/go.scm ${PYSITELIB}/textual/tree-sitter/highlights/html.scm ${PYSITELIB}/textual/tree-sitter/highlights/java.scm ${PYSITELIB}/textual/tree-sitter/highlights/javascript.scm ${PYSITELIB}/textual/tree-sitter/highlights/json.scm ${PYSITELIB}/textual/tree-sitter/highlights/markdown.scm ${PYSITELIB}/textual/tree-sitter/highlights/python.scm ${PYSITELIB}/textual/tree-sitter/highlights/regex.scm ${PYSITELIB}/textual/tree-sitter/highlights/rust.scm ${PYSITELIB}/textual/tree-sitter/highlights/sql.scm ${PYSITELIB}/textual/tree-sitter/highlights/toml.scm ${PYSITELIB}/textual/tree-sitter/highlights/xml.scm ${PYSITELIB}/textual/tree-sitter/highlights/yaml.scm ${PYSITELIB}/textual/types.py ${PYSITELIB}/textual/types.pyc ${PYSITELIB}/textual/types.pyo ${PYSITELIB}/textual/validation.py ${PYSITELIB}/textual/validation.pyc ${PYSITELIB}/textual/validation.pyo ${PYSITELIB}/textual/visual.py ${PYSITELIB}/textual/visual.pyc ${PYSITELIB}/textual/visual.pyo ${PYSITELIB}/textual/walk.py ${PYSITELIB}/textual/walk.pyc ${PYSITELIB}/textual/walk.pyo ${PYSITELIB}/textual/widget.py ${PYSITELIB}/textual/widget.pyc ${PYSITELIB}/textual/widget.pyo ${PYSITELIB}/textual/widgets/__init__.py ${PYSITELIB}/textual/widgets/__init__.pyc ${PYSITELIB}/textual/widgets/__init__.pyi ${PYSITELIB}/textual/widgets/__init__.pyo ${PYSITELIB}/textual/widgets/_button.py ${PYSITELIB}/textual/widgets/_button.pyc ${PYSITELIB}/textual/widgets/_button.pyo ${PYSITELIB}/textual/widgets/_checkbox.py ${PYSITELIB}/textual/widgets/_checkbox.pyc ${PYSITELIB}/textual/widgets/_checkbox.pyo ${PYSITELIB}/textual/widgets/_collapsible.py ${PYSITELIB}/textual/widgets/_collapsible.pyc ${PYSITELIB}/textual/widgets/_collapsible.pyo ${PYSITELIB}/textual/widgets/_content_switcher.py ${PYSITELIB}/textual/widgets/_content_switcher.pyc ${PYSITELIB}/textual/widgets/_content_switcher.pyo ${PYSITELIB}/textual/widgets/_data_table.py ${PYSITELIB}/textual/widgets/_data_table.pyc ${PYSITELIB}/textual/widgets/_data_table.pyo ${PYSITELIB}/textual/widgets/_digits.py ${PYSITELIB}/textual/widgets/_digits.pyc ${PYSITELIB}/textual/widgets/_digits.pyo ${PYSITELIB}/textual/widgets/_directory_tree.py ${PYSITELIB}/textual/widgets/_directory_tree.pyc ${PYSITELIB}/textual/widgets/_directory_tree.pyo ${PYSITELIB}/textual/widgets/_footer.py ${PYSITELIB}/textual/widgets/_footer.pyc ${PYSITELIB}/textual/widgets/_footer.pyo ${PYSITELIB}/textual/widgets/_header.py ${PYSITELIB}/textual/widgets/_header.pyc ${PYSITELIB}/textual/widgets/_header.pyo ${PYSITELIB}/textual/widgets/_help_panel.py ${PYSITELIB}/textual/widgets/_help_panel.pyc ${PYSITELIB}/textual/widgets/_help_panel.pyo ${PYSITELIB}/textual/widgets/_input.py ${PYSITELIB}/textual/widgets/_input.pyc ${PYSITELIB}/textual/widgets/_input.pyo ${PYSITELIB}/textual/widgets/_key_panel.py ${PYSITELIB}/textual/widgets/_key_panel.pyc ${PYSITELIB}/textual/widgets/_key_panel.pyo ${PYSITELIB}/textual/widgets/_label.py ${PYSITELIB}/textual/widgets/_label.pyc ${PYSITELIB}/textual/widgets/_label.pyo ${PYSITELIB}/textual/widgets/_link.py ${PYSITELIB}/textual/widgets/_link.pyc ${PYSITELIB}/textual/widgets/_link.pyo ${PYSITELIB}/textual/widgets/_list_item.py ${PYSITELIB}/textual/widgets/_list_item.pyc ${PYSITELIB}/textual/widgets/_list_item.pyo ${PYSITELIB}/textual/widgets/_list_view.py ${PYSITELIB}/textual/widgets/_list_view.pyc ${PYSITELIB}/textual/widgets/_list_view.pyo ${PYSITELIB}/textual/widgets/_loading_indicator.py ${PYSITELIB}/textual/widgets/_loading_indicator.pyc ${PYSITELIB}/textual/widgets/_loading_indicator.pyo ${PYSITELIB}/textual/widgets/_log.py ${PYSITELIB}/textual/widgets/_log.pyc ${PYSITELIB}/textual/widgets/_log.pyo ${PYSITELIB}/textual/widgets/_markdown.py ${PYSITELIB}/textual/widgets/_markdown.pyc ${PYSITELIB}/textual/widgets/_markdown.pyo ${PYSITELIB}/textual/widgets/_markdown_viewer.py ${PYSITELIB}/textual/widgets/_markdown_viewer.pyc ${PYSITELIB}/textual/widgets/_markdown_viewer.pyo ${PYSITELIB}/textual/widgets/_masked_input.py ${PYSITELIB}/textual/widgets/_masked_input.pyc ${PYSITELIB}/textual/widgets/_masked_input.pyo ${PYSITELIB}/textual/widgets/_option_list.py ${PYSITELIB}/textual/widgets/_option_list.pyc ${PYSITELIB}/textual/widgets/_option_list.pyo ${PYSITELIB}/textual/widgets/_placeholder.py ${PYSITELIB}/textual/widgets/_placeholder.pyc ${PYSITELIB}/textual/widgets/_placeholder.pyo ${PYSITELIB}/textual/widgets/_pretty.py ${PYSITELIB}/textual/widgets/_pretty.pyc ${PYSITELIB}/textual/widgets/_pretty.pyo ${PYSITELIB}/textual/widgets/_progress_bar.py ${PYSITELIB}/textual/widgets/_progress_bar.pyc ${PYSITELIB}/textual/widgets/_progress_bar.pyo ${PYSITELIB}/textual/widgets/_radio_button.py ${PYSITELIB}/textual/widgets/_radio_button.pyc ${PYSITELIB}/textual/widgets/_radio_button.pyo ${PYSITELIB}/textual/widgets/_radio_set.py ${PYSITELIB}/textual/widgets/_radio_set.pyc ${PYSITELIB}/textual/widgets/_radio_set.pyo ${PYSITELIB}/textual/widgets/_rich_log.py ${PYSITELIB}/textual/widgets/_rich_log.pyc ${PYSITELIB}/textual/widgets/_rich_log.pyo ${PYSITELIB}/textual/widgets/_rule.py ${PYSITELIB}/textual/widgets/_rule.pyc ${PYSITELIB}/textual/widgets/_rule.pyo ${PYSITELIB}/textual/widgets/_select.py ${PYSITELIB}/textual/widgets/_select.pyc ${PYSITELIB}/textual/widgets/_select.pyo ${PYSITELIB}/textual/widgets/_selection_list.py ${PYSITELIB}/textual/widgets/_selection_list.pyc ${PYSITELIB}/textual/widgets/_selection_list.pyo ${PYSITELIB}/textual/widgets/_sparkline.py ${PYSITELIB}/textual/widgets/_sparkline.pyc ${PYSITELIB}/textual/widgets/_sparkline.pyo ${PYSITELIB}/textual/widgets/_static.py ${PYSITELIB}/textual/widgets/_static.pyc ${PYSITELIB}/textual/widgets/_static.pyo ${PYSITELIB}/textual/widgets/_switch.py ${PYSITELIB}/textual/widgets/_switch.pyc ${PYSITELIB}/textual/widgets/_switch.pyo ${PYSITELIB}/textual/widgets/_tab.py ${PYSITELIB}/textual/widgets/_tab.pyc ${PYSITELIB}/textual/widgets/_tab.pyo ${PYSITELIB}/textual/widgets/_tab_pane.py ${PYSITELIB}/textual/widgets/_tab_pane.pyc ${PYSITELIB}/textual/widgets/_tab_pane.pyo ${PYSITELIB}/textual/widgets/_tabbed_content.py ${PYSITELIB}/textual/widgets/_tabbed_content.pyc ${PYSITELIB}/textual/widgets/_tabbed_content.pyo ${PYSITELIB}/textual/widgets/_tabs.py ${PYSITELIB}/textual/widgets/_tabs.pyc ${PYSITELIB}/textual/widgets/_tabs.pyo ${PYSITELIB}/textual/widgets/_text_area.py ${PYSITELIB}/textual/widgets/_text_area.pyc ${PYSITELIB}/textual/widgets/_text_area.pyo ${PYSITELIB}/textual/widgets/_toast.py ${PYSITELIB}/textual/widgets/_toast.pyc ${PYSITELIB}/textual/widgets/_toast.pyo ${PYSITELIB}/textual/widgets/_toggle_button.py ${PYSITELIB}/textual/widgets/_toggle_button.pyc ${PYSITELIB}/textual/widgets/_toggle_button.pyo ${PYSITELIB}/textual/widgets/_tooltip.py ${PYSITELIB}/textual/widgets/_tooltip.pyc ${PYSITELIB}/textual/widgets/_tooltip.pyo ${PYSITELIB}/textual/widgets/_tree.py ${PYSITELIB}/textual/widgets/_tree.pyc ${PYSITELIB}/textual/widgets/_tree.pyo ${PYSITELIB}/textual/widgets/_welcome.py ${PYSITELIB}/textual/widgets/_welcome.pyc ${PYSITELIB}/textual/widgets/_welcome.pyo ${PYSITELIB}/textual/widgets/button.py ${PYSITELIB}/textual/widgets/button.pyc ${PYSITELIB}/textual/widgets/button.pyo ${PYSITELIB}/textual/widgets/collapsible.py ${PYSITELIB}/textual/widgets/collapsible.pyc ${PYSITELIB}/textual/widgets/collapsible.pyo ${PYSITELIB}/textual/widgets/data_table.py ${PYSITELIB}/textual/widgets/data_table.pyc ${PYSITELIB}/textual/widgets/data_table.pyo ${PYSITELIB}/textual/widgets/directory_tree.py ${PYSITELIB}/textual/widgets/directory_tree.pyc ${PYSITELIB}/textual/widgets/directory_tree.pyo ${PYSITELIB}/textual/widgets/input.py ${PYSITELIB}/textual/widgets/input.pyc ${PYSITELIB}/textual/widgets/input.pyo ${PYSITELIB}/textual/widgets/markdown.py ${PYSITELIB}/textual/widgets/markdown.pyc ${PYSITELIB}/textual/widgets/markdown.pyo ${PYSITELIB}/textual/widgets/option_list.py ${PYSITELIB}/textual/widgets/option_list.pyc ${PYSITELIB}/textual/widgets/option_list.pyo ${PYSITELIB}/textual/widgets/rule.py ${PYSITELIB}/textual/widgets/rule.pyc ${PYSITELIB}/textual/widgets/rule.pyo ${PYSITELIB}/textual/widgets/select.py ${PYSITELIB}/textual/widgets/select.pyc ${PYSITELIB}/textual/widgets/select.pyo ${PYSITELIB}/textual/widgets/selection_list.py ${PYSITELIB}/textual/widgets/selection_list.pyc ${PYSITELIB}/textual/widgets/selection_list.pyo ${PYSITELIB}/textual/widgets/tabbed_content.py ${PYSITELIB}/textual/widgets/tabbed_content.pyc ${PYSITELIB}/textual/widgets/tabbed_content.pyo ${PYSITELIB}/textual/widgets/text_area.py ${PYSITELIB}/textual/widgets/text_area.pyc ${PYSITELIB}/textual/widgets/text_area.pyo ${PYSITELIB}/textual/widgets/tree.py ${PYSITELIB}/textual/widgets/tree.pyc ${PYSITELIB}/textual/widgets/tree.pyo ${PYSITELIB}/textual/worker.py ${PYSITELIB}/textual/worker.pyc ${PYSITELIB}/textual/worker.pyo ${PYSITELIB}/textual/worker_manager.py ${PYSITELIB}/textual/worker_manager.pyc ${PYSITELIB}/textual/worker_manager.pyo @ 1.16 log @py-textual: fix PLIST for latest poetry-core and depend on it @ text @d25 3 @ 1.15 log @py-textual: updated to 6.0.0 6.0.0 This is a fairly large update, with some new features and optimizations. There are a few breaking changes, which are unlikely to impact many apps. Unless you have build custom line-API widgets. See below for the details. You may have to regenerate your snapshot tests, mostly as a result of the optimizations. I wouldn't expect the changes result in any material changes. @ text @d1 2 a2 2 @@comment $NetBSD: PLIST,v 1.14 2025/08/03 10:32:33 wiz Exp $ ${PYSITELIB}/${WHEEL_INFODIR}/LICENSE d6 1 a6 1 ${PYSITELIB}/resources/snapshot_report_template.jinja2 @ 1.14 log @py-textual: update to 5.2.0. 5.2.0 This release adds a new "stream" layout. It's a little experimental at the moment, and undocumented. For the brave only! 5.1.1 For some reason I still don't understand, poetry included pycache files in the last PyPi release. After updating Poetry, the build is a more sensible size. There are no code changes in this release. 5.1.0 This release adds an :empty pseudo-class which matches widgets with no children. You could use this to hide a container that doesn't have any children, for example: .container:empty { display: none; } Also in this release, support for scrolling left and right via the trackpad or a mouse that supports it. This was a contribution from @@fancidev @ text @d1 1 a1 2 @@comment $NetBSD$ ${PYSITELIB}/resources/snapshot_report_template.jinja2 d6 1 d121 3 d289 9 @ 1.13 log @py-textual: update to 5.0.1. 5.0.1 Fixed appending to Markdown widgets that were constructed with an existing document #5990 5.0.0 Markdown rendering has been improved, with full text selection, prettier code blocks and tables. Plus streaming support. @ text @a45 3 ${PYSITELIB}/textual/_compose.py ${PYSITELIB}/textual/_compose.pyc ${PYSITELIB}/textual/_compose.pyo d208 3 d424 3 @ 1.12 log @py-textual: update to 4.0.0. The highlight of this release is the new Markdown.append method which can be used to efficiently stream markdown content (like you might get from an LLM). @ text @d403 3 @ 1.11 log @py-textual: update to 3.3.0. [3.3.0] - 2025-06-01 Fixed Fixed VERTICAL_BREAKPOINTS doesn't work #5785 Fixed Button allowing text selection #5770 Fixed running App.run after asyncio.run #5799 Fixed triggering a deprecation warning in py >= 3.10 #5799 Fixed Input invalid cursor position after updating the value #5811 Fixed DEFAULT_CLASSES when applied to App #5827 Fixed order of implicit content tag closing #5823 Added Exposed CollapsibleTitle #5810 Added Color.hsv property and Color.from_hsv class method #5803 Added cursor_at_start and cursor_at_end properties to the Input widget #5830 Changed Added a few features to python -m textual.markup playground #5823 @ text @d400 3 @ 1.10 log @py-textual: update to 3.1.0. 3.1.0 Mostly fixes, some API enhancements. @ text @d2 1 d43 3 d699 3 @ 1.9 log @py-textual: update to 2.1.1. 2.1.1 The interrupted release Mostly fixes here. There is a small change to behavior around scroll_end. 2.1.0 The pointed release Mostly fixes in this release, and a small feature. The mouse event adds pointer_* attributes which contain the pointer coordinates in pixel resolution (if supported by your terminal). [2.0.4] - 2025-02-17 Fixed Fixed smooth scrolling breaking mouse support in VSCode (and probably others) #5549 [2.0.3] - 2025-02-16 Fixed Fixed traceback from OptionList in Command Palette #5544 [2.0.2] - 2025-02-16 Fixed Fixed OptionList.add_options exhausting iterator #5540 Fixed screen not refreshing after pop #5543 2.0.1 Fixed Fixed escape tags in Content markup #5536 2.0.0 The Smooooth release This is a big release! Arbitrary text selection. You can now select text, and hit ctrl+c to copy it to the clipboard. This works just about everywhere, although there a re a few widgets were it isn't yet implemented. - Smoother scrolling, for Kitty, Ghostty, and some other terminals. - New content system - Many fixes, see the full changelog below... Breaking change: Strings returned from render() and other places will now be interpreted with Content.from_markup, rather than Rich.from_markup. This may result in slightly different colors, and emoji codes (like ":smiley:") will no longer be processed automatically. If you want to restore the old behavior you can return Rich.from_markup("Your output here") rather than string literal. @ text @d69 3 @ 1.8 log @py-textual: update to 0.89.1. Three weeks of heavy development. @ text @d93 3 d423 3 d496 3 d505 3 @ 1.7 log @py-textual: update to 0.86.1. 0.86.1 Tweaks to demo 0.86.0 Adds an entirely new theming system and an updated demo The new theming system standardizes the look-and-feel of widgets. This should mean they will look pretty when used in combination, and you will need less tweaking of your UI. If your app already has a customized look and feel, you may need to make a few style changes. @ text @d282 3 a314 3 ${PYSITELIB}/textual/document/_languages.py ${PYSITELIB}/textual/document/_languages.pyc ${PYSITELIB}/textual/document/_languages.pyo a517 1 ${PYSITELIB}/textual/tree-sitter/highlights/kotlin.scm d524 1 @ 1.6 log @py-textual: update to 0.85.1. 0.85.1 - 2024-10-26 Fixed Fixed encoding issue when saving files such as screenshots on Windows #5182 0.85.0 - 2024-10-25 Changed Grid will now size children to the maximum height of a row #5113 Markdown links will be opened with App.open_url automatically #5113 The universal selector (*) will now not match widgets with the class -textual-system (scrollbars, notifications etc) #5113 Renamed Screen.can_view and Widget.can_view to Screen.can_view_entire and Widget.can_view_entire #5174 Added Added Link widget #5113 Added open_links to Markdown and MarkdownViewer widgets #5113 Added App.DEFAULT_MODE #5113 Added Containers.HorizontalGroup and Containers.VerticalGroup #5113 Added $, £, €, (, ) symbols to Digits #5113 Added Button.action parameter to invoke action when clicked #5113 Added immediate parameter to scroll methods #5164 Added textual._loop.loop_from_index #5164 Added min_color and max_color to Sparklines constructor, which take precedence over CSS #5174 Added new demo python -m textual, not quite finished but better than the old one #5174 Added Screen.can_view_partial and Widget.can_view_partial #5174 Added App.is_web property to indicate if the app is running via a web browser #5128 Enter and Leave events can now be used with the on decorator #5159 Fixed Fixed glitchy ListView #5163 0.84.0 - 2024-10-22 Fixed Fixed RadioSet not being scrollable #5100 Fixed infinite loop in TextArea #5154 Added Added background-tint CSS rule #5117 Added :first-of-type, :last-of-type, :odd, and :even pseudo classes #5139 @ text @d207 3 d505 3 d532 3 @ 1.5 log @py-textual: update to 0.83.0. [0.83.0] - 2024-10-10 Added Added support for A-F to Digits widget #5094 Added Region.constrain #5097 Changed Screen.ALLOW_IN_MAXIMIZED_VIEW will now default to App.ALLOW_IN_MAXIMIZED_VIEW #5088 Widgets matching .-textual-system will now be included in the maximize view by default #5088 Digits are now thin by default, style with text-style: bold to get bold digits #5094 Made Widget.absolute_offset public #5097 Tooltips are now displayed directly below the mouse cursor #5097 Region.inflect will now assume that margins overlap #5097 Pilot.click and friends will now accept a widget, in addition to a selector #5095 [0.82.0] - 2024-10-03 Fixed Fixed issue with screen not updating when auto_refresh was enabled #5063 Fixed issues regarding loading indicator #5079 Fixed issues with inspecting the lazy loaded widgets module #5080 Added Added DOMNode.is_on_screen property #5063 Added support for keymaps (user configurable key bindings) #5038 Added descriptions to bindings for all internal widgets, and updated casing to be consistent #5062 Changed Breaking change: Widget.set_loading no longer return an awaitable #5079 [0.81.0] - 2024-09-25 Added Added x_axis and y_axis parameters to Widget.scroll_to_region #5047 Added Tree.move_cursor_to_line #5052 Changed Tree will no longer scroll the X axis when moving the cursor #5047 DirectoryTree will no longer select the first node #5052 Fixed Fixed widgets occasionally not getting Resize events #5048 Fixed tree regression #5052 Fixed glitch with single line inline widget #5054 [0.80.1] - 2024-09-24 Fixed Fixed crash when exiting the app prematurely #5039 Fixed exception constructing TextArea outside of App #5045 [0.80.0] - 2024-09-23 Added Added MaskedInput widget #4783 Input validation for floats and integers accept embedded underscores, e.g., "1_234_567" is valid. #4784 Support for "none" value added to dock, hatch and split styles #4982 Support for "none" added to box and border style properties (e.g widget.style.border = "none") #4982 Docstrings added to most style properties #4982 Added ansi_color switch to App to permit ANSI (themed) colors #5000 Added :ansi pseudo class #5000 Added -ansi-scrollbar style to widgets #5000 Added App.INLINE_PADDING to define the number of spaces above inline apps #5000 Added nocolor psuedoclass when NO_COLOR env var is set BINDING_GROUP_TITLE now defaults to None #5023 Added TreeNode.siblings, TreeNode.next_sibling, TreeNode.previous_sibling, TreeNode.is_collapsed #5023 Added additional bindings to Tree widget #5023 Added Tree.center_scroll #5023 Added Tree.unselect #5023 Changed Input validation for integers no longer accepts scientific notation like '1.5e2'; must be castable to int. #4784 Default scrollbar-size-vertical changed to 2 in inline styles to match Widget default CSS (unlikely to affect users) #4982 Removed border-right from Toast #4984 Some fixes in RichLog result in slightly different semantics, see docstrings for details #4978 Changed how scrollbars are rendered (will have no visual effect, but will break snapshot tests) #5000 Added enabled switch to filters (mostly used internally) #5000 BINDING_GROUP_TITLE now defaults to None #5023 Breaking change: Changed how scrollbars are rendered so they work in ansi mode (will break snapshots) #5023 Fixed Input validation of floats no longer accepts NaN (not a number). #4784 Fixed issues with screenshots by simplifying segments only for snapshot tests #4929 Fixed RichLog.write not respecting width parameter #4978 Fixed RichLog writing at wrong width when write occurs before width is known (e.g. in compose or on_mount) #4978 Fixed RichLog.write incorrectly shrinking width to RichLog.min_width when shrink=True (now shrinks to fit content area instead) #4978 Fixed flicker when setting dark reactive on startup #4989 Fixed command palette not sorting search results by their match score #4994 Fixed DataTable cached height issue on re-populating the table when using auto-height rows #4992 Fixed inline app output being cleared when inline_no_clear=True #5019 @ text @a80 3 ${PYSITELIB}/textual/_layout.py ${PYSITELIB}/textual/_layout.pyc ${PYSITELIB}/textual/_layout.pyo d270 21 a290 4 ${PYSITELIB}/textual/demo.py ${PYSITELIB}/textual/demo.pyc ${PYSITELIB}/textual/demo.pyo ${PYSITELIB}/textual/demo.tcss d390 3 d575 3 @ 1.4 log @py-textual: update to 0.79.1. 0.79.1 Fixed broken updates when non active screen changes #4957 0.79.0 This release optimizes query_one and changes the semantics a little. query_one will no longer raise a TooManyMatches if there is more than a single widget matching the selector. For the old behavior, you can use the new query_exactly_one method. 0.78.0 This release optimizes query_one and changes the semantics a little. query_one will no longer raise a TooManyMatches if there is more than a single widget matching the selector. For the old behavior, you can use the new query_exactly_one method. @ text @d576 3 d654 3 @ 1.3 log @py-textual: update to 0.77.0. [0.77.0] - 2024-08-22 Added Added tooltip to Binding #4859 Added a link to the command palette to the Footer (set show_command_palette=False to disable) #4867 Added TOOLTIP_DELAY to App to customize time until a tooltip is displayed Added "Show keys" option to system commands to show a summary of key bindings. #4876 Added "split" CSS style, currently undocumented, and may change. #4876 Added Region.get_spacing_between #4876 Added App.COMMAND_PALETTE_KEY to change default command palette key binding #4867 Added App.get_key_display #4890 Added DOMNode.BINDING_GROUP #4906 Added DOMNode.HELP classvar which contains Markdown help to be shown in the help panel #4915 Added App.get_system_commands #4920 Added "Save Screenshot" system command #4922 Changed Removed caps_lock and num_lock modifiers #4861 Keys such as escape and space are now displayed in lower case in footer #4876 Changed default command palette binding to ctrl+p #4867 Removed ctrl_to_caret and upper_case_keys from Footer. These can be implemented in App.get_key_display. Renamed SystemCommands to SystemCommandsProvider #4920 Breaking change: Removed ClassicFooter widget (please use new Footer widget) #4921 Disallowed Screen instances in App.SCREENS and App.MODES Fixed Fix crash when validate_on value isn't a set #4868 Fix Input.cursor_blink having no effect on the blink cycle after mounting #4869 Fixed scrolling by page not taking scrollbar in to account #4916 Fixed App.MODES being the same for all instances -- per-instance modes now exist internally @ text @d69 3 @ 1.2 log @py-textual: update to 0.74.0. [0.74.0] - 2024-07-25 Fixed Fixed issues in Kitty terminal after exiting app #4779 Fixed exception when removing Selects #4786 Fixed issue with non-clickable Footer keys #4798 Fixed issue with recompose not working from Mount handler #4802 Changed Calling Screen.dismiss with no arguments will invoke the screen callback with None (previously the callback wasn't invoke at all). #4795 @ text @d24 3 a521 3 ${PYSITELIB}/textual/widgets/_classic_footer.py ${PYSITELIB}/textual/widgets/_classic_footer.pyc ${PYSITELIB}/textual/widgets/_classic_footer.pyo d543 3 d549 3 @ 1.1 log @comms/py-textual: import py-textual-0.72.0 Textual is a Rapid Application Development framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. @ text @d48 6 a128 3 ${PYSITELIB}/textual/_system_commands.py ${PYSITELIB}/textual/_system_commands.pyc ${PYSITELIB}/textual/_system_commands.pyo a155 3 ${PYSITELIB}/textual/_worker_manager.py ${PYSITELIB}/textual/_worker_manager.pyc ${PYSITELIB}/textual/_worker_manager.pyo d391 3 d476 3 d660 3 d672 3 @