@stainless-api/docs-ui 0.1.0-beta.12 → 0.1.0-beta.14

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 (142) hide show
  1. package/dist/index.js +7530 -16
  2. package/dist/mcp.js +15967 -0
  3. package/dist/routing.js +180 -3
  4. package/dist/styles/main.css +746 -739
  5. package/dist/styles/primitives.css +428 -436
  6. package/dist/styles/resets.css +41 -34
  7. package/dist/styles/search.css +248 -248
  8. package/dist/styles/sidebar.css +60 -59
  9. package/dist/styles/snippets.css +88 -87
  10. package/dist/styles/variables.css +90 -87
  11. package/package.json +4 -2
  12. package/src/components/overview.tsx +5 -7
  13. package/src/search/mcp.ts +100 -8
  14. package/src/styles/main.css +10 -8
  15. package/src/utils.ts +7 -9
  16. package/dist/breadcrumbs-Z-hEqjcp.d.ts +0 -19
  17. package/dist/chunk-Bp6m_JJh.js +0 -13
  18. package/dist/component-generics-DzI21jRn.js +0 -35
  19. package/dist/component-generics-q5Dqiu2D.d.ts +0 -30
  20. package/dist/components/breadcrumbs.d.ts +0 -2
  21. package/dist/components/breadcrumbs.js +0 -16
  22. package/dist/components/chat.d.ts +0 -14
  23. package/dist/components/chat.js +0 -144
  24. package/dist/components/dropdown.d.ts +0 -2
  25. package/dist/components/dropdown.js +0 -4
  26. package/dist/components/icons.d.ts +0 -50
  27. package/dist/components/icons.js +0 -3
  28. package/dist/components/index.d.ts +0 -12
  29. package/dist/components/index.js +0 -16
  30. package/dist/components/method.d.ts +0 -2
  31. package/dist/components/method.js +0 -16
  32. package/dist/components/overview.d.ts +0 -2
  33. package/dist/components/overview.js +0 -16
  34. package/dist/components/primitives.d.ts +0 -2
  35. package/dist/components/primitives.js +0 -16
  36. package/dist/components/properties.d.ts +0 -2
  37. package/dist/components/properties.js +0 -16
  38. package/dist/components/scripts/dropdown.d.ts +0 -12
  39. package/dist/components/scripts/dropdown.js +0 -50
  40. package/dist/components/sdk.d.ts +0 -3
  41. package/dist/components/sdk.js +0 -16
  42. package/dist/components/sidebar.d.ts +0 -2
  43. package/dist/components/sidebar.js +0 -16
  44. package/dist/components/snippets.d.ts +0 -4
  45. package/dist/components/snippets.js +0 -16
  46. package/dist/contexts/component-generics.d.ts +0 -2
  47. package/dist/contexts/component-generics.js +0 -3
  48. package/dist/contexts/component-types.d.ts +0 -18
  49. package/dist/contexts/component-types.js +0 -1
  50. package/dist/contexts/component.d.ts +0 -31
  51. package/dist/contexts/component.js +0 -16
  52. package/dist/contexts/docs.d.ts +0 -2
  53. package/dist/contexts/docs.js +0 -3
  54. package/dist/contexts/index.d.ts +0 -20
  55. package/dist/contexts/index.js +0 -16
  56. package/dist/contexts/markdown.d.ts +0 -2
  57. package/dist/contexts/markdown.js +0 -4
  58. package/dist/contexts/navigation.d.ts +0 -3
  59. package/dist/contexts/navigation.js +0 -3
  60. package/dist/contexts/search.d.ts +0 -4
  61. package/dist/contexts/search.js +0 -16
  62. package/dist/contexts/use-components.d.ts +0 -16
  63. package/dist/contexts/use-components.js +0 -4
  64. package/dist/contexts-DRxRO-xO.js +0 -3747
  65. package/dist/docs-Dh8kE1va.js +0 -50
  66. package/dist/docs-EUy-wfbA.d.ts +0 -43
  67. package/dist/dropdown-B7VyGMOw.d.ts +0 -43
  68. package/dist/dropdown-DtgAi6lb.js +0 -62
  69. package/dist/icons-DdKM-01E.js +0 -753
  70. package/dist/index-AicgPYKB.d.ts +0 -239
  71. package/dist/index-BhwLhiWk.d.ts +0 -14
  72. package/dist/index-YnpUtXLB.d.ts +0 -16
  73. package/dist/index.d.ts +0 -22
  74. package/dist/languages/go.d.ts +0 -13
  75. package/dist/languages/go.js +0 -16
  76. package/dist/languages/http.d.ts +0 -13
  77. package/dist/languages/http.js +0 -16
  78. package/dist/languages/index.d.ts +0 -13
  79. package/dist/languages/index.js +0 -16
  80. package/dist/languages/java.d.ts +0 -13
  81. package/dist/languages/java.js +0 -16
  82. package/dist/languages/python.d.ts +0 -13
  83. package/dist/languages/python.js +0 -16
  84. package/dist/languages/ruby.d.ts +0 -13
  85. package/dist/languages/ruby.js +0 -16
  86. package/dist/languages/typescript.d.ts +0 -13
  87. package/dist/languages/typescript.js +0 -16
  88. package/dist/markdown/index.d.ts +0 -11
  89. package/dist/markdown/index.js +0 -16
  90. package/dist/markdown/md.d.ts +0 -15
  91. package/dist/markdown/md.js +0 -3
  92. package/dist/markdown/utils.d.ts +0 -4
  93. package/dist/markdown/utils.js +0 -3
  94. package/dist/markdown-BXfX1D7C.js +0 -42
  95. package/dist/markdown-nFyAEX_K.d.ts +0 -22
  96. package/dist/md-Dg8aOyMA.js +0 -41
  97. package/dist/method-DpsVuzZW.d.ts +0 -71
  98. package/dist/navigation-aoYZ_tl4.js +0 -24
  99. package/dist/navigation-nyXBY-75.d.ts +0 -29
  100. package/dist/overview-C8e-6jGr.d.ts +0 -38
  101. package/dist/pagefind-ChrPfuVv.js +0 -15
  102. package/dist/primitives-DWz23_Ub.d.ts +0 -99
  103. package/dist/properties-CF71V58d.d.ts +0 -46
  104. package/dist/routing-DQjbRxdJ.js +0 -189
  105. package/dist/routing-qc0V00-j.d.ts +0 -51
  106. package/dist/routing.d.ts +0 -2
  107. package/dist/sdk-Zg3Rggk3.d.ts +0 -118
  108. package/dist/search/index.d.ts +0 -26
  109. package/dist/search/index.js +0 -332
  110. package/dist/search/providers/algolia.d.ts +0 -23
  111. package/dist/search/providers/algolia.js +0 -16
  112. package/dist/search/providers/fuse.d.ts +0 -17
  113. package/dist/search/providers/fuse.js +0 -31
  114. package/dist/search/providers/pagefind.d.ts +0 -7
  115. package/dist/search/providers/pagefind.js +0 -3
  116. package/dist/search/providers/walker.d.ts +0 -8
  117. package/dist/search/providers/walker.js +0 -32
  118. package/dist/search/types.d.ts +0 -3
  119. package/dist/search/types.js +0 -3
  120. package/dist/search-B6loAGmB.d.ts +0 -21
  121. package/dist/sidebar-C8KirYjg.d.ts +0 -35
  122. package/dist/snippets-EUzM4fRO.d.ts +0 -45
  123. package/dist/style-pN9hCoec.d.ts +0 -181
  124. package/dist/style-rYbbxIR_.js +0 -182
  125. package/dist/style.d.ts +0 -2
  126. package/dist/style.js +0 -3
  127. package/dist/styles/main.js +0 -1
  128. package/dist/styles/primitives.js +0 -1
  129. package/dist/styles/resets.js +0 -1
  130. package/dist/styles/search.js +0 -1
  131. package/dist/styles/sidebar.js +0 -1
  132. package/dist/styles/snippets.js +0 -1
  133. package/dist/styles/variables.js +0 -1
  134. package/dist/types-CTBDtD34.d.ts +0 -82
  135. package/dist/types-DFN4M1Sp.js +0 -34
  136. package/dist/use-components-D9E85p5x.js +0 -7
  137. package/dist/utils-BHwvUDKn.js +0 -30
  138. package/dist/utils-CJfFBNgT.js +0 -32
  139. package/dist/utils-DQhEbvUC.d.ts +0 -20
  140. package/dist/utils-nDazhti8.d.ts +0 -11
  141. package/dist/utils.d.ts +0 -2
  142. package/dist/utils.js +0 -4
