@flux-lang/cli-ui 0.1.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 (177) hide show
  1. package/dist/components/ActionGrid.d.ts +11 -0
  2. package/dist/components/ActionGrid.d.ts.map +1 -0
  3. package/dist/components/ActionGrid.js +9 -0
  4. package/dist/components/ActionGrid.js.map +1 -0
  5. package/dist/components/AppFrame.d.ts +6 -0
  6. package/dist/components/AppFrame.d.ts.map +1 -0
  7. package/dist/components/AppFrame.js +7 -0
  8. package/dist/components/AppFrame.js.map +1 -0
  9. package/dist/components/Button.d.ts +8 -0
  10. package/dist/components/Button.d.ts.map +1 -0
  11. package/dist/components/Button.js +10 -0
  12. package/dist/components/Button.js.map +1 -0
  13. package/dist/components/Card.d.ts +12 -0
  14. package/dist/components/Card.d.ts.map +1 -0
  15. package/dist/components/Card.js +14 -0
  16. package/dist/components/Card.js.map +1 -0
  17. package/dist/components/Clickable.d.ts +8 -0
  18. package/dist/components/Clickable.d.ts.map +1 -0
  19. package/dist/components/Clickable.js +8 -0
  20. package/dist/components/Clickable.js.map +1 -0
  21. package/dist/components/Collapsible.d.ts +10 -0
  22. package/dist/components/Collapsible.d.ts.map +1 -0
  23. package/dist/components/Collapsible.js +8 -0
  24. package/dist/components/Collapsible.js.map +1 -0
  25. package/dist/components/CommandPaletteModal.d.ts +12 -0
  26. package/dist/components/CommandPaletteModal.d.ts.map +1 -0
  27. package/dist/components/CommandPaletteModal.js +41 -0
  28. package/dist/components/CommandPaletteModal.js.map +1 -0
  29. package/dist/components/HelpOverlay.d.ts +8 -0
  30. package/dist/components/HelpOverlay.d.ts.map +1 -0
  31. package/dist/components/HelpOverlay.js +40 -0
  32. package/dist/components/HelpOverlay.js.map +1 -0
  33. package/dist/components/InputLine.d.ts +6 -0
  34. package/dist/components/InputLine.d.ts.map +1 -0
  35. package/dist/components/InputLine.js +10 -0
  36. package/dist/components/InputLine.js.map +1 -0
  37. package/dist/components/NavList.d.ts +10 -0
  38. package/dist/components/NavList.d.ts.map +1 -0
  39. package/dist/components/NavList.js +85 -0
  40. package/dist/components/NavList.js.map +1 -0
  41. package/dist/components/PaneFrame.d.ts +9 -0
  42. package/dist/components/PaneFrame.d.ts.map +1 -0
  43. package/dist/components/PaneFrame.js +7 -0
  44. package/dist/components/PaneFrame.js.map +1 -0
  45. package/dist/components/PromptModal.d.ts +7 -0
  46. package/dist/components/PromptModal.d.ts.map +1 -0
  47. package/dist/components/PromptModal.js +9 -0
  48. package/dist/components/PromptModal.js.map +1 -0
  49. package/dist/components/Spinner.d.ts +2 -0
  50. package/dist/components/Spinner.d.ts.map +1 -0
  51. package/dist/components/Spinner.js +15 -0
  52. package/dist/components/Spinner.js.map +1 -0
  53. package/dist/components/StatusChips.d.ts +8 -0
  54. package/dist/components/StatusChips.d.ts.map +1 -0
  55. package/dist/components/StatusChips.js +10 -0
  56. package/dist/components/StatusChips.js.map +1 -0
  57. package/dist/components/TaskProgressView.d.ts +5 -0
  58. package/dist/components/TaskProgressView.d.ts.map +1 -0
  59. package/dist/components/TaskProgressView.js +14 -0
  60. package/dist/components/TaskProgressView.js.map +1 -0
  61. package/dist/components/ToastHost.d.ts +8 -0
  62. package/dist/components/ToastHost.d.ts.map +1 -0
  63. package/dist/components/ToastHost.js +18 -0
  64. package/dist/components/ToastHost.js.map +1 -0
  65. package/dist/index.d.ts +11 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +9 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/palette/index.d.ts +22 -0
  70. package/dist/palette/index.d.ts.map +1 -0
  71. package/dist/palette/index.js +79 -0
  72. package/dist/palette/index.js.map +1 -0
  73. package/dist/screens/AddWizardScreen.d.ts +5 -0
  74. package/dist/screens/AddWizardScreen.d.ts.map +1 -0
  75. package/dist/screens/AddWizardScreen.js +8 -0
  76. package/dist/screens/AddWizardScreen.js.map +1 -0
  77. package/dist/screens/DashboardScreen.d.ts +25 -0
  78. package/dist/screens/DashboardScreen.d.ts.map +1 -0
  79. package/dist/screens/DashboardScreen.js +15 -0
  80. package/dist/screens/DashboardScreen.js.map +1 -0
  81. package/dist/screens/DocDetailsScreen.d.ts +27 -0
  82. package/dist/screens/DocDetailsScreen.d.ts.map +1 -0
  83. package/dist/screens/DocDetailsScreen.js +13 -0
  84. package/dist/screens/DocDetailsScreen.js.map +1 -0
  85. package/dist/screens/DoctorScreen.d.ts +13 -0
  86. package/dist/screens/DoctorScreen.d.ts.map +1 -0
  87. package/dist/screens/DoctorScreen.js +12 -0
  88. package/dist/screens/DoctorScreen.js.map +1 -0
  89. package/dist/screens/EditPlaceholderScreen.d.ts +6 -0
  90. package/dist/screens/EditPlaceholderScreen.d.ts.map +1 -0
  91. package/dist/screens/EditPlaceholderScreen.js +8 -0
  92. package/dist/screens/EditPlaceholderScreen.js.map +1 -0
  93. package/dist/screens/EditScreen.d.ts +15 -0
  94. package/dist/screens/EditScreen.d.ts.map +1 -0
  95. package/dist/screens/EditScreen.js +18 -0
  96. package/dist/screens/EditScreen.js.map +1 -0
  97. package/dist/screens/ExportScreen.d.ts +15 -0
  98. package/dist/screens/ExportScreen.d.ts.map +1 -0
  99. package/dist/screens/ExportScreen.js +11 -0
  100. package/dist/screens/ExportScreen.js.map +1 -0
  101. package/dist/screens/FormatScreen.d.ts +11 -0
  102. package/dist/screens/FormatScreen.d.ts.map +1 -0
  103. package/dist/screens/FormatScreen.js +11 -0
  104. package/dist/screens/FormatScreen.js.map +1 -0
  105. package/dist/screens/NewWizardScreen.d.ts +20 -0
  106. package/dist/screens/NewWizardScreen.d.ts.map +1 -0
  107. package/dist/screens/NewWizardScreen.js +28 -0
  108. package/dist/screens/NewWizardScreen.js.map +1 -0
  109. package/dist/screens/OpenScreen.d.ts +43 -0
  110. package/dist/screens/OpenScreen.d.ts.map +1 -0
  111. package/dist/screens/OpenScreen.js +37 -0
  112. package/dist/screens/OpenScreen.js.map +1 -0
  113. package/dist/screens/SettingsScreen.d.ts +8 -0
  114. package/dist/screens/SettingsScreen.d.ts.map +1 -0
  115. package/dist/screens/SettingsScreen.js +12 -0
  116. package/dist/screens/SettingsScreen.js.map +1 -0
  117. package/dist/screens/ViewerControlScreen.d.ts +16 -0
  118. package/dist/screens/ViewerControlScreen.d.ts.map +1 -0
  119. package/dist/screens/ViewerControlScreen.js +12 -0
  120. package/dist/screens/ViewerControlScreen.js.map +1 -0
  121. package/dist/state/dashboard-machine.d.ts +11 -0
  122. package/dist/state/dashboard-machine.d.ts.map +1 -0
  123. package/dist/state/dashboard-machine.js +13 -0
  124. package/dist/state/dashboard-machine.js.map +1 -0
  125. package/dist/state/focus.d.ts +6 -0
  126. package/dist/state/focus.d.ts.map +1 -0
  127. package/dist/state/focus.js +29 -0
  128. package/dist/state/focus.js.map +1 -0
  129. package/dist/state/mouse.d.ts +8 -0
  130. package/dist/state/mouse.d.ts.map +1 -0
  131. package/dist/state/mouse.js +89 -0
  132. package/dist/state/mouse.js.map +1 -0
  133. package/dist/state/open-search.d.ts +26 -0
  134. package/dist/state/open-search.d.ts.map +1 -0
  135. package/dist/state/open-search.js +27 -0
  136. package/dist/state/open-search.js.map +1 -0
  137. package/dist/state/progress.d.ts +12 -0
  138. package/dist/state/progress.d.ts.map +1 -0
  139. package/dist/state/progress.js +31 -0
  140. package/dist/state/progress.js.map +1 -0
  141. package/dist/state/toasts.d.ts +12 -0
  142. package/dist/state/toasts.d.ts.map +1 -0
  143. package/dist/state/toasts.js +22 -0
  144. package/dist/state/toasts.js.map +1 -0
  145. package/dist/state/types.d.ts +60 -0
  146. package/dist/state/types.d.ts.map +1 -0
  147. package/dist/state/types.js +2 -0
  148. package/dist/state/types.js.map +1 -0
  149. package/dist/theme/index.d.ts +38 -0
  150. package/dist/theme/index.d.ts.map +1 -0
  151. package/dist/theme/index.js +101 -0
  152. package/dist/theme/index.js.map +1 -0
  153. package/dist/ui/ModalOverlay.d.ts +37 -0
  154. package/dist/ui/ModalOverlay.d.ts.map +1 -0
  155. package/dist/ui/ModalOverlay.js +60 -0
  156. package/dist/ui/ModalOverlay.js.map +1 -0
  157. package/dist/ui/app.d.ts +11 -0
  158. package/dist/ui/app.d.ts.map +1 -0
  159. package/dist/ui/app.js +2409 -0
  160. package/dist/ui/app.js.map +1 -0
  161. package/dist/ui/input.d.ts +4 -0
  162. package/dist/ui/input.d.ts.map +1 -0
  163. package/dist/ui/input.js +11 -0
  164. package/dist/ui/input.js.map +1 -0
  165. package/dist/ui/layout.d.ts +20 -0
  166. package/dist/ui/layout.d.ts.map +1 -0
  167. package/dist/ui/layout.js +37 -0
  168. package/dist/ui/layout.js.map +1 -0
  169. package/dist/ui/useDebouncedValue.d.ts +2 -0
  170. package/dist/ui/useDebouncedValue.d.ts.map +1 -0
  171. package/dist/ui/useDebouncedValue.js +10 -0
  172. package/dist/ui/useDebouncedValue.js.map +1 -0
  173. package/dist/ui/useTerminalDimensions.d.ts +5 -0
  174. package/dist/ui/useTerminalDimensions.d.ts.map +1 -0
  175. package/dist/ui/useTerminalDimensions.js +31 -0
  176. package/dist/ui/useTerminalDimensions.js.map +1 -0
  177. package/package.json +36 -0
