@burdenoff/microfe-subscriberbot 2026.625.1 → 2026.626.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/subscriberbot/pages/HomePage.js +19 -14
  2. package/dist/subscriberbot/pages/HomePage.js.map +1 -1
  3. package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js +66 -60
  4. package/dist/subscriberbot/pages/admin/AdminAnalyticsPage.js.map +1 -1
  5. package/dist/subscriberbot/pages/admin/AdminDashboard.js +83 -44
  6. package/dist/subscriberbot/pages/admin/AdminDashboard.js.map +1 -1
  7. package/dist/subscriberbot/pages/admin/AdminFinancialPage.js +38 -32
  8. package/dist/subscriberbot/pages/admin/AdminFinancialPage.js.map +1 -1
  9. package/dist/subscriberbot/pages/admin/AdminOrdersPage.js +226 -221
  10. package/dist/subscriberbot/pages/admin/AdminOrdersPage.js.map +1 -1
  11. package/dist/subscriberbot/pages/admin/AdminProfilePage.js +127 -125
  12. package/dist/subscriberbot/pages/admin/AdminProfilePage.js.map +1 -1
  13. package/dist/subscriberbot/pages/admin/AdminSettingsPage.js +235 -230
  14. package/dist/subscriberbot/pages/admin/AdminSettingsPage.js.map +1 -1
  15. package/dist/subscriberbot/pages/admin/CartManagementPage.js +267 -262
  16. package/dist/subscriberbot/pages/admin/CartManagementPage.js.map +1 -1
  17. package/dist/subscriberbot/pages/admin/UserManagementPage.js +267 -262
  18. package/dist/subscriberbot/pages/admin/UserManagementPage.js.map +1 -1
  19. package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js +46 -41
  20. package/dist/subscriberbot/pages/cart-owner/AnalyticsDashboard.js.map +1 -1
  21. package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js +257 -252
  22. package/dist/subscriberbot/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  23. package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js +231 -194
  24. package/dist/subscriberbot/pages/cart-owner/CartOwnerDashboard.js.map +1 -1
  25. package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js +167 -162
  26. package/dist/subscriberbot/pages/cart-owner/CartOwnerProfilePage.js.map +1 -1
  27. package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js +128 -126
  28. package/dist/subscriberbot/pages/cart-owner/CartServiceConfigPage.js.map +1 -1
  29. package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js +297 -300
  30. package/dist/subscriberbot/pages/cart-owner/InventoryManagementPage.js.map +1 -1
  31. package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js +220 -223
  32. package/dist/subscriberbot/pages/cart-owner/OrderManagementPage.js.map +1 -1
  33. package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js +250 -245
  34. package/dist/subscriberbot/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/subscriberbot/pages/common/HelpSupportPage.js +94 -96
  36. package/dist/subscriberbot/pages/common/HelpSupportPage.js.map +1 -1
  37. package/dist/subscriberbot/pages/common/NotificationCenterPage.js +48 -42
  38. package/dist/subscriberbot/pages/common/NotificationCenterPage.js.map +1 -1
  39. package/dist/subscriberbot/pages/common/SettingsPage.js +745 -736
  40. package/dist/subscriberbot/pages/common/SettingsPage.js.map +1 -1
  41. package/dist/subscriberbot/pages/customer/BookingDetailsPage.js +353 -321
  42. package/dist/subscriberbot/pages/customer/BookingDetailsPage.js.map +1 -1
  43. package/dist/subscriberbot/pages/customer/CartDetailPage.js +258 -225
  44. package/dist/subscriberbot/pages/customer/CartDetailPage.js.map +1 -1
  45. package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js +82 -76
  46. package/dist/subscriberbot/pages/customer/CartDiscoveryPage.js.map +1 -1
  47. package/dist/subscriberbot/pages/customer/CheckoutPage.js +212 -215
  48. package/dist/subscriberbot/pages/customer/CheckoutPage.js.map +1 -1
  49. package/dist/subscriberbot/pages/customer/CustomerDashboard.js +416 -381
  50. package/dist/subscriberbot/pages/customer/CustomerDashboard.js.map +1 -1
  51. package/dist/subscriberbot/pages/customer/CustomerProfilePage.js +488 -479
  52. package/dist/subscriberbot/pages/customer/CustomerProfilePage.js.map +1 -1
  53. package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js +521 -512
  54. package/dist/subscriberbot/pages/customer/DirectServiceBookingPage.js.map +1 -1
  55. package/dist/subscriberbot/pages/customer/FavoritesPage.js +57 -51
  56. package/dist/subscriberbot/pages/customer/FavoritesPage.js.map +1 -1
  57. package/dist/subscriberbot/pages/customer/OrderHistoryPage.js +56 -50
  58. package/dist/subscriberbot/pages/customer/OrderHistoryPage.js.map +1 -1
  59. package/dist/subscriberbot/pages/customer/OrderTrackingPage.js +65 -60
  60. package/dist/subscriberbot/pages/customer/OrderTrackingPage.js.map +1 -1
  61. package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js +79 -73
  62. package/dist/subscriberbot/pages/customer/PaymentMethodsPage.js.map +1 -1
  63. package/dist/subscriberbot/pages/customer/ReviewsPage.js +68 -62
  64. package/dist/subscriberbot/pages/customer/ReviewsPage.js.map +1 -1
  65. package/dist/subscriberbot/pages/customer/SavedAddressesPage.js +60 -54
  66. package/dist/subscriberbot/pages/customer/SavedAddressesPage.js.map +1 -1
  67. package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js +292 -255
  68. package/dist/subscriberbot/pages/investor/InvestmentDetailsPage.js.map +1 -1
  69. package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js +237 -231
  70. package/dist/subscriberbot/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  71. package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js +60 -54
  72. package/dist/subscriberbot/pages/investor/InvestorAnalyticsPage.js.map +1 -1
  73. package/dist/subscriberbot/pages/investor/InvestorDashboard.js +350 -319
  74. package/dist/subscriberbot/pages/investor/InvestorDashboard.js.map +1 -1
  75. package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js +106 -100
  76. package/dist/subscriberbot/pages/investor/InvestorInvestmentsPage.js.map +1 -1
  77. package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js +51 -45
  78. package/dist/subscriberbot/pages/investor/InvestorPortfolioPage.js.map +1 -1
  79. package/dist/subscriberbot/pages/investor/InvestorProfilePage.js +387 -382
  80. package/dist/subscriberbot/pages/investor/InvestorProfilePage.js.map +1 -1
  81. package/dist/subscriberbot/pages/worker/TaskDetailsPage.js +320 -282
  82. package/dist/subscriberbot/pages/worker/TaskDetailsPage.js.map +1 -1
  83. package/dist/subscriberbot/pages/worker/WorkerDashboard.js +92 -61
  84. package/dist/subscriberbot/pages/worker/WorkerDashboard.js.map +1 -1
  85. package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js +82 -77
  86. package/dist/subscriberbot/pages/worker/WorkerOrdersPage.js.map +1 -1
  87. package/dist/subscriberbot/pages/worker/WorkerProfilePage.js +82 -77
  88. package/dist/subscriberbot/pages/worker/WorkerProfilePage.js.map +1 -1
  89. package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js +348 -340
  90. package/dist/subscriberbot/pages/worker/WorkerSchedulePage.js.map +1 -1
  91. package/package.json +3 -3
