zudoku 0.53.5 → 0.54.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 (201) hide show
  1. package/dist/config/config.d.ts +1 -0
  2. package/dist/config/validators/InputNavigationSchema.d.ts +254 -158
  3. package/dist/config/validators/InputNavigationSchema.js +4 -1
  4. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  5. package/dist/config/validators/ProtectedRoutesSchema.d.ts +12 -0
  6. package/dist/config/validators/ProtectedRoutesSchema.js +19 -0
  7. package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
  8. package/dist/config/validators/icon-types.d.ts +1 -1
  9. package/dist/config/validators/icon-types.js +16 -0
  10. package/dist/config/validators/icon-types.js.map +1 -1
  11. package/dist/config/validators/validate.d.ts +32 -19
  12. package/dist/config/validators/validate.js +6 -2
  13. package/dist/config/validators/validate.js.map +1 -1
  14. package/dist/lib/authentication/components/CallbackHandler.js +11 -9
  15. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  16. package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
  17. package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
  18. package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
  19. package/dist/lib/authentication/errors.d.ts +6 -12
  20. package/dist/lib/authentication/errors.js +2 -1
  21. package/dist/lib/authentication/errors.js.map +1 -1
  22. package/dist/lib/authentication/hook.d.ts +1 -0
  23. package/dist/lib/authentication/hook.js.map +1 -1
  24. package/dist/lib/authentication/providers/azureb2c.js +4 -2
  25. package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
  26. package/dist/lib/authentication/providers/clerk.js +4 -2
  27. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  28. package/dist/lib/authentication/providers/openid.js +3 -1
  29. package/dist/lib/authentication/providers/openid.js.map +1 -1
  30. package/dist/lib/components/Heading.js +1 -1
  31. package/dist/lib/components/Heading.js.map +1 -1
  32. package/dist/lib/components/MobileTopNavigation.js +5 -3
  33. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  34. package/dist/lib/components/TopNavigation.js +4 -3
  35. package/dist/lib/components/TopNavigation.js.map +1 -1
  36. package/dist/lib/components/context/ZudokuContext.js +21 -13
  37. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  38. package/dist/lib/components/navigation/NavigationItem.d.ts +1 -1
  39. package/dist/lib/components/navigation/NavigationItem.js +8 -1
  40. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  41. package/dist/lib/components/navigation/utils.d.ts +3 -1
  42. package/dist/lib/components/navigation/utils.js +6 -3
  43. package/dist/lib/components/navigation/utils.js.map +1 -1
  44. package/dist/lib/core/RouteGuard.js +9 -9
  45. package/dist/lib/core/RouteGuard.js.map +1 -1
  46. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  47. package/dist/lib/core/ZudokuContext.js +13 -1
  48. package/dist/lib/core/ZudokuContext.js.map +1 -1
  49. package/dist/lib/core/plugins.d.ts +2 -1
  50. package/dist/lib/core/plugins.js.map +1 -1
  51. package/dist/lib/plugins/api-keys/CreateApiKey.js +7 -3
  52. package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
  53. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +3 -1
  54. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  55. package/dist/lib/plugins/api-keys/index.d.ts +1 -0
  56. package/dist/lib/plugins/api-keys/index.js +3 -7
  57. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  58. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  59. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  60. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  61. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +1 -0
  62. package/dist/lib/plugins/openapi/graphql/graphql.js +1 -0
  63. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  64. package/dist/lib/plugins/openapi/index.js +42 -10
  65. package/dist/lib/plugins/openapi/index.js.map +1 -1
  66. package/dist/lib/ui/ActionButton.js +1 -1
  67. package/dist/lib/ui/ActionButton.js.map +1 -1
  68. package/dist/lib/ui/Badge.d.ts +1 -1
  69. package/dist/lib/ui/Button.d.ts +2 -2
  70. package/dist/lib/ui/Command.d.ts +1 -1
  71. package/dist/lib/util/invariant.d.ts +6 -5
  72. package/dist/lib/util/invariant.js +1 -1
  73. package/dist/lib/util/invariant.js.map +1 -1
  74. package/dist/vite/dev-server.js +1 -1
  75. package/dist/vite/dev-server.js.map +1 -1
  76. package/dist/vite/plugin-docs.js +15 -10
  77. package/dist/vite/plugin-docs.js.map +1 -1
  78. package/dist/vite/prerender/worker.js +5 -1
  79. package/dist/vite/prerender/worker.js.map +1 -1
  80. package/dist/vite/shadcn-registry.d.ts +8 -8
  81. package/lib/{Command-C9AC5cf-.js → Command-BYukybsa.js} +2 -2
  82. package/lib/{Command-C9AC5cf-.js.map → Command-BYukybsa.js.map} +1 -1
  83. package/lib/{Dialog-DMWw1doX.js → Dialog-u9Uz9sTt.js} +4 -4
  84. package/lib/{Dialog-DMWw1doX.js.map → Dialog-u9Uz9sTt.js.map} +1 -1
  85. package/lib/{MdxPage-DVI4iYgW.js → MdxPage-Bsko6_kb.js} +11 -11
  86. package/lib/{MdxPage-DVI4iYgW.js.map → MdxPage-Bsko6_kb.js.map} +1 -1
  87. package/lib/OAuthErrorPage-DJzGiIBt.js +150 -0
  88. package/lib/OAuthErrorPage-DJzGiIBt.js.map +1 -0
  89. package/lib/{OasProvider-CbwsKPNc.js → OasProvider-DQQRt3oS.js} +3 -3
  90. package/lib/{OasProvider-CbwsKPNc.js.map → OasProvider-DQQRt3oS.js.map} +1 -1
  91. package/lib/{OperationList-Bn9ggxw8.js → OperationList-DpmkHf26.js} +45 -43
  92. package/lib/{OperationList-Bn9ggxw8.js.map → OperationList-DpmkHf26.js.map} +1 -1
  93. package/lib/{Pagination-bavPec-z.js → Pagination-kqFNgtnI.js} +3 -3
  94. package/lib/{Pagination-bavPec-z.js.map → Pagination-kqFNgtnI.js.map} +1 -1
  95. package/lib/{RouteGuard-Vnlz_t51.js → RouteGuard-0wPUKdxJ.js} +166 -165
  96. package/lib/{RouteGuard-Vnlz_t51.js.map → RouteGuard-0wPUKdxJ.js.map} +1 -1
  97. package/lib/{SchemaList-DETyCVqu.js → SchemaList-DS-pMd6B.js} +8 -8
  98. package/lib/{SchemaList-DETyCVqu.js.map → SchemaList-DS-pMd6B.js.map} +1 -1
  99. package/lib/{SchemaView-Dvxo2RNe.js → SchemaView-BnN6WHjw.js} +4 -4
  100. package/lib/{SchemaView-Dvxo2RNe.js.map → SchemaView-BnN6WHjw.js.map} +1 -1
  101. package/lib/Select-BmTTKNPp.js +273 -0
  102. package/lib/Select-BmTTKNPp.js.map +1 -0
  103. package/lib/{SignUp-ClYhZq9H.js → SignUp-BwOSCD-6.js} +9 -9
  104. package/lib/{SignUp-ClYhZq9H.js.map → SignUp-BwOSCD-6.js.map} +1 -1
  105. package/lib/{Slot-B31yZlfB.js → Slot-DAyXieeZ.js} +1352 -1349
  106. package/lib/{Slot-B31yZlfB.js.map → Slot-DAyXieeZ.js.map} +1 -1
  107. package/lib/{SyntaxHighlight-bm761HDo.js → SyntaxHighlight-BMKR4pl6.js} +3 -3
  108. package/lib/{SyntaxHighlight-bm761HDo.js.map → SyntaxHighlight-BMKR4pl6.js.map} +1 -1
  109. package/lib/{Toc-D4oBWE8D.js → Toc-BKDRCQzU.js} +2 -2
  110. package/lib/{Toc-D4oBWE8D.js.map → Toc-BKDRCQzU.js.map} +1 -1
  111. package/lib/ZudokuContext-CLl5w57E.js +1278 -0
  112. package/lib/ZudokuContext-CLl5w57E.js.map +1 -0
  113. package/lib/{chunk-DQRVZFIR-DHK7_Ilc.js → chunk-QMGIS6GS-CEOk3lro.js} +3 -3
  114. package/lib/chunk-QMGIS6GS-CEOk3lro.js.map +1 -0
  115. package/lib/{circular-CRbFI6Zl.js → circular-8GWQDvCW.js} +2 -2
  116. package/lib/{circular-CRbFI6Zl.js.map → circular-8GWQDvCW.js.map} +1 -1
  117. package/lib/{createServer-DNyGJJNX.js → createServer-BsezSzvV.js} +5 -5
  118. package/lib/{createServer-DNyGJJNX.js.map → createServer-BsezSzvV.js.map} +1 -1
  119. package/lib/{errors-C1GlNcV3.js → errors-Cs7hKmdL.js} +11 -10
  120. package/lib/errors-Cs7hKmdL.js.map +1 -0
  121. package/lib/hook-DbUCLQNg.js +247 -0
  122. package/lib/hook-DbUCLQNg.js.map +1 -0
  123. package/lib/{index-D09PbNex.js → index-A5Qdwj1B.js} +1521 -1420
  124. package/lib/index-A5Qdwj1B.js.map +1 -0
  125. package/lib/{index-C_PXQ8Bx.js → index-Bg7Js3jB.js} +832 -912
  126. package/lib/index-Bg7Js3jB.js.map +1 -0
  127. package/lib/{index-CZTEgYDd.js → index-BkW9tJ6j.js} +2 -2
  128. package/lib/{index-CZTEgYDd.js.map → index-BkW9tJ6j.js.map} +1 -1
  129. package/lib/index.esm-CdzlRw50.js +1254 -0
  130. package/lib/index.esm-CdzlRw50.js.map +1 -0
  131. package/lib/{invariant-DAFpPywt.js → invariant-Bm-FVUQE.js} +2 -6
  132. package/lib/invariant-Bm-FVUQE.js.map +1 -0
  133. package/lib/ui/ActionButton.js +9 -9
  134. package/lib/ui/ActionButton.js.map +1 -1
  135. package/lib/ui/Command.js +1 -1
  136. package/lib/ui/Form.js +1 -1
  137. package/lib/ui/SyntaxHighlight.js +3 -3
  138. package/lib/{useExposedProps-BIYjecPD.js → useExposedProps-KcgXHKeE.js} +2 -2
  139. package/lib/{useExposedProps-BIYjecPD.js.map → useExposedProps-KcgXHKeE.js.map} +1 -1
  140. package/lib/zudoku.auth-auth0.js +1 -1
  141. package/lib/zudoku.auth-azureb2c.js +25 -17
  142. package/lib/zudoku.auth-azureb2c.js.map +1 -1
  143. package/lib/zudoku.auth-clerk.js +24 -21
  144. package/lib/zudoku.auth-clerk.js.map +1 -1
  145. package/lib/zudoku.auth-openid.js +213 -205
  146. package/lib/zudoku.auth-openid.js.map +1 -1
  147. package/lib/zudoku.auth-supabase.js +2 -2
  148. package/lib/zudoku.components.js +29 -28
  149. package/lib/zudoku.components.js.map +1 -1
  150. package/lib/zudoku.hooks.js +16 -15
  151. package/lib/zudoku.hooks.js.map +1 -1
  152. package/lib/zudoku.plugin-api-catalog.js +26 -25
  153. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  154. package/lib/zudoku.plugin-api-keys.js +404 -289
  155. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  156. package/lib/zudoku.plugin-custom-pages.js +1 -1
  157. package/lib/zudoku.plugin-markdown.js +1 -1
  158. package/lib/zudoku.plugin-openapi.js +7 -6
  159. package/lib/zudoku.plugin-openapi.js.map +1 -1
  160. package/lib/zudoku.plugin-redirect.js +1 -1
  161. package/lib/zudoku.plugin-search-pagefind.js +28 -27
  162. package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
  163. package/lib/zudoku.plugins.js.map +1 -1
  164. package/package.json +8 -8
  165. package/src/lib/authentication/components/CallbackHandler.tsx +22 -15
  166. package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
  167. package/src/lib/authentication/errors.ts +27 -13
  168. package/src/lib/authentication/hook.ts +2 -0
  169. package/src/lib/authentication/providers/azureb2c.tsx +8 -3
  170. package/src/lib/authentication/providers/clerk.tsx +4 -1
  171. package/src/lib/authentication/providers/openid.tsx +7 -1
  172. package/src/lib/components/Heading.tsx +1 -1
  173. package/src/lib/components/MobileTopNavigation.tsx +6 -3
  174. package/src/lib/components/TopNavigation.tsx +4 -4
  175. package/src/lib/components/context/ZudokuContext.ts +25 -18
  176. package/src/lib/components/navigation/NavigationItem.tsx +9 -1
  177. package/src/lib/components/navigation/utils.ts +9 -3
  178. package/src/lib/core/RouteGuard.tsx +13 -13
  179. package/src/lib/core/ZudokuContext.ts +18 -5
  180. package/src/lib/core/plugins.ts +2 -1
  181. package/src/lib/plugins/api-keys/CreateApiKey.tsx +12 -1
  182. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +24 -4
  183. package/src/lib/plugins/api-keys/index.tsx +7 -8
  184. package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
  185. package/src/lib/plugins/openapi/graphql/graphql.ts +2 -0
  186. package/src/lib/plugins/openapi/index.tsx +66 -16
  187. package/src/lib/ui/ActionButton.tsx +3 -1
  188. package/src/lib/util/invariant.ts +7 -5
  189. package/lib/Alert-CWApD0CL.js +0 -161
  190. package/lib/Alert-CWApD0CL.js.map +0 -1
  191. package/lib/CallbackHandler-Dr5Lva9x.js +0 -38
  192. package/lib/CallbackHandler-Dr5Lva9x.js.map +0 -1
  193. package/lib/chunk-DQRVZFIR-DHK7_Ilc.js.map +0 -1
  194. package/lib/errors-C1GlNcV3.js.map +0 -1
  195. package/lib/hook-CZjW2buS.js +0 -1510
  196. package/lib/hook-CZjW2buS.js.map +0 -1
  197. package/lib/index-C_PXQ8Bx.js.map +0 -1
  198. package/lib/index-D09PbNex.js.map +0 -1
  199. package/lib/index.esm-Cp4wkyud.js +0 -1236
  200. package/lib/index.esm-Cp4wkyud.js.map +0 -1
  201. package/lib/invariant-DAFpPywt.js.map +0 -1
