@burdenoff/microfe-atheletebridge 2026.625.1 → 2026.625.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.
Files changed (91) hide show
  1. package/dist/atheletebridge/pages/HomePage.js +272 -268
  2. package/dist/atheletebridge/pages/HomePage.js.map +1 -1
  3. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js +90 -82
  4. package/dist/atheletebridge/pages/admin/AdminAnalyticsPage.js.map +1 -1
  5. package/dist/atheletebridge/pages/admin/AdminDashboard.js +76 -44
  6. package/dist/atheletebridge/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js +63 -55
  8. package/dist/atheletebridge/pages/admin/AdminFinancialPage.js.map +1 -1
  9. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js +244 -237
  10. package/dist/atheletebridge/pages/admin/AdminOrdersPage.js.map +1 -1
  11. package/dist/atheletebridge/pages/admin/AdminProfilePage.js +59 -57
  12. package/dist/atheletebridge/pages/admin/AdminProfilePage.js.map +1 -1
  13. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js +110 -106
  14. package/dist/atheletebridge/pages/admin/AdminSettingsPage.js.map +1 -1
  15. package/dist/atheletebridge/pages/admin/CartManagementPage.js +166 -159
  16. package/dist/atheletebridge/pages/admin/CartManagementPage.js.map +1 -1
  17. package/dist/atheletebridge/pages/admin/UserManagementPage.js +310 -303
  18. package/dist/atheletebridge/pages/admin/UserManagementPage.js.map +1 -1
  19. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js +86 -81
  20. package/dist/atheletebridge/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  21. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js +170 -166
  22. package/dist/atheletebridge/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  23. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js +141 -109
  24. package/dist/atheletebridge/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  25. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js +139 -134
  26. package/dist/atheletebridge/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  27. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js +109 -107
  28. package/dist/atheletebridge/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  29. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js +318 -318
  30. package/dist/atheletebridge/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  31. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js +262 -262
  32. package/dist/atheletebridge/pages/cart-owner/OrderManagementPage.js.map +1 -1
  33. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js +170 -162
  34. package/dist/atheletebridge/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/atheletebridge/pages/common/HelpSupportPage.js +292 -298
  36. package/dist/atheletebridge/pages/common/HelpSupportPage.js.map +1 -1
  37. package/dist/atheletebridge/pages/common/NotificationCenterPage.js +99 -91
  38. package/dist/atheletebridge/pages/common/NotificationCenterPage.js.map +1 -1
  39. package/dist/atheletebridge/pages/common/SettingsPage.js +742 -734
  40. package/dist/atheletebridge/pages/common/SettingsPage.js.map +1 -1
  41. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js +364 -356
  42. package/dist/atheletebridge/pages/customer/BookingDetailsPage.js.map +1 -1
  43. package/dist/atheletebridge/pages/customer/CartDetailPage.js +276 -241
  44. package/dist/atheletebridge/pages/customer/CartDetailPage.js.map +1 -1
  45. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js +260 -250
  46. package/dist/atheletebridge/pages/customer/CartDiscoveryPage.js.map +1 -1
  47. package/dist/atheletebridge/pages/customer/CheckoutPage.js +93 -89
  48. package/dist/atheletebridge/pages/customer/CheckoutPage.js.map +1 -1
  49. package/dist/atheletebridge/pages/customer/CustomerDashboard.js +430 -387
  50. package/dist/atheletebridge/pages/customer/CustomerDashboard.js.map +1 -1
  51. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js +526 -490
  52. package/dist/atheletebridge/pages/customer/CustomerProfilePage.js.map +1 -1
  53. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js +523 -512
  54. package/dist/atheletebridge/pages/customer/DirectServiceBookingPage.js.map +1 -1
  55. package/dist/atheletebridge/pages/customer/FavoritesPage.js +83 -75
  56. package/dist/atheletebridge/pages/customer/FavoritesPage.js.map +1 -1
  57. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js +116 -108
  58. package/dist/atheletebridge/pages/customer/OrderHistoryPage.js.map +1 -1
  59. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js +65 -61
  60. package/dist/atheletebridge/pages/customer/OrderTrackingPage.js.map +1 -1
  61. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js +80 -75
  62. package/dist/atheletebridge/pages/customer/PaymentMethodsPage.js.map +1 -1
  63. package/dist/atheletebridge/pages/customer/ReviewsPage.js +80 -72
  64. package/dist/atheletebridge/pages/customer/ReviewsPage.js.map +1 -1
  65. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js +62 -55
  66. package/dist/atheletebridge/pages/customer/SavedAddressesPage.js.map +1 -1
  67. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js +93 -61
  68. package/dist/atheletebridge/pages/investor/InvestmentDetailsPage.js.map +1 -1
  69. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js +89 -84
  70. package/dist/atheletebridge/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  71. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js +60 -55
  72. package/dist/atheletebridge/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  73. package/dist/atheletebridge/pages/investor/InvestorDashboard.js +345 -311
  74. package/dist/atheletebridge/pages/investor/InvestorDashboard.js.map +1 -1
  75. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js +37 -32
  76. package/dist/atheletebridge/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  77. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js +75 -67
  78. package/dist/atheletebridge/pages/investor/InvestorPortfolioPage.js.map +1 -1
  79. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js +385 -381
  80. package/dist/atheletebridge/pages/investor/InvestorProfilePage.js.map +1 -1
  81. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js +352 -319
  82. package/dist/atheletebridge/pages/worker/TaskDetailsPage.js.map +1 -1
  83. package/dist/atheletebridge/pages/worker/WorkerDashboard.js +353 -318
  84. package/dist/atheletebridge/pages/worker/WorkerDashboard.js.map +1 -1
  85. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js +133 -128
  86. package/dist/atheletebridge/pages/worker/WorkerOrdersPage.js.map +1 -1
  87. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js +81 -77
  88. package/dist/atheletebridge/pages/worker/WorkerProfilePage.js.map +1 -1
  89. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js +352 -344
  90. package/dist/atheletebridge/pages/worker/WorkerSchedulePage.js.map +1 -1
  91. package/package.json +3 -3
@@ -1,13 +1,15 @@
1
1
  import { useAthleteBridge as e } from "../../context/AthleteBridgeContext.js";
2
2
  import { cn as t } from "../../utils/cn.js";
3
3
  import { PageLayout as n } from "../../components/PageLayout.js";
4
- import { formatCurrency as r } from "../../utils/formatters.js";
5
- import { mockProducts as i } from "../../mocks/data.js";
4
+ import { EmptyState as r } from "../../components/EmptyState.js";
5
+ import { formatCurrency as i } from "../../utils/formatters.js";
6
+ import { mockProducts as ee } from "../../mocks/data.js";
6
7
  import { useMemo as a, useState as o } from "react";
