@codingfactory/inventory-locator-client 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ref as $, computed as J, onUnmounted as st, inject as Qe, defineComponent as ae, useId as be, watch as _e, openBlock as t, createElementBlock as n, normalizeClass as ee, createElementVNode as e, createBlock as K, resolveDynamicComponent as ct, withCtx as k, createCommentVNode as z, toDisplayString as d, renderSlot as he, withDirectives as ye, vShow as We, onMounted as ue, Fragment as G, renderList as ne, createVNode as I, unref as L, createTextVNode as D, normalizeStyle as ke, createStaticVNode as xe, withModifiers as me, Transition as Ie, resolveComponent as dt, withKeys as Ne, nextTick as Te, onBeforeUnmount as Ze, Teleport as ut, reactive as De, vModelText as ze, vModelCheckbox as vt } from "vue";
1
+ import { ref as $, computed as J, onUnmounted as st, inject as Qe, defineComponent as ae, useId as be, watch as _e, openBlock as t, createElementBlock as n, normalizeClass as ee, createElementVNode as e, createBlock as K, resolveDynamicComponent as ct, withCtx as k, createCommentVNode as M, toDisplayString as d, renderSlot as he, withDirectives as ye, vShow as We, onMounted as ue, Fragment as G, renderList as ne, createVNode as I, unref as x, createTextVNode as D, normalizeStyle as ke, createStaticVNode as xe, withModifiers as me, Transition as Ie, resolveComponent as dt, withKeys as Ne, nextTick as Te, onBeforeUnmount as Ze, Teleport as ut, reactive as De, vModelText as ze, vModelCheckbox as vt } from "vue";
2
2
  import { defineStore as Je } from "pinia";
3
3
  import _t from "axios";
4
4
  import { useRouter as Le } from "vue-router";
@@ -485,8 +485,8 @@ function Ve() {
485
485
  var b, B;
486
486
  r.value = !0, m.value = null;
487
487
  try {
488
- const S = h ? `?status=${h}` : "", x = await X().get(Y(`/counts${S}`));
489
- a.value = x.data.data;
488
+ const S = h ? `?status=${h}` : "", L = await X().get(Y(`/counts${S}`));
489
+ a.value = L.data.data;
490
490
  } catch (S) {
491
491
  throw m.value = ((B = (b = S.response) == null ? void 0 : b.data) == null ? void 0 : B.message) || "Failed to load sessions", S;
492
492
  } finally {
@@ -497,13 +497,13 @@ function Ve() {
497
497
  var B, S;
498
498
  r.value = !0, m.value = null;
499
499
  try {
500
- const M = (await X().post(Y("/counts"), {
500
+ const z = (await X().post(Y("/counts"), {
501
501
  name: h,
502
502
  scope_location_id: b || null
503
503
  })).data.data;
504
- return a.value.unshift(M), M;
505
- } catch (x) {
506
- throw m.value = ((S = (B = x.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to create session", x;
504
+ return a.value.unshift(z), z;
505
+ } catch (L) {
506
+ throw m.value = ((S = (B = L.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to create session", L;
507
507
  } finally {
508
508
  r.value = !1;
509
509
  }
@@ -524,10 +524,10 @@ function Ve() {
524
524
  var B, S;
525
525
  r.value = !0, m.value = null;
526
526
  try {
527
- const x = await X().patch(Y(`/counts/${h}`), { status: b });
528
- s.value = x.data.data;
529
- } catch (x) {
530
- throw m.value = ((S = (B = x.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to update session", x;
527
+ const L = await X().patch(Y(`/counts/${h}`), { status: b });
528
+ s.value = L.data.data;
529
+ } catch (L) {
530
+ throw m.value = ((S = (B = L.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to update session", L;
531
531
  } finally {
532
532
  r.value = !1;
533
533
  }
@@ -547,18 +547,18 @@ function Ve() {
547
547
  var B, S;
548
548
  r.value = !0, m.value = null;
549
549
  try {
550
- const x = new URLSearchParams();
551
- b != null && b.status && x.set("status", b.status), b != null && b.location_id && x.set("location_id", String(b.location_id)), b != null && b.discrepancies_only && x.set("discrepancies_only", "1");
552
- const M = await X().get(Y(`/counts/${h}/entries?${x}`));
553
- o.value = M.data.data;
554
- } catch (x) {
555
- throw m.value = ((S = (B = x.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to load entries", x;
550
+ const L = new URLSearchParams();
551
+ b != null && b.status && L.set("status", b.status), b != null && b.location_id && L.set("location_id", String(b.location_id)), b != null && b.discrepancies_only && L.set("discrepancies_only", "1");
552
+ const z = await X().get(Y(`/counts/${h}/entries?${L}`));
553
+ o.value = z.data.data;
554
+ } catch (L) {
555
+ throw m.value = ((S = (B = L.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to load entries", L;
556
556
  } finally {
557
557
  r.value = !1;
558
558
  }
559
559
  }
560
560
  async function _(h, b, B, S) {
561
- var x, M;
561
+ var L, z;
562
562
  m.value = null;
563
563
  try {
564
564
  const N = (await X().post(
@@ -567,19 +567,19 @@ function Ve() {
567
567
  )).data.data, Q = o.value.findIndex((C) => C.id === b);
568
568
  return Q !== -1 && (o.value[Q] = N), N;
569
569
  } catch (T) {
570
- throw m.value = ((M = (x = T.response) == null ? void 0 : x.data) == null ? void 0 : M.message) || "Failed to submit count", T;
570
+ throw m.value = ((z = (L = T.response) == null ? void 0 : L.data) == null ? void 0 : z.message) || "Failed to submit count", T;
571
571
  }
572
572
  }
573
573
  async function f(h, b) {
574
574
  var B, S;
575
575
  m.value = null;
576
576
  try {
577
- const M = (await X().post(
577
+ const z = (await X().post(
578
578
  Y(`/counts/${h}/entries/${b}/verify`)
579
579
  )).data.data, T = o.value.findIndex((N) => N.id === b);
580
- return T !== -1 && (o.value[T] = M), M;
581
- } catch (x) {
582
- throw m.value = ((S = (B = x.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to verify entry", x;
580
+ return T !== -1 && (o.value[T] = z), z;
581
+ } catch (L) {
582
+ throw m.value = ((S = (B = L.response) == null ? void 0 : B.data) == null ? void 0 : S.message) || "Failed to verify entry", L;
583
583
  }
584
584
  }
585
585
  async function y(h) {
@@ -729,7 +729,7 @@ function Ye() {
729
729
  }
730
730
  return { labelData: a, loading: s, error: o, fetchLabel: g, printLabel: r, printBatch: m };
731
731
  }
732
- function qr() {
732
+ function jr() {
733
733
  const a = $([]);
734
734
  function s(g) {
735
735
  a.value = g;
@@ -805,10 +805,10 @@ const ft = { class: "inv-card__header-content" }, yt = {
805
805
  "stroke-linecap": "round",
806
806
  "stroke-linejoin": "round"
807
807
  }, null, -1)
808
- ])], 2)) : z("", !0),
808
+ ])], 2)) : M("", !0),
809
809
  e("div", null, [
810
- a.title ? (t(), n("h3", yt, d(a.title), 1)) : z("", !0),
811
- a.subtitle ? (t(), n("p", mt, d(a.subtitle), 1)) : z("", !0)
810
+ a.title ? (t(), n("h3", yt, d(a.title), 1)) : M("", !0),
811
+ a.subtitle ? (t(), n("p", mt, d(a.subtitle), 1)) : M("", !0)
812
812
  ])
813
813
  ]),
814
814
  _: 1
@@ -816,8 +816,8 @@ const ft = { class: "inv-card__header-content" }, yt = {
816
816
  ]),
817
817
  v.$slots.actions ? (t(), n("div", gt, [
818
818
  he(v.$slots, "actions", {}, void 0, !0)
819
- ])) : z("", !0)
820
- ], 2)) : z("", !0),
819
+ ])) : M("", !0)
820
+ ], 2)) : M("", !0),
821
821
  ye(e("div", {
822
822
  id: m.value,
823
823
  class: "inv-card__body",
@@ -895,44 +895,67 @@ const ft = { class: "inv-card__header-content" }, yt = {
895
895
  ], -1)
896
896
  ])])) : s.$slots["icon-left"] ? (t(), n("span", Lt, [
897
897
  he(s.$slots, "icon-left", {}, void 0, !0)
898
- ])) : z("", !0),
898
+ ])) : M("", !0),
899
899
  e("span", xt, [
900
900
  he(s.$slots, "default", {}, void 0, !0)
901
901
  ]),
902
902
  s.$slots["icon-right"] ? (t(), n("span", St, [
903
903
  he(s.$slots, "icon-right", {}, void 0, !0)
904
- ])) : z("", !0)
904
+ ])) : M("", !0)
905
905
  ], 10, $t));
906
906
  }
907
- }), O = /* @__PURE__ */ oe(It, [["__scopeId", "data-v-6f9fc98e"]]), zt = { class: "inv-dashboard" }, Mt = { class: "inv-dashboard__stats" }, Vt = { class: "inv-dashboard__stat-card inv-dashboard__stat-card--primary" }, Bt = {
907
+ }), O = /* @__PURE__ */ oe(It, [["__scopeId", "data-v-6f9fc98e"]]), zt = {
908
+ class: "inv-dashboard",
909
+ "data-testid": "page-inventory-dashboard"
910
+ }, Mt = {
911
+ class: "inv-dashboard__stats",
912
+ "data-testid": "panel-dashboard-stats"
913
+ }, Vt = {
914
+ class: "inv-dashboard__stat-card inv-dashboard__stat-card--primary",
915
+ "data-testid": "stat-total-locations"
916
+ }, Bt = {
908
917
  key: 0,
909
918
  class: "inv-dashboard__stat-shimmer"
910
- }, At = { class: "inv-dashboard__stat-value" }, Pt = { class: "inv-dashboard__stat-card inv-dashboard__stat-card--success" }, Ft = {
919
+ }, At = { class: "inv-dashboard__stat-value" }, Pt = {
920
+ class: "inv-dashboard__stat-card inv-dashboard__stat-card--success",
921
+ "data-testid": "stat-products-tracked"
922
+ }, Ft = {
911
923
  key: 0,
912
924
  class: "inv-dashboard__stat-shimmer"
913
- }, Nt = { class: "inv-dashboard__stat-value" }, Tt = { class: "inv-dashboard__stat-card inv-dashboard__stat-card--info" }, Dt = {
925
+ }, Nt = { class: "inv-dashboard__stat-value" }, Tt = {
926
+ class: "inv-dashboard__stat-card inv-dashboard__stat-card--info",
927
+ "data-testid": "stat-in-use"
928
+ }, Dt = {
914
929
  key: 0,
915
930
  class: "inv-dashboard__stat-shimmer"
916
- }, Et = { class: "inv-dashboard__stat-value" }, Rt = { class: "inv-dashboard__stat-card inv-dashboard__stat-card--warning" }, qt = {
931
+ }, Et = { class: "inv-dashboard__stat-value" }, Rt = {
932
+ class: "inv-dashboard__stat-card inv-dashboard__stat-card--warning",
933
+ "data-testid": "stat-empty-locations"
934
+ }, qt = {
917
935
  key: 0,
918
936
  class: "inv-dashboard__stat-shimmer"
919
- }, Ht = { class: "inv-dashboard__stat-value" }, Ut = { class: "inv-dashboard__type-grid" }, jt = { class: "inv-dashboard__type-count" }, Ot = { class: "inv-dashboard__type-label" }, Qt = { class: "inv-dashboard__actions-grid" }, Kt = ["onClick"], Gt = ["innerHTML"], Wt = { class: "inv-dashboard__action-label" }, Zt = {
937
+ }, Ht = { class: "inv-dashboard__stat-value" }, Ut = {
938
+ class: "inv-dashboard__type-grid",
939
+ "data-testid": "panel-locations-by-type"
940
+ }, jt = ["data-testid"], Ot = { class: "inv-dashboard__type-count" }, Qt = { class: "inv-dashboard__type-label" }, Kt = { class: "inv-dashboard__actions-grid" }, Gt = ["data-testid", "onClick"], Wt = ["innerHTML"], Zt = { class: "inv-dashboard__action-label" }, Jt = {
920
941
  key: 0,
921
942
  class: "inv-dashboard__activity-list",
922
- role: "list"
923
- }, Jt = ["onClick"], Xt = { class: "inv-dashboard__activity-info" }, Yt = { class: "inv-dashboard__activity-product" }, ea = { class: "inv-dashboard__activity-location" }, ta = { class: "inv-dashboard__activity-time" }, aa = {
943
+ role: "list",
944
+ "data-testid": "list-recent-movements"
945
+ }, Xt = ["data-testid", "aria-label", "onClick"], Yt = { class: "inv-dashboard__activity-info" }, ea = { class: "inv-dashboard__activity-product" }, ta = { class: "inv-dashboard__activity-location" }, aa = { class: "inv-dashboard__activity-time" }, oa = {
924
946
  key: 1,
925
947
  class: "inv-dashboard__no-activity"
926
- }, oa = { class: "inv-dashboard__bottom-row" }, na = {
948
+ }, na = { class: "inv-dashboard__bottom-row" }, sa = {
927
949
  key: 0,
928
950
  class: "inv-dashboard__unlocated-content"
929
- }, sa = { class: "inv-dashboard__unlocated-text" }, la = {
951
+ }, la = { class: "inv-dashboard__unlocated-text" }, ia = { "data-testid": "status-unlocated-count" }, ra = {
930
952
  key: 1,
931
- class: "inv-dashboard__unlocated-none"
932
- }, ia = { key: 0 }, ra = { class: "inv-dashboard__count-info" }, ca = { class: "inv-dashboard__count-name" }, da = ["aria-valuenow"], ua = { class: "inv-dashboard__count-progress-track" }, va = { class: "inv-dashboard__count-pct" }, _a = {
953
+ class: "inv-dashboard__unlocated-none",
954
+ "data-testid": "status-all-located"
955
+ }, ca = { key: 0 }, da = ["data-testid"], ua = { class: "inv-dashboard__count-info" }, va = { class: "inv-dashboard__count-name" }, _a = ["aria-valuenow"], pa = { class: "inv-dashboard__count-progress-track" }, ha = { class: "inv-dashboard__count-pct" }, fa = {
933
956
  key: 1,
934
957
  class: "inv-dashboard__no-counts"
935
- }, pa = /* @__PURE__ */ ae({
958
+ }, ya = /* @__PURE__ */ ae({
936
959
  __name: "InventoryDashboard",
937
960
  setup(a) {
938
961
  const s = Le(), { movements: o, loading: g, fetchRecent: r } = Ke(), { sessions: m, fetchSessions: w } = Ve(), u = $(null), i = $(!0), v = $(0), l = [
@@ -953,7 +976,7 @@ const ft = { class: "inv-card__header-content" }, yt = {
953
976
  },
954
977
  {
955
978
  label: "Start Count",
956
- route: "inventory-counts",
979
+ route: "inventory-package-counts",
957
980
  icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none"><rect x="4" y="4" width="16" height="16" rx="2" stroke="currentColor" stroke-width="1.5"/><path d="M8 8h2v2H8V8zm4 0h2v2h-2V8zm-4 4h2v2H8v-2zm4 0h2v2h-2v-2z" fill="currentColor"/></svg>'
958
981
  },
959
982
  {
@@ -981,10 +1004,10 @@ const ft = { class: "inv-card__header-content" }, yt = {
981
1004
  }
982
1005
  }
983
1006
  async function _() {
984
- var S, x;
1007
+ var S, L;
985
1008
  try {
986
- const M = await X().get(Y("/dashboard/unlocated-products?limit=1"));
987
- v.value = ((S = M.data.meta) == null ? void 0 : S.total) ?? ((x = M.data.data) == null ? void 0 : x.length) ?? 0;
1009
+ const z = await X().get(Y("/dashboard/unlocated-products?limit=1"));
1010
+ v.value = ((S = z.data.meta) == null ? void 0 : S.total) ?? ((L = z.data.data) == null ? void 0 : L.length) ?? 0;
988
1011
  } catch {
989
1012
  }
990
1013
  }
@@ -992,8 +1015,8 @@ const ft = { class: "inv-card__header-content" }, yt = {
992
1015
  s.push({ name: S });
993
1016
  }
994
1017
  function y(S) {
995
- const x = S.to_location || S.from_location;
996
- x && s.push({ name: "inventory-location", params: { code: x.full_code } });
1018
+ const L = S.to_location || S.from_location;
1019
+ L && s.push({ name: "inventory-location", params: { code: L.full_code } });
997
1020
  }
998
1021
  function p(S) {
999
1022
  return {
@@ -1007,7 +1030,7 @@ const ft = { class: "inv-card__header-content" }, yt = {
1007
1030
  }[S] ?? "?";
1008
1031
  }
1009
1032
  function h(S) {
1010
- const x = Date.now(), M = new Date(S).getTime(), T = x - M, N = Math.floor(T / 1e3);
1033
+ const L = Date.now(), z = new Date(S).getTime(), T = L - z, N = Math.floor(T / 1e3);
1011
1034
  if (N < 60) return "just now";
1012
1035
  const Q = Math.floor(N / 60);
1013
1036
  if (Q < 60) return `${Q} min ago`;
@@ -1020,35 +1043,38 @@ const ft = { class: "inv-card__header-content" }, yt = {
1020
1043
  return S.toLocaleString("en-US");
1021
1044
  }
1022
1045
  function B(S) {
1023
- return S.charAt(0).toUpperCase() + S.slice(1) + "s";
1046
+ const L = {
1047
+ shelf: "Shelves"
1048
+ }, z = S.toLowerCase();
1049
+ return L[z] ? L[z] : S.charAt(0).toUpperCase() + S.slice(1) + "s";
1024
1050
  }
1025
- return (S, x) => {
1026
- var M, T, N, Q;
1051
+ return (S, L) => {
1052
+ var z, T, N, Q;
1027
1053
  return t(), n("div", zt, [
1028
- x[8] || (x[8] = e("h1", { class: "inv-dashboard__title" }, "Inventory Dashboard", -1)),
1054
+ L[8] || (L[8] = e("h1", { class: "inv-dashboard__title" }, "Inventory Dashboard", -1)),
1029
1055
  e("div", Mt, [
1030
1056
  e("div", Vt, [
1031
1057
  i.value ? (t(), n("div", Bt)) : (t(), n(G, { key: 1 }, [
1032
- e("span", At, d(((M = u.value) == null ? void 0 : M.total_locations) ?? 0), 1),
1033
- x[1] || (x[1] = e("span", { class: "inv-dashboard__stat-label" }, "Total Locations", -1))
1058
+ e("span", At, d(((z = u.value) == null ? void 0 : z.total_locations) ?? 0), 1),
1059
+ L[1] || (L[1] = e("span", { class: "inv-dashboard__stat-label" }, "Total Locations", -1))
1034
1060
  ], 64))
1035
1061
  ]),
1036
1062
  e("div", Pt, [
1037
1063
  i.value ? (t(), n("div", Ft)) : (t(), n(G, { key: 1 }, [
1038
1064
  e("span", Nt, d(b(((T = u.value) == null ? void 0 : T.total_products_tracked) ?? 0)), 1),
1039
- x[2] || (x[2] = e("span", { class: "inv-dashboard__stat-label" }, "Products Tracked", -1))
1065
+ L[2] || (L[2] = e("span", { class: "inv-dashboard__stat-label" }, "Products Tracked", -1))
1040
1066
  ], 64))
1041
1067
  ]),
1042
1068
  e("div", Tt, [
1043
1069
  i.value ? (t(), n("div", Dt)) : (t(), n(G, { key: 1 }, [
1044
1070
  e("span", Et, d(((N = u.value) == null ? void 0 : N.locations_with_products) ?? 0), 1),
1045
- x[3] || (x[3] = e("span", { class: "inv-dashboard__stat-label" }, "In Use", -1))
1071
+ L[3] || (L[3] = e("span", { class: "inv-dashboard__stat-label" }, "In Use", -1))
1046
1072
  ], 64))
1047
1073
  ]),
1048
1074
  e("div", Rt, [
1049
1075
  i.value ? (t(), n("div", qt)) : (t(), n(G, { key: 1 }, [
1050
1076
  e("span", Ht, d(((Q = u.value) == null ? void 0 : Q.empty_leaf_locations) ?? 0), 1),
1051
- x[4] || (x[4] = e("span", { class: "inv-dashboard__stat-label" }, "Empty", -1))
1077
+ L[4] || (L[4] = e("span", { class: "inv-dashboard__stat-label" }, "Empty", -1))
1052
1078
  ], 64))
1053
1079
  ])
1054
1080
  ]),
@@ -1062,34 +1088,38 @@ const ft = { class: "inv-card__header-content" }, yt = {
1062
1088
  e("div", Ut, [
1063
1089
  (t(!0), n(G, null, ne(u.value.locations_by_type, (C, A) => (t(), n("div", {
1064
1090
  key: A,
1065
- class: "inv-dashboard__type-item"
1091
+ class: "inv-dashboard__type-item",
1092
+ "data-testid": `item-type-${A}`
1066
1093
  }, [
1067
- e("span", jt, d(C), 1),
1068
- e("span", Ot, d(B(A)), 1)
1069
- ]))), 128))
1094
+ e("span", Ot, d(C), 1),
1095
+ e("span", Qt, d(B(A)), 1)
1096
+ ], 8, jt))), 128))
1070
1097
  ])
1071
1098
  ]),
1072
1099
  _: 1
1073
- })) : z("", !0),
1100
+ })) : M("", !0),
1074
1101
  I(se, {
1075
1102
  title: "Quick Actions",
1076
1103
  compact: "",
1077
- class: "inv-dashboard__quick-actions"
1104
+ class: "inv-dashboard__quick-actions",
1105
+ "data-testid": "panel-quick-actions"
1078
1106
  }, {
1079
1107
  default: k(() => [
1080
- e("div", Qt, [
1108
+ e("div", Kt, [
1081
1109
  (t(), n(G, null, ne(l, (C) => e("button", {
1082
1110
  key: C.label,
1083
1111
  type: "button",
1084
1112
  class: "inv-dashboard__action-btn",
1113
+ "data-testid": `btn-action-${C.route}`,
1085
1114
  onClick: (A) => f(C.route)
1086
1115
  }, [
1087
1116
  e("span", {
1088
1117
  class: "inv-dashboard__action-icon",
1089
- innerHTML: C.icon
1090
- }, null, 8, Gt),
1091
- e("span", Wt, d(C.label), 1)
1092
- ], 8, Kt)), 64))
1118
+ innerHTML: C.icon,
1119
+ "aria-hidden": "true"
1120
+ }, null, 8, Wt),
1121
+ e("span", Zt, d(C.label), 1)
1122
+ ], 8, Gt)), 64))
1093
1123
  ])
1094
1124
  ]),
1095
1125
  _: 1
