@pinia/colada-devtools 0.4.1 → 0.4.3

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 (41) hide show
  1. package/dist/index.js +131 -131
  2. package/dist/index.js.map +1 -1
  3. package/dist-panel/{(unselected)-1XtzP47s.js → (unselected)-BQ3qDKQ9.js} +4 -4
  4. package/dist-panel/{(unselected)-1XtzP47s.js.map → (unselected)-BQ3qDKQ9.js.map} +1 -1
  5. package/dist-panel/(unselected)-DAm41Y3x.js +17 -0
  6. package/dist-panel/{(unselected)-CF4tcOEp.js.map → (unselected)-DAm41Y3x.js.map} +1 -1
  7. package/dist-panel/{_mutationId_-DmzWbpVT.js → _mutationId_int_-erdQKyLR.js} +39 -39
  8. package/dist-panel/_mutationId_int_-erdQKyLR.js.map +1 -0
  9. package/dist-panel/{_queryId_-5tGPPWCM.js → _queryId_-B4Df55YE.js} +51 -51
  10. package/dist-panel/{_queryId_-5tGPPWCM.js.map → _queryId_-B4Df55YE.js.map} +1 -1
  11. package/dist-panel/{circle-x-eNhJ6QJ3.js → circle-x-InxlHvaS.js} +35 -35
  12. package/dist-panel/{circle-x-eNhJ6QJ3.js.map → circle-x-InxlHvaS.js.map} +1 -1
  13. package/dist-panel/index-CYb5D1Be.js +6270 -0
  14. package/dist-panel/index-CYb5D1Be.js.map +1 -0
  15. package/dist-panel/index-DLKyTdsm.js +10 -0
  16. package/dist-panel/{index-C5FekW9K.js.map → index-DLKyTdsm.js.map} +1 -1
  17. package/dist-panel/index.js +1 -1
  18. package/dist-panel/{loader-DjhAUFXk.js → loader-Ca7c0zg-.js} +4 -4
  19. package/dist-panel/loader-Ca7c0zg-.js.map +1 -0
  20. package/dist-panel/{mouse-pointer-click-BwcHzNw_.js → mouse-pointer-click-ClYfwImy.js} +3 -3
  21. package/dist-panel/mouse-pointer-click-ClYfwImy.js.map +1 -0
  22. package/dist-panel/{mutations-Fiuj8fCV.js → mutations-pMmse5fr.js} +15 -15
  23. package/dist-panel/mutations-pMmse5fr.js.map +1 -0
  24. package/dist-panel/queries-BM6WYBXZ.js +312 -0
  25. package/dist-panel/queries-BM6WYBXZ.js.map +1 -0
  26. package/dist-panel/settings-C2hLj-3B.js +10 -0
  27. package/dist-panel/{settings-BHmLo73t.js.map → settings-C2hLj-3B.js.map} +1 -1
  28. package/dist-panel/{use-container-media-query-DHWhgIKV.js → use-container-media-query-CrxtYrv0.js} +43 -43
  29. package/dist-panel/{use-container-media-query-DHWhgIKV.js.map → use-container-media-query-CrxtYrv0.js.map} +1 -1
  30. package/package.json +11 -12
  31. package/dist-panel/(unselected)-CF4tcOEp.js +0 -17
  32. package/dist-panel/_mutationId_-DmzWbpVT.js.map +0 -1
  33. package/dist-panel/index-C5FekW9K.js +0 -10
  34. package/dist-panel/index-D0GQZaew.js +0 -6438
  35. package/dist-panel/index-D0GQZaew.js.map +0 -1
  36. package/dist-panel/loader-DjhAUFXk.js.map +0 -1
  37. package/dist-panel/mouse-pointer-click-BwcHzNw_.js.map +0 -1
  38. package/dist-panel/mutations-Fiuj8fCV.js.map +0 -1
  39. package/dist-panel/queries-Czfs9c3l.js +0 -286
  40. package/dist-panel/queries-Czfs9c3l.js.map +0 -1
  41. package/dist-panel/settings-BHmLo73t.js +0 -10
