@scalar/api-reference 1.35.6 → 1.36.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 (181) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/blocks/helpers/getPointer.d.ts.map +1 -1
  3. package/dist/browser/standalone.js +14463 -14322
  4. package/dist/browser/webpack-stats.json +1 -1
  5. package/dist/components/ApiReferenceLayout.vue.d.ts.map +1 -1
  6. package/dist/components/ApiReferenceLayout.vue.js +1 -1
  7. package/dist/components/ApiReferenceLayout.vue2.js +148 -150
  8. package/dist/components/Content/Content.vue.d.ts.map +1 -1
  9. package/dist/components/Content/Content.vue.js +44 -51
  10. package/dist/components/Content/Models/ClassicLayout.vue.d.ts +2 -1
  11. package/dist/components/Content/Models/ClassicLayout.vue.d.ts.map +1 -1
  12. package/dist/components/Content/Models/ClassicLayout.vue.js +2 -2
  13. package/dist/components/Content/Models/ClassicLayout.vue2.js +31 -33
  14. package/dist/components/Content/Models/Models.vue.d.ts +2 -2
  15. package/dist/components/Content/Models/Models.vue.d.ts.map +1 -1
  16. package/dist/components/Content/Models/Models.vue.js +24 -23
  17. package/dist/components/Content/Models/ModernLayout.vue.d.ts +1 -0
  18. package/dist/components/Content/Models/ModernLayout.vue.d.ts.map +1 -1
  19. package/dist/components/Content/Models/ModernLayout.vue.js +2 -2
  20. package/dist/components/Content/Models/ModernLayout.vue2.js +40 -41
  21. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts +1 -2
  22. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  23. package/dist/components/Content/Operations/TraversedEntry.vue.js +24 -24
  24. package/dist/components/Content/Operations/TraversedEntryContainer.vue.d.ts.map +1 -1
  25. package/dist/components/Content/Operations/TraversedEntryContainer.vue.js +1 -1
  26. package/dist/components/Content/Operations/get-current-index.d.ts +1 -1
  27. package/dist/components/Content/Operations/get-current-index.d.ts.map +1 -1
  28. package/dist/components/Content/Operations/get-current-index.js +1 -1
  29. package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts.map +1 -1
  30. package/dist/components/Content/Schema/SchemaObjectProperties.vue.js +35 -45
  31. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +1 -1
  32. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  33. package/dist/components/Content/Schema/helpers/sort-property-names.d.ts +16 -0
  34. package/dist/components/Content/Schema/helpers/sort-property-names.d.ts.map +1 -0
  35. package/dist/components/Content/Schema/helpers/sort-property-names.js +36 -0
  36. package/dist/components/Content/Tags/ClassicLayout.vue.d.ts +1 -1
  37. package/dist/components/Content/Tags/ClassicLayout.vue.d.ts.map +1 -1
  38. package/dist/components/Content/Tags/ClassicLayout.vue.js +2 -2
  39. package/dist/components/Content/Tags/ClassicLayout.vue2.js +1 -1
  40. package/dist/components/Content/Tags/ModernLayout.vue.d.ts +1 -1
  41. package/dist/components/Content/Tags/ModernLayout.vue.d.ts.map +1 -1
  42. package/dist/components/Content/Tags/ModernLayout.vue.js +2 -2
  43. package/dist/components/Content/Tags/ModernLayout.vue2.js +2 -2
  44. package/dist/components/Content/Tags/Tag.vue.d.ts +1 -1
  45. package/dist/components/Content/Tags/Tag.vue.d.ts.map +1 -1
  46. package/dist/components/Content/Tags/TagSection.vue.d.ts +1 -1
  47. package/dist/components/Content/Tags/TagSection.vue.d.ts.map +1 -1
  48. package/dist/components/Content/Tags/TagSection.vue.js +4 -4
  49. package/dist/components/Lazy/Lazy.vue.d.ts.map +1 -1
  50. package/dist/components/Lazy/Lazy.vue2.js +2 -2
  51. package/dist/components/MobileHeader.vue.js +2 -2
  52. package/dist/components/MobileHeader.vue2.js +1 -1
  53. package/dist/components/OperationsList/OperationsList.vue.d.ts +1 -1
  54. package/dist/components/OperationsList/OperationsList.vue.d.ts.map +1 -1
  55. package/dist/components/OperationsList/OperationsList.vue.js +1 -1
  56. package/dist/components/OperationsList/OperationsList.vue2.js +9 -11
  57. package/dist/components/OperationsList/OperationsListItem.vue.d.ts +1 -1
  58. package/dist/components/OperationsList/OperationsListItem.vue.d.ts.map +1 -1
  59. package/dist/components/OperationsList/OperationsListItem.vue.js +2 -2
  60. package/dist/components/OperationsList/OperationsListItem.vue2.js +24 -27
  61. package/dist/components/Section/Section.vue.d.ts.map +1 -1
  62. package/dist/components/Section/Section.vue.js +2 -2
  63. package/dist/components/Section/Section.vue2.js +12 -13
  64. package/dist/components/Section/SectionAccordion.vue.d.ts.map +1 -1
  65. package/dist/components/Section/SectionAccordion.vue.js +1 -1
  66. package/dist/components/Section/SectionAccordion.vue2.js +36 -37
  67. package/dist/components/ShowMoreButton.vue.js +2 -2
  68. package/dist/components/ShowMoreButton.vue2.js +3 -3
  69. package/dist/features/Operation/Operation.vue.d.ts.map +1 -1
  70. package/dist/features/Operation/Operation.vue.js +32 -22
  71. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  72. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  73. package/dist/features/Operation/components/RequestBody.vue2.js +59 -47
  74. package/dist/features/Operation/helpers/get-first-server.d.ts +9 -0
  75. package/dist/features/Operation/helpers/get-first-server.d.ts.map +1 -0
  76. package/dist/features/Operation/helpers/get-first-server.js +20 -0
  77. package/dist/features/Search/components/SearchButton.vue.d.ts +2 -0
  78. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -1
  79. package/dist/features/Search/components/SearchButton.vue.js +19 -17
  80. package/dist/features/Search/components/SearchModal.vue.d.ts +2 -1
  81. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -1
  82. package/dist/features/Search/components/SearchModal.vue.js +2 -2
  83. package/dist/features/Search/components/SearchModal.vue2.js +74 -75
  84. package/dist/features/Search/helpers/create-search-index.d.ts +2 -2
  85. package/dist/features/Search/helpers/create-search-index.d.ts.map +1 -1
  86. package/dist/features/Search/helpers/create-search-index.js +68 -66
  87. package/dist/features/Search/hooks/useSearchIndex.d.ts +3 -2
  88. package/dist/features/Search/hooks/useSearchIndex.d.ts.map +1 -1
  89. package/dist/features/Search/hooks/useSearchIndex.js +13 -13
  90. package/dist/features/Search/types.d.ts +1 -1
  91. package/dist/features/Search/types.d.ts.map +1 -1
  92. package/dist/features/api-client-modal/useApiClient.d.ts +20 -20
  93. package/dist/features/document-source/hooks/useDocumentSource.d.ts.map +1 -1
  94. package/dist/features/document-source/hooks/useDocumentSource.js +6 -5
  95. package/dist/helpers/test-utils.d.ts +367 -5
  96. package/dist/helpers/test-utils.d.ts.map +1 -1
  97. package/dist/hooks/useNavState.d.ts +1 -15
  98. package/dist/hooks/useNavState.d.ts.map +1 -1
  99. package/dist/hooks/useNavState.js +29 -53
  100. package/dist/index.d.ts +5 -6
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +16 -20
  103. package/dist/style.css +1 -1
  104. package/dist/v2/ApiReferenceWorkspace.vue.d.ts.map +1 -1
  105. package/dist/v2/ApiReferenceWorkspace.vue.js +59 -53
  106. package/dist/v2/blocks/scalar-info-block/components/DownloadLink.vue.d.ts.map +1 -1
  107. package/dist/v2/blocks/scalar-info-block/components/DownloadLink.vue.js +1 -1
  108. package/dist/v2/blocks/scalar-info-block/components/DownloadLink.vue2.js +39 -30
  109. package/dist/v2/blocks/scalar-request-example-block/components/RequestExample.vue.d.ts.map +1 -1
  110. package/dist/v2/blocks/scalar-request-example-block/components/RequestExample.vue.js +1 -1
  111. package/dist/v2/blocks/scalar-request-example-block/components/RequestExample.vue2.js +77 -71
  112. package/dist/{features/sidebar/components/Sidebar.vue.d.ts → v2/blocks/scalar-sidebar-block/components/SidebarBlock.vue.d.ts} +1 -1
  113. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarBlock.vue.d.ts.map +1 -0
  114. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarBlock.vue.js +7 -0
  115. package/dist/{features/sidebar/components/Sidebar.vue2.js → v2/blocks/scalar-sidebar-block/components/SidebarBlock.vue2.js} +15 -15
  116. package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/components/SidebarElement.vue.d.ts +1 -1
  117. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarElement.vue.d.ts.map +1 -0
  118. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarElement.vue.js +7 -0
  119. package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/components/SidebarElement.vue2.js +41 -43
  120. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarGroup.vue.d.ts.map +1 -0
  121. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarGroup.vue.js +7 -0
  122. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarHttpBadge.vue.d.ts.map +1 -0
  123. package/dist/v2/blocks/scalar-sidebar-block/components/SidebarHttpBadge.vue.js +7 -0
  124. package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/components/SidebarHttpBadge.vue2.js +1 -1
  125. package/dist/v2/blocks/scalar-sidebar-block/helpers/create-sidebar.d.ts +385 -0
  126. package/dist/v2/blocks/scalar-sidebar-block/helpers/create-sidebar.d.ts.map +1 -0
  127. package/dist/v2/blocks/scalar-sidebar-block/helpers/create-sidebar.js +35 -0
  128. package/dist/v2/blocks/scalar-sidebar-block/helpers/generate-reverse-index.d.ts +189 -0
  129. package/dist/v2/blocks/scalar-sidebar-block/helpers/generate-reverse-index.d.ts.map +1 -0
  130. package/dist/v2/blocks/scalar-sidebar-block/helpers/generate-reverse-index.js +9 -0
  131. package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/hooks/useSidebar.d.ts +4 -8
  132. package/dist/v2/blocks/scalar-sidebar-block/hooks/useSidebar.d.ts.map +1 -0
  133. package/dist/v2/blocks/scalar-sidebar-block/hooks/useSidebar.js +18 -0
  134. package/dist/v2/blocks/scalar-sidebar-block/index.d.ts +4 -0
  135. package/dist/v2/blocks/scalar-sidebar-block/index.d.ts.map +1 -0
  136. package/dist/v2/helpers/map-configuration.d.ts.map +1 -1
  137. package/package.json +16 -15
  138. package/dist/features/sidebar/components/Sidebar.vue.d.ts.map +0 -1
  139. package/dist/features/sidebar/components/Sidebar.vue.js +0 -7
  140. package/dist/features/sidebar/components/SidebarElement.vue.d.ts.map +0 -1
  141. package/dist/features/sidebar/components/SidebarElement.vue.js +0 -7
  142. package/dist/features/sidebar/components/SidebarGroup.vue.d.ts.map +0 -1
  143. package/dist/features/sidebar/components/SidebarGroup.vue.js +0 -7
  144. package/dist/features/sidebar/components/SidebarHttpBadge.vue.d.ts.map +0 -1
  145. package/dist/features/sidebar/components/SidebarHttpBadge.vue.js +0 -7
  146. package/dist/features/sidebar/helpers/create-sidebar.d.ts +0 -28
  147. package/dist/features/sidebar/helpers/create-sidebar.d.ts.map +0 -1
  148. package/dist/features/sidebar/helpers/create-sidebar.js +0 -32
  149. package/dist/features/sidebar/hooks/useSidebar.d.ts.map +0 -1
  150. package/dist/features/sidebar/hooks/useSidebar.js +0 -18
  151. package/dist/features/sidebar/index.d.ts +0 -4
  152. package/dist/features/sidebar/index.d.ts.map +0 -1
  153. package/dist/features/traverse-schema/helpers/get-tag.d.ts +0 -6
  154. package/dist/features/traverse-schema/helpers/get-tag.d.ts.map +0 -1
  155. package/dist/features/traverse-schema/helpers/get-tag.js +0 -7
  156. package/dist/features/traverse-schema/helpers/traverse-description.d.ts +0 -11
  157. package/dist/features/traverse-schema/helpers/traverse-description.d.ts.map +0 -1
  158. package/dist/features/traverse-schema/helpers/traverse-description.js +0 -32
  159. package/dist/features/traverse-schema/helpers/traverse-document.d.ts +0 -16
  160. package/dist/features/traverse-schema/helpers/traverse-document.d.ts.map +0 -1
  161. package/dist/features/traverse-schema/helpers/traverse-document.js +0 -33
  162. package/dist/features/traverse-schema/helpers/traverse-paths.d.ts +0 -18
  163. package/dist/features/traverse-schema/helpers/traverse-paths.d.ts.map +0 -1
  164. package/dist/features/traverse-schema/helpers/traverse-paths.js +0 -30
  165. package/dist/features/traverse-schema/helpers/traverse-schemas.d.ts +0 -8
  166. package/dist/features/traverse-schema/helpers/traverse-schemas.d.ts.map +0 -1
  167. package/dist/features/traverse-schema/helpers/traverse-schemas.js +0 -21
  168. package/dist/features/traverse-schema/helpers/traverse-tags.d.ts +0 -11
  169. package/dist/features/traverse-schema/helpers/traverse-tags.d.ts.map +0 -1
  170. package/dist/features/traverse-schema/helpers/traverse-tags.js +0 -43
  171. package/dist/features/traverse-schema/helpers/traverse-webhooks.d.ts +0 -10
  172. package/dist/features/traverse-schema/helpers/traverse-webhooks.d.ts.map +0 -1
  173. package/dist/features/traverse-schema/helpers/traverse-webhooks.js +0 -24
  174. package/dist/features/traverse-schema/index.d.ts +0 -5
  175. package/dist/features/traverse-schema/index.d.ts.map +0 -1
  176. package/dist/features/traverse-schema/types.d.ts +0 -55
  177. package/dist/features/traverse-schema/types.d.ts.map +0 -1
  178. package/dist/libs/markdown.js +0 -18
  179. /package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/components/SidebarGroup.vue.d.ts +0 -0
  180. /package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/components/SidebarGroup.vue2.js +0 -0
  181. /package/dist/{features/sidebar → v2/blocks/scalar-sidebar-block}/components/SidebarHttpBadge.vue.d.ts +0 -0
