cjm-transcript-source-select 0.0.10__tar.gz → 0.0.12__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.
- {cjm_transcript_source_select-0.0.10/cjm_transcript_source_select.egg-info → cjm_transcript_source_select-0.0.12}/PKG-INFO +26 -24
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/README.md +25 -23
- cjm_transcript_source_select-0.0.12/cjm_transcript_source_select/__init__.py +1 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/preview_panel.py +2 -1
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/selection_queue.py +4 -4
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/step_renderer.py +11 -10
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/local_files.py +14 -7
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12/cjm_transcript_source_select.egg-info}/PKG-INFO +26 -24
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/settings.ini +1 -1
- cjm_transcript_source_select-0.0.10/cjm_transcript_source_select/__init__.py +0 -1
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/LICENSE +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/MANIFEST.in +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/_modidx.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/__init__.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/helpers.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/local_files.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/components/source_browser.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/html_ids.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/models.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/__init__.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/core.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/filtering.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/init.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/queue.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/source_browser.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/routes/tabs.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/services/__init__.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/services/source.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/services/source_utils.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select/utils.py +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select.egg-info/SOURCES.txt +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select.egg-info/dependency_links.txt +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select.egg-info/entry_points.txt +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select.egg-info/not-zip-safe +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select.egg-info/requires.txt +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/cjm_transcript_source_select.egg-info/top_level.txt +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/pyproject.toml +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/setup.cfg +0 -0
- {cjm_transcript_source_select-0.0.10 → cjm_transcript_source_select-0.0.12}/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.
|
|
3
|
+
Version: 0.0.12
|
|
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 -->
|
|
115
|
+
components_step_renderer --> components_local_files
|
|
116
|
+
components_step_renderer --> html_ids
|
|
116
117
|
components_step_renderer --> components_preview_panel
|
|
117
118
|
components_step_renderer --> components_selection_queue
|
|
118
|
-
components_step_renderer --> components_source_browser
|
|
119
119
|
components_step_renderer --> models
|
|
120
|
-
components_step_renderer -->
|
|
121
|
-
components_step_renderer -->
|
|
122
|
-
routes_core --> models
|
|
123
|
-
routes_core --> html_ids
|
|
124
|
-
routes_core --> services_source
|
|
120
|
+
components_step_renderer --> utils
|
|
121
|
+
components_step_renderer --> components_source_browser
|
|
125
122
|
routes_core --> components_step_renderer
|
|
123
|
+
routes_core --> services_source
|
|
126
124
|
routes_core --> components_selection_queue
|
|
125
|
+
routes_core --> html_ids
|
|
126
|
+
routes_core --> models
|
|
127
127
|
routes_filtering --> services_source_utils
|
|
128
128
|
routes_filtering --> routes_core
|
|
129
|
-
routes_filtering --> models
|
|
130
129
|
routes_filtering --> services_source
|
|
130
|
+
routes_filtering --> models
|
|
131
|
+
routes_init --> routes_core
|
|
131
132
|
routes_init --> routes_queue
|
|
133
|
+
routes_init --> routes_tabs
|
|
132
134
|
routes_init --> routes_local_files
|
|
133
|
-
routes_init --> routes_core
|
|
134
|
-
routes_init --> models
|
|
135
135
|
routes_init --> services_source
|
|
136
|
+
routes_init --> models
|
|
136
137
|
routes_init --> routes_source_browser
|
|
137
138
|
routes_init --> routes_filtering
|
|
138
|
-
routes_init --> routes_tabs
|
|
139
|
-
routes_local_files --> models
|
|
140
139
|
routes_local_files --> components_local_files
|
|
141
140
|
routes_local_files --> routes_core
|
|
142
141
|
routes_local_files --> services_source
|
|
143
|
-
|
|
142
|
+
routes_local_files --> models
|
|
144
143
|
routes_queue --> services_source_utils
|
|
144
|
+
routes_queue --> components_preview_panel
|
|
145
145
|
routes_queue --> routes_core
|
|
146
|
-
routes_queue --> models
|
|
147
146
|
routes_queue --> services_source
|
|
148
|
-
|
|
147
|
+
routes_queue --> models
|
|
148
|
+
routes_source_browser --> services_source_utils
|
|
149
149
|
routes_source_browser --> components_source_browser
|
|
150
|
-
routes_source_browser --> models
|
|
151
|
-
routes_source_browser --> services_source
|
|
152
150
|
routes_source_browser --> routes_core
|
|
153
|
-
routes_source_browser -->
|
|
151
|
+
routes_source_browser --> components_preview_panel
|
|
152
|
+
routes_source_browser --> services_source
|
|
153
|
+
routes_source_browser --> models
|
|
154
154
|
routes_source_browser --> html_ids
|
|
155
|
-
routes_tabs --> models
|
|
156
|
-
routes_tabs --> routes_core
|
|
157
155
|
routes_tabs --> services_source
|
|
158
|
-
routes_tabs -->
|
|
156
|
+
routes_tabs --> routes_core
|
|
157
|
+
routes_tabs --> models
|
|
159
158
|
routes_tabs --> components_step_renderer
|
|
159
|
+
routes_tabs --> services_source_utils
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
*52 cross-module dependencies detected*
|
|
@@ -528,8 +528,9 @@ def _handle_remove_external_source(
|
|
|
528
528
|
external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
|
|
529
529
|
fb_state_getter: Callable[[], BrowserState], # File browser state getter
|
|
530
530
|
fb_state_setter: Callable[[BrowserState], None], # File browser state setter
|
|
531
|
-
|
|
532
|
-
|
|
531
|
+
fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
|
|
532
|
+
remove_url: str, # URL for remove button in external sources list
|
|
533
|
+
): # Tuple of OOB elements (external sources list + checkbox cells)
|
|
533
534
|
"Remove an external database source from the Added Sources list."
|
|
534
535
|
```
|
|
535
536
|
|
|
@@ -1415,6 +1416,7 @@ SD_TAB_PREV_BTN = 'sd-tab-prev-btn'
|
|
|
1415
1416
|
SD_TAB_NEXT_BTN = 'sd-tab-next-btn'
|
|
1416
1417
|
SD_PREVIEW_BTN = 'sd-preview-btn'
|
|
1417
1418
|
FB_SYSTEM_ID = 'lfb-collection'
|
|
1419
|
+
_ZONE_FOCUS_CLASSES
|
|
1418
1420
|
_VIEWPORT_FIT_CONFIG
|
|
1419
1421
|
```
|
|
1420
1422
|
|
|
@@ -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 -->
|
|
69
|
+
components_step_renderer --> components_local_files
|
|
70
|
+
components_step_renderer --> html_ids
|
|
70
71
|
components_step_renderer --> components_preview_panel
|
|
71
72
|
components_step_renderer --> components_selection_queue
|
|
72
|
-
components_step_renderer --> components_source_browser
|
|
73
73
|
components_step_renderer --> models
|
|
74
|
-
components_step_renderer -->
|
|
75
|
-
components_step_renderer -->
|
|
76
|
-
routes_core --> models
|
|
77
|
-
routes_core --> html_ids
|
|
78
|
-
routes_core --> services_source
|
|
74
|
+
components_step_renderer --> utils
|
|
75
|
+
components_step_renderer --> components_source_browser
|
|
79
76
|
routes_core --> components_step_renderer
|
|
77
|
+
routes_core --> services_source
|
|
80
78
|
routes_core --> components_selection_queue
|
|
79
|
+
routes_core --> html_ids
|
|
80
|
+
routes_core --> models
|
|
81
81
|
routes_filtering --> services_source_utils
|
|
82
82
|
routes_filtering --> routes_core
|
|
83
|
-
routes_filtering --> models
|
|
84
83
|
routes_filtering --> services_source
|
|
84
|
+
routes_filtering --> models
|
|
85
|
+
routes_init --> routes_core
|
|
85
86
|
routes_init --> routes_queue
|
|
87
|
+
routes_init --> routes_tabs
|
|
86
88
|
routes_init --> routes_local_files
|
|
87
|
-
routes_init --> routes_core
|
|
88
|
-
routes_init --> models
|
|
89
89
|
routes_init --> services_source
|
|
90
|
+
routes_init --> models
|
|
90
91
|
routes_init --> routes_source_browser
|
|
91
92
|
routes_init --> routes_filtering
|
|
92
|
-
routes_init --> routes_tabs
|
|
93
|
-
routes_local_files --> models
|
|
94
93
|
routes_local_files --> components_local_files
|
|
95
94
|
routes_local_files --> routes_core
|
|
96
95
|
routes_local_files --> services_source
|
|
97
|
-
|
|
96
|
+
routes_local_files --> models
|
|
98
97
|
routes_queue --> services_source_utils
|
|
98
|
+
routes_queue --> components_preview_panel
|
|
99
99
|
routes_queue --> routes_core
|
|
100
|
-
routes_queue --> models
|
|
101
100
|
routes_queue --> services_source
|
|
102
|
-
|
|
101
|
+
routes_queue --> models
|
|
102
|
+
routes_source_browser --> services_source_utils
|
|
103
103
|
routes_source_browser --> components_source_browser
|
|
104
|
-
routes_source_browser --> models
|
|
105
|
-
routes_source_browser --> services_source
|
|
106
104
|
routes_source_browser --> routes_core
|
|
107
|
-
routes_source_browser -->
|
|
105
|
+
routes_source_browser --> components_preview_panel
|
|
106
|
+
routes_source_browser --> services_source
|
|
107
|
+
routes_source_browser --> models
|
|
108
108
|
routes_source_browser --> html_ids
|
|
109
|
-
routes_tabs --> models
|
|
110
|
-
routes_tabs --> routes_core
|
|
111
109
|
routes_tabs --> services_source
|
|
112
|
-
routes_tabs -->
|
|
110
|
+
routes_tabs --> routes_core
|
|
111
|
+
routes_tabs --> models
|
|
113
112
|
routes_tabs --> components_step_renderer
|
|
113
|
+
routes_tabs --> services_source_utils
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
*52 cross-module dependencies detected*
|
|
@@ -482,8 +482,9 @@ def _handle_remove_external_source(
|
|
|
482
482
|
external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
|
|
483
483
|
fb_state_getter: Callable[[], BrowserState], # File browser state getter
|
|
484
484
|
fb_state_setter: Callable[[BrowserState], None], # File browser state setter
|
|
485
|
-
|
|
486
|
-
|
|
485
|
+
fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
|
|
486
|
+
remove_url: str, # URL for remove button in external sources list
|
|
487
|
+
): # Tuple of OOB elements (external sources list + checkbox cells)
|
|
487
488
|
"Remove an external database source from the Added Sources list."
|
|
488
489
|
```
|
|
489
490
|
|
|
@@ -1369,6 +1370,7 @@ SD_TAB_PREV_BTN = 'sd-tab-prev-btn'
|
|
|
1369
1370
|
SD_TAB_NEXT_BTN = 'sd-tab-next-btn'
|
|
1370
1371
|
SD_PREVIEW_BTN = 'sd-preview-btn'
|
|
1371
1372
|
FB_SYSTEM_ID = 'lfb-collection'
|
|
1373
|
+
_ZONE_FOCUS_CLASSES
|
|
1372
1374
|
_VIEWPORT_FIT_CONFIG
|
|
1373
1375
|
```
|
|
1374
1376
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.0.12"
|
|
@@ -14,7 +14,7 @@ from fasthtml.common import Div, H3, P, Span, Input
|
|
|
14
14
|
from cjm_fasthtml_daisyui.components.data_display.collapse import (
|
|
15
15
|
collapse, collapse_title, collapse_content, collapse_modifiers
|
|
16
16
|
)
|
|
17
|
-
from cjm_fasthtml_daisyui.utilities.semantic_colors import bg_dui, text_dui, border_dui
|
|
17
|
+
from cjm_fasthtml_daisyui.utilities.semantic_colors import bg_dui, text_dui, border_dui, shadow_dui
|
|
18
18
|
from cjm_fasthtml_daisyui.utilities.border_radius import border_radius
|
|
19
19
|
|
|
20
20
|
# Tailwind utilities
|
|
@@ -98,6 +98,7 @@ def _render_preview_panel(
|
|
|
98
98
|
bg_dui.base_100,
|
|
99
99
|
border_radius.box,
|
|
100
100
|
shadow.lg,
|
|
101
|
+
shadow_dui.base_300,
|
|
101
102
|
border_dui.base_300,
|
|
102
103
|
border(),
|
|
103
104
|
m.t(4)
|
|
@@ -12,7 +12,7 @@ from fasthtml.common import Span, P
|
|
|
12
12
|
|
|
13
13
|
from cjm_fasthtml_tailwind.utilities.spacing import p
|
|
14
14
|
from cjm_fasthtml_tailwind.utilities.typography import (
|
|
15
|
-
font_size, font_family, text_align
|
|
15
|
+
font_size, font_family, text_align
|
|
16
16
|
)
|
|
17
17
|
from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import (
|
|
18
18
|
flex_display, flex_direction, justify, items, grow
|
|
@@ -44,8 +44,8 @@ def _render_queue_content(
|
|
|
44
44
|
"""Render the job ID display as custom content for each queue item."""
|
|
45
45
|
record_id = item.get("record_id", "")
|
|
46
46
|
return Span(
|
|
47
|
-
record_id
|
|
48
|
-
cls=combine_classes(grow(), font_size.sm, font_family.mono
|
|
47
|
+
record_id,
|
|
48
|
+
cls=combine_classes(grow(), font_size.sm, font_family.mono),
|
|
49
49
|
title=record_id
|
|
50
50
|
)
|
|
51
51
|
|
|
@@ -54,7 +54,7 @@ def _render_queue_empty() -> Any: # Empty state element
|
|
|
54
54
|
"""Render the custom empty state for the source selection queue."""
|
|
55
55
|
return P(
|
|
56
56
|
"Select transcriptions from the browser",
|
|
57
|
-
cls=combine_classes(text_dui.base_content.opacity(
|
|
57
|
+
cls=combine_classes(text_dui.base_content.opacity(50), text_align.center, font_size.sm, p(2))
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
# %% ../../nbs/components/selection_queue.ipynb #17uipzddaut
|
|
@@ -18,7 +18,7 @@ from cjm_fasthtml_daisyui.components.data_display.collapse import (
|
|
|
18
18
|
collapse, collapse_title, collapse_content, collapse_modifiers
|
|
19
19
|
)
|
|
20
20
|
from cjm_fasthtml_daisyui.components.navigation.tabs import tabs, tabs_styles, tab
|
|
21
|
-
from cjm_fasthtml_daisyui.utilities.semantic_colors import bg_dui, text_dui, border_dui, ring_dui
|
|
21
|
+
from cjm_fasthtml_daisyui.utilities.semantic_colors import bg_dui, text_dui, border_dui, ring_dui, shadow_dui
|
|
22
22
|
from cjm_fasthtml_daisyui.utilities.border_radius import border_radius
|
|
23
23
|
|
|
24
24
|
# Tailwind utilities
|
|
@@ -27,7 +27,7 @@ from cjm_fasthtml_tailwind.utilities.sizing import w, h, min_h, min_w
|
|
|
27
27
|
from cjm_fasthtml_tailwind.utilities.typography import font_size, font_weight
|
|
28
28
|
from cjm_fasthtml_tailwind.utilities.layout import overflow
|
|
29
29
|
from cjm_fasthtml_tailwind.utilities.borders import border
|
|
30
|
-
from cjm_fasthtml_tailwind.utilities.effects import ring
|
|
30
|
+
from cjm_fasthtml_tailwind.utilities.effects import ring, shadow
|
|
31
31
|
from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import (
|
|
32
32
|
flex_display, flex_direction, justify, items, gap, grow
|
|
33
33
|
)
|
|
@@ -79,6 +79,9 @@ SD_PREVIEW_BTN = "sd-preview-btn"
|
|
|
79
79
|
# File browser system ID (matches vc_prefix="lfb" → zone "lfb-collection")
|
|
80
80
|
FB_SYSTEM_ID = "lfb-collection"
|
|
81
81
|
|
|
82
|
+
# Shadow-based zone focus styling (shadow appears only when zone is active)
|
|
83
|
+
_ZONE_FOCUS_CLASSES = (str(shadow.lg), str(shadow_dui.primary))
|
|
84
|
+
|
|
82
85
|
|
|
83
86
|
def _create_parent_keyboard_manager() -> ZoneManager: # Parent keyboard manager for hierarchy
|
|
84
87
|
"""Create the parent keyboard manager with two ghost zones for column switching."""
|
|
@@ -87,7 +90,7 @@ def _create_parent_keyboard_manager() -> ZoneManager: # Parent keyboard manager
|
|
|
87
90
|
id=SelectionHtmlIds.GHOST_BROWSER,
|
|
88
91
|
item_selector=None,
|
|
89
92
|
navigation=ScrollOnly(),
|
|
90
|
-
zone_focus_classes=
|
|
93
|
+
zone_focus_classes=_ZONE_FOCUS_CLASSES,
|
|
91
94
|
)
|
|
92
95
|
|
|
93
96
|
# Ghost zone for queue area (wraps queue panel — queue child system lives here)
|
|
@@ -95,7 +98,7 @@ def _create_parent_keyboard_manager() -> ZoneManager: # Parent keyboard manager
|
|
|
95
98
|
id=SelectionHtmlIds.GHOST_QUEUE,
|
|
96
99
|
item_selector=None,
|
|
97
100
|
navigation=ScrollOnly(),
|
|
98
|
-
zone_focus_classes=
|
|
101
|
+
zone_focus_classes=_ZONE_FOCUS_CLASSES,
|
|
99
102
|
)
|
|
100
103
|
|
|
101
104
|
# Parent-level actions (no queue-scoped actions — those live in queue child system)
|
|
@@ -317,6 +320,7 @@ _VIEWPORT_FIT_CONFIG = ViewportFitConfig(
|
|
|
317
320
|
target_id=SelectionHtmlIds.MAIN_CONTENT,
|
|
318
321
|
)
|
|
319
322
|
|
|
323
|
+
# %% ../../nbs/components/step_renderer.ipynb #rz60ckek1hi
|
|
320
324
|
def _generate_hierarchy_js(
|
|
321
325
|
active_tab: str, # Active tab: "db" or "files"
|
|
322
326
|
) -> Script: # Script element with hierarchy wiring and activation logic
|
|
@@ -390,7 +394,7 @@ def _generate_hierarchy_js(
|
|
|
390
394
|
}})();
|
|
391
395
|
""")
|
|
392
396
|
|
|
393
|
-
|
|
397
|
+
# %% ../../nbs/components/step_renderer.ipynb #jes3pdhj1hg
|
|
394
398
|
def render_selection_step(
|
|
395
399
|
sources: List[Dict[str, Any]], # Available source plugins
|
|
396
400
|
transcriptions: List[Dict[str, Any]], # Available transcription records
|
|
@@ -434,8 +438,6 @@ def render_selection_step(
|
|
|
434
438
|
config=SD_QUEUE_CONFIG,
|
|
435
439
|
ids=SD_QUEUE_IDS,
|
|
436
440
|
urls=SortableQueueUrls(reorder=urls.keyboard_reorder or urls.reorder, remove=urls.remove, clear=urls.clear),
|
|
437
|
-
zone_focus_classes=(str(ring(1)), str(ring_dui.secondary)),
|
|
438
|
-
item_focus_classes=(str(bg_dui.secondary.opacity(10)), str(ring(1)), str(ring_dui.secondary)),
|
|
439
441
|
data_attributes=("key", "record-id", "provider-id"),
|
|
440
442
|
on_focus_change="triggerPreviewUpdate",
|
|
441
443
|
hidden_input_prefix="sd-focused",
|
|
@@ -526,7 +528,8 @@ def render_selection_step(
|
|
|
526
528
|
Div(
|
|
527
529
|
queue_panel,
|
|
528
530
|
id=SelectionHtmlIds.GHOST_QUEUE,
|
|
529
|
-
cls=combine_classes(min_h(
|
|
531
|
+
cls=combine_classes(min_h(48), border_radius.box, transition.all, border(), border_dui.base_300),
|
|
532
|
+
),
|
|
530
533
|
id=SelectionHtmlIds.MAIN_CONTENT,
|
|
531
534
|
cls=combine_classes(
|
|
532
535
|
grow(),
|
|
@@ -535,8 +538,6 @@ def render_selection_step(
|
|
|
535
538
|
flex_direction.col,
|
|
536
539
|
flex_direction.row.lg,
|
|
537
540
|
gap(4),
|
|
538
|
-
overflow.hidden,
|
|
539
|
-
p(1)
|
|
540
541
|
)
|
|
541
542
|
),
|
|
542
543
|
|
|
@@ -54,23 +54,29 @@ def _handle_remove_external_source(
|
|
|
54
54
|
external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
|
|
55
55
|
fb_state_getter: Callable[[], BrowserState], # File browser state getter
|
|
56
56
|
fb_state_setter: Callable[[BrowserState], None], # File browser state setter
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
|
|
58
|
+
remove_url: str, # URL for remove button in external sources list
|
|
59
|
+
): # Tuple of OOB elements (external sources list + checkbox cells)
|
|
59
60
|
"""Remove an external database source from the Added Sources list."""
|
|
60
61
|
session_id = get_session_id(sess)
|
|
61
|
-
|
|
62
|
+
|
|
62
63
|
# Remove the path if it exists
|
|
63
64
|
if db_path in external_db_paths_ref:
|
|
64
65
|
external_db_paths_ref.remove(db_path)
|
|
65
66
|
_update_step_state(state_store, workflow_id, session_id, external_db_paths=list(external_db_paths_ref))
|
|
66
67
|
source_service.set_external_paths(list(external_db_paths_ref))
|
|
67
|
-
|
|
68
|
+
|
|
68
69
|
# Sync browser selection state with external_db_paths for checkbox display
|
|
69
70
|
browser_state = fb_state_getter()
|
|
70
71
|
browser_state.selection.selected_paths = list(external_db_paths_ref)
|
|
71
72
|
fb_state_setter(browser_state)
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
|
|
74
|
+
# Targeted OOB updates instead of full panel re-render
|
|
75
|
+
checkbox_oobs = fb_routers.render_selection_oobs([db_path])
|
|
76
|
+
external_list_oob = _render_external_sources_list(
|
|
77
|
+
list(external_db_paths_ref), remove_url, oob=True,
|
|
78
|
+
)
|
|
79
|
+
return (external_list_oob, *checkbox_oobs)
|
|
74
80
|
|
|
75
81
|
# %% ../../nbs/routes/local_files.ipynb #rdrpw4jrxpc
|
|
76
82
|
def init_local_files_router(
|
|
@@ -178,7 +184,8 @@ def init_local_files_router(
|
|
|
178
184
|
external_db_paths_ref=_external_db_paths,
|
|
179
185
|
fb_state_getter=_fb_state_getter,
|
|
180
186
|
fb_state_setter=_fb_state_setter,
|
|
181
|
-
|
|
187
|
+
fb_routers=fb_routers,
|
|
188
|
+
remove_url=urls.remove_external,
|
|
182
189
|
)
|
|
183
190
|
|
|
184
191
|
# All routers to register
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: cjm-transcript-source-select
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.12
|
|
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 -->
|
|
115
|
+
components_step_renderer --> components_local_files
|
|
116
|
+
components_step_renderer --> html_ids
|
|
116
117
|
components_step_renderer --> components_preview_panel
|
|
117
118
|
components_step_renderer --> components_selection_queue
|
|
118
|
-
components_step_renderer --> components_source_browser
|
|
119
119
|
components_step_renderer --> models
|
|
120
|
-
components_step_renderer -->
|
|
121
|
-
components_step_renderer -->
|
|
122
|
-
routes_core --> models
|
|
123
|
-
routes_core --> html_ids
|
|
124
|
-
routes_core --> services_source
|
|
120
|
+
components_step_renderer --> utils
|
|
121
|
+
components_step_renderer --> components_source_browser
|
|
125
122
|
routes_core --> components_step_renderer
|
|
123
|
+
routes_core --> services_source
|
|
126
124
|
routes_core --> components_selection_queue
|
|
125
|
+
routes_core --> html_ids
|
|
126
|
+
routes_core --> models
|
|
127
127
|
routes_filtering --> services_source_utils
|
|
128
128
|
routes_filtering --> routes_core
|
|
129
|
-
routes_filtering --> models
|
|
130
129
|
routes_filtering --> services_source
|
|
130
|
+
routes_filtering --> models
|
|
131
|
+
routes_init --> routes_core
|
|
131
132
|
routes_init --> routes_queue
|
|
133
|
+
routes_init --> routes_tabs
|
|
132
134
|
routes_init --> routes_local_files
|
|
133
|
-
routes_init --> routes_core
|
|
134
|
-
routes_init --> models
|
|
135
135
|
routes_init --> services_source
|
|
136
|
+
routes_init --> models
|
|
136
137
|
routes_init --> routes_source_browser
|
|
137
138
|
routes_init --> routes_filtering
|
|
138
|
-
routes_init --> routes_tabs
|
|
139
|
-
routes_local_files --> models
|
|
140
139
|
routes_local_files --> components_local_files
|
|
141
140
|
routes_local_files --> routes_core
|
|
142
141
|
routes_local_files --> services_source
|
|
143
|
-
|
|
142
|
+
routes_local_files --> models
|
|
144
143
|
routes_queue --> services_source_utils
|
|
144
|
+
routes_queue --> components_preview_panel
|
|
145
145
|
routes_queue --> routes_core
|
|
146
|
-
routes_queue --> models
|
|
147
146
|
routes_queue --> services_source
|
|
148
|
-
|
|
147
|
+
routes_queue --> models
|
|
148
|
+
routes_source_browser --> services_source_utils
|
|
149
149
|
routes_source_browser --> components_source_browser
|
|
150
|
-
routes_source_browser --> models
|
|
151
|
-
routes_source_browser --> services_source
|
|
152
150
|
routes_source_browser --> routes_core
|
|
153
|
-
routes_source_browser -->
|
|
151
|
+
routes_source_browser --> components_preview_panel
|
|
152
|
+
routes_source_browser --> services_source
|
|
153
|
+
routes_source_browser --> models
|
|
154
154
|
routes_source_browser --> html_ids
|
|
155
|
-
routes_tabs --> models
|
|
156
|
-
routes_tabs --> routes_core
|
|
157
155
|
routes_tabs --> services_source
|
|
158
|
-
routes_tabs -->
|
|
156
|
+
routes_tabs --> routes_core
|
|
157
|
+
routes_tabs --> models
|
|
159
158
|
routes_tabs --> components_step_renderer
|
|
159
|
+
routes_tabs --> services_source_utils
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
*52 cross-module dependencies detected*
|
|
@@ -528,8 +528,9 @@ def _handle_remove_external_source(
|
|
|
528
528
|
external_db_paths_ref: List[str], # Shared external paths list (mutated in place)
|
|
529
529
|
fb_state_getter: Callable[[], BrowserState], # File browser state getter
|
|
530
530
|
fb_state_setter: Callable[[BrowserState], None], # File browser state setter
|
|
531
|
-
|
|
532
|
-
|
|
531
|
+
fb_routers: FileBrowserRouters, # File browser routers (for targeted OOB)
|
|
532
|
+
remove_url: str, # URL for remove button in external sources list
|
|
533
|
+
): # Tuple of OOB elements (external sources list + checkbox cells)
|
|
533
534
|
"Remove an external database source from the Added Sources list."
|
|
534
535
|
```
|
|
535
536
|
|
|
@@ -1415,6 +1416,7 @@ SD_TAB_PREV_BTN = 'sd-tab-prev-btn'
|
|
|
1415
1416
|
SD_TAB_NEXT_BTN = 'sd-tab-next-btn'
|
|
1416
1417
|
SD_PREVIEW_BTN = 'sd-preview-btn'
|
|
1417
1418
|
FB_SYSTEM_ID = 'lfb-collection'
|
|
1419
|
+
_ZONE_FOCUS_CLASSES
|
|
1418
1420
|
_VIEWPORT_FIT_CONFIG
|
|
1419
1421
|
```
|
|
1420
1422
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.0.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|