@tooee/choose 0.2.3 → 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.
Files changed (94) hide show
  1. package/README.md +2 -2
  2. package/dist/{ChooseFilter.d.ts → choose-filter.d.ts} +2 -2
  3. package/dist/choose-filter.d.ts.map +1 -0
  4. package/dist/choose-filter.js +11 -0
  5. package/dist/choose-filter.js.map +1 -0
  6. package/dist/choose-highlighted-text.d.ts +9 -0
  7. package/dist/choose-highlighted-text.d.ts.map +1 -0
  8. package/dist/{ChooseHighlightedText.js → choose-highlighted-text.js} +10 -8
  9. package/dist/choose-highlighted-text.js.map +1 -0
  10. package/dist/{ChooseList.d.ts → choose-list.d.ts} +3 -3
  11. package/dist/choose-list.d.ts.map +1 -0
  12. package/dist/{ChooseList.js → choose-list.js} +20 -15
  13. package/dist/choose-list.js.map +1 -0
  14. package/dist/{ChooseOverlay.d.ts → choose-overlay.d.ts} +6 -6
  15. package/dist/choose-overlay.d.ts.map +1 -0
  16. package/dist/{ChooseOverlay.js → choose-overlay.js} +15 -13
  17. package/dist/choose-overlay.js.map +1 -0
  18. package/dist/{ChoosePanel.d.ts → choose-panel.d.ts} +5 -5
  19. package/dist/choose-panel.d.ts.map +1 -0
  20. package/dist/choose-panel.js +31 -0
  21. package/dist/choose-panel.js.map +1 -0
  22. package/dist/choose.d.ts +28 -0
  23. package/dist/choose.d.ts.map +1 -0
  24. package/dist/{Choose.js → choose.js} +25 -18
  25. package/dist/choose.js.map +1 -0
  26. package/dist/default-provider.d.ts +2 -2
  27. package/dist/default-provider.d.ts.map +1 -1
  28. package/dist/default-provider.js +4 -4
  29. package/dist/default-provider.js.map +1 -1
  30. package/dist/fuzzy.d.ts +1 -1
  31. package/dist/fuzzy.d.ts.map +1 -1
  32. package/dist/fuzzy.js +5 -5
  33. package/dist/fuzzy.js.map +1 -1
  34. package/dist/index.d.ts +12 -12
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +6 -6
  37. package/dist/index.js.map +1 -1
  38. package/dist/launch.d.ts +1 -1
  39. package/dist/launch.d.ts.map +1 -1
  40. package/dist/launch.js +5 -4
  41. package/dist/launch.js.map +1 -1
  42. package/dist/source.d.ts +2 -2
  43. package/dist/source.d.ts.map +1 -1
  44. package/dist/source.js +8 -6
  45. package/dist/source.js.map +1 -1
  46. package/dist/types.d.ts +1 -1
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/use-choose-dialog.d.ts +12 -10
  49. package/dist/use-choose-dialog.d.ts.map +1 -1
  50. package/dist/use-choose-dialog.js +98 -77
  51. package/dist/use-choose-dialog.js.map +1 -1
  52. package/dist/use-choose-dialog.typecheck.d.ts +1 -1
  53. package/dist/use-choose-dialog.typecheck.d.ts.map +1 -1
  54. package/dist/use-choose-dialog.typecheck.js +5 -5
  55. package/dist/use-choose-dialog.typecheck.js.map +1 -1
  56. package/dist/use-choose.d.ts +16 -16
  57. package/dist/use-choose.d.ts.map +1 -1
  58. package/dist/use-choose.js +176 -138
  59. package/dist/use-choose.js.map +1 -1
  60. package/package.json +7 -7
  61. package/src/{ChooseFilter.tsx → choose-filter.tsx} +18 -16
  62. package/src/choose-highlighted-text.tsx +49 -0
  63. package/src/{ChooseList.tsx → choose-list.tsx} +73 -60
  64. package/src/choose-overlay.tsx +96 -0
  65. package/src/{ChoosePanel.tsx → choose-panel.tsx} +41 -34
  66. package/src/choose.tsx +142 -0
  67. package/src/default-provider.ts +18 -15
  68. package/src/fuzzy.ts +16 -16
  69. package/src/index.ts +23 -23
  70. package/src/launch.tsx +15 -12
  71. package/src/source.ts +15 -9
  72. package/src/types.ts +12 -12
  73. package/src/use-choose-dialog.tsx +168 -139
  74. package/src/use-choose-dialog.typecheck.ts +19 -18
  75. package/src/use-choose.ts +349 -302
  76. package/dist/Choose.d.ts +0 -21
  77. package/dist/Choose.d.ts.map +0 -1
  78. package/dist/Choose.js.map +0 -1
  79. package/dist/ChooseFilter.d.ts.map +0 -1
  80. package/dist/ChooseFilter.js +0 -9
  81. package/dist/ChooseFilter.js.map +0 -1
  82. package/dist/ChooseHighlightedText.d.ts +0 -9
  83. package/dist/ChooseHighlightedText.d.ts.map +0 -1
  84. package/dist/ChooseHighlightedText.js.map +0 -1
  85. package/dist/ChooseList.d.ts.map +0 -1
  86. package/dist/ChooseList.js.map +0 -1
  87. package/dist/ChooseOverlay.d.ts.map +0 -1
  88. package/dist/ChooseOverlay.js.map +0 -1
  89. package/dist/ChoosePanel.d.ts.map +0 -1
  90. package/dist/ChoosePanel.js +0 -25
  91. package/dist/ChoosePanel.js.map +0 -1
  92. package/src/Choose.tsx +0 -126
  93. package/src/ChooseHighlightedText.tsx +0 -42
  94. 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 function expectType<T>(value: T): void
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
- expectType<string>(single.id)
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
- expectType<string[]>(multi.map((model) => model.id))
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
- expectType<string>(row.text)
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
+ };