@hyvor/design 2.0.18 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cloud/CloudContext/CloudContext.svelte +0 -9
  2. package/dist/cloud/CloudContext/cloudContextState.svelte.d.ts +7 -0
  3. package/dist/components/Callout/Callout.svelte +2 -1
  4. package/dist/components/ColorPicker/ColorPicker.svelte.d.ts +1 -1
  5. package/dist/components/Loader/Loader.svelte.d.ts +1 -1
  6. package/dist/marketing/Docs/Docs.svelte +371 -15
  7. package/dist/marketing/Docs/Docs.svelte.d.ts +5 -2
  8. package/dist/marketing/Docs/{Content/DocsImage.svelte → DocsImage.svelte} +1 -1
  9. package/dist/marketing/Docs/NavItem.svelte +96 -0
  10. package/dist/marketing/Docs/{Nav/NavItem.svelte.d.ts → NavItem.svelte.d.ts} +5 -2
  11. package/dist/marketing/Docs/OpenApi/OpenApi.svelte +144 -0
  12. package/dist/marketing/Docs/OpenApi/OpenApi.svelte.d.ts +7 -0
  13. package/dist/marketing/Docs/OpenApi/Operation.svelte +147 -0
  14. package/dist/marketing/Docs/OpenApi/Operation.svelte.d.ts +9 -0
  15. package/dist/marketing/Docs/OpenApi/ParamsTable.svelte +57 -0
  16. package/dist/marketing/Docs/OpenApi/ParamsTable.svelte.d.ts +8 -0
  17. package/dist/marketing/Docs/OpenApi/SchemaFields.svelte +141 -0
  18. package/dist/marketing/Docs/OpenApi/SchemaFields.svelte.d.ts +9 -0
  19. package/dist/marketing/Docs/OpenApi/openapi.d.ts +106 -0
  20. package/dist/marketing/Docs/OpenApi/openapi.js +267 -0
  21. package/dist/marketing/Docs/Sidebar/Sidebar.svelte +1 -3
  22. package/dist/marketing/Docs/fulldocs.d.ts +17 -0
  23. package/dist/marketing/Docs/fulldocs.js +106 -0
  24. package/dist/marketing/Docs/types.d.ts +23 -0
  25. package/dist/marketing/Docs/types.js +1 -0
  26. package/dist/marketing/index.d.ts +3 -6
  27. package/dist/marketing/index.js +2 -6
  28. package/package.json +2 -3
  29. package/dist/marketing/Docs/Content/Content.svelte +0 -181
  30. package/dist/marketing/Docs/Content/Content.svelte.d.ts +0 -6
  31. package/dist/marketing/Docs/Nav/Nav.svelte +0 -156
  32. package/dist/marketing/Docs/Nav/Nav.svelte.d.ts +0 -6
  33. package/dist/marketing/Docs/Nav/NavCategory.svelte +0 -49
  34. package/dist/marketing/Docs/Nav/NavCategory.svelte.d.ts +0 -9
  35. package/dist/marketing/Docs/Nav/NavItem.svelte +0 -39
  36. package/dist/marketing/track/track.d.ts +0 -22
  37. package/dist/marketing/track/track.js +0 -70
  38. /package/dist/marketing/Docs/{Content/DocsImage.svelte.d.ts → DocsImage.svelte.d.ts} +0 -0
