@burdenoff/microfe-proserviceworld 2026.624.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 (31) hide show
  1. package/dist/proserviceworld/pages/AdminReportsPage.js +396 -329
  2. package/dist/proserviceworld/pages/AdminReportsPage.js.map +1 -1
  3. package/dist/proserviceworld/pages/AdminUsersPage.js +261 -237
  4. package/dist/proserviceworld/pages/AdminUsersPage.js.map +1 -1
  5. package/dist/proserviceworld/pages/AnalyticsPage.js +373 -315
  6. package/dist/proserviceworld/pages/AnalyticsPage.js.map +1 -1
  7. package/dist/proserviceworld/pages/BookingsPage.js +221 -200
  8. package/dist/proserviceworld/pages/BookingsPage.js.map +1 -1
  9. package/dist/proserviceworld/pages/DashboardPage.js +474 -405
  10. package/dist/proserviceworld/pages/DashboardPage.js.map +1 -1
  11. package/dist/proserviceworld/pages/DocumentsPage.js +386 -317
  12. package/dist/proserviceworld/pages/DocumentsPage.js.map +1 -1
  13. package/dist/proserviceworld/pages/MessagesPage.js +201 -192
  14. package/dist/proserviceworld/pages/MessagesPage.js.map +1 -1
  15. package/dist/proserviceworld/pages/PaymentsPage.js +398 -340
  16. package/dist/proserviceworld/pages/PaymentsPage.js.map +1 -1
  17. package/dist/proserviceworld/pages/ProjectsPage.js +543 -463
  18. package/dist/proserviceworld/pages/ProjectsPage.js.map +1 -1
  19. package/dist/proserviceworld/pages/ProviderDetailPage.js +420 -346
  20. package/dist/proserviceworld/pages/ProviderDetailPage.js.map +1 -1
  21. package/dist/proserviceworld/pages/ProvidersPage.js +249 -244
  22. package/dist/proserviceworld/pages/ProvidersPage.js.map +1 -1
  23. package/dist/proserviceworld/pages/ReviewsPage.js +93 -76
  24. package/dist/proserviceworld/pages/ReviewsPage.js.map +1 -1
  25. package/dist/proserviceworld/pages/ServiceDetailsPage.js +377 -309
  26. package/dist/proserviceworld/pages/ServiceDetailsPage.js.map +1 -1
  27. package/dist/proserviceworld/pages/ServicesPage.js +116 -109
  28. package/dist/proserviceworld/pages/ServicesPage.js.map +1 -1
  29. package/dist/proserviceworld/pages/VerificationPage.js +264 -251
  30. package/dist/proserviceworld/pages/VerificationPage.js.map +1 -1
  31. package/package.json +2 -2
@@ -1,176 +1,200 @@
1
1
  import { useProServiceWorldStore as e } from "../store/proserviceworldStore.js";
2
2
  import { useMemo as t, useState as n } from "react";