7
- import { AlertCircle as ee, CheckCircle2 as te, Edit2 as ne, Package as s, Plus as c, Search as re, Trash2 as ie, Upload as ae, X as oe } from "lucide-react";
8
- import { Fragment as se, jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ import { AlertCircle as te, CheckCircle2 as s, Edit2 as ne, Package as c, Plus as l, Search as u, Trash2 as d, Upload as re, X as ie } from "lucide-react";
9
+ import { Fragment as ae, jsx as f, jsxs as p } from "react/jsx-runtime";
10
+ import { EmphasisPanel as oe, PagePurpose as m } from "@burdenoff/fe-libs/ui";
9
11
  //#region src/atheletebridge/pages/cart-owner/InventoryManagementPage.tsx
10
- var d = [
12
+ var h = [
11
13
  "Service",
12
14
  "Repair",
13
15
  "Beauty",
@@ -16,7 +18,7 @@ var d = [
16
18
  "Health",
17
19
  "Wellness",
18
20
  "Education"
19
- ], f = (e) => d.some((t) => e.includes(t)), p = (e) => e === "Food & Beverage", m = [
21
+ ], g = (e) => h.some((t) => e.includes(t)), _ = (e) => e === "Food & Beverage", v = [
20
22
  10,
21
23
  25,
22
24
  0,
@@ -37,18 +39,18 @@ var d = [
37
39
  22,
38
40
  0,
39
41
  45
40
- ], h = () => i.slice(0, 20).map((e, t) => ({
42
+ ], se = () => ee.slice(0, 20).map((e, t) => ({
41
43
  id: e.id,
42
44
  name: e.name,
43
45
  description: e.description ?? `${e.name} - quality offering from ${e.cartName}`,
44
46
  price: e.price,
45
47
  originalPrice: t % 4 == 0 ? Math.round(e.price * 1.2) : void 0,
46
48
  category: e.category,
47
- stock: m[t] ?? 10,
49
+ stock: v[t] ?? 10,
48
50
  isAvailable: t !== 2 && t !== 9 && t !== 18,
49
51
  cartName: e.cartName,
50
52
  preparationTime: 15,
51
- calories: p(e.category) ? Math.floor(Math.random() * 400) + 100 : 0,
53
+ calories: _(e.category) ? Math.floor(Math.random() * 400) + 100 : 0,
52
54
  isVegetarian: t % 3 == 0,
53
55
  isVegan: t % 5 == 0,
54
56
  isGlutenFree: t % 7 == 0,
@@ -63,16 +65,16 @@ var d = [
63
65
  "trending",
64
66
  "new"
65
67
  ].slice(0, t % 3 + 1),
66
- allergens: p(e.category) ? ["nuts", "dairy"].slice(0, t % 2 + 1) : [],
67
- duration: f(e.category) ? 30 + t * 5 : 0,
68
- serviceType: f(e.category) ? [
68
+ allergens: _(e.category) ? ["nuts", "dairy"].slice(0, t % 2 + 1) : [],
69
+ duration: g(e.category) ? 30 + t * 5 : 0,
70
+ serviceType: g(e.category) ? [
69
71
  "instant",
70
72
  "appointment",
71
73
  "recurring",
72
74
  "consultation"
73
75
  ][t % 4] : "",
74
- requirements: f(e.category) ? ["advance booking"] : []
75
- })), g = {
76
+ requirements: g(e.category) ? ["advance booking"] : []
77
+ })), y = {
76
78
  name: "",
77
79
  description: "",
78
80
  category: "",
@@ -91,14 +93,14 @@ var d = [
91
93
  duration: 30,
92
94
  serviceType: "instant",
93
95
  requirements: []
94
- }, _ = () => {
95
- let { navigateTo: i } = e(), [d, m] = o(h), [_, v] = o(""), [y, b] = o(""), [x, S] = o(""), [C, w] = o("name"), [ce, le] = o(!1), [ue, T] = o(!1), [E, D] = o(null), [O, k] = o(g), [A, j] = o(""), [M, N] = o(""), [P, F] = o(""), [I, L] = o(null), R = a(() => [...new Set(d.map((e) => e.category))].sort(), [d]), z = a(() => {
96
- let e = [...d];
97
- if (_) {
98
- let t = _.toLowerCase();
96
+ }, b = () => {
97
+ let { navigateTo: ee } = e(), [h, v] = o(se), [b, x] = o(""), [S, C] = o(""), [w, T] = o(""), [E, D] = o("name"), [ce, le] = o(!1), [O, k] = o(!1), [A, j] = o(null), [M, N] = o(y), [P, F] = o(""), [I, L] = o(""), [R, z] = o(""), [B, V] = o(null), H = a(() => [...new Set(h.map((e) => e.category))].sort(), [h]), U = a(() => {
98
+ let e = [...h];
99
+ if (b) {
100
+ let t = b.toLowerCase();
99
101
  e = e.filter((e) => e.name.toLowerCase().includes(t) || e.description.toLowerCase().includes(t) || e.category.toLowerCase().includes(t) || e.tags.some((e) => e.toLowerCase().includes(t)));
100
102
  }
101
- switch (y && (e = e.filter((e) => e.category === y)), x === "available" ? e = e.filter((e) => e.isAvailable) : x === "unavailable" && (e = e.filter((e) => !e.isAvailable)), C) {
103
+ switch (S && (e = e.filter((e) => e.category === S)), w === "available" ? e = e.filter((e) => e.isAvailable) : w === "unavailable" && (e = e.filter((e) => !e.isAvailable)), E) {
102
104
  case "name":
103
105
  e.sort((e, t) => e.name.localeCompare(t.name));
104
106
  break;
@@ -114,23 +116,23 @@ var d = [
114
116
  }
115
117
  return e;
116
118
  }, [
117
- d,
118
- _,
119
- y,
120
- x,
121
- C
122
- ]), B = d.length, V = d.filter((e) => e.isAvailable).length, H = d.filter((e) => !f(e.category) && e.stock === 0).length, U = d.filter((e) => !f(e.category) && e.stock > 0 && e.stock < 10).length, W = (e, t) => {
123
- L({
119
+ h,
120
+ b,
121
+ S,
122
+ w,
123
+ E
124
+ ]), ue = h.length, de = h.filter((e) => e.isAvailable).length, fe = h.filter((e) => !g(e.category) && e.stock === 0).length, pe = h.filter((e) => !g(e.category) && e.stock > 0 && e.stock < 10).length, W = (e, t) => {
125
+ V({
124
126
  text: e,
125
127
  type: t
126
- }), setTimeout(() => L(null), 3e3);
128
+ }), setTimeout(() => V(null), 3e3);
127
129
  }, G = () => {
128
- D(null), k({
129
- ...g,
130
- category: R[0] || ""
131
- }), j(""), N(""), F(""), T(!0);
130
+ j(null), N({
131
+ ...y,
132
+ category: H[0] || ""
133
+ }), F(""), L(""), z(""), k(!0);
132
134
  }, K = (e) => {
133
- D(e), k({
135
+ j(e), N({
134
136
  name: e.name,
135
137
  description: e.description,
136
138
  category: e.category,
@@ -149,16 +151,16 @@ var d = [
149
151
  duration: e.duration,
150
152
  serviceType: e.serviceType,
151
153
  requirements: e.requirements
152
- }), j(e.tags.join(", ")), N(e.allergens.join(", ")), F(e.requirements.join(", ")), T(!0);
153
- }, de = () => {
154
- if (!O.name || !O.description || !O.category || O.price <= 0) {
154
+ }), F(e.tags.join(", ")), L(e.allergens.join(", ")), z(e.requirements.join(", ")), k(!0);
155
+ }, me = () => {
156
+ if (!M.name || !M.description || !M.category || M.price <= 0) {
155
157
  W("Please fill all required fields (name, description, category, price > 0)", "error");
156
158
  return;
157
159
  }
158
- let e = A.split(",").map((e) => e.trim()).filter(Boolean), t = M.split(",").map((e) => e.trim()).filter(Boolean), n = P.split(",").map((e) => e.trim()).filter(Boolean), r = f(O.category) ? "Service" : "Product";
159
- if (E) m((r) => r.map((r) => r.id === E.id ? {
160
+ let e = P.split(",").map((e) => e.trim()).filter(Boolean), t = I.split(",").map((e) => e.trim()).filter(Boolean), n = R.split(",").map((e) => e.trim()).filter(Boolean), r = g(M.category) ? "Service" : "Product";
161
+ if (A) v((r) => r.map((r) => r.id === A.id ? {
160
162
  ...r,
161
- ...O,
163
+ ...M,
162
164
  tags: e,
163
165
  allergens: t,
164
166
  requirements: n
@@ -166,33 +168,33 @@ var d = [
166
168
  else {
167
169
  let i = {
168
170
  id: `item-${Date.now()}`,
169
- ...O,
171
+ ...M,
170
172
  tags: e,
171
173
  allergens: t,
172
174
  requirements: n,
173
175
  cartName: "Dosa Express"
174
176
  };
175
- m((e) => [i, ...e]), W(`${r} added successfully`, "success");
177
+ v((e) => [i, ...e]), W(`${r} added successfully`, "success");
176
178
  }
177
- T(!1);
179
+ k(!1);
178
180
  }, q = (e) => {
179
- confirm("Are you sure you want to delete this offering?") && (m((t) => t.filter((t) => t.id !== e)), W("Offering deleted successfully", "success"));
181
+ confirm("Are you sure you want to delete this offering?") && (v((t) => t.filter((t) => t.id !== e)), W("Offering deleted successfully", "success"));
180
182
  }, J = (e, t) => {
181
- m((n) => n.map((n) => n.id === e ? {
183
+ v((n) => n.map((n) => n.id === e ? {
182
184
  ...n,
183
185
  isAvailable: t
184
186
  } : n)), W(`Offering ${t ? "enabled" : "disabled"} successfully`, "success");
185
187
  }, Y = (e) => {
186
- let t = e === "enable", n = d.filter((e) => e.isAvailable !== t).length;
188
+ let t = e === "enable", n = h.filter((e) => e.isAvailable !== t).length;
187
189
  if (n === 0) {
188
190
  W(`No offerings to ${e}`, "error");
189
191
  return;
190
192
  }
191
- m((e) => e.map((e) => ({
193
+ v((e) => e.map((e) => ({
192
194
  ...e,
193
195
  isAvailable: t
194
196
  }))), W(`${n} offerings ${e}d successfully`, "success");
195
- }, X = (e) => f(e.category) ? {
197
+ }, X = (e) => g(e.category) ? {
196
198
  color: "text-green-600 dark:text-green-400",
197
199
  label: "Available"
198
200
  } : e.stock === 0 ? {
@@ -204,165 +206,169 @@ var d = [
204
206
  } : {
205
207
  color: "text-green-600 dark:text-green-400",
206
208
  label: `In Stock (${e.stock})`
207
- }, Z = O.category ? f(O.category) : !1, fe = O.category ? p(O.category) : !1, Q = !Z && fe, $ = O.name && O.description && O.category && O.price > 0 && (!Z || O.duration && O.duration > 0) && (Z || O.stock >= 0);
208
- return /* @__PURE__ */ u(n, {
209
+ }, Z = M.category ? g(M.category) : !1, he = M.category ? _(M.category) : !1, Q = !Z && he, $ = M.name && M.description && M.category && M.price > 0 && (!Z || M.duration && M.duration > 0) && (Z || M.stock >= 0);
210
+ return /* @__PURE__ */ p(n, {
209
211
  title: "Offerings Management",
210
212
  description: "Manage your products and services",
211
- actions: /* @__PURE__ */ u("button", {
213
+ actions: /* @__PURE__ */ p("button", {
212
214
  type: "button",
213
215
  onClick: G,
214
216
  className: "inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors",
215
- children: [/* @__PURE__ */ l(c, { className: "h-4 w-4" }), "Add Item"]
217
+ children: [/* @__PURE__ */ f(l, { className: "h-4 w-4" }), "Add Item"]
216
218
  }),
217
- children: [/* @__PURE__ */ u("div", {
219
+ children: [/* @__PURE__ */ p("div", {
218
220
  className: "space-y-4",
219
221
  children: [
220
- I && /* @__PURE__ */ u("div", {
221
- className: t("flex items-center gap-2 rounded-lg border p-3", I.type === "success" ? "border-green-500/30 bg-green-500/10" : "border-red-500/30 bg-red-500/10"),
222
- children: [I.type === "success" ? /* @__PURE__ */ l(te, { className: "h-4 w-4 text-green-600 dark:text-green-400" }) : /* @__PURE__ */ l(ee, { className: "h-4 w-4 text-red-600 dark:text-red-400" }), /* @__PURE__ */ l("span", {
223
- className: t("text-sm font-medium", I.type === "success" ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400"),
224
- children: I.text
222
+ B && /* @__PURE__ */ p("div", {
223
+ className: t("flex items-center gap-2 rounded-lg border p-3", B.type === "success" ? "border-green-500/30 bg-green-500/10" : "border-red-500/30 bg-red-500/10"),
224
+ children: [B.type === "success" ? /* @__PURE__ */ f(s, { className: "h-4 w-4 text-green-600 dark:text-green-400" }) : /* @__PURE__ */ f(te, { className: "h-4 w-4 text-red-600 dark:text-red-400" }), /* @__PURE__ */ f("span", {
225
+ className: t("text-sm font-medium", B.type === "success" ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400"),
226
+ children: B.text
225
227
  })]
226
228
  }),
227
- /* @__PURE__ */ u("div", {
228
- className: "grid grid-cols-2 lg:grid-cols-4 gap-3",
229
- children: [
230
- /* @__PURE__ */ u("div", {
231
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
232
- children: [/* @__PURE__ */ l("p", {
233
- className: "text-xs text-text-secondary",
234
- children: "Total Items"
235
- }), /* @__PURE__ */ l("p", {
236
- className: "text-2xl font-bold text-text-primary",
237
- children: B
238
- })]
239
- }),
240
- /* @__PURE__ */ u("div", {
241
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
242
- children: [/* @__PURE__ */ l("p", {
243
- className: "text-xs text-text-secondary",
244
- children: "Available"
245
- }), /* @__PURE__ */ l("p", {
246
- className: "text-2xl font-bold text-green-600 dark:text-green-400",
247
- children: V
248
- })]
249
- }),
250
- /* @__PURE__ */ u("div", {
251
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
252
- children: [/* @__PURE__ */ l("p", {
253
- className: "text-xs text-text-secondary",
254
- children: "Out of Stock"
255
- }), /* @__PURE__ */ l("p", {
256
- className: "text-2xl font-bold text-red-600 dark:text-red-400",
257
- children: H
258
- })]
259
- }),
260
- /* @__PURE__ */ u("div", {
261
- className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
262
- children: [/* @__PURE__ */ l("p", {
263
- className: "text-xs text-text-secondary",
264
- children: "Low Stock"
265
- }), /* @__PURE__ */ l("p", {
266
- className: "text-2xl font-bold text-yellow-600 dark:text-yellow-400",
267
- children: U
268
- })]
269
- })
270
- ]
229
+ /* @__PURE__ */ f(m, { children: "Your catalogue of products and services. Add and edit items, set prices, and keep stock levels accurate so customers only see what's actually available. Watch for low-stock and out-of-stock items so you never disappoint an order." }),
230
+ /* @__PURE__ */ f(oe, {
231
+ className: "p-5",
232
+ children: /* @__PURE__ */ p("div", {
233
+ className: "grid grid-cols-2 lg:grid-cols-4 gap-3",
234
+ children: [
235
+ /* @__PURE__ */ p("div", {
236
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
237
+ children: [/* @__PURE__ */ f("p", {
238
+ className: "text-xs text-text-secondary",
239
+ children: "Total Items"
240
+ }), /* @__PURE__ */ f("p", {
241
+ className: "text-2xl font-bold text-text-primary",
242
+ children: ue
243
+ })]
244
+ }),
245
+ /* @__PURE__ */ p("div", {
246
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
247
+ children: [/* @__PURE__ */ f("p", {
248
+ className: "text-xs text-text-secondary",
249
+ children: "Available"
250
+ }), /* @__PURE__ */ f("p", {
251
+ className: "text-2xl font-bold text-green-600 dark:text-green-400",
252
+ children: de
253
+ })]
254
+ }),
255
+ /* @__PURE__ */ p("div", {
256
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
257
+ children: [/* @__PURE__ */ f("p", {
258
+ className: "text-xs text-text-secondary",
259
+ children: "Out of Stock"
260
+ }), /* @__PURE__ */ f("p", {
261
+ className: "text-2xl font-bold text-red-600 dark:text-red-400",
262
+ children: fe
263
+ })]
264
+ }),
265
+ /* @__PURE__ */ p("div", {
266
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
267
+ children: [/* @__PURE__ */ f("p", {
268
+ className: "text-xs text-text-secondary",
269
+ children: "Low Stock"
270
+ }), /* @__PURE__ */ f("p", {
271
+ className: "text-2xl font-bold text-yellow-600 dark:text-yellow-400",
272
+ children: pe
273
+ })]
274
+ })
275
+ ]
276
+ })
271
277
  }),
272
- /* @__PURE__ */ u("div", {
278
+ /* @__PURE__ */ p("div", {
273
279
  className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm space-y-4",
274
- children: [/* @__PURE__ */ u("div", {
280
+ children: [/* @__PURE__ */ p("div", {
275
281
  className: "flex flex-col lg:flex-row lg:items-center lg:justify-between gap-3",
276
- children: [/* @__PURE__ */ u("div", {
282
+ children: [/* @__PURE__ */ p("div", {
277
283
  className: "flex flex-wrap gap-2",
278
284
  children: [
279
- /* @__PURE__ */ u("button", {
285
+ /* @__PURE__ */ p("button", {
280
286
  type: "button",
281
287
  onClick: G,
282
288
  className: "inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-2 text-sm font-medium text-text-primary hover:bg-accent/80 transition-colors",
283
- children: [/* @__PURE__ */ l(c, { className: "h-4 w-4" }), "Add Item"]
289
+ children: [/* @__PURE__ */ f(l, { className: "h-4 w-4" }), "Add Item"]
284
290
  }),
285
- /* @__PURE__ */ l("button", {
291
+ /* @__PURE__ */ f("button", {
286
292
  type: "button",
287
293
  onClick: () => Y("enable"),
288
294
  className: "rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary hover:bg-bg-sunken transition-colors",
289
295
  children: "Enable All"
290
296
  }),
291
- /* @__PURE__ */ l("button", {
297
+ /* @__PURE__ */ f("button", {
292
298
  type: "button",
293
299
  onClick: () => Y("disable"),
294
300
  className: "rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary hover:bg-bg-sunken transition-colors",
295
301
  children: "Disable All"
296
302
  })
297
303
  ]
298
- }), /* @__PURE__ */ u("button", {
304
+ }), /* @__PURE__ */ p("button", {
299
305
  type: "button",
300
306
  onClick: () => alert("Import/Export feature coming soon!"),
301
307
  className: "inline-flex items-center gap-1.5 rounded-md border border-border-subtle px-3 py-2 text-sm text-text-primary hover:bg-bg-sunken transition-colors",
302
- children: [/* @__PURE__ */ l(ae, { className: "h-4 w-4" }), "Import/Export"]
308
+ children: [/* @__PURE__ */ f(re, { className: "h-4 w-4" }), "Import/Export"]
303
309
  })]
304
- }), /* @__PURE__ */ u("div", {
310
+ }), /* @__PURE__ */ p("div", {
305
311
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3",
306
312
  children: [
307
- /* @__PURE__ */ u("div", {
313
+ /* @__PURE__ */ p("div", {
308
314
  className: "relative sm:col-span-2 lg:col-span-1",
309
- children: [/* @__PURE__ */ l(re, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ l("input", {
315
+ children: [/* @__PURE__ */ f(u, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ f("input", {
310
316
  type: "text",
311
317
  placeholder: "Search offerings...",
312
- value: _,
313
- onChange: (e) => v(e.target.value),
318
+ value: b,
319
+ onChange: (e) => x(e.target.value),
314
320
  className: "w-full rounded-md border border-border-subtle bg-bg-surface pl-10 pr-4 py-2 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
315
321
  })]
316
322
  }),
317
- /* @__PURE__ */ u("select", {
318
- value: y,
319
- onChange: (e) => b(e.target.value),
323
+ /* @__PURE__ */ p("select", {
324
+ value: S,
325
+ onChange: (e) => C(e.target.value),
320
326
  className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
321
- children: [/* @__PURE__ */ l("option", {
327
+ children: [/* @__PURE__ */ f("option", {
322
328
  value: "",
323
329
  children: "All Categories"
324
- }), R.map((e) => /* @__PURE__ */ l("option", {
330
+ }), H.map((e) => /* @__PURE__ */ f("option", {
325
331
  value: e,
326
332
  children: e
327
333
  }, e))]
328
334
  }),
329
- /* @__PURE__ */ u("select", {
330
- value: x,
331
- onChange: (e) => S(e.target.value),
335
+ /* @__PURE__ */ p("select", {
336
+ value: w,
337
+ onChange: (e) => T(e.target.value),
332
338
  className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
333
339
  children: [
334
- /* @__PURE__ */ l("option", {
340
+ /* @__PURE__ */ f("option", {
335
341
  value: "",
336
342
  children: "All Status"
337
343
  }),
338
- /* @__PURE__ */ l("option", {
344
+ /* @__PURE__ */ f("option", {
339
345
  value: "available",
340
346
  children: "Available"
341
347
  }),
342
- /* @__PURE__ */ l("option", {
348
+ /* @__PURE__ */ f("option", {
343
349
  value: "unavailable",
344
350
  children: "Unavailable"
345
351
  })
346
352
  ]
347
353
  }),
348
- /* @__PURE__ */ u("select", {
349
- value: C,
350
- onChange: (e) => w(e.target.value),
354
+ /* @__PURE__ */ p("select", {
355
+ value: E,
356
+ onChange: (e) => D(e.target.value),
351
357
  className: "rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
352
358
  children: [
353
- /* @__PURE__ */ l("option", {
359
+ /* @__PURE__ */ f("option", {
354
360
  value: "name",
355
361
  children: "Name A-Z"
356
362
  }),
357
- /* @__PURE__ */ l("option", {
363
+ /* @__PURE__ */ f("option", {
358
364
  value: "price_low",
359
365
  children: "Price: Low to High"
360
366
  }),
361
- /* @__PURE__ */ l("option", {
367
+ /* @__PURE__ */ f("option", {
362
368
  value: "price_high",
363
369
  children: "Price: High to Low"
364
370
  }),
365
- /* @__PURE__ */ l("option", {
371
+ /* @__PURE__ */ f("option", {
366
372
  value: "stock",
367
373
  children: "Stock: Low to High"
368
374
  })
@@ -371,139 +377,133 @@ var d = [
371
377
  ]
372
378
  })]
373
379
  }),
374
- z.length === 0 ? /* @__PURE__ */ u("div", {
375
- className: "rounded-lg border border-border-subtle bg-bg-surface p-12 text-center shadow-sm",
376
- children: [
377
- /* @__PURE__ */ l(s, { className: "h-12 w-12 text-text-secondary opacity-40 mx-auto mb-3" }),
378
- /* @__PURE__ */ l("h3", {
379
- className: "text-lg font-semibold text-text-primary mb-2",
380
- children: "No Items Found"
381
- }),
382
- /* @__PURE__ */ l("p", {
383
- className: "text-sm text-text-secondary mb-4",
384
- children: _ || y || x ? "No items match your current filters. Try adjusting your search criteria." : "You haven't added any items yet. Start building your offerings!"
385
- }),
386
- /* @__PURE__ */ u("div", {
380
+ U.length === 0 ? /* @__PURE__ */ f("div", {
381
+ className: "rounded-lg border border-border-subtle bg-bg-surface shadow-sm",
382
+ children: /* @__PURE__ */ f(r, {
383
+ illustration: b || S || w ? "empty-search" : "empty-files",
384
+ title: "No items found",
385
+ description: b || S || w ? "No items match your current filters. Try adjusting your search criteria." : "You haven't added any items yet. Start building your offerings!",
386
+ action: /* @__PURE__ */ p("div", {
387
387
  className: "flex flex-wrap justify-center gap-3",
388
- children: [/* @__PURE__ */ u("button", {
388
+ children: [/* @__PURE__ */ p("button", {
389
389
  type: "button",
390
390
  onClick: G,
391
- className: "inline-flex items-center gap-2 rounded-md bg-accent px-4 py-2 text-sm font-medium text-text-primary hover:bg-accent/80",
392
- children: [/* @__PURE__ */ l(c, { className: "h-4 w-4" }), "Add Your First Item"]
393
- }), (_ || y || x) && /* @__PURE__ */ l("button", {
391
+ className: "inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
392
+ children: [/* @__PURE__ */ f(l, { className: "h-4 w-4" }), "Add Your First Item"]
393
+ }), (b || S || w) && /* @__PURE__ */ f("button", {
394
394
  type: "button",
395
395
  onClick: () => {
396
- v(""), b(""), S(""), w("name");
396
+ x(""), C(""), T(""), D("name");
397
397
  },
398
- className: "rounded-md border border-border-subtle px-4 py-2 text-sm text-text-primary hover:bg-bg-sunken",
398
+ className: "rounded-lg border border-border-subtle px-4 py-2 text-sm text-text-primary hover:bg-bg-sunken transition-colors",
399
399
  children: "Clear Filters"
400
400
  })]
401
401
  })
402
- ]
403
- }) : /* @__PURE__ */ u(se, { children: [/* @__PURE__ */ l("div", {
402
+ })
403
+ }) : /* @__PURE__ */ p(ae, { children: [/* @__PURE__ */ f("div", {
404
404
  className: "hidden lg:block rounded-lg border border-border-subtle bg-bg-surface shadow-sm overflow-hidden",
405
- children: /* @__PURE__ */ l("div", {
405
+ children: /* @__PURE__ */ f("div", {
406
406
  className: "overflow-x-auto",
407
- children: /* @__PURE__ */ u("table", {
407
+ children: /* @__PURE__ */ p("table", {
408
408
  className: "w-full text-sm",
409
- children: [/* @__PURE__ */ l("thead", { children: /* @__PURE__ */ u("tr", {
409
+ children: [/* @__PURE__ */ f("thead", { children: /* @__PURE__ */ p("tr", {
410
410
  className: "border-b border-border-subtle bg-bg-sunken/50",
411
411
  children: [
412
- /* @__PURE__ */ l("th", {
412
+ /* @__PURE__ */ f("th", {
413
413
  className: "px-5 py-3 text-left font-medium text-text-secondary",
414
414
  children: "Item"
415
415
  }),
416
- /* @__PURE__ */ l("th", {
416
+ /* @__PURE__ */ f("th", {
417
417
  className: "px-5 py-3 text-left font-medium text-text-secondary",
418
418
  children: "Category"
419
419
  }),
420
- /* @__PURE__ */ l("th", {
420
+ /* @__PURE__ */ f("th", {
421
421
  className: "px-5 py-3 text-right font-medium text-text-secondary",
422
422
  children: "Price"
423
423
  }),
424
- /* @__PURE__ */ l("th", {
424
+ /* @__PURE__ */ f("th", {
425
425
  className: "px-5 py-3 text-left font-medium text-text-secondary",
426
426
  children: "Stock/Status"
427
427
  }),
428
- /* @__PURE__ */ l("th", {
428
+ /* @__PURE__ */ f("th", {
429
429
  className: "px-5 py-3 text-center font-medium text-text-secondary",
430
430
  children: "Available"
431
431
  }),
432
- /* @__PURE__ */ l("th", {
432
+ /* @__PURE__ */ f("th", {
433
433
  className: "px-5 py-3 text-right font-medium text-text-secondary",
434
434
  children: "Actions"
435
435
  })
436
436
  ]
437
- }) }), /* @__PURE__ */ l("tbody", { children: z.map((e) => {
437
+ }) }), /* @__PURE__ */ f("tbody", { children: U.map((e) => {
438
438
  let n = X(e);
439
- return /* @__PURE__ */ u("tr", {
439
+ return /* @__PURE__ */ p("tr", {
440
440
  className: "border-b border-border-subtle last:border-0 hover:bg-bg-sunken/30 transition-colors",
441
441
  children: [
442
- /* @__PURE__ */ l("td", {
442
+ /* @__PURE__ */ f("td", {
443
443
  className: "px-5 py-3",
444
- children: /* @__PURE__ */ u("div", {
444
+ children: /* @__PURE__ */ p("div", {
445
445
  className: "flex items-center gap-3",
446
- children: [/* @__PURE__ */ l("div", {
446
+ children: [/* @__PURE__ */ f("div", {
447
447
  className: "flex h-10 w-10 items-center justify-center rounded-md bg-bg-sunken",
448
- children: /* @__PURE__ */ l(s, { className: "h-4 w-4 text-text-secondary" })
449
- }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
448
+ children: /* @__PURE__ */ f(c, { className: "h-4 w-4 text-text-secondary" })
449
+ }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
450
450
  className: "font-medium text-text-primary",
451
451
  children: e.name
452
- }), /* @__PURE__ */ u("p", {
452
+ }), /* @__PURE__ */ p("p", {
453
453
  className: "text-xs text-text-secondary line-clamp-1",
454
454
  children: [e.description.slice(0, 50), "..."]
455
455
  })] })]
456
456
  })
457
457
  }),
458
- /* @__PURE__ */ l("td", {
458
+ /* @__PURE__ */ f("td", {
459
459
  className: "px-5 py-3",
460
- children: /* @__PURE__ */ l("span", {
460
+ children: /* @__PURE__ */ f("span", {
461
461
  className: "inline-flex rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs font-medium text-text-secondary",
462
462
  children: e.category
463
463
  })
464
464
  }),
465
- /* @__PURE__ */ u("td", {
465
+ /* @__PURE__ */ p("td", {
466
466
  className: "px-5 py-3 text-right",
467
- children: [/* @__PURE__ */ l("p", {
467
+ children: [/* @__PURE__ */ f("p", {
468
468
  className: "font-medium text-text-primary",
469
- children: r(e.price, { minimumFractionDigits: 0 })
470
- }), e.originalPrice && /* @__PURE__ */ l("p", {
469
+ children: i(e.price, { minimumFractionDigits: 0 })
470
+ }), e.originalPrice && /* @__PURE__ */ f("p", {
471
471
  className: "text-xs text-text-secondary line-through",
472
- children: r(e.originalPrice, { minimumFractionDigits: 0 })
472
+ children: i(e.originalPrice, { minimumFractionDigits: 0 })
473
473
  })]
474
474
  }),
475
- /* @__PURE__ */ l("td", {
475
+ /* @__PURE__ */ f("td", {
476
476
  className: "px-5 py-3",
477
- children: /* @__PURE__ */ l("span", {
477
+ children: /* @__PURE__ */ f("span", {
478
478
  className: t("text-sm font-medium", n.color),
479
479
  children: n.label
480
480
  })
481
481
  }),
482
- /* @__PURE__ */ l("td", {
482
+ /* @__PURE__ */ f("td", {
483
483
  className: "px-5 py-3 text-center",
484
- children: /* @__PURE__ */ l("button", {
484
+ children: /* @__PURE__ */ f("button", {
485
485
  type: "button",
486
486
  onClick: () => J(e.id, !e.isAvailable),
487
487
  className: t("h-6 w-11 rounded-full transition-colors relative inline-block", e.isAvailable ? "bg-blue-500" : "bg-muted-foreground/30"),
488
- children: /* @__PURE__ */ l("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", e.isAvailable ? "translate-x-5" : "translate-x-0.5") })
488
+ children: /* @__PURE__ */ f("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-white transition-transform", e.isAvailable ? "translate-x-5" : "translate-x-0.5") })
489
489
  })
490
490
  }),
491
- /* @__PURE__ */ l("td", {
491
+ /* @__PURE__ */ f("td", {
492
492
  className: "px-5 py-3",
493
- children: /* @__PURE__ */ u("div", {
493
+ children: /* @__PURE__ */ p("div", {
494
494
  className: "flex items-center justify-end gap-1",
495
- children: [/* @__PURE__ */ l("button", {
495
+ children: [/* @__PURE__ */ f("button", {
496
496
  type: "button",
497
497
  onClick: () => K(e),
498
498
  className: "rounded p-1.5 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors",
499
499
  title: "Edit",
500
- children: /* @__PURE__ */ l(ne, { className: "h-4 w-4" })
501
- }), /* @__PURE__ */ l("button", {
500
+ children: /* @__PURE__ */ f(ne, { className: "h-4 w-4" })
501
+ }), /* @__PURE__ */ f("button", {
502
502
  type: "button",
503
503
  onClick: () => q(e.id),
504
504
  className: "rounded p-1.5 text-text-secondary hover:bg-red-500/10 hover:text-red-600 transition-colors",
505
505
  title: "Delete",
506
- children: /* @__PURE__ */ l(ie, { className: "h-4 w-4" })
506
+ children: /* @__PURE__ */ f(d, { className: "h-4 w-4" })
507
507
  })]
508
508
  })
509
509
  })
@@ -512,67 +512,67 @@ var d = [
512
512
  }) })]
513
513
  })
514
514
  })
515
- }), /* @__PURE__ */ l("div", {
515
+ }), /* @__PURE__ */ f("div", {
516
516
  className: "lg:hidden space-y-3",
517
- children: z.map((e) => {
517
+ children: U.map((e) => {
518
518
  let n = X(e);
519
- return /* @__PURE__ */ l("div", {
519
+ return /* @__PURE__ */ f("div", {
520
520
  className: "rounded-lg border border-border-subtle bg-bg-surface p-4 shadow-sm",
521
- children: /* @__PURE__ */ u("div", {
521
+ children: /* @__PURE__ */ p("div", {
522
522
  className: "flex items-start gap-3",
523
- children: [/* @__PURE__ */ l("div", {
523
+ children: [/* @__PURE__ */ f("div", {
524
524
  className: "flex h-14 w-14 items-center justify-center rounded-md bg-bg-sunken shrink-0",
525
- children: /* @__PURE__ */ l(s, { className: "h-6 w-6 text-text-secondary" })
526
- }), /* @__PURE__ */ u("div", {
525
+ children: /* @__PURE__ */ f(c, { className: "h-6 w-6 text-text-secondary" })
526
+ }), /* @__PURE__ */ p("div", {
527
527
  className: "flex-1 min-w-0",
528
528
  children: [
529
- /* @__PURE__ */ u("div", {
529
+ /* @__PURE__ */ p("div", {
530
530
  className: "flex items-start justify-between mb-1",
531
- children: [/* @__PURE__ */ u("div", {
531
+ children: [/* @__PURE__ */ p("div", {
532
532
  className: "flex-1",
533
- children: [/* @__PURE__ */ l("h3", {
533
+ children: [/* @__PURE__ */ f("h3", {
534
534
  className: "text-sm font-medium text-text-primary line-clamp-1",
535
535
  children: e.name
536
- }), /* @__PURE__ */ l("p", {
536
+ }), /* @__PURE__ */ f("p", {
537
537
  className: "text-xs text-text-secondary mt-0.5 line-clamp-2",
538
538
  children: e.description
539
539
  })]
540
- }), /* @__PURE__ */ l("button", {
540
+ }), /* @__PURE__ */ f("button", {
541
541
  type: "button",
542
542
  onClick: () => J(e.id, !e.isAvailable),
543
543
  className: t("h-5 w-9 rounded-full transition-colors relative ml-2 shrink-0", e.isAvailable ? "bg-blue-500" : "bg-muted-foreground/30"),
544
- children: /* @__PURE__ */ l("div", { className: t("absolute top-0.5 h-4 w-4 rounded-full bg-white transition-transform", e.isAvailable ? "translate-x-4" : "translate-x-0.5") })
544
+ children: /* @__PURE__ */ f("div", { className: t("absolute top-0.5 h-4 w-4 rounded-full bg-white transition-transform", e.isAvailable ? "translate-x-4" : "translate-x-0.5") })
545
545
  })]
546
546
  }),
547
- /* @__PURE__ */ u("div", {
547
+ /* @__PURE__ */ p("div", {
548
548
  className: "flex flex-wrap items-center gap-2 mt-2 text-xs",
549
- children: [/* @__PURE__ */ l("span", {
549
+ children: [/* @__PURE__ */ f("span", {
550
550
  className: "px-2 py-0.5 rounded-full bg-bg-sunken text-text-secondary",
551
551
  children: e.category
552
- }), /* @__PURE__ */ l("span", {
552
+ }), /* @__PURE__ */ f("span", {
553
553
  className: t("font-medium", n.color),
554
554
  children: n.label
555
555
  })]
556
556
  }),
557
- /* @__PURE__ */ u("div", {
557
+ /* @__PURE__ */ p("div", {
558
558
  className: "flex items-center justify-between mt-3",
559
- children: [/* @__PURE__ */ u("div", {
559
+ children: [/* @__PURE__ */ p("div", {
560
560
  className: "flex items-center gap-2",
561
- children: [/* @__PURE__ */ l("span", {
561
+ children: [/* @__PURE__ */ f("span", {
562
562
  className: "font-semibold text-text-primary",
563
- children: r(e.price, { minimumFractionDigits: 0 })
564
- }), e.originalPrice && /* @__PURE__ */ l("span", {
563
+ children: i(e.price, { minimumFractionDigits: 0 })
564
+ }), e.originalPrice && /* @__PURE__ */ f("span", {
565
565
  className: "text-xs text-text-secondary line-through",
566
- children: r(e.originalPrice, { minimumFractionDigits: 0 })
566
+ children: i(e.originalPrice, { minimumFractionDigits: 0 })
567
567
  })]
568
- }), /* @__PURE__ */ u("div", {
568
+ }), /* @__PURE__ */ p("div", {
569
569
  className: "flex gap-1",
570
- children: [/* @__PURE__ */ l("button", {
570
+ children: [/* @__PURE__ */ f("button", {
571
571
  type: "button",
572
572
  onClick: () => K(e),
573
573
  className: "rounded px-2 py-1 text-xs border border-border-subtle text-text-primary hover:bg-bg-sunken",
574
574
  children: "Edit"
575
- }), /* @__PURE__ */ l("button", {
575
+ }), /* @__PURE__ */ f("button", {
576
576
  type: "button",
577
577
  onClick: () => q(e.id),
578
578
  className: "rounded px-2 py-1 text-xs border border-border-subtle text-red-600 dark:text-red-400 hover:bg-red-500/10",
@@ -587,75 +587,75 @@ var d = [
587
587
  })
588
588
  })] })
589
589
  ]
590
- }), ue && /* @__PURE__ */ l("div", {
590
+ }), O && /* @__PURE__ */ f("div", {
591
591
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
592
- children: /* @__PURE__ */ l("div", {
592
+ children: /* @__PURE__ */ f("div", {
593
593
  className: "w-full max-w-2xl max-h-[90vh] overflow-y-auto rounded-lg border border-border-subtle bg-bg-surface shadow-xl",
594
- children: /* @__PURE__ */ u("div", {
594
+ children: /* @__PURE__ */ p("div", {
595
595
  className: "p-6",
596
596
  children: [
597
- /* @__PURE__ */ u("div", {
597
+ /* @__PURE__ */ p("div", {
598
598
  className: "flex items-center justify-between mb-4",
599
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h3", {
599
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h3", {
600
600
  className: "text-lg font-semibold text-text-primary",
601
- children: E ? "Edit Item" : "Add New Item"
602
- }), O.category && /* @__PURE__ */ u("p", {
601
+ children: A ? "Edit Item" : "Add New Item"
602
+ }), M.category && /* @__PURE__ */ p("p", {
603
603
  className: "text-sm text-text-secondary mt-0.5",
604
604
  children: [
605
605
  "Type: ",
606
606
  Z ? "Service" : "Product",
607
607
  " | Category: ",
608
- O.category
608
+ M.category
609
609
  ]
610
- })] }), /* @__PURE__ */ l("button", {
610
+ })] }), /* @__PURE__ */ f("button", {
611
611
  type: "button",
612
- onClick: () => T(!1),
612
+ onClick: () => k(!1),
613
613
  className: "rounded p-1.5 text-text-secondary hover:text-text-primary hover:bg-bg-sunken transition-colors",
614
- children: /* @__PURE__ */ l(oe, { className: "h-5 w-5" })
614
+ children: /* @__PURE__ */ f(ie, { className: "h-5 w-5" })
615
615
  })]
616
616
  }),
617
- /* @__PURE__ */ u("div", {
617
+ /* @__PURE__ */ p("div", {
618
618
  className: "space-y-4",
619
619
  children: [
620
- /* @__PURE__ */ u("div", {
620
+ /* @__PURE__ */ p("div", {
621
621
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
622
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
622
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
623
623
  className: "block text-sm font-medium text-text-primary mb-1",
624
624
  children: "Item Name *"
625
- }), /* @__PURE__ */ l("input", {
625
+ }), /* @__PURE__ */ f("input", {
626
626
  type: "text",
627
- value: O.name,
628
- onChange: (e) => k((t) => ({
627
+ value: M.name,
628
+ onChange: (e) => N((t) => ({
629
629
  ...t,
630
630
  name: e.target.value
631
631
  })),
632
632
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary",
633
633
  placeholder: "Enter item name"
634
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
634
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
635
635
  className: "block text-sm font-medium text-text-primary mb-1",
636
636
  children: "Category *"
637
- }), /* @__PURE__ */ u("select", {
638
- value: O.category,
639
- onChange: (e) => k((t) => ({
637
+ }), /* @__PURE__ */ p("select", {
638
+ value: M.category,
639
+ onChange: (e) => N((t) => ({
640
640
  ...t,
641
641
  category: e.target.value
642
642
  })),
643
643
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
644
- children: [/* @__PURE__ */ l("option", {
644
+ children: [/* @__PURE__ */ f("option", {
645
645
  value: "",
646
646
  children: "Select category"
647
- }), R.map((e) => /* @__PURE__ */ l("option", {
647
+ }), H.map((e) => /* @__PURE__ */ f("option", {
648
648
  value: e,
649
649
  children: e
650
650
  }, e))]
651
651
  })] })]
652
652
  }),
653
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
653
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
654
654
  className: "block text-sm font-medium text-text-primary mb-1",
655
655
  children: "Description *"
656
- }), /* @__PURE__ */ l("textarea", {
657
- value: O.description,
658
- onChange: (e) => k((t) => ({
656
+ }), /* @__PURE__ */ f("textarea", {
657
+ value: M.description,
658
+ onChange: (e) => N((t) => ({
659
659
  ...t,
660
660
  description: e.target.value
661
661
  })),
@@ -663,26 +663,26 @@ var d = [
663
663
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary resize-none",
664
664
  placeholder: "Describe the offering..."
665
665
  })] }),
666
- /* @__PURE__ */ u("div", {
666
+ /* @__PURE__ */ p("div", {
667
667
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
668
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
668
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
669
669
  className: "block text-sm font-medium text-text-primary mb-1",
670
670
  children: "Price *"
671
- }), /* @__PURE__ */ l("input", {
671
+ }), /* @__PURE__ */ f("input", {
672
672
  type: "number",
673
- value: O.price,
674
- onChange: (e) => k((t) => ({
673
+ value: M.price,
674
+ onChange: (e) => N((t) => ({
675
675
  ...t,
676
676
  price: parseInt(e.target.value) || 0
677
677
  })),
678
678
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
679
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
679
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
680
680
  className: "block text-sm font-medium text-text-primary mb-1",
681
681
  children: "Original Price"
682
- }), /* @__PURE__ */ l("input", {
682
+ }), /* @__PURE__ */ f("input", {
683
683
  type: "number",
684
- value: O.originalPrice ?? "",
685
- onChange: (e) => k((t) => ({
684
+ value: M.originalPrice ?? "",
685
+ onChange: (e) => N((t) => ({
686
686
  ...t,
687
687
  originalPrice: e.target.value ? parseInt(e.target.value) : void 0
688
688
  })),
@@ -690,40 +690,40 @@ var d = [
690
690
  placeholder: "Optional"
691
691
  })] })]
692
692
  }),
693
- !Z && /* @__PURE__ */ u("div", {
693
+ !Z && /* @__PURE__ */ p("div", {
694
694
  className: "grid grid-cols-1 sm:grid-cols-3 gap-4",
695
695
  children: [
696
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
696
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
697
697
  className: "block text-sm font-medium text-text-primary mb-1",
698
698
  children: "Stock Quantity *"
699
- }), /* @__PURE__ */ l("input", {
699
+ }), /* @__PURE__ */ f("input", {
700
700
  type: "number",
701
- value: O.stock,
702
- onChange: (e) => k((t) => ({
701
+ value: M.stock,
702
+ onChange: (e) => N((t) => ({
703
703
  ...t,
704
704
  stock: parseInt(e.target.value) || 0
705
705
  })),
706
706
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
707
707
  })] }),
708
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
708
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
709
709
  className: "block text-sm font-medium text-text-primary mb-1",
710
710
  children: "Preparation Time (min)"
711
- }), /* @__PURE__ */ l("input", {
711
+ }), /* @__PURE__ */ f("input", {
712
712
  type: "number",
713
- value: O.preparationTime,
714
- onChange: (e) => k((t) => ({
713
+ value: M.preparationTime,
714
+ onChange: (e) => N((t) => ({
715
715
  ...t,
716
716
  preparationTime: parseInt(e.target.value) || 0
717
717
  })),
718
718
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
719
719
  })] }),
720
- Q && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
720
+ Q && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
721
721
  className: "block text-sm font-medium text-text-primary mb-1",
722
722
  children: "Calories"
723
- }), /* @__PURE__ */ l("input", {
723
+ }), /* @__PURE__ */ f("input", {
724
724
  type: "number",
725
- value: O.calories,
726
- onChange: (e) => k((t) => ({
725
+ value: M.calories,
726
+ onChange: (e) => N((t) => ({
727
727
  ...t,
728
728
  calories: parseInt(e.target.value) || 0
729
729
  })),
@@ -731,81 +731,81 @@ var d = [
731
731
  })] })
732
732
  ]
733
733
  }),
734
- Z && /* @__PURE__ */ u("div", {
734
+ Z && /* @__PURE__ */ p("div", {
735
735
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
736
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
736
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
737
737
  className: "block text-sm font-medium text-text-primary mb-1",
738
738
  children: "Service Duration (min) *"
739
- }), /* @__PURE__ */ l("input", {
739
+ }), /* @__PURE__ */ f("input", {
740
740
  type: "number",
741
- value: O.duration,
742
- onChange: (e) => k((t) => ({
741
+ value: M.duration,
742
+ onChange: (e) => N((t) => ({
743
743
  ...t,
744
744
  duration: parseInt(e.target.value) || 30
745
745
  })),
746
746
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
747
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
747
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
748
748
  className: "block text-sm font-medium text-text-primary mb-1",
749
749
  children: "Setup Time (min)"
750
- }), /* @__PURE__ */ l("input", {
750
+ }), /* @__PURE__ */ f("input", {
751
751
  type: "number",
752
- value: O.preparationTime,
753
- onChange: (e) => k((t) => ({
752
+ value: M.preparationTime,
753
+ onChange: (e) => N((t) => ({
754
754
  ...t,
755
755
  preparationTime: parseInt(e.target.value) || 0
756
756
  })),
757
757
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary"
758
758
  })] })]
759
759
  }),
760
- Q && /* @__PURE__ */ u("div", {
760
+ Q && /* @__PURE__ */ p("div", {
761
761
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
762
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
762
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
763
763
  className: "block text-sm font-medium text-text-primary mb-1",
764
764
  children: "Spice Level"
765
- }), /* @__PURE__ */ u("select", {
766
- value: O.spiceLevel,
767
- onChange: (e) => k((t) => ({
765
+ }), /* @__PURE__ */ p("select", {
766
+ value: M.spiceLevel,
767
+ onChange: (e) => N((t) => ({
768
768
  ...t,
769
769
  spiceLevel: e.target.value
770
770
  })),
771
771
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
772
772
  children: [
773
- /* @__PURE__ */ l("option", {
773
+ /* @__PURE__ */ f("option", {
774
774
  value: "none",
775
775
  children: "None"
776
776
  }),
777
- /* @__PURE__ */ l("option", {
777
+ /* @__PURE__ */ f("option", {
778
778
  value: "mild",
779
779
  children: "Mild"
780
780
  }),
781
- /* @__PURE__ */ l("option", {
781
+ /* @__PURE__ */ f("option", {
782
782
  value: "medium",
783
783
  children: "Medium"
784
784
  }),
785
- /* @__PURE__ */ l("option", {
785
+ /* @__PURE__ */ f("option", {
786
786
  value: "spicy",
787
787
  children: "Spicy"
788
788
  }),
789
- /* @__PURE__ */ l("option", {
789
+ /* @__PURE__ */ f("option", {
790
790
  value: "very-spicy",
791
791
  children: "Very Spicy"
792
792
  })
793
793
  ]
794
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
794
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
795
795
  className: "block text-sm font-medium text-text-primary mb-2",
796
796
  children: "Dietary Options"
797
- }), /* @__PURE__ */ l("div", {
797
+ }), /* @__PURE__ */ f("div", {
798
798
  className: "space-y-2",
799
799
  children: [
800
800
  "isVegetarian",
801
801
  "isVegan",
802
802
  "isGlutenFree"
803
- ].map((e) => /* @__PURE__ */ u("label", {
803
+ ].map((e) => /* @__PURE__ */ p("label", {
804
804
  className: "flex items-center gap-2 text-sm text-text-primary",
805
- children: [/* @__PURE__ */ l("input", {
805
+ children: [/* @__PURE__ */ f("input", {
806
806
  type: "checkbox",
807
- checked: O[e],
808
- onChange: (t) => k((n) => ({
807
+ checked: M[e],
808
+ onChange: (t) => N((n) => ({
809
809
  ...n,
810
810
  [e]: t.target.checked
811
811
  })),
@@ -814,91 +814,91 @@ var d = [
814
814
  }, e))
815
815
  })] })]
816
816
  }),
817
- Z && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
817
+ Z && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
818
818
  className: "block text-sm font-medium text-text-primary mb-1",
819
819
  children: "Service Type *"
820
- }), /* @__PURE__ */ u("select", {
821
- value: O.serviceType,
822
- onChange: (e) => k((t) => ({
820
+ }), /* @__PURE__ */ p("select", {
821
+ value: M.serviceType,
822
+ onChange: (e) => N((t) => ({
823
823
  ...t,
824
824
  serviceType: e.target.value
825
825
  })),
826
826
  className: "w-full sm:w-64 rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary",
827
827
  children: [
828
- /* @__PURE__ */ l("option", {
828
+ /* @__PURE__ */ f("option", {
829
829
  value: "instant",
830
830
  children: "Instant Service"
831
831
  }),
832
- /* @__PURE__ */ l("option", {
832
+ /* @__PURE__ */ f("option", {
833
833
  value: "appointment",
834
834
  children: "Appointment Based"
835
835
  }),
836
- /* @__PURE__ */ l("option", {
836
+ /* @__PURE__ */ f("option", {
837
837
  value: "recurring",
838
838
  children: "Recurring Service"
839
839
  }),
840
- /* @__PURE__ */ l("option", {
840
+ /* @__PURE__ */ f("option", {
841
841
  value: "consultation",
842
842
  children: "Consultation"
843
843
  })
844
844
  ]
845
845
  })] }),
846
- /* @__PURE__ */ u("div", { children: [
847
- /* @__PURE__ */ l("label", {
846
+ /* @__PURE__ */ p("div", { children: [
847
+ /* @__PURE__ */ f("label", {
848
848
  className: "block text-sm font-medium text-text-primary mb-1",
849
849
  children: "Tags (comma separated)"
850
850
  }),
851
- /* @__PURE__ */ l("input", {
851
+ /* @__PURE__ */ f("input", {
852
852
  type: "text",
853
- value: A,
854
- onChange: (e) => j(e.target.value),
853
+ value: P,
854
+ onChange: (e) => F(e.target.value),
855
855
  placeholder: Z ? "professional, certified, quick" : "popular, spicy, traditional",
856
856
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary"
857
857
  }),
858
- /* @__PURE__ */ u("p", {
858
+ /* @__PURE__ */ p("p", {
859
859
  className: "text-xs text-text-secondary mt-1",
860
860
  children: [
861
- A.split(",").map((e) => e.trim()).filter(Boolean).length,
861
+ P.split(",").map((e) => e.trim()).filter(Boolean).length,
862
862
  " ",
863
863
  "tags"
864
864
  ]
865
865
  })
866
866
  ] }),
867
- Q && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
867
+ Q && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
868
868
  className: "block text-sm font-medium text-text-primary mb-1",
869
869
  children: "Allergens (comma separated)"
870
- }), /* @__PURE__ */ l("input", {
870
+ }), /* @__PURE__ */ f("input", {
871
871
  type: "text",
872
- value: M,
873
- onChange: (e) => N(e.target.value),
872
+ value: I,
873
+ onChange: (e) => L(e.target.value),
874
874
  placeholder: "nuts, dairy, gluten, soy",
875
875
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary"
876
876
  })] }),
877
- Z && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
877
+ Z && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
878
878
  className: "block text-sm font-medium text-text-primary mb-1",
879
879
  children: "Service Requirements (comma separated)"
880
- }), /* @__PURE__ */ l("input", {
880
+ }), /* @__PURE__ */ f("input", {
881
881
  type: "text",
882
- value: P,
883
- onChange: (e) => F(e.target.value),
882
+ value: R,
883
+ onChange: (e) => z(e.target.value),
884
884
  placeholder: "advance booking, payment required, tools provided",
885
885
  className: "w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary"
886
886
  })] })
887
887
  ]
888
888
  }),
889
- /* @__PURE__ */ u("div", {
889
+ /* @__PURE__ */ p("div", {
890
890
  className: "flex gap-3 mt-6",
891
- children: [/* @__PURE__ */ l("button", {
891
+ children: [/* @__PURE__ */ f("button", {
892
892
  type: "button",
893
- onClick: () => T(!1),
893
+ onClick: () => k(!1),
894
894
  className: "flex-1 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
895
895
  children: "Cancel"
896
- }), /* @__PURE__ */ l("button", {
896
+ }), /* @__PURE__ */ f("button", {
897
897
  type: "button",
898
- onClick: de,
898
+ onClick: me,
899
899
  disabled: !$,
900
900
  className: t("flex-1 rounded-md px-4 py-2 text-sm font-medium transition-colors", $ ? "bg-accent text-text-primary hover:bg-accent/80" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
901
- children: E ? "Update Item" : "Add Item"
901
+ children: A ? "Update Item" : "Add Item"
902
902
  })]
903
903
  })
904
904
  ]
@@ -908,6 +908,6 @@ var d = [
908
908
  });
909
909
  };
910
910
  //#endregion
911
- export { _ as InventoryManagementPage };
911
+ export { b as InventoryManagementPage };
912
912
 
913
913
  //# sourceMappingURL=InventoryManagementPage.js.map