@@ -1,6 +1,6 @@
1
- import { type TraversedEntry } from '../features/traverse-schema';
2
1
  import type { OpenAPIV3_1 } from '@scalar/openapi-types';
3
2
  import type { WorkspaceStore } from '@scalar/workspace-store/client';
3
+ import type { TraversedEntry } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
4
4
  import type { WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace';
5
5
  /**
6
6
  * A collection of tools which are used strictly for testing
@@ -9,8 +9,189 @@ export declare const createMockSidebar: (collapsedItems?: Record<string, boolean
9
9
  collapsedSidebarItems: Record<string, boolean>;
10
10
  isSidebarOpen: import("vue").Ref<boolean, boolean>;
11
11
  items: import("vue").ComputedRef<{
12
- entries: TraversedEntry[];
13
- titles: Map<any, any>;
12
+ entries: (({
13
+ title: string;
14
+ id: string;
15
+ } & {
16
+ description?: string | undefined;
17
+ children?: (({
18
+ title: string;
19
+ id: string;
20
+ } & /*elided*/ any) | ({
21
+ title: string;
22
+ id: string;
23
+ } & {
24
+ children?: (({
25
+ title: string;
26
+ id: string;
27
+ } & /*elided*/ any) | ({
28
+ title: string;
29
+ id: string;
30
+ } & /*elided*/ any) | ({
31
+ title: string;
32
+ id: string;
33
+ } & {
34
+ isDeprecated?: boolean | undefined;
35
+ path: string;
36
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
37
+ type: "operation";
38
+ ref: string;
39
+ }) | ({
40
+ title: string;
41
+ id: string;
42
+ } & {
43
+ type: "model";
44
+ ref: string;
45
+ name: string;
46
+ }) | ({
47
+ title: string;
48
+ id: string;
49
+ } & {
50
+ isDeprecated?: boolean | undefined;
51
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
52
+ type: "webhook";
53
+ ref: string;
54
+ name: string;
55
+ }))[] | undefined;
56
+ type: "text";
57
+ }) | ({
58
+ title: string;
59
+ id: string;
60
+ } & {
61
+ isDeprecated?: boolean | undefined;
62
+ path: string;
63
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
64
+ type: "operation";
65
+ ref: string;
66
+ }) | ({
67
+ title: string;
68
+ id: string;
69
+ } & {
70
+ type: "model";
71
+ ref: string;
72
+ name: string;
73
+ }) | ({
74
+ title: string;
75
+ id: string;
76
+ } & {
77
+ isDeprecated?: boolean | undefined;
78
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
79
+ type: "webhook";
80
+ ref: string;
81
+ name: string;
82
+ }))[] | undefined;
83
+ isWebhooks?: boolean | undefined;
84
+ xKeys?: {
85
+ [x: string]: unknown;
86
+ } | undefined;
87
+ type: "tag";
88
+ name: string;
89
+ isGroup: boolean;
90
+ }) | ({
91
+ title: string;
92
+ id: string;
93
+ } & {
94
+ children?: (({
95
+ title: string;
96
+ id: string;
97
+ } & {
98
+ description?: string | undefined;
99
+ children?: (({
100
+ title: string;
101
+ id: string;
102
+ } & /*elided*/ any) | ({
103
+ title: string;
104
+ id: string;
105
+ } & /*elided*/ any) | ({
106
+ title: string;
107
+ id: string;
108
+ } & {
109
+ isDeprecated?: boolean | undefined;
110
+ path: string;
111
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
112
+ type: "operation";
113
+ ref: string;
114
+ }) | ({
115
+ title: string;
116
+ id: string;
117
+ } & {
118
+ type: "model";
119
+ ref: string;
120
+ name: string;
121
+ }) | ({
122
+ title: string;
123
+ id: string;
124
+ } & {
125
+ isDeprecated?: boolean | undefined;
126
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
127
+ type: "webhook";
128
+ ref: string;
129
+ name: string;
130
+ }))[] | undefined;
131
+ isWebhooks?: boolean | undefined;
132
+ xKeys?: {
133
+ [x: string]: unknown;
134
+ } | undefined;
135
+ type: "tag";
136
+ name: string;
137
+ isGroup: boolean;
138
+ }) | ({
139
+ title: string;
140
+ id: string;
141
+ } & /*elided*/ any) | ({
142
+ title: string;
143
+ id: string;
144
+ } & {
145
+ isDeprecated?: boolean | undefined;
146
+ path: string;
147
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
148
+ type: "operation";
149
+ ref: string;
150
+ }) | ({
151
+ title: string;
152
+ id: string;
153
+ } & {
154
+ type: "model";
155
+ ref: string;
156
+ name: string;
157
+ }) | ({
158
+ title: string;
159
+ id: string;
160
+ } & {
161
+ isDeprecated?: boolean | undefined;
162
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
163
+ type: "webhook";
164
+ ref: string;
165
+ name: string;
166
+ }))[] | undefined;
167
+ type: "text";
168
+ }) | ({
169
+ title: string;
170
+ id: string;
171
+ } & {
172
+ isDeprecated?: boolean | undefined;
173
+ path: string;
174
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
175
+ type: "operation";
176
+ ref: string;
177
+ }) | ({
178
+ title: string;
179
+ id: string;
180
+ } & {
181
+ type: "model";
182
+ ref: string;
183
+ name: string;
184
+ }) | ({
185
+ title: string;
186
+ id: string;
187
+ } & {
188
+ isDeprecated?: boolean | undefined;
189
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
190
+ type: "webhook";
191
+ ref: string;
192
+ name: string;
193
+ }))[];
194
+ entities: Map<any, any>;
14
195
  }>;
