zudoku 0.0.0-fcb84d6 → 0.0.0-fd8f8ad

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 (665) hide show
  1. package/README.md +121 -0
  2. package/cli.js +2 -2
  3. package/dist/app/demo.js +0 -2
  4. package/dist/app/demo.js.map +1 -1
  5. package/dist/app/entry.client.js +16 -2
  6. package/dist/app/entry.client.js.map +1 -1
  7. package/dist/app/entry.server.js +9 -6
  8. package/dist/app/entry.server.js.map +1 -1
  9. package/dist/app/main.d.ts +2 -1
  10. package/dist/app/main.js +11 -28
  11. package/dist/app/main.js.map +1 -1
  12. package/dist/app/standalone.js +0 -2
  13. package/dist/app/standalone.js.map +1 -1
  14. package/dist/cli/cli.js +1 -2
  15. package/dist/cli/cli.js.map +1 -1
  16. package/dist/cli/common/machine-id/lib.js.map +1 -1
  17. package/dist/cli/common/outdated.js.map +1 -1
  18. package/dist/cli/common/utils/box.js.map +1 -1
  19. package/dist/codegen.d.ts +3 -0
  20. package/dist/codegen.js +45 -0
  21. package/dist/codegen.js.map +1 -0
  22. package/dist/config/validators/InputSidebarSchema.d.ts +12 -12
  23. package/dist/config/validators/SidebarSchema.d.ts +24 -1
  24. package/dist/config/validators/SidebarSchema.js +76 -39
  25. package/dist/config/validators/SidebarSchema.js.map +1 -1
  26. package/dist/config/validators/validate.d.ts +398 -252
  27. package/dist/config/validators/validate.js +23 -7
  28. package/dist/config/validators/validate.js.map +1 -1
  29. package/dist/index.d.ts +4 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/lib/authentication/authentication.d.ts +2 -2
  33. package/dist/lib/authentication/components/CallbackHandler.js +21 -31
  34. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  35. package/dist/lib/authentication/hook.d.ts +1 -1
  36. package/dist/lib/authentication/hook.js +1 -1
  37. package/dist/lib/authentication/hook.js.map +1 -1
  38. package/dist/lib/authentication/providers/auth0.js +10 -9
  39. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  40. package/dist/lib/authentication/state.d.ts +1 -1
  41. package/dist/lib/authentication/state.js +5 -3
  42. package/dist/lib/authentication/state.js.map +1 -1
  43. package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
  44. package/dist/lib/authentication/use-broadcast/shared.js +243 -0
  45. package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
  46. package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
  47. package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
  48. package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
  49. package/dist/lib/components/Bootstrap.d.ts +3 -1
  50. package/dist/lib/components/Bootstrap.js +11 -3
  51. package/dist/lib/components/Bootstrap.js.map +1 -1
  52. package/dist/lib/components/ClientOnly.d.ts +4 -2
  53. package/dist/lib/components/ClientOnly.js +1 -1
  54. package/dist/lib/components/ClientOnly.js.map +1 -1
  55. package/dist/lib/components/DeveloperHint.js +2 -1
  56. package/dist/lib/components/DeveloperHint.js.map +1 -1
  57. package/dist/lib/components/Header.js +10 -7
  58. package/dist/lib/components/Header.js.map +1 -1
  59. package/dist/lib/components/Heading.d.ts +1 -1
  60. package/dist/lib/components/MobileTopNavigation.js +7 -3
  61. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  62. package/dist/lib/components/SlotletProvider.d.ts +2 -1
  63. package/dist/lib/components/SlotletProvider.js.map +1 -1
  64. package/dist/lib/components/SyntaxHighlight.js +19 -12
  65. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  66. package/dist/lib/components/ThemeSwitch.d.ts +1 -0
  67. package/dist/lib/components/ThemeSwitch.js +11 -0
  68. package/dist/lib/components/ThemeSwitch.js.map +1 -0
  69. package/dist/lib/components/TopNavigation.d.ts +3 -0
  70. package/dist/lib/components/TopNavigation.js +38 -5
  71. package/dist/lib/components/TopNavigation.js.map +1 -1
  72. package/dist/lib/components/{DevPortal.d.ts → Zudoku.d.ts} +3 -3
  73. package/dist/lib/components/{DevPortal.js → Zudoku.js} +13 -14
  74. package/dist/lib/components/Zudoku.js.map +1 -0
  75. package/dist/lib/components/context/ZudokuContext.d.ts +10 -14
  76. package/dist/lib/components/context/ZudokuContext.js +27 -26
  77. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  78. package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
  79. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  80. package/dist/lib/components/index.d.ts +20 -13
  81. package/dist/lib/components/index.js +11 -5
  82. package/dist/lib/components/index.js.map +1 -1
  83. package/dist/lib/components/navigation/Sidebar.js +3 -3
  84. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  85. package/dist/lib/components/navigation/SidebarCategory.js +12 -7
  86. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  87. package/dist/lib/components/navigation/SidebarItem.js +3 -5
  88. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  89. package/dist/lib/components/navigation/utils.js +10 -14
  90. package/dist/lib/components/navigation/utils.js.map +1 -1
  91. package/dist/lib/core/{DevPortalContext.d.ts → ZudokuContext.d.ts} +6 -13
  92. package/dist/lib/core/{DevPortalContext.js → ZudokuContext.js} +2 -7
  93. package/dist/lib/core/ZudokuContext.js.map +1 -0
  94. package/dist/lib/core/plugins.d.ts +13 -12
  95. package/dist/lib/core/plugins.js.map +1 -1
  96. package/dist/lib/errors/ErrorAlert.d.ts +1 -1
  97. package/dist/lib/errors/ErrorAlert.js +8 -3
  98. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  99. package/dist/lib/oas/graphql/index.js +4 -4
  100. package/dist/lib/oas/graphql/index.js.map +1 -1
  101. package/dist/lib/oas/parser/upgrade/index.js +3 -1
  102. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  103. package/dist/lib/plugins/api-keys/CreateApiKey.js +1 -1
  104. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  105. package/dist/lib/plugins/api-keys/index.d.ts +9 -9
  106. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  107. package/dist/lib/plugins/custom-pages/CustomPage.js +2 -2
  108. package/dist/lib/plugins/custom-pages/index.d.ts +2 -2
  109. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  110. package/dist/lib/plugins/markdown/index.d.ts +6 -7
  111. package/dist/lib/plugins/markdown/index.js +31 -3
  112. package/dist/lib/plugins/markdown/index.js.map +1 -1
  113. package/dist/lib/plugins/markdown/resolver.d.ts +38 -0
  114. package/dist/lib/plugins/markdown/resolver.js +75 -0
  115. package/dist/lib/plugins/markdown/resolver.js.map +1 -0
  116. package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +5 -0
  117. package/dist/lib/plugins/openapi/CollapsibleCode.js +24 -0
  118. package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -0
  119. package/dist/lib/plugins/openapi/ColorizedParam.js +13 -9
  120. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  121. package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -1
  122. package/dist/lib/plugins/openapi/Endpoint.js +5 -9
  123. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  124. package/dist/lib/plugins/openapi/OperationList.d.ts +2 -2
  125. package/dist/lib/plugins/openapi/OperationList.js +21 -22
  126. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  127. package/dist/lib/plugins/openapi/ParameterListItem.js +6 -1
  128. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  129. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +7 -3
  130. package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
  131. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +9 -2
  132. package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
  133. package/dist/lib/plugins/openapi/Route.d.ts +4 -4
  134. package/dist/lib/plugins/openapi/Route.js +2 -4
  135. package/dist/lib/plugins/openapi/Route.js.map +1 -1
  136. package/dist/lib/plugins/openapi/Sidecar.d.ts +1 -1
  137. package/dist/lib/plugins/openapi/Sidecar.js +35 -33
  138. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  139. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
  140. package/dist/lib/plugins/openapi/client/GraphQLClient.js +102 -0
  141. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
  142. package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
  143. package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
  144. package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
  145. package/dist/lib/plugins/openapi/client/createServer.d.ts +1 -0
  146. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
  147. package/dist/lib/plugins/openapi/client/useCreateQuery.js +13 -0
  148. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
  149. package/dist/lib/plugins/openapi/client/worker.d.ts +4 -1
  150. package/dist/lib/plugins/openapi/client/worker.js +23 -14
  151. package/dist/lib/plugins/openapi/client/worker.js.map +1 -1
  152. package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
  153. package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
  154. package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
  155. package/dist/lib/plugins/openapi/graphql/gql.d.ts +5 -51
  156. package/dist/lib/plugins/openapi/graphql/gql.js +4 -2
  157. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  158. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +32 -8
  159. package/dist/lib/plugins/openapi/graphql/graphql.js +194 -662
  160. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  161. package/dist/lib/plugins/openapi/index.d.ts +2 -2
  162. package/dist/lib/plugins/openapi/index.js +40 -53
  163. package/dist/lib/plugins/openapi/index.js.map +1 -1
  164. package/dist/lib/plugins/openapi/playground/Playground.js +2 -1
  165. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  166. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  167. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  168. package/dist/lib/plugins/openapi/schema/SchemaView.js +2 -1
  169. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  170. package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +0 -1
  171. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +25 -36
  172. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  173. package/dist/lib/plugins/openapi-worker.d.ts +1 -1
  174. package/dist/lib/plugins/openapi-worker.js +7 -1
  175. package/dist/lib/plugins/openapi-worker.js.map +1 -1
  176. package/dist/lib/plugins/redirect/index.d.ts +4 -7
  177. package/dist/lib/plugins/redirect/index.js +1 -1
  178. package/dist/lib/plugins/redirect/index.js.map +1 -1
  179. package/dist/lib/plugins/search-inkeep/index.d.ts +2 -2
  180. package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
  181. package/dist/lib/ui/Accordion.d.ts +7 -0
  182. package/dist/lib/ui/Accordion.js +14 -0
  183. package/dist/lib/ui/Accordion.js.map +1 -0
  184. package/dist/lib/ui/ActionButton.d.ts +4 -0
  185. package/dist/lib/ui/ActionButton.js +10 -0
  186. package/dist/lib/ui/ActionButton.js.map +1 -0
  187. package/dist/lib/ui/Alert.d.ts +8 -0
  188. package/dist/lib/ui/Alert.js +23 -0
  189. package/dist/lib/ui/Alert.js.map +1 -0
  190. package/dist/lib/ui/AlertDialog.d.ts +20 -0
  191. package/dist/lib/ui/AlertDialog.js +27 -0
  192. package/dist/lib/ui/AlertDialog.js.map +1 -0
  193. package/dist/lib/ui/AspectRatio.d.ts +3 -0
  194. package/dist/lib/ui/AspectRatio.js +4 -0
  195. package/dist/lib/ui/AspectRatio.js.map +1 -0
  196. package/dist/lib/ui/Badge.d.ts +9 -0
  197. package/dist/lib/ui/Badge.js +21 -0
  198. package/dist/lib/ui/Badge.js.map +1 -0
  199. package/dist/lib/ui/Breadcrumb.d.ts +19 -0
  200. package/dist/lib/ui/Breadcrumb.js +24 -0
  201. package/dist/lib/ui/Breadcrumb.js.map +1 -0
  202. package/dist/lib/ui/Button.d.ts +2 -3
  203. package/dist/lib/ui/Button.js +1 -1
  204. package/dist/lib/ui/Button.js.map +1 -1
  205. package/dist/lib/ui/Carousel.d.ts +18 -0
  206. package/dist/lib/ui/Carousel.js +99 -0
  207. package/dist/lib/ui/Carousel.js.map +1 -0
  208. package/dist/lib/ui/Checkbox.d.ts +4 -0
  209. package/dist/lib/ui/Checkbox.js +9 -0
  210. package/dist/lib/ui/Checkbox.js.map +1 -0
  211. package/dist/lib/ui/Collapsible.d.ts +5 -0
  212. package/dist/lib/ui/Collapsible.js +6 -0
  213. package/dist/lib/ui/Collapsible.js.map +1 -0
  214. package/dist/lib/ui/Command.d.ts +80 -0
  215. package/dist/lib/ui/Command.js +31 -0
  216. package/dist/lib/ui/Command.js.map +1 -0
  217. package/dist/lib/{components → ui}/Dialog.js +2 -2
  218. package/dist/lib/ui/Dialog.js.map +1 -0
  219. package/dist/lib/ui/Form.d.ts +23 -0
  220. package/dist/lib/ui/Form.js +63 -0
  221. package/dist/lib/ui/Form.js.map +1 -0
  222. package/dist/lib/ui/HoverCard.d.ts +6 -0
  223. package/dist/lib/ui/HoverCard.js +10 -0
  224. package/dist/lib/ui/HoverCard.js.map +1 -0
  225. package/dist/lib/ui/Label.d.ts +5 -0
  226. package/dist/lib/ui/Label.js +10 -0
  227. package/dist/lib/ui/Label.js.map +1 -0
  228. package/dist/lib/ui/Pagination.d.ts +28 -0
  229. package/dist/lib/ui/Pagination.js +24 -0
  230. package/dist/lib/ui/Pagination.js.map +1 -0
  231. package/dist/lib/ui/Popover.d.ts +6 -0
  232. package/dist/lib/ui/Popover.js +10 -0
  233. package/dist/lib/ui/Popover.js.map +1 -0
  234. package/dist/lib/ui/Progress.d.ts +4 -0
  235. package/dist/lib/ui/Progress.js +8 -0
  236. package/dist/lib/ui/Progress.js.map +1 -0
  237. package/dist/lib/ui/RadioGroup.d.ts +5 -0
  238. package/dist/lib/ui/RadioGroup.js +15 -0
  239. package/dist/lib/ui/RadioGroup.js.map +1 -0
  240. package/dist/lib/ui/ScrollArea.d.ts +5 -0
  241. package/dist/lib/ui/ScrollArea.js +12 -0
  242. package/dist/lib/ui/ScrollArea.js.map +1 -0
  243. package/dist/lib/ui/Select.js.map +1 -0
  244. package/dist/lib/ui/Skeleton.d.ts +2 -0
  245. package/dist/lib/ui/Skeleton.js +7 -0
  246. package/dist/lib/ui/Skeleton.js.map +1 -0
  247. package/dist/lib/ui/Slider.d.ts +4 -0
  248. package/dist/lib/ui/Slider.js +8 -0
  249. package/dist/lib/ui/Slider.js.map +1 -0
  250. package/dist/lib/ui/Switch.d.ts +4 -0
  251. package/dist/lib/ui/Switch.js +8 -0
  252. package/dist/lib/ui/Switch.js.map +1 -0
  253. package/dist/lib/ui/Textarea.d.ts +4 -0
  254. package/dist/lib/ui/Textarea.js +9 -0
  255. package/dist/lib/ui/Textarea.js.map +1 -0
  256. package/dist/lib/ui/Toggle.d.ts +12 -0
  257. package/dist/lib/ui/Toggle.js +26 -0
  258. package/dist/lib/ui/Toggle.js.map +1 -0
  259. package/dist/lib/ui/ToggleGroup.d.ts +12 -0
  260. package/dist/lib/ui/ToggleGroup.js +21 -0
  261. package/dist/lib/ui/ToggleGroup.js.map +1 -0
  262. package/dist/lib/ui/Tooltip.d.ts +7 -0
  263. package/dist/lib/ui/Tooltip.js +11 -0
  264. package/dist/lib/ui/Tooltip.js.map +1 -0
  265. package/dist/lib/util/MdxComponents.d.ts +1 -1
  266. package/dist/lib/util/MdxComponents.js.map +1 -1
  267. package/dist/lib/util/invariant.d.ts +9 -0
  268. package/dist/lib/util/invariant.js +7 -3
  269. package/dist/lib/util/invariant.js.map +1 -1
  270. package/dist/lib/util/useExposedProps.js +3 -2
  271. package/dist/lib/util/useExposedProps.js.map +1 -1
  272. package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
  273. package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
  274. package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
  275. package/dist/lib/util/useOnScreen.d.ts +4 -0
  276. package/dist/lib/util/useOnScreen.js +19 -0
  277. package/dist/lib/util/useOnScreen.js.map +1 -0
  278. package/dist/lib/util/useScrollToAnchor.js.map +1 -1
  279. package/dist/vite/build.js +12 -3
  280. package/dist/vite/build.js.map +1 -1
  281. package/dist/vite/config.d.ts +2 -8
  282. package/dist/vite/config.js +24 -60
  283. package/dist/vite/config.js.map +1 -1
  284. package/dist/vite/debug.d.ts +1 -0
  285. package/dist/vite/debug.js +10 -0
  286. package/dist/vite/debug.js.map +1 -0
  287. package/dist/vite/dev-server.js +1 -1
  288. package/dist/vite/dev-server.js.map +1 -1
  289. package/dist/vite/html.js +0 -2
  290. package/dist/vite/html.js.map +1 -1
  291. package/dist/vite/output.d.ts +101 -0
  292. package/dist/vite/output.js +33 -0
  293. package/dist/vite/output.js.map +1 -0
  294. package/dist/vite/plugin-component.js +17 -7
  295. package/dist/vite/plugin-component.js.map +1 -1
  296. package/dist/vite/plugin-config-reload.js +0 -2
  297. package/dist/vite/plugin-config-reload.js.map +1 -1
  298. package/dist/vite/plugin-config.d.ts +2 -3
  299. package/dist/vite/plugin-config.js +2 -3
  300. package/dist/vite/plugin-config.js.map +1 -1
  301. package/dist/vite/plugin-docs.js +37 -26
  302. package/dist/vite/plugin-docs.js.map +1 -1
  303. package/dist/vite/plugin-frontmatter.d.ts +2 -1
  304. package/dist/vite/plugin-frontmatter.js +27 -24
  305. package/dist/vite/plugin-frontmatter.js.map +1 -1
  306. package/dist/vite/plugin-mdx.d.ts +0 -6
  307. package/dist/vite/plugin-mdx.js +3 -2
  308. package/dist/vite/plugin-mdx.js.map +1 -1
  309. package/dist/vite/plugin-search.d.ts +3 -0
  310. package/dist/vite/plugin-search.js +26 -0
  311. package/dist/vite/plugin-search.js.map +1 -0
  312. package/dist/vite/plugin-sidebar.js +7 -6
  313. package/dist/vite/plugin-sidebar.js.map +1 -1
  314. package/dist/vite/plugin.js +4 -4
  315. package/dist/vite/plugin.js.map +1 -1
  316. package/dist/vite/prerender.d.ts +5 -1
  317. package/dist/vite/prerender.js +7 -5
  318. package/dist/vite/prerender.js.map +1 -1
  319. package/dist/vite/remarkStaticGeneration.d.ts +3 -0
  320. package/dist/vite/remarkStaticGeneration.js +125 -0
  321. package/dist/vite/remarkStaticGeneration.js.map +1 -0
  322. package/lib/{utils-C8S3st2k.js → AnchorLink-CDlhr8gL.js} +232 -275
  323. package/lib/AnchorLink-CDlhr8gL.js.map +1 -0
  324. package/lib/{AuthenticationPlugin-D1nhROkO.js → AuthenticationPlugin-DeGDVa1r.js} +6 -5
  325. package/lib/{AuthenticationPlugin-D1nhROkO.js.map → AuthenticationPlugin-DeGDVa1r.js.map} +1 -1
  326. package/lib/Button-jK0EsymC.js +48 -0
  327. package/lib/Button-jK0EsymC.js.map +1 -0
  328. package/lib/{CategoryHeading-B7TlPvuN.js → CategoryHeading-Bb9dqxD3.js} +4 -4
  329. package/lib/{CategoryHeading-B7TlPvuN.js.map → CategoryHeading-Bb9dqxD3.js.map} +1 -1
  330. package/lib/ClientOnly-E7hGysn1.js +11 -0
  331. package/lib/ClientOnly-E7hGysn1.js.map +1 -0
  332. package/lib/Dialog-k70Qfukb.js +67 -0
  333. package/lib/Dialog-k70Qfukb.js.map +1 -0
  334. package/lib/Markdown-BorQdbxW.js +15192 -0
  335. package/lib/Markdown-BorQdbxW.js.map +1 -0
  336. package/lib/{MdxPage-B4FcPIi5.js → MdxPage-DFlbtJWi.js} +33 -31
  337. package/lib/{MdxPage-B4FcPIi5.js.map → MdxPage-DFlbtJWi.js.map} +1 -1
  338. package/lib/OperationList-KshJrrLL.js +4691 -0
  339. package/lib/OperationList-KshJrrLL.js.map +1 -0
  340. package/lib/Route-DlG_HTMu.js +11 -0
  341. package/lib/Route-DlG_HTMu.js.map +1 -0
  342. package/lib/Select-DP74t8Yy.js +223 -0
  343. package/lib/Select-DP74t8Yy.js.map +1 -0
  344. package/lib/SidebarBadge-DxFJcJ6V.js +51 -0
  345. package/lib/SidebarBadge-DxFJcJ6V.js.map +1 -0
  346. package/lib/SlotletProvider-D2v6rJy1.js +252 -0
  347. package/lib/SlotletProvider-D2v6rJy1.js.map +1 -0
  348. package/lib/SyntaxHighlight-CBmwwKoM.js +2983 -0
  349. package/lib/SyntaxHighlight-CBmwwKoM.js.map +1 -0
  350. package/lib/__vite-browser-external-BYRIRx8p.js +9 -0
  351. package/lib/__vite-browser-external-BYRIRx8p.js.map +1 -0
  352. package/lib/_commonjsHelpers-BkfeUUK-.js +29 -0
  353. package/lib/_commonjsHelpers-BkfeUUK-.js.map +1 -0
  354. package/lib/assets/{worker-Bf8vjASY.js → worker-CPsGZsve.js} +565 -561
  355. package/lib/assets/{worker-Bf8vjASY.js.map → worker-CPsGZsve.js.map} +1 -1
  356. package/lib/cn-BmFQLtkS.js +2279 -0
  357. package/lib/cn-BmFQLtkS.js.map +1 -0
  358. package/lib/context-D1nXWxm7.js +22 -0
  359. package/lib/context-D1nXWxm7.js.map +1 -0
  360. package/lib/createServer-DK-g7kbB.js +16089 -0
  361. package/lib/createServer-DK-g7kbB.js.map +1 -0
  362. package/lib/hook-Diu0rqp-.js +229 -0
  363. package/lib/hook-Diu0rqp-.js.map +1 -0
  364. package/lib/index-BcesIHH4.js +1273 -0
  365. package/lib/index-BcesIHH4.js.map +1 -0
  366. package/lib/index-Bn6Lc9tq.js +9 -0
  367. package/lib/{index-DJqnphbT.js.map → index-Bn6Lc9tq.js.map} +1 -1
  368. package/lib/index-BuAyrJe3.js +46 -0
  369. package/lib/index-BuAyrJe3.js.map +1 -0
  370. package/lib/index-Czzd9rjU.js +899 -0
  371. package/lib/index-Czzd9rjU.js.map +1 -0
  372. package/lib/{index-D06ATMgg.js → index-LNp6rxyU.js} +2 -2
  373. package/lib/{index-D06ATMgg.js.map → index-LNp6rxyU.js.map} +1 -1
  374. package/lib/index-Yn8c3UWE.js +921 -0
  375. package/lib/index-Yn8c3UWE.js.map +1 -0
  376. package/lib/index.esm-C5mr_sKO.js +1193 -0
  377. package/lib/index.esm-C5mr_sKO.js.map +1 -0
  378. package/lib/invariant-Caa8-XvF.js +26 -0
  379. package/lib/invariant-Caa8-XvF.js.map +1 -0
  380. package/lib/{router-BsfSoK2j.js → router-lfyopgBI.js} +23 -23
  381. package/lib/{router-BsfSoK2j.js.map → router-lfyopgBI.js.map} +1 -1
  382. package/lib/state-BsPrOUAh.js +252 -0
  383. package/lib/state-BsPrOUAh.js.map +1 -0
  384. package/lib/ui/Accordion.js +47 -0
  385. package/lib/ui/Accordion.js.map +1 -0
  386. package/lib/ui/ActionButton.js +25 -0
  387. package/lib/ui/ActionButton.js.map +1 -0
  388. package/lib/ui/Alert.js +51 -0
  389. package/lib/ui/Alert.js.map +1 -0
  390. package/lib/ui/AlertDialog.js +114 -0
  391. package/lib/ui/AlertDialog.js.map +1 -0
  392. package/lib/ui/AspectRatio.js +6 -0
  393. package/lib/ui/AspectRatio.js.map +1 -0
  394. package/lib/ui/Badge.js +27 -0
  395. package/lib/ui/Badge.js.map +1 -0
  396. package/lib/ui/Breadcrumb.js +94 -0
  397. package/lib/ui/Breadcrumb.js.map +1 -0
  398. package/lib/ui/Button.js +49 -0
  399. package/lib/ui/Button.js.map +1 -0
  400. package/lib/ui/Callout.js +77 -0
  401. package/lib/ui/Callout.js.map +1 -0
  402. package/lib/ui/Card.js +62 -0
  403. package/lib/ui/Card.js.map +1 -0
  404. package/lib/ui/Carousel.js +1410 -0
  405. package/lib/ui/Carousel.js.map +1 -0
  406. package/lib/ui/Checkbox.js +28 -0
  407. package/lib/ui/Checkbox.js.map +1 -0
  408. package/lib/ui/Collapsible.js +8 -0
  409. package/lib/ui/Collapsible.js.map +1 -0
  410. package/lib/ui/Command.js +550 -0
  411. package/lib/ui/Command.js.map +1 -0
  412. package/lib/ui/Dialog.js +101 -0
  413. package/lib/ui/Dialog.js.map +1 -0
  414. package/lib/ui/Drawer.js +1153 -0
  415. package/lib/ui/Drawer.js.map +1 -0
  416. package/lib/ui/DropdownMenu.js +145 -0
  417. package/lib/ui/DropdownMenu.js.map +1 -0
  418. package/lib/ui/Form.js +95 -0
  419. package/lib/ui/Form.js.map +1 -0
  420. package/lib/ui/HoverCard.js +24 -0
  421. package/lib/ui/HoverCard.js.map +1 -0
  422. package/lib/ui/Input.js +22 -0
  423. package/lib/ui/Input.js.map +1 -0
  424. package/lib/ui/Label.js +20 -0
  425. package/lib/ui/Label.js.map +1 -0
  426. package/lib/ui/Pagination.js +106 -0
  427. package/lib/ui/Pagination.js.map +1 -0
  428. package/lib/ui/Popover.js +24 -0
  429. package/lib/ui/Popover.js.map +1 -0
  430. package/lib/ui/Progress.js +27 -0
  431. package/lib/ui/Progress.js.map +1 -0
  432. package/lib/ui/RadioGroup.js +32 -0
  433. package/lib/ui/RadioGroup.js.map +1 -0
  434. package/lib/ui/ScrollArea.js +39 -0
  435. package/lib/ui/ScrollArea.js.map +1 -0
  436. package/lib/ui/Select.js +122 -0
  437. package/lib/ui/Select.js.map +1 -0
  438. package/lib/ui/Skeleton.js +18 -0
  439. package/lib/ui/Skeleton.js.map +1 -0
  440. package/lib/ui/Slider.js +24 -0
  441. package/lib/ui/Slider.js.map +1 -0
  442. package/lib/ui/Switch.js +28 -0
  443. package/lib/ui/Switch.js.map +1 -0
  444. package/lib/ui/Tabs.js +47 -0
  445. package/lib/ui/Tabs.js.map +1 -0
  446. package/lib/ui/Textarea.js +21 -0
  447. package/lib/ui/Textarea.js.map +1 -0
  448. package/lib/ui/Toggle.js +38 -0
  449. package/lib/ui/Toggle.js.map +1 -0
  450. package/lib/ui/ToggleGroup.js +42 -0
  451. package/lib/ui/ToggleGroup.js.map +1 -0
  452. package/lib/ui/Tooltip.js +24 -0
  453. package/lib/ui/Tooltip.js.map +1 -0
  454. package/lib/useExposedProps-CTPtylCV.js +10 -0
  455. package/lib/useExposedProps-CTPtylCV.js.map +1 -0
  456. package/lib/{ZudokuContext-MRoel6bS.js → utils-DcpDOncX.js} +455 -410
  457. package/lib/utils-DcpDOncX.js.map +1 -0
  458. package/lib/zudoku.auth-auth0.js +24 -19
  459. package/lib/zudoku.auth-auth0.js.map +1 -1
  460. package/lib/zudoku.auth-clerk.js +2 -2
  461. package/lib/zudoku.auth-openid.js +482 -488
  462. package/lib/zudoku.auth-openid.js.map +1 -1
  463. package/lib/zudoku.components.js +1109 -2963
  464. package/lib/zudoku.components.js.map +1 -1
  465. package/lib/zudoku.openapi-worker.js +10 -16336
  466. package/lib/zudoku.openapi-worker.js.map +1 -1
  467. package/lib/zudoku.plugin-api-keys.js +68 -75
  468. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  469. package/lib/zudoku.plugin-custom-pages.js +9 -8
  470. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  471. package/lib/zudoku.plugin-markdown.js +93 -27
  472. package/lib/zudoku.plugin-markdown.js.map +1 -1
  473. package/lib/zudoku.plugin-openapi.js +6 -11
  474. package/lib/zudoku.plugin-openapi.js.map +1 -1
  475. package/lib/zudoku.plugin-redirect.js +2 -2
  476. package/lib/zudoku.plugin-redirect.js.map +1 -1
  477. package/lib/zudoku.plugin-search-inkeep.js +9 -13
  478. package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
  479. package/package.json +42 -10
  480. package/src/app/demo.tsx +0 -3
  481. package/src/app/entry.client.tsx +18 -2
  482. package/src/app/entry.server.tsx +60 -50
  483. package/src/app/main.css +5 -2
  484. package/src/app/main.tsx +16 -34
  485. package/src/app/standalone.tsx +1 -4
  486. package/src/lib/authentication/authentication.ts +2 -2
  487. package/src/lib/authentication/components/CallbackHandler.tsx +20 -51
  488. package/src/lib/authentication/hook.ts +1 -1
  489. package/src/lib/authentication/providers/auth0.tsx +15 -10
  490. package/src/lib/authentication/state.ts +12 -5
  491. package/{LICENSE.md → src/lib/authentication/use-broadcast/LICENSE.md} +2 -2
  492. package/src/lib/authentication/use-broadcast/shared.ts +372 -0
  493. package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
  494. package/src/lib/components/Bootstrap.tsx +36 -9
  495. package/src/lib/components/ClientOnly.tsx +6 -3
  496. package/src/lib/components/DeveloperHint.tsx +6 -1
  497. package/src/lib/components/Header.tsx +50 -40
  498. package/src/lib/components/MobileTopNavigation.tsx +9 -1
  499. package/src/lib/components/SlotletProvider.tsx +2 -0
  500. package/src/lib/components/SyntaxHighlight.tsx +84 -46
  501. package/src/lib/components/ThemeSwitch.tsx +24 -0
  502. package/src/lib/components/TopNavigation.tsx +70 -23
  503. package/src/lib/components/Zudoku.tsx +108 -0
  504. package/src/lib/components/context/ZudokuContext.ts +33 -30
  505. package/src/lib/components/context/ZudokuProvider.tsx +2 -2
  506. package/src/lib/components/index.ts +14 -6
  507. package/src/lib/components/navigation/Sidebar.tsx +5 -5
  508. package/src/lib/components/navigation/SidebarCategory.tsx +13 -13
  509. package/src/lib/components/navigation/SidebarItem.tsx +3 -5
  510. package/src/lib/components/navigation/utils.ts +11 -16
  511. package/src/lib/core/{DevPortalContext.ts → ZudokuContext.ts} +6 -13
  512. package/src/lib/core/plugins.ts +14 -16
  513. package/src/lib/errors/ErrorAlert.tsx +20 -6
  514. package/src/lib/oas/graphql/index.ts +4 -4
  515. package/src/lib/oas/parser/upgrade/index.ts +3 -1
  516. package/src/lib/plugins/api-keys/CreateApiKey.tsx +2 -2
  517. package/src/lib/plugins/api-keys/index.tsx +9 -9
  518. package/src/lib/plugins/custom-pages/CustomPage.tsx +2 -2
  519. package/src/lib/plugins/custom-pages/index.tsx +2 -2
  520. package/src/lib/plugins/markdown/index.tsx +50 -13
  521. package/src/lib/plugins/markdown/resolver.ts +92 -0
  522. package/src/lib/plugins/openapi/CollapsibleCode.tsx +80 -0
  523. package/src/lib/plugins/openapi/ColorizedParam.tsx +23 -14
  524. package/src/lib/plugins/openapi/Endpoint.tsx +7 -12
  525. package/src/lib/plugins/openapi/OperationList.tsx +20 -40
  526. package/src/lib/plugins/openapi/ParameterListItem.tsx +37 -31
  527. package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +18 -13
  528. package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +17 -12
  529. package/src/lib/plugins/openapi/Route.tsx +11 -12
  530. package/src/lib/plugins/openapi/Sidecar.tsx +73 -59
  531. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +140 -0
  532. package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
  533. package/src/lib/plugins/openapi/client/createServer.ts +2 -0
  534. package/src/lib/plugins/openapi/client/useCreateQuery.ts +18 -0
  535. package/src/lib/plugins/openapi/client/worker.ts +38 -24
  536. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +11 -18
  537. package/src/lib/plugins/openapi/graphql/gql.ts +10 -27
  538. package/src/lib/plugins/openapi/graphql/graphql.ts +233 -665
  539. package/src/lib/plugins/openapi/index.tsx +42 -67
  540. package/src/lib/plugins/openapi/playground/Playground.tsx +4 -3
  541. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
  542. package/src/lib/plugins/openapi/schema/SchemaView.tsx +4 -1
  543. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +28 -42
  544. package/src/lib/plugins/openapi-worker.ts +11 -1
  545. package/src/lib/plugins/redirect/index.tsx +5 -9
  546. package/src/lib/plugins/search-inkeep/index.tsx +2 -2
  547. package/src/lib/ui/Accordion.tsx +56 -0
  548. package/src/lib/ui/ActionButton.tsx +28 -0
  549. package/src/lib/ui/{Note.tsx → Alert.tsx} +11 -10
  550. package/src/lib/ui/AlertDialog.tsx +139 -0
  551. package/src/lib/ui/AspectRatio.tsx +5 -0
  552. package/src/lib/ui/Badge.tsx +36 -0
  553. package/src/lib/ui/Breadcrumb.tsx +115 -0
  554. package/src/lib/ui/Button.tsx +1 -1
  555. package/src/lib/ui/Carousel.tsx +260 -0
  556. package/src/lib/ui/Checkbox.tsx +28 -0
  557. package/src/lib/ui/Collapsible.tsx +9 -0
  558. package/src/lib/ui/Command.tsx +151 -0
  559. package/src/lib/{components → ui}/Dialog.tsx +4 -3
  560. package/src/lib/ui/Form.tsx +177 -0
  561. package/src/lib/ui/HoverCard.tsx +27 -0
  562. package/src/lib/ui/Label.tsx +24 -0
  563. package/src/lib/ui/Pagination.tsx +117 -0
  564. package/src/lib/ui/Popover.tsx +29 -0
  565. package/src/lib/ui/Progress.tsx +26 -0
  566. package/src/lib/ui/RadioGroup.tsx +42 -0
  567. package/src/lib/ui/ScrollArea.tsx +46 -0
  568. package/src/lib/ui/Skeleton.tsx +15 -0
  569. package/src/lib/ui/Slider.tsx +26 -0
  570. package/src/lib/ui/Switch.tsx +27 -0
  571. package/src/lib/ui/Textarea.tsx +23 -0
  572. package/src/lib/ui/Toggle.tsx +43 -0
  573. package/src/lib/ui/ToggleGroup.tsx +59 -0
  574. package/src/lib/ui/Tooltip.tsx +28 -0
  575. package/src/lib/util/MdxComponents.tsx +0 -1
  576. package/src/lib/util/invariant.ts +15 -3
  577. package/src/lib/util/useExposedProps.tsx +8 -2
  578. package/src/lib/util/useIsomorphicLayoutEffect.ts +5 -0
  579. package/src/lib/util/useOnScreen.ts +32 -0
  580. package/src/lib/util/useScrollToAnchor.ts +1 -1
  581. package/dist/internal.d.ts +0 -1
  582. package/dist/internal.js +0 -2
  583. package/dist/internal.js.map +0 -1
  584. package/dist/lib/components/DevPortal.js.map +0 -1
  585. package/dist/lib/components/Dialog.js.map +0 -1
  586. package/dist/lib/components/Select.js.map +0 -1
  587. package/dist/lib/components/context/ThemeContext.d.ts +0 -2
  588. package/dist/lib/components/context/ThemeContext.js +0 -7
  589. package/dist/lib/components/context/ThemeContext.js.map +0 -1
  590. package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
  591. package/dist/lib/components/context/ThemeProvider.js +0 -23
  592. package/dist/lib/components/context/ThemeProvider.js.map +0 -1
  593. package/dist/lib/core/DevPortalContext.js.map +0 -1
  594. package/dist/lib/plugins/markdown/generateRoutes.d.ts +0 -3
  595. package/dist/lib/plugins/markdown/generateRoutes.js +0 -21
  596. package/dist/lib/plugins/markdown/generateRoutes.js.map +0 -1
  597. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -12
  598. package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -46
  599. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
  600. package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
  601. package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -61
  602. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
  603. package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
  604. package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
  605. package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
  606. package/dist/lib/themeToggle.d.ts +0 -1
  607. package/dist/lib/themeToggle.js +0 -7
  608. package/dist/lib/themeToggle.js.map +0 -1
  609. package/dist/lib/ui/Note.d.ts +0 -8
  610. package/dist/lib/ui/Note.js +0 -23
  611. package/dist/lib/ui/Note.js.map +0 -1
  612. package/dist/lib/util/createWaitForNotify.d.ts +0 -1
  613. package/dist/lib/util/createWaitForNotify.js +0 -15
  614. package/dist/lib/util/createWaitForNotify.js.map +0 -1
  615. package/dist/vite/plugin-html-transform.d.ts +0 -2
  616. package/dist/vite/plugin-html-transform.js +0 -15
  617. package/dist/vite/plugin-html-transform.js.map +0 -1
  618. package/lib/DeveloperHint-B_QCCafl.js +0 -16
  619. package/lib/DeveloperHint-B_QCCafl.js.map +0 -1
  620. package/lib/ErrorPage-DqqAV1dr.js +0 -16
  621. package/lib/ErrorPage-DqqAV1dr.js.map +0 -1
  622. package/lib/Input-a9rLgbP_.js +0 -2229
  623. package/lib/Input-a9rLgbP_.js.map +0 -1
  624. package/lib/Markdown-Y__eLG0x.js +0 -20441
  625. package/lib/Markdown-Y__eLG0x.js.map +0 -1
  626. package/lib/OperationList-DuPG2FA2.js +0 -601
  627. package/lib/OperationList-DuPG2FA2.js.map +0 -1
  628. package/lib/Route-Bb3QClHu.js +0 -13
  629. package/lib/Route-Bb3QClHu.js.map +0 -1
  630. package/lib/SidebarBadge-BdzN0ZBK.js +0 -503
  631. package/lib/SidebarBadge-BdzN0ZBK.js.map +0 -1
  632. package/lib/SlotletProvider-DmqWiVFt.js +0 -239
  633. package/lib/SlotletProvider-DmqWiVFt.js.map +0 -1
  634. package/lib/ZudokuContext-MRoel6bS.js.map +0 -1
  635. package/lib/index-BijFM__9.js +0 -124
  636. package/lib/index-BijFM__9.js.map +0 -1
  637. package/lib/index-CCa8ojDW.js +0 -5964
  638. package/lib/index-CCa8ojDW.js.map +0 -1
  639. package/lib/index-DFN92YJN.js +0 -1782
  640. package/lib/index-DFN92YJN.js.map +0 -1
  641. package/lib/index-DJqnphbT.js +0 -35
  642. package/lib/index-_GxJ8hpM.js +0 -2867
  643. package/lib/index-_GxJ8hpM.js.map +0 -1
  644. package/lib/joinPath-B7kNnUX4.js +0 -8
  645. package/lib/joinPath-B7kNnUX4.js.map +0 -1
  646. package/lib/state-CsuHT8ZO.js +0 -183
  647. package/lib/state-CsuHT8ZO.js.map +0 -1
  648. package/lib/urql-core-KJnLL26g.js +0 -1455
  649. package/lib/urql-core-KJnLL26g.js.map +0 -1
  650. package/lib/useExposedProps-BWwxa-Hg.js +0 -9
  651. package/lib/useExposedProps-BWwxa-Hg.js.map +0 -1
  652. package/lib/utils-C8S3st2k.js.map +0 -1
  653. package/src/lib/components/DevPortal.tsx +0 -111
  654. package/src/lib/components/context/ThemeContext.tsx +0 -8
  655. package/src/lib/components/context/ThemeProvider.tsx +0 -27
  656. package/src/lib/plugins/markdown/generateRoutes.tsx +0 -38
  657. package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -51
  658. package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -75
  659. package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
  660. package/src/lib/themeToggle.ts +0 -7
  661. package/src/lib/util/createWaitForNotify.ts +0 -18
  662. /package/dist/lib/{components → ui}/Dialog.d.ts +0 -0
  663. /package/dist/lib/{components → ui}/Select.d.ts +0 -0
  664. /package/dist/lib/{components → ui}/Select.js +0 -0
  665. /package/src/lib/{components → ui}/Select.tsx +0 -0
