cjm-transcript-source-select 0.0.4__tar.gz → 0.0.6__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 (38) hide show
  1. {cjm_transcript_source_select-0.0.4/cjm_transcript_source_select.egg-info → cjm_transcript_source_select-0.0.6}/PKG-INFO +22 -20
  2. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/README.md +20 -19
  3. cjm_transcript_source_select-0.0.6/cjm_transcript_source_select/__init__.py +1 -0
  4. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/selection_queue.py +2 -0
  5. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/step_renderer.py +15 -0
  6. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/html_ids.py +3 -0
  7. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6/cjm_transcript_source_select.egg-info}/PKG-INFO +22 -20
  8. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select.egg-info/requires.txt +1 -0
  9. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/settings.ini +2 -2
  10. cjm_transcript_source_select-0.0.4/cjm_transcript_source_select/__init__.py +0 -1
  11. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/LICENSE +0 -0
  12. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/MANIFEST.in +0 -0
  13. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/_modidx.py +0 -0
  14. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/__init__.py +0 -0
  15. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/helpers.py +0 -0
  16. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/local_files.py +0 -0
  17. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/preview_panel.py +0 -0
  18. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/components/source_browser.py +0 -0
  19. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/models.py +0 -0
  20. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/__init__.py +0 -0
  21. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/core.py +0 -0
  22. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/filtering.py +0 -0
  23. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/init.py +0 -0
  24. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/local_files.py +0 -0
  25. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/queue.py +0 -0
  26. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/routes/tabs.py +0 -0
  27. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/services/__init__.py +0 -0
  28. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/services/source.py +0 -0
  29. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/services/source_utils.py +0 -0
  30. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select/utils.py +0 -0
  31. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select.egg-info/SOURCES.txt +0 -0
  32. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select.egg-info/dependency_links.txt +0 -0
  33. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select.egg-info/entry_points.txt +0 -0
  34. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select.egg-info/not-zip-safe +0 -0
  35. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/cjm_transcript_source_select.egg-info/top_level.txt +0 -0
  36. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/pyproject.toml +0 -0
  37. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/setup.cfg +0 -0
  38. {cjm_transcript_source_select-0.0.4 → cjm_transcript_source_select-0.0.6}/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.4
3
+ Version: 0.0.6
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
@@ -27,6 +27,7 @@ Requires-Dist: pandas
27
27
  Requires-Dist: cjm_workflow_state
28
28
  Requires-Dist: cjm_source_provider
29
29
  Requires-Dist: cjm_fasthtml_interactions
30
+ Requires-Dist: cjm_fasthtml_viewport_fit
30
31
  Provides-Extra: dev
31
32
  Dynamic: author
32
33
  Dynamic: author-email
@@ -108,49 +109,49 @@ graph LR
108
109
  components_source_browser --> services_source_utils
109
110
  components_source_browser --> utils
110
111
  components_source_browser --> html_ids
112
+ components_step_renderer --> components_preview_panel
111
113
  components_step_renderer --> components_source_browser
112
114
  components_step_renderer --> utils
113
- components_step_renderer --> components_preview_panel
115
+ components_step_renderer --> models
114
116
  components_step_renderer --> components_local_files
115
- components_step_renderer --> components_helpers
116
117
  components_step_renderer --> components_selection_queue
118
+ components_step_renderer --> components_helpers
117
119
  components_step_renderer --> html_ids
118
- components_step_renderer --> models
119
- routes_core --> services_source
120
120
  routes_core --> models
121
+ routes_core --> components_step_renderer
122
+ routes_core --> services_source
121
123
  routes_core --> html_ids
122
124
  routes_core --> components_source_browser
123
125
  routes_core --> components_selection_queue
124
- routes_core --> components_step_renderer
125
- routes_filtering --> services_source_utils
126
- routes_filtering --> components_source_browser
127
126
  routes_filtering --> routes_core
128
127
  routes_filtering --> services_source
128
+ routes_filtering --> services_source_utils
129
129
  routes_filtering --> models
130
- routes_init --> services_source
130
+ routes_filtering --> components_source_browser
131
131
  routes_init --> models
132
132
  routes_init --> routes_tabs
133
- routes_init --> routes_filtering
134
133
  routes_init --> routes_local_files
135
134
  routes_init --> routes_queue
135
+ routes_init --> services_source
136
136
  routes_init --> routes_core
137
+ routes_init --> routes_filtering
138
+ routes_local_files --> models
139
+ routes_local_files --> components_local_files
137
140
  routes_local_files --> services_source
138
141
  routes_local_files --> routes_core
139
- routes_local_files --> components_local_files
140
- routes_local_files --> models
141
- routes_queue --> services_source
142
- routes_queue --> services_source_utils
143
142
  routes_queue --> routes_core
