@lukoweb/apitogo 0.1.24 → 0.1.38

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 (477) hide show
  1. package/README.md +92 -0
  2. package/cli.js +13 -13
  3. package/client.d.ts +8 -8
  4. package/dist/cli/cli.js +1117 -624
  5. package/dist/declarations/config/config.d.ts +4 -0
  6. package/dist/declarations/config/loader.d.ts +2 -0
  7. package/dist/declarations/config/resolve-modules.d.ts +34 -0
  8. package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
  9. package/dist/declarations/config/validators/ModulesSchema.d.ts +417 -0
  10. package/dist/declarations/config/validators/ZudokuConfig.d.ts +123 -4
  11. package/dist/declarations/index.d.ts +3 -1
  12. package/dist/declarations/lib/authentication/components/ProductionUnlockPage.d.ts +1 -0
  13. package/dist/declarations/lib/authentication/hook.d.ts +3 -19
  14. package/dist/declarations/lib/authentication/providers/dev-portal-constants.d.ts +16 -0
  15. package/dist/declarations/lib/authentication/providers/dev-portal-utils.d.ts +9 -0
  16. package/dist/declarations/lib/authentication/providers/dev-portal.d.ts +39 -0
  17. package/dist/declarations/lib/authentication/state.d.ts +12 -26
  18. package/dist/declarations/lib/components/LandingLayout.d.ts +4 -0
  19. package/dist/declarations/lib/components/index.d.ts +2 -0
  20. package/dist/declarations/lib/plugins/api-keys/index.d.ts +2 -1
  21. package/dist/flat-config.d.ts +209 -24
  22. package/docs/components/alert.mdx +130 -0
  23. package/docs/components/badge.mdx +70 -0
  24. package/docs/components/button.mdx +132 -0
  25. package/docs/components/callout.mdx +112 -0
  26. package/docs/components/card.mdx +104 -0
  27. package/docs/components/checkbox.mdx +72 -0
  28. package/docs/components/client-only.mdx +79 -0
  29. package/docs/components/code-tabs.mdx +179 -0
  30. package/docs/components/dialog.mdx +167 -0
  31. package/docs/components/head.mdx +200 -0
  32. package/docs/components/icons.mdx +27 -0
  33. package/docs/components/input.mdx +96 -0
  34. package/docs/components/label.mdx +86 -0
  35. package/docs/components/link.mdx +242 -0
  36. package/docs/components/markdown.mdx +151 -0
  37. package/docs/components/mermaid.mdx +81 -0
  38. package/docs/components/playground.mdx +87 -0
  39. package/docs/components/secret.mdx +79 -0
  40. package/docs/components/select.mdx +176 -0
  41. package/docs/components/shadcn.mdx +73 -0
  42. package/docs/components/slider.mdx +108 -0
  43. package/docs/components/slot.mdx +119 -0
  44. package/docs/components/stepper.mdx +138 -0
  45. package/docs/components/switch.mdx +96 -0
  46. package/docs/components/syntax-highlight.mdx +602 -0
  47. package/docs/components/textarea.mdx +78 -0
  48. package/docs/components/tooltip.mdx +195 -0
  49. package/docs/components/typography.mdx +61 -0
  50. package/docs/concepts/auth-provider-api-identities.md +109 -0
  51. package/docs/configuration/ai-assistants.md +65 -0
  52. package/docs/configuration/api-catalog.md +109 -0
  53. package/docs/configuration/api-reference.md +397 -0
  54. package/docs/configuration/authentication-auth0.md +174 -0
  55. package/docs/configuration/authentication-azure-ad.md +238 -0
  56. package/docs/configuration/authentication-clerk.md +110 -0
  57. package/docs/configuration/authentication-firebase.md +62 -0
  58. package/docs/configuration/authentication-pingfederate.md +136 -0
  59. package/docs/configuration/authentication-supabase.md +226 -0
  60. package/docs/configuration/authentication.md +231 -0
  61. package/docs/configuration/build-configuration.mdx +147 -0
  62. package/docs/configuration/docs.md +282 -0
  63. package/docs/configuration/footer.mdx +214 -0
  64. package/docs/configuration/llms.md +90 -0
  65. package/docs/configuration/make-config.mdx +90 -0
  66. package/docs/configuration/navigation.mdx +422 -0
  67. package/docs/configuration/overview.md +380 -0
  68. package/docs/configuration/protected-routes.md +150 -0
  69. package/docs/configuration/search.md +163 -0
  70. package/docs/configuration/sentry.mdx +44 -0
  71. package/docs/configuration/site.md +124 -0
  72. package/docs/configuration/slots.mdx +125 -0
  73. package/docs/configuration/vite-config.md +18 -0
  74. package/docs/custom-plugins.md +285 -0
  75. package/docs/customization/colors-theme.mdx +276 -0
  76. package/docs/customization/fonts.md +110 -0
  77. package/docs/deploy/apache-nginx.md +41 -0
  78. package/docs/deploy/apitogo.md +139 -0
  79. package/docs/deploy/cloudflare-pages.md +75 -0
  80. package/docs/deploy/direct-upload.md +18 -0
  81. package/docs/deploy/github-pages.md +50 -0
  82. package/docs/deploy/vercel.md +103 -0
  83. package/docs/deployment.md +21 -0
  84. package/docs/extending/events.md +124 -0
  85. package/docs/guides/custom-pages.md +106 -0
  86. package/docs/guides/environment-variables.md +99 -0
  87. package/docs/guides/managing-api-keys-and-identities.md +172 -0
  88. package/docs/guides/mermaid.mdx +70 -0
  89. package/docs/guides/navigation-migration.md +87 -0
  90. package/docs/guides/navigation-rules.mdx +203 -0
  91. package/docs/guides/processors.mdx +234 -0
  92. package/docs/guides/static-files.md +55 -0
  93. package/docs/guides/transforming-examples.md +156 -0
  94. package/docs/guides/using-multiple-apis.md +87 -0
  95. package/docs/markdown/admonitions.md +128 -0
  96. package/docs/markdown/code-blocks.md +196 -0
  97. package/docs/markdown/frontmatter.md +173 -0
  98. package/docs/markdown/mdx.md +68 -0
  99. package/docs/markdown/overview.md +275 -0
  100. package/docs/plugins.md +5 -0
  101. package/docs/quickstart.md +87 -0
  102. package/docs/writing.mdx +72 -0
  103. package/package.json +170 -116
  104. package/src/app/ZuploBuildConfig.ts +36 -36
  105. package/src/app/defaultTheme.css +77 -77
  106. package/src/app/demo-cdn.html +37 -37
  107. package/src/app/demo.html +21 -21
  108. package/src/app/demo.tsx +77 -77
  109. package/src/app/entry.client.tsx +118 -118
  110. package/src/app/entry.server.tsx +160 -160
  111. package/src/app/env.ts +40 -40
  112. package/src/app/font.geist.css +73 -73
  113. package/src/app/main.css +390 -390
  114. package/src/app/main.tsx +8 -1
  115. package/src/app/polyfills.ts +47 -47
  116. package/src/app/processRoutes.tsx +51 -25
  117. package/src/app/sentry.ts +24 -24
  118. package/src/app/standalone.html +23 -23
  119. package/src/app/standalone.tsx +60 -60
  120. package/src/app/utils/createRedirectRoutes.ts +11 -11
  121. package/src/config/config.ts +32 -0
  122. package/src/config/create-plugin.ts +71 -71
  123. package/src/config/file-exists.ts +6 -6
  124. package/src/config/loader.ts +11 -1
  125. package/src/config/resolve-modules.ts +260 -0
  126. package/src/config/validators/BuildSchema.ts +95 -95
  127. package/src/config/validators/HeaderNavigationSchema.ts +41 -41
  128. package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
  129. package/src/config/validators/InputNavigationSchema.ts +206 -206
  130. package/src/config/validators/ModulesSchema.ts +312 -0
  131. package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
  132. package/src/config/validators/ZudokuConfig.ts +766 -729
  133. package/src/config/validators/auth.ts +3 -3
  134. package/src/config/validators/reason-codes.ts +7 -7
  135. package/src/env.d.ts +11 -11
  136. package/src/index.ts +31 -0
  137. package/src/lib/MissingIcon.tsx +22 -22
  138. package/src/lib/assets/language-icons/bun.tsx +50 -50
  139. package/src/lib/assets/language-icons/c.tsx +31 -31
  140. package/src/lib/assets/language-icons/commonlisp.tsx +22 -22
  141. package/src/lib/assets/language-icons/cpp.tsx +35 -35
  142. package/src/lib/assets/language-icons/csharp.tsx +35 -35
  143. package/src/lib/assets/language-icons/css.tsx +36 -36
  144. package/src/lib/assets/language-icons/dart.tsx +39 -39
  145. package/src/lib/assets/language-icons/elixir.tsx +19 -19
  146. package/src/lib/assets/language-icons/go.tsx +19 -19
  147. package/src/lib/assets/language-icons/graphql.tsx +19 -19
  148. package/src/lib/assets/language-icons/html.tsx +24 -24
  149. package/src/lib/assets/language-icons/java.tsx +35 -35
  150. package/src/lib/assets/language-icons/javascript.tsx +11 -11
  151. package/src/lib/assets/language-icons/json.tsx +19 -19
  152. package/src/lib/assets/language-icons/kotlin.tsx +30 -30
  153. package/src/lib/assets/language-icons/markdown.tsx +19 -19
  154. package/src/lib/assets/language-icons/mdx.tsx +23 -23
  155. package/src/lib/assets/language-icons/npm.tsx +15 -15
  156. package/src/lib/assets/language-icons/objectivec.tsx +23 -23
  157. package/src/lib/assets/language-icons/ocaml.tsx +34 -34
  158. package/src/lib/assets/language-icons/php.tsx +19 -19
  159. package/src/lib/assets/language-icons/pnpm.tsx +32 -32
  160. package/src/lib/assets/language-icons/powershell.tsx +27 -27
  161. package/src/lib/assets/language-icons/python.tsx +23 -23
  162. package/src/lib/assets/language-icons/react.tsx +21 -21
  163. package/src/lib/assets/language-icons/ruby.tsx +19 -19
  164. package/src/lib/assets/language-icons/rust.tsx +19 -19
  165. package/src/lib/assets/language-icons/scala.tsx +19 -19
  166. package/src/lib/assets/language-icons/shell.tsx +19 -19
  167. package/src/lib/assets/language-icons/swift.tsx +19 -19
  168. package/src/lib/assets/language-icons/toml.tsx +23 -23
  169. package/src/lib/assets/language-icons/typescript.tsx +23 -23
  170. package/src/lib/assets/language-icons/xml.tsx +19 -19
  171. package/src/lib/assets/language-icons/yaml.tsx +23 -23
  172. package/src/lib/assets/language-icons/yarn.tsx +17 -17
  173. package/src/lib/assets/language-icons/zig.tsx +32 -32
  174. package/src/lib/auth/issuer.ts +34 -31
  175. package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
  176. package/src/lib/authentication/authentication.ts +48 -48
  177. package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
  178. package/src/lib/authentication/components/ProductionUnlockPage.tsx +27 -0
  179. package/src/lib/authentication/components/SignOut.tsx +15 -15
  180. package/src/lib/authentication/constants.ts +1 -1
  181. package/src/lib/authentication/errors.ts +34 -34
  182. package/src/lib/authentication/hook.ts +141 -139
  183. package/src/lib/authentication/providers/auth0.tsx +91 -91
  184. package/src/lib/authentication/providers/azureb2c.tsx +223 -223
  185. package/src/lib/authentication/providers/dev-portal-constants.ts +21 -0
  186. package/src/lib/authentication/providers/dev-portal-utils.ts +107 -0
  187. package/src/lib/authentication/providers/dev-portal.tsx +270 -0
  188. package/src/lib/authentication/providers/firebase.tsx +486 -486
  189. package/src/lib/authentication/providers/openid.tsx +516 -516
  190. package/src/lib/authentication/providers/supabase.tsx +412 -412
  191. package/src/lib/authentication/providers/util.ts +26 -26
  192. package/src/lib/authentication/state.ts +179 -91
  193. package/src/lib/authentication/ui/icons/Apple.tsx +10 -10
  194. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -15
  195. package/src/lib/authentication/ui/icons/Github.tsx +16 -16
  196. package/src/lib/authentication/ui/icons/Google.tsx +16 -16
  197. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -12
  198. package/src/lib/authentication/ui/icons/X.tsx +10 -10
  199. package/src/lib/authentication/utils/relativeRedirectUrl.ts +16 -16
  200. package/src/lib/components/AnchorLink.tsx +24 -24
  201. package/src/lib/components/Banner.tsx +52 -52
  202. package/src/lib/components/Bootstrap.tsx +77 -77
  203. package/src/lib/components/BuildCheck.tsx +87 -87
  204. package/src/lib/components/CategoryHeading.tsx +19 -19
  205. package/src/lib/components/ClientOnly.tsx +19 -19
  206. package/src/lib/components/ErrorPage.tsx +26 -26
  207. package/src/lib/components/Footer.tsx +140 -140
  208. package/src/lib/components/Framed.tsx +51 -51
  209. package/src/lib/components/Header.tsx +11 -3
  210. package/src/lib/components/HeaderNavigation.tsx +148 -148
  211. package/src/lib/components/Heading.tsx +84 -84
  212. package/src/lib/components/InlineCode.tsx +15 -15
  213. package/src/lib/components/LandingLayout.tsx +21 -0
  214. package/src/lib/components/LanguageIcon.tsx +199 -199
  215. package/src/lib/components/Markdown.tsx +55 -55
  216. package/src/lib/components/Meta.tsx +46 -46
  217. package/src/lib/components/MobileTopNavigation.tsx +11 -3
  218. package/src/lib/components/NotFoundPage.tsx +37 -37
  219. package/src/lib/components/PageProgress.tsx +28 -28
  220. package/src/lib/components/PagefindSearchMeta.tsx +14 -14
  221. package/src/lib/components/Pagination.tsx +44 -44
  222. package/src/lib/components/PathRenderer.tsx +61 -61
  223. package/src/lib/components/PluginHeads.tsx +17 -17
  224. package/src/lib/components/Search.tsx +70 -70
  225. package/src/lib/components/Slot.tsx +64 -64
  226. package/src/lib/components/Spinner.tsx +5 -5
  227. package/src/lib/components/StatusPage.tsx +96 -96
  228. package/src/lib/components/ThemeSwitch.tsx +49 -49
  229. package/src/lib/components/Typography.tsx +12 -12
  230. package/src/lib/components/Zudoku.tsx +106 -106
  231. package/src/lib/components/cache.ts +27 -27
  232. package/src/lib/components/context/RenderContext.ts +11 -11
  233. package/src/lib/components/context/RouterEventsEmitter.tsx +19 -19
  234. package/src/lib/components/context/SlotProvider.tsx +149 -149
  235. package/src/lib/components/context/ViewportAnchorContext.tsx +137 -137
  236. package/src/lib/components/context/ZudokuContext.ts +140 -140
  237. package/src/lib/components/context/ZudokuProvider.tsx +22 -22
  238. package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
  239. package/src/lib/components/index.ts +2 -0
  240. package/src/lib/components/navigation/Navigation.tsx +51 -51
  241. package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
  242. package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
  243. package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
  244. package/src/lib/components/navigation/Toc.tsx +137 -137
  245. package/src/lib/components/navigation/ZudokuLogo.tsx +25 -25
  246. package/src/lib/components/navigation/ZuploLogo.tsx +14 -14
  247. package/src/lib/components/navigation/utils.ts +234 -234
  248. package/src/lib/core/RouteGuard.tsx +11 -1
  249. package/src/lib/core/ZudokuContext.ts +271 -271
  250. package/src/lib/core/plugins.ts +138 -138
  251. package/src/lib/core/react-query.ts +1 -1
  252. package/src/lib/core/router.ts +1 -1
  253. package/src/lib/core/transform-config.ts +67 -67
  254. package/src/lib/demo/DemoAnnouncement.tsx +17 -17
  255. package/src/lib/errors/ErrorAlert.tsx +28 -28
  256. package/src/lib/errors/RouterError.tsx +18 -18
  257. package/src/lib/errors/ServerError.tsx +5 -5
  258. package/src/lib/errors/TopLevelError.tsx +6 -6
  259. package/src/lib/hooks/index.ts +13 -13
  260. package/src/lib/hooks/useEvent.ts +41 -41
  261. package/src/lib/hooks/useHighlighter.ts +15 -15
  262. package/src/lib/hooks/useHotkey.ts +70 -70
  263. package/src/lib/icons.ts +2 -2
  264. package/src/lib/navigation/applyRules.ts +127 -127
  265. package/src/lib/navigation/pathMatcher.ts +81 -81
  266. package/src/lib/oas/graphql/circular.ts +69 -69
  267. package/src/lib/oas/graphql/constants.ts +2 -2
  268. package/src/lib/oas/graphql/index.ts +791 -791
  269. package/src/lib/oas/parser/dereference/index.ts +84 -84
  270. package/src/lib/oas/parser/dereference/resolveRef.ts +32 -32
  271. package/src/lib/oas/parser/index.ts +129 -129
  272. package/src/lib/oas/parser/schemas/v3.0.json +1489 -1489
  273. package/src/lib/oas/parser/schemas/v3.1.json +1298 -1298
  274. package/src/lib/oas/parser/upgrade/index.ts +174 -174
  275. package/src/lib/plugins/api-catalog/index.tsx +119 -119
  276. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
  277. package/src/lib/plugins/api-keys/index.tsx +274 -272
  278. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
  279. package/src/lib/plugins/custom-pages/index.tsx +32 -32
  280. package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -11
  281. package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -19
  282. package/src/lib/plugins/markdown/index.tsx +62 -62
  283. package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
  284. package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
  285. package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -273
  286. package/src/lib/plugins/openapi/OasProvider.tsx +74 -74
  287. package/src/lib/plugins/openapi/OperationList.tsx +275 -275
  288. package/src/lib/plugins/openapi/ParamInfos.tsx +96 -96
  289. package/src/lib/plugins/openapi/ParameterList.tsx +53 -53
  290. package/src/lib/plugins/openapi/ParameterListItem.tsx +161 -161
  291. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +67 -67
  292. package/src/lib/plugins/openapi/SidecarBox.tsx +57 -57
  293. package/src/lib/plugins/openapi/SimpleSelect.tsx +46 -46
  294. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +73 -73
  295. package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -16
  296. package/src/lib/plugins/openapi/client/createServer.ts +35 -35
  297. package/src/lib/plugins/openapi/client/useCreateQuery.ts +44 -44
  298. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -24
  299. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -22
  300. package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -29
  301. package/src/lib/plugins/openapi/context.tsx +16 -16
  302. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +104 -104
  303. package/src/lib/plugins/openapi/graphql/gql.ts +95 -95
  304. package/src/lib/plugins/openapi/graphql/graphql.ts +835 -835
  305. package/src/lib/plugins/openapi/graphql/index.ts +2 -2
  306. package/src/lib/plugins/openapi/index.tsx +221 -221
  307. package/src/lib/plugins/openapi/interfaces.ts +100 -100
  308. package/src/lib/plugins/openapi/playground/Headers.tsx +6 -6
  309. package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
  310. package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -87
  311. package/src/lib/plugins/openapi/playground/createUrl.ts +25 -25
  312. package/src/lib/plugins/openapi/playground/fileUtils.ts +36 -36
  313. package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -26
  314. package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -31
  315. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +29 -29
  316. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +340 -340
  317. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -117
  318. package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -36
  319. package/src/lib/plugins/openapi/playground/serializeQueryParams.ts +125 -125
  320. package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -23
  321. package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -29
  322. package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -103
  323. package/src/lib/plugins/openapi/processors/removePaths.ts +57 -57
  324. package/src/lib/plugins/openapi/processors/traverse.ts +1 -1
  325. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -39
  326. package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -132
  327. package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -123
  328. package/src/lib/plugins/openapi/schema/utils.ts +49 -49
  329. package/src/lib/plugins/openapi/state.ts +36 -36
  330. package/src/lib/plugins/openapi/util/buildTagCategories.ts +54 -54
  331. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +135 -135
  332. package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -39
  333. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +191 -191
  334. package/src/lib/plugins/openapi/util/getRoutes.tsx +265 -265
  335. package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -11
  336. package/src/lib/plugins/openapi/util/methodToColor.ts +27 -27
  337. package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -32
  338. package/src/lib/plugins/openapi/util/useWarmupSchema.ts +23 -23
  339. package/src/lib/plugins/search-inkeep/index.tsx +108 -108
  340. package/src/lib/plugins/search-inkeep/inkeep.ts +24 -24
  341. package/src/lib/plugins/search-pagefind/get-results.tsx +74 -74
  342. package/src/lib/plugins/search-pagefind/index.tsx +21 -21
  343. package/src/lib/plugins/search-pagefind/types.ts +118 -118
  344. package/src/lib/shiki-constants.ts +24 -24
  345. package/src/lib/testing/index.tsx +146 -146
  346. package/src/lib/ui/Accordion.tsx +55 -55
  347. package/src/lib/ui/Alert.tsx +84 -84
  348. package/src/lib/ui/AlertDialog.tsx +195 -195
  349. package/src/lib/ui/AspectRatio.tsx +5 -5
  350. package/src/lib/ui/Badge.tsx +48 -48
  351. package/src/lib/ui/Breadcrumb.tsx +115 -115
  352. package/src/lib/ui/Button.tsx +65 -65
  353. package/src/lib/ui/ButtonGroup.tsx +80 -80
  354. package/src/lib/ui/Callout.tsx +113 -113
  355. package/src/lib/ui/Card.tsx +95 -95
  356. package/src/lib/ui/Carousel.tsx +259 -259
  357. package/src/lib/ui/Checkbox.tsx +28 -28
  358. package/src/lib/ui/CodeBlock.tsx +92 -92
  359. package/src/lib/ui/CodeTabPanel.tsx +13 -13
  360. package/src/lib/ui/CodeTabs.tsx +161 -161
  361. package/src/lib/ui/Collapsible.tsx +31 -31
  362. package/src/lib/ui/Dialog.tsx +138 -138
  363. package/src/lib/ui/DismissibleAlert.tsx +74 -74
  364. package/src/lib/ui/Drawer.tsx +121 -121
  365. package/src/lib/ui/DropdownMenu.tsx +254 -254
  366. package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -99
  367. package/src/lib/ui/Form.tsx +176 -176
  368. package/src/lib/ui/Frame.tsx +81 -81
  369. package/src/lib/ui/HoverCard.tsx +26 -26
  370. package/src/lib/ui/Input.tsx +23 -23
  371. package/src/lib/ui/InputGroup.tsx +168 -168
  372. package/src/lib/ui/Item.tsx +213 -213
  373. package/src/lib/ui/Kbd.tsx +28 -28
  374. package/src/lib/ui/Label.tsx +23 -23
  375. package/src/lib/ui/NativeSelect.tsx +48 -48
  376. package/src/lib/ui/NavigationMenu.tsx +169 -169
  377. package/src/lib/ui/Pagination.tsx +115 -115
  378. package/src/lib/ui/Popover.tsx +28 -28
  379. package/src/lib/ui/Progress.tsx +25 -25
  380. package/src/lib/ui/RadioGroup.tsx +41 -41
  381. package/src/lib/ui/ReactComponentDoc.tsx +68 -68
  382. package/src/lib/ui/ScrollArea.tsx +45 -45
  383. package/src/lib/ui/Secret.tsx +133 -133
  384. package/src/lib/ui/Select.tsx +184 -184
  385. package/src/lib/ui/Separator.tsx +25 -25
  386. package/src/lib/ui/Skeleton.tsx +15 -15
  387. package/src/lib/ui/Slider.tsx +25 -25
  388. package/src/lib/ui/Stepper.tsx +8 -8
  389. package/src/lib/ui/Switch.tsx +26 -26
  390. package/src/lib/ui/SyntaxHighlight.tsx +54 -54
  391. package/src/lib/ui/Tabs.tsx +52 -52
  392. package/src/lib/ui/Textarea.tsx +22 -22
  393. package/src/lib/ui/Toggle.tsx +42 -42
  394. package/src/lib/ui/ToggleGroup.tsx +58 -58
  395. package/src/lib/ui/Tooltip.tsx +65 -65
  396. package/src/lib/ui/Value.tsx +42 -42
  397. package/src/lib/ui/util.tsx +8 -8
  398. package/src/lib/util/cn.ts +6 -6
  399. package/src/lib/util/createVariantComponent.tsx +61 -61
  400. package/src/lib/util/ensureArray.ts +3 -3
  401. package/src/lib/util/flattenAllOf.ts +72 -72
  402. package/src/lib/util/flattenAllOfProcessor.ts +74 -74
  403. package/src/lib/util/hastToJsx.tsx +67 -67
  404. package/src/lib/util/humanFileSize.ts +15 -15
  405. package/src/lib/util/invariant.ts +52 -52
  406. package/src/lib/util/joinUrl.ts +60 -60
  407. package/src/lib/util/logInit.ts +9 -9
  408. package/src/lib/util/objectEntries.ts +5 -5
  409. package/src/lib/util/os.ts +18 -18
  410. package/src/lib/util/pastellize.ts +25 -25
  411. package/src/lib/util/problemJson.ts +63 -63
  412. package/src/lib/util/readFrontmatter.ts +14 -14
  413. package/src/lib/util/renderIf.ts +4 -4
  414. package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -18
  415. package/src/lib/util/slugify.ts +21 -21
  416. package/src/lib/util/syncZustandState.ts +22 -22
  417. package/src/lib/util/traverse.ts +70 -70
  418. package/src/lib/util/types.ts +7 -7
  419. package/src/lib/util/url.ts +18 -18
  420. package/src/lib/util/useCopyToClipboard.ts +17 -17
  421. package/src/lib/util/useExposedProps.tsx +27 -27
  422. package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -6
  423. package/src/lib/util/useLatest.ts +18 -18
  424. package/src/lib/util/useOnScreen.ts +34 -34
  425. package/src/lib/util/useScrollToAnchor.ts +70 -70
  426. package/src/lib/util/useScrollToTop.ts +18 -18
  427. package/src/types.d.ts +57 -53
  428. package/src/vite/api/SchemaManager.ts +371 -371
  429. package/src/vite/api/schema-codegen.ts +163 -163
  430. package/src/vite/config.ts +5 -1
  431. package/src/vite/css/collect.ts +42 -42
  432. package/src/vite/css/plugin.ts +105 -105
  433. package/src/vite/debug.ts +18 -18
  434. package/src/vite/dev-portal-env.ts +93 -0
  435. package/src/vite/html.ts +54 -54
  436. package/src/vite/index.ts +2 -2
  437. package/src/vite/mdx/rehype-extract-toc-with-jsx-export.ts +19 -19
  438. package/src/vite/mdx/rehype-extract-toc-with-jsx.ts +70 -70
  439. package/src/vite/mdx/remark-code-tabs.ts +47 -47
  440. package/src/vite/mdx/remark-inject-filepath.ts +13 -13
  441. package/src/vite/mdx/remark-last-modified.ts +103 -103
  442. package/src/vite/mdx/remark-link-rewrite.ts +23 -23
  443. package/src/vite/mdx/remark-normalize-image-url.ts +15 -15
  444. package/src/vite/mdx/remark-static-generation.ts +149 -149
  445. package/src/vite/mdx/utils.ts +32 -32
  446. package/src/vite/output.ts +261 -261
  447. package/src/vite/package-root.ts +12 -12
  448. package/src/vite/pagefind-dev-index.ts +100 -100
  449. package/src/vite/plugin-api-keys.ts +6 -1
  450. package/src/vite/plugin-api.ts +4 -1
  451. package/src/vite/plugin-auth.ts +5 -1
  452. package/src/vite/plugin-component.ts +1 -1
  453. package/src/vite/plugin-config-reload.ts +49 -49
  454. package/src/vite/plugin-doc-metadata.ts +45 -45
  455. package/src/vite/plugin-docs.ts +4 -1
  456. package/src/vite/plugin-metadata.ts +30 -30
  457. package/src/vite/plugin-modules.ts +144 -0
  458. package/src/vite/plugin-shiki-register.ts +97 -97
  459. package/src/vite/plugin-theme.ts +399 -399
  460. package/src/vite/plugin.ts +2 -0
  461. package/src/vite/prerender/utils.ts +76 -76
  462. package/src/vite/prerender/worker.ts +118 -118
  463. package/src/vite/reporter.ts +34 -34
  464. package/src/vite/shadcn-registry.ts +48 -48
  465. package/src/vite/sitemap.ts +78 -78
  466. package/src/vite/ssr-templates/cloudflare.ts +19 -19
  467. package/src/vite/ssr-templates/node.ts +25 -25
  468. package/src/vite/ssr-templates/vercel.ts +22 -22
  469. package/src/vite/zuplo.ts +30 -30
  470. package/src/vite-env.d.ts +6 -6
  471. package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -168
  472. package/src/zuplo/enrich-with-zuplo.ts +256 -256
  473. package/src/zuplo/policy-types.ts +46 -46
  474. package/src/zuplo/with-zuplo-processors.ts +36 -36
  475. package/src/zuplo/with-zuplo.ts +14 -14
  476. package/LICENSE.md +0 -18
  477. package/dist/declarations/lib/components/navigation/ZudokuLogo.d.ts +0 -6