3
- import { ArrowUpDown as r, ChevronRight as i, Clock as a, Download as o, File as s, FileText as c, FolderOpen as l, FolderPlus as u, Grid3x3 as d, HardDrive as f, Image as p, List as m, MoreHorizontal as h, Search as g, Share2 as _, Star as v, Upload as y, Users as b } from "lucide-react";
4
- import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
5
- import { Button as w, Card as T, CardContent as E, CardHeader as D, CardTitle as O, Input as k } from "@burdenoff/fe-libs/ui";
3
+ import { ArrowUpDown as r, ChevronRight as i, Clock as ee, Download as a, File as o, FileText as s, FolderOpen as c, FolderPlus as l, Grid3x3 as u, HardDrive as d, Image as f, List as p, MoreHorizontal as m, Search as h, Share2 as g, Star as _, Upload as v, Users as y } from "lucide-react";
4
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
5
+ import { AuroraBackground as te, Button as C, CTAOverflowMenu as ne, Card as w, CardContent as T, CardHeader as E, CardTitle as D, GlassCard as O, GradientText as re, IllustratedEmptyState as k, Input as A, PagePurpose as j } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/proserviceworld/pages/DocumentsPage.tsx
7
- var A = {
8
- pdf: c,
9
- docx: s,
10
- doc: s,
11
- txt: c,
12
- image: p,
13
- video: s,
14
- audio: s,
15
- other: s
16
- }, j = {
17
- pdf: "text-red-500",
18
- docx: "text-blue-500",
19
- doc: "text-blue-500",
20
- txt: "text-gray-500",
21
- image: "text-green-500",
22
- video: "text-purple-500",
23
- audio: "text-orange-500",
24
- other: "text-gray-400"
25
- }, M = {
26
- blue: "text-blue-500",
27
- green: "text-green-500",
28
- purple: "text-purple-500",
29
- yellow: "text-yellow-500",
30
- red: "text-red-500"
7
+ var M = {
8
+ pdf: s,
9
+ docx: o,
10
+ doc: o,
11
+ txt: s,
12
+ image: f,
13
+ video: o,
14
+ audio: o,
15
+ other: o
16
+ }, N = {
17
+ pdf: "text-status-error-text",
18
+ docx: "text-accent-blue",
19
+ doc: "text-accent-blue",
20
+ txt: "text-text-secondary",
21
+ image: "text-status-success-text",
22
+ video: "text-accent-purple",
23
+ audio: "text-status-warning-text",
24
+ other: "text-text-secondary"
25
+ }, P = {
26
+ blue: "text-accent-blue",
27
+ green: "text-status-success-text",
28
+ purple: "text-accent-purple",
29
+ yellow: "text-status-warning-text",
30
+ red: "text-status-error-text"
31
31
  };
32
- function N(e) {
32
+ function F(e) {
33
33
  return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
34
34
  }
35
- function P() {
36
- let { documents: p, folders: P } = e(), [F, I] = n("grid"), [L, R] = n(""), [z, B] = n("all"), [V, H] = n("date"), [U, W] = n(!1), [G, K] = n(null), [q, J] = n(!1), [Y, X] = n(!1), Z = t(() => {
37
- let e = [...p];
38
- if (G && (e = e.filter((e) => e.folderId === G)), z === "starred" ? e = e.filter((e) => e.isStarred) : z !== "all" && (e = e.filter((e) => e.type === z)), L.trim()) {
39
- let t = L.toLowerCase();
35
+ function I() {
36
+ let { documents: f, folders: I } = e(), [L, R] = n("grid"), [z, B] = n(""), [V, H] = n("all"), [U, W] = n("date"), [G, K] = n(!1), [q, J] = n(null), [Y, X] = n(!1), [ie, Z] = n(!1), Q = t(() => {
37
+ let e = [...f];
38
+ if (q && (e = e.filter((e) => e.folderId === q)), V === "starred" ? e = e.filter((e) => e.isStarred) : V !== "all" && (e = e.filter((e) => e.type === V)), z.trim()) {
39
+ let t = z.toLowerCase();
40
40
  e = e.filter((e) => e.name.toLowerCase().includes(t) || e.tags.some((e) => e.toLowerCase().includes(t)));
41
41
  }
42
42
  return e.sort((e, t) => {
43
- let n = V === "name" ? e.name.localeCompare(t.name) : V === "date" ? new Date(t.modifiedAt).getTime() - new Date(e.modifiedAt).getTime() : t.size - e.size;
44
- return U ? -n : n;
43
+ let n = U === "name" ? e.name.localeCompare(t.name) : U === "date" ? new Date(t.modifiedAt).getTime() - new Date(e.modifiedAt).getTime() : t.size - e.size;
44
+ return G ? -n : n;
45
45
  }), e;
46
46
  }, [
47
- p,
48
- G,
49
- z,
50
- L,
47
+ f,
48
+ q,
51
49
  V,
52
- U
53
- ]), Q = p.reduce((e, t) => e + t.size, 0), ee = p.filter((e) => e.isStarred).length, $ = G ? P.find((e) => e.id === G) : null, te = (e) => {
54
- V === e ? W(!U) : (H(e), W(!1));
50
+ z,
51
+ U,
52
+ G
53
+ ]), ae = f.reduce((e, t) => e + t.size, 0), oe = f.filter((e) => e.isStarred).length, $ = q ? I.find((e) => e.id === q) : null, se = (e) => {
54
+ U === e ? K(!G) : (W(e), K(!1));
55
55
  };
56
- return /* @__PURE__ */ C("div", {
57
- className: "space-y-6 p-6",
56
+ return /* @__PURE__ */ S("div", {
57
+ className: "space-y-6 p-6 bg-bg-canvas min-h-screen",
58
58
  children: [
59
- /* @__PURE__ */ C("div", {
60
- className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
61
- children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h1", {
62
- className: "text-2xl font-semibold",
63
- children: "Documents"
64
- }), /* @__PURE__ */ S("p", {
65
- className: "text-sm text-text-secondary",
66
- children: "Manage files, folders, and shared documents."
67
- })] }), /* @__PURE__ */ C("div", {
68
- className: "flex gap-2",
69
- children: [/* @__PURE__ */ C(w, {
70
- variant: "outline",
71
- size: "sm",
72
- onClick: () => X(!0),
73
- children: [/* @__PURE__ */ S(u, { className: "mr-2 h-4 w-4" }), " New Folder"]
74
- }), /* @__PURE__ */ C(w, {
75
- size: "sm",
76
- onClick: () => J(!0),
77
- children: [/* @__PURE__ */ S(y, { className: "mr-2 h-4 w-4" }), " Upload"]
59
+ /* @__PURE__ */ S("div", {
60
+ className: "relative overflow-hidden rounded-card -mx-2 px-2 pt-1",
61
+ children: [/* @__PURE__ */ x(te, { intensity: "subtle" }), /* @__PURE__ */ S("div", {
62
+ className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
63
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h1", {
64
+ className: "text-2xl font-semibold tracking-tight",
65
+ children: /* @__PURE__ */ x(re, { children: "Documents" })
66
+ }), /* @__PURE__ */ x("p", {
67
+ className: "text-sm text-text-secondary",
68
+ children: "Manage files, folders, and shared documents."
69
+ })] }), /* @__PURE__ */ x(ne, {
70
+ primary: {
71
+ label: "Upload",
72
+ onSelect: () => X(!0),
73
+ icon: /* @__PURE__ */ x(v, { className: "h-4 w-4" })
74
+ },
75
+ actions: [{
76
+ label: "New Folder",
77
+ onSelect: () => Z(!0),
78
+ icon: /* @__PURE__ */ x(l, { className: "h-4 w-4" })
79
+ }]
78
80
  })]
79
81
  })]
80
82
  }),
81
- /* @__PURE__ */ C("div", {
83
+ /* @__PURE__ */ x(j, {
84
+ icon: /* @__PURE__ */ x(c, { className: "h-4 w-4" }),
85
+ children: "A shared home for the files behind your work — contracts, deliverables, briefs, and more. Organise documents into folders, star the ones you reach for often, search across everything, and share files securely with clients and collaborators."
86
+ }),
87
+ /* @__PURE__ */ S("div", {
82
88
  className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
83
89
  children: [
84
- /* @__PURE__ */ S(T, { children: /* @__PURE__ */ S(E, {
85
- className: "pt-4",
86
- children: /* @__PURE__ */ C("div", {
87
- className: "flex items-center gap-3",
88
- children: [/* @__PURE__ */ S("div", {
89
- className: "rounded-lg bg-blue-100 p-2 dark:bg-blue-950",
90
- children: /* @__PURE__ */ S(c, { className: "h-5 w-5 text-blue-600" })
91
- }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
92
- className: "text-2xl font-bold",
93
- children: p.length
94
- }), /* @__PURE__ */ S("p", {
95
- className: "text-xs text-text-secondary",
96
- children: "Total Files"
97
- })] })]
90
+ /* @__PURE__ */ x(O, {
91
+ treatment: "metric",
92
+ className: "border-border-seam",
93
+ children: /* @__PURE__ */ x(T, {
94
+ className: "pt-4",
95
+ children: /* @__PURE__ */ S("div", {
96
+ className: "flex items-center gap-3",
97
+ children: [/* @__PURE__ */ x("div", {
98
+ className: "rounded-lg bg-accent-blue-subtle p-2",
99
+ children: /* @__PURE__ */ x(s, { className: "h-5 w-5 text-accent-blue" })
100
+ }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
101
+ className: "text-2xl font-bold tabular-nums",
102
+ children: f.length
103
+ }), /* @__PURE__ */ x("p", {
104
+ className: "text-xs text-text-secondary",
105
+ children: "Total Files"
106
+ })] })]
107
+ })
98
108
  })
99
- }) }),
100
- /* @__PURE__ */ S(T, { children: /* @__PURE__ */ S(E, {
101
- className: "pt-4",
102
- children: /* @__PURE__ */ C("div", {
103
- className: "flex items-center gap-3",
104
- children: [/* @__PURE__ */ S("div", {
105
- className: "rounded-lg bg-purple-100 p-2 dark:bg-purple-950",
106
- children: /* @__PURE__ */ S(l, { className: "h-5 w-5 text-purple-600" })
107
- }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
108
- className: "text-2xl font-bold",
109
- children: P.length
110
- }), /* @__PURE__ */ S("p", {
111
- className: "text-xs text-text-secondary",
112
- children: "Folders"
113
- })] })]
109
+ }),
110
+ /* @__PURE__ */ x(O, {
111
+ treatment: "metric",
112
+ className: "border-border-seam",
113
+ children: /* @__PURE__ */ x(T, {
114
+ className: "pt-4",
115
+ children: /* @__PURE__ */ S("div", {
116
+ className: "flex items-center gap-3",
117
+ children: [/* @__PURE__ */ x("div", {
118
+ className: "rounded-lg bg-accent-purple-subtle p-2",
119
+ children: /* @__PURE__ */ x(c, { className: "h-5 w-5 text-accent-purple" })
120
+ }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
121
+ className: "text-2xl font-bold tabular-nums",
122
+ children: I.length
123
+ }), /* @__PURE__ */ x("p", {
124
+ className: "text-xs text-text-secondary",
125
+ children: "Folders"
126
+ })] })]
127
+ })
114
128
  })
115
- }) }),
116
- /* @__PURE__ */ S(T, { children: /* @__PURE__ */ S(E, {
117
- className: "pt-4",
118
- children: /* @__PURE__ */ C("div", {
119
- className: "flex items-center gap-3",
120
- children: [/* @__PURE__ */ S("div", {
121
- className: "rounded-lg bg-yellow-100 p-2 dark:bg-yellow-950",
122
- children: /* @__PURE__ */ S(v, { className: "h-5 w-5 text-yellow-600" })
123
- }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
124
- className: "text-2xl font-bold",
125
- children: ee
126
- }), /* @__PURE__ */ S("p", {
127
- className: "text-xs text-text-secondary",
128
- children: "Starred"
129
- })] })]
129
+ }),
130
+ /* @__PURE__ */ x(O, {
131
+ treatment: "metric",
132
+ className: "border-border-seam",
133
+ children: /* @__PURE__ */ x(T, {
134
+ className: "pt-4",
135
+ children: /* @__PURE__ */ S("div", {
136
+ className: "flex items-center gap-3",
137
+ children: [/* @__PURE__ */ x("div", {
138
+ className: "rounded-lg bg-status-warning-bg-subtle p-2",
139
+ children: /* @__PURE__ */ x(_, { className: "h-5 w-5 text-status-warning-text" })
140
+ }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
141
+ className: "text-2xl font-bold tabular-nums",
142
+ children: oe
143
+ }), /* @__PURE__ */ x("p", {
144
+ className: "text-xs text-text-secondary",
145
+ children: "Starred"
146
+ })] })]
147
+ })
130
148
  })
