zudoku 0.63.0 → 0.64.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 (245) hide show
  1. package/client.d.ts +8 -0
  2. package/dist/app/entry.server.js +14 -1
  3. package/dist/app/entry.server.js.map +1 -1
  4. package/dist/config/config.d.ts +3 -1
  5. package/dist/config/validators/BuildSchema.d.ts +5 -4
  6. package/dist/config/validators/BuildSchema.js +5 -2
  7. package/dist/config/validators/BuildSchema.js.map +1 -1
  8. package/dist/config/validators/InputNavigationSchema.d.ts +20 -20
  9. package/dist/config/validators/validate.d.ts +10 -12
  10. package/dist/config/validators/validate.js +8 -8
  11. package/dist/config/validators/validate.js.map +1 -1
  12. package/dist/flat-config.d.ts +6 -1
  13. package/dist/lib/authentication/authentication.d.ts +17 -9
  14. package/dist/lib/authentication/components/OAuthErrorPage.js +1 -1
  15. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -1
  16. package/dist/lib/authentication/components/SignIn.js +6 -5
  17. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  18. package/dist/lib/authentication/components/SignOut.js +6 -6
  19. package/dist/lib/authentication/components/SignOut.js.map +1 -1
  20. package/dist/lib/authentication/components/SignUp.js +5 -5
  21. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  22. package/dist/lib/authentication/hook.d.ts +3 -2
  23. package/dist/lib/authentication/hook.js +12 -8
  24. package/dist/lib/authentication/hook.js.map +1 -1
  25. package/dist/lib/authentication/providers/auth0.js +1 -1
  26. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  27. package/dist/lib/authentication/providers/azureb2c.d.ts +4 -4
  28. package/dist/lib/authentication/providers/azureb2c.js +3 -3
  29. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  30. package/dist/lib/authentication/providers/clerk.js +2 -2
  31. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  32. package/dist/lib/authentication/providers/openid.d.ts +7 -7
  33. package/dist/lib/authentication/providers/openid.js +5 -3
  34. package/dist/lib/authentication/providers/openid.js.map +1 -1
  35. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
  36. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
  37. package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
  38. package/dist/lib/authentication/providers/supabase.js +35 -31
  39. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  40. package/dist/lib/authentication/state.d.ts +1 -5
  41. package/dist/lib/authentication/state.js +2 -14
  42. package/dist/lib/authentication/state.js.map +1 -1
  43. package/dist/lib/components/Zudoku.js +3 -3
  44. package/dist/lib/components/index.d.ts +2 -2
  45. package/dist/lib/components/navigation/Toc.js +1 -1
  46. package/dist/lib/components/navigation/Toc.js.map +1 -1
  47. package/dist/lib/core/RouteGuard.d.ts +1 -1
  48. package/dist/lib/core/RouteGuard.js +6 -14
  49. package/dist/lib/core/RouteGuard.js.map +1 -1
  50. package/dist/lib/core/ZudokuContext.d.ts +1 -0
  51. package/dist/lib/core/ZudokuContext.js +2 -0
  52. package/dist/lib/core/ZudokuContext.js.map +1 -1
  53. package/dist/lib/core/__internal.d.ts +1 -1
  54. package/dist/lib/hooks/index.d.ts +2 -2
  55. package/dist/lib/plugins/markdown/MdxPage.d.ts +2 -1
  56. package/dist/lib/plugins/markdown/MdxPage.js +3 -2
  57. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  58. package/dist/lib/plugins/markdown/index.d.ts +1 -0
  59. package/dist/lib/plugins/markdown/index.js +1 -1
  60. package/dist/lib/plugins/markdown/index.js.map +1 -1
  61. package/dist/lib/plugins/openapi/index.js +4 -9
  62. package/dist/lib/plugins/openapi/index.js.map +1 -1
  63. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +1 -1
  64. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
  65. package/dist/lib/plugins/openapi/playground/Playground.js +12 -2
  66. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  67. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +2 -1
  68. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +10 -2
  69. package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -1
  70. package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +1 -1
  71. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +1 -1
  72. package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -1
  73. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +23 -21
  74. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  75. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
  76. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  77. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +2 -0
  78. package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -1
  79. package/dist/lib/shiki.d.ts +1 -1
  80. package/dist/lib/shiki.js +13 -2
  81. package/dist/lib/shiki.js.map +1 -1
  82. package/dist/lib/ui/Callout.d.ts +5 -5
  83. package/dist/lib/ui/Callout.js +5 -5
  84. package/dist/lib/ui/Callout.js.map +1 -1
  85. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +3 -1
  86. package/dist/lib/ui/EmbeddedCodeBlock.js +2 -2
  87. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  88. package/dist/lib/ui/ReactComponentDoc.d.ts +1 -1
  89. package/dist/lib/ui/ReactComponentDoc.js +2 -2
  90. package/dist/lib/ui/ReactComponentDoc.js.map +1 -1
  91. package/dist/lib/ui/SyntaxHighlight.d.ts +1 -0
  92. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  93. package/dist/lib/util/MdxComponents.d.ts +2 -1
  94. package/dist/lib/util/MdxComponents.js +3 -2
  95. package/dist/lib/util/MdxComponents.js.map +1 -1
  96. package/dist/lib/util/syncZustandState.d.ts +5 -0
  97. package/dist/lib/util/syncZustandState.js +14 -0
  98. package/dist/lib/util/syncZustandState.js.map +1 -0
  99. package/dist/vite/api/SchemaManager.d.ts +3 -1
  100. package/dist/vite/api/SchemaManager.js +22 -3
  101. package/dist/vite/api/SchemaManager.js.map +1 -1
  102. package/dist/vite/api/SchemaManager.test.js +2 -2
  103. package/dist/vite/api/SchemaManager.test.js.map +1 -1
  104. package/dist/vite/plugin-api.js +14 -5
  105. package/dist/vite/plugin-api.js.map +1 -1
  106. package/dist/vite/plugin-docs.js +1 -1
  107. package/dist/vite/plugin-docs.js.map +1 -1
  108. package/dist/vite/plugin-markdown-export.js +4 -2
  109. package/dist/vite/plugin-markdown-export.js.map +1 -1
  110. package/dist/vite/plugin-mdx.js +36 -30
  111. package/dist/vite/plugin-mdx.js.map +1 -1
  112. package/lib/{ErrorAlert-VBJ8aHH7.js → ErrorAlert-DE3Sf66a.js} +1711 -1772
  113. package/lib/ErrorAlert-DE3Sf66a.js.map +1 -0
  114. package/lib/{MdxPage-DFRNwSsc.js → MdxPage-DZfeC0QY.js} +81 -80
  115. package/lib/MdxPage-DZfeC0QY.js.map +1 -0
  116. package/lib/{OAuthErrorPage-DJUOdr6Q.js → OAuthErrorPage-BycMozgn.js} +8 -8
  117. package/lib/{OAuthErrorPage-DJUOdr6Q.js.map → OAuthErrorPage-BycMozgn.js.map} +1 -1
  118. package/lib/{OasProvider-D2NYAaBN.js → OasProvider-Bf5zBDBY.js} +3 -3
  119. package/lib/{OasProvider-D2NYAaBN.js.map → OasProvider-Bf5zBDBY.js.map} +1 -1
  120. package/lib/{OperationList-DmXCI4NU.js → OperationList-Cmiw1xm2.js} +10 -10
  121. package/lib/{OperationList-DmXCI4NU.js.map → OperationList-Cmiw1xm2.js.map} +1 -1
  122. package/lib/{Pagination-CT4VUR6u.js → Pagination-CJszmeSA.js} +3 -3
  123. package/lib/{Pagination-CT4VUR6u.js.map → Pagination-CJszmeSA.js.map} +1 -1
  124. package/lib/RouteGuard-DhU3LRr1.js +81 -0
  125. package/lib/RouteGuard-DhU3LRr1.js.map +1 -0
  126. package/lib/{RouterError-fm21cqlj.js → RouterError-VDLnrFqF.js} +5 -5
  127. package/lib/{RouterError-fm21cqlj.js.map → RouterError-VDLnrFqF.js.map} +1 -1
  128. package/lib/{SchemaList-uElsscMN.js → SchemaList-xZSf3IMh.js} +7 -7
  129. package/lib/{SchemaList-uElsscMN.js.map → SchemaList-xZSf3IMh.js.map} +1 -1
  130. package/lib/{SchemaView-CNQ3VAbI.js → SchemaView-tHXTm5oM.js} +3 -3
  131. package/lib/{SchemaView-CNQ3VAbI.js.map → SchemaView-tHXTm5oM.js.map} +1 -1
  132. package/lib/{Select-CPoGZU_V.js → Select-C1DeCqKv.js} +3 -3
  133. package/lib/{Select-CPoGZU_V.js.map → Select-C1DeCqKv.js.map} +1 -1
  134. package/lib/SignUp-6SGx9Yyq.js +50 -0
  135. package/lib/SignUp-6SGx9Yyq.js.map +1 -0
  136. package/lib/{SyntaxHighlight-B0laqAqK.js → SyntaxHighlight-zvlnSnHB.js} +789 -778
  137. package/lib/{SyntaxHighlight-B0laqAqK.js.map → SyntaxHighlight-zvlnSnHB.js.map} +1 -1
  138. package/lib/{Toc-KzXCRqrX.js → Toc-Da9yp7lo.js} +5 -5
  139. package/lib/Toc-Da9yp7lo.js.map +1 -0
  140. package/lib/{ZudokuContext-BXTZApgy.js → ZudokuContext-BUZ5hkWB.js} +33 -31
  141. package/lib/ZudokuContext-BUZ5hkWB.js.map +1 -0
  142. package/lib/{chunk-PVWAREVJ-BO6B-RAk.js → chunk-PVWAREVJ-BMhpCH5D.js} +7 -7
  143. package/lib/{chunk-PVWAREVJ-BO6B-RAk.js.map → chunk-PVWAREVJ-BMhpCH5D.js.map} +1 -1
  144. package/lib/{circular-BWT7_Ahq.js → circular-DvuimBGQ.js} +2 -2
  145. package/lib/{circular-BWT7_Ahq.js.map → circular-DvuimBGQ.js.map} +1 -1
  146. package/lib/{createServer-zhJZSgor.js → createServer-D9UvCoDf.js} +4 -4
  147. package/lib/{createServer-zhJZSgor.js.map → createServer-D9UvCoDf.js.map} +1 -1
  148. package/lib/{errors-XqO6MsfU.js → errors-CuGgh3hf.js} +2 -2
  149. package/lib/{errors-XqO6MsfU.js.map → errors-CuGgh3hf.js.map} +1 -1
  150. package/lib/hook-CMeoxziF.js +40 -0
  151. package/lib/hook-CMeoxziF.js.map +1 -0
  152. package/lib/{index-BPSpOxTK.js → index-B1rmok4X.js} +148 -147
  153. package/lib/index-B1rmok4X.js.map +1 -0
  154. package/lib/{index-D8Btv4uT.js → index-Cr9_YzOZ.js} +826 -780
  155. package/lib/index-Cr9_YzOZ.js.map +1 -0
  156. package/lib/{index-C5L4favO.js → index-rYHsvtTo.js} +2 -2
  157. package/lib/{index-C5L4favO.js.map → index-rYHsvtTo.js.map} +1 -1
  158. package/lib/{mutation-CdGPxHNX.js → mutation-BSU0xu4m.js} +2 -2
  159. package/lib/{mutation-CdGPxHNX.js.map → mutation-BSU0xu4m.js.map} +1 -1
  160. package/lib/ui/Callout.js +18 -18
  161. package/lib/ui/Callout.js.map +1 -1
  162. package/lib/ui/CodeBlock.js +217 -7
  163. package/lib/ui/CodeBlock.js.map +1 -1
  164. package/lib/ui/EmbeddedCodeBlock.js +22 -19
  165. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  166. package/lib/ui/ReactComponentDoc.js +13 -13
  167. package/lib/ui/ReactComponentDoc.js.map +1 -1
  168. package/lib/ui/SyntaxHighlight.js +3 -3
  169. package/lib/{useExposedProps-Cd7Yg_uG.js → useExposedProps-U3pmsHaG.js} +2 -2
  170. package/lib/{useExposedProps-Cd7Yg_uG.js.map → useExposedProps-U3pmsHaG.js.map} +1 -1
  171. package/lib/zudoku.__internal.js +7 -7
  172. package/lib/zudoku.auth-auth0.js +13 -13
  173. package/lib/zudoku.auth-auth0.js.map +1 -1
  174. package/lib/zudoku.auth-azureb2c.js +28 -28
  175. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  176. package/lib/zudoku.auth-clerk.js +40 -40
  177. package/lib/zudoku.auth-clerk.js.map +1 -1
  178. package/lib/zudoku.auth-openid.js +53 -56
  179. package/lib/zudoku.auth-openid.js.map +1 -1
  180. package/lib/zudoku.auth-supabase.js +111 -52
  181. package/lib/zudoku.auth-supabase.js.map +1 -1
  182. package/lib/zudoku.components.js +6 -6
  183. package/lib/zudoku.hooks.js +4 -4
  184. package/lib/zudoku.plugin-api-catalog.js +5 -5
  185. package/lib/zudoku.plugin-api-keys.js +99 -99
  186. package/lib/zudoku.plugin-custom-pages.js +1 -1
  187. package/lib/zudoku.plugin-markdown.js +10 -9
  188. package/lib/zudoku.plugin-markdown.js.map +1 -1
  189. package/lib/zudoku.plugin-openapi.js +6 -7
  190. package/lib/zudoku.plugin-openapi.js.map +1 -1
  191. package/lib/zudoku.plugin-redirect.js +1 -1
  192. package/lib/zudoku.plugin-search-pagefind.js +38 -38
  193. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  194. package/lib/zudoku.router.js +2 -2
  195. package/package.json +18 -10
  196. package/src/app/entry.server.tsx +16 -6
  197. package/src/app/main.css +61 -9
  198. package/src/lib/authentication/authentication.ts +22 -4
  199. package/src/lib/authentication/components/OAuthErrorPage.tsx +1 -1
  200. package/src/lib/authentication/components/SignIn.tsx +7 -5
  201. package/src/lib/authentication/components/SignOut.tsx +7 -6
  202. package/src/lib/authentication/components/SignUp.tsx +5 -8
  203. package/src/lib/authentication/hook.ts +21 -10
  204. package/src/lib/authentication/providers/auth0.tsx +2 -1
  205. package/src/lib/authentication/providers/azureb2c.tsx +10 -3
  206. package/src/lib/authentication/providers/clerk.tsx +9 -2
  207. package/src/lib/authentication/providers/openid.tsx +20 -15
  208. package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
  209. package/src/lib/authentication/providers/supabase.tsx +59 -43
  210. package/src/lib/authentication/state.ts +3 -23
  211. package/src/lib/components/Zudoku.tsx +3 -3
  212. package/src/lib/components/navigation/Toc.tsx +3 -3
  213. package/src/lib/core/RouteGuard.tsx +33 -13
  214. package/src/lib/core/ZudokuContext.ts +3 -0
  215. package/src/lib/plugins/markdown/MdxPage.tsx +4 -1
  216. package/src/lib/plugins/markdown/index.tsx +2 -0
  217. package/src/lib/plugins/openapi/index.tsx +9 -29
  218. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +2 -2
  219. package/src/lib/plugins/openapi/playground/Playground.tsx +13 -2
  220. package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +20 -1
  221. package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +2 -2
  222. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +102 -58
  223. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
  224. package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +3 -0
  225. package/src/lib/shiki.ts +16 -2
  226. package/src/lib/ui/Callout.tsx +10 -5
  227. package/src/lib/ui/EmbeddedCodeBlock.tsx +6 -3
  228. package/src/lib/ui/ReactComponentDoc.tsx +17 -17
  229. package/src/lib/ui/SyntaxHighlight.tsx +6 -1
  230. package/src/lib/util/MdxComponents.tsx +3 -5
  231. package/src/lib/util/syncZustandState.ts +22 -0
  232. package/lib/CodeBlock-CanTUJLl.js +0 -221
  233. package/lib/CodeBlock-CanTUJLl.js.map +0 -1
  234. package/lib/ErrorAlert-VBJ8aHH7.js.map +0 -1
  235. package/lib/MdxPage-DFRNwSsc.js.map +0 -1
  236. package/lib/RouteGuard-Bg0Lu0OU.js +0 -56
  237. package/lib/RouteGuard-Bg0Lu0OU.js.map +0 -1
  238. package/lib/SignUp-BraHuRN_.js +0 -56
  239. package/lib/SignUp-BraHuRN_.js.map +0 -1
  240. package/lib/Toc-KzXCRqrX.js.map +0 -1
  241. package/lib/ZudokuContext-BXTZApgy.js.map +0 -1
  242. package/lib/hook-CAebs2rv.js +0 -31
  243. package/lib/hook-CAebs2rv.js.map +0 -1
  244. package/lib/index-BPSpOxTK.js.map +0 -1
  245. package/lib/index-D8Btv4uT.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { R as a, c as r, n as u } from "./ZudokuContext-BXTZApgy.js";
