@tooee/choose 0.2.4 → 0.3.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.
- package/README.md +2 -2
- package/dist/{ChooseFilter.d.ts → choose-filter.d.ts} +2 -2
- package/dist/choose-filter.d.ts.map +1 -0
- package/dist/choose-filter.js +11 -0
- package/dist/choose-filter.js.map +1 -0
- package/dist/choose-highlighted-text.d.ts +9 -0
- package/dist/choose-highlighted-text.d.ts.map +1 -0
- package/dist/{ChooseHighlightedText.js → choose-highlighted-text.js} +10 -8
- package/dist/choose-highlighted-text.js.map +1 -0
- package/dist/{ChooseList.d.ts → choose-list.d.ts} +3 -3
- package/dist/choose-list.d.ts.map +1 -0
- package/dist/{ChooseList.js → choose-list.js} +20 -15
- package/dist/choose-list.js.map +1 -0
- package/dist/{ChooseOverlay.d.ts → choose-overlay.d.ts} +6 -6
- package/dist/choose-overlay.d.ts.map +1 -0
- package/dist/{ChooseOverlay.js → choose-overlay.js} +15 -13
- package/dist/choose-overlay.js.map +1 -0
- package/dist/{ChoosePanel.d.ts → choose-panel.d.ts} +5 -5
- package/dist/choose-panel.d.ts.map +1 -0
- package/dist/choose-panel.js +31 -0
- package/dist/choose-panel.js.map +1 -0
- package/dist/choose.d.ts +28 -0
- package/dist/choose.d.ts.map +1 -0
- package/dist/{Choose.js → choose.js} +25 -18
- package/dist/choose.js.map +1 -0
- package/dist/default-provider.d.ts +2 -2
- package/dist/default-provider.d.ts.map +1 -1
- package/dist/default-provider.js +4 -4
- package/dist/default-provider.js.map +1 -1
- package/dist/fuzzy.d.ts +1 -1
- package/dist/fuzzy.d.ts.map +1 -1
- package/dist/fuzzy.js +5 -5
- package/dist/fuzzy.js.map +1 -1
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/launch.d.ts +1 -1
- package/dist/launch.d.ts.map +1 -1
- package/dist/launch.js +5 -4
- package/dist/launch.js.map +1 -1
- package/dist/source.d.ts +2 -2
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +8 -6
- package/dist/source.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/use-choose-dialog.d.ts +12 -10
- package/dist/use-choose-dialog.d.ts.map +1 -1
- package/dist/use-choose-dialog.js +98 -77
- package/dist/use-choose-dialog.js.map +1 -1
- package/dist/use-choose-dialog.typecheck.d.ts +1 -1
- package/dist/use-choose-dialog.typecheck.d.ts.map +1 -1
- package/dist/use-choose-dialog.typecheck.js +5 -5
- package/dist/use-choose-dialog.typecheck.js.map +1 -1
- package/dist/use-choose.d.ts +16 -16
- package/dist/use-choose.d.ts.map +1 -1
- package/dist/use-choose.js +176 -138
- package/dist/use-choose.js.map +1 -1
- package/package.json +7 -7
- package/src/{ChooseFilter.tsx → choose-filter.tsx} +18 -16
- package/src/choose-highlighted-text.tsx +49 -0
- package/src/{ChooseList.tsx → choose-list.tsx} +73 -60
- package/src/choose-overlay.tsx +96 -0
- package/src/{ChoosePanel.tsx → choose-panel.tsx} +41 -34
- package/src/choose.tsx +142 -0
- package/src/default-provider.ts +18 -15
- package/src/fuzzy.ts +16 -16
- package/src/index.ts +23 -23
- package/src/launch.tsx +15 -12
- package/src/source.ts +15 -9
- package/src/types.ts +12 -12
- package/src/use-choose-dialog.tsx +168 -139
- package/src/use-choose-dialog.typecheck.ts +19 -18
- package/src/use-choose.ts +349 -302
- package/dist/Choose.d.ts +0 -21
- package/dist/Choose.d.ts.map +0 -1
- package/dist/Choose.js.map +0 -1
- package/dist/ChooseFilter.d.ts.map +0 -1
- package/dist/ChooseFilter.js +0 -9
- package/dist/ChooseFilter.js.map +0 -1
- package/dist/ChooseHighlightedText.d.ts +0 -9
- package/dist/ChooseHighlightedText.d.ts.map +0 -1
- package/dist/ChooseHighlightedText.js.map +0 -1
- package/dist/ChooseList.d.ts.map +0 -1
- package/dist/ChooseList.js.map +0 -1
- package/dist/ChooseOverlay.d.ts.map +0 -1
- package/dist/ChooseOverlay.js.map +0 -1
- package/dist/ChoosePanel.d.ts.map +0 -1
- package/dist/ChoosePanel.js +0 -25
- package/dist/ChoosePanel.js.map +0 -1
- package/src/Choose.tsx +0 -126
- package/src/ChooseHighlightedText.tsx +0 -42
- package/src/ChooseOverlay.tsx +0 -88
|
@@ -9,27 +9,28 @@
|
|
|
9
9
|
* multi-select resolves `T[] | null` — and `toItem` may only be omitted when
|
|
10
10
|
* `T` is itself a `ChooseItem`.
|
|
11
11
|
*/
|
|
12
|
-
import type { ChooseItem } from "./types.js"
|
|
13
|
-
import type { ChooseDialogHandle } from "./use-choose-dialog.js"
|
|
12
|
+
import type { ChooseItem } from "./types.js";
|
|
13
|
+
import type { ChooseDialogHandle } from "./use-choose-dialog.js";
|
|
14
14
|
|
|
15
15
|
interface Model {
|
|
16
|
-
id: string
|
|
17
|
-
label: string
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
declare const modelDialog: ChooseDialogHandle<Model
|
|
21
|
-
declare const rowDialog: ChooseDialogHandle<ChooseItem
|
|
22
|
-
declare
|
|
20
|
+
declare const modelDialog: ChooseDialogHandle<Model>;
|
|
21
|
+
declare const rowDialog: ChooseDialogHandle<ChooseItem>;
|
|
22
|
+
declare const expectString: (value: string) => void;
|
|
23
|
+
declare const expectStrings: (value: string[]) => void;
|
|
23
24
|
|
|
24
25
|
// Never called; exists only to be typechecked.
|
|
25
|
-
export async function chooseDialogTypeChecks(): Promise<void> {
|
|
26
|
+
export const chooseDialogTypeChecks = async function chooseDialogTypeChecks(): Promise<void> {
|
|
26
27
|
// --- Single select resolves T | null, cast-free ---------------------------
|
|
27
28
|
const single = await modelDialog.open({
|
|
28
29
|
items: [{ id: "a", label: "A" }],
|
|
29
30
|
toItem: (model) => ({ text: model.label }),
|
|
30
|
-
})
|
|
31
|
+
});
|
|
31
32
|
if (single !== null) {
|
|
32
|
-
|
|
33
|
+
expectString(single.id);
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
// --- Multi select resolves T[] | null, cast-free ---------------------------
|
|
@@ -37,23 +38,23 @@ export async function chooseDialogTypeChecks(): Promise<void> {
|
|
|
37
38
|
items: [{ id: "a", label: "A" }],
|
|
38
39
|
multi: true,
|
|
39
40
|
toItem: (model) => ({ text: model.label }),
|
|
40
|
-
})
|
|
41
|
+
});
|
|
41
42
|
if (multi !== null) {
|
|
42
|
-
|
|
43
|
+
expectStrings(multi.map((model) => model.id));
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
// --- toItem may be omitted only when T is a ChooseItem ---------------------
|
|
46
|
-
const row = await rowDialog.open({ items: [{ text: "one" }] })
|
|
47
|
+
const row = await rowDialog.open({ items: [{ text: "one" }] });
|
|
47
48
|
if (row !== null) {
|
|
48
|
-
|
|
49
|
+
expectString(row.text);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
// @ts-expect-error toItem is required when T is not a ChooseItem
|
|
52
|
-
await modelDialog.open({ items: [{ id: "a", label: "A" }] })
|
|
53
|
+
await modelDialog.open({ items: [{ id: "a", label: "A" }] });
|
|
53
54
|
|
|
54
55
|
// @ts-expect-error toItem must return a ChooseItem
|
|
55
|
-
await modelDialog.open({ items: [{ id: "a", label: "A" }], toItem: (model) => model })
|
|
56
|
+
await modelDialog.open({ items: [{ id: "a", label: "A" }], toItem: (model) => model });
|
|
56
57
|
|
|
57
58
|
// @ts-expect-error items must be T, not ChooseItem
|
|
58
|
-
await modelDialog.open({ items: [{ text: "raw" }], toItem: (model) => ({ text: model.label }) })
|
|
59
|
-
}
|
|
59
|
+
await modelDialog.open({ items: [{ text: "raw" }], toItem: (model) => ({ text: model.label }) });
|
|
60
|
+
};
|