@webx-ui/module-blog 0.8.3 → 0.8.4

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.
@@ -1,15 +1,15 @@
1
- import { provide as Me, inject as Pe, defineComponent as z, useModel as re, computed as T, openBlock as k, createElementBlock as R, createVNode as b, unref as e, createBlock as C, withCtx as g, createTextVNode as W, toDisplayString as V, createCommentVNode as L, mergeModels as ue, ref as S, watch as X, createElementVNode as E, Fragment as Y, renderList as ce, normalizeClass as Ue, onBeforeUnmount as de, normalizeProps as Ie, guardReactiveProps as Re, onMounted as he, createSlots as De, useTemplateRef as ke, nextTick as $e, isRef as pe, withKeys as ie, defineAsyncComponent as le } from "vue";
2
- import { useAdmin as K, useTranslate as H, useErrorText as Z, WxDate as Le, WxDrafts as Be, categoryRoutes as Ee, useBodyKeys as Oe, WxScreenHead as ze, WxScreen as Ke, WxSaveState as He } from "@webx-ui/module-admin";
3
- import { RouterLink as Fe, useRoute as je, onBeforeRouteUpdate as Ge, onBeforeRouteLeave as Je } from "vue-router";
4
- import { WxSelect as ee, WxSkeleton as Te, WxEmpty as Ze, WxText as ve, WxBadge as q, WxButton as O, toast as U, confirm as te, WxSortableList as Qe, WxAction as Xe, useLocales as Ae, WxInput as ae, WxAlert as ne, WxFormItem as J, localizedValue as Ye, WxCard as qe, WxActionBar as et, useModal as ge, WxDialog as me, WxSpace as fe, WxIcon as tt, WxCheckbox as at } from "@webx-ui/core";
1
+ import { provide as Me, inject as Pe, defineComponent as z, useModel as re, computed as $, openBlock as _, createElementBlock as U, createVNode as y, unref as e, createBlock as W, withCtx as v, createTextVNode as N, toDisplayString as C, createCommentVNode as L, mergeModels as ue, ref as A, watch as X, createElementVNode as E, Fragment as Y, renderList as ce, normalizeClass as Re, onBeforeUnmount as de, mergeProps as Ue, normalizeProps as Ie, guardReactiveProps as De, onMounted as he, createSlots as Le, useTemplateRef as ke, nextTick as $e, isRef as pe, withKeys as ie, defineAsyncComponent as le } from "vue";
2
+ import { useAdmin as K, useTranslate as H, useErrorText as Z, WxDate as Be, WxDrafts as Ee, useRemoveConfirm as Oe, categoryRoutes as ze, useBodyKeys as Ke, WxScreenHead as He, WxScreen as Fe, WxSaveState as je } from "@webx-ui/module-admin";
3
+ import { RouterLink as Ge, useRoute as Je, onBeforeRouteUpdate as Ze, onBeforeRouteLeave as Qe } from "vue-router";
4
+ import { WxSelect as ee, WxSkeleton as Te, WxEmpty as Xe, WxText as ve, WxBadge as q, WxButton as O, toast as P, confirm as te, WxSortableList as Ye, WxAction as qe, useLocales as Ae, WxInput as ae, WxAlert as ne, WxFormItem as J, localizedValue as et, WxCard as tt, WxActionBar as at, useModal as ge, WxDialog as me, WxSpace as fe, WxIcon as lt, WxCheckbox as ot } from "@webx-ui/core";
5
5
  const Se = /* @__PURE__ */ Symbol("wx-article-editor");
