cjm-transcript-segment-align 0.0.25__tar.gz → 0.0.27__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 (30) hide show
  1. {cjm_transcript_segment_align-0.0.25/cjm_transcript_segment_align.egg-info → cjm_transcript_segment_align-0.0.27}/PKG-INFO +2 -2
  2. cjm_transcript_segment_align-0.0.27/cjm_transcript_segment_align/__init__.py +1 -0
  3. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/sync_controls.py +12 -4
  4. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/routes/forced_alignment.py +16 -8
  5. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27/cjm_transcript_segment_align.egg-info}/PKG-INFO +2 -2
  6. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align.egg-info/requires.txt +1 -1
  7. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/pyproject.toml +1 -1
  8. cjm_transcript_segment_align-0.0.25/cjm_transcript_segment_align/__init__.py +0 -1
  9. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/LICENSE +0 -0
  10. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/MANIFEST.in +0 -0
  11. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/README.md +0 -0
  12. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/_modidx.py +0 -0
  13. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/__init__.py +0 -0
  14. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/handlers.py +0 -0
  15. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/helpers.py +0 -0
  16. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/keyboard_config.py +0 -0
  17. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/step_renderer.py +0 -0
  18. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/components/toolbar_state.py +0 -0
  19. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/html_ids.py +0 -0
  20. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/models.py +0 -0
  21. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/routes/__init__.py +0 -0
  22. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/routes/chrome.py +0 -0
  23. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/routes/init.py +0 -0
  24. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/services/__init__.py +0 -0
  25. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align/services/forced_alignment.py +0 -0
  26. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align.egg-info/SOURCES.txt +0 -0
  27. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align.egg-info/dependency_links.txt +0 -0
  28. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align.egg-info/entry_points.txt +0 -0
  29. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/cjm_transcript_segment_align.egg-info/top_level.txt +0 -0
  30. {cjm_transcript_segment_align-0.0.25 → cjm_transcript_segment_align-0.0.27}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cjm-transcript-segment-align
3
- Version: 0.0.25
3
+ Version: 0.0.27
4
4
  Summary: FastHTML dual-column text segmentation & VAD alignment UI for transcript decomposition workflows with forced alignment-based text splitting for aligning text segments with VAD chunks.
5
5
  Author-email: "Christian J. Mills" <9126128+cj-mills@users.noreply.github.com>
6
6
  License: Apache-2.0
@@ -21,7 +21,7 @@ Requires-Dist: cjm_transcript_segmentation>=0.0.12
21
21
  Requires-Dist: cjm_transcript_vad_align>=0.0.20
22
22
  Requires-Dist: cjm_fasthtml_job_monitor>=0.0.9
23
23
  Requires-Dist: cjm_fasthtml_web_audio>=0.0.11
24
- Requires-Dist: cjm_fasthtml_design_system>=0.0.5
24
+ Requires-Dist: cjm_fasthtml_design_system>=0.0.7
25
25
  Dynamic: license-file
26
26
 
27
27
  # cjm-transcript-segment-align
@@ -0,0 +1 @@
1
+ __version__ = "0.0.27"
@@ -11,13 +11,16 @@ from typing import Any
11
11
 
12
12
  from fasthtml.common import Button, Script
13
13
 
14
- from cjm_fasthtml_daisyui.components.actions.button import btn, btn_sizes, btn_styles, btn_colors
15
14
  from cjm_fasthtml_daisyui.utilities.semantic_colors import bg_dui
16
15
  from cjm_fasthtml_tailwind.utilities.spacing import m
17
16
  from cjm_fasthtml_tailwind.core.base import combine_classes
18
17
 
19
18
  from cjm_fasthtml_lucide_icons.factory import lucide_icon
20
19
 
20
+ # Design system recipes (V1 button roles, V11 icon-size roles)
21
+ from cjm_fasthtml_design_system.buttons import buttons
22
+ from cjm_fasthtml_design_system.icons import icons
23
+
21
24
  from cjm_fasthtml_card_stack.js.sync import generate_card_stack_sync_js
