@detergent-software/atk 3.0.0-dev.2 → 3.0.0-dev.20

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 (265) hide show
  1. package/README.md +361 -0
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +79 -37
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/browse.d.ts.map +1 -1
  6. package/build/commands/browse.js +119 -154
  7. package/build/commands/browse.js.map +1 -1
  8. package/build/commands/cache.d.ts.map +1 -1
  9. package/build/commands/cache.js +13 -15
  10. package/build/commands/cache.js.map +1 -1
  11. package/build/commands/config.d.ts +1 -1
  12. package/build/commands/config.d.ts.map +1 -1
  13. package/build/commands/config.js +7 -3
  14. package/build/commands/config.js.map +1 -1
  15. package/build/commands/diff.d.ts.map +1 -1
  16. package/build/commands/diff.js +4 -117
  17. package/build/commands/diff.js.map +1 -1
  18. package/build/commands/freeze.d.ts +1 -2
  19. package/build/commands/freeze.d.ts.map +1 -1
  20. package/build/commands/freeze.js +17 -37
  21. package/build/commands/freeze.js.map +1 -1
  22. package/build/commands/info.d.ts +1 -2
  23. package/build/commands/info.d.ts.map +1 -1
  24. package/build/commands/info.js +36 -35
  25. package/build/commands/info.js.map +1 -1
  26. package/build/commands/init.d.ts.map +1 -1
  27. package/build/commands/init.js +39 -405
  28. package/build/commands/init.js.map +1 -1
  29. package/build/commands/install.d.ts.map +1 -1
  30. package/build/commands/install.js +49 -34
  31. package/build/commands/install.js.map +1 -1
  32. package/build/commands/list.d.ts +2 -2
  33. package/build/commands/list.d.ts.map +1 -1
  34. package/build/commands/list.js +138 -27
  35. package/build/commands/list.js.map +1 -1
  36. package/build/commands/outdated.d.ts.map +1 -1
  37. package/build/commands/outdated.js +20 -10
  38. package/build/commands/outdated.js.map +1 -1
  39. package/build/commands/pin.d.ts +1 -2
  40. package/build/commands/pin.d.ts.map +1 -1
  41. package/build/commands/pin.js +44 -47
  42. package/build/commands/pin.js.map +1 -1
  43. package/build/commands/prune.d.ts.map +1 -1
  44. package/build/commands/prune.js +76 -151
  45. package/build/commands/prune.js.map +1 -1
  46. package/build/commands/publish.d.ts +3 -1
  47. package/build/commands/publish.d.ts.map +1 -1
  48. package/build/commands/publish.js +67 -390
  49. package/build/commands/publish.js.map +1 -1
  50. package/build/commands/search.d.ts.map +1 -1
  51. package/build/commands/search.js +14 -19
  52. package/build/commands/search.js.map +1 -1
  53. package/build/commands/setup.d.ts +1 -1
  54. package/build/commands/setup.d.ts.map +1 -1
  55. package/build/commands/setup.js +49 -242
  56. package/build/commands/setup.js.map +1 -1
  57. package/build/commands/sync.d.ts.map +1 -1
  58. package/build/commands/sync.js +114 -121
  59. package/build/commands/sync.js.map +1 -1
  60. package/build/commands/thaw.d.ts +1 -2
  61. package/build/commands/thaw.d.ts.map +1 -1
  62. package/build/commands/thaw.js +19 -37
  63. package/build/commands/thaw.js.map +1 -1
  64. package/build/commands/uninstall.d.ts.map +1 -1
  65. package/build/commands/uninstall.js +106 -221
  66. package/build/commands/uninstall.js.map +1 -1
  67. package/build/commands/unpin.d.ts +1 -2
  68. package/build/commands/unpin.d.ts.map +1 -1
  69. package/build/commands/unpin.js +23 -38
  70. package/build/commands/unpin.js.map +1 -1
  71. package/build/commands/update.d.ts.map +1 -1
  72. package/build/commands/update.js +37 -25
  73. package/build/commands/update.js.map +1 -1
  74. package/build/commands/why.d.ts +1 -1
  75. package/build/commands/why.d.ts.map +1 -1
  76. package/build/commands/why.js +14 -6
  77. package/build/commands/why.js.map +1 -1
  78. package/build/components/AssetDetail.d.ts +1 -3
  79. package/build/components/AssetDetail.d.ts.map +1 -1
  80. package/build/components/AssetDetail.js +24 -21
  81. package/build/components/AssetDetail.js.map +1 -1
  82. package/build/components/AssetTable.d.ts +5 -2
  83. package/build/components/AssetTable.d.ts.map +1 -1
  84. package/build/components/AssetTable.js +37 -40
  85. package/build/components/AssetTable.js.map +1 -1
  86. package/build/components/BrowseExpandedBundle.d.ts +7 -0
  87. package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
  88. package/build/components/BrowseExpandedBundle.js +19 -0
  89. package/build/components/BrowseExpandedBundle.js.map +1 -1
  90. package/build/components/BrowseExpandedRow.d.ts +4 -1
  91. package/build/components/BrowseExpandedRow.d.ts.map +1 -1
  92. package/build/components/BrowseExpandedRow.js +24 -3
  93. package/build/components/BrowseExpandedRow.js.map +1 -1
  94. package/build/components/BrowseList.d.ts +3 -1
  95. package/build/components/BrowseList.d.ts.map +1 -1
  96. package/build/components/BrowseList.js +52 -42
  97. package/build/components/BrowseList.js.map +1 -1
  98. package/build/components/DiffView.d.ts +0 -2
  99. package/build/components/DiffView.d.ts.map +1 -1
  100. package/build/components/DiffView.js +11 -5
  101. package/build/components/DiffView.js.map +1 -1
  102. package/build/components/DryRunBanner.d.ts +3 -3
  103. package/build/components/DryRunBanner.d.ts.map +1 -1
  104. package/build/components/DryRunBanner.js +2 -2
  105. package/build/components/DryRunBanner.js.map +1 -1
  106. package/build/components/FilterBar.d.ts +10 -3
  107. package/build/components/FilterBar.d.ts.map +1 -1
  108. package/build/components/FilterBar.js +4 -4
  109. package/build/components/FilterBar.js.map +1 -1
  110. package/build/components/HelpBar.d.ts.map +1 -1
  111. package/build/components/HelpBar.js +3 -3
  112. package/build/components/HelpBar.js.map +1 -1
  113. package/build/components/InitSuccess.d.ts +5 -0
  114. package/build/components/InitSuccess.d.ts.map +1 -0
  115. package/build/components/InitSuccess.js +20 -0
  116. package/build/components/InitSuccess.js.map +1 -0
  117. package/build/components/InstallSummary.d.ts +3 -3
  118. package/build/components/InstallSummary.d.ts.map +1 -1
  119. package/build/components/InstallSummary.js +2 -2
  120. package/build/components/InstallSummary.js.map +1 -1
  121. package/build/components/Link.d.ts +7 -0
  122. package/build/components/Link.d.ts.map +1 -0
  123. package/build/components/Link.js +6 -0
  124. package/build/components/Link.js.map +1 -0
  125. package/build/components/ListActionBar.d.ts +11 -0
  126. package/build/components/ListActionBar.d.ts.map +1 -0
  127. package/build/components/ListActionBar.js +30 -0
  128. package/build/components/ListActionBar.js.map +1 -0
  129. package/build/components/ListBrowseList.d.ts +27 -0
  130. package/build/components/ListBrowseList.d.ts.map +1 -0
  131. package/build/components/ListBrowseList.js +57 -0
  132. package/build/components/ListBrowseList.js.map +1 -0
  133. package/build/components/ListExpandedRow.d.ts +38 -0
  134. package/build/components/ListExpandedRow.d.ts.map +1 -0
  135. package/build/components/ListExpandedRow.js +46 -0
  136. package/build/components/ListExpandedRow.js.map +1 -0
  137. package/build/components/ListHelpBar.d.ts +19 -0
  138. package/build/components/ListHelpBar.d.ts.map +1 -0
  139. package/build/components/ListHelpBar.js +11 -0
  140. package/build/components/ListHelpBar.js.map +1 -0
  141. package/build/components/OrphanListItem.d.ts +15 -0
  142. package/build/components/OrphanListItem.d.ts.map +1 -0
  143. package/build/components/OrphanListItem.js +6 -0
  144. package/build/components/OrphanListItem.js.map +1 -0
  145. package/build/components/PromptField.d.ts +19 -0
  146. package/build/components/PromptField.d.ts.map +1 -0
  147. package/build/components/PromptField.js +7 -0
  148. package/build/components/PromptField.js.map +1 -0
  149. package/build/components/StatusBadge.d.ts +1 -1
  150. package/build/components/StatusBadge.d.ts.map +1 -1
  151. package/build/components/StatusBadge.js +4 -0
  152. package/build/components/StatusBadge.js.map +1 -1
  153. package/build/components/index.d.ts +10 -2
  154. package/build/components/index.d.ts.map +1 -1
  155. package/build/components/index.js +10 -2
  156. package/build/components/index.js.map +1 -1
  157. package/build/hooks/useBrowseState.d.ts +41 -1
  158. package/build/hooks/useBrowseState.d.ts.map +1 -1
  159. package/build/hooks/useBrowseState.js +142 -12
  160. package/build/hooks/useBrowseState.js.map +1 -1
  161. package/build/hooks/useConfirmation.d.ts +18 -0
  162. package/build/hooks/useConfirmation.d.ts.map +1 -0
  163. package/build/hooks/useConfirmation.js +56 -0
  164. package/build/hooks/useConfirmation.js.map +1 -0
  165. package/build/hooks/useInitState.d.ts +72 -0
  166. package/build/hooks/useInitState.d.ts.map +1 -0
  167. package/build/hooks/useInitState.js +372 -0
  168. package/build/hooks/useInitState.js.map +1 -0
  169. package/build/hooks/useListActions.d.ts +15 -0
  170. package/build/hooks/useListActions.d.ts.map +1 -0
  171. package/build/hooks/useListActions.js +155 -0
  172. package/build/hooks/useListActions.js.map +1 -0
  173. package/build/hooks/useListState.d.ts +151 -0
  174. package/build/hooks/useListState.d.ts.map +1 -0
  175. package/build/hooks/useListState.js +448 -0
  176. package/build/hooks/useListState.js.map +1 -0
  177. package/build/hooks/usePruneState.d.ts +76 -0
  178. package/build/hooks/usePruneState.d.ts.map +1 -0
  179. package/build/hooks/usePruneState.js +246 -0
  180. package/build/hooks/usePruneState.js.map +1 -0
  181. package/build/hooks/usePublishState.d.ts +115 -0
  182. package/build/hooks/usePublishState.d.ts.map +1 -0
  183. package/build/hooks/usePublishState.js +673 -0
  184. package/build/hooks/usePublishState.js.map +1 -0
  185. package/build/hooks/useSetupState.d.ts +59 -0
  186. package/build/hooks/useSetupState.d.ts.map +1 -0
  187. package/build/hooks/useSetupState.js +295 -0
  188. package/build/hooks/useSetupState.js.map +1 -0
  189. package/build/hooks/useUninstallState.d.ts +102 -0
  190. package/build/hooks/useUninstallState.d.ts.map +1 -0
  191. package/build/hooks/useUninstallState.js +342 -0
  192. package/build/hooks/useUninstallState.js.map +1 -0
  193. package/build/lib/checksum.d.ts +39 -0
  194. package/build/lib/checksum.d.ts.map +1 -1
  195. package/build/lib/checksum.js +101 -13
  196. package/build/lib/checksum.js.map +1 -1
  197. package/build/lib/config.d.ts +38 -18
  198. package/build/lib/config.d.ts.map +1 -1
  199. package/build/lib/config.js +107 -55
  200. package/build/lib/config.js.map +1 -1
  201. package/build/lib/diagnostics.d.ts +7 -0
  202. package/build/lib/diagnostics.d.ts.map +1 -1
  203. package/build/lib/diagnostics.js +54 -34
  204. package/build/lib/diagnostics.js.map +1 -1
  205. package/build/lib/diff-command.d.ts +40 -0
  206. package/build/lib/diff-command.d.ts.map +1 -0
  207. package/build/lib/diff-command.js +145 -0
  208. package/build/lib/diff-command.js.map +1 -0
  209. package/build/lib/diff.d.ts +7 -0
  210. package/build/lib/diff.d.ts.map +1 -1
  211. package/build/lib/diff.js +15 -10
  212. package/build/lib/diff.js.map +1 -1
  213. package/build/lib/format.d.ts +6 -0
  214. package/build/lib/format.d.ts.map +1 -0
  215. package/build/lib/format.js +18 -0
  216. package/build/lib/format.js.map +1 -0
  217. package/build/lib/github.d.ts +8 -0
  218. package/build/lib/github.d.ts.map +1 -1
  219. package/build/lib/github.js +9 -0
  220. package/build/lib/github.js.map +1 -1
  221. package/build/lib/installer.d.ts +1 -0
  222. package/build/lib/installer.d.ts.map +1 -1
  223. package/build/lib/installer.js +7 -7
  224. package/build/lib/installer.js.map +1 -1
  225. package/build/lib/lockfile.d.ts +19 -17
  226. package/build/lib/lockfile.d.ts.map +1 -1
  227. package/build/lib/lockfile.js +43 -67
  228. package/build/lib/lockfile.js.map +1 -1
  229. package/build/lib/publisher.d.ts +35 -0
  230. package/build/lib/publisher.d.ts.map +1 -1
  231. package/build/lib/publisher.js +210 -16
  232. package/build/lib/publisher.js.map +1 -1
  233. package/build/lib/registry.d.ts +20 -5
  234. package/build/lib/registry.d.ts.map +1 -1
  235. package/build/lib/registry.js +41 -30
  236. package/build/lib/registry.js.map +1 -1
  237. package/build/lib/schemas/config.d.ts +31 -3
  238. package/build/lib/schemas/config.d.ts.map +1 -1
  239. package/build/lib/schemas/config.js +21 -2
  240. package/build/lib/schemas/config.js.map +1 -1
  241. package/build/lib/schemas/index.d.ts +1 -1
  242. package/build/lib/schemas/index.d.ts.map +1 -1
  243. package/build/lib/schemas/index.js +1 -1
  244. package/build/lib/schemas/index.js.map +1 -1
  245. package/build/lib/schemas/lockfile.d.ts +18 -2
  246. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  247. package/build/lib/schemas/lockfile.js +10 -1
  248. package/build/lib/schemas/lockfile.js.map +1 -1
  249. package/build/lib/search.d.ts +15 -1
  250. package/build/lib/search.d.ts.map +1 -1
  251. package/build/lib/search.js +65 -65
  252. package/build/lib/search.js.map +1 -1
  253. package/build/lib/tool-resolver.d.ts +29 -6
  254. package/build/lib/tool-resolver.d.ts.map +1 -1
  255. package/build/lib/tool-resolver.js +54 -15
  256. package/build/lib/tool-resolver.js.map +1 -1
  257. package/build/lib/updater.d.ts +7 -4
  258. package/build/lib/updater.d.ts.map +1 -1
  259. package/build/lib/updater.js +12 -7
  260. package/build/lib/updater.js.map +1 -1
  261. package/build/lib/version.js +1 -1
  262. package/build/lib/version.js.map +1 -1
  263. package/package.json +79 -65
  264. package/tool-adapters/claude-code.json +1 -1
  265. package/tool-adapters/copilot-cli.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../src/components/DiffView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../src/components/DiffView.tsx"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ interface DryRunBannerProps {
