@tooee/view 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +15 -15
  2. package/dist/components/subviews/{CodeSubview.d.ts → code-subview.d.ts} +2 -2
  3. package/dist/components/subviews/code-subview.d.ts.map +1 -0
  4. package/dist/components/subviews/{CodeSubview.js → code-subview.js} +8 -8
  5. package/dist/components/subviews/code-subview.js.map +1 -0
  6. package/dist/components/subviews/custom-subview.d.ts +9 -0
  7. package/dist/components/subviews/custom-subview.d.ts.map +1 -0
  8. package/dist/components/subviews/{CustomSubview.js → custom-subview.js} +7 -7
  9. package/dist/components/subviews/custom-subview.js.map +1 -0
  10. package/dist/components/subviews/index.d.ts +4 -4
  11. package/dist/components/subviews/index.d.ts.map +1 -1
  12. package/dist/components/subviews/index.js +4 -4
  13. package/dist/components/subviews/index.js.map +1 -1
  14. package/dist/components/subviews/{MarkdownSubview.d.ts → markdown-subview.d.ts} +3 -3
  15. package/dist/components/subviews/markdown-subview.d.ts.map +1 -0
  16. package/dist/components/subviews/{MarkdownSubview.js → markdown-subview.js} +27 -25
  17. package/dist/components/subviews/markdown-subview.js.map +1 -0
  18. package/dist/components/subviews/table-subview.d.ts +8 -0
  19. package/dist/components/subviews/table-subview.d.ts.map +1 -0
  20. package/dist/components/subviews/{TableSubview.js → table-subview.js} +40 -22
  21. package/dist/components/subviews/table-subview.js.map +1 -0
  22. package/dist/components/subviews/types.d.ts.map +1 -1
  23. package/dist/components/{ViewScreen.d.ts → view-screen.d.ts} +3 -3
  24. package/dist/components/view-screen.d.ts.map +1 -0
  25. package/dist/components/{ViewScreen.js → view-screen.js} +11 -11
  26. package/dist/components/view-screen.js.map +1 -0
  27. package/dist/content-loader-store.d.ts +11 -7
  28. package/dist/content-loader-store.d.ts.map +1 -1
  29. package/dist/content-loader-store.js +70 -50
  30. package/dist/content-loader-store.js.map +1 -1
  31. package/dist/default-provider.d.ts +4 -4
  32. package/dist/default-provider.d.ts.map +1 -1
  33. package/dist/default-provider.js +48 -39
  34. package/dist/default-provider.js.map +1 -1
  35. package/dist/directory-provider.d.ts +2 -2
  36. package/dist/directory-provider.d.ts.map +1 -1
  37. package/dist/directory-provider.js +13 -10
  38. package/dist/directory-provider.js.map +1 -1
  39. package/dist/directory-view.d.ts +8 -0
  40. package/dist/directory-view.d.ts.map +1 -0
  41. package/dist/{DirectoryView.js → directory-view.js} +18 -12
  42. package/dist/directory-view.js.map +1 -0
  43. package/dist/hooks/index.d.ts +4 -4
  44. package/dist/hooks/index.d.ts.map +1 -1
  45. package/dist/hooks/index.js +3 -3
  46. package/dist/hooks/index.js.map +1 -1
  47. package/dist/hooks/{useContentCommands.d.ts → use-content-commands.d.ts} +2 -2
  48. package/dist/hooks/use-content-commands.d.ts.map +1 -0
  49. package/dist/hooks/{useContentCommands.js → use-content-commands.js} +6 -4
  50. package/dist/hooks/use-content-commands.js.map +1 -0
  51. package/dist/hooks/{useContentLoader.d.ts → use-content-loader.d.ts} +4 -4
  52. package/dist/hooks/use-content-loader.d.ts.map +1 -0
  53. package/dist/hooks/use-content-loader.js +81 -0
  54. package/dist/hooks/use-content-loader.js.map +1 -0
  55. package/dist/hooks/{useViewCommandContext.d.ts → use-view-command-context.d.ts} +3 -3
  56. package/dist/hooks/use-view-command-context.d.ts.map +1 -0
  57. package/dist/hooks/{useViewCommandContext.js → use-view-command-context.js} +15 -13
  58. package/dist/hooks/use-view-command-context.js.map +1 -0
  59. package/dist/index.d.ts +4 -4
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +3 -3
  62. package/dist/index.js.map +1 -1
  63. package/dist/launch.d.ts +2 -2
  64. package/dist/launch.d.ts.map +1 -1
  65. package/dist/launch.js +6 -6
  66. package/dist/launch.js.map +1 -1
  67. package/dist/types.d.ts +4 -4
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js +46 -24
  70. package/dist/types.js.map +1 -1
  71. package/dist/{View.d.ts → view.d.ts} +3 -3
  72. package/dist/view.d.ts.map +1 -0
  73. package/dist/{View.js → view.js} +19 -13
  74. package/dist/view.js.map +1 -0
  75. package/package.json +10 -10
  76. package/src/components/subviews/{CodeSubview.tsx → code-subview.tsx} +25 -19
  77. package/src/components/subviews/{CustomSubview.tsx → custom-subview.tsx} +23 -21
  78. package/src/components/subviews/index.ts +5 -5
  79. package/src/components/subviews/{MarkdownSubview.tsx → markdown-subview.tsx} +53 -54
  80. package/src/components/subviews/table-subview.tsx +95 -0
  81. package/src/components/subviews/types.ts +14 -14
  82. package/src/components/{ViewScreen.tsx → view-screen.tsx} +33 -32
  83. package/src/content-loader-store.ts +131 -99
  84. package/src/default-provider.ts +84 -64
  85. package/src/directory-provider.ts +32 -24
  86. package/src/directory-view.tsx +79 -0
  87. package/src/hooks/index.ts +7 -4
  88. package/src/hooks/{useContentCommands.ts → use-content-commands.ts} +19 -14
  89. package/src/hooks/use-content-loader.ts +92 -0
  90. package/src/hooks/{useViewCommandContext.ts → use-view-command-context.ts} +40 -38
  91. package/src/index.ts +14 -14
  92. package/src/launch.tsx +20 -18
  93. package/src/types.ts +107 -78
  94. package/src/{View.tsx → view.tsx} +51 -44
  95. package/dist/DirectoryView.d.ts +0 -7
  96. package/dist/DirectoryView.d.ts.map +0 -1
  97. package/dist/DirectoryView.js.map +0 -1
  98. package/dist/View.d.ts.map +0 -1
  99. package/dist/View.js.map +0 -1
  100. package/dist/components/ViewScreen.d.ts.map +0 -1
  101. package/dist/components/ViewScreen.js.map +0 -1
  102. package/dist/components/subviews/CodeSubview.d.ts.map +0 -1
  103. package/dist/components/subviews/CodeSubview.js.map +0 -1
  104. package/dist/components/subviews/CustomSubview.d.ts +0 -9
  105. package/dist/components/subviews/CustomSubview.d.ts.map +0 -1
  106. package/dist/components/subviews/CustomSubview.js.map +0 -1
  107. package/dist/components/subviews/MarkdownSubview.d.ts.map +0 -1
  108. package/dist/components/subviews/MarkdownSubview.js.map +0 -1
  109. package/dist/components/subviews/TableSubview.d.ts +0 -8
  110. package/dist/components/subviews/TableSubview.d.ts.map +0 -1
  111. package/dist/components/subviews/TableSubview.js.map +0 -1
  112. package/dist/hooks/useContentCommands.d.ts.map +0 -1
  113. package/dist/hooks/useContentCommands.js.map +0 -1
  114. package/dist/hooks/useContentLoader.d.ts.map +0 -1
  115. package/dist/hooks/useContentLoader.js +0 -55
  116. package/dist/hooks/useContentLoader.js.map +0 -1
  117. package/dist/hooks/useViewCommandContext.d.ts.map +0 -1
  118. package/dist/hooks/useViewCommandContext.js.map +0 -1
  119. package/src/DirectoryView.tsx +0 -68
  120. package/src/components/subviews/TableSubview.tsx +0 -65
  121. package/src/hooks/useContentLoader.ts +0 -72
