zudoku 0.3.0-dev.99 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/app/demo.js +5 -9
  2. package/dist/app/demo.js.map +1 -1
  3. package/dist/app/main.js +9 -7
  4. package/dist/app/main.js.map +1 -1
  5. package/dist/app/standalone.js +12 -8
  6. package/dist/app/standalone.js.map +1 -1
  7. package/dist/cli/dev/handler.js +1 -1
  8. package/dist/config/validators/SidebarSchema.js +9 -4
  9. package/dist/config/validators/SidebarSchema.js.map +1 -1
  10. package/dist/lib/components/ClientOnly.d.ts +3 -0
  11. package/dist/lib/components/ClientOnly.js +7 -0
  12. package/dist/lib/components/ClientOnly.js.map +1 -0
  13. package/dist/lib/components/Header.js +3 -2
  14. package/dist/lib/components/Header.js.map +1 -1
  15. package/dist/lib/components/Markdown.js +3 -2
  16. package/dist/lib/components/Markdown.js.map +1 -1
  17. package/dist/lib/components/Search.js +5 -8
  18. package/dist/lib/components/Search.js.map +1 -1
  19. package/dist/lib/components/SlotletProvider.d.ts +2 -2
  20. package/dist/lib/components/SlotletProvider.js +7 -2
  21. package/dist/lib/components/SlotletProvider.js.map +1 -1
  22. package/dist/lib/components/navigation/SidebarCategory.js +6 -2
  23. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  24. package/dist/lib/components/navigation/SidebarItem.js +3 -2
  25. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  26. package/dist/lib/components/navigation/SidebarWrapper.js +2 -3
  27. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
  28. package/dist/lib/core/plugins.d.ts +1 -1
  29. package/dist/lib/core/plugins.js +1 -1
  30. package/dist/lib/core/plugins.js.map +1 -1
  31. package/dist/lib/oas/graphql/index.js +18 -3
  32. package/dist/lib/oas/graphql/index.js.map +1 -1
  33. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  34. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  35. package/dist/lib/plugins/openapi/OperationListItem.js +5 -5
  36. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  37. package/dist/lib/plugins/openapi/ParameterList.js +3 -1
  38. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  39. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +3 -1
  40. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +5 -9
  41. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  42. package/dist/lib/plugins/openapi/Sidecar.d.ts +3 -1
  43. package/dist/lib/plugins/openapi/Sidecar.js +11 -5
  44. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  45. package/dist/lib/plugins/openapi/index.js +1 -1
  46. package/dist/lib/plugins/openapi/index.js.map +1 -1
  47. package/dist/lib/plugins/openapi/playground/Playground.js +2 -3
  48. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  49. package/dist/lib/plugins/openapi/playground/createUrl.js +5 -1
  50. package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
  51. package/dist/lib/plugins/openapi/schema/SchemaComponents.d.ts +13 -0
  52. package/dist/lib/plugins/openapi/schema/SchemaComponents.js +28 -0
  53. package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +1 -0
  54. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +6 -0
  55. package/dist/lib/plugins/openapi/schema/SchemaView.js +58 -0
  56. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -0
  57. package/dist/lib/plugins/openapi/schema/utils.d.ts +3 -0
  58. package/dist/lib/plugins/openapi/schema/utils.js +6 -0
  59. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -0
  60. package/dist/lib/plugins/search-inkeep/index.js +3 -5
  61. package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
  62. package/dist/lib/themeToggle.d.ts +1 -0
  63. package/dist/lib/themeToggle.js +7 -0
  64. package/dist/lib/themeToggle.js.map +1 -0
  65. package/dist/lib/util/MdxComponents.js +4 -4
  66. package/dist/lib/util/MdxComponents.js.map +1 -1
  67. package/dist/vite/config.d.ts +4 -5
  68. package/dist/vite/config.js +7 -4
  69. package/dist/vite/config.js.map +1 -1
  70. package/dist/vite/config.test.js +2 -2
  71. package/dist/vite/config.test.js.map +1 -1
  72. package/dist/vite/dev-server.d.ts +0 -1
  73. package/dist/vite/dev-server.js +2 -21
  74. package/dist/vite/dev-server.js.map +1 -1
  75. package/dist/vite/html.js +2 -11
  76. package/dist/vite/html.js.map +1 -1
  77. package/dist/vite/plugin-api-keys.d.ts +3 -3
  78. package/dist/vite/plugin-api-keys.js +2 -1
  79. package/dist/vite/plugin-api-keys.js.map +1 -1
  80. package/dist/vite/plugin-api.d.ts +3 -3
  81. package/dist/vite/plugin-api.js +2 -1
  82. package/dist/vite/plugin-api.js.map +1 -1
  83. package/dist/vite/plugin-auth.d.ts +3 -3
  84. package/dist/vite/plugin-auth.js +2 -1
  85. package/dist/vite/plugin-auth.js.map +1 -1
  86. package/dist/vite/plugin-component.d.ts +3 -3
  87. package/dist/vite/plugin-component.js +17 -14
  88. package/dist/vite/plugin-component.js.map +1 -1
  89. package/dist/vite/plugin-config-reload.d.ts +4 -0
  90. package/dist/vite/plugin-config-reload.js +24 -0
  91. package/dist/vite/plugin-config-reload.js.map +1 -0
  92. package/dist/vite/plugin-config.d.ts +2 -2
  93. package/dist/vite/plugin-config.js.map +1 -1
  94. package/dist/vite/plugin-custom-css.d.ts +3 -3
  95. package/dist/vite/plugin-custom-css.js +2 -1
  96. package/dist/vite/plugin-custom-css.js.map +1 -1
  97. package/dist/vite/plugin-docs.d.ts +3 -3
  98. package/dist/vite/plugin-docs.js +3 -2
  99. package/dist/vite/plugin-docs.js.map +1 -1
  100. package/dist/vite/plugin-html-transform.d.ts +2 -0
  101. package/dist/vite/plugin-html-transform.js +15 -0
  102. package/dist/vite/plugin-html-transform.js.map +1 -0
  103. package/dist/vite/plugin-mdx.d.ts +3 -3
  104. package/dist/vite/plugin-mdx.js +2 -1
  105. package/dist/vite/plugin-mdx.js.map +1 -1
  106. package/dist/vite/plugin-metadata.d.ts +1 -1
  107. package/dist/vite/plugin-redirect.d.ts +3 -3
  108. package/dist/vite/plugin-redirect.js +2 -1
  109. package/dist/vite/plugin-redirect.js.map +1 -1
  110. package/dist/vite/plugin-sidebar.d.ts +3 -3
  111. package/dist/vite/plugin-sidebar.js +5 -4
  112. package/dist/vite/plugin-sidebar.js.map +1 -1
  113. package/dist/vite/plugin.d.ts +3 -2
  114. package/dist/vite/plugin.js +16 -11
  115. package/dist/vite/plugin.js.map +1 -1
  116. package/lib/{CategoryHeading-BWq12Bfa.js → CategoryHeading-z15xh7Jb.js} +2 -2
  117. package/lib/{CategoryHeading-BWq12Bfa.js.map → CategoryHeading-z15xh7Jb.js.map} +1 -1
  118. package/lib/{Combination-D-9IH0zy.js → Combination-DTfV-c98.js} +2 -2
  119. package/lib/{Combination-D-9IH0zy.js.map → Combination-DTfV-c98.js.map} +1 -1
  120. package/lib/{Input-HmAaR6kw.js → Input-DB9VROFR.js} +3 -3
  121. package/lib/{Input-HmAaR6kw.js.map → Input-DB9VROFR.js.map} +1 -1
  122. package/lib/Markdown-CEccPMI_.js +20508 -0
  123. package/lib/Markdown-CEccPMI_.js.map +1 -0
  124. package/lib/{MdxPage-oN3huD58.js → MdxPage-CnqOoqvp.js} +12 -15
  125. package/lib/MdxPage-CnqOoqvp.js.map +1 -0
  126. package/lib/OperationList-Cxiw2Z-v.js +457 -0
  127. package/lib/OperationList-Cxiw2Z-v.js.map +1 -0
  128. package/lib/{Route-DAF15JAU.js → Route-DfAFiR7v.js} +2 -2
  129. package/lib/{Route-DAF15JAU.js.map → Route-DfAFiR7v.js.map} +1 -1
  130. package/lib/SlotletProvider-ByLSCZQa.js +262 -0
  131. package/lib/SlotletProvider-ByLSCZQa.js.map +1 -0
  132. package/lib/{Spinner-BCz1kNGw.js → Spinner-BT_AYFrA.js} +3 -3
  133. package/lib/{Spinner-BCz1kNGw.js.map → Spinner-BT_AYFrA.js.map} +1 -1
  134. package/lib/assets/{worker-CR7aeKop.js → worker-CzHUifWA.js} +710 -703
  135. package/lib/assets/{worker-CR7aeKop.js.map → worker-CzHUifWA.js.map} +1 -1
  136. package/lib/{index-CtKkHGcd.js → index-D-9zqIOh.js} +1159 -1147
  137. package/lib/index-D-9zqIOh.js.map +1 -0
  138. package/lib/{index-D-9Z7HSn.js → index-Dz4LyXZI.js} +3 -3
  139. package/lib/{index-D-9Z7HSn.js.map → index-Dz4LyXZI.js.map} +1 -1
  140. package/lib/zudoku.components.js +775 -759
  141. package/lib/zudoku.components.js.map +1 -1
  142. package/lib/zudoku.openapi-worker.js +734 -727
  143. package/lib/zudoku.openapi-worker.js.map +1 -1
  144. package/lib/zudoku.plugin-api-keys.js +4 -4
  145. package/lib/zudoku.plugin-custom-page.js +1 -1
  146. package/lib/zudoku.plugin-markdown.js +1 -1
  147. package/lib/zudoku.plugin-openapi.js +3 -3
  148. package/lib/zudoku.plugin-search-inkeep.js +23 -22
  149. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  150. package/package.json +99 -78
  151. package/src/app/demo-cdn.html +1 -1
  152. package/src/app/demo.html +1 -1
  153. package/src/app/demo.tsx +7 -9
  154. package/src/app/main.css +22 -0
  155. package/src/app/main.tsx +11 -8
  156. package/src/app/standalone.html +1 -1
  157. package/src/app/standalone.tsx +13 -8
  158. package/src/lib/components/ClientOnly.tsx +13 -0
  159. package/src/lib/components/Header.tsx +3 -0
  160. package/src/lib/components/Markdown.tsx +3 -2
  161. package/src/lib/components/Search.tsx +7 -7
  162. package/src/lib/components/SlotletProvider.tsx +10 -5
  163. package/src/lib/components/navigation/SidebarCategory.tsx +13 -2
  164. package/src/lib/components/navigation/SidebarItem.tsx +3 -2
  165. package/src/lib/components/navigation/SidebarWrapper.tsx +20 -18
  166. package/src/lib/core/plugins.ts +2 -2
  167. package/src/lib/oas/graphql/index.ts +26 -7
  168. package/src/lib/plugins/markdown/MdxPage.tsx +0 -1
  169. package/src/lib/plugins/openapi/OperationListItem.tsx +22 -17
  170. package/src/lib/plugins/openapi/ParameterList.tsx +10 -8
  171. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +51 -39
  172. package/src/lib/plugins/openapi/Sidecar.tsx +34 -19
  173. package/src/lib/plugins/openapi/index.tsx +1 -1
  174. package/src/lib/plugins/openapi/playground/Playground.tsx +3 -6
  175. package/src/lib/plugins/openapi/playground/createUrl.ts +6 -5
  176. package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +126 -0
  177. package/src/lib/plugins/openapi/schema/SchemaView.tsx +172 -0
  178. package/src/lib/plugins/openapi/schema/utils.ts +10 -0
  179. package/src/lib/plugins/search-inkeep/index.tsx +11 -9
  180. package/src/lib/themeToggle.ts +7 -0
  181. package/src/lib/util/MdxComponents.tsx +12 -12
  182. package/LICENSE.md +0 -21
  183. package/dist/lib/plugins/openapi/SchemaListView.d.ts +0 -7
  184. package/dist/lib/plugins/openapi/SchemaListView.js +0 -27
  185. package/dist/lib/plugins/openapi/SchemaListView.js.map +0 -1
  186. package/dist/lib/plugins/openapi/SchemaListViewItem.d.ts +0 -8
  187. package/dist/lib/plugins/openapi/SchemaListViewItem.js +0 -25
  188. package/dist/lib/plugins/openapi/SchemaListViewItem.js.map +0 -1
  189. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.d.ts +0 -8
  190. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js +0 -17
  191. package/dist/lib/plugins/openapi/SchemaListViewItemGroup.js.map +0 -1
  192. package/lib/Markdown-B_Gax7at.js +0 -14108
  193. package/lib/Markdown-B_Gax7at.js.map +0 -1
  194. package/lib/MdxPage-oN3huD58.js.map +0 -1
  195. package/lib/OperationList-Ctj0ihBN.js +0 -448
  196. package/lib/OperationList-Ctj0ihBN.js.map +0 -1
  197. package/lib/SlotletProvider-CzMAO73_.js +0 -82
  198. package/lib/SlotletProvider-CzMAO73_.js.map +0 -1
  199. package/lib/index-CtKkHGcd.js.map +0 -1
  200. package/src/lib/plugins/openapi/SchemaListView.tsx +0 -75
  201. package/src/lib/plugins/openapi/SchemaListViewItem.tsx +0 -125
  202. package/src/lib/plugins/openapi/SchemaListViewItemGroup.tsx +0 -63
