@wishbone-media/spark 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ref as ke, reactive as Tt, watch as et, onMounted as Yt, nextTick as dr, onUnmounted as Fn, openBlock as C, createElementBlock as P, createElementVNode as T, Fragment as ze, renderList as rt, toDisplayString as we, createTextVNode as Ue, createCommentVNode as pe, withDirectives as en, vModelText as go, vModelSelect as va, vShow as fr, computed as te, shallowRef as ya, getCurrentScope as ba, onScopeDispose as xa, shallowReadonly as dn, unref as ne, resolveComponent as Ze, normalizeClass as Ee, createVNode as se, renderSlot as Ge, createBlock as Me, resolveDynamicComponent as yt, markRaw as wn, Transition as pr, withCtx as Se, normalizeProps as wa, mergeProps as kt, Teleport as mr, TransitionGroup as En, inject as io, onUpdated as gr, provide as Sa, useSlots as lo, resolveDirective as ka, normalizeStyle as Oo, withModifiers as Qe, toHandlers as hr, h as as } from "vue";
1
+ import { ref as ke, reactive as Tt, watch as et, onMounted as Yt, nextTick as dr, onUnmounted as Fn, openBlock as C, createElementBlock as P, createElementVNode as T, Fragment as ze, renderList as rt, toDisplayString as we, createTextVNode as Ue, createCommentVNode as pe, withDirectives as en, vModelText as go, vModelSelect as va, vShow as fr, computed as te, shallowRef as ya, getCurrentScope as ba, onScopeDispose as xa, shallowReadonly as dn, unref as ne, resolveComponent as Ge, normalizeClass as Ee, createVNode as se, renderSlot as Ze, createBlock as Me, resolveDynamicComponent as yt, markRaw as wn, Transition as pr, withCtx as Se, normalizeProps as wa, mergeProps as kt, Teleport as mr, TransitionGroup as En, inject as io, onUpdated as gr, provide as Sa, useSlots as lo, resolveDirective as ka, normalizeStyle as Oo, withModifiers as Qe, toHandlers as hr, h as as } from "vue";
2
2
  import { icon as Ut, library as vr } from "@fortawesome/fontawesome-svg-core";
3
3
  import { FontAwesomeIcon as Mn } from "@fortawesome/vue-fontawesome";
4
4
  import { faArrowUpRightFromSquare as Ca, faCopy as Ea, faCircleDot as yr, faEyeDropper as br, faAnglesLeft as xr, faAnglesRight as wr, faStar as Ta, faSpinnerThird as Sr, faCircle as _a, faFile as Po, faCalendar as kr, faArrowUp as Cr, faArrowDown as Er, faPlus as Tr, faCircleCheck as $a, faInbox as La, faCloudArrowUp as Ma, faCloudDownload as Oa, faBolt as Pa, faUndo as Aa, faLock as Ra, faEyeSlash as Ia, faEye as Fa, faSignOut as Da, faXmark as Ao, faTrash as _r, faTimes as ja, faStreetView as Va, faSortUp as Ha, faSortDown as za, faSort as Ba, faScaleBalanced as Na, faSatelliteDish as qa, faLayerPlus as Wa, faLaptopMobile as Ua, faInfoCircle as Za, faGripDotsVertical as $r, faGearComplex as Ga, faFlag as Ya, faFaceSmileWink as Xa, faFaceSmileRelaxed as Ka, faExclamationTriangle as Ja, faEllipsisVertical as Qa, faEllipsis as ei, faEdit as ti, faComments as ni, faCircleXmark as oi, faCircleUser as si, faChevronUp as ri, faChevronRight as Lr, faChevronLeft as Mr, faChevronDown as Or, faCheckCircle as ai, faCheck as Ro, faBullhorn as ii, faBellRing as li, faBarsSort as ci, faArrowRightToLine as ui, faArrowLeftToLine as di } from "@fortawesome/pro-regular-svg-icons";
