@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.
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,YAAY,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- export { Choose } from "./Choose.js";
2
- export { ChooseOverlay } from "./ChooseOverlay.js";
3
- export { ChoosePanel, buildChooseHints } from "./ChoosePanel.js";
4
- export { ChooseFilter } from "./ChooseFilter.js";
5
- export { ChooseList } from "./ChooseList.js";
6
- export { ChooseHighlightedText } from "./ChooseHighlightedText.js";
1
+ export { Choose } from "./choose.js";
2
+ export { ChooseOverlay } from "./choose-overlay.js";
3
+ export { ChoosePanel, buildChooseHints } from "./choose-panel.js";
4
+ export { ChooseFilter } from "./choose-filter.js";
5
+ export { ChooseList } from "./choose-list.js";
6
+ export { ChooseHighlightedText } from "./choose-highlighted-text.js";
7
7
  export { useChoose } from "./use-choose.js";
8
8
  export { useChooseDialog } from "./use-choose-dialog.js";
9
9
  export { loadChooseSource } from "./source.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAS3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAQxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
package/dist/launch.d.ts CHANGED
@@ -5,5 +5,5 @@ export interface ChooseLaunchOptions {
5
5
  options?: ChooseOptions;
6
6
  actions?: ActionDefinition[];
7
7
  }
8
- export declare function launch(opts: ChooseLaunchOptions): Promise<ChooseResult | null>;
8
+ export declare const launch: (opts: ChooseLaunchOptions) => Promise<ChooseResult | null>;
9
9
  //# sourceMappingURL=launch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEpF,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,qBAAqB,CAAA;IACtC,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAiBpF"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErF,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,qBAAqB,CAAC;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,MAAM,GACjB,MAAM,mBAAmB,KACxB,OAAO,CAAC,YAAY,GAAG,IAAI,CAkB7B,CAAC"}