@@ -1,75 +0,0 @@
1
- import { Markdown } from "../../components/Markdown.js";
2
- import { SchemaObject } from "../../oas/parser/index.js";
3
- import { Card } from "../../ui/Card.js";
4
- import { groupBy } from "../../util/groupBy.js";
5
- import { objectEntries } from "../../util/objectEntries.js";
6
- import { SchemaListViewItem } from "./SchemaListViewItem.js";
7
- import { SchemaListViewItemGroup } from "./SchemaListViewItemGroup.js";
8
- import { SchemaProseClasses } from "./util/prose.js";
9
-
10
- export const SchemaListView = ({
11
- name,
12
- schema,
13
- level = 0,
14
- defaultOpen = false,
15
- }: {
16
- level?: number;
17
- defaultOpen?: boolean;
18
- name?: string;
19
- schema: SchemaObject;
20
- }) => {
21
- const properties = Object.entries(schema.properties ?? {});
22
- const additionalProperties =
23
- typeof schema.additionalProperties === "object"
24
- ? Object.entries(schema.additionalProperties)
25
- : [];
26
-
27
- const combinedProperties = properties.concat(
28
- Array.isArray(additionalProperties) ? additionalProperties : [],
29
- );
30
-
31
- const groups = groupBy(combinedProperties, ([propertyName, property]) => {
32
- return property.deprecated
33
- ? "deprecated"
34
- : schema.required?.includes(propertyName)
35
- ? "required"
36
- : "optional";
37
- });
38
-
39
- if (schema.type === "array") {
40
- return (
41
- <Card className="overflow-hidden">
42
- <SchemaListViewItem
43
- propertyName={schema.title ?? name}
44
- isRequired={true}
45
- property={schema}
46
- defaultOpen={level === 0}
47
- nestingLevel={level}
48
- />
49
- </Card>
50
- );
51
- }
52
-
53
- return (
54
- <div className="flex flex-col gap-2.5">
55
- {(schema.title ?? name) && (
56
- <div className="ml-2 my-1 font-bold">{schema.title ?? name}</div>
57
- )}
58
- {level === 0 && schema.description && (
59
- <Markdown className={SchemaProseClasses} content={schema.description} />
60
- )}
61
- <Card className="overflow-hidden">
62
- {objectEntries(groups).map(([group, properties]) => (
63
- <SchemaListViewItemGroup
64
- key={group}
65
- defaultOpen={defaultOpen}
66
- group={group}
67
- nestingLevel={level}
68
- properties={properties ?? []}
69
- required={schema.required ?? []}
70
- />
71
- ))}
72
- </Card>
73
- </div>
74
- );
75
- };
@@ -1,125 +0,0 @@
1
- import * as Collapsible from "@radix-ui/react-collapsible";
2
- import { ListPlusIcon } from "lucide-react";
3
- import { Markdown } from "../../components/Markdown.js";
4
- import { SchemaObject } from "../../oas/parser/index.js";
5
- import { Button } from "../../ui/Button.js";
6
- import { cn } from "../../util/cn.js";
7
- import { SchemaListView } from "./SchemaListView.js";
8
-
9
- export const SchemaListViewItem = ({
10
- propertyName,
11
- property,
12
- nestingLevel,
13
- isRequired,
14
- defaultOpen = false,
15
- }: {
16
- propertyName?: string;
17
- isRequired: boolean;
18
- property: SchemaObject;
19
- nestingLevel: number;
20
- defaultOpen?: boolean;
21
- }) => {
22
- if (!property) {
23
- return <div>no property</div>;
24
- }
25
-
26
- const title =
27
- propertyName || property.title
28
- ? [propertyName, property.title].filter(Boolean).join(" ")
29
- : null;
30
-
31
- return (
32
- <div
33
- className={cn(
34
- "p-4 bg-border/20 hover:bg-border/30 flex gap-1 flex-col text-sm",
35
- property.deprecated && "opacity-50",
36
- )}
37
- >
38
- <div className="flex items-center gap-2 relative">
39
- {title && <code>{title}</code>}
40
-
41
- {property.type && (
42
- <span className="text-muted-foreground">{property.type}</span>
43
- )}
44
- {property.deprecated && (
45
- <span className="text-muted-foreground">Deprecated</span>
46
- )}
47
- {!isRequired && (
48
- <span className="py-px px-1.5 font-medium border rounded-lg">
49
- optional {property.required}
50
- </span>
51
- )}
52
- </div>
53
- {property.description && (
54
- <Markdown
55
- content={property.description}
56
- className="text-sm leading-normal line-clamp-4 "
57
- />
58
- )}
59
-
60
- {property.enum && (
61
- <span className="text-sm text-muted-foreground flex gap-1 flex-wrap items-center">
62
- <span>Possible values</span>
63
- {/* Make values unique, some schemas have duplicates */}
64
- {[...new Set(property.enum.filter((value) => value))]
65
- .map((value) => (
66
- <span
67
- key={value}
68
- className="font-mono text-xs border bg-muted rounded px-1"
69
- >
70
- {value}
71
- </span>
72
- ))
73
- .slice(0, 4)}
74
- {property.enum.length > 4 && (
75
- <span className="font-mono text-xs border bg-muted rounded px-1">
76
- ...
77
- </span>
78
- )}
79
- </span>
80
- )}
81
-
82
- {(property.type === "object" &&
83
- (property.properties?.length ??
84
- Object.entries(property.additionalProperties ?? {}).length > 0)) ||
85
- (property.type === "array" &&
86
- // this check is needed because the `items` can be undefined despite the type being defined
87
- typeof property.items !== "undefined" &&
88
- property.items.type === "object") ? (
89
- <Collapsible.Root className="CollapsibleRoot" defaultOpen={defaultOpen}>
90
- <Collapsible.Trigger asChild>
91
- <Button
92
- variant="ghost"
93
- size="sm"
94
- className={cn(defaultOpen && "hidden")}
95
- >
96
- Show nested fields
97
- <ListPlusIcon size={18} className="ml-1.5" />
98
- </Button>
99
- </Collapsible.Trigger>
100
-
101
- <Collapsible.Content>
102
- {property.type === "object" && (
103
- <div className="mt-2.5">
104
- <SchemaListView
105
- schema={property}
106
- level={nestingLevel + 1}
107
- defaultOpen
108
- />
109
- </div>
110
- )}
111
- {property.type === "array" && property.items.type === "object" && (
112
- <div className="mt-2.5">
113
- <SchemaListView
114
- schema={property.items}
115
- defaultOpen
116
- level={nestingLevel + 1}
117
- />
118
- </div>
119
- )}
120
- </Collapsible.Content>
121
- </Collapsible.Root>
122
- ) : null}
123
- </div>
124
- );
125
- };
@@ -1,63 +0,0 @@
1
- import * as Collapsible from "@radix-ui/react-collapsible";
2
- import { useState } from "react";
3
- import { SchemaObject } from "../../oas/parser/index.js";
4
- import { cn } from "../../util/cn.js";
5
- import { SchemaListViewItem } from "./SchemaListViewItem.js";
6
-
7
- export const SchemaListViewItemGroup = ({
8
- group,
9
- properties,
10
- nestingLevel,
11
- required,
12
- defaultOpen = false,
13
- }: {
14
- group: "optional" | "required" | "deprecated";
15
- defaultOpen?: boolean;
16
- properties: [string, SchemaObject][];
17
- nestingLevel: number;
18
- required: string[];
19
- }) => {
20
- const notCollapsible =
21
- defaultOpen ||
22
- group === "required" ||
23
- properties.length === 1 ||
24
- nestingLevel === 0;
25
-
26
- const [open, setOpen] = useState(notCollapsible);
27
-
28
- if (properties.length === 0) {
29
- return;
30
- }
31
-
32
- return (
33
- <Collapsible.Root
34
- className="CollapsibleRoot"
35
- open={open}
36
- onOpenChange={setOpen}
37
- >
38
- {!open && (
39
- <Collapsible.Trigger
40
- className={cn(
41
- "py-2 hover:bg-muted w-full",
42
- group === "optional" && "font-semibold",
43
- group === "deprecated" && "text-muted-foreground",
44
- )}
45
- >
46
- {properties.length} {group} fields
47
- </Collapsible.Trigger>
48
- )}
49
-
50
- <Collapsible.Content className="divide-y divide-border">
51
- {properties.map(([propertyName, property]) => (
52
- <SchemaListViewItem
53
- key={propertyName}
54
- property={property}
55
- propertyName={propertyName}
56
- nestingLevel={nestingLevel}
57
- isRequired={required.includes(propertyName)}
58
- />
59
- ))}
60
- </Collapsible.Content>
61
- </Collapsible.Root>
62
- );
63
- };