package/dist/routing.js CHANGED
@@ -1,3 +1,180 @@
1
- import { _ as walkTree, a as findNavigationPath, c as getLanguageSnippet, d as parseRoute, f as parseStainlessPath, g as updateHistory, h as trimStainlessPath, i as expandToElement, l as getResource, m as scrollToPath, n as Languages, o as generateRoute, r as SupportedLanguageSyntaxes, s as generateRouteList, t as LanguageNames, u as isSupportedLanguage } from "./routing-DQjbRxdJ.js";
2
-
3
- export { LanguageNames, Languages, SupportedLanguageSyntaxes, expandToElement, findNavigationPath, generateRoute, generateRouteList, getLanguageSnippet, getResource, isSupportedLanguage, parseRoute, parseStainlessPath, scrollToPath, trimStainlessPath, updateHistory, walkTree };
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"
12
+ ];
13
+ var SupportedLanguageSyntaxes = [
14
+ "http",
15
+ "javascript",
16
+ "python",
17
+ "go",
18
+ "typescript",
19
+ "terraform",
20
+ "ruby",
21
+ "java",
22
+ "kotlin"
23
+ ];
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"
34
+ };
35
+ function getLanguageSnippet(language) {
36
+ return language === "http" ? "http.curl" : `${language}.default`;
37
+ }
38
+ function isSupportedLanguage(language) {
39
+ return Languages.includes(language);
40
+ }
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
+ };
52
+ }
53
+ function trimStainlessPath(stainlessPath) {
54
+ return stainlessPath.replace(/ > \([^\s]+\)$/, "");
55
+ }
56
+ function getResource(stainlessPath) {
57
+ const parsed = parseStainlessPath(stainlessPath);
58
+ return parsed?.resource[0];
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;
82
+ }
83
+ }
84
+ return { stainlessPath, language };
85
+ }
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("/");
99
+ }
100
+ 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] };
108
+ }
109
+ for (const data of Object.values(resource.subresources ?? {})) {
110
+ yield* walkResource(data, [...path, "subresources", data.name]);
111
+ }
112
+ }
113
+ function* walkTree(spec, includeModels) {
114
+ for (const data of Object.values(spec.resources)) {
115
+ yield* walkResource(data, ["resources", data.name], includeModels);
116
+ }
117
+ }
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
+ );
134
+ }
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
+ }
145
+ }
146
+ function expandToElement(el) {
147
+ while (el) {
148
+ if (el.tagName === "DETAILS") el["open"] = true;
149
+ el = el.parentElement;
150
+ }
151
+ }
152
+ function scrollToPath(stainlessPath) {
153
+ const el = document.getElementById(stainlessPath);
154
+ if (el) {
155
+ expandToElement(el);
156
+ el.scrollIntoView({ behavior: "smooth" });
157
+ }
158
+ }
159
+ function updateHistory(basePath, language, stainlessPath) {
160
+ const path = generateRoute(basePath, language, stainlessPath);
161
+ window.history.pushState({ stainlessPath, language }, "", path);
162
+ }
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
+ };