@@ -0,0 +1,252 @@
1
+ import O from "react";
2
+ const C = (n) => {
3
+ let e;
4
+ const r = /* @__PURE__ */ new Set(), s = (c, l) => {
5
+ const g = typeof c == "function" ? c(e) : c;
6
+ if (!Object.is(g, e)) {
7
+ const y = e;
8
+ e = l ?? (typeof g != "object" || g === null) ? g : Object.assign({}, e, g), r.forEach((v) => v(e, y));
9
+ }
10
+ }, o = () => e, h = { setState: s, getState: o, getInitialState: () => u, subscribe: (c) => (r.add(c), () => r.delete(c)) }, u = e = n(s, o, h);
11
+ return h;
12
+ }, H = (n) => n ? C(n) : C, x = (n) => n;
13
+ function E(n, e = x) {
14
+ const r = O.useSyncExternalStore(
15
+ n.subscribe,
16
+ () => e(n.getState()),
17
+ () => e(n.getInitialState())
18
+ );
19
+ return O.useDebugValue(r), r;
20
+ }
21
+ const B = (n) => {
22
+ const e = H(n), r = (s) => E(e, s);
23
+ return Object.assign(r, e), r;
24
+ }, T = (n) => n ? B(n) : B;
25
+ function R(n, e) {
26
+ let r;
27
+ try {
28
+ r = n();
29
+ } catch {
30
+ return;
31
+ }
32
+ return {
33
+ getItem: (o) => {
34
+ var a;
35
+ const f = (u) => u === null ? null : JSON.parse(u, void 0), h = (a = r.getItem(o)) != null ? a : null;
36
+ return h instanceof Promise ? h.then(f) : f(h);
37
+ },
38
+ setItem: (o, a) => r.setItem(
39
+ o,
40
+ JSON.stringify(a, void 0)
41
+ ),
42
+ removeItem: (o) => r.removeItem(o)
43
+ };
44
+ }
45
+ const M = (n) => (e) => {
46
+ try {
47
+ const r = n(e);
48
+ return r instanceof Promise ? r : {
49
+ then(s) {
50
+ return M(s)(r);
51
+ },
52
+ catch(s) {
53
+ return this;
54
+ }
55
+ };
56
+ } catch (r) {
57
+ return {
58
+ then(s) {
59
+ return this;
60
+ },
61
+ catch(s) {
62
+ return M(s)(r);
63
+ }
64
+ };
65
+ }
66
+ }, k = (n, e) => (r, s, o) => {
67
+ let a = {
68
+ storage: R(() => localStorage),
69
+ partialize: (t) => t,
70
+ version: 0,
71
+ merge: (t, m) => ({
72
+ ...m,
73
+ ...t
74
+ }),
75
+ ...e
76
+ }, f = !1;
77
+ const h = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set();
78
+ let c = a.storage;
79
+ if (!c)
80
+ return n(
81
+ (...t) => {
82
+ console.warn(
83
+ `[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`
84
+ ), r(...t);
85
+ },
86
+ s,
87
+ o
88
+ );
89
+ const l = () => {
90
+ const t = a.partialize({ ...s() });
91
+ return c.setItem(a.name, {
92
+ state: t,
93
+ version: a.version
94
+ });
95
+ }, g = o.setState;
96
+ o.setState = (t, m) => {
97
+ g(t, m), l();
98
+ };
99
+ const y = n(
100
+ (...t) => {
101
+ r(...t), l();
102
+ },
103
+ s,
104
+ o
105
+ );
106
+ o.getInitialState = () => y;
107
+ let v;
108
+ const d = () => {
109
+ var t, m;
110
+ if (!c) return;
111
+ f = !1, h.forEach((i) => {
112
+ var S;
113
+ return i((S = s()) != null ? S : y);
114
+ });
115
+ const b = ((m = a.onRehydrateStorage) == null ? void 0 : m.call(a, (t = s()) != null ? t : y)) || void 0;
116
+ return M(c.getItem.bind(c))(a.name).then((i) => {
117
+ if (i)
118
+ if (typeof i.version == "number" && i.version !== a.version) {
119
+ if (a.migrate)
120
+ return [
121
+ !0,
122
+ a.migrate(
123
+ i.state,
124
+ i.version
125
+ )
126
+ ];
127
+ console.error(
128
+ "State loaded from storage couldn't be migrated since no migrate function was provided"
129
+ );
130
+ } else
131
+ return [!1, i.state];
132
+ return [!1, void 0];
133
+ }).then((i) => {
134
+ var S;
135
+ const [w, I] = i;
136
+ if (v = a.merge(
137
+ I,
138
+ (S = s()) != null ? S : y
139
+ ), r(v, !0), w)
140
+ return l();
141
+ }).then(() => {
142
+ b == null || b(v, void 0), v = s(), f = !0, u.forEach((i) => i(v));
143
+ }).catch((i) => {
144
+ b == null || b(void 0, i);
145
+ });
146
+ };
147
+ return o.persist = {
148
+ setOptions: (t) => {
149
+ a = {
150
+ ...a,
151
+ ...t
152
+ }, t.storage && (c = t.storage);
153
+ },
154
+ clearStorage: () => {
155
+ c == null || c.removeItem(a.name);
156
+ },
157
+ getOptions: () => a,
158
+ rehydrate: () => d(),
159
+ hasHydrated: () => f,
160
+ onHydrate: (t) => (h.add(t), () => {
161
+ h.delete(t);
162
+ }),
163
+ onFinishHydration: (t) => (u.add(t), () => {
164
+ u.delete(t);
165
+ })
166
+ }, a.skipHydration || d(), v || y;
167
+ }, j = k, F = (n, e) => (r, s, o) => {
168
+ if (typeof window > "u" && !(typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope))
169
+ return console.warn(
170
+ "BroadcastChannel is not supported in this environment. The store will not be shared."
171
+ ), n(r, s, o);
172
+ if (typeof BroadcastChannel > "u")
173
+ return console.warn(
174
+ "BroadcastChannel is not supported in this browser. The store will not be shared."
175
+ ), n(r, s, o);
176
+ let a = s() !== void 0, f = !1;
177
+ const h = (e == null ? void 0 : e.name) ?? n.toString();
178
+ let u = 0;
179
+ const c = [0], l = new BroadcastChannel(h), g = (...d) => {
180
+ const t = s();
181
+ if (r(...d), e != null && e.unsync)
182
+ return;
183
+ const m = s(), b = Object.entries(m).reduce((i, [S, w]) => (t[S] !== w && (i = { ...i, [S]: w }), i), {});
184
+ l.postMessage({ action: "change", state: b });
185
+ };
186
+ l.onmessage = (d) => {
187
+ var t, m, b;
188
+ if (d.data.action === "sync") {
189
+ if (!f)
190
+ return;
191
+ const i = Object.entries(s()).reduce((w, [I, _]) => (typeof _ != "function" && typeof _ != "symbol" && (w = { ...w, [I]: _ }), w), {});
192
+ l.postMessage({ action: "change", state: i });
193
+ const S = c[c.length - 1] + 1;
194
+ c.push(S), (t = e == null ? void 0 : e.onTabsChange) == null || t.call(e, c), l.postMessage({ action: "add_new_tab", id: S });
195
+ return;
196
+ }
197
+ if (d.data.action === "add_new_tab" && !f && u === 0) {
198
+ u = d.data.id;
199
+ return;
200
+ }
201
+ if (d.data.action === "change" && (r(d.data.state), a = !0), d.data.action === "close") {
202
+ if (!f)
203
+ return;
204
+ const i = c.indexOf(d.data.id);
205
+ i !== -1 && (c.splice(i, 1), (m = e == null ? void 0 : e.onTabsChange) == null || m.call(e, c));
206
+ }
207
+ d.data.action === "change_main" && d.data.id === u && (f = !0, c.splice(0, c.length, ...d.data.tabs), (b = e == null ? void 0 : e.onBecomeMain) == null || b.call(e, u));
208
+ };
209
+ const y = () => {
210
+ l.postMessage({ action: "sync" }), setTimeout(() => {
211
+ var d;
212
+ a || (f = !0, a = !0, (d = e == null ? void 0 : e.onBecomeMain) == null || d.call(e, u));
213
+ }, (e == null ? void 0 : e.mainTimeout) ?? 100);
214
+ }, v = () => {
215
+ if (l.postMessage({ action: "close", id: u }), f) {
216
+ if (c.length === 1) {
217
+ l.close();
218
+ return;
219
+ }
220
+ const d = c.filter((t) => t !== u);
221
+ l.postMessage({
222
+ action: "change_main",
223
+ id: d[0],
224
+ tabs: d
225
+ });
226
+ return;
227
+ }
228
+ };
229
+ return typeof window < "u" && window.addEventListener("beforeunload", v), a || y(), o.setState = g, n(g, s, o);
230
+ }, J = F, N = T(
231
+ J(
232
+ (n) => ({
233
+ isAuthenticated: !1,
234
+ isPending: !1,
235
+ profile: void 0
236
+ }),
237
+ { name: "auth-state" }
238
+ )
239
+ ), P = T()(
240
+ j(
241
+ (n) => ({
242
+ selectedServer: void 0,
243
+ setSelectedServer: (e) => n({ selectedServer: e })
244
+ }),
245
+ { name: "zudoku-selected-server" }
246
+ )
247
+ );
248
+ export {
249
+ P as a,
250
+ N as u
251
+ };
252
+ //# sourceMappingURL=state-BsPrOUAh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-BsPrOUAh.js","sources":["../../../node_modules/.pnpm/zustand@5.0.0_@types+react@18.3.11_react@18.3.1_use-sync-external-store@1.2.2_react@18.3.1_/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.0_@types+react@18.3.11_react@18.3.1_use-sync-external-store@1.2.2_react@18.3.1_/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.0_@types+react@18.3.11_react@18.3.1_use-sync-external-store@1.2.2_react@18.3.1_/node_modules/zustand/esm/middleware.mjs","../src/lib/authentication/use-broadcast/shared.ts","../src/lib/authentication/state.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return [\n true,\n options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n )\n ];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","// https://github.com/Romainlg29/use-broadcast/\n\nimport { StateCreator, StoreMutatorIdentifier } from \"zustand\";\n\nexport type SharedOptions = {\n /**\n * The name of the broadcast channel\n * It must be unique\n */\n name?: string;\n\n /**\n * Main timeout\n * If the main tab / window doesn't respond in this time, this tab / window will become the main\n * @default 100 ms\n */\n mainTimeout?: number;\n\n /**\n * If true, the store will only synchronize once with the main tab. After that, the store will be unsynchronized.\n * @default false\n */\n unsync?: boolean;\n\n /**\n * Callback when this tab / window becomes the main tab / window\n * Triggered only in the main tab / window\n */\n onBecomeMain?: (id: number) => void;\n\n /**\n * Callback when a new tab is opened / closed\n * Triggered only in the main tab / window\n */\n onTabsChange?: (ids: number[]) => void;\n};\n\n/**\n * The Shared type\n */\nexport type Shared = <\n T,\n Mps extends [StoreMutatorIdentifier, unknown][] = [],\n Mcs extends [StoreMutatorIdentifier, unknown][] = [],\n>(\n f: StateCreator<T, Mps, Mcs>,\n options?: SharedOptions,\n) => StateCreator<T, Mps, Mcs>;\n\n/**\n * Type implementation of the Shared function\n */\ntype SharedImpl = <T>(\n f: StateCreator<T, [], []>,\n options?: SharedOptions,\n) => StateCreator<T, [], []>;\n\n/**\n * Shared implementation\n * @param f Zustand state creator\n * @param options The options\n */\nconst sharedImpl: SharedImpl = (f, options) => (set, get, store) => {\n /**\n * The broadcast channel is not supported in SSR\n */\n if (\n typeof window === \"undefined\" &&\n !(\n typeof WorkerGlobalScope !== \"undefined\" &&\n self instanceof WorkerGlobalScope\n )\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n \"BroadcastChannel is not supported in this environment. The store will not be shared.\",\n );\n return f(set, get, store);\n }\n\n /**\n * If BroadcastChannel is not supported, return the basic store\n */\n if (typeof BroadcastChannel === \"undefined\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"BroadcastChannel is not supported in this browser. The store will not be shared.\",\n );\n return f(set, get, store);\n }\n\n /**\n * Types\n */\n type Item = { [key: string]: unknown };\n type Message =\n | {\n action: \"sync\";\n }\n | {\n action: \"change\";\n state: Item;\n }\n | {\n action: \"add_new_tab\";\n id: number;\n }\n | {\n action: \"close\";\n id: number;\n }\n | {\n action: \"change_main\";\n id: number;\n tabs: number[];\n };\n\n /**\n * Is the store synced with the other tabs\n */\n let isSynced = get() !== undefined;\n\n /**\n * Is this tab / window the main tab / window\n * When a new tab / window is opened, it will be synced with the main\n */\n let isMain = false;\n\n /**\n * The broadcast channel name\n */\n const name = options?.name ?? f.toString();\n\n /**\n * The id of the tab / window\n */\n let id = 0;\n\n /**\n * Store a list of all the tabs / windows\n * Only for the main tab / window\n */\n const tabs: number[] = [0];\n\n /**\n * Create the broadcast channel\n */\n const channel = new BroadcastChannel(name);\n\n /**\n * Handle the Zustand set function\n * Trigger a postMessage to all the other tabs\n */\n const onSet: typeof set = (...args) => {\n /**\n * Get the previous states\n */\n const previous = get() as Item;\n\n /**\n * Update the states\n */\n set(...(args as Parameters<typeof set>));\n\n /**\n * If the stores should not be synced, return.\n */\n if (options?.unsync) {\n return;\n }\n\n /**\n * Get the fresh states\n */\n const updated = get() as Item;\n\n /**\n * Get the states that changed\n */\n const state = Object.entries(updated).reduce((obj, [key, val]) => {\n if (previous[key] !== val) {\n obj = { ...obj, [key]: val };\n }\n return obj;\n }, {} as Item);\n\n /**\n * Send the states to all the other tabs\n */\n channel.postMessage({ action: \"change\", state } as Message);\n };\n\n /**\n * Subscribe to the broadcast channel\n */\n channel.onmessage = (e) => {\n if ((e.data as Message).action === \"sync\") {\n /**\n * If this tab / window is not the main, return\n */\n if (!isMain) {\n return;\n }\n\n /**\n * Remove all the functions and symbols from the store\n */\n const state = Object.entries(get() as Item).reduce((obj, [key, val]) => {\n if (typeof val !== \"function\" && typeof val !== \"symbol\") {\n obj = { ...obj, [key]: val };\n }\n return obj;\n }, {});\n\n /**\n * Send the state to the other tabs\n */\n channel.postMessage({ action: \"change\", state } as Message);\n\n /**\n * Set the new tab / window id\n */\n const new_id = tabs[tabs.length - 1]! + 1;\n tabs.push(new_id);\n\n options?.onTabsChange?.(tabs);\n\n channel.postMessage({ action: \"add_new_tab\", id: new_id } as Message);\n\n return;\n }\n\n /**\n * Set an id for the tab / window if it doesn't have one\n */\n if ((e.data as Message).action === \"add_new_tab\" && !isMain && id === 0) {\n id = e.data.id;\n return;\n }\n\n /**\n * On receiving a new state, update the state\n */\n if ((e.data as Message).action === \"change\") {\n /**\n * Update the state\n */\n set(e.data.state);\n\n /**\n * Set the synced attribute\n */\n isSynced = true;\n }\n\n /**\n * On receiving a close message, remove the tab / window id from the list\n */\n if ((e.data as Message).action === \"close\") {\n if (!isMain) {\n return;\n }\n\n const index = tabs.indexOf(e.data.id);\n if (index !== -1) {\n tabs.splice(index, 1);\n\n options?.onTabsChange?.(tabs);\n }\n }\n\n /**\n * On receiving a change_main message, change the main tab / window\n */\n if ((e.data as Message).action === \"change_main\") {\n if (e.data.id === id) {\n isMain = true;\n tabs.splice(0, tabs.length, ...e.data.tabs);\n\n options?.onBecomeMain?.(id);\n }\n }\n };\n\n /**\n * Synchronize with the main tab\n */\n const synchronize = (): void => {\n channel.postMessage({ action: \"sync\" } as Message);\n\n /**\n * If isSynced is false after 100ms, this tab is the main tab\n */\n setTimeout(() => {\n if (!isSynced) {\n isMain = true;\n isSynced = true;\n\n options?.onBecomeMain?.(id);\n }\n }, options?.mainTimeout ?? 100);\n };\n\n /**\n * Handle case when the tab / window is closed\n */\n const onClose = (): void => {\n channel.postMessage({ action: \"close\", id } as Message);\n\n /**\n * If we're closing the main, make the second the new main\n */\n if (isMain) {\n /**\n * If there is only one tab left, close the channel and return\n */\n if (tabs.length === 1) {\n /**\n * Clean up\n */\n channel.close();\n return;\n }\n\n const remaining_tabs = tabs.filter((tab) => tab !== id);\n channel.postMessage({\n action: \"change_main\",\n id: remaining_tabs[0],\n tabs: remaining_tabs,\n } as Message);\n\n return;\n }\n };\n\n /**\n * Add close event listener\n */\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"beforeunload\", onClose);\n }\n\n /**\n * Synchronize with the main tab\n */\n if (!isSynced) {\n synchronize();\n }\n\n /**\n * Modify and return the Zustand store\n */\n store.setState = onSet;\n\n return f(onSet, get, store);\n};\n\n/**\n * Shared middleware\n *\n * @example\n * import { create } from 'zustand';\n * import { shared } from 'use-broadcast-ts';\n *\n * const useStore = create(\n * shared(\n * (set) => ({ count: 0 }),\n * { name: 'my-store' }\n * )\n * );\n */\nexport const shared = sharedImpl as Shared;\n","import { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\nimport { shared } from \"./use-broadcast/shared.js\";\n\nexport interface AuthState {\n isAuthenticated: boolean;\n isPending: boolean;\n profile?: UserProfile;\n}\n\nexport const useAuthState = create<AuthState>(\n shared(\n (_) => ({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n }),\n { name: \"auth-state\" },\n ),\n);\n\nexport interface UserProfile {\n sub: string;\n email: string | undefined;\n emailVerified: boolean;\n name: string | undefined;\n pictureUrl: string | undefined;\n [key: string]: string | boolean | undefined;\n}\n\ninterface SelectedServerState {\n selectedServer?: string;\n setSelectedServer: (newServer: string) => void;\n}\n\nexport const useSelectedServerStore = create<SelectedServerState>()(\n persist(\n (set) => ({\n selectedServer: undefined,\n setSelectedServer: (newServer: string) =>\n set({ selectedServer: newServer }),\n }),\n { name: \"zudoku-selected-server\" },\n ),\n);\n"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","createJSONStorage","getStorage","options","storage","name","_a","parse","str2","str","newValue","toThenable","fn","input","result","onFulfilled","_onRejected","e","_onFulfilled","onRejected","persistImpl","config","baseOptions","set","get","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","cb","_a2","postRehydrationCallback","deserializedStorageValue","migrationResult","migrated","migratedState","newOptions","persist","sharedImpl","f","store","isSynced","isMain","id","tabs","channel","onSet","previous","updated","obj","key","val","new_id","index","_c","synchronize","onClose","remaining_tabs","tab","shared","useAuthState","_","useSelectedServerStore","newServer"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -0,0 +1,47 @@
1
+ import { j as o } from "../jsx-runtime-B6kdoens.js";
2
+ import * as e from "@radix-ui/react-accordion";
3
+ import { ChevronDown as c } from "lucide-react";
4
+ import * as n from "react";
5
+ import { c as i } from "../cn-BmFQLtkS.js";
6
+ const N = e.Root, m = n.forwardRef(({ className: a, ...t }, r) => /* @__PURE__ */ o.jsx(
7
+ e.Item,
8
+ {
9
+ ref: r,
10
+ className: i("border-b", a),
11
+ ...t
12
+ }
13
+ ));
14
+ m.displayName = "AccordionItem";
15
+ const d = n.forwardRef(({ className: a, children: t, ...r }, s) => /* @__PURE__ */ o.jsx(e.Header, { className: "flex", children: /* @__PURE__ */ o.jsxs(
16
+ e.Trigger,
17
+ {
18
+ ref: s,
19
+ className: i(
20
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
21
+ a
22
+ ),
23
+ ...r,
24
+ children: [
25
+ t,
26
+ /* @__PURE__ */ o.jsx(c, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
27
+ ]
28
+ }
29
+ ) }));
30
+ d.displayName = e.Trigger.displayName;
31
+ const l = n.forwardRef(({ className: a, children: t, ...r }, s) => /* @__PURE__ */ o.jsx(
32
+ e.Content,
33
+ {
34
+ ref: s,
35
+ className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
36
+ ...r,
37
+ children: /* @__PURE__ */ o.jsx("div", { className: i("pb-4 pt-0", a), children: t })
38
+ }
39
+ ));
40
+ l.displayName = e.Content.displayName;
41
+ export {
42
+ N as Accordion,
43
+ l as AccordionContent,
44
+ m as AccordionItem,
45
+ d as AccordionTrigger
46
+ };
47
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../src/lib/ui/Accordion.tsx"],"sourcesContent":["import * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n"],"names":["Accordion","AccordionPrimitive","AccordionItem","React","className","props","ref","jsx","cn","AccordionTrigger","children","jsxs","ChevronDown","AccordionContent"],"mappings":";;;;;AAMA,MAAMA,IAAYC,EAAmB,MAE/BC,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1BC,gBAAAA,EAAA;AAAA,EAACN,EAAmB;AAAA,EAAnB;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE,EAAG,YAAYJ,CAAS;AAAA,IAClC,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAc,cAAc;AAE5B,MAAMO,IAAmBN,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,UAAAM,GAAU,GAAGL,EAAM,GAAGC,MACnCC,gBAAAA,EAAAA,IAAAN,EAAmB,QAAnB,EAA0B,WAAU,QACnC,UAAAU,gBAAAA,EAAA;AAAA,EAACV,EAAmB;AAAA,EAAnB;AAAA,IACC,KAAAK;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,IAEH,UAAA;AAAA,MAAAK;AAAA,MACDH,gBAAAA,EAAAA,IAACK,GAAY,EAAA,WAAU,qDAAqD,CAAA;AAAA,IAAA;AAAA,EAAA;AAC9E,EAAA,CACF,CACD;AACDH,EAAiB,cAAcR,EAAmB,QAAQ;AAEpD,MAAAY,IAAmBV,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,UAAAM,GAAU,GAAGL,KAASC,MACpCC,gBAAAA,EAAA;AAAA,EAACN,EAAmB;AAAA,EAAnB;AAAA,IACC,KAAAK;AAAA,IACA,WAAU;AAAA,IACT,GAAGD;AAAA,IAEJ,gCAAC,OAAI,EAAA,WAAWG,EAAG,aAAaJ,CAAS,GAAI,UAAAM,GAAS;AAAA,EAAA;AACxD,CACD;AAEDG,EAAiB,cAAcZ,EAAmB,QAAQ;"}
@@ -0,0 +1,25 @@
1
+ import { j as t } from "../jsx-runtime-B6kdoens.js";
2
+ import { forwardRef as m } from "react";
3
+ import { B as c } from "../Button-jK0EsymC.js";
4
+ import { S as n } from "../Spinner-3cQDBVGr.js";
5
+ import { c as s } from "../cn-BmFQLtkS.js";
6
+ const l = m(
7
+ ({ isPending: r, children: o, className: e, ...i }, a) => /* @__PURE__ */ t.jsxs(
8
+ c,
9
+ {
10
+ ref: a,
11
+ disabled: r,
12
+ ...i,
13
+ className: s("relative", e),
14
+ children: [
15
+ r && /* @__PURE__ */ t.jsx("div", { className: "absolute inset-0 grid place-items-center", children: /* @__PURE__ */ t.jsx(n, {}) }),
16
+ /* @__PURE__ */ t.jsx("div", { className: s(r && "invisible"), children: o })
17
+ ]
18
+ }
19
+ )
20
+ );
21
+ l.displayName = "ActionButton";
22
+ export {
23
+ l as ActionButton
24
+ };
25
+ //# sourceMappingURL=ActionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionButton.js","sources":["../../src/lib/ui/ActionButton.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Button, type ButtonProps } from \"zudoku/ui/Button.js\";\nimport { Spinner } from \"../components/Spinner.js\";\nimport { cn } from \"../util/cn.js\";\n\ntype ActionButtonProps = ButtonProps & { isPending?: boolean };\n\nexport const ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>(\n ({ isPending, children, className, ...props }: ActionButtonProps, ref) => {\n return (\n <Button\n ref={ref}\n disabled={isPending}\n {...props}\n className={cn(\"relative\", className)}\n >\n {isPending && (\n <div className=\"absolute inset-0 grid place-items-center\">\n <Spinner />\n </div>\n )}\n <div className={cn(isPending && \"invisible\")}>{children}</div>\n </Button>\n );\n },\n);\n\nActionButton.displayName = \"ActionButton\";\n"],"names":["ActionButton","forwardRef","isPending","children","className","props","ref","jsxs","Button","cn","jsx","Spinner"],"mappings":";;;;;AAOO,MAAMA,IAAeC;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,WAAAC,GAAW,GAAGC,KAA4BC,MAE9DC,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,UAAUJ;AAAA,MACT,GAAGG;AAAA,MACJ,WAAWI,EAAG,YAAYL,CAAS;AAAA,MAElC,UAAA;AAAA,QAAAF,2BACE,OAAI,EAAA,WAAU,4CACb,UAAAQ,gBAAAA,MAACC,IAAQ,CAAA,GACX;AAAA,8BAED,OAAI,EAAA,WAAWF,EAAGP,KAAa,WAAW,GAAI,UAAAC,GAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIhE;AAEAH,EAAa,cAAc;"}
@@ -0,0 +1,51 @@
1
+ import { j as a } from "../jsx-runtime-B6kdoens.js";
2
+ import { c as l } from "../index-BuAyrJe3.js";
3
+ import * as s from "react";
4
+ import { c as i } from "../cn-BmFQLtkS.js";
5
+ const d = l(
6
+ "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
7
+ {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-background text-foreground",
11
+ destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
12
+ }
13
+ },
14
+ defaultVariants: {
15
+ variant: "default"
16
+ }
17
+ }
18
+ ), n = s.forwardRef(({ className: t, variant: e, ...r }, o) => /* @__PURE__ */ a.jsx(
19
+ "div",
20
+ {
21
+ ref: o,
22
+ role: "alert",
23
+ className: i(d({ variant: e }), t),
24
+ ...r
25
+ }
26
+ ));
27
+ n.displayName = "Alert";
28
+ const c = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ a.jsx(
29
+ "h5",
30
+ {
31
+ ref: r,
32
+ className: i("mb-1 font-medium leading-none tracking-tight", t),
33
+ ...e
34
+ }
35
+ ));
36
+ c.displayName = "AlertTitle";
37
+ const v = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ a.jsx(
38
+ "div",
39
+ {
40
+ ref: r,
41
+ className: i("text-sm [&_p]:leading-relaxed", t),
42
+ ...e
43
+ }
44
+ ));
45
+ v.displayName = "AlertDescription";
46
+ export {
47
+ n as Alert,
48
+ v as AlertDescription,
49
+ c as AlertTitle
50
+ };
51
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.js","sources":["../../src/lib/ui/Alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"names":["alertVariants","cva","Alert","React","className","variant","props","ref","jsx","cn","AlertTitle","AlertDescription"],"mappings":";;;;AAKA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAEMC,IAAQC,EAAM,WAGlB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAASC,MACnCC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,MAAK;AAAA,IACL,WAAWE,EAAGT,EAAc,EAAE,SAAAK,EAAS,CAAA,GAAGD,CAAS;AAAA,IAClD,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAM,cAAc;AAEd,MAAAQ,IAAaP,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAM,GAAGC,MAC1BC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,gDAAgDL,CAAS;AAAA,IACtE,GAAGE;AAAA,EAAA;AACN,CACD;AACDI,EAAW,cAAc;AAEnB,MAAAC,IAAmBR,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAM,GAAGC,MAC1BC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,iCAAiCL,CAAS;AAAA,IACvD,GAAGE;AAAA,EAAA;AACN,CACD;AACDK,EAAiB,cAAc;"}
@@ -0,0 +1,114 @@
1
+ import { j as s } from "../jsx-runtime-B6kdoens.js";
2
+ import * as e from "@radix-ui/react-alert-dialog";
3
+ import * as i from "react";
4
+ import { c as l } from "../cn-BmFQLtkS.js";
5
+ import { buttonVariants as r } from "./Button.js";
6
+ const D = e.Root, j = e.Trigger, n = e.Portal, d = i.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ s.jsx(
7
+ e.Overlay,
8
+ {
9
+ className: l(
10
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
11
+ a
12
+ ),
13
+ ...t,
14
+ ref: o
15
+ }
16
+ ));
17
+ d.displayName = e.Overlay.displayName;
18
+ const m = i.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ s.jsxs(n, { children: [
19
+ /* @__PURE__ */ s.jsx(d, {}),
20
+ /* @__PURE__ */ s.jsx(
21
+ e.Content,
22
+ {
23
+ ref: o,
24
+ className: l(
25
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
26
+ a
27
+ ),
28
+ ...t
29
+ }
30
+ )
31
+ ] }));
32
+ m.displayName = e.Content.displayName;
33
+ const c = ({
34
+ className: a,
35
+ ...t
36
+ }) => /* @__PURE__ */ s.jsx(
37
+ "div",
38
+ {
39
+ className: l(
40
+ "flex flex-col space-y-2 text-center sm:text-left",
41
+ a
42
+ ),
43
+ ...t
44
+ }
45
+ );
46
+ c.displayName = "AlertDialogHeader";
47
+ const f = ({
48
+ className: a,
49
+ ...t
50
+ }) => /* @__PURE__ */ s.jsx(
51
+ "div",
52
+ {
53
+ className: l(
54
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
55
+ a
56
+ ),
57
+ ...t
58
+ }
59
+ );
60
+ f.displayName = "AlertDialogFooter";
61
+ const p = i.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ s.jsx(
62
+ e.Title,
63
+ {
64
+ ref: o,
65
+ className: l("text-lg font-semibold", a),
66
+ ...t
67
+ }
68
+ ));
69
+ p.displayName = e.Title.displayName;
70
+ const g = i.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ s.jsx(
71
+ e.Description,
72
+ {
73
+ ref: o,
74
+ className: l("text-sm text-muted-foreground", a),
75
+ ...t
76
+ }
77
+ ));
78
+ g.displayName = e.Description.displayName;
79
+ const x = i.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ s.jsx(
80
+ e.Action,
81
+ {
82
+ ref: o,
83
+ className: l(r(), a),
84
+ ...t
85
+ }
86
+ ));
87
+ x.displayName = e.Action.displayName;
88
+ const N = i.forwardRef(({ className: a, ...t }, o) => /* @__PURE__ */ s.jsx(
89
+ e.Cancel,
90
+ {
91
+ ref: o,
92
+ className: l(
93
+ r({ variant: "outline" }),
94
+ "mt-2 sm:mt-0",
95
+ a
96
+ ),
97
+ ...t
98
+ }
99
+ ));
100
+ N.displayName = e.Cancel.displayName;
101
+ export {
102
+ D as AlertDialog,
103
+ x as AlertDialogAction,
104
+ N as AlertDialogCancel,
105
+ m as AlertDialogContent,
106
+ g as AlertDialogDescription,
107
+ f as AlertDialogFooter,
108
+ c as AlertDialogHeader,
109
+ d as AlertDialogOverlay,
110
+ n as AlertDialogPortal,
111
+ p as AlertDialogTitle,
112
+ j as AlertDialogTrigger
113
+ };
114
+ //# sourceMappingURL=AlertDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.js","sources":["../../src/lib/ui/AlertDialog.tsx"],"sourcesContent":["import * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\nimport * as React from \"react\";\n\nimport { cn } from \"../util/cn.js\";\nimport { buttonVariants } from \"./Button.js\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n"],"names":["AlertDialog","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogPortal","AlertDialogOverlay","React","className","props","ref","jsx","cn","AlertDialogContent","jsxs","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","buttonVariants","AlertDialogCancel"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import * as t from "@radix-ui/react-aspect-ratio";
2
+ const o = t.Root;
3
+ export {
4
+ o as AspectRatio
5
+ };
6
+ //# sourceMappingURL=AspectRatio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AspectRatio.js","sources":["../../src/lib/ui/AspectRatio.tsx"],"sourcesContent":["import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\nconst AspectRatio = AspectRatioPrimitive.Root;\n\nexport { AspectRatio };\n"],"names":["AspectRatio","AspectRatioPrimitive"],"mappings":";AAEA,MAAMA,IAAcC,EAAqB;"}
@@ -0,0 +1,27 @@
1
+ import { j as o } from "../jsx-runtime-B6kdoens.js";
2
+ import { c as n } from "../index-BuAyrJe3.js";
3
+ import { c as a } from "../cn-BmFQLtkS.js";
4
+ const s = n(
5
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
10
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
11
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
12
+ outline: "text-foreground"
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ variant: "default"
17
+ }
18
+ }
19
+ );
20
+ function c({ className: r, variant: e, ...t }) {
21
+ return /* @__PURE__ */ o.jsx("div", { className: a(s({ variant: e }), r), ...t });
22
+ }
23
+ export {
24
+ c as Badge,
25
+ s as badgeVariants
26
+ };
27
+ //# sourceMappingURL=Badge.js.map