@tooee/choose 0.7.2 → 0.8.0

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 (45) hide show
  1. package/dist/choose-filter.d.ts.map +1 -1
  2. package/dist/choose-filter.js +11 -2
  3. package/dist/choose-filter.js.map +1 -1
  4. package/dist/choose-list.d.ts.map +1 -1
  5. package/dist/choose-list.js +10 -1
  6. package/dist/choose-list.js.map +1 -1
  7. package/dist/choose-panel.d.ts +7 -9
  8. package/dist/choose-panel.d.ts.map +1 -1
  9. package/dist/choose-panel.js +5 -8
  10. package/dist/choose-panel.js.map +1 -1
  11. package/dist/choose-store.d.ts +57 -0
  12. package/dist/choose-store.d.ts.map +1 -0
  13. package/dist/choose-store.js +102 -0
  14. package/dist/choose-store.js.map +1 -0
  15. package/dist/choose.d.ts +5 -5
  16. package/dist/choose.d.ts.map +1 -1
  17. package/dist/choose.js +26 -12
  18. package/dist/choose.js.map +1 -1
  19. package/dist/fuzzy.d.ts.map +1 -1
  20. package/dist/fuzzy.js +2 -14
  21. package/dist/fuzzy.js.map +1 -1
  22. package/dist/launch.d.ts.map +1 -1
  23. package/dist/launch.js +1 -1
  24. package/dist/launch.js.map +1 -1
  25. package/dist/source.d.ts.map +1 -1
  26. package/dist/source.js +17 -5
  27. package/dist/source.js.map +1 -1
  28. package/dist/use-choose-dialog.d.ts.map +1 -1
  29. package/dist/use-choose-dialog.js +22 -84
  30. package/dist/use-choose-dialog.js.map +1 -1
  31. package/dist/use-choose.d.ts +1 -1
  32. package/dist/use-choose.d.ts.map +1 -1
  33. package/dist/use-choose.js +236 -264
  34. package/dist/use-choose.js.map +1 -1
  35. package/package.json +10 -7
  36. package/src/choose-filter.tsx +10 -2
  37. package/src/choose-list.tsx +9 -1
  38. package/src/choose-panel.tsx +18 -71
  39. package/src/choose-store.ts +146 -0
  40. package/src/choose.tsx +43 -27
  41. package/src/fuzzy.ts +2 -17
  42. package/src/launch.tsx +7 -2
  43. package/src/source.ts +24 -6
  44. package/src/use-choose-dialog.tsx +30 -98
  45. package/src/use-choose.ts +273 -278
@@ -1,6 +1,7 @@
1
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
- import { useActiveCommandSurface, useActions, useCommand, useCommandSurfaceId, useMode, useProvideCommandContext, useSetMode, } from "@tooee/commands";
3
- import { fuzzyFilter } from "./fuzzy.js";
1
+ import { useCallback, useEffect, useMemo, useRef } from "react";
2
+ import { useSelector } from "@xstate/store-react";
3
+ import { useActiveCommandSurface, useActions, useCommandSurfaceId, useLatest, useLazyRef, useMode, useProvideCommandContext, useSetMode, } from "@tooee/commands";
4
+ import { createChooseStore, selectActiveIndex, selectError, selectFilterQuery, selectItems, selectLoading, selectMatches, selectReloadRevision, selectSelectedOriginalIndices, } from "./choose-store.js";
4
5
  import { chooseSourceError, loadChooseSource } from "./source.js";
