@djangocfg/ui-tools 2.1.202 → 2.1.204

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 (33) hide show
  1. package/README.md +22 -4
  2. package/dist/{chunk-7HP3GZFT.mjs → chunk-CDP3K6BI.mjs} +123 -11
  3. package/dist/chunk-CDP3K6BI.mjs.map +1 -0
  4. package/dist/{chunk-KHHTBDWW.cjs → chunk-HJMDAPQH.cjs} +124 -9
  5. package/dist/chunk-HJMDAPQH.cjs.map +1 -0
  6. package/dist/components-3RJ5Y3TB.mjs +5 -0
  7. package/dist/{components-7L3KMPQ5.cjs.map → components-3RJ5Y3TB.mjs.map} +1 -1
  8. package/dist/components-F2ZYYCH4.cjs +46 -0
  9. package/dist/{components-IPSHDNXP.mjs.map → components-F2ZYYCH4.cjs.map} +1 -1
  10. package/dist/index.cjs +56 -36
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +68 -3
  13. package/dist/index.d.ts +68 -3
  14. package/dist/index.mjs +15 -4
  15. package/dist/index.mjs.map +1 -1
  16. package/package.json +6 -6
  17. package/src/index.ts +6 -0
  18. package/src/tools/AudioPlayer/AudioPlayer.story.tsx +26 -5
  19. package/src/tools/AudioPlayer/README.md +38 -2
  20. package/src/tools/AudioPlayer/components/HybridCompactPlayer.tsx +153 -0
  21. package/src/tools/AudioPlayer/components/HybridSimplePlayer.tsx +9 -5
  22. package/src/tools/AudioPlayer/components/ReactiveCover/AudioReactiveCover.tsx +3 -1
  23. package/src/tools/AudioPlayer/components/index.ts +1 -0
  24. package/src/tools/AudioPlayer/hooks/index.ts +4 -0
  25. package/src/tools/AudioPlayer/hooks/useAudioBus.ts +76 -0
  26. package/src/tools/AudioPlayer/hooks/useHybridAudio.ts +18 -2
  27. package/src/tools/AudioPlayer/index.ts +6 -0
  28. package/src/tools/AudioPlayer/lazy.tsx +21 -1
  29. package/src/tools/Uploader/hooks/useClipboardPaste.ts +15 -4
  30. package/dist/chunk-7HP3GZFT.mjs.map +0 -1
  31. package/dist/chunk-KHHTBDWW.cjs.map +0 -1
  32. package/dist/components-7L3KMPQ5.cjs +0 -42
  33. package/dist/components-IPSHDNXP.mjs +0 -5
package/dist/index.d.ts CHANGED
@@ -6,10 +6,10 @@ import { Language } from 'prism-react-renderer';
6
6
  export { Language } from 'prism-react-renderer';
7
7
  import { RJSFSchema, UiSchema, WidgetProps, FieldTemplateProps, ObjectFieldTemplateProps, ArrayFieldTemplateProps, ArrayFieldItemTemplateProps, ErrorListProps } from '@rjsf/utils';
8
8
  import { FormProps, IChangeEvent } from '@rjsf/core';
9
+ import * as zustand from 'zustand';
9
10
  import { CommonExternalProps } from 'react-json-tree';
10
11
  import { MediaPlayerInstance } from '@vidstack/react';
11
12
  import * as zustand_middleware from 'zustand/middleware';
12
- import * as zustand from 'zustand';
13
13
 
