zudoku 0.37.1 → 0.39.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 (260) hide show
  1. package/dist/app/main.js +2 -0
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/app/tailwind.js +14 -0
  4. package/dist/app/tailwind.js.map +1 -1
  5. package/dist/config/validators/common.d.ts +287 -18
  6. package/dist/config/validators/common.js +2 -0
  7. package/dist/config/validators/common.js.map +1 -1
  8. package/dist/config/validators/validate.d.ts +107 -7
  9. package/dist/lib/authentication/authentication.d.ts +1 -0
  10. package/dist/lib/authentication/providers/clerk.js +19 -0
  11. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  12. package/dist/lib/authentication/providers/openid.d.ts +1 -0
  13. package/dist/lib/authentication/providers/openid.js +5 -0
  14. package/dist/lib/authentication/providers/openid.js.map +1 -1
  15. package/dist/lib/authentication/providers/supabase.js +5 -0
  16. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  17. package/dist/lib/authentication/state.d.ts +0 -26
  18. package/dist/lib/authentication/state.js +1 -16
  19. package/dist/lib/authentication/state.js.map +1 -1
  20. package/dist/lib/components/Heading.d.ts +1 -1
  21. package/dist/lib/components/Layout.js +5 -10
  22. package/dist/lib/components/Layout.js.map +1 -1
  23. package/dist/lib/components/Main.js +3 -1
  24. package/dist/lib/components/Main.js.map +1 -1
  25. package/dist/lib/components/Pagination.d.ts +10 -0
  26. package/dist/lib/components/Pagination.js +10 -0
  27. package/dist/lib/components/Pagination.js.map +1 -0
  28. package/dist/lib/components/TopNavigation.js +18 -2
  29. package/dist/lib/components/TopNavigation.js.map +1 -1
  30. package/dist/lib/components/navigation/SidebarItem.d.ts +1 -0
  31. package/dist/lib/components/navigation/SidebarItem.js +7 -3
  32. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  33. package/dist/lib/{plugins/markdown → components/navigation}/Toc.js +5 -7
  34. package/dist/lib/components/navigation/Toc.js.map +1 -0
  35. package/dist/lib/core/ZudokuContext.d.ts +7 -0
  36. package/dist/lib/core/ZudokuContext.js +8 -3
  37. package/dist/lib/core/ZudokuContext.js.map +1 -1
  38. package/dist/lib/core/plugins.d.ts +1 -1
  39. package/dist/lib/oas/graphql/index.d.ts +2 -1
  40. package/dist/lib/oas/graphql/index.js +74 -14
  41. package/dist/lib/oas/graphql/index.js.map +1 -1
  42. package/dist/lib/oas/parser/dereference/index.js +2 -0
  43. package/dist/lib/oas/parser/dereference/index.js.map +1 -1
  44. package/dist/lib/oas/parser/index.d.ts +5 -3
  45. package/dist/lib/oas/parser/index.js +0 -22
  46. package/dist/lib/oas/parser/index.js.map +1 -1
  47. package/dist/lib/plugins/api-catalog/index.js +19 -17
  48. package/dist/lib/plugins/api-catalog/index.js.map +1 -1
  49. package/dist/lib/plugins/markdown/MdxPage.js +3 -9
  50. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  51. package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
  52. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  53. package/dist/lib/plugins/openapi/Endpoint.js +1 -1
  54. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  55. package/dist/lib/plugins/openapi/OperationList.d.ts +1 -1
  56. package/dist/lib/plugins/openapi/OperationList.js +29 -9
  57. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  58. package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
  59. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  60. package/dist/lib/plugins/openapi/ParameterListItem.js +2 -1
  61. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  62. package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
  63. package/dist/lib/plugins/openapi/SchemaList.js +52 -0
  64. package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
  65. package/dist/lib/plugins/openapi/Sidecar.js +29 -5
  66. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  67. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +1 -1
  68. package/dist/lib/plugins/openapi/client/GraphQLClient.js +1 -1
  69. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -1
  70. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +6 -2
  71. package/dist/lib/plugins/openapi/client/useCreateQuery.js +5 -5
  72. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
  73. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  74. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  75. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -2
  76. package/dist/lib/plugins/openapi/graphql/gql.js +3 -2
  77. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  78. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +67 -11
  79. package/dist/lib/plugins/openapi/graphql/graphql.js +34 -5
  80. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  81. package/dist/lib/plugins/openapi/index.js +12 -0
  82. package/dist/lib/plugins/openapi/index.js.map +1 -1
  83. package/dist/lib/plugins/openapi/interfaces.d.ts +26 -0
  84. package/dist/lib/plugins/openapi/playground/Playground.js +1 -1
  85. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  86. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +2 -2
  87. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
  88. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +1 -2
  89. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +2 -2
  90. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +1 -1
  91. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -1
  92. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +1 -1
  93. package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +1 -1
  94. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
  95. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +12 -0
  96. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
  97. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +2 -4
  98. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +12 -9
  99. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  100. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -2
  101. package/dist/lib/plugins/openapi/schema/SchemaView.js +30 -52
  102. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  103. package/dist/lib/plugins/openapi/schema/utils.d.ts +1 -0
  104. package/dist/lib/plugins/openapi/schema/utils.js +3 -1
  105. package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
  106. package/dist/lib/plugins/openapi/state.d.ts +25 -0
  107. package/dist/lib/plugins/openapi/state.js +18 -0
  108. package/dist/lib/plugins/openapi/state.js.map +1 -0
  109. package/dist/lib/plugins/openapi/util/getRoutes.js +9 -3
  110. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  111. package/dist/lib/plugins/search-pagefind/PagefindSearch.js +13 -4
  112. package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
  113. package/dist/lib/plugins/search-pagefind/ResultList.js +19 -12
  114. package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
  115. package/dist/lib/plugins/search-pagefind/get-results.d.ts +8 -1
  116. package/dist/lib/plugins/search-pagefind/get-results.js +9 -4
  117. package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -1
  118. package/dist/lib/util/traverse.d.ts +2 -8
  119. package/dist/lib/util/traverse.js.map +1 -1
  120. package/dist/lib/util/types.d.ts +7 -0
  121. package/dist/lib/util/types.js +2 -0
  122. package/dist/lib/util/types.js.map +1 -0
  123. package/dist/lib/util/useOnScreen.d.ts +3 -2
  124. package/dist/lib/util/useOnScreen.js +3 -3
  125. package/dist/lib/util/useOnScreen.js.map +1 -1
  126. package/dist/lib/util/useScrollToAnchor.js +18 -12
  127. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  128. package/dist/vite/api/schema-codegen.js +2 -2
  129. package/dist/vite/api/schema-codegen.js.map +1 -1
  130. package/dist/vite/api/schema-codegen.test.js +5 -0
  131. package/dist/vite/api/schema-codegen.test.js.map +1 -1
  132. package/dist/vite/plugin-api.js +12 -8
  133. package/dist/vite/plugin-api.js.map +1 -1
  134. package/lib/{AuthenticationPlugin-Cij2tPWa.js → AuthenticationPlugin-foqdvvkf.js} +3 -3
  135. package/lib/{AuthenticationPlugin-Cij2tPWa.js.map → AuthenticationPlugin-foqdvvkf.js.map} +1 -1
  136. package/lib/{Callout-B2vsR09t.js → Callout-D5frCCJ0.js} +2 -2
  137. package/lib/{Callout-B2vsR09t.js.map → Callout-D5frCCJ0.js.map} +1 -1
  138. package/lib/{Dialog-sbgekbjb.js → Dialog-Dv6WG8RN.js} +5 -5
  139. package/lib/{Dialog-sbgekbjb.js.map → Dialog-Dv6WG8RN.js.map} +1 -1
  140. package/lib/{Markdown-DT5Rrq8_.js → Markdown-aF5FdsNi.js} +1945 -1937
  141. package/lib/{Markdown-DT5Rrq8_.js.map → Markdown-aF5FdsNi.js.map} +1 -1
  142. package/lib/MdxPage-ZW1StNhp.js +83 -0
  143. package/lib/MdxPage-ZW1StNhp.js.map +1 -0
  144. package/lib/{OasProvider-DdEBf2qS.js → OasProvider-Cld9RAMQ.js} +4 -4
  145. package/lib/{OasProvider-DdEBf2qS.js.map → OasProvider-Cld9RAMQ.js.map} +1 -1
  146. package/lib/OperationList-D-OfzJm6.js +5065 -0
  147. package/lib/OperationList-D-OfzJm6.js.map +1 -0
  148. package/lib/Pagination-CYB3nVYx.js +46 -0
  149. package/lib/Pagination-CYB3nVYx.js.map +1 -0
  150. package/lib/SchemaList-Ci1WxRh0.js +148 -0
  151. package/lib/SchemaList-Ci1WxRh0.js.map +1 -0
  152. package/lib/SchemaView-Brn-YxHY.js +345 -0
  153. package/lib/SchemaView-Brn-YxHY.js.map +1 -0
  154. package/lib/{Select-z1Lwl0-J.js → Select-DVFRKf1R.js} +8 -8
  155. package/lib/{Select-z1Lwl0-J.js.map → Select-DVFRKf1R.js.map} +1 -1
  156. package/lib/{SlotletProvider-D8OBnr77.js → SlotletProvider-DXvc0aY6.js} +4 -4
  157. package/lib/{SlotletProvider-D8OBnr77.js.map → SlotletProvider-DXvc0aY6.js.map} +1 -1
  158. package/lib/Toc-YBsgI72s.js +92 -0
  159. package/lib/Toc-YBsgI72s.js.map +1 -0
  160. package/lib/{chunk-HA7DTUK3-ZGg2W6yV.js → chunk-HA7DTUK3-C4gP41vD.js} +5 -5
  161. package/lib/{chunk-HA7DTUK3-ZGg2W6yV.js.map → chunk-HA7DTUK3-C4gP41vD.js.map} +1 -1
  162. package/lib/{createServer-DjgKDpGV.js → createServer-mMau3eV_.js} +1732 -1664
  163. package/lib/{createServer-DjgKDpGV.js.map → createServer-mMau3eV_.js.map} +1 -1
  164. package/lib/hook-CqpVYDqN.js +1483 -0
  165. package/lib/hook-CqpVYDqN.js.map +1 -0
  166. package/lib/index-Bt7MKhZq.js +2514 -0
  167. package/lib/index-Bt7MKhZq.js.map +1 -0
  168. package/lib/{index-DdQSV2RF.js → index-CjPMxpOV.js} +809 -750
  169. package/lib/index-CjPMxpOV.js.map +1 -0
  170. package/lib/{mutation-_Z5C2wFZ.js → mutation-8LjrN7uz.js} +2 -2
  171. package/lib/{mutation-_Z5C2wFZ.js.map → mutation-8LjrN7uz.js.map} +1 -1
  172. package/lib/post-processors/traverse.js.map +1 -1
  173. package/lib/ui/Command.js +1 -1
  174. package/lib/{useExposedProps-BslIn-FE.js → useExposedProps-B9qXJedG.js} +2 -2
  175. package/lib/{useExposedProps-BslIn-FE.js.map → useExposedProps-B9qXJedG.js.map} +1 -1
  176. package/lib/zudoku.auth-auth0.js +1 -1
  177. package/lib/zudoku.auth-clerk.js +59 -41
  178. package/lib/zudoku.auth-clerk.js.map +1 -1
  179. package/lib/zudoku.auth-openid.js +76 -73
  180. package/lib/zudoku.auth-openid.js.map +1 -1
  181. package/lib/zudoku.components.js +31 -1440
  182. package/lib/zudoku.components.js.map +1 -1
  183. package/lib/zudoku.hooks.js +1 -1
  184. package/lib/zudoku.plugin-api-catalog.js +81 -79
  185. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  186. package/lib/zudoku.plugin-api-keys.js +15 -16
  187. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  188. package/lib/zudoku.plugin-custom-pages.js +2 -2
  189. package/lib/zudoku.plugin-markdown.js +1 -1
  190. package/lib/zudoku.plugin-openapi.js +5 -6
  191. package/lib/zudoku.plugin-openapi.js.map +1 -1
  192. package/lib/zudoku.plugin-redirect.js +1 -1
  193. package/lib/zudoku.plugin-search-pagefind.js +133 -98
  194. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  195. package/lib/zudoku.plugins.js.map +1 -1
  196. package/package.json +4 -3
  197. package/src/app/main.tsx +2 -0
  198. package/src/app/tailwind.ts +14 -0
  199. package/src/lib/authentication/authentication.ts +2 -0
  200. package/src/lib/authentication/providers/clerk.tsx +20 -0
  201. package/src/lib/authentication/providers/openid.tsx +6 -0
  202. package/src/lib/authentication/providers/supabase.tsx +6 -0
  203. package/src/lib/authentication/state.ts +1 -35
  204. package/src/lib/components/Layout.tsx +17 -17
  205. package/src/lib/components/Main.tsx +3 -1
  206. package/src/lib/components/Pagination.tsx +47 -0
  207. package/src/lib/components/TopNavigation.tsx +29 -2
  208. package/src/lib/components/navigation/SidebarItem.tsx +10 -4
  209. package/src/lib/{plugins/markdown → components/navigation}/Toc.tsx +5 -14
  210. package/src/lib/core/ZudokuContext.ts +13 -6
  211. package/src/lib/core/plugins.ts +1 -1
  212. package/src/lib/oas/graphql/index.ts +118 -45
  213. package/src/lib/oas/parser/dereference/index.ts +2 -0
  214. package/src/lib/oas/parser/index.ts +7 -29
  215. package/src/lib/plugins/api-catalog/index.tsx +40 -35
  216. package/src/lib/plugins/markdown/MdxPage.tsx +6 -43
  217. package/src/lib/plugins/openapi/ColorizedParam.tsx +1 -1
  218. package/src/lib/plugins/openapi/Endpoint.tsx +1 -1
  219. package/src/lib/plugins/openapi/OperationList.tsx +37 -16
  220. package/src/lib/plugins/openapi/OperationListItem.tsx +7 -2
  221. package/src/lib/plugins/openapi/ParameterListItem.tsx +2 -0
  222. package/src/lib/plugins/openapi/SchemaList.tsx +151 -0
  223. package/src/lib/plugins/openapi/Sidecar.tsx +36 -7
  224. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +1 -1
  225. package/src/lib/plugins/openapi/client/useCreateQuery.ts +12 -5
  226. package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
  227. package/src/lib/plugins/openapi/graphql/gql.ts +15 -6
  228. package/src/lib/plugins/openapi/graphql/graphql.ts +104 -15
  229. package/src/lib/plugins/openapi/index.tsx +13 -0
  230. package/src/lib/plugins/openapi/interfaces.ts +29 -0
  231. package/src/lib/plugins/openapi/playground/Playground.tsx +1 -1
  232. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +2 -1
  233. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +1 -8
  234. package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +1 -2
  235. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +36 -0
  236. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +20 -21
  237. package/src/lib/plugins/openapi/schema/SchemaView.tsx +69 -141
  238. package/src/lib/plugins/openapi/schema/utils.ts +7 -1
  239. package/src/lib/plugins/openapi/state.ts +36 -0
  240. package/src/lib/plugins/openapi/util/getRoutes.tsx +9 -6
  241. package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +26 -4
  242. package/src/lib/plugins/search-pagefind/ResultList.tsx +59 -47
  243. package/src/lib/plugins/search-pagefind/get-results.tsx +31 -10
  244. package/src/lib/util/traverse.ts +2 -6
  245. package/src/lib/util/types.ts +7 -0
  246. package/src/lib/util/useOnScreen.ts +6 -4
  247. package/src/lib/util/useScrollToAnchor.ts +20 -12
  248. package/dist/lib/plugins/markdown/Toc.js.map +0 -1
  249. package/lib/MdxPage-D2rD1vC4.js +0 -200
  250. package/lib/MdxPage-D2rD1vC4.js.map +0 -1
  251. package/lib/OperationList-DT4-gm_S.js +0 -5363
  252. package/lib/OperationList-DT4-gm_S.js.map +0 -1
  253. package/lib/hook-DzQC8PzJ.js +0 -355
  254. package/lib/hook-DzQC8PzJ.js.map +0 -1
  255. package/lib/index-DdQSV2RF.js.map +0 -1
  256. package/lib/index.esm-CltAN0Tf.js +0 -711
  257. package/lib/index.esm-CltAN0Tf.js.map +0 -1
  258. package/lib/joinUrl-BjDooT-T.js +0 -1154
  259. package/lib/joinUrl-BjDooT-T.js.map +0 -1
  260. /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaView-Brn-YxHY.js","sources":["../../../node_modules/.pnpm/graphql@16.10.0/node_modules/graphql/utilities/stripIgnoredCharacters.mjs","../src/lib/plugins/openapi/client/useCreateQuery.ts","../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["import { printBlockString } from '../language/blockString.mjs';\nimport { isPunctuatorTokenKind, Lexer } from '../language/lexer.mjs';\nimport { isSource, Source } from '../language/source.mjs';\nimport { TokenKind } from '../language/tokenKind.mjs';\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n * - UnicodeBOM\n * - WhiteSpace\n * - LineTerminator\n * - Comment\n * - Comma\n * - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * ```graphql\n * query SomeQuery($foo: String!, $bar: String) {\n * someField(foo: $foo, bar: $bar) {\n * a\n * b {\n * c\n * d\n * }\n * }\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n * ```\n *\n * SDL example:\n *\n * ```graphql\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n * \"\"\"\n * Field description\n * \"\"\"\n * bar: String\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n * ```\n */\n\nexport function stripIgnoredCharacters(source) {\n const sourceObj = isSource(source) ? source : new Source(source);\n const body = sourceObj.body;\n const lexer = new Lexer(sourceObj);\n let strippedBody = '';\n let wasLastAddedTokenNonPunctuator = false;\n\n while (lexer.advance().kind !== TokenKind.EOF) {\n const currentToken = lexer.token;\n const tokenKind = currentToken.kind;\n /**\n * Every two non-punctuator tokens should have space between them.\n * Also prevent case of non-punctuator token following by spread resulting\n * in invalid token (e.g. `1...` is invalid Float token).\n */\n\n const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n\n if (wasLastAddedTokenNonPunctuator) {\n if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n strippedBody += ' ';\n }\n }\n\n const tokenBody = body.slice(currentToken.start, currentToken.end);\n\n if (tokenKind === TokenKind.BLOCK_STRING) {\n strippedBody += printBlockString(currentToken.value, {\n minimize: true,\n });\n } else {\n strippedBody += tokenBody;\n }\n\n wasLastAddedTokenNonPunctuator = isNonPunctuator;\n }\n\n return strippedBody;\n}\n","import { stripIgnoredCharacters } from \"graphql\";\nimport { use } from \"react\";\nimport type { TypedDocumentString } from \"../graphql/graphql.js\";\nimport { GraphQLContext } from \"./GraphQLContext.js\";\n\ntype NoExtraProps<T, U extends T = T> = U & {\n [K in Exclude<keyof U, keyof T>]?: never;\n};\n\nexport const useCreateQuery = <TResult, TVariables>(\n query: TypedDocumentString<TResult, TVariables>,\n ...[variables]: TVariables extends Record<string, never>\n ? []\n : [NoExtraProps<TVariables>]\n) => {\n const graphQLClient = use(GraphQLContext);\n\n if (graphQLClient === undefined) {\n throw new Error(\"useGraphQL must be used within a GraphQLProvider\");\n }\n\n return {\n queryFn: () => graphQLClient.fetch(query, variables),\n queryKey: [stripIgnoredCharacters(query.toString()), variables],\n } as const;\n};\n","export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","import { ChevronsLeftRightIcon } from \"lucide-react\";\nimport { isValidElement, useState } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { type SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst Pattern = ({ pattern }: { pattern: string }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const isExpandable = pattern.length > 20;\n const shortPattern = isExpandable ? `${pattern.slice(0, 20)}…` : pattern;\n\n return (\n <InlineCode\n className={cn(\"text-xs\", isExpandable && \"cursor-pointer\")}\n onClick={() => setIsExpanded(!isExpanded)}\n selectOnClick={false}\n >\n {isExpanded ? pattern : shortPattern}\n {isExpandable && (\n <button type=\"button\" className=\"p-1 translate-y-[2px]\">\n {!isExpanded && <ChevronsLeftRightIcon size={12} />}\n </button>\n )}\n </InlineCode>\n );\n};\n\nconst getSchemaInfos = (schema?: SchemaObject) => {\n if (!schema) return [];\n\n return [\n schema.type === \"array\" && schema.items.type\n ? `${schema.items.type}[]`\n : Array.isArray(schema.type)\n ? schema.type.join(\" | \")\n : schema.type,\n\n schema.enum && \"enum\",\n schema.format,\n schema.minimum && `min: ${schema.minimum}`,\n schema.maximum && `max: ${schema.maximum}`,\n schema.minLength && `minLength: ${schema.minLength}`,\n schema.maxLength && `maxLength: ${schema.maxLength}`,\n schema.minItems && `minItems: ${schema.minItems}`,\n schema.maxItems && `maxItems: ${schema.maxItems}`,\n schema.uniqueItems && \"unique\",\n schema.minProperties && `minProps: ${schema.minProperties}`,\n schema.maxProperties && `maxProps: ${schema.maxProperties}`,\n schema.readOnly && \"readOnly\",\n schema.writeOnly && \"writeOnly\",\n schema.deprecated && \"deprecated\",\n schema.pattern && (\n <>\n pattern: <Pattern pattern={schema.pattern} />\n </>\n ),\n ];\n};\n\nexport const ParamInfos = ({\n schema,\n extraItems = [],\n className,\n}: {\n schema?: SchemaObject;\n extraItems?: unknown[];\n className?: string;\n}) => {\n const filteredItems = [...getSchemaInfos(schema), ...extraItems].flatMap(\n (item) => (typeof item === \"string\" || isValidElement(item) ? item : []),\n );\n\n return (\n <span className={className}>\n {filteredItems.map((item, index) => (\n <span className=\"text-muted-foreground\" key={index}>\n {item}\n {index < filteredItems.length - 1 && (\n <span className=\"text-muted-foreground/50\">\n &nbsp;&middot;&nbsp;\n </span>\n )}\n </span>\n ))}\n </span>\n );\n};\n","import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const EnumValues = ({\n values,\n className,\n maxVisibleValues = 8,\n}: {\n values: Array<string | number>;\n className?: string;\n maxVisibleValues?: number;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n if (!values.length) return null;\n\n const shouldCollapse = values.length > maxVisibleValues;\n const visibleValues =\n shouldCollapse && !isOpen ? values.slice(0, maxVisibleValues) : values;\n\n return (\n <div className={cn(\"flex flex-wrap gap-1.5 text-xs\", className)}>\n <span className=\"text-muted-foreground\">Enum values: </span>\n {visibleValues.map((value) => (\n <div key={value}>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {value}\n </SelectOnClick>\n </div>\n ))}\n {shouldCollapse && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-fit px-0\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? (\n <div className=\"flex items-center gap-1\">\n <ChevronUpIcon size={12} />\n <span className=\"text-muted-foreground\">show less</span>\n </div>\n ) : (\n <div className=\"flex items-center gap-1\">\n <ChevronDownIcon size={12} />\n <span className=\"text-muted-foreground\">\n show {values.length - maxVisibleValues} more\n </span>\n </div>\n )}\n </Button>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\n\nexport const SchemaExampleAndDefault = ({\n schema,\n}: {\n schema: SchemaObject;\n}) => {\n const example = schema.examples?.at(0);\n const defaultValue = schema.default;\n\n if (!example && !defaultValue) return null;\n\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n {example && (\n <div>\n <span className=\"text-muted-foreground\">Example: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof example === \"object\" ? JSON.stringify(example) : example}\n </SelectOnClick>\n </div>\n )}\n {defaultValue && (\n <div>\n <span className=\"text-muted-foreground\">Default: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof defaultValue === \"object\"\n ? JSON.stringify(defaultValue)\n : defaultValue}\n </SelectOnClick>\n </div>\n )}\n </div>\n );\n};\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector type={props.type} isOpen={isOpen} />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem key={index} type={type} schema={subSchema} />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import { CIRCULAR_REF } from \"../../../oas/graphql/circular.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isBasicType = (\n type: unknown,\n): type is \"string\" | \"number\" | \"boolean\" | \"integer\" | \"null\" =>\n typeof type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(type);\n\nexport const isComplexType = (value: SchemaObject) =>\n (value.type === \"object\" && Object.keys(value.properties ?? {}).length > 0) ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\"));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n\nexport const isCircularRef = (schema: unknown): schema is string =>\n schema === CIRCULAR_REF;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { InlineCode } from \"../../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n hasLogicalGroupings,\n isCircularRef,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({ schema }: { schema: SchemaObject }) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n />\n );\n }\n};\n\nconst RecursiveIndicator = () => (\n <InlineCode\n className=\"inline-flex items-center gap-1.5 italic text-xs translate-y-0.5\"\n selectOnClick={false}\n >\n <RefreshCcwDotIcon size={13} />\n <span>circular</span>\n </InlineCode>\n);\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n if (isCircularRef(schema)) {\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2\">\n <code>{name}</code>\n <ParamInfos\n schema={schema}\n extraItems={[<RecursiveIndicator key=\"circular-ref\" />]}\n />\n </div>\n <SchemaExampleAndDefault schema={schema} />\n </div>\n </li>\n );\n }\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2\">\n <SelectOnClick asChild>\n <code>{name}</code>\n </SelectOnClick>\n <ParamInfos\n schema={schema}\n extraItems={[\n group !== \"optional\" && (\n <span className=\"text-primary\">required</span>\n ),\n schema.type === \"array\" &&\n \"items\" in schema &&\n isCircularRef(schema.items) && <RecursiveIndicator />,\n ]}\n />\n </div>\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n {schema.type === \"array\" && \"items\" in schema && schema.items.enum && (\n <EnumValues values={schema.items.enum} />\n )}\n {schema.enum && <EnumValues values={schema.enum} />}\n <SchemaExampleAndDefault schema={schema} />\n {(hasLogicalGroupings(schema) || isComplexType(schema)) && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button variant=\"expand\" size=\"sm\" className=\"h-7\">\n {isOpen ? <MinusIcon size={12} /> : <PlusIcon size={12} />}\n {!isOpen ? \"Show properties\" : \"Hide properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : (\n schema.type === \"array\" &&\n \"items\" in schema &&\n typeof schema.items === \"object\" &&\n !isCircularRef(schema.items) && (\n <SchemaView schema={schema.items} />\n )\n )}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport {\n SchemaLogicalGroup,\n SchemaPropertyItem,\n} from \"./SchemaPropertyItem.js\";\nimport { hasLogicalGroupings, isBasicType } from \"./utils.js\";\n\nconst renderMarkdown = (content?: string) =>\n content && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={content}\n />\n );\n\nconst renderBasicSchema = (schema: SchemaObject) => (\n <Card className=\"p-4 space-y-2\">\n <span className=\"text-sm text-muted-foreground\">\n <ParamInfos schema={schema} />\n </span>\n {schema.enum && <EnumValues values={schema.enum} />}\n {renderMarkdown(schema.description)}\n <SchemaExampleAndDefault schema={schema} />\n </Card>\n);\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No schema specified\n </span>\n </Card>\n );\n }\n\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema);\n }\n\n if (schema.type === \"array\" && typeof schema.items === \"object\") {\n return renderBasicSchema(schema.items as SchemaObject);\n }\n\n if (schema.type === \"object\") {\n const groupedProperties = groupBy(\n Object.entries(schema.properties ?? {}),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n </Card>\n );\n }\n\n if (schema.additionalProperties) {\n return (\n <Card className=\"my-2\">\n <CardHeader>\n <CardTitle>Additional Properties:</CardTitle>\n </CardHeader>\n <CardContent>\n <SchemaView schema={schema.additionalProperties as SchemaObject} />\n </CardContent>\n </Card>\n );\n }\n\n return null;\n};\n"],"names":["stripIgnoredCharacters","source","sourceObj","isSource","Source","body","lexer","Lexer","strippedBody","wasLastAddedTokenNonPunctuator","TokenKind","currentToken","tokenKind","isNonPunctuator","isPunctuatorTokenKind","tokenBody","printBlockString","useCreateQuery","query","variables","graphQLClient","use","GraphQLContext","groupBy","arr","keySelector","accumulator","val","groupedKey","Pattern","pattern","isExpanded","setIsExpanded","useState","isExpandable","shortPattern","jsxs","InlineCode","cn","jsx","ChevronsLeftRightIcon","getSchemaInfos","schema","Fragment","ParamInfos","extraItems","className","filteredItems","item","isValidElement","index","EnumValues","values","maxVisibleValues","isOpen","setIsOpen","shouldCollapse","visibleValues","value","SelectOnClick","Button","ChevronUpIcon","ChevronDownIcon","SchemaExampleAndDefault","example","_a","defaultValue","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","LogicalGroupItem","props","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","toggleOpen","Card","SquareMinusIcon","SquarePlusIcon","subSchema","isBasicType","isComplexType","hasLogicalGroupings","LogicalSchemaTypeMap","isCircularRef","CIRCULAR_REF","SchemaLogicalGroup","useCallback","key","objectEntries","RecursiveIndicator","RefreshCcwDotIcon","SchemaPropertyItem","name","group","defaultOpen","showCollapseButton","Markdown","ProseClasses","MinusIcon","PlusIcon","renderMarkdown","content","renderBasicSchema","groupedProperties","propertyName","property","groupNames","CardHeader","CardTitle","CardContent"],"mappings":"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","x_google_ignoreList":[0]}
