cjm-transcript-source-select 0.0.13__tar.gz → 0.0.14__tar.gz

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.
Files changed (39) hide show
  1. {cjm_transcript_source_select-0.0.13/cjm_transcript_source_select.egg-info → cjm_transcript_source_select-0.0.14}/PKG-INFO +21 -23
  2. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/README.md +20 -22
  3. cjm_transcript_source_select-0.0.14/cjm_transcript_source_select/__init__.py +1 -0
  4. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/local_files.py +4 -5
  5. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/local_files.py +2 -11
  6. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14/cjm_transcript_source_select.egg-info}/PKG-INFO +21 -23
  7. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/settings.ini +1 -1
  8. cjm_transcript_source_select-0.0.13/cjm_transcript_source_select/__init__.py +0 -1
  9. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/LICENSE +0 -0
  10. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/MANIFEST.in +0 -0
  11. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/_modidx.py +0 -0
  12. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/__init__.py +0 -0
  13. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/helpers.py +0 -0
  14. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/preview_panel.py +0 -0
  15. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/selection_queue.py +0 -0
  16. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/source_browser.py +0 -0
  17. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/components/step_renderer.py +0 -0
  18. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/html_ids.py +0 -0
  19. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/models.py +0 -0
  20. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/__init__.py +0 -0
  21. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/core.py +0 -0
  22. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/filtering.py +0 -0
  23. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/init.py +0 -0
  24. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/queue.py +0 -0
  25. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/source_browser.py +0 -0
  26. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/routes/tabs.py +0 -0
  27. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/services/__init__.py +0 -0
  28. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/services/source.py +0 -0
  29. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/services/source_utils.py +0 -0
  30. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select/utils.py +0 -0
  31. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select.egg-info/SOURCES.txt +0 -0
  32. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select.egg-info/dependency_links.txt +0 -0
  33. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select.egg-info/entry_points.txt +0 -0
  34. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select.egg-info/not-zip-safe +0 -0
  35. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select.egg-info/requires.txt +0 -0
  36. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/cjm_transcript_source_select.egg-info/top_level.txt +0 -0
  37. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/pyproject.toml +0 -0
  38. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/setup.cfg +0 -0
  39. {cjm_transcript_source_select-0.0.13 → cjm_transcript_source_select-0.0.14}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cjm-transcript-source-select
3
- Version: 0.0.13
3
+ Version: 0.0.14
4
4
  Summary: FastHTML source selection component for transcript decomposition workflows, with federated database browsing, drag-drop ordering, and keyboard navigation.
5
5
  Home-page: https://github.com/cj-mills/cjm-transcript-source-select
6
6
  Author: Christian J. Mills
@@ -112,51 +112,51 @@ graph LR
112
112
  components_source_browser --> services_source_utils
113
113
  components_source_browser --> utils
114
114
  components_source_browser --> html_ids
115
- components_step_renderer --> components_selection_queue
116
- components_step_renderer --> components_source_browser
115
+ components_step_renderer --> components_preview_panel
116
+ components_step_renderer --> models
117
117
  components_step_renderer --> utils
118
+ components_step_renderer --> components_source_browser
119
+ components_step_renderer --> components_selection_queue
118
120
  components_step_renderer --> components_local_files
119
121
  components_step_renderer --> html_ids
120
- components_step_renderer --> components_preview_panel
121
- components_step_renderer --> models
122
- routes_core --> components_selection_queue
123
- routes_core --> services_source
124
- routes_core --> html_ids
125
122
  routes_core --> models
126
123
  routes_core --> components_step_renderer
124
+ routes_core --> html_ids
125
+ routes_core --> components_selection_queue
126
+ routes_core --> services_source
127
+ routes_filtering --> models
128
+ routes_filtering --> routes_core
127
129
  routes_filtering --> services_source_utils
128
130
  routes_filtering --> services_source
129
- routes_filtering --> routes_core
130
- routes_filtering --> models
131
131
  routes_init --> routes_core
132
- routes_init --> services_source
133
- routes_init --> routes_source_browser
134
- routes_init --> routes_filtering
135
- routes_init --> routes_local_files
136
132
  routes_init --> routes_queue
137
133
  routes_init --> models
134
+ routes_init --> routes_local_files
135
+ routes_init --> routes_source_browser
136
+ routes_init --> routes_filtering
138
137
  routes_init --> routes_tabs
138
+ routes_init --> services_source
139
139
  routes_local_files --> components_local_files
140
+ routes_local_files --> models
140
141
  routes_local_files --> services_source
141
142
  routes_local_files --> routes_core
142
- routes_local_files --> models
143
143
  routes_queue --> services_source_utils
