ptechcore_ui 1.0.20 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -230,7 +230,20 @@ import {
230
230
  DollarSign,
231
231
  HelpCircle as HelpCircle2,
232
232
  Building2,
233
- LayoutGrid
233
+ LayoutGrid,
234
+ Mail,
235
+ Phone,
236
+ Shield,
237
+ Briefcase,
238
+ Edit3,
239
+ Camera,
240
+ Eye as Eye2,
241
+ EyeOff,
242
+ Lock,
243
+ Save,
244
+ Loader2,
245
+ Check as Check2,
246
+ Trash2
234
247
  } from "lucide-react";
235
248
 
236
249
  // src/assets/modules-icons/crm-blue.svg
@@ -759,6 +772,36 @@ var FetchApi = class {
759
772
  if (!res.ok) throw new Error(await res.text());
760
773
  return res.json();
761
774
  }
775
+ static async uploadFile(url, formData, token) {
776
+ const headers = {};
777
+ const local_token = localStorage.getItem("token");
778
+ if (local_token) {
779
+ headers["Authorization"] = `Token ${local_token}`;
780
+ }
781
+ const res = await fetch(url, {
782
+ method: "POST",
783
+ headers,
784
+ body: formData
785
+ });
786
+ if (!res.ok) throw new Error(await res.text());
787
+ return res.json();
788
+ }
789
+ static async patch(url, payload, token) {
790
+ const headers = {
791
+ "Content-Type": "application/json"
792
+ };
793
+ const local_token = localStorage.getItem("token");
794
+ if (local_token) {
795
+ headers["Authorization"] = `Token ${local_token}`;
796
+ }
797
+ const res = await fetch(url, {
798
+ method: "PATCH",
799
+ headers,
800
+ body: payload ? JSON.stringify(payload) : void 0
801
+ });
802
+ if (!res.ok) throw new Error(await res.text());
803
+ return res.json();
804
+ }
762
805
  };
763
806
 
764
807
  // src/services/AuthServices.ts
@@ -933,7 +976,22 @@ var UserServices = {
933
976
  getuserEntitiesAccess: (id, token) => FetchApi.get(`${API_URL}/core/entities/`, token),
934
977
  // !!! ce n'est pas la bonne url
935
978
  // Ajouter un utilisateur à une entité
936
- addUserToEntity: (entityId, userId, token) => FetchApi.post(`${API_URL}/core/entities/${entityId}/users/`, { user_id: userId }, token)
979
+ addUserToEntity: (entityId, userId, token) => FetchApi.post(`${API_URL}/core/entities/${entityId}/users/`, { user_id: userId }, token),
980
+ // === Nouvelles méthodes pour le profil utilisateur ===
981
+ // Mettre à jour le profil de l'utilisateur connecté
982
+ updateMyProfile: (data) => FetchApi.put(`${USERS_API_URL}me/`, data),
983
+ // Changer la photo de profil
984
+ updateProfilePicture: (file) => {
985
+ const formData = new FormData();
986
+ formData.append("profile_picture", file);
987
+ return FetchApi.uploadFile(`${USERS_API_URL}me/upload-picture/`, formData);
988
+ },
989
+ // Supprimer la photo de profil
990
+ deleteProfilePicture: () => FetchApi.delete(`${USERS_API_URL}me/delete-picture/`),
991
+ // Changer le mot de passe (utilisateur authentifié)
992
+ changePassword: (data) => FetchApi.post(`${API_BASE_URL2}change-my-password/`, data),
993
+ // Obtenir le profil de l'utilisateur connecté
994
+ getMyProfile: () => FetchApi.get(`${USERS_API_URL}me/`)
937
995
  };
938
996
 
939
997
  // src/contexts/ToastContext.tsx
@@ -960,9 +1018,10 @@ var ToastProvider = ({ children }) => {
960
1018
  };