3
3
  action: string;
4
4
  /** Number of assets affected */
5
5
  count: number;
6
- /** Target tool name (e.g., "claude-code") */
7
- tool: string;
6
+ /** Target tool names (e.g., ["claude-code", "cursor"]) */
7
+ tools: string[];
8
8
  }
9
- export default function DryRunBanner({ action, count, tool }: DryRunBannerProps): import("react/jsx-runtime").JSX.Element;
9
+ export default function DryRunBanner({ action, count, tools }: DryRunBannerProps): import("react/jsx-runtime").JSX.Element;
10
10
  export {};
11
11
  //# sourceMappingURL=DryRunBanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DryRunBanner.d.ts","sourceRoot":"","sources":["../../src/components/DryRunBanner.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,iBAAiB,2CAa9E"}
1
+ {"version":3,"file":"DryRunBanner.d.ts","sourceRoot":"","sources":["../../src/components/DryRunBanner.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,iBAAiB,2CAa/E"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
- export default function DryRunBanner({ action, count, tool }) {
4
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { color: 'yellow', children: "~ Dry run \u2014 no changes will be made" }), _jsxs(Text, { children: ["Would ", action, ' ', _jsxs(Text, { bold: true, children: [count, " asset", count !== 1 ? 's' : ''] }), ' ', "for ", tool, ":"] })] }));
3
+ export default function DryRunBanner({ action, count, tools }) {
4
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { color: 'yellow', children: "~ Dry run \u2014 no changes will be made" }), _jsxs(Text, { children: ["Would ", action, ' ', _jsxs(Text, { bold: true, children: [count, " asset", count !== 1 ? 's' : ''] }), ' ', "for ", tools.join(', '), ":"] })] }));
5
5
  }