144
- routes_queue --> components_preview_panel
145
143
  routes_queue --> models
146
- routes_tabs --> components_source_browser
144
+ routes_queue --> components_preview_panel
145
+ routes_queue --> services_source
146
+ routes_queue --> services_source_utils
147
147
  routes_tabs --> components_step_renderer
148
- routes_tabs --> routes_core
149
- routes_tabs --> services_source
148
+ routes_tabs --> models
149
+ routes_tabs --> components_local_files
150
150
  routes_tabs --> services_source_utils
151
151
  routes_tabs --> routes_local_files
152
- routes_tabs --> components_local_files
153
- routes_tabs --> models
152
+ routes_tabs --> services_source
153
+ routes_tabs --> routes_core
154
+ routes_tabs --> components_source_browser
154
155
  ```
155
156
 
156
157
  *51 cross-module dependencies detected*
@@ -1354,6 +1355,7 @@ SD_TAB_PREV_BTN = 'sd-tab-prev-btn'
1354
1355
  SD_TAB_NEXT_BTN = 'sd-tab-next-btn'
1355
1356
  SD_PREVIEW_BTN = 'sd-preview-btn'
1356
1357
  _step_renderer_provider: Optional[LocalFileSystemProvider] = None
1358
+ _VIEWPORT_FIT_CONFIG
1357
1359
  ```
1358
1360
 
1359
1361
  ### tabs (`tabs.ipynb`)
@@ -65,49 +65,49 @@ graph LR
65
65
  components_source_browser --> services_source_utils
66
66
  components_source_browser --> utils
67
67
  components_source_browser --> html_ids
68
+ components_step_renderer --> components_preview_panel
68
69
  components_step_renderer --> components_source_browser
69
70
  components_step_renderer --> utils
70
- components_step_renderer --> components_preview_panel
71
+ components_step_renderer --> models
71
72
  components_step_renderer --> components_local_files
72
- components_step_renderer --> components_helpers
73
73
  components_step_renderer --> components_selection_queue
74
+ components_step_renderer --> components_helpers
74
75
  components_step_renderer --> html_ids
75
- components_step_renderer --> models
76
- routes_core --> services_source
77
76
  routes_core --> models
77
+ routes_core --> components_step_renderer
78
+ routes_core --> services_source
78
79
  routes_core --> html_ids
79
80
  routes_core --> components_source_browser
80
81
  routes_core --> components_selection_queue
81
- routes_core --> components_step_renderer
82
- routes_filtering --> services_source_utils
83
- routes_filtering --> components_source_browser
84
82
  routes_filtering --> routes_core
85
83
  routes_filtering --> services_source
84
+ routes_filtering --> services_source_utils
86
85
  routes_filtering --> models
87
- routes_init --> services_source
86
+ routes_filtering --> components_source_browser
88
87
  routes_init --> models
89
88
  routes_init --> routes_tabs
90
- routes_init --> routes_filtering
91
89
  routes_init --> routes_local_files
92
90
  routes_init --> routes_queue
91
+ routes_init --> services_source
93
92
  routes_init --> routes_core
93
+ routes_init --> routes_filtering
94
+ routes_local_files --> models
95
+ routes_local_files --> components_local_files
94
96
  routes_local_files --> services_source
95
97
  routes_local_files --> routes_core
96
- routes_local_files --> components_local_files
97
- routes_local_files --> models
98
- routes_queue --> services_source
99
- routes_queue --> services_source_utils
100
98
  routes_queue --> routes_core
101
- routes_queue --> components_preview_panel
102
99
  routes_queue --> models
103
- routes_tabs --> components_source_browser
100
+ routes_queue --> components_preview_panel
101
+ routes_queue --> services_source
102
+ routes_queue --> services_source_utils
104
103
  routes_tabs --> components_step_renderer
105
- routes_tabs --> routes_core
106
- routes_tabs --> services_source
104
+ routes_tabs --> models
105
+ routes_tabs --> components_local_files
107
106
  routes_tabs --> services_source_utils
108
107
  routes_tabs --> routes_local_files
109
- routes_tabs --> components_local_files
110
- routes_tabs --> models
108
+ routes_tabs --> services_source
109
+ routes_tabs --> routes_core
110
+ routes_tabs --> components_source_browser
111
111
  ```
112
112
 
113
113
  *51 cross-module dependencies detected*
@@ -1311,6 +1311,7 @@ SD_TAB_PREV_BTN = 'sd-tab-prev-btn'
1311
1311
  SD_TAB_NEXT_BTN = 'sd-tab-next-btn'
1312
1312
  SD_PREVIEW_BTN = 'sd-preview-btn'
1313
1313
  _step_renderer_provider: Optional[LocalFileSystemProvider] = None
1314
+ _VIEWPORT_FIT_CONFIG
1314
1315
  ```