@@ -1,50 +1,55 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
- import { CircleSlashIcon as M, CheckIcon as W, XIcon as ae, PencilLineIcon as oe, RefreshCwIcon as le, EyeOffIcon as ce, EyeIcon as de, CopyIcon as ue, TrashIcon as he, KeyRoundIcon as fe } from "lucide-react";
3
- import { D as pe, a as B, R as me } from "./Slot-B31yZlfB.js";
4
- import { i as D } from "./invariant-DAFpPywt.js";
5
- import { O as xe, L as J } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
6
- import { e as ye, d as ge, g as je, c as Ce } from "./hook-CZjW2buS.js";
7
- import { Button as j } from "./ui/Button.js";
8
- import { u as S, A as q, a as L } from "./Alert-CWApD0CL.js";
9
- import * as F from "react";
10
- import we, { createContext as O, useRef as N, useLayoutEffect as ve, useEffect as X, useId as Q, useContext as H, useInsertionEffect as ke, useMemo as $, useCallback as be, Children as Ee, isValidElement as Ne, useState as P } from "react";
11
- import { C as Pe, a as De } from "./Card-CMDQUPM4.js";
12
- import { D as Y, e as G, a as V, c as Z, b as ee, d as te, f as se, g as R } from "./Dialog-DMWw1doX.js";
13
- import { Input as Ie } from "./ui/Input.js";
14
- import { c as E } from "./cn-dYga0KKN.js";
15
- import { u as Ke } from "./CodeBlock-B-G0eKtw.js";
16
- const Ae = () => {
17
- const t = ye();
18
- return t.isAuthEnabled && t.isPending ? null : t.isAuthenticated ? /* @__PURE__ */ e.jsx(xe, {}) : t.isAuthEnabled ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: [
2
+ import { CircleSlashIcon as F, CheckIcon as te, XIcon as ue, PencilLineIcon as he, RefreshCwIcon as fe, EyeOffIcon as pe, EyeIcon as me, CopyIcon as xe, TrashIcon as ye, KeyRoundIcon as ge } from "lucide-react";
3
+ import { D as je, a as Y, R as Ce } from "./Slot-DAyXieeZ.js";
4
+ import { i as A } from "./invariant-Bm-FVUQE.js";
5
+ import { O as ve, a as we, L as be } from "./chunk-QMGIS6GS-CEOk3lro.js";
6
+ import { a as ke } from "./hook-DbUCLQNg.js";
7
+ import { Button as x } from "./ui/Button.js";
8
+ import { c as se, e as ne, b as Ne } from "./ZudokuContext-CLl5w57E.js";
9
+ import { u as z, A as O, a as M, b as Ee, S as Ke, c as De, d as Ie, e as Pe, f as Ae, g as Z } from "./Select-BmTTKNPp.js";
10
+ import * as _ from "react";
11
+ import Re, { createContext as G, useRef as D, useLayoutEffect as Se, useEffect as ie, useId as J, useContext as U, useInsertionEffect as Te, useMemo as L, useCallback as ze, Children as Oe, isValidElement as Me, useState as K, forwardRef as qe } from "react";
12
+ import { C as Fe, a as Le } from "./Card-CMDQUPM4.js";
13
+ import { e as W, f as I, D as $, g as Q, a as B, c as H, b as V, d as re } from "./Dialog-u9Uz9sTt.js";
14
+ import { Input as ae } from "./ui/Input.js";
15
+ import { c as N } from "./cn-dYga0KKN.js";
16
+ import { u as $e } from "./CodeBlock-B-G0eKtw.js";
17
+ import { a as Qe } from "./index.esm-CdzlRw50.js";
18
+ import { B as Be } from "./Button-B3o-2Xdf.js";
19
+ import { S as He } from "./Spinner-mNLZ6awP.js";
20
+ const Ve = () => {
21
+ const t = ke();
22
+ return t.isAuthEnabled && t.isPending ? null : t.isAuthenticated ? /* @__PURE__ */ e.jsx(ve, {}) : t.isAuthEnabled ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: [
19
23
  "Please login first to view this page",
20
- /* @__PURE__ */ e.jsx(j, { onClick: () => t.login(), children: "Login" })
21
- ] }) : /* @__PURE__ */ e.jsx("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: /* @__PURE__ */ e.jsxs(pe, { className: "max-w-[600px]", children: [
24
+ /* @__PURE__ */ e.jsx(x, { onClick: () => t.login(), children: "Login" })
25
+ ] }) : /* @__PURE__ */ e.jsx("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: /* @__PURE__ */ e.jsxs(je, { className: "max-w-[600px]", children: [
22
26
  "Authentication needs to be enabled for API keys to work. Enable it in your Zudoku configuration under ",
23
27
  /* @__PURE__ */ e.jsx("code", { children: "authentication" }),
24
28
  "."
25
29
  ] }) });
