Compare commits

...

6168 commits

Author SHA1 Message Date
2df93d580b Fix doc markup
https://textual.textualize.io/api/fuzzy_matcher/#textual.fuzzy.Matcher.highlight
had incorrect markup. Fix it so it actually links as intended.
2025-04-21 11:57:00 +02:00
Will McGugan
ead2b31bc1 added escaping to docs 2025-04-15 16:02:44 +01:00
Will McGugan
21e91cd132
Merge pull request #5741 from Textualize/bump3.1.0
version bump
2025-04-12 08:59:57 +01:00
Will McGugan
dc89be9565 version bump 2025-04-12 08:57:24 +01:00
Will McGugan
2c15baf9a4
Merge pull request #5740 from Textualize/optimize-ol
Optimize Option List style change
2025-04-12 08:55:39 +01:00
Will McGugan
124028892d
Merge pull request #5739 from Textualize/clear-selection
clear selections
2025-04-12 08:42:20 +01:00
Will McGugan
85d919a9af Optimize Option List style change 2025-04-12 08:41:28 +01:00
Will McGugan
e9de3038db changelog 2025-04-12 08:28:15 +01:00
Will McGugan
2abba50f3d clear selections 2025-04-12 08:26:35 +01:00
Will McGugan
db3a675d4f
Merge pull request #5737 from Textualize/focusable
Fix allow_focus method
2025-04-11 16:36:58 +01:00
Will McGugan
cd22309b13 snapshit 2025-04-11 16:22:38 +01:00
Will McGugan
9b054ee3ea changelog 2025-04-11 16:18:44 +01:00
Will McGugan
13be373949 Fix allow_focus 2025-04-11 16:17:37 +01:00
Will McGugan
5fc41eb58b fix allow_focus override 2025-04-11 15:57:19 +01:00
Will McGugan
2c16c100de fix docstring 2025-04-11 14:47:40 +01:00
Will McGugan
944d6cc771
Merge pull request #5736 from Textualize/scrollbar-refresh
fix scrollbar refresh issue
2025-04-11 12:54:28 +01:00
Will McGugan
d7641d9605 changelog 2025-04-11 12:42:50 +01:00
Will McGugan
14b5f4091b Changelog 2025-04-11 12:42:18 +01:00
Will McGugan
979a2d5f7a scroll to 0,0 on clear options 2025-04-11 12:40:37 +01:00
Will McGugan
10c84c7ce1 snapshots 2025-04-11 12:27:59 +01:00
Will McGugan
a2e8566411 fix scrollbar refresh issue 2025-04-11 12:01:09 +01:00
Will McGugan
1442a961b9
Merge pull request #5731 from TomJGooding/test-fix-missing-assert-in-snapshot-tests
test: fix missing assert in snapshot tests
2025-04-11 10:07:24 +01:00
Will McGugan
3b8713baa2
Merge pull request #5730 from TomJGooding/fix-option-list-fix-size-when-options-removed
fix(option list): fix size when options removed or cleared
2025-04-11 10:06:13 +01:00
Will McGugan
95ed58a50f
Merge pull request #5734 from Textualize/content-markup
Rename textual markup to content markup
2025-04-11 10:05:12 +01:00
Will McGugan
0e33c537d3 Rename textual markup to content markup 2025-04-11 09:38:00 +01:00
Will McGugan
4a27e48041
Merge branch 'main' into fix-option-list-fix-size-when-options-removed 2025-04-11 09:33:22 +01:00
TomJGooding
c6d5f9a134 test: fix latest snaphot test with missing assert 2025-04-10 20:19:46 +01:00
Will McGugan
e6c70b2608
Merge pull request #5732 from Textualize/extrema
Extrema
2025-04-10 19:03:29 +01:00
Will McGugan
cad8aaf081 tidier expression 2025-04-10 18:48:06 +01:00
Will McGugan
09e19f04c5 fix changelog [skip ci] 2025-04-10 18:40:57 +01:00
Will McGugan
721abf6d2f compatibility 2025-04-10 18:34:33 +01:00
Will McGugan
5a4190094f simplify 2025-04-10 16:40:27 +01:00
Will McGugan
d1baa64b33 no longer required 2025-04-10 16:39:25 +01:00
Will McGugan
d3c5e787b2 snapshot fix 2025-04-10 16:37:47 +01:00
Will McGugan
9ec6ae5b46 uneeded layout changes 2025-04-10 16:33:53 +01:00
Will McGugan
5664b3e811 width dimensions 2025-04-10 16:30:35 +01:00
Will McGugan
f2c06f3a56 simplify 2025-04-10 16:14:47 +01:00
Will McGugan
4e50390261 optimize / simplify 2025-04-10 16:13:30 +01:00
Will McGugan
2c822dbf55 annotations 2025-04-10 16:07:57 +01:00
Will McGugan
70050ff162 whitespace 2025-04-10 16:06:22 +01:00
Will McGugan
5f89d81232 move Extrema object 2025-04-10 16:04:32 +01:00
TomJGooding
fa190a3a70 test: fix missing assert in snapshot tests
Following #5519, it looks like some snapshot tests added recently are
missing the assert.
2025-04-10 15:19:20 +01:00
TomJGooding
57caabadb4 test: fix missing assert in new snapshot tests 2025-04-10 15:16:52 +01:00
TomJGooding
1e04c59c7f docs(changelog): add fix for option list size 2025-04-10 14:30:03 +01:00
TomJGooding
1f83f3ffba fix(option list): fix size when options cleared
Fix the OptionList size not updating correctly after clearing the
options.

Fixes #5728
2025-04-10 14:17:43 +01:00
Will McGugan
3cc44407d8 tidy 2025-04-10 13:24:36 +01:00
Will McGugan
184b55d194 extrema 2025-04-10 13:13:53 +01:00
TomJGooding
41a002080a fix(option list): fix size when options removed
Fix the OptionList size not updating correctly after removing options.

Fixes https://github.com/Textualize/textual/issues/5728#issuecomment-2791776954
2025-04-10 12:54:48 +01:00
Will McGugan
fd6cb52c1d faq tweak 2025-04-09 16:08:12 +01:00
Will McGugan
b7c7ad5869
Merge pull request #5726 from Textualize/keymap-key
normalize keys
2025-04-09 15:49:26 +01:00
Will McGugan
852e503394 changelog [skipci] 2025-04-09 15:36:47 +01:00
Will McGugan
76f7e4ebf5 don't sort 2025-04-09 15:31:00 +01:00
Will McGugan
2037498a6e refactor to simplify 2025-04-09 15:18:54 +01:00
Will McGugan
47c28a0d95 normalize keys 2025-04-09 15:15:22 +01:00
Will McGugan
748fc07739
Merge pull request #5724 from Textualize/refresh-keymap-bindings
Refresh keymap bindings
2025-04-09 14:53:51 +01:00
Will McGugan
90003056de CHANGELOG 2025-04-09 13:49:53 +01:00
Will McGugan
dd7f0a3e99 test 2025-04-09 13:39:33 +01:00
Will McGugan
e9e7acbb9a refresh bindings on keymap change 2025-04-09 13:26:44 +01:00
Will McGugan
358141326e
Merge pull request #5687 from TomJGooding/test-focus-update-tests-with-app-run-test
test(focus): update tests with `app.run_test`
2025-04-09 12:10:04 +01:00
Will McGugan
8fcb8b8353 imports 2025-04-08 14:24:42 +01:00
Will McGugan
e0f212cbfd
Merge pull request #5719 from Textualize/notification-markup
Use Textual markup for notifications
2025-04-08 14:23:51 +01:00
Will McGugan
7e7a6620b1 words 2025-04-08 13:09:09 +01:00
Will McGugan
f5c97f5137 corrected terms 2025-04-08 13:04:55 +01:00
Will McGugan
6cc4d0fad9 changelog 2025-04-08 13:03:24 +01:00
Will McGugan
b1f2a4f08c snapshot 2025-04-08 13:02:14 +01:00
Will McGugan
f21073f413
Merge pull request #5718 from pthebaul/docs-guide-content-fix-missing-word
Fixed missing word in the Content guide docs
2025-04-08 10:30:08 +01:00
Paul Thebault
b38009006a
Fixed missing word in the Content guide docs 2025-04-08 11:26:10 +02:00
Will McGugan
3d82280b15 Changelog 2025-04-07 15:25:03 +01:00
Will McGugan
cc29f66e83
Merge pull request #5715 from Textualize/true-dim
True dim
2025-04-07 15:24:11 +01:00
Will McGugan
1c6374f46e snaphots 2025-04-07 13:03:40 +01:00
Will McGugan
54db93d032 Convert ANSI dim to RGB 2025-04-07 12:15:25 +01:00
Will McGugan
71548ca085 calculate dim RGB 2025-04-07 12:07:39 +01:00
Will McGugan
5ac6891bd9
Merge pull request #5713 from TomJGooding/docs-fix-camel-to-snake-docstring
docs: fix camel_to_snake docstring
2025-04-07 09:29:48 +01:00
TomJGooding
a03cea537f docs: fix camel_to_snake docstring
Spotted in passing and decided just to fix it after wondering if it was
even worth a pull request.
2025-04-06 17:17:09 +01:00
Will McGugan
ec5cf4edea
Merge pull request #5712 from Textualize/no-text-visual
snapshots
2025-04-06 16:47:48 +01:00
Will McGugan
d216576cf1 changelog 2025-04-06 16:33:51 +01:00
Will McGugan
0bca93e5b2 snapshots 2025-04-06 16:31:46 +01:00
Will McGugan
8966017fa2
Merge pull request #5703 from Textualize/collapsible-fix
Fix for auto height in collapsible
2025-04-06 14:31:39 +01:00
Will McGugan
c03cc243b5 snapshot 2025-04-06 13:59:38 +01:00
Will McGugan
e9655537cd changelog 2025-04-06 13:57:21 +01:00
Will McGugan
fadefafbd3 Fix for auto height in collapsible 2025-04-03 16:41:24 +01:00
Will McGugan
87d0cd7b5f
Merge pull request #5697 from Textualize/markup-harden
parser refactor
2025-04-02 16:51:56 +01:00
Will McGugan
8c0d4656f6 changelog 2025-04-02 16:25:06 +01:00
Will McGugan
b5f58d2873 collapsible update 2025-04-02 16:21:21 +01:00
Will McGugan
c3020774f5 parser refactor 2025-04-01 17:11:17 +01:00
Will McGugan
62cd59362e
Merge pull request #5696 from Textualize/refresh-bug-fix
Refresh bug fix
2025-04-01 15:58:54 +01:00
Will McGugan
d1c5be85e0 changelog, bump 2025-04-01 14:30:56 +01:00
Will McGugan
3476b0a311 Fix for refresh bug 2025-04-01 14:27:50 +01:00
TomJGooding
c99eb242dd test(focus): update tests with app.run_test
- Update focus tests to run async with `app.run_test` rather than using
  `app._context`
- Replace the screen fixture with a top-level test app class

This should hopefully fix problems with later versions of
`pytest-asyncio`, where these tests would fail/error with:
`RuntimeError: There is no current event loop in thread 'MainThread'.`

Fixes #5511
2025-03-29 14:31:03 +00:00
Will McGugan
5c64352545
Merge pull request #5680 from pthebaul/patch-1
Fixed typo in the Tree widget bindings' docs
2025-03-27 15:37:18 +00:00
Will McGugan
49baf6b642 changelog 2025-03-27 15:24:55 +00:00
Will McGugan
f725d5ff2d
Merge pull request #5683 from Textualize/bump3.0.0
bump to 3
2025-03-27 15:19:53 +00:00
Will McGugan
124fae7ecf wrong date 2025-03-27 15:11:33 +00:00
Will McGugan
a0a8a8c6b4 bump to 3 2025-03-27 14:57:28 +00:00
Will McGugan
b04b4ccb37
Merge pull request #5650 from Zaloog/lg/fix-select-selection
Bugfix Select.selection with no value selected
2025-03-27 14:52:57 +00:00
Will McGugan
4d5b346c25
Merge branch 'main' into lg/fix-select-selection 2025-03-27 14:52:48 +00:00
Will McGugan
e27bcda9b1
Merge pull request #5681 from Textualize/table-overflow
fix table scroll
2025-03-27 14:48:32 +00:00
Will McGugan
812bee781c changelog 2025-03-27 14:45:46 +00:00
Will McGugan
55c5dea019 fix table scroll 2025-03-27 14:31:40 +00:00
Will McGugan
8ca3a1b734
Merge pull request #5562 from Textualize/app-query-change
App query change
2025-03-27 14:05:34 +00:00
Paul Thebault
47d8e995c5
Fixed typo in the Tree widget bindings' docs 2025-03-27 14:57:09 +01:00
Will McGugan
8a6cdf64ec
Merge branch 'main' into app-query-change 2025-03-27 13:46:49 +00:00
Will McGugan
f7d2be1ac1
Merge pull request #5679 from Textualize/revert-5578-uniontype_on_query_method
Revert "feat: Add UnionType support to query method"
2025-03-27 13:43:47 +00:00
Will McGugan
c39fb9e5ee
Revert "feat: Add UnionType support to query method" 2025-03-27 10:22:42 +00:00
Will McGugan
048040f9e4 fix changelog 2025-03-26 15:09:15 +00:00
Will McGugan
7dcd1d3bc5
Merge pull request #5578 from zarch/uniontype_on_query_method
feat: Add UnionType support to query method
2025-03-26 15:07:40 +00:00
Will McGugan
631199e0d1 This pattern doesn't work with current pytest. 2025-03-26 14:55:52 +00:00
Will McGugan
64cba2f5c4
Merge pull request #5639 from Textualize/tree-sitter-improvements
TextArea improvements - lazy language import and allow installation of only required languages
2025-03-26 14:40:02 +00:00
Will McGugan
77e354c557
Merge pull request #5676 from TomJGooding/fix-style-fix-copy-pastos
fix(style): fix copy-pastos in added styles
2025-03-25 20:15:20 +00:00
TomJGooding
169d5a5a2f fix(style): fix copy-pastos in added styles
Fixes what looks like a few copy-pastos in the recently added styles.
2025-03-25 19:31:43 +00:00
Will McGugan
9316f44e96 optimize 2025-03-25 18:39:41 +00:00
Will McGugan
3b852131f4
Merge pull request #5675 from Textualize/restore-blink
restore blink
2025-03-25 18:25:22 +00:00
Will McGugan
b990ebac79 changelog 2025-03-25 18:24:26 +00:00
Will McGugan
789cc17667 restore blink 2025-03-25 18:22:19 +00:00
Will McGugan
8603580c2b
Merge pull request #5657 from Textualize/content-text
Content Text type
2025-03-25 18:15:21 +00:00
Will McGugan
cc9a024840
Merge branch 'main' into content-text 2025-03-25 17:55:38 +00:00
Will McGugan
2ba1e7b58c changelog 2025-03-25 17:52:21 +00:00
Will McGugan
52db375b60 stylize post style 2025-03-25 17:03:57 +00:00
Will McGugan
297bc78741 snapshot tests 2025-03-25 17:02:00 +00:00
Will McGugan
068447c1d4 changelog 2025-03-25 16:34:47 +00:00
Will McGugan
f59cf4135e
Merge pull request #5672 from TomJGooding/fix-log-add-missing-scroll-end-to-write-line
fix(log): add missing scroll_end to write_line
2025-03-25 16:33:51 +00:00
Will McGugan
06edbed0ec Toggle button 2025-03-25 15:12:44 +00:00
Will McGugan
7154c4d1ad added underline2 2025-03-25 14:55:02 +00:00
Will McGugan
0afb5c6125 changelog 2025-03-25 14:34:41 +00:00
Will McGugan
538303d02d typing 2025-03-25 14:33:52 +00:00
TomJGooding
4d3fd6b27e docs(changelog): update with log write_line fix 2025-03-25 11:57:17 +00:00
TomJGooding
415cf26b51 fix(log): add missing scroll_end to write_line
Add `scroll_end` parameter to the `Rich.write_line` method. The other
write methods have this parameter, but must have been just overlooked
for `write_line`.
2025-03-25 11:41:29 +00:00
Will McGugan
180c52fe2b fix for rich renderables 2025-03-24 15:23:01 +00:00
Will McGugan
1396b0f1a0 height cache 2025-03-24 15:17:43 +00:00
Will McGugan
47d3f04f2b cache content width 2025-03-24 14:39:04 +00:00
Will McGugan
9e5b16f816 Content in selection list 2025-03-24 14:33:24 +00:00
Will McGugan
e1a18f3ee9 simplify Visual protocol 2025-03-24 14:20:32 +00:00
Will McGugan
a388969227 button to use ContentText 2025-03-24 14:05:30 +00:00
Will McGugan
7430de4e77 remove LinePadding 2025-03-24 13:38:34 +00:00
Will McGugan
3ea08e0ff2 added line-pad to css, used uin Button label 2025-03-24 13:38:10 +00:00
Will McGugan
adfac0c3af button labels 2025-03-21 16:07:14 +00:00
Will McGugan
44b9cf3559 tests, tabs 2025-03-19 17:17:00 +00:00
TomJGooding
af58978a91
docs(button): update spacing note (#5647)
Update the note in the button docs about removing the spacing, as the
default CSS was changed from `height: 3` to `auto`.
2025-03-19 16:19:03 +00:00
Will McGugan
2534ab7c0a Content Text type 2025-03-16 17:05:34 +00:00
Will McGugan
8bfa533fe9
Merge pull request #5654 from xavierog/name-textual-threads
Assign names to threads
2025-03-16 22:27:28 +07:00
Will McGugan
10d9a84ca2
Merge pull request #5649 from TomJGooding/docs-content-fix-formatting-issues
docs(content): fix formatting issues
2025-03-16 22:25:19 +07:00
Xavier G.
e4e9f4d526 Assign names to threads
As of Python 3.14, these names should be reflected by system tools like
ps, top or htop.
2025-03-15 19:30:03 +01:00
Zaloog
bf4e0b9c62 Bugfix Select.selection with no value selected
Based on the docs Select.selection should return None if no value is
selected, i.e. the value is Select.Blank. It just raised an assertion
error though. Fixed the issue and added a test
2025-03-14 12:29:10 +01:00
TomJGooding
7d8a557d0d docs(content): fix formatting issues
Fix some formatting issues in the API docs for the `Content` class.

Apparently the `__init__` docstring requires a summary line to correctly
render the parameters section and also the attr types.
2025-03-13 21:00:02 +00:00
Darren Burns
0216abc12c
Update CHANGELOG.md 2025-03-12 18:28:50 +00:00
Darren Burns
3b0470c2ef
Re-public an attribute 2025-03-12 18:22:46 +00:00
Darren Burns
efb4dcd3b1
Formatting 2025-03-12 15:53:57 +00:00
Darren Burns
9bbb6a015c
TextArea refactor to use new tree-sitter language loading approach 2025-03-12 15:52:56 +00:00
Pietro Zambelli
121bff697c Add conditional support for UnionType in DOM queries for Python 3.10+
- Use try/except to conditionally import UnionType and get_args
- Make UnionType overload signature conditional
- Add runtime checks before using UnionType functionality
- Maintain backward compatibility with Python <3.10

This change allows users on Python 3.10+ to query with Union types
while preserving compatibility with earlier Python versions.
2025-03-12 15:01:33 +01:00
Will McGugan
d9f7ffdad5
Merge pull request #5641 from Textualize/fix-click-border
fix clicking on border in line api
2025-03-12 17:19:18 +07:00
Will McGugan
4d15999e7f docstring 2025-03-12 17:07:10 +07:00
Will McGugan
dabe7a6ff9 changelog 2025-03-12 17:06:22 +07:00
Will McGugan
fea8775220 fix clicking on border in line api 2025-03-12 17:05:27 +07:00
Will McGugan
ca975dfc0c bind warning 2025-03-12 16:46:16 +07:00
Will McGugan
d076283607 words 2025-03-12 16:36:53 +07:00
Will McGugan
674c230c40
Merge pull request #5628 from TomJGooding/fix-widget-prevent-click-selection
fix(widget): prevent click selection when allow_select is false
2025-03-12 16:11:58 +07:00
Will McGugan
4bbee2f01d
Merge pull request #5618 from davidfokkema/update-to-visualtype
Accept the new VisualType in Static and Label
2025-03-12 16:09:38 +07:00
Darren Burns
1c4776b299
tree-sitter improvements - lazy loading and allow individual lang installs 2025-03-12 00:04:33 +00:00
David Fokkema
c6050b04f9 Added TODO to rename renderable to content 2025-03-11 16:24:28 +01:00
TomJGooding
c1484f1511 test: add regression test for disabled click selection 2025-03-11 15:21:41 +00:00
Will McGugan
19dd472756
Merge pull request #5624 from davep/cl-wrap-typo
Fix `OptionList` 2.0.0 breaking change no wrap advice in CHANGELOG
2025-03-11 21:27:53 +07:00
Will McGugan
fe01388915
Merge pull request #5607 from TomJGooding/docs-screens-add-mention-of-default-mode
docs(screens): add mention of DEFAULT_MODE
2025-03-11 21:23:08 +07:00
TomJGooding
fe954735ca fix(widget): prevent click selection when allow_select is false
Fix click selection not being disabled when allow_focus is set to false.

Fixes #5627.
2025-03-09 09:35:50 +00:00
Dave Pearson
57d09067e0
Fix OptionList wrap breaking change advice typo 2025-03-08 08:00:05 +00:00
Dave Pearson
dc802ba834
Clean trailing whitespace 2025-03-08 07:59:46 +00:00
David Fokkema
a29e0a8e8c Update CHANGELOG.md 2025-03-06 14:02:36 +01:00
David Fokkema
708e958696 Update docstring with Content type 2025-03-06 14:00:20 +01:00
David Fokkema
76973b47ea Accept the new VisualType in Static and Label 2025-03-06 13:54:45 +01:00
TomJGooding
cefd94f993 docs(screens): add mention of DEFAULT_MODE
Add mention of the `DEFAULT_MODE` to the mode documentation.
2025-03-04 10:51:30 +00:00
Will McGugan
dd36b696ec
Merge pull request #5588 from Textualize/preflight
Preflight
2025-02-27 14:36:18 +00:00
Will McGugan
f2ac6ae5a1 changelog 2025-02-27 10:49:57 +00:00
Will McGugan
aaeb549290 check later 2025-02-27 10:47:52 +00:00
Will McGugan
7b22c6c7d8 optimize check 2025-02-27 10:42:54 +00:00
Will McGugan
5ec2e17e5e preflight checks 2025-02-27 10:40:06 +00:00
Will McGugan
3955ece036
Merge pull request #5579 from Textualize/fuzzy-fix
Fix for fuzzy matcher
2025-02-26 20:06:00 +00:00
Will McGugan
a0597c91f8 changelog 2025-02-26 19:01:07 +00:00
Will McGugan
6086b7e4d5 version bump 2025-02-26 19:00:44 +00:00
Will McGugan
ce6566de28 increase loops 2025-02-26 17:57:44 +00:00
Will McGugan
0e612360f6 Merge branch 'main' into fuzzy-fix 2025-02-26 16:36:42 +00:00
Will McGugan
fd26e24130 update docs with syntax extras 2025-02-26 16:36:27 +00:00
Will McGugan
ff78867be2 favor first item 2025-02-25 19:14:00 +00:00
Will McGugan
723e7543af Merge branch 'main' into fuzzy-fix 2025-02-25 18:00:11 +00:00
Will McGugan
46a1b7c1b9 tweak 2025-02-25 17:00:07 +00:00
Will McGugan
04ba568b3d fix doc 2025-02-25 16:50:06 +00:00
Will McGugan
68bb4fee2a docstring fixes 2025-02-25 10:32:57 +00:00
Will McGugan
d5d78d95a6 reverse predict order 2025-02-25 10:28:29 +00:00
Will McGugan
62376929a5 comments 2025-02-24 18:59:13 +00:00
Will McGugan
17b4f429bc Fix for fuzzy matcher 2025-02-24 18:53:46 +00:00
Will McGugan
8fca87e19c docstring 2025-02-24 16:41:57 +00:00
Will McGugan
6d4ee4b773 docstring example 2025-02-24 15:50:29 +00:00
Pietro Zambelli
a0969a6742 fix: Re-defined variable ('match') from outer scope (PLY-W0621) 2025-02-24 08:11:05 +01:00
Pietro Zambelli
02cbf0dbd6 fix: Multiple imports for an import name (PLY-W0404) 2025-02-24 08:07:49 +01:00
Pietro Zambelli
d6a0c645b1 feat: Add UnionType support to query method
Allow querying for multiple widget types using | operator, such as
app.query(Input | Select). Supports nested unions and validates widget types.
2025-02-23 23:59:56 +01:00
Will McGugan
adf6d1ce1a
Merge pull request #5577 from Textualize/bump2.1.1
bump to 2.1.1
2025-02-22 18:40:13 +00:00
Will McGugan
c7ae7e4826 bump to 2.1.1 2025-02-22 18:38:49 +00:00
Will McGugan
81392ff2fd refresh after resume 2025-02-22 18:36:47 +00:00
Will McGugan
e7399d4b12
Merge pull request #5575 from Textualize/user-interupt-scroll-end
Allow user to interupt scroll to end
2025-02-22 18:33:10 +00:00
Will McGugan
606fc1c1c8
Merge pull request #5574 from Textualize/fix-ol-render-line
Fix ol render line
2025-02-22 17:35:00 +00:00
Will McGugan
133656efe9
Merge branch 'main' into fix-ol-render-line 2025-02-22 17:34:48 +00:00
Will McGugan
59c9d258a3 changelog 2025-02-22 16:06:05 +00:00
Will McGugan
5b27dfa303 Allow user to interupt scroll to end 2025-02-22 15:44:08 +00:00
Will McGugan
49ff0e02af
Merge pull request #5573 from Textualize/fix-tabs-clear
cleared tabs fix
2025-02-22 12:37:02 +00:00
Will McGugan
6f02bd9972 changelog 2025-02-22 12:36:40 +00:00
Will McGugan
3cefc5235d changelog 2025-02-22 12:34:41 +00:00
Will McGugan
950bbcc635 fix index error 2025-02-22 12:34:03 +00:00
Will McGugan
4e71a8dc64 changelog 2025-02-21 19:43:22 +00:00
Will McGugan
59e9ae6aa3 comment 2025-02-21 19:41:53 +00:00
Will McGugan
465948fd34 cleared tabs fix 2025-02-21 19:41:21 +00:00
Will McGugan
699cc86e87
Merge pull request #5567 from TomJGooding/fix-link-fix-binding-to-open-link
fix(link): fix binding to open link
2025-02-20 21:51:03 +00:00
Will McGugan
158a015cfa superfluous code 2025-02-20 20:43:00 +00:00
TomJGooding
2c9ad633ff fix(link): fix binding to open link
Fixes #5564

Co-authored-by: PythonPan <2292551082@qq.com>
2025-02-20 20:38:45 +00:00
Will McGugan
0aaafec814 changelog 2025-02-19 21:53:21 +00:00
Will McGugan
cf2301d27a docstrings 2025-02-19 21:34:09 +00:00
Will McGugan
202f2168db default screen property 2025-02-19 21:23:34 +00:00
Will McGugan
33dd0030f5 changelog 2025-02-19 21:20:30 +00:00
Will McGugan
72138945e2 changelog 2025-02-19 21:19:50 +00:00
Will McGugan
dbe53a4116 changelog 2025-02-19 21:14:30 +00:00
Will McGugan
29f7adc5a1 change to app query model 2025-02-19 21:13:18 +00:00
Will McGugan
7c25ab5bc4 optimization 2025-02-19 20:36:01 +00:00
Will McGugan
33d974c9b9
Merge pull request #5560 from Textualize/bump2.1.0
bump 2.1.0
2025-02-19 15:49:13 +00:00
Will McGugan
f95c056ba5 correct docstrings 2025-02-19 15:35:16 +00:00
Will McGugan
e875e4c6f4 bump 2.1.0 2025-02-19 15:30:42 +00:00
Will McGugan
855bec64e5
Merge pull request #5553 from TomJGooding/fix-border-fix-flipped-title-colors-in-panel-border
fix(border): fix flipped title colors in panel border
2025-02-19 15:28:21 +00:00
Will McGugan
93fda3601e
Merge branch 'main' into fix-border-fix-flipped-title-colors-in-panel-border 2025-02-19 15:27:56 +00:00
Will McGugan
8029231629
Merge pull request #5558 from Textualize/smooth-scroll-detect
Smooth scrolling detection
2025-02-18 21:31:48 +00:00
Will McGugan
adf1b7d860 Rename 2025-02-18 21:20:06 +00:00
Will McGugan
d621ef99bd changelog 2025-02-18 21:09:40 +00:00
Will McGugan
e73411beda changelog 2025-02-18 21:05:56 +00:00
TomJGooding
28098589d8 test: add description to snapshot test 2025-02-18 17:49:04 +00:00
TomJGooding
5815d3ae73 Merge branch 'main' into fix-border-fix-flipped-title-colors-in-panel-border 2025-02-18 17:38:30 +00:00
Will McGugan
369feef451
Merge pull request #5557 from Textualize/fix-slash-r
strip control codes
2025-02-18 16:54:44 +00:00
Will McGugan
9f015499b5
Merge branch 'main' into fix-slash-r 2025-02-18 16:54:27 +00:00
Will McGugan
3f049f410c
Merge pull request #5556 from Textualize/mouse-pointer-coordinates
mouse coordinates
2025-02-18 16:53:46 +00:00
Will McGugan
c525fd2216 changelog 2025-02-18 16:23:45 +00:00
Will McGugan
6d2e966bba test 2025-02-18 16:23:17 +00:00
Will McGugan
6b8db024e4 strip control codes 2025-02-18 16:21:34 +00:00
Will McGugan
06d8d236eb changelog 2025-02-18 16:17:30 +00:00
Will McGugan
5352c58a5f quicker math 2025-02-18 16:15:34 +00:00
Will McGugan
c12f8044c0 mouse coordinates 2025-02-18 16:09:06 +00:00
TomJGooding
66051d81d4 docs(changelog): fixed panel border title colors 2025-02-17 22:09:12 +00:00
TomJGooding
eec57ed26b Merge branch 'main' into fix-border-fix-flipped-title-colors-in-panel-border 2025-02-17 22:04:48 +00:00
TomJGooding
e39a3c248a test: update snapshots for panel border title colors 2025-02-17 21:38:28 +00:00
TomJGooding
fe5fe7a2e8 fix(border): fix flipped title colors in panel border
Revert the change to the color flipping logic for `panel` border titles.

The issue with the new method using `Style(reverse=True)` is that this
will also flip any border title colors set with Textual CSS.

Fixes #5548.
2025-02-17 19:16:29 +00:00
Will McGugan
c619f3c4de
Merge pull request #5552 from Textualize/auto-height-redux
auto height logic
2025-02-17 18:48:27 +00:00
Will McGugan
c5a3f76872 fix tree sitter deps 2025-02-17 18:15:59 +00:00
Will McGugan
97697431a8 update deps 2025-02-17 18:00:22 +00:00
Will McGugan
baab54ccbe fix for auto heights 2025-02-17 17:38:30 +00:00
Will McGugan
a6b1710499 auto height logic 2025-02-17 17:30:24 +00:00
Will McGugan
4ec7d38b61
Merge pull request #5551 from Textualize/fix-iterm-detect
Fix detection of iTerm
2025-02-17 16:25:39 +00:00
Will McGugan
91b9b30b0f cl 2025-02-17 16:23:56 +00:00
Will McGugan
14afd4308f Fix detection of iTerm 2025-02-17 16:20:24 +00:00
Will McGugan
c57bf45f31
Merge pull request #5549 from Textualize/fix-smooth-scroll-vscode
fix smooth scroll logic
2025-02-17 11:59:06 +00:00
Will McGugan
e5897d09f3 version bump 2025-02-17 11:48:23 +00:00
Will McGugan
14532fb4aa fix smooth scroll logic 2025-02-17 11:44:35 +00:00
Will McGugan
edca00b0a0
Merge pull request #5544 from Textualize/fix-ol-crash
Fix crash in Command Palette
2025-02-16 19:58:10 +00:00
Will McGugan
6e51f716c0 changelog 2025-02-16 19:44:40 +00:00
Will McGugan
4f40b62fb0 fix options 2025-02-16 19:43:56 +00:00
Will McGugan
c728d428e3 changelog fix 2025-02-16 19:33:17 +00:00
Will McGugan
d69f0d6bc0
Merge pull request #5543 from Textualize/fix-screen-refresh
add refresh
2025-02-16 19:30:46 +00:00
Will McGugan
173e6d6ba3 fix changelog 2025-02-16 18:59:31 +00:00
Will McGugan
4675ff8d6d changelog and version bump 2025-02-16 18:56:44 +00:00
Will McGugan
5da22f0f37 add refresh 2025-02-16 18:56:01 +00:00
Will McGugan
a7a1cdb263
Merge pull request #5540 from Textualize/fix-ol
fix ol
2025-02-16 15:35:54 +00:00
Will McGugan
9d6e31ae70 changelog 2025-02-16 15:17:58 +00:00
Will McGugan
ca47766583 fix ol 2025-02-16 15:16:43 +00:00
Will McGugan
732c6b9a89
Merge pull request #5536 from Textualize/fix-escape
fix markup escape
2025-02-16 14:18:05 +00:00
Will McGugan
a0405ee8c3 chlog 2025-02-16 14:04:12 +00:00
Will McGugan
70486dd307 fix markup escape 2025-02-16 14:01:55 +00:00
Will McGugan
43a5dbb875 words 2025-02-16 13:48:42 +00:00
Will McGugan
9a338f366b
Merge pull request #5535 from TomJGooding/docs-changelog-fix-year
docs(changelog): fix release year for v2.0
2025-02-16 12:59:21 +00:00
TomJGooding
4ee6533954 docs(changelog): fix release year for v2.0 2025-02-16 12:47:32 +00:00
Will McGugan
5e1aa4d2c2
Merge pull request #5534 from Textualize/bump-2.0.0
Bump 2.0.0
2025-02-16 11:51:36 +00:00
Will McGugan
b28d7b3fc8 typo 2025-02-16 11:37:30 +00:00
Will McGugan
c2de582db9 words 2025-02-16 11:35:02 +00:00
Will McGugan
e555c86f30 bump 2025-02-16 11:01:11 +00:00
Will McGugan
993ff7575e snappier command palette 2025-02-15 22:23:51 +00:00
Will McGugan
70e1e73fd2 optimization 2025-02-14 20:06:59 +00:00
Will McGugan
99ca89edba
Merge pull request #5260 from Textualize/smooth-scroll
WIP Smooth scroll
2025-02-14 19:08:22 +00:00
Will McGugan
f04da02a66 remove snapshot 2025-02-14 18:46:42 +00:00
Will McGugan
b272ce9458 skip test 2025-02-14 18:32:59 +00:00
Will McGugan
0a706e0256 smooth scrolling post 2025-02-14 17:19:41 +00:00
Will McGugan
9179c74656 expose smooth scrolling 2025-02-14 11:44:21 +00:00
Will McGugan
2b41ff1b7d added constant 2025-02-14 11:08:14 +00:00
Will McGugan
71e6f548c2 merge 2025-02-14 10:44:46 +00:00
Will McGugan
35ba217d67 remover superfluous label 2025-02-13 17:09:29 +00:00
Will McGugan
cb9115a6bc
Merge pull request #5524 from Textualize/fix-auto-rich-log
rich log auto width
2025-02-13 17:04:30 +00:00
Will McGugan
e2f63c6f22 rich load auto width 2025-02-13 16:41:57 +00:00
Will McGugan
8370394f92 drop kp_ prefix 2025-02-13 15:59:11 +00:00
Will McGugan
bd9eb78601
Merge pull request #5476 from TomJGooding/test-fix-failing-tests-when-run-in-parallel
test: fix failing tests when run in parallel
2025-02-13 15:31:55 +00:00
Will McGugan
baf63091fb
Merge pull request #5522 from Textualize/fix-command-dismiss
fix dismiss
2025-02-13 12:30:25 +00:00
Will McGugan
5c9e4f4bac less flake 2025-02-13 12:11:08 +00:00
Will McGugan
f94450d1e4 typing 2025-02-13 10:55:06 +00:00
Will McGugan
752b4ae240 fix dismiss 2025-02-13 10:44:04 +00:00
Will McGugan
7699aca9e2
Merge pull request #5521 from Textualize/willmcgugan-patch-2
Update bug_report.md
2025-02-13 09:50:00 +00:00
Will McGugan
9d97b58759
Update bug_report.md 2025-02-13 09:49:49 +00:00
Will McGugan
684cf4e5ac docs 2025-02-13 09:43:21 +00:00
Will McGugan
78fd540d12
Merge pull request #5482 from TomJGooding/fix-datatable-simplify-default-css
fix(datatable): simplify default css
2025-02-13 09:39:51 +00:00
Will McGugan
3da0a4fa29
Merge pull request #5484 from ddkasa/input-binding-desc
Input 'right' Binding Description & Documentation
2025-02-13 09:39:14 +00:00
Will McGugan
4aac6eb8fc
Merge pull request #5519 from TomJGooding/test-add-missing-assertions-to-snapshot-tests
test: add missing assertions to snapshot tests
2025-02-13 09:35:51 +00:00
Will McGugan
80ea233dc9
Merge pull request #5505 from TomJGooding/docs-fix-refs-to-rounded-borders
docs: fix references to rounded borders
2025-02-13 09:34:01 +00:00
Will McGugan
945191ef7b
Merge pull request #5504 from TomJGooding/docs-changelog-remove-duplicates
docs(changelog): remove duplicates
2025-02-13 09:33:18 +00:00
Will McGugan
2fb51677f8
Merge pull request #5497 from TomJGooding/docs-masked-input-fix-code-annotations
docs(masked input): fix code annotations
2025-02-13 09:33:04 +00:00
TomJGooding
d4be018451 test: add missing assertions to snapshot tests 2025-02-12 22:57:31 +00:00
Will McGugan
7344df818e
Merge pull request #5516 from Textualize/refresh-jank-fix
fix refresh jank
2025-02-12 22:13:51 +00:00
Will McGugan
7fb15d95f2 ws 2025-02-12 22:01:09 +00:00
Will McGugan
f96f81ed6e ws 2025-02-12 22:00:39 +00:00
Will McGugan
4871cf50aa Restore call after refresh 2025-02-12 21:55:57 +00:00
Will McGugan
8dc35d73b3 snapshots 2025-02-12 21:46:45 +00:00
Will McGugan
e99de8d27e Remove comments 2025-02-12 21:45:50 +00:00
Will McGugan
0d2f74d417 fix refresh jank 2025-02-12 21:45:06 +00:00
Will McGugan
ef681bdbe6 snapshot update 2025-02-12 21:02:04 +00:00
Will McGugan
40dddf931d
Merge pull request #5515 from Textualize/visual-tooltip
visual tooltips
2025-02-12 17:57:51 +00:00
Will McGugan
fecdc7716a
Merge pull request #5514 from Textualize/fix-ol-height
Fix OL auto height
2025-02-12 17:25:46 +00:00
Will McGugan
841fdf461d visual tooltips 2025-02-12 17:19:31 +00:00
Will McGugan
f24522615f Fix OL auto height 2025-02-12 17:10:22 +00:00
Will McGugan
d10791d38c
Merge pull request #5510 from Textualize/new-option-list
WIP new option list
2025-02-12 14:13:27 +00:00
Will McGugan
310883d135 replace snapshot 2025-02-12 13:24:38 +00:00
Will McGugan
aa03071b75 skip flakey test 2025-02-12 12:09:16 +00:00
Will McGugan
a5ad5acbcd flakey test on windows 2025-02-12 11:48:02 +00:00
Will McGugan
e9533f446c restore docstrings 2025-02-12 11:26:53 +00:00
Will McGugan
c0f4b34e56 wording 2025-02-12 11:04:04 +00:00
Will McGugan
72b8bfe2a9 skip invisible widgets, update lines on mount for option list 2025-02-11 18:13:28 +00:00
Will McGugan
956d756385 snapshot 2025-02-11 17:06:18 +00:00
Will McGugan
9d707d9be5 fix for nowrap option list 2025-02-11 16:08:25 +00:00
Will McGugan
75793ac8ad fix for wrapping 2025-02-11 16:03:51 +00:00
Will McGugan
9ffcced234 snapshots 2025-02-11 15:46:15 +00:00
Will McGugan
25278afc1e snapshot 2025-02-11 15:18:34 +00:00
Will McGugan
34753e0036 snapshots 2025-02-11 15:08:53 +00:00
Will McGugan
a2288b1ef9 remove comments 2025-02-11 15:06:48 +00:00
Will McGugan
b433c0c3ad test fixes 2025-02-11 15:02:55 +00:00
Will McGugan
661ffd13ce style and components fixes 2025-02-10 20:02:43 +00:00
Will McGugan
1cfd33c76e component classes and styles caching 2025-02-10 15:21:56 +00:00
Will McGugan
00632f1566 optimization, more methods 2025-02-10 13:33:26 +00:00
Will McGugan
c9ec5aa459 simplify cache 2025-02-09 15:06:01 +00:00
Will McGugan
c22d510a50 Scroll to highlight 2025-02-08 21:39:01 +00:00
Will McGugan
98ac586421 selection 2025-02-08 18:20:33 +00:00
Will McGugan
0aae4eadea new option list 2025-02-08 17:51:49 +00:00
Will McGugan
5f7355c650 cache visual styles, speedup OptionList 2025-02-08 16:25:19 +00:00
Will McGugan
ae03febf57 Micro op 2025-02-07 21:32:23 +00:00
Will McGugan
2dd9c39e3e Assmeble function 2025-02-07 21:30:28 +00:00
TomJGooding
1170246ec1 test: fix reference to rounded border
I might as well fix the other reference to 'rounded' border in the tests
while I'm at it...
2025-02-07 16:50:50 +00:00
Will McGugan
1c23d6cc04
Merge pull request #5485 from Textualize/textual-markup
Textual markup
2025-02-07 16:32:36 +00:00
Will McGugan
a91d8cc8c9 overwrite 2025-02-07 16:07:49 +00:00
Will McGugan
5d0900cae6 artifact glitch 2025-02-07 16:05:09 +00:00
TomJGooding
65eeb65742 docs: fix references to rounded borders
Fix 'rounded' border references in docs to 'round'.
2025-02-07 15:34:22 +00:00
Will McGugan
9d6c2426a7 try this 2025-02-07 15:26:29 +00:00
Will McGugan
3585dbde3c docs 2025-02-07 15:00:25 +00:00
Will McGugan
df77f680cb docs update 2025-02-07 13:49:38 +00:00
Will McGugan
0f3de98e99 docstring 2025-02-06 20:05:25 +00:00
Will McGugan
9944d43574 typing fix 2025-02-06 19:57:29 +00:00
Will McGugan
11a7c4eeb4 typing fix 2025-02-06 19:53:58 +00:00
Will McGugan
609a29ac35 words 2025-02-06 19:50:25 +00:00
Will McGugan
27bbddddf0 fix artifact 2025-02-06 19:14:50 +00:00
Will McGugan
e676d175cf docstrings 2025-02-06 19:12:29 +00:00
Will McGugan
e9dac1c559 docstrings 2025-02-06 19:00:51 +00:00
Will McGugan
3716641824 snapshots 2025-02-06 16:57:27 +00:00
Will McGugan
bda56ab531 words 2025-02-06 16:39:45 +00:00
Will McGugan
32e852b9bf keys and playground 2025-02-06 16:31:12 +00:00
Will McGugan
4e03fea882 docs 2025-02-06 13:14:51 +00:00
Will McGugan
b49eb9ece3 docs and tests 2025-02-05 16:47:46 +00:00
TomJGooding
5d6bc7d3b2 docs(changelog): remove duplicates 2025-02-04 15:24:31 +00:00
Will McGugan
3ec59ee736 added substution 2025-02-04 13:02:57 +00:00
Will McGugan
97feb9ca34 content docs 2025-02-03 19:25:11 +00:00
Will McGugan
bba0b4f466 test fixes 2025-02-03 15:51:41 +00:00
Will McGugan
649abb5d18 fix dim 2025-02-03 12:16:11 +00:00
Will McGugan
8211370ba1 error reporting in playground 2025-02-02 19:43:38 +00:00
Will McGugan
7d228fd228 content docs 2025-02-02 19:37:36 +00:00
Will McGugan
27954777a2 markup parsing 2025-02-01 14:27:19 +00:00
Will McGugan
1eed935a41 markup parse and tests 2025-01-31 19:12:04 +00:00
Will McGugan
381a1bc5a3 style parse 2025-01-30 14:02:00 +00:00
Will McGugan
9eb73f425c parser WIP 2025-01-28 18:34:34 +00:00
Will McGugan
f0cfabb4d4 css styles 2025-01-27 18:58:24 +00:00
Will McGugan
d44788a29f docs 2025-01-27 15:02:07 +00:00
Will McGugan
a0910ceb30 wrap and overflow docs 2025-01-27 12:18:59 +00:00
Will McGugan
c2f4c2a684 overflow test 2025-01-26 18:54:00 +00:00
Will McGugan
4c598216b1 Merge branch 'main' into textual-markup 2025-01-26 18:49:30 +00:00
Will McGugan
a05cffaf51 runtime check read-only 2025-01-26 18:49:24 +00:00
Will McGugan
eb8a6acf09 back to rulesmap 2025-01-26 18:38:41 +00:00
Will McGugan
8224ac889e wrap and overflow 2025-01-26 15:30:45 +00:00
Will McGugan
9f93a3584f no wrap 2025-01-26 14:42:52 +00:00
TomJGooding
dc89d64cb8 docs(masked input): fix code annotations
Fix the incomplete annotations in the `MaskedInput` code example, which
appear to have been started but the content never actually added.
2025-01-25 16:50:15 +00:00
Will McGugan
02f8e0de87 textual markup app 2025-01-25 16:03:24 +00:00
Will McGugan
aa159dda14 Visual protocol 2025-01-25 14:58:30 +00:00
Will McGugan
04dbf88a73 traceback handling 2025-01-24 17:04:26 +00:00
Will McGugan
79734eef52 fix for content 2025-01-24 15:18:18 +00:00
Will McGugan
2197fd08e6 optimize style parse 2025-01-23 12:01:18 +00:00
Will McGugan
ed79ffdd57 fix percentages 2025-01-22 19:16:02 +00:00
Will McGugan
284ced4693 docstrings 2025-01-22 15:27:09 +00:00
Will McGugan
48815bf3fe fix test 2025-01-22 15:17:20 +00:00
Will McGugan
35aaec4983 interface fixes 2025-01-22 14:01:10 +00:00
Will McGugan
d4543ff28b tests 2025-01-22 13:47:06 +00:00
Will McGugan
3f29339a6f more tests 2025-01-21 21:31:03 +00:00
Will McGugan
6ec9531442 tests of total_ordering 2025-01-21 21:18:42 +00:00
Will McGugan
83daf3bf8c tests 2025-01-21 21:08:46 +00:00
Will McGugan
ceceda702a simplify Content 2025-01-21 20:31:50 +00:00
Will McGugan
1d5b1cb67f docs and tidy 2025-01-21 20:23:57 +00:00
Will McGugan
57525e4227 content 2025-01-19 17:13:20 +00:00
Will McGugan
b055673eda test fix, fix outline 2025-01-18 17:28:46 +00:00
Will McGugan
a745cda9b1 textual style 2025-01-18 17:02:39 +00:00
Will McGugan
6d3d64dff6 Border content 2025-01-18 13:10:34 +00:00
David Kasakaitis
b4e5133b35 test(help): update help panel snapshot 2025-01-18 12:49:15 +00:00
David Kasakaitis
481188c048 docs(input): update bindings documentation
Binding documentation was missing the updates from the recent copy paste
updates.
2025-01-18 12:19:08 +00:00
David Kasakaitis
b85f99c70f ref(input): update right binding description
Right binding was not describing auto completion suggestion.
2025-01-18 12:13:44 +00:00
TomJGooding
7ee190b9ad fix(datatable): simplify default css
Remove the background CSS in the `:dark` pseudo selector, as this is
already the default background for the `DataTable`.

Currently this duplication makes styling a custom widget that extends
the `DataTable` unintuitive (see #5481).
2025-01-17 21:36:22 +00:00
Will McGugan
32a26249b9 markup property 2025-01-17 14:29:43 +00:00
Will McGugan
c9102aebb5 switch to Content 2025-01-16 16:41:48 +00:00
TomJGooding
db0335b051 test: fix failing tests when run in parallel
Fixes #5327.

Normally when running tests with Textual, the default size of the
simulated app is 80x24. However it seems when tests are run in parallel
with xdist on Python 3.13, `app.console.height` returns the _actual_
height of the terminal, causing tests to fail.
2025-01-16 07:28:37 +00:00
Will McGugan
aa319afa8c simplify color output 2025-01-14 17:25:43 +00:00
Will McGugan
d6e085cabb parse syntax 2025-01-14 17:23:28 +00:00
Will McGugan
d657faf68e parse syntax 2025-01-14 16:47:16 +00:00
Will McGugan
d9f812506b parse styles 2025-01-14 16:25:01 +00:00
Will McGugan
8b1c2ad70d Textual markup 2025-01-14 15:01:48 +00:00
Will McGugan
dc7156449d
Merge pull request #5419 from TomJGooding/docs-option-list-restore-missing-docstring
docs(option list): restore missing docstring
2025-01-12 16:20:15 +00:00
Will McGugan
c4e3f0431a
Merge pull request #5465 from Plywood9/fix-timer-busy-loop
Fix busy loop on lagging timer
2025-01-12 16:19:55 +00:00
Will McGugan
d373878e43
Merge pull request #5446 from davep/page-case
Align `OptionList` page key case to match ancestors
2025-01-10 15:10:42 +00:00
Will McGugan
f66a143a26
Merge pull request #5427 from TomJGooding/fix-header-show-command-palette-tooltip-only-when-enabled
fix(header): show command palette tooltip only when enabled
2025-01-10 15:10:01 +00:00
Will McGugan
23ddeb7d4e
Merge branch 'main' into fix-header-show-command-palette-tooltip-only-when-enabled 2025-01-10 15:09:54 +00:00
Will McGugan
61f645ce56
Merge pull request #5454 from davep/add-missing-option-list-component-class
Add a missing component class from OptionList's documentation
2025-01-10 15:08:05 +00:00
Will McGugan
bc651bb0c2 selection fix 2025-01-10 14:49:18 +00:00
Will McGugan
7657a9eda4 snapshot 2025-01-10 14:36:35 +00:00
Will McGugan
2852b12117
Merge pull request #5471 from Textualize/fix-markup-false
fix markup false
2025-01-10 14:08:22 +00:00
Will McGugan
523ca0d377 fix exception on select 2025-01-10 13:03:31 +00:00
Will McGugan
d3fedb9bff invalid tag case 2025-01-10 12:20:16 +00:00
Will McGugan
53dca5dbba fix markup false 2025-01-10 12:05:40 +00:00
Will McGugan
5bedb5aa3c
Merge pull request #5467 from Textualize/log-selection
Log selection
2025-01-09 13:45:39 +00:00
Will McGugan
bbd4ec6f13 changelog 2025-01-09 13:45:24 +00:00
Will McGugan
344942675f snapshots 2025-01-09 13:01:56 +00:00
Will McGugan
4ce6b79dea added selection_updated method 2025-01-09 13:00:21 +00:00
Will McGugan
101f5a15cf log 2025-01-09 10:46:14 +00:00
Will McGugan
f481ed5009 log selection 2025-01-09 10:45:29 +00:00
Will McGugan
f2b476414f
Merge pull request #5462 from TomJGooding/fix-scrollbar-fix-scrollbar-background-opacity
fix(scrollbar): fix scrollbar background opacity
2025-01-09 09:33:42 +00:00
TomJGooding
8bb22917c0 fix(scrollbar): fix background alpha optimization 2025-01-09 09:09:27 +00:00
Plywood9
f426c16366 fix busy loop on lagging timer 2025-01-08 22:06:35 +00:00
TomJGooding
a35d48a59a perf: optimize scrollbar background for alpha 2025-01-08 19:56:57 +00:00
TomJGooding
260069d1e5 Merge branch 'main' into fix-scrollbar-fix-scrollbar-background-opacity 2025-01-08 18:57:18 +00:00
Will McGugan
f5be1b7aba snapshot 2025-01-08 18:45:16 +00:00
Will McGugan
c60c49de97
Merge pull request #5463 from Textualize/collapsible-datatable
fix for datatable in collapsible
2025-01-08 18:44:11 +00:00
TomJGooding
152b6c22ef docs: update changelog with scrollbar fix 2025-01-08 18:33:54 +00:00
Will McGugan
c1f46209d8 changelog 2025-01-08 18:30:43 +00:00
TomJGooding
1a7082f840 tests: update snapshots with scrollbar test 2025-01-08 18:26:48 +00:00
Will McGugan
80175f0997 fix for datatable in collapsible 2025-01-08 18:26:43 +00:00
TomJGooding
70aee154d6 fix(scrollbar): fix scroll background opacity 2025-01-08 18:11:44 +00:00
Will McGugan
6d483fbb63 micro optimization 2025-01-08 13:42:00 +00:00
Will McGugan
9986e51838 changelog merge 2025-01-07 16:07:04 +00:00
Will McGugan
9612407609
Merge pull request #5437 from davep/bug/5436/fix-help-alignment
Don't pad a key's tooltip in the help panel if it doesn't have a description
2025-01-07 16:05:45 +00:00
Will McGugan
59b09b0a6d
Merge branch 'main' into bug/5436/fix-help-alignment 2025-01-07 16:05:35 +00:00
Will McGugan
ee4abfaf82 fix changelog merge 2025-01-07 16:04:40 +00:00
Will McGugan
e7a0b73493
Merge branch 'main' into bug/5436/fix-help-alignment 2025-01-07 16:02:34 +00:00
Will McGugan
18bcbd626c
Merge pull request #5428 from davep/fix-footer-typo
Correct a typo in the `Footer.__init__` docstring
2025-01-07 16:00:51 +00:00
Will McGugan
06e7787c79
Merge pull request #5430 from TomJGooding/docs-actions-fix-namespaces-example
docs(action): fix namespaces code example
2025-01-07 15:58:59 +00:00
Will McGugan
428118be79
Merge pull request #5411 from Textualize/xterm-parser-broaden-test
Broaden tests for mode 2026 detection.
2025-01-07 15:58:18 +00:00
Will McGugan
34d2a8f313
Merge pull request #5432 from TomJGooding/docs-tutorial-misc-minor-fixes
docs(tutorial): misc minor fixes
2025-01-07 15:57:45 +00:00
Will McGugan
ee988a3080 It's not Pi, it's Tau 2025-01-07 15:56:06 +00:00
Will McGugan
5a6906be14
Merge pull request #5414 from edward-jazzhands/input_blur_message
Add Blur message to Input widget
2025-01-07 15:48:33 +00:00
Will McGugan
65ffbd3804
Merge branch 'main' into input_blur_message 2025-01-07 15:48:00 +00:00
Will McGugan
8fac02968d
Merge pull request #5447 from TomJGooding/docs-fix-into-grammar
docs: fix 'into' grammar
2025-01-07 15:45:59 +00:00
Will McGugan
1ef199df78
Merge pull request #5440 from davep/fix-scroll-left-description
Fix the description for the left arrow key in ScrollableContainer
2025-01-07 15:43:20 +00:00
Will McGugan
60748cb8ff snapshots 2025-01-07 15:42:19 +00:00
Will McGugan
160f778414 the 2025-01-07 15:40:05 +00:00
Will McGugan
9eb8720cf8
Merge pull request #5460 from Textualize/fix-line-api-resize
fix line api resize
2025-01-07 14:33:50 +00:00
Will McGugan
e1d6c6f789 changelog 2025-01-07 13:42:07 +00:00
Will McGugan
3053f302b9 fix line api resize 2025-01-07 13:41:24 +00:00
Will McGugan
d1b1242b35 micro-op 2025-01-07 11:05:18 +00:00
Will McGugan
51905de50d added box select 2025-01-07 09:55:11 +00:00
Will McGugan
df2b3a30bd
Merge pull request #5409 from Textualize/arbitrary-select
WIP Arbitrary select
2025-01-06 18:53:22 +00:00
Will McGugan
8607933404 discard meta 2025-01-06 18:04:46 +00:00
Will McGugan
11638d98a1 discard meta 2025-01-06 17:57:46 +00:00
Will McGugan
d791860127 tests 2025-01-06 17:52:08 +00:00
Will McGugan
7f8fdef4c4 snapshot update 2025-01-06 17:46:34 +00:00
Will McGugan
76d760d524 snapshot test 2025-01-06 17:40:43 +00:00
Dave Pearson
957645b350
Add a missing component class from OptionList's documentation 2025-01-04 16:57:11 +00:00
Will McGugan
86e227cce6 typing fix 2025-01-04 16:16:54 +00:00
Will McGugan
b8f32074c8 changelog 2025-01-04 16:06:03 +00:00
Will McGugan
f7af710861 fix snapshots 2025-01-04 16:05:22 +00:00
Will McGugan
27e92ff768 snapshots 2025-01-04 15:52:17 +00:00
Will McGugan
affe557618 ignore bullets in markdown 2025-01-04 15:50:17 +00:00
Will McGugan
32ea2a5a0b changelog typing fix 2025-01-04 15:41:53 +00:00
Will McGugan
2386f00add added query_ancestor 2025-01-04 15:39:04 +00:00
Will McGugan
63ef97d6ae allow select 2025-01-04 15:15:01 +00:00
Will McGugan
8fdb3ee825 remove plus one 2025-01-04 14:56:24 +00:00
Will McGugan
b38b9fc985 snapshots 2025-01-04 14:51:11 +00:00
Will McGugan
458a8e5b54 test fixes 2025-01-04 12:02:23 +00:00
Will McGugan
49d2a85d77 test fix 2025-01-03 17:41:39 +00:00
Will McGugan
568152a3dd comments 2025-01-03 17:16:37 +00:00
Will McGugan
5bdf1e4898 last character 2025-01-03 15:58:45 +00:00
Will McGugan
636f1c674f copy digits 2025-01-03 15:45:05 +00:00
Will McGugan
05a7128089 copy to clipboard 2025-01-03 09:33:37 +00:00
Will McGugan
273cc04609 link style 2025-01-02 14:32:58 +00:00
Will McGugan
ccd54fd1bb fix ansi 2025-01-02 10:16:31 +00:00
Will McGugan
3ac04f3022 refresh option list 2025-01-01 17:17:03 +00:00
Will McGugan
0e835a478c typing 2025-01-01 17:05:58 +00:00
Will McGugan
e84eaf5450 tidy 2025-01-01 17:01:42 +00:00
Will McGugan
ff0211fba8 docstring 2025-01-01 16:30:46 +00:00
Will McGugan
16df382981 select bottom righgt 2025-01-01 16:23:51 +00:00
Will McGugan
555fa62857 fix padding style 2025-01-01 10:50:39 +00:00
Will McGugan
617f1bd13c select mechanics 2025-01-01 10:30:15 +00:00
Will McGugan
c46b906bcf merge 2024-12-31 17:22:45 +00:00
Will McGugan
de5dc5c94e fix center align 2024-12-31 17:19:57 +00:00
Will McGugan
4fa861eee7 allow select below text 2024-12-31 16:51:06 +00:00
TomJGooding
dcc24eae82 docs: fix 'into' grammar 2024-12-30 20:33:02 +00:00
Will McGugan
6d13abf259 select justify 2024-12-30 16:08:26 +00:00
Dave Pearson
a77ee4e0d6
Align OptionList page key case to match ancestors 2024-12-30 13:05:14 +00:00
edward-jazzhands
811c4a0ca9 Forgot to also update changelog 2024-12-30 08:47:29 -04:00
edward-jazzhands
e9c65daeac Changed name of Blur message to Blurred 2024-12-30 08:22:34 -04:00
Will McGugan
c2a024dba5 somes docs 2024-12-29 21:10:38 +00:00
Will McGugan
94b6c7428a click to dismiss 2024-12-29 21:10:38 +00:00
Will McGugan
8bf172c491 fix grid sizing 2024-12-29 21:10:38 +00:00
Will McGugan
83b62e1bdf snapshot 2024-12-29 21:10:38 +00:00
Will McGugan
856ee90106 added snapshot 2024-12-29 21:10:38 +00:00
Will McGugan
0c6ed3851e remove call_after_refresh 2024-12-29 21:10:38 +00:00
Darren Burns
16591fb9bf Clarify 2024-12-29 21:10:38 +00:00
Darren Burns
0980fa020f Fix query_one docs mistake, and note that query_one searches under the widget it is called on 2024-12-29 21:10:38 +00:00
Darren Burns
832931159c Test for Input.select_on_focus interaction with AppBlur and AppFocus 2024-12-29 21:10:38 +00:00
Darren Burns
4a989fbc60 Update changelog 2024-12-29 21:10:35 +00:00
Darren Burns
63030d2720 Fix formatting 2024-12-29 21:09:51 +00:00
Darren Burns
15e77c8150 Only apply select_on_focus in Input if the focus event wasn't produced from an app focus event. 2024-12-29 21:09:51 +00:00
Darren Burns
98432b2fd9 Include a flag in Focus events to indicate whether they're due to the App regaining focus or whether they're a standard focus. 2024-12-29 21:09:51 +00:00
Darren Burns
d72feea4e4 Enhance Focus event with from_app_focus argument
Added a new argument `from_app_focus` to the Focus event class to indicate whether the focus event was triggered by the application regaining focus or by user interaction within the Textual app. Updated the constructor to initialize this new attribute.
2024-12-29 21:09:51 +00:00
Darren Burns
a46124f2d2 Changelog formatting 2024-12-29 21:09:51 +00:00
Darren Burns
83cf184c27 Add missing changelog entry 2024-12-29 21:09:51 +00:00
Darren Burns
a4ad73a51e Dont select the text in the command palette input on focus 2024-12-29 21:09:51 +00:00
TomJGooding
f52567df50 fix(stylesheet): fix last-of-type 2024-12-29 21:09:51 +00:00
Darren Burns
4110de7aea Update CHANGELOG.md 2024-12-29 21:09:49 +00:00
Darren Burns
97d43cfa2a Fixing pilot times argument 2024-12-29 21:09:28 +00:00
Darren Burns
044541605d Improve docstrings 2024-12-29 21:09:28 +00:00
Darren Burns
dc01d60167 Update test to account for new interactions with selections and cursor movement 2024-12-29 21:09:28 +00:00
Darren Burns
24ff57f122 Update CHANGELOG 2024-12-29 21:09:26 +00:00
Darren Burns
d79e6a0eae Improving logic 2024-12-29 21:08:51 +00:00
Darren Burns
0be63ef4cb Cursor left and right standardisation when theres an active selection 2024-12-29 21:08:51 +00:00
Darren Burns
5b943c5e8a Refactor cursor movement logic in Input widget to handle selection state in manner similar to VSCode, browsers, etc.
If there's a selection and the cursor left/right keybinding is pressed (without shift held), the cursor will move to the corresponding "edge" of the selection.
2024-12-29 21:08:51 +00:00
Darren Burns
aa63d1d462 Docstrings 2024-12-29 21:08:51 +00:00
Darren Burns
812c48ca10 Update Select documentation 2024-12-29 21:08:51 +00:00
Darren Burns
cb22866add Add a docstring 2024-12-29 21:08:51 +00:00
Darren Burns
29076b8ba8 Update changelog 2024-12-29 21:08:47 +00:00
Darren Burns
977f51933a Snapshot test for Select.type_to_search 2024-12-29 21:08:18 +00:00
Darren Burns
0fe66229b8 Favour match at start of string 2024-12-29 21:08:18 +00:00
Darren Burns
e2fc3b9e66 Add simple "type to search" functionality to Select 2024-12-29 21:08:18 +00:00
Darren Burns
a393cf6a71 Enable animation 2024-12-29 21:08:18 +00:00
Darren Burns
39f06d1e00 Update changelog 2024-12-29 21:08:18 +00:00
Darren Burns
66d209bf0e Add ability to scroll Footer without holding shift 2024-12-29 21:08:17 +00:00
Will McGugan
6bc95017a5
Merge pull request #5444 from Textualize/grid-sizing
fix grid sizing
2024-12-29 10:23:38 +00:00
Will McGugan
cb48fa9210 fix grid sizing 2024-12-29 10:05:09 +00:00
Will McGugan
c242510f7d content line refactor 2024-12-28 17:25:52 +00:00
Dave Pearson
f9e27c39f1
Fix the description for the left arrow key in ScrollableContainer 2024-12-27 17:13:38 +00:00
Dave Pearson
1525e1891a
Don't place a space before a key's tooltip if there is no description
Fixes #5436
2024-12-27 08:30:54 +00:00
Dave Pearson
43e387b41f
Clean up trailing whitespace 2024-12-27 08:29:29 +00:00
Will McGugan
6734f44428 offset style 2024-12-25 09:25:59 +00:00
TomJGooding
8a1c406b20 docs(tutorial): fix pgup pgdn keys styling 2024-12-24 17:13:03 +00:00
TomJGooding
5a72f26618 docs(tutorial): update imported container type 2024-12-24 17:00:38 +00:00
TomJGooding
9827d7a49b docs(action): fix namespaces code example
Fix the code example for action namespaces, where clicking the links
should update the background for that widget only.

Fixes https://github.com/Textualize/textual/issues/5422

Co-authored-by: Andrew Schweitzer <anschweitzer@gmail.com>
2024-12-24 16:16:08 +00:00
Will McGugan
9dd32eb98f text align 2024-12-24 16:02:26 +00:00
Dave Pearson
43b56b68ab
Fix a typo in the Footer __init__ docstring 2024-12-24 11:35:30 +00:00
Dave Pearson
219cb58189
Clean up trailing whitespace 2024-12-24 11:34:23 +00:00
TomJGooding
ddd703bd1b docs: update changelog 2024-12-23 19:38:28 +00:00
TomJGooding
5161cbc6ff fix(header): show command palette tooltip only when enabled 2024-12-23 18:31:41 +00:00
Will McGugan
ae5c4a024b update heuristic 2024-12-23 17:24:59 +00:00
Will McGugan
117e390045 click to select 2024-12-22 20:20:03 +00:00
Will McGugan
d34f4a4bcf
Merge pull request #5420 from Textualize/select-update
Select update
2024-12-21 11:09:30 +00:00
Will McGugan
206d70dc7c snapshot 2024-12-21 10:23:15 +00:00
Will McGugan
3d4562723f added snapshot 2024-12-21 10:18:52 +00:00
TomJGooding
9fa6a0af5e docs(option list): restore missing docstring 2024-12-21 10:09:27 +00:00
Will McGugan
16684721d5 remove call_after_refresh 2024-12-21 10:08:38 +00:00
edward-jazzhands
d01bd6214d Added Blur message to widget and modified _on_blur to post
a message when triggered to match the Submitted and Changed messages.
2024-12-19 20:14:23 -04:00
Will McGugan
cbe63ca0cc allow reverse order 2024-12-19 15:40:37 +00:00
Will McGugan
5364fc786e click and drag to select 2024-12-19 15:24:37 +00:00
Darren Burns
4e91761aeb
Include all statuses
The prior commit didn't include status=4 :)
2024-12-19 12:26:56 +00:00
Darren Burns
5b171e8f5c
Broaden tests for mode 2026 detection.
Terminals seem to report status 2 more often than status 1.

Let's broaden the test to cover all possible statuses (0-4 inclusive).
2024-12-19 12:23:30 +00:00
Will McGugan
2fb527bf68
Merge pull request #5404 from Textualize/footer-scroll
Add ability to scroll Footer without holding shift
2024-12-18 13:34:42 +00:00
Will McGugan
3c7190a616
Merge branch 'main' into footer-scroll 2024-12-18 13:34:28 +00:00
Will McGugan
5889c48ef5
Merge pull request #5403 from Textualize/select-experiment
`Select.type_to_search`
2024-12-18 13:33:50 +00:00
Will McGugan
8301c1c990
Merge branch 'main' into select-experiment 2024-12-18 13:33:34 +00:00
Will McGugan
86e93536b9
Merge pull request #5401 from Textualize/query-one-docs
Updates to `query_one` docs in guide
2024-12-18 13:32:01 +00:00
Will McGugan
f57d50190e
Merge pull request #5400 from Textualize/selection-fix
Selection behaviour update
2024-12-18 13:31:22 +00:00
Will McGugan
0884282e4e
Merge branch 'main' into selection-fix 2024-12-18 13:31:13 +00:00
Will McGugan
d9f8e39932
Merge pull request #5398 from Textualize/pilot-double-click-fix
Fixing pilot times argument
2024-12-18 13:26:58 +00:00
Will McGugan
9016a98636
Merge branch 'main' into pilot-double-click-fix 2024-12-18 13:26:50 +00:00
Will McGugan
39ddb859ee
Merge pull request #5379 from Textualize/command-palette-dont-select-on-focus
Don't apply Input "select on focus" behaviour when app is focused
2024-12-18 13:25:54 +00:00
Will McGugan
3cd079ab2e
Merge pull request #5387 from TomJGooding/fix-stylesheet-fix-last-of-type
fix(stylesheet): fix last-of-type
2024-12-18 13:22:09 +00:00
Will McGugan
82d0025c53 render selection 2024-12-18 13:20:04 +00:00
Darren Burns
4ba155bb68
Docstrings 2024-12-18 10:43:30 +00:00
Darren Burns
9695d04e0f
Update Select documentation 2024-12-18 10:39:09 +00:00
Will McGugan
88b2638350 get_selection 2024-12-17 21:21:57 +00:00
Will McGugan
784a7c63f4 wip 2024-12-17 21:09:55 +00:00
Darren Burns
0956ec4289
Enable animation 2024-12-17 17:10:55 +00:00
Darren Burns
1060a84951
Add a docstring 2024-12-17 16:19:24 +00:00
Darren Burns
5a048b971b
Update changelog 2024-12-17 16:14:43 +00:00
Darren Burns
700dd77c87
Update changelog 2024-12-17 16:13:57 +00:00
Darren Burns
500a8c742b
Add ability to scroll Footer without holding shift 2024-12-17 16:10:10 +00:00
Darren Burns
8a5b98c04f
Snapshot test for Select.type_to_search 2024-12-17 15:42:33 +00:00
Darren Burns
fcf9612520
Favour match at start of string 2024-12-17 15:34:19 +00:00
Darren Burns
2705b78461
Add simple "type to search" functionality to Select 2024-12-17 14:22:38 +00:00
Will McGugan
5f018c9ab4 offsets in styles 2024-12-17 13:40:12 +00:00
Darren Burns
83f92f926a
Clarify 2024-12-17 11:45:57 +00:00
Darren Burns
82d0ac5fff
Fix query_one docs mistake, and note that query_one searches under the widget it is called on 2024-12-17 11:41:53 +00:00
Darren Burns
50b3677d87
Improve docstrings 2024-12-17 11:27:09 +00:00
Darren Burns
a5c568b1b7
Update test to account for new interactions with selections and cursor movement 2024-12-17 11:26:01 +00:00
Darren Burns
21ea23cb03
Update CHANGELOG 2024-12-17 11:25:46 +00:00
Darren Burns
72395d90b6
Improving logic 2024-12-16 17:38:35 +00:00
Darren Burns
a317a6015f
Cursor left and right standardisation when theres an active selection 2024-12-16 15:48:01 +00:00
Darren Burns
8091a739b4
Refactor cursor movement logic in Input widget to handle selection state in manner similar to VSCode, browsers, etc.
If there's a selection and the cursor left/right keybinding is pressed (without shift held), the cursor will move to the corresponding "edge" of the selection.
2024-12-16 15:14:30 +00:00
Darren Burns
9b447b4254
Update CHANGELOG.md 2024-12-16 13:09:51 +00:00
Darren Burns
43654deb92
Fixing pilot times argument 2024-12-16 13:09:01 +00:00
Will McGugan
5cb6cd0374 typo 2024-12-12 17:42:37 +00:00
TomJGooding
fd79807eb7 fix(stylesheet): fix last-of-type 2024-12-12 16:27:10 +00:00
Will McGugan
3f3259246f
Update README.md
Cache buster
2024-12-12 15:37:10 +00:00
Will McGugan
c1bff96ee6 style of inline image 2024-12-12 15:14:40 +00:00
Darren Burns
4953c3bd0f
Test for Input.select_on_focus interaction with AppBlur and AppFocus 2024-12-12 13:47:45 +00:00
Darren Burns
01befb2faf
Update changelog 2024-12-12 13:28:50 +00:00
Darren Burns
b345605682
Fix formatting 2024-12-12 13:23:48 +00:00
Darren Burns
a7bacbbb56
Only apply select_on_focus in Input if the focus event wasn't produced from an app focus event. 2024-12-12 13:20:23 +00:00
Darren Burns
b2d9dc3d2b
Include a flag in Focus events to indicate whether they're due to the App regaining focus or whether they're a standard focus. 2024-12-12 11:49:00 +00:00
Darren Burns
d1464b547f
Enhance Focus event with from_app_focus argument
Added a new argument `from_app_focus` to the Focus event class to indicate whether the focus event was triggered by the application regaining focus or by user interaction within the Textual app. Updated the constructor to initialize this new attribute.
2024-12-12 11:44:51 +00:00
Darren Burns
b444c0f7c3
Changelog formatting 2024-12-12 11:41:07 +00:00
Darren Burns
eb4e192f18
Add missing changelog entry 2024-12-12 11:40:49 +00:00
Darren Burns
053bcdaf5f
Merge branch 'main' of github.com:Textualize/textual into command-palette-dont-select-on-focus 2024-12-12 11:29:43 +00:00
Will McGugan
f888e6ae4a bump post 2024-12-12 10:41:24 +00:00
Will McGugan
32ba9057fa
Merge pull request #5382 from Textualize/bump1.0.0
bump to 1.0.0
2024-12-12 10:37:37 +00:00
Will McGugan
0265e69197
Update README.md 2024-12-11 21:37:42 +00:00
Will McGugan
db13407ce4
Update README.md 2024-12-11 21:35:46 +00:00
Will McGugan
7d2690a654
Update README.md 2024-12-11 21:23:11 +00:00
Will McGugan
674716078e
Update README.md 2024-12-11 21:09:20 +00:00
Will McGugan
2574ef62e8
Update README.md 2024-12-11 20:46:05 +00:00
Will McGugan
0e384b22a4
Update README.md 2024-12-11 20:43:35 +00:00
Will McGugan
44b9eab808
Update README.md 2024-12-11 20:38:46 +00:00
Will McGugan
1e3e51ee19
Update README.md 2024-12-11 20:36:26 +00:00
Will McGugan
677b5beaf3 correction 2024-12-11 19:28:24 +00:00
Will McGugan
74e312e1a4 bump 2024-12-11 19:22:51 +00:00
Will McGugan
df2b72a62b
Merge pull request #5370 from stefgmz/patch-1
Update CHANGELOG.md
2024-12-11 19:15:05 +00:00
Will McGugan
996b8e2f3a
Merge pull request #5381 from Textualize/release-post
Release post
2024-12-11 16:50:53 +00:00
Darren Burns
d46498d8dd
Text area cut line (#5374)
* Updating the behaviour of cut in the TextArea to cut the whole line if there is no selection

* Update bindings in TextArea

* Tidying up, remove unused action, include cut/copy/paste in keybinds table

* Docs fix

* Changelog
2024-12-11 16:25:59 +00:00
Darren Burns
3c120c0ab0
Chaining click events (double/triple click etc) (#5369)
* Add comment about Click events

* Remove unused `App._hover_effects_timer`

* Add missing annotation

* Add missing type annotation

* Add `App._click_chain_timer`

* Add support for click chaining (double click, triple click, etc.)

* Create `App.CLICK_CHAIN_TIME_THRESHOLD` for controlling click chain timing

* Some tests for chained clicks

* Test changes [no ci]

* Have Pilot send only MouseUp and MouseDown, and let Textual generate clicks itself [no ci]

* Fix DataTable click tet [no ci]

* Rename Click.count -> Click.chain

* Test fixes

* Enhance raw_click function documentation in test_app.py to clarify its purpose and behavior

* Refactor imports in events.py: remove Self from typing and import from typing_extensions

* Remove unnecessary pause in test_datatable_click_cell_cursor

* Remove debug print statements and unnecessary pause in App class; add on_mount method to LazyApp for better lifecycle management in tests

* Remove debugging prints

* Add support for double and triple clicks in testing guide

* Add a note about double and triple clicks to the docs

* Turn off formatter for a section of code, and make it 3.8 compatible

* Update changelog [no ci]

* Simplify by removing an unecessary variable in `Pilot.click`

* Remove debugging code

* Add target-version py38 to ruff config in pyproject.toml, and remove formatter comments

* Document timing of click chains

* Pilot.double_click and Pilot.triple_click
2024-12-11 16:25:42 +00:00
Will McGugan
2893f07c38 words 2024-12-11 15:42:44 +00:00
Will McGugan
9c77e64107 words 2024-12-11 15:25:53 +00:00
Will McGugan
a75ef6350d more words 2024-12-11 14:57:43 +00:00
Darren Burns
afb1d0b387
Dont select the text in the command palette input on focus 2024-12-11 14:11:41 +00:00
Darren Burns
4751e8a1db
Merge branch 'main' of github.com:Textualize/textual 2024-12-11 14:09:32 +00:00
Will McGugan
cb84db5b99 Merge branch 'main' into release-post 2024-12-11 13:48:30 +00:00
Will McGugan
db28df79f0 words 2024-12-11 13:48:07 +00:00
Will McGugan
268971e27c
Merge pull request #5365 from Textualize/cp-first-word-boost
boost for first letter matches
2024-12-11 13:47:51 +00:00
Will McGugan
ea2a731aab bail early 2024-12-11 11:57:40 +00:00
Will McGugan
4b105913d5 bump max loops 2024-12-11 11:44:45 +00:00
Will McGugan
dbadf6b6b5 docstring 2024-12-11 11:29:40 +00:00
Will McGugan
cc0615b74c heuristic 2024-12-11 11:28:15 +00:00
Will McGugan
a1bb0561f1 limit loops 2024-12-11 11:13:17 +00:00
Will McGugan
cdffb6c276 heading 2024-12-11 11:08:10 +00:00
Darren Burns
dfe91910e5
Merge branch 'main' of github.com:Textualize/textual 2024-12-10 16:33:11 +00:00
Will McGugan
4a038e3129 wrong words 2024-12-10 16:03:32 +00:00
Will McGugan
924765feff use max over sort 2024-12-10 15:41:39 +00:00
Stefan S.
d614a9755f
Update CHANGELOG.md 2024-12-10 16:07:18 +01:00
Will McGugan
cc5fa9e647 tweak to heuristic 2024-12-10 14:52:57 +00:00
Will McGugan
c55259b0fa fix snapshot 2024-12-10 12:01:45 +00:00
Will McGugan
52439f5cba snapshot 2024-12-10 11:52:06 +00:00
Will McGugan
ba961c4c91 remove superfluous code 2024-12-10 11:35:05 +00:00
Will McGugan
6153e70f6f tests 2024-12-10 11:31:21 +00:00
Will McGugan
3267a9cc93 docstrings 2024-12-10 11:19:41 +00:00
Will McGugan
ce84348e5b simplify 2024-12-09 21:16:30 +00:00
Will McGugan
181ddb9932 simplify 2024-12-09 21:12:49 +00:00
Will McGugan
27264c709d beautiful now 2024-12-09 21:11:25 +00:00
Will McGugan
6047c15f80 match algorithm 2024-12-09 20:47:17 +00:00
Will McGugan
71e6ffd823 words 2024-12-09 19:12:16 +00:00
Will McGugan
56b8dbe2c0 words 2024-12-09 17:22:07 +00:00
Will McGugan
14c68742b4 words and diagrams 2024-12-09 17:05:18 +00:00
Will McGugan
44d250a185
Merge pull request #5368 from ddkasa/patch-2
docs(timer): remove outdated return header in stop method docstring
2024-12-09 16:40:23 +00:00
David Kasakaitis
67ed64e992
docs(timer): remove outdated return header in stop method docstring 2024-12-09 16:26:11 +00:00
Will McGugan
d97ee3aab4 wip 2024-12-09 11:21:27 +00:00
Will McGugan
ecf3fc2b59 test 2024-12-09 10:48:12 +00:00
Will McGugan
ee6df77efe boost for first letter matches 2024-12-09 10:39:23 +00:00
TomJGooding
fe5b37a327
docs(datatable): remove outdated cursor info (#5355) 2024-12-09 10:19:14 +00:00
Will McGugan
d5eaddba8f words 2024-12-09 09:52:48 +00:00
Will McGugan
719e7094e5 Merge branch 'main' into release-post 2024-12-08 16:04:12 +00:00
Will McGugan
aef7c9eb19
Merge pull request #5361 from Textualize/command-palette-highlight
highlight top item
2024-12-08 16:03:27 +00:00
Will McGugan
b609303688 changelog 2024-12-08 16:03:17 +00:00
Will McGugan
985fcb1180 fix tests and snapshots 2024-12-08 15:46:56 +00:00
Will McGugan
5d9ffcaadf highlight top item 2024-12-08 15:36:16 +00:00
Will McGugan
376a2fd85b link 2024-12-08 15:22:59 +00:00
Will McGugan
237c09be71 Merge branch 'main' into release-post 2024-12-08 14:49:33 +00:00
Will McGugan
2686bbabc7 fix dates in changelog 2024-12-08 14:41:40 +00:00
Will McGugan
8430a2f7a8 Merge branch 'main' into release-post 2024-12-08 14:37:58 +00:00
Will McGugan
8cccd7d2c3
Merge pull request #5360 from Textualize/fix-auto-alignment
Fix alignment in auto container
2024-12-08 14:35:14 +00:00
Will McGugan
455c085b53 simplify 2024-12-08 14:34:08 +00:00
Will McGugan
97ae5ababf snapshot 2024-12-08 12:41:30 +00:00
Will McGugan
8b2f056d66 Fix alignment in auto container 2024-12-08 12:36:46 +00:00
Will McGugan
fd4d995a7c added dolphie svg 2024-12-08 11:07:28 +00:00
Will McGugan
1a9279819a more words, remove superfluous code 2024-12-07 18:27:49 +00:00
Will McGugan
72f92e211f Merge branch 'main' into release-post 2024-12-07 12:47:34 +00:00
Will McGugan
5c65cb931d tiny 2024-12-06 18:14:55 +00:00
Will McGugan
ebdd6effd5
Merge pull request #5352 from Textualize/clipboard
Clipboard keys
2024-12-06 17:15:13 +00:00
Will McGugan
8a09562b12 no need to sort 2024-12-06 17:05:11 +00:00
Will McGugan
1e6f3313aa simplify paste 2024-12-06 16:58:24 +00:00
Will McGugan
b2bc4c98a5 simplify 2024-12-06 16:56:01 +00:00
Will McGugan
e723ca2746 changelog 2024-12-06 16:14:11 +00:00
Will McGugan
d040b644f0 update docstring 2024-12-06 16:12:20 +00:00
Will McGugan
004a62e4bf fix key table 2024-12-06 16:06:45 +00:00
Will McGugan
a0c166cc6d changelog 2024-12-06 16:05:03 +00:00
Will McGugan
5f5a38313a snapshots 2024-12-06 16:01:54 +00:00
Will McGugan
e58141ce70 read only exception 2024-12-06 13:26:16 +00:00
Will McGugan
b7c0215b6c changelog 2024-12-06 13:18:23 +00:00
Will McGugan
130e8c7450 test for textarea cut/copy/paste 2024-12-06 13:16:50 +00:00
Will McGugan
49d97dcdd7 changelog 2024-12-06 13:06:07 +00:00
Will McGugan
4ea1044aaf test for cut n paste 2024-12-06 13:01:36 +00:00
Will McGugan
65c213ca8e help to quit 2024-12-06 12:27:16 +00:00
Will McGugan
4890c79944 Clipboard keys 2024-12-06 11:28:56 +00:00
Will McGugan
146eab085d
Merge pull request #5340 from Textualize/input-selection
Input selection
2024-12-06 10:39:06 +00:00
Will McGugan
e2df09cdbb don't stretch svg 2024-12-06 10:24:04 +00:00
Will McGugan
d506af3a62 words and images 2024-12-06 09:10:21 +00:00
Will McGugan
90d9eb429f
Merge pull request #5348 from ddkasa/patch-1
docs(lazy): fix docstring code embed
2024-12-05 19:42:33 +00:00
David Kasakaitis
f447faf900 docs(lazy): fix docstring code embed 2024-12-05 19:34:55 +00:00
Darren Burns
bffbc57fb9
Update snapshots 2024-12-05 17:37:39 +00:00
Darren Burns
2d773ce3bc
Add missing docstrings 2024-12-05 17:36:05 +00:00
Darren Burns
f9c0aebc7a
Add copy_selection bindings 2024-12-05 17:33:09 +00:00
Darren Burns
9ff7cbcd92
Extra Input selection tests 2024-12-05 17:30:30 +00:00
Darren Burns
8e75f4890e
Update CHANGELOG.md 2024-12-05 17:04:32 +00:00
Darren Burns
083b69e1bf
Ensure we dont scroll to the end of an input on the initial value set 2024-12-05 16:49:06 +00:00
Darren Burns
3d21493d5b
Snapshot fixes 2024-12-05 16:36:00 +00:00
Darren Burns
c33f36e7fc
Select Input text on focus 2024-12-05 16:26:29 +00:00
Darren Burns
dbc0dac39e
Rename empty to is_empty in Input Selection class 2024-12-05 16:23:32 +00:00
Darren Burns
3336181ceb
Selection goes under highlights 2024-12-05 16:21:53 +00:00
Will McGugan
2791266e4e snapshot 2024-12-05 15:51:14 +00:00
Darren Burns
4972463743
Import annotations from __future__ 2024-12-05 15:46:18 +00:00
Darren Burns
c1d871d0c4
Create new snapshot 2024-12-05 15:43:48 +00:00
Darren Burns
9212b80b2b
Testing Input.replace and Input.delete 2024-12-05 15:36:53 +00:00
Will McGugan
c6a2f36d1b Merge branch 'main' into release-post 2024-12-05 15:26:08 +00:00
Will McGugan
1bef6755b7
Merge pull request #5347 from Textualize/fix-wacky-align
Fix broken alignment applied to docked widgets
2024-12-05 15:15:35 +00:00
Will McGugan
46f60cfb96 version bump 2024-12-05 15:01:26 +00:00
Will McGugan
8c9908b658 changelog 2024-12-05 15:00:30 +00:00
Will McGugan
71aef35099 snapshot 2024-12-05 14:58:51 +00:00
Darren Burns
a94971724e
Add shift+home and shift+end bindings to Input 2024-12-05 14:50:24 +00:00
Will McGugan
85765f5fcf fix examples 2024-12-05 14:30:48 +00:00
Darren Burns
7a7e553de3
Ensure interaction between selections and insertions (paste and insert) is correct 2024-12-05 14:27:44 +00:00
Will McGugan
20600a9b64 docs index page 2024-12-05 14:24:43 +00:00
Darren Burns
c3339df607
Apply Input.restrict to all edits 2024-12-05 14:19:38 +00:00
Will McGugan
53cb4f9a01 Added posting to front page 2024-12-05 14:05:42 +00:00
Darren Burns
5aa06c258e
Simplify delete_word_left 2024-12-05 13:30:33 +00:00
Darren Burns
1788ca84e7
More simplification 2024-12-05 13:19:57 +00:00
Darren Burns
ff5412587a
Simplifying implementations 2024-12-05 13:12:24 +00:00
Darren Burns
c72d85f735
Creating new snapshots 2024-12-05 12:00:52 +00:00
Darren Burns
8dc81acb1d
Snapshot tests for Input 2024-12-05 12:00:12 +00:00
Will McGugan
4bdadec1aa front page tweak 2024-12-05 11:53:39 +00:00
Darren Burns
f54062222a
Update snapshots, remove old tests 2024-12-05 11:33:53 +00:00
Will McGugan
82ed957419 ws 2024-12-05 11:33:19 +00:00
Darren Burns
5c456566fa
Fix scrolling with double width characters 2024-12-05 11:16:35 +00:00
Darren Burns
64adf927d0
Fix MaskedInput 2024-12-05 11:06:58 +00:00
Darren Burns
02c67bf072
Fix accidental multiple cursors 2024-12-05 10:46:46 +00:00
Will McGugan
4dbd4798f1
Merge pull request #5344 from Textualize/bump0890
bump
2024-12-05 10:17:00 +00:00
Will McGugan
1399c1eaaa bump 2024-12-05 10:14:20 +00:00
Darren Burns
0e0ca7c4f6
Fixes 2024-12-04 18:06:48 +00:00
Will McGugan
ada535fbed post 2024-12-04 17:08:52 +00:00
Darren Burns
bd39e0f7d7
Remove more unused reactives 2024-12-04 15:52:21 +00:00
Darren Burns
e1bf6ff876
Use line API 2024-12-04 15:49:36 +00:00
Will McGugan
707cebc355 remove comment 2024-12-04 15:13:29 +00:00
Darren Burns
f01bcc88db
Select left and right words 2024-12-04 14:30:19 +00:00
Darren Burns
e376a4eed7
Remove input selection foreground 2024-12-04 13:59:04 +00:00
Darren Burns
9c8cfcb202
Click and drag to select 2024-12-04 13:57:46 +00:00
Darren Burns
a1cefa5845
Update validator and watcher to work with Input.selection instead of Input.cursor_position 2024-12-04 13:31:56 +00:00
Darren Burns
24cad3c308
Demoting cursor_position to property 2024-12-04 13:27:35 +00:00
Darren Burns
f029383f96
Initial machinery for text selection in Input widget 2024-12-04 13:25:42 +00:00
Will McGugan
505e97454b release post 2024-12-04 12:56:42 +00:00
Will McGugan
eef9e493d5 change copy 2024-12-04 10:42:06 +00:00
Darren Burns
ca496b4f56
tree-sitter upgrade (#5320)
* Using separate language packages and update lockfile

* Fixing some but not all languages

* Theme updates

* More theme fixes

* Improving the VS Code theme

* Fixes

* Fixing CSS rendering

* Fixing SQL and JavaScript highlight queries

* Update GitHub Actions to run syntax highlighting tests on 3.13, and avoid those tests on 3.8.

* Update CHANGELOG and remove `SyntaxAwareDocument.language_name` property.

* Remove unused Kotlin language syntax highlighting snapshot

* Update CHANGELOG to note that Kotlin syntax highlighting was removed

* Bail out of TextArea.language watcher early if tree-sitter is not installed

* Skip a test on 3.8 as it relates to syntax highlighting (tree-sitter) being available
2024-12-04 10:33:58 +00:00
Will McGugan
a1c34c1a22 remove emoji that don't work on windows 2024-12-03 19:58:33 +00:00
Will McGugan
bc85eae4e8 remove emoji that don't work on WT 2024-12-03 19:49:50 +00:00
Will McGugan
12f462aa86 remove hack 2024-12-03 18:00:26 +00:00
Will McGugan
c302f0b624 remove flicker 2024-12-03 16:51:59 +00:00
Will McGugan
04b91048c7 fix tree control select 2024-12-03 16:35:55 +00:00
Will McGugan
162a76a415 missing changelog entries 2024-12-03 16:21:21 +00:00
Will McGugan
73511ca385 hide instructions 2024-12-03 16:13:17 +00:00
Will McGugan
5adfbe5423
Merge pull request #5335 from Textualize/tab-border
added tab border style
2024-12-03 16:03:35 +00:00
Will McGugan
93f823fb85 missing snapshot 2024-12-03 15:47:45 +00:00
Will McGugan
2e46c55dfb changelog 2024-12-03 15:46:41 +00:00
Will McGugan
bb99d12ef0 added tab border style 2024-12-03 15:46:07 +00:00
Will McGugan
5ef3af10b1
Merge pull request #5332 from Textualize/demo-game-polish
added instructions to Game
2024-12-03 13:44:15 +00:00
Will McGugan
f81b8df9c7
Update README.md 2024-12-03 13:40:45 +00:00
Will McGugan
b85e5c0ad8 disable modes 2024-12-03 13:31:11 +00:00
Will McGugan
9d23750141 added instructions to Game 2024-12-03 13:22:25 +00:00
Will McGugan
bb2214b91f
Merge pull request #5331 from Textualize/sel-list-fix
fix selection list breakage
2024-12-03 13:12:11 +00:00
Will McGugan
449b358d1e
Merge pull request #5330 from Textualize/footer-unjank
no blank frame
2024-12-03 13:11:58 +00:00
Will McGugan
5bf6320b6d snapshot 2024-12-03 11:57:34 +00:00
Will McGugan
74bbf1a813 fix selection list breakage 2024-12-03 11:53:21 +00:00
Will McGugan
26bacc0942 no blank frame 2024-12-03 11:14:16 +00:00
Will McGugan
e196478045
Merge pull request #5324 from Textualize/css-encoding
fix css encoding
2024-12-03 10:28:50 +00:00
Will McGugan
1c903a2d2c
Merge pull request #5322 from Textualize/cp-disable
Cp disable
2024-12-03 10:25:13 +00:00
Will McGugan
afbe07a70b missing snapshot test 2024-12-03 10:24:29 +00:00
TomJGooding
b1c659bde9
fix(examples): import future annotations for code browser (#5329) 2024-12-03 10:04:58 +00:00
Will McGugan
74c4b6cc81
Update README.md 2024-12-02 17:32:21 +00:00
Will McGugan
19f97a7b06 more characters 2024-12-02 16:51:51 +00:00
Will McGugan
8c4b1e0c65 fix css encoding 2024-12-02 16:44:27 +00:00
Will McGugan
65034bf538 allow command palette to be disabled in the footer 2024-12-02 16:28:22 +00:00
Will McGugan
c07b786599 disable cp 2024-12-02 16:26:54 +00:00
Will McGugan
25760c80a3
Update README.md 2024-12-02 15:59:37 +00:00
Will McGugan
cee5ef192a
Update README.md 2024-12-02 15:51:40 +00:00
Will McGugan
9ddb97fb7a
Update README.md 2024-12-02 15:37:24 +00:00
Will McGugan
89919f6e0e
Update README.md 2024-12-02 14:43:31 +00:00
Will McGugan
f0fc06847a
Update README.md 2024-12-02 14:26:34 +00:00
Will McGugan
e874ce5b7b
Update README.md 2024-12-02 14:17:21 +00:00
Will McGugan
4fb77e497b
Update README.md 2024-12-02 14:11:20 +00:00
Will McGugan
029c9e96e1
Update README.md 2024-12-02 12:58:33 +00:00
Will McGugan
6f01d19443
Update README.md 2024-12-02 12:00:27 +00:00
Will McGugan
8bac2dbd3b
Update README.md 2024-12-02 10:45:51 +00:00
Will McGugan
ef14a36bf3 merge 2024-12-01 16:37:18 +00:00
Will McGugan
9d42eb2324
Merge pull request #5314 from Textualize/select-highlight
fix select highlight
2024-12-01 14:12:38 +00:00
Will McGugan
3488b2fb89 changelog 2024-12-01 12:50:23 +00:00
Will McGugan
73dec804a2 snapshot 2024-12-01 12:40:44 +00:00
Will McGugan
ae39349241 typing 2024-11-30 18:54:57 +00:00
Will McGugan
0863ad21f4 restore berhavior 2024-11-30 18:52:05 +00:00
Will McGugan
2acbc64d2b fix select highlight 2024-11-30 18:49:41 +00:00
Will McGugan
901fee4a11
Merge pull request #5313 from Textualize/bump0811
version bump
2024-11-30 17:28:26 +00:00
Will McGugan
a08fb41403 version bump 2024-11-30 17:26:48 +00:00
Will McGugan
43b346ec6e
Merge pull request #5312 from TomJGooding/ci-run-tests-with-python-3-13
ci: run tests with Python 3.13
2024-11-30 17:22:48 +00:00
Will McGugan
44cddcadf1 snapshots 2024-11-30 16:10:43 +00:00
Will McGugan
a27210576c fix select 2024-11-30 16:10:43 +00:00
Will McGugan
faac1a3207 fix refresh 2024-11-30 16:10:43 +00:00
Will McGugan
dcb9229e4e Refresh auto dimensions 2024-11-30 16:10:43 +00:00
Will McGugan
4bae33ea34 optimize scroll 2024-11-30 16:10:43 +00:00
TomJGooding
8e378fa504 docs(digits): fix update docstring raises type
Fix the docstring for `Digits.update`, which raises a TypeError rather
than a ValueError if the value is not a str.
2024-11-30 16:10:43 +00:00
Will McGugan
7970cf54d4
Merge pull request #5311 from Textualize/scroll-optimization
optimize scroll
2024-11-30 15:23:45 +00:00
Will McGugan
ec1a2ec1ba snapshots 2024-11-30 15:12:26 +00:00
Will McGugan
bd3eef78e4 fix select 2024-11-30 15:10:28 +00:00
TomJGooding
b0e9f2ebec ci: run tests with Python 3.13 2024-11-30 14:56:44 +00:00
Will McGugan
2647d548f3 fix refresh 2024-11-30 14:53:51 +00:00
Will McGugan
3c0078ffed Refresh auto dimensions 2024-11-30 14:14:12 +00:00
Will McGugan
8c84274072 optimize scroll 2024-11-30 11:05:53 +00:00
Will McGugan
a913540ba3
Merge pull request #5310 from TomJGooding/docs-digits-fix-update-docstring-raises-type
docs(digits): fix update docstring raises type
2024-11-30 09:25:05 +00:00
TomJGooding
233a142aea docs(digits): fix update docstring raises type
Fix the docstring for `Digits.update`, which raises a TypeError rather
than a ValueError if the value is not a str.
2024-11-30 09:04:11 +00:00
Will McGugan
e5cb8c7620 merge 2024-11-29 20:19:18 +00:00
Will McGugan
44b5298163
Update README.md 2024-11-29 11:35:36 +00:00
Will McGugan
d01d767b2e clock example 2024-11-29 11:10:53 +00:00
Will McGugan
fcba6fcb36 changelog 2024-11-29 10:20:05 +00:00
Will McGugan
bbacd93e84 bump 2024-11-29 10:14:38 +00:00
TomJGooding
8c8057b5b5
fix(listview): update index after items removed (#5135)
* fix(listview): update index after pop

* tests(listview): import future for type hints

* ensure pop error is original index rather than normalized

* fix(listview): update index after remove_items

* update changelog

* reinstate always_update to index reactive

* Revert "reinstate always_update to index reactive"

This reverts commit 68e205ee4f8dad0d543752340eacbb8cd92b2033.

* handle unchanged index without always_update

* update changelog

* update changelog

* add docstrings

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-11-28 16:00:52 +00:00
Darren Burns
79df474d14
Fix ListView styling (#5304)
* Quick fixes to list view styles

* Updating snapshots

* Update changelog
2024-11-28 14:40:17 +00:00
Will McGugan
ca9b4a8118
Merge pull request #5298 from Textualize/fix-remove-tab
auto generate tab ids
2024-11-28 14:37:05 +00:00
Will McGugan
55818c5ed9
Merge pull request #5308 from davep/fix-tree-typo
Correct a typo in Tree.add
2024-11-28 14:35:18 +00:00
Dave Pearson
bfdc6c87bc
Correct a typo in Tree.add 2024-11-28 14:29:32 +00:00
Will McGugan
98cc84dae8 better snapshot 2024-11-27 18:41:27 +00:00
Will McGugan
317019725b snapshot 2024-11-27 17:31:20 +00:00
Will McGugan
a95c37be1e auto generate tab ids 2024-11-27 17:03:22 +00:00
Will McGugan
74a2c90b69
Merge pull request #5294 from Textualize/command-markup
Allow console markup in commands
2024-11-27 17:01:25 +00:00
Will McGugan
b276fd2de9
Update bug_report.md 2024-11-27 16:48:04 +00:00
Will McGugan
61f248bc5a
Update README.md 2024-11-27 15:59:31 +00:00
Will McGugan
c0e4026d74
Update README.md 2024-11-27 15:57:51 +00:00
Will McGugan
0c3f4d53b6
Update README.md 2024-11-27 15:44:59 +00:00
Will McGugan
8e4ba8409b
Merge branch 'main' into command-markup 2024-11-27 15:05:40 +00:00
Will McGugan
4e4b4ed9bd
Merge pull request #5296 from Textualize/app-resize-fix
force intial resize event
2024-11-27 15:04:49 +00:00
Will McGugan
f3fbf6750d
Update README.md 2024-11-27 15:04:36 +00:00
Will McGugan
abcd550e3e handle no app 2024-11-27 14:25:35 +00:00
Will McGugan
923686dc0e changelog 2024-11-27 14:21:54 +00:00
Will McGugan
340731d4fc snapshot 2024-11-27 14:20:41 +00:00
Will McGugan
4c6b3e6d8f force intial resize event 2024-11-27 14:15:39 +00:00
Ikko Eltociear Ashimine
675c592788
docs: update markdown_viewer.md (#5295)
Wether -> Whether
2024-11-27 13:34:35 +00:00
Will McGugan
1539b36803 docstring 2024-11-27 13:31:50 +00:00
Will McGugan
5473288d85 snapshot 2024-11-27 13:30:23 +00:00
Will McGugan
23daf08bfc respect ansi theme 2024-11-27 13:26:03 +00:00
Will McGugan
3072e7cf3b superfluous 2024-11-27 11:59:47 +00:00
Will McGugan
93c1cd3fba remove comment 2024-11-27 11:55:23 +00:00
Will McGugan
88313e3ece snapshot 2024-11-27 11:52:44 +00:00
Will McGugan
4c9988e873 Allow console markup in commands 2024-11-27 11:49:45 +00:00
Will McGugan
f48b71b4bc
Merge pull request #5289 from Textualize/update-tweaks
update tweaks
2024-11-27 11:02:02 +00:00
Will McGugan
e355ad3564 docstring 2024-11-27 11:01:04 +00:00
Will McGugan
add4daa334
Merge pull request #5292 from Textualize/readme-typo-fix
Fix a typo in the README
2024-11-27 10:56:48 +00:00
Darren Burns
1ea30f1c8f
Fix a typo in the README 2024-11-27 10:56:32 +00:00
TomJGooding
e52692a16c
refactor(select): utilize add_options method (#5256) 2024-11-27 10:26:26 +00:00
Will McGugan
9f19f5fddb
Merge pull request #5290 from Textualize/fix-anchor
fix anchor
2024-11-27 10:25:22 +00:00
Will McGugan
be1156aebd changelog 2024-11-27 10:25:07 +00:00
Will McGugan
4b79e88c66 fix anchor 2024-11-26 16:36:08 +00:00
Will McGugan
d117ed4d38 update tweaks 2024-11-26 16:11:42 +00:00
Will McGugan
6f1f7536a2 superfluous line 2024-11-26 13:17:59 +00:00
Will McGugan
b59995789c
Update README.md 2024-11-26 11:44:55 +00:00
Will McGugan
445dfad311
Update README.md 2024-11-26 11:39:07 +00:00
Will McGugan
eb4079c216
Update README.md 2024-11-26 11:35:10 +00:00
Will McGugan
16216f36f5
Update README.md 2024-11-26 11:12:58 +00:00
Will McGugan
04b8ea4d52
Update README.md 2024-11-26 10:56:49 +00:00
Will McGugan
3a8eeddbef
Merge pull request #5282 from Textualize/select-width-auto
fix auto width select
2024-11-24 20:41:13 +00:00
Will McGugan
476c16a4b0 faster 2024-11-24 20:31:46 +00:00
Will McGugan
6a75cc7fd0 snapshots 2024-11-24 20:30:26 +00:00
Will McGugan
61b54ed474 version bump 2024-11-24 20:28:26 +00:00
Will McGugan
2b9dee032e fix auto width select 2024-11-24 20:27:10 +00:00
Will McGugan
df8ffb12d2
Merge pull request #5281 from Textualize/fix-grid-offset
fix for grid plus offset
2024-11-24 17:33:27 +00:00
Will McGugan
7afdb85a26 snapshot 2024-11-24 17:07:15 +00:00
Will McGugan
0d30e809b3 fix for grid plus offset 2024-11-24 16:55:26 +00:00
Will McGugan
de9897b268
Merge pull request #5278 from Textualize/demo-tweaks
Add position:absolute and game to demo
2024-11-24 12:07:14 +00:00
Will McGugan
7279db8b77 error message 2024-11-24 11:53:36 +00:00
Will McGugan
3e99fd26e2 version bump 2024-11-24 11:51:08 +00:00
Will McGugan
ac0dfcf0a1 focus game 2024-11-24 11:47:25 +00:00
Will McGugan
d9acae2261
Merge pull request #5277 from TomJGooding/fix-typing-add-typealias-to-renderresult
fix(typing): add TypeAlias to RenderResult
2024-11-24 11:44:59 +00:00
Will McGugan
7eabc19fa1 tidy game 2024-11-24 11:43:48 +00:00
TomJGooding
4e08515427 fix(typing): add TypeAlias to RenderResult
Fix invalid type errors by adding `TypeAlias` to `RenderResult`.

Closes #5275.
2024-11-24 11:09:08 +00:00
Will McGugan
cbc6e3277a game tidy, snapshots 2024-11-24 10:21:13 +00:00
Will McGugan
74c4138a25 dialog tweak 2024-11-23 21:39:25 +00:00
Will McGugan
109322dff7 add line numbers 2024-11-23 21:32:45 +00:00
Will McGugan
e0d70d5bc8 start game 2024-11-23 21:30:13 +00:00
Will McGugan
cf8908f325 remove bad words 2024-11-23 20:30:17 +00:00
Will McGugan
0bf6b6e567 digits 2024-11-23 20:25:41 +00:00
Will McGugan
ed4b11ef2a documented position absolute 2024-11-23 20:02:22 +00:00
Will McGugan
7e30440171 new game 2024-11-23 17:31:24 +00:00
Will McGugan
acbce32739 tile game 2024-11-23 17:26:30 +00:00
Will McGugan
017d15652d consistant border around logs 2024-11-22 14:58:23 +00:00
Will McGugan
189603bf40 tweaks 2024-11-22 09:08:10 +00:00
Will McGugan
d2467ef016
Merge pull request #5267 from Textualize/loading-input-disable
disable loading widgets
2024-11-21 17:57:01 +00:00
Will McGugan
290a6f4ce0
Merge pull request #5270 from Textualize/select-constrain
Select constrain
2024-11-21 17:56:12 +00:00
Will McGugan
6cf0a786a9 remove escape sequence that breaks iTerm 2024-11-21 16:24:11 +00:00
Will McGugan
c0dc60b9f2 possible fix for option list race condition 2024-11-21 16:11:41 +00:00
Will McGugan
822591dbd5 snapshot 2024-11-21 16:06:15 +00:00
Will McGugan
e60de71aac Fix select constrain 2024-11-21 16:05:12 +00:00
Will McGugan
d82c0270e1 consistency 2024-11-20 19:02:27 +00:00
Will McGugan
0fc55f8119 words 2024-11-20 18:48:59 +00:00
Will McGugan
1253899dd2 not ready 2024-11-20 18:47:56 +00:00
Will McGugan
0f93bb7129 remove unused 2024-11-20 18:46:53 +00:00
Will McGugan
406766b6b5 don't add new parameter 2024-11-20 18:44:07 +00:00
Will McGugan
db7d1550e9 changelog 2024-11-20 18:17:42 +00:00
Will McGugan
33c0afe61d disable loading widgets 2024-11-20 18:16:44 +00:00
Will McGugan
49856e6454
Merge pull request #5264 from Textualize/offset-fixes
Offset fixes
2024-11-20 17:32:36 +00:00
Will McGugan
f1a6036919 sneaky commit, bet Darren doesn't notice. 2024-11-20 14:28:34 +00:00
Will McGugan
1aaa069786 fix absolute offset 2024-11-20 14:09:21 +00:00
Will McGugan
9f522a6066 Remove comments 2024-11-20 13:28:05 +00:00
Will McGugan
0c1c59d6b8 grid and snapshot 2024-11-20 13:26:33 +00:00
Will McGugan
9278789b6d changelog 2024-11-20 13:21:04 +00:00
Will McGugan
60f2b2c2c9 dock offsets 2024-11-20 13:20:00 +00:00
Will McGugan
068e439a28 constrain logic 2024-11-20 11:15:46 +00:00
Will McGugan
c9efd103c1 alternative constrain 2024-11-20 10:58:45 +00:00
TomJGooding
e6ade76c6b
fix(demo): fix maximize tips (#5258) 2024-11-19 21:03:22 +00:00
Will McGugan
0e1af95893
Merge pull request #5259 from Textualize/fix-broken-style-reference
fix broken styles reference
2024-11-19 16:46:28 +00:00
Will McGugan
70dc4f232a smooth scroll view 2024-11-19 16:42:28 +00:00
Will McGugan
fd1acb9577 fix broken styles reference 2024-11-19 16:26:35 +00:00
Will McGugan
532a6b025c
Merge pull request #5257 from Textualize/tutorial-update
Tutorial update
2024-11-19 15:51:27 +00:00
Will McGugan
9ce509f120 bump textual-dev and update snapshots 2024-11-19 15:38:24 +00:00
Will McGugan
5254e6125c version bump 2024-11-19 15:26:48 +00:00
Will McGugan
4ff8e096e9 words 2024-11-19 15:19:59 +00:00
Will McGugan
5cf1ced22f wording 2024-11-19 15:14:56 +00:00
Will McGugan
c12fe839e9 words 2024-11-19 14:51:00 +00:00
Will McGugan
e40f95d4f9 wording 2024-11-19 14:46:50 +00:00
Will McGugan
9f18dfe7a8 smooth scrolling 2024-11-19 14:41:38 +00:00
Will McGugan
43befce654
Update docs/tutorial.md
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-11-19 14:36:47 +00:00
Will McGugan
0ecd621209
Update docs/tutorial.md
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-11-19 14:36:33 +00:00
Will McGugan
80bf6eb887 words 2024-11-19 12:43:45 +00:00
Will McGugan
0f4f423514 flesh out tutorial 2024-11-19 11:41:26 +00:00
Will McGugan
f3a98d1419 Tutorial update 2024-11-18 22:01:44 +00:00
Will McGugan
8d99130708
Merge pull request #5253 from Textualize/fix-scroll-placements
Fix scroll placements
2024-11-18 16:18:55 +00:00
Will McGugan
f917421727 version bump 2024-11-18 16:07:39 +00:00
Will McGugan
e32ea49422
Merge branch 'main' into fix-scroll-placements 2024-11-18 16:05:32 +00:00
Will McGugan
fbb870d17c
Update tests/test_compositor.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-11-18 16:05:09 +00:00
Darren Burns
8b616e13bd
Ensure theme variables available on initial render (#5254)
* Ensure theme variables are available immediately

* Add snapshot test ensuring theme variables are available in code

* Fix theme variables
2024-11-18 16:04:16 +00:00
Will McGugan
890b872513 changelog 2024-11-18 15:58:29 +00:00
Will McGugan
60638e6b6f comment 2024-11-18 15:55:21 +00:00
Will McGugan
2a1f74e699 test 2024-11-18 15:54:12 +00:00
Will McGugan
3addcdbf03 simplify 2024-11-18 15:38:39 +00:00
Will McGugan
073eb0e0ee restore widget region 2024-11-18 15:07:04 +00:00
Will McGugan
9d8a3586f0 typing simplify 2024-11-18 14:53:50 +00:00
Will McGugan
ff061d180d fix placement 2024-11-18 14:22:23 +00:00
Will McGugan
4c805bf442 fix for spatial map and layout 2024-11-18 14:03:53 +00:00
Will McGugan
845840e830 add offset to WidgetPlacement 2024-11-18 10:54:16 +00:00
Will McGugan
435f73b60d optimization 2024-11-18 10:38:20 +00:00
Edward Jazzhands
86fc1054e8
fixed docstring in Static to reflect 'renderable' being renamed to 'content' (#5246) 2024-11-18 10:15:24 +00:00
Will McGugan
18ba741718 fix demo 2024-11-16 18:51:05 +00:00
Will McGugan
5a738fad04 changelog date 2024-11-16 18:29:28 +00:00
Will McGugan
495df59aa0
Merge pull request #5238 from Textualize/demo-polish
Demo polish
2024-11-16 18:23:44 +00:00
Will McGugan
060ae89b34 version bump 2024-11-16 18:01:32 +00:00
Will McGugan
91c71e564e changelog 2024-11-16 18:00:43 +00:00
Will McGugan
d8f149de5c refine 2024-11-16 17:56:29 +00:00
Will McGugan
6f79324703 changelog 2024-11-16 17:53:08 +00:00
Will McGugan
35035628ee Changelog 2024-11-16 17:52:20 +00:00
Will McGugan
e8b1c211b7
Merge pull request #5241 from Textualize/theme-unregister-fix
Registering builtin themes on startup
2024-11-16 17:51:32 +00:00
Will McGugan
1af8e33d69
Merge pull request #5233 from TomJGooding/fix-tabs-update-highlighting-when-tab-removed
fix(tabs): update highlighting when tab removed
2024-11-16 17:46:15 +00:00
Will McGugan
bbfd882f52
Merge pull request #5244 from KrzysztofSobol/main
fixed the "backround" typo
2024-11-16 17:45:38 +00:00
Will McGugan
57e65d95d0 more efficient order styles 2024-11-16 17:42:43 +00:00
Will McGugan
d795c43dd1 Refine 2024-11-16 17:08:50 +00:00
Kex
f3460f84af fixed the "backround" typo 2024-11-16 13:47:49 +01:00
Darren Burns
101f199b33
Registering builtin themes on startup 2024-11-16 00:12:07 +00:00
Will McGugan
07bd5dbbfd timing issue in test 2024-11-15 18:17:44 +00:00
TomJGooding
46a9fa0e68 update snapshot 2024-11-15 17:44:50 +00:00
TomJGooding
17400c1d09 Merge branch 'main' into fix-tabs-update-highlighting-when-tab-removed 2024-11-15 17:24:10 +00:00
TomJGooding
98172d626e
fix(text area): fix mouse selection with tab characters (#5237) 2024-11-15 17:12:17 +00:00
Will McGugan
12f3cc67fa catch bad screen on timer 2024-11-15 17:02:23 +00:00
Will McGugan
a0d458789d test fixes 2024-11-15 16:42:06 +00:00
Will McGugan
326e6c4fe3 tabs demo 2024-11-15 16:02:33 +00:00
Will McGugan
f74e4db5e0 harden lazy reveal 2024-11-15 14:28:46 +00:00
Will McGugan
86fc98a008 tree demo 2024-11-15 14:15:18 +00:00
Will McGugan
09a439035d catch no screen 2024-11-15 12:14:37 +00:00
Will McGugan
df630305d2 markdowns 2024-11-15 12:09:39 +00:00
Will McGugan
672daf8aa8 Add text area 2024-11-15 10:16:16 +00:00
Will McGugan
a5c3c70596 disable button text 2024-11-14 21:15:19 +00:00
Will McGugan
75433036e9 digit 2024-11-14 21:08:34 +00:00
Will McGugan
d31b373d5d snapshot fixes 2024-11-14 21:04:31 +00:00
Will McGugan
6dfe107805 Merge branch 'main' into demo-polish 2024-11-14 20:44:35 +00:00
Will McGugan
0e9e3205e7
Merge pull request #5235 from Textualize/theme-fixes
Theme fixes
2024-11-14 20:44:15 +00:00
Will McGugan
35d6d6ab53 restore previous buttons 2024-11-14 19:25:28 +00:00
Will McGugan
7c1ebfce1d button tweak 2024-11-14 19:24:17 +00:00
Will McGugan
6fadab901f remove scroll pause 2024-11-14 19:21:02 +00:00
Will McGugan
9f49bc2050 add is_scrolling 2024-11-14 19:06:08 +00:00
Will McGugan
201f106055 test fixes 2024-11-14 18:39:16 +00:00
Will McGugan
adeb306ac9 empty sparklines 2024-11-14 17:59:58 +00:00
Darren Burns
d942e52140
Fix snapshot, record theme_variables on App 2024-11-14 17:33:57 +00:00
Will McGugan
0a7a292c51 maximize demo widgets 2024-11-14 17:32:52 +00:00
Will McGugan
caa7dde4f1 default theme logic 2024-11-14 16:53:07 +00:00
Darren Burns
6902c1a1ac
Update snapshots 2024-11-14 16:14:58 +00:00
Darren Burns
e82f6d5e5e
Fixing extra spacing between tabs 2024-11-14 16:09:00 +00:00
Will McGugan
ece2e89006 more data in data table 2024-11-14 15:51:33 +00:00
Will McGugan
e377822a82 copy 2024-11-14 14:03:41 +00:00
Darren Burns
d6ef1c08ab
Renaming App.search to App.search_commands 2024-11-14 13:57:31 +00:00
Darren Burns
6978f80cc3
Formatting 2024-11-14 13:53:25 +00:00
Darren Burns
1e5851b8b7
Updating snapshots 2024-11-14 13:51:34 +00:00
Darren Burns
842a27fefe
Remove panel override 2024-11-14 13:49:05 +00:00
Will McGugan
f84b166cdf copy tweak 2024-11-14 13:45:59 +00:00
Darren Burns
478bb0b591
Modified panel color 2024-11-14 13:30:31 +00:00
Darren Burns
b84f68214d
Improving legibility of text in some widgets 2024-11-14 13:23:08 +00:00
Will McGugan
dcfbbc38b6 demo updates 2024-11-14 13:00:40 +00:00
Darren Burns
7914cceff0
Fixing switch themes on light mode 2024-11-14 12:47:08 +00:00
Darren Burns
1c909aaa93
Simplifying CSS, fixing light mode toggle button more 2024-11-14 12:07:48 +00:00
Darren Burns
a2407f9377
Fixing more CSS, particularly around the widgets which involve toggling elements. 2024-11-14 11:39:04 +00:00
Darren Burns
260f28fd56
Ensuring key in textual-light footer is legible 2024-11-14 10:26:54 +00:00
TomJGooding
7db3e581d2 update changelog 2024-11-13 22:09:55 +00:00
TomJGooding
300913bee9 call _highlight_active only if active unchanged 2024-11-13 21:50:19 +00:00
TomJGooding
16ccf07401 add snapshot 2024-11-13 21:38:18 +00:00
TomJGooding
81bb260f8c fix(tabs): update highlighting when tab removed 2024-11-13 21:06:30 +00:00
Darren Burns
85babd2220
Merge branch 'main' of github.com:Textualize/textual into theme-fixes 2024-11-13 17:46:28 +00:00
Darren Burns
2db9fbb1c6
Working towards aligning radioset/togglebutton/selectionlist styles 2024-11-13 17:39:10 +00:00
Will McGugan
9f32476af2
Theme tweaks (#5232)
* theme tweaks

* style tweaks

* snapshots

* demo tweaks

* projects tweaks
2024-11-13 17:38:46 +00:00
Darren Burns
1ca098c69c
Remove unused rule 2024-11-13 16:36:36 +00:00
Darren Burns
b35b12872a
Improving textual-light, border fixes 2024-11-13 15:59:13 +00:00
Will McGugan
365abe657e
Merge pull request #5197 from Textualize/content
New render protocol
2024-11-13 13:47:44 +00:00
Will McGugan
d426e698b3 update protocol definition and docs 2024-11-13 12:09:58 +00:00
Will McGugan
021e8a7c24
Update src/textual/demo/projects.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-11-13 12:01:58 +00:00
Will McGugan
1a49335cc7 remove snapshot 2024-11-13 11:47:17 +00:00
Will McGugan
8be4a8112a merge 2024-11-13 11:23:27 +00:00
Will McGugan
5de3a80b97
Merge pull request #5087 from Textualize/themes
Themes and command palette improvements
2024-11-13 10:30:32 +00:00
Will McGugan
91d6c8416d fix align methods 2024-11-13 10:09:36 +00:00
Will McGugan
65bd3872f6 docstrings and comments 2024-11-12 17:25:10 +00:00
Will McGugan
bfb9be286a Merge branch 'main' into content 2024-11-12 16:32:31 +00:00
Darren Burns
e7357622cc
Merge branch 'main' into themes 2024-11-12 16:13:48 +00:00
Will McGugan
2fd1dccca9 typing 2024-11-12 16:06:50 +00:00
Darren Burns
e3badeabbc
Changelog 2024-11-12 15:57:13 +00:00
Will McGugan
841c08b3c2
Merge pull request #5229 from Textualize/iterm-fix
iterm patch
2024-11-12 15:45:24 +00:00
Will McGugan
6a14a8651b typing 2024-11-12 15:38:44 +00:00
Will McGugan
9323ad7e1c test for content 2024-11-12 15:30:05 +00:00
Will McGugan
99d1ab926a Merge branch 'iterm-fix' into content 2024-11-12 15:28:58 +00:00
Will McGugan
a5a6edca82 iterm patch 2024-11-12 15:24:46 +00:00
Will McGugan
bfe0694ec5 forgotten attributes 2024-11-12 14:36:49 +00:00
Will McGugan
541a70f28e content api tweaks and tests 2024-11-12 14:15:39 +00:00
Will McGugan
bf53317b08 snapshot tests 2024-11-12 13:12:40 +00:00
Will McGugan
254e6e0bd2 test fixes 2024-11-12 13:00:02 +00:00
Will McGugan
32e8657a19 tests 2024-11-12 12:45:17 +00:00
Will McGugan
dde05110cf Merge branch 'main' into content 2024-11-12 12:08:00 +00:00
Will McGugan
1cf1747a7d alpha css 2024-11-12 12:07:39 +00:00
Will McGugan
436123a005
Merge pull request #5217 from Textualize/in-band-resize
in band resize protocol
2024-11-12 11:57:30 +00:00
Darren Burns
1ba9a037f3
Formatting 2024-11-12 11:47:28 +00:00
Will McGugan
0b323fe8db
Merge branch 'main' into in-band-resize 2024-11-12 11:46:47 +00:00
Darren Burns
472e94ad26
Merge branch 'main' into themes 2024-11-12 11:39:55 +00:00
Darren Burns
05a6314a36
Refactor theme selection (add search_themes) 2024-11-12 11:04:29 +00:00
Will McGugan
d8ba63d054
Merge pull request #5221 from Textualize/invalidate-css
Invalidate CSS
2024-11-11 17:09:54 +00:00
Will McGugan
f2fa5ce37f
Merge branch 'main' into in-band-resize 2024-11-11 17:08:50 +00:00
Will McGugan
da1178fbd9
Merge pull request #5226 from Textualize/reveal
lazy reveal
2024-11-11 17:08:10 +00:00
Will McGugan
6699e51954 pause for thought 2024-11-11 16:41:38 +00:00
Will McGugan
09240f078d increase pause 2024-11-11 16:19:32 +00:00
Will McGugan
b7f6504e98 double pause 2024-11-11 16:06:31 +00:00
Will McGugan
08c80b9063 fix defaults 2024-11-11 15:43:51 +00:00
Will McGugan
f9f220dc8e blur action 2024-11-11 15:40:40 +00:00
Will McGugan
19b6dd8c00 whitespace 2024-11-11 15:35:53 +00:00
Will McGugan
e88aa970d0 changelog 2024-11-11 15:30:43 +00:00
Will McGugan
22ff9337de lazy reveal 2024-11-11 15:30:14 +00:00
Darren Burns
8905b661cc Fixing snapshots, updating toasts to work better with themes 2024-11-11 13:02:37 +00:00
Darren Burns
f2f760682a Updating toasts to follow new theme system conventions 2024-11-11 12:54:52 +00:00
Darren Burns
fb7fb60574 Various DataTable style fixes - fix text colors, fixed header styling in themes 2024-11-11 12:29:55 +00:00
Will McGugan
ad99c782e5 simplify 2024-11-10 20:48:21 +00:00
Will McGugan
c72ebcff6d fix border style 2024-11-10 20:47:56 +00:00
Will McGugan
1d30d6a51e auto colors and component classes 2024-11-10 20:41:01 +00:00
Will McGugan
c942d8dc21 simplify types 2024-11-10 17:31:38 +00:00
Will McGugan
7b2214c43c docstrings 2024-11-10 13:41:12 +00:00
Will McGugan
636cd444f4 tidy 2024-11-10 13:05:57 +00:00
Will McGugan
65481b9768 remove debug 2024-11-10 12:39:37 +00:00
Will McGugan
f358003b33 simplofy render 2024-11-10 12:34:10 +00:00
Will McGugan
f8b7daaea6 select fixes 2024-11-09 20:30:08 +00:00
Will McGugan
945e4290d3 test fix 2024-11-09 19:12:27 +00:00
Will McGugan
31d9ad9de5 remove note 2024-11-09 16:28:17 +00:00
Will McGugan
7aa434a1af rename 2024-11-09 16:23:32 +00:00
Will McGugan
1e3f51bb78 container width 2024-11-09 15:05:33 +00:00
Will McGugan
9ec9d3fbcf formatting 2024-11-09 14:55:13 +00:00
Will McGugan
482ce49074 renderable measure 2024-11-09 14:43:44 +00:00
Will McGugan
bb20493838 fix option list content 2024-11-09 14:34:11 +00:00
Will McGugan
da321c2a25 styled strips 2024-11-09 12:09:06 +00:00
Will McGugan
5ae90edb74 content protocol 2024-11-09 10:18:28 +00:00
Will McGugan
783b085c57 test fixes 2024-11-08 20:37:45 +00:00
Will McGugan
a317c04520 content padding 2024-11-08 16:04:00 +00:00
Will McGugan
466b09ee10 update refresh 2024-11-08 12:11:19 +00:00
Will McGugan
7f146ca1b8 rename 2024-11-08 11:50:11 +00:00
Will McGugan
e157c6b2b1 resize on idle 2024-11-08 11:28:06 +00:00
Will McGugan
d25c89aae9 docstring 2024-11-08 11:13:43 +00:00
Will McGugan
5d6c4d6d7a fix line wrap, rename event to message 2024-11-08 11:09:33 +00:00
Will McGugan
bb30ab5274 line wrapping and pixel dimensions 2024-11-07 19:31:19 +00:00
Darren Burns
e3d0fd268c Import annotations from future in label py 2024-11-07 19:25:35 +00:00
Darren Burns
1de46af83d Updating snapshots 2024-11-07 19:21:11 +00:00
Will McGugan
04e13e17ae test fixed 2024-11-07 18:22:59 +00:00
Will McGugan
0d1af6babd in band resize protocol 2024-11-07 18:07:08 +00:00
Will McGugan
da98220440 add padding 2024-11-07 16:34:19 +00:00
Darren Burns
778d78e9e1 Merge remote-tracking branch 'origin' into themes 2024-11-07 15:24:01 +00:00
Darren Burns
7fad6966ba Ansi theme related changes 2024-11-07 15:22:50 +00:00
Darren Burns
1d21101c52 Typing for label variants 2024-11-07 12:00:45 +00:00
Darren Burns
d78af48b29 Add Label variants 2024-11-07 11:56:28 +00:00
TomJGooding
a3fee688bb
fix(help panel): prevent duplicated key displays (#5066)
* fix(help panel): prevent duplicated key displays

* fix changelog update

* de-dupe key displaus with keymaps

* rename variables for clarity

* change to dict.fromkeys for faster de-duping
2024-11-07 10:26:01 +00:00
Will McGugan
b5c44c20bc
refresh on mode switch (#5211) 2024-11-07 10:17:20 +00:00
Will McGugan
579b604f54 update projects 2024-11-06 21:19:02 +00:00
Will McGugan
3462706e78 visual styles 2024-11-06 21:13:25 +00:00
Darren Burns
d41f062cb5
Docs updates 2024-11-06 15:31:09 +00:00
Will McGugan
1a5fbb3b35 option list visuals 2024-11-06 15:11:46 +00:00
Darren Burns
b3c9089e6a
Snapshot updates 2024-11-06 14:29:50 +00:00
Darren Burns
e23a0ef289
Theme examples 2024-11-06 14:23:57 +00:00
Darren Burns
62b8da1a18
Fix highlighting in tutorial 2024-11-06 11:17:13 +00:00
Darren Burns
23577858f3
Highlight lines in docs code 2024-11-06 11:00:07 +00:00
Darren Burns
ff92e72f2d
Enumerating CSS variables 2024-11-06 10:50:08 +00:00
Darren Burns
be9f8eb00e
Themes docs 2024-11-05 16:50:20 +00:00
Will McGugan
6c57e6f766 visual prompt 2024-11-05 15:12:44 +00:00
Darren Burns
994e0a5e10
Docs for text color 2024-11-05 14:19:48 +00:00
Darren Burns
232ad2e7fd
Non-alpha muted backgrounds 2024-11-05 14:05:41 +00:00
Darren Burns
affbdc187e
Muted color variations 2024-11-05 14:02:37 +00:00
Will McGugan
b3c846773e text alignment 2024-11-05 13:29:47 +00:00
Darren Burns
365b758f89
Adding text-colors to theme sandbox, fixing warning color in gruvbox 2024-11-05 13:24:22 +00:00
Darren Burns
1f0ffba83b
Fix demo background color 2024-11-05 13:06:02 +00:00
Darren Burns
1f5605412a
Text color vars 2024-11-05 12:53:17 +00:00
Will McGugan
06387de52b fix full justify 2024-11-05 11:49:20 +00:00
Darren Burns
0cbaa22a63
Merge branch 'themes' of github.com:Textualize/textual into themes 2024-11-05 11:13:19 +00:00
Darren Burns
2c5735bc81
Set App CSS color to $foreground 2024-11-05 11:13:08 +00:00
Will McGugan
09003dfbc0
Merge pull request #5207 from tfh-cri/patch-1
fix: missing f-string in App._parse_action()
2024-11-04 22:34:38 +00:00
Tom Feist-Hassan
b4f8347453
fix: missing f-string in App._parse_action() 2024-11-04 22:19:00 +00:00
Will McGugan
b268c6fa38 fix new lines wrapping 2024-11-04 17:57:12 +00:00
Will McGugan
d1e5fd0a8d Visual protocol 2024-11-04 17:28:13 +00:00
Will McGugan
241381879f
Merge pull request #5202 from Textualize/bump0852
bump version
2024-11-02 18:17:34 +00:00
Will McGugan
56058635ec bump version 2024-11-02 18:13:41 +00:00
Will McGugan
69b68d1b04 visual 2024-11-02 18:11:40 +00:00
Will McGugan
01f5a98104 Remove base style 2024-11-02 12:52:33 +00:00
Darren Burns
735a99b881 Updating radio_set snapshots 2024-10-31 13:41:51 +00:00
Darren Burns
29d0087d2c Fixing RadioSet styles 2024-10-31 13:27:50 +00:00
Darren Burns
27d8079969 Buttons styles and their docs, updating snapshots 2024-10-31 11:31:10 +00:00
Darren Burns
422241f1a5 Button foreground colors 2024-10-31 11:07:10 +00:00
Will McGugan
310e208486 span repr 2024-10-30 21:33:01 +00:00
Will McGugan
c0be2a4526 opacity 2024-10-30 20:47:03 +00:00
Darren Burns
378dcd950e
Theme fixes 2024-10-30 16:51:48 +00:00
Will McGugan
2464b3e6f5 expand tabs 2024-10-30 16:22:34 +00:00
Will McGugan
eaeeea2abb fix justify center and right 2024-10-30 16:12:51 +00:00
Will McGugan
e577405b3c added wrapping 2024-10-30 15:59:42 +00:00
Darren Burns
51da5cfcdb
Testing fixes 2024-10-30 14:52:23 +00:00
Darren Burns
f9cc4b847c
Styling fixes 2024-10-30 13:57:58 +00:00
Darren Burns
12a83efa15
Fixing ListView item cs 2024-10-30 13:15:39 +00:00
Darren Burns
d2c588c908
Tabs hover styling fix 2024-10-30 11:53:03 +00:00
Darren Burns
cd5aeebdfb
Tabs styled with block cursor 2024-10-30 11:43:48 +00:00
Will McGugan
9ab4911435 new content class 2024-10-29 16:23:15 +00:00
Darren Burns
ace924f91f
Snapshot fixes part 41 2024-10-29 14:36:50 +00:00
Darren Burns
fa7afb423d
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-29 14:31:29 +00:00
Darren Burns
39568b8edd
Pilot tests for command palettes 2024-10-29 14:18:31 +00:00
Will McGugan
cc4e9c4bcf link doc 2024-10-29 13:58:10 +00:00
Darren Burns
6ed7b54c1d
Snapshot for App.search 2024-10-29 13:56:40 +00:00
Will McGugan
dca0179c5e expose enabled to constructor 2024-10-29 13:53:59 +00:00
Will McGugan
6ec3247531 sneaky fix, don't tell Darren 2024-10-29 13:50:57 +00:00
Will McGugan
40da260cd2
Merge pull request #5196 from Textualize/optional-httpx
Make httpx optional in demo
2024-10-29 13:48:24 +00:00
Darren Burns
7f40cbde90
Test ensure custom theme variables work as expected 2024-10-29 13:43:22 +00:00
Darren Burns
80af329cfd
Remove debug print 2024-10-29 13:41:38 +00:00
Darren Burns
de64fb8c48
Fixing additional variables not working 2024-10-29 13:35:15 +00:00
Will McGugan
1bb1972a3a wording 2024-10-29 12:26:27 +00:00
Will McGugan
844766e450 Make httpx optional in demo 2024-10-29 12:24:27 +00:00
Will McGugan
ac5d571e94
Merge pull request #5190 from Textualize/fix-focus-within
fixed focus-within
2024-10-29 12:03:47 +00:00
Will McGugan
c8db1d6cfe typing 2024-10-29 11:45:42 +00:00
Darren Burns
c75efbf452
Snapshot tests for changing themes 2024-10-29 11:37:59 +00:00
Darren Burns
7ed0bd61a9
Updating snapshots on disk 2024-10-29 11:19:17 +00:00
Darren Burns
e591646992
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-29 11:18:32 +00:00
Darren Burns
54c6f78d60
Snapshot fixes 2024-10-29 11:16:49 +00:00
TomJGooding
ffd780e879
fix(demo): fix typos and spelling (#5195) 2024-10-29 10:47:52 +00:00
Will McGugan
4501ff2a46
Merge pull request #5191 from Textualize/query-errors 2024-10-29 10:29:13 +00:00
Will McGugan
440ff28db8
Better validation of environment variables (#5192)
* Better validation of environment variables

* wording
2024-10-29 10:13:04 +00:00
Will McGugan
2277030025 hide esc 2024-10-28 22:16:06 +00:00
Will McGugan
14159420c0 query errors 2024-10-28 21:18:09 +00:00
Will McGugan
1d08b1da9f changelog 2024-10-28 17:31:19 +00:00
Will McGugan
f41363a56f rename 2024-10-28 17:30:44 +00:00
Will McGugan
e5a01fd12f not attached when there is no active app 2024-10-28 17:28:04 +00:00
Will McGugan
3a78f9c393 attached works 2024-10-28 17:25:05 +00:00
Will McGugan
0fd9deb61c no longer requried 2024-10-28 17:22:57 +00:00
Will McGugan
6de2604045 attached -> mounted 2024-10-28 17:22:00 +00:00
Will McGugan
00954c0105 don't update when not mounted 2024-10-28 17:21:43 +00:00
Will McGugan
14c43ef758 fixed focus-within 2024-10-28 17:18:30 +00:00
Darren Burns
a274129081
Fixing yet more tests 2024-10-28 16:17:04 +00:00
Darren Burns
62d2151db0
Fix some tests 2024-10-28 15:19:14 +00:00
Darren Burns
5fc78aee81
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-28 14:40:31 +00:00
Will McGugan
3992a38e84
Merge pull request #5188 from Textualize/reverse-micro-op
remove __int__
2024-10-28 14:39:30 +00:00
Will McGugan
3170d7a76f int to floor 2024-10-28 14:24:14 +00:00
Will McGugan
dd4ec417ff remove __int__ 2024-10-28 14:19:41 +00:00
Darren Burns
26084133a5
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-28 14:09:20 +00:00
Will McGugan
dabb7734d3
Merge pull request #5186 from Textualize/layout-micro-ops
micro ops
2024-10-28 14:06:20 +00:00
Will McGugan
e90d6d2896 no abbreviations 2024-10-28 13:10:21 +00:00
Darren Burns
4589f090a9
$foreground instead of $text in more places 2024-10-28 13:01:29 +00:00
Will McGugan
e274cadef8 Merge branch 'main' into layout-micro-ops 2024-10-28 12:27:20 +00:00
Will McGugan
f28764e3fb one more 2024-10-28 12:06:35 +00:00
Will McGugan
b8ca0acd88 ws 2024-10-28 11:59:40 +00:00
Will McGugan
56d4efded8 micro ops 2024-10-28 11:55:01 +00:00
Darren Burns
9ce4792245
Reverting progress bar - not needed 2024-10-28 11:46:04 +00:00
Darren Burns
cd9ed5d4f8
More docs 2024-10-28 11:40:48 +00:00
Darren Burns
0809312851
Progress bar variables 2024-10-28 11:40:02 +00:00
Darren Burns
8442bb3e1a
Adding Markdown widget variables 2024-10-28 11:32:15 +00:00
Darren Burns
c083950c10
Demo fixes (#5185)
* Fix import in demo app

* Prevent VerticalScroll focus
2024-10-28 11:15:30 +00:00
Darren Burns
596f3d4182
Merge branch 'fix-demo' into themes 2024-10-28 10:55:24 +00:00
Darren Burns
001fcf6f2a
Prevent VerticalScroll focus 2024-10-28 10:53:17 +00:00
Darren Burns
420f0c0931
Fix import in demo app 2024-10-28 10:46:19 +00:00
Darren Burns
317465cb08
Fix demo 2024-10-28 10:45:39 +00:00
Darren Burns
8c8a6add40
Fix Select widget sometimes immediately re-opening when closed with a click of the mouse 2024-10-28 10:40:54 +00:00
Darren Burns
56d17b2c4d
Remove some unused variables in app.py 2024-10-28 10:35:30 +00:00
Darren Burns
b34be61d13
Fixing Select widget styling 2024-10-28 10:33:36 +00:00
Darren Burns
796a6ae73b
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-28 10:04:46 +00:00
Will McGugan
ca923f7bd4 encoding to read demo code 2024-10-27 12:39:15 +00:00
Will McGugan
71f8ee3bc1
Merge pull request #5183 from Textualize/quick-wins
reduce jank
2024-10-27 12:15:57 +00:00
Will McGugan
3e06a5daec ws 2024-10-27 12:05:07 +00:00
Will McGugan
0c550c69fb reduce jank 2024-10-27 12:03:09 +00:00
Will McGugan
26eb2c3fc4 changelog 2024-10-26 19:39:29 +01:00
Will McGugan
421a3cf4f6
Merge pull request #5182 from Textualize/fix-encoding
fix encoding on Windows
2024-10-26 19:36:57 +01:00
Will McGugan
9023859922 fix encoding 2024-10-26 19:21:34 +01:00
Will McGugan
37eaf23331 remove old demo from docs 2024-10-25 15:59:22 +01:00
Will McGugan
610f3b38e6
Merge pull request #5175 from Textualize/bump0850
bump to 0.85.0
2024-10-25 15:56:35 +01:00
Will McGugan
17a2b19a3a update to force tests on GA 2024-10-25 15:44:54 +01:00
Will McGugan
5df435494a bump 2024-10-25 15:40:08 +01:00
Will McGugan
60979e0a50
Merge pull request #5159 from TomJGooding/feat-events-add-control-property-to-enter-and-leave
feat(events): add control property to Enter and Leave
2024-10-25 15:37:16 +01:00
Will McGugan
9a72e06d56
Merge branch 'main' into feat-events-add-control-property-to-enter-and-leave 2024-10-25 15:37:08 +01:00
Will McGugan
b9be24f8f1
Merge pull request #5128 from TomJGooding/feat-app-add-is-web-property
feat(app): add is_web property
2024-10-25 15:36:17 +01:00
Will McGugan
b2feee0aee
Merge branch 'main' into feat-app-add-is-web-property 2024-10-25 15:36:09 +01:00
Will McGugan
5c2111aa51
Merge pull request #5174 from Textualize/more-demo
More demo
2024-10-25 15:34:57 +01:00
Will McGugan
ff336342bc removed old snapshot 2024-10-25 15:22:13 +01:00
Will McGugan
e76e42921f can view fixes 2024-10-25 15:07:34 +01:00
Will McGugan
369a83290f test fixes 2024-10-25 14:31:56 +01:00
Will McGugan
6a8f04e51c Merge branch 'main' into more-demo 2024-10-25 13:45:29 +01:00
Will McGugan
f5d6c81a01 sparkline fix 2024-10-25 13:45:03 +01:00
Will McGugan
c10ebca840 ws 2024-10-25 13:36:49 +01:00
Will McGugan
d12c207ebe changelog 2024-10-25 13:29:20 +01:00
Will McGugan
2a4a38bd71 replace demo 2024-10-25 13:24:30 +01:00
Will McGugan
17fad115fe sparklines 2024-10-25 13:01:23 +01:00
Will McGugan
04f416a212
Merge pull request #5170 from TomJGooding/tests-markdown-prevent-tests-from-opening-links
tests(markdown): prevent tests from opening links
2024-10-24 20:15:20 +01:00
Will McGugan
2fc9832d75 logs demo 2024-10-24 20:09:37 +01:00
TomJGooding
8ecb529683 tests(markdown): prevent tests from opening links 2024-10-24 19:38:42 +01:00
TomJGooding
f1fce84136 tests(markdown): prevent tests from opening links 2024-10-24 19:24:55 +01:00
Darren Burns
6ad521d1ca
Further docs updates to get rid of App.dark 2024-10-24 17:22:54 +01:00
Darren Burns
0c5f611c44
Further removal of App.dark from various places, swapping in App.theme equivalents 2024-10-24 17:11:25 +01:00
Darren Burns
f8af2005ed
Remove App.dark from App and docs examples 2024-10-24 16:54:54 +01:00
Darren Burns
eab07e6293
Fixing some descriptions in the theme docs 2024-10-24 16:48:33 +01:00
Darren Burns
c6312bba25
Documenting additional variables 2024-10-24 16:33:34 +01:00
Will McGugan
54ba2a1768
Merge pull request #5167 from Textualize/snapshit-fixes
lazy scrolling fixes
2024-10-24 16:15:59 +01:00
Will McGugan
6276d32961 comment 2024-10-24 15:56:52 +01:00
Will McGugan
f9d9f17fde lazy scrolling fixes 2024-10-24 15:52:17 +01:00
Darren Burns
e7c8b0d2d8
Fixing invalid docs 2024-10-24 15:39:08 +01:00
Will McGugan
667b3b3460
Merge pull request #5164 from Textualize/list-view-fix
Fix list view flicker
2024-10-24 15:02:25 +01:00
Will McGugan
b75269f75c
Merge branch 'main' into list-view-fix 2024-10-24 15:01:02 +01:00
Will McGugan
b82f5bfd7e
Merge pull request #5113 from Textualize/new-demo
New demo
2024-10-24 14:59:40 +01:00
Darren Burns
4afe6792cb
Remove unused param 2024-10-24 14:30:18 +01:00
Darren Burns
441a6d2a23
Remove TODO 2024-10-24 14:26:05 +01:00
Darren Burns
5ffa224041
Optimise optionlist/radio_set scrolling method 2024-10-24 14:25:31 +01:00
Darren Burns
952ee22edc
Simplify find_next_enabled 2024-10-24 14:21:32 +01:00
Darren Burns
c4b0fc4975
Writing down stuff about themes 2024-10-24 13:17:51 +01:00
Will McGugan
92d391eebd fix for stars 2024-10-24 12:11:13 +01:00
Will McGugan
2b43743cac no hover pause in tests 2024-10-24 11:45:57 +01:00
Will McGugan
0bb81368e9 optimization 2024-10-24 11:38:51 +01:00
Will McGugan
0dbeb74341 changelog 2024-10-24 11:35:34 +01:00
Will McGugan
2974c1f64b todo comment 2024-10-24 11:34:34 +01:00
Will McGugan
58116282f6 test for loop_from_index 2024-10-24 11:32:21 +01:00
Will McGugan
ab02cf75de list view fix 2024-10-24 11:19:31 +01:00
Darren Burns
a2a75d1595
Allow developers to expose additional theme variables. 2024-10-24 11:05:43 +01:00
Will McGugan
a1831d9463 select first node 2024-10-24 10:52:35 +01:00
Darren Burns
bded1bc818
Updating progress bar colors 2024-10-24 10:39:53 +01:00
Will McGugan
ac85f286fa loop 2024-10-23 19:16:01 +01:00
Will McGugan
d005b54371 Fix list view flicker 2024-10-23 19:09:00 +01:00
Darren Burns
e3e063d0f1
RichLog foreground 2024-10-23 16:23:24 +01:00
Darren Burns
076c1078a9
Theme tweaks and fixes, swap primary and secondary of textual-dark 2024-10-23 16:05:35 +01:00
Will McGugan
b1bf8a88a5 changelog 2024-10-23 15:59:38 +01:00
Will McGugan
faae1c6a85 snapshots 2024-10-23 15:57:48 +01:00
Will McGugan
4a398036b4 merge 2024-10-23 15:34:57 +01:00
Will McGugan
8e755109cf remove -screen-suspended class 2024-10-23 15:23:52 +01:00
Will McGugan
4923061d07 snapshot tests 2024-10-23 15:23:52 +01:00
Will McGugan
9b8cbf6173 snapshot 2024-10-23 15:23:52 +01:00
Will McGugan
4f41dfe778 snapshot 2024-10-23 15:23:52 +01:00
Will McGugan
536d2dd67b depenencies 2024-10-23 15:23:52 +01:00
Will McGugan
b4fa813a46 changelog 2024-10-23 15:23:52 +01:00
Will McGugan
6c395331fe version bump 2024-10-23 15:23:52 +01:00
Will McGugan
bc69bdfca7 fix infinite loop in cropping 2024-10-23 15:23:52 +01:00
Will McGugan
89b112e2b3 typo 2024-10-23 15:23:52 +01:00
Will McGugan
e6c97c7f90 reorder 2024-10-23 15:23:52 +01:00
Will McGugan
e3bb452df0 snapshot 2024-10-23 15:23:52 +01:00
Will McGugan
09b636b257 tint fix 2024-10-23 15:23:52 +01:00
Darren Burns
be4a816224
Markdown transparent background 2024-10-23 15:05:59 +01:00
Darren Burns
0c555efa6e
Markdown widget inside MarkdownViewer is focusable 2024-10-23 15:02:30 +01:00
Darren Burns
9bddc4c939
Remove unused component style from OptionList, updating Markdown related styling 2024-10-23 14:50:45 +01:00
TomJGooding
51409e1272 update changelog 2024-10-23 14:31:47 +01:00
TomJGooding
4bbf95e85b Merge branch 'main' into feat-events-add-control-property-to-enter-and-leave 2024-10-23 14:29:43 +01:00
Will McGugan
23f1bd7773
Merge pull request #5158 from Textualize/faster-screens
Remove `-screen-suspended` class
2024-10-23 14:24:45 +01:00
TomJGooding
72b319c32f feat(events): add control property to Enter and Leave
Enable Enter and Leave events to be used with the on decorator by
adding a control property.
2024-10-23 14:22:41 +01:00
Will McGugan
ea22e836d6 compromise 2024-10-23 14:09:22 +01:00
Darren Burns
8f1a6559c4
Tweaks 2024-10-23 13:51:34 +01:00
Darren Burns
c25ade1030
Tweaks 2024-10-23 13:37:05 +01:00
Darren Burns
4a34548aab
Tidying some themes 2024-10-23 12:08:56 +01:00
Will McGugan
52128cdd55 remove -screen-suspended class 2024-10-23 11:56:34 +01:00
Darren Burns
0598cfbb41
Primary and secondary switch 2024-10-23 11:01:17 +01:00
Darren Burns
9cbf1f073c
Tokyo Night 2024-10-23 10:40:53 +01:00
Will McGugan
444a878bd8 hover effects timer 2024-10-22 17:03:58 +01:00
Darren Burns
d6965b7672
Flexoki 2024-10-22 16:46:13 +01:00
Will McGugan
0ce8988a67 hover effects 2024-10-22 15:49:50 +01:00
Darren Burns
50077c8381
Command palette help text highlighting 2024-10-22 15:33:20 +01:00
Will McGugan
3d65f2be46
Merge pull request #5154 from Textualize/text-area-crop-fix
fix infinite loop in cropping
2024-10-22 14:13:05 +01:00
Will McGugan
dd9b2bccde snapshot tests 2024-10-22 13:50:37 +01:00
Will McGugan
09985d5c10 snapshot 2024-10-22 13:40:14 +01:00
Will McGugan
228c1c035e snapshot 2024-10-22 13:39:57 +01:00
Darren Burns
1a7de72a80
Catpuccin-latte 2024-10-22 13:10:56 +01:00
Will McGugan
8633bd27f9 depenencies 2024-10-22 13:09:15 +01:00
Will McGugan
f627fb1964 changelog 2024-10-22 13:02:53 +01:00
Will McGugan
a441aed1a6 version bump 2024-10-22 13:01:10 +01:00
Darren Burns
d39de21e6c
Updating selection list 2024-10-22 12:49:10 +01:00
Darren Burns
0779a804f9
catpuccin mocha 2024-10-22 12:24:08 +01:00
Will McGugan
55f267d7b4 fix infinite loop in cropping 2024-10-22 12:14:33 +01:00
Darren Burns
f3271e03ab
Fixing Dracula theme 2024-10-22 10:39:27 +01:00
Darren Burns
2113a4fe66
Command palette changes 2024-10-22 10:16:15 +01:00
Darren Burns
c739b1fcd8
Fix SelectOverlay positioning 2024-10-22 09:59:32 +01:00
Darren Burns
3982ac3c88
Fix example app 2024-10-22 09:53:03 +01:00
Darren Burns
1a111f824f
DataTable tinting 2024-10-22 09:43:14 +01:00
Darren Burns
22fa8a6926
Table styles 2024-10-21 16:49:35 +01:00
Darren Burns
e82bdbaa3b
Input/TextArea selection theme 2024-10-21 16:43:31 +01:00
Darren Burns
b1f59f9045
Input cursor styling 2024-10-21 15:43:25 +01:00
Darren Burns
0b7cd1cd78
Attempt (and fail) to fix ListView highlighted item style 2024-10-21 15:05:34 +01:00
Darren Burns
2f993da951
Global cursor styling 2024-10-21 13:56:08 +01:00
Darren Burns
3164127ca9
Input variables 2024-10-21 11:26:25 +01:00
Darren Burns
628fd808bb
More styling 2024-10-21 11:16:01 +01:00
Darren Burns
c28aa62b8f
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-21 10:36:59 +01:00
Darren Burns
7e26a5d6f8
Cp;pr foxes 2024-10-21 10:36:49 +01:00
Will McGugan
e3b19488c1
Merge pull request #5133 from Textualize/tint 2024-10-21 10:35:19 +01:00
Darren Burns
51cf2e9947
Finish merge 2024-10-21 10:28:48 +01:00
Darren Burns
2f97fbf33f
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-21 10:28:40 +01:00
Darren Burns
9f84434e06
More footer colours 2024-10-21 10:24:55 +01:00
Darren Burns
89c9859cd1
Footer variables 2024-10-21 10:23:36 +01:00
Will McGugan
6c63918dbd currency tweaks 2024-10-20 20:12:23 +01:00
Will McGugan
0ffcd6fb82 digit tweaks 2024-10-20 17:28:29 +01:00
Will McGugan
4f9ad30508 updated digits 2024-10-20 17:03:32 +01:00
Will McGugan
d0467589ef change 2024-10-20 14:09:52 +01:00
Will McGugan
4afdb3f6d0 maor widgets 2024-10-20 13:44:56 +01:00
Will McGugan
f9aba5da97 universal selector now doesn't match scrollbars 2024-10-19 19:31:27 +01:00
Will McGugan
c363372a19 merge 2024-10-19 15:45:52 +01:00
Will McGugan
3daf4d7c2b
Merge pull request #5139 from Textualize/pseudo-update
Pseudo update
2024-10-19 15:44:27 +01:00
Will McGugan
be25255a69 simplify 2024-10-19 11:49:54 +01:00
Will McGugan
3f97a8a645 simplify 2024-10-19 11:48:05 +01:00
Will McGugan
698fffead2 typing tweak 2024-10-19 11:37:10 +01:00
Will McGugan
f996e8308a apply styles to new widgets in one go 2024-10-19 11:34:24 +01:00
Will McGugan
2d922b5e67 simplify 2024-10-19 11:30:54 +01:00
Will McGugan
78e387e036 remove data 2024-10-19 11:23:07 +01:00
Will McGugan
794d230162 optimization 2024-10-19 11:19:20 +01:00
Will McGugan
9e0b047121 snapshot test 2024-10-19 11:16:00 +01:00
Will McGugan
9cf56a94b6 changelog 2024-10-18 19:31:00 +01:00
Will McGugan
43cc9910a3 improved caching 2024-10-18 19:27:10 +01:00
Will McGugan
2913ae62e8 simpler 2024-10-18 17:35:29 +01:00
Will McGugan
502051b852 cache pseudo classes 2024-10-18 17:30:28 +01:00
Will McGugan
5a6fbdf0bf private var 2024-10-18 15:21:17 +01:00
Will McGugan
8dfc3d14a1 update docs 2024-10-18 15:15:52 +01:00
Will McGugan
310af26c79 changelog 2024-10-18 15:10:42 +01:00
Will McGugan
ebf075a010 test 2024-10-18 15:07:04 +01:00
Will McGugan
bd091972ee new mechanism to expose pseudo classes 2024-10-18 15:05:09 +01:00
Will McGugan
03e33b8408 more widgets 2024-10-18 13:38:05 +01:00
Will McGugan
1e2602898c widgets 2024-10-17 17:07:09 +01:00
Darren Burns
4d898e8ef7
Theme sandbox example 2024-10-17 17:01:28 +01:00
Darren Burns
0d1def6f54
Fixing colors in select widget 2024-10-17 16:49:33 +01:00
Darren Burns
2a13416744
Overriding generated theme variables 2024-10-17 16:13:07 +01:00
Darren Burns
e5d0eab81f
Vaaaaariables 2024-10-17 15:59:50 +01:00
Darren Burns
cead69c23f
Theme changes 2024-10-17 13:27:15 +01:00
Darren Burns
01650b69fa
Using $foreground instead of $text in places where background is known 2024-10-17 12:52:20 +01:00
Will McGugan
bd041b24b4 merge 2024-10-17 12:05:24 +01:00
Will McGugan
9f8022614a
Merge pull request #5121 from Textualize/fr-fix
Fr fix
2024-10-17 12:03:42 +01:00
Will McGugan
32cefdffd3 widgets page 2024-10-17 12:01:44 +01:00
Darren Burns
7ecc041e31
Backing out of extras idea 2024-10-17 11:18:54 +01:00
Darren Burns
100d4fc4d1 Dracula shuffle 2024-10-16 19:42:26 +01:00
Darren Burns
3f87bb55f7 Fixing some themes 2024-10-16 17:44:32 +01:00
Darren Burns
6583c772bd Fixing theme weirdness 2024-10-16 17:34:16 +01:00
Darren Burns
55d84c0985 Tweaks 2024-10-16 17:09:08 +01:00
Will McGugan
793dd5b179 typo 2024-10-16 16:51:57 +01:00
Will McGugan
2c3a6dcc97 reorder 2024-10-16 16:50:10 +01:00
Will McGugan
71ea907e85 snapshot 2024-10-16 16:49:14 +01:00
Will McGugan
c40c265c12 tint fix 2024-10-16 16:41:34 +01:00
Darren Burns
c4b57ba097 Styling fixes 2024-10-16 14:11:04 +01:00
Darren Burns
ba8432814e Fixing command palette colours 2024-10-16 10:03:12 +01:00
Will McGugan
a56225ac47 formatting 2024-10-15 22:05:10 +01:00
Will McGugan
9410b8326a Home screen 2024-10-15 22:00:51 +01:00
Will McGugan
f446576d46 Added welcome text 2024-10-15 18:05:11 +01:00
TomJGooding
6d220b30f6 update changelog 2024-10-15 16:02:34 +01:00
Will McGugan
901db1247a Added open links 2024-10-15 16:00:55 +01:00
TomJGooding
9aaf45ad33 feat(app): add is_web property
Add `App.is_web` property to indicate if the app is running via a web
browser.
2024-10-15 15:44:47 +01:00
Darren Burns
377e26dce8
Add App.search experimental simpler API way of pulling up a command palette that isnt coupled to a Screen/App 2024-10-15 14:53:32 +01:00
Will McGugan
bd4688f19d demo update 2024-10-15 14:16:35 +01:00
Darren Burns
20100c3522
unregister_theme 2024-10-15 12:38:25 +01:00
Darren Burns
49a572cc75
Typing fixes 2024-10-15 11:45:06 +01:00
Darren Burns
1d8fde2a86
Add a comment 2024-10-15 11:43:28 +01:00
Darren Burns
faebfb0bf6
Validating themes 2024-10-15 11:42:40 +01:00
Darren Burns
472d768b55
Allow/disallowing ansi color when textual-ansi theme is set/unset 2024-10-15 11:27:05 +01:00
Darren Burns
d17812b331
Fixing styles on light mode of RadioSet 2024-10-15 10:38:16 +01:00
Will McGugan
11122f9a8c optimize 2024-10-14 17:35:34 +01:00
Will McGugan
bcaad58926 simpler test 2024-10-14 17:19:52 +01:00
Will McGugan
41441df0db simplify 2024-10-14 17:15:30 +01:00
Will McGugan
f6f695facc snapshot 2024-10-14 17:02:29 +01:00
Will McGugan
c167338924 snapshot 2024-10-14 17:00:10 +01:00
Will McGugan
b36ee03dc9 fix fr resolve 2024-10-14 16:57:46 +01:00
Darren Burns
88f3881241
Fix title of tab in MaskedInput in the docs 2024-10-14 16:41:07 +01:00
Darren Burns
183edecaeb
Update tree guides 2024-10-14 16:30:43 +01:00
Darren Burns
4d0c91341a
Fix CSS in ToggleButton 2024-10-14 16:25:04 +01:00
Darren Burns
2ff9d2e65d
Background tint on ToggleButton; use nested CSS 2024-10-14 16:22:20 +01:00
Darren Burns
9af59d6940
CSS tweaks 2024-10-14 16:10:04 +01:00
Darren Burns
c096a3f979
Styling tabs 2024-10-14 15:42:51 +01:00
Darren Burns
35a139ae66
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-14 14:50:30 +01:00
Will McGugan
4a822bc53e
background tint style (#5117)
* background tint style

* changelog

* hlines

* doc fix

* added tint

* missing snapshots
2024-10-14 14:50:19 +01:00
Darren Burns
0036ca386a
More nested CSS 2024-10-14 14:16:49 +01:00
Darren Burns
83707ad307
Use nested CSS in Tabs 2024-10-14 14:12:53 +01:00
Darren Burns
79e42faa26
Use nested CSS in Underline 2024-10-14 14:10:41 +01:00
Darren Burns
11c2eafd5b
Tree ansi styling fix. Remove trailing whitespace 2024-10-14 14:02:59 +01:00
Darren Burns
b41f346f1a
Tree styling 2024-10-14 13:58:04 +01:00
Will McGugan
1e2064a475 simplify 2024-10-14 13:30:35 +01:00
Will McGugan
dd980b825a fix keyline color 2024-10-14 12:40:11 +01:00
Darren Burns
c245c09963
Select focus styling 2024-10-14 11:31:17 +01:00
Darren Burns
579d7f1417
Add $surface-active variable 2024-10-14 11:08:28 +01:00
Darren Burns
0437fdfea9
fix toggle button styling 2024-10-14 10:57:22 +01:00
Darren Burns
7e6911bf9b
Remove ToggleButton styling switcheroo 2024-10-14 10:13:35 +01:00
Darren Burns
c0e3d69482
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-14 09:59:15 +01:00
TomJGooding
4182ad4bc0
ci: remove macos workaround for python versions (#5110) 2024-10-14 09:54:40 +01:00
TomJGooding
f7626e140e
fix(radioset): make radio set scrollable (#5109)
* fix(radioset): make radio set scrollable

* add snapshot test

* update changelog
2024-10-14 09:54:09 +01:00
Will McGugan
5bf30fec7e added text column 2024-10-13 19:14:50 +01:00
Will McGugan
6298acb2a2 link widget 2024-10-13 18:44:33 +01:00
Will McGugan
ca4af0c41f more projects 2024-10-12 18:44:24 +01:00
Will McGugan
7451a4d08f more projects 2024-10-12 17:14:12 +01:00
Will McGugan
e3665569ce grid height 2024-10-12 15:07:00 +01:00
Will McGugan
f670fbeef4 regular grid 2024-10-11 19:36:38 +01:00
Will McGugan
dcea484067 simplify 2024-10-10 17:48:27 +01:00
Will McGugan
4248979737 projects page 2024-10-10 17:24:15 +01:00
Darren Burns
2da1f4c77c
Color tweaks 2024-10-10 16:52:31 +01:00
Darren Burns
3033af6951
Dont swap around the selectionlist values - i sure hope this doesnt break anything 2024-10-10 16:32:28 +01:00
Darren Burns
793d188c39
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-10 15:52:28 +01:00
Darren Burns
c211a02709
More tweaks 2024-10-10 15:43:32 +01:00
Will McGugan
6d79102a73 Merge branch 'main' into new-demo 2024-10-10 14:59:43 +01:00
Will McGugan
afc310ade4
Merge pull request #5105 from Textualize/bump-0.83.0
bump to 0.83.0
2024-10-10 14:52:50 +01:00
Will McGugan
dacd01d976 bump to 0.83.0 2024-10-10 14:51:21 +01:00
Will McGugan
8db20bef7c fix changelog 2024-10-10 14:48:58 +01:00
Will McGugan
04c2f818e3
Merge pull request #5104 from Textualize/scroll-glitch
Fix scroll glitch
2024-10-10 14:40:23 +01:00
Will McGugan
88b492131c Fix scroll glitch 2024-10-10 14:21:53 +01:00
Darren Burns
b08a6aa7de
CSS fix 2024-10-10 12:56:15 +01:00
Darren Burns
831d4163df
Use nested CSS in radiobutton 2024-10-10 12:29:51 +01:00
Will McGugan
a9afc1cf72 new demo WIP 2024-10-09 19:41:32 +01:00
Darren Burns
132e6a4a62
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-09 14:18:04 +01:00
Darren Burns
54fb40fe32
Start working on RadioSet consistency 2024-10-09 14:17:50 +01:00
Darren Burns
76b181e05a
Toggle button label styling, not sure if worth keeping 2024-10-09 14:05:15 +01:00
Darren Burns
6a248beb2f
Fixing switch styles, adding subtle hover effect to suggest which part will move 2024-10-09 13:25:47 +01:00
Darren Burns
15b757405c
Tree styling consistency 2024-10-09 12:26:30 +01:00
Darren Burns
8e895f321d
Fix tree widget example typing 2024-10-09 11:53:32 +01:00
Darren Burns
b997b398d2
Renaming variables, ensuring selectionlist is readable on light mode 2024-10-09 11:49:17 +01:00
Darren Burns
b50540584f
CSS tidying - using nesting in SelectionList 2024-10-09 11:33:59 +01:00
Darren Burns
ea443a4f85
Consistency 2024-10-08 16:43:13 +01:00
Will McGugan
4d4fb73a48
Merge pull request #5097 from Textualize/constrain-tooltips
constrain both axis
2024-10-08 14:04:38 +01:00
Darren Burns
582a7cf7ba
Making hover cursor more perceptable 2024-10-08 11:17:17 +01:00
Darren Burns
af34013c83
Update ListView styling, use blur cursor in DataTable 2024-10-08 10:44:14 +01:00
Will McGugan
9935b64f70
Merge branch 'main' into constrain-tooltips 2024-10-07 18:52:07 +01:00
Will McGugan
3794d9544e change to inflect 2024-10-07 18:50:54 +01:00
Darren Burns
bb633cf173 Re-usable colours for consistency 2024-10-07 17:21:22 +01:00
Darren Burns
d619b8094c Updating change theme text in cmd palette, fix snapshots 2024-10-07 14:42:18 +01:00
Darren Burns
fb28acf81b Typing 2024-10-07 14:22:11 +01:00
Darren Burns
0fa81a33b4 ThemeProvider 2024-10-07 14:19:32 +01:00
Will McGugan
d7eae419c2
Merge pull request #5095 from Textualize/pilot-widget
Pilot takes object
2024-10-07 13:04:12 +01:00
Will McGugan
ded24b10c2
Merge pull request #5088 from Textualize/allow-maximize
Allow tooltips in maximize view
2024-10-07 13:04:00 +01:00
Will McGugan
459efab853
Merge branch 'main' into allow-maximize 2024-10-07 13:03:53 +01:00
Will McGugan
5f53538bf9 absolute offset public 2024-10-07 12:54:26 +01:00
Darren Burns
538b0ffb74 Non-static providers for command palette 2024-10-07 12:16:25 +01:00
Will McGugan
55b03a67dd fix constrain 2024-10-06 21:28:19 +01:00
Will McGugan
9b2fe2419a constrain both axis 2024-10-06 21:15:26 +01:00
Will McGugan
bd245880be words 2024-10-05 20:52:15 +01:00
Will McGugan
ef8520a13e changelog 2024-10-05 20:49:04 +01:00
Will McGugan
7cb90a9ad7
Update src/textual/pilot.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-10-05 20:48:23 +01:00
Will McGugan
badb3a8382
Update src/textual/pilot.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-10-05 20:48:18 +01:00
Will McGugan
c4f8b9ff44 words 2024-10-05 20:27:56 +01:00
Will McGugan
b3387a8ae8 add test 2024-10-05 20:25:39 +01:00
Will McGugan
30802b8059 docs 2024-10-05 20:21:39 +01:00
Will McGugan
a1fd054da7 Pilot takes object 2024-10-05 20:17:47 +01:00
Will McGugan
1e208b4a56 update digits docs 2024-10-05 17:37:12 +01:00
Will McGugan
445ed5d115
Merge pull request #5094 from Textualize/digits-hex
Added hex chars to digits
2024-10-05 13:16:05 +01:00
Will McGugan
54d7dd6d03 changelog 2024-10-05 12:59:28 +01:00
Will McGugan
0535a4b83f Added hex chars to digits 2024-10-05 12:57:36 +01:00
Will McGugan
cc1a451387 changelog 2024-10-04 10:03:56 +01:00
Will McGugan
0448c95b18 simplify 2024-10-03 22:50:27 +01:00
Will McGugan
472eef0adb comments 2024-10-03 22:48:44 +01:00
Will McGugan
600296027d order logic 2024-10-03 22:47:08 +01:00
Will McGugan
52c6e5f930 simplify 2024-10-03 21:39:41 +01:00
Will McGugan
abfdc8748a docstring 2024-10-03 21:37:50 +01:00
Will McGugan
7f357ad13d snapshot 2024-10-03 21:34:24 +01:00
Will McGugan
a7a8e86343 missing files 2024-10-03 21:26:38 +01:00
Will McGugan
a3de92ad1c docstring 2024-10-03 21:23:08 +01:00
Will McGugan
bdba1d4ef8 changelog 2024-10-03 21:19:53 +01:00
Will McGugan
26a4457a44 default allow-maximize 2024-10-03 21:18:51 +01:00
Will McGugan
063cfc7695 fix highlight lines 2024-10-03 20:15:49 +01:00
Will McGugan
b292353dad fix highlight 2024-10-03 20:11:26 +01:00
Darren Burns
c6da6c93c2
Merge branch 'main' of github.com:Textualize/textual into themes 2024-10-03 16:58:28 +01:00
Darren Burns
edcf7061bc
Themes and test fixes. Reduce dependence on App.dark 2024-10-03 16:54:45 +01:00
Darren Burns
57f1285e97
Get built-in themes 2024-10-03 13:48:58 +01:00
Darren Burns
b8155b2417
theme (str) reactive on App, currently unused 2024-10-03 13:46:19 +01:00
Darren Burns
1a21e2e215
Theme class expanded to have attributes from ColorSystem 2024-10-03 13:44:39 +01:00
Will McGugan
d76000d204
Merge pull request #5082 from Textualize/bump0820
version bump
2024-10-03 10:37:46 +01:00
Will McGugan
0b6c8fef6e changelog 2024-10-03 10:35:36 +01:00
Will McGugan
94a92c38fa version bump 2024-10-03 10:32:55 +01:00
Will McGugan
08f85e9f57
Merge pull request #4985 from Textualize/docs-updates-11sep24
Add `can_focus` to guide, mention how `BINDINGS` are checked
2024-10-03 10:26:25 +01:00
Will McGugan
6c3b8a92cc
Merge pull request #5080 from Textualize/fix-import-error 2024-10-02 18:24:22 +01:00
Will McGugan
bf16ded909 pycln comment 2024-10-02 17:39:26 +01:00
Will McGugan
91747dea56 tests 2024-10-02 17:37:23 +01:00
Will McGugan
87e1142242 raise AttributeError 2024-10-02 17:31:43 +01:00
Will McGugan
d6e2718487
Merge pull request #5079 from Textualize/loading-redux
new loading indicator method
2024-10-02 17:26:54 +01:00
Will McGugan
91046dc2ee
Merge pull request #5075 from Textualize/fix-color-transparent 2024-10-02 14:55:26 +01:00
Will McGugan
13b5e3239d restore redundant style 2024-10-02 14:47:47 +01:00
Will McGugan
85b0f4efbb changelog 2024-10-02 14:47:18 +01:00
Will McGugan
c995724b64 not none 2024-10-02 14:46:07 +01:00
Will McGugan
7b825bb456 test fixes 2024-10-02 14:42:55 +01:00
Will McGugan
990c9b8461 docstring 2024-10-02 14:35:16 +01:00
Will McGugan
ed6f2ff4bf changlog 2024-10-02 14:33:51 +01:00
Will McGugan
b5acfef627 new loading indicator 2024-10-02 14:32:07 +01:00
Darren Burns
b13e9733e3
Theme class 2024-10-02 12:59:05 +01:00
Will McGugan
5e72bd208a snapshot test for transparent background 2024-10-01 18:25:13 +01:00
Will McGugan
9896ff69c4 fix is_transparent 2024-10-01 18:20:22 +01:00
Will McGugan
ffc81747de
Merge pull request #5074 from Textualize/fix-push-screen-on-mount
Fix push screen on mount
2024-10-01 17:57:02 +01:00
Will McGugan
311d49ecd1
Merge branch 'main' into fix-push-screen-on-mount 2024-10-01 15:29:44 +01:00
Will McGugan
49a3d7d233
Merge pull request #5069 from Textualize/pop-screen-until
Add pop_until_active
2024-10-01 15:28:11 +01:00
Will McGugan
0f2f6c7f51
Merge branch 'main' into pop-screen-until 2024-10-01 15:06:20 +01:00
Will McGugan
eed200a4ee comment 2024-10-01 15:05:05 +01:00
Will McGugan
06e4dc05cf snapshot 2024-10-01 15:03:55 +01:00
Will McGugan
1c91ad6c4f fix for push_screen called on mount 2024-10-01 14:54:16 +01:00
Will McGugan
112355e05e
Merge pull request #5063 from Textualize/invisible-refresh
refreshing invisible widgets is a no-op
2024-09-30 19:39:52 +01:00
Darren Burns
2c28b31ce7
Merge branch 'docs-updates-11sep24' of github.com:Textualize/textual into docs-updates-11sep24 2024-09-30 15:56:33 +01:00
Darren Burns
cd3e238716
Wording 2024-09-30 15:56:25 +01:00
Darren Burns
8b99b3fae4
PR feedback 2024-09-30 15:48:19 +01:00
Darren Burns
e12bbd6e86
Update docs/guide/widgets.md
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-09-30 15:32:44 +01:00
Will McGugan
df01b7a6a6 snapshot fix 2024-09-30 14:55:47 +01:00
Will McGugan
82e5efdb3b
Update tests/snapshot_tests/test_snapshots.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-30 14:36:24 +01:00
Will McGugan
1e3d018f16
Merge pull request #5062 from Textualize/binding-descriptions
Updating descriptions in BINDINGS
2024-09-30 14:35:48 +01:00
Will McGugan
e3afdf5395
Update tests/snapshot_tests/test_snapshots.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-30 14:34:23 +01:00
Will McGugan
0e0caacf2f
Update tests/snapshot_tests/test_snapshots.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-30 14:34:17 +01:00
Will McGugan
5ed7a71fe4
Update tests/snapshot_tests/test_snapshots.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-30 14:34:08 +01:00
Will McGugan
16802978f2
Update tests/snapshot_tests/test_snapshots.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-30 14:34:01 +01:00
Darren Burns
c83d9137cb
Merge branch 'main' into invisible-refresh 2024-09-30 11:48:10 +01:00
Darren Burns
9de0856989
Changelog 2024-09-30 11:10:46 +01:00
Darren Burns
5af5eec7bb
Merge branch 'main' of github.com:Textualize/textual into binding-descriptions 2024-09-30 11:10:05 +01:00
Darren Burns
daf61e7855
Fix snapshots 2024-09-30 11:03:26 +01:00
Darren Burns
f03f0386fa
Fix link to focus docs 2024-09-30 10:23:10 +01:00
Darren Burns
aa13ab4a34
Fix a typo 2024-09-30 10:21:36 +01:00
Will McGugan
c5f872695b
Merge pull request #5067 from Textualize/optimize-walk
faster walk
2024-09-30 10:14:26 +01:00
Darren Burns
d472cb582e
Keymaps (#5038) 2024-09-30 09:17:59 +01:00
Will McGugan
8615d6d876 docstring syntax 2024-09-29 19:19:25 +01:00
Will McGugan
521fdcf3df
Merge pull request #5055 from PureStupid/misc-docs-fix
Miscellaneous docs fix
2024-09-29 13:54:48 +01:00
Will McGugan
fd103957a2 not ready yet 2024-09-28 18:59:40 +01:00
Will McGugan
06efcaac36 more elegant API 2024-09-28 18:58:43 +01:00
Will McGugan
4d66b96495 more elegant API 2024-09-28 18:58:19 +01:00
Will McGugan
f518e0d44d fix docstring 2024-09-27 20:53:14 +01:00
Will McGugan
649967f4c3 snapshot 2024-09-27 20:50:35 +01:00
Will McGugan
985b6a7398 changelog 2024-09-27 20:40:24 +01:00
Will McGugan
d6c765b4ee f string 2024-09-27 20:36:17 +01:00
Will McGugan
22fbe6f3c8 docstring 2024-09-27 20:35:14 +01:00
Will McGugan
5c5f2b7d6a comments 2024-09-27 20:29:47 +01:00
Will McGugan
700816562e pop_to_screen 2024-09-27 20:18:05 +01:00
Will McGugan
ea1a5a31b2 faster walk 2024-09-27 15:29:44 +01:00
Will McGugan
3dbe844298 fix changelog 2024-09-26 21:12:35 +01:00
Will McGugan
8ef10991da check full map for clear 2024-09-26 20:59:27 +01:00
Will McGugan
69cfaf11ac version bump 2024-09-26 20:45:55 +01:00
Will McGugan
2b43823607 snapshot 2024-09-26 20:41:30 +01:00
Will McGugan
c57757ac81 snapshot 2024-09-26 20:37:57 +01:00
Will McGugan
8e1b0aa9e9 refreshing invisible widgets is a no-op 2024-09-26 20:28:32 +01:00
Darren Burns
1ab1299997 Reviewing more binding descriptions 2024-09-26 15:05:11 +01:00
Darren Burns
808994ddfe Add/update missing binding descriptions 2024-09-26 14:59:00 +01:00
Darren Burns
6afad2fa16 Add description to Select widget 2024-09-26 14:55:24 +01:00
Darren Burns
ec4e6af84b Add descriptions for bindings in RadioSet 2024-09-26 14:51:44 +01:00
Pure
433dc333c7 Capitalizing 2024-09-26 00:55:36 +08:00
Pure
2e9cb16b06 Capitalise 2024-09-26 00:54:46 +08:00
Pure
8757ab5685 Remove extra period in docstring 2024-09-26 00:54:05 +08:00
Pure
41e954b7f4 Fix admonition syntax to use tip 2024-09-26 00:52:42 +08:00
Pure
bc36cf5957 Fix typo 2024-09-26 00:51:37 +08:00
Pure
8a76d0f99c Fix capitalisation 2024-09-26 00:51:12 +08:00
Pure
4282f61f31 Use mkdoc's admonition syntax for a cleaner note. 2024-09-26 00:50:42 +08:00
Pure
f51a246507 Fix typo and capitalisation 2024-09-26 00:49:28 +08:00
Pure
79810e5447 Use hamburger menu icon. 2024-09-26 00:44:42 +08:00
Pure
d20b9d5bb5 Add link to widget's render() for convenience. 2024-09-26 00:43:41 +08:00
Pure
e0d145e09a Use the hamburger menu icon. 2024-09-26 00:42:36 +08:00
Pure
a631c24393 Fix capitalization 2024-09-26 00:28:34 +08:00
Pure
c3d0028a27 Fix stopwatch tcss file path 2024-09-26 00:27:28 +08:00
Pure
9b03ebf8ac Merge branch 'misc-docs-fix' of https://github.com/PureStupid/textual into misc-docs-fix 2024-09-26 00:25:00 +08:00
Pure
523fe094e8 factory build 2024-09-26 00:24:51 +08:00
Will McGugan
c75b169a89
Merge pull request #5054 from Textualize/one-line-tree
One line tree fix, bump to 0.81.0
2024-09-25 15:57:03 +01:00
Darren Burns
5dbb5ff2b2 Remove newline 2024-09-25 15:46:36 +01:00
Will McGugan
4390365a2f version bump 2024-09-25 15:44:57 +01:00
Will McGugan
1efc6109c8 Merge branch 'main' into one-line-tree 2024-09-25 15:41:10 +01:00
Will McGugan
7be8a3184b
Merge pull request #5052 from Textualize/tree-fix
fix tree issues
2024-09-25 15:39:19 +01:00
Will McGugan
955d6aa5d9 fix cursor logic 2024-09-25 15:38:12 +01:00
Will McGugan
492d823d4a superfluous 2024-09-25 15:10:19 +01:00
Will McGugan
8e581cf081
Apply suggestions from code review
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-25 15:09:13 +01:00
Darren Burns
c6a0aba38a Fix formatting 2024-09-25 15:08:14 +01:00
Will McGugan
514e12b61c
Update src/textual/widgets/_tree.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-25 15:08:00 +01:00
Will McGugan
ba0b3accfa fix inline one line 2024-09-25 15:06:47 +01:00
Will McGugan
c7019a36d5 one line fix 2024-09-25 15:00:18 +01:00
Will McGugan
a8ad566169 changelog 2024-09-25 14:24:01 +01:00
Will McGugan
bdb631b48a changelog 2024-09-25 14:22:45 +01:00
Will McGugan
be35b54f63 unselect cursor node 2024-09-25 14:18:10 +01:00
Will McGugan
92fdedf2f2 docs 2024-09-25 12:59:41 +01:00
Will McGugan
a4249b5631 test 2024-09-25 12:57:54 +01:00
Darren Burns
ed5864dfe9 Add notes to code 2024-09-25 12:45:34 +01:00
Darren Burns
6382685502 Simplify and use RenderResult over str 2024-09-25 12:31:46 +01:00
Darren Burns
3c8f5672f4 Bindings and focus example Counter 2024-09-25 12:17:09 +01:00
Will McGugan
3096f8ba98 fix tree issues 2024-09-25 12:06:17 +01:00
Darren Burns
86a6fcc18d Counter example 2024-09-25 11:42:14 +01:00
Will McGugan
0deb1dca70
Merge pull request #5048 from Textualize/new-widgets
fix missing new widgets
2024-09-24 18:05:32 +01:00
Will McGugan
702d33b34e changelog 2024-09-24 17:36:49 +01:00
Will McGugan
b53fa7943a comment 2024-09-24 17:35:55 +01:00
Will McGugan
c6dd2ee397 simplify 2024-09-24 17:34:25 +01:00
Will McGugan
3632fef80a snapshot 2024-09-24 17:31:50 +01:00
Will McGugan
c025124dc7 fix missing new widgets 2024-09-24 17:22:36 +01:00
Will McGugan
7b31e6ea45
Merge pull request #5047 from Textualize/axis_scroll
limit scrolling by axis
2024-09-24 15:53:33 +01:00
Will McGugan
aa8a60674c changelog 2024-09-24 14:59:37 +01:00
Will McGugan
5611b1f926 limit scrolling by axis 2024-09-24 14:58:21 +01:00
Darren Burns
176cd5ebf5 More docs 2024-09-24 14:56:28 +01:00
Will McGugan
821316d79e typing error 2024-09-24 14:46:30 +01:00
Darren Burns
715080cd1d Renaming calculator to counter in example 2024-09-24 14:16:08 +01:00
Darren Burns
8fc2bd1ccd Basic CSS for counter example 2024-09-24 14:15:34 +01:00
Darren Burns
0fb0e2b7f7 Simplify wording, add counter example 2024-09-24 14:08:08 +01:00
Will McGugan
c81df43c01
Merge pull request #5045 from Textualize/fix-textarea-construct
prevent error in TextArea constructor
2024-09-24 12:17:52 +01:00
Will McGugan
9dce34c2d7 fix test 2024-09-24 12:05:36 +01:00
Will McGugan
12d15731c1
Merge pull request #5046 from xavierog/adjust-log-highlighter
Adjust Log.highlighter type to allow for custom highlighters.
2024-09-24 12:01:34 +01:00
Xavier G.
6e7969fcb6 Adjust Log.highlighter type to allow for custom highlighters.
Without an explicit type, tools like mypy assume Log.highlighter must be
a ReprHighlighter instead of a Highlighter.
2024-09-24 12:58:15 +02:00
Will McGugan
bdfa44c8d8 fix changelog 2024-09-24 11:55:34 +01:00
Will McGugan
6939ce3b99 version bump 2024-09-24 11:52:35 +01:00
Will McGugan
a91814b26a bump 2024-09-24 11:52:22 +01:00
Will McGugan
69e259fb16 add tests 2024-09-24 11:50:36 +01:00
Will McGugan
88a8bd5d88 prevent error in constructor 2024-09-24 11:43:03 +01:00
Will McGugan
c3e00ae422
Merge pull request #5039 from Textualize/inline-exit-fix
fix error when exiting inline more prematurely
2024-09-24 11:34:05 +01:00
Will McGugan
8212f4c18d changelog 2024-09-24 11:20:08 +01:00
Will McGugan
7536d6a754 tests 2024-09-24 11:16:05 +01:00
Will McGugan
91fd712646 fix error exiting inline mode 2024-09-23 19:12:26 +01:00
Will McGugan
322a85c97e
Merge pull request #5036 from Textualize/bump0800
Bump to 0.80.0
2024-09-23 15:47:36 +01:00
Will McGugan
d0abf60984 comments 2024-09-23 15:32:32 +01:00
Will McGugan
771f2b939b changelog 2024-09-23 15:28:35 +01:00
Will McGugan
f4eb137991 version bump 2024-09-23 15:23:50 +01:00
Will McGugan
d103e5fcf9
Merge pull request #5022 from TomJGooding/fix-app-fix-inline-no-clear
fix(app): fix `inline_no_clear`
2024-09-23 15:21:36 +01:00
Will McGugan
23844b1221 snapshot 2024-09-23 15:20:21 +01:00
Will McGugan
051809e1c8 restore calculator 2024-09-23 15:09:55 +01:00
Will McGugan
f3b545fb0d disable kitty protocol 2024-09-23 15:08:37 +01:00
Will McGugan
8b0537aaeb Merge branch 'main' into fix-app-fix-inline-no-clear 2024-09-23 15:00:55 +01:00
Will McGugan
7c5b7823f3 inline fixes 2024-09-23 15:00:27 +01:00
Will McGugan
8b8c10d0f1
Merge pull request #5035 from Textualize/disabled-crash-fix
Fix construct with disabled
2024-09-23 14:08:04 +01:00
Will McGugan
065ca29ffb
Merge pull request #5023 from Textualize/tree-tweaks
Tree updates
2024-09-23 14:04:22 +01:00
Will McGugan
c4f2a25ae2 snapshot 2024-09-23 13:53:42 +01:00
Will McGugan
b43089cfa9 optimization 2024-09-23 13:42:10 +01:00
Will McGugan
cdacc36ca7 disabled fix 2024-09-23 13:35:44 +01:00
Will McGugan
79fe066ecf simplify 2024-09-23 13:11:30 +01:00
Will McGugan
3cd2f93cff changelog 2024-09-23 13:09:33 +01:00
Will McGugan
3d8490a501 snapshots 2024-09-23 12:58:49 +01:00
Will McGugan
c4114e5c6d tree fixes 2024-09-23 12:27:10 +01:00
Will McGugan
b3afa5e0f7 Reduce flicker 2024-09-22 13:20:27 +01:00
Will McGugan
7e0b0bae32
Merge pull request #5031 from wadevries/patch-1 2024-09-21 21:16:23 +01:00
Wouter de Vries
35fa7bfe86
Fix --help flag in docs 2024-09-21 21:56:06 +02:00
Will McGugan
0e1ba6c3f4 no color mode 2024-09-21 20:03:02 +01:00
Will McGugan
f68f87c876 dim inactive screens, no_color support for ansi apps 2024-09-21 16:41:13 +01:00
Will McGugan
37d38609c0 bindings 2024-09-21 09:50:54 +01:00
Will McGugan
fee3dece20 Merge branch 'main' into tree-tweaks 2024-09-20 15:12:28 +01:00
Will McGugan
14794db134
Merge pull request #5025 from Textualize/expected-screen
overload get_screen
2024-09-20 15:11:58 +01:00
Will McGugan
52fff849e4 example in docstring 2024-09-20 15:11:46 +01:00
Will McGugan
0687c53c90 f string error 2024-09-20 15:00:14 +01:00
Will McGugan
281d65be20 overload get_screen 2024-09-20 14:57:58 +01:00
Will McGugan
ffaa235eb2 expose directroy tree 2024-09-20 14:32:15 +01:00
Will McGugan
5829fd4367 test 2024-09-19 13:33:22 +01:00
Will McGugan
033f9873b9 docstrings 2024-09-19 13:17:37 +01:00
Will McGugan
9652b98752 tree navigation 2024-09-19 12:42:13 +01:00
TomJGooding
2e612e8c24 update changelog 2024-09-19 11:46:32 +01:00
Will McGugan
6661268b11 tree updates 2024-09-19 10:28:04 +01:00
TomJGooding
c83d22e501 fix(app): fix inline_no_clear 2024-09-18 22:53:00 +01:00
Will McGugan
cbef6cd2d6
Merge pull request #5015 from Textualize/fix-quit-glitch
Fix output glitch with inline driver
2024-09-17 17:58:06 +01:00
Will McGugan
16c4c39a72 Fix output glitch with inline driver 2024-09-17 17:43:53 +01:00
Will McGugan
c054af8ab9
Merge pull request #5013 from Textualize/more-ansi
ANSI background issue
2024-09-17 16:19:11 +01:00
Will McGugan
d1716234cc snapshot test 2024-09-17 15:59:50 +01:00
Will McGugan
6043845e8d
Merge pull request #5000 from Textualize/ansi-color
allow ansi color
2024-09-17 13:05:55 +01:00
Will McGugan
de11e122ec docs 2024-09-17 12:43:45 +01:00
Will McGugan
a2781780b3 typo 2024-09-17 12:22:07 +01:00
Will McGugan
d16e7ff1b0
Update docs/FAQ.md
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-17 12:21:50 +01:00
Will McGugan
d3f8cd8661 update faq 2024-09-17 12:21:33 +01:00
Will McGugan
4289655974
Update questions/why-no-ansi-themes.question.md
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-17 12:21:05 +01:00
Will McGugan
b755451151
Update docs/FAQ.md
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-17 12:20:55 +01:00
Will McGugan
dcddd985e9 missing snapshot 2024-09-17 12:20:17 +01:00
Will McGugan
b8374a55b6 snapshots 2024-09-17 11:06:31 +01:00
Will McGugan
d1c6cea90f faq 2024-09-17 10:47:34 +01:00
Will McGugan
70df0d0d69 changelog 2024-09-17 10:38:11 +01:00
Will McGugan
6cb0cd657c docstrings 2024-09-17 10:32:00 +01:00
Will McGugan
e378766a52 comments 2024-09-17 10:29:54 +01:00
Will McGugan
f51995db08 changelog 2024-09-17 10:19:45 +01:00
Will McGugan
58a0f987b9 changelog 2024-09-17 10:19:27 +01:00
Will McGugan
718f4b105f comments 2024-09-17 10:12:48 +01:00
Will McGugan
00ee38d512 no bold select 2024-09-16 16:57:00 +01:00
Will McGugan
1d0394b660 added inline padding 2024-09-16 16:51:24 +01:00
Will McGugan
5f2f46a21f ansi scrollbar 2024-09-16 13:56:23 +01:00
Will McGugan
fd2c4601c7 test 2024-09-16 11:12:16 +01:00
Will McGugan
8e6de4cdf3
Merge pull request #4994 from Textualize/cmd-palette-sort-fix
Fix sorting in command palette search hits
2024-09-16 10:53:17 +01:00
TomJGooding
52796241e5
fix(tools): fix widget documentation helper script (#5002) 2024-09-16 10:46:26 +01:00
TomJGooding
fe91255871
docs: fix copypasta in docstrings (#5001) 2024-09-16 10:45:44 +01:00
Darren Burns
3788803a49
Add score to DiscoveryHit, hardcoded to 0 2024-09-16 10:36:21 +01:00
Darren Burns
12f9d2efec
Merge branch 'main' into cmd-palette-sort-fix 2024-09-16 10:26:10 +01:00
Will McGugan
7738b10840 typo 2024-09-16 10:08:49 +01:00
Will McGugan
0d1c868b58
Merge pull request #5005 from friscorose/link_to_height
Update styles.md
2024-09-16 09:54:16 +01:00
Will McGugan
6758c27762 color tweak 2024-09-15 17:54:00 +01:00
Will McGugan
95f65e9f68 sidebar 2024-09-15 17:28:37 +01:00
Will McGugan
c5dc66f388 ansi scrollbars 2024-09-15 15:41:03 +01:00
friscorose
0dd3b946c8
Update styles.md
simple link change
2024-09-15 10:00:56 -04:00
Will McGugan
f02a34542f punctuation 2024-09-15 10:09:22 +01:00
Will McGugan
17097e6bcc ansi compatible boxes 2024-09-15 10:06:41 +01:00
Will McGugan
9560884a2f ansi color system 2024-09-14 20:00:01 +01:00
Will McGugan
92b15c3bbb test fix 2024-09-14 15:05:29 +01:00
Will McGugan
7760603a44 fix test 2024-09-14 14:29:06 +01:00
Will McGugan
38d17f5893 docstrings 2024-09-13 20:39:09 +01:00
Will McGugan
d2e77e420a allow ansi color 2024-09-13 20:34:34 +01:00
Darren Burns
769c7f668f
Auto-height table repopulate fix (#4992) 2024-09-13 13:29:22 +01:00
Will McGugan
daab5c2a09
Merge pull request #4997 from Textualize/absolute-imports
Absolute imports
2024-09-12 19:10:32 +01:00
Will McGugan
9d9e138892 absolute imports 2024-09-12 18:33:30 +01:00
Will McGugan
b173d9e266 absolutify 2024-09-12 15:29:16 +01:00
Will McGugan
48827769e4 absolute imports 2024-09-12 15:26:33 +01:00
Darren Burns
8151960cd4 update changelog 2024-09-12 14:49:22 +01:00
Darren Burns
b7ef19dfa7 Update snapshot 2024-09-12 14:46:13 +01:00
Darren Burns
92ca02e1bd Only sorting search results 2024-09-12 14:45:06 +01:00
Darren Burns
18aacac04c Sort by score, fall back to text 2024-09-12 14:40:35 +01:00
Darren Burns
04a05ae13b sorting command palette search hits 2024-09-12 14:15:20 +01:00
Darren Burns
3e1b4131f0 typo 2024-09-12 13:37:08 +01:00
Darren Burns
6f6c987f12 Docs example 2024-09-12 13:35:33 +01:00
Darren Burns
4dec4b3e72 Merge branch 'main' of github.com:Textualize/textual into docs-updates-11sep24 2024-09-12 12:13:27 +01:00
Will McGugan
d11ff24ae0
Merge pull request #4979 from Textualize/app-focus-style 2024-09-12 10:32:34 +01:00
Darren Burns
05fe60d6af
Allowing none in some CSS rules (#4982)
* Allow dock: none; and split: none;

* Snapshot test for dock: none

* Fix setting border and border_{edge} = "none" in Python (it works in CSS)

* Remove print for debugging from styles_cache

* Update BorderDefinition typing to allow for "none" like CSS

* Docstrings and fixing default `scrollbar_size_vertical`

* Remove ToastRack margin-right

* Updating CHANGELOG

* Adding is_docked and is_split properties to StylesBase, improving docstrings
2024-09-12 10:15:30 +01:00
Will McGugan
855fb5abde
Merge pull request #4989 from Textualize/fix-flicker 2024-09-12 09:17:32 +01:00
Will McGugan
e39d677628 changelog 2024-09-11 16:55:34 +01:00
Will McGugan
a5b31703a3 changelog 2024-09-11 16:54:44 +01:00
Darren Burns
aa3c8e9c17
Remove border-right from toasts (#4984)
* Update snapshots and remove right border from Toast

* Update CHANGELOG
2024-09-11 16:37:10 +01:00
Will McGugan
5867dcf318
Merge pull request #4978 from Textualize/rich-log-width-fix
RichLog fixes
2024-09-11 16:30:51 +01:00
Will McGugan
89193a58e9
Merge pull request #4905 from Zimzozaur/log-slow-message
Added waring when message handling take long time
2024-09-11 15:57:43 +01:00
Will McGugan
ef2281cceb snapshot 2024-09-11 15:53:01 +01:00
Will McGugan
c73016f59b Merge branch 'main' into app-focus-style 2024-09-11 15:09:57 +01:00
Will McGugan
2cd38d1b07 added test 2024-09-11 15:09:43 +01:00
Darren Burns
0946657599
Merge branch 'main' of github.com:Textualize/textual into log-slow-message 2024-09-11 14:25:29 +01:00
Darren Burns
a2fc4b1d2e
Copy on write to Rich log if deferring and content is Text instance 2024-09-11 14:22:50 +01:00
Darren Burns
fde23733fc
Mention can_focus in docs, note on how bindings are checked 2024-09-11 14:01:40 +01:00
Will McGugan
2429c30692
Merge pull request #4783 from amottola/masked_input
MaskedInput
2024-09-11 13:51:56 +01:00
Darren Burns
295f95b430
Add section on "focusable widgets" to "Input" page of guide 2024-09-11 13:18:42 +01:00
TomJGooding
e54db0e16b
docs(testing): clarify testing frameworks section (#4898)
* docs(testing): clarify testing frameworks section

* explain the auto asyncio mode
2024-09-11 12:58:58 +01:00
Darren Burns
e92ca52443
Update changelog 2024-09-10 15:24:36 +01:00
Darren Burns
41ec20d451
Update changelog 2024-09-10 15:20:24 +01:00
Darren Burns
54f787f5c0
Merge branch 'main' of github.com:Textualize/textual into rich-log-width-fix 2024-09-10 15:17:30 +01:00
Darren Burns
59b9891ccb
Simplify docstring 2024-09-10 15:05:02 +01:00
Darren Burns
3457db4eb2
Testing rich log highlighter, docstring improvements 2024-09-10 14:33:44 +01:00
Darren Burns
fd7081a62b
Docstrings, and clear deferred renders queue on clear() call in RichLog 2024-09-10 14:13:28 +01:00
Darren Burns
bcbcbb5e42
Rework docstring 2024-09-10 14:10:19 +01:00
Darren Burns
40dd9eb6db
Rework docstring 2024-09-10 14:06:23 +01:00
Darren Burns
1d27145e8e
Fix case of shrink=True and expand=True 2024-09-10 13:44:02 +01:00
Darren Burns
68d507a3d7
Fix case of shrink=True and expand=True 2024-09-10 13:35:38 +01:00
Will McGugan
4c0efd5503
Merge pull request #4946 from TomJGooding/fix-screenshots-simplify-segments-only-for-snapshot-tests
fix(screenshots): simplify segments only for snapshot tests
2024-09-10 13:34:23 +01:00
Darren Burns
f63fbfb999
Test to ensure RichLog.write width param is respected 2024-09-10 13:26:50 +01:00
Darren Burns
d9f45107c1
Respect width 2024-09-10 13:18:07 +01:00
Darren Burns
6081380194
Add snapshot test for RichLog.shrink 2024-09-10 10:49:21 +01:00
Darren Burns
5ce0086052
Simplification in RichLog 2024-09-10 09:53:31 +01:00
TomJGooding
ce5e05e6e4 update changelog 2024-09-10 09:05:47 +01:00
TomJGooding
fb2928b9d9 Merge branch 'main' into fix-screenshots-simplify-segments-only-for-snapshot-tests 2024-09-10 09:03:01 +01:00
TomJGooding
1bc7fa60d3 fix docstring formatting 2024-09-10 08:43:24 +01:00
TomJGooding
ebabca742e update docstrings with simplify arg 2024-09-10 08:41:16 +01:00
TomJGooding
9747e300ba update format_svg to set simplify to false 2024-09-10 08:21:04 +01:00
Will McGugan
af4b306f1d
Merge pull request #4971 from JaceyPenny/jaceypenny/platformdirs-version
Loosen platformdirs version requirement
2024-09-09 20:30:06 +01:00
JaceyPenny
5f24a751ba Loosen platformdirs version requirement 2024-09-09 18:58:25 +00:00
Will McGugan
215d99c050 tweak example 2024-09-09 19:36:56 +01:00
Will McGugan
da00ab3f7b mother example 2024-09-09 19:29:45 +01:00
Will McGugan
54c3a2e0da test fix 2024-09-09 17:55:35 +01:00
Will McGugan
12f0ed090d simplify 2024-09-09 17:47:23 +01:00
Will McGugan
d4ccc67109 test fix 2024-09-09 17:42:34 +01:00
Will McGugan
563ccb8f0c enable app focus styles 2024-09-09 17:32:29 +01:00
Darren Burns
9db5b5df58
Rich log deferring renders 2024-09-09 16:43:24 +01:00
Darren Burns
46983ef6ad
Using scrollable content region width while rendering RichLog lines 2024-09-09 13:39:39 +01:00
Darren Burns
9af69ffc96
Some RichLog.write changes 2024-09-09 11:52:22 +01:00
Will McGugan
cfa093ea3a
Merge pull request #4964 from Textualize/fix-object-leak
fix object leak
2024-09-09 11:08:02 +01:00
Will McGugan
8ad78c74dd xfail 2024-09-09 10:46:49 +01:00
Will McGugan
568a83a226
Update tests/test_unmount.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-09-09 10:43:18 +01:00
Will McGugan
ef0442f1e4 blog tweaks 2024-09-08 12:17:42 +01:00
Will McGugan
5318167bb9
Merge pull request #4952 from Textualize/textual-serve-blogpost
blog post about textual serve and delivering files
2024-09-08 11:49:19 +01:00
Will McGugan
9e4f4db5dc docstring 2024-09-07 20:30:57 +01:00
Will McGugan
b6b79c7b4b tidy 2024-09-07 18:34:52 +01:00
Will McGugan
36778f8d4e pytest setting 2024-09-07 18:02:00 +01:00
Will McGugan
53bcdbef5c remove objgraph from dependencies 2024-09-07 17:59:18 +01:00
Will McGugan
be1f2ae78b tests 2024-09-07 17:52:42 +01:00
Will McGugan
03ad3af83f remove old hack 2024-09-07 17:52:25 +01:00
Will McGugan
c581182a1c better references 2024-09-06 20:59:45 +01:00
Will McGugan
212ce1a3de Merge branch 'main' into fix-object-leak 2024-09-06 12:16:29 +01:00
Will McGugan
ab4fc4b489 blog update 2024-09-06 10:51:12 +01:00
Simon
6902a61187 fix with make 2024-09-06 10:18:42 +02:00
Darren Burns
5140b4ed9b
Merge branch 'main' into masked_input 2024-09-05 08:40:48 +01:00
Charles Merriam
43dfe08117
Fix Number and Float validation errors, allow underscores, add tests. Fix issue #4718 (#4784)
* Update Validation Test cases until not passing

* update Number and Integer validators

* Upgrade Number and Integer type regex to allow underscore, augment tests

* Force CHANGELOG update to prevent merge issues

* Update CHANGELOG.md for this PR

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-09-05 08:20:39 +01:00
Darren Burns
e0f01e80d7 Update MaskedInput "added in version" note in docs 2024-09-05 07:59:21 +01:00
Will McGugan
b8708bab89 remove debug 2024-09-03 17:25:15 +01:00
Will McGugan
58768dd3a8 fix object leak 2024-09-03 17:23:23 +01:00
Darren Burns
035a8afe82 More links 2024-09-03 10:41:59 +01:00
Darren Burns
1b98d67038 Adding links 2024-09-03 10:15:24 +01:00
Darren Burns
dc34c62b50 Merge branch 'main' of github.com:Textualize/textual into textual-serve-blogpost 2024-09-03 10:14:56 +01:00
Darren Burns
e300d02d5b
Merge branch 'main' into masked_input 2024-09-03 10:04:20 +01:00
Will McGugan
61530d3691 blog post 2024-09-02 16:16:19 +01:00
Will McGugan
563b119363
Merge pull request #4957 from Textualize/fix-tutorial-cp
Fix non active screen updates
2024-08-31 17:28:22 +01:00
Will McGugan
86ab34e2e6 bump 2024-08-31 17:17:03 +01:00
Will McGugan
a3880f8b91 changelog 2024-08-31 17:16:01 +01:00
Will McGugan
af80839a20 changelog 2024-08-31 17:14:34 +01:00
Will McGugan
94cde8a8dc promote serve up a level 2024-08-30 18:57:38 +01:00
Will McGugan
66132b8c42 docs 2024-08-30 18:49:33 +01:00
Will McGugan
ea03bbc757
Merge pull request #4956 from Textualize/bump0790
bump to 0.79.0
2024-08-30 16:26:48 +01:00
Will McGugan
88f35d0f59 bump 2024-08-30 16:24:13 +01:00
Will McGugan
22f1c42545 fix web driver 2024-08-30 14:08:59 +01:00
Will McGugan
a936be8b4b enable key protocol 2024-08-30 12:32:03 +01:00
Will McGugan
8767530d58 typing 2024-08-29 16:19:33 +01:00
Will McGugan
c692bef38a fix web driver 2024-08-29 15:27:43 +01:00
Will McGugan
112e8c6d4b
Merge pull request #4953 from Textualize/screenshot-deliver
added name to deliver
2024-08-29 15:22:29 +01:00
Will McGugan
914ec2af8e docstring 2024-08-29 15:09:36 +01:00
Will McGugan
6832dc30a6 docstring 2024-08-29 14:57:21 +01:00
Will McGugan
10c9b25909 snapshot 2024-08-29 14:55:25 +01:00
Will McGugan
a1fa7ce9d9 strings 2024-08-29 14:52:58 +01:00
Will McGugan
9cd3d8d1e4 correct filename 2024-08-29 14:51:22 +01:00
Will McGugan
79ac1c7502 delivery failed handler 2024-08-29 14:40:45 +01:00
Will McGugan
5d95910292 added name to deliver 2024-08-29 14:37:00 +01:00
Will McGugan
cd8bbb3082
Merge pull request #4875 from Textualize/save-file
Deliver file
2024-08-29 13:37:48 +01:00
Darren Burns
f2494ea1e4
blog post about textual serve and delivering files 2024-08-29 13:28:31 +01:00
Will McGugan
9adf087eda fox docstring 2024-08-29 11:28:08 +01:00
Will McGugan
d173c2628c
Merge pull request #4951 from Textualize/escape-minimize
Add classvar ESCAPE_TO_MINIMIZE
2024-08-29 11:05:58 +01:00
Will McGugan
3c50b0d7f0 docstring 2024-08-29 10:10:07 +01:00
Will McGugan
7ea2f429aa word 2024-08-29 10:09:05 +01:00
Will McGugan
de0cca9615 words 2024-08-29 10:08:05 +01:00
Will McGugan
9d14dd0014 docstring 2024-08-29 10:04:28 +01:00
Will McGugan
707b1fd0f5 comments 2024-08-29 10:04:28 +01:00
Will McGugan
686dc3be3c
Merge branch 'main' into escape-minimize 2024-08-29 10:00:19 +01:00
Will McGugan
ed85c12cc1 changelog 2024-08-29 09:59:53 +01:00
Will McGugan
b50cf3ff5e snapshot 2024-08-29 09:58:09 +01:00
Will McGugan
58d25fb11e
Merge pull request #4950 from Textualize/faster-query
Faster query_one
2024-08-28 17:08:57 +01:00
Will McGugan
85eb1eb69c punctuation 2024-08-28 17:07:52 +01:00
Will McGugan
7d36efcb1c Add classvar ESCAPE_TO_MINIMIZE 2024-08-28 17:06:39 +01:00
Will McGugan
78bd0f509a import 2024-08-28 16:55:43 +01:00
Will McGugan
95c8204ce0 fix cache key 2024-08-28 16:50:39 +01:00
Will McGugan
a709193e91 cache key type alias fix is_simple 2024-08-28 16:49:30 +01:00
Will McGugan
3beef2ae16 optimize get_widget_by_id 2024-08-28 16:37:07 +01:00
Will McGugan
2088c663a4 remove bad optimization 2024-08-28 16:23:04 +01:00
Will McGugan
0b9d768ea0 changelog 2024-08-28 16:21:40 +01:00
Will McGugan
ac18a7f312 fix updated method call 2024-08-28 16:16:41 +01:00
Will McGugan
fdbeaf4d4f changelog 2024-08-28 16:13:18 +01:00
Will McGugan
eaf4dbeac8 superfluous 2024-08-28 16:12:14 +01:00
Will McGugan
a7ce51d011 added caching of query_one 2024-08-28 16:05:17 +01:00
Will McGugan
b3a4f2a93e changelog 2024-08-28 14:49:52 +01:00
Will McGugan
011ac1df59 Faster query_one 2024-08-28 14:45:24 +01:00
Angelo Mottola
a46e2df90d Updated changelog 2024-08-28 14:44:10 +02:00
Angelo Mottola
9167a45005
Merge branch 'Textualize:main' into masked_input 2024-08-28 14:40:36 +02:00
Angelo Mottola
a100081bbf Fixed tests, added missing snapshot test 2024-08-28 14:39:41 +02:00
Will McGugan
75d71f5eb4
Merge pull request #4947 from Textualize/esc-minimize
Escape to minimize
2024-08-28 10:13:22 +01:00
Will McGugan
1136f8dc7e
Merge pull request #4945 from Textualize/key-to-character
Add key_to_character function
2024-08-28 10:12:44 +01:00
Simon
b44d7fc94f improved docstring of the SLOW_THRESHOLD 2024-08-28 09:51:29 +02:00
Simon
c56fdfaa22 Moved SLOW_THRESHOLD to constants.py
Removed unnecessary info from log
2024-08-28 09:22:03 +02:00
Will McGugan
f709f99f93
Apply suggestions from code review
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-08-27 22:06:42 +01:00
Will McGugan
067fc1a019 fix snapshot on ci 2024-08-27 21:48:00 +01:00
Will McGugan
2471399311 blinking cursors 2024-08-27 21:38:24 +01:00
Will McGugan
11fd7cadef snapshot 2024-08-27 21:28:47 +01:00
Will McGugan
c0de5c4e49 comments 2024-08-27 21:16:19 +01:00
Will McGugan
905160f516 Merge branch 'main' into key-to-character 2024-08-27 21:15:02 +01:00
Will McGugan
46a300e05c
Merge pull request #4942 from TomJGooding/docs-fix-typos-and-spelling
docs: fix typos and spelling
2024-08-27 21:06:29 +01:00
TomJGooding
d4325f492d add simplify switch to export_screenshot 2024-08-27 20:20:13 +01:00
Will McGugan
2c8fe13301 comment 2024-08-27 17:40:22 +01:00
TomJGooding
2b64b6e4b9 clean trailing whitespace in css examples 2024-08-27 17:38:15 +01:00
Will McGugan
09aa7611aa comments 2024-08-27 17:36:54 +01:00
Will McGugan
8e2b6e09b0 snapshot 2024-08-27 17:33:58 +01:00
Will McGugan
9a0f8e54fa Add key_to_character function 2024-08-27 17:30:29 +01:00
TomJGooding
1e6dce3b63 colour -> color 2024-08-27 17:25:48 +01:00
TomJGooding
6cc24cb046 maybe -> may be 2024-08-27 16:51:21 +01:00
Will McGugan
376cf0fae7
Merge pull request #4940 from Textualize/check-consume-key
add check_consume_key
2024-08-27 16:10:08 +01:00
Will McGugan
c45e5609c0 spacial case for tabs in text area 2024-08-27 15:58:03 +01:00
Will McGugan
f3ed9df5db change behavior for read only 2024-08-27 15:50:41 +01:00
TomJGooding
3316eb7555 it's -> its 2024-08-27 15:39:16 +01:00
Will McGugan
922cd6166d snapshot 2024-08-27 15:24:14 +01:00
Will McGugan
0893dfa895 remove superfluous copy 2024-08-27 15:23:43 +01:00
Will McGugan
d350da378f docstring 2024-08-27 15:22:19 +01:00
Will McGugan
09a6e3a347 snapshots 2024-08-27 15:18:31 +01:00
TomJGooding
9a43e50472 behaviour -> behavior 2024-08-27 15:15:04 +01:00
TomJGooding
ec7e8a209f heard -> hard 2024-08-27 15:07:41 +01:00
Will McGugan
143293a7ba changelog 2024-08-27 14:55:32 +01:00
Will McGugan
6ead43df8a add check_consume_key 2024-08-27 14:54:51 +01:00
Will McGugan
6aebb0e048
Merge pull request #4938 from Textualize/bump0780
bump to 0.78.0
2024-08-27 13:17:46 +01:00
Will McGugan
00fc31841b bump to 0.78.0 2024-08-27 13:15:09 +01:00
Will McGugan
584dd0c7ad
Merge branch 'main' into masked_input 2024-08-27 12:32:14 +01:00
Will McGugan
fba4773154
Merge pull request #4931 from Textualize/maximize
Feature to maximize widgets
2024-08-26 16:46:40 +01:00
Will McGugan
82d61c168a
Update src/textual/screen.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-08-26 14:20:51 +01:00
Will McGugan
47b3a4c5fd
Update src/textual/screen.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-08-26 11:48:18 +01:00
Will McGugan
c93d6c173d docstring 2024-08-26 11:42:50 +01:00
Will McGugan
ab0b0708ba fix maximize logic 2024-08-26 10:57:51 +01:00
Will McGugan
cead6e37b4 Rescroll 2024-08-25 14:35:26 +01:00
Will McGugan
c61ef27346 comments 2024-08-25 11:53:30 +01:00
Will McGugan
a99b145ec7 changelog and snapshots 2024-08-25 11:51:04 +01:00
Will McGugan
e1fde156fd simplify and comments 2024-08-25 11:37:53 +01:00
Will McGugan
efd0982a30 command logic 2024-08-25 09:57:34 +01:00
Will McGugan
73dc101d00 maximize logic 2024-08-25 09:52:53 +01:00
Will McGugan
8da07d67d1 allow textual system 2024-08-24 21:04:48 +01:00
Will McGugan
b55341d314 maximized focus 2024-08-24 20:56:22 +01:00
Will McGugan
db51116ae1 changelog 2024-08-24 20:48:41 +01:00
Will McGugan
ab4ac473a8 no toggle 2024-08-24 20:45:27 +01:00
Will McGugan
c5f4e3326d maximize windows 2024-08-24 20:43:10 +01:00
Will McGugan
db3fda928b markup in commands 2024-08-23 16:57:10 +01:00
Simon Joseph
8ac9b412c4
Update message_pump.py 2024-08-23 12:26:11 +02:00
Will McGugan
58e1551bec fix docstring 2024-08-22 15:55:10 +01:00
Darren Burns
915e05cd17 Logging file delivery error 2024-08-22 15:13:45 +01:00
Will McGugan
0638f2f3b7
Merge pull request #4922 from Textualize/screenshot-command
screenshot, version bump
2024-08-22 15:08:59 +01:00
Will McGugan
7c9a219763 changelog 2024-08-22 14:51:17 +01:00
Will McGugan
1d3115905a changelog 2024-08-22 14:50:52 +01:00
Will McGugan
28aef7218c comment 2024-08-22 14:47:07 +01:00
Will McGugan
787ca79ed7 screenshot, version bump 2024-08-22 14:46:29 +01:00
Darren Burns
8127286c9e Handling errors 2024-08-22 14:46:20 +01:00
Will McGugan
c5dea2361a
Merge pull request #4920 from Textualize/app-commands
added system commands
2024-08-22 14:34:48 +01:00
Will McGugan
00fbf2d5fa no blink 2024-08-22 14:24:34 +01:00
Will McGugan
0ae2464838
Merge branch 'main' into app-commands 2024-08-22 14:12:32 +01:00
Will McGugan
da238d1156 docs 2024-08-22 14:12:04 +01:00
Will McGugan
0116cd27a7
Merge pull request #4921 from Textualize/remove-classic-footer
Remove classic footer
2024-08-22 14:06:35 +01:00
Will McGugan
b7c6e659a5 docstrings 2024-08-22 14:06:00 +01:00
Will McGugan
4f3c7666e5 SystemCommand 2024-08-22 14:04:54 +01:00
Will McGugan
7f724f7668 harden test 2024-08-22 13:51:31 +01:00
Will McGugan
9844d898da
Update tests/snapshot_tests/test_snapshots.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-08-22 13:33:55 +01:00
Will McGugan
8f3788628a changelog 2024-08-22 13:31:39 +01:00
Will McGugan
142ca7485c Remove classic footer 2024-08-22 13:29:50 +01:00
Will McGugan
1d1e538e10 words 2024-08-22 13:17:13 +01:00
Will McGugan
bc54961e15 wording 2024-08-22 13:16:52 +01:00
Will McGugan
7a9ab93826 docs 2024-08-22 12:37:30 +01:00
Will McGugan
9f66043291 added help 2024-08-22 12:21:23 +01:00
Will McGugan
b1849e36ef snapshot 2024-08-22 12:08:48 +01:00
Will McGugan
0efdb10df8 changelog 2024-08-22 11:50:17 +01:00
Will McGugan
6995834c3c added system commands 2024-08-22 11:46:56 +01:00
Will McGugan
557369768a
Merge pull request #4894 from ZeroIntensity/disallow-screen-instances
Disallow `Screen` instances in `App.SCREENS`
2024-08-22 11:29:03 +01:00
Will McGugan
68ba2e9a5c
Merge pull request #4915 from Textualize/context-help
context sensitive help
2024-08-22 11:27:22 +01:00
Will McGugan
0469834ba2 merge 2024-08-22 11:17:54 +01:00
Will McGugan
710f9a080e snapshot 2024-08-22 11:16:25 +01:00
Will McGugan
7ea10ce907
Merge pull request #4916 from Textualize/fix-scroll-page
Fix scroll page
2024-08-22 11:12:25 +01:00
Will McGugan
75218214f7 hide panel title 2024-08-22 11:04:48 +01:00
Darren Burns
40450c0a9a Reading 64k per chunk 2024-08-22 10:56:33 +01:00
Will McGugan
050408878b title 2024-08-22 10:55:42 +01:00
Will McGugan
fea0bce8ef reduce sanapshot size 2024-08-22 10:48:37 +01:00
Peter Bierma
f739b77437
Merge branch 'main' into disallow-screen-instances 2024-08-21 17:10:08 -04:00
Will McGugan
07efeaf713 UK spelling 2024-08-21 21:28:19 +01:00
Will McGugan
de7ca7ab24 simpler matching 2024-08-21 21:10:27 +01:00
Will McGugan
5fdee1f39f fix sizing issue 2024-08-21 20:22:27 +01:00
Will McGugan
616baa0307 don't update help for inactive screen 2024-08-21 17:27:39 +01:00
Will McGugan
8ca468235f fix height calculation 2024-08-21 17:25:31 +01:00
Will McGugan
dd13211ed0 snapshots 2024-08-21 16:34:09 +01:00
Will McGugan
41568f3a55 content height 2024-08-21 16:24:58 +01:00
Will McGugan
a5e8541ad9 remove jankiness as the CP is populated 2024-08-21 16:11:25 +01:00
Will McGugan
15c3d5755d
Merge pull request #4907 from TomJGooding/refactor-switch-change-slider-pos-to-private
refactor(switch): make slider_pos private
2024-08-21 15:29:38 +01:00
Will McGugan
a71088ea82 simplify 2024-08-21 15:21:02 +01:00
Will McGugan
7f8f912a37 changelog 2024-08-21 14:00:41 +01:00
Will McGugan
1ed1dca251 test and snapshot 2024-08-21 13:59:55 +01:00
Will McGugan
65d35c1d73 snapshot 2024-08-21 13:55:17 +01:00
Will McGugan
990b1b3ac2 docstring 2024-08-21 13:43:16 +01:00
Will McGugan
bcaa31b634 hardening 2024-08-21 13:40:23 +01:00
Will McGugan
c7c491bea8 remove debug help 2024-08-21 13:33:46 +01:00
Will McGugan
0ffa74c71c changelog 2024-08-21 13:26:31 +01:00
Will McGugan
0aae4e11c6 comments 2024-08-21 13:25:43 +01:00
Will McGugan
9a3f5b5f57 rename panel 2024-08-21 13:21:17 +01:00
Will McGugan
37fbeee781 context sensitive help 2024-08-21 11:32:39 +01:00
Darren Burns
77a05fd507
Docstring 2024-08-21 11:09:51 +01:00
Will McGugan
14883b041a
Merge pull request #4906 from Textualize/format-key-panel
group keys in key panel
2024-08-21 10:07:12 +01:00
Will McGugan
7e0f4fc402 rename 2024-08-21 09:53:23 +01:00
Will McGugan
d03292a93a punctuation 2024-08-21 09:50:05 +01:00
Will McGugan
60949b8ed0 heading style 2024-08-21 09:48:56 +01:00
Darren Burns
06eb6a0765
Merge branch 'main' of github.com:Textualize/textual into save-file 2024-08-21 09:26:03 +01:00
TomJGooding
9e06c09047 refactor(switch): make slider_pos private 2024-08-20 22:01:47 +01:00
Will McGugan
f8506e2366 abbreviate del 2024-08-20 17:22:05 +01:00
Will McGugan
0e70d78036 tweak padding 2024-08-20 17:16:52 +01:00
Will McGugan
0116878bb3 binding group 2024-08-20 17:07:21 +01:00
Will McGugan
83ad5b2972 fix encoding 2024-08-20 16:51:02 +01:00
Darren Burns
5bbfd49b3c
Remove msgpack-types dependency 2024-08-20 16:02:53 +01:00
Will McGugan
0dedccc161 typing 2024-08-20 16:02:19 +01:00
Will McGugan
8db6b5e219 whitespace 2024-08-20 16:00:48 +01:00
Will McGugan
09c2c5e5fd group keys 2024-08-20 15:57:46 +01:00
Darren Burns
b2eddbe7a7
Remove msgpack dependency 2024-08-20 15:32:34 +01:00
Darren Burns
087f35390c
Use binary encoding instead of msgpack 2024-08-20 15:32:07 +01:00
Darren Burns
78095d770d
Merge branch 'main' of github.com:Textualize/textual into save-file 2024-08-20 15:25:50 +01:00
Darren Burns
f46e56b629
Send empty strings instead of None to parent process 2024-08-20 15:21:21 +01:00
Will McGugan
786837399c
Merge pull request #4892 from Textualize/fix-invalid-state
Fix invalid state
2024-08-20 15:12:22 +01:00
Will McGugan
424ef64bdd
Merge pull request #4890 from Textualize/fix-cp-binding
fix command palette key
2024-08-20 15:11:36 +01:00
Will McGugan
87167daba4 changelog 2024-08-20 15:11:03 +01:00
Will McGugan
d4bf44545d comments 2024-08-20 15:01:36 +01:00
Will McGugan
8bde2cb1dd comments 2024-08-20 14:57:27 +01:00
Will McGugan
cfdab2bebe naming 2024-08-20 14:34:35 +01:00
Will McGugan
698f6cfce6 snapshot 2024-08-20 14:26:42 +01:00
Will McGugan
711d9384c4 centralize key display 2024-08-20 14:25:40 +01:00
Simon
16843eca29 Added waring when message handling take long time 2024-08-20 15:23:39 +02:00
Darren Burns
124a17a6e4
Returning the delivery key to the caller of App.deliver_text/delivery_binary 2024-08-20 13:42:12 +01:00
Will McGugan
d551835fe9 merge 2024-08-20 13:37:00 +01:00
Will McGugan
8a1c603688
Merge pull request #4876 from Textualize/key-panel
Key panel widget
2024-08-20 13:35:51 +01:00
Will McGugan
faad0f5cbb remove timer 2024-08-20 13:30:08 +01:00
Darren Burns
0b28fcf7d1
Update docstring 2024-08-20 13:18:48 +01:00
Will McGugan
b9b5a58f09 key panel twice 2024-08-20 11:41:25 +01:00
Will McGugan
ce07f7685a don't update on app blur 2024-08-20 11:37:20 +01:00
Will McGugan
82115b7aec ws 2024-08-20 11:31:42 +01:00
Peter Bierma
7180ecc9e3
Remove dead code 2024-08-20 06:26:53 -04:00
Will McGugan
289e4a919b require recompose 2024-08-20 11:17:15 +01:00
Will McGugan
40c48c5162 changelog 2024-08-20 11:00:42 +01:00
Darren Burns
3dba6b9423
Threaded delivery when not on web 2024-08-20 11:00:03 +01:00
Will McGugan
870398c027 simplify 2024-08-20 10:49:42 +01:00
Will McGugan
70b4144571 changelog 2024-08-20 10:41:43 +01:00
Will McGugan
6908ec03f9 snapshot 2024-08-20 10:27:07 +01:00
Will McGugan
bd3b063a39 improved split 2024-08-20 10:17:17 +01:00
Peter Bierma
e24b06d913 Add extra test. 2024-08-18 16:31:45 -04:00
Peter Bierma
2798f0deca Fix instance check. 2024-08-18 16:30:29 -04:00
Peter Bierma
0c6287811f Use _modes in tests. 2024-08-18 16:27:26 -04:00
Peter Bierma
853f694a44 Pass arguments through __init_subclass__ 2024-08-18 16:26:15 -04:00
Peter Bierma
869d607643 Update the unit test. 2024-08-18 16:23:58 -04:00
Peter Bierma
72c6c911f3 Move to _modes and __init_subclass__ 2024-08-18 16:21:41 -04:00
Peter Bierma
629608eab1 Update changelog again. 2024-08-18 16:13:00 -04:00
Peter Bierma
0caa61943c Update docstring. 2024-08-18 11:07:43 -04:00
Peter Bierma
b1b6d91999 Add the modes attribute. 2024-08-18 11:05:52 -04:00
Peter Bierma
b2b6dce51a Make error message prettier. 2024-08-18 10:01:43 -04:00
Peter Bierma
e1cbccf6a0 Fix unit test. 2024-08-18 10:00:34 -04:00
Peter Bierma
97afee8085 Update changelog again. 2024-08-18 09:59:02 -04:00
Peter Bierma
234f065f63 Disallow Screen instances in MODES 2024-08-18 09:58:23 -04:00
Peter Bierma
2cf5e1048f Update changelog. 2024-08-18 09:38:15 -04:00
Peter Bierma
32f27b6486 Add test. 2024-08-18 09:36:33 -04:00
Peter Bierma
ebad240bca Allow use of callables. 2024-08-18 09:27:00 -04:00
Peter Bierma
4974f84930 Update examples. 2024-08-18 09:25:19 -04:00
Peter Bierma
40397b30e0 Remove dead code. 2024-08-18 09:23:56 -04:00
Peter Bierma
c5501097bf Disallow instances in SCREENS 2024-08-18 09:21:56 -04:00
Will McGugan
8c01ef71f7 fix error in inline mode 2024-08-17 21:29:57 +01:00
Will McGugan
e1b014f623 missing help 2024-08-17 21:11:15 +01:00
Will McGugan
40a755144e test 2024-08-17 17:10:23 +01:00
Will McGugan
c6ecf5453b Fix invalid state 2024-08-17 17:05:47 +01:00
Will McGugan
eea79da5b1 formatting 2024-08-17 16:42:33 +01:00
Will McGugan
9dc68c480e changelog 2024-08-17 16:39:49 +01:00
Will McGugan
d819eb0547 fix command palette key 2024-08-17 16:38:57 +01:00
Will McGugan
378dc8b0f3 merge 2024-08-16 20:44:39 +01:00
Will McGugan
f863281db6 changelog 2024-08-16 16:29:06 +01:00
Will McGugan
3fad7cf902 no need for this file 2024-08-16 16:24:21 +01:00
Will McGugan
5940a4c8d1 default classes 2024-08-16 15:55:14 +01:00
Will McGugan
d2ccc36d89 snapshot update 2024-08-16 15:49:40 +01:00
Will McGugan
39ed9a7b01 snapshot 2024-08-16 15:28:00 +01:00
Will McGugan
3981af1a44 fix arrange 2024-08-16 15:27:43 +01:00
Will McGugan
318c023005 typing Final 2024-08-15 19:39:08 +01:00
Will McGugan
11ec5a7ede light / dark mode 2024-08-15 16:34:53 +01:00
Will McGugan
48f84608a0 palette tweak 2024-08-15 16:09:44 +01:00
Darren Burns
bd7113c6a4
Fix version number 2024-08-15 10:50:34 +01:00
TomJGooding
a596640660
chore(issue template): clarify textual command requires devtools (#4886) 2024-08-15 10:00:13 +01:00
Will McGugan
37e1d751b9 typing 2024-08-14 16:55:02 +01:00
Will McGugan
888d8d9283 Actions 2024-08-14 16:39:08 +01:00
Will McGugan
a44eb0b217 split widgets 2024-08-14 14:54:09 +01:00
Will McGugan
5c3b423193
Merge pull request #4881 from Textualize/binary-encode
Binary encode
2024-08-14 14:03:39 +01:00
Will McGugan
685d46a6e8 abbreviate keys 2024-08-14 10:39:58 +01:00
Will McGugan
56a3367b14 fix example in docs 2024-08-14 09:59:40 +01:00
Darren Burns
db4e2d5b66
Update typing 2024-08-14 09:43:49 +01:00
Darren Burns
65e1b9ddad
Updating type hints 2024-08-14 09:35:23 +01:00
Darren Burns
88f06bb02f
Updating deliver_text|binary interface 2024-08-14 09:27:37 +01:00
Will McGugan
ecc8f030a6 test bad encoding 2024-08-13 21:18:37 +01:00
Will McGugan
11b9bdb88f refinements 2024-08-13 21:13:50 +01:00
Will McGugan
c8d1faac95 simplify encoding 2024-08-13 21:11:45 +01:00
Will McGugan
8fc57356e0 test errors 2024-08-13 21:03:33 +01:00
Will McGugan
7e36240f0f test unknown character 2024-08-13 21:01:30 +01:00
Will McGugan
fcccbbacde test negative numbers 2024-08-13 21:00:32 +01:00
Will McGugan
aaedaf9fe2
Merge pull request #4880 from TomJGooding/tests-fix-flaky-command-palette-snapshot-test
tests: fix flaky command palette snapshot test
2024-08-13 20:46:17 +01:00
Will McGugan
12c533b83a optimization and refactor 2024-08-13 20:36:31 +01:00
Will McGugan
89beec8964 docs 2024-08-13 20:19:23 +01:00
Darren Burns
6e98a81531
Remove extra logs (#4878) 2024-08-13 17:46:13 +01:00
Will McGugan
a8da4c4ca4 remove debug 2024-08-13 17:17:57 +01:00
Will McGugan
c21783fbfb encoding scheme 2024-08-13 17:14:57 +01:00
TomJGooding
1460e66449 test running ci one final time 2024-08-13 17:14:34 +01:00
TomJGooding
c6455e4094 trigger ci to run again 2024-08-13 17:04:28 +01:00
Will McGugan
7fcf07d92b binary encoding scheme 2024-08-13 17:00:09 +01:00
TomJGooding
1f3fc1b517 tests: fix flaky command palette snapshot test 2024-08-13 16:50:10 +01:00
Will McGugan
749f24e26d tweak 2024-08-13 15:40:40 +01:00
Will McGugan
2e1de85b9c shrink containers 2024-08-13 15:31:55 +01:00
Darren Burns
963e0dab46
Extracting some logic 2024-08-13 11:55:40 +01:00
Darren Burns
3d9147c9a0
Merge branch 'main' of github.com:Textualize/textual into save-file 2024-08-12 16:27:11 +01:00
Darren Burns
700b0147e2
Fixing a docstring 2024-08-12 16:25:22 +01:00
Darren Burns
485f475bf9
PR feedback 2024-08-12 16:10:26 +01:00
Will McGugan
8a392d8568 Merge branch 'main' into key-panel 2024-08-12 15:56:24 +01:00
Will McGugan
c1a8f027db
Merge pull request #4874 from Textualize/cp-escape
command palette dismiss logic
2024-08-12 15:55:52 +01:00
Will McGugan
46bd07d6ea better position 2024-08-12 15:55:33 +01:00
Will McGugan
ce84292365 key panel widget 2024-08-12 15:53:18 +01:00
Darren Burns
2adac06ce3
Move msgpack-types to dev deps 2024-08-12 14:54:39 +01:00
Darren Burns
9d6924a48b
Improving documentation 2024-08-12 14:52:03 +01:00
Darren Burns
848fed3028
Logging and reverting version 2024-08-12 14:39:14 +01:00
Will McGugan
67c5ad8cf0 snapshots 2024-08-12 13:41:02 +01:00
Will McGugan
ee7c769218 Merge branch 'main' into cp-escape 2024-08-12 13:39:00 +01:00
Will McGugan
ee5ff3ad16 fix footer 2024-08-12 13:38:38 +01:00
Will McGugan
91309097cd
Merge pull request #4867 from Textualize/footer-command-palette
Command palette key in Footer
2024-08-12 13:37:42 +01:00
Will McGugan
4bae53fac6 snapshots 2024-08-12 13:21:47 +01:00
Darren Burns
2ec676e71d
Merge branch 'main' of github.com:Textualize/textual into save-file 2024-08-12 13:05:47 +01:00
Will McGugan
3940c82de8 Merge branch 'footer-command-palette' into cp-escape 2024-08-12 12:46:59 +01:00
Will McGugan
19cd037540 command palette dismiss logic 2024-08-12 12:32:56 +01:00
Will McGugan
dd5d6c1549 snapshots 2024-08-12 11:47:47 +01:00
Darren Burns
fb031808bf
Exposing control over MIME type in file delivery 2024-08-12 11:46:47 +01:00
Will McGugan
26d255aaed command palette key 2024-08-12 11:34:46 +01:00
Will McGugan
23172c1a83
Merge pull request #4861 from Textualize/key-modifiers
tweak key reporting
2024-08-12 11:13:40 +01:00
Darren Burns
e56c391b2d
Update old contributing guide (#4872) 2024-08-12 11:12:56 +01:00
Will McGugan
4e5a2b6c19 fix changelog 2024-08-12 11:11:54 +01:00
Will McGugan
4d47718143
Merge pull request #4862 from Zaloog/tooltip-customize
Make Tooltip Delay customize in App with TOOLTIP_DELAY
2024-08-12 11:09:26 +01:00
Will McGugan
94dfa868a6
Merge pull request #4873 from Textualize/fix-item-bug
disable key disambiguate
2024-08-12 11:08:41 +01:00
Will McGugan
640f5ff5bb disable key disambiguate 2024-08-12 11:06:10 +01:00
Darren Burns
80b1f61dba
Fix cursor_blink reactive not affecting the blink effect when set after mounting (#4869)
* Fix cursor_blink reactive not actually affecting the blink effect

* Update CHANGELOG
2024-08-12 10:21:11 +01:00
Darren Burns
635869a5af
Merge branch 'main' into key-modifiers 2024-08-12 09:51:15 +01:00
Darren Burns
25ab9f2bf7
Merge branch 'main' into masked_input 2024-08-12 09:49:58 +01:00
Darren Burns
3de42a978a
Input validators crash fix (#4868)
* Fix crash when using validate_on with list

* Ensure tests cover crash scenario of validate_on not being a set

* Update CHANGELOG
2024-08-11 21:16:22 +01:00
Will McGugan
b4d177cff4 changelog 2024-08-11 19:09:48 +01:00
Will McGugan
1344493448 docs 2024-08-11 19:03:54 +01:00
Will McGugan
3c48551f3d snapshots 2024-08-11 16:58:46 +01:00
Zaloog
5d2224dfe4 Update Snapshot test tooltip delay 2024-08-10 13:37:33 +02:00
Will McGugan
473afcde99 comment 2024-08-10 12:12:45 +01:00
Will McGugan
3bf9445a29 simplify 2024-08-10 11:55:49 +01:00
Will McGugan
bb9297f99a Fix Key.name 2024-08-10 10:02:11 +01:00
Will McGugan
752ecc25f6 don't deduce shift 2024-08-10 09:53:52 +01:00
Zaloog
51fb62b36b update changelog and typo in test description 2024-08-09 20:59:43 +02:00
Zaloog
f3c49d41c7 add customizeable tooltip delay Textualize/textual#4860 2024-08-09 20:53:45 +02:00
Will McGugan
9baf98ab95 changelog 2024-08-09 19:41:16 +01:00
Will McGugan
9f5283a168 tweak 2024-08-09 18:56:50 +01:00
Will McGugan
191fd38ed0 changelog 2024-08-09 18:44:53 +01:00
Will McGugan
e5aedc2e63 simplify 2024-08-09 18:43:23 +01:00
Will McGugan
c4687d5bd3 key tweaks 2024-08-09 18:41:07 +01:00
Will McGugan
2079e9a344 tweak key reporting 2024-08-09 18:31:55 +01:00
Will McGugan
c39641e806
Merge pull request #4859 from Textualize/binding-tooltip
Add tooltip
2024-08-09 18:12:30 +01:00
Will McGugan
0135a20eb6 changelog 2024-08-09 18:12:11 +01:00
Will McGugan
80afcf2539 revert edit 2024-08-09 17:39:54 +01:00
Will McGugan
04d8a7a252 revert edit 2024-08-09 17:38:08 +01:00
Will McGugan
ca39cabe8b remove tooltip from example 2024-08-09 17:35:21 +01:00
Will McGugan
3da312192c Add tooltip 2024-08-09 17:34:00 +01:00
Will McGugan
ca3ade4530 fix kitty protocol modifiers 2024-08-09 12:17:09 +01:00
Will McGugan
6f5eb419a6
Merge pull request #4850 from Textualize/multi-bindings
WIP Multiple bindings
2024-08-09 10:22:27 +01:00
Will McGugan
9059f13bf6 version bump 2024-08-09 10:11:13 +01:00
Will McGugan
4293e22206 remove comment 2024-08-09 10:08:02 +01:00
Will McGugan
e25d7fa98a snapshot 2024-08-09 10:06:11 +01:00
Will McGugan
b7579b807f comments and naming 2024-08-09 09:51:19 +01:00
Will McGugan
35df151992 rename get_key to get_bindings_for_key 2024-08-08 20:16:52 +01:00
Will McGugan
146e65dd83 test fixes 2024-08-08 20:14:00 +01:00
Will McGugan
b2af20c23b
Merge pull request #4848 from Textualize/esc-delay
add ESCDELAY environment var
2024-08-08 16:17:19 +01:00
Darren Burns
62bfd1d99c Ensuring empty chunk is sent to indicate end of file 2024-08-08 16:11:46 +01:00
Will McGugan
bdf729f33e binding format 2024-08-08 16:02:21 +01:00
Will McGugan
1a400ccc71 correct doc 2024-08-08 15:31:05 +01:00
Will McGugan
f14695bee4 binding iterator 2024-08-08 15:30:06 +01:00
Will McGugan
b4a5f9f298
Update src/textual/_parser.py
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-08-08 15:29:26 +01:00
Will McGugan
8256ca6d35 wip 2024-08-08 14:14:53 +01:00
Will McGugan
33dd56e7da formatting 2024-08-08 11:40:29 +01:00
Will McGugan
ff53a3c66a fix tests 2024-08-08 11:38:30 +01:00
Will McGugan
589f4c911d fix windows 2024-08-08 11:36:30 +01:00
Will McGugan
234faa74cf tweak signature 2024-08-07 20:54:24 +01:00
Will McGugan
39653c94d2 simplify 2024-08-07 20:13:43 +01:00
Will McGugan
a8bf6b1d35 formatting 2024-08-07 20:11:40 +01:00
Will McGugan
97da0194cf parser docstrings 2024-08-07 20:06:42 +01:00
Will McGugan
b49f7d9133 typing 2024-08-07 19:59:35 +01:00
Darren Burns
bbba1aa4a3
Simplifying deliver file 2024-08-07 17:00:58 +01:00
Will McGugan
3bdd3630a7 changelog 2024-08-07 16:46:40 +01:00
Will McGugan
6a2d39584b comment out of data 2024-08-07 16:20:03 +01:00
Will McGugan
3b7a96ab0f no longer needed 2024-08-07 16:15:47 +01:00
Will McGugan
b66d0c251f windows fix 2024-08-07 16:05:35 +01:00
Will McGugan
e2649b62e7 formatting 2024-08-07 15:17:11 +01:00
Will McGugan
32d0fe18c8 remove debug 2024-08-07 15:14:38 +01:00
Will McGugan
7ee734db15 win fix 2024-08-07 15:10:02 +01:00
Will McGugan
66f84e2736 windows fix 2024-08-07 14:58:29 +01:00
Will McGugan
091faf43bd key protocol 2024-08-07 14:46:09 +01:00
Will McGugan
ed6fe1436f windows 2024-08-07 14:27:16 +01:00
Will McGugan
bc80682fa6 key refactor 2024-08-07 13:55:22 +01:00
Will McGugan
92b7d334c2 refactor key parsing 2024-08-07 11:28:46 +01:00
Darren Burns
2ecfabc388
Include length in packed messages as it makes parsing easier 2024-08-07 09:40:04 +01:00
Will McGugan
50228206c9 changelog 2024-08-06 16:04:45 +01:00
Will McGugan
e919fe4fee comment 2024-08-06 16:00:29 +01:00
Will McGugan
7e4b35cb7d add escape delay 2024-08-06 15:51:57 +01:00
Darren Burns
3ec56f3e09 Add import annotations from future 2024-08-06 12:57:45 +01:00
Darren Burns
e7bfe013dd Simplifying driver API 2024-08-06 12:54:03 +01:00
Darren Burns
0f0b25ba8b Tidying resources and error handling around sending chunks 2024-08-06 12:50:30 +01:00
Darren Burns
ba0c7260a7 Handling requests for chunks from the server 2024-08-06 12:40:12 +01:00
Will McGugan
beb4461dbe
Merge pull request #4847 from Textualize/auto-refresh
don't refresh if not visible
2024-08-06 11:17:53 +01:00
Will McGugan
c1fb5df0ea words 2024-08-06 11:13:51 +01:00
Will McGugan
81667a4b5f readme 2024-08-06 10:48:15 +01:00
Will McGugan
6de3f101d6 don't refresh if not visible 2024-08-06 10:45:07 +01:00
Darren Burns
0e95c9a67e Add msgpack 2024-08-06 10:15:12 +01:00
Darren Burns
92d7330787 More work on deliver file API 2024-08-06 09:59:11 +01:00
Darren Burns
43eb939111
More progress on saving a file 2024-08-05 17:28:41 +01:00
Darren Burns
df62ca4f0c
Choosing filenames and generating if necessary for save_text and save_binary in App. Extract and re-use filename generation logic from the SVG screenshot saving code. 2024-08-05 17:04:59 +01:00
Will McGugan
f4cfbc8299
Merge pull request #4844 from Textualize/auto-grow
grow height for scrollbar
2024-08-05 16:57:03 +01:00
Will McGugan
2fc524a62b auto expand 2024-08-05 16:23:45 +01:00
Will McGugan
a4265f6410 whitespace 2024-08-05 16:13:09 +01:00
Will McGugan
48b4ad84fe grow height for scrollbar 2024-08-05 16:08:28 +01:00
Will McGugan
5472c188bb
Merge pull request #4843 from Textualize/makefile-change
Dont run coverage by default on make test
2024-08-05 13:56:19 +01:00
Will McGugan
901d31c88b
Merge pull request #4842 from Textualize/crop-size
remove clip_size
2024-08-05 13:46:14 +01:00
Darren Burns
abe0e7a536
Dont run coverage by default on make test 2024-08-05 13:22:07 +01:00
Will McGugan
413c68a136 remove clip_size 2024-08-05 13:11:10 +01:00
Darren Burns
9d462292a6
Fixes for Input widget cursor visual glitches (#4773)
* Updates to the Input widget cursor

* Remove redundant code

* Fixing Input widget cursor to match TextArea and remove jankiness

* Unit test updates

* Fixing more Input tests

* Update CHANGELOG

* Remove debugging prints
2024-08-05 13:04:38 +01:00
Darren Burns
1f528a7867
Saving binary file in non-web driver 2024-08-05 12:58:03 +01:00
Darren Burns
1349e730a5
Merge branch 'main' of github.com:Textualize/textual into save-file 2024-08-05 12:55:37 +01:00
Will McGugan
3fe08c1916
Merge pull request #4837 from Textualize/micro-op
micro optimizations
2024-08-05 10:13:55 +01:00
Will McGugan
2957539a44 don't use chainmap 2024-08-04 20:02:03 +01:00
Will McGugan
676da58038 typing 2024-08-04 19:28:36 +01:00
Will McGugan
c1b28eb343 another microop 2024-08-04 19:26:52 +01:00
Will McGugan
5a3e0cae86 chainmaps 2024-08-04 19:23:12 +01:00
Will McGugan
10dfb7e7a0 remove abc 2024-08-04 18:20:11 +01:00
Will McGugan
549094776a micro op 2024-08-04 18:10:48 +01:00
Will McGugan
7739e518bd more micro ops 2024-08-04 18:02:37 +01:00
Will McGugan
9127fb0130 micro optimizations 2024-08-04 17:50:43 +01:00
Will McGugan
f0c90e1cfa
Merge pull request #4836 from abdulhaq-e/patch-1
doc fix
2024-08-04 14:38:49 +01:00
Abdulhaq Emhemmed
97cc310c21
doc fix 2024-08-04 13:16:06 +02:00
Will McGugan
222db2f8c5 docstring 2024-08-03 18:55:06 +01:00
Will McGugan
2d6363a77b docstring 2024-08-03 18:33:15 +01:00
Will McGugan
77aafa9682 formatting 2024-08-03 17:17:05 +01:00
Will McGugan
e981a1d965 cropped region 2024-08-03 17:13:05 +01:00
Will McGugan
4c89ac3313 test fixes 2024-08-03 17:02:21 +01:00
Will McGugan
fd369376f2
Merge pull request #4833 from Textualize/fix-leave
fix slow UI
2024-08-02 10:43:47 +01:00
Will McGugan
319e8aae5a fix slow UI 2024-08-02 10:31:17 +01:00
Angelo Mottola
09e4eb801b Fixed changelog again 2024-08-02 08:28:50 +02:00
Angelo Mottola
f0408bfda6 Merged main 2024-08-02 08:25:25 +02:00
Angelo Mottola
e3b3329513 Updated changelog 2024-08-02 01:04:06 +02:00
Angelo Mottola
0cb6e37e43 Addressed review issues (after rebase) 2024-08-02 00:58:30 +02:00
Angelo Mottola
387f9ee65c Introduced MaskedInput widget 2024-08-02 00:55:47 +02:00
Will McGugan
3c528d8a50 changelog 2024-08-02 00:54:27 +02:00
Will McGugan
4a098eee3a bump 2024-08-02 00:54:27 +02:00
Will McGugan
a4699ef523 note 2024-08-02 00:54:27 +02:00
Will McGugan
881a4f2e0f test fix 2024-08-02 00:54:27 +02:00
Will McGugan
c5f1b79738 no copy 2024-08-02 00:54:27 +02:00
Will McGugan
4fa553734f better test 2024-08-02 00:54:27 +02:00
Will McGugan
4bb7104dcd mutate via data bind 2024-08-02 00:54:27 +02:00
Darren Burns
f6115e478f Open url (#4819)
* Local open url

* Open URL via driver

* Writing meta to open url

* Some docstrings and typing

* Update docstring

* Update docstring in app.py

* CHANGELOG

* Allow opening URL in a new tab

* No errors from App.open_url

* Keyword only new_tab argument in App.open_url
2024-08-02 00:54:27 +02:00
Will McGugan
d47976ff4d docstring 2024-08-02 00:54:27 +02:00
Will McGugan
5fe306b41d docstring 2024-08-02 00:54:27 +02:00
Will McGugan
b88372f8e6 test fixes 2024-08-02 00:54:27 +02:00
Will McGugan
b2f1c35f8a move underline 2024-08-02 00:54:27 +02:00
Will McGugan
b7d6cec2cf remove debug 2024-08-02 00:54:27 +02:00
Will McGugan
24ee9aea43 remove tab fix 2024-08-02 00:54:27 +02:00
Will McGugan
6a6e2fdc2e doc fix 2024-08-02 00:54:26 +02:00
Will McGugan
52a8d80d01 simplify test 2024-08-02 00:54:26 +02:00
Will McGugan
0425746ca3 better docs 2024-08-02 00:54:26 +02:00
Will McGugan
dc1049b838 Update src/textual/events.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-08-02 00:54:26 +02:00
Will McGugan
d51a9a5d95 Update src/textual/events.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-08-02 00:54:26 +02:00
Will McGugan
c7da9a2557 typo 2024-08-02 00:54:26 +02:00
Will McGugan
485242ac61 changelog 2024-08-02 00:54:26 +02:00
Will McGugan
4b0110cf29 rename 2024-08-02 00:54:26 +02:00
Will McGugan
15474c1101 docs 2024-08-02 00:54:26 +02:00
Will McGugan
2fedf2065c changelog 2024-08-02 00:54:26 +02:00
Will McGugan
d164ba65a5 snapshot 2024-08-02 00:54:26 +02:00
Will McGugan
2fc333097d enter bubble 2024-08-02 00:54:26 +02:00
TomJGooding
c865388088 docs: various fixes 2024-08-02 00:54:26 +02:00
Will McGugan
a494d150a5 bump 2024-08-02 00:54:26 +02:00
Darren Burns
dc1c734c7f Update snapshots (#4788)
* Update snapshots

* Update to use textual-snapshot v1.0.0

* Dont use xdist on CI

* Update pytest-cov to fix warnings

* Remove xdist thing from pythonpackage.yml GitHub workflow
2024-08-02 00:54:20 +02:00
Will McGugan
1f9140ea52 typing for snapshot 2024-08-02 00:53:14 +02:00
Will McGugan
dd7aada832 snapshot 2024-08-02 00:53:14 +02:00
Will McGugan
c662d57341 snapshot 2024-08-02 00:53:14 +02:00
Will McGugan
bcedc9b0e8 add test 2024-08-02 00:53:14 +02:00
Will McGugan
4c3825e356 allow recompose before mount 2024-08-02 00:53:14 +02:00
Will McGugan
6ab59d493a doc 2024-08-02 00:53:14 +02:00
Will McGugan
10d93a0e67 annotations 2024-08-02 00:53:14 +02:00
Will McGugan
b5252e6d77 revert call later 2024-08-02 00:53:14 +02:00
Will McGugan
6ebac18f10 fix typing issue 2024-08-02 00:53:14 +02:00
Will McGugan
6c425a2311 Call on screen 2024-08-02 00:53:14 +02:00
Will McGugan
8b2616e259 call next 2024-08-02 00:53:14 +02:00
Will McGugan
3538cc57ab test 2024-08-02 00:53:14 +02:00
Will McGugan
76d8215191 remove debug 2024-08-02 00:53:14 +02:00
Will McGugan
247219e49d annotations 2024-08-02 00:53:14 +02:00
Will McGugan
1393a08eec rename _inspection to debug 2024-08-02 00:53:14 +02:00
Will McGugan
6d8f594f8b typo 2024-08-02 00:53:14 +02:00
Will McGugan
b28a987484 fix command palette 2024-08-02 00:53:14 +02:00
Will McGugan
ba8ba51eb8 allow None in callback 2024-08-02 00:53:14 +02:00
Will McGugan
a6c15d71cb changelog 2024-08-02 00:53:14 +02:00
Will McGugan
70f3ea92f5 remove debug 2024-08-02 00:53:14 +02:00
Will McGugan
86d2940663 add test 2024-08-02 00:53:14 +02:00
Will McGugan
8580c0b67f improve simulate key 2024-08-02 00:53:14 +02:00
Will McGugan
41a2cf345d typo 2024-08-02 00:53:14 +02:00
Will McGugan
48e058b267 docs 2024-08-02 00:53:14 +02:00
Will McGugan
66ff918498 pre await callback 2024-08-02 00:53:14 +02:00
Will McGugan
75c6ca3168 annotations fix 2024-08-02 00:53:14 +02:00
Will McGugan
f328c35aec refactor 2024-08-02 00:53:14 +02:00
Will McGugan
7c817dc201 refactor of screen dismiss 2024-08-02 00:53:14 +02:00
Will McGugan
fa3b6749e6 comment 2024-08-02 00:53:14 +02:00
Will McGugan
7936693716 changelog 2024-08-02 00:53:14 +02:00
Will McGugan
5ffc452e46 changelog 2024-08-02 00:53:14 +02:00
Will McGugan
a26851d078 fix select 2024-08-02 00:53:14 +02:00
Will McGugan
d67431c045 typing 2024-08-02 00:53:14 +02:00
Angelo Mottola
057e832355 Addressed review issues 2024-08-02 00:42:15 +02:00
Will McGugan
fcab581415
Merge pull request #4829 from Textualize/bump0750
bump 0.75.0
2024-08-01 16:02:47 +01:00
Will McGugan
f1c1020f3c changelog 2024-08-01 15:59:02 +01:00
Will McGugan
8d4b0757da bump 2024-08-01 15:57:24 +01:00
Will McGugan
c0173f70bd
Merge pull request #4828 from Textualize/mutate-bind
mutate via data bind
2024-08-01 15:52:07 +01:00
Will McGugan
3cdc6537a4 note 2024-08-01 15:09:43 +01:00
Will McGugan
301f008e6f test fix 2024-08-01 12:12:48 +01:00
Will McGugan
e0e3f8d1ff no copy 2024-08-01 12:06:33 +01:00
Will McGugan
05dad38fcd better test 2024-08-01 10:43:10 +01:00
Will McGugan
6888754061 mutate via data bind 2024-08-01 10:31:50 +01:00
Darren Burns
1806bfe794
Initial implementation of save_text in driver 2024-07-31 16:55:13 +01:00
Darren Burns
1f439a841e
Saving text and saving binary inside the App 2024-07-31 16:48:41 +01:00
Darren Burns
6d1b53f7a1
Commenting 2024-07-31 14:08:19 +01:00
Darren Burns
212b313166
Add platformdirs and use it to get the download dir if its not specified 2024-07-31 13:29:42 +01:00
Darren Burns
e8afe52611
Beginning save_file implementation 2024-07-31 13:25:22 +01:00
Darren Burns
53c7ac8a0c
merge main 2024-07-31 11:42:08 +01:00
Darren Burns
13ec4c3298
Open url (#4819)
* Local open url

* Open URL via driver

* Writing meta to open url

* Some docstrings and typing

* Update docstring

* Update docstring in app.py

* CHANGELOG

* Allow opening URL in a new tab

* No errors from App.open_url

* Keyword only new_tab argument in App.open_url
2024-07-31 11:40:45 +01:00
Will McGugan
20ae6360ea
Merge pull request #4821 from Textualize/tab-remove-fix
remove tab fix
2024-07-30 17:01:08 +01:00
Will McGugan
7515a68d56 doc fix 2024-07-30 17:00:19 +01:00
Will McGugan
461ad80090
Merge pull request #4824 from Textualize/self-remove-test
simplify test
2024-07-30 16:48:26 +01:00
Will McGugan
217057c7d4 simplify test 2024-07-30 16:26:54 +01:00
Will McGugan
67d9044477 better docs 2024-07-30 15:34:28 +01:00
Will McGugan
ce39259eb3 docstring 2024-07-30 14:05:25 +01:00
Will McGugan
0e02314c8f docstring 2024-07-30 14:04:19 +01:00
Will McGugan
85ef2e9817 test fixes 2024-07-30 14:02:26 +01:00
Will McGugan
c97acb2c35 move underline 2024-07-30 13:36:04 +01:00
Will McGugan
441875e0a0 remove debug 2024-07-30 11:31:51 +01:00
Will McGugan
8a8b827cc1 remove tab fix 2024-07-30 11:21:24 +01:00
Will McGugan
4ddeae2737
Merge pull request #4818 from Textualize/enter-bubble
enter bubble
2024-07-29 14:51:46 +01:00
Will McGugan
9f12d1662d
Update src/textual/events.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-07-29 14:31:05 +01:00
Will McGugan
1fdaaa725d
Update src/textual/events.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-07-29 14:30:58 +01:00
Will McGugan
cfd100ee24 typo 2024-07-29 14:21:28 +01:00
Will McGugan
9b1bb5ec4d changelog 2024-07-29 14:14:26 +01:00
Will McGugan
e22d703d1d rename 2024-07-29 14:09:34 +01:00
Will McGugan
63838d1786 docs 2024-07-29 13:59:01 +01:00
Will McGugan
cecfe3e8e7 changelog 2024-07-29 13:44:59 +01:00
Will McGugan
83c702dbf8 snapshot 2024-07-29 13:44:33 +01:00
Will McGugan
2693db7b4b enter bubble 2024-07-29 13:42:39 +01:00
Will McGugan
7acab1c0b0
Merge pull request #4813 from TomJGooding/docs-various-fixes
docs: various fixes
2024-07-28 14:05:02 +01:00
TomJGooding
2550cf0698 docs: various fixes 2024-07-27 18:07:39 +01:00
Will McGugan
262b3af00f
Merge pull request #4803 from Textualize/bump0740
bump to 0.74.0
2024-07-25 11:58:32 +01:00
Will McGugan
15c78dc3c9 bump 2024-07-25 11:57:40 +01:00
Darren Burns
5966bf3318
Update snapshots (#4788)
* Update snapshots

* Update to use textual-snapshot v1.0.0

* Dont use xdist on CI

* Update pytest-cov to fix warnings

* Remove xdist thing from pythonpackage.yml GitHub workflow
2024-07-25 11:50:54 +01:00
Will McGugan
988c4b31c7
Merge pull request #4802 from Textualize/recompose-mount-fix
Recompose mount fix
2024-07-25 11:30:37 +01:00
Will McGugan
f59e204857 typing for snapshot 2024-07-25 11:06:10 +01:00
Will McGugan
315d0ed159 snapshot 2024-07-25 10:57:56 +01:00
Will McGugan
0a6374c7bc snapshot 2024-07-25 10:48:21 +01:00
Will McGugan
d20c891196 add test 2024-07-25 10:48:14 +01:00
Will McGugan
460249c3f1 allow recompose before mount 2024-07-25 10:41:58 +01:00
Will McGugan
1d0474f02c doc 2024-07-24 19:44:47 +01:00
Will McGugan
bff8fbf05e
Merge pull request #4795 from Textualize/screen-result
allow None in Screen callback
2024-07-24 17:05:26 +01:00
Will McGugan
1c867b0087
Merge pull request #4798 from Textualize/fix-footer-key
improve simulate key
2024-07-24 16:57:40 +01:00
Will McGugan
2ba071fb97 changelog 2024-07-24 16:46:51 +01:00
Will McGugan
9b9fd30cb6 remove debug 2024-07-24 16:45:56 +01:00
Will McGugan
0b07ab669f add test 2024-07-24 16:45:13 +01:00
Will McGugan
67e9294963 improve simulate key 2024-07-24 16:05:00 +01:00
Will McGugan
6af0026b96 annotations 2024-07-24 15:29:46 +01:00
Will McGugan
68befc4c79 revert call later 2024-07-24 15:23:06 +01:00
Will McGugan
5255f7f792 fix typing issue 2024-07-24 15:22:43 +01:00
Will McGugan
5a99dee5a2 Call on screen 2024-07-24 15:14:27 +01:00
Will McGugan
207ea7a24e call next 2024-07-24 15:13:50 +01:00
Will McGugan
05016ac2d4 test 2024-07-24 13:49:14 +01:00
Will McGugan
71615649bd remove debug 2024-07-24 13:39:57 +01:00
Will McGugan
8d5c90649b annotations 2024-07-24 13:37:12 +01:00
Will McGugan
e4ec5bec9f rename _inspection to debug 2024-07-24 13:34:56 +01:00
Will McGugan
d354b53d06 typo 2024-07-24 13:31:48 +01:00
Will McGugan
df7b75d340 fix command palette 2024-07-24 13:30:10 +01:00
Will McGugan
21db47233d allow None in callback 2024-07-24 10:12:22 +01:00
Will McGugan
d3927682be
Merge pull request #4789 from Textualize/dismiss-refactor
Dismiss refactor
2024-07-24 09:52:16 +01:00
Will McGugan
0e36ac87b1
Merge pull request #4786 from Textualize/fix-select-remove
Fix select remove
2024-07-24 09:51:24 +01:00
Will McGugan
cb7303df26 typo 2024-07-23 13:45:19 +01:00
Will McGugan
310c78ee81 docs 2024-07-23 13:43:24 +01:00
Will McGugan
d02ed0134c pre await callback 2024-07-23 12:06:06 +01:00
Will McGugan
4b92ff8de5 annotations fix 2024-07-23 10:59:05 +01:00
Will McGugan
fff42606df refactor 2024-07-22 16:47:12 +01:00
Will McGugan
c751e8a25c refactor of screen dismiss 2024-07-22 15:54:03 +01:00
Will McGugan
bcf20b68bd comment 2024-07-22 12:19:01 +01:00
Will McGugan
63535c7f01 changelog 2024-07-22 11:47:14 +01:00
Will McGugan
97945522cb changelog 2024-07-22 11:45:37 +01:00
Will McGugan
2594a49fbb fix select 2024-07-22 11:43:05 +01:00
Angelo Mottola
e437bf5bbe Introduced MaskedInput widget 2024-07-22 00:38:41 +02:00
Will McGugan
252e9e7e64 typing 2024-07-21 20:47:46 +01:00
Will McGugan
dd10561994 clamp micro-optimization 2024-07-21 12:46:56 +01:00
Will McGugan
cc09b2829d remove unused function 2024-07-20 18:14:48 +01:00
Will McGugan
1c5c08040d tests 2024-07-20 18:07:22 +01:00
Will McGugan
af4b277564 remove unused events 2024-07-20 17:40:13 +01:00
Will McGugan
5bff6069d2 missing docstring 2024-07-20 17:39:26 +01:00
Will McGugan
4506a7eca4
Merge pull request #4781 from TomJGooding/fix-disable-kitty-keyboard-before-leaving-alt-screen
fix: disable kitty keyboard before leaving alt screen
2024-07-20 17:27:14 +01:00
TomJGooding
e5a7822459 update changelog 2024-07-19 17:05:02 +01:00
TomJGooding
61a87fb1ec fix: disable kitty keyboard before leaving alt screen 2024-07-19 16:55:13 +01:00
Will McGugan
0272c978cb removed unused 2024-07-19 12:37:41 +01:00
Will McGugan
fddb6ebb08 docs 2024-07-19 12:19:46 +01:00
TomJGooding
22d0d42251
feat(tree): enable add at location (#4772)
* enable add before or after index

* enable add before or after node

* try to improve error message wording

* raise typerror if invalid argument

* add new params to docstring

* add raises and note to docstring

* add before and after params to add_leaf

* update changelog

* fix copypasta in docstring

* improve error message wording

Co-authored by: Darren Burns <darrenburns@users.noreply.github.com>

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-07-18 16:35:06 +01:00
Will McGugan
35409c319f
Merge pull request #4774 from Textualize/gradient-bar
Gradient progress bar
2024-07-18 16:05:26 +01:00
Will McGugan
686fb9cbeb catch error 2024-07-18 15:55:55 +01:00
Will McGugan
44b1a54b4b defensive code 2024-07-18 15:51:37 +01:00
Will McGugan
ed1fba2b5b edge case and fix 2024-07-18 15:40:25 +01:00
Will McGugan
6bc4c31efc remove duplicate setter 2024-07-18 15:25:51 +01:00
Will McGugan
f3a0b5cc61 snapshot 2024-07-18 15:10:48 +01:00
Will McGugan
281c3f2776 changelog 2024-07-18 14:57:39 +01:00
Will McGugan
896b64fbe5 gradients and tests 2024-07-18 14:56:18 +01:00
Will McGugan
fb6fc06a23
Merge pull request #4769 from Textualize/hide-send-all
Send Hide messages when toggling visibility
2024-07-18 09:51:22 +01:00
Will McGugan
158e0b372c
Merge pull request #4768 from Textualize/docs-mods
docs tweaks
2024-07-18 09:50:57 +01:00
Will McGugan
27b1b06f36 tweaks 2024-07-18 09:50:36 +01:00
Darren Burns
4c5d5ac949
Fix styles not updating when a widget is blurred (#4771)
* Fix styles not updating when a widget is blurred

* Update changelog
2024-07-18 09:11:20 +01:00
Will McGugan
f242d477b9 add api 2024-07-17 21:35:02 +01:00
Will McGugan
5b32e19d40 better API docs 2024-07-17 21:27:36 +01:00
Will McGugan
2f2f3142bc update titles 2024-07-17 17:37:41 +01:00
Will McGugan
54cec67bd8 titles 2024-07-17 17:16:40 +01:00
Will McGugan
921702bff4 test 2024-07-17 16:20:49 +01:00
Will McGugan
9ed098733d send hides 2024-07-17 16:10:55 +01:00
Arvid Fahlström Myrman
c9bb137c0a
calculate message namespace from __qualname__ when not specified (#3940)
* use __qualname__ for the default message namespace

* improve tests

* update changelog

* better, more backwards compatible splitting

* Fix syntax

* Fix CHANGELOG

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-07-17 13:38:28 +01:00
Darren Burns
433d78f270
Ensure input is focused when command palette launches (#4763)
* Ensure input is focused when command palette launches

* Update changelog

* Use AUTO_FOCUS to focus the CommandInput in the CommandPalette
2024-07-17 13:35:36 +01:00
Will McGugan
e2739be4f3 docs tweaks 2024-07-17 13:34:00 +01:00
Darren Burns
90bbde8d7e
Export StringKey from DataTable module (#4760)
* Export StringKey from DataTable module

* Update CHANGELOG
2024-07-17 13:03:26 +01:00
Darren Burns
bab909d0bf
Add TextArea.matching_bracket_location property (#4764)
* Add `TextArea.matching_bracket_location` property

* Update CHANGELOG
2024-07-17 13:03:11 +01:00
Darren Burns
94f7ef1913
Fix public exports of TabbedContent (#4765) 2024-07-17 13:02:56 +01:00
Darren Burns
4414ecc460
Ensure hover effect doesnt linger when mouse leaves Tree (#4766)
* Ensure hover effect doesnt linger when mouse leaves Tree

* Update CHANGELOG
2024-07-17 13:02:35 +01:00
Darren Burns
8a16ddf5bb
SelectionList events changes (#4759)
* Dont prevent SelectionToggled messages in bulk SelectionList methods. Its important for callers to know on a per-option basis if one was toggled, and is a reasonable expectation. Also update docs to reflect this..

* Update CHANGELOG
2024-07-17 13:02:09 +01:00
Will McGugan
0d25607374 fix links in example 2024-07-17 09:23:55 +01:00
Uriya Harpeness
fcecbe5dbd
Fix wrong axis in HorizontalScroll docstring. (#4758) 2024-07-16 13:48:41 +01:00
Simon Joseph
6a484f4111
Update _button.py - Saved 2 lines on DEFAULT_CSS (#4757) 2024-07-16 12:44:11 +01:00
Darren Burns
53adedf1d8
Add Tree.move_cursor, and ensure Tree.select_node selects the node (#4753)
* Add `Tree.move_cursor`, and ensure `Tree.select_node` selects the node

* Update changelog

* from future import annotations in test file

* Fix test to account for the fact that TreeNodeSelected now sends before TreeNodeExpanded

* Add note to CHANGELOG about tree message ordering change

* Fix changelog
2024-07-15 16:38:53 +01:00
Darren Burns
74bc89c626
Datatable performance improvements (#4748)
* Improve data table performance when cells contain lots of data

* Remove print

* Make a function private

* Dont convert renderables to strings!

* Ensuring markup still works in DataTable

* Update CHANGELOG

* Dont abbreviate
2024-07-15 16:26:57 +01:00
TomJGooding
49008ef243
fix(footer): enable spacing between key and description (#4651)
* fix(footer): enable padding between key and description

* add snapshot test for compact footer

* change space between key and description to margin

* change hardcoded key padding to component CSS

* simplify space between FooterKeys to grid gutter

* update snapshot tests that contain a footer

* simplify by removing now unnecessary if/else

* tweak regression test docstring wording

* update changelog

* Revert "update snapshot tests that contain a footer"

This reverts commit 36ecb04c67feb97e07e6ed5c9913493e54f9e915.

* Update snapshots using latest Textual version.

* update the changelog

* fix sizing issue by setting reactive layout

* revert grid-gutter change

* change key margin to description padding

* add footer hover snapshot tests

* update snapshots

* update changelog description

* remove old commented out code

* remove now unnecessary reactive layout update

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-07-15 16:19:56 +01:00
Will McGugan
19adafd622
Merge pull request #4752 from Textualize/toggle-style-order
Toggle style order
2024-07-15 16:11:44 +01:00
Will McGugan
d43b3f1598
Merge pull request #4749 from Textualize/unquote
unquote href
2024-07-15 16:11:24 +01:00
Will McGugan
2a3585445e
Merge branch 'main' into toggle-style-order 2024-07-15 15:59:39 +01:00
Will McGugan
54a023cc0f snapshot 2024-07-15 15:57:28 +01:00
Will McGugan
227828dce2
Merge pull request #4747 from Textualize/fix-component-text-opacity
fix text opacity
2024-07-15 15:42:20 +01:00
Will McGugan
862290af8a
Merge pull request #4731 from Textualize/mutate-reactives
mutate reactive
2024-07-15 15:41:28 +01:00
Will McGugan
0dedae1176
Merge branch 'main' into mutate-reactives 2024-07-15 15:41:20 +01:00
Will McGugan
8a07a83def toggle style order 2024-07-15 15:40:38 +01:00
Will McGugan
64ce57fc00 changelog 2024-07-15 15:14:20 +01:00
Will McGugan
bee926646a unquote href 2024-07-15 15:13:23 +01:00
Will McGugan
10256cc025 snapshot 2024-07-15 15:07:32 +01:00
Will McGugan
72de6c0f76 changelog 2024-07-15 14:48:07 +01:00
Will McGugan
a38a9a4d95 import 2024-07-15 14:40:59 +01:00
Will McGugan
ee58bb7dfc import 2024-07-15 14:40:21 +01:00
Will McGugan
33ac0bbc07 fix text opacity 2024-07-15 14:35:03 +01:00
Will McGugan
9cb9094cad
Merge pull request #4739 from Textualize/gradient-optimize
faster gradients
2024-07-15 11:10:02 +01:00
Will McGugan
4e73552329
Merge branch 'main' into gradient-optimize 2024-07-15 11:09:55 +01:00
Will McGugan
7c8450887d
Merge pull request #4736 from TomJGooding/fix-listview-fix-remove-items
fix(listview): fix remove_items
2024-07-15 11:09:29 +01:00
Will McGugan
9afacd00ba
Merge branch 'main' into fix-listview-fix-remove-items 2024-07-15 11:09:20 +01:00
Darren Burns
142f437a56
Fix off-by-2 calculation in horizontal scrolling of Tree & DirectoryTree (#4744)
* Fix off-by-2 calculation in horizontal scrolling of Tree & DirectoryTree

* Update changelog

* Updating snapshot tests
2024-07-15 11:08:12 +01:00
Will McGugan
953e3a90ee
Merge branch 'main' into mutate-reactives 2024-07-15 10:56:44 +01:00
Will McGugan
efa16935ed
Merge branch 'main' into gradient-optimize 2024-07-15 10:55:17 +01:00
Will McGugan
d87375cf14
Merge branch 'main' into fix-listview-fix-remove-items 2024-07-15 10:50:32 +01:00
Will McGugan
04f7c891e8 changelog 2024-07-15 10:49:27 +01:00
Charles Merriam
b50e697693
Fix #4722: DataTable add_rows gives incorrect error message (#4742)
* Added fix and test case

* Update CHANGELOG

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-07-15 09:52:13 +01:00
Will McGugan
c8948f1e68 renamed accuracy 2024-07-14 19:51:13 +01:00
Will McGugan
e9fa99ffeb typo 2024-07-14 19:44:07 +01:00
Will McGugan
64d585178d docstring 2024-07-14 19:38:27 +01:00
Will McGugan
6965147632 docs 2024-07-14 19:35:52 +01:00
Will McGugan
dd8e005f8f test fix 2024-07-14 19:31:07 +01:00
Will McGugan
9c3498b284 cache 2024-07-14 19:12:49 +01:00
Will McGugan
b301af6a22 simplify 2024-07-14 18:19:50 +01:00
Will McGugan
ca0159eb2e simplify 2024-07-14 18:08:50 +01:00
Will McGugan
114324c039 changelog 2024-07-14 18:07:21 +01:00
Will McGugan
4ff1fc07d4 faster gradients 2024-07-14 18:05:25 +01:00
TomJGooding
b099e66cee update changelog 2024-07-14 11:16:46 +01:00
TomJGooding
f7a1f5a2a0 fix(listview): fix remove_items 2024-07-14 11:13:42 +01:00
Will McGugan
66f2e0cf45 micro optimzation 2024-07-13 17:47:36 +01:00
Will McGugan
281a9369b7 docstring 2024-07-13 17:17:16 +01:00
Will McGugan
ac860e93d4 example 2024-07-12 16:23:46 +01:00
Will McGugan
4c11d09315 docs 2024-07-12 16:23:18 +01:00
Will McGugan
78b2a6670a docs 2024-07-12 16:09:05 +01:00
Will McGugan
12aa4ed722 micro oprimizations 2024-07-12 15:51:01 +01:00
Will McGugan
08c4aad92d added test 2024-07-12 15:23:29 +01:00
Will McGugan
71f7277885 lways 2024-07-11 19:33:12 +01:00
Will McGugan
d02b15bcb2 words 2024-07-11 19:32:31 +01:00
Will McGugan
94426f7abc words 2024-07-11 19:30:29 +01:00
Will McGugan
92aca16b4c mutte 2024-07-11 19:27:50 +01:00
Darren Burns
71bb8e7516
Add line_number_start to the CHANGELOG (#4728) 2024-07-11 17:37:09 +01:00
Will McGugan
27def7b442
Merge pull request #4724 from Textualize/disable-button
Fix stuck hover state
2024-07-11 14:43:44 +01:00
Will McGugan
a52af31d6c doc 2024-07-11 14:36:13 +01:00
Darren Burns
914b4631d8
isort minor version update, and add to development dependencies (#4727) 2024-07-11 14:32:01 +01:00
Roy Attias
b61028d3df
Support zero-indexed line numbers in TextArea (#4471)
* widgets: text-area: Make the starting line number a kwarg

* Add snapshot test for TextArea.line_number_start and update docs

* Update snapshots

* Update snapshots using latest Textual version

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-07-11 12:41:34 +01:00
Will McGugan
d31c1736fa snapshot 2024-07-11 11:51:26 +01:00
Will McGugan
73498723da
Merge branch 'main' into disable-button 2024-07-11 11:41:16 +01:00
Will McGugan
23af86d714 changelog 2024-07-11 11:36:08 +01:00
Will McGugan
666493d5ae tests 2024-07-11 11:34:51 +01:00
Will McGugan
852c6c299a disable button 2024-07-11 11:10:27 +01:00
TomJGooding
fad03c8b58
fix(tabs): disabled tab not activated by clicking underline (#4702)
* fix(tabs): disabled tab not activated by clicking underline

* update changelog

* update changelog

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-07-11 11:10:03 +01:00
Alexis Daboville
50b767f73b
Fix DataTable.BINDINGS's docstring to remove Vim bindings (#4721)
Bindings were removed in a15f7b6d13.
2024-07-11 10:25:15 +01:00
Darren Burns
cac4ae381c
Don't sort "discover" items in the command palette (#4720)
* Dont sort discovery items in command palette

* Update CHANGELOG.md

* Updating snapshot tests for command palette ordering change

* Fix snapshot tests

* Remove irrelevant docs
2024-07-10 16:39:36 +01:00
Charles Merriam
b5e165f533
Improvements to Widget DataTable documentation (#4706)
* Preamble.  Mention commonly searched for capabilities missing, e.g., formatting and filtering.

* Clarify zebra_stripes as using alternating styles.

* Expand Cursors section to mention None type of cursor, clarify keyboard and mouse events, and that row indices start at one.  Expand example for No Cursor option.

Also minor typos to previous two commits (preamble wording and zebra stripes).

* Expand sorting section for clarity.

Minor typos in Labeled Rows and Cursors sections.

* In Keys section, mention functions taking coordinates.

Fix typo in Sorting section.

* Minor changes

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-07-10 16:38:05 +01:00
Will McGugan
2401ea7381
Merge pull request #4719 from Textualize/fix-scroll-visible-with-margin
Fix for scroll visible
2024-07-10 14:08:54 +01:00
Will McGugan
15c4d6e41c snapshots 2024-07-10 13:47:27 +01:00
Will McGugan
1761eda52b changelog 2024-07-10 13:27:54 +01:00
Will McGugan
7c03238f24 Fix for scroll visible 2024-07-10 13:26:57 +01:00
Will McGugan
2abe88978e
Merge pull request #4716 from TomJGooding/feat-widget-add-scrollable-size-property
feat(widget): add scrollable_size property
2024-07-10 11:13:39 +01:00
Will McGugan
c2e6592287 superfluous code 2024-07-10 11:09:34 +01:00
Will McGugan
a37d96ba2c
Merge pull request #4717 from Textualize/run-test-error
exit test on css error
2024-07-10 11:03:17 +01:00
Will McGugan
d2209cbf1b raise stylesheet error 2024-07-10 10:42:35 +01:00
Will McGugan
18eba5c341 exit test on css error 2024-07-09 22:27:28 +01:00
TomJGooding
5b18de6d03 feat(widget): add scrollable_size property
Closes #2175.
2024-07-09 21:42:06 +01:00
Will McGugan
b1b27f6714
Merge pull request #4715 from Textualize/bump0720
version bump
2024-07-09 13:07:27 +01:00
Will McGugan
296ea74007 version bump 2024-07-09 12:58:29 +01:00
Will McGugan
121a8f0ec0 version bump 2024-07-09 12:53:48 +01:00
Will McGugan
056a19f9f7
Merge pull request #4712 from TomJGooding/fix-option-list-fix-clicking-separator-changing-selected-option
fix(option list): fix clicking separator changing selected option
2024-07-09 12:53:33 +01:00
Will McGugan
f96114a512 snapshot 2024-07-09 12:43:11 +01:00
Will McGugan
70d42b3e52 simpler fix 2024-07-09 12:35:08 +01:00
Will McGugan
963149f47b snapshots 2024-07-09 12:28:04 +01:00
Will McGugan
796ea8e4f0 no meta for separator 2024-07-09 11:56:24 +01:00
Will McGugan
63470d0bf1
Merge pull request #4709 from TomJGooding/fix-option-list-fix-scrolling-with-multiline-options
fix(option list): fix scrolling with multiline options
2024-07-09 11:52:29 +01:00
Will McGugan
f3055760e9
Merge branch 'main' into fix-option-list-fix-scrolling-with-multiline-options 2024-07-09 11:43:38 +01:00
Will McGugan
bb6e56309c
Merge pull request #4713 from TomJGooding/docs-option-list-restore-missing-component-classes
docs(option list): restore missing component classes
2024-07-09 11:30:16 +01:00
Will McGugan
501d373666
Merge pull request #4714 from Zimzozaur/fix-typos
Fix typos in comments and documentation within app.py
2024-07-09 11:24:34 +01:00
Will McGugan
4da3c3a82a
Merge pull request #4708 from Textualize/prune
prune
2024-07-09 11:18:44 +01:00
Will McGugan
f2a22e9775 orphaned functions 2024-07-09 11:09:39 +01:00
TomJGooding
a10db5dea7 docs(option list): restore missing component classes 2024-07-09 11:07:07 +01:00
bmo
b52f106cd0 Fix typos in comments and documentation 2024-07-09 12:03:36 +02:00
Will McGugan
cdfd8a102c Remove debug 2024-07-09 10:56:02 +01:00
Will McGugan
c0e3434627 remove debug 2024-07-09 10:49:40 +01:00
Will McGugan
63e586c956 work around pruning 2024-07-09 10:47:31 +01:00
Will McGugan
ae1d174ff3 changelog 2024-07-09 10:43:21 +01:00
Will McGugan
466e3420a3 comments 2024-07-09 10:42:54 +01:00
Will McGugan
72eaecc18c changelog 2024-07-09 10:37:24 +01:00
Will McGugan
fa8167c88f docstrings 2024-07-09 10:36:26 +01:00
Will McGugan
754c7efbaa remove virtual dom 2024-07-09 10:30:57 +01:00
TomJGooding
69e754e916 fix(option list): fix clicking separator changing selected option 2024-07-09 10:10:35 +01:00
Will McGugan
ee45672f93 test fix 2024-07-08 23:06:01 +01:00
Will McGugan
9ec5f17db8 reset focus 2024-07-08 22:37:04 +01:00
Will McGugan
db9bd3e1a5 fix pruning 2024-07-08 20:45:22 +01:00
Will McGugan
2edcedd406 test fixes 2024-07-08 20:15:31 +01:00
Will McGugan
a7d708050b prune other direction 2024-07-08 18:53:04 +01:00
Will McGugan
a3ba81aa93 reverse prune 2024-07-08 15:12:02 +01:00
TomJGooding
f954952bc5
test(bindings): add regression test for #4382 (#4695) 2024-07-08 15:03:07 +01:00
TomJGooding
4b2b918d3c add regression snapshot test 2024-07-07 20:47:41 +01:00
Will McGugan
ae13071b7f messages 2024-07-07 20:11:03 +01:00
Will McGugan
1f30942a0e fox remove 2024-07-07 20:00:13 +01:00
Will McGugan
8a6ebeb02d debug prune 2024-07-07 14:00:56 +01:00
TomJGooding
4ee318bf85 fix line position for the start of the option span 2024-07-07 11:51:20 +01:00
TomJGooding
8fcd6fe3a5 add missing type alias import 2024-07-07 10:10:52 +01:00
Will McGugan
a05d9150c3 prune 2024-07-05 17:24:20 +01:00
Will McGugan
37f0f26f1c
Merge pull request #4707 from Textualize/fix-prevent-default
fix prevent default
2024-07-05 15:57:00 +01:00
Will McGugan
c403d76b2b move reset 2024-07-05 14:54:37 +01:00
Will McGugan
484e74e0b5 fix prevent default 2024-07-05 14:46:12 +01:00
Will McGugan
55e54af561
Merge pull request #4693 from Textualize/optimize-import
speed up import
2024-07-03 11:07:02 +01:00
Will McGugan
a7ca2dbde8 speed up import 2024-07-01 10:50:17 +01:00
Will McGugan
f2add3c400
Merge pull request #4689 from Textualize/bump0710
bump
2024-06-29 10:58:19 +01:00
Will McGugan
1cec2966d2 fix changelog 2024-06-29 10:52:16 +01:00
Will McGugan
19989b9130 bump 2024-06-29 10:51:24 +01:00
Will McGugan
fe04414d33
Merge pull request #4688 from Textualize/fix-mouse-over
fix mouse flicker
2024-06-29 10:44:33 +01:00
Will McGugan
566408499d changelog 2024-06-29 10:35:55 +01:00
Will McGugan
cc0003a8d5 fix mouse flicker 2024-06-29 10:34:57 +01:00
Will McGugan
4b3ec13663
Merge pull request #4686 from TomJGooding/fix-markdown-post-message-when-link-clicked-in-table
fix(markdown): post message when link clicked in table
2024-06-29 10:14:27 +01:00
TomJGooding
4fb3172e3a update changelog 2024-06-29 08:03:13 +01:00
TomJGooding
54d8ce312b add regression test 2024-06-29 07:56:52 +01:00
TomJGooding
d4d2dc56ad fix(markdown): post message when link clicked in table 2024-06-29 07:16:27 +01:00
Will McGugan
341d3453db add note about examples 2024-06-28 20:29:23 +01:00
Will McGugan
2e34de61db
Merge pull request #4681 from Textualize/mouse-leak-fix
fix mouse leakage
2024-06-28 19:59:46 +01:00
Will McGugan
7d1f84d1f7 bump read 2024-06-28 17:39:22 +01:00
Will McGugan
bcd1335028 changelog 2024-06-28 17:34:01 +01:00
Will McGugan
a575fe212f fix mouse leakage 2024-06-28 17:33:07 +01:00
Will McGugan
bedfabafaf fix missing snapshot 2024-06-28 16:52:34 +01:00
Will McGugan
cf30eba333
Merge pull request #4680 from Textualize/grid-auto-keyline
expand keyline grid
2024-06-27 16:10:19 +01:00
Will McGugan
e0e5693d58
Merge pull request #4675 from Textualize/simplify-snapshots
Normalize SVGs
2024-06-27 16:09:56 +01:00
Will McGugan
3fe832cec2 snapshot 2024-06-27 15:32:36 +01:00
Will McGugan
d0c7c1a272 snapshot 2024-06-27 15:22:23 +01:00
Will McGugan
4b6eb198bc simplify and optimize 2024-06-27 15:12:28 +01:00
Will McGugan
c7e371cc99 expand keyline grid 2024-06-27 15:10:05 +01:00
Will McGugan
a85b454942 more finely grained locking 2024-06-26 16:36:14 +01:00
Will McGugan
cf4d9c6d0c snapshots 2024-06-26 12:02:31 +01:00
Will McGugan
c04baa3349 simplify switch 2024-06-26 11:51:29 +01:00
Will McGugan
0c8a042e06 simplify 2024-06-26 11:47:48 +01:00
Will McGugan
b6848483d4 Revert "simplify"
This reverts commit cad3599c2d.
2024-06-26 11:46:51 +01:00
Will McGugan
cad3599c2d simplify 2024-06-26 11:44:53 +01:00
Will McGugan
260ec4abf6 us spelling 2024-06-26 11:33:08 +01:00
Will McGugan
3a27bef88c shutdown optimization 2024-06-26 11:09:02 +01:00
Will McGugan
97f9e44aaf
Merge pull request #4667 from Textualize/new-option-list
Option List update
2024-06-25 17:18:10 +01:00
Will McGugan
1235bef17b typing fix 2024-06-25 16:54:36 +01:00
Will McGugan
268d5db68c fix 2024-06-25 16:41:25 +01:00
Will McGugan
793fcbd5ea snapshot 2024-06-25 16:06:55 +01:00
Will McGugan
b5c9c53702 tweak 2024-06-25 14:31:17 +01:00
Will McGugan
2df4e120ae style tweak 2024-06-25 14:19:02 +01:00
Will McGugan
b3a9724589 Merge branch 'main' into new-option-list 2024-06-25 14:10:05 +01:00
Will McGugan
aeeda75b62
Merge pull request #4672 from Textualize/screen-concurrency
await screens
2024-06-25 14:09:14 +01:00
Will McGugan
fe82774a46 test fixes 2024-06-24 17:09:14 +01:00
Will McGugan
e93b3facb0 fix 2024-06-24 16:01:31 +01:00
Will McGugan
b40387d667 polish 2024-06-24 16:01:05 +01:00
Will McGugan
ee71b34459 await screens 2024-06-24 14:28:18 +01:00
Will McGugan
b7616181cf bold text in command list 2024-06-22 21:47:15 +01:00
Will McGugan
de98d1a85e comment 2024-06-22 21:44:24 +01:00
Will McGugan
9d67e456d7 command palette tweaks 2024-06-22 18:20:16 +01:00
Will McGugan
b1180740ad Remove debug 2024-06-22 14:30:39 +01:00
Will McGugan
e5be6ff7b3 command styles 2024-06-22 13:36:55 +01:00
Will McGugan
b307c3d47b tests passing 2024-06-22 13:01:52 +01:00
Will McGugan
e9de0e263d more functionality 2024-06-21 15:03:16 +01:00
Will McGugan
6028c3ba59 start new option list 2024-06-20 15:24:50 +01:00
Will McGugan
c9c34c7ade typo 2024-06-19 21:10:50 +01:00
Will McGugan
803562d9a8 simplify example 2024-06-19 16:30:02 +01:00
Will McGugan
4d0293f81e
Merge pull request #4664 from Textualize/bump0700
bump
2024-06-19 12:55:53 +01:00
Will McGugan
da6597c1eb bump 2024-06-19 12:54:31 +01:00
Will McGugan
4a40027ef6 fix app blur 2024-06-18 14:38:31 +01:00
Will McGugan
4f5a8ae64d fix add_column 2024-06-17 21:24:39 +01:00
Will McGugan
0d78a5805b
Merge pull request #4659 from Textualize/type-checking-overload
wrap overloads
2024-06-17 16:29:33 +01:00
Will McGugan
68706b09dc wrap overloads 2024-06-17 16:18:11 +01:00
Will McGugan
2c97dec49d
Merge pull request #4492 from mxovd/toast-docu
Add information about ToastRack styling to the toast widget documentation
2024-06-17 15:46:48 +01:00
Will McGugan
24a673fd1d changelog 2024-06-17 15:45:05 +01:00
Will McGugan
afd5465ec7
Merge pull request #3647 from EricWF/fix-terminal-movements
Fix erroneous ButtonDown mouse event reporting.
2024-06-17 15:44:12 +01:00
Darren Burns
df377f152a
Add note about setting focus (#4658) 2024-06-17 14:12:25 +01:00
Will McGugan
4009167a98
Merge pull request #4655 from eddyizm/main
fix: remove typo in docstring
2024-06-16 19:03:53 +01:00
Will McGugan
b7471e49ca
Merge pull request #4657 from Textualize/action-pump
Action pump
2024-06-16 19:03:05 +01:00
Will McGugan
2375ed28f1 test 2024-06-16 18:53:45 +01:00
Will McGugan
c0aca7301e docstring 2024-06-16 17:44:08 +01:00
Will McGugan
c6fdd71b89 fix docs 2024-06-16 17:43:03 +01:00
Will McGugan
2b59969997 version bump 2024-06-16 17:26:57 +01:00
Will McGugan
ae49d55b75 fix typo 2024-06-16 17:16:19 +01:00
Will McGugan
daec5319ec renames 2024-06-16 17:10:47 +01:00
Will McGugan
473d7e8563 changelog 2024-06-16 15:37:00 +01:00
Will McGugan
4ec193550d version bump 2024-06-16 15:35:22 +01:00
Will McGugan
87622ad48c set active message pump on action 2024-06-16 15:09:07 +01:00
eddyizm
3cdc5143ce
fix: remove typo in docstring 2024-06-15 22:15:54 -07:00
Will McGugan
e9ad400559 don't depend on python command 2024-06-14 14:50:03 +01:00
Will McGugan
fd3d5fd312 update date 2024-06-14 11:04:04 +01:00
Will McGugan
88114c2b52
Merge pull request #4647 from Textualize/deadlock-fix
Deadlock fix
2024-06-14 11:01:50 +01:00
Will McGugan
604b04db2a hardening 2024-06-14 10:52:53 +01:00
Will McGugan
a4c8682c86 redundant 2024-06-13 16:39:29 +01:00
Will McGugan
a32bfef943 fix dictionary 2024-06-13 16:38:23 +01:00
Will McGugan
a7af044cd4 version bump 2024-06-13 16:27:14 +01:00
Will McGugan
e73e5263e2 no synch on pipe 2024-06-13 16:14:12 +01:00
Will McGugan
d0c492840a fix for piping 2024-06-13 16:09:38 +01:00
Will McGugan
16f80ad280 error message 2024-06-13 16:01:45 +01:00
Will McGugan
92e4d29969 tests 2024-06-13 15:55:19 +01:00
Will McGugan
6adc6f3492 tests 2024-06-13 15:46:23 +01:00
Will McGugan
647d15e1de work around deadlock 2024-06-13 14:53:55 +01:00
Will McGugan
ff918b4f3d added ContentSwitcher.add_conent 2024-06-12 17:33:41 +01:00
Darren Burns
9bbf022350
Fix missing import in Input, combine TYPE_CHECKING blocks in Switch (#4640) 2024-06-11 17:42:29 +01:00
Will McGugan
fd6160dc59 CHANGELOG 2024-06-11 15:54:58 +01:00
Will McGugan
a15f7b6d13
Merge pull request #4638 from Textualize/vim-keys-revert
Vim keys revert
2024-06-11 15:51:40 +01:00
Darren Burns
2a16164d26 Link in Changelog 2024-06-11 15:41:39 +01:00
Darren Burns
517c05a0cd Changelog and version bump to 0.67.1 2024-06-11 15:37:11 +01:00
Darren Burns
8e677ed0f7 Revert Vim keys in DataTable, provide alternatives. 2024-06-11 15:36:00 +01:00
Will McGugan
92583b5ec2
Merge pull request #4636 from Textualize/tree-click-target-increase
Quality of life: Expand the hover/click area for the tree nodes
2024-06-11 14:42:54 +01:00
Darren Burns
2317cea051 Update snapshots 2024-06-11 13:55:34 +01:00
Darren Burns
f8f8c6d61b Update the changelog 2024-06-11 13:39:31 +01:00
Darren Burns
d8cffa2ef4 Merge branch 'main' of github.com:Textualize/textual into tree-click-target-increase 2024-06-11 13:38:44 +01:00
Darren Burns
2618bae75f
DataTable navigation updates (#4633)
* Account for scrollbar in DataTable page-up/down

* UX matches expectation for pageup/pagedown

* Add extra data table bindings

* Page left and right

* Update CHANGELOG

* Updating a test for new behaviour

* Update CHANGELOG

---------

Co-authored-by: Johan Forsberg <johan.forsberg@maxiv.lu.se>
2024-06-11 13:38:23 +01:00
Darren Burns
2a3c71cd58 Expand the click target area for the tree 2024-06-11 13:32:51 +01:00
Will McGugan
099b6163f1 fix for f3 2024-06-11 13:21:47 +01:00
Will McGugan
3bd95cc183 can't detect f3 2024-06-11 13:08:54 +01:00
Will McGugan
62f1dfec89
Merge pull request #4635 from Textualize/signal-deadlock
check signal on publish
2024-06-11 12:52:17 +01:00
Will McGugan
06a60f6e8c changelog 2024-06-11 12:35:42 +01:00
Will McGugan
1730c48524 simplify 2024-06-11 12:27:09 +01:00
Will McGugan
71f788ecd4 raise error on deadlock 2024-06-11 12:18:42 +01:00
Will McGugan
f541aec2bd defensive 2024-06-11 11:49:31 +01:00
Will McGugan
b5d670e995 add timeout 2024-06-11 11:43:07 +01:00
Will McGugan
6d2ce33bf2 catch deadlocks 2024-06-11 11:34:12 +01:00
Will McGugan
51facfd3e0 version bump 2024-06-11 10:57:10 +01:00
Will McGugan
d067c9cff2 async test 2024-06-11 10:53:26 +01:00
Will McGugan
714a7b6629 changelog 2024-06-11 10:42:11 +01:00
Will McGugan
71648aa276 imports 2024-06-11 10:40:27 +01:00
Will McGugan
c25b98bcf0 check signal on publish 2024-06-11 10:32:58 +01:00
Will McGugan
c1b9a0cba2 fix page up and down 2024-06-10 12:24:42 +01:00
Will McGugan
9aef3adda2 improvement to rules 2024-06-10 11:52:04 +01:00
Will McGugan
aa988e6a71
Merge pull request #4631 from Textualize/keys
Keys
2024-06-09 21:26:42 +01:00
Will McGugan
889c0643bd fix warning 2024-06-09 21:16:33 +01:00
Will McGugan
067d9e3f45 changelog [skipci] 2024-06-09 21:14:30 +01:00
Will McGugan
861099f4d7 close log file 2024-06-09 21:06:56 +01:00
Will McGugan
cbc609ad52 f3 2024-06-09 20:56:02 +01:00
Will McGugan
d0fc802994 expected fail 2024-06-09 17:48:31 +01:00
Will McGugan
8da6935245 fix modifier order 2024-06-09 17:32:16 +01:00
Will McGugan
aaba1c413a key definitions 2024-06-09 17:27:41 +01:00
Will McGugan
98a68591e8 extended keys 2024-06-09 17:25:29 +01:00
Will McGugan
d5b2119413 extended keys 2024-06-09 16:58:52 +01:00
Will McGugan
4a0c273ffc key processing 2024-06-09 15:58:53 +01:00
Will McGugan
2f535bf7bb keyprotocol 2024-06-08 15:18:47 +01:00
Will McGugan
91c7fc764e
Merge pull request #4628 from Textualize/bump0660
bump
2024-06-08 14:30:52 +01:00
Will McGugan
7471aa9443 bump 2024-06-08 14:28:52 +01:00
Will McGugan
dc7c124f18
Merge pull request #4627 from Textualize/header-icon
expose icon
2024-06-08 14:06:17 +01:00
Will McGugan
245ad80351
Merge branch 'main' into header-icon 2024-06-08 13:58:00 +01:00
Will McGugan
2ddcb38123
Merge pull request #4625 from Textualize/tooltip-input
tooltip params
2024-06-08 13:53:27 +01:00
Will McGugan
32bea8792e time format 2024-06-08 13:49:27 +01:00
Will McGugan
4d2386b147 expose icon 2024-06-08 13:43:05 +01:00
Will McGugan
5510ac3647 tooltip on code editor 2024-06-08 13:32:22 +01:00
Will McGugan
28e55c58eb changelog 2024-06-08 13:17:24 +01:00
Will McGugan
5a82e83279 changelog 2024-06-08 13:17:04 +01:00
Will McGugan
6aefac7361 tooltip clear 2024-06-08 13:16:12 +01:00
Will McGugan
81e55f3b0a tooltip on switch. 2024-06-08 13:05:47 +01:00
Will McGugan
8f7eb27cc4 adjust button active time 2024-06-08 13:02:10 +01:00
Will McGugan
922dd0a06b changelog 2024-06-08 12:59:24 +01:00
Will McGugan
01ae0ad87f tooltip params 2024-06-08 12:58:18 +01:00
Will McGugan
14f5a9d9f0 Murica 2024-06-07 17:45:11 +01:00
Will McGugan
bca829b1b6 fix 5x5 quit 2024-06-07 17:26:48 +01:00
Will McGugan
8f36c3e727 microoptimizations 2024-06-07 17:19:34 +01:00
Will McGugan
2148966097 escape processing 2024-06-07 15:13:03 +01:00
Will McGugan
c7b357da9c
Merge pull request #4621 from Textualize/button-dismiss
Button dismiss
2024-06-07 14:52:46 +01:00
Will McGugan
4355e23a68 changelog [skipci] 2024-06-07 14:42:58 +01:00
Will McGugan
1f3456270e
Merge pull request #4620 from TomJGooding/patch-1
docs(tabbed content): fix link to content switcher
2024-06-07 14:38:41 +01:00
Will McGugan
d8bcb8bc0a bump 2024-06-07 14:28:30 +01:00
Will McGugan
13fc61c9fb dismiss change 2024-06-07 14:27:16 +01:00
TomJGooding
f4f1dfe194
docs(tabbed content): fix link to content switcher 2024-06-07 07:14:18 +01:00
Will McGugan
07bb4af78e
Merge pull request #4617 from Textualize/heigh-zero
zero height renderables
2024-06-06 20:20:56 +01:00
Will McGugan
abafa66a6a changelog 2024-06-06 20:05:26 +01:00
Will McGugan
f72fb5d11f zero height renderables 2024-06-06 20:03:39 +01:00
Will McGugan
c2eff2d9c5 Screen events 2024-06-06 19:30:50 +01:00
Will McGugan
1613d7cab8
Merge pull request #4615 from Textualize/fix-notify-error
Fix notifications crash
2024-06-06 18:12:53 +01:00
Will McGugan
d45d19b194 simplify 2024-06-06 18:00:34 +01:00
Will McGugan
3b8046d2b8 typing fix 2024-06-06 17:42:16 +01:00
Will McGugan
cda675e00f don't bubble detached widgets 2024-06-06 17:34:55 +01:00
Will McGugan
c45fd96af3 changelog 2024-06-06 15:57:43 +01:00
Will McGugan
d43ba0b5fc fix markdown not clearing 2024-06-06 15:52:55 +01:00
Will McGugan
7cfa1a6c83 synchronize shutdown 2024-06-06 15:46:27 +01:00
Will McGugan
6ca232e938 no snapshot 2024-06-06 15:19:10 +01:00
Will McGugan
3bafcba1a0 snapshot 2024-06-06 15:17:23 +01:00
Will McGugan
d89cf74e22 version bump 2024-06-06 15:04:17 +01:00
Will McGugan
b10d24d361 rlock tests 2024-06-06 14:59:16 +01:00
Will McGugan
792527334b
Merge pull request #4606 from Textualize/hatch-fix
hatch hotfix
2024-06-05 18:03:54 +01:00
Will McGugan
8bc3810a80 snapshot 2024-06-05 17:53:34 +01:00
Will McGugan
0757907f20 stricter parse 2024-06-05 17:40:49 +01:00
Will McGugan
d8f255d79c changelog 2024-06-05 17:37:12 +01:00
Will McGugan
53912c641f hatch hotfix 2024-06-05 17:36:39 +01:00
Will McGugan
3291b0216e changelog 2024-06-05 15:49:11 +01:00
Will McGugan
57594dba13
Merge pull request #4603 from Textualize/hatch
hatch css
2024-06-05 15:47:52 +01:00
Will McGugan
91dd066bc5 bump 2024-06-05 15:38:42 +01:00
Will McGugan
c02989aa20 fix typo 2024-06-05 15:32:07 +01:00
Will McGugan
f824bb45a4 snapshot 2024-06-05 15:21:04 +01:00
Will McGugan
d9da345fcf docs 2024-06-05 15:16:56 +01:00
Will McGugan
b38b170d99 hatch docs 2024-06-05 15:11:14 +01:00
Will McGugan
f4dcfc23a6 hatch snapshot 2024-06-05 14:02:03 +01:00
Will McGugan
902eca180e only hatch inside borders 2024-06-05 13:58:25 +01:00
Will McGugan
c74196f058 fix 5x5 2024-06-05 12:01:05 +01:00
Will McGugan
9466d3f4a5 more validation 2024-06-05 11:55:24 +01:00
Will McGugan
b180349629 docstring 2024-06-05 11:48:53 +01:00
Darren Burns
7b0251ee04
Command palette events (#4600)
* Add some events for the command palette

* Sending open, close, and highlighted events from CommandPalette -> App

* Docstrings

* Changelog

* Use Union for old python support

* Docstrings
2024-06-05 11:47:59 +01:00
Will McGugan
2f96a73f4f hatch css 2024-06-05 11:46:51 +01:00
Will McGugan
4db117c3c5
Merge pull request #4599 from Textualize/auto-tabs
Make tab active when a widget in a pane is focused
2024-06-04 21:12:06 +01:00
Will McGugan
ce37693303 changelog 2024-06-04 20:49:48 +01:00
Will McGugan
0fef26f197 comment 2024-06-04 20:46:06 +01:00
Will McGugan
40c7565911 snapshot tests 2024-06-04 20:44:34 +01:00
Will McGugan
9a28549454 auto tabs 2024-06-04 20:32:30 +01:00
Will McGugan
c5cff48b62
Merge pull request #4598 from Textualize/no-flicker-table
remove flicker
2024-06-04 18:40:13 +01:00
Will McGugan
1fe11c1c2a possible flakey test 2024-06-04 18:23:37 +01:00
Will McGugan
1cc3b11b2f smart refresh 2024-06-04 18:12:12 +01:00
Will McGugan
6804211f9b changelog 2024-06-04 18:06:59 +01:00
Will McGugan
dd436fb0cf rewmove flicker 2024-06-04 18:06:27 +01:00
Will McGugan
7251aac269
Merge pull request #4590 from Textualize/bump0640
bump
2024-06-03 15:48:46 +01:00
Will McGugan
2a306cbf0d bump 2024-06-03 15:40:47 +01:00
Will McGugan
6bd8e9e7fb
Merge pull request #4589 from Textualize/faster-markdown
Allow UI to update while markdown.update is in progress
2024-06-03 15:36:36 +01:00
Will McGugan
11209b843d microoptimize 2024-06-03 10:44:43 +01:00
Will McGugan
3e619b09c4 remove test code 2024-06-03 10:25:48 +01:00
Will McGugan
9c01827dde markdown 2024-06-03 10:10:22 +01:00
Will McGugan
fabef81153
Merge pull request #4505 from mon/customise-scrollbar
Allow more easily customisable scrollbar glyphs
2024-06-02 18:08:22 +01:00
Will McGugan
3f3e11ea20
Merge pull request #4575 from Textualize/timer-close
Fix error on shutdown
2024-06-02 15:37:40 +01:00
Will McGugan
7866974462
Merge pull request #4584 from Textualize/footer-flicker
don't show bindings first compose
2024-06-02 15:33:26 +01:00
Will McGugan
a34b7c59db short circuit 2024-06-02 15:28:54 +01:00
Will McGugan
c4797aed16
Merge branch 'main' into timer-close 2024-06-02 15:25:59 +01:00
Will McGugan
866e839df6 don't show bindings first compose 2024-06-02 15:24:09 +01:00
Will McGugan
0a6d96b8b1 remove comments 2024-06-02 15:13:42 +01:00
Will McGugan
5314accb8d
Merge pull request #4582 from davep/underline-typo
Fix a typo in the docs for Underline.COMPONENT_CLASSES
2024-06-02 15:12:31 +01:00
Will McGugan
1681cca428
Merge pull request #4583 from davep/fix-goto-anchor
Fix `Markdown.goto_anchor` not scrolling the heading into view
2024-06-02 15:12:00 +01:00
Will McGugan
4ff8d40695 fix exception on exit 2024-06-02 15:11:02 +01:00
Dave Pearson
f27a92197d
Add a link to the PR to the ChangeLog 2024-06-01 18:55:59 +01:00
Dave Pearson
c63c08a69b
Update the ChangeLog 2024-06-01 18:46:55 +01:00
Dave Pearson
6115b9ebc6
Remove whitespace littering 2024-06-01 18:46:47 +01:00
Dave Pearson
ba5c8f6210
Fix Markdown.goto_anchor not scrolling the heading into view
This used to, but it seems to have broken some way along the way; perhaps
because of changes to how scrolling works?

The problem was observed on Discord and this would seem to fix the issue.
2024-06-01 18:43:22 +01:00
Dave Pearson
7e8fba0c8f
Remove whitespace littering 2024-06-01 18:40:20 +01:00
Dave Pearson
285f268d70
Fix a typo in the docs for Underline.COMPONENT_CLASSES
While this doesn't end up in the docs now, it could at some point int he
future, so it's worth correcting.
2024-06-01 16:17:03 +01:00
Will McGugan
b203326dc1 wip 2024-05-30 17:45:50 +01:00
Will McGugan
f663bca524 fix 2024-05-30 16:45:57 +01:00
Will McGugan
a7079cc5ca changelog 2024-05-30 16:26:37 +01:00
Will McGugan
52ac87ac29 restore sanity check 2024-05-30 16:25:50 +01:00
Will McGugan
4c25750ff1 timers 2024-05-30 16:17:01 +01:00
Will McGugan
a44119d168
Merge pull request #4571 from Textualize/bind-fix
fix for bindings not refreshed
2024-05-29 11:45:53 +01:00
Will McGugan
3d8ffb5ead changelog 2024-05-29 11:31:09 +01:00
Will McGugan
b3582f97db fix for bindings not refreshed 2024-05-29 11:26:13 +01:00
Will McGugan
4adaf03050
Merge pull request #4567 from Textualize/auto-height-fix
fix issue with auto height
2024-05-28 12:30:17 +01:00
Will McGugan
ba4e621e1a
Merge pull request #4475 from alexmalins/fix-micromamba-link
docs: Fix micromamba installation link
2024-05-28 12:24:43 +01:00
Will McGugan
46c65bf46b changelog 2024-05-28 12:19:00 +01:00
Will McGugan
adc9e91390 fix issue with auto height 2024-05-28 12:18:15 +01:00
Will Toohey
0ebbf05d13 ScrollBarRender: change class constants to SCREAMING_SNAKE_CASE 2024-05-27 08:25:46 +10:00
Will McGugan
c0e674308d
Merge pull request #4558 from Textualize/fix-freeze
fix freeze
2024-05-26 14:16:24 +01:00
Will McGugan
b90717844f change log [skipci] 2024-05-26 14:15:54 +01:00
Will McGugan
dee6b4ad09 remove faulty test 2024-05-26 14:06:11 +01:00
Will McGugan
fbe1e1617c fix 2024-05-26 13:57:31 +01:00
Will McGugan
e490a94cdd test 2024-05-26 13:52:47 +01:00
Will McGugan
acd0f84bcb fix freeze 2024-05-26 13:43:28 +01:00
Will McGugan
5195a57de6
Merge pull request #4556 from Textualize/signal_refactor
signals
2024-05-25 14:11:43 +01:00
Will McGugan
b76a5c73fe immediate signal 2024-05-25 12:06:10 +01:00
Will McGugan
5f5384ba61 simplify 2024-05-25 11:34:00 +01:00
Will McGugan
3308ace55d changelog [skip ci] 2024-05-25 11:29:06 +01:00
Will McGugan
c6aeb1ee01 signals 2024-05-25 11:21:22 +01:00
Will McGugan
3446f42498 fix link 2024-05-24 18:00:36 +01:00
Will McGugan
fa37983ff7
Merge pull request #4551 from Textualize/auto-focus-bindings
Auto focus bindings
2024-05-24 16:44:17 +01:00
Will McGugan
cbf385e43b changelog [skipci] 2024-05-24 16:33:00 +01:00
Will McGugan
e04754ac47 bump 2024-05-24 16:24:39 +01:00
Will McGugan
fa8ddd5667 refresh bindings on auto focus 2024-05-24 16:24:04 +01:00
Will McGugan
6034065804
Merge pull request #4547 from Textualize/check-mount
enforce mounting
2024-05-23 17:11:29 +01:00
Will McGugan
c7c9a6ec67 fix check 2024-05-23 17:02:11 +01:00
Will McGugan
4e83677e76 changelog 2024-05-23 16:59:35 +01:00
Will McGugan
fe2043eca0 enforce mounting 2024-05-23 16:51:44 +01:00
Will McGugan
5bd94b77f2
Merge pull request #4545 from TomJGooding/fix-footer-ignore-multi-bindings-for-grid-size
fix(footer): exclude multi bindings for grid size
2024-05-23 12:46:15 +01:00
TomJGooding
7cb75815bb
Merge branch 'main' into fix-footer-ignore-multi-bindings-for-grid-size 2024-05-23 12:31:50 +01:00
Will McGugan
def421f205
Merge pull request #4546 from Textualize/action-target
fix for action targets
2024-05-23 08:57:57 +01:00
Will McGugan
ee7416ba57 test fix 2024-05-23 08:46:18 +01:00
Will McGugan
70bb3e5f6c remove debug 2024-05-23 08:38:03 +01:00
Will McGugan
e14ea1a45d bump 2024-05-23 08:37:23 +01:00
Will McGugan
1e6a322dbf test 2024-05-23 08:35:42 +01:00
Will McGugan
77349fc4f3 fix for action target 2024-05-23 08:21:55 +01:00
Will McGugan
befacc12d9 changelog 2024-05-23 08:13:08 +01:00
TomJGooding
ce004248ea update changlog 2024-05-22 21:59:54 +01:00
TomJGooding
2355be05ff clean trailing whitespace 2024-05-22 21:48:58 +01:00
TomJGooding
e7fc99606a fix(footer): ignore multi bindings for grid size 2024-05-22 21:42:58 +01:00
Will McGugan
62a4db505e bump 2024-05-22 20:55:14 +01:00
Will McGugan
d15cfa0c83
Merge pull request #4543 from Textualize/multi-keys
fix multi keys
2024-05-22 20:54:39 +01:00
Will McGugan
f179f1023b import 2024-05-22 20:53:49 +01:00
Will McGugan
53aacacbed snapshot 2024-05-22 20:44:41 +01:00
Will McGugan
7e15b9d6df fix multi keys 2024-05-22 20:34:40 +01:00
Will McGugan
c3e001027a typo 2024-05-22 18:26:26 +01:00
Will McGugan
915b7691fb
Merge pull request #4541 from Textualize/md-tweaks
tweak to Markdown
2024-05-22 17:42:40 +01:00
Will McGugan
70549c8a55 fix snapshots 2024-05-22 17:24:06 +01:00
Will McGugan
97d11b89e1 snapshots 2024-05-22 16:34:26 +01:00
Will McGugan
5c9c2ccb73 more tweaks 2024-05-22 16:20:49 +01:00
Will McGugan
3d49ded08d tweak 2024-05-22 16:02:08 +01:00
Will McGugan
c925663d10
Merge pull request #4540 from Textualize/fix-links
Fix links
2024-05-22 15:00:27 +01:00
Will McGugan
33e318df4f test 2024-05-22 14:51:18 +01:00
Will McGugan
3ec7d0c7fe bump 2024-05-22 13:54:24 +01:00
Will McGugan
612d9ec37e changelog 2024-05-22 13:54:10 +01:00
Will McGugan
c4d8cc2ac1 fix 2024-05-22 13:53:32 +01:00
Will McGugan
78d0061708
Merge pull request #4537 from Textualize/footer-redux
Footer redux
2024-05-22 13:21:31 +01:00
Will McGugan
455c8ccd74 readme [skipci 2024-05-22 13:21:14 +01:00
Will McGugan
05755872ea fix snapshot 2024-05-22 13:05:54 +01:00
Will McGugan
c14a351adb fix key 2024-05-22 12:51:57 +01:00
Will McGugan
ae4a3f8633 snapshots 2024-05-22 12:24:13 +01:00
Will McGugan
86c11a0b4d docs 2024-05-22 12:03:18 +01:00
Will McGugan
6bdec928bb fix focus 2024-05-22 11:49:30 +01:00
Will McGugan
6074fa8a49 catch screen error 2024-05-22 11:33:42 +01:00
Will McGugan
135fab688c snapshot fixes 2024-05-21 18:59:04 +01:00
Will McGugan
374f742be4 new footer 2024-05-21 16:47:37 +01:00
Will McGugan
83ad5ed02a Debug 2024-05-21 14:39:33 +01:00
Will McGugan
785c3ee1f3 update mouse over 2024-05-21 13:46:25 +01:00
Will McGugan
91655990db update mouse over 2024-05-21 13:33:41 +01:00
Will McGugan
5be9f065a1 new footer 2024-05-21 12:48:52 +01:00
Will McGugan
964d988ac9
Merge pull request #4530 from Textualize/anchor
Add anchor method
2024-05-20 19:39:53 +01:00
Will McGugan
50a3ecaf85 changelog 2024-05-20 19:39:30 +01:00
Will McGugan
84e6a9d727 fix 2024-05-20 19:19:01 +01:00
Will McGugan
c5e0bccdd9 fix test 2024-05-20 19:12:29 +01:00
Will McGugan
93bcdf8ea5 snapshot 2024-05-20 19:04:50 +01:00
Will McGugan
ea6135f2c0 docstrings 2024-05-20 18:57:56 +01:00
Will McGugan
87ab5a76e1 changelog 2024-05-20 18:52:52 +01:00
Will McGugan
90083a5152 changelog 2024-05-20 18:52:03 +01:00
Will McGugan
3b09172966
Merge pull request #4528 from davep/fix-css-styles-index-link
Fix a broken link in the CSS types index
2024-05-20 09:48:51 +01:00
Will McGugan
f4a40204ce
Merge pull request #4527 from davep/grid-links
Fix links for grid style reference
2024-05-20 09:48:32 +01:00
Will McGugan
077d2600a1
Merge pull request #4526 from davep/screen-events-see-also
Link `ScreenSuspend` and `ScreenResume` via see-also
2024-05-20 09:47:50 +01:00
Dave Pearson
da1a133a77
Fix a broken link in the CSS types index 2024-05-20 08:32:08 +01:00
Dave Pearson
ec10e41f40
Fix links for grid style reference
Fixes #4523
2024-05-20 08:29:12 +01:00
Dave Pearson
6828803288
Link ScreenSuspend and ScreenResume via see-also 2024-05-20 08:11:14 +01:00
Will McGugan
3219d1578b docstrings 2024-05-19 20:18:34 +01:00
Will McGugan
34eb1ec5b5 docstring 2024-05-19 20:14:52 +01:00
Will McGugan
bd27d0432d Added dyanmic bindings to Markdown 2024-05-19 20:07:24 +01:00
Will McGugan
cc90dc55ca micro optimization 2024-05-19 17:58:58 +01:00
Will McGugan
cbcfd9b8ef unused var 2024-05-19 17:08:38 +01:00
Will McGugan
be77ef36c1 fix runtime error when resizing inline driver 2024-05-19 17:03:58 +01:00
Will McGugan
4a20915757 changelog 2024-05-19 15:11:29 +01:00
Will McGugan
3cc5fff5e5 snapshot 2024-05-19 15:10:46 +01:00
Will McGugan
236d83943c fix gutter 2024-05-19 15:01:06 +01:00
Will McGugan
99235b0f31
Merge pull request #4521 from Textualize/bump0610
bump
2024-05-18 11:13:07 +01:00
Will McGugan
7f5676ccf5 bump 2024-05-18 11:11:51 +01:00
Will McGugan
0563546f9d
Merge pull request #4520 from Textualize/default-screen
default screen method
2024-05-18 11:04:45 +01:00
Will McGugan
36d609fcae
Merge branch 'main' into default-screen 2024-05-18 10:55:47 +01:00
Will McGugan
11e7e84587
Merge pull request #4516 from Textualize/dynamic-bindings
dynamic bindings
2024-05-18 10:55:10 +01:00
Will McGugan
24ae42f2a7 words 2024-05-18 10:54:27 +01:00
Will McGugan
b148131716 test 2024-05-18 10:53:00 +01:00
Will McGugan
745d8fd337 default screen method 2024-05-18 10:48:34 +01:00
Will McGugan
f4a0a1784e timeout fix 2024-05-17 19:32:49 +01:00
Will McGugan
4378f779af restore modal 2024-05-17 19:30:03 +01:00
Will McGugan
d6a3e0b4ca change to notifications defaults 2024-05-17 19:27:54 +01:00
Will McGugan
3eca5255b2
Update docs/guide/actions.md
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-05-17 19:21:44 +01:00
Will McGugan
9459c03dea
Update docs/guide/actions.md
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-05-17 19:21:32 +01:00
Will McGugan
762c2ca37b typos 2024-05-17 19:21:06 +01:00
Will McGugan
5e898baa1b bindings 2024-05-17 19:18:54 +01:00
Will McGugan
8a3e386f3f better test 2024-05-17 17:58:40 +01:00
Will McGugan
c9828e5c2e snapshots 2024-05-17 17:55:32 +01:00
Will McGugan
ce93741ff6 typos 2024-05-17 17:44:02 +01:00
Will McGugan
01f36c0d00 typing fixes 2024-05-17 17:40:58 +01:00
Will McGugan
e0942cf499 dynamic actions docs 2024-05-17 17:33:00 +01:00
Will McGugan
8a717351b2 changelog 2024-05-17 13:15:25 +01:00
Will McGugan
c3bc94be7c changelog 2024-05-17 13:08:03 +01:00
Will McGugan
d156b1b4f1 test comments 2024-05-17 13:03:21 +01:00
Will McGugan
c2eb3e84fd snapshot tests 2024-05-17 13:02:04 +01:00
Will McGugan
78ee84335a disabled actions 2024-05-17 12:54:30 +01:00
Will McGugan
29077360d2 fix for new binding mechanism 2024-05-17 12:14:28 +01:00
Will McGugan
63eea86f06 typing 2024-05-17 10:39:42 +01:00
Will McGugan
9ee9ca5a74 bindings refresh on screen 2024-05-17 10:25:24 +01:00
Will McGugan
e7ef05de4b fix screen bindings 2024-05-17 09:31:07 +01:00
Will McGugan
cceb6228e1 increase cache 2024-05-16 21:33:00 +01:00
Will McGugan
ce964ea0c2 disable footer on app focus 2024-05-16 21:30:33 +01:00
Will McGugan
4eacec2def remove debug, prevent clicking disabled actions 2024-05-16 21:25:02 +01:00
Will McGugan
bb7909cb01 changelog 2024-05-16 21:20:36 +01:00
Will McGugan
403817135a changelog 2024-05-16 21:19:21 +01:00
Will McGugan
13ee819cd7 no need 2024-05-16 21:17:29 +01:00
Will McGugan
2e01ab3553 test fixes 2024-05-16 21:15:48 +01:00
Will McGugan
aa6e1440e1 and disabled 2024-05-16 21:10:31 +01:00
Will McGugan
01308f878c dynamic bindings 2024-05-16 20:49:33 +01:00
Will McGugan
6c099d055f
Merge pull request #4513 from Textualize/bump0601
bump
2024-05-15 17:34:41 +01:00
Will McGugan
c1591fca33 bump 2024-05-15 17:24:10 +01:00
Will McGugan
d1925b738b fix 2024-05-14 17:29:03 +01:00
Will McGugan
aac5597ec0 Add robots 2024-05-14 17:23:47 +01:00
Will McGugan
305ac3853d show update time 2024-05-14 17:15:05 +01:00
Will McGugan
926b4e3665
Merge pull request #4511 from Textualize/bump0600
version bump
2024-05-14 15:34:10 +01:00
Will McGugan
bad462e554 version bump 2024-05-14 15:33:00 +01:00
Will McGugan
d28a52411a
Merge pull request #4508 from Textualize/query_children
query children
2024-05-13 10:16:50 +01:00
Will McGugan
10887ee8ef fix test 2024-05-12 18:12:44 +01:00
Will McGugan
9e094e66f6 import 2024-05-12 17:45:30 +01:00
Will McGugan
57a5878fb7 simplify 2024-05-12 17:44:04 +01:00
Will McGugan
26f9a12593 add tests 2024-05-12 17:41:43 +01:00
Will McGugan
55ef4d4a67 query children 2024-05-12 17:26:10 +01:00
Will McGugan
9fdb379207
Merge pull request #4507 from Textualize/option-list-width
add get_content_width
2024-05-12 16:04:00 +01:00
Will McGugan
7e9c4c8c88 changelog 2024-05-11 17:14:19 +01:00
Will McGugan
7147369426 add get_content_width 2024-05-11 17:13:06 +01:00
Will Toohey
e8fa75d25f Allow more easily customisable scrollbar glyphs 2024-05-11 22:09:29 +10:00
Will McGugan
a70636444d changelog date 2024-05-11 12:08:14 +01:00
Will McGugan
0c2d9498cc
Merge pull request #4504 from Textualize/bump0590
bump
2024-05-11 12:06:29 +01:00
Will McGugan
f2157e585b bump 2024-05-11 12:04:44 +01:00
Will McGugan
88bc655f60
Merge pull request #4499 from Textualize/fix-select
Fix select
2024-05-11 11:42:06 +01:00
Will McGugan
ff4df98962 better 2024-05-11 10:33:23 +01:00
Will McGugan
27633707ec dummy awaitable 2024-05-11 10:32:53 +01:00
Will McGugan
aaa5b114d9 constant 2024-05-11 10:23:23 +01:00
Will McGugan
42bb91be5c fix 2024-05-11 10:19:03 +01:00
Will McGugan
bc145743e0
Merge pull request #4501 from Textualize/docs-inline-not-supported-on-windows
Add note about inline-mode to the docs
2024-05-10 17:57:11 +01:00
Will McGugan
e8730c9f66 comment 2024-05-10 17:42:50 +01:00
Will McGugan
67be701e61 restore fix 2024-05-10 17:42:18 +01:00
Will McGugan
ae157df2d3 alt fix 2024-05-10 17:25:33 +01:00
Darren Burns
fdfe104dc4 Add note about inline-mode to the docs 2024-05-10 16:14:59 +01:00
Jakob Zahn
81edbfbad8
Fix Cursor Drag on Programmatic Edit (#4496)
* Apply row offsets conditionally

* Add tests for cursor row offset
2024-05-10 15:28:30 +01:00
Will McGugan
ed12104680 changelog 2024-05-09 17:29:44 +01:00
Will McGugan
b3c8c1da07 changelog 2024-05-09 17:29:12 +01:00
Will McGugan
0f5670ef25 Fix for select 2024-05-09 17:28:24 +01:00
Will McGugan
e21f57529d typos 2024-05-08 20:05:56 +01:00
Will McGugan
24f5b51182 typo 2024-05-08 19:53:03 +01:00
Will McGugan
aedb3e0990 docstring 2024-05-08 18:26:34 +01:00
Will McGugan
81dae48b54 docstring 2024-05-08 18:19:30 +01:00
Will McGugan
e4c57557f8 extra words 2024-05-08 17:08:13 +01:00
mxovd
1f67f09da5
Update docs/widgets/toast.md
Co-authored-by: Dave Pearson <davep.org@gmail.com>
2024-05-08 22:44:06 +09:00
mxovd
174133a2b1
Update docs/widgets/toast.md
Co-authored-by: Dave Pearson <davep.org@gmail.com>
2024-05-08 22:44:00 +09:00
mxovd
ad3945180c Add information about toastrack styling to the toast widget documentation 2024-05-08 22:14:31 +09:00
Will McGugan
d3629d2a9a
Merge pull request #4491 from davep/query-one-typo
Typo fix (s/are/is/)
2024-05-07 21:54:26 +01:00
Dave Pearson
508cba63ce
Typo fix (s/are/is/) 2024-05-07 21:41:43 +01:00
Will McGugan
a9e87b59c0 query_one docs 2024-05-07 21:09:33 +01:00
Will McGugan
fd8e1c3cd1
Merge pull request #4487 from Textualize/message-signal
Message signal
2024-05-07 20:49:37 +01:00
Will McGugan
2709d9bb55 changelog 2024-05-07 17:07:08 +01:00
Will McGugan
c5fe06b7cb use message pump in singals 2024-05-07 16:43:14 +01:00
Will McGugan
3e6e3e5461 message signal 2024-05-07 16:37:19 +01:00
Alex Malins
b4e730b23a fix typos 2024-05-05 23:39:50 +09:00
Alex Malins
72628e7a6e Update micromamba installation docs link 2024-05-05 23:37:20 +09:00
TomJGooding
17e975db67
fix(selection list): update indexes after option removed (#4464)
* fix(selection list): update indexes after option removed

* add basic test

* update changelog

* improve test

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-05-02 17:07:32 +01:00
TomJGooding
5d974391ed
fix(list view): fix bugs with initial index (#4452)
* fix(list view): fix bugs with initial index

* update changelog
2024-05-02 16:24:52 +01:00
Will McGugan
bf3dceed33 just docs 2024-05-02 09:50:27 +01:00
Kâmuran İmran
20c1776baf
fix typo (#4468) 2024-05-01 17:22:09 +01:00
Will McGugan
b647b3db30
Merge pull request #4458 from Oakchris1955/main
Prevent rich console from highlighting patterns in exit messages
2024-05-01 17:20:07 +01:00
Will McGugan
d35a59a401
Merge branch 'main' into main 2024-05-01 17:20:00 +01:00
Will McGugan
fd16a0487d
Merge pull request #4469 from Textualize/fix-scroll-center
Fix scroll center
2024-05-01 16:42:12 +01:00
Will McGugan
34495dee19 version bump 2024-05-01 11:05:07 +01:00
Will McGugan
d5b3629033 snapshits 2024-05-01 11:03:13 +01:00
Will McGugan
5db23ce677 changelog 2024-05-01 10:50:06 +01:00
Will McGugan
1f6c369c84 no bankers rounding 2024-05-01 10:43:29 +01:00
Will McGugan
b2b0ae0ed5 no -1 2024-05-01 10:39:02 +01:00
Will McGugan
15a563a62d fix scroll behaviour 2024-05-01 10:15:34 +01:00
Will McGugan
09e11094c1 scroll to center fix 2024-05-01 09:30:19 +01:00
Will McGugan
567caf8acb fix 2024-04-30 19:19:57 +01:00
Will McGugan
d40972e73a
Merge pull request #4466 from Textualize/markdown-lazy
await markdown
2024-04-30 16:39:58 +01:00
Will McGugan
0cc87790ce fix app focus 2024-04-30 16:31:30 +01:00
Will McGugan
d1432591ae fix for app focus 2024-04-30 16:30:25 +01:00
Will McGugan
94cdf9e951 changelog 2024-04-30 16:21:28 +01:00
Will McGugan
f42ece221b await markdown 2024-04-30 16:20:27 +01:00
Oakchris1955
8471e5d965
Update CHANGELOG.md 2024-04-29 13:49:06 +03:00
Oakchris1955
e70baa7907
Prevent highlighting on error console 2024-04-29 13:43:35 +03:00
Will McGugan
0f62d130f0 docstring 2024-04-29 10:23:20 +01:00
Will McGugan
f042b9d1f1 tests and a fix 2024-04-27 18:26:08 +01:00
Will McGugan
a5cab15cc1
Merge pull request #4446 from Textualize/scroll-widget-fix
fix scrolling
2024-04-25 11:33:41 +01:00
Will McGugan
3174619fe8 bump [skipci] 2024-04-25 11:24:07 +01:00
Will McGugan
268a022c26
Merge branch 'main' into scroll-widget-fix 2024-04-25 11:12:33 +01:00
Will McGugan
89826fbf65
Merge pull request #4441 from Textualize/margin-fix
fix margins
2024-04-25 11:11:54 +01:00
Will McGugan
eee11ea7be exclude 3.11 2024-04-25 11:00:56 +01:00
Will McGugan
d670426e16 fix scrolling 2024-04-25 10:41:27 +01:00
Will McGugan
f0cca0b07f fix missing matrix Pythons 2024-04-24 19:03:28 +01:00
Will McGugan
0d3380fd7b simplify 2024-04-24 18:50:57 +01:00
Will McGugan
5a245b2e43 snapshots 2024-04-24 17:52:06 +01:00
Will McGugan
9952d3717e fix margins 2024-04-24 17:47:17 +01:00
Will McGugan
17d4c96a5a docs and comments 2024-04-22 17:55:32 +01:00
Will McGugan
fb05a51997
Merge pull request #4438 from Textualize/generic-signal
Add argument to signals
2024-04-22 17:37:39 +01:00
Will McGugan
9758bca440 changelog 2024-04-22 17:07:38 +01:00
Will McGugan
8a9746df8f signal arguments 2024-04-22 17:05:46 +01:00
TomJGooding
1de74dc5de
fix(text area): end mouse selection only if currently selecting (#4436)
* fix(text area): end mouse selection only if currently selecting

* move check inside _end_mouse_selection

* update changelog
2024-04-22 14:13:54 +01:00
Will McGugan
ca889be94b words 2024-04-21 13:21:53 +01:00
Will McGugan
098ab1dce5 more 2024-04-20 18:43:54 +01:00
Will McGugan
0c91ded08a not draft 2024-04-20 17:41:57 +01:00
Will McGugan
e806f96c9b
Merge pull request #4435 from Textualize/flush-inline
flush inline
2024-04-20 17:30:39 +01:00
Will McGugan
48a1fd0ce2 words 2024-04-20 17:16:42 +01:00
Will McGugan
98662cfb87 words 2024-04-20 17:06:08 +01:00
Will McGugan
4a4d2cf09b bump [skipci] 2024-04-20 14:56:28 +01:00
Will McGugan
40eac179b1 docstring changelog 2024-04-20 13:17:58 +01:00
Will McGugan
8e72c8c41e flush inline 2024-04-20 13:16:11 +01:00
Will McGugan
de2db96088
Merge pull request #4433 from Textualize/scrollbar-color
refresh scrollbar colors
2024-04-20 12:40:06 +01:00
Will McGugan
c1e25dda7a don't assume widget 2024-04-19 15:50:20 +01:00
Will McGugan
149e57e6c4 changlog [skip ci] 2024-04-19 15:47:18 +01:00
Will McGugan
b55b8dcfae refresh scrollbar colors 2024-04-19 15:42:20 +01:00
Ted Conbeer
76c099235b
fix: make Document.end zero-indexed (#4427)
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-04-19 15:39:34 +01:00
Will McGugan
f9b549a4eb
Merge pull request #4430 from Textualize/bump0570
bump 0.57.0
2024-04-19 11:24:18 +01:00
Will McGugan
5847c9dc8e bump 2024-04-19 11:20:59 +01:00
Will McGugan
c00502f732
Merge pull request #4429 from Textualize/fix-cursor
fix cursor
2024-04-19 11:18:15 +01:00
Will McGugan
217061cb07
Merge pull request #4384 from MuongKimhong/extend-listview-functionality
added insert, pop and remove_items methods to ListView
2024-04-19 11:14:39 +01:00
Will McGugan
1b9e80896f formatting 2024-04-19 11:13:52 +01:00
Will McGugan
07e9426fd4
Merge pull request #4424 from TomJGooding/docs-update-tab-activated-on-decorator-selector
docs: update TabActivated on decorator selector
2024-04-19 11:11:47 +01:00
Will McGugan
7e3da30fbe changelog 2024-04-19 11:09:07 +01:00
Will McGugan
b54f780de3 fix cursor 2024-04-19 11:08:12 +01:00
TomJGooding
d788bcf771 docs: update TabActivated on decorator selector 2024-04-17 18:15:48 +01:00
Will McGugan
787331ee44 typo 2024-04-16 17:39:34 +01:00
Roy Attias
0de44da51b
Allow pygments text area (#4366)
* widgets: _text_area: Extract resolving of the current line from the document into a function

This allows a subclass of text area to augment the `Text` object before
it is rendered

* docs: examples: Add TextArea with Syntax object

This example shows how `TextArea` can be subclassed such that a Syntax
object will be used to highlight the document, instead of tree-sitter

* Remove Pygments example, add a docstring.

* Fix typo

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-04-16 16:24:16 +01:00
Rodrigo Girão Serrão
70ea75e674
Add example apps to tests. (#4036)
* Add example apps to tests.

* Add merlin, remove code browser, update snapshots.

* Fix snapshots.

* Update JSON example to use new colors.

* Fixing a snapshot

* Update lockfile

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-04-16 16:14:20 +01:00
TomJGooding
86e4dbf322
tests: add snapshot test for button with multi-line label (#4374) 2024-04-16 15:07:19 +01:00
TomJGooding
c41c531431
docs: update selection list messages docs (#4399)
* remove selection toggled note

* update selected changed docstring

* add event handler to selected changed docstring

* remove differentiation of user interaction and API
2024-04-16 15:05:42 +01:00
TomJGooding
dd36d6f071
fix(integer validator): check not a number for failure description (#4414)
* add failing test

* add not a number to describe failures

* update changelog

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-04-16 15:04:48 +01:00
TomJGooding
8320d07d46
fix(datatable): prevent crash with border link (#4415)
* fix(datatable): prevent crash with border link

* add test

* update changelog
2024-04-16 15:03:47 +01:00
Will McGugan
bd8f748381 no abbreviations 2024-04-15 12:03:51 +01:00
Will McGugan
374d32e341 errors 2024-04-15 10:26:09 +01:00
Will McGugan
121faf6e9b
Merge pull request #4416 from Textualize/paste
Copy to clipboard method
2024-04-15 09:55:08 +01:00
Will McGugan
2fcf88de53 changelog 2024-04-14 15:15:38 +01:00
Will McGugan
762941c72a changelog 2024-04-14 15:14:20 +01:00
26
ea99845398
cache ListItem query 2024-04-14 09:47:03 +10:00
Will McGugan
e0a5c4dd3b
Merge pull request #4411 from davep/doc-typo-fixes
Add some missing backticks in the docs
2024-04-10 10:15:14 +01:00
Dave Pearson
9ba9a884c4
Add some missing backticks in the docs 2024-04-10 10:12:29 +01:00
Will McGugan
d10d925323
Merge pull request #4408 from TomJGooding/docs-changelog-remind-will-its-2024 2024-04-09 19:41:56 +01:00
TomJGooding
211868f377 docs(changelog): remind Will it's 2024! 2024-04-09 19:32:54 +01:00
Will McGugan
ddcf9a767e inline tweak 2024-04-09 16:06:08 +01:00
Will McGugan
762bc36179 link to tqs 2024-04-09 10:12:16 +01:00
Will McGugan
35a4df33d7
Merge pull request #4405 from habaneraa/patch-docs-padding
Fix minor mistake in docs/styles/padding.md
2024-04-09 10:07:54 +01:00
habaneraa
eb9a5b992d
Update docs/styles/padding.md 2024-04-09 16:13:02 +08:00
Will McGugan
7aebd25d4b fix inline lag 2024-04-08 16:46:03 +01:00
Will McGugan
c94035570c docstring 2024-04-07 15:27:17 +01:00
Will McGugan
4d862c7ed2 version bump and fix 2024-04-07 15:18:34 +01:00
Will McGugan
1a7f9fffe1
Merge pull request #4401 from Textualize/more-inline-fix
More inline fix
2024-04-07 14:44:37 +01:00
Will McGugan
916b66a544 simplify 2024-04-07 14:39:28 +01:00
Will McGugan
635c286431 changelog 2024-04-07 14:22:24 +01:00
Will McGugan
993bb78ca1 inline improvements 2024-04-07 14:18:08 +01:00
Will McGugan
6008c6d004 changelog [skipci] 2024-04-07 13:14:05 +01:00
Will McGugan
d8ce2c861b changelog [skip ci] 2024-04-07 13:12:48 +01:00
Will McGugan
a74d73b597 changelog 2024-04-07 13:08:12 +01:00
Will McGugan
e72c016b94 inline again 2024-04-07 13:06:03 +01:00
Will McGugan
fe24cc21f0
Merge pull request #4396 from Textualize/bump0560
bump to v0.56.0
2024-04-06 12:03:55 +01:00
Will McGugan
aa7bf9a4e3 bump 2024-04-06 11:59:06 +01:00
Will McGugan
04471f6375
Merge pull request #4390 from valentingregoire/main
fix: Relative url to css docs fixed.
2024-04-06 11:57:31 +01:00
Will McGugan
8ac16b72e2
Merge pull request #4395 from Textualize/bindings-keys-fix
fix for prioirty bindings
2024-04-06 11:54:13 +01:00
Will McGugan
5e420cb2fe changelog 2024-04-06 11:42:16 +01:00
Will McGugan
6c459a5cd0 fix for prioirty bindings 2024-04-06 11:40:55 +01:00
Will McGugan
1b2e860145
Merge pull request #4393 from Textualize/inline-screen-fix
Inline screen fix
2024-04-06 11:16:45 +01:00
Will McGugan
acb23d32b8
Merge branch 'main' into inline-screen-fix 2024-04-06 11:16:24 +01:00
Will McGugan
e08c3f95ec
Merge pull request #4392 from Textualize/select-no-changed
prevent messages from constructor
2024-04-06 11:15:03 +01:00
Will McGugan
f5edc81527 changelog 2024-04-05 17:28:36 +01:00
Will McGugan
01f32c79f6 no explicit prevent 2024-04-05 17:27:27 +01:00
Will McGugan
19437ffc90 prevent on mount 2024-04-05 17:24:26 +01:00
Will McGugan
1cefc8d0fd changelog 2024-04-05 16:56:35 +01:00
Will McGugan
5f6e9253c9 changelog 2024-04-05 16:50:42 +01:00
Will McGugan
fbc88bc258 fix newlines 2024-04-05 16:48:06 +01:00
Will McGugan
57718bdb68 fix screens in inline moode 2024-04-05 16:05:04 +01:00
Will McGugan
e6b65310cd prevent messages from constructor 2024-04-05 15:37:26 +01:00
ValentG2
c93d096754 fix: Relative url to css docs fixed. 2024-04-05 14:11:50 +02:00
MuongKimhong
281be0c288 removed unnecessary 2024-04-04 20:16:41 +11:00
MuongKimhong
a4c868c88e fixed bug 2024-04-04 20:13:26 +11:00
MuongKimhong
5efe3342c8 added insert, pop and remove_items methods to ListView 2024-04-04 18:10:37 +11:00
Will McGugan
1154b56aa0
Merge pull request #4379 from Textualize/mouse-fix
fix for mouse
2024-04-02 16:08:34 +01:00
Will McGugan
537fff1000 fix for mouse 2024-04-02 15:46:36 +01:00
eric
53af952be4 Fix erronious ButtonDown mouse event reporting.
After v0.38.0, I was seeing Input fields lose focus whenever the mouse
left the input field area (but without having clicked anywhere). This
was being caused because since the release Mouse ButtonDown events
trigger loss of focus. But I wasn't pressing any mouse buttons.

The erronious ButtonDown events were actually MouseMove events with
no keys held down. According to the docs for xterm escape sequences,
wher SGR (1006) mode is enabled, the encoded button value isn't always
incremented by 32 for move movements events. [1]

I believe the correct fix to this issue is to detect mouse movement
events with no button down by checking if the "pressed button" is 0.
Which appears to indicate that no mouse button is pressed (in this
specific case). Whereas, the button value will be set to 1 when left
click is pressed for example.

I'm not sure if this change is fully correct for terminals which don't
support SGR mode.

[1] https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Extended-coordinates
2024-04-01 10:00:16 -04:00
Will McGugan
3fdea3d2a2
Merge pull request #4373 from TomJGooding/docs-app-fix-version-inline-mode-was-added
docs(app): fix version inline mode was added
2024-04-01 13:57:58 +01:00
TomJGooding
bca7ea7eac docs(app): fix version inline mode was added 2024-04-01 13:44:35 +01:00
Will McGugan
dddb6bc7f7
Merge pull request #4372 from Textualize/bump0550
bump 0.55.0
2024-04-01 13:25:36 +01:00
Will McGugan
fade360f86 bump 2024-04-01 13:20:23 +01:00
Will McGugan
b37f59c86e
Merge pull request #4300 from TomJGooding/fix-datatable-change-max-height-back-to-100-percent
fix(datatable): change max-height back to 100%
2024-04-01 13:17:16 +01:00
Will McGugan
a98c00aae2
Merge branch 'main' into fix-datatable-change-max-height-back-to-100-percent 2024-04-01 13:17:01 +01:00
Will McGugan
a2ba9ebbe7
Merge pull request #4369 from Textualize/auto-width
width fix
2024-04-01 13:14:19 +01:00
Will McGugan
6dabbca461 multi line label 2024-04-01 10:05:55 +01:00
Will McGugan
a073be8918 snapshot 2024-03-31 16:55:46 +01:00
Will McGugan
ba1d8a99cc changelog 2024-03-31 16:39:58 +01:00
Will McGugan
ac10c2acdf width fix 2024-03-31 16:38:48 +01:00
Will McGugan
3626ace4a6 caps 2024-03-30 15:23:44 +00:00
Will McGugan
95cc146373
Merge pull request #4362 from davep/correct-selection-list-docs
Clarify that `SelectionList` can use Rich Text
2024-03-30 13:43:40 +00:00
Will McGugan
7aa903bb04
Merge pull request #4331 from TomJGooding/fix-button-render-with-console-markup
fix(button): render with console markup
2024-03-30 13:43:10 +00:00
Will McGugan
f7bdfe1181
Merge pull request #4342 from Textualize/priority-footer
Fix priority bindings not appearing in Footer when key clashes with a…
2024-03-30 13:42:36 +00:00
Will McGugan
ef4da3f01a
Merge pull request #4352 from Textualize/text-area-undo-redo-fix
Fix issue with undo and redo in TextArea
2024-03-30 13:42:02 +00:00
Will McGugan
ccc71b0648
Merge pull request #4350 from Textualize/text-area-new-languages
TextArea new languages
2024-03-30 13:41:31 +00:00
Will McGugan
a6cc76ddf2
Merge branch 'main' into text-area-new-languages 2024-03-30 13:41:25 +00:00
Will McGugan
179207a926
Merge pull request #4365 from TomJGooding/docs-clarify-unit-of-time
docs: clarify unit of time
2024-03-30 13:40:32 +00:00
Will McGugan
2396905ac0
Merge pull request #4343 from Textualize/inline
inline driver
2024-03-30 13:34:15 +00:00
Will McGugan
18a556b605 tweak 2024-03-30 13:25:41 +00:00
Will McGugan
cc19158a9a inline docs 2024-03-30 13:21:29 +00:00
TomJGooding
c0151ca32b clarify notification timeout 2024-03-30 10:15:46 +00:00
TomJGooding
b5334ec865 docs: clarify unit of time 2024-03-30 09:53:28 +00:00
Will McGugan
0e20fa09c0 changelog 2024-03-30 09:45:26 +00:00
Will McGugan
95de754cd3 docs 2024-03-30 09:42:27 +00:00
Will McGugan
5606a40f07 don't make demo inline 2024-03-30 09:00:18 +00:00
Will McGugan
623d21b47b don't inline calculator 2024-03-29 16:49:57 +00:00
Will McGugan
8cdeb47562 fix linux driver 2024-03-29 16:46:57 +00:00
Will McGugan
ea63e8e0b4 Note about run inline 2024-03-29 16:36:44 +00:00
Will McGugan
dac035b6a0 add mouse to win driver 2024-03-29 16:27:11 +00:00
Will McGugan
f236ec31a1 fix cursor position 2024-03-29 16:22:37 +00:00
Dave Pearson
bb01433de7
Clarify that SelectionList can use Rich Text
Fixes the misleading text that prompted #4361.
2024-03-29 15:08:44 +00:00
Will McGugan
e039a19ca0 style inline 2024-03-29 13:15:41 +00:00
Will McGugan
34f37c84a3 docstrings 2024-03-29 13:09:03 +00:00
Will McGugan
80855c8814 fix inline-height 2024-03-29 12:55:31 +00:00
Will McGugan
9ec1ea8bc2 fix clear on refresh 2024-03-28 15:16:12 +00:00
Darren Burns
eb3fd3bc0c
Add a test around an undo/redo crash 2024-03-28 14:40:43 +00:00
Will McGugan
a77f85ee65 inline no clear 2024-03-28 14:08:02 +00:00
Darren Burns
d260f898c4
Some renaming of vars in TextArea, using top instead of from_location 2024-03-28 14:01:19 +00:00
Darren Burns
c5f485c638
Fix issue with undo and redo in TextArea 2024-03-28 13:40:21 +00:00
Will McGugan
cc8ee74cf8 mouse support 2024-03-28 13:12:51 +00:00
Will McGugan
1e7438c60a translate cursor position 2024-03-28 11:42:23 +00:00
Darren Burns
c3a73620d4
Update CHANGELOG 2024-03-28 10:43:19 +00:00
Darren Burns
8b845b2209
Update snapshots for text area languages 2024-03-28 10:28:53 +00:00
Darren Burns
70a026c5ea
Supporting a few new languages 2024-03-28 10:19:14 +00:00
Dave Pearson
69cc80b8f9
Merge pull request #4349 from valentingregoire/main
Typo
2024-03-28 08:40:47 +00:00
Valentin Grégoire
f05d727c01
fix: Fix the fix to fix the typo 😵. 2024-03-28 09:22:55 +01:00
Valentin Grégoire
2a06e288ea
fix: Typo fixed. 2024-03-28 09:22:27 +01:00
Will McGugan
4247753d54 calculate inline height 2024-03-27 17:53:44 +00:00
Will McGugan
69d1de6a34 clear on resize 2024-03-27 15:56:34 +00:00
Darren Burns
b5a646d7a9
Remove spelling check from toml scm file 2024-03-27 15:56:29 +00:00
Will McGugan
1c75dd117e inline driver 2024-03-27 15:47:03 +00:00
Darren Burns
95675eaf1f
Fix Golang snippet in TextArea highlighting test 2024-03-27 15:21:32 +00:00
Darren Burns
ef7cf2c9eb
Merge branch 'main' of github.com:Textualize/textual into text-area-new-languages 2024-03-27 14:30:50 +00:00
Darren Burns
732cf54ffc
Adding Rust support 2024-03-27 14:29:52 +00:00
Darren Burns
64ded73eb0
Add JavaScript and Bash to TextArea 2024-03-27 14:16:45 +00:00
Darren Burns
51258f1e46
Remove elm, add go support 2024-03-27 14:08:45 +00:00
Darren Burns
b1895aebb6
Revert Python 2024-03-27 13:42:10 +00:00
TomJGooding
e3e39ab126 Merge branch 'main' into fix-datatable-change-max-height-back-to-100-percent 2024-03-26 22:36:34 +00:00
TomJGooding
0d72f0547a
Merge branch 'main' into fix-button-render-with-console-markup 2024-03-26 17:34:59 +00:00
Will McGugan
f0fa8d5474 add mouse to inline 2024-03-26 16:52:07 +00:00
Darren Burns
8269152a24
Merge branch 'priority-footer' of github.com:Textualize/textual into priority-footer 2024-03-26 16:40:13 +00:00
Darren Burns
9b058e4624
Fix changelog 2024-03-26 16:33:11 +00:00
Will McGugan
5aaa88d609 inline driver 2024-03-26 16:30:03 +00:00
Darren Burns
cfbedc9cb2
Merge branch 'main' into priority-footer 2024-03-26 15:36:44 +00:00
Will McGugan
9550f0b83b
Merge pull request #4341 from TomJGooding/docs-fix-changelog
docs: fix changelog
2024-03-26 14:12:43 +00:00
Darren Burns
6ffc977a57
Merge branch 'priority-footer' of github.com:Textualize/textual into priority-footer 2024-03-26 13:03:02 +00:00
Darren Burns
0106314103
Minimising the change 2024-03-26 13:02:40 +00:00
Darren Burns
f81a308fc1
Merge branch 'main' into priority-footer 2024-03-26 12:44:49 +00:00
Darren Burns
0db1b980f5
Update CHANGELOG.md 2024-03-26 12:41:58 +00:00
Darren Burns
9296c85128
Fix priority bindings not appearing in Footer when key clashes with a key on the focused widget 2024-03-26 12:38:16 +00:00
TomJGooding
88a6296dcd
move updates to unreleased 2024-03-26 11:55:37 +00:00
TomJGooding
b8f91bd016
docs: fix changelog 2024-03-26 11:45:35 +00:00
Will McGugan
755603550a
Merge pull request #4340 from davep/see-also-mounts
Add see-alsos relating to (un)mounting
2024-03-26 11:35:48 +00:00
Will McGugan
fc56863f0f event docstrings 2024-03-26 11:34:50 +00:00
Will McGugan
4b0b633d20
Merge branch 'main' into fix-button-render-with-console-markup 2024-03-26 11:19:11 +00:00
Dave Pearson
fe7a8998f8
Add see-also relating to (un)mounting 2024-03-26 11:17:21 +00:00
Will McGugan
f432a008a3
Merge pull request #4267 from TomJGooding/feat-document-add-start-and-end-properties
feat(document): add start and end properties
2024-03-26 11:15:54 +00:00
Will McGugan
ff77cf756b
Merge pull request #4333 from Textualize/fix-4282
Tests re-raise exceptions that happen inside `Widget.compose`
2024-03-26 11:09:20 +00:00
Rodrigo Girão Serrão
809f38341f
Fix tests. 2024-03-26 10:56:36 +00:00
Will McGugan
5cc4ee3c2a
Merge pull request #4339 from Textualize/bump0540
version bump
2024-03-26 10:53:57 +00:00
Will McGugan
b8a1a5ceb8 version bump 2024-03-26 10:52:28 +00:00
Will McGugan
ba9a91369f
Merge pull request #4313 from davep/bug/4248/click-markup-crash
Fix a crash in `run_action` when an action is an empty tuple
2024-03-26 10:51:50 +00:00
Dave Pearson
482cf24ce9
Merge pull request #4335 from davep/less-busy-suggest
Delay suggestions until an `Input` is modified
2024-03-26 10:48:51 +00:00
Dave Pearson
459e35666a
Merge pull request #4338 from davep/add-unmount-to-docs
Add the Unmount event to the docs
2024-03-26 09:48:11 +00:00
Dave Pearson
02824980ab
Merge pull request #4337 from davep/unmount-typo-fix
Fix a typo in the docstring for the Unmount event
2024-03-26 09:45:10 +00:00
Dave Pearson
2299fdfc9c
Add the Unmount event to the docs 2024-03-26 08:55:08 +00:00
Dave Pearson
525613f806
Fix a typo in the docstring for the Unmount event 2024-03-26 08:49:14 +00:00
Dave Pearson
a68698df08
Update the CGANGELOG 2024-03-26 08:30:47 +00:00
Dave Pearson
07b6710c5d
Remove trailing whitespace from the CHANGELOG 2024-03-26 08:29:39 +00:00
Dave Pearson
17ca14d119
Merge branch 'main' into less-busy-suggest 2024-03-26 08:29:15 +00:00
Darren Burns
d55410cc0d
Text area flicker fix (#4334) 2024-03-25 16:45:58 +00:00
Dave Pearson
543881e5fb
Update the snapshot test 2024-03-25 15:54:35 +00:00
Dave Pearson
4f55ca70d1
Change Input to not suggest right away, but to wait for an edit
See #3811.
2024-03-25 15:43:51 +00:00
Rodrigo Girão Serrão
8c48a3b95d
Surface exceptions from workers to testing frameworks. 2024-03-25 15:25:09 +00:00
Rodrigo Girão Serrão
74ab96763f
Add test to ensure exception reraised in tests. 2024-03-25 14:43:22 +00:00
Rodrigo Girão Serrão
a80f3089dd
Let pilot reraise exceptions from Widget.compose.
This is probably an edge-case that wasn't covered in the original PR that introduced the machinery (namely App._exception and App._exception_event) that I want to leverage here.

Related PRs: #2754
2024-03-25 14:35:44 +00:00
Dave Pearson
ea8138913e
Merge pull request #4324 from davep/the-space-must-not-flow
Squish whitespace in `Markdown`
2024-03-25 14:26:22 +00:00
Dave Pearson
352d9913ed
Fall back to the most basic whitespace matching
Seems we're happy that \s along won't be too greedy.
2024-03-25 14:02:18 +00:00
TomJGooding
667b1e81c0 update changelog 2024-03-25 13:28:19 +00:00
TomJGooding
2b2e2a8436 add start default implementation 2024-03-25 13:26:18 +00:00
TomJGooding
012fdf6c6f Merge branch 'main' into feat-document-add-start-and-end-properties 2024-03-25 13:18:46 +00:00
TomJGooding
7cca00df38 update changelog 2024-03-25 13:07:21 +00:00
TomJGooding
caca848a25 Merge branch 'main' into fix-button-render-with-console-markup 2024-03-25 12:56:30 +00:00
Dave Pearson
30ff0e8ce5
Let the re module RE cache to the work 2024-03-25 11:35:50 +00:00
Dave Pearson
f85efe3005
Tweak comment
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-03-25 11:29:03 +00:00
Dave Pearson
a5ecd2a502
Merge pull request #4323 from davep/test-welcome 2024-03-25 11:01:09 +00:00
Dave Pearson
c177d133ff
Add fenced code blocks to the snapshot test 2024-03-25 10:39:22 +00:00
TomJGooding
7ace58dbc0 fix(button): render with console markup 2024-03-24 11:28:10 +00:00
Will McGugan
9b6ce771c1
Merge pull request #4315 from Textualize/ping-pong-fix
fix for flicker
2024-03-23 11:11:58 +00:00
Will McGugan
0955254ca9 clear on size updte 2024-03-23 10:59:33 +00:00
Will McGugan
ea3404d01d Merge branch 'main' into ping-pong-fix 2024-03-23 10:57:41 +00:00
Dave Pearson
0907da1e2d
Final form of the warning 2024-03-21 15:33:23 +00:00
Dave Pearson
6e8512feb0
Add snapshot testing for Markdown whitespace squishing 2024-03-21 15:20:30 +00:00
Dave Pearson
62d1ec4557
Collapse spaces and tabs in text in Markdown
See #4321.
2024-03-21 14:37:11 +00:00
Will McGugan
5170a64bb2 changelog 2024-03-21 13:54:11 +00:00
Will McGugan
b8802e1878 error message 2024-03-21 13:47:16 +00:00
Will McGugan
f8fd9b4245 sctrollbars 2024-03-21 13:44:44 +00:00
Dave Pearson
103915c236
Add a snapshot test for the Welcome widget 2024-03-21 13:42:54 +00:00
Dave Pearson
e2be2f4f2c
Merge branch 'main' into bug/4248/click-markup-crash 2024-03-20 15:48:47 +00:00
Dave Pearson
154a631593
Merge pull request #4302 from davep/event-docs-tidy
Tidy up the `Event`-related documentation
2024-03-20 15:12:20 +00:00
Dave Pearson
cd608c182c
Fix likely copy/paste-o
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-03-20 15:02:57 +00:00
Will McGugan
c4b7ee43a9
Merge branch 'main' into ping-pong-fix 2024-03-20 14:46:42 +00:00
Will McGugan
9286175501
Merge pull request #4317 from Textualize/button-width-fix
Fixed auto-sizing of buttons in auto containers
2024-03-20 14:46:10 +00:00
Will McGugan
4ff172a3c8 remove comment [skip ci] 2024-03-20 14:43:51 +00:00
Will McGugan
df99eb9c41 snapshot 2024-03-20 14:30:19 +00:00
Will McGugan
7e3b8d19da comment 2024-03-20 14:21:42 +00:00
Dave Pearson
ab2e790d2f
Remove unnecessary Return sections from MouseEvent properties 2024-03-20 14:21:13 +00:00
Dave Pearson
bb4ec2d755
Add docstrings to each of the MouseEvent attributes 2024-03-20 14:20:15 +00:00
Will McGugan
f094588cfb snapshot 2024-03-20 14:19:50 +00:00
Will McGugan
3c3b66aa95
Merge pull request #4316 from Textualize/eta-progress
fix setting total by attribute
2024-03-20 14:17:28 +00:00
Dave Pearson
35ef9c851e
Ensure the Key event's attributes are documented 2024-03-20 13:50:26 +00:00
Dave Pearson
fa40ec8b73
Add a docstring to MouseRelease.mouse_position 2024-03-20 13:48:37 +00:00
Dave Pearson
96ef63a99d
Add a docstring to MouseCapture.mouse_position 2024-03-20 13:48:08 +00:00
Dave Pearson
8d0edb1633
Tidy the documentation for the Show event 2024-03-20 13:46:56 +00:00
Dave Pearson
19f2e3b386
Tidy the documentation for the ScreenSuspend event 2024-03-20 13:41:57 +00:00
Will McGugan
e9e26228de changelog 2024-03-20 13:10:12 +00:00
Will McGugan
8d66a6712c fix setting total by attribute 2024-03-20 13:07:13 +00:00
Will McGugan
e63e2b8014 changelog 2024-03-20 12:43:59 +00:00
Will McGugan
889615ccde snapshot 2024-03-20 11:52:04 +00:00
Will McGugan
1ae6493a16 fix for flicker 2024-03-20 11:46:35 +00:00
Dave Pearson
411834f62b
Tidy the documentation for the ScreenResume event 2024-03-20 11:42:43 +00:00
Dave Pearson
d99c684b6c
Tidy the documentation for the Resize event 2024-03-20 11:39:46 +00:00
Dave Pearson
e2df78cdfd
Tidy the documentation for the Print event 2024-03-20 11:35:40 +00:00
Dave Pearson
d061d6f56a
Tidy the documentation for the Paste event 2024-03-20 11:24:41 +00:00
Dave Pearson
1d4fcedabc
Tidy the documentation for the MouseUp event 2024-03-20 11:21:30 +00:00
Dave Pearson
a1f09bbe3d
Tidy the documentation for the MouseScrollUp event 2024-03-20 11:20:08 +00:00
Dave Pearson
a33b5c3123
Tidy the documentation for the MouseScrollDown event 2024-03-20 11:18:25 +00:00
Dave Pearson
5da3a127d3
Tidy the documentation for the MouseRelease event 2024-03-20 11:16:41 +00:00
Dave Pearson
80e3cff60b
Tidy the documentation for the MouseMove event 2024-03-20 11:14:49 +00:00
Dave Pearson
9d53193c45
Tidy the title for the MouseCapture event 2024-03-20 11:07:31 +00:00
Dave Pearson
d524f6c279
Tidy the documentation for the MouseDown event 2024-03-20 11:07:05 +00:00
Dave Pearson
e5c5fe4fd9
Tidy the documentation for the MouseCapture event 2024-03-20 11:05:15 +00:00
Dave Pearson
ff4ad4e8a5
Tidy the documentation for the Mount event 2024-03-20 11:02:26 +00:00
Dave Pearson
e075fcbc2f
Tidy the documentation for the Load event 2024-03-20 11:01:33 +00:00
Dave Pearson
f1dcfffc89
Tidy the documentation for the Leave event 2024-03-20 10:57:28 +00:00
Dave Pearson
9c33d85526
Tidy the documentation for the Key event 2024-03-20 10:56:04 +00:00
Dave Pearson
4a838ac86b
Tidy the docs for the Hide event 2024-03-20 10:54:32 +00:00
Dave Pearson
41f29522ee
Tidy up the docs for Focus 2024-03-20 10:51:59 +00:00
Dave Pearson
3ed0b54514
Add see-also for Leave to Enter 2024-03-20 10:50:03 +00:00
Dave Pearson
1a38d62526
Add see also for Enter and Leave to Click 2024-03-20 10:49:32 +00:00
Dave Pearson
1b07accc1e
Tidy up the docs for the Enter event 2024-03-20 10:48:10 +00:00
Dave Pearson
d09072f456
Tidy up the docs for the DescendantFocus event 2024-03-20 10:45:34 +00:00
Dave Pearson
573e4c59ec
Tidy up the docs for the DescendantBlur event 2024-03-20 10:43:03 +00:00
Dave Pearson
f0c4dcced1
Tidy up the docs for the Click event
Note the reliance on directing the reader to the `MouseEvent` documentation
so they can get the full range of information on properties and methods. Try
as I might I can't convince mkdocstrings to "borrow" from the parent class
in any meaningful way.
2024-03-20 10:39:53 +00:00
Will McGugan
513c008c89
Merge pull request #4314 from Textualize/listview-fix
delay scrolling when setting active
2024-03-20 09:51:58 +00:00
Will McGugan
88896ba7e4
Merge pull request #4303 from Textualize/will-typing
typing
2024-03-19 16:09:32 +00:00
Will McGugan
06eca29998 snapshot test 2024-03-19 15:44:18 +00:00
Dave Pearson
79bd06380c
Don't use frontmatter where it isn't necessary 2024-03-19 15:43:27 +00:00
Dave Pearson
db1a76d225
Tidy Blur 2024-03-19 15:42:23 +00:00
Dave Pearson
638df75c88
Tidy AppFocus 2024-03-19 15:29:47 +00:00
Will McGugan
c2973dcb98 snapshot 2024-03-19 15:27:55 +00:00
Dave Pearson
d43b458ab8
Tidy AppBlur 2024-03-19 15:27:28 +00:00
Will McGugan
a80f69df6f delay scrolling 2024-03-19 15:12:18 +00:00
Dave Pearson
2e7205fe0f
Merge branch 'main' into event-docs-tidy 2024-03-19 14:45:04 +00:00
Dave Pearson
564010f273
Improve the log text
Also make it read something akin to English. O_o
2024-03-19 14:35:18 +00:00
Dave Pearson
90c1a8b7fc
Move responsibility for the empty action to App._broken_event 2024-03-19 14:23:01 +00:00
Will McGugan
ba92c5708c revert that 2024-03-19 13:40:30 +00:00
Will McGugan
921bb9d093 ignore this one 2024-03-19 13:40:30 +00:00
Dave Pearson
8a995fbcc1
Fix a crash in run_action when an action is an empty tuple
Fixes #4248.
2024-03-19 13:39:26 +00:00
Will McGugan
3a1b3bdd44
Merge branch 'main' into will-typing 2024-03-19 13:38:26 +00:00
Dave Pearson
d3df9d0061
Merge pull request #4309 from davep/bug/4301/undo-display-corruption
Fix `TextArea` display corruption/crash after undo of reverse-selected replacement
2024-03-19 12:41:12 +00:00
Will McGugan
9985b3f93c
Merge pull request #4312 from Textualize/react-mount
call immediately if possible
2024-03-19 12:02:56 +00:00
Will McGugan
b54bd55e24 call immediately if possible 2024-03-19 11:51:30 +00:00
Dave Pearson
738920da66
Update the ChangeLog 2024-03-19 09:14:14 +00:00
Dave Pearson
7b8024c374
Merge branch 'main' into bug/4301/undo-display-corruption 2024-03-19 09:12:30 +00:00
Dave Pearson
78308abfdf
Use to and bottom of edit when undoing a batch
This switches from using from_location and to_location, which might be
reversed in terms of "sort order", but are still a valid selection.

Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-03-19 08:48:47 +00:00
Dave Pearson
5a6c741139
Revert initial test fix for #4301
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-03-19 08:48:06 +00:00
Dave Pearson
7d06a12768
Cover a few more cases when testing #4301
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-03-19 08:39:35 +00:00
Dave Pearson
6da3087f20
Ensure that TextArea inserts via keyboard have sorted start/end
Fixes #4301
2024-03-18 15:53:33 +00:00
Will McGugan
a396389048 bump 2024-03-18 15:36:25 +00:00
Will McGugan
f6581c6dbe
Merge pull request #4308 from Textualize/fix-data-bind
fix data binding
2024-03-18 15:35:02 +00:00
Will McGugan
0f23865478 changelog [skip ci] 2024-03-18 15:34:13 +00:00
Dave Pearson
2cb60d6284
Add a test for #4301 2024-03-18 15:27:49 +00:00
Will McGugan
eb8af582d6 fix data binding 2024-03-18 15:26:41 +00:00
Will McGugan
2c52fd7f80
Merge pull request #4306 from Textualize/bump0530
bump
2024-03-18 14:29:02 +00:00
Will McGugan
4c4d53c46c bump 2024-03-18 14:27:54 +00:00
Will McGugan
0dbc25213a
Merge pull request #4305 from Textualize/reactive-from-task
watch with async
2024-03-18 14:21:41 +00:00
Will McGugan
f9427e449f
Merge pull request #4298 from Textualize/tabbed-content-issue-dave-didnt-fix
Enable unsetting active tab pane / tab
2024-03-18 14:15:18 +00:00
Will McGugan
c8823d8525 watch with async 2024-03-18 14:08:16 +00:00
Will McGugan
0ce3f43894
Merge pull request #4271 from Textualize/eta
improved eta
2024-03-18 13:45:34 +00:00
Will McGugan
1c7c1c2e2e test fix 2024-03-18 13:37:03 +00:00
Will McGugan
4922845149
Merge branch 'main' into eta 2024-03-18 13:31:54 +00:00
Will McGugan
7b118576d9 update less often 2024-03-18 13:20:25 +00:00
Will McGugan
71fc96c1f9 fix reset 2024-03-18 13:13:06 +00:00
Will McGugan
88d15244bd watch progress 2024-03-18 13:02:01 +00:00
Will McGugan
c062b8e51a changelog 2024-03-18 12:11:52 +00:00
Will McGugan
f9ec6eadac typing 2024-03-18 12:10:23 +00:00
Dave Pearson
a47be5a347
Add AppFocus and AppBlur to the events
Now that they're supported by more than just textual-web it makes sense to
expose them a little better in the docs.
2024-03-18 11:50:50 +00:00
Dave Pearson
2b1088b2ac
Sort the index of events 2024-03-18 11:22:57 +00:00
Dave Pearson
1f03c0724a
Add the Print event to the list of events in the reference 2024-03-18 11:22:19 +00:00
Dave Pearson
eb396f065f
Link MouseCapture and MouseRelease with see-alsos 2024-03-18 10:46:32 +00:00
Dave Pearson
016308d965
Tidy up the Resize event docs 2024-03-18 10:41:29 +00:00
Dave Pearson
e8c9c13f7e
Tidy up the Paste event docs 2024-03-18 10:40:01 +00:00
Dave Pearson
58b0b1b4f0
Tidy up the MouseUp event docs 2024-03-18 10:39:14 +00:00
Dave Pearson
f442bbcd3c
Tidy up the MouseScrollUp event docs 2024-03-18 10:38:41 +00:00
Dave Pearson
bf07041d6f
Tidy up the MouseScrollDown event docs 2024-03-18 10:38:01 +00:00
Dave Pearson
5f1a8362f6
Tweak the documentation for MouseRelease 2024-03-18 10:33:52 +00:00
Dave Pearson
2fdccc83be
Tidy up the MouseMove event docs 2024-03-18 10:33:01 +00:00
Dave Pearson
298c10057c
Tidy up the MouseDown event docs 2024-03-18 10:32:25 +00:00
Dave Pearson
e421403ea7
Tweak the documentation for MouseCapture 2024-03-18 10:06:45 +00:00
Dave Pearson
5bc0276f3d
Update the documentation for the Key event 2024-03-18 10:03:47 +00:00
Dave Pearson
b34c9ac24b
Add missing attribute table content to DescendantFocus docs 2024-03-18 10:00:01 +00:00
Dave Pearson
d5dfadccf5
Add missing attribute table content to DescendantBlur docs 2024-03-18 09:58:51 +00:00
Dave Pearson
b50c9dc709
De-duplicate the bubble and verbose checkboxen
Go with the ones that are provided in the event's docstring; it makes more
sense to go with that as the documentation is with the code, and so if
anything changes the maintainer is far more likely to remember to change it.
2024-03-18 09:52:19 +00:00
Will McGugan
7122baa036 just typing 2024-03-16 15:14:19 +00:00
Dave Pearson
97cefa616a
Merge pull request #4297 from davep/scroll-through-disabled-widgets 2024-03-15 23:31:02 +00:00
Will McGugan
5a9977e424 tests 2024-03-15 13:55:07 +00:00
Will McGugan
5b3a2e8626
Merge pull request #4299 from davep/allow-disabled-placeholder
Add `disabled` keyword to `Placeholder`.
2024-03-15 11:28:25 +00:00
TomJGooding
90895f2f85 fix(datatable): change max-height back to 100%
The `max-height` of the `DataTable` was changed to 100vh rather than
100% in #3566, because at the time this caused issues with auto height
containers, as described in #2975.

However this issue was later fixed in #3814. This PR changes the
`max-height` of the `DataTable` back to 100%, as 100vh will actually
break common layouts and seems no longer required to workaround this
auto height issue.

Fixes #4286.
2024-03-14 18:16:03 +00:00
Dave Pearson
fd98030e3b
Dim a placeholder when it's disabled 2024-03-14 15:45:13 +00:00
Dave Pearson
17405ee648
Update the ChangeLog 2024-03-14 15:10:04 +00:00
Dave Pearson
83a0ee2294
Add the disabled keyword to Pladeholder 2024-03-14 15:08:37 +00:00
Rodrigo Girão Serrão
edd5b60fdd
Tweak tests to check unsetting works. 2024-03-14 15:06:50 +00:00
Rodrigo Girão Serrão
bd5c9eecdd
Remove redundant messages.
Now that the watcher for `TabbedContent.active` accepts empty strings and emits the message `TabbedContent.Cleared` if `active` is the empty string, we don't need to explicit emit the messages in these two locations.
2024-03-14 15:06:00 +00:00
Rodrigo Girão Serrão
8aba7b7c71
Active tab / tab pane can be unset.
Although we can't quite see what would be a use case for a tabbed content where there are tabs and none of them are active (for example, it's weird to think of a browser where we have a bunch of tabs open and none of them are active...), we decided we'd let that possibility exist in code: the reactive `.active` can be set to the empty string both on `Tabs` and on `TabbedContent`.
2024-03-14 14:56:21 +00:00
Dave Pearson
ac15f145b1
Let mouse scroll events pass through disabled widgets
Fixes #4242
2024-03-14 14:42:24 +00:00
Dave Pearson
6b8790ebca
Merge pull request #4295 from davep/ungreedyify-textarea
Fix `TextArea` holding on to focus when hidden while doing a mouse selection
2024-03-14 13:25:49 +00:00
Dave Pearson
96ee5033f2
Merge branch 'main' into ungreedyify-textarea 2024-03-14 11:39:10 +00:00
Dave Pearson
8c0077af16
Merge pull request #4291 from davep/ungreedyify-scrollbars
Ensure scrollbars get Show/Hide messages
2024-03-14 11:38:07 +00:00
Dave Pearson
5aa05f3a67
Ensure that the mouse is released when a TextArea gets hidden
Fixes #4292.
2024-03-14 11:36:52 +00:00
Rodrigo Girão Serrão
35e99b7f1a
Merge pull request #4290 from Textualize/minor-tidbits
Minor touch-ups
2024-03-14 10:58:33 +00:00
Dave Pearson
fc62ba8874
Update the CHANGELOG 2024-03-13 16:17:53 +00:00
Dave Pearson
b684ae5c59
Move the scrollbar check/post into the widget base class 2024-03-13 16:15:20 +00:00
Dave Pearson
bae8eb8b18
Ensure scrollbars get Show/Hide messages
The idea here being that while scrollbars are attached to widgets, they
exist outwith of the DOM, and so don't seem to take part in the usual flow
of show/hide messaging. This change checks, when posting a show/hide
message, if the widget receiving the message has scrollbars and if it does
the message is also sent to them too.

Fixes #4274.
2024-03-13 15:49:48 +00:00
Rodrigo Girão Serrão
c59a3c9ed5
Use '.set_reactive' method. 2024-03-13 14:09:33 +00:00
Rodrigo Girão Serrão
cd0c915557
Remove unused parameter. 2024-03-13 14:09:14 +00:00
Dave Pearson
c7370f3320
Merge pull request #4285 from davep/tabs-event-isolation
Ensure TabbedContent only handles tab messages intended for it
2024-03-12 16:47:53 +00:00
Dave Pearson
144deb8984
Merge pull request #4284 from davep/ctrl-k-kill-empty-line
Change `TextArea` to delete empty line on ctrl+k
2024-03-12 16:00:25 +00:00
Dave Pearson
ea1687b975
Merge branch 'main' into tabs-event-isolation 2024-03-12 15:54:09 +00:00
Dave Pearson
611ae5dae2
Spell kbd correctly
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-03-12 15:51:06 +00:00
Dave Pearson
18aa36b65c
Merge pull request #4283 from davep/tabbed-content-styling-isolation 2024-03-12 14:19:07 +00:00
Dave Pearson
406446ae54
Add a test for the tab message leakage 2024-03-12 13:53:26 +00:00
Dave Pearson
119f5dcc90
Ensure TabbedContent only handles tab messages intended for it
Fixes #4233.
2024-03-12 13:39:41 +00:00
Dave Pearson
19a9258997
Merge branch 'main' into tabbed-content-styling-isolation 2024-03-12 10:33:33 +00:00
Dave Pearson
5dab1332c1
Update the ChangeLog 2024-03-12 10:32:54 +00:00
Dave Pearson
367843e431
Change TextArea to delete empty line on ctrl+k
Following the expected behaviour for ctrl+k from Emacs (and so by extension
a text area on macOS -- see notes.app, or textedit.app, for example), this
adds an alternative action to TextArea that will delete to end of line or,
if the line is empty, will delete the line.

Also, to further enhance compatibility with expected ctrl+k behaviour, if
the cursor is on the end of the line and ctrl+k is pressed a delete-right is
performed.

Fixes #4277.
2024-03-12 10:21:53 +00:00
Dave Pearson
a14586f061
Add snapshot test 2024-03-12 09:32:25 +00:00
Dave Pearson
a7a0e3fe6d
Make the styling of tabs in TabbedContent less leaky
Fixes #4232
2024-03-12 09:13:51 +00:00
Dave Pearson
f2dc11cd80
Merge pull request #4280 from davep/leaky-select 2024-03-11 16:42:13 +00:00
Dave Pearson
109b845d26
Stop OptionList.OptionHighlighted leaking out of Select
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2024-03-11 16:06:34 +00:00
Will McGugan
7db2f4d20a fix bisect call 2024-03-11 13:41:45 +00:00
Will McGugan
a5bcbc6cfe
Merge pull request #4265 from davep/more-app-focus-blur
Enable `AppFocus` and `AppBlur` in terminal emulators
2024-03-11 13:29:20 +00:00
Will McGugan
e11b195175 Merge branch 'main' into eta 2024-03-11 13:11:12 +00:00
Dave Pearson
c768beb688
Add a snapshot test for AppBlur 2024-03-11 10:17:37 +00:00
Dave Pearson
02e9109b3b
Merge branch 'main' into more-app-focus-blur 2024-03-11 09:20:00 +00:00
Will McGugan
c796c87960 remove key, only available in 3.10 2024-03-10 15:28:08 +00:00
Will McGugan
5cff594512 tests 2024-03-10 15:16:38 +00:00
Will McGugan
a5a008b9ce
Merge pull request #4276 from Textualize/compute-fast
Compute fast
2024-03-10 12:02:37 +00:00
Will McGugan
05ec4ab08a fix typing 2024-03-09 18:17:11 +00:00
Will McGugan
e074d2137f comments 2024-03-09 18:08:12 +00:00
Will McGugan
fa0e090c24 ws 2024-03-09 18:06:12 +00:00
Will McGugan
e972425e8d optimize compute 2024-03-09 18:03:57 +00:00
Will McGugan
ec552f0bd9 simplify 2024-03-09 17:42:31 +00:00
Will McGugan
ea8e75661a snapshot 2024-03-09 12:44:22 +00:00
Will McGugan
372d8187e8 simplify 2024-03-07 16:55:13 +00:00
Will McGugan
670ea277b3 simplify 2024-03-07 16:43:18 +00:00
Will McGugan
cb6b1fba25 improved eta 2024-03-07 16:33:27 +00:00
Dave Pearson
4bb9b59473
Don't restore focus on AppFocus if something has focus
While the application is in an AppBlur state, it's possible that some code
could have been running that updated what's focused. It doesn't make sense
to have Textual itself override the dev's choice to have focus be somewhere
else (perhaps the result of some long-running background process, that
they've tabbed away from, and when they tab back they expect to be in a
specific control).

So here I tweak the code that restores the focused widget so that it only
restores if it's still the case that nothing has focus.
2024-03-07 15:31:05 +00:00
Dave Pearson
a687be955f
Update the ChangeLog
Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-03-07 15:23:02 +00:00
Dave Pearson
11fbf4f7fa
Update the docstrings of AppFocus and AppBlur
Remove the text so say they're only for textual-web, but make it clear
textual-web is supported, as are any other terminals that support the
required sequences.
2024-03-07 14:29:08 +00:00
Dave Pearson
f148e1fd18
Merge branch 'main' into more-app-focus-blur 2024-03-07 14:17:41 +00:00
Dave Pearson
f55610ee6b
Merge pull request #4256 from davep/message-tidy
Message posting clean-up
2024-03-07 14:16:37 +00:00
Dave Pearson
0d4de0b99d
Swap to using update 2024-03-07 13:48:46 +00:00
Dave Pearson
8c18c9e4b6
Add tests for AppFocus and AppBlur
These tests don't test the actual act of blurring or focusing the
application (that's kind of hard to do in tests, really). What it does do is
test that widget focus does the right thing after each of those app-level
events.
2024-03-07 11:28:47 +00:00
Dave Pearson
faea8faec9
Only restore widget focus if the widget belongs to the current screen
While the terminal window didn't have focus, anything can could happen. The
widget could be removed, the screen could change, etc. So by the time
AppFocus happens the widget might not be one to focus any more.

Initially I was just making it the focused widget anyway and letting the
focus-handling code do what it needed to do. Sending focus to a widget that
isn't part of the DOM any more isn't exactly a breaking problem; but...

One issue is that you can end up with App.focused saying that a widget is
focused that isn't in the DOM any more. We don't want that. So here I'm a
bit more defensive. This changes things so that we check that the widget's
screen is still the screen that's in play. If the widget has been removed it
won't have a parent and so can't find its screen. All of this means that if
the screen has changed *or* if the widget has been removed, we're covered.
2024-03-07 11:24:31 +00:00
Dave Pearson
68ac360c77
Merge branch 'main' into more-app-focus-blur 2024-03-07 10:23:44 +00:00
Dave Pearson
497dc544c3
Fix the problem of the focused widget being lost when app focus goes 2024-03-07 10:21:26 +00:00
Dave Pearson
d28596a22d
Add FocusIn/Out enable/disable support to the Windows driver 2024-03-07 09:28:23 +00:00
Dave Pearson
b96bc9a921
Simply use string comparison for bracketed paste checks 2024-03-07 09:20:08 +00:00
Dave Pearson
67b4d45375
Simply use string comparison for FocusIn/Out checks 2024-03-07 09:16:07 +00:00
TomJGooding
11443e8918 add tip to text area editing docs 2024-03-06 21:24:46 +00:00
TomJGooding
cb65d6e3b1 update changelog 2024-03-06 20:41:10 +00:00
TomJGooding
1759f2c1f9 feat(document): add start and end properties 2024-03-06 20:13:49 +00:00
Dave Pearson
f7460829c3
Merge pull request #4266 from TomJGooding/fix-switch-rename-clashing-action-toggle-method
fix(switch): rename clashing action toggle method
2024-03-06 20:04:24 +00:00
TomJGooding
2d6b38d007 fix(switch): rename clashing action toggle method
Rename `Switch.action_toggle` to `action_toggle_switch` to fix clash
with `DOMNode.action_toggle`. Fixes #4262.
2024-03-06 19:16:49 +00:00
Dave Pearson
f7d6dc89ed
Merge pull request #4264 from davep/clean-render-return-type
Clean render return type
2024-03-06 18:39:09 +00:00
Dave Pearson
2f13d7f176
Fix a copy/paste snafu 2024-03-06 16:38:37 +00:00
Dave Pearson
775d1b4615
Add support for XTerm FocusIn/FocusOut detection
This enables support for receiving and handling FocusIn and FocusOut
sequences, and turns then into AppFocus and AppBlur events.
2024-03-06 16:32:54 +00:00
Dave Pearson
32347897ef
Unquote a type hint
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-03-06 15:56:17 +00:00
Dave Pearson
a4d123b3ad
Mention the message changes in the ChangeLog
Mention them as breaking changes too; while this is an improvement that
shouldn't have a negative impact on applications, it's still something
developers should be aware of.
2024-03-06 15:01:25 +00:00
Dave Pearson
ec2677c081
Merge branch 'main' into message-tidy 2024-03-06 14:56:32 +00:00
Dave Pearson
3326ee41eb
Correct the Widget.render return type hint 2024-03-06 14:29:47 +00:00
Dave Pearson
535917e3b4
Correct the render return type hint in the docs example 2024-03-06 14:13:38 +00:00
Dave Pearson
006328fff2
Correct the type hint for App.render 2024-03-06 14:11:48 +00:00
Dave Pearson
3ce4977808
Clean up the return type for widget render methods
Use the type hint that is talked about in the documentation.

Fixes #4063.
2024-03-06 11:44:20 +00:00
Dave Pearson
95453fbcd7
Clean out trailing whitespace 2024-03-06 10:24:46 +00:00
Rodrigo Girão Serrão
826ffd4022
Merge pull request #4252 from Textualize/nested-tcss-accept-pseudo-classes
Add support for pseudo-classes in nested TCSS.
2024-03-05 11:05:04 +00:00
Dave Pearson
f6651ecc51
Remove a message we're not testing 2024-03-05 10:50:33 +00:00
Dave Pearson
b73f9c5196
Ensure Tree.NodeCollapsed is bubbbled in all DOM shapes
In support of #3869.
2024-03-05 10:46:17 +00:00
Rodrigo Girão Serrão
2a7e762058
Use __init_subclass__ instead of metaclass.
Relevant review comment: https://github.com/Textualize/textual/pull/4252#discussion_r1511505517
2024-03-05 10:44:32 +00:00
Dave Pearson
d95c3e98c1
Merge branch 'main' into message-tidy 2024-03-05 10:36:26 +00:00
Will McGugan
1f66811a16
Merge pull request #4255 from Textualize/await-complete 2024-03-05 10:35:09 +00:00
Dave Pearson
f8303afb95
Allow different expanded states in the extended tree tester 2024-03-05 10:35:08 +00:00
Dave Pearson
bc74e1d7b3
Ensure Tree.NodeExpanded is bubbbled in all DOM shapes
In support of #3869.
2024-03-05 10:26:06 +00:00
Dave Pearson
99928bccb7
Move posting TextArea.Changed to TextArea.load_text
The call to load_text needed fixing for messages too; and actually setting
TextArea.text calls this anyway.

In support of #3869.
2024-03-05 09:50:10 +00:00
Dave Pearson
8e630d79be
Ensure correct sender when posting TextArea.Changed
In support of #3869.
2024-03-05 09:47:50 +00:00
Dave Pearson
5acdee9c47
Post TextArea.Changed when TextArea.text is assigned
In support of #3869.
2024-03-05 09:45:49 +00:00
Dave Pearson
5bb61a730e
Tidy up trailing whitespace 2024-03-05 09:45:33 +00:00
Dave Pearson
51aa01eaf2
Ensure correct sender for Tabs.TabShown in all DOM shapes
In support of #3869.
2024-03-05 09:33:32 +00:00
Dave Pearson
e24556201f
Ensure correct sender for Tabs.TabHidden in all DOM shapes
In support of #3869.
2024-03-05 09:31:55 +00:00
Dave Pearson
6b30ff234e
Fix the sender for Cleared when calling remove_pane
In support of #3869.
2024-03-05 09:00:39 +00:00
Dave Pearson
1872057446
Fix the sender for Cleared when calling clear_panes
In support of #3869.
2024-03-05 08:50:04 +00:00
Will McGugan
19b3038956 docs 2024-03-04 18:33:59 +00:00
Will McGugan
7ed32428b2 Don't extend awaitable 2024-03-04 18:29:21 +00:00
Will McGugan
e3c7e1ce29 fix typing issues 2024-03-04 18:24:56 +00:00
Will McGugan
cb53ed3032
Merge pull request #4254 from TomJGooding/docs-loading-indicator-add-loading-reactive-tip
docs(loading indicator): add loading reactive tip
2024-03-04 17:43:37 +00:00
TomJGooding
313b1694b9 docs(loading indicator): add loading reactive tip 2024-03-04 17:35:14 +00:00
Dave Pearson
40a40d8d01
Update snapshot tests 2024-03-04 15:40:35 +00:00
Rodrigo Girão Serrão
e7846feef5
Merge branch 'main' into nested-tcss-accept-pseudo-classes 2024-03-04 15:38:31 +00:00
Rodrigo Girão Serrão
11804f8be1
Add tests / changelog. 2024-03-04 15:33:38 +00:00
Rodrigo Girão Serrão
6161dffbfe
Add support for pseudo-classes in nested TCSS.
To be able to disambiguate between selector:pseudo-class and declaration:rule-value in nested TCSS (see #4039 for the original issue and #4163 for a first attempt at solving this) we establish that selectors with widget type names always start with an upper case letter A-Z or an underscore _ whereas declarations always start with a lower case letter a-z.
When a user creates a widget subclass that doesn't conform to this, we issue a 'SyntaxWarning' to let the user know.
Because we do this with the standard module 'warnings', the warning can easily be supressed if the user has a good reason to create a widget subclass with a name starting with a lower case letter (which is valid Python, just unhelpful to Textual).
2024-03-04 15:32:17 +00:00
Dave Pearson
09bc4390cd
Ensure SelectionList.SelectionToggled is posted when calling toggle
In aid of #3869. This ensures that when the dev makes a call on
SelectionList.toggle, that SelectionList.SelectionToggled gets posted.
2024-03-04 15:21:19 +00:00
Dave Pearson
01f09daa5c
Ensure SelectionList.SelectionChanged gets posted in all DOM shapes
In aid of #3869.
2024-03-04 14:13:12 +00:00
Dave Pearson
4a3fbe6822
Add a test that SelectionList.toggle results in SelectionToggled
In aid of #3869. This will fail right now, this is a thing that needs to be
fixed.
2024-03-04 14:10:48 +00:00
Dave Pearson
f8dfe826c5
Ensure Select.Changed is posted when value is changed
In support of work on #3869.
2024-03-04 13:45:27 +00:00
Dave Pearson
d284ada75e
Add a test for getting Select.Changed on value change
This will fail right at the moment; the fix follows.

In support of work on #3869.
2024-03-04 11:43:15 +00:00
Will McGugan
396ddba974
Merge pull request #4244 from Textualize/sort-children
sort children method
2024-03-04 11:19:04 +00:00
Dave Pearson
8fd51d2e0b
Ensure that TableOfContentsUpdated is always posted
Until now it was possible, depending on the DOM, for this message to not
bubble. This ensures that this won't be an issue.

In support of work on #3869.
2024-03-04 11:13:22 +00:00
Dave Pearson
161576ae95
Add a test for Markdown.TableOfContentsUpdated being posted
In support of work on #3869.
2024-03-04 11:12:29 +00:00
Dave Pearson
25e3780504
Ensure Collapsed/Expanded message get sent on reactive change
Fixed Collapsible for the purposes of #3869.
2024-03-04 10:39:02 +00:00
Dave Pearson
f45df6a0b4
Add a test for getting a message when changing collapsible via reactive
This is currently a failing test; work relating to #3869 should make this
pass.
2024-03-04 10:16:46 +00:00
Dave Pearson
6b96f20611
Correct a Collapsible's test description 2024-03-04 10:04:17 +00:00
Dave Pearson
79341a5b4c
Add a test for getting a message when changing collapsible via reactive
This is currently a failing test; work relating to #3869 should make this
pass.
2024-03-04 09:50:05 +00:00
Dave Pearson
49b03d5412
Correct a Collapsible's test description 2024-03-04 09:38:50 +00:00
Dave Pearson
f0dfa4c1db
Tidy up a couple of typing issues in the Collapsible tests 2024-03-04 09:24:00 +00:00
Will McGugan
4a729c670e addendum 2024-03-03 13:32:04 +00:00
Will McGugan
da56de9793
Merge pull request #4247 from xavierog/adjust-richlog-highlighter-type
Adjust RichLog.highlighter type to allow for custom highlighters.
2024-03-02 10:03:04 +00:00
Xavier G
e6631fa8fe
Adjust RichLog.highlighter type to allow for custom highlighters.
Without an explicit type, tools like mypy assume RichLog.highlighter must be a ReprHighlighter instead of a Highlighter.
2024-03-01 23:21:58 +01:00
Will McGugan
d5c898d169 docstring 2024-03-01 18:19:27 +00:00
Will McGugan
2282da5755 don't need useful types 2024-03-01 18:14:09 +00:00
Will McGugan
a1f882bdc7 comment 2024-03-01 17:36:08 +00:00
Will McGugan
90f4df20d7 keyword only 2024-03-01 17:33:11 +00:00
Will McGugan
698f9273c2 sort 2024-03-01 17:27:22 +00:00
Will McGugan
9661019178 typing 2024-03-01 17:11:20 +00:00
Will McGugan
ff5c6e949b changelog 2024-03-01 16:53:06 +00:00
Will McGugan
082b0930ce snapshot test 2024-03-01 16:52:12 +00:00
Will McGugan
c350f244b8 sort children method 2024-03-01 11:14:55 +00:00
Dave Pearson
c27a3b479c
Merge pull request #4234 from Textualize/fix-await-complete-typing
Fix typing in AwaitComplete
2024-02-29 16:05:21 +00:00
Rodrigo Girão Serrão
7919b8bedb
Merge pull request #4240 from Textualize/fix-styles-reference-order
Fix docs order.
2024-02-29 11:54:48 +00:00
Rodrigo Girão Serrão
bdaf164ffd
Fix docs order. 2024-02-29 11:35:12 +00:00
Will McGugan
6157cb9950
Merge pull request #4236 from Textualize/focus-parent
check parent focus
2024-02-29 11:10:40 +00:00
Dave Pearson
d61537eff6
Merge pull request #4235 from davep/set-message-sender 2024-02-28 17:04:08 +00:00
Dave Pearson
1d44e6ea19
Update message.py
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-02-28 17:00:03 +00:00
Will McGugan
ac0b180f04 fix test 2024-02-28 16:32:01 +00:00
Will McGugan
76c5edbd24 docstring 2024-02-28 16:30:24 +00:00
Will McGugan
68e5fe0572 changelog 2024-02-28 15:45:08 +00:00
Will McGugan
770920a590 tests 2024-02-28 15:44:08 +00:00
Will McGugan
cd4a553101 change to focusable widget logic 2024-02-28 15:39:16 +00:00
Will McGugan
ab9ea3f742 check parent focus 2024-02-28 15:18:30 +00:00
Dave Pearson
fe737bc4da
Expand the docstring for Message.set_sender 2024-02-28 15:04:59 +00:00
Dave Pearson
c97a25a94d
Expose Message._set_sender as a utility method
Also have it return self to allow for useful chaining.
2024-02-28 14:15:32 +00:00
Darren Burns
580e971c02
Fix typing in AwaitComplete 2024-02-28 14:02:23 +00:00
Will McGugan
08e78b8959
Merge pull request #4228 from TomJGooding/fix-catch-exception-in-tooltip-clearing
fix: catch exception in tooltip clearing
2024-02-28 13:58:12 +00:00
Will McGugan
20aff3c9f2
Merge pull request #4229 from TomJGooding/docs-devtools-add-worker-to-log-groups
docs(devtools): add worker to log groups
2024-02-28 13:57:24 +00:00
TomJGooding
1060790470 docs(devtools): add worker to log groups 2024-02-27 21:26:11 +00:00
Darren Burns
e293b42209
Write to RichLog at last known width if widget is not visible. (#4223) 2024-02-27 19:21:51 +00:00
TomJGooding
31e9fb5f1c update get_widget_at docstring 2024-02-27 17:27:48 +00:00
TomJGooding
7f70f704cf fix-catch-exception-in-tooltip-clearing 2024-02-27 17:20:38 +00:00
Darren Burns
e22f081876
Animation docs fix (#4226)
* Docstring fixes

* Hardcoding the animation steps to fix animation docs example

* Calling ease correctly
2024-02-27 16:38:18 +00:00
Will McGugan
64102e51df
Merge pull request #4206 from Textualize/recompose
Allow recompose
2024-02-27 15:28:25 +00:00
Rodrigo Girão Serrão
8e44e047b2
Markdown reloads when component classes change. (#4185) 2024-02-27 13:42:15 +00:00
Dave Pearson
8c519a5d8a
Merge pull request #4222 from davep/watcher-context
Correct the sender of a reactive-posted message
2024-02-27 12:57:00 +00:00
Darren Burns
201bd5b00d
Fix collapsible method name clash (#4221)
* Rename action_toggle to _action_toggle

* Rename action_toggle to action_toggle_collapsible

* Update changelog
2024-02-27 12:16:36 +00:00
Dave Pearson
1a1b71c9f2
Correct the sender of a reactive-posted message
While investigating #3869 it became apparent that there was an edge case
where it was possible to have messages that should bubble, not bubble,
depending on how and where the message was posted in respect to a reactive
watcher.

See https://github.com/Textualize/textual/issues/3869#issuecomment-1964300873

This fixes that.
2024-02-27 10:53:43 +00:00
Will McGugan
8ce51eb21f
Merge branch 'main' into recompose 2024-02-27 10:32:57 +00:00
Darren Burns
363c9d4cc8
Map ANSI colours (#4192)
* Begin to map ansi colours

* ANSI theme mapping

* Snapshot test for ansi theme mapping

* Add light/dark mode snapshots for ansi theme mapping

* Update CHANGELOG

* Snapshot update failing command palette tests

* Import default ansi theme from textual instead of rich

* Use a dedicated light theme

* Fix snapshot tests

* Regenerate all snapshots in a single run

* Hardcode a color on the search icon emoji to work around test issues

* Alternative approach

* snapshot update

* Simplify a loop in app.py
2024-02-27 10:23:26 +00:00
Darren Burns
60c7f742a0
Fix for TextArea styling bug when on alternate screen (#4220)
* Fix for TextArea styling bug when on alternate screen

* Add snapshot test for alternate screen

* Update changelog
2024-02-27 10:21:30 +00:00
Will McGugan
0844025271
Merge branch 'main' into recompose 2024-02-26 16:27:15 +00:00
Will McGugan
aa6cc5b9db
Merge pull request #4219 from Textualize/grid-gutter-fix
Grid gutter fix
2024-02-26 16:18:40 +00:00
Rodrigo Girão Serrão
dff54e941c
Merge pull request #4217 from Textualize/pilot-resize-terminal
Implement 'Pilot.resize_terminal'.
2024-02-26 16:07:21 +00:00
Rodrigo Girão Serrão
f2ff9ca6fb
Add test. 2024-02-26 16:03:10 +00:00
Will McGugan
1909ba42d6 potential fix 2024-02-26 15:42:08 +00:00
Will McGugan
44e936c413 test fix 2024-02-26 15:03:44 +00:00
Will McGugan
e00ace7082 test fix 2024-02-26 14:53:23 +00:00
Rodrigo Girão Serrão
9e1910c878
Implement 'Pilot.resize_terminal'. 2024-02-26 14:38:20 +00:00
Will McGugan
fcb496d056 fix formatting 2024-02-26 14:31:22 +00:00
Will McGugan
1ea59dfe28
Update src/textual/reactive.py
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-26 14:27:21 +00:00
Will McGugan
9d3735ad64
Update src/textual/app.py
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-26 14:25:55 +00:00
Will McGugan
f8be478ccb
Update docs/guide/reactivity.md
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-26 14:24:05 +00:00
Will McGugan
ba13c3c390
Update docs/guide/reactivity.md
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-26 14:23:55 +00:00
Will McGugan
850544b8f8 test fix 2024-02-26 14:18:33 +00:00
Will McGugan
ca079a8447 missing snapshot test 2024-02-26 13:39:15 +00:00
Will McGugan
c0d4711f27 expose recompose 2024-02-26 13:37:15 +00:00
Will McGugan
15bc341ec8 no async needed 2024-02-26 13:34:49 +00:00
Will McGugan
14c5ac8dea redundant 2024-02-26 13:34:03 +00:00
Will McGugan
45e9cd6062 comma 2024-02-26 13:33:24 +00:00
Will McGugan
d056ac5faf snapshot test 2024-02-26 13:26:02 +00:00
Will McGugan
c8aa3fc9d2 blank line 2024-02-26 13:18:36 +00:00
Will McGugan
9ad320cc77 force init 2024-02-26 13:16:25 +00:00
Will McGugan
474aa54f32 Recompose test 2024-02-26 12:52:30 +00:00
Will McGugan
7327987a18
Merge pull request #4211 from Textualize/content-cache-fix
Fix content size cache
2024-02-26 11:35:51 +00:00
Will McGugan
22a413d87c changelog [skipci] 2024-02-26 11:14:17 +00:00
Will McGugan
24d341fadd call clear cached dimensions 2024-02-26 11:08:10 +00:00
Will McGugan
a52115bac9 Fix content size cache 2024-02-26 10:38:31 +00:00
Dave Pearson
a2b72c5134
Merge pull request #4210 from davep/fix-dirtree-path 2024-02-26 10:23:35 +00:00
Dave Pearson
a9c51612e7
Add a unit test for changing DirecotryTree.path 2024-02-26 10:01:41 +00:00
Dave Pearson
17ba51697d
Fix DirectoryTree.path no longer reacting to new values
Fixes #4208
2024-02-26 09:31:30 +00:00
Will McGugan
274c0f6c08 words 2024-02-25 18:30:42 +00:00
Will McGugan
3093d5297c recompose docs 2024-02-25 18:24:45 +00:00
Will McGugan
e701a8fad3 docs 2024-02-25 17:07:12 +00:00
Will McGugan
8ec477069d docstring, recompose over repaint 2024-02-25 11:55:57 +00:00
Will McGugan
d06a53a8e4 test fix 2024-02-24 16:50:04 +00:00
Will McGugan
b17c0a6f74 experimental recompose support 2024-02-24 16:45:43 +00:00
TomJGooding
65c4cce215
fix(tree-sitter): remove slow html highlight patterns (#4195)
* fix(tree-sitter): remove slow html highlight patterns

Fixes #4152 by removing all
`((element (start_tag (tag_name) @_tag)` patterns from the `html.scm`
highlights query file.

These patterns will cause a segfault on relatively large documents
and even just one seems a massively expensive operation from some
quick testing.

All tests pass after removing these and I couldn't see they were
actually used anywhere in syntax highlighting, but please correct me
if I'm wrong!

* run tests in ci

* Update changelog

---------

Co-authored-by: Darren Burns <darrenb900@gmail.com>
2024-02-22 13:11:28 +00:00
Dave Pearson
de3ac12a5e
Merge pull request #4191 from davep/shy-tooltips 2024-02-22 12:20:23 +00:00
Dave Pearson
cc7a3d4746
Add tests for tooltip cleaning 2024-02-22 10:13:25 +00:00
Dave Pearson
9340acda55
Add tests for showing tooltips 2024-02-22 09:59:53 +00:00
Dave Pearson
126b63eb68
Fix Pilot not letting App.mouse_position update 2024-02-22 09:39:19 +00:00
Dave Pearson
89041ee1ca
Merge branch 'main' into shy-tooltips 2024-02-21 14:55:14 +00:00
Dave Pearson
78453d00e3
Merge pull request #4196 from davep/sparkline-sequence
Allow a `deque` to work as data for a `Sparkline`
2024-02-21 14:52:48 +00:00
Dave Pearson
75c2d12279
Delay the conversion of sparkline data into a list
Given that Sparkline.data is a property that the user can assign to, it
makes more sense to wait until we need to bucket the data before we cast
over to being a list.
2024-02-21 14:28:20 +00:00
Dave Pearson
2e03616c05
Update the ChangeLog 2024-02-21 14:20:57 +00:00
Dave Pearson
30ae7ea24e
Merge branch 'main' into sparkline-sequence 2024-02-21 14:20:03 +00:00
Dave Pearson
677504b712
Add testing of some more sequence types with Sparkline 2024-02-21 14:11:23 +00:00
Dave Pearson
0c2dd6303d
Ensure Sparkline data is always a sequence
Fixes #3899.
2024-02-21 13:51:39 +00:00
Dave Pearson
600e739df9
Add a sparkline test for different sequence types
Test for situations akin to #3899
2024-02-21 13:49:46 +00:00
Dave Pearson
a884f6fcd4
Merge branch 'main' into shy-tooltips 2024-02-21 09:40:33 +00:00
Dave Pearson
88e56a2654
Swap the calling of the tooltip refresh to a signal-based approach 2024-02-21 09:34:51 +00:00
TomJGooding
5aaa6b539c
docs: fix tcss syntax highlighting (#4176)
Sorry but I spotted that the syntax highlighting was wrong in my last PR to
add tcss to the docs (#4171) where I had blindly copy pasted the code.

A quick grep found a few other places in the docs where the syntax
highlighting was wrong. This PR corrects the language to css.
2024-02-21 08:37:56 +00:00
TomJGooding
6de5e67277
fix(text area): update code editor constructor (#4172)
* fix(text area): update code editor constructor

Update the `TextArea.code_editor` convenience constructor to include the
new `read_only` and `max_checkpoints` attributes.

* update changelog

* add meta test for code editor params

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-02-21 08:18:54 +00:00
Will McGugan
366b635528 index page 2024-02-20 21:52:44 +00:00
Will McGugan
ce36053352 docs and example 2024-02-20 21:38:47 +00:00
Dave Pearson
517723ccc4
Clear a tooltip when a screen is pushed 2024-02-20 15:57:17 +00:00
Will McGugan
3285097cea blog post words 2024-02-20 15:54:07 +00:00
Will McGugan
823d32aa3a
Merge pull request #4193 from Textualize/docstrings-query
Docstrings query
2024-02-20 15:37:33 +00:00
Will McGugan
87d7101449 words 2024-02-20 15:35:50 +00:00
Will McGugan
83f75ed62f words 2024-02-20 15:35:04 +00:00
Will McGugan
46bc9a0498 docstrings 2024-02-20 15:33:05 +00:00
Dave Pearson
5509d76441
Improve the docstring for the tooltip relevancy check
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-02-20 15:26:38 +00:00
Will McGugan
741a42ec9d Add dolphie 2024-02-20 14:46:37 +00:00
Will McGugan
c586b199cf remove elia 2024-02-20 14:28:45 +00:00
Will McGugan
266154d2ef screenshots 2024-02-20 14:24:22 +00:00
Will McGugan
82d3934005 typo 2024-02-20 13:14:23 +00:00
Dave Pearson
4a3733b45f
Update the ChangeLog 2024-02-20 13:14:19 +00:00
Dave Pearson
4e8639c6c5
Merge branch 'main' into shy-tooltips 2024-02-20 13:12:26 +00:00
Dave Pearson
5e077735bb
Ensure any pending tooltip timer gets stopped on clear 2024-02-20 13:06:31 +00:00
Dave Pearson
6585443a85
Simplify an if 2024-02-20 13:00:01 +00:00
Will McGugan
20a8d5d508 docs 2024-02-20 11:56:52 +00:00
Dave Pearson
f412c1d2d5
Initial test of clearing tooltip on layout change 2024-02-20 11:55:29 +00:00
Will McGugan
74875ae927
Merge pull request #4190 from Textualize/bump0521
bump to 0.52.1
2024-02-20 10:39:09 +00:00
Will McGugan
ff4522a319 bump 2024-02-20 10:38:24 +00:00
Dave Pearson
5595371c5a
Merge pull request #4189 from davep/issue/4188/syntax-warning
Fix syntax warning in `LoadingIndicator` code
2024-02-20 10:06:21 +00:00
Dave Pearson
79cbb50195
Update the ChangeLog 2024-02-20 09:07:25 +00:00
Dave Pearson
89d5d60ab7
Correct the animation level check in LoadingIndicator
See #4188
2024-02-20 09:05:40 +00:00
Will McGugan
5d21a0adef
Merge pull request #4184 from Textualize/bump0520
Bump to 0.52.0
2024-02-19 16:23:49 +00:00
Will McGugan
da7171f7f1 changelog 2024-02-19 16:21:34 +00:00
Rodrigo Girão Serrão
9561d4751d
Merge pull request #4183 from Textualize/batch-async-context-manager
Adds a `Widget.batch` async context manager
2024-02-19 16:12:35 +00:00
Rodrigo Girão Serrão
9f5e653061
Merge branch 'main' into batch-async-context-manager 2024-02-19 16:04:20 +00:00
Rodrigo Girão Serrão
ba17dfb56f
Merge pull request #4139 from Textualize/add-widget-lock
Adds `Widget.lock` attribute.
2024-02-19 16:03:35 +00:00
Dave Pearson
1604c2b65c
Merge pull request #4181 from davep/screenshot-location
Add support for specifying the screenshot location and filename
2024-02-19 15:58:44 +00:00
Rodrigo Girão Serrão
dfeea7df87
Merge branch 'main' into add-widget-lock 2024-02-19 15:55:32 +00:00
Will McGugan
e8491687d3
Merge pull request #4177 from Textualize/driver-signals
signals env var
2024-02-19 15:50:46 +00:00
Rodrigo Girão Serrão
808f536258
'Widget.remove_children' should remove direct children only.
Relevant feedback comment: https://github.com/Textualize/textual/pull/4183#discussion_r1494705055.
2024-02-19 15:43:26 +00:00
Will McGugan
2536e466ea
Merge branch 'main' into driver-signals 2024-02-19 15:18:35 +00:00
Dave Pearson
c52ad4ee99
Merge branch 'main' into screenshot-location 2024-02-19 15:17:44 +00:00
Will McGugan
30443badf5 changelog 2024-02-19 15:07:58 +00:00
Dave Pearson
269c08a407
Merge pull request #4178 from davep/tabs-animation-on-click-fix
Remove double-up scrolling of active tab
2024-02-19 15:05:48 +00:00
Rodrigo Girão Serrão
ef45e72520
Merge branch 'main' into batch-async-context-manager 2024-02-19 14:51:27 +00:00
Dave Pearson
8ef3a64619
Don't double-scroll tab into view on keyboard move 2024-02-19 14:49:41 +00:00
Rodrigo Girão Serrão
9d29bc395d
Add 'Widget.batch'. 2024-02-19 14:48:42 +00:00
Rodrigo Girão Serrão
0fabb97955
Merge pull request #4062 from Textualize/textual-animations
Add support for env variable TEXTUAL_ANIMATIONS
2024-02-19 14:44:38 +00:00
Will McGugan
3a2e68a5e8
Merge pull request #4182 from Textualize/version_typing
remove dynamic version
2024-02-19 14:42:15 +00:00
Will McGugan
b6f565c664 restore dynamic behaviour 2024-02-19 14:32:05 +00:00
Dave Pearson
d3a2a0a30b
Allow empty path or filename to also mean default 2024-02-19 14:32:03 +00:00
Will McGugan
6438811a18 remove dynamic version 2024-02-19 14:21:45 +00:00
Dave Pearson
88efbbabee
Link the ChangeLog to the PR 2024-02-19 14:08:29 +00:00
Rodrigo Girão Serrão
8ae4f0403d
Add 'selector' to 'Widget.remove_children'. 2024-02-19 14:00:56 +00:00
Dave Pearson
002c8f3c6d
Merge branch 'main' into screenshot-location 2024-02-19 13:44:19 +00:00
Rodrigo Girão Serrão
5cb2471bdb
Merge branch 'main' into textual-animations 2024-02-19 13:40:00 +00:00
Dave Pearson
69a2be9be3
Add new items to the ChangeLog 2024-02-19 13:26:22 +00:00
Dave Pearson
e396cf4ef1
Add support for setting the auto-screenshot filename 2024-02-19 12:07:28 +00:00
Dave Pearson
e39e0b5329
Allow None to be passed as the path to mean use the default 2024-02-19 11:34:21 +00:00
Dave Pearson
de1ee9fddd
Make the screenshot location a string on None 2024-02-19 11:32:51 +00:00
Rodrigo Girão Serrão
dded0ecb5b
Merge branch 'main' into add-widget-lock 2024-02-19 11:00:32 +00:00
Dave Pearson
8d4489e106
Remove double-up scrolling of active tab
Follows on from #4159; in that PR we do the scrolling when seeing the active
tab (because that could be done from code and it might not be in view and it
needs to be dragged into view); this resulted in the unintended consequence
of the animation being kicked off twice, presumably causing the previous
instance to be forced to finish instantly, thus making it look like it
didn't animate at all.

Fixes #4169

(or at least, as I'm testing it, it fixes #4169, but some doubt has be
raised about this so this is first offered as a double-check)
2024-02-19 08:40:42 +00:00
Will McGugan
fe182918ba docstring 2024-02-18 14:11:45 +00:00
Will McGugan
9a9b002037 signals env var 2024-02-18 14:07:39 +00:00
Will McGugan
2b3c71c8f5
Merge pull request #4171 from TomJGooding/docs-events-add-tcss-to-on-decorator-examples
docs(events): add tcss to on decorator examples
2024-02-16 17:47:46 +00:00
TomJGooding
c680bd7905 docs(events): add tcss to on decorator examples 2024-02-16 17:41:55 +00:00
Will McGugan
8007c8f40e
Merge pull request #4165 from Textualize/bump0510
version bump
2024-02-15 17:30:14 +00:00
Will McGugan
c2bb30957a version bump 2024-02-15 17:19:43 +00:00
Will McGugan
764f1fb8ad
Merge pull request #4159 from davep/tabbed-content-active-issue
Fix active tab not coming into view plus `TabbedContent.TabActivated` not always been posted
2024-02-15 17:17:35 +00:00
Rodrigo Girão Serrão
ae35fd5627
Merge pull request #4040 from Textualize/improve-nested-tcss
Allow lists of nested selectors and allow styles after nested CSS blocks
2024-02-15 16:43:25 +00:00
Darren Burns
159a54e109
Update tests/css/test_nested_css.py 2024-02-15 16:34:54 +00:00
Dave Pearson
c6a7944791
Add support for a TEXTUAL_SCREENSHOT_LOCATION environment variable
This will work in conjunction with TEXTUAL_SCREENSHOT, most of the time.
2024-02-15 16:26:53 +00:00
Dave Pearson
8050acdf82
Allow for older Pythons 2024-02-15 14:40:37 +00:00
Dave Pearson
d5a1a3ef86
Improve the TabActivated history unit test 2024-02-15 14:33:45 +00:00
Darren Burns
3abc8ee577
Text area fixes (#4157)
* Initial undo related machinery added to TextArea

* Initial undo implementation

* Basic undo and redo

* Some more fleshing out of undo and redo

* Skeleton code for managing TextArea history

* Initial implementation of undo & redo checkpointing in TextArea

* Increase checkpoint characters

* Restoring the selection in the TextArea and then restoring it on undo

* Adding docstrings to undo_batch and redo_batch in the TextArea

* Batching edits of the same type

* Batching edits of the same type

* Keeping edits containing newlines in their own batch

* Checking for newline characters in insertion or replacement during undo checkpoint creation. Updating docstrings in history.py

* Fix mypy warning

* Performance improvement

* Add history checkpoint on cursor movement

* Fixing merge conflict in Edit class

* Fixing error in merge conflict resolution

* Remove unused test file

* Remove unused test file

* Initial testing of undo and redo

* Testing for undo redo

* Updating lockfile

* Add an extra test

* Fix: setting the `text` property programmatically should invalidate the edit history

* Improving docstrings

* Rename EditHistory.reset() to EditHistory.clear()

* Add docstring to an exception

* Add a pause after focus/blur in a test

* Forcing CI colour

* Update focus checkpoint test

* Try to force color in pytest by setting --color=yes in PYTEST_ADDOPTS in env var on Github Actions

* Add extra assertion in a test

* Toggle text_area has focus to trigger checkpoint in history

* Apply grammar/wording suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Making max checkpoints configurable in TextArea history

* Improve a docstring

* Update changelog

* Spelling fixes

* More spelling fixes

* Americanize spelling of tab_behaviour (->tab_behavior)

* Update CHANGELOG regarding `tab_behaviour`->`tab_behavior`

* Various fixes

* Various fixes and improvements

* Updating tests to account for themes always being non-None

* Update CHANGELOG.

* Add TextArea.read_only to reactive attr table in TextArea docs

* Update TextArea docs regarding new features

* Cleaning up some typing issues

* Add actions for undo and redo

* Fix a typo

* Fix wording in docs/widgets/text_area.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Re-add return type hint

* PR feedback and fixing typos

* Mark breaking change in CHANGELOG

* Add undo/redo to docstring

* Add note on undo/redo bindings

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-15 14:21:13 +00:00
Rodrigo Girão Serrão
86d4245e39
Merge branch 'main' into improve-nested-tcss 2024-02-15 14:09:26 +00:00
Rodrigo Girão Serrão
3c18e47466
Test nested CSS worked at higher level.
Addresses review feedback. See the three comments starting at https://github.com/Textualize/textual/pull/4040#issuecomment-1934279826.
2024-02-15 14:08:42 +00:00
Rodrigo Girão Serrão
b13a215372
Merge pull request #4162 from Textualize/fix-changelog-version
Fix Changelog header version.
2024-02-15 12:05:30 +00:00
Rodrigo Girão Serrão
9ca997b1cd
Fix Changelog header version. 2024-02-15 11:58:40 +00:00
Dave Pearson
e75779fed6
Merge pull request #4154 from davep/command-palette-default-hits 2024-02-15 11:48:41 +00:00
Dave Pearson
5cc1361da3
Tidy TabbedContent._watch_active
The "with prevent" was covering more code than was necessary. While it
doesn't make a whole load of difference, here I make it clear what bit of
code actually needs the prevention.
2024-02-15 10:53:06 +00:00
Dave Pearson
907eaffba2
Update the ChangeLog 2024-02-15 10:49:37 +00:00
Dave Pearson
c4373dcdd8
Only post TabbedContent.TabActivated if active is truthy 2024-02-15 10:36:58 +00:00
Dave Pearson
5d9e563410
Fix assignment to TabbedContent.active not posting the appropriate message
Fixes #4150
2024-02-15 10:33:20 +00:00
Dave Pearson
a2d6eec979
Tidy up some typing errors in _on_tabs_tab_activated
These have been kicking around for a wee while; made sense to clean them up
now.
2024-02-15 10:29:17 +00:00
Dave Pearson
ce40cdae25
Merge branch 'main' into tabbed-content-active-issue 2024-02-15 10:19:24 +00:00
Dave Pearson
45f1325587
Accept docstring tweak
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-15 09:56:43 +00:00
Dave Pearson
7bd48fd440
Merge branch 'main' into command-palette-default-hits 2024-02-15 09:39:30 +00:00
Dave Pearson
3971449c16
Tidy up a suggested edit to the discover docs 2024-02-15 09:37:47 +00:00
Dave Pearson
efb8b48347
Tweak the layout of the discover description
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-15 09:28:45 +00:00
juftin
c8d64362db fix(text-area): tree-sitter-languages pin 2024-02-14 16:09:45 -07:00
juftin
c9fac897e5 feat(text-area): new languages 2024-02-14 15:12:23 -07:00
juftin
e25ccfb594 fix(text-area): updated existing languages 2024-02-14 10:30:18 -07:00
Dave Pearson
ed9a8f7b7c
Fix active tab not coming into view
This fixes one of the issues reported in #4150.
2024-02-14 13:49:38 +00:00
Darren Burns
fa4f75fd25
Text area undo redo (#4124)
* Initial undo related machinery added to TextArea

* Initial undo implementation

* Basic undo and redo

* Some more fleshing out of undo and redo

* Skeleton code for managing TextArea history

* Initial implementation of undo & redo checkpointing in TextArea

* Increase checkpoint characters

* Restoring the selection in the TextArea and then restoring it on undo

* Adding docstrings to undo_batch and redo_batch in the TextArea

* Batching edits of the same type

* Batching edits of the same type

* Keeping edits containing newlines in their own batch

* Checking for newline characters in insertion or replacement during undo checkpoint creation. Updating docstrings in history.py

* Fix mypy warning

* Performance improvement

* Add history checkpoint on cursor movement

* Fixing merge conflict in Edit class

* Fixing error in merge conflict resolution

* Remove unused test file

* Remove unused test file

* Initial testing of undo and redo

* Testing for undo redo

* Updating lockfile

* Add an extra test

* Fix: setting the `text` property programmatically should invalidate the edit history

* Improving docstrings

* Rename EditHistory.reset() to EditHistory.clear()

* Add docstring to an exception

* Add a pause after focus/blur in a test

* Forcing CI colour

* Update focus checkpoint test

* Try to force color in pytest by setting --color=yes in PYTEST_ADDOPTS in env var on Github Actions

* Add extra assertion in a test

* Toggle text_area has focus to trigger checkpoint in history

* Apply grammar/wording suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Making max checkpoints configurable in TextArea history

* Improve a docstring

* Update changelog

* Spelling fixes

* More spelling fixes

* Americanize spelling of tab_behaviour (->tab_behavior)

* Update CHANGELOG regarding `tab_behaviour`->`tab_behavior`

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-02-14 13:11:14 +00:00
Dave Pearson
f982dd7672
Update the ChangeLog 2024-02-14 10:22:41 +00:00
Dave Pearson
bd5fb23d82
Merge branch 'main' into command-palette-default-hits 2024-02-14 10:21:42 +00:00
Dave Pearson
66c19fab01
Make it clear we're talking about discovery hits 2024-02-14 10:20:46 +00:00
Dave Pearson
4f6f15a066
Add a note about best practice of the user of discover 2024-02-14 10:08:54 +00:00
Dave Pearson
cbb44bb50c
Mention the discover method in the docs 2024-02-14 10:06:00 +00:00
Dave Pearson
a705c34965
Fix a case typo that already existed in the document 2024-02-14 10:05:38 +00:00
Dave Pearson
51d7f28e09
Clarify what Provider.discover should yield up 2024-02-14 09:45:57 +00:00
Dave Pearson
92ed4bfaa9
Clarify a choice in the heart of the command palette search
For the reader who has made it this far, highlight the point at which the
crucial decision is made.
2024-02-14 09:35:39 +00:00
Will McGugan
b736c93a5e words 2024-02-13 16:24:16 +00:00
Dave Pearson
267926d321
Have the provider discovery snapshot differ in search and discovery
While it would normally be the case that these things would be the same; for
the purposes of this test have them different so we know if search ever
leaks into discovery for some bizarre reason.
2024-02-13 15:44:01 +00:00
Dave Pearson
5ef45e9cff
Add a snapshot test for command palette discovery 2024-02-13 15:38:04 +00:00
Darren Burns
e6ad1bd991
Text area read only (#4151)
* Add read_only reactive

* Using nested CSS in TextArea and adding COMPONENT_CLASS for read-only cursor

* Applying/removing CSS class `.-read-only` in TextArea

* Preventing some edits in read-only mode.

* Clearer distinction between user/keyboard driven edits and programmatic edits

* Ensure we refresh cursor correctly when pressing key in read-only mode

* Add test of paste in read-only mode

* Fix typo in docstring

* Ensure "delete line" keybinding doesnt move cursor in read_only mode in TextArea

* Add clarification to docs based on issue #4145

* Add test to ensure read-only cursor colour

* Update CHANGELOG

* Fix cursor styling in CSS on read-only

* Fix a docstring

* Improving docstrings

* Improving docstrings

* Simplify fixtures

* Test to ensure API driven editing still works on TextArea.read_only=True
2024-02-13 15:16:57 +00:00
Dave Pearson
9a8ab7d374
Add a unit test for provider discovery 2024-02-13 14:52:26 +00:00
Dave Pearson
e1be32cf34
Handle showing discovery results when the input goes empty 2024-02-13 13:24:41 +00:00
Dave Pearson
ec32ed5032
Throw in a walrus because reasons 2024-02-13 12:48:52 +00:00
Dave Pearson
e59fd0e2a2
Deduplicate the collection of system commands in the provider 2024-02-13 12:43:24 +00:00
Dave Pearson
97371c13a3
Tidy up some typing 2024-02-13 11:50:36 +00:00
Dave Pearson
a272c6de96
Alpha sort discovered hits in the correct order 2024-02-13 11:50:08 +00:00
Dave Pearson
3847b50e2b
Refine the command palette discovery system somewhat 2024-02-13 11:37:16 +00:00
Dave Pearson
6a6c04040e
Proof-of-concept "discovery" phase for the command palette 2024-02-12 17:32:44 +00:00
Dave Pearson
b1ae27e92c
Remove a type warning 2024-02-12 15:19:18 +00:00
Darren Burns
db4760b3b7
Add default syntax mapping to CSS theme in TextArea (#4149)
* Add default syntax mapping to CSS theme in TextArea

* Update CHANGELOG
2024-02-12 11:37:07 +00:00
Will McGugan
6b14305837 typo 2024-02-11 15:46:15 +00:00
Will McGugan
00eb1dcac0 new blog 2024-02-11 14:19:48 +00:00
Will McGugan
adecf4aae8 fix year 2024-02-11 11:40:30 +00:00
Will McGugan
e1749ac36a changelog 2024-02-09 18:23:10 +00:00
Will McGugan
718e54e6b9
Merge pull request #4142 from Textualize/tint-fix
Fix issue with tint applied to ANSI colors
2024-02-09 18:20:58 +00:00
Will McGugan
40863d0c2d version bump 2024-02-09 18:10:23 +00:00
Will McGugan
fcc96c3238 ansi fix 2024-02-09 18:09:31 +00:00
Will McGugan
ca3d9f67b8
Merge pull request #4140 from Textualize/bump0500
version bump
2024-02-08 17:35:34 +00:00
Will McGugan
7d8efa01ed changelog 2024-02-08 17:34:44 +00:00
Will McGugan
d857b64905 version bump 2024-02-08 17:33:53 +00:00
Rodrigo Girão Serrão
6b1e1660b0
Never prevent the button click effect.
See https://github.com/Textualize/textual/pull/4062#discussion_r1483127123.
2024-02-08 16:41:05 +00:00
Rodrigo Girão Serrão
14f83e57a1
Move AnimationLevel to _types.
See review comment: https://github.com/Textualize/textual/pull/4062#discussion_r1483111016.
2024-02-08 16:38:42 +00:00
Will McGugan
16656e62e4
Merge pull request #4001 from ggozad/fix/textarea-markdown-respect-theme
Make TextArea, MarkdownFence respect theme changes.
2024-02-08 14:54:21 +00:00
Dave Pearson
690ca0dc43
Remove unused import 2024-02-08 14:15:35 +00:00
Dave Pearson
29fad94c3e
Simplify the retheme method
Also use get_child_by_type to ensure it's just our child (not really
necessary but more in keeping with the makeup of the widget).
2024-02-08 13:58:09 +00:00
Dave Pearson
88dfe45dcc
Keep Black happy 2024-02-08 13:46:23 +00:00
Dave Pearson
4568747c6b
Merge branch 'main' into fix/textarea-markdown-respect-theme 2024-02-08 11:55:56 +00:00
Rodrigo Girão Serrão
8400a68b7c
Add Widget.lock, remove Tree.lock. 2024-02-08 11:54:01 +00:00
Dave Pearson
70d3af799c
Rename the code theme reactives
This helps make it clear that we're talking about themes for the code in
Markdown, rather than a whole Markdown theme.
2024-02-08 11:51:34 +00:00
Dave Pearson
4260ef5057
Add docstrings to the dark and light theme properties 2024-02-08 11:39:21 +00:00
Dave Pearson
b2c373780e
Remove layout and repaint
I'm not sure these are needed.
2024-02-08 11:38:54 +00:00
Will McGugan
bd20c04869
Merge pull request #4138 from Textualize/ansi-fix
always perform ansi filter
2024-02-08 11:29:56 +00:00
Will McGugan
718f6989da
Merge branch 'main' into ansi-fix 2024-02-08 11:29:45 +00:00
Will McGugan
91e253e4f5 release version 2024-02-08 11:29:08 +00:00
Rodrigo Girão Serrão
7c7dec0bb1
Merge pull request #4030 from Textualize/external-watch-fix-init
External watch fix init
2024-02-08 11:20:53 +00:00
Will McGugan
eb313ab743 snapshots 2024-02-08 11:11:57 +00:00
Will McGugan
d15f506095 version bump 2024-02-08 10:55:33 +00:00
Will McGugan
6673ac0119 always perform ansi filter 2024-02-08 10:53:33 +00:00
Rodrigo Girão Serrão
8b349e315b
Add test.
See third paragraph of https://github.com/Textualize/textual/pull/4030#discussion_r1481995473.
2024-02-08 10:49:20 +00:00
Rodrigo Girão Serrão
2bd85897c0
Fix test.
See first two paragraphs of https://github.com/Textualize/textual/pull/4030#discussion_r1481995473.
2024-02-08 10:48:53 +00:00
Rodrigo Girão Serrão
a3984c39da
Fix bug with watch.
Review comment: https://github.com/Textualize/textual/pull/4030#discussion_r1481683768
2024-02-07 17:08:15 +00:00
Rodrigo Girão Serrão
1e682c2647
Update tests/test_reactive.py
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-02-07 16:34:24 +00:00
Rodrigo Girão Serrão
3313787118
Merge branch 'main' into improve-nested-tcss 2024-02-07 14:15:27 +00:00
Rodrigo Girão Serrão
dc81c3b781
Merge branch 'main' into external-watch-fix-init 2024-02-07 13:47:28 +00:00
Rodrigo Girão Serrão
794e489b92
Merge branch 'main' into external-watch-fix-init 2024-02-07 13:46:36 +00:00
Rodrigo Girão Serrão
872025ba26
Improve tests.
Relevant review comment: https://github.com/Textualize/textual/pull/4030#pullrequestreview-1851846568
2024-02-07 13:38:51 +00:00
Will McGugan
b28ad500a3
Merge pull request #4130 from TomJGooding/docs-changelog-fix-0-49-release-date
docs(changelog): fix 0.49 release date
2024-02-07 13:20:16 +00:00
TomJGooding
3ec8ce51c2
docs(changelog): fix 0.49 release-date 2024-02-07 13:12:44 +00:00
Will McGugan
d2a586b94a
Merge pull request #4129 from Textualize/bump0490
version  bump
2024-02-07 13:07:40 +00:00
Will McGugan
e5893124f1 version bump 2024-02-07 12:52:43 +00:00
Will McGugan
a697a2d937
Merge pull request #4100 from TomJGooding/fix-option-list-add-max-height-to-fix-scrolling
fix(option list): add max height to fix scrolling
2024-02-07 12:45:19 +00:00
Will McGugan
f60649e737
Merge branch 'main' into fix-option-list-add-max-height-to-fix-scrolling 2024-02-07 12:45:03 +00:00
Darren Burns
1abbe8a154
Fix TextArea cursor being visible before it has focus for first time (#4128)
* Fix TextArea cursor being visible before it has focus

* Ensure cursor blink reactive can be toggled when the widget does and does not have focus, and responds correctly

* Update the CHANGELOG

* Update snapshots

* Update command palette snapshot
2024-02-07 12:36:17 +00:00
Will McGugan
8036270b36
Merge pull request #4123 from Textualize/directory-tree-reload
Directory tree reload now preserves state
2024-02-07 12:06:52 +00:00
Will McGugan
fb5d6491c5
Merge branch 'main' into directory-tree-reload 2024-02-07 12:06:46 +00:00
Darren Burns
300074def9
Fix a TextArea crash (#4126)
* Fix crash with backwards selection where content is replaced with fewer lines of text

* Ensure correct cursor positioning after paste

* Improving tests

* Update CHANGELOG

* Add missing docstrings
2024-02-07 11:27:47 +00:00
TomJGooding
e27c41c9ac
fix(text area)!: stop escape shifting focus if default tab behaviour (#4125)
* fix(text area): stop escape shifting focus if default tab behaviour

* fix recent update to changelog

* address review feedback

* update changelog
2024-02-07 10:19:34 +00:00
Will McGugan
5d6c61afa0
Merge pull request #4075 from Textualize/cancelled-event
Data binding and more
2024-02-06 16:41:35 +00:00
Will McGugan
f39a7c96d3
Update docs/guide/reactivity.md
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-02-06 16:26:39 +00:00
Will McGugan
06394ed256 test 2024-02-06 15:04:11 +00:00
Will McGugan
52ca178e80 no need for this import 2024-02-06 14:59:45 +00:00
Will McGugan
a817ecb999 docs 2024-02-06 14:58:07 +00:00
Will McGugan
34e7721552 examples 2024-02-06 14:35:25 +00:00
Will McGugan
cea5a491da changelog 2024-02-06 14:33:56 +00:00
Will McGugan
11ba94ec4f changelog 2024-02-06 14:33:04 +00:00
Will McGugan
f20515d4ae reactive docs 2024-02-06 14:30:27 +00:00
Will McGugan
2dc534e8e2 fix tint 2024-02-06 12:25:50 +00:00
Rodrigo Girão Serrão
bffa84f592
Don't block inside _reload.
Address review feedback by handling the error of trying to load a directory that doesn't exist instead of checking if it exists.
Review comment: https://github.com/Textualize/textual/pull/4123\#discussion_r1479504901
2024-02-06 12:09:13 +00:00
Will McGugan
e620ff897c simplify 2024-02-05 21:21:13 +00:00
Will McGugan
fa8c0e8f95 fix refresh lines 2024-02-05 21:16:26 +00:00
Rodrigo Girão Serrão
43f15d8bcf
Preserve state while reloading directory tree. 2024-02-05 17:23:33 +00:00
TomJGooding
14d196b7c1 correct changelog 2024-02-05 17:16:10 +00:00
TomJGooding
3ffe7b575e Merge branch 'main' into fix-option-list-add-max-height-to-fix-scrolling 2024-02-05 17:12:11 +00:00
Rodrigo Girão Serrão
00233700be
Fix DirectoryTree.clear_node not having effect. 2024-02-05 16:36:39 +00:00
TomJGooding
ca2c11bdb8
docs(text area): fix syntax highlighting in examples (#4099)
* docs(text area): fix syntax highlighting in examples

* revert text_area_extended.py

* fix class method

* fix extended text area example
2024-02-05 10:33:22 +00:00
Will McGugan
e91699f56c Merge branch 'main' into cancelled-event 2024-02-02 16:44:41 +00:00
Will McGugan
6459878b80
Merge pull request #4106 from Textualize/bump0482
bump
2024-02-02 16:35:07 +00:00
Will McGugan
f3d2b20bd9 fix dates 2024-02-02 16:33:43 +00:00
Will McGugan
3d3bc7ab79 bump 2024-02-02 16:32:28 +00:00
Will McGugan
be21e4d2b5
Merge pull request #4105 from davep/fix-4104
Only perform the SIGTOU check in the Linux driver when hooked up to a tty
2024-02-02 16:31:18 +00:00
Will McGugan
d206ac6e5f
Merge branch 'main' into fix-4104 2024-02-02 16:23:32 +00:00
Will McGugan
e686b73e9e
Merge pull request #4103 from davep/broken-optionlist-ids
Fix broken OptionList Option id mapping
2024-02-02 16:22:52 +00:00
Will McGugan
6b82aef5ec Added set_reactive 2024-02-02 16:21:53 +00:00
Dave Pearson
3697157c52
Update the ChangeLog 2024-02-02 14:29:53 +00:00
Dave Pearson
8c2b5d2d77
Only perform the SIGTOU test if we're hooked up to a tty
Fixes #4104

Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
2024-02-02 14:26:30 +00:00
Will McGugan
0755e899c5 revert init change 2024-02-02 11:40:57 +00:00
Will McGugan
9ee308b801 merge changelog 2024-02-02 11:16:59 +00:00
Will McGugan
3e59e2c7e3 setter 2024-02-02 11:16:00 +00:00
Will McGugan
aeeb93d69c reactive init 2024-02-02 10:54:56 +00:00
Dave Pearson
bf87df3289
Fix broken OptionList Option id mapping
Fixes #4101
2024-02-02 09:34:46 +00:00
TomJGooding
9789dc77e7 update changelog 2024-02-01 19:07:49 +00:00
TomJGooding
f0e9d21156 fix(option list): add max height to fix scrolling 2024-02-01 18:50:56 +00:00
Will McGugan
cf04b3c01b World clock examples 2024-02-01 17:24:04 +00:00
Dave Pearson
8ae0b27bc8
Merge pull request #4098 from TomJGooding/docs-suspend-fix-example-highlighted-lines 2024-02-01 17:11:26 +00:00
TomJGooding
7c5f291704 docs(suspend): fix example highlighted lines 2024-02-01 17:06:58 +00:00
Rodrigo Girão Serrão
b84b693473
Merge pull request #3912 from Textualize/navigation
Fix keyboard navigation in option list (& selection list), radio set, list view
2024-02-01 15:50:25 +00:00
Rodrigo Girão Serrão
268d7656dd
Merge branch 'main' into navigation 2024-02-01 15:39:02 +00:00
Will McGugan
1ed6139047 simplify bind API 2024-02-01 15:27:59 +00:00
Rodrigo Girão Serrão
350d53b313
Fix tests for 0.48.0 2024-02-01 15:23:41 +00:00
Will McGugan
322120acc8 Merge branch 'main' into cancelled-event 2024-02-01 14:20:20 +00:00
Will McGugan
e90c76eb5e Added query.set 2024-02-01 14:20:16 +00:00
TomJGooding
a382bdc85e
docs(text area): fix code editor link (#4093) 2024-02-01 13:57:57 +00:00
Will McGugan
db05bf5f1f api change 2024-02-01 13:21:46 +00:00
Will McGugan
2ee8631716 api change 2024-02-01 11:32:32 +00:00
Will McGugan
ecb8257a85
Merge pull request #4091 from Textualize/text-area-default-theme
Use CSS by default in the TextArea
2024-02-01 11:32:21 +00:00
Darren Burns
b3b1ce30ad
Update failing command palette snapshot test 2024-02-01 11:05:23 +00:00
Darren Burns
5ec0a64744
Updating newly fetched snapshots 2024-02-01 10:57:21 +00:00
Darren Burns
2200a62455
Use Monokai by default when code_editor is used 2024-02-01 10:47:49 +00:00
Rodrigo Girão Serrão
93e3078173
Merge branch 'main' into navigation 2024-02-01 10:41:56 +00:00
Darren Burns
7128c28a90
Bump version to 0.48.1, update changelog 2024-02-01 10:40:11 +00:00
Rodrigo Girão Serrão
8c3f3baedf
Merge branch 'main' into improve-nested-tcss 2024-02-01 10:39:57 +00:00
Will McGugan
ef790af131 merge 2024-02-01 10:37:42 +00:00
Darren Burns
23156a34df
Use CSS by default in the TextArea 2024-02-01 10:35:53 +00:00
Rodrigo Girão Serrão
264a985865
Merge branch 'main' into textual-animations 2024-02-01 10:28:51 +00:00
Rodrigo Girão Serrão
15b2063e2a
Remove test flakiness. 2024-02-01 10:27:44 +00:00
Will McGugan
7f1d0f8df7
Merge pull request #4090 from Textualize/bump0480
bump
2024-02-01 10:08:56 +00:00
Will McGugan
1f066f7adb changelog 2024-02-01 10:06:54 +00:00
Will McGugan
cac897f6f3 bump 2024-02-01 10:06:09 +00:00
Will McGugan
72e54d9366 test fix 2024-01-31 20:22:45 +00:00
Will McGugan
260bab0834 superfluous vars 2024-01-31 20:08:59 +00:00
Will McGugan
04e5ce24ff superfluous var 2024-01-31 20:07:34 +00:00
Will McGugan
c66f1d4f5e Tidy 2024-01-31 19:59:02 +00:00
Will McGugan
6838e878a0 fux test 2024-01-31 19:52:36 +00:00
Will McGugan
6c2e8677f6 error test 2024-01-31 17:18:24 +00:00
Will McGugan
24ef676b7b more tests 2024-01-31 17:10:41 +00:00
Will McGugan
e2facd3ee7 test 2024-01-31 16:46:59 +00:00
Darren Burns
266a89f61e
Cancelling scrolling animations on new scroll_to calls (#4081)
* Ensure prior scrolling animations dont interfere with new scroll_to calls

* Adding test for animator force cancellation

* Updating changelog

* Different approach

* Running on_complete later

* Scheduling on_complete callback after animation completes rather than immediately invoking

* Reverting _scroll_to implementation
2024-01-31 16:27:48 +00:00
Will McGugan
cd5e309532
Merge pull request #4083 from davep/progress-diet
Small simplification to the composition of `ProgressBar`
2024-01-31 16:11:22 +00:00
Rodrigo Girão Serrão
13c18156f6
Merge branch 'main' into textual-animations 2024-01-31 15:51:57 +00:00
Will McGugan
8bab37f337 tests 2024-01-31 15:51:48 +00:00
Rodrigo Girão Serrão
66f3ec6579
Address review feedback. 2024-01-31 15:47:44 +00:00
Will McGugan
7e27a3364f reactive fix 2024-01-31 15:47:13 +00:00
Dave Pearson
ccd829f2d6
Clean up a type warning on ProgressBar.compose.update_percentage 2024-01-31 15:42:56 +00:00
Dave Pearson
9d69a27a85
Make various reactive-oriented methods internals 2024-01-31 15:26:53 +00:00
Dave Pearson
aa8fc8a68c
Swap to using nested CSS 2024-01-31 15:24:41 +00:00
Dave Pearson
f8143093ac
Simplify the composition of a ProgressBar
As suggested in #4054
2024-01-31 15:19:49 +00:00
Will McGugan
45ee02c6f2
Merge pull request #4082 from davep/escape-windows
Fix the double-detection of `escape` on Windows
2024-01-31 15:12:43 +00:00
Dave Pearson
da9ab776de
Update the ChangeLog 2024-01-31 14:29:02 +00:00
Dave Pearson
0ca343c57c
Apply suggested fix for #4038
Co-authored-by: Duncan Booth <kupuguy@gmail.com>
2024-01-31 14:23:27 +00:00
Dave Pearson
1912c84491
Revert "Add a test for the escape keys"
This reverts commit a1802d61c9. It's not a
useful test because it doesn't actually cause the key press in the OS, of
course!
2024-01-31 14:15:28 +00:00
Dave Pearson
a1802d61c9
Add a test for the escape keys
See https://github.com/Textualize/textual/issues/4038
2024-01-31 14:08:31 +00:00
Will McGugan
343893d36e
Merge pull request #4037 from Textualize/fix-percentage-dimensions
fix for percentage dimensions
2024-01-31 13:53:14 +00:00
Will McGugan
1fb3c64703 snapshots 2024-01-31 13:42:30 +00:00
Will McGugan
9268f293aa
Merge pull request #4064 from davep/suspend-redux
Application suspension
2024-01-31 13:18:59 +00:00
Darren Burns
60e0d8d4c1
Fix CSS watcher crashing when file becomes unavailable... (#4079)
* Managing exceptions when watched CSS files are unavailable

* Handling scenario where FileMonitor crashes when file temporarily becomes unavailable.

* Update CHANGELOG

* Update log level to warning
2024-01-31 13:10:14 +00:00
Dave Pearson
df73e71bff
Actually Driver.close in the right place! 2024-01-31 12:54:10 +00:00
Dave Pearson
025ac85bb1
Add action_suspend_process to the list of builtin actions 2024-01-31 12:48:21 +00:00
Dave Pearson
1cd64f974f
Add a full app to show off action_suspend_process binding 2024-01-31 12:47:10 +00:00
Will McGugan
2bd6396785 merge 2024-01-31 12:41:14 +00:00
Will McGugan
da9dae74b9 refresh line 2024-01-31 12:37:36 +00:00
Dave Pearson
c916a82934
Include the output of the suspend example in the docs 2024-01-31 11:36:14 +00:00
Dave Pearson
d613b8b4ef
Merge branch 'main' into suspend-redux 2024-01-31 11:25:34 +00:00
Darren Burns
f017604cfc
TextArea default CSS (#4074)
* Starting CSS work for TextArea

* Remove xfail marker from test

* Adding component classes to TextArea, not using them yet

* Adding docstring for TextArea new component classes

* Passing all component styles to the theme so that they may be applied.

* Applying cursor component style

* Applying text-area--cursor-line component style

* Applying text-area--cursor-gutter component style

* Applying gutter cursor style correctly

* Default cursor styling

* CSS theming of the selection style

* default matching bracket theme in text area

* Support toggling dark and light mode

* Improve the theme on light mode for the cursor

* null check

* Snapshot for new default "css" theme of TextArea

* Hide cursor when TextArea doesnt have focus

* Some new docs for TextArea

* Add border to TextArea to fit more with Input

* Add note on how to remove the focus border effect

* Updating snapshots

* Updating snapshots

* Fixing tests to account for new TextArea border

* Fix a typo

* Updating CHANGELOG

* Update docs/widgets/text_area.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Add missing docstring

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-01-31 11:15:54 +00:00
Dave Pearson
0003b52dcf
Celebrate vim in the docs
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-31 11:09:44 +00:00
Dave Pearson
7fb59d1831
Docs wording tweak
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-31 11:08:29 +00:00
Dave Pearson
d94c2f9da1
Improve a heading in the docs
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-31 11:08:03 +00:00
Dave Pearson
3914215636
Simplify a caveat in the docs
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-31 11:07:37 +00:00
Dave Pearson
dca798f574
Improve documentation
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-31 11:06:55 +00:00
Dave Pearson
f5d32bcc52
Update suspend testing for the new approach 2024-01-31 11:01:42 +00:00
Dave Pearson
ea36a43f5e
Also Driver.close in Driver.suspend_application_mode
I realised that Driver.close exists so it makes sense to call that in the
base class rather than special-case that down in the LinuxDriver.
2024-01-31 11:00:45 +00:00
Dave Pearson
8dcf55a0f3
Add Driver.suspend/resume_application_mode interface
While at the moment these are the thinnest of shims around stop/start, the
idea here is that we're going to add an API that *promises* to handle
suspend and resume of the application mode in the driver; unlike stop/start
which just promise that it'll stop and start and there's no promise that a
start can happen after a stop.
2024-01-31 10:40:35 +00:00
TomJGooding
95e05927af
fix: display same key symbol when used with modifier (#3050)
* fix: display key when used in conjunction

* add test

* update changelog

* merge main and update changelog

* update changelog
2024-01-31 09:52:34 +00:00
Dave Pearson
d033407db4
Fix a typo
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-01-30 18:05:26 +00:00
Will McGugan
c4fb3565d8 Merge branch 'main' into cancelled-event 2024-01-30 17:58:19 +00:00
Will McGugan
5a4cc5165f data binding 2024-01-30 17:58:00 +00:00
Yiorgis Gozadinos
e5839f6d4c Add snapshot tests to test handling of theme switching in markdown 2024-01-30 16:36:16 +01:00
Yiorgis Gozadinos
52ebfe73b7 Introduce dark_theme, light_theme reactive properties to Markdown.
Allows for code blocks within Markdown to be styled and redrawn
following the app theme.
2024-01-30 16:36:16 +01:00
Yiorgis Gozadinos
599feb0683 Make MarkdownFence respond to app theme changes. Closes #3997 2024-01-30 16:36:12 +01:00
Dave Pearson
3a91b3711d
Update the ChangeLog 2024-01-30 14:39:59 +00:00
Dave Pearson
8f981f39eb
Merge branch 'main' into suspend-redux 2024-01-30 14:37:31 +00:00
Dave Pearson
5d09bc1dcc
Spell Textual Web as Textual Web not Textual-Web 2024-01-30 14:30:49 +00:00
Darren Burns
81808d93c9
Ensure we prevent messages that were prevented when call_next was originally called (#4078) 2024-01-30 14:06:16 +00:00
Dave Pearson
b73523ab8a
Remove Ctrl+Z as the default binding for suspending
While this is the convention/standard on Unix and Unix-like systems; adding
this as a default binding on App means that we sort of rob other
environments for this key combination. It also means that it's not so easy
for the developer to decide they *don't* want this enabled in their
application.

So here we swap to providing the action without providing a default binding
for it; while also suggesting and encouraging the appropriate binding.
2024-01-30 14:04:35 +00:00
Dave Pearson
e8291dac81
Add some notes about what the suspend code is doing 2024-01-30 11:26:35 +00:00
Dave Pearson
ddb24a3e10
Bump the SignalResume message up to the Driver level 2024-01-30 10:23:04 +00:00
Dave Pearson
7de303bde5
Ensure we don't restart application mode in the wrong place
It's possible for the developer to have code that is something like:

    with self.suspend():
        # do something here that we can Ctrl+Z.

such that the suspended process is *this* process; because of the signal
handlers involved, in this case, we wouldn't want to automatically restart
application mode. So this commit adds the ability to mark a body of code as
one where no auto-restart should take place.
2024-01-30 10:13:12 +00:00
Dave Pearson
f72c2582cc
Merge branch 'main' into suspend-redux 2024-01-30 08:52:50 +00:00
Dave Pearson
0f1c3e8ece
Fix a typo 2024-01-30 08:49:22 +00:00
Will McGugan
37ff2a475e
Merge pull request #4076 from Textualize/blacked
pin black
2024-01-29 20:30:55 +00:00
Will McGugan
71d5f79c3f lock file 2024-01-29 17:17:25 +00:00
Will McGugan
0bfb6db34f more black 2024-01-29 17:15:41 +00:00
Will McGugan
5fa128e08e pin black 2024-01-29 17:13:20 +00:00
Will McGugan
a6514f8517 added cancelled event to worker 2024-01-29 16:46:32 +00:00
Dave Pearson
446424b606
Reinstate support for the Textual signals for suspend resume on OS suspend 2024-01-29 15:31:37 +00:00
Dave Pearson
47a9a95b65
Merge branch 'main' into suspend-redux 2024-01-29 14:20:46 +00:00
Dave Pearson
374478a0b1
Move the main work on suspending with Ctrl+Z into the Linux driver 2024-01-29 13:55:47 +00:00
Will McGugan
bf06f7577f
Merge pull request #3933 from Textualize/text-area-wrapping-widget-changes
Text Area wrapping
2024-01-29 09:38:40 +00:00
Rodrigo Girão Serrão
add06b6f16
Merge branch 'main' into textual-animations 2024-01-25 18:35:12 +00:00
Rodrigo Girão Serrão
89844e8342
Make switch tests more robust. 2024-01-25 18:34:23 +00:00
Rodrigo Girão Serrão
023bb3378b
Test disabling generic animations. 2024-01-25 17:50:40 +00:00
Rodrigo Girão Serrão
ef55ab363b
Add tests for 'basic' animations.
Check that animations that should happen on the BASIC level do happen at that level and don't happen on the NONE level.
2024-01-25 17:31:26 +00:00
Darren Burns
d68e683574
Addressing pull request feedback 2024-01-25 15:31:32 +00:00
Rodrigo Girão Serrão
98d4fd2107
Add TEXTUAL_ANIMATIONS tests. 2024-01-25 14:11:51 +00:00
Rodrigo Girão Serrão
37e7668902
Add 'App.show_animations'.
The original issue (#3992) asked for a property on 'App' that allows controlling whether that app's animations should be played or not.
2024-01-25 14:09:15 +00:00
Rodrigo Girão Serrão
fda29ea432
Use 'SHOW_ANIMATIONS' from original namespace.
By using 'constants.SHOW_ANIMATIONS' instead of importing the constant directly we make it easier to patch for testing.

See: https://mathspp.com/blog/til/patching-module-globals-with-pytest
2024-01-25 10:58:44 +00:00
Darren Burns
fce5cf1e0f Merge branch 'text-area-wrapping-widget-changes' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-24 13:29:14 +00:00
Darren Burns
a10eaf38cb Update defaults in docs 2024-01-24 13:29:03 +00:00
Darren Burns
9486dd6b61
Merge branch 'main' into text-area-wrapping-widget-changes 2024-01-24 12:35:50 +00:00
Darren Burns
39e7a42371 TextArea documentation updates 2024-01-24 12:03:15 +00:00
Dave Pearson
e5accb2d4e
Start an App Basics section about suspending an app 2024-01-24 11:24:55 +00:00
Darren Burns
7f9a47c79d Merge branch 'text-area-wrapping-widget-changes' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-24 10:59:12 +00:00
Dave Pearson
5adfda1ead
Add the suspend and resume signals to the suspend tests 2024-01-24 10:02:22 +00:00
Dave Pearson
6fb4d710e2
Add Signal support to suspend
This adds a signal that is published before the suspension finally happens,
and another once the application is back and running again.
2024-01-24 09:44:59 +00:00
Dave Pearson
7eb06ac6bc
Include Signal in the API docs
While this is intended to be "experimental" at the moment, it needs to be in
the API docs so that it can be linked to from the docs for the signals.
2024-01-24 09:37:42 +00:00
Dave Pearson
78e57da956
Add a Raises section to the Signal.subscribe docstring 2024-01-24 09:36:55 +00:00
Dave Pearson
070287922b
Correct the description of the signal exception 2024-01-24 09:36:34 +00:00
Dave Pearson
cb9f58012b
Merge branch 'main' into suspend-redux 2024-01-24 09:16:14 +00:00
Will McGugan
e4c85ffb79
Signal (#4012) 2024-01-23 17:20:11 +00:00
Darren Burns
07f64f37d1
Rename function to expand_text_tabs_from_widths and add docstring 2024-01-23 16:25:17 +00:00
Darren Burns
abcec57c0a
Fixing a few more mypy complaints 2024-01-23 15:47:14 +00:00
Darren Burns
bf2b9d5272
Fix a mypy complaint 2024-01-23 15:43:37 +00:00
Darren Burns
5af24a22d4
Making some things public, ensuring types exported 2024-01-23 15:41:05 +00:00
Rodrigo Girão Serrão
225fa24bdf
Validate ids (#4032)
* Add function that validates identifiers.

* Validate IDs when creating DOM nodes.

* Add regression tests.

* Removes my duplicate work.

This reverts commit 300578fe808a6a58deb5cb58b63704e87032a24f and a couple of other things that I really didn't need.

* Fix regular expression check for identifiers.

* Use 're.fullmatch' instead of anchors.

Relevant review comment: https://github.com/Textualize/textual/pull/4032#discussion_r1453831415.

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-23 15:19:02 +00:00
Darren Burns
65aee34a3e
Docstrings and small renamings 2024-01-23 15:18:39 +00:00
Dave Pearson
7da4a1ab25
Tidy a couple of docstrings 2024-01-23 15:09:55 +00:00
Dave Pearson
0f20967730
Modify the binding tests to take the new default binding into account 2024-01-23 14:49:03 +00:00
Darren Burns
a678847288
Updating CHANGELOG, docs 2024-01-23 14:39:50 +00:00
Darren Burns
5a35f3f5e4
Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-23 14:23:14 +00:00
Darren Burns
fdd64c9243
Renaming 2024-01-23 14:15:54 +00:00
Rodrigo Girão Serrão
136da2fae3
Restrict when animations happen.
Go over 'all' (as far as I can tell) animations in Textual. Most of them should only run when the env variable TEXTUAL_ANIMATIONS is set to FULL.
A few animations may run on the level BASIC, which are animations that don't delay content appearing:
 - indeterminate progress bars
 - loading indicators
 - button presses
 - tab underlines
 - switch toggles
 - all (?) types of scrolling.

These animations are completely disabled when the env var is NONE.

The indeterminate progress bar displays a full, static bar and the loading indicator displays a string 'Loading...'.

Many animation-related methods also grew a keyword parameter 'animate_on_level' that establishes the minimum level for said animation to take place.
2024-01-23 13:56:17 +00:00
Darren Burns
059e6b8e44
Updating tests to account for new defaults 2024-01-23 13:50:25 +00:00
Jose Riha
2983d6140a
Fix Pong's Paddle property in docs. (#4053)
Fixes #4033
2024-01-23 13:48:20 +00:00
Rodrigo Girão Serrão
d1d6fe28a3
Add support for 'TEXTUAL_ANIMATIONS'. 2024-01-23 13:48:19 +00:00
Dave Pearson
f20437392b
Add support for using Ctrl+Z to background the application 2024-01-23 13:22:08 +00:00
Dave Pearson
faf9b51a51
Add a test for doing a suspend
Borrowing heavily from Josh's testing.

Co-authored-by: Josh Karpel <josh.karpel@gmail.com>
2024-01-23 11:49:40 +00:00
Dave Pearson
0abb2c7f6f
Add a unit test for the suspend exception 2024-01-23 11:08:47 +00:00
Darren Burns
b122e941f1
Create code_editor constructor 2024-01-23 11:07:57 +00:00
Darren Burns
ba6b0c73a3
Add syntax mark to test 2024-01-23 10:43:02 +00:00
Darren Burns
f496c11a2f
Ensure we only wrap once on load 2024-01-23 10:39:26 +00:00
Dave Pearson
cedb3f2f19
Add a note about the suspend exception to the docstring 2024-01-23 10:33:12 +00:00
Darren Burns
069bedbf75
Create snapshot test for wrapping and folding 2024-01-23 10:29:34 +00:00
Dave Pearson
a2743fc92a
Test if a driver allows suspending the application
And, if it doesn't, raise an exception.
2024-01-23 10:27:01 +00:00
Dave Pearson
bec1f81463
Allow suspending the application when running with the Windows driver 2024-01-23 10:26:24 +00:00
Dave Pearson
0b303022b1
Allow suspending the application when running with the Linux driver
And by extension macOS and BSD, etc (the Linux driver is really a Un*x
driver).
2024-01-23 10:24:59 +00:00
Dave Pearson
ba87cf84bc
Add a can_suspend property to the Driver base class
This will be used by subclasses to say if the environment they pertain to
permits a suspension of the application.
2024-01-23 10:24:15 +00:00
Dave Pearson
693fd214b0
Add a docstring to suspend
Adding Josh Karpel as a co-author here; not because of the docstring, but
the core idea started with #1541 and this is a reimplementation of that code
in the current version of Textual.

Co-authored-by: Josh Karpel <josh.karpel@gmail.com>
2024-01-23 09:44:24 +00:00
Dave Pearson
e7d7b1af8e
Seek to eliminate the bad file descriptor error on Windows 2024-01-23 08:59:22 +00:00
Dave Pearson
47087a9029
Experiment to see if a call to close is needed too
While things are generally working fine on macOS (and possibly GNU/Linux,
that's still to be tested), there is the "can't input anything, have to kill
the terminal" issue on Windows. This worked in the PR a year ago, and this
bit of code seems to be the difference so let's test that out.
2024-01-23 08:48:30 +00:00
Darren Burns
e77d8a01df
Fix watcher name 2024-01-22 16:18:02 +00:00
Darren Burns
12a04239b0
Applying correct tab widths after wrap/fold 2024-01-22 15:28:25 +00:00
Dave Pearson
68c9667ef4
Revert "Use the dunder values for stdin and stdout"
This reverts commit db31c61d37.

Didn't address the issue I was trying to understand.
2024-01-22 15:20:01 +00:00
Dave Pearson
db31c61d37
Use the dunder values for stdin and stdout 2024-01-22 15:09:52 +00:00
Dave Pearson
004513c8da
Experimental suspend context manager
Pulling out the very core of #1541 to start to build it up again and
experiment and test (getting into the forge so I can then pull it down onto
Windows and test there).
2024-01-22 14:34:12 +00:00
Dave Pearson
82a91abbb2
Strip trailing whitespace. 2024-01-22 13:17:13 +00:00
Ted Conbeer
9f43d30005
fix: handle missing tree-sitter-language binaries (#4046) 2024-01-22 10:01:10 +00:00
Dave Pearson
d9ecd9fcb7
Merge pull request #4059 from davep/extendit-tempus
Increase the default notification timeout period
2024-01-22 08:59:26 +00:00
Dave Pearson
129bab0f4a
Don't hard-code the tested timeout in the notification tests
It doesn't really make sense to hard-code the timeout value to test against,
but there is a modicum of sense in testing that the attribute in an instance
of a notification matches the default.
2024-01-22 08:16:59 +00:00
Dave Pearson
d8c03e482b
Link the notification timeout change ChangeLog entry to the PR 2024-01-22 08:11:44 +00:00
Dave Pearson
7ee5b5c2d5
Add placeholder item to the ChangeLog 2024-01-22 08:09:19 +00:00
Dave Pearson
748f309f43
Extend the default notification timeout from 3 to 5 seconds
See #4057.
2024-01-22 08:05:03 +00:00
TomJGooding
ce962196c7
docs(questions): recommend installing faqtory via pipx (#4048) 2024-01-19 18:24:24 +00:00
Darren Burns
9914cd0f9a
WIP - precomputing tab sections 2024-01-18 17:01:42 +00:00
Darren Burns
4b80cf3654
Fix Makefile whitespace 2024-01-18 13:31:27 +00:00
Darren Burns
32ea6ec2c0
Update Rich 2024-01-18 13:29:09 +00:00
Darren Burns
42388fdfe3
Merge branch 'text-area-wrapping-widget-changes' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-18 13:25:37 +00:00
Darren Burns
f8635c1775
Rename wrap to soft_wrap 2024-01-18 13:25:25 +00:00
Darren Burns
43ecfb66ef
Dependency update 2024-01-18 13:18:35 +00:00
Darren Burns
9be58ea595
Merge branch 'main' into text-area-wrapping-widget-changes 2024-01-18 13:17:09 +00:00
Darren Burns
29a9333800
Only send TextArea SelectionChanged message when the selection actually changes 2024-01-18 13:14:56 +00:00
Darren Burns
7c967dc4c9
Delete to line start should not use "smart home" behaviour 2024-01-18 13:10:25 +00:00
Darren Burns
b6a0ab57ee
Formatting 2024-01-18 12:59:43 +00:00
Darren Burns
7bfbaa119b
We dont need always update on selection reactive 2024-01-18 12:59:20 +00:00
Darren Burns
d4c82e260c
Updating chunk and divide_line tests using to reflect code changes 2024-01-18 12:56:47 +00:00
Darren Burns
910c62c544
Fixing smart home 2024-01-18 11:32:51 +00:00
Darren Burns
37db462a0b
Fix issue with new delete line implementation 2024-01-18 11:04:34 +00:00
Darren Burns
0d87caa2ea
Updating some more tests 2024-01-18 10:54:00 +00:00
Darren Burns
84f3934bf3
Fix wrapped document tests 2024-01-18 10:37:21 +00:00
Darren Burns
6e5f199cc7
Fix chunk re 2024-01-18 10:18:00 +00:00
Darren Burns
0013e8c394 Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-17 19:55:19 +00:00
Darren Burns
af705f843b Fixing off-by-one 2024-01-17 19:37:09 +00:00
Darren Burns
418bc0e802 Fix visual offset calculation when word folds during text area wrapping calculation such that it accounts for tabs 2024-01-17 18:37:34 +00:00
Rodrigo Girão Serrão
18b8a23fd0
Improve support for declarations after nested rule sets.
Partially fixes #3999.
2024-01-17 17:11:30 +00:00
Rodrigo Girão Serrão
828b383b99
Support nested selector lists.
Partially fix #3969.
2024-01-17 17:10:33 +00:00
Will McGugan
a1c5bd54df fix margin 2024-01-17 15:50:44 +00:00
Will McGugan
8bebd345ad simplify 2024-01-17 15:10:31 +00:00
Will McGugan
7e3904d404 remove deprecated code 2024-01-17 14:24:16 +00:00
Akintola Richard Olaoluwa
95f0c39106
Add panel Border type to docs (#4035)
* Add panel Border type to docs

* Add panel border description
* Add Label with panel border to Grid
* Add style for panel id and change grid-size from 3 5 to 4 4

issues #3978

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-01-17 14:23:27 +00:00
Will McGugan
f4582e3277 fix for percentage dimensions 2024-01-17 14:17:51 +00:00
Will McGugan
0ad03f3731
Packaging how to (#4031)
* how-to

* how-to

* tweaks

* fix nav

* tweak

* example repository

* fix word

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* definition

* words

* elaborate

* Update docs/how-to/package-with-hatch.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* clarification

* Update docs/how-to/package-with-hatch.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Words

* added info

* words

* Update docs/how-to/package-with-hatch.md

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>

* words

* ws

* capitalize

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2024-01-17 13:05:26 +00:00
Darren Burns
7412ec7af2 Fix an off-by-one in wrapping 2024-01-17 10:54:45 +00:00
Darren Burns
4dcfaddc91 Adding more edge case tests 2024-01-16 17:04:45 +00:00
Darren Burns
ac7c62959f Testing cases where folding is required during wrapping 2024-01-16 16:46:40 +00:00
Rodrigo Girão Serrão
ca6a499082
Add regression test. 2024-01-16 14:51:06 +00:00
Rodrigo Girão Serrão
3f56be22da
Don't call all watchers on programmatic watch.
When programmatically creating a watcher to a reactive attribute, init only the new watcher instead of triggering all watchers.

Related issue: #3878
2024-01-16 14:50:52 +00:00
Rodrigo Girão Serrão
322c45c9e7
Fix logical bug.
Typing reported (correctly) that the membership check would never evaluate to 'True' because we were comparing apples with tuples of oranges and apples. 'watcher_list' contains tuples whose second element _might_ match the callback, so we need to go over the tuples and unpack them to figure out if the callback is there.
2024-01-16 14:50:48 +00:00
Rodrigo Girão Serrão
c3996550c6
Typing improvements to reactive.py 2024-01-16 14:20:32 +00:00
Rodrigo Girão Serrão
bbb436c9c2
Extract auxiliary functions. 2024-01-16 14:19:10 +00:00
Darren Burns
57fbd23102 Simplify chunk regex 2024-01-16 10:55:06 +00:00
Darren Burns
43f8697939 Fix chunking on whitespace only input 2024-01-16 10:49:26 +00:00
Darren Burns
ee9d1a89c7 Add tests for chunks 2024-01-16 10:40:45 +00:00
Darren Burns
0da49c9dec Fixing insert value on tab key press, tests for get_tab_widths 2024-01-16 10:24:34 +00:00
Dave Pearson
f44f144bba
Fix a typo (#4025) 2024-01-15 16:45:47 +00:00
Will McGugan
dbcecda90d
remove how-to (#4020)
* remove how-to

* remove index
2024-01-15 14:33:46 +00:00
Rodrigo Girão Serrão
517a959c69
Simplify validation of setting highlighted reactive.
If the dev assigns the reactive 'highlighted' to an option that is disabled, we let that go through but we don't post a Highlighted message.

Related review comment: https://github.com/Textualize/textual/pull/3912#issuecomment-1891946809
2024-01-15 13:59:57 +00:00
Darren Burns
e626f8d950 Remove duplicate method 2024-01-15 13:30:44 +00:00
Rodrigo Girão Serrão
b697341906
Revert to minimal validation on reactive.
When assigning to a reactive that controls some sort of highlighted option, do minimal validation on that.
Related review comment: https://github.com/Textualize/textual/pull/3912#issuecomment-1891946809
2024-01-15 11:41:20 +00:00
Rodrigo Girão Serrão
46fd0c19d1
Remove private module from docs. 2024-01-15 11:02:45 +00:00
Rodrigo Girão Serrão
506926a304
Merge branch 'main' into navigation 2024-01-15 11:01:25 +00:00
Rodrigo Girão Serrão
9c8976ac2a
Merge pull request #3988 from Textualize/selection-list-get-option
Minor improvements to option list
2024-01-15 10:56:58 +00:00
Dave Pearson
0bea8b250c
HOWTO package a Textual application (#3977)
* Initial draft of the howto for packaging an application

There's a fair bit more I think needs adding, but this has the core concepts
within it. Things still to decide or do are:

- How much lead-in and hand-holding is needed for Hatch and Poetry

For example, should we walk the reader through the `init` process for Hatch
and Poetry, and then guide them to the correct directory in which to create
their application, etc?

- How to do the example repo

Should I do two repos, one for Hatch and one for Poetry? Or should I do one
repo with a Hatch and a Poetry example within sub-directories? In either
case having a tidy one-to-one relationship with what I talk about in the
text won't be quite right.

Mainly though I feel the core of what's needed is here (and it's not much,
but has taken some testing and checking and whittling down to get here).

* Title tweak

* Add a note about declaring Textual as a dependency

While this might seem obvious, and while some tools will, as a natural
consequence of using them, ensure that this happens, it's worth highlighting
this so that the reader is mindful of this.

Also, someone might be reading the HOWTO while considering how they to this
with their own build system.

* Break paragraphs down into different lines

Just an internal layout thing. Some folk seem to like this sort of thing.

* Add a summary

* Some rewording

* Link to the example repos

* Post-initial-proof-read

* Link to pip and pipx

* Don't repeat help in the same sentence

* Remove an actual needless word

* Remove the dual use of application in a sentence

* Link to TCSS files in case the reader needs a refresh

* Explain what the example repositories were built for/with

It should be obvious from the names; but it can't hurt to be *very* clear.

* Update docs/how-to/package-an-application.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Changes in response to feedback

* Trim down the into a wee bit

* Trim down the into a wee bit more

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2024-01-15 10:15:10 +00:00
Will McGugan
87519a9a98
Merge branch 'main' into selection-list-get-option 2024-01-15 10:00:21 +00:00
Will McGugan
35fe5b8240
Fix crop_extend (#4011)
* fix

* tests
2024-01-12 17:22:45 +00:00
Darren Burns
7852a1e88d
Notes 2024-01-11 17:21:22 +00:00
Darren Burns
9912b764fa
Formatting 2024-01-11 17:05:02 +00:00
Darren Burns
5843e91b1b
Begin accounting for tab widths in wrap offset computation 2024-01-11 17:04:22 +00:00
Darren Burns
e646916c4a
Fix issue when crop start == cell length of a Strip (#3998)
* Fix issue when crop start was == cell length of a Strip

* Update changelog

* Update CHANGELOG.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-01-10 12:58:26 +00:00
Darren Burns
e1c59b068c
Merge branch 'strip-crop-bug' into text-area-wrapping-widget-changes 2024-01-10 11:20:19 +00:00
Darren Burns
17448d1e45
Update changelog 2024-01-10 11:13:05 +00:00
Darren Burns
9fb774c431
Fix issue when crop start was == cell length of a Strip 2024-01-10 11:04:34 +00:00
Darren Burns
6f41dc281d
Remove some debugging 2024-01-10 10:49:46 +00:00
Rodrigo Girão Serrão
4da008d5cb
Merge pull request #3993 from Textualize/test-fix
Test discovery would modify tcss file by mistake.
2024-01-09 18:16:55 +00:00
Rodrigo Girão Serrão
1614806446
Test discovery would modify tcss file by mistake. 2024-01-09 18:00:30 +00:00
Rodrigo Girão Serrão
21b3066a3a
Merge pull request #3991 from Textualize/data-table-get-cell-coordinate-fix
Typing fix in `DataTable.get_cell_coordinate`
2024-01-09 17:17:14 +00:00
Darren Burns
e000298e77
Fixing rendering when wrapping disabled 2024-01-09 16:54:42 +00:00
Darren Burns
264af63353
Correctly setting line widths 2024-01-09 16:52:01 +00:00
Rodrigo Girão Serrão
79be9948fa
Merge pull request #3990 from Textualize/broken-highlights
Fix broken highlights.
2024-01-09 15:55:44 +00:00
Rodrigo Girão Serrão
1fc7aa92dc
Typing fix. 2024-01-09 15:43:18 +00:00
Will McGugan
fec07694e6
allow focus (#3989)
* allow focus

* test

* changelog

* tests

* Revert

* docstring
2024-01-09 15:36:03 +00:00
Rodrigo Girão Serrão
b848dbf7c0
Fix broken highlights. 2024-01-09 15:32:09 +00:00
Rodrigo Girão Serrão
36b2da8834
Add regression test. 2024-01-09 14:26:45 +00:00
Rodrigo Girão Serrão
e2bbc20995
Add regression test. 2024-01-09 14:21:03 +00:00
Rodrigo Girão Serrão
f2ccab8c42
Changelog. 2024-01-09 14:13:24 +00:00
Rodrigo Girão Serrão
bdc1fc3102
Docs tweaks. 2024-01-09 13:57:29 +00:00
Rodrigo Girão Serrão
b1aaea7812
Separate option ID tracking from content tracking. 2024-01-09 13:57:14 +00:00
Rodrigo Girão Serrão
765716b93c
Build option IDs before rendering.
This builds option IDs earlier than the first render, which means that IDs can be used to fetch options earlier.
Related issue: #3903.
2024-01-09 13:34:51 +00:00
Rodrigo Girão Serrão
c7f9848bea
Test fix. 2024-01-09 13:33:32 +00:00
Darren Burns
9fe7f63262
Maintain cursor width 2024-01-09 11:41:44 +00:00
Darren Burns
b49781a478
Maintain offset when deleting a line 2024-01-09 11:05:44 +00:00
Darren Burns
d0b01b1643
Maintain offset when deleting a line 2024-01-09 11:04:26 +00:00
Rodrigo Girão Serrão
c931d52591
Merge pull request #3981 from Textualize/apply-css-changes-screen-stack
Apply css changes screen stack
2024-01-09 10:47:58 +00:00
Darren Burns
146c152669
Configurable indent behaviour 2024-01-09 09:59:56 +00:00
Dave Pearson
b4ba573245
Merge pull request #3979 from davep/rename-tabs
Better tab relabelling
2024-01-08 19:40:42 +00:00
Rodrigo Girão Serrão
15666768dc
Delete commented out line. 2024-01-08 17:27:47 +00:00
Rodrigo Girão Serrão
fea45fe50d
Changelog. 2024-01-08 17:17:36 +00:00
Rodrigo Girão Serrão
0926caf7ce
Add regression test for #3931. 2024-01-08 17:16:50 +00:00
Dave Pearson
d9605d2b80
Link to the PR 2024-01-08 15:54:49 +00:00
Dave Pearson
7eb089c7ca
Update the ChangeLog 2024-01-08 15:46:15 +00:00
Dave Pearson
fc3714ab5c
Add some testing for tab label updates 2024-01-08 15:43:46 +00:00
Darren Burns
ac9b88ec10 Fix deleting to end of line 2024-01-08 15:41:28 +00:00
Rodrigo Girão Serrão
ea5cd4fc2d
Apply CSS changes to all screens on stack. 2024-01-08 15:40:53 +00:00
Darren Burns
b8fbb1ef12 Fixing delete to start of line 2024-01-08 15:40:38 +00:00
Rodrigo Girão Serrão
f145f282e4
Typing fixes. 2024-01-08 15:40:37 +00:00
Darren Burns
24d419f694 Parameterise "smart home key" 2024-01-08 15:32:29 +00:00
Dave Pearson
774f997631
Add a test for low-level tab relabelling 2024-01-08 15:28:04 +00:00
Dave Pearson
318a436ab5
Allow Tab.label to be set and have the display redraw
In support of a better interface for #3901.
2024-01-08 15:17:25 +00:00
Darren Burns
b219733fd5 Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-08 15:02:51 +00:00
Will McGugan
b61b878fda
Make cache public (#3976)
* pulic cache

* changelog

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-01-08 13:19:33 +00:00
Darren Burns
1643406d8f Fix cursor not blinking in wrapped document 2024-01-08 13:19:19 +00:00
Darren Burns
c9c70ef5b0 Fixing IME positioning when scrolled in wrapped doc 2024-01-08 12:18:52 +00:00
Darren Burns
de7c189de8 Snapping back to last horizontal offset where required 2024-01-08 11:58:34 +00:00
Rodrigo Girão Serrão
054a132634
Merge pull request #3002 from davep/early-show-root
Fix a crash when setting `DirectoryTree.show_root` before DOM is ready
2024-01-08 11:21:59 +00:00
Rodrigo Girão Serrão
9dd2f1dfdd
Merge branch 'main' into navigation 2024-01-08 11:21:00 +00:00
Rodrigo Girão Serrão
bfd413b6f9
Make widget_navigation module private.
https://github.com/Textualize/textual/pull/3912#discussion_r1444451796.
2024-01-08 11:19:17 +00:00
Rodrigo Girão Serrão
2a3edb10c3
Update changelog. 2024-01-08 11:07:02 +00:00
Rodrigo Girão Serrão
0b0f522825
Merge branch 'main' into early-show-root 2024-01-08 11:06:17 +00:00
Rodrigo Girão Serrão
8087eacf33
Return early when styling before mounting.
https://github.com/Textualize/textual/pull/3002#discussion_r1405912801.
2024-01-08 11:06:06 +00:00
Will McGugan
8f822aeb74
optimization (#3970)
* optimization

* fix

* changelog [skip ci]

* sort

* simplification

* simplify check

* fix and typing

* typing

* docstrings

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/dom.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-01-08 10:56:04 +00:00
Rodrigo Girão Serrão
26182f9b98
Merge branch 'main' into navigation 2024-01-08 10:34:16 +00:00
Rodrigo Girão Serrão
dc1e4c87cf
Rename type variables.
https://github.com/Textualize/textual/pull/3912#discussion_r1444398976.
2024-01-08 10:32:10 +00:00
Rodrigo Girão Serrão
0ac0ac5594
Rename function.
https://github.com/Textualize/textual/pull/3912#discussion_r1444400213.
2024-01-08 10:31:34 +00:00
Dave Pearson
5cd5aa9b49
Improve the method via which unsupported sequences are ignored (#3800)
* Make ignoring keys a silent operation

But when we do so, ensure that we log what sequence was ignored if the key
driver logging is enabled.

The core requirement for #3742.

* Start a proper ignore section in the dictionary of sequences

And by "proper ignore section" I simply mean: have the sequences we want to
ignore all gathered together in a really obvious location, and with some
sort of explanation.

* Simplify opt+§ in WezTerm on macOS

* Improve the wezterm opt mappings

This brings them more in line with other terminals I've tested.

* Tidy up the explanation for the WezTerm mappings

* Ignore various ctrl-cmd- sequences from kitty

* Fix a couple of incorrectly-copied sequences

* Transform Ctrl+§ into 0 under kitty

Most (all?) other terminals on macOS do this anyway.

* Tweak some wording

* Add Shift-F11 and Shift-F12 for rxvt

* Switch to using a special value for ignored sequences

Rather than use the pre-existing convention of a tuple that contains
Keys.Ignore, which *could* imply that a sequence maps to a set of keys that
happens to include Key.Ignore, but isn't exclusive to just that, here we
swap over to using a single special value for an ignored sequence.

* Swap to using a value as a flag, not a type

https://github.com/Textualize/textual/pull/3800#pullrequestreview-1770853775
2024-01-08 10:27:46 +00:00
Rodrigo Girão Serrão
baee05a439
Merge pull request #3965 from Textualize/data-table-move-cursor-animate
Fix `DataTable.move_cursor(..., animate)`
2024-01-08 10:22:01 +00:00
Will McGugan
b3efc3ffdb Revert "optimize pseudo classes"
This reverts commit a14b808ffa.
2024-01-06 18:15:41 +00:00
Will McGugan
a14b808ffa optimize pseudo classes 2024-01-06 18:12:20 +00:00
Darren Burns
f7a48a5a09 Add maintain_offsset 2024-01-06 17:27:34 +00:00
Rodrigo Girão Serrão
0590b5ccbb
Fix DataTable.move_cursor(..., animate) 2024-01-05 17:54:36 +00:00
Darren Burns
b6d50f8f4f Fix IME positioning in wrapped documents 2024-01-05 16:47:57 +00:00
Darren Burns
2db30832fa Fix up on first doc line, down on last doc line 2024-01-05 16:41:22 +00:00
Rodrigo Girão Serrão
62f2368b29
Merge branch 'main' into navigation 2024-01-05 14:24:52 +00:00
Rodrigo Girão Serrão
4b099bcb64
Update changelog. 2024-01-05 14:24:02 +00:00
Rodrigo Girão Serrão
1f24f27405
Docstring fix. 2024-01-05 14:22:18 +00:00
Rodrigo Girão Serrão
352d3ad4a3
Fix paging in option list.
See https://github.com/Textualize/textual/pull/3912#discussion_r1439504428.
2024-01-05 14:02:33 +00:00
Rodrigo Girão Serrão
296df6a110
Add widget navigation without wrapping. 2024-01-05 14:02:00 +00:00
Darren Burns
1902949956
Ensuring cursor remains visible after toggling wrapping 2024-01-05 11:50:46 +00:00
Will McGugan
cf46d4e70f docstring 2024-01-05 11:36:46 +00:00
lena
aced854807
Update app.py (#3962) 2024-01-05 11:35:29 +00:00
Will McGugan
60b8074e68
fix for specificity (#3963)
* fix for specificity

* changelog

* docstrings
2024-01-05 11:34:46 +00:00
Darren Burns
c6008505c9
Fixing wrap width to account for scrollbars 2024-01-05 11:06:51 +00:00
Rodrigo Girão Serrão
b06bf49040
Remove unused component class.
https://github.com/Textualize/textual/pull/3912#discussion_r1441856028.
2024-01-04 17:21:57 +00:00
Rodrigo Girão Serrão
7cbc4d550e
Test widget navigation module.
See https://github.com/Textualize/textual/pull/3912#discussion_r1439490041.
2024-01-04 17:14:19 +00:00
Will McGugan
1e1b02398f words 2024-01-04 17:10:18 +00:00
Darren Burns
8f6b1525a4
Rewrapping when gutter width changes 2024-01-04 16:39:23 +00:00
Will McGugan
2801a41a8f
change quotes (#3957) 2024-01-04 16:37:25 +00:00
Rodrigo Girão Serrão
2b1e4e0f73
Publish module widget_navigation.
See review comment https://github.com/Textualize/textual/pull/3912#discussion_r1439489659.
2024-01-04 15:37:14 +00:00
Will McGugan
a6fe4d405f changelog 2024-01-04 15:29:14 +00:00
Will McGugan
b7f998a8a5
bump version (#3956) 2024-01-04 15:19:12 +00:00
Will McGugan
b2fe0a76c2
nested (#3946)
* nested

* remove debug

* patch scope

* fix nested

* docs

* clarification

* docstring

* fix test

* remove debug

* copy

* fix example

* wording

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Dave Pearson <davep@davep.org>

* highlighting

* wording

* wording

* check errors

* type checking:

* extra errors

* extra test [skip ci]

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Dave Pearson <davep@davep.org>
2024-01-04 15:07:43 +00:00
Rodrigo Girão Serrão
f3f274744e
Simplify docstring language.
As per review comment: https://github.com/Textualize/textual/pull/3912#discussion_r1439491581

Co-authored-by: Dave Pearson <davep@davep.org>
2024-01-04 14:57:12 +00:00
Rodrigo Girão Serrão
72bca2e672
Remove unused component classes.
As pointed out by Dave in https://github.com/Textualize/textual/pull/3912#discussion_r1439514599.
2024-01-04 14:47:32 +00:00
Rodrigo Girão Serrão
60570f1b7c
Merge branch 'main' into navigation 2024-01-04 14:42:57 +00:00
Darren Burns
6c54e325f9
Simplify 2024-01-04 14:36:57 +00:00
Darren Burns
4f6e2bd2c7
Fix off by one in gutter width calculation 2024-01-04 14:14:47 +00:00
Will McGugan
e5f223156f
screen docs (#3955)
* screen docs

* Added push_screen_wait

* words and test

* overload typing

* docstring

* style tweak

* ws

* Update docs/guide/screens.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/guide/screens.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/app.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* merge fix

* wording

* wording [skipci]

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2024-01-04 13:52:41 +00:00
Darren Burns
de69905140
Page up and page down 2024-01-04 13:44:43 +00:00
Darren Burns
823c348d6c
Clamping offsets 2024-01-04 12:36:47 +00:00
Rodrigo Girão Serrão
babbc40f9f
Merge pull request #3941 from elenakrittik/patch-1
fix(typing): Add missing generic parameter
2024-01-04 12:07:02 +00:00
Darren Burns
2e0e4e3ae2
Click targeting, scrolling 2024-01-04 11:44:46 +00:00
Darren Burns
6282735eb8
Add location to offset conversion 2024-01-04 11:28:49 +00:00
Darren Burns
f39220c540
Make click targeting work. However, we are still at the stage where scrolling the cursor into view is off as we havent yet accounted for wrapping. 2024-01-04 10:31:03 +00:00
Dave Pearson
39e700e3e0
Merge pull request #3950 from TomJGooding/docs-widget-fix-show-vertical-scrollbar-docstring 2024-01-04 07:15:04 +00:00
TomJGooding
8da216f8bf
docs(widget): fix show_vertical_scrollbar docstring 2024-01-04 07:11:37 +00:00
Darren Burns
0c0d979a6a
Supporting Home and End in the wrapped document 2024-01-03 16:51:46 +00:00
Darren Burns
fbeabd518d
Fix an off by one 2024-01-03 15:51:55 +00:00
Darren Burns
016ae3b626
Unsimplifying text rendering 2024-01-03 15:15:27 +00:00
Darren Burns
dffb488d54
Simplifying text rendering 2024-01-03 15:12:59 +00:00
Darren Burns
2e4bb2a49c
Merge branch 'text-area-wrapping-widget-changes' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2024-01-03 15:04:32 +00:00
Darren Burns
d50fa8d020
Fix wrapping off by one 2024-01-03 15:03:17 +00:00
Darren Burns
61f748254c
Fix non-wrapping rendering 2024-01-03 14:59:22 +00:00
Darren Burns
9eba82a296
Fix some width and wrapping issues, and corresponding style issues 2024-01-03 13:21:49 +00:00
Dave Pearson
df2d852077
Merge pull request #3944 from davep/tree-root-expanded-state
Retain `Tree.root`'s expanded state when performing a `Tree.clear`
2024-01-03 12:41:29 +00:00
Rodrigo Girão Serrão
354c42314a
Merge pull request #3905 from Textualize/hllines-docs-fix
Fix highlighted lines in docs example
2024-01-03 12:05:48 +00:00
Darren Burns
f15ca05a08
Making space for cursor only at line end 2024-01-03 10:21:22 +00:00
Will McGugan
03fb1b1deb api docs 2024-01-02 18:18:40 +00:00
Dave Pearson
5f5758c51f
Update the ChangeLog 2024-01-02 12:13:47 +00:00
Dave Pearson
d5765de863
Add snapshot tests for Tree.node/clear expansion 2024-01-02 12:11:09 +00:00
Dave Pearson
4c5defe778
Remember Tree.root's expanded state when performing Tree.clear
See #3557.
2024-01-02 11:19:39 +00:00
lena
82e4f07e7a
fix(typing): Add missing generic parameter 2024-01-02 01:27:25 +03:00
Will McGugan
b8fccd494a
lazy mount (#3936)
* lazy mount

* Lazy test

* doc

* Add to docs

* snapshot and changelog

* typing

* future

* less flaky

* comment
2024-01-01 15:54:55 +00:00
Darren Burns
ca9ddd50cf Avoid doing offset/line shift loops when there is no shifting to be done 2023-12-28 20:03:00 +00:00
Darren Burns
8be8b789ae Integrating navigator for basic movement 2023-12-28 17:09:55 +00:00
Darren Burns
424cf614ec Use navigator for moving cursor right 2023-12-28 16:29:12 +00:00
Darren Burns
103ea86ab2 Add navigator attribute to TextArea 2023-12-28 16:20:27 +00:00
Darren Burns
b69d3c3da4 Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping-widget-changes 2023-12-28 16:18:11 +00:00
Darren Burns
e04300a24a Fixing some tests - snapshots fail since rendering still needs work 2023-12-28 16:01:25 +00:00
Darren Burns
56b4df7335 Fix clamping 2023-12-28 15:29:55 +00:00
Darren Burns
7e464c8bdf Fixes for mypy 2023-12-28 12:14:51 +00:00
Darren Burns
af38ec545c Normalise wrap update range 2023-12-28 09:53:06 +00:00
Will McGugan
244e42c6fc missing f 2023-12-22 16:54:48 +00:00
Will McGugan
6a894461ba
Fix render str (#3920)
* Fix text render

* changelog
2023-12-22 15:40:39 +00:00
Darren Burns
7a822c8ce1 Leaving comments for future Darren 2023-12-21 16:59:26 +00:00
Darren Burns
335d2317c2 Fixing the calculation which recomputes offset to line mapping 2023-12-21 16:37:23 +00:00
Darren Burns
1b3e8d00a0 Fixing some logic, but still crashes in some situations 2023-12-20 18:18:14 +00:00
Rodrigo Girão Serrão
0e6769721b
Show TCSS as css instead of sass. 2023-12-20 17:11:30 +00:00
Rodrigo Girão Serrão
3164bacbbb
Update changelog. 2023-12-20 16:39:04 +00:00
Rodrigo Girão Serrão
5ad6249417
Fix keyboard navigation in list view. 2023-12-20 16:38:54 +00:00
Rodrigo Girão Serrão
dc696b9466
Fix keyboard navigation in option list. 2023-12-20 16:37:49 +00:00
Rodrigo Girão Serrão
8c895b6c8e
Refactor keyboard navigation in radio set. 2023-12-20 16:36:49 +00:00
Rodrigo Girão Serrão
3203c4e695
Add auxiliary module for widget navigation.
Implement a simple API to handle navigation inside sequences of possibly-disabled candidates.
2023-12-20 16:34:23 +00:00
Rodrigo Girão Serrão
ff70df87aa
Merge pull request #3896 from Textualize/move-child-before-after-self-noop
Move child acts as noop if trying to move before/after itself
2023-12-20 13:23:58 +00:00
Rodrigo Girão Serrão
e03de2765e
Refactor tests.
Address review feedback in https://github.com/Textualize/textual/pull/3896#discussion_r1430711149.
2023-12-20 12:00:52 +00:00
Rodrigo Girão Serrão
373a31992b
Merge pull request #3904 from Textualize/listviewindex-doc
Document ListView.index.
2023-12-19 13:42:56 +00:00
Rodrigo Girão Serrão
49994f60ab
Fix hl_lines. 2023-12-19 11:59:18 +00:00
Rodrigo Girão Serrão
7c0fe102dd
Merge pull request #3900 from jrycw/add-one-period
docs(queries): add one period
2023-12-19 11:45:02 +00:00
Rodrigo Girão Serrão
aa87295d9a
Document ListView.index. 2023-12-19 11:43:30 +00:00
Jerry Wu
d6780f71cd
Update queries.md 2023-12-19 08:51:47 +08:00
Rodrigo Girão Serrão
4079437109
Link to PR in changelog. 2023-12-18 16:41:40 +00:00
Darren Burns
efb04ccdec Building offset mapping correctly on edit 2023-12-18 16:03:40 +00:00
Rodrigo Girão Serrão
5f85cf4bd4
Add tests.
Co-authored-by: Jeff Epler <jepler@gmail.com>
2023-12-18 15:46:56 +00:00
Rodrigo Girão Serrão
a9444aadfd
Fix move_child noop when target is child.
This finishes the work done in #2530, which was incomplete as seen in https://github.com/Textualize/textual/issues/1743#issuecomment-1858132809.
2023-12-18 15:46:41 +00:00
Rodrigo Girão Serrão
be862376c6
Add overloads to move_child.
This makes it so that typecheckers can warn users early about calling 'move_child' with no after/before or with both.
We also make those two parameters keyword-only to increase readability.
2023-12-18 15:44:30 +00:00
Darren Burns
30ad4c32c2 Improving wrapped document internal data structures. 2023-12-18 12:02:28 +00:00
Will McGugan
1c8dc5d74e
bump 0.46 (#3891) 2023-12-17 20:17:20 +00:00
Rodrigo Girão Serrão
c4e1067ceb
Restore no-op default. (#3879)
As it stands, if there's only one non-disabled radio button, using up/down to navigate will de-select it (because the default value in 'min' is None) when navigation should do nothing (the default should be 'selected').
2023-12-17 15:56:28 +00:00
Will McGugan
32b916fa23
fix for zero width scrollbars (#3887)
* fix for zero width scrollbars

* changelog

* snapshot fix

* simplify

* change wait

* early out, test fix

* no early out

* increase wait

* auto pilot

* increase wait

* skip windoze

* disable test

* restore test

* flush events

* another flush

* maybe fix race condition

* uderline fix

* simplify

* remove flush events
2023-12-17 14:40:58 +00:00
Will McGugan
1ce647350d
Button optimization (#3885)
* optimize button

* optimize

* simplify

* fix test

* explicit none

* sleep for animation

* test fix

* wait snapshots

* remove tab delay

* reduce delay

* fix

* schdule animations

* remove import [skip ci]
2023-12-16 18:38:36 +00:00
Will McGugan
ac9fd784d8 Better cache key 2023-12-16 10:10:31 +00:00
Dave Pearson
cc5fee4533
Merge pull request #3884 from TomJGooding/docs-readme-update-python-version
docs(readme): update python version
2023-12-16 08:49:05 +00:00
Dave Pearson
60bf90a7d8
Merge pull request #3883 from TomJGooding/docs-changelog-fix-unreleased-updates
docs(changelog): fix unreleased updates
2023-12-16 08:47:49 +00:00
TomJGooding
9df9fb9242 docs(readme): update python version 2023-12-15 18:57:59 +00:00
TomJGooding
6647d5a783 docs(changelog): fix unreleased updates 2023-12-15 18:34:19 +00:00
Darren Burns
f7877cee7a Approaching range wrapping again 2023-12-15 17:44:55 +00:00
Will McGugan
b4a5674eae
rules caching (#3880)
* rules caching

* changelog

* docstring

* fix cache

* fix test

* fix test

* remove comment [skip ci]
2023-12-15 16:44:40 +00:00
Rodrigo Girão Serrão
1ebb59b383
Merge pull request #3872 from Textualize/fix-keyboard-navigation-radio-buttons
Ignore disabled radio buttons when moving selection.
2023-12-15 12:25:07 +00:00
Dave Pearson
c94752d78e
Merge pull request #3815 from davep/tab-discontent
Namespace IDs for `ContentTab` in `TabbedContent`
2023-12-15 12:12:53 +00:00
Rodrigo Girão Serrão
6e21229924
Make black happy. 2023-12-15 12:01:06 +00:00
Will McGugan
c5cf804bcb
delay underline in tabs (#3876) 2023-12-15 11:58:56 +00:00
Will McGugan
9f917743ce
optimization (#3877) 2023-12-15 11:46:40 +00:00
Rodrigo Girão Serrão
17cd38f369
Update src/textual/widgets/_radio_set.py
🤦

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-12-15 11:32:32 +00:00
TomJGooding
e72bab31a4
feat(collapsible): make title a reactive attribute (#3830)
* feat(collapsible): make title a reactive attribute

* update docs and changelog

* fix collapsed in init

* change collapsible title to static

* remove unnecessary mounted check
2023-12-15 10:39:42 +00:00
Rodrigo Girão Serrão
bf7b70c456
Add note about . (#3873) 2023-12-15 10:24:33 +00:00
Dave Pearson
dbf0237251
Update src/textual/widgets/_tabbed_content.py
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-12-14 17:37:14 +00:00
Dave Pearson
5c260d0ff8
Remove unnecessary use of results() 2023-12-14 17:35:24 +00:00
Dave Pearson
b00374d4d6
Add missing Raises section 2023-12-14 17:33:37 +00:00
Dave Pearson
c498a43375
Remove unused watch parameter 2023-12-14 17:32:56 +00:00
Rodrigo Girão Serrão
0099e496df
Update highlighted lines. (#3875) 2023-12-14 16:36:21 +00:00
Daniel Schwarz
2dd6e92365
handle cities with spaces in the urllib.request version of weather05.py (#3871)
handle cities with spaces in the urllib.request version of weather
2023-12-14 15:39:43 +00:00
Rodrigo Girão Serrão
2e0f84f009
Ignore disabled radio buttons when moving selection. 2023-12-14 15:16:42 +00:00
Rodrigo Girão Serrão
49e7186268
Merge pull request #3845 from branchvincent/importlib-metadata
drop importlib-metadata
2023-12-14 12:06:43 +00:00
Rodrigo Girão Serrão
e1b94e4b66
Add 3.12 to CI (#3863)
Adds Python 3.12 to CI.
Because `tree-sitter`/`tree-sitter-languages` can't be installed on 3.12 yet, we need to run slightly different commands when installing dependencies/running tests on 3.12.

See for more context: https://github.com/Textualize/textual/issues/3491#issuecomment-1854156476
2023-12-14 10:42:18 +00:00
Branch Vincent
f01d31ca01
drop importlib-metadata 2023-12-13 18:57:29 -08:00
TomJGooding
4a12076bf2
docs: update minimum python version (#3866)
* docs: update minimum python version

* docs: update minimum python version
2023-12-13 21:05:42 +00:00
Will McGugan
c6aef4b8b9 Added Merlin to examples 2023-12-13 17:32:42 +00:00
Darren Burns
9ca11d2c37 Integrating wrapping with no width 2023-12-13 13:32:44 +00:00
Will McGugan
a85edb77f4 added example 2023-12-13 10:52:45 +00:00
Darren Burns
fab9e02071 Computing line -> offset when wrapping occurs 2023-12-13 10:27:38 +00:00
Will McGugan
618a450b31 changelog 2023-12-12 21:22:46 +00:00
Will McGugan
4bfb82ac06
fix update styles (#3860)
* fix update styles

* snapshot test, version bump

* changelog

* snapshot
2023-12-12 21:20:22 +00:00
Darren Burns
354b7ce0b2
Build up the offset map in wrapped document to allow quick lookups of offsets to lines 2023-12-12 16:11:52 +00:00
Simon Willison
ea3020f12f
Fix link previews on Twitter (#3856) 2023-12-12 15:29:25 +00:00
Will McGugan
2f3809dcff clarification 2023-12-12 15:21:52 +00:00
Will McGugan
0cbf728d39 fix example 2023-12-12 15:13:18 +00:00
Will McGugan
21ba7dbcf6
bump (#3855) 2023-12-12 14:42:07 +00:00
Will McGugan
bfbc6fb285
added howto (#3854)
* added howto

* don't need this

* don't need this

* move title

* docstring
2023-12-12 14:39:27 +00:00
Darren Burns
13de4159fe
Remove now-redundant wrap() calls 2023-12-12 13:11:47 +00:00
Darren Burns
8d08692b08
Add wrap reactive to TextArea 2023-12-12 12:46:12 +00:00
Darren Burns
d43ed2f3a3
Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping-aware-cursor-navigation 2023-12-12 11:37:39 +00:00
Darren Burns
099dac3e23
Add a TODO comment 2023-12-12 11:25:37 +00:00
Will McGugan
dbdcf27526
skip if not mounted (#3847)
* skip if not mounted

* avoid refresh before  mount

* micro op

* ws
2023-12-12 11:01:20 +00:00
Daniel Cook
bac7119539
resolves #3833 - change wording/grammar in the documentation for box-sizing (#3850) 2023-12-12 09:37:38 +00:00
Darren Burns
8a6a97cd33
Moving to the home location in a wrapped document 2023-12-11 17:16:05 +00:00
Will McGugan
0bbf9d1f12 Don't @ me 2023-12-11 16:44:23 +00:00
Darren Burns
ca834da5ec
Cursor jumping to end of wrapped line 2023-12-11 15:31:57 +00:00
Darren Burns
32144433d7
Remove unused clamp 2023-12-11 14:18:45 +00:00
Darren Burns
024d1b68c7
Adding wrapped text area movement module docs, correcting off by one 2023-12-11 14:16:54 +00:00
Will McGugan
8f3d320591
Faster css (#3844)
* faster css

* simplify

* ws

* superfluous function

* simplify selector names, change to set

* changelog

* micro op

* quicken

* Update src/textual/strip.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-12-11 12:14:38 +00:00
Darren Burns
3c487e280d
Merge branch 'text-area-wrapping-aware-cursor-navigation' of github.com:Textualize/textual into text-area-wrapping-aware-cursor-navigation 2023-12-11 10:54:34 +00:00
Darren Burns
0e72b35b12
Remove redundant function 2023-12-11 10:47:23 +00:00
Will McGugan
a2a6f56cec
docs fix (#3841) 2023-12-09 12:12:46 +00:00
Will McGugan
5eea51ce1b
Optimizations (#3837)
* optimize layout

* optimization

* test fix

* startup optimization

* simplify

* faster content height
2023-12-09 11:17:59 +00:00
Will McGugan
82d6e3e05f
Roll back ALLOW_CHILDREN and max height fix (#3814)
* max height

* changelog

* snapshot

* unused exception
2023-12-07 18:40:48 +00:00
Dave Pearson
4f459d63b2
Fix a typo in docs for OptionList (#3828) 2023-12-07 18:39:47 +00:00
Rodrigo Girão Serrão
880fc89cd0
Add Collapsible.Toggled. (#3825)
Add Collapsible.Toggled, Collapsible.Expanded, and Collapsible.Collapsed.
2023-12-07 16:09:45 +00:00
Dave Pearson
de83fae06c
Merge pull request #3786 from davep/force-tree-node-scroll
Force the call to scroll to the region of a node's label
2023-12-07 15:36:21 +00:00
Dave Pearson
b16217cfe8
Update the ChangeLog 2023-12-07 15:19:50 +00:00
Dave Pearson
758547b5dd
Add a note to the docs about styling tabs
Note that I can't tell if this comes out as I'd like, as right at the moment
I can't locally serve the docs due to an error during documentation
generation (an issue confirmed by @rodrigogiraoserrao).
2023-12-07 15:02:39 +00:00
Dave Pearson
1e472d54e9
Mark ContentTab._PREFIX as being a constant 2023-12-07 14:01:27 +00:00
Dave Pearson
fc5d611eb5
Add a get_pane method to TabbedContent 2023-12-07 13:03:02 +00:00
Dave Pearson
474f2146d3
Swap to selecting on the pane for TabbedContent.TabActivated 2023-12-07 12:03:39 +00:00
Dave Pearson
779c590f13
Better type the tab within TabbedContent.TabActivated
I *might* add a method to ContentTab for getting the clean ID, so having the
correct type will help IDEs using LSP.
2023-12-07 11:29:08 +00:00
Dave Pearson
06e7b87545
Take the prefix into account during tab en/disable 2023-12-07 11:21:25 +00:00
Dave Pearson
a58581dd5f
Remove unnecessary f-strings 2023-12-07 10:39:12 +00:00
Dave Pearson
1f5d84a60f
Remove debugging notify calls
Oops.
2023-12-07 09:30:11 +00:00
Will McGugan
2a67b6d15c
simplify (#3820) 2023-12-06 18:44:40 +00:00
Will McGugan
b263e44024
simplify loading (#3816)
* simplify loading

* ws removal

* no need for this

* simplify

* gutter

* tests and refactor

* ws

* ws

* restore

* move to compositor

* words

* tweak timeout in snapshot
2023-12-06 17:31:03 +00:00
Dave Pearson
1263430124
Run black over the TabbedContent code
Looks like I managed to nuke my pre-commits recently.
2023-12-06 16:30:38 +00:00
Dave Pearson
abf5d56b47
Run black over the tests 2023-12-06 16:29:46 +00:00
Dave Pearson
7bf9503af3
Namespace the Tab IDs within a TabbedContent
See #3695.
2023-12-06 16:26:45 +00:00
Dave Pearson
8be6032de9
Experiment with namespacing the ContentTab IDs
See #3695.
2023-12-05 16:00:09 +00:00
azinneck0485
87ef1bbcc1
Add Select.from_values class method for initializing with iterator (#3743)
* prototype to use class method to initialize Select object using an iterator

* add docstring and optional arguments to Select.from_values()

* add test widget for Select.from_values() and update documentation to include an example for its use

* add snapshot tests to Select.from_values() class method and update snapshots to include results

* address review comments

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-12-05 14:17:25 +00:00
TomJGooding
d04c8387ee
fix(datatable): raise error for update_cell with invalid column key (#3336)
* fix(datatable): raise error for update cell with invalid column key

* update changelog

* fix changelog version

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-12-05 13:37:37 +00:00
Will McGugan
17726b6b77
docs (#3812) 2023-12-05 12:13:18 +00:00
Will McGugan
59dc11d8a2
culling (#3810)
* culling

* don't cull fixed
2023-12-05 12:07:02 +00:00
Dave Pearson
3ab7b57d3b
Merge pull request #3808 from davep/only-suggest-on-focus
Only show `Input` suggestions on focus
2023-12-05 10:10:52 +00:00
Dave Pearson
10d82d68e2
Update the snapshot tests 2023-12-04 20:52:25 +00:00
Dave Pearson
6c60302566
Change the suggester snapshot test code to account for many Input 2023-12-04 20:51:59 +00:00
Dave Pearson
67d383cbb5
Update the CHANGELOG 2023-12-04 20:42:25 +00:00
Dave Pearson
e7e59b0e8c
Add extra Inputs to the suggester snapshot test
See #3806
2023-12-04 20:39:50 +00:00
Dave Pearson
c231169607
Only show a suggestion when an Input has focus
Fixes #3806
2023-12-04 20:37:34 +00:00
Dave Pearson
062c84b783
Clean up trailing whitespace 2023-12-04 20:35:10 +00:00
Will McGugan
cb612395e8 docstring 2023-12-04 16:25:44 +00:00
Will McGugan
07182c3d53
remove align (#3804) 2023-12-04 14:30:38 +00:00
Will McGugan
ad3934bc9d
changelog and bump (#3803)
* changelog and bump

* diff
2023-12-04 13:56:49 +00:00
Will McGugan
8ec57198ac
faster scrolling (#3801)
* faster scrolling

* simplify

* bail early

* better comment
2023-12-04 13:51:41 +00:00
Will McGugan
dc43f4447f
optimize cuts (#3798)
* optimize cuts

* even simpler

* simpler

* another optimization

* optimize scroll

* remove assert
2023-12-04 10:21:44 +00:00
Will McGugan
e6b92a66a0 typo 2023-12-01 11:54:47 +00:00
Will McGugan
e537125baa
Catch no widget (#3790)
* Catch no widget

* changelog

* version bump

* remove prints
2023-12-01 11:50:46 +00:00
Dave Pearson
817af470c8
Merge branch 'main' into force-tree-node-scroll 2023-11-30 18:38:02 +00:00
Dave Pearson
83583d4feb
Update the CHANGELOG 2023-11-30 18:32:16 +00:00
Dave Pearson
49beb3e407
Force the call to scroll to the region of a node's label
Re: https://discord.com/channels/1026214085173461072/1033754296224841768/1179803173498658966

It is possible that the developer may be making a call to scroll to a node,
while the scrollbar isn't quite in play yet; without a force to scroll the
scroll won't happen.
2023-11-30 18:15:39 +00:00
Darren Burns
185079cc2f Testing moving down 2023-11-30 11:33:57 +00:00
Darren Burns
7b1467b583 Implement moving down 2023-11-30 11:02:30 +00:00
Darren Burns
7d9cb5d0db Document navigator down 2023-11-30 10:43:19 +00:00
Dave Pearson
be8581e3c9
Merge pull request #3769 from davep/simplify-some-rxvt-sequences
Simplify some sequences that seem unique to rxvt
2023-11-30 09:59:09 +00:00
Dave Pearson
0c197777e3
Map shift-enter 2023-11-30 09:15:03 +00:00
Dave Pearson
c4c52e7ca4
Add shift fullstop 2023-11-30 08:53:15 +00:00
Dave Pearson
95fc41323e
Add zero
I went full Roman...
2023-11-30 08:51:20 +00:00
Darren Burns
5a1ced563d
Improve test data 2023-11-29 17:19:12 +00:00
Darren Burns
6779a9b2c1
More tests for navigating through wrapped content 2023-11-29 17:05:25 +00:00
Darren Burns
daefc7eba4
Implement clamping 2023-11-29 16:54:53 +00:00
Will McGugan
a3e91d43a4
mount error (#3780)
* mount error

* changelog
2023-11-29 15:38:10 +00:00
TomJGooding
29d6f3d86a
docs(widget): fix broken capture_print link (#3504)
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-11-29 14:50:38 +00:00
Dave Pearson
12a8429fec
Update the CHANGELOG 2023-11-29 14:49:41 +00:00
TomJGooding
e7d1ed4bde
docs(contributing): update setup guide (#3713)
* docs(contributing): update setup guide

* move make note to match other sections
2023-11-29 14:47:31 +00:00
Dave Pearson
9dcc2fad28
Merge branch 'main' into simplify-some-rxvt-sequences 2023-11-29 14:27:37 +00:00
Darren Burns
9a180ea1d0
Implement up in document navigator 2023-11-29 14:20:30 +00:00
Darren Burns
9fbaffe060
Use system logging group when logging from app to be consistent (#3580) 2023-11-29 14:13:04 +00:00
Paul Ollis
754fc5ca93
Add TreeNode.refresh (fix for issue #3637) (#3639)
* Added test demonstrating issue 3637.

* Fix for issue 3637.

* Make new tests refer to issue 3637.

* Give TreeNode a repaint method.

This is following pull request discussions with davep. Partly as a side
effect, Tree.refresh_line is only required internally, so I have removed
its docstring so it does not appear as part of the public API.

* Reinstate the docstring for refresh_line

* Make refresh_line internal

* Simplify the docstring for TreeNode.refresh

* Swap the TreeNode.refresh tests to something a bit simpler

While it would be nice to dive really deep into testing the refresh (the
request was initially that we test that values didn't come from the cache,
etc), there isn't really a reasonable interface for doing such tests.
Moreover, it looks like that, at least in a testing scenario, a node refresh
can result in the labels of more than just that node being called upon.

As such we're going to go with a pragmatic approach to testing
this (discussed and agreed during 2023-11-21 standup).

* Update the CHANGELOG

Co-authored-by: Paul Ollis <paul@cleversheep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-11-29 14:12:16 +00:00
Rodrigo Girão Serrão
d993cce505
Rename link-hover-* rules to link-*-hover. (#3736)
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-11-29 14:09:58 +00:00
Darren Burns
5603a4da2b
Fix GH Actions, remove Python 3.7, re-enable MacOS, remove old dev dependency (#3766)
* Fixing pytest running on incorrect Python version in GitHub actions.
Also removes 3.12 from the testing matrix, and enables MacOS again.

* Dropping Python 3.7

* Update required Python version to ^3.8

* Remove 3.7 asyncio compatibility layer

* Version pinning in GitHub Action
2023-11-29 14:05:25 +00:00
TomJGooding
ed3924e89c
docs(reference): delete outdated devtools.md (#3774) 2023-11-29 14:02:27 +00:00
Petr Viktorin
1eb44125d6
_box_drawing.py: Fix 3 of the characters (#3773)
* _box_drawing.py: Fix 3 of the characters

* Update src/textual/_box_drawing.py

* Fix quotes
2023-11-29 14:01:40 +00:00
Dave Pearson
b55b2db584
Merge pull request #3737 from davep/rxvt-keys
Add support for ctrl+Fn keys under rxvt
2023-11-29 13:58:26 +00:00
Dave Pearson
13124b6943
Merge branch 'main' into rxvt-keys 2023-11-29 13:48:44 +00:00
Will McGugan
382bf10cf4 fix changelog 2023-11-29 13:45:47 +00:00
Dave Pearson
78d4569fb3
Merge branch 'main' into rxvt-keys 2023-11-29 13:44:32 +00:00
Will McGugan
1a76b628c7
fix threading issue (#3779)
* fix threading issue

* remote debug

* changelog

* version bump

* changelog

* docstring

* fix snapshot test
2023-11-29 13:28:24 +00:00
Dave Pearson
cca507af2a
Merge branch 'main' into rxvt-keys 2023-11-29 13:07:27 +00:00
Will McGugan
eed7a94eda fix example 2023-11-29 10:18:36 +00:00
Will McGugan
0ec41af945
add mouse down handler (#3778)
* add mouse down handler

* changelog

* version bump
2023-11-29 10:18:18 +00:00
Will McGugan
60766a3056
version bump (#3770)
* version bump

* changelog
2023-11-28 14:32:18 +00:00
Will McGugan
cb57d70e81
App focus (#3767)
* global focus

* change name to app focus

* app focus

* refactor

* changelog
2023-11-28 14:15:10 +00:00
Dave Pearson
d9e0258750
Simplify some sequences that seem unique to rxvt
Almost(?) all other terminals I've tested, shifted numeric keypad keys just
yield the unshifted version of that key. rxvt seems to have sequences for
those keys. Much like #3737 and #3739 we *could* add support for these
sequences to the ANSI sequence list, but this is a bit different. Whereas in
those other PRs we've been adding the alternate sequences that rxvt seems
to have for well known and well-supported keys, here it would be the other
way round: it would be adding bindable keys that are only available on a
small subset of environments.

Ideally, at least for the moment, we want to encourage people to bind keys
that are well-supported; so here we turn the shifted keypad keys into their
unshifted counterparts, thus matching many other environments.

See #3741
2023-11-28 12:56:20 +00:00
Dave Pearson
5093c80905
Merge branch 'main' into rxvt-keys 2023-11-28 11:42:18 +00:00
Darren Burns
f033df09a1
Begin implementing up 2023-11-28 10:17:52 +00:00
Dave Pearson
2f86ee4e52
Allow setting a toggle button's label (#3765)
* Allow setting a toggle button's label

Until now CheckBox and RadioButton labels have been fixed after the widgets
have been created. Prompted by #3764 and seeing no reasonable reason to not
allow updating the labels later on, this adds that ability.

* Link the CHANGELOG entries to the PR

* Ensure the setter enforces the first-line-only rule too
2023-11-28 09:54:37 +00:00
Will McGugan
4058e598e8
error if no children allowed (#3758)
* error if no children allowed

* changelog

* changelog

* remove comment

* quote RHS

* annotations

* attempt to fix 3.7

* restore experiment
2023-11-27 17:09:50 +00:00
TomJGooding
fb2a0fe71a
docs(changelog): fix out of sync changes (#3755)
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-11-27 16:56:31 +00:00
Rodrigo Girão Serrão
7bbb1947aa
Typing fix. (#3759) 2023-11-27 16:55:25 +00:00
Rodrigo Girão Serrão
fe0892e0cf
Merge pull request #3751 from Textualize/documentation-fixes
Documentation fixes.
2023-11-27 16:53:35 +00:00
Darren Burns
f4da5d8aed
Left and right navigation 2023-11-27 15:29:04 +00:00
Will McGugan
b70a8f179e
remove flicker (#3757)
* remove flicker

* changelog
2023-11-27 15:11:47 +00:00
Darren Burns
2aad184f3f
Checking cursor position in wrapped context utilities 2023-11-27 15:09:48 +00:00
Will McGugan
bc93b21bc6
Lazy command provider (#3756)
* Lazy command privoder

* changelog

* fix tests

* test fix
2023-11-27 14:15:58 +00:00
Rodrigo Girão Serrão
9a9d534b6d
Document DOMNode.watch (#3724)
* Document DOMNode.watch

* Create standalone example.

Addresses review comment: https://github.com/Textualize/textual/pull/3724#pullrequestreview-1744357054.

* Create standalone example.

Addresses review comment: https://github.com/Textualize/textual/pull/3724#pullrequestreview-1744357054.
2023-11-27 13:44:26 +00:00
Will McGugan
370f5f7214
Keyline rule (#3669)
* canvas

* imports

* more box drawing

* lines

* lines

* box drawing table

* fix box table

* tweak test

* canvas color

* simplify canvas

* optimization

* clipping

* render experiment

* keyline css

* tests

* don't draw around invisible widgets

* optimize

* snapshot test

* docs and examples

* tab size

* disclaimer

* docs

* changelog

* snapshots

* accidental add

* rename for consistency

* simplify color

* docstrings

* comment

* snapshots

* micro optimize

* micro-optimization

* typing

* set over list

* remove comment

* docstring

* punctuation

* Update docs/styles/keyline.md

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2023-11-27 11:54:53 +00:00
Will McGugan
4c4e724b85
move expensive imports out of module scope (#3753)
* move expensive imports out of module scope

* function level import

* changelog

* restore _asyncio.py

* restore asyncio

* fix create_Task

* create_task fix
2023-11-27 11:47:04 +00:00
TomJGooding
d8b0583c23
fix(select): watch reactive prompt change (#3701)
* fix(select): allow reactive prompt change

* update watcher with new is_mounted check

* update only first in option list

* update option list only if allow blank

* update changelog
2023-11-27 10:46:36 +00:00
Rodrigo Girão Serrão
c19d54de67
Documentation fixes. 2023-11-27 10:31:33 +00:00
Darren Burns
ee27c73632
Check locations at start of wrapped/document line 2023-11-27 10:31:14 +00:00
David Brochart
9a9a072bad
Fix typo (#3729) 2023-11-25 10:45:37 +00:00
Darren Burns
f6f1fbc70c
Merge branch 'text-area-wrapping' of github.com:Textualize/textual into text-area-wrapping-aware-cursor-navigation 2023-11-23 17:03:29 +00:00
Darren Burns
80036f90a7
Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping-aware-cursor-navigation 2023-11-23 17:03:03 +00:00
Darren Burns
5ef1734382
Merge branch 'main' of github.com:Textualize/textual into text-area-wrapping 2023-11-23 17:01:21 +00:00
Darren Burns
434a64abd5
Tidying some wrapping stuff, docstrings 2023-11-23 17:00:11 +00:00
Darren Burns
23735cdc34
Fixing click targeting/tab expansion interaction (#3725)
* Extract logic for converting cell widths to column indices

* Fix click target issue when tabs not fully expanded

* Update CHANGELOG

* Update docstring

* Update CHANGELOG.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-11-23 16:54:37 +00:00
Darren Burns
028d95e782
Simplification of wrapping coordinate conversion 2023-11-23 16:52:20 +00:00
Darren Burns
76cd4e8922
Code reuse in WrappedDocument 2023-11-23 16:50:50 +00:00
Darren Burns
2d47d7c65a
Merge branch 'extract-cell-width-measurement' into text-area-wrapping 2023-11-23 16:26:25 +00:00
Darren Burns
57adb2dfc4
Update docstring 2023-11-23 16:24:43 +00:00
Dave Pearson
badeb9d4c7
Merge branch 'main' into rxvt-keys 2023-11-23 15:59:43 +00:00
Dave Pearson
a5650f73c4
Add missing CHANGELOG entry for related PR 2023-11-23 15:58:56 +00:00
Darren Burns
84d51136a4
Ensure consistent interface when wrapping enabled/disabled 2023-11-23 15:55:22 +00:00
Dave Pearson
76c0c0e286
Merge pull request #3739 from davep/rxvt-more-navigation-keys
Add support for various modified navigation/edit keys under rxvt
2023-11-23 15:49:49 +00:00
Darren Burns
b0a7e51bfd
Start on DocumentNavigator 2023-11-23 14:45:16 +00:00
Dave Pearson
dac9ab0c6b
Add support for ctrl+pgup/dn under rxvt 2023-11-23 14:39:26 +00:00
Dave Pearson
3b89363ece
Add ctrl+home and ctrl+end support for rxvt 2023-11-23 14:37:09 +00:00
Dave Pearson
ed14269995
Fix a typo 2023-11-23 14:36:04 +00:00
Dave Pearson
61c7703b27
Add modified delete keys for rxvt 2023-11-23 14:29:37 +00:00
Dave Pearson
721269557e
Add shifted navigation keys for rxvt 2023-11-23 14:21:49 +00:00
Dave Pearson
1ee1f7841c
Add ctrl+up and ctrl+down for rxvt 2023-11-23 13:59:30 +00:00
Darren Burns
ecaae8ef6b
Merge branch 'extract-cell-width-measurement' of github.com:Textualize/textual into text-area-wrapping-aware-cursor-navigation 2023-11-23 13:44:42 +00:00
Darren Burns
56c79cf7b7
Wrapping coordinate conversion clamping 2023-11-23 13:11:53 +00:00
Will McGugan
3c92376bc3
Update README.md 2023-11-23 13:11:02 +00:00
Dave Pearson
51047f0b00
Update the CHANGELOG 2023-11-23 13:01:13 +00:00
Dave Pearson
aee54eca79
Add support for ctrl+Fn keys under rxvt
See #3735 (and by extension #3440).
2023-11-23 12:34:49 +00:00
Darren Burns
5f57396579
Fix wrapping offset calculation 2023-11-23 11:49:01 +00:00
Rodrigo Girão Serrão
07bfcf2feb
Merge pull request #3730 from Textualize/docs-improvements
Improve documentation.
2023-11-23 11:01:18 +00:00
Rodrigo Girão Serrão
92f5c4242f
Update src/textual/widgets/_markdown.py
Co-authored-by: Dave Pearson <davep@davep.org>
2023-11-23 10:47:43 +00:00
Rodrigo Girão Serrão
c7d59b9f20
Update src/textual/widgets/_directory_tree.py
Co-authored-by: Dave Pearson <davep@davep.org>
2023-11-23 10:47:37 +00:00
Darren Burns
5cca09160a
Merge branch 'text-area-wrapping' of github.com:Textualize/textual into text-area-wrapping 2023-11-22 16:44:46 +00:00
Darren Burns
e196e01385
Change line_offset_to_index to offset_to_location (it now works in two dimensions) to support click targeting correctly when a document is wrapped. 2023-11-22 16:44:34 +00:00
Darren Burns
6c5a98a8fb
Update CHANGELOG 2023-11-22 16:40:17 +00:00
Darren Burns
d7a2c197f7
Merge branch 'main' of github.com:Textualize/textual into extract-cell-width-measurement 2023-11-22 16:39:40 +00:00
Will McGugan
a64a0d21d7
version bump (#3731) 2023-11-22 16:17:26 +00:00
Darren Burns
b85e963ffc
Merge branch 'extract-cell-width-measurement' into text-area-wrapping 2023-11-22 15:56:04 +00:00
Rodrigo Girão Serrão
b902b1cae6
Improve documentation. 2023-11-22 15:51:19 +00:00
Darren Burns
e2ff0c4c43
Fix click target issue when tabs not fully expanded 2023-11-22 15:41:44 +00:00
Darren Burns
988e7ab386
Extract logic for converting cell widths to column indices 2023-11-22 12:31:35 +00:00
Rodrigo Girão Serrão
00b0a631b4
Update PR. 2023-11-22 10:27:42 +00:00
Rodrigo Girão Serrão
94723deb84
Merge branch 'main' into early-show-root 2023-11-22 10:21:49 +00:00
Darren Burns
6444ad0b0b
Update src/textual/document/_wrapped_document.py
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-11-21 20:39:03 +00:00
Darren Burns
dbe056b671
Fix docstring 2023-11-21 15:35:22 +00:00
Darren Burns
abd466766b
Small optimisations 2023-11-21 15:29:44 +00:00
Darren Burns
8d6784b7cc
Testing invalid line numbers being passed to WrappedDocument.get_offsets 2023-11-21 15:10:56 +00:00
Darren Burns
b3b3900e57
Testing getting offsets 2023-11-21 14:51:31 +00:00
Rodrigo Girão Serrão
896aa9f924
Merge pull request #3718 from Textualize/compositor-ignore-unmounted
Compositor ignores non-mounted widgets.
2023-11-21 14:43:40 +00:00
Darren Burns
63ad2c2762
Test WrappedDocument offset error cases 2023-11-21 14:38:23 +00:00
Darren Burns
a770b390eb
Testing offset to line_index 2023-11-21 14:26:35 +00:00
Rodrigo Girão Serrão
a000994b2f
Compositor ignores non-mounted widgets.
This, in turn, ensures widgets are not rendered before they are mounted.
2023-11-21 14:23:09 +00:00
Darren Burns
6d2c500e5b
Implementing WrappedDocument required utility methods 2023-11-21 14:14:12 +00:00
Rodrigo Girão Serrão
67dd75ae64
Merge pull request #3715 from Textualize/widget-compose-example
Fix docstring example.
2023-11-21 11:27:50 +00:00
Rodrigo Girão Serrão
f5826951bf
Fix docstring example. 2023-11-21 10:41:02 +00:00
Darren Burns
70447ef2e0
Merge branch 'text-area-wrapping' of github.com:Textualize/textual into text-area-wrapping 2023-11-21 10:37:51 +00:00
Will McGugan
a11ff16519
fix min width (#3712)
* fix min width

* changelog

* snapshot tests

* whitespace
2023-11-21 09:48:57 +00:00
TomJGooding
ca68b868a6
feat(widget): add is_mounted property (#3709)
* feat(widget): add is_mounted property

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>

* fix property docstring

* add simple test

* update changelog

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
2023-11-20 20:42:08 +00:00
Darren Burns
325ec78234 Remove a comment 2023-11-20 17:14:22 +00:00
Darren Burns
18fc68733e Remove more irrelevant code 2023-11-20 17:13:44 +00:00
Darren Burns
aab538fb0c Remove irrelevant code 2023-11-20 17:12:16 +00:00
Darren Burns
2c9f7644f8 Maintaining wrapping offsets 2023-11-20 17:09:32 +00:00
Darren Burns
2dda263e41 Test wrapping in longer text 2023-11-20 15:55:12 +00:00
Darren Burns
95417a42f1 Fix refresh_range wrapping test 2023-11-20 15:45:06 +00:00
Darren Burns
a3a2600607 Fixing some naming issues 2023-11-20 15:23:18 +00:00
Darren Burns
add3abdde6 Add tests for wrapped document 2023-11-20 15:15:48 +00:00
Dave Pearson
ca534a0cc4
Merge pull request #3632 from TomJGooding/fix-scrollable-container-receive-focus
fix(scrollable container): receive focus
2023-11-20 14:23:04 +00:00
Dave Pearson
81b35e328d
Merge pull request #3708 from davep/main 2023-11-20 14:14:00 +00:00
Darren Burns
56419332bb
Begin implementing wrapping 2023-11-20 12:59:45 +00:00
Dave Pearson
43de6d7bab
Merge branch 'Textualize:main' into main 2023-11-20 12:30:36 +00:00
Dave Pearson
01cfdf8848
Add some wiggle room to the no-matches command palette timeout test
See #3700.
2023-11-20 12:28:17 +00:00
Darren Burns
8cef051c51
Initial wrapping 2023-11-20 12:27:52 +00:00
Rodrigo Girão Serrão
63111fe0f6
Merge pull request #3495 from Textualize/change-click
Change when click events are emitted.
2023-11-20 11:21:05 +00:00
Rodrigo Girão Serrão
f5ca080c20
Merge branch 'main' into change-click 2023-11-20 11:11:05 +00:00
Will McGugan
aec84543b5
Merge branch 'main' into fix-scrollable-container-receive-focus 2023-11-20 11:10:01 +00:00
Rodrigo Girão Serrão
ef1aebd4c3
Escape markup in markdown headings. (#3697)
* Escape markup in markdown headings.

The markup would already be 'escaped' (ignored, really) in the markdown document itself, but it would be processed when building the table of contents because of the way the widget 'Tree' internally processes labels.
This was changed, so that we create our own 'Text' instances for the labels, which means we get to avoid markup processing.

Related issue: #3689.

* Update CHANGELOG.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Optimisation.

Related review comment: https://github.com/Textualize/textual/pull/3697/#discussion_r1397241681

* Optimisation.

Related review comment: https://github.com/Textualize/textual/pull/3697#discussion_r1398983336

* Update snapshot.

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-11-20 10:58:59 +00:00
Dave Pearson
018479edf0
Merge pull request #3706 from davep/lv-type-tweak
Correct the type hints for ListView.watch_index
2023-11-20 10:41:57 +00:00
Rodrigo Girão Serrão
871240271f
Merge pull request #3683 from Textualize/loading-indicator-fixes
Change loading indicator layer and effects.
2023-11-20 10:38:35 +00:00
Dave Pearson
42583917da
Turn ListView._is_valid_index into a type guard
Co-authored-by: Rodrigo Girão Serrão <rodrigogiraoserrao@gmail.com>
2023-11-20 10:31:34 +00:00
Will McGugan
266613b742
optimize align (#3704)
* optimize aling

* superfluous call

* no need
2023-11-20 10:16:35 +00:00
Rodrigo Girão Serrão
a3768db34d
Merge pull request #3699 from Textualize/button-no-longer-static
Make Button inherit directly from Widget.
2023-11-20 09:57:28 +00:00
Dave Pearson
49120fe599
Merge pull request #3692 from davep/clean-up-command-palette-docs
Hide command palette mount and unmount handlers from the docs
2023-11-20 09:15:28 +00:00
Dave Pearson
77cb743465
Correct the type hints for ListView.watch_index
The old and new index can be None, as highlighted in #3705.
2023-11-20 08:55:55 +00:00
Rodrigo Girão Serrão
cd78824b99
Make Button inherit directly from Widget. 2023-11-17 15:16:14 +00:00
Dave Pearson
9ef566bebd
Merge branch 'main' into clean-up-command-palette-docs 2023-11-16 17:12:06 +00:00
Dave Pearson
78d9c4c59c
Merge pull request #3641 from davep/command-palette-query-isolation
Command palette query isolation
2023-11-16 17:11:01 +00:00
Darren Burns
0a61a41c4f Add notes, update lockfile for new Rich, skeleton of WrappedDocumentView 2023-11-16 15:19:27 +00:00
Dave Pearson
6b803184a0
Merge branch 'main' into command-palette-query-isolation 2023-11-16 14:38:55 +00:00
Dave Pearson
17ac6a8898
Hide command palette mount and unmount handlers from the docs
CommandPalette.on_mount and CommandPalette.on_unmount were in the docs and
indexed because they're not private and they have docstrings documenting
what they do for the command palette. This has the unfortunate side-effect
of CommandPalette.on_mount (for example) turning up as the first it if
someone searches the docs for `on_mount` (which, if they've not gone through
the guide and have read up on events and messages, they're likely to do and
then end up confusing themselves due to not reading the docs in a sensible
order).

While it won't help someone understand what `on_mount` does, it will hide an
implementation of it that won't help them.
2023-11-16 14:34:00 +00:00
Rodrigo Girão Serrão
47dc95aa54
Change loading indicator layer and effects.
The loading indicator will now disable the underlying widget.
2023-11-15 16:56:43 +00:00
Darren Burns
d2b3e7a79f Remove redundant lines 2023-11-15 14:00:17 +00:00
Rodrigo Girão Serrão
e819e97c29
Merge pull request #3659 from Textualize/off-by-one
Be consistent with line/col numbers.
2023-11-15 13:46:55 +00:00
Rodrigo Girão Serrão
9c89524c6b
Merge branch 'main' into off-by-one 2023-11-15 13:33:10 +00:00
Darren Burns
2def1c4e81
Add soft_wrap reactive to TextArea 2023-11-15 12:34:17 +00:00
Rodrigo Girão Serrão
7a25bb1998
Merge pull request #3678 from Textualize/fix-docs-mouse-move-example
Fix docs example by deleting code.
2023-11-15 10:46:01 +00:00
Dave Pearson
998cbe4122
Add missing parameter type hint (#3682) 2023-11-15 09:51:24 +00:00
Dave Pearson
87a489e4e4
Merge pull request #3681 from davep/tidy-up-get-option-index 2023-11-15 09:20:58 +00:00
Dave Pearson
ec670450f0
Add missing return type and return detail for OptionList.get_option_index
a3590ac192
added this but it looks like the type hint for the return value, and the
return value explanation were left off in the PR.
2023-11-15 08:55:28 +00:00
Rodrigo Girão Serrão
d091b4b620
Merge pull request #3614 from Textualize/select-improvements
Validate `Select.value` and minor `Select` improvements.
2023-11-14 16:32:01 +00:00
Rodrigo Girão Serrão
3f54a93ef4
Merge branch 'main' into select-improvements 2023-11-14 16:19:00 +00:00
Rodrigo Girão Serrão
570c35cb5e
Fix docs example by deleting code. 2023-11-14 15:59:30 +00:00
Darren Burns
0a0832c9a2
Fix for CSS outline issues (#3656)
* Fix `line_trim` only handling a single empty segment. It now removes any number of empty segments before performing the trim.

* Update the lockfile

* Tidy up

* Rewriting line_trim to support empty cells correctly

* Regression snapshot test for case where outline was applied to `Button` and did not render correctly.

* Update the changelog

* Add unit test for empty segments case

* Turn off AUTO_FOCUS on button outline snapshot test

* Remove debugging prints

* Fix issue with alignment generating empty segments

* Validate and update snapshots

* Revert some changes relating to trimming empty segments

* _styles_cache.py - In DEBUG mode, inspect Strips for non-control Segments which contain no text. There should be no empty Segments in Textual. If any are detected, we should investigate the source of them.

* _styles_cache.py - In DEBUG mode, inspect Strips for non-control Segments which contain no text. There should be no empty Segments in Textual. If any are detected, we should investigate the source of them.

* Remove types from docs
2023-11-14 11:43:45 +00:00
Darren Burns
81531e8764
Improve get_child_by_type docstring (#3670) 2023-11-13 15:31:26 +00:00
TomJGooding
b99f143e9b
fix: replace textlog references (#3663) 2023-11-13 10:54:09 +00:00
Will McGugan
c0f299b593
input restriction (#3657)
* input restriction

* types

* tweak

* tests

* docstring

* fix lock

* words

* add valid empty

* another test

* fix regex

* doc

* name change

* Fix regex

* force initial value

* force reactive

* test fix

* add plus

* input type literal

* export InputType
2023-11-10 16:16:42 +00:00
Dave Pearson
5554afc52c
Merge branch 'main' into command-palette-query-isolation 2023-11-10 14:47:13 +00:00
Rodrigo Girão Serrão
c1204bbf5a
Be consistent with line/col numbers.
I added some comments so that we know what line/column numbers are 0-based and which ones are 1-based.

Related issue: #3625.
2023-11-09 17:48:39 +00:00
Rodrigo Girão Serrão
eb9b4bcb00
Merge branch 'main' into select-improvements 2023-11-09 12:59:56 +00:00
Rodrigo Girão Serrão
65bf94a54d
Merge pull request #3654 from Textualize/live-reloading-screen-css
Fix live-reloading of screen CSS.
2023-11-09 12:57:54 +00:00
Dave Pearson
b22fb71c15
Merge pull request #3653 from davep/runnable-styles-references 2023-11-08 17:12:20 +00:00
Dave Pearson
20865a47d3
Fix up highlights for the tint example 2023-11-08 15:44:38 +00:00
Dave Pearson
bc241726bc
Fix up highlights for the link styling example 2023-11-08 15:33:58 +00:00
Dave Pearson
061f8a9bc4
Fix up highlights for the link hover example 2023-11-08 15:32:45 +00:00
Dave Pearson
53e864262a
Fix up highlights for the link hover example 2023-11-08 15:31:09 +00:00
Rodrigo Girão Serrão
1a641e1347
Fix live-reloading of screen CSS. 2023-11-08 15:28:55 +00:00
Dave Pearson
ba6a25aac7
More an -> a 2023-11-08 15:28:03 +00:00
Dave Pearson
65e55ecaaa
Fix up highlights for the link hover example 2023-11-08 15:25:52 +00:00
Dave Pearson
e47c55520b
An -> a 2023-11-08 15:25:31 +00:00
Dave Pearson
6c46ed4c96
Fix up highlights for the link colour example 2023-11-08 15:24:04 +00:00
Dave Pearson
e252d67131
Fix up highlights for height comparison example 2023-11-08 15:08:46 +00:00
Dave Pearson
6a76a7e221
Fix up highlights for border subtitle align example 2023-11-08 15:02:54 +00:00
Dave Pearson
0540ccce41
Remove the highlights from the border_all example
They don't seem to be highlighting anything particular at all; I suspect a
copy/paste-o here.
2023-11-08 14:56:37 +00:00
Dave Pearson
77ba89647b
Fix up highlights for link background 2023-11-08 14:52:49 +00:00
Dave Pearson
414096233b
Make all styles reference examples capable of being run standalone
Also move the declarations of the stylesheets into the app classes.

See #3650
2023-11-08 14:37:01 +00:00
Dave Pearson
dc19558ef8
Remove anything to do with CommandPalette.current_screen
It was for the older approach to command palette isolation; it's not really
needed any more.
2023-11-08 11:47:26 +00:00
Dave Pearson
869e04617e
Merge branch 'main' into command-palette-query-isolation 2023-11-08 11:27:03 +00:00
Dave Pearson
14a44e8af0
Swap command palette isolation to a system-screen filtering approach
While for now, and likely for a while to come, the command palette is going
to be a special case we'll want to ignore, it's been decided that we should
introduce the concept of a system screen type and filter those out. So here
I introduce a _SystemModalScreen type and have the command palette inherit
from that, and then I filter that type out when looking for children of the
app.

Technically, at some point, I guess we should also have a _SystemScreen,
with a similar approach.

<whisper>This would be an excellent moment for a mixin</whisper>
2023-11-08 11:22:29 +00:00
Dave Pearson
38e4cc08e4
Merge pull request #3648 from davep/more-makefile-tweaks
More `Makefile` tweaks
2023-11-08 11:14:10 +00:00
Will McGugan
e8e2a07ad7
optimization (#3646)
* optimization

* further optimization
2023-11-08 10:18:26 +00:00
Dave Pearson
30cecf3f5b
Add make repl
I use this in so many other projects, and I keep doing it within the textual
development environment, and get annoyed every time it isn't there. It's
handy so...
2023-11-08 06:55:22 +00:00
Dave Pearson
25c5658a01
Add setting up of the syntax extra in "make setup"
Yes, this does mean it'll fail when using Python 3.7; but it hardly seems
worth going to all the effort of trying to detect this inside the Makefile
when 3.7-support can't be that long for this world.
2023-11-08 06:52:56 +00:00
TomJGooding
5732bfa15f update changelog to resolve conflict and add link 2023-11-07 23:25:19 +00:00
Will McGugan
c667c86107
Blur (#3645)
* added blur

* add blur pseudo class

* added blur psuedo class

* added test
2023-11-07 16:22:40 +00:00
Dave Pearson
c7cf0286f1
Merge pull request #3644 from davep/chunk-writes-on-windows
Chunk writes on Windows
2023-11-07 15:32:35 +00:00
Dave Pearson
7dcf01427d
Update the ChangeLog 2023-11-07 15:09:05 +00:00
Dave Pearson
6293fe1b24
Switch to chunking Windows terminal sequences based on buffer size
First we tested this by splitting the output by lines; that worked but it
could be faster. So now we're going to take the problematic buffer
size (32KiB), assume a reasonable worst case of every character heading out
being 3 bytes in size, and chunking the output based on that.

In other words, experiment for #2548 take two.
2023-11-07 14:49:34 +00:00
Will McGugan
f0fd8d47e1
bump lock file (#3643)
* bump lock file

* pin aiohttp

* drop 3.12 for now

* try bump setup-python

* drop 3.7

* bump aiohttp

* lock

* drop macos
2023-11-07 14:37:31 +00:00
Dave Pearson
357268e93c
Chunk driver writes on Windows per-line
This is experimental. I think, ideally, we'll do this by finding an optimal
buffer size and writing based on that, but for the moment let's just try
line-by-line as that's easy.

This will be used to test against the tool I've made that lets me recreate
the issue documented in #2548; if this does the job we'll take this further.
2023-11-07 14:24:40 +00:00
Dave Pearson
85981c0b05
Update the ChangeLog 2023-11-06 14:04:39 +00:00
Dave Pearson
51dc134a13
Isolate the command palette from app-based queries
This fixes #3633 by ensuring that if a query is made against the app while
the command palette is active, the query trickles down to the
previously-active screen rather than into the command palette modal screen.

This also updates the command palette unit tests to take this change into
account.
2023-11-06 13:57:44 +00:00
Darren Burns
d958f5bf77
Set pycln pre-commit hook language_version to 3.8 (#3640)
* Fix pycln pre-commit hook

* Use Python 3.11 for pycln
2023-11-06 11:58:27 +00:00
Dave Pearson
9497b155ad
Merge pull request #3636 from davep/fix-markdown-docs
Fix the Focusable flag in the Markdown docs
2023-11-06 10:26:21 +00:00
Dave Pearson
b0a5009b04
Fix the Focusable flag in the Markdown docs
It said it was focusable; it isn't.
2023-11-03 12:45:10 +00:00
TomJGooding
1ce0a5b5d7 remove can_focus where now inherited 2023-11-02 15:23:48 +00:00
TomJGooding
c033c596fe fix(scrollable container): receive focus 2023-11-02 12:01:44 +00:00
Dave Pearson
3bb8c464f0
Merge pull request #3624 from pawamoy/patch-1
Document CellKey being a RowKey, ColumnKey tuple
2023-11-02 09:46:28 +00:00
Rodrigo Girão Serrão
da70d837bc
Merge pull request #3616 from Textualize/duplicate-screen-css-errors
Deduplicate screen CSS errors.
2023-11-01 17:05:23 +00:00
Rodrigo Girão Serrão
8818f12692
Merge branch 'main' into duplicate-screen-css-errors 2023-11-01 16:47:48 +00:00
Timothée Mazzucotelli
fcd664e866 fixup! Document CellKey being a RowKey, ColumnKey tuple 2023-11-01 17:34:53 +01:00
Rodrigo Girão Serrão
ad83e91580
Merge pull request #3582 from Textualize/improve-css-error-reporting
Improve css error reporting
2023-11-01 15:43:51 +00:00
Rodrigo Girão Serrão
dfddeffabc
Merge branch 'main' into improve-css-error-reporting 2023-11-01 15:09:13 +00:00
Rodrigo Girão Serrão
1436dcbafd
Fix changelog. 2023-11-01 15:06:35 +00:00
Rodrigo Girão Serrão
c19ffe3f92
Merge pull request #3595 from Textualize/pre-commit
Add more pre-commit hooks.
2023-11-01 14:48:02 +00:00
Rodrigo Girão Serrão
8fef8000b5
Add snapshot history for new tests. 2023-11-01 14:45:34 +00:00
Rodrigo Girão Serrão
e73181680f
Merge branch 'main' into select-improvements 2023-11-01 14:35:14 +00:00
Rodrigo Girão Serrão
55be211415
Improve documentation. 2023-11-01 14:15:00 +00:00
Rodrigo Girão Serrão
8997615430
Improve Select.
Use a special value to flag a blank selection, add methods is_blank and clear, slightly refactor the way the widget is setup to avoid having attributes _initial_options and _options.
Implement exceptions to be raised when the widget is entering bad state.
2023-11-01 14:08:44 +00:00
Timothée Mazzucotelli
544058a39b
Document CellKey being a RowKey, ColumnKey tuple 2023-11-01 14:55:57 +01:00
Will McGugan
b3d60432f1
Version bump (#3621) 2023-10-31 13:24:03 +00:00
Josh Duncan
4f95d30619
DataTable sort by function (or other callable) (#3090)
* DataTable sort by function (or other callable)

The `DataTable` widget now takes the `by` argument instead of `columns`, allowing the table to also be sorted using a custom function (or other callable). This is a breaking change since it requires all calls to the `sort` method to include an iterable of key(s) (or a singular function/callable). Covers #2261 using [suggested function signature](https://github.com/Textualize/textual/pull/2512#issuecomment-1580277771) from @darrenburns on PR #2512.

* argument change and functionaloty update

Changed back to orinal `columns` argument and added a new `key` argument
which takes a function (or other callable). This allows the PR to NOT BE
a breaking change.

* better example for docs

- Updated the example file for the docs to better show the functionality
of the change (especially when using `columns` and `key` together).
- Added one new tests to cover a similar situation to the example
  changes

* removed unecessary code from example

- the sort by clicked column function was bloat in my opinion

* requested changes

* simplify method and terminology

* combine key_wrapper and default sort

* Removing some tests from DataTable.sort as duplicates. Ensure there is test coverage of the case where a key, but no columns, is passed to DataTable.sort.

* Remove unused import

* Fix merge issues in CHANGELOG, update DataTable sort-by-key changelog PR link

---------

Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
Co-authored-by: Darren Burns <darrenb900@gmail.com>
2023-10-31 13:14:47 +00:00
Dave Pearson
665dca9cb8
Merge pull request #3618 from davep/command-palette-worker-nuke
Ensure that the command palette doesn't kill *all* workers when stoping command gathering
2023-10-31 09:54:23 +00:00
Dave Pearson
9cacf8cd7b
Update the ChangeLog 2023-10-31 09:04:56 +00:00
Dave Pearson
449d3a6b7c
Ensure that the command palette only cancels its own workers
See #3615.

Co-authored-by: Rodrigo Girão Serrão <rodrigogiraoserrao@gmail.com>
2023-10-31 08:58:27 +00:00
Dave Pearson
7cbba6636f
Add a test for the command palette not leaving workers behind 2023-10-31 08:54:25 +00:00
Dave Pearson
b939256007
Add a test that the command palette doesn't kill other workers
See #3615.
2023-10-31 08:47:33 +00:00
Rodrigo Girão Serrão
37aac01e93
Deduplicate screen CSS errors.
Related issue: #3581.
2023-10-30 17:02:18 +00:00
Rodrigo Girão Serrão
8bb247ea15
Merge branch 'main' into select-improvements 2023-10-30 15:39:09 +00:00
Rodrigo Girão Serrão
cb0b47359b
Changelog. 2023-10-30 15:37:48 +00:00
Rodrigo Girão Serrão
83c598ed17
Add tests. 2023-10-30 15:28:49 +00:00
Rodrigo Girão Serrão
b8533baa6e
Validate Select.value and revert 9c941130b.
Related issues: #3611, #3612.
Related commit: 9c941130b.
2023-10-30 15:28:16 +00:00
Darren Burns
efbb655313
Handle other Tabs widgets as DOM descendants of a TabbedContent (#3602)
* Handle other Tabs widgets as DOM descendants of a TabbedContent

* Update CHANGELOG.md

* Ensure TabbedContent can identify messages from the associated Tabs so that it can ignore messages from other, irrelevant Tabs instances that may exist as descendants deeper in the DOM. Also adds some tests to ensure corresponding issues are fixed.

* Improve docstrings for Tabs.Cleared and corresponding handler inside TabbedContent - it now includes a note that the Cleared message is sent when all tabs are hidden.
2023-10-30 13:10:53 +00:00
Rodrigo Girão Serrão
8362145e21
Tests & changelog. 2023-10-30 12:03:27 +00:00
Rodrigo Girão Serrão
9c941130bb
Select posts Changed when value is assigned.
Fix #3611.
2023-10-30 12:02:47 +00:00
Rodrigo Girão Serrão
3f33cd1f86
Merge pull request #3586 from Textualize/wokers-inside-workers
Workers inside workers
2023-10-30 10:26:42 +00:00
Dave Pearson
001881cc9a
Merge pull request #3607 from mholson/patch-1
fix typo 'that' -> 'than'
2023-10-28 08:50:17 +01:00
Mark Olson
a9704fddfa
fix typo 'that' -> 'than' 2023-10-28 09:16:24 +02:00
Darren Burns
f02cde2f83
Update CHANGELOG regarding LoadingIndicator crash (#3601) 2023-10-27 11:13:12 +01:00
Rodrigo Girão Serrão
841f726677
Update CHANGELOG.md
Co-authored-by: Dave Pearson <davep@davep.org>
2023-10-27 10:47:41 +01:00
Rodrigo Girão Serrão
33a1d34db7
Merge pull request #3499 from Textualize/typing-timer-callback
Be less strict about typing timer callbacks.
2023-10-27 10:47:12 +01:00
Dave Tapley
41cadfcbf1
Setter for TextArea load_text (#3545)
As discussed https://github.com/Textualize/textual/discussions/3525#discussioncomment-7277111
2023-10-26 14:47:52 +01:00
Rodrigo Girão Serrão
d9594f5adc
Comment what the hooks do. 2023-10-26 12:20:19 +01:00
Rodrigo Girão Serrão
6f00943c14
Fix imports. 2023-10-26 12:15:55 +01:00
Rodrigo Girão Serrão
ec44d17ccc
Remove trailing whitespace hook.
See https://github.com/Textualize/textual/pull/3595#discussion_r1372961156.
2023-10-26 11:55:22 +01:00
Rodrigo Girão Serrão
ecdf65385d
Add more pre-commit hooks. 2023-10-26 11:28:26 +01:00
Rodrigo Girão Serrão
a91f8b4385
Cleanup. 2023-10-26 11:11:26 +01:00
Rodrigo Girão Serrão
d755c92979
Rename variable. 2023-10-25 18:54:34 +01:00
Rodrigo Girão Serrão
777eb98097
Make run_worker thread-safe.
Move the change into run_worker to make that thread-safe as well, instead of just the decorator.
2023-10-25 18:52:57 +01:00
Rodrigo Girão Serrão
16cc9f549d
Changelog. 2023-10-25 17:14:06 +01:00
Rodrigo Girão Serrão
44e8a0cfc8
Merge tests. 2023-10-25 17:12:41 +01:00
Rodrigo Girão Serrão
98c34ccb52
Cleanup test. 2023-10-25 17:10:12 +01:00
Rodrigo Girão Serrão
f543010ddc
Test calling workers inside workers. 2023-10-25 17:05:47 +01:00
Rodrigo Girão Serrão
890b475dfa
Create workers in thread-safe way.
Previously you couldn't call a threaded worker from another threaded worker because creating a worker was not thread safe (see #3472). However, the second threaded worker could already be called with self.call_from_thread, so we bake that in.
2023-10-25 17:05:36 +01:00
Darren Burns
34fb596c56
Test flakiness investigation and attempted fixes ❄ (#3498)
* Modifying two flaky animation tests, hopefully removing flakiness :)

* Make switch_mode return an AwaitMount

* Fix event issue

* Add AwaitComplete - a more generalised optionally awaitable object

* Use AwaitComplete in Tabs.remove_tab() and update tests accordingly.

* Update TabbedContent to use AwaitComplete instead of AwaitTabbedContent

* Simplifying - dont use optional awaitables where not required

* Update variable name

* Update a comment

* Add watcher for cursor blink to ensure when blink is switched off, the cursor immediately becomes visible. Ensure we turn of cursor blink inside the input suggetions snapshot test.

* Fix cursor blink reactive and disable cursor blink in the command palette snapshot test

* More progress

* Reworking AwaitComplete

* Some more work on tabs flakiness/race-conditions

* Ensure active tab is set correctly

* Simplify next tab assignment

* Simplify removing tabs logic

* Make button animation duration configurable; Switch off button animation in snapshot test

* Remove a flawed test

* Add awaits in some tests

* Docstrings

* Make active_effect_duration an instance attribute

* Fix a Tabs crash

* Await the tree reload when the path changes in DirectoryTree

* Change AwaitComplete _instances class attr to a set from a list

* Make AwaitComplete generic, AwaitComplete._wait_all is now private, and exposes timeout parameter

* Actually make AwaitComplete instances a set, not a list

* Update CHANGELOG.md regarding flaky-test adjacent changes, AwaitComplete, etc..

* Remove whitespace

* Use list() instead of useless comprehension, remove unused import

* Ensure loading indicator _start_time is initialised correctly

* Switch from time.sleep to asyncio.sleep in a notifications test, rework numbers to try and prevent flakiness

* Resolve deadlock by awaiting event on the event loop instead of in the message pump

* Renaming for clarity

* Debugging for remove_tab test flakiness

* Running all tests

* Updating snapshots

* Remove debugging prints

* Fix broken docstring, remove unused import

* Rename variable to make it clearer

* Add missing return type annotation

* Update src/textual/widgets/_tabbed_content.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/widgets/_tabbed_content.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/widgets/_tabs.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Scroll datatable cursor after refresh

* Add comment explaining use of call_after_refresh when scrolling data table cursor into view

* Add repr to AwaitComplete (auto-repr_

* Remove use of generics from AwaitComplete

* Update changelog and improve docstring

* Add a missing parameter from DirectoryTree.reset_node docstring.

Signed-off-by: Darren Burns <darrenb900@gmail.com>

* Improve docstring in DirectoryTree

Signed-off-by: Darren Burns <darrenb900@gmail.com>

* Rename parameter coroutine to coroutines in await_complete.py, since it's a variable length param.

---------

Signed-off-by: Darren Burns <darrenb900@gmail.com>
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-10-25 14:41:02 +01:00
Rodrigo Girão Serrão
6c6eecfd10
Address review feedback. 2023-10-25 14:38:22 +01:00
Rodrigo Girão Serrão
d84498232a
Minor docstring/type hints cleanup. 2023-10-25 13:21:56 +01:00
Rodrigo Girão Serrão
8b16776afc
Drop links in CSS error reporting.
Instead of creating the link explicitly, we let terminal emulators auto-link to the file.
This came after a discussion about how/whether we should try to support linking to specific file lines/columns for TCSS files and after some research to see how that would be possible.
We decided to drop this feature when we couldn't find information in the standards for 'file://' regarding how to specify line/column numbers and after we found [this iTerm issue](https://gitlab.com/gnachman/iterm2/-/issues/9376) where the creator/maintainer of iTerm says that there is no standard API for opening a file to a particular line number.
2023-10-25 12:00:31 +01:00
Rodrigo Girão Serrão
5d7585c55f
Merge pull request #3584 from Textualize/fix-notifications
Remove changelog entry.
2023-10-25 11:41:58 +01:00
Rodrigo Girão Serrão
12f9e45701
Remove changelog entry.
See https://github.com/Textualize/textual/pull/3583#issuecomment-1778952499.
2023-10-25 11:39:13 +01:00
Rodrigo Girão Serrão
9e7117338d
Merge pull request #3583 from Textualize/fix-notifications
Fix notifications CSS.
2023-10-25 11:00:45 +01:00
Rodrigo Girão Serrão
87274cb111
Fix notifications CSS.
This was merged more or less at the same time as 'initial' was added to CSS but the tests weren't ran with that change.
Related PRs: #3566, #3531.
2023-10-25 10:16:14 +01:00
Rodrigo Girão Serrão
0f38ab7202
Link to correct file location in CSS errors. 2023-10-24 17:56:19 +01:00
Rodrigo Girão Serrão
55fe9d3891
Fix tests. 2023-10-24 17:51:34 +01:00
David Brochart
bc90a6a153
Add Document get_index_from_location / get_location_from_index (#3410)
Add Document get_index_from_location / get_location_from_index
2023-10-24 17:51:33 +01:00
TomJGooding
a413ee729c
fix(notifications): add link styles (#3531) 2023-10-24 17:44:00 +01:00
Rodrigo Girão Serrão
9076f41ce3
Keep track of what widget/class variable CSS is read from.
We already kept track of the file and widget CSS was read from. Now, we also keep track of the class variable it comes from and we create some structure to transfer that information across the program.
2023-10-24 17:16:58 +01:00
Darren Burns
0104385fc1
Docs table rendering change/cleanup (#3579) 2023-10-24 13:59:31 +01:00
Dave Pearson
24e42de10a
Merge pull request #3578 from davep/stop-more-command-palette-message-leakage
Stop `OptionList.OptionHighlighted` leaking to the `App`
2023-10-24 13:48:56 +01:00
Dave Pearson
e574c3fab4
Stop OptionList.OptionHighlighted leaking to the App 2023-10-24 13:13:11 +01:00
Rodrigo Girão Serrão
32fc617803
Merge pull request #3511 from Textualize/action-docs-fixes
Minor fixes on the actions guide.
2023-10-24 11:52:37 +01:00
Rodrigo Girão Serrão
2918011512
Fix link in CSS error reporting (#3569). 2023-10-24 10:52:05 +01:00
Rodrigo Girão Serrão
9e5bc82336
Remove unused function. 2023-10-24 10:51:15 +01:00
Will McGugan
b679afdab2
parse cache (#3575) 2023-10-24 10:11:36 +01:00
Will McGugan
0f0c4c020c doc tweak 2023-10-24 09:44:17 +01:00
Will McGugan
c41dd0a292 fix comment 2023-10-23 15:14:27 +01:00
Rodrigo Girão Serrão
2ccc06365b
Add a test and remove dead code (#3514)
* Remove dead code.

MouseScrollUp and MouseScrollDown inherit from MouseEvent so this branch is never taken.

* Add screen test.
2023-10-23 13:46:44 +01:00
Will McGugan
859cff3be3
CSS initial special value (#3566)
* CSS unset

* no need for panicked flag

* initial token

* initial token

* simplify initial token

* docstring

* defaults

* reset initial default

* typing hacks

* typing fix

* tests and docs

* Added xfail

* doc update

* changelog

* cache css

* fix for initial defaults

* Update src/textual/css/stylesheet.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/css/stylesheet.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* restore arrange

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-10-23 13:38:18 +01:00
Rodrigo Girão Serrão
375211ce38
Run CodeQL only on code changes. (#3573) 2023-10-23 13:36:26 +01:00
Will McGugan
2f8bb86767
button render (#3571)
* button render

* imports

* changelog

* simplify pad renderable

* docstring

* Button renderable

* snapshot
2023-10-23 13:02:04 +01:00
Rodrigo Girão Serrão
01be6dec9d
Merge pull request #3565 from RJ722/fix-discord-link
Update discord link in CONTRIBUTING.md
2023-10-23 11:46:24 +01:00
Dave Pearson
693b6e64f6
Merge pull request #3519 from davep/more-f3
Allow F3 with modifier keys
2023-10-23 09:23:37 +01:00
Dave Pearson
ea8f1cdd7f
Merge pull request #3372 from davep/move-markdown-change-in-changelog
Move `Markdown.goto_anchor` change to correct version in `CHANGELOG`
2023-10-22 22:20:02 +01:00
Dave Tapley
227e1416c7
Pass App ReturnType to Pilot in run_test (#3572) 2023-10-22 20:51:10 +01:00
RJ722
01adf9e94a Update discord link in CONTRIBUTING.md 2023-10-21 16:24:14 +05:30
Will McGugan
e68e6e37b5 fix highlighted lines 2023-10-19 12:15:32 +01:00
Darren Burns
3b170b0748
Scroll DataTable cursor after refresh (#3552)
* Scroll datatable cursor after refresh, since new rows may be measured in on_idle

* Update CHANGELOG.md regarding datatable cursor move scrolling fix
2023-10-17 16:43:39 +01:00
Darren Burns
d5456adbdc
Fix DataTable.update_cell not updating cell immediately (#3551)
* Reintroduce cache clear in DataTable update dimensions

* Update the CHANGELOG
2023-10-17 16:42:00 +01:00
Will McGugan
fdc96f8c0e
fix for cache (#3538) 2023-10-17 10:45:25 +01:00
Dave Pearson
9c1e89fcf0
Merge pull request #3540 from davep/ancestors-typo-fix
Tweak the docstrings of the ancestors properties
2023-10-16 13:36:30 +01:00
Dave Pearson
faf09a7bea
Talk about nodes, not the plural of Node 2023-10-16 13:35:15 +01:00
Will McGugan
6ed6011fa5
button tweak (#3539)
* button tweak

* changelog
2023-10-16 10:03:34 +01:00
Dave Pearson
6ff7f52146
Tweak the docstrings of the ancestors properties
Both look to have been a little bit mangled at some point.
2023-10-15 20:15:54 +01:00
Dave Pearson
8be3e37d89
Allow F3 with modifier keys
See https://github.com/Textualize/textual/issues/3440#issuecomment-1759245890
for some background context.
2023-10-12 11:45:49 +01:00
Will McGugan
ddbc91e31b
unused method (#3518)
* unused method

* typo
2023-10-12 11:16:38 +01:00
Will McGugan
7e25daa545 changelog 2023-10-11 16:54:56 +01:00
Will McGugan
cc5e14cbd6 version bump 2023-10-11 16:54:29 +01:00
Will McGugan
47af5e0402
Add loading reactive (#3509)
* Add loading reactive

* loading indicator example

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* into

* changelog

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-10-11 16:53:49 +01:00
Will McGugan
5cf0e1a69c fix for textual-web links 2023-10-11 15:36:30 +01:00
Rodrigo Girão Serrão
1a88e102ef
Encourage users to open issues about docs. 2023-10-11 15:10:37 +01:00
Rodrigo Girão Serrão
924ff5fbd9
Minor fixes on the actions guide.
Thanks to #3456.

Co-authored-by: Steve Holden <steve@holdenweb.com>
2023-10-11 14:57:25 +01:00
Rodrigo Girão Serrão
527bc1a2ca
Merge branch 'main' into change-click 2023-10-11 14:38:02 +01:00
Rodrigo Girão Serrão
73795bf2e2
Restore original typing for the work decorator. 2023-10-11 14:32:18 +01:00
Rodrigo Girão Serrão
5e1cbf76d1
Test new click/focus behaviour. 2023-10-11 14:23:11 +01:00
Rodrigo Girão Serrão
69d816a963
Add Pilot.mouse_down/mouse_up. 2023-10-11 14:22:53 +01:00
Rodrigo Girão Serrão
23b882cb25
Add two tests for completeness of combinations. 2023-10-11 14:21:41 +01:00
rndusr
08b49b1c8b
LinuxDriver: Exit if thread dies (#3431)
* LinuxDriver: Exit if thread dies

If `run_input_thread()` dies, the whole application keeps running but becomes
unresponsive. It has to be killed by the user, leaving the terminal in an
unusable state.

This commit terminates the application instead and prints a traceback.

* LinuxDriver: Handle any exception from input thread

* LinuxDriver: Simpler traceback construction in input thread handler

* LinuxDriver: Catch exception from run_input_thread() in _run_input_thread()

* LinuxDriver: Remove unneeded import: Callable

---------

Co-authored-by: Random User <rndusr@example.org>
2023-10-11 10:37:02 +01:00
Rodrigo Girão Serrão
e1c38002c8
Add will-change to excalidraw diagrams. (#3503)
Adding will-change: filter seems to fix the issue with the Excalidraw diagrams on dark mode and recent Safari versions.
This change was also tested on Firefox and Chrome and it didn't break the diagrams in those browsers.

This fixes #3497.
2023-10-10 17:13:03 +01:00
Will McGugan
927e59b001
version bump (#3501) 2023-10-10 15:47:30 +01:00
Darren Burns
1a0cd7792d
Allow scrollbar size of zero (scrollable containers without scrollbars) (#3488)
* Remove the guard code which protects against `scrollbar-size-*:0`, update error messages indicating its supported now.

* Fix scrollbar region calculation to support zero-thickness scrollbars

* Add test ensuring zero-width scrollbars dont blow up

* Updating CHANGELOG regarding zero-thickness scrollbars

* Add note to scrollbar_size.md about zero width scrollbar
2023-10-10 15:37:13 +01:00
Will McGugan
5e4067fd05 new logo asset 2023-10-10 15:37:00 +01:00
Will McGugan
7a9019adb1
add our new logo (#3500) 2023-10-10 15:36:28 +01:00
Rodrigo Girão Serrão
1ee6a48407
Update changelog. 2023-10-10 14:49:41 +01:00
Rodrigo Girão Serrão
1f2b09d8ba
Be less strict about typing timers. 2023-10-10 14:48:47 +01:00
Rodrigo Girão Serrão
60472ef3cf
Don't focus on MouseUp. 2023-10-10 10:35:40 +01:00
Rodrigo Girão Serrão
d0f0d76f78
Merge pull request #3490 from TomJGooding/docs-radio-set-add-bindings
docs(radio set): add bindings
2023-10-10 10:25:49 +01:00
Rodrigo Girão Serrão
27f26c06d2
Change when click events are emitted. 2023-10-10 10:22:13 +01:00
TomJGooding
e3d9bcd99c docs(radio set): add bindings 2023-10-09 18:27:13 +01:00
Darren Burns
321e2d6477
Capturing stdout/stderr in headless mode rework (#3486)
* Fix docstring typo

* Allow writing to stdout/stderr when in headless mode

* Update changelog

* Improve docstring
2023-10-09 15:54:07 +01:00
Darren Burns
4054667a23
Fix DataTable crash when removing and updating cell at the same time (#3487)
* Fix crash when removing rows/columns from datatable

* Regression tests for datatable crash

* Update CHANGELOG regarding datatable crash fix
2023-10-09 14:58:38 +01:00
laixintao
0ffa82a13e
fix doc: change rule: to text-align: in css_types (#3476) 2023-10-09 12:42:55 +01:00
Will McGugan
b8ac737cfd
Add wait_for_dismiss to push_screen (#3477)
* docstrings

* raises docstring

* fix for tests

* Formatting

* tests

* changelog

* simplify

* typing

* dot

* typing

* Update tests/test_screens.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-10-09 12:42:13 +01:00
Dave Pearson
005f556773
Merge pull request #3485 from davep/unknown-sequence-peek-support
Add a debug hook for getting sent unknown sequences from the XTerm parser
2023-10-09 11:54:40 +01:00
Dave Pearson
46ddf9ac0e
Add a debug hook for getting sent unknown sequences from the XTerm parser
This is here only for serving the keyboard checker/recorder tool.
2023-10-09 11:23:31 +01:00
TomJGooding
8e3108719c
fix: allow integer for fractional styles (#3432)
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-10-09 11:20:37 +01:00
Darren Burns
d2320f11fc
Move tree-sitter and tree_sitter_languages to optional extras (#3398)
* Move tree-sitter and tree_sitter_languages to optional extras

* Update docs and GitHub action for moving syntax to extras

* Updating, remake lockfile

* Update snapshots from textual-dev change

* Improve warning when a language is set but tree-sitter not available

* Update CHANGELOG

* Add note on syntax extras

* Update lock
2023-10-09 10:57:13 +01:00
Dave Pearson
c88c031415
Merge pull request #3475 from davep/link-plotext-blog-post-to-repo-too 2023-10-07 15:38:08 +01:00
Dave Pearson
3825f6cdd4
Link to the repo rather than the pypi page
See https://github.com/Textualize/textual-plotext/issues/1
2023-10-07 13:42:11 +01:00
Dave Pearson
3aaecd3920
Merge pull request #3294 from davep/fix-print-console-location
Ensure that `print` reports the correct location in console
2023-10-05 16:00:36 +01:00
Dave Pearson
500857b5fb
Merge branch 'main' into fix-print-console-location 2023-10-05 15:50:22 +01:00
Darren Burns
864d6717c2
Fix IME pop-up issues (#3408)
* Fixing IME alignment for Input widget. TextArea remains unfixed.

* Fix TextArea IME

* Prefix unused unpacked variables with underscore

* Updating IME preview location on scrolling in TextArea

* Add CHANGELOG entry for IME positioning fix

* Add CHANGELOG entry for new methods on Input and TextArea

* Test TextArea terminal cursor position update

* Tests for Input widget terminal cursor position updating

* Test for IME when content scrolled
2023-10-05 15:37:34 +01:00
Dave Pearson
0a1fc697dd
Merge pull request #3469 from davep/dt-doc-fix
Fix a link in the DataTable docs
2023-10-05 15:00:21 +01:00
Dave Pearson
8f9eab1e10
Fix a link in the DataTable docs
Noticed this in passing.
2023-10-05 14:50:01 +01:00
Darren Burns
d7549d69ee
Add 3.12 to classifiers (#3465) 2023-10-05 13:48:44 +01:00
Dave Pearson
cc04d30b28
Merge pull request #3459 from davep/option-list-safe-duplicate-check
`OptionList` safe duplicate check
2023-10-05 12:31:28 +01:00
Dave Pearson
143067f060
Switch to using a set expression 2023-10-05 11:50:28 +01:00
Dave Pearson
55c83b4cba
Use a list rather than a set for the new options
Likely doesn't make a whole heap of difference, but the {} vs the [] was a
typo and really conceptually it is a list of new options with IDs.
2023-10-05 11:00:57 +01:00
Dave Pearson
ef4e5c3bf1
Add some missing words of explanation
Because apparently I can't type English.
2023-10-05 10:46:25 +01:00
Dave Pearson
3b16206bbb
Fix a typo 2023-10-05 10:45:31 +01:00
Dave Pearson
ed131a0276
Simplify _duplicate_id_check
In conversation we've decided that it's not that necessary to list all of
the IDs that are duplicates; with this in mind we can whittle down the work
being done to look for duplicates.

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-10-05 10:42:46 +01:00
Rodrigo Girão Serrão
5046d5bb0d
Merge pull request #3461 from joehakimrahme/patch-1
Fix a broken link in the documentation guide
2023-10-05 10:15:41 +01:00
Joe H. Rahme
4f67432b9f Fix a broken link in the documentation guide
The link in the doc[1] is not rendering properly,
because the method `textual.app.App.compose`
is ignored in the doc in the filter[2]. This commit
overrides the filter in the app.md file, generating
the doc for the "protocol" method and fixing the
link rendering in the guide.

[1]: https://textual.textualize.io/guide/app/#composing
[2]: textual/mkdocs-common.yml

Fix #3141
2023-10-04 23:34:20 +02:00
Dave Pearson
d0c5ef04d1
Move to testing with sets
This way there's less chance of a duplicate report of a duplicate.
2023-10-04 21:53:19 +01:00
Dave Pearson
5c4142a828
Add a test for adding duplicates that don't yet exist 2023-10-04 21:29:24 +01:00
Dave Pearson
4df3f1553c
Add a further test for adding non-dupes post-dupe 2023-10-04 21:27:02 +01:00
Dave Pearson
29157eaff6
Update the CHANGELOG 2023-10-04 21:25:11 +01:00
Dave Pearson
c98571bc04
Simplify OptionList._duplicate_id_check 2023-10-04 20:59:27 +01:00
Dave Pearson
c377f098cf
Check for duplicate option IDs in OptionList *before* adding
Simply put: until now the OptionList was adding the new options and then
checking if the ID was a duplicate. If some code was to then catch
DuplicateID and treat it as a pass this would then have an unintended
side-effect that the duplicate had been added anyway. The ultimate effect of
this being that once there was an attempt to add a duplicate, nothing more
could be added to that OptionList.

Fixes #3455.
2023-10-04 20:52:14 +01:00
Dave Pearson
8f3ea3cac9
Extend the OptionList DuplicateID test to test for #3455 2023-10-04 20:24:22 +01:00
Dave Pearson
6d79e7782d
Remove an unnecessary a (#3458)
This is feeling like a common theme this week.
2023-10-04 18:02:38 +01:00
Dave Pearson
9053b5a126
Merge pull request #3453 from davep/plotext-blog-typo-fix
Fix a typo in the textual-plotext blog post
2023-10-04 13:45:41 +01:00
Dave Pearson
af81e39091
Fix a typo in the textual-plotext blog post 2023-10-04 13:37:11 +01:00
Dave Pearson
66d45bff7d
Merge pull request #3452 from davep/textual-plotext-blog
`textual-plotext` announcement blogpost
2023-10-04 13:33:43 +01:00
Dave Pearson
7f8bbc1e73
Add a blog post announcing textual-plotext 2023-10-04 13:17:49 +01:00
Dave Pearson
e459be0b85
Add footnotes to the config
How the heck did we ever get by without footnotes on?!?
2023-10-04 11:47:31 +01:00
Rodrigo Girão Serrão
03e3a69561
Merge pull request #3447 from Textualize/query-overloads-fix
Improve typing for queries.
2023-10-03 16:37:21 +01:00
Rodrigo Girão Serrão
02fe3bfe97
Merge pull request #3450 from Textualize/query-code-coverage
query.py coverage 100%.
2023-10-03 16:24:57 +01:00
Rodrigo Girão Serrão
571ea7c529
Merge pull request #3443 from Textualize/data-table-cell-padding
Data table cell padding
2023-10-03 16:24:25 +01:00
Rodrigo Girão Serrão
00376a62d3
query.py coverage 100%.
Increase coverage on 'query.py'.
2023-10-03 16:04:00 +01:00
Rodrigo Girão Serrão
1936f10091
Improve cell_padding and fix bug.
Makes sure that cell padding can't be set to a negative value.
This also makes sure that we update the virtual size of the data table when the cell padding changes, otherwise it will go out of sync.
Related review comment: https://github.com/Textualize/textual/pull/3443#discussion_r1343910771
2023-10-03 14:31:25 +01:00
Rodrigo Girão Serrão
c9629b572d
Drop bound in ExpectType.
The bound isn't strictly necessary and it wasn't there in the first place, so we won't add it here either.
2023-10-03 11:32:13 +01:00
Rodrigo Girão Serrão
afd5ec15ba
Improve typing for queries.
ExpectType grew its Widget bound and then it was moved out of the body of the class so that it could be referenced inside methods, because it was needed inside the body of 'only_one'.
2023-10-03 11:28:24 +01:00
Dave Pearson
f4f83ee72b
Merge pull request #3446 from davep/remove-a-a
Remove an unnecessary a
2023-10-03 10:36:39 +01:00
Dave Pearson
d7b48c5f76
Remove an unnecessary a
Saw this in passing.
2023-10-03 10:27:32 +01:00
Rodrigo Girão Serrão
bbe5c85daa
Test cell_padding assignment refreshes data table. 2023-10-03 09:04:32 +01:00
Rodrigo Girão Serrão
b84334c23b
Rename render_width as get_render_width.
Related review comment: https://github.com/Textualize/textual/pull/3443#discussion_r1342917214
2023-10-02 17:51:03 +01:00
Darren Burns
e4d182d61f
Add TextArea.Changed and TextArea.SelectionChanged messages (#3442)
* Add TextArea Changed and SelectionChanged messages, and post them in relevant places.

* Add tests for TextArea messages

* Add docstrings for TextArea messages

* Update docs to mention TextArea messages

* Update CHANGELOG

* Update src/textual/app.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-10-02 17:17:08 +01:00
Rodrigo Girão Serrão
ab4da8e546
Remove magical constant from tests. 2023-10-02 17:11:47 +01:00
Rodrigo Girão Serrão
3bcca3883b
Improve docstring. 2023-10-02 17:06:21 +01:00
Rodrigo Girão Serrão
46b7c943a7
Docstrings. 2023-10-02 16:58:51 +01:00
Dave Pearson
efd00ded11
Merge pull request #3424 from davep/command-palette-lazy-show 2023-10-02 16:51:22 +01:00
Rodrigo Girão Serrão
84123c2853
Merge branch 'main' into data-table-cell-padding 2023-10-02 16:47:39 +01:00
Rodrigo Girão Serrão
abaa2d2f4e
Add customisable cell_padding to data table.
This fixes #3435.
2023-10-02 16:46:53 +01:00
Dave Pearson
4684632730
Merge pull request #3290 from davep/win32-emoji-paste-fix 2023-10-02 16:44:51 +01:00
Dave Pearson
8c8928dee1
Update snapshot tests 2023-10-02 09:26:49 +01:00
Dave Pearson
cb7e44322a
Merge branch 'main' into command-palette-lazy-show 2023-10-02 09:05:28 +01:00
Adam K
89991025e9
Update widgets.md (#3433)
typo fix, missing "as" before "a".
2023-09-30 16:25:44 +01:00
Will McGugan
b2a40a0abd fix url 2023-09-30 13:47:56 +01:00
Will McGugan
c2e6f3b2c5 restore ping 2023-09-29 16:08:59 +01:00
Will McGugan
92abb57e91 remove deprecated ping 2023-09-29 15:26:03 +01:00
Will McGugan
64703c04dd
interactive examples (#3418)
* interactive examples

* words

* remove log
2023-09-29 15:23:42 +01:00
TomJGooding
3f36989004
feat(input): add clear method (#3430)
* feat(input): add clear method

* update changelog

* fix method case in changelog
2023-09-29 15:22:57 +01:00
Dave Pearson
09274c4c94
Update snapshot tests 2023-09-28 15:41:36 +01:00
Dave Pearson
f339cb50e9
Only show the command palette command list when it's needed
Rather than open the command palette the moment we start looking for hits,
only show it when a hit comes in, or when we need to say that no matches
were found.

Fixes #3277.
2023-09-28 15:38:14 +01:00
Dave Pearson
7658bca0e9
Fix an old and incorrect comment 2023-09-28 15:28:13 +01:00
Dave Pearson
c881278fa1
Update snapshot tests 2023-09-28 14:28:16 +01:00
Dave Pearson
8d6d0bc5c3
Update the CHANGELOG 2023-09-28 14:05:56 +01:00
Dave Pearson
f75bdc19da
Upgrade to textual-dev 1.2.x 2023-09-28 14:02:27 +01:00
Dave Pearson
a0a6bcf3b7
Merge branch 'main' into fix-print-console-location 2023-09-28 13:35:05 +01:00
Dave Pearson
dee745929f
Merge pull request #3399 from guy-av/fix/palette-no-results-flicker
Add countdown to showing command palette `no matches` message
2023-09-28 09:37:41 +01:00
Dave Pearson
57237461a8
Update the CHANGELOG 2023-09-28 08:42:06 +01:00
Guy Avital
0289a208d2
test_no_results() wait for message to show
The "no matches found" message in the command palette show after a specific delay, so make the test wait the same delay
2023-09-27 22:51:41 +03:00
Guy Avital
ee5b37f1bf
Add countdown to showing command palette no matches message
The countdown protects from spamming the message and helping the palette feel smoother when there are no matches
2023-09-27 22:51:41 +03:00
Rodrigo Girão Serrão
5414f2fb1e
Merge pull request #3416 from Textualize/sparkline-component-classes-docs
Fix component classes section for sparkline widget.
2023-09-27 18:05:56 +01:00
Rodrigo Girão Serrão
43337422f6
Fix component classes section for sparkline widget. 2023-09-27 17:00:01 +01:00
Dave Pearson
14259bbfee
Merge pull request #3371 from davep/knock-text-area-off-the-roadmap
Tick off `TextArea`-related items on the roadmap
2023-09-27 15:40:59 +01:00
Dave Pearson
90637502ed
Untick "smart features"
Until we are sure what these actually are, I guess.
2023-09-27 15:33:35 +01:00
Dave Pearson
7d7259f4a6
Merge branch 'main' into win32-emoji-paste-fix 2023-09-27 13:50:06 +01:00
Dave Pearson
fb81ee9562
Merge pull request #3409 from joshbduncan/disabled-trees
fix Tree(disabled=True) breaking app
2023-09-27 09:46:06 +01:00
Josh Duncan
6698bbb3bc fix type error for GenericAlias 2023-09-26 23:07:14 -04:00
Josh Duncan
584f3fcaa6 fix Tree(disabled=True) breaking app
Fixes #3407 where `Tree` widget initialized/mounted with `disabled=True`
would break it's parent app
2023-09-26 22:51:49 -04:00
Darren Burns
d766bb9566
TextArea test fixes for 3.7 (#3397)
* TextArea test fixes for 3.7

* Update tests/snapshot_tests/test_snapshots.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update tests/snapshot_tests/test_snapshots.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update tests/text_area/test_languages.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update tests/text_area/test_languages.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-09-26 10:16:54 +01:00
Rodrigo Girão Serrão
8447192cb2
Merge pull request #3360 from Textualize/pilot-click-3349
Pilot.click/hover methods restricted to the visible area
2023-09-25 14:07:36 +01:00
Rodrigo Girão Serrão
7d11422697
Fix hover coordinate system. 2023-09-25 13:53:25 +01:00
Rodrigo Girão Serrão
31d95dd504
Add tests for click/hover coordinate system. 2023-09-25 13:53:14 +01:00
Rodrigo Girão Serrão
1b1513dd82
Add PR link to changelog. 2023-09-25 13:15:25 +01:00
Rodrigo Girão Serrão
d8bb333cb8
Changelog. 2023-09-25 13:04:14 +01:00
Rodrigo Girão Serrão
39ae29aa23
Fix for the screen coordinate system. 2023-09-25 13:01:48 +01:00
Rodrigo Girão Serrão
6d1b81f7bd
Merge branch 'main' into pilot-click-3349 2023-09-25 11:52:45 +01:00
Rodrigo Girão Serrão
8198801242
Merge pull request #3396 from Textualize/pilot-click-query-app
Pilot.click/hover can now target screen explicitly.
2023-09-25 11:31:02 +01:00
Rodrigo Girão Serrão
0d39206fc8
Fix #3395. 2023-09-25 10:56:19 +01:00
Dave Pearson
e889c95efb
Merge branch 'main' into win32-emoji-paste-fix 2023-09-25 10:26:21 +01:00
Will McGugan
4d1f057968 keep old title to retain slug 2023-09-23 14:06:20 +01:00
Will McGugan
ffbf119286 Tweak title to broaden appeal 2023-09-23 13:51:29 +01:00
Dave Pearson
356ce4f3ab
Merge pull request #3383 from davep/text-area-theme-type-tweak
Don't document `TextArea` `language` and `theme` twice
2023-09-23 09:25:01 +01:00
Dave Pearson
75bb733025
Don't document TextArea language and theme twice
Also don't confuse type checks with an incompatible type declaration for
theme.
2023-09-22 22:17:55 +01:00
Will McGugan
c8b388cd3d corrections pointed out by Darren 2023-09-22 18:41:32 +01:00
Will McGugan
c6bda703c2 testing words 2023-09-22 15:33:46 +01:00
Dave Pearson
0014da04cb
Move Markdown.goto_anchor change to correct version in CHANGELOG
Looks like this ended up dropped into the wrong version.
2023-09-21 18:05:25 +01:00
Dave Pearson
5f74384c7c
Tick off TextArea-related items on the roadmap
Not actually quite sure what indentation guides means here, so I'm leaving
that alone.
2023-09-21 18:01:26 +01:00
Will McGugan
9eb7b4c7c7 version bump 2023-09-21 17:16:49 +01:00
Darren Burns
a87bab823f
Include highlights files in distribution (#3370)
* Include highlights files in distribution

* Remove redundant line from pyproject

* Added CHANGELOG for text-area hotfix
2023-09-21 17:15:32 +01:00
Rodrigo Girão Serrão
78fae6cbb1
Finish docstrings. 2023-09-21 14:54:59 +01:00
Rodrigo Girão Serrão
4dd80e9122
Fix tests to comply with new API. 2023-09-21 14:50:02 +01:00
Rodrigo Girão Serrão
66073919fa
Address review feedback. 2023-09-21 14:49:50 +01:00
TomJGooding
5cf449cfc3
docs(blog): fix broken text area link (#3368) 2023-09-21 13:27:43 +01:00
Will McGugan
d09e2d4c91 fix link 2023-09-21 13:26:34 +01:00
Will McGugan
701cd25472
new release (#3365)
* new release

* more release

* words

* Changelog

* remove words

* words
2023-09-21 12:56:20 +01:00
Darren Burns
9c8a8df028
Snapshot testing guide (#3357)
* Snapshot testing guide

* Typo fixes

* Some more typo fixes

* Typo fixes

* Update docs/guide/testing.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Add clarifications, PR feedback

* Add clarifications, PR feedback

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-09-21 11:16:11 +01:00
Darren Burns
bbde62fc57
Text area (#2931)
* Add docstring and switch to tree-sitter-languages wheels - although the wheels arent working

* Adding highlights files

* Fix index error on SyntaxAwareDocument

* Narrowing highlighting scope

* Adding basic highlights for Markdown

* Using utf-8 byte length instead of codepoint count in syntax aware doc

* Start creating an ABC defining functionality required by Document impls

* Simplify tree-sitter logic

* Extracting more ABC

* Fix width calculation, add SyntaxTheme

* Ensure the highlight line style goes right to the very end

* Updating a docstring

* Renaming, and adding document width guide

* Ensuring that line number column toggling refreshes virtual size

* Ensuring that line number column toggling refreshes virtual size

* Width guide

* Fix focus event stopping

* Use release_mouse

* Improving a docstring

* Remove bash

* TextArea language snapshot testing

* Updating snapshots for TextArea since we now highlight more nodes

* Typing fixes

* Testing

* Adding tests

* Fixing language selection

* Refresh size on indent width change

* Testing, renaming, fixing display of selection

* Fix multibyte highlight glitch

* Fix deleting right with selection at end of document in TextArea

* Fixing utf-8 multibyte character issues

* Default location of text insertion is cursor position, add cursor_location properties

* Removing some debugging code

* Cursor location tests

* Updating snapshots

* Cached utf8 encoding

* TextArea selection snapshot testing

* Tidying docstrings and queries

* Updating selection snapshot output

* Binding for ESC to shift focus

* Only build the tree-sitter query once!

* Expand cursor scroll horizontal leeway in TextArea

* Property setter for cursor_location in TextArea shouldnt return value

* Avoiding NamedTuple subclassing - using type aliasing instead

* Tidying API, docstrings etc.

* Tidying the API and docstrings

* TextArea additional cursor tests

* Testing pageup and pagedown in TextArea

* Fix a faulty test

* Docstring in a test for TextArea edit

* Stop using DEFAULT_SYNTAX_THEME

* Docstrings

* Change cursor_destination to move_cursor, add more tests

* Remove faulty assertion

* Tidying cursor movement

* Tidying up, adding docstrings for component classes

* Fix a broken selection test

* Remove some unused highlighting machinery

* Fix some Python highlighting issues

* Make HTML syntax highlight nicely

* Create tag name for mismatching HTML end tag

* Add styling for YAML, update boolean styling

* Stylising toml types

* Styling floats

* JSON syntax highlighting

* Updating snapshots

* Syntax highlighting datetimes in TOML

* Namespace TOML errors in highlighting

* Add a move_cursor_relative method

* Update TOML TextArea snapshot for datetime highlighting support

* Adjusting selections

* At TextArea widget level, delete_range is insert_range of empty string

* Refactoring

* Dunder all, docstring fix

* Fix XFAIL

* Remove unused import

* More tests, tidying up

* Cleaning the API

* Docstrings for TextArea

* A bunch of docstrings, delete unused code

* More tidying and docstrings

* Cursor origin on document load, correctly handle delete word left/right when selection is non-empty, fix delete_line when selection spans multiple lines and is in reverse direction

* Moving things around

* Fixing dunder all to export DocumentBase

* Add docstring

* Record cursor width on programmatic insert since it can result in the cursor moving

* Typing fixes

* Fixing remaining typing issues with TextArea

* Add tree-sitter-languages stubs and fix typing issues in documents

* Fixing remaining typing issues with document

* Updating Syntax themes

* Improve highlighting, add initial TextArea docs page

* Add TextArea indent note

* Start TextArea guide inside reference

* Add TextArea to widget gallery

* Fleshing out TextArea docs

* Add note

* Fix TextArea programmatic insert/cursor interaction

* Improve a test

* Testing replacement within selection

* Testing double-width character keyboard navigation and deletion keybinds with active selections

* Testing "delete to start of line" TextArea binding

* Testing TextArea delete line methods and delete to end of line

* Testing shift selecting using keyboard in vertical direction

* Expand tests for home and end keybinds in TextArea

* Renaming tests, testing empty replace and insert

* Testing delete word left via API

* Testing delete word left via API

* Testing delete_word_left with tabs, and delete_word_right

* Remove unused variables

* Remove debugging width guide

* Fix snapshot report path

* Deleting word left/right interaction with line ends fixes, ensure cursor width recorded on all edits

* Docstring fixes

* Unpin textual snapshot library dependency (issue is fixed)

* Docstring fixes

* Fix recording cursor width

* Fix a docstring

* Add select_all to TextArea

* Remove unused tree-sitter stuff from .gitignore

* Line select

* Make word pattern private in TextArea

* Add blinking cursor to TextArea

* Renaming, adding missing return typing

* Add selection bindings

* Moving cursor left/right by word while selecting

* Change escape keybind description, TextArea

* Stripping whitespace when going word left/right

* Add missing annotation

* Cursor word right and left parity with PyCharm

* Use repaint=False for cursor blink

* Improve focus/blur styling

* A whole bunch of TextArea testing

* Simplify delete_left and delete_right

* Testing hiding line numbers in snapshot

* Adding snapshot test for unfocus styling

* Create initial snapshot for text-area unfocused

* Support shift+home, shift+end

* Document shift+home, shift+end

* Add Dracula syntax highlighting theme

* Small change to delete_line behaviour when multiple lines selected to match vscode/pycharm behaviour

* Add test for new delete line logic

* Delete line improvement

* Add extra test for delete_line multiple selection

* Test cursor "smart" home behaviour

* Fix typo

* Highlight matching brackets

* Update snapshot

* Update snapshot

* Fix xfails

* Simplify delete_word_left

* Catch correct exception to ensure support for Python 3.7

* Add styling for Markdown

* Add styles for Dracula for Markdown

* Remove unused _fix_direction.py

* Add docstring to EditResult

* Use default=0 in max inside Document

* Remove redundant actions

* Use cell-width aware expand tabs implementation from @willmcgugan

* Construct strip with cell length

* Some TextArea keyword-only arguments

* Begin moving over to TextAreaTheme #skipci

* Prepare queries inside document #skip-ci

* Add comment

* Refactoring

* TextAreaTheme styling

* Setting width of blank selected lines

* Building the highlight map in the text area

* Remove unused default css from TextArea

* Moving highlighting stylize into widget

* Moving syntax highlighting into TextArea widget

* Remove unused code

* Optimise imports

* Fix highlighting when initial text supplied to TextArea

* Rebuild highlight map when the theme changes

* Extending

* Restore themes

* Remove old comment, fix docstring

* Fixing docstrings

* Fixing mypy

* Fixing mypy issues in document

* Tidying things

* Updating version

* Add theme

* Fix VSCode theme bracket matching

* Only match brackets when theres no selection

* Highlighting tidying

* Fix markdown header highlighting

* Setting theme correctly in background

* Tidying module interface

* Merging main

* Fixing a bunch of typing problems

* Fixing more typing problems

* Correctly setting theme object

* mypy

* Small fix to bracket matching

* Improve a docstring

* Fix docstring

* Testing builtin and custom languages

* Unit testing theme stuff

* Reworking themes

* Error handling

* Improve error message

* Testing new theme setting approach, error handling

* Improvements/tests for theme and language setting

* Remove unused TextArea unfocus snapshot

* Update snapshot file

* Adding theme snapshot tests

* Add `function.call` style binding in dark vscode theme

* Renaming a test file

* Making active line clearer on vscode theme

* Renaming tests

* A whole lot of docs for TextArea

* Update wording in docs

* A bit more docs

* Example on adding Java as a custom language

* More custom language docs

* Finishing up custom themeing/syntax highlighting guide for TextArea

* Add note on potential issue

* Fix wording

* Add note on Apple Silicon Python 3.7 fallback

* Add another note on Apple Silicon Python 3.7 fallback

* Fix class names in example files

* Add some documentation for useful TextArea APIs

* TextArea docs improvements

* TextArea docs typo fix

* Note about extending TextArea

* Tab-stop support when spaces used for indent

* Docs update

* Text area blog post (#3356)

* Start blog post

* Add demo script to blog post

* Continuing the blog post

* Yet more writing for TextArea blog post

* Working on closing section

* Finishing up

* Update docs/blog/posts/text-area-learnings.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/blog/posts/text-area-learnings.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Typo fix

* Update docs/blog/posts/text-area-learnings.md

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>

* Remove redundant pass

* Add docstring

* Docs fix

* Simplify docs

* Improve docstring

* Add links in docstrings

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-09-21 11:10:14 +01:00
Will McGugan
d204ba86b5
Scoped css (#3358)
* Scoped css

* snapshot tests

* selector

* Update docs/guide/widgets.md

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-09-21 09:58:59 +01:00
Dave Pearson
0bef8fbf37
Merge pull request #3334 from pawamoy/goto-anchor-returns-bool
Return a boolean from `Markdown.goto_anchor`
2023-09-21 09:49:45 +01:00
Timothée Mazzucotelli
91ab82e8fa fixup! Return a boolean from Markdown.goto_anchor 2023-09-21 10:28:05 +02:00
Timothée Mazzucotelli
63d7fb0ea6 Merge branch 'main' into goto-anchor-returns-bool 2023-09-21 10:25:48 +02:00
Rodrigo Girão Serrão
8aab7c2520
Speed up tests a bit.
Turning off the animation will make the scrolling slightly snappier.
2023-09-20 17:45:23 +01:00
Rodrigo Girão Serrão
5914e03728
Pilot.click/hover are now aware of mistargets.
The methods click/hover will now raise an error if they target a region that is outside of the target widget or completely outside of the screen. Then, they return a Boolean that indicates whether the click/hover hit the intended widget or not.

Related issue: #3349.
2023-09-20 17:41:03 +01:00
Rodrigo Girão Serrão
8007031f61
Test Pilot.click and Pilot.hover. 2023-09-20 17:23:36 +01:00
Rodrigo Girão Serrão
5a6130af0b
Test Pilot.click/hover outside of screen. 2023-09-20 14:26:45 +01:00
Rodrigo Girão Serrão
79e9f3bc16
Tweak progress bar docs. (#3286)
* Tweak progress bar docs.

There is no good reason as to why the progress bar can't be set back to its indeterminate state (and you could actually do it with code) so this removes the docstring that says that a progress bar can't go back to its indeterminate state.

Related issue: #3268
Related Discord message: https://discord.com/channels/1026214085173461072/1033754296224841768/1149742624002023594

* Use a special sentinal in ProgressBar.update

To comply with https://github.com/Textualize/textual/pull/3286#pullrequestreview-1628601324 we create a new type around a sentinel object and check whether we're using the sentinel before modifying the progress bar reactives.

Things that didn't quite work well:
- directly checking 'if parameter is not _sentinel:' won't satisfy type checkers because that condition doesn't restrict the type of 'parameter' to _not_ be 'UnsetParameter'.
- checking 'isinstance(parameter, float)' isn't enough because the user may call the method with an integer like '3' and then the isinstance check would fail.

- checking 'isinstance(parameter, (int, float))' works but looks a bit odd, plus it is not very general.

* Rework ProgressBar.update with a sentinel value.
2023-09-20 13:51:01 +01:00
Rodrigo Girão Serrão
dfba992722
DataTable new rows can have auto height. (#3213)
* DataTable new rows can have auto height.

Related issue: #3122.

* Test auto height computation in DataTable.add_row

* Add snapshot test for add_row height=None.

* Extract some styles logic into auxiliary methods.

When adding a row with automatic height, I need to render the cells to compute their height. Instead of wasting that rendering, I want to do it well and then cache it, which means I need to reuse some of the logic of the other rendering methods. By extracting some logic, I'll be able to reuse it.

* Cache auxiliary cell renderings.

* Fix test import.

* Set row height to 0 when adding auto-height row.

* Remove superfluous cache clear.

* Fix cache/typing issue.

* Cache method to compute styles to render cell.

We extract this logic into a method for two reasons.
For one, having this as a method with an lru cache enables caching these auxiliary styles, which don't depend directly on the location of the cell, but instead depend on the values of 9 Boolean flags (making for a total of 512 possible combinations, versus the infinite number of different positions/states a cell can be in.
Secondly, having this as a method allows me to compute these styles more easily from within _update_dimensions when trying to salvage the renderings of the cells of a new row that may have been pre-rendered with the wrong height.
(See the following commits for more context.)

* Perform surgery on the datatable cache.

* Improve data table tests.

* Reduce cache size.

The first five parameters (is_header_cell, is_row_label_cell, is_fixed_style_cell, hover, and cursor) are the ones that change more frequently, so it is reasonable to fix the size of the cache at 32.

Related comment: https://github.com/Textualize/textual/pull/3213#discussion_r1326071862

* Clear cache with other caches.

Related comment: https://github.com/Textualize/textual/pull/3213#discussion_r1326071862.
2023-09-20 13:49:48 +01:00
Rodrigo Girão Serrão
732ea9d1f7
Fix #3312. (#3313) 2023-09-20 12:58:59 +01:00
Dave Pearson
6d3b506387
Mark the command palette as existing (#3348)
* Mark the comment palette as existing

I've not checked of "Command menu" as that sounds like something slightly
different from the command palette.

* Reword the command palette part of the roadmap
2023-09-19 17:54:29 +01:00
Rodrigo Girão Serrão
e936d50d62
Merge pull request #3292 from Textualize/contributing
Update CONTRIBUTING.md.
2023-09-19 14:20:36 +01:00
Rodrigo Girão Serrão
711d3dc0f0
Address review feedback. 2023-09-19 13:22:40 +01:00
Rodrigo Girão Serrão
73cac88bef
Update CONTRIBUTING.md
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-09-19 13:16:52 +01:00
Will McGugan
e793dd81f1 blurb 2023-09-19 13:08:22 +01:00
Will McGugan
f187a420ef welcome tweak 2023-09-19 12:46:43 +01:00
Will McGugan
b1dfd11568 fixed line numbers 2023-09-19 12:03:44 +01:00
Rodrigo Girão Serrão
3825f43234
Tweak docs. (#3346) 2023-09-19 11:07:10 +01:00
Will McGugan
32a0091973 definsive repr 2023-09-19 10:57:58 +01:00
Will McGugan
c2a1d82741 fix links 2023-09-19 10:49:31 +01:00
Will McGugan
27ab81ef2e Module docs 2023-09-19 10:22:35 +01:00
Will McGugan
26ba3b15b9
Update lockfile (#3341) 2023-09-18 13:31:45 +01:00
Timothée Mazzucotelli
ae77c1df1c fixup! Return a boolean from Markdown.goto_anchor 2023-09-18 11:35:38 +02:00
Dave Pearson
b886ef4e45
Merge pull request #3337 from 1j01/patch-1
Fix heading in changelog for 0.37.0
2023-09-18 08:43:01 +01:00
Isaiah Odhner
34a2a1343b
Fix heading in changelog for 0.37.0 2023-09-18 02:09:11 -04:00
Timothée Mazzucotelli
f72f555872 Return a boolean from Markdown.goto_anchor 2023-09-17 11:36:51 +02:00
Will McGugan
b99da2d6b9
Testing guide (#3329)
* testing docs

* words

* words

* testing doc

* Apply suggestions from code review

Co-authored-by: Gobion <1312216+brokenshield@users.noreply.github.com>

---------

Co-authored-by: Gobion <1312216+brokenshield@users.noreply.github.com>
2023-09-17 10:34:32 +01:00
Dave Pearson
31eaf3ffb8
Fix command palette docs example (#3331) 2023-09-17 09:02:04 +01:00
Will McGugan
6d561d4ed0 fix changelog 2023-09-16 10:56:11 +01:00
Will McGugan
e14cdd0757 version bump 2023-09-16 10:54:37 +01:00
Dave Pearson
8002583fa1
Stop command palette Input message leakage (#3322)
* Fix Input event leakage from Command Palette to app

* Update the CHANGELOG
2023-09-16 10:53:44 +01:00
Will McGugan
427e45a945 changelog 2023-09-16 10:50:10 +01:00
Dave Pearson
bebadb0f02
Fix command palette TimeoutError error (#3321)
* Reinstate the import of TimeoutError from asyncio

Fixes #3320

It looks like eaa749665f9b8271eff45be8e5e1e72ac8729b9e smuggled this change
in and caused the command palette to cease to work correctly on any version
of Python before 3.11.

This should make it work on all Pythons from 3.7 onward again.

* Update the CHANGELOG
2023-09-16 10:44:15 +01:00
TomJGooding
137a98759d
docs: fix typos in release 0.37.0 blog (#3317) 2023-09-15 17:01:09 +01:00
Will McGugan
8b4ecb2bc7 words 2023-09-15 16:47:16 +01:00
Will McGugan
4dc8358c63
new release (#3316) 2023-09-15 16:40:05 +01:00
Will McGugan
ce32abd37e
Use active message pump in pop screen (#3315)
* Use active message pump in pop screen

* message pump
2023-09-15 14:08:41 +01:00
Will McGugan
149c5e2a1d
color command example (#3314)
* color command example

* Scroll to end
2023-09-15 13:11:34 +01:00
Dave Pearson
129163f624
Merge pull request #3309 from davep/tweak-command-palette-busy-indication
Tweak command palette busy indication
2023-09-14 21:22:01 +01:00
Dave Pearson
f8d3a98fb1
Regenerate snapshots 2023-09-14 21:02:02 +01:00
Dave Pearson
2f5b282589
Only stop the busy timer on a clean exit
Fixes #3299. Long story short: if a previous search was in the process of
stopping it looks like it could end up killing the timer for the next
search; given a fresh search resets the timer anyway there's no sense in
stopping the timer when we're being aborted.
2023-09-14 20:49:28 +01:00
Dave Pearson
a8820666ac
Remove double assignment
Looks like I was having a moment when I typed this line.
2023-09-14 20:48:43 +01:00
Will McGugan
983e33d547 fix title 2023-09-14 19:03:18 +01:00
TomJGooding
bb2a21e62a
docs: correct grid gutter type (#3307) 2023-09-14 18:52:25 +01:00
Will McGugan
9431890a7d
Collapsible style tweak (#3306)
* tweaks to style

* changelog

* snapshot

* add additional space for nested widgets

* tweak to nested collapsibles and snapshots

* remove superfluous rules
2023-09-14 17:34:15 +01:00
Will McGugan
1db9ecb302
Update Collapsible (#3305)
* Update Collapsible

* snapshot tests

* word

* Update docs/widgets/collapsible.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/widgets/collapsible.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* simplify render

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-09-14 16:26:41 +01:00
Will McGugan
ea6bf766e7
Cp shutdown (#3303)
* change hotkey

* binding

* rename Source to Provider

* name change

* name changes

* words

* docstring

* system commands

* add icon click

* replace dim with muted

* log shutdown errors

* Update src/textual/screen.py

Co-authored-by: Dave Pearson <davep@davep.org>

* fix tests

* Wee bit more source->provider rewording

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-09-14 15:21:51 +01:00
Sunyoung Yoo
3b2b9aaaf5
Widget collapsible (#2989)
* Collapsible container widget.

* Expose collapsible widget.

* Add collapsible container example

* Rename member variables as label and apply formatting

* Apply hover effect

* Apply formatting

* Add collapsible construction example with children.

* Wrap contents within Container and move _collapsed flag to Collapsible class from  Summary for easier access.

* Add collapsible example that is expanded by default.

* Update collapsed property to be reactive

* Add footer to collapse and expand all with bound keys.

* Expose summary property of Collapsible

* Assign ids of ollapsed, expanded label instead of classes

* Add unit tests of Collapsible

* Rename class Summary to Title

* Rename variables of expanded/collapsed symbols and add it to arguments..

* Add documentation for Collapsible

* Update symbol ids of Collapsible title

* Update src/textual/widgets/_collapsible.py

Correct import path

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Sort module names in alphabetical order

* Clarify that collapsible is non-focusable in documentation.

* Add version hint

* Fix documentation of Collapsible.

* Add snapshot test for collapsible widget

* Stop on click event from Collapsible.

* Handle Title.Toggle event to prevent event in Contents from propagating to the children or parents Collapsible widgets.

* Update Collapsible default css to have 1 fraction of width instead of 100%

* Update Collapsible custom symbol snapshot

* Add Collapsible custom symbol snapshot as an example

* Update docs/widgets/collapsible.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/widgets/_collapsible.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Fix typo in Collapsible docs

* Rework collapsible documentation.

---------

Co-authored-by: Sunyoung Yoo <luysunyoung@aifactory.page>
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-09-14 13:10:21 +01:00
Dave Pearson
ccc3e7a791
Merge pull request #3298 from davep/command-palette-visual-tweaks
Command palette visual tweaks
2023-09-13 22:10:16 +01:00
Dave Pearson
26e9833144
Merge pull request #3300 from davep/remove-screen-assert
Remove assertion that the calling screen is not None
2023-09-13 22:09:54 +01:00
Dave Pearson
9368e9e8ed
Merge pull request #3297 from davep/remove-unused-match-style
Remove unused grab of the match component style
2023-09-13 22:09:21 +01:00
Dave Pearson
767990eabe
Merge pull request #3296 from davep/remove-unused-command-import
Remove an unused import from command.py
2023-09-13 22:09:00 +01:00
Dave Pearson
5c9c6fcded
Update snapshits (redux) 2023-09-13 21:57:29 +01:00
Dave Pearson
0c75239ebc
Remove assertion that the calling screen is not None
The assert was for the benefit of type checkers; the code that needed that
hint was moved elsewhere by the recent tweak; but this wasn't tidied up.

This tidies that up.
2023-09-13 21:43:57 +01:00
Dave Pearson
60edeffff6
Update snapshits 2023-09-13 21:41:56 +01:00
Dave Pearson
22fa22e3a9
Make the placeholder text of the input more specific 2023-09-13 21:24:57 +01:00
Dave Pearson
460603aa43
Make the borders of the command palette more subtle 2023-09-13 21:23:49 +01:00
Dave Pearson
5cd020ed7c
Remove unused grab of the match component style
The recent tweak of the command palette code moved the acquisition of the
match style component class elsewhere, but seems to have left this dangling.
2023-09-13 21:10:03 +01:00
Dave Pearson
4445ce392b
Remove an unused import from command.py
Presumably a hangover from the recent tweak session.
2023-09-13 21:06:56 +01:00
Dave Pearson
057cb7f76f
Ensure that print reports the correct location in console
Fixes #3237 -- see also https://github.com/Textualize/textual-dev/pull/19
2023-09-13 17:20:27 +01:00
Dave Pearson
1a471fd19c
Merge pull request #3293 from davep/undocument-optionlist-default-css
Remove the docstring for `OptionList.DEFAULT_CSS`
2023-09-13 17:08:31 +01:00
Rodrigo Girão Serrão
7284e83df2
Reword issue instructions bit.
Related comment: https://github.com/Textualize/textual/pull/3292#discussion_r1324745448
2023-09-13 17:06:51 +01:00
Dave Pearson
6dfe017c52
Remove the docstring for OptionList.DEFAULT_CSS
We really don't need to document anything like this, I'll have done it by
habit, and having it there pulls it into the docs which then pollutes the
search results if someone is searching for what DEFAULT_CSS is all about.
2023-09-13 16:51:40 +01:00
Rodrigo Girão Serrão
b12fa2ac7e
Address review feedback. 2023-09-13 15:50:36 +01:00
Will McGugan
5d6a95dec5
Command Palette tweaks and docs (#3289)
* renames to command palette and docs

* docs

* simplifyt

* note

* docstring

* Update src/textual/command.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/examples/guide/command_palette/command01.py

Co-authored-by: Dave Pearson <davep@davep.org>

* populate text

* screen commands

* Update docs/guide/command_palette.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/guide/command_palette.md

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Dave Pearson <davep@davep.org>
2023-09-13 15:03:25 +01:00
Rodrigo Girão Serrão
5ddeadc62e
Update contributing.
Related issue: #3229.
2023-09-13 14:55:04 +01:00
Dave Pearson
b6bbcb15f9
Recode incoming text on Windows before input event processing
See #3178.
2023-09-13 09:44:43 +01:00
Dave Pearson
0a14bf0549
Merge pull request #3287 from davep/blog-metadata-update
Update the blog author metadata.

WARNING: Be sure to do an update of dependencies before serving or building docs from this point on!
2023-09-12 14:18:38 +01:00
Dave Pearson
8e315a1cd1
Update the blog author metadata
As per the warning if you use the latest release of mkdocs-material:

WARNING -  Action required: the format of the authors file changed.
           All authors must now be located under the 'authors' key.
           Please adjust 'docs/blog/.authors.yml' to match:

           authors:
             squidfunk:
               avatar: https://avatars.githubusercontent.com/u/932156
               description: Creator
               name: Martin Donath

Note that this is for after:

  Updating mkdocs-material (8.5.9+insiders.4.26.2
  /Users/davep/develop/python/mkdocs-material-insiders -> 9.2.7)

It's also worth noting that our docs should now build regardless of
insiders' edition or not now; given that the blog module is part of the
mainstream release.
2023-09-12 13:04:49 +01:00
Dave Pearson
6d1967be7a
Merge pull request #3276 from TomJGooding/docs-add-datatable-supplementary-classes
docs: add datatable supplementary classes
2023-09-12 12:57:32 +01:00
Dave Pearson
0f9d189978
Merge pull request #3244 from davep/markdown-anchor-jump
Fix Markdown anchor load crash, and support going to an heading on document load
2023-09-12 12:38:47 +01:00
Dave Pearson
f19ed898ff
Merge pull request #3285 from TomJGooding/test-remove-dupe-directory-tree-test
test: remove dupe directory tree test
2023-09-12 12:38:21 +01:00
TomJGooding
0f18453b44
test: remove dupe directory tree test 2023-09-12 11:12:49 +01:00
Dave Pearson
31636e7679
Merge branch 'main' into markdown-anchor-jump 2023-09-12 11:10:31 +01:00
Dave Pearson
a83954e122
Actually link to the relevant PR 2023-09-12 11:08:13 +01:00
Rodrigo Girão Serrão
d31fb82239
Merge pull request #3203 from TomJGooding/feat-directory-tree-add-directory-selected-message
feat(directory tree): add directory selected message
2023-09-12 10:29:13 +01:00
TomJGooding
25ff8e791d
Merge branch 'main' into feat-directory-tree-add-directory-selected-message 2023-09-11 21:24:12 +01:00
Dave Pearson
460bbbad8d
Merge branch 'main' into markdown-anchor-jump 2023-09-11 20:18:53 +01:00
Dave Pearson
7ca5dd69ef
Merge pull request #3058 from davep/M-x
Command palette
2023-09-11 15:09:03 +01:00
Will McGugan
9ca0929099
Merge branch 'main' into M-x 2023-09-11 14:49:28 +01:00
Rodrigo Girão Serrão
cc8adeaba0
Merge pull request #3193 from Textualize/input-blur-validation
Customisable input validation (& validation on blur events)
2023-09-11 14:38:06 +01:00
Rodrigo Girão Serrão
d39c0c3a89
Improve documentation. 2023-09-11 14:28:23 +01:00
Rodrigo Girão Serrão
0c23aefcc0
Merge branch 'main' into input-blur-validation 2023-09-11 14:27:31 +01:00
Rodrigo Girão Serrão
7d4a47b253
Merge pull request #3199 from Textualize/screen-title-sub-title
Add title and sub-title to screens.
2023-09-11 13:49:28 +01:00
Will McGugan
9e29982ebb
Make notify thread-safe (#3275)
* Make notify thread-safe

* test fixes

* docstring

* Update tests/notifications/test_app_notifications.py

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-09-11 13:25:31 +01:00
TomJGooding
3d7f5e2c74 docs: add datatable supplementary classes 2023-09-11 13:16:07 +01:00
Rodrigo Girão Serrão
5a15e9c8aa
Add docstrings to properties.
Related comment: https://github.com/Textualize/textual/pull/3199#discussion_r1321288977
2023-09-11 11:37:44 +01:00
Rodrigo Girão Serrão
63ace0715e
Merge branch 'main' into input-blur-validation 2023-09-11 11:30:38 +01:00
Rodrigo Girão Serrão
a263072781
Invert logic to specify events for input validation.
Related review comment: https://github.com/Textualize/textual/pull/3193#discussion_r1321250339.
2023-09-11 11:30:00 +01:00
David Hallas
550f647e0f
Fixes missing fileno function (#3111) (#3239)
Adds missing fileno function to _PrintCapture class. This is needed
because _PrintCapture behaves like a normal stdin/stdout/stderr class
which provides this method.
2023-09-11 10:39:05 +01:00
Rodrigo Girão Serrão
53125ec7d4
Merge branch 'main' into screen-title-sub-title 2023-09-11 10:31:29 +01:00
Will McGugan
b9e1521835
Merge branch 'main' into feat-directory-tree-add-directory-selected-message 2023-09-11 10:30:02 +01:00
Rodrigo Girão Serrão
5ec3feafc7
Type Screen.(SUB_)TITLE as class var.
Related review comment: https://github.com/Textualize/textual/pull/3199/files#r1321216368.
2023-09-11 10:28:50 +01:00
Rodrigo Girão Serrão
4ed93d45c1
Add screen_(sub_)title properties to header.
Related review comment: https://github.com/Textualize/textual/pull/3199/files#r1321226453.
2023-09-11 10:27:24 +01:00
Dave Pearson
60d5005a68
Merge pull request #3274 from davep/fix-optionlist-hover-remove-crash
Fix an OptionList crash when removing an option during mouse hover
2023-09-11 09:59:27 +01:00
Dave Pearson
a107218064
Fix an OptionList crash when removing an option during mouse hover
If the mouse is hovering over the last option in an OptionList, and an
option is removed, the application will crash with an IndexError. The
problem was that the record of the hovered option needed to be cleared when
an option is removed (as it is during other changes).

Fixes #3270
2023-09-11 09:22:24 +01:00
Darren Burns
74aa90f5ac
Add Python 3.12 to CI suite (#3255) 2023-09-10 14:58:33 +01:00
Dave Pearson
1d120d91fc
Fix being asked to go to an anchor with no filename given
Co-authored-by: Timothée Mazzucotelli <pawamoy@pm.me>
2023-09-08 07:57:20 +01:00
Dave Pearson
4ac8df2574
Improve the test for file and string markdown viewing
Co-authored-by: Timothée Mazzucotelli <pawamoy@pm.me>
2023-09-07 17:24:53 +01:00
Dave Pearson
ea832b8a9a
Add tests for clicking on a link when markdown is from a string
Co-authored-by: Timothée Mazzucotelli <pawamoy@pm.me>
2023-09-07 16:43:09 +01:00
Dave Pearson
3b0e86bfef
Add more testing of clicking on links 2023-09-07 16:39:47 +01:00
TomJGooding
362684b63e merge main and resolve changelog conflict 2023-09-07 16:08:46 +01:00
Will McGugan
85970972d9
blog post (#3248)
* blog post

* bump timestamp

* words
2023-09-06 17:53:31 +01:00
Dave Pearson
63cbc52952
Remove screenshot as a system command for the command palette
While it's kinda cool... it's not really very helpful if you're doing things
via textual-web; all you're going to do is start to use storage on the host
machine, not the client machine (unless they're the same thing, of course).
2023-09-06 14:51:26 +01:00
Dave Pearson
5a272c539d
Bump predicted command palette escape to the wild to 0.37.0 2023-09-06 14:48:06 +01:00
Dave Pearson
85a3af320a
Merge branch 'main' into M-x 2023-09-06 14:46:33 +01:00
Dave Pearson
1c1836e7f4
Handle locations that are *just* the anchor
If just an anchor is given, it is assumed that we'll be finding it within
the current document.
2023-09-06 14:06:13 +01:00
Dave Pearson
db2a5853d8
Make sanitize_location a public API method 2023-09-06 13:29:52 +01:00
Dave Pearson
284a5b973f
Make goto_anchor public 2023-09-06 13:19:56 +01:00
Dave Pearson
a70235e42d
Update the CHANGELOG
Co-authored-by: Chakib Benziane <contact@blob42.xyz>
2023-09-06 10:18:47 +01:00
Dave Pearson
738eb7b9b7
After loading a Markdown document, jump to any matching anchor
Co-authored-by: Chakib Benziane <contact@blob42.xyz>
2023-09-06 10:13:37 +01:00
Dave Pearson
798f67f01d
Allow loading a different file into the markdown example
Not getting carried away with this -- frogmouth exists after all -- but
allowing passing a different file on the command line does make it easier to
quickly test the Markdown widget.
2023-09-06 09:27:22 +01:00
Dave Pearson
7f40287691
Persist the table of contents in the Markdown widget 2023-09-05 16:20:05 +01:00
Dave Pearson
fa7f6b3066
Remove any anchor that's included in a filename to load from a Markdown file
Fixes the issue reported in #3094.

There's more to come on this, as rather than just fix that error, we'd also
like to go to the header that the anchor relates to. See #3094 for an
initial approach to this. This PR builds on the idea in a different way.

But before doing that wider part, this simply starts out by fixing the
reported bug.
2023-09-05 15:35:24 +01:00
Dave Pearson
ac57633146
Add tests for loading a markdown file with an anchor included
Tests the problem reported in #3094
2023-09-05 15:33:50 +01:00
Dave Pearson
eb1fe6db71
Merge pull request #3236 from davep/markdown-homeless-snails
Add utility code for generating Markdown-oriented slugs
2023-09-05 14:36:31 +01:00
Will McGugan
2891fce71a date in changelog 2023-09-05 13:57:08 +01:00
Will McGugan
11ba91a275
version bump (#3235) 2023-09-05 13:54:56 +01:00
Dave Pearson
70ab4c7763
Add URL quoting as the final act of slugging 2023-09-05 13:51:17 +01:00
Dave Pearson
f50f4e1125
Docstring tidy 2023-09-05 12:43:12 +01:00
Dave Pearson
edc0420a5a
Simplify and improve the slugging code
This isn't 100% how GitHub's approach works, but the edge cases I can find
appear to be bugs or issues with how GitHub handle the more interesting
emoji when they appear in headers.

Long story short: they appear to just strip emoji for the most part, but if
an emoji is modified in some interesting way (think shrugging person vs
shrugging light-skinned woman with black hair) it looks like the final
codepoint "leaks" into the slug; nothing about this looks intentional, and
it's such a remote issue that it's hardly worth supporting.
2023-09-05 12:33:13 +01:00
Dave Pearson
418819c94e
General code tidying 2023-09-05 09:09:26 +01:00
TomJGooding
06b6426750
feat: add rule widget (#3209)
* feat: add rule widget

* add star to init

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* remove unnecessary validations

* update rule styles

* add tests for invalid rules

* add minimum heights and widths

* tidy up examples

* remove old example

* move examples styling to tcss

* modify examples to fit docs screenshots

* add docs first draft

* add snapshot tests

* add rule to widget gallery

* make non-widget rule classes available

* tentatively update changelog

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-09-04 17:57:10 +01:00
Will McGugan
cbed79c7eb
Modes docs (#3233)
* Modes docs

* Added current mode

* fix docstring

* diagrams

* Update docs/guide/screens.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/guide/screens.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* words

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-09-04 17:40:40 +01:00
Dave Pearson
4cbb4af807
Merge branch 'main' into markdown-homeless-snails 2023-09-04 16:40:53 +01:00
Dave Pearson
1fcf259e6d
Merge branch 'main' into M-x 2023-09-04 16:40:32 +01:00
Dave Pearson
80821155a6
Add a test for accents 2023-09-04 16:19:19 +01:00
Dave Pearson
6d4fcaa4c6
Merge pull request #3232 from davep/see-also-focus-blur
Add see-also entries to the various blur/focus messages
2023-09-04 15:46:48 +01:00
Dave Pearson
9f83145d70
Boring sort rather than exciting sort
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-09-04 15:40:33 +01:00
Dave Pearson
cd1b29fb2b
Add see-also entries to the various blur/focus messages
This question crops up from time to time, often with people looking for
"focus" or "blur" and wondering why they don't bubble and so then wondering
how they can catch such events in ancestors in the DOM.

The Descendant prefix isn't obvious (I always forget what it is and need to
go hunting), so having the focus and blur events link to the descendant
events should help make them easier to discover.
2023-09-04 15:33:44 +01:00
Dave Pearson
190a57c414
Initial work on figuring out how best to slug like GitHub Markdown
Still some work to do to figure out the rules, but this is a good starting
point.
2023-09-04 15:23:58 +01:00
Will McGugan
c63d8e05fa
return code docs (#3231)
* return code docs

* words

* words

* Update docs/guide/app.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/guide/app.md

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-09-04 14:03:25 +01:00
TomJGooding
c2fe5257bf Merge branch 'main' into feat-directory-tree-add-directory-selected-message 2023-09-04 11:45:31 +01:00
Will McGugan
229b8c4c7c
fix updating CSS on push_screen (#3218)
* fix udpating CSS on push_screen

* changelog

* lock file
2023-09-04 10:53:45 +01:00
TomJGooding
cb3b1286fc
chore: remove superfluous bubble=true from messages (#3225) 2023-09-04 10:32:49 +01:00
Dave Pearson
7434f977bb
Remove the "no matches" note as soon as possible
We've recently changed the way the command list is cleared down when the
search term is modified, thus removing a source of "flashing" as the user
types; this pretty much involves *not* clearing down the previous hits until
the first new hit comes in. This is fine in all situations expect where the
last search was a "no matches" search.

In that situation the next search stats out saying "no matches". That's
correct, that's the result of the previous search, but in this case it's
unhelpful and potentially confusing. So this commit checks if that's the
state of the command list up front and clears that option from the list.
2023-09-04 08:57:16 +01:00
Dave Pearson
e9b3e2dea5
Test for "no matches" using an ID, rather than just being disabled 2023-09-04 08:53:00 +01:00
Dave Pearson
c07ab4a7dd
Merge branch 'main' into M-x 2023-09-04 08:34:18 +01:00
Will McGugan
c5c51902e8
Fixes flicker on tree scroll (#3210)
* changelog

* changelog
2023-09-01 15:33:05 +01:00
TomJGooding
4db9a065bc import future for tests 2023-09-01 11:13:53 +01:00
TomJGooding
9e7e9ab1f4 fix too many messages and add tests 2023-09-01 09:17:16 +01:00
Dave Pearson
32ea9584a5
Add a note about retaining the default Textual command sources 2023-08-31 11:27:45 +01:00
Dave Pearson
70ee49b140
Add a wee note about what happens to unhandled exceptions 2023-08-31 11:24:07 +01:00
Dave Pearson
b5bea9b68c
Merge pull request #3212 from davep/tweak-radioset-wording
Reword the description of the buttons for a RadioSet
2023-08-31 10:41:50 +01:00
Dave Pearson
2c2c3fc92b
Reword the description of the buttons for a RadioSet
The use of collection was in the prose sense, not the technical sense, but
it could be misleading to many readers.
2023-08-31 10:29:31 +01:00
TomJGooding
6f8db6001d pop superfluous bubbles from messages 2023-08-30 18:15:03 +01:00
TomJGooding
11ec1da9ac merge main and resolve changlog conflicts 2023-08-30 18:10:48 +01:00
Dave Pearson
25a0d3b7ab
Tentatively mark the command palette as going into v0.36.0 2023-08-30 15:38:17 +01:00
Dave Pearson
f507fe09c6
Update snapshots 2023-08-30 15:21:41 +01:00
Dave Pearson
cbb3350d36
Add some extra documentation linkage 2023-08-30 15:11:40 +01:00
Dave Pearson
bb7bb238b8
Remove the colour of the highlight 2023-08-30 14:59:51 +01:00
Dave Pearson
0ce862bc9c
Move the "run" button leftward one cell 2023-08-30 14:28:48 +01:00
Dave Pearson
371048ffc2
Docstring and comment tidying 2023-08-30 14:05:40 +01:00
Dave Pearson
110ea786ae
Merge branch 'main' into M-x 2023-08-30 13:17:04 +01:00
Dave Pearson
fd3b72e093
Log command source errors rather than blow up because of them
See https://github.com/Textualize/textual/pull/3058#discussion_r1310051855
2023-08-30 12:56:01 +01:00
Rodrigo Girão Serrão
b74ac1e47f
Merge pull request #3202 from Textualize/return-codes
Add app return codes.
2023-08-30 11:18:27 +01:00
Rodrigo Girão Serrão
ecd7c93a03
Simplify return code logic.
Related comment: https://github.com/Textualize/textual/pull/3202#discussion_r1309027006
2023-08-30 11:06:33 +01:00
Will McGugan
ec6b23a2dc
add devtools_host env (#3204) 2023-08-30 09:54:47 +01:00
Dave Pearson
17351ba637
Squish the typing issue with asend
The asend back into the search routing was always showing a typing mismatch,
but I couldn't quite see what was going on; what made it even more confusing
was the code was working fine.

It looks like keeping hold of the "routine", and keeping that distinct from
the iterator of the results, is the trick here. It all still works *and* the
typing works out.
2023-08-29 20:46:21 +01:00
TomJGooding
680f167212 update changelog 2023-08-29 20:44:31 +01:00
Dave Pearson
0bd7d7fd5f
yield NotImplemented, not raise
There's one typing error that's been with me for weeks now, and nothing I
did seemed to get to the heart of it. Finally, I think it's dawned on me.
Raising NotImplemented from the abstract base implementation confuses the
type checker as it's not seeing any sort of yield going on. This... this
solves it.

I'm not 100% sure this is the correct thing to do, advice online seems
patchy at best and the couple of things I've seen that do seem to address
this sort of situation seem to introduce other typing issues (a bare yield
being the main suggestion, which won't work as then it'll be yielding the
wrong type).

Gonna sit on this for now and see how I feel about it, or see if I can find
something relevant to this.
2023-08-29 20:29:51 +01:00
TomJGooding
ce4285f315 feat(directory tree): add directory selected message 2023-08-29 20:11:41 +01:00
Dave Pearson
ad1fb4da0b
Improve the typing of the parent screen tracking 2023-08-29 15:53:58 +01:00
Rodrigo Girão Serrão
da0cd5e2c1
Return code is None before exiting.
Related comment: https://github.com/Textualize/textual/pull/3202#discussion_r1308883427
2023-08-29 15:49:48 +01:00
Yuval Moalem
6d24244b6a
Fix click on input with double width chars (#3066)
* Fix cursor position when clicking double-width char #2968

The cursor moved to the correct position only when clicking the first
index of the character. We now check if the click happened inside a
range of indices.

* Update changelog #2968
2023-08-29 15:19:49 +01:00
Rodrigo Girão Serrão
f8250dd428
Add tests for app return code. 2023-08-29 14:52:13 +01:00
Rodrigo Girão Serrão
41e5a42943
Add app return codes. 2023-08-29 14:49:47 +01:00
Dave Pearson
ecc1c11e9c
Delay showing the list until we really need it 2023-08-29 14:45:20 +01:00
Dave Pearson
aedba411ec
Stop the working on input, as soon as possible
While I don't think this really makes a difference to anything, it makes
sense in the flow of the code to make it clear we're stopping as soon as
possible. We don't need more commands from any source as we have a brand new
query.
2023-08-29 14:31:05 +01:00
Dave Pearson
74c532dabc
Don't catch a timeout we're not looking to raise any more
Vestigial seeking of forgiveness for an action that's no longer taking
place.
2023-08-29 12:43:45 +01:00
Rodrigo Girão Serrão
c63072f5bd
Link App (sub-)title to Screen respectives. 2023-08-29 12:08:57 +01:00
Rodrigo Girão Serrão
26e81c99e3
Test screen (sub-)title. 2023-08-29 12:07:09 +01:00
Rodrigo Girão Serrão
e48e0148b3
Add title and sub-title to screens.
Mimicking 'App', we provide class variables TITLE and SUB_TITLE for the screen defaults and those can then be changed via the title and sub_title reactive attributes.

Related issue: #3195
2023-08-29 12:04:39 +01:00
Dave Pearson
62bad31616
Actually use the command source in the test, in the test, redux 2023-08-29 11:37:23 +01:00
Dave Pearson
97790b461f
Actually use the command source in the test, in the test 2023-08-29 11:35:10 +01:00
Dave Pearson
6a73a2dce4
Update the pytest snapshot test library 2023-08-29 11:29:15 +01:00
Dave Pearson
d69f7f568c
Ensure the worker is cancelled when a selection is made
Helps to ensure that command sources don't carry on running longer than
necessary.
2023-08-29 10:35:20 +01:00
Dave Pearson
45c7c417da
Add back the check that a search is done
Wandered around a couple of ways of writing this, then somehow settled on a
final version that didn't do what I meant to do. O_o
2023-08-29 09:31:35 +01:00
Dave Pearson
c511b5af0e
Spell out gndn 2023-08-29 09:08:50 +01:00
Dave Pearson
d539b815c2
Bubble up any exception raised in a command source 2023-08-29 08:54:22 +01:00
Dave Pearson
f59655c463
Add a case_sensitive property to the fizzy.Matcher
Mostly useful with the repr.
2023-08-29 08:53:44 +01:00
Dave Pearson
6c55cefbf0
Tidy up the code that stops the command list flash 2023-08-29 08:19:21 +01:00
Dave Pearson
f6400a9d51
Comment tidy 2023-08-28 21:06:53 +01:00
Dave Pearson
65378cb92f
Reinstate the tracking of the very last update
Accidentally got rid if it in a recent commit.
2023-08-28 21:04:20 +01:00
Dave Pearson
7da6dc768c
Don't allow dropping the cursor into a list with zero matches
An empty command list isn't really empty, it has a single disabled option
that shows that no matches were found; there's no point in allowing that to
be highlighted by the user.
2023-08-28 19:57:31 +01:00
Dave Pearson
8caa9088b3
Don't isolate the star of the loop from the loop 2023-08-28 19:53:36 +01:00
Dave Pearson
100a9e3d03
Avoid the found commands list flashing while typing
For obvious reasons, every time the user typed a letter, the list of
already-completed commands needed to be cleared down before new ones got
added. While the code concerned with doing this was in the right place (when
a key was pressed), this had the unfortunate side-effect of making the list
appear to "flash" as the user typed the first few letters, especially if a
lot of hits were found near-instantly.

This commit delays the initial clearing-down of the content of the list,
keeping track of if the clear has been done already and only doing it at the
very last moment if it's needed.
2023-08-28 19:30:18 +01:00
Dave Pearson
e699752ffd
Make it clear what a couple of magic numbers are
Of course, they're not magic at all really, they're just fractional second
values that make sense in context; but giving them a name will help explain
what they're for.
2023-08-28 18:49:07 +01:00
Dave Pearson
6839c0393f
Batch up updates into fractions of a second 2023-08-28 16:28:44 +01:00
Rodrigo Girão Serrão
b427a8a41a
Update CHANGELOG.md 2023-08-28 16:00:05 +01:00
Rodrigo Girão Serrão
4826e436a8
Complete docs about customising validation. 2023-08-28 15:59:03 +01:00
Will McGugan
c133152f58
Pop flicker (#3194)
* reduce flicker on pop

* changelog

* changelog
2023-08-28 15:55:20 +01:00
Will McGugan
cb45dacb3a
refresh children on layout (#3192)
* refresh children on layout

* CHANGELOG [skipci]
2023-08-28 15:54:30 +01:00
Rodrigo Girão Serrão
da99114085
Test on blur /customisable input validation. 2023-08-28 15:50:26 +01:00
Rodrigo Girão Serrão
99e8e17376
Add mechanism to customise when input validation occurs.
Related issues: #3100.
2023-08-28 15:48:55 +01:00
Rodrigo Girão Serrão
71e5821b44
Validate input on blur events.
Related issues: #3100.
2023-08-28 15:48:12 +01:00
Dave Pearson
e8c159cc8d
Remove unnecessary break 2023-08-28 15:33:43 +01:00
Dave Pearson
6ce8429256
Explain the reasons behind the content of _search_for
There's a couple of "different" choices going on here, so I feel a good
helping of explanatory comments is called for.
2023-08-28 14:57:49 +01:00
Dave Pearson
9a1a29c3b5
Fix a typo 2023-08-28 14:48:56 +01:00
Dave Pearson
f7037697c7
Flush the queue faster 2023-08-28 14:48:12 +01:00
Dave Pearson
2aae0a26d9
Work harder to cancel running command search tasks
This commit takes the handling of running command search tasks a wee bit
further, sending "down" the aborted status and cancelling the tasks as soon
as possible. There are still situations where this won't really make a
difference, and depending on how the command source is coded it could carry
on running for a while, but if a command source is coded to handle being
cancelled as soon as possible this will provide what's needed to benefit
from such an approach.

Note that it *does* mean that a developer writing a command source, which
awaits something, will need to handle a CancelledError; we should probably
see about talking about this in the docs.
2023-08-28 14:34:29 +01:00
Will McGugan
be9efd971b changelog 2023-08-28 14:19:49 +01:00
Will McGugan
98168ae536 fix for textual-web flash 2023-08-28 14:19:47 +01:00
Aaron Stephens
6dd5439eac
feat(datatable): add cursor_type to constructor (#3183)
* feat(datatable): add cursor_type to constructor

* fix(datatable): formatting

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-08-28 13:56:17 +01:00
Rodrigo Girão Serrão
a50d27f712
Let layers be strings. (#3169)
* Let layers be strings.

* Changelog.
2023-08-28 13:55:14 +01:00
Rodrigo Girão Serrão
d5f07c26a1
Merge pull request #3065 from Textualize/reactive-callback
Schedule reactive callbacks on watcher.
2023-08-28 13:30:03 +01:00
Rodrigo Girão Serrão
57419aa134
Merge branch 'main' into reactive-callback 2023-08-28 11:24:54 +01:00
Dave Pearson
f929b5e569
Make the icon a string 2023-08-28 11:24:05 +01:00
Dave Pearson
7653c1133d
Remove unused imports 2023-08-28 11:20:37 +01:00
Rodrigo Girão Serrão
41006caffc
Consider visible children inside invisible containers when computing focus chain (#3070)
* Add regression tests for #3053

* Traverse invisible containers when computing focus chain.

At the moment, we were completely bypassing invisible containers which meant that their visible children wouldn't be included in the focus chain.

* Make note of removed property.

* Add regression test for #3071.

* Fix #3071.

* Fix regression test for #3053.

* Optimize computation of focus chain.

Computing the focus chain was relying on the property 'visible' of nodes which may traverse the DOM up to find the visibility of a given node. Instead, we cache the visibility of the nodes we traverse and keep them in a stack, saving some of that computation.
Related issues: #3071
Related comments: https://github.com/Textualize/textual/pull/3070#issuecomment-1669683285

* Make test more robust.

* Make test more robust.

* Short-circuit disabled portions of DOM.

If a node is disabled, we will not be focusable, nor will its children, so we can skip it altogether.
Related review comment: https://github.com/Textualize/textual/pull/3070/files#r1300292492

* Simplify traversal.

The traversal code could be simplified after reordering some lines of code.
We also get rid of the visibility stack and instead keep everything in the same stack.
Related comments: https://github.com/Textualize/textual/pull/3070#pullrequestreview-1587295458
2023-08-28 11:06:39 +01:00
Dave Pearson
e6b9a264a1
Rename search_for to search
As per this request:

  https://github.com/Textualize/textual/pull/3058#discussion_r1307135816
2023-08-28 11:05:39 +01:00
Claire-me
409363d974
Create CONTRIBUTING.md (#3115)
* Create CONTRIBUTING.md

* Update CONTRIBUTING.md
2023-08-28 11:02:13 +01:00
Dave Pearson
a807061e20
Merge pull request #3186 from davep/link-centre-faq-to-howto
Link the centring FAQ to the HOWTO
2023-08-28 08:53:09 +01:00
Dave Pearson
ab0126f672
Link the centring FAQ to the HOWTO
Keeping it as a FAQ makes sense, as it means that FAQtory will be able to
point to it, but now that we have the HOWTO, and it's more comprehensive, it
makes sense to direct the reader in that direction if they want something
more involved.
2023-08-28 08:39:57 +01:00
Dave Pearson
1b1e26cd16
Merge branch 'main' into M-x 2023-08-28 08:30:41 +01:00
Will McGugan
2519063389
version bump (#3181)
* version bump

* changelog

* snapshot update
2023-08-26 17:19:13 +01:00
Will McGugan
821a60fe3b
Win wait (#3151)
* input waiter

* waiter objects

* try signal handler for windows

* selectors

* fix win wait

* log meta

* log

* meta loop

* loop

* correct wait

* Waiter tweak

* timeout change

* restore loop

* change constant

* quit

* tweak

* loops

* debug

* debug

* exit on no data

* change wait

* loop tweak

* log

* change wait

* experiement

* wrap with handle

* experiment

* Debug

* handle

* DWORD

* another attempt

* test

* log

* reading

* stream

* tweak

* Restore

* input reader

* reader

* Remove debug

* input reader

* shutdown devtools after waiter

* flush

* fileno

* exit meta

* windows reader

* remove logging

* formatting

* docstring
2023-08-26 16:24:47 +01:00
Will McGugan
9ce1840889 Default to auto 2023-08-26 15:54:07 +01:00
Will McGugan
ee7d728399 color system override 2023-08-26 15:45:33 +01:00
Will McGugan
59646ff21a faq tweak 2023-08-26 10:57:44 +01:00
Will McGugan
d89871b045
update docs for tcss (#3179)
* update docs for tcss

* letter
2023-08-26 10:49:18 +01:00
Dave Pearson
888557747c
Reinstate the FAQtory-friendly links in the FAQ (#3142) 2023-08-26 08:35:41 +01:00
Rodrigo Girão Serrão
d674674b22
Update _styles_builder.py (#3168) 2023-08-24 19:40:22 +01:00
Rodrigo Girão Serrão
c01b868b00
Changelog. 2023-08-24 16:14:55 +01:00
Rodrigo Girão Serrão
9980148c26
Use call_next to invoke reactive watchers.
Related review comment: https://github.com/Textualize/textual/pull/3065#issuecomment-1670983082.
2023-08-24 16:07:31 +01:00
Rodrigo Girão Serrão
ac62096b80
Make call_next respect prevented messages.
Related issue: #3166.
2023-08-24 16:06:24 +01:00
Rodrigo Girão Serrão
19b24dd663
call_next preserves prevented messages information.
Provides a regression test for #3166.
2023-08-24 16:05:25 +01:00
Rodrigo Girão Serrão
f97fd81f56
Merge branch 'main' into reactive-callback
Fix CHANGELOG.md in the process.
2023-08-24 11:17:02 +01:00
Rodrigo Girão Serrão
7563a390e5
Merge pull request #3152 from Textualize/disable-tab-pane
Allow enabling/disabling tab via tab pane.
2023-08-23 14:51:43 +01:00
Rodrigo Girão Serrão
9ef644cd77
Add base class for TabPane messages.
Related review comment: https://github.com/Textualize/textual/pull/3152#discussion_r1302921959.
2023-08-23 14:43:38 +01:00
Dave Pearson
fa9a988032
Merge pull request #3155 from davep/handy-makefile-things
Add a couple of `Makefile` targets for things I'm forever typing
2023-08-23 14:41:23 +01:00
Rodrigo Girão Serrão
79f8ab05b7
Revert "Deactivate disabled tab."
This reverts commit 7aa40601ab.
2023-08-23 14:31:34 +01:00
Dave Pearson
6023e774ad
Add a couple of Makefile targets for things I'm forever typing
Well, completing in my shell but you get the idea...
2023-08-23 14:31:18 +01:00
Rodrigo Girão Serrão
7aa40601ab
Deactivate disabled tab.
Related issues: #3148.
2023-08-23 14:26:17 +01:00
Dave Pearson
c9d3e2d8b7
Merge branch 'main' into M-x 2023-08-23 14:22:28 +01:00
Rodrigo Girão Serrão
c8b06e073f
Merge pull request #3140 from Textualize/css-to-tcss
Rename CSS files to TCSS.
2023-08-23 14:13:58 +01:00
Rodrigo Girão Serrão
3f03743cd8
Merge branch 'main' into disable-tab-pane 2023-08-23 14:04:54 +01:00
Rodrigo Girão Serrão
695e59bd3a
Merge pull request #3150 from Textualize/fix-3145
Allow modifying tabs in nested contexts
2023-08-23 14:01:10 +01:00
Rodrigo Girão Serrão
a62302cf86
Tests/changelog. 2023-08-23 12:12:50 +01:00
Rodrigo Girão Serrão
7cf1b48f5b
Allow enabling/disabling tab via tab pane.
This allows one to use the 'disabled' attribute in tab panes to enable/disable a tab, which is particularly useful if you want to instantiate a tab that starts off as disabled, as seen in #3149.
2023-08-23 12:12:01 +01:00
Rodrigo Girão Serrão
22b63f6717
Simplify and generalise test.
We use the default IDs because that means the nested tabs get the same IDs.

Relevant review comment: https://github.com/Textualize/textual/pull/3150#discussion_r1302811660.
2023-08-23 11:40:55 +01:00
Rodrigo Girão Serrão
32007d78a2
Changelog. 2023-08-23 11:13:53 +01:00
Rodrigo Girão Serrão
0339879f1f
Query DOM correctly. 2023-08-23 11:12:23 +01:00
Rodrigo Girão Serrão
0353302216
Allow modifying tabs in nested tabbed contents.
Fixes #3145 with the fix in #3148.
2023-08-23 10:57:49 +01:00
Rodrigo Girão Serrão
4d0db5d13b
Add regression test for #3145. 2023-08-23 10:52:29 +01:00
Dave Pearson
a57ed16687
Simplify the command palette action 2023-08-22 20:34:48 +01:00
Dave Pearson
d09455d93b
Update the snapshots 2023-08-22 19:38:42 +01:00
Dave Pearson
34c739df78
Properly pad out the left side of the commands in the list 2023-08-22 19:29:21 +01:00
Will McGugan
f3c24db18d don't add signal handler on Windows 2023-08-22 16:20:53 +01:00
Rodrigo Girão Serrão
5ee0ebfef4
Rename CSS files to TCSS.
Related issue: #3137.
2023-08-22 13:21:17 +01:00
Will McGugan
bc1af586b5
version bump (#3139)
* version bump

* changelog
2023-08-22 13:05:09 +01:00
Will McGugan
59fa326e85 add prelude 2023-08-22 12:56:11 +01:00
Dave Pearson
135dac8633
Update snapshot tests 2023-08-22 12:42:28 +01:00
Will McGugan
65aeac361f Py37 fixes 2023-08-22 11:53:30 +01:00
Dave Pearson
99ff1ada7e
Remove some unused imports 2023-08-22 11:46:00 +01:00
Dave Pearson
e2573d92c9
Fix the highlight leakage into the left-pad of the commands 2023-08-22 11:45:31 +01:00
Dave Pearson
c10298021e
Provide a hook in OptionList via which a child can modify each line 2023-08-22 11:43:04 +01:00
Dave Pearson
f8b10482c1
Simplify the system command source code 2023-08-22 11:05:42 +01:00
Dave Pearson
fc4d3d755b
Improve the description of App.COMMAND_SOURCES 2023-08-22 10:59:08 +01:00
Dave Pearson
ec860fc274
Give a quick example of declaring a COMMAND_SOURCE 2023-08-22 10:57:03 +01:00
Dave Pearson
bb90b58312
Drop the run helper method in the command source 2023-08-22 10:48:02 +01:00
Dave Pearson
4abc92d7eb
Tweak the icon display
And also update the snapshot tests.
2023-08-22 10:30:07 +01:00
Dave Pearson
0129856c70
Delay showing that we're busy searching 2023-08-22 10:08:39 +01:00
Dave Pearson
5a3cd31ed8
Code tidy 2023-08-22 09:29:35 +01:00
Dave Pearson
a4d618103d
Make the search icon into its own widget 2023-08-22 08:50:12 +01:00
Dave Pearson
64354a35fd
Merge branch 'main' into M-x 2023-08-22 08:29:50 +01:00
Dave Pearson
061a88d7bd
Merge pull request #3129 from davep/faq-in-docs
Move the Textual FAQ into the main docs
2023-08-21 21:16:12 +01:00
Aaron Stephens
bf0c0252ab
feat(loadingindicator): default min height (#3132)
* feat(loadingindicator): default min height

* docs: changelog
2023-08-21 21:15:48 +01:00
TomJGooding
114b9c4d45
docs(changelog): correct release for pr 3012 (#3133) 2023-08-21 21:13:54 +01:00
Dave Pearson
98e145ae2c
Extend the command list highlight out to the edges of the list 2023-08-21 20:59:48 +01:00
Dave Pearson
53e379378b
Remove the border above the loading indicator 2023-08-21 20:41:22 +01:00
Dave Pearson
3867616486
Update snapshots 2023-08-21 20:32:46 +01:00
Dave Pearson
f6c6115869
Remove the border under the input when the list is dropped 2023-08-21 20:24:38 +01:00
Dave Pearson
7fb05fa320
Add a wee magnifying glass to the left of the input field 2023-08-21 20:07:16 +01:00
Dave Pearson
61fcc0bf5b
Correct the use of __lt__ and __eq__ 2023-08-21 19:43:19 +01:00
Dave Pearson
af4423166b
Rename hunt_for to search_for
Sounds a lot less dramatic but... okay, fair enough.
2023-08-21 19:37:24 +01:00
Dave Pearson
9c35c924ba
Correct the snapshot test
This is what happens when you break off to lecture half way through some
code...
2023-08-21 19:29:43 +01:00
Rodrigo Girão Serrão
900c372f10
Merge pull request #3112 from Textualize/tab-hide-disable
Tab hide disable
2023-08-21 17:20:15 +01:00
Rodrigo Girão Serrão
fa8f893a96
Merge branch 'main' into tab-hide-disable 2023-08-21 17:07:16 +01:00
Rodrigo Girão Serrão
8d83cd4abb
Add control to messages.
Related review comment: https://github.com/Textualize/textual/pull/3112#discussion_r1299951135
2023-08-21 17:06:32 +01:00
TomJGooding
eccb6e53f9
feat(listview): add method to append multiple items (#3012)
* feat(listview): add method to append multiple items

* update changelog

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-08-21 16:33:42 +01:00
Ren Jian Lee
fc0b5ccf9a
Fix page_up and page_down bug in DataTable when show_header is False (#3093) 2023-08-21 16:30:40 +01:00
Dave Pearson
0b18ebfc26
Provide a method to enable/disable the command palette via CLASSVAR 2023-08-21 15:53:03 +01:00
Dave Pearson
a507d3538b
Update the snapshot tests after CEO bikeshedding 2023-08-21 15:40:04 +01:00
Dave Pearson
77e01b8927
Ensure the screenshot path is escaped when telling on it (#3119)
See https://github.com/Textualize/textual/pull/3118#issuecomment-1683719311
2023-08-21 15:22:07 +01:00
Dave Pearson
a9de513a60
Drop the automatic generation of the FAQ (for now)
For this to work faqtory needs to be a development dependency of Textual.
Textual still maintains support for Python 3.7; faqtory is Python 3.8 or
greater. So, for the moment, we're going to cheat a little and make it so
that you have to remember to run faqtory to rebuild FAQ.md.

All hail the walrus!
2023-08-21 15:18:14 +01:00
Will McGugan
d0cd800893 style tweaks 2023-08-21 14:58:23 +01:00
Dave Pearson
bb20cdc2bf
Move the Textual FAQ into the main docs
See #3068.
2023-08-21 14:41:07 +01:00
Dave Pearson
3d2e126523
Merge pull request #3128 from davep/link-headder-to-app-title-in-docs 2023-08-21 13:54:09 +01:00
Dave Pearson
30bd82e25e
Link the Header docs to App.title and App.sub_title
Closes #3103.
2023-08-21 12:57:16 +01:00
Dave Pearson
b572ac0905
Link the general command palette docs from COMMAND_SOURCES
This should help make things a wee bit easier to discover.
2023-08-21 11:44:06 +01:00
Dave Pearson
4443a88a62
Remove the code browser with command palette example
This was useful for testing, but we don't want to maintain it.
2023-08-21 11:40:46 +01:00
Dave Pearson
87100db150
Add a snapshot test for the command palette 2023-08-21 11:21:06 +01:00
Dave Pearson
89980cc079
Ensure that the run-on-select tests restore the old state 2023-08-21 11:20:45 +01:00
Dave Pearson
67864c70ca
Downgrade the snapshot test library again
Just so I can get the failure report.
2023-08-21 11:20:19 +01:00
Rodrigo Girão Serrão
d5d8e81207
Add more tests for tab enabling/disabling/showing/hiding. 2023-08-21 11:09:32 +01:00
Dave Pearson
5e47ac0273
Add some more linking from within some docstrings 2023-08-21 09:39:05 +01:00
Dave Pearson
fa2c875e04
General language tidying
Fixes typos and awkward wording.
2023-08-21 09:17:09 +01:00
Rodrigo Girão Serrão
ec198974eb
Add tests for enabling/disabling tabs. 2023-08-18 17:35:37 +01:00
Rodrigo Girão Serrão
bf9ebb6466
Add ability to show/hide tabs. 2023-08-18 16:54:41 +01:00
Dave Pearson
39473fc17c
Merge pull request #3118 from davep/tweak-demo 2023-08-18 10:53:32 +01:00
Dave Pearson
c3e0d4b34f
Update snapshot tests
No material change will have been made, but the demo's DOM is slightly
different now as there's no notification container hidden in it any more.
2023-08-18 08:40:53 +01:00
Dave Pearson
37579cfab9
Don't override Ctrl+C as a non-priority key in the demo
See #3106.
2023-08-18 08:28:31 +01:00
Dave Pearson
bd94b48c53
Remove the demo's custom notification and use App.notify
See #3105.
2023-08-18 08:26:09 +01:00
Chakib Benziane
df145385e5
fix doc error in Bubble parameters for events.Focus and events.Blur (#3084)
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-08-17 17:54:20 +01:00
Will McGugan
11ce101f15
fix for grid auto (#3113)
* fix for grid auto

* 3.7 fix
2023-08-17 17:23:28 +01:00
Rodrigo Girão Serrão
f0c01c1061
Add ability to enable/disable tabs.
Related issues: #3088.
2023-08-17 16:34:54 +01:00
Dave Pearson
c616e50d55
Start fleshing out the main command palette documentation 2023-08-17 16:20:16 +01:00
Rodrigo Girão Serrão
39b2e2a818
Fix docstring. 2023-08-17 15:46:02 +01:00
Dave Pearson
c1aba61349
Add the fuzzy matcher to the docs
While it isn't designed to be used directly, it is something a developer
will be exposed to via the command source for the command palette, so it
should appear in the docs so it can be linked to.
2023-08-17 15:33:31 +01:00
Dave Pearson
c074a39142
Tweak the module docstring for the command palette 2023-08-17 15:32:49 +01:00
Dave Pearson
eb6ac5fa8b
Allow kwags when using CommandSource.run 2023-08-17 15:17:11 +01:00
Dave Pearson
a976326c77
Docstring improvements 2023-08-17 14:19:46 +01:00
Dave Pearson
398b4343d6
Improve the docs for App.COMMAND_SOURCES 2023-08-17 14:19:13 +01:00
Dave Pearson
5fea151a7f
Add the system command sources into the docs 2023-08-17 14:18:54 +01:00
Dave Pearson
ee8dea2954
Explain run a wee bit better 2023-08-17 11:28:43 +01:00
Dave Pearson
7fc3604dfa
Pull the command palette into the API docs 2023-08-17 11:21:29 +01:00
Dave Pearson
4b84241c10
Rename SystemCommand.call to SystemCommand.run 2023-08-17 11:09:14 +01:00
Will McGugan
dda2cb2be2 auto grid docs and test 2023-08-17 10:46:57 +01:00
Dave Pearson
669cf0be61
Simplify the way the system command source works
Use the new run helper method.
2023-08-17 08:33:10 +01:00
Dave Pearson
edf513d968
Add a utility method to the command source for wrapping a callback
Some things the developer may want to call will be sync methods, some might
be async methods. I think it makes sense to provide a wee helper here to
wrap such a call up in the right way.

This might need expanding a bit, I might also want to look at and consider
Textual's invoke helper, but for the moment this is working well so let's
experiment with this.
2023-08-17 08:31:41 +01:00
Dave Pearson
f3442798d1
Wait for the command sources to complete after input, before moving on
Just in the problematic tests. As an experiment for the moment. I've still
not quite got to the bottom of the core problem, as I've been seeing, but
there is an issue with testing the command palette: how to ensure that
there's actually matched commands before going on to test interaction, when
the sourcing of command matches is concurrent with anything else.

Here I reach in into the workers of the command palette and wait for them to
finish and *then* I go on to use the result.

Having been able to recreate the surface error locally, on a nice fast M2Pro
Mac, with a significant async sleep in the source, this fixed the error in
that situation. So let's see if that makes a dent in CI...
2023-08-16 21:24:44 +01:00
Dave Pearson
356165b989
Ensure all test commands make it through 2023-08-16 20:48:58 +01:00
Dave Pearson
c76560b3d2
Swap to using Textual's wrapper for create_task 2023-08-16 20:41:34 +01:00
Dave Pearson
cc0faee5e0
Go harder on stopping any running worker
Also work a bit harder to detect if the worker has stopped.
2023-08-16 15:17:31 +01:00
Dave Pearson
091ef4e868
Remove experimental change to tests 2023-08-16 15:13:45 +01:00
Dave Pearson
c778ef7fea
Test if we can guard against pytest not doing a full teardown 2023-08-16 14:43:09 +01:00
Dave Pearson
6c86621fb6
Add some unit tests for bits of command palette UI interaction 2023-08-16 14:22:40 +01:00
Dave Pearson
efba40d336
Typo fix 2023-08-16 13:24:43 +01:00
Dave Pearson
5ebfb1bd07
Merge branch 'main' into M-x 2023-08-16 13:11:45 +01:00
Dave Pearson
7ed224901a
Various docstring improvements 2023-08-16 13:11:03 +01:00
Will McGugan
c1b611bac9
Grid auto (#3107)
* test

* snapshot

* changelog
2023-08-16 13:10:26 +01:00
Dave Pearson
8ff02a9302
Improve the explanation of CommandPalette._sources 2023-08-16 12:43:14 +01:00
Dave Pearson
ba9d33a67a
Simplify CommandPalette._sources 2023-08-16 11:38:01 +01:00
Will McGugan
5eb9182097 auto grid 2023-08-16 11:28:50 +01:00
Dave Pearson
e24d2add03
Allow for a double-tap of enter to get into selection mode
Also, in passing,rename _action_command to _action_command_list so it's more
obvious from the code what we're doing.
2023-08-16 11:01:54 +01:00
Dave Pearson
f9d102894d
Update the tests to take into account the new default source 2023-08-16 09:42:04 +01:00
Dave Pearson
08fdb477cf
Add a simple reference command source and make it app default
This is a simple command source for the command palette, that offers up some
of the more applicable actions within a Textual app. Here I also make it the
default source of commands for all Textual applications.
2023-08-16 09:20:52 +01:00
Dave Pearson
71dc0dea9e
Add a system-wide flag to disable the command palette 2023-08-16 08:47:07 +01:00
Will McGugan
d90b661978 changelog 2023-08-15 17:28:18 +01:00
Will McGugan
4e87a0f06e
version bump (#3102) 2023-08-15 17:06:02 +01:00
Rodrigo Girão Serrão
fbe1c416a4
Hide some members from the public docs. (#3080)
* Hide some members from the public docs.

See relevant issue: #3076.
Some methods need to be implemented to make the widget work but the user doesn't really care about them. For that matter, we can hide them from the public documentation.

* Use private handler to hide from docs.

Related comments: https://github.com/Textualize/textual/pull/3080#issuecomment-1671129733
2023-08-15 16:53:14 +01:00
Dave Pearson
878351564f
Simplify the no-results unit test for the command palette 2023-08-15 15:41:51 +01:00
Dave Pearson
8aad6b48a7
Don't work on a reference to the app's command sources
Work on a *copy*.
2023-08-15 15:41:12 +01:00
Dave Pearson
d46955b5e5
Add a test for getting no results 2023-08-15 15:24:21 +01:00
Dave Pearson
93b9372ac4
Add unit testing for the use of the escape key 2023-08-15 12:55:10 +01:00
Dave Pearson
5c4f7b3c3b
Remove an unused import 2023-08-15 12:45:04 +01:00
Dave Pearson
39f41b2b40
Add a test for dismissing the command palette via a click "outside" 2023-08-15 11:44:36 +01:00
Dave Pearson
e914049c63
Simply check the Input is not empty 2023-08-15 11:27:36 +01:00
Will McGugan
54ba3578a6
Event control (#3099)
* Add control

* added control

* post to parent
2023-08-15 11:06:18 +01:00
Dave Pearson
f27b68007b
Swap the tests to simply test we got something
It's looking like it's going to be almost impossible to test the exact
command chosen, every time, in CI, with all the timing issues. So let's make
life easier, for now anyway, and simply check that *something* was selected.
2023-08-15 11:05:32 +01:00
Dave Pearson
71643d7342
Add pauses between each keypress in the palette selection tests
These tests all work fine locally, but I'm getting the usual unpredictable
async results in CI. Let's see if pausing after each press helps.
2023-08-15 10:52:19 +01:00
Dave Pearson
e7ee82cef8
Add tests for auto-run on and off in the command palette 2023-08-15 10:43:43 +01:00
Will McGugan
a0be460921
border classvars (#3097)
* border classvars

* changelog

* copy

* remove whitespace

* copy
2023-08-15 10:34:24 +01:00
Dave Pearson
d7b8f5ad32
Add a test for command sources with no available app or screen 2023-08-15 09:40:32 +01:00
Dave Pearson
03ebd864c6
Add a test that app and screen command sources combine 2023-08-14 19:54:58 +01:00
Dave Pearson
4f9b30d74e
Have the sources always be a combination of the app and the current screen 2023-08-14 16:27:48 +01:00
Dave Pearson
3b41d4f8e5
Add unit tests for the command source environment information 2023-08-14 15:49:12 +01:00
Dave Pearson
85beb6ef48
Unpin the snapshot test library
This was pinned by Darren a wee while back, I think, due to some other
problem. But this kills coverage. Right now I want coverage so I can see
what needs testing with the command palette. So let's unpin with a view to
pinning back again (or solving the main problem I guess) once I'm done.
2023-08-14 15:47:42 +01:00
Dave Pearson
7451e9988a
Add unit tests for declaring command palette command sources 2023-08-14 14:19:22 +01:00
Dave Pearson
388afbe50d
Correctly get the calling screen from the stack
Unit tests are a wonderful thing...
2023-08-14 14:13:15 +01:00
Dave Pearson
df3f3e88e1
Remove an unused import 2023-08-14 13:34:33 +01:00
Dave Pearson
0fe692446f
Add a missing return type to a docstring 2023-08-14 13:30:20 +01:00
Dave Pearson
0df8148d79
Move the command sources on to the app and screens
Also add code to guard against pulling up the command palette while in the
command palette.
2023-08-14 13:21:35 +01:00
Dave Pearson
b9c9262325
Give the command palette screen an ID
This will help guard against anything causing two copies to be in the DOM at
once. It's unlikely, the code should work to make sure this doesn't happen,
but let's set this up to be a fail if it does.
2023-08-14 13:13:36 +01:00
Will McGugan
156e4c8f44
Update CHANGELOG.md 2023-08-14 12:18:08 +01:00
Dave Pearson
c602cd6f9b
Cancel command palette work when any edit happens
When a new search term was created by an edit, the previous worker would get
cancelled by the nature of _gather_commands being exclusive; but if the user
edited the input such that it was empty the work would carry on. This
ensures that isn't the case.
2023-08-14 10:22:48 +01:00
Dave Pearson
1f1aca6cdd
Tidy up the loading indicator 2023-08-14 10:15:58 +01:00
Dave Pearson
8e14b3c6fd
Tidy up the bindings and add a docstring to them 2023-08-14 09:22:22 +01:00
Dave Pearson
3e7f684d4c
Merge branch 'main' into M-x 2023-08-14 09:17:09 +01:00
Will McGugan
bcb4c1d582 signal handler 2023-08-13 12:42:00 +01:00
Will McGugan
bcd5760c67
calculator uses Digits (#3092)
* calculator uses Digits

* remove example
2023-08-11 17:49:30 +01:00
Rodrigo Girão Serrão
eccf746f5a
Merge pull request #3054 from dmunozv04/main
Fix links in documentation
2023-08-10 08:58:49 +01:00
David
63dff34af9
Update layer.md
Fix the link I managed to break
2023-08-09 19:57:35 +02:00
Will McGugan
d857d57a2e
fix markdown example (#3081) 2023-08-09 16:32:38 +01:00
Rodrigo Girão Serrão
b7dc046eeb
Merge pull request #2988 from gergely-elias/directorytree_reload_node
method for reloading single node of DirectoryTree
2023-08-09 14:23:18 +01:00
Will McGugan
1270b8d28f
Digits (#3077)
* Digits

* digits widget

* update requires str

* digits docs

* simplify

* tweak docs

* snapshot test

* change name

* simplify

* docs

* Update _digits.py superfluous import

* Update _digits.py docstring

* address review

* formatting

* change docstring
2023-08-09 10:49:13 +01:00
Will McGugan
49281b3f27
Digits (#3073)
* Digits

* digits widget

* update requires str

* digits docs

* simplify

* tweak docs

* snapshot test

* change name

* simplify

* docs

* Update _digits.py superfluous import

* Update _digits.py docstring

* address review

* formatting

* Update tests/snapshot_tests/snapshot_apps/digits.py

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-08-09 10:25:17 +01:00
Dave Pearson
385f919e90
Merge pull request #3038 from davep/kickstart-select-tests
Add a test for Select.value being set from the constructor
2023-08-09 10:14:31 +01:00
Dave Pearson
0d09514d66
Update the fuzzy matcher highlighting test
An actual style is used now, not just a text name.
2023-08-09 10:11:22 +01:00
Dave Pearson
c4a26add6d
Style tweaks
Still haven't decided on the final style for this, but this helps to make
the command palette and the command list pop a little for a background
screen of similar colours.
2023-08-09 09:35:58 +01:00
Dave Pearson
bea4e116fe
Code tidy 2023-08-09 08:59:57 +01:00
Dave Pearson
9f41c2084d
Swap to retaining the highlighted command, not the highlighted index
Now that OptionList.get_option_index is merged into `main` I can do this.
2023-08-09 08:57:30 +01:00
Dave Pearson
ed111bbc42
Merge branch 'main' into M-x 2023-08-09 08:53:06 +01:00
Dave Pearson
75f08da6f1
Add a missing return section to the compose docstring 2023-08-09 08:48:36 +01:00
Dave Pearson
aeb3b4737c
Add a missing docstring 2023-08-09 08:48:04 +01:00
Dave Pearson
3fa6f7bb85
Merge pull request #3075 from nmay231/fix-selection-clear-options
Fix clear_options() for SelectionList
2023-08-09 08:22:31 +01:00
Dave Pearson
01957a8bd4
Merge branch 'fix-selection-clear-options' of github.com:nmay231/textual into fix-selection-clear-options 2023-08-09 08:11:18 +01:00
Dave Pearson
0ee7c63346
Add a docstring to the new test 2023-08-09 08:11:00 +01:00
Dave Pearson
5ad19e6bc7
Merge branch 'main' into fix-selection-clear-options 2023-08-09 08:09:03 +01:00
Gergely Elias
9a343a6bd7 CHANGELOG.md update 2023-08-09 07:40:40 +02:00
Gergely Elias
9a3321b2a6 Tree.clear_line_cache renamed to Tree._clear_line_cache to mark privacy 2023-08-09 07:40:17 +02:00
Gergely Elias
cc096be151
Merge branch 'Textualize:main' into directorytree_reload_node 2023-08-09 07:35:13 +02:00
Noah May
8bf2d80fad Fix clear_options() for SelectionList 2023-08-08 16:17:23 -05:00
Rodrigo Girão Serrão
be2ec1daaf
Merge pull request #2987 from seifertm/2905-send-mouse-move-events-to-screen
MouseMove events bubble up and are posted by Screen
2023-08-08 16:44:13 +01:00
Rodrigo Girão Serrão
908a0aeb3d
Merge branch 'main' into 2905-send-mouse-move-events-to-screen 2023-08-08 16:35:00 +01:00
Rodrigo Girão Serrão
49612e3aa5
Merge pull request #2985 from nekeal/feature/extend-optionlist
Adds an interface for replacing prompt of an individual option in an `OptionList`
2023-08-08 16:31:18 +01:00
Will McGugan
af315a3af7
Merge branch 'main' into 2905-send-mouse-move-events-to-screen 2023-08-08 16:27:13 +01:00
Dave Pearson
39005b8075
Add a version of the code browser that has a command palette 2023-08-08 16:26:56 +01:00
Dave Pearson
f13e38826d
Allow the hits representation to be any sort of renderable 2023-08-08 16:26:25 +01:00
Dave Pearson
218a5df067
Make the command matches return type into a type alias
This will make it easier for people implementing their own command hunting
code to type things.
2023-08-08 13:10:43 +01:00
dmunozv04
41fe544a1f Fix broken link 2023-08-08 13:38:47 +02:00
dmunozv04
52d0586f5d Fix doc links 2023-08-08 13:27:13 +02:00
David
13680ae6d2
Merge branch 'Textualize:main' into main 2023-08-08 12:44:41 +02:00
Dave Pearson
5c7957ae36
Remove unnecessary parameter for on_mount 2023-08-08 11:39:32 +01:00
Dave Pearson
64c440ea4d
Add a simple ID for each gathered command 2023-08-08 11:07:35 +01:00
Dave Pearson
82cc3928ff
Make a note that we're waiting on an OptionList PR for highlight
To allow for maintaining the location of the highlight as we rebuild the
command list I'm probably going to need some method of tracking an ID for an
option, so I can find its new index back. There's no method in OptionList
right now for doing that; it's trivial, but it's not there. As it happens
the changes in #2985 actually has that, so here I note that I'll look to
making that happen once that gets added in.
2023-08-08 10:55:07 +01:00
Dave Pearson
ee638c3e61
Add support for sorting the commands in the command list 2023-08-08 10:16:12 +01:00
Dave Pearson
383c43e984
Add support for ordering command hits and command options
This will simply make any sorting code easier to read later on.
2023-08-08 10:06:54 +01:00
Dave Pearson
bc1d24f2be
Drop the import of re.NOFLAG
Turns out I can't read the docs and this didn't turn up until 3.11. Nice one
Python.
2023-08-08 09:12:32 +01:00
Szymon Cader
def26288e7 Add snapshot tests for replacing prompt in option list 2023-08-07 23:19:02 +02:00
Szymon Cader
3ff5b7b82a Add unit tests for multiline prompts 2023-08-07 23:19:02 +02:00
Szymon Cader
913dce7ef7 Make use of get_option_index
This simplifies error handling in a public interface
2023-08-07 23:19:02 +02:00
Szymon Cader
d63ac2c22e Minor fixes 2023-08-07 23:19:02 +02:00
Szymon Cader
a3590ac192 Move error handling for non-existing options to dedicated methods 2023-08-07 23:19:02 +02:00
Szymon Cader
22926cbd6e Make use of get_option_at_index instead of directly accessing _options 2023-08-07 23:19:02 +02:00
Szymon Cader
37bc2e587f Update the CHANGELOG.md 2023-08-07 23:19:02 +02:00
Szymon Cader
45b6973d85 Add ability to replace prompt of an individual option in OptionList 2023-08-07 23:16:51 +02:00
Rodrigo Girão Serrão
2ec10e04f2
Add regression tests for #3036. 2023-08-07 16:29:18 +01:00
Dave Pearson
07f12168f6
Add support for making matching case insensitive
Also make being case insensitive the default. I'd expect most people would
want this out of the box.
2023-08-07 15:33:02 +01:00
Rodrigo Girão Serrão
ff2a842b42
Schedule reactive callbacks on watcher.
The async reactive callbacks are now scheduled on the message pump of the watcher of the reactive instead of on the owner of the reactive attribute.
Related issues: #3036.
2023-08-07 15:01:58 +01:00
Dave Pearson
1b3f2a296f
Add a property for the matched style
Technically to unbork rich.repr.auto; but this will also potentially be
useful to access anyway.
2023-08-07 14:08:48 +01:00
Dave Pearson
0cdcebb8bf
Add some extra testing code to the fuzzy matcher
Not unit tests, just code for generally testing things when run as:

python -m textual._fuzzy
2023-08-07 14:00:47 +01:00
Dave Pearson
1da1a997e2
Make the matcher pattern publicly available 2023-08-07 13:58:46 +01:00
Dave Pearson
d60182c775
Improve some Matcher docstrings 2023-08-07 12:57:30 +01:00
Dave Pearson
0938fcedae
Don't shadow a Python builtin 2023-08-07 12:54:29 +01:00
Dave Pearson
db5bd1e426
Turn Matcher.query into a read-only attribute 2023-08-07 12:52:28 +01:00
Dave Pearson
e519c99e6e
Add missing parameter to the Matcher __init__ docstring 2023-08-07 12:49:48 +01:00
Dave Pearson
2e4ceeb5c6
Make the match style keyword-only 2023-08-07 12:48:05 +01:00
Dave Pearson
795f598b90
Merge branch 'main' into M-x 2023-08-07 12:42:16 +01:00
Will McGugan
5a662e68ae
fix for tabs (#3059)
* fix for tabs

* remove superfluous offset update

* optimize

* test

* comment

* restore auto height

* don't fix height of tabs

* height fix

* test

* changelog [skipci]

* Revert test
2023-08-07 10:39:59 +01:00
Will McGugan
d9d170d75e
Background refresh (#3062)
* enable background screen refresh

* background refresh

* more performant refresh

* remove full screen refresh
2023-08-07 10:22:41 +01:00
Dave Pearson
72b8dad5ff
Expose the Matcher object via the command palette
The design of the command source class is such that a developer providing
one doesn't have to use the Textual fuzzy matcher.
2023-08-07 10:18:24 +01:00
Will McGugan
ba91b42215 ifix highlight line 2023-08-07 10:17:10 +01:00
Dave Pearson
1ddf6908c8
Fix some terrible English in a comment 2023-08-07 09:52:35 +01:00
Dave Pearson
66da4e4868
Update the docstring for the command palette component classes 2023-08-07 09:50:45 +01:00
Dave Pearson
29c2041b51
Make a desired highlight style available to the command sources 2023-08-07 09:47:58 +01:00
Dave Pearson
a0aa143b11
Allow a highlight style to be passed into the fuzzy matcher 2023-08-07 09:13:28 +01:00
Dave Pearson
4b40fff53a
Complete the copying of all the non-bgcolor Style properties 2023-08-07 09:09:21 +01:00
Dave Pearson
19fa4eeef4
Move code to create a style with no background into its own method
At some point this should really go into Rich itself, I think, as utility
method of Style. For the moment though, let's keep it close to hand as we
figure out if it's a good idea or not.
2023-08-07 09:03:48 +01:00
Dave Pearson
65be8d7f69
Merge branch 'main' into M-x 2023-08-07 08:31:51 +01:00
Will McGugan
792e02e043 catch custom message error 2023-08-06 18:19:07 +01:00
Will McGugan
bbe779aede update to center-things howto 2023-08-06 13:24:01 +01:00
Dave Pearson
c65193cf27
Relock for textual-dev update 2023-08-06 07:57:11 +01:00
Dave Pearson
f4d269edb1
Merge branch 'main' into M-x 2023-08-05 18:22:55 +01:00
Will McGugan
d3897de7ee
Background refresh (#3061)
* enable background screen refresh

* background refresh
2023-08-05 18:07:17 +01:00
Dave Pearson
abc8fa9a50
Update the binding inheritance tests to add new global key
It remains to be seen if we'll keep it like this, but this is a useful
combination to use while I'm working on having the command palette a
"standard" part of a Textual application (I'm still minded to make it
optional and the develop binds it themselves -- we'll see where that
decision falls before final PR).
2023-08-05 09:29:03 +01:00
Dave Pearson
d3b0d96bcc
Update fuzzy matcher tests to handle the changed styling 2023-08-05 09:26:11 +01:00
Dave Pearson
0d4d00fb99
Hint the sources class variable as being a class variable 2023-08-04 20:13:53 +01:00
Dave Pearson
3bd7c058de
Add initial basic app-wide support for the command palette
This adds an action to the App, and binds it to Ctrl+@, which in Mac
terminals at least equates to ctrl+space. This might not be the final
resting place for this, I'm not even sure if we should find it by default at
all. But for the purposes of further testing as I develop this that's fine.

This also adds support to the App class for running the user's choice of
command. With this change nobody needs to hook up the command palette with
Textual on their own any more, it's "out of the box".

What's needed by them now is hooking up a command provider.
2023-08-04 08:42:41 +01:00
Dave Pearson
9e950f146c
Correct a comment 2023-08-03 21:05:12 +01:00
Dave Pearson
4c8f446fb4
Better explain a couple of reasons in the code 2023-08-03 20:48:15 +01:00
Dave Pearson
75ff507171
Flesh out the docstring for registering a command source 2023-08-03 20:43:21 +01:00
Dave Pearson
d2f939aa03
Allow easy access to the focused widget in the command providers 2023-08-03 20:33:35 +01:00
Dave Pearson
498060192c
Revert how we save off the active screen
So it turns out that App.screen gets updated before the mount event is
received, but the stack hasn't changed by that point. It's safer to work off
the stack.
2023-08-03 20:30:49 +01:00
Dave Pearson
fcf2c7cb13
Simply pull the screen from the app's screen property
No need to dumpster-dive the stack when it's right there.
2023-08-03 20:23:56 +01:00
Dave Pearson
49057d27df
Allow "click and go" vs "click, review, then go"
During 2023-08-03 standup it was suggested to me that the preference might
be to have this work in a "click and go" way rather than a "click, review
then go" way. My preference is more for the latter, but I can see the desire
for the former too.

So this makes the former the default, but allows for the latter to be
configured by the developer.
2023-08-03 20:16:59 +01:00
Dave Pearson
e2d0d4c71c
Add a component style for the help line 2023-08-03 16:23:57 +01:00
Dave Pearson
26e94ee289
Make the "internal" IDs a wee bit more "internal" 2023-08-03 14:36:41 +01:00
Dave Pearson
cce6433351
Fix a typo in the docstring for MessagePump.is_attached (#3051) 2023-08-03 12:22:05 +01:00
dmunozv04
e880ecd82b Fix width.md so the link to box_sizing.md works 2023-08-03 12:54:14 +02:00
Dave Pearson
d29ab70fdf
Introduce a "go" button
This helps make it possible for the user to mouse to select a command and
then further mouse to run the command.

In doing this, because I was introducing a new element, I've done a revamp
of the layout and styling of the command palette. The result is more or less
the same as I had to start with, but this solves a couple of cosmetic issues
I was running into until now.
2023-08-03 11:10:18 +01:00
Will McGugan
879c985296
Rich log (#3046)
* log

* tests

* snapshot tests

* change to richlog

* keep raw lines

* disable highlighting by default

* simplify

* superfluous test

* optimization

* update cell length

* add refresh

* write method

* version bump

* doc fix link

* makes lines private

* docstring

* relax dev dependancy

* remove superfluous code [skip ci]

* added FAQ [skipci]

* fix code in faq [skipci]

* fix typo

* max lines fix
2023-08-03 10:11:17 +01:00
Dave Pearson
a83a09fd12
Add an app property to the command source 2023-08-03 08:52:17 +01:00
Dave Pearson
6d3c660f23
Recognise that screens are generics when providing the screen 2023-08-03 08:48:39 +01:00
Dave Pearson
920d74a20c
Code tidy 2023-08-03 08:43:04 +01:00
Dave Pearson
87d5ea7f77
Improve a comment 2023-08-03 08:21:30 +01:00
Dave Pearson
6869e7ab2c
Make the code Python 3.7-friendly 2023-08-02 20:47:33 +01:00
Dave Pearson
ce5ad9ea53
Remove an unused import 2023-08-02 16:14:23 +01:00
Dave Pearson
3b8e7e0479
Update to take into account very fast command sources
The code as was worked fine for nicely slow command sources. In fact I
thought it was going to be the slow ones that would give me the worst
problem. But having managed to handle that, it was the really fast ones that
showed a few issues.

Here I'm swapping back to just showing/hiding the loading indicator as
mounting and removing so fast was an issue.

And also I'm making sure that I flush the queue after all the tasks are
finished, otherwise it was easy to lose a lot of commands.
2023-08-02 15:50:38 +01:00
Dave Pearson
0cebb96157
Add an initial take on getting a command to actually run
This is far from its final form, and right now to work it needs that the
calling code (which is in my test harness) receive the callable via the
screen callback system and make use of it. That's fine, it works, it just
means that as I get closer to making this part of Textual proper I'll need
to build such a mechanism into Screen.
2023-08-02 13:49:14 +01:00
Dave Pearson
2587c17cb6
Add a location into which the command's callable can go 2023-08-02 11:33:39 +01:00
Dave Pearson
94db135073
Merge branch 'main' into M-x 2023-08-02 10:35:33 +01:00
Dave Pearson
1ac7e8b396
Add some missing type hinting 2023-08-02 10:35:05 +01:00
Dave Pearson
f47b58e3b7
Provide access to home/end within the command list 2023-08-02 09:14:27 +01:00
Dave Pearson
9a619f126a
Allow clicking on the "background" to dismiss 2023-08-02 09:08:40 +01:00
Dave Pearson
d884e6898f
Explicitly export some symbols from the command palette module 2023-08-01 15:59:47 +01:00
Dave Pearson
027adc609c
Rename the command palette file
It's becoming clear that we do want to allow people to import from this
file, so it's time to drop the underscore.
2023-08-01 15:54:47 +01:00
Dave Pearson
2dd251bf19
Remove the placeholder reactive
I don't really see much need for this, now that development of this is well
under way. And even if we do want to expose this, I think we need to allow
setting it on the class, not on the instance.
2023-08-01 15:53:17 +01:00
Dave Pearson
a973945a9c
Add a missing docstring 2023-08-01 15:51:10 +01:00
Dave Pearson
26810b88b9
Move to allowing a collection of command sources 2023-08-01 15:07:02 +01:00
Dave Pearson
46174aced7
Work around the mount/render issue with LoadingIndicator
See #2912 and #2914 for some context.
2023-08-01 14:31:44 +01:00
Dave Pearson
25bf5712cf
Fix a typo in a docstring 2023-08-01 13:58:14 +01:00
Will McGugan
b045306c69 faq entry 2023-08-01 11:08:12 +01:00
Will McGugan
5a306e9c9f
Bump0310 (#3044)
* bump version

* changelog
2023-08-01 11:01:53 +01:00
Dave Pearson
3bede59493
Tidy up the notes in the stop_animation docstrings (#3019)
In one case there was a hangover from before we added the `complete` option;
in the other two cases it also needed to be made clear that it's only a
no-op if there's no animation running or also scheduled.
2023-08-01 10:48:44 +01:00
Dave Pearson
4faa620964
Fix the page up/down bindings for OptionList (#3024)
* Fix the page up/down bindings for OptionList

I'd had page_up and page_down bound when the actual names of the bindings
are pageup and pagedown. This has always worked by sheer fluke because of
where OptionList inherits from and by the coincidence of the action names.

In other words: this commit has no substantive impact; but it does fix code
that wasn't helpful and also makes the documentation more correct.

* Correct the page up/down keys in the option list movement tests

Turns out the pilot lets you press keys that don't actually exist. Who
knew?!?
2023-08-01 10:47:50 +01:00
Dave Pearson
c8021a95ac
Swap the busy indication to a mount/remove model
Doesn't seem to make sense to have a LoadingIndicator constantly running in
the background when it isn't needed.
2023-08-01 09:23:13 +01:00
Dave Pearson
8b1d2b448e
Merge branch 'M-x' of github.com:davep/textual into M-x 2023-08-01 08:53:49 +01:00
Dave Pearson
b0efe1a0e4
Tidy up a couple of docstrings 2023-08-01 08:52:42 +01:00
Dave Pearson
c48a824c6a
Add initial support for showing some help
It's not going to end up quite like this, but this gets it going.
2023-07-31 20:42:19 +01:00
Dave Pearson
51cbe2a220
Set things up for command help display 2023-07-31 19:42:41 +01:00
Will McGugan
080437ce03 fix code highlight 2023-07-31 17:58:09 +01:00
Dave Pearson
c922920fec
Remove unused import 2023-07-31 15:53:33 +01:00
Dave Pearson
7b264866e8
Make it obvious to the user when no matches are found 2023-07-31 15:48:16 +01:00
Dave Pearson
f2df52d494
Add a loading indicator to show if we're still loading hits 2023-07-31 15:43:28 +01:00
Dave Pearson
629d9c038f
Rename the method for hunting for commands 2023-07-31 15:06:31 +01:00
Dave Pearson
91c3b4a513
Add a test for Select.value being set from the constructor
As an illustration for
https://github.com/Textualize/textual/discussions/3037 and having written it
it makes sense to drop it into the tests. As it is, it looks like Select has
no tests so this is a handy kickstart.
2023-07-31 15:00:31 +01:00
Dave Pearson
143c0d8267
Start moving to an async generator approach
Not like this, but kinda like this. Just experimenting at the moment, hence
the random sleeps in the core of the generator (to sort of fake a slow
background source).
2023-07-31 14:40:07 +01:00
Dave Pearson
cf7d539ae2
Move the new request code into its own method
At the moment it does nothing more than grab a new UUID, but this gives us
scope for throwing in some sort of callout to the providers to let them know
we're done.
2023-07-31 13:28:15 +01:00
Will McGugan
ddda1c2592
fix for text alignment issue (#3033)
* fix for text alignment issue

* test for hot reloading

* unable to test

* restore dot
2023-07-31 13:19:47 +01:00
Dave Pearson
bcd6b78910
Tweak how the list can be closed and reopened 2023-07-31 13:00:33 +01:00
Dave Pearson
9be6bca264
Make CommandSource an abstract base class 2023-07-31 12:28:09 +01:00
Dave Pearson
bea570d2c0
Start fleshing out an interface for a command source 2023-07-31 11:37:12 +01:00
Dave Pearson
9e05bef356
Remove the original test options
These were there when I was first testing the layout. They're not needed any
more.
2023-07-31 10:32:57 +01:00
Dave Pearson
51ec91db81
Make the escape action an internal action 2023-07-31 10:27:53 +01:00
Dave Pearson
cb3acd76c4
Control the command list visibility from a reactive 2023-07-31 10:24:10 +01:00
Dave Pearson
b37dc7f089
Make the current event handlers internals 2023-07-31 10:18:15 +01:00
Dave Pearson
476dd5a2a0
Add the ability to select a command in the list 2023-07-31 10:17:24 +01:00
Will McGugan
dbd3644577
center how to (#3031)
* center how to

* words

* words
2023-07-31 09:56:46 +01:00
Will McGugan
3db6f85c79 added tip 2023-07-29 17:05:04 +01:00
Will McGugan
d94b38b3c0 words 2023-07-29 15:40:06 +01:00
Will McGugan
5c8ec2321d words 2023-07-29 15:32:44 +01:00
Will McGugan
19445614ab word 2023-07-29 15:23:16 +01:00
Will McGugan
c88bf306d6 words 2023-07-29 13:54:24 +01:00
Will McGugan
df50bf6983 words 2023-07-29 13:44:16 +01:00
Will McGugan
c4095715e7 blog 2023-07-29 13:23:45 +01:00
Gergely Elias
7e92053f5a separating tests, adding explanatory comments 2023-07-28 21:34:29 +02:00
Gergely Elias
b66d6b8b67 adding method for clearing cache to Tree class 2023-07-28 21:04:15 +02:00
Gergely Elias
5b12bcda88 preserving node's parent 2023-07-28 20:39:15 +02:00
Dave Pearson
e4e6adcff0
Mark fuzzy matches as reverse text
Just to help things stand out for the moment. At some point I think I'll
allow passing in custom styles, which will come from component classes or
something. For now though this makes it easier to see what's going on.
2023-07-27 20:43:08 +01:00
Gergely Elias
ed594748d1 replacing the term subtree with node 2023-07-27 21:29:02 +02:00
Dave Pearson
60befa8d7e
Make compatible with Python 3.7 2023-07-27 20:26:25 +01:00
Gergely Elias
6c9aeb0cdf Merge branch 'main' into directorytree_reload_node 2023-07-27 21:24:55 +02:00
Dave Pearson
12693c3956
Plug in the fuzzy matcher for a quick test
This isn't the interface. Nowhere near. But this helps kick off visualising
how it will all work.
2023-07-27 16:27:17 +01:00
Dave Pearson
4869e32df8
Initial WiP commit of comment palette UI test code 2023-07-27 15:19:53 +01:00
Will McGugan
6356be1f5f addendum to blog post 2023-07-27 12:34:46 +01:00
Will McGugan
8bf6673363
blog post (#3022)
* blog post

* words

* words

* more words

* Update docs/blog/posts/rich-inspect.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/blog/posts/rich-inspect.md

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-07-27 12:12:59 +01:00
Dave Pearson
5a55b11881
Gather up the latest changed items in the CHANGELOG under one heading (#3020) 2023-07-27 10:15:54 +01:00
TomJGooding
a8fcfaeb21
fix(datatable): unset hover cursor when no cell under mouse (#3018)
* fix(datatable): unset hover cursor when no cell under mouse

* update changelog
2023-07-27 10:15:20 +01:00
Will McGugan
8348a916d8
fix blank write (#3017)
* fix blank write

* snapshot
2023-07-26 20:39:50 +01:00
Dave Pearson
232e86d25a
Deanimate! (aka, provide a method of stopping application and widget animations) (#3000)
* Remove duplicated Added section in the CHANGELOG

* Add the ability to stop a running animation

Adds stop_animation to the core animator class, and then exposes it via the
same named methods on App and Widget. Note that a request to stop an
animation that isn't running is treated as a no-op.

* Fix tests so they actually work and test things

This is what happens when you save time using -k to run one test, then add
more but keep just hitting cursor up to rerun the tests. O_o

* Add the ability to stop an animation and jump to the final value

This doesn't address the issue of stopping scheduled animations, that's to
come next, first I just wanted to get the basic approach in place and then
build out from there.

* Add full stopping support to the ScalarAnimation

* Tidy up various bits of documentation in Animator

While I'm in here and moving things around: being various bits of
documentation more in line with how we document these days, and also add
some missing documentation.

* Allow for the full stopping (with end-seeking) of scheduled animations

* Don't spin up a scheduled animation to then not use it

* Be super-careful about getting keys when stopping

* Pop rather than acquire and delete

* Don't implement anything in Animation.stop

See https://github.com/Textualize/textual/pull/3000#discussion_r1275074716
2023-07-26 17:36:56 +01:00
Will McGugan
2086353b56
Docs tutorial tweak (#3016)
* docs

* words

* words

* words

* Words
2023-07-26 14:58:35 +01:00
Dave Pearson
6bd0d1b196
Merge pull request #3009 from davep/issue/2958/select-scroll-parent
Override can_view in Screen to check if a widget is overlay screen
2023-07-26 14:15:58 +01:00
Dave Pearson
0871dc57ce
Clean up the f-stringing of a string in ScalarAnimation.__call__ (#3014)
Noticed this unnecessary use of an f-string in passing.
2023-07-26 10:15:02 +01:00
Dave Pearson
ad8145f534
Merge pull request #2972 from davep/markdowner
Change Markdown.load so that load errors propagate
2023-07-25 13:43:29 +01:00
Dave Pearson
85a3dd5e7d
Extend Markdown.load's docstring to reflect the possible exceptions 2023-07-25 13:34:40 +01:00
Dave Pearson
18d5eb52af
Override can_view in Screen to check if a widget is overlay screen
This change is based on the idea that if a widget is "overlay: screen" it's
totally outside the normal flow of things and so trying to see if it's
visually within its ancestors doesn't make a whole lot of sense as it might
deliberately not be. At which point the only sensible question we can ask is
"can the screen see it?".

See #2958.
2023-07-25 12:55:41 +01:00
Dave Pearson
4c9302150b
Merge branch 'main' into early-show-root 2023-07-25 11:02:13 +01:00
Dave Pearson
681dbf8c0d
Add App.action_switch_mode (#3001)
This makes it easier for people to switch modes from BINDINGS.
2023-07-25 10:45:49 +01:00
Dave Pearson
4f3bb3fe15
Set DataTable default style to max-height: 100% (#2974)
* Make the default max-height of a DataTable 100%

See #2959

* Fix the demo

Adding `max-height: 100%;` to DataTable has worked everywhere, except in the
demo, where it makes the table just plain flat out disappear. It looks like
it's down to a bug in Textual's CSS, possibly. This fixes the demo for now,
and a standalone issue will follow that dives into what's going on with this
particular combination of container and datatable styling.

* Update the ChangeLog

* Update the FAQ
2023-07-25 10:39:39 +01:00
Will McGugan
0ff435601e
expand tabs (#3008)
* expand tabs

* Test
2023-07-25 10:37:14 +01:00
Dave Pearson
23768787ee
Add a unit test for testing #2363 2023-07-24 14:32:27 +01:00
Dave Pearson
1cf5bd0ad7
Update the CHANGELOG 2023-07-24 14:12:51 +01:00
Dave Pearson
140d9d9ac1
Only style the label if the directory tree is mounted
There are occasions where the Tree may want to get the label (to make size
decisions, it seems) that happen *before* a mount has finished. In
DirectoryTree component classes are being accessed but they don't come into
play until the DOM is up and running.

This change builds allows for the building of a directory tree label, while
also *not* trying to style the label, if mount hasn't finished yet.

See #2363.
2023-07-24 14:10:55 +01:00
Will McGugan
cb81b6d7a6
Gradient optimization (#2999)
* optimization

* further optimization

* maxsize defaults to 128

* App demo
2023-07-24 11:32:41 +01:00
Dave Pearson
f9fb1b1514
Remove the implementation of notify from Screen (#2996)
* Remove the implementation of notify on Screen

Screen inherits the one from Widget anyway. I always forget that Screen is a
Widget. O_o

* Remove imports that aren't needed any more
2023-07-24 10:24:21 +01:00
Sepehr Shirkhanlu
5153fe6c92
Fix docs (#2932)
* Fix line highlighting in docs

* fix docs: remove duplicated code
2023-07-23 16:49:59 +01:00
Dave Pearson
f78ffe04b6
Merge pull request #2938 from davep/unfootgun-worker-thread
Worker updates
2023-07-23 16:32:22 +01:00
Will McGugan
ed4eb2c7a7 copy 2023-07-23 16:14:29 +01:00
Will McGugan
381fde7212 update copy 2023-07-23 16:08:13 +01:00
Will McGugan
4406b9d608
capture print (#2971)
* capture print

* changelog

* docstring

* rename

* strings
2023-07-23 15:49:24 +01:00
Gergely Elias
e5ef25d4a0 further review comments addressed 2023-07-23 13:57:01 +02:00
Gergely Elias
6e783d07f0 updates based on review comments 2023-07-23 05:52:47 +02:00
Gergely Elias
5a9e3396c9 method for reloading single node of DirectoryTree 2023-07-22 16:44:24 +02:00
Michael Seifert
8b5f4fd03d Screen processes mouse move events after forwarding them to the child widget.
Signed-off-by: Michael Seifert <m.seifert@digitalernachschub.de>
2023-07-22 16:11:47 +02:00
Rodrigo Girão Serrão
40ba3347e5
Merge pull request #2984 from zormit/allow-empty-css-variables
allow empty css variables
2023-07-22 12:57:28 +01:00
Rodrigo Girão Serrão
abc745cb5f
Merge pull request #2977 from davep/verbose-typo
Typo fix in the module docstring for events.py
2023-07-22 11:34:19 +01:00
Moritz Neeb
7770f8de82 refactor: simplify css variable table creation 2023-07-22 12:28:59 +02:00
Moritz Neeb
2ab6ca364f explain change on changelog 2023-07-22 12:28:57 +02:00
Moritz Neeb
382b308393 allow empty css variables
fixes #1849

Co-authored-by: @eliasdorneles
2023-07-22 12:27:53 +02:00
Rodrigo Girão Serrão
42dc3af347
Merge pull request #2981 from seifertm/2366-switch-click-bubbling
Fixes a bug that causes Click events to bubble up from Switch widgets.
2023-07-22 11:04:15 +01:00
Michael Seifert
febe3631a7 Fixes a bug that causes Click events to bubble up from Switch widgets.
Signed-off-by: Michael Seifert <m.seifert@digitalernachschub.de>
2023-07-22 11:42:32 +02:00
Dave Pearson
e5dfc15106
Typo fix in the module docstring for events.py 2023-07-20 17:55:26 +01:00
Dave Pearson
3111ce7fe9
Change Markdown.load so that load errors propagate
See #2956.
2023-07-19 14:08:17 +01:00
Dave Pearson
95f204fbd8
Merge branch 'main' into unfootgun-worker-thread 2023-07-19 13:43:23 +01:00
Dave Pearson
2f055f6234
Merge pull request #2970 from davep/unbork-selection-list
Fix a crash caused by a prompt being wider than a `SelectionList`
2023-07-19 13:13:42 +01:00
Dave Pearson
fed1ed4848
Remove unnecessary copy of options 2023-07-19 12:37:39 +01:00
Dave Pearson
af51ad9a94
Add missing option from the OptionList.__init__ docstring 2023-07-19 11:34:41 +01:00
Dave Pearson
5431e49c0c
Update the ChangeLog 2023-07-19 11:28:17 +01:00
Dave Pearson
f02a69ff25
Don't wrap prompts in a SelectionList 2023-07-19 11:26:16 +01:00
Dave Pearson
cb819faa37
Add the ability to tell OptionList to not auto-wrap prompts 2023-07-19 11:25:42 +01:00
Dave Pearson
ad2b457348
Make the test a little more extreme 2023-07-19 11:14:03 +01:00
Dave Pearson
749f5c2d7a
Add unit test for #2900 2023-07-19 10:28:13 +01:00
Will McGugan
0b9b6772d9
web driver from textual-serve (#2967)
* web driver from textual-serve

* add future
2023-07-18 14:28:09 +01:00
Will McGugan
47a159c111
Added a max fps environment variable (#2966) 2023-07-18 14:26:09 +01:00
Dave Pearson
1aa2fcf567
Update the work decorator overloads to reduce type warnings
See #2946.
2023-07-18 10:51:40 +01:00
Dave Pearson
da0fd708ae
Update the CHANGELOG 2023-07-18 09:54:20 +01:00
Dave Pearson
17a31196e7
Merge branch 'main' into unfootgun-worker-thread 2023-07-18 09:51:44 +01:00
Dave Pearson
0789c24c76
Add missing notification docstrings and type hints (#2960)
* Add missing docstring for Toast.render

* Add missing type hint for COMPONENT_CLASSES

* Add missing Toast.COMPONENT_CLASSES docstring
2023-07-18 09:39:51 +01:00
Dave Pearson
7bd552a4ec
Make notification documentation and interface match changed rendering (notifications fix option 2) (#2963)
* Remove the empty title styling

The content of the style seems to have been removed, the class isn't
referenced any more, so it can go.

* Change the Notification interface and docs to reflect the changed code

A last-minute change to the notification PR changed the way that titles were
handled. If the intention is to take this new approach (as opposed to an
oversight in the change) then there's little point in allowing two forms of
empty title, while also documenting that an `None` title will default to the
severity.

This commit simplifies the interface for notifications and also modifies the
documentation to reflect the change that was made.
2023-07-18 09:39:11 +01:00
Dave Pearson
8e135e7afb
Tidy up the worker running code
Simplify a wee bit, and also tidy up some of the docstirngs.
2023-07-18 08:37:23 +01:00
Dave Pearson
6638958b20
Move worker tests into their own sub-directory
This makes it far easier to run this subset of tests all at once.
2023-07-18 08:34:46 +01:00
Dave Pearson
6a0ad92883
Merge branch 'main' into unfootgun-worker-thread 2023-07-17 16:23:39 +01:00
Dave Pearson
baa40e3bc9
Be explicit about how someone should decorate a non-async worker 2023-07-17 16:22:05 +01:00
Dave Pearson
d4583249db
Add support for running an async method in a thread worker 2023-07-17 15:59:49 +01:00
Will McGugan
ec58b914cf
version bump (#2955)
* version bump

* tweak toast style, release post

* snapshots
2023-07-17 14:08:32 +01:00
Jayghosh Rao
256e8ad608
Expose animation callback in scroll methods (#2903)
* Expose animation callback in scroll methods

* call on_complete after refresh
2023-07-17 11:50:24 +01:00
Dave Pearson
ca8eb3df7b
Notifications (#2866)
* Add a notification class and a class to hold notifications

This provides the core classes for holding information on a single
notification, and then on top of that a class for managing a collection of
notifications.

* WiP: End of day/week commit to pick up post-holiday

* Ask permission rather than forgiveness

Yes, this does go against all things Pythonic, but in this case it's likely
less costly to do the check first; moreover it works around the problem I
ran in to: https://github.com/Textualize/textual/issues/2863

* Move the handling of "I've seen this" into the toast rack

This way the interface becomes "here's a bunch of notifications, you go work
this out".

* Add a notify method to all widgets

* The removal time for a toast should be the time left

When it was per-screen, it made sense that it was the timeout; now that
we're carrying them over between screens we're going to make sure they're
only around for as long as they need to be.

* Carry notifications between screens

* Remove the test code

* Drop the borders from the toasts

Except for the title, keep that.

* Provide access to the notification timeout

* Remove the title panel from a Toast if the title is empty

* Make the Toast CSS classes "private"

Prefix with a - to reduce the chance of a clash with userspace.

* Refresh a docstring

* Stop widget leakage

The Toasts were removing themselves, but they're wrapped inside a helper
container that keeps them aligned right. So the problem was that the
alignment containers were leaking. This ensures that when a Toast goes away
it takes its parent with it.

* Make the alignment container hidden

This doesn't really make any difference, but it feels like it makes sense to
hide it if there's nothing to show -- it's purely for alignment.

* 🚚 Rename the toast container

This is about getting the toasts to align correctly (even when you do align
things, they don't really align as expected due to the way that a container
aligns the bounding box of all if its children, not the individual
children). However, I had this named after where it aligned them to; someone
using the system may wish to change that, so let's make the name more
generic.

* Improve ToastRack._toast_id

Add a docstring, and also change the format of the identity somewhat so that
it's even "more internal".

* Add some initial low-level notification testing

* Add initial testing of notifications within an application

* Add tests for notifying from the 3 main levels within the DOM

* Add a toast example to the docs and a snapshot test

This might not be the final form, but it'll do for the moment. I want to get
the snapshot test in place at least.

* Add a snapshot test for notifications persisting between screens

* Add some documentation for a Toast

This isn't going into the index, just yet. This is *technically* an internal
widget so I'm not sure how and where it makes sense to document it; if at
all. But let's get some documentation in here anyway.

* Flesh out the docstrings for the notify methods

* Add a missing docstring to the Notifications __init__ method

* Add snapshot tests for persisting notifications through mode switches

* Remove unused import

Looks like eglot/pyright tried to be "helpful" at some point and I didn't
notice.

* Correct the Toast severity level classes in the docs

Originally they weren't in the "internal" namespace, then I decided that
they should be so there's less chance of a clash with dev-space code; but I
forgot to reflect this in the docs.

This fixes that.

* Make the removal of notifications/toasts a two way thing

The addition of the ability to dismiss a toast by clicking on it had a flaw:
the notification->toast code had been written with things being one way. The
expiration of notifications happened in the notification handler, and the
expiration of Toasts was done in the Toast system, on purpose (notifications
might end up being routed via elsewhere so this needs to be done).

But... this meant that hand-removed Toasts kept coming back from the dead
when a new notification was raised iff the hand-removed ones hadn't yet
expired.

So here I add the ability the remove a notification from the notification
collection.

* Remove an unhelpful comment

Sort of a hangover from what was initially looking like it was going to be a
longer body of code. It doesn't really need explaining any more.

* Add in support to the notification collection

* Change the toast rack adder to be a general "show" method

This turns the method into one that further aids making the connection
between the notifications and the toasts two way. Now it makes sense that if
there are toasts for notifications that no longer exist, they also get
removed.

This makes it easier to add all sorts of clear options later on.

* Add a method to clear notifications

* Add an App method for clearing all existing notifications

* Add a missing docstring to _refresh_notifications

* Return the notification from the notify methods

It can be seen as, and used as, a handle of sorts (see unnotify); so return
it so people can use it.

* Add some more notifications unit testing

* Add some more app-level notification unit testing

* Style tweaks

* docs

* added notifications

* snapshots

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-07-17 11:47:17 +01:00
David
4d699c8364
Fix Toggle Buttons on a selection list (#2930)
* Fix Toggle Buttons on a selection list

* Update CHANGELOG.md

* Update dependencies

Mainly updating the now-external snapshot testing code so that the failure
report (which was to be expected) gets generated.

* Update snapshot tests

* Add testing for clicking on a SelectionList prompt or checkbox

* Cody tidy

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-07-17 11:33:09 +01:00
Alejandro Gaspar
062a0f26a1
Change vh to vw in min/max-width styles reference docs (#2943) 2023-07-17 11:32:04 +01:00
darrenburns
7cd07bc69d
Remove print call from OptionList (#2947) 2023-07-15 12:22:21 +01:00
Dave Pearson
c6cd18514c
Allow threaded async
Originally the request had been communicated as the following would be
errors:

- Non-async method, non-thread
- Async method, thread

As of
https://github.com/Textualize/textual/issues/2928#issuecomment-1634333775
it's been decided that the scope of the PR should be expanded to not only
guard against the first case, but also to extend the way the worker API
works to do the right thing in the second case.

This commit backs out the detection of the second case and flagging it as an
error.
2023-07-13 15:44:32 +01:00
Dave Pearson
50657ba295
Add tests for non-thread-non-async-worker 2023-07-13 15:43:34 +01:00
Dave Pearson
e20137af51
Typo fix 2023-07-13 14:45:29 +01:00
Dave Pearson
2dfb44f528
Update the CHANGELOG 2023-07-13 14:33:58 +01:00
Dave Pearson
17ae7175a5
Reword the text relating to the creation of thread workers 2023-07-13 14:08:56 +01:00
Dave Pearson
48ee8540bc
Add the thread argument to the example code in the docs 2023-07-13 14:08:33 +01:00
Dave Pearson
632aaf068f
Add thread parameter to the work docstring 2023-07-13 13:52:17 +01:00
Dave Pearson
47c7bbb54f
Merge pull request #2937 from davep/unrichreadme
Remove a copy of the Rich README that seemed to be kicking about
2023-07-13 13:50:00 +01:00
Dave Pearson
bc354b9454
Remove a copy of the Rich README that seemed to be kicking about
Perhaps a hangover from testing some version of the Markdown widget at some
point in the past. Running a ripgrep for it over the repo shows no reference
to it.
2023-07-13 13:42:10 +01:00
Dave Pearson
9fce998f09
Be explicit that _load_directory is a thread worker 2023-07-13 13:14:50 +01:00
Dave Pearson
e06f9ce7bd
Update the overloads for the work decorator 2023-07-13 13:14:25 +01:00
Dave Pearson
1b0f0017f4
Add a thread parameter to the work decorator and test the context 2023-07-13 13:06:39 +01:00
Dave Pearson
3b85382cb2
Add missing the (#2929)
Credit to ThatOtherAndrew on Discord.
2023-07-12 12:32:48 +01:00
darrenburns
7c6d3c9461
Update gitignore to refer to new default snapshot report location (#2927) 2023-07-12 11:08:33 +01:00
TomJGooding
2d0266550e
feat(datatable): add remove column method (#2899)
* feat(datatable): add remove column method

* add basic unit test

* improve test by checking row data

* update datatable docs

* update changelog
2023-07-12 10:59:25 +01:00
Travers Carter
7a802d4c27
DataTable key lookup enhancements (Closes #2586, Closes #2587) (#2876)
* Updated DataTable.get_cell type hints to accept string keys (#2586)
Added DataTable.get_cell_coordinate
Added DataTable.get_row_index (#2587)
Added DataTable.get_column_index

* Added changelog entries for new DataTable methods

* Fix code style issues identified by Black

* Add unit tests for new DataTable methods
2023-07-12 10:58:31 +01:00
Will McGugan
26573b9cff wrong package 2023-07-11 11:37:32 +01:00
Will McGugan
4937c85590
fuzzy matcher (#2906)
* fuzzy matcher

* ws

* Update src/textual/_fuzzy.py

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-07-11 09:45:43 +01:00
Will McGugan
2cfaf4691b
linear gradient (#2904)
* linear gradient

* revert post message

* tidy

* docstring
2023-07-10 09:54:53 +01:00
Dave Pearson
b9ca79f751
Update the setup target to take into account textual-dev (#2908)
There is no dev extra now.
2023-07-10 09:42:13 +01:00
mardanst
90a93e08ab
Fix intermittent exception in _progress_bar.py (#2892)
* Fix intermittent exception in _progress_bar.py 

Exception raised if percentage changes before the _refresh_timer is instantiated.

* Minor fixes to PR for best practices
2023-07-06 19:02:48 +01:00
Will McGugan
c2f0771322
Fix CancelledError (#2895)
* Rodrigo's test

* changelog

* comment oddity
2023-07-06 14:16:23 +01:00
Rodrigo Girão Serrão
a35e92b9fc
Merge pull request #2889 from Textualize/tweaks-docs-api
Tweak docs.
2023-07-04 16:02:55 +01:00
Rodrigo Girão Serrão
62da06d1ee
Tweak docs.
Removes 'API' entry from the API TOC and adds validation to the TOC.
2023-07-04 15:51:11 +01:00
Will McGugan
ab609a89ea docs update 2023-07-04 11:10:34 +01:00
David Brochart
fa85f5f254
Add install instructions for conda-forge (#2885) 2023-07-04 11:03:10 +01:00
Will McGugan
2ec219bd40 wrong version 2023-07-03 16:09:24 +01:00
Will McGugan
0235fc95da changelog 2023-07-03 15:42:00 +01:00
Will McGugan
65e81c58be
Textual dev (#2884)
* WiP: Move the devtools and related code to `textual-dev` (#2834)

* Remove the textual script from the project file

This is moving into the textual-dev package.

* Remove the textual CLI code from Textual

This has all gone to live in textual-dev.

* Remove the devtools testing from Textual's unit tests

They've moved over to textual-dev instead.

* Remove the devtools server from Textual itself

The start of the process to remove as much of the core devtools as possible
from Textual.

* Switch the console docs example screenshot over to textual_dev

* Remove rednerables.py from Textual

* Remove the last parts of devtools from Textual

This is the last step. It remains to be seen if this is sustainable, but for
testing purposes this is the extreme case we're aiming for. I *think* this
will work though.

Hereon we'll be needing to do an editable install of textual-dev into
textual, and more generally and once this is "live" we'll be needing to make
sure that textual[dev] is installed when doing development work on textual
apps.

The thing that remains to be seen however is how this all works
with *developing* Textual itself. Will I always need to do an editable
install? Still got to figure that one out.

* Start to whittle down the pyproject file

The next step is to try and work out what can come out of the pyproject
file.

* Remove aiohttp from Textual

* Remove some more development dependencies we don't need any more

* Relock

* Remove the pointer to the previews directory

* Reintroduce the border preview snapshot test

* Reintroduce the color preview snapshot test

* Reinstate the key press for the border preview snapshot test

* Reintroduce the easing preview snapshot test

* Reintroduce the keys tool snapshot test

* Add pytest-asyncio as a development dependency

* Relock

* Pin the textual-dev version to 0.1.0 or later

Mostly to try and get the tests kicked off properly.

* Relock dependencies

* Further `textual-dev` changes (#2850)

* Remove the textual script from the project file

This is moving into the textual-dev package.

* Remove the textual CLI code from Textual

This has all gone to live in textual-dev.

* Remove the devtools testing from Textual's unit tests

They've moved over to textual-dev instead.

* Remove the devtools server from Textual itself

The start of the process to remove as much of the core devtools as possible
from Textual.

* Switch the console docs example screenshot over to textual_dev

* Remove rednerables.py from Textual

* Remove the last parts of devtools from Textual

This is the last step. It remains to be seen if this is sustainable, but for
testing purposes this is the extreme case we're aiming for. I *think* this
will work though.

Hereon we'll be needing to do an editable install of textual-dev into
textual, and more generally and once this is "live" we'll be needing to make
sure that textual[dev] is installed when doing development work on textual
apps.

The thing that remains to be seen however is how this all works
with *developing* Textual itself. Will I always need to do an editable
install? Still got to figure that one out.

* Start to whittle down the pyproject file

The next step is to try and work out what can come out of the pyproject
file.

* Remove aiohttp from Textual

* Remove some more development dependencies we don't need any more

* Relock

* Remove the pointer to the previews directory

* Reintroduce the border preview snapshot test

* Reintroduce the color preview snapshot test

* Reinstate the key press for the border preview snapshot test

* Reintroduce the easing preview snapshot test

* Reintroduce the keys tool snapshot test

* Add pytest-asyncio as a development dependency

* Relock

* Pin the textual-dev version to 0.1.0 or later

Mostly to try and get the tests kicked off properly.

* Relock dependencies

* Whitespace cleaning

* Swap mentions of textual[dev] to textual-dev

* Remove the dev extra

* Tweak README.md in response to PR review

* Tweak animation.md in response to PR review

* Tweak getting_started.md in response to PR review

* bump version

* lock

* drop dev

* more

* version bump

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-07-03 15:37:40 +01:00
paul-ollis
6b3b1ce67f
Fix race condition during shutdoen under Windows (#2864)
The terminal writer thread could send escape sequences when the terminal
was unable to process then; i.e. when not in virtual mode.

The following fixes have been made.

- Switch the terminal to virtual mode before the writer thread is
  started and any control sequences are queued to the writer thread.

- Wait for the writer thread to finish before switching the terminal
  out of virtual mode.
2023-07-03 15:32:10 +01:00
Will McGugan
ac5e2d19a7 Dot 2023-07-03 14:21:01 +01:00
Jorge
e4523127a9
Add CodeQL workflow (#2882) 2023-07-03 14:17:16 +01:00
mardanst
101bf681d2
Add error property to worker.py (#2865)
worker.error is described in the worker guide documentation but the property is not present in the code.
2023-07-02 17:23:47 +01:00
Sepehr Shirkhanlu
9c4858a7b3
Fix typo (#2869) 2023-07-02 17:22:56 +01:00
Alex Iribarren
339505e8c7
Redirect output to /dev/null (#2880)
* Redirect output to devnull

Fixes #2877, #2878 and #2879.

* Rename file handle

* Reformat
2023-07-02 17:22:22 +01:00
Will McGugan
21d0916ca1 full stops 2023-06-30 16:41:51 +01:00
Will McGugan
733e50602b
inherit text-style (#2862) 2023-06-29 16:14:47 +01:00
TomJGooding
3bc4fb734b
fix(markdown): render softbreak split links (#2811)
* fix(markdown): render softbreak split links

* add test
2023-06-29 13:29:11 +01:00
Will McGugan
c6bfeeffed
Replace term 'transparency' with 'opacity' (#2861)
* Replace term 'transparency' with 'opacity'

* words

* docstring
2023-06-29 13:14:49 +01:00
Noah
70c4a959bd
docs: Clarify message in color.md (#2860) 2023-06-29 11:34:58 +01:00
darrenburns
ad4308562b
Moving snap_compare to external package (#2849)
* Remove snap_compare fixture, extracted into external plugin

* Remove syrupy and Jinja2 dependencies

* Remove unused dependency
2023-06-27 14:37:41 +01:00
darrenburns
59b5ab0a55
Relax dependency of markdown-it-py (#2844) 2023-06-27 13:45:43 +01:00
darrenburns
fbb11dcafb
Expose the AwaitMount from Markdown.update (#2838)
* Expose the AwaitMount from Markdown.update

* Update CHANGELOG.md

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-06-27 13:37:41 +01:00
darrenburns
d7721060fb
Allow adding columns to populated data table (#2836)
* Allow adding columns to populated data table

* Add snapshot test for adding columns/updating cells

* Update CHANGELOG.md

* Ensure we update virtual_size when cell updated
2023-06-27 13:36:15 +01:00
Will McGugan
fd28e22e53 remove debug print 2023-06-27 11:53:03 +01:00
Dave Pearson
b2602e973a
Merge pull request #2842 from davep/blurred-selection-list/bug/2768
Add missing styles for non-focused and non-highlighted selected selections in a `SelectionList`
2023-06-27 09:57:45 +01:00
Dave Pearson
8e2f81c35a
Update the ChangeLog 2023-06-27 09:14:46 +01:00
Dave Pearson
1a601ef73f
Add missing styles for non-focused "ticked" selections
See #2768.
2023-06-27 09:13:14 +01:00
Will McGugan
25d72feb00
fix for opacity (#2814)
* potential fix for opacity

* add opacity to rich_style

* added can focus

* changelog

* comments

* fix flicker

* test fixes

* docstring [skip ci]
2023-06-26 16:20:16 +01:00
Dave Pearson
cffb9c4806
Merge pull request #2820 from davep/option-list-typo-fix
Fix a typo in the docstring for `OptionList.get_option`
2023-06-21 13:44:23 +01:00
Dave Pearson
3c3ad6c0b2
Fix a typo in the docstring for OptionList.get_option 2023-06-21 13:20:24 +01:00
Dave Pearson
8c105fb373
Fix a broken link to the Worker class (#2816) 2023-06-21 10:44:59 +01:00
Will McGugan
14aeb31cd9
minor bump (#2809)
* minor bump

* changelog
2023-06-20 09:27:17 +01:00
Dave Pearson
4b02d37e8c
TabbedContent remove pane fix (actually Tabs fix) (#2808)
* Add a unit test for https://github.com/Textualize/textual/issues/2807

* Add a test for removing tabs in reverse

* Add a test for the messages sent when removing tabs in reverse

Marked as xfail for the moment, I suspect the root cause of #2807.

* Don't sent Changed when tab removal doesn't result in change

* Update the CHANGELOG

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-06-20 09:15:16 +01:00
Will McGugan
9639449f48
Preserve original sender when using call_after_refresh (#2806)
* Defer sender in call_after_refresh

* docstring

* test

* typing
2023-06-20 09:14:01 +01:00
Dave Pearson
038cdb23d8
Markdown improvements (#2803)
* Initial set of Markdown widget unit tests

Noting too crazy or clever to start with, initially something to just test
the basics and to ensure that the resulting Textual node list is what we'd
expect.

Really just the start of a testing framework for Markdown.

* Allow handling of an unknown token

This allow for a couple of things:

1. First and foremost this will let me test for unhandled tokens in testing.
2. This will also let applications support other token types.

* Update the Markdown testing to get upset about unknown token types

* Treat a code_block markdown token the same as a fence

I believe this should be a fine way to solve this. I don't see anything that
means that a `code_block` is in any way different than a fenced block that
has no syntax specified.

See #2781.

* Add a test for a code_block within Markdown

* Allow for inline fenced code and code blocks

See #2676

Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>

* Update the ChangeLog

* Improve the external Markdown elements are added to the document

* Improve the testing of Markdown

Also add a test for the list inline code block

* Remove the unnecessary pause

* Stop list items in Markdown being added to the focus chain

See #2380

* Remove hint to pyright/pylance/pylint that it's okay to ignore the arg

---------

Co-authored-by: TomJGooding <101601846+TomJGooding@users.noreply.github.com>
2023-06-20 09:13:41 +01:00
Will McGugan
bb9cc6281a
tooltips in compound widgets (#2801)
* tooltips in compound widgets

* snapshot tweak

* test fixes
2023-06-19 14:11:18 +01:00
Will McGugan
e7531f4614 update faq 2023-06-19 11:11:16 +01:00
Will McGugan
d962bbad8d add faq 2023-06-19 11:07:20 +01:00
Will McGugan
c91858d04d
Update why-looks-bad-on-macos.question.md (#2800) 2023-06-19 11:06:58 +01:00
Will McGugan
82411ad337
version bump (#2799)
* version bump

* changelog
2023-06-19 10:26:47 +01:00
Will McGugan
129bef49cf
Alternative scroll to center (#2787)
* remove commented out code

* origin_visible flag

* comments

* docstring

* test fix
2023-06-19 10:09:45 +01:00
Dave Pearson
65fff4f2de
Add a missing word to the Tree label entry in the ChangeLog (#2797) 2023-06-19 09:54:11 +01:00
Will McGugan
5ad64a315c
satisfy pyright (#2793) 2023-06-19 09:53:41 +01:00
Will McGugan
48598a6bb7
fix broken repr in file monitor (#2795)
* fix broken repr in file monitor

* no need for callback

* docstrings and typing
2023-06-18 16:58:38 +01:00
Dave Pearson
c966243b05
Merge pull request #2751 from davep/tabbed-content-redux 2023-06-16 11:14:14 +01:00
Dave Pearson
832208ba83
Add unit testing for TabbedContent adding before/after 2023-06-15 15:43:22 +01:00
Dave Pearson
e4b4aad467
Rename a couple of TabbedContent tests
So they don't get confused with actual "add after".
2023-06-15 14:57:26 +01:00
Dave Pearson
50d93b56c2
Swap to asyncio.gather
See https://github.com/Textualize/textual/pull/2751#discussion_r1230816478
2023-06-15 14:23:33 +01:00
Dave Pearson
282f2c6dd7
Fix a typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-06-15 12:04:48 +01:00
Dave Pearson
06c2b975ee
Remove unnecessary f-string 2023-06-15 11:55:30 +01:00
Dave Pearson
146b1b8e4c
Update the ChangeLog 2023-06-15 11:26:04 +01:00
Dave Pearson
4dd934a68d
Add a couple of missing pauses to TabbedContent unit tests
These are needed to give messages time to flow.
2023-06-15 10:58:33 +01:00
Dave Pearson
abc0e802d1
Make the rest of the TabbedContent tests lean on async/await 2023-06-15 10:50:57 +01:00
Dave Pearson
f5e516dfd8
Add support for adding a pane before/after another one 2023-06-15 10:41:26 +01:00
Dave Pearson
4af0f8304f
Turn on/off highlighting of the underline depending on tabs 2023-06-15 10:28:50 +01:00
Dave Pearson
6f03566090
Allow completely turning off the highlight
Ideally this would use something like what #2786 intends to add, but
meanwhile this solves the problem of ghost highlights in extreme situations
of adding/removing tabs.
2023-06-15 10:27:52 +01:00
Dave Pearson
ffd6db660a
Remove unused import 2023-06-15 10:05:33 +01:00
Dave Pearson
8e6904b5f2
Merge pull request #2785 from TomJGooding/docs-fix-geometry-typos 2023-06-15 09:55:44 +01:00
Dave Pearson
f21668667d
Be more forgiving when removing tabbed content
It's possible, unlikely but possible, that the content could get removed via
some other route, or out of sync, so allow for that. Don't get upset of the
content has gone away when we're removing the tab that was in charge of it.
2023-06-15 09:51:26 +01:00
TomJGooding
7ea1ed044a docs: fix typos in geometry 2023-06-15 09:37:46 +01:00
Dave Pearson
617244ddd7
Simplify add_pane 2023-06-14 16:31:57 +01:00
Dave Pearson
07c445ceaf
Make the TabbedContent add/remove/clear methods optionally awaitable 2023-06-14 16:14:36 +01:00
Dave Pearson
2c6d09e700
Make attempting to move away from non-existing content a no-op
It's possible that we might be being asked to switch from an item of content
that has actually been removed; there's no harm in making not finding the
old thing a no-op.
2023-06-14 15:36:31 +01:00
Dave Pearson
5f0f353948
Merge branch 'main' into tabbed-content-redux 2023-06-14 15:28:49 +01:00
Dave Pearson
78bfb5a685
Merge pull request #2778 from davep/awaitable-tabs
Awaitable tabs
2023-06-14 14:03:13 +01:00
Dave Pearson
2f72b5f7eb
Merge branch 'main' into awaitable-tabs 2023-06-14 13:41:56 +01:00
Dave Pearson
4fe7bb1d44
Update the ChangeLog 2023-06-14 13:35:09 +01:00
Dave Pearson
be9c1da98d
Correct a docstring 2023-06-14 13:23:15 +01:00
Dave Pearson
9b4317f077
Add before/after options to add_tab
Merging in the core idea of #2762 given that this is an overhaul of Tabs in
general and also adding/removing/clearing tabs in particular.

Co-authored-by: blob42 <contact@blob42.xyz>
2023-06-14 13:09:09 +01:00
Will McGugan
2889a437f2
Style review (#2777)
* further tweaks

* button tweaks

* style tweaks

* style tweaks

* tests

* test fixes

* tidy css
2023-06-14 13:04:24 +01:00
Will McGugan
ad74392c2a
test fix (#2779) 2023-06-14 11:52:18 +01:00
Rodrigo Girão Serrão
118e62de0e
Disabled container (#2776)
* Add regression test for #2772.

* Remove focus on nested disabled widgets.

* Optimisation.

Related comments: https://github.com/Textualize/textual/pull/2776#discussion_r1228327427

* Fix tests.
2023-06-14 11:46:55 +01:00
Dave Pearson
cbbcc65c4e
Add unit tests for Tabs messages 2023-06-14 10:57:02 +01:00
Dave Pearson
d1fe395e6d
Add tests for navigating tabs with the mouse 2023-06-14 10:12:25 +01:00
Dave Pearson
519d32a676
Add a test for accessing a Tab's label 2023-06-14 09:50:22 +01:00
Dave Pearson
56014b1dfb
Add a test for attempting to keyboard-navigate an empty Tabs 2023-06-14 09:45:11 +01:00
Dave Pearson
a97f227d7c
Add a test for navigating tabs with the keyboard 2023-06-14 09:39:18 +01:00
Dave Pearson
9fe8cbbad4
Follow some more tab removal code paths in testing 2023-06-14 09:35:46 +01:00
Dave Pearson
4f8936f4e4
Add a test for changing the active tab from code 2023-06-14 09:21:55 +01:00
Dave Pearson
77c04ad8a2
Add better coverage to the tab removal tests 2023-06-14 09:12:38 +01:00
Dave Pearson
e89186cee8
Add a test for clearing tabs 2023-06-14 09:05:22 +01:00
Dave Pearson
cab0f7429e
Add a test for removing tabs 2023-06-14 09:03:23 +01:00
Dave Pearson
b25f3ddc49
Test making tabs from instances of a Tab 2023-06-14 08:57:33 +01:00
Dave Pearson
9a5d392733
Remove an unneeded type
Recent changes mean this isn't required any more.
2023-06-14 08:54:51 +01:00
Dave Pearson
ca1e99f95d
Make a start on some unit tests for Tabs 2023-06-13 18:32:22 +01:00
Dave Pearson
94561a67c2
Make Tabs.clear awaitable 2023-06-13 15:47:54 +01:00
Dave Pearson
311b17e647
Add a missing new return value to the remove_tab docs 2023-06-13 15:38:26 +01:00
Dave Pearson
145fe13207
Make Tabs.remove_tab optionally awaitable 2023-06-13 15:36:52 +01:00
Dave Pearson
5fc64f2002
Make Tabs.add_tab optionally awaitable 2023-06-13 15:07:12 +01:00
Dave Pearson
82b5b21f82
Make the active Tabs watcher more robust
It's unlikely, but not impossible, that code could end up asking to make a
tab active that doesn't exist any more, so here we make things a wee bit
more robust and turn it into a no-op.
2023-06-13 15:00:10 +01:00
Rodrigo Girão Serrão
436b1184a9
Merge pull request #2744 from Textualize/screen-css
Screen css
2023-06-12 16:56:32 +01:00
darrenburns
b69973322e
Re-raise encountered exceptions in pilot tests (#2754) 2023-06-12 16:42:25 +01:00
darrenburns
231a894941
Fixes suggested by linter (#2769) 2023-06-12 15:00:19 +01:00
Rodrigo Girão Serrão
14269a48f1
Merge pull request #2758 from Textualize/win-sleep-bug
Fix win sleep bug
2023-06-12 11:51:48 +01:00
rodrigogiraoserrao
d47a126847 Merge branch 'win-sleep-bug' of github.com:textualize/textual into win-sleep-bug 2023-06-12 11:38:48 +01:00
Dave Pearson
6deb97af9e
Merge pull request #2767 from davep/tweak-await-remove
Don't return anything from `AwaitMount.__call__`
2023-06-12 11:29:20 +01:00
rodrigogiraoserrao
6a1c470d32 Fix regression test. 2023-06-12 11:26:40 +01:00
Dave Pearson
247895a213
No point in returning something when there's no return value to speak of
Possibly the least-useful PR I've made yet; but once seen it could not be
unseen.
2023-06-12 11:00:19 +01:00
darrenburns
e6bac7a720
Add Deepsource configuration. (#2766) 2023-06-12 10:52:14 +01:00
Rodrigo Girão Serrão
9d5bcc16af
Merge pull request #2759 from Textualize/more-widget-tests
A couple more widget tests.
2023-06-12 10:46:02 +01:00
Rodrigo Girão Serrão
b5fa18f27a
Delete WIP comment 2023-06-12 10:26:13 +01:00
Rodrigo Girão Serrão
38f9bf310f
Longer sleep. 2023-06-12 10:13:48 +01:00
Josh Duncan
1dc02ed5ce
Correct Row Highlighting When Labeled (#2756) 2023-06-12 09:50:48 +01:00
Rodrigo Girão Serrão
e3f9dc1fe8
Use a coroutine that does nothing. 2023-06-09 17:32:12 +01:00
Rodrigo Girão Serrão
0c32c05dfa
Address review feedback. 2023-06-09 15:19:55 +01:00
Rodrigo Girão Serrão
22577b4ce7
A couple more widget tests. 2023-06-09 15:17:12 +01:00
rodrigogiraoserrao
6f31380bd9 Implement cancellable Windows sleep.
Related issues: #2711.
2023-06-09 14:34:39 +01:00
rodrigogiraoserrao
2e71040a71 Add tests. 2023-06-09 14:34:03 +01:00
Dave Pearson
2062ce3853
Pull Tooltip out of the main DOM (#2755)
Fixes #2723
2023-06-08 15:12:41 +01:00
Dave Pearson
ee59817427
Merge branch 'main' into tabbed-content-redux 2023-06-08 10:11:07 +01:00
rodrigogiraoserrao
a7e5822c41 First attempt. 2023-06-07 16:36:04 +01:00
Dave Pearson
83633ad9e0
Try a slightly longer pause to wait for messages 2023-06-07 15:57:36 +01:00
Dave Pearson
a6e016d7e1
Experiment with an actual wait time
The tests touched in this commit are working fine in CI for GNU/Linux and
macOS; but fail on Windows as the message we need to come through doesn't
seem to be coming through.

Testing on Windows (11, in Parallels, on macOS) it seems that setting an
actual time for the pauses does the trick. I'm not sure why, I thought a
pause with no time ensured that all message queues were emptied before
coming out of the pause. Apparently not.

So this is an experiment to see if it'll pass in CI too.
2023-06-07 15:44:09 +01:00
Will McGugan
8947dbe703
on super class (#2746)
* on super class

* simplification

* simplify

* remove whitespace

* changelog

* changelog

* Update tests/test_on.py

Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>

---------

Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>
2023-06-07 13:43:12 +01:00
rodrigogiraoserrao
b3375af8e9 Make black happy. 2023-06-07 13:31:08 +01:00
Dave Pearson
21d7049b2d
Fix a copy/pasteo 2023-06-07 12:47:03 +01:00
Dave Pearson
2bf8fd7905
Add a TabbedContent.Cleared message
Much like Tabs.Cleared, this indicates that all available tabs/panes have
been removed and the widget is now empty. This is especially important here
as the way we remove tabs is such that we can't await their removal and then
make the remove methods async (because Tabs doesn't allow for that).

So the approach taken here is to send a message from TabbedContent, and
delay it as much as possible, ideally once the action that's taking
place *has* taken place.

The reasoning is: a user may clear down all panes, then want to add some
back, possibly with IDs they've used before. The clear down might not have
fully happened, but we can't await it all, so the approach for the user
would be to wait until the Cleared message turns up *then* repopulate.
2023-06-07 12:21:17 +01:00
rodrigogiraoserrao
365d094505 Merge branch 'main' into screen-css 2023-06-07 12:04:55 +01:00
rodrigogiraoserrao
2718a7ade3 Update screen CSS parsing logic.
Do not keep an explicit registry of screens whose CSS has been parsed. Instead, grow methods in the file monitor and in the stylesheet to check if a given path is already being monitored/sourced and add the paths if it isn't.
2023-06-07 12:04:21 +01:00
rodrigogiraoserrao
23fd9cb793 Add test for screen CSS parsing count. 2023-06-07 12:03:12 +01:00
rodrigogiraoserrao
8f2ee8cef2 Tweak docstrings.
Related comments: https://github.com/Textualize/textual/pull/2744#discussion_r1219872393, https://github.com/Textualize/textual/pull/2744#discussion_r1219876738
2023-06-07 10:37:59 +01:00
Dave Pearson
fd243f4973
Add a TabbedContent method to clear all panes 2023-06-07 08:40:25 +01:00
Dave Pearson
0ac613d7fe
Add tests that check the tab count when adding and removing tabs 2023-06-07 08:18:29 +01:00
Dave Pearson
d8aa49b046
Deduplicate the create of tab IDs 2023-06-07 08:18:08 +01:00
Dave Pearson
feb07db435
Document the return value of TabbedContent.add_pane 2023-06-07 07:49:39 +01:00
Dave Pearson
7802970762
Add a tab_count property to TabbedContent
Mimics (and actually simply returns) Tabs.tab_count. The idea being that if
people can now add and remove tabs from TabbedContent, they may want to be
able to keep track of how many tabs there are.
2023-06-07 07:24:18 +01:00
Dave Pearson
c5253f4911
Merge pull request #2748 from davep/one-more-input-test 2023-06-06 19:41:53 +01:00
Dave Pearson
eac8eba761
Test that Input maintains its height
Also... that last elusive line in coverage.
2023-06-06 16:57:46 +01:00
Dave Pearson
8f4b40ef24
Add some tests for adding/removing tabs to TabbedContent 2023-06-06 16:41:43 +01:00
darrenburns
1c3a4bb7bc
Datatable style ordering (#2736)
* Allow customising whether CSS or renderable colors show in datatable

* Simplify

* Add snapshot for style ordering in the DataTable

* Fix layering issue with text colours, add snapshot tests (DataTable)

* Update CHANGELOG.md
2023-06-06 16:32:35 +01:00
Dave Pearson
300401c4b6
Set active to empty if there are no tabs left 2023-06-06 16:31:35 +01:00
Dave Pearson
81edb863fb
Only error out when active is empty and there are tabs available
If, on the other hand, we set active to empty when there is no content to be
tabbed, then we let it slide.
2023-06-06 16:30:45 +01:00
Rodrigo Girão Serrão
51762b140c
Merge pull request #2672 from TomJGooding/docs-button-update-spacing-note
docs(button): update note about button spacing/padding
2023-06-06 16:23:51 +01:00
TomJGooding
ead005d8bc
docs: import message from message not messages (#2747) 2023-06-06 16:13:07 +01:00
Rodrigo Girão Serrão
0d646dd53f
Merge pull request #2708 from Textualize/private-validate-compute
Private validate compute
2023-06-06 15:18:27 +01:00
Rodrigo Girão Serrão
f0871ada74
Merge pull request #2709 from Textualize/delete-reactive-var
Delete Reactive.var.
2023-06-06 15:18:04 +01:00
Dave Pearson
5cf50f7083
Add a remove_pane method to TabbedContent
See #2710.
2023-06-06 14:55:51 +01:00
Dave Pearson
290351db10
Add an add_pane method to TabbedContent
See #2710.
2023-06-06 14:26:40 +01:00
Rodrigo Girão Serrão
845f711ec8
Fix pattern import. 2023-06-06 13:45:13 +01:00
Rodrigo Girão Serrão
b98e004b54
Add CSS and CSS_PATH to screens. 2023-06-06 13:38:13 +01:00
Rodrigo Girão Serrão
34a19f4bff
Add tests for screen CSS. 2023-06-06 13:34:57 +01:00
Dave Pearson
69d86fb764
Make the active tab watcher private 2023-06-06 12:14:24 +01:00
Dave Pearson
2d4183ffaa
Clean up a type warning about tab ID in _on_tabs_tab_activated 2023-06-06 12:02:39 +01:00
Dave Pearson
755da5e969
Merge pull request #2722 from davep/docs-auto-focus-borkage-fix
Fix various screenshots in the docs, broken by the addition of `AUTO_FOCUS`
2023-06-06 11:55:05 +01:00
Dave Pearson
b318d323ca
Merge pull request #2743 from davep/input-tweaks
Assorted tweaks to `Input`
2023-06-06 11:22:35 +01:00
Dave Pearson
235fdc2c48
Remove dead code from Input._on_key
The branch being removed here seems to be trying to handle keyboard bindings
before handling the raw keyboard event. However, in the unit tests, even
when a binding is pressed, this code doesn't get called.

I strongly suspect this is code that predates changes that were made some
time ago in respect to the order in which bindings were processed and their
relationship to keystrokes.

After removing this all tests are passing just fine and hand-testing
`Input` (especially in the demo, for example, both non-password and password
incarnations) shows no problems either.

All evidence suggests that #2737 was incapable of hitting that branch of
code because it just could not be hit these days.
2023-06-06 10:47:16 +01:00
Dave Pearson
552d381c58
Make the value watcher private 2023-06-06 10:42:16 +01:00
Dave Pearson
d4be9ac080
Make cursor position watch private
Also remove the parameter that wasn't being used anyway.
2023-06-06 10:41:20 +01:00
Dave Pearson
b252459d00
Merge pull request #2737 from davep/extend-input-widget-tests
Add more unit testing for the `Input` widget
2023-06-06 10:30:19 +01:00
Dave Pearson
2b67080984
Merge branch 'extend-input-widget-tests' of github.com:davep/textual into extend-input-widget-tests 2023-06-06 10:18:10 +01:00
Dave Pearson
5ca6d54973
Switch clicks_within to use parametrize
TIL.
2023-06-06 10:17:45 +01:00
Dave Pearson
8afe656a01
Fix a function naming typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-06-06 10:12:09 +01:00
Rodrigo Girão Serrão
0c26f62b82
Mark as breaking change. 2023-06-06 10:05:25 +01:00
Rodrigo Girão Serrão
a26b0fd8e3
Update src/textual/message_pump.py 2023-06-06 10:02:43 +01:00
darrenburns
2158f8ed8d
Fix raise NotImplemented in DataTable (#2705)
* Fix raise NotImplemented in DataTable

* DataTable key return NotImplemented

* Returning NotImplemented in DataTable
2023-06-06 09:49:40 +01:00
Dave Pearson
5c19c72721
Tidy the highlighter test a wee bit 2023-06-06 09:33:18 +01:00
Dave Pearson
fed8ca1121
Add a test for using a highlighter with an Input 2023-06-06 09:19:25 +01:00
Dave Pearson
79fb295cb9
Add a test for deleting left-word inside the first word 2023-06-06 08:13:01 +01:00
Dave Pearson
85cc741aa3
Tidy up the Input mouse tests
Also add a test for clicking outside of the content.
2023-06-06 08:04:33 +01:00
Will McGugan
8b42867bb1 typo 2023-06-05 17:51:19 +01:00
Will McGugan
67ba9aa47a
assets (#2739) 2023-06-05 17:50:34 +01:00
Rodrigo Girão Serrão
48df69ed22
Merge pull request #2738 from Textualize/errors-shown-typo
Fix typo.
2023-06-05 16:31:19 +01:00
Dave Pearson
c08315eb30
Add tests for mouse clicking inside of an Input 2023-06-05 16:16:42 +01:00
Rodrigo Girão Serrão
d35bac429e
Fix typo. 2023-06-05 15:53:25 +01:00
Dave Pearson
71e5644a1f
Add some property testing to the Input widget 2023-06-05 15:25:41 +01:00
Dave Pearson
a082e18238
Add a test for the message impact of a paste event 2023-06-05 15:09:45 +01:00
Dave Pearson
c6e57dec09
Add message-based testing for the Input widget 2023-06-05 14:32:06 +01:00
Dave Pearson
d2bf3b5038
Merge pull request #2735 from davep/extend-radio-set-testing
Extend radio set testing
2023-06-05 13:51:01 +01:00
Dave Pearson
6239731ee2
Add a test for after-the-fact adding of buttons to a RadioSet 2023-06-05 13:30:58 +01:00
Dave Pearson
cb92104f1e
Merge pull request #2732 from davep/content-switcher-more-testing
Finish off `ContentSwitcher` unit testing
2023-06-05 11:37:34 +01:00
Rodrigo Girão Serrão
2057c463a4
Extract prefix (length). 2023-06-05 11:22:06 +01:00
Dave Pearson
ee3aad7e65
Add testing for the control property
Ensure it's always the correct value.
2023-06-05 10:46:11 +01:00
Dave Pearson
29c160eb06
Merge pull request #2728 from davep/main
Fix a typo in the typing example in the SelectionList docs
2023-06-05 10:29:43 +01:00
Dave Pearson
e74941da15
Add more testing for the ContentSwitcher
It looks like "visible_content" might have turned up after the tests were
added; so this adds testing for that to the tests (and gets coverage for
ContentSwitcher to 100%).
2023-06-05 09:05:11 +01:00
Dave Pearson
e79cce676d
Merge branch 'Textualize:main' into main 2023-06-05 08:45:50 +01:00
claws
bfef40a806
Fix typo (#2729) 2023-06-04 12:56:20 +01:00
Dave Pearson
7f1436538e
Fix a typo in the typing example in the SelectionList docs
See #2727.
2023-06-02 22:37:49 +01:00
Dave Pearson
269f2446be
Remove tab presses from compound widgets examples post-AUTO_FOCUS
See #2720.
2023-06-02 07:14:22 +01:00
Dave Pearson
2f1422049f
Remove tab presses from input focus guide post-AUTO_FOCUS
See #2720. I'm not 100% sure about this one; I don't think it's been
modified since the AUTO_FOCUS change was made, so I believe this will be
restoring the example to its intended state.
2023-06-02 07:11:04 +01:00
Dave Pearson
955fb7363a
Remove tab presses from reactivity guide post-AUTO_FOCUS
See #2720. While there wasn't a problem here, there's no point in having
those there any more as the fields will have focus to start with.
2023-06-02 07:00:50 +01:00
Dave Pearson
ef003c7967
Fix ProgressBar gallery entry post-AUTO_FOCUS
See #2720.
2023-06-02 06:49:30 +01:00
Dave Pearson
0555a956aa
Fix Input gallery entry post-AUTO_FOCUS
See #2720.
2023-06-02 06:48:41 +01:00
Dave Pearson
73d08274f1
Fix Input example post-AUTO_FOCUS
See #2720.
2023-06-02 06:47:38 +01:00
Dave Pearson
c86797c8ab
Fix ProgressBar examples post-AUTO_FOCUS
See #2720.
2023-06-02 06:45:03 +01:00
Dave Pearson
4f8a8e1250
Merge pull request #2719 from davep/content-switcher-doc-fix 2023-06-01 21:53:57 +01:00
Dave Pearson
f010dc0a46
Fix the examples for the ContentSwitcher widget
See #2718. The problem is that the work done on #2527 and related PRs has
changed the starting position of focus, which means that any code example
that has key presses in them that start out by tabbing to a control will be
off by one.
2023-06-01 20:53:52 +01:00
Dave Pearson
a8c0c015f8
Merge pull request #2717 from davep/sparkline-examples-non-internal-import
Import `Sparkline` from a non-internal location
2023-06-01 18:41:53 +01:00
Dave Pearson
ec5fe6a33e
Import Sparkline from a non-internal location
Updates the Sparkline examples within the documentation so that the
Sparkline widget is imported in a way that developers working with Textual
should.
2023-06-01 18:31:57 +01:00
Dave Pearson
81ec818639
Merge pull request #2716 from davep/css-good-life-reload-confirmation
In devtools show confirmation of successfully loading CSS after a previous fail
2023-06-01 18:17:46 +01:00
Dave Pearson
bf8b6fe077
Merge branch 'main' into css-good-life-reload-confirmation 2023-06-01 18:09:11 +01:00
Will McGugan
61455db23e changelog 2023-06-01 17:48:09 +01:00
Will McGugan
065effbebd doc fixes 2023-06-01 17:41:08 +01:00
Will McGugan
5f10e4c976 fix blog 2023-06-01 17:36:05 +01:00
Dave Pearson
d0edd99a61
Merge pull request #2713 from davep/tree-node-label-change-should-refresh-the-tree 2023-06-01 17:19:28 +01:00
Rodrigo Girão Serrão
d96884d33c
Merge pull request #2715 from Textualize/fix-modes
Remove duplicated modes.
2023-06-01 16:21:07 +01:00
Dave Pearson
b53eef84d2
Update the ChangeLog with the PR link 2023-06-01 16:16:30 +01:00
Dave Pearson
3e2d1ba52d
In devtools Show confirmation of successfully loading CSS after a previous fail
See #2534
2023-06-01 15:51:49 +01:00
Rodrigo Girão Serrão
3b599d04cd
Remove duplicated modes. 2023-06-01 15:30:26 +01:00
Dave Pearson
3b6f75ce6e
Update the ChangeLog 2023-06-01 11:42:19 +01:00
Dave Pearson
216615e24f
Merge branch 'main' into tree-node-label-change-should-refresh-the-tree 2023-06-01 11:39:57 +01:00
Will McGugan
58a9cb1909
blog post new release (#2712)
* blog post new release

* update words

* Update docs/blog/posts/release0-27-0.md

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-06-01 11:33:54 +01:00
Dave Pearson
e55ee23eae
Defer the repainting of the node in the tree
The previous change actually broke some of the tests in test_disabled.py --
well actually it flat out broke one and caused all the others to run *very*
slowly. No clue why though.

But thinking about this some more, it does feel like delaying the refresh of
the node makes more sense.
2023-06-01 10:49:29 +01:00
Dave Pearson
70f173fae8
Ensure a Tree's node is refreshed when the label is changed
Fixes #2698
2023-06-01 10:37:39 +01:00
Rodrigo Girão Serrão
78db024c01
Add sparkline widget. (#2631)
* Sparkline widget proof of concept.

* Address review comment.

Related comments: https://github.com/Textualize/textual/pull/2631\#discussion_r1202894414

* Blend background colours.

* Add widget sparkline.

* Add snapshot tests.

* Add documentation.

* Update roadmap.

* Address review feedback.

Relevant comments: https://github.com/Textualize/textual/pull/2631\#discussion_r1210394532, https://github.com/Textualize/textual/pull/2631\#discussion_r1210442013

* Improve docs.

Relevant comments: https://github.com/Textualize/textual/pull/2631\#issuecomment-1568529074

* Update snapshot app titles.

* Don't init summary function with None

Related comments: https://github.com/Textualize/textual/pull/2631\#discussion_r1211666076

* Apply suggestions from code review

Co-authored-by: Dave Pearson <davep@davep.org>

* Improve wording.

* Improve wording.

* Simplify example.

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-06-01 09:34:33 +01:00
Rodrigo Girão Serrão
8516ddaf2b
Delete Reactive.var.
Related issues: #2706.
2023-05-31 18:04:53 +01:00
Rodrigo Girão Serrão
e170bbe437
Merge branch 'main' into private-validate-compute 2023-05-31 17:54:52 +01:00
Rodrigo Girão Serrão
b1a6954789
Changelog. 2023-05-31 17:52:11 +01:00
Rodrigo Girão Serrão
73019fa773
Fix name shadowing issue. 2023-05-31 17:50:23 +01:00
Rodrigo Girão Serrão
2293f40416
Use private computes. 2023-05-31 16:17:15 +01:00
Rodrigo Girão Serrão
fdc7ba3f0b
Add tests for private computes. 2023-05-31 16:17:06 +01:00
darrenburns
7049014faa
Option to ensure scroll_to_center doesn't scroll so as to hide the top left corner of the widget (#2682)
* Option to ensure origin of widget is visible when calling scroll to center

* Update CHANGELOG.md

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-05-31 16:13:21 +01:00
Rodrigo Girão Serrão
41af804ca5
Check for private AND public compute methods.
We do this inside _MessagePumpMeta.__new__ because this runs at 'import time', and thus is essentially the earliest we can figure out if this is not going to work.
2023-05-31 16:09:22 +01:00
Dave Pearson
a14e469dd6
Improve OptionList test coverage (#2701)
* Cover the penultimate uncovered line in OptionList

Sort of moot, but worth a test that the control of a message is the option
list.

* Test OptionList hover over disabled option

I *would* have liked to have tested this sort of thing via snapshot tests,
but it seems that pilot.hover isn't quite behaving as desired there. But
this provides a useful test anyway.
2023-05-31 15:23:24 +01:00
Will McGugan
0849e6f410
mount order (#2702)
* mount order

* fix test

* simplify hooks

* changelog

* docstring
2023-05-31 15:16:26 +01:00
Rodrigo Girão Serrão
85722d61db
Test private validate methods. 2023-05-31 14:01:18 +01:00
Rodrigo Girão Serrão
648d5f43ee
Use private validate methods.
Private validate methods are checked before the public ones.
2023-05-31 13:56:35 +01:00
Dave Pearson
4ff1d18cb5
Merge pull request #2700 from davep/split-option-list-snapshits
Split up the OptionList snapshot tests
2023-05-31 11:22:51 +01:00
darrenburns
0dc58bd151
Ensure _options attribute is assigned in Select constructor (#2690)
* Ensure _options attribute is assigned in Select constructor

* Update CHANGELOG.md

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-05-31 09:45:06 +01:00
Dave Pearson
dba14b8a12
Split up the OptionList snapshot tests
Don't run 3 snapshot tests in one test function when it's easier to see what
broke and where if each is in their own function.
2023-05-31 09:17:26 +01:00
Rodrigo Girão Serrão
1c7cb066ae
Activate private validate method test. 2023-05-30 16:38:10 +01:00
Will McGugan
149c39c86c
Tooltips (#2670)
* inflect

* diagram

* tooltip render

* tooltip property

* add guard

* tooltip docs

* docs

* tidy, fix horizontal

* words, removed comment

* fix screenshot render

* simplify

* simfplify

* changelog

* simplify optimize

* inflect tests

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* docstring

* disable auto focus

* should be fraction

* optimization

* snapshot update

* Update tests/snapshot_tests/snapshot_apps/scroll_to_center.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-30 16:14:31 +01:00
Rodrigo Girão Serrão
83c83de78b
Merge pull request #2686 from Textualize/worker-coverage
Increase worker coverage and fix bug.
2023-05-30 16:13:20 +01:00
Aaron Stephens
7c9abea839
fix(_compositor): move hidden_widgets (#2687) 2023-05-30 15:58:14 +01:00
Will McGugan
4930c1615b
Merge branch 'main' into worker-coverage 2023-05-30 15:55:46 +01:00
Rodrigo Girão Serrão
43d39aa061
Merge pull request #2693 from Textualize/stylesbase-typing
Fix typing issues.
2023-05-30 15:09:47 +01:00
Rodrigo Girão Serrão
ee6f1b93a3
Merge pull request #2692 from Textualize/switch-screen
Fix issue with switch screen.
2023-05-30 15:09:19 +01:00
Rodrigo Girão Serrão
0f4f82569c Fix typing issues.
Related issues: #2494, #2680
2023-05-30 14:46:54 +01:00
Rodrigo Girão Serrão
ce771c19f4 Fix issue with switch screen. 2023-05-30 13:55:17 +01:00
darrenburns
3dea4337ac
Add Validator framework note to CHANGELOG (#2685) 2023-05-30 13:02:46 +01:00
Rodrigo Girão Serrão
5126e98b3b Remove weird import. 2023-05-30 10:21:35 +01:00
Rodrigo Girão Serrão
9569a98c77 Increase worker coverage and fix bug. 2023-05-29 19:49:58 +01:00
darrenburns
a40300a6f5
Ensure reflow reflows non-visible widgets, fix scroll_to_center issue (#2684) 2023-05-29 18:23:49 +01:00
Rodrigo Girão Serrão
6cb052a7f2
Fix changelog. (#2683) 2023-05-29 18:17:31 +01:00
darrenburns
3e7b2c53a8
Add Widget.remove_children method (#2657) 2023-05-29 18:03:42 +01:00
darrenburns
ca17d8194e
Add docs for Pretty, fix some reference issues in docs (#2678) 2023-05-29 17:11:39 +01:00
Rodrigo Girão Serrão
73d55725b5
Merge pull request #2604 from Textualize/input-auto-completion
Input completion suggestions
2023-05-29 14:48:40 +01:00
Rodrigo Girão Serrão
baa1f712d8 Change default case sensitivity. 2023-05-29 14:24:49 +01:00
Dave Pearson
ea75fcc5e5
Merge pull request #2679 from davep/fix-dock-type-warning
Fix the dock type warning
2023-05-29 13:55:32 +01:00
Dave Pearson
5a8fe24367
Fix the dock type warning
See #2494.
2023-05-29 13:44:11 +01:00
Dave Pearson
3e462793e4
Merge pull request #2677 from davep/docs-no-insiders-redux
Revisit allowing building the docs without access to "Material for MkDocs Insiders"
2023-05-29 12:57:25 +01:00
Dave Pearson
d4eb0a0c20
Only link Python and Rich types when building full docs
It looks like mkdocstrings will fail out if it can't download the inv files.
Unless there's a setting where you can tell it "try, but if you can't grab
them just don't try and create links" the approach here seems reasonable and
has the same effect.

https://github.com/Textualize/textual/issues/2629#issuecomment-1566672594
for reference.
2023-05-29 08:30:23 +01:00
Dave Pearson
806a6663ad
Remove the privacy plugin from the offline version of the docs
Yes, this does pretty much undo the "offline" part, but without this the
docs can't build if the builder doesn't have access to the insiders' edition
of mkdocs. Doing this as a first step to investigating if there's any
possible way to achieve what we want here:

- Anyone can build
- They can build offline
- They can build for maximum privacy

If not, this step at least hits the first requirement.

See #2629.
2023-05-29 07:40:30 +01:00
Will McGugan
1ea892b062
handler name in classvar (#2675)
* handler name in classvar

* fix for worker handler name

* fix custom templates, event docs

* doc tweak

* doc tweak

* restore signature
2023-05-28 14:56:18 +01:00
Will McGugan
ab10c7c326
fix zero division error (#2674)
* fix zero division error

* push tests
2023-05-28 14:56:05 +01:00
TomJGooding
087a34f6c3 docs(button): update note about button spacing/padding 2023-05-28 08:57:52 +01:00
Dave Pearson
65b0c34f2e
Merge pull request #2660 from davep/dirtree-tweaks 2023-05-26 15:18:58 +01:00
Dave Pearson
ec3334e633
Perform the "is loaded" test in _add_to_load_queue
The test if a node was loaded wasn't being performed when loading the root.
This ensures that will happen. I suspect this is (no pun...) at the root of
the issue with https://github.com/Textualize/frogmouth/issues/50 even though
I can't see the route into how this happens, and can't recreate this at
will.

This feels like a worthwhile change to make anyway as it's a safer approach.
2023-05-25 20:55:22 +01:00
Dave Pearson
32790de26a
Ensure a node has no children before populating it
I'm struggling to recreate https://github.com/Textualize/frogmouth/issues/50
in a controlled way, but reviewing the code here makes me think that this is
a good idea anyway. While DirectoryTree should not end up in _populate_node
if a node has already been populated, it's also the case that it's an
all-or-nothing thing; it makes sense to clear out the children of the node
before populating it; at least in a belt-and-braces way.
2023-05-25 20:49:50 +01:00
Rodrigo Girão Serrão
fd57309ad0 Make validators kwd-only. 2023-05-25 17:57:33 +01:00
Rodrigo Girão Serrão
31e2d1c839 Merge branch 'main' into input-auto-completion 2023-05-25 17:42:37 +01:00
Rodrigo Girão Serrão
ae266551a1 Update suggester implementation. 2023-05-25 17:32:40 +01:00
Rodrigo Girão Serrão
fc86682dfa Add tests for suggester. 2023-05-25 17:32:26 +01:00
Rodrigo Girão Serrão
0488b5ed9c Ignore abstractmethods. 2023-05-25 17:22:21 +01:00
Dave Pearson
ea8c6039a9
Merge pull request #2652 from davep/multiselect 2023-05-25 17:10:20 +01:00
Dave Pearson
c16b32b52f
Merge pull request #2656 from davep/private-validate-and-compute
Add (currently xfailing) tests for private reactive validation and compute methods
2023-05-25 15:53:24 +01:00
Dave Pearson
fa47d0bd41
Mark the public/private validate and compute tests as xfails 2023-05-25 15:27:27 +01:00
Dave Pearson
bd6717f3d5
Add a test for public and private computes
This fails for now.
2023-05-25 15:23:33 +01:00
Dave Pearson
400043dda1
Update snapshit tests 2023-05-25 14:47:11 +01:00
Dave Pearson
93cae8d961
Merge branch 'multiselect' of github.com:davep/textual into multiselect 2023-05-25 14:20:13 +01:00
Dave Pearson
658c1cdf73
Documentation punctuation change 2023-05-25 14:19:47 +01:00
Dave Pearson
4764c100e3
Fix a copy/pasteo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 14:16:15 +01:00
Dave Pearson
aca8ec4833
Merge branch 'multiselect' of github.com:davep/textual into multiselect 2023-05-25 14:12:10 +01:00
Dave Pearson
45e64254e6
Be clear that _apply_to_all sends a SelectedChange message 2023-05-25 14:11:35 +01:00
Dave Pearson
95389ebe76
Fix a typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 14:05:05 +01:00
Dave Pearson
c69e53f77e
Save a word!
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 14:04:32 +01:00
Dave Pearson
93c3c3652b
Merge branch 'main' into multiselect 2023-05-25 13:59:34 +01:00
Dave Pearson
a944554d0d
Finish a half-finished docstring 2023-05-25 13:58:31 +01:00
Dave Pearson
baa060f9fa
Remove annotation from RHS of the typing example 2023-05-25 13:57:08 +01:00
Aaron Stephens
20d19d977d
Refactor Message.control and Tree Messages (#2602)
* refactor(message): make control a property

* refactor(_tree): remove tree parameter on messages

* refactor(_directory_tree): remove tree parameter on message

* fix: tree message calls

* fix(_select): make Changed.control a property

* refactor(_on): control check

* refactor(_select): rename Changed.widget to select

* docs: changelog entry
2023-05-25 13:48:31 +01:00
Will McGugan
3ab315beb6
Anim screenshot fix (#2655)
* fix screenshots in docs

* fix anim

* added wait for animation switch

* remove comment
2023-05-25 13:46:14 +01:00
Dave Pearson
4c93e63ed6
Fix a copy/pasteo 2023-05-25 13:35:27 +01:00
darrenburns
62fcefbd2d
Validation (#2600)
* A few different types of validation

* Rename

* Fix test

* Updating validation framework

* Update lockfile

* Ensure validators can be None

* Reworking the API a little

* Convert Input.Changed to dataclass

* Add utility for getting failures as strings

* Update an example in Validator docstring

* Remove some redundant `pass`es

* Renaming variables

* Validating Input on submit, attaching result to Submitted event

* Testing various validation features

* Update snapshots and deps

* Styling unfocused -invalid Input differently

* Add snapshot test around input validation and associated styles

* Validation docs

* Tidying validation docs in Input widget reference

* Fix mypy issues

* Remove __bool__ from Failure, make validator field required

* Code review changes

* Improving error messages in Validators
2023-05-25 13:29:33 +01:00
Dave Pearson
6d82d7a1db
Fix a typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:27:31 +01:00
Dave Pearson
ad4c68ba0d
Fix a typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:26:57 +01:00
Dave Pearson
d656fa6a79
Fix a typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:24:01 +01:00
Dave Pearson
51f8d0dc9a
Break up the SelectionList snapshit tests
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:20:22 +01:00
Dave Pearson
51133b3a62
Typo fix
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:19:18 +01:00
Dave Pearson
34f7136f21
Fix a typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:14:27 +01:00
Dave Pearson
bec362e527
Improve the title for the widget
It's sort moved on from been about check boxen.

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-25 13:04:12 +01:00
Rodrigo Girão Serrão
5cb30b5ecc
Merge pull request #2628 from Textualize/auto-focus-improv
Add auto focus to app.
2023-05-25 11:59:54 +01:00
Rodrigo Girão Serrão
afbf52d8f5
Merge pull request #2654 from Textualize/progressbar-docs
Fix progress bar docs issue.
2023-05-25 11:59:37 +01:00
Dave Pearson
abda34aa13
Add a test for private validation
Currently failing.
2023-05-25 11:48:04 +01:00
Dave Pearson
4472c862be
Anticipate SelectionList making it into 0.27.0 2023-05-25 11:28:52 +01:00
Dave Pearson
3796a849c4
Simplify _make_selection a wee bit 2023-05-25 11:21:50 +01:00
Dave Pearson
939586f5f8
Add snapshot tests for the SelectionList examples 2023-05-25 11:06:21 +01:00
Rodrigo Girão Serrão
08eb1f1fab Remove invalid ref. 2023-05-25 11:01:47 +01:00
Dave Pearson
9a0e82f4c3
Merge branch 'main' into multiselect 2023-05-25 10:04:52 +01:00
Dave Pearson
112f18b94d
Add SelectionList to the widget gallery 2023-05-25 09:58:43 +01:00
Dave Pearson
4ceeefba23
Remove the attempt to link to Pretty
Weirdly Pretty isn't in the docs. Yet.
2023-05-25 09:42:12 +01:00
Dave Pearson
02c4f4d69b
Add an example of using SelectionList.SelectedChanged 2023-05-25 09:35:37 +01:00
Dave Pearson
fe26b89803
Add some more hints about type hinting
Also add a couple more useful links in the area I'm editing.
2023-05-25 09:12:57 +01:00
Dave Pearson
2d544ca697
Rename the tuples selection list example to mention tuples
Making this one look like it was *the* canonical example wasn't a good idea.
2023-05-25 08:58:45 +01:00
Dave Pearson
a9100988b4
Make a start on the SelectionList example apps 2023-05-24 21:36:14 +01:00
Will McGugan
8151946f38
add blur (#2645)
* add blur

* docstring

* blur on disabled

* snapshot test

* Add test
2023-05-24 20:16:11 +01:00
Dave Pearson
a89c199409
Merge pull request #2646 from davep/fix-broken-xrefs
Fix some assorted documentation cross-references
2023-05-24 16:37:01 +01:00
Dave Pearson
bad2a5a064
Merge pull request #2647 from davep/fix-set-classes-docstring
Fix docstring for `DOMNode.set_classes`
2023-05-24 16:24:20 +01:00
Dave Pearson
2c184caa2a
Fix docstring for DOMNode.set_classes
The argument in the Args list was missing its name; also fixes a typo too.
2023-05-24 16:16:15 +01:00
Dave Pearson
718760dcb1
Fix some assorted documentation cross-references
Couple or so things I noticed while working on docs.
2023-05-24 15:53:56 +01:00
Dave Pearson
3e4291cf94
Remove unnecessary inclusion of Selection
It will be included by the nature of selection_list being included.
2023-05-24 15:31:27 +01:00
Dave Pearson
e7876ca001
Merge branch 'main' into multiselect 2023-05-24 15:29:37 +01:00
Dave Pearson
fb82564858
Merge pull request #2643 from davep/include-more-option-stuff-in-docs
Include more missing things from the OptionList
2023-05-24 15:28:52 +01:00
Dave Pearson
09c6ea9911
Include more missing things from the OptionList
While working on the SelectionList documentation I've noticed that even more
things have got lost from the docs relating to OptionList, likely lost when
widgets were removed from the API section of the docs.

This drags more OptionList-related types into the docs, thus providing more
links.
2023-05-24 15:21:41 +01:00
Dave Pearson
49c7b20bc1
Link mention of Strip in a docstring 2023-05-24 15:19:02 +01:00
Dave Pearson
71d7f7dd86
Merge branch 'main' into multiselect 2023-05-24 15:08:04 +01:00
Dave Pearson
910c4782f1
Add the main framework for the OptionList documentation
Lots to flesh out here still, but this gets the core framework in place.
2023-05-24 15:05:10 +01:00
Dave Pearson
113ab41c3b
Some more linking to types within the SelectionList docstrings 2023-05-24 14:58:27 +01:00
Dave Pearson
ac7a892965
Link most(all?) docstring mentions of SelectionList
Putting the hype in hypertext.
2023-05-24 14:41:11 +01:00
Dave Pearson
9c0df44b59
Supply the generic type when creating a Selection
I don't think this is *needed* as such, but it seems like the sensible thing
to do.
2023-05-24 14:35:13 +01:00
Dave Pearson
a32cfdbe40
Better linking for the docstring for MessageSelectionType 2023-05-24 14:32:32 +01:00
Dave Pearson
64dd7d0f17
Better linking for the docstring for SelectionType 2023-05-24 14:31:50 +01:00
Dave Pearson
78980670da
Merge pull request #2640 from davep/include-option-in-docs
Include `widgets.option_list.Option` in the docs
2023-05-24 14:31:27 +01:00
Dave Pearson
2874b24a87
Export genetic types for SelectionList
So these can end up in the docs.
2023-05-24 14:30:15 +01:00
Dave Pearson
7c9b3f4cd6
Include widgets.option_list.Option in the docs
Noticed this in passing; possibly dropped by accident when the widgets were
removed form the API section of the docs?
2023-05-24 14:13:17 +01:00
Dave Pearson
258181d1de
Flesh out the docstring for the selected property 2023-05-24 14:04:53 +01:00
Dave Pearson
a31c3f0774
Correct the Selection.__init__ docstring 2023-05-24 14:03:09 +01:00
Dave Pearson
9742144e8c
Remove a note that isn't relevant any more 2023-05-24 13:00:20 +01:00
Dave Pearson
2e37541d70
Correct the types in a copied docstring 2023-05-24 12:59:20 +01:00
Dave Pearson
64ed982fd4
Make it very clear when SelectedChanged is posted 2023-05-24 12:57:13 +01:00
Dave Pearson
b113663221
Add a note about SelctionToggled vs SelectedChanged 2023-05-24 12:55:31 +01:00
Dave Pearson
65375e88b6
Remove an outdated note 2023-05-24 12:39:33 +01:00
Dave Pearson
9459a4efd7
Merge pull request #2636 from davep/select-reactive-table-fix 2023-05-24 10:52:29 +01:00
Dave Pearson
ed0aa78f22
Merge pull request #2637 from davep/option-list-docs-typo-fix 2023-05-24 10:47:25 +01:00
Dave Pearson
7f3efcf6ed
Fix a typo in the OptionList messages list 2023-05-24 10:41:55 +01:00
Dave Pearson
7d635915fa
Fix Select reactives table layout
The escaped | wasn't being rendered correctly as it was inside back-ticks.
2023-05-24 10:31:34 +01:00
Dave Pearson
cb05cfff53
Test that the control of selection list events is always correct 2023-05-24 10:21:40 +01:00
Dave Pearson
0a63748573
Add a test for later addition of selected selections 2023-05-24 10:16:25 +01:00
Dave Pearson
7110b30b44
Make sure adding a selection later updates selected 2023-05-24 10:16:06 +01:00
Dave Pearson
d3fe23f0bc
Allow passing a Selection into a SelctionList
Up until now I've only been allowing tuples; mostly a hangover from the
initial take on this. Things have drifted a bit now and I feel it makes
sense to allow Selection instances in too.
2023-05-24 10:09:53 +01:00
Dave Pearson
da1faf8fb9
Allow for storing the initial state of a selection 2023-05-24 10:09:21 +01:00
Dave Pearson
2e540548f8
Add a test that removed selected selections are removed from selected 2023-05-24 09:19:56 +01:00
Dave Pearson
9d6e977e0e
Test messages when toggling a selection via user input 2023-05-24 09:15:43 +01:00
Dave Pearson
56103c52e7
Ensure we log any OptionList messages in the messages test
We don't actually want to see them, we don't expect to see them, so here I
make a point of logging them so we can be sure we *don't* see them.
2023-05-24 09:09:40 +01:00
Rodrigo Girão Serrão
2c03956049 Fix type hint. 2023-05-23 17:01:20 +01:00
Dave Pearson
50d77b231f
Add tests for the wrong sized tuple
While type checking picks this up, not everyone uses type checking.
2023-05-23 16:45:53 +01:00
Dave Pearson
9f6d35b871
Start unit tests for the actual selected property 2023-05-23 16:26:28 +01:00
Dave Pearson
c448fa1ea0
Add unit tests for selection list messages 2023-05-23 15:48:34 +01:00
Rodrigo Girão Serrão
3308cdde1c Use FIFOCache.
Related comments: https://github.com/Textualize/textual/pull/2604#discussion_r1202431626
2023-05-23 15:32:53 +01:00
Rodrigo Girão Serrão
239e5eebc6 Use workers to get suggestions. 2023-05-23 15:16:24 +01:00
Dave Pearson
f9780d0346
Add basic selection list creation unit tests 2023-05-23 15:13:46 +01:00
Rodrigo Girão Serrão
e63ec577cd Address review feedback. 2023-05-23 11:46:05 +01:00
Dave Pearson
d38780ba97
Ensure we don't try and post messages before the widget is ready 2023-05-23 11:45:31 +01:00
Rodrigo Girão Serrão
bc92cf57e7 Add auto focus to app.
Related issues: #2594.
2023-05-23 11:32:40 +01:00
Dave Pearson
d5799377a2
Document _selected
It's not for public consumption, but it's useful for anyone reading the code.
2023-05-23 11:31:07 +01:00
Dave Pearson
bee438bc53
Get the selection value tracker in place before calling the superclass 2023-05-23 11:30:04 +01:00
Dave Pearson
fefb33a23b
Add a docstring to the internal copy of the selection value 2023-05-23 11:07:45 +01:00
Rodrigo Girão Serrão
124e62e41b Changelog. 2023-05-23 10:50:00 +01:00
Rodrigo Girão Serrão
297549c7d8 V2 of input suggestions API. 2023-05-23 10:47:22 +01:00
Dave Pearson
81abac1c68
Tidy up some docstrings
Mainly adding missing return values, that sort of thing.
2023-05-23 10:46:00 +01:00
Dave Pearson
23d899935f
Correct a docstring 2023-05-23 10:36:59 +01:00
Dave Pearson
ff404e2bbf
Only refresh on deselect if something was deselected 2023-05-23 10:35:48 +01:00
Dave Pearson
d861cced97
Improve how the _all methods work
Deciding if there was a change when turning all on or off by looking at the
before an after counts was fine, but it's not a sensible way of seeing if
there was a change during a toggle. So this swaps things up a bit and has
the core selection changing methods return a flag to say if they actually
made a change or not.
2023-05-23 10:33:39 +01:00
Dave Pearson
db273ea9ff
Add a method for toggling all options 2023-05-23 10:26:16 +01:00
Dave Pearson
a4148d028b
Add a method for deselecting all options 2023-05-23 10:22:01 +01:00
Dave Pearson
3ce04c814a
Add a method of selecting all selection options 2023-05-23 10:20:00 +01:00
Dave Pearson
a2fc3fad43
Add a method to apply a state change to all selection options 2023-05-23 10:19:20 +01:00
Dave Pearson
4c9afca8fd
Add a docstring for the component classes. 2023-05-23 10:02:07 +01:00
Dave Pearson
195e9b4021
Add the docstring for the bindings 2023-05-23 09:50:44 +01:00
Dave Pearson
ca07d7a58d
Fill in the blanks with docstrings
Adding back docstrings from overriding methods. Initially I was thinking it
made sense to keep them empty, allowing for any inheriting of the
docs (if/when our documentation generation system does that); but in most
cases there's a subtle difference in what's supported in terms of parameters
or return values so it makes sense to tweak the docs a wee bit.
2023-05-23 09:47:45 +01:00
Dave Pearson
607939e41d
Merge pull request #2626 from davep/option-list-typo-fix
Fix a copy/pasteo in an option list docstring
2023-05-23 09:45:37 +01:00
Dave Pearson
10bccfd9ee
Fix a copy/pasteo in an option list docstring 2023-05-23 09:27:40 +01:00
Dave Pearson
9e6bf085b8
Extend add_option so that it accepts selections and selection tuples 2023-05-23 09:24:29 +01:00
Will McGugan
be49aabefe
remove markup, simplify repr (#2623)
* remove markup, simplify repr

* changelog

* remove rendundant repr (thanks Paul)

* changelog
2023-05-22 20:26:37 +01:00
Dave Pearson
f530efda2a
Extend SelectionList.add_options to better support the selection list 2023-05-22 15:58:08 +01:00
Dave Pearson
55f887e66e
Merge pull request #2610 from davep/directory-tree-alt-path
Let child classes of DirectoryTree override Path creation
2023-05-22 15:56:50 +01:00
Dave Pearson
68250e6ce3
Override _remove_option to update the selected values
The developer could remove an option that is selected, so we need to catch
that this has happened and update the collection of selected values.
2023-05-22 15:25:11 +01:00
Dave Pearson
189181ba33
Add support for sending a message when the selection list changes
The developer using this may wish to react to UI changes being made, but
they may also want to just know when the collection of selected values has
changed -- this could happen via code so won't get any UI/IO messages. So
this adds a message that is always sent when a change to the collection of
selected values happens.
2023-05-22 15:23:11 +01:00
Dave Pearson
a25ef78a7f
Fully hint the type of the selection list in mesages 2023-05-22 15:02:32 +01:00
Dave Pearson
13e796bfea
Ensure selections are only one line in length 2023-05-22 14:56:21 +01:00
Rodrigo Girão Serrão
724fedc442
Merge pull request #2621 from Textualize/leave-footer-push-modal-screen
Leave footer when pushing modal screen
2023-05-22 14:43:05 +01:00
Rodrigo Girão Serrão
d48a127ffe
Merge pull request #2540 from Textualize/screen-modes
Implements screen modes
2023-05-22 14:27:35 +01:00
Rodrigo Girão Serrão
c64111bcb5 Add property alias.
Related comment: https://github.com/Textualize/textual/pull/2540\#discussion_r1196634789
2023-05-22 14:21:11 +01:00
Dave Pearson
51d1dade5c
Ensure access to options is actually access to selections 2023-05-22 14:18:20 +01:00
Dave Pearson
07515e22c8
Add an interface for changing selections from code 2023-05-22 14:01:09 +01:00
Rodrigo Girão Serrão
c32d5d3c25 Add regression test for #2606. 2023-05-22 13:53:58 +01:00
Dave Pearson
dae0cd7c02
Raise a widget-specific exception when given a bad option 2023-05-22 13:21:25 +01:00
Dave Pearson
1d925da551
Ensure selection casting works in earlier Pythons 2023-05-22 13:20:49 +01:00
Dave Pearson
127d93a260
Remove a couple of annoying type errors
The code worked and was fine, but pyright was getting upset at the typing.
This clears that up.
2023-05-22 13:13:37 +01:00
Rodrigo Girão Serrão
33a470f569 Fix footer highlight when pushing modal. 2023-05-22 11:45:40 +01:00
Dave Pearson
424c30fcf1
Add a method of getting at the selected values 2023-05-22 11:40:03 +01:00
Dave Pearson
6bc2a6ebd2
Add support for a selection message
In doing so, change up how the toggling happens.
2023-05-22 11:25:56 +01:00
Dave Pearson
41b1c08db5
Docstring tweak 2023-05-22 11:16:17 +01:00
Dave Pearson
4dab6d3b57
Start the SelectionList messages
It would be nice to just inherit form the OptionList messages, but the
naming of the properties wouldn't quite make sense, and there's also the
generic typing issue too. So here I start to spin up my own messages down
here.

Also, as an initial use of this, grab the OptionList highlight message and
turn it onto one of out own.
2023-05-22 11:09:18 +01:00
Rodrigo Girão Serrão
5c1c62edd0
Merge pull request #2607 from Textualize/placeholder-cycle
Placeholder color cycle
2023-05-22 10:50:11 +01:00
Rodrigo Girão Serrão
4e86e655d6
Merge branch 'main' into placeholder-cycle 2023-05-22 10:43:12 +01:00
Rodrigo Girão Serrão
5e04a4d4de
Add description to work decorator. (#2605)
* Add description to work decorator.

* Fix stutter.
2023-05-22 10:32:23 +01:00
Dave Pearson
a570b4403e
Swap the order of the prompt and value for selection items
Mostly I feel it makes sense to have the value first, and the actual prompt
second (based on no reason at all); but given that Select does it prompt
then value, this should conform to the same approach.
2023-05-22 10:30:22 +01:00
Luper Rouch
33da5c1afc
Fix App.BINDINGS type (#2620)
The implicit type was creating mypy errors when defining bindings with
tuples. For example:

    class MyApp(App):
        BINDINGS = [("q", "quit", "Quit")]

Would give the error:

    error: List item 0 has incompatible type "Tuple[str, str, str]"; expected "Binding"  [list-item]
2023-05-22 10:27:31 +01:00
Dave Pearson
8339e8b513
Merge branch 'main' into multiselect 2023-05-22 09:49:39 +01:00
Will McGugan
7d0d1ac5c8
Bump0260 (#2617)
* full map

* docstring changelog

* changelog

* simplify, add comment
2023-05-20 11:30:42 +01:00
Dave Pearson
7dd05e3ec0
Let child classes of DirectoryTree override Path creation
With #1719 in mind, and as an alternative to #2608, this allows for a child
class of DirectoryTree to specify how a fresh `Path` should be created. The
idea here being that whatever is created should be of the `Path` type, but
can have other abilities.
2023-05-19 10:15:04 +01:00
Dave Pearson
c0b5832183
Explain things a wee bit better for the future reader 2023-05-18 16:34:30 +01:00
Rodrigo Girão Serrão
6523fbaff1 Fix tests. 2023-05-18 16:27:09 +01:00
Rodrigo Girão Serrão
c85e428228 Fix placeholder color cycling. 2023-05-18 16:24:07 +01:00
Dave Pearson
6bea9f86d3
Sprinkle bold over all the buttons
At some point I should go through these styles and start to collapse/dedupe
them.
2023-05-18 16:22:47 +01:00
Dave Pearson
bc126ce036
Build the selection list back in __init__ again
Now that I'm no longer having to dodge issues with getting component classes
before the DOM has spun up, I can go back to the simpler method of setting
up the selections.

This also means I can drop Mount handling.
2023-05-18 16:20:32 +01:00
Rodrigo Girão Serrão
75606c8dfd Add explicit sleep. 2023-05-18 16:11:02 +01:00
Dave Pearson
12416d81d1
Remove unused import of Text 2023-05-18 15:42:45 +01:00
Dave Pearson
beb3645aa1
Remove Selection's knowledge of its parent
This isn't needed any more now that I'm doing everything in render_line.
2023-05-18 15:41:14 +01:00
Dave Pearson
b63e85f81c
Remove _make_label
I don't need this any more.
2023-05-18 15:39:59 +01:00
Dave Pearson
8459a8c4f9
Swap to overriding render_line
More experimenting with overriding OptionList, and rather than trying to
swap out and around the prompt under the hood, I got to thinking that it
made more sense to perhaps override render_line.

So far so good...
2023-05-18 15:20:01 +01:00
Rodrigo Girão Serrão
ad986b127d Merge branch 'main' into screen-modes 2023-05-18 15:11:21 +01:00
Rodrigo Girão Serrão
d65daf81c0 Address review comments. 2023-05-18 15:07:52 +01:00
Rodrigo Girão Serrão
97f30a21fb Add tests. 2023-05-18 14:50:28 +01:00
Rodrigo Girão Serrão
bfdaf02f66 Add snapshot test. 2023-05-18 14:26:32 +01:00
Rodrigo Girão Serrão
03a43521dd Fix test. 2023-05-18 14:02:51 +01:00
Rodrigo Girão Serrão
0c520f13ce Change naming. 2023-05-18 13:58:59 +01:00
Rodrigo Girão Serrão
f464241fd6 Implement auto-completion. 2023-05-18 13:41:37 +01:00
Dave Pearson
0c18839c8a
WiP selection list
I think I'm going to give up on basing this off OptionList. It's close
enough that inheriting from it and doing more makes some sense, but it's
also just far enough away that it's starting to feel like it's more work
that is worthwhile and it'll be easier to hand-roll something fresh.
2023-05-18 13:00:23 +01:00
Will McGugan
49e1080279 update howto 2023-05-18 10:03:26 +01:00
Will McGugan
8fd5aec454 fix layout 2023-05-18 09:28:33 +01:00
Dave Pearson
9d0a6d8eac
Merge branch 'main' into multiselect 2023-05-18 08:56:11 +01:00
Will McGugan
ff5665051b
Release0250 (#2598)
* version bump

* changelog
2023-05-17 16:30:36 +01:00
Rodrigo Girão Serrão
a9c8b59df5
Use default string on error inside work. (#2595)
Related issues #2588.
2023-05-17 16:27:32 +01:00
Dave Pearson
84de8a8949
Typo fix (#2596) 2023-05-17 16:26:33 +01:00
darrenburns
e25c6290ba
Add classes to Tab widget (#2589)
* Add classes to Tab widget

* Update CHANGELOG
2023-05-17 16:21:32 +01:00
Dave Pearson
7ff205bc29
Merge pull request #2545 from davep/directory-tree-work-in-worker
Load `DirectoryTree` contents in a worker
2023-05-17 15:42:51 +01:00
Rodrigo Girão Serrão
179a85058e
Merge pull request #2581 from Textualize/auto-focus-improv
AUTO_FOCUS targets first focusable widget.
2023-05-17 15:32:08 +01:00
Will McGugan
f820598846
How to (#2592)
* words

* how to

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-17 15:30:31 +01:00
Dave Pearson
abbffbfa6a
Code tidy
As per https://github.com/Textualize/textual/pull/2545#discussion_r1196591147
2023-05-17 15:30:13 +01:00
Dave Pearson
e381c26165
Create a single method for adding a node to the load queue
In doing so fix an issue where, after the previous change, I wasn't marking
the root of the tree as loaded.
2023-05-17 15:27:01 +01:00
Dave Pearson
522d56c601
Be more optimistic about when the node content is loaded
As per https://github.com/Textualize/textual/pull/2545#discussion_r1196589864
2023-05-17 15:21:38 +01:00
Dave Pearson
86bee6c495
Rename _to_load to _load_queue
As per https://github.com/Textualize/textual/pull/2545#discussion_r1196580316
2023-05-17 15:17:05 +01:00
Dave Pearson
2a91e13ca3
Mark each load task as done when it's done 2023-05-17 14:45:08 +01:00
Dave Pearson
3f6472823e
Merge branch 'main' into directory-tree-work-in-worker 2023-05-17 14:19:59 +01:00
Dave Pearson
dadd7c0a14
Guard against PermissionError
Normally it's not a great idea to eat and hide exceptions within library
code; but I think it makes sense to make an exception here. This is a UI
element that lets the user navigate about a filesystem. If there is
something they don't have permission for, that should not cause an
exception, it should just give up with the best possible outcome.

If actually doing something with the exception is important, the developer
using this could use the filter to do tests and act accordingly.

See #2564.
2023-05-17 14:13:52 +01:00
Dave Pearson
c04bbd1e2e
Ensure the loader kicks off when starting up with . as the directory 2023-05-17 13:41:58 +01:00
Dave Pearson
26e6dbbfa3
Swap to a dual-working approach
Plan C; or is it plan D? Something like that. Anyway... in this approach we
keep a single "forever" async task worker per directory tree, which in turn
looks at the async Queue, and when a new node appears on it it starts a
short-lived thread to load the directory data.

This seems to be working fine on macOS. Next up is testing on Windows.
2023-05-17 13:28:07 +01:00
Dave Pearson
ecde90b1c3
Remove unused import
The code that was using this was removed earlier.
2023-05-17 12:29:36 +01:00
Dave Pearson
a42250daa3
async Queue get blocks when empty, so don't handle empty exception 2023-05-17 12:29:03 +01:00
Rodrigo Girão Serrão
38f9500642 Fix test. 2023-05-17 11:35:10 +01:00
Dave Pearson
82924c2d7c
Make the main load worker into a asyncio task
Turns out, there's a maximum number of threads you can have going in the
underlying pool, that's tied to the number of CPUs. As such, there was a
limit on how many directory trees you could have up and running before it
would start to block all sorts of operations in the surrounding
application (in Parallels on macOS, with the Windows VM appearing to have
just the one CPU, it would give up after 8 directory trees).

So here we move to a slightly different approach: have the main loader still
run "forever", but be an async task; it then in turn farms the loading out
to threads which close once the loading is done.

So far tested on macOS and behaves as expected. Next to test on Windows.
2023-05-17 11:34:05 +01:00
Dave Pearson
64d9c60267
Revert experimental code 2023-05-17 11:26:33 +01:00
Rodrigo Girão Serrão
a058fe53eb Make test clearer. 2023-05-17 11:15:56 +01:00
Dave Pearson
6876a041a4
More Windows thread oddness experimenting 2023-05-17 11:02:04 +01:00
Dave Pearson
80d00ce4bf
Logging and experimenting for Windows 2023-05-17 10:49:46 +01:00
Rodrigo Girão Serrão
dea133d357
Merge branch 'main' into auto-focus-improv 2023-05-17 10:28:54 +01:00
Rodrigo Girão Serrão
45686c8aca Fix tests. 2023-05-17 10:27:57 +01:00
Rodrigo Girão Serrão
8399a31a46 Post ScreenResume to default screen.
When the default screen is first created it was not getting the event ScreenResume. All other screens receive a ScreenResume when first created and _all_ screens (the default one and custom screens) receive this event when they become the active screen again, so this was kind of an edge case that needed the event to be posted by hand.
Related comments: https://github.com/Textualize/textual/pull/2581\#issuecomment-1550231559
2023-05-17 10:09:52 +01:00
Rodrigo Girão Serrão
765c7ce037 Simplify auto focus code.
Related comments: https://github.com/Textualize/textual/pull/2581\#discussion_r1195595104.
2023-05-17 10:01:01 +01:00
Dave Pearson
471ab159ca
Merge branch 'main' into multiselect 2023-05-17 09:21:12 +01:00
Will McGugan
c12fa0e4da
fix for dark switch (#2585) 2023-05-17 07:44:36 +01:00
Glenn McAllister
8753aa5ed0
Update poetry-core requirement (#2572)
Related issues: #2562
2023-05-16 21:36:24 +01:00
Will McGugan
53e765f7d6
Avoid docks when scrolling (#2571)
* handle docked layers

* handle scroll better

* snapshot update

* remove commented out code

* superflous

* dock gutter

* snapshit

* snapshit test

* changelog

* mistake

* docstrings

* changelog

* whitespace

* missing punctuation

* ofx docstring

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-16 21:34:59 +01:00
Will McGugan
3a17a76233
Exit debug (#2554)
* show single error by default

* changelog

* show numbers of errors

* changelog
2023-05-16 21:34:34 +01:00
Will McGugan
abb7705ed0
wait for screen (#2584)
* wait for screen

* comments and changelog

* wait for screen after keys

* extra wait for animation

* comment

* comment

* docstring
2023-05-16 21:06:09 +01:00
Dave Pearson
e69e57d7c0
Remove unused import
Recent changes meant it wasn't needed any more.
2023-05-16 20:53:18 +01:00
Rodrigo Girão Serrão
634789ae93 Add tests to screen modes. 2023-05-16 17:40:09 +01:00
Dave Pearson
58f0d11a93
Change to a single loader thread with a queue 2023-05-16 16:41:36 +01:00
Dave Pearson
926c0a2b4f
Reset all DirectoryTree worker changes
After deciding
https://github.com/Textualize/textual/pull/2545#issuecomment-1547544057 it
makes more sense to roll back to the state of `main` than to try and get to
where I want to be from where we've decided we didn't want to be.

Can't get there from here, so let's go rogue-like on this PR...
2023-05-16 15:29:36 +01:00
Dave Pearson
804d85a2c9
Merge branch 'main' into directory-tree-work-in-worker 2023-05-16 15:16:31 +01:00
Dave Pearson
83e4be77db
Merge pull request #2567 from davep/issue/2557/select-update
Fix clearing an OptionList
2023-05-16 15:11:29 +01:00
Dave Pearson
1ebfe2f418
Update the snapshits 2023-05-16 14:38:11 +01:00
Dave Pearson
3d2e3d9092
Add a snapshot test for a rebuilt Select
This helps test the practical impact of the fix added for #2557.
2023-05-16 14:34:18 +01:00
Will McGugan
faa67a8293
Screen docs (#2579)
* screen docs

* docstrings

* modal example

* docstring

* docstrings

* Apply suggestions from code review

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-05-16 13:44:06 +01:00
Dave Pearson
32fa259c94
Add a TODO comment to the effect that this is a temp fix 2023-05-16 13:38:08 +01:00
Dave Pearson
f12aeb00d2
Remove forced content tracking refresh in clear_options
While the fix for #2557 likely isn't *the* fix (see #2582 for some context
around that), it is a fix that works for now. As such, with the change,
there was a double attempt to refresh the content tracking in the clearing
of options in the OptionList, which shouldn't be necessary.

This removes that.
2023-05-16 13:33:57 +01:00
Rodrigo Girão Serrão
2d9a83e243
Merge pull request #2577 from Textualize/gh-actions
Update workflows.
2023-05-16 13:24:59 +01:00
Dave Pearson
dde3ad397f
Remove duplicated setting of height for Select (#2576) 2023-05-16 12:01:45 +01:00
Rodrigo Girão Serrão
a9a04dc37a Run workflows when they are changed.
Related comments: https://github.com/Textualize/textual/pull/2577\#issuecomment-1549411724
2023-05-16 11:43:31 +01:00
Rodrigo Girão Serrão
4b22234b24
Merge branch 'main' into auto-focus-improv 2023-05-16 11:40:13 +01:00
Rodrigo Girão Serrão
a6ee867ee3 Fix tests. 2023-05-16 11:39:38 +01:00
Rodrigo Girão Serrão
41d11996e8
Merge pull request #2580 from Textualize/dismiss-top
Error when dismissing non-active screen.
2023-05-16 11:38:31 +01:00
Rodrigo Girão Serrão
93f4de918c Fix circular import. 2023-05-16 11:30:14 +01:00
Rodrigo Girão Serrão
b592ac077a AUTO_FOCUS targets first focusable widget.
Related issues: #2578.
2023-05-16 11:27:24 +01:00
Rodrigo Girão Serrão
7a8d6920e8 Error when dismissing non-active screen.
Related issues: #2575.
2023-05-16 11:14:54 +01:00
Rodrigo Girão Serrão
9b09b19e5f Update workflows.
This caches the virtual environment so we don't have to download it every time (the cache can be cleared from the repository > Actions > Caches (on the left).

We also split black formatting into a separate workflow.
This means we can run black ONLY when *.py files are changed.
It also means all other testing jobs don't need to _also_ check formatting.
2023-05-16 10:18:30 +01:00
Will McGugan
6147c28dbf
arrange refactor (#2569)
* arrange refactor

* Apply suggestions from code review

Co-authored-by: Dave Pearson <davep@davep.org>

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Dave Pearson <davep@davep.org>
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-15 14:53:17 +01:00
Rodrigo Girão Serrão
1bba3973bf
Merge pull request #2568 from Textualize/empty-paste
Fix empty paste
2023-05-15 14:31:14 +01:00
Rodrigo Girão Serrão
720bd37bba Consume event. 2023-05-15 14:22:16 +01:00
Rodrigo Girão Serrão
f02e2fcdd9 Short-circuit paste on empty text.
Related comments: https://github.com/Textualize/textual/pull/2568#discussion_r1193790630
2023-05-15 14:12:22 +01:00
Rodrigo Girão Serrão
81289c328a Fix empty paste.
Related issues: #2563.
2023-05-15 13:25:01 +01:00
Rodrigo Girão Serrão
fe7812d94d Add regression test for #2563. 2023-05-15 13:24:48 +01:00
Dave Pearson
aff9bcdf93
Fix clearing an OptionList
See #2557, credit to Will:

  https://github.com/Textualize/textual/issues/2557#issuecomment-1546883815
2023-05-15 11:30:26 +01:00
Dave Pearson
d296fc5f04
Allow for passing in a selection as a tuple 2023-05-15 11:11:04 +01:00
Rodrigo Girão Serrão
83618db642
Merge pull request #2527 from Textualize/auto-focus
Add `auto_focus` to screens
2023-05-15 11:04:15 +01:00
Rodrigo Girão Serrão
0b6e3b3040
Merge branch 'main' into auto-focus 2023-05-15 10:41:15 +01:00
Rodrigo Girão Serrão
4db54eac4b
Merge pull request #2530 from Textualize/move-child-no-op
Moving child before/after self is a no-op.
2023-05-15 10:39:57 +01:00
Rodrigo Girão Serrão
c967661699
Merge branch 'main' into move-child-no-op 2023-05-15 10:31:43 +01:00
Dave Pearson
258180c996
Add a selected flag to the Selection 2023-05-15 10:25:30 +01:00
Dave Pearson
8208388cf9
Allow for type unions under Python 3.7 2023-05-15 10:13:28 +01:00
Will McGugan
d266e3685f
snapshot update (#2555) 2023-05-12 18:57:53 +02:00
Will McGugan
d061065dcc optimization for divide 2023-05-12 18:29:51 +02:00
Will McGugan
c2e7b619f1 Revert "virtual size and docks"
This reverts commit 9a134b4920.
2023-05-12 15:53:47 +02:00
Will McGugan
4e069abd2e Revert "remove total region update"
This reverts commit 47970dd622.
2023-05-12 15:49:39 +02:00
Will McGugan
47970dd622 remove total region update 2023-05-12 15:45:25 +02:00
Will McGugan
9a134b4920 virtual size and docks 2023-05-12 15:36:49 +02:00
Will McGugan
4434b59982 spacing diagram 2023-05-12 14:03:53 +02:00
Dave Pearson
a065ff572e
Correct spelling in a docstring (#2552) 2023-05-12 09:34:27 +02:00
Rodrigo Girão Serrão
4d287837a2 Refactor screen stack modes. 2023-05-11 16:42:49 +01:00
Dave Pearson
e0ac60ce03
Initial framework for the SelectionList
Nothing here actually implements a selection list yet; this just sets out
the very basic framework of the widget, as it inherits form OptionList. The
key things here are:

1. It introduces a Selection class, which is an Option with a typed value.
2. The SelectionList is also typed and expects Selections of that type.
2023-05-11 16:19:13 +01:00
Dave Pearson
5f839da684
Merge branch 'main' into directory-tree-work-in-worker 2023-05-11 15:32:17 +01:00
Dave Pearson
4d225b8ebb
Correct a comment typo 2023-05-11 15:22:19 +01:00
Rodrigo Girão Serrão
4fc56f6db8
Merge pull request #2547 from Textualize/footer-css
Changelog.
2023-05-11 15:12:58 +01:00
Rodrigo Girão Serrão
8dc801fec7 Changelog. 2023-05-11 15:03:21 +01:00
Rodrigo Girão Serrão
a9c38793de
Merge pull request #2546 from Textualize/footer-css
Use footer--description component class.
2023-05-11 15:01:01 +01:00
Rodrigo Girão Serrão
58cf825eb4 Use footer--description component class.
Related issues: #2544.
2023-05-11 12:19:29 +01:00
Dave Pearson
c45126b21c
Update the ChangeLog 2023-05-11 11:19:30 +01:00
Dave Pearson
9b41b743fe
Remove the artificial slowdown 2023-05-11 11:13:19 +01:00
Dave Pearson
05eeaa7679
Tidy up _load_directory
Explain some about the decisions made, and also throw in a bit of
over-cautious worker cancellation checking.
2023-05-11 10:53:07 +01:00
Dave Pearson
82a08177af
Cancel any loads when resetting the tree 2023-05-11 09:59:57 +01:00
Dave Pearson
9ae8e47c6c
Add a method for cancelling all of the load jobs
This marks all current jobs as cancelled and also removes all pending jobs.
2023-05-11 09:59:18 +01:00
Dave Pearson
08246d84ac
Don't post the finished message if we've been cancelled 2023-05-11 09:57:30 +01:00
Dave Pearson
791f2ea189
Ensure we don't create a job for a node that's already being loaded 2023-05-11 09:16:54 +01:00
Dave Pearson
ce7a78db69
Have the reset method take part in background loading
One instance of a call to _load_directory that I missed.
2023-05-11 09:12:10 +01:00
Dave Pearson
4ead43c149
Set up the job tracking before setting the path
Setting the path to anything other than "." is going to result in a reset
happening, so we need the tracking support in place first.
2023-05-11 09:10:55 +01:00
Dave Pearson
df0f73ba3b
Remove debug logging 2023-05-11 08:35:36 +01:00
Dave Pearson
05dc877a24
Check for the worker being cancelled
So far this is working fine, but there was an issue where, if the load of a
very large directory was started, and then the application was cancelled
right away, the application would close down but there would be a long pause
until the shell prompt came back, the cause presumably being that we were
waiting for that particular thread to end.

So here I make sure I check the cancelled state of the worker. This would
also suggest that, while I turned the use of iterdir into a loop so I could
throw the sleep in to emulate a slow directory load, I *actually* want to do
this in a loop so I can test the cancelled state as we stream in the
directory content.
2023-05-11 08:31:01 +01:00
Will McGugan
0dc89dc2a8 wrong axis 2023-05-10 22:25:04 +02:00
Will McGugan
5a02f7335e fix docstrings 2023-05-10 22:21:30 +02:00
Dave Pearson
39971876d0
WiP: Throttle back the number of concurrent loads of a DirectoryTree
Having got the initial version of background loading of nodes in the
directory tree working, this moves to a gentler approach where only so many
loads run at once, and a queue of jobs that need to be completed is kept.

This is an end-of-coding-session WiP commit; there's more to come on this.
But at the moment I'm happy with the way it's going.
2023-05-10 16:26:36 +01:00
Rodrigo Girão Serrão
6e19772563 Add ability to switch between modes. 2023-05-10 16:06:16 +01:00
Rodrigo Girão Serrão
9f3f2033b5 Add default mode. 2023-05-10 14:59:00 +01:00
Dave Pearson
cd05d6cad6
Merge branch 'main' into directory-tree-work-in-worker 2023-05-10 14:22:36 +01:00
Dave Pearson
2d75ca0d77
Merge pull request #2536 from davep/expand-tree-expand-messages
Ensure that `TreeNode` messages are posted when via-API changes are made
2023-05-10 14:18:24 +01:00
Rodrigo Girão Serrão
70e97c6703
Merge pull request #2532 from Textualize/sub-title-str
Allow setting (sub)title of any type.
2023-05-10 13:20:47 +01:00
Rodrigo Girão Serrão
8dd627b0f4
Merge branch 'main' into sub-title-str 2023-05-10 13:10:48 +01:00
Dave Pearson
8b9a8e4174
Simplify _load_directory
Move the node population code into its own method, the idea here being that
the update happens in one call to call_from_thread rather than spawning lots
of calls to it.
2023-05-10 12:06:11 +01:00
Dave Pearson
d673175e62
Experimenting with placing _load_directory in a worker
This isn't the final form, not even close, this is more to help test out the
idea and how well it will work. Note the very deliberate sleep in the code
that's there to emulate loading from a slow blocking source.

This will be removed and tidied up before a final PR, of course. The main
aim here is to emulate a worst-case scenario so that the use of a worker can
be tried out with some confidence.

See #2456.
2023-05-10 11:17:02 +01:00
Dave Pearson
28be54d10d
Merge branch 'main' into expand-tree-expand-messages 2023-05-10 10:12:58 +01:00
Dave Pearson
f19f46bba0
Merge pull request #2519 from davep/cygnus-x-1
Fix for `resolve_fraction_unit` zero division error (#2502)
2023-05-10 10:10:55 +01:00
Dave Pearson
c7fc66fa6c
Ensure that TreeNode messages are posted when via-API changes are made
Until now the Tree.NodeExpanded and Tree.NodeCollapsed messages were only
sent out when changes were made to the tree by user interaction. This meant
that if any changes were made with the TreeNode expand, expand_all,
collapse, collapse_all, toggle or toggle_all API calls no messages would be
sent.

This PR corrects this.

The work here is, in part, required for #2456 (DirectoryTree lazy-loads
directory information on node expansion so if someone is expanding nodes
under code control the DirectoryTree never gets to know that it should load
a directory's content) and will build on #1644, essentially adding a missing
aspect to the latter PR.
2023-05-10 09:24:07 +01:00
Dave Pearson
0eeadf9ae9
Update the CHANGELOG 2023-05-09 21:01:31 +01:00
Rodrigo Girão Serrão
41466be007 Add docstrings. 2023-05-09 17:10:08 +01:00
Rodrigo Girão Serrão
fcf9806f6b Add clarifying comment. 2023-05-09 17:00:07 +01:00
Rodrigo Girão Serrão
17af473558 Annotate no-op. 2023-05-09 16:58:56 +01:00
Rodrigo Girão Serrão
e8baf52bdd Allow setting (sub)title of any type.
Related issues: #2521.
2023-05-09 16:56:56 +01:00
Rodrigo Girão Serrão
3245eb38bb Make auto-focus a class var.
Related comments: https://github.com/Textualize/textual/pull/2527\#discussion_r1188776849
2023-05-09 16:44:37 +01:00
Dave Pearson
30a20ac8da
Break iterdir out into a method of its own for easy testing
As I work on what's to come (loading DirectoryTree with a worker), I'm going
to want to try and construct slow loads so I can test the effectiveness of
the changes. This means a desire to fake a very slow source of directory
information. So let's drop this into its own method so we can then do silly
things like add a sleep to really show stuff down.
2023-05-09 16:41:17 +01:00
Rodrigo Girão Serrão
eafe6b1786 Moving child before/after self is a no-op.
Related issues: #1743.
2023-05-09 15:57:23 +01:00
Dave Pearson
8855471125
Merge pull request #2522 from davep/move-widget-enhanced-testing
Make the widget moving tests more granular and add more tests
2023-05-09 15:07:59 +01:00
Rodrigo Girão Serrão
8d3f69a04d Add auto_focus attribute to screens. 2023-05-09 14:57:50 +01:00
Rodrigo Girão Serrão
ed4d811451 Add tests for Screen auto focus.
Related issues: #2457.
2023-05-09 14:55:18 +01:00
Dave Pearson
a0558e87d8
Merge branch 'main' into cygnus-x-1 2023-05-09 13:38:16 +01:00
Dave Pearson
8d7ae4d1fb
Ensure that remaining fraction is always above zero 2023-05-09 13:36:32 +01:00
Dave Pearson
ee70713002
Simplify the resolver zero division bug unit test 2023-05-09 13:35:55 +01:00
Dave Pearson
d3de6d1587
Make the widget moving tests more granular and add more tests
Adds two (currently xfail) tests to illustrate #1743
2023-05-09 11:19:00 +01:00
Dave Pearson
a77dbf4bee
Tentative fix for resolve_fraction_unit ZeroDivision error
I'll admit to not really following what the code does, so will really need
someone with a better understanding of the aim of this code to look over the
proposed fix; but based on a bunch of runs and hand-debugging, this seems to
do the job.

This passes all existing tests and also removes the reported error.

On the other hand I'm not confident that I'm *not* just masking an
underlying issue with this function.
2023-05-09 10:38:09 +01:00
Dave Pearson
a5cc96cbc7
Make a pass of the #2502 test a fail
If/when I get this actually passing, I want the test to appear to fail so I
know things have changed for the better.

This makes sense, trust me.
2023-05-09 09:44:51 +01:00
Dave Pearson
052ec83b7a
Make the test as small as possible 2023-05-09 09:44:30 +01:00
Dave Pearson
089dce1b41
Add a unit test for #2502
Currently marked as xfail, but this gets it down to the most basic level.
2023-05-09 09:39:12 +01:00
Kim van Wyk
dea21a00ca
minor typo (#2515) 2023-05-08 20:01:45 +01:00
Will McGugan
e3115c50bf
fix for code browser type error (#2514) 2023-05-08 18:42:10 +01:00
Will McGugan
cf7e8a9cb1 update roadmap 2023-05-08 18:10:40 +01:00
Will McGugan
dc102563e9
changelog and release post (#2513)
* changelog and release post

* fix version

* link Select

* remove superfluous css

* Update docs/blog/posts/release2-24-0.md

Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>

* Update docs/blog/posts/release2-24-0.md

Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>

---------

Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>
2023-05-08 17:45:06 +01:00
Rodrigo Girão Serrão
855c90d4f0
Extend @on decorator to filter matchable attributes (#2498)
* Add tests for #2484.

* Implement @on extension.

[skip ci]
Related issues: #2484.

* Changelog.

* Add missing @on test.

* Remove debug prints.

* Document changes.

* Update tests.

Test now fully works, as of #2490.

* Cache parsed selectors.

* Streamline exit condition.

* Fix typing.

* More succint wording.

* Document 'on' kwargs.

* Update src/textual/_on.py

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Update docs/guide/events.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Change 'on' API.

* Remove example code.

* Address feedback.

* Update src/textual/_on.py

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Address review feedback.

* Fix #2499.

* don't require control to be manually specified

* update docstring

* deleted words

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-05-08 17:30:07 +01:00
Will McGugan
dd7e768887 merged changelog sections 2023-05-08 12:51:50 +01:00
Rodrigo Girão Serrão
a31e086a2e
Merge pull request #2490 from Textualize/messages-control
Add control to widget messages.
2023-05-08 11:26:31 +01:00
Rodrigo Girão Serrão
8059e5c1a7
Merge branch 'main' into messages-control 2023-05-08 11:18:43 +01:00
Rodrigo Girão Serrão
9c9829eb0f
Add 'control' alias to Tabs messages. (#2483)
* Add 'control' alias to Tabs messages.

Related issues: #2478.

* Changelog.
2023-05-08 11:15:19 +01:00
Will McGugan
7db7139bb8
Select widget (#2501)
* overlay rule

* select WIP

* select control, made binding description optional

* changelog

* style tweak

* Added constrain

* changelog

* test fix

* drop markup, tidy

* tidy

* select namespace

* tests

* docs

* Added changed event

* changelog

* expanded

* tests and snapshits

* examples and docs

* simplify

* update reactive attributes

* type fix

* docstrings

* allow renderables

* superfluous init

* typing fix

* optimization

* revert optimizations

* fixed words

* changelog

* docstrings

* don't need this

* changelog

* comment

* Update docs/widgets/select.md

Co-authored-by: Dave Pearson <davep@davep.org>

* review changes

* review updates

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-05-08 10:55:39 +01:00
Dave Pearson
c2a19bd632
Merge pull request #2510 from davep/chainsaw
Add the ability to remove nodes from a `Tree`
2023-05-08 10:51:44 +01:00
Dave Pearson
0bb0f4d179
Merge pull request #2508 from davep/add-options
Add `add_options` to `OptionList`
2023-05-08 10:51:15 +01:00
Rodrigo Girão Serrão
1e2f632fc6
Fix TabbedContent __init__ signature. (#2497) 2023-05-08 10:47:15 +01:00
Willi Ballenthin
483aa54bd6
Catch OSError when source code is not available (#2469)
* Catch OSError when source code is not available

* update changelog with reference to fixed bug
2023-05-08 10:45:56 +01:00
Rodrigo Girão Serrão
819b2f1eb3
Add DataTable.move_cursor (#2479)
* Add 'DataTable.move_cursor'.

Related issues: #2472.

* Fix #2471.

* Simplify cursor changes.

* Address review feedback.

Related comments: https://github.com/Textualize/textual/pull/2479\#discussion_r1185016002
2023-05-08 10:44:34 +01:00
Dave Pearson
c9d7bb84e2
Update the CHANGELOG 2023-05-08 10:18:34 +01:00
Dave Pearson
6bb2b21091
Update the CHANGELOG 2023-05-08 10:17:36 +01:00
Dave Pearson
745d595d4a
Add unit tests for the new node removal methods
See #2462.
2023-05-08 09:55:32 +01:00
Dave Pearson
64d9455d94
Add support for removing the children of a node
Sometimes the user may wish to delete a given node, other times it might be
a requirement to just remove the children (this will be especially useful
for #2448 where we'll want to keep the directory entry itself, but remove
and recreate its contents).

See #2462.
2023-05-08 09:33:21 +01:00
Dave Pearson
f34e738ddd
Ensure the cursor node is set to None when the tree goes empty
Up until now there wasn't really a way for the tree to go empty, outside of
clear/reset. Now that we can remove nodes on the fly, that is possible. This
takes that into account.

See #2462.
2023-05-08 09:16:58 +01:00
Dave Pearson
2c39f50150
Ensure the Tree's internal tracker gets updated on node delete
See #2462.
2023-05-08 09:15:28 +01:00
Dave Pearson
1d985abf26
Add TreeNode.remove
This is for removing an individual node, via the node. Note that attempting
to remove the root node of a Tree is an error and will case
TreeNode.RemoveRootError to be raised.

See #2462.
2023-05-08 08:44:29 +01:00
Dave Pearson
4c0d3766a8
Add TreeNode.is_root 2023-05-08 08:44:12 +01:00
Dave Pearson
84ddd09223
Add extra snapshit tests
This tests the three main ways of making an option list, and ensures they
all turn out the same.
2023-05-07 20:26:12 +01:00
Dave Pearson
b3b98f1089
Simplify the adding of genuine options
Extending a list with an empty list is petty much a no-op so don't bother to
faff around testing for what Python will be testing for anyway.
2023-05-07 18:11:14 +01:00
Dave Pearson
e526a32220
Update the CHANGELOG 2023-05-07 18:07:31 +01:00
Dave Pearson
8be87d5931
Merge branch 'main' into add-options 2023-05-07 18:06:57 +01:00
Dave Pearson
010356a23e
Allow zero items to be passed to add_options and do zero work 2023-05-07 18:01:56 +01:00
Dave Pearson
b44983e8d4
Add an add_options method to the OptionList
In doing so, pretty much make the add_option code into the add_options code,
and then just have add_option call add_options.

See #2507.
2023-05-07 17:56:02 +01:00
Dave Pearson
630f59dbd4
Remove unnecessary imports from example in docs
Perhaps a hangover from a previous take on this, or just a copy/paste-o.
Either way I just noticed this so thought I'd roll it in here.
2023-05-07 17:52:55 +01:00
Dave Pearson
14850d54a3
Merge pull request #2485 from davep/testing-testing-123-testing 2023-05-05 11:31:40 +01:00
Rodrigo Girão Serrão
73e4d5c6a7 Fix docs link. 2023-05-04 19:09:31 +01:00
Rodrigo Girão Serrão
a30cd159c4 Add control to TabbedContent message. 2023-05-04 19:04:10 +01:00
Rodrigo Girão Serrão
9d1f0283b2 Add control to RadioSet message. 2023-05-04 19:02:01 +01:00
Rodrigo Girão Serrão
8bf5316d65 Added control to markdown messages. 2023-05-04 19:01:31 +01:00
Rodrigo Girão Serrão
a10d2d9f98 Reference container markdown document.
Adding these references to the sub-widgets that make up a markdown document is necessary in order for the blocks to be able to post messages with a reference to the original document, which in turn is needed for the Message.control property to work.
2023-05-04 19:00:11 +01:00
Rodrigo Girão Serrão
2187a1d4a3 Add control to list view messages. 2023-05-04 18:55:51 +01:00
Rodrigo Girão Serrão
55e2e5d7e3 Add control to tree/dir tree messages. 2023-05-04 18:55:12 +01:00
Rodrigo Girão Serrão
14b70b0819 Add control to option list messages. 2023-05-04 18:53:29 +01:00
Dave Pearson
32fbdbd203
Merge pull request #2482 from davep/tree-lines-fix 2023-05-04 18:30:28 +01:00
Dave Pearson
6139c95f3a
Test that the event aliases are actually the same reference
I thought I thought I wanted what I thought but now I think about it I think
I thought wrong and now I think better.
2023-05-04 16:43:20 +01:00
Dave Pearson
8b36d29e74
Add a test for a radio set getting focus when a button gets clicked 2023-05-04 16:22:39 +01:00
Dave Pearson
19f4f64d96
Add tests for selection navigation in a radioset with no buttons pressed 2023-05-04 15:39:33 +01:00
Dave Pearson
e7d3b94334
Test that radioset wraps around when going off the bottom 2023-05-04 15:25:33 +01:00
Dave Pearson
b1443c0162
Test that radioset wraps around when going off the top 2023-05-04 15:22:30 +01:00
Dave Pearson
2113f415a0
Add a test that toggling a pressed radio button has no effect 2023-05-04 15:17:52 +01:00
Dave Pearson
b7cdbb0baa
Test to ensure that Changed.control is Control.checkbox 2023-05-04 15:12:15 +01:00
Dave Pearson
0b4d7fb091
Test to ensure that Changed.control is Control.radio_button 2023-05-04 15:10:45 +01:00
Rodrigo Girão Serrão
c4eda48a0a
Tweaks to DataTable docs. (#2481)
* Tweaks to DataTable docs.

Related PRs: #2479.

* Fix link.
2023-05-04 14:55:14 +01:00
Dave Pearson
bba694e93a
Update the ChangeLog 2023-05-04 14:30:20 +01:00
Dave Pearson
47f52f7692
Merge branch 'main' into tree-lines-fix 2023-05-04 14:27:46 +01:00
Dave Pearson
10e61987e3
Add always_update as a parameter for a var reactive
Redux. I managed to commit the wrong thing last time; although it was using
this and this was done for that.
2023-05-04 14:17:20 +01:00
Dave Pearson
f6da3e9fb2
Add always_update as a parameter for a var reactive 2023-05-04 14:16:34 +01:00
Will McGugan
04083a73f8
exclusive false (#2470)
* exclusive false

* changelog
2023-05-04 11:46:20 +01:00
Rodrigo Girão Serrão
cbd68b20df
Datatable scrolling faq (#2477)
* Add FAQ about DataTable scrolling.

Related issues: #2458

* Write concisely.

* Update questions/datatable-doesnt-scroll.question.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Remove example.

* Add recommendation.

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-05-04 11:42:19 +01:00
Rodrigo Girão Serrão
38592c34bd
Add FAQ about DataTable scrolling. (#2466)
Related issues: #2458
2023-05-04 10:35:39 +01:00
Dave Pearson
805970193b
Merge branch 'main' into tree-lines-fix 2023-05-04 09:03:59 +01:00
Dave Pearson
71c5a44fdb
Take Tree.show_root into account when drawing guides
Rather than always start at the root, the code should start at the beginning
of the path.

See #2397.
2023-05-04 08:53:24 +01:00
Dave Pearson
ae2a155347
Merge pull request #2473 from davep/fix-dir-tree-eager-path 2023-05-03 22:34:39 +01:00
Dave Pearson
7dfc3e57a1
Fix a crash when DirectoryTree starts out anywhere other than .
A hangover from the previous DirectoryTree, where setting the path didn't
matter. This now sets it *after* calling Tree's __init__, thus ensuring the
line cache and other related things have been created.
2023-05-03 20:54:54 +01:00
Rodrigo Girão Serrão
3728555fbd
Scroll cursor into view. (#2464)
* Scroll cursor into view.

Related issues: #2459.

* Add regression test.

* Update changelog.
2023-05-03 13:57:04 +01:00
Will McGugan
e5c54a3683
blog post (#2465)
* blog posts

* fix typo

* word

* version bump

* changelog

* update words
2023-05-03 13:22:22 +01:00
Dave Pearson
c87a2b1b37
Merge pull request #2463 from davep/directory-tree-redux
Allow changing the "root" of a `DirectoryTree`
2023-05-03 12:15:31 +01:00
Dave Pearson
2e89cd11bb
Add missing type annotation on render_label 2023-05-03 11:52:23 +01:00
Will McGugan
41dbc66b23
optimize focus (#2460)
* optimize focus

* immediate call

* update previews

* snapshot
2023-05-03 11:48:56 +01:00
Dave Pearson
9e15dc45aa
Link the non-issue-related DirectoryTree change back the PR 2023-05-03 11:30:44 +01:00
Dave Pearson
4250912a28
Don't reassign the path when watching the path
Bit of a thinko happening there.
2023-05-03 10:44:45 +01:00
Dave Pearson
af0ed17ebd
Merge branch 'main' into directory-tree-redux 2023-05-03 10:06:30 +01:00
Dave Pearson
c4e2144207
Update the CHANGELOG 2023-05-03 09:59:35 +01:00
Dave Pearson
23d6c3611a
Add DirectoryTree.reload
This is a general reload; reloading the whole tree.
2023-05-03 09:34:55 +01:00
Dave Pearson
3d6fd7ef4c
Add a docstring to _load_directory 2023-05-03 09:13:42 +01:00
Dave Pearson
f509767141
Don't cast a DirEntry.path to a Path any more
It's always a Path now.
2023-05-03 09:13:11 +01:00
Dave Pearson
8311f837b8
Add a docstring to render_label
Well, okay, borrow the same from Tree.
2023-05-03 09:08:21 +01:00
Dave Pearson
d1d435d68b
Flesh out the docstring for validate_path 2023-05-03 09:02:49 +01:00
Dave Pearson
e4c0517cc6
Add the node to the FileSelected message
Until now it wasn't really possible to know *which* DirectoryTree widget had
sent a given message; this makes it available by providing the `node`, which
in turn will provide the `tree`.
2023-05-03 08:58:11 +01:00
Dave Pearson
465f522ef3
Add a reminder to add the node to the FileSelected message 2023-05-02 16:48:06 +01:00
Dave Pearson
5f22cf8e7b
Remove empty rule from DirectoryTree.DEFAULT_CSS 2023-05-02 16:46:07 +01:00
Dave Pearson
40e042d7e3
Make _load_directory private 2023-05-02 16:45:18 +01:00
Will McGugan
90d9693168 typo 2023-05-02 16:36:41 +01:00
Dave Pearson
d4af9d239f
Add a path reactive to DirectoryTree so the path it views can be changed
A couple of things come with this, at least one being a breaking change of
sorts:

- DirectoryTree now has a path attribute
- DirectoryTree.path is a reactive
- When DirectoryTree.path is assigned to it rebuilds the tree content
- DirectoryTree.path can be assigned a str or Path but always evaluates to a Path
- DirEntry.path is now typed as a Path
- DirEntry drops is_dir (Directory.path.is_dir() does that job)
- DirectoryTree.FileSelected.path is now always a Path

This is the first of what might be a few changes here; the main thrust of
this commit being to allow changing a DirectoryTree to view a different
directory, and also to move to a Path-first approach.
2023-05-02 16:33:22 +01:00
Dave Pearson
922934597d
Sort the component classes to match the docs 2023-05-02 16:30:16 +01:00
Will McGugan
a2aef3da0d updated call_from_thread API docs 2023-05-02 16:28:12 +01:00
Will McGugan
aedac6a9b9 update roadmap 2023-05-02 16:20:16 +01:00
Will McGugan
91a9d570a4
On decorator (#2453)
* Add on decorator

* decorator code

* docs for on decorator

* Examples

* test errors

* simplify listing

* words

* changelog

* Update docs/guide/events.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/guide/events.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/examples/events/on_decorator.css

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/guide/events.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* rewording

* comment

* clarification

* Added note

---------

Co-authored-by: Dave Pearson <davep@davep.org>
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-05-02 16:17:40 +01:00
Dave Pearson
83c09b3cfd
Add a missing type hint
Looks like this has been missing since DirectoryTree was first written.
2023-05-02 15:51:18 +01:00
Dave Pearson
d0639a0cc1
Correct the type of the TreeExpanded event
This looks to have been a slight typing bug all along.
2023-05-02 15:29:36 +01:00
Rodrigo Girão Serrão
914e50a70f
Export types & doc improvements (#2329)
* Export types used in app.py

* Export more linked types/errors/classes.

* Remove custom template.

* Address review comments.

We need to have explicit 'Returns:' sections in properties if we want to link to the return type while https://github.com/mkdocstrings/python/issues/65 is open.

* Improve docs.
2023-05-02 15:12:53 +01:00
Dave Pearson
911ffdb144
Merge pull request #2455 from davep/snapshit-speedup
Remove the bytewise diffing of failed snapshots
2023-05-02 14:55:47 +01:00
Dave Pearson
d67b516707
Merge pull request #2454 from davep/ci-test-only-code-changes
Attempt to narrow CI/test trigger to just code changes
2023-05-02 14:55:17 +01:00
Dave Pearson
16931a8563
Move DirectoryTree.FileSelected.path's doc to inline style
This brings it in line with the documentation for other widgets and their
messages.
2023-05-02 14:19:55 +01:00
Dave Pearson
2ad3903d43
Remove the bytewise diffing of failed snapshots
In doing so this removes the file similarity value, and as such the key that
the failure report was sorted on. This was done because, given how many
snapshot tests we have now, if lots failed, it would take a long time (often
many minutes) to compile the report.

The report is now sorted on the test name.

Now, no matter how many snapshots fail, the report should be produced pretty
much instantly.
2023-05-02 13:47:18 +01:00
Dave Pearson
9dda90ea75
Extend testing to some more files
In this case the snapshot data, the lock file and the Makefile.
2023-05-02 13:07:47 +01:00
Dave Pearson
7152adfdf5
Remove the test change
That seemed to do the trick!
2023-05-02 13:07:30 +01:00
Dave Pearson
aa9f6392c3
Make a change to a py file to see if CI will kick off tests 2023-05-02 12:57:08 +01:00
Dave Pearson
a8d2724873
Attempt to narrow CI/test trigger to just code changes
Looking at
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request
I *think* this might be the approach to take. Consider this an experimental
change that will very likely get rolled back.

See #2404
2023-05-02 12:52:51 +01:00
Dave Pearson
8a29c7ea2c
Merge pull request #2452 from davep/outline-top-bottom-colour-glitch
Fix outline-top and outline-bottom not handling colour alpha
2023-05-02 11:45:26 +01:00
Dave Pearson
16ca3e10d1
Merge branch 'main' into outline-top-bottom-colour-glitch 2023-05-02 11:34:14 +01:00
Dave Pearson
d34d1b19b2
Merge pull request #2444 from davep/overall-important
Make `!important` apply to rules that have "sub-rules"
2023-05-02 11:33:05 +01:00
Dave Pearson
9c26c6ef32
Merge branch 'main' into outline-top-bottom-colour-glitch 2023-05-02 11:05:52 +01:00
Dave Pearson
7e570df4f4
Fix outline-top and outline-bottom not handling colour alpha
See #2371.
2023-05-02 11:03:54 +01:00
Dave Pearson
87847cea4c
Update the CHANGELOG 2023-05-02 10:16:45 +01:00
Dave Pearson
16d62dfb20
Distribute !important on scrollbar size 2023-05-02 10:13:24 +01:00
Dave Pearson
cbe418de18
Distribute !important on overflow 2023-05-02 10:12:18 +01:00
Will McGugan
e1a8f28f8d
update to log docs (#2451) 2023-05-02 10:09:32 +01:00
Dave Pearson
ad37b6809a
Distribute !important on content-align 2023-05-02 10:08:33 +01:00
Dave Pearson
763f9b012f
Distribute !important on align 2023-05-02 10:06:17 +01:00
Dave Pearson
8fc6e195e1
Change the importance distribution method to be more generic 2023-05-02 09:49:06 +01:00
Dave Pearson
27ca4969a8
Add tests for styles that have "sub-styles" and !important
This is a series of tests for checking styles that have sub-styles, or
sub-parts, or whatever the correct name would be; the testing being that if
!important is applied to the whole, that it works.

Starting with #2420 it became apparent that this didn't work as intended,
and once that work started it became obvious that it affected more than just
border.

So these tests test all of the styles that can be specified as a single
whole, or as a set of parts (sides, directions, etc).
2023-05-02 09:36:08 +01:00
Dave Pearson
4ab9ba9268
Merge branch 'main' into overall-important 2023-05-02 08:46:52 +01:00
Will McGugan
83b1fcc102
raise attribute error (#2443)
* raise attribute error

* fix compute defaults
2023-05-01 16:57:40 +01:00
Will McGugan
ba90657559 update changelog 2023-05-01 16:36:05 +01:00
Will McGugan
20a1612361
Invalid pseudo selectors (#2445)
* token error

* error on bad pseudo selectors
2023-05-01 16:22:35 +01:00
Dave Pearson
60dc38c5cd
Merge branch 'main' into overall-important 2023-05-01 16:22:09 +01:00
Dave Pearson
08de9a0fca
Merge pull request #2442 from davep/private-watcher
Add support for private watch methods
2023-05-01 16:19:24 +01:00
Will McGugan
832d191bd3
bump poetry (#2447) 2023-05-01 15:35:58 +01:00
Dave Pearson
d6eb44bd19
Fix outline-right not being recognised
See #2446.
2023-05-01 15:21:12 +01:00
Dave Pearson
d6f304f5d1
Update the CHANGELOG 2023-05-01 15:19:24 +01:00
Dave Pearson
7a69c037b8
Distribute importance amongst all sides of an outline 2023-05-01 15:00:54 +01:00
Dave Pearson
883e293e1f
Move the important distribution code into its own method
Border isn't the only place we're going to want to do this, so let's now
turn this into a more general body of code and have border use it.
2023-05-01 15:00:07 +01:00
Dave Pearson
5a355da78b
Fixed !important not applying to border 2023-05-01 14:17:29 +01:00
Dave Pearson
54db445dd7
Change private watcher support call public and private if available
See https://github.com/Textualize/textual/pull/2442#issuecomment-1529512891

This changes the original PR so that, rather than calling a private watcher
instead of a public, as originally issued, we now call public and private,
if they're both there.

If they are both there private is called first.
2023-05-01 10:28:55 +01:00
Dave Pearson
847fd6e69e
Add support for private watch methods
This change allows for private watch methods. By convention they start with
an underscore. If a reactive or var has a private watch method, it will be
used in preference to a public watch method.

With this change it becomes easier to have a private reactive/var whose
watcher is also private. For example:

    _counter = var(0)
    """This is a private counter, it won't appear in the docs."

    ...

    def _watch__counter(self) -> None:
        """Watch _counter, but don't appear in the docs either."
        ...

See #2382.
2023-05-01 10:01:50 +01:00
Will McGugan
8fac2c7d2a
Bump0223 (#2424)
* button tweak

* fix for windows

* changelog
2023-04-28 20:56:28 +01:00
Will McGugan
ecee8ef837 fix run on Windows 2023-04-28 20:29:21 -07:00
Will McGugan
c5053eca81
faster focus within (#2423) 2023-04-28 18:08:57 +01:00
Dave Pearson
32c74d9535
Merge pull request #2415 from davep/expose-node-tree
Add `TreeNode.tree`
2023-04-28 14:23:28 +01:00
Dave Pearson
40f7c97500
Merge branch 'main' into expose-node-tree 2023-04-28 13:58:04 +01:00
Will McGugan
e15df80a8c
Version bump (#2418) 2023-04-28 12:38:02 +01:00
Will McGugan
16a1645671
revert timer change (#2417)
* revert timer change

* changelog
2023-04-28 11:47:28 +01:00
Will McGugan
7c696ce378
Updated docs for app.run (#2414)
* fix run app from python

* updated run

* remove function

* update help

* doc update
2023-04-28 10:47:24 +01:00
Dave Pearson
02ed90c633
Add TreeNode.tree
Currently, in the various TreeNode messages, and the handlers you'd write to
handle them, there's no way to easily know *which* tree sent the message and
so which tree the node belongs to.

This commit adds public access to the tree reference to the nodes, so that
in an event handler the developer can check the tree involved in the event.

See #2413.
2023-04-28 10:23:38 +01:00
Dave Pearson
730f78757a
Merge pull request #2409 from TomJGooding/fix-switch-correct-attribute-name-in-changed-docstring
fix(switch): correct attribute in changed docstring
2023-04-27 18:59:19 +01:00
TomJGooding
c063c3ecdf
fix(switch): correct attribute in Changed docstring 2023-04-27 18:42:46 +01:00
Sebastian Pipping
eab1328ccc
Fix demo example CSS (fixes #2389) (#2393)
* demo.py: Stop cutting of demo.css content after 50 lines

* demo.py: Drop unused variable EXAMPLE_CSS

* demo.py: Simplify derivation of example_css
2023-04-27 15:27:43 +01:00
Will McGugan
124c45e68c
Bump0220 (#2405)
* Version bump

* upate version

* fix domain name

* wrong project

* skip on Windows

* disable demo snapshot

* 37 fix
2023-04-27 15:01:46 +01:00
Will McGugan
dd70a7a2dc
fix for min and max with fr unints (#2390)
* fix for min and max with fr unints

* snapshit

* forgot snapshit tests

* fix resolve

* added unit tests

* Windoze fix
2023-04-27 13:35:16 +01:00
Dave Pearson
fe99df95fc
Fix light mode plain text in non-syntax code blocks in Markdown (#2402)
Bit of a workaround at the moment; ideally longer-term we'll go with
something less hard-coded.

See #2400
2023-04-27 12:03:05 +01:00
Will McGugan
55e198767f
Add progress bar to gallery (#2399)
* Add progress bar to gallery

* table fix
2023-04-27 11:37:53 +01:00
Dave Pearson
01df8b0726
Make textual.containers 1fr in meaningful dimensions by default (#2386)
* Make all containers 1fr

An unintended consequence of changes made to containers in v0.21.0 (#2377)
is something like #2385 so this commit sort of rolls that change back, and
solidifies how containers are styled by default in respect to their width
and height. Where appropriate the dimensions will be 1fr.

* Make the DEFAULT_CSS of ProgressBar less greedy

It was attempting to style a Vertical that is uses, but in doing so was
styling all Verticals rather than a Vertical within a ProgressBar.

This fixes that.

* Update the CHANGELOG for the container changes

* Move the ProgressBar CHANGELOG entry into the next release section

* Link the container change entry in the CHANGELOG to its PR

Now that the PR is PRd and we have a PR
2023-04-26 17:07:30 +01:00
Rodrigo Girão Serrão
4148b1d450
Implement a Progress Bar widget. (#2333)
* First prototype of PB.

* Repurpose UnderlineBar.

* Factor out 'Bar' widget.

* Revert "Factor out 'Bar' widget."

This reverts commit 0bb4871adf566416cfe590ac4396e0b79f84165c.

* Add Bar widget.

* Cap progress at 100%.

* Add skeleton for the ETA label.

[skip ci]

* Add ETA display.

* Improve docstrings.

* Directly compute percentage.

* Watch percentage changes directly.

[skip ci]

* Documentation.

* Make reactive percentage private.

Instead, we create a public read-only percentage property.

* Update griffe to fix documentation issue.

Related issues: #1572, https://github.com/mkdocstrings/griffe/issues/128.
Related PRs: https://github.com/mkdocstrings/griffe/pull/135.

* Add example and docs.

* Address review feedback.

[skip ci]

* More documentation.

* Add tests.

* Changelog.

* More tests.

* Fix/fake tests.

* Final tweaks.
2023-04-26 15:25:39 +01:00
Will McGugan
ee0d407067 fix changelog 2023-04-26 14:01:15 +01:00
Will McGugan
f20df9b075
Bump0210 (#2381)
* new version

* docstring
2023-04-26 13:55:41 +01:00
Will McGugan
f53c3cd589
container refactor (#2377)
* container refactor

* Rearrange css

* changelog

* try timer updates

* force update

* sleep idle

* Restore updates
2023-04-26 13:36:08 +01:00
Will McGugan
ff703ad983
pass through unprocessed args (#2374)
* pass through unprocesses args

* omit symbols

* extract args

* posix exception

* timer updates

* another update

* just work on windows damn it

* remove updates
2023-04-26 11:09:04 +01:00
Will McGugan
ec09fb5afc force updates 2023-04-26 10:23:23 +01:00
Dave Pearson
441b98d7a7
Merge pull request #2372 from davep/radioset-redux 2023-04-25 17:21:07 +01:00
Dave Pearson
7a536c790c
Demo snapshot test back up to a 250 wait
Waiting 100 resulted in a fail, so let's bump back up again.
2023-04-25 15:49:43 +01:00
Dave Pearson
db45287646
Lower the wait for the demo snapshot test
250 worked; so let's try it lower.
2023-04-25 15:41:02 +01:00
Dave Pearson
88926a4bb8
Force a wee wait when testing the demo
This keeps randomly failing in Windows in CI; multiple subsequent runs gets
it going in the end, normally one further fail at a time. So let's throw a
wee wait on the end and see if that helps.
2023-04-25 15:27:43 +01:00
Dave Pearson
f2c56e7cd5
Link the RadioSet CHANGELOG entry to the new PR 2023-04-25 15:17:02 +01:00
Dave Pearson
0d5db58692
Update the CHANGELOG 2023-04-25 15:09:35 +01:00
Dave Pearson
c45f9358ee
Change RadioSet so it's less a container of widgets and more a widget
Initially we went with a RadioSet being a simple container of RadioButtons,
with the user navigating the RadioButtons like you would any other set of
widgets. This was fine but it became pretty clear pretty quickly that having
to tab through a non-trivial collection of buttons in a set to get to the
next widget wasn't ideal.

This commit, satisfying #2368, takes over the navigation of the buttons
within the container, makes the container itself a focusable widget, and
sets up some new bindings to allow a more natural and efficient interaction
with the set.
2023-04-25 15:00:44 +01:00
Dave Pearson
a6a373161f
Add some unit testing of the new navigation 2023-04-25 12:06:46 +01:00
Dave Pearson
e16493bf81
Update the snapshot tests
This is necessary now that a focused RadioSet has acquired a border colour
similar to that if a focused Input.
2023-04-25 11:27:23 +01:00
Dave Pearson
59506f3292
Turn a RadioSet into a single focus switching site
With this commit a RadioSet becomes something you can tab into and out of
with just one keypress; navigation of the buttons within moves to being done
with the cursor keys instead.

See #2368.
2023-04-25 11:16:20 +01:00
Dave Pearson
b36afd80a7
Highlight a RadioSet when focus is within it 2023-04-25 10:13:30 +01:00
Dave Pearson
f1d70900cb
Merge pull request #2367 from davep/tidy-builtin-actions
Tidy builtin actions
2023-04-24 16:13:35 +01:00
Dave Pearson
4047c83680
Update the CHANGELOG 2023-04-24 15:22:26 +01:00
Dave Pearson
b14b3b9e39
Expand the builtin action list in the docs 2023-04-24 15:12:51 +01:00
Dave Pearson
fee216132f
Rename action_remove_class_ to action_remove_class 2023-04-24 15:02:22 +01:00
Dave Pearson
4d3cd1295f
Rename action_add_class_ to action_add_class 2023-04-24 15:01:59 +01:00
Dave Pearson
d1ff1b33d6
Expand the docstring for action_back 2023-04-24 15:01:05 +01:00
Dave Pearson
7f4699605e
Add a missing docstring argument for action_check_bindings 2023-04-24 14:59:12 +01:00
Dave Pearson
9371b47b9b
Merge pull request #2365 from davep/no-container-scroll
Have `Container` *not* show scrollbars by default
2023-04-24 14:15:33 +01:00
Dave Pearson
2055a8996f
Move the tutorial over to using ScrollableContainer 2023-04-24 13:13:11 +01:00
Dave Pearson
ca94c5eed0
Merge branch 'main' into no-container-scroll 2023-04-24 11:35:47 +01:00
Rodrigo Girão Serrão
e5033d7d23
Remove hanging lines from docstrings. (#2349)
* Remove hanging lines from docstrings.

Deleted hanging blank lines at the end of docstrings.

Regex pattern:
 - find `\n\n( *)"""`
 - replace with `\n$1"""`
2023-04-24 11:21:38 +01:00
Dave Pearson
a005b81a39
Update the CHANGELOG 2023-04-24 11:18:41 +01:00
Dave Pearson
b896e9d7f9
Update tests to handle scroll changes to Container
See #2361.
2023-04-24 11:10:37 +01:00
Dave Pearson
a91b2c6b35
By default hide the horizontal scrollbar on VerticalScroll
In connection with #2361.
2023-04-24 11:09:52 +01:00
Dave Pearson
d06a4e579d
By default hide the vertical scrollbar on HorizontalScroll
In connection with #2361.
2023-04-24 11:09:09 +01:00
Dave Pearson
38e636921c
Remove default scrollbars from Container
As per #2361 this removes default scrollbars on Container (and so adds them
on ScrollableContainer).
2023-04-24 11:06:31 +01:00
Will McGugan
80f4c12e76
Fix scroll flicker (#2358)
* fix scroll flicker

* fix scroll flicker

* remove event

* do not delay scroll

* remove comment

* test fix

* remove commented code

* comment

* increase pause on click

* changelog [skip ci]

* wait on resume

* remove note [skip ci]
2023-04-24 09:33:15 +01:00
Dave Pearson
8b6d9027e9
Merge pull request #2353 from davep/bug/2352/tabbed-content-active 2023-04-23 16:40:39 +01:00
Will McGugan
24a17ba914
Merge branch 'main' into bug/2352/tabbed-content-active 2023-04-23 16:04:06 +01:00
Rodrigo Girão Serrão
50030b427f
Fix up/down key ansi sequences. (#2280)
* Fix up/down key ansi sequences.

Related issues: #2223.
Related comments: [my reply to OP](https://github.com/Textualize/textual/issues/2223\#issuecomment-1505512300) and [the OP's reply](https://github.com/Textualize/textual/issues/2223\#issuecomment-1506764562).

* Changelog.
2023-04-23 14:14:36 +01:00
Will McGugan
3736807359
fix color system render (#2360)
* fix color system render

* changelog
2023-04-22 17:49:00 +01:00
Dave Pearson
1a84be9fc9
Update the CHANGELOG 2023-04-22 10:29:00 +01:00
Dave Pearson
75543fbd4c
Merge branch 'main' into bug/2352/tabbed-content-active 2023-04-22 10:28:02 +01:00
Will McGugan
a2633ca31e
fix text opacity (#2356) 2023-04-22 08:50:14 +01:00
Dave Pearson
a351d620b2
Add some pauses to the UI-baed tabbed content tests
This particular test seems rather flakey in GitHub's actions. In most cases
passing, with the odd fail here and there (normally when unrelated changed
are made -- I've had this fail when docs have been changed; zero code
changes!)

So, on the off chance that a little extra pause will help...
2023-04-22 08:42:38 +01:00
Dave Pearson
c022d9de2f
Fix TabbedContent.active not changing actual content
Ensures that the actual content gets changed when TabbedContent.active is
updated via code. Also adds more testing for TabbedContent.

See #2352 for details.
2023-04-22 08:28:12 +01:00
Dave Pearson
9e19706b53
Merge pull request #2345 from davep/button-docs-tweakage
Some more Button docs tidying
2023-04-21 09:07:25 +01:00
Dave Pearson
ccf4f06a74
Some more Button docs tidying
While I'm in this file... might as well link the word "variant" to the type
that it's referring to.
2023-04-21 07:57:48 +01:00
Dave Pearson
cd5d9d1e4f
Merge pull request #2344 from davep/type-button-pressed-button-in-docs
Small improvement to the `Button.Pressed` event documentation
2023-04-21 07:47:51 +01:00
Dave Pearson
b34ab0d9a4
Small improvement to the Button.Pressed event documentation
This makes `button` as obvious as `control`, and also ensures it has a type
in the docs too. While here I also add a couple of extra links to make the
docs more inter-linked.
2023-04-21 07:38:42 +01:00
Will McGugan
cab4925eaa
New CLI runner (#2338)
* New CLI runner

* runner functionality

* Add port

* use env for port

* changelog

* test fix

* flush

* remove constant

* comment

* tidy docs

* docstrings

* punctuation

* docstring

* fix test

* snapshot

* Update src/textual/cli/cli.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* guard against bad imports

* guard againsts screenshot

* always print return

* docstrings

* docstrings

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-20 17:09:39 +01:00
Dave Pearson
c8ecd26234
Merge pull request #2340 from davep/assorted-doc-tweaks
Assorted doc tweaks
2023-04-20 16:20:11 +01:00
Dave Pearson
d4f7ef02bb
Merge pull request #2337 from davep/bug/2100/invisible-keys
Move default scroll navigation keys out of `Widget` and into `ScrollableContainer`
2023-04-20 15:37:45 +01:00
Dave Pearson
83da429793
Small collection of docstring tweaks 2023-04-20 14:13:56 +01:00
Dave Pearson
4801b3bc8f
Link the doc for Checkbox.Changed.control to checkbox 2023-04-20 14:01:33 +01:00
Dave Pearson
8ea6658877
Link the doc for RadioButton.Changed.control to radio_button 2023-04-20 13:59:44 +01:00
Dave Pearson
84b5b866d4
Merge branch 'main' into bug/2100/invisible-keys 2023-04-20 13:45:30 +01:00
Dave Pearson
60542c52b3
Merge pull request #2339 from davep/refresh-all-the-screens
Ensure an app's CSS refresh updates all screens in the stack
2023-04-20 13:44:45 +01:00
Dave Pearson
61dc08dd99
Update the CHANGELOG 2023-04-20 11:42:14 +01:00
Dave Pearson
ae656c21c1
Refresh the CSS for all screens in an app's stack, when asked to refresh
Addresses #1999.
2023-04-20 11:39:12 +01:00
Dave Pearson
c507c4a785
Driveby typo fix
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-20 11:14:11 +01:00
Dave Pearson
b6b8fbdb41
Fix typo
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-20 11:13:01 +01:00
Dave Pearson
14f05899b2
Correct the location of the new items in the CHANGELOG
I'd accidentally started adding things under v0.20.1 rather than under a new
unreleased heading.
2023-04-20 10:09:20 +01:00
Dave Pearson
59e325d004
Update the CHANGELOG 2023-04-20 10:08:40 +01:00
Dave Pearson
1c5909eb23
Update the binding inheritance tests for the new moment bindings approach
Now that navigation bindings don't pollute the whole widget hierarchy any
more some of these tests can be tidied up.
2023-04-20 10:04:32 +01:00
Dave Pearson
8a909b0d0a
Change all containers so they don't inherit bindings
This is, to some degree, rendered moot by #2332, but for the moment it still
feels worth doing. The initial intention was to make sure that non-scrolling
containers and their child classes don't have bindings that may mask other
uses for navigation keys. However, it was realised that the "problem"
affected more than just containers (hence #2332).

But... on the off chance we add any more default bindings to
`Widget` (unlikely, but still), this will mean that they don't leak into the
containers unless we intend them to.

See #2331.
2023-04-20 09:51:50 +01:00
Dave Pearson
7d82e30684
Fix demo so that keyboard navigation scrolls the display again
The `Body` class inherited from `Container` rather than one of the scrolling
containers; until now it had worked because `Widget` provided the bindings
to make this happen, now that they've moved into `ScrollableContainer` that
stopped working.
2023-04-20 09:42:29 +01:00
Dave Pearson
fe5f80bdd6
Change ScrollView to inherit from ScrollableContainer rather than Widget
See #2332
2023-04-20 09:40:58 +01:00
Dave Pearson
f4e5f23053
Merge pull request #2336 from davep/tidy-widget
Remove unused import from widget.py
2023-04-20 09:32:01 +01:00
Dave Pearson
ee45356c5c
Update the CHANGELOG 2023-04-20 09:31:28 +01:00
Dave Pearson
49422932c7
Move scroll navigation key bindings out of widget and into own container
The idea here is that not every widget will scroll, and as such not every
widget needs to have default bindings for calling the scrolling methods.
Generally scrolling is something done in a container.

These days we have *Scroll containers. As such it makes sense to introduce
the bindings in a common parent class for those containers.

This commit moves the binding from widget and creates that common parent
class, and then has HorizontalScroll and VerticalScroll inherit from it.

This is, it should be noted, a breaking change. Any code that creates a
scrolling widget that assumes that the bindings are just there, where that
widget doesn't inherit either from HorizontalScroll or VerticalScroll, will
suddenly find that scrolling with the keyboard is no longer possible.

See #2332.
2023-04-20 09:15:05 +01:00
Dave Pearson
88b068fd64
Remove unused import from widget.py 2023-04-20 08:59:38 +01:00
Will McGugan
550cd47123 docstring 2023-04-19 17:13:57 +01:00
Will McGugan
d7f5fb9107
Fix frame rate limiter (#2318)
* simplify

* fix for frame rate limiter

* fix update

* fix update

* update comment

* No need for lock

* remove comment

* fix for glitched test

* force update

* implement dim fix

* docstrings

* foreground fix

* cached filters

* cache default

* fix for filter tests

* docstring

* optimization

* Update src/textual/filter.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/constants.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* fix cache

* remove comment [skip ci]

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-19 16:55:42 +01:00
Dave Pearson
0e8e232a08
Merge pull request #2328 from davep/footer-cleanup
Clean up various warnings in _footer.py
2023-04-19 13:41:07 +01:00
Dave Pearson
f6612490df
Clean up various warnings in _footer.py
While visiting this for other reasons I noticed a number of warnings about
the code that were easy to tidy up. So I tidied them up.
2023-04-19 13:27:10 +01:00
Will McGugan
81882fdf7d
implement dim fix (#2326)
* implement dim fix

* docstrings

* foreground fix

* cached filters

* cache default

* fix for filter tests

* docstring

* optimization

* Update src/textual/filter.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/constants.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-19 13:24:31 +01:00
Dave Pearson
7c5203aa1b
Merge pull request #2321 from davep/screen-results
Add support for "returning" a result value from screens.
2023-04-19 11:47:09 +01:00
Dave Pearson
768a235f3a
Improve a docstring
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-04-19 11:40:34 +01:00
Dave Pearson
9123a80aa5
Update a screen instance's callback stack when it is switched out
As per the observation here:

  https://github.com/Textualize/textual/pull/2321#pullrequestreview-1391744148
2023-04-19 11:39:19 +01:00
Dave Pearson
5689e62230
Merge pull request #2325 from davep/private-event-handlers
Make textual.widgets.* event handlers private
2023-04-19 11:15:29 +01:00
Dave Pearson
5886c6bd0c
Make DataTable event handlers private
See #2324.
2023-04-19 10:13:23 +01:00
Dave Pearson
36aa3321ff
Make ToggleButton event handlers private
See #2324.
2023-04-19 10:07:36 +01:00
Dave Pearson
d23024141c
Make Tabs event handlers private
See #2324.
2023-04-19 10:05:53 +01:00
Dave Pearson
1063c0f94c
Make Switch event handlers private
See #2324.
2023-04-19 10:04:05 +01:00
Dave Pearson
d2c8206a8e
Make RadioSet event handlers private
See #2324.
2023-04-19 10:02:47 +01:00
Dave Pearson
404d7b8fb8
Make PlaceHolder event handlers private
See #2324.
2023-04-19 09:53:56 +01:00
Dave Pearson
99d3c9fa79
Make OptionList event handlers private
See #2324.
2023-04-19 09:52:43 +01:00
Dave Pearson
da809ec717
Make Markdown event handlers private
See #2324.
2023-04-19 09:44:03 +01:00
Dave Pearson
6b147487bb
Make LoadingIndicator event handlers private
See #2324.
2023-04-19 09:40:45 +01:00
Dave Pearson
489bcf3ad1
Make ListView event handlers private
See #2324.
2023-04-19 09:39:36 +01:00
Dave Pearson
f9071987bd
Make ListItem event handlers private
See #2324.
2023-04-19 09:37:35 +01:00
Will McGugan
db1b784606
dim filter (#2323)
* dim filter

* optimization

* Remove test code

* move functions out of filter

* docstring

* move function to module scope

* docstring

* docstrings
2023-04-19 09:31:59 +01:00
Dave Pearson
18a6428738
Make Input event handlers private
See #2324.
2023-04-19 09:30:44 +01:00
Dave Pearson
c9664f0ff5
Make Header event handlers private
See #2324.
2023-04-19 09:20:10 +01:00
Dave Pearson
69477c2a18
Make DirectoryTree event handlers private
See #2324.
2023-04-19 09:17:01 +01:00
Dave Pearson
590c898213
Make ContentSwitcher.on_mount private
See #2324.
2023-04-19 09:13:28 +01:00
Will McGugan
4981effcba
Revert "Prevent reactive-watcher loop in Tabs / TabbedContent." (#2322)
* Revert "Prevent reactive-watcher loop in Tabs / TabbedContent. (#2305)"

This reverts commit 66a644845b.

* fix stuck tab

* fix for stuck underline

* snpshot
2023-04-18 16:46:10 +01:00
Dave Pearson
c9dd89b944
Merge branch 'main' into screen-results 2023-04-18 14:29:40 +01:00
Will McGugan
cc41a7f81d
Bump0200 (#2320)
* version bump

* changelog
2023-04-18 13:41:15 +01:00
Will McGugan
bbe38f7d30
faq entry on Transparent backgrounds (#2319)
* faq entry

* word

* update to words
2023-04-18 13:29:13 +01:00
Dave Pearson
e3babfd812
Drop dismiss_with
Just go with a single dismiss method.
2023-04-18 13:11:51 +01:00
Dave Pearson
21783fb479
Fix the typing for ResultCallback.__init__ 2023-04-18 12:49:28 +01:00
Dave Pearson
2e7b010301
Allow for a screen being pushed when the stack is empty
Under normal circumstances the code wouldn't encounter this problem as
there's always a default screen; but a handful of tests that were testing
the screen stack broke after the recent additions relating to result
callbacks.

This cleans up that problem.
2023-04-18 11:54:32 +01:00
Rodrigo Girão Serrão
66a644845b
Prevent reactive-watcher loop in Tabs / TabbedContent. (#2305)
* Add regression test for #2229.

* Fix potential reactive-watch loop.

* Simplify regression test.

Labels are cheaper to use and the final visual result of the test won't depend on the directory it runs from.

* Simplify solution.

Turns out I didn't need a descriptor. :(

* Fail on empty tab.
2023-04-18 11:48:33 +01:00
Rodrigo Girão Serrão
3a7cf08ef2
Make scrollable containers focusable. (#2317)
* Make scrollable containers focusable.

Related issues: #2270.
2023-04-18 11:44:32 +01:00
Dave Pearson
77e47f7508
Swap the result callbacks on screens to be a stack of callbacks
It is possible for the same instance of a screen to get pushed onto the
screen stack multiple times; as such we really need to keep track of all the
callback requests.

So here I register a callback for every screen push and clean it up on every
screen pop; with those without callbacks being no-ops.
2023-04-18 11:40:12 +01:00
darrenburns
496f8b4524
Updating styles on demand instead of on_idle (#2304)
* Updating styles on demand instead of on_idle

* Tidy up update_styles

* Fix LRU cache tests

* Remove some debugging code

* Adding test for pseudoclass style update

* Update changelog
2023-04-18 11:36:00 +01:00
Rodrigo Girão Serrão
01d67173e8
Don't expose snippets publically. (#2300) 2023-04-18 10:19:43 +01:00
Dave Pearson
b67f4f89cc
Initial testing of screen result callbacks
This is roughly how it should work. Having got this going and constructed
test code to go with it (outwith of this commit, not unit testing code, just
a test app to try out the ideas), I wanted to get this onto the forge for
further mulling over tomorrow.

The one sneaky/questionable thing here is that I'm sort of dumpster-diving
the screen stack to get the "parent" screen, to make the callback in
context. This both feels right and feels like a cheat. On the other hand
it's public for a reason, right?

Right?
2023-04-17 21:03:49 +01:00
Will McGugan
e930e82526
fix for win driver (#2303) 2023-04-17 17:06:07 +01:00
Dave Pearson
f8b51ea269
Ensure the active message pump is set when app is the sender (#2302)
See https://github.com/Textualize/textual/issues/2301
2023-04-17 16:23:31 +01:00
Will McGugan
0509cf8948
Border style (#2292)
* border styles

* docs for border styles

* fix tests

* tests

* tests and docs

* changelog

* implement auto

* style information fix
2023-04-16 12:31:39 +01:00
Dave Pearson
9fb63f9b53
Merge pull request #2286 from davep/faqup
Update the centring FAQ to reference `Center`
2023-04-15 09:05:07 +01:00
Dave Pearson
52dcca4e8c
Merge pull request #2287 from davep/export-button-variant 2023-04-14 15:59:01 +01:00
Dave Pearson
3c1a311a67
Update the Button docs to mention ButtonVariant
I'm not 100% sure how to get this into the docs as I'd like, and it seems
we've moved the API docs around a lot in respect to widgets, recently (I'm
aware of this but aren't sure what the new layout is yet).

This at least starts to get things into the right place.
2023-04-14 13:08:26 +01:00
Dave Pearson
8fe14e44da
Update the CHANGELOG 2023-04-14 12:19:24 +01:00
Dave Pearson
3ce910f764
Add textual.widgets.button to expose ButtonVariant
See #2264.
2023-04-14 12:17:53 +01:00
Dave Pearson
bec01e99d1
Rebuild the FAQ
Keep forgetting to do this!
2023-04-14 12:11:45 +01:00
Dave Pearson
ee8153c9ed
Update the centring FAQ to reference Center
See #2263.
2023-04-14 12:09:25 +01:00
darrenburns
898de5a69c
Fix for empty ListView bindings not firing (#2281)
* Fix bindings not firing when ListView is empty

* Regression test for empty ListView bindings not working

* Update changelog
2023-04-13 15:32:56 +01:00
Will McGugan
5e50b2e417 optimization 2023-04-13 14:33:01 +01:00
Will McGugan
58b8d22a3c remove bell 2023-04-13 14:23:06 +01:00
Will McGugan
04b994836c
Strips render optimization (#2278)
* WIP optimization

* optimization

* simplify, add comments

* docstring

* Update src/textual/_compositor.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/_compositor.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/strip.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/_compositor.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* driver bell

* optimize render

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-13 14:15:32 +01:00
darrenburns
5246282c22
Improving data table documentation (#2279)
* Improving data table documentation

* More info on DataTable

* Add note on retrieving cursor coordinate

* Add note on DataTable supporting more than just strings

* Add note on cell styling and justifying - common question

* Slight rewording

* Explaining what "row labels" are.

* Update docs/widgets/data_table.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Update docs/widgets/data_table.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Update docs/widgets/data_table.md

Co-authored-by: Will McGugan <willmcgugan@gmail.com>

* Update docs/widgets/data_table.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/widgets/data_table.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/widgets/data_table.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/widgets/data_table.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/widgets/data_table.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Improve data table fixed rows/columns docs

* Update some examples

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-13 14:09:19 +01:00
Rodrigo Girão Serrão
bb2c31ba35
Add --port option to textual console. (#2258)
* Add --port option to textual console.

* Changelog.

* Address review feedback.

* Mark unpredictable test as xfail.

This test gets an xfail mark until #2254 is open.

* Make DEVTOOLS_PORT a constant.

Related review: https://github.com/Textualize/textual/pull/2258\#discussion_r1165210395

* Factor logic into function.

Related review: https://github.com/Textualize/textual/pull/2258\#discussion_r1165298259

* Remove dead import.
2023-04-13 11:57:35 +01:00
Rodrigo Girão Serrão
e32cdbb390
Merge pull request #2276 from Textualize/tabs-scroll-to-center
Scroll to center when tab is clicked.
2023-04-13 10:48:15 +01:00
Rodrigo Girão Serrão
5104cbe501 changelog 2023-04-12 22:28:48 +01:00
Rodrigo Girão Serrão
663b09736e Scroll to center when tab is clicked.
Related comment: https://github.com/Textualize/textual/issues/2256#issuecomment-1505551728
2023-04-12 22:25:37 +01:00
Will McGugan
c249548c43
Move responsibility for writing in to driver (#2273)
* Move responsibility for writing in to driver

* remove driver property

* optimization for segments

* force terminal

* Update src/textual/drivers/_writer_thread.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* no safe box

* safe box false

* force null file

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-12 17:10:21 +01:00
darrenburns
6369c37907
Ensure styles applied in correct order in DataTable (#2272)
* Ensure styles applied in correct order in DataTable

* Add snapshot regression test for datatable style ordering

* Update CHANGELOG
2023-04-12 14:45:24 +01:00
Will McGugan
03fa641be7
Simplify driver (#2252)
* Simplify driver

* remove debug flag

* added set_terminal_size to driver

* restore flush

* Restore debug mode

* docstring

* fix parser

* simplify windows driver

* driver update

* annotations

* docstrings
2023-04-12 13:44:22 +01:00
Will McGugan
71becfc090 make Timer.start private 2023-04-12 13:42:57 +01:00
Will McGugan
2aa59f1ff0 changelog 2023-04-12 12:12:47 +01:00
Will McGugan
3c1898edeb don't return task 2023-04-12 12:08:22 +01:00
Will McGugan
f239bc1aa4 docstring 2023-04-12 12:05:24 +01:00
Will McGugan
2852c41597 exception docstring 2023-04-12 11:55:16 +01:00
Will McGugan
f81d76fcf0 docs 2023-04-12 11:43:36 +01:00
Will McGugan
7c25402c5d comment 2023-04-12 11:37:47 +01:00
Will McGugan
4ef070df66 docs 2023-04-12 11:22:19 +01:00
darrenburns
2bfe7df524
Add docstring to action_check_bindings (#2266)
* Add docstring to action_check_bindings

* Use action docstring convention
2023-04-12 11:16:59 +01:00
darrenburns
f95e30870b
Tabbed content activated message (#2260)
* Add a message for the tabbed content activated

* Add a docstring

* Testing tabbed content activated message

* Update changelog

* Add reference to the docs about TabbedContent.TabActivated
2023-04-12 10:55:14 +01:00
darrenburns
6352ceb61b
Datatable remove row (#2253)
* Checking in remove_row progress

* Ensuring structures updated correctly when row deleted

* Clamping index

* Failed attempt

* Removing rows

* Update a type hint in DataTable

* Remove some code that wasnt required

* Use index syntax instead of get

* Add DataTable remove row test

* Snapshot tests for removing rows

* Add a docstring for DataTable.remove_row method

* Update changelog regarding DataTable.remove_row

* Add check_idle call to remove_row
2023-04-11 18:48:58 +01:00
Will McGugan
13939499d9
implement single line comments (#2248) 2023-04-11 15:21:41 +01:00
Rodrigo Girão Serrão
48e8b510ba
Merge pull request #2255 from Textualize/scroll_to_center
Add scroll_to_center method.
2023-04-11 15:20:38 +01:00
Rodrigo Girão Serrão
349f414dac Use Offset operators. 2023-04-11 14:51:59 +01:00
Rodrigo Girão Serrão
8fe9e97fd7 Restore deleted snapshot tests. 2023-04-11 14:23:45 +01:00
Rodrigo Girão Serrão
2588cfdb0d Update snapshot test. 2023-04-11 13:39:24 +01:00
Rodrigo Girão Serrão
454254fab4 Implement scroll_to_center method. 2023-04-11 13:36:34 +01:00
Rodrigo Girão Serrão
e87edd79cb Add test for scroll_to_center method. 2023-04-11 13:29:56 +01:00
Will McGugan
3c8f2ec4e9 map geometry 2023-04-10 21:57:20 +01:00
Will McGugan
af93a82fb1 fix byte example 2023-04-10 17:25:13 +01:00
Will McGugan
3d642e1c71 comments, made update_timer private 2023-04-10 17:10:04 +01:00
Will McGugan
4f7b2d00bc
fix arrangement cache (#2249)
* fix arrangement cache

* changelog
2023-04-10 16:50:34 +01:00
darrenburns
40cc2db3b9
Fix for viewport units, remove DataTable max-height (#2247)
* Add viewport units snapshot test

* Fix snapshot app

* Update snapshots

* Update DataTable max-height to 100%

* Update CHANGELOG.md

* Remove max height from DataTable CSS
2023-04-10 16:13:48 +01:00
Will McGugan
b8468fff98 docstrings 2023-04-10 11:03:24 +01:00
Will McGugan
bd6ec2be48 widget API docs 2023-04-10 09:50:52 +01:00
Will McGugan
9a1e645ccd docstring 2023-04-09 20:23:14 +01:00
Will McGugan
5f7a0beba4 docstrings 2023-04-09 20:20:38 +01:00
Will McGugan
a729ee644c docstring and private 2023-04-09 20:13:53 +01:00
Will McGugan
02452c36bd link actions 2023-04-09 19:04:08 +01:00
Will McGugan
aceee9ff72 docstring 2023-04-09 18:59:36 +01:00
Will McGugan
a4b0c469ba docstrings 2023-04-09 18:39:29 +01:00
Will McGugan
c9de67f7df docstrings, remove unused Color._rich__ 2023-04-09 18:07:42 +01:00
Will McGugan
5fe69b05aa more doc strings 2023-04-09 15:09:20 +01:00
Will McGugan
9d4fd44a3a docstrings 2023-04-09 14:46:05 +01:00
Will McGugan
d7781d1da1 fix doc 2023-04-08 17:51:21 +01:00
Will McGugan
ab74735d14 docstring fix 2023-04-08 15:41:32 +01:00
Will McGugan
2244b1161e
api docs (#2240)
* api docs

* more docstrings

* logs

* docs shakeup

* fix notes, added intro to all apis

* Remove defaults to

* add note to events

* note

* use fira code
2023-04-08 15:35:49 +01:00
Will McGugan
5726a20e8e docstrings 2023-04-07 21:08:08 +01:00
Will McGugan
6c958a1140
docs update (#2239)
* docs update

* class template

* no annotations in sig
2023-04-07 18:57:56 +01:00
Will McGugan
79ebbff933 typo 2023-04-07 12:58:58 +01:00
Will McGugan
074bfd7e2f Headings 2023-04-07 11:56:00 +01:00
Will McGugan
94279ae1f9 docs fix 2023-04-07 11:35:59 +01:00
Will McGugan
c4774155ab changelog 2023-04-07 11:30:15 +01:00
Will McGugan
e9ec627629
version bump (#2236) 2023-04-07 09:52:21 +01:00
Will McGugan
e4b45ba63f
docs on await mount (#2235) 2023-04-07 09:46:27 +01:00
Will McGugan
c3424b0224
CHop fix (#2227) 2023-04-07 08:44:52 +01:00
darrenburns
976bd2f5c2
Move DataTable cursor with page up/down, home, end (#2228)
* Add pageup and pagedown actions to DataTable, with no impls

* Pagedown moves DataTable cursor now

* Account for header height in pagedown action

* Page Up support in the DataTable

* Fix and off-by-1, ensure page up/down works on col cursor

* Add placeholder scroll home/end action handlers to datatable

* Add scroll home and scroll end

* Hide hover cursor when home or end is used

* Ensure home and end work correctly with all curosrs

* Testing home/end/pagedown/pageup cursor movement in DataTable

* Docstrings for new datatable actions

* Fix a broken unit test for the DataTable
2023-04-06 21:22:31 +01:00
Will McGugan
c3e56f1f19 changelog 2023-04-06 21:18:59 +01:00
Will McGugan
4e88bb9b62
flush on exit (#2231) 2023-04-06 21:17:34 +01:00
Will McGugan
2969abf241
optimize horizontal and vertical (#2234)
* optimize horizontal and vertical

* generator to list expressions

* micro op

* another micro-optimization
2023-04-06 21:05:51 +01:00
Will McGugan
44367a7422
Expanding fr (#2221)
* forced fr to expand

* margin size

* remove comment

* missing snapshot

* snapshot tests

* changelog

* optimize

* snapshot fix

* snapshot update

* snapshot and fixes

* docstrings [skip ci]
2023-04-06 17:30:32 +01:00
Jackomatrus
c76667be5f
Fixed a wrong reference (#2226)
The new line referred to in line 177 was added to the StopwatchApp class, not the Stopwatch class.
2023-04-06 11:14:30 +01:00
Will McGugan
5c514b0dab
scroll visible snapshot (#2225)
* scroll visible snapshot

* change text of test
2023-04-06 11:13:09 +01:00
Will McGugan
eadd487584 fix scroll issue 2023-04-06 10:29:50 +01:00
Dave Pearson
a7c0a792cf
Merge pull request #2215 from davep/dirtree-filter 2023-04-05 21:47:56 +01:00
Dave Pearson
688b87b6d1
Update the CHANGELOG 2023-04-05 20:50:16 +01:00
Dave Pearson
7477624507
Merge branch 'main' into dirtree-filter 2023-04-05 20:48:36 +01:00
Dave Pearson
23263c45f1
Document the filtering support of DirectoryTree 2023-04-05 20:47:35 +01:00
Dave Pearson
5c2c5d50b6
Remove hangover argument documentation from initial experiment 2023-04-05 10:13:58 +01:00
Dave Pearson
5f31ecc607
Wee tidy of some docstrings in _markdown.py (#2217) 2023-04-05 10:11:41 +01:00
Alex
f3f065d147
docs: Fix some typo (#2216) 2023-04-05 10:11:27 +01:00
Will McGugan
41af489648
title descriptors (#2213)
* title descriptors

* add extra line around titles

* changelog

* snapshots

* comment

* Fix border refresh

* simplify typing

* test for None case
2023-04-05 10:10:43 +01:00
Dave Pearson
b365e1504b
Swap the directory tree filtering to method-based
This lets developers subclass DirectoryTree and implement their own filter.
2023-04-05 10:08:46 +01:00
Dave Pearson
d93f5c32cc
Keep black happy
Somehow I'd lost my pre-commit hooks.
2023-04-04 22:17:23 +01:00
Dave Pearson
f149828693
Add optional support for filtering path entries to DirectoryTree 2023-04-04 21:40:49 +01:00
Will McGugan
c2f7004fbb changelog 2023-04-04 15:57:55 +01:00
Will McGugan
380114489d docs fix 2023-04-04 15:43:10 +01:00
Will McGugan
b5689b1f69
Worker API (#2182)
* worker class

* worker API tests

* tidy

* Decorator and more tests

* type fix

* error order

* more tests

* remove active message

* move worker manager to app

* cancel nodes

* typing fix

* revert change

* typing fixes and cleanup

* revert typing

* test fix

* cancel group

* Added test for worker

* comment

* workers docs

* Added exit_on_error

* changelog

* svg

* refactor test

* remove debug tweaks

* docstrings

* worker test

* fix typing in run

* fix 3.7 tests

* blog post

* fix deadlock test

* words

* words

* words

* workers docs

* blog post

* Apply suggestions from code review

Co-authored-by: Dave Pearson <davep@davep.org>

* docstring

* fix and docstring

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/widgets/_markdown.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/worker.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Fix black

* docstring

* merge

* changelog

---------

Co-authored-by: Dave Pearson <davep@davep.org>
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-04-04 13:12:51 +01:00
Rodrigo Girão Serrão
c1ef3702fd
Fix border rendering issue. (#2212) 2023-04-04 11:04:14 +01:00
Dave Pearson
c527d168aa
Merge pull request #2205 from davep/bug/2203/radioset
Rework `RadioSet` so it no longer leans on the DOM for state
2023-04-04 09:40:04 +01:00
Rodrigo Girão Serrão
34b926ed3b
Update docstring for visible (#2211)
As per the confusion in #2208
2023-04-04 09:38:36 +01:00
Dave Pearson
c74aaa4112
Add rich.repr.auto to the Changed message 2023-04-03 21:41:48 +01:00
Dave Pearson
52af6064ba
Update the RadioSet tests to not dive into _buttons
It doesn't exist any more.
2023-04-03 21:10:37 +01:00
Dave Pearson
236ceccd30
Do away with _buttons 2023-04-03 20:56:56 +01:00
Dave Pearson
4b23539bee
Merge pull request #2174 from davep/cmd-faqtory 2023-04-03 16:58:42 +01:00
Dave Pearson
3d1d6b1d98
Update the ChangeLog 2023-04-03 11:54:48 +01:00
Dave Pearson
a8beacccc0
Rework RadioSet so that it doesn't lean so heavily on the DOM
Stemming from #2202 and implementing the solution decided in #2203. Pretty
much this change removes all the state change/handling being done on the DOM
and keeps the state internally.
2023-04-03 11:51:28 +01:00
Dave Pearson
815ff86c1f
Merge pull request #2197 from davep/doc-tidy 2023-04-02 15:40:17 +01:00
Dave Pearson
7c1584a812
Remove type information from property docstrings 2023-04-02 10:45:10 +01:00
Dave Pearson
fb56a89862
Remove type information from a property docstring 2023-04-02 10:43:06 +01:00
Will McGugan
eab073e603
Layer scroll fix (#2196)
* fix scroll spacing

* fix and snapshot

* changelog
2023-04-02 09:56:50 +01:00
Will McGugan
e4d158d041 docstring 2023-04-02 08:54:40 +01:00
Will McGugan
eb4c7ef50f
Fix issue with modals (#2195)
* Fix issue with modals

* changelog

* fix binding on button

* binding tweak

* changelog

* snapshots

* version bump
2023-04-02 08:52:35 +01:00
Will McGugan
80d9681caf docstring 2023-04-02 08:47:33 +01:00
Will McGugan
fdb885233f version bump 2023-04-02 08:43:59 +01:00
Will McGugan
2ba48051e6 snapshots 2023-04-02 08:43:02 +01:00
Will McGugan
efa4e9a129 changelog 2023-04-01 18:51:07 +01:00
Will McGugan
11c3790eba binding tweak 2023-04-01 18:48:03 +01:00
Will McGugan
b48178b80d fix binding on button 2023-04-01 18:34:51 +01:00
Will McGugan
241d6c989d changelog 2023-04-01 18:25:39 +01:00
Will McGugan
8273f78c09 Fix issue with modals 2023-04-01 18:21:07 +01:00
Dave Pearson
0b8f044dd3
Remove possible Yorkshireism
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-30 16:56:40 +01:00
Dave Pearson
b5b4623427
Key availability FAQ redux 2023-03-30 15:30:54 +01:00
Dave Pearson
4fcf44c354
Merge pull request #2177 from davep/markdown-number-list
Auto-increment ordered lists within Markdown
2023-03-30 14:24:28 +01:00
Dave Pearson
19a0846068
Merge branch 'main' into markdown-number-list 2023-03-30 14:23:12 +01:00
Will McGugan
0750bc20ea
copy bindings (#2176)
* copy bindings

* changelog

* simplify
2023-03-30 13:53:48 +01:00
Dave Pearson
b9726bb2b1
Auto-increment ordered lists within Markdown
Addresses #2002.
2023-03-30 12:48:05 +01:00
Will McGugan
2094d6b18c titltes on tutorial 2023-03-30 12:15:09 +01:00
Will McGugan
e35a8ade16 fix svg css 2023-03-30 12:07:44 +01:00
Will McGugan
9a30cc2b4d improved error message 2023-03-30 12:05:07 +01:00
Will McGugan
5d1902de86 Better WatchCallbackType 2023-03-30 11:42:37 +01:00
Dave Pearson
01be13d7c6
Add a FAQ about some keys not making it to Textual apps 2023-03-30 11:27:50 +01:00
Dave Pearson
1a42b5024d
Add a Makefile target for building the FAQ
I always have to double-check. Now I can just "make faq".

Or at least I have somewhere else to double-check if I forget the Makefile
target.
2023-03-30 11:26:48 +01:00
Dave Pearson
0a9b9603a0
Extend OptionList testing (#2166)
* Add tests for errors when removing things that don't exist

* Add tests for errors when toggling enabled/disabled on invalid options
2023-03-30 11:20:17 +01:00
Will McGugan
87f96ef8a1
fix for hiding cursor on windows (#2171)
* fix for hiding cursor on windows

* fix freeze

* version bump
2023-03-30 11:04:04 +01:00
darrenburns
b0656fd606
Some docstrings for actions (#2172) 2023-03-30 10:18:19 +01:00
Will McGugan
2cd8295325
Release0170 (#2165)
* blog post

* blog post

* options list

* snapshot

* words

* fix flicker
2023-03-29 16:29:28 +01:00
Dave Pearson
0be094cf4a
Add OptionList widget (#2154)
* Menu skeleton

The vaguest of starts. Near the end of the day and I want to pick this up
later/tomorrow, so making sure it's on the forge before I go AFK.

* Initial design for populating the menu

One of the driving forces in the design here is that a menu option can have
a prompt that is more than one line in height; and different options can
have different height prompts. This has meant that I've had to finally get
to grips with Rich renderable types and related things.

The menu is going to lean heavily on the line API, and aims to be as
efficient as possible when it comes to having a very large menu. Large menus
are a bad idea! Nobody should be using large menus. On the other hand,
people will do it so let's allow for it.

Work in progress commit. Lots more to come.

* Add a reminder about width

* Make mypy and friend happy with OptionLineSpan.__contains__

* Fix typo

* Add a debug message

I'll remove this later, but I'd like to bubble up some debug stuff into my
own test app.

* Get scrolling working

After battling for ages to try and figure out why scrolling just wasn't
working at all, two things turned out to be at play:

1. If `overflow: hidden` you need force=True. Doh!
   - I should know that too as I added force. O_o
2. Even if you do the above, it doesn't work as you'd expect *if* animation
   is turned on. Turning that off made things work.

I've raised #2077 as a reminder to myself that I need to look into '2' some
more. The menus feel very snappy with animation off, but I suspect there
will be a call to allow animation during menu navigation so that'll need
sorting at some point I guess.

* Add support for home and end keys

Which, shockingly, go to the first and last items in the menu.

* Remind myself I need to remove the Debug message

Once I'm done with it.

* Make the MenuOption class a NamedTuple

There's no obvious benefit to it being a full class, but some benefits to it
being a NamedTuple.

* Add a Menu.OptionHighlighted message

* Add a missing argument to a docstring

* Fully type the option line segments list

I forgot to ensure that it was fully typed.

* Add a method for getting an option at a given position

* Better name for the location of the option

* Include the highlighted index in the OptionHighlighted message

* Add home and end to the binding docstring

* Add support for page up/down in a menu

* Rename OptionLineSegments to OptionLine

It's the details for a line of an option that hold the segments, amongst
other things. No point in repeating information here.

* Add support for a Menu.OptionSelected message

* Remove a TODO comment

It's not that it doesn't need doing yet; it's just that I've moved some TODO
stuff to a WIP document.

* Document the enter binding

* Add a reminder to myself about why animate is off

For a menu I feel that animate *should* be off, but if anyone is reading
this bit of code and feels it should be on, this will explain why it isn't.

* Explain OptionLineSpan a wee bit more

* Import Literal from typing_extensions rather than typing

This is needed for older Pythons.

* Move the prompt shapes calculation code into its own method

* Add a property for getting the option count of the menu

* Add a method of adding an option to the menu

* Highlight first option if no highlight and then movement

* Ensure the virtual height is recalculated on addition

* Remove the method for getting a specific option

There's little point in letting the user treat the menu as if it's an array;
they should know what they put into it and anything that happens *on* the
menu will result in a message which will point to the option anyway.

* Add a menu separator

This isn't the complete version of this; aside from the obvious fact that at
the moment it's just treated line an ordinary menu option (which we don't
want), the presence of a separator means the index of options will be thrown
off, from the user's point of view. The point being, a menu with 4 options
and a separator might look like this:

    Option 1
    Option 2
    --------
    Option 3
    Option 4

I think the index of "Option 3" above should likely be 2 (starting from 0,
of course), not 3. This means I need to tweak the internals of the menu code
to take this into account while also keeping things efficient.

That's next up; but I wanted to get the core of this change in first so I
can noodle away and get the best approach to this.

* Finish off support for menu separators

Here I sort of add support for a menu having both content *and* prompts.
Content is anything that goes in the menu and results in lines being
rendered. Prompts are things that the end user actually gets to select from.
A menu option will have a prompt that has one or more lines. A menu
separator isn't an option but takes up one line.

* Add (back) a method for getting a particular option

Now that the menu content and the menu options are different lists, it's
possible to allow this again. While it still follows that menus shouldn't
really be treated like lists, there's no harm in providing this facility.

* Allow styling separators

* Fix how we tell the Rule to have no style

* Add a documentation line for the separator component class

* Apply default styling to the non-special options

* Set the default color to $text

This isn't actually working, but if I set it to an actual colour, it does
work. Need to dig into this more.

* Remove a TODO warning that isn't valid any more

* Have the menu option messages get the option via Menu.option

It did, and still could, pull directly from the _option property but one
step of indirection means that I can be sure anything "external" is going
via the public interface (yes, I know the message isn't really "external"
but it feels correct to treat it as such because it's for public
consumption).

* Make OptionLine just a Line and drop magic numbers for separators

Rather than overload the option index of the option line class with a magic
number to say that something isn't really an option, here I make the class
just about being a line, I keep the option_index but make it optional (no
pun intended); so that if it's `None` that means "this isn't related to a
menu option".

* Drop the assert that non-option content is a separator

I can't see much benefit in doing this in what should be a fairly tight
loop. This code relates to data that's all under the hood so we shouldn't
need to be quite so defensive.

* Remove unused import of Final

* Add a clear method

* Add support for disabled menu options

At the moment this is done in a way that, as the user navigates, the
disabled options *aren't* skipped. I'm still undecided about this. Your
traditional dropdown menus sometimes do that, sometimes don't do that. And
to make things even more interesting this menu can really be used as a
large-data-friendly listbox and I'm not sure we'd want that there.

This may change.

Also, at this point, I'm also working to keep the MenuOption class a
NamedTuple, which means it's read-only (I don't want the user messing with
things outside of the menu), which means there's interface methods for
changing the disabled state that copy the option and change the disabled
state.

Again, I'll see if I carry on liking this or not. So far I'm okay with this.

* Dial in the styles some more

* Rename some methods that use index to say index in the name

I'm going to be adding support for an id for options too, and want the user
to be able to either access an option via index or via ID. This is the first
step to allowing that.

* Remove an unnecessary inherit

Looks like this was a hangover from an early version of the message classes
and I didn't clean up.

* Fix copy/paste-o

Now there is forever evidence as to where I stole my homework from.

* Add support for menu option IDs

The idea here is that they're purely from, and purely for, the developer who
is creating the menu. Internally I don't care about them and don't
personally use them. However, there is without a doubt a good case for
allowing the developer to specify IDs for options so here's optional support
for that.

* Add a method to get a menu option via an ID

* Reduce property access and list access calls

* Have the content-tracker code do a little less work

* Drop the menu option data attribute

It wasn't going to work well, was going to cause a bunch of problems with
typing, and really it's easier to do by the dev by having them inherit from
MenuOption. So let's do that.

* Remove unused imports

* Add a TODO reminder about subclasses menu optons

* Add an initial bit of unit testing

Just the most basic test so far; it's the end of the day but I want to start
here.

* Allow the caller to use None as an alias for MenuSeparator

In doing so, overhaul how I type candidate menu content vs actual menu
content, setting up a couple of type aliases and making it easier to
maintain.

* Rename the parameter for Menu.add to better match other changes

* Swap MenuOption over to being a standard class

It would have been nice to keep it as a named tuple, but I want the
developer to be able to subclass and add their own properties to the
option (think attaching some random data to a menu option). The problem is
you can't subclass a named tuple.

So... standard class it is, with some reasonably defensive work to
discourage the developer from changing the prompt and the ID on the fly.

For obvious reasons I need to let them change the disabled state on the fly,
and this is where things end up being a little iffy. The only way (right
now) the menu will refresh when the disabled state changes is if the
developer does so via one of the methods on Menu. If they go toggling the
state on the option itself and hope that the menu will reflect this... no,
that's not going to happen.

I *could* make it happen by somehow capturing a reference to the parent menu
inside the menu option, but then things get circular and I don't like that.

* Test using None as an alternative to MenuSeparator

* Flesh out the initial menu unit tests

* Add a module docstring to the core menu unit test

* Add some testing for using subclassed menu options

* Add a property for getting an iterator of the options

* Add unit tests for option enabled/disabled

* Rename Menu -> OptionList (and friends)

The great renaming! We sort of had decided this was coming, but kept going
back and forth on if we should, what it should be, etc. Decision made today.
While this is mostly everything you want from a menu, it is foundational
enough that it needs to really be something else so it's a list of options.
Options; in a list. An OptionList.

* Add a test for adding more items to an option list later on

* Remove the debug message

I think I'm at a stage where I don't need to use it any more.

* Start of OptionList movement tests

End of day commit; more to come.

* Update the pyi for the Menu -> OptionList rename

Missed this during the grand rename.

* Tidy up a test

* Export the DuplicateID exception

* Add a test for creating a duplicate ID

* Add some more OptionList movement tests

* Allow scrollbars by default

Until the great renaming, this code was all about being menus, which
normally don't have scrollbars, and so I made a point of not having them on.
Now that this code is more about it being a list of stuff, which can be the
foundation for a menu, we want the bars there by default and any derived
menu widget can turn them off.

So here we go.

This introduces some issues that now need to be addressed. For one thing no
thought has been given to horizontal scrolling in this code (easy enough to
solve).

Also, weirdly though, the vertical scrollbars aren't quite reaching the
bottom when we highlight the last item. Wasn't expecting that, although I'm
sure there's a simple cause for that.

* Remove hover component class

I do want this, but not yet, so don't have it kicking around until I'm
actually doing something with it.

* Add missing items to the component classes docstring.

* Crop the lines that we draw

This in turn adds support for horizontal scrolling. We're not actually going
to support horizontal scrolling; in conversation with Will we've decided
that it will be *only* a vertical scrolling list, so options will be
rendered within the confines of the width.

* Allow for scrollbars by default

* Make scrolling to a non-highlight a nop rather than an error

Being able to call scroll_to_highlight even if nothing is highlighted is
useful; throwing an error when something isn't, isn't helpful. So let's make
that a no-op.

* Make a note that option ID tracking could be changed

* Ensure highlight is pulled into view on resize

It's possible that a resize might cause a highlight to partially, or even
totally, go out of view. This commit ensures that after such an event this
will be handled.

* Save an attribute access

* Microoptimise _refresh_content_tracking some more

* Reintroduce animation

But only if the vertical scrollbar is visible (see #2077 for context).

* Force a refresh when doing a specific add

* Add support for a mouse hover effect

* Highlighted a clicked option (where appropriate)

* Improve the style of a focused highlighted hovered option

* Reduce the number of attribute lookups in the line drawing method

* Simplify the way we handle page up/down at the margins

Rather than wrap around when doing page up/down, have them work as home/end
when at the margins.

* Remove unnecessary import

* Add some more option list movement tests

* Add tests for moving around an empty list

* Remove the debug message (again)

* Test moving when there are items but no highlight

* Ensure the mouse over gets cleared on clear

* Remove mouse hover logging code

It was useful while adding mouse hover support, but it's not needed now.

* Force a refresh of content tracking when doing a clear

* Rename some methods to talk about options

I want to add a `remove` for options, but widgets already have a `remove`.
So I could call it `remove_option` but then that's an imbalance with `add`.
So this renames `add` to `add_option`, and also renames `clear` to
`clear_options`.

* Add support for removing an option

* Add highlight wrapping back

I made some recent changes to highlight validation where more sensible in
the general sense, but broke the wrapping when using cursor keys to move
around. This takes that into account.

* Add tests for removing options

* Reduce the number of attribute lookups for spans

* Swap to watching highlighted to handle movement

I'd started out with an explicit refresh of the highlighted option, while
working on other things, and forgot to swap over to using a watch method.
This commit fixes that.

* Make a mouse-clicked option select that option too

* Add unit tests for option list messages

* Add unit tests for mouse hover events

* Clarify the point of the mouse click test

* Add an option list message test for highlighting a disabled option

* Add tests for interacting with disabled OptionList options

* Typo fixing

Try and make the docstring sound something approaching English.

* Fix the OptionMessage.__init__ docstring

* Add the API documentation for the OptionList

* Update the OptionTest message tests for initial highlight

Having changed things around a little regarding initial highlight, the unit
tests needed updating.

* Start the reference for the OptionList

I feel this needs a bit more work, but this feels like the core of what we
want to be emphasising.

* Add the OptionList to the gallary

* Try some extra pauses in OptionList tests

While the tests are all passing just fine locally, I'm getting the whole
whack-a-mole thing in CI that is mostly down to subtle timing issues. This
is a test to see if these extra pauses let the test apps settle down before
starting the meat of the testing.

* Try pausing in tests without setting a time

* Add snapshot tests for the OptionList examples

* Sort the bindings

* Add a docstring to the default CSS

* Explain that mouse_hovering_over can be None

* Turn mouse_hovering_over into an internal property

There was a reason that I had it as a reactive, at one point, but looking at
the final form of this code I can't see a use for it any more. So bring it
internal and make it cheaper to update.

* Update the CHANGELOG

* Update the mouse hover test after the changes to the tracking variable

* Tweak the descriptions of the hover tests

Now that I've changed this away from being a reactive.

* Tweak the OptionList hover tests some more

* Rename the up/down actions to cursor_up/down

Re: https://github.com/Textualize/textual/pull/2154#discussion_r1151587080

* Don't kick off an idle check if the widget isn't running

Added at Will's suggestion. :-P

* Simplify how we watch the vertical scrollbar status

Re: https://github.com/Textualize/textual/pull/2154#discussion_r1151593625

* Change the hover highlight to $boost

Re: https://github.com/Textualize/textual/pull/2154#discussion_r1151628190

* Add a custom exception for when an option can't be found

Re:
74a2d079b3 (r1151632957)
and 74a2d079b3 (r1151631495)

* Update tests for the new option list exceptions

* Remove the options property

We've decided it has little utility given the rest of the interface of the
widget.

Re: https://github.com/Textualize/textual/pull/2154#discussion_r1151630437

* Remove import of iterator

It's no longer required.

* Fix some option list unit tests after removing options property

* Crate Line.segments as a strip

Rather than recreate the strip every time around, just create it as a Strip
to start with. Also, in doing so, add the option meta up front rather than
every time we draw the line.

Re: https://github.com/Textualize/textual/pull/2154#discussion_r1151600239

* Correct a comment typo

* Simplify the Separator docstring

* Docstring wording tweak

* Remove the import of Segment

It's not needed any more

* Flesh out the OptionList reference some more

Things like the component classes, bindings and messages had been left out.

* Update snapshot tests

Nothing of consequence has changed but it looked like the change to how the
lines are originally constructed has resulted in an under-the-hood change to
the data that goes into a snapshot.

* Add a missing word to a docstring

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Fix a typo

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Fix a typo

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Document some raises that were missing

* Turn off animation

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-29 14:27:56 +01:00
Will McGugan
a75b7cd088 verbosity doc paragraph 2023-03-29 10:22:38 +01:00
Dave Tapley
1dc24222ff
Document log groups and console -x (#2161) (#2162)
https://github.com/Textualize/textual/discussions/2161

Groups as of:
ab0de0139c/src/textual/_log.py (L4-L15)
2023-03-29 10:20:21 +01:00
Will McGugan
ab0de0139c
Update README.md
Move Discord button
2023-03-28 17:43:48 +01:00
Will McGugan
8596fbf4e8
Update README.md
Link Discord button
2023-03-28 17:43:22 +01:00
Will McGugan
3c60683aa8
Update README.md
Added Discord button
2023-03-28 17:40:47 +01:00
Will McGugan
45e944b65d
Update README.md
Added discord link
2023-03-28 17:24:39 +01:00
Rodrigo Girão Serrão
01899189d8
Merge pull request #2128 from Textualize/fix-2063
Fix issues with watching CSS reloading
2023-03-28 16:01:46 +01:00
Rodrigo Girão Serrão
a06b59f951
Merge branch 'main' into fix-2063 2023-03-28 15:49:07 +01:00
Will McGugan
eaca92bd37
Set classes (#2160)
* Setting classes

* changelog

* docstrings

* test bad identifiers

* Update CHANGELOG.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Add return of self

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-03-28 15:45:40 +01:00
Will McGugan
85a6f8343e change Any import 2023-03-28 15:29:33 +01:00
Will McGugan
b005c13956
remove arrangement spacing (#2157)
* remove arrangement spacing

* snapshot test

* comment

* changelog
2023-03-28 15:27:01 +01:00
Rodrigo Girão Serrão
b9c6aec2e6 Add clarifications. 2023-03-28 15:07:39 +01:00
Rodrigo Girão Serrão
3a6967341c Remove dead import. 2023-03-28 15:03:30 +01:00
Rodrigo Girão Serrão
e2a16b5696 Add snapshot test for hot reloading. 2023-03-28 15:01:51 +01:00
Rodrigo Girão Serrão
474d5bc784 Add mechanism to run arbitrary code before screenshot. 2023-03-28 14:59:43 +01:00
darrenburns
17c6f3fc2a
Fix for interaction between pseudoclasses and widget-level render caches (#2155)
* Using pseudoclass state in DataTable cache keys

* Use full pseudo-class state on tree cache key

* Adding tests for Widget.get_pseudo_class_state

* Test hiding hover cursor when mouse cursor leaves DataTable

* Update CHANGELOG.md
2023-03-28 14:26:24 +01:00
Will McGugan
73f065bbbd
Logging handler (#2151)
* logging handler

* changelog

* remove logging experiment

* handler

* fix

* docs for logging handler
2023-03-28 11:50:28 +01:00
Will McGugan
c7103faae4
Merge branch 'main' into fix-2063 2023-03-28 10:35:06 +01:00
Rodrigo Girão Serrão
d787f61090
State version of widget addition in docs. (#2144)
* State version of widget addition in docs.

Related issues: #2133

* Fix ListX version info.

* Retroactively update changelog.
2023-03-27 22:32:18 +01:00
Will McGugan
a69b863005
fix for active message pump (#2148)
* fix for active message pump

* Add log file

* changelog
2023-03-27 22:31:30 +01:00
Rodrigo Girão Serrão
977698c99d
Merge pull request #2145 from Textualize/drop-uvloop
Drop implicit uvloop support.
2023-03-27 18:45:25 +01:00
Rodrigo Girão Serrão
11971446de Drop implicit uvloop support.
Related issues: #2051.
2023-03-27 18:37:21 +01:00
Rodrigo Girão Serrão
054c2f34d6
Merge pull request #2142 from Textualize/update-border-docs
Update docs with new border type.
2023-03-27 17:42:42 +01:00
Rodrigo Girão Serrão
f6f80249ee Snapshot update. 2023-03-27 17:31:47 +01:00
Will McGugan
e8c40410ee
check full map first (#2143) 2023-03-27 17:31:11 +01:00
Rodrigo Girão Serrão
9fa7de13dc Update docs with new border type.
Related PRs: #2139.
Related comments: https://github.com/Textualize/textual/pull/2139\#discussion_r1149249378
2023-03-27 16:55:26 +01:00
Will McGugan
0940546aab
compositor refactor and transparent screens (#2139)
* compositor refactor and trasparent screens

* multuple layers

* catch screen stack error

* refinement

* error messages

* capture screen stack

* new border type

* Background screen

* borders and bindings

* snapshot

* screen docs

* fix for missing screens

* screens docs

* fix for non updating transparent screens

* fix background resize

* changelog

* copy

* superfluous function

* update diagram

* inline code

* Update CHANGELOG.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/guide/screens.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* superfluous file

* Explicit None

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* docstring

* update docstring

* docstring make property private

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* docstring

* update docstring

* Apply suggestions from code review

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* docstrings

* remove comment, add docstring

* Apply suggestions from code review

Co-authored-by: Dave Pearson <davep@davep.org>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Dave Pearson <davep@davep.org>
2023-03-27 16:44:58 +01:00
Roy Attias
d0035b4d4b
examples: json_tree: Use public attributes (#2138) 2023-03-27 14:26:55 +01:00
darrenburns
5cbc9277da
Loosen importlib-metadata dependency specifier (#2140) 2023-03-27 11:14:45 +01:00
Will McGugan
844c6a006e fix post message 2023-03-24 21:33:40 +00:00
Will McGugan
32dc14e484
Fix scrollbar thumb (#2134)
* scrollbar tweak

* scrolbar rounding

* snapshot
2023-03-24 21:15:02 +00:00
Will McGugan
472b5cd946 snapshot test 2023-03-23 21:00:26 +00:00
Will McGugan
1e4dd1cee4 fix scrollbar thumb height 2023-03-23 20:59:44 +00:00
Will McGugan
11cf1f1d28
Fix map invalidation (#2129)
* Invalidation logic

* comment and docstring

* changelog

* snapshot
2023-03-23 18:36:46 +00:00
Rodrigo Girão Serrão
ac826e56bd Update changelog. 2023-03-23 17:39:42 +00:00
Rodrigo Girão Serrão
dce49cbefe Merge branch 'main' into fix-2063 2023-03-23 17:39:18 +00:00
Rodrigo Girão Serrão
676d93c80c Fix #2063.
Related issues: #2063. [skip ci]
2023-03-23 17:34:15 +00:00
Will McGugan
3fe04f7b2d
Text log scroll end (#2127)
* added switches

* snapshot

* changelog

* tweak docstrings

* Update src/textual/widgets/_text_log.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-23 17:21:13 +00:00
Rodrigo Girão Serrão
8fd3ccb32c
Add tests for action parsing. (#2112)
* Add tests for action parsing.

[skip ci]

* Fix action parsing issues.

Related issues: #2088.

* Simplify action parsing.

Turns out that we can just wrap the string that we want to parse as the arguments in '({string_here},)', as per @willmcgugan's comment in the PR review.

Related review comments: https://github.com/Textualize/textual/pull/2112\#issuecomment-1481015988

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-03-23 15:54:06 +00:00
Will McGugan
a4252a5760
auto table (#2123)
* auto table

* ws

* debug
2023-03-23 15:47:14 +00:00
Rodrigo Girão Serrão
700481129e
Merge pull request #2124 from Textualize/rodrigogiraoserrao-patch-1
Update CHANGELOG.md
2023-03-23 15:44:01 +00:00
Rodrigo Girão Serrão
8708f7b8bb
Update CHANGELOG.md 2023-03-23 15:01:50 +00:00
Rodrigo Girão Serrão
139896260b
Merge pull request #2102 from Textualize/verb-methods-return-self
Return 'self' in some widget verb methods.
2023-03-23 15:00:18 +00:00
Will McGugan
461db5dcd6
enable console markup (#2122)
* enable console markup

* changelog

* snapshot
2023-03-23 14:56:35 +00:00
Will McGugan
5a00dcdeff comment in diagnose 2023-03-23 13:34:23 +00:00
Rodrigo Girão Serrão
b3e6f7a9a6
Merge pull request #2119 from Textualize/fix-2107
Use consistent phrasing in styles reference
2023-03-23 12:05:12 +00:00
Rodrigo Girão Serrão
48d0547d86 Merge branch 'main' into fix-2107 2023-03-23 11:04:21 +00:00
Rodrigo Girão Serrão
559f976f78 Add more consistent phrasing.
Related issues: #2107
2023-03-23 11:04:17 +00:00
Rodrigo Girão Serrão
65e005cffe Return 'self' explicitly.
Related review comment: https://github.com/Textualize/textual/pull/2102\#pullrequestreview-1354201387
2023-03-23 10:07:33 +00:00
Rodrigo Girão Serrão
e15805b93b
Fix #1540. (#2097) 2023-03-23 09:38:50 +00:00
Rodrigo Girão Serrão
7316b5b6b0
Merge pull request #2113 from Textualize/fix-border-example
Improve subsection titles.
2023-03-23 09:13:51 +00:00
Rodrigo Girão Serrão
f9922ebe29 Improve subsection titles.
Related issues: #2108
Related PRs: #2110, #2064
2023-03-22 23:00:13 +00:00
Rodrigo Girão Serrão
a935a632fa
Merge pull request #2110 from Textualize/fix-2108
Fix missing border example.
2023-03-22 22:48:37 +00:00
Rodrigo Girão Serrão
9c672e69f0 Fix missing border example.
Related issues: #2108
Related PRs: #2064
2023-03-22 21:05:10 +00:00
Will McGugan
e758514ff3 word 2023-03-22 13:52:31 +00:00
Will McGugan
9529cac352
Version 0.16.0 (#2106)
* snapshot

* words

* word update
2023-03-22 13:38:23 +00:00
Rodrigo Girão Serrão
2a810f8c87
Implement border (sub)title. (#2064)
* Add Widget.border_title and border_subtitle.

Related issues: #1864

* Test setting border_(sub)title.

* Add border (sub)title references to StylesCache.

These internal references will make it easier for the instance of 'StylesCache' to know which border (sub)title to use, if/when needed.

* Add method to render border label.

* Add styles to align border (sub)title.

* Render border labels.

* Update styles template.

* Make new 'render_row' parameters optional.

* Add (sub)title border snapshot tests.

* Document border (sub)title and styles.

* Pass (sub)title directly as arguments.

Get rid of the watchers to make data flow easier to follow.
Related comment: https://github.com/Textualize/textual/pull/2064/files\#r1137746697

* Tweak example.

* Fix render_border_label.

This was wrong because border labels can be composed of multiple segments if they contain multiple styles. Additionally, we want to render a single blank space of padding around the title.

* Ensure we get no label when there's no space.

* Add tests for border label rendering.

* 'render_border_label' now returns iterable of segments.

* Add label to render_row.

* Fix calling signature in tests.

* Add padding to snapshot tests.

* Fix changelog.

* Update snapshot tests.

* Update snapshot tests.

* Border labels expand if there's no corners.

* Update CHANGELOG.md

* Fix docs.

* Remove irrelevant line.

* Fix snapshot tests.

* Don't share Console among tests.

* Simplify example in styles guide.

* Avoid expensive function call when possible.

* rewording

* positive branch first

* remove wasteful indirection

* fix changelog

---------

Co-authored-by: Will McGugan <willmcgugan@gmail.com>
2023-03-22 11:07:38 +00:00
Rodrigo Girão Serrão
b4c2afe789 Remove fat-finger deletion. 2023-03-22 09:53:54 +00:00
Rodrigo Girão Serrão
d32694f176 Update docstrings. 2023-03-22 09:39:40 +00:00
Rodrigo Girão Serrão
16bdcf8f1d Return 'self' in some widget verb methods.
I compiled a list of all widget methods that return 'None' and for which it _could_ make sense to make this change.
(I filtered out some methods, like watch and action methods.)

I tried choosing a subset of those methods, trying to only pick methods for which there weren't two things that could be returned (e.g., 'Widget.move_child' _could_ return either the widget or the child that was moved) and I also tried to only pick methods that have little or no parameters (e.g., 'Widget.animate' has many parameters and is typically called with quite a few.

These are all the 'Widget' methods for which this could make sense:
- 'move_child' (either return 'self' or the actual 'child' that was moved…)
- 'animate'
- 'scroll_to' / 'scroll_relate' / 'scroll_home' / 'scroll_end' / 'scroll_left' / 'scroll_right' / 'scroll_down' / 'scroll_up' / 'scroll_page_up' / 'scroll_page_down' / 'scroll_page_left' / 'scroll_page_right' / 'scroll_visible'
- 'refresh'
- 'focus' / 'reset_focus'
- 'capture_mouse' / 'release_mouse'

Additionally, I looked at each widget, and found these methods:
- 'Tree'
    - 'TreeNode'
        - 'expand' / 'expand_all' / 'collapse' / 'collapse_all' / 'toggle' / 'toggle_all'
        - 'set_label'
    - 'clear' / 'reset'
    - 'select_node' (either return 'self' or the actual 'node' that was selected)
    - 'scroll_to_line' / 'scroll_to_node'
    - 'refresh_line'
- 'ToggleButton'
    - 'toggle' (and 'action_toggle'?)
- 'TextLog'
    - 'write'
    - 'clear'
- 'Tabs'
    - 'add_tab' / 'remove_tab'
    - 'clear'
- 'Switch'
    - 'toggle' (and 'action_toggle'?)
- 'Static'
    - 'update'
- 'Pretty'
    - 'update'
- 'Placeholder'
    - 'cycle_variant'
- '_markdown.py'
    - 'MarkdownBlock'
        - 'set_content'
    - 'MarkdownTableOfContents'
        - 'set_table_of_contents'
- 'Input'
    - 'insert_text_at_cursor'
- 'DirectoryTree'
    - 'load_directory'
- 'DataTable'
    - 'update_cell' / 'update_cell_at'
    - 'clear'
    - 'refresh_coordinate' / 'refresh_row' / 'refresh_column'
    - 'sort'
- 'Button'
    - 'press'

Related issues: #1908
Related discussions: #1817
2023-03-22 08:17:00 +00:00
Rodrigo Girão Serrão
29692736d0
Merge pull request #2095 from Textualize/fix-1438
Allow paths when creating 'DirectoryTree'.
2023-03-21 14:35:28 +00:00
Rodrigo Girão Serrão
f92c939511 Rename variable. 2023-03-21 14:27:03 +00:00
Rodrigo Girão Serrão
2d70172b8e Allow paths when creating 'DirectoryTree'.
Related issues: #1438.
2023-03-21 14:18:49 +00:00
Will McGugan
5cd1263875
Simplify driver (#2091)
* simplify driver

* fix headless driver

* docstrings and simplify

* tidy

* docstrings

* docstring

* docstring

* more docstrings

* import

* Update src/textual/app.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/driver.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* docstring

* Update src/textual/drivers/linux_driver.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/drivers/linux_driver.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update src/textual/drivers/linux_driver.py

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* docstring

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-21 10:17:51 +00:00
Will McGugan
a08d8e417b
full map optimization fix (#2092) 2023-03-20 15:30:52 +00:00
Will McGugan
7185e2930d
Driver class environ (#2036)
* Driver class environment variable

* comments
2023-03-20 11:21:56 +00:00
Will McGugan
2a6368754a fix screenshot 2023-03-18 17:02:46 +00:00
Will McGugan
50f4bd5f46 remove fonts 2023-03-18 16:47:51 +00:00
Will McGugan
8fca0852d4
fix for scrollbar issue (#2086)
* fix for scrollbar issue

* pause between mouse messages
2023-03-18 13:55:24 +00:00
d999c69261
Allow customizing the markdown parser (#2075)
* Allow customizing the markdown parser

For instance, code using Markdown might wish to create a markdown
parser that does not parse embedded HTML:
```py
def parser_factory():
    parser = MarkdownIt("gfm-like")
    parser.options["html"] = False
    return parser
```

* blacken

* Implement requested changes

* fix AttributeError
2023-03-18 11:19:05 +00:00
Will McGugan
f5e779c4c4
tabbed content widget (#2059)
* tabbed content widget

* TabbedContent widget and docs

* missing docs

* fix active

* doc fix

* test fix

* additional test

* test for render_str

* docstring

* changelog

* doc update

* changelog

* fix bad optimization

* Update docs/widgets/tabbed_content.md

Co-authored-by: Dave Pearson <davep@davep.org>

* fix for empty initial

* docstrings

* Update src/textual/widgets/_content_switcher.py

Co-authored-by: Dave Pearson <davep@davep.org>

* docstring

* remove log

* permit nested tabs

* renamed TabsCleared to Cleared

* added tests, fix types on click

* tests

* fix broken test

* fix for nested tabs

---------

Co-authored-by: Dave Pearson <davep@davep.org>
2023-03-18 10:38:41 +00:00
Will McGugan
2c120c0983
Replace markdown table (#2055)
* Replace markdown table

* snapshots

* fix markdown snapshot

* snapshot update

* imports and docstrings

* remove reference to DataTable

* typing fix
2023-03-18 10:38:26 +00:00
Will McGugan
45520f2da1
color tests to 100% (#2078)
* color tests to 100%

* tweak

* remove overly complex code
2023-03-16 11:42:51 +00:00
Will McGugan
de692aaf07
fix for remove nodes (#2080)
* fix for remove nodes

* added test
2023-03-16 11:36:10 +00:00
Will McGugan
a404ee5e01
add app to active message pump (#2071)
* add app to active message pump

* made sender private

* changelog
2023-03-16 11:26:08 +00:00
Will McGugan
43253f5d80
fix border issue (#2074)
* fix border issue

* add PR to changelog
2023-03-16 09:03:02 +00:00
Will McGugan
9b191914cb copy change 2023-03-15 20:28:02 +00:00
TomJGooding
111233f1b4
fix(markdown): handle hard line breaks (#2060) 2023-03-15 20:24:15 +00:00
Will McGugan
04340bd0ba
new post (#2069)
* new post

* Update docs/blog/posts/await-me-maybe.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/blog/posts/await-me-maybe.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* Update docs/blog/posts/await-me-maybe.md

Co-authored-by: Dave Pearson <davep@davep.org>

* Update docs/blog/posts/await-me-maybe.md

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>

* words

---------

Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
Co-authored-by: Dave Pearson <davep@davep.org>
2023-03-15 16:49:12 +00:00
Will McGugan
8d17ad39fd copy edit 2023-03-15 16:39:05 +00:00
Will McGugan
c889b4bfe9 words 2023-03-15 16:35:18 +00:00
Will McGugan
d64e9a7e67
Update docs/blog/posts/await-me-maybe.md
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-15 16:15:47 +00:00
Will McGugan
66535e9c07
Update docs/blog/posts/await-me-maybe.md
Co-authored-by: Dave Pearson <davep@davep.org>
2023-03-15 16:01:11 +00:00
Will McGugan
01045e6b7f
Update docs/blog/posts/await-me-maybe.md
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-15 16:00:55 +00:00
Will McGugan
dab39c719b
Update docs/blog/posts/await-me-maybe.md
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
2023-03-15 15:51:30 +00:00
Will McGugan
31be9e059e new post 2023-03-15 15:34:39 +00:00
Rodrigo Girão Serrão
1246934643
Merge pull request #2030 from Textualize/add-containers
Add containers
2023-03-15 10:37:01 +00:00
Rodrigo Girão Serrão
10a5d171eb
Get rid of _Clock and move utility time-related functions to _time.py. (#2042)
* Remove _clock.py::sleep.

* Move _clock.py::get_time_no_wait to _time.py.

* Move _clock.py::get_time to _time.py.

* Remove async version of _time.py::get_time.

We started by removing '_time.py::get_time' because that was the async one and then I renamed 'get_time_no_wait' to 'get_time'.

* Make 'get_time' just an alias.
2023-03-15 08:56:10 +00:00
Rodrigo Girão Serrão
285de4b0fa Merge branch 'main' into add-containers 2023-03-14 14:35:23 +00:00
Rodrigo Girão Serrão
d775a90fa2 Address review comments. 2023-03-14 14:33:10 +00:00
Rodrigo Girão Serrão
f9a1e27c6f Merge branch 'main' into add-containers
[skip ci]
2023-03-13 16:21:46 +00:00
Rodrigo Girão Serrão
3518d38d85 Update snapshot tests. 2023-03-13 12:02:36 +00:00
Rodrigo Girão Serrão
cc8f65259e Merge branch 'main' into add-containers 2023-03-13 12:00:08 +00:00
Rodrigo Girão Serrão
429c8a3649 Tweak default Center/Middle dimensions.
We set dimensions to 1fr instead of 100% (original request) or blank (previous change) for consistency with the other containers.
2023-03-13 11:48:49 +00:00
Rodrigo Girão Serrão
0e51520a2c Make docs comply with new containers. 2023-03-13 11:44:47 +00:00
Rodrigo Girão Serrão
48ce1a149d Add snapshot test for Center/Middle. 2023-03-13 11:18:33 +00:00
Rodrigo Girão Serrão
bdeea9fb86 Tweak Center/Middle default dimensions. 2023-03-13 11:10:50 +00:00
Rodrigo Girão Serrão
c13308a360 Add tests for Horizontal/Vertical(Scroll) containers. 2023-03-09 17:39:05 +00:00
Rodrigo Girão Serrão
5674b4b628 Add 'Vertical'.
Related issues: #1957.
2023-03-09 15:38:31 +00:00
Rodrigo Girão Serrão
38c7cc1849 Fix default CSS for 'VerticalScroll'. 2023-03-09 15:36:38 +00:00
Rodrigo Girão Serrão
639d8f0250 Change default 'overflow' style for 'Horizontal'.
Related issues: #1957.
2023-03-09 15:30:44 +00:00
Rodrigo Girão Serrão
58ad5dfdd9 Tweak docstrings. 2023-03-09 15:26:51 +00:00
Rodrigo Girão Serrão
e111449856 Add container 'Middle'.
Related issues: #1957.
2023-03-09 15:24:13 +00:00
Rodrigo Girão Serrão
f91750ed3d Add container 'Center'.
This container will centre children horizontally.

Related issues: #1957.
2023-03-09 15:21:20 +00:00
Rodrigo Girão Serrão
be41797a8d Merge branch 'main' into add-containers 2023-03-09 15:19:43 +00:00
Rodrigo Girão Serrão
90dce06eae Add 'HorizontalScroll'.
Related issues: #1957.
2023-03-09 14:35:49 +00:00
Rodrigo Girão Serrão
4ca62eee60 Update docstring. 2023-03-09 12:21:53 +00:00
Rodrigo Girão Serrão
8565d3cef6 Renamed 'Vertical' to 'VerticalScroll'.
Related issues: #1957.
2023-03-08 18:31:24 +00:00
1889 changed files with 177921 additions and 35361 deletions

View file

@ -8,3 +8,4 @@ exclude_lines =
if __name__ == "__main__":
@overload
__rich_repr__
@abstractmethod

7
.deepsource.toml Normal file
View file

@ -0,0 +1,7 @@
version = 1
[[analyzers]]
name = "python"
[analyzers.meta]
runtime_version = "3.x.x"

View file

@ -1,12 +1,17 @@
---
hide:
- navigation
---
<!-- Auto-generated by FAQtory -->
<!-- Do not edit by hand! -->
# Frequently Asked Questions
{%- for question in questions %}
- [{{ question.title }}](#{{ question.slug }})
{%- endfor %}
Welcome to the Textual FAQ.
Here we try and answer any question that comes up frequently.
If you can't find what you are looking for here, see our other [help](./help.md) channels.
{%- for question in questions %}
@ -15,8 +20,8 @@
{{ question.body }}
---
{%- endfor %}
<hr>
Generated by [FAQtory](https://github.com/willmcgugan/faqtory)

View file

@ -7,7 +7,16 @@ assignees: ''
---
Have you checked closed issues? https://github.com/Textualize/textual/issues?q=is%3Aissue+is%3Aclosed
Have you checked closed issues? (https://github.com/Textualize/textual/issues?q=is%3Aissue+is%3Aclosed)
Have you checked against the most recent version of Textual? (https://pypi.org/search/?q=textual)
## Feature requests
Please post feature requests to Ideas. (https://github.com/Textualize/textual/discussions/categories/ideas)
## The bug
Please give a brief but clear explanation of the issue. If you can, include a complete working example that demonstrates the bug. **Check it can run without modifications.**
@ -17,4 +26,6 @@ It will be helpful if you run the following command and paste the results:
textual diagnose
```
If you don't have the `textual` command on your path, you may have forgotten to install the `textual-dev` package.
Feel free to add screenshots and / or videos. These can be very helpful!

22
.github/workflows/black_format.yml vendored Normal file
View file

@ -0,0 +1,22 @@
name: Black format check
on:
pull_request:
paths:
- '.github/workflows/black_format.yml'
- '**.py'
jobs:
black-format-check:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3.5.2
- name: Set up Python 3.11
uses: actions/setup-python@v4.6.0
with:
python-version: 3.11
- name: Install black
run: python -m pip install black==24.1.1
- name: Run black
run: black --check src

73
.github/workflows/codeql.yml vendored Normal file
View file

@ -0,0 +1,73 @@
name: "CodeQL"
on:
push:
branches: [ 'main' ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ 'main' ]
paths:
- '.github/workflows/codeql.yml'
- '**.py'
- '**.pyi'
- '**.lock'
- '**.js'
- '**.ts'
schedule:
- cron: '10 20 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"

View file

@ -1,7 +1,8 @@
name: issues
name: Closed issue comment
on:
issues:
types: [closed]
jobs:
add-comment:
runs-on: ubuntu-latest

View file

@ -1,7 +1,8 @@
name: issues
name: FAQ issue comment
on:
issues:
types: [opened]
jobs:
add-comment:
if: ${{ !contains( 'willmcgugan,darrenburns,davep,rodrigogiraoserrao', github.actor ) }}

View file

@ -1,47 +1,56 @@
name: Test Textual module
on: [pull_request]
on:
pull_request:
paths:
- ".github/workflows/pythonpackage.yml"
- "**.py"
- "**.pyi"
- "**.css"
- "**.ambr"
- "**.lock"
- "Makefile"
env:
PYTEST_ADDOPTS: "--color=yes"
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4.1.1
- name: Install Poetry
run: pipx install poetry==1.7.1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4.7.1
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install and configure Poetry
uses: snok/install-poetry@v1.3.3
with:
version: 1.2.2
virtualenvs-in-project: true
cache: "poetry"
- name: Install dependencies
run: poetry install --extras "dev"
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
- name: Format check with black
run: poetry install --no-interaction --extras syntax
if: ${{ matrix.python-version != '3.8' }}
- name: Install dependencies for 3.8
run: poetry install --no-interaction
if: ${{ matrix.python-version == '3.8' }}
- name: Test with pytest (Py39+ - with syntax highlighting)
run: |
source $VENV
make format-check
# - name: Typecheck with mypy
# run: |
# source $VENV
# make typecheck
- name: Test with pytest
poetry run pytest tests -v --cov=./src/textual --cov-report=xml:./coverage.xml --cov-report term-missing
if: ${{ matrix.python-version != '3.8' }}
- name: Test with pytest (Py38 - without syntax highlighting)
run: |
source $VENV
pytest tests -v --cov=./src/textual --cov-report=xml:./coverage.xml --cov-report term-missing
poetry run pytest tests -v --cov=./src/textual --cov-report=xml:./coverage.xml --cov-report term-missing -m 'not syntax'
if: ${{ matrix.python-version == '3.8' }}
- name: Upload snapshot report
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: snapshot-report-textual
path: tests/snapshot_tests/output/snapshot_report.html
name: snapshot_report_textual
path: snapshot_report.html
overwrite: true

4
.gitignore vendored
View file

@ -117,8 +117,8 @@ venv.bak/
# mypy
.mypy_cache/
# Snapshot testing report output directory
tests/snapshot_tests/output
# Snapshot testing report output (default location)
snapshot_report.html
# Sandbox folder - convenient place for us to develop small test apps without leaving the repo
sandbox/

View file

@ -4,19 +4,37 @@ repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
args: [ '--unsafe' ]
- id: check-ast # simply checks whether the files parse as valid python
- id: check-builtin-literals # requires literal syntax when initializing empty or zero python builtin types
- id: check-case-conflict # checks for files that would conflict in case-insensitive filesystems
- id: check-merge-conflict # checks for files that contain merge conflict strings
- id: check-json # checks json files for parseable syntax
- id: check-toml # checks toml files for parseable syntax
- id: check-yaml # checks yaml files for parseable syntax
args: [ '--unsafe' ] # Instead of loading the files, simply parse them for syntax.
- id: check-shebang-scripts-are-executable # ensures that (non-binary) files with a shebang are executable
- id: check-vcs-permalinks # ensures that links to vcs websites are permalinks
- id: end-of-file-fixer # ensures that a file is either empty, or ends with one newline
- id: mixed-line-ending # replaces or checks mixed line ending
- repo: https://github.com/pycqa/isort
rev: 5.12.0
rev: '5.13.2'
hooks:
- id: isort
name: isort (python)
language_version: '3.11'
args: ["--profile", "black", "--filter-files"]
args: ['--profile', 'black', '--filter-files']
- repo: https://github.com/psf/black
rev: 23.1.0
rev: '24.1.1'
hooks:
- id: black
- repo: https://github.com/hadialqattan/pycln # removes unused imports
rev: v2.3.0
hooks:
- id: pycln
language_version: '3.11'
args: [--all]
- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: v0.3.1
hooks:
- id: absolufy-imports
exclude: ^tests/snapshot_tests

File diff suppressed because it is too large Load diff

118
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,118 @@
# Contributing to Textual
First of all, thanks for taking the time to contribute to Textual!
## How can I contribute?
You can contribute to Textual in many ways:
1. [Report a bug](https://github.com/textualize/textual/issues/new?title=%5BBUG%5D%20short%20bug%20description&template=bug_report.md)
2. Add a new feature
3. Fix a bug
4. Improve the documentation
## Setup
To make a code or documentation contribution you will need to set up Textual locally.
You can follow these steps:
1. Make sure you have Poetry installed ([see instructions here](https://python-poetry.org))
2. Clone the Textual repository
3. Run `poetry shell` to create a virtual environment for the dependencies
4. Run `make setup` to install all dependencies
5. Make sure the latest version of Textual was installed by running the command `textual --version`
6. Install the pre-commit hooks with the command `pre-commit install`
([Read this](#makefile-commands) if the command `make` doesn't work for you.)
## Demo
Once you have Textual installed, run the Textual demo to get an impression of what Textual can do and to double check that everything was installed correctly:
```bash
python -m textual
```
## Guidelines
- Read any issue instructions carefully. Feel free to ask for clarification if any details are missing.
- Add docstrings to all of your code (functions, methods, classes, ...). The codebase should have enough examples for you to copy from.
- Write tests for your code.
- If you are fixing a bug, make sure to add regression tests that link to the original issue.
- If you are implementing a visual element, make sure to add _snapshot tests_. [See below](#snapshot-testing) for more details.
## Before opening a PR
Before you open your PR, please go through this checklist and make sure you've checked all the items that apply:
- [ ] Update the `CHANGELOG.md`
- [ ] Format your code with black (`make format`)
- [ ] All your code has docstrings in the style of the rest of the codebase
- [ ] Your code passes all tests (`make test`)
([Read this](#makefile-commands) if the command `make` doesn't work for you.)
## Updating and building the documentation
If you change the documentation, you will want to build the documentation to make sure everything looks like it should.
The command `make docs-serve-offline` should start a server that will let you preview the documentation locally and that should reload whenever you save changes to the documentation or the code files.
([Read this](#makefile-commands) if the command `make` doesn't work for you.)
We strive to write our documentation in a clear and accessible way so, if you find any issues with the documentation, we encourage you to open an issue where you can enumerate the things you think should be changed or added.
Opening an issue or a discussion is typically better than opening a PR directly.
That's because there are many subjective considerations that go into writing documentation and we cannot expect you, a well-intentioned external contributor, to be aware of those subjective considerations that we take into account when writing our documentation.
Of course, this does not apply to objective/technical issues with the documentation like bugs or broken links.
## After opening a PR
When you open a PR, your code will be reviewed by one of the Textual maintainers.
In that review process,
- We will take a look at all of the changes you are making
- We might ask for clarifications (why did you do X or Y?)
- We might ask for more tests/more documentation
- We might ask for some code changes
The sole purpose of those interactions is to make sure that, in the long run, everyone has the best experience possible with Textual and with the feature you are implementing/fixing.
Don't be discouraged if a reviewer asks for code changes.
If you go through our history of pull requests, you will see that every single one of the maintainers has had to make changes following a review.
## Snapshot testing
Snapshot tests ensure that visual things (like widgets) look like they are supposed to.
PR [#1969](https://github.com/Textualize/textual/pull/1969) is a good example of what adding snapshot tests looks like: it amounts to a change in the file `tests/snapshot_tests/test_snapshots.py` that should run an app that you write and compare it against a historic snapshot of what that app should look like.
When you create a new snapshot test, run it with `pytest -vv tests/snapshot_tests/test_snapshots.py`.
Because you just created this snapshot test, there is no history to compare against and the test will fail.
After running the snapshot tests, you should see a link that opens an interface in your browser.
This interface should show all failing snapshot tests and a side-by-side diff between what the app looked like when the test ran versus the historic snapshot.
Make sure your snapshot app looks like it is supposed to and that you didn't break any other snapshot tests.
If everything looks fine, you can run `make test-snapshot-update` to update the snapshot history with your new snapshot.
This will write a new SVG file to the `tests/snapshot_tests/__snapshots__/` directory.
You should NOT modify these files by hand.
If a pre-existing snapshot tests fails, you should carefully inspect the diff and decide if the new snapshot is correct or if the pre-existing one is.
If the new snapshot is correct, you should update the snapshot history with your new snapshot using `make test-snapshot-update`.
If the pre-existing snapshot is correct, your change has likely introduced a bug, and you should try to fix it.
After fixing it, and checking the output of `make test-snapshot` now looks correct, you should run `make test-snapshot-update` to update the snapshot history with your new snapshot.
([Read this](#makefile-commands) if the command `make` doesn't work for you.)
## Join the community
Seems a little overwhelming?
Join our community on [Discord](https://discord.gg/Enf6Z3qhVr) to get help!
## Makefile commands
Textual has a `Makefile` file that contains the most common commands used when developing Textual.
([Read about Make and makefiles on Wikipedia.](https://en.wikipedia.org/wiki/Make_(software)))
If you don't have Make and you're on Windows, you may want to [install Make](https://stackoverflow.com/q/32127524/2828287).

202
FAQ.md
View file

@ -1,202 +0,0 @@
<!-- Auto-generated by FAQtory -->
<!-- Do not edit by hand! -->
# Frequently Asked Questions
- [Does Textual support images?](#does-textual-support-images)
- [How can I fix ImportError cannot import name ComposeResult from textual.app ?](#how-can-i-fix-importerror-cannot-import-name-composeresult-from-textualapp-)
- [How can I select and copy text in a Textual app?](#how-can-i-select-and-copy-text-in-a-textual-app)
- [How do I center a widget in a screen?](#how-do-i-center-a-widget-in-a-screen)
- [How do I pass arguments to an app?](#how-do-i-pass-arguments-to-an-app)
- [Why doesn't Textual look good on macOS?](#why-doesn't-textual-look-good-on-macos)
- [Why doesn't Textual support ANSI themes?](#why-doesn't-textual-support-ansi-themes)
<a name="does-textual-support-images"></a>
## Does Textual support images?
Textual doesn't have built in support for images yet, but it is on the [Roadmap](https://textual.textualize.io/roadmap/).
See also the [rich-pixels](https://github.com/darrenburns/rich-pixels) project for a Rich renderable for images that works with Textual.
<a name="how-can-i-fix-importerror-cannot-import-name-composeresult-from-textualapp-"></a>
## How can I fix ImportError cannot import name ComposeResult from textual.app ?
You likely have an older version of Textual. You can install the latest version by adding the `-U` switch which will force pip to upgrade.
The following should do it:
```
pip install "textual[dev]" -U
```
<a name="how-can-i-select-and-copy-text-in-a-textual-app"></a>
## How can I select and copy text in a Textual app?
Running a Textual app puts your terminal in to *application mode* which disables clicking and dragging to select text.
Most terminal emulators offer a modifier key which you can hold while you click and drag to restore the behavior you
may expect from the command line. The exact modifier key depends on the terminal and platform you are running on.
- **iTerm** Hold the OPTION key.
- **Gnome Terminal** Hold the SHIFT key.
- **Windows Terminal** Hold the SHIFT key.
Refer to the documentation for your terminal emulator, if it is not listed above.
<a name="how-do-i-center-a-widget-in-a-screen"></a>
## How do I center a widget in a screen?
To center a widget within a container use
[`align`](https://textual.textualize.io/styles/align/). But remember that
`align` works on the *children* of a container, it isn't something you use
on the child you want centered.
For example, here's an app that shows a `Button` in the middle of a
`Screen`:
```python
from textual.app import App, ComposeResult
from textual.widgets import Button
class ButtonApp(App):
CSS = """
Screen {
align: center middle;
}
"""
def compose(self) -> ComposeResult:
yield Button("PUSH ME!")
if __name__ == "__main__":
ButtonApp().run()
```
If you use the above on multiple widgets, you'll find they appear to
"left-align" in the center of the screen, like this:
```
+-----+
| |
+-----+
+---------+
| |
+---------+
+---------------+
| |
+---------------+
```
If you want them more like this:
```
+-----+
| |
+-----+
+---------+
| |
+---------+
+---------------+
| |
+---------------+
```
the best approach is to wrap each widget in a container that individually
centers it. For example:
```python
from textual.app import App, ComposeResult
from textual.containers import Container
from textual.widgets import Button
class Center( Container ):
DEFAULT_CSS = """
Center {
height: auto;
width: 100%;
align: center middle;
}
"""
class ButtonApp(App):
CSS = """
Screen {
align: center middle;
}
"""
def compose(self) -> ComposeResult:
yield Center(Button("PUSH ME!"))
yield Center(Button("AND ME!"))
yield Center(Button("ALSO PLEASE PUSH ME!"))
yield Center(Button("HEY ME ALSO!!"))
if __name__ == "__main__":
ButtonApp().run()
```
<a name="how-do-i-pass-arguments-to-an-app"></a>
## How do I pass arguments to an app?
When creating your `App` class, override `__init__` as you would when
inheriting normally. For example:
```python
from textual.app import App, ComposeResult
from textual.widgets import Static
class Greetings(App[None]):
def __init__(self, greeting: str="Hello", to_greet: str="World") -> None:
self.greeting = greeting
self.to_greet = to_greet
super().__init__()
def compose(self) -> ComposeResult:
yield Static(f"{self.greeting}, {self.to_greet}")
```
Then the app can be run, passing in various arguments; for example:
```python
# Running with default arguments.
Greetings().run()
# Running with a keyword arguyment.
Greetings(to_greet="davep").run()
# Running with both positional arguments.
Greetings("Well hello", "there").run()
```
<a name="why-doesn't-textual-look-good-on-macos"></a>
## Why doesn't Textual look good on macOS?
The default macOS `Terminal.app` is getting rather old now; it has problems
such as being limited to just 256 colors, being slow to draw and not all
box-drawing characters are fully-supported. We recommend installing a newer
terminal such as [iTerm2](https://iterm2.com/),
[Kitty](https://sw.kovidgoyal.net/kitty/) or
[WezTerm](https://wezfurlong.org/wezterm/).
<a name="why-doesn't-textual-support-ansi-themes"></a>
## Why doesn't Textual support ANSI themes?
Textual will not generate escape sequences for the 16 themeable *ANSI* colors.
This is an intentional design decision we took for for the following reasons:
- Not everyone has a carefully chosen ANSI color theme. Color combinations which may look fine on your system, may be unreadable on another machine. There is very little an app author or Textual can do to resolve this. Asking users to simply pick a better theme is not a good solution, since not all users will know how.
- ANSI colors can't be manipulated in the way Textual can do with other colors. Textual can blend colors and produce light and dark shades from an original color, which is used to create more readable text and user interfaces. Color blending will also be used to power future accessibility features.
Textual has a design system which guarantees apps will be readable on all platforms and terminals, and produces better results than ANSI colors.
There is currently a light and dark version of the design system, but more are planned. It will also be possible for users to customize the source colors on a per-app or per-system basis. This means that in the future you will be able to modify the core colors to blend in with your chosen terminal theme.
<hr>
Generated by [FAQtory](https://github.com/willmcgugan/faqtory)

View file

@ -2,15 +2,23 @@ run := poetry run
.PHONY: test
test:
$(run) pytest --cov-report term-missing --cov=textual tests/ -vv
$(run) pytest tests/ -n 16 --dist=loadgroup $(ARGS)
.PHONY: unit-test
unit-test:
$(run) pytest --cov-report term-missing --cov=textual tests/ -vv -m "not integration_test"
.PHONY: testv
testv:
$(run) pytest tests/ -vvv -n 16 --dist=loadgroup $(ARGS)
.PHONY: test-snapshot-update
test-snapshot-update:
$(run) pytest --cov-report term-missing --cov=textual tests/ -vv --snapshot-update
$(run) pytest tests/ --snapshot-update -n 16 --dist=loadgroup $(ARGS)
.PHONY: test-coverage
test-coverage:
$(run) pytest tests/ --cov-report term-missing --cov=textual -n 16 --dist=loadgroup $(ARGS)
.PHONY: coverage
coverage:
$(run) coverage html
.PHONY: typecheck
typecheck:
@ -28,6 +36,10 @@ format-check:
clean-screenshot-cache:
rm -rf .screenshot_cache
.PHONY: faq
faq:
$(run) faqtory build
.PHONY: docs-offline-nav
docs-offline-nav:
echo "INHERIT: mkdocs-offline.yml" > mkdocs-nav-offline.yml
@ -43,6 +55,11 @@ docs-serve: clean-screenshot-cache docs-online-nav
$(run) mkdocs serve --config-file mkdocs-nav-online.yml
rm -f mkdocs-nav-online.yml
.PHONY: docs-serve-offline
docs-serve-offline: clean-screenshot-cache docs-offline-nav
$(run) mkdocs serve --config-file mkdocs-nav-offline.yml
rm -f mkdocs-nav-offline.yml
.PHONY: docs-build
docs-build: docs-online-nav
$(run) mkdocs build --config-file mkdocs-nav-online.yml
@ -71,7 +88,8 @@ clean: clean-screenshot-cache clean-offline-docs
.PHONY: setup
setup:
poetry install --extras dev
poetry install
poetry install --extras syntax
.PHONY: update
update:
@ -80,3 +98,11 @@ update:
.PHONY: install-pre-commit
install-pre-commit:
$(run) pre-commit install
.PHONY: demo
demo:
$(run) python -m textual
.PHONY: repl
repl:
$(run) python

259
README.md
View file

@ -1,156 +1,211 @@
[![Discord](https://img.shields.io/discord/1026214085173461072)](https://discord.gg/Enf6Z3qhVr)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/textual/1.0.0)](https://pypi.org/project/textual/)
[![PyPI version](https://badge.fury.io/py/textual.svg?)](https://badge.fury.io/py/textual)
![OS support](https://img.shields.io/badge/OS-macOS%20Linux%20Windows-red)
![textual-splash](https://github.com/user-attachments/assets/4caeb77e-48c0-4cf7-b14d-c53ded855ffd)
# Textual
![Textual splash image](https://raw.githubusercontent.com/Textualize/textual/main/imgs/textual.png)
<img align="right" width="250" alt="clock" src="https://github.com/user-attachments/assets/63e839c3-5b8e-478d-b78e-cf7647eb85e8" />
Textual is a *Rapid Application Development* framework for Python.
Build cross-platform user interfaces with a simple Python API. Run your apps in the terminal *or* a web browser.
Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and (coming soon) a web browser!
Textual's API combines modern Python with the best of developments from the web world, for a lean app development experience.
De-coupled components and an advanced [testing](https://textual.textualize.io/guide/testing/) framework ensure you can maintain your app for the long-term.
<details>
<summary> 🎬 Demonstration </summary>
<hr>
Want some more examples? See the [examples](https://github.com/Textualize/textual/tree/main/examples) directory.
A quick run through of some Textual features.
```python
"""
An App to show the current time.
"""
from datetime import datetime
from textual.app import App, ComposeResult
from textual.widgets import Digits
class ClockApp(App):
CSS = """
Screen { align: center middle; }
Digits { width: auto; }
"""
def compose(self) -> ComposeResult:
yield Digits("")
def on_ready(self) -> None:
self.update_clock()
self.set_interval(1, self.update_clock)
def update_clock(self) -> None:
clock = datetime.now().time()
self.query_one(Digits).update(f"{clock:%T}")
if __name__ == "__main__":
app = ClockApp()
app.run()
```
> [!TIP]
> Textual is an asynchronous framework under the hood. Which means you can integrate your apps with async libraries &mdash; if you want to.
> If you don't want or need to use async, Textual won't force it on you.
https://user-images.githubusercontent.com/554369/197355913-65d3c125-493d-4c05-a590-5311f16c40ff.mov
<img src="https://img.spacergif.org/spacer.gif" width="1" height="64"/>
## Widgets
Textual's library of [widgets](https://textual.textualize.io/widget_gallery/) covers everything from buttons, tree controls, data tables, inputs, text areas, and more…
Combined with a flexible [layout](https://textual.textualize.io/how-to/design-a-layout/) system, you can realize any User Interface you need.
Predefined themes ensure your apps will look good out of the box.
<table>
</details>
<tr>
<td>
![buttons](https://github.com/user-attachments/assets/2ac26387-aaa3-41ed-bc00-7d488600343c)
</td>
<td>
![tree](https://github.com/user-attachments/assets/61ccd6e9-97ea-4918-8eda-3ee0f0d3770e)
</td>
</tr>
<tr>
## About
<td>
Textual adds interactivity to [Rich](https://github.com/Textualize/rich) with an API inspired by modern web development.
![datatables](https://github.com/user-attachments/assets/3e1f9f7a-f965-4901-a114-3c188bd17695)
On modern terminal software (installed by default on most systems), Textual apps can use **16.7 million** colors with mouse support and smooth flicker-free animation. A powerful layout engine and re-usable components makes it possible to build apps that rival the desktop and web experience.
</td>
## Compatibility
<td>
Textual runs on Linux, macOS, and Windows. Textual requires Python 3.7 or above.
![inputs](https://github.com/user-attachments/assets/b02aa203-7c37-42da-a1bb-2cb244b7d0d3)
</td>
</tr>
<tr>
<td>
![listview](https://github.com/user-attachments/assets/963603bc-aa07-4688-bd24-379962ece871)
</td>
<td>
![textarea](https://github.com/user-attachments/assets/cd4ba787-5519-40e2-8d86-8224e1b7e506)
</td>
</tr>
</table>
<img src="https://img.spacergif.org/spacer.gif" width="1" height="32"/>
## Installing
Install Textual via pip:
```
pip install "textual[dev]"
pip install textual textual-dev
```
The addition of `[dev]` installs Textual development tools. See the [docs](https://textual.textualize.io/getting_started/) if you need help getting started.
See [getting started](https://textual.textualize.io/getting_started/) for details.
<img src="https://img.spacergif.org/spacer.gif" width="1" height="32"/>
## Demo
Run the following command to see a little of what Textual can do:
```
python -m textual
```
![Textual demo](https://raw.githubusercontent.com/Textualize/textual/main/imgs/demo.png)
## Documentation
Head over to the [Textual documentation](http://textual.textualize.io/) to start building!
## Examples
The Textual repository comes with a number of examples you can experiment with or use as a template for your own projects.
<details>
<summary> 🎬 Code browser </summary>
<hr>
This is the [code_browser.py](https://github.com/Textualize/textual/blob/main/examples/code_browser.py) example which clocks in at 61 lines (*including* docstrings and blank lines).
https://user-images.githubusercontent.com/554369/197188237-88d3f7e4-4e5f-40b5-b996-c47b19ee2f49.mov
</details>
<details>
<summary> 📷 Calculator </summary>
<hr>
This is [calculator.py](https://github.com/Textualize/textual/blob/main/examples/calculator.py) which demonstrates Textual grid layouts.
![calculator screenshot](https://raw.githubusercontent.com/Textualize/textual/main/imgs/calculator.png)
</details>
<details>
<summary> 🎬 Stopwatch </summary>
<hr>
This is the Stopwatch example from the [tutorial](https://textual.textualize.io/tutorial/).
https://user-images.githubusercontent.com/554369/197360718-0c834ef5-6285-4d37-85cf-23eed4aa56c5.mov
</details>
## Reference commands
The `textual` command has a few sub-commands to preview Textual styles.
<details>
<summary> 🎬 Easing reference </summary>
<hr>
This is the *easing* reference which demonstrates the easing parameter on animation, with both movement and opacity. You can run it with the following command:
Or try the [textual demo](https://github.com/textualize/textual-demo) *without* installing (requires [uv](https://docs.astral.sh/uv/)):
```bash
textual easing
uvx --python 3.12 textual-demo
```
<img src="https://img.spacergif.org/spacer.gif" width="1" height="32"/>
https://user-images.githubusercontent.com/554369/196157100-352852a6-2b09-4dc8-a888-55b53570aff9.mov
## Dev Console
<img align="right" width="40%" alt="devtools" src="https://github.com/user-attachments/assets/12c60d65-e342-4b2f-9372-bae0459a7552" />
</details>
How do you debug an app in the terminal that is also running in the terminal?
<details>
<summary> 🎬 Borders reference </summary>
<hr>
The `textual-dev` package supplies a dev console that connects to your application from another terminal.
In addition to system messages and events, your logged messages and print statements will appear in the dev console.
This is the borders reference which demonstrates some of the borders styles in Textual. You can run it with the following command:
See [the guide](https://textual.textualize.io/guide/devtools/) for other helpful tools provided by the `textual-dev` package.
```bash
textual borders
<img src="https://img.spacergif.org/spacer.gif" width="1" height="32"/>
## Command Palette
Textual apps have a *fuzzy search* command palette.
Hit `ctrl+p` to open the command palette.
It is easy to extend the command palette with [custom commands](https://textual.textualize.io/guide/command_palette/) for your application.
![Command Palette](https://github.com/user-attachments/assets/94d8ec5d-b668-4033-a5cb-bf820e1b8d60)
<img src="https://img.spacergif.org/spacer.gif" width="1" height="32"/>
# Textual ❤️ Web
<img align="right" width="40%" alt="textual-serve" src="https://github.com/user-attachments/assets/a25820fb-87ae-433a-858b-ac3940169242">
Textual apps are equally at home in the browser as they are the terminal. Any Textual app may be served with `textual serve` &mdash; so you can share your creations on the web.
Here's how to serve the demo app:
```
textual serve "python -m textual"
```
In addition to serving your apps locally, you can serve apps with [Textual Web](https://github.com/Textualize/textual-web).
https://user-images.githubusercontent.com/554369/196158235-4b45fb78-053d-4fd5-b285-e09b4f1c67a8.mov
Textual Web's firewall-busting technology can serve an unlimited number of applications.
Since Textual apps have low system requirements, you can install them anywhere Python also runs. Turning any device into a connected device.
No desktop required!
</details>
<img src="https://img.spacergif.org/spacer.gif" width="1" height="32"/>
<details>
<summary> 🎬 Colors reference </summary>
<hr>
This is a reference for Textual's color design system.
```bash
textual colors
```
https://user-images.githubusercontent.com/554369/197357417-2d407aac-8969-44d3-8250-eea45df79d57.mov
</details>
## Join us on Discord
Join the Textual developers and community on our [Discord Server](https://discord.gg/Enf6Z3qhVr).

315
docs/FAQ.md Normal file
View file

@ -0,0 +1,315 @@
---
hide:
- navigation
---
<!-- Auto-generated by FAQtory -->
<!-- Do not edit by hand! -->
# Frequently Asked Questions
Welcome to the Textual FAQ.
Here we try and answer any question that comes up frequently.
If you can't find what you are looking for here, see our other [help](./help.md) channels.
<a name="does-textual-support-images"></a>
## Does Textual support images?
Textual doesn't have built-in support for images yet, but it is on the [Roadmap](https://textual.textualize.io/roadmap/).
See also the [rich-pixels](https://github.com/darrenburns/rich-pixels) project for a Rich renderable for images that works with Textual.
---
<a name="how-can-i-fix-importerror-cannot-import-name-composeresult-from-textualapp-"></a>
## How can I fix ImportError cannot import name ComposeResult from textual.app ?
You likely have an older version of Textual. You can install the latest version by adding the `-U` switch which will force pip to upgrade.
The following should do it:
```
pip install textual-dev -U
```
---
<a name="how-can-i-select-and-copy-text-in-a-textual-app"></a>
## How can I select and copy text in a Textual app?
Textual supports text selection for most widgets, via click and drag. Press ctrl+c to copy.
For widgets that don't yet support text selection, you can try and use your terminal's builtin support.
Most terminal emulators offer a modifier key which you can hold while you click and drag to restore the behavior you
may expect from the command line. The exact modifier key depends on the terminal and platform you are running on.
- **iTerm** Hold the OPTION key.
- **Gnome Terminal** Hold the SHIFT key.
- **Windows Terminal** Hold the SHIFT key.
Refer to the documentation for your terminal emulator, if it is not listed above.
---
<a name="how-can-i-set-a-translucent-app-background"></a>
## How can I set a translucent app background?
Some terminal emulators have a translucent background feature which allows the desktop underneath to be partially visible.
This feature is unlikely to work with Textual, as the translucency effect requires the use of ANSI background colors, which Textual doesn't use.
Textual uses 16.7 million colors where available which enables consistent colors across all platforms and additional effects which aren't possible with ANSI colors.
For more information on ANSI colors in Textual, see [Why no ANSI Themes?](#why-doesnt-textual-support-ansi-themes).
---
<a name="how-do-i-center-a-widget-in-a-screen"></a>
## How do I center a widget in a screen?
!!! tip
See [*How To Center Things*](https://textual.textualize.io/how-to/center-things/) in the
Textual documentation for a more comprehensive answer to this question.
To center a widget within a container use
[`align`](https://textual.textualize.io/styles/align/). But remember that
`align` works on the *children* of a container, it isn't something you use
on the child you want centered.
For example, here's an app that shows a `Button` in the middle of a
`Screen`:
```python
from textual.app import App, ComposeResult
from textual.widgets import Button
class ButtonApp(App):
CSS = """
Screen {
align: center middle;
}
"""
def compose(self) -> ComposeResult:
yield Button("PUSH ME!")
if __name__ == "__main__":
ButtonApp().run()
```
If you use the above on multiple widgets, you'll find they appear to
"left-align" in the center of the screen, like this:
```
+-----+
| |
+-----+
+---------+
| |
+---------+
+---------------+
| |
+---------------+
```
If you want them more like this:
```
+-----+
| |
+-----+
+---------+
| |
+---------+
+---------------+
| |
+---------------+
```
The best approach is to wrap each widget in a [`Center`
container](https://textual.textualize.io/api/containers/#textual.containers.Center)
that individually centers it. For example:
```python
from textual.app import App, ComposeResult
from textual.containers import Center
from textual.widgets import Button
class ButtonApp(App):
CSS = """
Screen {
align: center middle;
}
"""
def compose(self) -> ComposeResult:
yield Center(Button("PUSH ME!"))
yield Center(Button("AND ME!"))
yield Center(Button("ALSO PLEASE PUSH ME!"))
yield Center(Button("HEY ME ALSO!!"))
if __name__ == "__main__":
ButtonApp().run()
```
---
<a name="how-do-i-fix-workerdeclarationerror"></a>
## How do I fix WorkerDeclarationError?
Textual version 0.31.0 requires that you set `thread=True` on the `@work` decorator if you want to run a threaded worker.
If you want a threaded worker, you would declare it in the following way:
```python
@work(thread=True)
def run_in_background():
...
```
If you *don't* want a threaded worker, you should make your work function `async`:
```python
@work()
async def run_in_background():
...
```
This change was made because it was too easy to accidentally create a threaded worker, which may produce unexpected results.
---
<a name="how-do-i-pass-arguments-to-an-app"></a>
## How do I pass arguments to an app?
When creating your `App` class, override `__init__` as you would when
inheriting normally. For example:
```python
from textual.app import App, ComposeResult
from textual.widgets import Static
class Greetings(App[None]):
def __init__(self, greeting: str="Hello", to_greet: str="World") -> None:
self.greeting = greeting
self.to_greet = to_greet
super().__init__()
def compose(self) -> ComposeResult:
yield Static(f"{self.greeting}, {self.to_greet}")
```
Then the app can be run, passing in various arguments; for example:
```python
# Running with default arguments.
Greetings().run()
# Running with a keyword argument.
Greetings(to_greet="davep").run()
# Running with both positional arguments.
Greetings("Well hello", "there").run()
```
---
<a name="why-do-some-key-combinations-never-make-it-to-my-app"></a>
## Why do some key combinations never make it to my app?
Textual can only ever support key combinations that are passed on by your
terminal application. Which keys get passed on can differ from terminal to
terminal, and from operating system to operating system.
Because of this it's best to stick to key combinations that are known to be
universally-supported; these include the likes of:
- Letters
- Numbers
- Numbered function keys (especially F1 through F10)
- Space
- Return
- Arrow, home, end and page keys
- Control
- Shift
When [creating bindings for your
application](https://textual.textualize.io/guide/input/#bindings) we
recommend picking keys and key combinations from the above.
Keys that aren't normally passed through by terminals include Cmd and Option
on macOS, and the Windows key on Windows.
If you need to test what [key
combinations](https://textual.textualize.io/guide/input/#keyboard-input)
work in different environments you can try them out with `textual keys`.
---
<a name="why-doesnt-textual-look-good-on-macos"></a>
## Why doesn't Textual look good on macOS?
You may find that the default macOS Terminal.app doesn't render Textual apps (and likely other TUIs) very well, particularly when it comes to box characters.
For instance, you may find it displays misaligned blocks and lines like this:
<img width="1042" alt="Screenshot 2023-06-19 at 10 43 02" src="https://github.com/Textualize/textual/assets/554369/e61f3876-3dd1-4ac8-b380-22922c89c7d6">
You can (mostly) fix this by opening settings -> profiles > Text tab, and changing the font settings.
We have found that Menlo Regular font, with a character spacing of 1 and line spacing of 0.805 produces reasonable results.
If you want to use another font, you may have to tweak the line spacing until you get good results.
<img width="737" alt="Screenshot 2023-06-19 at 10 44 00" src="https://github.com/Textualize/textual/assets/554369/0a052a93-b1fd-4327-9d33-d954b51a9ad2">
With these changes, Textual apps render more as intended:
<img width="1042" alt="Screenshot 2023-06-19 at 10 43 23" src="https://github.com/Textualize/textual/assets/554369/a0c4aa05-c509-4ac1-b0b8-e68ce4433f70">
Even with this *fix*, Terminal.app has a few limitations.
It is limited to 256 colors, and can be a little slow compared to more modern alternatives.
Fortunately there are a number of free terminal emulators for macOS which produces high quality results.
We recommend any of the following terminals:
- [iTerm2](https://iterm2.com/)
- [Kitty](https://sw.kovidgoyal.net/kitty/)
- [WezTerm](https://wezfurlong.org/wezterm/)
### Terminal.app colors
<img width="762" alt="Screenshot 2023-06-19 at 11 00 12" src="https://github.com/Textualize/textual/assets/554369/e0555d23-e141-4069-b318-f3965c880208">
### iTerm2 colors
<img width="1002" alt="Screenshot 2023-06-19 at 11 00 25" src="https://github.com/Textualize/textual/assets/554369/9a8cde57-5121-49a7-a2e0-5f6fc871b7a6">
---
<a name="why-doesnt-textual-support-ansi-themes"></a>
## Why doesn't Textual support ANSI themes?
Textual will not generate escape sequences for the 16 themeable *ANSI* colors.
This is an intentional design decision we took for for the following reasons:
- Not everyone has a carefully chosen ANSI color theme. Color combinations which may look fine on your system, may be unreadable on another machine. There is very little an app author or Textual can do to resolve this. Asking users to simply pick a better theme is not a good solution, since not all users will know how.
- ANSI colors can't be manipulated in the way Textual can do with other colors. Textual can blend colors and produce light and dark shades from an original color, which is used to create more readable text and user interfaces. Color blending will also be used to power future accessibility features.
Textual has a design system which guarantees apps will be readable on all platforms and terminals, and produces better results than ANSI colors.
There is currently a light and dark version of the design system, but more are planned. It will also be possible for users to customize the source colors on a per-app or per-system basis. This means that in the future you will be able to modify the core colors to blend in with your chosen terminal theme.
!!! tip "Changed in version 0.80.0"
Textual added an `ansi_color` boolean to App. If you set this to `True`, then Textual will not attempt to convert ANSI colors. Note that you will lose transparency effects if you enable this setting.
---
Generated by [FAQtory](https://github.com/willmcgugan/faqtory)

View file

@ -1,67 +0,0 @@
{{ log.debug("Rendering " + attribute.path) }}
<div class="doc doc-object doc-attribute">
{% with html_id = attribute.path %}
{% if root %}
{% set show_full_path = config.show_root_full_path %}
{% set root_members = True %}
{% elif root_members %}
{% set show_full_path = config.show_root_members_full_path or config.show_object_full_path %}
{% set root_members = False %}
{% else %}
{% set show_full_path = config.show_object_full_path %}
{% endif %}
{% if not root or config.show_root_heading %}
{% filter heading(heading_level,
role="data" if attribute.parent.kind.value == "module" else "attr",
id=html_id,
class="doc doc-heading",
toc_label=attribute.name) %}
{% if config.separate_signature %}
<span class="doc doc-object-name doc-attribute-name">{% if show_full_path %}{{ attribute.path }}{% else %}{{ attribute.name }}{% endif %}</span>
{% else %}
{% filter highlight(language="python", inline=True) %}
{% if show_full_path %}{{ attribute.path }}{% else %}{{ attribute.name }}{% endif %}
{% if attribute.annotation %}: {{ attribute.annotation }}{% endif %}
{% endfilter %}
{% endif %}
{% with labels = attribute.labels %}
{% include "labels.html" with context %}
{% endwith %}
{% endfilter %}
{% if config.separate_signature %}
{% filter highlight(language="python", inline=False) %}
{% filter format_code(config.line_length) %}
{% if show_full_path %}{{ attribute.path }}{% else %}{{ attribute.name }}{% endif %}
{% if attribute.annotation %}: {{ attribute.annotation|safe }}{% endif %}
{% endfilter %}
{% endfilter %}
{% endif %}
{% else %}
{% if config.show_root_toc_entry %}
{% filter heading(heading_level,
role="data" if attribute.parent.kind.value == "module" else "attr",
id=html_id,
toc_label=attribute.path if config.show_root_full_path else attribute.name,
hidden=True) %}
{% endfilter %}
{% endif %}
{% set heading_level = heading_level - 1 %}
{% endif %}
<div class="doc doc-contents {% if root %}first{% endif %}">
{% with docstring_sections = attribute.docstring.parsed %}
{% include "docstring.html" with context %}
{% endwith %}
</div>
{% endwith %}
</div>

View file

@ -1 +1,9 @@
---
title: "textual.app"
---
::: textual.app
options:
filters:
- "!^_"
- "^__init__$"

View file

@ -0,0 +1,15 @@
---
title: "textual.await_complete"
---
This module contains the `AwaitComplete` class.
An `AwaitComplete` object is returned by methods that do work in the *background*.
You can await this object if you need to know when that work has completed.
Or you can ignore it, and Textual will automatically await the work before handling the next message.
!!! note
You are unlikely to need to explicitly create these objects yourself.
::: textual.await_complete

View file

@ -1 +1,15 @@
---
title: "textual.await_remove"
---
This module contains the `AwaitRemove` class.
An `AwaitRemove` object is returned by [`Widget.remove()`][textual.widget.Widget.remove] and other methods which remove widgets.
You can await the return value if you need to know exactly when the widget(s) have been removed.
Or you can ignore it and Textual will wait for the widgets to be removed before handling the next message.
!!! note
You are unlikely to need to explicitly create these objects yourself.
::: textual.await_remove

View file

@ -1 +1,5 @@
---
title: "textual.binding"
---
::: textual.binding

View file

@ -1,3 +0,0 @@
::: textual.widgets.Button
::: textual.widgets._button.ButtonVariant
::: textual.widgets._button.InvalidButtonVariant

5
docs/api/cache.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.cache"
---
::: textual.cache

View file

@ -1 +0,0 @@
::: textual.widgets.Checkbox

View file

@ -1 +1,5 @@
---
title: "textual.color"
---
::: textual.color

5
docs/api/command.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.command"
---
::: textual.command

5
docs/api/constants.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.constants"
---
::: textual.constants

View file

@ -1 +1,6 @@
---
title: "textual.containers"
---
::: textual.containers

5
docs/api/content.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.content"
---
::: textual.content

View file

@ -1 +0,0 @@
::: textual.widgets.ContentSwitcher

View file

@ -1 +1,6 @@
---
title: "textual.coordinate"
---
::: textual.coordinate

View file

@ -1 +0,0 @@
::: textual.widgets.DataTable

View file

@ -1 +0,0 @@
::: textual.widgets.DirectoryTree

View file

@ -1 +1,5 @@
---
title: "textual.dom"
---
::: textual.dom

5
docs/api/errors.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.errors"
---
::: textual.errors

View file

@ -1 +1,6 @@
---
title: "textual.events"
---
::: textual.events

6
docs/api/filter.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.filter"
---
::: textual.filter

View file

@ -1 +0,0 @@
::: textual.widgets.Footer

View file

@ -0,0 +1,6 @@
---
title: "textual.fuzzy"
---
::: textual.fuzzy

View file

@ -1 +1,6 @@
---
title: "textual.geometry"
---
::: textual.geometry

View file

@ -1 +0,0 @@
::: textual.widgets.Header

View file

@ -1,5 +1,5 @@
# API
This is a API-level reference to the Textual API. Click the links to your left (or in the burger menu) to open a reference for each module.
This is a API-level reference to the Textual API. Click the links to your left (or in the :octicons-three-bars-16: menu) to open a reference for each module.
If you are new to Textual, you may want to read the [tutorial](./../tutorial.md) or [guide](../guide/index.md) first.

View file

@ -1 +0,0 @@
::: textual.widgets.Input

View file

@ -1 +0,0 @@
::: textual.widgets.Label

6
docs/api/layout.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.layout"
---
::: textual.layout

6
docs/api/lazy.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.lazy"
---
::: textual.lazy

View file

@ -1 +0,0 @@
::: textual.widgets.ListItem

View file

@ -1 +0,0 @@
::: textual.widgets.ListView

View file

@ -1 +0,0 @@
::: textual.widgets.LoadingIndicator

6
docs/api/logger.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual"
---
::: textual

4
docs/api/logging.md Normal file
View file

@ -0,0 +1,4 @@
---
title: "textual.logging"
---
::: textual.logging

8
docs/api/map_geometry.md Normal file
View file

@ -0,0 +1,8 @@
---
title: "textual.map_geometry"
---
A data structure returned by [screen.find_widget][textual.screen.Screen.find_widget].
::: textual.map_geometry

View file

@ -1 +0,0 @@
::: textual.widgets.Markdown

View file

@ -1 +0,0 @@
::: textual.widgets.MarkdownViewer

5
docs/api/markup.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.markup"
---
::: textual.markup

View file

@ -1 +1,5 @@
---
title: "textual.message"
---
::: textual.message

View file

@ -1,5 +1,5 @@
A message pump is a class that processes messages.
It is a base class for the `App`, `Screen`, and `Widget` classes.
---
title: "textual.message_pump"
---
::: textual.message_pump

7
docs/api/on.md Normal file
View file

@ -0,0 +1,7 @@
---
title: "textual.on"
---
# On
::: textual.on

View file

@ -1 +1,5 @@
---
title: "textual.pilot"
---
::: textual.pilot

View file

@ -1,2 +0,0 @@
::: textual.widgets.Placeholder
::: textual.widgets._placeholder.PlaceholderVariant

View file

@ -1 +1,5 @@
---
title: "textual.css.query"
---
::: textual.css.query

View file

@ -1 +0,0 @@
::: textual.widgets.RadioButton

View file

@ -1 +0,0 @@
::: textual.widgets.RadioSet

View file

@ -1 +1,5 @@
---
title: "textual.reactive"
---
::: textual.reactive

11
docs/api/renderables.md Normal file
View file

@ -0,0 +1,11 @@
---
title: "textual.renderables"
---
A collection of Rich renderables which may be returned from a widget's [`render()`][textual.widget.Widget.render] method.
::: textual.renderables.bar
::: textual.renderables.blank
::: textual.renderables.digits
::: textual.renderables.gradient
::: textual.renderables.sparkline

View file

@ -1 +1,6 @@
---
title: "textual.screen"
---
::: textual.screen

View file

@ -1 +1,6 @@
---
title: "textual.scroll_view"
---
::: textual.scroll_view

5
docs/api/scrollbar.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.scrollbar"
---
::: textual.scrollbar

5
docs/api/signal.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.signal"
---
::: textual.signal

View file

@ -1 +0,0 @@
::: textual.widgets.Static

View file

@ -1 +1,6 @@
---
title: "textual.strip"
---
::: textual.strip

5
docs/api/style.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.style"
---
::: textual.style

6
docs/api/suggester.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.suggester"
---
::: textual.suggester

View file

@ -1 +0,0 @@
::: textual.widgets.Switch

View file

@ -0,0 +1,7 @@
---
title: "textual.system_commands"
---
::: textual.system_commands

View file

@ -1,2 +0,0 @@
::: textual.widgets.Tab
::: textual.widgets.Tabs

View file

@ -1 +0,0 @@
::: textual.widgets.TextLog

View file

@ -1 +1,5 @@
---
title: "textual.timer"
---
::: textual.timer

View file

@ -1 +0,0 @@
::: textual.widgets._toggle_button.ToggleButton

View file

@ -1,4 +0,0 @@
::: textual.widgets.Tree
::: textual.widgets._tree.TreeNode
::: textual.widgets._tree.NodeID
::: textual.widgets._tree.TreeDataType

6
docs/api/types.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.types"
---
::: textual.types

6
docs/api/validation.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.validation"
---
::: textual.validation

View file

@ -1 +1,6 @@
---
title: "textual.walk"
---
::: textual.walk

View file

@ -1 +0,0 @@
::: textual.widgets.Welcome

View file

@ -1 +1,10 @@
---
title: "textual.widget"
---
::: textual.widget
options:
filters:
- "!^_"
- "^__init__$"

6
docs/api/work.md Normal file
View file

@ -0,0 +1,6 @@
---
title: "textual.work"
---
::: textual.work

5
docs/api/worker.md Normal file
View file

@ -0,0 +1,5 @@
---
title: "textual.worker"
---
::: textual.worker

View file

@ -0,0 +1,5 @@
---
title: "textual.worker_manager"
---
::: textual.worker_manager

View file

@ -1,16 +1,17 @@
willmcgugan:
name: Will McGugan
description: CEO / code-monkey
avatar: https://github.com/willmcgugan.png
darrenburns:
name: Darren Burns
description: Code-monkey
avatar: https://github.com/darrenburns.png
davep:
name: Dave Pearson
description: Code-monkey
avatar: https://github.com/davep.png
rodrigo:
name: Rodrigo Girão Serrão
description: Code-monkey
avatar: https://github.com/rodrigogiraoserrao.png
authors:
willmcgugan:
name: Will McGugan
description: CEO / code-monkey
avatar: https://github.com/willmcgugan.png
darrenburns:
name: Darren Burns
description: Code-monkey
avatar: https://github.com/darrenburns.png
davep:
name: Dave Pearson
description: Code-monkey
avatar: https://github.com/davep.png
rodrigo:
name: Rodrigo Girão Serrão
description: Code-monkey
avatar: https://github.com/rodrigogiraoserrao.png

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 89 KiB

View file

@ -0,0 +1,21 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 623.0110473632812 172.49923719399783" width="623.0110473632812" height="172.49923719399783">
<!-- svg-source:excalidraw -->
<!-- payload-type:application/vnd.excalidraw+json --><!-- payload-version:2 --><!-- payload-start -->eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nM2U22rbQFx1MDAxMIbv/Vx1MDAxNEa9bZQ9XHUwMDFmXHUwMDAypZA0hLTBXHI4pTilXHUwMDE0WVpZQrKkSms7aci7d6Q4XsWtQ1posS5cdTAwMTZ2Znfmn9lPczdcdTAwMThcdTAwMGU9e1tcdTAwMTnvaOiZmzDI06hcdTAwMGVW3uvWvjR1k5ZcdTAwMDW4SLdvykVcdTAwMWR2J1x1MDAxM2ur5ujwcFx1MDAxZdSZsVVcdTAwMWWExl+mzVwiyFx1MDAxYruI0tJcdTAwMGbL+WFqzbx5266jYG7eVOU8srXvklx1MDAxY5gotWX9kMvkZm5cbttA9C+wXHUwMDFmXHUwMDBl77q1p642oVxyilluulx1MDAwYp3LXHTUets4KotOq4KPY6Tp5kDavINs1kTgjUGxcZ7W5H2Y1MnFdzxNwtPl9XjUyNE0XHUwMDFiuaRxmudje5t3oppcdTAwMTJqcb7G1mVmPqeRTVx1MDAxZbvWs++6VZeLWVKYpi1cdTAwMWVvrGVcdTAwMTWEqb1tbVxibaxcdTAwMGZcdTAwMWQ4XHUwMDFhOstccuxcdTAwMGVcdTAwMDT1OeKcUKGwYEhcdTAwMTC+8bdcdTAwMTEolz5WmnGmpaBcdTAwMTRJviXtpMzhJUDaK6wlXHUwMDBliVx1MDAxMzdccsJsXHUwMDA2XG6LyJ1cdHik4tidWa1cdTAwMGJcdTAwMTaI+lxiY8QkXHUwMDE1lCjsXHUwMDFhkJh0lti2J8pXjDGCqVx1MDAxMlx1MDAxMqu+XHUwMDEw072IpFxuMyWE3Dja7NV51KHx1T1DXHJQnbc3ikWe93tZROtePlwi5CCia8u9K689f9qDz2VYVFHwQFx0lpQyLFxiVko6jvK0yLbT52WYObBcdTAwMDa9XFx/xjMnZFx1MDAxN9BcdTAwMWEhXHQ4I/xioC+zM/w+mVxcXHUwMDEwXHUwMDFkf7sqP02v8/LjeN+BJj5RQkO/XHUwMDExXHUwMDEzfUza+0Qz4ExcdTAwMTNcIjXhwPRumkmsXHJjz9M8JTGZTn+lmXLkKy4lZtBvIVXvn3I4XHUwMDBin1x0LFx1MDAxMFxmmVx1MDAwZWe2jTOmXHUwMDE4PEyjveSZw9/2X3iGXHUwMDE3l7uAplx1MDAxMlx0xEHNy4E+WY1XJrnKJseJvsTV5KxcdTAwMTlcdTAwMWTsN9BcdTAwMThrXHUwMDFmXHUwMDAxXGJcbmhVhCqknlx1MDAxMk1hgFMmqMZCI457429cdTAwMWJpgyhA9TzScVx1MDAxY+pQ/yOkXHUwMDA1jG8msaD7SDTBfzGhYe2CekFVjS2E3EiD0tJonP4wT8J4y9Ssjn/b9/bzXHUwMDA2a/0tiaar835w/1x1MDAxM/xcdTAwMThbnyJ9<!-- payload-end -->
<defs>
<style class="style-fonts">
@font-face {
font-family: "Virgil";
src: url("https://file%2B.vscode-resource.vscode-cdn.net/Users/willmcgugan/.vscode/extensions/pomdtr.excalidraw-editor-3.7.4/public//dist/excalidraw-assets/Virgil.woff2");
}
@font-face {
font-family: "Cascadia";
src: url("https://file%2B.vscode-resource.vscode-cdn.net/Users/willmcgugan/.vscode/extensions/pomdtr.excalidraw-editor-3.7.4/public//dist/excalidraw-assets/Cascadia.woff2");
}
@font-face {
font-family: "Assistant";
src: url("https://file%2B.vscode-resource.vscode-cdn.net/Users/willmcgugan/.vscode/extensions/pomdtr.excalidraw-editor-3.7.4/public//dist/excalidraw-assets/Assistant-Regular.woff2");
}
</style>
</defs>
<rect x="0" y="0" width="623.0110473632812" height="172.49923719399783" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(10 133.65481580727908) rotate(0 301.5055236816406 14.422210693359375)"><path d="M7.21 0 C153.8 1.19, 300.24 1.5, 595.8 0 C599.7 3.6, 604.82 -0.83, 603.01 7.21 C603.55 10.8, 600.38 13.49, 603.01 21.63 C601.83 25.14, 598.51 26.61, 595.8 28.84 C462.34 25.32, 327.98 25.56, 7.21 28.84 C3.48 26.79, -2.06 23.32, 0 21.63 C-1.23 16.03, 1.94 10.15, 0 7.21 C1.99 2.32, 4.84 1.65, 7.21 0" stroke="none" stroke-width="0" fill="#a5d8ff"></path><path d="M7.21 0 C131.49 1.68, 256.9 1.46, 595.8 0 M7.21 0 C187.79 2.19, 367.96 2.56, 595.8 0 M595.8 0 C598.99 0.97, 604.55 2.5, 603.01 7.21 M595.8 0 C598.7 -1.96, 603.13 1.07, 603.01 7.21 M603.01 7.21 C603.95 12.35, 601.66 13.96, 603.01 21.63 M603.01 7.21 C603.48 12.17, 603.53 18.82, 603.01 21.63 M603.01 21.63 C604.26 28.11, 600.97 29.34, 595.8 28.84 M603.01 21.63 C602.96 28.33, 599.84 29.21, 595.8 28.84 M595.8 28.84 C458.45 28.69, 319.07 28.35, 7.21 28.84 M595.8 28.84 C447.81 26.6, 300.16 27.23, 7.21 28.84 M7.21 28.84 C3.28 29.1, -0.43 27.58, 0 21.63 M7.21 28.84 C2.01 29.02, 1.9 24.45, 0 21.63 M0 21.63 C1.1 16, 0.95 10.94, 0 7.21 M0 21.63 C0.85 16.58, 0.69 12.1, 0 7.21 M0 7.21 C-0.1 3.34, 2.5 -1.83, 7.21 0 M0 7.21 C-0.31 2.23, 2.09 0.6, 7.21 0" stroke="#1971c2" stroke-width="2" fill="none"></path></g><g stroke-linecap="round" transform="translate(11.218536376953125 70.48458875649783) rotate(0 175.42885735483912 13.230804443359375)"><path d="M6.62 0 C91.52 1.52, 175.9 4.86, 344.24 0 C350.46 -3.23, 349.59 0.49, 350.86 6.62 C348.62 10.65, 350.14 16.33, 350.86 19.85 C348.76 22.02, 346.06 25.93, 344.24 26.46 C264.64 22.58, 183.37 22.39, 6.62 26.46 C0.15 23.34, 1.07 22.34, 0 19.85 C1.78 14.81, 1.44 13.33, 0 6.62 C2.43 3.85, 3.06 0.6, 6.62 0" stroke="none" stroke-width="0" fill="#b2f2bb"></path><path d="M6.62 0 C81.03 -0.09, 153.93 1.16, 344.24 0 M6.62 0 C76.19 0.52, 146.43 0.18, 344.24 0 M344.24 0 C350.19 0.09, 349.2 0.5, 350.86 6.62 M344.24 0 C348.77 -1.34, 350.19 1.73, 350.86 6.62 M350.86 6.62 C349.73 10.18, 352.02 15.66, 350.86 19.85 M350.86 6.62 C351.43 10.61, 351.36 14.04, 350.86 19.85 M350.86 19.85 C351.22 24.75, 348.6 28.1, 344.24 26.46 M350.86 19.85 C350.09 24.63, 347.15 26.23, 344.24 26.46 M344.24 26.46 C246.39 26.62, 150.1 26.7, 6.62 26.46 M344.24 26.46 C271.17 25.35, 197.87 24.87, 6.62 26.46 M6.62 26.46 C1.78 27.6, -0.34 24.41, 0 19.85 M6.62 26.46 C4.1 24.47, 0.57 24.22, 0 19.85 M0 19.85 C0.77 14.51, 0 10.39, 0 6.62 M0 19.85 C0.38 15.53, -0.16 12.72, 0 6.62 M0 6.62 C0.09 0.38, 1.94 -0.15, 6.62 0 M0 6.62 C-0.31 2.81, 1.03 -0.35, 6.62 0" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g stroke-linecap="round" transform="translate(192.5730086398787 10) rotate(0 175.42885735483912 13.230804443359375)"><path d="M6.62 0 C87.01 3.99, 169.82 -0.59, 344.24 0 C347.38 -1.72, 354.44 3.13, 350.86 6.62 C349.85 9.61, 349.24 12.84, 350.86 19.85 C348.27 23.73, 346.47 28.48, 344.24 26.46 C265.99 23.08, 184.92 22.36, 6.62 26.46 C3.27 24.55, -2.01 22.35, 0 19.85 C1.15 16.25, 1.44 13.86, 0 6.62 C0.86 2.81, 3.33 2.32, 6.62 0" stroke="none" stroke-width="0" fill="#ffc9c9"></path><path d="M6.62 0 C97.63 1.79, 187.23 1.42, 344.24 0 M6.62 0 C109.53 -1.9, 214.03 -2.2, 344.24 0 M344.24 0 C346.99 -1.7, 350.96 1.04, 350.86 6.62 M344.24 0 C347.99 -0.47, 351.86 3.76, 350.86 6.62 M350.86 6.62 C351.81 11.66, 350.2 17.68, 350.86 19.85 M350.86 6.62 C351.37 10.15, 351.07 12.74, 350.86 19.85 M350.86 19.85 C350.81 25.9, 347.99 26.78, 344.24 26.46 M350.86 19.85 C349.35 24.02, 348.34 28.42, 344.24 26.46 M344.24 26.46 C235.52 25.75, 126.99 25.63, 6.62 26.46 M344.24 26.46 C268.25 28.47, 191.53 28.76, 6.62 26.46 M6.62 26.46 C1.86 26.61, 1.65 22.53, 0 19.85 M6.62 26.46 C2.77 26.43, 0.26 26, 0 19.85 M0 19.85 C0.02 15.53, -0.34 14.98, 0 6.62 M0 19.85 C-0.13 17.3, -0.07 13.54, 0 6.62 M0 6.62 C-0.27 2.05, 1.94 0.53, 6.62 0 M0 6.62 C-1.17 1.85, 1.09 0.09, 6.62 0" stroke="#e03131" stroke-width="2" fill="none"></path></g></svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 53 KiB

Some files were not shown because too many files have changed in this diff Show more