1315
1316
 
1316
1317
  ### tabs (`tabs.ipynb`)
@@ -0,0 +1 @@
1
+ __version__ = "0.0.6"
@@ -150,11 +150,13 @@ def _render_selection_queue(
150
150
  ),
151
151
 
152
152
  # Queue list with native Sortable.js (initialized via script)
153
+ # hx_include="this" required for HTMX 2.x to collect child hidden inputs
153
154
  Ul(
154
155
  *queue_items,
155
156
  id=SelectionHtmlIds.QUEUE_LIST,
156
157
  hx_post=reorder_url,
157
158
  hx_trigger="end",
159
+ hx_include="this",
158
160
  hx_target=SelectionHtmlIds.as_selector(SelectionHtmlIds.QUEUE_CONTAINER),
159
161
  hx_swap="outerHTML",
160
162
  cls=combine_classes("sortable", grow(), overflow.y.auto, list_style.none, m(0), p(0))
@@ -34,6 +34,10 @@ from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import (
34
34
  )
35
35
  from cjm_fasthtml_tailwind.core.base import combine_classes
36
36
 
37
+ # Viewport fit
38
+ from cjm_fasthtml_viewport_fit.models import ViewportFitConfig
39
+ from cjm_fasthtml_viewport_fit.components import render_viewport_fit_script
40
+
37
41
  # Local imports
38
42
  from ..html_ids import SelectionHtmlIds
39
43
  from ..models import SelectionUrls
@@ -375,6 +379,12 @@ def _get_step_renderer_config():
375
379
  return _step_renderer_config
376
380
 
377
381
  # %% ../../nbs/components/step_renderer.ipynb #5n0esq0hg67
382
+ # Viewport fit config for the main content area (two columns)
383
+ _VIEWPORT_FIT_CONFIG = ViewportFitConfig(
384
+ namespace="sd",
385
+ target_id=SelectionHtmlIds.MAIN_CONTENT,
386
+ )
387
+
378
388
  def render_selection_step(
379
389
  sources: List[Dict[str, Any]], # Available source plugins
380
390
  transcriptions: List[Dict[str, Any]], # Available transcription records
@@ -524,6 +534,7 @@ def render_selection_step(
524
534
  ),
525
535
 
526
536
  # Main content area (two columns: tabs + queue)
537
+ # Height fitted to remaining viewport space via cjm-fasthtml-viewport-fit
527
538
  Div(
528
539
  # Left: Source tabs with content (grows to fill space)
529
540
  source_tabs,
@@ -531,6 +542,7 @@ def render_selection_step(
531
542
  # Right: Selection queue (fixed width)
532
543
  queue_panel,
533
544
 
545
+ id=SelectionHtmlIds.MAIN_CONTENT,
534
546
  cls=combine_classes(
535
547
  grow(),
536
548
  min_h(0), # Allow flex children to shrink below content size
@@ -570,6 +582,9 @@ def render_selection_step(
570
582
  # Sortable initialization script (htmx integration)
571
583
  sortable_script,
572
584
 
585
+ # Viewport fit script (fits main content area to remaining viewport)
586
+ render_viewport_fit_script(_VIEWPORT_FIT_CONFIG),
587
+
573
588
  # Script runner for OOB-triggered JS (duplicate rejection flash)
574
589
  Div(id=SelectionHtmlIds.SCRIPT_RUNNER),
575
590
 
@@ -21,6 +21,9 @@ class SelectionHtmlIds:
21
21
  # Main container
22
22
  SOURCE_SELECTOR = "sd-source-selector"
23
23
 
24
+ # Main content area (two columns, viewport-fitted)
25
+ MAIN_CONTENT = "sd-main-content"
26
+
24
27
  # Tabs
25
28
  SOURCE_TABS = "sd-source-tabs"
26
29
  SOURCE_TAB_DB = "sd-source-tab-db"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cjm-transcript-source-select
3
- Version: 0.0.4
3
+ Version: 0.0.6
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
@@ -27,6 +27,7 @@ Requires-Dist: pandas
27
27
  Requires-Dist: cjm_workflow_state
28
28
  Requires-Dist: cjm_source_provider
29
29
  Requires-Dist: cjm_fasthtml_interactions
30
+ Requires-Dist: cjm_fasthtml_viewport_fit
30
31
  Provides-Extra: dev
31
32
  Dynamic: author
32
33
  Dynamic: author-email
@@ -108,49 +109,49 @@ graph LR
108
109
  components_source_browser --> services_source_utils
109
110
  components_source_browser --> utils
110
111
  components_source_browser --> html_ids
112
+ components_step_renderer --> components_preview_panel
111
113
  components_step_renderer --> components_source_browser
112
114
  components_step_renderer --> utils
113
- components_step_renderer --> components_preview_panel
115
+ components_step_renderer --> models
114
116
  components_step_renderer --> components_local_files
115
- components_step_renderer --> components_helpers
116
117
  components_step_renderer --> components_selection_queue
118
+ components_step_renderer --> components_helpers
117
119
  components_step_renderer --> html_ids
118
- components_step_renderer --> models
119
- routes_core --> services_source
120
120
  routes_core --> models
121
+ routes_core --> components_step_renderer
122
+ routes_core --> services_source
121
123
  routes_core --> html_ids
122
124
  routes_core --> components_source_browser
123
125
  routes_core --> components_selection_queue
124
- routes_core --> components_step_renderer
125
- routes_filtering --> services_source_utils
126
- routes_filtering --> components_source_browser
127
126
  routes_filtering --> routes_core
128
127
  routes_filtering --> services_source
128
+ routes_filtering --> services_source_utils
129
129
  routes_filtering --> models
130
- routes_init --> services_source
130
+ routes_filtering --> components_source_browser
131
131
  routes_init --> models
132
132
  routes_init --> routes_tabs
133
- routes_init --> routes_filtering
134
133
  routes_init --> routes_local_files
135
134
  routes_init --> routes_queue
135
+ routes_init --> services_source
136
136
  routes_init --> routes_core
137
+ routes_init --> routes_filtering
138
+ routes_local_files --> models
139
+ routes_local_files --> components_local_files
137
140
  routes_local_files --> services_source
138
141
  routes_local_files --> routes_core
139
- routes_local_files --> components_local_files
140
- routes_local_files --> models
141
- routes_queue --> services_source
142
- routes_queue --> services_source_utils
143
142
  routes_queue --> routes_core
144
- routes_queue --> components_preview_panel
145
143
  routes_queue --> models
146
- routes_tabs --> components_source_browser
144
+ routes_queue --> components_preview_panel
145
+ routes_queue --> services_source
146
+ routes_queue --> services_source_utils
147
147
  routes_tabs --> components_step_renderer
148
- routes_tabs --> routes_core
149
- routes_tabs --> services_source
148
+ routes_tabs --> models
149
+ routes_tabs --> components_local_files
150
150
  routes_tabs --> services_source_utils
151
151
  routes_tabs --> routes_local_files
152
- routes_tabs --> components_local_files
153
- routes_tabs --> models
152
+ routes_tabs --> services_source
153
+ routes_tabs --> routes_core
154
+ routes_tabs --> components_source_browser
154
155
  ```
155
156
 
156
157
  *51 cross-module dependencies detected*
@@ -1354,6 +1355,7 @@ SD_TAB_PREV_BTN = 'sd-tab-prev-btn'
1354
1355
  SD_TAB_NEXT_BTN = 'sd-tab-next-btn'
1355
1356
  SD_PREVIEW_BTN = 'sd-preview-btn'
1356
1357
  _step_renderer_provider: Optional[LocalFileSystemProvider] = None
1358
+ _VIEWPORT_FIT_CONFIG
1357
1359
  ```
1358
1360
 
1359
1361
  ### tabs (`tabs.ipynb`)
@@ -10,5 +10,6 @@ pandas
10
10
  cjm_workflow_state
11
11
  cjm_source_provider
12
12
  cjm_fasthtml_interactions
13
+ cjm_fasthtml_viewport_fit
13
14
 
14
15
  [dev]
@@ -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.4
4
+ version = 0.0.6
5
5
  min_python = 3.12
6
6
  license = apache2
7
7
  black_formatting = False
@@ -27,7 +27,7 @@ keywords = nbdev jupyter notebook python
27
27
  language = English
28
28
  status = 3
29
29
  user = cj-mills
30
- requirements = cjm-plugin-system cjm-transcription-plugin-system cjm-fasthtml-app-core cjm-fasthtml-daisyui cjm_fasthtml_lucide_icons cjm_fasthtml_file_browser cjm_fasthtml_keyboard_navigation duckdb pandas cjm_workflow_state cjm_source_provider cjm_fasthtml_interactions
30
+ requirements = cjm-plugin-system cjm-transcription-plugin-system cjm-fasthtml-app-core cjm-fasthtml-daisyui cjm_fasthtml_lucide_icons cjm_fasthtml_file_browser cjm_fasthtml_keyboard_navigation duckdb pandas cjm_workflow_state cjm_source_provider cjm_fasthtml_interactions cjm_fasthtml_viewport_fit
31
31
  readme_nb = index.ipynb
32
32
  allowed_metadata_keys =
33
33
  allowed_cell_metadata_keys =
@@ -1 +0,0 @@
1
- __version__ = "0.0.4"