22
25
 
23
26
  # %% ../../nbs/components/sync_controls.ipynb #sync-consts
@@ -32,13 +35,18 @@ SYNC_BTN_ID = "sd-sync-toggle-btn"
32
35
 
33
36
  # %% ../../nbs/components/sync_controls.ipynb #sync-btn
34
37
  def render_sync_toggle_button() -> Any: # Sync toggle button element
35
- """Render the synced navigation toggle button for the seg toolbar."""
38
+ """Render the synced navigation toggle button for the seg toolbar.
39
+
40
+ Initial state: secondary_action (outline neutral = inactive).
41
+ JS toggle flips between btn-primary and btn-outline (primary_action ↔
42
+ secondary_action) by manipulating the literal class strings.
43
+ """
36
44
  return Button(
37
- lucide_icon("link", size=4, cls=str(m.r(1))),
45
+ lucide_icon("link", size=icons.text_button, cls=str(m.r(1))),
38
46
  "Sync",
39
47
  id=SYNC_BTN_ID,
40
48
  type="button",
41
- cls=combine_classes(btn, btn_sizes.sm, btn_styles.outline),
49
+ cls=buttons.secondary_action,
42
50
  onclick=(
43
51
  f"var on=window.{SYNC_TOGGLE_FN}&&window.{SYNC_TOGGLE_FN}();"
44
52
  f"this.classList.toggle('btn-primary',on);"
@@ -12,7 +12,6 @@ from dataclasses import asdict
12
12
  from fasthtml.common import Div, Span, Button, APIRouter
13
13
 
14
14
  from cjm_fasthtml_interactions.core.state_store import get_session_id
15
- from cjm_fasthtml_daisyui.components.actions.button import btn, btn_colors, btn_sizes, btn_styles
16
15
  from cjm_fasthtml_daisyui.components.layout.join import join, join_item
17
16
  from cjm_fasthtml_tailwind.utilities.spacing import m
18
17
  from cjm_fasthtml_tailwind.utilities.typography import font_size
@@ -20,6 +19,10 @@ from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import flex_display, items
20
19
  from cjm_fasthtml_tailwind.core.base import combine_classes
21
20
  from cjm_fasthtml_lucide_icons.factory import lucide_icon
22
21
 
22
+ # Design system recipes (V1 button roles, V11 icon-size roles)
23
+ from cjm_fasthtml_design_system.buttons import buttons
24
+ from cjm_fasthtml_design_system.icons import icons
25
+
23
26
  from cjm_workflow_state.state_store import SQLiteWorkflowStateStore
24
27
  from cjm_fasthtml_card_stack.core.constants import DEFAULT_VISIBLE_COUNT
25
28
  from cjm_transcript_segmentation.models import TextSegment, SegmentationUrls
@@ -41,24 +44,29 @@ def render_fa_toggle(
41
44
  active_presplit: str, # "nltk" or "forced_alignment"
42
45
  toggle_url: str, # URL for toggle route
43
46
  ) -> Any: # Toggle button group
44
- """Render the NLTK / Force Aligned toggle button group."""
47
+ """Render the NLTK / Force Aligned toggle button group.
48
+
49
+ Each leg uses primary_action (active) or secondary_action (inactive) — the
50
+ canonical V1 state-toggle composition — plus join_item for daisyui button
51
+ group joining.
52
+ """
45
53
  nltk_active = active_presplit == "nltk"
46
54
  fa_active = active_presplit == "forced_alignment"
47
55
 
48
56
  nltk_cls = combine_classes(
49
- btn, btn_sizes.sm, join_item,
50
- btn_colors.primary if nltk_active else btn_styles.outline
57
+ buttons.primary_action if nltk_active else buttons.secondary_action,
58
+ join_item,
51
59
  )
52
60
  fa_cls = combine_classes(
53
- btn, btn_sizes.sm, join_item,
54
- btn_colors.primary if fa_active else btn_styles.outline
61
+ buttons.primary_action if fa_active else buttons.secondary_action,
62
+ join_item,
55
63
  )
56
64
 
57
65
  return Div(
58
66
  Span("Pre-splits:", cls=combine_classes(font_size.sm, m.r(2))),
59
67
  Div(
60
68
  Button(
61
- lucide_icon("text-cursor-input", size=4, cls=str(m.r(1))),
69
+ lucide_icon("text-cursor-input", size=icons.text_button, cls=str(m.r(1))),
62
70
  "NLTK",
63
71
  cls=nltk_cls,
64
72
  hx_post=toggle_url,
@@ -67,7 +75,7 @@ def render_fa_toggle(
67
75
  disabled="disabled" if nltk_active else None,
68
76
  ),
69
77
  Button(
70
- lucide_icon("audio-waveform", size=4, cls=str(m.r(1))),
78
+ lucide_icon("audio-waveform", size=icons.text_button, cls=str(m.r(1))),
71
79
  "Force Aligned",
72
80
  cls=fa_cls,
73
81
  hx_post=toggle_url,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cjm-transcript-segment-align
3
- Version: 0.0.25
3
+ Version: 0.0.27
4
4
  Summary: FastHTML dual-column text segmentation & VAD alignment UI for transcript decomposition workflows with forced alignment-based text splitting for aligning text segments with VAD chunks.
5
5
  Author-email: "Christian J. Mills" <9126128+cj-mills@users.noreply.github.com>
6
6
  License: Apache-2.0
@@ -21,7 +21,7 @@ Requires-Dist: cjm_transcript_segmentation>=0.0.12
21
21
  Requires-Dist: cjm_transcript_vad_align>=0.0.20
22
22
  Requires-Dist: cjm_fasthtml_job_monitor>=0.0.9
23
23
  Requires-Dist: cjm_fasthtml_web_audio>=0.0.11
24
- Requires-Dist: cjm_fasthtml_design_system>=0.0.5
24
+ Requires-Dist: cjm_fasthtml_design_system>=0.0.7
25
25
  Dynamic: license-file
26
26
 
27
27
  # cjm-transcript-segment-align
@@ -4,4 +4,4 @@ cjm_transcript_segmentation>=0.0.12
4
4
  cjm_transcript_vad_align>=0.0.20
5
5
  cjm_fasthtml_job_monitor>=0.0.9
6
6
  cjm_fasthtml_web_audio>=0.0.11
7
- cjm_fasthtml_design_system>=0.0.5
7
+ cjm_fasthtml_design_system>=0.0.7
@@ -12,7 +12,7 @@ license = {text = "Apache-2.0"}
12
12
  authors = [{name = "Christian J. Mills", email = "9126128+cj-mills@users.noreply.github.com"}]
13
13
  keywords = ['nbdev', 'jupyter', 'notebook', 'python']
14
14
  classifiers = ["Natural Language :: English", "Intended Audience :: Developers", "Development Status :: 3 - Alpha", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only"]
15
- dependencies = ['cjm-plugin-system', 'cjm_transcription_plugin_system', 'cjm_transcript_segmentation>=0.0.12', 'cjm_transcript_vad_align>=0.0.20', 'cjm_fasthtml_job_monitor>=0.0.9', 'cjm_fasthtml_web_audio>=0.0.11', 'cjm_fasthtml_design_system>=0.0.5']
15
+ dependencies = ['cjm-plugin-system', 'cjm_transcription_plugin_system', 'cjm_transcript_segmentation>=0.0.12', 'cjm_transcript_vad_align>=0.0.20', 'cjm_fasthtml_job_monitor>=0.0.9', 'cjm_fasthtml_web_audio>=0.0.11', 'cjm_fasthtml_design_system>=0.0.7']
16
16
 
17
17
  [project.urls]
18
18
  Repository = "https://github.com/cj-mills/cjm-transcript-segment-align"
@@ -1 +0,0 @@
1
- __version__ = "0.0.25"