@htmlbricks/hb-contact-card 0.61.45

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/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@htmlbricks/hb-contact-card",
3
+ "version": "0.61.45",
4
+ "contributors": [],
5
+ "description": "A comprehensive contact card component that displays personal, contact, company, and social media information in a clean, Bootstrap-styled card format. Uses a single data object with structured arrays for phone numbers, addresses, and social media profiles. Features include avatar support with placeholder, clickable contact information, social media links, collapsible sections, and customizable action buttons with grouping, badges, and links support.",
6
+ "licenses": [
7
+ {
8
+ "type": "MIT",
9
+ "path": "LICENSE.md",
10
+ "cost": 0,
11
+ "currency": "EUR"
12
+ }
13
+ ],
14
+ "main": "main.iife.js",
15
+ "dependencies": {},
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "private": false
20
+ }
@@ -0,0 +1,245 @@
1
+ {
2
+ "$ref": "#/definitions/Component",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "definitions": {
5
+ "Address": {
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "city": {
9
+ "type": "string"
10
+ },
11
+ "country": {
12
+ "type": "string"
13
+ },
14
+ "label": {
15
+ "type": "string"
16
+ },
17
+ "postalCode": {
18
+ "type": "string"
19
+ },
20
+ "state": {
21
+ "type": "string"
22
+ },
23
+ "street": {
24
+ "type": "string"
25
+ },
26
+ "type": {
27
+ "enum": [
28
+ "home",
29
+ "work",
30
+ "billing",
31
+ "shipping",
32
+ "other"
33
+ ],
34
+ "type": "string"
35
+ }
36
+ },
37
+ "required": [
38
+ "type"
39
+ ],
40
+ "type": "object"
41
+ },
42
+ "Component": {
43
+ "additionalProperties": false,
44
+ "properties": {
45
+ "actions_list": {
46
+ "items": {
47
+ "$ref": "#/definitions/IDropDownMenuListItem"
48
+ },
49
+ "type": "array"
50
+ },
51
+ "data": {
52
+ "$ref": "#/definitions/ContactData"
53
+ },
54
+ "i18nlang": {
55
+ "type": "string"
56
+ },
57
+ "id": {
58
+ "type": "string"
59
+ },
60
+ "style": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "required": [
65
+ "data"
66
+ ],
67
+ "type": "object"
68
+ },
69
+ "ContactData": {
70
+ "additionalProperties": false,
71
+ "properties": {
72
+ "addresses": {
73
+ "items": {
74
+ "$ref": "#/definitions/Address"
75
+ },
76
+ "type": "array"
77
+ },
78
+ "avatar": {
79
+ "type": "string"
80
+ },
81
+ "clickable": {
82
+ "type": "boolean"
83
+ },
84
+ "company": {
85
+ "type": "string"
86
+ },
87
+ "department": {
88
+ "type": "string"
89
+ },
90
+ "emails": {
91
+ "items": {
92
+ "$ref": "#/definitions/EmailAddress"
93
+ },
94
+ "type": "array"
95
+ },
96
+ "firstName": {
97
+ "type": "string"
98
+ },
99
+ "fullName": {
100
+ "type": "string"
101
+ },
102
+ "jobTitle": {
103
+ "type": "string"
104
+ },
105
+ "lastName": {
106
+ "type": "string"
107
+ },
108
+ "latitude": {
109
+ "type": "number"
110
+ },
111
+ "longitude": {
112
+ "type": "number"
113
+ },
114
+ "notes": {
115
+ "type": "string"
116
+ },
117
+ "phones": {
118
+ "items": {
119
+ "$ref": "#/definitions/PhoneNumber"
120
+ },
121
+ "type": "array"
122
+ },
123
+ "socialMedia": {
124
+ "items": {
125
+ "$ref": "#/definitions/SocialMedia"
126
+ },
127
+ "type": "array"
128
+ },
129
+ "title": {
130
+ "type": "string"
131
+ },
132
+ "website": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "type": "object"
137
+ },
138
+ "EmailAddress": {
139
+ "additionalProperties": false,
140
+ "properties": {
141
+ "address": {
142
+ "type": "string"
143
+ },
144
+ "label": {
145
+ "type": "string"
146
+ },
147
+ "type": {
148
+ "enum": [
149
+ "home",
150
+ "work",
151
+ "personal",
152
+ "other"
153
+ ],
154
+ "type": "string"
155
+ }
156
+ },
157
+ "required": [
158
+ "address",
159
+ "type"
160
+ ],
161
+ "type": "object"
162
+ },
163
+ "IDropDownMenuListItem": {
164
+ "additionalProperties": false,
165
+ "properties": {
166
+ "badge": {
167
+ "type": "number"
168
+ },
169
+ "group": {
170
+ "type": "string"
171
+ },
172
+ "key": {
173
+ "type": "string"
174
+ },
175
+ "label": {
176
+ "type": "string"
177
+ },
178
+ "linkHref": {
179
+ "type": "string"
180
+ }
181
+ },
182
+ "required": [
183
+ "key",
184
+ "label"
185
+ ],
186
+ "type": "object"
187
+ },
188
+ "PhoneNumber": {
189
+ "additionalProperties": false,
190
+ "properties": {
191
+ "label": {
192
+ "type": "string"
193
+ },
194
+ "number": {
195
+ "type": "string"
196
+ },
197
+ "type": {
198
+ "enum": [
199
+ "home",
200
+ "work",
201
+ "mobile",
202
+ "fax",
203
+ "other"
204
+ ],
205
+ "type": "string"
206
+ }
207
+ },
208
+ "required": [
209
+ "number",
210
+ "type"
211
+ ],
212
+ "type": "object"
213
+ },
214
+ "SocialMedia": {
215
+ "additionalProperties": false,
216
+ "properties": {
217
+ "platform": {
218
+ "enum": [
219
+ "linkedin",
220
+ "twitter",
221
+ "facebook",
222
+ "instagram",
223
+ "github",
224
+ "youtube",
225
+ "tiktok",
226
+ "other"
227
+ ],
228
+ "type": "string"
229
+ },
230
+ "url": {
231
+ "type": "string"
232
+ },
233
+ "username": {
234
+ "type": "string"
235
+ }
236
+ },
237
+ "required": [
238
+ "platform",
239
+ "url"
240
+ ],
241
+ "type": "object"
242
+ }
243
+ }
244
+ }
245
+
@@ -0,0 +1,82 @@
1
+ export type PhoneNumber = {
2
+ number: string;
3
+ type: "home" | "work" | "mobile" | "fax" | "other";
4
+ label?: string;
5
+ };
6
+
7
+ export type EmailAddress = {
8
+ address: string;
9
+ type: "home" | "work" | "personal" | "other";
10
+ label?: string;
11
+ };
12
+
13
+ export type Address = {
14
+ street?: string;
15
+ city?: string;
16
+ state?: string;
17
+ postalCode?: string;
18
+ country?: string;
19
+ type: "home" | "work" | "billing" | "shipping" | "other";
20
+ label?: string;
21
+ };
22
+
23
+ export type SocialMedia = {
24
+ platform: "linkedin" | "twitter" | "facebook" | "instagram" | "github" | "youtube" | "tiktok" | "other";
25
+ url: string;
26
+ username?: string;
27
+ };
28
+
29
+ export type ContactData = {
30
+ // Personal Information
31
+ firstName?: string;
32
+ lastName?: string;
33
+ fullName?: string;
34
+ title?: string;
35
+ // Contact Information
36
+ emails?: EmailAddress[];
37
+ phones?: PhoneNumber[];
38
+ website?: string;
39
+ // Address Information
40
+ addresses?: Address[];
41
+ // Company Information
42
+ company?: string;
43
+ department?: string;
44
+ jobTitle?: string;
45
+ // Additional Information
46
+ notes?: string;
47
+ avatar?: string;
48
+ // Location
49
+ latitude?: number;
50
+ longitude?: number;
51
+ // Social Media
52
+ socialMedia?: SocialMedia[];
53
+ // Actions
54
+
55
+ clickable?: boolean;
56
+ };
57
+ interface IDropDownMenuListItem {
58
+ key: string;
59
+ label: string;
60
+ badge?: number;
61
+ group?: string;
62
+ linkHref?: string;
63
+ }
64
+ export type Component = {
65
+ id?: string;
66
+ style?: string;
67
+ data: ContactData;
68
+ actions_list?: IDropDownMenuListItem[];
69
+ i18nlang?: string;
70
+
71
+ };
72
+
73
+ export type Events = {
74
+ contactClick: { id: string; contact: Component };
75
+ contactEdit: { id: string; contact: Component };
76
+ contactDelete: { id: string; contact: Component };
77
+ phoneClick: { phone: PhoneNumber };
78
+ emailClick: { email: EmailAddress };
79
+ websiteClick: { website: string };
80
+ socialClick: { social: SocialMedia };
81
+ addressClick: { address: Address };
82
+ };
@@ -0,0 +1,369 @@
1
+ {
2
+ "$ref": "#/definitions/Events",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "definitions": {
5
+ "Address": {
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "city": {
9
+ "type": "string"
10
+ },
11
+ "country": {
12
+ "type": "string"
13
+ },
14
+ "label": {
15
+ "type": "string"
16
+ },
17
+ "postalCode": {
18
+ "type": "string"
19
+ },
20
+ "state": {
21
+ "type": "string"
22
+ },
23
+ "street": {
24
+ "type": "string"
25
+ },
26
+ "type": {
27
+ "enum": [
28
+ "home",
29
+ "work",
30
+ "billing",
31
+ "shipping",
32
+ "other"
33
+ ],
34
+ "type": "string"
35
+ }
36
+ },
37
+ "required": [
38
+ "type"
39
+ ],
40
+ "type": "object"
41
+ },
42
+ "Component": {
43
+ "additionalProperties": false,
44
+ "properties": {
45
+ "actions_list": {
46
+ "items": {
47
+ "$ref": "#/definitions/IDropDownMenuListItem"
48
+ },
49
+ "type": "array"
50
+ },
51
+ "data": {
52
+ "$ref": "#/definitions/ContactData"
53
+ },
54
+ "i18nlang": {
55
+ "type": "string"
56
+ },
57
+ "id": {
58
+ "type": "string"
59
+ },
60
+ "style": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "required": [
65
+ "data"
66
+ ],
67
+ "type": "object"
68
+ },
69
+ "ContactData": {
70
+ "additionalProperties": false,
71
+ "properties": {
72
+ "addresses": {
73
+ "items": {
74
+ "$ref": "#/definitions/Address"
75
+ },
76
+ "type": "array"
77
+ },
78
+ "avatar": {
79
+ "type": "string"
80
+ },
81
+ "clickable": {
82
+ "type": "boolean"
83
+ },
84
+ "company": {
85
+ "type": "string"
86
+ },
87
+ "department": {
88
+ "type": "string"
89
+ },
90
+ "emails": {
91
+ "items": {
92
+ "$ref": "#/definitions/EmailAddress"
93
+ },
94
+ "type": "array"
95
+ },
96
+ "firstName": {
97
+ "type": "string"
98
+ },
99
+ "fullName": {
100
+ "type": "string"
101
+ },
102
+ "jobTitle": {
103
+ "type": "string"
104
+ },
105
+ "lastName": {
106
+ "type": "string"
107
+ },
108
+ "latitude": {
109
+ "type": "number"
110
+ },
111
+ "longitude": {
112
+ "type": "number"
113
+ },
114
+ "notes": {
115
+ "type": "string"
116
+ },
117
+ "phones": {
118
+ "items": {
119
+ "$ref": "#/definitions/PhoneNumber"
120
+ },
121
+ "type": "array"
122
+ },
123
+ "socialMedia": {
124
+ "items": {
125
+ "$ref": "#/definitions/SocialMedia"
126
+ },
127
+ "type": "array"
128
+ },
129
+ "title": {
130
+ "type": "string"
131
+ },
132
+ "website": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "type": "object"
137
+ },
138
+ "EmailAddress": {
139
+ "additionalProperties": false,
140
+ "properties": {
141
+ "address": {
142
+ "type": "string"
143
+ },
144
+ "label": {
145
+ "type": "string"
146
+ },
147
+ "type": {
148
+ "enum": [
149
+ "home",
150
+ "work",
151
+ "personal",
152
+ "other"
153
+ ],
154
+ "type": "string"
155
+ }
156
+ },
157
+ "required": [
158
+ "address",
159
+ "type"
160
+ ],
161
+ "type": "object"
162
+ },
163
+ "Events": {
164
+ "additionalProperties": false,
165
+ "properties": {
166
+ "addressClick": {
167
+ "additionalProperties": false,
168
+ "properties": {
169
+ "address": {
170
+ "$ref": "#/definitions/Address"
171
+ }
172
+ },
173
+ "required": [
174
+ "address"
175
+ ],
176
+ "type": "object"
177
+ },
178
+ "contactClick": {
179
+ "additionalProperties": false,
180
+ "properties": {
181
+ "contact": {
182
+ "$ref": "#/definitions/Component"
183
+ },
184
+ "id": {
185
+ "type": "string"
186
+ }
187
+ },
188
+ "required": [
189
+ "id",
190
+ "contact"
191
+ ],
192
+ "type": "object"
193
+ },
194
+ "contactDelete": {
195
+ "additionalProperties": false,
196
+ "properties": {
197
+ "contact": {
198
+ "$ref": "#/definitions/Component"
199
+ },
200
+ "id": {
201
+ "type": "string"
202
+ }
203
+ },
204
+ "required": [
205
+ "id",
206
+ "contact"
207
+ ],
208
+ "type": "object"
209
+ },
210
+ "contactEdit": {
211
+ "additionalProperties": false,
212
+ "properties": {
213
+ "contact": {
214
+ "$ref": "#/definitions/Component"
215
+ },
216
+ "id": {
217
+ "type": "string"
218
+ }
219
+ },
220
+ "required": [
221
+ "id",
222
+ "contact"
223
+ ],
224
+ "type": "object"
225
+ },
226
+ "emailClick": {
227
+ "additionalProperties": false,
228
+ "properties": {
229
+ "email": {
230
+ "$ref": "#/definitions/EmailAddress"
231
+ }
232
+ },
233
+ "required": [
234
+ "email"
235
+ ],
236
+ "type": "object"
237
+ },
238
+ "phoneClick": {
239
+ "additionalProperties": false,
240
+ "properties": {
241
+ "phone": {
242
+ "$ref": "#/definitions/PhoneNumber"
243
+ }
244
+ },
245
+ "required": [
246
+ "phone"
247
+ ],
248
+ "type": "object"
249
+ },
250
+ "socialClick": {
251
+ "additionalProperties": false,
252
+ "properties": {
253
+ "social": {
254
+ "$ref": "#/definitions/SocialMedia"
255
+ }
256
+ },
257
+ "required": [
258
+ "social"
259
+ ],
260
+ "type": "object"
261
+ },
262
+ "websiteClick": {
263
+ "additionalProperties": false,
264
+ "properties": {
265
+ "website": {
266
+ "type": "string"
267
+ }
268
+ },
269
+ "required": [
270
+ "website"
271
+ ],
272
+ "type": "object"
273
+ }
274
+ },
275
+ "required": [
276
+ "contactClick",
277
+ "contactEdit",
278
+ "contactDelete",
279
+ "phoneClick",
280
+ "emailClick",
281
+ "websiteClick",
282
+ "socialClick",
283
+ "addressClick"
284
+ ],
285
+ "type": "object"
286
+ },
287
+ "IDropDownMenuListItem": {
288
+ "additionalProperties": false,
289
+ "properties": {
290
+ "badge": {
291
+ "type": "number"
292
+ },
293
+ "group": {
294
+ "type": "string"
295
+ },
296
+ "key": {
297
+ "type": "string"
298
+ },
299
+ "label": {
300
+ "type": "string"
301
+ },
302
+ "linkHref": {
303
+ "type": "string"
304
+ }
305
+ },
306
+ "required": [
307
+ "key",
308
+ "label"
309
+ ],
310
+ "type": "object"
311
+ },
312
+ "PhoneNumber": {
313
+ "additionalProperties": false,
314
+ "properties": {
315
+ "label": {
316
+ "type": "string"
317
+ },
318
+ "number": {
319
+ "type": "string"
320
+ },
321
+ "type": {
322
+ "enum": [
323
+ "home",
324
+ "work",
325
+ "mobile",
326
+ "fax",
327
+ "other"
328
+ ],
329
+ "type": "string"
330
+ }
331
+ },
332
+ "required": [
333
+ "number",
334
+ "type"
335
+ ],
336
+ "type": "object"
337
+ },
338
+ "SocialMedia": {
339
+ "additionalProperties": false,
340
+ "properties": {
341
+ "platform": {
342
+ "enum": [
343
+ "linkedin",
344
+ "twitter",
345
+ "facebook",
346
+ "instagram",
347
+ "github",
348
+ "youtube",
349
+ "tiktok",
350
+ "other"
351
+ ],
352
+ "type": "string"
353
+ },
354
+ "url": {
355
+ "type": "string"
356
+ },
357
+ "username": {
358
+ "type": "string"
359
+ }
360
+ },
361
+ "required": [
362
+ "platform",
363
+ "url"
364
+ ],
365
+ "type": "object"
366
+ }
367
+ }
368
+ }
369
+