6
6
  //# sourceMappingURL=DryRunBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DryRunBanner.js","sourceRoot":"","sources":["../../src/components/DryRunBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAqB;IAC7E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yDAA2C,EAC/D,MAAC,IAAI,yBACI,MAAM,EAAE,GAAG,EAClB,MAAC,IAAI,IAAC,IAAI,mBACP,KAAK,YAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAC/B,EAAC,GAAG,UACN,IAAI,SACJ,IACH,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"DryRunBanner.js","sourceRoot":"","sources":["../../src/components/DryRunBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAqB;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,yDAA2C,EAC/D,MAAC,IAAI,yBACI,MAAM,EAAE,GAAG,EAClB,MAAC,IAAI,IAAC,IAAI,mBACP,KAAK,YAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAC/B,EAAC,GAAG,UACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAChB,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
- import { type AssetTypeFilter } from '../hooks/useBrowseState.js';
2
1
  interface FilterBarProps {
2
+ /** Abbreviated labels for narrow terminals (defaults to browse abbreviated labels) */
3
+ abbreviatedTabLabels?: Record<string, string>;
3
4
  /** Current filter text */
4
5
  filterText: string;
5
6
  /** Whether in filter input mode */
@@ -10,13 +11,19 @@ interface FilterBarProps {
10
11
  orgOnly?: boolean;
11
12
  /** Number of items matching current filters */
12
13
  resultCount: number;
14
+ /** Optional sort indicator text to display (e.g., "Sort: Name ↑") */
15
+ sortIndicator?: string;
13
16
  /** Terminal width for responsive layout */
14
17
  terminalWidth: number;
15
18
  /** Total number of items in registry */
16
19
  totalCount: number;
17
20
  /** Active type tab */
18
- typeFilter: AssetTypeFilter;
21
+ typeFilter: string;
22
+ /** Full labels for type tabs (defaults to browse TYPE_TAB_LABELS) */
23
+ typeTabLabels?: Record<string, string>;
24
+ /** Ordered list of type tab keys (defaults to browse TYPE_TABS) */
25
+ typeTabs?: readonly string[];
19
26
  }
20
- export default function FilterBar({ filterText, inputMode, org, orgOnly, resultCount, terminalWidth, totalCount, typeFilter, }: FilterBarProps): import("react/jsx-runtime").JSX.Element;
27
+ export default function FilterBar({ abbreviatedTabLabels, filterText, inputMode, org, orgOnly, resultCount, sortIndicator, terminalWidth, totalCount, typeFilter, typeTabLabels, typeTabs, }: FilterBarProps): import("react/jsx-runtime").JSX.Element;
21
28
  export {};
22
29
  //# sourceMappingURL=FilterBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBar.d.ts","sourceRoot":"","sources":["../../src/components/FilterBar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAA8B,MAAM,4BAA4B,CAAC;AAa9F,UAAU,cAAc;IACtB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,UAAU,EACV,SAAS,EACT,GAAG,EACH,OAAe,EACf,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,GACX,EAAE,cAAc,2CAkDhB"}
1
+ {"version":3,"file":"FilterBar.d.ts","sourceRoot":"","sources":["../../src/components/FilterBar.tsx"],"names":[],"mappings":"AAeA,UAAU,cAAc;IACtB,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,oBAAqD,EACrD,UAAU,EACV,SAAS,EACT,GAAG,EACH,OAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,aAAyD,EACzD,QAAoB,GACrB,EAAE,cAAc,2CAwDhB"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
3
  import { TYPE_TAB_LABELS, TYPE_TABS } from '../hooks/useBrowseState.js';
4
- const ABBREVIATED_TAB_LABELS = {
4
+ const DEFAULT_ABBREVIATED_TAB_LABELS = {
5
5
  agent: 'Agent',
6
6
  all: 'All',
7
7
  bundle: 'Bundle',
@@ -11,10 +11,10 @@ const ABBREVIATED_TAB_LABELS = {
11
11
  rule: 'Rule',
12
12
  skill: 'Skill',
13
13
  };
14
- export default function FilterBar({ filterText, inputMode, org, orgOnly = false, resultCount, terminalWidth, totalCount, typeFilter, }) {
14
+ export default function FilterBar({ abbreviatedTabLabels = DEFAULT_ABBREVIATED_TAB_LABELS, filterText, inputMode, org, orgOnly = false, resultCount, sortIndicator, terminalWidth, totalCount, typeFilter, typeTabLabels = TYPE_TAB_LABELS, typeTabs = TYPE_TABS, }) {
15
15
  const counterLabel = typeFilter === 'bundle' ? 'bundles' : typeFilter === 'all' ? 'items' : 'assets';
16
- return (_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: [_jsxs(Box, { children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Filter: " }), filterText ? (_jsx(Text, { children: filterText })) : inputMode === 'filter' ? (_jsx(Text, { dimColor: true, children: "type to filter..." })) : (_jsx(Text, { dimColor: true, children: "press / to filter" })), inputMode === 'filter' && _jsx(Text, { color: 'cyan', children: "|" })] }), _jsx(Box, { flexGrow: 1 }), org && (_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Org: " }), _jsxs(Text, { color: 'cyan', children: ["@", org] }), _jsx(Text, { dimColor: true, children: " " }), _jsxs(Text, { bold: true, color: 'cyan', children: ["[", orgOnly ? 'org only' : 'all', "]"] }), _jsx(Text, { dimColor: true, children: ' ' })] })), _jsxs(Text, { dimColor: true, children: [resultCount, "/", totalCount, " ", counterLabel] })] }), _jsx(Box, { gap: 1, children: TYPE_TABS.map((tab) => {
17
- const label = terminalWidth < 80 ? ABBREVIATED_TAB_LABELS[tab] : TYPE_TAB_LABELS[tab];
16
+ return (_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: [_jsxs(Box, { children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Filter: " }), filterText ? (_jsx(Text, { children: filterText })) : inputMode === 'filter' ? (_jsx(Text, { dimColor: true, children: "type to filter..." })) : (_jsx(Text, { dimColor: true, children: "press / to filter" })), inputMode === 'filter' && _jsx(Text, { color: 'cyan', children: "|" })] }), _jsx(Box, { flexGrow: 1 }), sortIndicator && (_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: sortIndicator }), _jsx(Text, { dimColor: true, children: ' ' })] })), org && (_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Org: " }), _jsxs(Text, { color: 'cyan', children: ["@", org] }), _jsx(Text, { dimColor: true, children: " " }), _jsxs(Text, { bold: true, color: 'cyan', children: ["[", orgOnly ? 'org only' : 'all', "]"] }), _jsx(Text, { dimColor: true, children: ' ' })] })), _jsxs(Text, { dimColor: true, children: [resultCount, "/", totalCount, " ", counterLabel] })] }), _jsx(Box, { gap: 1, children: typeTabs.map((tab) => {
17
+ const label = terminalWidth < 80 ? abbreviatedTabLabels[tab] : typeTabLabels[tab];
18
18
  return (_jsxs(Text, { bold: tab === typeFilter, color: tab === typeFilter ? 'cyan' : undefined, dimColor: tab !== typeFilter, children: ["[", label, "]"] }, tab));
19
19
  }) })] }));
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBar.js","sourceRoot":"","sources":["../../src/components/FilterBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAwB,eAAe,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE9F,MAAM,sBAAsB,GAAoC;IAC9D,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE,KAAK;IACxB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAC;AAqBF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,UAAU,EACV,SAAS,EACT,GAAG,EACH,OAAO,GAAG,KAAK,EACf,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,GACK;IACf,MAAM,YAAY,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAErG,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,aAChE,MAAC,GAAG,eACF,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAC7B,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,cAAE,UAAU,GAAQ,CAC1B,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC3B,KAAC,IAAI,IAAC,QAAQ,wCAAyB,CACxC,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,QAAQ,wCAAyB,CACxC,EACA,SAAS,KAAK,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,IACjD,EACP,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI,EACnB,GAAG,IAAI,CACN,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,QAAQ,4BAAa,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAG,GAAG,IAAQ,EAChC,KAAC,IAAI,IAAC,QAAQ,wBAAS,EACvB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,kBACnB,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,SACzB,EACP,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAQ,IACvB,CACR,EACD,MAAC,IAAI,IAAC,QAAQ,mBACX,WAAW,OAAG,UAAU,OAAG,YAAY,IACnC,IACH,EACN,KAAC,GAAG,IAAC,GAAG,EAAE,CAAC,YACR,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACrB,MAAM,KAAK,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBACtF,OAAO,CACL,MAAC,IAAI,IACH,IAAI,EAAE,GAAG,KAAK,UAAU,EACxB,KAAK,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,QAAQ,EAAE,GAAG,KAAK,UAAU,kBAG1B,KAAK,UAFF,GAAG,CAGH,CACR,CAAC;gBACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"FilterBar.js","sourceRoot":"","sources":["../../src/components/FilterBar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HelpBar.d.ts","sourceRoot":"","sources":["../../src/components/HelpBar.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,gDAAgD;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAc,EAAE,SAAS,EAAE,EAAE,YAAY,2CAgDhG"}
1
+ {"version":3,"file":"HelpBar.d.ts","sourceRoot":"","sources":["../../src/components/HelpBar.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,gDAAgD;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAc,EAAE,SAAS,EAAE,EAAE,YAAY,2CA4ChG"}
@@ -1,9 +1,9 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
3
  export default function HelpBar({ canInstall, expanded, hasOrg = false, inputMode }) {
4
4
  if (inputMode === 'filter') {
5
- return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "Esc" }), ": stop filter", ' ', hasOrg && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "o" }), ": org only", ' '] })), "Type to filter..."] }) }));
5
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "Esc" }), ": stop filter", ' ', "Type to filter..."] }) }));
6
6
  }
