d3ro-voice/apps/web/.next/server/chunks/610.js
yunchan8804 d0c33ca259 feat(V2-3): Web App MVP — Next.js 15 + @d3ro/api-client
packages/api-client (@d3ro/api-client) 신규:
- types.ts: 12개 테이블 Row/Insert/Update 타입 + Database 형식
- client.ts: createD3roSupabaseClient 팩토리 (placeholder fallback)
- auth.ts: signInWithOAuth/signOut/getSession/onAuthStateChange
- meetings.ts: 회의 + 메모 + 문서 + 전사 CRUD
- history.ts: 음성 입력 이력 CRUD
- usage.ts: 일일 쿼터 + 구독 조회
- 루트 barrel은 types만 re-export, 함수는 subpath import 전용

apps/web (@d3ro/web) 신규 — Next.js 15 App Router:
- transpilePackages: @d3ro/core, ui, i18n, api-client
- ThemeProvider (MUI + AppRouterCacheProvider)
- I18nProvider (localStorage 어댑터)
- AuthProvider (Supabase session Context)
- 라우트 9개:
  - / (auth 상태 기반 리다이렉트)
  - /login (Google/GitHub OAuth, 미설정 경고)
  - /auth/callback (code -> session 교환)
  - /dashboard (요약 카드 + 최근 회의)
  - /meetings (카드 그리드 리스트)
  - /meetings/[id] (transcripts/memos/documents)
  - /record (getUserMedia + MediaRecorder + stt-proxy)
- Sidebar, 인증 가드, 9바 웨이브폼, 레벨 미터

packages/ui 확장:
- MetalCard가 BoxProps 상속 (sx/onClick 등 전달)
- theme.ts에 typoSx(key) 헬퍼 추가 (d3roTypo -> MUI sx 변환)
- d3roPalette.tag.blue 추가 (M5 정리 포함)
- DS 컴포넌트 9개에 'use client' directive
- MetalDial 미사용 import 제거

packages/i18n 확장:
- ko.json에 7개 새 키 (nav.meetings/record/logout, login.*)

설계 결정:
- Database 제네릭 현재는 기본 타입 (V2-4에서 supabase gen types로 자동화)
- api-client barrel은 타입만 노출해서 컴파일 전파 차단
- DS 컴포넌트 client 경계 명시
- env 없어도 Next.js 빌드 성공 (placeholder URL/key)

검증:
- web typecheck OK
- desktop typecheck OK (회귀 없음)
- web next build OK (9 라우트 정적/동적 생성)
- desktop build OK (회귀 없음)
2026-04-09 02:52:31 +09:00

1 line
No EOL
22 KiB
JavaScript

