lyrics-transcriber 0.44.0__py3-none-any.whl → 0.45.0__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.
Files changed (22) hide show
  1. lyrics_transcriber/frontend/dist/assets/{index-DVoI6Z16.js → index-ZCT0s9MG.js} +2635 -1967
  2. lyrics_transcriber/frontend/dist/assets/index-ZCT0s9MG.js.map +1 -0
  3. lyrics_transcriber/frontend/dist/index.html +1 -1
  4. lyrics_transcriber/frontend/src/App.tsx +1 -1
  5. lyrics_transcriber/frontend/src/components/EditActionBar.tsx +68 -0
  6. lyrics_transcriber/frontend/src/components/EditModal.tsx +376 -303
  7. lyrics_transcriber/frontend/src/components/EditTimelineSection.tsx +373 -0
  8. lyrics_transcriber/frontend/src/components/EditWordList.tsx +308 -0
  9. lyrics_transcriber/frontend/src/components/Header.tsx +7 -7
  10. lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx +458 -62
  11. lyrics_transcriber/frontend/src/components/TranscriptionView.tsx +7 -7
  12. lyrics_transcriber/frontend/src/components/WordDivider.tsx +4 -3
  13. lyrics_transcriber/frontend/src/components/shared/components/Word.tsx +1 -2
  14. lyrics_transcriber/frontend/src/components/shared/utils/keyboardHandlers.ts +68 -46
  15. lyrics_transcriber/frontend/tsconfig.tsbuildinfo +1 -1
  16. {lyrics_transcriber-0.44.0.dist-info → lyrics_transcriber-0.45.0.dist-info}/METADATA +1 -1
  17. {lyrics_transcriber-0.44.0.dist-info → lyrics_transcriber-0.45.0.dist-info}/RECORD +20 -18
  18. lyrics_transcriber/frontend/dist/assets/index-DVoI6Z16.js.map +0 -1
  19. lyrics_transcriber/frontend/src/components/GlobalSyncEditor.tsx +0 -675
  20. {lyrics_transcriber-0.44.0.dist-info → lyrics_transcriber-0.45.0.dist-info}/LICENSE +0 -0
  21. {lyrics_transcriber-0.44.0.dist-info → lyrics_transcriber-0.45.0.dist-info}/WHEEL +0 -0
  22. {lyrics_transcriber-0.44.0.dist-info → lyrics_transcriber-0.45.0.dist-info}/entry_points.txt +0 -0