7
- return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "/" }), ": filter", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', expanded ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Esc" }), ": collapse", ' '] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Enter" }), ": expand", ' '] })), canInstall && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "i" }), ": install", ' '] })), hasOrg && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "o" }), ": org only", ' '] })), _jsx(Text, { children: "q" }), ": quit"] }) }));
7
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "/" }), ": filter", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "s" }), ": sort", ' ', expanded ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Esc" }), ": collapse", ' '] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Enter" }), ": expand", ' '] })), canInstall && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "i" }), ": install", ' '] })), hasOrg && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "o" }), ": org only", ' '] })), _jsx(Text, { children: "q" }), ": quit"] }) }));
8
8
  }
9
9
  //# sourceMappingURL=HelpBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelpBar.js","sourceRoot":"","sources":["../../src/components/HelpBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAahC,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,EAAgB;IAC/F,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAC,IAAI,+BAAU,eAAU,IAAI,EAC7B,KAAC,IAAI,sBAAW,YAAO,IAAI,EAC3B,KAAC,IAAI,sBAAW,mBAAc,IAAI,EACjC,MAAM,IAAI,CACT,8BACE,KAAC,IAAI,oBAAS,gBAAW,IAAI,IAC5B,CACJ,yBAEI,GACH,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAC,IAAI,+BAAU,eAAU,IAAI,EAC7B,KAAC,IAAI,oBAAS,cAAS,IAAI,EAC3B,KAAC,IAAI,sBAAW,YAAO,IAAI,EAC1B,QAAQ,CAAC,CAAC,CAAC,CACV,8BACE,KAAC,IAAI,sBAAW,gBAAW,IAAI,IAC9B,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,wBAAa,cAAS,IAAI,IAC9B,CACJ,EACA,UAAU,IAAI,CACb,8BACE,KAAC,IAAI,oBAAS,eAAU,IAAI,IAC3B,CACJ,EACA,MAAM,IAAI,CACT,8BACE,KAAC,IAAI,oBAAS,gBAAW,IAAI,IAC5B,CACJ,EACD,KAAC,IAAI,oBAAS,cACT,GACH,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"HelpBar.js","sourceRoot":"","sources":["../../src/components/HelpBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAahC,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,EAAgB;IAC/F,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAC,IAAI,+BAAU,eAAU,IAAI,EAC7B,KAAC,IAAI,sBAAW,YAAO,IAAI,EAC3B,KAAC,IAAI,sBAAW,mBAAc,IAAI,yBAE7B,GACH,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAC,IAAI,+BAAU,eAAU,IAAI,EAC7B,KAAC,IAAI,oBAAS,cAAS,IAAI,EAC3B,KAAC,IAAI,sBAAW,YAAO,IAAI,EAC3B,KAAC,IAAI,oBAAS,YAAO,IAAI,EACxB,QAAQ,CAAC,CAAC,CAAC,CACV,8BACE,KAAC,IAAI,sBAAW,gBAAW,IAAI,IAC9B,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,wBAAa,cAAS,IAAI,IAC9B,CACJ,EACA,UAAU,IAAI,CACb,8BACE,KAAC,IAAI,oBAAS,eAAU,IAAI,IAC3B,CACJ,EACA,MAAM,IAAI,CACT,8BACE,KAAC,IAAI,oBAAS,gBAAW,IAAI,IAC5B,CACJ,EACD,KAAC,IAAI,oBAAS,cACT,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { InitResult } from '../lib/init.js';