6
- function Kt(n) {
6
+ function Ft(n) {
7
7
  Me(Se, n);
8
8
  }
9
9
  function Q() {
10
10
  return Pe(Se, null);
11
11
  }
12
- const lt = {
12
+ const st = {
13
13
  module: {
14
14
  group: "Blog",
15
15
  articles: "Articles",
@@ -280,11 +280,11 @@ const lt = {
280
280
  function F() {
281
281
  try {
282
282
  const { i18n: n } = K();
283
- _e.has(n) || (n.defaults("webx-blog", lt), _e.add(n));
283
+ _e.has(n) || (n.defaults("webx-blog", st), _e.add(n));
284
284
  } catch {
285
285
  }
286
286
  }
287
- const ot = { class: "wx-article-author" }, st = /* @__PURE__ */ z({
287
+ const it = { class: "wx-article-author" }, nt = /* @__PURE__ */ z({
288
288
  name: "WxArticleAuthor",
289
289
  __name: "ArticleAuthor",
290
290
  props: /* @__PURE__ */ ue({
@@ -297,31 +297,31 @@ const ot = { class: "wx-article-author" }, st = /* @__PURE__ */ z({
297
297
  setup(n) {
298
298
  const l = n, o = re(n, "modelValue"), i = Q();
299
299
  F();
300
- const t = H("webx-blog"), a = K(), r = T(() => l.disabled || i?.disabled.value === !0), u = T(
300
+ const t = H("webx-blog"), a = K(), r = $(() => l.disabled || i?.disabled.value === !0), u = $(
301
301
  () => (i?.options.value.authors ?? []).map((c) => ({
302
302
  label: c.title,
303
303
  value: c.id
304
304
  }))
305
- ), s = T(() => {
305
+ ), s = $(() => {
306
306
  if (!a.state.manifest?.modules.some((w) => w.id === "authors") || !a.can("blog.authors.manage") || o.value === null) return null;
307
- const m = i?.base ?? "/blog", x = i?.options.value.authors.find((w) => w.id === o.value)?.profile;
307
+ const g = i?.base ?? "/blog", x = i?.options.value.authors.find((w) => w.id === o.value)?.profile;
308
308
  return x ? {
309
- to: { path: `${m}/authors`, query: { author: String(x) } },
309
+ to: { path: `${g}/authors`, query: { author: String(x) } },
310
310
  label: t("author.profile")
311
311
  } : {
312
- to: { path: `${m}/authors`, query: { author: "new", account: String(o.value) } },
312
+ to: { path: `${g}/authors`, query: { author: "new", account: String(o.value) } },
313
313
  label: t("author.make-profile")
314
314
  };
315
- }), v = T({
315
+ }), m = $({
316
316
  get: () => o.value,
317
317
  set: (c) => {
318
318
  o.value = typeof c == "number" ? c : null;
319
319
  }
320
320
  });
321
- return (c, m) => (k(), R("div", ot, [
322
- b(e(ee), {
323
- modelValue: v.value,
324
- "onUpdate:modelValue": m[0] || (m[0] = (x) => v.value = x),
321
+ return (c, g) => (_(), U("div", it, [
322
+ y(e(ee), {
323
+ modelValue: m.value,
324
+ "onUpdate:modelValue": g[0] || (g[0] = (x) => m.value = x),
325
325
  options: u.value,
326
326
  placeholder: e(t)("article.no-author"),
327
327
  disabled: r.value,
@@ -330,13 +330,13 @@ const ot = { class: "wx-article-author" }, st = /* @__PURE__ */ z({
330
330
  teleport: "",
331
331
  "aria-label": e(t)("article.author")
332
332
  }, null, 8, ["modelValue", "options", "placeholder", "disabled", "aria-label"]),
333
- s.value ? (k(), C(e(Fe), {
333
+ s.value ? (_(), W(e(Ge), {
334
334
  key: 0,
335
335
  class: "wx-article-author__profile",
336
336
  to: s.value.to
337
337
  }, {
338
- default: g(() => [
339
- W(V(s.value.label), 1)
338
+ default: v(() => [
339
+ N(C(s.value.label), 1)
340
340
  ]),
341
341
  _: 1
342
342
  }, 8, ["to"])) : L("", !0)
@@ -347,7 +347,7 @@ const ot = { class: "wx-article-author" }, st = /* @__PURE__ */ z({
347
347
  for (const [i, t] of l)
348
348
  o[i] = t;
349
349
  return o;
350
- }, it = /* @__PURE__ */ j(st, [["__scopeId", "data-v-4b275a4c"]]);
350
+ }, rt = /* @__PURE__ */ j(nt, [["__scopeId", "data-v-4b275a4c"]]);
351
351
  function G(n) {
352
352
  const l = `${n.apiPath}/blog/articles`, o = `${n.apiPath}/blog/tags`, i = (t) => t.data;
353
353
  return {
@@ -389,27 +389,27 @@ function G(n) {
389
389
  mergeTags: (t, a, r) => n.http.post(`${o}/merge`, { ids: t, keep: a, redirect: r }).then(i)
390
390
  };
391
391
  }
392
- const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-history" }, ut = { class: "wx-article-history__number" }, ct = { class: "wx-article-history__who" }, dt = /* @__PURE__ */ z({
392
+ const ut = { class: "wx-article-history-tab" }, ct = { class: "wx-article-history" }, dt = { class: "wx-article-history__number" }, ht = { class: "wx-article-history__who" }, pt = /* @__PURE__ */ z({
393
393
  name: "WxArticleHistory",
394
394
  __name: "ArticleHistory",
395
395
  setup(n) {
396
396
  const l = K(), o = G(l), i = Q();
397
397
  F();
398
- const t = H("webx-blog"), a = Z(), r = S(null), u = S(!1), s = T(() => i?.article.value ?? null), v = T(() => l.can("blog.articles.manage")), c = T(
398
+ const t = H("webx-blog"), a = Z(), r = A(null), u = A(!1), s = $(() => i?.article.value ?? null), m = $(() => l.can("blog.articles.manage")), c = $(
399
399
  () => s.value?.status === "published" || s.value?.status === "modified" ? r.value?.[0]?.number ?? null : null
400
400
  );
401
- async function m() {
401
+ async function g() {
402
402
  const w = s.value;
403
403
  if (w)
404
404
  try {
405
405
  r.value = await o.versions(w.id);
406
- } catch (h) {
407
- r.value = [], U.danger(a(h));
406
+ } catch (p) {
407
+ r.value = [], P.danger(a(p));
408
408
  }
409
409
  }
410
410
  async function x(w) {
411
- const h = s.value;
412
- if (!(!h || !await te({
411
+ const p = s.value;
412
+ if (!(!p || !await te({
413
413
  title: t("article.restore-title", { number: w.number }),
414
414
  message: t("article.restore-text"),
415
415
  confirmText: t("article.restore-version"),
@@ -417,9 +417,9 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
417
417
  }))) {
418
418
  u.value = !0;
419
419
  try {
420
- await o.restoreVersion(h.id, w.number), await i?.reload(), U.success(t("article.restored-version", { number: w.number }));
420
+ await o.restoreVersion(p.id, w.number), await i?.reload(), P.success(t("article.restored-version", { number: w.number }));
421
421
  } catch (M) {
422
- U.danger(a(M));
422
+ P.danger(a(M));
423
423
  } finally {
424
424
  u.value = !1;
425
425
  }
@@ -428,78 +428,78 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
428
428
  return X(
429
429
  () => [s.value?.id, s.value?.published_at, s.value?.updated_at],
430
430
  () => {
431
- m();
431
+ g();
432
432
  },
433
433
  { immediate: !0 }
434
- ), (w, h) => (k(), R("div", nt, [
435
- E("div", rt, [
436
- r.value === null ? (k(), C(e(Te), {
434
+ ), (w, p) => (_(), U("div", ut, [
435
+ E("div", ct, [
436
+ r.value === null ? (_(), W(e(Te), {
437
437
  key: 0,
438
438
  class: "wx-article-history__ghost",
439
439
  rows: 3
440
- })) : r.value.length === 0 ? (k(), C(e(Ze), {
440
+ })) : r.value.length === 0 ? (_(), W(e(Xe), {
441
441
  key: 1,
442
442
  description: e(t)("article.history-empty")
443
- }, null, 8, ["description"])) : (k(!0), R(Y, { key: 2 }, ce(r.value, (f) => (k(), R("div", {
443
+ }, null, 8, ["description"])) : (_(!0), U(Y, { key: 2 }, ce(r.value, (f) => (_(), U("div", {
444
444
  key: f.number,
445
- class: Ue(["wx-article-history__row", { "is-live": f.number === c.value }])
445
+ class: Re(["wx-article-history__row", { "is-live": f.number === c.value }])
446
446
  }, [
447
- E("code", ut, V(e(t)("article.version", { number: f.number })), 1),
448
- E("div", ct, [
449
- f.created_at ? (k(), C(e(Le), {
447
+ E("code", dt, C(e(t)("article.version", { number: f.number })), 1),
448
+ E("div", ht, [
449
+ f.created_at ? (_(), W(e(Be), {
450
450
  key: 0,
451
451
  value: f.created_at,
452
452
  size: "md",
453
453
  tone: "default"
454
454
  }, null, 8, ["value"])) : L("", !0),
455
- b(e(ve), {
455
+ y(e(ve), {
456
456
  size: "sm",
457
457
  tone: "muted"
458
458
  }, {
459
- default: g(() => [
460
- W(V(f.author ?? e(t)(`article.source-${f.source}`)) + " ", 1),
461
- f.comment ? (k(), R(Y, { key: 0 }, [
462
- W(" · " + V(f.comment), 1)
459
+ default: v(() => [
460
+ N(C(f.author ?? e(t)(`article.source-${f.source}`)) + " ", 1),
461
+ f.comment ? (_(), U(Y, { key: 0 }, [
462
+ N(" · " + C(f.comment), 1)
463
463
  ], 64)) : L("", !0)
464
464
  ]),
465
465
  _: 2
466
466
  }, 1024)
467
467
  ]),
468
- f.number === c.value ? (k(), C(e(q), {
468
+ f.number === c.value ? (_(), W(e(q), {
469
469
  key: 0,
470
470
  type: "success",
471
471
  dot: ""
472
472
  }, {
473
- default: g(() => [
474
- W(V(e(t)("article.version-live")), 1)
473
+ default: v(() => [
474
+ N(C(e(t)("article.version-live")), 1)
475
475
  ]),
476
476
  _: 1
477
477
  })) : L("", !0),
478
- v.value && f.number !== c.value ? (k(), C(e(O), {
478
+ m.value && f.number !== c.value ? (_(), W(e(O), {
479
479
  key: 1,
480
480
  size: "sm",
481
481
  variant: "outline",
482
482
  loading: u.value,
483
483
  onClick: (M) => x(f)
484
484
  }, {
485
- default: g(() => [
486
- W(V(e(t)("article.restore-version")), 1)
485
+ default: v(() => [
486
+ N(C(e(t)("article.restore-version")), 1)
487
487
  ]),
488
488
  _: 1
489
489
  }, 8, ["loading", "onClick"])) : L("", !0)
490
490
  ], 2))), 128))
491
491
  ]),
492
- b(e(Be), {
492
+ y(e(Ee), {
493
493
  id: s.value?.id,
494
494
  entity: "articles",
495
495
  screen: "blog.article-form",
496
- "can-restore": v.value,
496
+ "can-restore": m.value,
497
497
  stamp: [s.value?.published_at, s.value?.updated_at],
498
- onRestored: h[0] || (h[0] = (f) => e(i)?.reload())
498
+ onRestored: p[0] || (p[0] = (f) => e(i)?.reload())
499
499
  }, null, 8, ["id", "can-restore", "stamp"])
500
500
  ]));
501
501
  }
502
- }), ht = /* @__PURE__ */ j(dt, [["__scopeId", "data-v-0052c4f9"]]), pt = { class: "wx-article-related" }, vt = { class: "wx-article-related__name" }, gt = 250, mt = 10, ft = /* @__PURE__ */ z({
502
+ }), vt = /* @__PURE__ */ j(pt, [["__scopeId", "data-v-0052c4f9"]]), gt = { class: "wx-article-related" }, mt = { class: "wx-article-related__name" }, ft = 250, bt = 10, wt = /* @__PURE__ */ z({
503
503
  name: "WxArticleRelated",
504
504
  __name: "ArticleRelated",
505
505
  props: /* @__PURE__ */ ue({
@@ -512,119 +512,120 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
512
512
  setup(n) {
513
513
  const l = n, o = re(n, "modelValue"), i = K(), t = G(i), a = Q();
514
514
  F();
515
- const r = H("webx-blog"), u = Z(), s = T(() => l.disabled || a?.disabled.value === !0), v = S(/* @__PURE__ */ new Map()), c = S([]);
516
- let m;
515
+ const r = H("webx-blog"), u = Oe(), s = Z(), m = $(() => l.disabled || a?.disabled.value === !0), c = A(/* @__PURE__ */ new Map()), g = A([]);
516
+ let x;
517
517
  X(
518
518
  () => a?.related.value,
519
- (_) => {
520
- const y = new Map(v.value);
521
- for (const $ of _ ?? []) y.set($.id, $.title);
522
- v.value = y;
519
+ (d) => {
520
+ const k = new Map(c.value);
521
+ for (const S of d ?? []) k.set(S.id, S.title);
522
+ c.value = k;
523
523
  },
524
524
  { immediate: !0, deep: !0 }
525
525
  );
526
- const x = T({
527
- get: () => o.value.map((_) => ({ id: _, title: v.value.get(_) ?? `#${_}` })),
528
- set: (_) => {
529
- o.value = _.map((y) => y.id);
526
+ const w = $({
527
+ get: () => o.value.map((d) => ({ id: d, title: c.value.get(d) ?? `#${d}` })),
528
+ set: (d) => {
529
+ o.value = d.map((k) => k.id);
530
530
  }
531
- }), w = T(
532
- () => c.value.filter((_) => !o.value.includes(_.id)).map((_) => ({ label: _.title, value: _.id }))
531
+ }), p = $(
532
+ () => g.value.filter((d) => !o.value.includes(d.id)).map((d) => ({ label: d.title, value: d.id }))
533
533
  );
534
- async function h(_) {
535
- const y = a?.article.value?.id;
534
+ async function f(d) {
535
+ const k = a?.article.value?.id;
536
536
  try {
537
- const $ = await t.articles({ q: _, per_page: mt });
538
- c.value = $.data.filter((p) => p.id !== y).map((p) => ({ id: p.id, title: p.title }));
539
- const P = new Map(v.value);
540
- for (const p of c.value) P.set(p.id, p.title);
541
- v.value = P;
542
- } catch ($) {
543
- U.danger(u($));
537
+ const S = await t.articles({ q: d, per_page: bt });
538
+ g.value = S.data.filter((V) => V.id !== k).map((V) => ({ id: V.id, title: V.title }));
539
+ const b = new Map(c.value);
540
+ for (const V of g.value) b.set(V.id, V.title);
541
+ c.value = b;
542
+ } catch (S) {
543
+ P.danger(s(S));
544
544
  }
545
545
  }
546
- function f(_) {
547
- clearTimeout(m), m = setTimeout(() => {
548
- h(_);
549
- }, gt);
546
+ function M(d) {
547
+ clearTimeout(x), x = setTimeout(() => {
548
+ f(d);
549
+ }, ft);
550
550
  }
551
- function M(_) {
552
- typeof _ != "number" || o.value.includes(_) || (o.value = [...o.value, _]);
551
+ function I(d) {
552
+ typeof d != "number" || o.value.includes(d) || (o.value = [...o.value, d]);
553
553
  }
554
- function D(_) {
555
- o.value = o.value.filter((y) => y !== _);
554
+ function D(d) {
555
+ o.value = o.value.filter((k) => k !== d);
556
556
  }
557
557
  return X(
558
558
  () => a?.article.value?.id,
559
559
  () => {
560
- h("");
560
+ f("");
561
561
  },
562
562
  { immediate: !0 }
563
- ), de(() => clearTimeout(m)), (_, y) => (k(), R("div", pt, [
564
- b(e(Qe), {
565
- modelValue: x.value,
566
- "onUpdate:modelValue": y[0] || (y[0] = ($) => x.value = $),
563
+ ), de(() => clearTimeout(x)), (d, k) => (_(), U("div", gt, [
564
+ y(e(Ye), {
565
+ modelValue: w.value,
566
+ "onUpdate:modelValue": k[0] || (k[0] = (S) => w.value = S),
567
567
  plain: "",
568
568
  size: "sm",
569
569
  "item-key": "id",
570
570
  "item-label": "title",
571
- disabled: s.value,
571
+ disabled: m.value,
572
572
  "empty-text": e(r)("article.related-empty"),
573
573
  "aria-label": e(r)("article.related")
574
574
  }, {
575
- default: g(({ item: $ }) => [
576
- E("span", vt, V($.title), 1)
575
+ default: v(({ item: S }) => [
576
+ E("span", mt, C(S.title), 1)
577
577
  ]),
578
- actions: g(({ item: $ }) => [
579
- b(e(Xe), {
578
+ actions: v(({ item: S }) => [
579
+ y(e(qe), Ue({
580
580
  type: "remove",
581
581
  size: "sm",
582
- disabled: s.value,
583
- title: e(r)("article.related-remove"),
584
- onClick: (P) => D($.id)
585
- }, null, 8, ["disabled", "title", "onClick"])
582
+ disabled: m.value,
583
+ title: e(r)("article.related-remove")
584
+ }, e(u), {
585
+ onClick: (b) => D(S.id)
586
+ }), null, 16, ["disabled", "title", "onClick"])
586
587
  ]),
587
588
  _: 1
588
589
  }, 8, ["modelValue", "disabled", "empty-text", "aria-label"]),
589
- b(e(ee), {
590
+ y(e(ee), {
590
591
  "model-value": null,
591
- options: w.value,
592
+ options: p.value,
592
593
  placeholder: e(r)("article.related-add"),
593
594
  "empty-text": e(r)("article.related-nothing"),
594
- disabled: s.value,
595
+ disabled: m.value,
595
596
  filterable: "",
596
597
  teleport: "",
597
598
  "aria-label": e(r)("article.related-add"),
598
- onSearch: f,
599
- "onUpdate:modelValue": M
599
+ onSearch: M,
600
+ "onUpdate:modelValue": I
600
601
  }, null, 8, ["options", "placeholder", "empty-text", "disabled", "aria-label"])
601
602
  ]));
602
603
  }
603
- }), bt = /* @__PURE__ */ j(ft, [["__scopeId", "data-v-164e86fe"]]), wt = { class: "wx-article-slug" }, yt = { class: "wx-article-slug__prefix" }, xt = /* @__PURE__ */ z({
604
+ }), yt = /* @__PURE__ */ j(wt, [["__scopeId", "data-v-ac2e96f8"]]), xt = { class: "wx-article-slug" }, _t = { class: "wx-article-slug__prefix" }, kt = /* @__PURE__ */ z({
604
605
  name: "WxArticleSlug",
605
606
  inheritAttrs: !1,
606
607
  __name: "ArticleSlug",
607
608
  setup(n) {
608
609
  const l = Q(), o = Ae();
609
610
  F();
610
- const i = H("webx-blog"), t = T(() => {
611
+ const i = H("webx-blog"), t = $(() => {
611
612
  const u = l?.prefix.value ?? "";
612
613
  return u === "" ? "/" : `/${u}/`;
613
- }), a = T(() => {
614
+ }), a = $(() => {
614
615
  const u = l?.values.value.slug;
615
616
  return typeof u == "string" ? u : u?.[o.active.value] ?? "";
616
- }), r = T(() => {
617
+ }), r = $(() => {
617
618
  const u = l?.article.value?.path;
618
619
  return typeof u == "string" && a.value !== "" && `${t.value}${a.value}` != `/${u}`;
619
620
  });
620
- return (u, s) => (k(), R("div", wt, [
621
- b(e(ae), Ie(Re(u.$attrs)), {
622
- prefix: g(() => [
623
- E("span", yt, V(t.value), 1)
621
+ return (u, s) => (_(), U("div", xt, [
622
+ y(e(ae), Ie(De(u.$attrs)), {
623
+ prefix: v(() => [
624
+ E("span", _t, C(t.value), 1)
624
625
  ]),
625
626
  _: 1
626
627
  }, 16),
627
- r.value ? (k(), C(e(ne), {
628
+ r.value ? (_(), W(e(ne), {
628
629
  key: 0,
629
630
  type: "info",
630
631
  variant: "soft",
@@ -632,10 +633,10 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
632
633
  }, null, 8, ["description"])) : L("", !0)
633
634
  ]));
634
635
  }
635
- }), _t = /* @__PURE__ */ j(xt, [["__scopeId", "data-v-5da20e5e"]]), kt = { class: "wx-article-tags" }, $t = {
636
+ }), $t = /* @__PURE__ */ j(kt, [["__scopeId", "data-v-5da20e5e"]]), Tt = { class: "wx-article-tags" }, At = {
636
637
  key: 0,
637
638
  class: "wx-article-tags__chips"
638
- }, Tt = { class: "wx-article-tags__pick" }, At = 250, St = /* @__PURE__ */ z({
639
+ }, St = { class: "wx-article-tags__pick" }, Vt = 250, Ct = /* @__PURE__ */ z({
639
640
  name: "WxArticleTags",
640
641
  __name: "ArticleTags",
641
642
  props: /* @__PURE__ */ ue({
@@ -648,62 +649,62 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
648
649
  setup(n) {
649
650
  const l = n, o = re(n, "modelValue"), i = K(), t = G(i), a = Q();
650
651
  F();
651
- const r = H("webx-blog"), u = Z(), s = T(() => l.disabled || a?.disabled.value === !0), v = S(/* @__PURE__ */ new Map()), c = S([]), m = S(""), x = S(!1);
652
+ const r = H("webx-blog"), u = Z(), s = $(() => l.disabled || a?.disabled.value === !0), m = A(/* @__PURE__ */ new Map()), c = A([]), g = A(""), x = A(!1);
652
653
  let w;
653
654
  X(
654
655
  () => a?.article.value?.tags,
655
- (p) => {
656
- const N = new Map(v.value);
657
- for (const I of p ?? []) N.set(I.id, I.title);
658
- v.value = N;
656
+ (b) => {
657
+ const V = new Map(m.value);
658
+ for (const R of b ?? []) V.set(R.id, R.title);
659
+ m.value = V;
659
660
  },
660
661
  { immediate: !0, deep: !0 }
661
662
  );
662
- const h = T(
663
- () => o.value.map((p) => ({ id: p, title: v.value.get(p) ?? `#${p}` }))
664
- ), f = T(
665
- () => c.value.filter((p) => !o.value.includes(p.id)).map((p) => ({
663
+ const p = $(
664
+ () => o.value.map((b) => ({ id: b, title: m.value.get(b) ?? `#${b}` }))
665
+ ), f = $(
666
+ () => c.value.filter((b) => !o.value.includes(b.id)).map((b) => ({
666
667
  // The count is part of the label rather than a column: a select draws a line of text, and
667
668
  // the number is what the reader is choosing between two near-identical words on.
668
- label: r("article.tag-option", { title: p.title, count: p.articles_count }),
669
- value: p.id
669
+ label: r("article.tag-option", { title: b.title, count: b.articles_count }),
670
+ value: b.id
670
671
  }))
671
- ), M = T(() => {
672
- const p = m.value.trim();
673
- if (p === "") return null;
674
- const N = (I) => I.toLowerCase() === p.toLowerCase();
675
- return c.value.some((I) => N(I.title)) ? null : p;
672
+ ), M = $(() => {
673
+ const b = g.value.trim();
674
+ if (b === "") return null;
675
+ const V = (R) => R.toLowerCase() === b.toLowerCase();
676
+ return c.value.some((R) => V(R.title)) ? null : b;
676
677
  });
677
- async function D() {
678
+ async function I() {
678
679
  try {
679
- c.value = await t.tags(m.value);
680
- const p = new Map(v.value);
681
- for (const N of c.value) p.set(N.id, N.title);
682
- v.value = p;
683
- } catch (p) {
684
- U.danger(u(p));
680
+ c.value = await t.tags(g.value);
681
+ const b = new Map(m.value);
682
+ for (const V of c.value) b.set(V.id, V.title);
683
+ m.value = b;
684
+ } catch (b) {
685
+ P.danger(u(b));
685
686
  }
686
687
  }
687
- function _(p) {
688
- m.value = p, clearTimeout(w), w = setTimeout(() => {
689
- D();
690
- }, At);
688
+ function D(b) {
689
+ g.value = b, clearTimeout(w), w = setTimeout(() => {
690
+ I();
691
+ }, Vt);
691
692
  }
692
- function y(p) {
693
- typeof p != "number" || o.value.includes(p) || (o.value = [...o.value, p], m.value = "");
693
+ function d(b) {
694
+ typeof b != "number" || o.value.includes(b) || (o.value = [...o.value, b], g.value = "");
694
695
  }
695
- function $(p) {
696
- o.value = o.value.filter((N) => N !== p);
696
+ function k(b) {
697
+ o.value = o.value.filter((V) => V !== b);
697
698
  }
698
- async function P() {
699
- const p = M.value;
700
- if (!(p === null || x.value)) {
699
+ async function S() {
700
+ const b = M.value;
701
+ if (!(b === null || x.value)) {
701
702
  x.value = !0;
702
703
  try {
703
- const N = await t.createTag({ title: p });
704
- v.value = new Map(v.value).set(N.id, N.title), c.value = [N, ...c.value], y(N.id);
705
- } catch (N) {
706
- U.danger(u(N));
704
+ const V = await t.createTag({ title: b });
705
+ m.value = new Map(m.value).set(V.id, V.title), c.value = [V, ...c.value], d(V.id);
706
+ } catch (V) {
707
+ P.danger(u(V));
707
708
  } finally {
708
709
  x.value = !1;
709
710
  }
@@ -712,35 +713,35 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
712
713
  return X(
713
714
  () => a?.article.value?.id,
714
715
  () => {
715
- D();
716
+ I();
716
717
  },
717
718
  { immediate: !0 }
718
- ), de(() => clearTimeout(w)), (p, N) => (k(), R("div", kt, [
719
- h.value.length > 0 ? (k(), R("div", $t, [
720
- (k(!0), R(Y, null, ce(h.value, (I) => (k(), C(e(q), {
721
- key: I.id,
719
+ ), de(() => clearTimeout(w)), (b, V) => (_(), U("div", Tt, [
720
+ p.value.length > 0 ? (_(), U("div", At, [
721
+ (_(!0), U(Y, null, ce(p.value, (R) => (_(), W(e(q), {
722
+ key: R.id,
722
723
  type: "default",
723
724
  closable: !s.value,
724
725
  "close-label": e(r)("article.tag-remove"),
725
- onClose: (oe) => $(I.id)
726
+ onClose: (oe) => k(R.id)
726
727
  }, {
727
- default: g(() => [
728
- W(V(I.title), 1)
728
+ default: v(() => [
729
+ N(C(R.title), 1)
729
730
  ]),
730
731
  _: 2
731
732
  }, 1032, ["closable", "close-label", "onClose"]))), 128))
732
- ])) : (k(), C(e(ve), {
733
+ ])) : (_(), W(e(ve), {
733
734
  key: 1,
734
735
  size: "sm",
735
736
  tone: "muted"
736
737
  }, {
737
- default: g(() => [
738
- W(V(e(r)("article.tags-empty")), 1)
738
+ default: v(() => [
739
+ N(C(e(r)("article.tags-empty")), 1)
739
740
  ]),
740
741
  _: 1
741
742
  })),
742
- E("div", Tt, [
743
- b(e(ee), {
743
+ E("div", St, [
744
+ y(e(ee), {
744
745
  "model-value": null,
745
746
  options: f.value,
746
747
  placeholder: e(r)("article.tag-add"),
@@ -749,36 +750,36 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
749
750
  filterable: "",
750
751
  teleport: "",
751
752
  "aria-label": e(r)("article.tag-add"),
752
- onSearch: _,
753
- "onUpdate:modelValue": y
753
+ onSearch: D,
754
+ "onUpdate:modelValue": d
754
755
  }, null, 8, ["options", "placeholder", "empty-text", "disabled", "aria-label"]),
755
- M.value ? (k(), C(e(O), {
756
+ M.value ? (_(), W(e(O), {
756
757
  key: 0,
757
758
  variant: "outline",
758
759
  icon: "plus",
759
760
  loading: x.value,
760
761
  disabled: s.value,
761
- onClick: P
762
+ onClick: S
762
763
  }, {
763
- default: g(() => [
764
- W(V(e(r)("article.tag-create", { title: M.value })), 1)
764
+ default: v(() => [
765
+ N(C(e(r)("article.tag-create", { title: M.value })), 1)
765
766
  ]),
766
767
  _: 1
767
768
  }, 8, ["loading", "disabled"])) : L("", !0)
768
769
  ])
769
770
  ]));
770
771
  }
771
- }), Vt = /* @__PURE__ */ j(St, [["__scopeId", "data-v-faf5adec"]]), Ct = /* @__PURE__ */ z({
772
+ }), Wt = /* @__PURE__ */ j(Ct, [["__scopeId", "data-v-faf5adec"]]), Nt = /* @__PURE__ */ z({
772
773
  name: "WxArticleUnpublish",
773
774
  __name: "ArticleUnpublish",
774
775
  setup(n) {
775
776
  const l = K(), o = G(l), i = Q();
776
777
  F();
777
- const t = H("webx-blog"), a = Z(), r = S(!1), u = T(() => {
778
+ const t = H("webx-blog"), a = Z(), r = A(!1), u = $(() => {
778
779
  const c = i?.article.value?.status;
779
780
  return c === "published" || c === "modified" || c === "scheduled";
780
- }), s = T(() => i?.disabled.value === !0 || r.value);
781
- async function v() {
781
+ }), s = $(() => i?.disabled.value === !0 || r.value);
782
+ async function m() {
782
783
  const c = i?.article.value;
783
784
  if (!(!c || !await te({
784
785
  title: t("article.unpublish-title", { title: c.title }),
@@ -789,30 +790,30 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
789
790
  }))) {
790
791
  r.value = !0;
791
792
  try {
792
- await o.unpublish(c.id), await i?.reload(), U.success(t("panel.unpublished-done"));
793
+ await o.unpublish(c.id), await i?.reload(), P.success(t("panel.unpublished-done"));
793
794
  } catch (x) {
794
- U.danger(a(x));
795
+ P.danger(a(x));
795
796
  } finally {
796
797
  r.value = !1;
797
798
  }
798
799
  }
799
800
  }
800
- return (c, m) => u.value && e(i)?.canManage ? (k(), C(e(J), {
801
+ return (c, g) => u.value && e(i)?.canManage ? (_(), W(e(J), {
801
802
  key: 0,
802
803
  class: "wx-article-unpublish",
803
804
  help: e(t)("article.unpublish-help")
804
805
  }, {
805
- default: g(() => [
806
- b(e(O), {
806
+ default: v(() => [
807
+ y(e(O), {
807
808
  variant: "outline",
808
809
  type: "danger",
809
810
  icon: "eye-off",
810
811
  loading: r.value,
811
812
  disabled: s.value,
812
- onClick: v
813
+ onClick: m
813
814
  }, {
814
- default: g(() => [
815
- W(V(e(t)("panel.unpublish")), 1)
815
+ default: v(() => [
816
+ N(C(e(t)("panel.unpublish")), 1)
816
817
  ]),
817
818
  _: 1
818
819
  }, 8, ["loading", "disabled"])
@@ -820,8 +821,8 @@ const nt = { class: "wx-article-history-tab" }, rt = { class: "wx-article-histor
820
821
  _: 1
821
822
  }, 8, ["help"])) : L("", !0);
822
823
  }
823
- }), Wt = /* @__PURE__ */ j(Ct, [["__scopeId", "data-v-c311cff2"]]);
824
- function Nt(n = "/blog") {
824
+ }), Mt = /* @__PURE__ */ j(Nt, [["__scopeId", "data-v-c311cff2"]]);
825
+ function Pt(n = "/blog") {
825
826
  return {
826
827
  api: "blog/rubrics",
827
828
  path: `${n}/rubrics`,
@@ -850,7 +851,7 @@ function Nt(n = "/blog") {
850
851
  }
851
852
  };
852
853
  }
853
- function Ht(n = {}) {
854
+ function jt(n = {}) {
854
855
  const l = n.path ?? "/blog";
855
856
  return [
856
857
  {
@@ -862,13 +863,13 @@ function Ht(n = {}) {
862
863
  {
863
864
  path: `${l}/articles`,
864
865
  name: "webx.blog.articles",
865
- component: () => import("./ArticlesPage-CI-Nwhpy.js"),
866
+ component: () => import("./ArticlesPage-BnHi8gF0.js"),
866
867
  props: { base: l }
867
868
  },
868
869
  {
869
870
  path: `${l}/articles/:id(\\d+)`,
870
871
  name: "webx.blog.articles.edit",
871
- component: () => import("./ArticleEditorPage-DViFCNvm.js"),
872
+ component: () => import("./ArticleEditorPage-Bkb5YrLy.js"),
872
873
  props: { base: l }
873
874
  }
874
875
  ],
@@ -887,12 +888,12 @@ function Ht(n = {}) {
887
888
  * description — it is configuration the editor was handed with the record.
888
889
  */
889
890
  types: {
890
- "wx-article-slug": { component: _t, kind: "field" },
891
- "wx-article-author": { component: it, kind: "field" },
892
- "wx-article-tags": { component: Vt, kind: "field" },
893
- "wx-article-related": { component: bt, kind: "field" },
894
- "wx-article-unpublish": { component: Wt, kind: "display" },
895
- "wx-article-history": { component: ht, kind: "display" }
891
+ "wx-article-slug": { component: $t, kind: "field" },
892
+ "wx-article-author": { component: rt, kind: "field" },
893
+ "wx-article-tags": { component: Wt, kind: "field" },
894
+ "wx-article-related": { component: yt, kind: "field" },
895
+ "wx-article-unpublish": { component: Mt, kind: "display" },
896
+ "wx-article-history": { component: vt, kind: "display" }
896
897
  }
897
898
  },
898
899
  {
@@ -900,7 +901,7 @@ function Ht(n = {}) {
900
901
  path: `${l}/rubrics`,
901
902
  // The list and the page of one rubric are the panel's shared category screens (§3.6 of
902
903
  // the services spec); what is the blog's is the description they are handed.
903
- routes: Ee(Nt(l))
904
+ routes: ze(Pt(l))
904
905
  },
905
906
  {
906
907
  id: "tags",
@@ -909,7 +910,7 @@ function Ht(n = {}) {
909
910
  {
910
911
  path: `${l}/tags`,
911
912
  name: "webx.blog.tags",
912
- component: () => import("./TagsPage-rFfpCqPs.js"),
913
+ component: () => import("./TagsPage-BnLVnx5a.js"),
913
914
  props: { base: l }
914
915
  }
915
916
  ]
@@ -923,14 +924,14 @@ function Ht(n = {}) {
923
924
  {
924
925
  path: `${l}/authors`,
925
926
  name: "webx.blog.authors",
926
- component: () => import("./AuthorsPage-BN6sRqyE.js"),
927
+ component: () => import("./AuthorsPage-DSLsX44M.js"),
927
928
  props: { base: l }
928
929
  }
929
930
  ]
930
931
  }
931
932
  ];
932
933
  }
933
- function Mt(n) {
934
+ function Rt(n) {
934
935
  const l = `${n.apiPath}/blog/authors`, o = (i) => i.data;
935
936
  return {
936
937
  list: (i = "") => {
@@ -945,10 +946,10 @@ function Mt(n) {
945
946
  })
946
947
  };
947
948
  }
948
- const Pt = {
949
+ const Ut = {
949
950
  key: 1,
950
951
  class: "wx-author__account"
951
- }, Ut = /* @__PURE__ */ z({
952
+ }, It = /* @__PURE__ */ z({
952
953
  name: "WxAuthorPane",
953
954
  __name: "AuthorPane",
954
955
  props: {
@@ -957,34 +958,34 @@ const Pt = {
957
958
  },
958
959
  emits: ["back", "saved", "created", "removed"],
959
960
  setup(n, { emit: l }) {
960
- const o = n, i = l, t = K(), a = Mt(t), r = je(), u = Ae();
961
+ const o = n, i = l, t = K(), a = Rt(t), r = Je(), u = Ae();
961
962
  F();
962
- const s = H("webx-blog"), v = Z(), c = S(null), m = S({}), x = S(""), w = S([]), h = S(null), f = S(!0), M = S(!1), D = S({}), _ = T(() => t.can("blog.authors.manage")), y = T(() => JSON.stringify(m.value)), $ = T(
963
- () => x.value !== "" && (y.value !== x.value || h.value !== null)
964
- ), P = T(() => M.value ? "saving" : $.value || o.id === null ? "unsaved" : "saved"), p = T(() => {
965
- const d = m.value.title, A = o.id === null ? s("author.new") : c.value?.name ?? "";
966
- return Ye(d, u.active.value, A) || s("author.untitled");
967
- }), N = T(
968
- () => w.value.map((d) => ({
969
- label: d.articles_count > 0 ? `${d.name} · ${s("author.articles", { count: d.articles_count })}` : d.name,
970
- value: d.id
963
+ const s = H("webx-blog"), m = Z(), c = A(null), g = A({}), x = A(""), w = A([]), p = A(null), f = A(!0), M = A(!1), I = A({}), D = $(() => t.can("blog.authors.manage")), d = $(() => JSON.stringify(g.value)), k = $(
964
+ () => x.value !== "" && (d.value !== x.value || p.value !== null)
965
+ ), S = $(() => M.value ? "saving" : k.value || o.id === null ? "unsaved" : "saved"), b = $(() => {
966
+ const h = g.value.title, T = o.id === null ? s("author.new") : c.value?.name ?? "";
967
+ return et(h, u.active.value, T) || s("author.untitled");
968
+ }), V = $(
969
+ () => w.value.map((h) => ({
970
+ label: h.articles_count > 0 ? `${h.name} · ${s("author.articles", { count: h.articles_count })}` : h.name,
971
+ value: h.id
971
972
  }))
972
- ), I = T({
973
- get: () => h.value,
974
- set: (d) => {
975
- h.value = typeof d == "number" ? d : null;
976
- const A = w.value.find((Ne) => Ne.id === h.value), B = m.value.title, se = u.list.value[0]?.code;
977
- A && se && !(B?.[se] ?? "").trim() && (m.value = { ...m.value, title: { ...B ?? {}, [se]: A.name } });
973
+ ), R = $({
974
+ get: () => p.value,
975
+ set: (h) => {
976
+ p.value = typeof h == "number" ? h : null;
977
+ const T = w.value.find((Ne) => Ne.id === p.value), B = g.value.title, se = u.list.value[0]?.code;
978
+ T && se && !(B?.[se] ?? "").trim() && (g.value = { ...g.value, title: { ...B ?? {}, [se]: T.name } });
978
979
  }
979
980
  });
980
- function oe(d) {
981
- c.value = d.author, m.value = d.values, x.value = JSON.stringify(d.values), h.value = null;
981
+ function oe(h) {
982
+ c.value = h.author, g.value = h.values, x.value = JSON.stringify(h.values), p.value = null;
982
983
  }
983
984
  async function Ve() {
984
985
  f.value = !0;
985
986
  try {
986
987
  if (o.id === null) {
987
- const d = {
988
+ const h = {
988
989
  title: {},
989
990
  slug: {},
990
991
  role: {},
@@ -993,64 +994,64 @@ const Pt = {
993
994
  socials: [],
994
995
  is_public: !1
995
996
  };
996
- m.value = d, x.value = JSON.stringify(d), w.value = await a.accounts();
997
- const A = Number(r.query.account);
998
- w.value.some((B) => B.id === A) && (I.value = A);
997
+ g.value = h, x.value = JSON.stringify(h), w.value = await a.accounts();
998
+ const T = Number(r.query.account);
999
+ w.value.some((B) => B.id === T) && (R.value = T);
999
1000
  } else
1000
1001
  oe(await a.get(o.id));
1001
- } catch (d) {
1002
- U.danger(v(d)), i("back");
1002
+ } catch (h) {
1003
+ P.danger(m(h)), i("back");
1003
1004
  } finally {
1004
1005
  f.value = !1;
1005
1006
  }
1006
1007
  }
1007
1008
  async function be() {
1008
- if (!(M.value || !_.value)) {
1009
- M.value = !0, D.value = {};
1009
+ if (!(M.value || !D.value)) {
1010
+ M.value = !0, I.value = {};
1010
1011
  try {
1011
- const d = o.id === null;
1012
- if (d && h.value === null) {
1013
- D.value = { user_id: [s("author.account-missing")] }, U.danger(s("author.save-failed"));
1012
+ const h = o.id === null;
1013
+ if (h && p.value === null) {
1014
+ I.value = { user_id: [s("author.account-missing")] }, P.danger(s("author.save-failed"));
1014
1015
  return;
1015
1016
  }
1016
- const A = d ? await a.create(h.value, m.value) : await a.save(o.id, m.value);
1017
- oe(A), U.success(s("author.saved")), i(d ? "created" : "saved", A.author);
1018
- } catch (d) {
1019
- const A = d.body;
1020
- A?.errors ? (D.value = A.errors, U.danger(s("author.save-failed"))) : U.danger(v(d));
1017
+ const T = h ? await a.create(p.value, g.value) : await a.save(o.id, g.value);
1018
+ oe(T), P.success(s("author.saved")), i(h ? "created" : "saved", T.author);
1019
+ } catch (h) {
1020
+ const T = h.body;
1021
+ T?.errors ? (I.value = T.errors, P.danger(s("author.save-failed"))) : P.danger(m(h));
1021
1022
  } finally {
1022
1023
  M.value = !1;
1023
1024
  }
1024
1025
  }
1025
1026
  }
1026
1027
  async function Ce() {
1027
- const d = c.value;
1028
- if (!(!d || !await te({
1029
- title: s("author.delete-title", { name: d.name }),
1028
+ const h = c.value;
1029
+ if (!(!h || !await te({
1030
+ title: s("author.delete-title", { name: h.name }),
1030
1031
  message: s("author.delete-text"),
1031
1032
  confirmText: s("author.delete"),
1032
1033
  cancelText: s("author.cancel"),
1033
1034
  tone: "danger"
1034
1035
  })))
1035
1036
  try {
1036
- await a.remove(d.id), U.success(s("author.deleted")), x.value = y.value, h.value = null, i("removed", d.id);
1037
+ await a.remove(h.id), P.success(s("author.deleted")), x.value = d.value, p.value = null, i("removed", h.id);
1037
1038
  } catch (B) {
1038
- U.danger(v(B));
1039
+ P.danger(m(B));
1039
1040
  }
1040
1041
  }
1041
- function we(d) {
1042
- $.value && d.preventDefault();
1042
+ function we(h) {
1043
+ k.value && h.preventDefault();
1043
1044
  }
1044
- function ye(d) {
1045
- (d.ctrlKey || d.metaKey) && d.key.toLowerCase() === "s" && (d.preventDefault(), ($.value || o.id === null) && be());
1045
+ function ye(h) {
1046
+ (h.ctrlKey || h.metaKey) && h.key.toLowerCase() === "s" && (h.preventDefault(), (k.value || o.id === null) && be());
1046
1047
  }
1047
- Oe(ye), he(() => {
1048
+ Ke(ye), he(() => {
1048
1049
  Ve(), window.addEventListener("beforeunload", we);
1049
1050
  }), de(() => {
1050
1051
  window.removeEventListener("beforeunload", we);
1051
1052
  });
1052
1053
  async function xe() {
1053
- return !$.value || !_.value ? !0 : await te({
1054
+ return !k.value || !D.value ? !0 : await te({
1054
1055
  title: s("author.leave-title"),
1055
1056
  message: s("author.leave-text"),
1056
1057
  confirmText: s("author.leave"),
@@ -1058,19 +1059,19 @@ const Pt = {
1058
1059
  tone: "danger"
1059
1060
  });
1060
1061
  }
1061
- Ge(
1062
- async (d, A) => d.query.author === A.query.author ? !0 : await xe()
1063
- ), Je(xe);
1064
- const We = T(() => {
1065
- const d = [], A = c.value;
1066
- return A?.open && A.url && d.push({
1062
+ Ze(
1063
+ async (h, T) => h.query.author === T.query.author ? !0 : await xe()
1064
+ ), Qe(xe);
1065
+ const We = $(() => {
1066
+ const h = [], T = c.value;
1067
+ return T?.open && T.url && h.push({
1067
1068
  key: "open",
1068
1069
  label: s("author.open-page"),
1069
1070
  icon: "external-link",
1070
1071
  run: () => {
1071
- window.open(A.url, "_blank", "noopener");
1072
+ window.open(T.url, "_blank", "noopener");
1072
1073
  }
1073
- }), _.value && A !== null && d.push({
1074
+ }), D.value && T !== null && h.push({
1074
1075
  key: "delete",
1075
1076
  label: s("author.delete"),
1076
1077
  icon: "trash",
@@ -1079,33 +1080,33 @@ const Pt = {
1079
1080
  run: () => {
1080
1081
  Ce();
1081
1082
  }
1082
- }), d;
1083
+ }), h;
1083
1084
  });
1084
- return (d, A) => (k(), R("div", {
1085
+ return (h, T) => (_(), U("div", {
1085
1086
  class: "wx-author",
1086
1087
  onKeydown: ye
1087
1088
  }, [
1088
- f.value ? (k(), C(e(Te), {
1089
+ f.value ? (_(), W(e(Te), {
1089
1090
  key: 0,
1090
1091
  class: "wx-author__ghost",
1091
1092
  title: "",
1092
1093
  rows: 6
1093
- })) : (k(), R(Y, { key: 1 }, [
1094
- b(e(ze), {
1094
+ })) : (_(), U(Y, { key: 1 }, [
1095
+ y(e(He), {
1095
1096
  level: 3,
1096
1097
  back: !o.inline,
1097
1098
  "back-label": e(s)("author.back"),
1098
- title: p.value,
1099
+ title: b.value,
1099
1100
  actions: We.value,
1100
1101
  "collapse-below": 480,
1101
- onBack: A[0] || (A[0] = (B) => i("back"))
1102
- }, De({ _: 2 }, [
1102
+ onBack: T[0] || (T[0] = (B) => i("back"))
1103
+ }, Le({ _: 2 }, [
1103
1104
  c.value && !c.value.open ? {
1104
1105
  name: "title-after",
1105
- fn: g(() => [
1106
- b(e(q), { dot: "" }, {
1107
- default: g(() => [
1108
- W(V(e(s)("author.page-closed")), 1)
1106
+ fn: v(() => [
1107
+ y(e(q), { dot: "" }, {
1108
+ default: v(() => [
1109
+ N(C(e(s)("author.page-closed")), 1)
1109
1110
  ]),
1110
1111
  _: 1
1111
1112
  })
@@ -1113,20 +1114,20 @@ const Pt = {
1113
1114
  key: "0"
1114
1115
  } : void 0
1115
1116
  ]), 1032, ["back", "back-label", "title", "actions"]),
1116
- o.id === null ? (k(), C(e(qe), { key: 0 }, {
1117
- default: g(() => [
1118
- b(e(J), {
1117
+ o.id === null ? (_(), W(e(tt), { key: 0 }, {
1118
+ default: v(() => [
1119
+ y(e(J), {
1119
1120
  label: e(s)("author.account"),
1120
1121
  help: w.value.length === 0 ? e(s)("author.no-accounts") : e(s)("author.account-help"),
1121
- error: D.value.user_id?.[0],
1122
+ error: I.value.user_id?.[0],
1122
1123
  required: ""
1123
1124
  }, {
1124
- default: g(() => [
1125
- b(e(ee), {
1126
- modelValue: I.value,
1127
- "onUpdate:modelValue": A[1] || (A[1] = (B) => I.value = B),
1128
- options: N.value,
1129
- disabled: !_.value || M.value || w.value.length === 0,
1125
+ default: v(() => [
1126
+ y(e(ee), {
1127
+ modelValue: R.value,
1128
+ "onUpdate:modelValue": T[1] || (T[1] = (B) => R.value = B),
1129
+ options: V.value,
1130
+ disabled: !D.value || M.value || w.value.length === 0,
1130
1131
  filterable: "",
1131
1132
  teleport: "",
1132
1133
  "aria-label": e(s)("author.account")
@@ -1136,27 +1137,27 @@ const Pt = {
1136
1137
  }, 8, ["label", "help", "error"])
1137
1138
  ]),
1138
1139
  _: 1
1139
- })) : c.value?.user ? (k(), R("p", Pt, V(e(s)("author.account")) + ": " + V(c.value.user.name), 1)) : L("", !0),
1140
- b(e(Ke), {
1141
- modelValue: m.value,
1142
- "onUpdate:modelValue": A[2] || (A[2] = (B) => m.value = B),
1140
+ })) : c.value?.user ? (_(), U("p", Ut, C(e(s)("author.account")) + ": " + C(c.value.user.name), 1)) : L("", !0),
1141
+ y(e(Fe), {
1142
+ modelValue: g.value,
1143
+ "onUpdate:modelValue": T[2] || (T[2] = (B) => g.value = B),
1143
1144
  name: "blog.author-form",
1144
- errors: D.value,
1145
- disabled: !_.value || M.value
1145
+ errors: I.value,
1146
+ disabled: !D.value || M.value
1146
1147
  }, null, 8, ["modelValue", "errors", "disabled"]),
1147
- _.value ? (k(), C(e(et), { key: 2 }, {
1148
- state: g(() => [
1149
- b(e(He), { state: P.value }, null, 8, ["state"])
1148
+ D.value ? (_(), W(e(at), { key: 2 }, {
1149
+ state: v(() => [
1150
+ y(e(je), { state: S.value }, null, 8, ["state"])
1150
1151
  ]),
1151
- default: g(() => [
1152
- b(e(O), {
1152
+ default: v(() => [
1153
+ y(e(O), {
1153
1154
  type: "primary",
1154
1155
  loading: M.value,
1155
- disabled: !$.value && o.id !== null,
1156
+ disabled: !k.value && o.id !== null,
1156
1157
  onClick: be
1157
1158
  }, {
1158
- default: g(() => [
1159
- W(V(e(s)("author.save")), 1)
1159
+ default: v(() => [
1160
+ N(C(e(s)("author.save")), 1)
1160
1161
  ]),
1161
1162
  _: 1
1162
1163
  }, 8, ["loading", "disabled"])
@@ -1166,18 +1167,18 @@ const Pt = {
1166
1167
  ], 64))
1167
1168
  ], 32));
1168
1169
  }
1169
- }), Ft = /* @__PURE__ */ j(Ut, [["__scopeId", "data-v-60f7aa2e"]]), jt = /* @__PURE__ */ z({
1170
+ }), Gt = /* @__PURE__ */ j(It, [["__scopeId", "data-v-60f7aa2e"]]), Jt = /* @__PURE__ */ z({
1170
1171
  __name: "TagCreateDialog",
1171
1172
  setup(n) {
1172
1173
  const { open: l, resolve: o, dismiss: i } = ge(), t = K(), a = G(t);
1173
1174
  F();
1174
- const r = H("webx-blog"), u = S(""), s = S(""), v = S(!1), c = S({}), m = ke("field");
1175
+ const r = H("webx-blog"), u = A(""), s = A(""), m = A(!1), c = A({}), g = ke("field");
1175
1176
  he(async () => {
1176
- await $e(), m.value?.querySelector("input")?.focus();
1177
+ await $e(), g.value?.querySelector("input")?.focus();
1177
1178
  });
1178
1179
  async function x() {
1179
- if (!(u.value.trim() === "" || v.value)) {
1180
- v.value = !0, c.value = {};
1180
+ if (!(u.value.trim() === "" || m.value)) {
1181
+ m.value = !0, c.value = {};
1181
1182
  try {
1182
1183
  o(
1183
1184
  await a.createTag({
@@ -1188,36 +1189,36 @@ const Pt = {
1188
1189
  } catch (w) {
1189
1190
  c.value = w.body?.errors ?? {};
1190
1191
  } finally {
1191
- v.value = !1;
1192
+ m.value = !1;
1192
1193
  }
1193
1194
  }
1194
1195
  }
1195
- return (w, h) => (k(), C(e(me), {
1196
+ return (w, p) => (_(), W(e(me), {
1196
1197
  open: e(l),
1197
- "onUpdate:open": h[3] || (h[3] = (f) => pe(l) ? l.value = f : null),
1198
+ "onUpdate:open": p[3] || (p[3] = (f) => pe(l) ? l.value = f : null),
1198
1199
  title: e(r)("tag.new-title"),
1199
1200
  width: 440
1200
1201
  }, {
1201
- footer: g(() => [
1202
- b(e(fe), { size: "sm" }, {
1203
- default: g(() => [
1204
- b(e(O), {
1202
+ footer: v(() => [
1203
+ y(e(fe), { size: "sm" }, {
1204
+ default: v(() => [
1205
+ y(e(O), {
1205
1206
  variant: "outline",
1206
- onClick: h[2] || (h[2] = (f) => e(i)())
1207
+ onClick: p[2] || (p[2] = (f) => e(i)())
1207
1208
  }, {
1208
- default: g(() => [
1209
- W(V(e(r)("tag.cancel")), 1)
1209
+ default: v(() => [
1210
+ N(C(e(r)("tag.cancel")), 1)
1210
1211
  ]),
1211
1212
  _: 1
1212
1213
  }),
1213
- b(e(O), {
1214
+ y(e(O), {
1214
1215
  type: "primary",
1215
- loading: v.value,
1216
+ loading: m.value,
1216
1217
  disabled: u.value.trim() === "",
1217
1218
  onClick: x
1218
1219
  }, {
1219
- default: g(() => [
1220
- W(V(e(r)("tag.create")), 1)
1220
+ default: v(() => [
1221
+ N(C(e(r)("tag.create")), 1)
1221
1222
  ]),
1222
1223
  _: 1
1223
1224
  }, 8, ["loading", "disabled"])
@@ -1225,20 +1226,20 @@ const Pt = {
1225
1226
  _: 1
1226
1227
  })
1227
1228
  ]),
1228
- default: g(() => [
1229
- b(e(J), {
1229
+ default: v(() => [
1230
+ y(e(J), {
1230
1231
  label: e(r)("tag.field-title"),
1231
1232
  error: c.value.title?.[0],
1232
1233
  required: ""
1233
1234
  }, {
1234
- default: g(() => [
1235
+ default: v(() => [
1235
1236
  E("div", {
1236
1237
  ref_key: "field",
1237
- ref: m
1238
+ ref: g
1238
1239
  }, [
1239
- b(e(ae), {
1240
+ y(e(ae), {
1240
1241
  modelValue: u.value,
1241
- "onUpdate:modelValue": h[0] || (h[0] = (f) => u.value = f),
1242
+ "onUpdate:modelValue": p[0] || (p[0] = (f) => u.value = f),
1242
1243
  "aria-label": e(r)("tag.field-title"),
1243
1244
  onKeyup: ie(x, ["enter"])
1244
1245
  }, null, 8, ["modelValue", "aria-label"])
@@ -1246,15 +1247,15 @@ const Pt = {
1246
1247
  ]),
1247
1248
  _: 1
1248
1249
  }, 8, ["label", "error"]),
1249
- b(e(J), {
1250
+ y(e(J), {
1250
1251
  label: e(r)("tag.field-slug"),
1251
1252
  error: c.value.slug?.[0],
1252
1253
  help: e(r)("tag.field-slug-help")
1253
1254
  }, {
1254
- default: g(() => [
1255
- b(e(ae), {
1255
+ default: v(() => [
1256
+ y(e(ae), {
1256
1257
  modelValue: s.value,
1257
- "onUpdate:modelValue": h[1] || (h[1] = (f) => s.value = f),
1258
+ "onUpdate:modelValue": p[1] || (p[1] = (f) => s.value = f),
1258
1259
  "aria-label": e(r)("tag.field-slug"),
1259
1260
  onKeyup: ie(x, ["enter"])
1260
1261
  }, null, 8, ["modelValue", "aria-label"])
@@ -1265,7 +1266,7 @@ const Pt = {
1265
1266
  _: 1
1266
1267
  }, 8, ["open", "title"]));
1267
1268
  }
1268
- }), It = { class: "wx-tag-merge" }, Rt = { class: "wx-tag-merge__chips" }, Dt = { class: "wx-tag-merge__redirect" }, Lt = /* @__PURE__ */ z({
1269
+ }), Dt = { class: "wx-tag-merge" }, Lt = { class: "wx-tag-merge__chips" }, Bt = { class: "wx-tag-merge__redirect" }, Et = /* @__PURE__ */ z({
1269
1270
  __name: "TagMergeDialog",
1270
1271
  props: {
1271
1272
  tags: {}
@@ -1273,55 +1274,55 @@ const Pt = {
1273
1274
  setup(n) {
1274
1275
  const l = n, { open: o, resolve: i, dismiss: t } = ge(), a = K(), r = G(a);
1275
1276
  F();
1276
- const u = H("webx-blog"), s = Z(), v = S(
1277
- [...l.tags].sort((y, $) => $.articles_count - y.articles_count)[0]?.id ?? 0
1278
- ), c = S(!1), m = S(!0), x = S(null), w = T(
1279
- () => l.tags.map((y) => ({ value: y.id, label: `${y.title} · ${y.articles_count}` }))
1280
- ), h = T(() => l.tags.find((y) => y.id === v.value) ?? null), f = T(() => l.tags.filter((y) => y.id !== v.value)), M = T(() => f.value.reduce((y, $) => y + $.articles_count, 0)), D = T(() => f.value.map((y) => y.path).filter(Boolean));
1281
- async function _() {
1282
- if (!(h.value === null || f.value.length === 0 || c.value)) {
1277
+ const u = H("webx-blog"), s = Z(), m = A(
1278
+ [...l.tags].sort((d, k) => k.articles_count - d.articles_count)[0]?.id ?? 0
1279
+ ), c = A(!1), g = A(!0), x = A(null), w = $(
1280
+ () => l.tags.map((d) => ({ value: d.id, label: `${d.title} · ${d.articles_count}` }))
1281
+ ), p = $(() => l.tags.find((d) => d.id === m.value) ?? null), f = $(() => l.tags.filter((d) => d.id !== m.value)), M = $(() => f.value.reduce((d, k) => d + k.articles_count, 0)), I = $(() => f.value.map((d) => d.path).filter(Boolean));
1282
+ async function D() {
1283
+ if (!(p.value === null || f.value.length === 0 || c.value)) {
1283
1284
  c.value = !0, x.value = null;
1284
1285
  try {
1285
1286
  i(
1286
1287
  await r.mergeTags(
1287
- f.value.map((y) => y.id),
1288
- v.value,
1289
- m.value
1288
+ f.value.map((d) => d.id),
1289
+ m.value,
1290
+ g.value
1290
1291
  )
1291
1292
  );
1292
- } catch (y) {
1293
- x.value = s(y);
1293
+ } catch (d) {
1294
+ x.value = s(d);
1294
1295
  } finally {
1295
1296
  c.value = !1;
1296
1297
  }
1297
1298
  }
1298
1299
  }
1299
- return (y, $) => (k(), C(e(me), {
1300
+ return (d, k) => (_(), W(e(me), {
1300
1301
  open: e(o),
1301
- "onUpdate:open": $[3] || ($[3] = (P) => pe(o) ? o.value = P : null),
1302
+ "onUpdate:open": k[3] || (k[3] = (S) => pe(o) ? o.value = S : null),
1302
1303
  title: e(u)("tag.merge-title"),
1303
1304
  width: 520
1304
1305
  }, {
1305
- footer: g(() => [
1306
- b(e(fe), { size: "sm" }, {
1307
- default: g(() => [
1308
- b(e(O), {
1306
+ footer: v(() => [
1307
+ y(e(fe), { size: "sm" }, {
1308
+ default: v(() => [
1309
+ y(e(O), {
1309
1310
  variant: "outline",
1310
- onClick: $[2] || ($[2] = (P) => e(t)())
1311
+ onClick: k[2] || (k[2] = (S) => e(t)())
1311
1312
  }, {
1312
- default: g(() => [
1313
- W(V(e(u)("tag.cancel")), 1)
1313
+ default: v(() => [
1314
+ N(C(e(u)("tag.cancel")), 1)
1314
1315
  ]),
1315
1316
  _: 1
1316
1317
  }),
1317
- b(e(O), {
1318
+ y(e(O), {
1318
1319
  type: "primary",
1319
1320
  loading: c.value,
1320
1321
  disabled: f.value.length === 0,
1321
- onClick: _
1322
+ onClick: D
1322
1323
  }, {
1323
- default: g(() => [
1324
- W(V(e(u)("tag.merge-confirm")), 1)
1324
+ default: v(() => [
1325
+ N(C(e(u)("tag.merge-confirm")), 1)
1325
1326
  ]),
1326
1327
  _: 1
1327
1328
  }, 8, ["loading", "disabled"])
@@ -1329,74 +1330,74 @@ const Pt = {
1329
1330
  _: 1
1330
1331
  })
1331
1332
  ]),
1332
- default: g(() => [
1333
- E("div", It, [
1334
- E("div", Rt, [
1335
- (k(!0), R(Y, null, ce(f.value, (P) => (k(), C(e(q), {
1336
- key: P.id,
1333
+ default: v(() => [
1334
+ E("div", Dt, [
1335
+ E("div", Lt, [
1336
+ (_(!0), U(Y, null, ce(f.value, (S) => (_(), W(e(q), {
1337
+ key: S.id,
1337
1338
  size: "sm",
1338
1339
  round: ""
1339
1340
  }, {
1340
- default: g(() => [
1341
- W(V(P.title) + " · " + V(P.articles_count), 1)
1341
+ default: v(() => [
1342
+ N(C(S.title) + " · " + C(S.articles_count), 1)
1342
1343
  ]),
1343
1344
  _: 2
1344
1345
  }, 1024))), 128)),
1345
- b(e(tt), {
1346
+ y(e(lt), {
1346
1347
  name: "arrow-right",
1347
1348
  size: "sm"
1348
1349
  }),
1349
- h.value ? (k(), C(e(q), {
1350
+ p.value ? (_(), W(e(q), {
1350
1351
  key: 0,
1351
1352
  type: "primary",
1352
1353
  size: "sm",
1353
1354
  round: ""
1354
1355
  }, {
1355
- default: g(() => [
1356
- W(V(h.value.title) + " · " + V(h.value.articles_count), 1)
1356
+ default: v(() => [
1357
+ N(C(p.value.title) + " · " + C(p.value.articles_count), 1)
1357
1358
  ]),
1358
1359
  _: 1
1359
1360
  })) : L("", !0)
1360
1361
  ]),
1361
- b(e(J), {
1362
+ y(e(J), {
1362
1363
  label: e(u)("tag.merge-keep")
1363
1364
  }, {
1364
- default: g(() => [
1365
- b(e(ee), {
1366
- modelValue: v.value,
1367
- "onUpdate:modelValue": $[0] || ($[0] = (P) => v.value = P),
1365
+ default: v(() => [
1366
+ y(e(ee), {
1367
+ modelValue: m.value,
1368
+ "onUpdate:modelValue": k[0] || (k[0] = (S) => m.value = S),
1368
1369
  options: w.value,
1369
1370
  "aria-label": e(u)("tag.merge-keep")
1370
1371
  }, null, 8, ["modelValue", "options", "aria-label"])
1371
1372
  ]),
1372
1373
  _: 1
1373
1374
  }, 8, ["label"]),
1374
- E("div", Dt, [
1375
- b(e(at), {
1376
- modelValue: m.value,
1377
- "onUpdate:modelValue": $[1] || ($[1] = (P) => m.value = P),
1375
+ E("div", Bt, [
1376
+ y(e(ot), {
1377
+ modelValue: g.value,
1378
+ "onUpdate:modelValue": k[1] || (k[1] = (S) => g.value = S),
1378
1379
  label: e(u)("tag.merge-redirect")
1379
1380
  }, null, 8, ["modelValue", "label"]),
1380
- b(e(ve), {
1381
+ y(e(ve), {
1381
1382
  size: "sm",
1382
1383
  tone: "muted"
1383
1384
  }, {
1384
- default: g(() => [
1385
- W(V(D.value.length === 0 ? e(u)("tag.merge-redirect-none") : e(u)("tag.merge-redirect-help", { addresses: D.value.join(", ") })), 1)
1385
+ default: v(() => [
1386
+ N(C(I.value.length === 0 ? e(u)("tag.merge-redirect-none") : e(u)("tag.merge-redirect-help", { addresses: I.value.join(", ") })), 1)
1386
1387
  ]),
1387
1388
  _: 1
1388
1389
  })
1389
1390
  ]),
1390
- b(e(ne), {
1391
+ y(e(ne), {
1391
1392
  type: "warning",
1392
1393
  variant: "soft",
1393
1394
  description: e(u)("tag.merge-warning", {
1394
1395
  count: M.value,
1395
- tag: h.value?.title ?? "",
1396
+ tag: p.value?.title ?? "",
1396
1397
  merged: f.value.length
1397
1398
  })
1398
1399
  }, null, 8, ["description"]),
1399
- x.value ? (k(), C(e(ne), {
1400
+ x.value ? (_(), W(e(ne), {
1400
1401
  key: 0,
1401
1402
  type: "danger",
1402
1403
  variant: "soft",
@@ -1407,53 +1408,53 @@ const Pt = {
1407
1408
  _: 1
1408
1409
  }, 8, ["open", "title"]));
1409
1410
  }
1410
- }), Gt = /* @__PURE__ */ j(Lt, [["__scopeId", "data-v-aa68b3a8"]]), Jt = /* @__PURE__ */ z({
1411
+ }), Zt = /* @__PURE__ */ j(Et, [["__scopeId", "data-v-aa68b3a8"]]), Qt = /* @__PURE__ */ z({
1411
1412
  __name: "ArticleCreateDialog",
1412
1413
  setup(n) {
1413
1414
  const { open: l, resolve: o, dismiss: i } = ge(), t = K(), a = G(t);
1414
1415
  F();
1415
- const r = H("webx-blog"), u = S(""), s = S(!1), v = S({}), c = ke("field");
1416
+ const r = H("webx-blog"), u = A(""), s = A(!1), m = A({}), c = ke("field");
1416
1417
  he(async () => {
1417
1418
  await $e(), c.value?.querySelector("input")?.focus();
1418
1419
  });
1419
- async function m() {
1420
+ async function g() {
1420
1421
  if (!(u.value.trim() === "" || s.value)) {
1421
- s.value = !0, v.value = {};
1422
+ s.value = !0, m.value = {};
1422
1423
  try {
1423
1424
  o(await a.create({ title: u.value.trim() }));
1424
1425
  } catch (x) {
1425
- v.value = x.body?.errors ?? {};
1426
+ m.value = x.body?.errors ?? {};
1426
1427
  } finally {
1427
1428
  s.value = !1;
1428
1429
  }
1429
1430
  }
1430
1431
  }
1431
- return (x, w) => (k(), C(e(me), {
1432
+ return (x, w) => (_(), W(e(me), {
1432
1433
  open: e(l),
1433
- "onUpdate:open": w[2] || (w[2] = (h) => pe(l) ? l.value = h : null),
1434
+ "onUpdate:open": w[2] || (w[2] = (p) => pe(l) ? l.value = p : null),
1434
1435
  title: e(r)("panel.new-title"),
1435
1436
  width: 440
1436
1437
  }, {
1437
- footer: g(() => [
1438
- b(e(fe), { size: "sm" }, {
1439
- default: g(() => [
1440
- b(e(O), {
1438
+ footer: v(() => [
1439
+ y(e(fe), { size: "sm" }, {
1440
+ default: v(() => [
1441
+ y(e(O), {
1441
1442
  variant: "outline",
1442
- onClick: w[1] || (w[1] = (h) => e(i)())
1443
+ onClick: w[1] || (w[1] = (p) => e(i)())
1443
1444
  }, {
1444
- default: g(() => [
1445
- W(V(e(r)("panel.cancel")), 1)
1445
+ default: v(() => [
1446
+ N(C(e(r)("panel.cancel")), 1)
1446
1447
  ]),
1447
1448
  _: 1
1448
1449
  }),
1449
- b(e(O), {
1450
+ y(e(O), {
1450
1451
  type: "primary",
1451
1452
  loading: s.value,
1452
1453
  disabled: u.value.trim() === "",
1453
- onClick: m
1454
+ onClick: g
1454
1455
  }, {
1455
- default: g(() => [
1456
- W(V(e(r)("panel.create")), 1)
1456
+ default: v(() => [
1457
+ N(C(e(r)("panel.create")), 1)
1457
1458
  ]),
1458
1459
  _: 1
1459
1460
  }, 8, ["loading", "disabled"])
@@ -1461,22 +1462,22 @@ const Pt = {
1461
1462
  _: 1
1462
1463
  })
1463
1464
  ]),
1464
- default: g(() => [
1465
- b(e(J), {
1465
+ default: v(() => [
1466
+ y(e(J), {
1466
1467
  label: e(r)("panel.field-title"),
1467
- error: v.value.title?.[0] ?? v.value.slug?.[0],
1468
+ error: m.value.title?.[0] ?? m.value.slug?.[0],
1468
1469
  required: ""
1469
1470
  }, {
1470
- default: g(() => [
1471
+ default: v(() => [
1471
1472
  E("div", {
1472
1473
  ref_key: "field",
1473
1474
  ref: c
1474
1475
  }, [
1475
- b(e(ae), {
1476
+ y(e(ae), {
1476
1477
  modelValue: u.value,
1477
- "onUpdate:modelValue": w[0] || (w[0] = (h) => u.value = h),
1478
+ "onUpdate:modelValue": w[0] || (w[0] = (p) => u.value = p),
1478
1479
  "aria-label": e(r)("panel.field-title"),
1479
- onKeyup: ie(m, ["enter"])
1480
+ onKeyup: ie(g, ["enter"])
1480
1481
  }, null, 8, ["modelValue", "aria-label"])
1481
1482
  ], 512)
1482
1483
  ]),
@@ -1486,31 +1487,31 @@ const Pt = {
1486
1487
  _: 1
1487
1488
  }, 8, ["open", "title"]));
1488
1489
  }
1489
- }), Zt = le(() => import("./ArticlesPage-CI-Nwhpy.js")), Qt = le(() => import("./TagsPage-rFfpCqPs.js")), Xt = le(() => import("./AuthorsPage-BN6sRqyE.js")), Yt = le(() => import("./ArticleEditorPage-DViFCNvm.js"));
1490
+ }), Xt = le(() => import("./ArticlesPage-BnHi8gF0.js")), Yt = le(() => import("./TagsPage-BnLVnx5a.js")), qt = le(() => import("./AuthorsPage-DSLsX44M.js")), ea = le(() => import("./ArticleEditorPage-Bkb5YrLy.js"));
1490
1491
  export {
1491
- Ft as A,
1492
- Gt as T,
1493
- Yt as W,
1494
- Jt as _,
1492
+ Gt as A,
1493
+ Zt as T,
1494
+ ea as W,
1495
+ Qt as _,
1495
1496
  j as a,
1496
- jt as b,
1497
+ Jt as b,
1497
1498
  G as c,
1498
- Mt as d,
1499
- it as e,
1500
- ht as f,
1501
- bt as g,
1502
- _t as h,
1503
- Vt as i,
1504
- Wt as j,
1505
- Zt as k,
1506
- Xt as l,
1507
- Qt as m,
1499
+ Rt as d,
1500
+ rt as e,
1501
+ vt as f,
1502
+ yt as g,
1503
+ $t as h,
1504
+ Wt as i,
1505
+ Mt as j,
1506
+ Xt as k,
1507
+ qt as l,
1508
+ Yt as m,
1508
1509
  Se as n,
1509
- Ht as o,
1510
- Kt as p,
1511
- lt as q,
1512
- Nt as r,
1510
+ jt as o,
1511
+ Ft as p,
1512
+ st as q,
1513
+ Pt as r,
1513
1514
  Q as s,
1514
1515
  F as u
1515
1516
  };
1516
- //# sourceMappingURL=index-DqN5h0Ej.js.map
1517
+ //# sourceMappingURL=index-ChbP89HC.js.map