Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/src/components/AudioPlayer/AudioPlayer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ export function AudioPlayer() {
}

return (
<div className="fixed bottom-0 left-0 right-0 border-t bg-background/95 backdrop-blur supports-backdrop-filter:bg-background/60 z-50">
<div className="fixed bottom-0 start-0 end-0 border-t bg-background/95 backdrop-blur supports-backdrop-filter:bg-background/60 z-50">
<div className="container mx-auto px-4 py-3 max-w-7xl">
<div className="flex items-center gap-4">
{/* Play/Pause Button */}
Expand Down
10 changes: 5 additions & 5 deletions app/src/components/AudioTab/AudioTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ export function AudioTab() {
<div className="flex items-center justify-between mb-6 shrink-0">
<h2 className="text-2xl font-bold">{t('audioChannels.title')}</h2>
<Button onClick={() => setCreateDialogOpen(true)}>
<Plus className="h-4 w-4 mr-2" />
<Plus className="h-4 w-4 me-2" />
{t('audioChannels.newChannel')}
</Button>
</div>
Expand All @@ -162,7 +162,7 @@ export function AudioTab() {
<Speaker className="h-12 w-12 text-muted-foreground mb-4" />
<p className="text-muted-foreground mb-4">{t('audioChannels.empty.message')}</p>
<Button onClick={() => setCreateDialogOpen(true)}>
<Plus className="h-4 w-4 mr-2" />
<Plus className="h-4 w-4 me-2" />
{t('audioChannels.empty.action')}
</Button>
</div>
Expand All @@ -175,7 +175,7 @@ export function AudioTab() {
key={channel.id}
type="button"
className={cn(
'group border rounded-lg p-4 transition-colors cursor-pointer text-left w-full',
'group border rounded-lg p-4 transition-colors cursor-pointer text-start w-full',
isSelected && 'ring-2 ring-primary bg-primary/5 border-primary',
)}
onClick={() => setSelectedChannelId(isSelected ? null : channel.id)}
Expand All @@ -191,7 +191,7 @@ export function AudioTab() {
</div>
</div>

<div className="space-y-2.5 ml-10">
<div className="space-y-2.5 ms-10">
<div>
<div className="text-xs font-medium text-muted-foreground mb-1">
{t('audioChannels.labels.outputDevices')}
Expand Down Expand Up @@ -311,7 +311,7 @@ export function AudioTab() {
onClick={handleDeviceClick}
disabled={!canToggle}
className={cn(
'flex items-center gap-2 text-sm p-3 rounded-lg border transition-colors text-left w-full',
'flex items-center gap-2 text-sm p-3 rounded-lg border transition-colors text-start w-full',
isConnected
? 'bg-primary/10 border-primary ring-1 ring-primary/20'
: 'hover:bg-muted/50',
Expand Down
2 changes: 1 addition & 1 deletion app/src/components/CapturePill/CapturePill.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ export function CapturePill({
{labelText}
</span>
<PillAudioBars mode={barMode} />
<span className="text-xs tabular-nums text-accent/70 font-medium shrink-0 -ml-1">
<span className="text-xs tabular-nums text-accent/70 font-medium shrink-0 -ms-1">
{formatElapsed(elapsedMs)}
</span>
</div>
Expand Down
46 changes: 23 additions & 23 deletions app/src/components/CapturesTab/CapturesTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ export function CapturesTab() {
<ListPaneTitle>{t('captures.title')}</ListPaneTitle>
<Badge
variant="secondary"
className="h-5 px-1.5 -ml-2 text-[10px] font-medium text-accent bg-accent/10 border border-accent/20"
className="h-5 px-1.5 -ms-2 text-[10px] font-medium text-accent bg-accent/10 border border-accent/20"
>
{t('captures.beta')}
</Badge>
Expand Down Expand Up @@ -494,7 +494,7 @@ export function CapturesTab() {
key={capture.id}
onClick={() => setSelectedId(capture.id)}
className={cn(
'w-full text-left p-3 rounded-lg transition-colors block',
'w-full text-start p-3 rounded-lg transition-colors block',
isActive
? 'bg-muted/70 border border-border'
: 'border border-transparent hover:bg-muted/30',
Expand Down Expand Up @@ -535,10 +535,10 @@ export function CapturesTab() {

{/* Right: capture detail */}
<div className="flex-1 flex flex-col relative overflow-hidden min-w-0">
<div className="absolute top-0 left-0 right-0 h-20 bg-gradient-to-b from-background to-transparent z-10 pointer-events-none" />
<div className="absolute top-0 start-0 end-0 h-20 bg-gradient-to-b from-background to-transparent z-10 pointer-events-none" />

{/* Top action bar */}
<div className="absolute top-0 left-0 right-0 z-20 px-8">
<div className="absolute top-0 start-0 end-0 z-20 px-8">
<div className="flex items-center gap-3 py-4">
<div className="flex items-center gap-1.5 text-xs text-muted-foreground">
<span className="w-1.5 h-1.5 rounded-full bg-accent" />
Expand All @@ -563,7 +563,7 @@ export function CapturesTab() {
<>
<Button variant="outline" asChild>
<Link to="/settings/captures">
<Settings2 className="mr-2 h-4 w-4" />
<Settings2 className="me-2 h-4 w-4" />
{t('captures.actions.configure')}
</Link>
</Button>
Expand All @@ -574,9 +574,9 @@ export function CapturesTab() {
disabled={session.isUploading}
>
{session.isUploading ? (
<Loader2 className="h-4 w-4 mr-2 animate-spin" />
<Loader2 className="h-4 w-4 me-2 animate-spin" />
) : (
<Upload className="h-4 w-4 mr-2" />
<Upload className="h-4 w-4 me-2" />
)}
{session.isUploading ? t('captures.actions.importing') : t('captures.actions.import')}
</Button>
Expand All @@ -595,12 +595,12 @@ export function CapturesTab() {
>
{session.isRecording ? (
<>
<Square className="h-4 w-4 mr-2 fill-current" />
<Square className="h-4 w-4 me-2 fill-current" />
{t('captures.actions.stop')}
</>
) : (
<>
<Mic className="h-4 w-4 mr-2" />
<Mic className="h-4 w-4 me-2" />
{t('captures.actions.dictate')}
</>
)}
Expand Down Expand Up @@ -651,7 +651,7 @@ export function CapturesTab() {
: 'text-muted-foreground hover:text-foreground disabled:opacity-40',
)}
>
<Sparkles className="h-3 w-3 inline-block mr-1 -translate-y-px" />
<Sparkles className="h-3 w-3 inline-block me-1 -translate-y-px" />
{t('captures.transcript.refined')}
</button>
<button
Expand All @@ -664,7 +664,7 @@ export function CapturesTab() {
: 'text-muted-foreground hover:text-foreground',
)}
>
<Captions className="h-3 w-3 inline-block mr-1 -translate-y-px" />
<Captions className="h-3 w-3 inline-block me-1 -translate-y-px" />
{t('captures.transcript.raw')}
</button>
</div>
Expand Down Expand Up @@ -701,7 +701,7 @@ export function CapturesTab() {
onClick={() => handlePlayAs()}
disabled={!playAsVoice || playAsMutation.isPending}
className={cn(
'gap-2 rounded-r-none border-r-0 pr-3 pl-2 transition-colors',
'gap-2 rounded-e-none border-e-0 pe-3 ps-2 transition-colors',
playbackState !== 'idle' &&
'border-accent/50 text-foreground bg-accent/10 hover:bg-accent/15 hover:text-foreground hover:border-accent/50',
)}
Expand Down Expand Up @@ -733,7 +733,7 @@ export function CapturesTab() {
variant="outline"
size="sm"
className={cn(
'rounded-l-none px-2 transition-colors',
'rounded-s-none px-2 transition-colors',
playbackState !== 'idle' &&
'border-accent/50 bg-accent/10 hover:bg-accent/15 hover:text-foreground hover:border-accent/50',
)}
Expand Down Expand Up @@ -768,7 +768,7 @@ export function CapturesTab() {
</DropdownMenu>
</div>
<Button variant="outline" size="sm" onClick={handleCopy}>
<Copy className="h-3.5 w-3.5 mr-1.5" />
<Copy className="h-3.5 w-3.5 me-1.5" />
{t('captures.actions.copy')}
</Button>
<Button
Expand All @@ -778,9 +778,9 @@ export function CapturesTab() {
disabled={session.isRefining}
>
{session.isRefining ? (
<Loader2 className="h-3.5 w-3.5 mr-1.5 animate-spin" />
<Loader2 className="h-3.5 w-3.5 me-1.5 animate-spin" />
) : (
<Sparkles className="h-3.5 w-3.5 mr-1.5" />
<Sparkles className="h-3.5 w-3.5 me-1.5" />
)}
{selected.transcript_refined
? t('captures.actions.reRefine')
Expand All @@ -789,9 +789,9 @@ export function CapturesTab() {
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="outline" size="sm">
<Download className="h-3.5 w-3.5 mr-1.5" />
<Download className="h-3.5 w-3.5 me-1.5" />
{t('captures.actions.export')}
<ChevronDown className="h-3.5 w-3.5 ml-1 opacity-70" />
<ChevronDown className="h-3.5 w-3.5 ms-1 opacity-70" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="start" className="w-56">
Expand All @@ -800,15 +800,15 @@ export function CapturesTab() {
</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuItem onClick={handleExportAudio}>
<FileAudio className="h-3.5 w-3.5 mr-2 text-muted-foreground" />
<FileAudio className="h-3.5 w-3.5 me-2 text-muted-foreground" />
{t('captures.actions.exportAudio')}
</DropdownMenuItem>
<DropdownMenuItem onClick={handleExportTranscript}>
<Captions className="h-3.5 w-3.5 mr-2 text-muted-foreground" />
<Captions className="h-3.5 w-3.5 me-2 text-muted-foreground" />
{t('captures.actions.exportTranscript')}
</DropdownMenuItem>
<DropdownMenuItem onClick={handleExportMarkdown}>
<FileText className="h-3.5 w-3.5 mr-2 text-muted-foreground" />
<FileText className="h-3.5 w-3.5 me-2 text-muted-foreground" />
{t('captures.actions.exportMarkdown')}
</DropdownMenuItem>
</DropdownMenuContent>
Expand All @@ -822,9 +822,9 @@ export function CapturesTab() {
className="text-muted-foreground "
>
{deleteMutation.isPending ? (
<Loader2 className="h-3.5 w-3.5 mr-1.5 animate-spin" />
<Loader2 className="h-3.5 w-3.5 me-1.5 animate-spin" />
) : (
<Trash2 className="h-3.5 w-3.5 mr-1.5" />
<Trash2 className="h-3.5 w-3.5 me-1.5" />
)}
{t('captures.actions.delete')}
</Button>
Expand Down
4 changes: 2 additions & 2 deletions app/src/components/Effects/EffectsChainEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ export function EffectsChainEditor({
<SelectItem key={p.id} value={p.id}>
{name}
{description && (
<span className="ml-1 text-muted-foreground">- {description}</span>
<span className="ms-1 text-muted-foreground">- {description}</span>
)}
</SelectItem>
);
Expand Down Expand Up @@ -240,7 +240,7 @@ export function EffectsChainEditor({
{availableEffects && (
<Select onValueChange={addEffect}>
<SelectTrigger className="h-8 border-dashed text-xs text-muted-foreground focus:ring-0 focus:ring-offset-0">
<Plus className="mr-1 h-3.5 w-3.5" />
<Plus className="me-1 h-3.5 w-3.5" />
<SelectValue placeholder={t('effects.chain.addEffect')} />
</SelectTrigger>
<SelectContent>
Expand Down
8 changes: 4 additions & 4 deletions app/src/components/Effects/GenerationPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export function GenerationPicker({ selectedId, onSelect, className }: Generation
{selectedGeneration ? (
<span className="truncate">
<span className="font-medium">{selectedGeneration.profile_name}</span>
<span className="text-muted-foreground ml-1.5">
<span className="text-muted-foreground ms-1.5">
{selectedGeneration.text.length > 30
? `${selectedGeneration.text.substring(0, 30)}...`
: selectedGeneration.text}
Expand All @@ -60,12 +60,12 @@ export function GenerationPicker({ selectedId, onSelect, className }: Generation
<PopoverContent className="w-80 p-0" align="start">
<div className="p-2 border-b">
<div className="relative">
<Search className="absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground" />
<Search className="absolute start-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground" />
<Input
placeholder="Search by voice or text..."
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
className="h-8 pl-7 text-xs"
className="h-8 ps-7 text-xs"
/>
</div>
</div>
Expand All @@ -80,7 +80,7 @@ export function GenerationPicker({ selectedId, onSelect, className }: Generation
key={gen.id}
type="button"
className={cn(
'w-full text-left px-3 py-2 hover:bg-muted/50 transition-colors border-b border-border/30 last:border-0',
'w-full text-start px-3 py-2 hover:bg-muted/50 transition-colors border-b border-border/30 last:border-0',
gen.id === selectedId && 'bg-accent/10',
)}
onClick={() => {
Expand Down
4 changes: 2 additions & 2 deletions app/src/components/EffectsTab/EffectsDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ export function EffectsDetail() {
</div>
</div>

<div className="flex-1 min-h-0 overflow-y-auto space-y-5 pr-1">
<div className="flex-1 min-h-0 overflow-y-auto space-y-5 pe-1">
{(isCreatingNew || !isBuiltIn) && (
<div className="space-y-3">
<div className="space-y-1.5">
Expand Down Expand Up @@ -424,7 +424,7 @@ export function EffectsDetail() {
{t('common.cancel')}
</Button>
<Button onClick={handleSaveAsConfirm} disabled={saving || !saveAsName.trim()}>
<Save className="h-3.5 w-3.5 mr-1.5" />
<Save className="h-3.5 w-3.5 me-1.5" />
{saving ? t('effects.detail.saving') : t('common.save')}
</Button>
</DialogFooter>
Expand Down
8 changes: 4 additions & 4 deletions app/src/components/EffectsTab/EffectsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export function EffectsList() {
<ListPaneTitle>{t('effects.title')}</ListPaneTitle>
<ListPaneActions>
<Button onClick={handleCreateNew} size="sm">
<Plus className="mr-2 h-4 w-4" />
<Plus className="me-2 h-4 w-4" />
{t('effects.newPreset')}
</Button>
</ListPaneActions>
Expand Down Expand Up @@ -146,7 +146,7 @@ function PresetCard({
<button
type="button"
className={cn(
'w-full text-left rounded-xl border p-3 h-[88px] transition-all duration-150',
'w-full text-start rounded-xl border p-3 h-[88px] transition-all duration-150',
isSelected
? 'border-accent/50 bg-accent/10'
: 'border-border bg-card hover:bg-muted/50 hover:border-border',
Expand All @@ -164,10 +164,10 @@ function PresetCard({
</span>
)}
</div>
<p className="text-xs text-muted-foreground mt-1 line-clamp-1 pl-6">
<p className="text-xs text-muted-foreground mt-1 line-clamp-1 ps-6">
{description || t('effects.noDescription')}
</p>
<div className="flex items-center gap-2 mt-1.5 pl-6">
<div className="flex items-center gap-2 mt-1.5 ps-6">
<span className="text-[10px] text-muted-foreground">
{t('effects.effectCount', { count: effectCount })}
</span>
Expand Down
2 changes: 1 addition & 1 deletion app/src/components/EffectsTab/EffectsTab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export function EffectsTab() {
</div>

{/* Right - Detail / editor */}
<div className="flex-1 min-h-0 flex flex-col pr-8">
<div className="flex-1 min-h-0 flex flex-col pe-8">
<EffectsDetail />
</div>
</div>
Expand Down
Loading