2
+ export default function InitSuccess({ result }: {
3
+ result: InitResult;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=InitSuccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitSuccess.d.ts","sourceRoot":"","sources":["../../src/components/InitSuccess.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,2CA0BrE"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { relative } from 'node:path';
4
+ import { getEntrypointName } from '../lib/init.js';
5
+ export default function InitSuccess({ result }) {
6
+ const relativePath = `./${relative(process.cwd(), result.outputDir).replace(/\\/g, '/')}`;
7
+ const entrypoint = getEntrypointName(result.type, result.name);
8
+ let step1;
9
+ if (result.type === 'bundle') {
10
+ step1 = 'Edit bundle.json to add your assets';
11
+ }
12
+ else if (result.type === 'mcp-config') {
13
+ step1 = 'Edit manifest.json with your MCP config';
14
+ }
15
+ else {
16
+ step1 = `Edit ${entrypoint} with your content`;
17
+ }
18
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["Created ", result.type, " \"", _jsx(Text, { bold: true, children: result.name }), "\" at ", relativePath, "/"] }), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: "Next steps:" }), _jsxs(Text, { children: [" 1. ", step1] }), result.type !== 'bundle' && _jsx(Text, { children: " 2. Update manifest.json as needed" }), result.type === 'bundle' && _jsx(Text, { children: " 2. Update bundle.json as needed" }), _jsxs(Text, { children: [" 3. Run: atk publish ", relativePath] })] }));
19
+ }
20
+ //# sourceMappingURL=InitSuccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitSuccess.js","sourceRoot":"","sources":["../../src/components/InitSuccess.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,MAAM,EAA0B;IACpE,MAAM,YAAY,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IAC1F,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/D,IAAI,KAAa,CAAC;IAClB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,KAAK,GAAG,qCAAqC,CAAC;IAChD,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACxC,KAAK,GAAG,yCAAyC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,UAAU,oBAAoB,CAAC;IACjD,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,yBACR,MAAM,CAAC,IAAI,SAAG,KAAC,IAAI,IAAC,IAAI,kBAAE,MAAM,CAAC,IAAI,GAAQ,YAAM,YAAY,SACnE,EACP,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,IAAC,IAAI,kCAAmB,EAC7B,MAAC,IAAI,uBAAM,KAAK,IAAQ,EACvB,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAC,IAAI,qDAA0C,EAC3E,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAC,IAAI,mDAAwC,EAC1E,MAAC,IAAI,wCAAuB,YAAY,IAAQ,IAC5C,CACP,CAAC;AACJ,CAAC"}
@@ -17,13 +17,13 @@ interface InstallSummaryProps {
17
17
  bundleVersion?: string;
18
18
  /** All install results (primary + dependencies) */
19
19
  results: InstalledAssetResult[];
20
- /** The tool the assets were installed for */
21
- tool: string;
20
+ /** The tool(s) the assets were installed for */
21
+ tools: string[];
22
22
  }
23
23
  /**
24
24
  * Post-install output showing what was placed where,
25
25
  * dependency tree, and file locations.
26
26
  */
27
- export default function InstallSummary({ bundleName, bundleVersion, results, tool }: InstallSummaryProps): import("react/jsx-runtime").JSX.Element;
27
+ export default function InstallSummary({ bundleName, bundleVersion, results, tools }: InstallSummaryProps): import("react/jsx-runtime").JSX.Element;
28
28
  export {};
29
29
  //# sourceMappingURL=InstallSummary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstallSummary.d.ts","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,aAAa,EAAE,YAAY,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,mBAAmB,2CAyDvG"}
1
+ {"version":3,"file":"InstallSummary.d.ts","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,aAAa,EAAE,YAAY,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAyDxG"}
@@ -4,9 +4,9 @@ import { Box, Text } from 'ink';
4
4
  * Post-install output showing what was placed where,
5
5
  * dependency tree, and file locations.
6
6
  */
7
- export default function InstallSummary({ bundleName, bundleVersion, results, tool }) {
7
+ export default function InstallSummary({ bundleName, bundleVersion, results, tools }) {
8
8
  const directInstalls = results.filter((r) => r.installReason === 'direct');
9
9
  const deps = results.filter((r) => r.installReason === 'dependency');
10
- return (_jsxs(Box, { flexDirection: 'column', children: [bundleName && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'magenta', children: ["Bundle: ", bundleName, " v", bundleVersion] }), _jsx(Text, { children: " " })] })), _jsxs(Text, { color: 'green', children: ["\u2713 Installed ", results.length, " asset", results.length !== 1 ? 's' : '', " for ", tool] }), _jsx(Text, { children: " " }), deps.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Dependencies:" }), deps.map((r) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: r.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }, `${r.type}/${r.name}`))), _jsx(Text, { children: " " })] })), directInstalls.map((r) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { bold: true, children: r.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }), r.filesPlaced.map((f) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 ", f.destination] }, f.destination))), r.configEntriesCreated.map((c) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 config: ", c.key] }, c.key)))] }, `${r.type}/${r.name}`)))] }));
10
+ return (_jsxs(Box, { flexDirection: 'column', children: [bundleName && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'magenta', children: ["Bundle: ", bundleName, " v", bundleVersion] }), _jsx(Text, { children: " " })] })), _jsxs(Text, { color: 'green', children: ["\u2713 Installed ", results.length, " asset", results.length !== 1 ? 's' : '', " for ", tools.join(', ')] }), _jsx(Text, { children: " " }), deps.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Dependencies:" }), deps.map((r) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: r.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }, `${r.type}/${r.name}`))), _jsx(Text, { children: " " })] })), directInstalls.map((r) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { bold: true, children: r.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }), r.filesPlaced.map((f) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 ", f.destination] }, f.destination))), r.configEntriesCreated.map((c) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 config: ", c.key] }, c.key)))] }, `${r.type}/${r.name}`)))] }));
11
11
  }
12
12
  //# sourceMappingURL=InstallSummary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstallSummary.js","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAsBhC;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAuB;IACtG,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,YAAY,CAAC,CAAC;IAErE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,UAAU,IAAI,CACb,8BACE,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,yBACV,UAAU,QAAI,aAAa,IAC/B,EACP,KAAC,IAAI,oBAAS,IACb,CACJ,EACD,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,kCACJ,OAAO,CAAC,MAAM,YAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAO,IAAI,IACxE,EACP,KAAC,IAAI,oBAAS,EACb,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,8BACE,KAAC,IAAI,IAAC,QAAQ,oCAAqB,EAClC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,MAAC,IAAI,eACF,IAAI,EACL,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,CAAC,CAAC,IAAI,GAAQ,EAClC,MAAC,IAAI,IAAC,QAAQ,mBACX,GAAG,OACF,CAAC,CAAC,IAAI,SAAK,CAAC,CAAC,OAAO,IACjB,KANE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAOzB,CACR,CAAC,EACF,KAAC,IAAI,oBAAS,IACb,CACJ,EACA,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,IAAI,kBAAE,CAAC,CAAC,IAAI,GAAQ,EAC1B,MAAC,IAAI,IAAC,QAAQ,mBACX,GAAG,OACF,CAAC,CAAC,IAAI,SAAK,CAAC,CAAC,OAAO,IACjB,IACF,EACN,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACxB,MAAC,IAAI,IAAC,QAAQ,mBACX,IAAI,aAAI,CAAC,CAAC,WAAW,KADJ,CAAC,CAAC,WAAW,CAE1B,CACR,CAAC,EACD,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjC,MAAC,IAAI,IAAC,QAAQ,mBACX,IAAI,qBAAY,CAAC,CAAC,GAAG,KADJ,CAAC,CAAC,GAAG,CAElB,CACR,CAAC,KAjB6B,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAkBhD,CACP,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"InstallSummary.js","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAsBhC;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAuB;IACvG,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,YAAY,CAAC,CAAC;IAErE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,UAAU,IAAI,CACb,8BACE,MAAC,IAAI,IAAC,KAAK,EAAC,SAAS,yBACV,UAAU,QAAI,aAAa,IAC/B,EACP,KAAC,IAAI,oBAAS,IACb,CACJ,EACD,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,kCACJ,OAAO,CAAC,MAAM,YAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IACpF,EACP,KAAC,IAAI,oBAAS,EACb,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,8BACE,KAAC,IAAI,IAAC,QAAQ,oCAAqB,EAClC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,MAAC,IAAI,eACF,IAAI,EACL,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,CAAC,CAAC,IAAI,GAAQ,EAClC,MAAC,IAAI,IAAC,QAAQ,mBACX,GAAG,OACF,CAAC,CAAC,IAAI,SAAK,CAAC,CAAC,OAAO,IACjB,KANE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAOzB,CACR,CAAC,EACF,KAAC,IAAI,oBAAS,IACb,CACJ,EACA,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,IAAI,kBAAE,CAAC,CAAC,IAAI,GAAQ,EAC1B,MAAC,IAAI,IAAC,QAAQ,mBACX,GAAG,OACF,CAAC,CAAC,IAAI,SAAK,CAAC,CAAC,OAAO,IACjB,IACF,EACN,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACxB,MAAC,IAAI,IAAC,QAAQ,mBACX,IAAI,aAAI,CAAC,CAAC,WAAW,KADJ,CAAC,CAAC,WAAW,CAE1B,CACR,CAAC,EACD,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjC,MAAC,IAAI,IAAC,QAAQ,mBACX,IAAI,qBAAY,CAAC,CAAC,GAAG,KADJ,CAAC,CAAC,GAAG,CAElB,CACR,CAAC,KAjB6B,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAkBhD,CACP,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface LinkProps {
