@stainless-api/docs-ui 0.1.0-beta.1 → 0.1.0-beta.10

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 (187) hide show
  1. package/dist/components/breadcrumbs.d.ts +11 -0
  2. package/dist/components/breadcrumbs.js +52 -0
  3. package/dist/components/breadcrumbs.js.map +1 -0
  4. package/dist/components/chat.d.ts +6 -0
  5. package/dist/components/chat.js +80 -0
  6. package/dist/components/chat.js.map +1 -0
  7. package/dist/components/dropdown.d.ts +17 -0
  8. package/dist/components/dropdown.js +18 -0
  9. package/dist/components/dropdown.js.map +1 -0
  10. package/dist/components/icons.d.ts +27 -0
  11. package/dist/components/icons.js +34 -0
  12. package/dist/components/icons.js.map +1 -0
  13. package/dist/components/index.d.ts +9 -0
  14. package/dist/components/index.js +10 -0
  15. package/dist/components/index.js.map +1 -0
  16. package/dist/components/method.d.ts +41 -0
  17. package/dist/components/method.js +44 -0
  18. package/dist/components/method.js.map +1 -0
  19. package/dist/components/overview.d.ts +21 -0
  20. package/dist/components/overview.js +49 -0
  21. package/dist/components/overview.js.map +1 -0
  22. package/dist/components/primitives.d.ts +60 -0
  23. package/dist/components/primitives.js +117 -0
  24. package/dist/components/primitives.js.map +1 -0
  25. package/dist/components/properties.d.ts +24 -0
  26. package/dist/components/properties.js +24 -0
  27. package/dist/components/properties.js.map +1 -0
  28. package/dist/components/scripts/dropdown.d.ts +5 -0
  29. package/dist/components/scripts/dropdown.js +64 -0
  30. package/dist/components/scripts/dropdown.js.map +1 -0
  31. package/dist/components/sdk.d.ts +78 -0
  32. package/dist/components/sdk.js +153 -0
  33. package/dist/components/sdk.js.map +1 -0
  34. package/dist/components/sidebar.d.ts +22 -0
  35. package/dist/components/sidebar.js +30 -0
  36. package/dist/components/sidebar.js.map +1 -0
  37. package/dist/components/snippets.d.ts +28 -0
  38. package/dist/components/snippets.js +76 -0
  39. package/dist/components/snippets.js.map +1 -0
  40. package/dist/contexts/component-generics.d.ts +25 -0
  41. package/dist/contexts/component-generics.js +24 -0
  42. package/dist/contexts/component-generics.js.map +1 -0
  43. package/dist/contexts/component-types.d.ts +4 -0
  44. package/dist/contexts/component-types.js +2 -0
  45. package/dist/contexts/component-types.js.map +1 -0
  46. package/dist/contexts/component.d.ts +14 -0
  47. package/dist/contexts/component.js +14 -0
  48. package/dist/contexts/component.js.map +1 -0
  49. package/dist/contexts/docs.d.ts +34 -0
  50. package/dist/contexts/docs.js +43 -0
  51. package/dist/contexts/docs.js.map +1 -0
  52. package/dist/contexts/index.d.ts +7 -0
  53. package/dist/contexts/index.js +15 -0
  54. package/dist/contexts/index.js.map +1 -0
  55. package/dist/contexts/markdown.d.ts +13 -0
  56. package/dist/contexts/markdown.js +29 -0
  57. package/dist/contexts/markdown.js.map +1 -0
  58. package/dist/contexts/navigation.d.ts +19 -0
  59. package/dist/contexts/navigation.js +14 -0
  60. package/dist/contexts/navigation.js.map +1 -0
  61. package/dist/contexts/search.d.ts +13 -0
  62. package/dist/contexts/search.js +15 -0
  63. package/dist/contexts/search.js.map +1 -0
  64. package/dist/contexts/use-components.d.ts +1 -0
  65. package/dist/contexts/use-components.js +3 -0
  66. package/dist/contexts/use-components.js.map +1 -0
  67. package/dist/index.d.ts +6 -0
  68. package/dist/index.js +7 -7542
  69. package/dist/index.js.map +1 -0
  70. package/dist/languages/go.d.ts +21 -0
  71. package/dist/languages/go.js +116 -0
  72. package/dist/languages/go.js.map +1 -0
  73. package/dist/languages/http.d.ts +25 -0
  74. package/dist/languages/http.js +130 -0
  75. package/dist/languages/http.js.map +1 -0
  76. package/dist/languages/index.d.ts +37 -0
  77. package/dist/languages/index.js +10 -0
  78. package/dist/languages/index.js.map +1 -0
  79. package/dist/languages/java.d.ts +23 -0
  80. package/dist/languages/java.js +120 -0
  81. package/dist/languages/java.js.map +1 -0
  82. package/dist/languages/python.d.ts +22 -0
  83. package/dist/languages/python.js +104 -0
  84. package/dist/languages/python.js.map +1 -0
  85. package/dist/languages/ruby.d.ts +22 -0
  86. package/dist/languages/ruby.js +125 -0
  87. package/dist/languages/ruby.js.map +1 -0
  88. package/dist/languages/typescript.d.ts +22 -0
  89. package/dist/languages/typescript.js +134 -0
  90. package/dist/languages/typescript.js.map +1 -0
  91. package/dist/markdown/index.d.ts +6 -0
  92. package/dist/markdown/index.js +80 -0
  93. package/dist/markdown/index.js.map +1 -0
  94. package/dist/markdown/md.d.ts +11 -0
  95. package/dist/markdown/md.js +34 -0
  96. package/dist/markdown/md.js.map +1 -0
  97. package/dist/markdown/utils.d.ts +17 -0
  98. package/dist/markdown/utils.js +30 -0
  99. package/dist/markdown/utils.js.map +1 -0
  100. package/dist/mcp.js +678 -576
  101. package/dist/routing.d.ts +44 -0
  102. package/dist/routing.js +149 -160
  103. package/dist/routing.js.map +1 -0
  104. package/dist/search/form.d.ts +13 -0
  105. package/dist/search/form.js +55 -0
  106. package/dist/search/form.js.map +1 -0
  107. package/dist/search/index.d.ts +1 -0
  108. package/dist/search/index.js +2 -0
  109. package/dist/search/index.js.map +1 -0
  110. package/dist/search/indexer.d.ts +31 -0
  111. package/dist/search/indexer.js +212 -0
  112. package/dist/search/indexer.js.map +1 -0
  113. package/dist/search/mcp.d.ts +8 -0
  114. package/dist/search/mcp.js +43 -0
  115. package/dist/search/mcp.js.map +1 -0
  116. package/dist/search/printer.d.ts +6 -0
  117. package/dist/search/printer.js +43 -0
  118. package/dist/search/printer.js.map +1 -0
  119. package/dist/search/providers/algolia.d.ts +8 -0
  120. package/dist/search/providers/algolia.js +64 -0
  121. package/dist/search/providers/algolia.js.map +1 -0
  122. package/dist/search/providers/fuse.d.ts +10 -0
  123. package/dist/search/providers/fuse.js +14 -0
  124. package/dist/search/providers/fuse.js.map +1 -0
  125. package/dist/search/providers/pagefind.d.ts +2 -0
  126. package/dist/search/providers/pagefind.js +19 -0
  127. package/dist/search/providers/pagefind.js.map +1 -0
  128. package/dist/search/providers/walker.d.ts +5 -0
  129. package/dist/search/providers/walker.js +23 -0
  130. package/dist/search/providers/walker.js.map +1 -0
  131. package/dist/search/results.d.ts +21 -0
  132. package/dist/search/results.js +58 -0
  133. package/dist/search/results.js.map +1 -0
  134. package/dist/search/state.d.ts +29 -0
  135. package/dist/search/state.js +38 -0
  136. package/dist/search/state.js.map +1 -0
  137. package/dist/search/types.d.ts +79 -0
  138. package/dist/search/types.js +24 -0
  139. package/dist/search/types.js.map +1 -0
  140. package/dist/style.d.ts +179 -0
  141. package/dist/style.js +179 -0
  142. package/dist/style.js.map +1 -0
  143. package/dist/styles/primitives.css +1 -0
  144. package/dist/types/sdkjson.d.ts +1 -0
  145. package/dist/types/sdkjson.js +2 -0
  146. package/dist/types/sdkjson.js.map +1 -0
  147. package/dist/types/stainless-alias/lib/json-spec-v2/GoAST.d.ts +120 -0
  148. package/dist/types/stainless-alias/lib/json-spec-v2/GoAST.js +2 -0
  149. package/dist/types/stainless-alias/lib/json-spec-v2/GoAST.js.map +1 -0
  150. package/dist/types/stainless-alias/lib/json-spec-v2/HttpAST.d.ts +100 -0
  151. package/dist/types/stainless-alias/lib/json-spec-v2/HttpAST.js +3 -0
  152. package/dist/types/stainless-alias/lib/json-spec-v2/HttpAST.js.map +1 -0
  153. package/dist/types/stainless-alias/lib/json-spec-v2/JavaAST.d.ts +87 -0
  154. package/dist/types/stainless-alias/lib/json-spec-v2/JavaAST.js +2 -0
  155. package/dist/types/stainless-alias/lib/json-spec-v2/JavaAST.js.map +1 -0
  156. package/dist/types/stainless-alias/lib/json-spec-v2/PythonAST.d.ts +110 -0
  157. package/dist/types/stainless-alias/lib/json-spec-v2/PythonAST.js +3 -0
  158. package/dist/types/stainless-alias/lib/json-spec-v2/PythonAST.js.map +1 -0
  159. package/dist/types/stainless-alias/lib/json-spec-v2/RubyAST.d.ts +122 -0
  160. package/dist/types/stainless-alias/lib/json-spec-v2/RubyAST.js +2 -0
  161. package/dist/types/stainless-alias/lib/json-spec-v2/RubyAST.js.map +1 -0
  162. package/dist/types/stainless-alias/lib/json-spec-v2/TSAST.d.ts +146 -0
  163. package/dist/types/stainless-alias/lib/json-spec-v2/TSAST.js +3 -0
  164. package/dist/types/stainless-alias/lib/json-spec-v2/TSAST.js.map +1 -0
  165. package/dist/types/stainless-alias/lib/json-spec-v2/TerraformAST.d.ts +89 -0
  166. package/dist/types/stainless-alias/lib/json-spec-v2/TerraformAST.js +3 -0
  167. package/dist/types/stainless-alias/lib/json-spec-v2/TerraformAST.js.map +1 -0
  168. package/dist/types/stainless-alias/lib/json-spec-v2/types.d.ts +190 -0
  169. package/dist/types/stainless-alias/lib/json-spec-v2/types.js +105 -0
  170. package/dist/types/stainless-alias/lib/json-spec-v2/types.js.map +1 -0
  171. package/dist/utils.d.ts +7 -0
  172. package/dist/utils.js +27 -0
  173. package/dist/utils.js.map +1 -0
  174. package/package.json +8 -7
  175. package/src/components/method.tsx +4 -2
  176. package/src/components/overview.tsx +1 -0
  177. package/src/components/sdk.tsx +3 -2
  178. package/src/components/snippets.tsx +3 -2
  179. package/src/search/results.tsx +1 -0
  180. package/src/style.ts +0 -1
  181. package/src/styles/main.css +739 -746
  182. package/src/styles/primitives.css +435 -427
  183. package/src/styles/resets.css +33 -41
  184. package/src/styles/search.css +247 -248
  185. package/src/styles/sidebar.css +58 -60
  186. package/src/styles/snippets.css +86 -88
  187. package/src/styles/variables.css +85 -89
