@m2s2/vue-lib 2.5.0 → 2.5.1

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 (67) hide show
  1. package/dist/index14.cjs +1 -1
  2. package/dist/index14.mjs +1 -1
  3. package/dist/index16.cjs +1 -1
  4. package/dist/index16.mjs +1 -1
  5. package/dist/index2.cjs +1 -1
  6. package/dist/index2.mjs +12 -12
  7. package/dist/index24.cjs +1 -1
  8. package/dist/index24.mjs +20 -26
  9. package/dist/index26.cjs +2 -6
  10. package/dist/index26.mjs +147 -173
  11. package/dist/index28.cjs +1 -1
  12. package/dist/index28.mjs +33 -32
  13. package/dist/index30.cjs +1 -1
  14. package/dist/index30.mjs +29 -28
  15. package/dist/index32.cjs +1 -1
  16. package/dist/index32.mjs +1 -1
  17. package/dist/index36.cjs +1 -1
  18. package/dist/index36.mjs +1 -1
  19. package/dist/index40.cjs +1 -1
  20. package/dist/index40.mjs +4 -4
  21. package/dist/index46.cjs +1 -1
  22. package/dist/index46.mjs +2 -2
  23. package/dist/index75.cjs +1 -1
  24. package/dist/index75.mjs +4 -51
  25. package/dist/index76.cjs +1 -59
  26. package/dist/index76.mjs +18 -1146
  27. package/dist/index77.cjs +1 -1
  28. package/dist/index77.mjs +6 -2
  29. package/dist/index78.cjs +59 -0
  30. package/dist/index78.mjs +1152 -0
  31. package/dist/index79.cjs +5 -0
  32. package/dist/index79.mjs +21 -0
  33. package/dist/index8.cjs +1 -1
  34. package/dist/index8.mjs +5 -5
  35. package/dist/index80.cjs +1 -0
  36. package/dist/index80.mjs +53 -0
  37. package/dist/index81.cjs +1 -0
  38. package/dist/index81.mjs +4 -0
  39. package/dist/vue-lib/src/BrandConfigurator.vue.d.ts.map +1 -1
  40. package/dist/vue-lib/src/Welcome.vue.d.ts.map +1 -1
  41. package/dist/vue-lib/src/components/BlogEditor/BlogEditor.vue.d.ts +4 -1
  42. package/dist/vue-lib/src/components/BlogEditor/BlogEditor.vue.d.ts.map +1 -1
  43. package/dist/vue-lib/src/components/Chat/Chat.vue.d.ts +2 -0
  44. package/dist/vue-lib/src/components/Chat/Chat.vue.d.ts.map +1 -1
  45. package/dist/vue-lib/src/components/CtaSection/CtaSection.vue.d.ts.map +1 -1
  46. package/dist/vue-lib/src/components/DataTable/DataTable.vue.d.ts.map +1 -1
  47. package/dist/vue-lib/src/components/Dialog/Dialog.vue.d.ts.map +1 -1
  48. package/dist/vue-lib/src/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  49. package/dist/vue-lib/src/components/Dropdown/DropdownItem.vue.d.ts.map +1 -1
  50. package/dist/vue-lib/src/components/Footer/Footer.vue.d.ts.map +1 -1
  51. package/dist/vue-lib/src/components/Footer/SocialIcon.vue.d.ts.map +1 -1
  52. package/dist/vue-lib/src/components/LoadingButton/LoadingButton.vue.d.ts +1 -0
  53. package/dist/vue-lib/src/components/LoadingButton/LoadingButton.vue.d.ts.map +1 -1
  54. package/dist/vue-lib/src/components/Navbar/Navbar.vue.d.ts.map +1 -1
  55. package/dist/vue-lib/src/components/PageHeader/PageHeader.vue.d.ts.map +1 -1
  56. package/dist/vue-lib/src/components/Panel/Panel.vue.d.ts.map +1 -1
  57. package/dist/vue-lib/src/components/ProcessSteps/ProcessSteps.vue.d.ts.map +1 -1
  58. package/dist/vue-lib/src/components/SectionHeader/SectionHeader.vue.d.ts.map +1 -1
  59. package/dist/vue-lib/src/components/StatRow/StatRow.vue.d.ts.map +1 -1
  60. package/dist/vue-lib/src/components/StatusBadge/StatusBadge.vue.d.ts +1 -0
  61. package/dist/vue-lib/src/components/StatusBadge/StatusBadge.vue.d.ts.map +1 -1
  62. package/dist/vue-lib/src/components/SubscribeForm/SubscribeForm.vue.d.ts +3 -0
  63. package/dist/vue-lib/src/components/SubscribeForm/SubscribeForm.vue.d.ts.map +1 -1
  64. package/dist/vue-lib/src/components/cards/BlogCard/BlogCard.vue.d.ts.map +1 -1
  65. package/dist/vue-lib/src/components/cards/FeatureCard/FeatureCard.vue.d.ts.map +1 -1
  66. package/dist/vue-lib.css +1 -1
  67. package/package.json +10 -7
