@lukoweb/apitogo 0.1.24 → 0.1.37

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,602 @@
1
+ ---
2
+ title: Syntax Highlight
3
+ sidebar_icon: code
4
+ ---
5
+
6
+ import { SyntaxHighlight } from "@lukoweb/apitogo/ui/SyntaxHighlight";
7
+ import { Callout } from "@lukoweb/apitogo/ui/Callout";
8
+
9
+ Add syntax highlighting to your code blocks with customizable styling and features. The component
10
+ offers extensive customization options including line numbers, copy buttons, language indicators,
11
+ and custom theming to match your brand. For simpler use cases, you can also use standard Markdown
12
+ code blocks as described in [Code Blocks](/docs/markdown/code-blocks).
13
+
14
+ :::tip
15
+
16
+ You can also use backticks to highlight code blocks in Markdown files, see
17
+ [Code Blocks](../markdown/code-blocks) for more information.
18
+
19
+ :::
20
+
21
+ ## Import
22
+
23
+ ```tsx
24
+ import { SyntaxHighlight } from "@lukoweb/apitogo/ui/SyntaxHighlight";
25
+ ```
26
+
27
+ ## Types
28
+
29
+ ```ts
30
+ type SyntaxHighlightProps = {
31
+ language?: string;
32
+ code?: string;
33
+ wrapLines?: boolean;
34
+ title?: string;
35
+ showCopy?: "hover" | "always" | "never";
36
+ showCopyText?: boolean;
37
+ children?: string;
38
+ showLanguageIndicator?: boolean;
39
+ className?: string;
40
+ showLineNumbers?: boolean;
41
+ };
42
+ ```
43
+
44
+ ## Usage
45
+
46
+ You can either use `children` or `code` prop to pass the code to the component.
47
+
48
+ ```tsx
49
+ <SyntaxHighlight language="typescript">
50
+ {`for (let i = 0; i < Infinity; i++) {
51
+ console.log(i);
52
+ }`}
53
+ </SyntaxHighlight>
54
+ ```
55
+
56
+ ## Result
57
+
58
+ <SyntaxHighlight language="typescript">
59
+ {`for (let i = 0; i < Infinity; i++) {
60
+ console.log(i);
61
+ }`}
62
+ </SyntaxHighlight>
63
+
64
+ ## Supported Languages
65
+
66
+ Here are examples for all supported languages:
67
+
68
+ ### TypeScript / JavaScript / TSX
69
+
70
+ ```typescript title="User.ts"
71
+ interface User {
72
+ name: string;
73
+ age: number;
74
+ }
75
+
76
+ const greet = (user: User): string => `Hello, ${user.name}!`;
77
+ ```
78
+
79
+ ```javascript title="fibonacci.js"
80
+ function fibonacci(n) {
81
+ if (n <= 1) return n;
82
+ return fibonacci(n - 1) + fibonacci(n - 2);
83
+ }
84
+
85
+ console.log(fibonacci(10));
86
+ ```
87
+
88
+ ```tsx title="App.tsx"
89
+ export const App = () => {
90
+ return <div>Hello, World!</div>;
91
+ };
92
+ ```
93
+
94
+ ### Markdown / MDX
95
+
96
+ ```markdown title="hello.md"
97
+ # Hello World
98
+
99
+ This is **bold** and _italic_ text.
100
+
101
+ - Item 1
102
+ - Item 2
103
+
104
+ [Link to APIToGo](https://apitogo.com)
105
+ ```
106
+
107
+ ```mdx title="welcome.mdx"
108
+ import { Button } from "./Button";
109
+
110
+ # Welcome to MDX
111
+
112
+ <Button onClick={() => alert("Hello!")}>Click me</Button>
113
+ ```
114
+
115
+ ### JSON / YAML / TOML
116
+
117
+ ```json title="package.json"
118
+ {
119
+ "name": "apitogo",
120
+ "version": "1.0.0",
121
+ "scripts": {
122
+ "dev": "vite",
123
+ "build": "vite build"
124
+ }
125
+ }
126
+ ```
127
+
128
+ ```yaml title="package.yml"
129
+ name: apitogo
130
+ version: 1.0.0
131
+ scripts:
132
+ dev: vite
133
+ build: vite build
134
+ ```
135
+
136
+ ```toml title="package.toml"
137
+ [package]
138
+ name = "apitogo"
139
+ version = "1.0.0"
140
+
141
+ [dependencies]
142
+ react = "^19.0.0"
143
+ ```
144
+
145
+ ### Shell / Bash / Terminal
146
+
147
+ ```bash title="build.sh"
148
+ #!/bin/bash
149
+
150
+ # Install and build
151
+ npm install
152
+
153
+ if [ "$NODE_ENV" = "production" ]; then
154
+ npm run build
155
+ else
156
+ npm run dev
157
+ fi
158
+ ```
159
+
160
+ ```ansi title=ANSI
161
+ $ pnpm run build
162
+
163
+ > apitogo@1.0.0 build
164
+
165
+ vite v7.0.5 building for production...
166
+ ✓ 34 modules transformed.
167
+ dist/index.html 0.46 kB │ gzip: 0.30 kB
168
+ dist/assets/index-4sK2hL.css 24.67 kB │ gzip: 4.72 kB
169
+ dist/assets/index-B1tPwS.js 143.18 kB │ gzip: 46.13 kB
170
+ ✓ built in 1.23s
171
+ ```
172
+
173
+ ### GraphQL
174
+
175
+ ```graphql title="schema.graphql"
176
+ type User {
177
+ id: ID!
178
+ name: String!
179
+ email: String!
180
+ }
181
+
182
+ type Query {
183
+ user(id: ID!): User
184
+ users: [User!]!
185
+ }
186
+
187
+ type Mutation {
188
+ createUser(name: String!, email: String!): User!
189
+ }
190
+ ```
191
+
192
+ ### Python
193
+
194
+ ```python title="data_processor.py"
195
+ import asyncio
196
+ from typing import List, Optional
197
+
198
+ class DataProcessor:
199
+ def __init__(self, name: str):
200
+ self.name = name
201
+
202
+ async def process_items(self, items: List[str]) -> dict:
203
+ results = [await self._process(item) for item in items]
204
+ return {"processed": len(results), "items": results}
205
+ ```
206
+
207
+ ### C#
208
+
209
+ ```csharp title="user_service.cs"
210
+ using System;
211
+ using System.Linq;
212
+
213
+ public class UserService {
214
+ private readonly List<User> _users = new();
215
+
216
+ public async Task<User?> GetUserAsync(int id) {
217
+ await Task.Delay(100);
218
+ return _users.FirstOrDefault(u => u.Id == id);
219
+ }
220
+ }
221
+ ```
222
+
223
+ ### Rust
224
+
225
+ ```rust title="main.rs"
226
+ use std::collections::HashMap;
227
+
228
+ fn main() {
229
+ let mut scores = HashMap::new();
230
+ scores.insert(String::from("Blue"), 10);
231
+ scores.insert(String::from("Red"), 50);
232
+
233
+ println!("Team scores: {:?}", scores);
234
+ }
235
+ ```
236
+
237
+ ### Ruby
238
+
239
+ ```ruby title="todo_list.rb"
240
+ class TodoList
241
+ attr_reader :name, :items
242
+
243
+ def initialize(name)
244
+ @name = name
245
+ @items = []
246
+ end
247
+
248
+ def add_item(description)
249
+ @items << { description: description, completed: false }
250
+ end
251
+ end
252
+ ```
253
+
254
+ ### PHP
255
+
256
+ ```php title="user.php"
257
+ <?php
258
+ class User {
259
+ public function __construct(
260
+ public readonly int $id,
261
+ public readonly string $name,
262
+ public readonly string $email
263
+ ) {}
264
+
265
+ public function getDisplayName(): string {
266
+ return ucfirst($this->name);
267
+ }
268
+ }
269
+ ```
270
+
271
+ ### HTML
272
+
273
+ <!-- prettier-ignore -->
274
+ ```html title="index.html"
275
+ <!DOCTYPE html>
276
+ <html lang="en">
277
+ <head>
278
+ <meta charset="UTF-8" />
279
+ <title>APIToGo Example</title>
280
+ </head>
281
+ <body>
282
+ <h1>Welcome to APIToGo</h1>
283
+ <p>Build beautiful documentation sites with ease.</p>
284
+ <p>
285
+ Nunc nec ornare libero. Sed ultricies lorem vitae enim vestibulum, at posuere augue ullamcorper.
286
+ </p>
287
+ </body>
288
+ </html>
289
+ ```
290
+
291
+ ### CSS
292
+
293
+ ```css title="styles.css"
294
+ .button {
295
+ background-color: #007bff;
296
+ color: white;
297
+ padding: 0.5rem 1rem;
298
+ border: none;
299
+ border-radius: 0.25rem;
300
+ cursor: pointer;
301
+ }
302
+
303
+ .button:hover {
304
+ background-color: #0056b3;
305
+ }
306
+ ```
307
+
308
+ ### Java
309
+
310
+ ```java title="user_service.java"
311
+ import java.util.List;
312
+ import java.util.stream.Collectors;
313
+
314
+ public class UserService {
315
+ private List<User> users;
316
+
317
+ public List<User> getActiveUsers() {
318
+ return users.stream()
319
+ .filter(User::isActive)
320
+ .collect(Collectors.toList());
321
+ }
322
+ }
323
+ ```
324
+
325
+ ### Go
326
+
327
+ ```go title="main.go"
328
+ package main
329
+
330
+ import "fmt"
331
+
332
+ type User struct {
333
+ ID int
334
+ Name string
335
+ Email string
336
+ }
337
+
338
+ func main() {
339
+ user := User{ID: 1, Name: "Alice", Email: "alice@example.com"}
340
+ fmt.Printf("User: %+v\n", user)
341
+ }
342
+ ```
343
+
344
+ ### Kotlin
345
+
346
+ ```kotlin title="user.kt"
347
+ data class User(val id: Long, val name: String, val email: String)
348
+
349
+ class UserRepository {
350
+ private val users = mutableListOf<User>()
351
+
352
+ fun addUser(user: User) {
353
+ users.add(user)
354
+ }
355
+
356
+ fun findById(id: Long): User? = users.find { it.id == id }
357
+ }
358
+ ```
359
+
360
+ ### Objective-C
361
+
362
+ ```objc title="user.m"
363
+ #import <Foundation/Foundation.h>
364
+
365
+ @interface User : NSObject
366
+ @property (nonatomic, strong) NSString *name;
367
+ @property (nonatomic, strong) NSString *email;
368
+ @property (nonatomic, assign) NSInteger userId;
369
+
370
+ - (instancetype)initWithName:(NSString *)name
371
+ email:(NSString *)email
372
+ userId:(NSInteger)userId;
373
+ @end
374
+ ```
375
+
376
+ ### Swift
377
+
378
+ ```swift title="user.swift"
379
+ import Foundation
380
+
381
+ struct User: Codable {
382
+ let id: UUID
383
+ let name: String
384
+ let email: String
385
+
386
+ init(name: String, email: String) {
387
+ self.id = UUID()
388
+ self.name = name
389
+ self.email = email
390
+ }
391
+ }
392
+ ```
393
+
394
+ ### XML
395
+
396
+ ```xml title="app.xml"
397
+ <?xml version="1.0" encoding="UTF-8"?>
398
+ <configuration>
399
+ <appSettings>
400
+ <add key="ApplicationName" value="APIToGo" />
401
+ <add key="Version" value="1.0.0" />
402
+ </appSettings>
403
+ <modules>
404
+ <module name="Auth" enabled="true" />
405
+ <module name="Logging" enabled="true" />
406
+ </modules>
407
+ </configuration>
408
+ ```
409
+
410
+ ### C
411
+
412
+ ```c title="hello.c"
413
+ #include <stdio.h>
414
+ #include <stdlib.h>
415
+
416
+ typedef struct {
417
+ int id;
418
+ char name[50];
419
+ } User;
420
+
421
+ int main() {
422
+ User user = {1, "Alice"};
423
+ printf("User: %s (ID: %d)\n", user.name, user.id);
424
+ return 0;
425
+ }
426
+ ```
427
+
428
+ ### C++
429
+
430
+ ```cpp title="user.cpp"
431
+ #include <iostream>
432
+ #include <string>
433
+ #include <vector>
434
+
435
+ class User {
436
+ private:
437
+ int id;
438
+ std::string name;
439
+
440
+ public:
441
+ User(int id, std::string name) : id(id), name(name) {}
442
+
443
+ void display() const {
444
+ std::cout << "User: " << name << " (ID: " << id << ")" << std::endl;
445
+ }
446
+ };
447
+
448
+ int main() {
449
+ User user(1, "Alice");
450
+ user.display();
451
+ return 0;
452
+ }
453
+ ```
454
+
455
+ ### Zig
456
+
457
+ ```zig title="main.zig"
458
+ const std = @import("std");
459
+
460
+ const User = struct {
461
+ id: u32,
462
+ name: []const u8,
463
+
464
+ pub fn display(self: User) void {
465
+ std.debug.print("User: {s} (ID: {})\n", .{ self.name, self.id });
466
+ }
467
+ };
468
+
469
+ pub fn main() !void {
470
+ const user = User{ .id = 1, .name = "Alice" };
471
+ user.display();
472
+ }
473
+ ```
474
+
475
+ ### Scala
476
+
477
+ ```scala title="User.scala"
478
+ case class User(id: Int, name: String, email: String)
479
+
480
+ object UserRepository {
481
+ private var users = List[User]()
482
+
483
+ def addUser(user: User): Unit = {
484
+ users = user :: users
485
+ }
486
+
487
+ def findById(id: Int): Option[User] = {
488
+ users.find(_.id == id)
489
+ }
490
+ }
491
+ ```
492
+
493
+ ### Dart
494
+
495
+ ```dart title="user.dart"
496
+ class User {
497
+ final int id;
498
+ final String name;
499
+ final String email;
500
+
501
+ User({required this.id, required this.name, required this.email});
502
+
503
+ factory User.fromJson(Map<String, dynamic> json) {
504
+ return User(
505
+ id: json['id'],
506
+ name: json['name'],
507
+ email: json['email'],
508
+ );
509
+ }
510
+
511
+ Map<String, dynamic> toJson() => {
512
+ 'id': id,
513
+ 'name': name,
514
+ 'email': email,
515
+ };
516
+ }
517
+ ```
518
+
519
+ ### Elixir
520
+
521
+ ```elixir title="user.ex"
522
+ defmodule User do
523
+ defstruct [:id, :name, :email]
524
+
525
+ def new(id, name, email) do
526
+ %User{id: id, name: name, email: email}
527
+ end
528
+
529
+ def display(%User{name: name, id: id}) do
530
+ IO.puts("User: #{name} (ID: #{id})")
531
+ end
532
+ end
533
+
534
+ # Usage
535
+ user = User.new(1, "Alice", "alice@example.com")
536
+ User.display(user)
537
+ ```
538
+
539
+ ### OCaml
540
+
541
+ ```ocaml title="user.ml"
542
+ type user = {
543
+ id : int;
544
+ name : string;
545
+ email : string;
546
+ }
547
+
548
+ let create_user id name email =
549
+ { id; name; email }
550
+
551
+ let display_user user =
552
+ Printf.printf "User: %s (ID: %d)\n" user.name user.id
553
+
554
+ let () =
555
+ let user = create_user 1 "Alice" "alice@example.com" in
556
+ display_user user
557
+ ```
558
+
559
+ ### Common Lisp
560
+
561
+ ```lisp title="user.lisp"
562
+ (defstruct user
563
+ id
564
+ name
565
+ email)
566
+
567
+ (defun create-user (id name email)
568
+ (make-user :id id :name name :email email))
569
+
570
+ (defun display-user (user)
571
+ (format t "User: ~A (ID: ~A)~%"
572
+ (user-name user)
573
+ (user-id user)))
574
+
575
+ ;; Usage
576
+ (let ((user (create-user 1 "Alice" "alice@example.com")))
577
+ (display-user user))
578
+ ```
579
+
580
+ ### PowerShell
581
+
582
+ ```powershell title="user.ps1"
583
+ class User {
584
+ [int]$Id
585
+ [string]$Name
586
+ [string]$Email
587
+
588
+ User([int]$id, [string]$name, [string]$email) {
589
+ $this.Id = $id
590
+ $this.Name = $name
591
+ $this.Email = $email
592
+ }
593
+
594
+ [void]Display() {
595
+ Write-Host "User: $($this.Name) (ID: $($this.Id))"
596
+ }
597
+ }
598
+
599
+ # Usage
600
+ $user = [User]::new(1, "Alice", "alice@example.com")
601
+ $user.Display()
602
+ ```
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: Textarea
3
+ sidebar_icon: type
4
+ ---
5
+
6
+ import { Textarea } from "@lukoweb/apitogo/ui/Textarea";
7
+ import { Label } from "@lukoweb/apitogo/ui/Label";
8
+
9
+ A multiline text input component for forms and user input.
10
+
11
+ ## Import
12
+
13
+ ```tsx
14
+ import { Textarea } from "@lukoweb/apitogo/ui/Textarea";
15
+ ```
16
+
17
+ ## Basic Usage
18
+
19
+ <Textarea placeholder="Type your message here." />
20
+
21
+ ```tsx
22
+ <Textarea placeholder="Type your message here." />
23
+ ```
24
+
25
+ ## With Label
26
+
27
+ <div className="grid w-full gap-1.5">
28
+ <Label htmlFor="message">Your message</Label>
29
+ <Textarea placeholder="Type your message here." id="message" />
30
+ </div>
31
+
32
+ ```tsx
33
+ <div className="grid w-full gap-1.5">
34
+ <Label htmlFor="message">Your message</Label>
35
+ <Textarea placeholder="Type your message here." id="message" />
36
+ </div>
37
+ ```
38
+
39
+ ## With Text
40
+
41
+ <div className="grid w-full gap-1.5">
42
+ <Label htmlFor="message-2">Your message</Label>
43
+ <Textarea placeholder="Type your message here." id="message-2" />
44
+ <p className="text-sm text-muted-foreground">Your message will be copied to the support team.</p>
45
+ </div>
46
+
47
+ ```tsx
48
+ <div className="grid w-full gap-1.5">
49
+ <Label htmlFor="message-2">Your message</Label>
50
+ <Textarea placeholder="Type your message here." id="message-2" />
51
+ <p className="text-sm text-muted-foreground">Your message will be copied to the support team.</p>
52
+ </div>
53
+ ```
54
+
55
+ ## Disabled State
56
+
57
+ <Textarea disabled placeholder="Disabled textarea" />
58
+
59
+ ```tsx
60
+ <Textarea disabled placeholder="Disabled textarea" />
61
+ ```
62
+
63
+ ## Custom Height
64
+
65
+ <Textarea className="min-h-[150px]" placeholder="Taller textarea" />
66
+
67
+ ```tsx
68
+ <Textarea className="min-h-[150px]" placeholder="Taller textarea" />
69
+ ```
70
+
71
+ ## Custom Styling
72
+
73
+ The Textarea component accepts all standard textarea HTML attributes and can be customized with
74
+ additional className:
75
+
76
+ ```tsx
77
+ <Textarea className="resize-none" placeholder="Non-resizable textarea" />
78
+ ```