@@ -1097,78 +1127,85 @@ const ft = { class: "inv-card__header-content" }, yt = {
1097
1127
  I(se, {
1098
1128
  title: "Recent Activity",
1099
1129
  class: "inv-dashboard__activity",
1100
- loading: L(g)
1130
+ loading: x(g),
1131
+ "data-testid": "panel-recent-activity"
1101
1132
  }, {
1102
1133
  default: k(() => [
1103
- L(o).length > 0 ? (t(), n("div", Zt, [
1104
- (t(!0), n(G, null, ne(L(o), (C) => (t(), n("button", {
1134
+ x(o).length > 0 ? (t(), n("div", Jt, [
1135
+ (t(!0), n(G, null, ne(x(o), (C) => (t(), n("button", {
1105
1136
  key: C.id,
1106
1137
  type: "button",
1107
1138
  role: "listitem",
1108
1139
  class: "inv-dashboard__activity-row",
1140
+ "data-testid": `item-movement-${C.id}`,
1141
+ "aria-label": `${C.product_name} — ${C.reason}`,
1109
1142
  onClick: (A) => y(C)
1110
1143
  }, [
1111
1144
  e("span", {
1112
1145
  class: ee(["inv-dashboard__activity-icon", `inv-dashboard__activity-icon--${C.reason}`]),
1113
1146
  "aria-hidden": "true"
1114
1147
  }, d(p(C.reason)), 3),
1115
- e("div", Xt, [
1116
- e("span", Yt, d(C.product_name), 1),
1117
- e("span", ea, [
1148
+ e("div", Yt, [
1149
+ e("span", ea, d(C.product_name), 1),
1150
+ e("span", ta, [
1118
1151
  C.reason === "moved" && C.from_location && C.to_location ? (t(), n(G, { key: 0 }, [
1119
1152
  D(d(C.from_location.full_code) + " → " + d(C.to_location.full_code), 1)
1120
1153
  ], 64)) : C.to_location ? (t(), n(G, { key: 1 }, [
1121
1154
  D(" → " + d(C.to_location.full_code), 1)
1122
1155
  ], 64)) : C.from_location ? (t(), n(G, { key: 2 }, [
1123
1156
  D(" ← " + d(C.from_location.full_code), 1)
1124
- ], 64)) : z("", !0)
1157
+ ], 64)) : M("", !0)
1125
1158
  ])
1126
1159
  ]),
1127
- e("span", ta, d(h(C.performed_at)), 1)
1128
- ], 8, Jt))), 128))
1129
- ])) : L(g) ? z("", !0) : (t(), n("p", aa, " No recent activity "))
1160
+ e("span", aa, d(h(C.performed_at)), 1)
1161
+ ], 8, Xt))), 128))
1162
+ ])) : x(g) ? M("", !0) : (t(), n("p", oa, " No recent activity "))
1130
1163
  ]),
1131
1164
  _: 1
1132
1165
  }, 8, ["loading"]),
1133
- e("div", oa, [
1166
+ e("div", na, [
1134
1167
  I(se, {
1135
1168
  title: "Unlocated Products",
1136
1169
  compact: "",
1137
- class: "inv-dashboard__unlocated-widget"
1170
+ class: "inv-dashboard__unlocated-widget",
1171
+ "data-testid": "panel-unlocated-products"
1138
1172
  }, {
1139
1173
  default: k(() => [
1140
- v.value > 0 ? (t(), n("div", na, [
1141
- e("p", sa, [
1142
- e("strong", null, d(v.value), 1),
1143
- x[5] || (x[5] = D(" products have no assigned location ", -1))
1174
+ v.value > 0 ? (t(), n("div", sa, [
1175
+ e("p", la, [
1176
+ e("strong", ia, d(v.value), 1),
1177
+ L[5] || (L[5] = D(" products have no assigned location ", -1))
1144
1178
  ]),
1145
1179
  I(O, {
1146
1180
  variant: "secondary",
1147
1181
  size: "sm",
1148
- onClick: x[0] || (x[0] = (C) => L(s).push({ name: "inventory-unlocated" }))
1182
+ "data-testid": "btn-view-unlocated",
1183
+ onClick: L[0] || (L[0] = (C) => x(s).push({ name: "inventory-unlocated" }))
1149
1184
  }, {
1150
- default: k(() => [...x[6] || (x[6] = [
1185
+ default: k(() => [...L[6] || (L[6] = [
1151
1186
  D(" View All ", -1)
1152
1187
  ])]),
1153
1188
  _: 1
1154
1189
  })
1155
- ])) : (t(), n("p", la, " All products have assigned locations "))
1190
+ ])) : (t(), n("p", ra, " All products have assigned locations "))
1156
1191
  ]),
1157
1192
  _: 1
1158
1193
  }),
1159
1194
  I(se, {
1160
1195
  title: "Active Counts",
1161
1196
  compact: "",
1162
- class: "inv-dashboard__counts-widget"
1197
+ class: "inv-dashboard__counts-widget",
1198
+ "data-testid": "panel-active-counts"
1163
1199
  }, {
1164
1200
  default: k(() => [
1165
- L(m).length > 0 ? (t(), n("div", ia, [
1166
- (t(!0), n(G, null, ne(L(m), (C) => (t(), n("div", {
1201
+ x(m).length > 0 ? (t(), n("div", ca, [
1202
+ (t(!0), n(G, null, ne(x(m), (C) => (t(), n("div", {
1167
1203
  key: C.id,
1168
- class: "inv-dashboard__count-row"
1204
+ class: "inv-dashboard__count-row",
1205
+ "data-testid": `item-count-${C.id}`
1169
1206
  }, [
1170
- e("div", ra, [
1171
- e("span", ca, d(C.name), 1),
1207
+ e("div", ua, [
1208
+ e("span", va, d(C.name), 1),
1172
1209
  e("div", {
1173
1210
  class: "inv-dashboard__count-progress",
1174
1211
  role: "progressbar",
@@ -1176,27 +1213,27 @@ const ft = { class: "inv-card__header-content" }, yt = {
1176
1213
  "aria-valuemin": "0",
1177
1214
  "aria-valuemax": "100"
1178
1215
  }, [
1179
- e("div", ua, [
1216
+ e("div", pa, [
1180
1217
  e("div", {
1181
1218
  class: "inv-dashboard__count-progress-fill",
1182
1219
  style: ke({ width: `${C.progress.percent_complete}%` })
1183
1220
  }, null, 4)
1184
1221
  ]),
1185
- e("span", va, d(C.progress.percent_complete) + "% ", 1)
1186
- ], 8, da)
1222
+ e("span", ha, d(C.progress.percent_complete) + "% ", 1)
1223
+ ], 8, _a)
1187
1224
  ]),
1188
1225
  I(O, {
1189
1226
  variant: "secondary",
1190
1227
  size: "sm",
1191
- onClick: (A) => L(s).push({ name: "inventory-count-detail", params: { id: C.id } })
1228
+ onClick: (A) => x(s).push({ name: "inventory-count-detail", params: { id: C.id } })
1192
1229
  }, {
1193
- default: k(() => [...x[7] || (x[7] = [
1230
+ default: k(() => [...L[7] || (L[7] = [
1194
1231
  D(" Continue ", -1)
1195
1232
  ])]),
1196
1233
  _: 1
1197
1234
  }, 8, ["onClick"])
1198
- ]))), 128))
1199
- ])) : (t(), n("p", _a, " No active count sessions "))
1235
+ ], 8, da))), 128))
1236
+ ])) : (t(), n("p", fa, " No active count sessions "))
1200
1237
  ]),
1201
1238
  _: 1
1202
1239
  })
@@ -1204,16 +1241,16 @@ const ft = { class: "inv-card__header-content" }, yt = {
1204
1241
  ]);
1205
1242
  };
1206
1243
  }
1207
- }), Hr = /* @__PURE__ */ oe(pa, [["__scopeId", "data-v-e4d4cfb7"]]), ha = {
1244
+ }), Or = /* @__PURE__ */ oe(ya, [["__scopeId", "data-v-bb9b566d"]]), ma = {
1208
1245
  class: "inv-empty-state",
1209
1246
  role: "status"
1210
- }, fa = { class: "inv-empty-state__title" }, ya = {
1247
+ }, ga = { class: "inv-empty-state__title" }, ba = {
1211
1248
  key: 0,
1212
1249
  class: "inv-empty-state__description"
1213
- }, ma = {
1250
+ }, ka = {
1214
1251
  key: 1,
1215
1252
  class: "inv-empty-state__action"
1216
- }, ga = /* @__PURE__ */ ae({
1253
+ }, wa = /* @__PURE__ */ ae({
1217
1254
  __name: "InvEmptyState",
1218
1255
  props: {
1219
1256
  title: {},
@@ -1223,23 +1260,23 @@ const ft = { class: "inv-card__header-content" }, yt = {
1223
1260
  emits: ["action"],
1224
1261
  setup(a, { emit: s }) {
1225
1262
  const o = s;
1226
- return (g, r) => (t(), n("div", ha, [
1263
+ return (g, r) => (t(), n("div", ma, [
1227
1264
  r[1] || (r[1] = xe('<svg class="inv-empty-state__icon" width="48" height="48" viewBox="0 0 48 48" fill="none" aria-hidden="true" data-v-c60a887a><rect x="6" y="10" width="36" height="28" rx="4" stroke="currentColor" stroke-width="2" fill="none" data-v-c60a887a></rect><path d="M6 18H42" stroke="currentColor" stroke-width="2" data-v-c60a887a></path><circle cx="12" cy="14" r="1.5" fill="currentColor" data-v-c60a887a></circle><circle cx="17" cy="14" r="1.5" fill="currentColor" data-v-c60a887a></circle><circle cx="22" cy="14" r="1.5" fill="currentColor" data-v-c60a887a></circle><path d="M18 28L22 24L26 28L30 22" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" opacity="0.4" data-v-c60a887a></path></svg>', 1)),
1228
- e("h3", fa, d(a.title), 1),
1229
- a.description ? (t(), n("p", ya, d(a.description), 1)) : z("", !0),
1230
- g.$slots.action || a.actionLabel ? (t(), n("div", ma, [
1265
+ e("h3", ga, d(a.title), 1),
1266
+ a.description ? (t(), n("p", ba, d(a.description), 1)) : M("", !0),
1267
+ g.$slots.action || a.actionLabel ? (t(), n("div", ka, [
1231
1268
  he(g.$slots, "action", {}, () => [
1232
1269
  a.actionLabel ? (t(), n("button", {
1233
1270
  key: 0,
1234
1271
  type: "button",
1235
1272
  class: "inv-empty-state__btn",
1236
1273
  onClick: r[0] || (r[0] = (m) => o("action"))
1237
- }, d(a.actionLabel), 1)) : z("", !0)
1274
+ }, d(a.actionLabel), 1)) : M("", !0)
1238
1275
  ], !0)
1239
- ])) : z("", !0)
1276
+ ])) : M("", !0)
1240
1277
  ]));
1241
1278
  }
1242
- }), ge = /* @__PURE__ */ oe(ga, [["__scopeId", "data-v-c60a887a"]]), tt = {
1279
+ }), ge = /* @__PURE__ */ oe(wa, [["__scopeId", "data-v-c60a887a"]]), tt = {
1243
1280
  site: {
1244
1281
  viewBox: "0 0 24 24",
1245
1282
  path: "M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z"
@@ -1277,10 +1314,10 @@ const ft = { class: "inv-card__header-content" }, yt = {
1277
1314
  path: "M2 18h2v2H2v-2zm4 0h2v2H6v-2zm4 0h2v2h-2v-2zm4 0h2v2h-2v-2zm4 0h2v2h-2v-2zM2 14h20v2H2v-2zm1-4h4v3H3v-3zm7 0h4v3h-4v-3zm7 0h4v3h-4v-3z"
1278
1315
  }
1279
1316
  };
1280
- function ba(a) {
1317
+ function $a(a) {
1281
1318
  return tt[a] || tt.building;
1282
1319
  }
1283
- const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1320
+ const Ca = ["width", "height", "viewBox"], La = ["d"], xa = /* @__PURE__ */ ae({
1284
1321
  __name: "LocationTypeIcon",
1285
1322
  props: {
1286
1323
  type: {},
@@ -1291,7 +1328,7 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1291
1328
  sm: 16,
1292
1329
  md: 20,
1293
1330
  lg: 24
1294
- }, g = J(() => ba(s.type));
1331
+ }, g = J(() => $a(s.type));
1295
1332
  return (r, m) => (t(), n("svg", {
1296
1333
  class: ee(["location-type-icon", [`location-type-icon--${a.size}`]]),
1297
1334
  width: o[a.size],
@@ -1303,22 +1340,22 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1303
1340
  e("path", {
1304
1341
  d: g.value.path,
1305
1342
  fill: "currentColor"
1306
- }, null, 8, wa)
1307
- ], 10, ka));
1343
+ }, null, 8, La)
1344
+ ], 10, Ca));
1308
1345
  }
1309
- }), Ee = /* @__PURE__ */ oe($a, [["__scopeId", "data-v-e96e218e"]]), Ca = { class: "location-search__input-wrapper" }, La = ["value", "placeholder", "aria-expanded", "aria-activedescendant"], xa = {
1346
+ }), Ee = /* @__PURE__ */ oe(xa, [["__scopeId", "data-v-e96e218e"]]), Sa = { class: "location-search__input-wrapper" }, Ia = ["value", "placeholder", "aria-expanded", "aria-activedescendant"], za = {
1310
1347
  key: 1,
1311
1348
  class: "location-search__spinner",
1312
1349
  "aria-hidden": "true"
1313
- }, Sa = ["aria-label"], Ia = {
1350
+ }, Ma = ["aria-label"], Va = {
1314
1351
  key: 0,
1315
1352
  class: "location-search__dropdown-item location-search__dropdown-item--loading",
1316
1353
  role: "presentation"
1317
- }, za = {
1354
+ }, Ba = {
1318
1355
  key: 1,
1319
1356
  class: "location-search__dropdown-item location-search__dropdown-item--empty",
1320
1357
  role: "presentation"
1321
- }, Ma = ["id", "aria-selected", "onMousedown", "onMouseenter"], Va = { class: "location-search__result-info" }, Ba = { class: "location-search__result-name" }, Aa = { class: "location-search__result-code" }, Pa = /* @__PURE__ */ ae({
1358
+ }, Aa = ["id", "aria-selected", "onMousedown", "onMouseenter"], Pa = { class: "location-search__result-info" }, Fa = { class: "location-search__result-name" }, Na = { class: "location-search__result-code" }, Ta = /* @__PURE__ */ ae({
1322
1359
  __name: "LocationSearchInput",
1323
1360
  props: {
1324
1361
  modelValue: {},
@@ -1331,12 +1368,12 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1331
1368
  if (!(i.value < 0))
1332
1369
  return `${m}-option-${i.value}`;
1333
1370
  });
1334
- _e(() => o.modelValue, (x) => {
1335
- i.value = -1, l.search(x);
1371
+ _e(() => o.modelValue, (L) => {
1372
+ i.value = -1, l.search(L);
1336
1373
  });
1337
- function f(x) {
1338
- const M = x.target;
1339
- g("update:modelValue", M.value);
1374
+ function f(L) {
1375
+ const z = L.target;
1376
+ g("update:modelValue", z.value);
1340
1377
  }
1341
1378
  function y() {
1342
1379
  v.value = !0, o.modelValue.length >= 2 && l.search(o.modelValue);
@@ -1347,45 +1384,45 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1347
1384
  }, 150);
1348
1385
  }
1349
1386
  function h() {
1350
- var x;
1351
- g("update:modelValue", ""), l.clear(), i.value = -1, (x = w.value) == null || x.focus();
1387
+ var L;
1388
+ g("update:modelValue", ""), l.clear(), i.value = -1, (L = w.value) == null || L.focus();
1352
1389
  }
1353
- function b(x) {
1354
- g("select", x), g("update:modelValue", ""), l.clear(), i.value = -1, v.value = !1;
1390
+ function b(L) {
1391
+ g("select", L), g("update:modelValue", ""), l.clear(), i.value = -1, v.value = !1;
1355
1392
  }
1356
- function B(x) {
1357
- const M = l.results.value;
1358
- if (!c.value || M.length === 0) {
1359
- x.key === "Escape" && h();
1393
+ function B(L) {
1394
+ const z = l.results.value;
1395
+ if (!c.value || z.length === 0) {
1396
+ L.key === "Escape" && h();
1360
1397
  return;
1361
1398
  }
1362
- switch (x.key) {
1399
+ switch (L.key) {
1363
1400
  case "ArrowDown":
1364
- x.preventDefault(), i.value = Math.min(i.value + 1, M.length - 1), S();
1401
+ L.preventDefault(), i.value = Math.min(i.value + 1, z.length - 1), S();
1365
1402
  break;
1366
1403
  case "ArrowUp":
1367
- x.preventDefault(), i.value = Math.max(i.value - 1, 0), S();
1404
+ L.preventDefault(), i.value = Math.max(i.value - 1, 0), S();
1368
1405
  break;
1369
1406
  case "Enter":
1370
- x.preventDefault(), i.value >= 0 && i.value < M.length && b(M[i.value]);
1407
+ L.preventDefault(), i.value >= 0 && i.value < z.length && b(z[i.value]);
1371
1408
  break;
1372
1409
  case "Escape":
1373
- x.preventDefault(), v.value = !1, i.value = -1;
1410
+ L.preventDefault(), v.value = !1, i.value = -1;
1374
1411
  break;
1375
1412
  }
1376
1413
  }
1377
1414
  function S() {
1378
1415
  if (!u.value || i.value < 0) return;
1379
- const M = u.value.querySelectorAll('[role="option"]')[i.value];
1380
- M && M.scrollIntoView({ block: "nearest" });
1416
+ const z = u.value.querySelectorAll('[role="option"]')[i.value];
1417
+ z && z.scrollIntoView({ block: "nearest" });
1381
1418
  }
1382
1419
  return ue(() => {
1383
1420
  o.autofocus && w.value && w.value.focus();
1384
- }), (x, M) => (t(), n("div", {
1421
+ }), (L, z) => (t(), n("div", {
1385
1422
  class: ee(["location-search", { "location-search--open": c.value }])
1386
1423
  }, [
1387
- e("div", Ca, [
1388
- M[2] || (M[2] = e("svg", {
1424
+ e("div", Sa, [
1425
+ z[2] || (z[2] = e("svg", {
1389
1426
  class: "location-search__icon",
1390
1427
  width: "18",
1391
1428
  height: "18",
@@ -1417,14 +1454,14 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1417
1454
  onKeydown: B,
1418
1455
  onFocus: y,
1419
1456
  onBlur: p
1420
- }, null, 40, La),
1457
+ }, null, 40, Ia),
1421
1458
  a.modelValue ? (t(), n("button", {
1422
1459
  key: 0,
1423
1460
  type: "button",
1424
1461
  class: "location-search__clear",
1425
1462
  "aria-label": "Clear search",
1426
1463
  onMousedown: me(h, ["prevent"])
1427
- }, [...M[0] || (M[0] = [
1464
+ }, [...z[0] || (z[0] = [
1428
1465
  e("svg", {
1429
1466
  width: "16",
1430
1467
  height: "16",
@@ -1440,8 +1477,8 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1440
1477
  "stroke-linejoin": "round"
1441
1478
  })
1442
1479
  ], -1)
1443
- ])], 32)) : z("", !0),
1444
- L(l).loading.value ? (t(), n("span", xa, [...M[1] || (M[1] = [
1480
+ ])], 32)) : M("", !0),
1481
+ x(l).loading.value ? (t(), n("span", za, [...z[1] || (z[1] = [
1445
1482
  e("svg", {
1446
1483
  width: "16",
1447
1484
  height: "16",
@@ -1463,7 +1500,7 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1463
1500
  "stroke-linecap": "round"
1464
1501
  })
1465
1502
  ], -1)
1466
- ])])) : z("", !0)
1503
+ ])])) : M("", !0)
1467
1504
  ]),
1468
1505
  I(Ie, { name: "location-search-dropdown" }, {
1469
1506
  default: k(() => [
@@ -1476,12 +1513,12 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1476
1513
  role: "listbox",
1477
1514
  "aria-label": a.placeholder
1478
1515
  }, [
1479
- L(l).loading.value && L(l).results.value.length === 0 ? (t(), n("li", Ia, [...M[3] || (M[3] = [
1516
+ x(l).loading.value && x(l).results.value.length === 0 ? (t(), n("li", Va, [...z[3] || (z[3] = [
1480
1517
  e("span", null, "Searching...", -1)
1481
- ])])) : !L(l).loading.value && L(l).results.value.length === 0 && a.modelValue.length >= 2 ? (t(), n("li", za, [...M[4] || (M[4] = [
1518
+ ])])) : !x(l).loading.value && x(l).results.value.length === 0 && a.modelValue.length >= 2 ? (t(), n("li", Ba, [...z[4] || (z[4] = [
1482
1519
  e("span", null, "No locations found", -1)
1483
- ])])) : z("", !0),
1484
- (t(!0), n(G, null, ne(L(l).results.value, (T, N) => (t(), n("li", {
1520
+ ])])) : M("", !0),
1521
+ (t(!0), n(G, null, ne(x(l).results.value, (T, N) => (t(), n("li", {
1485
1522
  id: `${m}-option-${N}`,
1486
1523
  key: T.id,
1487
1524
  class: ee(["location-search__dropdown-item", { "location-search__dropdown-item--active": N === i.value }]),
@@ -1494,26 +1531,26 @@ const ka = ["width", "height", "viewBox"], wa = ["d"], $a = /* @__PURE__ */ ae({
1494
1531
  type: T.type,
1495
1532
  size: "sm"
1496
1533
  }, null, 8, ["type"]),
1497
- e("div", Va, [
1498
- e("span", Ba, d(T.name), 1),
1499
- e("span", Aa, d(T.full_code), 1)
1534
+ e("div", Pa, [
1535
+ e("span", Fa, d(T.name), 1),
1536
+ e("span", Na, d(T.full_code), 1)
1500
1537
  ])
1501
- ], 42, Ma))), 128))
1502
- ], 8, Sa)) : z("", !0)
1538
+ ], 42, Aa))), 128))
1539
+ ], 8, Ma)) : M("", !0)
1503
1540
  ]),
1504
1541
  _: 1
1505
1542
  })
1506
1543
  ], 2));
1507
1544
  }
1508
- }), Fa = /* @__PURE__ */ oe(Pa, [["__scopeId", "data-v-6191a2a0"]]);
1509
- function Na(a, s = 2, o = "-") {
1545
+ }), Da = /* @__PURE__ */ oe(Ta, [["__scopeId", "data-v-6191a2a0"]]);
1546
+ function Ea(a, s = 2, o = "-") {
1510
1547
  const g = a.split(o);
1511
1548
  return g.length <= s ? a : "…" + g.slice(-s).join(o);
1512
1549
  }
1513
1550
  function at(a) {
1514
1551
  return Number.isInteger(a) ? String(a) : a.toFixed(2).replace(/\.?0+$/, "");
1515
1552
  }
1516
- function Ta(a) {
1553
+ function Ra(a) {
1517
1554
  const s = new Date(a), g = Math.floor(((/* @__PURE__ */ new Date()).getTime() - s.getTime()) / 1e3);
1518
1555
  if (g < 60) return "just now";
1519
1556
  const r = Math.floor(g / 60);
@@ -1523,7 +1560,7 @@ function Ta(a) {
1523
1560
  const w = Math.floor(m / 24);
1524
1561
  return w < 7 ? `${w}d ago` : s.toLocaleDateString();
1525
1562
  }
1526
- const Da = ["title"], Ea = /* @__PURE__ */ ae({
1563
+ const qa = ["title"], Ha = /* @__PURE__ */ ae({
1527
1564
  __name: "LocationCodeBadge",
1528
1565
  props: {
1529
1566
  code: {},
@@ -1531,13 +1568,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1531
1568
  maxSegments: { default: 2 }
1532
1569
  },
1533
1570
  setup(a) {
1534
- const s = a, o = J(() => s.truncate ? Na(s.code, s.maxSegments) : s.code);
1571
+ const s = a, o = J(() => s.truncate ? Ea(s.code, s.maxSegments) : s.code);
1535
1572
  return (g, r) => (t(), n("span", {
1536
1573
  class: "location-code-badge",
1537
1574
  title: a.code
1538
- }, d(o.value), 9, Da));
1575
+ }, d(o.value), 9, qa));
1539
1576
  }
1540
- }), fe = /* @__PURE__ */ oe(Ea, [["__scopeId", "data-v-62592fe1"]]), Ra = ["data-testid"], qa = ["aria-expanded", "aria-selected", "aria-level"], Ha = ["aria-label"], Ua = {
1577
+ }), fe = /* @__PURE__ */ oe(Ha, [["__scopeId", "data-v-62592fe1"]]), Ua = ["data-testid"], ja = ["aria-expanded", "aria-selected", "aria-level"], Oa = ["aria-label"], Qa = {
1541
1578
  key: 0,
1542
1579
  class: "tree-node__spinner",
1543
1580
  width: "14",
@@ -1545,14 +1582,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1545
1582
  viewBox: "0 0 16 16",
1546
1583
  fill: "none",
1547
1584
  "aria-hidden": "true"
1548
- }, ja = {
1585
+ }, Ka = {
1549
1586
  key: 1,
1550
1587
  class: "tree-node__toggle-spacer",
1551
1588
  "aria-hidden": "true"
1552
- }, Oa = { class: "tree-node__name" }, Qa = ["aria-label"], Ka = {
1589
+ }, Ga = { class: "tree-node__name" }, Wa = ["aria-label"], Za = {
1553
1590
  key: 0,
1554
1591
  role: "group"
1555
- }, Ga = /* @__PURE__ */ ae({
1592
+ }, Ja = /* @__PURE__ */ ae({
1556
1593
  __name: "LocationTreeNode",
1557
1594
  props: {
1558
1595
  location: {},
@@ -1625,7 +1662,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1625
1662
  tabindex: "-1",
1626
1663
  onClick: me(c, ["stop"])
1627
1664
  }, [
1628
- w.value ? (t(), n("svg", Ua, [...y[2] || (y[2] = [
1665
+ w.value ? (t(), n("svg", Qa, [...y[2] || (y[2] = [
1629
1666
  e("circle", {
1630
1667
  cx: "8",
1631
1668
  cy: "8",
@@ -1657,12 +1694,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1657
1694
  "stroke-linejoin": "round"
1658
1695
  }, null, -1)
1659
1696
  ])], 2))
1660
- ], 8, Ha)) : (t(), n("span", ja)),
1697
+ ], 8, Oa)) : (t(), n("span", Ka)),
1661
1698
  I(Ee, {
1662
1699
  type: a.location.type,
1663
1700
  size: "sm"
1664
1701
  }, null, 8, ["type"]),
1665
- e("span", Oa, d(a.location.name), 1),
1702
+ e("span", Ga, d(a.location.name), 1),
1666
1703
  I(fe, {
1667
1704
  code: a.location.full_code,
1668
1705
  truncate: "",
@@ -1672,9 +1709,9 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1672
1709
  key: 2,
1673
1710
  class: "tree-node__count",
1674
1711
  "aria-label": `${a.location.product_count} products`
1675
- }, d(a.location.product_count), 9, Qa)) : z("", !0)
1676
- ], 46, qa),
1677
- v.value && u.value.length > 0 ? (t(), n("div", Ka, [
1712
+ }, d(a.location.product_count), 9, Wa)) : M("", !0)
1713
+ ], 46, ja),
1714
+ v.value && u.value.length > 0 ? (t(), n("div", Za, [
1678
1715
  (t(!0), n(G, null, ne(u.value, (h) => (t(), K(p, {
1679
1716
  key: h.id,
1680
1717
  location: h,
@@ -1683,19 +1720,19 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1683
1720
  onSelect: y[0] || (y[0] = (b) => g("select", b)),
1684
1721
  onToggle: y[1] || (y[1] = (b) => g("toggle", b))
1685
1722
  }, null, 8, ["location", "depth", "selected-id"]))), 128))
1686
- ])) : z("", !0)
1687
- ], 8, Ra);
1723
+ ])) : M("", !0)
1724
+ ], 8, Ua);
1688
1725
  };
1689
1726
  }
