twd-m4sc0 3.0.1__py3-none-any.whl → 3.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
twd/tui.py CHANGED
@@ -50,7 +50,11 @@ class TWDApp(App):
50
50
  yield Footer()
51
51
 
52
52
  # cwd
53
- yield Label(f"cwd: {self.manager.cwd}", classes="cwd")
53
+ yield HorizontalGroup(
54
+ Label(f"cwd: {self.manager.cwd}", classes="cwd"),
55
+ Label("", id="mode"),
56
+ id="header"
57
+ )
54
58
 
55
59
  yield Input(placeholder="Search...", id="search-input")
56
60
 
@@ -70,6 +74,10 @@ class TWDApp(App):
70
74
 
71
75
  search_input = self.query_one("#search-input", Input)
72
76
  search_input.display = False
77
+
78
+ # add headers
79
+ table = self.query_one(DataTable)
80
+ table.add_columns(*self.manager.CSV_HEADERS)
73
81
 
74
82
  self._populate_table()
75
83
 
@@ -78,10 +86,7 @@ class TWDApp(App):
78
86
  fill or refresh data table
79
87
  """
80
88
  table = self.query_one(DataTable)
81
- table.clear(columns=True)
82
-
83
- # add headers
84
- table.add_columns(*self.manager.CSV_HEADERS)
89
+ table.clear()
85
90
 
86
91
  if entries is None:
87
92
  entries = self.manager.list_all()
@@ -96,20 +101,25 @@ class TWDApp(App):
96
101
  """
97
102
  search_input = self.query_one("#search-input", Input)
98
103
  table = self.query_one(DataTable)
104
+ mode_label = self.query_one("#mode")
105
+
106
+ mode_label.update(str(new_mode.value).upper())
99
107
 
100
108
  if new_mode == Mode.SEARCH:
101
109
  # enter search mode
102
110
  search_input.display = True
103
111
  search_input.value = ""
104
112
  search_input.focus()
105
- self.sub_title = "Tracked Working Directory — SEARCH"
113
+
114
+ mode_label.add_class("search")
106
115
  elif new_mode == Mode.NORMAL:
107
116
  # enter normal mode
108
117
  search_input.display = False
109
118
  search_input.value = ""
110
119
  self._populate_table()
111
120
  table.focus()
112
- self.sub_title = "Tracked Working Directory"
121
+
122
+ mode_label.remove_class("search")
113
123
 
114
124
  # actions
115
125
  def action_cursor_down(self) -> None:
twd/tui.tcss ADDED
@@ -0,0 +1,58 @@
1
+ Screen {
2
+ background: transparent;
3
+ }
4
+
5
+ # DataTable
6
+
7
+ #data {
8
+ width: 100%;
9
+ height: 1fr;
10
+ background: transparent;
11
+ border: none;
12
+ # margin: 4 8;
13
+ # padding: 1 2;
14
+ margin: 0;
15
+ padding: 0;
16
+ }
17
+
18
+ #data > .datatable--header {
19
+ background: $surface-lighten-1;
20
+ color: $text;
21
+ text-style: bold;
22
+ }
23
+
24
+ #data > .datatable--cursor {
25
+ background: $accent;
26
+ color: $text;
27
+ }
28
+
29
+ #data > .datatable--odd-row {
30
+ background: $surface-lighten-1;
31
+ }
32
+
33
+ #data > .datatable--even-row {
34
+ background: transparent;
35
+ }
36
+
37
+ # CWD
38
+ Label.cwd {
39
+ margin: 1 2;
40
+ width: 10fr;
41
+ }
42
+
43
+ # Mode
44
+ Label#mode {
45
+ padding: 1 2;
46
+ background: $surface-lighten-1;
47
+ }
48
+
49
+ Label#mode.search {
50
+ background: $accent;
51
+ }
52
+
53
+ # Search input
54
+ Input#search-input {
55
+ margin: 0 0 1 0;
56
+ border: round $accent;
57
+ background: transparent;
58
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: twd-m4sc0
3
- Version: 3.0.1
3
+ Version: 3.0.3
4
4
  Summary: TWD by m4sc0
