@spaced-out/genesis-mcp 1.0.13 → 1.0.14

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "metadata": {
3
- "buildDate": "2026-02-18T06:37:04.494Z",
4
- "version": "0.5.47",
3
+ "buildDate": "2026-02-26T10:41:02.713Z",
4
+ "version": "0.5.48-beta.0",
5
5
  "designSystemPath": "/home/runner/work/ui-design-system/ui-design-system"
6
6
  },
7
7
  "components": {
@@ -2952,6 +2952,56 @@
2952
2952
  "index.ts"
2953
2953
  ]
2954
2954
  },
2955
+ "VoiceOrb": {
2956
+ "name": "VoiceOrb",
2957
+ "path": "src/components/VoiceOrb",
2958
+ "files": {
2959
+ "main": null,
2960
+ "story": null,
2961
+ "css": null,
2962
+ "index": {
2963
+ "path": "index.d.ts",
2964
+ "content": "export * from '../../components/VoiceOrb/Microphone';\nexport * from '../../components/VoiceOrb/VoiceOrb';\n//# sourceMappingURL=index.d.ts.map"
2965
+ },
2966
+ "additional": {
2967
+ "Microphone/Microphone.d.ts": {
2968
+ "path": "Microphone/Microphone.d.ts",
2969
+ "content": "import * as React from 'react';\ntype ClassNames = Readonly<{\n barsContainer?: string;\n bar?: string;\n}>;\nexport interface MicrophoneProps {\n classNames?: ClassNames;\n enableMicrophone?: boolean;\n testId?: string;\n}\ndeclare const Microphone: React.FC<MicrophoneProps>;\nexport { Microphone };\n//# sourceMappingURL=Microphone.d.ts.map"
2970
+ },
2971
+ "Microphone/index.d.ts": {
2972
+ "path": "Microphone/index.d.ts",
2973
+ "content": "export * from '../../../components/VoiceOrb/Microphone/Microphone';\n//# sourceMappingURL=index.d.ts.map"
2974
+ },
2975
+ "VoiceOrb/VoiceOrb.d.ts": {
2976
+ "path": "VoiceOrb/VoiceOrb.d.ts",
2977
+ "content": "import * as React from 'react';\ntype ClassNames = Readonly<{\n container?: string;\n orbContainer?: string;\n orb?: string;\n}>;\nexport interface VoiceOrbProps {\n classNames?: ClassNames;\n /** Enable listening to microphone audio input for bar animation */\n enableMicrophone?: boolean;\n /** Volume value from Retell (0-1) to animate agent speaking */\n volume?: number;\n testId?: string;\n}\nexport declare const VoiceOrb: React.ForwardRefExoticComponent<VoiceOrbProps & React.RefAttributes<HTMLDivElement>>;\nexport {};\n//# sourceMappingURL=VoiceOrb.d.ts.map"
2978
+ },
2979
+ "VoiceOrb/index.d.ts": {
2980
+ "path": "VoiceOrb/index.d.ts",
2981
+ "content": "export * from '../../../components/VoiceOrb/VoiceOrb/VoiceOrb';\n//# sourceMappingURL=index.d.ts.map"
2982
+ },
2983
+ "constants.d.ts": {
2984
+ "path": "constants.d.ts",
2985
+ "content": "export declare const BAR_COUNT = 5;\nexport declare const BASE_HEIGHT = 4;\nexport declare const MAX_MULTIPLIERS: readonly [4, 8, 12, 8, 4];\nexport declare const MIN_SHADOW_BLUR = 0;\nexport declare const MAX_SHADOW_BLUR = 30;\nexport declare const MIN_SHADOW_BLUR_2 = 0;\nexport declare const MAX_SHADOW_BLUR_2 = 50;\nexport declare const MIN_SHADOW_BLUR_3 = 0;\nexport declare const MAX_SHADOW_BLUR_3 = 70;\nexport declare const MIN_OPACITY_1 = 0.3;\nexport declare const MAX_OPACITY_1 = 0.8;\nexport declare const MIN_OPACITY_2 = 0.2;\nexport declare const MAX_OPACITY_2 = 0.6;\nexport declare const MIN_OPACITY_3 = 0.15;\nexport declare const MAX_OPACITY_3 = 0.4;\nexport declare function calculateOrbShadowVars(volume: number): React.CSSProperties;\nexport declare function uuid(): string;\n//# sourceMappingURL=constants.d.ts.map"
2986
+ }
2987
+ }
2988
+ },
2989
+ "allFiles": [
2990
+ "Microphone/Microphone.module.css",
2991
+ "Microphone/Microphone.stories.module.css",
2992
+ "Microphone/Microphone.stories.tsx",
2993
+ "Microphone/Microphone.tsx",
2994
+ "Microphone/index.ts",
2995
+ "Microphone/mic.png",
2996
+ "VoiceOrb/VoiceOrb.module.css",
2997
+ "VoiceOrb/VoiceOrb.stories.module.css",
2998
+ "VoiceOrb/VoiceOrb.stories.tsx",
2999
+ "VoiceOrb/VoiceOrb.tsx",
3000
+ "VoiceOrb/index.ts",
3001
+ "constants.ts",
3002
+ "index.ts"
3003
+ ]
3004
+ },
2955
3005
  "WeekdayPicker": {
2956
3006
  "name": "WeekdayPicker",
2957
3007
  "path": "src/components/WeekdayPicker",
@@ -3008,6 +3058,30 @@
3008
3058
  "useArbitraryOptionAddition.ts"
3009
3059
  ]