1690
- }), Wa = /* @__PURE__ */ oe(Ga, [["__scopeId", "data-v-b2045bb5"]]), Za = {
1727
+ }), Xa = /* @__PURE__ */ oe(Ja, [["__scopeId", "data-v-b2045bb5"]]), Ya = {
1691
1728
  class: "location-tree",
1692
1729
  role: "tree",
1693
1730
  "aria-label": "Location hierarchy"
1694
- }, Ja = {
1731
+ }, eo = {
1695
1732
  key: 0,
1696
1733
  class: "location-tree__loading",
1697
1734
  "aria-live": "polite"
1698
- }, Xa = { key: 2 }, Ya = /* @__PURE__ */ ae({
1735
+ }, to = { key: 2 }, ao = /* @__PURE__ */ ae({
1699
1736
  __name: "LocationTree",
1700
1737
  emits: ["select", "create"],
1701
1738
  setup(a, { emit: s }) {
@@ -1718,8 +1755,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1718
1755
  }
1719
1756
  return ue(() => {
1720
1757
  w();
1721
- }), (v, l) => (t(), n("div", Za, [
1722
- m.value ? (t(), n("div", Ja, [
1758
+ }), (v, l) => (t(), n("div", Ya, [
1759
+ m.value ? (t(), n("div", eo, [
1723
1760
  (t(), n(G, null, ne(5, (c) => e("div", {
1724
1761
  key: c,
1725
1762
  class: "location-tree__skeleton-row",
@@ -1730,40 +1767,40 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1730
1767
  e("div", { class: "location-tree__skeleton-bar location-tree__skeleton-bar--code" }, null, -1)
1731
1768
  ])], 4)), 64)),
1732
1769
  l[2] || (l[2] = e("span", { class: "sr-only" }, "Loading locations...", -1))
1733
- ])) : L(g).roots.length === 0 ? (t(), K(ge, {
1770
+ ])) : x(g).roots.length === 0 ? (t(), K(ge, {
1734
1771
  key: 1,
1735
1772
  title: "No locations yet",
1736
1773
  description: "Create your first warehouse or storage location to start organizing inventory.",
1737
1774
  "action-label": "Create Location",
1738
1775
  onAction: l[0] || (l[0] = (c) => o("create"))
1739
- })) : (t(), n("div", Xa, [
1740
- (t(!0), n(G, null, ne(L(g).roots, (c) => (t(), K(Wa, {
1776
+ })) : (t(), n("div", to, [
1777
+ (t(!0), n(G, null, ne(x(g).roots, (c) => (t(), K(Xa, {
1741
1778
  key: c.id,
1742
1779
  location: c,
1743
1780
  depth: 0,
1744
- "selected-id": L(g).selectedLocationId,
1781
+ "selected-id": x(g).selectedLocationId,
1745
1782
  onSelect: u,
1746
1783
  onToggle: i
1747
1784
  }, null, 8, ["location", "selected-id"]))), 128))
1748
1785
  ]))
1749
1786
  ]));
1750
1787
  }
1751
- }), eo = /* @__PURE__ */ oe(Ya, [["__scopeId", "data-v-e21f92ca"]]), to = { class: "inv-table-wrapper" }, ao = ["aria-busy"], oo = { class: "inv-table__head" }, no = ["aria-sort"], so = ["onClick"], lo = {
1788
+ }), oo = /* @__PURE__ */ oe(ao, [["__scopeId", "data-v-e21f92ca"]]), no = { class: "inv-table-wrapper" }, so = ["aria-busy"], lo = { class: "inv-table__head" }, io = ["aria-sort"], ro = ["onClick"], co = {
1752
1789
  class: "inv-table__sort-icon",
1753
1790
  width: "14",
1754
1791
  height: "14",
1755
1792
  viewBox: "0 0 14 14",
1756
1793
  fill: "none",
1757
1794
  "aria-hidden": "true"
1758
- }, io = {
1795
+ }, uo = {
1759
1796
  key: 0,
1760
1797
  d: "M7 3L11 8H3L7 3Z",
1761
1798
  fill: "currentColor"
1762
- }, ro = {
1799
+ }, vo = {
1763
1800
  key: 1,
1764
1801
  d: "M7 11L3 6H11L7 11Z",
1765
1802
  fill: "currentColor"
1766
- }, co = { key: 1 }, uo = { class: "inv-table__body" }, vo = { key: 1 }, _o = ["colspan"], po = { class: "inv-table__empty-text" }, ho = ["tabindex", "role", "onClick", "onKeydown"], fo = /* @__PURE__ */ ae({
1803
+ }, _o = { key: 1 }, po = { class: "inv-table__body" }, ho = { key: 1 }, fo = ["colspan"], yo = { class: "inv-table__empty-text" }, mo = ["tabindex", "role", "onClick", "onKeydown"], go = /* @__PURE__ */ ae({
1767
1804
  __name: "InvTable",
1768
1805
  props: {
1769
1806
  columns: {},
@@ -1786,13 +1823,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1786
1823
  let u;
1787
1824
  o.sortKey === w.key ? u = o.sortDir === "asc" ? "desc" : "asc" : u = "asc", g("sort", { key: w.key, direction: u });
1788
1825
  }
1789
- return (w, u) => (t(), n("div", to, [
1826
+ return (w, u) => (t(), n("div", no, [
1790
1827
  e("table", {
1791
1828
  class: "inv-table",
1792
1829
  role: "grid",
1793
1830
  "aria-busy": a.loading
1794
1831
  }, [
1795
- e("thead", oo, [
1832
+ e("thead", lo, [
1796
1833
  e("tr", null, [
1797
1834
  (t(!0), n(G, null, ne(a.columns, (i) => (t(), n("th", {
1798
1835
  key: i.key,
@@ -1811,8 +1848,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1811
1848
  onClick: (v) => m(i)
1812
1849
  }, [
1813
1850
  e("span", null, d(i.label), 1),
1814
- (t(), n("svg", lo, [
1815
- a.sortKey === i.key && a.sortDir === "asc" ? (t(), n("path", io)) : a.sortKey === i.key && a.sortDir === "desc" ? (t(), n("path", ro)) : (t(), n(G, { key: 2 }, [
1851
+ (t(), n("svg", co, [
1852
+ a.sortKey === i.key && a.sortDir === "asc" ? (t(), n("path", uo)) : a.sortKey === i.key && a.sortDir === "desc" ? (t(), n("path", vo)) : (t(), n(G, { key: 2 }, [
1816
1853
  u[0] || (u[0] = e("path", {
1817
1854
  d: "M7 3L10 7H4L7 3Z",
1818
1855
  fill: "currentColor",
@@ -1825,11 +1862,11 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1825
1862
  }, null, -1))
1826
1863
  ], 64))
1827
1864
  ]))
1828
- ], 10, so)) : (t(), n("span", co, d(i.label), 1))
1829
- ], 14, no))), 128))
1865
+ ], 10, ro)) : (t(), n("span", _o, d(i.label), 1))
1866
+ ], 14, io))), 128))
1830
1867
  ])
1831
1868
  ]),
1832
- e("tbody", uo, [
1869
+ e("tbody", po, [
1833
1870
  a.loading ? (t(), n(G, { key: 0 }, ne(5, (i) => e("tr", {
1834
1871
  key: `skeleton-${i}`,
1835
1872
  class: "inv-table__row inv-table__row--skeleton"
@@ -1840,15 +1877,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1840
1877
  }, [...u[2] || (u[2] = [
1841
1878
  e("div", { class: "inv-table__skeleton-bar" }, null, -1)
1842
1879
  ])]))), 128))
1843
- ])), 64)) : a.data.length === 0 ? (t(), n("tr", vo, [
1880
+ ])), 64)) : a.data.length === 0 ? (t(), n("tr", ho, [
1844
1881
  e("td", {
1845
1882
  colspan: a.columns.length,
1846
1883
  class: "inv-table__td inv-table__td--empty"
1847
1884
  }, [
1848
1885
  he(w.$slots, "empty", {}, () => [
1849
- e("span", po, d(a.emptyMessage), 1)
1886
+ e("span", yo, d(a.emptyMessage), 1)
1850
1887
  ], !0)
1851
- ], 8, _o)
1888
+ ], 8, fo)
1852
1889
  ])) : (t(!0), n(G, { key: 2 }, ne(a.data, (i, v) => (t(), n("tr", {
1853
1890
  key: v,
1854
1891
  class: ee(["inv-table__row", {
@@ -1873,12 +1910,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1873
1910
  D(d(i[l.key] ?? ""), 1)
1874
1911
  ], !0)
1875
1912
  ], 2))), 128))
1876
- ], 42, ho))), 128))
1913
+ ], 42, mo))), 128))
1877
1914
  ])
1878
- ], 8, ao)
1915
+ ], 8, so)
1879
1916
  ]));
1880
1917
  }
1881
- }), Ce = /* @__PURE__ */ oe(fo, [["__scopeId", "data-v-59a6e64b"]]), yo = /* @__PURE__ */ ae({
1918
+ }), Ce = /* @__PURE__ */ oe(go, [["__scopeId", "data-v-59a6e64b"]]), bo = /* @__PURE__ */ ae({
1882
1919
  __name: "InvBadge",
1883
1920
  props: {
1884
1921
  variant: { default: "default" },
@@ -1891,10 +1928,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1891
1928
  he(s.$slots, "default", {}, void 0, !0)
1892
1929
  ], 2));
1893
1930
  }
1894
- }), ve = /* @__PURE__ */ oe(yo, [["__scopeId", "data-v-f0803bf2"]]), mo = ["aria-describedby"], go = { class: "inv-modal__header" }, bo = { class: "inv-modal__body" }, ko = {
1931
+ }), ve = /* @__PURE__ */ oe(bo, [["__scopeId", "data-v-f0803bf2"]]), ko = ["aria-describedby"], wo = { class: "inv-modal__header" }, $o = { class: "inv-modal__body" }, Co = {
1895
1932
  key: 0,
1896
1933
  class: "inv-modal__footer"
1897
- }, wo = /* @__PURE__ */ ae({
1934
+ }, Lo = /* @__PURE__ */ ae({
1898
1935
  __name: "InvModal",
1899
1936
  props: {
1900
1937
  show: { type: Boolean },
@@ -1968,7 +2005,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1968
2005
  "aria-describedby": a.description ? w : void 0,
1969
2006
  onKeydown: c
1970
2007
  }, [
1971
- e("div", go, [
2008
+ e("div", wo, [
1972
2009
  e("div", null, [
1973
2010
  e("h2", {
1974
2011
  id: m,
@@ -1978,7 +2015,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
1978
2015
  key: 0,
1979
2016
  id: w,
1980
2017
  class: "inv-modal__description"
1981
- }, d(a.description), 1)) : z("", !0)
2018
+ }, d(a.description), 1)) : M("", !0)
1982
2019
  ]),
1983
2020
  e("button", {
1984
2021
  type: "button",
@@ -2003,31 +2040,31 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2003
2040
  ], -1)
2004
2041
  ])])
2005
2042
  ]),
2006
- e("div", bo, [
2043
+ e("div", $o, [
2007
2044
  he(y.$slots, "default", {}, void 0, !0)
2008
2045
  ]),
2009
- y.$slots.footer ? (t(), n("div", ko, [
2046
+ y.$slots.footer ? (t(), n("div", Co, [
2010
2047
  he(y.$slots, "footer", {}, void 0, !0)
2011
- ])) : z("", !0)
2012
- ], 42, mo)
2013
- ], 32)) : z("", !0)
2048
+ ])) : M("", !0)
2049
+ ], 42, ko)
2050
+ ], 32)) : M("", !0)
2014
2051
  ]),
2015
2052
  _: 3
2016
2053
  })
2017
2054
  ]));
2018
2055
  }
2019
- }), qe = /* @__PURE__ */ oe(wo, [["__scopeId", "data-v-7484015c"]]), $o = {
2056
+ }), qe = /* @__PURE__ */ oe(Lo, [["__scopeId", "data-v-7484015c"]]), xo = {
2020
2057
  class: "location-breadcrumb",
2021
2058
  "aria-label": "Location path"
2022
- }, Co = { class: "location-breadcrumb__list" }, Lo = {
2059
+ }, So = { class: "location-breadcrumb__list" }, Io = {
2023
2060
  key: 0,
2024
2061
  class: "location-breadcrumb__separator",
2025
2062
  "aria-hidden": "true"
2026
- }, xo = ["aria-label", "onClick"], So = {
2063
+ }, zo = ["aria-label", "onClick"], Mo = {
2027
2064
  key: 2,
2028
2065
  class: "location-breadcrumb__current",
2029
2066
  "aria-current": "location"
2030
- }, ot = 3, Io = /* @__PURE__ */ ae({
2067
+ }, ot = 3, Vo = /* @__PURE__ */ ae({
2031
2068
  __name: "LocationBreadcrumb",
2032
2069
  props: {
2033
2070
  path: {}
@@ -2038,8 +2075,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2038
2075
  function w(u) {
2039
2076
  return u === m.value.length - 1;
2040
2077
  }
2041
- return (u, i) => (t(), n("nav", $o, [
2042
- e("ol", Co, [
2078
+ return (u, i) => (t(), n("nav", xo, [
2079
+ e("ol", So, [
2043
2080
  r.value ? (t(), n(G, { key: 0 }, [
2044
2081
  i[0] || (i[0] = e("li", { class: "location-breadcrumb__item location-breadcrumb__item--ellipsis" }, [
2045
2082
  e("span", {
@@ -2053,24 +2090,24 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2053
2090
  }, [
2054
2091
  e("span", { class: "location-breadcrumb__separator" }, "›")
2055
2092
  ], -1))
2056
- ], 64)) : z("", !0),
2093
+ ], 64)) : M("", !0),
2057
2094
  (t(!0), n(G, null, ne(m.value, (v, l) => (t(), n("li", {
2058
2095
  key: v.id,
2059
2096
  class: "location-breadcrumb__item"
2060
2097
  }, [
2061
- l > 0 || r.value ? (t(), n("span", Lo, "›")) : z("", !0),
2062
- w(l) ? (t(), n("span", So, d(v.name), 1)) : (t(), n("button", {
2098
+ l > 0 || r.value ? (t(), n("span", Io, "›")) : M("", !0),
2099
+ w(l) ? (t(), n("span", Mo, d(v.name), 1)) : (t(), n("button", {
2063
2100
  key: 1,
2064
2101
  type: "button",
2065
2102
  class: "location-breadcrumb__link",
2066
2103
  "aria-label": `Navigate to ${v.name}`,
2067
2104
  onClick: (c) => g("navigate", v)
2068
- }, d(v.name), 9, xo))
2105
+ }, d(v.name), 9, zo))
2069
2106
  ]))), 128))
2070
2107
  ])
2071
2108
  ]));
2072
2109
  }
2073
- }), et = /* @__PURE__ */ oe(Io, [["__scopeId", "data-v-911e6f70"]]), zo = ["type", "value", "placeholder", "disabled", "aria-invalid", "aria-describedby"], Mo = /* @__PURE__ */ ae({
2110
+ }), et = /* @__PURE__ */ oe(Vo, [["__scopeId", "data-v-911e6f70"]]), Bo = ["type", "value", "placeholder", "disabled", "aria-invalid", "aria-describedby"], Ao = /* @__PURE__ */ ae({
2074
2111
  __name: "InvInput",
2075
2112
  props: {
2076
2113
  modelValue: {},
@@ -2097,7 +2134,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2097
2134
  key: 0,
2098
2135
  for: m,
2099
2136
  class: "inv-input__label"
2100
- }, d(a.label), 1)) : z("", !0),
2137
+ }, d(a.label), 1)) : M("", !0),
2101
2138
  e("input", {
2102
2139
  id: m,
2103
2140
  ref_key: "inputRef",
@@ -2110,20 +2147,20 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2110
2147
  "aria-invalid": !!a.error || void 0,
2111
2148
  "aria-describedby": a.error ? w : void 0,
2112
2149
  onInput: i
2113
- }, null, 40, zo),
2150
+ }, null, 40, Bo),
2114
2151
  a.error ? (t(), n("p", {
2115
2152
  key: 1,
2116
2153
  id: w,
2117
2154
  class: "inv-input__error",
2118
2155
  role: "alert"
2119
- }, d(a.error), 1)) : z("", !0)
2156
+ }, d(a.error), 1)) : M("", !0)
2120
2157
  ], 2));
2121
2158
  }
2122
- }), Fe = /* @__PURE__ */ oe(Mo, [["__scopeId", "data-v-b681751f"]]), Vo = { class: "inv-select__wrapper" }, Bo = ["value", "disabled", "aria-invalid", "aria-describedby"], Ao = {
2159
+ }), Fe = /* @__PURE__ */ oe(Ao, [["__scopeId", "data-v-b681751f"]]), Po = { class: "inv-select__wrapper" }, Fo = ["value", "disabled", "aria-invalid", "aria-describedby"], No = {
2123
2160
  key: 0,
2124
2161
  value: "",
2125
2162
  disabled: ""
2126
- }, Po = ["value"], Fo = /* @__PURE__ */ ae({
2163
+ }, To = ["value"], Do = /* @__PURE__ */ ae({
2127
2164
  __name: "InvSelect",
2128
2165
  props: {
2129
2166
  modelValue: {},
@@ -2149,8 +2186,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2149
2186
  key: 0,
2150
2187
  for: m,
2151
2188
  class: "inv-select__label"
2152
- }, d(a.label), 1)) : z("", !0),
2153
- e("div", Vo, [
2189
+ }, d(a.label), 1)) : M("", !0),
2190
+ e("div", Po, [
2154
2191
  e("select", {
2155
2192
  id: m,
2156
2193
  class: "inv-select__field",
@@ -2160,12 +2197,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2160
2197
  "aria-describedby": a.error ? w : void 0,
2161
2198
  onChange: u
2162
2199
  }, [
2163
- a.placeholder ? (t(), n("option", Ao, d(a.placeholder), 1)) : z("", !0),
2200
+ a.placeholder ? (t(), n("option", No, d(a.placeholder), 1)) : M("", !0),
2164
2201
  (t(!0), n(G, null, ne(a.options, (l) => (t(), n("option", {
2165
2202
  key: l.value,
2166
2203
  value: l.value
2167
- }, d(l.label), 9, Po))), 128))
2168
- ], 40, Bo),
2204
+ }, d(l.label), 9, To))), 128))
2205
+ ], 40, Fo),
2169
2206
  v[0] || (v[0] = e("svg", {
2170
2207
  class: "inv-select__chevron",
2171
2208
  width: "16",
@@ -2188,13 +2225,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2188
2225
  id: w,
2189
2226
  class: "inv-select__error",
2190
2227
  role: "alert"
2191
- }, d(a.error), 1)) : z("", !0)
2228
+ }, d(a.error), 1)) : M("", !0)
2192
2229
  ], 2));
2193
2230
  }