5
6
  /**
6
7
  * Shared headless chooser: source lifecycle, fuzzy matches, selection,
@@ -9,18 +10,22 @@ import { chooseSourceError, loadChooseSource } from "./source.js";
9
10
  export const useChoose = function useChoose(options) {
10
11
  const { source, multi = false, initialFilter = "", commandScope = "choose" } = options;
11
12
  const initialItems = Array.isArray(source) ? source : [];
12
- const [items, setItems] = useState(initialItems);
13
- const [filterQuery, setFilterQuery] = useState(initialFilter);
14
- const [activeIndex, setActiveIndex] = useState(0);
15
- const [selectedOriginalIndices, setSelectedOriginalIndices] = useState(new Set());
16
- const [loading, setLoading] = useState(!Array.isArray(source));
17
- const [error, setError] = useState(null);
18
- const [reloadRevision, setReloadRevision] = useState(0);
13
+ const store = useLazyRef(() => createChooseStore({
14
+ initialFilter,
15
+ items: initialItems,
16
+ loading: !Array.isArray(source),
17
+ })).current;
19
18
  const filterRef = useRef(null);
20
- const requestIdRef = useRef(0);
21
- const initialArraySourceRef = useRef(Array.isArray(source) ? source : null);
19
+ const initialArraySourceRef = useLazyRef(() => Array.isArray(source) ? source : null);
22
20
  const didHandleInitialSourceRef = useRef(false);
23
- const matches = useMemo(() => fuzzyFilter(items, filterQuery), [items, filterQuery]);
21
+ const items = useSelector(store, (snapshot) => selectItems(snapshot.context));
22
+ const matches = useSelector(store, (snapshot) => selectMatches(snapshot.context));
23
+ const filterQuery = useSelector(store, (snapshot) => selectFilterQuery(snapshot.context));
24
+ const activeIndex = useSelector(store, (snapshot) => selectActiveIndex(snapshot.context));
25
+ const selectedOriginalIndices = useSelector(store, (snapshot) => selectSelectedOriginalIndices(snapshot.context));
26
+ const loading = useSelector(store, (snapshot) => selectLoading(snapshot.context));
27
+ const error = useSelector(store, (snapshot) => selectError(snapshot.context));
28
+ const reloadRevision = useSelector(store, (snapshot) => selectReloadRevision(snapshot.context));
24
29
  const activeItem = matches[activeIndex]?.item;
25
30
  const selectedItems = useMemo(() => {
26
31
  if (!multi) {
@@ -37,305 +42,273 @@ export const useChoose = function useChoose(options) {
37
42
  }, [multi, activeItem, selectedOriginalIndices, items]);
38
43
  const mode = useMode();
39
44
  const setMode = useSetMode();
40
- // Stable controller methods read live values through refs, including when
41
- // multiple imperative operations happen before React renders again.
42
- const optionsRef = useRef(options);
43
- optionsRef.current = options;
44
- const itemsRef = useRef(items);
45
- itemsRef.current = items;
46
- const matchesRef = useRef(matches);
47
- matchesRef.current = matches;
48
- const filterQueryRef = useRef(filterQuery);
49
- filterQueryRef.current = filterQuery;
50
- const activeIndexRef = useRef(activeIndex);
51
- activeIndexRef.current = activeIndex;
52
- const selectedRef = useRef(selectedOriginalIndices);
53
- selectedRef.current = selectedOriginalIndices;
54
- const multiRef = useRef(multi);
55
- multiRef.current = multi;
56
- const modeRef = useRef(mode);
57
- modeRef.current = mode;
58
- const replaceItems = useCallback((nextItems) => {
59
- itemsRef.current = nextItems;
60
- matchesRef.current = fuzzyFilter(nextItems, filterQueryRef.current);
61
- activeIndexRef.current = 0;
62
- selectedRef.current = new Set();
63
- setItems(nextItems);
64
- setActiveIndex(0);
65
- setSelectedOriginalIndices(selectedRef.current);
66
- }, []);
45
+ const optionsRef = useLatest(options);
46
+ const multiRef = useLatest(multi);
47
+ const modeRef = useLatest(mode);
67
48
  useEffect(() => {
68
- requestIdRef.current += 1;
69
- const requestId = requestIdRef.current;
70
49
  let active = true;
71
50
  const deactivate = () => {
72
51
  active = false;
73
52
  };
74
- let result;
75
- // Direct arrays seed state during the first render. Avoid a redundant
76
- // post-mount reset that could overwrite immediate controller operations.
53
+ // Direct arrays seed the store before the first render. Avoid replacing
54
+ // state after mount, which could overwrite immediate controller calls.
77
55
  if (!didHandleInitialSourceRef.current &&
78
56
  Array.isArray(source) &&
79
57
  source === initialArraySourceRef.current) {
80
58
  didHandleInitialSourceRef.current = true;
81
- setLoading(false);
82
59
  return deactivate;
83
60
  }
84
61
  didHandleInitialSourceRef.current = true;
85
- setError(null);
62
+ store.trigger.requestStarted({});
63
+ const { requestId } = store.getSnapshot().context;
64
+ let result;
86
65
  try {
87
66
  result = loadChooseSource(source);
88
67
  }
89
68
  catch (loadError) {
90
- if (requestId !== requestIdRef.current) {
91
- return deactivate;
92
- }
93
- replaceItems([]);
94
- setError(chooseSourceError(loadError));
95
- setLoading(false);
69
+ store.trigger.loadFailed({ error: chooseSourceError(loadError), requestId });
96
70
  return deactivate;
97
71
  }
98
72
  if (result instanceof Promise) {
99
- setLoading(true);
73
+ store.trigger.loadingStarted({ requestId });
100
74
  void (async () => {
101
75
  try {
102
76
  const loaded = await result;
103
- if (!active || requestId !== requestIdRef.current) {
104
- return;
77
+ if (active) {
78
+ store.trigger.loadSucceeded({ items: loaded, requestId });
105
79
  }
106
- replaceItems(loaded);
107
- setError(null);
108
- setLoading(false);
109
80
  }
110
81
  catch (loadError) {
111
- if (!active || requestId !== requestIdRef.current) {
112
- return;
82
+ if (active) {
83
+ store.trigger.loadFailed({ error: chooseSourceError(loadError), requestId });
113
84
  }
114
- replaceItems([]);
115
- setError(chooseSourceError(loadError));
116
- setLoading(false);
117
85
  }
118
86
  })();
119
87
  return deactivate;
120
88
  }
121
- replaceItems(result);
122
- setLoading(false);
89
+ store.trigger.loadSucceeded({ items: result, requestId });
123
90
  return deactivate;
124
- }, [source, reloadRevision, replaceItems]);
91
+ }, [source, reloadRevision, store, initialArraySourceRef]);
125
92
  const setFilter = useCallback((query) => {
126
- // Controlled OpenTUI inputs may echo a programmatic `value` update through
127
- // onInput. Only a real query change resets navigation.
128
- if (query === filterQueryRef.current) {
129
- setFilterQuery(query);
130
- return;
131
- }
132
- filterQueryRef.current = query;
133
- matchesRef.current = fuzzyFilter(itemsRef.current, query);
134
- activeIndexRef.current = 0;
135
- setFilterQuery(query);
136
- setActiveIndex(0);
137
- }, []);
93
+ store.trigger.filterChanged({ query });
94
+ }, [store]);
138
95
  const updateActiveIndex = useCallback((index) => {
139
- const lastIndex = Math.max(0, matchesRef.current.length - 1);
140
- const next = Math.min(lastIndex, Math.max(0, index));
141
- activeIndexRef.current = next;
142
- setActiveIndex(next);
143
- }, []);
96
+ store.trigger.activeIndexSet({ index });
97
+ }, [store]);
144
98
  const moveUp = useCallback(() => {
145
- updateActiveIndex(activeIndexRef.current - 1);
146
- }, [updateActiveIndex]);
99
+ store.trigger.moved({ delta: -1 });
100
+ }, [store]);
147
101
  const moveDown = useCallback(() => {
148
- updateActiveIndex(activeIndexRef.current + 1);
149
- }, [updateActiveIndex]);
150
- const getActiveItem = useCallback(() => matchesRef.current[activeIndexRef.current]?.item, []);
102
+ store.trigger.moved({ delta: 1 });
103
+ }, [store]);
104
+ const getActiveItem = useCallback(() => {
105
+ const { context } = store.getSnapshot();
106
+ return context.matches[context.activeIndex]?.item;
107
+ }, [store]);
151
108
  const getSelectedItems = useCallback(() => {
152
- const active = getActiveItem();
109
+ const { context } = store.getSnapshot();
110
+ const active = context.matches[context.activeIndex]?.item;
153
111
  if (!multiRef.current) {
154
112
  return active === undefined ? [] : [active];
155
113
  }
156
- const selected = [...selectedRef.current].flatMap((index) => {
157
- const item = itemsRef.current[index];
114
+ const selected = [...context.selectedOriginalIndices].flatMap((index) => {
115
+ const item = context.items[index];
158
116
  return item === undefined ? [] : [item];
159
117
  });
160
118
  if (selected.length > 0) {
161
119
  return selected;
162
120
  }
163
121
  return active === undefined ? [] : [active];
164
- }, [getActiveItem]);
122
+ }, [multiRef, store]);
165
123
  const toggleActive = useCallback(() => {
166
- if (!multiRef.current) {
167
- return;
168
- }
169
- const originalIndex = matchesRef.current[activeIndexRef.current]?.originalIndex;
170
- if (originalIndex === undefined) {
171
- return;
172
- }
173
- const next = new Set(selectedRef.current);
174
- if (next.has(originalIndex)) {
175
- next.delete(originalIndex);
176
- }
177
- else {
178
- next.add(originalIndex);
124
+ if (multiRef.current) {
125
+ store.trigger.activeToggled({});
179
126
  }
180
- selectedRef.current = next;
181
- setSelectedOriginalIndices(next);
182
- }, []);
127
+ }, [multiRef, store]);
183
128
  const submit = useCallback(() => {
184
129
  void optionsRef.current.onSubmit({ items: getSelectedItems() });
185
- }, [getSelectedItems]);
186
- const cancel = useCallback(() => optionsRef.current.onCancel?.(), []);
130
+ }, [getSelectedItems, optionsRef]);
131
+ const cancel = useCallback(() => optionsRef.current.onCancel?.(), [optionsRef]);
187
132
  const reload = useCallback(() => {
188
- setReloadRevision((revision) => revision + 1);
189
- }, []);
133
+ store.trigger.reloadRequested({});
134
+ }, [store]);
190
135
  const setModeExternal = useCallback((nextMode) => {
191
136
  setMode(nextMode);
192
137
  }, [setMode]);
193
- useProvideCommandContext(() => ({
194
- choose: {
195
- activeItem: getActiveItem(),
196
- filterQuery: filterQueryRef.current,
197
- selectedItems: getSelectedItems(),
198
- },
199
- ...(optionsRef.current.onCancel ? { exit: cancel } : {}),
200
- }));
201
- useActions(options.commands);
202
- const enabled = useCallback((group) => !(optionsRef.current.disable?.includes(group) ?? false), []);
203
- useCommand({
204
- handler: () => {
205
- if (modeRef.current === "insert") {
206
- setMode("cursor");
207
- }
208
- else {
209
- cancel();
210
- }
211
- },
212
- hidden: true,
213
- hotkey: "Escape",
214
- id: `${commandScope}:escape`,
215
- modes: ["insert", "cursor"],
216
- title: "Back / cancel",
217
- when: () => modeRef.current === "insert"
218
- ? enabled("mode")
219
- : enabled("cancel") && optionsRef.current.onCancel !== undefined,
220
- });
221
- useCommand({
222
- handler: cancel,
223
- hidden: true,
224
- hotkey: "q",
225
- id: `${commandScope}:cancel`,
226
- modes: ["cursor"],
227
- title: "Cancel",
228
- when: () => enabled("cancel") && optionsRef.current.onCancel !== undefined,
229
- });
230
- useCommand({
231
- handler: () => {
232
- setMode("insert");
233
- },
234
- hidden: true,
235
- hotkey: "i",
236
- id: `${commandScope}:insert-mode-i`,
237
- modes: ["cursor"],
238
- title: "Insert mode",
239
- when: () => enabled("mode"),
240
- });
241
- useCommand({
242
- handler: () => {
243
- setMode("insert");
244
- },
245
- hidden: true,
246
- hotkey: "a",
247
- id: `${commandScope}:insert-mode-a`,
248
- modes: ["cursor"],
249
- title: "Insert mode",
250
- when: () => enabled("mode"),
251
- });
252
- useCommand({
253
- handler: moveDown,
254
- hidden: true,
255
- hotkey: "j",
256
- id: `${commandScope}:move-down-vim`,
257
- modes: ["cursor"],
258
- title: "Move down",
259
- when: () => enabled("navigation"),
260
- });
261
- useCommand({
262
- handler: moveUp,
263
- hidden: true,
264
- hotkey: "k",
265
- id: `${commandScope}:move-up-vim`,
266
- modes: ["cursor"],
267
- title: "Move up",
268
- when: () => enabled("navigation"),
269
- });
270
- useCommand({
271
- handler: submit,
272
- hidden: true,
273
- hotkey: "Enter",
274
- id: `${commandScope}:confirm`,
275
- modes: ["insert", "cursor"],
276
- title: "Confirm",
277
- when: () => enabled("submit"),
278
- });
279
- useCommand({
280
- handler: moveUp,
281
- hidden: true,
282
- hotkey: "up",
283
- id: `${commandScope}:move-up`,
284
- modes: ["insert", "cursor"],
285
- title: "Move up",
286
- when: () => enabled("navigation"),
287
- });
288
- useCommand({
289
- handler: moveUp,
290
- hidden: true,
291
- hotkey: "ctrl+p",
292
- id: `${commandScope}:move-up-ctrl-p`,
293
- modes: ["insert", "cursor"],
294
- title: "Move up",
295
- when: () => enabled("navigation"),
296
- });
297
- useCommand({
298
- handler: moveDown,
299
- hidden: true,
300
- hotkey: "down",
301
- id: `${commandScope}:move-down`,
302
- modes: ["insert", "cursor"],
303
- title: "Move down",
304
- when: () => enabled("navigation"),
305
- });
306
- useCommand({
307
- handler: moveDown,
308
- hidden: true,
309
- hotkey: "ctrl+n",
310
- id: `${commandScope}:move-down-ctrl-n`,
311
- modes: ["insert", "cursor"],
312
- title: "Move down",
313
- when: () => enabled("navigation"),
314
- });
315
- useCommand({
316
- handler: () => {
317
- toggleActive();
318
- moveDown();
319
- },
320
- hidden: true,
321
- hotkey: "Tab",
322
- id: `${commandScope}:toggle-next`,
323
- modes: ["insert", "cursor"],
324
- title: "Toggle selection and move down",
325
- when: () => enabled("multi-select") && multiRef.current,
326
- });
327
- useCommand({
328
- handler: () => {
329
- toggleActive();
330
- moveUp();
331
- },
332
- hidden: true,
333
- hotkey: "shift+Tab",
334
- id: `${commandScope}:toggle-previous`,
335
- modes: ["insert", "cursor"],
336
- title: "Toggle selection and move up",
337
- when: () => enabled("multi-select") && multiRef.current,
138
+ useProvideCommandContext(() => {
139
+ const context = {
140
+ choose: {
141
+ activeItem: getActiveItem(),
142
+ filterQuery: store.getSnapshot().context.filterQuery,
143
+ selectedItems: getSelectedItems(),
144
+ },
145
+ };
146
+ if (optionsRef.current.onCancel !== undefined) {
147
+ context.exit = cancel;
148
+ }
149
+ return context;
338
150
  });
151
+ useActions(options.commands);
152
+ const enabled = useCallback((group) => !(optionsRef.current.disable?.includes(group) ?? false), [optionsRef]);
153
+ const builtInActions = useMemo(() => {
154
+ const definitions = [
155
+ {
156
+ group: () => (modeRef.current === "insert" ? "mode" : "cancel"),
157
+ handler: () => {
158
+ if (modeRef.current === "insert") {
159
+ setMode("cursor");
160
+ }
161
+ else {
162
+ cancel();
163
+ }
164
+ },
165
+ hidden: true,
166
+ hotkey: "Escape",
167
+ id: `${commandScope}:escape`,
168
+ modes: ["insert", "cursor"],
169
+ title: "Back / cancel",
170
+ when: () => modeRef.current === "insert" ? true : optionsRef.current.onCancel !== undefined,
171
+ },
172
+ {
173
+ group: () => "cancel",
174
+ handler: cancel,
175
+ hidden: true,
176
+ hotkey: "q",
177
+ id: `${commandScope}:cancel`,
178
+ modes: ["cursor"],
179
+ title: "Cancel",
180
+ when: () => optionsRef.current.onCancel !== undefined,
181
+ },
182
+ {
183
+ group: () => "mode",
184
+ handler: () => {
185
+ setMode("insert");
186
+ },
187
+ hidden: true,
188
+ hotkey: "i",
189
+ id: `${commandScope}:insert-mode-i`,
190
+ modes: ["cursor"],
191
+ title: "Insert mode",
192
+ },
193
+ {
194
+ group: () => "mode",
195
+ handler: () => {
196
+ setMode("insert");
197
+ },
198
+ hidden: true,
199
+ hotkey: "a",
200
+ id: `${commandScope}:insert-mode-a`,
201
+ modes: ["cursor"],
202
+ title: "Insert mode",
203
+ },
204
+ {
205
+ group: () => "navigation",
206
+ handler: moveDown,
207
+ hidden: true,
208
+ hotkey: "j",
209
+ id: `${commandScope}:move-down-vim`,
210
+ modes: ["cursor"],
211
+ title: "Move down",
212
+ },
213
+ {
214
+ group: () => "navigation",
215
+ handler: moveUp,
216
+ hidden: true,
217
+ hotkey: "k",
218
+ id: `${commandScope}:move-up-vim`,
219
+ modes: ["cursor"],
220
+ title: "Move up",
221
+ },
222
+ {
223
+ group: () => "submit",
224
+ handler: submit,
225
+ hidden: true,
226
+ hotkey: "Enter",
227
+ id: `${commandScope}:confirm`,
228
+ modes: ["insert", "cursor"],
229
+ title: "Confirm",
230
+ },
231
+ {
232
+ group: () => "navigation",
233
+ handler: moveUp,
234
+ hidden: true,
235
+ hotkey: "up",
236
+ id: `${commandScope}:move-up`,
237
+ modes: ["insert", "cursor"],
238
+ title: "Move up",
239
+ },
240
+ {
241
+ group: () => "navigation",
242
+ handler: moveUp,
243
+ hidden: true,
244
+ hotkey: "ctrl+p",
245
+ id: `${commandScope}:move-up-ctrl-p`,
246
+ modes: ["insert", "cursor"],
247
+ title: "Move up",
248
+ },
249
+ {
250
+ group: () => "navigation",
251
+ handler: moveDown,
252
+ hidden: true,
253
+ hotkey: "down",
254
+ id: `${commandScope}:move-down`,
255
+ modes: ["insert", "cursor"],
256
+ title: "Move down",
257
+ },
258
+ {
259
+ group: () => "navigation",
260
+ handler: moveDown,
261
+ hidden: true,
262
+ hotkey: "ctrl+n",
263
+ id: `${commandScope}:move-down-ctrl-n`,
264
+ modes: ["insert", "cursor"],
265
+ title: "Move down",
266
+ },
267
+ {
268
+ group: () => "multi-select",
269
+ handler: () => {
270
+ toggleActive();
271
+ moveDown();
272
+ },
273
+ hidden: true,
274
+ hotkey: "Tab",
275
+ id: `${commandScope}:toggle-next`,
276
+ modes: ["insert", "cursor"],
277
+ title: "Toggle selection and move down",
278
+ when: () => multiRef.current,
279
+ },
280
+ {
281
+ group: () => "multi-select",
282
+ handler: () => {
283
+ toggleActive();
284
+ moveUp();
285
+ },
286
+ hidden: true,
287
+ hotkey: "shift+Tab",
288
+ id: `${commandScope}:toggle-previous`,
289
+ modes: ["insert", "cursor"],
290
+ title: "Toggle selection and move up",
291
+ when: () => multiRef.current,
292
+ },
293
+ ];
294
+ return definitions.map(({ group, when, ...definition }) => ({
295
+ ...definition,
296
+ when: () => enabled(group()) && (when?.() ?? true),
297
+ }));
298
+ }, [
299
+ cancel,
300
+ commandScope,
301
+ enabled,
302
+ modeRef,
303
+ moveDown,
304
+ moveUp,
305
+ multiRef,
306
+ optionsRef,
307
+ setMode,
308
+ submit,
309
+ toggleActive,
310
+ ]);
311
+ useActions(builtInActions);
339
312
  const surfaceId = useCommandSurfaceId();
340
313
  const activeSurface = useActiveCommandSurface();
341
314
  const suspended = (options.suspended ?? false) || (activeSurface !== null && activeSurface.id !== surfaceId);
@@ -354,15 +327,14 @@ export const useChoose = function useChoose(options) {
354
327
  else {
355
328
  moveDown();
356
329
  }
357
- }, [enabled, moveDown, moveUp, toggleActive]);
358
- const controllerRef = useRef(null);
359
- controllerRef.current ??= {
330
+ }, [enabled, modeRef, moveDown, moveUp, multiRef, toggleActive]);
331
+ const controller = useLazyRef(() => ({
360
332
  cancel,
361
333
  clearFilter: () => {
362
334
  setFilter("");
363
335
  },
364
336
  getActiveItem,
365
- getFilter: () => filterQueryRef.current,
337
+ getFilter: () => store.getSnapshot().context.filterQuery,
366
338
  getSelectedItems,
367
339
  get mode() {
368
340
  return modeRef.current;
@@ -375,9 +347,9 @@ export const useChoose = function useChoose(options) {
375
347
  setMode: setModeExternal,
376
348
  submit,
377
349
  toggleActive,
378
- };
350
+ })).current;
379
351
  return {
380
- controller: controllerRef.current,
352
+ controller,
381
353
  state: {
382
354
  activeIndex,
383
355
  activeItem,
@@ -1 +1 @@
1
- {"version":3,"file":"use-choose.js","sourceRoot":"","sources":["../src/use-choose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,OAAO,EACP,wBAAwB,EACxB,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA8ElE;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,SAAS,CAAC,OAAyB;IACnE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,aAAa,GAAG,EAAE,EAAE,YAAY,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,YAAY,CAAC,CAAC;IAC/D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,qBAAqB,GAAG,MAAM,CAAsB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,yBAAyB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;IACrC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACpD,WAAW,CAAC,OAAO,GAAG,uBAAuB,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEvB,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,SAAuB,EAAE,EAAE;QAC3D,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;QAC7B,UAAU,CAAC,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACpE,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;QAC3B,WAAW,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,cAAc,CAAC,CAAC,CAAC,CAAC;QAClB,0BAA0B,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;QACF,IAAI,MAA4C,CAAC;QAEjD,sEAAsE;QACtE,yEAAyE;QACzE,IACE,CAAC,yBAAyB,CAAC,OAAO;YAClC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACrB,MAAM,KAAK,qBAAqB,CAAC,OAAO,EACxC,CAAC;YACD,yBAAyB,CAAC,OAAO,GAAG,IAAI,CAAC;YACzC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,yBAAyB,CAAC,OAAO,GAAG,IAAI,CAAC;QAEzC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAI,SAAS,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBACvC,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;YACvC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC5B,IAAI,CAAC,MAAM,IAAI,SAAS,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;wBAClD,OAAO;oBACT,CAAC;oBACD,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACf,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,IAAI,SAAS,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;wBAClD,OAAO;oBACT,CAAC;oBACD,YAAY,CAAC,EAAE,CAAC,CAAC;oBACjB,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;oBACvC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QAC9C,2EAA2E;QAC3E,uDAAuD;QACvD,IAAI,KAAK,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACrC,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,UAAU,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;QAC3B,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,cAAc,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,iBAAiB,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,iBAAiB,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9F,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAiB,EAAE;QACtD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;QAChF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;QACD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,KAAK,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,iBAAiB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,QAAc,EAAE,EAAE;QACjB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE;YACN,UAAU,EAAE,aAAa,EAAE;YAC3B,WAAW,EAAE,cAAc,CAAC,OAAO;YACnC,aAAa,EAAE,gBAAgB,EAAE;SAClC;QACD,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC,CAAC,CAAC;IAEJ,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EACtF,EAAE,CACH,CAAC;IAEF,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,QAAQ;QAChB,EAAE,EAAE,GAAG,YAAY,SAAS;QAC5B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,OAAO,KAAK,QAAQ;YAC1B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACjB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;KACrE,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,GAAG,YAAY,SAAS;QAC5B,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;KAC3E,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,GAAG,YAAY,gBAAgB;QACnC,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,GAAG,YAAY,gBAAgB;QACnC,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,GAAG,YAAY,gBAAgB;QACnC,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAClC,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,GAAG,YAAY,cAAc;QACjC,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAClC,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,OAAO;QACf,EAAE,EAAE,GAAG,YAAY,UAAU;QAC7B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC9B,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,EAAE,EAAE,GAAG,YAAY,UAAU;QAC7B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAClC,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,QAAQ;QAChB,EAAE,EAAE,GAAG,YAAY,iBAAiB;QACpC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAClC,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,MAAM;QACd,EAAE,EAAE,GAAG,YAAY,YAAY;QAC/B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAClC,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,QAAQ;QAChB,EAAE,EAAE,GAAG,YAAY,mBAAmB;QACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KAClC,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;QACb,CAAC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,EAAE,EAAE,GAAG,YAAY,cAAc;QACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,gCAAgC;QACvC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,OAAO;KACxD,CAAC,CAAC;IACH,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;QACX,CAAC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,WAAW;QACnB,EAAE,EAAE,GAAG,YAAY,kBAAkB;QACrC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,KAAK,EAAE,8BAA8B;QACrC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,OAAO;KACxD,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;IAChD,MAAM,SAAS,GACb,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAE7F,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAe,EAAE,EAAE;QAClB,IACE,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,CAAC,QAAQ,CAAC,OAAO;YACjB,CAAC,OAAO,CAAC,cAAc,CAAC;YACxB,OAAO,CAAC,OAAO,KAAK,QAAQ,EAC5B,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,YAAY,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAC1C,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,OAAO,KAAK;QACxB,MAAM;QACN,WAAW,EAAE,GAAG,EAAE;YAChB,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QACD,aAAa;QACb,SAAS,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO;QACvC,gBAAgB;QAChB,IAAI,IAAI;YACN,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC;QACD,QAAQ;QACR,MAAM;QACN,MAAM;QACN,cAAc,EAAE,iBAAiB;QACjC,SAAS;QACT,OAAO,EAAE,eAAe;QACxB,MAAM;QACN,YAAY;KACb,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,OAAO;QACjC,KAAK,EAAE;YACL,WAAW;YACX,UAAU;YACV,KAAK;YACL,WAAW;YACX,KAAK;YACL,OAAO;YACP,OAAO;YACP,KAAK;YACL,aAAa;YACb,uBAAuB;SACxB;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS;YAC9C,SAAS;YACT,IAAI;YACJ,aAAa,EAAE,SAAS;YACxB,eAAe;YACf,SAAS;SACV;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"use-choose.js","sourceRoot":"","sources":["../src/use-choose.ts"],"names":[],"mappings":"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"}