131
- }) }),
132
- /* @__PURE__ */ S(T, { children: /* @__PURE__ */ S(E, {
133
- className: "pt-4",
134
- children: /* @__PURE__ */ C("div", {
135
- className: "flex items-center gap-3",
136
- children: [/* @__PURE__ */ S("div", {
137
- className: "rounded-lg bg-green-100 p-2 dark:bg-green-950",
138
- children: /* @__PURE__ */ S(f, { className: "h-5 w-5 text-green-600" })
139
- }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
140
- className: "text-2xl font-bold",
141
- children: N(Q)
142
- }), /* @__PURE__ */ S("p", {
143
- className: "text-xs text-text-secondary",
144
- children: "Total Size"
145
- })] })]
149
+ }),
150
+ /* @__PURE__ */ x(O, {
151
+ treatment: "glass",
152
+ glow: !0,
153
+ className: "border-border-seam",
154
+ children: /* @__PURE__ */ x(T, {
155
+ className: "pt-4",
156
+ children: /* @__PURE__ */ S("div", {
157
+ className: "flex items-center gap-3",
158
+ children: [/* @__PURE__ */ x("div", {
159
+ className: "rounded-lg bg-status-success-bg-subtle p-2",
160
+ children: /* @__PURE__ */ x(d, { className: "h-5 w-5 text-status-success-text" })
161
+ }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
162
+ className: "text-2xl font-bold tabular-nums",
163
+ children: F(ae)
164
+ }), /* @__PURE__ */ x("p", {
165
+ className: "text-xs text-text-secondary",
166
+ children: "Total Size"
167
+ })] })]
168
+ })
146
169
  })