@@ -0,0 +1,151 @@
1
+ ---
2
+ title: Markdown
3
+ sidebar_icon: heading-1
4
+ ---
5
+
6
+ A component for rendering markdown content with syntax highlighting and custom components.
7
+
8
+ ## Import
9
+
10
+ ```tsx
11
+ import { Markdown } from "@lukoweb/apitogo/components";
12
+ ```
13
+
14
+ ## Props
15
+
16
+ ```ts
17
+ type MarkdownProps = {
18
+ content: string;
19
+ className?: string;
20
+ components?: Components;
21
+ };
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ### Basic Markdown
27
+
28
+ ```tsx
29
+ <Markdown content="# Hello World\n\nThis is **bold** text." />
30
+ ```
31
+
32
+ ### With Custom Styling
33
+
34
+ ```tsx
35
+ <Markdown content="# Styled Content" className="max-w-2xl mx-auto" />
36
+ ```
37
+
38
+ ### With Custom Components
39
+
40
+ ```tsx
41
+ const customComponents = {
42
+ h1: ({ children }) => <h1 className="text-4xl font-bold text-blue-600">{children}</h1>,
43
+ p: ({ children }) => <p className="text-gray-700 leading-relaxed">{children}</p>,
44
+ };
45
+
46
+ <Markdown content="# Custom Heading\n\nCustom paragraph styling." components={customComponents} />;
47
+ ```
48
+
49
+ :::info
50
+
51
+ Custom components provided via the `components` prop will merge with default MDX components,
52
+ allowing you to override specific elements while keeping others intact.
53
+
54
+ :::
55
+
56
+ ## Features
57
+
58
+ - **GitHub Flavored Markdown**: Full GFM support including tables, strikethrough, and task lists
59
+ - **Syntax Highlighting**: Code blocks with configurable Shiki themes
60
+ - **Raw HTML Support**: Safely renders HTML mixed with markdown
61
+ - **Custom Components**: Override default markdown elements with custom React components
62
+ - **Prose Styling**: Built-in typography styles with dark mode support
63
+
64
+ ## Supported Markdown
65
+
66
+ ### Headers
67
+
68
+ ```markdown
69
+ # H1 Header
70
+
71
+ ## H2 Header
72
+
73
+ ### H3 Header
74
+ ```
75
+
76
+ ### Emphasis
77
+
78
+ <!-- prettier-ignore -->
79
+ ```markdown
80
+ _italic_ or *italic*
81
+ **bold** or __bold__
82
+ **_bold italic_**
83
+ ~~strikethrough~~
84
+ ```
85
+
86
+ ### Lists
87
+
88
+ ```markdown
89
+ - Unordered list item
90
+ - Another item
91
+ - Nested item
92
+
93
+ 1. Ordered list item
94
+ 2. Another numbered item
95
+ ```
96
+
97
+ ### Code
98
+
99
+ The Markdown component supports both inline code and code blocks with syntax highlighting.
100
+
101
+ **Inline code** with backticks:
102
+
103
+ ```markdown
104
+ Inline `code` with backticks
105
+ ```
106
+
107
+ **Code blocks** with syntax highlighting:
108
+
109
+ ````markdown
110
+ ```javascript
111
+ // Code block with syntax highlighting
112
+ function hello() {
113
+ console.log("Hello, world!");
114
+ }
115
+ ```
116
+ ````
117
+
118
+ For advanced syntax highlighting features like line numbers, titles, and line highlighting, see:
119
+
120
+ - [Code Blocks](/docs/markdown/code-blocks) - Markdown code block syntax and features
121
+ - [Syntax Highlight](/docs/components/syntax-highlight) - React component for syntax highlighting
122
+
123
+ ### Links and Images
124
+
125
+ ```markdown
126
+ [Link text](https://example.com) ![Alt text](image.jpg)
127
+ ```
128
+
129
+ ### Tables
130
+
131
+ ```markdown
132
+ | Column 1 | Column 2 |
133
+ | -------- | -------- |
134
+ | Cell 1 | Cell 2 |
135
+ | Cell 3 | Cell 4 |
136
+ ```
137
+
138
+ ## Configuration
139
+
140
+ The Markdown component automatically uses:
141
+
142
+ - **Remark GFM**: For GitHub Flavored Markdown features
143
+ - **Rehype Raw**: For HTML support
144
+ - **Shiki**: For syntax highlighting with your configured themes
145
+
146
+ :::tip
147
+
148
+ The Markdown component integrates with APIToGo's syntax highlighting configuration and will use the
149
+ same themes as configured in your APIToGo options.
150
+
151
+ :::
@@ -0,0 +1,81 @@
1
+ ---
2
+ title: Mermaid
3
+ sidebar_icon: chart-network
4
+ description: Render Mermaid diagrams dynamically with client-side rendering.
5
+ ---
6
+
7
+ import { Mermaid } from "@lukoweb/apitogo/mermaid";
8
+
9
+ The `Mermaid` component renders [Mermaid diagrams](https://mermaid.js.org/) in the browser using
10
+ client-side rendering.
11
+
12
+ <br />
13
+
14
+ :::info{title="Build-Time Alternative"}
15
+
16
+ For static diagrams, consider [build-time rendering with rehype-mermaid](/docs/guides/mermaid).
17
+
18
+ :::
19
+
20
+ ## Prerequisites
21
+
22
+ Install the `mermaid` peer dependency:
23
+
24
+ ```bash
25
+ npm install mermaid
26
+ ```
27
+
28
+ ## Import
29
+
30
+ ```tsx
31
+ import { Mermaid } from "@lukoweb/apitogo/mermaid";
32
+ ```
33
+
34
+ ## Props
35
+
36
+ ```ts
37
+ type MermaidProps = {
38
+ chart: string; // Mermaid diagram definition
39
+ config?: MermaidConfig; // Optional Mermaid configuration
40
+ } & ComponentProps<"div">;
41
+ ```
42
+
43
+ ## Usage
44
+
45
+ ### Basic Usage
46
+
47
+ ```tsx
48
+ <Mermaid
49
+ chart={`graph TD;
50
+ A-->B;
51
+ A-->C;
52
+ B-->D;
53
+ C-->D;`}
54
+ />
55
+ ```
56
+
57
+ <Mermaid
58
+ chart={`graph TD;
59
+ A-->B;
60
+ A-->C;
61
+ B-->D;
62
+ C-->D;`}
63
+ />
64
+
65
+ ### With Configuration
66
+
67
+ ```tsx
68
+ <Mermaid
69
+ config={{ theme: "dark" }}
70
+ chart={`sequenceDiagram
71
+ Alice->>Bob: Hello Bob
72
+ Bob-->>Alice: Hi Alice`}
73
+ />
74
+ ```
75
+
76
+ <Mermaid
77
+ config={{ theme: "dark" }}
78
+ chart={`sequenceDiagram
79
+ Alice->>Bob: Hello Bob
80
+ Bob-->>Alice: Hi Alice`}
81
+ />
@@ -0,0 +1,87 @@
1
+ ---
2
+ title: API Playground
3
+ sidebar_icon: circle-play
4
+ ---
5
+
6
+ You can use this component to allow users to test your API anywhere in your documentation.
7
+
8
+ This component is **only available in [MDX files](/docs/markdown/mdx)** and you can use it directly
9
+ without any imports:
10
+
11
+ ```tsx
12
+ <OpenPlaygroundButton {...props} />
13
+ ```
14
+
15
+ :::tip{title="Hot tip"}
16
+
17
+ The Playground can point to any API endpoint, even if it's not in the API catalog.
18
+
19
+ :::
20
+
21
+ ## Props
22
+
23
+ ```ts
24
+ type PlaygroundProps = {
25
+ server: string;
26
+ url: string;
27
+ method: string;
28
+ headers?: Header[];
29
+ pathParams?: PathParam[];
30
+ queryParams?: QueryParam[];
31
+ body?: string;
32
+ };
33
+ ```
34
+
35
+ ## Examples
36
+
37
+ ### Zuplo Echo
38
+
39
+ In this example, we're using the Zuplo Echo API to test the `POST /hello-world/{name}` endpoint.
40
+
41
+ <OpenPlaygroundButton
42
+ server="https://echo.zuplo.io/"
43
+ url="/hello-world/{name}"
44
+ headers={[{ name: "X-APIToGo-Playground", defaultValue: "Hello World" }]}
45
+ pathParams={[{ name: "name", defaultValue: "John" }]}
46
+ queryParams={[
47
+ { name: "age", defaultValue: "30" },
48
+ { name: "city", defaultValue: "New York" },
49
+ ]}
50
+ body={JSON.stringify({ message: "Hello World" })}
51
+ method="POST"
52
+ />
53
+
54
+ ```tsx
55
+ <OpenPlaygroundButton
56
+ server="https://echo.zuplo.io/"
57
+ url="/hello-world/{name}"
58
+ headers={[
59
+ {
60
+ name: "X-APIToGo-Playground",
61
+ defaultValue: "Hello World",
62
+ },
63
+ ]}
64
+ pathParams={[{ name: "name", defaultValue: "John" }]}
65
+ queryParams={[
66
+ { name: "age", defaultValue: "30" },
67
+ { name: "city", defaultValue: "New York" },
68
+ ]}
69
+ body={JSON.stringify({ message: "Hello World" })}
70
+ method="POST"
71
+ />
72
+ ```
73
+
74
+ ### JSON Placeholder
75
+
76
+ In this example, we're using the JSON Placeholder API to test the `GET /photos` endpoint. We can
77
+ also change the Text on the button to something more specific to the API.
78
+
79
+ <OpenPlaygroundButton server="https://jsonplaceholder.typicode.com" url="/photos" method="GET">
80
+ Test Photos Endpoint
81
+ </OpenPlaygroundButton>
82
+
83
+ ```tsx
84
+ <OpenPlaygroundButton server="https://jsonplaceholder.typicode.com" url="/photos" method="GET">
85
+ Test Photos Endpoint
86
+ </OpenPlaygroundButton>
87
+ ```
@@ -0,0 +1,79 @@
1
+ ---
2
+ title: Secret
3
+ sidebar_icon: lock
4
+ description: Use the Secret component to display and manage API keys in your APIToGo application.
5
+ ---
6
+
7
+ import { Secret } from "@lukoweb/apitogo/ui/Secret";
8
+ import { Value } from "@lukoweb/apitogo/ui/Value";
9
+
10
+ The `Secret` component can be used to display secrets, typically API keys, in your APIToGo
11
+ application.
12
+
13
+ ## Import
14
+
15
+ ```tsx
16
+ import { Secret } from "@lukoweb/apitogo/ui/Secret";
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```tsx
22
+ <Secret
23
+ secret="pkcd_this-is-a-never-01K1DASDXXQDA9S6GKASKYAFSDH"
24
+ status="active"
25
+ preview={5}
26
+ onCopy={(secret) => {
27
+ console.log("Copied secret:", secret);
28
+ }}
29
+ onReveal={(revealed) => {
30
+ console.log("Revealed:", revealed);
31
+ }}
32
+ />
33
+ ```
34
+
35
+ <div className="flex flex-col gap-2">
36
+ <Secret
37
+ secret="pkcd_this-is-a-never-01K1DASDXXQDA9S6GKASKYAFSDH"
38
+ status="active"
39
+ className="max-w-fit"
40
+ />
41
+
42
+ <Secret
43
+ secret="pkcd_this-is-a-gonna-01K1DAFSDHAS9S6GE5KASKYSDXX"
44
+ status="expiring"
45
+ className="max-w-fit"
46
+ />
47
+
48
+ <Secret
49
+ secret="pkcd_this-is-a-give-01K1DAFSSDHOOASDD9S6KYGE5KAS"
50
+ status="expired"
51
+ className="max-w-fit"
52
+ />
53
+
54
+ <Secret
55
+ secret="pkcd_this-is-a-you-01K1DAGDN0NDDHXS7VBYGFME1SFSR"
56
+ status="revoked"
57
+ className="max-w-fit"
58
+ />
59
+
60
+ <Secret
61
+ secret="pkcd_this-is-a-you-01K1DAGDN0NDDHXS7VBYGFME1SFSR"
62
+ status="none"
63
+ className="max-w-fit"
64
+ />
65
+
66
+ <Secret secret="pkcd_this-is-a-up-01K1DAFSDHASDXXSQDA9S6GE5KASKY" className="max-w-fit" />
67
+
68
+ <div className="flex flex-col gap-0 max-w-fit not-prose">
69
+ <span className="text-sm font-medium">Client ID</span>
70
+ <Value
71
+ value="client-id-01985b58-d7af-71eb-a27e-b2062935ece4"
72
+ className="w-full"
73
+ />
74
+ <span className="text-sm font-medium">Client Secret</span>
75
+ <Secret
76
+ secret="pkcd_this-is-a-up-01K1DAFSDHASDXXSQDA9S6GE5KASKY"
77
+ />
78
+ </div>
79
+ </div>
@@ -0,0 +1,176 @@
1
+ ---
2
+ title: Select
3
+ sidebar_icon: chevron-down
4
+ ---
5
+
6
+ import {
7
+ Select,
8
+ SelectContent,
9
+ SelectGroup,
10
+ SelectItem,
11
+ SelectLabel,
12
+ SelectSeparator,
13
+ SelectTrigger,
14
+ SelectValue,
15
+ } from "@lukoweb/apitogo/ui/Select";
16
+ import { Label } from "@lukoweb/apitogo/ui/Label";
17
+
18
+ A select component built on Radix UI primitives for choosing from a list of options.
19
+
20
+ ## Import
21
+
22
+ <!-- prettier-ignore -->
23
+ ```tsx
24
+ import {
25
+ Select,
26
+ SelectContent,
27
+ SelectItem,
28
+ SelectTrigger,
29
+ SelectValue,
30
+ } from "@lukoweb/apitogo/ui/Select";
31
+ ```
32
+
33
+ ## Components
34
+
35
+ The Select component consists of several sub-components:
36
+
37
+ - `Select` - The main container (root)
38
+ - `SelectTrigger` - Button that opens the select menu
39
+ - `SelectValue` - Displays the selected value
40
+ - `SelectContent` - The dropdown content container
41
+ - `SelectItem` - Individual selectable option
42
+ - `SelectLabel` - Section labels within the dropdown
43
+ - `SelectSeparator` - Visual separator between groups
44
+ - `SelectGroup` - Groups related items together
45
+
46
+ ## Basic Usage
47
+
48
+ <Select>
49
+ <SelectTrigger className="w-[180px]">
50
+ <SelectValue placeholder="Select a fruit" />
51
+ </SelectTrigger>
52
+ <SelectContent>
53
+ <SelectItem value="apple">Apple</SelectItem>
54
+ <SelectItem value="banana">Banana</SelectItem>
55
+ <SelectItem value="blueberry">Blueberry</SelectItem>
56
+ <SelectItem value="grapes">Grapes</SelectItem>
57
+ <SelectItem value="pineapple">Pineapple</SelectItem>
58
+ </SelectContent>
59
+ </Select>
60
+
61
+ ```tsx
62
+ <Select>
63
+ <SelectTrigger className="w-[180px]">
64
+ <SelectValue placeholder="Select a fruit" />
65
+ </SelectTrigger>
66
+ <SelectContent>
67
+ <SelectItem value="apple">Apple</SelectItem>
68
+ <SelectItem value="banana">Banana</SelectItem>
69
+ <SelectItem value="blueberry">Blueberry</SelectItem>
70
+ <SelectItem value="grapes">Grapes</SelectItem>
71
+ <SelectItem value="pineapple">Pineapple</SelectItem>
72
+ </SelectContent>
73
+ </Select>
74
+ ```
75
+
76
+ ## With Labels and Groups
77
+
78
+ <Select>
79
+ <SelectTrigger className="w-[280px]">
80
+ <SelectValue placeholder="Select a timezone" />
81
+ </SelectTrigger>
82
+ <SelectContent>
83
+ <SelectGroup>
84
+ <SelectLabel>North America</SelectLabel>
85
+ <SelectItem value="est">Eastern Standard Time (EST)</SelectItem>
86
+ <SelectItem value="cst">Central Standard Time (CST)</SelectItem>
87
+ <SelectItem value="mst">Mountain Standard Time (MST)</SelectItem>
88
+ <SelectItem value="pst">Pacific Standard Time (PST)</SelectItem>
89
+ <SelectItem value="akst">Alaska Standard Time (AKST)</SelectItem>
90
+ <SelectItem value="hst">Hawaii Standard Time (HST)</SelectItem>
91
+ </SelectGroup>
92
+ <SelectSeparator />
93
+ <SelectGroup>
94
+ <SelectLabel>Europe & Africa</SelectLabel>
95
+ <SelectItem value="gmt">Greenwich Mean Time (GMT)</SelectItem>
96
+ <SelectItem value="cet">Central European Time (CET)</SelectItem>
97
+ <SelectItem value="eet">Eastern European Time (EET)</SelectItem>
98
+ <SelectItem value="west">Western European Summer Time (WEST)</SelectItem>
99
+ <SelectItem value="cat">Central Africa Time (CAT)</SelectItem>
100
+ <SelectItem value="eat">East Africa Time (EAT)</SelectItem>
101
+ </SelectGroup>
102
+ </SelectContent>
103
+ </Select>
104
+
105
+ ```tsx
106
+ <Select>
107
+ <SelectTrigger className="w-[280px]">
108
+ <SelectValue placeholder="Select a timezone" />
109
+ </SelectTrigger>
110
+ <SelectContent>
111
+ <SelectGroup>
112
+ <SelectLabel>North America</SelectLabel>
113
+ <SelectItem value="est">Eastern Standard Time (EST)</SelectItem>
114
+ <SelectItem value="cst">Central Standard Time (CST)</SelectItem>
115
+ <SelectItem value="mst">Mountain Standard Time (MST)</SelectItem>
116
+ <SelectItem value="pst">Pacific Standard Time (PST)</SelectItem>
117
+ <SelectItem value="akst">Alaska Standard Time (AKST)</SelectItem>
118
+ <SelectItem value="hst">Hawaii Standard Time (HST)</SelectItem>
119
+ </SelectGroup>
120
+ <SelectSeparator />
121
+ <SelectGroup>
122
+ <SelectLabel>Europe & Africa</SelectLabel>
123
+ <SelectItem value="gmt">Greenwich Mean Time (GMT)</SelectItem>
124
+ <SelectItem value="cet">Central European Time (CET)</SelectItem>
125
+ <SelectItem value="eet">Eastern European Time (EET)</SelectItem>
126
+ <SelectItem value="west">Western European Summer Time (WEST)</SelectItem>
127
+ <SelectItem value="cat">Central Africa Time (CAT)</SelectItem>
128
+ <SelectItem value="eat">East Africa Time (EAT)</SelectItem>
129
+ </SelectGroup>
130
+ </SelectContent>
131
+ </Select>
132
+ ```
133
+
134
+ ## With Label
135
+
136
+ <div className="grid w-full max-w-sm items-center gap-1.5">
137
+ <Label htmlFor="framework">Framework</Label>
138
+ <Select>
139
+ <SelectTrigger id="framework">
140
+ <SelectValue placeholder="Select" />
141
+ </SelectTrigger>
142
+ <SelectContent position="popper">
143
+ <SelectItem value="next">Next.js</SelectItem>
144
+ <SelectItem value="sveltekit">SvelteKit</SelectItem>
145
+ <SelectItem value="nuxt">Nuxt.js</SelectItem>
146
+ <SelectItem value="remix">Remix</SelectItem>
147
+ <SelectItem value="astro">Astro</SelectItem>
148
+ </SelectContent>
149
+ </Select>
150
+ </div>
151
+
152
+ ```tsx
153
+ <div className="grid w-full max-w-sm items-center gap-1.5">
154
+ <Label htmlFor="framework">Framework</Label>
155
+ <Select>
156
+ <SelectTrigger id="framework">
157
+ <SelectValue placeholder="Select" />
158
+ </SelectTrigger>
159
+ <SelectContent position="popper">
160
+ <SelectItem value="next">Next.js</SelectItem>
161
+ <SelectItem value="sveltekit">SvelteKit</SelectItem>
162
+ <SelectItem value="nuxt">Nuxt.js</SelectItem>
163
+ <SelectItem value="remix">Remix</SelectItem>
164
+ <SelectItem value="astro">Astro</SelectItem>
165
+ </SelectContent>
166
+ </Select>
167
+ </div>
168
+ ```
169
+
170
+ ## Features
171
+
172
+ - **Keyboard Navigation**: Full keyboard support for navigation and selection
173
+ - **Accessibility**: Proper ARIA attributes and screen reader support
174
+ - **Controlled/Uncontrolled**: Can be used with or without state management
175
+ - **Searchable**: Built-in search functionality when typing
176
+ - **Custom Positioning**: Flexible positioning options
@@ -0,0 +1,73 @@
1
+ ---
2
+ sidebar_label: shadcn/ui
3
+ sidebar_icon: puzzle
4
+ ---
5
+
6
+ All shadcn/ui components are available for direct import from their respective UI modules:
7
+
8
+ export const components = [
9
+ "Accordion",
10
+ "Alert",
11
+ "AspectRatio",
12
+ "Badge",
13
+ "Breadcrumb",
14
+ "Button",
15
+ "Card",
16
+ "Carousel",
17
+ "Checkbox",
18
+ "Collapsible",
19
+ "Command",
20
+ "Dialog",
21
+ "Drawer",
22
+ "DropdownMenu",
23
+ "Form",
24
+ "HoverCard",
25
+ "Input",
26
+ "Label",
27
+ "Pagination",
28
+ "Popover",
29
+ "Progress",
30
+ "RadioGroup",
31
+ "ScrollArea",
32
+ "Select",
33
+ "Skeleton",
34
+ "Slider",
35
+ "Switch",
36
+ "Tabs",
37
+ "Textarea",
38
+ "Toggle",
39
+ "ToggleGroup",
40
+ "Tooltip",
41
+ ];
42
+
43
+ # `shadcn/ui` components
44
+
45
+ We use a couple components from [shadcn/ui](https://ui.shadcn.com). To make them re-usable for and
46
+ use them in your project you can import them from `@lukoweb/apitogo/ui/*`.
47
+
48
+ For example:
49
+
50
+ ```tsx
51
+ import { Button } from "@lukoweb/apitogo/ui/Button";
52
+ ```
53
+
54
+ Following components are available:
55
+
56
+ <ul className="grid grid-cols-2 sm:grid-cols-3">
57
+ {components.map((comp) => {
58
+ const link = comp.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
59
+
60
+ return (
61
+ <li key={comp}>
62
+ <a
63
+ target="_blank"
64
+ href={`https://ui.shadcn.com/docs/components/${link}`}
65
+ >
66
+ {comp}
67
+ </a>
68
+ </li>
69
+ );
70
+
71
+ })}
72
+
73
+ </ul>