package/dist/index26.mjs CHANGED
@@ -1,280 +1,254 @@
1
- import { defineComponent as we, ref as n, watch as xe, computed as L, openBlock as x, createElementBlock as _, createElementVNode as l, createTextVNode as p, withDirectives as d, vModelText as v, Fragment as se, renderList as ne, toDisplayString as V, createCommentVNode as _e } from "vue";
2
- import { marked as ke } from "./index76.mjs";
3
- const ye = { class: "be-root" }, Pe = { class: "be-meta" }, Ie = { class: "be-field be-field--full" }, Ce = ["value"], Te = { class: "be-field" }, he = { class: "be-field" }, Se = { class: "be-field be-field--full" }, Ue = { class: "be-field be-field--full" }, Ve = { class: "be-field" }, Be = { class: "be-tags" }, Ee = ["onClick", "aria-label"], Le = { class: "be-field" }, De = { class: "be-field be-field--cover" }, He = { class: "be-cover" }, Re = ["src"], Me = { class: "be-cover__pick" }, Fe = { class: "be-field" }, Ne = { class: "be-field" }, Oe = { class: "be-field be-field--narrow-pair" }, $e = { class: "be-editor" }, qe = {
1
+ import { defineComponent as ge, ref as i, watch as fe, computed as L, openBlock as c, createElementBlock as m, createElementVNode as l, createTextVNode as g, withDirectives as d, vModelText as v, Fragment as te, renderList as ae, toDisplayString as V, createCommentVNode as _e, unref as ye } from "vue";
2
+ import { marked as we } from "./index78.mjs";
3
+ import { todayAsIsoDate as xe, generateSlug as se, calcReadingTime as ie } from "./index76.mjs";
4
+ import { BLOG_EDITOR_TOOLBAR as Pe } from "./index79.mjs";
5
+ const ke = { class: "be-root" }, Te = { class: "be-meta" }, Ce = { class: "be-field be-field--full" }, Ie = ["value"], Ue = { class: "be-field" }, Se = { class: "be-field" }, he = { class: "be-field be-field--full" }, Ve = { class: "be-field be-field--full" }, Ee = { class: "be-field" }, De = { class: "be-tags" }, Le = ["aria-label", "onClick"], Re = { class: "be-field" }, Be = { class: "be-field be-field--cover" }, Oe = { class: "be-cover" }, Ae = ["src"], Fe = { class: "be-cover__pick" }, Me = { class: "be-field" }, $e = { class: "be-field" }, He = { class: "be-field be-field--narrow-pair" }, Ne = { class: "be-editor" }, qe = {
4
6
  class: "be-toolbar",
5
7
  role: "toolbar",
6
8
  "aria-label": "Formatting"
7
- }, Ae = ["title", "onClick"], Ke = { class: "be-panes" }, ze = { class: "be-pane be-pane--write" }, Ge = ["value"], We = { class: "be-pane be-pane--preview" }, je = ["innerHTML"], Je = { class: "be-footer" }, Qe = { class: "be-footer__meta" }, Xe = ["disabled"], el = /* @__PURE__ */ we({
9
+ }, Ge = ["title", "onClick"], Ke = { class: "be-panes" }, We = { class: "be-pane be-pane--write" }, je = ["value"], ze = { class: "be-pane be-pane--preview" }, Je = ["innerHTML"], Qe = { class: "be-footer" }, Xe = { class: "be-footer__meta" }, Ye = ["disabled"], al = /* @__PURE__ */ ge({
8
10
  __name: "BlogEditor",
9
11
  props: {
10
- initialPost: {},
11
- coverImageUrl: {}
12
+ initialPost: { default: void 0 },
13
+ coverImageUrl: { default: void 0 }
12
14
  },
13
15
  emits: ["publish", "coverImageSelected"],
14
- setup(ie, { emit: oe }) {
15
- var N, O, $, q, A, K, z, G, W, j, J, Q, X, Y, Z, ee, le;
16
- const s = ie, D = oe, re = [
17
- { label: "Heading 2", icon: "H2", prefix: "## " },
18
- { label: "Heading 3", icon: "H3", prefix: "### " },
19
- { label: "Bold", icon: "B", wrap: ["**", "**"] },
20
- { label: "Italic", icon: "I", wrap: ["*", "*"] },
21
- { label: "Inline code", icon: "`", wrap: ["`", "`"] },
22
- { label: "Code block", icon: "{ }", block: "\n```\n\n```\n" },
23
- { label: "Blockquote", icon: "❝", prefix: "> " },
24
- { label: "Link", icon: "⇗", wrap: ["[", "](url)"] },
25
- { label: "Image", icon: "⬚", block: `![alt text](image-url)
26
- ` },
27
- { label: "Bullet list", icon: "•–", prefix: "- " },
28
- { label: "Numbered list", icon: "1.", prefix: "1. " },
29
- { label: "Divider", icon: "—", block: `
30
- ---
31
-
32
- ` }
33
- ];
34
- function ue() {
35
- return (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
36
- }
37
- function H(t) {
38
- return t.toLowerCase().replace(/[^a-z0-9\s-]/g, "").trim().replace(/\s+/g, "-").replace(/-+/g, "-");
39
- }
40
- function R(t) {
41
- const e = t.trim().split(/\s+/).filter(Boolean).length;
42
- return Math.max(1, Math.ceil(e / 200));
43
- }
44
- const b = n(((N = s.initialPost) == null ? void 0 : N.title) ?? ""), m = n(((O = s.initialPost) == null ? void 0 : O.slug) ?? ""), k = n((($ = s.initialPost) == null ? void 0 : $.date) ?? ue()), g = n(((q = s.initialPost) == null ? void 0 : q.summary) ?? ""), y = n(((A = s.initialPost) == null ? void 0 : A.excerpt) ?? ""), i = n([...((K = s.initialPost) == null ? void 0 : K.tags) ?? []]), c = n(((z = s.initialPost) == null ? void 0 : z.readingTime) ?? 1), u = n(((G = s.initialPost) == null ? void 0 : G.content) ?? ""), P = n((W = s.initialPost) == null ? void 0 : W.coverImage), f = n(""), B = n(!!s.initialPost), M = n(null), I = n(((J = (j = s.initialPost) == null ? void 0 : j.series) == null ? void 0 : J.id) ?? ""), C = n(((X = (Q = s.initialPost) == null ? void 0 : Q.series) == null ? void 0 : X.title) ?? ""), T = n(((Z = (Y = s.initialPost) == null ? void 0 : Y.series) == null ? void 0 : Z.part) ?? 1), h = n(((le = (ee = s.initialPost) == null ? void 0 : ee.series) == null ? void 0 : le.total) ?? 1);
45
- xe(() => s.initialPost, (t) => {
46
- var e, a, o, r;
47
- t && (b.value = t.title, m.value = t.slug, k.value = t.date, g.value = t.summary, y.value = t.excerpt ?? "", i.value = [...t.tags], c.value = t.readingTime ?? 1, u.value = t.content, P.value = t.coverImage, I.value = ((e = t.series) == null ? void 0 : e.id) ?? "", C.value = ((a = t.series) == null ? void 0 : a.title) ?? "", T.value = ((o = t.series) == null ? void 0 : o.part) ?? 1, h.value = ((r = t.series) == null ? void 0 : r.total) ?? 1, B.value = !0);
16
+ setup(ne, { emit: oe }) {
17
+ var A, F, M, $, H, N, q, G, K, W, j, z, J, Q, X, Y, Z;
18
+ const s = ne, R = oe, b = i(((A = s.initialPost) == null ? void 0 : A.title) ?? ""), f = i(((F = s.initialPost) == null ? void 0 : F.slug) ?? ""), x = i(((M = s.initialPost) == null ? void 0 : M.date) ?? xe()), _ = i((($ = s.initialPost) == null ? void 0 : $.summary) ?? ""), P = i(((H = s.initialPost) == null ? void 0 : H.excerpt) ?? ""), n = i([...((N = s.initialPost) == null ? void 0 : N.tags) ?? []]), p = i(((q = s.initialPost) == null ? void 0 : q.readingTime) ?? 1), r = i(((G = s.initialPost) == null ? void 0 : G.content) ?? ""), k = i((K = s.initialPost) == null ? void 0 : K.coverImage), y = i(""), E = i(!!s.initialPost), B = i(null), T = i(((j = (W = s.initialPost) == null ? void 0 : W.series) == null ? void 0 : j.id) ?? ""), C = i(((J = (z = s.initialPost) == null ? void 0 : z.series) == null ? void 0 : J.title) ?? ""), I = i(((X = (Q = s.initialPost) == null ? void 0 : Q.series) == null ? void 0 : X.part) ?? 1), U = i(((Z = (Y = s.initialPost) == null ? void 0 : Y.series) == null ? void 0 : Z.total) ?? 1);
19
+ fe(() => s.initialPost, (a) => {
20
+ var e, t, o, u;
21
+ a && (b.value = a.title, f.value = a.slug, x.value = a.date, _.value = a.summary, P.value = a.excerpt ?? "", n.value = [...a.tags], p.value = a.readingTime ?? 1, r.value = a.content, k.value = a.coverImage, T.value = ((e = a.series) == null ? void 0 : e.id) ?? "", C.value = ((t = a.series) == null ? void 0 : t.title) ?? "", I.value = ((o = a.series) == null ? void 0 : o.part) ?? 1, U.value = ((u = a.series) == null ? void 0 : u.total) ?? 1, E.value = !0);
48
22
  });
49
- const de = L(() => ke.parse(u.value)), F = L(() => b.value.trim().length > 0 && g.value.trim().length > 0 && u.value.trim().length > 0), E = L(() => P.value ?? s.coverImageUrl);
50
- function ve(t) {
51
- b.value = t.target.value, B.value || (m.value = H(b.value)), c.value = R(u.value);
23
+ const ue = L(() => we.parse(r.value)), O = L(() => b.value.trim().length > 0 && _.value.trim().length > 0 && r.value.trim().length > 0), D = L(() => k.value ?? s.coverImageUrl);
24
+ function re(a) {
25
+ b.value = a.target.value, E.value || (f.value = se(b.value)), p.value = ie(r.value);
52
26
  }
53
- function be(t) {
54
- u.value = t.target.value, c.value = R(u.value);
27
+ function de(a) {
28
+ r.value = a.target.value, p.value = ie(r.value);
55
29
  }
56
- function ce(t) {
57
- if (t.key === "Enter" || t.key === ",") {
58
- t.preventDefault();
59
- const e = f.value.trim().replace(/,/g, "").toLowerCase();
60
- e && !i.value.includes(e) && (i.value = [...i.value, e]), f.value = "";
30
+ function ve(a) {
31
+ if (a.key === "Enter" || a.key === ",") {
32
+ a.preventDefault();
33
+ const e = y.value.trim().replace(/,/g, "").toLowerCase();
34
+ e && !n.value.includes(e) && (n.value = [...n.value, e]), y.value = "";
61
35
  }
62
- t.key === "Backspace" && !f.value && i.value.length && (i.value = i.value.slice(0, -1));
36
+ a.key === "Backspace" && !y.value && n.value.length && (n.value = n.value.slice(0, -1));
63
37
  }
64
- function pe(t) {
65
- i.value = i.value.filter((e) => e !== t);
38
+ function be(a) {
39
+ n.value = n.value.filter((e) => e !== a);
66
40
  }
67
- function me(t) {
41
+ function pe(a) {
68
42
  var o;
69
- const e = (o = t.target.files) == null ? void 0 : o[0];
43
+ const e = (o = a.target.files) == null ? void 0 : o[0];
70
44
  if (!e) return;
71
- D("coverImageSelected", e);
72
- const a = new FileReader();
73
- a.onload = () => {
74
- P.value = a.result;
75
- }, a.readAsDataURL(e);
45
+ R("coverImageSelected", e);
46
+ const t = new FileReader();
47
+ t.onload = () => {
48
+ k.value = t.result;
49
+ }, t.readAsDataURL(e);
76
50
  }
77
- function ge(t) {
78
- const e = M.value;
51
+ function ce(a) {
52
+ const e = B.value;
79
53
  if (!e) return;
80
- const a = e.selectionStart, o = e.selectionEnd, r = u.value;
81
- let S, U;
82
- if (t.wrap) {
83
- const [w, te] = t.wrap, ae = r.slice(a, o) || "text";
84
- S = r.slice(0, a) + w + ae + te + r.slice(o), U = a + w.length + ae.length + te.length;
85
- } else if (t.prefix) {
86
- const w = r.lastIndexOf(`
87
- `, a - 1) + 1;
88
- S = r.slice(0, w) + t.prefix + r.slice(w), U = a + t.prefix.length;
89
- } else if (t.block)
90
- S = r.slice(0, a) + t.block + r.slice(o), U = a + t.block.length;
54
+ const t = e.selectionStart, o = e.selectionEnd, u = r.value;
55
+ let S, h;
56
+ if (a.wrap) {
57
+ const [w, ee] = a.wrap, le = u.slice(t, o) || "text";
58
+ S = u.slice(0, t) + w + le + ee + u.slice(o), h = t + w.length + le.length + ee.length;
59
+ } else if (a.prefix) {
60
+ const w = u.lastIndexOf(`
61
+ `, t - 1) + 1;
62
+ S = u.slice(0, w) + a.prefix + u.slice(w), h = t + a.prefix.length;
63
+ } else if (a.block)
64
+ S = u.slice(0, t) + a.block + u.slice(o), h = t + a.block.length;
91
65
  else
92
66
  return;
93
- u.value = S, setTimeout(() => {
94
- e.selectionStart = e.selectionEnd = U, e.focus();
67
+ r.value = S, setTimeout(() => {
68
+ e.selectionStart = e.selectionEnd = h, e.focus();
95
69
  }, 0);
96
70
  }
97
- function fe() {
98
- if (!F.value) return;
99
- const t = I.value.trim();
100
- D("publish", {
71
+ function me() {
72
+ if (!O.value) return;
73
+ const a = T.value.trim();
74
+ R("publish", {
101
75
  title: b.value,
102
- slug: m.value || H(b.value),
103
- date: k.value,
104
- summary: g.value,
105
- excerpt: y.value || void 0,
106
- tags: i.value,
107
- readingTime: c.value,
108
- content: u.value,
109
- coverImage: s.coverImageUrl ?? P.value,
110
- series: t ? { id: t, title: C.value.trim() || t, part: T.value, total: h.value } : void 0
76
+ slug: f.value || se(b.value),
77
+ date: x.value,
78
+ summary: _.value,
79
+ excerpt: P.value || void 0,
80
+ tags: n.value,
81
+ readingTime: p.value,
82
+ content: r.value,
83
+ coverImage: s.coverImageUrl ?? k.value,
84
+ series: a ? { id: a, title: C.value.trim() || a, part: I.value, total: U.value } : void 0
111
85
  });
112
86
  }
113
- return (t, e) => (x(), _("div", ye, [
114
- l("section", Pe, [
115
- l("div", Ie, [
87
+ return (a, e) => (c(), m("div", ke, [
88
+ l("section", Te, [
89
+ l("div", Ce, [
116
90
  e[11] || (e[11] = l("label", { class: "be-label" }, [
117
- p("Title "),
91
+ g("Title "),
118
92
  l("span", { class: "be-required" }, "*")
119
93
  ], -1)),
120
94
  l("input", {
121
95
  class: "be-input",
122
96
  type: "text",
123
97
  value: b.value,
124
- onInput: ve,
125
- placeholder: "Post title…"
126
- }, null, 40, Ce)
98
+ placeholder: "Post title…",
99
+ onInput: re
100
+ }, null, 40, Ie)
127
101
  ]),
128
- l("div", Te, [
102
+ l("div", Ue, [
129
103
  e[12] || (e[12] = l("label", { class: "be-label" }, "Slug", -1)),
130
104
  d(l("input", {
105
+ "onUpdate:modelValue": e[0] || (e[0] = (t) => f.value = t),
131
106
  class: "be-input",
132
107
  type: "text",
133
- "onUpdate:modelValue": e[0] || (e[0] = (a) => m.value = a),
134
- onInput: e[1] || (e[1] = (a) => B.value = !0),
135
- placeholder: "post-slug"
108
+ placeholder: "post-slug",
109
+ onInput: e[1] || (e[1] = (t) => E.value = !0)
136
110
  }, null, 544), [
137
- [v, m.value]
111
+ [v, f.value]
138
112
  ])
139
113
  ]),
140
- l("div", he, [
114
+ l("div", Se, [
141
115
  e[13] || (e[13] = l("label", { class: "be-label" }, "Date", -1)),
142
116
  d(l("input", {
117
+ "onUpdate:modelValue": e[2] || (e[2] = (t) => x.value = t),
143
118
  class: "be-input",
144
- type: "date",
145
- "onUpdate:modelValue": e[2] || (e[2] = (a) => k.value = a)
119
+ type: "date"
146
120
  }, null, 512), [
147
- [v, k.value]
121
+ [v, x.value]
148
122
  ])
149
123
  ]),
150
- l("div", Se, [
124
+ l("div", he, [
151
125
  e[14] || (e[14] = l("label", { class: "be-label" }, [
152
- p("Summary "),
126
+ g("Summary "),
153
127
  l("span", { class: "be-required" }, "*")
154
128
  ], -1)),
155
129
  d(l("textarea", {
130
+ "onUpdate:modelValue": e[3] || (e[3] = (t) => _.value = t),
156
131
  class: "be-input be-input--textarea",
157
132
  rows: "2",
158
- "onUpdate:modelValue": e[3] || (e[3] = (a) => g.value = a),
159
133
  placeholder: "Short description shown in blog listings…"
160
134
  }, null, 512), [
161
- [v, g.value]
135
+ [v, _.value]
162
136
  ])
163
137
  ]),
164
- l("div", Ue, [
138
+ l("div", Ve, [
165
139
  e[15] || (e[15] = l("label", { class: "be-label" }, [
166
- p("Excerpt "),
140
+ g("Excerpt "),
167
141
  l("span", { class: "be-optional" }, "(optional)")
168
142
  ], -1)),
169
143
  d(l("textarea", {
144
+ "onUpdate:modelValue": e[4] || (e[4] = (t) => P.value = t),
170
145
  class: "be-input be-input--textarea",
171
146
  rows: "2",
172
- "onUpdate:modelValue": e[4] || (e[4] = (a) => y.value = a),
173
147
  placeholder: "Longer teaser for social previews…"
174
148
  }, null, 512), [
175
- [v, y.value]
149
+ [v, P.value]
176
150
  ])
177
151
  ]),
178
- l("div", Ve, [
152
+ l("div", Ee, [
179
153
  e[16] || (e[16] = l("label", { class: "be-label" }, "Tags", -1)),
180
- l("div", Be, [
181
- (x(!0), _(se, null, ne(i.value, (a) => (x(), _("span", {
182
- key: a,
154
+ l("div", De, [
155
+ (c(!0), m(te, null, ae(n.value, (t) => (c(), m("span", {
156
+ key: t,
183
157
  class: "be-tag"
184
158
  }, [
185
- p(V(a) + " ", 1),
159
+ g(V(t) + " ", 1),
186
160
  l("button", {
187
161
  type: "button",
188
162
  class: "be-tag__remove",
189
- onClick: (o) => pe(a),
190
- "aria-label": `Remove tag ${a}`
191
- }, "×", 8, Ee)
163
+ "aria-label": `Remove tag ${t}`,
164
+ onClick: (o) => be(t)
165
+ }, "×", 8, Le)
192
166
  ]))), 128)),
193
167
  d(l("input", {
168
+ "onUpdate:modelValue": e[5] || (e[5] = (t) => y.value = t),
194
169
  class: "be-tag-input",
195
170
  type: "text",
196
- "onUpdate:modelValue": e[5] || (e[5] = (a) => f.value = a),
197
- onKeydown: ce,
198
- placeholder: "Add tag, press Enter…"
171
+ placeholder: "Add tag, press Enter…",
172
+ onKeydown: ve
199
173
  }, null, 544), [
200
- [v, f.value]
174
+ [v, y.value]
201
175
  ])
202
176
  ])
203
177
  ]),
204
- l("div", Le, [
178
+ l("div", Re, [
205
179
  e[17] || (e[17] = l("label", { class: "be-label" }, "Reading time (min)", -1)),
206
180
  d(l("input", {
181
+ "onUpdate:modelValue": e[6] || (e[6] = (t) => p.value = t),
207
182
  class: "be-input be-input--narrow",
208
183
  type: "number",
209
- min: "1",
210
- "onUpdate:modelValue": e[6] || (e[6] = (a) => c.value = a)
184
+ min: "1"
211
185
  }, null, 512), [
212
186
  [
213
187
  v,
214
- c.value,
188
+ p.value,
215
189
  void 0,
216
190
  { number: !0 }
217
191
  ]
218
192
  ])
219
193
  ]),
220
- l("div", De, [
194
+ l("div", Be, [
221
195
  e[18] || (e[18] = l("label", { class: "be-label" }, "Cover Image", -1)),
222
- l("div", He, [
223
- E.value ? (x(), _("img", {
196
+ l("div", Oe, [
197
+ D.value ? (c(), m("img", {
224
198
  key: 0,
225
199
  class: "be-cover__preview",
226
- src: E.value,
200
+ src: D.value,
227
201
  alt: "Cover preview"
228
- }, null, 8, Re)) : _e("", !0),
229
- l("label", Me, [
230
- p(V(E.value ? "Replace" : "Choose image") + " ", 1),
202
+ }, null, 8, Ae)) : _e("", !0),
203
+ l("label", Fe, [
204
+ g(V(D.value ? "Replace" : "Choose image") + " ", 1),
231
205
  l("input", {
232
206
  type: "file",
233
207
  accept: "image/*",
234
- onChange: me,
235
- hidden: ""
208
+ hidden: "",
209
+ onChange: pe
236
210
  }, null, 32)
237
211
  ])
238
212
  ])
239
213
  ]),
240
214
  e[23] || (e[23] = l("div", { class: "be-field-group-label" }, [
241
- p("Series "),
215
+ g(" Series "),
242
216
  l("span", { class: "be-optional" }, "(optional)")
243
217
  ], -1)),
244
- l("div", Fe, [
218
+ l("div", Me, [
245
219
  e[19] || (e[19] = l("label", { class: "be-label" }, "Series ID", -1)),
246
220
  d(l("input", {
221
+ "onUpdate:modelValue": e[7] || (e[7] = (t) => T.value = t),
247
222
  class: "be-input",
248
223
  type: "text",
249
- "onUpdate:modelValue": e[7] || (e[7] = (a) => I.value = a),
250
224
  placeholder: "e.g. go-backend"
251
225
  }, null, 512), [
252
- [v, I.value]
226
+ [v, T.value]
253
227
  ])
254
228
  ]),
255
- l("div", Ne, [
229
+ l("div", $e, [
256
230
  e[20] || (e[20] = l("label", { class: "be-label" }, "Series Title", -1)),
257
231
  d(l("input", {
232
+ "onUpdate:modelValue": e[8] || (e[8] = (t) => C.value = t),
258
233
  class: "be-input",
259
234
  type: "text",
260
- "onUpdate:modelValue": e[8] || (e[8] = (a) => C.value = a),
261
235
  placeholder: "e.g. Go Backend Series"
262
236
  }, null, 512), [
263
237
  [v, C.value]
264
238
  ])
265
239
  ]),
266
- l("div", Oe, [
240
+ l("div", He, [
267
241
  l("div", null, [
268
242
  e[21] || (e[21] = l("label", { class: "be-label" }, "Part", -1)),
269
243
  d(l("input", {
244
+ "onUpdate:modelValue": e[9] || (e[9] = (t) => I.value = t),
270
245
  class: "be-input be-input--narrow",
271
246
  type: "number",
272
- min: "1",
273
- "onUpdate:modelValue": e[9] || (e[9] = (a) => T.value = a)
247
+ min: "1"
274
248
  }, null, 512), [
275
249
  [
276
250
  v,
277
- T.value,
251
+ I.value,
278
252
  void 0,
279
253
  { number: !0 }
280
254
  ]
@@ -283,14 +257,14 @@ const ye = { class: "be-root" }, Pe = { class: "be-meta" }, Ie = { class: "be-fi
283
257
  l("div", null, [
284
258
  e[22] || (e[22] = l("label", { class: "be-label" }, "Total Parts", -1)),
285
259
  d(l("input", {
260
+ "onUpdate:modelValue": e[10] || (e[10] = (t) => U.value = t),
286
261
  class: "be-input be-input--narrow",
287
262
  type: "number",
288
- min: "1",
289
- "onUpdate:modelValue": e[10] || (e[10] = (a) => h.value = a)
263
+ min: "1"
290
264
  }, null, 512), [
291
265
  [
292
266
  v,
293
- h.value,
267
+ U.value,
294
268
  void 0,
295
269
  { number: !0 }
296
270
  ]
@@ -298,50 +272,50 @@ const ye = { class: "be-root" }, Pe = { class: "be-meta" }, Ie = { class: "be-fi
298
272
  ])
299
273
  ])
300
274
  ]),
301
- l("section", $e, [
275
+ l("section", Ne, [
302
276
  l("div", qe, [
303
- (x(), _(se, null, ne(re, (a) => l("button", {
304
- key: a.label,
277
+ (c(!0), m(te, null, ae(ye(Pe), (t) => (c(), m("button", {
278
+ key: t.label,
305
279
  type: "button",
306
280
  class: "be-toolbar__btn",
307
- title: a.label,
308
- onClick: (o) => ge(a)
309
- }, V(a.icon), 9, Ae)), 64))
281
+ title: t.label,
282
+ onClick: (o) => ce(t)
283
+ }, V(t.icon), 9, Ge))), 128))
310
284
  ]),
311
285
  l("div", Ke, [
312
- l("div", ze, [
313
- e[24] || (e[24] = l("div", { class: "be-pane__label" }, "Markdown", -1)),
286
+ l("div", We, [
287
+ e[24] || (e[24] = l("div", { class: "be-pane__label" }, " Markdown ", -1)),
314
288
  l("textarea", {
315
289
  ref_key: "textareaEl",
316
- ref: M,
290
+ ref: B,
317
291
  class: "be-pane__textarea",
318
- value: u.value,
319
- onInput: be,
292
+ value: r.value,
320
293
  placeholder: "Write your post in markdown…",
321
- spellcheck: "true"
322
- }, null, 40, Ge)
294
+ spellcheck: "true",
295
+ onInput: de
296
+ }, null, 40, je)
323
297
  ]),
324
- l("div", We, [
325
- e[25] || (e[25] = l("div", { class: "be-pane__label" }, "Preview", -1)),
298
+ l("div", ze, [
299
+ e[25] || (e[25] = l("div", { class: "be-pane__label" }, " Preview ", -1)),
326
300
  l("div", {
327
301
  class: "be-pane__preview prose",
328
- innerHTML: de.value
329
- }, null, 8, je)
302
+ innerHTML: ue.value
303
+ }, null, 8, Je)
330
304
  ])
331
305
  ])
332
306
  ]),
333
- l("footer", Je, [
334
- l("span", Qe, "~" + V(c.value) + " min read", 1),
307
+ l("footer", Qe, [
308
+ l("span", Xe, "~" + V(p.value) + " min read", 1),
335
309
  l("button", {
336
310
  type: "button",
337
311
  class: "be-publish",
338
- disabled: !F.value,
339
- onClick: fe
340
- }, " Publish Post ", 8, Xe)
312
+ disabled: !O.value,
313
+ onClick: me
314
+ }, " Publish Post ", 8, Ye)
341
315
  ])
342
316
  ]));
343
317
  }
344
318
  });
345
319
  export {
346
- el as default
320
+ al as default
347
321
  };
package/dist/index28.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const e=require("vue"),h={class:"table-panel"},f={key:0,class:"dt-empty"},g={class:"dt-toolbar"},y=["placeholder","value"],C={class:"dt-pills"},v=["onClick"],B={class:"dt-count"},E={key:0,class:"dt-col-panel"},p=["checked","onChange"],V={class:"dt-scroll"},b=e.defineComponent({__name:"DataTable",props:{columnDefs:{default:()=>[]},colVisibility:{default:()=>({})},statuses:{default:()=>[]},statusFilter:{default:"all"},statusLabels:{default:()=>({})},searchValue:{default:""},searchPlaceholder:{default:"Search…"},totalCount:{default:0},filteredCount:{default:0},emptyMessage:{default:"No data yet."}},emits:["searchChange","statusChange","colToggle"],setup(t,{emit:u}){const i=t,c=u,o=e.ref(!1),s=e.ref(null);function d(a){return a==="all"?"All":i.statusLabels[a]??a}function r(a){var n;(n=s.value)!=null&&n.contains(a.target)||(o.value=!1,document.removeEventListener("click",r))}function m(){o.value=!o.value,o.value&&setTimeout(()=>document.addEventListener("click",r),0)}return(a,n)=>(e.openBlock(),e.createElementBlock("div",h,[t.totalCount===0?(e.openBlock(),e.createElementBlock("p",f,e.toDisplayString(t.emptyMessage),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",g,[t.statuses.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("input",{class:"dt-search",type:"search",placeholder:t.searchPlaceholder,value:t.searchValue,onInput:n[0]||(n[0]=l=>c("searchChange",l.target.value))},null,40,y),e.createElementVNode("div",C,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.statuses,l=>(e.openBlock(),e.createElementBlock("button",{key:l,class:e.normalizeClass(["dt-pill",{"dt-pill--active":t.statusFilter===l}]),onClick:k=>c("statusChange",l)},e.toDisplayString(d(l)),11,v))),128))]),e.createElementVNode("span",B,e.toDisplayString(t.filteredCount)+" of "+e.toDisplayString(t.totalCount),1)],64)):e.createCommentVNode("",!0),t.columnDefs.length>0?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"colWrapRef",ref:s,class:"dt-col-wrap"},[e.createElementVNode("button",{class:"dt-col-btn",onClick:m},"⚙ Columns"),o.value?(e.openBlock(),e.createElementBlock("div",E,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columnDefs,l=>(e.openBlock(),e.createElementBlock("label",{key:l.key,class:"dt-col-check"},[e.createElementVNode("input",{type:"checkbox",checked:t.colVisibility[l.key]??!0,onChange:k=>c("colToggle",l.key)},null,40,p),e.createTextVNode(" "+e.toDisplayString(l.label),1)]))),128))])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0)]),e.createElementVNode("div",V,[e.renderSlot(a.$slots,"default")])],64))]))}});module.exports=b;
1
+ "use strict";const e=require("vue"),h=require("./index75.cjs"),f={class:"table-panel"},g={key:0,class:"dt-empty"},y={class:"dt-toolbar"},C=["placeholder","value"],v={class:"dt-pills"},B=["onClick"],E={class:"dt-count"},p={key:0,class:"dt-col-panel"},b=["checked","onChange"],V={class:"dt-scroll"},N=e.defineComponent({__name:"DataTable",props:{columnDefs:{default:()=>[]},colVisibility:{default:()=>({})},statuses:{default:()=>[]},statusFilter:{default:"all"},statusLabels:{default:()=>({})},searchValue:{default:""},searchPlaceholder:{default:"Search…"},totalCount:{default:0},filteredCount:{default:0},emptyMessage:{default:"No data yet."}},emits:["searchChange","statusChange","colToggle"],setup(t,{emit:u}){const i=t,c=u,a=e.ref(!1),s=e.ref(null);function d(o){return h.getStatusLabel(o,i.statusLabels)}function r(o){var n;(n=s.value)!=null&&n.contains(o.target)||(a.value=!1,document.removeEventListener("click",r))}function m(){a.value=!a.value,a.value&&setTimeout(()=>document.addEventListener("click",r),0)}return(o,n)=>(e.openBlock(),e.createElementBlock("div",f,[t.totalCount===0?(e.openBlock(),e.createElementBlock("p",g,e.toDisplayString(t.emptyMessage),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",y,[t.statuses.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("input",{class:"dt-search",type:"search",placeholder:t.searchPlaceholder,value:t.searchValue,onInput:n[0]||(n[0]=l=>c("searchChange",l.target.value))},null,40,C),e.createElementVNode("div",v,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.statuses,l=>(e.openBlock(),e.createElementBlock("button",{key:l,class:e.normalizeClass(["dt-pill",{"dt-pill--active":t.statusFilter===l}]),onClick:k=>c("statusChange",l)},e.toDisplayString(d(l)),11,B))),128))]),e.createElementVNode("span",E,e.toDisplayString(t.filteredCount)+" of "+e.toDisplayString(t.totalCount),1)],64)):e.createCommentVNode("",!0),t.columnDefs.length>0?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"colWrapRef",ref:s,class:"dt-col-wrap"},[e.createElementVNode("button",{class:"dt-col-btn",onClick:m}," ⚙ Columns "),a.value?(e.openBlock(),e.createElementBlock("div",p,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columnDefs,l=>(e.openBlock(),e.createElementBlock("label",{key:l.key,class:"dt-col-check"},[e.createElementVNode("input",{type:"checkbox",checked:t.colVisibility[l.key]??!0,onChange:k=>c("colToggle",l.key)},null,40,b),e.createTextVNode(" "+e.toDisplayString(l.label),1)]))),128))])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0)]),e.createElementVNode("div",V,[e.renderSlot(o.$slots,"default")])],64))]))}});module.exports=N;
package/dist/index28.mjs CHANGED
@@ -1,11 +1,12 @@
1
- import { defineComponent as V, ref as m, openBlock as l, createElementBlock as a, toDisplayString as u, Fragment as d, createElementVNode as n, renderList as k, normalizeClass as p, createCommentVNode as r, createTextVNode as D, renderSlot as L } from "vue";
1
+ import { defineComponent as p, ref as m, openBlock as l, createElementBlock as a, toDisplayString as u, Fragment as i, createElementVNode as s, renderList as k, normalizeClass as L, createCommentVNode as r, createTextVNode as V, renderSlot as D } from "vue";
2
+ import { getStatusLabel as S } from "./index75.mjs";
2
3
  const T = { class: "table-panel" }, E = {
3
4
  key: 0,
4
5
  class: "dt-empty"
5
- }, N = { class: "dt-toolbar" }, S = ["placeholder", "value"], x = { class: "dt-pills" }, F = ["onClick"], $ = { class: "dt-count" }, w = {
6
+ }, N = { class: "dt-toolbar" }, $ = ["placeholder", "value"], x = { class: "dt-pills" }, F = ["onClick"], w = { class: "dt-count" }, B = {
6
7
  key: 0,
7
8
  class: "dt-col-panel"
8
- }, B = ["checked", "onChange"], M = { class: "dt-scroll" }, R = /* @__PURE__ */ V({
9
+ }, M = ["checked", "onChange"], P = { class: "dt-scroll" }, z = /* @__PURE__ */ p({
9
10
  __name: "DataTable",
10
11
  props: {
11
12
  columnDefs: { default: () => [] },
@@ -21,36 +22,36 @@ const T = { class: "table-panel" }, E = {
21
22
  },
22
23
  emits: ["searchChange", "statusChange", "colToggle"],
23
24
  setup(e, { emit: g }) {
24
- const v = e, i = g, o = m(!1), h = m(null);
25
- function C(s) {
26
- return s === "all" ? "All" : v.statusLabels[s] ?? s;
25
+ const v = e, d = g, n = m(!1), h = m(null);
26
+ function C(o) {
27
+ return S(o, v.statusLabels);
27
28
  }
28
- function f(s) {
29
+ function f(o) {
29
30
  var c;
30
- (c = h.value) != null && c.contains(s.target) || (o.value = !1, document.removeEventListener("click", f));
31
+ (c = h.value) != null && c.contains(o.target) || (n.value = !1, document.removeEventListener("click", f));
31
32
  }
32
33
  function y() {
33
- o.value = !o.value, o.value && setTimeout(() => document.addEventListener("click", f), 0);
34
+ n.value = !n.value, n.value && setTimeout(() => document.addEventListener("click", f), 0);
34
35
  }
35
- return (s, c) => (l(), a("div", T, [
36
- e.totalCount === 0 ? (l(), a("p", E, u(e.emptyMessage), 1)) : (l(), a(d, { key: 1 }, [
37
- n("div", N, [
38
- e.statuses.length > 0 ? (l(), a(d, { key: 0 }, [
39
- n("input", {
36
+ return (o, c) => (l(), a("div", T, [
37
+ e.totalCount === 0 ? (l(), a("p", E, u(e.emptyMessage), 1)) : (l(), a(i, { key: 1 }, [
38
+ s("div", N, [
39
+ e.statuses.length > 0 ? (l(), a(i, { key: 0 }, [
40
+ s("input", {
40
41
  class: "dt-search",
41
42
  type: "search",
42
43
  placeholder: e.searchPlaceholder,
43
44
  value: e.searchValue,
44
- onInput: c[0] || (c[0] = (t) => i("searchChange", t.target.value))
45
- }, null, 40, S),
46
- n("div", x, [
47
- (l(!0), a(d, null, k(e.statuses, (t) => (l(), a("button", {
45
+ onInput: c[0] || (c[0] = (t) => d("searchChange", t.target.value))
46
+ }, null, 40, $),
47
+ s("div", x, [
48
+ (l(!0), a(i, null, k(e.statuses, (t) => (l(), a("button", {
48
49
  key: t,
49
- class: p(["dt-pill", { "dt-pill--active": e.statusFilter === t }]),
50
- onClick: (b) => i("statusChange", t)
50
+ class: L(["dt-pill", { "dt-pill--active": e.statusFilter === t }]),
51
+ onClick: (b) => d("statusChange", t)
51
52
  }, u(C(t)), 11, F))), 128))
52
53
  ]),
53
- n("span", $, u(e.filteredCount) + " of " + u(e.totalCount), 1)
54
+ s("span", w, u(e.filteredCount) + " of " + u(e.totalCount), 1)
54
55
  ], 64)) : r("", !0),
55
56
  e.columnDefs.length > 0 ? (l(), a("div", {
56
57
  key: 1,
@@ -58,32 +59,32 @@ const T = { class: "table-panel" }, E = {
58
59
  ref: h,
59
60
  class: "dt-col-wrap"
60
61
  }, [
61
- n("button", {
62
+ s("button", {
62
63
  class: "dt-col-btn",
63
64
  onClick: y
64
- }, "⚙ Columns"),
65
- o.value ? (l(), a("div", w, [
66
- (l(!0), a(d, null, k(e.columnDefs, (t) => (l(), a("label", {
65
+ }, " ⚙ Columns "),
66
+ n.value ? (l(), a("div", B, [
67
+ (l(!0), a(i, null, k(e.columnDefs, (t) => (l(), a("label", {
67
68
  key: t.key,
68
69
  class: "dt-col-check"
69
70
  }, [
70
- n("input", {
71
+ s("input", {
71
72
  type: "checkbox",
72
73
  checked: e.colVisibility[t.key] ?? !0,
73
- onChange: (b) => i("colToggle", t.key)
74
- }, null, 40, B),
75
- D(" " + u(t.label), 1)
74
+ onChange: (b) => d("colToggle", t.key)
75
+ }, null, 40, M),
76
+ V(" " + u(t.label), 1)
76
77
  ]))), 128))
77
78
  ])) : r("", !0)
78
79
  ], 512)) : r("", !0)
79
80
  ]),
80
- n("div", M, [
81
- L(s.$slots, "default")
81
+ s("div", P, [
82
+ D(o.$slots, "default")
82
83
  ])
83
84
  ], 64))
84
85
  ]));
85
86
  }
86
87
  });
87
88
  export {
88
- R as default
89
+ z as default
89
90
  };