@@ -0,0 +1,44 @@
1
+ import type { SDKJSON } from './types/sdkjson';
2
+ export declare const Languages: readonly ["http", "node", "python", "go", "typescript", "terraform", "ruby", "java", "kotlin"];
3
+ export declare const SupportedLanguageSyntaxes: string[];
4
+ export type DocsLanguage = (typeof Languages)[number];
5
+ export declare const LanguageNames: Record<DocsLanguage, string>;
6
+ export declare function getLanguageSnippet(language: DocsLanguage): "node.default" | "go.default" | "python.default" | "terraform.default" | "http.curl" | "typescript.default" | "ruby.default" | "java.default" | "kotlin.default";
7
+ export declare function isSupportedLanguage(language: string): language is DocsLanguage;
8
+ export type ParsedStainlessPath = ReturnType<typeof parseStainlessPath>;
9
+ export declare function parseStainlessPath(stainlessPath: string): {
10
+ resource: string[];
11
+ method: string | null;
12
+ model: string | null;
13
+ routable: string | undefined;
14
+ } | null;
15
+ export declare function trimStainlessPath(stainlessPath: string): string;
16
+ export declare function getResource(stainlessPath: string): string | undefined;
17
+ export declare function parseRoute(basePath: string, route: string): {
18
+ stainlessPath: string;
19
+ language: DocsLanguage;
20
+ };
21
+ export declare function generateRoute(basePath: string, language: string, stainlessPath: string): string | null;
22
+ export type SpecTreeEntry = {
23
+ data: SDKJSON.Method | SDKJSON.Resource | SDKJSON.Model;
24
+ path: string[];
25
+ };
26
+ export declare function walkTree(spec: SDKJSON.Spec, includeModels?: boolean): Generator<SpecTreeEntry, void, any>;
27
+ export type RouteEntry = {
28
+ title: string;
29
+ kind: SpecTreeEntry['data']['kind'];
30
+ language: DocsLanguage;
31
+ stainlessPath: string;
32
+ slug: string;
33
+ };
34
+ export declare function generateRouteList({ spec, languages, excludeLanguages, }: {
35
+ spec: SDKJSON.Spec;
36
+ languages?: DocsLanguage[];
37
+ excludeLanguages?: DocsLanguage[];
38
+ }): RouteEntry[];
39
+ type ResourceOrMethod = SDKJSON.Resource | SDKJSON.Method;
40
+ export declare function findNavigationPath(items: ResourceOrMethod[], target: string): any;
41
+ export declare function expandToElement(el: HTMLElement): void;
42
+ export declare function scrollToPath(stainlessPath: string): void;
43
+ export declare function updateHistory(basePath: string, language: DocsLanguage, stainlessPath: string): void;
44
+ export {};
package/dist/routing.js CHANGED
@@ -1,180 +1,169 @@
1
- // src/routing.ts
2
- var Languages = [
3
- "http",
4
- "node",
5
- "python",
6
- "go",
7
- "typescript",
8
- "terraform",
9
- "ruby",
10
- "java",
11
- "kotlin"
1
+ export const Languages = [
2
+ 'http',
3
+ 'node',
4
+ 'python',
5
+ 'go',
6
+ 'typescript',
7
+ 'terraform',
8
+ 'ruby',
9
+ 'java',
10
+ 'kotlin',
12
11
  ];
13
- var SupportedLanguageSyntaxes = [
14
- "http",
15
- "javascript",
16
- "python",
17
- "go",
18
- "typescript",
19
- "terraform",
20
- "ruby",
21
- "java",
22
- "kotlin"
12
+ export const SupportedLanguageSyntaxes = [
13
+ 'http',
14
+ 'javascript',
15
+ 'python',
16
+ 'go',
17
+ 'typescript',
18
+ 'terraform',
19
+ 'ruby',
20
+ 'java',
21
+ 'kotlin',
23
22
  ];
24
- var LanguageNames = {
25
- http: "HTTP",
26
- node: "TypeScript",
27
- typescript: "TypeScript",
28
- python: "Python",
29
- go: "Go",
30
- ruby: "Ruby",
31
- java: "Java",
32
- kotlin: "Kotlin",
33
- terraform: "Terraform"
23
+ export const LanguageNames = {
24
+ http: 'HTTP',
25
+ node: 'TypeScript',
26
+ typescript: 'TypeScript',
27
+ python: 'Python',
28
+ go: 'Go',
29
+ ruby: 'Ruby',
30
+ java: 'Java',
31
+ kotlin: 'Kotlin',
32
+ terraform: 'Terraform',
34
33
  };
35
- function getLanguageSnippet(language) {
36
- return language === "http" ? "http.curl" : `${language}.default`;
34
+ export function getLanguageSnippet(language) {
35
+ return language === 'http' ? 'http.curl' : `${language}.default`;
37
36
  }
38
- function isSupportedLanguage(language) {
39
- return Languages.includes(language);
37
+ export function isSupportedLanguage(language) {
38
+ return Languages.includes(language);
40
39
  }
41
- var DefaultLanguage = "http";
42
- var StainlessPathPattern = /(\(resource\) (?<resource>[^\s]+))( > (\(method\) (?<method>[^\s]+)|\(model\) (?<model>[^\s]+))?)?/;
43
- function parseStainlessPath(stainlessPath) {
44
- const match = stainlessPath.match(StainlessPathPattern);
45
- if (!match) return null;
46
- return {
47
- resource: match.groups.resource.split("."),
48
- method: match.groups.method ?? null,
49
- model: match.groups.model ?? null,
50
- routable: match.groups.model ? match[1] : match[0]
51
- };
40
+ const DefaultLanguage = 'http';
41
+ const StainlessPathPattern = /(\(resource\) (?<resource>[^\s]+))( > (\(method\) (?<method>[^\s]+)|\(model\) (?<model>[^\s]+))?)?/;
42
+ export function parseStainlessPath(stainlessPath) {
43
+ const match = stainlessPath.match(StainlessPathPattern);
44
+ if (!match)
45
+ return null;
46
+ return {
47
+ resource: match.groups.resource.split('.'),
48
+ method: match.groups.method ?? null,
49
+ model: match.groups.model ?? null,
50
+ routable: match.groups.model ? match[1] : match[0],
51
+ };
52
52
  }
53
- function trimStainlessPath(stainlessPath) {
54
- return stainlessPath.replace(/ > \([^\s]+\)$/, "");
53
+ export function trimStainlessPath(stainlessPath) {
54
+ return stainlessPath.replace(/ > \([^\s]+\)$/, '');
55
55
  }
56
- function getResource(stainlessPath) {
57
- const parsed = parseStainlessPath(stainlessPath);
58
- return parsed?.resource[0];
56
+ export function getResource(stainlessPath) {
57
+ const parsed = parseStainlessPath(stainlessPath);
58
+ return parsed?.resource[0];
59
59
  }
60
- function parseRoute(basePath, route) {
61
- if (!route.startsWith(basePath)) return { stainlessPath: "", language: DefaultLanguage };
62
- if (basePath && route.startsWith(basePath)) route = route.slice(basePath.length);
63
- let stainlessPath = "";
64
- let elements = route.slice(1).split("/");
65
- let language = DefaultLanguage;
66
- if (elements[0] && Languages.includes(elements[0])) {
67
- language = elements[0];
68
- elements = elements.slice(1);
69
- }
70
- while (elements.length > 0) {
71
- const element = elements.shift();
72
- switch (element) {
73
- case "resources":
74
- stainlessPath += `(resource) ${elements.shift()}`;
75
- break;
76
- case "subresources":
77
- stainlessPath += `.${elements.shift()}`;
78
- break;
79
- case "methods":
80
- stainlessPath += ` > (method) ${elements.shift()}`;
81
- break;
60
+ export function parseRoute(basePath, route) {
61
+ if (!route.startsWith(basePath))
62
+ return { stainlessPath: '', language: DefaultLanguage };
63
+ if (basePath && route.startsWith(basePath))
64
+ route = route.slice(basePath.length);
65
+ let stainlessPath = '';
66
+ let elements = route.slice(1).split('/');
67
+ let language = DefaultLanguage;
68
+ if (elements[0] && Languages.includes(elements[0])) {
69
+ language = elements[0];
70
+ elements = elements.slice(1);
82
71
  }
83
- }
84
- return { stainlessPath, language };
72
+ while (elements.length > 0) {
73
+ const element = elements.shift();
74
+ switch (element) {
75
+ case 'resources':
76
+ stainlessPath += `(resource) ${elements.shift()}`;
77
+ break;
78
+ case 'subresources':
79
+ stainlessPath += `.${elements.shift()}`;
80
+ break;
81
+ case 'methods':
82
+ stainlessPath += ` > (method) ${elements.shift()}`;
83
+ break;
84
+ }
85
+ }
86
+ return { stainlessPath, language };
85
87
  }
86
- function generateRoute(basePath, language, stainlessPath) {
87
- const parsedPath = parseStainlessPath(stainlessPath);
88
- if (!parsedPath) return null;
89
- const path = [basePath.endsWith("/") ? basePath.slice(0, -1) : basePath];
90
- if (language && language !== DefaultLanguage) path.push(language);
91
- const resources = parsedPath.resource.flatMap((name, index) => [
92
- index > 0 ? "subresources" : "resources",
93
- name
94
- ]);
95
- const resourcePath = parsedPath.model ? resources.slice(0, 2) : resources;
96
- path.push(...resourcePath);
97
- if (parsedPath.method) path.push("methods", parsedPath.method);
98
- return stainlessPath.length > parsedPath.routable.length ? `${path.join("/")}#${encodeURIComponent(stainlessPath)}` : path.join("/");
88
+ export function generateRoute(basePath, language, stainlessPath) {
89
+ const parsedPath = parseStainlessPath(stainlessPath);
90
+ if (!parsedPath)
91
+ return null;
92
+ const path = [basePath.endsWith('/') ? basePath.slice(0, -1) : basePath];
93
+ if (language && language !== DefaultLanguage)
94
+ path.push(language);
95
+ const resources = parsedPath.resource.flatMap((name, index) => [
96
+ index > 0 ? 'subresources' : 'resources',
97
+ name,
98
+ ]);
99
+ // Ensure model links always go to top-level resource page
100
+ const resourcePath = parsedPath.model ? resources.slice(0, 2) : resources;
101
+ path.push(...resourcePath);
102
+ if (parsedPath.method)
103
+ path.push('methods', parsedPath.method);
104
+ return stainlessPath.length > parsedPath.routable.length
105
+ ? `${path.join('/')}#${encodeURIComponent(stainlessPath)}`
106
+ : path.join('/');
99
107
  }
100
108
  function* walkResource(resource, path, includeModels) {
101
- yield { data: resource, path };
102
- for (const data of Object.values(resource.methods)) {
103
- yield { data, path: [...path, "methods", data.name] };
104
- }
105
- if (includeModels)
106
- for (const data of Object.values(resource.models)) {
107
- yield { data, path: [...path, "models", data.name] };
109
+ yield { data: resource, path };
110
+ for (const data of Object.values(resource.methods)) {
111
+ yield { data, path: [...path, 'methods', data.name] };
112
+ }
113
+ if (includeModels)
114
+ for (const data of Object.values(resource.models)) {
115
+ yield { data, path: [...path, 'models', data.name] };
116
+ }
117
+ for (const data of Object.values(resource.subresources ?? {})) {
118
+ yield* walkResource(data, [...path, 'subresources', data.name]);
108
119
  }
109
- for (const data of Object.values(resource.subresources ?? {})) {
110
- yield* walkResource(data, [...path, "subresources", data.name]);
111
- }
112
120
  }
113
- function* walkTree(spec, includeModels) {
114
- for (const data of Object.values(spec.resources)) {
115
- yield* walkResource(data, ["resources", data.name], includeModels);
116
- }
121
+ export function* walkTree(spec, includeModels) {
122
+ for (const data of Object.values(spec.resources)) {
123
+ yield* walkResource(data, ['resources', data.name], includeModels);
124
+ }
117
125
  }
118
- function generateRouteList({
119
- spec,
120
- languages,
121
- excludeLanguages = []
122
- }) {
123
- const entries = Array.from(walkTree(spec));
124
- const langs = languages ?? spec.docs?.languages ?? ["http"];
125
- return langs.filter((lang) => Languages.includes(lang) && lang !== "terraform").filter((lang) => !excludeLanguages?.includes(lang)).flatMap(
126
- (language) => entries.map(({ path, data: { title, kind, stainlessPath } }) => ({
127
- title,
128
- kind,
129
- language,
130
- stainlessPath,
131
- slug: (language === "http" ? path : [language, ...path]).join("/")
132
- }))
133
- );
126
+ export function generateRouteList({ spec, languages, excludeLanguages = [], }) {
127
+ const entries = Array.from(walkTree(spec));
128
+ const langs = languages ?? spec.docs?.languages ?? ['http'];
129
+ return langs
130
+ .filter((lang) => Languages.includes(lang) && lang !== 'terraform')
131
+ .filter((lang) => !excludeLanguages?.includes(lang))
132
+ .flatMap((language) => entries.map(({ path, data: { title, kind, stainlessPath } }) => ({
133
+ title,
134
+ kind,
135
+ language,
136
+ stainlessPath,
137
+ slug: (language === 'http' ? path : [language, ...path]).join('/'),
138
+ })));
134
139
  }
135
- function findNavigationPath(items, target) {
136
- for (const item of Object.values(items)) {
137
- if (item.stainlessPath === target) return [item.stainlessPath];
138
- if (item.kind === "http_method") continue;
139
- const path = findNavigationPath(
140
- [...Object.values(item.methods ?? {}), ...Object.values(item.subresources ?? {})],
141
- target
142
- );
143
- if (path) return [item.stainlessPath, ...path];
144
- }
140
+ export function findNavigationPath(items, target) {
141
+ for (const item of Object.values(items)) {
142
+ if (item.stainlessPath === target)
143
+ return [item.stainlessPath];
144
+ if (item.kind === 'http_method')
145
+ continue;
146
+ const path = findNavigationPath([...Object.values(item.methods ?? {}), ...Object.values(item.subresources ?? {})], target);
147
+ if (path)
148
+ return [item.stainlessPath, ...path];
149
+ }
145
150
  }
146
- function expandToElement(el) {
147
- while (el) {
148
- if (el.tagName === "DETAILS") el["open"] = true;
149
- el = el.parentElement;
150
- }
151
+ export function expandToElement(el) {
152
+ while (el) {
153
+ if (el.tagName === 'DETAILS')
154
+ el['open'] = true;
155
+ el = el.parentElement;
156
+ }
151
157
  }
152
- function scrollToPath(stainlessPath) {
153
- const el = document.getElementById(stainlessPath);
154
- if (el) {
155
- expandToElement(el);
156
- el.scrollIntoView({ behavior: "smooth" });
157
- }
158
+ export function scrollToPath(stainlessPath) {
159
+ const el = document.getElementById(stainlessPath);
160
+ if (el) {
161
+ expandToElement(el);
162
+ el.scrollIntoView({ behavior: 'smooth' });
163
+ }
158
164
  }
159
- function updateHistory(basePath, language, stainlessPath) {
160
- const path = generateRoute(basePath, language, stainlessPath);
161
- window.history.pushState({ stainlessPath, language }, "", path);
165
+ export function updateHistory(basePath, language, stainlessPath) {
166
+ const path = generateRoute(basePath, language, stainlessPath);
167
+ window.history.pushState({ stainlessPath, language }, '', path);
162
168
  }
163
- export {
164
- LanguageNames,
165
- Languages,
166
- SupportedLanguageSyntaxes,
167
- expandToElement,
168
- findNavigationPath,
169
- generateRoute,
170
- generateRouteList,
171
- getLanguageSnippet,
172
- getResource,
173
- isSupportedLanguage,
174
- parseRoute,
175
- parseStainlessPath,
176
- scrollToPath,
177
- trimStainlessPath,
178
- updateHistory,
179
- walkTree
180
- };
169
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { QueryKindsType, ResultData } from './types';
2
+ export declare function SearchForm(): import("react/jsx-runtime").JSX.Element;
3
+ export type SearchFilterProps = {
4
+ results: ResultData;
5
+ filterKind: QueryKindsType;
6
+ onChange: (filterKind?: QueryKindsType) => void;
7
+ };
8
+ export declare function SearchFilter({ results, filterKind, onChange }: SearchFilterProps): import("react/jsx-runtime").JSX.Element;
9
+ export type SearchModalProps = {
10
+ id?: string;
11
+ open?: boolean;
12
+ };
13
+ export declare function SearchModal({ id, open: isOpen }: SearchModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { Search as SearchIcon, X as XIcon } from 'lucide-react';
4
+ import { QueryKinds } from './types';
5
+ import { GuideResult, QueryKindDisplay, SearchResult } from './results';
6
+ import { guideSearch } from './providers/pagefind';
7
+ import { useLanguage, useSearch, useSearchContext } from '../contexts';
8
+ import { useComponents } from '../contexts/use-components';
9
+ import style from '../style';
10
+ export function SearchForm() {
11
+ const Docs = useComponents();
12
+ const search = useSearch();
13
+ const language = useLanguage();
14
+ const { onSelect, pageFind } = useSearchContext();
15
+ const [results, setResults] = React.useState(null);
16
+ const [filterKind, setFilterKind] = React.useState('all');
17
+ const [searchQuery, setSearchQuery] = React.useState('');
18
+ const inputRef = React.useRef(null);
19
+ async function performSearch() {
20
+ const guideLimit = filterKind === 'guide' ? 25 : 5;
21
+ const kind = ['all', 'guide'].includes(filterKind) ? undefined : filterKind;
22
+ const [guideResults, apiResults] = await Promise.all([
23
+ pageFind ? guideSearch(pageFind, searchQuery, guideLimit) : [],
24
+ search({ query: searchQuery, kind, language }),
25
+ ]);
26
+ setResults({
27
+ items: filterKind === 'guide' ? guideResults : [...guideResults, ...apiResults.hits],
28
+ counts: {
29
+ ...apiResults.facets?.['kind'],
30
+ guide: guideResults.length,
31
+ all: apiResults.nbHits,
32
+ },
33
+ });
34
+ }
35
+ function clearInput() {
36
+ setSearchQuery('');
37
+ inputRef?.current?.focus();
38
+ }
39
+ React.useEffect(() => void performSearch(), [searchQuery, filterKind, language]);
40
+ return (_jsxs("div", { className: style.SearchForm, children: [_jsx(Docs.Input, { ref: inputRef, autoFocus: true, onChange: (ev) => setSearchQuery(ev.target.value), left: _jsx(SearchIcon, { size: 16, className: style.Icon }), right: searchQuery && (_jsx(XIcon, { cursor: "pointer", onClick: () => clearInput(), size: 16, className: style.Icon })), value: searchQuery, placeholder: "Search" }), _jsx(SearchFilter, { results: results, filterKind: filterKind, onChange: (filterKind) => setFilterKind(filterKind) }), _jsx(Docs.ListView, { items: results?.items ?? [], itemDelegate: (item) => 'kind' in item ? _jsx(SearchResult, { result: item }) : _jsx(GuideResult, { result: item }), onSelectListItem: (item) => onSelect?.(item['data']?.['url'] ?? item['stainlessPath']) })] }));
41
+ }
42
+ export function SearchFilter({ results, filterKind, onChange }) {
43
+ const Docs = useComponents();
44
+ const { pageFind } = useSearchContext();
45
+ const toggles = pageFind ? QueryKinds : QueryKinds.slice(0, -1);
46
+ return (_jsx("div", { className: style.SearchFilter, children: toggles.map((kind, index) => (_jsxs(Docs.ToggleButton, { selected: filterKind === kind, onClick: () => onChange?.(kind), children: [React.createElement(QueryKindDisplay[kind].icon, {
47
+ size: 16,
48
+ className: style.Icon,
49
+ }), QueryKindDisplay[kind].name, _jsx("span", { className: style.SearchFilterCount, children: results?.counts?.[kind] ?? 0 })] }, index))) }));
50
+ }
51
+ export function SearchModal({ id, open: isOpen }) {
52
+ const [open, setOpen] = React.useState(isOpen);
53
+ return (_jsx("div", { id: id, onToggle: (ev) => setOpen(ev.newState === 'open'), className: style.SearchModal, popover: "auto", "data-stldocs-modal-open": open, children: open && _jsx(SearchForm, {}) }));
54
+ }
55
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/search/form.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,CAAC,IAAI,KAAK,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAA8B,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAElD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAa,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAiB,KAAK,CAAC,CAAC;IAC1E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEtD,KAAK,UAAU,aAAa;QAC1B,MAAM,UAAU,GAAG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAE5E,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9D,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC/C,CAAC,CAAC;QAEH,UAAU,CAAC;YACT,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;YACpF,MAAM,EAAE;gBACN,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;gBAC9B,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,GAAG,EAAE,UAAU,CAAC,MAAM;aACvB;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,UAAU;QACjB,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjF,OAAO,CACL,eAAK,SAAS,EAAE,KAAK,CAAC,UAAU,aAC9B,KAAC,IAAI,CAAC,KAAK,IACT,GAAG,EAAE,QAAQ,EACb,SAAS,QACT,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,IAAI,EAAE,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,GAAI,EACrD,KAAK,EACH,WAAW,IAAI,CACb,KAAC,KAAK,IAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,GAAI,CACzF,EAEH,KAAK,EAAE,WAAW,EAClB,WAAW,EAAC,QAAQ,GACpB,EAEF,KAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,GACnD,EAEF,KAAC,IAAI,CAAC,QAAQ,IACZ,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,EAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CACrB,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,MAAM,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,MAAM,EAAE,IAAI,GAAI,EAEjF,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,GACtF,IACE,CACP,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAqB;IAC/E,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,OAAO,CACL,cAAK,SAAS,EAAE,KAAK,CAAC,YAAY,YAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,MAAC,IAAI,CAAC,YAAY,IAAa,QAAQ,EAAE,UAAU,KAAK,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,aAC1F,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;oBAChD,IAAI,EAAE,EAAE;oBACR,SAAS,EAAE,KAAK,CAAC,IAAI;iBACtB,CAAC,EACD,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAC5B,eAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,YAAG,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAQ,KANzD,KAAK,CAOT,CACrB,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAoB;IAChE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,MAAM,CAAC,CAAC;IAExD,OAAO,CACL,cACE,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,EACjD,SAAS,EAAE,KAAK,CAAC,WAAW,EAC5B,OAAO,EAAC,MAAM,6BACW,IAAI,YAE5B,IAAI,IAAI,KAAC,UAAU,KAAG,GACnB,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './form';
@@ -0,0 +1,2 @@
1
+ export * from './form';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.tsx"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { SDKJSON } from '../types/sdkjson';
2
+ import type { IndexEntry } from './types';
3
+ export declare function getResourceNames(resourceIds: string[], topResources?: Record<string, SDKJSON.Resource>): string[];
4
+ export declare function generateChatIndex(spec: SDKJSON.Spec): Generator<{
5
+ language: string;
6
+ title: string;
7
+ content: string;
8
+ url: string;
9
+ name?: undefined;
10
+ endpoint?: undefined;
11
+ httpMethod?: undefined;
12
+ summary?: undefined;
13
+ description?: undefined;
14
+ stainlessPath?: undefined;
15
+ qualified?: undefined;
16
+ ident?: undefined;
17
+ } | {
18
+ language: "node" | "go" | "python" | "terraform" | "http" | "typescript" | "ruby" | "java" | "kotlin";
19
+ title: string;
20
+ name: string;
21
+ endpoint: string;
22
+ httpMethod: string;
23
+ summary: string | undefined;
24
+ description: string | undefined;
25
+ stainlessPath: string;
26
+ qualified: any;
27
+ ident: any;
28
+ content: string;
29
+ url: string | null;
30
+ }, void, unknown>;
31
+ export declare function generateIndex(spec: SDKJSON.Spec, renderMarkdownFn?: (string?: any) => string | null, includeTypes?: boolean): Generator<IndexEntry>;