26
- }, Re = O({});
27
- function ne(t) {
28
- const i = N(null);
30
+ }, _e = G({});
31
+ function oe(t) {
32
+ const i = D(null);
29
33
  return i.current === null && (i.current = t()), i.current;
30
34
  }
31
- const Te = typeof window < "u", ze = Te ? ve : X, ie = /* @__PURE__ */ O(null), Me = O({
35
+ const Ge = typeof window < "u", Je = Ge ? Se : ie, le = /* @__PURE__ */ G(null);
36
+ function Ue(t) {
37
+ return typeof t == "object" && t !== null;
38
+ }
39
+ function We(t) {
40
+ return Ue(t) && "offsetHeight" in t;
41
+ }
42
+ const Xe = G({
32
43
  transformPagePoint: (t) => t,
33
44
  isStatic: !1,
34
45
  reducedMotion: "never"
35
46
  });
36
- function Se(t) {
37
- return typeof t == "object" && t !== null;
38
- }
39
- function qe(t) {
40
- return Se(t) && "offsetHeight" in t;
41
- }
42
- class Le extends F.Component {
47
+ class Ye extends _.Component {
43
48
  getSnapshotBeforeUpdate(i) {
44
49
  const s = this.props.childRef.current;
45
50
  if (s && i.isPresent && !this.props.isPresent) {
46
- const n = s.offsetParent, o = qe(n) && n.offsetWidth || 0, r = this.props.sizeRef.current;
47
- r.height = s.offsetHeight || 0, r.width = s.offsetWidth || 0, r.top = s.offsetTop, r.left = s.offsetLeft, r.right = o - r.width - r.left;
51
+ const n = s.offsetParent, r = We(n) && n.offsetWidth || 0, a = this.props.sizeRef.current;
52
+ a.height = s.offsetHeight || 0, a.width = s.offsetWidth || 0, a.top = s.offsetTop, a.left = s.offsetLeft, a.right = r - a.width - a.left;
48
53
  }
49
54
  return null;
50
55
  }
@@ -57,234 +62,347 @@ class Le extends F.Component {
57
62
  return this.props.children;
58
63
  }
59
64
  }
60
- function $e({ children: t, isPresent: i, anchorX: s }) {
61
- const n = Q(), o = N(null), r = N({
65
+ function Ze({ children: t, isPresent: i, anchorX: s, root: n }) {
66
+ const r = J(), a = D(null), l = D({
62
67
  width: 0,
63
68
  height: 0,
64
69
  top: 0,
65
70
  left: 0,
66
71
  right: 0
67
- }), { nonce: f } = H(Me);
68
- return ke(() => {
69
- const { width: x, height: u, top: h, left: d, right: l } = r.current;
70
- if (i || !o.current || !x || !u)
72
+ }), { nonce: h } = U(Xe);
73
+ return Te(() => {
74
+ const { width: y, height: d, top: C, left: u, right: f } = l.current;
75
+ if (i || !a.current || !y || !d)
71
76
  return;
72
- const y = s === "left" ? `left: ${d}` : `right: ${l}`;
73
- o.current.dataset.motionPopId = n;
74
- const p = document.createElement("style");
75
- return f && (p.nonce = f), document.head.appendChild(p), p.sheet && p.sheet.insertRule(`
76
- [data-motion-pop-id="${n}"] {
77
+ const p = s === "left" ? `left: ${u}` : `right: ${f}`;
78
+ a.current.dataset.motionPopId = r;
79
+ const m = document.createElement("style");
80
+ h && (m.nonce = h);
81
+ const g = n ?? document.head;
82
+ return g.appendChild(m), m.sheet && m.sheet.insertRule(`
83
+ [data-motion-pop-id="${r}"] {
77
84
  position: absolute !important;
78
- width: ${x}px !important;
79
- height: ${u}px !important;
80
- ${y}px !important;
81
- top: ${h}px !important;
85
+ width: ${y}px !important;
86
+ height: ${d}px !important;
87
+ ${p}px !important;
88
+ top: ${C}px !important;
82
89
  }
83
90
  `), () => {
84
- document.head.contains(p) && document.head.removeChild(p);
91
+ g.removeChild(m), g.contains(m) && g.removeChild(m);
85
92
  };
86
- }, [i]), e.jsx(Le, { isPresent: i, childRef: o, sizeRef: r, children: F.cloneElement(t, { ref: o }) });
93
+ }, [i]), e.jsx(Ye, { isPresent: i, childRef: a, sizeRef: l, children: _.cloneElement(t, { ref: a }) });
87
94
  }
88
- const Fe = ({ children: t, initial: i, isPresent: s, onExitComplete: n, custom: o, presenceAffectsLayout: r, mode: f, anchorX: x }) => {
89
- const u = ne(Oe), h = Q();
90
- let d = !0, l = $(() => (d = !1, {
91
- id: h,
95
+ const et = ({ children: t, initial: i, isPresent: s, onExitComplete: n, custom: r, presenceAffectsLayout: a, mode: l, anchorX: h, root: y }) => {
96
+ const d = oe(tt), C = J();
97
+ let u = !0, f = L(() => (u = !1, {
98
+ id: C,
92
99
  initial: i,
93
100
  isPresent: s,
94
- custom: o,
95
- onExitComplete: (y) => {
96
- u.set(y, !0);
97
- for (const p of u.values())
98
- if (!p)
101
+ custom: r,
102
+ onExitComplete: (p) => {
103
+ d.set(p, !0);
104
+ for (const m of d.values())
105
+ if (!m)
99
106
  return;
100
107
  n && n();
101
108
  },
102
- register: (y) => (u.set(y, !1), () => u.delete(y))
103
- }), [s, u, n]);
104
- return r && d && (l = { ...l }), $(() => {
105
- u.forEach((y, p) => u.set(p, !1));
106
- }, [s]), F.useEffect(() => {
107
- !s && !u.size && n && n();
108
- }, [s]), f === "popLayout" && (t = e.jsx($e, { isPresent: s, anchorX: x, children: t })), e.jsx(ie.Provider, { value: l, children: t });
109
+ register: (p) => (d.set(p, !1), () => d.delete(p))
110
+ }), [s, d, n]);
111
+ return a && u && (f = { ...f }), L(() => {
112
+ d.forEach((p, m) => d.set(m, !1));
113
+ }, [s]), _.useEffect(() => {
114
+ !s && !d.size && n && n();
115
+ }, [s]), l === "popLayout" && (t = e.jsx(Ze, { isPresent: s, anchorX: h, root: y, children: t })), e.jsx(le.Provider, { value: f, children: t });
109
116
  };
110
- function Oe() {
117
+ function tt() {
111
118
  return /* @__PURE__ */ new Map();
112
119
  }
113
- function Qe(t = !0) {
114
- const i = H(ie);
120
+ function st(t = !0) {
121
+ const i = U(le);
115
122
  if (i === null)
116
123
  return [!0, null];
117
- const { isPresent: s, onExitComplete: n, register: o } = i, r = Q();
118
- X(() => {
124
+ const { isPresent: s, onExitComplete: n, register: r } = i, a = J();
125
+ ie(() => {
119
126
  if (t)
120
- return o(r);
127
+ return r(a);
121
128
  }, [t]);
122
- const f = be(() => t && n && n(r), [r, n, t]);
123
- return !s && n ? [!1, f] : [!0];
129
+ const l = ze(() => t && n && n(a), [a, n, t]);
130
+ return !s && n ? [!1, l] : [!0];
124
131
  }
125
- const I = (t) => t.key || "";
126
- function U(t) {
132
+ const R = (t) => t.key || "";
133
+ function ee(t) {
127
134
  const i = [];
128
- return Ee.forEach(t, (s) => {
129
- Ne(s) && i.push(s);
135
+ return Oe.forEach(t, (s) => {
136
+ Me(s) && i.push(s);
130
137
  }), i;
131
138
  }
132
- const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presenceAffectsLayout: o = !0, mode: r = "sync", propagate: f = !1, anchorX: x = "left" }) => {
133
- const [u, h] = Qe(f), d = $(() => U(t), [t]), l = f && !u ? [] : d.map(I), y = N(!0), p = N(d), k = ne(() => /* @__PURE__ */ new Map()), [a, c] = P(d), [m, w] = P(d);
134
- ze(() => {
135
- y.current = !1, p.current = d;
136
- for (let v = 0; v < m.length; v++) {
137
- const g = I(m[v]);
138
- l.includes(g) ? k.delete(g) : k.get(g) !== !0 && k.set(g, !1);
139
+ const nt = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presenceAffectsLayout: r = !0, mode: a = "sync", propagate: l = !1, anchorX: h = "left", root: y }) => {
140
+ const [d, C] = st(l), u = L(() => ee(t), [t]), f = l && !d ? [] : u.map(R), p = D(!0), m = D(u), g = oe(() => /* @__PURE__ */ new Map()), [P, o] = K(u), [c, v] = K(u);
141
+ Je(() => {
142
+ p.current = !1, m.current = u;
143
+ for (let w = 0; w < c.length; w++) {
144
+ const j = R(c[w]);
145
+ f.includes(j) ? g.delete(j) : g.get(j) !== !0 && g.set(j, !1);
139
146
  }
140
- }, [m, l.length, l.join("-")]);
141
- const C = [];
142
- if (d !== a) {
143
- let v = [...d];
144
- for (let g = 0; g < m.length; g++) {
145
- const b = m[g], z = I(b);
146
- l.includes(z) || (v.splice(g, 0, b), C.push(b));
147
+ }, [c, f.length, f.join("-")]);
148
+ const b = [];
149
+ if (u !== P) {
150
+ let w = [...u];
151
+ for (let j = 0; j < c.length; j++) {
152
+ const E = c[j], q = R(E);
153
+ f.includes(q) || (w.splice(j, 0, E), b.push(E));
147
154
  }
148
- return r === "wait" && C.length && (v = C), w(U(v)), c(d), null;
155
+ return a === "wait" && b.length && (w = b), v(ee(w)), o(u), null;
149
156
  }
150
- process.env.NODE_ENV !== "production" && r === "wait" && m.length > 1 && console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);
151
- const { forceRender: T } = H(Re);
152
- return e.jsx(e.Fragment, { children: m.map((v) => {
153
- const g = I(v), b = f && !u ? !1 : d === m || l.includes(g), z = () => {
154
- if (k.has(g))
155
- k.set(g, !0);
157
+ process.env.NODE_ENV !== "production" && a === "wait" && c.length > 1 && console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);
158
+ const { forceRender: k } = U(_e);
159
+ return e.jsx(e.Fragment, { children: c.map((w) => {
160
+ const j = R(w), E = l && !d ? !1 : u === c || f.includes(j), q = () => {
161
+ if (g.has(j))
162
+ g.set(j, !0);
156
163
  else
157
164
  return;
158
- let _ = !0;
159
- k.forEach((re) => {
160
- re || (_ = !1);
161
- }), _ && (T?.(), w(p.current), f && h?.(), n && n());
165
+ let X = !0;
166
+ g.forEach((de) => {
167
+ de || (X = !1);
168
+ }), X && (k?.(), v(m.current), l && C?.(), n && n());
162
169
  };
163
- return e.jsx(Fe, { isPresent: b, initial: !y.current || s ? void 0 : !1, custom: i, presenceAffectsLayout: o, mode: r, onExitComplete: b ? void 0 : z, anchorX: x, children: v }, g);
170
+ return e.jsx(et, { isPresent: E, initial: !p.current || s ? void 0 : !1, custom: i, presenceAffectsLayout: r, mode: a, root: y, onExitComplete: E ? void 0 : q, anchorX: h, children: w }, j);
164
171
  }) });
165
- }, _e = ({ service: t }) => {
166
- const i = ge(), s = je(), [n, o] = P(
172
+ }, ce = qe(
173
+ ({ isPending: t, children: i, className: s, ...n }, r) => /* @__PURE__ */ e.jsxs(
174
+ Be,
175
+ {
176
+ ref: r,
177
+ disabled: t,
178
+ ...n,
179
+ className: N("relative", s),
180
+ children: [
181
+ t && /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 grid place-items-center", children: /* @__PURE__ */ e.jsx(He, {}) }),
182
+ /* @__PURE__ */ e.jsx("span", { className: N("block", t && "invisible"), children: i })
183
+ ]
184
+ }
185
+ )
186
+ );
187
+ ce.displayName = "ActionButton";
188
+ const it = ({
189
+ service: t,
190
+ onOpenChange: i
191
+ }) => {
192
+ const s = se(), n = ne(), r = we(), a = Qe({
193
+ defaultValues: {
194
+ expiresOn: "30"
195
+ }
196
+ }), l = z({
197
+ mutationFn: ({ description: h, expiresOn: y }) => {
198
+ if (!t.createKey)
199
+ throw new Error("createKey not implemented");
200
+ const d = y !== "never" ? rt(Number(y)) : void 0;
201
+ return t.createKey(
202
+ {
203
+ description: h || "Secret Key",
204
+ expiresOn: d
205
+ },
206
+ s
207
+ );
208
+ },
209
+ onSuccess: async () => {
210
+ await n.invalidateQueries({ queryKey: ["api-keys"] }), await r("/settings/api-keys/");
211
+ }
212
+ });
213
+ return t.createKey ? /* @__PURE__ */ e.jsxs(
214
+ "form",
215
+ {
216
+ onSubmit: a.handleSubmit(
217
+ (h) => l.mutate(
218
+ { ...h },
219
+ {
220
+ onSuccess: () => i(!1)
221
+ }
222
+ )
223
+ ),
224
+ children: [
225
+ l.error && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
226
+ /* @__PURE__ */ e.jsx(M, { children: "Error" }),
227
+ /* @__PURE__ */ e.jsx(Ee, { children: l.error.message })
228
+ ] }),
229
+ /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 flex-col text-sm font-medium", children: [
230
+ "Name",
231
+ /* @__PURE__ */ e.jsx(ae, { ...a.register("description") }),
232
+ "Expiration",
233
+ /* @__PURE__ */ e.jsxs(
234
+ Ke,
235
+ {
236
+ onValueChange: (h) => a.setValue("expiresOn", h),
237
+ defaultValue: a.getValues("expiresOn"),
238
+ children: [
239
+ /* @__PURE__ */ e.jsx(De, { children: /* @__PURE__ */ e.jsx(Ie, {}) }),
240
+ /* @__PURE__ */ e.jsx(Pe, { children: /* @__PURE__ */ e.jsxs(Ae, { children: [
241
+ [7, 30, 60, 90].map((h) => /* @__PURE__ */ e.jsxs(Z, { value: String(h), children: [
242
+ h,
243
+ " days"
244
+ ] }, h)),
245
+ /* @__PURE__ */ e.jsx(Z, { value: "never", children: "Never" })
246
+ ] }) })
247
+ ]
248
+ }
249
+ ),
250
+ /* @__PURE__ */ e.jsxs(W, { children: [
251
+ /* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Cancel" }) }),
252
+ /* @__PURE__ */ e.jsx(ce, { isPending: l.isPending, children: "Generate Key" })
253
+ ] })
254
+ ] })
255
+ ]
256
+ }
257
+ ) : null;
258
+ }, rt = (t) => {
259
+ const i = /* @__PURE__ */ new Date();
260
+ return i.setDate(i.getDate() + t), i.toISOString();
261
+ }, at = ({ service: t }) => {
262
+ const i = se(), s = ne(), [n, r] = K(
167
263
  null
168
- ), [r, f] = P(""), { data: x, isFetching: u } = Ce({
264
+ ), [a, l] = K(""), { data: h, isFetching: y } = Ne({
169
265
  queryFn: () => t.getConsumers(i),
170
266
  queryKey: ["api-keys"],
171
267
  retry: !1
172
- }), h = S({
268
+ }), [d, C] = K(!1), u = z({
173
269
  mutationFn: ({
174
- consumerId: a,
270
+ consumerId: o,
175
271
  keyId: c
176
272
  }) => {
177
273
  if (!t.deleteKey)
178
274
  throw new Error("deleteKey not implemented");
179
- return t.deleteKey(a, c, i);
275
+ return t.deleteKey(o, c, i);
180
276
  },
181
- onMutate: async ({ consumerId: a, keyId: c }) => {
277
+ onMutate: async ({ consumerId: o, keyId: c }) => {
182
278
  await s.cancelQueries({ queryKey: ["api-keys"] });
183
- const m = s.getQueryData([
279
+ const v = s.getQueryData([
184
280
  "api-keys"
185
281
  ]);
186
- return s.setQueryData(["api-keys"], (w) => w && w.map((C) => C.id === a ? {
187
- ...C,
188
- apiKeys: C.apiKeys.filter((T) => T.id !== c)
189
- } : C)), { previousData: m };
282
+ return s.setQueryData(["api-keys"], (b) => b && b.map((k) => k.id === o ? {
283
+ ...k,
284
+ apiKeys: k.apiKeys.filter((w) => w.id !== c)
285
+ } : k)), { previousData: v };
190
286
  },
191
- onError: (a, c, m) => {
192
- m?.previousData && s.setQueryData(["api-keys"], m.previousData);
287
+ onError: (o, c, v) => {
288
+ v?.previousData && s.setQueryData(["api-keys"], v.previousData);
193
289
  },
194
290
  onSuccess: () => {
195
291
  s.invalidateQueries({ queryKey: ["api-keys"] });
196
292
  }
197
- }), d = S({
293
+ }), f = z({
198
294
  mutationFn: ({
199
- consumerId: a,
295
+ consumerId: o,
200
296
  label: c
201
297
  }) => {
202
298
  if (!t.updateConsumer)
203
299
  throw new Error("updateConsumer not implemented");
204
- return t.updateConsumer({ id: a, label: c }, i);
300
+ return t.updateConsumer({ id: o, label: c }, i);
205
301
  },
206
- onMutate: async ({ consumerId: a, label: c }) => {
302
+ onMutate: async ({ consumerId: o, label: c }) => {
207
303
  await s.cancelQueries({ queryKey: ["api-keys"] });
208
- const m = s.getQueryData(["api-keys"]);
209
- return s.setQueryData(["api-keys"], (w) => w && w.map((C) => C.id === a ? {
210
- ...C,
304
+ const v = s.getQueryData(["api-keys"]);
305
+ return s.setQueryData(["api-keys"], (b) => b && b.map((k) => k.id === o ? {
306
+ ...k,
211
307
  label: c
212
- } : C)), { previousData: m };
308
+ } : k)), { previousData: v };
213
309
  },
214
- onError: (a, c, m) => {
215
- m?.previousData && s.setQueryData(["api-keys"], m.previousData);
310
+ onError: (o, c, v) => {
311
+ v?.previousData && s.setQueryData(["api-keys"], v.previousData);
216
312
  },
217
313
  onSuccess: () => {
218
314
  s.invalidateQueries({ queryKey: ["api-keys"] });
219
315
  }
220
- }), l = S({
221
- mutationFn: (a) => {
316
+ }), p = z({
317
+ mutationFn: (o) => {
222
318
  if (!t.rollKey)
223
319
  throw new Error("rollKey not implemented");
224
- return t.rollKey(a, i);
320
+ return t.rollKey(o, i);
225
321
  },
226
322
  onSuccess: () => s.invalidateQueries({ queryKey: ["api-keys"] })
227
- }), y = (a, c) => {
228
- o(a), f(c);
229
- }, p = (a) => {
230
- r.trim() && d.mutate({
231
- consumerId: a,
232
- label: r.trim()
233
- }), o(null), f("");
234
- }, k = () => {
235
- o(null), f("");
323
+ }), m = (o, c) => {
324
+ r(o), l(c);
325
+ }, g = (o) => {
326
+ a.trim() && f.mutate({
327
+ consumerId: o,
328
+ label: a.trim()
329
+ }), r(null), l("");
330
+ }, P = () => {
331
+ r(null), l("");
236
332
  };
237
333
  return /* @__PURE__ */ e.jsxs("div", { className: "max-w-screen-md h-full pt-(--padding-content-top) pb-(--padding-content-bottom)", children: [
238
- /* @__PURE__ */ e.jsx(B.Target, { name: "api-keys-list-page" }),
334
+ /* @__PURE__ */ e.jsx(Y.Target, { name: "api-keys-list-page" }),
239
335
  /* @__PURE__ */ e.jsxs("div", { className: "flex justify-between pb-3", children: [
240
- /* @__PURE__ */ e.jsx("h1", { className: "font-medium text-2xl", children: "API Keys" }),
241
- t.createKey && /* @__PURE__ */ e.jsx(j, { asChild: !0, children: /* @__PURE__ */ e.jsx(J, { to: "/settings/api-keys/new", children: "Create API Key" }) })
336
+ /* @__PURE__ */ e.jsxs("h1", { className: "font-medium text-2xl", children: [
337
+ "API Keys ",
338
+ typeof t.createKey
339
+ ] }),
340
+ t.createKey && /* @__PURE__ */ e.jsxs(
341
+ $,
342
+ {
343
+ open: d,
344
+ onOpenChange: C,
345
+ children: [
346
+ /* @__PURE__ */ e.jsx(Q, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Create API Key" }) }),
347
+ /* @__PURE__ */ e.jsxs(B, { children: [
348
+ /* @__PURE__ */ e.jsx(H, { children: /* @__PURE__ */ e.jsx(V, { children: "Create API Key" }) }),
349
+ /* @__PURE__ */ e.jsx(
350
+ it,
351
+ {
352
+ service: t,
353
+ onOpenChange: C
354
+ }
355
+ )
356
+ ] })
357
+ ]
358
+ }
359
+ )
242
360
  ] }),
243
361
  /* @__PURE__ */ e.jsx("p", { children: "Create, manage, and monitor your API keys" }),
244
- /* @__PURE__ */ e.jsx(B.Target, { name: "api-keys-list-page-before-keys" }),
362
+ /* @__PURE__ */ e.jsx(Y.Target, { name: "api-keys-list-page-before-keys" }),
245
363
  /* @__PURE__ */ e.jsx("div", { className: "h-8" }),
246
- l.isError && /* @__PURE__ */ e.jsxs(q, { variant: "destructive", className: "mb-4", children: [
247
- /* @__PURE__ */ e.jsx(M, { size: 16 }),
248
- /* @__PURE__ */ e.jsx(L, { children: l.error.message })
364
+ p.isError && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
365
+ /* @__PURE__ */ e.jsx(F, { size: 16 }),
366
+ /* @__PURE__ */ e.jsx(M, { children: p.error.message })
249
367
  ] }),
250
- d.isError && /* @__PURE__ */ e.jsxs(q, { variant: "destructive", className: "mb-4", children: [
251
- /* @__PURE__ */ e.jsx(M, { size: 16 }),
252
- /* @__PURE__ */ e.jsx(L, { children: d.error.message })
368
+ f.isError && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
369
+ /* @__PURE__ */ e.jsx(F, { size: 16 }),
370
+ /* @__PURE__ */ e.jsx(M, { children: f.error.message })
253
371
  ] }),
254
- h.isError && /* @__PURE__ */ e.jsxs(q, { variant: "destructive", className: "mb-4", children: [
255
- /* @__PURE__ */ e.jsx(M, { size: 16 }),
256
- /* @__PURE__ */ e.jsx(L, { children: h.error.message })
372
+ u.isError && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
373
+ /* @__PURE__ */ e.jsx(F, { size: 16 }),
374
+ /* @__PURE__ */ e.jsx(M, { children: u.error.message })
257
375
  ] }),
258
- /* @__PURE__ */ e.jsx("div", { className: "", children: x.length === 0 ? /* @__PURE__ */ e.jsxs("div", { className: "flex col-span-full flex-col justify-center gap-4 items-center p-8 border rounded-sm bg-muted/30 text-muted-foreground", children: [
376
+ /* @__PURE__ */ e.jsx("div", { className: "", children: h.length === 0 ? /* @__PURE__ */ e.jsxs("div", { className: "flex col-span-full flex-col justify-center gap-4 items-center p-8 border rounded-sm bg-muted/30 text-muted-foreground", children: [
259
377
  /* @__PURE__ */ e.jsxs("p", { className: "text-center", children: [
260
378
  "You have no API keys yet.",
261
379
  /* @__PURE__ */ e.jsx("br", {}),
262
380
  t.createKey && "Get started and create your first key."
263
381
  ] }),
264
- t.createKey && /* @__PURE__ */ e.jsx(j, { asChild: !0, variant: "outline", children: /* @__PURE__ */ e.jsx(J, { to: "/settings/api-keys/new", children: "Create API Key" }) })
382
+ t.createKey && /* @__PURE__ */ e.jsx(x, { asChild: !0, variant: "outline", children: /* @__PURE__ */ e.jsx(be, { to: "/settings/api-keys/new", children: "Create API Key" }) })
265
383
  ] }) : /* @__PURE__ */ e.jsx(
266
384
  "ul",
267
385
  {
268
- className: E(
386
+ className: N(
269
387
  "grid grid-cols-[1fr_min-content] divide-y divide-border col-span-6"
270
388
  ),
271
- children: x.map((a) => /* @__PURE__ */ e.jsxs(
272
- Pe,
389
+ children: h.map((o) => /* @__PURE__ */ e.jsxs(
390
+ Fe,
273
391
  {
274
392
  className: "grid grid-cols-subgrid col-span-full items-center mb-4 group",
275
393
  children: [
276
- /* @__PURE__ */ e.jsxs(De, { className: "border-b col-span-full grid-cols-subgrid grid", children: [
394
+ /* @__PURE__ */ e.jsxs(Le, { className: "border-b col-span-full grid-cols-subgrid grid", children: [
277
395
  /* @__PURE__ */ e.jsxs("div", { className: "h-10 flex flex-col text-sm justify-center", children: [
278
396
  /* @__PURE__ */ e.jsxs("div", { className: "font-medium text-lg flex items-center gap-2", children: [
279
- n === a.id ? /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
397
+ n === o.id ? /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
280
398
  /* @__PURE__ */ e.jsx(
281
- Ie,
399
+ ae,
282
400
  {
283
401
  maxLength: 32,
284
- value: r,
285
- onChange: (c) => f(c.target.value),
402
+ value: a,
403
+ onChange: (c) => l(c.target.value),
286
404
  onKeyDown: (c) => {
287
- c.key === "Enter" ? p(a.id) : c.key === "Escape" && k();
405
+ c.key === "Enter" ? g(o.id) : c.key === "Escape" && P();
288
406
  },
289
407
  className: "text-lg font-medium",
290
408
  autoFocus: !0
@@ -292,90 +410,90 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
292
410
  ),
293
411
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center", children: [
294
412
  /* @__PURE__ */ e.jsx(
295
- j,
413
+ x,
296
414
  {
297
415
  size: "icon",
298
416
  variant: "ghost",
299
- onClick: () => p(a.id),
300
- disabled: !r.trim(),
301
- children: /* @__PURE__ */ e.jsx(W, { size: 16 })
417
+ onClick: () => g(o.id),
418
+ disabled: !a.trim(),
419
+ children: /* @__PURE__ */ e.jsx(te, { size: 16 })
302
420
  }
303
421
  ),
304
422
  /* @__PURE__ */ e.jsx(
305
- j,
423
+ x,
306
424
  {
307
425
  size: "icon",
308
426
  variant: "ghost",
309
- onClick: k,
310
- children: /* @__PURE__ */ e.jsx(ae, { size: 16 })
427
+ onClick: P,
428
+ children: /* @__PURE__ */ e.jsx(ue, { size: 16 })
311
429
  }
312
430
  )
313
431
  ] })
314
- ] }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: a.label }),
315
- /* @__PURE__ */ e.jsx("div", { className: "text-muted-foreground text-xs", children: a.createdOn })
432
+ ] }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: o.label }),
433
+ /* @__PURE__ */ e.jsx("div", { className: "text-muted-foreground text-xs", children: o.createdOn })
316
434
  ] }),
317
435
  /* @__PURE__ */ e.jsxs("div", { className: "text-muted-foreground text-xs", children: [
318
- a.createdOn && /* @__PURE__ */ e.jsxs("div", { children: [
436
+ o.createdOn && /* @__PURE__ */ e.jsxs("div", { children: [
319
437
  "Created on",
320
438
  " ",
321
- new Date(a.createdOn).toLocaleDateString()
439
+ new Date(o.createdOn).toLocaleDateString()
322
440
  ] }),
323
- a.expiresOn && /* @__PURE__ */ e.jsxs("div", { children: [
441
+ o.expiresOn && /* @__PURE__ */ e.jsxs("div", { children: [
324
442
  "Expires on",
325
443
  " ",
326
- new Date(a.expiresOn).toLocaleDateString()
444
+ new Date(o.expiresOn).toLocaleDateString()
327
445
  ] })
328
446
  ] })
329
447
  ] }),
330
448
  /* @__PURE__ */ e.jsxs("div", { className: "flex justify-end", children: [
331
449
  t.updateConsumer && /* @__PURE__ */ e.jsxs(
332
- j,
450
+ x,
333
451
  {
334
452
  variant: "ghost",
335
- onClick: () => y(a.id, a.label),
336
- className: E(
453
+ onClick: () => m(o.id, o.label),
454
+ className: N(
337
455
  "flex gap-2",
338
- n === a.id && "opacity-0! pointer-events-none"
456
+ n === o.id && "opacity-0! pointer-events-none"
339
457
  ),
340
- disabled: n === a.id,
458
+ disabled: n === o.id,
341
459
  children: [
342
- /* @__PURE__ */ e.jsx(oe, { size: 16 }),
460
+ /* @__PURE__ */ e.jsx(he, { size: 16 }),
343
461
  /* @__PURE__ */ e.jsx("span", { className: "hidden md:block", children: "Edit label" })
344
462
  ]
345
463
  }
346
464
  ),
347
- t.rollKey && /* @__PURE__ */ e.jsxs(Y, { children: [
348
- /* @__PURE__ */ e.jsx(G, { asChild: !0, children: /* @__PURE__ */ e.jsxs(
349
- j,
465
+ t.rollKey && /* @__PURE__ */ e.jsxs($, { children: [
466
+ /* @__PURE__ */ e.jsx(Q, { asChild: !0, children: /* @__PURE__ */ e.jsxs(
467
+ x,
350
468
  {
351
469
  title: "Roll this key",
352
470
  variant: "ghost",
353
- disabled: l.isPending,
471
+ disabled: p.isPending,
354
472
  className: "flex items-center gap-2",
355
473
  children: [
356
474
  /* @__PURE__ */ e.jsx(
357
- le,
475
+ fe,
358
476
  {
359
477
  size: 16,
360
- className: l.isPending ? "animate-spin" : void 0
478
+ className: p.isPending ? "animate-spin" : void 0
361
479
  }
362
480
  ),
363
481
  /* @__PURE__ */ e.jsx("span", { className: "hidden md:block", children: "Roll key" })
364
482
  ]
365
483
  }
366
484
  ) }),
367
- /* @__PURE__ */ e.jsxs(V, { children: [
368
- /* @__PURE__ */ e.jsxs(Z, { children: [
369
- /* @__PURE__ */ e.jsx(ee, { children: "Roll API Key" }),
370
- /* @__PURE__ */ e.jsx(te, { children: "Are you sure you want to roll this API key?" })
485
+ /* @__PURE__ */ e.jsxs(B, { children: [
486
+ /* @__PURE__ */ e.jsxs(H, { children: [
487
+ /* @__PURE__ */ e.jsx(V, { children: "Roll API Key" }),
488
+ /* @__PURE__ */ e.jsx(re, { children: "Are you sure you want to roll this API key?" })
371
489
  ] }),
372
- /* @__PURE__ */ e.jsxs(se, { children: [
373
- /* @__PURE__ */ e.jsx(R, { asChild: !0, children: /* @__PURE__ */ e.jsx(j, { variant: "outline", children: "Cancel" }) }),
374
- /* @__PURE__ */ e.jsx(R, { asChild: !0, children: /* @__PURE__ */ e.jsx(
375
- j,
490
+ /* @__PURE__ */ e.jsxs(W, { children: [
491
+ /* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Cancel" }) }),
492
+ /* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(
493
+ x,
376
494
  {
377
495
  onClick: () => {
378
- l.mutate(a.id);
496
+ p.mutate(o.id);
379
497
  },
380
498
  children: "Roll Key"
381
499
  }
@@ -385,50 +503,50 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
385
503
  ] })
386
504
  ] })
387
505
  ] }),
388
- /* @__PURE__ */ e.jsx("div", { className: "col-span-full grid-cols-subgrid grid", children: /* @__PURE__ */ e.jsx(He, { children: a.apiKeys.map((c) => /* @__PURE__ */ e.jsxs(we.Fragment, { children: [
506
+ /* @__PURE__ */ e.jsx("div", { className: "col-span-full grid-cols-subgrid grid", children: /* @__PURE__ */ e.jsx(nt, { children: o.apiKeys.map((c) => /* @__PURE__ */ e.jsxs(Re.Fragment, { children: [
389
507
  /* @__PURE__ */ e.jsx(
390
- Je,
508
+ lt,
391
509
  {
392
510
  apiKey: c,
393
511
  onDeleteKey: () => {
394
- h.mutate({
395
- consumerId: a.id,
512
+ u.mutate({
513
+ consumerId: o.id,
396
514
  keyId: c.id
397
515
  });
398
516
  },
399
- className: h.variables?.keyId === c.id && (h.isPending || u) ? "opacity-10!" : void 0
517
+ className: u.variables?.keyId === c.id && (u.isPending || y) ? "opacity-10!" : void 0
400
518
  }
401
519
  ),
402
520
  /* @__PURE__ */ e.jsx("div", { className: "col-span-full h-px bg-border" })
403
521
  ] }, c.id)) }) })
404
522
  ]
405
523
  },
406
- a.id
524
+ o.id
407
525
  ))
408
526
  }
409
527
  ) })
410
528
  ] });
411
- }, Be = (t) => {
412
- const i = /* @__PURE__ */ new Date(), s = new Date(t), n = Math.floor((i.getTime() - s.getTime()) / 1e3), o = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
413
- return n < 60 ? o.format(-n, "second") : n < 3600 ? o.format(-Math.floor(n / 60), "minute") : n < 86400 ? o.format(-Math.floor(n / 3600), "hour") : n < 2592e3 ? o.format(-Math.floor(n / 86400), "day") : n < 31536e3 ? o.format(-Math.floor(n / 2592e3), "month") : o.format(-Math.floor(n / 31536e3), "year");
414
- }, Je = ({
529
+ }, ot = (t) => {
530
+ const i = /* @__PURE__ */ new Date(), s = new Date(t), n = Math.floor((i.getTime() - s.getTime()) / 1e3), r = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
531
+ return n < 60 ? r.format(-n, "second") : n < 3600 ? r.format(-Math.floor(n / 60), "minute") : n < 86400 ? r.format(-Math.floor(n / 3600), "hour") : n < 2592e3 ? r.format(-Math.floor(n / 86400), "day") : n < 31536e3 ? r.format(-Math.floor(n / 2592e3), "month") : r.format(-Math.floor(n / 31536e3), "year");
532
+ }, lt = ({
415
533
  apiKey: t,
416
534
  onDeleteKey: i,
417
535
  className: s
418
536
  }) => {
419
- const [n, o] = P(!1), [r, f] = Ke(), { key: x, createdOn: u, expiresOn: h } = t, d = h && new Date(h) < /* @__PURE__ */ new Date(), l = h ? Math.ceil(
420
- (new Date(h).getTime() - (/* @__PURE__ */ new Date()).getTime()) / (1e3 * 60 * 60 * 24)
421
- ) : 1 / 0, y = l <= 7 && !d;
422
- return /* @__PURE__ */ e.jsxs("div", { className: E("grid col-span-full grid-cols-subgrid p-6", s), children: [
537
+ const [n, r] = K(!1), [a, l] = $e(), { key: h, createdOn: y, expiresOn: d } = t, C = d && new Date(d) < /* @__PURE__ */ new Date(), u = d ? Math.ceil(
538
+ (new Date(d).getTime() - (/* @__PURE__ */ new Date()).getTime()) / (1e3 * 60 * 60 * 24)
539
+ ) : 1 / 0, f = u <= 7 && !C;
540
+ return /* @__PURE__ */ e.jsxs("div", { className: N("grid col-span-full grid-cols-subgrid p-6", s), children: [
423
541
  /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-1", children: [
424
542
  /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center text-sm border rounded-md w-full max-w-fit px-1", children: [
425
543
  /* @__PURE__ */ e.jsxs("div", { className: "font-mono w-full h-9 items-center flex px-2 text-xs gap-2", children: [
426
544
  /* @__PURE__ */ e.jsx(
427
545
  "div",
428
546
  {
429
- className: E(
547
+ className: N(
430
548
  "rounded-full w-2 h-2 bg-emerald-400 mr-2",
431
- (y || d) && "bg-neutral-200"
549
+ (f || C) && "bg-neutral-200"
432
550
  )
433
551
  }
434
552
  ),
@@ -436,67 +554,67 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
436
554
  /* @__PURE__ */ e.jsx(
437
555
  "div",
438
556
  {
439
- className: E(
557
+ className: N(
440
558
  "w-40 inline-block md:w-full truncate",
441
559
  n ? "" : "opacity-20"
442
560
  ),
443
- children: n ? x.slice(0, -5) : "**** ".repeat(x.slice(0, -5).length / 5) + "*".repeat(x.slice(0, -5).length % 5)
561
+ children: n ? h.slice(0, -5) : "**** ".repeat(h.slice(0, -5).length / 5) + "*".repeat(h.slice(0, -5).length % 5)
444
562
  }
445
563
  ),
446
- /* @__PURE__ */ e.jsx("span", { children: x.slice(-5) })
564
+ /* @__PURE__ */ e.jsx("span", { children: h.slice(-5) })
447
565
  ] })
448
566
  ] }),
449
567
  /* @__PURE__ */ e.jsx(
450
- j,
568
+ x,
451
569
  {
452
570
  variant: "ghost",
453
- onClick: () => o((p) => !p),
571
+ onClick: () => r((p) => !p),
454
572
  size: "icon",
455
- children: n ? /* @__PURE__ */ e.jsx(ce, { size: 16 }) : /* @__PURE__ */ e.jsx(de, { size: 16 })
573
+ children: n ? /* @__PURE__ */ e.jsx(pe, { size: 16 }) : /* @__PURE__ */ e.jsx(me, { size: 16 })
456
574
  }
457
575
  ),
458
576
  /* @__PURE__ */ e.jsx(
459
- j,
577
+ x,
460
578
  {
461
579
  variant: "ghost",
462
- onClick: () => f(x),
580
+ onClick: () => l(h),
463
581
  size: "icon",
464
- children: r ? /* @__PURE__ */ e.jsx(W, { size: 16 }) : /* @__PURE__ */ e.jsx(ue, { size: 16 })
582
+ children: a ? /* @__PURE__ */ e.jsx(te, { size: 16 }) : /* @__PURE__ */ e.jsx(xe, { size: 16 })
465
583
  }
466
584
  )
467
585
  ] }),
468
586
  /* @__PURE__ */ e.jsxs("div", { className: "flex gap-1 mt-0.5 text-nowrap", children: [
469
- u && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-muted-foreground", children: [
587
+ y && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-muted-foreground", children: [
470
588
  "Created ",
471
- Be(u),
589
+ ot(y),
472
590
  "."
473
591
  ] }),
474
592
  " ",
475
- h && y && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-primary", children: [
593
+ d && f && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-primary", children: [
476
594
  "Expires in ",
477
- l,
595
+ u,
478
596
  " ",
479
- l === 1 ? "day" : "days",
597
+ u === 1 ? "day" : "days",
480
598
  "."
481
599
  ] }),
482
- h && d && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-primary", children: [
600
+ d && C && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-primary", children: [
483
601
  "Expired",
484
602
  " ",
485
- l === 0 ? "today." : `${l * -1} days ago.`
603
+ u === 0 ? "today." : `${u * -1} days ago.`
486
604
  ] })
487
605
  ] })
488
606
  ] }),
489
- /* @__PURE__ */ e.jsx("div", { className: "flex justify-end", children: h && i && /* @__PURE__ */ e.jsxs(Y, { children: [
490
- /* @__PURE__ */ e.jsx(G, { asChild: !0, children: /* @__PURE__ */ e.jsx(j, { variant: "ghost", size: "icon", children: /* @__PURE__ */ e.jsx(he, { size: 16 }) }) }),
491
- /* @__PURE__ */ e.jsxs(V, { children: [
492
- /* @__PURE__ */ e.jsxs(Z, { children: [
493
- /* @__PURE__ */ e.jsx(ee, { children: "Delete API Key" }),
494
- /* @__PURE__ */ e.jsx(te, { children: "Are you sure you want to delete this API key?" })
607
+ /* @__PURE__ */ e.jsx("div", { className: "flex justify-end", children: d && i && /* @__PURE__ */ e.jsxs($, { children: [
608
+ /* @__PURE__ */ e.jsx(Q, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "ghost", size: "icon", children: /* @__PURE__ */ e.jsx(ye, { size: 16 }) }) }),
609
+ /* @__PURE__ */ e.jsxs(B, { children: [
610
+ /* @__PURE__ */ e.jsxs(H, { children: [
611
+ /* @__PURE__ */ e.jsx(V, { children: "Delete API Key" }),
612
+ /* @__PURE__ */ e.jsx(re, { children: "Are you sure you want to delete this API key?" })
495
613
  ] }),
496
- /* @__PURE__ */ e.jsxs(se, { children: [
497
- /* @__PURE__ */ e.jsx(R, { asChild: !0, children: /* @__PURE__ */ e.jsx(j, { variant: "outline", children: "Cancel" }) }),
498
- /* @__PURE__ */ e.jsx(R, { asChild: !0, children: /* @__PURE__ */ e.jsx(
499
- j,
614
+ /* @__PURE__ */ e.jsxs(W, { children: [
615
+ /* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Cancel" }) }),
616
+ /* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(
617
+ x,
500
618
  {
501
619
  onClick: () => {
502
620
  i();
@@ -508,55 +626,55 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
508
626
  ] })
509
627
  ] }) })
510
628
  ] });
511
- }, K = "https://api.zuploedge.com/v2/client", Ue = async (t) => {
629
+ }, S = "https://api.zuploedge.com/v2/client", ct = async (t) => {
512
630
  try {
513
631
  return await t.json();
514
632
  } catch {
515
633
  return;
516
634
  }
517
- }, A = async (t) => {
635
+ }, T = async (t) => {
518
636
  const i = t.headers.get("content-type");
519
637
  if (!t.ok && i?.includes("application/problem+json")) {
520
- const s = await Ue(t);
638
+ const s = await ct(t);
521
639
  if (s.type && s.title)
522
640
  throw new Error(s.detail ?? s.title);
523
641
  }
524
- }, We = (t) => ({
525
- deleteKey: async (i, s, n) => {
526
- const o = new Request(
527
- K + `/${t}/consumers/${i}/keys/${s}`,
642
+ }, dt = (t, i) => ({
643
+ deleteKey: async (s, n, r) => {
644
+ const a = new Request(
645
+ S + `/${t}/consumers/${s}/keys/${n}`,
528
646
  {
529
647
  method: "DELETE"
530
648
  }
531
649
  );
532
- await n.signRequest(o);
533
- const r = await fetch(o);
534
- await A(r), D(r.ok, "Failed to delete API key");
650
+ await r.signRequest(a);
651
+ const l = await fetch(a);
652
+ await T(l), A(l.ok, "Failed to delete API key");
535
653
  },
536
- updateConsumer: async (i, s) => {
537
- const n = await fetch(
538
- await s.signRequest(
654
+ updateConsumer: async (s, n) => {
655
+ const r = await fetch(
656
+ await n.signRequest(
539
657
  new Request(
540
- K + `/${t}/consumers/${i.id}`,
658
+ S + `/${t}/consumers/${s.id}`,
541
659
  {
542
660
  method: "PATCH",
543
661
  headers: {
544
662
  "Content-Type": "application/json"
545
663
  },
546
664
  body: JSON.stringify({
547
- label: i.label
665
+ label: s.label
548
666
  })
549
667
  }
550
668
  )
551
669
  )
552
670
  );
553
- await A(n), D(n.ok, "Failed to update API key description");
671
+ await T(r), A(r.ok, "Failed to update API key description");
554
672
  },
555
- rollKey: async (i, s) => {
556
- const n = await fetch(
557
- await s.signRequest(
673
+ rollKey: async (s, n) => {
674
+ const r = await fetch(
675
+ await n.signRequest(
558
676
  new Request(
559
- K + `/${t}/consumers/${i}/roll-key`,
677
+ S + `/${t}/consumers/${s}/roll-key`,
560
678
  {
561
679
  method: "POST",
562
680
  headers: {
@@ -567,41 +685,42 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
567
685
  )
568
686
  )
569
687
  );
570
- await A(n), D(n.ok, "Failed to delete API key");
688
+ await T(r), A(r.ok, "Failed to delete API key");
571
689
  },
572
- getConsumers: async (i) => {
573
- const s = new Request(
574
- K + `/${t}/consumers`
690
+ getConsumers: async (s) => {
691
+ const n = new Request(
692
+ S + `/${t}/consumers`
575
693
  );
576
- await i.signRequest(s);
577
- const n = await fetch(s);
578
- return await A(n), D(n.ok, "Failed to fetch API keys"), (await n.json()).data.map((r) => ({
579
- id: r.id,
580
- label: r.label || r.subject || "API Key",
581
- apiKeys: r.apiKeys.data,
582
- key: r.apiKeys.data.at(0)
694
+ await s.signRequest(n);
695
+ const r = await fetch(n);
696
+ return await T(r), A(r.ok, "Failed to fetch API keys"), (await r.json()).data.map((l) => ({
697
+ id: l.id,
698
+ label: l.label || l.subject || "API Key",
699
+ apiKeys: l.apiKeys.data,
700
+ key: l.apiKeys.data.at(0)
583
701
  }));
584
- }
585
- }), ct = (t) => t, dt = (t) => {
586
- const i = "deploymentName" in t ? We(t.deploymentName) : t;
702
+ },
703
+ ...i
704
+ }), It = (t) => t, Pt = (t) => {
705
+ const i = "deploymentName" in t ? dt(t.deploymentName, t) : t;
587
706
  return {
588
707
  getProfileMenuItems: () => [
589
708
  {
590
709
  label: "API Keys",
591
710
  path: "/settings/api-keys",
592
711
  category: "middle",
593
- icon: fe
712
+ icon: ge
594
713
  }
595
714
  ],
596
715
  getIdentities: async (s) => {
597
716
  try {
598
- return (await i.getConsumers(s)).map((o) => ({
599
- authorizeRequest: (r) => (r.headers.set(
717
+ return (await i.getConsumers(s)).map((r) => ({
718
+ authorizeRequest: (a) => (a.headers.set(
600
719
  "Authorization",
601
- `Bearer ${o.apiKeys.at(0)?.key}`
602
- ), r),
603
- id: o.id,
604
- label: o.label
720
+ `Bearer ${r.apiKeys.at(0)?.key}`
721
+ ), a),
722
+ id: r.id,
723
+ label: r.label
605
724
  }));
606
725
  } catch {
607
726
  return [];
@@ -609,24 +728,20 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
609
728
  },
610
729
  getRoutes: () => [
611
730
  {
612
- element: /* @__PURE__ */ e.jsx(Ae, {}),
613
- errorElement: /* @__PURE__ */ e.jsx(me, {}),
731
+ element: /* @__PURE__ */ e.jsx(Ve, {}),
732
+ errorElement: /* @__PURE__ */ e.jsx(Ce, {}),
614
733
  children: [
615
734
  {
616
735
  path: "/settings/api-keys",
617
- element: /* @__PURE__ */ e.jsx(_e, { service: i })
736
+ element: /* @__PURE__ */ e.jsx(at, { service: i })
618
737
  }
619
- // {
620
- // path: "/settings/api-keys/new",
621
- // element: <CreateApiKey service={service} />,
622
- // },
623
738
  ]
624
739
  }
625
740
  ]
626
741
  };
627
742
  };
628
743
  export {
629
- dt as apiKeyPlugin,
630
- ct as createApiKeyService
744
+ Pt as apiKeyPlugin,
745
+ It as createApiKeyService
631
746
  };
632
747
  //# sourceMappingURL=zudoku.plugin-api-keys.js.map