@@ -1,13 +1,15 @@
1
1
  import { useSubscriberBot as e } from "../../context/SubscriberBotContext.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/subscriberbot/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-status-success-text",
197
199
  label: "Available"
198
200
  } : e.stock === 0 ? {
@@ -204,165 +206,169 @@ var d = [
204
206
  } : {
205
207
  color: "text-status-success-text",
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-status-success-border/30 bg-status-success-bg/10" : "border-status-error-border/30 bg-status-error-bg/10"),
222
- children: [I.type === "success" ? /* @__PURE__ */ l(te, { className: "h-4 w-4 text-status-success-text" }) : /* @__PURE__ */ l(ee, { className: "h-4 w-4 text-status-error-text" }), /* @__PURE__ */ l("span", {
223
- className: t("text-sm font-medium", I.type === "success" ? "text-status-success-text" : "text-status-error-text"),
224
- children: I.text
222
+ /* @__PURE__ */ f(m, {
223
+ icon: /* @__PURE__ */ f(c, { className: "h-4 w-4" }),
224
+ children: "Everything you sell lives here. Add new products or services, set prices, and mark items available or out of stock so customers only see what they can actually order. Keep an eye on the low-stock count so popular items never run dry mid-rush."
225
+ }),
226
+ B && /* @__PURE__ */ p("div", {
227
+ className: t("flex items-center gap-2 rounded-lg border p-3", B.type === "success" ? "border-status-success-border/30 bg-status-success-bg/10" : "border-status-error-border/30 bg-status-error-bg/10"),
228
+ children: [B.type === "success" ? /* @__PURE__ */ f(s, { className: "h-4 w-4 text-status-success-text" }) : /* @__PURE__ */ f(te, { className: "h-4 w-4 text-status-error-text" }), /* @__PURE__ */ f("span", {
229
+ className: t("text-sm font-medium", B.type === "success" ? "text-status-success-text" : "text-status-error-text"),
230
+ children: B.text
225
231
  })]
226
232
  }),
227
- /* @__PURE__ */ u("div", {
233
+ /* @__PURE__ */ p(oe, {
228
234
  className: "grid grid-cols-2 lg:grid-cols-4 gap-3",
229
235
  children: [
230
- /* @__PURE__ */ u("div", {
236
+ /* @__PURE__ */ p("div", {
231
237
  className: "rounded-lg border border-border-seam bg-bg-surface p-4 shadow-sm",
232
- children: [/* @__PURE__ */ l("p", {
238
+ children: [/* @__PURE__ */ f("p", {
233
239
  className: "text-xs text-text-secondary",
234
240
  children: "Total Items"
235
- }), /* @__PURE__ */ l("p", {
241
+ }), /* @__PURE__ */ f("p", {
236
242
  className: "text-2xl font-bold text-text-primary",
237
- children: B
243
+ children: ue
238
244
  })]
239
245
  }),
240
- /* @__PURE__ */ u("div", {
246
+ /* @__PURE__ */ p("div", {
241
247
  className: "rounded-lg border border-border-seam bg-bg-surface p-4 shadow-sm",
242
- children: [/* @__PURE__ */ l("p", {
248
+ children: [/* @__PURE__ */ f("p", {
243
249
  className: "text-xs text-text-secondary",
244
250
  children: "Available"
245
- }), /* @__PURE__ */ l("p", {
251
+ }), /* @__PURE__ */ f("p", {
246
252
  className: "text-2xl font-bold text-status-success-text",
247
- children: V
253
+ children: de
248
254
  })]
249
255
  }),
250
- /* @__PURE__ */ u("div", {
256
+ /* @__PURE__ */ p("div", {
251
257
  className: "rounded-lg border border-border-seam bg-bg-surface p-4 shadow-sm",
252
- children: [/* @__PURE__ */ l("p", {
258
+ children: [/* @__PURE__ */ f("p", {
253
259
  className: "text-xs text-text-secondary",
254
260
  children: "Out of Stock"
255
- }), /* @__PURE__ */ l("p", {
261
+ }), /* @__PURE__ */ f("p", {
256
262
  className: "text-2xl font-bold text-status-error-text",
257
- children: H
263
+ children: fe
258
264
  })]
259
265
  }),
260
- /* @__PURE__ */ u("div", {
266
+ /* @__PURE__ */ p("div", {
261
267
  className: "rounded-lg border border-border-seam bg-bg-surface p-4 shadow-sm",
262
- children: [/* @__PURE__ */ l("p", {
268
+ children: [/* @__PURE__ */ f("p", {
263
269
  className: "text-xs text-text-secondary",
264
270
  children: "Low Stock"
265
- }), /* @__PURE__ */ l("p", {
271
+ }), /* @__PURE__ */ f("p", {
266
272
  className: "text-2xl font-bold text-status-warning-text",
267
- children: U
273
+ children: pe
268
274
  })]
269
275
  })
270
276
  ]
271
277
  }),
272
- /* @__PURE__ */ u("div", {
278
+ /* @__PURE__ */ p("div", {
273
279
  className: "rounded-lg border border-border-seam 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-seam 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-seam 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-seam 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-seam 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-seam 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-seam 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-seam 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,130 @@ var d = [
371
377
  ]
372
378
  })]
373
379
  }),
374
- z.length === 0 ? /* @__PURE__ */ u("div", {
375
- className: "rounded-lg border border-border-seam 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", {
387
- className: "flex flex-wrap justify-center gap-3",
388
- children: [/* @__PURE__ */ u("button", {
389
- type: "button",
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", {
394
- type: "button",
395
- onClick: () => {
396
- v(""), b(""), S(""), w("name");
397
- },
398
- className: "rounded-md border border-border-seam px-4 py-2 text-sm text-text-primary hover:bg-bg-sunken",
399
- children: "Clear Filters"
400
- })]
401
- })
402
- ]
403
- }) : /* @__PURE__ */ u(se, { children: [/* @__PURE__ */ l("div", {
380
+ U.length === 0 ? /* @__PURE__ */ f(r, {
381
+ illustration: b || S || w ? "empty-search" : "empty-files",
382
+ title: "No items found",
383
+ 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!",
384
+ action: /* @__PURE__ */ p("div", {
385
+ className: "flex flex-wrap justify-center gap-3",
386
+ children: [/* @__PURE__ */ p("button", {
387
+ type: "button",
388
+ onClick: G,
389
+ 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",
390
+ children: [/* @__PURE__ */ f(l, { className: "h-4 w-4" }), "Add Your First Item"]
391
+ }), (b || S || w) && /* @__PURE__ */ f("button", {
392
+ type: "button",
393
+ onClick: () => {
394
+ x(""), C(""), T(""), D("name");
395
+ },
396
+ className: "rounded-md border border-border-seam px-4 py-2 text-sm text-text-primary hover:bg-bg-sunken",
397
+ children: "Clear Filters"
398
+ })]
399
+ })
400
+ }) : /* @__PURE__ */ p(ae, { children: [/* @__PURE__ */ f("div", {
404
401
  className: "hidden lg:block rounded-lg border border-border-seam bg-bg-surface shadow-sm overflow-hidden",
405
- children: /* @__PURE__ */ l("div", {
402
+ children: /* @__PURE__ */ f("div", {
406
403
  className: "overflow-x-auto",
407
- children: /* @__PURE__ */ u("table", {
404
+ children: /* @__PURE__ */ p("table", {
408
405
  className: "w-full text-sm",
409
- children: [/* @__PURE__ */ l("thead", { children: /* @__PURE__ */ u("tr", {
406
+ children: [/* @__PURE__ */ f("thead", { children: /* @__PURE__ */ p("tr", {
410
407
  className: "border-b border-border-seam bg-bg-sunken/50",
411
408
  children: [
412
- /* @__PURE__ */ l("th", {
409
+ /* @__PURE__ */ f("th", {
413
410
  className: "px-5 py-3 text-left font-medium text-text-secondary",
414
411
  children: "Item"
415
412
  }),
416
- /* @__PURE__ */ l("th", {
413
+ /* @__PURE__ */ f("th", {
417
414
  className: "px-5 py-3 text-left font-medium text-text-secondary",
418
415
  children: "Category"
419
416
  }),
420
- /* @__PURE__ */ l("th", {
417
+ /* @__PURE__ */ f("th", {
421
418
  className: "px-5 py-3 text-right font-medium text-text-secondary",
422
419
  children: "Price"
423
420
  }),
424
- /* @__PURE__ */ l("th", {
421
+ /* @__PURE__ */ f("th", {
425
422
  className: "px-5 py-3 text-left font-medium text-text-secondary",
426
423
  children: "Stock/Status"
427
424
  }),
428
- /* @__PURE__ */ l("th", {
425
+ /* @__PURE__ */ f("th", {
429
426
  className: "px-5 py-3 text-center font-medium text-text-secondary",
430
427
  children: "Available"
431
428
  }),
432
- /* @__PURE__ */ l("th", {
429
+ /* @__PURE__ */ f("th", {
433
430
  className: "px-5 py-3 text-right font-medium text-text-secondary",
434
431
  children: "Actions"
435
432
  })
436
433
  ]
437
- }) }), /* @__PURE__ */ l("tbody", { children: z.map((e) => {
434
+ }) }), /* @__PURE__ */ f("tbody", { children: U.map((e) => {
438
435
  let n = X(e);
439
- return /* @__PURE__ */ u("tr", {
436
+ return /* @__PURE__ */ p("tr", {
440
437
  className: "border-b border-border-seam last:border-0 hover:bg-bg-sunken/30 transition-colors",
441
438
  children: [
442
- /* @__PURE__ */ l("td", {
439
+ /* @__PURE__ */ f("td", {
443
440
  className: "px-5 py-3",
444
- children: /* @__PURE__ */ u("div", {
441
+ children: /* @__PURE__ */ p("div", {
445
442
  className: "flex items-center gap-3",
446
- children: [/* @__PURE__ */ l("div", {
443
+ children: [/* @__PURE__ */ f("div", {
447
444
  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", {
445
+ children: /* @__PURE__ */ f(c, { className: "h-4 w-4 text-text-secondary" })
446
+ }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
450
447
  className: "font-medium text-text-primary",
451
448
  children: e.name
452
- }), /* @__PURE__ */ u("p", {
449
+ }), /* @__PURE__ */ p("p", {
453
450
  className: "text-xs text-text-secondary line-clamp-1",
454
451
  children: [e.description.slice(0, 50), "..."]
455
452
  })] })]
456
453
  })
457
454
  }),
458
- /* @__PURE__ */ l("td", {
455
+ /* @__PURE__ */ f("td", {
459
456
  className: "px-5 py-3",
460
- children: /* @__PURE__ */ l("span", {
457
+ children: /* @__PURE__ */ f("span", {
461
458
  className: "inline-flex rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs font-medium text-text-secondary",
462
459
  children: e.category
463
460
  })
464
461
  }),
465
- /* @__PURE__ */ u("td", {
462
+ /* @__PURE__ */ p("td", {
466
463
  className: "px-5 py-3 text-right",
467
- children: [/* @__PURE__ */ l("p", {
464
+ children: [/* @__PURE__ */ f("p", {
468
465
  className: "font-medium text-text-primary",
469
- children: r(e.price, { minimumFractionDigits: 0 })
470
- }), e.originalPrice && /* @__PURE__ */ l("p", {
466
+ children: i(e.price, { minimumFractionDigits: 0 })
467
+ }), e.originalPrice && /* @__PURE__ */ f("p", {
471
468
  className: "text-xs text-text-secondary line-through",
472
- children: r(e.originalPrice, { minimumFractionDigits: 0 })
469
+ children: i(e.originalPrice, { minimumFractionDigits: 0 })
473
470
  })]
474
471
  }),
475
- /* @__PURE__ */ l("td", {
472
+ /* @__PURE__ */ f("td", {
476
473
  className: "px-5 py-3",
477
- children: /* @__PURE__ */ l("span", {
474
+ children: /* @__PURE__ */ f("span", {
478
475
  className: t("text-sm font-medium", n.color),
479
476
  children: n.label
480
477
  })
481
478
  }),
482
- /* @__PURE__ */ l("td", {
479
+ /* @__PURE__ */ f("td", {
483
480
  className: "px-5 py-3 text-center",
484
- children: /* @__PURE__ */ l("button", {
481
+ children: /* @__PURE__ */ f("button", {
485
482
  type: "button",
486
483
  onClick: () => J(e.id, !e.isAvailable),
487
484
  className: t("h-6 w-11 rounded-full transition-colors relative inline-block", e.isAvailable ? "bg-status-info-text" : "bg-muted-foreground/30"),
488
- children: /* @__PURE__ */ l("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-bg-surface transition-transform", e.isAvailable ? "translate-x-5" : "translate-x-0.5") })
485
+ children: /* @__PURE__ */ f("div", { className: t("absolute top-0.5 h-5 w-5 rounded-full bg-bg-surface transition-transform", e.isAvailable ? "translate-x-5" : "translate-x-0.5") })
489
486
  })
490
487
  }),
491
- /* @__PURE__ */ l("td", {
488
+ /* @__PURE__ */ f("td", {
492
489
  className: "px-5 py-3",
493
- children: /* @__PURE__ */ u("div", {
490
+ children: /* @__PURE__ */ p("div", {
494
491
  className: "flex items-center justify-end gap-1",
495
- children: [/* @__PURE__ */ l("button", {
492
+ children: [/* @__PURE__ */ f("button", {
496
493
  type: "button",
497
494
  onClick: () => K(e),
498
495
  className: "rounded p-1.5 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors",
499
496
  title: "Edit",
500
- children: /* @__PURE__ */ l(ne, { className: "h-4 w-4" })
501
- }), /* @__PURE__ */ l("button", {
497
+ children: /* @__PURE__ */ f(ne, { className: "h-4 w-4" })
498
+ }), /* @__PURE__ */ f("button", {
502
499
  type: "button",
503
500
  onClick: () => q(e.id),
504
501
  className: "rounded p-1.5 text-text-secondary hover:bg-status-error-bg/10 hover:text-status-error-text transition-colors",
505
502
  title: "Delete",
506
- children: /* @__PURE__ */ l(ie, { className: "h-4 w-4" })
503
+ children: /* @__PURE__ */ f(d, { className: "h-4 w-4" })
507
504
  })]
508
505
  })
509
506
  })
@@ -512,67 +509,67 @@ var d = [
512
509
  }) })]
513
510
  })
514
511
  })
515
- }), /* @__PURE__ */ l("div", {
512
+ }), /* @__PURE__ */ f("div", {
516
513
  className: "lg:hidden space-y-3",
517
- children: z.map((e) => {
514
+ children: U.map((e) => {
518
515
  let n = X(e);
519
- return /* @__PURE__ */ l("div", {
516
+ return /* @__PURE__ */ f("div", {
520
517
  className: "rounded-lg border border-border-seam bg-bg-surface p-4 shadow-sm",
521
- children: /* @__PURE__ */ u("div", {
518
+ children: /* @__PURE__ */ p("div", {
522
519
  className: "flex items-start gap-3",
523
- children: [/* @__PURE__ */ l("div", {
520
+ children: [/* @__PURE__ */ f("div", {
524
521
  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", {
522
+ children: /* @__PURE__ */ f(c, { className: "h-6 w-6 text-text-secondary" })
523
+ }), /* @__PURE__ */ p("div", {
527
524
  className: "flex-1 min-w-0",
528
525
  children: [
529
- /* @__PURE__ */ u("div", {
526
+ /* @__PURE__ */ p("div", {
530
527
  className: "flex items-start justify-between mb-1",
531
- children: [/* @__PURE__ */ u("div", {
528
+ children: [/* @__PURE__ */ p("div", {
532
529
  className: "flex-1",
533
- children: [/* @__PURE__ */ l("h3", {
530
+ children: [/* @__PURE__ */ f("h3", {
534
531
  className: "text-sm font-medium text-text-primary line-clamp-1",
535
532
  children: e.name
536
- }), /* @__PURE__ */ l("p", {
533
+ }), /* @__PURE__ */ f("p", {
537
534
  className: "text-xs text-text-secondary mt-0.5 line-clamp-2",
538
535
  children: e.description
539
536
  })]
540
- }), /* @__PURE__ */ l("button", {
537
+ }), /* @__PURE__ */ f("button", {
541
538
  type: "button",
542
539
  onClick: () => J(e.id, !e.isAvailable),
543
540
  className: t("h-5 w-9 rounded-full transition-colors relative ml-2 shrink-0", e.isAvailable ? "bg-status-info-text" : "bg-muted-foreground/30"),
544
- children: /* @__PURE__ */ l("div", { className: t("absolute top-0.5 h-4 w-4 rounded-full bg-bg-surface transition-transform", e.isAvailable ? "translate-x-4" : "translate-x-0.5") })
541
+ children: /* @__PURE__ */ f("div", { className: t("absolute top-0.5 h-4 w-4 rounded-full bg-bg-surface transition-transform", e.isAvailable ? "translate-x-4" : "translate-x-0.5") })
545
542
  })]
546
543
  }),
547
- /* @__PURE__ */ u("div", {
544
+ /* @__PURE__ */ p("div", {
548
545
  className: "flex flex-wrap items-center gap-2 mt-2 text-xs",
549
- children: [/* @__PURE__ */ l("span", {
546
+ children: [/* @__PURE__ */ f("span", {
550
547
  className: "px-2 py-0.5 rounded-full bg-bg-sunken text-text-secondary",
551
548
  children: e.category
552
- }), /* @__PURE__ */ l("span", {
549
+ }), /* @__PURE__ */ f("span", {
553
550
  className: t("font-medium", n.color),
554
551
  children: n.label
555
552
  })]
556
553
  }),
557
- /* @__PURE__ */ u("div", {
554
+ /* @__PURE__ */ p("div", {
558
555
  className: "flex items-center justify-between mt-3",
559
- children: [/* @__PURE__ */ u("div", {
556
+ children: [/* @__PURE__ */ p("div", {
560
557
  className: "flex items-center gap-2",
561
- children: [/* @__PURE__ */ l("span", {
558
+ children: [/* @__PURE__ */ f("span", {
562
559
  className: "font-semibold text-text-primary",
563
- children: r(e.price, { minimumFractionDigits: 0 })
564
- }), e.originalPrice && /* @__PURE__ */ l("span", {
560
+ children: i(e.price, { minimumFractionDigits: 0 })
561
+ }), e.originalPrice && /* @__PURE__ */ f("span", {
565
562
  className: "text-xs text-text-secondary line-through",
566
- children: r(e.originalPrice, { minimumFractionDigits: 0 })
563
+ children: i(e.originalPrice, { minimumFractionDigits: 0 })
567
564
  })]
568
- }), /* @__PURE__ */ u("div", {
565
+ }), /* @__PURE__ */ p("div", {
569
566
  className: "flex gap-1",
570
- children: [/* @__PURE__ */ l("button", {
567
+ children: [/* @__PURE__ */ f("button", {
571
568
  type: "button",
572
569
  onClick: () => K(e),
573
570
  className: "rounded px-2 py-1 text-xs border border-border-seam text-text-primary hover:bg-bg-sunken",
574
571
  children: "Edit"
575
- }), /* @__PURE__ */ l("button", {
572
+ }), /* @__PURE__ */ f("button", {
576
573
  type: "button",
577
574
  onClick: () => q(e.id),
578
575
  className: "rounded px-2 py-1 text-xs border border-border-seam text-status-error-text hover:bg-status-error-bg/10",
@@ -587,75 +584,75 @@ var d = [
587
584
  })
588
585
  })] })
589
586
  ]
590
- }), ue && /* @__PURE__ */ l("div", {
587
+ }), O && /* @__PURE__ */ f("div", {
591
588
  className: "fixed inset-0 z-50 flex items-center justify-center bg-bg-canvas/50 p-4",
592
- children: /* @__PURE__ */ l("div", {
589
+ children: /* @__PURE__ */ f("div", {
593
590
  className: "w-full max-w-2xl max-h-[90vh] overflow-y-auto rounded-lg border border-border-seam bg-bg-surface shadow-xl",
594
- children: /* @__PURE__ */ u("div", {
591
+ children: /* @__PURE__ */ p("div", {
595
592
  className: "p-6",
596
593
  children: [
597
- /* @__PURE__ */ u("div", {
594
+ /* @__PURE__ */ p("div", {
598
595
  className: "flex items-center justify-between mb-4",
599
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h3", {
596
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h3", {
600
597
  className: "text-lg font-semibold text-text-primary",
601
- children: E ? "Edit Item" : "Add New Item"
602
- }), O.category && /* @__PURE__ */ u("p", {
598
+ children: A ? "Edit Item" : "Add New Item"
599
+ }), M.category && /* @__PURE__ */ p("p", {
603
600
  className: "text-sm text-text-secondary mt-0.5",
604
601
  children: [
605
602
  "Type: ",
606
603
  Z ? "Service" : "Product",
607
604
  " | Category: ",
608
- O.category
605
+ M.category
609
606
  ]
610
- })] }), /* @__PURE__ */ l("button", {
607
+ })] }), /* @__PURE__ */ f("button", {
611
608
  type: "button",
612
- onClick: () => T(!1),
609
+ onClick: () => k(!1),
613
610
  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" })
611
+ children: /* @__PURE__ */ f(ie, { className: "h-5 w-5" })
615
612
  })]
616
613
  }),
617
- /* @__PURE__ */ u("div", {
614
+ /* @__PURE__ */ p("div", {
618
615
  className: "space-y-4",
619
616
  children: [
620
- /* @__PURE__ */ u("div", {
617
+ /* @__PURE__ */ p("div", {
621
618
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
622
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
619
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
623
620
  className: "block text-sm font-medium text-text-primary mb-1",
624
621
  children: "Item Name *"
625
- }), /* @__PURE__ */ l("input", {
622
+ }), /* @__PURE__ */ f("input", {
626
623
  type: "text",
627
- value: O.name,
628
- onChange: (e) => k((t) => ({
624
+ value: M.name,
625
+ onChange: (e) => N((t) => ({
629
626
  ...t,
630
627
  name: e.target.value
631
628
  })),
632
629
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary",
633
630
  placeholder: "Enter item name"
634
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
631
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
635
632
  className: "block text-sm font-medium text-text-primary mb-1",
636
633
  children: "Category *"
637
- }), /* @__PURE__ */ u("select", {
638
- value: O.category,
639
- onChange: (e) => k((t) => ({
634
+ }), /* @__PURE__ */ p("select", {
635
+ value: M.category,
636
+ onChange: (e) => N((t) => ({
640
637
  ...t,
641
638
  category: e.target.value
642
639
  })),
643
640
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary",
644
- children: [/* @__PURE__ */ l("option", {
641
+ children: [/* @__PURE__ */ f("option", {
645
642
  value: "",
646
643
  children: "Select category"
647
- }), R.map((e) => /* @__PURE__ */ l("option", {
644
+ }), H.map((e) => /* @__PURE__ */ f("option", {
648
645
  value: e,
649
646
  children: e
650
647
  }, e))]
651
648
  })] })]
652
649
  }),
653
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
650
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
654
651
  className: "block text-sm font-medium text-text-primary mb-1",
655
652
  children: "Description *"
656
- }), /* @__PURE__ */ l("textarea", {
657
- value: O.description,
658
- onChange: (e) => k((t) => ({
653
+ }), /* @__PURE__ */ f("textarea", {
654
+ value: M.description,
655
+ onChange: (e) => N((t) => ({
659
656
  ...t,
660
657
  description: e.target.value
661
658
  })),
@@ -663,26 +660,26 @@ var d = [
663
660
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary resize-none",
664
661
  placeholder: "Describe the offering..."
665
662
  })] }),
666
- /* @__PURE__ */ u("div", {
663
+ /* @__PURE__ */ p("div", {
667
664
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
668
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
665
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
669
666
  className: "block text-sm font-medium text-text-primary mb-1",
670
667
  children: "Price *"
671
- }), /* @__PURE__ */ l("input", {
668
+ }), /* @__PURE__ */ f("input", {
672
669
  type: "number",
673
- value: O.price,
674
- onChange: (e) => k((t) => ({
670
+ value: M.price,
671
+ onChange: (e) => N((t) => ({
675
672
  ...t,
676
673
  price: parseInt(e.target.value) || 0
677
674
  })),
678
675
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary"
679
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
676
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
680
677
  className: "block text-sm font-medium text-text-primary mb-1",
681
678
  children: "Original Price"
682
- }), /* @__PURE__ */ l("input", {
679
+ }), /* @__PURE__ */ f("input", {
683
680
  type: "number",
684
- value: O.originalPrice ?? "",
685
- onChange: (e) => k((t) => ({
681
+ value: M.originalPrice ?? "",
682
+ onChange: (e) => N((t) => ({
686
683
  ...t,
687
684
  originalPrice: e.target.value ? parseInt(e.target.value) : void 0
688
685
  })),
@@ -690,40 +687,40 @@ var d = [
690
687
  placeholder: "Optional"
691
688
  })] })]
692
689
  }),
693
- !Z && /* @__PURE__ */ u("div", {
690
+ !Z && /* @__PURE__ */ p("div", {
694
691
  className: "grid grid-cols-1 sm:grid-cols-3 gap-4",
695
692
  children: [
696
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
693
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
697
694
  className: "block text-sm font-medium text-text-primary mb-1",
698
695
  children: "Stock Quantity *"
699
- }), /* @__PURE__ */ l("input", {
696
+ }), /* @__PURE__ */ f("input", {
700
697
  type: "number",
701
- value: O.stock,
702
- onChange: (e) => k((t) => ({
698
+ value: M.stock,
699
+ onChange: (e) => N((t) => ({
703
700
  ...t,
704
701
  stock: parseInt(e.target.value) || 0
705
702
  })),
706
703
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary"
707
704
  })] }),
708
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
705
+ /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
709
706
  className: "block text-sm font-medium text-text-primary mb-1",
710
707
  children: "Preparation Time (min)"
711
- }), /* @__PURE__ */ l("input", {
708
+ }), /* @__PURE__ */ f("input", {
712
709
  type: "number",
713
- value: O.preparationTime,
714
- onChange: (e) => k((t) => ({
710
+ value: M.preparationTime,
711
+ onChange: (e) => N((t) => ({
715
712
  ...t,
716
713
  preparationTime: parseInt(e.target.value) || 0
717
714
  })),
718
715
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary"
719
716
  })] }),
720
- Q && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
717
+ Q && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
721
718
  className: "block text-sm font-medium text-text-primary mb-1",
722
719
  children: "Calories"
723
- }), /* @__PURE__ */ l("input", {
720
+ }), /* @__PURE__ */ f("input", {
724
721
  type: "number",
725
- value: O.calories,
726
- onChange: (e) => k((t) => ({
722
+ value: M.calories,
723
+ onChange: (e) => N((t) => ({
727
724
  ...t,
728
725
  calories: parseInt(e.target.value) || 0
729
726
  })),
@@ -731,81 +728,81 @@ var d = [
731
728
  })] })
732
729
  ]
733
730
  }),
734
- Z && /* @__PURE__ */ u("div", {
731
+ Z && /* @__PURE__ */ p("div", {
735
732
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
736
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
733
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
737
734
  className: "block text-sm font-medium text-text-primary mb-1",
738
735
  children: "Service Duration (min) *"
739
- }), /* @__PURE__ */ l("input", {
736
+ }), /* @__PURE__ */ f("input", {
740
737
  type: "number",
741
- value: O.duration,
742
- onChange: (e) => k((t) => ({
738
+ value: M.duration,
739
+ onChange: (e) => N((t) => ({
743
740
  ...t,
744
741
  duration: parseInt(e.target.value) || 30
745
742
  })),
746
743
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary"
747
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
744
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
748
745
  className: "block text-sm font-medium text-text-primary mb-1",
749
746
  children: "Setup Time (min)"
750
- }), /* @__PURE__ */ l("input", {
747
+ }), /* @__PURE__ */ f("input", {
751
748
  type: "number",
752
- value: O.preparationTime,
753
- onChange: (e) => k((t) => ({
749
+ value: M.preparationTime,
750
+ onChange: (e) => N((t) => ({
754
751
  ...t,
755
752
  preparationTime: parseInt(e.target.value) || 0
756
753
  })),
757
754
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary"
758
755
  })] })]
759
756
  }),
760
- Q && /* @__PURE__ */ u("div", {
757
+ Q && /* @__PURE__ */ p("div", {
761
758
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
762
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
759
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
763
760
  className: "block text-sm font-medium text-text-primary mb-1",
764
761
  children: "Spice Level"
765
- }), /* @__PURE__ */ u("select", {
766
- value: O.spiceLevel,
767
- onChange: (e) => k((t) => ({
762
+ }), /* @__PURE__ */ p("select", {
763
+ value: M.spiceLevel,
764
+ onChange: (e) => N((t) => ({
768
765
  ...t,
769
766
  spiceLevel: e.target.value
770
767
  })),
771
768
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary",
772
769
  children: [
773
- /* @__PURE__ */ l("option", {
770
+ /* @__PURE__ */ f("option", {
774
771
  value: "none",
775
772
  children: "None"
776
773
  }),
777
- /* @__PURE__ */ l("option", {
774
+ /* @__PURE__ */ f("option", {
778
775
  value: "mild",
779
776
  children: "Mild"
780
777
  }),
781
- /* @__PURE__ */ l("option", {
778
+ /* @__PURE__ */ f("option", {
782
779
  value: "medium",
783
780
  children: "Medium"
784
781
  }),
785
- /* @__PURE__ */ l("option", {
782
+ /* @__PURE__ */ f("option", {
786
783
  value: "spicy",
787
784
  children: "Spicy"
788
785
  }),
789
- /* @__PURE__ */ l("option", {
786
+ /* @__PURE__ */ f("option", {
790
787
  value: "very-spicy",
791
788
  children: "Very Spicy"
792
789
  })
793
790
  ]
794
- })] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
791
+ })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
795
792
  className: "block text-sm font-medium text-text-primary mb-2",
796
793
  children: "Dietary Options"
797
- }), /* @__PURE__ */ l("div", {
794
+ }), /* @__PURE__ */ f("div", {
798
795
  className: "space-y-2",
799
796
  children: [
800
797
  "isVegetarian",
801
798
  "isVegan",
802
799
  "isGlutenFree"
803
- ].map((e) => /* @__PURE__ */ u("label", {
800
+ ].map((e) => /* @__PURE__ */ p("label", {
804
801
  className: "flex items-center gap-2 text-sm text-text-primary",
805
- children: [/* @__PURE__ */ l("input", {
802
+ children: [/* @__PURE__ */ f("input", {
806
803
  type: "checkbox",
807
- checked: O[e],
808
- onChange: (t) => k((n) => ({
804
+ checked: M[e],
805
+ onChange: (t) => N((n) => ({
809
806
  ...n,
810
807
  [e]: t.target.checked
811
808
  })),
@@ -814,91 +811,91 @@ var d = [
814
811
  }, e))
815
812
  })] })]
816
813
  }),
817
- Z && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
814
+ Z && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
818
815
  className: "block text-sm font-medium text-text-primary mb-1",
819
816
  children: "Service Type *"
820
- }), /* @__PURE__ */ u("select", {
821
- value: O.serviceType,
822
- onChange: (e) => k((t) => ({
817
+ }), /* @__PURE__ */ p("select", {
818
+ value: M.serviceType,
819
+ onChange: (e) => N((t) => ({
823
820
  ...t,
824
821
  serviceType: e.target.value
825
822
  })),
826
823
  className: "w-full sm:w-64 rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary",
827
824
  children: [
828
- /* @__PURE__ */ l("option", {
825
+ /* @__PURE__ */ f("option", {
829
826
  value: "instant",
830
827
  children: "Instant Service"
831
828
  }),
832
- /* @__PURE__ */ l("option", {
829
+ /* @__PURE__ */ f("option", {
833
830
  value: "appointment",
834
831
  children: "Appointment Based"
835
832
  }),
836
- /* @__PURE__ */ l("option", {
833
+ /* @__PURE__ */ f("option", {
837
834
  value: "recurring",
838
835
  children: "Recurring Service"
839
836
  }),
840
- /* @__PURE__ */ l("option", {
837
+ /* @__PURE__ */ f("option", {
841
838
  value: "consultation",
842
839
  children: "Consultation"
843
840
  })
844
841
  ]
845
842
  })] }),
846
- /* @__PURE__ */ u("div", { children: [
847
- /* @__PURE__ */ l("label", {
843
+ /* @__PURE__ */ p("div", { children: [
844
+ /* @__PURE__ */ f("label", {
848
845
  className: "block text-sm font-medium text-text-primary mb-1",
849
846
  children: "Tags (comma separated)"
850
847
  }),
851
- /* @__PURE__ */ l("input", {
848
+ /* @__PURE__ */ f("input", {
852
849
  type: "text",
853
- value: A,
854
- onChange: (e) => j(e.target.value),
850
+ value: P,
851
+ onChange: (e) => F(e.target.value),
855
852
  placeholder: Z ? "professional, certified, quick" : "popular, spicy, traditional",
856
853
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary"
857
854
  }),
858
- /* @__PURE__ */ u("p", {
855
+ /* @__PURE__ */ p("p", {
859
856
  className: "text-xs text-text-secondary mt-1",
860
857
  children: [
861
- A.split(",").map((e) => e.trim()).filter(Boolean).length,
858
+ P.split(",").map((e) => e.trim()).filter(Boolean).length,
862
859
  " ",
863
860
  "tags"
864
861
  ]
865
862
  })
866
863
  ] }),
867
- Q && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
864
+ Q && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
868
865
  className: "block text-sm font-medium text-text-primary mb-1",
869
866
  children: "Allergens (comma separated)"
870
- }), /* @__PURE__ */ l("input", {
867
+ }), /* @__PURE__ */ f("input", {
871
868
  type: "text",
872
- value: M,
873
- onChange: (e) => N(e.target.value),
869
+ value: I,
870
+ onChange: (e) => L(e.target.value),
874
871
  placeholder: "nuts, dairy, gluten, soy",
875
872
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary"
876
873
  })] }),
877
- Z && /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("label", {
874
+ Z && /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
878
875
  className: "block text-sm font-medium text-text-primary mb-1",
879
876
  children: "Service Requirements (comma separated)"
880
- }), /* @__PURE__ */ l("input", {
877
+ }), /* @__PURE__ */ f("input", {
881
878
  type: "text",
882
- value: P,
883
- onChange: (e) => F(e.target.value),
879
+ value: R,
880
+ onChange: (e) => z(e.target.value),
884
881
  placeholder: "advance booking, payment required, tools provided",
885
882
  className: "w-full rounded-md border border-border-seam bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary"
886
883
  })] })
887
884
  ]
888
885
  }),
889
- /* @__PURE__ */ u("div", {
886
+ /* @__PURE__ */ p("div", {
890
887
  className: "flex gap-3 mt-6",
891
- children: [/* @__PURE__ */ l("button", {
888
+ children: [/* @__PURE__ */ f("button", {
892
889
  type: "button",
893
- onClick: () => T(!1),
890
+ onClick: () => k(!1),
894
891
  className: "flex-1 rounded-md border border-border-seam px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
895
892
  children: "Cancel"
896
- }), /* @__PURE__ */ l("button", {
893
+ }), /* @__PURE__ */ f("button", {
897
894
  type: "button",
898
- onClick: de,
895
+ onClick: me,
899
896
  disabled: !$,
900
897
  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"
898
+ children: A ? "Update Item" : "Add Item"
902
899
  })]
903
900
  })
904
901
  ]
@@ -908,6 +905,6 @@ var d = [
908
905
  });
909
906
  };
910
907
  //#endregion
911
- export { _ as InventoryManagementPage };
908
+ export { b as InventoryManagementPage };
912
909
 
913
910
  //# sourceMappingURL=InventoryManagementPage.js.map