144
- routes_queue --> services_source
145
144
  routes_queue --> routes_core
146
145
  routes_queue --> components_preview_panel
147
146
  routes_queue --> models
147
+ routes_queue --> services_source
148
148
  routes_source_browser --> routes_core
149
- routes_source_browser --> services_source_utils
149
+ routes_source_browser --> components_preview_panel
150
+ routes_source_browser --> models
150
151
  routes_source_browser --> components_source_browser
152
+ routes_source_browser --> services_source_utils
151
153
  routes_source_browser --> services_source
152
154
  routes_source_browser --> html_ids
153
- routes_source_browser --> components_preview_panel
154
- routes_source_browser --> models
155
- routes_tabs --> components_step_renderer
156
155
  routes_tabs --> routes_core
157
156
  routes_tabs --> services_source_utils
158
- routes_tabs --> services_source
159
157
  routes_tabs --> models
158
+ routes_tabs --> components_step_renderer
159
+ routes_tabs --> services_source
160
160
  ```
161
161
 
162
162
  *52 cross-module dependencies detected*
@@ -526,8 +526,6 @@ def _handle_remove_external_source(
526
526
  sess, # FastHTML session object
527
527
  db_path: str, # Path to the .db file to remove
528
528
  external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
529
- fb_state_getter: Callable[[], BrowserState], # File browser state getter
530
- fb_state_setter: Callable[[BrowserState], None], # File browser state setter
531
529
  fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
532
530
  remove_url: str, # URL for remove button in external sources list
533
531
  ): # Tuple of OOB elements (external sources list + checkbox cells)
@@ -66,51 +66,51 @@ graph LR
66
66
  components_source_browser --> services_source_utils
67
67
  components_source_browser --> utils
68
68
  components_source_browser --> html_ids
69
- components_step_renderer --> components_selection_queue
70
- components_step_renderer --> components_source_browser
69
+ components_step_renderer --> components_preview_panel
70
+ components_step_renderer --> models
71
71
  components_step_renderer --> utils
72
+ components_step_renderer --> components_source_browser
73
+ components_step_renderer --> components_selection_queue
72
74
  components_step_renderer --> components_local_files
73
75
  components_step_renderer --> html_ids
74
- components_step_renderer --> components_preview_panel
75
- components_step_renderer --> models
76
- routes_core --> components_selection_queue
77
- routes_core --> services_source
78
- routes_core --> html_ids
79
76
  routes_core --> models
80
77
  routes_core --> components_step_renderer
78
+ routes_core --> html_ids
79
+ routes_core --> components_selection_queue
80
+ routes_core --> services_source
81
+ routes_filtering --> models
82
+ routes_filtering --> routes_core
81
83
  routes_filtering --> services_source_utils
82
84
  routes_filtering --> services_source
83
- routes_filtering --> routes_core
84
- routes_filtering --> models
85
85
  routes_init --> routes_core
86
- routes_init --> services_source
87
- routes_init --> routes_source_browser
88
- routes_init --> routes_filtering
89
- routes_init --> routes_local_files
90
86
  routes_init --> routes_queue
91
87
  routes_init --> models
88
+ routes_init --> routes_local_files
89
+ routes_init --> routes_source_browser
90
+ routes_init --> routes_filtering
92
91
  routes_init --> routes_tabs
92
+ routes_init --> services_source
93
93
  routes_local_files --> components_local_files
94
+ routes_local_files --> models
94
95
  routes_local_files --> services_source
95
96
  routes_local_files --> routes_core
96
- routes_local_files --> models
97
97
  routes_queue --> services_source_utils
98
- routes_queue --> services_source
99
98
  routes_queue --> routes_core
100
99
  routes_queue --> components_preview_panel
101
100
  routes_queue --> models
101
+ routes_queue --> services_source
102
102
  routes_source_browser --> routes_core
103
- routes_source_browser --> services_source_utils
103
+ routes_source_browser --> components_preview_panel
104
+ routes_source_browser --> models
104
105
  routes_source_browser --> components_source_browser
106
+ routes_source_browser --> services_source_utils
105
107
  routes_source_browser --> services_source
106
108
  routes_source_browser --> html_ids
107
- routes_source_browser --> components_preview_panel
108
- routes_source_browser --> models
109
- routes_tabs --> components_step_renderer
110
109
  routes_tabs --> routes_core
111
110
  routes_tabs --> services_source_utils
112
- routes_tabs --> services_source
113
111
  routes_tabs --> models
112
+ routes_tabs --> components_step_renderer
113
+ routes_tabs --> services_source
114
114
  ```
115
115
 
116
116
  *52 cross-module dependencies detected*