@@ -0,0 +1,11 @@
1
+ export type ActionItem = {
2
+ id: string;
3
+ label: string;
4
+ icon?: string;
5
+ onClick: () => void;
6
+ active?: boolean;
7
+ };
8
+ export declare function ActionGrid({ items }: {
9
+ items: ActionItem[];
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=ActionGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionGrid.d.ts","sourceRoot":"","sources":["../../src/components/ActionGrid.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,2CAkB5D"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box } from "ink";
3
+ import { Button } from "./Button.js";
4
+ export function ActionGrid({ items }) {
5
+ const left = items.filter((_, idx) => idx % 2 === 0);
6
+ const right = items.filter((_, idx) => idx % 2 === 1);
7
+ return (_jsxs(Box, { flexDirection: "row", gap: 2, children: [_jsx(Box, { flexDirection: "column", gap: 1, children: left.map((item) => (_jsx(Button, { ...item }, item.id))) }), _jsx(Box, { flexDirection: "column", gap: 1, children: right.map((item) => (_jsx(Button, { ...item }, item.id))) })] }));
8
+ }
9
+ //# sourceMappingURL=ActionGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionGrid.js","sourceRoot":"","sources":["../../src/components/ActionGrid.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAA2B;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,GAAG,EAAE,CAAC,aAC7B,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAClB,KAAC,MAAM,OAAmB,IAAI,IAAjB,IAAI,CAAC,EAAE,CAAc,CACnC,CAAC,GACE,EACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,MAAM,OAAmB,IAAI,IAAjB,IAAI,CAAC,EAAE,CAAc,CACnC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare function AppFrame({ children, debug }: {
3
+ children: React.ReactNode;
4
+ debug?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=AppFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppFrame.d.ts","sourceRoot":"","sources":["../../src/components/AppFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,2CAc3F"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from "ink";
3
+ import { color } from "../theme/index.js";
4
+ export function AppFrame({ children, debug }) {
5
+ return (_jsx(Box, { borderStyle: "single", borderColor: debug ? "yellow" : color.border, padding: 1, flexDirection: "column", height: "100%", width: "100%", position: "relative", children: children }));
6
+ }
7
+ //# sourceMappingURL=AppFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppFrame.js","sourceRoot":"","sources":["../../src/components/AppFrame.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAkD;IAC1F,OAAO,CACL,KAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAC5C,OAAO,EAAE,CAAC,EACV,aAAa,EAAC,QAAQ,EACtB,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,MAAM,EACZ,QAAQ,EAAC,UAAU,YAElB,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function Button({ id, label, icon, onClick, active, }: {
2
+ id: string;
3
+ label: string;
4
+ icon?: string;
5
+ onClick: () => void;
6
+ active?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAKA,wBAAgB,MAAM,CAAC,EACrB,EAAE,EACF,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,2CAUA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ import { accent, color } from "../theme/index.js";
4
+ import { Clickable } from "./Clickable.js";
5
+ export function Button({ id, label, icon, onClick, active, }) {
6
+ return (_jsx(Clickable, { id: id, onClick: onClick, priority: 1, children: _jsx(Text, { backgroundColor: active ? color.panelAlt : color.panel, color: active ? undefined : color.fg, children: active
7
+ ? accent(` ${icon ? `${icon} ` : ""}${label} `)
8
+ : ` ${icon ? `${icon} ` : ""}${label} ` }) }));
9
+ }
10
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,MAAM,CAAC,EACrB,EAAE,EACF,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,GAOP;IACC,OAAO,CACL,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,YAC9C,KAAC,IAAI,IAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAC/F,MAAM;gBACL,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;gBAC/C,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,GACpC,GACG,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ export declare function Card({ title, meta, accent, children, footer, width, ruleWidth, debug, }: {
3
+ title: string;
4
+ meta?: React.ReactNode;
5
+ accent?: boolean;
6
+ children: React.ReactNode;
7
+ footer?: React.ReactNode;
8
+ width?: number | string;
9
+ ruleWidth?: number;
10
+ debug?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CAiCA"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { accentRule, color, mutedRuleText } from "../theme/index.js";
4
+ export function Card({ title, meta, accent, children, footer, width, ruleWidth, debug, }) {
5
+ const computedRule = accent
6
+ ? accentRule(ruleWidth ?? 24)
7
+ : mutedRuleText(ruleWidth ?? 24);
8
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingY: 0, width: width, borderStyle: debug ? "classic" : undefined, borderColor: debug ? "magenta" : undefined, children: [_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", paddingTop: 1, children: [_jsx(Text, { color: color.fg, bold: true, children: title }), meta
9
+ ? typeof meta === "string"
10
+ ? _jsx(Text, { color: color.muted, children: meta })
11
+ : meta
12
+ : null] }), _jsx(Text, { children: computedRule }), _jsx(Box, { flexDirection: "column", paddingY: 1, gap: 1, children: children }), footer ? (_jsx(Box, { paddingBottom: 1, children: footer })) : null] }));
13
+ }
14
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,UAAU,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,GAUN;IACC,MAAM,YAAY,GAAG,MAAM;QACzB,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QAC7B,CAAC,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAEnC,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC1C,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,aAE1C,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,cAAc,EAAC,eAAe,EAAC,UAAU,EAAE,CAAC,aACnE,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,kBAAE,KAAK,GAAQ,EACzC,IAAI;wBACH,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;4BACxB,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAG,IAAI,GAAQ;4BACzC,CAAC,CAAC,IAAI;wBACR,CAAC,CAAC,IAAI,IACJ,EACN,KAAC,IAAI,cAAE,YAAY,GAAQ,EAC3B,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,YAC5C,QAAQ,GACL,EACL,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,GAAG,IAAC,aAAa,EAAE,CAAC,YAClB,MAAM,GACH,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ export declare function Clickable({ id, onClick, children, priority, }: {
3
+ id: string;
4
+ onClick: () => void;
5
+ children: React.ReactNode;
6
+ priority?: number;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=Clickable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Clickable.d.ts","sourceRoot":"","sources":["../../src/components/Clickable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,SAAS,CAAC,EACxB,EAAE,EACF,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,2CAOA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from "ink";
3
+ import { useMouseRegion } from "../state/mouse.js";
4
+ export function Clickable({ id, onClick, children, priority, }) {
5
+ const ref = useMouseRegion(id, onClick, priority ?? 0);
6
+ return (_jsx(Box, { ref: ref, flexDirection: "column", children: children }));
7
+ }
8
+ //# sourceMappingURL=Clickable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Clickable.js","sourceRoot":"","sources":["../../src/components/Clickable.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,SAAS,CAAC,EACxB,EAAE,EACF,OAAO,EACP,QAAQ,EACR,QAAQ,GAMT;IACC,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,OAAO,CACL,KAAC,GAAG,IAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC,QAAQ,YAClC,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export declare function Collapsible({ id, title, summary, isOpen, onToggle, children, }: {
3
+ id: string;
4
+ title: string;
5
+ summary?: string;
6
+ isOpen: boolean;
7
+ onToggle: () => void;
8
+ children?: React.ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=Collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/components/Collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,wBAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,2CAgBA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { color } from "../theme/index.js";
4
+ import { Clickable } from "./Clickable.js";
5
+ export function Collapsible({ id, title, summary, isOpen, onToggle, children, }) {
6
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(Clickable, { id: id, onClick: onToggle, priority: 1, children: _jsxs(Box, { flexDirection: "row", justifyContent: "space-between", children: [_jsx(Text, { color: color.fg, children: `${isOpen ? "▾" : "▸"} ${title}` }), summary ? _jsx(Text, { color: color.muted, children: summary }) : null] }) }), isOpen ? (_jsx(Box, { flexDirection: "column", gap: 1, children: children })) : null] }));
7
+ }
8
+ //# sourceMappingURL=Collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../src/components/Collapsible.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,WAAW,CAAC,EAC1B,EAAE,EACF,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,GAQT;IACC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAChC,KAAC,SAAS,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,YAC/C,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,cAAc,EAAC,eAAe,aACrD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,YAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,GAAQ,EAC/D,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAG,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxD,GACI,EACX,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC/B,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { PaletteItem } from "../palette/index.js";
2
+ export declare function CommandPaletteModal({ query, groups, selectedId, width, debug, }: {
3
+ query: string;
4
+ groups: {
5
+ group: string;
6
+ items: PaletteItem[];
7
+ }[];
8
+ selectedId?: string;
9
+ width: number;
10
+ debug?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=CommandPaletteModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandPaletteModal.d.ts","sourceRoot":"","sources":["../../src/components/CommandPaletteModal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,EAAE,CAAA;KAAE,EAAE,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CAwEA"}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { accent, color } from "../theme/index.js";
4
+ import { InputLine } from "./InputLine.js";
5
+ export function CommandPaletteModal({ query, groups, selectedId, width, debug, }) {
6
+ const lineWidth = Math.max(0, width);
7
+ const contentWidth = Math.max(0, lineWidth - 2);
8
+ const padLine = (value) => {
9
+ if (value.length >= lineWidth)
10
+ return value.slice(0, lineWidth);
11
+ return `${value}${" ".repeat(lineWidth - value.length)}`;
12
+ };
13
+ const truncate = (value, max) => {
14
+ if (value.length <= max)
15
+ return value;
16
+ if (max <= 3)
17
+ return value.slice(0, max);
18
+ return `${value.slice(0, max - 3)}...`;
19
+ };
20
+ const renderItemLine = (label, hint, selected) => {
21
+ let labelText = label;
22
+ let hintText = hint ? ` ${hint}` : "";
23
+ const available = Math.max(0, contentWidth);
24
+ if (labelText.length + hintText.length > available) {
25
+ const maxLabel = Math.max(0, available - hintText.length);
26
+ labelText = truncate(labelText, maxLabel);
27
+ const total = labelText.length + hintText.length;
28
+ if (total > available) {
29
+ const maxHint = Math.max(0, available - labelText.length);
30
+ hintText = truncate(hintText, maxHint);
31
+ }
32
+ }
33
+ const padding = " ".repeat(Math.max(0, available - (labelText.length + hintText.length)));
34
+ return (_jsxs(Text, { backgroundColor: selected ? color.panel : color.panelAlt, color: selected ? color.fg : color.fg, bold: selected, inverse: selected, children: [selected ? accent("▌") : " ", " ", labelText, hintText ? _jsx(Text, { color: color.muted, children: hintText }) : null, padding] }));
35
+ };
36
+ return (_jsx(Box, { width: width, children: _jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { color: color.muted, children: "Search" }), _jsx(InputLine, { value: query, placeholder: "Type to filter", focused: true })] }), _jsx(Box, { flexDirection: "column", gap: 1, children: groups.length === 0 ? (_jsx(Text, { backgroundColor: color.panelAlt, color: color.muted, children: padLine("No matches") })) : (groups.map((group) => (_jsxs(Box, { flexDirection: "column", gap: 0, children: [_jsx(Text, { backgroundColor: color.panelAlt, color: color.muted, bold: true, children: padLine(group.group) }), group.items.map((item) => {
37
+ const selected = item.id === selectedId;
38
+ return (_jsx(Box, { width: lineWidth, children: renderItemLine(item.label, item.hint, selected) }, item.id));
39
+ })] }, group.group)))) })] }) }));
40
+ }
41
+ //# sourceMappingURL=CommandPaletteModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandPaletteModal.js","sourceRoot":"","sources":["../../src/components/CommandPaletteModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function HelpOverlay({ width, version, recentsPath, backend, extraLines, }: {
2
+ width: number;
3
+ version?: string;
4
+ recentsPath?: string;
5
+ backend?: string;
6
+ extraLines?: string[];
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=HelpOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpOverlay.d.ts","sourceRoot":"","sources":["../../src/components/HelpOverlay.tsx"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,GACX,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,2CAqEA"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { color } from "../theme/index.js";
4
+ export function HelpOverlay({ width, version, recentsPath, backend, extraLines, }) {
5
+ const sections = [
6
+ {
7
+ title: "Navigation",
8
+ lines: [
9
+ "Tab switch focus · ↑/↓ move · Enter select",
10
+ "Ctrl+K command palette · ? help · q quit",
11
+ ],
12
+ },
13
+ {
14
+ title: "Open picker",
15
+ lines: [
16
+ "/ focus search · Esc exit search · Backspace go up a folder",
17
+ ],
18
+ },
19
+ {
20
+ title: "Flows",
21
+ lines: [
22
+ "Open → Doc Details → Edit / Export / Doctor / Format",
23
+ ],
24
+ },
25
+ {
26
+ title: "Diagnostics",
27
+ lines: [
28
+ "L toggle logs",
29
+ ],
30
+ },
31
+ {
32
+ title: "Automation",
33
+ lines: [
34
+ "--no-ui for scripts / JSON",
35
+ ],
36
+ },
37
+ ];
38
+ return (_jsx(Box, { width: width, children: _jsxs(Box, { flexDirection: "column", gap: 1, children: [sections.map((section) => (_jsxs(Box, { flexDirection: "column", gap: 0, children: [_jsx(Text, { color: color.fg, bold: true, children: section.title }), section.lines.map((line, idx) => (_jsx(Text, { color: color.muted, children: line }, `${section.title}-${idx}`)))] }, section.title))), extraLines && extraLines.length > 0 ? (_jsxs(Box, { flexDirection: "column", gap: 0, children: [_jsx(Text, { color: color.fg, bold: true, children: "Command help" }), extraLines.map((line, idx) => (_jsx(Text, { color: line.trim().length === 0 ? color.muted : color.fg, children: line }, `help-extra-${idx}`)))] })) : null, (backend || recentsPath || version) ? (_jsxs(Box, { flexDirection: "column", gap: 0, children: [_jsx(Text, { color: color.fg, bold: true, children: "Details" }), version ? _jsx(Text, { color: color.muted, children: `Flux ${version}` }) : null, backend ? _jsx(Text, { color: color.muted, children: `Backend: ${backend}` }) : null, recentsPath ? _jsx(Text, { color: color.muted, children: `Recents: ${recentsPath}` }) : null] })) : null] }) }));
39
+ }
40
+ //# sourceMappingURL=HelpOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpOverlay.js","sourceRoot":"","sources":["../../src/components/HelpOverlay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function InputLine({ value, placeholder, focused, }: {
2
+ value: string;
3
+ placeholder?: string;
4
+ focused?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=InputLine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputLine.d.ts","sourceRoot":"","sources":["../../src/components/InputLine.tsx"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,WAAW,EACX,OAAe,GAChB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,2CAWA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { color } from "../theme/index.js";
4
+ export function InputLine({ value, placeholder, focused = false, }) {
5
+ const showPlaceholder = !value && placeholder;
6
+ const displayValue = showPlaceholder ? placeholder ?? "" : value;
7
+ const displayColor = showPlaceholder ? color.muted : undefined;
8
+ return (_jsxs(Box, { flexDirection: "row", children: [displayValue.length > 0 ? _jsx(Text, { color: displayColor, children: displayValue }) : null, focused ? _jsx(Text, { color: color.muted, children: "\u258C" }) : null] }));
9
+ }
10
+ //# sourceMappingURL=InputLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputLine.js","sourceRoot":"","sources":["../../src/components/InputLine.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,WAAW,EACX,OAAO,GAAG,KAAK,GAKhB;IACC,MAAM,eAAe,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC;IAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACrB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,YAAY,YAAG,YAAY,GAAQ,CAAC,CAAC,CAAC,IAAI,EACjF,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,uBAAU,CAAC,CAAC,CAAC,IAAI,IAChD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { NavItem } from "../state/types.js";
2
+ export declare function NavList({ items, selectedIndex, onSelect, width, maxHeight, debug, }: {
3
+ items: NavItem[];
4
+ selectedIndex: number;
5
+ onSelect: (index: number) => void;
6
+ width: number;
7
+ maxHeight?: number;
8
+ debug?: boolean;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=NavList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavList.d.ts","sourceRoot":"","sources":["../../src/components/NavList.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAkC5C,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE;IACD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CA6FA"}
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import path from "node:path";
4
+ import { accent, color, truncateMiddle } from "../theme/index.js";
5
+ import { Clickable } from "./Clickable.js";
6
+ const ACTION_ICONS = {
7
+ new: "+",
8
+ open: "⌁",
9
+ export: "⇩",
10
+ doctor: "✓",
11
+ format: "≡",
12
+ edit: "✎",
13
+ };
14
+ function formatRelativeTime(value) {
15
+ if (!value)
16
+ return "";
17
+ const parsed = Date.parse(value);
18
+ if (Number.isNaN(parsed))
19
+ return "";
20
+ const diffMs = Date.now() - parsed;
21
+ const diffSec = Math.max(0, Math.round(diffMs / 1000));
22
+ if (diffSec < 60)
23
+ return `${diffSec}s ago`;
24
+ const diffMin = Math.round(diffSec / 60);
25
+ if (diffMin < 60)
26
+ return `${diffMin}m ago`;
27
+ const diffHr = Math.round(diffMin / 60);
28
+ if (diffHr < 24)
29
+ return `${diffHr}h ago`;
30
+ const diffDay = Math.round(diffHr / 24);
31
+ return `${diffDay}d ago`;
32
+ }
33
+ export function NavList({ items, selectedIndex, onSelect, width, maxHeight, debug, }) {
34
+ const renderItems = items.map((item, index) => ({
35
+ item,
36
+ index,
37
+ height: item.type === "doc" ? 2 : 1,
38
+ }));
39
+ const totalLines = renderItems.reduce((sum, entry) => sum + entry.height, 0);
40
+ const effectiveHeight = maxHeight ?? totalLines;
41
+ let visibleItems = renderItems;
42
+ let showTopHint = false;
43
+ let showBottomHint = false;
44
+ if (totalLines > effectiveHeight) {
45
+ const positions = [];
46
+ let cursor = 0;
47
+ for (const entry of renderItems) {
48
+ positions.push(cursor);
49
+ cursor += entry.height;
50
+ }
51
+ const selectedLine = positions[selectedIndex] ?? 0;
52
+ const startLine = Math.max(0, Math.min(selectedLine - Math.floor(effectiveHeight / 3), totalLines - effectiveHeight));
53
+ const endLine = startLine + effectiveHeight;
54
+ visibleItems = [];
55
+ for (let i = 0; i < renderItems.length; i += 1) {
56
+ const entry = renderItems[i];
57
+ const lineStart = positions[i];
58
+ const lineEnd = lineStart + entry.height;
59
+ if (lineEnd <= startLine)
60
+ continue;
61
+ if (lineStart >= endLine)
62
+ continue;
63
+ visibleItems.push(entry);
64
+ }
65
+ showTopHint = startLine > 0;
66
+ showBottomHint = endLine < totalLines;
67
+ }
68
+ return (_jsxs(Box, { flexDirection: "column", gap: 1, borderStyle: debug ? "classic" : undefined, borderColor: debug ? "cyan" : undefined, children: [showTopHint ? (_jsx(Text, { color: color.muted, children: "..." })) : null, visibleItems.map(({ item, index }) => {
69
+ if (item.type === "section") {
70
+ return (_jsx(Text, { color: color.muted, children: item.label }, `section-${item.label}-${index}`));
71
+ }
72
+ const selected = index === selectedIndex;
73
+ const icon = item.type === "action" ? ACTION_ICONS[item.id] ?? "•" : "↺";
74
+ const label = item.label;
75
+ const meta = item.type === "doc"
76
+ ? (() => {
77
+ const folder = truncateMiddle(path.dirname(item.path), Math.max(10, Math.floor(width * 0.6)));
78
+ const rel = formatRelativeTime(item.lastOpened);
79
+ return rel ? `${folder} · ${rel}` : folder;
80
+ })()
81
+ : "";
82
+ return (_jsx(Clickable, { id: `nav-${index}`, onClick: () => onSelect(index), children: _jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", alignItems: "center", children: [_jsx(Text, { color: selected ? undefined : color.border, children: selected ? accent("▌") : " " }), _jsx(Text, { inverse: selected, color: selected ? color.fg : color.fg, children: ` ${icon} ${label}` })] }), item.type === "doc" ? (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: selected ? undefined : color.border, children: selected ? accent("▌") : " " }), _jsx(Text, { inverse: selected, color: selected ? color.muted : color.muted, children: ` ${meta}` })] })) : null] }) }, `${item.type}-${item.label}-${index}`));
83
+ }), showBottomHint ? (_jsx(Text, { color: color.muted, children: "..." })) : null] }));
84
+ }
85
+ //# sourceMappingURL=NavList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavList.js","sourceRoot":"","sources":["../../src/components/NavList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,GAAG,MAAM,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxC,OAAO,GAAG,OAAO,OAAO,CAAC;AAC3B,CAAC;AAQD,MAAM,UAAU,OAAO,CAAC,EACtB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,GAQN;IACC,MAAM,WAAW,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,SAAS,IAAI,UAAU,CAAC;IAEhD,IAAI,YAAY,GAAG,WAAW,CAAC;IAC/B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,UAAU,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC;QACtH,MAAM,OAAO,GAAG,SAAS,GAAG,eAAe,CAAC;QAE5C,YAAY,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;YACzC,IAAI,OAAO,IAAI,SAAS;gBAAE,SAAS;YACnC,IAAI,SAAS,IAAI,OAAO;gBAAE,SAAS;YACnC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5B,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aACpH,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,oBAAY,CACrC,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5B,OAAO,CACL,KAAC,IAAI,IAAwC,KAAK,EAAE,KAAK,CAAC,KAAK,YAC5D,IAAI,CAAC,KAAK,IADF,WAAW,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAEpC,CACR,CAAC;gBACJ,CAAC;gBACD,MAAM,QAAQ,GAAG,KAAK,KAAK,aAAa,CAAC;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK;oBAC9B,CAAC,CAAC,CAAC,GAAG,EAAE;wBACJ,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9F,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAChD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7C,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,EAAE,CAAC;gBAEP,OAAO,CACL,KAAC,SAAS,IAA6C,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YACvG,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,YAC7C,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GACxB,EACP,KAAC,IAAI,IAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAC3D,IAAI,IAAI,IAAI,KAAK,EAAE,GACf,IACH,EACL,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CACrB,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,YAC7C,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GACxB,EACP,KAAC,IAAI,IAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,YACjE,MAAM,IAAI,EAAE,GACR,IACH,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,IApBQ,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAqBzC,CACb,CAAC;YACJ,CAAC,CAAC,EACD,cAAc,CAAC,CAAC,CAAC,CAChB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,oBAAY,CACrC,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export declare function PaneFrame({ focused, width, height, flexGrow, children, }: {
3
+ focused: boolean;
4
+ width?: number;
5
+ height?: number | string;
6
+ flexGrow?: number;
7
+ children: React.ReactNode;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=PaneFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaneFrame.d.ts","sourceRoot":"","sources":["../../src/components/PaneFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAeA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from "ink";
3
+ import { color } from "../theme/index.js";
4
+ export function PaneFrame({ focused, width, height, flexGrow, children, }) {
5
+ return (_jsx(Box, { borderStyle: "round", borderColor: focused ? color.fg : color.border, paddingX: 1, paddingY: 0, width: width, height: height, flexGrow: flexGrow, flexDirection: "column", children: children }));
6
+ }
7
+ //# sourceMappingURL=PaneFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaneFrame.js","sourceRoot":"","sources":["../../src/components/PaneFrame.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,GAOT;IACC,OAAO,CACL,KAAC,GAAG,IACF,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAC9C,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAC,QAAQ,YAErB,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function PromptModal({ label, value, width, debug, }: {
2
+ label: string;
3
+ value: string;
4
+ width: number;
5
+ debug?: boolean;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=PromptModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptModal.d.ts","sourceRoot":"","sources":["../../src/components/PromptModal.tsx"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CAYA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { Card } from "./Card.js";
4
+ import { color } from "../theme/index.js";
5
+ import { InputLine } from "./InputLine.js";
6
+ export function PromptModal({ label, value, width, debug, }) {
7
+ return (_jsx(Box, { width: width, children: _jsxs(Card, { title: label, meta: "", accent: true, ruleWidth: width - 6, debug: debug, children: [_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { color: color.muted, children: "Value" }), _jsx(InputLine, { value: value, placeholder: "Type a value" })] }), _jsx(Text, { color: color.muted, children: "Enter to submit \u00B7 Esc to cancel" })] }) }));
8
+ }
9
+ //# sourceMappingURL=PromptModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptModal.js","sourceRoot":"","sources":["../../src/components/PromptModal.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAMN;IACC,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,YACf,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,EAAE,EAAC,MAAM,QAAC,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,aACnE,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,GAAG,EAAE,CAAC,aAC7B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,sBAAc,EACtC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAC,cAAc,GAAG,IAClD,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,qDAAwC,IAC3D,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function Spinner(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":"AAKA,wBAAgB,OAAO,4CAUtB"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Text } from "ink";
4
+ const FRAMES = ["|", "/", "-", "\\"];
5
+ export function Spinner() {
6
+ const [frame, setFrame] = useState(0);
7
+ useEffect(() => {
8
+ const timer = setInterval(() => {
9
+ setFrame((prev) => (prev + 1) % FRAMES.length);
10
+ }, 120);
11
+ return () => clearInterval(timer);
12
+ }, []);
13
+ return _jsx(Text, { children: FRAMES[frame] });
14
+ }
15
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAErC,MAAM,UAAU,OAAO;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,KAAC,IAAI,cAAE,MAAM,CAAC,KAAK,CAAC,GAAQ,CAAC;AACtC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function StatusChips({ backend, live, seed, docstep, time, }: {
2
+ backend?: string;
3
+ live?: boolean;
4
+ seed?: number;
5
+ docstep?: number;
6
+ time?: number;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=StatusChips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusChips.d.ts","sourceRoot":"","sources":["../../src/components/StatusChips.tsx"],"names":[],"mappings":"AAYA,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,2CAUA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { color } from "../theme/index.js";
4
+ function Chip({ label, tone }) {
5
+ return (_jsx(Box, { marginRight: 1, children: _jsx(Text, { backgroundColor: color.panelAlt, color: tone ?? color.muted, children: ` ${label} ` }) }));
6
+ }
7
+ export function StatusChips({ backend, live, seed, docstep, time, }) {
8
+ return (_jsxs(Box, { flexDirection: "row", flexWrap: "wrap", children: [backend ? _jsx(Chip, { label: `backend ${backend}` }) : null, typeof live === "boolean" ? _jsx(Chip, { label: live ? "live" : "idle", tone: live ? "green" : color.muted }) : null, typeof seed === "number" ? _jsx(Chip, { label: `seed ${seed}` }) : null, typeof docstep === "number" ? _jsx(Chip, { label: `docstep ${docstep}` }) : null, typeof time === "number" ? _jsx(Chip, { label: `time ${time.toFixed?.(2) ?? time}` }) : null] }));
9
+ }
10
+ //# sourceMappingURL=StatusChips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusChips.js","sourceRoot":"","sources":["../../src/components/StatusChips.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAoC;IAC7D,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,YAAG,IAAI,KAAK,GAAG,GAAQ,GACpF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,IAAI,GAOL;IACC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,aACrC,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,OAAO,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EACtD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC9G,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EACjE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,OAAO,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EAC1E,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,IACnF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ProgressState } from "../state/progress.js";
2
+ export declare function TaskProgressView({ progress }: {
3
+ progress: ProgressState | null;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
5
+ //# sourceMappingURL=TaskProgressView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskProgressView.d.ts","sourceRoot":"","sources":["../../src/components/TaskProgressView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AASrD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,kDAQhF"}