zudoku 0.66.0 → 0.66.2

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 (105) hide show
  1. package/dist/config/validators/validate.d.ts +0 -2
  2. package/dist/config/validators/validate.js +0 -1
  3. package/dist/config/validators/validate.js.map +1 -1
  4. package/dist/flat-config.d.ts +1 -1
  5. package/dist/lib/authentication/ui/ZudokuAuthUi.js +5 -1
  6. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -1
  7. package/dist/vite/config.js +1 -4
  8. package/dist/vite/config.js.map +1 -1
  9. package/lib/ActionButton-DUgvSylL.js +25 -0
  10. package/lib/ActionButton-DUgvSylL.js.map +1 -0
  11. package/lib/{ClaudeLogo-PxFjou9w.js → ClaudeLogo-CGRfGTk2.js} +2 -2
  12. package/lib/{ClaudeLogo-PxFjou9w.js.map → ClaudeLogo-CGRfGTk2.js.map} +1 -1
  13. package/lib/Drawer-Ci7XwhqT.js.map +1 -1
  14. package/lib/{ErrorAlert-BqjbNHIn.js → ErrorAlert-BUlG32M9.js} +6 -6
  15. package/lib/{ErrorAlert-BqjbNHIn.js.map → ErrorAlert-BUlG32M9.js.map} +1 -1
  16. package/lib/{MdxPage-CVFatbHw.js → MdxPage-Bjf72BP3.js} +7 -7
  17. package/lib/{MdxPage-CVFatbHw.js.map → MdxPage-Bjf72BP3.js.map} +1 -1
  18. package/lib/{Mermaid-CIFixY6C.js → Mermaid-D_VSX7_Q.js} +3 -3
  19. package/lib/{Mermaid-CIFixY6C.js.map → Mermaid-D_VSX7_Q.js.map} +1 -1
  20. package/lib/{OAuthErrorPage-Dup79DJk.js → OAuthErrorPage-1Ekji0PK.js} +6 -6
  21. package/lib/{OAuthErrorPage-Dup79DJk.js.map → OAuthErrorPage-1Ekji0PK.js.map} +1 -1
  22. package/lib/{OasProvider-BJeMq29o.js → OasProvider-BZxmTyMM.js} +3 -3
  23. package/lib/{OasProvider-BJeMq29o.js.map → OasProvider-BZxmTyMM.js.map} +1 -1
  24. package/lib/{OperationList-ff3ZvQsO.js → OperationList-B7nPIFB8.js} +329 -348
  25. package/lib/OperationList-B7nPIFB8.js.map +1 -0
  26. package/lib/{RouteGuard-BXy13JSz.js → RouteGuard-9wjejsKm.js} +3 -3
  27. package/lib/{RouteGuard-BXy13JSz.js.map → RouteGuard-9wjejsKm.js.map} +1 -1
  28. package/lib/{RouterError-CKOZTsDD.js → RouterError-DfTZblpv.js} +2 -2
  29. package/lib/{RouterError-CKOZTsDD.js.map → RouterError-DfTZblpv.js.map} +1 -1
  30. package/lib/{SchemaList-BSC1KM3v.js → SchemaList-16_obkku.js} +7 -7
  31. package/lib/{SchemaList-BSC1KM3v.js.map → SchemaList-16_obkku.js.map} +1 -1
  32. package/lib/{SchemaView-CgwJ9gtb.js → SchemaView-eyvR4bRt.js} +3 -3
  33. package/lib/{SchemaView-CgwJ9gtb.js.map → SchemaView-eyvR4bRt.js.map} +1 -1
  34. package/lib/Select-CkxXP5I7.js +243 -0
  35. package/lib/Select-CkxXP5I7.js.map +1 -0
  36. package/lib/Separator-CTPSeW1S.js +27 -0
  37. package/lib/Separator-CTPSeW1S.js.map +1 -0
  38. package/lib/{SignUp-Pm_LGm6T.js → SignUp-D54_QWFy.js} +3 -3
  39. package/lib/{SignUp-Pm_LGm6T.js.map → SignUp-D54_QWFy.js.map} +1 -1
  40. package/lib/{SyntaxHighlight-bkmst3oV.js → SyntaxHighlight-j_HRSPCU.js} +1508 -1492
  41. package/lib/SyntaxHighlight-j_HRSPCU.js.map +1 -0
  42. package/lib/{Toc-TUXNFbKl.js → Toc-z05x698-.js} +2 -2
  43. package/lib/{Toc-TUXNFbKl.js.map → Toc-z05x698-.js.map} +1 -1
  44. package/lib/{ZudokuContext-np1wheDl.js → ZudokuContext-BXldanA8.js} +5 -5
  45. package/lib/{ZudokuContext-np1wheDl.js.map → ZudokuContext-BXldanA8.js.map} +1 -1
  46. package/lib/chunk-PVWAREVJ-dLIqswPy.js.map +1 -1
  47. package/lib/{circular-XPj_dwqA.js → circular-D5sYCIWL.js} +2 -2
  48. package/lib/{circular-XPj_dwqA.js.map → circular-D5sYCIWL.js.map} +1 -1
  49. package/lib/{createServer-D01nCTNp.js → createServer-BlwU7lIr.js} +4 -4
  50. package/lib/{createServer-D01nCTNp.js.map → createServer-BlwU7lIr.js.map} +1 -1
  51. package/lib/createVariantComponent-B9_dVBvu.js +35 -0
  52. package/lib/createVariantComponent-B9_dVBvu.js.map +1 -0
  53. package/lib/{errors-B0hNTPFO.js → errors-BtC4Kn2j.js} +2 -2
  54. package/lib/{errors-B0hNTPFO.js.map → errors-BtC4Kn2j.js.map} +1 -1
  55. package/lib/firebase-Ibm_tv3G.js +7366 -0
  56. package/lib/firebase-Ibm_tv3G.js.map +1 -0
  57. package/lib/{hook-CvSwcbk6.js → hook-BNxidGQq.js} +2 -2
  58. package/lib/{hook-CvSwcbk6.js.map → hook-BNxidGQq.js.map} +1 -1
  59. package/lib/{index-Bjc_QsUR.js → index-CeVTNcfF.js} +452 -476
  60. package/lib/index-CeVTNcfF.js.map +1 -0
  61. package/lib/index-CrcNWbel.js.map +1 -1
  62. package/lib/{index-DnMgJWrI.js → index-Css56y3F.js} +3 -3
  63. package/lib/{index-DnMgJWrI.js.map → index-Css56y3F.js.map} +1 -1
  64. package/lib/{index-mfkNWYG-.js → index-DSOi7zVM.js} +5 -5
  65. package/lib/{index-mfkNWYG-.js.map → index-DSOi7zVM.js.map} +1 -1
  66. package/lib/{index-DscsS121.js → index-eKVhlB94.js} +2 -2
  67. package/lib/{index-DscsS121.js.map → index-eKVhlB94.js.map} +1 -1
  68. package/lib/index.esm-BYObtETB.js.map +1 -1
  69. package/lib/index.esm-BoKBnRoT.js +32 -0
  70. package/lib/index.esm-BoKBnRoT.js.map +1 -0
  71. package/lib/index.esm-DtzT_KoE.js.map +1 -1
  72. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  73. package/lib/{mutation-BlmnL5qL.js → mutation-BoVlx8yA.js} +2 -2
  74. package/lib/{mutation-BlmnL5qL.js.map → mutation-BoVlx8yA.js.map} +1 -1
  75. package/lib/ui/Carousel.js.map +1 -1
  76. package/lib/ui/SyntaxHighlight.js +2 -2
  77. package/lib/useMutation-C6RqWmTS.js +97 -0
  78. package/lib/useMutation-C6RqWmTS.js.map +1 -0
  79. package/lib/zudoku.__internal.js +6 -6
  80. package/lib/zudoku.__internal.js.map +1 -1
  81. package/lib/zudoku.auth-auth0.js +1 -1
  82. package/lib/zudoku.auth-azureb2c.js +4 -4
  83. package/lib/zudoku.auth-clerk.js +2 -2
  84. package/lib/zudoku.auth-firebase.js +9 -0
  85. package/lib/zudoku.auth-firebase.js.map +1 -0
  86. package/lib/zudoku.auth-openid.js +4 -4
  87. package/lib/zudoku.auth-supabase.js +4 -4
  88. package/lib/zudoku.components.js +5 -5
  89. package/lib/zudoku.hooks.js +3 -3
  90. package/lib/zudoku.mermaid.js +3 -3
  91. package/lib/zudoku.plugin-api-catalog.js +4 -4
  92. package/lib/zudoku.plugin-api-keys.js +162 -178
  93. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  94. package/lib/zudoku.plugin-custom-pages.js +1 -1
  95. package/lib/zudoku.plugin-markdown.js +1 -1
  96. package/lib/zudoku.plugin-openapi.js +2 -2
  97. package/lib/zudoku.plugin-search-pagefind.js +2 -2
  98. package/lib/zudoku.router.js.map +1 -1
  99. package/package.json +19 -15
  100. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +11 -1
  101. package/lib/OperationList-ff3ZvQsO.js.map +0 -1
  102. package/lib/Select-VmDZ-nKe.js +0 -337
  103. package/lib/Select-VmDZ-nKe.js.map +0 -1
  104. package/lib/SyntaxHighlight-bkmst3oV.js.map +0 -1
  105. package/lib/index-Bjc_QsUR.js.map +0 -1