@@ -480,8 +480,6 @@ def _handle_remove_external_source(
480
480
  sess, # FastHTML session object
481
481
  db_path: str, # Path to the .db file to remove
482
482
  external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
483
- fb_state_getter: Callable[[], BrowserState], # File browser state getter
484
- fb_state_setter: Callable[[BrowserState], None], # File browser state setter
485
483
  fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
486
484
  remove_url: str, # URL for remove button in external sources list
487
485
  ): # Tuple of OOB elements (external sources list + checkbox cells)
@@ -0,0 +1 @@
1
+ __version__ = "0.0.14"
@@ -16,6 +16,7 @@ from cjm_fasthtml_interactions.core.context import InteractionContext
16
16
  # DaisyUI components
17
17
  from cjm_fasthtml_daisyui.components.actions.button import btn, btn_sizes, btn_styles
18
18
  from cjm_fasthtml_daisyui.components.data_display.badge import badge, badge_colors, badge_sizes
19
+ from cjm_fasthtml_daisyui.components.data_display.list import list_ui, list_row
19
20
  from cjm_fasthtml_daisyui.components.feedback.alert import alert, alert_colors
20
21
  from cjm_fasthtml_daisyui.utilities.semantic_colors import bg_dui, text_dui, border_dui
21
22
  from cjm_fasthtml_daisyui.utilities.border_radius import border_radius
@@ -123,15 +124,13 @@ def _render_external_sources_list(
123
124
  cls=combine_classes(btn, btn_styles.ghost, btn_sizes.xs, shrink._0),
124
125
  hx_post=remove_url,
125
126
  hx_vals=json.dumps({"db_path": db_path}),
126
- # Use SOURCE_LIST ID for consistent zone focus ring
127
- hx_target=SelectionHtmlIds.as_selector(SelectionHtmlIds.SOURCE_LIST),
128
- hx_swap="outerHTML",
127
+ hx_swap="none",
129
128
  title=f"Remove {path.name}"
130
129
  ),
131
130
  cls=combine_classes(flex_display, items.center, gap(2), p.y(1), p.x(2))
132
131
  ),
133
132
  title=db_path,
134
- cls=combine_classes(border_dui.base_300, border.b(), bg_dui.primary.opacity(10))
133
+ cls=combine_classes(list_row, border_dui.base_300, border.b(), bg_dui.primary.opacity(10))
135
134
  ))
136
135
 
