@djangocfg/ui-tools 2.1.312 → 2.1.314

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 (165) hide show
  1. package/README.md +38 -22
  2. package/dist/{DocsLayout-W5JLRNSZ.mjs → DocsLayout-ESVQZO3V.mjs} +3 -3
  3. package/dist/{DocsLayout-W5JLRNSZ.mjs.map → DocsLayout-ESVQZO3V.mjs.map} +1 -1
  4. package/dist/{DocsLayout-ZXD2CUOH.cjs → DocsLayout-KUPDWJ3G.cjs} +48 -48
  5. package/dist/{DocsLayout-ZXD2CUOH.cjs.map → DocsLayout-KUPDWJ3G.cjs.map} +1 -1
  6. package/dist/DocsLayout-MBFIB4NO.css +1 -0
  7. package/dist/JsonTree-MLET23ZA.css +1 -0
  8. package/dist/Mermaid.client-DDXWXZXY.css +1 -0
  9. package/dist/Player-M3GC3VPE.mjs +4 -0
  10. package/dist/Player-M3GC3VPE.mjs.map +1 -0
  11. package/dist/Player-ZGQKKOWI.css +66 -0
  12. package/dist/Player-ZGQKKOWI.css.map +1 -0
  13. package/dist/Player-ZL2X5LGG.cjs +13 -0
  14. package/dist/Player-ZL2X5LGG.cjs.map +1 -0
  15. package/dist/PrettyCode.client-GWFAIVFN.css +1 -0
  16. package/dist/{chunk-CXVGN6ZW.cjs → chunk-DFTVB66S.cjs} +7 -6
  17. package/dist/chunk-DFTVB66S.cjs.map +1 -0
  18. package/dist/{chunk-2QY3LJR6.mjs → chunk-EUADAUBQ.mjs} +5 -4
  19. package/dist/chunk-EUADAUBQ.mjs.map +1 -0
  20. package/dist/chunk-FX2QFYWF.mjs +2059 -0
  21. package/dist/chunk-FX2QFYWF.mjs.map +1 -0
  22. package/dist/{chunk-6HNAPVZ2.mjs → chunk-GBLQTHWT.mjs} +11 -13
  23. package/dist/chunk-GBLQTHWT.mjs.map +1 -0
  24. package/dist/{chunk-FYLR232K.cjs → chunk-S44PW6NK.cjs} +11 -13
  25. package/dist/chunk-S44PW6NK.cjs.map +1 -0
  26. package/dist/chunk-ZLQHUZDU.cjs +2061 -0
  27. package/dist/chunk-ZLQHUZDU.cjs.map +1 -0
  28. package/dist/components-WYEZL5TE.cjs +26 -0
  29. package/dist/{components-3RTH76CV.cjs.map → components-WYEZL5TE.cjs.map} +1 -1
  30. package/dist/components-ZAGG2PBO.mjs +5 -0
  31. package/dist/{components-5GVVL2Q6.mjs.map → components-ZAGG2PBO.mjs.map} +1 -1
  32. package/dist/index.cjs +36 -220
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.css +66 -0
  35. package/dist/index.css.map +1 -1
  36. package/dist/index.d.cts +44 -500
  37. package/dist/index.d.ts +44 -500
  38. package/dist/index.mjs +16 -62
  39. package/dist/index.mjs.map +1 -1
  40. package/package.json +6 -6
  41. package/src/components/markdown/MarkdownMessage/ActionRow.tsx +48 -0
  42. package/src/components/markdown/MarkdownMessage/ChatMessageRow.tsx +97 -0
  43. package/src/components/markdown/MarkdownMessage/CodeBlock.tsx +9 -13
  44. package/src/components/markdown/MarkdownMessage/MarkdownMessage.story.tsx +77 -2
  45. package/src/components/markdown/MarkdownMessage/MarkdownMessage.tsx +2 -3
  46. package/src/components/markdown/MarkdownMessage/README.md +72 -0
  47. package/src/components/markdown/MarkdownMessage/components.tsx +3 -3
  48. package/src/components/markdown/MarkdownMessage/index.ts +6 -0
  49. package/src/index.ts +2 -11
  50. package/src/tools/AudioPlayer/AudioPlayer.story.tsx +454 -107
  51. package/src/tools/AudioPlayer/Player.tsx +80 -0
  52. package/src/tools/AudioPlayer/PlayerShell.tsx +122 -0
  53. package/src/tools/AudioPlayer/README.md +139 -204
  54. package/src/tools/AudioPlayer/audio/audioContext.ts +39 -0
  55. package/src/tools/AudioPlayer/audio/decodePeaks.ts +36 -0
  56. package/src/tools/AudioPlayer/audio/index.ts +4 -0
  57. package/src/tools/AudioPlayer/audio/mediaElementSourceCache.ts +20 -0
  58. package/src/tools/AudioPlayer/audio/peaksCache.ts +37 -0
  59. package/src/tools/AudioPlayer/context/AudioRefContext.tsx +9 -0
  60. package/src/tools/AudioPlayer/context/ControlsContext.tsx +7 -0
  61. package/src/tools/AudioPlayer/context/LevelsContext.tsx +7 -0
  62. package/src/tools/AudioPlayer/context/MetaContext.tsx +16 -0
  63. package/src/tools/AudioPlayer/context/PlayerProvider.tsx +314 -0
  64. package/src/tools/AudioPlayer/context/StateContext.tsx +7 -0
  65. package/src/tools/AudioPlayer/context/index.ts +16 -15
  66. package/src/tools/AudioPlayer/context/selectors.ts +36 -0
  67. package/src/tools/AudioPlayer/hooks/index.ts +12 -39
  68. package/src/tools/AudioPlayer/hooks/useActivePlayer.ts +31 -0
  69. package/src/tools/AudioPlayer/hooks/useAnalyser.ts +62 -0
  70. package/src/tools/AudioPlayer/hooks/useAudioElementEvents.ts +102 -0
  71. package/src/tools/AudioPlayer/hooks/useKeyboardShortcuts.ts +91 -0
  72. package/src/tools/AudioPlayer/hooks/useMediaSession.ts +74 -0
  73. package/src/tools/AudioPlayer/hooks/usePeaks.ts +83 -0
  74. package/src/tools/AudioPlayer/hooks/usePlayerPreferences.ts +21 -0
  75. package/src/tools/AudioPlayer/hooks/usePlayheadLoop.ts +77 -0
  76. package/src/tools/AudioPlayer/hooks/useResizeObserver.ts +20 -0
  77. package/src/tools/AudioPlayer/hooks/useThemeWatcher.ts +22 -0
  78. package/src/tools/AudioPlayer/index.ts +63 -134
  79. package/src/tools/AudioPlayer/lazy.tsx +8 -97
  80. package/src/tools/AudioPlayer/parts/Controls/ControlsRow.tsx +30 -0
  81. package/src/tools/AudioPlayer/parts/Controls/IconButton.tsx +62 -0
  82. package/src/tools/AudioPlayer/parts/Controls/LoopButton.tsx +33 -0
  83. package/src/tools/AudioPlayer/parts/Controls/PlayButton.tsx +86 -0
  84. package/src/tools/AudioPlayer/parts/Controls/SkipButton.tsx +17 -0
  85. package/src/tools/AudioPlayer/parts/Controls/VolumeControl.tsx +171 -0
  86. package/src/tools/AudioPlayer/parts/Controls/index.ts +6 -0
  87. package/src/tools/AudioPlayer/parts/Cover/Cover.tsx +24 -0
  88. package/src/tools/AudioPlayer/parts/Cover/CoverPlaceholder.tsx +27 -0
  89. package/src/tools/AudioPlayer/parts/Cover/ReactivePulse.tsx +66 -0
  90. package/src/tools/AudioPlayer/parts/Cover/index.ts +3 -0
  91. package/src/tools/AudioPlayer/parts/ErrorState/ErrorState.tsx +35 -0
  92. package/src/tools/AudioPlayer/parts/ErrorState/index.ts +1 -0
  93. package/src/tools/AudioPlayer/parts/Layout/CompactLayout.tsx +25 -0
  94. package/src/tools/AudioPlayer/parts/Layout/DefaultLayout.tsx +48 -0
  95. package/src/tools/AudioPlayer/parts/Layout/index.ts +2 -0
  96. package/src/tools/AudioPlayer/parts/Meta/Artist.tsx +14 -0
  97. package/src/tools/AudioPlayer/parts/Meta/TimeDisplay.tsx +49 -0
  98. package/src/tools/AudioPlayer/parts/Meta/Title.tsx +13 -0
  99. package/src/tools/AudioPlayer/parts/Meta/index.ts +3 -0
  100. package/src/tools/AudioPlayer/parts/Skeleton/CoverSkeleton.tsx +13 -0
  101. package/src/tools/AudioPlayer/parts/Skeleton/MetaSkeleton.tsx +10 -0
  102. package/src/tools/AudioPlayer/parts/Skeleton/index.ts +2 -0
  103. package/src/tools/AudioPlayer/parts/Waveform/BarsWaveform.tsx +48 -0
  104. package/src/tools/AudioPlayer/parts/Waveform/LiveWaveform.tsx +95 -0
  105. package/src/tools/AudioPlayer/parts/Waveform/PeaksWaveform.tsx +100 -0
  106. package/src/tools/AudioPlayer/parts/Waveform/ProgressBar.tsx +76 -0
  107. package/src/tools/AudioPlayer/parts/Waveform/Waveform.tsx +74 -0
  108. package/src/tools/AudioPlayer/parts/Waveform/WaveformSkeleton.tsx +16 -0
  109. package/src/tools/AudioPlayer/parts/Waveform/index.ts +8 -0
  110. package/src/tools/AudioPlayer/parts/Waveform/waveformInteraction.ts +106 -0
  111. package/src/tools/AudioPlayer/parts/Waveform/waveformRenderer.ts +91 -0
  112. package/src/tools/AudioPlayer/parts/index.ts +1 -0
  113. package/src/tools/AudioPlayer/store/activePlayerBus.ts +63 -0
  114. package/src/tools/AudioPlayer/store/createLevelsStore.ts +37 -0
  115. package/src/tools/AudioPlayer/store/index.ts +16 -0
  116. package/src/tools/AudioPlayer/store/preferencesStore.ts +104 -0
  117. package/src/tools/AudioPlayer/styles/webview-safe.css +77 -0
  118. package/src/tools/AudioPlayer/types.ts +95 -0
  119. package/src/tools/AudioPlayer/utils/bucketize.ts +27 -0
  120. package/src/tools/AudioPlayer/utils/clamp.ts +5 -0
  121. package/src/tools/AudioPlayer/utils/dpr.ts +19 -0
  122. package/src/tools/AudioPlayer/utils/formatTime.ts +12 -8
  123. package/src/tools/AudioPlayer/utils/index.ts +4 -5
  124. package/src/tools/AudioPlayer/utils/readCssVar.ts +7 -0
  125. package/src/tools/AudioPlayer/utils/resolveCanvasColor.ts +28 -0
  126. package/src/tools/index.ts +5 -75
  127. package/dist/chunk-2QY3LJR6.mjs.map +0 -1
  128. package/dist/chunk-6HNAPVZ2.mjs.map +0 -1
  129. package/dist/chunk-CXVGN6ZW.cjs.map +0 -1
  130. package/dist/chunk-F2N7P5XU.cjs +0 -30
  131. package/dist/chunk-F2N7P5XU.cjs.map +0 -1
  132. package/dist/chunk-FYLR232K.cjs.map +0 -1
  133. package/dist/chunk-HMHIVEMS.mjs +0 -1619
  134. package/dist/chunk-HMHIVEMS.mjs.map +0 -1
  135. package/dist/chunk-JWB2EWQO.mjs +0 -5
  136. package/dist/chunk-JWB2EWQO.mjs.map +0 -1
  137. package/dist/chunk-YZX6FH3H.cjs +0 -1656
  138. package/dist/chunk-YZX6FH3H.cjs.map +0 -1
  139. package/dist/components-3RTH76CV.cjs +0 -27
  140. package/dist/components-5GVVL2Q6.mjs +0 -5
  141. package/dist/components-CPHOUQ5F.cjs +0 -46
  142. package/dist/components-CPHOUQ5F.cjs.map +0 -1
  143. package/dist/components-OTK43IMD.mjs +0 -6
  144. package/dist/components-OTK43IMD.mjs.map +0 -1
  145. package/src/tools/AudioPlayer/components/HybridAudioPlayer.tsx +0 -225
  146. package/src/tools/AudioPlayer/components/HybridCompactPlayer.tsx +0 -163
  147. package/src/tools/AudioPlayer/components/HybridSimplePlayer.tsx +0 -284
  148. package/src/tools/AudioPlayer/components/HybridWaveform.tsx +0 -286
  149. package/src/tools/AudioPlayer/components/ReactiveCover/AudioReactiveCover.tsx +0 -151
  150. package/src/tools/AudioPlayer/components/ReactiveCover/effects/GlowEffect.tsx +0 -110
  151. package/src/tools/AudioPlayer/components/ReactiveCover/effects/MeshEffect.tsx +0 -58
  152. package/src/tools/AudioPlayer/components/ReactiveCover/effects/OrbsEffect.tsx +0 -45
  153. package/src/tools/AudioPlayer/components/ReactiveCover/effects/SpotlightEffect.tsx +0 -82
  154. package/src/tools/AudioPlayer/components/ReactiveCover/effects/index.ts +0 -8
  155. package/src/tools/AudioPlayer/components/ReactiveCover/index.ts +0 -6
  156. package/src/tools/AudioPlayer/components/index.ts +0 -23
  157. package/src/tools/AudioPlayer/context/HybridAudioProvider.tsx +0 -158
  158. package/src/tools/AudioPlayer/effects/index.ts +0 -412
  159. package/src/tools/AudioPlayer/hooks/useAudioBus.ts +0 -76
  160. package/src/tools/AudioPlayer/hooks/useHybridAudio.ts +0 -403
  161. package/src/tools/AudioPlayer/hooks/useHybridAudioAnalysis.ts +0 -96
  162. package/src/tools/AudioPlayer/hooks/useVisualization.tsx +0 -207
  163. package/src/tools/AudioPlayer/types/effects.ts +0 -73
  164. package/src/tools/AudioPlayer/types/index.ts +0 -27
  165. package/src/tools/AudioPlayer/utils/debug.ts +0 -14