@@ -1,32 +1,45 @@
1
1
  import { createStore } from "@xstate/store";
2
- export function isAsyncIterable(value) {
3
- return value != null && typeof value === "object" && Symbol.asyncIterator in value;
4
- }
5
- export function createEmptyContent(format, title) {
2
+ export const isAsyncIterable = function isAsyncIterable(value) {
3
+ return (value !== null &&
4
+ value !== undefined &&
5
+ typeof value === "object" &&
6
+ Symbol.asyncIterator in value);
7
+ };
8
+ export const createEmptyContent = function createEmptyContent(format, title) {
6
9
  switch (format) {
7
- case "markdown":
10
+ case "markdown": {
8
11
  return { format, markdown: "", title };
9
- case "code":
10
- return { format, code: "", title };
11
- case "text":
12
+ }
13
+ case "code": {
14
+ return { code: "", format, title };
15
+ }
16
+ case "text": {
12
17
  return { format, text: "", title };
13
- case "table":
14
- return { format, columns: [], rows: [], title };
15
- default:
16
- return { format, data: undefined, title };
18
+ }
19
+ case "table": {
20
+ return { columns: [], format, rows: [], title };
21
+ }
22
+ default: {
23
+ return { data: undefined, format, title };
24
+ }
17
25
  }
18
- }
19
- function ensureContentFormat(current, format, title) {
26
+ };
27
+ const ensureContentFormat = function ensureContentFormat(current, format, title) {
20
28
  if (!current || current.format !== format) {
29
+ // Deferred(lint-sweep): add schema-based validation for custom and streamed content formats.
30
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- format-dependent content is trusted at this provider boundary
21
31
  return createEmptyContent(format, title);
22
32
  }
33
+ // Deferred(lint-sweep): add schema-based validation for custom and streamed content formats.
34
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- the provider contract supplies the matching format
23
35
  return current;
24
- }
25
- export function applyContentChunk(current, chunk, title) {
36
+ };
37
+ export const applyContentChunk = function applyContentChunk(current, chunk, title) {
26
38
  switch (chunk.type) {
27
- case "replace":
39
+ case "replace": {
28
40
  return chunk.content;
29
- case "append":
41
+ }
42
+ case "append": {
30
43
  if (chunk.format === "markdown") {
31
44
  const target = ensureContentFormat(current, "markdown", title);
32
45
  return { ...target, markdown: target.markdown + chunk.data };
@@ -43,45 +56,37 @@ export function applyContentChunk(current, chunk, title) {
43
56
  const target = ensureContentFormat(current, "text", title);
44
57
  return { ...target, text: target.text + chunk.data };
45
58
  }
46
- case "patch":
59
+ }
60
+ case "patch": {
47
61
  return chunk.apply(current);
48
- default:
62
+ }
63
+ case "marks": {
49
64
  return current ?? createEmptyContent("markdown", title);
65
+ }
66
+ default: {
67
+ return current ?? createEmptyContent("markdown", title);
68
+ }
50
69
  }
51
- }
52
- export function normalizeError(error) {
70
+ };
71
+ export const normalizeError = function normalizeError(error) {
53
72
  return error instanceof Error ? error.message : String(error);
54
- }
55
- export function createContentLoaderStore() {
73
+ };
74
+ export const createContentLoaderStore = function createContentLoaderStore() {
56
75
  return createStore({
57
76
  context: {
58
- status: "idle",
59
- requestId: 0,
60
- loadSeq: 0,
61
77
  content: null,
62
78
  error: null,
79
+ loadSeq: 0,
63
80
  providerMarks: [],
81
+ requestId: 0,
82
+ status: "idle",
64
83
  title: undefined,
65
84
  },
66
85
  on: {
67
- loadStarted: (ctx, event) => ({
68
- ...ctx,
69
- status: "loading",
70
- requestId: ctx.requestId + 1,
71
- error: null,
72
- providerMarks: event.marks,
73
- title: event.title,
74
- }),
75
- streamStarted: (ctx, event) => event.requestId !== ctx.requestId
76
- ? ctx
77
- : {
78
- ...ctx,
79
- status: "streaming",
80
- content: createEmptyContent(event.format, ctx.title),
81
- },
82
86
  chunkReceived: (ctx, event) => {
83
- if (event.requestId !== ctx.requestId)
87
+ if (event.requestId !== ctx.requestId) {
84
88
  return ctx;
89
+ }
85
90
  if (event.chunk.type === "marks") {
86
91
  const markSet = event.chunk.set;
87
92
  const providerMarks = [
@@ -92,16 +97,31 @@ export function createContentLoaderStore() {
92
97
  }
93
98
  return { ...ctx, content: applyContentChunk(ctx.content, event.chunk, ctx.title) };
94
99
  },
95
- loaded: (ctx, event) => event.requestId !== ctx.requestId
96
- ? ctx
97
- : { ...ctx, status: "ready", content: event.content },
98
- streamEnded: (ctx, event) => event.requestId !== ctx.requestId ? ctx : { ...ctx, status: "ready" },
99
- loadFailed: (ctx, event) => event.requestId !== ctx.requestId ? ctx : { ...ctx, status: "error", error: event.error },
100
- loadCancelled: (ctx, event) => event.requestId !== ctx.requestId ? ctx : { ...ctx, requestId: ctx.requestId + 1 },
100
+ loadCancelled: (ctx, event) => event.requestId === ctx.requestId ? { ...ctx, requestId: ctx.requestId + 1 } : ctx,
101
+ loadFailed: (ctx, event) => event.requestId === ctx.requestId ? { ...ctx, error: event.error, status: "error" } : ctx,
102
+ loadStarted: (ctx, event) => ({
103
+ ...ctx,
104
+ error: null,
105
+ providerMarks: event.marks,
106
+ requestId: ctx.requestId + 1,
107
+ status: "loading",
108
+ title: event.title,
109
+ }),
110
+ loaded: (ctx, event) => event.requestId === ctx.requestId
111
+ ? { ...ctx, content: event.content, status: "ready" }
112
+ : ctx,
101
113
  reloadRequested: (ctx) => ({ ...ctx, loadSeq: ctx.loadSeq + 1 }),
114
+ streamEnded: (ctx, event) => event.requestId === ctx.requestId ? { ...ctx, status: "ready" } : ctx,
115
+ streamStarted: (ctx, event) => event.requestId === ctx.requestId
116
+ ? {
117
+ ...ctx,
118
+ content: createEmptyContent(event.format, ctx.title),
119
+ status: "streaming",
120
+ }
121
+ : ctx,
102
122
  },
103
123
  });
104
- }
124
+ };
105
125
  export const selectContent = (ctx) => ctx.content;
106
126
  export const selectStatus = (ctx) => ctx.status;
107
127
  export const selectStreaming = (ctx) => ctx.status === "streaming";
@@ -1 +1 @@
1
- {"version":3,"file":"content-loader-store.js","sourceRoot":"","sources":["../src/content-loader-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-loader-store.js","sourceRoot":"","sources":["../src/content-loader-store.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import type { ContentFormat, ContentProvider } from "./types.js";
2
2
  export interface CreateProviderOptions {
3
3
  renderer?: ContentFormat;
4
4
  }
5
- export declare function createFileProvider(filePath: string, options?: CreateProviderOptions): ContentProvider;
6
- export declare function createStdinProvider(options?: CreateProviderOptions): ContentProvider;
7
- export declare function createTableFileProvider(filePath: string): ContentProvider;
8
- export declare function createTableStdinProvider(): ContentProvider;
5
+ export declare const createFileProvider: (filePath: string, options?: CreateProviderOptions) => ContentProvider;
6
+ export declare const createStdinProvider: (options?: CreateProviderOptions) => ContentProvider;
7
+ export declare const createTableFileProvider: (filePath: string) => ContentProvider;
8
+ export declare const createTableStdinProvider: () => ContentProvider;
9
9
  //# sourceMappingURL=default-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-provider.d.ts","sourceRoot":"","sources":["../src/default-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEzE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB;AAmED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,qBAA0B,GAClC,eAAe,CAYjB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,eAAe,CAQxF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAEzE;AAED,wBAAgB,wBAAwB,IAAI,eAAe,CAE1D"}
1
+ {"version":3,"file":"default-provider.d.ts","sourceRoot":"","sources":["../src/default-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAmFD,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,UAAS,qBAA0B,KAClC,eAYF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAS,qBAA0B,KAClC,eAQF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,KACf,eAEF,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAwC,eAE5E,CAAC"}
@@ -1,62 +1,71 @@
1
1
  import { parseAuto } from "@tooee/renderers";
2
- function detectFormat(filePath) {
2
+ const detectFormat = function detectFormat(filePath) {
3
3
  const ext = filePath.split(".").pop()?.toLowerCase();
4
- if (!ext)
4
+ if (ext === undefined || ext === "") {
5
5
  return { format: "text" };
6
+ }
6
7
  const tableExts = new Set(["csv", "tsv"]);
7
- if (tableExts.has(ext))
8
+ if (tableExts.has(ext)) {
8
9
  return { format: "table" };
10
+ }
9
11
  const markdownExts = new Set(["md", "mdx", "markdown"]);
10
- if (markdownExts.has(ext))
12
+ if (markdownExts.has(ext)) {
11
13
  return { format: "markdown" };
14
+ }
12
15
  const codeExts = {
13
- ts: "typescript",
14
- tsx: "typescript",
15
- js: "javascript",
16
- jsx: "javascript",
17
- py: "python",
18
- rs: "rust",
19
- go: "go",
20
- rb: "ruby",
21
- sh: "bash",
22
16
  bash: "bash",
23
- zsh: "zsh",
24
- json: "json",
25
- yaml: "yaml",
26
- yml: "yaml",
27
- toml: "toml",
28
- css: "css",
29
- html: "html",
30
- sql: "sql",
31
17
  c: "c",
32
18
  cpp: "cpp",
19
+ css: "css",
20
+ go: "go",
33
21
  h: "c",
34
22
  hpp: "cpp",
23
+ html: "html",
35
24
  java: "java",
25
+ js: "javascript",
26
+ json: "json",
27
+ jsx: "javascript",
36
28
  kt: "kotlin",
29
+ py: "python",
30
+ rb: "ruby",
31
+ rs: "rust",
32
+ sh: "bash",
33
+ sql: "sql",
37
34
  swift: "swift",
35
+ toml: "toml",
36
+ ts: "typescript",
37
+ tsx: "typescript",
38
+ yaml: "yaml",
39
+ yml: "yaml",
40
+ zsh: "zsh",
38
41
  };
39
42
  const language = codeExts[ext];
40
- if (language)
43
+ if (typeof language === "string") {
41
44
  return { format: "code", language };
45
+ }
42
46
  return { format: "text" };
43
- }
44
- function contentFromText(text, format, title, language) {
47
+ };
48
+ const contentFromText = function contentFromText(text, format, title, language) {
45
49
  switch (format) {
46
- case "markdown":
50
+ case "markdown": {
47
51
  return { format: "markdown", markdown: text, title };
48
- case "code":
49
- return { format: "code", code: text, language, title };
52
+ }
53
+ case "code": {
54
+ return { code: text, format: "code", language, title };
55
+ }
50
56
  case "table": {
51
57
  const parsed = parseAuto(text);
52
- return { format: "table", columns: parsed.columns, rows: parsed.rows, title };
58
+ return { columns: parsed.columns, format: "table", rows: parsed.rows, title };
53
59
  }
54
- case "text":
55
- default:
60
+ case "text": {
56
61
  return { format: "text", text, title };
62
+ }
63
+ default: {
64
+ return { format: "text", text, title };
65
+ }
57
66
  }
58
- }
59
- export function createFileProvider(filePath, options = {}) {
67
+ };
68
+ export const createFileProvider = function createFileProvider(filePath, options = {}) {
60
69
  return {
61
70
  async load() {
62
71
  const detected = detectFormat(filePath);
@@ -67,8 +76,8 @@ export function createFileProvider(filePath, options = {}) {
67
76
  return contentFromText(text, format, title, detected.language);
68
77
  },
69
78
  };
70
- }
71
- export function createStdinProvider(options = {}) {
79
+ };
80
+ export const createStdinProvider = function createStdinProvider(options = {}) {
72
81
  return {
73
82
  async load() {
74
83
  const text = await new Response(Bun.stdin.stream()).text();
@@ -76,11 +85,11 @@ export function createStdinProvider(options = {}) {
76
85
  return contentFromText(text, format, "stdin");
77
86
  },
78
87
  };
79
- }
80
- export function createTableFileProvider(filePath) {
88
+ };
89
+ export const createTableFileProvider = function createTableFileProvider(filePath) {
81
90
  return createFileProvider(filePath, { renderer: "table" });
82
- }
83
- export function createTableStdinProvider() {
91
+ };
92
+ export const createTableStdinProvider = function createTableStdinProvider() {
84
93
  return createStdinProvider({ renderer: "table" });
85
- }
94
+ };
86
95
  //# sourceMappingURL=default-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-provider.js","sourceRoot":"","sources":["../src/default-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-provider.js","sourceRoot":"","sources":["../src/default-provider.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,6 @@ export interface DirectoryEntry {
3
3
  name: string;
4
4
  path: string;
5
5
  }
6
- export declare function listDirectoryFiles(dirPath: string): DirectoryEntry[];
7
- export declare function createDirectoryFileProvider(filePath: string): ContentProvider;
6
+ export declare const listDirectoryFiles: (dirPath: string) => DirectoryEntry[];
7
+ export declare const createDirectoryFileProvider: (filePath: string) => ContentProvider;
8
8
  //# sourceMappingURL=directory-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-provider.d.ts","sourceRoot":"","sources":["../src/directory-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAmCjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAoBpE;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAE7E"}
1
+ {"version":3,"file":"directory-provider.d.ts","sourceRoot":"","sources":["../src/directory-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmClD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,kBAAkB,GAA+B,SAAS,MAAM,KAAG,cAAc,EA0B7F,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,KACf,eAEF,CAAC"}
@@ -1,5 +1,5 @@
1
- import { readdirSync, statSync } from "fs";
2
- import { join } from "path";
1
+ import { readdirSync, statSync } from "node:fs";
2
+ import path from "node:path";
3
3
  import { createFileProvider } from "./default-provider.js";
4
4
  const SUPPORTED_EXTENSIONS = new Set([
5
5
  "md",
@@ -32,30 +32,33 @@ const SUPPORTED_EXTENSIONS = new Set([
32
32
  "swift",
33
33
  "sql",
34
34
  ]);
35
- export function listDirectoryFiles(dirPath) {
35
+ export const listDirectoryFiles = function listDirectoryFiles(dirPath) {
36
36
  const entries = readdirSync(dirPath);
37
37
  const files = [];
38
38
  for (const entry of entries) {
39
- if (entry.startsWith("."))
39
+ if (entry.startsWith(".")) {
40
40
  continue;
41
- const fullPath = join(dirPath, entry);
41
+ }
42
+ const fullPath = path.join(dirPath, entry);
42
43
  try {
43
44
  const stat = statSync(fullPath);
44
- if (!stat.isFile())
45
+ if (!stat.isFile()) {
45
46
  continue;
47
+ }
46
48
  }
47
49
  catch {
48
50
  continue;
49
51
  }
50
52
  const ext = entry.split(".").pop()?.toLowerCase();
51
- if (!ext || !SUPPORTED_EXTENSIONS.has(ext))
53
+ if (ext === undefined || ext === "" || !SUPPORTED_EXTENSIONS.has(ext)) {
52
54
  continue;
55
+ }
53
56
  files.push({ name: entry, path: fullPath });
54
57
  }
55
58
  files.sort((a, b) => a.name.localeCompare(b.name));
56
59
  return files;
57
- }
58
- export function createDirectoryFileProvider(filePath) {
60
+ };
61
+ export const createDirectoryFileProvider = function createDirectoryFileProvider(filePath) {
59
62
  return createFileProvider(filePath);
60
- }
63
+ };
61
64
  //# sourceMappingURL=directory-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-provider.js","sourceRoot":"","sources":["../src/directory-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,IAAI;IACJ,KAAK;IACL,UAAU;IACV,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,MAAM;IACN,IAAI;IACJ,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAOF,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,KAAK,GAAqB,EAAE,CAAA;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE,SAAQ;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAA;QACjD,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC1D,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"directory-provider.js","sourceRoot":"","sources":["../src/directory-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,IAAI;IACJ,KAAK;IACL,UAAU;IACV,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,KAAK;IACL,GAAG;IACH,KAAK;IACL,MAAM;IACN,IAAI;IACJ,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAOH,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,OAAe;IAC3E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,SAAS;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;QAClD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,2BAA2B,CAC7E,QAAgB;IAEhB,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ActionDefinition } from "@tooee/commands";
2
+ interface DirectoryViewProps {
3
+ dirPath: string;
4
+ actions?: ActionDefinition[];
5
+ }
6
+ export declare const DirectoryView: ({ dirPath, actions, }: DirectoryViewProps) => React.ReactNode;
7
+ export {};
8
+ //# sourceMappingURL=directory-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-view.d.ts","sourceRoot":"","sources":["../src/directory-view.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA2BxD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,aAAa,GAA0B,uBAGjD,kBAAkB,KAAG,KAAK,CAAC,SAyC7B,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { useState, useMemo } from "react";
3
3
  import { useCommand } from "@tooee/commands";
4
- import { View } from "./View.js";
4
+ import { View } from "./view.js";
5
5
  import { listDirectoryFiles } from "./directory-provider.js";
6
6
  import { createFileProvider } from "./default-provider.js";
7
- function createDirectoryFileProvider(entry, index, total) {
7
+ const createDirectoryFileProvider = function createDirectoryFileProvider(entry, index, total) {
8
8
  const inner = createFileProvider(entry.path);
9
9
  return {
10
10
  async load() {
11
11
  const result = inner.load();
12
+ // Deferred(lint-sweep): add schema-based validation for custom and streamed content formats.
13
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- file providers return external content at this boundary
12
14
  const content = result instanceof Promise ? await result : result;
13
15
  return {
14
16
  ...content,
@@ -16,30 +18,34 @@ function createDirectoryFileProvider(entry, index, total) {
16
18
  };
17
19
  },
18
20
  };
19
- }
20
- export function DirectoryView({ dirPath, actions }) {
21
+ };
22
+ export const DirectoryView = function DirectoryView({ dirPath, actions, }) {
21
23
  const files = useMemo(() => listDirectoryFiles(dirPath), [dirPath]);
22
24
  const [currentIndex, setCurrentIndex] = useState(0);
23
25
  const contentProvider = useMemo(() => files.length > 0
24
26
  ? createDirectoryFileProvider(files[currentIndex], currentIndex, files.length)
25
27
  : null, [files, currentIndex]);
26
28
  useCommand({
27
- id: "dir.next-file",
28
- title: "Next file",
29
+ handler: () => {
30
+ setCurrentIndex((i) => Math.min(i + 1, files.length - 1));
31
+ },
29
32
  hotkey: "l",
33
+ id: "dir.next-file",
30
34
  modes: ["cursor"],
31
- handler: () => setCurrentIndex((i) => Math.min(i + 1, files.length - 1)),
35
+ title: "Next file",
32
36
  });
33
37
  useCommand({
34
- id: "dir.prev-file",
35
- title: "Previous file",
38
+ handler: () => {
39
+ setCurrentIndex((i) => Math.max(i - 1, 0));
40
+ },
36
41
  hotkey: "h",
42
+ id: "dir.prev-file",
37
43
  modes: ["cursor"],
38
- handler: () => setCurrentIndex((i) => Math.max(i - 1, 0)),
44
+ title: "Previous file",
39
45
  });
40
46
  if (files.length === 0 || !contentProvider) {
41
47
  return (_jsx("box", { children: _jsx("text", { content: "No viewable files in directory" }) }));
42
48
  }
43
49
  return _jsx(View, { contentProvider: contentProvider, actions: actions });
44
- }
45
- //# sourceMappingURL=DirectoryView.js.map
50
+ };
51
+ //# sourceMappingURL=directory-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-view.js","sourceRoot":"","sources":["../src/directory-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,2BAA2B,GAAG,SAAS,2BAA2B,CACtE,KAAqB,EACrB,KAAa,EACb,KAAa;IAEb,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,6FAA6F;YAC7F,0HAA0H;YAC1H,MAAM,OAAO,GAAG,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAE,MAAqB,CAAC;YAClF,OAAO;gBACL,GAAG,OAAO;gBACV,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG;aAChD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,aAAa,CAAC,EAClD,OAAO,EACP,OAAO,GACY;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CACH,KAAK,CAAC,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;QAC9E,CAAC,CAAC,IAAI,EACV,CAAC,KAAK,EAAE,YAAY,CAAC,CACtB,CAAC;IAEF,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC;IAEH,UAAU,CAAC;QACT,OAAO,EAAE,GAAG,EAAE;YACZ,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,GAAG;QACX,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,KAAK,EAAE,eAAe;KACvB,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,OAAO,CACL,wBACE,eAAM,OAAO,EAAC,gCAAgC,GAAG,GAC7C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,IAAI,IAAC,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;AACtE,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- export { useContentLoader } from "./useContentLoader.js";
2
- export { useContentCommands } from "./useContentCommands.js";
3
- export { createViewCommandContext, useProvideViewCommandContext } from "./useViewCommandContext.js";
4
- export type { CreateViewCommandContextOptions, ProvideViewCommandContextOptions, ViewCommandContext, } from "./useViewCommandContext.js";
1
+ export { useContentLoader } from "./use-content-loader.js";
2
+ export { useContentCommands } from "./use-content-commands.js";
3
+ export { createViewCommandContext, useProvideViewCommandContext, } from "./use-view-command-context.js";
4
+ export type { CreateViewCommandContextOptions, ProvideViewCommandContextOptions, ViewCommandContext, } from "./use-view-command-context.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AACnG,YAAY,EACV,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,+BAA+B,CAAC"}
@@ -1,4 +1,4 @@
1
- export { useContentLoader } from "./useContentLoader.js";
2
- export { useContentCommands } from "./useContentCommands.js";
3
- export { createViewCommandContext, useProvideViewCommandContext } from "./useViewCommandContext.js";
1
+ export { useContentLoader } from "./use-content-loader.js";
2
+ export { useContentCommands } from "./use-content-commands.js";
3
+ export { createViewCommandContext, useProvideViewCommandContext, } from "./use-view-command-context.js";
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,+BAA+B,CAAC"}
@@ -8,8 +8,8 @@ interface UseContentCommandsParams {
8
8
  * whole document and toggling the line-number gutter. Theme, quit, actions and
9
9
  * every row-level command belong to the document controller and its screen.
10
10
  */
11
- export declare function useContentCommands({ content, textContent }: UseContentCommandsParams): {
11
+ export declare const useContentCommands: ({ content, textContent, }: UseContentCommandsParams) => {
12
12
  showLineNumbers: boolean;
13
13
  };
14
14
  export {};
15
- //# sourceMappingURL=useContentCommands.d.ts.map
15
+ //# sourceMappingURL=use-content-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-content-commands.d.ts","sourceRoot":"","sources":["../../src/hooks/use-content-commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,UAAU,wBAAwB;IAChC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAA+B,2BAG3D,wBAAwB;;CAe1B,CAAC"}
@@ -6,16 +6,18 @@ import { useConfig } from "@tooee/config";
6
6
  * whole document and toggling the line-number gutter. Theme, quit, actions and
7
7
  * every row-level command belong to the document controller and its screen.
8
8
  */
9
- export function useContentCommands({ content, textContent }) {
9
+ export const useContentCommands = function useContentCommands({ content, textContent, }) {
10
10
  const config = useConfig();
11
11
  const [showLineNumbers, setShowLineNumbers] = useState(config.view?.gutter ?? true);
12
12
  useCopyCommand({
13
13
  getText: () => (content ? textContent : undefined),
14
14
  });
15
15
  useToggleLineNumbersCommand({
16
+ onToggle: () => {
17
+ setShowLineNumbers((v) => !v);
18
+ },
16
19
  showLineNumbers,
17
- onToggle: () => setShowLineNumbers((v) => !v),
18
20
  });
19
21
  return { showLineNumbers };
20
- }
21
- //# sourceMappingURL=useContentCommands.js.map
22
+ };
23
+ //# sourceMappingURL=use-content-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-content-commands.js","sourceRoot":"","sources":["../../src/hooks/use-content-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,EAC5D,OAAO,EACP,WAAW,GACc;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;IAEpF,cAAc,CAAC;QACb,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;KACnD,CAAC,CAAC;IACH,2BAA2B,CAAC;QAC1B,QAAQ,EAAE,GAAG,EAAE;YACb,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B,CAAC,CAAC"}