137
136
  return Div(
@@ -149,7 +148,7 @@ def _render_external_sources_list(
149
148
  Ul(
150
149
  *list_items,
151
150
  id=SelectionHtmlIds.EXTERNAL_SOURCES_LIST,
152
- cls=combine_classes(border_radius.box, list_style.none, m(0), p(0), overflow.y.auto, max_h(32))
151
+ cls=combine_classes(list_ui, m(0), p(0), overflow.y.auto, max_h(32))
153
152
  ),
154
153
  id=SelectionHtmlIds.EXTERNAL_SOURCES_SECTION,
155
154
  cls=combine_classes(m.t(2), shrink._0),
@@ -52,8 +52,6 @@ def _handle_remove_external_source(
52
52
  sess, # FastHTML session object
53
53
  db_path: str, # Path to the .db file to remove
54
54
  external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
55
- fb_state_getter: Callable[[], BrowserState], # File browser state getter
56
- fb_state_setter: Callable[[BrowserState], None], # File browser state setter
57
55
  fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
58
56
  remove_url: str, # URL for remove button in external sources list
59
57
  ): # Tuple of OOB elements (external sources list + checkbox cells)
@@ -66,13 +64,8 @@ def _handle_remove_external_source(
66
64
  _update_step_state(state_store, workflow_id, session_id, external_db_paths=list(external_db_paths_ref))
67
65
  source_service.set_external_paths(list(external_db_paths_ref))
68
66
 
69
- # Sync browser selection state with external_db_paths for checkbox display
70
- browser_state = fb_state_getter()
71
- browser_state.selection.selected_paths = list(external_db_paths_ref)
72
- fb_state_setter(browser_state)
73
-
74
- # Targeted OOB updates instead of full panel re-render
75
- checkbox_oobs = fb_routers.render_selection_oobs([db_path])
67
+ # Sync selection + get targeted OOBs in one call
68
+ checkbox_oobs = fb_routers.update_selection_oobs(list(external_db_paths_ref), [db_path])
76
69
  external_list_oob = _render_external_sources_list(
77
70
  list(external_db_paths_ref), remove_url, oob=True,
78
71
  )
@@ -182,8 +175,6 @@ def init_local_files_router(
182
175
  state_store, workflow_id, source_service,
183
176
  sess, db_path,
184
177
  external_db_paths_ref=_external_db_paths,
185
- fb_state_getter=_fb_state_getter,
186
- fb_state_setter=_fb_state_setter,
187
178
  fb_routers=fb_routers,
188
179
  remove_url=urls.remove_external,
189
180
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cjm-transcript-source-select
3
- Version: 0.0.13
3
+ Version: 0.0.14
4
4
  Summary: FastHTML source selection component for transcript decomposition workflows, with federated database browsing, drag-drop ordering, and keyboard navigation.
5
5
  Home-page: https://github.com/cj-mills/cjm-transcript-source-select
6
6
  Author: Christian J. Mills
@@ -112,51 +112,51 @@ graph LR
112
112
  components_source_browser --> services_source_utils
113
113
  components_source_browser --> utils
114
114
  components_source_browser --> html_ids
115
- components_step_renderer --> components_selection_queue
116
- components_step_renderer --> components_source_browser
115
+ components_step_renderer --> components_preview_panel
116
+ components_step_renderer --> models
117
117
  components_step_renderer --> utils
118
+ components_step_renderer --> components_source_browser
119
+ components_step_renderer --> components_selection_queue
118
120
  components_step_renderer --> components_local_files
119
121
  components_step_renderer --> html_ids
120
- components_step_renderer --> components_preview_panel
121
- components_step_renderer --> models
122
- routes_core --> components_selection_queue
123
- routes_core --> services_source
124
- routes_core --> html_ids
125
122
  routes_core --> models
126
123
  routes_core --> components_step_renderer
124
+ routes_core --> html_ids
125
+ routes_core --> components_selection_queue
126
+ routes_core --> services_source
127
+ routes_filtering --> models
128
+ routes_filtering --> routes_core
127
129
  routes_filtering --> services_source_utils
128
130
  routes_filtering --> services_source
129
- routes_filtering --> routes_core
130
- routes_filtering --> models
131
131
  routes_init --> routes_core
132
- routes_init --> services_source
133
- routes_init --> routes_source_browser
134
- routes_init --> routes_filtering
135
- routes_init --> routes_local_files
136
132
  routes_init --> routes_queue
137
133
  routes_init --> models
134
+ routes_init --> routes_local_files
135
+ routes_init --> routes_source_browser
136
+ routes_init --> routes_filtering
138
137
  routes_init --> routes_tabs
138
+ routes_init --> services_source
139
139
  routes_local_files --> components_local_files
140
+ routes_local_files --> models
140
141
  routes_local_files --> services_source
141
142
  routes_local_files --> routes_core
142
- routes_local_files --> models
143
143
  routes_queue --> services_source_utils
144
- routes_queue --> services_source
145
144
  routes_queue --> routes_core
146
145
  routes_queue --> components_preview_panel
147
146
  routes_queue --> models
147
+ routes_queue --> services_source
148
148
  routes_source_browser --> routes_core
149
- routes_source_browser --> services_source_utils
149
+ routes_source_browser --> components_preview_panel
150
+ routes_source_browser --> models
150
151
  routes_source_browser --> components_source_browser
152
+ routes_source_browser --> services_source_utils
151
153
  routes_source_browser --> services_source
152
154
  routes_source_browser --> html_ids
153
- routes_source_browser --> components_preview_panel
154
- routes_source_browser --> models
155
- routes_tabs --> components_step_renderer
156
155
  routes_tabs --> routes_core
157
156
  routes_tabs --> services_source_utils
158
- routes_tabs --> services_source
159
157
  routes_tabs --> models
158
+ routes_tabs --> components_step_renderer
159
+ routes_tabs --> services_source
160
160
  ```
161
161
 
162
162
  *52 cross-module dependencies detected*
@@ -526,8 +526,6 @@ def _handle_remove_external_source(
526
526
  sess, # FastHTML session object
527
527
  db_path: str, # Path to the .db file to remove
528
528
  external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
529
- fb_state_getter: Callable[[], BrowserState], # File browser state getter
530
- fb_state_setter: Callable[[BrowserState], None], # File browser state setter
531
529
  fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
532
530
  remove_url: str, # URL for remove button in external sources list
533
531
  ): # Tuple of OOB elements (external sources list + checkbox cells)
@@ -1,7 +1,7 @@
1
1
  [DEFAULT]
2
2
  repo = cjm-transcript-source-select
3
3
  lib_name = cjm-transcript-source-select
4
- version = 0.0.13
4
+ version = 0.0.14
5
5
  min_python = 3.12
6
6
  license = apache2
7
7
  black_formatting = False
@@ -1 +0,0 @@
1
- __version__ = "0.0.13"