"use strict";exports.id=610,exports.ids=[610],exports.modules={2608:(a,b,c)=>{c.d(b,{InstrumentPanel:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call InstrumentPanel() from the server but InstrumentPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\InstrumentPanel.tsx","InstrumentPanel")},28340:(a,b,c)=>{c.d(b,{n:()=>f,o:()=>g});var d=c(56057),e=c(25739);async function f(){let a=await (0,d.UL)(),b=process.env.NEXT_PUBLIC_SUPABASE_URL??"https://placeholder.supabase.co",c=process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY??"placeholder-anon-key";return(0,e.createServerClient)(b,c,{cookies:{getAll:()=>a.getAll(),setAll(b){try{b.forEach(({name:b,value:c,options:d})=>{a.set(b,c,d)})}catch{}}}})}function g(){return!!(process.env.NEXT_PUBLIC_SUPABASE_URL&&process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY)}},31857:(a,b,c)=>{c.d(b,{ScreenPanel:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call ScreenPanel() from the server but ScreenPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\ScreenPanel.tsx","ScreenPanel")},36146:(a,b,c)=>{c.d(b,{Sidebar:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\apps\\web\\src\\components\\layout\\sidebar.tsx","Sidebar")},42503:(a,b,c)=>{c.d(b,{PhosphorText:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call PhosphorText() from the server but PhosphorText is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\PhosphorText.tsx","PhosphorText")},48067:(a,b,c)=>{c.d(b,{kR:()=>h,sM:()=>f});var d=c(7152);let e={dark:{bg:{app:"#19191b",card:"#242427",cardHover:"#2a2a2d",elevated:"#2e2e32",input:"#1e1e21",sidebar:"#1e1f21",inset:"#1b1c1e",chassis:"#242528",crtBezel:"#1a1a1c",crtGlass:"#050605"},text:{primary:"#ffffff",secondary:"#8e8e93",label:"#7c7c82",disabled:"#4a4a4e",engraving:"#1a1a1c",inactive:"#77797c",dimLabel:"#5c2615",muted:"#3a3b3f",hover:"#aaaaaa"},border:{subtle:"rgba(255,255,255,0.04)",default:"rgba(255,255,255,0.08)",strong:"rgba(255,255,255,0.12)"},shadow:{card:"0 8px 30px rgba(0,0,0,0.3)",buttonBase:"0 2px 0 rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.06)",chassis:"0 60px 100px -20px rgba(0,0,0,0.8), 0 12px 0 #111111, 0 13px 4px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.15), inset 0 -1px 2px rgba(0,0,0,0.4)",inset:"inset 0 2px 6px rgba(0,0,0,0.6), 0 1px 1px rgba(255,255,255,0.05)",insetDeep:"inset 0 4px 12px rgba(0,0,0,0.9), inset 0 0 0 1px #000, 0 1px 1px rgba(255,255,255,0.1)",buttonRaised:"0 3px 6px rgba(0,0,0,0.4), inset 0 1px 1px rgba(255,255,255,0.1), inset 0 -1px 2px rgba(0,0,0,0.2)",buttonPressed:"inset 0 2px 6px rgba(0,0,0,0.8), inset 0 0 0 1px #000",screenGlow:"inset 0 0 20px rgba(0,0,0,0.8)",tooltip:"0 8px 24px rgba(0,0,0,0.4)"},accent:{main:"#f25b29",dim:"rgba(242,91,41,0.15)",glow:"rgba(242,91,41,0.6)",light:"#ff7a4d",dark:"#c44a22",crtPhosphor:"#f25b29",crtPhosphorDim:"#c44a22"}},light:{bg:{app:"#f5f5f7",card:"#ffffff",cardHover:"#f7f7f9",elevated:"#f0f0f2",input:"#ffffff",sidebar:"#eeeef0",inset:"#e8e8ea",chassis:"#e2e2e5",crtBezel:"#d5d5d8",crtGlass:"#f0f0f2"},text:{primary:"#1a1a1c",secondary:"#6e6e73",label:"#8e8e93",disabled:"#c7c7cc",engraving:"#d0d0d3",inactive:"#8e8e93",dimLabel:"#b07040",muted:"#b0b0b4",hover:"#555555"},border:{subtle:"rgba(0,0,0,0.06)",default:"rgba(0,0,0,0.10)",strong:"rgba(0,0,0,0.16)"},shadow:{card:"0 4px 20px rgba(0,0,0,0.06)",buttonBase:"0 2px 0 rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.8)",chassis:"0 40px 80px -20px rgba(0,0,0,0.08), 0 12px 0 #d5d5d8, 0 13px 4px rgba(0,0,0,0.06), inset 0 1px 1px rgba(255,255,255,0.8), inset 0 -1px 2px rgba(0,0,0,0.04)",inset:"inset 0 2px 6px rgba(0,0,0,0.08), 0 1px 1px rgba(255,255,255,0.6)",insetDeep:"inset 0 4px 12px rgba(0,0,0,0.12), inset 0 0 0 1px rgba(0,0,0,0.06), 0 1px 1px rgba(255,255,255,0.8)",buttonRaised:"0 3px 6px rgba(0,0,0,0.08), inset 0 1px 1px rgba(255,255,255,0.8), inset 0 -1px 2px rgba(0,0,0,0.04)",buttonPressed:"inset 0 2px 6px rgba(0,0,0,0.12), inset 0 0 0 1px rgba(0,0,0,0.06)",screenGlow:"inset 0 0 20px rgba(0,0,0,0.06)",tooltip:"0 8px 24px rgba(0,0,0,0.08)"},accent:{main:"#f25b29",dim:"rgba(242,91,41,0.15)",glow:"rgba(242,91,41,0.6)",light:"#ff7a4d",dark:"#c44a22",crtPhosphor:"#f25b29",crtPhosphorDim:"#c44a22"}},nord:{bg:{app:"#2e3440",card:"#3b4252",cardHover:"#434c5e",elevated:"#3b4252",input:"#3b4252",sidebar:"#2e3440",inset:"#2e3440",chassis:"#3b4252",crtBezel:"#2e3440",crtGlass:"#242831"},text:{primary:"#eceff4",secondary:"#d8dee9",label:"#adb5c7",disabled:"#4c566a",engraving:"#2e3440",inactive:"#7b88a1",dimLabel:"#5e81ac",muted:"#434c5e",hover:"#e5e9f0"},border:{subtle:"rgba(216,222,233,0.06)",default:"rgba(216,222,233,0.10)",strong:"rgba(216,222,233,0.16)"},shadow:{card:"0 8px 30px rgba(0,0,0,0.35)",buttonBase:"0 2px 0 rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.06)",chassis:"0 60px 100px -20px rgba(0,0,0,0.8), 0 12px 0 #242831, 0 13px 4px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.1), inset 0 -1px 2px rgba(0,0,0,0.4)",inset:"inset 0 2px 6px rgba(0,0,0,0.5), 0 1px 1px rgba(255,255,255,0.04)",insetDeep:"inset 0 4px 12px rgba(0,0,0,0.8), inset 0 0 0 1px #242831, 0 1px 1px rgba(255,255,255,0.08)",buttonRaised:"0 3px 6px rgba(0,0,0,0.35), inset 0 1px 1px rgba(255,255,255,0.08), inset 0 -1px 2px rgba(0,0,0,0.2)",buttonPressed:"inset 0 2px 6px rgba(0,0,0,0.7), inset 0 0 0 1px #242831",screenGlow:"inset 0 0 20px rgba(0,0,0,0.6)",tooltip:"0 8px 24px rgba(0,0,0,0.4)"},accent:{main:"#88c0d0",dim:"rgba(136,192,208,0.15)",glow:"rgba(136,192,208,0.6)",light:"#a3d0de",dark:"#6aacbe",crtPhosphor:"#88c0d0",crtPhosphorDim:"#5e9daf"}},solarized:{bg:{app:"#002b36",card:"#073642",cardHover:"#0d4250",elevated:"#073642",input:"#073642",sidebar:"#002b36",inset:"#001f28",chassis:"#073642",crtBezel:"#002b36",crtGlass:"#001f28"},text:{primary:"#eee8d5",secondary:"#93a1a1",label:"#839496",disabled:"#586e75",engraving:"#002b36",inactive:"#657b83",dimLabel:"#7a6c2e",muted:"#073642",hover:"#b2c0bf"},border:{subtle:"rgba(131,148,150,0.08)",default:"rgba(131,148,150,0.13)",strong:"rgba(131,148,150,0.20)"},shadow:{card:"0 8px 30px rgba(0,0,0,0.4)",buttonBase:"0 2px 0 rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.05)",chassis:"0 60px 100px -20px rgba(0,0,0,0.8), 0 12px 0 #001f28, 0 13px 4px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.08), inset 0 -1px 2px rgba(0,0,0,0.4)",inset:"inset 0 2px 6px rgba(0,0,0,0.6), 0 1px 1px rgba(255,255,255,0.04)",insetDeep:"inset 0 4px 12px rgba(0,0,0,0.9), inset 0 0 0 1px #001f28, 0 1px 1px rgba(255,255,255,0.06)",buttonRaised:"0 3px 6px rgba(0,0,0,0.4), inset 0 1px 1px rgba(255,255,255,0.06), inset 0 -1px 2px rgba(0,0,0,0.2)",buttonPressed:"inset 0 2px 6px rgba(0,0,0,0.8), inset 0 0 0 1px #001f28",screenGlow:"inset 0 0 20px rgba(0,0,0,0.7)",tooltip:"0 8px 24px rgba(0,0,0,0.4)"},accent:{main:"#b58900",dim:"rgba(181,137,0,0.15)",glow:"rgba(181,137,0,0.6)",light:"#d4a017",dark:"#8a6800",crtPhosphor:"#b58900",crtPhosphorDim:"#8a6800"}},catppuccin:{bg:{app:"#1e1e2e",card:"#313244",cardHover:"#3a3a54",elevated:"#313244",input:"#181825",sidebar:"#181825",inset:"#11111b",chassis:"#313244",crtBezel:"#1e1e2e",crtGlass:"#11111b"},text:{primary:"#cdd6f4",secondary:"#bac2de",label:"#a6adc8",disabled:"#585b70",engraving:"#11111b",inactive:"#7f849c",dimLabel:"#585b70",muted:"#313244",hover:"#e6e9f8"},border:{subtle:"rgba(205,214,244,0.04)",default:"rgba(205,214,244,0.08)",strong:"rgba(205,214,244,0.14)"},shadow:{card:"0 8px 30px rgba(0,0,0,0.4)",buttonBase:"0 2px 0 rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.05)",chassis:"0 60px 100px -20px rgba(0,0,0,0.8), 0 12px 0 #11111b, 0 13px 4px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.08), inset 0 -1px 2px rgba(0,0,0,0.4)",inset:"inset 0 2px 6px rgba(0,0,0,0.6), 0 1px 1px rgba(255,255,255,0.04)",insetDeep:"inset 0 4px 12px rgba(0,0,0,0.9), inset 0 0 0 1px #11111b, 0 1px 1px rgba(255,255,255,0.06)",buttonRaised:"0 3px 6px rgba(0,0,0,0.4), inset 0 1px 1px rgba(255,255,255,0.06), inset 0 -1px 2px rgba(0,0,0,0.2)",buttonPressed:"inset 0 2px 6px rgba(0,0,0,0.8), inset 0 0 0 1px #11111b",screenGlow:"inset 0 0 20px rgba(0,0,0,0.7)",tooltip:"0 8px 24px rgba(0,0,0,0.4)"},accent:{main:"#cba6f7",dim:"rgba(203,166,247,0.15)",glow:"rgba(203,166,247,0.6)",light:"#dfc0ff",dark:"#a67fd4",crtPhosphor:"#cba6f7",crtPhosphorDim:"#a67fd4"}},dracula:{bg:{app:"#282a36",card:"#44475a",cardHover:"#4f5266",elevated:"#383a4a",input:"#383a4a",sidebar:"#21222c",inset:"#21222c",chassis:"#44475a",crtBezel:"#282a36",crtGlass:"#1e2029"},text:{primary:"#f8f8f2",secondary:"#a9b0d0",label:"#8891b5",disabled:"#6272a4",engraving:"#21222c",inactive:"#6272a4",dimLabel:"#6272a4",muted:"#44475a",hover:"#ffffff"},border:{subtle:"rgba(248,248,242,0.04)",default:"rgba(248,248,242,0.08)",strong:"rgba(248,248,242,0.14)"},shadow:{card:"0 8px 30px rgba(0,0,0,0.4)",buttonBase:"0 2px 0 rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.06)",chassis:"0 60px 100px -20px rgba(0,0,0,0.8), 0 12px 0 #1e2029, 0 13px 4px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.1), inset 0 -1px 2px rgba(0,0,0,0.4)",inset:"inset 0 2px 6px rgba(0,0,0,0.6), 0 1px 1px rgba(255,255,255,0.04)",insetDeep:"inset 0 4px 12px rgba(0,0,0,0.9), inset 0 0 0 1px #1e2029, 0 1px 1px rgba(255,255,255,0.08)",buttonRaised:"0 3px 6px rgba(0,0,0,0.4), inset 0 1px 1px rgba(255,255,255,0.08), inset 0 -1px 2px rgba(0,0,0,0.2)",buttonPressed:"inset 0 2px 6px rgba(0,0,0,0.8), inset 0 0 0 1px #1e2029",screenGlow:"inset 0 0 20px rgba(0,0,0,0.7)",tooltip:"0 8px 24px rgba(0,0,0,0.4)"},accent:{main:"#bd93f9",dim:"rgba(189,147,249,0.15)",glow:"rgba(189,147,249,0.6)",light:"#d4b8ff",dark:"#9a70e0",crtPhosphor:"#bd93f9",crtPhosphorDim:"#9a70e0"}}},f={bg:{app:"var(--d3-bg-app)",card:"var(--d3-bg-card)",cardHover:"var(--d3-bg-cardHover)",elevated:"var(--d3-bg-elevated)",input:"var(--d3-bg-input)",sidebar:"var(--d3-bg-sidebar)",inset:"var(--d3-bg-inset)",chassis:"var(--d3-bg-chassis)",crtBezel:"var(--d3-bg-crtBezel)",crtGlass:"var(--d3-bg-crtGlass)"},accent:{amber:"var(--d3-accent-main)",amberDim:"var(--d3-accent-dim)",amberGlow:"var(--d3-accent-glow)"},tag:{purple:"#b854f5",purpleBg:"rgba(184, 84, 245, 0.12)",orange:"#f59e0b",orangeBg:"rgba(245, 158, 11, 0.12)",red:"#ef4444",redBg:"rgba(239, 68, 68, 0.12)",green:"#22c55e",greenBg:"rgba(34, 197, 94, 0.12)",blue:"#3b82f6",blueBg:"rgba(59, 130, 246, 0.12)",greenGlow:"rgba(34, 197, 94, 0.6)",redGlow:"rgba(239, 68, 68, 0.6)",orangeGlow:"rgba(245, 158, 11, 0.6)"},text:{primary:"var(--d3-text-primary)",secondary:"var(--d3-text-secondary)",label:"var(--d3-text-label)",disabled:"var(--d3-text-disabled)",engraving:"var(--d3-text-engraving)",inactive:"var(--d3-text-inactive)",dimLabel:"var(--d3-text-dimLabel)",muted:"var(--d3-text-muted)",hover:"var(--d3-text-hover)"},border:{subtle:"var(--d3-border-subtle)",default:"var(--d3-border-default)",strong:"var(--d3-border-strong)"},crt:{phosphor:"var(--d3-accent-crtPhosphor)",phosphorDim:"var(--d3-accent-crtPhosphorDim)",scanline:"rgba(0, 0, 0, 0.15)",bg:"var(--d3-bg-chassis)"},led:{off:"#111111"}},g={hero:{size:"42px",weight:300,spacing:"-2px",line:1},title:{size:"28px",weight:300,spacing:"-1px",line:1.2},value:{size:"20px",weight:400,spacing:"0.02em",line:1},heading:{size:"16px",weight:600,spacing:"0.02em",line:1.4},body:{size:"14px",weight:400,spacing:"0.01em",line:1.5},compact:{size:"13px",weight:400,spacing:"0.01em",line:1.5},small:{size:"12px",weight:600,spacing:"0.03em",line:1.4},meta:{size:"11px",weight:600,spacing:"0.05em",line:1.3},label:{size:"10px",weight:700,spacing:"2px",line:1.2},engrave:{size:"9px",weight:700,spacing:"1.5px",line:1},micro:{size:"8px",weight:700,spacing:"1.5px",line:1},nano:{size:"7px",weight:700,spacing:"0.5px",line:1}};function h(a){let b=g[a];return{fontSize:b.size,fontWeight:b.weight,letterSpacing:b.spacing,lineHeight:b.line}}function i(a){let b="light"===a?"light":"dark",c=e[a],g=function(a){let b=e[a];return{"--d3-bg-app":b.bg.app,"--d3-bg-card":b.bg.card,"--d3-bg-cardHover":b.bg.cardHover,"--d3-bg-elevated":b.bg.elevated,"--d3-bg-input":b.bg.input,"--d3-bg-sidebar":b.bg.sidebar,"--d3-bg-inset":b.bg.inset,"--d3-bg-chassis":b.bg.chassis,"--d3-bg-crtBezel":b.bg.crtBezel,"--d3-bg-crtGlass":b.bg.crtGlass,"--d3-text-primary":b.text.primary,"--d3-text-secondary":b.text.secondary,"--d3-text-label":b.text.label,"--d3-text-disabled":b.text.disabled,"--d3-text-engraving":b.text.engraving,"--d3-text-inactive":b.text.inactive,"--d3-text-dimLabel":b.text.dimLabel,"--d3-text-muted":b.text.muted,"--d3-text-hover":b.text.hover,"--d3-border-subtle":b.border.subtle,"--d3-border-default":b.border.default,"--d3-border-strong":b.border.strong,"--d3-shadow-card":b.shadow.card,"--d3-shadow-buttonBase":b.shadow.buttonBase,"--d3-shadow-chassis":b.shadow.chassis,"--d3-shadow-inset":b.shadow.inset,"--d3-shadow-insetDeep":b.shadow.insetDeep,"--d3-shadow-buttonRaised":b.shadow.buttonRaised,"--d3-shadow-buttonPressed":b.shadow.buttonPressed,"--d3-shadow-screenGlow":b.shadow.screenGlow,"--d3-shadow-tooltip":b.shadow.tooltip,"--d3-accent-main":b.accent.main,"--d3-accent-dim":b.accent.dim,"--d3-accent-glow":b.accent.glow,"--d3-accent-light":b.accent.light,"--d3-accent-dark":b.accent.dark,"--d3-accent-crtPhosphor":b.accent.crtPhosphor,"--d3-accent-crtPhosphorDim":b.accent.crtPhosphorDim}}(a),h=c.accent.main,i=c.accent.dim,j=c.accent.light,k=c.accent.dark;return(0,d.A)({palette:{mode:b,primary:{main:h,light:j,dark:k,contrastText:"#fff"},secondary:{main:f.tag.purple,light:"#d084ff",dark:"#8a3cc4"},error:{main:f.tag.red},warning:{main:f.tag.orange},success:{main:f.tag.green},background:{default:c.bg.app,paper:c.bg.card},text:{primary:c.text.primary,secondary:c.text.secondary,disabled:c.text.disabled},divider:c.border.default},typography:{fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif',h4:{fontWeight:700,fontSize:"22px",lineHeight:1.3},h5:{fontWeight:700,fontSize:"18px",lineHeight:1.4},h6:{fontWeight:600,fontSize:"14px",lineHeight:1.5},subtitle1:{fontWeight:500,fontSize:"18px",lineHeight:1.4},body1:{fontSize:"14px",lineHeight:1.5},body2:{fontSize:"12px",lineHeight:1.4},button:{textTransform:"none",fontWeight:600,fontSize:"14px"},caption:{fontSize:"11px",fontWeight:600,letterSpacing:"0.1em",textTransform:"uppercase",color:c.text.label},overline:{fontSize:"11px",fontWeight:600,letterSpacing:"0.1em",textTransform:"uppercase",lineHeight:1.2}},shape:{borderRadius:22},components:{MuiCssBaseline:{styleOverrides:{":root":g,body:{backgroundColor:c.bg.app,color:c.text.primary}}},MuiButton:{defaultProps:{disableElevation:!0},styleOverrides:{root:{textTransform:"none",fontWeight:600,borderRadius:10,padding:"10px 20px",transition:"transform 0.05s linear, box-shadow 0.05s linear",boxShadow:c.shadow.buttonBase,"&:active":{transform:"translateY(2px)",boxShadow:"var(--d3-shadow-buttonPressed)"}},containedPrimary:{color:"#fff","&:hover":{backgroundColor:k}},outlined:{borderColor:c.border.strong,color:c.text.primary,"&:hover":{borderColor:h,color:h}},containedSecondary:{backgroundColor:c.bg.elevated,color:c.text.primary,"&:hover":{backgroundColor:"dark"===b?"#353539":"#e5e5e7"}}}},MuiCard:{defaultProps:{elevation:0},styleOverrides:{root:{backgroundColor:c.bg.card,borderRadius:22,borderTop:`1px solid ${c.border.subtle}`,boxShadow:c.shadow.card,transition:"background-color 0.2s ease","&:hover":{backgroundColor:c.bg.cardHover}}}},MuiChip:{styleOverrides:{root:{borderRadius:999,fontWeight:700,fontSize:"11px",letterSpacing:"0.1em",textTransform:"uppercase",height:24},colorPrimary:{backgroundColor:i,color:h},colorSecondary:{backgroundColor:f.tag.purpleBg,color:f.tag.purple},colorSuccess:{backgroundColor:f.tag.greenBg,color:f.tag.green},colorError:{backgroundColor:f.tag.redBg,color:f.tag.red},colorWarning:{backgroundColor:f.tag.orangeBg,color:f.tag.orange}}},MuiDrawer:{styleOverrides:{paper:{width:240,backgroundColor:c.bg.app,borderRight:`1px solid ${c.border.subtle}`}}},MuiListItemButton:{styleOverrides:{root:{borderRadius:10,marginLeft:8,marginRight:8,"&.Mui-selected":{backgroundColor:i,color:h,fontWeight:600,"&:hover":{backgroundColor:i}}}}},MuiDialog:{styleOverrides:{paper:{backgroundColor:c.bg.card,borderRadius:22,border:`1px solid ${c.border.subtle}`,boxShadow:"var(--d3-shadow-card)"}}},MuiTextField:{defaultProps:{size:"small",variant:"outlined"},styleOverrides:{root:{"& .MuiOutlinedInput-root":{backgroundColor:c.bg.input,borderRadius:10,color:c.text.primary,"& fieldset":{borderColor:c.border.default},"&:hover fieldset":{borderColor:c.border.strong},"&.Mui-focused fieldset":{borderColor:h}}}}},MuiSelect:{styleOverrides:{select:{color:c.text.primary},icon:{color:c.text.secondary}}},MuiInputLabel:{styleOverrides:{root:{color:c.text.secondary,"&.Mui-focused":{color:h}}}},MuiFormControlLabel:{styleOverrides:{label:{color:c.text.primary,fontSize:"14px"}}},MuiSwitch:{styleOverrides:{switchBase:{"&.Mui-checked":{color:h},"&.Mui-checked + .MuiSwitch-track":{backgroundColor:h}},track:{backgroundColor:c.text.disabled}}},MuiMenuItem:{styleOverrides:{root:{color:c.text.primary,"&.Mui-selected":{backgroundColor:i}}}},MuiTooltip:{defaultProps:{arrow:!0},styleOverrides:{tooltip:{backgroundColor:c.bg.elevated,color:c.text.primary,fontSize:"12px",borderRadius:8,border:`1px solid ${c.border.subtle}`}}},MuiTabs:{styleOverrides:{indicator:{backgroundColor:h}}},MuiTab:{styleOverrides:{root:{textTransform:"none",fontWeight:500,fontSize:"14px","&.Mui-selected":{color:h,fontWeight:600}}}}}})}let j={dark:i("dark"),light:i("light"),nord:i("nord"),solarized:i("solarized"),catppuccin:i("catppuccin"),dracula:i("dracula")};j.dark,j.light},48156:(a,b,c)=>{c.d(b,{MetalCard:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call MetalCard() from the server but MetalCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\MetalCard.tsx","MetalCard")},70150:(a,b,c)=>{c.d(b,{ButtonGroup:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call ButtonGroup() from the server but ButtonGroup is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\ButtonGroup.tsx","ButtonGroup")},80973:(a,b,c)=>{c.d(b,{Rk:()=>e.PhosphorText,Uu:()=>d.MetalCard}),c(98470),c(2608),c(85076),c(89504);var d=c(48156),e=c(42503);c(97376),c(31857),c(70150)},85076:(a,b,c)=>{c.d(b,{Led:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call Led() from the server but Led is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\Led.tsx","Led")},89504:(a,b,c)=>{c.d(b,{PhysicalButton:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call PhysicalButton() from the server but PhysicalButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\PhysicalButton.tsx","PhysicalButton")},96016:(a,b,c)=>{c.d(b,{Sidebar:()=>t});var d=c(78157),e=c(71159),f=c(90073),g=c(42987),h=c(40483),i=c(40121),j=c(86416),k=c(31684),l=c(63640),m=c(59078),n=c(19619),o=c(97128),p=c(1351),q=c(75349),r=c(83380),s=c(15005);function t(){let a=(0,e.useRouter)(),b=(0,e.usePathname)(),{t:c}=(0,r.s9)(),t=[{key:"dashboard",path:"/dashboard",label:c("nav.dashboard")??"Dashboard",icon:(0,d.jsx)(l.A,{})},{key:"meetings",path:"/meetings",label:c("nav.meetings")??"Meetings",icon:(0,d.jsx)(m.A,{})},{key:"record",path:"/record",label:c("nav.record")??"Record",icon:(0,d.jsx)(n.A,{})}];async function u(){let b=(0,s.c)();await b.auth.signOut(),a.replace("/login")}return(0,d.jsxs)(f.default,{sx:{width:240,minHeight:"100vh",bgcolor:q.sM.bg.sidebar,borderRight:`1px solid ${q.sM.border.default}`,display:"flex",flexDirection:"column"},children:[(0,d.jsx)(f.default,{sx:{p:3,borderBottom:`1px solid ${q.sM.border.default}`},children:(0,d.jsx)(p.Rk,{variant:"heading",children:"D3RO VOICE"})}),(0,d.jsx)(g.A,{sx:{flex:1,py:2},children:t.map(c=>{let e=b===c.path||b.startsWith(`${c.path}/`);return(0,d.jsx)(h.Ay,{disablePadding:!0,children:(0,d.jsxs)(i.A,{selected:e,onClick:()=>a.push(c.path),sx:{"&.Mui-selected":{bgcolor:q.sM.bg.inset,borderLeft:`3px solid ${q.sM.accent.amber}`}},children:[(0,d.jsx)(j.A,{sx:{color:e?q.sM.accent.amber:q.sM.text.label},children:c.icon}),(0,d.jsx)(k.A,{primary:c.label,primaryTypographyProps:{color:e?q.sM.text.primary:q.sM.text.secondary}})]})},c.key)})}),(0,d.jsx)(g.A,{sx:{borderTop:`1px solid ${q.sM.border.default}`},children:(0,d.jsx)(h.Ay,{disablePadding:!0,children:(0,d.jsxs)(i.A,{onClick:()=>void u(),children:[(0,d.jsx)(j.A,{sx:{color:q.sM.text.label},children:(0,d.jsx)(o.A,{})}),(0,d.jsx)(k.A,{primary:c("nav.logout")??"Logout",primaryTypographyProps:{color:q.sM.text.secondary}})]})})})]})}},97376:(a,b,c)=>{c.d(b,{MetalDial:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call MetalDial() from the server but MetalDial is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\MetalDial.tsx","MetalDial")},98470:(a,b,c)=>{c.d(b,{CrtDisplay:()=>d});let d=(0,c(25459).registerClientReference)(function(){throw Error("Attempted to call CrtDisplay() from the server but CrtDisplay is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\workspace\\voice\\packages\\ui\\src\\components\\ds\\CrtDisplay.tsx","CrtDisplay")}};