@burdenoff/microfe-crewfoundry 2026.1029.1 → 2026.1030.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 (39) hide show
  1. package/dist/crewfoundry/lib/useFocusedRecordParam.d.ts +51 -0
  2. package/dist/crewfoundry/lib/useFocusedRecordParam.d.ts.map +1 -0
  3. package/dist/crewfoundry/lib/useFocusedRecordParam.js +38 -0
  4. package/dist/crewfoundry/lib/useFocusedRecordParam.js.map +1 -0
  5. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts.map +1 -1
  6. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +119 -112
  7. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  8. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts.map +1 -1
  9. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +78 -71
  10. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts.map +1 -1
  12. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +88 -81
  13. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  14. package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -1
  15. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +133 -126
  16. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts.map +1 -1
  18. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +150 -143
  19. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  20. package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts.map +1 -1
  21. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +110 -103
  22. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts.map +1 -1
  24. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +173 -162
  25. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  26. package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts.map +1 -1
  27. package/dist/crewfoundry/pages/HrPayrollPagePage.js +169 -158
  28. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts.map +1 -1
  30. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +179 -163
  31. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  32. package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
  33. package/dist/crewfoundry/store/crewfoundryStore.js +218 -203
  34. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
  35. package/dist/utils/pageContext.d.ts +43 -4
  36. package/dist/utils/pageContext.d.ts.map +1 -1
  37. package/dist/utils/pageContext.js +10 -3
  38. package/dist/utils/pageContext.js.map +1 -1
  39. package/package.json +3 -2
@@ -5,14 +5,15 @@ import { KanbanBoard as r } from "../components/viz/KanbanBoard.js";
5
5
  import { RatingStars as i } from "../components/viz/RatingStars.js";
6
6
  import "../components/viz/index.js";
7
7
  import { FormModal as a } from "../components/forms/FormModal.js";
8
- import { ConfirmDialog as o } from "../components/forms/ConfirmDialog.js";
9
- import { getNumber as s, getTags as c, getText as l, newClientId as ee } from "../components/forms/formValues.js";
10
- import { useMemo as u, useState as d } from "react";
11
- import { ArrowRightLeft as f, LayoutGrid as p, Pencil as m, Plus as h, Search as g, Table2 as _, Trash2 as v } from "lucide-react";
12
- import { jsx as y, jsxs as b } from "react/jsx-runtime";
13
- import { Badge as x, Button as S, CardContent as C, DropdownMenu as w, DropdownMenuContent as T, DropdownMenuItem as E, DropdownMenuLabel as D, DropdownMenuSeparator as O, DropdownMenuTrigger as k, GlassCard as A, GradientText as j, IllustratedEmptyState as M, Input as N, PagePurpose as P, Pagination as F, ResponsiveTable as te } from "@burdenoff/fe-libs/ui";
14
- import { usePagination as ne } from "@burdenoff/fe-libs/shared/hooks";
15
- import { useGlobalUi as re } from "@burdenoff/fe-libs/shared/providers/shell";
8
+ import { useFocusedRecordParam as o } from "../lib/useFocusedRecordParam.js";
9
+ import { ConfirmDialog as s } from "../components/forms/ConfirmDialog.js";
10
+ import { getNumber as c, getTags as l, getText as u, newClientId as d } from "../components/forms/formValues.js";
11
+ import { useMemo as f, useState as p } from "react";
12
+ import { ArrowRightLeft as m, LayoutGrid as h, Pencil as g, Plus as _, Search as v, Table2 as y, Trash2 as b } from "lucide-react";
13
+ import { jsx as x, jsxs as S } from "react/jsx-runtime";
14
+ import { Badge as C, Button as w, CardContent as T, DropdownMenu as E, DropdownMenuContent as D, DropdownMenuItem as O, DropdownMenuLabel as k, DropdownMenuSeparator as A, DropdownMenuTrigger as j, GlassCard as M, GradientText as N, IllustratedEmptyState as P, Input as F, PagePurpose as ee, Pagination as te, ResponsiveTable as ne } from "@burdenoff/fe-libs/ui";
15
+ import { usePagination as re } from "@burdenoff/fe-libs/shared/hooks";
16
+ import { useGlobalUi as ie } from "@burdenoff/fe-libs/shared/providers/shell";
16
17
  //#region src/crewfoundry/pages/HiringCandidatesPagePage.tsx