@@ -1,207 +0,0 @@
1
- 'use client';
2
-
3
- /**
4
- * useVisualization - Hook for managing audio visualization settings
5
- *
6
- * Persists settings in localStorage for user preferences
7
- * Uses React Context for shared state between components
8
- */
9
-
10
- import { createContext, useContext, useCallback, useMemo, type ReactNode } from 'react';
11
- import { useLocalStorage } from '../../_shared';
12
-
13
- // =============================================================================
14
- // TYPES
15
- // =============================================================================
16
-
17
- export type VisualizationVariant = 'glow' | 'orbs' | 'spotlight' | 'mesh' | 'none';
18
- export type VisualizationIntensity = 'subtle' | 'medium' | 'strong';
19
- export type VisualizationColorScheme = 'primary' | 'vibrant' | 'cool' | 'warm';
20
-
21
- export interface VisualizationSettings {
22
- /** Enable reactive cover animation */
23
- enabled: boolean;
24
- /** Visual effect variant */
25
- variant: VisualizationVariant;
26
- /** Effect intensity */
27
- intensity: VisualizationIntensity;
28
- /** Color scheme */
29
- colorScheme: VisualizationColorScheme;
30
- /** Playback volume (0-1) */
31
- volume: number;
32
- /** Loop playback */
33
- isLooping: boolean;
34
- }
35
-
36
- export interface UseVisualizationReturn {
37
- /** Current settings */
38
- settings: VisualizationSettings;
39
- /** Toggle visualization on/off */
40
- toggle: () => void;
41
- /** Set specific setting */
42
- setSetting: <K extends keyof VisualizationSettings>(
43
- key: K,
44
- value: VisualizationSettings[K]
45
- ) => void;
46
- /** Cycle to next variant */
47
- nextVariant: () => void;
48
- /** Cycle to next intensity */
49
- nextIntensity: () => void;
50
- /** Cycle to next color scheme */
51
- nextColorScheme: () => void;
52
- /** Reset to defaults */
53
- reset: () => void;
54
- }
55
-
56
- // Backward compatibility alias
57
- export type UseAudioVisualizationReturn = UseVisualizationReturn;
58
-
59
- // =============================================================================
60
- // CONSTANTS
61
- // =============================================================================
62
-
63
- const STORAGE_KEY = 'audio-player-settings';
64
-
65
- const DEFAULT_SETTINGS: VisualizationSettings = {
66
- enabled: true,
67
- variant: 'spotlight',
68
- intensity: 'medium',
69
- colorScheme: 'primary',
70
- volume: 1,
71
- isLooping: false,
72
- };
73
-
74
- const VARIANTS: VisualizationVariant[] = ['spotlight', 'glow', 'orbs', 'mesh', 'none'];
75
- const INTENSITIES: VisualizationIntensity[] = ['subtle', 'medium', 'strong'];
76
- const COLOR_SCHEMES: VisualizationColorScheme[] = ['primary', 'vibrant', 'cool', 'warm'];
77
-
78
- // =============================================================================
79
- // CONTEXT
80
- // =============================================================================
81
-
82
- const VisualizationContext = createContext<UseVisualizationReturn | null>(null);
83
-
84
- // =============================================================================
85
- // PROVIDER
86
- // =============================================================================
87
-
88
- export interface VisualizationProviderProps {
89
- children: ReactNode;
90
- }
91
-
92
- export function VisualizationProvider({ children }: VisualizationProviderProps) {
93
- const value = useVisualizationState();
94
- return (
95
- <VisualizationContext.Provider value={value}>
96
- {children}
97
- </VisualizationContext.Provider>
98
- );
99
- }
100
-
101
- // =============================================================================
102
- // INTERNAL HOOK (creates the actual state)
103
- // =============================================================================
104
-
105
- function useVisualizationState(): UseVisualizationReturn {
106
- const [settings, setSettings] = useLocalStorage<VisualizationSettings>(
107
- STORAGE_KEY,
108
- DEFAULT_SETTINGS
109
- );
110
-
111
- const toggle = useCallback(() => {
112
- setSettings((prev) => ({ ...prev, enabled: !prev.enabled }));
113
- }, [setSettings]);
114
-
115
- const setSetting = useCallback(
116
- <K extends keyof VisualizationSettings>(
117
- key: K,
118
- value: VisualizationSettings[K]
119
- ) => {
120
- setSettings((prev) => ({ ...prev, [key]: value }));
121
- },
122
- [setSettings]
123
- );
124
-
125
- const nextVariant = useCallback(() => {
126
- setSettings((prev) => {
127
- const currentIndex = VARIANTS.indexOf(prev.variant);
128
- const nextIndex = (currentIndex + 1) % VARIANTS.length;
129
- return { ...prev, variant: VARIANTS[nextIndex] };
130
- });
131
- }, [setSettings]);
132
-
133
- const nextIntensity = useCallback(() => {
134
- setSettings((prev) => {
135
- const currentIndex = INTENSITIES.indexOf(prev.intensity);
136
- const nextIndex = (currentIndex + 1) % INTENSITIES.length;
137
- return { ...prev, intensity: INTENSITIES[nextIndex] };
138
- });
139
- }, [setSettings]);
140
-
141
- const nextColorScheme = useCallback(() => {
142
- setSettings((prev) => {
143
- const currentIndex = COLOR_SCHEMES.indexOf(prev.colorScheme);
144
- const nextIndex = (currentIndex + 1) % COLOR_SCHEMES.length;
145
- return { ...prev, colorScheme: COLOR_SCHEMES[nextIndex] };
146
- });
147
- }, [setSettings]);
148
-
149
- const reset = useCallback(() => {
150
- setSettings(DEFAULT_SETTINGS);
151
- }, [setSettings]);
152
-
153
- return useMemo(
154
- () => ({
155
- settings,
156
- toggle,
157
- setSetting,
158
- nextVariant,
159
- nextIntensity,
160
- nextColorScheme,
161
- reset,
162
- }),
163
- [settings, toggle, setSetting, nextVariant, nextIntensity, nextColorScheme, reset]
164
- );
165
- }
166
-
167
- // =============================================================================
168
- // HOOK (uses context when available)
169
- // =============================================================================
170
-
171
- export function useVisualization(): UseVisualizationReturn {
172
- const context = useContext(VisualizationContext);
173
-
174
- // Always call the fallback hooks (React hooks rules require consistent calls)
175
- const fallbackState = useVisualizationState();
176
-
177
- // If inside a provider, use shared context; otherwise use fallback
178
- return context ?? fallbackState;
179
- }
180
-
181
- // Backward compatibility alias
182
- export const useAudioVisualization = useVisualization;
183
-
184
- // =============================================================================
185
- // VARIANT INFO
186
- // =============================================================================
187
-
188
- export const VARIANT_INFO: Record<VisualizationVariant, { label: string; icon: string }> = {
189
- spotlight: { label: 'Spotlight', icon: '💫' },
190
- glow: { label: 'Glow', icon: '✨' },
191
- orbs: { label: 'Orbs', icon: '🔮' },
192
- mesh: { label: 'Mesh', icon: '🌈' },
193
- none: { label: 'Off', icon: '⭕' },
194
- };
195
-
196
- export const INTENSITY_INFO: Record<VisualizationIntensity, { label: string }> = {
197
- subtle: { label: 'Subtle' },
198
- medium: { label: 'Medium' },
199
- strong: { label: 'Strong' },
200
- };
201
-
202
- export const COLOR_SCHEME_INFO: Record<VisualizationColorScheme, { label: string; preview: string }> = {
203
- primary: { label: 'Primary', preview: '🔵' },
204
- vibrant: { label: 'Vibrant', preview: '🌈' },
205
- cool: { label: 'Cool', preview: '💙' },
206
- warm: { label: 'Warm', preview: '🔥' },
207
- };
@@ -1,73 +0,0 @@
1
- /**
2
- * Effect-related types for audio-reactive visualizations
3
- */
4
-
5
- // =============================================================================
6
- // EFFECT TYPES
7
- // =============================================================================
8
-
9
- export type EffectVariant = 'glow' | 'orbs' | 'spotlight' | 'mesh';
10
- export type EffectIntensity = 'subtle' | 'medium' | 'strong';
11
- export type EffectColorScheme = 'primary' | 'vibrant' | 'cool' | 'warm';
12
-
13
- export interface AudioLevels {
14
- bass: number;
15
- mid: number;
16
- high: number;
17
- overall: number;
18
- }
19
-
20
- export interface EffectConfig {
21
- opacity: number;
22
- scale: number;
23
- blur: string;
24
- }
25
-
26
- export interface EffectColors {
27
- colors: string[];
28
- hueShift: number;
29
- }
30
-
31
- export interface EffectLayer {
32
- inset: number;
33
- opacity: number;
34
- scale: number;
35
- background: string;
36
- blur: string;
37
- animation?: string;
38
- }
39
-
40
- export interface Orb {
41
- x: number;
42
- y: number;
43
- size: number;
44
- color: string;
45
- opacity: number;
46
- scale: number;
47
- }
48
-
49
- export interface MeshGradient {
50
- width: string;
51
- height: string;
52
- top?: string;
53
- bottom?: string;
54
- left?: string;
55
- right?: string;
56
- color: string;
57
- opacity: number;
58
- scale: number;
59
- rotation: number;
60
- blur: string;
61
- isCenter?: boolean;
62
- }
63
-
64
- export interface SpotlightData {
65
- rotation: number;
66
- inset: number;
67
- colors: Array<{ color: string; opacity: number }>;
68
- pulseInset: number;
69
- pulseOpacity: number;
70
- pulseScale: number;
71
- ringOpacity: number;
72
- ringScale: number;
73
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * AudioPlayer types
3
- */
4
-
5
- // Equalizer options
6
- export interface EqualizerOptions {
7
- barCount?: number;
8
- height?: number;
9
- gap?: number;
10
- showPeaks?: boolean;
11
- barColor?: string;
12
- peakColor?: string;
13
- }
14
-
15
- // Effect types
16
- export type {
17
- EffectVariant,
18
- EffectIntensity,
19
- EffectColorScheme,
20
- AudioLevels,
21
- EffectConfig,
22
- EffectColors,
23
- EffectLayer,
24
- Orb,
25
- MeshGradient,
26
- SpotlightData,
27
- } from './effects';
@@ -1,14 +0,0 @@
1
- 'use client';
2
-
3
- /**
4
- * AudioPlayer Debug Logger
5
- *
6
- * Uses universal logger with media-specific helpers.
7
- * Logs go to both console (dev) and zustand store (for Console panel).
8
- */
9
-
10
- import { createMediaLogger } from '@djangocfg/ui-core/lib';
11
-
12
- export const audioDebug = createMediaLogger('AudioPlayer');
13
-
14
- export default audioDebug;