zudoku 0.64.1 → 0.65.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 (402) hide show
  1. package/dist/app/main.d.ts +91 -1
  2. package/dist/app/main.js +5 -1
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/config/config.d.ts +15 -46
  5. package/dist/config/validators/InputNavigationSchema.d.ts +61 -61
  6. package/dist/config/validators/NavigationSchema.js +2 -4
  7. package/dist/config/validators/NavigationSchema.js.map +1 -1
  8. package/dist/config/validators/ProtectedRoutesSchema.d.ts +1 -1
  9. package/dist/config/validators/validate.d.ts +158 -2
  10. package/dist/config/validators/validate.js +37 -0
  11. package/dist/config/validators/validate.js.map +1 -1
  12. package/dist/config/validators/validate.test.js +43 -0
  13. package/dist/config/validators/validate.test.js.map +1 -1
  14. package/dist/flat-config.d.ts +22 -0
  15. package/dist/lib/auth/issuer.js +3 -0
  16. package/dist/lib/auth/issuer.js.map +1 -1
  17. package/dist/lib/authentication/authentication.d.ts +1 -1
  18. package/dist/lib/authentication/providers/auth0.js +6 -1
  19. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  20. package/dist/lib/authentication/providers/firebase.d.ts +4 -0
  21. package/dist/lib/authentication/providers/firebase.js +215 -0
  22. package/dist/lib/authentication/providers/firebase.js.map +1 -0
  23. package/dist/lib/authentication/providers/supabase.js +1 -6
  24. package/dist/lib/authentication/providers/supabase.js.map +1 -1
  25. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +24 -0
  26. package/dist/lib/authentication/ui/ZudokuAuthUi.js +124 -0
  27. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
  28. package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
  29. package/dist/lib/authentication/ui/icons/Apple.js +4 -0
  30. package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
  31. package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
  32. package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
  33. package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
  34. package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
  35. package/dist/lib/authentication/ui/icons/Github.js +4 -0
  36. package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
  37. package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
  38. package/dist/lib/authentication/ui/icons/Google.js +4 -0
  39. package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
  40. package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
  41. package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
  42. package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
  43. package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
  44. package/dist/lib/authentication/ui/icons/X.js +4 -0
  45. package/dist/lib/authentication/ui/icons/X.js.map +1 -0
  46. package/dist/lib/components/Autocomplete.d.ts +3 -1
  47. package/dist/lib/components/Autocomplete.js +6 -2
  48. package/dist/lib/components/Autocomplete.js.map +1 -1
  49. package/dist/lib/components/Heading.d.ts +1 -1
  50. package/dist/lib/components/Layout.js +3 -2
  51. package/dist/lib/components/Layout.js.map +1 -1
  52. package/dist/lib/components/navigation/NavigationItem.js +2 -2
  53. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  54. package/dist/lib/core/RouteGuard.js +6 -6
  55. package/dist/lib/core/RouteGuard.js.map +1 -1
  56. package/dist/lib/errors/ErrorAlert.js +1 -1
  57. package/dist/lib/errors/RouterError.d.ts +3 -1
  58. package/dist/lib/errors/RouterError.js +3 -2
  59. package/dist/lib/errors/RouterError.js.map +1 -1
  60. package/dist/lib/oas/parser/index.js +7 -3
  61. package/dist/lib/oas/parser/index.js.map +1 -1
  62. package/dist/lib/plugins/api-keys/ProtectedRoute.js +4 -1
  63. package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
  64. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +1 -0
  65. package/dist/lib/plugins/openapi/CollapsibleCode.js +2 -1
  66. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -1
  67. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
  68. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
  69. package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
  70. package/dist/lib/plugins/openapi/OperationList.js +5 -1
  71. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  72. package/dist/lib/plugins/openapi/OperationListItem.d.ts +2 -1
  73. package/dist/lib/plugins/openapi/OperationListItem.js +3 -2
  74. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  75. package/dist/lib/plugins/openapi/ParameterList.js +7 -4
  76. package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
  77. package/dist/lib/plugins/openapi/ParameterListItem.js +17 -6
  78. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  79. package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +9 -2
  80. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +5 -2
  81. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  82. package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +3 -2
  83. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +25 -4
  84. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  85. package/dist/lib/plugins/openapi/Sidecar.d.ts +2 -2
  86. package/dist/lib/plugins/openapi/Sidecar.js +53 -26
  87. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  88. package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
  89. package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
  90. package/dist/lib/plugins/openapi/SidecarExamples.d.ts +9 -2
  91. package/dist/lib/plugins/openapi/SidecarExamples.js +24 -43
  92. package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
  93. package/dist/lib/plugins/openapi/components/ConstValue.js +1 -1
  94. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -1
  95. package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
  96. package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
  97. package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
  98. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
  99. package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
  100. package/dist/lib/plugins/openapi/components/ResponseContent.js +5 -6
  101. package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -1
  102. package/dist/lib/plugins/openapi/interfaces.d.ts +13 -0
  103. package/dist/lib/plugins/openapi/playground/BodyPanel.js +67 -15
  104. package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
  105. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +2 -2
  106. package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
  107. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -1
  108. package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
  109. package/dist/lib/plugins/openapi/playground/Headers.js +23 -83
  110. package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
  111. package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +10 -2
  112. package/dist/lib/plugins/openapi/playground/ParamsGrid.js +8 -1
  113. package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
  114. package/dist/lib/plugins/openapi/playground/PathParams.js +2 -3
  115. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  116. package/dist/lib/plugins/openapi/playground/Playground.d.ts +7 -0
  117. package/dist/lib/plugins/openapi/playground/Playground.js +56 -28
  118. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  119. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -2
  120. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  121. package/dist/lib/plugins/openapi/playground/QueryParams.js +16 -40
  122. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  123. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
  124. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
  125. package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
  126. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +1 -1
  127. package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -1
  128. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
  129. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
  130. package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
  131. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
  132. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
  133. package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
  134. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +2 -2
  135. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
  136. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +1 -1
  137. package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
  138. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +17 -8
  139. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  140. package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
  141. package/dist/lib/plugins/openapi/schema/SchemaView.js +20 -13
  142. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  143. package/dist/lib/plugins/openapi/schema/UnionView.js +2 -5
  144. package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -1
  145. package/dist/lib/plugins/openapi/schema/union-helpers.js +0 -1
  146. package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -1
  147. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +5 -14
  148. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  149. package/dist/lib/ui/Badge.d.ts +3 -3
  150. package/dist/lib/ui/Badge.js +9 -7
  151. package/dist/lib/ui/Badge.js.map +1 -1
  152. package/dist/lib/ui/Button.d.ts +1 -1
  153. package/dist/lib/ui/Button.js +1 -0
  154. package/dist/lib/ui/Button.js.map +1 -1
  155. package/dist/lib/ui/Checkbox.d.ts +2 -2
  156. package/dist/lib/ui/Checkbox.js +4 -4
  157. package/dist/lib/ui/Checkbox.js.map +1 -1
  158. package/dist/lib/ui/CodeBlock.d.ts +0 -1
  159. package/dist/lib/ui/CodeBlock.js +1 -1
  160. package/dist/lib/ui/CodeBlock.js.map +1 -1
  161. package/dist/lib/ui/Collapsible.d.ts +4 -4
  162. package/dist/lib/ui/Collapsible.js +11 -4
  163. package/dist/lib/ui/Collapsible.js.map +1 -1
  164. package/dist/lib/ui/Command.d.ts +3 -3
  165. package/dist/lib/ui/EmbeddedCodeBlock.d.ts +0 -1
  166. package/dist/lib/ui/EmbeddedCodeBlock.js +3 -2
  167. package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  168. package/dist/lib/ui/Frame.d.ts +8 -0
  169. package/dist/lib/ui/Frame.js +22 -0
  170. package/dist/lib/ui/Frame.js.map +1 -0
  171. package/dist/lib/ui/Item.d.ts +23 -0
  172. package/dist/lib/ui/Item.js +67 -0
  173. package/dist/lib/ui/Item.js.map +1 -0
  174. package/dist/lib/ui/NativeSelect.d.ts +5 -0
  175. package/dist/lib/ui/NativeSelect.js +14 -0
  176. package/dist/lib/ui/NativeSelect.js.map +1 -0
  177. package/dist/lib/ui/Select.d.ts +13 -11
  178. package/dist/lib/ui/Select.js +34 -23
  179. package/dist/lib/ui/Select.js.map +1 -1
  180. package/dist/lib/ui/Separator.d.ts +4 -0
  181. package/dist/lib/ui/Separator.js +8 -0
  182. package/dist/lib/ui/Separator.js.map +1 -0
  183. package/dist/lib/ui/Tooltip.d.ts +7 -7
  184. package/dist/lib/ui/Tooltip.js +16 -10
  185. package/dist/lib/ui/Tooltip.js.map +1 -1
  186. package/dist/lib/util/createVariantComponent.d.ts +5 -2
  187. package/dist/lib/util/createVariantComponent.js +5 -2
  188. package/dist/lib/util/createVariantComponent.js.map +1 -1
  189. package/dist/lib/util/flattenAllOf.d.ts +4 -0
  190. package/dist/lib/util/flattenAllOf.js +65 -0
  191. package/dist/lib/util/flattenAllOf.js.map +1 -0
  192. package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
  193. package/dist/lib/util/flattenAllOf.test.js +532 -0
  194. package/dist/lib/util/flattenAllOf.test.js.map +1 -0
  195. package/dist/lib/util/readFrontmatter.d.ts +6 -0
  196. package/dist/lib/util/readFrontmatter.js +12 -0
  197. package/dist/lib/util/readFrontmatter.js.map +1 -0
  198. package/dist/vite/api/SchemaManager.js +6 -18
  199. package/dist/vite/api/SchemaManager.js.map +1 -1
  200. package/dist/vite/mdx/remark-last-modified.js +57 -3
  201. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  202. package/dist/vite/plugin-api.js +2 -2
  203. package/dist/vite/plugin-api.js.map +1 -1
  204. package/dist/vite/plugin-frontmatter.js +3 -5
  205. package/dist/vite/plugin-frontmatter.js.map +1 -1
  206. package/dist/vite/plugin-markdown-export.js +3 -4
  207. package/dist/vite/plugin-markdown-export.js.map +1 -1
  208. package/dist/vite/plugin-theme.js +10 -1
  209. package/dist/vite/plugin-theme.js.map +1 -1
  210. package/lib/{Button-DmS4u8Lj.js → Button-B3ucvvQw.js} +7 -6
  211. package/lib/Button-B3ucvvQw.js.map +1 -0
  212. package/lib/{ErrorAlert-DE3Sf66a.js → ErrorAlert-BOVgwTRP.js} +2832 -2857
  213. package/lib/ErrorAlert-BOVgwTRP.js.map +1 -0
  214. package/lib/{MdxPage-DZfeC0QY.js → MdxPage-CBYFyqUs.js} +6 -6
  215. package/lib/{MdxPage-DZfeC0QY.js.map → MdxPage-CBYFyqUs.js.map} +1 -1
  216. package/lib/{OAuthErrorPage-BycMozgn.js → OAuthErrorPage-DlTYnbLO.js} +4 -4
  217. package/lib/{OAuthErrorPage-BycMozgn.js.map → OAuthErrorPage-DlTYnbLO.js.map} +1 -1
  218. package/lib/{OasProvider-1XEOsIiW.js → OasProvider-DIPAQ79S.js} +2 -2
  219. package/lib/{OasProvider-1XEOsIiW.js.map → OasProvider-DIPAQ79S.js.map} +1 -1
  220. package/lib/OperationList-BOTFIfda.js +5688 -0
  221. package/lib/OperationList-BOTFIfda.js.map +1 -0
  222. package/lib/{Pagination-CJszmeSA.js → Pagination-BOZ9Pxcw.js} +2 -2
  223. package/lib/{Pagination-CJszmeSA.js.map → Pagination-BOZ9Pxcw.js.map} +1 -1
  224. package/lib/RouteGuard-Brz95MSt.js +77 -0
  225. package/lib/RouteGuard-Brz95MSt.js.map +1 -0
  226. package/lib/RouterError-DQS_bMwf.js +42 -0
  227. package/lib/RouterError-DQS_bMwf.js.map +1 -0
  228. package/lib/{SchemaList-qOHkDzSz.js → SchemaList-Bu95q_q2.js} +7 -7
  229. package/lib/{SchemaList-qOHkDzSz.js.map → SchemaList-Bu95q_q2.js.map} +1 -1
  230. package/lib/SchemaView-CaxK_HV4.js +586 -0
  231. package/lib/SchemaView-CaxK_HV4.js.map +1 -0
  232. package/lib/Select-DFRCS31-.js +399 -0
  233. package/lib/Select-DFRCS31-.js.map +1 -0
  234. package/lib/{SignUp-6SGx9Yyq.js → SignUp-CfB278ao.js} +2 -2
  235. package/lib/{SignUp-6SGx9Yyq.js.map → SignUp-CfB278ao.js.map} +1 -1
  236. package/lib/{SyntaxHighlight-zvlnSnHB.js → SyntaxHighlight-C19vH0V_.js} +525 -509
  237. package/lib/SyntaxHighlight-C19vH0V_.js.map +1 -0
  238. package/lib/{Toc-Da9yp7lo.js → Toc-DQIqdghO.js} +2 -2
  239. package/lib/{Toc-Da9yp7lo.js.map → Toc-DQIqdghO.js.map} +1 -1
  240. package/lib/{circular-CSSuz-LS.js → circular-B-_VyILZ.js} +6360 -5953
  241. package/lib/circular-B-_VyILZ.js.map +1 -0
  242. package/lib/{createServer-CLbcVLbK.js → createServer-C5lXk4ba.js} +4732 -4273
  243. package/lib/createServer-C5lXk4ba.js.map +1 -0
  244. package/lib/{errors-CuGgh3hf.js → errors-DqoyOKev.js} +2 -2
  245. package/lib/{errors-CuGgh3hf.js.map → errors-DqoyOKev.js.map} +1 -1
  246. package/lib/index-B7yD7ZUk.js +3680 -0
  247. package/lib/index-B7yD7ZUk.js.map +1 -0
  248. package/lib/{index-rYHsvtTo.js → index-BG79m3lF.js} +2 -2
  249. package/lib/{index-rYHsvtTo.js.map → index-BG79m3lF.js.map} +1 -1
  250. package/lib/{index-B1rmok4X.js → index-DHDtI9H5.js} +3 -3
  251. package/lib/{index-B1rmok4X.js.map → index-DHDtI9H5.js.map} +1 -1
  252. package/lib/ui/ActionButton.js +1 -1
  253. package/lib/ui/Badge.js +27 -13
  254. package/lib/ui/Badge.js.map +1 -1
  255. package/lib/ui/Button.js +6 -5
  256. package/lib/ui/Button.js.map +1 -1
  257. package/lib/ui/Checkbox.js +29 -26
  258. package/lib/ui/Checkbox.js.map +1 -1
  259. package/lib/ui/CodeBlock.js +7 -7
  260. package/lib/ui/CodeBlock.js.map +1 -1
  261. package/lib/ui/Collapsible.js +32 -5
  262. package/lib/ui/Collapsible.js.map +1 -1
  263. package/lib/ui/EmbeddedCodeBlock.js +26 -25
  264. package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
  265. package/lib/ui/Frame.js +81 -0
  266. package/lib/ui/Frame.js.map +1 -0
  267. package/lib/ui/Item.js +188 -0
  268. package/lib/ui/Item.js.map +1 -0
  269. package/lib/ui/NativeSelect.js +57 -0
  270. package/lib/ui/NativeSelect.js.map +1 -0
  271. package/lib/ui/Select.js +166 -116
  272. package/lib/ui/Select.js.map +1 -1
  273. package/lib/ui/Separator.js +27 -0
  274. package/lib/ui/Separator.js.map +1 -0
  275. package/lib/ui/SyntaxHighlight.js +1 -1
  276. package/lib/ui/Tabs.js +10 -10
  277. package/lib/ui/Tooltip.js +55 -28
  278. package/lib/ui/Tooltip.js.map +1 -1
  279. package/lib/zudoku.__internal.js +345 -345
  280. package/lib/zudoku.__internal.js.map +1 -1
  281. package/lib/zudoku.auth-auth0.js +7 -7
  282. package/lib/zudoku.auth-auth0.js.map +1 -1
  283. package/lib/zudoku.auth-azureb2c.js +3 -3
  284. package/lib/zudoku.auth-clerk.js +1 -1
  285. package/lib/zudoku.auth-openid.js +3 -3
  286. package/lib/zudoku.auth-supabase.js +30 -33
  287. package/lib/zudoku.auth-supabase.js.map +1 -1
  288. package/lib/zudoku.components.js +2 -2
  289. package/lib/zudoku.plugin-api-catalog.js +3 -3
  290. package/lib/zudoku.plugin-api-keys.js +5 -5
  291. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  292. package/lib/zudoku.plugin-markdown.js +1 -1
  293. package/lib/zudoku.plugin-openapi.js +1 -1
  294. package/lib/zudoku.plugin-search-pagefind.js +2 -2
  295. package/package.json +18 -13
  296. package/src/app/main.css +1 -1
  297. package/src/app/main.tsx +5 -1
  298. package/src/lib/auth/issuer.ts +3 -0
  299. package/src/lib/authentication/authentication.ts +1 -1
  300. package/src/lib/authentication/providers/auth0.tsx +6 -1
  301. package/src/lib/authentication/providers/firebase.tsx +284 -0
  302. package/src/lib/authentication/providers/supabase.tsx +2 -7
  303. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +335 -0
  304. package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
  305. package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
  306. package/src/lib/authentication/ui/icons/Github.tsx +16 -0
  307. package/src/lib/authentication/ui/icons/Google.tsx +16 -0
  308. package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
  309. package/src/lib/authentication/ui/icons/X.tsx +10 -0
  310. package/src/lib/components/Autocomplete.tsx +11 -2
  311. package/src/lib/components/Layout.tsx +3 -2
  312. package/src/lib/components/navigation/NavigationItem.tsx +7 -20
  313. package/src/lib/core/RouteGuard.tsx +8 -8
  314. package/src/lib/errors/ErrorAlert.tsx +1 -1
  315. package/src/lib/errors/RouterError.tsx +7 -2
  316. package/src/lib/oas/parser/index.ts +8 -3
  317. package/src/lib/plugins/api-keys/ProtectedRoute.tsx +11 -7
  318. package/src/lib/plugins/openapi/CollapsibleCode.tsx +5 -3
  319. package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
  320. package/src/lib/plugins/openapi/OperationList.tsx +7 -0
  321. package/src/lib/plugins/openapi/OperationListItem.tsx +10 -7
  322. package/src/lib/plugins/openapi/ParameterList.tsx +37 -23
  323. package/src/lib/plugins/openapi/ParameterListItem.tsx +105 -54
  324. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +48 -7
  325. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +81 -33
  326. package/src/lib/plugins/openapi/Sidecar.tsx +129 -65
  327. package/src/lib/plugins/openapi/SidecarBox.tsx +26 -4
  328. package/src/lib/plugins/openapi/SidecarExamples.tsx +91 -79
  329. package/src/lib/plugins/openapi/components/ConstValue.tsx +1 -1
  330. package/src/lib/plugins/openapi/components/EnumValues.tsx +2 -2
  331. package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
  332. package/src/lib/plugins/openapi/components/ResponseContent.tsx +63 -53
  333. package/src/lib/plugins/openapi/interfaces.ts +12 -0
  334. package/src/lib/plugins/openapi/playground/BodyPanel.tsx +246 -30
  335. package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +10 -6
  336. package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +3 -2
  337. package/src/lib/plugins/openapi/playground/Headers.tsx +103 -219
  338. package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +33 -1
  339. package/src/lib/plugins/openapi/playground/PathParams.tsx +26 -34
  340. package/src/lib/plugins/openapi/playground/Playground.tsx +73 -35
  341. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +9 -30
  342. package/src/lib/plugins/openapi/playground/QueryParams.tsx +82 -136
  343. package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
  344. package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +1 -1
  345. package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
  346. package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
  347. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +2 -6
  348. package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +1 -1
  349. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +89 -55
  350. package/src/lib/plugins/openapi/schema/SchemaView.tsx +82 -53
  351. package/src/lib/plugins/openapi/schema/UnionView.tsx +6 -17
  352. package/src/lib/plugins/openapi/schema/union-helpers.ts +0 -1
  353. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +5 -15
  354. package/src/lib/ui/Badge.tsx +21 -12
  355. package/src/lib/ui/Button.tsx +1 -0
  356. package/src/lib/ui/Checkbox.tsx +23 -24
  357. package/src/lib/ui/CodeBlock.tsx +3 -4
  358. package/src/lib/ui/Collapsible.tsx +26 -4
  359. package/src/lib/ui/EmbeddedCodeBlock.tsx +21 -19
  360. package/src/lib/ui/Frame.tsx +81 -0
  361. package/src/lib/ui/Item.tsx +192 -0
  362. package/src/lib/ui/NativeSelect.tsx +47 -0
  363. package/src/lib/ui/Select.tsx +153 -126
  364. package/src/lib/ui/Separator.tsx +25 -0
  365. package/src/lib/ui/Tooltip.tsx +54 -32
  366. package/src/lib/util/createVariantComponent.tsx +31 -5
  367. package/src/lib/util/flattenAllOf.test.ts +637 -0
  368. package/src/lib/util/flattenAllOf.ts +101 -0
  369. package/src/lib/util/readFrontmatter.ts +13 -0
  370. package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
  371. package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
  372. package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
  373. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.d.ts +0 -5
  374. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js +0 -7
  375. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.js.map +0 -1
  376. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.d.ts +0 -4
  377. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js +0 -10
  378. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.js.map +0 -1
  379. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.d.ts +0 -5
  380. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js +0 -16
  381. package/dist/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.js.map +0 -1
  382. package/lib/Button-DmS4u8Lj.js.map +0 -1
  383. package/lib/ErrorAlert-DE3Sf66a.js.map +0 -1
  384. package/lib/OperationList-DCJw6wXL.js +0 -5450
  385. package/lib/OperationList-DCJw6wXL.js.map +0 -1
  386. package/lib/RouteGuard-DhU3LRr1.js +0 -81
  387. package/lib/RouteGuard-DhU3LRr1.js.map +0 -1
  388. package/lib/RouterError-VDLnrFqF.js +0 -41
  389. package/lib/RouterError-VDLnrFqF.js.map +0 -1
  390. package/lib/SchemaView-D3hm65cc.js +0 -458
  391. package/lib/SchemaView-D3hm65cc.js.map +0 -1
  392. package/lib/Select-C1DeCqKv.js +0 -372
  393. package/lib/Select-C1DeCqKv.js.map +0 -1
  394. package/lib/SyntaxHighlight-zvlnSnHB.js.map +0 -1
  395. package/lib/circular-CSSuz-LS.js.map +0 -1
  396. package/lib/createServer-CLbcVLbK.js.map +0 -1
  397. package/lib/index-RNAxx6IF.js +0 -3364
  398. package/lib/index-RNAxx6IF.js.map +0 -1
  399. package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
  400. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupConnector.tsx +0 -36
  401. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupItem.tsx +0 -25
  402. package/src/lib/plugins/openapi/schema/AllOfGroup/AllOfGroupView.tsx +0 -42