2
+ children: string;
3
+ url: string;
4
+ }
5
+ export default function Link({ children, url }: LinkProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/components/Link.tsx"],"names":[],"mappings":"AAEA,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,SAAS,2CAExD"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ export default function Link({ children, url }) {
4
+ return _jsx(Text, { children: `\x1b]8;;${url}\x07${children}\x1b]8;;\x07` });
5
+ }
6
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../../src/components/Link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAO3B,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAa;IACvD,OAAO,KAAC,IAAI,cAAE,WAAW,GAAG,OAAO,QAAQ,cAAc,GAAQ,CAAC;AACpE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ActionResultMode, ConfirmingActionMode, ExecutingActionMode } from '../hooks/useListState.js';
2
+ type ListActionBarMode = ActionResultMode | ConfirmingActionMode | ExecutingActionMode;
3
+ interface ListActionBarProps {
4
+ /** Whether the current asset is frozen (from project config) */
5
+ isFrozen?: boolean;
6
+ /** Current action-related mode */
7
+ mode: ListActionBarMode;
8
+ }
9
+ export default function ListActionBar({ isFrozen, mode }: ListActionBarProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=ListActionBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListActionBar.d.ts","sourceRoot":"","sources":["../../src/components/ListActionBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI5G,KAAK,iBAAiB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEvF,UAAU,kBAAkB;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,kBAAkB,2CA8B3E"}
@@ -0,0 +1,30 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import Spinner from './Spinner.js';
4
+ export default function ListActionBar({ isFrozen, mode }) {
5
+ switch (mode.kind) {
6
+ case 'action-result':
7
+ if (mode.success) {
8
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { color: 'green', children: ["\u2713 ", mode.message, ". Press any key to continue."] }) }));
9
+ }
10
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { color: 'red', children: ["\u2715 ", mode.message, ". Press any key to continue."] }) }));
11
+ case 'confirming-action':
12
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsx(Text, { color: 'yellow', children: getConfirmationText(mode, isFrozen) }) }));
13
+ case 'executing-action':
14
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsx(Spinner, { message: mode.message }) }));
15
+ }
16
+ }
17
+ function getConfirmationText(mode, isFrozen) {
18
+ const { name } = mode.asset;
19
+ switch (mode.actionKind) {
20
+ case 'freeze-toggle':
21
+ return isFrozen ? `Thaw ${name}? [Y/N]` : `Freeze ${name}? [Y/N]`;
22
+ case 'pin-toggle':
23
+ return mode.asset.pinnedVersion ? `Unpin ${name}? [Y/N]` : `Pin ${name}? [Y/N]`;
24
+ case 'uninstall':
25
+ return `Uninstall ${name}? [Y/N]`;
26
+ case 'update':
27
+ return `Update ${name}? [Y/N]`;
28
+ }
29
+ }
30
+ //# sourceMappingURL=ListActionBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListActionBar.js","sourceRoot":"","sources":["../../src/components/ListActionBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIhC,OAAO,OAAO,MAAM,cAAc,CAAC;AAWnC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAsB;IAC1E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAI,IAAI,CAAC,OAAO,oCAAoC,GACnE,CACP,CAAC;YACJ,CAAC;YACD,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAI,IAAI,CAAC,OAAO,oCAAoC,GACjE,CACP,CAAC;QAEJ,KAAK,mBAAmB;YACtB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAQ,GAC7D,CACP,CAAC;QAEJ,KAAK,kBAAkB;YACrB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,KAAC,OAAO,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,GAC9B,CACP,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA0B,EAAE,QAAkB;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAE5B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC;QACpE,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;QAClF,KAAK,WAAW;YACd,OAAO,aAAa,IAAI,SAAS,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,UAAU,IAAI,SAAS,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ListTypeFilter } from '../hooks/useListState.js';
2
+ import type { InstalledAsset } from '../lib/schemas/lockfile.js';
3
+ interface ListBrowseListProps {
4
+ /** Index of the cursor in the items array */
5
+ cursorIndex: number;
6
+ /** Index of expanded item, or null */
7
+ expandedIndex: null | number;
8
+ /** Set of composite keys (type:org:name) for frozen assets */
9
+ frozenSet?: Set<string>;
10
+ /** Filtered and sorted items to display */
11
+ items: InstalledAsset[];
12
+ /** Map of asset key (type/name) to latest available version */
13
+ outdatedMap: Map<string, string>;
14
+ /** GitHub URL to the expanded asset's README, or null */
15
+ readmeUrl: null | string;
16
+ /** First visible item index */
17
+ scrollOffset: number;
18
+ /** Terminal width for responsive layout */
19
+ terminalWidth: number;
20
+ /** Active type filter tab */
21
+ typeFilter: ListTypeFilter;
22
+ /** Available height in rows for the list area */
23
+ viewportHeight: number;
24
+ }
25
+ export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet, items, outdatedMap, readmeUrl, scrollOffset, terminalWidth, typeFilter, viewportHeight, }: ListBrowseListProps): import("react/jsx-runtime").JSX.Element;
26
+ export {};
27
+ //# sourceMappingURL=ListBrowseList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBrowseList.d.ts","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAYjE,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,2CAA2C;IAC3C,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,yDAAyD;IACzD,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,GACf,EAAE,mBAAmB,2CAmKrB"}
@@ -0,0 +1,57 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { getBreakpoint } from '../lib/breakpoints.js';
4
+ import { formatDate } from '../lib/format.js';
5
+ import ListExpandedRow, { computeExpandedLines } from './ListExpandedRow.js';
6
+ const COLUMN_WIDTHS = {
7
+ medium: { cursor: 3, installDate: 14, name: 30, org: 16, status: 8, type: 14, version: 18 },
8
+ narrow: { cursor: 3, installDate: 14, name: 30, status: 8, version: 18 },
9
+ wide: { cursor: 3, installDate: 14, name: 40, org: 20, status: 8, type: 18, version: 22 },
10
+ };
11
+ export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet, items, outdatedMap, readmeUrl, scrollOffset, terminalWidth, typeFilter, viewportHeight, }) {
12
+ if (items.length === 0) {
13
+ const label = typeFilter === 'all' ? 'installed assets' : `installed ${typeFilter} assets`;
14
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: _jsx(Box, { paddingY: 1, children: _jsxs(Text, { dimColor: true, children: ["No ", label, " match your filters."] }) }) }));
15
+ }
16
+ const bp = getBreakpoint(terminalWidth);
17
+ const showType = bp !== 'narrow';
18
+ const showOrg = bp !== 'narrow';
19
+ const cols = COLUMN_WIDTHS[bp];
20
+ const orgWidth = 'org' in cols ? cols.org : 0;
21
+ const typeWidth = 'type' in cols ? cols.type : 0;
22
+ const aboveCount = scrollOffset;
23
+ // Helper to check if an asset is frozen via the frozenSet
24
+ const isItemFrozen = (item) => frozenSet?.has(`${item.type}:${item.org ?? ''}:${item.name}`) ?? false;
25
+ // Compute expanded row line height for the expanded item (if any)
26
+ const expandedAsset = expandedIndex !== null ? items[expandedIndex] : null;
27
+ const visibleItems = [];
28
+ // Start at 1 to account for the column header line
29
+ let usedLines = 1;
30
+ // Reserve a line for the "▲ more above" indicator when scrolled
31
+ if (scrollOffset > 0)
32
+ usedLines += 1;
33
+ for (let i = scrollOffset; i < items.length; i++) {
34
+ let expandedLines = 0;
35
+ if (i === expandedIndex && expandedAsset) {
36
+ expandedLines = computeExpandedLines(expandedAsset, readmeUrl, isItemFrozen(expandedAsset));
37
+ }
38
+ const linesNeeded = 1 + expandedLines;
39
+ // Reserve a line for the "▼ more below" indicator when there are more items after this one
40
+ const limit = i < items.length - 1 ? viewportHeight - 1 : viewportHeight;
41
+ if (usedLines + linesNeeded > limit)
42
+ break;
43
+ visibleItems.push({ index: i, item: items[i] });
44
+ usedLines += linesNeeded;
45
+ }
46
+ const lastVisibleIndex = visibleItems.length > 0 ? visibleItems[visibleItems.length - 1].index : scrollOffset;
47
+ const belowCount = items.length - lastVisibleIndex - 1;
48
+ return (_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: [_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.cursor, children: _jsx(Text, { children: " " }) }), _jsx(Box, { flexShrink: 0, marginRight: 1, width: cols.name, children: _jsx(Text, { bold: true, dimColor: true, children: "Name" }) }), showOrg && (_jsx(Box, { flexShrink: 0, width: orgWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Org" }) })), showType && (_jsx(Box, { flexShrink: 0, width: typeWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Type" }) })), _jsx(Box, { flexShrink: 0, width: cols.version, children: _jsx(Text, { bold: true, dimColor: true, children: "Version" }) }), _jsx(Box, { flexShrink: 0, width: cols.status, children: _jsx(Text, { bold: true, dimColor: true, children: "Status" }) }), _jsx(Box, { flexShrink: 0, width: cols.installDate, children: _jsx(Text, { bold: true, dimColor: true, children: "Installed" }) })] }), aboveCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25B2 ", aboveCount, " more above"] }), visibleItems.map(({ index, item }) => {
49
+ const isCursor = index === cursorIndex;
50
+ const isExpanded = index === expandedIndex;
51
+ const assetKey = `${item.type}/${item.name}`;
52
+ const latestVersion = outdatedMap.get(assetKey);
53
+ const isOutdated = latestVersion !== undefined;
54
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.cursor, children: _jsx(Text, { color: 'cyan', children: isCursor ? ' ▸' : ' ' }) }), _jsx(Box, { flexShrink: 0, marginRight: 1, width: cols.name, children: _jsx(Text, { bold: isCursor, color: 'cyan', wrap: 'truncate', children: item.name }) }), showOrg && (_jsx(Box, { flexShrink: 0, width: orgWidth, children: _jsx(Text, { dimColor: true, wrap: 'truncate', children: item.org ? `@${item.org}` : '' }) })), showType && (_jsx(Box, { flexShrink: 0, width: typeWidth, children: _jsx(Text, { wrap: 'truncate', children: item.type }) })), _jsx(Box, { flexShrink: 0, width: cols.version, children: isOutdated ? (_jsxs(Text, { wrap: 'truncate', children: [item.version, ' ', _jsxs(Text, { color: 'yellow', children: ['→', " ", latestVersion] })] })) : (_jsx(Text, { wrap: 'truncate', children: item.version })) }), _jsx(Box, { flexShrink: 0, width: cols.status, children: _jsxs(Text, { wrap: 'truncate', children: [item.pinnedVersion ? '📌' : '', isItemFrozen(item) ? '🧊' : ''] }) }), _jsx(Box, { flexShrink: 0, width: cols.installDate, children: _jsx(Text, { dimColor: true, wrap: 'truncate', children: formatDate(item.installedAt) }) })] }), isExpanded && (_jsx(ListExpandedRow, { asset: item, frozen: isItemFrozen(item), latestVersion: latestVersion, readmeUrl: readmeUrl, terminalWidth: terminalWidth }))] }, assetKey));
55
+ }), belowCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25BC ", belowCount, " more below"] })] }));
56
+ }
57
+ //# sourceMappingURL=ListBrowseList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBrowseList.js","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAKhC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,EAAE,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3F,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACxE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;CACjF,CAAC;AAyBX,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,GACM;IACpB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,UAAU,SAAS,CAAC;QAC3F,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,YAChE,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,MAAC,IAAI,IAAC,QAAQ,0BAAK,KAAK,4BAA4B,GAChD,GACF,CACP,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,EAAE,KAAK,QAAQ,CAAC;IACjC,MAAM,OAAO,GAAG,EAAE,KAAK,QAAQ,CAAC;IAChC,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,YAAY,CAAC;IAEhC,0DAA0D;IAC1D,MAAM,YAAY,GAAG,CAAC,IAAoB,EAAW,EAAE,CACrD,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC;IAEzE,kEAAkE;IAClE,MAAM,aAAa,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3E,MAAM,YAAY,GAAmD,EAAE,CAAC;IACxE,mDAAmD;IACnD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,gEAAgE;IAChE,IAAI,YAAY,GAAG,CAAC;QAAE,SAAS,IAAI,CAAC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,aAAa,IAAI,aAAa,EAAE,CAAC;YACzC,aAAa,GAAG,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;QACtC,2FAA2F;QAC3F,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACzE,IAAI,SAAS,GAAG,WAAW,GAAG,KAAK;YAAE,MAAM;QAC3C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;QACjD,SAAS,IAAI,WAAW,CAAC;IAC3B,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IAC/G,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC;IAEvD,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,aAEhE,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,YACpC,KAAC,IAAI,oBAAS,GACV,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,YAClD,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,2BAEZ,GACH,EACL,OAAO,IAAI,CACV,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,YACjC,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,0BAEZ,GACH,CACP,EACA,QAAQ,IAAI,CACX,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,YAClC,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,2BAEZ,GACH,CACP,EACD,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,YACrC,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,8BAEZ,GACH,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,YACpC,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,6BAEZ,GACH,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,YACzC,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,gCAEZ,GACH,IACF,EACL,UAAU,GAAG,CAAC,IAAI,MAAC,IAAI,IAAC,QAAQ,+BAAK,UAAU,mBAAmB,EAClE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;gBACpC,MAAM,QAAQ,GAAG,KAAK,KAAK,WAAW,CAAC;gBACvC,MAAM,UAAU,GAAG,KAAK,KAAK,aAAa,CAAC;gBAC3C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,aAAa,KAAK,SAAS,CAAC;gBAE/C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,YACpC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAQ,GAC9C,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,YAClD,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,UAAU,YAC/C,IAAI,CAAC,IAAI,GACL,GACH,EACL,OAAO,IAAI,CACV,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,YACjC,KAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,EAAC,UAAU,YAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1B,GACH,CACP,EACA,QAAQ,IAAI,CACX,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,YAClC,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,YAAE,IAAI,CAAC,IAAI,GAAQ,GACpC,CACP,EACD,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,YACpC,UAAU,CAAC,CAAC,CAAC,CACZ,MAAC,IAAI,IAAC,IAAI,EAAC,UAAU,aAClB,IAAI,CAAC,OAAO,EAAE,GAAG,EAClB,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aACjB,GAAG,OAAG,aAAa,IACf,IACF,CACR,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,YAAE,IAAI,CAAC,OAAO,GAAQ,CAC5C,GACG,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,YACpC,MAAC,IAAI,IAAC,IAAI,EAAC,UAAU,aAClB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAC9B,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAC1B,GACH,EACN,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,YACzC,KAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,EAAC,UAAU,YAC3B,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GACxB,GACH,IACF,EACL,UAAU,IAAI,CACb,KAAC,eAAe,IACd,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAC1B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,GAC5B,CACH,KAtD8B,QAAQ,CAuDnC,CACP,CAAC;YACJ,CAAC,CAAC,EACD,UAAU,GAAG,CAAC,IAAI,MAAC,IAAI,IAAC,QAAQ,+BAAK,UAAU,mBAAmB,IAC/D,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { InstalledAsset } from '../lib/schemas/lockfile.js';
2
+ /**
3
+ * Compute the number of lines the expanded row will consume for viewport calculations.
4
+ * This accounts for the base lines, variable file count, pinned/frozen indicators, and readme URL.
5
+ */
6
+ export declare function computeExpandedLines(asset: InstalledAsset, readmeUrl: null | string, frozen?: boolean): number;
7
+ /**
8
+ * Number of fixed lines rendered by the expanded row, excluding
9
+ * variable-length sections (file list and readme URL).
10
+ *
11
+ * Breakdown:
12
+ * 1 - top separator
13
+ * 1 - description (or empty)
14
+ * 1 - installed files header
15
+ * 1 - version / latest line
16
+ * 1 - install date line
17
+ * 1 - bottom separator
18
+ * ---
19
+ * 6 base lines
20
+ *
21
+ * Pinned, frozen, and readme URL lines are added dynamically.
22
+ */
23
+ export declare const LIST_EXPANDED_BASE_LINES = 6;
24
+ interface ListExpandedRowProps {
25
+ /** The installed asset to show details for */
26
+ asset: InstalledAsset;
27
+ /** Whether the asset is frozen (from project config) */
28
+ frozen?: boolean;
29
+ /** Latest available version from the registry, if known */
30
+ latestVersion: string | undefined;
31
+ /** GitHub URL to the asset's README, or null if unavailable */
32
+ readmeUrl: null | string;
33
+ /** Terminal width for responsive layout */
34
+ terminalWidth: number;
35
+ }
36
+ export default function ListExpandedRow({ asset, frozen, latestVersion, readmeUrl, terminalWidth }: ListExpandedRowProps): import("react/jsx-runtime").JSX.Element;
37
+ export {};
38
+ //# sourceMappingURL=ListExpandedRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListExpandedRow.d.ts","sourceRoot":"","sources":["../../src/components/ListExpandedRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,MAAM,CAAC,EAAE,OAAO,GACf,MAAM,CAgBR;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,UAAU,oBAAoB;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,cAAc,CAAC;IACtB,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,+DAA+D;IAC/D,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,oBAAoB,2CA2EvH"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { formatDate } from '../lib/format.js';
4
+ import Link from './Link.js';
5
+ /**
6
+ * Compute the number of lines the expanded row will consume for viewport calculations.
7
+ * This accounts for the base lines, variable file count, pinned/frozen indicators, and readme URL.
8
+ */
9
+ export function computeExpandedLines(asset, readmeUrl, frozen) {
10
+ let lines = LIST_EXPANDED_BASE_LINES;
11
+ // Each installed file adds a line
12
+ lines += asset.files.length;
13
+ // Pinned indicator adds a line
14
+ if (asset.pinnedVersion)
15
+ lines += 1;
16
+ // Frozen indicator adds a line
17
+ if (frozen)
18
+ lines += 1;
19
+ // Readme URL: 1 for marginTop + 1 for the URL line
20
+ if (readmeUrl)
21
+ lines += 2;
22
+ return lines;
23
+ }
24
+ /**
25
+ * Number of fixed lines rendered by the expanded row, excluding
26
+ * variable-length sections (file list and readme URL).
27
+ *
28
+ * Breakdown:
29
+ * 1 - top separator
30
+ * 1 - description (or empty)
31
+ * 1 - installed files header
32
+ * 1 - version / latest line
33
+ * 1 - install date line
34
+ * 1 - bottom separator
35
+ * ---
36
+ * 6 base lines
37
+ *
38
+ * Pinned, frozen, and readme URL lines are added dynamically.
39
+ */
40
+ export const LIST_EXPANDED_BASE_LINES = 6;
41
+ export default function ListExpandedRow({ asset, frozen, latestVersion, readmeUrl, terminalWidth }) {
42
+ const separatorWidth = Math.max(20, terminalWidth - 10);
43
+ const isOutdated = latestVersion !== undefined && latestVersion !== asset.version;
44
+ return (_jsxs(Box, { flexDirection: 'column', paddingLeft: 4, children: [_jsx(Text, { dimColor: true, children: '─'.repeat(separatorWidth) }), _jsx(Text, { wrap: 'truncate', children: asset.description ?? '' }), _jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { dimColor: true, children: ["Files (", asset.files.length, "):"] }), asset.files.map((f) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: f.sourcePath })] }, f.sourcePath)))] }), asset.pinnedVersion && (_jsxs(Text, { children: [_jsx(Text, { children: '📌 Pinned' }), _jsxs(Text, { dimColor: true, children: [" to ", asset.pinnedVersion] })] })), frozen && (_jsxs(Text, { children: [_jsx(Text, { children: '🧊 Frozen' }), _jsx(Text, { dimColor: true, children: " \u2014 sync and update will not overwrite" })] })), _jsxs(Box, { gap: 2, children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Installed: " }), _jsxs(Text, { children: ["v", asset.version] })] }), isOutdated && (_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Latest: " }), _jsxs(Text, { color: 'yellow', children: ["v", latestVersion] })] })), latestVersion !== undefined && !isOutdated && _jsx(Text, { color: 'green', children: '✓ up to date' })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Installed: " }), _jsx(Text, { children: formatDate(asset.installedAt) }), asset.updatedAt && _jsxs(Text, { dimColor: true, children: [" (updated ", formatDate(asset.updatedAt), ")"] })] }), readmeUrl && (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "README: " }), _jsx(Text, { color: 'cyan', children: _jsx(Link, { url: readmeUrl, children: "view on GitHub" }) })] })), _jsx(Text, { dimColor: true, children: '─'.repeat(separatorWidth) })] }));
45
+ }
46
+ //# sourceMappingURL=ListExpandedRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListExpandedRow.js","sourceRoot":"","sources":["../../src/components/ListExpandedRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ interface ListHelpBarProps {
2
+ /** Whether the current asset supports actions (has a selected asset) */
3
+ canAct: boolean;
4
+ /** Whether the current row is expanded */
5
+ expanded: boolean;
6
+ /** Whether the project has an org configured */
7
+ hasOrg?: boolean;
8
+ /** Whether any installed assets have available updates */
9
+ hasOutdated: boolean;
10
+ /** Current input mode */
11
+ inputMode: 'filter' | 'navigate';
12
+ /** Whether the currently selected asset is frozen */
13
+ isFrozen: boolean;
14
+ /** Whether the currently selected asset is pinned */
15
+ isPinned: boolean;
16
+ }
17
+ export default function ListHelpBar({ canAct, expanded, hasOrg, hasOutdated, inputMode, isFrozen, isPinned, }: ListHelpBarProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=ListHelpBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListHelpBar.d.ts","sourceRoot":"","sources":["../../src/components/ListHelpBar.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,gBAAgB,2CAkDlB"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export default function ListHelpBar({ canAct, expanded, hasOrg, hasOutdated, inputMode, isFrozen, isPinned, }) {
4
+ if (inputMode === 'filter') {
5
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "Esc" }), ": stop filter", ' ', "Type to filter..."] }) }));
6
+ }
7
+ const pinLabel = isPinned ? 'unpin' : 'pin';
8
+ const freezeLabel = isFrozen ? 'thaw' : 'freeze';
9
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "/" }), ": filter", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "s" }), ": sort", ' ', hasOrg && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "o" }), ": org", ' '] })), expanded ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Esc" }), ": collapse", ' '] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Enter" }), ": expand", ' '] })), _jsx(Text, { dimColor: !canAct || !hasOutdated, children: "u: update" }), ' ', _jsx(Text, { dimColor: !canAct, children: "x: uninstall" }), ' ', _jsxs(Text, { dimColor: !canAct, children: ["p: ", pinLabel] }), ' ', _jsxs(Text, { dimColor: !canAct, children: ["f: ", freezeLabel] }), ' ', _jsx(Text, { children: "q" }), ": quit"] }) }));
10
+ }
11
+ //# sourceMappingURL=ListHelpBar.js.map