3010
3060
  },
3061
+ "useAudioAnalyzer": {
3062
+ "name": "useAudioAnalyzer",
3063
+ "path": "src/hooks/useAudioAnalyzer",
3064
+ "files": {
3065
+ "main": {
3066
+ "path": "useAudioAnalyzer.d.ts",
3067
+ "content": "export interface AudioAnalyzerOptions {\n /** Enable/disable audio analysis */\n isListening: boolean;\n /** Optional external MediaStream to use */\n audioStream?: MediaStream | null;\n /** Number of bars to generate intensity values for */\n barCount?: number;\n /** Smoothing factor for the analyzer (0-1) */\n smoothingTimeConstant?: number;\n /** FFT size for frequency analysis */\n fftSize?: number;\n /** Minimum ms between state updates (throttle). Default 50 (~20fps). */\n updateIntervalMs?: number;\n}\nexport interface AudioAnalyzerResult {\n /** Array of intensity values (0-1) for each bar */\n barIntensities: number[];\n /** Whether the audio stream is active */\n isActive: boolean;\n /** Any error that occurred */\n error: Error | null;\n}\nexport declare const useAudioAnalyzer: {\n (options: AudioAnalyzerOptions): AudioAnalyzerResult;\n displayName: string;\n};\n//# sourceMappingURL=useAudioAnalyzer.d.ts.map"
3068
+ },
3069
+ "story": {
3070
+ "path": "useAudioAnalyzer.stories.tsx",
3071
+ "content": "import * as React from 'react';\n\nimport type {MicrophoneProps} from 'src/components/VoiceOrb/Microphone/Microphone';\nimport {Microphone} from 'src/components/VoiceOrb/Microphone/Microphone';\n\nimport css from 'src/hooks/useAudioAnalyzer/useAudioAnalyzer.stories.module.css';\n\n\nconst meta = {\n tags: ['autodocs'],\n title: 'Hooks/useAudioAnalyzer',\n component: Microphone,\n argTypes: {\n enableMicrophone: {\n description:\n 'When **true**, activates the microphone and begins audio analysis.',\n control: {type: 'boolean'},\n table: {\n type: {summary: 'boolean'},\n defaultValue: {summary: 'false'},\n },\n },\n classNames: {\n description:\n 'Optional classNames to customize internal elements of the Microphone visualizer.',\n control: {type: 'object'},\n table: {\n type: {summary: '{ barsContainer?: string; bar?: string }'},\n },\n },\n testId: {\n description: 'Base test id used to generate element-specific test ids.',\n control: {type: 'text'},\n table: {\n type: {summary: 'string'},\n },\n },\n },\n parameters: {\n docs: {\n subtitle:\n 'Analyzes microphone audio input and returns bar intensity values.',\n description: {\n component: `\n\\`\\`\\`js\nimport { useAudioAnalyzer } from \"@spaced-out/ui-design-system/lib/hooks/useAudioAnalyzer\";\n\\`\\`\\`\nA hook that captures microphone audio (or accepts an external \\`MediaStream\\`), runs FFT frequency analysis,\nand returns an array of normalised bar-intensity values (0–1). The example below uses the \\`Microphone\\`\ncomponent which consumes \\`useAudioAnalyzer\\` internally to render animated level bars.\\n\n__NOTE__: \nMic Permission will not work in non-secure contexts (storybook dev mode - http).\n\n### Options\n- \\`isListening\\`: Enable/disable audio analysis.\n- \\`audioStream\\` (optional): An external \\`MediaStream\\` to analyse instead of the default microphone.\n- \\`barCount\\` (optional): Number of intensity values to produce. Default \\`5\\`.\n- \\`smoothingTimeConstant\\` (optional): Smoothing factor for the analyser (0–1). Default \\`0.8\\`.\n- \\`fftSize\\` (optional): FFT size for frequency analysis. Default \\`256\\`.\n- \\`updateIntervalMs\\` (optional): Minimum ms between state updates (throttle). Default \\`50\\` (~20 fps).\n\n### Return Value\n- \\`barIntensities\\`: Array of intensity values (0–1) for each bar.\n- \\`isActive\\`: Whether the audio stream is currently active.\n- \\`error\\`: Any error that occurred (e.g. microphone permission denied).\n\n### Usage\n\\`\\`\\`jsx\nimport { useAudioAnalyzer } from \"@spaced-out/ui-design-system/lib/hooks/useAudioAnalyzer\";\n\nconst AudioVisualizer = () => {\n const { barIntensities, isActive, error } = useAudioAnalyzer({\n isListening: true,\n barCount: 5,\n });\n\n if (error) return <span>Error: {error.message}</span>;\n\n return (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 4 }}>\n {barIntensities.map((intensity, i) => (\n <div\n key={i}\n style={{\n width: 6,\n height: 8 + intensity * 40,\n borderRadius: 3,\n background: isActive ? \"#4f46e5\" : \"#d1d5db\",\n transition: \"height 0.05s ease\",\n }}\n />\n ))}\n </div>\n );\n};\n\\`\\`\\`\n `,\n },\n },\n storySource: {\n componentPath: '/src/hooks/useAudioAnalyzer/useAudioAnalyzer.tsx',\n },\n },\n};\n\nexport default meta;\n\nexport const _useAudioAnalyzer = {\n render: (args: MicrophoneProps) => (\n <div className={css.container}>\n <Microphone {...args} />\n </div>\n ),\n args: {\n enableMicrophone: true,\n classNames: {},\n testId: 'use-audio-analyzer',\n },\n};\n"
3072
+ },
3073
+ "index": {
3074
+ "path": "index.d.ts",
3075
+ "content": "export * from '../../hooks/useAudioAnalyzer/useAudioAnalyzer';\n//# sourceMappingURL=index.d.ts.map"
3076
+ }
3077
+ },
3078
+ "allFiles": [
3079
+ "index.ts",
3080
+ "useAudioAnalyzer.stories.module.css",
3081
+ "useAudioAnalyzer.stories.tsx",
3082
+ "useAudioAnalyzer.tsx"
3083
+ ]
3084
+ },
3011
3085
  "useCopyToClipboard": {
3012
3086
  "name": "useCopyToClipboard",
3013
3087
  "path": "src/hooks/useCopyToClipboard",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spaced-out/genesis-mcp",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "MCP server for Genesis UI Design System - provides AI assistants with access to components, hooks, and design tokens",
5
5
  "type": "module",
6
6
  "main": "index.js",