(Story: StoryFn) => {
+ const [initialized, setInitialized] = useState(false);
+
+ const setCurrentAction = useBoundStore((state) => state.setCurrentAction);
+ setCurrentAction({
+ view: "TRIAL_VIEW",
+ playback: {
view: AUTOPLAY,
- play_method: "BUFFER",
+ play_method,
show_animation: true,
preload_message: "Loading audio...",
instruction: "Click the button to play the audio.",
- sections: [
- {
- id: 0,
- url: audio,
- }
- ],
+ sections: [{ id: 0, url: audio }],
play_from: 0.0,
resume_play: false,
- },
- onPreloadReady: () => { },
- autoAdvance: false,
- responseTime: 10,
- submitResult: () => { },
- finishedPlaying: () => { },
- } as PlaybackProps,
- decorators: [
- (Story) => {
+ }
+ });
- const [initialized, setInitialized] = useState(false);
+ if (!initialized) {
+ return (
+ <>
+
+ >
+ );
+ }
+ return (
+
+
+
+ );
+};
- if (!initialized) {
- return (
- <>
-
- >
- )
+// Create playback arguments dynamically
+const createPlaybackArgs = (play_method: "BUFFER" | "EXTERNAL"): PlaybackProps => ({
+ playbackArgs: {
+ view: AUTOPLAY,
+ play_method,
+ show_animation: true,
+ preload_message: "Loading audio...",
+ instruction: "Click the button to play the audio.",
+ sections: [
+ {
+ id: 0,
+ url: audio,
}
+ ],
+ play_from: 0.0,
+ resume_play: false,
+ },
+ onPreloadReady: () => { },
+ autoAdvance: false,
+ responseTime: 10,
+ submitResult: () => { },
+ finishedPlaying: () => { },
+});
- return (
-
-
-
- )
- }
- ],
+export const PlaybackAutoplayBuffer = {
+ args: createPlaybackArgs("BUFFER"),
+ decorators: [createCommonDecorator("BUFFER")],
+};
+
+export const PlaybackAutoplayExternal = {
+ args: createPlaybackArgs("EXTERNAL"),
+ decorators: [createCommonDecorator("EXTERNAL")],
};
diff --git a/frontend/src/types/Action.ts b/frontend/src/types/Action.ts
new file mode 100644
index 000000000..1d937353f
--- /dev/null
+++ b/frontend/src/types/Action.ts
@@ -0,0 +1,119 @@
+import Social from "@/types/Social";
+import Block, { FeedbackInfo } from "@/types/Block";
+import Participant from "@/types/Participant";
+import { PlaybackArgs } from "./Playback";
+import Question from "./Question";
+import { TrialConfig } from "./Trial";
+import { MutableRefObject } from "react";
+
+interface SharedActionProps {
+ title?: string;
+ config?: object;
+ style?: object;
+}
+
+interface ExplainerStep {
+ number: number;
+ description: string;
+}
+
+export interface Explainer {
+ instruction: string;
+ button_label: string;
+ steps?: Array
;
+ timer: number | null;
+}
+
+export interface Info {
+ heading?: string;
+ body: string | TrustedHTML;
+ button_label?: string;
+ button_link?: string;
+}
+
+export interface IFeedbackForm {
+ form: Question[];
+ submit_label: string;
+ skip_label: string;
+ is_skippable: boolean;
+}
+
+export interface Trial {
+ playback: PlaybackArgs;
+ html: { body: string | TrustedHTML };
+ feedback_form: IFeedbackForm;
+ config: TrialConfig;
+}
+
+export interface Score {
+ last_song?: string;
+ score: number;
+ score_message: string;
+ total_score?: number;
+ texts: {
+ score: string;
+ next: string;
+ listen_explainer: string;
+ };
+ icon?: string;
+ feedback?: string;
+ timer?: number;
+}
+
+export interface Final {
+ block: Block;
+ participant: Participant;
+ score: number;
+ final_text: string | TrustedHTML;
+ action_texts: {
+ all_experiments: string;
+ profile: string;
+ play_again: string;
+ }
+ button: {
+ text: string;
+ link: string;
+ };
+ show_participant_link: boolean;
+ participant_id_only: boolean;
+ show_profile_link: boolean;
+ social: Social;
+ feedback_info?: FeedbackInfo;
+ points: string;
+ rank: {
+ class: string;
+ text: string;
+ }
+ logo: {
+ image: string;
+ link: string;
+ };
+}
+
+export interface Playlist {
+ instruction: string;
+ playlist: MutableRefObject;
+}
+
+export interface Redirect {
+ url: string;
+}
+
+export interface Loading {
+ duration?: number;
+ loadingText?: string;
+}
+
+export type Action = SharedActionProps &
+ (
+ | { view: "EXPLAINER" } & Explainer
+ | { view: "INFO" } & Info
+ | { view: "TRIAL_VIEW" } & Trial
+ | { view: 'SCORE' } & Score
+ | { view: 'FINAL' } & Final
+ | { view: 'PLAYLIST' } & Playlist
+ | { view: 'REDIRECT' } & Redirect
+ | { view: "LOADING" } & Loading
+ )
+
+export default Action;
diff --git a/frontend/src/types/Round.ts b/frontend/src/types/Round.ts
new file mode 100644
index 000000000..fc5e3676f
--- /dev/null
+++ b/frontend/src/types/Round.ts
@@ -0,0 +1,7 @@
+import { Action } from "./Action";
+
+export type Round = Action[];
+
+export interface RoundResponse {
+ next_round: Round;
+}
diff --git a/frontend/src/util/stores.ts b/frontend/src/util/stores.ts
index aa4258b6b..4289ef2e6 100644
--- a/frontend/src/util/stores.ts
+++ b/frontend/src/util/stores.ts
@@ -5,6 +5,7 @@ import IParticipant from "@/types/Participant";
import ISession from "@/types/Session";
import ITheme from "@/types/Theme";
import IBlock from "@/types/Block";
+import { Action } from '@/types/Action';
interface BlockSlice {
block?: IBlock;
@@ -96,6 +97,16 @@ const createParticipantSlice: StateCreator = (set) => ({
setParticipantLoading: (participantLoading: boolean) => set(() => ({ participantLoading }))
});
+interface ActionSlice {
+ currentAction: Action | null;
+ setCurrentAction: (action: Action) => void;
+}
+
+const createActionSlice: StateCreator = (set) => ({
+ setCurrentAction: (action: Action) => set(() => ({ currentAction: action })),
+ currentAction: null,
+});
+
interface SessionSlice {
session: ISession | null;
setSession: (session: ISession) => void;
@@ -118,11 +129,12 @@ const createThemeSlice: StateCreator = (set) => ({
resetTheme: () => set(() => ({ theme: null })),
});
-export const useBoundStore = create((...args) => ({
+export const useBoundStore = create((...args) => ({
...createBlockSlice(...args),
...createDocumentHeadSlice(...args),
...createErrorSlice(...args),
...createParticipantSlice(...args),
+ ...createActionSlice(...args),
...createSessionSlice(...args),
...createThemeSlice(...args),
}));
diff --git a/frontend/src/util/webAudio.ts b/frontend/src/util/webAudio.ts
index 02d519ae7..59cd68478 100644
--- a/frontend/src/util/webAudio.ts
+++ b/frontend/src/util/webAudio.ts
@@ -4,7 +4,6 @@ let track: MediaElementAudioSourceNode;
let source: AudioBufferSourceNode;
let buffers: { [key: string]: AudioBuffer } = {};
let audioContext: AudioContext;
-let previousSource: string;
let analyzer: AnalyserNode;
export let audioInitialized = false;
@@ -97,7 +96,6 @@ export const loadBuffer = async (id: number, src: string, canPlay: () => void) =
// store buffer in buffers object
.then(decodedData => {
buffers[id] = decodedData;
- previousSource = src;
canPlay();
});
};
diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts
index e218d6f7a..27de7b68d 100644
--- a/frontend/vitest.config.ts
+++ b/frontend/vitest.config.ts
@@ -7,6 +7,7 @@ export default defineConfig({
include: ['**/*.test.js', '**/*.test.jsx', '**/*.test.ts', '**/*.test.tsx'],
globals: true,
environment: 'happy-dom',
+ allowOnly: true,
coverage: {
reportsDirectory: 'public/coverage',
provider: 'v8',
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index f4ca5648d..bf5b4dc7d 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -2716,21 +2716,19 @@ __metadata:
languageName: node
linkType: hard
-"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.0":
- version: 0.3.0
- resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.0"
+"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.4.2":
+ version: 0.4.2
+ resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.4.2"
dependencies:
- glob: "npm:^7.2.0"
- glob-promise: "npm:^4.2.0"
magic-string: "npm:^0.27.0"
react-docgen-typescript: "npm:^2.2.2"
peerDependencies:
typescript: ">= 4.3.x"
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/31098ad8fcc2440437534599c111d9f2951dd74821e8ba46c521b969bae4c918d830b7bb0484efbad29a51711bb62d3bc623d5a1ed5b1695b5b5594ea9dd4ca0
+ checksum: 10c0/355d13ad92a9da786b561a25250e6c94a8e51d235ced345e54ebfe709abc45ab60c2a8d06599df6ec0441fba01720f189883429943cb62dff9a4c31b59f0939c
languageName: node
linkType: hard
@@ -3116,9 +3114,9 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/addon-actions@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-actions@npm:8.4.2"
+"@storybook/addon-actions@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-actions@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
"@types/uuid": "npm:^9.0.1"
@@ -3126,175 +3124,175 @@ __metadata:
polished: "npm:^4.2.2"
uuid: "npm:^9.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/ac89e6e0517efa2f8d6442f8fc0b1c3912bfc1ad50e03cccd06721d3bb52d11f472126a590c746cd565875d8ac11c63457de94e7c1ff6a3f8151b3c6488802d6
+ storybook: ^8.4.6
+ checksum: 10c0/80b2feceacb4ebe7f2be06b2fe3f49ded5ee08ca8bd036ff47a65d45d8796d29081ccadd0526984c8022bcfa24348e0ad4ce3f37cee4a60a928bae372bfc8afe
languageName: node
linkType: hard
-"@storybook/addon-backgrounds@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-backgrounds@npm:8.4.2"
+"@storybook/addon-backgrounds@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-backgrounds@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
memoizerific: "npm:^1.11.3"
ts-dedent: "npm:^2.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/8fac73fafe7974c1710b0565e0fab56b9a3ee35190a06b63e9ae996c5f5a0d214ec755f7e88de8fb8d7493eb022ad820952dffbfc417f2949c07750faea18e46
+ storybook: ^8.4.6
+ checksum: 10c0/2125d6905bf44194adf79e92698753d5e4ff75fac1ffbba1fc95ae705ba9ac8dc6ca9249c9a862aa05ea207d916d23142faefa759bb9ce21c6e16f0e329d28d2
languageName: node
linkType: hard
-"@storybook/addon-controls@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-controls@npm:8.4.2"
+"@storybook/addon-controls@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-controls@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
dequal: "npm:^2.0.2"
ts-dedent: "npm:^2.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/8de00a60c34de7972efc3c882912c1b135d4867045783742515741380750a58f4ce0e98139328804adcf1c2926110ca88e2df1135c3b1b03a05b20c97494ef7a
+ storybook: ^8.4.6
+ checksum: 10c0/f5f0ab2de8de80c8c3726de81802042cc29a6f2ec50de3b8bd463286c9056e87800e4ea9b350c6a41ce4c4175a11cb7d3d490da5cfc20bbf2a2e3549f77a82a7
languageName: node
linkType: hard
-"@storybook/addon-docs@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-docs@npm:8.4.2"
+"@storybook/addon-docs@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-docs@npm:8.4.6"
dependencies:
"@mdx-js/react": "npm:^3.0.0"
- "@storybook/blocks": "npm:8.4.2"
- "@storybook/csf-plugin": "npm:8.4.2"
- "@storybook/react-dom-shim": "npm:8.4.2"
+ "@storybook/blocks": "npm:8.4.6"
+ "@storybook/csf-plugin": "npm:8.4.6"
+ "@storybook/react-dom-shim": "npm:8.4.6"
react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0"
react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0"
ts-dedent: "npm:^2.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/ba8046898006b7e0c088ee26e378eff7e9aa315eb0c7ddf6b6d15ad6eea0d544d39674868b2b5ef5c89e64e1dee5501ceceaf2a3854636e88b99f5eaafe4b239
+ storybook: ^8.4.6
+ checksum: 10c0/ae53bf71048fe7476862ae733f0f765a22d0d1da32457f7ca7e3bdd23bb1cd452c56bc4e1f586cf978599c3f5acb835caeb569ff394eaec09d3259382f4954be
languageName: node
linkType: hard
-"@storybook/addon-essentials@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-essentials@npm:8.4.2"
- dependencies:
- "@storybook/addon-actions": "npm:8.4.2"
- "@storybook/addon-backgrounds": "npm:8.4.2"
- "@storybook/addon-controls": "npm:8.4.2"
- "@storybook/addon-docs": "npm:8.4.2"
- "@storybook/addon-highlight": "npm:8.4.2"
- "@storybook/addon-measure": "npm:8.4.2"
- "@storybook/addon-outline": "npm:8.4.2"
- "@storybook/addon-toolbars": "npm:8.4.2"
- "@storybook/addon-viewport": "npm:8.4.2"
+"@storybook/addon-essentials@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-essentials@npm:8.4.6"
+ dependencies:
+ "@storybook/addon-actions": "npm:8.4.6"
+ "@storybook/addon-backgrounds": "npm:8.4.6"
+ "@storybook/addon-controls": "npm:8.4.6"
+ "@storybook/addon-docs": "npm:8.4.6"
+ "@storybook/addon-highlight": "npm:8.4.6"
+ "@storybook/addon-measure": "npm:8.4.6"
+ "@storybook/addon-outline": "npm:8.4.6"
+ "@storybook/addon-toolbars": "npm:8.4.6"
+ "@storybook/addon-viewport": "npm:8.4.6"
ts-dedent: "npm:^2.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/746470edd1f9ebbb9bd4f48461bc24141c215fe146b335efe14fbb289d381faf3935d55e4e25c251777b940caf827c06574062bb18bb1b95e2c9c85b89c8635a
+ storybook: ^8.4.6
+ checksum: 10c0/b8fb83e018fcb1e8cad04b371af5f8ce9933e3a500a78a889715ecfe4efd9faa52acce2d0f97fb04fe9ae0898e661112816c052bfe9b5f01189938b122055a44
languageName: node
linkType: hard
-"@storybook/addon-highlight@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-highlight@npm:8.4.2"
+"@storybook/addon-highlight@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-highlight@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/6838bab4434da65e85de70908f0ca09e9aa93facdb8fa6799100d711a55cbc69744c131f8994e910efd6bf74507bcc035f7ca4f3367c3003fc5799212160fc65
+ storybook: ^8.4.6
+ checksum: 10c0/67a23a5e3b8f7740c7101e8fa886f3f9c6c61b6db3cb3430d2c805231f7ad170d2d926c12e7c9bfc4af327c5abac5b4155f4c0d70ea423b04704fe3def845acc
languageName: node
linkType: hard
-"@storybook/addon-interactions@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-interactions@npm:8.4.2"
+"@storybook/addon-interactions@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-interactions@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
- "@storybook/instrumenter": "npm:8.4.2"
- "@storybook/test": "npm:8.4.2"
+ "@storybook/instrumenter": "npm:8.4.6"
+ "@storybook/test": "npm:8.4.6"
polished: "npm:^4.2.2"
ts-dedent: "npm:^2.2.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/01e24d66cb925990d4313893e8c8fa1f7a1dac2aab80ae11d2093028fb607313905e6142d5ade8006f9bbe657e350693df32841dfe2a9c8df42f829de6e14826
+ storybook: ^8.4.6
+ checksum: 10c0/42e4bc2df354dba10217385687ac20fb355f4e1a2a7390812081d6b387151b67bca868211794e531c1e112dc4ce50c70dffa55c8f4338b0bd860d59363d58d5b
languageName: node
linkType: hard
-"@storybook/addon-links@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-links@npm:8.4.2"
+"@storybook/addon-links@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-links@npm:8.4.6"
dependencies:
"@storybook/csf": "npm:^0.1.11"
"@storybook/global": "npm:^5.0.0"
ts-dedent: "npm:^2.0.0"
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.2
+ storybook: ^8.4.6
peerDependenciesMeta:
react:
optional: true
- checksum: 10c0/cf49c0f67344ae9c2c5fd9e66f4edb1fc9d57f5e50db1ac5640a4fb8f5f73e52a5bcbe196c1669bbfc98ca6d65471097ea19e7024808c94be758a7b4e6000ea9
+ checksum: 10c0/9360122d9c5370706a583526fb72efd0901d7e64c7467bfb4d832712cc41928d4fcfa397a53cfa17a1ae3875b8ef92ce6a10fb0bf0ce00149dc0d0eb1d66e27b
languageName: node
linkType: hard
-"@storybook/addon-measure@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-measure@npm:8.4.2"
+"@storybook/addon-measure@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-measure@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
tiny-invariant: "npm:^1.3.1"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/3458cce88b41bb54f74f5affc610b07f486db07709ac13a1b84b7b17fb0d9c2b3fce9325b69a9f60a8d446ae0befc530a4de7d5dc133f4d818d438ff4378cf61
+ storybook: ^8.4.6
+ checksum: 10c0/fd05b49fdb102a991fc696a0f75fde08d372b692778340ab2abc2c73fbd31a07dfa27a7a9d775dda7baaa9bd8a18972ed0bd86e9ce27948afb0305778f7b5a95
languageName: node
linkType: hard
-"@storybook/addon-onboarding@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-onboarding@npm:8.4.2"
+"@storybook/addon-onboarding@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-onboarding@npm:8.4.6"
dependencies:
react-confetti: "npm:^6.1.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/0c4606212d18c30366b735bc1e95fd3d9c8bfe491534b2a5840d392f6b7a5e30cd7a60944a2622e94f189f6e83ccbbf717c411da7464d16ec0fc3f8e044ac89c
+ storybook: ^8.4.6
+ checksum: 10c0/dcdb34a13da2f6e7e1f23ea17be814cc4cdfa1c0958061bacf82270c06b556a795f9ec80c7e008a6672f0de3f533f1415d6817f7ffd06049952cfda28ff8f492
languageName: node
linkType: hard
-"@storybook/addon-outline@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-outline@npm:8.4.2"
+"@storybook/addon-outline@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-outline@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
ts-dedent: "npm:^2.0.0"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/042693756b2d00e9454f544d35d1e6a638e7adc7e165c92a4a0c99578a0ff001357c54826fa0e8fe7dbedcd10e62b60045fd30e1cd2b4e3dff4521aece9e6426
+ storybook: ^8.4.6
+ checksum: 10c0/62600a9f4164a8d91118d37cd7be4f4dd871e849a156ba7728f463bc2cfc5a8a233df09055dd5e5733a042fde7a63b08616cb3c61b26c363c1e2d4ce20d92584
languageName: node
linkType: hard
-"@storybook/addon-toolbars@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-toolbars@npm:8.4.2"
+"@storybook/addon-toolbars@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-toolbars@npm:8.4.6"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/f5808d3863867295475295423a397108d41b01ac6564b0a18241c2f1e3ecf9e67c4326c663917c72315f6c60f203dc0d0e93b4778af4e7071a047a6001e1eef5
+ storybook: ^8.4.6
+ checksum: 10c0/6525e71aaa3870ae97d407b662323022ade98859f89975110f5fb4a1d3f34b6c918d47fcc8a6a271f4a77acfcaadc963a846a83ebc6c748b37df50422ad60e7e
languageName: node
linkType: hard
-"@storybook/addon-viewport@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/addon-viewport@npm:8.4.2"
+"@storybook/addon-viewport@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/addon-viewport@npm:8.4.6"
dependencies:
memoizerific: "npm:^1.11.3"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/676dc421781afcb50598172d9a1391604e73b9d35989b23e33674ec81b16c5dbd123a6a43098134927e1d2ffb3353fd32231261025cfc5e50ebb1259329f8ec1
+ storybook: ^8.4.6
+ checksum: 10c0/824438cc44a45f90748ac5f20ac148a36d975a94fa89504a583e0e1188de8c574e042ad3cd537bc16ddb30d4e44e90f5a63263239b13419aec5334e2ece18cd0
languageName: node
linkType: hard
-"@storybook/blocks@npm:8.4.2, @storybook/blocks@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/blocks@npm:8.4.2"
+"@storybook/blocks@npm:8.4.6, @storybook/blocks@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/blocks@npm:8.4.6"
dependencies:
"@storybook/csf": "npm:^0.1.11"
"@storybook/icons": "npm:^1.2.12"
@@ -3302,42 +3300,42 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.2
+ storybook: ^8.4.6
peerDependenciesMeta:
react:
optional: true
react-dom:
optional: true
- checksum: 10c0/63cb3ed08742409041dca7fea3b476fb16675ddcc11b602ba4b20f61ab92993e15bc020e14e92398d4e2ea3bf62186274f5737c1c88ae26f9e717168f71441d5
+ checksum: 10c0/36d79c3aeb3d27f4ba966d62302e13fc17fd7b450dbfbcf538adfc6df3cfecb13c92f9d2542871fa747a77d7c770e413b358623049135355fb01454d6eb52d9a
languageName: node
linkType: hard
-"@storybook/builder-vite@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/builder-vite@npm:8.4.2"
+"@storybook/builder-vite@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/builder-vite@npm:8.4.6"
dependencies:
- "@storybook/csf-plugin": "npm:8.4.2"
+ "@storybook/csf-plugin": "npm:8.4.6"
browser-assert: "npm:^1.2.1"
ts-dedent: "npm:^2.0.0"
peerDependencies:
- storybook: ^8.4.2
- vite: ^4.0.0 || ^5.0.0
- checksum: 10c0/646f7cfbc77e7aaced8d2f0922e1b54662f6cb3c7602c5db97a419fd724033f8d68a332ebad9bf14641f7e7edec42797685bdfa24c666475f3bbeb23fe20f941
+ storybook: ^8.4.6
+ vite: ^4.0.0 || ^5.0.0 || ^6.0.0
+ checksum: 10c0/36998ffea04023a9f634ebbafe0d1ab3bd3e7c7fec8e8e6c4caef3ce0c94ce01fa44f332f40d0053edb788548f95096baf8561cd35c23fe3c9bcfd872f74f631
languageName: node
linkType: hard
-"@storybook/components@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/components@npm:8.4.2"
+"@storybook/components@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/components@npm:8.4.6"
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
- checksum: 10c0/36ffb5f73dceb481e76fa6e006118f382c23c8081cf47500f0eea8566e902a11d3fd219b599a9f622358f17652c445f71bc8d7a80e0d43f28cd85d60f7b4a15f
+ checksum: 10c0/1622b2f12b6d18e5c495a623deb2930888b3e8b173a271cbe42a7cbd6e14e80b736c57792ea97d5269dff0e6c0db40385d3ea80ab6e46d4cb6e104aee6cac6bc
languageName: node
linkType: hard
-"@storybook/core@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/core@npm:8.4.2"
+"@storybook/core@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/core@npm:8.4.6"
dependencies:
"@storybook/csf": "npm:^0.1.11"
better-opn: "npm:^3.0.2"
@@ -3355,18 +3353,18 @@ __metadata:
peerDependenciesMeta:
prettier:
optional: true
- checksum: 10c0/75a9a9e00d98bb77d171a2738fdc0e9ab1cfbd760410b95c286368c7f25bbb756b61bd23b89d512707a02e450b81ecbdc72bf05e63fb18ea35509a2a806b0e21
+ checksum: 10c0/1e30268eec18458dd78ed4b97fb12ac47b2c3cb41ffcbe9e9f5934b3f0c83b0bfcb0c0d508926344779383cc5260f992dcd534ffffab3f05425c7cee8c90687c
languageName: node
linkType: hard
-"@storybook/csf-plugin@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/csf-plugin@npm:8.4.2"
+"@storybook/csf-plugin@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/csf-plugin@npm:8.4.6"
dependencies:
unplugin: "npm:^1.3.1"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/8fc0db319b8ebe6a445989cc0c5576c7186da086f84d5fad30615e1e527f31bcf562e12b4f31ec85e3fd188aa676116d4023232dcca4441c7c517cda0ac23bf0
+ storybook: ^8.4.6
+ checksum: 10c0/d771f36ee768c6ff62ecd930c6ff64a4ba45bdbb7f7fb41e5f4ffd02204e3f54b17ed091049b265a6d371922bf599bfe749eb9deabfcd7e2b4fb5a5444655241
languageName: node
linkType: hard
@@ -3396,55 +3394,55 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/instrumenter@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/instrumenter@npm:8.4.2"
+"@storybook/instrumenter@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/instrumenter@npm:8.4.6"
dependencies:
"@storybook/global": "npm:^5.0.0"
"@vitest/utils": "npm:^2.1.1"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/465686b1688d1058e71d1dc32217472832ee4ec46661d7cba8eb17828e678bd8ff96992c8ffbac3fc67767d786a7a35d3ec94adf3886905b65ba1c5f1423f9de
+ storybook: ^8.4.6
+ checksum: 10c0/602017872236124dc9dfa77d6bc2c5987d540063f15c7ace83bf91060d9343fdbe113a61cba44e17cae2247aeeb69875ebf45ff66ce9c28d364d2d3638eb3ec8
languageName: node
linkType: hard
-"@storybook/manager-api@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/manager-api@npm:8.4.2"
+"@storybook/manager-api@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/manager-api@npm:8.4.6"
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
- checksum: 10c0/306e16af4a4babf18d7b32335f974ac969a3f9139534f37e3ce238462f69f1ad52e3091a45bf76b1cbdd8f3cf989836c8433cad6cbb2c3eb4dcbc7ccb0f8ae82
+ checksum: 10c0/5921ec72df0be765bd398aa906186c9b121a8b3415a7e1a10014a8d17c44aec386b59de3d240017bfc925be00c40a4da8d26991b5fa39023f23ba8efe1b0d58e
languageName: node
linkType: hard
-"@storybook/preview-api@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/preview-api@npm:8.4.2"
+"@storybook/preview-api@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/preview-api@npm:8.4.6"
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
- checksum: 10c0/7b54c1962d27d32f29a3839660098ad8995cfcf31d4bde3662cff69d7a06cc4d315dad92f565901e3b0ebd7bf12fa8995cc625a71f13c34d82a4529412d8f83c
+ checksum: 10c0/63967f4813c75e410634bff20189b5a670a061cfeeaa601ec07f0de82e2b4955af292836030d5a8432c3c7e48968285e121ed2bb55d2b5c70d17dbb4ada3c051
languageName: node
linkType: hard
-"@storybook/react-dom-shim@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/react-dom-shim@npm:8.4.2"
+"@storybook/react-dom-shim@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/react-dom-shim@npm:8.4.6"
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.2
- checksum: 10c0/f4cc8d3cb557c8e84f62047680af926570f170a87aec7775830b91c4793c7afee84092ef6cd9c518dbd0ab9311139a4698f1477f35d21bc4d1462c6bd54105c5
+ storybook: ^8.4.6
+ checksum: 10c0/b97c6faa3adc3efe1b7b6f5e38476e040c0a988b14db68e368d704c68f3f4d4bf7866b36607c118a0483242921b34944b5f5f72614d9852476476f6ead462e5c
languageName: node
linkType: hard
-"@storybook/react-vite@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/react-vite@npm:8.4.2"
+"@storybook/react-vite@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/react-vite@npm:8.4.6"
dependencies:
- "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.0"
+ "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.4.2"
"@rollup/pluginutils": "npm:^5.0.2"
- "@storybook/builder-vite": "npm:8.4.2"
- "@storybook/react": "npm:8.4.2"
+ "@storybook/builder-vite": "npm:8.4.6"
+ "@storybook/react": "npm:8.4.6"
find-up: "npm:^5.0.0"
magic-string: "npm:^0.30.0"
react-docgen: "npm:^7.0.0"
@@ -3453,61 +3451,61 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.2
- vite: ^4.0.0 || ^5.0.0
- checksum: 10c0/7e04112b0678a2bfd9fb913eb9161055fdb30d6ee34983294632eaae72067a16727e84801bede7b76cd7f7e0c6005021011432ea394c1a82fd73de5c6fb7b567
+ storybook: ^8.4.6
+ vite: ^4.0.0 || ^5.0.0 || ^6.0.0
+ checksum: 10c0/9f81a19461dbbf11932a13f8fb611dbcd95fbfa695ee5536daf7e078bf0feb5ddda2738606073826131e3fee710e230dce9042e3f7f985203392376aa8407643
languageName: node
linkType: hard
-"@storybook/react@npm:8.4.2, @storybook/react@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/react@npm:8.4.2"
+"@storybook/react@npm:8.4.6, @storybook/react@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/react@npm:8.4.6"
dependencies:
- "@storybook/components": "npm:8.4.2"
+ "@storybook/components": "npm:8.4.6"
"@storybook/global": "npm:^5.0.0"
- "@storybook/manager-api": "npm:8.4.2"
- "@storybook/preview-api": "npm:8.4.2"
- "@storybook/react-dom-shim": "npm:8.4.2"
- "@storybook/theming": "npm:8.4.2"
+ "@storybook/manager-api": "npm:8.4.6"
+ "@storybook/preview-api": "npm:8.4.6"
+ "@storybook/react-dom-shim": "npm:8.4.6"
+ "@storybook/theming": "npm:8.4.6"
peerDependencies:
- "@storybook/test": 8.4.2
+ "@storybook/test": 8.4.6
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta
- storybook: ^8.4.2
+ storybook: ^8.4.6
typescript: ">= 4.2.x"
peerDependenciesMeta:
"@storybook/test":
optional: true
typescript:
optional: true
- checksum: 10c0/a5ce045dae71c2a039c1ac4411c07b4a51574a6f607c6c6f105e87147410b32e7d882b3f225d6fa78ddc29423881aee76727826d2b960a61f913f7d849fdcc1f
+ checksum: 10c0/1441f8ab3be91757647c6b1a05eb1ef0d78a454ffd14b01a14fdde00e92a8be8fc7c8408c4670b46bc20a5a04995514f0890e98ed6ee35c362ff36141da02f02
languageName: node
linkType: hard
-"@storybook/test@npm:8.4.2, @storybook/test@npm:^8.4.2":
- version: 8.4.2
- resolution: "@storybook/test@npm:8.4.2"
+"@storybook/test@npm:8.4.6, @storybook/test@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/test@npm:8.4.6"
dependencies:
"@storybook/csf": "npm:^0.1.11"
"@storybook/global": "npm:^5.0.0"
- "@storybook/instrumenter": "npm:8.4.2"
+ "@storybook/instrumenter": "npm:8.4.6"
"@testing-library/dom": "npm:10.4.0"
"@testing-library/jest-dom": "npm:6.5.0"
"@testing-library/user-event": "npm:14.5.2"
"@vitest/expect": "npm:2.0.5"
"@vitest/spy": "npm:2.0.5"
peerDependencies:
- storybook: ^8.4.2
- checksum: 10c0/6431020dd98ae2eaea70ced1e1ae2c8d3bf006b0d7607d7020fe226f9971983b8ec91e1dc360624560e1517764a40d78a23a231d889faf000bdfbd5f66fb268f
+ storybook: ^8.4.6
+ checksum: 10c0/fbf7c2ac7773a7fe18145876eb67491ce90b000ba5f8e364a319569e56d56e706fdd1c7ef24d3ab2ffa3dfcdb92377d8050c8ffbd457d2d8b613aba2a4845a04
languageName: node
linkType: hard
-"@storybook/theming@npm:8.4.2":
- version: 8.4.2
- resolution: "@storybook/theming@npm:8.4.2"
+"@storybook/theming@npm:8.4.6":
+ version: 8.4.6
+ resolution: "@storybook/theming@npm:8.4.6"
peerDependencies:
storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0
- checksum: 10c0/8765a25952273f87f65018159228fa448a0bb6fa38486650344ddc076cd895546ab3b88d35a6e7f80d3223635e28d59f82510922c589a36a7c6afc33c5bcc0d7
+ checksum: 10c0/7d9c8e5ef2c1d974cd5258301350a2345890326e7be7a5ed6bdd0db70fd1648c0bbb8ee1d905f8e66fa57b75c47aefe7ec9772ec0bfb9691d127dcc19286e4c9
languageName: node
linkType: hard
@@ -3684,16 +3682,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/glob@npm:^7.1.3":
- version: 7.2.0
- resolution: "@types/glob@npm:7.2.0"
- dependencies:
- "@types/minimatch": "npm:*"
- "@types/node": "npm:*"
- checksum: 10c0/a8eb5d5cb5c48fc58c7ca3ff1e1ddf771ee07ca5043da6e4871e6757b4472e2e73b4cfef2644c38983174a4bc728c73f8da02845c28a1212f98cabd293ecae98
- languageName: node
- linkType: hard
-
"@types/history@npm:^4.7.11":
version: 4.7.11
resolution: "@types/history@npm:4.7.11"
@@ -3731,13 +3719,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/minimatch@npm:*":
- version: 5.1.2
- resolution: "@types/minimatch@npm:5.1.2"
- checksum: 10c0/83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562
- languageName: node
- linkType: hard
-
"@types/minimist@npm:~1.2.2":
version: 1.2.5
resolution: "@types/minimist@npm:1.2.5"
@@ -4317,14 +4298,14 @@ __metadata:
dependencies:
"@chromatic-com/storybook": "npm:^3.2.2"
"@sentry/react": "npm:^8.40.0"
- "@storybook/addon-essentials": "npm:^8.4.2"
- "@storybook/addon-interactions": "npm:^8.4.2"
- "@storybook/addon-links": "npm:^8.4.2"
- "@storybook/addon-onboarding": "npm:^8.4.2"
- "@storybook/blocks": "npm:^8.4.2"
- "@storybook/react": "npm:^8.4.2"
- "@storybook/react-vite": "npm:^8.4.2"
- "@storybook/test": "npm:^8.4.2"
+ "@storybook/addon-essentials": "npm:^8.4.6"
+ "@storybook/addon-interactions": "npm:^8.4.6"
+ "@storybook/addon-links": "npm:^8.4.6"
+ "@storybook/addon-onboarding": "npm:^8.4.6"
+ "@storybook/blocks": "npm:^8.4.6"
+ "@storybook/react": "npm:^8.4.6"
+ "@storybook/react-vite": "npm:^8.4.6"
+ "@storybook/test": "npm:^8.4.6"
"@testing-library/dom": "npm:^10.2.0"
"@testing-library/react": "npm:^16.0.0"
"@testing-library/user-event": "npm:^14.5.1"
@@ -4343,7 +4324,7 @@ __metadata:
eslint: "npm:^8.54.0"
eslint-config-react-app: "npm:^7.0.1"
eslint-plugin-chai-friendly: "npm:^0.7.2"
- eslint-plugin-storybook: "npm:^0.11.0"
+ eslint-plugin-storybook: "npm:^0.11.1"
file-saver: "npm:^2.0.5"
happy-dom: "npm:^15.10.2"
history: "npm:^5.3.0"
@@ -4359,7 +4340,7 @@ __metadata:
react-share: "npm:^5.1.1"
react-transition-group: "npm:^4.4.5"
sass: "npm:^1.69.5"
- storybook: "npm:^8.4.2"
+ storybook: "npm:^8.4.6"
typescript: "npm:^5.3.3"
vite: "npm:^5.2.14"
vite-tsconfig-paths: "npm:^4.3.2"
@@ -5817,16 +5798,16 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-storybook@npm:^0.11.0":
- version: 0.11.0
- resolution: "eslint-plugin-storybook@npm:0.11.0"
+"eslint-plugin-storybook@npm:^0.11.1":
+ version: 0.11.1
+ resolution: "eslint-plugin-storybook@npm:0.11.1"
dependencies:
"@storybook/csf": "npm:^0.1.11"
"@typescript-eslint/utils": "npm:^8.8.1"
ts-dedent: "npm:^2.2.0"
peerDependencies:
eslint: ">=6"
- checksum: 10c0/e132d67942fe9f826dbeda5023f8483a71d59dea135d53196dc20132c405aba0155f7dca51f443ed05097287864294f7c9b332771d123e7f6609a0571440b61e
+ checksum: 10c0/0520018311c6da25fe2d0db24a59e99ecefe74c4cadd4eba42ce3b1b0ce2c3cc6f88d48680389374f99e10151a7ef3da52386853d9d5a4058c41ae72e2184549
languageName: node
linkType: hard
@@ -6311,17 +6292,6 @@ __metadata:
languageName: node
linkType: hard
-"glob-promise@npm:^4.2.0":
- version: 4.2.2
- resolution: "glob-promise@npm:4.2.2"
- dependencies:
- "@types/glob": "npm:^7.1.3"
- peerDependencies:
- glob: ^7.1.6
- checksum: 10c0/3eb01bed2901539365df6a4d27800afb8788840647d01f9bf3500b3de756597f2ff4b8c823971ace34db228c83159beca459dc42a70968d4e9c8200ed2cc96bd
- languageName: node
- linkType: hard
-
"glob@npm:^10.2.2, glob@npm:^10.3.10":
version: 10.3.10
resolution: "glob@npm:10.3.10"
@@ -6353,7 +6323,7 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:^7.1.3, glob@npm:^7.2.0":
+"glob@npm:^7.1.3":
version: 7.2.3
resolution: "glob@npm:7.2.3"
dependencies:
@@ -8801,11 +8771,11 @@ __metadata:
languageName: node
linkType: hard
-"storybook@npm:^8.4.2":
- version: 8.4.2
- resolution: "storybook@npm:8.4.2"
+"storybook@npm:^8.4.6":
+ version: 8.4.6
+ resolution: "storybook@npm:8.4.6"
dependencies:
- "@storybook/core": "npm:8.4.2"
+ "@storybook/core": "npm:8.4.6"
peerDependencies:
prettier: ^2 || ^3
peerDependenciesMeta:
@@ -8815,7 +8785,7 @@ __metadata:
getstorybook: ./bin/index.cjs
sb: ./bin/index.cjs
storybook: ./bin/index.cjs
- checksum: 10c0/54791f44de53d465a74c44ec16255ebe5248156eee54b768fdcc12a7556e1b6e2a23c9c5c5eec0c3fcc71c3820398999ede5042f711a851b0ca9c71e65c8ab19
+ checksum: 10c0/e15249718c1efab3d3d05f3152df28fc8f7e2e988bf7414cd4abf2adfb5d6c3b802f05dad5be0521c30d0ba43e55abf516e6f874b0671e0d1e84a7096cb47d3d
languageName: node
linkType: hard
diff --git a/package.json b/package.json
index 90ed222c4..d26b33cc4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "muscle",
- "version": "3.0.0",
+ "version": "3.1.0",
"private": false,
"description": "The MUSCLE platform is an application that provides an easy way to implement and run online listening experiments for music research.",
"license": "MIT",