147
- }) })
170
+ })
148
171
  ]
149
172
  }),
150
- /* @__PURE__ */ C("div", {
173
+ /* @__PURE__ */ S("div", {
151
174
  className: "flex items-center gap-2 text-sm",
152
- children: [/* @__PURE__ */ S("button", {
153
- onClick: () => K(null),
154
- className: `font-medium ${G ? "text-text-secondary hover:text-text-primary" : "text-primary"}`,
175
+ children: [/* @__PURE__ */ x("button", {
176
+ onClick: () => J(null),
177
+ className: `font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus rounded ${q ? "text-text-secondary hover:text-text-primary" : "text-accent-blue"}`,
155
178
  children: "All Files"
156
- }), $ && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(i, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ S("span", {
157
- className: "font-medium text-primary",
179
+ }), $ && /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(i, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ x("span", {
180
+ className: "font-medium text-accent-blue",
158
181
  children: $.name
159
182
  })] })]
160
183
  }),
161
- /* @__PURE__ */ C("div", {
184
+ /* @__PURE__ */ S("div", {
162
185
  className: "flex flex-col gap-4 sm:flex-row sm:items-center",
163
- children: [/* @__PURE__ */ C("div", {
186
+ children: [/* @__PURE__ */ S("div", {
164
187
  className: "relative flex-1",
165
- children: [/* @__PURE__ */ S(g, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ S(k, {
188
+ children: [/* @__PURE__ */ x(h, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ x(A, {
166
189
  placeholder: "Search documents...",
167
- value: L,
168
- onChange: (e) => R(e.target.value),
190
+ "aria-label": "Search documents",
191
+ value: z,
192
+ onChange: (e) => B(e.target.value),
169
193
  className: "pl-10"
170
194
  })]
171
- }), /* @__PURE__ */ C("div", {
172
- className: "flex items-center gap-2",
173
- children: [/* @__PURE__ */ S("div", {
195
+ }), /* @__PURE__ */ S("div", {
196
+ className: "flex flex-wrap items-center gap-2",
197
+ children: [/* @__PURE__ */ x("div", {
174
198
  className: "flex flex-wrap gap-1",
175
199
  children: [
176
200
  "all",
@@ -178,26 +202,31 @@ function P() {
178
202
  "docx",
179
203
  "txt",
180
204
  "starred"
181
- ].map((e) => /* @__PURE__ */ S("button", {
182
- onClick: () => B(e),
183
- className: `rounded px-2 py-1 text-xs font-medium transition-colors ${z === e ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary hover:bg-bg-sunken/80"}`,
205
+ ].map((e) => /* @__PURE__ */ x("button", {
206
+ onClick: () => H(e),
207
+ "aria-pressed": V === e,
208
+ className: `rounded px-2 py-1 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${V === e ? "bg-accent-blue text-action-primary-text" : "bg-bg-sunken text-text-secondary hover:text-text-primary"}`,
184
209
  children: e === "all" ? "All" : e === "starred" ? "Starred" : e.toUpperCase()
185
210
  }, e))
186
- }), /* @__PURE__ */ C("div", {
187
- className: "flex rounded border",
188
- children: [/* @__PURE__ */ S("button", {
189
- onClick: () => I("grid"),
190
- className: `p-1.5 ${F === "grid" ? "bg-action-primary-bg text-action-primary-text" : "text-text-secondary"}`,
191
- children: /* @__PURE__ */ S(d, { className: "h-4 w-4" })
192
- }), /* @__PURE__ */ S("button", {
193
- onClick: () => I("list"),
194
- className: `p-1.5 ${F === "list" ? "bg-action-primary-bg text-action-primary-text" : "text-text-secondary"}`,
195
- children: /* @__PURE__ */ S(m, { className: "h-4 w-4" })
211
+ }), /* @__PURE__ */ S("div", {
212
+ className: "flex rounded border border-border-seam",
213
+ children: [/* @__PURE__ */ x("button", {
214
+ onClick: () => R("grid"),
215
+ "aria-label": "Grid view",
216
+ "aria-pressed": L === "grid",
217
+ className: `p-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${L === "grid" ? "bg-accent-blue text-action-primary-text" : "text-text-secondary"}`,
218
+ children: /* @__PURE__ */ x(u, { className: "h-4 w-4" })
219
+ }), /* @__PURE__ */ x("button", {
220
+ onClick: () => R("list"),
221
+ "aria-label": "List view",
222
+ "aria-pressed": L === "list",
223
+ className: `p-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${L === "list" ? "bg-accent-blue text-action-primary-text" : "text-text-secondary"}`,
224
+ children: /* @__PURE__ */ x(p, { className: "h-4 w-4" })
196
225
  })]
197
226
  })]
198
227
  })]
199
228
  }),
200
- /* @__PURE__ */ S("div", {
229
+ /* @__PURE__ */ x("div", {
201
230
  className: "flex gap-2",
202
231
  children: [
203
232
  {
@@ -212,29 +241,33 @@ function P() {
212
241
  field: "size",
213
242
  label: "Size"
214
243
  }
215
- ].map(({ field: e, label: t }) => /* @__PURE__ */ C("button", {
216
- onClick: () => te(e),
217
- className: `flex items-center gap-1 rounded border px-3 py-1 text-xs ${V === e ? "border-primary bg-action-primary-bg/5 text-primary" : "text-text-secondary hover:bg-bg-sunken/50"}`,
218
- children: [/* @__PURE__ */ S(r, { className: "h-3 w-3" }), t]
244
+ ].map(({ field: e, label: t }) => /* @__PURE__ */ S("button", {
245
+ onClick: () => se(e),
246
+ "aria-pressed": U === e,
247
+ className: `flex items-center gap-1 rounded border px-3 py-1 text-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus ${U === e ? "border-accent-blue bg-accent-blue-subtle text-accent-blue" : "border-border-seam text-text-secondary hover:text-text-primary"}`,
248
+ children: [/* @__PURE__ */ x(r, { className: "h-3 w-3" }), t]
219
249
  }, e))
220
250
  }),
221
- !G && /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h3", {
251
+ !q && /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h3", {
222
252
  className: "mb-3 text-sm font-medium text-text-secondary",
223
253
  children: "Folders"
224
- }), /* @__PURE__ */ S("div", {
254
+ }), /* @__PURE__ */ x("div", {
225
255
  className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4",
226
- children: P.map((e) => /* @__PURE__ */ C("button", {
227
- onClick: () => K(e.id),
228
- className: "flex items-center gap-3 rounded-lg border p-3 text-left transition-colors hover:bg-bg-sunken/50",
229
- children: [/* @__PURE__ */ S(l, { className: `h-8 w-8 ${M[e.color] ?? "text-gray-500"}` }), /* @__PURE__ */ C("div", {
256
+ children: I.map((e) => /* @__PURE__ */ S("button", {
257
+ onClick: () => J(e.id),
258
+ className: "flex items-center gap-3 rounded-lg border border-border-seam p-3 text-left transition-shadow hover:shadow-pop focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
259
+ children: [/* @__PURE__ */ x(c, { className: `h-8 w-8 ${P[e.color] ?? "text-text-secondary"}` }), /* @__PURE__ */ S("div", {
230
260
  className: "min-w-0 flex-1",
231
- children: [/* @__PURE__ */ S("p", {
261
+ children: [/* @__PURE__ */ x("p", {
232
262
  className: "truncate font-medium text-sm",
233
263
  children: e.name
234
- }), /* @__PURE__ */ C("p", {
264
+ }), /* @__PURE__ */ S("p", {
235
265
  className: "text-xs text-text-secondary",
236
266
  children: [
237
- e.documentsCount,
267
+ /* @__PURE__ */ x("span", {
268
+ className: "tabular-nums",
269
+ children: e.documentsCount
270
+ }),
238
271
  " files",
239
272
  e.isPublic && " - Public"
240
273
  ]
@@ -242,206 +275,237 @@ function P() {
242
275
  })]
243
276
  }, e.id))
244
277
  })] }),
245
- /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("h3", {
278
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("h3", {
246
279
  className: "mb-3 text-sm font-medium text-text-secondary",
247
- children: ["Files ", Z.length > 0 && `(${Z.length})`]
248
- }), Z.length === 0 ? /* @__PURE__ */ S(T, { children: /* @__PURE__ */ S(E, {
249
- className: "py-12 text-center text-text-secondary",
250
- children: "No files found. Try adjusting your filters."
251
- }) }) : F === "grid" ? /* @__PURE__ */ S("div", {
280
+ children: ["Files ", Q.length > 0 && `(${Q.length})`]
281
+ }), Q.length === 0 ? /* @__PURE__ */ x(w, {
282
+ className: "border-border-seam",
283
+ children: /* @__PURE__ */ x(T, {
284
+ className: "py-6",
285
+ children: /* @__PURE__ */ x(k, {
286
+ illustration: z || V !== "all" ? "empty-search" : "empty-files",
287
+ title: "No files found",
288
+ description: "Try adjusting your filters or upload a new document.",
289
+ action: /* @__PURE__ */ S(C, {
290
+ size: "sm",
291
+ onClick: () => X(!0),
292
+ children: [/* @__PURE__ */ x(v, { className: "mr-2 h-4 w-4" }), " Upload"]
293
+ })
294
+ })
295
+ })
296
+ }) : L === "grid" ? /* @__PURE__ */ x("div", {
252
297
  className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",
253
- children: Z.map((e) => /* @__PURE__ */ S(T, {
254
- className: "hover:bg-bg-sunken/30 transition-colors",
255
- children: /* @__PURE__ */ C(E, {
298
+ children: Q.map((e) => /* @__PURE__ */ x(O, {
299
+ treatment: "plain",
300
+ className: "border-border-seam transition-shadow hover:shadow-pop",
301
+ children: /* @__PURE__ */ S(T, {
256
302
  className: "pt-4",
257
303
  children: [
258
- /* @__PURE__ */ C("div", {
304
+ /* @__PURE__ */ S("div", {
259
305
  className: "flex items-start justify-between",
260
- children: [/* @__PURE__ */ S(A[e.type] ?? s, { className: `h-10 w-10 ${j[e.type] ?? "text-gray-400"}` }), /* @__PURE__ */ C("div", {
306
+ children: [/* @__PURE__ */ x(M[e.type] ?? o, { className: `h-10 w-10 ${N[e.type] ?? "text-text-secondary"}` }), /* @__PURE__ */ S("div", {
261
307
  className: "flex items-center gap-1",
262
- children: [e.isStarred && /* @__PURE__ */ S(v, { className: "h-4 w-4 fill-yellow-400 text-yellow-400" }), e.sharedWith > 0 && /* @__PURE__ */ S(_, { className: "h-4 w-4 text-text-secondary" })]
308
+ children: [e.isStarred && /* @__PURE__ */ x(_, { className: "h-4 w-4 fill-status-warning-text text-status-warning-text" }), e.sharedWith > 0 && /* @__PURE__ */ x(g, { className: "h-4 w-4 text-text-secondary" })]
263
309
  })]
264
310
  }),
265
- /* @__PURE__ */ S("h4", {
311
+ /* @__PURE__ */ x("h4", {
266
312
  className: "mt-3 truncate font-medium text-sm",
267
313
  children: e.name
268
314
  }),
269
- /* @__PURE__ */ C("div", {
315
+ /* @__PURE__ */ S("div", {
270
316
  className: "mt-1 flex items-center gap-2 text-xs text-text-secondary",
271
- children: [/* @__PURE__ */ S("span", { children: N(e.size) }), /* @__PURE__ */ C("span", { children: ["v", e.version] })]
317
+ children: [/* @__PURE__ */ x("span", {
318
+ className: "tabular-nums",
319
+ children: F(e.size)
320
+ }), /* @__PURE__ */ S("span", {
321
+ className: "tabular-nums",
322
+ children: ["v", e.version]
323
+ })]
272
324
  }),
273
- /* @__PURE__ */ C("div", {
325
+ /* @__PURE__ */ S("div", {
274
326
  className: "mt-2 flex items-center gap-1 text-xs text-text-secondary",
275
327
  children: [
276
- /* @__PURE__ */ S(a, { className: "h-3 w-3" }),
328
+ /* @__PURE__ */ x(ee, { className: "h-3 w-3" }),
277
329
  " ",
278
330
  e.modifiedAt
279
331
  ]
280
332
  }),
281
- /* @__PURE__ */ C("div", {
333
+ /* @__PURE__ */ S("div", {
282
334
  className: "mt-3 flex gap-1",
283
- children: [/* @__PURE__ */ C(w, {
335
+ children: [/* @__PURE__ */ S(C, {
284
336
  variant: "outline",
285
337
  size: "sm",
286
338
  className: "flex-1 text-xs",
287
- children: [/* @__PURE__ */ S(o, { className: "mr-1 h-3 w-3" }), " Download"]
288
- }), /* @__PURE__ */ S(w, {
339
+ children: [/* @__PURE__ */ x(a, { className: "mr-1 h-3 w-3" }), " Download"]
340
+ }), /* @__PURE__ */ x(C, {
289
341
  variant: "outline",
290
342
  size: "sm",
291
- children: /* @__PURE__ */ S(h, { className: "h-3 w-3" })
343
+ "aria-label": "More actions",
344
+ children: /* @__PURE__ */ x(m, { className: "h-3 w-3" })
292
345
  })]
293
346
  })
294
347
  ]
295
348
  })
296
349
  }, e.id))
297
- }) : /* @__PURE__ */ S(T, { children: /* @__PURE__ */ S(E, {
298
- className: "pt-4",
299
- children: /* @__PURE__ */ S("div", {
300
- className: "overflow-x-auto",
301
- children: /* @__PURE__ */ C("table", {
302
- className: "w-full text-sm",
303
- children: [/* @__PURE__ */ S("thead", { children: /* @__PURE__ */ C("tr", {
304
- className: "border-b text-left text-text-secondary",
305
- children: [
306
- /* @__PURE__ */ S("th", {
307
- className: "p-3",
308
- children: "Name"
309
- }),
310
- /* @__PURE__ */ S("th", {
311
- className: "p-3",
312
- children: "Type"
313
- }),
314
- /* @__PURE__ */ S("th", {
315
- className: "p-3",
316
- children: "Size"
317
- }),
318
- /* @__PURE__ */ S("th", {
319
- className: "p-3",
320
- children: "Modified"
321
- }),
322
- /* @__PURE__ */ S("th", {
323
- className: "p-3",
324
- children: "Uploaded By"
325
- }),
326
- /* @__PURE__ */ S("th", {
327
- className: "p-3 text-right",
328
- children: "Actions"
329
- })
330
- ]
331
- }) }), /* @__PURE__ */ S("tbody", { children: Z.map((e) => /* @__PURE__ */ C("tr", {
332
- className: "border-b hover:bg-bg-sunken/50",
333
- children: [
334
- /* @__PURE__ */ S("td", {
335
- className: "p-3",
336
- children: /* @__PURE__ */ C("div", {
337
- className: "flex items-center gap-2",
338
- children: [
339
- /* @__PURE__ */ S(A[e.type] ?? s, { className: `h-5 w-5 ${j[e.type] ?? "text-gray-400"}` }),
340
- /* @__PURE__ */ S("span", {
341
- className: "font-medium",
342
- children: e.name
343
- }),
344
- e.isStarred && /* @__PURE__ */ S(v, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }),
345
- e.sharedWith > 0 && /* @__PURE__ */ C("span", {
346
- className: "flex items-center gap-0.5 text-xs text-text-secondary",
347
- children: [
348
- /* @__PURE__ */ S(b, { className: "h-3 w-3" }),
349
- " ",
350
- e.sharedWith
351
- ]
352
- })
353
- ]
350
+ }) : /* @__PURE__ */ x(w, {
351
+ className: "border-border-seam",
352
+ children: /* @__PURE__ */ x(T, {
353
+ className: "pt-4",
354
+ children: /* @__PURE__ */ x("div", {
355
+ className: "overflow-x-auto",
356
+ children: /* @__PURE__ */ S("table", {
357
+ className: "w-full text-sm",
358
+ children: [/* @__PURE__ */ x("thead", { children: /* @__PURE__ */ S("tr", {
359
+ className: "border-b border-border-seam text-left text-text-secondary",
360
+ children: [
361
+ /* @__PURE__ */ x("th", {
362
+ className: "p-3",
363
+ children: "Name"
364
+ }),
365
+ /* @__PURE__ */ x("th", {
366
+ className: "p-3",
367
+ children: "Type"
368
+ }),
369
+ /* @__PURE__ */ x("th", {
370
+ className: "p-3",
371
+ children: "Size"
372
+ }),
373
+ /* @__PURE__ */ x("th", {
374
+ className: "p-3",
375
+ children: "Modified"
376
+ }),
377
+ /* @__PURE__ */ x("th", {
378
+ className: "p-3",
379
+ children: "Uploaded By"
380
+ }),
381
+ /* @__PURE__ */ x("th", {
382
+ className: "p-3 text-right",
383
+ children: "Actions"
354
384
  })
355
- }),
356
- /* @__PURE__ */ S("td", {
357
- className: "p-3 uppercase text-xs",
358
- children: e.type
359
- }),
360
- /* @__PURE__ */ S("td", {
361
- className: "p-3",
362
- children: N(e.size)
363
- }),
364
- /* @__PURE__ */ S("td", {
365
- className: "p-3 text-text-secondary",
366
- children: e.modifiedAt
367
- }),
368
- /* @__PURE__ */ S("td", {
369
- className: "p-3 text-text-secondary",
370
- children: e.uploadedBy
371
- }),
372
- /* @__PURE__ */ S("td", {
373
- className: "p-3",
374
- children: /* @__PURE__ */ C("div", {
375
- className: "flex justify-end gap-1",
376
- children: [/* @__PURE__ */ S(w, {
377
- variant: "outline",
378
- size: "sm",
379
- children: /* @__PURE__ */ S(o, { className: "h-3 w-3" })
380
- }), /* @__PURE__ */ S(w, {
381
- variant: "outline",
382
- size: "sm",
383
- children: /* @__PURE__ */ S(_, { className: "h-3 w-3" })
384
- })]
385
+ ]
386
+ }) }), /* @__PURE__ */ x("tbody", { children: Q.map((e) => /* @__PURE__ */ S("tr", {
387
+ className: "border-b border-border-seam hover:bg-bg-sunken",
388
+ children: [
389
+ /* @__PURE__ */ x("td", {
390
+ className: "p-3",
391
+ children: /* @__PURE__ */ S("div", {
392
+ className: "flex items-center gap-2",
393
+ children: [
394
+ /* @__PURE__ */ x(M[e.type] ?? o, { className: `h-5 w-5 ${N[e.type] ?? "text-text-secondary"}` }),
395
+ /* @__PURE__ */ x("span", {
396
+ className: "font-medium",
397
+ children: e.name
398
+ }),
399
+ e.isStarred && /* @__PURE__ */ x(_, { className: "h-3 w-3 fill-status-warning-text text-status-warning-text" }),
400
+ e.sharedWith > 0 && /* @__PURE__ */ S("span", {
401
+ className: "flex items-center gap-0.5 text-xs text-text-secondary",
402
+ children: [
403
+ /* @__PURE__ */ x(y, { className: "h-3 w-3" }),
404
+ " ",
405
+ /* @__PURE__ */ x("span", {
406
+ className: "tabular-nums",
407
+ children: e.sharedWith
408
+ })
409
+ ]
410
+ })
411
+ ]
412
+ })
413
+ }),
414
+ /* @__PURE__ */ x("td", {
415
+ className: "p-3 uppercase text-xs",
416
+ children: e.type
417
+ }),
418
+ /* @__PURE__ */ x("td", {
419
+ className: "p-3 tabular-nums",
420
+ children: F(e.size)
421
+ }),
422
+ /* @__PURE__ */ x("td", {
423
+ className: "p-3 text-text-secondary",
424
+ children: e.modifiedAt
425
+ }),
426
+ /* @__PURE__ */ x("td", {
427
+ className: "p-3 text-text-secondary",
428
+ children: e.uploadedBy
429
+ }),
430
+ /* @__PURE__ */ x("td", {
431
+ className: "p-3",
432
+ children: /* @__PURE__ */ S("div", {
433
+ className: "flex justify-end gap-1",
434
+ children: [/* @__PURE__ */ x(C, {
435
+ variant: "outline",
436
+ size: "sm",
437
+ "aria-label": "Download",
438
+ children: /* @__PURE__ */ x(a, { className: "h-3 w-3" })
439
+ }), /* @__PURE__ */ x(C, {
440
+ variant: "outline",
441
+ size: "sm",
442
+ "aria-label": "Share",
443
+ children: /* @__PURE__ */ x(g, { className: "h-3 w-3" })
444
+ })]
445
+ })
385
446
  })
386
- })
387
- ]
388
- }, e.id)) })]
447
+ ]
448
+ }, e.id)) })]
449
+ })
389
450
  })
390
451
  })
391
- }) })] }),
392
- q && /* @__PURE__ */ S("div", {
393
- className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
394
- children: /* @__PURE__ */ C(T, {
395
- className: "mx-4 w-full max-w-md",
396
- children: [/* @__PURE__ */ S(D, { children: /* @__PURE__ */ C("div", {
452
+ })] }),
453
+ Y && /* @__PURE__ */ x("div", {
454
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-bg-overlay",
455
+ children: /* @__PURE__ */ S(O, {
456
+ treatment: "glass",
457
+ className: "mx-4 w-full max-w-md border-border-seam",
458
+ children: [/* @__PURE__ */ x(E, { children: /* @__PURE__ */ S("div", {
397
459
  className: "flex items-center justify-between",
398
- children: [/* @__PURE__ */ S(O, { children: "Upload Files" }), /* @__PURE__ */ S(w, {
460
+ children: [/* @__PURE__ */ x(D, { children: "Upload Files" }), /* @__PURE__ */ x(C, {
399
461
  variant: "outline",
400
462
  size: "sm",
401
- onClick: () => J(!1),
463
+ onClick: () => X(!1),
402
464
  children: "Close"
403
465
  })]
404
- }) }), /* @__PURE__ */ C(E, {
466
+ }) }), /* @__PURE__ */ S(T, {
405
467
  className: "space-y-4",
406
468
  children: [
407
- /* @__PURE__ */ C("div", {
408
- className: "flex flex-col items-center justify-center rounded-lg border-2 border-dashed p-8",
469
+ /* @__PURE__ */ S("div", {
470
+ className: "flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-border-seam p-8",
409
471
  children: [
410
- /* @__PURE__ */ S(y, { className: "h-10 w-10 text-text-secondary" }),
411
- /* @__PURE__ */ S("p", {
472
+ /* @__PURE__ */ x(v, { className: "h-10 w-10 text-text-secondary" }),
473
+ /* @__PURE__ */ x("p", {
412
474
  className: "mt-2 text-sm font-medium",
413
475
  children: "Drag & drop files here"
414
476
  }),
415
- /* @__PURE__ */ S("p", {
477
+ /* @__PURE__ */ x("p", {
416
478
  className: "text-xs text-text-secondary",
417
479
  children: "or click to browse"
418
480
  })
419
481
  ]
420
482
  }),
421
- /* @__PURE__ */ C("div", {
483
+ /* @__PURE__ */ S("div", {
422
484
  className: "space-y-2",
423
- children: [/* @__PURE__ */ S("label", {
485
+ children: [/* @__PURE__ */ x("label", {
424
486
  className: "text-sm font-medium",
487
+ htmlFor: "upload-folder",
425
488
  children: "Destination Folder"
426
- }), /* @__PURE__ */ C("select", {
427
- className: "w-full rounded border bg-bg-surface px-3 py-2 text-sm",
428
- children: [/* @__PURE__ */ S("option", {
489
+ }), /* @__PURE__ */ S("select", {
490
+ id: "upload-folder",
491
+ className: "w-full rounded border border-border-seam bg-bg-surface px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
492
+ children: [/* @__PURE__ */ x("option", {
429
493
  value: "",
430
494
  children: "Root"
431
- }), P.map((e) => /* @__PURE__ */ S("option", {
495
+ }), I.map((e) => /* @__PURE__ */ x("option", {
432
496
  value: e.id,
433
497
  children: e.name
434
498
  }, e.id))]
435
499
  })]
436
500
  }),
437
- /* @__PURE__ */ C("div", {
501
+ /* @__PURE__ */ S("div", {
438
502
  className: "flex gap-2",
439
- children: [/* @__PURE__ */ S(w, {
503
+ children: [/* @__PURE__ */ x(C, {
440
504
  variant: "outline",
441
505
  className: "flex-1",
442
- onClick: () => J(!1),
506
+ onClick: () => X(!1),
443
507
  children: "Cancel"
444
- }), /* @__PURE__ */ S(w, {
508
+ }), /* @__PURE__ */ x(C, {
445
509
  className: "flex-1",
446
510
  children: "Upload"
447
511
  })]
@@ -450,34 +514,39 @@ function P() {
450
514
  })]
451
515
  })
452
516
  }),
453
- Y && /* @__PURE__ */ S("div", {
454
- className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50",
455
- children: /* @__PURE__ */ C(T, {
456
- className: "mx-4 w-full max-w-md",
457
- children: [/* @__PURE__ */ S(D, { children: /* @__PURE__ */ C("div", {
517
+ ie && /* @__PURE__ */ x("div", {
518
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-bg-overlay",
519
+ children: /* @__PURE__ */ S(O, {
520
+ treatment: "glass",
521
+ className: "mx-4 w-full max-w-md border-border-seam",
522
+ children: [/* @__PURE__ */ x(E, { children: /* @__PURE__ */ S("div", {
458
523
  className: "flex items-center justify-between",
459
- children: [/* @__PURE__ */ S(O, { children: "Create Folder" }), /* @__PURE__ */ S(w, {
524
+ children: [/* @__PURE__ */ x(D, { children: "Create Folder" }), /* @__PURE__ */ x(C, {
460
525
  variant: "outline",
461
526
  size: "sm",
462
- onClick: () => X(!1),
527
+ onClick: () => Z(!1),
463
528
  children: "Close"
464
529
  })]
465
- }) }), /* @__PURE__ */ C(E, {
530
+ }) }), /* @__PURE__ */ S(T, {
466
531
  className: "space-y-4",
467
- children: [/* @__PURE__ */ C("div", {
532
+ children: [/* @__PURE__ */ S("div", {
468
533
  className: "space-y-2",
469
- children: [/* @__PURE__ */ S("label", {
534
+ children: [/* @__PURE__ */ x("label", {
470
535
  className: "text-sm font-medium",
536
+ htmlFor: "folder-name",
471
537
  children: "Folder Name"
472
- }), /* @__PURE__ */ S(k, { placeholder: "Enter folder name..." })]
473
- }), /* @__PURE__ */ C("div", {
538
+ }), /* @__PURE__ */ x(A, {
539
+ id: "folder-name",
540
+ placeholder: "Enter folder name..."
541
+ })]
542
+ }), /* @__PURE__ */ S("div", {
474
543
  className: "flex gap-2",
475
- children: [/* @__PURE__ */ S(w, {
544
+ children: [/* @__PURE__ */ x(C, {
476
545
  variant: "outline",
477
546
  className: "flex-1",
478
- onClick: () => X(!1),
547
+ onClick: () => Z(!1),
479
548
  children: "Cancel"
480
- }), /* @__PURE__ */ S(w, {
549
+ }), /* @__PURE__ */ x(C, {
481
550
  className: "flex-1",
482
551
  children: "Create"
483
552
  })]
@@ -489,6 +558,6 @@ function P() {
489
558
  });
490
559
  }
491
560
  //#endregion
492
- export { P as DocumentsPage };
561
+ export { I as DocumentsPage };
493
562
 
494
563
  //# sourceMappingURL=DocumentsPage.js.map