zudoku 0.61.5 → 0.63.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 (403) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/cli.d.ts +9 -0
  3. package/dist/cli/cli.js +4 -10
  4. package/dist/cli/cli.js.map +1 -1
  5. package/dist/cli/common/version-check.d.ts +2 -0
  6. package/dist/cli/common/version-check.js +58 -0
  7. package/dist/cli/common/version-check.js.map +1 -0
  8. package/dist/config/config.d.ts +3 -0
  9. package/dist/config/validators/InputNavigationSchema.d.ts +64 -4
  10. package/dist/config/validators/icon-types.d.ts +1 -1
  11. package/dist/config/validators/icon-types.js +15 -0
  12. package/dist/config/validators/icon-types.js.map +1 -1
  13. package/dist/config/validators/validate.d.ts +39 -9
  14. package/dist/config/validators/validate.js +23 -0
  15. package/dist/config/validators/validate.js.map +1 -1
  16. package/dist/flat-config.d.ts +22 -2
  17. package/dist/lib/assets/language-icons/c.d.ts +3 -0
  18. package/dist/lib/assets/language-icons/c.js +4 -0
  19. package/dist/lib/assets/language-icons/c.js.map +1 -0
  20. package/dist/lib/assets/language-icons/commonlisp.d.ts +3 -0
  21. package/dist/lib/assets/language-icons/commonlisp.js +4 -0
  22. package/dist/lib/assets/language-icons/commonlisp.js.map +1 -0
  23. package/dist/lib/assets/language-icons/cpp.d.ts +3 -0
  24. package/dist/lib/assets/language-icons/cpp.js +4 -0
  25. package/dist/lib/assets/language-icons/cpp.js.map +1 -0
  26. package/dist/lib/assets/language-icons/dart.d.ts +3 -0
  27. package/dist/lib/assets/language-icons/dart.js +4 -0
  28. package/dist/lib/assets/language-icons/dart.js.map +1 -0
  29. package/dist/lib/assets/language-icons/elixir.d.ts +3 -0
  30. package/dist/lib/assets/language-icons/elixir.js +4 -0
  31. package/dist/lib/assets/language-icons/elixir.js.map +1 -0
  32. package/dist/lib/assets/language-icons/ocaml.d.ts +3 -0
  33. package/dist/lib/assets/language-icons/ocaml.js +4 -0
  34. package/dist/lib/assets/language-icons/ocaml.js.map +1 -0
  35. package/dist/lib/assets/language-icons/powershell.d.ts +3 -0
  36. package/dist/lib/assets/language-icons/powershell.js +4 -0
  37. package/dist/lib/assets/language-icons/powershell.js.map +1 -0
  38. package/dist/lib/assets/language-icons/scala.d.ts +3 -0
  39. package/dist/lib/assets/language-icons/scala.js +4 -0
  40. package/dist/lib/assets/language-icons/scala.js.map +1 -0
  41. package/dist/lib/assets/language-icons/zig.d.ts +3 -0
  42. package/dist/lib/assets/language-icons/zig.js +4 -0
  43. package/dist/lib/assets/language-icons/zig.js.map +1 -0
  44. package/dist/lib/authentication/providers/auth0.js +7 -3
  45. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  46. package/dist/lib/components/BuildCheck.js +2 -2
  47. package/dist/lib/components/BuildCheck.js.map +1 -1
  48. package/dist/lib/components/Heading.js +1 -5
  49. package/dist/lib/components/Heading.js.map +1 -1
  50. package/dist/lib/components/LanguageIcon.js +45 -0
  51. package/dist/lib/components/LanguageIcon.js.map +1 -1
  52. package/dist/lib/components/Main.js +1 -1
  53. package/dist/lib/components/Main.js.map +1 -1
  54. package/dist/lib/components/cache.d.ts +3 -1
  55. package/dist/lib/components/cache.js +3 -5
  56. package/dist/lib/components/cache.js.map +1 -1
  57. package/dist/lib/components/context/ZudokuContext.js +10 -2
  58. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  59. package/dist/lib/components/index.d.ts +1 -2
  60. package/dist/lib/hooks/index.d.ts +1 -1
  61. package/dist/lib/oas/graphql/index.js +17 -0
  62. package/dist/lib/oas/graphql/index.js.map +1 -1
  63. package/dist/lib/plugins/markdown/MdxPage.js +26 -3
  64. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  65. package/dist/lib/plugins/markdown/assets/ChatGPTLogo.d.ts +2 -0
  66. package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js +3 -0
  67. package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js.map +1 -0
  68. package/dist/lib/plugins/markdown/assets/ClaudeLogo.d.ts +2 -0
  69. package/dist/lib/plugins/markdown/assets/ClaudeLogo.js +3 -0
  70. package/dist/lib/plugins/markdown/assets/ClaudeLogo.js.map +1 -0
  71. package/dist/lib/plugins/markdown/index.d.ts +2 -1
  72. package/dist/lib/plugins/markdown/index.js.map +1 -1
  73. package/dist/lib/plugins/openapi/MCPEndpoint.js +9 -18
  74. package/dist/lib/plugins/openapi/MCPEndpoint.js.map +1 -1
  75. package/dist/lib/plugins/openapi/OperationList.js +8 -3
  76. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  77. package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -2
  78. package/dist/lib/plugins/openapi/OperationListItem.js +6 -3
  79. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  80. package/dist/lib/plugins/openapi/Sidecar.d.ts +2 -1
  81. package/dist/lib/plugins/openapi/Sidecar.js +6 -9
  82. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  83. package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
  84. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  85. package/dist/lib/plugins/openapi/graphql/gql.js +2 -1
  86. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  87. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +8 -2
  88. package/dist/lib/plugins/openapi/graphql/graphql.js +8 -0
  89. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  90. package/dist/lib/plugins/openapi/index.js +1 -1
  91. package/dist/lib/plugins/openapi/index.js.map +1 -1
  92. package/dist/lib/plugins/openapi/interfaces.d.ts +1 -0
  93. package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
  94. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  95. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  96. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  97. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +15 -3
  98. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  99. package/dist/lib/shiki.js +9 -0
  100. package/dist/lib/shiki.js.map +1 -1
  101. package/dist/lib/ui/Carousel.js.map +1 -1
  102. package/dist/lib/ui/Dialog.d.ts +12 -18
  103. package/dist/lib/ui/Dialog.js +30 -17
  104. package/dist/lib/ui/Dialog.js.map +1 -1
  105. package/dist/lib/ui/Secret.d.ts +6 -0
  106. package/dist/lib/ui/Secret.js +7 -4
  107. package/dist/lib/ui/Secret.js.map +1 -1
  108. package/dist/lib/util/pastellize.js +4 -4
  109. package/dist/lib/util/pastellize.js.map +1 -1
  110. package/dist/vite/api/SchemaManager.js.map +1 -1
  111. package/dist/vite/llms.d.ts +12 -0
  112. package/dist/vite/llms.js +66 -0
  113. package/dist/vite/llms.js.map +1 -0
  114. package/dist/vite/plugin-api.js +1 -1
  115. package/dist/vite/plugin-api.js.map +1 -1
  116. package/dist/vite/plugin-docs.d.ts +9 -0
  117. package/dist/vite/plugin-docs.js +67 -48
  118. package/dist/vite/plugin-docs.js.map +1 -1
  119. package/dist/vite/plugin-markdown-export.d.ts +21 -0
  120. package/dist/vite/plugin-markdown-export.js +139 -0
  121. package/dist/vite/plugin-markdown-export.js.map +1 -0
  122. package/dist/vite/plugin-mdx.d.ts +1 -1
  123. package/dist/vite/plugin-mdx.js +5 -1
  124. package/dist/vite/plugin-mdx.js.map +1 -1
  125. package/dist/vite/plugin-navigation.js +4 -0
  126. package/dist/vite/plugin-navigation.js.map +1 -1
  127. package/dist/vite/plugin.js +2 -0
  128. package/dist/vite/plugin.js.map +1 -1
  129. package/dist/vite/prerender/prerender.js +30 -0
  130. package/dist/vite/prerender/prerender.js.map +1 -1
  131. package/lib/{Button-DTDRi4CT.js → Button-DmS4u8Lj.js} +2 -2
  132. package/lib/{Button-DTDRi4CT.js.map → Button-DmS4u8Lj.js.map} +1 -1
  133. package/lib/{Card-hTy9PAnh.js → Card-KFniaZn5.js} +2 -2
  134. package/lib/{Card-hTy9PAnh.js.map → Card-KFniaZn5.js.map} +1 -1
  135. package/lib/{CategoryHeading-BGCNu3VK.js → CategoryHeading-DhmodDcq.js} +2 -2
  136. package/lib/{CategoryHeading-BGCNu3VK.js.map → CategoryHeading-DhmodDcq.js.map} +1 -1
  137. package/lib/CodeBlock-CanTUJLl.js +221 -0
  138. package/lib/CodeBlock-CanTUJLl.js.map +1 -0
  139. package/lib/{Command-TEBTONf1.js → Command-CUcrW3qs.js} +3 -3
  140. package/lib/{Command-TEBTONf1.js.map → Command-CUcrW3qs.js.map} +1 -1
  141. package/lib/Dialog-BQciPiHN.js +144 -0
  142. package/lib/Dialog-BQciPiHN.js.map +1 -0
  143. package/lib/{Drawer-DM9wJUC6.js → Drawer-Ci7XwhqT.js} +2 -2
  144. package/lib/Drawer-Ci7XwhqT.js.map +1 -0
  145. package/lib/DropdownMenu-BZ2NKQ3K.js +126 -0
  146. package/lib/DropdownMenu-BZ2NKQ3K.js.map +1 -0
  147. package/lib/{ErrorAlert-xpVkFS_n.js → ErrorAlert-VBJ8aHH7.js} +100 -103
  148. package/lib/ErrorAlert-VBJ8aHH7.js.map +1 -0
  149. package/lib/MdxPage-DFRNwSsc.js +239 -0
  150. package/lib/MdxPage-DFRNwSsc.js.map +1 -0
  151. package/lib/{OAuthErrorPage-DCjFngGS.js → OAuthErrorPage-DJUOdr6Q.js} +7 -7
  152. package/lib/{OAuthErrorPage-DCjFngGS.js.map → OAuthErrorPage-DJUOdr6Q.js.map} +1 -1
  153. package/lib/{OasProvider-DH82Y-KM.js → OasProvider-D2NYAaBN.js} +3 -3
  154. package/lib/{OasProvider-DH82Y-KM.js.map → OasProvider-D2NYAaBN.js.map} +1 -1
  155. package/lib/{OperationList-Dr87uHqG.js → OperationList-DmXCI4NU.js} +1848 -1853
  156. package/lib/OperationList-DmXCI4NU.js.map +1 -0
  157. package/lib/{Pagination-Cdi_qiXc.js → Pagination-CT4VUR6u.js} +3 -3
  158. package/lib/{Pagination-Cdi_qiXc.js.map → Pagination-CT4VUR6u.js.map} +1 -1
  159. package/lib/{RouteGuard-dji1UEYe.js → RouteGuard-Bg0Lu0OU.js} +5 -5
  160. package/lib/{RouteGuard-dji1UEYe.js.map → RouteGuard-Bg0Lu0OU.js.map} +1 -1
  161. package/lib/{RouterError-D1I15Qyy.js → RouterError-fm21cqlj.js} +4 -4
  162. package/lib/{RouterError-D1I15Qyy.js.map → RouterError-fm21cqlj.js.map} +1 -1
  163. package/lib/{SchemaList-07lprC0m.js → SchemaList-uElsscMN.js} +10 -10
  164. package/lib/{SchemaList-07lprC0m.js.map → SchemaList-uElsscMN.js.map} +1 -1
  165. package/lib/{SchemaView-m0NDK2i0.js → SchemaView-CNQ3VAbI.js} +5 -5
  166. package/lib/{SchemaView-m0NDK2i0.js.map → SchemaView-CNQ3VAbI.js.map} +1 -1
  167. package/lib/Select-CPoGZU_V.js +372 -0
  168. package/lib/Select-CPoGZU_V.js.map +1 -0
  169. package/lib/{SignUp-C-YP_Rxi.js → SignUp-BraHuRN_.js} +9 -9
  170. package/lib/{SignUp-C-YP_Rxi.js.map → SignUp-BraHuRN_.js.map} +1 -1
  171. package/lib/{Spinner-Cf6E803I.js → Spinner-CI6bRyZw.js} +2 -2
  172. package/lib/{Spinner-Cf6E803I.js.map → Spinner-CI6bRyZw.js.map} +1 -1
  173. package/lib/{SyntaxHighlight-CPF64UHi.js → SyntaxHighlight-B0laqAqK.js} +6 -6
  174. package/lib/{SyntaxHighlight-CPF64UHi.js.map → SyntaxHighlight-B0laqAqK.js.map} +1 -1
  175. package/lib/{Toc-Cf5UojVb.js → Toc-KzXCRqrX.js} +3 -3
  176. package/lib/{Toc-Cf5UojVb.js.map → Toc-KzXCRqrX.js.map} +1 -1
  177. package/lib/ZudokuContext-BXTZApgy.js +1506 -0
  178. package/lib/ZudokuContext-BXTZApgy.js.map +1 -0
  179. package/lib/c-B-NUhs61.js +46 -0
  180. package/lib/c-B-NUhs61.js.map +1 -0
  181. package/lib/chunk-PVWAREVJ-BO6B-RAk.js.map +1 -1
  182. package/lib/{circular-ga83n0Za.js → circular-BWT7_Ahq.js} +30 -30
  183. package/lib/{circular-ga83n0Za.js.map → circular-BWT7_Ahq.js.map} +1 -1
  184. package/lib/commonlisp-De080z23.js +28 -0
  185. package/lib/commonlisp-De080z23.js.map +1 -0
  186. package/lib/cpp-79Paht7T.js +53 -0
  187. package/lib/cpp-79Paht7T.js.map +1 -0
  188. package/lib/{createServer-DL1AYSpR.js → createServer-zhJZSgor.js} +3225 -3165
  189. package/lib/createServer-zhJZSgor.js.map +1 -0
  190. package/lib/{csharp-rrJEDRrV.js → csharp-D8MIL50B.js} +2 -2
  191. package/lib/{csharp-rrJEDRrV.js.map → csharp-D8MIL50B.js.map} +1 -1
  192. package/lib/{css-Dpk9bCql.js → css-Bt6hr1td.js} +2 -2
  193. package/lib/{css-Dpk9bCql.js.map → css-Bt6hr1td.js.map} +1 -1
  194. package/lib/dart-B0vy1jWB.js +60 -0
  195. package/lib/dart-B0vy1jWB.js.map +1 -0
  196. package/lib/elixir-Ds8r0sF8.js +25 -0
  197. package/lib/elixir-Ds8r0sF8.js.map +1 -0
  198. package/lib/{errors-ouIp07AW.js → errors-XqO6MsfU.js} +3 -3
  199. package/lib/{errors-ouIp07AW.js.map → errors-XqO6MsfU.js.map} +1 -1
  200. package/lib/{go-D8SJIQ0Z.js → go-D2VsmIOS.js} +2 -2
  201. package/lib/{go-D8SJIQ0Z.js.map → go-D2VsmIOS.js.map} +1 -1
  202. package/lib/{graphql-aeVKJNa2.js → graphql-BtA6M4m5.js} +2 -2
  203. package/lib/{graphql-aeVKJNa2.js.map → graphql-BtA6M4m5.js.map} +1 -1
  204. package/lib/hook-CAebs2rv.js +31 -0
  205. package/lib/hook-CAebs2rv.js.map +1 -0
  206. package/lib/{html-D_7om-nA.js → html-MGnI2uzP.js} +2 -2
  207. package/lib/{html-D_7om-nA.js.map → html-MGnI2uzP.js.map} +1 -1
  208. package/lib/{index-CVfG8Pb4.js → index-BPSpOxTK.js} +26 -26
  209. package/lib/index-BPSpOxTK.js.map +1 -0
  210. package/lib/{index-DhL3LhWV.js → index-C5L4favO.js} +166 -50
  211. package/lib/index-C5L4favO.js.map +1 -0
  212. package/lib/index-CrcNWbel.js.map +1 -1
  213. package/lib/{index-DQ8kWcE8.js → index-D8Btv4uT.js} +723 -811
  214. package/lib/index-D8Btv4uT.js.map +1 -0
  215. package/lib/index.esm-BYObtETB.js +1294 -0
  216. package/lib/index.esm-BYObtETB.js.map +1 -0
  217. package/lib/index.esm-BnYHxCYC.js.map +1 -1
  218. package/lib/{java-DUh-EL8n.js → java-CVLzHfb1.js} +2 -2
  219. package/lib/{java-DUh-EL8n.js.map → java-CVLzHfb1.js.map} +1 -1
  220. package/lib/{javascript-CrY8dcGu.js → javascript-CcmIpL4G.js} +2 -2
  221. package/lib/{javascript-CrY8dcGu.js.map → javascript-CcmIpL4G.js.map} +1 -1
  222. package/lib/{json-DLK2_sdf.js → json-4AyP4uiY.js} +2 -2
  223. package/lib/{json-DLK2_sdf.js.map → json-4AyP4uiY.js.map} +1 -1
  224. package/lib/{jsx-runtime-DywqP_6a.js → jsx-runtime-BzflLqGi.js} +109 -111
  225. package/lib/jsx-runtime-BzflLqGi.js.map +1 -0
  226. package/lib/{kotlin-rJMOGl7D.js → kotlin-v2plddBQ.js} +2 -2
  227. package/lib/{kotlin-rJMOGl7D.js.map → kotlin-v2plddBQ.js.map} +1 -1
  228. package/lib/{markdown-BD9bIU5J.js → markdown-DYGWCmGQ.js} +2 -2
  229. package/lib/{markdown-BD9bIU5J.js.map → markdown-DYGWCmGQ.js.map} +1 -1
  230. package/lib/{mdx-G25UCvf3.js → mdx-CHwYvXd4.js} +2 -2
  231. package/lib/{mdx-G25UCvf3.js.map → mdx-CHwYvXd4.js.map} +1 -1
  232. package/lib/{mutation-De-1gXxl.js → mutation-CdGPxHNX.js} +2 -2
  233. package/lib/{mutation-De-1gXxl.js.map → mutation-CdGPxHNX.js.map} +1 -1
  234. package/lib/{objectivec-DDpj0aWX.js → objectivec-HZY8shkd.js} +2 -2
  235. package/lib/{objectivec-DDpj0aWX.js.map → objectivec-HZY8shkd.js.map} +1 -1
  236. package/lib/ocaml-DqsdDdwb.js +52 -0
  237. package/lib/ocaml-DqsdDdwb.js.map +1 -0
  238. package/lib/{php-BeG18bSy.js → php-rQXzo7K_.js} +2 -2
  239. package/lib/{php-BeG18bSy.js.map → php-rQXzo7K_.js.map} +1 -1
  240. package/lib/powershell-CQje9pm1.js +39 -0
  241. package/lib/powershell-CQje9pm1.js.map +1 -0
  242. package/lib/{python-BaF2byD-.js → python-QIQAE5Ei.js} +2 -2
  243. package/lib/{python-BaF2byD-.js.map → python-QIQAE5Ei.js.map} +1 -1
  244. package/lib/{react-CQvDN20M.js → react-DHpVpxRv.js} +2 -2
  245. package/lib/{react-CQvDN20M.js.map → react-DHpVpxRv.js.map} +1 -1
  246. package/lib/{ruby-CmxRVHMR.js → ruby-B2dU8Ny5.js} +2 -2
  247. package/lib/{ruby-CmxRVHMR.js.map → ruby-B2dU8Ny5.js.map} +1 -1
  248. package/lib/{rust-IfSC62c5.js → rust-DYnLHAi2.js} +2 -2
  249. package/lib/{rust-IfSC62c5.js.map → rust-DYnLHAi2.js.map} +1 -1
  250. package/lib/scala-CeKInBR8.js +25 -0
  251. package/lib/scala-CeKInBR8.js.map +1 -0
  252. package/lib/{shell-BFu0M6m4.js → shell-HUv9oVtp.js} +2 -2
  253. package/lib/{shell-BFu0M6m4.js.map → shell-HUv9oVtp.js.map} +1 -1
  254. package/lib/{swift-DckbsN4v.js → swift-B4z6ig1Z.js} +2 -2
  255. package/lib/{swift-DckbsN4v.js.map → swift-B4z6ig1Z.js.map} +1 -1
  256. package/lib/{toml-BJsCc8TC.js → toml-Co9mpdct.js} +2 -2
  257. package/lib/{toml-BJsCc8TC.js.map → toml-Co9mpdct.js.map} +1 -1
  258. package/lib/{typescript-7qOVMjOC.js → typescript-C26xdBDC.js} +2 -2
  259. package/lib/{typescript-7qOVMjOC.js.map → typescript-C26xdBDC.js.map} +1 -1
  260. package/lib/ui/Accordion.js +1 -1
  261. package/lib/ui/ActionButton.js +3 -3
  262. package/lib/ui/Alert.js +1 -1
  263. package/lib/ui/AlertDialog.js +1 -1
  264. package/lib/ui/Badge.js +1 -1
  265. package/lib/ui/Breadcrumb.js +1 -1
  266. package/lib/ui/Button.js +1 -1
  267. package/lib/ui/Callout.js +1 -1
  268. package/lib/ui/Card.js +1 -1
  269. package/lib/ui/Carousel.js +1 -1
  270. package/lib/ui/Carousel.js.map +1 -1
  271. package/lib/ui/Checkbox.js +1 -1
  272. package/lib/ui/CodeBlock.js +2 -2
  273. package/lib/ui/Command.js +2 -2
  274. package/lib/ui/Dialog.js +135 -105
  275. package/lib/ui/Dialog.js.map +1 -1
  276. package/lib/ui/Drawer.js +2 -2
  277. package/lib/ui/DropdownMenu.js +1 -1
  278. package/lib/ui/EmbeddedCodeBlock.js +1 -1
  279. package/lib/ui/Form.js +2 -2
  280. package/lib/ui/HoverCard.js +1 -1
  281. package/lib/ui/Input.js +1 -1
  282. package/lib/ui/Label.js +1 -1
  283. package/lib/ui/Pagination.js +1 -1
  284. package/lib/ui/Popover.js +1 -1
  285. package/lib/ui/Progress.js +1 -1
  286. package/lib/ui/RadioGroup.js +1 -1
  287. package/lib/ui/ReactComponentDoc.js +1 -1
  288. package/lib/ui/ScrollArea.js +1 -1
  289. package/lib/ui/Secret.js +64 -54
  290. package/lib/ui/Secret.js.map +1 -1
  291. package/lib/ui/Select.js +1 -1
  292. package/lib/ui/Skeleton.js +1 -1
  293. package/lib/ui/Slider.js +1 -1
  294. package/lib/ui/Stepper.js +1 -1
  295. package/lib/ui/Switch.js +1 -1
  296. package/lib/ui/SyntaxHighlight.js +4 -4
  297. package/lib/ui/Tabs.js +1 -1
  298. package/lib/ui/Textarea.js +1 -1
  299. package/lib/ui/Toggle.js +1 -1
  300. package/lib/ui/ToggleGroup.js +1 -1
  301. package/lib/ui/Tooltip.js +1 -1
  302. package/lib/ui/Value.js +1 -1
  303. package/lib/{useExposedProps-B8NHdNRq.js → useExposedProps-Cd7Yg_uG.js} +3 -3
  304. package/lib/useExposedProps-Cd7Yg_uG.js.map +1 -0
  305. package/lib/{xml-DAaTIkBX.js → xml-BQOOC04j.js} +2 -2
  306. package/lib/{xml-DAaTIkBX.js.map → xml-BQOOC04j.js.map} +1 -1
  307. package/lib/{yaml-DUi-dbfu.js → yaml-BGsJItKv.js} +2 -2
  308. package/lib/{yaml-DUi-dbfu.js.map → yaml-BGsJItKv.js.map} +1 -1
  309. package/lib/zig-CUV2sTct.js +35 -0
  310. package/lib/zig-CUV2sTct.js.map +1 -0
  311. package/lib/zudoku.__internal.js +1041 -938
  312. package/lib/zudoku.__internal.js.map +1 -1
  313. package/lib/zudoku.auth-auth0.js +22 -21
  314. package/lib/zudoku.auth-auth0.js.map +1 -1
  315. package/lib/zudoku.auth-azureb2c.js +14 -15
  316. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  317. package/lib/zudoku.auth-clerk.js +3 -3
  318. package/lib/zudoku.auth-openid.js +57 -58
  319. package/lib/zudoku.auth-openid.js.map +1 -1
  320. package/lib/zudoku.auth-supabase.js +2 -2
  321. package/lib/zudoku.components.js +6 -6
  322. package/lib/zudoku.hooks.js +6 -6
  323. package/lib/zudoku.hooks.js.map +1 -1
  324. package/lib/zudoku.icons.js +1 -1
  325. package/lib/zudoku.plugin-api-catalog.js +27 -28
  326. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  327. package/lib/zudoku.plugin-api-keys.js +215 -301
  328. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  329. package/lib/zudoku.plugin-custom-pages.js +1 -1
  330. package/lib/zudoku.plugin-markdown.js +2 -2
  331. package/lib/zudoku.plugin-markdown.js.map +1 -1
  332. package/lib/zudoku.plugin-openapi.js +4 -4
  333. package/lib/zudoku.plugin-search-inkeep.js +1 -1
  334. package/lib/zudoku.plugin-search-pagefind.js +27 -28
  335. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  336. package/lib/zudoku.router.js +1 -1
  337. package/lib/zudoku.router.js.map +1 -1
  338. package/package.json +39 -39
  339. package/src/lib/assets/language-icons/c.tsx +31 -0
  340. package/src/lib/assets/language-icons/commonlisp.tsx +22 -0
  341. package/src/lib/assets/language-icons/cpp.tsx +35 -0
  342. package/src/lib/assets/language-icons/dart.tsx +39 -0
  343. package/src/lib/assets/language-icons/elixir.tsx +19 -0
  344. package/src/lib/assets/language-icons/ocaml.tsx +34 -0
  345. package/src/lib/assets/language-icons/powershell.tsx +27 -0
  346. package/src/lib/assets/language-icons/scala.tsx +19 -0
  347. package/src/lib/assets/language-icons/zig.tsx +32 -0
  348. package/src/lib/authentication/providers/auth0.tsx +7 -3
  349. package/src/lib/components/BuildCheck.tsx +12 -10
  350. package/src/lib/components/Heading.tsx +2 -6
  351. package/src/lib/components/LanguageIcon.tsx +45 -0
  352. package/src/lib/components/Main.tsx +1 -1
  353. package/src/lib/components/cache.ts +9 -5
  354. package/src/lib/components/context/ZudokuContext.ts +11 -2
  355. package/src/lib/oas/graphql/index.ts +19 -0
  356. package/src/lib/plugins/markdown/MdxPage.tsx +122 -8
  357. package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -0
  358. package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -0
  359. package/src/lib/plugins/markdown/index.tsx +3 -7
  360. package/src/lib/plugins/openapi/MCPEndpoint.tsx +8 -28
  361. package/src/lib/plugins/openapi/OperationList.tsx +14 -3
  362. package/src/lib/plugins/openapi/OperationListItem.tsx +10 -5
  363. package/src/lib/plugins/openapi/Sidecar.tsx +8 -8
  364. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +1 -0
  365. package/src/lib/plugins/openapi/graphql/gql.ts +4 -3
  366. package/src/lib/plugins/openapi/graphql/graphql.ts +20 -3
  367. package/src/lib/plugins/openapi/index.tsx +1 -1
  368. package/src/lib/plugins/openapi/interfaces.ts +1 -0
  369. package/src/lib/plugins/openapi/playground/Playground.tsx +1 -1
  370. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  371. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +31 -3
  372. package/src/lib/shiki.ts +9 -0
  373. package/src/lib/ui/Carousel.tsx +0 -1
  374. package/src/lib/ui/Dialog.tsx +112 -106
  375. package/src/lib/ui/Secret.tsx +44 -27
  376. package/src/lib/util/pastellize.ts +4 -4
  377. package/src/shiki/langs/hurl.js +1 -0
  378. package/src/shiki/langs/kdl.js +1 -0
  379. package/src/shiki/langs/pkl.js +1 -0
  380. package/src/shiki/langs/rosmsg.js +1 -0
  381. package/lib/CodeBlock-i0BM_QFf.js +0 -176
  382. package/lib/CodeBlock-i0BM_QFf.js.map +0 -1
  383. package/lib/Dialog-VIMic7xI.js +0 -114
  384. package/lib/Dialog-VIMic7xI.js.map +0 -1
  385. package/lib/Drawer-DM9wJUC6.js.map +0 -1
  386. package/lib/ErrorAlert-xpVkFS_n.js.map +0 -1
  387. package/lib/MdxPage-Ud1w_GV-.js +0 -111
  388. package/lib/MdxPage-Ud1w_GV-.js.map +0 -1
  389. package/lib/OperationList-Dr87uHqG.js.map +0 -1
  390. package/lib/Select-BiBMWiLv.js +0 -273
  391. package/lib/Select-BiBMWiLv.js.map +0 -1
  392. package/lib/ZudokuContext-BcqSiygJ.js +0 -1294
  393. package/lib/ZudokuContext-BcqSiygJ.js.map +0 -1
  394. package/lib/createServer-DL1AYSpR.js.map +0 -1
  395. package/lib/hook-BkLXq8pm.js +0 -243
  396. package/lib/hook-BkLXq8pm.js.map +0 -1
  397. package/lib/index-CVfG8Pb4.js.map +0 -1
  398. package/lib/index-DQ8kWcE8.js.map +0 -1
  399. package/lib/index-DhL3LhWV.js.map +0 -1
  400. package/lib/index.esm-DpgNxKa2.js +0 -1267
  401. package/lib/index.esm-DpgNxKa2.js.map +0 -1
  402. package/lib/jsx-runtime-DywqP_6a.js.map +0 -1
  403. package/lib/useExposedProps-B8NHdNRq.js.map +0 -1