@@ -1716,7 +1716,7 @@ const Xl = { class: "flex items-center" }, Kl = { class: "shrink-0 self-start" }
1716
1716
  info: "text-blue-400 hover:bg-blue-100"
1717
1717
  })[t.type]);
1718
1718
  return (s, c) => {
1719
- const l = Ze("font-awesome-icon");
1719
+ const l = Ge("font-awesome-icon");
1720
1720
  return C(), P("div", {
1721
1721
  class: Ee(["rounded-md border p-4", n.value])
1722
1722
  }, [
@@ -1728,7 +1728,7 @@ const Xl = { class: "flex items-center" }, Kl = { class: "shrink-0 self-start" }
1728
1728
  }, null, 8, ["icon", "class"])
1729
1729
  ]),
1730
1730
  T("div", Jl, [
1731
- Ge(s.$slots, "default")
1731
+ Ze(s.$slots, "default")
1732
1732
  ]),
1733
1733
  e.closeable ? (C(), P("div", Ql, [
1734
1734
  T("div", ec, [
@@ -1888,7 +1888,7 @@ const Xl = { class: "flex items-center" }, Kl = { class: "shrink-0 self-start" }
1888
1888
  n("select", c);
1889
1889
  };
1890
1890
  return (c, l) => {
1891
- const u = Ze("font-awesome-icon");
1891
+ const u = Ge("font-awesome-icon");
1892
1892
  return C(), P("div", tc, [
1893
1893
  T("div", nc, [
1894
1894
  T("div", oc, [
@@ -1927,12 +1927,12 @@ const Xl = { class: "flex items-center" }, Kl = { class: "shrink-0 self-start" }
1927
1927
  ]),
1928
1928
  T("div", pc, [
1929
1929
  c.$slots.bottom || e.bottomSlot ? (C(), P("div", mc, [
1930
- Ge(c.$slots, "bottom", {}, () => [
1930
+ Ze(c.$slots, "bottom", {}, () => [
1931
1931
  e.bottomSlot ? (C(), Me(yt(e.bottomSlot), { key: 0 })) : pe("", !0)
1932
1932
  ])
1933
1933
  ])) : pe("", !0),
1934
1934
  c.$slots.footer || e.footerSlot ? (C(), P("div", gc, [
1935
- Ge(c.$slots, "footer", {}, () => [
1935
+ Ze(c.$slots, "footer", {}, () => [
1936
1936
  e.footerSlot ? (C(), Me(yt(e.footerSlot), { key: 0 })) : pe("", !0)
1937
1937
  ])
1938
1938
  ])) : pe("", !0)
@@ -2551,7 +2551,7 @@ const nt = new yc(), Xp = {
2551
2551
  n("select", a);
2552
2552
  };
2553
2553
  return (a, s) => {
2554
- const c = Ze("font-awesome-icon");
2554
+ const c = Ge("font-awesome-icon");
2555
2555
  return C(), P("div", Cc, [
2556
2556
  T("div", Ec, [
2557
2557
  T("div", Tc, [
@@ -2707,7 +2707,7 @@ const nt = new yc(), Xp = {
2707
2707
  disabled: e.disabled,
2708
2708
  onClick: u[0] || (u[0] = (d) => l.$emit("click"))
2709
2709
  }, [
2710
- Ge(l.$slots, "default")
2710
+ Ze(l.$slots, "default")
2711
2711
  ], 10, Hc));
2712
2712
  }
2713
2713
  }, sa = {
@@ -2726,7 +2726,7 @@ const nt = new yc(), Xp = {
2726
2726
  ref: t,
2727
2727
  class: "inline-flex rounded-md shadow-xs"
2728
2728
  }, [
2729
- Ge(s.$slots, "default")
2729
+ Ze(s.$slots, "default")
2730
2730
  ], 512));
2731
2731
  }
2732
2732
  }, zc = { class: "flex min-w-0 items-center gap-3" }, Bc = {
@@ -2770,8 +2770,8 @@ const nt = new yc(), Xp = {
2770
2770
  default: ""
2771
2771
  },
2772
2772
  // Default header: main heading text. Renders the header without needing
2773
- // the #header slot; combine with backTo and the title-extra/nav/meta/actions
2774
- // slots. The #header slot overrides the default header entirely.
2773
+ // the #header slot; combine with backTo and the named/catch-all slots.
2774
+ // The #header slot overrides the default header entirely.
2775
2775
  title: {
2776
2776
  type: String,
2777
2777
  default: null
@@ -2784,7 +2784,7 @@ const nt = new yc(), Xp = {
2784
2784
  },
2785
2785
  setup(e, { expose: t }) {
2786
2786
  const n = e, o = lo(), r = bt(), a = ke(null), s = te(
2787
- () => !!(n.title || n.backTo || o["title-extra"] || o.nav || o.meta || o.actions)
2787
+ () => !!(n.title || n.backTo || o["title-extra"] || o.nav || o["header-left"] || o["header-right"] || o.actions)
2788
2788
  );
2789
2789
  function c() {
2790
2790
  a.value && (a.value.scrollTop = 0);
@@ -2796,7 +2796,7 @@ const nt = new yc(), Xp = {
2796
2796
  key: 0,
2797
2797
  class: Ee(["border-b border-gray-300 px-[30px] py-5", n.headerClass])
2798
2798
  }, [
2799
- Ge(l.$slots, "header")
2799
+ Ze(l.$slots, "header")
2800
2800
  ], 2)) : s.value ? (C(), P("div", {
2801
2801
  key: 1,
2802
2802
  class: Ee([
@@ -2820,14 +2820,15 @@ const nt = new yc(), Xp = {
2820
2820
  _: 1
2821
2821
  })) : pe("", !0),
2822
2822
  n.title ? (C(), P("h3", Bc, we(n.title), 1)) : pe("", !0),
2823
- Ge(l.$slots, "title-extra"),
2823
+ Ze(l.$slots, "title-extra"),
2824
2824
  l.$slots.nav ? (C(), P("div", Nc, [
2825
- Ge(l.$slots, "nav")
2826
- ])) : pe("", !0)
2825
+ Ze(l.$slots, "nav")
2826
+ ])) : pe("", !0),
2827
+ Ze(l.$slots, "header-left")
2827
2828
  ]),
2828
- l.$slots.meta || l.$slots.actions ? (C(), P("div", qc, [
2829
- Ge(l.$slots, "meta"),
2830
- Ge(l.$slots, "actions")
2829
+ l.$slots["header-right"] || l.$slots.actions ? (C(), P("div", qc, [
2830
+ Ze(l.$slots, "header-right"),
2831
+ Ze(l.$slots, "actions")
2831
2832
  ])) : pe("", !0)
2832
2833
  ], 2)) : pe("", !0),
2833
2834
  T("div", {
@@ -2840,7 +2841,7 @@ const nt = new yc(), Xp = {
2840
2841
  n.bodyClass
2841
2842
  ])
2842
2843
  }, [
2843
- Ge(l.$slots, "default")
2844
+ Ze(l.$slots, "default")
2844
2845
  ], 2)
2845
2846
  ], 2));
2846
2847
  }
@@ -2948,7 +2949,7 @@ const nt = new yc(), Xp = {
2948
2949
  }
2949
2950
  }
2950
2951
  return (p, w) => {
2951
- const m = Ze("font-awesome-icon"), v = ka("spark-tooltip");
2952
+ const m = Ge("font-awesome-icon"), v = ka("spark-tooltip");
2952
2953
  return en((C(), Me(yt(g.value ? "a" : "span"), {
2953
2954
  href: i.value || void 0,
2954
2955
  target: g.value && e.openNew ? "_blank" : void 0,
@@ -2961,7 +2962,7 @@ const nt = new yc(), Xp = {
2961
2962
  key: 0,
2962
2963
  icon: e.icon
2963
2964
  }, null, 8, ["icon"])) : pe("", !0),
2964
- Ge(p.$slots, "default", {}, () => [
2965
+ Ze(p.$slots, "default", {}, () => [
2965
2966
  Ue(we(e.label), 1)
2966
2967
  ]),
2967
2968
  e.copyToClipboard ? (C(), Me(m, {
@@ -6153,7 +6154,7 @@ const qe = { Plugins: { Hash: Kn }, version: "6.1.14", openers: /* @__PURE__ */
6153
6154
  ref_key: "containerRef",
6154
6155
  ref: n
6155
6156
  }, [
6156
- Ge(a.$slots, "default")
6157
+ Ze(a.$slots, "default")
6157
6158
  ], 512));
6158
6159
  }
6159
6160
  }, ru = ["innerHTML"], au = { key: 1 }, em = {
@@ -6255,7 +6256,7 @@ const qe = { Plugins: { Hash: Kn }, version: "6.1.14", openers: /* @__PURE__ */
6255
6256
  onFocusin: p,
6256
6257
  onFocusout: w
6257
6258
  }, [
6258
- Ge(y.$slots, "default")
6259
+ Ze(y.$slots, "default")
6259
6260
  ], 544),
6260
6261
  (C(), Me(mr, { to: "body" }, [
6261
6262
  se(pr, { name: "spark-tooltip" }, {
@@ -6270,7 +6271,7 @@ const qe = { Plugins: { Hash: Kn }, version: "6.1.14", openers: /* @__PURE__ */
6270
6271
  onMouseenter: m,
6271
6272
  onMouseleave: v
6272
6273
  }, [
6273
- Ge(y.$slots, "content", {}, () => [
6274
+ Ze(y.$slots, "content", {}, () => [
6274
6275
  e.html ? (C(), P("span", {
6275
6276
  key: 0,
6276
6277
  innerHTML: e.content
@@ -6459,7 +6460,7 @@ const qe = { Plugins: { Hash: Kn }, version: "6.1.14", openers: /* @__PURE__ */
6459
6460
  selectedFile: s,
6460
6461
  uploading: c
6461
6462
  }), (v, y) => {
6462
- const b = Ze("FormKit"), x = Ze("font-awesome-icon");
6463
+ const b = Ge("FormKit"), x = Ge("font-awesome-icon");
6463
6464
  return C(), P("div", null, [
6464
6465
  e.label ? (C(), P("label", iu, we(e.label), 1)) : pe("", !0),
6465
6466
  e.variant === "dashed" ? (C(), P("div", {
@@ -6684,7 +6685,7 @@ const qe = { Plugins: { Hash: Kn }, version: "6.1.14", openers: /* @__PURE__ */
6684
6685
  }
6685
6686
  }
6686
6687
  return (h, p) => {
6687
- const w = Ze("font-awesome-icon"), m = Ze("FormKit");
6688
+ const w = Ge("font-awesome-icon"), m = Ge("FormKit");
6688
6689
  return C(), P("div", null, [
6689
6690
  e.label ? (C(), P("label", gu, we(e.label), 1)) : pe("", !0),
6690
6691
  e.modelValue ? (C(), Me(su, {
@@ -6825,7 +6826,7 @@ const qe = { Plugins: { Hash: Kn }, version: "6.1.14", openers: /* @__PURE__ */
6825
6826
  danger: "text-red-400"
6826
6827
  })[t.type]);
6827
6828
  return (l, u) => {
6828
- const d = Ze("font-awesome-icon");
6829
+ const d = Ge("font-awesome-icon");
6829
6830
  return C(), P("div", wu, [
6830
6831
  a.value ? (C(), P("div", {
6831
6832
  key: 0,
@@ -7180,7 +7181,7 @@ const It = new Cu(), Eu = { class: "fixed inset-0 z-10 w-screen overflow-y-auto"
7180
7181
  return (v, y) => (C(), P("nav", {
7181
7182
  class: Ee(g.value)
7182
7183
  }, [
7183
- a.value === "custom" ? Ge(v.$slots, "default", {
7184
+ a.value === "custom" ? Ze(v.$slots, "default", {
7184
7185
  key: 0,
7185
7186
  items: s.value,
7186
7187
  activeId: c.value,
@@ -7778,7 +7779,7 @@ const Uu = (e) => {
7778
7779
  () => n.sparkTable.params.page < Bt(n.sparkTable.response.meta, "last_page", 1)
7779
7780
  ), u = te(() => n.sparkTable.params.page > 1);
7780
7781
  return (d, g) => {
7781
- const i = Ze("font-awesome-icon");
7782
+ const i = Ge("font-awesome-icon");
7782
7783
  return C(), P("div", null, [
7783
7784
  T("div", dd, [
7784
7785
  c.value.length > 1 ? (C(), P("div", fd, [
@@ -7845,7 +7846,7 @@ const Uu = (e) => {
7845
7846
  });
7846
7847
  };
7847
7848
  return (s, c) => {
7848
- const l = Ze("FormKit");
7849
+ const l = Ge("FormKit");
7849
7850
  return C(), P("div", hd, [
7850
7851
  se(l, {
7851
7852
  "model-value": e.sparkTable.params.limit,
@@ -7877,7 +7878,7 @@ const Uu = (e) => {
7877
7878
  key: 0,
7878
7879
  class: Ee(r.value)
7879
7880
  }, [
7880
- Ge(a.$slots, "default")
7881
+ Ze(a.$slots, "default")
7881
7882
  ], 2)) : pe("", !0);
7882
7883
  }
7883
7884
  }, bd = { class: "spark-table-search" }, xd = {
@@ -7919,7 +7920,7 @@ const Uu = (e) => {
7919
7920
  s && s !== n.value ? n.value = s : !s && n.value && (n.value = "");
7920
7921
  }
7921
7922
  ), (s, c) => {
7922
- const l = Ze("FormKit");
7923
+ const l = Ge("FormKit");
7923
7924
  return C(), P("div", bd, [
7924
7925
  se(l, kt({
7925
7926
  modelValue: n.value,
@@ -7966,7 +7967,7 @@ const Uu = (e) => {
7966
7967
  s != null && s !== "" ? n.value !== s && (n.value = s) : n.value && (n.value = "");
7967
7968
  }
7968
7969
  ), (s, c) => {
7969
- const l = Ze("FormKit");
7970
+ const l = Ge("FormKit");
7970
7971
  return C(), P("div", Sd, [
7971
7972
  se(l, kt({
7972
7973
  modelValue: n.value,
@@ -8070,7 +8071,7 @@ const Uu = (e) => {
8070
8071
  } else s && s !== n.value && (n.value = s);
8071
8072
  }
8072
8073
  ), (s, c) => {
8073
- const l = Ze("FormKit");
8074
+ const l = Ge("FormKit");
8074
8075
  return C(), P("div", Ld, [
8075
8076
  (C(), Me(l, kt({
8076
8077
  key: a.value,
@@ -8126,7 +8127,7 @@ const Uu = (e) => {
8126
8127
  t.sparkTable.methods.applyParams({ ...l, page: 1 });
8127
8128
  };
8128
8129
  return (o, r) => {
8129
- const a = Ze("font-awesome-icon");
8130
+ const a = Ge("font-awesome-icon");
8130
8131
  return C(), P("div", Pd, [
8131
8132
  se(pt, {
8132
8133
  variant: "secondary",
@@ -8457,7 +8458,7 @@ const Uu = (e) => {
8457
8458
  sparkTable: i,
8458
8459
  table: c
8459
8460
  }), (m, v) => {
8460
- const y = Ze("font-awesome-icon");
8461
+ const y = Ge("font-awesome-icon");
8461
8462
  return C(), P("div", {
8462
8463
  class: "spark-table",
8463
8464
  style: Oo(r.value)
@@ -8473,7 +8474,7 @@ const Uu = (e) => {
8473
8474
  "spark-table": i,
8474
8475
  config: b.config
8475
8476
  }, null, 8, ["class", "spark-table", "config"]))), 128)),
8476
- Ge(m.$slots, "header", {
8477
+ Ze(m.$slots, "header", {
8477
8478
  sparkTable: i,
8478
8479
  loading: l.value,
8479
8480
  error: u.value
@@ -8515,7 +8516,7 @@ const Uu = (e) => {
8515
8516
  "spark-table": i,
8516
8517
  onPaginate: i.methods.applyParams
8517
8518
  }, null, 8, ["spark-table", "onPaginate"]),
8518
- Ge(m.$slots, "footer", {
8519
+ Ze(m.$slots, "footer", {
8519
8520
  sparkTable: i,
8520
8521
  loading: l.value,
8521
8522
  error: u.value
@@ -9133,7 +9134,7 @@ const fm = [
9133
9134
  );
9134
9135
  }, p = te(() => n.mainNavStore.state.hidden ? ["w-0 overflow-hidden"] : [n.mainNavStore.state.collapsed ? "w-[80px]" : "w-[240px]"]), w = te(() => n.mainNavStore.state.hidden ? ["pl-2.5"] : [n.mainNavStore.state.collapsed ? "pl-[80px]" : "pl-[240px]"]);
9135
9136
  return (m, v) => {
9136
- const y = Ze("font-awesome-icon"), b = Ze("router-view");
9137
+ const y = Ge("font-awesome-icon"), b = Ge("router-view");
9137
9138
  return C(), P(ze, null, [
9138
9139
  T("div", {
9139
9140
  class: Ee([p.value, "fixed inset-y-0 flex transition-all z-100"])
@@ -9225,7 +9226,7 @@ const fm = [
9225
9226
  ], 10, ff)
9226
9227
  ]))), 128))
9227
9228
  ])) : pe("", !0),
9228
- Ge(m.$slots, "sidebar-footer"),
9229
+ Ze(m.$slots, "sidebar-footer"),
9229
9230
  T("a", {
9230
9231
  class: "font-medium grid place-content-center gap-x-3 rounded-md h-10 p-2.5 text-gray-800 text-[13px] hover:bg-gray-100 transition-all duration-300 ease-in-out",
9231
9232
  href: "#",
@@ -9246,7 +9247,7 @@ const fm = [
9246
9247
  T("div", mf, [
9247
9248
  T("div", gf, [
9248
9249
  T("div", hf, [
9249
- Ge(m.$slots, "header-left", {}, () => [
9250
+ Ze(m.$slots, "header-left", {}, () => [
9250
9251
  T("div", vf, [
9251
9252
  se(y, {
9252
9253
  icon: ne(Re).farBarsSort,
@@ -9255,7 +9256,7 @@ const fm = [
9255
9256
  }, null, 8, ["icon"])
9256
9257
  ])
9257
9258
  ]),
9258
- Ge(m.$slots, "header-center", {}, () => [
9259
+ Ze(m.$slots, "header-center", {}, () => [
9259
9260
  i.value ? (C(), P("div", {
9260
9261
  key: 0,
9261
9262
  class: "absolute left-1/2 -translate-x-1/2 cursor-pointer h-9 flex items-center",
@@ -9270,7 +9271,7 @@ const fm = [
9270
9271
  ])) : pe("", !0)
9271
9272
  ]),
9272
9273
  T("div", bf, [
9273
- Ge(m.$slots, "header-right", {}, () => [
9274
+ Ze(m.$slots, "header-right", {}, () => [
9274
9275
  e.appStore.state.showAppSelector ? (C(), P("button", {
9275
9276
  key: 0,
9276
9277
  class: "rounded-sm bg-white w-[42px] h-[42px] ring-1 ring-inset ring-gray-300",
@@ -9307,7 +9308,7 @@ const fm = [
9307
9308
  }
9308
9309
  }, wf = {}, Sf = { class: "h-full" };
9309
9310
  function kf(e, t) {
9310
- const n = Ze("router-view");
9311
+ const n = Ge("router-view");
9311
9312
  return C(), P("main", Sf, [
9312
9313
  se(n)
9313
9314
  ]);
@@ -9359,7 +9360,7 @@ const mm = /* @__PURE__ */ ln(wf, [["render", kf]]), Cf = { class: "h-full grid
9359
9360
  }
9360
9361
  };
9361
9362
  return (u, d) => {
9362
- const g = Ze("FormKit"), i = Ze("router-link");
9363
+ const g = Ge("FormKit"), i = Ge("router-link");
9363
9364
  return C(), P("div", Cf, [
9364
9365
  T("div", Ef, [
9365
9366
  a.logo ? (C(), P("img", {
@@ -9499,7 +9500,7 @@ const mm = /* @__PURE__ */ ln(wf, [["render", kf]]), Cf = { class: "h-full grid
9499
9500
  }
9500
9501
  };
9501
9502
  return (c, l) => {
9502
- const u = Ze("FormKit"), d = Ze("router-link");
9503
+ const u = Ge("FormKit"), d = Ge("router-link");
9503
9504
  return C(), P("div", Df, [
9504
9505
  T("div", jf, [
9505
9506
  n.logo ? (C(), P("img", {
@@ -9613,7 +9614,7 @@ const mm = /* @__PURE__ */ ln(wf, [["render", kf]]), Cf = { class: "h-full grid
9613
9614
  }
9614
9615
  };
9615
9616
  return (l, u) => {
9616
- const d = Ze("FormKit");
9617
+ const d = Ge("FormKit");
9617
9618
  return C(), P("div", Zf, [
9618
9619
  T("div", Gf, [
9619
9620
  r.logo ? (C(), P("img", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wishbone-media/spark",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -36,10 +36,11 @@
36
36
  <div v-if="$slots.nav" class="flex self-stretch items-stretch">
37
37
  <slot name="nav" />
38
38
  </div>
39
+ <slot name="header-left" />
39
40
  </div>
40
41
 
41
- <div v-if="$slots.meta || $slots.actions" class="flex shrink-0 items-center gap-4">
42
- <slot name="meta" />
42
+ <div v-if="$slots['header-right'] || $slots.actions" class="flex shrink-0 items-center gap-4">
43
+ <slot name="header-right" />
43
44
  <slot name="actions" />
44
45
  </div>
45
46
  </div>
@@ -95,8 +96,8 @@ const props = defineProps({
95
96
  default: '',
96
97
  },
97
98
  // Default header: main heading text. Renders the header without needing
98
- // the #header slot; combine with backTo and the title-extra/nav/meta/actions
99
- // slots. The #header slot overrides the default header entirely.
99
+ // the #header slot; combine with backTo and the named/catch-all slots.
100
+ // The #header slot overrides the default header entirely.
100
101
  title: {
101
102
  type: String,
102
103
  default: null,
@@ -114,7 +115,13 @@ const bodyEl = ref(null)
114
115
 
115
116
  const hasDefaultHeader = computed(() =>
116
117
  Boolean(
117
- props.title || props.backTo || slots['title-extra'] || slots.nav || slots.meta || slots.actions,
118
+ props.title ||
119
+ props.backTo ||
120
+ slots['title-extra'] ||
121
+ slots.nav ||
122
+ slots['header-left'] ||
123
+ slots['header-right'] ||
124
+ slots.actions,
118
125
  ),
119
126
  )
120
127