@@ -63,8 +63,8 @@ export default function TranscriptionView({
63
63
  {data.corrected_segments.map((segment, segmentIndex) => {
64
64
  const segmentWords: TranscriptionWordPosition[] = segment.words.map(word => {
65
65
  // Find if this word is part of a correction
66
- const correction = data.corrections?.find(c =>
67
- c.corrected_word_id === word.id ||
66
+ const correction = data.corrections?.find(c =>
67
+ c.corrected_word_id === word.id ||
68
68
  c.word_id === word.id
69
69
  )
70
70
 
@@ -109,10 +109,10 @@ export default function TranscriptionView({
109
109
  })
110
110
 
111
111
  return (
112
- <Box key={segment.id} sx={{
113
- display: 'flex',
114
- alignItems: 'flex-start',
115
- width: '100%',
112
+ <Box key={segment.id} sx={{
113
+ display: 'flex',
114
+ alignItems: 'flex-start',
115
+ width: '100%',
116
116
  mb: 0,
117
117
  '&:hover': {
118
118
  backgroundColor: 'rgba(0, 0, 0, 0.03)'
@@ -129,7 +129,7 @@ export default function TranscriptionView({
129
129
  <IconButton
130
130
  size="small"
131
131
  onClick={() => onPlaySegment?.(segment.start_time!)}
132
- sx={{
132
+ sx={{
133
133
  padding: '1px',
134
134
  height: '18px',
135
135
  width: '18px',
@@ -2,6 +2,7 @@ import { Box, Button, Typography } from '@mui/material'
2
2
  import AddIcon from '@mui/icons-material/Add'
3
3
  import MergeIcon from '@mui/icons-material/CallMerge'
4
4
  import CallSplitIcon from '@mui/icons-material/CallSplit'
5
+ import { SxProps, Theme } from '@mui/material/styles'
5
6
 
6
7
  interface WordDividerProps {
7
8
  onAddWord: () => void
@@ -13,7 +14,7 @@ interface WordDividerProps {
13
14
  canMerge?: boolean
14
15
  isFirst?: boolean
15
16
  isLast?: boolean
16
- sx?: any
17
+ sx?: SxProps<Theme>
17
18
  }
18
19
 
19
20
  const buttonTextStyle = {
@@ -83,7 +84,7 @@ export default function WordDivider({
83
84
  Add Word
84
85
  </Typography>
85
86
  </Button>
86
- {isFirst && (
87
+ {isFirst && onAddSegmentBefore && onMergeSegment && (
87
88
  <>
88
89
  <Button
89
90
  onClick={onAddSegmentBefore}
@@ -148,7 +149,7 @@ export default function WordDivider({
148
149
  </Typography>
149
150
  </Button>
150
151
  )}
151
- {isLast && (
152
+ {isLast && onAddSegmentAfter && onMergeSegment && (
152
153
  <>
153
154
  <Button
154
155
  onClick={onAddSegmentAfter}
@@ -61,8 +61,7 @@ export const WordComponent = React.memo(function Word({
61
61
  const tooltipContent = (
62
62
  <>
63
63
  <strong>Original:</strong> "{correction.originalWord}"<br />
64
- <strong>Corrected by:</strong> {correction.handler}<br />
65
- <strong>Confidence:</strong> {(correction.confidence * 100).toFixed(0)}%
64
+ <strong>Corrected by:</strong> {correction.handler}
66
65
  </>
67
66
  )
68
67
 
@@ -1,6 +1,7 @@
1
1
  // Add a global ref for the modal handler
2
2
  let currentModalHandler: ((e: KeyboardEvent) => void) | undefined
3
3
  let isModalOpen = false
4
+ const debugLog = false
4
5
 
5
6
  type KeyboardState = {
6
7
  setIsShiftPressed: (value: boolean) => void
@@ -13,36 +14,45 @@ type KeyboardState = {
13
14
 
14
15
  // Add functions to update the modal handler state
15
16
  export const setModalHandler = (handler: ((e: KeyboardEvent) => void) | undefined, open: boolean) => {
16
- console.log('setModalHandler called', {
17
- hasHandler: !!handler,
18
- open,
19
- previousState: {
20
- hadHandler: !!currentModalHandler,
21
- wasOpen: isModalOpen
22
- }
23
- })
17
+ if (debugLog) {
18
+ console.log('setModalHandler called', {
19
+ hasHandler: !!handler,
20
+ open,
21
+ previousState: {
22
+ hadHandler: !!currentModalHandler,
23
+ wasOpen: isModalOpen
24
+ }
25
+ })
26
+ }
27
+
24
28
  currentModalHandler = handler
25
29
  isModalOpen = open
26
30
  }
27
31
 
28
32
  export const setupKeyboardHandlers = (state: KeyboardState) => {
29
33
  const handlerId = Math.random().toString(36).substr(2, 9)
30
- console.log(`Setting up keyboard handlers [${handlerId}]`)
34
+ if (debugLog) {
35
+ console.log(`Setting up keyboard handlers [${handlerId}]`)
36
+ }
31
37
 
32
38
  const handleKeyDown = (e: KeyboardEvent) => {
33
- console.log(`Keyboard event captured [${handlerId}]`, {
34
- key: e.key,
35
- code: e.code,
36
- type: e.type,
37
- target: e.target,
38
- currentTarget: e.currentTarget,
39
- eventPhase: e.eventPhase,
40
- isModalOpen,
41
- hasModalHandler: !!currentModalHandler
42
- })
39
+ if (debugLog) {
40
+ console.log(`Keyboard event captured [${handlerId}]`, {
41
+ key: e.key,
42
+ code: e.code,
43
+ type: e.type,
44
+ target: e.target,
45
+ currentTarget: e.currentTarget,
46
+ eventPhase: e.eventPhase,
47
+ isModalOpen,
48
+ hasModalHandler: !!currentModalHandler
49
+ })
50
+ }
43
51
 
44
52
  if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) {
45
- console.log(`[${handlerId}] Ignoring keydown in input/textarea`)
53
+ if (debugLog) {
54
+ console.log(`[${handlerId}] Ignoring keydown in input/textarea`)
55
+ }
46
56
  return
47
57
  }
48
58
 
@@ -52,37 +62,45 @@ export const setupKeyboardHandlers = (state: KeyboardState) => {
52
62
  } else if (e.key === 'Meta') {
53
63
  state.setIsCtrlPressed?.(true)
54
64
  } else if (e.key === ' ' || e.code === 'Space') {
55
- console.log('Keyboard handler - Spacebar pressed down', {
56
- modalOpen: isModalOpen,
57
- hasModalHandler: !!currentModalHandler,
58
- hasGlobalToggle: !!window.toggleAudioPlayback,
59
- target: e.target,
60
- eventPhase: e.eventPhase,
61
- handlerFunction: currentModalHandler?.toString().slice(0, 100)
62
- })
65
+ if (debugLog) {
66
+ console.log('Keyboard handler - Spacebar pressed down', {
67
+ modalOpen: isModalOpen,
68
+ hasModalHandler: !!currentModalHandler,
69
+ hasGlobalToggle: !!window.toggleAudioPlayback,
70
+ target: e.target,
71
+ eventPhase: e.eventPhase,
72
+ handlerFunction: currentModalHandler?.toString().slice(0, 100)
73
+ })
74
+ }
63
75
 
64
76
  e.preventDefault()
65
77
 
66
78
  if (isModalOpen && currentModalHandler) {
67
- console.log('Keyboard handler - Delegating to modal handler')
79
+ if (debugLog) {
80
+ console.log('Keyboard handler - Delegating to modal handler')
81
+ }
68
82
  currentModalHandler(e)
69
83
  } else if (window.toggleAudioPlayback && !isModalOpen) {
70
- console.log('Keyboard handler - Using global audio toggle')
84
+ if (debugLog) {
85
+ console.log('Keyboard handler - Using global audio toggle')
86
+ }
71
87
  window.toggleAudioPlayback()
72
88
  }
73
89
  }
74
90
  }
75
91
 
76
92
  const handleKeyUp = (e: KeyboardEvent) => {
77
- console.log(`Keyboard up event captured [${handlerId}]`, {
78
- key: e.key,
79
- code: e.code,
80
- type: e.type,
81
- target: e.target,
82
- eventPhase: e.eventPhase,
83
- isModalOpen,
84
- hasModalHandler: !!currentModalHandler
85
- })
93
+ if (debugLog) {
94
+ console.log(`Keyboard up event captured [${handlerId}]`, {
95
+ key: e.key,
96
+ code: e.code,
97
+ type: e.type,
98
+ target: e.target,
99
+ eventPhase: e.eventPhase,
100
+ isModalOpen,
101
+ hasModalHandler: !!currentModalHandler
102
+ })
103
+ }
86
104
 
87
105
  if (e.key === 'Shift') {
88
106
  state.setIsShiftPressed(false)
@@ -90,17 +108,21 @@ export const setupKeyboardHandlers = (state: KeyboardState) => {
90
108
  } else if (e.key === 'Meta') {
91
109
  state.setIsCtrlPressed?.(false)
92
110
  } else if (e.key === ' ' || e.code === 'Space') {
93
- console.log('Keyboard handler - Spacebar released', {
94
- modalOpen: isModalOpen,
95
- hasModalHandler: !!currentModalHandler,
96
- target: e.target,
97
- eventPhase: e.eventPhase
98
- })
111
+ if (debugLog) {
112
+ console.log('Keyboard handler - Spacebar released', {
113
+ modalOpen: isModalOpen,
114
+ hasModalHandler: !!currentModalHandler,
115
+ target: e.target,
116
+ eventPhase: e.eventPhase
117
+ })
118
+ }
99
119
 
100
120
  e.preventDefault()
101
121
 
102
122
  if (isModalOpen && currentModalHandler) {
103
- console.log('Keyboard handler - Delegating keyup to modal handler')
123
+ if (debugLog) {
124
+ console.log('Keyboard handler - Delegating keyup to modal handler')
125
+ }
104
126
  currentModalHandler(e)
105
127
  }
106
128
  }
@@ -1 +1 @@
1
- {"root":["./src/app.tsx","./src/api.ts","./src/main.tsx","./src/theme.ts","./src/types.ts","./src/validation.ts","./src/vite-env.d.ts","./src/components/addlyricsmodal.tsx","./src/components/audioplayer.tsx","./src/components/correctionmetrics.tsx","./src/components/editmodal.tsx","./src/components/fileupload.tsx","./src/components/findreplacemodal.tsx","./src/components/globalsynceditor.tsx","./src/components/header.tsx","./src/components/lyricsanalyzer.tsx","./src/components/modeselector.tsx","./src/components/previewvideosection.tsx","./src/components/referenceview.tsx","./src/components/reviewchangesmodal.tsx","./src/components/segmentdetailsmodal.tsx","./src/components/timelineeditor.tsx","./src/components/transcriptionview.tsx","./src/components/worddivider.tsx","./src/components/shared/constants.ts","./src/components/shared/styles.ts","./src/components/shared/types.ts","./src/components/shared/components/highlightedtext.tsx","./src/components/shared/components/sourceselector.tsx","./src/components/shared/components/word.tsx","./src/components/shared/hooks/usewordclick.ts","./src/components/shared/utils/keyboardhandlers.ts","./src/components/shared/utils/localstorage.ts","./src/components/shared/utils/referencelinecalculator.ts","./src/components/shared/utils/segmentoperations.ts","./src/components/shared/utils/wordutils.ts","./src/hooks/usemanualsync.ts","./src/types/global.d.ts"],"version":"5.6.3"}
1
+ {"root":["./src/app.tsx","./src/api.ts","./src/main.tsx","./src/theme.ts","./src/types.ts","./src/validation.ts","./src/vite-env.d.ts","./src/components/addlyricsmodal.tsx","./src/components/audioplayer.tsx","./src/components/correctionmetrics.tsx","./src/components/editactionbar.tsx","./src/components/editmodal.tsx","./src/components/edittimelinesection.tsx","./src/components/editwordlist.tsx","./src/components/fileupload.tsx","./src/components/findreplacemodal.tsx","./src/components/header.tsx","./src/components/lyricsanalyzer.tsx","./src/components/modeselector.tsx","./src/components/previewvideosection.tsx","./src/components/referenceview.tsx","./src/components/reviewchangesmodal.tsx","./src/components/segmentdetailsmodal.tsx","./src/components/timelineeditor.tsx","./src/components/transcriptionview.tsx","./src/components/worddivider.tsx","./src/components/shared/constants.ts","./src/components/shared/styles.ts","./src/components/shared/types.ts","./src/components/shared/components/highlightedtext.tsx","./src/components/shared/components/sourceselector.tsx","./src/components/shared/components/word.tsx","./src/components/shared/hooks/usewordclick.ts","./src/components/shared/utils/keyboardhandlers.ts","./src/components/shared/utils/localstorage.ts","./src/components/shared/utils/referencelinecalculator.ts","./src/components/shared/utils/segmentoperations.ts","./src/components/shared/utils/wordutils.ts","./src/hooks/usemanualsync.ts","./src/types/global.d.ts"],"version":"5.6.3"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lyrics-transcriber
3
- Version: 0.44.0
3
+ Version: 0.45.0
4
4
  Summary: Automatically create synchronised lyrics files in ASS and MidiCo LRC formats with word-level timestamps, using Whisper and lyrics from Genius and Spotify
5
5
  License: MIT
6
6
  Author: Andrew Beveridge
@@ -26,42 +26,44 @@ lyrics_transcriber/frontend/.yarn/install-state.gz,sha256=kcgQ-S9HvdNHexkXQVt18L
26
26
  lyrics_transcriber/frontend/.yarn/releases/yarn-4.6.0.cjs,sha256=6vHuq8FkpEygtl29zNVK9-VfP_kpSz_zGNWq7JLysgs,2764946
27
27
  lyrics_transcriber/frontend/.yarnrc.yml,sha256=RIUAbDBlfdQoS1V4MjkeMHzQqi4cvIWSzY5T3gEB_1I,66
28
28
  lyrics_transcriber/frontend/README.md,sha256=-D6CAfKTT7Y0V3EjlZ2fMy7fyctFQ4x2TJ9vx6xtccM,1607
29
- lyrics_transcriber/frontend/dist/assets/index-DVoI6Z16.js,sha256=2xxswQwdYHoQRNsV7gz9OHtwDH4yTOFTpT3mU3Eej2Q,1211733
30
- lyrics_transcriber/frontend/dist/assets/index-DVoI6Z16.js.map,sha256=AMz62uaShqqb0KqsQpCXOf6piu57QfAvzoIKzkYki7s,2550722
31
- lyrics_transcriber/frontend/dist/index.html,sha256=T5hrDDR_1fDv6yEAqbpqhIaDN8PH3eKuB1J7bLf1xGA,400
29
+ lyrics_transcriber/frontend/dist/assets/index-ZCT0s9MG.js,sha256=Rl82XsEWOv8jyFj_UEUxz0El7e4CUtl8L6XDgOqTQC8,1226756
30
+ lyrics_transcriber/frontend/dist/assets/index-ZCT0s9MG.js.map,sha256=o3ZQgVCSvTs0LQu7brg461BHRgCPwCRI0TjxyC99uKM,2606491
31
+ lyrics_transcriber/frontend/dist/index.html,sha256=va-nSC0PuQHN4j6ZDgCoDsUG7W2DOklJTrH5Vtczmmg,400
32
32
  lyrics_transcriber/frontend/dist/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
33
33
  lyrics_transcriber/frontend/eslint.config.js,sha256=3ADH23ANA4NNBKFy6nCVk65e8bx1DrVd_FIaYNnhuqA,734
34
34
  lyrics_transcriber/frontend/index.html,sha256=KfqJVONzpUyPIwV73nZRiCWlwLnFWeB3z0vzxDPNudU,376
35
35
  lyrics_transcriber/frontend/package.json,sha256=kQ0_UiU4xp8wnu-hbTBTAxUB6S_cQMzHM83Dmm5x70s,1181
36
36
  lyrics_transcriber/frontend/public/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
37
- lyrics_transcriber/frontend/src/App.tsx,sha256=oS1p02iwKv76-psVVFYW8fIWVN3CSG4DjfTrPvJP9m4,6530
37
+ lyrics_transcriber/frontend/src/App.tsx,sha256=f1-dp-MU8vap18eAXacwVDO5P4eE2iG9zSvjau-7NJs,6533
38
38
  lyrics_transcriber/frontend/src/api.ts,sha256=UgqPc1jo8DEVgxh3_9Lyf9GBsHYpqMAqsPEE5BzTV4w,6640
39
39
  lyrics_transcriber/frontend/src/components/AddLyricsModal.tsx,sha256=ubJwQewryjUrXwpBkITQNu4POhoUtDbNA93cqa-yJKY,3416
40
40
  lyrics_transcriber/frontend/src/components/AudioPlayer.tsx,sha256=amjYyYW6HZ9TD5RwqQLSmGbwk-5Ec9mtXza3F3045n4,5337
41
41
  lyrics_transcriber/frontend/src/components/CorrectionMetrics.tsx,sha256=CoTZS9Z3pf4lfPrzpQ2hZvLqFvt-IarSGBSCxFxD-y4,6274
42
- lyrics_transcriber/frontend/src/components/EditModal.tsx,sha256=f1AoMcutIXnOhH5dU67BUpIp6upucGUi8FK6oBekB5A,24490
42
+ lyrics_transcriber/frontend/src/components/EditActionBar.tsx,sha256=nLRVA3m3bQFqLtqlYasn7WeZNXvPvpG0sXuIv5QXvDc,2174
43
+ lyrics_transcriber/frontend/src/components/EditModal.tsx,sha256=f2JUYKvFmREElhlmHY545HQinwTtE5aTyQ_9x_qmKQY,24541
44
+ lyrics_transcriber/frontend/src/components/EditTimelineSection.tsx,sha256=74dKgUv_Z9DxlHx2xiR-gShFehGUaMNG2XWsH-SUEOM,15165
45
+ lyrics_transcriber/frontend/src/components/EditWordList.tsx,sha256=hJPXdpW3vur9OFnnIS8xk79yWWTsOuQgy2FdWNQ8vLg,10465
43
46
  lyrics_transcriber/frontend/src/components/FileUpload.tsx,sha256=fwn2rMWtMLPTZLREMb3ps4prSf9nzxGwnjmeC6KYsJA,2383
44
47
  lyrics_transcriber/frontend/src/components/FindReplaceModal.tsx,sha256=U7duKns4IqNXwbWFbQfdyaswnvkSRpfsU0UG__-Serc,20192
45
- lyrics_transcriber/frontend/src/components/GlobalSyncEditor.tsx,sha256=KuEPB4WvCjVQDGK5rowZMTeID95VWl1Gaoha_6PLNJM,28080
46
- lyrics_transcriber/frontend/src/components/Header.tsx,sha256=3bgJ29W6WKO7FYRuBXQlqlo7-AYLHfxsG_Mr38y8W_Y,12303
47
- lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx,sha256=piimIBZpgA25hMxlVQcvCEURZj_I6IfDY2GvZyQ-tkg,24844
48
+ lyrics_transcriber/frontend/src/components/Header.tsx,sha256=T07R_OjHRVhodr1eq1U2lS4Ge_FuoHDd62qTbVrMEYo,12296
49
+ lyrics_transcriber/frontend/src/components/LyricsAnalyzer.tsx,sha256=hsqkHwRYFGmKgsIZ-qjJ4pgckpX2Un7R-_Twtwill1g,40598
48
50
  lyrics_transcriber/frontend/src/components/ModeSelector.tsx,sha256=OuCOqePGs5JC3NxZxrR-rDu5W5WSObuxrLVOIaqHDOs,1941
49
51
  lyrics_transcriber/frontend/src/components/PreviewVideoSection.tsx,sha256=-9_ljoaadHjAAvia_vhEUgCajPv2jFnRDVR6VWN_a0w,4166
50
52
  lyrics_transcriber/frontend/src/components/ReferenceView.tsx,sha256=QfK-VzpPcS4iUcYN6iAWE3yQK4rWQJJ-D80DzgixI3I,9436
51
53
  lyrics_transcriber/frontend/src/components/ReviewChangesModal.tsx,sha256=zcGoIu5Iqs4ZXpGr3yeMIEKPf8FRLCP2i1TzNOmKzg0,13048
52
54
  lyrics_transcriber/frontend/src/components/SegmentDetailsModal.tsx,sha256=6ME02FkFwCgDAxW49yW260N4vbr80eAJ332Ex811GOo,1643
53
55
  lyrics_transcriber/frontend/src/components/TimelineEditor.tsx,sha256=Aa6ykDRVhWUNHcJ14KGzmUCPDCAltw9gXpdR5ogVQpc,12842
54
- lyrics_transcriber/frontend/src/components/TranscriptionView.tsx,sha256=gSs7ywxP1cPlUVlLQpXEgXuhyaqn2rZU887Kgog45Y4,7406
55
- lyrics_transcriber/frontend/src/components/WordDivider.tsx,sha256=DKA8jwD31YI6sRUvfH3NasrXAUOf-z3Iv_NBFtZiIE0,6446
56
+ lyrics_transcriber/frontend/src/components/TranscriptionView.tsx,sha256=It9alDqvlp3zu9ceEjFpqBOKDa2BFxP4AHm7v2K4AI0,7399
57
+ lyrics_transcriber/frontend/src/components/WordDivider.tsx,sha256=tOs_4WZGlJQ1o7sZFGLhwUoyX2jSKMa6vLZqa-1vzKY,6590
56
58
  lyrics_transcriber/frontend/src/components/shared/components/HighlightedText.tsx,sha256=GHEpj6Hw_cUP4xKmg7sEfV4qiS0dVAVU28u2sCm8nTc,16085
57
59
  lyrics_transcriber/frontend/src/components/shared/components/SourceSelector.tsx,sha256=zZpnQd6RlcGlr2v6T90Eva1cdEkiWzIVE78xAaQPObA,1144
58
- lyrics_transcriber/frontend/src/components/shared/components/Word.tsx,sha256=zFblGPuy560gB0nGq6hYrZ09ygn_YRI69IiQibowQ5I,2181
60
+ lyrics_transcriber/frontend/src/components/shared/components/Word.tsx,sha256=mP88txgdG47VhYJrn3QqexZYxdmsNCGuBgNrK8mUvhM,2086
59
61
  lyrics_transcriber/frontend/src/components/shared/constants.ts,sha256=25q1qjCwzV-hR72wSb_rJSe4dVuQ0l-piLMoZSpynGQ,488
60
62
  lyrics_transcriber/frontend/src/components/shared/hooks/useWordClick.ts,sha256=aRDzH144FYuK9N3Y0wyTp2c1-DJOT_Y3HWQHHGqiUsY,6196
61
63
  lyrics_transcriber/frontend/src/components/shared/styles.ts,sha256=J1jCSuRqpk1mOFYAqJudhxeozH-q1bi-dsOibLukBJU,411
62
64
  lyrics_transcriber/frontend/src/components/shared/types.js,sha256=1DqoH1vIn6o1ng-XyBS6JRVVkf8Hj7ub_UD4x8loMjA,77
63
65
  lyrics_transcriber/frontend/src/components/shared/types.ts,sha256=-HniySfrxsjmciMvtXu_bSNAyVHbVAZynRDTC90S5L4,3840
64
- lyrics_transcriber/frontend/src/components/shared/utils/keyboardHandlers.ts,sha256=PyzkwJMnm3FaRoX-scBUCSZHiMqhdhy6gDoEpULUVCQ,3918
66
+ lyrics_transcriber/frontend/src/components/shared/utils/keyboardHandlers.ts,sha256=qtXin35bdVlitJSOmgju-WZP4QkwAJqjlYH3DuwfFPg,4522
65
67
  lyrics_transcriber/frontend/src/components/shared/utils/localStorage.ts,sha256=jpLT65Rk_toaB-8X2lRGyYZ9EoMQDI45GviUT7N9Bp0,3240
66
68
  lyrics_transcriber/frontend/src/components/shared/utils/referenceLineCalculator.ts,sha256=TJ2oHDitFFVxm83eFEhdlwvhx--mIt3054YbET2RiXs,2575
67
69
  lyrics_transcriber/frontend/src/components/shared/utils/segmentOperations.ts,sha256=m1pUrjZcAch85Xqm9EX43BuoHQjdvBjY5BZ70LWa1hk,11074
@@ -77,7 +79,7 @@ lyrics_transcriber/frontend/src/vite-env.d.ts,sha256=ZZlpNvuwQpFfe3SiAPzd5-QQ8yp
77
79
  lyrics_transcriber/frontend/tsconfig.app.json,sha256=7aUBVcaBqEtmtfQXsbwsgBxSUng06xzQi5t4QCgWQ3E,665
78
80
  lyrics_transcriber/frontend/tsconfig.json,sha256=AOS5v1AsNPL3wGc8bt58Ybh8HHpbYrlK91q0KIzaSgs,627
79
81
  lyrics_transcriber/frontend/tsconfig.node.json,sha256=oMBhK5xufBrVE7SkbADRxA3pxm8_L9m5YwtCOZSafsc,536
80
- lyrics_transcriber/frontend/tsconfig.tsbuildinfo,sha256=fJpJ17UBUxK7eUnWy-ZWbp2QftNCAqUyzJnDe_jo_Fc,1429
82
+ lyrics_transcriber/frontend/tsconfig.tsbuildinfo,sha256=F18wGtPeHvjZE8X3QcEFSzWXwT1zQP7dpWh8hpnFiHU,1505
81
83
  lyrics_transcriber/frontend/vite.config.d.ts,sha256=S5bdGf0pSdKM6A6RNBKwAm3EIeW_bDHYfHtesRtXU7Q,76
82
84
  lyrics_transcriber/frontend/vite.config.js,sha256=P4GuPgRZzwEWPQZpyujUe7eA3mjPoFAe2CgE5sQAXg8,232
83
85
  lyrics_transcriber/frontend/vite.config.ts,sha256=8FdW0dN8zDFqfhQSxX5h7sIu72X2piLYlp_TZYRQvBQ,216
@@ -146,8 +148,8 @@ lyrics_transcriber/transcribers/base_transcriber.py,sha256=T3m4ZCwZ9Bpv6Jvb2hNcn
146
148
  lyrics_transcriber/transcribers/whisper.py,sha256=YcCB1ic9H6zL1GS0jD0emu8-qlcH0QVEjjjYB4aLlIQ,13260
147
149
  lyrics_transcriber/types.py,sha256=d73cDstrEI_tVgngDYYYFwjZNs6OVBuAB_QDkga7dWA,19841
148
150
  lyrics_transcriber/utils/word_utils.py,sha256=-cMGpj9UV4F6IsoDKAV2i1aiqSO8eI91HMAm_igtVMk,958
149
- lyrics_transcriber-0.44.0.dist-info/LICENSE,sha256=BiPihPDxhxIPEx6yAxVfAljD5Bhm_XG2teCbPEj_m0Y,1069
150
- lyrics_transcriber-0.44.0.dist-info/METADATA,sha256=l736Hpfv8P3G8SKqfZ5GUJZRLt9WsMt1SQerfbc8p7I,6017
151
- lyrics_transcriber-0.44.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
152
- lyrics_transcriber-0.44.0.dist-info/entry_points.txt,sha256=kcp-bSFkCACAEA0t166Kek0HpaJUXRo5SlF5tVrqNBU,216
153
- lyrics_transcriber-0.44.0.dist-info/RECORD,,
151
+ lyrics_transcriber-0.45.0.dist-info/LICENSE,sha256=BiPihPDxhxIPEx6yAxVfAljD5Bhm_XG2teCbPEj_m0Y,1069
152
+ lyrics_transcriber-0.45.0.dist-info/METADATA,sha256=KswMnIPwmJrw597OpS6L7-Hnqny8I4KtncvK4MiPhxI,6017
153
+ lyrics_transcriber-0.45.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
154
+ lyrics_transcriber-0.45.0.dist-info/entry_points.txt,sha256=kcp-bSFkCACAEA0t166Kek0HpaJUXRo5SlF5tVrqNBU,216
155
+ lyrics_transcriber-0.45.0.dist-info/RECORD,,