14
14
  interface LoadingFallbackProps {
15
15
  /** Minimum height of the loading container */
@@ -640,12 +640,32 @@ declare function calculateSpotlight(levels: AudioLevels, config: EffectConfig$1,
640
640
  */
641
641
  declare const EFFECT_ANIMATIONS = "\n @keyframes spotlight-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n @keyframes orb-float-1 {\n 0%, 100% { transform: translate(-50%, -50%) translateY(0); }\n 50% { transform: translate(-50%, -50%) translateY(-15px); }\n }\n\n @keyframes orb-float-2 {\n 0%, 100% { transform: translate(-50%, -50%) translateX(0); }\n 50% { transform: translate(-50%, -50%) translateX(15px); }\n }\n\n @keyframes orb-float-3 {\n 0%, 100% { transform: translate(-50%, -50%) translate(0, 0); }\n 33% { transform: translate(-50%, -50%) translate(10px, -10px); }\n 66% { transform: translate(-50%, -50%) translate(-10px, 10px); }\n }\n\n @keyframes orb-float-4 {\n 0%, 100% { transform: translate(-50%, -50%) translate(0, 0); }\n 50% { transform: translate(-50%, -50%) translate(-15px, -10px); }\n }\n\n @keyframes mesh-float-1 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 25% { transform: translate(-5%, 10%) scale(1.05); }\n 50% { transform: translate(5%, 5%) scale(0.95); }\n 75% { transform: translate(-3%, -5%) scale(1.02); }\n }\n\n @keyframes mesh-float-2 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 33% { transform: translate(8%, -8%) scale(1.08); }\n 66% { transform: translate(-6%, 6%) scale(0.92); }\n }\n\n @keyframes mesh-float-3 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 50% { transform: translate(10%, 10%) scale(1.1); }\n }\n\n @keyframes mesh-float-4 {\n 0%, 100% { transform: translate(0, 0) scale(1) rotate(0deg); }\n 25% { transform: translate(10%, -5%) scale(1.1) rotate(5deg); }\n 50% { transform: translate(-5%, 10%) scale(0.95) rotate(-5deg); }\n 75% { transform: translate(-10%, -10%) scale(1.05) rotate(3deg); }\n }\n\n @keyframes mesh-pulse {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.5; }\n }\n\n @keyframes glow-breathe {\n 0%, 100% { opacity: 0.6; transform: scale(1); }\n 50% { opacity: 1; transform: scale(1.05); }\n }\n\n @keyframes glow-rotate {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n @keyframes sparkle-move {\n 0% { opacity: 0; transform: scale(0.8); }\n 50% { opacity: 1; }\n 100% { opacity: 0; transform: scale(1.2); }\n }\n";
642
642
 
643
+ interface AudioBusStore {
644
+ /** ID of the currently active (playing) player, null if none */
645
+ activeId: string | null;
646
+ setActiveId: (id: string | null) => void;
647
+ }
648
+ declare const useAudioBusStore: zustand.UseBoundStore<zustand.StoreApi<AudioBusStore>>;
649
+ interface UseAudioBusReturn {
650
+ /** Broadcast: this player is now playing — all others should stop */
651
+ announce: () => void;
652
+ /** Release: this player stopped (clears activeId if it was ours) */
653
+ release: () => void;
654
+ }
655
+ /**
656
+ * @param playerId Stable unique ID for this player instance
657
+ * @param onStop Called when another player announces — should pause this player
658
+ */
659
+ declare function useAudioBus(playerId: string, onStop: () => void): UseAudioBusReturn;
660
+
643
661
  interface UseHybridAudioOptions {
644
662
  src: string;
645
663
  autoPlay?: boolean;
646
664
  initialVolume?: number;
647
665
  loop?: boolean;
648
666
  crossOrigin?: 'anonymous' | 'use-credentials';
667
+ /** Set to true to opt out of global audio bus (player won't stop others and won't be stopped) */
668
+ excludeFromBus?: boolean;
649
669
  onPlay?: () => void;
650
670
  onPause?: () => void;
651
671
  onEnded?: () => void;
@@ -793,6 +813,44 @@ interface HybridSimplePlayerProps {
793
813
  }
794
814
  declare function HybridSimplePlayer(props: HybridSimplePlayerProps): react_jsx_runtime.JSX.Element;
795
815
 
816
+ /**
817
+ * HybridCompactPlayer - Single-row audio player
818
+ *
819
+ * Designed for tight spaces: play/pause + waveform + timer.
820
+ * No cover art, no volume slider, no skip buttons.
821
+ *
822
+ * @example
823
+ * <HybridCompactPlayer src="https://example.com/audio.mp3" title="Rain & Thunder" />
824
+ *
825
+ * @example
826
+ * // Lazy-loaded (preferred in app)
827
+ * <LazyHybridCompactPlayer src={url} autoPlay />
828
+ */
829
+
830
+ interface HybridCompactPlayerProps {
831
+ /** Audio source URL */
832
+ src: string;
833
+ /** Track title (shown as tooltip / aria-label) */
834
+ title?: string;
835
+ /** Auto-play on load */
836
+ autoPlay?: boolean;
837
+ /** Loop playback */
838
+ loop?: boolean;
839
+ /** Initial volume (0-1) */
840
+ initialVolume?: number;
841
+ /** Waveform visualization mode */
842
+ waveformMode?: 'frequency' | 'static';
843
+ /** Show timer */
844
+ showTimer?: boolean;
845
+ /** Additional class name */
846
+ className?: string;
847
+ /** Callbacks */
848
+ onPlay?: () => void;
849
+ onPause?: () => void;
850
+ onEnded?: () => void;
851
+ onError?: (error: Error) => void;
852
+ }
853
+
796
854
  interface HybridWaveformProps {
797
855
  /** Visualization mode */
798
856
  mode?: 'frequency' | 'static';
@@ -819,7 +877,8 @@ declare const HybridWaveform: React$1.NamedExoticComponent<HybridWaveformProps>;
819
877
 
820
878
  interface AudioReactiveCoverProps {
821
879
  children: ReactNode;
822
- size?: 'sm' | 'md' | 'lg';
880
+ /** 'sm' | 'md' | 'lg' = fixed sizes; 'full' = stretch to container width (aspect-square) */
881
+ size?: 'sm' | 'md' | 'lg' | 'full';
823
882
  variant?: EffectVariant;
824
883
  intensity?: EffectIntensity;
825
884
  colorScheme?: EffectColorScheme;
@@ -875,6 +934,12 @@ declare const LazyHybridAudioPlayer: React$1.ComponentType<HybridAudioPlayerProp
875
934
  * Automatically shows loading state while WaveSurfer loads (~200KB)
876
935
  */
877
936
  declare const LazyHybridSimplePlayer: React$1.ComponentType<HybridSimplePlayerProps>;
937
+ /**
938
+ * LazyHybridCompactPlayer - Lazy-loaded compact single-row audio player
939
+ *
940
+ * Use in tight spaces: play/pause + waveform + timer in one line.
941
+ */
942
+ declare const LazyHybridCompactPlayer: React$1.ComponentType<HybridCompactPlayerProps>;
878
943
 
879
944
  /**
880
945
  * Video source type definitions
@@ -2251,4 +2316,4 @@ declare function useBlobUrlCleanup(key: string | null): void;
2251
2316
  */
2252
2317
  declare function generateContentKey(content: ArrayBuffer): string;
2253
2318
 
2254
- export { ArrayFieldItemTemplate, ArrayFieldTemplate, type AspectRatioValue, type AudioLevels, AudioReactiveCover, type AudioReactiveCoverProps, BaseInputTemplate, type BlobSource, COLOR_SCHEMES, COLOR_SCHEME_INFO, CardLoadingFallback, CheckboxWidget, ColorWidget, type CreateLazyComponentOptions, type CreateVideoErrorFallbackOptions, CronScheduler, type CronSchedulerContextValue, type CronSchedulerProps, CronSchedulerProvider, type CronSchedulerState, CustomInput, type DASHSource, type DataUrlSource, DayChips, EFFECT_ANIMATIONS, type EffectColorScheme, type EffectColors, type EffectConfig$1 as EffectConfig, type EffectIntensity, type EffectLayer, type EffectVariant, type EqualizerOptions, type ErrorFallbackProps, ErrorListTemplate, FieldTemplate, GlowEffect, type GlowEffectData, type HLSSource, type HybridAudioContextValue, type HybridAudioControls, HybridAudioPlayer, type HybridAudioPlayerProps, HybridAudioProvider, type HybridAudioProviderProps, type HybridAudioState, HybridSimplePlayer, type HybridSimplePlayerProps, HybridWaveform, type HybridWaveformProps, type HybridWebAudioAPI, INTENSITY_CONFIG, INTENSITY_INFO, type ImageFile, ImageViewer, type ImageViewerProps, JsonSchemaForm, type JsonSchemaFormProps, JsonTreeComponent as JsonTree, type JsonTreeConfig, type JsonTreeProps, LazyCronScheduler, LazyHybridAudioPlayer, LazyHybridSimplePlayer, LazyImageViewer, LazyJsonSchemaForm, LazyJsonTree, LazyLottiePlayer, LazyMapContainer, LazyMapView, LazyMermaid, LazyOpenapiViewer, LazyPrettyCode, LazyVideoPlayer, LazyWrapper, type LazyWrapperProps, LoadingFallback, type LoadingFallbackProps, type LottieDirection, LottiePlayer, type LottiePlayerProps, type LottieSize, type LottieSpeed, type MapContainerProps, MapLoadingFallback, type MapStyleKey, type MapViewport, MarkdownMessage, type MarkdownMessageProps, type MarkerData, Mermaid, type MermaidProps, MeshEffect, type MonthDay, MonthDayGrid, NativeProvider, NumberWidget, ObjectFieldTemplate, Playground as OpenapiViewer, OrbsEffect, type PlayerMode, type PlaygroundConfig, type PlaygroundProps$1 as PlaygroundProps, PrettyCode, type PrettyCodeProps$1 as PrettyCodeProps, type ResolveFileSourceOptions, SchedulePreview, type ScheduleType, ScheduleTypeSelector, type SchemaSource, SelectWidget, type SimpleStreamSource, SliderWidget, Spinner, SpotlightEffect, StreamProvider, type StreamSource, SwitchWidget, TextWidget, TimeSelector, type UrlSource, type UseAudioVisualizationReturn, type UseCollapsibleContentOptions, type UseCollapsibleContentResult, type UseHybridAudioOptions, type UseHybridAudioReturn, type UseLottieOptions, type UseLottieReturn, type UseVisualizationReturn, VARIANT_INFO, VideoControls, VideoErrorFallback, type VideoErrorFallbackProps, VideoPlayer, type VideoPlayerContextValue, type VideoPlayerProps, VideoPlayerProvider, type VideoPlayerProviderProps, type VideoPlayerRef, type VideoSourceUnion, VidstackProvider, type VimeoSource, type VisualizationColorScheme, type VisualizationIntensity, VisualizationProvider, type VisualizationProviderProps, type VisualizationSettings, type VisualizationVariant, type WeekDay, type YouTubeSource, buildCron, calculateGlowLayers, calculateMeshGradients, calculateOrbs, calculateSpotlight, createLazyComponent, createVideoErrorFallback, formatTime, generateContentKey, getColors, getEffectConfig, getRequiredFields, hasRequiredFields, humanizeCron, isSimpleStreamSource, isValidCron, mergeDefaults, normalizeFormData, parseCron, prepareEffectColors, resolveFileSource, resolvePlayerMode, resolveStreamSource, safeJsonParse, safeJsonStringify, useAudioCache, useAudioVisualization, useBlobUrlCleanup, useCollapsibleContent, useCronCustom, useCronMonthDays, useCronPreview, useCronScheduler, useCronSchedulerContext, useCronTime, useCronType, useCronWeekDays, useHybridAudio, useHybridAudioAnalysis, useHybridAudioContext, useHybridAudioControls, useHybridAudioLevels, useHybridAudioState, useHybridWebAudio, useImageCache, useLottie, useMediaCacheStore, useVideoCache, useVideoPlayerContext, useVideoPlayerSettings, useVisualization, validateRequiredFields, validateSchema };
2319
+ export { ArrayFieldItemTemplate, ArrayFieldTemplate, type AspectRatioValue, type AudioLevels, AudioReactiveCover, type AudioReactiveCoverProps, BaseInputTemplate, type BlobSource, COLOR_SCHEMES, COLOR_SCHEME_INFO, CardLoadingFallback, CheckboxWidget, ColorWidget, type CreateLazyComponentOptions, type CreateVideoErrorFallbackOptions, CronScheduler, type CronSchedulerContextValue, type CronSchedulerProps, CronSchedulerProvider, type CronSchedulerState, CustomInput, type DASHSource, type DataUrlSource, DayChips, EFFECT_ANIMATIONS, type EffectColorScheme, type EffectColors, type EffectConfig$1 as EffectConfig, type EffectIntensity, type EffectLayer, type EffectVariant, type EqualizerOptions, type ErrorFallbackProps, ErrorListTemplate, FieldTemplate, GlowEffect, type GlowEffectData, type HLSSource, type HybridAudioContextValue, type HybridAudioControls, HybridAudioPlayer, type HybridAudioPlayerProps, HybridAudioProvider, type HybridAudioProviderProps, type HybridAudioState, type HybridCompactPlayerProps, HybridSimplePlayer, type HybridSimplePlayerProps, HybridWaveform, type HybridWaveformProps, type HybridWebAudioAPI, INTENSITY_CONFIG, INTENSITY_INFO, type ImageFile, ImageViewer, type ImageViewerProps, JsonSchemaForm, type JsonSchemaFormProps, JsonTreeComponent as JsonTree, type JsonTreeConfig, type JsonTreeProps, LazyCronScheduler, LazyHybridAudioPlayer, LazyHybridCompactPlayer, LazyHybridSimplePlayer, LazyImageViewer, LazyJsonSchemaForm, LazyJsonTree, LazyLottiePlayer, LazyMapContainer, LazyMapView, LazyMermaid, LazyOpenapiViewer, LazyPrettyCode, LazyVideoPlayer, LazyWrapper, type LazyWrapperProps, LoadingFallback, type LoadingFallbackProps, type LottieDirection, LottiePlayer, type LottiePlayerProps, type LottieSize, type LottieSpeed, type MapContainerProps, MapLoadingFallback, type MapStyleKey, type MapViewport, MarkdownMessage, type MarkdownMessageProps, type MarkerData, Mermaid, type MermaidProps, MeshEffect, type MonthDay, MonthDayGrid, NativeProvider, NumberWidget, ObjectFieldTemplate, Playground as OpenapiViewer, OrbsEffect, type PlayerMode, type PlaygroundConfig, type PlaygroundProps$1 as PlaygroundProps, PrettyCode, type PrettyCodeProps$1 as PrettyCodeProps, type ResolveFileSourceOptions, SchedulePreview, type ScheduleType, ScheduleTypeSelector, type SchemaSource, SelectWidget, type SimpleStreamSource, SliderWidget, Spinner, SpotlightEffect, StreamProvider, type StreamSource, SwitchWidget, TextWidget, TimeSelector, type UrlSource, type UseAudioBusReturn, type UseAudioVisualizationReturn, type UseCollapsibleContentOptions, type UseCollapsibleContentResult, type UseHybridAudioOptions, type UseHybridAudioReturn, type UseLottieOptions, type UseLottieReturn, type UseVisualizationReturn, VARIANT_INFO, VideoControls, VideoErrorFallback, type VideoErrorFallbackProps, VideoPlayer, type VideoPlayerContextValue, type VideoPlayerProps, VideoPlayerProvider, type VideoPlayerProviderProps, type VideoPlayerRef, type VideoSourceUnion, VidstackProvider, type VimeoSource, type VisualizationColorScheme, type VisualizationIntensity, VisualizationProvider, type VisualizationProviderProps, type VisualizationSettings, type VisualizationVariant, type WeekDay, type YouTubeSource, buildCron, calculateGlowLayers, calculateMeshGradients, calculateOrbs, calculateSpotlight, createLazyComponent, createVideoErrorFallback, formatTime, generateContentKey, getColors, getEffectConfig, getRequiredFields, hasRequiredFields, humanizeCron, isSimpleStreamSource, isValidCron, mergeDefaults, normalizeFormData, parseCron, prepareEffectColors, resolveFileSource, resolvePlayerMode, resolveStreamSource, safeJsonParse, safeJsonStringify, useAudioBus, useAudioBusStore, useAudioCache, useAudioVisualization, useBlobUrlCleanup, useCollapsibleContent, useCronCustom, useCronMonthDays, useCronPreview, useCronScheduler, useCronSchedulerContext, useCronTime, useCronType, useCronWeekDays, useHybridAudio, useHybridAudioAnalysis, useHybridAudioContext, useHybridAudioControls, useHybridAudioLevels, useHybridAudioState, useHybridWebAudio, useImageCache, useLottie, useMediaCacheStore, useVideoCache, useVideoPlayerContext, useVideoPlayerSettings, useVisualization, validateRequiredFields, validateSchema };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { AudioReactiveCover, COLOR_SCHEMES, COLOR_SCHEME_INFO, EFFECT_ANIMATIONS, GlowEffect, HybridAudioPlayer, HybridAudioProvider, HybridSimplePlayer, HybridWaveform, INTENSITY_CONFIG, INTENSITY_INFO, MeshEffect, OrbsEffect, SpotlightEffect, VARIANT_INFO, VisualizationProvider, calculateGlowLayers, calculateMeshGradients, calculateOrbs, calculateSpotlight, formatTime, getColors, getEffectConfig, prepareEffectColors, useAudioVisualization, useHybridAudio, useHybridAudioAnalysis, useHybridAudioContext, useHybridAudioControls, useHybridAudioLevels, useHybridAudioState, useHybridWebAudio, useVisualization } from './chunk-7HP3GZFT.mjs';
1
+ export { AudioReactiveCover, COLOR_SCHEMES, COLOR_SCHEME_INFO, EFFECT_ANIMATIONS, GlowEffect, HybridAudioPlayer, HybridAudioProvider, HybridSimplePlayer, HybridWaveform, INTENSITY_CONFIG, INTENSITY_INFO, MeshEffect, OrbsEffect, SpotlightEffect, VARIANT_INFO, VisualizationProvider, calculateGlowLayers, calculateMeshGradients, calculateOrbs, calculateSpotlight, formatTime, getColors, getEffectConfig, prepareEffectColors, useAudioBus, useAudioBusStore, useAudioVisualization, useHybridAudio, useHybridAudioAnalysis, useHybridAudioContext, useHybridAudioControls, useHybridAudioLevels, useHybridAudioState, useHybridWebAudio, useVisualization } from './chunk-CDP3K6BI.mjs';
2
2
  export { NativeProvider, StreamProvider, VideoControls, VideoErrorFallback, VideoPlayer, VideoPlayerProvider, VidstackProvider, createVideoErrorFallback, isSimpleStreamSource, resolveFileSource, resolvePlayerMode, resolveStreamSource, useVideoPlayerContext } from './chunk-QKG4LERV.mjs';
3
3
  import './chunk-JWB2EWQO.mjs';
4
4
  export { ImageViewer } from './chunk-MADKYFI3.mjs';
@@ -767,19 +767,30 @@ function AudioLoadingFallback() {
767
767
  }
768
768
  __name(AudioLoadingFallback, "AudioLoadingFallback");
769
769
  var LazyHybridAudioPlayer = createLazyComponent(
770
- () => import('./components-IPSHDNXP.mjs').then((mod) => ({ default: mod.HybridAudioPlayer })),
770
+ () => import('./components-3RJ5Y3TB.mjs').then((mod) => ({ default: mod.HybridAudioPlayer })),
771
771
  {
772
772
  displayName: "LazyHybridAudioPlayer",
773
773
  fallback: /* @__PURE__ */ jsx(AudioLoadingFallback, {})
774
774
  }
775
775
  );
776
776
  var LazyHybridSimplePlayer = createLazyComponent(
777
- () => import('./components-IPSHDNXP.mjs').then((mod) => ({ default: mod.HybridSimplePlayer })),
777
+ () => import('./components-3RJ5Y3TB.mjs').then((mod) => ({ default: mod.HybridSimplePlayer })),
778
778
  {
779
779
  displayName: "LazyHybridSimplePlayer",
780
780
  fallback: /* @__PURE__ */ jsx(AudioLoadingFallback, {})
781
781
  }
782
782
  );
783
+ var LazyHybridCompactPlayer = createLazyComponent(
784
+ () => import('./components-3RJ5Y3TB.mjs').then((mod) => ({ default: mod.HybridCompactPlayer })),
785
+ {
786
+ displayName: "LazyHybridCompactPlayer",
787
+ fallback: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 h-8 px-1 animate-pulse", children: [
788
+ /* @__PURE__ */ jsx("div", { className: "h-8 w-8 rounded-md bg-muted flex-shrink-0" }),
789
+ /* @__PURE__ */ jsx("div", { className: "flex-1 h-4 rounded bg-muted" }),
790
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-12 rounded bg-muted flex-shrink-0" })
791
+ ] })
792
+ }
793
+ );
783
794
  function VideoLoadingFallback() {
784
795
  return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center bg-black/90 rounded-lg aspect-video", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
785
796
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
@@ -869,6 +880,6 @@ function CronSchedulerFallback() {
869
880
  }
870
881
  __name(CronSchedulerFallback, "CronSchedulerFallback");
871
882
 
872
- export { CardLoadingFallback, CronScheduler, LazyCronScheduler, LazyHybridAudioPlayer, LazyHybridSimplePlayer, LazyImageViewer, LazyJsonSchemaForm, LazyJsonTree, LazyLottiePlayer, LazyMapContainer, LazyMapView, LazyMermaid, LazyOpenapiViewer, LazyPrettyCode, LazyVideoPlayer, LazyWrapper, LoadingFallback, LottiePlayer, MapLoadingFallback, MarkdownMessage, Mermaid_default as Mermaid, OpenapiViewer_default as OpenapiViewer, Spinner, createLazyComponent, useCollapsibleContent };
883
+ export { CardLoadingFallback, CronScheduler, LazyCronScheduler, LazyHybridAudioPlayer, LazyHybridCompactPlayer, LazyHybridSimplePlayer, LazyImageViewer, LazyJsonSchemaForm, LazyJsonTree, LazyLottiePlayer, LazyMapContainer, LazyMapView, LazyMermaid, LazyOpenapiViewer, LazyPrettyCode, LazyVideoPlayer, LazyWrapper, LoadingFallback, LottiePlayer, MapLoadingFallback, MarkdownMessage, Mermaid_default as Mermaid, OpenapiViewer_default as OpenapiViewer, Spinner, createLazyComponent, useCollapsibleContent };
873
884
  //# sourceMappingURL=index.mjs.map
874
885
  //# sourceMappingURL=index.mjs.map