@@ -1,337 +0,0 @@
1
- import * as c from "react";
2
- import { useState as C } from "react";
3
- import { g as N } from "./mutation-BlmnL5qL.js";
4
- import { S as O, s as k, h as m, n as x, g as I, i as E, k as M } from "./ZudokuContext-np1wheDl.js";
5
- import { j as e } from "./jsx-runtime-BzflLqGi.js";
6
- import { EyeOffIcon as R, EyeIcon as _, CheckIcon as g, CopyIcon as T, ChevronDownIcon as b, ChevronUpIcon as U } from "lucide-react";
7
- import { c as d } from "./cn-dYga0KKN.js";
8
- import { u as B } from "./useCopyToClipboard-B_085nfO.js";
9
- import { Button as f } from "./ui/Button.js";
10
- import * as o from "@radix-ui/react-select";
11
- import { cn as n } from "./ui/util.js";
12
- var K = class extends O {
13
- #s;
14
- #i = void 0;
15
- #t;
16
- #e;
17
- constructor(t, s) {
18
- super(), this.#s = t, this.setOptions(s), this.bindMethods(), this.#a();
19
- }
20
- bindMethods() {
21
- this.mutate = this.mutate.bind(this), this.reset = this.reset.bind(this);
22
- }
23
- setOptions(t) {
24
- const s = this.options;
25
- this.options = this.#s.defaultMutationOptions(t), k(this.options, s) || this.#s.getMutationCache().notify({
26
- type: "observerOptionsUpdated",
27
- mutation: this.#t,
28
- observer: this
29
- }), s?.mutationKey && this.options.mutationKey && m(s.mutationKey) !== m(this.options.mutationKey) ? this.reset() : this.#t?.state.status === "pending" && this.#t.setOptions(this.options);
30
- }
31
- onUnsubscribe() {
32
- this.hasListeners() || this.#t?.removeObserver(this);
33
- }
34
- onMutationUpdate(t) {
35
- this.#a(), this.#o(t);
36
- }
37
- getCurrentResult() {
38
- return this.#i;
39
- }
40
- reset() {
41
- this.#t?.removeObserver(this), this.#t = void 0, this.#a(), this.#o();
42
- }
43
- mutate(t, s) {
44
- return this.#e = s, this.#t?.removeObserver(this), this.#t = this.#s.getMutationCache().build(this.#s, this.options), this.#t.addObserver(this), this.#t.execute(t);
45
- }
46
- #a() {
47
- const t = this.#t?.state ?? N();
48
- this.#i = {
49
- ...t,
50
- isPending: t.status === "pending",
51
- isSuccess: t.status === "success",
52
- isError: t.status === "error",
53
- isIdle: t.status === "idle",
54
- mutate: this.mutate,
55
- reset: this.reset
56
- };
57
- }
58
- #o(t) {
59
- x.batch(() => {
60
- if (this.#e && this.hasListeners()) {
61
- const s = this.#i.variables, i = this.#i.context;
62
- t?.type === "success" ? (this.#e.onSuccess?.(t.data, s, i), this.#e.onSettled?.(t.data, null, s, i)) : t?.type === "error" && (this.#e.onError?.(t.error, s, i), this.#e.onSettled?.(
63
- void 0,
64
- t.error,
65
- s,
66
- i
67
- ));
68
- }
69
- this.listeners.forEach((s) => {
70
- s(this.#i);
71
- });
72
- });
73
- }
74
- };
75
- function W(t, s) {
76
- const i = I(s), [a] = c.useState(
77
- () => new K(
78
- i,
79
- t
80
- )
81
- );
82
- c.useEffect(() => {
83
- a.setOptions(t);
84
- }, [a, t]);
85
- const r = c.useSyncExternalStore(
86
- c.useCallback(
87
- (l) => a.subscribe(x.batchCalls(l)),
88
- [a]
89
- ),
90
- () => a.getCurrentResult(),
91
- () => a.getCurrentResult()
92
- ), u = c.useCallback(
93
- (l, h) => {
94
- a.mutate(l, h).catch(E);
95
- },
96
- [a]
97
- );
98
- if (r.error && M(a.options.throwOnError, [r.error]))
99
- throw r.error;
100
- return { ...r, mutate: u, mutateAsync: r.mutate };
101
- }
102
- const D = ({
103
- secret: t,
104
- revealed: s = !1,
105
- previewChars: i = 5,
106
- className: a
107
- }) => /* @__PURE__ */ e.jsxs("span", { className: d("w-full truncate", a), children: [
108
- /* @__PURE__ */ e.jsx(
109
- "div",
110
- {
111
- className: d(
112
- "w-40 inline-block md:w-fit",
113
- s ? "" : "opacity-50"
114
- ),
115
- children: s ? t.slice(0, i === 0 ? t.length : -i) : "•••• ".repeat(
116
- t.slice(
117
- 0,
118
- i === 0 ? t.length : -i
119
- ).length / 5
120
- ) + "•".repeat(
121
- t.slice(
122
- 0,
123
- i === 0 ? t.length : -i
124
- ).length % 5
125
- )
126
- }
127
- ),
128
- i > 0 && /* @__PURE__ */ e.jsx("span", { children: t.slice(-i) })
129
- ] }), X = ({
130
- secret: t,
131
- preview: s = 5,
132
- className: i,
133
- status: a,
134
- onCopy: r,
135
- revealed: u,
136
- onReveal: l,
137
- noReveal: h
138
- }) => {
139
- const v = Math.abs(s), [j, y] = C(!1), [S, w] = B(), p = u ?? j;
140
- return /* @__PURE__ */ e.jsxs(
141
- "div",
142
- {
143
- className: d(
144
- "flex gap-2 items-center text-sm border rounded-md px-1",
145
- i
146
- ),
147
- children: [
148
- /* @__PURE__ */ e.jsxs("div", { className: "font-mono w-full h-9 items-center flex px-2 text-xs gap-2", children: [
149
- a && /* @__PURE__ */ e.jsx(
150
- "div",
151
- {
152
- className: d(
153
- "rounded-full shrink-0 w-2 h-2 mr-2",
154
- a === "active" && "bg-emerald-400",
155
- a === "expired" && "bg-neutral-200",
156
- a === "expiring" && "bg-yellow-400",
157
- a === "revoked" && "bg-red-400",
158
- a === "none" && "opacity-0"
159
- )
160
- }
161
- ),
162
- /* @__PURE__ */ e.jsx(
163
- D,
164
- {
165
- secret: t,
166
- revealed: p,
167
- previewChars: v
168
- }
169
- )
170
- ] }),
171
- h !== !0 && /* @__PURE__ */ e.jsx(
172
- f,
173
- {
174
- variant: "ghost",
175
- onClick: () => {
176
- y((z) => !z), l?.(!p);
177
- },
178
- size: "icon",
179
- children: p ? /* @__PURE__ */ e.jsx(R, { size: 16 }) : /* @__PURE__ */ e.jsx(_, { size: 16 })
180
- }
181
- ),
182
- /* @__PURE__ */ e.jsx(
183
- f,
184
- {
185
- variant: "ghost",
186
- onClick: () => {
187
- w(t), r?.(t);
188
- },
189
- size: "icon",
190
- children: S ? /* @__PURE__ */ e.jsx(g, { size: 16 }) : /* @__PURE__ */ e.jsx(T, { size: 16 })
191
- }
192
- )
193
- ]
194
- }
195
- );
196
- };
197
- function Y({
198
- ...t
199
- }) {
200
- return /* @__PURE__ */ e.jsx(o.Root, { "data-slot": "select", ...t });
201
- }
202
- function Z({
203
- ...t
204
- }) {
205
- return /* @__PURE__ */ e.jsx(o.Group, { "data-slot": "select-group", ...t });
206
- }
207
- function tt({
208
- ...t
209
- }) {
210
- return /* @__PURE__ */ e.jsx(o.Value, { "data-slot": "select-value", ...t });
211
- }
212
- function et({
213
- className: t,
214
- size: s = "default",
215
- children: i,
216
- ...a
217
- }) {
218
- return /* @__PURE__ */ e.jsxs(
219
- o.Trigger,
220
- {
221
- "data-slot": "select-trigger",
222
- "data-size": s,
223
- className: n(
224
- "border-input data-placeholder:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
225
- t
226
- ),
227
- ...a,
228
- children: [
229
- i,
230
- /* @__PURE__ */ e.jsx(o.Icon, { asChild: !0, children: /* @__PURE__ */ e.jsx(b, { className: "size-4 opacity-50" }) })
231
- ]
232
- }
233
- );
234
- }
235
- function st({
236
- className: t,
237
- children: s,
238
- position: i = "popper",
239
- align: a = "center",
240
- ...r
241
- }) {
242
- return /* @__PURE__ */ e.jsx(o.Portal, { children: /* @__PURE__ */ e.jsxs(
243
- o.Content,
244
- {
245
- "data-slot": "select-content",
246
- className: n(
247
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
248
- i === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
249
- t
250
- ),
251
- position: i,
252
- align: a,
253
- ...r,
254
- children: [
255
- /* @__PURE__ */ e.jsx(P, {}),
256
- /* @__PURE__ */ e.jsx(
257
- o.Viewport,
258
- {
259
- className: n(
260
- "p-1",
261
- i === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"
262
- ),
263
- children: s
264
- }
265
- ),
266
- /* @__PURE__ */ e.jsx(V, {})
267
- ]
268
- }
269
- ) });
270
- }
271
- function it({
272
- className: t,
273
- children: s,
274
- ...i
275
- }) {
276
- return /* @__PURE__ */ e.jsxs(
277
- o.Item,
278
- {
279
- "data-slot": "select-item",
280
- className: n(
281
- "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
282
- t
283
- ),
284
- ...i,
285
- children: [
286
- /* @__PURE__ */ e.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ e.jsx(o.ItemIndicator, { children: /* @__PURE__ */ e.jsx(g, { className: "size-4" }) }) }),
287
- /* @__PURE__ */ e.jsx(o.ItemText, { children: s })
288
- ]
289
- }
290
- );
291
- }
292
- function P({
293
- className: t,
294
- ...s
295
- }) {
296
- return /* @__PURE__ */ e.jsx(
297
- o.ScrollUpButton,
298
- {
299
- "data-slot": "select-scroll-up-button",
300
- className: n(
301
- "flex cursor-default items-center justify-center py-1",
302
- t
303
- ),
304
- ...s,
305
- children: /* @__PURE__ */ e.jsx(U, { className: "size-4" })
306
- }
307
- );
308
- }
309
- function V({
310
- className: t,
311
- ...s
312
- }) {
313
- return /* @__PURE__ */ e.jsx(
314
- o.ScrollDownButton,
315
- {
316
- "data-slot": "select-scroll-down-button",
317
- className: n(
318
- "flex cursor-default items-center justify-center py-1",
319
- t
320
- ),
321
- ...s,
322
- children: /* @__PURE__ */ e.jsx(b, { className: "size-4" })
323
- }
324
- );
325
- }
326
- export {
327
- Y as S,
328
- et as a,
329
- tt as b,
330
- st as c,
331
- Z as d,
332
- it as e,
333
- X as f,
334
- D as g,
335
- W as u
336
- };
337
- //# sourceMappingURL=Select-VmDZ-nKe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select-VmDZ-nKe.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.85.5/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.85.5_react@19.2.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Secret.tsx","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import { CheckIcon, CopyIcon, EyeIcon, EyeOffIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useCopyToClipboard } from \"../util/useCopyToClipboard.js\";\nimport { Button } from \"./Button.js\";\n\ntype Status = \"active\" | \"expired\" | \"expiring\" | \"revoked\" | \"none\";\n\nexport const SecretText = ({\n secret,\n revealed = false,\n previewChars = 5,\n className,\n}: {\n secret: string;\n revealed?: boolean;\n previewChars?: number;\n className?: string;\n}) => {\n return (\n <span className={cn(\"w-full truncate\", className)}>\n <div\n className={cn(\n \"w-40 inline-block md:w-fit\",\n revealed ? \"\" : \"opacity-50\",\n )}\n >\n {revealed\n ? secret.slice(0, previewChars === 0 ? secret.length : -previewChars)\n : \"•••• \".repeat(\n secret.slice(\n 0,\n previewChars === 0 ? secret.length : -previewChars,\n ).length / 5,\n ) +\n \"•\".repeat(\n secret.slice(\n 0,\n previewChars === 0 ? secret.length : -previewChars,\n ).length % 5,\n )}\n </div>\n {previewChars > 0 && <span>{secret.slice(-previewChars)}</span>}\n </span>\n );\n};\n\nexport const Secret = ({\n secret,\n preview = 5,\n className,\n status,\n onCopy,\n revealed: controlledRevealed,\n onReveal,\n noReveal: disabledReveal,\n}: {\n revealed?: boolean;\n noReveal?: boolean;\n secret: string;\n status?: Status;\n className?: string;\n preview?: number;\n onCopy?: (secret: string) => void;\n onReveal?: (revealed: boolean) => void;\n}) => {\n const previewChars = Math.abs(preview);\n const [isRevealed, setRevealed] = useState(false);\n const [isCopied, copyToClipboard] = useCopyToClipboard();\n\n const revealed = controlledRevealed ?? isRevealed;\n\n return (\n <div\n className={cn(\n \"flex gap-2 items-center text-sm border rounded-md px-1\",\n className,\n )}\n >\n <div className=\"font-mono w-full h-9 items-center flex px-2 text-xs gap-2\">\n {status && (\n <div\n className={cn(\n \"rounded-full shrink-0 w-2 h-2 mr-2\",\n status === \"active\" && \"bg-emerald-400\",\n status === \"expired\" && \"bg-neutral-200\",\n status === \"expiring\" && \"bg-yellow-400\",\n status === \"revoked\" && \"bg-red-400\",\n status === \"none\" && \"opacity-0\",\n )}\n />\n )}\n <SecretText\n secret={secret}\n revealed={revealed}\n previewChars={previewChars}\n />\n </div>\n {disabledReveal !== true && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n setRevealed((prev) => !prev);\n onReveal?.(!revealed);\n }}\n size=\"icon\"\n >\n {revealed ? <EyeOffIcon size={16} /> : <EyeIcon size={16} />}\n </Button>\n )}\n <Button\n variant=\"ghost\"\n onClick={() => {\n copyToClipboard(secret);\n onCopy?.(secret);\n }}\n size=\"icon\"\n >\n {isCopied ? <CheckIcon size={16} /> : <CopyIcon size={16} />}\n </Button>\n </div>\n );\n};\n","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport type * as React from \"react\";\nimport { cn } from \"./util.js\";\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-placeholder:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","Subscribable","#client","#currentResult","#currentMutation","#mutateOptions","client","options","#updateResult","prevOptions","shallowEqualObjects","hashKey","action","#notify","variables","state","getDefaultState","notifyManager","context","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","SecretText","secret","revealed","previewChars","className","cn","jsx","Secret","preview","status","onCopy","controlledRevealed","onReveal","disabledReveal","isRevealed","setRevealed","useState","isCopied","copyToClipboard","useCopyToClipboard","jsxs","Button","prev","EyeOffIcon","EyeIcon","CheckIcon","CopyIcon","Select","props","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","size","children","ChevronDownIcon","SelectContent","position","align","SelectScrollUpButton","SelectScrollDownButton","SelectItem","ChevronUpIcon"],"mappings":"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","x_google_ignoreList":[0,1]}