@ews-admin/global-design-system 1.1.17 → 1.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/components/SearchAutocomplete/SearchAutocomplete.d.ts +1 -1
  2. package/dist/components/SearchAutocomplete/SearchAutocomplete.d.ts.map +1 -1
  3. package/dist/index.d.ts +5 -1
  4. package/dist/index.esm.js +15 -33
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/index.js +15 -33
  7. package/dist/index.js.map +1 -1
  8. package/dist/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.d.ts +4 -0
  9. package/dist/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.d.ts.map +1 -1
  10. package/package.json +1 -1
  11. package/src/components/SearchAutocomplete/SearchAutocomplete.tsx +2 -4
  12. package/src/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.tsx +46 -52
  13. package/dist/assets/doctor.png +0 -0
  14. package/dist/assets/favicon.ico +0 -0
  15. package/dist/assets/logo.png +0 -0
  16. package/dist/assets/logoAssets.d.ts +0 -11
  17. package/dist/assets/logoAssets.d.ts.map +0 -1
  18. package/dist/assets/logoWhite.png +0 -0
  19. package/dist/assets/patient.png +0 -0
  20. package/dist/components/DoctorForm/DoctorForm.d.ts +0 -11
  21. package/dist/components/DoctorForm/DoctorForm.d.ts.map +0 -1
  22. package/dist/components/DoctorForm/index.d.ts +0 -3
  23. package/dist/components/DoctorForm/index.d.ts.map +0 -1
  24. package/dist/components/Logo/logoAssets.d.ts +0 -1
  25. package/dist/components/Logo/logoAssets.d.ts.map +0 -1
  26. package/dist/icons/ArrowRightIcon.d.ts +0 -4
  27. package/dist/icons/ArrowRightIcon.d.ts.map +0 -1
  28. package/dist/icons/CheckIcon.d.ts +0 -4
  29. package/dist/icons/CheckIcon.d.ts.map +0 -1
  30. package/dist/icons/EyeIcon.d.ts +0 -4
  31. package/dist/icons/EyeIcon.d.ts.map +0 -1
  32. package/dist/icons/EyeOffIcon.d.ts +0 -4
  33. package/dist/icons/EyeOffIcon.d.ts.map +0 -1
  34. package/dist/icons/SearchIcon.d.ts +0 -4
  35. package/dist/icons/SearchIcon.d.ts.map +0 -1
  36. package/dist/public/doctor.png +0 -0
  37. package/dist/public/favicon.ico +0 -0
  38. package/dist/public/image/doctor.png +0 -0
  39. package/dist/public/image/logo.png +0 -0
  40. package/dist/public/image/logoWhite.png +0 -0
  41. package/dist/public/image/patient.png +0 -0
  42. package/dist/public/logo.png +0 -0
  43. package/dist/public/logoWhite.png +0 -0
  44. package/dist/public/patient.png +0 -0
  45. package/dist/styles/theme-variables.css +0 -62
  46. package/dist/types/doctor.d.ts +0 -144
  47. package/dist/types/doctor.d.ts.map +0 -1