package/dist/launch.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { runCliSession } from "@tooee/shell";
3
- import { Choose } from "./Choose.js";
4
- export async function launch(opts) {
5
- return runCliSession(({ resolve, cancel }) => (_jsx(Choose, { contentProvider: opts.contentProvider, options: opts.options, actions: opts.actions, onConfirm: resolve, onCancel: cancel })), {
3
+ import { Choose } from "./choose.js";
4
+ export const launch = async function launch(opts) {
5
+ const result = await runCliSession(({ resolve, cancel }) => (_jsx(Choose, { contentProvider: opts.contentProvider, options: opts.options, actions: opts.actions, onConfirm: resolve, onCancel: cancel })), {
6
6
  exitOnCtrlC: false,
7
7
  provider: { initialMode: "insert" },
8
8
  stdinPolicy: "tty-if-piped",
9
9
  });
10
- }
10
+ return result;
11
+ };
11
12
  //# sourceMappingURL=launch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AASpC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAyB;IACpD,OAAO,aAAa,CAClB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACvB,KAAC,MAAM,IACL,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAChB,CACH,EACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;QACnC,WAAW,EAAE,cAAc;KAC5B,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,UAAU,MAAM,CACzC,IAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAmB,EAAE,CAAC,CACxC,KAAC,MAAM,IACL,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAChB,CACH,EACD;QACE,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;QACnC,WAAW,EAAE,cAAc;KAC5B,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/dist/source.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ChooseItem, ChooseSource } from "./types.js";
2
2
  /** Resolve every public Choose source shape through one compatibility boundary. */
3
- export declare function loadChooseSource(source: ChooseSource): ChooseItem[] | Promise<ChooseItem[]>;
4
- export declare function chooseSourceError(error: unknown): string;
3
+ export declare const loadChooseSource: (source: ChooseSource) => ChooseItem[] | Promise<ChooseItem[]>;
4
+ export declare const chooseSourceError: (error: unknown) => string;
5
5
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE1D,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAI3F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE3D,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,YAAY,KACnB,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAQrC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAA8B,OAAO,OAAO,KAAG,MAE5E,CAAC"}
package/dist/source.js CHANGED
@@ -1,12 +1,14 @@
1
1
  /** Resolve every public Choose source shape through one compatibility boundary. */
2
- export function loadChooseSource(source) {
3
- if (Array.isArray(source))
2
+ export const loadChooseSource = function loadChooseSource(source) {
3
+ if (Array.isArray(source)) {
4
4
  return source;
5
- if (typeof source === "function")
5
+ }
6
+ if (typeof source === "function") {
6
7
  return source();
8
+ }
7
9
  return source.load();
8
- }
9
- export function chooseSourceError(error) {
10
+ };
11
+ export const chooseSourceError = function chooseSourceError(error) {
10
12
  return error instanceof Error ? error.message : String(error);
11
- }
13
+ };
12
14
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACxC,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,EAAE,CAAA;IACjD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,gBAAgB,CACvD,MAAoB;IAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,KAAc;IACxE,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -5,7 +5,7 @@ export interface ChooseItem {
5
5
  description?: string;
6
6
  }
7
7
  export interface ChooseContentProvider {
8
- load(): Promise<ChooseItem[]> | ChooseItem[];
8
+ load: () => Promise<ChooseItem[]> | ChooseItem[];
9
9
  }
10
10
  /** Any item source accepted by the shared chooser core. */
11
11
  export type ChooseSource = ChooseItem[] | ChooseContentProvider | (() => ChooseItem[] | Promise<ChooseItem[]>);
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,CAAA;CAC7C;AAED,2DAA2D;AAC3D,MAAM,MAAM,YAAY,GACpB,UAAU,EAAE,GACZ,qBAAqB,GACrB,CAAC,MAAM,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;AAEhD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC;CAClD;AAED,2DAA2D;AAC3D,MAAM,MAAM,YAAY,GACpB,UAAU,EAAE,GACZ,qBAAqB,GACrB,CAAC,MAAM,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,7 +1,7 @@
1
- import { type ReactNode } from "react";
1
+ import type { ReactNode } from "react";
2
2
  import type { ActionDefinition } from "@tooee/commands";
3
- import type { ChooseListProps } from "./ChooseList.js";
4
- import type { ChoosePanelProps } from "./ChoosePanel.js";
3
+ import type { ChooseListProps } from "./choose-list.js";
4
+ import type { ChoosePanelProps } from "./choose-panel.js";
5
5
  import type { ChooseItem } from "./types.js";
6
6
  /** Typed item source: a fixed list, or a loader invoked when the dialog opens. */
7
7
  export type ChooseDialogItems<T> = readonly T[] | (() => readonly T[] | Promise<readonly T[]>);
@@ -44,12 +44,14 @@ export interface ChooseDialogHandle<T> {
44
44
  * resolves the confirmed item; multi-select resolves the toggled items
45
45
  * (falling back to the active item when nothing is toggled).
46
46
  */
47
- open(options: ChooseDialogOptions<T> & {
48
- multi: true;
49
- }): Promise<T[] | null>;
50
- open(options: ChooseDialogOptions<T> & {
51
- multi?: false;
52
- }): Promise<T | null>;
47
+ open: {
48
+ (options: ChooseDialogOptions<T> & {
49
+ multi: true;
50
+ }): Promise<T[] | null>;
51
+ (options: ChooseDialogOptions<T> & {
52
+ multi?: false;
53
+ }): Promise<T | null>;
54
+ };
53
55
  }
54
56
  /**
55
57
  * Promise-based modal chooser dialog on the overlay stack.
@@ -65,5 +67,5 @@ export interface ChooseDialogHandle<T> {
65
67
  * (`AppLayout` does this automatically; custom hosts render
66
68
  * `useCurrentOverlay()`).
67
69
  */
68
- export declare function useChooseDialog<T>(): ChooseDialogHandle<T>;
70
+ export declare const useChooseDialog: <T>() => ChooseDialogHandle<T>;
69
71
  //# sourceMappingURL=use-choose-dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-choose-dialog.d.ts","sourceRoot":"","sources":["../src/use-choose-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAA;AAU1D,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;AAE9F,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACxC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAC3B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,gDAAgD;IAChD,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACjC,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CAClC;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GACxD;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAA;CAAE,CAAA;AAEvC,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAEvF,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IAC5E,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;CAC7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAoI1D"}
1
+ {"version":3,"file":"use-choose-dialog.d.ts","sourceRoot":"","sources":["../src/use-choose-dialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAIxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAU3D,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/F,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACxC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,gDAAgD;IAChD,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GACxD;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAA;CAAE,CAAC;AAExC,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAExF,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,IAAI,EAAE;QACJ,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;YAAE,KAAK,EAAE,IAAI,CAAA;SAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACzE,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG;YAAE,KAAK,CAAC,EAAE,KAAK,CAAA;SAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1E,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,GAA4B,CAAC,OAAK,kBAAkB,CAAC,CAAC,CA6JjF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { useEffect, useRef } from "react";
3
3
  import { useOverlay } from "@tooee/overlays";
4
- import { ChooseOverlay } from "./ChooseOverlay.js";
4
+ import { ChooseOverlay } from "./choose-overlay.js";
5
5
  /**
6
6
  * Per-open unique overlay id. A module-level sequence guarantees that
7
7
  * concurrent dialogs — including dialogs opened from separate providers in the
@@ -23,7 +23,7 @@ let chooseDialogSequence = 0;
23
23
  * (`AppLayout` does this automatically; custom hosts render
24
24
  * `useCurrentOverlay()`).
25
25
  */
26
- export function useChooseDialog() {
26
+ export const useChooseDialog = function useChooseDialog() {
27
27
  const overlay = useOverlay();
28
28
  const overlayRef = useRef(overlay);
29
29
  overlayRef.current = overlay;
@@ -38,95 +38,116 @@ export function useChooseDialog() {
38
38
  unmountedRef.current = true;
39
39
  // Map iteration tolerates deletion: settle() removes entries as each
40
40
  // close lands.
41
- for (const handle of handles.values())
41
+ for (const handle of handles.values()) {
42
42
  handle.close("unmounted");
43
+ }
43
44
  handles.clear();
44
45
  };
45
46
  }, []);
46
47
  // Stable identity so command handlers and effects can capture the handle.
47
48
  const handleRef = useRef(null);
48
49
  if (handleRef.current === null) {
49
- const open = (options) => {
50
- return new Promise((resolvePromise) => {
51
- if (unmountedRef.current) {
52
- resolvePromise(null);
50
+ const open = async (options) => {
51
+ const { promise, resolve } = Promise.withResolvers();
52
+ if (unmountedRef.current) {
53
+ resolve(null);
54
+ return null;
55
+ }
56
+ chooseDialogSequence += 1;
57
+ const id = `choose-dialog-${chooseDialogSequence}`;
58
+ let settled = false;
59
+ const settle = (value) => {
60
+ if (settled) {
53
61
  return;
54
62
  }
55
- const id = `choose-dialog-${++chooseDialogSequence}`;
56
- let settled = false;
57
- const settle = (value) => {
58
- if (settled)
59
- return;
60
- settled = true;
61
- openHandlesRef.current.delete(id);
62
- resolvePromise(value);
63
- };
64
- // Displayed rows map back to typed items by identity: every mapped
65
- // row is a fresh object (spread copy), so duplicates in `items` and
66
- // `toItem` results that share references stay unambiguous.
67
- // Safe default: `toItem` may only be omitted when T is a ChooseItem
68
- // (enforced by ChooseDialogToItem).
69
- const toItem = options.toItem ?? ((item) => item);
70
- const rowToValue = new Map();
71
- const mapValues = (values) => {
72
- rowToValue.clear();
73
- return values.map((value) => {
74
- const row = { ...toItem(value) };
75
- rowToValue.set(row, value);
76
- return row;
77
- });
78
- };
79
- // Created once per open() so the source identity is stable across
80
- // overlay re-renders (a fresh source each render would reload forever).
81
- const items = options.items;
82
- const source = Array.isArray(items)
83
- ? mapValues(items)
84
- : () => {
85
- const loaded = items();
86
- return loaded instanceof Promise ? loaded.then(mapValues) : mapValues(loaded);
87
- };
88
- const multi = options.multi === true;
89
- const shared = {
90
- items: source,
91
- prompt: options.prompt,
92
- placeholder: options.placeholder,
93
- emptyMessage: options.emptyMessage,
94
- commands: options.commands,
95
- renderItem: options.renderItem,
96
- hints: options.hints,
97
- statusRight: options.statusRight,
98
- footer: options.footer,
99
- inset: options.inset,
63
+ settled = true;
64
+ openHandlesRef.current.delete(id);
65
+ resolve(value);
66
+ };
67
+ // Displayed rows map back to typed items by identity: every mapped
68
+ // row is a fresh object (spread copy), so duplicates in `items` and
69
+ // `toItem` results that share references stay unambiguous.
70
+ // Safe default: `toItem` may only be omitted when T is a ChooseItem
71
+ // (enforced by ChooseDialogToItem).
72
+ // Deferred(lint-sweep): replace the conditional generic API boundary with schema-safe overload implementation typing.
73
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- default mapper is enforced by ChooseDialogToItem's public type
74
+ const toItem = options.toItem ?? ((item) => item);
75
+ const rowToValue = new Map();
76
+ const mapValues = (values) => {
77
+ rowToValue.clear();
78
+ return values.map((value) => {
79
+ const row = { ...toItem(value) };
80
+ rowToValue.set(row, value);
81
+ return row;
82
+ });
83
+ };
84
+ // Created once per open() so the source identity is stable across
85
+ // overlay re-renders (a fresh source each render would reload forever).
86
+ const { items } = options;
87
+ const source = Array.isArray(items)
88
+ ? mapValues(items)
89
+ : () => {
90
+ // Deferred(lint-sweep): replace the conditional generic API boundary with schema-safe overload implementation typing.
91
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- implementation narrows the public source union after the branch
92
+ const loaded = items();
93
+ if (loaded instanceof Promise) {
94
+ return (async () => mapValues(await loaded))();
95
+ }
96
+ return mapValues(loaded);
100
97
  };
101
- const handle = overlayRef.current.open(id, () => multi ? (_jsx(ChooseOverlay, { ...shared, multi: true, onSubmit: (result) => {
102
- if (settled)
103
- return;
104
- const values = result.items.flatMap((row) => {
105
- const value = rowToValue.get(row);
106
- return value === undefined ? [] : [value];
107
- });
108
- settle(values);
109
- handle.close("close");
110
- }, onCancel: () => handle.close("escape") })) : (_jsx(ChooseOverlay, { ...shared, onSelect: (row) => {
111
- if (settled)
112
- return;
98
+ const multi = options.multi === true;
99
+ const shared = {
100
+ commands: options.commands,
101
+ emptyMessage: options.emptyMessage,
102
+ footer: options.footer,
103
+ hints: options.hints,
104
+ inset: options.inset,
105
+ items: source,
106
+ placeholder: options.placeholder,
107
+ prompt: options.prompt,
108
+ renderItem: options.renderItem,
109
+ statusRight: options.statusRight,
110
+ };
111
+ const handle = overlayRef.current.open(id, () => multi ? (_jsx(ChooseOverlay, { ...shared, multi: true, onSubmit: (result) => {
112
+ if (settled) {
113
+ return;
114
+ }
115
+ const values = result.items.flatMap((row) => {
113
116
  const value = rowToValue.get(row);
114
- settle(value === undefined ? null : value);
115
- handle.close("close");
116
- }, onCancel: () => handle.close("escape") })), undefined, {
117
- ownCommands: true,
118
- role: "modal",
119
- surfaceMode: "insert",
120
- // Single settlement funnel: every close path (cancel, escape,
121
- // replacement, unmount, external closeTop) lands here. Select and
122
- // submit settle first, making this a no-op.
123
- onClose: () => settle(null),
124
- });
125
- openHandlesRef.current.set(id, handle);
117
+ return value === undefined ? [] : [value];
118
+ });
119
+ settle(values);
120
+ handle.close("close");
121
+ }, onCancel: () => {
122
+ handle.close("escape");
123
+ } })) : (_jsx(ChooseOverlay, { ...shared, onSelect: (row) => {
124
+ if (settled) {
125
+ return;
126
+ }
127
+ const value = rowToValue.get(row);
128
+ settle(value ?? null);
129
+ handle.close("close");
130
+ }, onCancel: () => {
131
+ handle.close("escape");
132
+ } })), undefined, {
133
+ // Single settlement funnel: every close path (cancel, escape,
134
+ // replacement, unmount, external closeTop) lands here. Select and
135
+ // submit settle first, making this a no-op.
136
+ onClose: () => {
137
+ settle(null);
138
+ },
139
+ ownCommands: true,
140
+ role: "modal",
141
+ surfaceMode: "insert",
126
142
  });
143
+ openHandlesRef.current.set(id, handle);
144
+ const result = await promise;
145
+ return result;
127
146
  };
147
+ // Deferred(lint-sweep): replace the conditional generic API boundary with schema-safe overload implementation typing.
148
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- implementation preserves the public overloaded handle contract
128
149
  handleRef.current = { open: open };
129
150
  }
130
151
  return handleRef.current;
131
- }
152
+ };
132
153
  //# sourceMappingURL=use-choose-dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-choose-dialog.js","sourceRoot":"","sources":["../src/use-choose-dialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-choose-dialog.js","sourceRoot":"","sources":["../src/use-choose-dialog.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function chooseDialogTypeChecks(): Promise<void>;
1
+ export declare const chooseDialogTypeChecks: () => Promise<void>;
2
2
  //# sourceMappingURL=use-choose-dialog.typecheck.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-choose-dialog.typecheck.d.ts","sourceRoot":"","sources":["../src/use-choose-dialog.typecheck.ts"],"names":[],"mappings":"AAwBA,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkC5D"}
1
+ {"version":3,"file":"use-choose-dialog.typecheck.d.ts","sourceRoot":"","sources":["../src/use-choose-dialog.typecheck.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,sBAAsB,QAA4C,OAAO,CAAC,IAAI,CAkC1F,CAAC"}
@@ -1,12 +1,12 @@
1
1
  // Never called; exists only to be typechecked.
2
- export async function chooseDialogTypeChecks() {
2
+ export const chooseDialogTypeChecks = async function chooseDialogTypeChecks() {
3
3
  // --- Single select resolves T | null, cast-free ---------------------------
4
4
  const single = await modelDialog.open({
5
5
  items: [{ id: "a", label: "A" }],
6
6
  toItem: (model) => ({ text: model.label }),
7
7
  });
8
8
  if (single !== null) {
9
- expectType(single.id);
9
+ expectString(single.id);
10
10
  }
11
11
  // --- Multi select resolves T[] | null, cast-free ---------------------------
12
12
  const multi = await modelDialog.open({
@@ -15,12 +15,12 @@ export async function chooseDialogTypeChecks() {
15
15
  toItem: (model) => ({ text: model.label }),
16
16
  });
17
17
  if (multi !== null) {
18
- expectType(multi.map((model) => model.id));
18
+ expectStrings(multi.map((model) => model.id));
19
19
  }
20
20
  // --- toItem may be omitted only when T is a ChooseItem ---------------------
21
21
  const row = await rowDialog.open({ items: [{ text: "one" }] });
22
22
  if (row !== null) {
23
- expectType(row.text);
23
+ expectString(row.text);
24
24
  }
25
25
  // @ts-expect-error toItem is required when T is not a ChooseItem
26
26
  await modelDialog.open({ items: [{ id: "a", label: "A" }] });
@@ -28,5 +28,5 @@ export async function chooseDialogTypeChecks() {
28
28
  await modelDialog.open({ items: [{ id: "a", label: "A" }], toItem: (model) => model });
29
29
  // @ts-expect-error items must be T, not ChooseItem
30
30
  await modelDialog.open({ items: [{ text: "raw" }], toItem: (model) => ({ text: model.label }) });
31
- }
31
+ };
32
32
  //# sourceMappingURL=use-choose-dialog.typecheck.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-choose-dialog.typecheck.js","sourceRoot":"","sources":["../src/use-choose-dialog.typecheck.ts"],"names":[],"mappings":"AAuBA,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,6EAA6E;IAC7E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;QACpC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC3C,CAAC,CAAA;IACF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,UAAU,CAAS,MAAM,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,8EAA8E;IAC9E,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;QACnC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAChC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC3C,CAAC,CAAA;IACF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,UAAU,CAAW,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,8EAA8E;IAC9E,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,UAAU,CAAS,GAAG,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,iEAAiE;IACjE,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAE5D,mDAAmD;IACnD,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;IAEtF,mDAAmD;IACnD,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;AAClG,CAAC"}
1
+ {"version":3,"file":"use-choose-dialog.typecheck.js","sourceRoot":"","sources":["../src/use-choose-dialog.typecheck.ts"],"names":[],"mappings":"AAwBA,+CAA+C;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,UAAU,sBAAsB;IACzE,6EAA6E;IAC7E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;QACpC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;QACnC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAChC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,8EAA8E;IAC9E,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,iEAAiE;IACjE,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAE7D,mDAAmD;IACnD,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAEvF,mDAAmD;IACnD,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { InputRenderable, KeyEvent } from "@opentui/core";
2
- import { type ActionDefinition, type Mode } from "@tooee/commands";
3
- import { type FuzzyMatch } from "./fuzzy.js";
2
+ import type { ActionDefinition, Mode } from "@tooee/commands";
3
+ import type { FuzzyMatch } from "./fuzzy.js";
4
4
  import type { ChooseItem, ChooseResult, ChooseSource } from "./types.js";
5
5
  declare module "@tooee/commands" {
6
6
  interface CommandContext {
@@ -28,20 +28,20 @@ export interface UseChooseOptions {
28
28
  suspended?: boolean;
29
29
  }
30
30
  export interface ChooseController {
31
- getFilter(): string;
32
- setFilter(query: string): void;
33
- clearFilter(): void;
34
- moveUp(): void;
35
- moveDown(): void;
36
- setActiveIndex(index: number): void;
37
- getActiveItem(): ChooseItem | undefined;
38
- getSelectedItems(): ChooseItem[];
39
- toggleActive(): void;
40
- submit(): void;
41
- cancel(): void;
42
- reload(): void;
31
+ getFilter: () => string;
32
+ setFilter: (query: string) => void;
33
+ clearFilter: () => void;
34
+ moveUp: () => void;
35
+ moveDown: () => void;
36
+ setActiveIndex: (index: number) => void;
37
+ getActiveItem: () => ChooseItem | undefined;
38
+ getSelectedItems: () => ChooseItem[];
39
+ toggleActive: () => void;
40
+ submit: () => void;
41
+ cancel: () => void;
42
+ reload: () => void;
43
43
  readonly mode: Mode;
44
- setMode(mode: Mode): void;
44
+ setMode: (mode: Mode) => void;
45
45
  }
46
46
  export interface ChooseState {
47
47
  items: ChooseItem[];
@@ -76,5 +76,5 @@ export interface UseChooseResult {
76
76
  * Shared headless chooser: source lifecycle, fuzzy matches, selection,
77
77
  * command context, controller, and all built-in keyboard commands.
78
78
  */
79
- export declare function useChoose(options: UseChooseOptions): UseChooseResult;
79
+ export declare const useChoose: (options: UseChooseOptions) => UseChooseResult;
80
80
  //# sourceMappingURL=use-choose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-choose.d.ts","sourceRoot":"","sources":["../src/use-choose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-choose.d.ts","sourceRoot":"","sources":["../src/use-choose.ts"],"names":[],"mappings":"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"}