961
1019
  const addToast = useCallback((toast) => {
962
1020
  const id = generateId();
1021
+ const defaultDuration = toast.type === "error" ? 7e3 : 3e3;
963
1022
  const newToast = {
964
1023
  id,
965
- duration: 5e3,
1024
+ duration: toast.duration ?? defaultDuration,
966
1025
  ...toast
967
1026
  };
968
1027
  setToasts((prev) => [...prev, newToast]);
@@ -1676,7 +1735,30 @@ var RewiseLayout = ({ children, module_name = "Rewise", module_description = "De
1676
1735
  const [showThemeMenu, setShowThemeMenu] = useState5(false);
1677
1736
  const [showCenterMenu, setShowCenterMenu] = useState5(false);
1678
1737
  const [showModulesMenu, setShowModulesMenu] = useState5(false);
1738
+ const [showProfileModal, setShowProfileModal] = useState5(false);
1739
+ const [showEditProfileModal, setShowEditProfileModal] = useState5(false);
1740
+ const [showChangePasswordModal, setShowChangePasswordModal] = useState5(false);
1679
1741
  const [currentSlide, setCurrentSlide] = useState5(0);
1742
+ const [editProfileData, setEditProfileData] = useState5({
1743
+ first_name: "",
1744
+ last_name: "",
1745
+ email: "",
1746
+ phonenumber: "",
1747
+ job_title: "",
1748
+ department: ""
1749
+ });
1750
+ const [savingProfile, setSavingProfile] = useState5(false);
1751
+ const [uploadingPhoto, setUploadingPhoto] = useState5(false);
1752
+ const [passwordData, setPasswordData] = useState5({
1753
+ current_password: "",
1754
+ new_password: "",
1755
+ confirm_password: ""
1756
+ });
1757
+ const [savingPassword, setSavingPassword] = useState5(false);
1758
+ const [showCurrentPassword, setShowCurrentPassword] = useState5(false);
1759
+ const [showNewPassword, setShowNewPassword] = useState5(false);
1760
+ const [showConfirmPassword, setShowConfirmPassword] = useState5(false);
1761
+ const fileInputRef = React4.useRef(null);
1680
1762
  const slides = [
1681
1763
  {
1682
1764
  title: "Rappel \u2013 Gestion des jours de cong\xE9",
@@ -1795,6 +1877,133 @@ var RewiseLayout = ({ children, module_name = "Rewise", module_description = "De
1795
1877
  showError("Erreur lors du marquage de la notification comme lue");
1796
1878
  }
1797
1879
  };
1880
+ const openEditProfileModal = () => {
1881
+ setEditProfileData({
1882
+ first_name: loggedUser?.first_name || "",
1883
+ last_name: loggedUser?.last_name || "",
1884
+ email: loggedUser?.email || "",
1885
+ phonenumber: loggedUser?.phonenumber || "",
1886
+ job_title: loggedUser?.job_title || "",
1887
+ department: loggedUser?.department || ""
1888
+ });
1889
+ setShowEditProfileModal(true);
1890
+ };
1891
+ const handleSaveProfile = async () => {
1892
+ setSavingProfile(true);
1893
+ try {
1894
+ const response = await UserServices.updateMyProfile(editProfileData);
1895
+ if (response.success) {
1896
+ success("Profil mis \xE0 jour avec succ\xE8s");
1897
+ setShowEditProfileModal(false);
1898
+ window.location.reload();
1899
+ } else {
1900
+ showError(response.message || "Erreur lors de la mise \xE0 jour du profil");
1901
+ }
1902
+ } catch (error) {
1903
+ console.error("Erreur lors de la mise \xE0 jour du profil:", error);
1904
+ showError("Erreur lors de la mise \xE0 jour du profil");
1905
+ } finally {
1906
+ setSavingProfile(false);
1907
+ }
1908
+ };
1909
+ const handlePhotoChange = async (event) => {
1910
+ const file = event.target.files?.[0];
1911
+ if (!file) return;
1912
+ const allowedTypes = ["image/jpeg", "image/png", "image/gif", "image/webp"];
1913
+ if (!allowedTypes.includes(file.type)) {
1914
+ showError("Format de fichier non support\xE9. Utilisez JPG, PNG, GIF ou WebP.");
1915
+ return;
1916
+ }
1917
+ const maxSize = 5 * 1024 * 1024;
1918
+ if (file.size > maxSize) {
1919
+ showError("La taille du fichier ne doit pas d\xE9passer 5 MB");
1920
+ return;
1921
+ }
1922
+ setUploadingPhoto(true);
1923
+ try {
1924
+ const response = await UserServices.updateProfilePicture(file);
1925
+ if (response.success) {
1926
+ success("Photo de profil mise \xE0 jour avec succ\xE8s");
1927
+ window.location.reload();
1928
+ } else {
1929
+ showError(response.message || "Erreur lors du t\xE9l\xE9chargement de la photo");
1930
+ }
1931
+ } catch (error) {
1932
+ console.error("Erreur lors du t\xE9l\xE9chargement de la photo:", error);
1933
+ showError("Erreur lors du t\xE9l\xE9chargement de la photo");
1934
+ } finally {
1935
+ setUploadingPhoto(false);
1936
+ if (fileInputRef.current) {
1937
+ fileInputRef.current.value = "";
1938
+ }
1939
+ }
1940
+ };
1941
+ const handleDeletePhoto = async () => {
1942
+ setUploadingPhoto(true);
1943
+ try {
1944
+ const response = await UserServices.deleteProfilePicture();
1945
+ if (response.success) {
1946
+ success("Photo de profil supprim\xE9e");
1947
+ window.location.reload();
1948
+ } else {
1949
+ showError(response.message || "Erreur lors de la suppression de la photo");
1950
+ }
1951
+ } catch (error) {
1952
+ console.error("Erreur lors de la suppression de la photo:", error);
1953
+ showError("Erreur lors de la suppression de la photo");
1954
+ } finally {
1955
+ setUploadingPhoto(false);
1956
+ }
1957
+ };
1958
+ const openChangePasswordModal = () => {
1959
+ setPasswordData({
1960
+ current_password: "",
1961
+ new_password: "",
1962
+ confirm_password: ""
1963
+ });
1964
+ setShowCurrentPassword(false);
1965
+ setShowNewPassword(false);
1966
+ setShowConfirmPassword(false);
1967
+ setShowChangePasswordModal(true);
1968
+ };
1969
+ const handleChangePassword = async () => {
1970
+ if (!passwordData.current_password) {
1971
+ showError("Veuillez entrer votre mot de passe actuel");
1972
+ return;
1973
+ }
1974
+ if (!passwordData.new_password) {
1975
+ showError("Veuillez entrer un nouveau mot de passe");
1976
+ return;
1977
+ }
1978
+ if (passwordData.new_password.length < 8) {
1979
+ showError("Le nouveau mot de passe doit contenir au moins 8 caract\xE8res");
1980
+ return;
1981
+ }
1982
+ if (passwordData.new_password !== passwordData.confirm_password) {
1983
+ showError("Les mots de passe ne correspondent pas");
1984
+ return;
1985
+ }
1986
+ setSavingPassword(true);
1987
+ try {
1988
+ const response = await UserServices.changePassword(passwordData);
1989
+ if (response.success) {
1990
+ success("Mot de passe chang\xE9 avec succ\xE8s");
1991
+ setShowChangePasswordModal(false);
1992
+ setPasswordData({
1993
+ current_password: "",
1994
+ new_password: "",
1995
+ confirm_password: ""
1996
+ });
1997
+ } else {
1998
+ showError(response.message || "Erreur lors du changement de mot de passe");
1999
+ }
2000
+ } catch (error) {
2001
+ console.error("Erreur lors du changement de mot de passe:", error);
2002
+ showError("Mot de passe actuel incorrect ou erreur serveur");
2003
+ } finally {
2004
+ setSavingPassword(false);
2005
+ }
2006
+ };
1798
2007
  return /* @__PURE__ */ jsxs6("div", { className: "flex h-screen bg-[var(--color-background)] overflow-hidden", children: [
1799
2008
  /* @__PURE__ */ jsx9(
1800
2009
  "a",
@@ -2344,6 +2553,10 @@ var RewiseLayout = ({ children, module_name = "Rewise", module_description = "De
2344
2553
  /* @__PURE__ */ jsxs6(
2345
2554
  "button",
2346
2555
  {
2556
+ onClick: () => {
2557
+ setShowProfileModal(true);
2558
+ setShowUserMenu(false);
2559
+ },
2347
2560
  className: "w-full flex items-center gap-3 px-3 py-2 rounded-lg hover:bg-[var(--color-surface-hover)] transition-colors",
2348
2561
  role: "menuitem",
2349
2562
  children: [
@@ -2641,6 +2854,418 @@ var RewiseLayout = ({ children, module_name = "Rewise", module_description = "De
2641
2854
  }
2642
2855
  )
2643
2856
  }
2857
+ ),
2858
+ /* @__PURE__ */ jsx9(
2859
+ Modals_default,
2860
+ {
2861
+ title: "Mon Profil",
2862
+ description: "G\xE9rez vos informations personnelles",
2863
+ width: "max-w-2xl",
2864
+ open: showProfileModal,
2865
+ onClose: () => setShowProfileModal(false),
2866
+ children: /* @__PURE__ */ jsxs6("div", { className: "space-y-6", children: [
2867
+ /* @__PURE__ */ jsx9(
2868
+ "input",
2869
+ {
2870
+ ref: fileInputRef,
2871
+ type: "file",
2872
+ accept: "image/jpeg,image/png,image/gif,image/webp",
2873
+ onChange: handlePhotoChange,
2874
+ className: "hidden"
2875
+ }
2876
+ ),
2877
+ /* @__PURE__ */ jsxs6("div", { className: "flex flex-col sm:flex-row items-center gap-6 pb-6 border-b border-[var(--color-border)]", children: [
2878
+ /* @__PURE__ */ jsxs6("div", { className: "relative group", children: [
2879
+ /* @__PURE__ */ jsx9("div", { className: "w-24 h-24 bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-accent)] rounded-full flex items-center justify-center shadow-lg overflow-hidden", children: uploadingPhoto ? /* @__PURE__ */ jsx9(Loader2, { className: "w-8 h-8 text-white animate-spin" }) : loggedUser?.profile_picture ? /* @__PURE__ */ jsx9(
2880
+ "img",
2881
+ {
2882
+ src: loggedUser.profile_picture,
2883
+ alt: "Photo de profil",
2884
+ className: "w-full h-full rounded-full object-cover"
2885
+ }
2886
+ ) : /* @__PURE__ */ jsxs6("span", { className: "text-3xl font-bold text-white", children: [
2887
+ loggedUser?.first_name?.charAt(0) || loggedUser?.username?.charAt(0) || "U",
2888
+ loggedUser?.last_name?.charAt(0) || ""
2889
+ ] }) }),
2890
+ /* @__PURE__ */ jsxs6("div", { className: "absolute -bottom-1 -right-1 flex gap-1", children: [
2891
+ /* @__PURE__ */ jsx9(
2892
+ "button",
2893
+ {
2894
+ onClick: () => fileInputRef.current?.click(),
2895
+ disabled: uploadingPhoto,
2896
+ className: "w-8 h-8 bg-[var(--color-primary)] border-2 border-[var(--color-background)] rounded-full flex items-center justify-center shadow-md hover:bg-[var(--color-primary-dark)] transition-colors disabled:opacity-50",
2897
+ title: "Changer la photo",
2898
+ children: /* @__PURE__ */ jsx9(Camera, { className: "w-4 h-4 text-white" })
2899
+ }
2900
+ ),
2901
+ loggedUser?.profile_picture && /* @__PURE__ */ jsx9(
2902
+ "button",
2903
+ {
2904
+ onClick: handleDeletePhoto,
2905
+ disabled: uploadingPhoto,
2906
+ className: "w-8 h-8 bg-red-500 border-2 border-[var(--color-background)] rounded-full flex items-center justify-center shadow-md hover:bg-red-600 transition-colors disabled:opacity-50",
2907
+ title: "Supprimer la photo",
2908
+ children: /* @__PURE__ */ jsx9(Trash2, { className: "w-4 h-4 text-white" })
2909
+ }
2910
+ )
2911
+ ] })
2912
+ ] }),
2913
+ /* @__PURE__ */ jsxs6("div", { className: "text-center sm:text-left flex-1", children: [
2914
+ /* @__PURE__ */ jsx9("h2", { className: "text-xl font-bold text-[var(--color-text-primary)]", children: loggedUser?.first_name && loggedUser?.last_name ? `${loggedUser.first_name} ${loggedUser.last_name}` : loggedUser?.username || "Utilisateur" }),
2915
+ /* @__PURE__ */ jsx9("p", { className: "text-[var(--color-text-secondary)] mt-1", children: loggedUser?.job_title || "Membre de l'\xE9quipe" }),
2916
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-center sm:justify-start gap-2 mt-2", children: [
2917
+ /* @__PURE__ */ jsx9("span", { className: cn(
2918
+ "px-2 py-1 text-xs font-medium rounded-full",
2919
+ loggedUser?.is_active ? "bg-green-100 text-green-700" : "bg-gray-100 text-gray-600"
2920
+ ), children: loggedUser?.is_active ? "Actif" : "Inactif" }),
2921
+ loggedUser?.is_staff && /* @__PURE__ */ jsx9("span", { className: "px-2 py-1 text-xs font-medium rounded-full bg-blue-100 text-blue-700", children: "Staff" })
2922
+ ] })
2923
+ ] }),
2924
+ /* @__PURE__ */ jsxs6(
2925
+ "button",
2926
+ {
2927
+ onClick: openEditProfileModal,
2928
+ className: "flex items-center gap-2 px-4 py-2 bg-[var(--color-primary)] text-white rounded-lg hover:bg-[var(--color-primary-dark)] transition-colors",
2929
+ title: "Modifier le profil",
2930
+ children: [
2931
+ /* @__PURE__ */ jsx9(Edit3, { className: "w-4 h-4" }),
2932
+ /* @__PURE__ */ jsx9("span", { className: "text-sm font-medium", children: "Modifier" })
2933
+ ]
2934
+ }
2935
+ )
2936
+ ] }),
2937
+ /* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
2938
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-3 p-4 bg-[var(--color-surface)] rounded-lg border border-[var(--color-border)]", children: [
2939
+ /* @__PURE__ */ jsx9("div", { className: "w-10 h-10 bg-[var(--color-primary-light)] rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx9(Mail, { className: "w-5 h-5 text-[var(--color-primary)]" }) }),
2940
+ /* @__PURE__ */ jsxs6("div", { className: "flex-1 min-w-0", children: [
2941
+ /* @__PURE__ */ jsx9("p", { className: "text-xs text-[var(--color-text-tertiary)] uppercase tracking-wide", children: "Email" }),
2942
+ /* @__PURE__ */ jsx9("p", { className: "text-sm font-medium text-[var(--color-text-primary)] truncate", children: loggedUser?.email || "Non renseign\xE9" })
2943
+ ] })
2944
+ ] }),
2945
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-3 p-4 bg-[var(--color-surface)] rounded-lg border border-[var(--color-border)]", children: [
2946
+ /* @__PURE__ */ jsx9("div", { className: "w-10 h-10 bg-[var(--color-primary-light)] rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx9(Phone, { className: "w-5 h-5 text-[var(--color-primary)]" }) }),
2947
+ /* @__PURE__ */ jsxs6("div", { className: "flex-1 min-w-0", children: [
2948
+ /* @__PURE__ */ jsx9("p", { className: "text-xs text-[var(--color-text-tertiary)] uppercase tracking-wide", children: "T\xE9l\xE9phone" }),
2949
+ /* @__PURE__ */ jsx9("p", { className: "text-sm font-medium text-[var(--color-text-primary)] truncate", children: loggedUser?.phonenumber || "Non renseign\xE9" })
2950
+ ] })
2951
+ ] }),
2952
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-3 p-4 bg-[var(--color-surface)] rounded-lg border border-[var(--color-border)]", children: [
2953
+ /* @__PURE__ */ jsx9("div", { className: "w-10 h-10 bg-[var(--color-primary-light)] rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx9(User, { className: "w-5 h-5 text-[var(--color-primary)]" }) }),
2954
+ /* @__PURE__ */ jsxs6("div", { className: "flex-1 min-w-0", children: [
2955
+ /* @__PURE__ */ jsx9("p", { className: "text-xs text-[var(--color-text-tertiary)] uppercase tracking-wide", children: "Nom d'utilisateur" }),
2956
+ /* @__PURE__ */ jsx9("p", { className: "text-sm font-medium text-[var(--color-text-primary)] truncate", children: loggedUser?.username || "Non renseign\xE9" })
2957
+ ] })
2958
+ ] }),
2959
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-3 p-4 bg-[var(--color-surface)] rounded-lg border border-[var(--color-border)]", children: [
2960
+ /* @__PURE__ */ jsx9("div", { className: "w-10 h-10 bg-[var(--color-primary-light)] rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx9(Briefcase, { className: "w-5 h-5 text-[var(--color-primary)]" }) }),
2961
+ /* @__PURE__ */ jsxs6("div", { className: "flex-1 min-w-0", children: [
2962
+ /* @__PURE__ */ jsx9("p", { className: "text-xs text-[var(--color-text-tertiary)] uppercase tracking-wide", children: "D\xE9partement" }),
2963
+ /* @__PURE__ */ jsx9("p", { className: "text-sm font-medium text-[var(--color-text-primary)] truncate", children: loggedUser?.department || "Non renseign\xE9" })
2964
+ ] })
2965
+ ] })
2966
+ ] }),
2967
+ loggedUser?.centers_access && loggedUser.centers_access.length > 0 && /* @__PURE__ */ jsxs6("div", { className: "pt-4 border-t border-[var(--color-border)]", children: [
2968
+ /* @__PURE__ */ jsxs6("h3", { className: "text-sm font-semibold text-[var(--color-text-primary)] mb-3 flex items-center gap-2", children: [
2969
+ /* @__PURE__ */ jsx9(Building2, { className: "w-4 h-4 text-[var(--color-primary)]" }),
2970
+ "Centres d'acc\xE8s (",
2971
+ loggedUser.centers_access.length,
2972
+ ")"
2973
+ ] }),
2974
+ /* @__PURE__ */ jsx9("div", { className: "flex flex-wrap gap-2", children: loggedUser.centers_access.map((center) => /* @__PURE__ */ jsx9(
2975
+ "span",
2976
+ {
2977
+ className: cn(
2978
+ "px-3 py-1.5 text-sm rounded-lg border transition-colors",
2979
+ activeBusinessEntity?.id === center.id ? "bg-[var(--color-primary)] text-white border-[var(--color-primary)]" : "bg-[var(--color-surface)] text-[var(--color-text-secondary)] border-[var(--color-border)] hover:bg-[var(--color-surface-hover)]"
2980
+ ),
2981
+ children: center.legal_name
2982
+ },
2983
+ center.id
2984
+ )) })
2985
+ ] }),
2986
+ /* @__PURE__ */ jsxs6("div", { className: "pt-4 border-t border-[var(--color-border)]", children: [
2987
+ /* @__PURE__ */ jsxs6("h3", { className: "text-sm font-semibold text-[var(--color-text-primary)] mb-3 flex items-center gap-2", children: [
2988
+ /* @__PURE__ */ jsx9(Shield, { className: "w-4 h-4 text-[var(--color-primary)]" }),
2989
+ "S\xE9curit\xE9 du compte"
2990
+ ] }),
2991
+ /* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3", children: [
2992
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between p-3 bg-[var(--color-surface)] rounded-lg", children: [
2993
+ /* @__PURE__ */ jsx9("span", { className: "text-sm text-[var(--color-text-secondary)]", children: "Derni\xE8re connexion" }),
2994
+ /* @__PURE__ */ jsx9("span", { className: "text-sm font-medium text-[var(--color-text-primary)]", children: loggedUser?.last_login ? new Date(loggedUser.last_login).toLocaleDateString("fr-FR", {
2995
+ day: "numeric",
2996
+ month: "short",
2997
+ year: "numeric",
2998
+ hour: "2-digit",
2999
+ minute: "2-digit"
3000
+ }) : "Aujourd'hui" })
3001
+ ] }),
3002
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between p-3 bg-[var(--color-surface)] rounded-lg", children: [
3003
+ /* @__PURE__ */ jsx9("span", { className: "text-sm text-[var(--color-text-secondary)]", children: "Membre depuis" }),
3004
+ /* @__PURE__ */ jsx9("span", { className: "text-sm font-medium text-[var(--color-text-primary)]", children: loggedUser?.date_joined ? new Date(loggedUser.date_joined).toLocaleDateString("fr-FR", {
3005
+ day: "numeric",
3006
+ month: "short",
3007
+ year: "numeric"
3008
+ }) : "N/A" })
3009
+ ] })
3010
+ ] }),
3011
+ /* @__PURE__ */ jsxs6(
3012
+ "button",
3013
+ {
3014
+ onClick: openChangePasswordModal,
3015
+ className: "mt-4 w-full flex items-center justify-center gap-2 px-4 py-2.5 border border-[var(--color-border)] text-[var(--color-text-secondary)] rounded-lg hover:bg-[var(--color-surface-hover)] transition-colors",
3016
+ children: [
3017
+ /* @__PURE__ */ jsx9(Lock, { className: "w-4 h-4" }),
3018
+ /* @__PURE__ */ jsx9("span", { className: "text-sm font-medium", children: "Changer le mot de passe" })
3019
+ ]
3020
+ }
3021
+ )
3022
+ ] })
3023
+ ] })
3024
+ }
3025
+ ),
3026
+ /* @__PURE__ */ jsx9(
3027
+ Modals_default,
3028
+ {
3029
+ title: "Modifier mon profil",
3030
+ description: "Mettez \xE0 jour vos informations personnelles",
3031
+ width: "max-w-lg",
3032
+ open: showEditProfileModal,
3033
+ onClose: () => setShowEditProfileModal(false),
3034
+ children: /* @__PURE__ */ jsxs6("div", { className: "space-y-4", children: [
3035
+ /* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-2 gap-4", children: [
3036
+ /* @__PURE__ */ jsxs6("div", { children: [
3037
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Pr\xE9nom" }),
3038
+ /* @__PURE__ */ jsx9(
3039
+ "input",
3040
+ {
3041
+ type: "text",
3042
+ value: editProfileData.first_name,
3043
+ onChange: (e) => setEditProfileData((prev) => ({ ...prev, first_name: e.target.value })),
3044
+ className: "w-full px-3 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3045
+ placeholder: "Votre pr\xE9nom"
3046
+ }
3047
+ )
3048
+ ] }),
3049
+ /* @__PURE__ */ jsxs6("div", { children: [
3050
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Nom" }),
3051
+ /* @__PURE__ */ jsx9(
3052
+ "input",
3053
+ {
3054
+ type: "text",
3055
+ value: editProfileData.last_name,
3056
+ onChange: (e) => setEditProfileData((prev) => ({ ...prev, last_name: e.target.value })),
3057
+ className: "w-full px-3 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3058
+ placeholder: "Votre nom"
3059
+ }
3060
+ )
3061
+ ] })
3062
+ ] }),
3063
+ /* @__PURE__ */ jsxs6("div", { children: [
3064
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Email" }),
3065
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3066
+ /* @__PURE__ */ jsx9(Mail, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3067
+ /* @__PURE__ */ jsx9(
3068
+ "input",
3069
+ {
3070
+ type: "email",
3071
+ value: editProfileData.email,
3072
+ onChange: (e) => setEditProfileData((prev) => ({ ...prev, email: e.target.value })),
3073
+ className: "w-full pl-10 pr-3 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3074
+ placeholder: "votre@email.com"
3075
+ }
3076
+ )
3077
+ ] })
3078
+ ] }),
3079
+ /* @__PURE__ */ jsxs6("div", { children: [
3080
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "T\xE9l\xE9phone" }),
3081
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3082
+ /* @__PURE__ */ jsx9(Phone, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3083
+ /* @__PURE__ */ jsx9(
3084
+ "input",
3085
+ {
3086
+ type: "tel",
3087
+ value: editProfileData.phonenumber,
3088
+ onChange: (e) => setEditProfileData((prev) => ({ ...prev, phonenumber: e.target.value })),
3089
+ className: "w-full pl-10 pr-3 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3090
+ placeholder: "+225 XX XX XX XX"
3091
+ }
3092
+ )
3093
+ ] })
3094
+ ] }),
3095
+ /* @__PURE__ */ jsxs6("div", { children: [
3096
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Poste / Titre" }),
3097
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3098
+ /* @__PURE__ */ jsx9(Briefcase, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3099
+ /* @__PURE__ */ jsx9(
3100
+ "input",
3101
+ {
3102
+ type: "text",
3103
+ value: editProfileData.job_title,
3104
+ onChange: (e) => setEditProfileData((prev) => ({ ...prev, job_title: e.target.value })),
3105
+ className: "w-full pl-10 pr-3 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3106
+ placeholder: "Ex: Responsable Commercial"
3107
+ }
3108
+ )
3109
+ ] })
3110
+ ] }),
3111
+ /* @__PURE__ */ jsxs6("div", { children: [
3112
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "D\xE9partement" }),
3113
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3114
+ /* @__PURE__ */ jsx9(Building2, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3115
+ /* @__PURE__ */ jsx9(
3116
+ "input",
3117
+ {
3118
+ type: "text",
3119
+ value: editProfileData.department,
3120
+ onChange: (e) => setEditProfileData((prev) => ({ ...prev, department: e.target.value })),
3121
+ className: "w-full pl-10 pr-3 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3122
+ placeholder: "Ex: Ventes"
3123
+ }
3124
+ )
3125
+ ] })
3126
+ ] }),
3127
+ /* @__PURE__ */ jsxs6("div", { className: "flex justify-end gap-3 pt-4 border-t border-[var(--color-border)]", children: [
3128
+ /* @__PURE__ */ jsx9(
3129
+ "button",
3130
+ {
3131
+ onClick: () => setShowEditProfileModal(false),
3132
+ className: "px-4 py-2 text-sm font-medium text-[var(--color-text-secondary)] bg-[var(--color-surface)] border border-[var(--color-border)] rounded-lg hover:bg-[var(--color-surface-hover)] transition-colors",
3133
+ children: "Annuler"
3134
+ }
3135
+ ),
3136
+ /* @__PURE__ */ jsxs6(
3137
+ "button",
3138
+ {
3139
+ onClick: handleSaveProfile,
3140
+ disabled: savingProfile,
3141
+ className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-[var(--color-primary)] rounded-lg hover:bg-[var(--color-primary-dark)] transition-colors disabled:opacity-50",
3142
+ children: [
3143
+ savingProfile ? /* @__PURE__ */ jsx9(Loader2, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx9(Save, { className: "w-4 h-4" }),
3144
+ savingProfile ? "Enregistrement..." : "Enregistrer"
3145
+ ]
3146
+ }
3147
+ )
3148
+ ] })
3149
+ ] })
3150
+ }
3151
+ ),
3152
+ /* @__PURE__ */ jsx9(
3153
+ Modals_default,
3154
+ {
3155
+ title: "Changer le mot de passe",
3156
+ description: "Entrez votre mot de passe actuel et choisissez un nouveau mot de passe",
3157
+ width: "max-w-md",
3158
+ open: showChangePasswordModal,
3159
+ onClose: () => setShowChangePasswordModal(false),
3160
+ children: /* @__PURE__ */ jsxs6("div", { className: "space-y-4", children: [
3161
+ /* @__PURE__ */ jsxs6("div", { children: [
3162
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Mot de passe actuel" }),
3163
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3164
+ /* @__PURE__ */ jsx9(Lock, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3165
+ /* @__PURE__ */ jsx9(
3166
+ "input",
3167
+ {
3168
+ type: showCurrentPassword ? "text" : "password",
3169
+ value: passwordData.current_password,
3170
+ onChange: (e) => setPasswordData((prev) => ({ ...prev, current_password: e.target.value })),
3171
+ className: "w-full pl-10 pr-10 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3172
+ placeholder: "Votre mot de passe actuel"
3173
+ }
3174
+ ),
3175
+ /* @__PURE__ */ jsx9(
3176
+ "button",
3177
+ {
3178
+ type: "button",
3179
+ onClick: () => setShowCurrentPassword(!showCurrentPassword),
3180
+ className: "absolute right-3 top-1/2 -translate-y-1/2 text-[var(--color-text-tertiary)] hover:text-[var(--color-text-secondary)]",
3181
+ children: showCurrentPassword ? /* @__PURE__ */ jsx9(EyeOff, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx9(Eye2, { className: "w-4 h-4" })
3182
+ }
3183
+ )
3184
+ ] })
3185
+ ] }),
3186
+ /* @__PURE__ */ jsxs6("div", { children: [
3187
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Nouveau mot de passe" }),
3188
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3189
+ /* @__PURE__ */ jsx9(Lock, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3190
+ /* @__PURE__ */ jsx9(
3191
+ "input",
3192
+ {
3193
+ type: showNewPassword ? "text" : "password",
3194
+ value: passwordData.new_password,
3195
+ onChange: (e) => setPasswordData((prev) => ({ ...prev, new_password: e.target.value })),
3196
+ className: "w-full pl-10 pr-10 py-2 border border-[var(--color-border)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3197
+ placeholder: "Au moins 8 caract\xE8res"
3198
+ }
3199
+ ),
3200
+ /* @__PURE__ */ jsx9(
3201
+ "button",
3202
+ {
3203
+ type: "button",
3204
+ onClick: () => setShowNewPassword(!showNewPassword),
3205
+ className: "absolute right-3 top-1/2 -translate-y-1/2 text-[var(--color-text-tertiary)] hover:text-[var(--color-text-secondary)]",
3206
+ children: showNewPassword ? /* @__PURE__ */ jsx9(EyeOff, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx9(Eye2, { className: "w-4 h-4" })
3207
+ }
3208
+ )
3209
+ ] }),
3210
+ passwordData.new_password && passwordData.new_password.length < 8 && /* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs text-red-500", children: "Le mot de passe doit contenir au moins 8 caract\xE8res" })
3211
+ ] }),
3212
+ /* @__PURE__ */ jsxs6("div", { children: [
3213
+ /* @__PURE__ */ jsx9("label", { className: "block text-sm font-medium text-[var(--color-text-secondary)] mb-1", children: "Confirmer le nouveau mot de passe" }),
3214
+ /* @__PURE__ */ jsxs6("div", { className: "relative", children: [
3215
+ /* @__PURE__ */ jsx9(Lock, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--color-text-tertiary)]" }),
3216
+ /* @__PURE__ */ jsx9(
3217
+ "input",
3218
+ {
3219
+ type: showConfirmPassword ? "text" : "password",
3220
+ value: passwordData.confirm_password,
3221
+ onChange: (e) => setPasswordData((prev) => ({ ...prev, confirm_password: e.target.value })),
3222
+ className: cn(
3223
+ "w-full pl-10 pr-10 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:border-transparent bg-[var(--color-background)] text-[var(--color-text-primary)]",
3224
+ passwordData.confirm_password && passwordData.new_password !== passwordData.confirm_password ? "border-red-500" : "border-[var(--color-border)]"
3225
+ ),
3226
+ placeholder: "R\xE9p\xE9tez le nouveau mot de passe"
3227
+ }
3228
+ ),
3229
+ /* @__PURE__ */ jsx9(
3230
+ "button",
3231
+ {
3232
+ type: "button",
3233
+ onClick: () => setShowConfirmPassword(!showConfirmPassword),
3234
+ className: "absolute right-3 top-1/2 -translate-y-1/2 text-[var(--color-text-tertiary)] hover:text-[var(--color-text-secondary)]",
3235
+ children: showConfirmPassword ? /* @__PURE__ */ jsx9(EyeOff, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx9(Eye2, { className: "w-4 h-4" })
3236
+ }
3237
+ )
3238
+ ] }),
3239
+ passwordData.confirm_password && passwordData.new_password !== passwordData.confirm_password && /* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs text-red-500", children: "Les mots de passe ne correspondent pas" }),
3240
+ passwordData.confirm_password && passwordData.new_password === passwordData.confirm_password && passwordData.new_password.length >= 8 && /* @__PURE__ */ jsxs6("p", { className: "mt-1 text-xs text-green-600 flex items-center gap-1", children: [
3241
+ /* @__PURE__ */ jsx9(Check2, { className: "w-3 h-3" }),
3242
+ " Les mots de passe correspondent"
3243
+ ] })
3244
+ ] }),
3245
+ /* @__PURE__ */ jsxs6("div", { className: "flex justify-end gap-3 pt-4 border-t border-[var(--color-border)]", children: [
3246
+ /* @__PURE__ */ jsx9(
3247
+ "button",
3248
+ {
3249
+ onClick: () => setShowChangePasswordModal(false),
3250
+ className: "px-4 py-2 text-sm font-medium text-[var(--color-text-secondary)] bg-[var(--color-surface)] border border-[var(--color-border)] rounded-lg hover:bg-[var(--color-surface-hover)] transition-colors",
3251
+ children: "Annuler"
3252
+ }
3253
+ ),
3254
+ /* @__PURE__ */ jsxs6(
3255
+ "button",
3256
+ {
3257
+ onClick: handleChangePassword,
3258
+ disabled: savingPassword || !passwordData.current_password || !passwordData.new_password || passwordData.new_password !== passwordData.confirm_password || passwordData.new_password.length < 8,
3259
+ className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-[var(--color-primary)] rounded-lg hover:bg-[var(--color-primary-dark)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
3260
+ children: [
3261
+ savingPassword ? /* @__PURE__ */ jsx9(Loader2, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx9(Shield, { className: "w-4 h-4" }),
3262
+ savingPassword ? "Modification..." : "Changer le mot de passe"
3263
+ ]
3264
+ }
3265
+ )
3266
+ ] })
3267
+ ] })
3268
+ }
2644
3269
  )
2645
3270
  ] });