@@ -0,0 +1,144 @@
1
+ <script lang="ts">
2
+ import Loader from '../../../components/Loader/Loader.svelte';
3
+ import Callout from '../../../components/Callout/Callout.svelte';
4
+ import Operation from './Operation.svelte';
5
+ import { groupOperations, loadOpenApi, methodColor } from './openapi.js';
6
+
7
+ interface Props {
8
+ // path (or URL) to an OpenAPI 3.x JSON document. $refs are dereferenced client-side.
9
+ path: string;
10
+ // base URL used to build the example curl requests.
11
+ // falls back to the spec's servers[0].url, then to an empty string.
12
+ baseUrl?: string;
13
+ }
14
+
15
+ let { path, baseUrl }: Props = $props();
16
+
17
+ async function load() {
18
+ const { doc, schemaNames } = await loadOpenApi(path);
19
+ const groups = groupOperations(doc);
20
+ const resolvedBaseUrl = baseUrl ?? doc.servers?.[0]?.url ?? '';
21
+ return { groups, schemaNames, baseUrl: resolvedBaseUrl };
22
+ }
23
+
24
+ const dataPromise = $derived(load());
25
+ </script>
26
+
27
+ <div class="openapi">
28
+ {#await dataPromise}
29
+ <Loader block padding="large" />
30
+ {:then { groups, schemaNames, baseUrl: resolvedBaseUrl }}
31
+ <nav class="top-nav">
32
+ {#each groups as group (group.key)}
33
+ <a href="#{group.key}">{group.title}</a>
34
+ {/each}
35
+ </nav>
36
+
37
+ <div class="operations">
38
+ {#each groups as group (group.key)}
39
+ <section>
40
+ <h2 id={group.key}>{group.title}</h2>
41
+
42
+ <nav class="section-nav">
43
+ {#each group.operations as operation (operation.id)}
44
+ <a href="#{operation.id}" class="op-link">
45
+ <span class="op-method {methodColor(operation.method)}"
46
+ >{operation.method.toUpperCase()}</span
47
+ >
48
+ <span class="op-path">{operation.path}</span>
49
+ </a>
50
+ {/each}
51
+ </nav>
52
+
53
+ {#each group.operations as operation (operation.id)}
54
+ <Operation {operation} baseUrl={resolvedBaseUrl} {schemaNames} />
55
+ {/each}
56
+ </section>
57
+ {/each}
58
+ </div>
59
+ {:catch error}
60
+ <Callout type="danger" title="Failed to load API reference">
61
+ {error instanceof Error ? error.message : String(error)}
62
+ </Callout>
63
+ {/await}
64
+ </div>
65
+
66
+ <style>
67
+ .top-nav {
68
+ position: sticky;
69
+ top: var(--header-height);
70
+ z-index: 5;
71
+ display: flex;
72
+ flex-wrap: wrap;
73
+ gap: 4px 18px;
74
+ padding: 14px 0;
75
+ margin-bottom: 10px;
76
+ background-color: var(--box-background);
77
+ border-bottom: 1px solid var(--border);
78
+ }
79
+ .top-nav a {
80
+ font-size: 13px;
81
+ font-weight: 600;
82
+ color: var(--text-light);
83
+ white-space: nowrap;
84
+ }
85
+ .top-nav a:hover {
86
+ color: var(--text);
87
+ text-decoration: underline;
88
+ }
89
+
90
+ .section-nav {
91
+ display: flex;
92
+ flex-wrap: wrap;
93
+ gap: 6px 16px;
94
+ margin: 10px 0 20px;
95
+ padding-bottom: 16px;
96
+ border-bottom: 1px solid var(--border);
97
+ }
98
+ .op-link {
99
+ display: flex;
100
+ align-items: baseline;
101
+ gap: 6px;
102
+ font-size: 12px;
103
+ text-decoration: none;
104
+ color: var(--text);
105
+ }
106
+ .op-link:hover .op-path {
107
+ text-decoration: underline;
108
+ }
109
+ .op-method {
110
+ font-family: monospace;
111
+ font-size: 10px;
112
+ font-weight: 700;
113
+ flex-shrink: 0;
114
+ }
115
+ .op-method.blue {
116
+ color: var(--blue-dark);
117
+ }
118
+ .op-method.green {
119
+ color: var(--green-dark);
120
+ }
121
+ .op-method.orange {
122
+ color: var(--orange-dark);
123
+ }
124
+ .op-method.red {
125
+ color: var(--red-dark);
126
+ }
127
+ .op-method.default {
128
+ color: var(--gray-dark);
129
+ }
130
+ .op-path {
131
+ font-family: monospace;
132
+ font-size: 12px;
133
+ word-break: break-all;
134
+ color: var(--text-light);
135
+ }
136
+
137
+ .operations h2 {
138
+ margin: 40px 0 0;
139
+ font-size: 22px;
140
+ }
141
+ .operations section:first-child h2 {
142
+ margin-top: 0;
143
+ }
144
+ </style>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ path: string;
3
+ baseUrl?: string;
4
+ }
5
+ declare const OpenApi: import("svelte").Component<Props, {}, "">;
6
+ type OpenApi = ReturnType<typeof OpenApi>;
7
+ export default OpenApi;
@@ -0,0 +1,147 @@
1
+ <script lang="ts">
2
+ import CodeBlock from '../../../components/CodeBlock/CodeBlock.svelte';
3
+ import Tag from '../../../components/Tag/Tag.svelte';
4
+ import ParamsTable from './ParamsTable.svelte';
5
+ import SchemaFields from './SchemaFields.svelte';
6
+ import {
7
+ buildCurl,
8
+ describeType,
9
+ methodColor,
10
+ unwrapArraySchema,
11
+ type Operation,
12
+ type SchemaNameMap
13
+ } from './openapi.js';
14
+
15
+ interface Props {
16
+ operation: Operation;
17
+ baseUrl: string;
18
+ schemaNames?: SchemaNameMap;
19
+ }
20
+
21
+ let { operation, baseUrl, schemaNames }: Props = $props();
22
+
23
+ const curl = $derived(buildCurl(operation, baseUrl));
24
+
25
+ const body = $derived(
26
+ operation.requestBodySchema ? unwrapArraySchema(operation.requestBodySchema) : undefined
27
+ );
28
+ const response = $derived(
29
+ operation.response?.schema ? unwrapArraySchema(operation.response.schema) : undefined
30
+ );
31
+ </script>
32
+
33
+ <div class="operation" id={operation.id}>
34
+ <div class="spec">
35
+ <div class="op-heading">
36
+ <Tag size="small" color={methodColor(operation.method)}>{operation.method.toUpperCase()}</Tag>
37
+ <code class="op-path">{operation.path}</code>
38
+ </div>
39
+
40
+ {#if operation.summary}
41
+ <p class="summary">{operation.summary}</p>
42
+ {/if}
43
+ {#if operation.description}
44
+ <p>{operation.description}</p>
45
+ {/if}
46
+
47
+ <ParamsTable title="Path Parameters" params={operation.pathParams} />
48
+ <ParamsTable title="Query Parameters" params={operation.queryParams} />
49
+ <ParamsTable title="Headers" params={operation.headerParams} />
50
+
51
+ {#if body}
52
+ <h4>
53
+ Body
54
+ <span class="type-label">{describeType(operation.requestBodySchema, schemaNames)}</span>
55
+ {#if operation.requestBodyRequired}<span class="required-label">required</span>{/if}
56
+ </h4>
57
+ <SchemaFields schema={body.itemSchema} {schemaNames} />
58
+ {/if}
59
+
60
+ {#if response}
61
+ <h4>
62
+ Response
63
+ <span class="type-label">{describeType(operation.response?.schema, schemaNames)}</span>
64
+ </h4>
65
+ <SchemaFields schema={response.itemSchema} {schemaNames} />
66
+ {/if}
67
+ </div>
68
+
69
+ <div class="example">
70
+ <div class="example-sticky">
71
+ <div class="example-label">Example request</div>
72
+ <CodeBlock code={curl} language="sh" />
73
+ </div>
74
+ </div>
75
+ </div>
76
+
77
+ <style>
78
+ .operation {
79
+ display: grid;
80
+ grid-template-columns: 1fr 420px;
81
+ gap: 40px;
82
+ padding: 30px 0;
83
+ border-top: 1px solid var(--border);
84
+ }
85
+ .op-heading {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 10px;
89
+ margin-bottom: 12px;
90
+ }
91
+ .op-path {
92
+ font-size: 15px;
93
+ font-weight: 600;
94
+ }
95
+ .summary {
96
+ font-weight: 600;
97
+ margin: 0 0 8px;
98
+ }
99
+ .spec p {
100
+ line-height: var(--line-height-content);
101
+ margin: 0 0 8px;
102
+ }
103
+ h4 {
104
+ margin: 20px 0 8px;
105
+ font-size: 13px;
106
+ text-transform: uppercase;
107
+ letter-spacing: 0.04em;
108
+ color: var(--text-light);
109
+ }
110
+ .required-label {
111
+ text-transform: none;
112
+ letter-spacing: normal;
113
+ color: var(--red-dark);
114
+ font-weight: 400;
115
+ margin-left: 6px;
116
+ }
117
+ .type-label {
118
+ text-transform: none;
119
+ letter-spacing: normal;
120
+ font-family: monospace;
121
+ font-weight: 400;
122
+ color: var(--text-light);
123
+ margin-left: 6px;
124
+ }
125
+ .example-sticky {
126
+ position: sticky;
127
+ top: 75px;
128
+ }
129
+ .example-label {
130
+ font-size: 12px;
131
+ font-weight: 600;
132
+ text-transform: uppercase;
133
+ letter-spacing: 0.04em;
134
+ color: var(--text-light);
135
+ margin-bottom: 8px;
136
+ }
137
+
138
+ @media (max-width: 992px) {
139
+ .operation {
140
+ grid-template-columns: 1fr;
141
+ gap: 15px;
142
+ }
143
+ .example-sticky {
144
+ position: static;
145
+ }
146
+ }
147
+ </style>
@@ -0,0 +1,9 @@
1
+ import { type Operation, type SchemaNameMap } from './openapi.js';
2
+ interface Props {
3
+ operation: Operation;
4
+ baseUrl: string;
5
+ schemaNames?: SchemaNameMap;
6
+ }
7
+ declare const Operation: import("svelte").Component<Props, {}, "">;
8
+ type Operation = ReturnType<typeof Operation>;
9
+ export default Operation;
@@ -0,0 +1,57 @@
1
+ <script lang="ts">
2
+ import Table from '../../../components/Table/Table.svelte';
3
+ import TableRow from '../../../components/Table/TableRow.svelte';
4
+ import TableCell from '../../../components/Table/TableCell.svelte';
5
+ import { describeType, type ParameterObject } from './openapi.js';
6
+
7
+ interface Props {
8
+ title: string;
9
+ params: ParameterObject[];
10
+ }
11
+
12
+ let { title, params }: Props = $props();
13
+ </script>
14
+
15
+ {#if params.length}
16
+ <h4>{title}</h4>
17
+ <Table columns="1fr 1fr 2fr" style="bordered">
18
+ <TableRow head>
19
+ <TableCell>Name</TableCell>
20
+ <TableCell>Type</TableCell>
21
+ <TableCell>Description</TableCell>
22
+ </TableRow>
23
+ {#each params as param (param.name)}
24
+ <TableRow>
25
+ <TableCell>
26
+ <code>{param.name}</code>
27
+ {#if param.required}<span class="required" title="required">*</span>{/if}
28
+ </TableCell>
29
+ <TableCell><span class="type">{describeType(param.schema)}</span></TableCell>
30
+ <TableCell>{param.description ?? ''}</TableCell>
31
+ </TableRow>
32
+ {/each}
33
+ </Table>
34
+ {/if}
35
+
36
+ <style>
37
+ h4 {
38
+ margin: 20px 0 8px;
39
+ font-size: 13px;
40
+ text-transform: uppercase;
41
+ letter-spacing: 0.04em;
42
+ color: var(--text-light);
43
+ }
44
+ code {
45
+ font-size: 13px;
46
+ font-weight: 600;
47
+ }
48
+ .required {
49
+ color: var(--red-dark);
50
+ margin-left: 2px;
51
+ }
52
+ .type {
53
+ font-family: monospace;
54
+ font-size: 12px;
55
+ color: var(--text-light);
56
+ }
57
+ </style>
@@ -0,0 +1,8 @@
1
+ import { type ParameterObject } from './openapi.js';
2
+ interface Props {
3
+ title: string;
4
+ params: ParameterObject[];
5
+ }
6
+ declare const ParamsTable: import("svelte").Component<Props, {}, "">;
7
+ type ParamsTable = ReturnType<typeof ParamsTable>;
8
+ export default ParamsTable;
@@ -0,0 +1,141 @@
1
+ <script lang="ts">
2
+ import Table from '../../../components/Table/Table.svelte';
3
+ import TableRow from '../../../components/Table/TableRow.svelte';
4
+ import TableCell from '../../../components/Table/TableCell.svelte';
5
+ import { describeType, type JsonSchema, type SchemaNameMap } from './openapi.js';
6
+ import SchemaFields from './SchemaFields.svelte';
7
+
8
+ interface Props {
9
+ schema?: JsonSchema;
10
+ schemaNames?: SchemaNameMap;
11
+ }
12
+
13
+ let { schema, schemaNames }: Props = $props();
14
+
15
+ interface Field {
16
+ name: string;
17
+ schema: JsonSchema;
18
+ required: boolean;
19
+ }
20
+
21
+ const fields = $derived.by((): Field[] => {
22
+ if (!schema?.properties) return [];
23
+ const required = new Set(schema.required ?? []);
24
+ return Object.entries(schema.properties).map(([name, s]) => ({
25
+ name,
26
+ schema: s,
27
+ required: required.has(name)
28
+ }));
29
+ });
30
+
31
+ // a property "folds" when it's an object (or array of objects) with its own fields,
32
+ // so nested/named schemas don't get inlined in full every time they're referenced
33
+ function nestedSchema(s: JsonSchema): JsonSchema | undefined {
34
+ if (s.type === 'object' && s.properties) return s;
35
+ if (s.type === 'array' && s.items?.type === 'object' && s.items.properties) return s.items;
36
+ return undefined;
37
+ }
38
+
39
+ function nestedName(s: JsonSchema): string | undefined {
40
+ return schemaNames?.get(s);
41
+ }
42
+ </script>
43
+
44
+ {#if fields.length}
45
+ <Table columns="1fr 1fr 2fr" style="bordered">
46
+ <TableRow head>
47
+ <TableCell>Field</TableCell>
48
+ <TableCell>Type</TableCell>
49
+ <TableCell>Details</TableCell>
50
+ </TableRow>
51
+ {#each fields as field (field.name)}
52
+ {@const nested = nestedSchema(field.schema)}
53
+ <TableRow>
54
+ <TableCell>
55
+ <code>{field.name}</code>
56
+ {#if field.required}<span class="required" title="required">*</span>{/if}
57
+ </TableCell>
58
+ <TableCell><span class="type">{describeType(field.schema, schemaNames)}</span></TableCell>
59
+ <TableCell>
60
+ {#if field.schema.enum}
61
+ <div class="enum">
62
+ {#each field.schema.enum as value (String(value))}
63
+ <code class="enum-value">{JSON.stringify(value)}</code>
64
+ {/each}
65
+ </div>
66
+ {/if}
67
+ {#if field.schema.description}
68
+ <div class="meta">{field.schema.description}</div>
69
+ {/if}
70
+ {#if field.schema.default !== undefined}
71
+ <div class="meta">Default: <code>{JSON.stringify(field.schema.default)}</code></div>
72
+ {/if}
73
+ {#if field.schema.pattern}
74
+ <div class="meta">Pattern: <code>{field.schema.pattern}</code></div>
75
+ {/if}
76
+ {#if field.schema.maxLength !== undefined}
77
+ <div class="meta">Max length: {field.schema.maxLength}</div>
78
+ {/if}
79
+ {#if field.schema.minLength !== undefined}
80
+ <div class="meta">Min length: {field.schema.minLength}</div>
81
+ {/if}
82
+ {#if nested}
83
+ <details class="nested">
84
+ <summary>Show {nestedName(nested) ?? ''} fields</summary>
85
+ <SchemaFields schema={nested} {schemaNames} />
86
+ </details>
87
+ {/if}
88
+ </TableCell>
89
+ </TableRow>
90
+ {/each}
91
+ </Table>
92
+ {/if}
93
+
94
+ <style>
95
+ code {
96
+ font-size: 13px;
97
+ font-weight: 600;
98
+ }
99
+ .required {
100
+ color: var(--red-dark);
101
+ margin-left: 2px;
102
+ }
103
+ .type {
104
+ font-family: monospace;
105
+ font-size: 12px;
106
+ color: var(--text-light);
107
+ }
108
+ .enum {
109
+ display: flex;
110
+ flex-wrap: wrap;
111
+ gap: 4px;
112
+ margin-bottom: 4px;
113
+ }
114
+ .enum-value {
115
+ font-size: 11px;
116
+ font-weight: 400;
117
+ background: var(--accent-lightest);
118
+ padding: 1px 6px;
119
+ border-radius: 8px;
120
+ }
121
+ .meta {
122
+ font-size: 12px;
123
+ color: var(--text-light);
124
+ }
125
+ .meta code {
126
+ font-size: 11px;
127
+ font-weight: 400;
128
+ }
129
+ .nested {
130
+ margin-top: 6px;
131
+ font-size: 13px;
132
+ }
133
+ .nested summary {
134
+ cursor: pointer;
135
+ color: var(--link);
136
+ font-size: 12px;
137
+ }
138
+ .nested :global(.table) {
139
+ margin-top: 8px;
140
+ }
141
+ </style>
@@ -0,0 +1,9 @@
1
+ import { type JsonSchema, type SchemaNameMap } from './openapi.js';
2
+ import SchemaFields from './SchemaFields.svelte';
3
+ interface Props {
4
+ schema?: JsonSchema;
5
+ schemaNames?: SchemaNameMap;
6
+ }
7
+ declare const SchemaFields: import("svelte").Component<Props, {}, "">;
8
+ type SchemaFields = ReturnType<typeof SchemaFields>;
9
+ export default SchemaFields;
@@ -0,0 +1,106 @@
1
+ export type HttpMethod = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace';
2
+ export interface JsonSchema {
3
+ type?: string;
4
+ format?: string;
5
+ title?: string;
6
+ description?: string;
7
+ properties?: Record<string, JsonSchema>;
8
+ required?: string[];
9
+ items?: JsonSchema;
10
+ enum?: (string | number | boolean)[];
11
+ oneOf?: JsonSchema[];
12
+ anyOf?: JsonSchema[];
13
+ allOf?: JsonSchema[];
14
+ additionalProperties?: boolean | JsonSchema;
15
+ nullable?: boolean;
16
+ default?: unknown;
17
+ example?: unknown;
18
+ maxLength?: number;
19
+ minLength?: number;
20
+ minimum?: number;
21
+ maximum?: number;
22
+ pattern?: string;
23
+ [key: string]: unknown;
24
+ }
25
+ export interface ParameterObject {
26
+ name: string;
27
+ in: 'path' | 'query' | 'header' | 'cookie';
28
+ required?: boolean;
29
+ description?: string;
30
+ schema?: JsonSchema;
31
+ }
32
+ export interface OperationObject {
33
+ operationId?: string;
34
+ summary?: string;
35
+ description?: string;
36
+ parameters?: ParameterObject[];
37
+ requestBody?: {
38
+ required?: boolean;
39
+ description?: string;
40
+ content?: Record<string, {
41
+ schema?: JsonSchema;
42
+ }>;
43
+ };
44
+ responses?: Record<string, {
45
+ description?: string;
46
+ content?: Record<string, {
47
+ schema?: JsonSchema;
48
+ }>;
49
+ }>;
50
+ }
51
+ export interface OpenApiDocument {
52
+ openapi?: string;
53
+ info?: {
54
+ title?: string;
55
+ description?: string;
56
+ version?: string;
57
+ };
58
+ servers?: {
59
+ url: string;
60
+ description?: string;
61
+ }[];
62
+ paths: Record<string, Record<string, OperationObject>>;
63
+ components?: {
64
+ schemas?: Record<string, JsonSchema>;
65
+ };
66
+ }
67
+ export interface Operation {
68
+ id: string;
69
+ method: HttpMethod;
70
+ path: string;
71
+ operationId?: string;
72
+ summary?: string;
73
+ description?: string;
74
+ pathParams: ParameterObject[];
75
+ queryParams: ParameterObject[];
76
+ headerParams: ParameterObject[];
77
+ requestBodySchema?: JsonSchema;
78
+ requestBodyRequired: boolean;
79
+ response?: {
80
+ description?: string;
81
+ schema?: JsonSchema;
82
+ };
83
+ }
84
+ export interface OperationGroup {
85
+ key: string;
86
+ title: string;
87
+ operations: Operation[];
88
+ }
89
+ export type SchemaNameMap = Map<JsonSchema, string>;
90
+ export interface LoadedOpenApi {
91
+ doc: OpenApiDocument;
92
+ schemaNames: SchemaNameMap;
93
+ }
94
+ export declare function loadOpenApi(path: string): Promise<LoadedOpenApi>;
95
+ export declare function titleCase(segment: string): string;
96
+ export declare function groupOperations(doc: OpenApiDocument): OperationGroup[];
97
+ export declare function methodColor(method: HttpMethod): 'blue' | 'green' | 'orange' | 'red' | 'default';
98
+ export declare function describeType(schema?: JsonSchema, schemaNames?: SchemaNameMap): string;
99
+ export declare function unwrapArraySchema(schema: JsonSchema): {
100
+ isArray: boolean;
101
+ itemSchema: JsonSchema;
102
+ };
103
+ export declare function exampleValue(schema: JsonSchema | undefined, propName?: string): unknown;
104
+ export declare function paramExample(param: ParameterObject): string;
105
+ export declare function buildUrl(baseUrl: string, operation: Operation): string;
106
+ export declare function buildCurl(operation: Operation, baseUrl: string): string;