@@ -1,6 +1,6 @@
1
- import { u as a } from "./ZudokuContext-BUZ5hkWB.js";
2
- import { OpenIDAuthenticationProvider as r } from "./zudoku.auth-openid.js";
3
- class c extends r {
1
+ import { u as r } from "./ZudokuContext-BUZ5hkWB.js";
2
+ import { OpenIDAuthenticationProvider as a } from "./zudoku.auth-openid.js";
3
+ class p extends a {
4
4
  options;
5
5
  constructor(t) {
6
6
  super({
@@ -13,11 +13,11 @@ class c extends r {
13
13
  }), this.options = t.options;
14
14
  }
15
15
  onAuthorizationUrl = async (t, { isSignUp: e }) => {
16
- this.options?.alwaysPromptLogin !== !1 && t.searchParams.set("prompt", "login"), e && t.searchParams.set("screen_hint", "signup");
16
+ this.options?.prompt !== void 0 ? this.options.prompt !== "" && t.searchParams.set("prompt", this.options.prompt) : this.options?.alwaysPromptLogin !== !1 && t.searchParams.set("prompt", "login"), e && t.searchParams.set("screen_hint", "signup");
17
17
  };
18
18
  signOut = async (t) => {
19
19
  const e = await this.getAuthServer(), i = await this.getAccessToken();
20
- a.setState({
20
+ r.setState({
21
21
  isAuthenticated: !1,
22
22
  isPending: !1,
23
23
  profile: void 0,
@@ -36,8 +36,8 @@ class c extends r {
36
36
  );
37
37
  };
38
38
  }
39
- const u = (s) => new c(s);
39
+ const h = (s) => new p(s);
40
40
  export {
41
- u as default
41
+ h as default
42
42
  };
43
43
  //# sourceMappingURL=zudoku.auth-auth0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import type { Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider\n extends OpenIDAuthenticationProvider\n implements AuthenticationPlugin\n{\n private readonly options: Auth0AuthenticationConfig[\"options\"];\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}/`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n this.options = config.options;\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n if (this.options?.alwaysPromptLogin !== false) {\n url.searchParams.set(\"prompt\", \"login\");\n }\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (_: AuthActionContext): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.redirectToAfterSignOut;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const _logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","url","isSignUp","_","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;AASA,MAAMA,UACIC,EAEV;AAAA,EACmB;AAAA,EACjB,YAAYC,GAAmC;AAC7C,UAAM;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB,GACD,KAAK,UAAUA,EAAO;AAAA,EACxB;AAAA,EAEA,qBAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACH,IAAI,KAAK,SAAS,sBAAsB,MACtCD,EAAI,aAAa,IAAI,UAAU,OAAO,GAEpCC,KACFD,EAAI,aAAa,IAAI,eAAe,QAAQ;AAAA,EAEhD;AAAA,EAEA,UAAU,OAAOE,MAAwC;AACvD,UAAMC,IAAK,MAAM,KAAK,cAAA,GAChBC,IAAU,MAAM,KAAK,eAAA;AAE3B,IAAAC,EAAa,SAAS;AAAA,MACpB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,CACf;AAED,UAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,QATAA,EAAY,WAAW,KAAK,wBASxBH,EAAG,sBAAsB;AAC3B,YAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,MAAIC,KACFG,EAAU,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,QACrB;AAAA,QACAD,EAAY,SAAA;AAAA,MAAS;AAAA,IAIzB;AACqB,UAAI;AAAA,QACrB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,EAIvC;AACF;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
1
+ {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import type { Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport type {\n AuthActionContext,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider\n extends OpenIDAuthenticationProvider\n implements AuthenticationPlugin\n{\n private readonly options: Auth0AuthenticationConfig[\"options\"];\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}/`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n this.options = config.options;\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n if (this.options?.prompt !== undefined) {\n if (this.options.prompt !== \"\") {\n url.searchParams.set(\"prompt\", this.options.prompt);\n }\n } else if (this.options?.alwaysPromptLogin !== false) {\n url.searchParams.set(\"prompt\", \"login\");\n }\n\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (_: AuthActionContext): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.redirectToAfterSignOut;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const _logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","url","isSignUp","_","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;AASA,MAAMA,UACIC,EAEV;AAAA,EACmB;AAAA,EACjB,YAAYC,GAAmC;AAC7C,UAAM;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB,GACD,KAAK,UAAUA,EAAO;AAAA,EACxB;AAAA,EAEA,qBAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACH,IAAI,KAAK,SAAS,WAAW,SACvB,KAAK,QAAQ,WAAW,MAC1BD,EAAI,aAAa,IAAI,UAAU,KAAK,QAAQ,MAAM,IAE3C,KAAK,SAAS,sBAAsB,MAC7CA,EAAI,aAAa,IAAI,UAAU,OAAO,GAGpCC,KACFD,EAAI,aAAa,IAAI,eAAe,QAAQ;AAAA,EAEhD;AAAA,EAEA,UAAU,OAAOE,MAAwC;AACvD,UAAMC,IAAK,MAAM,KAAK,cAAA,GAChBC,IAAU,MAAM,KAAK,eAAA;AAE3B,IAAAC,EAAa,SAAS;AAAA,MACpB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,IAAA,CACf;AAED,UAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,QATAA,EAAY,WAAW,KAAK,wBASxBH,EAAG,sBAAsB;AAC3B,YAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,MAAIC,KACFG,EAAU,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,QACrB;AAAA,QACAD,EAAY,SAAA;AAAA,MAAS;AAAA,IAIzB;AACqB,UAAI;AAAA,QACrB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,MAAA;AAAA,EAIvC;AACF;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
@@ -1,10 +1,10 @@
1
1
  import { j as n } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { PublicClientApplication as A, EventType as f } from "@azure/msal-browser";
3
- import { E as I } from "./index-B1rmok4X.js";
3
+ import { E as I } from "./index-DHDtI9H5.js";
4
4
  import { C as T } from "./ClientOnly-E7hGysn1.js";
5
5
  import { j as S, u as h } from "./ZudokuContext-BUZ5hkWB.js";
6
- import { C, A as c } from "./errors-CuGgh3hf.js";
7
- import { C as k, O as w } from "./OAuthErrorPage-BycMozgn.js";
6
+ import { C, A as c } from "./errors-DqoyOKev.js";
7
+ import { C as k, O as w } from "./OAuthErrorPage-DlTYnbLO.js";
8
8
  const u = "/oauth/callback";
9
9
  class y extends C {
10
10
  msalInstance;
@@ -1,6 +1,6 @@
1
1
  import { j as l } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { LogOutIcon as f } from "lucide-react";
3
- import { S as w, a as p, b as v } from "./SignUp-6SGx9Yyq.js";
3
+ import { S as w, a as p, b as v } from "./SignUp-CfB278ao.js";
4
4
  import { u as n } from "./ZudokuContext-BUZ5hkWB.js";
5
5
  const b = ({
6
6
  clerkPubKey: d,
@@ -1,10 +1,10 @@
1
1
  import { j as D } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { g as Le } from "./invariant-Bm-FVUQE.js";
3
- import { E as Ue } from "./index-B1rmok4X.js";
3
+ import { E as Ue } from "./index-DHDtI9H5.js";
4
4
  import { C as xe } from "./ClientOnly-E7hGysn1.js";
5
5
  import { j as Ce, u as S } from "./ZudokuContext-BUZ5hkWB.js";
6
- import { C as Ie, O as re, A as R } from "./errors-CuGgh3hf.js";
7
- import { C as je, O as Oe } from "./OAuthErrorPage-BycMozgn.js";
6
+ import { C as Ie, O as re, A as R } from "./errors-DqoyOKev.js";
7
+ import { C as je, O as Oe } from "./OAuthErrorPage-DlTYnbLO.js";
8
8
  var J = { exports: {} }, De = J.exports, oe;
9
9
  function Je() {
10
10
  return oe || (oe = 1, (function(t) {
@@ -1,28 +1,28 @@
1
- import { j as a } from "./jsx-runtime-BzflLqGi.js";
1
+ import { j as i } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { createClient as h } from "@supabase/supabase-js";
3
- import { C as m, A as g } from "./errors-CuGgh3hf.js";
4
- import { S as v } from "./SignUp-6SGx9Yyq.js";
5
- import { u as d } from "./ZudokuContext-BUZ5hkWB.js";
6
- import { Auth as f } from "@supabase/auth-ui-react";
3
+ import { C as m, A as g } from "./errors-DqoyOKev.js";
4
+ import { S as f } from "./SignUp-CfB278ao.js";
5
+ import { u } from "./ZudokuContext-BUZ5hkWB.js";
6
+ import { Auth as v } from "@supabase/auth-ui-react";
7
7
  import { ThemeSupa as S } from "@supabase/auth-ui-shared";
8
8
  import { a as A } from "./chunk-PVWAREVJ-BMhpCH5D.js";
9
- import { H as T } from "./ErrorAlert-DE3Sf66a.js";
10
- const c = ({
11
- client: n,
9
+ import { H as T } from "./ErrorAlert-BOVgwTRP.js";
10
+ const d = ({
11
+ client: s,
12
12
  config: e,
13
13
  view: t = "sign_in"
14
14
  }) => {
15
- const [r] = A(), s = r.get("redirectTo"), u = e.provider ? [e.provider] : e.providers, i = e.basePath ?? "/", o = s ?? e.redirectToAfterSignUp ?? i, p = s ?? e.redirectToAfterSignIn ?? i, l = s ?? e.redirectToAfterSignOut ?? i;
16
- return /* @__PURE__ */ a.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ a.jsxs("div", { className: "max-w-md w-full mt-10", children: [
17
- /* @__PURE__ */ a.jsx(T, { level: 1, children: t === "sign_in" ? "Sign in" : "Sign up" }),
18
- /* @__PURE__ */ a.jsx(
19
- f,
15
+ const [r] = A(), a = r.get("redirectTo"), n = e.provider ? [e.provider] : e.providers, o = e.basePath ?? "/", c = a ?? e.redirectToAfterSignUp ?? o, l = a ?? e.redirectToAfterSignIn ?? o, p = a ?? e.redirectToAfterSignOut ?? o;
16
+ return /* @__PURE__ */ i.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ i.jsxs("div", { className: "max-w-md w-full mt-10", children: [
17
+ /* @__PURE__ */ i.jsx(T, { level: 1, children: t === "sign_in" ? "Sign in" : "Sign up" }),
18
+ /* @__PURE__ */ i.jsx(
19
+ v,
20
20
  {
21
21
  view: t,
22
- redirectToAfterSignIn: p,
23
- redirectToAfterSignUp: o,
24
- redirectToAfterSignOut: l,
25
- supabaseClient: n,
22
+ redirectToAfterSignIn: l,
23
+ redirectToAfterSignUp: c,
24
+ redirectToAfterSignOut: p,
25
+ supabaseClient: s,
26
26
  onlyThirdPartyProviders: e.onlyThirdPartyProviders,
27
27
  appearance: {
28
28
  theme: S,
@@ -48,7 +48,7 @@ const c = ({
48
48
  }
49
49
  }
50
50
  },
51
- providers: u,
51
+ providers: n,
52
52
  redirectTo: e.redirectToAfterSignIn ?? "/"
53
53
  }
54
54
  )
@@ -56,19 +56,16 @@ const c = ({
56
56
  };
57
57
  class b extends m {
58
58
  client;
59
- providers;
60
59
  config;
61
60
  constructor(e) {
62
- const { provider: t, providers: r, supabaseUrl: s, supabaseKey: u } = e;
63
- if (super(), this.providers = r ?? (t ? [t] : []), this.providers.length === 0)
64
- throw new Error("At least one provider must be provided");
65
- this.client = h(s, u, {
61
+ const { supabaseUrl: t, supabaseKey: r } = e;
62
+ super(), this.client = h(t, r, {
66
63
  auth: {
67
64
  autoRefreshToken: !0,
68
65
  persistSession: !0
69
66
  }
70
- }), this.config = e, this.client.auth.onAuthStateChange(async (i, o) => {
71
- o && (i === "SIGNED_IN" || i === "TOKEN_REFRESHED") ? await this.updateUserState(o) : i === "SIGNED_OUT" && d.getState().setLoggedOut();
67
+ }), this.config = e, this.client.auth.onAuthStateChange(async (a, n) => {
68
+ n && (a === "SIGNED_IN" || a === "TOKEN_REFRESHED") ? await this.updateUserState(n) : a === "SIGNED_OUT" && u.getState().setLoggedOut();
72
69
  });
73
70
  }
74
71
  async updateUserState(e) {
@@ -79,7 +76,7 @@ class b extends m {
79
76
  emailVerified: t.email_confirmed_at != null,
80
77
  pictureUrl: t.user_metadata.avatar_url
81
78
  };
82
- d.getState().setLoggedIn({
79
+ u.getState().setLoggedIn({
83
80
  profile: r,
84
81
  providerData: { session: e }
85
82
  });
@@ -107,8 +104,8 @@ class b extends m {
107
104
  getRoutes = () => [
108
105
  {
109
106
  path: "/signin",
110
- element: /* @__PURE__ */ a.jsx(
111
- c,
107
+ element: /* @__PURE__ */ i.jsx(
108
+ d,
112
109
  {
113
110
  view: "sign_in",
114
111
  client: this.client,
@@ -118,8 +115,8 @@ class b extends m {
118
115
  },
119
116
  {
120
117
  path: "/signup",
121
- element: /* @__PURE__ */ a.jsx(
122
- c,
118
+ element: /* @__PURE__ */ i.jsx(
119
+ d,
123
120
  {
124
121
  view: "sign_up",
125
122
  client: this.client,
@@ -129,7 +126,7 @@ class b extends m {
129
126
  },
130
127
  {
131
128
  path: "/signout",
132
- element: /* @__PURE__ */ a.jsx(v, {})
129
+ element: /* @__PURE__ */ i.jsx(f, {})
133
130
  }
134
131
  ];
135
132
  signOut = async () => {
@@ -138,7 +135,7 @@ class b extends m {
138
135
  r === "SIGNED_OUT" && (t.subscription.unsubscribe(), e());
139
136
  });
140
137
  this.client.auth.signOut();
141
- }), d.setState({
138
+ }), u.setState({
142
139
  isAuthenticated: !1,
143
140
  isPending: !1,
144
141
  profile: void 0,
@@ -150,7 +147,7 @@ class b extends m {
150
147
  !t && e.session && await this.updateUserState(e.session);
151
148
  };
152
149
  }
153
- const j = (n) => new b(n);
150
+ const j = (s) => new b(s);
154
151
  export {
155
152
  j as default
156
153
  };
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-supabase.js","sources":["../src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx","../src/lib/authentication/providers/supabase.tsx"],"sourcesContent":["import { Auth } from \"@supabase/auth-ui-react\";\nimport {\n ThemeSupa,\n type ThemeVariables,\n type ViewType,\n} from \"@supabase/auth-ui-shared\";\nimport type { SupabaseClient } from \"@supabase/supabase-js\";\nimport { useSearchParams } from \"react-router\";\nimport type { SupabaseAuthenticationConfig } from \"../../../../config/config.js\";\nimport { Heading } from \"../../../components/Heading.js\";\n\nexport const SupabaseAuthUI = ({\n client,\n config,\n view = \"sign_in\",\n}: {\n client: SupabaseClient;\n config: SupabaseAuthenticationConfig;\n view: ViewType;\n}) => {\n const [searchParams] = useSearchParams();\n const redirectTo = searchParams.get(\"redirectTo\");\n const providers = config.provider ? [config.provider] : config.providers;\n const root = config.basePath ?? \"/\";\n const redirectToAfterSignUp =\n redirectTo ?? config.redirectToAfterSignUp ?? root;\n const redirectToAfterSignIn =\n redirectTo ?? config.redirectToAfterSignIn ?? root;\n const redirectToAfterSignOut =\n redirectTo ?? config.redirectToAfterSignOut ?? root;\n\n return (\n <div className=\"flex items-center justify-center\">\n <div className=\"max-w-md w-full mt-10\">\n <Heading level={1}>\n {view === \"sign_in\" ? \"Sign in\" : \"Sign up\"}\n </Heading>\n <Auth\n view={view}\n redirectToAfterSignIn={redirectToAfterSignIn}\n redirectToAfterSignUp={redirectToAfterSignUp}\n redirectToAfterSignOut={redirectToAfterSignOut}\n supabaseClient={client}\n onlyThirdPartyProviders={config.onlyThirdPartyProviders}\n appearance={{\n theme: ThemeSupa,\n variables: {\n default: {\n colors: {\n dividerBackground: \"var(--border)\",\n brand: \"var(--primary)\",\n brandAccent: \"hsla(from var(--primary) h s l / 0.8)\",\n brandButtonText: \"var(--primary-foreground)\",\n defaultButtonBorder: \"var(--border)\",\n inputBorder: \"var(--border)\",\n inputText: \"var(--foreground)\",\n inputBorderHover: \"var(--accent)\",\n defaultButtonBackground: \"var(--secondary)\",\n defaultButtonBackgroundHover: \"var(--accent)\",\n },\n radii: {\n borderRadiusButton: \"var(--radius)\",\n buttonBorderRadius: \"var(--radius)\",\n inputBorderRadius: \"var(--radius)\",\n },\n } satisfies ThemeVariables,\n },\n }}\n providers={providers}\n redirectTo={config.redirectToAfterSignIn ?? \"/\"}\n />\n </div>\n </div>\n );\n};\n","import {\n createClient,\n type Provider,\n type Session,\n type SupabaseClient,\n} from \"@supabase/supabase-js\";\nimport type { SupabaseAuthenticationConfig } from \"../../../config/config.js\";\nimport { CoreAuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport type {\n AuthActionContext,\n AuthActionOptions,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { AuthorizationError } from \"../errors.js\";\nimport { type UserProfile, useAuthState } from \"../state.js\";\nimport { SupabaseAuthUI } from \"./supabase/SupabaseAuthUI.js\";\n\nclass SupabaseAuthenticationProvider\n extends CoreAuthenticationPlugin\n implements AuthenticationPlugin\n{\n private readonly client: SupabaseClient;\n private readonly providers: Provider[];\n private readonly config: SupabaseAuthenticationConfig;\n\n constructor(config: SupabaseAuthenticationConfig) {\n const { provider, providers, supabaseUrl, supabaseKey } = config;\n super();\n this.providers = providers ?? (provider ? [provider] : []);\n if (this.providers.length === 0) {\n throw new Error(\"At least one provider must be provided\");\n }\n this.client = createClient(supabaseUrl, supabaseKey, {\n auth: {\n autoRefreshToken: true,\n persistSession: true,\n },\n });\n this.config = config;\n\n this.client.auth.onAuthStateChange(async (event, session) => {\n if (session && (event === \"SIGNED_IN\" || event === \"TOKEN_REFRESHED\")) {\n await this.updateUserState(session);\n } else if (event === \"SIGNED_OUT\") {\n useAuthState.getState().setLoggedOut();\n }\n });\n }\n\n private async updateUserState(session: Session) {\n const { user } = session;\n\n const profile: UserProfile = {\n sub: user.id,\n email: user.email,\n name: user.user_metadata.full_name || user.user_metadata.name,\n emailVerified: user.email_confirmed_at != null,\n pictureUrl: user.user_metadata.avatar_url,\n };\n\n useAuthState.getState().setLoggedIn({\n profile,\n providerData: { session },\n });\n }\n\n async getAccessToken(): Promise<string> {\n const { data, error } = await this.client.auth.getSession();\n\n if (error || !data.session) {\n throw new AuthorizationError(\"User is not authenticated\");\n }\n\n return data.session.access_token;\n }\n\n async signRequest(request: Request): Promise<Request> {\n const accessToken = await this.getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n return request;\n }\n\n signUp = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signup?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signup`,\n );\n };\n\n signIn = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signin?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signin`,\n );\n };\n\n getRoutes = () => {\n return [\n {\n path: \"/signin\",\n element: (\n <SupabaseAuthUI\n view=\"sign_in\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signup\",\n element: (\n <SupabaseAuthUI\n view=\"sign_up\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n ];\n };\n\n signOut = async () => {\n await new Promise<void>((resolve) => {\n const { data } = this.client.auth.onAuthStateChange(async (event) => {\n if (event !== \"SIGNED_OUT\") return;\n data.subscription.unsubscribe();\n resolve();\n });\n void this.client.auth.signOut();\n });\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n };\n\n onPageLoad = async () => {\n const { data, error } = await this.client.auth.getSession();\n\n if (!error && data.session) {\n await this.updateUserState(data.session);\n }\n };\n}\n\nconst supabaseAuth: AuthenticationProviderInitializer<\n SupabaseAuthenticationConfig\n> = (options) => new SupabaseAuthenticationProvider(options);\n\nexport default supabaseAuth;\n"],"names":["SupabaseAuthUI","client","config","view","searchParams","useSearchParams","redirectTo","providers","root","redirectToAfterSignUp","redirectToAfterSignIn","redirectToAfterSignOut","jsxs","jsx","Heading","Auth","ThemeSupa","SupabaseAuthenticationProvider","CoreAuthenticationPlugin","provider","supabaseUrl","supabaseKey","createClient","event","session","useAuthState","user","profile","data","error","AuthorizationError","request","accessToken","navigate","SignOut","resolve","supabaseAuth","options"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.auth-supabase.js","sources":["../src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx","../src/lib/authentication/providers/supabase.tsx"],"sourcesContent":["import { Auth } from \"@supabase/auth-ui-react\";\nimport {\n ThemeSupa,\n type ThemeVariables,\n type ViewType,\n} from \"@supabase/auth-ui-shared\";\nimport type { SupabaseClient } from \"@supabase/supabase-js\";\nimport { useSearchParams } from \"react-router\";\nimport type { SupabaseAuthenticationConfig } from \"../../../../config/config.js\";\nimport { Heading } from \"../../../components/Heading.js\";\n\nexport const SupabaseAuthUI = ({\n client,\n config,\n view = \"sign_in\",\n}: {\n client: SupabaseClient;\n config: SupabaseAuthenticationConfig;\n view: ViewType;\n}) => {\n const [searchParams] = useSearchParams();\n const redirectTo = searchParams.get(\"redirectTo\");\n const providers = config.provider ? [config.provider] : config.providers;\n const root = config.basePath ?? \"/\";\n const redirectToAfterSignUp =\n redirectTo ?? config.redirectToAfterSignUp ?? root;\n const redirectToAfterSignIn =\n redirectTo ?? config.redirectToAfterSignIn ?? root;\n const redirectToAfterSignOut =\n redirectTo ?? config.redirectToAfterSignOut ?? root;\n\n return (\n <div className=\"flex items-center justify-center\">\n <div className=\"max-w-md w-full mt-10\">\n <Heading level={1}>\n {view === \"sign_in\" ? \"Sign in\" : \"Sign up\"}\n </Heading>\n <Auth\n view={view}\n redirectToAfterSignIn={redirectToAfterSignIn}\n redirectToAfterSignUp={redirectToAfterSignUp}\n redirectToAfterSignOut={redirectToAfterSignOut}\n supabaseClient={client}\n onlyThirdPartyProviders={config.onlyThirdPartyProviders}\n appearance={{\n theme: ThemeSupa,\n variables: {\n default: {\n colors: {\n dividerBackground: \"var(--border)\",\n brand: \"var(--primary)\",\n brandAccent: \"hsla(from var(--primary) h s l / 0.8)\",\n brandButtonText: \"var(--primary-foreground)\",\n defaultButtonBorder: \"var(--border)\",\n inputBorder: \"var(--border)\",\n inputText: \"var(--foreground)\",\n inputBorderHover: \"var(--accent)\",\n defaultButtonBackground: \"var(--secondary)\",\n defaultButtonBackgroundHover: \"var(--accent)\",\n },\n radii: {\n borderRadiusButton: \"var(--radius)\",\n buttonBorderRadius: \"var(--radius)\",\n inputBorderRadius: \"var(--radius)\",\n },\n } satisfies ThemeVariables,\n },\n }}\n providers={providers}\n redirectTo={config.redirectToAfterSignIn ?? \"/\"}\n />\n </div>\n </div>\n );\n};\n","import {\n createClient,\n type Session,\n type SupabaseClient,\n} from \"@supabase/supabase-js\";\nimport type { SupabaseAuthenticationConfig } from \"../../../config/config.js\";\nimport { CoreAuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport type {\n AuthActionContext,\n AuthActionOptions,\n AuthenticationPlugin,\n AuthenticationProviderInitializer,\n} from \"../authentication.js\";\nimport { SignOut } from \"../components/SignOut.js\";\nimport { AuthorizationError } from \"../errors.js\";\nimport { type UserProfile, useAuthState } from \"../state.js\";\nimport { SupabaseAuthUI } from \"./supabase/SupabaseAuthUI.js\";\n\nclass SupabaseAuthenticationProvider\n extends CoreAuthenticationPlugin\n implements AuthenticationPlugin\n{\n private readonly client: SupabaseClient;\n private readonly config: SupabaseAuthenticationConfig;\n\n constructor(config: SupabaseAuthenticationConfig) {\n const { supabaseUrl, supabaseKey } = config;\n super();\n\n this.client = createClient(supabaseUrl, supabaseKey, {\n auth: {\n autoRefreshToken: true,\n persistSession: true,\n },\n });\n this.config = config;\n\n this.client.auth.onAuthStateChange(async (event, session) => {\n if (session && (event === \"SIGNED_IN\" || event === \"TOKEN_REFRESHED\")) {\n await this.updateUserState(session);\n } else if (event === \"SIGNED_OUT\") {\n useAuthState.getState().setLoggedOut();\n }\n });\n }\n\n private async updateUserState(session: Session) {\n const { user } = session;\n\n const profile: UserProfile = {\n sub: user.id,\n email: user.email,\n name: user.user_metadata.full_name || user.user_metadata.name,\n emailVerified: user.email_confirmed_at != null,\n pictureUrl: user.user_metadata.avatar_url,\n };\n\n useAuthState.getState().setLoggedIn({\n profile,\n providerData: { session },\n });\n }\n\n async getAccessToken(): Promise<string> {\n const { data, error } = await this.client.auth.getSession();\n\n if (error || !data.session) {\n throw new AuthorizationError(\"User is not authenticated\");\n }\n\n return data.session.access_token;\n }\n\n async signRequest(request: Request): Promise<Request> {\n const accessToken = await this.getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${accessToken}`);\n return request;\n }\n\n signUp = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signup?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signup`,\n );\n };\n\n signIn = async (\n { navigate }: AuthActionContext,\n { redirectTo }: AuthActionOptions,\n ) => {\n void navigate(\n redirectTo\n ? `/signin?redirectTo=${encodeURIComponent(redirectTo)}`\n : `/signin`,\n );\n };\n\n getRoutes = () => {\n return [\n {\n path: \"/signin\",\n element: (\n <SupabaseAuthUI\n view=\"sign_in\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signup\",\n element: (\n <SupabaseAuthUI\n view=\"sign_up\"\n client={this.client}\n config={this.config}\n />\n ),\n },\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n ];\n };\n\n signOut = async () => {\n await new Promise<void>((resolve) => {\n const { data } = this.client.auth.onAuthStateChange(async (event) => {\n if (event !== \"SIGNED_OUT\") return;\n data.subscription.unsubscribe();\n resolve();\n });\n void this.client.auth.signOut();\n });\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n providerData: undefined,\n });\n };\n\n onPageLoad = async () => {\n const { data, error } = await this.client.auth.getSession();\n\n if (!error && data.session) {\n await this.updateUserState(data.session);\n }\n };\n}\n\nconst supabaseAuth: AuthenticationProviderInitializer<\n SupabaseAuthenticationConfig\n> = (options) => new SupabaseAuthenticationProvider(options);\n\nexport default supabaseAuth;\n"],"names":["SupabaseAuthUI","client","config","view","searchParams","useSearchParams","redirectTo","providers","root","redirectToAfterSignUp","redirectToAfterSignIn","redirectToAfterSignOut","jsxs","jsx","Heading","Auth","ThemeSupa","SupabaseAuthenticationProvider","CoreAuthenticationPlugin","supabaseUrl","supabaseKey","createClient","event","session","useAuthState","user","profile","data","error","AuthorizationError","request","accessToken","navigate","SignOut","resolve","supabaseAuth","options"],"mappings":"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"}
@@ -6,9 +6,9 @@ import "./ui/Button.js";
6
6
  import "./ui/Callout.js";
7
7
  import "./ClientOnly-E7hGysn1.js";
8
8
  import "./ZudokuContext-BUZ5hkWB.js";
9
- import "./ErrorAlert-DE3Sf66a.js";
9
+ import "./ErrorAlert-BOVgwTRP.js";
10
10
  import "./Spinner-CI6bRyZw.js";
11
- import { B as d, i as h, C as l, d as k, c as S, L as y, M, e as T, S as Z, T as c, Z as f, g, h as A, f as B, j as E, u as H } from "./index-B1rmok4X.js";
11
+ import { B as d, i as h, C as l, d as k, c as S, L as y, M, e as T, S as Z, T as c, Z as f, g, h as A, f as B, j as E, u as H } from "./index-DHDtI9H5.js";
12
12
  export {
13
13
  d as Button,
14
14
  h as CACHE_KEYS,
@@ -1,10 +1,10 @@
1
1
  import { j as t } from "./jsx-runtime-BzflLqGi.js";
2
- import { s as f } from "./index-rYHsvtTo.js";
2
+ import { s as f } from "./index-BG79m3lF.js";
3
3
  import { e as b, m as j } from "./chunk-PVWAREVJ-BMhpCH5D.js";
4
4
  import { u as x, b as v, j as d } from "./ZudokuContext-BUZ5hkWB.js";
5
5
  import { H as y } from "./index.esm-BnYHxCYC.js";
6
- import { L as N } from "./index-B1rmok4X.js";
7
- import { H as k, M as S } from "./ErrorAlert-DE3Sf66a.js";
6
+ import { L as N } from "./index-DHDtI9H5.js";
7
+ import { H as k, M as S } from "./ErrorAlert-BOVgwTRP.js";
8
8
  const w = ({
9
9
  items: o,
10
10
  filterCatalogItems: r = (i) => i,
@@ -1,13 +1,13 @@
1
1
  import { j as e } from "./jsx-runtime-BzflLqGi.js";
2
2
  import { CircleSlashIcon as z, CheckIcon as ue, XIcon as he, PencilLineIcon as fe, RefreshCwIcon as pe, TrashIcon as me, KeyRoundIcon as xe } from "lucide-react";
3
- import { R as ye } from "./RouterError-VDLnrFqF.js";
3
+ import { R as ye } from "./RouterError-DQS_bMwf.js";
4
4
  import { i as I } from "./invariant-Bm-FVUQE.js";
5
5
  import { O as ge, u as je } from "./chunk-PVWAREVJ-BMhpCH5D.js";
6
6
  import { u as Ce } from "./hook-CMeoxziF.js";
7
- import { D as ve, a as Y } from "./ErrorAlert-DE3Sf66a.js";
7
+ import { D as ve, a as Y } from "./ErrorAlert-BOVgwTRP.js";
8
8
  import { Button as w } from "./ui/Button.js";
9
9
  import { a as se, g as ne, b as we } from "./ZudokuContext-BUZ5hkWB.js";
10
- import { u as O, A as M, a as q, b as ke, S as be, c as Ne, d as Ke, e as Ee, f as De, g as Z, h as Ae } from "./Select-C1DeCqKv.js";
10
+ import { u as O, A as M, a as q, b as ke, S as be, c as Ne, d as Ke, e as Ee, f as De, g as Z, h as Ae } from "./Select-DFRCS31-.js";
11
11
  import * as L from "react";
12
12
  import Pe, { createContext as Q, useRef as E, useLayoutEffect as Ie, useEffect as re, useId as _, useContext as B, useInsertionEffect as Re, useMemo as F, useCallback as Se, Children as Te, isValidElement as Oe, useState as K, forwardRef as Me } from "react";
13
13
  import { C as qe, a as $e } from "./Card-KFniaZn5.js";
@@ -15,12 +15,12 @@ import { e as H, f as D, D as V, g as G, a as J, b as U, c as W, d as ie } from
15
15
  import { Input as ae } from "./ui/Input.js";
16
16
  import { c as A } from "./cn-dYga0KKN.js";
17
17
  import { a as ze } from "./index.esm-BYObtETB.js";
18
- import { B as Fe } from "./Button-DmS4u8Lj.js";
18
+ import { B as Fe } from "./Button-B3ucvvQw.js";
19
19
  import { S as Le } from "./Spinner-CI6bRyZw.js";
20
20
  import { useAuth as Qe } from "./zudoku.hooks.js";
21
21
  const _e = () => {
22
22
  const t = Ce();
23
- return t.isAuthEnabled && t.isPending ? null : t.isAuthenticated ? /* @__PURE__ */ e.jsx(ge, {}) : t.isAuthEnabled ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: [
23
+ return t.isAuthEnabled && t.isPending ? null : t.isAuthEnabled ? t.isAuthenticated ? /* @__PURE__ */ e.jsx(ge, {}) : /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: [
24
24
  "Please login first to view this page",
25
25
  /* @__PURE__ */ e.jsx(w, { onClick: () => t.login(), children: "Login" })
26
26
  ] }) : /* @__PURE__ */ e.jsx("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: /* @__PURE__ */ e.jsxs(ve, { className: "max-w-[600px]", children: [