@@ -8,11 +8,15 @@ export interface Specialty {
8
8
  export interface SpecialtySearchAutocompleteProps {
9
9
  selectedSpecialties: Specialty[];
10
10
  onSpecialtiesChange: (specialties: Specialty[]) => void;
11
+ specialties: Specialty[];
11
12
  placeholder?: string;
12
13
  className?: string;
13
14
  disabled?: boolean;
14
15
  maxSelections?: number;
15
16
  showSelectedCount?: boolean;
17
+ title?: string;
18
+ label?: string;
19
+ getSelectedCountText?: (count: number) => React.ReactNode;
16
20
  }
17
21
  export declare const SpecialtySearchAutocomplete: React.FC<SpecialtySearchAutocompleteProps>;
18
22
  //# sourceMappingURL=SpecialtySearchAutocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpecialtySearchAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAIhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,mBAAmB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAChD,gCAAgC,CAmLjC,CAAC"}
1
+ {"version":3,"file":"SpecialtySearchAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAIhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,mBAAmB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC3D;AAED,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAChD,gCAAgC,CAyKjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ews-admin/global-design-system",
3
- "version": "1.1.17",
3
+ "version": "1.1.19",
4
4
  "description": "EWS Global Design System - Reusable components for EWS applications",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -10,7 +10,7 @@ export interface SearchableEntity {
10
10
  }
11
11
 
12
12
  interface SearchAutocompleteProps<T extends SearchableEntity> {
13
- onSelect: (id: string) => void;
13
+ onSelect: (id: string, entity?: T) => void;
14
14
  selectedId: string;
15
15
  searchFunction: (keyword: string) => Promise<T[]>;
16
16
  getEntityById?: (id: string) => Promise<T | undefined>;
@@ -138,7 +138,6 @@ export function SearchAutocomplete<T extends SearchableEntity>({
138
138
 
139
139
  const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {
140
140
  const value = e.target.value;
141
-
142
141
  // Mark this as a user-initiated search
143
142
  isUserSearch.current = true;
144
143
 
@@ -157,10 +156,9 @@ export function SearchAutocomplete<T extends SearchableEntity>({
157
156
  isUserSearch.current = false;
158
157
 
159
158
  console.log(`Selected entity with ID: ${entity.id}`);
160
-
161
159
  setSelectedEntity(entity);
162
160
  setSearchTerm(getDisplayValue(entity));
163
- onSelect(entity.id);
161
+ onSelect(entity.id, entity);
164
162
  setShowDropdown(false);
165
163
  };
166
164
 
@@ -13,11 +13,15 @@ export interface Specialty {
13
13
  export interface SpecialtySearchAutocompleteProps {
14
14
  selectedSpecialties: Specialty[];
15
15
  onSpecialtiesChange: (specialties: Specialty[]) => void;
16
+ specialties: Specialty[];
16
17
  placeholder?: string;
17
18
  className?: string;
18
19
  disabled?: boolean;
19
20
  maxSelections?: number;
20
21
  showSelectedCount?: boolean;
22
+ title?: string;
23
+ label?: string;
24
+ getSelectedCountText?: (count: number) => React.ReactNode;
21
25
  }
22
26
 
23
27
  export const SpecialtySearchAutocomplete: React.FC<
@@ -25,56 +29,43 @@ export const SpecialtySearchAutocomplete: React.FC<
25
29
  > = ({
26
30
  selectedSpecialties = [],
27
31
  onSpecialtiesChange,
32
+ specialties: availableSpecialties,
28
33
  placeholder = "Search and select medical specialties...",
29
34
  className = "",
30
35
  disabled = false,
31
36
  maxSelections,
32
37
  showSelectedCount = true,
38
+ title = "Medical Specialties",
39
+ label = "Select Specialties",
40
+ getSelectedCountText,
33
41
  }) => {
34
- const [specialties, setSpecialties] = useState<Specialty[]>([]);
42
+ const [filteredSpecialties, setFilteredSpecialties] = useState<Specialty[]>(
43
+ []
44
+ );
35
45
  const [isLoading, setIsLoading] = useState(false);
36
46
 
37
- // Mock API call - replace with actual API
38
- const fetchSpecialties = useCallback(async (searchTerm: string) => {
39
- setIsLoading(true);
40
- try {
41
- // Simulate API delay
42
- await new Promise((resolve) => setTimeout(resolve, 300));
43
-
44
- // Mock data - replace with actual API call
45
- const mockSpecialties: Specialty[] = [
46
- { id: "1", code: "CARD", label: "Cardiology" },
47
- { id: "2", code: "DERM", label: "Dermatology" },
48
- { id: "3", code: "ENDO", label: "Endocrinology" },
49
- { id: "4", code: "GAST", label: "Gastroenterology" },
50
- { id: "5", code: "HEMA", label: "Hematology" },
51
- { id: "6", code: "NEUR", label: "Neurology" },
52
- { id: "7", code: "ONCO", label: "Oncology" },
53
- { id: "8", code: "ORTH", label: "Orthopedics" },
54
- { id: "9", code: "PED", label: "Pediatrics" },
55
- { id: "10", code: "PSYC", label: "Psychiatry" },
56
- { id: "11", code: "RAD", label: "Radiology" },
57
- { id: "12", code: "SURG", label: "Surgery" },
58
- { id: "13", code: "UROL", label: "Urology" },
59
- { id: "14", code: "GYN", label: "Gynecology" },
60
- { id: "15", code: "OPHT", label: "Ophthalmology" },
61
- ];
62
-
63
- // Filter based on search term
64
- const filtered = mockSpecialties.filter(
65
- (specialty) =>
66
- specialty.label.toLowerCase().includes(searchTerm.toLowerCase()) ||
67
- specialty.code.toLowerCase().includes(searchTerm.toLowerCase())
68
- );
47
+ // Filter specialties based on search term
48
+ const fetchSpecialties = useCallback(
49
+ async (searchTerm: string) => {
50
+ setIsLoading(true);
51
+ try {
52
+ // Filter based on search term
53
+ const filtered = availableSpecialties.filter(
54
+ (specialty) =>
55
+ specialty.label.toLowerCase().includes(searchTerm.toLowerCase()) ||
56
+ specialty.code.toLowerCase().includes(searchTerm.toLowerCase())
57
+ );
69
58
 
70
- setSpecialties(filtered);
71
- } catch (error) {
72
- console.error("Error fetching specialties:", error);
73
- setSpecialties([]);
74
- } finally {
75
- setIsLoading(false);
76
- }
77
- }, []);
59
+ setFilteredSpecialties(filtered);
60
+ } catch (error) {
61
+ console.error("Error filtering specialties:", error);
62
+ setFilteredSpecialties([]);
63
+ } finally {
64
+ setIsLoading(false);
65
+ }
66
+ },
67
+ [availableSpecialties]
68
+ );
78
69
 
79
70
  // Initial load
80
71
  useEffect(() => {
@@ -94,9 +85,9 @@ export const SpecialtySearchAutocomplete: React.FC<
94
85
 
95
86
  const getEntityById = useCallback(
96
87
  async (id: string): Promise<Specialty | undefined> => {
97
- return specialties.find((specialty) => specialty.id === id);
88
+ return availableSpecialties.find((specialty) => specialty.id === id);
98
89
  },
99
- [specialties]
90
+ [availableSpecialties]
100
91
  );
101
92
 
102
93
  return (
@@ -107,20 +98,20 @@ export const SpecialtySearchAutocomplete: React.FC<
107
98
  <Stethoscope className="w-4 h-4 text-secondary-600" />
108
99
  </div>
109
100
  <h3 className="text-lg font-semibold text-gray-900">
110
- Medical Specialties
101
+ {title || "Medical Specialties"}
111
102
  </h3>
112
103
  </div>
113
104
 
114
105
  {/* Label */}
115
106
  <div>
116
- <label className="block text-sm font-medium text-gray-700 mb-2">
117
- Select Specialties
107
+ <label className="block mb-2 text-sm font-medium text-gray-700">
108
+ {label || "Select Specialties"}
118
109
  </label>
119
110
  </div>
120
111
 
121
112
  {/* MultiSearchAutocomplete component */}
122
113
  <MultiSearchAutocomplete<Specialty>
123
- items={specialties}
114
+ items={filteredSpecialties}
124
115
  selectedItems={selectedSpecialties}
125
116
  onSelectionChange={handleSelectionChange}
126
117
  onSearch={fetchSpecialties}
@@ -134,7 +125,7 @@ export const SpecialtySearchAutocomplete: React.FC<
134
125
  keepOpenOnSelect={true}
135
126
  className="w-full"
136
127
  renderSelectedItem={(specialty) => (
137
- <span className="inline-flex items-center px-3 py-1 text-sm font-medium rounded-full bg-ews-primary/10 text-ews-primary border border-ews-primary/20">
128
+ <span className="inline-flex items-center px-3 py-1 text-sm font-medium rounded-full border bg-ews-primary/10 text-ews-primary border-ews-primary/20">
138
129
  {specialty.label}
139
130
  </span>
140
131
  )}
@@ -142,7 +133,7 @@ export const SpecialtySearchAutocomplete: React.FC<
142
133
  <div className="flex items-center space-x-3">
143
134
  <div
144
135
  className={cn(
145
- "w-5 h-5 border-2 rounded flex items-center justify-center",
136
+ "flex justify-center items-center w-5 h-5 rounded border-2",
146
137
  isSelected
147
138
  ? "bg-ews-primary border-ews-primary"
148
139
  : "border-ews-gray-300"
@@ -186,10 +177,13 @@ export const SpecialtySearchAutocomplete: React.FC<
186
177
 
187
178
  {/* Selected count display */}
188
179
  {showSelectedCount && selectedSpecialties.length > 0 && (
189
- <div className="flex items-center justify-between text-sm text-gray-600">
180
+ <div className="flex justify-between items-center text-sm text-gray-600">
190
181
  <span>
191
- {selectedSpecialties.length} specialty
192
- {selectedSpecialties.length !== 1 ? "ies" : ""} selected
182
+ {getSelectedCountText
183
+ ? getSelectedCountText(selectedSpecialties.length)
184
+ : `${selectedSpecialties.length} specialty${
185
+ selectedSpecialties.length !== 1 ? "ies" : ""
186
+ } selected`}
193
187
  </span>
194
188
  {maxSelections && (
195
189
  <span className="text-gray-400">
Binary file
Binary file
Binary file
@@ -1,11 +0,0 @@
1
- export declare const LOGO_ASSETS: {
2
- readonly normal: "/image/logo.png";
3
- readonly white: "/image/logoWhite.png";
4
- readonly favicon: "/favicon.ico";
5
- };
6
- export declare const FALLBACK_LOGO_ASSETS: {
7
- readonly normal: "https://via.placeholder.com/200x60/21596C/FFFFFF?text=MEDECINE+360";
8
- readonly white: "https://via.placeholder.com/200x60/FFFFFF/21596C?text=MEDECINE+360";
9
- readonly favicon: "https://via.placeholder.com/32x32/21596C/FFFFFF?text=M360";
10
- };
11
- //# sourceMappingURL=logoAssets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logoAssets.d.ts","sourceRoot":"","sources":["../../src/assets/logoAssets.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAGX,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC"}
Binary file
Binary file
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import { DoctorFormData } from "../../types/doctor";
3
- export interface DoctorFormProps {
4
- onSubmit: (data: DoctorFormData) => void;
5
- initialData?: Partial<DoctorFormData>;
6
- isLoading?: boolean;
7
- className?: string;
8
- }
9
- declare const DoctorForm: React.FC<DoctorFormProps>;
10
- export { DoctorForm };
11
- //# sourceMappingURL=DoctorForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DoctorForm.d.ts","sourceRoot":"","sources":["../../../src/components/DoctorForm/DoctorForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EACL,cAAc,EASf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6qBzC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- export { DoctorForm } from "./DoctorForm";
2
- export type { DoctorFormProps } from "./DoctorForm";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DoctorForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=logoAssets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logoAssets.d.ts","sourceRoot":"","sources":["../../../src/components/Logo/logoAssets.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import { SimpleIconProps } from "./Icon";
3
- export declare const ArrowRightIcon: React.FC<SimpleIconProps>;
4
- //# sourceMappingURL=ArrowRightIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrowRightIcon.d.ts","sourceRoot":"","sources":["../../src/icons/ArrowRightIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqCpD,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import { SimpleIconProps } from "./Icon";
3
- export declare const CheckIcon: React.FC<SimpleIconProps>;
4
- //# sourceMappingURL=CheckIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckIcon.d.ts","sourceRoot":"","sources":["../../src/icons/CheckIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoC/C,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import { SimpleIconProps } from "./Icon";
3
- export declare const EyeIcon: React.FC<SimpleIconProps>;
4
- //# sourceMappingURL=EyeIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EyeIcon.d.ts","sourceRoot":"","sources":["../../src/icons/EyeIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqC7C,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import { SimpleIconProps } from "./Icon";
3
- export declare const EyeOffIcon: React.FC<SimpleIconProps>;
4
- //# sourceMappingURL=EyeOffIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EyeOffIcon.d.ts","sourceRoot":"","sources":["../../src/icons/EyeOffIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuChD,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from "react";
2
- import { SimpleIconProps } from "./Icon";
3
- export declare const SearchIcon: React.FC<SimpleIconProps>;
4
- //# sourceMappingURL=SearchIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchIcon.d.ts","sourceRoot":"","sources":["../../src/icons/SearchIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqChD,CAAC"}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,62 +0,0 @@
1
- /* EWS Design System - Theme CSS Variables */
2
- /* This file should be imported in consuming applications */
3
-
4
- :root {
5
- /* PROMED Theme (Default) - Professional theme for doctors/managers */
6
- --ews-primary: #21596c;
7
- --ews-primary-hover: #1a4756;
8
- --ews-primary-light: #c0d0d4;
9
- --ews-secondary: #3ba1a1;
10
- --ews-secondary-hover: #308181;
11
- --ews-success: #059669;
12
- --ews-success-hover: #047857;
13
- --ews-warning: #d97706;
14
- --ews-warning-hover: #b45309;
15
- --ews-error: #dc2626;
16
- --ews-error-hover: #b91c1c;
17
- }
18
-
19
- /* Default theme when no data-theme is set */
20
- html:not([data-theme]) {
21
- --ews-primary: #21596c;
22
- --ews-primary-hover: #1a4756;
23
- --ews-primary-light: #c0d0d4;
24
- --ews-secondary: #3ba1a1;
25
- --ews-secondary-hover: #308181;
26
- --ews-success: #059669;
27
- --ews-success-hover: #047857;
28
- --ews-warning: #d97706;
29
- --ews-warning-hover: #b45309;
30
- --ews-error: #dc2626;
31
- --ews-error-hover: #b91c1c;
32
- }
33
-
34
- /* MED Theme - Patient-friendly theme */
35
- [data-theme="MED"] {
36
- --ews-primary: #3ba1a1;
37
- --ews-primary-hover: #308181;
38
- --ews-primary-light: #a8d5d5;
39
- --ews-secondary: #6b73ff;
40
- --ews-secondary-hover: #5a61e6;
41
- --ews-success: #059669;
42
- --ews-success-hover: #047857;
43
- --ews-warning: #d97706;
44
- --ews-warning-hover: #b45309;
45
- --ews-error: #dc2626;
46
- --ews-error-hover: #b91c1c;
47
- }
48
-
49
- /* PROMED Theme - Professional theme */
50
- [data-theme="PROMED"] {
51
- --ews-primary: #21596c;
52
- --ews-primary-hover: #1a4756;
53
- --ews-primary-light: #c0d0d4;
54
- --ews-secondary: #3ba1a1;
55
- --ews-secondary-hover: #308181;
56
- --ews-success: #059669;
57
- --ews-success-hover: #047857;
58
- --ews-warning: #d97706;
59
- --ews-warning-hover: #b45309;
60
- --ews-error: #dc2626;
61
- --ews-error-hover: #b91c1c;
62
- }
@@ -1,144 +0,0 @@
1
- export interface Coordinates {
2
- lng: number;
3
- lat: number;
4
- }
5
- export interface Location {
6
- country: string;
7
- address: string;
8
- city: string;
9
- state: string;
10
- zip: string;
11
- isPrimary: boolean;
12
- residency: "HOME" | "OFFICE" | "CLINIC" | "HOSPITAL";
13
- coordinates: Coordinates;
14
- }
15
- export interface Specialty {
16
- code: string;
17
- label: string;
18
- }
19
- export interface ProvidedService {
20
- code: "CLINIC" | "ONLINE" | "HOME_VISIT" | "EMERGENCY";
21
- price: number;
22
- }
23
- export interface CreateDoctorPayload {
24
- firstName: string;
25
- lastName: string;
26
- refNumber: string;
27
- civility: "MAN" | "WOMAN" | "OTHER";
28
- email: string;
29
- password: string;
30
- roleName: "DOCTOR";
31
- photoUrl?: string;
32
- phoneNumber: string;
33
- paymentPhoneNumber?: string;
34
- healthcareFacilityIds: number[];
35
- preferredNotificationMethods: ("EMAIL" | "SMS" | "PUSH")[];
36
- dateOfBirth: string;
37
- careerStartYear: string;
38
- hospitalName?: string;
39
- diplomas?: string;
40
- activated: boolean;
41
- providedServices: ProvidedService[];
42
- specialties: Specialty[];
43
- locations: Location[];
44
- }
45
- export interface DoctorFormData {
46
- firstName: string;
47
- lastName: string;
48
- refNumber: string;
49
- civility: "MAN" | "WOMAN" | "OTHER";
50
- email: string;
51
- password: string;
52
- confirmPassword: string;
53
- phoneNumber: string;
54
- paymentPhoneNumber: string;
55
- dateOfBirth: string;
56
- photoUrl: string;
57
- careerStartYear: string;
58
- hospitalName: string;
59
- diplomas: string;
60
- activated: boolean;
61
- healthcareFacilityIds: number[];
62
- preferredNotificationMethods: ("EMAIL" | "SMS" | "PUSH")[];
63
- providedServices: ProvidedService[];
64
- specialties: Specialty[];
65
- locations: Location[];
66
- }
67
- export declare const CIVILITY_OPTIONS: readonly [{
68
- readonly value: "MAN";
69
- readonly label: "Mr.";
70
- }, {
71
- readonly value: "WOMAN";
72
- readonly label: "Ms.";
73
- }, {
74
- readonly value: "OTHER";
75
- readonly label: "Other";
76
- }];
77
- export declare const NOTIFICATION_METHOD_OPTIONS: readonly [{
78
- readonly value: "EMAIL";
79
- readonly label: "Email";
80
- }, {
81
- readonly value: "SMS";
82
- readonly label: "SMS";
83
- }, {
84
- readonly value: "PUSH";
85
- readonly label: "Push Notification";
86
- }];
87
- export declare const RESIDENCY_OPTIONS: readonly [{
88
- readonly value: "HOME";
89
- readonly label: "Home";
90
- }, {
91
- readonly value: "OFFICE";
92
- readonly label: "Office";
93
- }, {
94
- readonly value: "CLINIC";
95
- readonly label: "Clinic";
96
- }, {
97
- readonly value: "HOSPITAL";
98
- readonly label: "Hospital";
99
- }];
100
- export declare const SERVICE_TYPE_OPTIONS: readonly [{
101
- readonly value: "CLINIC";
102
- readonly label: "Clinic Visit";
103
- }, {
104
- readonly value: "ONLINE";
105
- readonly label: "Online Consultation";
106
- }, {
107
- readonly value: "HOME_VISIT";
108
- readonly label: "Home Visit";
109
- }, {
110
- readonly value: "EMERGENCY";
111
- readonly label: "Emergency";
112
- }];
113
- export declare const SPECIALTY_OPTIONS: readonly [{
114
- readonly value: "STOMATOLOGY";
115
- readonly label: "Stomatology";
116
- }, {
117
- readonly value: "NEPHROLOGY";
118
- readonly label: "Nephrology";
119
- }, {
120
- readonly value: "CARDIOLOGY";
121
- readonly label: "Cardiology";
122
- }, {
123
- readonly value: "DERMATOLOGY";
124
- readonly label: "Dermatology";
125
- }, {
126
- readonly value: "NEUROLOGY";
127
- readonly label: "Neurology";
128
- }, {
129
- readonly value: "PEDIATRICS";
130
- readonly label: "Pediatrics";
131
- }, {
132
- readonly value: "GYNECOLOGY";
133
- readonly label: "Gynecology";
134
- }, {
135
- readonly value: "ORTHOPEDICS";
136
- readonly label: "Orthopedics";
137
- }, {
138
- readonly value: "OPHTHALMOLOGY";
139
- readonly label: "Ophthalmology";
140
- }, {
141
- readonly value: "PSYCHIATRY";
142
- readonly label: "Psychiatry";
143
- }];
144
- //# sourceMappingURL=doctor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/types/doctor.ts"],"names":[],"mappings":"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"}