+
+
+
+
+
+
+ Easing curves
+
+
+
+ Duration
+
+ {
+ if ( typeof value !== 'string' ) {
+ return;
+ }
+ setSelectedDuration( value );
+ setAnimKey( ( k ) => k + 1 );
+ } }
+ >
+
+
+ { DURATION_OPTIONS.map( ( opt ) => (
+
+ { opt.label }
+
+ ) ) }
+
+
+
+ { selectedDuration === 'custom' && (
+ {
+ setCustomDuration( value );
+ setAnimKey( ( k ) => k + 1 );
+ } }
+ style={ { width: '120px' } }
+ />
+ ) }
+
+
+ { EASING_TOKENS.map( ( token ) => (
+
+ ) ) }
+
+
+
+
+ Durations
+ All using easing-balanced
+
+ { DURATION_TOKENS.map( ( token ) => (
+
+ ) ) }
+
+
+
+ );
+}
+
+const meta: Meta< typeof MotionDemo > = {
+ title: 'Design System/Tokens/Motion',
+ component: MotionDemo,
+ parameters: {
+ controls: { hideNoControlsWarning: true },
+ docs: { canvas: { sourceState: 'shown' } },
+ },
+};
+export default meta;
+
+export const Default: StoryObj< typeof MotionDemo > = {};