2646
3271
  };
@@ -2792,7 +3417,7 @@ var Pages_default = Pages;
2792
3417
  // src/components/common/FDrawer.tsx
2793
3418
  import React7, { useEffect as useEffect6, useState as useState8, useRef } from "react";
2794
3419
  import { useLocation as useLocation2, useNavigate as useNavigate2, useSearchParams as useSearchParams2, Link as Link2 } from "react-router-dom";
2795
- import { ArrowDownAZ, ArrowDownUp, ArrowUpAZ, AlertCircle as AlertCircle3, CheckCircle2 as CheckCircle22, ChevronDown, Columns3, Copy, Download as Download2, FileSpreadsheet, Filter, Maximize2, Minimize2, MoreVertical, Plus, Printer, RefreshCw, Settings2 as Settings22, Trash2, Upload, X as X5, Search as Search2, SquareIcon } from "lucide-react";
3420
+ import { ArrowDownAZ, ArrowDownUp, ArrowUpAZ, AlertCircle as AlertCircle3, CheckCircle2 as CheckCircle22, ChevronDown, Columns3, Copy, Download as Download2, FileSpreadsheet, Filter, Maximize2, Minimize2, MoreVertical, Plus, Printer, RefreshCw, Settings2 as Settings22, Trash2 as Trash22, Upload, X as X5, Search as Search2, SquareIcon } from "lucide-react";
2796
3421
  import { Fragment as Fragment4, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
2797
3422
  var ExcelImportModal = ({
2798
3423
  isOpen,
@@ -3050,7 +3675,7 @@ var ExcelImportModal = ({
3050
3675
  type: "button",
3051
3676
  onClick: () => removeMappingRow(index),
3052
3677
  className: "p-2 text-red-500 hover:bg-red-50 rounded-lg mt-5",
3053
- children: /* @__PURE__ */ jsx12(Trash2, { className: "h-4 w-4" })
3678
+ children: /* @__PURE__ */ jsx12(Trash22, { className: "h-4 w-4" })
3054
3679
  }
3055
3680
  )
3056
3681
  ] }, index)) }),