1
+ import { R as a, c as r, n as u } from "./ZudokuContext-BUZ5hkWB.js";
2
2
  var d = class extends a {
3
3
  #e;
4
4
  #t;
@@ -193,4 +193,4 @@ export {
193
193
  d as M,
194
194
  h as g
195
195
  };
196
- //# sourceMappingURL=mutation-CdGPxHNX.js.map
196
+ //# sourceMappingURL=mutation-BSU0xu4m.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutation-CdGPxHNX.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/mutation.js"],"sourcesContent":["// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map"],"names":["Mutation","Removable","#observers","#mutationCache","#retryer","config","getDefaultState","options","observer","x","variables","onContinue","#dispatch","createRetryer","failureCount","error","restored","isPaused","context","data","action","reducer","state","notifyManager"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"mutation-BSU0xu4m.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/mutation.js"],"sourcesContent":["// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map"],"names":["Mutation","Removable","#observers","#mutationCache","#retryer","config","getDefaultState","options","observer","x","variables","onContinue","#dispatch","createRetryer","failureCount","error","restored","isPaused","context","data","action","reducer","state","notifyManager"],"mappings":"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","x_google_ignoreList":[0]}
package/lib/ui/Callout.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { j as o } from "../jsx-runtime-BzflLqGi.js";
2
- import { ShieldAlertIcon as u, AlertTriangleIcon as k, InfoIcon as l, LightbulbIcon as m } from "lucide-react";
2
+ import { ShieldAlertIcon as k, AlertTriangleIcon as u, InfoIcon as l, LightbulbIcon as m } from "lucide-react";
3
3
  import { c as t } from "../cn-dYga0KKN.js";
4
4
  const y = {
5
5
  note: {
@@ -7,7 +7,7 @@ const y = {
7
7
  bg: "bg-gray-100 dark:bg-zinc-800/50",
8
8
  iconColor: "text-gray-600 dark:text-zinc-300",
9
9
  titleColor: "text-gray-600 dark:text-zinc-300",
10
- textColor: "text-gray-600 dark:text-zinc-300",
10
+ textColor: "text-gray-600 dark:text-zinc-300 [&_a]:hover:text-gray-700 [&_a]:dark:hover:text-zinc-400",
11
11
  Icon: l
12
12
  },
13
13
  tip: {
@@ -15,7 +15,7 @@ const y = {
15
15
  bg: "bg-green-200/25 dark:bg-green-950/70",
16
16
  iconColor: "text-green-600 dark:text-green-200",
17
17
  titleColor: "text-green-700 dark:text-green-200",
18
- textColor: "text-green-600 dark:text-green-50",
18
+ textColor: "text-green-600 dark:text-green-50 [&_a]:hover:text-green-700 [&_a]:dark:hover:text-green-300",
19
19
  Icon: m
20
20
  },
21
21
  info: {
@@ -23,7 +23,7 @@ const y = {
23
23
  bg: "bg-blue-50 dark:bg-blue-950/40",
24
24
  iconColor: "text-blue-400 dark:text-blue-200",
25
25
  titleColor: "text-blue-700 dark:text-blue-200",
26
- textColor: "text-blue-600 dark:text-blue-100",
26
+ textColor: "text-blue-600 dark:text-blue-100 [&_a]:hover:text-blue-800 [&_a]:dark:hover:text-blue-300",
27
27
  Icon: l
28
28
  },
29
29
  caution: {
@@ -31,25 +31,25 @@ const y = {
31
31
  bg: "bg-yellow-100/60 dark:bg-yellow-400/10",
32
32
  iconColor: "text-yellow-500 dark:text-yellow-300",
33
33
  titleColor: "text-yellow-600 dark:text-yellow-300",
34
- textColor: "text-yellow-700 dark:text-yellow-200",
35
- Icon: k
34
+ textColor: "text-yellow-700 dark:text-yellow-200 [&_a]:hover:text-yellow-800 [&_a]:dark:hover:text-yellow-300",
35
+ Icon: u
36
36
  },
37
37
  danger: {
38
38
  border: "border-rose-400 dark:border-rose-800",
39
39
  bg: "bg-rose-50 dark:bg-rose-950/40",
40
40
  iconColor: "text-rose-400 dark:text-rose-300",
41
41
  titleColor: "text-rose-800 dark:text-rose-300",
42
- textColor: "text-rose-700 dark:text-rose-100",
43
- Icon: u
42
+ textColor: "text-rose-700 dark:text-rose-100 [&_a]:hover:text-rose-800 [&_a]:dark:hover:text-rose-300",
43
+ Icon: k
44
44
  }
45
- }, w = ({
46
- type: d,
47
- children: a,
45
+ }, f = ({
46
+ type: a,
47
+ children: d,
48
48
  title: e,
49
49
  className: n,
50
50
  icon: r = !0
51
51
  }) => {
52
- const { border: b, bg: s, iconColor: x, titleColor: i, textColor: c, Icon: g } = y[d];
52
+ const { border: x, bg: b, iconColor: s, titleColor: i, textColor: g, Icon: c } = y[a];
53
53
  return /* @__PURE__ */ o.jsxs(
54
54
  "div",
55
55
  {
@@ -61,15 +61,15 @@ const y = {
61
61
  "[&_.code-block-wrapper]:border",
62
62
  "[&_ul]:list-disc [&_ol]:list-decimal [&_ul]:ps-4 [&_ul>li]:ps-1 [&_ul>li]:my-1",
63
63
  r && e && "items-center",
64
+ x,
64
65
  b,
65
- s,
66
66
  n
67
67
  ),
68
68
  children: [
69
69
  r && /* @__PURE__ */ o.jsx(
70
- g,
70
+ c,
71
71
  {
72
- className: t(e ? "align-middle" : "translate-y-1", x),
72
+ className: t(e ? "align-middle" : "translate-y-1", s),
73
73
  size: 20,
74
74
  "aria-hidden": "true"
75
75
  }
@@ -81,10 +81,10 @@ const y = {
81
81
  className: t(
82
82
  r && "col-start-2",
83
83
  !e && r && "row-start-1",
84
- c,
84
+ g,
85
85
  "overflow-x-auto"
86
86
  ),
87
- children: a
87
+ children: d
88
88
  }
89
89
  )
90
90
  ]
@@ -92,6 +92,6 @@ const y = {
92
92
  );
93
93
  };
94
94
  export {
95
- w as Callout
95
+ f as Callout
96
96
  };
97
97
  //# sourceMappingURL=Callout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Callout.js","sources":["../../src/lib/ui/Callout.tsx"],"sourcesContent":["import {\n AlertTriangleIcon,\n InfoIcon,\n LightbulbIcon,\n type LucideIcon,\n ShieldAlertIcon,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst stylesMap = {\n note: {\n border: \"border-gray-300 dark:border-zinc-800\",\n bg: \"bg-gray-100 dark:bg-zinc-800/50\",\n iconColor: \"text-gray-600 dark:text-zinc-300\",\n titleColor: \"text-gray-600 dark:text-zinc-300\",\n textColor: \"text-gray-600 dark:text-zinc-300\",\n Icon: InfoIcon as LucideIcon,\n },\n tip: {\n border: \"border-green-500 dark:border-green-800\",\n bg: \"bg-green-200/25 dark:bg-green-950/70\",\n iconColor: \"text-green-600 dark:text-green-200\",\n titleColor: \"text-green-700 dark:text-green-200\",\n textColor: \"text-green-600 dark:text-green-50\",\n Icon: LightbulbIcon as LucideIcon,\n },\n info: {\n border: \"border-blue-400 dark:border-blue-900/60\",\n bg: \"bg-blue-50 dark:bg-blue-950/40\",\n iconColor: \"text-blue-400 dark:text-blue-200\",\n titleColor: \"text-blue-700 dark:text-blue-200\",\n textColor: \"text-blue-600 dark:text-blue-100\",\n Icon: InfoIcon as LucideIcon,\n },\n caution: {\n border: \"border-yellow-400 dark:border-yellow-400/25\",\n bg: \"bg-yellow-100/60 dark:bg-yellow-400/10\",\n iconColor: \"text-yellow-500 dark:text-yellow-300\",\n titleColor: \"text-yellow-600 dark:text-yellow-300\",\n textColor: \"text-yellow-700 dark:text-yellow-200\",\n Icon: AlertTriangleIcon as LucideIcon,\n },\n danger: {\n border: \"border-rose-400 dark:border-rose-800\",\n bg: \"bg-rose-50 dark:bg-rose-950/40\",\n iconColor: \"text-rose-400 dark:text-rose-300\",\n titleColor: \"text-rose-800 dark:text-rose-300\",\n textColor: \"text-rose-700 dark:text-rose-100\",\n Icon: ShieldAlertIcon as LucideIcon,\n },\n} as const;\n\ntype CalloutProps = {\n type: keyof typeof stylesMap;\n title?: string;\n children: ReactNode;\n className?: string;\n icon?: boolean;\n};\n\nexport const Callout = ({\n type,\n children,\n title,\n className,\n icon = true,\n}: CalloutProps) => {\n const { border, bg, iconColor, titleColor, textColor, Icon } =\n stylesMap[type];\n\n return (\n <div\n className={cn(\n \"not-prose rounded-md border p-4 text-md my-2\",\n icon &&\n \"grid grid-cols-[min-content_1fr] items-baseline grid-rows-[fit-content_1fr] gap-x-4 gap-y-2\",\n !icon && title && \"flex flex-col gap-2\",\n \"[&_a]:underline [&_a]:decoration-current [&_a]:decoration-from-font [&_a]:underline-offset-4 hover:[&_a]:decoration-1\",\n \"[&_.code-block-wrapper]:border\",\n \"[&_ul]:list-disc [&_ol]:list-decimal [&_ul]:ps-4 [&_ul>li]:ps-1 [&_ul>li]:my-1\",\n icon && title && \"items-center\",\n border,\n bg,\n className,\n )}\n >\n {icon && (\n <Icon\n className={cn(!title ? \"translate-y-1\" : \"align-middle\", iconColor)}\n size={20}\n aria-hidden=\"true\"\n />\n )}\n {title && <h3 className={cn(\"font-medium\", titleColor)}>{title}</h3>}\n <div\n className={cn(\n icon && \"col-start-2\",\n !title && icon && \"row-start-1\",\n textColor,\n \"overflow-x-auto\",\n )}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["stylesMap","InfoIcon","LightbulbIcon","AlertTriangleIcon","ShieldAlertIcon","Callout","type","children","title","className","icon","border","bg","iconColor","titleColor","textColor","Icon","jsxs","cn","jsx"],"mappings":";;;AAUA,MAAMA,IAAY;AAAA,EAChB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMC;AAAA,EAAA;AAAA,EAER,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMC;AAAA,EAAA;AAAA,EAER,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMD;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAME;AAAA,EAAA;AAAA,EAER,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,MAAMC;AAAA,EAAA;AAEV,GAUaC,IAAU,CAAC;AAAA,EACtB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AACT,MAAoB;AAClB,QAAM,EAAE,QAAAC,GAAQ,IAAAC,GAAI,WAAAC,GAAW,YAAAC,GAAY,WAAAC,GAAW,MAAAC,EAAA,IACpDhB,EAAUM,CAAI;AAEhB,SACEW,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAR,KACE;AAAA,QACF,CAACA,KAAQF,KAAS;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACAE,KAAQF,KAAS;AAAA,QACjBG;AAAA,QACAC;AAAA,QACAH;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAAC,KACCS,gBAAAA,EAAAA;AAAAA,UAACH;AAAA,UAAA;AAAA,YACC,WAAWE,EAAIV,IAA0B,iBAAlB,iBAAkCK,CAAS;AAAA,YAClE,MAAM;AAAA,YACN,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,QAGfL,2BAAU,MAAA,EAAG,WAAWU,EAAG,eAAeJ,CAAU,GAAI,UAAAN,GAAM;AAAA,QAC/DW,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACTR,KAAQ;AAAA,cACR,CAACF,KAASE,KAAQ;AAAA,cAClBK;AAAA,cACA;AAAA,YAAA;AAAA,YAGD,UAAAR;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Callout.js","sources":["../../src/lib/ui/Callout.tsx"],"sourcesContent":["import {\n AlertTriangleIcon,\n InfoIcon,\n LightbulbIcon,\n type LucideIcon,\n ShieldAlertIcon,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst stylesMap = {\n note: {\n border: \"border-gray-300 dark:border-zinc-800\",\n bg: \"bg-gray-100 dark:bg-zinc-800/50\",\n iconColor: \"text-gray-600 dark:text-zinc-300\",\n titleColor: \"text-gray-600 dark:text-zinc-300\",\n textColor:\n \"text-gray-600 dark:text-zinc-300 [&_a]:hover:text-gray-700 [&_a]:dark:hover:text-zinc-400\",\n Icon: InfoIcon as LucideIcon,\n },\n tip: {\n border: \"border-green-500 dark:border-green-800\",\n bg: \"bg-green-200/25 dark:bg-green-950/70\",\n iconColor: \"text-green-600 dark:text-green-200\",\n titleColor: \"text-green-700 dark:text-green-200\",\n textColor:\n \"text-green-600 dark:text-green-50 [&_a]:hover:text-green-700 [&_a]:dark:hover:text-green-300\",\n Icon: LightbulbIcon as LucideIcon,\n },\n info: {\n border: \"border-blue-400 dark:border-blue-900/60\",\n bg: \"bg-blue-50 dark:bg-blue-950/40\",\n iconColor: \"text-blue-400 dark:text-blue-200\",\n titleColor: \"text-blue-700 dark:text-blue-200\",\n textColor:\n \"text-blue-600 dark:text-blue-100 [&_a]:hover:text-blue-800 [&_a]:dark:hover:text-blue-300\",\n Icon: InfoIcon as LucideIcon,\n },\n caution: {\n border: \"border-yellow-400 dark:border-yellow-400/25\",\n bg: \"bg-yellow-100/60 dark:bg-yellow-400/10\",\n iconColor: \"text-yellow-500 dark:text-yellow-300\",\n titleColor: \"text-yellow-600 dark:text-yellow-300\",\n textColor:\n \"text-yellow-700 dark:text-yellow-200 [&_a]:hover:text-yellow-800 [&_a]:dark:hover:text-yellow-300\",\n Icon: AlertTriangleIcon as LucideIcon,\n },\n danger: {\n border: \"border-rose-400 dark:border-rose-800\",\n bg: \"bg-rose-50 dark:bg-rose-950/40\",\n iconColor: \"text-rose-400 dark:text-rose-300\",\n titleColor: \"text-rose-800 dark:text-rose-300\",\n textColor:\n \"text-rose-700 dark:text-rose-100 [&_a]:hover:text-rose-800 [&_a]:dark:hover:text-rose-300\",\n Icon: ShieldAlertIcon as LucideIcon,\n },\n} as const;\n\ntype CalloutProps = {\n type: keyof typeof stylesMap;\n title?: string;\n children: ReactNode;\n className?: string;\n icon?: boolean;\n};\n\nexport const Callout = ({\n type,\n children,\n title,\n className,\n icon = true,\n}: CalloutProps) => {\n const { border, bg, iconColor, titleColor, textColor, Icon } =\n stylesMap[type];\n\n return (\n <div\n className={cn(\n \"not-prose rounded-md border p-4 text-md my-2\",\n icon &&\n \"grid grid-cols-[min-content_1fr] items-baseline grid-rows-[fit-content_1fr] gap-x-4 gap-y-2\",\n !icon && title && \"flex flex-col gap-2\",\n \"[&_a]:underline [&_a]:decoration-current [&_a]:decoration-from-font [&_a]:underline-offset-4 hover:[&_a]:decoration-1\",\n \"[&_.code-block-wrapper]:border\",\n \"[&_ul]:list-disc [&_ol]:list-decimal [&_ul]:ps-4 [&_ul>li]:ps-1 [&_ul>li]:my-1\",\n icon && title && \"items-center\",\n border,\n bg,\n className,\n )}\n >\n {icon && (\n <Icon\n className={cn(!title ? \"translate-y-1\" : \"align-middle\", iconColor)}\n size={20}\n aria-hidden=\"true\"\n />\n )}\n {title && <h3 className={cn(\"font-medium\", titleColor)}>{title}</h3>}\n <div\n className={cn(\n icon && \"col-start-2\",\n !title && icon && \"row-start-1\",\n textColor,\n \"overflow-x-auto\",\n )}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["stylesMap","InfoIcon","LightbulbIcon","AlertTriangleIcon","ShieldAlertIcon","Callout","type","children","title","className","icon","border","bg","iconColor","titleColor","textColor","Icon","jsxs","cn","jsx"],"mappings":";;;AAUA,MAAMA,IAAY;AAAA,EAChB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WACE;AAAA,IACF,MAAMC;AAAA,EAAA;AAAA,EAER,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WACE;AAAA,IACF,MAAMC;AAAA,EAAA;AAAA,EAER,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WACE;AAAA,IACF,MAAMD;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WACE;AAAA,IACF,MAAME;AAAA,EAAA;AAAA,EAER,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WACE;AAAA,IACF,MAAMC;AAAA,EAAA;AAEV,GAUaC,IAAU,CAAC;AAAA,EACtB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AACT,MAAoB;AAClB,QAAM,EAAE,QAAAC,GAAQ,IAAAC,GAAI,WAAAC,GAAW,YAAAC,GAAY,WAAAC,GAAW,MAAAC,EAAA,IACpDhB,EAAUM,CAAI;AAEhB,SACEW,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAR,KACE;AAAA,QACF,CAACA,KAAQF,KAAS;AAAA,QAClB;AAAA,QACA;AAAA,QACA;AAAA,QACAE,KAAQF,KAAS;AAAA,QACjBG;AAAA,QACAC;AAAA,QACAH;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAAC,KACCS,gBAAAA,EAAAA;AAAAA,UAACH;AAAA,UAAA;AAAA,YACC,WAAWE,EAAIV,IAA0B,iBAAlB,iBAAkCK,CAAS;AAAA,YAClE,MAAM;AAAA,YACN,eAAY;AAAA,UAAA;AAAA,QAAA;AAAA,QAGfL,2BAAU,MAAA,EAAG,WAAWU,EAAG,eAAeJ,CAAU,GAAI,UAAAN,GAAM;AAAA,QAC/DW,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACTR,KAAQ;AAAA,cACR,CAACF,KAASE,KAAQ;AAAA,cAClBK;AAAA,cACA;AAAA,YAAA;AAAA,YAGD,UAAAR;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,10 +1,220 @@
1
- import "../jsx-runtime-BzflLqGi.js";
2
- import "lucide-react";
3
- import "react";
4
- import { C } from "../CodeBlock-CanTUJLl.js";
5
- import "../cn-dYga0KKN.js";
6
- import "../useCopyToClipboard-B_085nfO.js";
1
+ import { j as o } from "../jsx-runtime-BzflLqGi.js";
2
+ import { CheckIcon as d, CopyIcon as h } from "lucide-react";
3
+ import { lazy as t, Suspense as w, useRef as x } from "react";
4
+ import { c as s } from "../cn-dYga0KKN.js";
5
+ import { u } from "../useCopyToClipboard-B_085nfO.js";
6
+ const $ = {
7
+ typescript: {
8
+ pattern: /^(ts|typescript)$/,
9
+ icon: t(() => import("../typescript-C26xdBDC.js")),
10
+ width: 15
11
+ },
12
+ javascript: {
13
+ pattern: /^(js|javascript)$/,
14
+ icon: t(() => import("../javascript-CcmIpL4G.js"))
15
+ },
16
+ react: {
17
+ pattern: /^(react|tsx|jsx)$/,
18
+ icon: t(() => import("../react-DHpVpxRv.js")),
19
+ width: 22
20
+ },
21
+ markdown: {
22
+ pattern: /^(md|markdown)$/,
23
+ icon: t(() => import("../markdown-DYGWCmGQ.js")),
24
+ width: 22
25
+ },
26
+ mdx: {
27
+ pattern: /^mdx$/,
28
+ icon: t(() => import("../mdx-CHwYvXd4.js")),
29
+ width: 28
30
+ },
31
+ java: {
32
+ pattern: /^(java)$/,
33
+ icon: t(() => import("../java-CVLzHfb1.js")),
34
+ width: 22
35
+ },
36
+ json: {
37
+ pattern: /^jsonc?$/,
38
+ icon: t(() => import("../json-4AyP4uiY.js"))
39
+ },
40
+ yaml: {
41
+ pattern: /^yaml$/,
42
+ icon: t(() => import("../yaml-BGsJItKv.js"))
43
+ },
44
+ toml: {
45
+ pattern: /^toml$/,
46
+ icon: t(() => import("../toml-Co9mpdct.js"))
47
+ },
48
+ shell: {
49
+ pattern: /^(shell|bash|sh|zsh|term|terminal|ansi)$/,
50
+ icon: t(() => import("../shell-HUv9oVtp.js"))
51
+ },
52
+ python: {
53
+ pattern: /^(py|python)$/,
54
+ icon: t(() => import("../python-QIQAE5Ei.js"))
55
+ },
56
+ csharp: {
57
+ pattern: /^(cs|csharp|vb)$/,
58
+ icon: t(() => import("../csharp-D8MIL50B.js")),
59
+ width: 20
60
+ },
61
+ rust: {
62
+ pattern: /^(rs|rust)$/,
63
+ icon: t(() => import("../rust-DYnLHAi2.js")),
64
+ width: 20
65
+ },
66
+ ruby: {
67
+ pattern: /^(rb|ruby)$/,
68
+ icon: t(() => import("../ruby-B2dU8Ny5.js"))
69
+ },
70
+ php: {
71
+ pattern: /^php$/,
72
+ icon: t(() => import("../php-rQXzo7K_.js")),
73
+ width: 24
74
+ },
75
+ html: {
76
+ pattern: /^html?$/,
77
+ icon: t(() => import("../html-MGnI2uzP.js")),
78
+ width: 15
79
+ },
80
+ css: {
81
+ pattern: /^css$/,
82
+ icon: t(() => import("../css-Bt6hr1td.js"))
83
+ },
84
+ objectivec: {
85
+ pattern: /^(objc|objectivec)$/,
86
+ icon: t(() => import("../objectivec-HZY8shkd.js")),
87
+ width: 16
88
+ },
89
+ swift: {
90
+ pattern: /^swift$/,
91
+ icon: t(() => import("../swift-B4z6ig1Z.js"))
92
+ },
93
+ go: {
94
+ pattern: /^go$/,
95
+ icon: t(() => import("../go-D2VsmIOS.js")),
96
+ width: 28
97
+ },
98
+ xml: {
99
+ pattern: /^xml$/,
100
+ icon: t(() => import("../xml-BQOOC04j.js"))
101
+ },
102
+ kotlin: {
103
+ pattern: /^(kt|kotlin)$/,
104
+ icon: t(() => import("../kotlin-v2plddBQ.js")),
105
+ width: 14
106
+ },
107
+ graphql: {
108
+ pattern: /^(gql|graphql)$/,
109
+ icon: t(() => import("../graphql-BtA6M4m5.js"))
110
+ },
111
+ zig: {
112
+ pattern: /^zig$/,
113
+ icon: t(() => import("../zig-CUV2sTct.js")),
114
+ width: 28
115
+ },
116
+ scala: {
117
+ pattern: /^scala$/,
118
+ icon: t(() => import("../scala-CeKInBR8.js")),
119
+ width: 18
120
+ },
121
+ dart: {
122
+ pattern: /^dart$/,
123
+ icon: t(() => import("../dart-B0vy1jWB.js")),
124
+ width: 20
125
+ },
126
+ ocaml: {
127
+ pattern: /^ocaml$/,
128
+ icon: t(() => import("../ocaml-DqsdDdwb.js")),
129
+ width: 20
130
+ },
131
+ c: {
132
+ pattern: /^c$/,
133
+ icon: t(() => import("../c-B-NUhs61.js")),
134
+ width: 20
135
+ },
136
+ cpp: {
137
+ pattern: /^(cpp|c\+\+)$/,
138
+ icon: t(() => import("../cpp-79Paht7T.js")),
139
+ width: 20
140
+ },
141
+ commonlisp: {
142
+ pattern: /^(clisp|common-lisp|lisp|cl|commonlisp)$/,
143
+ icon: t(() => import("../commonlisp-De080z23.js")),
144
+ width: 18
145
+ },
146
+ elixir: {
147
+ pattern: /^elixir$/,
148
+ icon: t(() => import("../elixir-Ds8r0sF8.js")),
149
+ width: 18
150
+ },
151
+ powershell: {
152
+ pattern: /^(pshell|powershell|ps1)$/,
153
+ icon: t(() => import("../powershell-CQje9pm1.js")),
154
+ width: 18
155
+ }
156
+ }, b = ({ language: i }) => {
157
+ if (!i) return null;
158
+ const r = Object.values($).find((n) => n.pattern.test(i));
159
+ if (!r) return null;
160
+ const e = r.width ?? 18;
161
+ return /* @__PURE__ */ o.jsx(w, { fallback: /* @__PURE__ */ o.jsx("div", { style: { width: e, height: "1em" } }), children: /* @__PURE__ */ o.jsx(r.icon, { className: "h-auto", style: { width: e } }) });
162
+ }, k = ({
163
+ children: i,
164
+ title: r = "Code",
165
+ language: e,
166
+ showCopy: n = "hover",
167
+ showLanguageIndicator: j,
168
+ showLineNumbers: a,
169
+ ...m
170
+ }) => {
171
+ const [p, l] = u(), c = x(null);
172
+ return i ? /* @__PURE__ */ o.jsxs(
173
+ "div",
174
+ {
175
+ className: s(
176
+ "border code-block-wrapper relative group rounded-md overflow-hidden",
177
+ a && "line-numbers",
178
+ m.className
179
+ ),
180
+ children: [
181
+ /* @__PURE__ */ o.jsxs("div", { className: "border-b flex items-center h-10 font-sans bg-black/2", children: [
182
+ /* @__PURE__ */ o.jsxs("div", { className: "flex items-center gap-1.5 flex-1 text-sm w-full px-3", children: [
183
+ /* @__PURE__ */ o.jsx(b, { language: e }),
184
+ r
185
+ ] }),
186
+ " ",
187
+ n !== "never" && /* @__PURE__ */ o.jsx(
188
+ "button",
189
+ {
190
+ type: "button",
191
+ "aria-label": "Copy code",
192
+ title: "Copy code",
193
+ className: s(
194
+ "transition px-2 py-2 mx-1 rounded-sm",
195
+ !p && "hover:bg-accent hover:brightness-95"
196
+ ),
197
+ disabled: p,
198
+ onClick: () => {
199
+ c.current?.textContent && l(c.current.textContent);
200
+ },
201
+ children: p ? /* @__PURE__ */ o.jsx(d, { className: "text-emerald-600", size: 14 }) : /* @__PURE__ */ o.jsx(h, { size: 14 })
202
+ }
203
+ )
204
+ ] }),
205
+ /* @__PURE__ */ o.jsx(
206
+ "div",
207
+ {
208
+ className: "code-block text-sm not-prose scrollbar [&_code]:px-3 [&_code]:py-2",
209
+ ref: c,
210
+ children: i
211
+ }
212
+ )
213
+ ]
214
+ }
215
+ ) : null;
216
+ };
7
217
  export {
8
- C as CodeBlock
218
+ k as CodeBlock
9
219
  };
10
220
  //# sourceMappingURL=CodeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"CodeBlock.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 zig: {\n pattern: /^zig$/,\n icon: lazy(() => import(\"../assets/language-icons/zig.js\")),\n width: 28,\n },\n scala: {\n pattern: /^scala$/,\n icon: lazy(() => import(\"../assets/language-icons/scala.js\")),\n width: 18,\n },\n dart: {\n pattern: /^dart$/,\n icon: lazy(() => import(\"../assets/language-icons/dart.js\")),\n width: 20,\n },\n ocaml: {\n pattern: /^ocaml$/,\n icon: lazy(() => import(\"../assets/language-icons/ocaml.js\")),\n width: 20,\n },\n c: {\n pattern: /^c$/,\n icon: lazy(() => import(\"../assets/language-icons/c.js\")),\n width: 20,\n },\n cpp: {\n pattern: /^(cpp|c\\+\\+)$/,\n icon: lazy(() => import(\"../assets/language-icons/cpp.js\")),\n width: 20,\n },\n commonlisp: {\n pattern: /^(clisp|common-lisp|lisp|cl|commonlisp)$/,\n icon: lazy(() => import(\"../assets/language-icons/commonlisp.js\")),\n width: 18,\n },\n elixir: {\n pattern: /^elixir$/,\n icon: lazy(() => import(\"../assets/language-icons/elixir.js\")),\n width: 18,\n },\n powershell: {\n pattern: /^(pshell|powershell|ps1)$/,\n icon: lazy(() => import(\"../assets/language-icons/powershell.js\")),\n width: 18,\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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"}
@@ -1,41 +1,44 @@
1
1
  import { j as e } from "../jsx-runtime-BzflLqGi.js";
2
- import { CheckIcon as m, CopyIcon as p } from "lucide-react";
3
- import { useState as x, useRef as f } from "react";
2
+ import { CheckIcon as m, CopyIcon as x } from "lucide-react";
3
+ import { useState as f, useRef as b } from "react";
4
4
  import { c as t } from "../cn-dYga0KKN.js";
5
- const j = ({
5
+ const g = ({
6
6
  children: s,
7
+ fullHeight: n,
7
8
  language: d,
8
9
  showCopy: o = "hover",
9
- showCopyText: n,
10
- showLanguageIndicator: l = !0,
10
+ showCopyText: a,
11
+ showLanguageIndicator: u = !0,
11
12
  showLineNumbers: c,
12
- ...u
13
+ ...p
13
14
  }) => {
14
- const [a, i] = x(!1), r = f(null);
15
+ const [i, l] = f(!1), r = b(null);
15
16
  return s ? /* @__PURE__ */ e.jsxs(
16
17
  "div",
17
18
  {
18
19
  className: t(
19
20
  "code-block-wrapper relative group bg-muted/50",
20
- c && "line-numbers"
21
+ c && "line-numbers",
22
+ n && "h-full"
21
23
  ),
22
24
  children: [
23
25
  /* @__PURE__ */ e.jsx(
24
26
  "div",
25
27
  {
26
28
  className: t(
27
- "code-block text-sm not-prose scrollbar overflow-x-auto [&>pre]:p-2",
28
- u.className
29
+ "code-block text-sm not-prose scrollbar [&>pre]:overflow-x-auto [&>pre]:p-2",
30
+ n && "h-full [&>pre]:h-full",
31
+ p.className
29
32
  ),
30
33
  ref: r,
31
34
  children: s
32
35
  }
33
36
  ),
34
- l && /* @__PURE__ */ e.jsx(
37
+ u && /* @__PURE__ */ e.jsx(
35
38
  "span",
36
39
  {
37
40
  className: t(
38
- "absolute top-1.5 end-3 !text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0",
41
+ "absolute top-1.5 end-3 text-[11px]! font-mono text-muted-foreground transition group-hover:opacity-0",
39
42
  o === "always" && "hidden"
40
43
  ),
41
44
  children: d
@@ -50,14 +53,14 @@ const j = ({
50
53
  className: t(
51
54
  "absolute top-2 end-2 p-2 transition hover:shadow-xs active:shadow-none active:inset-shadow-xs hover:outline outline-border rounded-md text-sm text-muted-foreground",
52
55
  o === "hover" && "opacity-0 group-hover:opacity-100",
53
- n && "flex gap-2 items-center font-medium"
56
+ a && "flex gap-2 items-center font-medium"
54
57
  ),
55
- disabled: a,
58
+ disabled: i,
56
59
  onClick: () => {
57
- r.current?.textContent && (i(!0), navigator.clipboard.writeText(r.current.textContent), setTimeout(() => i(!1), 2e3));
60
+ r.current?.textContent && (l(!0), navigator.clipboard.writeText(r.current.textContent), setTimeout(() => l(!1), 2e3));
58
61
  },
59
62
  children: [
60
- a ? /* @__PURE__ */ e.jsx(
63
+ i ? /* @__PURE__ */ e.jsx(
61
64
  m,
62
65
  {
63
66
  className: "text-emerald-600",
@@ -65,8 +68,8 @@ const j = ({
65
68
  strokeWidth: 2.5,
66
69
  absoluteStrokeWidth: !0
67
70
  }
68
- ) : /* @__PURE__ */ e.jsx(p, { size: 16 }),
69
- n && "Copy"
71
+ ) : /* @__PURE__ */ e.jsx(x, { size: 16 }),
72
+ a && "Copy"
70
73
  ]
71
74
  }
72
75
  )
@@ -75,6 +78,6 @@ const j = ({
75
78
  ) : null;
76
79
  };
77
80
  export {
78
- j as EmbeddedCodeBlock
81
+ g as EmbeddedCodeBlock
79
82
  };
80
83
  //# sourceMappingURL=EmbeddedCodeBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddedCodeBlock.js","sources":["../../src/lib/ui/EmbeddedCodeBlock.tsx"],"sourcesContent":["import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport type CodeBlockProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n children?: ReactNode;\n code?: ReactNode;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const EmbeddedCodeBlock = ({\n children,\n language,\n showCopy = \"hover\",\n showCopyText,\n showLanguageIndicator = true,\n showLineNumbers,\n ...props\n}: CodeBlockProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n if (!children) return null;\n\n return (\n <div\n className={cn(\n \"code-block-wrapper relative group bg-muted/50\",\n showLineNumbers && \"line-numbers\",\n )}\n >\n <div\n className={cn(\n \"code-block text-sm not-prose scrollbar overflow-x-auto [&>pre]:p-2\",\n props.className,\n )}\n ref={ref}\n >\n {children}\n </div>\n {showLanguageIndicator && (\n <span\n className={cn(\n \"absolute top-1.5 end-3 !text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\",\n showCopy === \"always\" && \"hidden\",\n )}\n >\n {language}\n </span>\n )}\n {showCopy !== \"never\" && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n title=\"Copy code\"\n className={cn(\n \"absolute top-2 end-2 p-2 transition hover:shadow-xs active:shadow-none active:inset-shadow-xs hover:outline outline-border rounded-md text-sm text-muted-foreground\",\n showCopy === \"hover\" && \"opacity-0 group-hover:opacity-100\",\n showCopyText && \"flex gap-2 items-center font-medium\",\n )}\n disabled={isCopied}\n onClick={() => {\n if (!ref.current?.textContent) return;\n\n setIsCopied(true);\n void navigator.clipboard.writeText(ref.current.textContent);\n setTimeout(() => setIsCopied(false), 2000);\n }}\n >\n {isCopied ? (\n <CheckIcon\n className=\"text-emerald-600\"\n size={16}\n strokeWidth={2.5}\n absoluteStrokeWidth\n />\n ) : (\n <CopyIcon size={16} />\n )}\n {showCopyText && \"Copy\"}\n </button>\n )}\n </div>\n );\n};\n"],"names":["EmbeddedCodeBlock","children","language","showCopy","showCopyText","showLanguageIndicator","showLineNumbers","props","isCopied","setIsCopied","useState","ref","useRef","jsxs","cn","jsx","CheckIcon","CopyIcon"],"mappings":";;;;AAmBO,MAAMA,IAAoB,CAAC;AAAA,EAChC,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,uBAAAC,IAAwB;AAAA,EACxB,iBAAAC;AAAA,EACA,GAAGC;AACL,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAMC,EAAuB,IAAI;AAEvC,SAAKX,IAGHY,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAR,KAAmB;AAAA,MAAA;AAAA,MAGrB,UAAA;AAAA,QAAAS,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAP,EAAM;AAAA,YAAA;AAAA,YAER,KAAAI;AAAA,YAEC,UAAAV;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFI,KACCU,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAX,MAAa,YAAY;AAAA,YAAA;AAAA,YAG1B,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJC,MAAa,WACZU,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,OAAM;AAAA,YACN,WAAWC;AAAA,cACT;AAAA,cACAX,MAAa,WAAW;AAAA,cACxBC,KAAgB;AAAA,YAAA;AAAA,YAElB,UAAUI;AAAA,YACV,SAAS,MAAM;AACb,cAAKG,EAAI,SAAS,gBAElBF,EAAY,EAAI,GACX,UAAU,UAAU,UAAUE,EAAI,QAAQ,WAAW,GAC1D,WAAW,MAAMF,EAAY,EAAK,GAAG,GAAI;AAAA,YAC3C;AAAA,YAEC,UAAA;AAAA,cAAAD,IACCO,gBAAAA,EAAAA;AAAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAM;AAAA,kBACN,aAAa;AAAA,kBACb,qBAAmB;AAAA,gBAAA;AAAA,cAAA,IAGrBD,gBAAAA,EAAAA,IAACE,GAAA,EAAS,MAAM,GAAA,CAAI;AAAA,cAErBb,KAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAAA,IA1DgB;AA8DxB;"}
1
+ {"version":3,"file":"EmbeddedCodeBlock.js","sources":["../../src/lib/ui/EmbeddedCodeBlock.tsx"],"sourcesContent":["import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport type CodeBlockProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n children?: ReactNode;\n code?: ReactNode;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const EmbeddedCodeBlock = ({\n children,\n fullHeight,\n language,\n showCopy = \"hover\",\n showCopyText,\n showLanguageIndicator = true,\n showLineNumbers,\n ...props\n}: CodeBlockProps & { fullHeight?: boolean }) => {\n const [isCopied, setIsCopied] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n if (!children) return null;\n\n return (\n <div\n className={cn(\n \"code-block-wrapper relative group bg-muted/50\",\n showLineNumbers && \"line-numbers\",\n fullHeight && \"h-full\",\n )}\n >\n <div\n className={cn(\n \"code-block text-sm not-prose scrollbar [&>pre]:overflow-x-auto [&>pre]:p-2\",\n fullHeight && \"h-full [&>pre]:h-full\",\n props.className,\n )}\n ref={ref}\n >\n {children}\n </div>\n {showLanguageIndicator && (\n <span\n className={cn(\n \"absolute top-1.5 end-3 text-[11px]! font-mono text-muted-foreground transition group-hover:opacity-0\",\n showCopy === \"always\" && \"hidden\",\n )}\n >\n {language}\n </span>\n )}\n {showCopy !== \"never\" && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n title=\"Copy code\"\n className={cn(\n \"absolute top-2 end-2 p-2 transition hover:shadow-xs active:shadow-none active:inset-shadow-xs hover:outline outline-border rounded-md text-sm text-muted-foreground\",\n showCopy === \"hover\" && \"opacity-0 group-hover:opacity-100\",\n showCopyText && \"flex gap-2 items-center font-medium\",\n )}\n disabled={isCopied}\n onClick={() => {\n if (!ref.current?.textContent) return;\n\n setIsCopied(true);\n void navigator.clipboard.writeText(ref.current.textContent);\n setTimeout(() => setIsCopied(false), 2000);\n }}\n >\n {isCopied ? (\n <CheckIcon\n className=\"text-emerald-600\"\n size={16}\n strokeWidth={2.5}\n absoluteStrokeWidth\n />\n ) : (\n <CopyIcon size={16} />\n )}\n {showCopyText && \"Copy\"}\n </button>\n )}\n </div>\n );\n};\n"],"names":["EmbeddedCodeBlock","children","fullHeight","language","showCopy","showCopyText","showLanguageIndicator","showLineNumbers","props","isCopied","setIsCopied","useState","ref","useRef","jsxs","cn","jsx","CheckIcon","CopyIcon"],"mappings":";;;;AAmBO,MAAMA,IAAoB,CAAC;AAAA,EAChC,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,uBAAAC,IAAwB;AAAA,EACxB,iBAAAC;AAAA,EACA,GAAGC;AACL,MAAiD;AAC/C,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAMC,EAAuB,IAAI;AAEvC,SAAKZ,IAGHa,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAR,KAAmB;AAAA,QACnBL,KAAc;AAAA,MAAA;AAAA,MAGhB,UAAA;AAAA,QAAAc,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAb,KAAc;AAAA,cACdM,EAAM;AAAA,YAAA;AAAA,YAER,KAAAI;AAAA,YAEC,UAAAX;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFK,KACCU,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAX,MAAa,YAAY;AAAA,YAAA;AAAA,YAG1B,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJC,MAAa,WACZU,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,OAAM;AAAA,YACN,WAAWC;AAAA,cACT;AAAA,cACAX,MAAa,WAAW;AAAA,cACxBC,KAAgB;AAAA,YAAA;AAAA,YAElB,UAAUI;AAAA,YACV,SAAS,MAAM;AACb,cAAKG,EAAI,SAAS,gBAElBF,EAAY,EAAI,GACX,UAAU,UAAU,UAAUE,EAAI,QAAQ,WAAW,GAC1D,WAAW,MAAMF,EAAY,EAAK,GAAG,GAAI;AAAA,YAC3C;AAAA,YAEC,UAAA;AAAA,cAAAD,IACCO,gBAAAA,EAAAA;AAAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAM;AAAA,kBACN,aAAa;AAAA,kBACb,qBAAmB;AAAA,gBAAA;AAAA,cAAA,IAGrBD,gBAAAA,EAAAA,IAACE,GAAA,EAAS,MAAM,GAAA,CAAI;AAAA,cAErBb,KAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAAA,IA5DgB;AAgExB;"}
@@ -1,21 +1,21 @@
1
1
  import { j as e } from "../jsx-runtime-BzflLqGi.js";
2
- import { Badge as t } from "./Badge.js";
3
- import { Card as i } from "./Card.js";
4
- const m = ({ component: n }) => {
5
- const r = n.__docgenInfo;
6
- return r ? /* @__PURE__ */ e.jsx(i, { className: "not-prose", children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2", children: [
7
- /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2 border-b p-6", children: [
8
- /* @__PURE__ */ e.jsx("h2", { className: "text-lg font-medium", children: "Component Properties" }),
9
- /* @__PURE__ */ e.jsx("p", { className: "text-sm text-muted-foreground", children: "The properties of the component." })
2
+ import { Badge as n } from "./Badge.js";
3
+ import { Card as t, CardContent as d, CardHeader as a, CardTitle as c, CardDescription as m } from "./Card.js";
4
+ const j = ({ component: i }) => {
5
+ const s = i.__docgenInfo;
6
+ return s ? /* @__PURE__ */ e.jsx(t, { className: "not-prose", children: /* @__PURE__ */ e.jsxs(d, { className: "p-0", children: [
7
+ /* @__PURE__ */ e.jsxs(a, { className: "border-b mb-1 px-4 py-5", children: [
8
+ /* @__PURE__ */ e.jsx(c, { children: "Component Properties" }),
9
+ /* @__PURE__ */ e.jsx(m, { children: "The properties of the component." })
10
10
  ] }),
11
- /* @__PURE__ */ e.jsx("div", { className: "grid grid-cols-[1fr_auto_auto] gap-2 divide-y", children: Object.entries(r.props).map(([o, s]) => /* @__PURE__ */ e.jsxs(
11
+ /* @__PURE__ */ e.jsx("div", { className: "grid grid-cols-[1fr_auto_auto] gap-2 divide-y -mx-4 px-4", children: Object.entries(s.props).map(([o, r]) => /* @__PURE__ */ e.jsxs(
12
12
  "div",
13
13
  {
14
- className: "px-6 pb-2 col-span-full grid grid-cols-subgrid",
14
+ className: "px-4 pb-2 col-span-full grid grid-cols-subgrid",
15
15
  children: [
16
16
  /* @__PURE__ */ e.jsx("span", { className: "font-medium text-primary", children: o }),
17
- /* @__PURE__ */ e.jsx("div", { children: s.required && /* @__PURE__ */ e.jsx(t, { className: "ml-2 font-mono", children: "required" }) }),
18
- /* @__PURE__ */ e.jsx("div", { children: typeof s.type == "object" && s.type.name && /* @__PURE__ */ e.jsx(t, { className: "ml-2 font-mono", variant: "muted", children: s.type.name }) })
17
+ /* @__PURE__ */ e.jsx("div", { children: r.required && /* @__PURE__ */ e.jsx(n, { className: "ml-2 font-mono", children: "required" }) }),
18
+ /* @__PURE__ */ e.jsx("div", { children: typeof r.type == "object" && r.type.name && /* @__PURE__ */ e.jsx(n, { className: "ml-2 font-mono", variant: "muted", children: r.type.name }) })
19
19
  ]
20
20
  },
21
21
  o
@@ -23,6 +23,6 @@ const m = ({ component: n }) => {
23
23
  ] }) }) : null;
24
24
  };
25
25
  export {
26
- m as ReactComponentDoc
26
+ j as ReactComponentDoc
27
27
  };
28
28
  //# sourceMappingURL=ReactComponentDoc.js.map