@@ -0,0 +1,10 @@
1
+ import { _ as e, o as c, c as n } from "./index-CYb5D1Be.js";
2
+ const o = {};
3
+ function r(t, a) {
4
+ return c(), n("h1", null, "Homepage");
5
+ }
6
+ const _ = /* @__PURE__ */ e(o, [["render", r]]);
7
+ export {
8
+ _ as default
9
+ };
10
+ //# sourceMappingURL=index-DLKyTdsm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-C5FekW9K.js","sources":["../src/panel/pages/index.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <h1>Homepage</h1>\n</template>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;AAGE,SAAAA,EAAA,GAAAC,EAAiB,YAAb,UAAQ;;;"}
1
+ {"version":3,"file":"index-DLKyTdsm.js","sources":["../src/panel/pages/index.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <h1>Homepage</h1>\n</template>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;AAGE,SAAAA,EAAA,GAAAC,EAAiB,YAAb,UAAQ;;;"}
@@ -1,4 +1,4 @@
1
- import { a1 as e } from "./index-D0GQZaew.js";
1
+ import { a1 as e } from "./index-CYb5D1Be.js";
2
2
  export {
3
3
  e as DevtoolsPanel
4
4
  };
@@ -1,11 +1,11 @@
1
- import { m as o, c as n, o as t, a as r } from "./index-D0GQZaew.js";
1
+ import { m as o, o as n, c as t, a as r } from "./index-CYb5D1Be.js";
2
2
  const i = {
3
3
  viewBox: "0 0 24 24",
4
4
  width: "1.2em",
5
5
  height: "1.2em"
6
6
  };
7
7
  function s(l, e) {
8
- return t(), n("svg", i, [...e[0] || (e[0] = [
8
+ return n(), t("svg", i, [...e[0] || (e[0] = [
9
9
  r("path", {
10
10
  fill: "none",
11
11
  stroke: "currentColor",
@@ -22,7 +22,7 @@ const m = o({ name: "lucide-x-octagon", render: s }), a = {
22
22
  height: "1.2em"
23
23
  };
24
24
  function d(l, e) {
25
- return t(), n("svg", a, [...e[0] || (e[0] = [
25
+ return n(), t("svg", a, [...e[0] || (e[0] = [
26
26
  r("path", {
27
27
  fill: "none",
28
28
  stroke: "currentColor",
@@ -38,4 +38,4 @@ export {
38
38
  u as _,
39
39
  m as a
40
40
  };
41
- //# sourceMappingURL=loader-DjhAUFXk.js.map
41
+ //# sourceMappingURL=loader-Ca7c0zg-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-Ca7c0zg-.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,11 +1,11 @@
1
- import { m as o, c as n, o as t, a as r } from "./index-D0GQZaew.js";
1
+ import { m as o, o as n, c as t, a as r } from "./index-CYb5D1Be.js";
2
2
  const l = {
3
3
  viewBox: "0 0 24 24",
4
4
  width: "1.2em",
5
5
  height: "1.2em"
6
6
  };
7
7
  function a(s, e) {
8
- return t(), n("svg", l, [...e[0] || (e[0] = [
8
+ return n(), t("svg", l, [...e[0] || (e[0] = [
9
9
  r("path", {
10
10
  fill: "none",
11
11
  stroke: "currentColor",
@@ -20,4 +20,4 @@ const c = o({ name: "lucide-mouse-pointer-click", render: a });
20
20
  export {
21
21
  c as _
22
22
  };
23
- //# sourceMappingURL=mouse-pointer-click-BwcHzNw_.js.map
23
+ //# sourceMappingURL=mouse-pointer-click-ClYfwImy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mouse-pointer-click-ClYfwImy.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- import { u as O, a as U, _ as q, b as D, c as K, d as Q, e as H, f as J, h as W, x as A, g as X } from "./use-container-media-query-DHWhgIKV.js";
2
- import { m as j, c as o, o as n, a as t, d as B, u as Y, b as S, r as E, e as g, w as $, f as h, n as y, g as i, F as C, h as M, t as x, i as u, j as Z, k as G, l as ee, p as te } from "./index-D0GQZaew.js";
3
- import { _ as ne, a as oe } from "./loader-DjhAUFXk.js";
1
+ import { u as O, _ as U, a as q, b as D, c as K, d as Q, e as H, f as J, x as A, g as W, h as X } from "./use-container-media-query-CrxtYrv0.js";
2
+ import { m as j, o as n, c as o, a as t, d as B, u as Y, r as E, b as g, w as $, n as y, e as i, f as h, F as S, g as M, t as x, h as u, i as C, j as Z, k as G, l as ee, p as te } from "./index-CYb5D1Be.js";
3
+ import { _ as ne, a as oe } from "./loader-Ca7c0zg-.js";
4
4
  const se = {
5
5
  viewBox: "0 0 24 24",
6
6
  width: "1.2em",
@@ -96,11 +96,11 @@ const z = {
96
96
  function p(_) {
97
97
  _.preventDefault(), _.stopPropagation(), a.push("/mutations");
98
98
  }
99
- const f = U(() => e.entry.key), b = S(() => !e.entry.key), c = S(() => N(e.entry));
99
+ const f = K(() => e.entry.key), b = C(() => !e.entry.key), c = C(() => N(e.entry));
100
100
  return (_, R) => {
101
- const l = ne, s = q, m = oe, v = D, k = ce, T = ae, I = K, r = E("RouterLink");
101
+ const l = ne, s = U, m = oe, v = q, k = ce, T = ae, I = D, r = E("RouterLink");
102
102
  return n(), g(r, {
103
- to: { name: "/mutations/[mutationId]", params: { mutationId: e.entry.id } },
103
+ to: { name: "/mutations/[mutationId=int]", params: { mutationId: e.entry.id } },
104
104
  custom: ""
105
105
  }, {
106
106
  default: $(({ isActive: d, navigate: P, href: F }) => [
@@ -150,7 +150,7 @@ const z = {
150
150
  }, [
151
151
  t("div", _e, [
152
152
  i(f) ? (n(), o("ol", ge, [
153
- (n(!0), o(C, null, M(i(f), (w, V) => (n(), o(C, { key: V }, [
153
+ (n(!0), o(S, null, M(i(f), (w, V) => (n(), o(S, { key: V }, [
154
154
  t("li", pe, x(w), 1),
155
155
  V < i(f).length - 1 ? (n(), o("li", xe, "/")) : h("", !0)
156
156
  ], 64))), 128)),
@@ -188,14 +188,14 @@ const z = {
188
188
  }, Ae = /* @__PURE__ */ B({
189
189
  __name: "mutations",
190
190
  setup(e) {
191
- const a = Z(""), L = G(), p = S(() => {
191
+ const a = te(""), L = Z(), p = C(() => {
192
192
  let l = L.value;
193
193
  if (a.value) {
194
194
  const s = a.value.toLowerCase();
195
195
  l = l.filter((m) => m.key ? m.key.some((v) => String(v).toLowerCase().includes(s)) : !1);
196
196
  }
197
197
  return l.toSorted((s, m) => m.devtools.updatedAt - s.devtools.updatedAt);
198
- }), f = S(
198
+ }), f = C(
199
199
  () => ({
200
200
  loading: [],
201
201
  success: [],
@@ -205,7 +205,7 @@ const z = {
205
205
  inactive: p.value.filter((l) => !l.active),
206
206
  ...Object.groupBy(p.value, (l) => N(l))
207
207
  })
208
- ), b = ee("split-panes-container"), c = Q("(width < 768px)", () => b.value?.$el), _ = te(
208
+ ), b = G("split-panes-container"), c = Q("(width < 768px)", () => b.value?.$el), _ = ee(
209
209
  "pc-devtools-mutation-list-panel-size",
210
210
  [30, 70]
211
211
  );
@@ -213,7 +213,7 @@ const z = {
213
213
  _.value = l.map((s) => s.size);
214
214
  }
215
215
  return (l, s) => {
216
- const m = H, v = J, k = ke, T = X, I = E("RouterView");
216
+ const m = H, v = J, k = ke, T = W, I = E("RouterView");
217
217
  return n(), o("section", we, [
218
218
  t("div", $e, [
219
219
  t("div", ze, [
@@ -227,7 +227,7 @@ const z = {
227
227
  }, null, 8, ["modelValue"])
228
228
  ]),
229
229
  t("div", Se, [
230
- (n(!0), o(C, null, M(f.value, (r, d) => (n(), o("div", {
230
+ (n(!0), o(S, null, M(f.value, (r, d) => (n(), o("div", {
231
231
  key: d,
232
232
  class: y(["theme-neutral bg-(--ui-bg-muted) rounded p-1 text-xs font-semibold flex items-center gap-x-1", (r?.length ?? 0) === 0 ? "text-(--ui-text-muted)" : ""]),
233
233
  title: `${r?.length ?? 0} ${d} mutations (after filtering)`
@@ -247,7 +247,7 @@ const z = {
247
247
  ], 10, Ce))), 128))
248
248
  ])
249
249
  ]),
250
- u(i(W), {
250
+ u(i(X), {
251
251
  ref: "split-panes-container",
252
252
  class: "overflow-hidden",
253
253
  horizontal: i(c),
@@ -261,7 +261,7 @@ const z = {
261
261
  }, {
262
262
  default: $(() => [
263
263
  p.value.length > 0 ? (n(), o("ol", Te, [
264
- (n(!0), o(C, null, M(p.value, (r) => (n(), o("li", {
264
+ (n(!0), o(S, null, M(p.value, (r) => (n(), o("li", {
265
265
  key: r.id
266
266
  }, [
267
267
  u(k, { entry: r }, null, 8, ["entry"])
@@ -294,4 +294,4 @@ const z = {
294
294
  export {
295
295
  Ae as default
296
296
  };
297
- //# sourceMappingURL=mutations-Fiuj8fCV.js.map
297
+ //# sourceMappingURL=mutations-pMmse5fr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutations-pMmse5fr.js","sources":["../src/panel/utils/mutation-state.ts","../src/panel/components/ListMutationEntry.vue","../src/panel/pages/mutations.vue"],"sourcesContent":["import type { UseMutationEntryPayload } from '@pinia/colada-devtools/shared'\n\nexport type UseMutationEntryPayloadStatus =\n | 'loading'\n | 'success'\n | 'error'\n | 'pending'\n | 'idle'\n | 'inactive'\n\nexport function getMutationStatus(entry: UseMutationEntryPayload): UseMutationEntryPayloadStatus {\n if (entry.asyncStatus === 'loading') {\n return 'loading'\n }\n if (entry.state.status === 'error') {\n return 'error'\n }\n if (entry.state.status === 'success') {\n return 'success'\n }\n if (entry.state.status === 'pending') {\n return 'pending'\n }\n\n return 'idle'\n}\n\nexport const STATUS_COLOR_CLASSES: Record<\n UseMutationEntryPayloadStatus,\n {\n base: string\n clear: string\n text: string\n }\n> = {\n loading: {\n base: 'bg-purple-400',\n clear: 'bg-purple-200',\n text: 'text-purple-100',\n },\n success: {\n base: 'bg-success-500',\n clear: 'bg-success-200',\n text: 'text-success-100',\n },\n error: {\n base: 'bg-error-500',\n clear: 'bg-error-200',\n text: 'text-error-100',\n },\n pending: {\n base: 'bg-warning-500',\n clear: 'bg-warning-200',\n text: 'text-warning-100',\n },\n idle: {\n base: 'bg-neutral-400',\n clear: 'bg-neutral-200',\n text: 'text-neutral-100',\n },\n inactive: {\n base: 'bg-neutral-400',\n clear: 'bg-neutral-200',\n text: 'text-neutral-100',\n },\n}\n","<script setup lang=\"ts\">\nimport type { UseMutationEntryPayload } from '@pinia/colada-devtools/shared'\nimport { computed } from 'vue'\nimport { getMutationStatus, STATUS_COLOR_CLASSES } from '../utils/mutation-state'\nimport { useRouter } from 'vue-router'\nimport { usePerformanceNow } from '../composables/performance-now'\nimport { useFormattedKey } from '../composables/entries'\n\nconst { entry } = defineProps<{\n entry: UseMutationEntryPayload\n}>()\nconst router = useRouter()\nconst now = usePerformanceNow()\n\nfunction unselect(event: MouseEvent) {\n event.preventDefault()\n event.stopPropagation()\n router.push('/mutations')\n}\n\nconst formattedKey = useFormattedKey(() => entry.key)\nconst isAnonymous = computed(() => !entry.key)\nconst status = computed(() => getMutationStatus(entry))\n</script>\n\n<template>\n <RouterLink\n v-slot=\"{ isActive, navigate, href }\"\n :to=\"{ name: '/mutations/[mutationId=int]', params: { mutationId: entry.id } }\"\n custom\n >\n <div\n class=\"grid grid-cols-[minmax(0,auto)_1fr] grid-flow-col items-center gap-x-2 p-1 relative text-sm @container\"\n :class=\"[\n isActive ? 'bg-neutral-200 dark:bg-neutral-700' : 'hover:bg-(--ui-bg-elevated)',\n entry.active ? '' : 'text-(--ui-text)/50',\n ]\"\n >\n <div class=\"h-full w-6 relative\">\n <div\n class=\"absolute -inset-1 right-0 flex items-center justify-center\"\n :class=\"STATUS_COLOR_CLASSES[status].base\"\n :title=\"status\"\n >\n <i-lucide-loader v-if=\"status === 'loading'\" title=\"Loading\" aria-label=\"Loading icon\" />\n <i-lucide-check\n v-else-if=\"status === 'success'\"\n title=\"Success\"\n aria-label=\"Success icon\"\n />\n <i-lucide-x-octagon\n v-else-if=\"status === 'error'\"\n title=\"Error\"\n aria-label=\"Error icon\"\n />\n <i-lucide-pause\n v-else-if=\"status === 'pending'\"\n title=\"Pending\"\n aria-label=\"Pending icon\"\n />\n <i-lucide-circle v-else-if=\"status === 'idle'\" title=\"Idle\" aria-label=\"Idle icon\" />\n <i-lucide-circle\n v-else-if=\"status === 'inactive'\"\n title=\"Inactive\"\n aria-label=\"Inactive icon\"\n />\n </div>\n </div>\n\n <a\n :href\n class=\"hover:cursor-pointer block overflow-hidden\"\n :title=\"`${isAnonymous ? 'Anonymous' : 'Mutation'} execution ${entry.id}`\"\n @click=\"isActive ? unselect($event) : navigate($event)\"\n >\n <div class=\"flex items-center gap-1.5\">\n <ol class=\"flex font-mono grow gap-0.5 overflow-auto items-center\" v-if=\"formattedKey\">\n <template v-for=\"(key, i) in formattedKey\" :key=\"i\">\n <li class=\"text-wrap wrap-break-word rounded px-0.5 bg-(--ui-text)/5\">\n {{ key }}\n </li>\n <li v-if=\"i < formattedKey.length - 1\" aria-hidden=\"true\">/</li>\n </template>\n <li class=\"text-xs text-(--ui-text-muted)\">({{ entry.id }})</li>\n </ol>\n <div\n v-if=\"isAnonymous\"\n class=\"grid grid-cols-[auto_auto_1fr] gap-1.5 items-center w-full\"\n >\n <i-lucide-file-question class=\"text-(--ui-text-muted) grow\" />\n <span class=\"text-xs\">{{ entry.id }}</span>\n <span>\n <span class=\"font-mono rounded px-0.5 bg-(--ui-text)/8\">{{\n new Date(entry.when).toISOString()\n }}</span>\n </span>\n </div>\n </div>\n </a>\n\n <div\n v-if=\"\n !entry.active &&\n entry.gcTimeout &&\n entry.devtools.inactiveAt &&\n typeof entry.options?.gcTime === 'number' &&\n Number.isFinite(entry.options.gcTime) &&\n entry.options.gcTime <= 30_000\n \"\n title=\"This mutation will be garbage collected\"\n >\n <UCircleProgress\n class=\"size-[1em] dark:text-neutral-500 text-neutral-400\"\n :max=\"entry.options.gcTime\"\n :value=\"entry.devtools.inactiveAt + entry.options.gcTime - now\"\n />\n </div>\n </div>\n </RouterLink>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { Pane, Splitpanes } from '@posva/splitpanes'\nimport { useMutationEntries } from '../composables/duplex-channel'\nimport { getMutationStatus, STATUS_COLOR_CLASSES } from '../utils/mutation-state'\nimport type { UseMutationEntryPayloadStatus } from '../utils/mutation-state'\nimport type { UseMutationEntryPayload } from '@pinia/colada-devtools/shared'\nimport { useContainerMediaQuery } from '../composables/use-container-media-query'\nimport { useLocalStorage } from '@vueuse/core'\n\nconst searchQuery = ref('')\n\nconst mutations = useMutationEntries()\n\nconst filteredItems = computed(() => {\n let items = mutations.value\n\n if (searchQuery.value) {\n const query = searchQuery.value.toLowerCase()\n items = items.filter((item) => {\n if (!item.key) return false\n return item.key.some((v) => String(v).toLowerCase().includes(query))\n })\n }\n\n // Sort by most recent first\n return items.toSorted((a, b) => {\n return b.devtools.updatedAt - a.devtools.updatedAt\n })\n})\n\nconst mutationsGrouped = computed<Record<UseMutationEntryPayloadStatus, UseMutationEntryPayload[]>>(\n () => {\n return {\n loading: [],\n success: [],\n error: [],\n pending: [],\n idle: [],\n inactive: filteredItems.value.filter((item) => !item.active),\n ...Object.groupBy(filteredItems.value, (item) => getMutationStatus(item)),\n }\n },\n)\n\nconst container = useTemplateRef('split-panes-container')\nconst isNarrow = useContainerMediaQuery('(width < 768px)', () => container.value?.$el)\n\nconst mutationListPanelSize = useLocalStorage<number[]>(\n 'pc-devtools-mutation-list-panel-size',\n [30, 70],\n)\n\nfunction updatePanesSize({ panes }: { panes: { size: number }[] }) {\n mutationListPanelSize.value = panes.map((pane) => pane.size)\n}\n</script>\n\n<template>\n <section class=\"grid grid-rows-[auto_1fr] overflow-hidden @container\">\n <!-- Search & Actions Bar -->\n <div class=\"flex items-center p-2 border-b border-(--ui-border) gap-2\">\n <div class=\"relative grow\">\n <i-lucide-search\n class=\"absolute left-2 top-1/2 -translate-y-1/2 text-ui-text-muted size-4\"\n />\n <UInput v-model=\"searchQuery\" type=\"search\" class=\"w-full\" placeholder=\"Search Mutations\" />\n </div>\n\n <div class=\"flex gap-x-1\">\n <div\n v-for=\"(mutationGroup, status) in mutationsGrouped\"\n :key=\"status\"\n class=\"theme-neutral bg-(--ui-bg-muted) rounded p-1 text-xs font-semibold flex items-center gap-x-1\"\n :class=\"(mutationGroup?.length ?? 0) === 0 ? 'text-(--ui-text-muted)' : ''\"\n :title=\"`${mutationGroup?.length ?? 0} ${status} mutations (after filtering)`\"\n >\n <div class=\"rounded-full size-2\" :class=\"STATUS_COLOR_CLASSES[status].base\" />\n <span class=\"@max-[750px]:hidden\">{{ status }}</span>\n <div\n class=\"px-1.5 py-0.5 rounded min-w-[1.65em] flex justify-center\"\n :class=\"\n (mutationGroup?.length ?? 0) === 0\n ? 'bg-(--ui-bg-accented)'\n : [STATUS_COLOR_CLASSES[status].base, STATUS_COLOR_CLASSES[status].text]\n \"\n >\n <span>{{ mutationGroup?.length ?? 0 }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <Splitpanes\n ref=\"split-panes-container\"\n class=\"overflow-hidden\"\n :horizontal=\"isNarrow\"\n @resized=\"updatePanesSize\"\n >\n <!-- List Panel -->\n <Pane min-size=\"15\" :size=\"mutationListPanelSize[0]\" class=\"flex flex-col\">\n <ol role=\"list\" class=\"divide-y divide-(--ui-border)\" v-if=\"filteredItems.length > 0\">\n <li v-for=\"entry of filteredItems\" :key=\"entry.id\">\n <ListMutationEntry :entry />\n </li>\n </ol>\n <div\n v-else\n class=\"flex flex-col items-center p-4 text-(--ui-text-muted) text-sm text-center gap-2\"\n >\n <i-lucide-inbox class=\"size-8\" />\n <h3 class=\"text-lg\">No mutations found</h3>\n <p>Try adjusting your search or perform some mutations in your app.</p>\n </div>\n </Pane>\n\n <!-- Details Panel -->\n <Pane min-size=\"30\" :size=\"mutationListPanelSize[1]\" class=\"flex flex-col\">\n <RouterView />\n </Pane>\n </Splitpanes>\n </section>\n</template>\n"],"names":["getMutationStatus","entry","STATUS_COLOR_CLASSES","router","useRouter","now","usePerformanceNow","unselect","event","formattedKey","useFormattedKey","__props","isAnonymous","computed","status","_createBlock","_component_RouterLink","_withCtx","isActive","navigate","href","_createElementVNode","_hoisted_1","_unref","_component_i_lucide_loader","_component_i_lucide_check","_component_i_lucide_x_octagon","_component_i_lucide_pause","_component_i_lucide_circle","$event","_hoisted_4","_openBlock","_createElementBlock","_hoisted_5","_Fragment","_renderList","key","i","_hoisted_6","_toDisplayString","_hoisted_7","_hoisted_8","_hoisted_9","_createVNode","_component_i_lucide_file_question","_hoisted_10","_hoisted_11","_hoisted_12","_component_UCircleProgress","searchQuery","ref","mutations","useMutationEntries","filteredItems","items","query","item","a","b","mutationsGrouped","container","useTemplateRef","isNarrow","useContainerMediaQuery","mutationListPanelSize","useLocalStorage","updatePanesSize","panes","pane","_hoisted_2","_hoisted_3","_component_i_lucide_search","_component_UInput","mutationGroup","_normalizeClass","Splitpanes","Pane","_component_ListMutationEntry","_component_i_lucide_inbox","_cache","_component_RouterView"],"mappings":"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"}
@@ -0,0 +1,312 @@
1
+ import { u as I, _ as U, a as M, b as O, c as D, d as H, e as K, f as J, x as V, g as W, h as X } from "./use-container-media-query-CrxtYrv0.js";
2
+ import { m as B, o as t, c as s, a as n, d as j, u as Y, r as E, b as p, w, n as v, e as i, f as k, h as c, F as $, g as T, i as R, t as A, C as Z, k as G, l as ee, p as te } from "./index-CYb5D1Be.js";
3
+ import { _ as ne, a as se } from "./loader-Ca7c0zg-.js";
4
+ const oe = {
5
+ viewBox: "0 0 24 24",
6
+ width: "1.2em",
7
+ height: "1.2em"
8
+ };
9
+ function re(e, o) {
10
+ return t(), s("svg", oe, [...o[0] || (o[0] = [
11
+ n("g", {
12
+ fill: "none",
13
+ stroke: "currentColor",
14
+ "stroke-linecap": "round",
15
+ "stroke-linejoin": "round",
16
+ "stroke-width": "2"
17
+ }, [
18
+ n("circle", {
19
+ cx: "12",
20
+ cy: "12",
21
+ r: "10"
22
+ }),
23
+ n("path", { d: "m9 15l6-6" })
24
+ ], -1)
25
+ ])]);
26
+ }
27
+ const ie = B({ name: "lucide-circle-slash", render: re }), ae = {
28
+ viewBox: "0 0 24 24",
29
+ width: "1.2em",
30
+ height: "1.2em"
31
+ };
32
+ function le(e, o) {
33
+ return t(), s("svg", ae, [...o[0] || (o[0] = [
34
+ n("path", {
35
+ fill: "none",
36
+ stroke: "currentColor",
37
+ "stroke-linecap": "round",
38
+ "stroke-linejoin": "round",
39
+ "stroke-width": "2",
40
+ d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"
41
+ }, null, -1)
42
+ ])]);
43
+ }
44
+ const ce = B({ name: "lucide-zap", render: le }), ue = {
45
+ viewBox: "0 0 24 24",
46
+ width: "1.2em",
47
+ height: "1.2em"
48
+ };
49
+ function de(e, o) {
50
+ return t(), s("svg", ue, [...o[0] || (o[0] = [
51
+ n("path", {
52
+ fill: "none",
53
+ stroke: "currentColor",
54
+ "stroke-linecap": "round",
55
+ "stroke-linejoin": "round",
56
+ "stroke-width": "2",
57
+ d: "M18 6L7 17l-5-5m20-2l-7.5 7.5L13 16"
58
+ }, null, -1)
59
+ ])]);
60
+ }
61
+ const _e = B({ name: "lucide-check-check", render: de });
62
+ function N(e) {
63
+ return e.asyncStatus === "loading" ? "loading" : e.state.status === "error" ? "error" : e.state.status === "pending" ? "pending" : e.stale ? "stale" : e.state.status === "success" ? "fresh" : "unknown";
64
+ }
65
+ const z = {
66
+ loading: {
67
+ base: "bg-purple-400",
68
+ clear: "bg-purple-200",
69
+ text: "text-purple-100"
70
+ },
71
+ fresh: {
72
+ base: "bg-success-500",
73
+ clear: "bg-success-200",
74
+ text: "text-success-100"
75
+ },
76
+ error: {
77
+ base: "bg-error-500",
78
+ clear: "bg-error-200",
79
+ text: "text-error-100"
80
+ },
81
+ stale: {
82
+ base: "bg-info-500",
83
+ clear: "bg-info-200",
84
+ text: "text-info-100"
85
+ },
86
+ pending: {
87
+ base: "bg-warning-500",
88
+ clear: "bg-warning-200",
89
+ text: "text-warning-100"
90
+ },
91
+ inactive: {
92
+ base: "bg-neutral-400",
93
+ clear: "bg-neutral-200",
94
+ text: "text-neutral-100"
95
+ },
96
+ unknown: {
97
+ base: "bg-gray-400",
98
+ clear: "bg-gray-200",
99
+ text: "text-gray-100"
100
+ }
101
+ }, me = { class: "h-full w-6 relative" }, ge = ["title"], pe = ["href", "onClick"], fe = {
102
+ key: 0,
103
+ title: "This query was prefetched or set manually",
104
+ class: "shrink-0 text-info-700 dark:text-info-300 cursor-help"
105
+ }, he = ["title"], xe = { class: "text-wrap wrap-break-word rounded bg-(--ui-text)/5 px-0.5" }, ve = {
106
+ key: 0,
107
+ "aria-hidden": "true"
108
+ }, ye = {
109
+ key: 0,
110
+ title: "This query is disabled"
111
+ }, be = { class: "rounded bg-theme/70 theme-neutral p-0.5 text-xs flex gap-x-0.5 items-center" }, ke = {
112
+ key: 1,
113
+ title: "This query will be garbage collected"
114
+ }, we = /* @__PURE__ */ j({
115
+ __name: "ListQueryEntry",
116
+ props: {
117
+ entry: {}
118
+ },
119
+ setup(e) {
120
+ const o = Y(), C = I();
121
+ function m(f) {
122
+ f.preventDefault(), f.stopPropagation(), o.push("/queries");
123
+ }
124
+ const y = D(() => e.entry.key), u = R(() => N(e.entry));
125
+ return (f, g) => {
126
+ const S = ne, a = _e, r = se, _ = U, b = M, h = ce, L = ie, q = O, l = E("RouterLink");
127
+ return t(), p(l, {
128
+ to: { name: "/queries/[queryId]", params: { queryId: e.entry.keyHash } },
129
+ custom: ""
130
+ }, {
131
+ default: w(({ isActive: d, navigate: P, href: Q }) => [
132
+ n("div", {
133
+ class: v(["grid grid-cols-[minmax(0,auto)_1fr] grid-flow-col items-center gap-x-2 p-1 relative text-sm @container", [
134
+ d ? "bg-neutral-200 dark:bg-neutral-700" : "hover:bg-(--ui-bg-elevated)",
135
+ e.entry.active || !e.entry.options ? "" : "text-(--ui-text)/50"
136
+ ]])
137
+ }, [
138
+ n("div", me, [
139
+ n("div", {
140
+ class: v(["absolute -inset-1 right-0 flex items-center justify-center", i(z)[u.value].base]),
141
+ title: u.value
142
+ }, [
143
+ u.value === "loading" ? (t(), p(S, {
144
+ key: 0,
145
+ title: "Loading",
146
+ "aria-label": "Loading icon"
147
+ })) : u.value === "fresh" ? (t(), p(a, {
148
+ key: 1,
149
+ title: "Fresh successful data",
150
+ "aria-label": "Fresh successful data icon"
151
+ })) : u.value === "error" ? (t(), p(r, {
152
+ key: 2,
153
+ title: "Error",
154
+ "aria-label": "Error icon"
155
+ })) : u.value === "stale" ? (t(), p(_, {
156
+ key: 3,
157
+ title: "Stale",
158
+ "aria-label": "Stale icon"
159
+ })) : u.value === "pending" ? (t(), p(b, {
160
+ key: 4,
161
+ title: "Pending",
162
+ "aria-label": "Pending icon"
163
+ })) : k("", !0)
164
+ ], 10, ge)
165
+ ]),
166
+ n("a", {
167
+ href: Q,
168
+ class: "hover:cursor-pointer flex gap-1 items-center overflow-hidden",
169
+ onClick: (x) => d ? m(x) : P(x)
170
+ }, [
171
+ e.entry.options ? k("", !0) : (t(), s("span", fe, [
172
+ c(h)
173
+ ])),
174
+ n("ol", {
175
+ class: "flex font-mono grow gap-0.5 overflow-auto items-center",
176
+ title: e.entry.active ? "Active query" : "Inactive query"
177
+ }, [
178
+ (t(!0), s($, null, T(i(y), (x, F) => (t(), s($, { key: x }, [
179
+ n("li", xe, A(x), 1),
180
+ F < i(y).length - 1 ? (t(), s("li", ve, "/")) : k("", !0)
181
+ ], 64))), 128))
182
+ ], 8, he)
183
+ ], 8, pe),
184
+ e.entry.options?.enabled === !1 ? (t(), s("div", ye, [
185
+ n("span", be, [
186
+ c(L, { "aria-hidden": "" }),
187
+ g[0] || (g[0] = n("span", { class: "@max-md:hidden" }, "disabled", -1))
188
+ ])
189
+ ])) : !e.entry.active && e.entry.gcTimeout && e.entry.devtools.inactiveAt && typeof e.entry.options?.gcTime == "number" && Number.isFinite(e.entry.options.gcTime) && e.entry.options.gcTime <= 3e4 ? (t(), s("div", ke, [
190
+ c(q, {
191
+ class: "size-[1em] dark:text-neutral-500 text-neutral-400",
192
+ max: e.entry.options.gcTime,
193
+ value: e.entry.devtools.inactiveAt + e.entry.options.gcTime - i(C)
194
+ }, null, 8, ["max", "value"])
195
+ ])) : k("", !0)
196
+ ], 2)
197
+ ]),
198
+ _: 1
199
+ }, 8, ["to"]);
200
+ };
201
+ }
202
+ }), ze = { class: "grid grid-rows-[auto_1fr] overflow-hidden @container" }, $e = { class: "flex items-center p-2 border-b border-(--ui-border) gap-2" }, Ce = { class: "relative grow" }, Se = { class: "flex gap-x-1" }, Le = ["title"], qe = { class: "@max-[750px]:hidden" }, Te = {
203
+ key: 0,
204
+ role: "list",
205
+ class: "divide-y divide-(--ui-border)"
206
+ }, Re = {
207
+ key: 1,
208
+ class: "flex flex-col items-center p-4 text-(--ui-text-muted) text-sm text-center gap-2"
209
+ }, je = /* @__PURE__ */ j({
210
+ __name: "queries",
211
+ setup(e) {
212
+ const o = te(""), C = Z(), m = R(() => {
213
+ let a = C.value;
214
+ if (o.value) {
215
+ const r = o.value.toLowerCase();
216
+ a = a.filter((_) => _.key.some((h) => String(h).toLowerCase().includes(r)));
217
+ }
218
+ return a.toSorted((r, _) => _.devtools.updatedAt - r.devtools.updatedAt);
219
+ }), y = R(() => ({
220
+ loading: [],
221
+ fresh: [],
222
+ error: [],
223
+ pending: [],
224
+ inactive: m.value.filter((a) => !a.active),
225
+ ...Object.groupBy(m.value, (a) => N(a))
226
+ })), u = G("split-panes-container"), f = H("(width < 768px)", () => u.value?.$el), g = ee("pc-devtools-query-list-panel-size", [30, 70]);
227
+ function S({ panes: a }) {
228
+ g.value = a.map((r) => r.size);
229
+ }
230
+ return (a, r) => {
231
+ const _ = K, b = J, h = we, L = W, q = E("RouterView");
232
+ return t(), s("section", ze, [
233
+ n("div", $e, [
234
+ n("div", Ce, [
235
+ c(_, { class: "absolute left-2 top-1/2 -translate-y-1/2 text-ui-text-muted size-4" }),
236
+ c(b, {
237
+ modelValue: o.value,
238
+ "onUpdate:modelValue": r[0] || (r[0] = (l) => o.value = l),
239
+ type: "search",
240
+ class: "w-full",
241
+ placeholder: "Search Queries"
242
+ }, null, 8, ["modelValue"])
243
+ ]),
244
+ n("div", Se, [
245
+ (t(!0), s($, null, T(y.value, (l, d) => (t(), s("div", {
246
+ key: d,
247
+ class: v(["theme-neutral bg-(--ui-bg-muted) rounded p-1 text-xs font-semibold flex items-center gap-x-1", (l?.length ?? 0) === 0 ? "text-(--ui-text-muted)" : ""]),
248
+ title: `${l?.length ?? 0} ${d} queries (after filtering)`
249
+ }, [
250
+ n("div", {
251
+ class: v(["rounded-full size-2", i(z)[d].base])
252
+ }, null, 2),
253
+ n("span", qe, A(d), 1),
254
+ n("div", {
255
+ class: v([
256
+ "px-1.5 py-0.5 rounded min-w-[1.65em] flex justify-center",
257
+ (l?.length ?? 0) === 0 ? "bg-(--ui-bg-accented)" : [i(z)[d].base, i(z)[d].text]
258
+ ])
259
+ }, [
260
+ n("span", null, A(l?.length ?? 0), 1)
261
+ ], 2)
262
+ ], 10, Le))), 128))
263
+ ])
264
+ ]),
265
+ c(i(X), {
266
+ ref: "split-panes-container",
267
+ class: "overflow-hidden",
268
+ horizontal: i(f),
269
+ onResized: S
270
+ }, {
271
+ default: w(() => [
272
+ c(i(V), {
273
+ "min-size": "15",
274
+ size: i(g)[0],
275
+ class: "flex flex-col"
276
+ }, {
277
+ default: w(() => [
278
+ m.value.length > 0 ? (t(), s("ol", Te, [
279
+ (t(!0), s($, null, T(m.value, (l) => (t(), s("li", {
280
+ key: l.keyHash
281
+ }, [
282
+ c(h, { entry: l }, null, 8, ["entry"])
283
+ ]))), 128))
284
+ ])) : (t(), s("div", Re, [
285
+ c(L, { class: "size-8" }),
286
+ r[1] || (r[1] = n("h3", { class: "text-lg" }, "No queries found", -1)),
287
+ r[2] || (r[2] = n("p", null, "Try adjusting your search or perform some mutations in your app.", -1))
288
+ ]))
289
+ ]),
290
+ _: 1
291
+ }, 8, ["size"]),
292
+ c(i(V), {
293
+ "min-size": "30",
294
+ size: i(g)[1],
295
+ class: "flex flex-col"
296
+ }, {
297
+ default: w(() => [
298
+ c(q)
299
+ ]),
300
+ _: 1
301
+ }, 8, ["size"])
302
+ ]),
303
+ _: 1
304
+ }, 8, ["horizontal"])
305
+ ]);
306
+ };
307
+ }
308
+ });
309
+ export {
310
+ je as default
311
+ };
312
+ //# sourceMappingURL=queries-BM6WYBXZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries-BM6WYBXZ.js","sources":["../src/panel/utils/query-state.ts","../src/panel/components/ListQueryEntry.vue","../src/panel/pages/queries.vue"],"sourcesContent":["import type { UseQueryEntryPayload } from '@pinia/colada-devtools/shared'\n\nexport type UseQueryEntryPayloadStatus =\n | 'loading'\n | 'fresh'\n | 'error'\n | 'stale'\n | 'pending'\n | 'unknown'\n\nexport function getQueryStatus(entry: UseQueryEntryPayload): UseQueryEntryPayloadStatus {\n if (entry.asyncStatus === 'loading') {\n return 'loading'\n }\n if (entry.state.status === 'error') {\n return 'error'\n }\n if (entry.state.status === 'pending') {\n return 'pending'\n }\n if (entry.stale) {\n return 'stale'\n }\n if (entry.state.status === 'success') {\n return 'fresh'\n }\n\n return 'unknown'\n}\n\nexport const STATUS_COLOR_CLASSES: Record<\n UseQueryEntryPayloadStatus | 'inactive',\n {\n base: string\n clear: string\n text: string\n }\n> = {\n loading: {\n base: 'bg-purple-400',\n clear: 'bg-purple-200',\n text: 'text-purple-100',\n },\n fresh: {\n base: 'bg-success-500',\n clear: 'bg-success-200',\n text: 'text-success-100',\n },\n error: {\n base: 'bg-error-500',\n clear: 'bg-error-200',\n text: 'text-error-100',\n },\n stale: {\n base: 'bg-info-500',\n clear: 'bg-info-200',\n text: 'text-info-100',\n },\n pending: {\n base: 'bg-warning-500',\n clear: 'bg-warning-200',\n text: 'text-warning-100',\n },\n inactive: {\n base: 'bg-neutral-400',\n clear: 'bg-neutral-200',\n text: 'text-neutral-100',\n },\n unknown: {\n base: 'bg-gray-400',\n clear: 'bg-gray-200',\n text: 'text-gray-100',\n },\n}\n","<script setup lang=\"ts\">\nimport type { UseQueryEntryPayload } from '@pinia/colada-devtools/shared'\nimport { computed } from 'vue'\nimport { getQueryStatus, STATUS_COLOR_CLASSES } from '../utils/query-state'\nimport { useRouter } from 'vue-router'\nimport { usePerformanceNow } from '../composables/performance-now'\nimport { useFormattedKey } from '../composables/entries'\n\nconst { entry } = defineProps<{\n entry: UseQueryEntryPayload\n}>()\nconst router = useRouter()\n\nconst now = usePerformanceNow()\n// const now = useNow({ interval: Math.max(100, (entry.options?.gcTime || 0) / 30) })\n\nfunction unselect(event: MouseEvent) {\n event.preventDefault()\n event.stopPropagation()\n router.push('/queries')\n}\n\nconst formattedKey = useFormattedKey(() => entry.key)\nconst status = computed(() => getQueryStatus(entry))\n</script>\n\n<template>\n <RouterLink\n v-slot=\"{ isActive, navigate, href }\"\n :to=\"{ name: '/queries/[queryId]', params: { queryId: entry.keyHash } }\"\n custom\n >\n <div\n class=\"grid grid-cols-[minmax(0,auto)_1fr] grid-flow-col items-center gap-x-2 p-1 relative text-sm @container\"\n :class=\"[\n isActive ? 'bg-neutral-200 dark:bg-neutral-700' : 'hover:bg-(--ui-bg-elevated)',\n entry.active || !entry.options ? '' : 'text-(--ui-text)/50',\n ]\"\n >\n <div class=\"h-full w-6 relative\">\n <div\n class=\"absolute -inset-1 right-0 flex items-center justify-center\"\n :class=\"STATUS_COLOR_CLASSES[status].base\"\n :title=\"status\"\n >\n <i-lucide-loader v-if=\"status === 'loading'\" title=\"Loading\" aria-label=\"Loading icon\" />\n <i-lucide-check-check\n v-else-if=\"status === 'fresh'\"\n title=\"Fresh successful data\"\n aria-label=\"Fresh successful data icon\"\n />\n <i-lucide-x-octagon\n v-else-if=\"status === 'error'\"\n title=\"Error\"\n aria-label=\"Error icon\"\n />\n <i-lucide-check v-else-if=\"status === 'stale'\" title=\"Stale\" aria-label=\"Stale icon\" />\n <i-lucide-pause\n v-else-if=\"status === 'pending'\"\n title=\"Pending\"\n aria-label=\"Pending icon\"\n />\n </div>\n </div>\n\n <a\n :href\n class=\"hover:cursor-pointer flex gap-1 items-center overflow-hidden\"\n @click=\"isActive ? unselect($event) : navigate($event)\"\n >\n <span\n v-if=\"!entry.options\"\n title=\"This query was prefetched or set manually\"\n class=\"shrink-0 text-info-700 dark:text-info-300 cursor-help\"\n >\n <i-lucide-zap />\n </span>\n <ol\n class=\"flex font-mono grow gap-0.5 overflow-auto items-center\"\n :title=\"entry.active ? 'Active query' : 'Inactive query'\"\n >\n <template v-for=\"(key, i) in formattedKey\" :key=\"key\">\n <li class=\"text-wrap wrap-break-word rounded bg-(--ui-text)/5 px-0.5\">{{ key }}</li>\n <li v-if=\"i < formattedKey.length - 1\" aria-hidden=\"true\">/</li>\n </template>\n </ol>\n </a>\n\n <div v-if=\"entry.options?.enabled === false\" title=\"This query is disabled\">\n <span class=\"rounded bg-theme/70 theme-neutral p-0.5 text-xs flex gap-x-0.5 items-center\">\n <i-lucide-circle-slash aria-hidden />\n <span class=\"@max-md:hidden\">disabled</span>\n </span>\n </div>\n <div\n v-else-if=\"\n !entry.active &&\n entry.gcTimeout &&\n entry.devtools.inactiveAt &&\n typeof entry.options?.gcTime === 'number' &&\n Number.isFinite(entry.options.gcTime) &&\n entry.options.gcTime <= 30_000\n \"\n title=\"This query will be garbage collected\"\n >\n <UCircleProgress\n class=\"size-[1em] dark:text-neutral-500 text-neutral-400\"\n :max=\"entry.options.gcTime\"\n :value=\"entry.devtools.inactiveAt + entry.options.gcTime - now\"\n />\n </div>\n </div>\n </RouterLink>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from 'vue'\nimport { Pane, Splitpanes } from '@posva/splitpanes'\nimport { useQueryEntries } from '../composables/duplex-channel'\nimport { getQueryStatus, STATUS_COLOR_CLASSES } from '../utils/query-state'\nimport type { UseQueryEntryPayloadStatus } from '../utils/query-state'\nimport type { UseQueryEntryPayload } from '@pinia/colada-devtools/shared'\nimport { useContainerMediaQuery } from '../composables/use-container-media-query'\nimport { useLocalStorage } from '@vueuse/core'\n\nconst searchQuery = ref('')\n\nconst queries = useQueryEntries()\n\nconst filteredItems = computed(() => {\n let items = queries.value\n\n if (searchQuery.value) {\n const query = searchQuery.value.toLowerCase()\n items = items.filter((item) => {\n const searchable = item.key\n return searchable.some((v) => String(v).toLowerCase().includes(query))\n })\n }\n\n // sort by last updatedAt\n return items.toSorted((a, b) => {\n return b.devtools.updatedAt - a.devtools.updatedAt\n })\n})\n\nconst queriesGrouped = computed<\n Record<\n Exclude<UseQueryEntryPayloadStatus, 'unknown' | 'stale'> | 'inactive',\n UseQueryEntryPayload[]\n >\n>(() => {\n return {\n loading: [],\n fresh: [],\n error: [],\n pending: [],\n inactive: filteredItems.value.filter((item) => !item.active),\n ...Object.groupBy(filteredItems.value, (item) => getQueryStatus(item)),\n }\n})\n\nconst container = useTemplateRef('split-panes-container')\nconst isNarrow = useContainerMediaQuery('(width < 768px)', () => container.value?.$el)\n\nconst queryListPanelSize = useLocalStorage<number[]>('pc-devtools-query-list-panel-size', [30, 70])\n\nfunction updatePanesSize({ panes }: { panes: { size: number }[] }) {\n queryListPanelSize.value = panes.map((pane) => pane.size)\n}\n</script>\n\n<template>\n <section class=\"grid grid-rows-[auto_1fr] overflow-hidden @container\">\n <!-- Search & Actions Bar -->\n <div class=\"flex items-center p-2 border-b border-(--ui-border) gap-2\">\n <div class=\"relative grow\">\n <i-lucide-search\n class=\"absolute left-2 top-1/2 -translate-y-1/2 text-ui-text-muted size-4\"\n />\n <UInput v-model=\"searchQuery\" type=\"search\" class=\"w-full\" placeholder=\"Search Queries\" />\n </div>\n\n <!-- TODO: sort source, asc/desc -->\n\n <div class=\"flex gap-x-1\">\n <div\n v-for=\"(queryGroup, status) in queriesGrouped\"\n :key=\"status\"\n class=\"theme-neutral bg-(--ui-bg-muted) rounded p-1 text-xs font-semibold flex items-center gap-x-1\"\n :class=\"(queryGroup?.length ?? 0) === 0 ? 'text-(--ui-text-muted)' : ''\"\n :title=\"`${queryGroup?.length ?? 0} ${status} queries (after filtering)`\"\n >\n <div class=\"rounded-full size-2\" :class=\"STATUS_COLOR_CLASSES[status].base\" />\n <span class=\"@max-[750px]:hidden\">{{ status }}</span>\n <div\n class=\"px-1.5 py-0.5 rounded min-w-[1.65em] flex justify-center\"\n :class=\"\n (queryGroup?.length ?? 0) === 0\n ? 'bg-(--ui-bg-accented)'\n : [STATUS_COLOR_CLASSES[status].base, STATUS_COLOR_CLASSES[status].text]\n \"\n >\n <span>{{ queryGroup?.length ?? 0 }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <Splitpanes\n ref=\"split-panes-container\"\n class=\"overflow-hidden\"\n :horizontal=\"isNarrow\"\n @resized=\"updatePanesSize\"\n >\n <!-- List Panel -->\n <Pane min-size=\"15\" :size=\"queryListPanelSize[0]\" class=\"flex flex-col\">\n <ol role=\"list\" class=\"divide-y divide-(--ui-border)\" v-if=\"filteredItems.length > 0\">\n <li v-for=\"entry of filteredItems\" :key=\"entry.keyHash\">\n <ListQueryEntry :entry />\n </li>\n </ol>\n <div\n v-else\n class=\"flex flex-col items-center p-4 text-(--ui-text-muted) text-sm text-center gap-2\"\n >\n <i-lucide-inbox class=\"size-8\" />\n <h3 class=\"text-lg\">No queries found</h3>\n <p>Try adjusting your search or perform some mutations in your app.</p>\n </div>\n </Pane>\n\n <!-- Details Panel -->\n <Pane min-size=\"30\" :size=\"queryListPanelSize[1]\" class=\"flex flex-col\">\n <RouterView />\n </Pane>\n </Splitpanes>\n </section>\n</template>\n"],"names":["getQueryStatus","entry","STATUS_COLOR_CLASSES","router","useRouter","now","usePerformanceNow","unselect","event","formattedKey","useFormattedKey","__props","status","computed","_createBlock","_component_RouterLink","_withCtx","isActive","navigate","href","_createElementVNode","_hoisted_1","_unref","_component_i_lucide_loader","_component_i_lucide_check_check","_component_i_lucide_x_octagon","_component_i_lucide_check","_component_i_lucide_pause","$event","_openBlock","_createElementBlock","_hoisted_4","_createVNode","_component_i_lucide_zap","_Fragment","_renderList","key","i","_hoisted_6","_toDisplayString","_hoisted_7","_hoisted_8","_hoisted_9","_component_i_lucide_circle_slash","_cache","_hoisted_10","_component_UCircleProgress","searchQuery","ref","queries","useQueryEntries","filteredItems","items","query","item","v","a","b","queriesGrouped","container","useTemplateRef","isNarrow","useContainerMediaQuery","queryListPanelSize","useLocalStorage","updatePanesSize","panes","pane","_hoisted_2","_hoisted_3","_component_i_lucide_search","_component_UInput","queryGroup","_normalizeClass","Splitpanes","Pane","_component_ListQueryEntry","_component_i_lucide_inbox","_component_RouterView"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { _ as e, o as t, c } from "./index-CYb5D1Be.js";
2
+ const n = {};
3
+ function s(o, r) {
4
+ return t(), c("h1", null, "Settings");
5
+ }
6
+ const a = /* @__PURE__ */ e(n, [["render", s]]);
7
+ export {
8
+ a as default
9
+ };
10
+ //# sourceMappingURL=settings-C2hLj-3B.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings-BHmLo73t.js","sources":["../src/panel/pages/settings.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <h1>Settings</h1>\n</template>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;AAGE,SAAAA,EAAA,GAAAC,EAAiB,YAAb,UAAQ;;;"}
1
+ {"version":3,"file":"settings-C2hLj-3B.js","sources":["../src/panel/pages/settings.vue"],"sourcesContent":["<script setup lang=\"ts\"></script>\n\n<template>\n <h1>Settings</h1>\n</template>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;AAGE,SAAAA,EAAA,GAAAC,EAAiB,YAAb,UAAQ;;;"}