@@ -3700,7 +4325,7 @@ var FDrawer = ({
3700
4325
  onClick: handleBulkDelete,
3701
4326
  className: "px-3 py-1.5 bg-red-500 text-white rounded-lg text-sm flex items-center gap-2 hover:bg-red-600",
3702
4327
  children: [
3703
- /* @__PURE__ */ jsx12(Trash2, { className: "h-4 w-4" }),
4328
+ /* @__PURE__ */ jsx12(Trash22, { className: "h-4 w-4" }),
3704
4329
  "Supprimer"
3705
4330
  ]
3706
4331
  }
@@ -4091,7 +4716,7 @@ var SearchableSelect = ({
4091
4716
  };
4092
4717
 
4093
4718
  // src/components/common/ApprovalWorkflow.tsx
4094
- import { X as X7, Plus as Plus3, Trash2 as Trash22, Users, Loader as Loader2, RotateCcw, Ban, Eye as Eye3, FileText as FileText2, History } from "lucide-react";
4719
+ import { X as X7, Plus as Plus3, Trash2 as Trash23, Users, Loader as Loader3, RotateCcw, Ban, Eye as Eye4, FileText as FileText2, History } from "lucide-react";
4095
4720
  import { Fragment as Fragment6, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
4096
4721
  var ApprovalWorkflow = ({
4097
4722
  process,
@@ -4427,7 +5052,7 @@ var ApprovalWorkflow = ({
4427
5052
  ] });
4428
5053
  };
4429
5054
  if (loading) {
4430
- return /* @__PURE__ */ jsx14(RewiseBasicCard, { title, children: /* @__PURE__ */ jsx14("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx14(Loader2, { className: "w-8 h-8 animate-spin text-[#6A8A82]" }) }) });
5055
+ return /* @__PURE__ */ jsx14(RewiseBasicCard, { title, children: /* @__PURE__ */ jsx14("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx14(Loader3, { className: "w-8 h-8 animate-spin text-[#6A8A82]" }) }) });
4431
5056
  }
4432
5057
  const renderTabContent = () => {
4433
5058
  switch (activeTab) {
@@ -4506,14 +5131,14 @@ var ApprovalWorkflow = ({
4506
5131
  dangerouslySetInnerHTML: { __html: caseData.html_content }
4507
5132
  }
4508
5133
  ) : /* @__PURE__ */ jsxs11("div", { className: "text-center py-12 border-2 border-dashed border-[#D9D9D9] rounded-lg bg-[#FAFAFA]", children: [
4509
- /* @__PURE__ */ jsx14(Eye3, { className: "w-12 h-12 text-[#767676] mx-auto mb-4" }),
5134
+ /* @__PURE__ */ jsx14(Eye4, { className: "w-12 h-12 text-[#767676] mx-auto mb-4" }),
4510
5135
  /* @__PURE__ */ jsx14("p", { className: "text-[#767676]", children: "Aucun aper\xE7u disponible" })
4511
5136
  ] })
4512
5137
  ] }) });
4513
5138
  case "history":
4514
5139
  return /* @__PURE__ */ jsxs11("div", { className: "space-y-6", children: [
4515
5140
  /* @__PURE__ */ jsx14("h3", { className: "text-lg font-semibold text-[#191919]", children: "Historique des versions" }),
4516
- loadingHistory ? /* @__PURE__ */ jsx14("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx14(Loader2, { className: "w-8 h-8 animate-spin text-[#6A8A82]" }) }) : history.length === 0 ? /* @__PURE__ */ jsxs11("div", { className: "text-center py-12 border-2 border-dashed border-[#D9D9D9] rounded-lg bg-[#FAFAFA]", children: [
5141
+ loadingHistory ? /* @__PURE__ */ jsx14("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx14(Loader3, { className: "w-8 h-8 animate-spin text-[#6A8A82]" }) }) : history.length === 0 ? /* @__PURE__ */ jsxs11("div", { className: "text-center py-12 border-2 border-dashed border-[#D9D9D9] rounded-lg bg-[#FAFAFA]", children: [
4517
5142
  /* @__PURE__ */ jsx14(History, { className: "w-12 h-12 text-[#767676] mx-auto mb-4" }),
4518
5143
  /* @__PURE__ */ jsx14("p", { className: "text-[#767676]", children: "Aucun historique disponible" })
4519
5144
  ] }) : /* @__PURE__ */ jsx14("div", { className: "space-y-4", children: history.map((item, index) => /* @__PURE__ */ jsx14("div", { className: "border border-[#D9D9D9] rounded-lg p-4 bg-white hover:shadow-md transition-shadow", children: /* @__PURE__ */ jsx14("div", { className: "flex items-start justify-between", children: /* @__PURE__ */ jsxs11("div", { className: "flex-1", children: [
@@ -4615,7 +5240,7 @@ var ApprovalWorkflow = ({
4615
5240
  onClick: () => setActiveTab("preview"),
4616
5241
  className: `px-4 py-3 text-sm font-medium transition-colors flex items-center gap-2 ${activeTab === "preview" ? "border-b-2 border-[#6A8A82] text-[#6A8A82]" : "text-[#767676] hover:text-[#191919]"}`,
4617
5242
  children: [
4618
- /* @__PURE__ */ jsx14(Eye3, { className: "w-4 h-4" }),
5243
+ /* @__PURE__ */ jsx14(Eye4, { className: "w-4 h-4" }),
4619
5244
  "Aper\xE7u"
4620
5245
  ]
4621
5246
  }
@@ -4706,7 +5331,7 @@ var StageRow = ({
4706
5331
  onClick: onRemove,
4707
5332
  className: "text-[#B85450] hover:text-red-700 transition-colors",
4708
5333
  title: "Supprimer",
4709
- children: /* @__PURE__ */ jsx14(Trash22, { className: "w-4 h-4" })
5334
+ children: /* @__PURE__ */ jsx14(Trash23, { className: "w-4 h-4" })
4710
5335
  }
4711
5336
  ) }),
4712
5337
  /* @__PURE__ */ jsx14("td", { className: "border border-gray-300 px-4 py-2 text-center", children: index + 1 }),
@@ -5072,7 +5697,7 @@ var useAlert = () => {
5072
5697
  };
5073
5698
 
5074
5699
  // src/components/common/CommonSelect.tsx
5075
- import { useEffect as useEffect17, useState as useState27 } from "react";
5700
+ import { useEffect as useEffect19, useState as useState31 } from "react";
5076
5701
 
5077
5702
  // dist/index.js
5078
5703
  import { jsx as jsx17 } from "react/jsx-runtime";
@@ -5095,7 +5720,20 @@ import {
5095
5720
  DollarSign as DollarSign2,
5096
5721
  HelpCircle as HelpCircle22,
5097
5722
  Building2 as Building22,
5098
- LayoutGrid as LayoutGrid2
5723
+ LayoutGrid as LayoutGrid2,
5724
+ Mail as Mail2,
5725
+ Phone as Phone2,
5726
+ Shield as Shield2,
5727
+ Briefcase as Briefcase2,
5728
+ Edit3 as Edit32,
5729
+ Camera as Camera2,
5730
+ Eye as Eye22,
5731
+ EyeOff as EyeOff3,
5732
+ Lock as Lock2,
5733
+ Save as Save2,
5734
+ Loader2 as Loader22,
5735
+ Check as Check22,
5736
+ Trash2 as Trash24
5099
5737
  } from "lucide-react";
5100
5738
  import { clsx as clsx2 } from "clsx";
5101
5739
  import { twMerge as twMerge2 } from "tailwind-merge";
@@ -5108,7 +5746,7 @@ import { AlertTriangle as AlertTriangle3, HelpCircle as HelpCircle3, AlertCircle
5108
5746
  import { jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
5109
5747
  import { useState as useState42, useEffect as useEffect32 } from "react";
5110
5748
  import { jsx as jsx72, jsxs as jsxs42 } from "react/jsx-runtime";
5111
- import { X as X22, Loader as Loader3, Eye as Eye4, FileText as FileText3, Check as Check2, XCircle as XCircle3, Edit as Edit2, CheckCircle as CheckCircle3, Clock as Clock2, AlertCircle as AlertCircle22, User as UserIcon2, Send as Send2 } from "lucide-react";
5749
+ import { X as X22, Loader as Loader4, Eye as Eye5, FileText as FileText3, Check as Check3, XCircle as XCircle3, Edit as Edit2, CheckCircle as CheckCircle3, Clock as Clock2, AlertCircle as AlertCircle22, User as UserIcon2, Send as Send2 } from "lucide-react";
5112
5750
  import { useParams as useParams2, useSearchParams as useSearchParams3 } from "react-router-dom";
5113
5751
  import { Fragment as Fragment7, jsx as jsx82, jsxs as jsxs52 } from "react/jsx-runtime";
5114
5752
  import { Fragment as Fragment22, jsx as jsx92, jsxs as jsxs62 } from "react/jsx-runtime";
@@ -5120,18 +5758,18 @@ import { useState as useState72 } from "react";
5120
5758
  import { Fragment as Fragment32, jsx as jsx112, jsxs as jsxs82 } from "react/jsx-runtime";
5121
5759
  import React72, { useEffect as useEffect62, useState as useState82, useRef as useRef3 } from "react";
5122
5760
  import { useLocation as useLocation22, useNavigate as useNavigate22, useSearchParams as useSearchParams22, Link as Link22 } from "react-router-dom";
5123
- import { ArrowDownAZ as ArrowDownAZ2, ArrowDownUp as ArrowDownUp2, ArrowUpAZ as ArrowUpAZ2, AlertCircle as AlertCircle32, CheckCircle2 as CheckCircle222, ChevronDown as ChevronDown3, Columns3 as Columns32, Copy as Copy2, Download as Download22, FileSpreadsheet as FileSpreadsheet2, Filter as Filter2, Maximize2 as Maximize22, Minimize2 as Minimize22, MoreVertical as MoreVertical2, Plus as Plus4, Printer as Printer2, RefreshCw as RefreshCw3, Settings2 as Settings222, Trash2 as Trash23, Upload as Upload2, X as X52, Search as Search22, SquareIcon as SquareIcon2 } from "lucide-react";
5761
+ import { ArrowDownAZ as ArrowDownAZ2, ArrowDownUp as ArrowDownUp2, ArrowUpAZ as ArrowUpAZ2, AlertCircle as AlertCircle32, CheckCircle2 as CheckCircle222, ChevronDown as ChevronDown3, Columns3 as Columns32, Copy as Copy2, Download as Download22, FileSpreadsheet as FileSpreadsheet2, Filter as Filter2, Maximize2 as Maximize22, Minimize2 as Minimize22, MoreVertical as MoreVertical2, Plus as Plus4, Printer as Printer2, RefreshCw as RefreshCw3, Settings2 as Settings222, Trash2 as Trash222, Upload as Upload2, X as X52, Search as Search22, SquareIcon as SquareIcon2 } from "lucide-react";
5124
5762
  import { Fragment as Fragment42, jsx as jsx122, jsxs as jsxs92 } from "react/jsx-runtime";
5125
5763
  import { useState as useState102, useEffect as useEffect82 } from "react";
5126
5764
  import { useState as useState92, useRef as useRef22, useEffect as useEffect72 } from "react";
5127
5765
  import { Search as Search32, ChevronDown as ChevronDown22, X as X62, RefreshCw as RefreshCw22, Plus as Plus22 } from "lucide-react";
5128
5766
  import { Fragment as Fragment52, jsx as jsx132, jsxs as jsxs102 } from "react/jsx-runtime";
5129
- import { X as X72, Plus as Plus32, Trash2 as Trash222, Users as Users2, Loader as Loader22, RotateCcw as RotateCcw2, Ban as Ban2, Eye as Eye32, FileText as FileText22, History as History2 } from "lucide-react";
5767
+ import { X as X72, Plus as Plus32, Trash2 as Trash232, Users as Users2, Loader as Loader32, RotateCcw as RotateCcw2, Ban as Ban2, Eye as Eye42, FileText as FileText22, History as History2 } from "lucide-react";
5130
5768
  import { Fragment as Fragment62, jsx as jsx142, jsxs as jsxs112 } from "react/jsx-runtime";
5131
5769
  import { createContext as createContext42, useContext as useContext42, useState as useState112, useCallback as useCallback22 } from "react";
5132
5770
  import { jsx as jsx152, jsxs as jsxs122 } from "react/jsx-runtime";
5133
5771
  import { jsx as jsx162, jsxs as jsxs132 } from "react/jsx-runtime";
5134
- import { useEffect as useEffect16, useState as useState25 } from "react";
5772
+ import { useEffect as useEffect18, useState as useState29 } from "react";
5135
5773
  import { jsx as jsx172 } from "react/jsx-runtime";
5136
5774
  import { jsx as jsx222, jsxs as jsxs142 } from "react/jsx-runtime";
5137
5775
  import { Link as Link32 } from "react-router-dom";
@@ -5147,11 +5785,12 @@ import {
5147
5785
  User as User22,
5148
5786
  LogOut as LogOut22,
5149
5787
  Menu as Menu32,
5150
- X as X222,
5788
+ X as X322,
5151
5789
  Palette as Palette22,
5152
5790
  DollarSign as DollarSign22,
5153
- HelpCircle as HelpCircle32,
5154
- Building2 as Building222
5791
+ HelpCircle as HelpCircle222,
5792
+ Building2 as Building222,
5793
+ LayoutGrid as LayoutGrid22
5155
5794
  } from "lucide-react";
5156
5795
  import { clsx as clsx22 } from "clsx";
5157
5796
  import { twMerge as twMerge22 } from "tailwind-merge";
@@ -5160,35 +5799,36 @@ import { jsx as jsx422 } from "react/jsx-runtime";
5160
5799
  import { createContext as createContext222, useContext as useContext222, useEffect as useEffect222, useState as useState222 } from "react";
5161
5800
  import { jsx as jsx522 } from "react/jsx-runtime";
5162
5801
  import { createContext as createContext322, useContext as useContext322, useState as useState322, useCallback as useCallback32 } from "react";
5163
- import { jsx as jsx622 } from "react/jsx-runtime";
5802
+ import { AlertTriangle as AlertTriangle32, HelpCircle as HelpCircle32, AlertCircle as AlertCircle42, X as X82 } from "lucide-react";
5803
+ import { jsx as jsx622, jsxs as jsxs322 } from "react/jsx-runtime";
5164
5804
  import { useState as useState422, useEffect as useEffect322 } from "react";
5165
- import { jsx as jsx722, jsxs as jsxs322 } from "react/jsx-runtime";
5166
- import { X as X82, Loader as Loader32, Eye as Eye42, FileText as FileText32, Check as Check22, XCircle as XCircle32, Edit as Edit22, CheckCircle as CheckCircle32, Clock as Clock22, AlertCircle as AlertCircle42, User as UserIcon22, Send as Send22 } from "lucide-react";
5805
+ import { jsx as jsx722, jsxs as jsxs422 } from "react/jsx-runtime";
5806
+ import { X as X222, Loader as Loader42, Eye as Eye52, FileText as FileText32, Check as Check32, XCircle as XCircle32, Edit as Edit22, CheckCircle as CheckCircle32, Clock as Clock22, AlertCircle as AlertCircle222, User as UserIcon22, Send as Send22 } from "lucide-react";
5167
5807
  import { useParams as useParams22, useSearchParams as useSearchParams32 } from "react-router-dom";
5168
- import { Fragment as Fragment72, jsx as jsx822, jsxs as jsxs422 } from "react/jsx-runtime";
5169
- import { Fragment as Fragment222, jsx as jsx922, jsxs as jsxs522 } from "react/jsx-runtime";
5808
+ import { Fragment as Fragment72, jsx as jsx822, jsxs as jsxs522 } from "react/jsx-runtime";
5809
+ import { Fragment as Fragment222, jsx as jsx922, jsxs as jsxs622 } from "react/jsx-runtime";
5170
5810
  import { useEffect as useEffect522, useState as useState622 } from "react";
5171
- import { CheckCircle as CheckCircle232, XCircle as XCircle222, AlertTriangle as AlertTriangle32, Info as Info3, X as X322 } from "lucide-react";
5172
- import { jsx as jsx1022, jsxs as jsxs622 } from "react/jsx-runtime";
5811
+ import { CheckCircle as CheckCircle232, XCircle as XCircle222, AlertTriangle as AlertTriangle222, Info as Info222, X as X422 } from "lucide-react";
5812
+ import { jsx as jsx1022, jsxs as jsxs722 } from "react/jsx-runtime";
5173
5813
  import { ChevronLeft as ChevronLeft222, Download as Download32, Menu as Menu222, Settings as Settings232 } from "lucide-react";
5174
5814
  import { useState as useState722 } from "react";
5175
- import { Fragment as Fragment322, jsx as jsx1122, jsxs as jsxs722 } from "react/jsx-runtime";
5176
- import { useEffect as useEffect622, useState as useState822 } from "react";
5815
+ import { Fragment as Fragment322, jsx as jsx1122, jsxs as jsxs822 } from "react/jsx-runtime";
5816
+ import React722, { useEffect as useEffect622, useState as useState822, useRef as useRef32 } from "react";
5177
5817
  import { useLocation as useLocation222, useNavigate as useNavigate222, useSearchParams as useSearchParams222, Link as Link222 } from "react-router-dom";
5178
- import { ArrowDownAZ as ArrowDownAZ22, ArrowDownUp as ArrowDownUp22, ArrowUpAZ as ArrowUpAZ22, Download as Download222, Filter as Filter22, MoreVertical as MoreVertical22, Printer as Printer22, Search as Search222 } from "lucide-react";
5179
- import { Fragment as Fragment422, jsx as jsx1222, jsxs as jsxs822 } from "react/jsx-runtime";
5818
+ import { ArrowDownAZ as ArrowDownAZ22, ArrowDownUp as ArrowDownUp22, ArrowUpAZ as ArrowUpAZ22, AlertCircle as AlertCircle322, CheckCircle2 as CheckCircle2222, ChevronDown as ChevronDown32, Columns3 as Columns322, Copy as Copy22, Download as Download222, FileSpreadsheet as FileSpreadsheet22, Filter as Filter22, Maximize2 as Maximize222, Minimize2 as Minimize222, MoreVertical as MoreVertical22, Plus as Plus42, Printer as Printer22, RefreshCw as RefreshCw32, Settings2 as Settings2222, Trash2 as Trash242, Upload as Upload22, X as X522, Search as Search222, SquareIcon as SquareIcon22 } from "lucide-react";
5819
+ import { Fragment as Fragment422, jsx as jsx1222, jsxs as jsxs922 } from "react/jsx-runtime";
5180
5820
  import { useState as useState1022, useEffect as useEffect822 } from "react";
5181
- import { useState as useState922, useRef as useRef32, useEffect as useEffect722 } from "react";
5182
- import { Search as Search322, ChevronDown as ChevronDown32, X as X422, RefreshCw as RefreshCw32, Plus as Plus42 } from "lucide-react";
5183
- import { Fragment as Fragment522, jsx as jsx1322, jsxs as jsxs922 } from "react/jsx-runtime";
5184
- import { X as X522, Plus as Plus222, Trash2 as Trash232, Users as Users22, Loader as Loader222, RotateCcw as RotateCcw22, Ban as Ban22, Eye as Eye22, FileText as FileText222, History as History22 } from "lucide-react";
5185
- import { Fragment as Fragment622, jsx as jsx1422, jsxs as jsxs1022 } from "react/jsx-runtime";
5821
+ import { useState as useState922, useRef as useRef222, useEffect as useEffect722 } from "react";
5822
+ import { Search as Search322, ChevronDown as ChevronDown222, X as X622, RefreshCw as RefreshCw222, Plus as Plus222 } from "lucide-react";
5823
+ import { Fragment as Fragment522, jsx as jsx1322, jsxs as jsxs1022 } from "react/jsx-runtime";
5824
+ import { X as X722, Plus as Plus322, Trash2 as Trash2222, Users as Users22, Loader as Loader222, RotateCcw as RotateCcw22, Ban as Ban22, Eye as Eye32, FileText as FileText222, History as History22 } from "lucide-react";
5825
+ import { Fragment as Fragment622, jsx as jsx1422, jsxs as jsxs1122 } from "react/jsx-runtime";
5186
5826
  import { createContext as createContext422, useContext as useContext422, useState as useState1122, useCallback as useCallback222 } from "react";
5187
- import { jsx as jsx1522, jsxs as jsxs1122 } from "react/jsx-runtime";
5188
- import { jsx as jsx1622, jsxs as jsxs1222 } from "react/jsx-runtime";
5189
- import { useEffect as useEffect15, useState as useState23 } from "react";
5827
+ import { jsx as jsx1522, jsxs as jsxs1222 } from "react/jsx-runtime";
5828
+ import { jsx as jsx1622, jsxs as jsxs1322 } from "react/jsx-runtime";
5829
+ import { useEffect as useEffect17, useState as useState27 } from "react";
5190
5830
  import { jsx as jsx1722 } from "react/jsx-runtime";
5191
- import { jsx as jsx2222, jsxs as jsxs1322 } from "react/jsx-runtime";
5831
+ import { jsx as jsx2222, jsxs as jsxs1422 } from "react/jsx-runtime";
5192
5832
  import { Link as Link322 } from "react-router-dom";
5193
5833
  import { jsx as jsx3222, jsxs as jsxs2222 } from "react/jsx-runtime";
5194
5834
  import React4222, { useState as useState5222, useEffect as useEffect4222 } from "react";
@@ -5202,11 +5842,12 @@ import {
5202
5842
  User as User222,
5203
5843
  LogOut as LogOut222,
5204
5844
  Menu as Menu322,
5205
- X as X2222,
5845
+ X as X3222,
5206
5846
  Palette as Palette222,
5207
5847
  DollarSign as DollarSign222,
5208
- HelpCircle as HelpCircle222,
5209
- Building2 as Building2222
5848
+ HelpCircle as HelpCircle2222,
5849
+ Building2 as Building2222,
5850
+ LayoutGrid as LayoutGrid222
5210
5851
  } from "lucide-react";
5211
5852
  import { clsx as clsx222 } from "clsx";
5212
5853
  import { twMerge as twMerge222 } from "tailwind-merge";
@@ -5215,35 +5856,36 @@ import { jsx as jsx4222 } from "react/jsx-runtime";
5215
5856
  import { createContext as createContext2222, useContext as useContext2222, useEffect as useEffect2222, useState as useState2222 } from "react";
5216
5857
  import { jsx as jsx5222 } from "react/jsx-runtime";
5217
5858
  import { createContext as createContext3222, useContext as useContext3222, useState as useState3222, useCallback as useCallback322 } from "react";
5218
- import { jsx as jsx6222 } from "react/jsx-runtime";
5859
+ import { AlertTriangle as AlertTriangle322, HelpCircle as HelpCircle322, AlertCircle as AlertCircle422, X as X822 } from "lucide-react";
5860
+ import { jsx as jsx6222, jsxs as jsxs3222 } from "react/jsx-runtime";
5219
5861
  import { useState as useState4222, useEffect as useEffect3222 } from "react";
5220
- import { jsx as jsx7222, jsxs as jsxs3222 } from "react/jsx-runtime";
5221
- import { X as X622, Loader as Loader322, Eye as Eye322, FileText as FileText322, Check as Check222, XCircle as XCircle322, Edit as Edit222, CheckCircle as CheckCircle322, Clock as Clock222, AlertCircle as AlertCircle222, User as UserIcon222, Send as Send222 } from "lucide-react";
5862
+ import { jsx as jsx7222, jsxs as jsxs4222 } from "react/jsx-runtime";
5863
+ import { X as X2222, Loader as Loader322, Eye as Eye422, FileText as FileText322, Check as Check222, XCircle as XCircle322, Edit as Edit222, CheckCircle as CheckCircle322, Clock as Clock222, AlertCircle as AlertCircle2222, User as UserIcon222, Send as Send222 } from "lucide-react";
5222
5864
  import { useParams as useParams222, useSearchParams as useSearchParams322 } from "react-router-dom";
5223
- import { Fragment as Fragment722, jsx as jsx8222, jsxs as jsxs4222 } from "react/jsx-runtime";
5224
- import { Fragment as Fragment2222, jsx as jsx9222, jsxs as jsxs5222 } from "react/jsx-runtime";
5865
+ import { Fragment as Fragment722, jsx as jsx8222, jsxs as jsxs5222 } from "react/jsx-runtime";
5866
+ import { Fragment as Fragment2222, jsx as jsx9222, jsxs as jsxs6222 } from "react/jsx-runtime";
5225
5867
  import { useEffect as useEffect5222, useState as useState6222 } from "react";
5226
- import { CheckCircle as CheckCircle2222, XCircle as XCircle2222, AlertTriangle as AlertTriangle222, Info as Info222, X as X3222 } from "lucide-react";
5227
- import { jsx as jsx10222, jsxs as jsxs6222 } from "react/jsx-runtime";
5228
- import { ChevronLeft as ChevronLeft2222, Download as Download322, Menu as Menu2222, Settings as Settings2222 } from "lucide-react";
5868
+ import { CheckCircle as CheckCircle2322, XCircle as XCircle2222, AlertTriangle as AlertTriangle2222, Info as Info2222, X as X4222 } from "lucide-react";
5869
+ import { jsx as jsx10222, jsxs as jsxs7222 } from "react/jsx-runtime";
5870
+ import { ChevronLeft as ChevronLeft2222, Download as Download322, Menu as Menu2222, Settings as Settings2322 } from "lucide-react";
5229
5871
  import { useState as useState7222 } from "react";
5230
- import { Fragment as Fragment3222, jsx as jsx11222, jsxs as jsxs7222 } from "react/jsx-runtime";
5231
- import { useEffect as useEffect6222, useState as useState8222 } from "react";
5872
+ import { Fragment as Fragment3222, jsx as jsx11222, jsxs as jsxs8222 } from "react/jsx-runtime";
5873
+ import React7222, { useEffect as useEffect6222, useState as useState8222, useRef as useRef322 } from "react";
5232
5874
  import { useLocation as useLocation2222, useNavigate as useNavigate2222, useSearchParams as useSearchParams2222, Link as Link2222 } from "react-router-dom";
5233
- import { ArrowDownAZ as ArrowDownAZ222, ArrowDownUp as ArrowDownUp222, ArrowUpAZ as ArrowUpAZ222, Download as Download2222, Filter as Filter222, MoreVertical as MoreVertical222, Printer as Printer222, Search as Search2222 } from "lucide-react";
5234
- import { Fragment as Fragment4222, jsx as jsx12222, jsxs as jsxs8222 } from "react/jsx-runtime";
5875
+ import { ArrowDownAZ as ArrowDownAZ222, ArrowDownUp as ArrowDownUp222, ArrowUpAZ as ArrowUpAZ222, AlertCircle as AlertCircle3222, CheckCircle2 as CheckCircle22222, ChevronDown as ChevronDown322, Columns3 as Columns3222, Copy as Copy222, Download as Download2222, FileSpreadsheet as FileSpreadsheet222, Filter as Filter222, Maximize2 as Maximize2222, Minimize2 as Minimize2222, MoreVertical as MoreVertical222, Plus as Plus422, Printer as Printer222, RefreshCw as RefreshCw322, Settings2 as Settings22222, Trash2 as Trash2322, Upload as Upload222, X as X5222, Search as Search2222, SquareIcon as SquareIcon222 } from "lucide-react";
5876
+ import { Fragment as Fragment4222, jsx as jsx12222, jsxs as jsxs9222 } from "react/jsx-runtime";
5235
5877
  import { useState as useState10222, useEffect as useEffect8222 } from "react";
5236
- import { useState as useState9222, useRef as useRef222, useEffect as useEffect7222 } from "react";
5237
- import { Search as Search3222, ChevronDown as ChevronDown222, X as X4222, RefreshCw as RefreshCw222, Plus as Plus322 } from "lucide-react";
5238
- import { Fragment as Fragment5222, jsx as jsx13222, jsxs as jsxs9222 } from "react/jsx-runtime";
5239
- import { X as X5222, Plus as Plus2222, Trash2 as Trash2222, Users as Users222, Loader as Loader2222, RotateCcw as RotateCcw222, Ban as Ban222, Eye as Eye222, FileText as FileText2222, History as History222 } from "lucide-react";
5240
- import { Fragment as Fragment6222, jsx as jsx14222, jsxs as jsxs10222 } from "react/jsx-runtime";
5878
+ import { useState as useState9222, useRef as useRef2222, useEffect as useEffect7222 } from "react";
5879
+ import { Search as Search3222, ChevronDown as ChevronDown2222, X as X6222, RefreshCw as RefreshCw2222, Plus as Plus2222 } from "lucide-react";
5880
+ import { Fragment as Fragment5222, jsx as jsx13222, jsxs as jsxs10222 } from "react/jsx-runtime";
5881
+ import { X as X7222, Plus as Plus3222, Trash2 as Trash22222, Users as Users222, Loader as Loader2222, RotateCcw as RotateCcw222, Ban as Ban222, Eye as Eye322, FileText as FileText2222, History as History222 } from "lucide-react";
5882
+ import { Fragment as Fragment6222, jsx as jsx14222, jsxs as jsxs11222 } from "react/jsx-runtime";
5241
5883
  import { createContext as createContext4222, useContext as useContext4222, useState as useState11222, useCallback as useCallback2222 } from "react";
5242
- import { jsx as jsx15222, jsxs as jsxs11222 } from "react/jsx-runtime";
5243
- import { jsx as jsx16222, jsxs as jsxs12222 } from "react/jsx-runtime";
5244
- import { useEffect as useEffect14, useState as useState20 } from "react";
5884
+ import { jsx as jsx15222, jsxs as jsxs12222 } from "react/jsx-runtime";
5885
+ import { jsx as jsx16222, jsxs as jsxs13222 } from "react/jsx-runtime";
5886
+ import { useEffect as useEffect16, useState as useState25 } from "react";
5245
5887
  import { jsx as jsx17222 } from "react/jsx-runtime";
5246
- import { jsx as jsx22222, jsxs as jsxs13222 } from "react/jsx-runtime";
5888
+ import { jsx as jsx22222, jsxs as jsxs14222 } from "react/jsx-runtime";
5247
5889
  import { Link as Link3222 } from "react-router-dom";
5248
5890
  import { jsx as jsx32222, jsxs as jsxs22222 } from "react/jsx-runtime";
5249
5891
  import React42222, { useState as useState52222, useEffect as useEffect42222 } from "react";
@@ -5260,7 +5902,7 @@ import {
5260
5902
  X as X22222,
5261
5903
  Palette as Palette2222,
5262
5904
  DollarSign as DollarSign2222,
5263
- HelpCircle as HelpCircle2222,
5905
+ HelpCircle as HelpCircle3222,
5264
5906
  Building2 as Building22222
5265
5907
  } from "lucide-react";
5266
5908
  import { clsx as clsx2222 } from "clsx";
@@ -5273,14 +5915,14 @@ import { createContext as createContext32222, useContext as useContext32222, use
5273
5915
  import { jsx as jsx62222 } from "react/jsx-runtime";
5274
5916
  import { useState as useState42222, useEffect as useEffect32222 } from "react";
5275
5917
  import { jsx as jsx72222, jsxs as jsxs32222 } from "react/jsx-runtime";
5276
- import { X as X6222, Loader as Loader3222, Eye as Eye3222, FileText as FileText3222, Check as Check2222, XCircle as XCircle3222, Edit as Edit2222, CheckCircle as CheckCircle3222, Clock as Clock2222, AlertCircle as AlertCircle2222, User as UserIcon2222, Send as Send2222 } from "lucide-react";
5918
+ import { X as X8222, Loader as Loader3222, Eye as Eye4222, FileText as FileText3222, Check as Check2222, XCircle as XCircle3222, Edit as Edit2222, CheckCircle as CheckCircle3222, Clock as Clock2222, AlertCircle as AlertCircle4222, User as UserIcon2222, Send as Send2222 } from "lucide-react";
5277
5919
  import { useParams as useParams2222, useSearchParams as useSearchParams3222 } from "react-router-dom";
5278
5920
  import { Fragment as Fragment7222, jsx as jsx82222, jsxs as jsxs42222 } from "react/jsx-runtime";
5279
5921
  import { Fragment as Fragment22222, jsx as jsx92222, jsxs as jsxs52222 } from "react/jsx-runtime";
5280
5922
  import { useEffect as useEffect52222, useState as useState62222 } from "react";
5281
- import { CheckCircle as CheckCircle22222, XCircle as XCircle22222, AlertTriangle as AlertTriangle2222, Info as Info2222, X as X32222 } from "lucide-react";
5923
+ import { CheckCircle as CheckCircle23222, XCircle as XCircle22222, AlertTriangle as AlertTriangle3222, Info as Info3, X as X32222 } from "lucide-react";
5282
5924
  import { jsx as jsx102222, jsxs as jsxs62222 } from "react/jsx-runtime";
5283
- import { ChevronLeft as ChevronLeft22222, Download as Download3222, Menu as Menu22222, Settings as Settings22222 } from "lucide-react";
5925
+ import { ChevronLeft as ChevronLeft22222, Download as Download3222, Menu as Menu22222, Settings as Settings23222 } from "lucide-react";
5284
5926
  import { useState as useState72222 } from "react";
5285
5927
  import { Fragment as Fragment32222, jsx as jsx112222, jsxs as jsxs72222 } from "react/jsx-runtime";
5286
5928
  import { useEffect as useEffect62222, useState as useState82222 } from "react";
@@ -5288,15 +5930,15 @@ import { useLocation as useLocation22222, useNavigate as useNavigate22222, useSe
5288
5930
  import { ArrowDownAZ as ArrowDownAZ2222, ArrowDownUp as ArrowDownUp2222, ArrowUpAZ as ArrowUpAZ2222, Download as Download22222, Filter as Filter2222, MoreVertical as MoreVertical2222, Printer as Printer2222, Search as Search22222 } from "lucide-react";
5289
5931
  import { Fragment as Fragment42222, jsx as jsx122222, jsxs as jsxs82222 } from "react/jsx-runtime";
5290
5932
  import { useState as useState102222, useEffect as useEffect82222 } from "react";
5291
- import { useState as useState92222, useRef as useRef2222, useEffect as useEffect72222 } from "react";
5292
- import { Search as Search32222, ChevronDown as ChevronDown2222, X as X42222, RefreshCw as RefreshCw2222, Plus as Plus3222 } from "lucide-react";
5933
+ import { useState as useState92222, useRef as useRef3222, useEffect as useEffect72222 } from "react";
5934
+ import { Search as Search32222, ChevronDown as ChevronDown3222, X as X42222, RefreshCw as RefreshCw3222, Plus as Plus4222 } from "lucide-react";
5293
5935
  import { Fragment as Fragment52222, jsx as jsx132222, jsxs as jsxs92222 } from "react/jsx-runtime";
5294
- import { X as X52222, Plus as Plus22222, Trash2 as Trash22222, Users as Users2222, Loader as Loader22222, RotateCcw as RotateCcw2222, Ban as Ban2222, Eye as Eye2222, FileText as FileText22222, History as History2222 } from "lucide-react";
5936
+ import { X as X52222, Plus as Plus22222, Trash2 as Trash23222, Users as Users2222, Loader as Loader22222, RotateCcw as RotateCcw2222, Ban as Ban2222, Eye as Eye222, FileText as FileText22222, History as History2222 } from "lucide-react";
5295
5937
  import { Fragment as Fragment62222, jsx as jsx142222, jsxs as jsxs102222 } from "react/jsx-runtime";
5296
5938
  import { createContext as createContext42222, useContext as useContext42222, useState as useState112222, useCallback as useCallback22222 } from "react";
5297
5939
  import { jsx as jsx152222, jsxs as jsxs112222 } from "react/jsx-runtime";
5298
5940
  import { jsx as jsx162222, jsxs as jsxs122222 } from "react/jsx-runtime";
5299
- import { useEffect as useEffect13, useState as useState18 } from "react";
5941
+ import { useEffect as useEffect15, useState as useState23 } from "react";
5300
5942
  import { jsx as jsx172222 } from "react/jsx-runtime";
5301
5943
  import { jsx as jsx222222, jsxs as jsxs132222 } from "react/jsx-runtime";
5302
5944
  import { Link as Link32222 } from "react-router-dom";
@@ -5328,7 +5970,7 @@ import { createContext as createContext322222, useContext as useContext322222, u
5328
5970
  import { jsx as jsx622222 } from "react/jsx-runtime";
5329
5971
  import { useState as useState422222, useEffect as useEffect322222 } from "react";
5330
5972
  import { jsx as jsx722222, jsxs as jsxs322222 } from "react/jsx-runtime";
5331
- import { X as X62222, Loader as Loader32222, Eye as Eye32222, FileText as FileText32222, Check as Check22222, XCircle as XCircle32222, Edit as Edit22222, CheckCircle as CheckCircle32222, Clock as Clock22222, AlertCircle as AlertCircle22222, User as UserIcon22222, Send as Send22222 } from "lucide-react";
5973
+ import { X as X62222, Loader as Loader32222, Eye as Eye3222, FileText as FileText32222, Check as Check22222, XCircle as XCircle32222, Edit as Edit22222, CheckCircle as CheckCircle32222, Clock as Clock22222, AlertCircle as AlertCircle22222, User as UserIcon22222, Send as Send22222 } from "lucide-react";
5332
5974
  import { useParams as useParams22222, useSearchParams as useSearchParams32222 } from "react-router-dom";
5333
5975
  import { Fragment as Fragment72222, jsx as jsx822222, jsxs as jsxs422222 } from "react/jsx-runtime";
5334
5976
  import { Fragment as Fragment222222, jsx as jsx922222, jsxs as jsxs522222 } from "react/jsx-runtime";
@@ -5346,12 +5988,12 @@ import { useState as useState1022222, useEffect as useEffect822222 } from "react
5346
5988
  import { useState as useState922222, useRef as useRef22222, useEffect as useEffect722222 } from "react";
5347
5989
  import { Search as Search322222, ChevronDown as ChevronDown22222, X as X422222, RefreshCw as RefreshCw22222, Plus as Plus32222 } from "lucide-react";
5348
5990
  import { Fragment as Fragment522222, jsx as jsx1322222, jsxs as jsxs922222 } from "react/jsx-runtime";
5349
- import { X as X522222, Plus as Plus222222, Trash2 as Trash222222, Users as Users22222, Loader as Loader222222, RotateCcw as RotateCcw22222, Ban as Ban22222, Eye as Eye22222, FileText as FileText222222, History as History22222 } from "lucide-react";
5991
+ import { X as X522222, Plus as Plus222222, Trash2 as Trash222222, Users as Users22222, Loader as Loader222222, RotateCcw as RotateCcw22222, Ban as Ban22222, Eye as Eye2222, FileText as FileText222222, History as History22222 } from "lucide-react";
5350
5992
  import { Fragment as Fragment622222, jsx as jsx1422222, jsxs as jsxs1022222 } from "react/jsx-runtime";
5351
5993
  import { createContext as createContext422222, useContext as useContext422222, useState as useState1122222, useCallback as useCallback222222 } from "react";
5352
5994
  import { jsx as jsx1522222, jsxs as jsxs1122222 } from "react/jsx-runtime";
5353
5995
  import { jsx as jsx1622222, jsxs as jsxs1222222 } from "react/jsx-runtime";
5354
- import { useEffect as useEffect12, useState as useState16 } from "react";
5996
+ import { useEffect as useEffect14, useState as useState20 } from "react";
5355
5997
  import { jsx as jsx1722222 } from "react/jsx-runtime";
5356
5998
  import { jsx as jsx2222222, jsxs as jsxs1322222 } from "react/jsx-runtime";
5357
5999
  import { Link as Link322222 } from "react-router-dom";
@@ -5383,7 +6025,7 @@ import { createContext as createContext3222222, useContext as useContext3222222,
5383
6025
  import { jsx as jsx6222222 } from "react/jsx-runtime";
5384
6026
  import { useState as useState4222222, useEffect as useEffect3222222 } from "react";
5385
6027
  import { jsx as jsx7222222, jsxs as jsxs3222222 } from "react/jsx-runtime";
5386
- import { X as X622222, Loader as Loader322222, Eye as Eye322222, FileText as FileText322222, Check as Check222222, XCircle as XCircle322222, Edit as Edit222222, CheckCircle as CheckCircle322222, Clock as Clock222222, AlertCircle as AlertCircle222222, User as UserIcon222222, Send as Send222222 } from "lucide-react";
6028
+ import { X as X622222, Loader as Loader322222, Eye as Eye32222, FileText as FileText322222, Check as Check222222, XCircle as XCircle322222, Edit as Edit222222, CheckCircle as CheckCircle322222, Clock as Clock222222, AlertCircle as AlertCircle222222, User as UserIcon222222, Send as Send222222 } from "lucide-react";
5387
6029
  import { useParams as useParams222222, useSearchParams as useSearchParams322222 } from "react-router-dom";
5388
6030
  import { Fragment as Fragment722222, jsx as jsx8222222, jsxs as jsxs4222222 } from "react/jsx-runtime";
5389
6031
  import { Fragment as Fragment2222222, jsx as jsx9222222, jsxs as jsxs5222222 } from "react/jsx-runtime";
@@ -5401,12 +6043,12 @@ import { useState as useState10222222, useEffect as useEffect8222222 } from "rea
5401
6043
  import { useState as useState9222222, useRef as useRef222222, useEffect as useEffect7222222 } from "react";
5402
6044
  import { Search as Search3222222, ChevronDown as ChevronDown222222, X as X4222222, RefreshCw as RefreshCw222222, Plus as Plus322222 } from "lucide-react";
5403
6045
  import { Fragment as Fragment5222222, jsx as jsx13222222, jsxs as jsxs9222222 } from "react/jsx-runtime";
5404
- import { X as X5222222, Plus as Plus2222222, Trash2 as Trash2222222, Users as Users222222, Loader as Loader2222222, RotateCcw as RotateCcw222222, Ban as Ban222222, Eye as Eye222222, FileText as FileText2222222, History as History222222 } from "lucide-react";
6046
+ import { X as X5222222, Plus as Plus2222222, Trash2 as Trash2222222, Users as Users222222, Loader as Loader2222222, RotateCcw as RotateCcw222222, Ban as Ban222222, Eye as Eye22222, FileText as FileText2222222, History as History222222 } from "lucide-react";
5405
6047
  import { Fragment as Fragment6222222, jsx as jsx14222222, jsxs as jsxs10222222 } from "react/jsx-runtime";
5406
6048
  import { createContext as createContext4222222, useContext as useContext4222222, useState as useState11222222, useCallback as useCallback2222222 } from "react";
5407
6049
  import { jsx as jsx15222222, jsxs as jsxs11222222 } from "react/jsx-runtime";
5408
6050
  import { jsx as jsx16222222, jsxs as jsxs12222222 } from "react/jsx-runtime";
5409
- import { useEffect as useEffect11, useState as useState14 } from "react";
6051
+ import { useEffect as useEffect13, useState as useState18 } from "react";
5410
6052
  import { jsx as jsx17222222 } from "react/jsx-runtime";
5411
6053
  import { jsx as jsx22222222, jsxs as jsxs13222222 } from "react/jsx-runtime";
5412
6054
  import { Link as Link3222222 } from "react-router-dom";
@@ -5438,7 +6080,7 @@ import { createContext as createContext32222222, useContext as useContext3222222
5438
6080
  import { jsx as jsx62222222 } from "react/jsx-runtime";
5439
6081
  import { useState as useState42222222, useEffect as useEffect32222222 } from "react";
5440
6082
  import { jsx as jsx72222222, jsxs as jsxs32222222 } from "react/jsx-runtime";
5441
- import { X as X6222222, Loader as Loader3222222, Eye as Eye3222222, FileText as FileText3222222, Check as Check2222222, XCircle as XCircle3222222, Edit as Edit2222222, CheckCircle as CheckCircle3222222, Clock as Clock2222222, AlertCircle as AlertCircle2222222, User as UserIcon2222222, Send as Send2222222 } from "lucide-react";
6083
+ import { X as X6222222, Loader as Loader3222222, Eye as Eye322222, FileText as FileText3222222, Check as Check2222222, XCircle as XCircle3222222, Edit as Edit2222222, CheckCircle as CheckCircle3222222, Clock as Clock2222222, AlertCircle as AlertCircle2222222, User as UserIcon2222222, Send as Send2222222 } from "lucide-react";
5442
6084
  import { useParams as useParams2222222, useSearchParams as useSearchParams3222222 } from "react-router-dom";
5443
6085
  import { Fragment as Fragment7222222, jsx as jsx82222222, jsxs as jsxs42222222 } from "react/jsx-runtime";
5444
6086
  import { Fragment as Fragment22222222, jsx as jsx92222222, jsxs as jsxs52222222 } from "react/jsx-runtime";
@@ -5454,15 +6096,125 @@ import { ArrowDownAZ as ArrowDownAZ2222222, ArrowDownUp as ArrowDownUp2222222, A
5454
6096
  import { Fragment as Fragment42222222, jsx as jsx122222222, jsxs as jsxs82222222 } from "react/jsx-runtime";
5455
6097
  import { useState as useState102222222, useEffect as useEffect82222222 } from "react";
5456
6098
  import { useState as useState92222222, useRef as useRef2222222, useEffect as useEffect72222222 } from "react";
5457
- import { Search as Search32222222, ChevronDown as ChevronDown2222222, X as X42222222 } from "lucide-react";
6099
+ import { Search as Search32222222, ChevronDown as ChevronDown2222222, X as X42222222, RefreshCw as RefreshCw2222222, Plus as Plus3222222 } from "lucide-react";
5458
6100
  import { Fragment as Fragment52222222, jsx as jsx132222222, jsxs as jsxs92222222 } from "react/jsx-runtime";
5459
- import { X as X52222222, Plus as Plus3222222, Trash2 as Trash22222222, Users as Users2222222, Loader as Loader22222222, RotateCcw as RotateCcw2222222, Ban as Ban2222222, Eye as Eye2222222, FileText as FileText22222222, History as History2222222 } from "lucide-react";
6101
+ import { X as X52222222, Plus as Plus22222222, Trash2 as Trash22222222, Users as Users2222222, Loader as Loader22222222, RotateCcw as RotateCcw2222222, Ban as Ban2222222, Eye as Eye222222, FileText as FileText22222222, History as History2222222 } from "lucide-react";
5460
6102
  import { Fragment as Fragment62222222, jsx as jsx142222222, jsxs as jsxs102222222 } from "react/jsx-runtime";
5461
6103
  import { createContext as createContext42222222, useContext as useContext42222222, useState as useState112222222, useCallback as useCallback22222222 } from "react";
5462
6104
  import { jsx as jsx152222222, jsxs as jsxs112222222 } from "react/jsx-runtime";
5463
6105
  import { jsx as jsx162222222, jsxs as jsxs122222222 } from "react/jsx-runtime";
6106
+ import { useEffect as useEffect12, useState as useState16 } from "react";
6107
+ import { jsx as jsx172222222 } from "react/jsx-runtime";
6108
+ import { jsx as jsx222222222, jsxs as jsxs132222222 } from "react/jsx-runtime";
6109
+ import { Link as Link32222222 } from "react-router-dom";
6110
+ import { jsx as jsx322222222, jsxs as jsxs222222222 } from "react/jsx-runtime";
6111
+ import React422222222, { useState as useState522222222, useEffect as useEffect422222222 } from "react";
6112
+ import { useLocation as useLocation32222222, useNavigate as useNavigate32222222 } from "react-router-dom";
6113
+ import {
6114
+ Settings as Settings32222222,
6115
+ ChevronLeft as ChevronLeft32222222,
6116
+ ChevronRight as ChevronRight22222222,
6117
+ Search as Search42222222,
6118
+ Bell as Bell22222222,
6119
+ User as User22222222,
6120
+ LogOut as LogOut22222222,
6121
+ Menu as Menu32222222,
6122
+ X as X222222222,
6123
+ Palette as Palette22222222,
6124
+ DollarSign as DollarSign22222222,
6125
+ HelpCircle as HelpCircle22222222,
6126
+ Building2 as Building222222222
6127
+ } from "lucide-react";
6128
+ import { clsx as clsx22222222 } from "clsx";
6129
+ import { twMerge as twMerge22222222 } from "tailwind-merge";
6130
+ import { createContext as createContext52222222, useContext as useContext52222222, useState as useState122222222, useEffect as useEffect92222222 } from "react";
6131
+ import { jsx as jsx422222222 } from "react/jsx-runtime";
6132
+ import { createContext as createContext222222222, useContext as useContext222222222, useEffect as useEffect222222222, useState as useState222222222 } from "react";
6133
+ import { jsx as jsx522222222 } from "react/jsx-runtime";
6134
+ import { createContext as createContext322222222, useContext as useContext322222222, useState as useState322222222, useCallback as useCallback32222222 } from "react";
6135
+ import { jsx as jsx622222222 } from "react/jsx-runtime";
6136
+ import { useState as useState422222222, useEffect as useEffect322222222 } from "react";
6137
+ import { jsx as jsx722222222, jsxs as jsxs322222222 } from "react/jsx-runtime";
6138
+ import { X as X62222222, Loader as Loader32222222, Eye as Eye3222222, FileText as FileText32222222, Check as Check22222222, XCircle as XCircle32222222, Edit as Edit22222222, CheckCircle as CheckCircle32222222, Clock as Clock22222222, AlertCircle as AlertCircle22222222, User as UserIcon22222222, Send as Send22222222 } from "lucide-react";
6139
+ import { useParams as useParams22222222, useSearchParams as useSearchParams32222222 } from "react-router-dom";
6140
+ import { Fragment as Fragment72222222, jsx as jsx822222222, jsxs as jsxs422222222 } from "react/jsx-runtime";
6141
+ import { Fragment as Fragment222222222, jsx as jsx922222222, jsxs as jsxs522222222 } from "react/jsx-runtime";
6142
+ import { useEffect as useEffect522222222, useState as useState622222222 } from "react";
6143
+ import { CheckCircle as CheckCircle222222222, XCircle as XCircle222222222, AlertTriangle as AlertTriangle22222222, Info as Info22222222, X as X322222222 } from "lucide-react";
6144
+ import { jsx as jsx1022222222, jsxs as jsxs622222222 } from "react/jsx-runtime";
6145
+ import { ChevronLeft as ChevronLeft222222222, Download as Download32222222, Menu as Menu222222222, Settings as Settings222222222 } from "lucide-react";
6146
+ import { useState as useState722222222 } from "react";
6147
+ import { Fragment as Fragment322222222, jsx as jsx1122222222, jsxs as jsxs722222222 } from "react/jsx-runtime";
6148
+ import { useEffect as useEffect622222222, useState as useState822222222 } from "react";
6149
+ import { useLocation as useLocation222222222, useNavigate as useNavigate222222222, useSearchParams as useSearchParams222222222, Link as Link222222222 } from "react-router-dom";
6150
+ import { ArrowDownAZ as ArrowDownAZ22222222, ArrowDownUp as ArrowDownUp22222222, ArrowUpAZ as ArrowUpAZ22222222, Download as Download222222222, Filter as Filter22222222, MoreVertical as MoreVertical22222222, Printer as Printer22222222, Search as Search222222222 } from "lucide-react";
6151
+ import { Fragment as Fragment422222222, jsx as jsx1222222222, jsxs as jsxs822222222 } from "react/jsx-runtime";
6152
+ import { useState as useState1022222222, useEffect as useEffect822222222 } from "react";
6153
+ import { useState as useState922222222, useRef as useRef22222222, useEffect as useEffect722222222 } from "react";
6154
+ import { Search as Search322222222, ChevronDown as ChevronDown22222222, X as X422222222, RefreshCw as RefreshCw22222222, Plus as Plus32222222 } from "lucide-react";
6155
+ import { Fragment as Fragment522222222, jsx as jsx1322222222, jsxs as jsxs922222222 } from "react/jsx-runtime";
6156
+ import { X as X522222222, Plus as Plus222222222, Trash2 as Trash222222222, Users as Users22222222, Loader as Loader222222222, RotateCcw as RotateCcw22222222, Ban as Ban22222222, Eye as Eye2222222, FileText as FileText222222222, History as History22222222 } from "lucide-react";
6157
+ import { Fragment as Fragment622222222, jsx as jsx1422222222, jsxs as jsxs1022222222 } from "react/jsx-runtime";
6158
+ import { createContext as createContext422222222, useContext as useContext422222222, useState as useState1122222222, useCallback as useCallback222222222 } from "react";
6159
+ import { jsx as jsx1522222222, jsxs as jsxs1122222222 } from "react/jsx-runtime";
6160
+ import { jsx as jsx1622222222, jsxs as jsxs1222222222 } from "react/jsx-runtime";
6161
+ import { useEffect as useEffect11, useState as useState14 } from "react";
6162
+ import { jsx as jsx1722222222 } from "react/jsx-runtime";
6163
+ import { jsx as jsx2222222222, jsxs as jsxs1322222222 } from "react/jsx-runtime";
6164
+ import { Link as Link322222222 } from "react-router-dom";
6165
+ import { jsx as jsx3222222222, jsxs as jsxs2222222222 } from "react/jsx-runtime";
6166
+ import React4222222222, { useState as useState5222222222, useEffect as useEffect4222222222 } from "react";
6167
+ import { useLocation as useLocation322222222, useNavigate as useNavigate322222222 } from "react-router-dom";
6168
+ import {
6169
+ Settings as Settings322222222,
6170
+ ChevronLeft as ChevronLeft322222222,
6171
+ ChevronRight as ChevronRight222222222,
6172
+ Search as Search422222222,
6173
+ Bell as Bell222222222,
6174
+ User as User222222222,
6175
+ LogOut as LogOut222222222,
6176
+ Menu as Menu322222222,
6177
+ X as X2222222222,
6178
+ Palette as Palette222222222,
6179
+ DollarSign as DollarSign222222222,
6180
+ HelpCircle as HelpCircle222222222,
6181
+ Building2 as Building2222222222
6182
+ } from "lucide-react";
6183
+ import { clsx as clsx222222222 } from "clsx";
6184
+ import { twMerge as twMerge222222222 } from "tailwind-merge";
6185
+ import { createContext as createContext522222222, useContext as useContext522222222, useState as useState1222222222, useEffect as useEffect922222222 } from "react";
6186
+ import { jsx as jsx4222222222 } from "react/jsx-runtime";
6187
+ import { createContext as createContext2222222222, useContext as useContext2222222222, useEffect as useEffect2222222222, useState as useState2222222222 } from "react";
6188
+ import { jsx as jsx5222222222 } from "react/jsx-runtime";
6189
+ import { createContext as createContext3222222222, useContext as useContext3222222222, useState as useState3222222222, useCallback as useCallback322222222 } from "react";
6190
+ import { jsx as jsx6222222222 } from "react/jsx-runtime";
6191
+ import { useState as useState4222222222, useEffect as useEffect3222222222 } from "react";
6192
+ import { jsx as jsx7222222222, jsxs as jsxs3222222222 } from "react/jsx-runtime";
6193
+ import { X as X622222222, Loader as Loader322222222, Eye as Eye32222222, FileText as FileText322222222, Check as Check222222222, XCircle as XCircle322222222, Edit as Edit222222222, CheckCircle as CheckCircle322222222, Clock as Clock222222222, AlertCircle as AlertCircle222222222, User as UserIcon222222222, Send as Send222222222 } from "lucide-react";
6194
+ import { useParams as useParams222222222, useSearchParams as useSearchParams322222222 } from "react-router-dom";
6195
+ import { Fragment as Fragment722222222, jsx as jsx8222222222, jsxs as jsxs4222222222 } from "react/jsx-runtime";
6196
+ import { Fragment as Fragment2222222222, jsx as jsx9222222222, jsxs as jsxs5222222222 } from "react/jsx-runtime";
6197
+ import { useEffect as useEffect5222222222, useState as useState6222222222 } from "react";
6198
+ import { CheckCircle as CheckCircle2222222222, XCircle as XCircle2222222222, AlertTriangle as AlertTriangle222222222, Info as Info222222222, X as X3222222222 } from "lucide-react";
6199
+ import { jsx as jsx10222222222, jsxs as jsxs6222222222 } from "react/jsx-runtime";
6200
+ import { ChevronLeft as ChevronLeft2222222222, Download as Download322222222, Menu as Menu2222222222, Settings as Settings2222222222 } from "lucide-react";
6201
+ import { useState as useState7222222222 } from "react";
6202
+ import { Fragment as Fragment3222222222, jsx as jsx11222222222, jsxs as jsxs7222222222 } from "react/jsx-runtime";
6203
+ import { useEffect as useEffect6222222222, useState as useState8222222222 } from "react";
6204
+ import { useLocation as useLocation2222222222, useNavigate as useNavigate2222222222, useSearchParams as useSearchParams2222222222, Link as Link2222222222 } from "react-router-dom";
6205
+ import { ArrowDownAZ as ArrowDownAZ222222222, ArrowDownUp as ArrowDownUp222222222, ArrowUpAZ as ArrowUpAZ222222222, Download as Download2222222222, Filter as Filter222222222, MoreVertical as MoreVertical222222222, Printer as Printer222222222, Search as Search2222222222 } from "lucide-react";
6206
+ import { Fragment as Fragment4222222222, jsx as jsx12222222222, jsxs as jsxs8222222222 } from "react/jsx-runtime";
6207
+ import { useState as useState10222222222, useEffect as useEffect8222222222 } from "react";
6208
+ import { useState as useState9222222222, useRef as useRef222222222, useEffect as useEffect7222222222 } from "react";
6209
+ import { Search as Search3222222222, ChevronDown as ChevronDown222222222, X as X4222222222 } from "lucide-react";
6210
+ import { Fragment as Fragment5222222222, jsx as jsx13222222222, jsxs as jsxs9222222222 } from "react/jsx-runtime";
6211
+ import { X as X5222222222, Plus as Plus322222222, Trash2 as Trash2222222222, Users as Users222222222, Loader as Loader2222222222, RotateCcw as RotateCcw222222222, Ban as Ban222222222, Eye as Eye22222222, FileText as FileText2222222222, History as History222222222 } from "lucide-react";
6212
+ import { Fragment as Fragment6222222222, jsx as jsx14222222222, jsxs as jsxs10222222222 } from "react/jsx-runtime";
6213
+ import { createContext as createContext4222222222, useContext as useContext4222222222, useState as useState11222222222, useCallback as useCallback2222222222 } from "react";
6214
+ import { jsx as jsx15222222222, jsxs as jsxs11222222222 } from "react/jsx-runtime";
6215
+ import { jsx as jsx16222222222, jsxs as jsxs12222222222 } from "react/jsx-runtime";
5464
6216
  import { useState as useState13 } from "react";
5465
- import { jsx as jsx18, jsxs as jsxs1422 } from "react/jsx-runtime";
6217
+ import { jsx as jsx18, jsxs as jsxs142222 } from "react/jsx-runtime";
5466
6218
  import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
5467
6219
  import { useState as useState15 } from "react";
5468
6220
  import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
@@ -5484,6 +6236,14 @@ import { useState as useState24 } from "react";
5484
6236
  import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
5485
6237
  import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
5486
6238
  import { jsx as jsx36 } from "react/jsx-runtime";
6239
+ import { useState as useState26 } from "react";
6240
+ import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
6241
+ import { jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
6242
+ import { jsx as jsx39 } from "react/jsx-runtime";
6243
+ import { useState as useState28 } from "react";
6244
+ import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
6245
+ import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
6246
+ import { jsx as jsx43 } from "react/jsx-runtime";
5487
6247
  var PrimaryButton2 = ({
5488
6248
  loading = false,
5489
6249
  children,
@@ -5584,26 +6344,26 @@ var ADDRESS_IP22 = chooseEnv22 === "prod" ? "back.rewise.praeduim-tech.com" : "l
5584
6344
  var ADDRESS_IP_URL22 = chooseEnv22 === "prod" ? `https://${ADDRESS_IP22}/` : `http://${ADDRESS_IP22}/`;
5585
6345
  var API_URL22 = `${ADDRESS_IP_URL22}api`;
5586
6346
  var API_BASE_URL32 = `${API_URL22}/core/auth/`;
6347
+ var VENDORS_API_URL22 = `${API_URL22}/accounting/vendors/`;
5587
6348
  var SessionContext22 = createContext222(void 0);
5588
6349
  var API_BASE_URL222 = `${API_URL22}/core/auth/`;
5589
6350
  var USERS_API_URL22 = `${API_URL22}/core/users/`;
5590
6351
  var ToastContext22 = createContext322(void 0);
5591
6352
  var APPROVAL_API_URL22 = `${API_URL22}/approvals/cases/`;
5592
6353
  var AlertContext22 = createContext422(void 0);
5593
- var VENDORS_API_URL22 = `${API_URL22}/accounting/vendors/`;
5594
6354
  var ThemeContext222 = createContext522(void 0);
5595
6355
  var chooseEnv222 = localStorage.getItem("env") ?? "prod";
5596
6356
  var ADDRESS_IP222 = chooseEnv222 === "prod" ? "back.rewise.praeduim-tech.com" : "localhost:8000";
5597
6357
  var ADDRESS_IP_URL222 = chooseEnv222 === "prod" ? `https://${ADDRESS_IP222}/` : `http://${ADDRESS_IP222}/`;
5598
6358
  var API_URL222 = `${ADDRESS_IP_URL222}api`;
5599
6359
  var API_BASE_URL322 = `${API_URL222}/core/auth/`;
6360
+ var VENDORS_API_URL222 = `${API_URL222}/accounting/vendors/`;
5600
6361
  var SessionContext222 = createContext2222(void 0);
5601
6362
  var API_BASE_URL2222 = `${API_URL222}/core/auth/`;
5602
6363
  var USERS_API_URL222 = `${API_URL222}/core/users/`;
5603
6364
  var ToastContext222 = createContext3222(void 0);
5604
6365
  var APPROVAL_API_URL222 = `${API_URL222}/approvals/cases/`;
5605
6366
  var AlertContext222 = createContext4222(void 0);
5606
- var VENDORS_API_URL222 = `${API_URL222}/accounting/vendors/`;
5607
6367
  var ThemeContext2222 = createContext5222(void 0);
5608
6368
  var chooseEnv2222 = localStorage.getItem("env") ?? "prod";
5609
6369
  var ADDRESS_IP2222 = chooseEnv2222 === "prod" ? "back.rewise.praeduim-tech.com" : "localhost:8000";
@@ -5618,8 +6378,9 @@ var APPROVAL_API_URL2222 = `${API_URL2222}/approvals/cases/`;
5618
6378
  var AlertContext2222 = createContext42222(void 0);
5619
6379
  var VENDORS_API_URL2222 = `${API_URL2222}/accounting/vendors/`;
5620
6380
  var ThemeContext22222 = createContext52222(void 0);
5621
- var ADDRESS_IP22222 = "localhost:8000";
5622
- var ADDRESS_IP_URL22222 = `http://${ADDRESS_IP22222}/`;
6381
+ var chooseEnv22222 = localStorage.getItem("env") ?? "prod";
6382
+ var ADDRESS_IP22222 = chooseEnv22222 === "prod" ? "back.rewise.praeduim-tech.com" : "localhost:8000";
6383
+ var ADDRESS_IP_URL22222 = chooseEnv22222 === "prod" ? `https://${ADDRESS_IP22222}/` : `http://${ADDRESS_IP22222}/`;
5623
6384
  var API_URL22222 = `${ADDRESS_IP_URL22222}api`;
5624
6385
  var API_BASE_URL32222 = `${API_URL22222}/core/auth/`;
5625
6386
  var SessionContext22222 = createContext222222(void 0);
@@ -5630,8 +6391,9 @@ var APPROVAL_API_URL22222 = `${API_URL22222}/approvals/cases/`;
5630
6391
  var AlertContext22222 = createContext422222(void 0);
5631
6392
  var VENDORS_API_URL22222 = `${API_URL22222}/accounting/vendors/`;
5632
6393
  var ThemeContext222222 = createContext522222(void 0);
5633
- var ADDRESS_IP222222 = "localhost:8000";
5634
- var ADDRESS_IP_URL222222 = `http://${ADDRESS_IP222222}/`;
6394
+ var chooseEnv222222 = localStorage.getItem("env") ?? "prod";
6395
+ var ADDRESS_IP222222 = chooseEnv222222 === "prod" ? "back.rewise.praeduim-tech.com" : "localhost:8000";
6396
+ var ADDRESS_IP_URL222222 = chooseEnv222222 === "prod" ? `https://${ADDRESS_IP222222}/` : `http://${ADDRESS_IP222222}/`;
5635
6397
  var API_URL222222 = `${ADDRESS_IP_URL222222}api`;
5636
6398
  var API_BASE_URL322222 = `${API_URL222222}/core/auth/`;
5637
6399
  var SessionContext222222 = createContext2222222(void 0);
@@ -5652,34 +6414,66 @@ var USERS_API_URL2222222 = `${API_URL2222222}/core/users/`;
5652
6414
  var ToastContext2222222 = createContext32222222(void 0);
5653
6415
  var APPROVAL_API_URL2222222 = `${API_URL2222222}/approvals/cases/`;
5654
6416
  var AlertContext2222222 = createContext42222222(void 0);
5655
- var URI = `${API_URL222222}/core/departments/`;
5656
- var URI2 = `${API_URL222222}/accounting/profit-or-cost-center/`;
5657
- var COST_URI = `${API_URL222222}/accounting/cost-center/`;
5658
- var PROFIT_URI = `${API_URL222222}/accounting/profit-center/`;
5659
- var URI3 = `${API_URL22222}/core/departments/`;
5660
- var URI4 = `${API_URL22222}/accounting/profit-or-cost-center/`;
5661
- var COST_URI2 = `${API_URL22222}/accounting/cost-center/`;
5662
- var PROFIT_URI2 = `${API_URL22222}/accounting/profit-center/`;
5663
- var URI5 = `${API_URL2222}/core/departments/`;
5664
- var URI6 = `${API_URL2222}/accounting/profit-or-cost-center/`;
5665
- var COST_URI3 = `${API_URL2222}/accounting/cost-center/`;
5666
- var PROFIT_URI3 = `${API_URL2222}/accounting/profit-center/`;
5667
- var URI7 = `${API_URL222}/core/departments/`;
5668
- var URI8 = `${API_URL222}/accounting/profit-or-cost-center/`;
5669
- var COST_URI4 = `${API_URL222}/accounting/cost-center/`;
5670
- var PROFIT_URI4 = `${API_URL222}/accounting/profit-center/`;
5671
- var URI9 = `${API_URL22}/core/departments/`;
5672
- var URI10 = `${API_URL22}/accounting/profit-or-cost-center/`;
5673
- var COST_URI5 = `${API_URL22}/accounting/cost-center/`;
5674
- var PROFIT_URI5 = `${API_URL22}/accounting/profit-center/`;
5675
- var URI11 = `${API_URL2}/core/departments/`;
5676
- var URI12 = `${API_URL2}/accounting/profit-or-cost-center/`;
5677
- var COST_URI6 = `${API_URL2}/accounting/cost-center/`;
5678
- var PROFIT_URI6 = `${API_URL2}/accounting/profit-center/`;
6417
+ var VENDORS_API_URL2222222 = `${API_URL2222222}/accounting/vendors/`;
6418
+ var ThemeContext22222222 = createContext52222222(void 0);
6419
+ var ADDRESS_IP22222222 = "localhost:8000";
6420
+ var ADDRESS_IP_URL22222222 = `http://${ADDRESS_IP22222222}/`;
6421
+ var API_URL22222222 = `${ADDRESS_IP_URL22222222}api`;
6422
+ var API_BASE_URL32222222 = `${API_URL22222222}/core/auth/`;
6423
+ var SessionContext22222222 = createContext222222222(void 0);
6424
+ var API_BASE_URL222222222 = `${API_URL22222222}/core/auth/`;
6425
+ var USERS_API_URL22222222 = `${API_URL22222222}/core/users/`;
6426
+ var ToastContext22222222 = createContext322222222(void 0);
6427
+ var APPROVAL_API_URL22222222 = `${API_URL22222222}/approvals/cases/`;
6428
+ var AlertContext22222222 = createContext422222222(void 0);
6429
+ var VENDORS_API_URL22222222 = `${API_URL22222222}/accounting/vendors/`;
6430
+ var ThemeContext222222222 = createContext522222222(void 0);
6431
+ var ADDRESS_IP222222222 = "localhost:8000";
6432
+ var ADDRESS_IP_URL222222222 = `http://${ADDRESS_IP222222222}/`;
6433
+ var API_URL222222222 = `${ADDRESS_IP_URL222222222}api`;
6434
+ var API_BASE_URL322222222 = `${API_URL222222222}/core/auth/`;
6435
+ var SessionContext222222222 = createContext2222222222(void 0);
6436
+ var API_BASE_URL2222222222 = `${API_URL222222222}/core/auth/`;
6437
+ var USERS_API_URL222222222 = `${API_URL222222222}/core/users/`;
6438
+ var ToastContext222222222 = createContext3222222222(void 0);
6439
+ var APPROVAL_API_URL222222222 = `${API_URL222222222}/approvals/cases/`;
6440
+ var AlertContext222222222 = createContext4222222222(void 0);
6441
+ var URI = `${API_URL22222222}/core/departments/`;
6442
+ var URI2 = `${API_URL22222222}/accounting/profit-or-cost-center/`;
6443
+ var COST_URI = `${API_URL22222222}/accounting/cost-center/`;
6444
+ var PROFIT_URI = `${API_URL22222222}/accounting/profit-center/`;
6445
+ var URI3 = `${API_URL2222222}/core/departments/`;
6446
+ var URI4 = `${API_URL2222222}/accounting/profit-or-cost-center/`;
6447
+ var COST_URI2 = `${API_URL2222222}/accounting/cost-center/`;
6448
+ var PROFIT_URI2 = `${API_URL2222222}/accounting/profit-center/`;
6449
+ var URI5 = `${API_URL222222}/core/departments/`;
6450
+ var URI6 = `${API_URL222222}/accounting/profit-or-cost-center/`;
6451
+ var COST_URI3 = `${API_URL222222}/accounting/cost-center/`;
6452
+ var PROFIT_URI3 = `${API_URL222222}/accounting/profit-center/`;
6453
+ var URI7 = `${API_URL22222}/core/departments/`;
6454
+ var URI8 = `${API_URL22222}/accounting/profit-or-cost-center/`;
6455
+ var COST_URI4 = `${API_URL22222}/accounting/cost-center/`;
6456
+ var PROFIT_URI4 = `${API_URL22222}/accounting/profit-center/`;
6457
+ var URI9 = `${API_URL2222}/core/departments/`;
6458
+ var URI10 = `${API_URL2222}/accounting/profit-or-cost-center/`;
6459
+ var COST_URI5 = `${API_URL2222}/accounting/cost-center/`;
6460
+ var PROFIT_URI5 = `${API_URL2222}/accounting/profit-center/`;
6461
+ var URI11 = `${API_URL222}/core/departments/`;
6462
+ var URI12 = `${API_URL222}/accounting/profit-or-cost-center/`;
6463
+ var COST_URI6 = `${API_URL222}/accounting/cost-center/`;
6464
+ var PROFIT_URI6 = `${API_URL222}/accounting/profit-center/`;
6465
+ var URI13 = `${API_URL22}/core/departments/`;
6466
+ var URI14 = `${API_URL22}/accounting/profit-or-cost-center/`;
6467
+ var COST_URI7 = `${API_URL22}/accounting/cost-center/`;
6468
+ var PROFIT_URI7 = `${API_URL22}/accounting/profit-center/`;
6469
+ var URI15 = `${API_URL2}/core/departments/`;
6470
+ var URI16 = `${API_URL2}/accounting/profit-or-cost-center/`;
6471
+ var COST_URI8 = `${API_URL2}/accounting/cost-center/`;
6472
+ var PROFIT_URI8 = `${API_URL2}/accounting/profit-center/`;
5679
6473
 
5680
6474
  // src/components/common/FormVendor.tsx
5681
- import { useState as useState26 } from "react";
5682
- import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
6475
+ import { useState as useState30 } from "react";
6476
+ import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
5683
6477
  var MinimalVendorForm = ({
5684
6478
  isOpen,
5685
6479
  onClose,
@@ -5688,13 +6482,13 @@ var MinimalVendorForm = ({
5688
6482
  refresh = () => {
5689
6483
  }
5690
6484
  }) => {
5691
- const [formData, setFormData] = useState26(object || {
6485
+ const [formData, setFormData] = useState30(object || {
5692
6486
  from_module: from ?? null,
5693
6487
  legal_name: "",
5694
6488
  trading_name: ""
5695
6489
  });
5696
- const [errors, setErrors] = useState26({});
5697
- const [loading, setLoading] = useState26(false);
6490
+ const [errors, setErrors] = useState30({});
6491
+ const [loading, setLoading] = useState30(false);
5698
6492
  const { token } = useSession();
5699
6493
  const { success, error: showError } = useToast();
5700
6494
  const handleInputChange = (e) => {
@@ -5753,7 +6547,7 @@ var MinimalVendorForm = ({
5753
6547
  }
5754
6548
  };
5755
6549
  if (!isOpen) return null;
5756
- return /* @__PURE__ */ jsx37(
6550
+ return /* @__PURE__ */ jsx44(
5757
6551
  Modals_default2,
5758
6552
  {
5759
6553
  title: "Ajouter un fournisseur",
@@ -5761,9 +6555,9 @@ var MinimalVendorForm = ({
5761
6555
  description: ``,
5762
6556
  open: isOpen,
5763
6557
  onClose,
5764
- children: /* @__PURE__ */ jsxs27("form", { onSubmit: handleSubmit, className: "p-", children: [
5765
- /* @__PURE__ */ jsx37("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs27("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
5766
- /* @__PURE__ */ jsx37(
6558
+ children: /* @__PURE__ */ jsxs31("form", { onSubmit: handleSubmit, className: "p-", children: [
6559
+ /* @__PURE__ */ jsx44("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
6560
+ /* @__PURE__ */ jsx44(
5767
6561
  TextInput2,
5768
6562
  {
5769
6563
  label: "Raison sociale",
@@ -5775,7 +6569,7 @@ var MinimalVendorForm = ({
5775
6569
  onChange: handleInputChange
5776
6570
  }
5777
6571
  ),
5778
- /* @__PURE__ */ jsx37(
6572
+ /* @__PURE__ */ jsx44(
5779
6573
  TextInput2,
5780
6574
  {
5781
6575
  label: "Nom commercial",
@@ -5786,8 +6580,8 @@ var MinimalVendorForm = ({
5786
6580
  }
5787
6581
  )
5788
6582
  ] }) }),
5789
- /* @__PURE__ */ jsxs27("div", { className: "flex justify-between pt-6 mt-8", children: [
5790
- /* @__PURE__ */ jsx37(
6583
+ /* @__PURE__ */ jsxs31("div", { className: "flex justify-between pt-6 mt-8", children: [
6584
+ /* @__PURE__ */ jsx44(
5791
6585
  "button",
5792
6586
  {
5793
6587
  type: "button",
@@ -5796,7 +6590,7 @@ var MinimalVendorForm = ({
5796
6590
  children: "Annuler"
5797
6591
  }
5798
6592
  ),
5799
- /* @__PURE__ */ jsx37(
6593
+ /* @__PURE__ */ jsx44(
5800
6594
  Buttons_default2,
5801
6595
  {
5802
6596
  type: "button",
@@ -5812,43 +6606,43 @@ var MinimalVendorForm = ({
5812
6606
  };
5813
6607
 
5814
6608
  // src/services/DepartmentServices.ts
5815
- var URI13 = `${API_URL}/core/departments/`;
6609
+ var URI17 = `${API_URL}/core/departments/`;
5816
6610
  var DepartmentServices = {
5817
- create: (data) => FetchApi.post(`${URI13}`, data),
5818
- get: (id) => FetchApi.get(`${URI13}${id}/`),
5819
- list: (params) => FetchApi.get(`${URI13}?${new URLSearchParams(params).toString()}`),
5820
- update: (id, data) => FetchApi.put(`${URI13}${id}/`, data),
5821
- delete: (id) => FetchApi.delete(`${URI13}${id}/`)
6611
+ create: (data) => FetchApi.post(`${URI17}`, data),
6612
+ get: (id) => FetchApi.get(`${URI17}${id}/`),
6613
+ list: (params) => FetchApi.get(`${URI17}?${new URLSearchParams(params).toString()}`),
6614
+ update: (id, data) => FetchApi.put(`${URI17}${id}/`, data),
6615
+ delete: (id) => FetchApi.delete(`${URI17}${id}/`)
5822
6616
  };
5823
6617
 
5824
6618
  // src/services/ProfitCostsServices.ts
5825
- var URI14 = `${API_URL}/accounting/profit-or-cost-center/`;
5826
- var COST_URI7 = `${API_URL}/accounting/cost-center/`;
6619
+ var URI18 = `${API_URL}/accounting/profit-or-cost-center/`;
6620
+ var COST_URI9 = `${API_URL}/accounting/cost-center/`;
5827
6621
  var CostServices = {
5828
- create: (data) => FetchApi.post(`${COST_URI7}`, data),
5829
- get: (id) => FetchApi.get(`${COST_URI7}${id}/`),
5830
- list: (params) => FetchApi.get(`${COST_URI7}?${new URLSearchParams(params).toString()}`),
5831
- update: (id, data) => FetchApi.put(`${COST_URI7}${id}/`, data),
5832
- delete: (id) => FetchApi.delete(`${COST_URI7}${id}/`)
6622
+ create: (data) => FetchApi.post(`${COST_URI9}`, data),
6623
+ get: (id) => FetchApi.get(`${COST_URI9}${id}/`),
6624
+ list: (params) => FetchApi.get(`${COST_URI9}?${new URLSearchParams(params).toString()}`),
6625
+ update: (id, data) => FetchApi.put(`${COST_URI9}${id}/`, data),
6626
+ delete: (id) => FetchApi.delete(`${COST_URI9}${id}/`)
5833
6627
  };
5834
- var PROFIT_URI7 = `${API_URL}/accounting/profit-center/`;
6628
+ var PROFIT_URI9 = `${API_URL}/accounting/profit-center/`;
5835
6629
 
5836
6630
  // src/components/common/CommonSelect.tsx
5837
- import { jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
6631
+ import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
5838
6632
  var SelectVendor = ({
5839
6633
  value,
5840
6634
  onSelect
5841
6635
  }) => {
5842
- const [showModal, setShowModal] = useState27(false);
5843
- const [selectedVendor, setSelectedVendor] = useState27(null);
6636
+ const [showModal, setShowModal] = useState31(false);
6637
+ const [selectedVendor, setSelectedVendor] = useState31(null);
5844
6638
  const { token, activeBusinessEntity } = useSession();
5845
- const [vendors, setVendors] = useState27(() => {
6639
+ const [vendors, setVendors] = useState31(() => {
5846
6640
  const cacheKey = `vendors_cache_${activeBusinessEntity?.id || "default"}`;
5847
6641
  const cached = sessionStorage.getItem(cacheKey);
5848
6642
  return cached ? JSON.parse(cached) : [];
5849
6643
  });
5850
- const [loadingVendors, setLoadingVendors] = useState27(false);
5851
- useEffect17(() => {
6644
+ const [loadingVendors, setLoadingVendors] = useState31(false);
6645
+ useEffect19(() => {
5852
6646
  const cacheKey = `vendors_cache_${activeBusinessEntity?.id || "default"}`;
5853
6647
  const cached = sessionStorage.getItem(cacheKey);
5854
6648
  if (!cached) {
@@ -5886,9 +6680,9 @@ var SelectVendor = ({
5886
6680
  sessionStorage.removeItem(cacheKey);
5887
6681
  loadVendors();
5888
6682
  };
5889
- return /* @__PURE__ */ jsxs28("div", { children: [
5890
- /* @__PURE__ */ jsx38("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx38("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Ajouter un fournisseur" }) }),
5891
- /* @__PURE__ */ jsx38(
6683
+ return /* @__PURE__ */ jsxs33("div", { children: [
6684
+ /* @__PURE__ */ jsx45("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx45("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Ajouter un fournisseur" }) }),
6685
+ /* @__PURE__ */ jsx45(
5892
6686
  SearchableSelect,
5893
6687
  {
5894
6688
  value,
@@ -5904,8 +6698,8 @@ var SelectVendor = ({
5904
6698
  },
5905
6699
  "fourni" + value
5906
6700
  ),
5907
- loadingVendors && /* @__PURE__ */ jsx38("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des fournisseurs..." }),
5908
- showModal && /* @__PURE__ */ jsx38(
6701
+ loadingVendors && /* @__PURE__ */ jsx45("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des fournisseurs..." }),
6702
+ showModal && /* @__PURE__ */ jsx45(
5909
6703
  MinimalVendorForm,
5910
6704
  {
5911
6705
  object: selectedVendor,
@@ -5922,13 +6716,13 @@ var SelectUser = ({
5922
6716
  onSelect
5923
6717
  }) => {
5924
6718
  const { token, activeBusinessEntity } = useSession();
5925
- const [users, setUsers] = useState27(() => {
6719
+ const [users, setUsers] = useState31(() => {
5926
6720
  const cacheKey = `users_cache_${activeBusinessEntity?.id || "default"}`;
5927
6721
  const cached = sessionStorage.getItem(cacheKey);
5928
6722
  return cached ? JSON.parse(cached) : [];
5929
6723
  });
5930
- const [loading, setLoading] = useState27(false);
5931
- useEffect17(() => {
6724
+ const [loading, setLoading] = useState31(false);
6725
+ useEffect19(() => {
5932
6726
  const cacheKey = `users_cache_${activeBusinessEntity?.id || "default"}`;
5933
6727
  const cached = sessionStorage.getItem(cacheKey);
5934
6728
  if (!cached) {
@@ -5964,19 +6758,19 @@ var SelectUser = ({
5964
6758
  return users.map((user) => ({
5965
6759
  value: user.id,
5966
6760
  label: `${user.first_name} ${user.last_name}`,
5967
- content: /* @__PURE__ */ jsx38("div", { className: "flex items-center space-x-3", children: /* @__PURE__ */ jsxs28("div", { className: "flex-1", children: [
5968
- /* @__PURE__ */ jsxs28("div", { className: "font-medium text-gray-900", children: [
6761
+ content: /* @__PURE__ */ jsx45("div", { className: "flex items-center space-x-3", children: /* @__PURE__ */ jsxs33("div", { className: "flex-1", children: [
6762
+ /* @__PURE__ */ jsxs33("div", { className: "font-medium text-gray-900", children: [
5969
6763
  user.first_name,
5970
6764
  " ",
5971
6765
  user.last_name
5972
6766
  ] }),
5973
- /* @__PURE__ */ jsx38("div", { className: "text-sm text-gray-500", children: user.email })
6767
+ /* @__PURE__ */ jsx45("div", { className: "text-sm text-gray-500", children: user.email })
5974
6768
  ] }) })
5975
6769
  }));
5976
6770
  };
5977
- return /* @__PURE__ */ jsxs28("div", { children: [
5978
- /* @__PURE__ */ jsx38("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx38("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "S\xE9lectionner un utilisateur" }) }),
5979
- /* @__PURE__ */ jsx38(
6771
+ return /* @__PURE__ */ jsxs33("div", { children: [
6772
+ /* @__PURE__ */ jsx45("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx45("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "S\xE9lectionner un utilisateur" }) }),
6773
+ /* @__PURE__ */ jsx45(
5980
6774
  SearchableSelect,
5981
6775
  {
5982
6776
  value,
@@ -5989,7 +6783,7 @@ var SelectUser = ({
5989
6783
  },
5990
6784
  "user" + value
5991
6785
  ),
5992
- loading && /* @__PURE__ */ jsx38("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des utilisateurs..." })
6786
+ loading && /* @__PURE__ */ jsx45("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des utilisateurs..." })
5993
6787
  ] });
5994
6788
  };
5995
6789
  var SelectDepartment = ({
@@ -5997,13 +6791,13 @@ var SelectDepartment = ({
5997
6791
  onSelect
5998
6792
  }) => {
5999
6793
  const { token, activeBusinessEntity } = useSession();
6000
- const [departments, setDepartments] = useState27(() => {
6794
+ const [departments, setDepartments] = useState31(() => {
6001
6795
  const cacheKey = `departments_cache_${activeBusinessEntity?.id || "default"}`;
6002
6796
  const cached = sessionStorage.getItem(cacheKey);
6003
6797
  return cached ? JSON.parse(cached) : [];
6004
6798
  });
6005
- const [loading, setLoading] = useState27(false);
6006
- useEffect17(() => {
6799
+ const [loading, setLoading] = useState31(false);
6800
+ useEffect19(() => {
6007
6801
  const cacheKey = `departments_cache_${activeBusinessEntity?.id || "default"}`;
6008
6802
  const cached = sessionStorage.getItem(cacheKey);
6009
6803
  if (!cached) {
@@ -6039,9 +6833,9 @@ var SelectDepartment = ({
6039
6833
  label: dept.name
6040
6834
  }));
6041
6835
  };
6042
- return /* @__PURE__ */ jsxs28("div", { children: [
6043
- /* @__PURE__ */ jsx38("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx38("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "S\xE9lectionner un d\xE9partement" }) }),
6044
- /* @__PURE__ */ jsx38(
6836
+ return /* @__PURE__ */ jsxs33("div", { children: [
6837
+ /* @__PURE__ */ jsx45("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx45("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "S\xE9lectionner un d\xE9partement" }) }),
6838
+ /* @__PURE__ */ jsx45(
6045
6839
  SearchableSelect,
6046
6840
  {
6047
6841
  value,
@@ -6054,7 +6848,7 @@ var SelectDepartment = ({
6054
6848
  },
6055
6849
  "dept" + value
6056
6850
  ),
6057
- loading && /* @__PURE__ */ jsx38("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des d\xE9partements..." })
6851
+ loading && /* @__PURE__ */ jsx45("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des d\xE9partements..." })
6058
6852
  ] });
6059
6853
  };
6060
6854
  var SelectCostCenter = ({
@@ -6062,13 +6856,13 @@ var SelectCostCenter = ({
6062
6856
  onSelect
6063
6857
  }) => {
6064
6858
  const { token, activeBusinessEntity } = useSession();
6065
- const [costCenters, setCostCenters] = useState27(() => {
6859
+ const [costCenters, setCostCenters] = useState31(() => {
6066
6860
  const cacheKey = `cost_centers_cache_${activeBusinessEntity?.id || "default"}`;
6067
6861
  const cached = sessionStorage.getItem(cacheKey);
6068
6862
  return cached ? JSON.parse(cached) : [];
6069
6863
  });
6070
- const [loading, setLoading] = useState27(false);
6071
- useEffect17(() => {
6864
+ const [loading, setLoading] = useState31(false);
6865
+ useEffect19(() => {
6072
6866
  const cacheKey = `cost_centers_cache_${activeBusinessEntity?.id || "default"}`;
6073
6867
  const cached = sessionStorage.getItem(cacheKey);
6074
6868
  if (!cached) {
@@ -6102,18 +6896,18 @@ var SelectCostCenter = ({
6102
6896
  return costCenters.map((center) => ({
6103
6897
  value: center.id,
6104
6898
  label: `${center.code ? `[${center.code}] ` : ""}${center.name}`,
6105
- content: /* @__PURE__ */ jsx38("div", { className: "flex items-center space-x-3", children: /* @__PURE__ */ jsxs28("div", { className: "flex-1", children: [
6106
- /* @__PURE__ */ jsx38("div", { className: "font-medium text-gray-900", children: center.name }),
6107
- center.code && /* @__PURE__ */ jsxs28("div", { className: "text-sm text-gray-500", children: [
6899
+ content: /* @__PURE__ */ jsx45("div", { className: "flex items-center space-x-3", children: /* @__PURE__ */ jsxs33("div", { className: "flex-1", children: [
6900
+ /* @__PURE__ */ jsx45("div", { className: "font-medium text-gray-900", children: center.name }),
6901
+ center.code && /* @__PURE__ */ jsxs33("div", { className: "text-sm text-gray-500", children: [
6108
6902
  "Code: ",
6109
6903
  center.code
6110
6904
  ] })
6111
6905
  ] }) })
6112
6906
  }));
6113
6907
  };
6114
- return /* @__PURE__ */ jsxs28("div", { children: [
6115
- /* @__PURE__ */ jsx38("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx38("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "S\xE9lectionner un centre de co\xFBt" }) }),
6116
- /* @__PURE__ */ jsx38(
6908
+ return /* @__PURE__ */ jsxs33("div", { children: [
6909
+ /* @__PURE__ */ jsx45("div", { className: "flex justify-between ", children: /* @__PURE__ */ jsx45("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "S\xE9lectionner un centre de co\xFBt" }) }),
6910
+ /* @__PURE__ */ jsx45(
6117
6911
  SearchableSelect,
6118
6912
  {
6119
6913
  value,
@@ -6126,12 +6920,12 @@ var SelectCostCenter = ({
6126
6920
  },
6127
6921
  "cost" + value
6128
6922
  ),
6129
- loading && /* @__PURE__ */ jsx38("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des centres de co\xFBt..." })
6923
+ loading && /* @__PURE__ */ jsx45("p", { className: "text-sm text-gray-500 mt-2", children: "Chargement des centres de co\xFBt..." })
6130
6924
  ] });
6131
6925
  };
6132
6926
 
6133
6927
  // src/components/common/Choices.tsx
6134
- import { jsx as jsx39 } from "react/jsx-runtime";
6928
+ import { jsx as jsx46 } from "react/jsx-runtime";
6135
6929
  var CHOICES = {
6136
6930
  INVOICE_TYPES: [
6137
6931
  { value: "sale", label: { fr: "Vente", en: "Sale", default: "Sale" } },
@@ -6389,7 +7183,7 @@ var InvoiceTypeSelector = ({
6389
7183
  value: item.value,
6390
7184
  label: item.label[language]
6391
7185
  }));
6392
- return /* @__PURE__ */ jsx39(
7186
+ return /* @__PURE__ */ jsx46(
6393
7187
  SearchableSelect,
6394
7188
  {
6395
7189
  value,
@@ -6412,7 +7206,7 @@ var PaymentMethodSelector = ({
6412
7206
  value: item.value,
6413
7207
  label: item.label[language]
6414
7208
  }));
6415
- return /* @__PURE__ */ jsx39(
7209
+ return /* @__PURE__ */ jsx46(
6416
7210
  SearchableSelect,
6417
7211
  {
6418
7212
  value,
@@ -6435,7 +7229,7 @@ var TemplateFNESelector = ({
6435
7229
  value: item.value,
6436
7230
  label: item.label[language]
6437
7231
  }));
6438
- return /* @__PURE__ */ jsx39(
7232
+ return /* @__PURE__ */ jsx46(
6439
7233
  SearchableSelect,
6440
7234
  {
6441
7235
  value,
@@ -6458,7 +7252,7 @@ var ForeignCurrencySelector = ({
6458
7252
  value: item.value,
6459
7253
  label: item.label[language]
6460
7254
  }));
6461
- return /* @__PURE__ */ jsx39(
7255
+ return /* @__PURE__ */ jsx46(
6462
7256
  SearchableSelect,
6463
7257
  {
6464
7258
  value,
@@ -6482,7 +7276,7 @@ var TaxSelector = ({
6482
7276
  value: item.value,
6483
7277
  label: item.label[language]
6484
7278
  }));
6485
- return /* @__PURE__ */ jsx39(
7279
+ return /* @__PURE__ */ jsx46(
6486
7280
  SearchableSelect,
6487
7281
  {
6488
7282
  value,
@@ -6510,7 +7304,7 @@ var LegalFormSelector = ({
6510
7304
  value: item.value,
6511
7305
  label: item.label[language] ?? item.label.default
6512
7306
  }));
6513
- return /* @__PURE__ */ jsx39(
7307
+ return /* @__PURE__ */ jsx46(
6514
7308
  SearchableSelect,
6515
7309
  {
6516
7310
  value,
@@ -6533,7 +7327,7 @@ var CountrySelector = ({
6533
7327
  value: item.value,
6534
7328
  label: item.label[language]
6535
7329
  }));
6536
- return /* @__PURE__ */ jsx39(
7330
+ return /* @__PURE__ */ jsx46(
6537
7331
  SearchableSelect,
6538
7332
  {
6539
7333
  value,