@@ -54,7 +54,7 @@ const PlaygroundDialog = (props: PlaygroundDialogProps) => {
54
54
  </DialogTrigger>
55
55
 
56
56
  <DialogContent
57
- className="max-w-screen-xl w-full overflow-hidden p-0"
57
+ className="max-w-screen-xl! w-full overflow-hidden p-0"
58
58
  aria-describedby={undefined}
59
59
  showCloseButton={true}
60
60
  >
@@ -3,6 +3,8 @@ import {
3
3
  CornerDownLeftIcon,
4
4
  CornerDownRightIcon,
5
5
  DownloadIcon,
6
+ EyeIcon,
7
+ EyeOffIcon,
6
8
  PlusCircleIcon,
7
9
  } from "lucide-react";
8
10
  import { useState } from "react";
@@ -12,6 +14,7 @@ import {
12
14
  CollapsibleContent,
13
15
  CollapsibleTrigger,
14
16
  } from "zudoku/ui/Collapsible.js";
17
+ import { SecretText } from "zudoku/ui/Secret.js";
15
18
  import {
16
19
  Select,
17
20
  SelectContent,
@@ -19,6 +22,7 @@ import {
19
22
  SelectTrigger,
20
23
  SelectValue,
21
24
  } from "zudoku/ui/Select.js";
25
+ import { cn } from "../../../../util/cn.js";
22
26
  import createVariantComponent from "../../../../util/createVariantComponent.js";
23
27
  import { humanFileSize } from "../../../../util/humanFileSize.js";
24
28
  import {
@@ -89,6 +93,30 @@ const Row = createVariantComponent(
89
93
  );
90
94
 
91
95
  const RowContent = createVariantComponent("div", "py-1 break-all");
96
+ const RowValue = ({ value, header }: { value: string; header: string }) => {
97
+ const secretHeaders = ["authorization", "key", "secret", "token"];
98
+ const isSecret = secretHeaders.includes(header.toLowerCase());
99
+ const [revealed, setRevealed] = useState(!isSecret);
100
+ return (
101
+ <RowContent
102
+ className={cn(isSecret && "cursor-pointer flex group")}
103
+ onClick={() => {
104
+ if (isSecret) {
105
+ setRevealed((prev) => !prev);
106
+ }
107
+ }}
108
+ >
109
+ <SecretText secret={value} previewChars={0} revealed={revealed} />
110
+ {isSecret ? (
111
+ revealed ? (
112
+ <EyeOffIcon size={14} className={cn("hidden group-hover:block")} />
113
+ ) : (
114
+ <EyeIcon size={14} className={cn("hidden group-hover:block")} />
115
+ )
116
+ ) : null}
117
+ </RowContent>
118
+ );
119
+ };
92
120
 
93
121
  export const ResponseTab = ({
94
122
  body = "",
@@ -158,7 +186,7 @@ export const ResponseTab = ({
158
186
  .map(([key, value]) => (
159
187
  <Row key={key}>
160
188
  <RowContent>{key}</RowContent>
161
- <RowContent>{value}</RowContent>
189
+ <RowValue value={value} header={key} />
162
190
  </Row>
163
191
  ))}
164
192
  </div>
@@ -177,7 +205,7 @@ export const ResponseTab = ({
177
205
  {sortedHeaders.slice(0, MAX_HEADERS_TO_SHOW).map(([key, value]) => (
178
206
  <Row key={key}>
179
207
  <RowContent>{key}</RowContent>
180
- <RowContent>{value}</RowContent>
208
+ <RowValue value={value} header={key} />
181
209
  </Row>
182
210
  ))}
183
211
  {sortedHeaders.length > MAX_HEADERS_TO_SHOW && (
@@ -195,7 +223,7 @@ export const ResponseTab = ({
195
223
  .map(([key, value]) => (
196
224
  <Row key={key}>
197
225
  <RowContent>{key}</RowContent>
198
- <RowContent>{value}</RowContent>
226
+ <RowValue value={value} header={key} />
199
227
  </Row>
200
228
  ))}
201
229
  </CollapsibleContent>
package/src/lib/shiki.ts CHANGED
@@ -89,6 +89,15 @@ export const defaultLanguages: BundledLanguage[] = [
89
89
  "rust",
90
90
  "markdown",
91
91
  "mdx",
92
+ "zig",
93
+ "scala",
94
+ "dart",
95
+ "ocaml",
96
+ "c",
97
+ "cpp",
98
+ "common-lisp",
99
+ "elixir",
100
+ "powershell",
92
101
  ];
93
102
 
94
103
  const rehypeCodeBlockPlugin = () => (tree: Root) => {
@@ -132,7 +132,6 @@ const Carousel = React.forwardRef<
132
132
  canScrollNext,
133
133
  }}
134
134
  >
135
- {/** biome-ignore lint/a11y/useSemanticElements: shadcn uses divs for the carousel */}
136
135
  <div
137
136
  ref={ref}
138
137
  onKeyDownCapture={handleKeyDown}
@@ -1,122 +1,128 @@
1
1
  import * as DialogPrimitive from "@radix-ui/react-dialog";
2
2
  import { CircleIcon, XIcon } from "lucide-react";
3
- import * as React from "react";
3
+ import type * as React from "react";
4
4
  import { cn } from "../util/cn.js";
5
5
 
6
- const Dialog = DialogPrimitive.Root;
7
-
8
- const DialogTrigger = DialogPrimitive.Trigger;
9
-
10
- const DialogPortal = DialogPrimitive.Portal;
11
-
12
- const DialogClose = DialogPrimitive.Close;
13
-
14
- const DialogOverlay = React.forwardRef<
15
- React.ElementRef<typeof DialogPrimitive.Overlay>,
16
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
17
- >(({ className, ...props }, ref) => (
18
- <DialogPrimitive.Overlay
19
- ref={ref}
20
- className={cn(
21
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
22
- className,
23
- )}
24
- {...props}
25
- />
26
- ));
27
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
28
-
29
- const DialogContent = React.forwardRef<
30
- React.ElementRef<typeof DialogPrimitive.Content>,
31
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {
32
- showCloseButton?: boolean;
33
- }
34
- >(({ className, children, showCloseButton = true, ...props }, ref) => (
35
- <DialogPortal>
36
- <DialogOverlay />
37
- <DialogPrimitive.Content
38
- ref={ref}
6
+ function Dialog({
7
+ ...props
8
+ }: React.ComponentProps<typeof DialogPrimitive.Root>) {
9
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />;
10
+ }
11
+ function DialogTrigger({
12
+ ...props
13
+ }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
14
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
15
+ }
16
+ function DialogPortal({
17
+ ...props
18
+ }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
19
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
20
+ }
21
+ function DialogClose({
22
+ ...props
23
+ }: React.ComponentProps<typeof DialogPrimitive.Close>) {
24
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
25
+ }
26
+ function DialogOverlay({
27
+ className,
28
+ ...props
29
+ }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
30
+ return (
31
+ <DialogPrimitive.Overlay
32
+ data-slot="dialog-overlay"
39
33
  className={cn(
40
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
34
+ "backdrop-blur-xs transition-all",
35
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/32",
41
36
  className,
42
37
  )}
43
38
  {...props}
44
- >
45
- {children}
46
- {showCloseButton && (
47
- <DialogPrimitive.Close className="absolute p-3 group -left-1.5 -top-1.5 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
48
- <CircleIcon
49
- className="h-2 w-2 transition-all border border-transparent group-hover:border-white/20 rounded-full group-hover:scale-180 group-hover:text-red-400"
50
- strokeWidth={2}
51
- fill="currentColor"
52
- />
53
- <XIcon
54
- className="h-2 w-2 absolute top-3 left-3 text-transparent group-hover:text-red-800 transition-colors"
55
- strokeWidth={2}
56
- fill="currentColor"
57
- />
58
- <span className="sr-only">Close</span>
59
- </DialogPrimitive.Close>
39
+ />
40
+ );
41
+ }
42
+ function DialogContent({
43
+ className,
44
+ children,
45
+ showCloseButton = true,
46
+ ...props
47
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
48
+ showCloseButton?: boolean;
49
+ }) {
50
+ return (
51
+ <DialogPortal data-slot="dialog-portal">
52
+ <DialogOverlay />
53
+ <DialogPrimitive.Content
54
+ data-slot="dialog-content"
55
+ className={cn(
56
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-xl",
57
+ className,
58
+ )}
59
+ {...props}
60
+ >
61
+ {children}
62
+ {showCloseButton && (
63
+ <DialogPrimitive.Close className="absolute p-3 group -left-1.5 -top-1.5 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
64
+ <CircleIcon
65
+ className="h-2 w-2 transition-all border border-transparent group-hover:border-white/20 rounded-full group-hover:scale-180 group-hover:text-red-400"
66
+ strokeWidth={2}
67
+ fill="currentColor"
68
+ />
69
+ <XIcon
70
+ className="h-2 w-2 absolute top-3 left-3 text-transparent group-hover:text-red-800 transition-colors"
71
+ strokeWidth={2}
72
+ fill="currentColor"
73
+ />
74
+ <span className="sr-only">Close</span>
75
+ </DialogPrimitive.Close>
76
+ )}
77
+ </DialogPrimitive.Content>
78
+ </DialogPortal>
79
+ );
80
+ }
81
+ function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
82
+ return (
83
+ <div
84
+ data-slot="dialog-header"
85
+ className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
86
+ {...props}
87
+ />
88
+ );
89
+ }
90
+ function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
91
+ return (
92
+ <div
93
+ data-slot="dialog-footer"
94
+ className={cn(
95
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
96
+ className,
60
97
  )}
61
- </DialogPrimitive.Content>
62
- </DialogPortal>
63
- ));
64
- DialogContent.displayName = DialogPrimitive.Content.displayName;
65
-
66
- const DialogHeader = ({
98
+ {...props}
99
+ />
100
+ );
101
+ }
102
+ function DialogTitle({
67
103
  className,
68
104
  ...props
69
- }: React.HTMLAttributes<HTMLDivElement>) => (
70
- <div
71
- className={cn(
72
- "flex flex-col space-y-1.5 text-center sm:text-left",
73
- className,
74
- )}
75
- {...props}
76
- />
77
- );
78
- DialogHeader.displayName = "DialogHeader";
79
-
80
- const DialogFooter = ({
105
+ }: React.ComponentProps<typeof DialogPrimitive.Title>) {
106
+ return (
107
+ <DialogPrimitive.Title
108
+ data-slot="dialog-title"
109
+ className={cn("text-lg leading-none font-semibold", className)}
110
+ {...props}
111
+ />
112
+ );
113
+ }
114
+ function DialogDescription({
81
115
  className,
82
116
  ...props
83
- }: React.HTMLAttributes<HTMLDivElement>) => (
84
- <div
85
- className={cn(
86
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
87
- className,
88
- )}
89
- {...props}
90
- />
91
- );
92
- DialogFooter.displayName = "DialogFooter";
93
-
94
- const DialogTitle = React.forwardRef<
95
- React.ElementRef<typeof DialogPrimitive.Title>,
96
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
97
- >(({ className, ...props }, ref) => (
98
- <DialogPrimitive.Title
99
- ref={ref}
100
- className={cn(
101
- "text-lg font-semibold leading-none tracking-tight",
102
- className,
103
- )}
104
- {...props}
105
- />
106
- ));
107
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
108
-
109
- const DialogDescription = React.forwardRef<
110
- React.ElementRef<typeof DialogPrimitive.Description>,
111
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
112
- >(({ className, ...props }, ref) => (
113
- <DialogPrimitive.Description
114
- ref={ref}
115
- className={cn("text-sm text-muted-foreground", className)}
116
- {...props}
117
- />
118
- ));
119
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
117
+ }: React.ComponentProps<typeof DialogPrimitive.Description>) {
118
+ return (
119
+ <DialogPrimitive.Description
120
+ data-slot="dialog-description"
121
+ className={cn("text-muted-foreground text-sm", className)}
122
+ {...props}
123
+ />
124
+ );
125
+ }
120
126
 
121
127
  export {
122
128
  Dialog,
@@ -6,6 +6,45 @@ import { Button } from "./Button.js";
6
6
 
7
7
  type Status = "active" | "expired" | "expiring" | "revoked" | "none";
8
8
 
9
+ export const SecretText = ({
10
+ secret,
11
+ revealed = false,
12
+ previewChars = 5,
13
+ className,
14
+ }: {
15
+ secret: string;
16
+ revealed?: boolean;
17
+ previewChars?: number;
18
+ className?: string;
19
+ }) => {
20
+ return (
21
+ <span className={cn("w-full truncate", className)}>
22
+ <div
23
+ className={cn(
24
+ "w-40 inline-block md:w-fit",
25
+ revealed ? "" : "opacity-50",
26
+ )}
27
+ >
28
+ {revealed
29
+ ? secret.slice(0, previewChars === 0 ? secret.length : -previewChars)
30
+ : "•••• ".repeat(
31
+ secret.slice(
32
+ 0,
33
+ previewChars === 0 ? secret.length : -previewChars,
34
+ ).length / 5,
35
+ ) +
36
+ "•".repeat(
37
+ secret.slice(
38
+ 0,
39
+ previewChars === 0 ? secret.length : -previewChars,
40
+ ).length % 5,
41
+ )}
42
+ </div>
43
+ {previewChars > 0 && <span>{secret.slice(-previewChars)}</span>}
44
+ </span>
45
+ );
46
+ };
47
+
9
48
  export const Secret = ({
10
49
  secret,
11
50
  preview = 5,
@@ -51,33 +90,11 @@ export const Secret = ({
51
90
  )}
52
91
  />
53
92
  )}
54
- <span className="w-full truncate">
55
- <div
56
- className={cn(
57
- "w-40 inline-block md:w-fit",
58
- revealed ? "" : "opacity-50",
59
- )}
60
- >
61
- {revealed
62
- ? secret.slice(
63
- 0,
64
- previewChars === 0 ? secret.length : -previewChars,
65
- )
66
- : "•••• ".repeat(
67
- secret.slice(
68
- 0,
69
- previewChars === 0 ? secret.length : -previewChars,
70
- ).length / 5,
71
- ) +
72
- "•".repeat(
73
- secret.slice(
74
- 0,
75
- previewChars === 0 ? secret.length : -previewChars,
76
- ).length % 5,
77
- )}
78
- </div>
79
- {previewChars > 0 && <span>{secret.slice(-previewChars)}</span>}
80
- </span>
93
+ <SecretText
94
+ secret={secret}
95
+ revealed={revealed}
96
+ previewChars={previewChars}
97
+ />
81
98
  </div>
82
99
  {disabledReveal !== true && (
83
100
  <Button
@@ -1,14 +1,14 @@
1
1
  const c2n = (c: string) =>
2
2
  Math.abs(
3
- Number.isNaN(parseInt(c))
3
+ Number.isNaN(Number(c))
4
4
  ? c.toLowerCase().charCodeAt(0) - 96
5
- : Number.isNaN(parseInt(c))
5
+ : Number.isNaN(Number(c))
6
6
  ? 0
7
- : parseInt(c),
7
+ : Number(c),
8
8
  );
9
9
  const s2n = (s: string) =>
10
10
  s.length > 1
11
- ? parseInt(s.split("").reduce((a, c) => `${c2n(a) + c2n(c)}`))
11
+ ? Number(s.split("").reduce((a, c) => `${c2n(a) + c2n(c)}`))
12
12
  : c2n(s);
13
13
 
14
14
  export const pastellize = (
@@ -0,0 +1 @@
1
+ export { default } from "@shikijs/langs/hurl";
@@ -0,0 +1 @@
1
+ export { default } from "@shikijs/langs/kdl";
@@ -0,0 +1 @@
1
+ export { default } from "@shikijs/langs/pkl";
@@ -0,0 +1 @@
1
+ export { default } from "@shikijs/langs/rosmsg";
@@ -1,176 +0,0 @@
1
- import { j as o } from "./jsx-runtime-DywqP_6a.js";
2
- import { CheckIcon as d, CopyIcon as h } from "lucide-react";
3
- import { lazy as t, Suspense as u, useRef as x } from "react";
4
- import { c as p } from "./cn-dYga0KKN.js";
5
- import { u as b } from "./useCopyToClipboard-B_085nfO.js";
6
- const j = {
7
- typescript: {
8
- pattern: /^(ts|typescript)$/,
9
- icon: t(() => import("./typescript-7qOVMjOC.js")),
10
- width: 15
11
- },
12
- javascript: {
13
- pattern: /^(js|javascript)$/,
14
- icon: t(() => import("./javascript-CrY8dcGu.js"))
15
- },
16
- react: {
17
- pattern: /^(react|tsx|jsx)$/,
18
- icon: t(() => import("./react-CQvDN20M.js")),
19
- width: 22
20
- },
21
- markdown: {
22
- pattern: /^(md|markdown)$/,
23
- icon: t(() => import("./markdown-BD9bIU5J.js")),
24
- width: 22
25
- },
26
- mdx: {
27
- pattern: /^mdx$/,
28
- icon: t(() => import("./mdx-G25UCvf3.js")),
29
- width: 28
30
- },
31
- java: {
32
- pattern: /^(java)$/,
33
- icon: t(() => import("./java-DUh-EL8n.js")),
34
- width: 22
35
- },
36
- json: {
37
- pattern: /^jsonc?$/,
38
- icon: t(() => import("./json-DLK2_sdf.js"))
39
- },
40
- yaml: {
41
- pattern: /^yaml$/,
42
- icon: t(() => import("./yaml-DUi-dbfu.js"))
43
- },
44
- toml: {
45
- pattern: /^toml$/,
46
- icon: t(() => import("./toml-BJsCc8TC.js"))
47
- },
48
- shell: {
49
- pattern: /^(shell|bash|sh|zsh|term|terminal|ansi)$/,
50
- icon: t(() => import("./shell-BFu0M6m4.js"))
51
- },
52
- python: {
53
- pattern: /^(py|python)$/,
54
- icon: t(() => import("./python-BaF2byD-.js"))
55
- },
56
- csharp: {
57
- pattern: /^(cs|csharp|vb)$/,
58
- icon: t(() => import("./csharp-rrJEDRrV.js")),
59
- width: 20
60
- },
61
- rust: {
62
- pattern: /^(rs|rust)$/,
63
- icon: t(() => import("./rust-IfSC62c5.js")),
64
- width: 20
65
- },
66
- ruby: {
67
- pattern: /^(rb|ruby)$/,
68
- icon: t(() => import("./ruby-CmxRVHMR.js"))
69
- },
70
- php: {
71
- pattern: /^php$/,
72
- icon: t(() => import("./php-BeG18bSy.js")),
73
- width: 24
74
- },
75
- html: {
76
- pattern: /^html?$/,
77
- icon: t(() => import("./html-D_7om-nA.js")),
78
- width: 15
79
- },
80
- css: {
81
- pattern: /^css$/,
82
- icon: t(() => import("./css-Dpk9bCql.js"))
83
- },
84
- objectivec: {
85
- pattern: /^(objc|objectivec)$/,
86
- icon: t(() => import("./objectivec-DDpj0aWX.js")),
87
- width: 16
88
- },
89
- swift: {
90
- pattern: /^swift$/,
91
- icon: t(() => import("./swift-DckbsN4v.js"))
92
- },
93
- go: {
94
- pattern: /^go$/,
95
- icon: t(() => import("./go-D8SJIQ0Z.js")),
96
- width: 28
97
- },
98
- xml: {
99
- pattern: /^xml$/,
100
- icon: t(() => import("./xml-DAaTIkBX.js"))
101
- },
102
- kotlin: {
103
- pattern: /^(kt|kotlin)$/,
104
- icon: t(() => import("./kotlin-rJMOGl7D.js")),
105
- width: 14
106
- },
107
- graphql: {
108
- pattern: /^(gql|graphql)$/,
109
- icon: t(() => import("./graphql-aeVKJNa2.js"))
110
- }
111
- }, w = ({ language: r }) => {
112
- if (!r) return null;
113
- const e = Object.values(j).find((n) => n.pattern.test(r));
114
- if (!e) return null;
115
- const i = e.width ?? 18;
116
- return /* @__PURE__ */ o.jsx(u, { fallback: /* @__PURE__ */ o.jsx("div", { style: { width: i, height: "1em" } }), children: /* @__PURE__ */ o.jsx(e.icon, { className: "h-auto", style: { width: i } }) });
117
- }, k = ({
118
- children: r,
119
- title: e = "Code",
120
- language: i,
121
- showCopy: n = "hover",
122
- showLanguageIndicator: $,
123
- showLineNumbers: c,
124
- ...m
125
- }) => {
126
- const [s, l] = b(), a = x(null);
127
- return r ? /* @__PURE__ */ o.jsxs(
128
- "div",
129
- {
130
- className: p(
131
- "border code-block-wrapper relative group rounded-md overflow-hidden",
132
- c && "line-numbers",
133
- m.className
134
- ),
135
- children: [
136
- /* @__PURE__ */ o.jsxs("div", { className: "border-b flex items-center h-10 font-sans bg-black/2", children: [
137
- /* @__PURE__ */ o.jsxs("div", { className: "flex items-center gap-1.5 flex-1 text-sm w-full px-3", children: [
138
- /* @__PURE__ */ o.jsx(w, { language: i }),
139
- e
140
- ] }),
141
- " ",
142
- n !== "never" && /* @__PURE__ */ o.jsx(
143
- "button",
144
- {
145
- type: "button",
146
- "aria-label": "Copy code",
147
- title: "Copy code",
148
- className: p(
149
- "transition px-2 py-2 mx-1 rounded-sm",
150
- !s && "hover:bg-accent hover:brightness-95"
151
- ),
152
- disabled: s,
153
- onClick: () => {
154
- a.current?.textContent && l(a.current.textContent);
155
- },
156
- children: s ? /* @__PURE__ */ o.jsx(d, { className: "text-emerald-600", size: 14 }) : /* @__PURE__ */ o.jsx(h, { size: 14 })
157
- }
158
- )
159
- ] }),
160
- /* @__PURE__ */ o.jsx(
161
- "div",
162
- {
163
- className: "code-block text-sm not-prose scrollbar [&_code]:px-3 [&_code]:py-2",
164
- ref: a,
165
- children: r
166
- }
167
- )
168
- ]
169
- }
170
- ) : null;
171
- };
172
- export {
173
- k as C,
174
- w as L
175
- };
176
- //# sourceMappingURL=CodeBlock-i0BM_QFf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeBlock-i0BM_QFf.js","sources":["../src/lib/components/LanguageIcon.tsx","../src/lib/ui/CodeBlock.tsx"],"sourcesContent":["import {\n type ComponentType,\n type LazyExoticComponent,\n lazy,\n Suspense,\n type SVGProps,\n} from \"react\";\n\ntype Language = {\n pattern: RegExp;\n icon: LazyExoticComponent<ComponentType<SVGProps<SVGSVGElement>>>;\n width?: number;\n};\n\nconst Languages: Record<string, Language> = {\n typescript: {\n pattern: /^(ts|typescript)$/,\n icon: lazy(() => import(\"../assets/language-icons/typescript.js\")),\n width: 15,\n },\n javascript: {\n pattern: /^(js|javascript)$/,\n icon: lazy(() => import(\"../assets/language-icons/javascript.js\")),\n },\n react: {\n pattern: /^(react|tsx|jsx)$/,\n icon: lazy(() => import(\"../assets/language-icons/react.js\")),\n width: 22,\n },\n markdown: {\n pattern: /^(md|markdown)$/,\n icon: lazy(() => import(\"../assets/language-icons/markdown.js\")),\n width: 22,\n },\n mdx: {\n pattern: /^mdx$/,\n icon: lazy(() => import(\"../assets/language-icons/mdx.js\")),\n width: 28,\n },\n java: {\n pattern: /^(java)$/,\n icon: lazy(() => import(\"../assets/language-icons/java.js\")),\n width: 22,\n },\n json: {\n pattern: /^jsonc?$/,\n icon: lazy(() => import(\"../assets/language-icons/json.js\")),\n },\n yaml: {\n pattern: /^yaml$/,\n icon: lazy(() => import(\"../assets/language-icons/yaml.js\")),\n },\n toml: {\n pattern: /^toml$/,\n icon: lazy(() => import(\"../assets/language-icons/toml.js\")),\n },\n shell: {\n pattern: /^(shell|bash|sh|zsh|term|terminal|ansi)$/,\n icon: lazy(() => import(\"../assets/language-icons/shell.js\")),\n },\n python: {\n pattern: /^(py|python)$/,\n icon: lazy(() => import(\"../assets/language-icons/python.js\")),\n },\n csharp: {\n pattern: /^(cs|csharp|vb)$/,\n icon: lazy(() => import(\"../assets/language-icons/csharp.js\")),\n width: 20,\n },\n rust: {\n pattern: /^(rs|rust)$/,\n icon: lazy(() => import(\"../assets/language-icons/rust.js\")),\n width: 20,\n },\n ruby: {\n pattern: /^(rb|ruby)$/,\n icon: lazy(() => import(\"../assets/language-icons/ruby.js\")),\n },\n php: {\n pattern: /^php$/,\n icon: lazy(() => import(\"../assets/language-icons/php.js\")),\n width: 24,\n },\n html: {\n pattern: /^html?$/,\n icon: lazy(() => import(\"../assets/language-icons/html.js\")),\n width: 15,\n },\n css: {\n pattern: /^css$/,\n icon: lazy(() => import(\"../assets/language-icons/css.js\")),\n },\n objectivec: {\n pattern: /^(objc|objectivec)$/,\n icon: lazy(() => import(\"../assets/language-icons/objectivec.js\")),\n width: 16,\n },\n swift: {\n pattern: /^swift$/,\n icon: lazy(() => import(\"../assets/language-icons/swift.js\")),\n },\n go: {\n pattern: /^go$/,\n icon: lazy(() => import(\"../assets/language-icons/go.js\")),\n width: 28,\n },\n xml: {\n pattern: /^xml$/,\n icon: lazy(() => import(\"../assets/language-icons/xml.js\")),\n },\n kotlin: {\n pattern: /^(kt|kotlin)$/,\n icon: lazy(() => import(\"../assets/language-icons/kotlin.js\")),\n width: 14,\n },\n graphql: {\n pattern: /^(gql|graphql)$/,\n icon: lazy(() => import(\"../assets/language-icons/graphql.js\")),\n },\n};\n\nexport const LanguageIcon = ({ language }: { language?: string }) => {\n if (!language) return null;\n\n const Lang = Object.values(Languages).find((l) => l.pattern.test(language));\n\n if (!Lang) return null;\n\n const size = Lang.width ?? 18;\n\n return (\n <Suspense fallback={<div style={{ width: size, height: \"1em\" }} />}>\n <Lang.icon className=\"h-auto\" style={{ width: size }} />\n </Suspense>\n );\n};\n","import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport { type ReactNode, useRef } from \"react\";\nimport { LanguageIcon } from \"../components/LanguageIcon.js\";\nimport { cn } from \"../util/cn.js\";\nimport { useCopyToClipboard } from \"../util/useCopyToClipboard.js\";\n\nexport type CodeBlockProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n title?: string;\n children?: ReactNode;\n code?: ReactNode;\n showCopy?: \"hover\" | \"always\" | \"never\";\n disabled?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const CodeBlock = ({\n children,\n title = \"Code\",\n language,\n showCopy = \"hover\",\n showLanguageIndicator,\n showLineNumbers,\n ...props\n}: CodeBlockProps) => {\n const [isCopied, copyToClipboard] = useCopyToClipboard();\n const ref = useRef<HTMLDivElement>(null);\n\n if (!children) return null;\n\n return (\n <div\n className={cn(\n \"border code-block-wrapper relative group rounded-md overflow-hidden\",\n showLineNumbers && \"line-numbers\",\n props.className,\n )}\n >\n <div className=\"border-b flex items-center h-10 font-sans bg-black/2\">\n <div className=\"flex items-center gap-1.5 flex-1 text-sm w-full px-3\">\n <LanguageIcon language={language} />\n {title}\n </div>{\" \"}\n {showCopy !== \"never\" && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n title=\"Copy code\"\n className={cn(\n \"transition px-2 py-2 mx-1 rounded-sm\",\n !isCopied && \"hover:bg-accent hover:brightness-95\",\n )}\n disabled={isCopied}\n onClick={() => {\n if (!ref.current?.textContent) return;\n\n copyToClipboard(ref.current.textContent);\n }}\n >\n {isCopied ? (\n <CheckIcon className=\"text-emerald-600\" size={14} />\n ) : (\n <CopyIcon size={14} />\n )}\n </button>\n )}\n </div>\n <div\n className=\"code-block text-sm not-prose scrollbar [&_code]:px-3 [&_code]:py-2\"\n ref={ref}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["Languages","lazy","LanguageIcon","language","Lang","l","size","jsx","Suspense","CodeBlock","children","title","showCopy","showLanguageIndicator","showLineNumbers","props","isCopied","copyToClipboard","useCopyToClipboard","ref","useRef","jsxs","cn","CheckIcon","CopyIcon"],"mappings":"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"}