react-transition-state 1.2.0-alpha.4 → 2.0.0-alpha.1

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.
package/dist/cjs/index.js CHANGED
@@ -11,20 +11,21 @@ var PRE_EXIT = 3;
11
11
  var EXITING = 4;
12
12
  var EXITED = 5;
13
13
  var UNMOUNTED = 6;
14
- var STATES = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
15
- var getFullState = function getFullState(_state) {
14
+ var STATUS = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
15
+ var getState = function getState(_status) {
16
16
  return {
17
- _state: _state,
18
- state: STATES[_state],
19
- isEnter: _state < PRE_EXIT,
20
- isMounted: _state !== UNMOUNTED
17
+ _status: _status,
18
+ status: STATUS[_status],
19
+ isEnter: _status < PRE_EXIT,
20
+ isMounted: _status !== UNMOUNTED,
21
+ isResolved: _status === ENTERED || _status > EXITING
21
22
  };
22
23
  };
23
24
  var startOrEnd = function startOrEnd(unmounted) {
24
25
  return unmounted ? UNMOUNTED : EXITED;
25
26
  };
26
- var getEndState = function getEndState(state, unmountOnExit) {
27
- switch (state) {
27
+ var getEndStatus = function getEndStatus(status, unmountOnExit) {
28
+ switch (status) {
28
29
  case ENTERING:
29
30
  case PRE_ENTER:
30
31
  return ENTERED;
@@ -38,12 +39,13 @@ var getTimeout = function getTimeout(timeout) {
38
39
  return typeof timeout === 'object' ? [timeout.enter, timeout.exit] : [timeout, timeout];
39
40
  };
40
41
 
41
- var updateState$1 = function updateState(state, setState, latestState, timeoutId, onChange) {
42
+ var updateState$1 = function updateState(status, setState, latestState, timeoutId, onChange) {
42
43
  clearTimeout(timeoutId.current);
44
+ var state = getState(status);
43
45
  setState(state);
44
46
  latestState.current = state;
45
47
  onChange && onChange({
46
- state: STATES[state]
48
+ current: state
47
49
  });
48
50
  };
49
51
 
@@ -59,9 +61,11 @@ var useTransition = function useTransition(_temp) {
59
61
  initialEntered = _ref.initialEntered,
60
62
  mountOnEnter = _ref.mountOnEnter,
61
63
  unmountOnExit = _ref.unmountOnExit,
62
- onChange = _ref.onChange;
64
+ onChange = _ref.onStateChange;
63
65
 
64
- var _useState = react.useState(initialEntered ? ENTERED : startOrEnd(mountOnEnter)),
66
+ var _useState = react.useState(function () {
67
+ return getState(initialEntered ? ENTERED : startOrEnd(mountOnEnter));
68
+ }),
65
69
  state = _useState[0],
66
70
  setState = _useState[1];
67
71
 
@@ -73,14 +77,14 @@ var useTransition = function useTransition(_temp) {
73
77
  exitTimeout = _getTimeout[1];
74
78
 
75
79
  var endTransition = react.useCallback(function () {
76
- var newState = getEndState(latestState.current, unmountOnExit);
77
- newState && updateState$1(newState, setState, latestState, timeoutId, onChange);
80
+ var status = getEndStatus(latestState.current._status, unmountOnExit);
81
+ status && updateState$1(status, setState, latestState, timeoutId, onChange);
78
82
  }, [onChange, unmountOnExit]);
79
83
  var toggle = react.useCallback(function (toEnter) {
80
- var transitState = function transitState(newState) {
81
- updateState$1(newState, setState, latestState, timeoutId, onChange);
84
+ var transitState = function transitState(status) {
85
+ updateState$1(status, setState, latestState, timeoutId, onChange);
82
86
 
83
- switch (newState) {
87
+ switch (status) {
84
88
  case ENTERING:
85
89
  if (enterTimeout >= 0) timeoutId.current = setTimeout(endTransition, enterTimeout);
86
90
  break;
@@ -92,13 +96,13 @@ var useTransition = function useTransition(_temp) {
92
96
  case PRE_ENTER:
93
97
  case PRE_EXIT:
94
98
  timeoutId.current = setTimeout(function () {
95
- return transitState(newState + 1);
99
+ return transitState(status + 1);
96
100
  }, 0);
97
101
  break;
98
102
  }
99
103
  };
100
104
 
101
- var enterStage = latestState.current <= ENTERED;
105
+ var enterStage = latestState.current._status <= ENTERED;
102
106
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
103
107
 
104
108
  if (toEnter) {
@@ -112,7 +116,7 @@ var useTransition = function useTransition(_temp) {
112
116
  return clearTimeout(timeoutId.current);
113
117
  };
114
118
  }, []);
115
- return [STATES[state], toggle, endTransition];
119
+ return [state, toggle, endTransition];
116
120
  };
117
121
 
118
122
  var initialStateMap = new Map();
@@ -120,13 +124,13 @@ var initialConfigMap = new Map();
120
124
 
121
125
  var updateState = function updateState(_ref) {
122
126
  var key = _ref.key,
123
- _state = _ref.newState,
127
+ status = _ref.status,
124
128
  setStateMap = _ref.setStateMap,
125
129
  latestStateMap = _ref.latestStateMap,
126
130
  timeoutId = _ref.timeoutId,
127
131
  onChange = _ref.onChange;
128
132
  clearTimeout(timeoutId);
129
- var state = getFullState(_state);
133
+ var state = getState(status);
130
134
  var stateMap = new Map(latestStateMap.current);
131
135
  stateMap.set(key, state);
132
136
  setStateMap(stateMap);
@@ -139,7 +143,7 @@ var updateState = function updateState(_ref) {
139
143
 
140
144
  var useTransitionMap = function useTransitionMap(_temp) {
141
145
  var _ref2 = _temp === void 0 ? {} : _temp,
142
- singleEnter = _ref2.singleEnter,
146
+ allowMultiple = _ref2.allowMultiple,
143
147
  _ref2$enter = _ref2.enter,
144
148
  enter = _ref2$enter === void 0 ? true : _ref2$enter,
145
149
  _ref2$exit = _ref2.exit,
@@ -150,7 +154,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
150
154
  initialEntered = _ref2.initialEntered,
151
155
  mountOnEnter = _ref2.mountOnEnter,
152
156
  unmountOnExit = _ref2.unmountOnExit,
153
- onChange = _ref2.onChange;
157
+ onChange = _ref2.onStateChange;
154
158
 
155
159
  var _useState = react.useState(initialStateMap),
156
160
  stateMap = _useState[0],
@@ -168,10 +172,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
168
172
  _ref3$initialEntered = _ref3.initialEntered,
169
173
  _initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
170
174
 
171
- var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
175
+ var status = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
172
176
  updateState({
173
177
  key: key,
174
- newState: newState,
178
+ status: status,
175
179
  setStateMap: setStateMap,
176
180
  latestStateMap: latestStateMap
177
181
  });
@@ -200,10 +204,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
200
204
  var _configMap$current$ge = configMap.current.get(key),
201
205
  timeoutId = _configMap$current$ge.timeoutId;
202
206
 
203
- var newState = getEndState(stateObj._state, unmountOnExit);
204
- newState && updateState({
207
+ var status = getEndStatus(stateObj._status, unmountOnExit);
208
+ status && updateState({
205
209
  key: key,
206
- newState: newState,
210
+ status: status,
207
211
  setStateMap: setStateMap,
208
212
  latestStateMap: latestStateMap,
209
213
  timeoutId: timeoutId,
@@ -220,17 +224,17 @@ var useTransitionMap = function useTransitionMap(_temp) {
220
224
 
221
225
  var config = configMap.current.get(key);
222
226
 
223
- var transitState = function transitState(newState) {
227
+ var transitState = function transitState(status) {
224
228
  updateState({
225
229
  key: key,
226
- newState: newState,
230
+ status: status,
227
231
  setStateMap: setStateMap,
228
232
  latestStateMap: latestStateMap,
229
233
  timeoutId: config.timeoutId,
230
234
  onChange: onChange
231
235
  });
232
236
 
233
- switch (newState) {
237
+ switch (status) {
234
238
  case ENTERING:
235
239
  if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
236
240
  return endTransition(key);
@@ -246,19 +250,19 @@ var useTransitionMap = function useTransitionMap(_temp) {
246
250
  case PRE_ENTER:
247
251
  case PRE_EXIT:
248
252
  config.timeoutId = setTimeout(function () {
249
- return transitState(newState + 1);
253
+ return transitState(status + 1);
250
254
  }, 0);
251
255
  break;
252
256
  }
253
257
  };
254
258
 
255
- var enterStage = stateObj._state <= ENTERED;
259
+ var enterStage = stateObj._status <= ENTERED;
256
260
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
257
261
 
258
262
  if (toEnter) {
259
263
  if (!enterStage) {
260
264
  transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
261
- singleEnter && latestStateMap.current.forEach(function (_, _key) {
265
+ !allowMultiple && latestStateMap.current.forEach(function (_, _key) {
262
266
  return _key !== key && toggle(_key, false);
263
267
  });
264
268
  }
@@ -267,7 +271,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
267
271
  transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
268
272
  }
269
273
  }
270
- }, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
274
+ }, [onChange, endTransition, allowMultiple, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
271
275
  return {
272
276
  stateMap: stateMap,
273
277
  toggle: toggle,
@@ -1,12 +1,13 @@
1
1
  import { useState, useRef, useCallback, useEffect } from 'react';
2
- import { ENTERED, startOrEnd, getTimeout, getEndState, PRE_EXIT, EXITING, STATES, PRE_ENTER, ENTERING } from './utils.js';
2
+ import { getState, ENTERED, startOrEnd, getTimeout, getEndStatus, PRE_EXIT, EXITING, PRE_ENTER, ENTERING } from './utils.js';
3
3
 
4
- var updateState = function updateState(state, setState, latestState, timeoutId, onChange) {
4
+ var updateState = function updateState(status, setState, latestState, timeoutId, onChange) {
5
5
  clearTimeout(timeoutId.current);
6
+ var state = getState(status);
6
7
  setState(state);
7
8
  latestState.current = state;
8
9
  onChange && onChange({
9
- state: STATES[state]
10
+ current: state
10
11
  });
11
12
  };
12
13
 
@@ -22,9 +23,11 @@ var useTransition = function useTransition(_temp) {
22
23
  initialEntered = _ref.initialEntered,
23
24
  mountOnEnter = _ref.mountOnEnter,
24
25
  unmountOnExit = _ref.unmountOnExit,
25
- onChange = _ref.onChange;
26
+ onChange = _ref.onStateChange;
26
27
 
27
- var _useState = useState(initialEntered ? ENTERED : startOrEnd(mountOnEnter)),
28
+ var _useState = useState(function () {
29
+ return getState(initialEntered ? ENTERED : startOrEnd(mountOnEnter));
30
+ }),
28
31
  state = _useState[0],
29
32
  setState = _useState[1];
30
33
 
@@ -36,14 +39,14 @@ var useTransition = function useTransition(_temp) {
36
39
  exitTimeout = _getTimeout[1];
37
40
 
38
41
  var endTransition = useCallback(function () {
39
- var newState = getEndState(latestState.current, unmountOnExit);
40
- newState && updateState(newState, setState, latestState, timeoutId, onChange);
42
+ var status = getEndStatus(latestState.current._status, unmountOnExit);
43
+ status && updateState(status, setState, latestState, timeoutId, onChange);
41
44
  }, [onChange, unmountOnExit]);
42
45
  var toggle = useCallback(function (toEnter) {
43
- var transitState = function transitState(newState) {
44
- updateState(newState, setState, latestState, timeoutId, onChange);
46
+ var transitState = function transitState(status) {
47
+ updateState(status, setState, latestState, timeoutId, onChange);
45
48
 
46
- switch (newState) {
49
+ switch (status) {
47
50
  case ENTERING:
48
51
  if (enterTimeout >= 0) timeoutId.current = setTimeout(endTransition, enterTimeout);
49
52
  break;
@@ -55,13 +58,13 @@ var useTransition = function useTransition(_temp) {
55
58
  case PRE_ENTER:
56
59
  case PRE_EXIT:
57
60
  timeoutId.current = setTimeout(function () {
58
- return transitState(newState + 1);
61
+ return transitState(status + 1);
59
62
  }, 0);
60
63
  break;
61
64
  }
62
65
  };
63
66
 
64
- var enterStage = latestState.current <= ENTERED;
67
+ var enterStage = latestState.current._status <= ENTERED;
65
68
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
66
69
 
67
70
  if (toEnter) {
@@ -75,7 +78,7 @@ var useTransition = function useTransition(_temp) {
75
78
  return clearTimeout(timeoutId.current);
76
79
  };
77
80
  }, []);
78
- return [STATES[state], toggle, endTransition];
81
+ return [state, toggle, endTransition];
79
82
  };
80
83
 
81
84
  export { useTransition };
@@ -1,18 +1,18 @@
1
1
  import { useState, useRef, useCallback } from 'react';
2
- import { getTimeout, ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, getFullState } from './utils.js';
2
+ import { getTimeout, ENTERED, startOrEnd, getEndStatus, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, getState } from './utils.js';
3
3
 
4
4
  var initialStateMap = new Map();
5
5
  var initialConfigMap = new Map();
6
6
 
7
7
  var updateState = function updateState(_ref) {
8
8
  var key = _ref.key,
9
- _state = _ref.newState,
9
+ status = _ref.status,
10
10
  setStateMap = _ref.setStateMap,
11
11
  latestStateMap = _ref.latestStateMap,
12
12
  timeoutId = _ref.timeoutId,
13
13
  onChange = _ref.onChange;
14
14
  clearTimeout(timeoutId);
15
- var state = getFullState(_state);
15
+ var state = getState(status);
16
16
  var stateMap = new Map(latestStateMap.current);
17
17
  stateMap.set(key, state);
18
18
  setStateMap(stateMap);
@@ -25,7 +25,7 @@ var updateState = function updateState(_ref) {
25
25
 
26
26
  var useTransitionMap = function useTransitionMap(_temp) {
27
27
  var _ref2 = _temp === void 0 ? {} : _temp,
28
- singleEnter = _ref2.singleEnter,
28
+ allowMultiple = _ref2.allowMultiple,
29
29
  _ref2$enter = _ref2.enter,
30
30
  enter = _ref2$enter === void 0 ? true : _ref2$enter,
31
31
  _ref2$exit = _ref2.exit,
@@ -36,7 +36,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
36
36
  initialEntered = _ref2.initialEntered,
37
37
  mountOnEnter = _ref2.mountOnEnter,
38
38
  unmountOnExit = _ref2.unmountOnExit,
39
- onChange = _ref2.onChange;
39
+ onChange = _ref2.onStateChange;
40
40
 
41
41
  var _useState = useState(initialStateMap),
42
42
  stateMap = _useState[0],
@@ -54,10 +54,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
54
54
  _ref3$initialEntered = _ref3.initialEntered,
55
55
  _initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
56
56
 
57
- var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
57
+ var status = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
58
58
  updateState({
59
59
  key: key,
60
- newState: newState,
60
+ status: status,
61
61
  setStateMap: setStateMap,
62
62
  latestStateMap: latestStateMap
63
63
  });
@@ -86,10 +86,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
86
86
  var _configMap$current$ge = configMap.current.get(key),
87
87
  timeoutId = _configMap$current$ge.timeoutId;
88
88
 
89
- var newState = getEndState(stateObj._state, unmountOnExit);
90
- newState && updateState({
89
+ var status = getEndStatus(stateObj._status, unmountOnExit);
90
+ status && updateState({
91
91
  key: key,
92
- newState: newState,
92
+ status: status,
93
93
  setStateMap: setStateMap,
94
94
  latestStateMap: latestStateMap,
95
95
  timeoutId: timeoutId,
@@ -106,17 +106,17 @@ var useTransitionMap = function useTransitionMap(_temp) {
106
106
 
107
107
  var config = configMap.current.get(key);
108
108
 
109
- var transitState = function transitState(newState) {
109
+ var transitState = function transitState(status) {
110
110
  updateState({
111
111
  key: key,
112
- newState: newState,
112
+ status: status,
113
113
  setStateMap: setStateMap,
114
114
  latestStateMap: latestStateMap,
115
115
  timeoutId: config.timeoutId,
116
116
  onChange: onChange
117
117
  });
118
118
 
119
- switch (newState) {
119
+ switch (status) {
120
120
  case ENTERING:
121
121
  if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
122
122
  return endTransition(key);
@@ -132,19 +132,19 @@ var useTransitionMap = function useTransitionMap(_temp) {
132
132
  case PRE_ENTER:
133
133
  case PRE_EXIT:
134
134
  config.timeoutId = setTimeout(function () {
135
- return transitState(newState + 1);
135
+ return transitState(status + 1);
136
136
  }, 0);
137
137
  break;
138
138
  }
139
139
  };
140
140
 
141
- var enterStage = stateObj._state <= ENTERED;
141
+ var enterStage = stateObj._status <= ENTERED;
142
142
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
143
143
 
144
144
  if (toEnter) {
145
145
  if (!enterStage) {
146
146
  transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
147
- singleEnter && latestStateMap.current.forEach(function (_, _key) {
147
+ !allowMultiple && latestStateMap.current.forEach(function (_, _key) {
148
148
  return _key !== key && toggle(_key, false);
149
149
  });
150
150
  }
@@ -153,7 +153,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
153
153
  transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
154
154
  }
155
155
  }
156
- }, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
156
+ }, [onChange, endTransition, allowMultiple, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
157
157
  return {
158
158
  stateMap: stateMap,
159
159
  toggle: toggle,
@@ -5,20 +5,21 @@ var PRE_EXIT = 3;
5
5
  var EXITING = 4;
6
6
  var EXITED = 5;
7
7
  var UNMOUNTED = 6;
8
- var STATES = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
9
- var getFullState = function getFullState(_state) {
8
+ var STATUS = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
9
+ var getState = function getState(_status) {
10
10
  return {
11
- _state: _state,
12
- state: STATES[_state],
13
- isEnter: _state < PRE_EXIT,
14
- isMounted: _state !== UNMOUNTED
11
+ _status: _status,
12
+ status: STATUS[_status],
13
+ isEnter: _status < PRE_EXIT,
14
+ isMounted: _status !== UNMOUNTED,
15
+ isResolved: _status === ENTERED || _status > EXITING
15
16
  };
16
17
  };
17
18
  var startOrEnd = function startOrEnd(unmounted) {
18
19
  return unmounted ? UNMOUNTED : EXITED;
19
20
  };
20
- var getEndState = function getEndState(state, unmountOnExit) {
21
- switch (state) {
21
+ var getEndStatus = function getEndStatus(status, unmountOnExit) {
22
+ switch (status) {
22
23
  case ENTERING:
23
24
  case PRE_ENTER:
24
25
  return ENTERED;
@@ -32,4 +33,4 @@ var getTimeout = function getTimeout(timeout) {
32
33
  return typeof timeout === 'object' ? [timeout.enter, timeout.exit] : [timeout, timeout];
33
34
  };
34
35
 
35
- export { ENTERED, ENTERING, EXITED, EXITING, PRE_ENTER, PRE_EXIT, STATES, UNMOUNTED, getEndState, getFullState, getTimeout, startOrEnd };
36
+ export { ENTERED, ENTERING, EXITED, EXITING, PRE_ENTER, PRE_EXIT, STATUS, UNMOUNTED, getEndStatus, getState, getTimeout, startOrEnd };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-transition-state",
3
- "version": "1.2.0-alpha.4",
4
- "description": "Zero dependency, 0.7KB react-transition-group alternative.",
3
+ "version": "2.0.0-alpha.1",
4
+ "description": "Zero dependency React transition state machine.",
5
5
  "author": "Zheng Song",
6
6
  "license": "MIT",
7
7
  "repository": "szhsin/react-transition-state",
@@ -19,7 +19,8 @@
19
19
  "transition",
20
20
  "animation",
21
21
  "component",
22
- "hook"
22
+ "hook",
23
+ "state machine"
23
24
  ],
24
25
  "scripts": {
25
26
  "start": "rollup -c -w",
package/types/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type TransitionState =
1
+ export type TransitionStatus =
2
2
  | 'preEnter'
3
3
  | 'entering'
4
4
  | 'entered'
@@ -7,11 +7,12 @@ export type TransitionState =
7
7
  | 'exited'
8
8
  | 'unmounted';
9
9
 
10
- export interface State {
11
- state: TransitionState;
10
+ export type TransitionState = Readonly<{
11
+ status: TransitionStatus;
12
12
  isMounted: boolean;
13
13
  isEnter: boolean;
14
- }
14
+ isResolved: boolean;
15
+ }>;
15
16
 
16
17
  export interface TransitionOptions {
17
18
  initialEntered?: boolean;
@@ -22,22 +23,22 @@ export interface TransitionOptions {
22
23
  enter?: boolean;
23
24
  exit?: boolean;
24
25
  timeout?: number | { enter?: number; exit?: number };
25
- onChange?: (event: { state: TransitionState }) => void;
26
+ onStateChange?: (event: { current: TransitionState }) => void;
26
27
  }
27
28
 
28
29
  export interface TransitionItemOptions {
29
30
  initialEntered?: boolean;
30
31
  }
31
32
 
32
- export interface TransitionMapOptions<K> extends Omit<TransitionOptions, 'onChange'> {
33
- singleEnter?: boolean;
34
- onChange?: (event: { key: K; current: State }) => void;
33
+ export interface TransitionMapOptions<K> extends Omit<TransitionOptions, 'onStateChange'> {
34
+ allowMultiple?: boolean;
35
+ onStateChange?: (event: { key: K; current: TransitionState }) => void;
35
36
  }
36
37
 
37
38
  export type TransitionResult = [TransitionState, (toEnter?: boolean) => void, () => void];
38
39
 
39
40
  export interface TransitionMapResult<K> {
40
- stateMap: Omit<Map<K, State>, 'clear' | 'delete' | 'set'>;
41
+ stateMap: ReadonlyMap<K, TransitionState>;
41
42
  toggle: (key: K, toEnter?: boolean) => void;
42
43
  endTransition: (key: K) => void;
43
44
  setItem: (key: K, options?: TransitionItemOptions) => void;