2194
- }), $e = /* @__PURE__ */ oe(Fo, [["__scopeId", "data-v-40ea769b"]]), No = { class: "location-form__field" }, To = {
2231
+ }), $e = /* @__PURE__ */ oe(Do, [["__scopeId", "data-v-40ea769b"]]), Eo = { class: "location-form__field" }, Ro = {
2195
2232
  key: 0,
2196
2233
  class: "location-form__code-preview"
2197
- }, Do = { class: "location-form__field" }, Eo = /* @__PURE__ */ ae({
2234
+ }, qo = { class: "location-form__field" }, Ho = /* @__PURE__ */ ae({
2198
2235
  __name: "LocationForm",
2199
2236
  props: {
2200
2237
  show: { type: Boolean },
@@ -2235,13 +2272,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2235
2272
  function S(C) {
2236
2273
  _[C] = "";
2237
2274
  }
2238
- function x() {
2275
+ function L() {
2239
2276
  let C = !0;
2240
2277
  return c.name.trim() ? c.name.trim().length > 255 && (_.name = "Name must be 255 characters or less", C = !1) : (_.name = "Name is required", C = !1), !f.value && !c.type && (_.type = "Type is required", C = !1), c.code && !b.test(c.code) && (_.code = "Only letters, numbers, and hyphens allowed", C = !1), C;
2241
2278
  }
2242
- async function M() {
2279
+ async function z() {
2243
2280
  var C, A;
2244
- if (x()) {
2281
+ if (L()) {
2245
2282
  v.value = !0;
2246
2283
  try {
2247
2284
  let V;
@@ -2315,7 +2352,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2315
2352
  variant: "primary",
2316
2353
  loading: v.value,
2317
2354
  disabled: v.value,
2318
- onClick: M
2355
+ onClick: z
2319
2356
  }, {
2320
2357
  default: k(() => [
2321
2358
  D(d(f.value ? "Save Changes" : "Create Location"), 1)
@@ -2326,7 +2363,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2326
2363
  default: k(() => [
2327
2364
  e("form", {
2328
2365
  class: "location-form",
2329
- onSubmit: me(M, ["prevent"])
2366
+ onSubmit: me(z, ["prevent"])
2330
2367
  }, [
2331
2368
  I(Fe, {
2332
2369
  modelValue: c.name,
@@ -2351,7 +2388,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2351
2388
  error: _.type,
2352
2389
  disabled: f.value
2353
2390
  }, null, 8, ["modelValue", "options", "error", "disabled"]),
2354
- e("div", No, [
2391
+ e("div", Eo, [
2355
2392
  I(Fe, {
2356
2393
  modelValue: c.code,
2357
2394
  "onUpdate:modelValue": [
@@ -2362,12 +2399,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2362
2399
  placeholder: "Auto-generated if blank",
2363
2400
  error: _.code
2364
2401
  }, null, 8, ["modelValue", "error"]),
2365
- p.value ? (t(), n("p", To, [
2402
+ p.value ? (t(), n("p", Ro, [
2366
2403
  A[8] || (A[8] = D(" Full code: ", -1)),
2367
2404
  e("code", null, d(p.value), 1)
2368
- ])) : z("", !0)
2405
+ ])) : M("", !0)
2369
2406
  ]),
2370
- e("div", Do, [
2407
+ e("div", qo, [
2371
2408
  e("label", {
2372
2409
  for: m,
2373
2410
  class: "location-form__label"
@@ -2394,62 +2431,62 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2394
2431
  _: 1
2395
2432
  }, 8, ["show", "title", "description"]));
2396
2433
  }
2397
- }), Ge = /* @__PURE__ */ oe(Eo, [["__scopeId", "data-v-7b871a38"]]), Ro = { class: "location-detail" }, qo = {
2434
+ }), Ge = /* @__PURE__ */ oe(Ho, [["__scopeId", "data-v-7b871a38"]]), Uo = { class: "location-detail" }, jo = {
2398
2435
  key: 0,
2399
2436
  class: "location-detail__loading",
2400
2437
  "aria-live": "polite"
2401
- }, Ho = { class: "location-detail__header" }, Uo = { class: "location-detail__title-row" }, jo = { class: "location-detail__title-area" }, Oo = { class: "location-detail__name" }, Qo = { class: "location-detail__actions" }, Ko = { class: "location-detail__info-grid" }, Go = {
2438
+ }, Oo = { class: "location-detail__header" }, Qo = { class: "location-detail__title-row" }, Ko = { class: "location-detail__title-area" }, Go = { class: "location-detail__name" }, Wo = { class: "location-detail__actions" }, Zo = { class: "location-detail__info-grid" }, Jo = {
2402
2439
  key: 0,
2403
2440
  class: "location-detail__info-item"
2404
- }, Wo = { class: "location-detail__info-value" }, Zo = { class: "location-detail__info-item" }, Jo = { class: "location-detail__info-value" }, Xo = { class: "location-detail__info-item" }, Yo = { class: "location-detail__info-value" }, en = {
2441
+ }, Xo = { class: "location-detail__info-value" }, Yo = { class: "location-detail__info-item" }, en = { class: "location-detail__info-value" }, tn = { class: "location-detail__info-item" }, an = { class: "location-detail__info-value" }, on = {
2405
2442
  key: 1,
2406
2443
  class: "location-detail__info-item"
2407
- }, tn = { class: "location-detail__child-cell" }, an = { class: "location-detail__count" }, on = { class: "location-detail__product-count-label" }, nn = {
2444
+ }, nn = { class: "location-detail__child-cell" }, sn = { class: "location-detail__count" }, ln = { class: "location-detail__product-count-label" }, rn = {
2408
2445
  key: 0,
2409
2446
  class: "location-detail__loading-inline"
2410
- }, sn = {
2447
+ }, cn = {
2411
2448
  key: 1,
2412
2449
  class: "location-detail__empty-inline"
2413
- }, ln = { class: "location-detail__product-cell" }, rn = { class: "location-detail__product-name" }, cn = {
2450
+ }, dn = { class: "location-detail__product-cell" }, un = { class: "location-detail__product-name" }, vn = {
2414
2451
  key: 0,
2415
2452
  class: "location-detail__product-sku"
2416
- }, dn = {
2453
+ }, _n = {
2417
2454
  key: 0,
2418
2455
  class: "location-detail__loading-inline"
2419
- }, un = {
2456
+ }, pn = {
2420
2457
  key: 1,
2421
2458
  class: "location-detail__empty-inline"
2422
- }, vn = {
2459
+ }, hn = {
2423
2460
  key: 2,
2424
2461
  class: "location-detail__movements-list"
2425
- }, _n = {
2462
+ }, fn = {
2426
2463
  width: "14",
2427
2464
  height: "14",
2428
2465
  viewBox: "0 0 24 24",
2429
2466
  fill: "none",
2430
2467
  "aria-hidden": "true"
2431
- }, pn = {
2468
+ }, yn = {
2432
2469
  key: 0,
2433
2470
  d: "M12 5v14M5 12l7 7 7-7",
2434
2471
  stroke: "currentColor",
2435
2472
  "stroke-width": "2",
2436
2473
  "stroke-linecap": "round",
2437
2474
  "stroke-linejoin": "round"
2438
- }, hn = {
2475
+ }, mn = {
2439
2476
  key: 1,
2440
2477
  d: "M12 19V5M5 12l7-7 7 7",
2441
2478
  stroke: "currentColor",
2442
2479
  "stroke-width": "2",
2443
2480
  "stroke-linecap": "round",
2444
2481
  "stroke-linejoin": "round"
2445
- }, fn = {
2482
+ }, gn = {
2446
2483
  key: 2,
2447
2484
  d: "M5 12h14M12 5l7 7-7 7",
2448
2485
  stroke: "currentColor",
2449
2486
  "stroke-width": "2",
2450
2487
  "stroke-linecap": "round",
2451
2488
  "stroke-linejoin": "round"
2452
- }, yn = {
2489
+ }, bn = {
2453
2490
  key: 3,
2454
2491
  d: "M4 4l16 16M20 4L4 20",
2455
2492
  stroke: "currentColor",
@@ -2457,13 +2494,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2457
2494
  "stroke-linecap": "round",
2458
2495
  "stroke-linejoin": "round",
2459
2496
  opacity: "0.6"
2460
- }, mn = { class: "location-detail__movement-info" }, gn = { class: "location-detail__movement-primary" }, bn = { class: "location-detail__movement-qty" }, kn = { class: "location-detail__movement-meta" }, wn = {
2497
+ }, kn = { class: "location-detail__movement-info" }, wn = { class: "location-detail__movement-primary" }, $n = { class: "location-detail__movement-qty" }, Cn = { class: "location-detail__movement-meta" }, Ln = {
2461
2498
  key: 0,
2462
2499
  class: "location-detail__label-preview"
2463
- }, $n = ["innerHTML"], Cn = { class: "location-detail__label-info" }, Ln = { class: "location-detail__label-code" }, xn = { class: "location-detail__label-path" }, Sn = {
2500
+ }, xn = ["innerHTML"], Sn = { class: "location-detail__label-info" }, In = { class: "location-detail__label-code" }, zn = { class: "location-detail__label-path" }, Mn = {
2464
2501
  key: 1,
2465
2502
  class: "location-detail__empty-inline"
2466
- }, In = { class: "location-detail__delete-warning" }, zn = /* @__PURE__ */ ae({
2503
+ }, Vn = { class: "location-detail__delete-warning" }, Bn = /* @__PURE__ */ ae({
2467
2504
  __name: "LocationDetail",
2468
2505
  props: {
2469
2506
  locationCode: { default: void 0 },
@@ -2471,7 +2508,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2471
2508
  },
2472
2509
  emits: ["navigate", "deleted"],
2473
2510
  setup(a, { emit: s }) {
2474
- const o = a, g = s, r = Me(), { fetchLocation: m, fetchChildren: w, remove: u } = we(), { fetchProducts: i } = Se(), { fetchByLocation: v } = Ke(), { fetchLabel: l, printLabel: c } = Ye(), _ = $(null), f = $(!1), y = $(null), p = $([]), h = $(!1), b = $([]), B = $(!1), S = $([]), x = $(!1), M = $(null), T = $(!1), N = $(!1), Q = $(!1), C = $(!1), A = $(!1), V = [
2511
+ const o = a, g = s, r = Me(), { fetchLocation: m, fetchChildren: w, remove: u } = we(), { fetchProducts: i } = Se(), { fetchByLocation: v } = Ke(), { fetchLabel: l, printLabel: c } = Ye(), _ = $(null), f = $(!1), y = $(null), p = $([]), h = $(!1), b = $([]), B = $(!1), S = $([]), L = $(!1), z = $(null), T = $(!1), N = $(!1), Q = $(!1), C = $(!1), A = $(!1), V = [
2475
2512
  { key: "name", label: "Name" },
2476
2513
  { key: "type_label", label: "Type", width: "100px" },
2477
2514
  { key: "full_code", label: "Code", width: "140px" },
@@ -2557,14 +2594,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2557
2594
  }
2558
2595
  }
2559
2596
  async function H(ie) {
2560
- x.value = !0;
2597
+ L.value = !0;
2561
2598
  try {
2562
2599
  const F = Ke();
2563
2600
  await F.fetchByLocation(ie), S.value = F.movements.value.slice(0, 10);
2564
2601
  } catch {
2565
2602
  S.value = [];
2566
2603
  } finally {
2567
- x.value = !1;
2604
+ L.value = !1;
2568
2605
  }
2569
2606
  }
2570
2607
  async function U() {
@@ -2572,7 +2609,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2572
2609
  T.value = !0;
2573
2610
  try {
2574
2611
  const ie = await l(_.value.id);
2575
- M.value = ie;
2612
+ z.value = ie;
2576
2613
  } catch {
2577
2614
  } finally {
2578
2615
  T.value = !1;
@@ -2616,14 +2653,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2616
2653
  return _e(
2617
2654
  () => [o.locationId, o.locationCode],
2618
2655
  () => {
2619
- M.value = null, P();
2656
+ z.value = null, P();
2620
2657
  }
2621
2658
  ), ue(() => {
2622
2659
  P();
2623
2660
  }), (ie, F) => {
2624
2661
  var de;
2625
- return t(), n("div", Ro, [
2626
- f.value ? (t(), n("div", qo, [...F[6] || (F[6] = [
2662
+ return t(), n("div", Uo, [
2663
+ f.value ? (t(), n("div", jo, [...F[6] || (F[6] = [
2627
2664
  xe('<div class="location-detail__loading-header" data-v-388046b7><div class="location-detail__skeleton location-detail__skeleton--breadcrumb" data-v-388046b7></div><div class="location-detail__skeleton location-detail__skeleton--title" data-v-388046b7></div><div class="location-detail__skeleton location-detail__skeleton--badges" data-v-388046b7></div></div><div class="location-detail__skeleton location-detail__skeleton--card" data-v-388046b7></div><div class="location-detail__skeleton location-detail__skeleton--card" data-v-388046b7></div><span class="sr-only" data-v-388046b7>Loading location details...</span>', 4)
2628
2665
  ])])) : y.value ? (t(), K(ge, {
2629
2666
  key: 1,
@@ -2632,19 +2669,19 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2632
2669
  "action-label": "Retry",
2633
2670
  onAction: P
2634
2671
  }, null, 8, ["description"])) : _.value ? (t(), n(G, { key: 2 }, [
2635
- e("header", Ho, [
2672
+ e("header", Oo, [
2636
2673
  _.value.path && _.value.path.length > 0 ? (t(), K(et, {
2637
2674
  key: 0,
2638
2675
  path: _.value.path,
2639
2676
  onNavigate: le
2640
- }, null, 8, ["path"])) : z("", !0),
2641
- e("div", Uo, [
2642
- e("div", jo, [
2677
+ }, null, 8, ["path"])) : M("", !0),
2678
+ e("div", Qo, [
2679
+ e("div", Ko, [
2643
2680
  I(Ee, {
2644
2681
  type: _.value.type,
2645
2682
  size: "lg"
2646
2683
  }, null, 8, ["type"]),
2647
- e("h1", Oo, d(_.value.name), 1),
2684
+ e("h1", Go, d(_.value.name), 1),
2648
2685
  I(fe, {
2649
2686
  code: _.value.full_code
2650
2687
  }, null, 8, ["code"]),
@@ -2667,7 +2704,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2667
2704
  _: 1
2668
2705
  }, 8, ["variant"])
2669
2706
  ]),
2670
- e("div", Qo, [
2707
+ e("div", Wo, [
2671
2708
  I(O, {
2672
2709
  variant: "secondary",
2673
2710
  size: "sm",
@@ -2775,20 +2812,20 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2775
2812
  compact: ""
2776
2813
  }, {
2777
2814
  default: k(() => [
2778
- e("div", Ko, [
2779
- _.value.description ? (t(), n("div", Go, [
2815
+ e("div", Zo, [
2816
+ _.value.description ? (t(), n("div", Jo, [
2780
2817
  F[13] || (F[13] = e("span", { class: "location-detail__info-label" }, "Description", -1)),
2781
- e("p", Wo, d(_.value.description), 1)
2782
- ])) : z("", !0),
2783
- e("div", Zo, [
2818
+ e("p", Xo, d(_.value.description), 1)
2819
+ ])) : M("", !0),
2820
+ e("div", Yo, [
2784
2821
  F[14] || (F[14] = e("span", { class: "location-detail__info-label" }, "Created", -1)),
2785
- e("span", Jo, d(E(_.value.created_at)), 1)
2822
+ e("span", en, d(E(_.value.created_at)), 1)
2786
2823
  ]),
2787
- e("div", Xo, [
2824
+ e("div", tn, [
2788
2825
  F[15] || (F[15] = e("span", { class: "location-detail__info-label" }, "Last Updated", -1)),
2789
- e("span", Yo, d(E(_.value.updated_at)), 1)
2826
+ e("span", an, d(E(_.value.updated_at)), 1)
2790
2827
  ]),
2791
- _.value.is_mobile ? (t(), n("div", en, [
2828
+ _.value.is_mobile ? (t(), n("div", on, [
2792
2829
  F[17] || (F[17] = e("span", { class: "location-detail__info-label" }, "Mobile", -1)),
2793
2830
  I(ve, {
2794
2831
  variant: "info",
@@ -2799,11 +2836,11 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2799
2836
  ])]),
2800
2837
  _: 1
2801
2838
  })
2802
- ])) : z("", !0)
2839
+ ])) : M("", !0)
2803
2840
  ])
2804
2841
  ]),
2805
2842
  _: 1
2806
- })) : z("", !0),
2843
+ })) : M("", !0),
2807
2844
  p.value.length > 0 || _.value.children_count ? (t(), K(se, {
2808
2845
  key: 1,
2809
2846
  title: "Child Locations",
@@ -2832,7 +2869,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2832
2869
  onRowClick: pe
2833
2870
  }, {
2834
2871
  "cell-name": k(({ row: j }) => [
2835
- e("div", tn, [
2872
+ e("div", nn, [
2836
2873
  I(Ee, {
2837
2874
  type: j.type,
2838
2875
  size: "sm"
@@ -2855,27 +2892,27 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2855
2892
  I(fe, { code: j }, null, 8, ["code"])
2856
2893
  ]),
2857
2894
  "cell-product_count": k(({ value: j }) => [
2858
- e("span", an, d(j ?? 0), 1)
2895
+ e("span", sn, d(j ?? 0), 1)
2859
2896
  ]),
2860
2897
  _: 1
2861
2898
  }, 8, ["data", "loading"])
2862
2899
  ]),
2863
2900
  _: 1
2864
- })) : z("", !0),
2901
+ })) : M("", !0),
2865
2902
  I(se, {
2866
2903
  title: "Products",
2867
2904
  compact: "",
2868
2905
  "no-padding": ""
2869
2906
  }, {
2870
2907
  actions: k(() => [
2871
- e("span", on, d(b.value.length) + " " + d(b.value.length === 1 ? "product" : "products"), 1)
2908
+ e("span", ln, d(b.value.length) + " " + d(b.value.length === 1 ? "product" : "products"), 1)
2872
2909
  ]),
2873
2910
  default: k(() => [
2874
- B.value ? (t(), n("div", nn, [...F[19] || (F[19] = [
2911
+ B.value ? (t(), n("div", rn, [...F[19] || (F[19] = [
2875
2912
  e("div", { class: "location-detail__skeleton location-detail__skeleton--row" }, null, -1),
2876
2913
  e("div", { class: "location-detail__skeleton location-detail__skeleton--row" }, null, -1),
2877
2914
  e("div", { class: "location-detail__skeleton location-detail__skeleton--row" }, null, -1)
2878
- ])])) : b.value.length === 0 ? (t(), n("div", sn, [...F[20] || (F[20] = [
2915
+ ])])) : b.value.length === 0 ? (t(), n("div", cn, [...F[20] || (F[20] = [
2879
2916
  e("p", null, "No products at this location.", -1)
2880
2917
  ])])) : (t(), K(Ce, {
2881
2918
  key: 2,
@@ -2884,13 +2921,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2884
2921
  "empty-message": "No products at this location."
2885
2922
  }, {
2886
2923
  "cell-product_name": k(({ row: j }) => [
2887
- e("div", ln, [
2888
- e("span", rn, d(j.product_name), 1),
2889
- j.product_sku ? (t(), n("span", cn, d(j.product_sku), 1)) : z("", !0)
2924
+ e("div", dn, [
2925
+ e("span", un, d(j.product_name), 1),
2926
+ j.product_sku ? (t(), n("span", vn, d(j.product_sku), 1)) : M("", !0)
2890
2927
  ])
2891
2928
  ]),
2892
2929
  "cell-quantity": k(({ value: j }) => [
2893
- e("strong", null, d(L(at)(j)), 1)
2930
+ e("strong", null, d(x(at)(j)), 1)
2894
2931
  ]),
2895
2932
  "cell-is_primary": k(({ value: j }) => [
2896
2933
  j ? (t(), K(ve, {
@@ -2902,7 +2939,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2902
2939
  D("Primary", -1)
2903
2940
  ])]),
2904
2941
  _: 1
2905
- })) : z("", !0)
2942
+ })) : M("", !0)
2906
2943
  ]),
2907
2944
  _: 1
2908
2945
  }, 8, ["data"]))
@@ -2916,12 +2953,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2916
2953
  collapsible: ""
2917
2954
  }, {
2918
2955
  default: k(() => [
2919
- x.value ? (t(), n("div", dn, [...F[22] || (F[22] = [
2956
+ L.value ? (t(), n("div", _n, [...F[22] || (F[22] = [
2920
2957
  e("div", { class: "location-detail__skeleton location-detail__skeleton--row" }, null, -1),
2921
2958
  e("div", { class: "location-detail__skeleton location-detail__skeleton--row" }, null, -1)
2922
- ])])) : S.value.length === 0 ? (t(), n("div", un, [...F[23] || (F[23] = [
2959
+ ])])) : S.value.length === 0 ? (t(), n("div", pn, [...F[23] || (F[23] = [
2923
2960
  e("p", null, "No recent movements.", -1)
2924
- ])])) : (t(), n("div", vn, [
2961
+ ])])) : (t(), n("div", hn, [
2925
2962
  (t(!0), n(G, null, ne(S.value, (j) => (t(), n("div", {
2926
2963
  key: j.id,
2927
2964
  class: "location-detail__movement"
@@ -2929,17 +2966,17 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2929
2966
  e("div", {
2930
2967
  class: ee(["location-detail__movement-icon", `location-detail__movement-icon--${j.reason}`])
2931
2968
  }, [
2932
- (t(), n("svg", _n, [
2933
- j.reason === "placed" || j.reason === "received" ? (t(), n("path", pn)) : j.reason === "picked" ? (t(), n("path", hn)) : j.reason === "moved" ? (t(), n("path", fn)) : (t(), n("path", yn))
2969
+ (t(), n("svg", fn, [
2970
+ j.reason === "placed" || j.reason === "received" ? (t(), n("path", yn)) : j.reason === "picked" ? (t(), n("path", mn)) : j.reason === "moved" ? (t(), n("path", gn)) : (t(), n("path", bn))
2934
2971
  ]))
2935
2972
  ], 2),
2936
- e("div", mn, [
2937
- e("span", gn, [
2973
+ e("div", kn, [
2974
+ e("span", wn, [
2938
2975
  e("strong", null, d(j.reason_label), 1),
2939
2976
  D(" " + d(j.product_name) + " ", 1),
2940
- e("span", bn, " (qty: " + d(L(at)(j.quantity)) + ") ", 1)
2977
+ e("span", $n, " (qty: " + d(x(at)(j.quantity)) + ") ", 1)
2941
2978
  ]),
2942
- e("span", kn, d(j.performer_name || "System") + " · " + d(L(Ta)(j.performed_at)), 1)
2979
+ e("span", Cn, d(j.performer_name || "System") + " · " + d(x(Ra)(j.performed_at)), 1)
2943
2980
  ])
2944
2981
  ]))), 128))
2945
2982
  ]))
@@ -2965,18 +3002,18 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2965
3002
  })
2966
3003
  ]),
2967
3004
  default: k(() => [
2968
- M.value ? (t(), n("div", wn, [
2969
- M.value.qr_code_svg ? (t(), n("div", {
3005
+ z.value ? (t(), n("div", Ln, [
3006
+ z.value.qr_code_svg ? (t(), n("div", {
2970
3007
  key: 0,
2971
3008
  class: "location-detail__label-qr",
2972
- innerHTML: M.value.qr_code_svg
2973
- }, null, 8, $n)) : z("", !0),
2974
- e("div", Cn, [
2975
- e("strong", null, d(M.value.location.name), 1),
2976
- e("span", Ln, d(M.value.location.full_code), 1),
2977
- e("span", xn, d(M.value.path), 1)
3009
+ innerHTML: z.value.qr_code_svg
3010
+ }, null, 8, xn)) : M("", !0),
3011
+ e("div", Sn, [
3012
+ e("strong", null, d(z.value.location.name), 1),
3013
+ e("span", In, d(z.value.location.full_code), 1),
3014
+ e("span", zn, d(z.value.path), 1)
2978
3015
  ])
2979
- ])) : (t(), n("div", Sn, [
3016
+ ])) : (t(), n("div", Mn, [
2980
3017
  e("p", null, [
2981
3018
  I(O, {
2982
3019
  variant: "secondary",
@@ -2994,7 +3031,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
2994
3031
  ]),
2995
3032
  _: 1
2996
3033
  })
2997
- ], 64)) : z("", !0),
3034
+ ], 64)) : M("", !0),
2998
3035
  I(Ge, {
2999
3036
  show: N.value,
3000
3037
  location: _.value,
@@ -3038,7 +3075,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3038
3075
  default: k(() => {
3039
3076
  var j;
3040
3077
  return [
3041
- e("p", In, [
3078
+ e("p", Vn, [
3042
3079
  F[26] || (F[26] = D(" Are you sure you want to delete ", -1)),
3043
3080
  e("strong", null, d((j = _.value) == null ? void 0 : j.name), 1),
3044
3081
  F[27] || (F[27] = D("? ", -1))
@@ -3050,7 +3087,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3050
3087
  ]);
3051
3088
  };
3052
3089
  }
3053
- }), Mn = /* @__PURE__ */ oe(zn, [["__scopeId", "data-v-388046b7"]]), Vn = { class: "inv-shell" }, Bn = { class: "inv-shell__header" }, An = { class: "inv-shell__header-left" }, Pn = ["aria-label", "aria-expanded"], Fn = { class: "inv-shell__header-actions" }, Nn = { class: "inv-shell__search-wrapper" }, Tn = { class: "inv-shell__body" }, Dn = ["aria-hidden"], En = { class: "inv-shell__detail" }, Rn = /* @__PURE__ */ ae({
3090
+ }), An = /* @__PURE__ */ oe(Bn, [["__scopeId", "data-v-388046b7"]]), Pn = { class: "inv-shell" }, Fn = { class: "inv-shell__header" }, Nn = { class: "inv-shell__header-left" }, Tn = ["aria-label", "aria-expanded"], Dn = { class: "inv-shell__header-actions" }, En = { class: "inv-shell__search-wrapper" }, Rn = { class: "inv-shell__body" }, qn = ["aria-hidden"], Hn = { class: "inv-shell__detail" }, Un = /* @__PURE__ */ ae({
3054
3091
  __name: "InventoryLocatorShell",
3055
3092
  setup(a) {
3056
3093
  const s = Me(), o = Qe("router", null), g = Qe("route", null), r = $(""), m = $(!1), w = $(!0), u = $(typeof window < "u" ? window.innerWidth : 1200), i = J(() => u.value < 1024);
@@ -3094,14 +3131,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3094
3131
  var T;
3095
3132
  return (T = g == null ? void 0 : g.params) != null && T.code ? g.params.code : null;
3096
3133
  }
3097
- function x() {
3134
+ function L() {
3098
3135
  const T = S();
3099
3136
  if (T) {
3100
- const N = M(T);
3137
+ const N = z(T);
3101
3138
  N && (s.selectLocation(N.id), b(N));
3102
3139
  }
3103
3140
  }
3104
- function M(T) {
3141
+ function z(T) {
3105
3142
  const N = (Q) => {
3106
3143
  for (const C of Q) {
3107
3144
  if (C.full_code === T) return C;
@@ -3121,17 +3158,17 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3121
3158
  },
3122
3159
  (T) => {
3123
3160
  if (T) {
3124
- const N = M(T);
3161
+ const N = z(T);
3125
3162
  N && (s.selectLocation(N.id), b(N));
3126
3163
  }
3127
3164
  }
3128
3165
  ), ue(() => {
3129
- window.addEventListener("resize", v), v(), x();
3166
+ window.addEventListener("resize", v), v(), L();
3130
3167
  }), st(() => {
3131
3168
  window.removeEventListener("resize", v);
3132
- }), (T, N) => (t(), n("div", Vn, [
3133
- e("header", Bn, [
3134
- e("div", An, [
3169
+ }), (T, N) => (t(), n("div", Pn, [
3170
+ e("header", Fn, [
3171
+ e("div", Nn, [
3135
3172
  e("button", {
3136
3173
  type: "button",
3137
3174
  class: "inv-shell__menu-toggle",
@@ -3154,12 +3191,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3154
3191
  "stroke-linejoin": "round"
3155
3192
  })
3156
3193
  ], -1)
3157
- ])], 8, Pn),
3194
+ ])], 8, Tn),
3158
3195
  N[7] || (N[7] = e("h1", { class: "inv-shell__title" }, "Inventory Locations", -1))
3159
3196
  ]),
3160
- e("div", Fn, [
3161
- e("div", Nn, [
3162
- I(Fa, {
3197
+ e("div", Dn, [
3198
+ e("div", En, [
3199
+ I(Da, {
3163
3200
  modelValue: r.value,
3164
3201
  "onUpdate:modelValue": N[1] || (N[1] = (Q) => r.value = Q),
3165
3202
  placeholder: "Search locations...",
@@ -3228,14 +3265,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3228
3265
  })
3229
3266
  ])
3230
3267
  ]),
3231
- e("div", Tn, [
3268
+ e("div", Rn, [
3232
3269
  I(Ie, { name: "inv-shell-backdrop" }, {
3233
3270
  default: k(() => [
3234
3271
  w.value && i.value ? (t(), n("div", {
3235
3272
  key: 0,
3236
3273
  class: "inv-shell__backdrop",
3237
3274
  onClick: N[3] || (N[3] = (Q) => w.value = !1)
3238
- })) : z("", !0)
3275
+ })) : M("", !0)
3239
3276
  ]),
3240
3277
  _: 1
3241
3278
  }),
@@ -3246,15 +3283,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3246
3283
  }]),
3247
3284
  "aria-hidden": i.value && !w.value ? "true" : void 0
3248
3285
  }, [
3249
- I(eo, {
3286
+ I(oo, {
3250
3287
  onSelect: c,
3251
3288
  onCreate: N[4] || (N[4] = (Q) => m.value = !0)
3252
3289
  })
3253
- ], 10, Dn),
3254
- e("main", En, [
3255
- L(s).selectedLocationId ? (t(), K(Mn, {
3290
+ ], 10, qn),
3291
+ e("main", Hn, [
3292
+ x(s).selectedLocationId ? (t(), K(An, {
3256
3293
  key: 0,
3257
- "location-id": L(s).selectedLocationId,
3294
+ "location-id": x(s).selectedLocationId,
3258
3295
  onNavigate: _,
3259
3296
  onDeleted: f
3260
3297
  }, null, 8, ["location-id"])) : (t(), K(ge, {
@@ -3271,22 +3308,22 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3271
3308
  }, null, 8, ["show"])
3272
3309
  ]));
3273
3310
  }
3274
- }), Ur = /* @__PURE__ */ oe(Rn, [["__scopeId", "data-v-e77a95d2"]]), qn = { class: "scan-result__body" }, Hn = {
3311
+ }), Qr = /* @__PURE__ */ oe(Un, [["__scopeId", "data-v-e77a95d2"]]), jn = { class: "scan-result__body" }, On = {
3275
3312
  key: 0,
3276
3313
  class: "scan-result__path"
3277
- }, Un = { class: "scan-result__location-info" }, jn = {
3314
+ }, Qn = { class: "scan-result__location-info" }, Kn = {
3278
3315
  key: 1,
3279
3316
  class: "scan-result__products"
3280
- }, On = { class: "scan-result__products-label" }, Qn = {
3317
+ }, Gn = { class: "scan-result__products-label" }, Wn = {
3281
3318
  class: "scan-result__product-list",
3282
3319
  role: "list"
3283
- }, Kn = { class: "scan-result__product-name" }, Gn = { class: "scan-result__product-qty" }, Wn = {
3320
+ }, Zn = { class: "scan-result__product-name" }, Jn = { class: "scan-result__product-qty" }, Xn = {
3284
3321
  key: 0,
3285
3322
  class: "scan-result__products-more"
3286
- }, Zn = {
3323
+ }, Yn = {
3287
3324
  key: 2,
3288
3325
  class: "scan-result__no-products"
3289
- }, Jn = { class: "scan-result__actions" }, Xn = /* @__PURE__ */ ae({
3326
+ }, es = { class: "scan-result__actions" }, ts = /* @__PURE__ */ ae({
3290
3327
  __name: "ScanResult",
3291
3328
  props: {
3292
3329
  location: {},
@@ -3353,14 +3390,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3353
3390
  class: "scan-result__title"
3354
3391
  }, "Location Found")
3355
3392
  ]),
3356
- e("div", qn, [
3357
- a.location.path && a.location.path.length > 0 ? (t(), n("div", Hn, [
3393
+ e("div", jn, [
3394
+ a.location.path && a.location.path.length > 0 ? (t(), n("div", On, [
3358
3395
  I(et, {
3359
3396
  path: a.location.path,
3360
3397
  onNavigate: i
3361
3398
  }, null, 8, ["path"])
3362
- ])) : z("", !0),
3363
- e("div", Un, [
3399
+ ])) : M("", !0),
3400
+ e("div", Qn, [
3364
3401
  I(fe, {
3365
3402
  code: a.location.full_code
3366
3403
  }, null, 8, ["code"]),
@@ -3374,23 +3411,23 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3374
3411
  _: 1
3375
3412
  })
3376
3413
  ]),
3377
- a.location.products && a.location.products.length > 0 ? (t(), n("div", jn, [
3378
- e("p", On, " Products: " + d(a.location.products.length) + " item" + d(a.location.products.length !== 1 ? "s" : ""), 1),
3379
- e("ul", Qn, [
3414
+ a.location.products && a.location.products.length > 0 ? (t(), n("div", Kn, [
3415
+ e("p", Gn, " Products: " + d(a.location.products.length) + " item" + d(a.location.products.length !== 1 ? "s" : ""), 1),
3416
+ e("ul", Wn, [
3380
3417
  (t(!0), n(G, null, ne(u.value, (c) => (t(), n("li", {
3381
3418
  key: c.id,
3382
3419
  class: "scan-result__product-item"
3383
3420
  }, [
3384
- e("span", Kn, d(c.product_name), 1),
3385
- e("span", Gn, "qty: " + d(c.quantity), 1)
3421
+ e("span", Zn, d(c.product_name), 1),
3422
+ e("span", Jn, "qty: " + d(c.quantity), 1)
3386
3423
  ]))), 128))
3387
3424
  ]),
3388
- a.location.products.length > 5 ? (t(), n("p", Wn, " + " + d(a.location.products.length - 5) + " more ", 1)) : z("", !0)
3389
- ])) : (t(), n("div", Zn, [...l[6] || (l[6] = [
3425
+ a.location.products.length > 5 ? (t(), n("p", Xn, " + " + d(a.location.products.length - 5) + " more ", 1)) : M("", !0)
3426
+ ])) : (t(), n("div", Yn, [...l[6] || (l[6] = [
3390
3427
  e("p", { class: "scan-result__no-products-text" }, "No products at this location", -1)
3391
3428
  ])]))
3392
3429
  ]),
3393
- e("div", Jn, [
3430
+ e("div", es, [
3394
3431
  I(O, {
3395
3432
  variant: "primary",
3396
3433
  size: "md",
@@ -3423,18 +3460,18 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3423
3460
  })
3424
3461
  ])
3425
3462
  ], 544)
3426
- ], 32)) : z("", !0)
3463
+ ], 32)) : M("", !0)
3427
3464
  ]),
3428
3465
  _: 1
3429
3466
  }));
3430
3467
  }
3431
- }), Yn = /* @__PURE__ */ oe(Xn, [["__scopeId", "data-v-575ebb3b"]]), es = {
3468
+ }), as = /* @__PURE__ */ oe(ts, [["__scopeId", "data-v-575ebb3b"]]), os = {
3432
3469
  key: 0,
3433
3470
  class: "scan-history"
3434
- }, ts = {
3471
+ }, ns = {
3435
3472
  class: "scan-history__list",
3436
3473
  role: "list"
3437
- }, as = ["aria-label", "onClick"], os = { class: "scan-history__code" }, ns = { class: "scan-history__name" }, ss = { class: "scan-history__time" }, ls = /* @__PURE__ */ ae({
3474
+ }, ss = ["aria-label", "onClick"], ls = { class: "scan-history__code" }, is = { class: "scan-history__name" }, rs = { class: "scan-history__time" }, cs = /* @__PURE__ */ ae({
3438
3475
  __name: "ScanHistory",
3439
3476
  props: {
3440
3477
  limit: { default: 10 }
@@ -3461,9 +3498,9 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3461
3498
  const y = Math.floor(f / 24);
3462
3499
  return y === 1 ? "yesterday" : `${y}d ago`;
3463
3500
  }
3464
- return (u, i) => r.value.length > 0 ? (t(), n("div", es, [
3501
+ return (u, i) => r.value.length > 0 ? (t(), n("div", os, [
3465
3502
  i[0] || (i[0] = e("p", { class: "scan-history__title" }, "Recent scans", -1)),
3466
- e("ul", ts, [
3503
+ e("ul", ns, [
3467
3504
  (t(!0), n(G, null, ne(r.value, (v) => (t(), n("li", {
3468
3505
  key: v.code + v.scannedAt,
3469
3506
  class: "scan-history__item"
@@ -3474,54 +3511,54 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3474
3511
  "aria-label": `Navigate to ${v.locationName} (${v.code})`,
3475
3512
  onClick: (l) => m(v)
3476
3513
  }, [
3477
- e("span", os, d(v.code), 1),
3478
- e("span", ns, d(v.locationName), 1),
3479
- e("span", ss, d(w(v.scannedAt)), 1)
3480
- ], 8, as)
3514
+ e("span", ls, d(v.code), 1),
3515
+ e("span", is, d(v.locationName), 1),
3516
+ e("span", rs, d(w(v.scannedAt)), 1)
3517
+ ], 8, ss)
3481
3518
  ]))), 128))
3482
3519
  ])
3483
- ])) : z("", !0);
3520
+ ])) : M("", !0);
3484
3521
  }
3485
- }), is = /* @__PURE__ */ oe(ls, [["__scopeId", "data-v-2eaec2d3"]]), rs = { class: "scanner-overlay" }, cs = {
3522
+ }), ds = /* @__PURE__ */ oe(cs, [["__scopeId", "data-v-2eaec2d3"]]), us = { class: "scanner-overlay" }, vs = {
3486
3523
  key: 0,
3487
3524
  class: "scanner-overlay__counting-banner",
3488
3525
  role: "status"
3489
- }, ds = { class: "scanner-overlay__counting-text" }, us = { class: "scanner-overlay__header" }, vs = ["aria-label", "aria-pressed"], _s = {
3526
+ }, _s = { class: "scanner-overlay__counting-text" }, ps = { class: "scanner-overlay__header" }, hs = ["aria-label", "aria-pressed"], fs = {
3490
3527
  width: "24",
3491
3528
  height: "24",
3492
3529
  viewBox: "0 0 24 24",
3493
3530
  fill: "none",
3494
3531
  "aria-hidden": "true"
3495
- }, ps = ["fill"], hs = {
3532
+ }, ys = ["fill"], ms = {
3496
3533
  key: 1,
3497
3534
  class: "scanner-overlay__camera-area"
3498
- }, fs = {
3535
+ }, gs = {
3499
3536
  key: 0,
3500
3537
  class: "scanner-overlay__scan-guide",
3501
3538
  "aria-hidden": "true"
3502
- }, ys = {
3539
+ }, bs = {
3503
3540
  key: 1,
3504
3541
  class: "scanner-overlay__starting",
3505
3542
  role: "status"
3506
- }, ms = {
3543
+ }, ks = {
3507
3544
  key: 2,
3508
3545
  class: "scanner-overlay__error",
3509
3546
  role: "alert"
3510
- }, gs = {
3547
+ }, ws = {
3511
3548
  key: 2,
3512
3549
  class: "scanner-overlay__no-camera",
3513
3550
  role: "status"
3514
- }, bs = {
3551
+ }, $s = {
3515
3552
  key: 3,
3516
3553
  class: "scanner-overlay__instruction"
3517
- }, ks = {
3554
+ }, Cs = {
3518
3555
  "aria-live": "polite",
3519
3556
  class: "sr-only"
3520
- }, ws = { key: 0 }, $s = { key: 1 }, Cs = { key: 2 }, Ls = {
3557
+ }, Ls = { key: 0 }, xs = { key: 1 }, Ss = { key: 2 }, Is = {
3521
3558
  key: 4,
3522
3559
  class: "scanner-overlay__toast scanner-overlay__toast--error",
3523
3560
  role: "alert"
3524
- }, xs = { class: "scanner-overlay__manual" }, Ss = { class: "scanner-overlay__manual-row" }, Is = ["disabled"], nt = "inv-scanner-feed", zs = /* @__PURE__ */ ae({
3561
+ }, zs = { class: "scanner-overlay__manual" }, Ms = { class: "scanner-overlay__manual-row" }, Vs = ["disabled"], nt = "inv-scanner-feed", Bs = /* @__PURE__ */ ae({
3525
3562
  __name: "ScannerOverlay",
3526
3563
  setup(a) {
3527
3564
  const s = Le(), o = ht(), g = we(), r = lt(), m = Xe(), w = $(""), u = $(null), i = $(!1), v = $(null);
@@ -3536,22 +3573,22 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3536
3573
  async function c() {
3537
3574
  o.error.value = null, await l();
3538
3575
  }
3539
- async function _(x) {
3540
- await o.stopScanning(), await y(x);
3576
+ async function _(L) {
3577
+ await o.stopScanning(), await y(L);
3541
3578
  }
3542
3579
  async function f() {
3543
- const x = w.value.trim();
3544
- x && await y(x);
3580
+ const L = w.value.trim();
3581
+ L && await y(L);
3545
3582
  }
3546
- async function y(x) {
3583
+ async function y(L) {
3547
3584
  i.value = !0, v.value = null;
3548
3585
  try {
3549
- const M = await g.scanLookup(x);
3550
- M ? (u.value = M, r.addToHistory({
3551
- code: M.full_code,
3552
- locationName: M.name,
3553
- locationId: M.id
3554
- })) : (v.value = `No location found for code "${x}"`, o.isSupported.value && await l());
3586
+ const z = await g.scanLookup(L);
3587
+ z ? (u.value = z, r.addToHistory({
3588
+ code: z.full_code,
3589
+ locationName: z.name,
3590
+ locationId: z.id
3591
+ })) : (v.value = `No location found for code "${L}"`, o.isSupported.value && await l());
3555
3592
  } catch {
3556
3593
  v.value = "Could not look up location. Check connection.", o.isSupported.value && await l();
3557
3594
  } finally {
@@ -3564,10 +3601,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3564
3601
  function h() {
3565
3602
  u.value = null;
3566
3603
  }
3567
- function b(x) {
3604
+ function b(L) {
3568
3605
  u.value = null, s.push({
3569
3606
  name: "inventory-location",
3570
- params: { code: x.full_code }
3607
+ params: { code: L.full_code }
3571
3608
  });
3572
3609
  }
3573
3610
  async function B() {
@@ -3576,9 +3613,9 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3576
3613
  function S() {
3577
3614
  s.back();
3578
3615
  }
3579
- return (x, M) => (t(), n("div", rs, [
3580
- L(m).isCountingMode ? (t(), n("div", cs, [
3581
- M[2] || (M[2] = e("svg", {
3616
+ return (L, z) => (t(), n("div", us, [
3617
+ x(m).isCountingMode ? (t(), n("div", vs, [
3618
+ z[2] || (z[2] = e("svg", {
3582
3619
  width: "18",
3583
3620
  height: "18",
3584
3621
  viewBox: "0 0 18 18",
@@ -3599,15 +3636,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3599
3636
  fill: "currentColor"
3600
3637
  })
3601
3638
  ], -1)),
3602
- e("span", ds, " Counting: Session #" + d(L(m).activeSessionId), 1)
3603
- ])) : z("", !0),
3604
- e("div", us, [
3639
+ e("span", _s, " Counting: Session #" + d(x(m).activeSessionId), 1)
3640
+ ])) : M("", !0),
3641
+ e("div", ps, [
3605
3642
  e("button", {
3606
3643
  type: "button",
3607
3644
  class: "scanner-overlay__close-btn",
3608
3645
  "aria-label": "Close scanner",
3609
3646
  onClick: S
3610
- }, [...M[3] || (M[3] = [
3647
+ }, [...z[3] || (z[3] = [
3611
3648
  e("svg", {
3612
3649
  width: "24",
3613
3650
  height: "24",
@@ -3624,73 +3661,73 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3624
3661
  })
3625
3662
  ], -1)
3626
3663
  ])]),
3627
- L(o).isScanning.value && L(o).isSupported.value ? (t(), n("button", {
3664
+ x(o).isScanning.value && x(o).isSupported.value ? (t(), n("button", {
3628
3665
  key: 0,
3629
3666
  type: "button",
3630
- class: ee(["scanner-overlay__flash-btn", { "scanner-overlay__flash-btn--active": L(o).flashOn.value }]),
3631
- "aria-label": L(o).flashOn.value ? "Turn off flash" : "Turn on flash",
3632
- "aria-pressed": L(o).flashOn.value,
3633
- onClick: M[0] || (M[0] = (T) => L(o).toggleFlash())
3667
+ class: ee(["scanner-overlay__flash-btn", { "scanner-overlay__flash-btn--active": x(o).flashOn.value }]),
3668
+ "aria-label": x(o).flashOn.value ? "Turn off flash" : "Turn on flash",
3669
+ "aria-pressed": x(o).flashOn.value,
3670
+ onClick: z[0] || (z[0] = (T) => x(o).toggleFlash())
3634
3671
  }, [
3635
- (t(), n("svg", _s, [
3672
+ (t(), n("svg", fs, [
3636
3673
  e("path", {
3637
3674
  d: "M13 2L3 14h9l-1 8 10-12h-9l1-8z",
3638
3675
  stroke: "currentColor",
3639
3676
  "stroke-width": "2",
3640
3677
  "stroke-linecap": "round",
3641
3678
  "stroke-linejoin": "round",
3642
- fill: L(o).flashOn.value ? "currentColor" : "none"
3643
- }, null, 8, ps)
3679
+ fill: x(o).flashOn.value ? "currentColor" : "none"
3680
+ }, null, 8, ys)
3644
3681
  ]))
3645
- ], 10, vs)) : z("", !0)
3682
+ ], 10, hs)) : M("", !0)
3646
3683
  ]),
3647
- L(o).isSupported.value ? (t(), n("div", hs, [
3684
+ x(o).isSupported.value ? (t(), n("div", ms, [
3648
3685
  ye(e("div", {
3649
3686
  id: nt,
3650
3687
  class: "scanner-overlay__camera-feed"
3651
3688
  }, null, 512), [
3652
- [We, L(o).isScanning.value && !u.value]
3689
+ [We, x(o).isScanning.value && !u.value]
3653
3690
  ]),
3654
- L(o).isScanning.value && !u.value ? (t(), n("div", fs, [...M[4] || (M[4] = [
3691
+ x(o).isScanning.value && !u.value ? (t(), n("div", gs, [...z[4] || (z[4] = [
3655
3692
  xe('<div class="scanner-overlay__scan-box" data-v-e0f50099><span class="scanner-overlay__scan-corner scanner-overlay__scan-corner--tl" data-v-e0f50099></span><span class="scanner-overlay__scan-corner scanner-overlay__scan-corner--tr" data-v-e0f50099></span><span class="scanner-overlay__scan-corner scanner-overlay__scan-corner--bl" data-v-e0f50099></span><span class="scanner-overlay__scan-corner scanner-overlay__scan-corner--br" data-v-e0f50099></span></div>', 1)
3656
- ])])) : z("", !0),
3657
- !L(o).isScanning.value && !L(o).error.value && !u.value ? (t(), n("div", ys, [...M[5] || (M[5] = [
3693
+ ])])) : M("", !0),
3694
+ !x(o).isScanning.value && !x(o).error.value && !u.value ? (t(), n("div", bs, [...z[5] || (z[5] = [
3658
3695
  e("div", {
3659
3696
  class: "scanner-overlay__spinner",
3660
3697
  "aria-hidden": "true"
3661
3698
  }, null, -1),
3662
3699
  e("p", { class: "scanner-overlay__starting-text" }, "Starting camera...", -1)
3663
- ])])) : z("", !0),
3664
- L(o).error.value && !u.value ? (t(), n("div", ms, [
3665
- M[7] || (M[7] = xe('<svg width="32" height="32" viewBox="0 0 24 24" fill="none" aria-hidden="true" data-v-e0f50099><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" data-v-e0f50099></circle><path d="M15 9L9 15M9 9L15 15" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-e0f50099></path></svg><p class="scanner-overlay__error-title" data-v-e0f50099>Camera access is required for scanning</p><p class="scanner-overlay__error-desc" data-v-e0f50099> Enable camera access in your browser or device settings, or use manual entry below. </p>', 3)),
3700
+ ])])) : M("", !0),
3701
+ x(o).error.value && !u.value ? (t(), n("div", ks, [
3702
+ z[7] || (z[7] = xe('<svg width="32" height="32" viewBox="0 0 24 24" fill="none" aria-hidden="true" data-v-e0f50099><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" data-v-e0f50099></circle><path d="M15 9L9 15M9 9L15 15" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-e0f50099></path></svg><p class="scanner-overlay__error-title" data-v-e0f50099>Camera access is required for scanning</p><p class="scanner-overlay__error-desc" data-v-e0f50099> Enable camera access in your browser or device settings, or use manual entry below. </p>', 3)),
3666
3703
  I(O, {
3667
3704
  variant: "secondary",
3668
3705
  size: "sm",
3669
3706
  onClick: c
3670
3707
  }, {
3671
- default: k(() => [...M[6] || (M[6] = [
3708
+ default: k(() => [...z[6] || (z[6] = [
3672
3709
  D(" Try Again ", -1)
3673
3710
  ])]),
3674
3711
  _: 1
3675
3712
  })
3676
- ])) : z("", !0)
3677
- ])) : (t(), n("div", gs, [...M[8] || (M[8] = [
3713
+ ])) : M("", !0)
3714
+ ])) : (t(), n("div", ws, [...z[8] || (z[8] = [
3678
3715
  xe('<svg width="48" height="48" viewBox="0 0 24 24" fill="none" aria-hidden="true" data-v-e0f50099><rect x="2" y="6" width="20" height="14" rx="2" stroke="currentColor" stroke-width="1.5" data-v-e0f50099></rect><circle cx="12" cy="13" r="4" stroke="currentColor" stroke-width="1.5" data-v-e0f50099></circle><path d="M2 8L22 8" stroke="currentColor" stroke-width="1.5" data-v-e0f50099></path><path d="M3 3L21 21" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-v-e0f50099></path></svg><p class="scanner-overlay__no-camera-text" data-v-e0f50099> No camera detected. Use manual entry to look up locations. </p>', 2)
3679
3716
  ])])),
3680
- L(o).isSupported.value && L(o).isScanning.value && !u.value ? (t(), n("p", bs, " Point camera at QR code or barcode ")) : z("", !0),
3681
- e("div", ks, [
3682
- i.value ? (t(), n("span", ws, "Looking up scanned code...")) : z("", !0),
3683
- v.value ? (t(), n("span", $s, d(v.value), 1)) : z("", !0),
3684
- u.value ? (t(), n("span", Cs, "Location found: " + d(u.value.name), 1)) : z("", !0)
3717
+ x(o).isSupported.value && x(o).isScanning.value && !u.value ? (t(), n("p", $s, " Point camera at QR code or barcode ")) : M("", !0),
3718
+ e("div", Cs, [
3719
+ i.value ? (t(), n("span", Ls, "Looking up scanned code...")) : M("", !0),
3720
+ v.value ? (t(), n("span", xs, d(v.value), 1)) : M("", !0),
3721
+ u.value ? (t(), n("span", Ss, "Location found: " + d(u.value.name), 1)) : M("", !0)
3685
3722
  ]),
3686
- v.value ? (t(), n("div", Ls, [
3723
+ v.value ? (t(), n("div", Is, [
3687
3724
  e("span", null, d(v.value), 1),
3688
3725
  e("button", {
3689
3726
  type: "button",
3690
3727
  class: "scanner-overlay__toast-dismiss",
3691
3728
  "aria-label": "Dismiss error",
3692
3729
  onClick: p
3693
- }, [...M[9] || (M[9] = [
3730
+ }, [...z[9] || (z[9] = [
3694
3731
  e("svg", {
3695
3732
  width: "16",
3696
3733
  height: "16",
@@ -3706,22 +3743,22 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3706
3743
  })
3707
3744
  ], -1)
3708
3745
  ])])
3709
- ])) : z("", !0),
3710
- e("div", xs, [
3711
- M[11] || (M[11] = e("label", {
3746
+ ])) : M("", !0),
3747
+ e("div", zs, [
3748
+ z[11] || (z[11] = e("label", {
3712
3749
  for: "scanner-manual-input",
3713
3750
  class: "scanner-overlay__manual-label"
3714
3751
  }, " Or enter code manually: ", -1)),
3715
- e("div", Ss, [
3752
+ e("div", Ms, [
3716
3753
  ye(e("input", {
3717
3754
  id: "scanner-manual-input",
3718
- "onUpdate:modelValue": M[1] || (M[1] = (T) => w.value = T),
3755
+ "onUpdate:modelValue": z[1] || (z[1] = (T) => w.value = T),
3719
3756
  type: "text",
3720
3757
  class: "scanner-overlay__manual-input",
3721
3758
  placeholder: "e.g. WH1-A-01",
3722
3759
  disabled: i.value,
3723
3760
  onKeydown: Ne(f, ["enter"])
3724
- }, null, 40, Is), [
3761
+ }, null, 40, Vs), [
3725
3762
  [ze, w.value]
3726
3763
  ]),
3727
3764
  I(O, {
@@ -3731,49 +3768,49 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3731
3768
  disabled: !w.value.trim(),
3732
3769
  onClick: f
3733
3770
  }, {
3734
- default: k(() => [...M[10] || (M[10] = [
3771
+ default: k(() => [...z[10] || (z[10] = [
3735
3772
  D(" Go ", -1)
3736
3773
  ])]),
3737
3774
  _: 1
3738
3775
  }, 8, ["loading", "disabled"])
3739
3776
  ])
3740
3777
  ]),
3741
- u.value ? z("", !0) : (t(), K(is, {
3778
+ u.value ? M("", !0) : (t(), K(ds, {
3742
3779
  key: 5,
3743
3780
  limit: 5,
3744
3781
  class: "scanner-overlay__history"
3745
3782
  })),
3746
- u.value ? (t(), K(Yn, {
3783
+ u.value ? (t(), K(as, {
3747
3784
  key: 6,
3748
3785
  location: u.value,
3749
3786
  show: !!u.value,
3750
3787
  onClose: h,
3751
3788
  onNavigate: b,
3752
3789
  onScanAgain: B
3753
- }, null, 8, ["location", "show"])) : z("", !0)
3790
+ }, null, 8, ["location", "show"])) : M("", !0)
3754
3791
  ]));
3755
3792
  }
3756
- }), jr = /* @__PURE__ */ oe(zs, [["__scopeId", "data-v-e0f50099"]]), Ms = { class: "count-session-list" }, Vs = { class: "count-session-list__header" }, Bs = { class: "count-session-list__create-fields" }, As = { class: "count-session-list__scope-field" }, Ps = { class: "count-session-list__scope-input" }, Fs = {
3793
+ }), Kr = /* @__PURE__ */ oe(Bs, [["__scopeId", "data-v-e0f50099"]]), As = { class: "count-session-list" }, Ps = { class: "count-session-list__header" }, Fs = { class: "count-session-list__create-fields" }, Ns = { class: "count-session-list__scope-field" }, Ts = { class: "count-session-list__scope-input" }, Ds = {
3757
3794
  key: 0,
3758
3795
  class: "count-session-list__scope-results",
3759
3796
  role: "listbox",
3760
3797
  "aria-label": "Scope location results"
3761
- }, Ns = ["aria-selected", "onClick"], Ts = {
3798
+ }, Es = ["aria-selected", "onClick"], Rs = {
3762
3799
  key: 1,
3763
3800
  class: "count-session-list__scope-selected"
3764
- }, Ds = { class: "count-session-list__create-actions" }, Es = {
3801
+ }, qs = { class: "count-session-list__create-actions" }, Hs = {
3765
3802
  key: 0,
3766
3803
  class: "count-session-list__loading"
3767
- }, Rs = {
3804
+ }, Us = {
3768
3805
  key: 1,
3769
3806
  class: "count-session-list__section"
3770
- }, qs = { class: "count-session-list__cards" }, Hs = { class: "count-session-list__card-header" }, Us = { class: "count-session-list__card-name" }, js = ["aria-valuenow", "aria-label"], Os = { class: "count-session-list__progress-track" }, Qs = { class: "count-session-list__progress-label" }, Ks = { class: "count-session-list__card-stats" }, Gs = {
3807
+ }, js = { class: "count-session-list__cards" }, Os = { class: "count-session-list__card-header" }, Qs = { class: "count-session-list__card-name" }, Ks = ["aria-valuenow", "aria-label"], Gs = { class: "count-session-list__progress-track" }, Ws = { class: "count-session-list__progress-label" }, Zs = { class: "count-session-list__card-stats" }, Js = {
3771
3808
  key: 0,
3772
3809
  class: "count-session-list__card-meta"
3773
- }, Ws = { class: "count-session-list__card-actions" }, Zs = {
3810
+ }, Xs = { class: "count-session-list__card-actions" }, Ys = {
3774
3811
  key: 2,
3775
3812
  class: "count-session-list__section"
3776
- }, Js = { class: "count-session-list__completed" }, Xs = ["onClick"], Ys = { class: "count-session-list__completed-info" }, el = { class: "count-session-list__completed-name" }, tl = { class: "count-session-list__completed-meta" }, al = { key: 0 }, ol = { key: 1 }, nl = { key: 2 }, sl = /* @__PURE__ */ ae({
3813
+ }, el = { class: "count-session-list__completed" }, tl = ["onClick"], al = { class: "count-session-list__completed-info" }, ol = { class: "count-session-list__completed-name" }, nl = { class: "count-session-list__completed-meta" }, sl = { key: 0 }, ll = { key: 1 }, il = { key: 2 }, rl = /* @__PURE__ */ ae({
3777
3814
  __name: "CountSessionList",
3778
3815
  setup(a) {
3779
3816
  const s = Le(), {
@@ -3802,10 +3839,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3802
3839
  function S() {
3803
3840
  f.value = null, c.value = "", _.value = [];
3804
3841
  }
3805
- function x() {
3842
+ function L() {
3806
3843
  u.value = !1, i.value = "", v.value = void 0, S();
3807
3844
  }
3808
- async function M() {
3845
+ async function z() {
3809
3846
  var A, V, q;
3810
3847
  const C = i.value.trim();
3811
3848
  if (!C) {
@@ -3835,8 +3872,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3835
3872
  year: "numeric"
3836
3873
  });
3837
3874
  }
3838
- return (C, A) => (t(), n("div", Ms, [
3839
- e("div", Vs, [
3875
+ return (C, A) => (t(), n("div", As, [
3876
+ e("div", Ps, [
3840
3877
  A[6] || (A[6] = e("h1", { class: "count-session-list__title" }, "Cycle Counts", -1)),
3841
3878
  I(O, {
3842
3879
  variant: "primary",
@@ -3874,9 +3911,9 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3874
3911
  }, {
3875
3912
  default: k(() => [
3876
3913
  e("form", {
3877
- onSubmit: me(M, ["prevent"])
3914
+ onSubmit: me(z, ["prevent"])
3878
3915
  }, [
3879
- e("div", Bs, [
3916
+ e("div", Fs, [
3880
3917
  I(Fe, {
3881
3918
  modelValue: i.value,
3882
3919
  "onUpdate:modelValue": A[1] || (A[1] = (V) => i.value = V),
@@ -3885,10 +3922,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3885
3922
  error: v.value,
3886
3923
  autofocus: ""
3887
3924
  }, null, 8, ["modelValue", "error"]),
3888
- e("div", As, [
3925
+ e("div", Ns, [
3889
3926
  A[8] || (A[8] = e("label", { class: "count-session-list__scope-label" }, " Scope (optional) ", -1)),
3890
3927
  A[9] || (A[9] = e("p", { class: "count-session-list__scope-hint" }, " Limit count to a specific location and its children ", -1)),
3891
- e("div", Ps, [
3928
+ e("div", Ts, [
3892
3929
  ye(e("input", {
3893
3930
  "onUpdate:modelValue": A[2] || (A[2] = (V) => c.value = V),
3894
3931
  type: "search",
@@ -3898,7 +3935,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3898
3935
  }, null, 544), [
3899
3936
  [ze, c.value]
3900
3937
  ]),
3901
- _.value.length > 0 ? (t(), n("div", Fs, [
3938
+ _.value.length > 0 ? (t(), n("div", Ds, [
3902
3939
  (t(!0), n(G, null, ne(_.value, (V) => {
3903
3940
  var q, E;
3904
3941
  return t(), n("button", {
@@ -3913,10 +3950,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3913
3950
  code: V.full_code
3914
3951
  }, null, 8, ["code"]),
3915
3952
  e("span", null, d(V.name), 1)
3916
- ], 10, Ns);
3953
+ ], 10, Es);
3917
3954
  }), 128))
3918
- ])) : z("", !0),
3919
- f.value ? (t(), n("div", Ts, [
3955
+ ])) : M("", !0),
3956
+ f.value ? (t(), n("div", Rs, [
3920
3957
  I(fe, {
3921
3958
  code: f.value.full_code
3922
3959
  }, null, 8, ["code"]),
@@ -3942,15 +3979,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3942
3979
  })
3943
3980
  ], -1)
3944
3981
  ])])
3945
- ])) : z("", !0)
3982
+ ])) : M("", !0)
3946
3983
  ])
3947
3984
  ])
3948
3985
  ]),
3949
- e("div", Ds, [
3986
+ e("div", qs, [
3950
3987
  I(O, {
3951
3988
  variant: "ghost",
3952
3989
  size: "sm",
3953
- onClick: x
3990
+ onClick: L
3954
3991
  }, {
3955
3992
  default: k(() => [...A[10] || (A[10] = [
3956
3993
  D(" Cancel ", -1)
@@ -3973,24 +4010,24 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
3973
4010
  ], 32)
3974
4011
  ]),
3975
4012
  _: 1
3976
- })) : z("", !0)
4013
+ })) : M("", !0)
3977
4014
  ]),
3978
4015
  _: 1
3979
4016
  }),
3980
- L(g) && L(o).length === 0 ? (t(), n("div", Es, [
4017
+ x(g) && x(o).length === 0 ? (t(), n("div", Hs, [
3981
4018
  I(se, { loading: "" }),
3982
4019
  I(se, { loading: "" })
3983
- ])) : z("", !0),
3984
- y.value.length > 0 ? (t(), n("section", Rs, [
4020
+ ])) : M("", !0),
4021
+ y.value.length > 0 ? (t(), n("section", Us, [
3985
4022
  A[14] || (A[14] = e("h2", { class: "count-session-list__section-title" }, "Active", -1)),
3986
- e("div", qs, [
4023
+ e("div", js, [
3987
4024
  (t(!0), n(G, null, ne(y.value, (V) => (t(), K(se, {
3988
4025
  key: V.id,
3989
4026
  class: "count-session-list__active-card"
3990
4027
  }, {
3991
4028
  default: k(() => [
3992
- e("div", Hs, [
3993
- e("h3", Us, d(V.name), 1),
4029
+ e("div", Os, [
4030
+ e("h3", Qs, d(V.name), 1),
3994
4031
  I(ve, {
3995
4032
  variant: V.status === "in_progress" ? "default" : "muted"
3996
4033
  }, {
@@ -4008,17 +4045,17 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4008
4045
  "aria-valuemax": "100",
4009
4046
  "aria-label": `Counting progress: ${V.progress.percent_complete}%`
4010
4047
  }, [
4011
- e("div", Os, [
4048
+ e("div", Gs, [
4012
4049
  e("div", {
4013
4050
  class: ee(["count-session-list__progress-fill", h(V.progress.percent_complete)]),
4014
4051
  style: ke({ width: `${V.progress.percent_complete}%` })
4015
4052
  }, null, 6)
4016
4053
  ]),
4017
- e("span", Qs, d(V.progress.percent_complete) + "% ", 1)
4018
- ], 8, js),
4019
- e("p", Ks, d(V.progress.counted) + "/" + d(V.progress.total) + " locations counted, " + d(V.progress.discrepancies) + " discrepancies ", 1),
4020
- V.started_at ? (t(), n("div", Gs, " Started: " + d(Q(V.started_at)), 1)) : z("", !0),
4021
- e("div", Ws, [
4054
+ e("span", Ws, d(V.progress.percent_complete) + "% ", 1)
4055
+ ], 8, Ks),
4056
+ e("p", Zs, d(V.progress.counted) + "/" + d(V.progress.total) + " locations counted, " + d(V.progress.discrepancies) + " discrepancies ", 1),
4057
+ V.started_at ? (t(), n("div", Js, " Started: " + d(Q(V.started_at)), 1)) : M("", !0),
4058
+ e("div", Xs, [
4022
4059
  V.status === "in_progress" ? (t(), K(O, {
4023
4060
  key: 0,
4024
4061
  variant: "primary",
@@ -4029,7 +4066,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4029
4066
  D(" Continue Counting ", -1)
4030
4067
  ])]),
4031
4068
  _: 1
4032
- }, 8, ["onClick"])) : z("", !0),
4069
+ }, 8, ["onClick"])) : M("", !0),
4033
4070
  I(O, {
4034
4071
  variant: "secondary",
4035
4072
  size: "sm",
@@ -4045,18 +4082,18 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4045
4082
  _: 2
4046
4083
  }, 1024))), 128))
4047
4084
  ])
4048
- ])) : z("", !0),
4049
- p.value.length > 0 ? (t(), n("section", Zs, [
4085
+ ])) : M("", !0),
4086
+ p.value.length > 0 ? (t(), n("section", Ys, [
4050
4087
  A[15] || (A[15] = e("h2", { class: "count-session-list__section-title" }, "Recent", -1)),
4051
- e("div", Js, [
4088
+ e("div", el, [
4052
4089
  (t(!0), n(G, null, ne(p.value, (V) => (t(), n("button", {
4053
4090
  key: V.id,
4054
4091
  type: "button",
4055
4092
  class: "count-session-list__completed-row",
4056
4093
  onClick: (q) => T(V.id)
4057
4094
  }, [
4058
- e("div", Ys, [
4059
- e("span", el, d(V.name), 1),
4095
+ e("div", al, [
4096
+ e("span", ol, d(V.name), 1),
4060
4097
  I(ve, {
4061
4098
  variant: V.status === "completed" ? "success" : "muted",
4062
4099
  size: "sm"
@@ -4067,35 +4104,35 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4067
4104
  _: 2
4068
4105
  }, 1032, ["variant"])
4069
4106
  ]),
4070
- e("div", tl, [
4071
- V.status === "completed" && V.progress ? (t(), n("span", al, " Accuracy: " + d(V.progress.total > 0 ? ((V.progress.total - V.progress.discrepancies) / V.progress.total * 100).toFixed(1) : "0.0") + "% ", 1)) : z("", !0),
4072
- V.completed_at ? (t(), n("span", ol, d(Q(V.completed_at)), 1)) : V.updated_at ? (t(), n("span", nl, d(Q(V.updated_at)), 1)) : z("", !0)
4107
+ e("div", nl, [
4108
+ V.status === "completed" && V.progress ? (t(), n("span", sl, " Accuracy: " + d(V.progress.total > 0 ? ((V.progress.total - V.progress.discrepancies) / V.progress.total * 100).toFixed(1) : "0.0") + "% ", 1)) : M("", !0),
4109
+ V.completed_at ? (t(), n("span", ll, d(Q(V.completed_at)), 1)) : V.updated_at ? (t(), n("span", il, d(Q(V.updated_at)), 1)) : M("", !0)
4073
4110
  ])
4074
- ], 8, Xs))), 128))
4111
+ ], 8, tl))), 128))
4075
4112
  ])
4076
- ])) : z("", !0),
4077
- !L(g) && L(o).length === 0 ? (t(), K(ge, {
4113
+ ])) : M("", !0),
4114
+ !x(g) && x(o).length === 0 ? (t(), K(ge, {
4078
4115
  key: 3,
4079
4116
  title: "No count sessions",
4080
4117
  description: "Create a cycle count session to track inventory accuracy.",
4081
4118
  "action-label": "Create Session",
4082
4119
  onAction: A[3] || (A[3] = (V) => u.value = !0)
4083
- })) : z("", !0)
4120
+ })) : M("", !0)
4084
4121
  ]));
4085
4122
  }
4086
- }), Or = /* @__PURE__ */ oe(sl, [["__scopeId", "data-v-900e6502"]]), ll = { class: "count-detail" }, il = { class: "count-detail__header" }, rl = { class: "count-detail__header-info" }, cl = { class: "count-detail__title" }, dl = { class: "count-detail__meta" }, ul = {
4123
+ }), Gr = /* @__PURE__ */ oe(rl, [["__scopeId", "data-v-900e6502"]]), cl = { class: "count-detail" }, dl = { class: "count-detail__header" }, ul = { class: "count-detail__header-info" }, vl = { class: "count-detail__title" }, _l = { class: "count-detail__meta" }, pl = {
4087
4124
  key: 0,
4088
4125
  class: "count-detail__meta-item"
4089
- }, vl = {
4126
+ }, hl = {
4090
4127
  key: 1,
4091
4128
  class: "count-detail__meta-item"
4092
- }, _l = ["aria-valuenow", "aria-label"], pl = { class: "count-detail__progress-track" }, hl = { class: "count-detail__progress-pct" }, fl = { class: "count-detail__stats-grid" }, yl = { class: "count-detail__stat" }, ml = { class: "count-detail__stat-value" }, gl = { class: "count-detail__stat" }, bl = { class: "count-detail__stat-value" }, kl = { class: "count-detail__stat" }, wl = { class: "count-detail__stat-value" }, $l = { class: "count-detail__stat" }, Cl = { class: "count-detail__stat-value count-detail__stat-value--pending" }, Ll = { class: "count-detail__stat" }, xl = { class: "count-detail__stat-value count-detail__stat-value--warning" }, Sl = { class: "count-detail__action-grid" }, Il = { class: "count-detail__filters" }, zl = { class: "count-detail__discrepancy-toggle" }, Ml = ["title"], Vl = { class: "count-detail__entry-product" }, Bl = { class: "count-detail__entry-qty" }, Al = {
4129
+ }, fl = ["aria-valuenow", "aria-label"], yl = { class: "count-detail__progress-track" }, ml = { class: "count-detail__progress-pct" }, gl = { class: "count-detail__stats-grid" }, bl = { class: "count-detail__stat" }, kl = { class: "count-detail__stat-value" }, wl = { class: "count-detail__stat" }, $l = { class: "count-detail__stat-value" }, Cl = { class: "count-detail__stat" }, Ll = { class: "count-detail__stat-value" }, xl = { class: "count-detail__stat" }, Sl = { class: "count-detail__stat-value count-detail__stat-value--pending" }, Il = { class: "count-detail__stat" }, zl = { class: "count-detail__stat-value count-detail__stat-value--warning" }, Ml = { class: "count-detail__action-grid" }, Vl = { class: "count-detail__filters" }, Bl = { class: "count-detail__discrepancy-toggle" }, Al = ["title"], Pl = { class: "count-detail__entry-product" }, Fl = { class: "count-detail__entry-qty" }, Nl = {
4093
4130
  key: 0,
4094
4131
  class: "count-detail__entry-disc"
4095
- }, Pl = {
4132
+ }, Tl = {
4096
4133
  key: 1,
4097
4134
  class: "count-detail__entry-pending"
4098
- }, Fl = /* @__PURE__ */ ae({
4135
+ }, Dl = /* @__PURE__ */ ae({
4099
4136
  __name: "CountSessionDetail",
4100
4137
  props: {
4101
4138
  sessionId: {}
@@ -4112,7 +4149,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4112
4149
  updateStatus: c,
4113
4150
  applySession: _,
4114
4151
  verifyEntry: f
4115
- } = Ve(), y = $(!1), p = $(!1), h = $(!1), b = $(""), B = $(!1), S = $(!1), x = $(""), M = $(""), T = $(""), N = $(!1), Q = $(!1);
4152
+ } = Ve(), y = $(!1), p = $(!1), h = $(!1), b = $(""), B = $(!1), S = $(!1), L = $(""), z = $(""), T = $(""), N = $(!1), Q = $(!1);
4116
4153
  let C = null;
4117
4154
  const A = [
4118
4155
  { key: "status", label: "Status", width: "60px", align: "center" },
@@ -4186,7 +4223,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4186
4223
  B.value = !B.value;
4187
4224
  }
4188
4225
  function je() {
4189
- x.value = "Apply Adjustments", M.value = "This will adjust inventory quantities based on verified counts. This action cannot be undone.", T.value = "Apply", N.value = !1, C = async () => {
4226
+ L.value = "Apply Adjustments", z.value = "This will adjust inventory quantities based on verified counts. This action cannot be undone.", T.value = "Apply", N.value = !1, C = async () => {
4190
4227
  h.value = !0;
4191
4228
  try {
4192
4229
  await _(s.sessionId), await i(s.sessionId), await pe();
@@ -4196,7 +4233,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4196
4233
  }, S.value = !0;
4197
4234
  }
4198
4235
  function Oe() {
4199
- x.value = "Cancel Session", M.value = "Are you sure you want to cancel this count session? Uncounted entries will be discarded.", T.value = "Cancel Session", N.value = !0, C = async () => {
4236
+ L.value = "Cancel Session", z.value = "Are you sure you want to cancel this count session? Uncounted entries will be discarded.", T.value = "Cancel Session", N.value = !0, C = async () => {
4200
4237
  await c(s.sessionId, "cancelled"), await i(s.sessionId);
4201
4238
  }, S.value = !0;
4202
4239
  }
@@ -4239,30 +4276,30 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4239
4276
  year: "numeric"
4240
4277
  });
4241
4278
  }
4242
- return (te, Z) => (t(), n("div", ll, [
4243
- L(w) && !L(r) ? (t(), K(se, {
4279
+ return (te, Z) => (t(), n("div", cl, [
4280
+ x(w) && !x(r) ? (t(), K(se, {
4244
4281
  key: 0,
4245
4282
  loading: ""
4246
- })) : L(u) && !L(r) ? (t(), K(ge, {
4283
+ })) : x(u) && !x(r) ? (t(), K(ge, {
4247
4284
  key: 1,
4248
4285
  title: "Could not load session",
4249
- description: L(u),
4286
+ description: x(u),
4250
4287
  "action-label": "Retry",
4251
4288
  onAction: le
4252
- }, null, 8, ["description"])) : z("", !0),
4253
- L(r) ? (t(), n(G, { key: 2 }, [
4254
- e("div", il, [
4255
- e("div", rl, [
4256
- e("h1", cl, d(L(r).name), 1),
4257
- e("div", dl, [
4289
+ }, null, 8, ["description"])) : M("", !0),
4290
+ x(r) ? (t(), n(G, { key: 2 }, [
4291
+ e("div", dl, [
4292
+ e("div", ul, [
4293
+ e("h1", vl, d(x(r).name), 1),
4294
+ e("div", _l, [
4258
4295
  I(ve, { variant: q.value }, {
4259
4296
  default: k(() => [
4260
4297
  D(d(E.value), 1)
4261
4298
  ]),
4262
4299
  _: 1
4263
4300
  }, 8, ["variant"]),
4264
- L(r).started_at ? (t(), n("span", ul, " Started: " + d(rt(L(r).started_at)), 1)) : z("", !0),
4265
- L(r).scope_location_id ? (t(), n("span", vl, " Scope: Location #" + d(L(r).scope_location_id), 1)) : z("", !0)
4301
+ x(r).started_at ? (t(), n("span", pl, " Started: " + d(rt(x(r).started_at)), 1)) : M("", !0),
4302
+ x(r).scope_location_id ? (t(), n("span", hl, " Scope: Location #" + d(x(r).scope_location_id), 1)) : M("", !0)
4266
4303
  ])
4267
4304
  ])
4268
4305
  ]),
@@ -4274,38 +4311,38 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4274
4311
  e("div", {
4275
4312
  class: "count-detail__progress-bar",
4276
4313
  role: "progressbar",
4277
- "aria-valuenow": L(r).progress.percent_complete,
4314
+ "aria-valuenow": x(r).progress.percent_complete,
4278
4315
  "aria-valuemin": "0",
4279
4316
  "aria-valuemax": "100",
4280
- "aria-label": `${L(r).progress.percent_complete}% complete`
4317
+ "aria-label": `${x(r).progress.percent_complete}% complete`
4281
4318
  }, [
4282
- e("div", pl, [
4319
+ e("div", yl, [
4283
4320
  e("div", {
4284
4321
  class: ee(["count-detail__progress-fill", P.value]),
4285
- style: ke({ width: `${L(r).progress.percent_complete}%` })
4322
+ style: ke({ width: `${x(r).progress.percent_complete}%` })
4286
4323
  }, null, 6)
4287
4324
  ]),
4288
- e("span", hl, d(L(r).progress.percent_complete) + "% ", 1)
4289
- ], 8, _l),
4290
- e("div", fl, [
4291
- e("div", yl, [
4292
- e("span", ml, d(L(r).progress.total), 1),
4325
+ e("span", ml, d(x(r).progress.percent_complete) + "% ", 1)
4326
+ ], 8, fl),
4327
+ e("div", gl, [
4328
+ e("div", bl, [
4329
+ e("span", kl, d(x(r).progress.total), 1),
4293
4330
  Z[5] || (Z[5] = e("span", { class: "count-detail__stat-label" }, "Total", -1))
4294
4331
  ]),
4295
- e("div", gl, [
4296
- e("span", bl, d(L(r).progress.counted), 1),
4332
+ e("div", wl, [
4333
+ e("span", $l, d(x(r).progress.counted), 1),
4297
4334
  Z[6] || (Z[6] = e("span", { class: "count-detail__stat-label" }, "Counted", -1))
4298
4335
  ]),
4299
- e("div", kl, [
4300
- e("span", wl, d(L(r).progress.verified), 1),
4336
+ e("div", Cl, [
4337
+ e("span", Ll, d(x(r).progress.verified), 1),
4301
4338
  Z[7] || (Z[7] = e("span", { class: "count-detail__stat-label" }, "Verified", -1))
4302
4339
  ]),
4303
- e("div", $l, [
4304
- e("span", Cl, d(L(r).progress.total - L(r).progress.counted), 1),
4340
+ e("div", xl, [
4341
+ e("span", Sl, d(x(r).progress.total - x(r).progress.counted), 1),
4305
4342
  Z[8] || (Z[8] = e("span", { class: "count-detail__stat-label" }, "Pending", -1))
4306
4343
  ]),
4307
- e("div", Ll, [
4308
- e("span", xl, d(L(r).progress.discrepancies), 1),
4344
+ e("div", Il, [
4345
+ e("span", zl, d(x(r).progress.discrepancies), 1),
4309
4346
  Z[9] || (Z[9] = e("span", { class: "count-detail__stat-label" }, "Discrepancies", -1))
4310
4347
  ])
4311
4348
  ])
@@ -4317,7 +4354,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4317
4354
  class: "count-detail__actions-card"
4318
4355
  }, {
4319
4356
  default: k(() => [
4320
- e("div", Sl, [
4357
+ e("div", Ml, [
4321
4358
  R.value ? (t(), K(O, {
4322
4359
  key: 0,
4323
4360
  variant: "secondary",
@@ -4329,7 +4366,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4329
4366
  D(" Generate Entries ", -1)
4330
4367
  ])]),
4331
4368
  _: 1
4332
- }, 8, ["loading"])) : z("", !0),
4369
+ }, 8, ["loading"])) : M("", !0),
4333
4370
  ce.value ? (t(), K(O, {
4334
4371
  key: 1,
4335
4372
  variant: "primary",
@@ -4340,7 +4377,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4340
4377
  D(" Start Counting ", -1)
4341
4378
  ])]),
4342
4379
  _: 1
4343
- })) : z("", !0),
4380
+ })) : M("", !0),
4344
4381
  W.value ? (t(), K(O, {
4345
4382
  key: 2,
4346
4383
  variant: "secondary",
@@ -4351,7 +4388,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4351
4388
  D(d(B.value ? "Show All" : "Review Discrepancies"), 1)
4352
4389
  ]),
4353
4390
  _: 1
4354
- })) : z("", !0),
4391
+ })) : M("", !0),
4355
4392
  H.value ? (t(), K(O, {
4356
4393
  key: 3,
4357
4394
  variant: "primary",
@@ -4363,8 +4400,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4363
4400
  D(" Apply Adjustments ", -1)
4364
4401
  ])]),
4365
4402
  _: 1
4366
- }, 8, ["loading"])) : z("", !0),
4367
- L(r).status === "completed" ? (t(), K(O, {
4403
+ }, 8, ["loading"])) : M("", !0),
4404
+ x(r).status === "completed" ? (t(), K(O, {
4368
4405
  key: 4,
4369
4406
  variant: "secondary",
4370
4407
  size: "md",
@@ -4374,8 +4411,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4374
4411
  D(" View Report ", -1)
4375
4412
  ])]),
4376
4413
  _: 1
4377
- })) : z("", !0),
4378
- L(r).status !== "completed" && L(r).status !== "cancelled" ? (t(), K(O, {
4414
+ })) : M("", !0),
4415
+ x(r).status !== "completed" && x(r).status !== "cancelled" ? (t(), K(O, {
4379
4416
  key: 5,
4380
4417
  variant: "danger",
4381
4418
  size: "md",
@@ -4385,7 +4422,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4385
4422
  D(" Cancel ", -1)
4386
4423
  ])]),
4387
4424
  _: 1
4388
- })) : z("", !0)
4425
+ })) : M("", !0)
4389
4426
  ])
4390
4427
  ]),
4391
4428
  _: 1
@@ -4396,14 +4433,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4396
4433
  "no-padding": ""
4397
4434
  }, {
4398
4435
  actions: k(() => [
4399
- e("div", Il, [
4436
+ e("div", Vl, [
4400
4437
  I($e, {
4401
4438
  modelValue: b.value,
4402
4439
  "onUpdate:modelValue": Z[0] || (Z[0] = (re) => b.value = re),
4403
4440
  options: V,
4404
4441
  placeholder: "All Statuses"
4405
4442
  }, null, 8, ["modelValue"]),
4406
- e("label", zl, [
4443
+ e("label", Bl, [
4407
4444
  ye(e("input", {
4408
4445
  "onUpdate:modelValue": Z[1] || (Z[1] = (re) => B.value = re),
4409
4446
  type: "checkbox",
@@ -4428,13 +4465,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4428
4465
  e("span", {
4429
4466
  class: "count-detail__entry-status",
4430
4467
  title: Ae(re)
4431
- }, d(j(re)), 9, Ml)
4468
+ }, d(j(re)), 9, Al)
4432
4469
  ]),
4433
4470
  "cell-product_name": k(({ value: re }) => [
4434
- e("span", Vl, d(re), 1)
4471
+ e("span", Pl, d(re), 1)
4435
4472
  ]),
4436
4473
  "cell-expected_quantity": k(({ value: re }) => [
4437
- e("span", Bl, d(re ?? "-"), 1)
4474
+ e("span", Fl, d(re ?? "-"), 1)
4438
4475
  ]),
4439
4476
  "cell-counted_quantity": k(({ row: re }) => [
4440
4477
  re.counted_quantity !== null ? (t(), n("span", {
@@ -4445,19 +4482,19 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4445
4482
  }])
4446
4483
  }, [
4447
4484
  D(d(re.counted_quantity) + " ", 1),
4448
- re.discrepancy !== null && re.discrepancy !== 0 ? (t(), n("span", Al, " (" + d(re.discrepancy > 0 ? "+" : "") + d(re.discrepancy) + ") ", 1)) : z("", !0)
4449
- ], 2)) : (t(), n("span", Pl, "pending"))
4485
+ re.discrepancy !== null && re.discrepancy !== 0 ? (t(), n("span", Nl, " (" + d(re.discrepancy > 0 ? "+" : "") + d(re.discrepancy) + ") ", 1)) : M("", !0)
4486
+ ], 2)) : (t(), n("span", Tl, "pending"))
4450
4487
  ]),
4451
4488
  _: 1
4452
4489
  }, 8, ["data", "loading"])
4453
4490
  ]),
4454
4491
  _: 1
4455
4492
  })
4456
- ], 64)) : z("", !0),
4493
+ ], 64)) : M("", !0),
4457
4494
  I(qe, {
4458
4495
  show: S.value,
4459
- title: x.value,
4460
- description: M.value,
4496
+ title: L.value,
4497
+ description: z.value,
4461
4498
  size: "sm",
4462
4499
  "onUpdate:show": Z[3] || (Z[3] = (re) => S.value = re),
4463
4500
  onClose: Z[4] || (Z[4] = (re) => S.value = !1)
@@ -4489,48 +4526,48 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4489
4526
  }, 8, ["show", "title", "description"])
4490
4527
  ]));
4491
4528
  }
4492
- }), Qr = /* @__PURE__ */ oe(Fl, [["__scopeId", "data-v-faf8e3d1"]]), Nl = { class: "count-entry" }, Tl = { class: "count-entry__header" }, Dl = {
4529
+ }), Wr = /* @__PURE__ */ oe(Dl, [["__scopeId", "data-v-faf8e3d1"]]), El = { class: "count-entry" }, Rl = { class: "count-entry__header" }, ql = {
4493
4530
  key: 0,
4494
4531
  class: "count-entry__session-name"
4495
- }, El = {
4532
+ }, Hl = {
4496
4533
  key: 1,
4497
4534
  class: "count-entry__location-count"
4498
- }, Rl = {
4535
+ }, Ul = {
4499
4536
  key: 0,
4500
4537
  class: "count-entry__connectivity-dot count-entry__connectivity-dot--online",
4501
4538
  "aria-hidden": "true"
4502
- }, ql = {
4539
+ }, jl = {
4503
4540
  key: 1,
4504
4541
  class: "count-entry__connectivity-dot count-entry__connectivity-dot--offline",
4505
4542
  "aria-hidden": "true"
4506
- }, Hl = {
4543
+ }, Ol = {
4507
4544
  key: 0,
4508
4545
  class: "count-entry__no-location"
4509
- }, Ul = { class: "count-entry__no-location-actions" }, jl = { class: "count-entry__search-row" }, Ol = {
4546
+ }, Ql = { class: "count-entry__no-location-actions" }, Kl = { class: "count-entry__search-row" }, Gl = {
4510
4547
  key: 0,
4511
4548
  class: "count-entry__search-results",
4512
4549
  role: "listbox",
4513
4550
  "aria-label": "Location search results"
4514
- }, Ql = ["onClick"], Kl = { class: "count-entry__location-card" }, Gl = { class: "count-entry__location-details" }, Wl = { class: "count-entry__location-name" }, Zl = {
4551
+ }, Wl = ["onClick"], Zl = { class: "count-entry__location-card" }, Jl = { class: "count-entry__location-details" }, Xl = { class: "count-entry__location-name" }, Yl = {
4515
4552
  class: "count-entry__products",
4516
4553
  role: "list",
4517
4554
  "aria-label": "Products to count"
4518
- }, Jl = {
4555
+ }, ei = {
4519
4556
  key: 0,
4520
4557
  class: "count-entry__no-entries"
4521
- }, Xl = ["onClick"], Yl = { class: "count-entry__product-info" }, ei = { class: "count-entry__product-name" }, ti = { class: "count-entry__product-expected" }, ai = { class: "count-entry__product-count" }, oi = ["for"], ni = ["id", "value", "onFocus"], si = {
4558
+ }, ti = ["onClick"], ai = { class: "count-entry__product-info" }, oi = { class: "count-entry__product-name" }, ni = { class: "count-entry__product-expected" }, si = { class: "count-entry__product-count" }, li = ["for"], ii = ["id", "value", "onFocus"], ri = {
4522
4559
  key: 0,
4523
4560
  class: "count-entry__status-icon count-entry__status-icon--match",
4524
4561
  "aria-label": "Match"
4525
- }, li = {
4562
+ }, ci = {
4526
4563
  key: 1,
4527
4564
  class: "count-entry__status-icon count-entry__status-icon--discrepancy",
4528
4565
  "aria-label": "Discrepancy"
4529
- }, ii = {
4566
+ }, di = {
4530
4567
  class: "count-entry__keypad",
4531
4568
  role: "group",
4532
4569
  "aria-label": "Numeric keypad"
4533
- }, ri = ["aria-label", "disabled", "onClick"], ci = { class: "count-entry__bottom-actions" }, di = /* @__PURE__ */ ae({
4570
+ }, ui = ["aria-label", "disabled", "onClick"], vi = { class: "count-entry__bottom-actions" }, _i = /* @__PURE__ */ ae({
4534
4571
  __name: "CountEntryForm",
4535
4572
  props: {
4536
4573
  sessionId: {},
@@ -4556,7 +4593,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4556
4593
  { label: ".", value: ".", ariaLabel: "Decimal point" },
4557
4594
  { label: "0", value: "0" },
4558
4595
  { label: "⌫", value: "backspace", ariaLabel: "Backspace" }
4559
- ], x = J(() => c.value ? m.value.filter((W) => W.location_id === c.value.id) : []), M = J(() => x.value.length === 0 ? !1 : f.value.every((W) => W !== ""));
4596
+ ], L = J(() => c.value ? m.value.filter((W) => W.location_id === c.value.id) : []), z = J(() => L.value.length === 0 ? !1 : f.value.every((W) => W !== ""));
4560
4597
  ue(async () => {
4561
4598
  if (g.loadQueue(), window.addEventListener("online", T), window.addEventListener("offline", N), await w(s.sessionId), await u(s.sessionId), s.locationId)
4562
4599
  try {
@@ -4566,7 +4603,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4566
4603
  }
4567
4604
  }), Ze(() => {
4568
4605
  window.removeEventListener("online", T), window.removeEventListener("offline", N);
4569
- }), _e(x, (W) => {
4606
+ }), _e(L, (W) => {
4570
4607
  f.value = W.map(
4571
4608
  (H) => H.counted_quantity !== null ? String(H.counted_quantity) : ""
4572
4609
  ), _.value = W.findIndex((H) => H.counted_quantity === null), _.value === -1 && W.length > 0 && (_.value = 0);
@@ -4604,7 +4641,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4604
4641
  f.value[H] = U + ".";
4605
4642
  return;
4606
4643
  }
4607
- const le = x.value[H];
4644
+ const le = L.value[H];
4608
4645
  if (le.counted_quantity !== null && U === String(le.counted_quantity)) {
4609
4646
  f.value[H] = W;
4610
4647
  return;
@@ -4614,10 +4651,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4614
4651
  async function q() {
4615
4652
  p.value = !0;
4616
4653
  try {
4617
- for (let W = 0; W < x.value.length; W++) {
4654
+ for (let W = 0; W < L.value.length; W++) {
4618
4655
  const H = f.value[W];
4619
4656
  if (H === "") continue;
4620
- const U = x.value[W], le = parseFloat(H);
4657
+ const U = L.value[W], le = parseFloat(H);
4621
4658
  if (!isNaN(le) && !(U.counted_quantity !== null && U.counted_quantity === le))
4622
4659
  if (h.value)
4623
4660
  try {
@@ -4654,8 +4691,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4654
4691
  const H = await v.fetchLocation(W.id);
4655
4692
  C(H), b.value = "", B.value = [];
4656
4693
  }
4657
- return (W, H) => (t(), n("div", Nl, [
4658
- e("div", Tl, [
4694
+ return (W, H) => (t(), n("div", El, [
4695
+ e("div", Rl, [
4659
4696
  e("button", {
4660
4697
  type: "button",
4661
4698
  class: "count-entry__back-btn",
@@ -4679,21 +4716,21 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4679
4716
  ], -1),
4680
4717
  e("span", null, "Back", -1)
4681
4718
  ])]),
4682
- L(r) ? (t(), n("span", Dl, d(L(r).name), 1)) : z("", !0),
4683
- L(r) ? (t(), n("span", El, d(L(r).progress.counted) + "/" + d(L(r).progress.total) + " locations ", 1)) : z("", !0)
4719
+ x(r) ? (t(), n("span", ql, d(x(r).name), 1)) : M("", !0),
4720
+ x(r) ? (t(), n("span", Hl, d(x(r).progress.counted) + "/" + d(x(r).progress.total) + " locations ", 1)) : M("", !0)
4684
4721
  ]),
4685
4722
  e("div", {
4686
4723
  class: ee(["count-entry__connectivity", { "count-entry__connectivity--offline": !h.value }]),
4687
4724
  role: "status"
4688
4725
  }, [
4689
- h.value ? (t(), n("span", Rl)) : (t(), n("span", ql)),
4726
+ h.value ? (t(), n("span", Ul)) : (t(), n("span", jl)),
4690
4727
  e("span", null, d(h.value ? "Online" : "Offline -- counts will sync when connected"), 1)
4691
4728
  ], 2),
4692
- c.value ? z("", !0) : (t(), n("div", Hl, [
4729
+ c.value ? M("", !0) : (t(), n("div", Ol, [
4693
4730
  I(se, { title: "Select Location" }, {
4694
4731
  default: k(() => [
4695
4732
  H[4] || (H[4] = e("p", { class: "count-entry__no-location-text" }, " Scan a QR code or search for a location to begin counting. ", -1)),
4696
- e("div", Ul, [
4733
+ e("div", Ql, [
4697
4734
  I(O, {
4698
4735
  variant: "primary",
4699
4736
  size: "lg",
@@ -4750,7 +4787,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4750
4787
  ]),
4751
4788
  _: 1
4752
4789
  }),
4753
- e("div", jl, [
4790
+ e("div", Kl, [
4754
4791
  ye(e("input", {
4755
4792
  "onUpdate:modelValue": H[0] || (H[0] = (U) => b.value = U),
4756
4793
  type: "search",
@@ -4761,7 +4798,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4761
4798
  [ze, b.value]
4762
4799
  ])
4763
4800
  ]),
4764
- B.value.length > 0 ? (t(), n("ul", Ol, [
4801
+ B.value.length > 0 ? (t(), n("ul", Gl, [
4765
4802
  (t(!0), n(G, null, ne(B.value, (U) => (t(), n("li", {
4766
4803
  key: U.id,
4767
4804
  role: "option",
@@ -4776,32 +4813,32 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4776
4813
  code: U.full_code
4777
4814
  }, null, 8, ["code"]),
4778
4815
  e("span", null, d(U.name), 1)
4779
- ], 8, Ql)
4816
+ ], 8, Wl)
4780
4817
  ]))), 128))
4781
- ])) : z("", !0)
4818
+ ])) : M("", !0)
4782
4819
  ])
4783
4820
  ]),
4784
4821
  _: 1
4785
4822
  })
4786
4823
  ])),
4787
4824
  c.value ? (t(), n(G, { key: 1 }, [
4788
- e("div", Kl, [
4825
+ e("div", Zl, [
4789
4826
  I(fe, {
4790
4827
  code: c.value.full_code
4791
4828
  }, null, 8, ["code"]),
4792
- e("div", Gl, [
4793
- e("h2", Wl, d(c.value.name), 1),
4829
+ e("div", Jl, [
4830
+ e("h2", Xl, d(c.value.name), 1),
4794
4831
  c.value.path && c.value.path.length > 0 ? (t(), K(et, {
4795
4832
  key: 0,
4796
4833
  path: c.value.path,
4797
4834
  onNavigate: () => {
4798
4835
  }
4799
- }, null, 8, ["path"])) : z("", !0)
4836
+ }, null, 8, ["path"])) : M("", !0)
4800
4837
  ])
4801
4838
  ]),
4802
- e("div", Zl, [
4803
- x.value.length === 0 ? (t(), n("p", Jl, " No entries for this location. Generate entries first. ")) : z("", !0),
4804
- (t(!0), n(G, null, ne(x.value, (U, le) => (t(), n("div", {
4839
+ e("div", Yl, [
4840
+ L.value.length === 0 ? (t(), n("p", ei, " No entries for this location. Generate entries first. ")) : M("", !0),
4841
+ (t(!0), n(G, null, ne(L.value, (U, le) => (t(), n("div", {
4805
4842
  key: U.id,
4806
4843
  role: "listitem",
4807
4844
  class: ee(["count-entry__product-row", {
@@ -4811,15 +4848,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4811
4848
  }]),
4812
4849
  onClick: (pe) => A(le)
4813
4850
  }, [
4814
- e("div", Yl, [
4815
- e("span", ei, d(U.product_name), 1),
4816
- e("span", ti, " Expected: " + d(U.expected_quantity ?? "-"), 1)
4817
- ]),
4818
4851
  e("div", ai, [
4852
+ e("span", oi, d(U.product_name), 1),
4853
+ e("span", ni, " Expected: " + d(U.expected_quantity ?? "-"), 1)
4854
+ ]),
4855
+ e("div", si, [
4819
4856
  e("label", {
4820
4857
  for: `count-input-${U.id}`,
4821
4858
  class: "sr-only"
4822
- }, " Counted quantity for " + d(U.product_name), 9, oi),
4859
+ }, " Counted quantity for " + d(U.product_name), 9, li),
4823
4860
  e("input", {
4824
4861
  id: `count-input-${U.id}`,
4825
4862
  ref_for: !0,
@@ -4835,12 +4872,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4835
4872
  value: f.value[le],
4836
4873
  readonly: "",
4837
4874
  onFocus: (pe) => A(le)
4838
- }, null, 42, ni),
4839
- U.counted_quantity !== null && U.discrepancy === 0 ? (t(), n("span", si, " ✓ ")) : U.counted_quantity !== null && U.discrepancy !== null && U.discrepancy !== 0 ? (t(), n("span", li, " ⚠ ")) : z("", !0)
4875
+ }, null, 42, ii),
4876
+ U.counted_quantity !== null && U.discrepancy === 0 ? (t(), n("span", ri, " ✓ ")) : U.counted_quantity !== null && U.discrepancy !== null && U.discrepancy !== 0 ? (t(), n("span", ci, " ⚠ ")) : M("", !0)
4840
4877
  ])
4841
- ], 10, Xl))), 128))
4878
+ ], 10, ti))), 128))
4842
4879
  ]),
4843
- e("div", ii, [
4880
+ e("div", di, [
4844
4881
  (t(), n(G, null, ne(S, (U) => e("button", {
4845
4882
  key: U.label,
4846
4883
  type: "button",
@@ -4848,13 +4885,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4848
4885
  "aria-label": U.ariaLabel || U.label,
4849
4886
  disabled: _.value === null,
4850
4887
  onClick: (le) => V(U.value)
4851
- }, d(U.label), 9, ri)), 64))
4888
+ }, d(U.label), 9, ui)), 64))
4852
4889
  ]),
4853
- e("div", ci, [
4890
+ e("div", vi, [
4854
4891
  I(O, {
4855
4892
  variant: "primary",
4856
4893
  size: "lg",
4857
- disabled: !M.value,
4894
+ disabled: !z.value,
4858
4895
  loading: p.value,
4859
4896
  class: "count-entry__complete-btn",
4860
4897
  onClick: q
@@ -4922,10 +4959,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4922
4959
  _: 1
4923
4960
  })
4924
4961
  ])
4925
- ], 64)) : z("", !0)
4962
+ ], 64)) : M("", !0)
4926
4963
  ]));
4927
4964
  }
4928
- }), Kr = /* @__PURE__ */ oe(di, [["__scopeId", "data-v-b11de393"]]), ui = { class: "count-report" }, vi = { class: "count-report__header" }, _i = { class: "count-report__title" }, pi = { class: "count-report__actions" }, hi = { class: "count-report__summary-grid" }, fi = { class: "count-report__summary-stat" }, yi = { class: "count-report__summary-value" }, mi = { class: "count-report__summary-stat" }, gi = { class: "count-report__summary-value" }, bi = { class: "count-report__summary-stat" }, ki = { class: "count-report__summary-value" }, wi = { class: "count-report__summary-stat" }, $i = { class: "count-report__summary-value count-report__summary-value--muted" }, Ci = { class: "count-report__summary-stat" }, Li = { class: "count-report__summary-stat" }, xi = { class: "count-report__totals" }, Si = { class: "count-report__total-row" }, Ii = { class: "count-report__total-value" }, zi = { class: "count-report__total-row" }, Mi = { class: "count-report__total-value" }, Vi = { class: "count-report__total-row count-report__total-row--net" }, Bi = { class: "count-report__disc-location" }, Ai = { class: "count-report__disc-product" }, Pi = { class: "count-report__disc-qty" }, Fi = { class: "count-report__disc-qty" }, Ni = /* @__PURE__ */ ae({
4965
+ }), Zr = /* @__PURE__ */ oe(_i, [["__scopeId", "data-v-b11de393"]]), pi = { class: "count-report" }, hi = { class: "count-report__header" }, fi = { class: "count-report__title" }, yi = { class: "count-report__actions" }, mi = { class: "count-report__summary-grid" }, gi = { class: "count-report__summary-stat" }, bi = { class: "count-report__summary-value" }, ki = { class: "count-report__summary-stat" }, wi = { class: "count-report__summary-value" }, $i = { class: "count-report__summary-stat" }, Ci = { class: "count-report__summary-value" }, Li = { class: "count-report__summary-stat" }, xi = { class: "count-report__summary-value count-report__summary-value--muted" }, Si = { class: "count-report__summary-stat" }, Ii = { class: "count-report__summary-stat" }, zi = { class: "count-report__totals" }, Mi = { class: "count-report__total-row" }, Vi = { class: "count-report__total-value" }, Bi = { class: "count-report__total-row" }, Ai = { class: "count-report__total-value" }, Pi = { class: "count-report__total-row count-report__total-row--net" }, Fi = { class: "count-report__disc-location" }, Ni = { class: "count-report__disc-product" }, Ti = { class: "count-report__disc-qty" }, Di = { class: "count-report__disc-qty" }, Ei = /* @__PURE__ */ ae({
4929
4966
  __name: "CountReport",
4930
4967
  props: {
4931
4968
  sessionId: {}
@@ -4971,21 +5008,21 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
4971
5008
  function l() {
4972
5009
  window.print();
4973
5010
  }
4974
- return (c, _) => (t(), n("div", ui, [
4975
- L(g) && !L(o) ? (t(), K(se, {
5011
+ return (c, _) => (t(), n("div", pi, [
5012
+ x(g) && !x(o) ? (t(), K(se, {
4976
5013
  key: 0,
4977
5014
  loading: ""
4978
- })) : L(r) && !L(o) ? (t(), K(ge, {
5015
+ })) : x(r) && !x(o) ? (t(), K(ge, {
4979
5016
  key: 1,
4980
5017
  title: "Could not load report",
4981
- description: L(r) || "An unknown error occurred",
5018
+ description: x(r) || "An unknown error occurred",
4982
5019
  "action-label": "Retry",
4983
5020
  onAction: u
4984
- }, null, 8, ["description"])) : z("", !0),
4985
- L(o) ? (t(), n(G, { key: 2 }, [
4986
- e("div", vi, [
4987
- e("h1", _i, " Count Report: " + d(L(o).session.name), 1),
4988
- e("div", pi, [
5021
+ }, null, 8, ["description"])) : M("", !0),
5022
+ x(o) ? (t(), n(G, { key: 2 }, [
5023
+ e("div", hi, [
5024
+ e("h1", fi, " Count Report: " + d(x(o).session.name), 1),
5025
+ e("div", yi, [
4989
5026
  I(O, {
4990
5027
  variant: "secondary",
4991
5028
  size: "sm",
@@ -5073,53 +5110,53 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5073
5110
  class: "count-report__summary"
5074
5111
  }, {
5075
5112
  default: k(() => [
5076
- e("div", hi, [
5077
- e("div", fi, [
5078
- e("span", yi, d(L(o).summary.total_entries), 1),
5113
+ e("div", mi, [
5114
+ e("div", gi, [
5115
+ e("span", bi, d(x(o).summary.total_entries), 1),
5079
5116
  _[4] || (_[4] = e("span", { class: "count-report__summary-label" }, "Total Items", -1))
5080
5117
  ]),
5081
- e("div", mi, [
5082
- e("span", gi, d(L(o).summary.counted), 1),
5118
+ e("div", ki, [
5119
+ e("span", wi, d(x(o).summary.counted), 1),
5083
5120
  _[5] || (_[5] = e("span", { class: "count-report__summary-label" }, "Counted", -1))
5084
5121
  ]),
5085
- e("div", bi, [
5086
- e("span", ki, d(L(o).summary.verified), 1),
5122
+ e("div", $i, [
5123
+ e("span", Ci, d(x(o).summary.verified), 1),
5087
5124
  _[6] || (_[6] = e("span", { class: "count-report__summary-label" }, "Verified", -1))
5088
5125
  ]),
5089
- e("div", wi, [
5090
- e("span", $i, d(L(o).summary.pending), 1),
5126
+ e("div", Li, [
5127
+ e("span", xi, d(x(o).summary.pending), 1),
5091
5128
  _[7] || (_[7] = e("span", { class: "count-report__summary-label" }, "Pending", -1))
5092
5129
  ]),
5093
- e("div", Ci, [
5130
+ e("div", Si, [
5094
5131
  e("span", {
5095
- class: ee(["count-report__summary-value", L(o).summary.with_discrepancies > 0 ? "count-report__summary-value--warning" : "count-report__summary-value--success"])
5096
- }, d(L(o).summary.with_discrepancies), 3),
5132
+ class: ee(["count-report__summary-value", x(o).summary.with_discrepancies > 0 ? "count-report__summary-value--warning" : "count-report__summary-value--success"])
5133
+ }, d(x(o).summary.with_discrepancies), 3),
5097
5134
  _[8] || (_[8] = e("span", { class: "count-report__summary-label" }, "Discrepancies", -1))
5098
5135
  ]),
5099
- e("div", Li, [
5136
+ e("div", Ii, [
5100
5137
  e("span", {
5101
- class: ee(["count-report__summary-value", L(o).summary.accuracy_percent >= 95 ? "count-report__summary-value--success" : L(o).summary.accuracy_percent >= 90 ? "count-report__summary-value--warning" : "count-report__summary-value--error"])
5102
- }, d(L(o).summary.accuracy_percent.toFixed(1)) + "% ", 3),
5138
+ class: ee(["count-report__summary-value", x(o).summary.accuracy_percent >= 95 ? "count-report__summary-value--success" : x(o).summary.accuracy_percent >= 90 ? "count-report__summary-value--warning" : "count-report__summary-value--error"])
5139
+ }, d(x(o).summary.accuracy_percent.toFixed(1)) + "% ", 3),
5103
5140
  _[9] || (_[9] = e("span", { class: "count-report__summary-label" }, "Accuracy", -1))
5104
5141
  ])
5105
5142
  ]),
5106
- e("div", xi, [
5107
- e("div", Si, [
5143
+ e("div", zi, [
5144
+ e("div", Mi, [
5108
5145
  _[10] || (_[10] = e("span", { class: "count-report__total-label" }, "Total Expected", -1)),
5109
- e("span", Ii, d(i(L(o).summary.total_expected)), 1)
5146
+ e("span", Vi, d(i(x(o).summary.total_expected)), 1)
5110
5147
  ]),
5111
- e("div", zi, [
5148
+ e("div", Bi, [
5112
5149
  _[11] || (_[11] = e("span", { class: "count-report__total-label" }, "Total Counted", -1)),
5113
- e("span", Mi, d(i(L(o).summary.total_counted)), 1)
5150
+ e("span", Ai, d(i(x(o).summary.total_counted)), 1)
5114
5151
  ]),
5115
- e("div", Vi, [
5152
+ e("div", Pi, [
5116
5153
  _[12] || (_[12] = e("span", { class: "count-report__total-label" }, "Net Discrepancy", -1)),
5117
5154
  e("span", {
5118
5155
  class: ee(["count-report__total-value", {
5119
- "count-report__total-value--positive": L(o).summary.net_discrepancy > 0,
5120
- "count-report__total-value--negative": L(o).summary.net_discrepancy < 0
5156
+ "count-report__total-value--positive": x(o).summary.net_discrepancy > 0,
5157
+ "count-report__total-value--negative": x(o).summary.net_discrepancy < 0
5121
5158
  }])
5122
- }, d(L(o).summary.net_discrepancy > 0 ? "+" : "") + d(i(L(o).summary.net_discrepancy)), 3)
5159
+ }, d(x(o).summary.net_discrepancy > 0 ? "+" : "") + d(i(x(o).summary.net_discrepancy)), 3)
5123
5160
  ])
5124
5161
  ])
5125
5162
  ]),
@@ -5133,20 +5170,20 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5133
5170
  default: k(() => [
5134
5171
  I(Ce, {
5135
5172
  columns: w,
5136
- data: L(o).top_discrepancies,
5173
+ data: x(o).top_discrepancies,
5137
5174
  "empty-message": "No discrepancies found."
5138
5175
  }, {
5139
5176
  "cell-location": k(({ value: f }) => [
5140
- e("span", Bi, d(f), 1)
5177
+ e("span", Fi, d(f), 1)
5141
5178
  ]),
5142
5179
  "cell-product": k(({ value: f }) => [
5143
- e("span", Ai, d(f), 1)
5180
+ e("span", Ni, d(f), 1)
5144
5181
  ]),
5145
5182
  "cell-expected": k(({ value: f }) => [
5146
- e("span", Pi, d(f), 1)
5183
+ e("span", Ti, d(f), 1)
5147
5184
  ]),
5148
5185
  "cell-counted": k(({ value: f }) => [
5149
- e("span", Fi, d(f), 1)
5186
+ e("span", Di, d(f), 1)
5150
5187
  ]),
5151
5188
  "cell-discrepancy": k(({ value: f }) => [
5152
5189
  e("span", {
@@ -5161,13 +5198,13 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5161
5198
  ]),
5162
5199
  _: 1
5163
5200
  })
5164
- ], 64)) : z("", !0)
5201
+ ], 64)) : M("", !0)
5165
5202
  ]));
5166
5203
  }
5167
- }), Gr = /* @__PURE__ */ oe(Ni, [["__scopeId", "data-v-e12a8dba"]]), Ti = { class: "label-batch" }, Di = { class: "label-batch__format" }, Ei = { class: "label-batch__quick-selectors" }, Ri = ["onClick"], qi = { class: "label-batch__filter-row" }, Hi = ["onClick"], Ui = ["checked", "indeterminate", "aria-label", "onClick"], ji = { class: "label-batch__group-name" }, Oi = { class: "label-batch__group-count" }, Qi = { class: "label-batch__group-items" }, Ki = ["checked", "onChange"], Gi = { class: "label-batch__location-name" }, Wi = {
5204
+ }), Jr = /* @__PURE__ */ oe(Ei, [["__scopeId", "data-v-e12a8dba"]]), Ri = { class: "label-batch" }, qi = { class: "label-batch__format" }, Hi = { class: "label-batch__quick-selectors" }, Ui = ["onClick"], ji = { class: "label-batch__filter-row" }, Oi = ["onClick"], Qi = ["checked", "indeterminate", "aria-label", "onClick"], Ki = { class: "label-batch__group-name" }, Gi = { class: "label-batch__group-count" }, Wi = { class: "label-batch__group-items" }, Zi = ["checked", "onChange"], Ji = { class: "label-batch__location-name" }, Xi = {
5168
5205
  key: 3,
5169
5206
  class: "label-batch__footer"
5170
- }, Zi = { class: "label-batch__selected-count" }, Ji = { class: "label-batch__footer-actions" }, Xi = /* @__PURE__ */ ae({
5207
+ }, Yi = { class: "label-batch__selected-count" }, er = { class: "label-batch__footer-actions" }, tr = /* @__PURE__ */ ae({
5171
5208
  __name: "LabelBatchPrint",
5172
5209
  setup(a) {
5173
5210
  const { fetchRoots: s, locations: o } = we(), { printBatch: g } = Ye(), r = $("standard"), m = De(/* @__PURE__ */ new Set()), w = De(/* @__PURE__ */ new Set()), u = $(!0), i = $(!1), v = $(""), l = $(""), c = $([]), _ = [
@@ -5234,10 +5271,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5234
5271
  function S(E) {
5235
5272
  w.has(E) ? w.delete(E) : w.add(E);
5236
5273
  }
5237
- function x(E) {
5274
+ function L(E) {
5238
5275
  m.has(E) ? m.delete(E) : m.add(E);
5239
5276
  }
5240
- function M(E) {
5277
+ function z(E) {
5241
5278
  return E.locations.every((P) => m.has(P.id));
5242
5279
  }
5243
5280
  function T(E) {
@@ -5245,7 +5282,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5245
5282
  return P > 0 && P < E.locations.length;
5246
5283
  }
5247
5284
  function N(E) {
5248
- M(E) ? E.locations.forEach((P) => m.delete(P.id)) : E.locations.forEach((P) => m.add(P.id));
5285
+ z(E) ? E.locations.forEach((P) => m.delete(P.id)) : E.locations.forEach((P) => m.add(P.id));
5249
5286
  }
5250
5287
  function Q(E) {
5251
5288
  p.value.filter((P) => P.type === E).forEach((P) => m.add(P.id));
@@ -5269,11 +5306,11 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5269
5306
  function q() {
5270
5307
  V();
5271
5308
  }
5272
- return (E, P) => (t(), n("div", Ti, [
5309
+ return (E, P) => (t(), n("div", Ri, [
5273
5310
  P[6] || (P[6] = e("div", { class: "label-batch__header" }, [
5274
5311
  e("h1", { class: "label-batch__title" }, "Print Labels")
5275
5312
  ], -1)),
5276
- e("div", Di, [
5313
+ e("div", qi, [
5277
5314
  I($e, {
5278
5315
  modelValue: r.value,
5279
5316
  "onUpdate:modelValue": P[0] || (P[0] = (R) => r.value = R),
@@ -5286,15 +5323,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5286
5323
  class: "label-batch__selectors"
5287
5324
  }, {
5288
5325
  default: k(() => [
5289
- e("div", Ei, [
5326
+ e("div", Hi, [
5290
5327
  (t(!0), n(G, null, ne(b.value, (R) => (t(), n("button", {
5291
5328
  key: R.label,
5292
5329
  type: "button",
5293
5330
  class: "label-batch__quick-btn",
5294
5331
  onClick: R.action
5295
- }, d(R.label), 9, Ri))), 128))
5332
+ }, d(R.label), 9, Ui))), 128))
5296
5333
  ]),
5297
- e("div", qi, [
5334
+ e("div", ji, [
5298
5335
  I($e, {
5299
5336
  modelValue: v.value,
5300
5337
  "onUpdate:modelValue": P[1] || (P[1] = (R) => v.value = R),
@@ -5331,14 +5368,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5331
5368
  }, [
5332
5369
  e("input", {
5333
5370
  type: "checkbox",
5334
- checked: M(R),
5371
+ checked: z(R),
5335
5372
  indeterminate: T(R),
5336
5373
  class: "label-batch__checkbox",
5337
5374
  "aria-label": `Select all in ${R.parentName}`,
5338
5375
  onClick: me((ce) => N(R), ["stop"])
5339
- }, null, 8, Ui),
5340
- e("span", ji, d(R.parentName), 1),
5341
- e("span", Oi, d(R.locations.length), 1),
5376
+ }, null, 8, Qi),
5377
+ e("span", Ki, d(R.parentName), 1),
5378
+ e("span", Gi, d(R.locations.length), 1),
5342
5379
  (t(), n("svg", {
5343
5380
  class: ee(["label-batch__group-chevron", { "label-batch__group-chevron--collapsed": !w.has(R.parentName) }]),
5344
5381
  width: "16",
@@ -5355,8 +5392,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5355
5392
  "stroke-linejoin": "round"
5356
5393
  }, null, -1)
5357
5394
  ])], 2))
5358
- ], 8, Hi),
5359
- ye(e("div", Qi, [
5395
+ ], 8, Oi),
5396
+ ye(e("div", Wi, [
5360
5397
  (t(!0), n(G, null, ne(R.locations, (ce) => (t(), n("label", {
5361
5398
  key: ce.id,
5362
5399
  class: "label-batch__location-row"
@@ -5365,12 +5402,12 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5365
5402
  type: "checkbox",
5366
5403
  checked: m.has(ce.id),
5367
5404
  class: "label-batch__checkbox",
5368
- onChange: (W) => x(ce.id)
5369
- }, null, 40, Ki),
5405
+ onChange: (W) => L(ce.id)
5406
+ }, null, 40, Zi),
5370
5407
  I(fe, {
5371
5408
  code: ce.full_code
5372
5409
  }, null, 8, ["code"]),
5373
- e("span", Gi, d(ce.name), 1),
5410
+ e("span", Ji, d(ce.name), 1),
5374
5411
  I(ve, {
5375
5412
  variant: "muted",
5376
5413
  size: "sm"
@@ -5387,14 +5424,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5387
5424
  ]))), 128))
5388
5425
  ]),
5389
5426
  _: 1
5390
- })) : u.value ? z("", !0) : (t(), K(ge, {
5427
+ })) : u.value ? M("", !0) : (t(), K(ge, {
5391
5428
  key: 2,
5392
5429
  title: "No locations found",
5393
5430
  description: "Create locations first to generate labels."
5394
5431
  })),
5395
- m.size > 0 ? (t(), n("div", Wi, [
5396
- e("span", Zi, " Selected: " + d(m.size) + " label" + d(m.size !== 1 ? "s" : ""), 1),
5397
- e("div", Ji, [
5432
+ m.size > 0 ? (t(), n("div", Xi, [
5433
+ e("span", Yi, " Selected: " + d(m.size) + " label" + d(m.size !== 1 ? "s" : ""), 1),
5434
+ e("div", er, [
5398
5435
  I(O, {
5399
5436
  variant: "secondary",
5400
5437
  size: "md",
@@ -5454,10 +5491,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5454
5491
  _: 1
5455
5492
  }, 8, ["loading"])
5456
5493
  ])
5457
- ])) : z("", !0)
5494
+ ])) : M("", !0)
5458
5495
  ]));
5459
5496
  }
5460
- }), Wr = /* @__PURE__ */ oe(Xi, [["__scopeId", "data-v-1eb7f5c2"]]), Yi = ["aria-label", "onClick"], er = { class: "pll-location-path" }, tr = { class: "pll-quantity" }, ar = {
5497
+ }), Xr = /* @__PURE__ */ oe(tr, [["__scopeId", "data-v-1eb7f5c2"]]), ar = ["aria-label", "onClick"], or = { class: "pll-location-path" }, nr = { class: "pll-quantity" }, sr = {
5461
5498
  key: 0,
5462
5499
  class: "pll-primary-star",
5463
5500
  width: "18",
@@ -5466,11 +5503,11 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5466
5503
  fill: "none",
5467
5504
  role: "img",
5468
5505
  "aria-label": "Primary location"
5469
- }, or = {
5506
+ }, lr = {
5470
5507
  key: 1,
5471
5508
  class: "pll-no-primary",
5472
5509
  "aria-label": "Not primary location"
5473
- }, nr = { class: "pll-footer" }, sr = { class: "pll-total-value" }, lr = /* @__PURE__ */ ae({
5510
+ }, ir = { class: "pll-footer" }, rr = { class: "pll-total-value" }, cr = /* @__PURE__ */ ae({
5474
5511
  __name: "ProductLocationList",
5475
5512
  props: {
5476
5513
  productId: {}
@@ -5508,15 +5545,15 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5508
5545
  { immediate: !0 }
5509
5546
  ), (f, y) => (t(), K(se, {
5510
5547
  title: "Locations",
5511
- loading: L(r),
5548
+ loading: x(r),
5512
5549
  "no-padding": ""
5513
5550
  }, {
5514
5551
  default: k(() => [
5515
- !L(r) && w.value.length === 0 ? (t(), K(ge, {
5552
+ !x(r) && w.value.length === 0 ? (t(), K(ge, {
5516
5553
  key: 0,
5517
5554
  title: "No locations tracked",
5518
5555
  description: "This product is not currently tracked at any location."
5519
- })) : L(r) ? z("", !0) : (t(), n(G, { key: 1 }, [
5556
+ })) : x(r) ? M("", !0) : (t(), n(G, { key: 1 }, [
5520
5557
  I(Ce, {
5521
5558
  columns: u,
5522
5559
  data: w.value,
@@ -5531,8 +5568,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5531
5568
  "aria-label": `Navigate to ${((h = p.location) == null ? void 0 : h.name) ?? "location"}`,
5532
5569
  onClick: (b) => c(p)
5533
5570
  }, [
5534
- e("span", er, d(l(p)), 1)
5535
- ], 8, Yi)
5571
+ e("span", or, d(l(p)), 1)
5572
+ ], 8, ar)
5536
5573
  ];
5537
5574
  }),
5538
5575
  "cell-code": k(({ row: p }) => {
@@ -5556,14 +5593,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5556
5593
  D(d(p.location.code), 1)
5557
5594
  ]),
5558
5595
  _: 2
5559
- }, 1024)) : z("", !0)
5596
+ }, 1024)) : M("", !0)
5560
5597
  ];
5561
5598
  }),
5562
5599
  "cell-quantity": k(({ row: p }) => [
5563
- e("span", tr, d(v(p.quantity)), 1)
5600
+ e("span", nr, d(v(p.quantity)), 1)
5564
5601
  ]),
5565
5602
  "cell-is_primary": k(({ row: p }) => [
5566
- p.is_primary ? (t(), n("svg", ar, [...y[0] || (y[0] = [
5603
+ p.is_primary ? (t(), n("svg", sr, [...y[0] || (y[0] = [
5567
5604
  e("path", {
5568
5605
  d: "M9 1.5L11.3 6.2L16.5 6.9L12.75 10.55L13.6 15.75L9 13.3L4.4 15.75L5.25 10.55L1.5 6.9L6.7 6.2L9 1.5Z",
5569
5606
  fill: "currentColor",
@@ -5572,34 +5609,34 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5572
5609
  "stroke-linecap": "round",
5573
5610
  "stroke-linejoin": "round"
5574
5611
  }, null, -1)
5575
- ])])) : (t(), n("span", or))
5612
+ ])])) : (t(), n("span", lr))
5576
5613
  ]),
5577
5614
  _: 1
5578
5615
  }, 8, ["data"]),
5579
- e("div", nr, [
5616
+ e("div", ir, [
5580
5617
  y[1] || (y[1] = e("span", { class: "pll-total-label" }, "Total:", -1)),
5581
- e("span", sr, d(v(i.value)) + " across " + d(w.value.length) + " location" + d(w.value.length !== 1 ? "s" : ""), 1)
5618
+ e("span", rr, d(v(i.value)) + " across " + d(w.value.length) + " location" + d(w.value.length !== 1 ? "s" : ""), 1)
5582
5619
  ])
5583
5620
  ], 64))
5584
5621
  ]),
5585
5622
  _: 1
5586
5623
  }, 8, ["loading"]));
5587
5624
  }
5588
- }), Zr = /* @__PURE__ */ oe(lr, [["__scopeId", "data-v-47c4cd6e"]]), ir = { class: "label-preview" }, rr = { class: "label-preview__controls" }, cr = {
5625
+ }), Yr = /* @__PURE__ */ oe(cr, [["__scopeId", "data-v-47c4cd6e"]]), dr = { class: "label-preview" }, ur = { class: "label-preview__controls" }, vr = {
5589
5626
  key: 0,
5590
5627
  class: "label-preview__loading",
5591
5628
  role: "status"
5592
- }, dr = {
5629
+ }, _r = {
5593
5630
  key: 1,
5594
5631
  class: "label-preview__error",
5595
5632
  role: "alert"
5596
- }, ur = { class: "label-preview__error-text" }, vr = {
5633
+ }, pr = { class: "label-preview__error-text" }, hr = {
5597
5634
  key: 2,
5598
5635
  class: "label-preview__container"
5599
- }, _r = { class: "label-preview__path" }, pr = { class: "label-preview__code" }, hr = { class: "label-preview__name" }, fr = ["innerHTML"], yr = ["innerHTML"], mr = {
5636
+ }, fr = { class: "label-preview__path" }, yr = { class: "label-preview__code" }, mr = { class: "label-preview__name" }, gr = ["innerHTML"], br = ["innerHTML"], kr = {
5600
5637
  key: 3,
5601
5638
  class: "label-preview__print"
5602
- }, gr = /* @__PURE__ */ ae({
5639
+ }, wr = /* @__PURE__ */ ae({
5603
5640
  __name: "LabelPreview",
5604
5641
  props: {
5605
5642
  locationId: {},
@@ -5634,8 +5671,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5634
5671
  l.value = !1;
5635
5672
  }
5636
5673
  }
5637
- return (p, h) => (t(), n("div", ir, [
5638
- e("div", rr, [
5674
+ return (p, h) => (t(), n("div", dr, [
5675
+ e("div", ur, [
5639
5676
  I($e, {
5640
5677
  modelValue: v.value,
5641
5678
  "onUpdate:modelValue": h[0] || (h[0] = (b) => v.value = b),
@@ -5643,14 +5680,14 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5643
5680
  label: "Format"
5644
5681
  }, null, 8, ["modelValue"])
5645
5682
  ]),
5646
- L(m) ? (t(), n("div", cr, [...h[1] || (h[1] = [
5683
+ x(m) ? (t(), n("div", vr, [...h[1] || (h[1] = [
5647
5684
  e("div", {
5648
5685
  class: "label-preview__loading-spinner",
5649
5686
  "aria-hidden": "true"
5650
5687
  }, null, -1),
5651
5688
  e("span", { class: "sr-only" }, "Loading label...", -1)
5652
- ])])) : L(w) ? (t(), n("div", dr, [
5653
- e("p", ur, d(L(w)), 1),
5689
+ ])])) : x(w) ? (t(), n("div", _r, [
5690
+ e("p", pr, d(x(w)), 1),
5654
5691
  I(O, {
5655
5692
  variant: "secondary",
5656
5693
  size: "sm",
@@ -5661,29 +5698,29 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5661
5698
  ])]),
5662
5699
  _: 1
5663
5700
  })
5664
- ])) : L(r) ? (t(), n("div", vr, [
5701
+ ])) : x(r) ? (t(), n("div", hr, [
5665
5702
  e("div", {
5666
5703
  class: "label-preview__label",
5667
5704
  style: ke(_.value)
5668
5705
  }, [
5669
- e("p", _r, d(L(r).path), 1),
5670
- e("p", pr, d(L(r).location.full_code), 1),
5671
- e("p", hr, d(L(r).location.name), 1),
5672
- L(r).barcode_svg ? (t(), n("div", {
5706
+ e("p", fr, d(x(r).path), 1),
5707
+ e("p", yr, d(x(r).location.full_code), 1),
5708
+ e("p", mr, d(x(r).location.name), 1),
5709
+ x(r).barcode_svg ? (t(), n("div", {
5673
5710
  key: 0,
5674
5711
  class: "label-preview__barcode",
5675
5712
  "aria-label": "Barcode",
5676
- innerHTML: L(r).barcode_svg
5677
- }, null, 8, fr)) : z("", !0),
5678
- L(r).qr_code_svg ? (t(), n("div", {
5713
+ innerHTML: x(r).barcode_svg
5714
+ }, null, 8, gr)) : M("", !0),
5715
+ x(r).qr_code_svg ? (t(), n("div", {
5679
5716
  key: 1,
5680
5717
  class: "label-preview__qr",
5681
5718
  "aria-label": "QR code",
5682
- innerHTML: L(r).qr_code_svg
5683
- }, null, 8, yr)) : z("", !0)
5719
+ innerHTML: x(r).qr_code_svg
5720
+ }, null, 8, br)) : M("", !0)
5684
5721
  ], 4)
5685
- ])) : z("", !0),
5686
- L(r) ? (t(), n("div", mr, [
5722
+ ])) : M("", !0),
5723
+ x(r) ? (t(), n("div", kr, [
5687
5724
  I(O, {
5688
5725
  variant: "primary",
5689
5726
  size: "md",
@@ -5732,33 +5769,33 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5732
5769
  ]),
5733
5770
  _: 1
5734
5771
  }, 8, ["loading"])
5735
- ])) : z("", !0)
5772
+ ])) : M("", !0)
5736
5773
  ]));
5737
5774
  }
5738
- }), Jr = /* @__PURE__ */ oe(gr, [["__scopeId", "data-v-c9c4e755"]]), br = { class: "unlocated-products" }, kr = { class: "unlocated-products__header" }, wr = {
5775
+ }), ec = /* @__PURE__ */ oe(wr, [["__scopeId", "data-v-c9c4e755"]]), $r = { class: "unlocated-products" }, Cr = { class: "unlocated-products__header" }, Lr = {
5739
5776
  key: 0,
5740
5777
  class: "unlocated-products__subtitle"
5741
- }, $r = { class: "unlocated-products__product-name" }, Cr = {
5778
+ }, xr = { class: "unlocated-products__product-name" }, Sr = {
5742
5779
  key: 0,
5743
5780
  class: "unlocated-products__sku"
5744
- }, Lr = {
5781
+ }, Ir = {
5745
5782
  key: 1,
5746
5783
  class: "unlocated-products__no-sku"
5747
- }, xr = {
5784
+ }, zr = {
5748
5785
  key: 0,
5749
5786
  class: "unlocated-products__load-more"
5750
- }, Sr = { class: "unlocated-products__showing" }, Ir = { class: "unlocated-products__locate-form" }, zr = { class: "unlocated-products__locate-search" }, Mr = {
5787
+ }, Mr = { class: "unlocated-products__showing" }, Vr = { class: "unlocated-products__locate-form" }, Br = { class: "unlocated-products__locate-search" }, Ar = {
5751
5788
  key: 0,
5752
5789
  class: "unlocated-products__locate-results",
5753
5790
  role: "listbox",
5754
5791
  "aria-label": "Location search results"
5755
- }, Vr = ["aria-selected"], Br = ["onClick"], Ar = { class: "unlocated-products__locate-option-name" }, Pr = {
5792
+ }, Pr = ["aria-selected"], Fr = ["onClick"], Nr = { class: "unlocated-products__locate-option-name" }, Tr = {
5756
5793
  key: 1,
5757
5794
  class: "unlocated-products__locate-no-results"
5758
- }, Fr = {
5795
+ }, Dr = {
5759
5796
  key: 2,
5760
5797
  class: "unlocated-products__locate-selected"
5761
- }, Nr = /* @__PURE__ */ ae({
5798
+ }, Er = /* @__PURE__ */ ae({
5762
5799
  __name: "UnlocatedProducts",
5763
5800
  props: {
5764
5801
  limit: { default: 50 }
@@ -5770,8 +5807,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5770
5807
  { key: "sku", label: "SKU", width: "150px" },
5771
5808
  { key: "actions", label: "", width: "100px", align: "right" }
5772
5809
  ], S = J(() => w.value.length < u.value);
5773
- ue(() => x());
5774
- async function x(V = !1) {
5810
+ ue(() => L());
5811
+ async function L(V = !1) {
5775
5812
  var q;
5776
5813
  V ? v.value = !0 : i.value = !0;
5777
5814
  try {
@@ -5784,8 +5821,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5784
5821
  i.value = !1, v.value = !1;
5785
5822
  }
5786
5823
  }
5787
- function M() {
5788
- l.value++, x(!0);
5824
+ function z() {
5825
+ l.value++, L(!0);
5789
5826
  }
5790
5827
  function T(V) {
5791
5828
  _.value = V, c.value = !0, f.value = "", y.value = [], p.value = null, g("locate", { id: V.id, name: V.name });
@@ -5821,11 +5858,11 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5821
5858
  }
5822
5859
  return (V, q) => {
5823
5860
  var E;
5824
- return t(), n("div", br, [
5825
- e("div", kr, [
5861
+ return t(), n("div", $r, [
5862
+ e("div", Cr, [
5826
5863
  e("div", null, [
5827
5864
  q[2] || (q[2] = e("h2", { class: "unlocated-products__title" }, "Unlocated Products", -1)),
5828
- u.value > 0 ? (t(), n("p", wr, d(u.value) + " product" + d(u.value !== 1 ? "s" : "") + " have no assigned warehouse location ", 1)) : z("", !0)
5865
+ u.value > 0 ? (t(), n("p", Lr, d(u.value) + " product" + d(u.value !== 1 ? "s" : "") + " have no assigned warehouse location ", 1)) : M("", !0)
5829
5866
  ])
5830
5867
  ]),
5831
5868
  i.value && w.value.length === 0 ? (t(), K(se, {
@@ -5842,10 +5879,10 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5842
5879
  "empty-message": "All products have assigned locations."
5843
5880
  }, {
5844
5881
  "cell-name": k(({ row: P }) => [
5845
- e("span", $r, d(P.name), 1)
5882
+ e("span", xr, d(P.name), 1)
5846
5883
  ]),
5847
5884
  "cell-sku": k(({ row: P }) => [
5848
- P.sku ? (t(), n("span", Cr, d(P.sku), 1)) : (t(), n("span", Lr, "no SKU"))
5885
+ P.sku ? (t(), n("span", Sr, d(P.sku), 1)) : (t(), n("span", Ir, "no SKU"))
5849
5886
  ]),
5850
5887
  "cell-actions": k(({ row: P }) => [
5851
5888
  I(O, {
@@ -5861,20 +5898,20 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5861
5898
  ]),
5862
5899
  _: 1
5863
5900
  }, 8, ["data"]),
5864
- S.value ? (t(), n("div", xr, [
5865
- e("p", Sr, " Showing " + d(w.value.length) + " of " + d(u.value), 1),
5901
+ S.value ? (t(), n("div", zr, [
5902
+ e("p", Mr, " Showing " + d(w.value.length) + " of " + d(u.value), 1),
5866
5903
  I(O, {
5867
5904
  variant: "ghost",
5868
5905
  size: "sm",
5869
5906
  loading: v.value,
5870
- onClick: M
5907
+ onClick: z
5871
5908
  }, {
5872
5909
  default: k(() => [...q[4] || (q[4] = [
5873
5910
  D(" Load More ", -1)
5874
5911
  ])]),
5875
5912
  _: 1
5876
5913
  }, 8, ["loading"])
5877
- ])) : z("", !0)
5914
+ ])) : M("", !0)
5878
5915
  ]),
5879
5916
  _: 1
5880
5917
  })) : (t(), K(ge, {
@@ -5915,8 +5952,8 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5915
5952
  }, 8, ["disabled", "loading"])
5916
5953
  ]),
5917
5954
  default: k(() => [
5918
- e("div", Ir, [
5919
- e("div", zr, [
5955
+ e("div", Vr, [
5956
+ e("div", Br, [
5920
5957
  q[5] || (q[5] = e("label", {
5921
5958
  for: "locate-search-input",
5922
5959
  class: "unlocated-products__locate-label"
@@ -5932,7 +5969,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5932
5969
  [ze, f.value]
5933
5970
  ])
5934
5971
  ]),
5935
- y.value.length > 0 ? (t(), n("ul", Mr, [
5972
+ y.value.length > 0 ? (t(), n("ul", Ar, [
5936
5973
  (t(!0), n(G, null, ne(y.value, (P) => {
5937
5974
  var R, ce;
5938
5975
  return t(), n("li", {
@@ -5948,7 +5985,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5948
5985
  I(fe, {
5949
5986
  code: P.full_code
5950
5987
  }, null, 8, ["code"]),
5951
- e("span", Ar, d(P.name), 1),
5988
+ e("span", Nr, d(P.name), 1),
5952
5989
  I(ve, {
5953
5990
  variant: "muted",
5954
5991
  size: "sm"
@@ -5958,18 +5995,18 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5958
5995
  ]),
5959
5996
  _: 2
5960
5997
  }, 1024)
5961
- ], 10, Br)
5962
- ], 8, Vr);
5998
+ ], 10, Fr)
5999
+ ], 8, Pr);
5963
6000
  }), 128))
5964
- ])) : z("", !0),
5965
- f.value.length >= 2 && y.value.length === 0 && !h.value ? (t(), n("p", Pr, " No locations found ")) : z("", !0),
5966
- p.value ? (t(), n("div", Fr, [
6001
+ ])) : M("", !0),
6002
+ f.value.length >= 2 && y.value.length === 0 && !h.value ? (t(), n("p", Tr, " No locations found ")) : M("", !0),
6003
+ p.value ? (t(), n("div", Dr, [
5967
6004
  q[6] || (q[6] = e("span", { class: "unlocated-products__locate-selected-label" }, "Assign to:", -1)),
5968
6005
  I(fe, {
5969
6006
  code: p.value.full_code
5970
6007
  }, null, 8, ["code"]),
5971
6008
  e("span", null, d(p.value.name), 1)
5972
- ])) : z("", !0)
6009
+ ])) : M("", !0)
5973
6010
  ])
5974
6011
  ]),
5975
6012
  _: 1
@@ -5977,7 +6014,7 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5977
6014
  ]);
5978
6015
  };
5979
6016
  }
5980
- }), Xr = /* @__PURE__ */ oe(Nr, [["__scopeId", "data-v-9a21fb9b"]]), Yr = {
6017
+ }), tc = /* @__PURE__ */ oe(Er, [["__scopeId", "data-v-9a21fb9b"]]), ac = {
5981
6018
  install(a, s = {}) {
5982
6019
  pt({
5983
6020
  prefix: s.apiPrefix || "/api/inventory-locator/v1"
@@ -5985,31 +6022,31 @@ const Da = ["title"], Ea = /* @__PURE__ */ ae({
5985
6022
  }
5986
6023
  };
5987
6024
  export {
5988
- Kr as CountEntryForm,
5989
- Gr as CountReport,
5990
- Qr as CountSessionDetail,
5991
- Or as CountSessionList,
5992
- Hr as InventoryDashboard,
5993
- Yr as InventoryLocatorPlugin,
5994
- Ur as InventoryLocatorShell,
5995
- Wr as LabelBatchPrint,
5996
- Jr as LabelPreview,
6025
+ Zr as CountEntryForm,
6026
+ Jr as CountReport,
6027
+ Wr as CountSessionDetail,
6028
+ Gr as CountSessionList,
6029
+ Or as InventoryDashboard,
6030
+ ac as InventoryLocatorPlugin,
6031
+ Qr as InventoryLocatorShell,
6032
+ Xr as LabelBatchPrint,
6033
+ ec as LabelPreview,
5997
6034
  et as LocationBreadcrumb,
5998
6035
  fe as LocationCodeBadge,
5999
- Mn as LocationDetail,
6000
- Fa as LocationSearchInput,
6001
- eo as LocationTree,
6036
+ An as LocationDetail,
6037
+ Da as LocationSearchInput,
6038
+ oo as LocationTree,
6002
6039
  Ee as LocationTypeIcon,
6003
- Zr as ProductLocationList,
6004
- is as ScanHistory,
6005
- Yn as ScanResult,
6006
- jr as ScannerOverlay,
6007
- Xr as UnlocatedProducts,
6040
+ Yr as ProductLocationList,
6041
+ ds as ScanHistory,
6042
+ as as ScanResult,
6043
+ Kr as ScannerOverlay,
6044
+ tc as UnlocatedProducts,
6008
6045
  pt as configureApiClient,
6009
6046
  Ve as useCountSessions,
6010
6047
  Xe as useCountStore,
6011
6048
  Ye as useLabelPrinting,
6012
- qr as useLocationBreadcrumbs,
6049
+ jr as useLocationBreadcrumbs,
6013
6050
  Se as useLocationProducts,
6014
6051
  Re as useLocationSearch,
6015
6052
  Me as useLocationStore,