17
18
  var I = [
18
19
  {
@@ -178,26 +179,26 @@ var I = [
178
179
  skills: e.skills,
179
180
  notes: e.notes
180
181
  }), B = (e) => {
181
- let t = l(e, "appliedDate");
182
+ let t = u(e, "appliedDate");
182
183
  return {
183
- firstName: l(e, "firstName"),
184
- lastName: l(e, "lastName"),
185
- email: l(e, "email"),
186
- phone: l(e, "phone"),
187
- position: l(e, "position"),
184
+ firstName: u(e, "firstName"),
185
+ lastName: u(e, "lastName"),
186
+ email: u(e, "email"),
187
+ phone: u(e, "phone"),
188
+ position: u(e, "position"),
188
189
  status: e.status,
189
- source: l(e, "source"),
190
- experience: s(e, "experience"),
191
- currentCompany: l(e, "currentCompany"),
192
- rating: s(e, "rating"),
190
+ source: u(e, "source"),
191
+ experience: c(e, "experience"),
192
+ currentCompany: u(e, "currentCompany"),
193
+ rating: c(e, "rating"),
193
194
  appliedDate: t.trim() === "" ? (/* @__PURE__ */ new Date()).toISOString().slice(0, 10) : t,
194
- resumeUrl: l(e, "resumeUrl"),
195
- skills: c(e, "skills"),
196
- notes: l(e, "notes")
195
+ resumeUrl: u(e, "resumeUrl"),
196
+ skills: l(e, "skills"),
197
+ notes: u(e, "notes")
197
198
  };
198
199
  };
199
200
  function V({ name: e, size: t = 36 }) {
200
- return /* @__PURE__ */ y("span", {
201
+ return /* @__PURE__ */ x("span", {
201
202
  className: "inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border-subtle bg-bg-sunken font-medium text-text-secondary",
202
203
  style: {
203
204
  width: t,
@@ -213,19 +214,19 @@ var H = [
213
214
  key: "name",
214
215
  header: "Name",
215
216
  priority: "primary",
216
- cell: (e) => /* @__PURE__ */ b("div", {
217
+ cell: (e) => /* @__PURE__ */ S("div", {
217
218
  className: "flex items-center gap-2",
218
- children: [/* @__PURE__ */ y(V, {
219
+ children: [/* @__PURE__ */ x(V, {
219
220
  name: `${e.firstName} ${e.lastName}`,
220
221
  size: 30
221
- }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("p", {
222
+ }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("p", {
222
223
  className: "font-medium",
223
224
  children: [
224
225
  e.firstName,
225
226
  " ",
226
227
  e.lastName
227
228
  ]
228
- }), /* @__PURE__ */ y("p", {
229
+ }), /* @__PURE__ */ x("p", {
229
230
  className: "text-xs text-text-secondary",
230
231
  children: e.email
231
232
  })] })]
@@ -235,7 +236,7 @@ var H = [
235
236
  key: "position",
236
237
  header: "Position",
237
238
  priority: "secondary",
238
- cell: (e) => /* @__PURE__ */ y("span", {
239
+ cell: (e) => /* @__PURE__ */ x("span", {
239
240
  className: "text-text-secondary",
240
241
  children: e.position
241
242
  })
@@ -244,7 +245,7 @@ var H = [
244
245
  key: "source",
245
246
  header: "Source",
246
247
  priority: "secondary",
247
- cell: (e) => /* @__PURE__ */ y(x, {
248
+ cell: (e) => /* @__PURE__ */ x(C, {
248
249
  variant: "outline",
249
250
  className: "w-fit h-fit text-[10px]",
250
251
  children: e.source
@@ -254,13 +255,13 @@ var H = [
254
255
  key: "experience",
255
256
  header: "Experience",
256
257
  priority: "secondary",
257
- cell: (e) => /* @__PURE__ */ b("span", { children: [e.experience, " yrs"] })
258
+ cell: (e) => /* @__PURE__ */ S("span", { children: [e.experience, " yrs"] })
258
259
  },
259
260
  {
260
261
  key: "rating",
261
262
  header: "Rating",
262
263
  priority: "secondary",
263
- cell: (e) => /* @__PURE__ */ y(i, {
264
+ cell: (e) => /* @__PURE__ */ x(i, {
264
265
  value: e.rating,
265
266
  size: 13
266
267
  })
@@ -269,7 +270,7 @@ var H = [
269
270
  key: "applied",
270
271
  header: "Applied",
271
272
  priority: "hidden-on-mobile",
272
- cell: (e) => /* @__PURE__ */ y("span", {
273
+ cell: (e) => /* @__PURE__ */ x("span", {
273
274
  className: "text-text-secondary text-xs",
274
275
  children: e.appliedDate
275
276
  })
@@ -278,7 +279,7 @@ var H = [
278
279
  key: "status",
279
280
  header: "Status",
280
281
  priority: "secondary",
281
- cell: (e) => /* @__PURE__ */ y(x, {
282
+ cell: (e) => /* @__PURE__ */ x(C, {
282
283
  variant: e.status === "hired" || e.status === "offer" ? "default" : e.status === "rejected" ? "destructive" : "secondary",
283
284
  className: "text-[10px]",
284
285
  children: t(e.status)
@@ -286,175 +287,181 @@ var H = [
286
287
  }
287
288
  ];
288
289
  function U() {
289
- let { showToast: n } = re(), { candidates: i, addCandidate: s, updateCandidate: c, removeCandidate: l } = e(), [f, x] = d(""), [w, T] = d("board"), [E, D] = d("all"), { page: O, pageSize: k, offset: I, setPage: V } = ne({ initialPageSize: 25 }), [U, G] = d(!1), [K, q] = d(null), [J, Y] = d(null), X = async (e) => {
290
- await s({
291
- id: ee(),
290
+ let { showToast: n } = ie(), { candidates: i, addCandidate: c, updateCandidate: l, removeCandidate: u } = e(), [m, C] = p(""), [E, D] = p("board"), [O, k] = p("all"), { page: A, pageSize: j, offset: I, setPage: V } = re({ initialPageSize: 25 }), [U, G] = p(!1), [K, q] = p(null), [J, Y] = p(null);
291
+ o({
292
+ records: i,
293
+ activeId: K?.id ?? null,
294
+ onRestore: q
295
+ });
296
+ let ae = async (e) => {
297
+ await c({
298
+ id: d(),
292
299
  ...B(e)
293
300
  }), n("Candidate added", "success");
294
- }, ie = async (e) => {
295
- K && (await c(K.id, B(e)), n("Candidate updated", "success"));
296
- }, ae = async () => {
297
- J && (await l(J.id), n("Candidate removed", "success"));
298
- }, oe = async (e, r) => {
301
+ }, oe = async (e) => {
302
+ K && (await l(K.id, B(e)), n("Candidate updated", "success"));
303
+ }, se = async () => {
304
+ J && (await u(J.id), n("Candidate removed", "success"));
305
+ }, ce = async (e, r) => {
299
306
  if (e.status !== r) try {
300
- await c(e.id, { status: r }), n(`${e.firstName} ${e.lastName} moved to ${t(r)}`, "success");
307
+ await l(e.id, { status: r }), n(`${e.firstName} ${e.lastName} moved to ${t(r)}`, "success");
301
308
  } catch {
302
309
  n("Could not move candidate", "error");
303
310
  }
304
- }, Z = f.toLowerCase(), Q = u(() => i.filter((e) => `${e.firstName} ${e.lastName} ${e.position} ${e.email}`.toLowerCase().includes(Z)), [i, Z]), $ = Q.filter((e) => E === "all" || e.status === E), se = $.slice(I, I + k), ce = L.map((e) => {
305
- let t = Q.filter((t) => t.status === e.key).sort((e, t) => t.rating - e.rating);
311
+ }, X = m.toLowerCase(), Z = f(() => i.filter((e) => `${e.firstName} ${e.lastName} ${e.position} ${e.email}`.toLowerCase().includes(X)), [i, X]), Q = Z.filter((e) => O === "all" || e.status === O), le = Q.slice(I, I + j), $ = L.map((e) => {
312
+ let t = Z.filter((t) => t.status === e.key).sort((e, t) => t.rating - e.rating);
306
313
  return {
307
314
  id: e.key,
308
315
  title: e.label,
309
316
  accent: e.accent,
310
- items: t.map((e) => /* @__PURE__ */ y(W, {
317
+ items: t.map((e) => /* @__PURE__ */ x(W, {
311
318
  candidate: e,
312
- onMove: oe,
319
+ onMove: ce,
313
320
  onEdit: () => q(e),
314
321
  onDelete: () => Y(e)
315
322
  }, e.id))
316
323
  };
317
324
  });
318
- return /* @__PURE__ */ b("div", {
325
+ return /* @__PURE__ */ S("div", {
319
326
  className: "space-y-6 p-6",
320
327
  children: [
321
- /* @__PURE__ */ b("div", {
328
+ /* @__PURE__ */ S("div", {
322
329
  className: "flex flex-wrap items-start justify-between gap-3",
323
- children: [/* @__PURE__ */ b("div", { children: [
324
- /* @__PURE__ */ y("h1", {
330
+ children: [/* @__PURE__ */ S("div", { children: [
331
+ /* @__PURE__ */ x("h1", {
325
332
  className: "text-2xl font-semibold",
326
- children: /* @__PURE__ */ y(j, { children: "Candidate Pipeline" })
333
+ children: /* @__PURE__ */ x(N, { children: "Candidate Pipeline" })
327
334
  }),
328
- /* @__PURE__ */ b("p", {
335
+ /* @__PURE__ */ S("p", {
329
336
  className: "text-sm text-text-secondary",
330
337
  children: [i.length, " candidates in pipeline"]
331
338
  }),
332
- /* @__PURE__ */ y(P, {
339
+ /* @__PURE__ */ x(ee, {
333
340
  className: "mt-1",
334
341
  children: "Track every candidate as they move through your hiring stages — drag work through New, Screening, Interview, Assessment, Offer, and Hired to keep the pipeline flowing."
335
342
  })
336
- ] }), /* @__PURE__ */ b(S, {
343
+ ] }), /* @__PURE__ */ S(w, {
337
344
  size: "sm",
338
345
  onClick: () => G(!0),
339
- children: [/* @__PURE__ */ y(h, { className: "h-4 w-4 mr-1" }), "Add Candidate"]
346
+ children: [/* @__PURE__ */ x(_, { className: "h-4 w-4 mr-1" }), "Add Candidate"]
340
347
  })]
341
348
  }),
342
- /* @__PURE__ */ b("div", {
349
+ /* @__PURE__ */ S("div", {
343
350
  className: "flex flex-wrap items-center gap-3",
344
- children: [/* @__PURE__ */ b("div", {
351
+ children: [/* @__PURE__ */ S("div", {
345
352
  className: "relative flex-1 min-w-[12rem] max-w-sm",
346
- children: [/* @__PURE__ */ y(g, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ y(N, {
353
+ children: [/* @__PURE__ */ x(v, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ x(F, {
347
354
  placeholder: "Search candidates...",
348
355
  className: "pl-9",
349
- value: f,
356
+ value: m,
350
357
  onChange: (e) => {
351
- x(e.target.value), V(1);
358
+ C(e.target.value), V(1);
352
359
  }
353
360
  })]
354
- }), /* @__PURE__ */ b("div", {
361
+ }), /* @__PURE__ */ S("div", {
355
362
  className: "inline-flex items-center gap-1 rounded-full border border-border-subtle bg-bg-sunken p-1",
356
- children: [/* @__PURE__ */ b(S, {
357
- variant: w === "board" ? "default" : "ghost",
363
+ children: [/* @__PURE__ */ S(w, {
364
+ variant: E === "board" ? "default" : "ghost",
358
365
  size: "sm",
359
366
  className: "rounded-full",
360
- onClick: () => T("board"),
361
- children: [/* @__PURE__ */ y(p, { className: "h-4 w-4 mr-1" }), "Board"]
362
- }), /* @__PURE__ */ b(S, {
363
- variant: w === "table" ? "default" : "ghost",
367
+ onClick: () => D("board"),
368
+ children: [/* @__PURE__ */ x(h, { className: "h-4 w-4 mr-1" }), "Board"]
369
+ }), /* @__PURE__ */ S(w, {
370
+ variant: E === "table" ? "default" : "ghost",
364
371
  size: "sm",
365
372
  className: "rounded-full",
366
- onClick: () => T("table"),
367
- children: [/* @__PURE__ */ y(_, { className: "h-4 w-4 mr-1" }), "Table"]
373
+ onClick: () => D("table"),
374
+ children: [/* @__PURE__ */ x(y, { className: "h-4 w-4 mr-1" }), "Table"]
368
375
  })]
369
376
  })]
370
377
  }),
371
- i.length === 0 ? /* @__PURE__ */ y(A, {
378
+ i.length === 0 ? /* @__PURE__ */ x(M, {
372
379
  treatment: "glass",
373
380
  className: "border-border-seam",
374
- children: /* @__PURE__ */ y(C, {
381
+ children: /* @__PURE__ */ x(T, {
375
382
  className: "p-4",
376
- children: /* @__PURE__ */ y(M, {
383
+ children: /* @__PURE__ */ x(P, {
377
384
  illustration: "empty-search",
378
385
  title: "No candidates yet",
379
386
  description: "Add your first candidate to start building the pipeline."
380
387
  })
381
388
  })
382
- }) : w === "board" ? /* @__PURE__ */ y(r, {
383
- columns: ce,
389
+ }) : E === "board" ? /* @__PURE__ */ x(r, {
390
+ columns: $,
384
391
  emptyColumnHint: "No candidates in this stage"
385
- }) : /* @__PURE__ */ y(A, {
392
+ }) : /* @__PURE__ */ x(M, {
386
393
  treatment: "glass",
387
394
  glow: !0,
388
395
  className: "border-border-seam",
389
- children: /* @__PURE__ */ b(C, {
396
+ children: /* @__PURE__ */ S(T, {
390
397
  className: "p-4",
391
398
  children: [
392
- /* @__PURE__ */ b("div", {
399
+ /* @__PURE__ */ S("div", {
393
400
  className: "mb-3 flex flex-wrap gap-1",
394
- children: [/* @__PURE__ */ y(S, {
395
- variant: E === "all" ? "default" : "outline",
401
+ children: [/* @__PURE__ */ x(w, {
402
+ variant: O === "all" ? "default" : "outline",
396
403
  size: "sm",
397
404
  onClick: () => {
398
- D("all"), V(1);
405
+ k("all"), V(1);
399
406
  },
400
407
  children: "All"
401
- }), L.map((e) => /* @__PURE__ */ y(S, {
402
- variant: E === e.key ? "default" : "outline",
408
+ }), L.map((e) => /* @__PURE__ */ x(w, {
409
+ variant: O === e.key ? "default" : "outline",
403
410
  size: "sm",
404
411
  onClick: () => {
405
- D(e.key), V(1);
412
+ k(e.key), V(1);
406
413
  },
407
414
  children: e.label
408
415
  }, e.key))]
409
416
  }),
410
- /* @__PURE__ */ y(te, {
411
- data: se,
417
+ /* @__PURE__ */ x(ne, {
418
+ data: le,
412
419
  rowKey: (e) => e.id,
413
420
  columns: H,
414
- emptyState: /* @__PURE__ */ y(M, {
421
+ emptyState: /* @__PURE__ */ x(P, {
415
422
  illustration: "empty-search",
416
423
  title: "No candidates match",
417
424
  description: "Try a different search term or status filter."
418
425
  }),
419
- rowActions: (e) => /* @__PURE__ */ b("div", {
426
+ rowActions: (e) => /* @__PURE__ */ S("div", {
420
427
  className: "flex items-center justify-end gap-1",
421
- children: [/* @__PURE__ */ y(S, {
428
+ children: [/* @__PURE__ */ x(w, {
422
429
  variant: "ghost",
423
430
  size: "sm",
424
431
  "aria-label": `Edit ${e.firstName} ${e.lastName}`,
425
432
  onClick: () => q(e),
426
- children: /* @__PURE__ */ y(m, { className: "h-3.5 w-3.5" })
427
- }), /* @__PURE__ */ y(S, {
433
+ children: /* @__PURE__ */ x(g, { className: "h-3.5 w-3.5" })
434
+ }), /* @__PURE__ */ x(w, {
428
435
  variant: "ghost",
429
436
  size: "sm",
430
437
  "aria-label": `Delete ${e.firstName} ${e.lastName}`,
431
438
  onClick: () => Y(e),
432
- children: /* @__PURE__ */ y(v, { className: "h-3.5 w-3.5 text-status-error-fg" })
439
+ children: /* @__PURE__ */ x(b, { className: "h-3.5 w-3.5 text-status-error-fg" })
433
440
  })]
434
441
  })
435
442
  }),
436
- $.length > k && /* @__PURE__ */ y("div", {
443
+ Q.length > j && /* @__PURE__ */ x("div", {
437
444
  className: "mt-4",
438
- children: /* @__PURE__ */ y(F, {
439
- page: O,
440
- pageSize: k,
441
- totalItems: $.length,
445
+ children: /* @__PURE__ */ x(te, {
446
+ page: A,
447
+ pageSize: j,
448
+ totalItems: Q.length,
442
449
  onPageChange: V
443
450
  })
444
451
  })
445
452
  ]
446
453
  })
447
454
  }),
448
- /* @__PURE__ */ y(a, {
455
+ /* @__PURE__ */ x(a, {
449
456
  open: U,
450
457
  onOpenChange: G,
451
458
  title: "Add Candidate",
452
459
  description: "Add someone to your hiring pipeline.",
453
460
  fields: R,
454
461
  submitLabel: "Add candidate",
455
- onSubmit: X
462
+ onSubmit: ae
456
463
  }),
457
- /* @__PURE__ */ y(a, {
464
+ /* @__PURE__ */ x(a, {
458
465
  open: K !== null,
459
466
  onOpenChange: (e) => {
460
467
  e || q(null);
@@ -464,9 +471,9 @@ function U() {
464
471
  fields: R,
465
472
  initialValues: K ? z(K) : void 0,
466
473
  submitLabel: "Save changes",
467
- onSubmit: ie
474
+ onSubmit: oe
468
475
  }),
469
- /* @__PURE__ */ y(o, {
476
+ /* @__PURE__ */ x(s, {
470
477
  open: J !== null,
471
478
  onOpenChange: (e) => {
472
479
  e || Y(null);
@@ -475,91 +482,91 @@ function U() {
475
482
  description: J ? `Remove ${J.firstName} ${J.lastName} from the pipeline?` : void 0,
476
483
  confirmLabel: "Remove",
477
484
  destructive: !0,
478
- onConfirm: ae
485
+ onConfirm: se
479
486
  })
480
487
  ]
481
488
  });
482
489
  }
483
490
  function W({ candidate: e, onMove: t, onEdit: n, onDelete: r }) {
484
491
  let a = `${e.firstName} ${e.lastName}`;
485
- return /* @__PURE__ */ b("div", {
492
+ return /* @__PURE__ */ S("div", {
486
493
  className: "group rounded-[var(--radius-input)] border border-border-subtle bg-bg-surface p-3 shadow-elevation-1 transition-shadow hover:shadow-elevation-2",
487
494
  children: [
488
- /* @__PURE__ */ b("div", {
495
+ /* @__PURE__ */ S("div", {
489
496
  className: "flex items-start gap-2.5",
490
- children: [/* @__PURE__ */ y(V, {
497
+ children: [/* @__PURE__ */ x(V, {
491
498
  name: a,
492
499
  size: 36
493
- }), /* @__PURE__ */ b("div", {
500
+ }), /* @__PURE__ */ S("div", {
494
501
  className: "min-w-0 flex-1",
495
- children: [/* @__PURE__ */ y("p", {
502
+ children: [/* @__PURE__ */ x("p", {
496
503
  className: "truncate text-sm font-semibold text-text-primary",
497
504
  children: a
498
- }), /* @__PURE__ */ y("p", {
505
+ }), /* @__PURE__ */ x("p", {
499
506
  className: "truncate text-xs text-text-secondary",
500
507
  children: e.position
501
508
  })]
502
509
  })]
503
510
  }),
504
- /* @__PURE__ */ b("div", {
511
+ /* @__PURE__ */ S("div", {
505
512
  className: "mt-2 flex items-center justify-between gap-2",
506
- children: [/* @__PURE__ */ y(i, {
513
+ children: [/* @__PURE__ */ x(i, {
507
514
  value: e.rating,
508
515
  size: 13
509
- }), /* @__PURE__ */ y(x, {
516
+ }), /* @__PURE__ */ x(C, {
510
517
  variant: "outline",
511
518
  className: "shrink-0 text-[9px]",
512
519
  children: e.source
513
520
  })]
514
521
  }),
515
- e.skills.length > 0 && /* @__PURE__ */ y("div", {
522
+ e.skills.length > 0 && /* @__PURE__ */ x("div", {
516
523
  className: "mt-2 flex flex-wrap gap-1",
517
- children: e.skills.slice(0, 3).map((e) => /* @__PURE__ */ y(x, {
524
+ children: e.skills.slice(0, 3).map((e) => /* @__PURE__ */ x(C, {
518
525
  variant: "secondary",
519
526
  className: "text-[9px]",
520
527
  children: e
521
528
  }, e))
522
529
  }),
523
- /* @__PURE__ */ b("div", {
530
+ /* @__PURE__ */ S("div", {
524
531
  className: "mt-2.5 flex items-center justify-between gap-1 border-t border-border-subtle pt-2",
525
- children: [/* @__PURE__ */ b(w, { children: [/* @__PURE__ */ y(k, {
532
+ children: [/* @__PURE__ */ S(E, { children: [/* @__PURE__ */ x(j, {
526
533
  asChild: !0,
527
- children: /* @__PURE__ */ b(S, {
534
+ children: /* @__PURE__ */ S(w, {
528
535
  variant: "ghost",
529
536
  size: "sm",
530
537
  className: "h-7 px-2 text-xs",
531
- children: [/* @__PURE__ */ y(f, { className: "mr-1 h-3.5 w-3.5" }), "Move"]
538
+ children: [/* @__PURE__ */ x(m, { className: "mr-1 h-3.5 w-3.5" }), "Move"]
532
539
  })
533
- }), /* @__PURE__ */ b(T, {
540
+ }), /* @__PURE__ */ S(D, {
534
541
  align: "start",
535
542
  children: [
536
- /* @__PURE__ */ y(D, { children: "Move to stage" }),
537
- /* @__PURE__ */ y(O, {}),
538
- L.filter((t) => t.key !== e.status).map((n) => /* @__PURE__ */ b(E, {
543
+ /* @__PURE__ */ x(k, { children: "Move to stage" }),
544
+ /* @__PURE__ */ x(A, {}),
545
+ L.filter((t) => t.key !== e.status).map((n) => /* @__PURE__ */ S(O, {
539
546
  onSelect: () => t(e, n.key),
540
- children: [/* @__PURE__ */ y("span", {
547
+ children: [/* @__PURE__ */ x("span", {
541
548
  "aria-hidden": "true",
542
549
  className: "mr-2 inline-block h-2 w-2 rounded-full",
543
550
  style: { backgroundColor: n.accent }
544
551
  }), n.label]
545
552
  }, n.key))
546
553
  ]
547
- })] }), /* @__PURE__ */ b("div", {
554
+ })] }), /* @__PURE__ */ S("div", {
548
555
  className: "flex items-center gap-0.5",
549
- children: [/* @__PURE__ */ y(S, {
556
+ children: [/* @__PURE__ */ x(w, {
550
557
  variant: "ghost",
551
558
  size: "sm",
552
559
  className: "h-7 w-7 p-0",
553
560
  "aria-label": `Edit ${a}`,
554
561
  onClick: n,
555
- children: /* @__PURE__ */ y(m, { className: "h-3.5 w-3.5" })
556
- }), /* @__PURE__ */ y(S, {
562
+ children: /* @__PURE__ */ x(g, { className: "h-3.5 w-3.5" })
563
+ }), /* @__PURE__ */ x(w, {
557
564
  variant: "ghost",
558
565
  size: "sm",
559
566
  className: "h-7 w-7 p-0",
560
567
  "aria-label": `Delete ${a}`,
561
568
  onClick: r,
562
- children: /* @__PURE__ */ y(v, { className: "h-3.5 w-3.5 text-status-error-fg" })
569
+ children: /* @__PURE__ */ x(b, { className: "h-3.5 w-3.5 text-status-error-fg" })
563
570
  })]
564
571
  })]
565
572
  })