15
196
  scrollToOperation: import("vitest").Mock<(...args: any[]) => any>;
16
197
  setCollapsedSidebarItem: import("vitest").Mock<(...args: any[]) => any>;
@@ -20,8 +201,189 @@ export declare const createMockSidebarFromDocument: (document: OpenAPIV3_1.Docum
20
201
  collapsedSidebarItems: Record<string, boolean>;
21
202
  isSidebarOpen: import("vue").Ref<boolean, boolean>;
22
203
  items: import("vue").ComputedRef<{
23
- entries: TraversedEntry[];
24
- titles: Map<any, any>;
204
+ entries: (({
205
+ title: string;
206
+ id: string;
207
+ } & {
208
+ description?: string | undefined;
209
+ children?: (({
210
+ title: string;
211
+ id: string;
212
+ } & /*elided*/ any) | ({
213
+ title: string;
214
+ id: string;
215
+ } & {
216
+ children?: (({
217
+ title: string;
218
+ id: string;
219
+ } & /*elided*/ any) | ({
220
+ title: string;
221
+ id: string;
222
+ } & /*elided*/ any) | ({
223
+ title: string;
224
+ id: string;
225
+ } & {
226
+ isDeprecated?: boolean | undefined;
227
+ path: string;
228
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
229
+ type: "operation";
230
+ ref: string;
231
+ }) | ({
232
+ title: string;
233
+ id: string;
234
+ } & {
235
+ type: "model";
236
+ ref: string;
237
+ name: string;
238
+ }) | ({
239
+ title: string;
240
+ id: string;
241
+ } & {
242
+ isDeprecated?: boolean | undefined;
243
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
244
+ type: "webhook";
245
+ ref: string;
246
+ name: string;
247
+ }))[] | undefined;
248
+ type: "text";
249
+ }) | ({
250
+ title: string;
251
+ id: string;
252
+ } & {
253
+ isDeprecated?: boolean | undefined;
254
+ path: string;
255
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
256
+ type: "operation";
257
+ ref: string;
258
+ }) | ({
259
+ title: string;
260
+ id: string;
261
+ } & {
262
+ type: "model";
263
+ ref: string;
264
+ name: string;
265
+ }) | ({
266
+ title: string;
267
+ id: string;
268
+ } & {
269
+ isDeprecated?: boolean | undefined;
270
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
271
+ type: "webhook";
272
+ ref: string;
273
+ name: string;
274
+ }))[] | undefined;
275
+ isWebhooks?: boolean | undefined;
276
+ xKeys?: {
277
+ [x: string]: unknown;
278
+ } | undefined;
279
+ type: "tag";
280
+ name: string;
281
+ isGroup: boolean;
282
+ }) | ({
283
+ title: string;
284
+ id: string;
285
+ } & {
286
+ children?: (({
287
+ title: string;
288
+ id: string;
289
+ } & {
290
+ description?: string | undefined;
291
+ children?: (({
292
+ title: string;
293
+ id: string;
294
+ } & /*elided*/ any) | ({
295
+ title: string;
296
+ id: string;
297
+ } & /*elided*/ any) | ({
298
+ title: string;
299
+ id: string;
300
+ } & {
301
+ isDeprecated?: boolean | undefined;
302
+ path: string;
303
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
304
+ type: "operation";
305
+ ref: string;
306
+ }) | ({
307
+ title: string;
308
+ id: string;
309
+ } & {
310
+ type: "model";
311
+ ref: string;
312
+ name: string;
313
+ }) | ({
314
+ title: string;
315
+ id: string;
316
+ } & {
317
+ isDeprecated?: boolean | undefined;
318
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
319
+ type: "webhook";
320
+ ref: string;
321
+ name: string;
322
+ }))[] | undefined;
323
+ isWebhooks?: boolean | undefined;
324
+ xKeys?: {
325
+ [x: string]: unknown;
326
+ } | undefined;
327
+ type: "tag";
328
+ name: string;
329
+ isGroup: boolean;
330
+ }) | ({
331
+ title: string;
332
+ id: string;
333
+ } & /*elided*/ any) | ({
334
+ title: string;
335
+ id: string;
336
+ } & {
337
+ isDeprecated?: boolean | undefined;
338
+ path: string;
339
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
340
+ type: "operation";
341
+ ref: string;
342
+ }) | ({
343
+ title: string;
344
+ id: string;
345
+ } & {
346
+ type: "model";
347
+ ref: string;
348
+ name: string;
349
+ }) | ({
350
+ title: string;
351
+ id: string;
352
+ } & {
353
+ isDeprecated?: boolean | undefined;
354
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
355
+ type: "webhook";
356
+ ref: string;
357
+ name: string;
358
+ }))[] | undefined;
359
+ type: "text";
360
+ }) | ({
361
+ title: string;
362
+ id: string;
363
+ } & {
364
+ isDeprecated?: boolean | undefined;
365
+ path: string;
366
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
367
+ type: "operation";
368
+ ref: string;
369
+ }) | ({
370
+ title: string;
371
+ id: string;
372
+ } & {
373
+ type: "model";
374
+ ref: string;
375
+ name: string;
376
+ }) | ({
377
+ title: string;
378
+ id: string;
379
+ } & {
380
+ isDeprecated?: boolean | undefined;
381
+ method: "head" | "connect" | "delete" | "get" | "options" | "patch" | "post" | "put" | "trace";
382
+ type: "webhook";
383
+ ref: string;
384
+ name: string;
385
+ }))[];
386
+ entities: Map<any, any>;
25
387
  }>;
26
388
  scrollToOperation: import("vitest").Mock<(...args: any[]) => any>;
27
389
  setCollapsedSidebarItem: import("vitest").Mock<(...args: any[]) => any>;
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/helpers/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAIlF;;GAEG;AAEH,eAAO,MAAM,iBAAiB,GAAI,iBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,UAAS,cAAc,EAAO;;;;;;;;;;CAO5G,CAAA;AAEF,eAAO,MAAM,6BAA6B,GAAI,UAAU,WAAW,CAAC,QAAQ;;;;;;;;;;CAe3E,CAAA;AAED,eAAO,MAAM,uBAAuB;;CAElC,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAS;;;;;;;;;;;;;;;;;CAiB1C,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,gBAAgB,iBAAiB,KAAG,cAsBlE,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAOjC,CAAA"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/helpers/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,8DAA8D,CAAA;AACnH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAIlF;;GAEG;AAEH,eAAO,MAAM,iBAAiB,GAAI,iBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,UAAS,cAAc,EAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO5G,CAAA;AAEF,eAAO,MAAM,6BAA6B,GAAI,UAAU,WAAW,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3E,CAAA;AAED,eAAO,MAAM,uBAAuB;;CAElC,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAS;;;;;;;;;;;;;;;;;CAiB1C,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,gBAAgB,iBAAiB,KAAG,cAgElE,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAOjC,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import type { ApiReferenceConfiguration } from '@scalar/types/api-reference';
2
- import type { Heading, OpenAPIV3_1 } from '@scalar/types/legacy';
3
- import type { OperationObject, TagObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
2
+ import type { Heading } from '@scalar/types/legacy';
4
3
  import { type InjectionKey, type Ref } from 'vue';
5
4
  export type NavState = {
6
5
  /** The URL hash without the #, also the "hash" pulled from pathRouting */
@@ -43,21 +42,8 @@ export declare const useNavState: (_config?: Ref<ApiReferenceConfiguration>) =>
43
42
  */
44
43
  replaceUrlState: (replacementHash: string, url?: string) => void;
45
44
  getReferenceId: () => string;
46
- getWebhookId: (webhook?: {
47
- name: string;
48
- method?: string;
49
- }, parentTag?: OpenAPIV3_1.TagObject) => string;
50
- getModelId: (model?: {
51
- name: string;
52
- }, parentTag?: OpenAPIV3_1.TagObject) => string;
53
45
  getHeadingId: (heading: Heading) => string;
54
- getOperationId: (operation: {
55
- path: string;
56
- method: OpenAPIV3_1.HttpMethods;
57
- } & OperationObject, parentTag: TagObject) => string;
58
46
  getPathRoutingId: (pathName: string) => string;
59
- getSectionId: (hashStr?: string) => string;
60
- getTagId: (tag: OpenAPIV3_1.TagObject) => string;
61
47
  isIntersectionEnabled: Ref<boolean, boolean>;
62
48
  updateHash: () => string;
63
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useNavState.d.ts","sourceRoot":"","sources":["../../src/hooks/useNavState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8DAA8D,CAAA;AAE9G,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,EAAe,MAAM,KAAK,CAAA;AAE9D,MAAM,MAAM,QAAQ,GAAG;IACrB,0EAA0E;IAC1E,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjB,2CAA2C;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,sFAAsF;IACtF,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACpC,CAAA;AACD,eAAO,MAAM,gBAAgB,EAAe,YAAY,CAAC,QAAQ,CAAC,CAAA;AAOlE;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,GAAG,CAAC,yBAAyB,CAAC;;IAoJhE,mCAAmC;4BACX,MAAM;IAG9B;;;;OAIG;+BAlF4B,MAAM;IAoFrC;;;;;OAKG;oCAxGkC,MAAM;IA0G3C;;;OAGG;uCA/HqC,MAAM;;6BA2FhB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,cAAc,WAAW,CAAC,SAAS;yBAxCxE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,cAAc,WAAW,CAAC,SAAS;4BAXhD,OAAO;gCAiCzB;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,WAAW,CAAC,WAAW,CAAA;KAChC,GAAG,eAAe,aACR,SAAS;iCA7Gc,MAAM;;oBAiGnB,WAAW,CAAC,SAAS;;;CA2E7C,CAAA;AAED,mCAAmC;AACnC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"useNavState.d.ts","sourceRoot":"","sources":["../../src/hooks/useNavState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,EAAe,MAAM,KAAK,CAAA;AAI9D,MAAM,MAAM,QAAQ,GAAG;IACrB,0EAA0E;IAC1E,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjB,2CAA2C;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACvB,sFAAsF;IACtF,qBAAqB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACpC,CAAA;AACD,eAAO,MAAM,gBAAgB,EAAe,YAAY,CAAC,QAAQ,CAAC,CAAA;AAOlE;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,GAAG,CAAC,yBAAyB,CAAC;;IAqFhE,mCAAmC;4BACX,MAAM;IAG9B;;;;OAIG;+BA5B4B,MAAM;IA8BrC;;;;;OAKG;oCAlDkC,MAAM;IAoD3C;;;OAGG;uCAzEqC,MAAM;;4BAwCjB,OAAO;iCA/DF,MAAM;;;CAwG3C,CAAA;AAED,mCAAmC;AACnC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA"}
@@ -1,82 +1,58 @@
1
- import { useConfig as b } from "./useConfig.js";
2
- import { combineUrlAndPath as h } from "@scalar/helpers/url/merge-urls";
3
- import { slug as s } from "github-slugger";
4
- import { inject as R, ref as i } from "vue";
5
- const k = Symbol(), y = i(!1), P = i(""), U = i(""), M = (d) => {
6
- const { isIntersectionEnabled: f, hash: r, hashPrefix: u } = R(k, {
7
- isIntersectionEnabled: y,
8
- hash: P,
9
- hashPrefix: U
10
- }), t = d ?? b(), c = (e) => {
1
+ import { combineUrlAndPath as c } from "@scalar/helpers/url/merge-urls";
2
+ import { inject as p, ref as i } from "vue";
3
+ import { useConfig as d } from "./useConfig.js";
4
+ const f = Symbol(), v = i(!1), w = i(""), R = i(""), E = (h) => {
5
+ const { isIntersectionEnabled: g, hash: s, hashPrefix: a } = p(f, {
6
+ isIntersectionEnabled: v,
7
+ hash: w,
8
+ hashPrefix: R
9
+ }), t = h ?? d(), l = (e) => {
11
10
  if (!t.value.pathRouting)
12
11
  return "";
13
12
  const n = new RegExp("^" + t.value.pathRouting?.basePath + "/?");
14
13
  return decodeURIComponent(e.replace(n, ""));
15
- }, p = (e = r.value) => {
16
- const n = e.match(/(tag\/[^/]+)/)?.[0], o = e.startsWith("model") ? "models" : "", a = e.startsWith("webhook") ? "webhooks" : "";
17
- return n || o || a;
18
- }, g = () => t.value.pathRouting ? c(window.location.pathname) : (
14
+ }, u = () => t.value.pathRouting ? l(window.location.pathname) : (
19
15
  // Must remove the prefix from the hash as the internal hash value should be pure
20
- decodeURIComponent(window.location.hash.replace(/^#/, "")).slice(u.value.length)
21
- ), m = () => r.value = g(), v = (e, n = window.location.href) => {
22
- const o = new URL(n);
23
- t.value.pathRouting ? o.pathname = h(t.value.pathRouting.basePath, e) : o.hash = u.value + e, r.value = e, window.history.replaceState({}, "", o);
24
- }, $ = (e, n = window.location.href, o = window.location.search) => {
25
- const a = new URL(n);
26
- return t.value.pathRouting ? a.pathname = h(t.value.pathRouting.basePath, e) : a.hash = u.value + e, a.search = o, a.toString();
27
- }, w = (e = r.value) => `${u.value}${e}`, I = (e) => typeof t.value.generateHeadingSlug == "function" ? `${t.value.generateHeadingSlug(e)}` : e.slug ? `description/${e.slug}` : "", S = (e, n) => {
28
- if (!e?.name)
29
- return "models";
30
- const o = n ? `${l(n)}/` : "";
31
- return typeof t.value.generateModelSlug == "function" ? `${o}model/${t.value.generateModelSlug(e)}` : `${o}model/${s(e.name)}`;
32
- }, l = (e) => typeof t.value.generateTagSlug == "function" ? `tag/${t.value.generateTagSlug(e)}` : `tag/${s(e.name ?? "")}`;
16
+ decodeURIComponent(window.location.hash.replace(/^#/, "")).slice(a.value.length)
17
+ );
33
18
  return {
34
- hash: r,
19
+ hash: s,
35
20
  /** Sets the prefix for the hash */
36
21
  setHashPrefix: (e) => {
37
- u.value = e;
22
+ a.value = e;
38
23
  },
39
24
  /**
40
25
  * Gets the full hash with the prefix
41
26
  * @param hashTarget The hash to target with the return
42
27
  * @returns The full hash
43
28
  */
44
- getFullHash: w,
29
+ getFullHash: (e = s.value) => `${a.value}${e}`,
45
30
  /**
46
31
  * Gets the hashed url with the prefix
47
32
  * @param replacementHash The hash to replace the current hash with
48
33
  * @param url The url to get the hashed url from
49
34
  * @returns The hashed url
50
35
  */
51
- getHashedUrl: $,
36
+ getHashedUrl: (e, n = window.location.href, o = window.location.search) => {
37
+ const r = new URL(n);
38
+ return t.value.pathRouting ? r.pathname = c(t.value.pathRouting.basePath, e) : r.hash = a.value + e, r.search = o, r.toString();
39
+ },
52
40
  /**
53
41
  * Replaces the URL state with the new url and hash
54
42
  * Replacement is used so that hash changes don't trigger the url hash watcher and cause a scroll
55
43
  */
56
- replaceUrlState: v,
57
- getReferenceId: g,
58
- getWebhookId: (e, n) => {
59
- if (!e?.name)
60
- return "webhooks";
61
- const o = n ? `${l(n)}/` : "";
62
- return typeof t.value.generateWebhookSlug == "function" ? `${o}webhook/${t.value.generateWebhookSlug(e)}` : `${o}webhook/${e.method}/${s(e.name)}`;
44
+ replaceUrlState: (e, n = window.location.href) => {
45
+ const o = new URL(n);
46
+ t.value.pathRouting ? o.pathname = c(t.value.pathRouting.basePath, e) : o.hash = a.value + e, s.value = e, window.history.replaceState({}, "", o);
63
47
  },
64
- getModelId: S,
65
- getHeadingId: I,
66
- getOperationId: (e, n) => typeof t.value.generateOperationSlug == "function" ? `${l(n)}/${t.value.generateOperationSlug({
67
- path: e.path,
68
- operationId: e.operationId,
69
- method: e.method,
70
- summary: e.summary
71
- })}` : `${l(n)}/${e.method}${e.path}`,
72
- getPathRoutingId: c,
73
- getSectionId: p,
74
- getTagId: l,
75
- isIntersectionEnabled: f,
76
- updateHash: m
48
+ getReferenceId: u,
49
+ getHeadingId: (e) => typeof t.value.generateHeadingSlug == "function" ? `${t.value.generateHeadingSlug(e)}` : e.slug ? `description/${e.slug}` : "",
50
+ getPathRoutingId: l,
51
+ isIntersectionEnabled: g,
52
+ updateHash: () => s.value = u()
77
53
  };
78
54
  };
79
55
  export {
80
- k as NAV_STATE_SYMBOL,
81
- M as useNavState
56
+ f as NAV_STATE_SYMBOL,
57
+ E as useNavState
82
58
  };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,11 @@
1
1
  export { default as ApiReference } from './components/ApiReference.vue.js';
2
2
  export { default as ApiReferenceLayout } from './components/ApiReferenceLayout.vue.js';
3
- export { default as ApiReferenceWorkspace } from './v2/ApiReferenceWorkspace.vue.js';
4
- export { SearchButton, SearchModal } from './features/Search';
5
3
  export { default as GettingStarted } from './components/GettingStarted.vue.js';
6
- export { createApiReference } from './standalone/lib/html-api.js';
7
- export { useSidebar, Sidebar } from './features/sidebar';
8
- export { useWorkspaceStoreEvents } from './v2/hooks/use-workspace-store-events.js';
9
- export { createEmptySpecification } from './libs/openapi.js';
4
+ export { SearchButton, SearchModal } from './features/Search';
10
5
  export { useNavState } from './hooks/useNavState.js';
6
+ export { createEmptySpecification } from './libs/openapi.js';
7
+ export { createApiReference } from './standalone/lib/html-api.js';
11
8
  export type { ApiReferenceConfiguration, ReferenceProps, } from './types';
9
+ export { default as ApiReferenceWorkspace } from './v2/ApiReferenceWorkspace.vue.js';
10
+ export { useWorkspaceStoreEvents } from './v2/hooks/use-workspace-store-events.js';
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACnF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAG/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,YAAY,EACV,yBAAyB,EACzB,cAAc,GACf,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EACV,yBAAyB,EACzB,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA"}