@@ -4,11 +4,11 @@ var M = (s) => {
4
4
  var j = (s, t, e) => t.has(s) || M("Cannot " + e);
5
5
  var r = (s, t, e) => (j(s, t, "read from private field"), e ? e.call(s) : t.get(s)), x = (s, t, e) => t.has(s) ? M("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, e), y = (s, t, e, a) => (j(s, t, "write to private field"), a ? a.call(s, e) : t.set(s, e), e), g = (s, t, e) => (j(s, t, "access private method"), e);
6
6
  import * as l from "react";
7
- import { g as K } from "./mutation-_Z5C2wFZ.js";
8
- import { S as L, s as T, h as E, n as U, u as z, a as P, b as V } from "./joinUrl-BjDooT-T.js";
7
+ import { g as K } from "./mutation-8LjrN7uz.js";
8
+ import { S as L, s as T, h as E, n as k, g as z, i as P, k as V } from "./hook-CqpVYDqN.js";
9
9
  import { j as o } from "./jsx-runtime-CYK1ROHF.js";
10
10
  import * as i from "@radix-ui/react-select";
11
- import { ChevronDown as k, ChevronUp as G, Check as q } from "lucide-react";
11
+ import { ChevronDown as U, ChevronUp as G, Check as q } from "lucide-react";
12
12
  import { c as p } from "./cn-qaFjX9_3.js";
13
13
  var h, m, n, c, u, N, C, I, A = (I = class extends L {
14
14
  constructor(t, e) {
@@ -63,7 +63,7 @@ var h, m, n, c, u, N, C, I, A = (I = class extends L {
63
63
  reset: this.reset
64
64
  });
65
65
  }, C = function(t) {
66
- U.batch(() => {
66
+ k.batch(() => {
67
67
  var e, a, d, w, f, S, R, O;
68
68
  if (r(this, c) && this.hasListeners()) {
69
69
  const b = r(this, m).variables, v = r(this, m).context;
@@ -92,7 +92,7 @@ function et(s, t) {
92
92
  }, [a, s]);
93
93
  const d = l.useSyncExternalStore(
94
94
  l.useCallback(
95
- (f) => a.subscribe(U.batchCalls(f)),
95
+ (f) => a.subscribe(k.batchCalls(f)),
96
96
  [a]
97
97
  ),
98
98
  () => a.getCurrentResult(),
@@ -118,7 +118,7 @@ const st = i.Root, at = i.Group, rt = i.Value, Q = l.forwardRef(({ className: s,
118
118
  ...e,
119
119
  children: [
120
120
  /* @__PURE__ */ o.jsx("span", { className: "truncate", children: t }),
121
- /* @__PURE__ */ o.jsx(i.Icon, { asChild: !0, children: /* @__PURE__ */ o.jsx(k, { className: "flex-shrink-0 h-4 w-4 opacity-50" }) })
121
+ /* @__PURE__ */ o.jsx(i.Icon, { asChild: !0, children: /* @__PURE__ */ o.jsx(U, { className: "flex-shrink-0 h-4 w-4 opacity-50" }) })
122
122
  ]
123
123
  }
124
124
  ));
@@ -145,7 +145,7 @@ const D = l.forwardRef(({ className: s, ...t }, e) => /* @__PURE__ */ o.jsx(
145
145
  s
146
146
  ),
147
147
  ...t,
148
- children: /* @__PURE__ */ o.jsx(k, { className: "h-4 w-4" })
148
+ children: /* @__PURE__ */ o.jsx(U, { className: "h-4 w-4" })
149
149
  }
150
150
  ));
151
151
  D.displayName = i.ScrollDownButton.displayName;
@@ -220,4 +220,4 @@ export {
220
220
  J as e,
221
221
  et as u
222
222
  };
223
- //# sourceMappingURL=Select-z1Lwl0-J.js.map
223
+ //# sourceMappingURL=Select-DVFRKf1R.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select-z1Lwl0-J.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.66.6_react@19.0.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n \"divide-y\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","_a","Subscribable","client","options","__privateAdd","_MutationObserver_instances","_client","_currentResult","_currentMutation","_mutateOptions","__privateSet","__privateMethod","updateResult_fn","prevOptions","__privateGet","shallowEqualObjects","hashKey","action","notify_fn","variables","state","getDefaultState","notifyManager","context","_b","_d","_c","_f","_e","_h","_g","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"Select-DVFRKf1R.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.66.4/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.66.6_react@19.0.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n \"divide-y\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","_a","Subscribable","client","options","__privateAdd","_MutationObserver_instances","_client","_currentResult","_currentMutation","_mutateOptions","__privateSet","__privateMethod","updateResult_fn","prevOptions","__privateGet","shallowEqualObjects","hashKey","action","notify_fn","variables","state","getDefaultState","notifyManager","context","_b","_d","_c","_f","_e","_h","_g","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,16 +1,16 @@
1
1
  import { j as t } from "./jsx-runtime-CYK1ROHF.js";
2
- import { c as z, L as D, f as H, i as U } from "./chunk-HA7DTUK3-ZGg2W6yV.js";
2
+ import { c as z, L as D, e as H, i as U } from "./chunk-HA7DTUK3-C4gP41vD.js";
3
3
  import { UnlinkIcon as q, CheckIcon as V, CopyIcon as W } from "lucide-react";
4
4
  import { C as Z } from "./CategoryHeading-DpB47wvk.js";
5
5
  import { Callout as G } from "./ui/Callout.js";
6
- import { M as X, H as A, P as O } from "./Markdown-DT5Rrq8_.js";
6
+ import { M as X, H as A, P as O } from "./Markdown-aF5FdsNi.js";
7
7
  import { P as B, t as g, H as J } from "./SyntaxHighlight-BEoSoPEo.js";
8
8
  import { z as K } from "./index-DwT-v3zK.js";
9
9
  import Y, { memo as Q, useState as ee, useContext as re } from "react";
10
10
  import { C } from "./ClientOnly-E7hGysn1.js";
11
11
  import { c as R } from "./cn-qaFjX9_3.js";
12
12
  import { Z as P } from "./invariant-Caa8-XvF.js";
13
- import { u as te } from "./useExposedProps-BslIn-FE.js";
13
+ import { u as te } from "./useExposedProps-B9qXJedG.js";
14
14
  const $ = ({
15
15
  children: r,
16
16
  className: s
@@ -335,4 +335,4 @@ export {
335
335
  ye as S,
336
336
  Pe as a
337
337
  };
338
- //# sourceMappingURL=SlotletProvider-D8OBnr77.js.map
338
+ //# sourceMappingURL=SlotletProvider-DXvc0aY6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlotletProvider-D8OBnr77.js","sources":["../src/lib/components/DeveloperHint.tsx","../src/lib/components/NotFoundPage.tsx","../src/lib/ui/SyntaxHighlight.tsx","../src/lib/errors/ErrorAlert.tsx","../src/lib/errors/RouterError.tsx","../../../node_modules/.pnpm/react-is@19.0.0/node_modules/react-is/cjs/react-is.production.js","../../../node_modules/.pnpm/react-is@19.0.0/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@19.0.0/node_modules/react-is/index.js","../src/lib/components/SlotletProvider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Callout } from \"../ui/Callout.js\";\nimport { Markdown } from \"./Markdown.js\";\n\nexport const DeveloperHint = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n return (\n <Callout type=\"caution\" title=\"Developer hint\" className={className}>\n <div className=\"flex flex-col gap-2\">\n {typeof children === \"string\" ? (\n <Markdown content={children} />\n ) : (\n <div>{children}</div>\n )}\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </div>\n </Callout>\n );\n};\n","import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { DeveloperHint } from \"./DeveloperHint.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n <DeveloperHint>\n Start by adding a file at{\" \"}\n <code>\n {\"{PROJECT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away.\n </DeveloperHint>\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n","import {\n Highlight,\n Prism,\n themes,\n type HighlightProps,\n} from \"prism-react-renderer\";\n\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\n\nglobalThis.Prism = Prism;\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-bash.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-ruby.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-markup.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-json.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-java.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-csharp.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-objectivec.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-markdown.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-javascript.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-typescript.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-jsstacktrace.min.js\");\n\nimport { useTheme } from \"next-themes\";\nimport { memo, useState } from \"react\";\nimport { ClientOnly } from \"../components/ClientOnly.js\";\nimport { cn } from \"../util/cn.js\";\n\nexport type SyntaxHighlightProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n title?: string;\n children?: string;\n code?: string;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n} & Omit<HighlightProps, \"children\" | \"language\">;\n\nconst remapLang = {\n mdx: \"md\",\n} as Record<string, string>;\n\nconst SyntaxHighlightInner = ({\n language = \"plain\",\n showCopy = \"hover\",\n showCopyText,\n title,\n children,\n disabled,\n ...props\n}: SyntaxHighlightProps) => {\n const { resolvedTheme } = useTheme();\n const [isCopied, setIsCopied] = useState(false);\n\n const code = children ?? props.code;\n\n if (!code) {\n return null;\n }\n\n const highlightTheme =\n resolvedTheme === \"dark\" ? themes.vsDark : themes.github;\n\n // hardcoded values from the themes to avoid color flash in SSR\n const themeColorClasses =\n \"bg-[#f6f8fa] text-[#393a34] dark:bg-[#1e1e1e] dark:text-[#9cdcfe]\";\n\n const Wrapper = ({\n children,\n className,\n style,\n }: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n }) => (\n <div className=\"relative group\">\n {title && (\n <div className=\"text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 \">\n {title}\n </div>\n )}\n <pre\n className={cn(\n \"relative scrollbar overflow-x-auto\",\n props.className,\n props.noBackground ? \"!bg-transparent\" : themeColorClasses,\n props.wrapLines && \"whitespace-pre-wrap break-words\",\n title && \"pt-10\",\n className,\n )}\n style={style}\n >\n {children}\n </pre>\n {props.showLanguageIndicator && (\n <span className=\"absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\">\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 right-2 p-2 hover:outline hover:outline-border/75 dark:hover:outline-border rounded-md text-sm text-muted-foreground transition\",\n showCopy === \"hover\"\n ? \"opacity-0 group-hover:opacity-100 group-hover:bg-zinc-100 group-hover:dark:bg-zinc-700\"\n : \"bg-zinc-100 dark:bg-zinc-700\",\n showCopyText && \"flex gap-2 items-center font-medium\",\n )}\n disabled={isCopied}\n onClick={() => {\n setIsCopied(true);\n void navigator.clipboard.writeText(code);\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 if (disabled) {\n return (\n <ClientOnly fallback={<Wrapper>{code}</Wrapper>}>\n <Wrapper>{code}</Wrapper>\n </ClientOnly>\n );\n }\n\n return (\n <ClientOnly fallback={<Wrapper>{code}</Wrapper>}>\n <Highlight\n theme={highlightTheme}\n language={remapLang[language] ?? language}\n {...props}\n code={code}\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <Wrapper className={className} style={style}>\n {tokens.map((line, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </Wrapper>\n )}\n </Highlight>\n </ClientOnly>\n );\n};\n\nexport const SyntaxHighlight = memo(SyntaxHighlightInner);\n\nSyntaxHighlight.displayName = \"SyntaxHighlight\";\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport { DeveloperHint } from \"../components/DeveloperHint.js\";\nimport { Heading } from \"../components/Heading.js\";\nimport { ProseClasses } from \"../components/Markdown.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\n\nexport function ErrorAlert({ error }: { error: unknown }) {\n const message =\n error instanceof Error ? error.message : \"Something went wrong\";\n\n const hint = error instanceof ZudokuError ? error.developerHint : undefined;\n const title =\n error instanceof ZudokuError ? error.title : \"Something went wrong\";\n const stack = error instanceof Error ? error.stack : undefined;\n const cause = error instanceof Error ? error.cause : undefined;\n\n const stringError = cause instanceof Error ? String(cause.stack) : stack;\n\n return (\n <div\n className={cn(\n ProseClasses,\n \"grid grid-cols-1 !max-w-none pt-[--padding-content-top]\",\n )}\n >\n <Heading level={1}>{title}</Heading>\n Error: {message}\n {hint && <DeveloperHint className=\"mb-4\">{hint}</DeveloperHint>}\n {stringError && (\n <div>\n <SyntaxHighlight\n className=\"max-h-[400px] border mt-2\"\n language=\"jsstacktrace\"\n code={stringError}\n />\n </div>\n )}\n </div>\n );\n}\n","import { isRouteErrorResponse, useRouteError } from \"react-router\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React, {\n type ComponentType,\n type ReactElement,\n ReactNode,\n useContext,\n} from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport {\n type Location,\n type NavigateFunction,\n type Params,\n type SetURLSearchParams,\n} from \"react-router\";\nimport { useExposedProps } from \"../util/useExposedProps.js\";\n\nexport type Slotlets = Record<\n string,\n ReactNode | ReactElement | ComponentType<ExposedComponentProps>\n>;\n\nconst SlotletContext = React.createContext<Slotlets | undefined>({});\n\nexport const SlotletProvider = ({\n slotlets,\n children,\n}: {\n children: ReactNode;\n slotlets?: Slotlets;\n}) => {\n return (\n <SlotletContext.Provider value={slotlets}>\n {children}\n </SlotletContext.Provider>\n );\n};\n\nexport type ExposedComponentProps = {\n location: Location;\n navigate: NavigateFunction;\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParams;\n params: Params;\n};\n\nexport const Slotlet = ({ name }: { name: string }) => {\n const context = useContext(SlotletContext);\n const componentOrElement = context?.[name];\n const slotletProps = useExposedProps();\n\n if (isValidElementType(componentOrElement)) {\n return React.createElement(componentOrElement, slotletProps);\n }\n\n return componentOrElement as ReactNode;\n};\n"],"names":["DeveloperHint","children","className","jsx","Callout","jsxs","Markdown","NotFoundPage","params","useParams","ProseClasses","CategoryHeading","Heading","UnlinkIcon","Link","Prism","n","remapLang","SyntaxHighlightInner","language","showCopy","showCopyText","title","disabled","props","resolvedTheme","useTheme","isCopied","setIsCopied","useState","code","highlightTheme","themes","themeColorClasses","Wrapper","style","cn","CheckIcon","CopyIcon","ClientOnly","Highlight","tokens","getLineProps","getTokenProps","line","i","token","key","SyntaxHighlight","memo","ErrorAlert","error","message","hint","ZudokuError","stack","cause","stringError","RouterError","useRouteError","isRouteErrorResponse","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","REACT_CLIENT_REFERENCE","typeOf","object","$$typeof","reactIs_production","type","reactIs_development","reactIsModule","require$$0","require$$1","SlotletContext","React","SlotletProvider","slotlets","Slotlet","name","context","useContext","componentOrElement","slotletProps","useExposedProps","isValidElementType"],"mappings":"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","x_google_ignoreList":[5,6,7]}
1
+ {"version":3,"file":"SlotletProvider-DXvc0aY6.js","sources":["../src/lib/components/DeveloperHint.tsx","../src/lib/components/NotFoundPage.tsx","../src/lib/ui/SyntaxHighlight.tsx","../src/lib/errors/ErrorAlert.tsx","../src/lib/errors/RouterError.tsx","../../../node_modules/.pnpm/react-is@19.0.0/node_modules/react-is/cjs/react-is.production.js","../../../node_modules/.pnpm/react-is@19.0.0/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@19.0.0/node_modules/react-is/index.js","../src/lib/components/SlotletProvider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Callout } from \"../ui/Callout.js\";\nimport { Markdown } from \"./Markdown.js\";\n\nexport const DeveloperHint = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n return (\n <Callout type=\"caution\" title=\"Developer hint\" className={className}>\n <div className=\"flex flex-col gap-2\">\n {typeof children === \"string\" ? (\n <Markdown content={children} />\n ) : (\n <div>{children}</div>\n )}\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </div>\n </Callout>\n );\n};\n","import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { DeveloperHint } from \"./DeveloperHint.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n <DeveloperHint>\n Start by adding a file at{\" \"}\n <code>\n {\"{PROJECT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away.\n </DeveloperHint>\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n","import {\n Highlight,\n Prism,\n themes,\n type HighlightProps,\n} from \"prism-react-renderer\";\n\nimport { CheckIcon, CopyIcon } from \"lucide-react\";\n\nglobalThis.Prism = Prism;\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-bash.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-ruby.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-markup.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-json.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-java.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-csharp.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-objectivec.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-markdown.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-javascript.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-typescript.min.js\");\n// @ts-expect-error This is untyped\nvoid import(\"prismjs/components/prism-jsstacktrace.min.js\");\n\nimport { useTheme } from \"next-themes\";\nimport { memo, useState } from \"react\";\nimport { ClientOnly } from \"../components/ClientOnly.js\";\nimport { cn } from \"../util/cn.js\";\n\nexport type SyntaxHighlightProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n title?: string;\n children?: string;\n code?: string;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n} & Omit<HighlightProps, \"children\" | \"language\">;\n\nconst remapLang = {\n mdx: \"md\",\n} as Record<string, string>;\n\nconst SyntaxHighlightInner = ({\n language = \"plain\",\n showCopy = \"hover\",\n showCopyText,\n title,\n children,\n disabled,\n ...props\n}: SyntaxHighlightProps) => {\n const { resolvedTheme } = useTheme();\n const [isCopied, setIsCopied] = useState(false);\n\n const code = children ?? props.code;\n\n if (!code) {\n return null;\n }\n\n const highlightTheme =\n resolvedTheme === \"dark\" ? themes.vsDark : themes.github;\n\n // hardcoded values from the themes to avoid color flash in SSR\n const themeColorClasses =\n \"bg-[#f6f8fa] text-[#393a34] dark:bg-[#1e1e1e] dark:text-[#9cdcfe]\";\n\n const Wrapper = ({\n children,\n className,\n style,\n }: {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n }) => (\n <div className=\"relative group\">\n {title && (\n <div className=\"text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 \">\n {title}\n </div>\n )}\n <pre\n className={cn(\n \"relative scrollbar overflow-x-auto\",\n props.className,\n props.noBackground ? \"!bg-transparent\" : themeColorClasses,\n props.wrapLines && \"whitespace-pre-wrap break-words\",\n title && \"pt-10\",\n className,\n )}\n style={style}\n >\n {children}\n </pre>\n {props.showLanguageIndicator && (\n <span className=\"absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\">\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 right-2 p-2 hover:outline hover:outline-border/75 dark:hover:outline-border rounded-md text-sm text-muted-foreground transition\",\n showCopy === \"hover\"\n ? \"opacity-0 group-hover:opacity-100 group-hover:bg-zinc-100 group-hover:dark:bg-zinc-700\"\n : \"bg-zinc-100 dark:bg-zinc-700\",\n showCopyText && \"flex gap-2 items-center font-medium\",\n )}\n disabled={isCopied}\n onClick={() => {\n setIsCopied(true);\n void navigator.clipboard.writeText(code);\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 if (disabled) {\n return (\n <ClientOnly fallback={<Wrapper>{code}</Wrapper>}>\n <Wrapper>{code}</Wrapper>\n </ClientOnly>\n );\n }\n\n return (\n <ClientOnly fallback={<Wrapper>{code}</Wrapper>}>\n <Highlight\n theme={highlightTheme}\n language={remapLang[language] ?? language}\n {...props}\n code={code}\n >\n {({ className, style, tokens, getLineProps, getTokenProps }) => (\n <Wrapper className={className} style={style}>\n {tokens.map((line, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n // eslint-disable-next-line react/no-array-index-key\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </Wrapper>\n )}\n </Highlight>\n </ClientOnly>\n );\n};\n\nexport const SyntaxHighlight = memo(SyntaxHighlightInner);\n\nSyntaxHighlight.displayName = \"SyntaxHighlight\";\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nimport { SyntaxHighlight } from \"zudoku/ui/SyntaxHighlight.js\";\nimport { DeveloperHint } from \"../components/DeveloperHint.js\";\nimport { Heading } from \"../components/Heading.js\";\nimport { ProseClasses } from \"../components/Markdown.js\";\nimport { cn } from \"../util/cn.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\n\nexport function ErrorAlert({ error }: { error: unknown }) {\n const message =\n error instanceof Error ? error.message : \"Something went wrong\";\n\n const hint = error instanceof ZudokuError ? error.developerHint : undefined;\n const title =\n error instanceof ZudokuError ? error.title : \"Something went wrong\";\n const stack = error instanceof Error ? error.stack : undefined;\n const cause = error instanceof Error ? error.cause : undefined;\n\n const stringError = cause instanceof Error ? String(cause.stack) : stack;\n\n return (\n <div\n className={cn(\n ProseClasses,\n \"grid grid-cols-1 !max-w-none pt-[--padding-content-top]\",\n )}\n >\n <Heading level={1}>{title}</Heading>\n Error: {message}\n {hint && <DeveloperHint className=\"mb-4\">{hint}</DeveloperHint>}\n {stringError && (\n <div>\n <SyntaxHighlight\n className=\"max-h-[400px] border mt-2\"\n language=\"jsstacktrace\"\n code={stringError}\n />\n </div>\n )}\n </div>\n );\n}\n","import { isRouteErrorResponse, useRouteError } from \"react-router\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React, {\n type ComponentType,\n type ReactElement,\n ReactNode,\n useContext,\n} from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport {\n type Location,\n type NavigateFunction,\n type Params,\n type SetURLSearchParams,\n} from \"react-router\";\nimport { useExposedProps } from \"../util/useExposedProps.js\";\n\nexport type Slotlets = Record<\n string,\n ReactNode | ReactElement | ComponentType<ExposedComponentProps>\n>;\n\nconst SlotletContext = React.createContext<Slotlets | undefined>({});\n\nexport const SlotletProvider = ({\n slotlets,\n children,\n}: {\n children: ReactNode;\n slotlets?: Slotlets;\n}) => {\n return (\n <SlotletContext.Provider value={slotlets}>\n {children}\n </SlotletContext.Provider>\n );\n};\n\nexport type ExposedComponentProps = {\n location: Location;\n navigate: NavigateFunction;\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParams;\n params: Params;\n};\n\nexport const Slotlet = ({ name }: { name: string }) => {\n const context = useContext(SlotletContext);\n const componentOrElement = context?.[name];\n const slotletProps = useExposedProps();\n\n if (isValidElementType(componentOrElement)) {\n return React.createElement(componentOrElement, slotletProps);\n }\n\n return componentOrElement as ReactNode;\n};\n"],"names":["DeveloperHint","children","className","jsx","Callout","jsxs","Markdown","NotFoundPage","params","useParams","ProseClasses","CategoryHeading","Heading","UnlinkIcon","Link","Prism","n","remapLang","SyntaxHighlightInner","language","showCopy","showCopyText","title","disabled","props","resolvedTheme","useTheme","isCopied","setIsCopied","useState","code","highlightTheme","themes","themeColorClasses","Wrapper","style","cn","CheckIcon","CopyIcon","ClientOnly","Highlight","tokens","getLineProps","getTokenProps","line","i","token","key","SyntaxHighlight","memo","ErrorAlert","error","message","hint","ZudokuError","stack","cause","stringError","RouterError","useRouteError","isRouteErrorResponse","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","REACT_CLIENT_REFERENCE","typeOf","object","$$typeof","reactIs_production","type","reactIs_development","reactIsModule","require$$0","require$$1","SlotletContext","React","SlotletProvider","slotlets","Slotlet","name","context","useContext","componentOrElement","slotletProps","useExposedProps","isValidElementType"],"mappings":"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","x_google_ignoreList":[5,6,7]}
@@ -0,0 +1,92 @@
1
+ import { j as e } from "./jsx-runtime-CYK1ROHF.js";
2
+ import { ListTreeIcon as x } from "lucide-react";
3
+ import { useRef as l, useState as h, useEffect as f } from "react";
4
+ import { c } from "./cn-qaFjX9_3.js";
5
+ import { u as v, A as g } from "./Markdown-aF5FdsNi.js";
6
+ const d = "data-active", p = ({
7
+ item: s,
8
+ children: r,
9
+ className: n,
10
+ isActive: o
11
+ }) => /* @__PURE__ */ e.jsxs("li", { className: c("truncate", n), title: s.value, children: [
12
+ /* @__PURE__ */ e.jsx(
13
+ g,
14
+ {
15
+ to: `#${s.id}`,
16
+ [d]: s.id,
17
+ className: c(
18
+ o ? "text-primary" : "hover:text-accent-foreground text-muted-foreground"
19
+ ),
20
+ children: s.value
21
+ }
22
+ ),
23
+ r
24
+ ] }), R = ({ entries: s }) => {
25
+ const { activeAnchor: r } = v(), n = l(null), o = l(!1), [u, i] = h({
26
+ top: 0,
27
+ opacity: 0
28
+ });
29
+ return f(() => {
30
+ if (!n.current) return;
31
+ const t = n.current.querySelector(
32
+ `[${d}='${r}']`
33
+ );
34
+ if (!t) {
35
+ i({ top: 0, opacity: 0 });
36
+ return;
37
+ }
38
+ const a = n.current.getBoundingClientRect().top, m = t.getBoundingClientRect().top;
39
+ i({
40
+ opacity: 1,
41
+ top: `${m - a}px`
42
+ }), !o.current && requestIdleCallback(() => {
43
+ o.current = !0;
44
+ });
45
+ }, [r]), /* @__PURE__ */ e.jsxs("aside", { className: "sticky scrollbar top-8 lg:top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm", children: [
46
+ /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2 font-medium mb-2", children: [
47
+ /* @__PURE__ */ e.jsx(x, { size: 16 }),
48
+ "On this page"
49
+ ] }),
50
+ /* @__PURE__ */ e.jsxs("div", { className: "relative ms-2 ps-4", children: [
51
+ /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 right-auto bg-border w-[2px]" }),
52
+ /* @__PURE__ */ e.jsx(
53
+ "div",
54
+ {
55
+ className: c(
56
+ "absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary",
57
+ o.current && "ease-out [transition:top_150ms,opacity_325ms]"
58
+ ),
59
+ style: u
60
+ }
61
+ ),
62
+ /* @__PURE__ */ e.jsx(
63
+ "ul",
64
+ {
65
+ ref: n,
66
+ className: "relative font-medium list-none space-y-2",
67
+ children: s.map((t) => /* @__PURE__ */ e.jsx(
68
+ p,
69
+ {
70
+ isActive: t.id === r,
71
+ item: t,
72
+ className: "pl-0",
73
+ children: t.children && /* @__PURE__ */ e.jsx("ul", { className: "list-none pl-4 pt-2 space-y-2", children: t.children.map((a) => /* @__PURE__ */ e.jsx(
74
+ p,
75
+ {
76
+ item: a,
77
+ isActive: a.id === r
78
+ },
79
+ a.id
80
+ )) })
81
+ },
82
+ t.id
83
+ ))
84
+ }
85
+ )
86
+ ] })
87
+ ] });
88
+ };
89
+ export {
90
+ R as T
91
+ };
92
+ //# sourceMappingURL=Toc-YBsgI72s.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toc-YBsgI72s.js","sources":["../src/lib/components/navigation/Toc.tsx"],"sourcesContent":["import type { TocEntry } from \"@stefanprobst/rehype-extract-toc\";\nimport { ListTreeIcon } from \"lucide-react\";\nimport {\n useEffect,\n useRef,\n useState,\n type CSSProperties,\n type PropsWithChildren,\n} from \"react\";\nimport { cn } from \"../../util/cn.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.js\";\n\nconst DATA_ANCHOR_ATTR = \"data-active\";\n\nconst TocItem = ({\n item,\n children,\n className,\n isActive,\n}: PropsWithChildren<{\n item: TocEntry;\n isActive: boolean;\n className?: string;\n}>) => {\n return (\n <li className={cn(\"truncate\", className)} title={item.value}>\n <AnchorLink\n to={`#${item.id}`}\n {...{ [DATA_ANCHOR_ATTR]: item.id }}\n className={cn(\n isActive\n ? \"text-primary\"\n : \"hover:text-accent-foreground text-muted-foreground\",\n )}\n >\n {item.value}\n </AnchorLink>\n {children}\n </li>\n );\n};\n\nexport const Toc = ({ entries }: { entries: TocEntry[] }) => {\n const { activeAnchor } = useViewportAnchor();\n const listWrapperRef = useRef<HTMLUListElement>(null);\n const paintedOnce = useRef(false);\n const [indicatorStyle, setIndicatorStyles] = useState<CSSProperties>({\n top: 0,\n opacity: 0,\n });\n\n // synchronize active anchor indicator with the scroll position\n useEffect(() => {\n if (!listWrapperRef.current) return;\n\n const activeElement = listWrapperRef.current.querySelector(\n `[${DATA_ANCHOR_ATTR}='${activeAnchor}']`,\n );\n\n if (!activeElement) {\n setIndicatorStyles({ top: 0, opacity: 0 });\n return;\n }\n\n const topParent = listWrapperRef.current.getBoundingClientRect().top;\n const topElement = activeElement.getBoundingClientRect().top;\n\n setIndicatorStyles({\n opacity: 1,\n top: `${topElement - topParent}px`,\n });\n\n if (paintedOnce.current) return;\n\n // after all is painted, the indicator should animate\n requestIdleCallback(() => {\n paintedOnce.current = true;\n });\n }, [activeAnchor]);\n\n return (\n <aside className=\"sticky scrollbar top-8 lg:top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm\">\n <div className=\"flex items-center gap-2 font-medium mb-2\">\n <ListTreeIcon size={16} />\n On this page\n </div>\n <div className=\"relative ms-2 ps-4\">\n <div className=\"absolute inset-0 right-auto bg-border w-[2px]\" />\n <div\n className={cn(\n \"absolute -left-px -translate-y-1 h-6 w-[4px] rounded bg-primary\",\n paintedOnce.current &&\n \"ease-out [transition:top_150ms,opacity_325ms]\",\n )}\n style={indicatorStyle}\n />\n <ul\n ref={listWrapperRef}\n className=\"relative font-medium list-none space-y-2\"\n >\n {entries.map((item) => (\n <TocItem\n isActive={item.id === activeAnchor}\n key={item.id}\n item={item}\n className=\"pl-0\"\n >\n {item.children && (\n <ul className=\"list-none pl-4 pt-2 space-y-2\">\n {item.children.map((child) => (\n <TocItem\n item={child}\n isActive={child.id === activeAnchor}\n key={child.id}\n />\n ))}\n </ul>\n )}\n </TocItem>\n ))}\n </ul>\n </div>\n </aside>\n );\n};\n"],"names":["DATA_ANCHOR_ATTR","TocItem","item","children","className","isActive","jsxs","cn","jsx","AnchorLink","Toc","entries","activeAnchor","useViewportAnchor","listWrapperRef","useRef","paintedOnce","indicatorStyle","setIndicatorStyles","useState","useEffect","activeElement","topParent","topElement","ListTreeIcon","child"],"mappings":"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"}
@@ -1809,13 +1809,13 @@ export {
1809
1809
  dn as b,
1810
1810
  ln as c,
1811
1811
  on as d,
1812
- Ze as e,
1813
- ft as f,
1814
- sn as g,
1815
- Bt as h,
1812
+ ft as e,
1813
+ sn as f,
1814
+ Bt as g,
1815
+ Ze as h,
1816
1816
  we as i,
1817
1817
  H as m,
1818
1818
  an as r,
1819
1819
  N as u
1820
1820
  };
1821
- //# sourceMappingURL=chunk-HA7DTUK3-ZGg2W6yV.js.map
1821
+ //# sourceMappingURL=chunk-HA7DTUK3-C4gP41vD.js.map