@stainless-api/docs-ui 0.1.0-beta.0 → 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 +9 -8
  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,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useNavigation } from '../contexts';
3
+ import { useComponents } from '../contexts/use-components';
4
+ import { ChevronDown, ChevronRight } from 'lucide-react';
5
+ import style from '../style';
6
+ import { MethodIconBadge } from './method';
7
+ import { isResourceEmpty } from '../utils';
8
+ export function SidebarExpander({ open, summary, children }) {
9
+ return (_jsxs("details", { className: style.SidebarExpander, open: open, children: [_jsxs("summary", { className: style.ExpanderSummary, children: [_jsx("div", { className: style.ExpanderSummaryContent, children: summary }), _jsxs("div", { className: style.ExpanderSummaryIcon, children: [_jsx(ChevronRight, { size: 16, strokeWidth: 1, className: style.Icon }), _jsx(ChevronDown, { size: 16, strokeWidth: 1, className: style.Icon })] })] }), _jsx("div", { className: style.ExpanderContent, children: children })] }));
10
+ }
11
+ export function SidebarMethod({ method }) {
12
+ const Docs = useComponents();
13
+ const { selectedPath } = useNavigation();
14
+ return (_jsxs("div", { className: style.SidebarMethod, "data-selected": method.stainlessPath === selectedPath, children: [_jsx(MethodIconBadge, { httpMethod: method.httpMethod }), _jsx(Docs.Link, { stainlessPath: method.stainlessPath, children: method.summary })] }));
15
+ }
16
+ export function SidebarResource({ resource }) {
17
+ const Docs = useComponents();
18
+ const { selectedPath } = useNavigation();
19
+ const subresources = Object.values(resource.subresources ?? {}).map((sub) => (_jsx(SidebarResource, { resource: sub }, sub.stainlessPath)));
20
+ const methods = Object.values(resource.methods).map((method) => (_jsx(SidebarMethod, { method: method }, method.stainlessPath)));
21
+ const hasChildren = subresources.length > 0 || methods.length > 0;
22
+ const title = (_jsx("div", { className: style.SidebarResourceTitle, children: _jsx(Docs.Link, { stainlessPath: resource.stainlessPath, children: resource.title }) }));
23
+ return (_jsx("div", { className: style.SidebarResource, "data-selected": resource.stainlessPath === selectedPath, children: hasChildren ? (_jsxs(SidebarExpander, { summary: title, open: true, children: [methods, subresources] })) : (title) }));
24
+ }
25
+ export function Sidebar({ resources }) {
26
+ return (_jsx("div", { className: `${style.Root} ${style.Sidebar}`, children: resources
27
+ .filter((resource) => !isResourceEmpty(resource))
28
+ .map((resource) => (_jsx(SidebarResource, { resource: resource }, resource.stainlessPath))) }));
29
+ }
30
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/components/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import type { SDKJSON } from '../types/sdkjson';
3
+ import type { TransformRequestSnippetFn } from './sdk';
4
+ export type SnippetCodeProps = {
5
+ content: string;
6
+ signature?: string;
7
+ language?: string;
8
+ };
9
+ export declare function SnippetCode({ content, language }: SnippetCodeProps): import("react/jsx-runtime").JSX.Element;
10
+ export type SnippetProps = {
11
+ method: SDKJSON.Method;
12
+ requestTitle?: React.ReactNode;
13
+ transformRequestSnippet?: TransformRequestSnippetFn;
14
+ };
15
+ export type SnippetContainerProps = {
16
+ children: React.ReactNode;
17
+ signature?: string;
18
+ };
19
+ export declare function SnippetContainer({ children }: SnippetContainerProps): import("react/jsx-runtime").JSX.Element;
20
+ export type SnippetRequestContainerProps = {
21
+ children?: React.ReactNode;
22
+ signature?: string;
23
+ };
24
+ export declare function SnippetRequestContainer({ children }: SnippetRequestContainerProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare function Snippet({ requestTitle, method, transformRequestSnippet }: SnippetProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function SnippetResponse({ responses }: {
27
+ responses: SDKJSON.Method['exampleResponses'];
28
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { CheckIcon, CircleAlertIcon, CopyIcon } from 'lucide-react';
4
+ import { useDeclaration, useHighlight, useLanguage, useSnippet } from '../contexts';
5
+ import { useComponents } from '../contexts/use-components';
6
+ import style from '../style';
7
+ import clsx from 'clsx';
8
+ import { Button } from '@stainless-api/ui-primitives';
9
+ export function SnippetCode({ content, language }) {
10
+ const lang = useLanguage();
11
+ const highlighted = useHighlight(content, language || lang);
12
+ return (_jsx("div", { className: style.SnippetCode, children: _jsx("pre", { className: style.SnippetCodeContent, "data-stldocs-copy-content": true, children: _jsx("code", { className: language === 'json' ? 'snippet-json' : 'snippet', dangerouslySetInnerHTML: { __html: highlighted } }) }) }));
13
+ }
14
+ export function SnippetContainer({ children }) {
15
+ return _jsx("div", { className: clsx(style.Snippet), children: children });
16
+ }
17
+ export function SnippetRequestContainer({ children }) {
18
+ return _jsx("div", { children: children });
19
+ }
20
+ export function Snippet({ requestTitle, method, transformRequestSnippet }) {
21
+ const Docs = useComponents();
22
+ const language = useLanguage();
23
+ const [CopyButtonIcon, setCopyIcon] = React.useState(CopyIcon);
24
+ let snippet = useSnippet(method.stainlessPath, null, language === 'http' ? 'curl' : 'default');
25
+ const decl = useDeclaration(method.stainlessPath);
26
+ const signature = 'qualified' in decl ? decl.qualified : undefined;
27
+ const responses = method.exampleResponses;
28
+ if (transformRequestSnippet) {
29
+ snippet = transformRequestSnippet({ snippet, language });
30
+ }
31
+ async function handleCopy() {
32
+ try {
33
+ await navigator.clipboard.writeText(snippet);
34
+ setCopyIcon(CheckIcon);
35
+ }
36
+ catch {
37
+ setCopyIcon(CircleAlertIcon);
38
+ }
39
+ setTimeout(() => setCopyIcon(CopyIcon), 1000);
40
+ }
41
+ return (_jsxs(Docs.SnippetContainer, { signature: signature, children: [snippet && (_jsx(Docs.SnippetRequestContainer, { signature: signature, children: _jsxs("div", { className: style.SnippetRequest, "data-stldocs-copy-parent": true, children: [_jsxs("div", { className: style.SnippetRequestTitle, children: [_jsxs("div", { className: style.SnippetRequestTitleMethod, children: [_jsx(Docs.MethodRoute, { httpMethod: method.httpMethod, iconOnly: true }), _jsx("h5", { children: method.summary })] }), _jsx("div", { className: style.SnippetRequestTitleContent, children: requestTitle }), _jsx(Button, { variant: "ghost", "data-stldocs-snippet-copy": true, children: _jsx(CopyButtonIcon, { size: 16, className: style.Icon, onClick: handleCopy }) })] }), _jsx(Docs.SnippetCode, { content: snippet, signature: signature })] }) })), responses && _jsx(Docs.SnippetResponse, { responses: responses })] }));
42
+ }
43
+ export function SnippetResponse({ responses }) {
44
+ const { SnippetCode } = useComponents();
45
+ if (!responses) {
46
+ return null;
47
+ }
48
+ const mappedResponses = Object.keys(responses)
49
+ .map((key) => {
50
+ // Get the first response type ie application/json or text/plain
51
+ const responseType = Object.keys(responses[key])[0];
52
+ const response = responses[key][responseType];
53
+ const examples = response?.examples;
54
+ if (!examples)
55
+ return null;
56
+ // Get the first example type, ie Example or html
57
+ const exampleType = Object.keys(examples)[0];
58
+ let value = examples[exampleType]?.value;
59
+ if (!value)
60
+ return null;
61
+ if (responseType === 'application/json') {
62
+ value = JSON.stringify(value, null, 2);
63
+ }
64
+ return {
65
+ responseCode: key,
66
+ content: value,
67
+ };
68
+ })
69
+ .filter(Boolean);
70
+ if (mappedResponses.length === 0)
71
+ return null;
72
+ return (_jsx("div", { className: style.SnippetMultiResponse, children: _jsxs("div", { className: clsx(style.Snippet), children: [_jsx("div", { className: clsx(style.SnippetResponseTab, mappedResponses.length === 1 && style.SnippetResponseTabSingleReturn), children: mappedResponses.map(({ responseCode }, index) => (_jsxs("button", { className: clsx(style.SnippetResponseTabItem, index === 0 && style.SnippetResponseTabItemActive), "data-snippet-response-tab-id": `snippet-response-tab-${responseCode}-${index}`, disabled: mappedResponses.length === 1, children: [responseCode, " example"] }, `snippet-response-tab-item-${responseCode}-${index}`))) }), mappedResponses.map(({ responseCode, content }, index) => {
73
+ return (_jsx("div", { className: clsx(style.SnippetResponsePane, index === 0 && style.SnippetResponsePaneActive), "data-snippet-response-pane-id": `snippet-response-tab-${responseCode}-${index}`, children: _jsx(SnippetCode, { content: content, language: "json" }) }, `snippet-response-${responseCode}-${index}`));
74
+ })] }) }));
75
+ }
76
+ //# sourceMappingURL=snippets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippets.js","sourceRoot":"","sources":["../../src/components/snippets.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ type DeepPartialMap<L> = {
3
+ [K in keyof L]?: Partial<L[K]>;
4
+ };
5
+ export type ComponentsContextType<C, L> = {
6
+ components: C;
7
+ language: L;
8
+ };
9
+ declare const ComponentContext: React.Context<ComponentsContextType<any, any> | null>;
10
+ export declare function useComponents<C = unknown>(): C;
11
+ export declare function customizeComponents<C, L>(defaults: {
12
+ components: C;
13
+ language: L;
14
+ }, overrides?: {
15
+ components?: Partial<C>;
16
+ language?: DeepPartialMap<L>;
17
+ }): {
18
+ components: C;
19
+ language: L;
20
+ };
21
+ export declare function ComponentProvider<C, L>({ value, children, }: {
22
+ value: ComponentsContextType<C, L>;
23
+ children: React.ReactNode;
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ export { ComponentContext };
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // This file should never import from ../components or ../languages to avoid circular dependencies
3
+ import * as React from 'react';
4
+ const ComponentContext = React.createContext(null);
5
+ ComponentContext.displayName = 'ComponentContext';
6
+ export function useComponents() {
7
+ const ctx = React.useContext(ComponentContext);
8
+ if (!ctx)
9
+ throw new Error('useComponents must be used within a ComponentContext.Provider');
10
+ return ctx.components;
11
+ }
12
+ export function customizeComponents(defaults, overrides = {}) {
13
+ const mergedComponents = { ...defaults.components, ...(overrides.components ?? {}) };
14
+ const mergedLanguage = Object.keys(defaults.language).reduce((acc, key) => {
15
+ acc[key] = { ...defaults.language[key], ...(overrides.language?.[key] ?? {}) };
16
+ return acc;
17
+ }, {});
18
+ return { components: mergedComponents, language: mergedLanguage };
19
+ }
20
+ export function ComponentProvider({ value, children, }) {
21
+ return _jsx(ComponentContext.Provider, { value: value, children: children });
22
+ }
23
+ export { ComponentContext };
24
+ //# sourceMappingURL=component-generics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-generics.js","sourceRoot":"","sources":["../../src/contexts/component-generics.tsx"],"names":[],"mappings":";AAAA,kGAAkG;AAElG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAyC,IAAI,CAAC,CAAC;AAC3F,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAElD,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC,UAAe,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAwC,EACxC,YAAuE,EAAE;IAEzE,MAAM,gBAAgB,GAAG,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,EAAO,CAAC;IAE1F,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAmC,CAAC,CAAC,MAAM,CACrF,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAI,QAAQ,CAAC,QAAgB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACxF,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAc,CACf,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAO,EACtC,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA6B,CAAC;AACzF,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type * as DefaultComponents from '../components';
2
+ import type * as DefaultLanguage from '../languages';
3
+ export type AppComponents = typeof DefaultComponents;
4
+ export type AppLanguage = typeof DefaultLanguage;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=component-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-types.js","sourceRoot":"","sources":["../../src/contexts/component-types.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import * as DefaultComponents from '../components';
3
+ import * as DefaultLanguage from '../languages';
4
+ import { type ComponentsContextType } from './component-generics';
5
+ export type AppComponents = typeof DefaultComponents;
6
+ export type AppLanguage = typeof DefaultLanguage;
7
+ export declare const defaultContextValue: ComponentsContextType<AppComponents, AppLanguage>;
8
+ export declare function ComponentProvider({ components, language, children, }: {
9
+ components?: Partial<AppComponents>;
10
+ language?: {
11
+ [K in keyof AppLanguage]?: Partial<AppLanguage[K]>;
12
+ };
13
+ children: React.ReactNode;
14
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import * as DefaultComponents from '../components';
4
+ import * as DefaultLanguage from '../languages';
5
+ import { ComponentProvider as GenericComponentProvider, customizeComponents, } from './component-generics';
6
+ export const defaultContextValue = {
7
+ components: DefaultComponents,
8
+ language: DefaultLanguage,
9
+ };
10
+ export function ComponentProvider({ components, language, children, }) {
11
+ const value = React.useMemo(() => customizeComponents(defaultContextValue, { components, language }), [components, language]);
12
+ return _jsx(GenericComponentProvider, { value: value, children: children });
13
+ }
14
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/contexts/component.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,iBAAiB,IAAI,wBAAwB,EAC7C,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,CAAC,MAAM,mBAAmB,GAAsD;IACpF,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,EAChC,UAAU,EACV,QAAQ,EACR,QAAQ,GAKT;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CACzB,GAAG,EAAE,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EACxE,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAC;IACF,OAAO,KAAC,wBAAwB,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA4B,CAAC;AACvF,CAAC"}
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ import type { SDKJSON } from '../types/sdkjson';
3
+ export type ContentPanelLayout = 'double-pane' | 'single-pane';
4
+ export type PropertySettingsType = {
5
+ types?: 'simple' | 'rich';
6
+ includeModelProperties?: boolean;
7
+ collapseDescription?: boolean;
8
+ expandDepth?: number;
9
+ };
10
+ export type DocsContextType = {
11
+ language: SDKJSON.SpecLanguage;
12
+ spec: SDKJSON.Spec | null;
13
+ settings?: {
14
+ properties?: PropertySettingsType;
15
+ contentPanelLayout?: ContentPanelLayout;
16
+ virtualExpanders?: boolean;
17
+ };
18
+ };
19
+ export declare function useDocs(): DocsContextType;
20
+ export declare function useSpec(): SDKJSON.Spec | null;
21
+ export declare function useSettings(): {
22
+ properties?: PropertySettingsType;
23
+ contentPanelLayout?: ContentPanelLayout;
24
+ virtualExpanders?: boolean;
25
+ } | undefined;
26
+ export declare function useSnippet(stainlessPath: string, language?: SDKJSON.SpecLanguage, variant?: string): any;
27
+ export declare function useDeclaration(stainlessPath: string, language?: SDKJSON.SpecLanguage): any;
28
+ export declare function useResource(name: string): SDKJSON.Resource | undefined;
29
+ export declare function useLanguage(): "node" | "go" | "python" | "terraform" | "http" | "typescript" | "ruby" | "java" | "kotlin";
30
+ export declare function useContentPanelLayout(): ContentPanelLayout;
31
+ export type DocsProviderProps = DocsContextType & {
32
+ children: React.ReactNode;
33
+ };
34
+ export declare function DocsProvider({ spec, language, settings, children }: DocsProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ const DocsContextDefaults = {
4
+ settings: {},
5
+ language: 'node',
6
+ spec: null,
7
+ };
8
+ const DocsContext = React.createContext(DocsContextDefaults);
9
+ export function useDocs() {
10
+ return React.useContext(DocsContext);
11
+ }
12
+ export function useSpec() {
13
+ return useDocs().spec;
14
+ }
15
+ export function useSettings() {
16
+ return useDocs().settings;
17
+ }
18
+ export function useSnippet(stainlessPath, language, variant) {
19
+ const snippetLanguage = [language ?? useLanguage(), variant ?? 'default'].join('.');
20
+ return useSpec()?.snippets?.[snippetLanguage]?.[stainlessPath];
21
+ }
22
+ export function useDeclaration(stainlessPath, language) {
23
+ return useSpec()?.decls?.[language ?? useLanguage()]?.[stainlessPath];
24
+ }
25
+ export function useResource(name) {
26
+ return useSpec()?.resources?.[name];
27
+ }
28
+ export function useLanguage() {
29
+ return useDocs().language;
30
+ }
31
+ export function useContentPanelLayout() {
32
+ return useDocs().settings?.contentPanelLayout ?? 'double-pane';
33
+ }
34
+ export function DocsProvider({ spec, language, settings, children }) {
35
+ const value = {
36
+ ...DocsContextDefaults,
37
+ spec,
38
+ settings: settings ?? DocsContextDefaults.settings,
39
+ language: language ?? DocsContextDefaults.language,
40
+ };
41
+ return _jsx(DocsContext.Provider, { value: value, children: children });
42
+ }
43
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/contexts/docs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,MAAM,mBAAmB,GAAoB;IAC3C,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAkB,mBAAmB,CAAC,CAAC;AAE9E,MAAM,UAAU,OAAO;IACrB,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,EAAE,CAAC,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,aAAqB,EAAE,QAA+B,EAAE,OAAgB;IACjG,MAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,WAAW,EAAE,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpF,OAAO,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,aAAqB,EAAE,QAA+B;IACnF,OAAO,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,EAAE,CAAC,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,EAAE,CAAC,QAAQ,EAAE,kBAAkB,IAAI,aAAa,CAAC;AACjE,CAAC;AAID,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAqB;IACpF,MAAM,KAAK,GAAG;QACZ,GAAG,mBAAmB;QACtB,IAAI;QACJ,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,CAAC,QAAQ;QAClD,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,CAAC,QAAQ;KACnD,CAAC;IAEF,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAwB,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { LanguageComponentDefinition } from '../languages';
2
+ export * from './navigation';
3
+ export * from './markdown';
4
+ export * from './component-generics';
5
+ export * from './search';
6
+ export * from './docs';
7
+ export declare function useLanguageComponents(): LanguageComponentDefinition;
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { ComponentContext } from './component-generics';
3
+ import { useLanguage } from './docs';
4
+ // DO NOT re-export component contexts from here. Only export generics.
5
+ export * from './navigation';
6
+ export * from './markdown';
7
+ export * from './component-generics';
8
+ export * from './search';
9
+ export * from './docs';
10
+ export function useLanguageComponents() {
11
+ const language = useLanguage();
12
+ const context = React.useContext(ComponentContext);
13
+ return context.language[language];
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contexts/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,uEAAuE;AACvE,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ export type MarkdownContext = {
3
+ highlight?: (content: string, language?: string) => string | Promise<string>;
4
+ render?: (content: string) => string;
5
+ };
6
+ export declare const MarkdownContext: React.Context<MarkdownContext>;
7
+ export declare const useMarkdownContext: () => MarkdownContext;
8
+ export declare function useRenderMarkdown(content?: string): string | undefined;
9
+ export declare function useHighlight(content?: string, language?: string): string;
10
+ export type MarkdownProviderProps = MarkdownContext & {
11
+ children: React.ReactNode;
12
+ };
13
+ export declare function MarkdownProvider({ render, highlight, children }: MarkdownProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { useLanguage } from './docs';
4
+ const HighlightLanguageMappings = {
5
+ node: 'typescript',
6
+ http: 'bash',
7
+ };
8
+ export const MarkdownContext = React.createContext({
9
+ highlight: (content) => content,
10
+ render: (content) => content,
11
+ });
12
+ export const useMarkdownContext = () => React.useContext(MarkdownContext);
13
+ export function useRenderMarkdown(content) {
14
+ const { render } = React.useContext(MarkdownContext);
15
+ return React.useMemo(() => (content ? render(content) : undefined), [content, render]);
16
+ }
17
+ export function useHighlight(content, language) {
18
+ const { highlight } = React.useContext(MarkdownContext);
19
+ const lang = language ?? useLanguage();
20
+ return React.useMemo(() => {
21
+ const highlightLanguage = HighlightLanguageMappings[lang] ?? lang;
22
+ const rendered = highlight(content, highlightLanguage);
23
+ return typeof rendered === 'string' ? rendered : React.use(rendered);
24
+ }, [content, language, highlight]);
25
+ }
26
+ export function MarkdownProvider({ render, highlight, children }) {
27
+ return _jsx(MarkdownContext.Provider, { value: { render, highlight }, children: children });
28
+ }
29
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/contexts/markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,yBAAyB,GAAG;IAChC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;CACb,CAAC;AAOF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB;IAClE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;IAC/B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAE1E,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,QAAiB;IAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC;IAEvC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxB,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACvD,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC;AAMD,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAyB;IACrF,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAG,QAAQ,GAA4B,CAAC;AACvG,CAAC"}
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { DocsLanguage } from '../routing';
3
+ export type NavigationHandler = (ev: React.MouseEvent | null, opts: {
4
+ href: string;
5
+ language: DocsLanguage;
6
+ stainlessPath: string;
7
+ scroll: boolean;
8
+ }) => void;
9
+ export type NavigationContextType = {
10
+ basePath?: string;
11
+ selectedPath?: string;
12
+ navigationPath?: string[];
13
+ onNavigate?: NavigationHandler;
14
+ };
15
+ export declare function useNavigation(): NavigationContextType;
16
+ export type NavigationProviderProps = NavigationContextType & {
17
+ children: React.ReactNode;
18
+ };
19
+ export declare function NavigationProvider({ basePath, selectedPath, onNavigate, children, }: NavigationProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ const Defaults = {
4
+ basePath: '/',
5
+ };
6
+ const NavigationContext = React.createContext(Defaults);
7
+ export function useNavigation() {
8
+ return React.useContext(NavigationContext);
9
+ }
10
+ export function NavigationProvider({ basePath, selectedPath, onNavigate, children, }) {
11
+ const value = { ...Defaults, onNavigate, basePath, selectedPath };
12
+ return _jsx(NavigationContext.Provider, { value: value, children: children });
13
+ }
14
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/contexts/navigation.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,MAAM,QAAQ,GAA0B;IACtC,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAwB,QAAQ,CAAC,CAAC;AAE/E,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC7C,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,GACgB;IACxB,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IAElE,OAAO,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA8B,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import { SearchParams, SearchSettings } from '../search/types';
3
+ export type SearchContextType = {
4
+ settings: SearchSettings;
5
+ onSelect?: (stainlessPath: string) => void;
6
+ pageFind?: string;
7
+ };
8
+ export declare function useSearchContext(): SearchContextType;
9
+ export declare function useSearch(): (params: SearchParams) => Promise<import("../search/types").ResultType | undefined>;
10
+ export type SearchProviderProps = SearchContextType & {
11
+ children: React.ReactNode;
12
+ };
13
+ export declare function SearchProvider({ children, ...props }: SearchProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { search } from '../search/providers/algolia';
4
+ const SearchContext = React.createContext(null);
5
+ export function useSearchContext() {
6
+ return React.useContext(SearchContext);
7
+ }
8
+ export function useSearch() {
9
+ const { settings } = useSearchContext();
10
+ return (params) => search({ settings, params });
11
+ }
12
+ export function SearchProvider({ children, ...props }) {
13
+ return _jsx(SearchContext, { value: props, children: children });
14
+ }
15
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/contexts/search.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AASrD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAoB,IAAI,CAAC,CAAC;AAEnE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACxC,OAAO,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAChE,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAuB;IACxE,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAiB,CAAC;AACjE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const useComponents: () => typeof import("../components");
@@ -0,0 +1,3 @@
1
+ import { useComponents as base } from './component-generics';
2
+ export const useComponents = () => base();
3
+ //# sourceMappingURL=use-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-components.js","sourceRoot":"","sources":["../../src/contexts/use-components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,EAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * as contexts from './contexts';
2
+ export * as components from './components';
3
+ export * as languages from './languages';
4
+ export * as routing from './routing';
5
+ export * as utils from './utils';
6
+ export { default as style } from './style';