5
5
  Author: m4sc0
6
6
  License: MIT
@@ -12,3 +12,4 @@ Requires-Python: >=3.13
12
12
  Requires-Dist: click>=8
13
13
  Requires-Dist: textual>=7.2
14
14
  Requires-Dist: pydantic>=2.12
15
+ Requires-Dist: RapidFuzz>=3.14
@@ -0,0 +1,12 @@
1
+ twd/__init__.py,sha256=76brvw44gXGskDSsajfwk5rvxoRjk4PT99d4qGUs_64,162
2
+ twd/cli.py,sha256=Shm8ZeHrPKPr-lbo6Mvb_mjWEH8mYBVlpvZ3OcWb2sw,2550
3
+ twd/config.py,sha256=pGAaurguz1Bv6NxjwKbLBbvJ9tuAVJx_l7tcvd0B84I,1996
4
+ twd/data.py,sha256=YPVU2NhZuDOps-pkquRG9y4GW5RHf46eXIm23rgY_Lo,4131
5
+ twd/tui.py,sha256=2SGGQ5EhjZSun6NrOiU9aC6AQWfjWEZzFZjKlcIQ9vU,6062
6
+ twd/tui.tcss,sha256=GVEtk-fUcAaaGP3I-VjTFUzZocPAEcASDCBNGVoUBWw,778
7
+ twd/utils.py,sha256=F42JxIlqUMLsklQ7_zXoIOPmh872E2pHdu1jGLt6-vw,1144
8
+ twd_m4sc0-3.0.3.dist-info/METADATA,sha256=IB8U5YkNDs3MldgdSy6ffadSt84fFpgT15yz3QIjktg,437
9
+ twd_m4sc0-3.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
10
+ twd_m4sc0-3.0.3.dist-info/entry_points.txt,sha256=KeIDpaQx0GSqgJFYql14wmT3yj_JHTwq7rRsm-mKckc,36
11
+ twd_m4sc0-3.0.3.dist-info/top_level.txt,sha256=B93Li7fIZ4uWoKq8rKVuGPU_MtzyjxxDb0NF96oGZ0o,4
12
+ twd_m4sc0-3.0.3.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- twd/__init__.py,sha256=76brvw44gXGskDSsajfwk5rvxoRjk4PT99d4qGUs_64,162
2
- twd/cli.py,sha256=Shm8ZeHrPKPr-lbo6Mvb_mjWEH8mYBVlpvZ3OcWb2sw,2550
3
- twd/config.py,sha256=pGAaurguz1Bv6NxjwKbLBbvJ9tuAVJx_l7tcvd0B84I,1996
4
- twd/data.py,sha256=YPVU2NhZuDOps-pkquRG9y4GW5RHf46eXIm23rgY_Lo,4131
5
- twd/tui.py,sha256=K48yUMFZbIhGfxzw8-MDaraW7MyakWwVKZJ33GrxzY0,5847
6
- twd/utils.py,sha256=F42JxIlqUMLsklQ7_zXoIOPmh872E2pHdu1jGLt6-vw,1144
7
- twd_m4sc0-3.0.1.dist-info/METADATA,sha256=fwhKl3gb_0Eg-UZgzVzFh9ptU-6uxVT2u16I11v7G20,406
8
- twd_m4sc0-3.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- twd_m4sc0-3.0.1.dist-info/entry_points.txt,sha256=KeIDpaQx0GSqgJFYql14wmT3yj_JHTwq7rRsm-mKckc,36
10
- twd_m4sc0-3.0.1.dist-info/top_level.txt,sha256=B93Li7fIZ4uWoKq8rKVuGPU_MtzyjxxDb0NF96oGZ0o,4
11
- twd_m4sc0-3.0.1.dist-info/RECORD,,