funuicss 3.5.7 → 3.5.9
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/css/fun.css +163 -45
- package/index.d.ts +2 -0
- package/index.js +5 -1
- package/js/firebase/Auth.d.ts +191 -0
- package/js/firebase/Auth.js +746 -0
- package/js/firebase/FireStore.d.ts +54 -0
- package/js/firebase/FireStore.js +285 -0
- package/package.json +2 -1
- package/ui/card/Card.js +3 -1
- package/ui/input/Input.js +4 -1
- package/ui/select/Select.js +4 -2
- package/ui/sidebar/SideBar.d.ts +2 -1
- package/ui/sidebar/SideBar.js +16 -7
- package/ui/table/Table.d.ts +2 -1
- package/ui/table/Table.js +2 -2
- package/ui/text/Text.js +3 -1
- package/ui/theme/theme.d.ts +11 -3
- package/ui/theme/theme.js +54 -10
- package/utils/FireStore.d.ts +10 -0
- package/utils/FireStore.js +273 -0
- package/utils/Firebase.d.ts +2 -0
- package/utils/Firebase.js +16 -0
- package/utils/applyThemeConfig.d.ts +8 -0
- package/utils/applyThemeConfig.js +19 -0
package/css/fun.css
CHANGED
|
@@ -31,13 +31,9 @@
|
|
|
31
31
|
--text-10xl: 9rem;
|
|
32
32
|
|
|
33
33
|
/* Border radius */
|
|
34
|
-
--radius-sm: 0.
|
|
35
|
-
--radius: 0.
|
|
36
|
-
|
|
37
|
-
--radius-lg: 0.5rem;
|
|
38
|
-
--radius-xl: 0.75rem;
|
|
39
|
-
--radius-2xl: 1rem;
|
|
40
|
-
--radius-full: 9999px;
|
|
34
|
+
--radius-sm: 0.25rem;
|
|
35
|
+
--radius: 0.5rem;
|
|
36
|
+
|
|
41
37
|
|
|
42
38
|
|
|
43
39
|
|
|
@@ -50,8 +46,8 @@
|
|
|
50
46
|
--z-50: 50;
|
|
51
47
|
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
--leading-normal: 1.5rem;
|
|
49
|
+
|
|
50
|
+
--leading-normal: 1.5rem;
|
|
55
51
|
--leading-xl: 1.75rem;
|
|
56
52
|
--leading-2xl: 2rem;
|
|
57
53
|
--leading-3xl: 2.25rem;
|
|
@@ -62,8 +58,7 @@
|
|
|
62
58
|
--leading-8xl: 1;
|
|
63
59
|
--leading-9xl: 1;
|
|
64
60
|
--leading-10xl: 1;
|
|
65
|
-
|
|
66
|
-
--leading-none: 1;
|
|
61
|
+
--leading-none: 0;
|
|
67
62
|
|
|
68
63
|
|
|
69
64
|
/* default colors */
|
|
@@ -74,15 +69,16 @@
|
|
|
74
69
|
--raiseBackdrop:blur(20px); /* Raised element color */
|
|
75
70
|
--borderRgb: 204, 204, 204; /* i want to chnage the opacity for someplaces*/
|
|
76
71
|
--borderColor:rgb(var(--borderRgb)); /* Border color */
|
|
77
|
-
--lighter: #
|
|
72
|
+
--lighter: #F1F1F1 ;
|
|
78
73
|
--hoverable: #fcfcfc ;
|
|
79
74
|
--muted: #78716c;
|
|
80
75
|
--dark: #121212;
|
|
81
|
-
--cardBg: var(--
|
|
76
|
+
--cardBg: var(--page-bg);
|
|
82
77
|
--card: 8px 8px 10rem -2rem rgba(0, 0 , 0 , 0.1), /* soft shadow */
|
|
83
78
|
-8px -8px 4rem 0rem #F2F2F2; /* soft highlight */
|
|
84
79
|
--linkColor:rgb(58, 58, 58);
|
|
85
80
|
|
|
81
|
+
|
|
86
82
|
/* Primary Colors */
|
|
87
83
|
--primary: #6366f1;
|
|
88
84
|
--primary50: #eef2ff;
|
|
@@ -195,14 +191,14 @@
|
|
|
195
191
|
--smallFont: .79rem ;
|
|
196
192
|
--smallerFont: .7rem;
|
|
197
193
|
--navHeight: fit-content ;
|
|
198
|
-
--
|
|
194
|
+
--borderWidth:0.1rem;
|
|
195
|
+
--border: var(--borderWidth) solid var(--borderColor);
|
|
199
196
|
--inputBorder:0.12rem;
|
|
200
197
|
--input_outline_size:0.127rem;
|
|
201
198
|
--borderRadius:1rem;
|
|
202
199
|
--borderRadiusSmall:0.5rem;
|
|
203
200
|
--borderRadiusMax:2rem;
|
|
204
|
-
--
|
|
205
|
-
--DefaultBorderRadius:0.5rem;
|
|
201
|
+
--radius:0.5rem;
|
|
206
202
|
--hoverable: brightness(90%);
|
|
207
203
|
--linkHover:(139, 185, 254;);
|
|
208
204
|
--sideBarZindex:13;
|
|
@@ -211,11 +207,12 @@
|
|
|
211
207
|
--loaderZindex:100;
|
|
212
208
|
--snackBarZindex:20;
|
|
213
209
|
--notificationZindex:29;
|
|
214
|
-
--
|
|
210
|
+
--inputButtonHeight:2.4rem;
|
|
215
211
|
--inputPadding:0.5rem 0;
|
|
216
212
|
--inputRoundedPadding:0.5rem 1rem;
|
|
217
213
|
--shadowMedium:0 0.8rem 2rem 0 rgba(3, 3, 3, 0.1);
|
|
218
214
|
--raised:0 0.1rem 0.2rem 0rem rgba(0, 0, 0, 0.3);
|
|
215
|
+
--spacingScale:1rem;
|
|
219
216
|
/* medium Screen body */
|
|
220
217
|
|
|
221
218
|
|
|
@@ -223,6 +220,127 @@
|
|
|
223
220
|
|
|
224
221
|
|
|
225
222
|
|
|
223
|
+
|
|
224
|
+
:root {
|
|
225
|
+
/* BUTTON VARIABLES */
|
|
226
|
+
--btn-font-size: var(--text-base);
|
|
227
|
+
--btn-font-weight: 500;
|
|
228
|
+
--btn-padding-x: var(--space-4);
|
|
229
|
+
--btn-padding-y: var(--space-2);
|
|
230
|
+
--btn-border-radius: var(--radius-lg);
|
|
231
|
+
--btn-border-width: 1px;
|
|
232
|
+
--btn-min-height: 2.5rem;
|
|
233
|
+
--btn-gap: var(--space-2); /* for icon spacing */
|
|
234
|
+
|
|
235
|
+
/* Button States */
|
|
236
|
+
--btn-hover-scale: 1.02;
|
|
237
|
+
--btn-active-scale: 0.98;
|
|
238
|
+
--btn-disabled-opacity: 0.5;
|
|
239
|
+
|
|
240
|
+
/* Button Variants */
|
|
241
|
+
--btn-primary-bg: var(--primary);
|
|
242
|
+
--btn-primary-text: var(--white);
|
|
243
|
+
--btn-primary-hover: var(--primary600);
|
|
244
|
+
|
|
245
|
+
--btn-secondary-bg: var(--secondary);
|
|
246
|
+
--btn-secondary-text: var(--white);
|
|
247
|
+
--btn-secondary-hover: var(--secondary600);
|
|
248
|
+
|
|
249
|
+
--btn-outlined-border: var(--primary);
|
|
250
|
+
--btn-outlined-text: var(--primary);
|
|
251
|
+
--btn-outlined-hover-bg: var(--primary50);
|
|
252
|
+
|
|
253
|
+
/* INPUT VARIABLES */
|
|
254
|
+
--input-font-size: var(--text-base);
|
|
255
|
+
--input-padding-x: var(--space-4);
|
|
256
|
+
--input-padding-y: var(--space-3);
|
|
257
|
+
--input-border-radius: var(--radius-lg);
|
|
258
|
+
--input-border-width: var(--inputBorder);
|
|
259
|
+
--input-border-color: var(--borderColor);
|
|
260
|
+
--input-bg: var(--white);
|
|
261
|
+
--input-text-color: var(--text-color);
|
|
262
|
+
--input-placeholder-color: var(--muted);
|
|
263
|
+
--input-min-height: var(--inputButtonHeight);
|
|
264
|
+
|
|
265
|
+
/* Input States */
|
|
266
|
+
--input-focus-border: var(--primary);
|
|
267
|
+
--input-focus-ring: 0 0 0 3px var(--primary200);
|
|
268
|
+
--input-error-border: var(--error);
|
|
269
|
+
--input-error-ring: 0 0 0 3px var(--error200);
|
|
270
|
+
--input-disabled-bg: var(--lighter);
|
|
271
|
+
--input-disabled-opacity: 0.6;
|
|
272
|
+
|
|
273
|
+
/* CARD VARIABLES */
|
|
274
|
+
--card-bg: var(--cardBg);
|
|
275
|
+
--card-border: var(--border);
|
|
276
|
+
--card-border-radius: var(--borderRadius);
|
|
277
|
+
--card-padding: var(--space-6);
|
|
278
|
+
--card-shadow: var(--card);
|
|
279
|
+
--card-hover-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
|
|
280
|
+
|
|
281
|
+
/* LINK VARIABLES */
|
|
282
|
+
--link-color: var(--linkColor);
|
|
283
|
+
--link-hover-color: var(--primary);
|
|
284
|
+
--link-underline: none;
|
|
285
|
+
--link-hover-underline: underline;
|
|
286
|
+
--link-font-weight: 400;
|
|
287
|
+
|
|
288
|
+
/* BADGE/TAG VARIABLES */
|
|
289
|
+
--badge-font-size: var(--text-xs);
|
|
290
|
+
--badge-padding-x: var(--space-2);
|
|
291
|
+
--badge-padding-y: var(--space-1);
|
|
292
|
+
--badge-border-radius: var(--radius-full);
|
|
293
|
+
--badge-font-weight: 500;
|
|
294
|
+
|
|
295
|
+
/* MODAL/DIALOG VARIABLES */
|
|
296
|
+
--modal-backdrop: rgba(0, 0, 0, 0.5);
|
|
297
|
+
--modal-bg: var(--white);
|
|
298
|
+
--modal-border-radius: var(--radius-2xl);
|
|
299
|
+
--modal-padding: var(--space-8);
|
|
300
|
+
--modal-max-width: 32rem;
|
|
301
|
+
--modal-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
|
|
302
|
+
|
|
303
|
+
/* DROPDOWN/SELECT VARIABLES */
|
|
304
|
+
--dropdown-bg: var(--white);
|
|
305
|
+
--dropdown-border: var(--border);
|
|
306
|
+
--dropdown-border-radius: var(--radius-lg);
|
|
307
|
+
--dropdown-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
|
|
308
|
+
--dropdown-item-padding: var(--space-3) var(--space-4);
|
|
309
|
+
--dropdown-item-hover-bg: var(--lighter);
|
|
310
|
+
|
|
311
|
+
/* SWITCH/TOGGLE VARIABLES */
|
|
312
|
+
--switch-width: 2.75rem;
|
|
313
|
+
--switch-height: 1.5rem;
|
|
314
|
+
--switch-bg: var(--borderColor);
|
|
315
|
+
--switch-active-bg: var(--primary);
|
|
316
|
+
--switch-thumb-size: 1.25rem;
|
|
317
|
+
|
|
318
|
+
/* CHECKBOX/RADIO VARIABLES */
|
|
319
|
+
--checkbox-size: 1.25rem;
|
|
320
|
+
--checkbox-border: var(--borderColor);
|
|
321
|
+
--checkbox-checked-bg: var(--primary);
|
|
322
|
+
--checkbox-checked-border: var(--primary);
|
|
323
|
+
--checkbox-border-radius: var(--radius);
|
|
324
|
+
|
|
325
|
+
/* TOOLTIP VARIABLES */
|
|
326
|
+
--tooltip-bg: var(--dark);
|
|
327
|
+
--tooltip-text: var(--white);
|
|
328
|
+
--tooltip-padding: var(--space-2) var(--space-3);
|
|
329
|
+
--tooltip-border-radius: var(--radius);
|
|
330
|
+
--tooltip-font-size: var(--text-sm);
|
|
331
|
+
|
|
332
|
+
/* AVATAR VARIABLES */
|
|
333
|
+
--avatar-size: 2.5rem;
|
|
334
|
+
--avatar-border-radius: var(--radius-full);
|
|
335
|
+
--avatar-border: 2px solid var(--white);
|
|
336
|
+
|
|
337
|
+
/* DIVIDER VARIABLES */
|
|
338
|
+
--divider-color: var(--borderColor);
|
|
339
|
+
--divider-width: 1px;
|
|
340
|
+
--divider-margin: var(--space-4) 0;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
|
|
226
344
|
/* For WebKit browsers (Chrome, Edge, Brave, Safari) */
|
|
227
345
|
::-webkit-scrollbar {
|
|
228
346
|
width: 10px;
|
|
@@ -257,6 +375,7 @@
|
|
|
257
375
|
transition: 0.3s ease-in-out all !important;
|
|
258
376
|
}
|
|
259
377
|
|
|
378
|
+
|
|
260
379
|
.card,
|
|
261
380
|
.input,
|
|
262
381
|
.navigation-bar ,
|
|
@@ -1844,6 +1963,7 @@ link:hover {
|
|
|
1844
1963
|
|
|
1845
1964
|
|
|
1846
1965
|
|
|
1966
|
+
|
|
1847
1967
|
input:disabled,
|
|
1848
1968
|
select:disabled,
|
|
1849
1969
|
button:disabled {
|
|
@@ -1861,7 +1981,8 @@ button:disabled {
|
|
|
1861
1981
|
|
|
1862
1982
|
body {
|
|
1863
1983
|
font-size: var(--text-base);
|
|
1864
|
-
|
|
1984
|
+
font-weight: var(--bd-font-weight) !important;
|
|
1985
|
+
line-height: var(--leading-normal) !important;
|
|
1865
1986
|
letter-spacing: normal;
|
|
1866
1987
|
background-color: var(--page-bg) !important;
|
|
1867
1988
|
color: var(--text-color) !important;
|
|
@@ -2406,7 +2527,7 @@ h6, .h6 {
|
|
|
2406
2527
|
transition: 0.1s linear;
|
|
2407
2528
|
}
|
|
2408
2529
|
.hoverable:hover{
|
|
2409
|
-
background-color: var(--
|
|
2530
|
+
background-color: var(--hoverable) !important;
|
|
2410
2531
|
/* filter: brightness(90%); */
|
|
2411
2532
|
|
|
2412
2533
|
}
|
|
@@ -2462,7 +2583,7 @@ h6, .h6 {
|
|
|
2462
2583
|
border: none;
|
|
2463
2584
|
padding:0.7rem 1rem;
|
|
2464
2585
|
background-color: inherit;
|
|
2465
|
-
border-radius: var(--
|
|
2586
|
+
border-radius: var(--radius);
|
|
2466
2587
|
transition: all 0.5s linear;
|
|
2467
2588
|
cursor: pointer;
|
|
2468
2589
|
font-size: var(--minifiedFontSize);
|
|
@@ -2471,6 +2592,7 @@ h6, .h6 {
|
|
|
2471
2592
|
font-weight: 500;
|
|
2472
2593
|
z-index: 1;
|
|
2473
2594
|
line-height: 1 !important;
|
|
2595
|
+
height: var(--inputButtonHeight);
|
|
2474
2596
|
}
|
|
2475
2597
|
|
|
2476
2598
|
|
|
@@ -2582,7 +2704,8 @@ h6, .h6 {
|
|
|
2582
2704
|
}
|
|
2583
2705
|
.button.smallBtn {
|
|
2584
2706
|
padding: 0.3rem 0.6rem !important;
|
|
2585
|
-
font-size: var(--
|
|
2707
|
+
font-size: var(--smallerFont) ;
|
|
2708
|
+
height: fit-content !important;
|
|
2586
2709
|
}
|
|
2587
2710
|
.smallBtn.roundBtn{
|
|
2588
2711
|
padding: 0.3rem 0.8rem !important;
|
|
@@ -2623,6 +2746,7 @@ box-shadow: var(--card);
|
|
|
2623
2746
|
transition: 0.3s;
|
|
2624
2747
|
backdrop-filter: var(--raiseBackdrop) ;
|
|
2625
2748
|
color: var(--text-color);
|
|
2749
|
+
border-radius: var(--borderRadius);
|
|
2626
2750
|
}
|
|
2627
2751
|
.card.xl{
|
|
2628
2752
|
box-shadow: rgba(0, 0, 0, 0.1) 0px 10px 50px !important;
|
|
@@ -3132,7 +3256,7 @@ color: var(--text-color);
|
|
|
3132
3256
|
flex-direction: row;
|
|
3133
3257
|
align-items: center !important;
|
|
3134
3258
|
padding: 0.4rem 1rem;
|
|
3135
|
-
border-radius: var(--
|
|
3259
|
+
border-radius: var(--radius);
|
|
3136
3260
|
gap: 0.3rem;
|
|
3137
3261
|
font-size: var(--minifiedFontSize) ;
|
|
3138
3262
|
width: fit-content;
|
|
@@ -3378,7 +3502,7 @@ color: var(--text-color);
|
|
|
3378
3502
|
border-bottom: var(--inputBorder) solid var(--borderColor);
|
|
3379
3503
|
color: var(--text-color);
|
|
3380
3504
|
font-size: var(--minifiedFontSize);
|
|
3381
|
-
background-color:
|
|
3505
|
+
background-color: var(--page-bg);
|
|
3382
3506
|
font-weight: 500;
|
|
3383
3507
|
}
|
|
3384
3508
|
.smallInput {
|
|
@@ -3452,7 +3576,8 @@ color: var(--text-color);
|
|
|
3452
3576
|
{
|
|
3453
3577
|
outline: none !important;
|
|
3454
3578
|
}
|
|
3455
|
-
input , select{height: var(--
|
|
3579
|
+
input , select {height: var(--inputButtonHeight); border-radius: var(--radius);}
|
|
3580
|
+
textarea{border-radius: var(--radius) !important; height: fit-content !important;}
|
|
3456
3581
|
.input.flat{border-radius: 0;}
|
|
3457
3582
|
|
|
3458
3583
|
.input:focus {
|
|
@@ -3470,7 +3595,6 @@ select:focus {
|
|
|
3470
3595
|
}
|
|
3471
3596
|
.input.borderedInput {
|
|
3472
3597
|
border: var(--border);
|
|
3473
|
-
border-radius: var(--InputButtonBorderRadius);
|
|
3474
3598
|
transition: 0.1s linear;
|
|
3475
3599
|
padding: 0.6rem 0.5rem;
|
|
3476
3600
|
}
|
|
@@ -3522,10 +3646,8 @@ background-color: rgba(var(--borderRgb), 0.3);
|
|
|
3522
3646
|
.custom-select {
|
|
3523
3647
|
position: relative;
|
|
3524
3648
|
width: 100%;
|
|
3525
|
-
border-radius: var(--
|
|
3526
|
-
|
|
3527
|
-
z-index: 999;
|
|
3528
|
-
isolation: isolate;
|
|
3649
|
+
border-radius: var(--radius);
|
|
3650
|
+
|
|
3529
3651
|
}
|
|
3530
3652
|
|
|
3531
3653
|
.custom-select.fullWidth {max-width: none;}
|
|
@@ -3535,9 +3657,9 @@ display: flex;
|
|
|
3535
3657
|
align-items: center;
|
|
3536
3658
|
justify-content: space-between;
|
|
3537
3659
|
padding: var(--inputRoundedPadding);
|
|
3538
|
-
background:
|
|
3660
|
+
background: var(--page-bg);
|
|
3539
3661
|
border: var(--border);
|
|
3540
|
-
border-radius: var(--
|
|
3662
|
+
border-radius: var(--radius);
|
|
3541
3663
|
cursor: pointer;
|
|
3542
3664
|
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
3543
3665
|
font-size: 14px;
|
|
@@ -3558,7 +3680,7 @@ border-bottom-right-radius: 0;
|
|
|
3558
3680
|
|
|
3559
3681
|
.select-trigger.borderless {
|
|
3560
3682
|
border: none !important;
|
|
3561
|
-
background:
|
|
3683
|
+
background: var(--lighter);
|
|
3562
3684
|
}
|
|
3563
3685
|
|
|
3564
3686
|
|
|
@@ -3827,7 +3949,7 @@ padding-right: 2.5rem;
|
|
|
3827
3949
|
/* Base input styles */
|
|
3828
3950
|
.searchable-input {
|
|
3829
3951
|
width: 100%;
|
|
3830
|
-
height: var(--
|
|
3952
|
+
height: var(--inputButtonHeight);
|
|
3831
3953
|
padding: 0.6rem 0.8rem;
|
|
3832
3954
|
font-size: inherit;
|
|
3833
3955
|
line-height: 1.5;
|
|
@@ -3875,7 +3997,7 @@ padding-right: 2.5rem;
|
|
|
3875
3997
|
/* Bordered input styles */
|
|
3876
3998
|
.searchable-input.borderedInput {
|
|
3877
3999
|
border: var(--border);
|
|
3878
|
-
border-radius: var(--
|
|
4000
|
+
border-radius: var(--radius);
|
|
3879
4001
|
transition: 0.1s linear;
|
|
3880
4002
|
padding: 0.6rem 0.5rem;
|
|
3881
4003
|
}
|
|
@@ -4053,7 +4175,7 @@ padding-right: 2.5rem;
|
|
|
4053
4175
|
background-color: var(--raiseThemes);
|
|
4054
4176
|
backdrop-filter: var(--raiseBackdrop);
|
|
4055
4177
|
border: var(--border);
|
|
4056
|
-
border-radius: var(--
|
|
4178
|
+
border-radius: var(--radius);
|
|
4057
4179
|
box-shadow: var(--shadow);
|
|
4058
4180
|
overflow: hidden;
|
|
4059
4181
|
animation: dropdown-appear 0.15s ease-out;
|
|
@@ -4183,7 +4305,7 @@ padding-right: 2.5rem;
|
|
|
4183
4305
|
}
|
|
4184
4306
|
|
|
4185
4307
|
.searchable-input {
|
|
4186
|
-
min-height: var(--
|
|
4308
|
+
min-height: var(--inputButtonHeight);
|
|
4187
4309
|
font-size: 1rem; /* Prevents zoom on iOS */
|
|
4188
4310
|
}
|
|
4189
4311
|
|
|
@@ -4443,6 +4565,7 @@ th {
|
|
|
4443
4565
|
}
|
|
4444
4566
|
.table.hoverableTr tr:hover {
|
|
4445
4567
|
filter: var(--hoverable);
|
|
4568
|
+
background-color: var(--hoverable) !important;
|
|
4446
4569
|
}
|
|
4447
4570
|
|
|
4448
4571
|
.table.dark {
|
|
@@ -5120,7 +5243,7 @@ filter: brightness(90%);
|
|
|
5120
5243
|
backdrop-filter: var(--raiseBackdrop);
|
|
5121
5244
|
color: var(--white);
|
|
5122
5245
|
text-align: center;
|
|
5123
|
-
border-radius: var(--
|
|
5246
|
+
border-radius: var(--radius);
|
|
5124
5247
|
padding: 0.2rem 0.5rem !important;
|
|
5125
5248
|
font-weight: 500 !important;
|
|
5126
5249
|
position: absolute;
|
|
@@ -5210,7 +5333,7 @@ filter: brightness(90%);
|
|
|
5210
5333
|
position: fixed !important;
|
|
5211
5334
|
background-color: var(--dark) !important;
|
|
5212
5335
|
color: var(--white) !important;
|
|
5213
|
-
border-radius: var(--
|
|
5336
|
+
border-radius: var(--radius);
|
|
5214
5337
|
max-width: 90vw;
|
|
5215
5338
|
width: fit-content;
|
|
5216
5339
|
max-height: 2.5rem;
|
|
@@ -6620,6 +6743,7 @@ background-color: rgba(0, 0, 0, 0.2);
|
|
|
6620
6743
|
}
|
|
6621
6744
|
|
|
6622
6745
|
/* --------- MARGIN --------- */
|
|
6746
|
+
.margin , .m{margin: var(--spacingScale) !important;}
|
|
6623
6747
|
.m-0 { margin: var(--space-0) !important; }
|
|
6624
6748
|
.m-1 { margin: var(--space-1) !important; }
|
|
6625
6749
|
.m-2 { margin: var(--space-2) !important; }
|
|
@@ -6740,7 +6864,7 @@ background-color: rgba(0, 0, 0, 0.2);
|
|
|
6740
6864
|
/*padding*/
|
|
6741
6865
|
|
|
6742
6866
|
/* --------- PADDING --------- */
|
|
6743
|
-
.padding{padding:var(--
|
|
6867
|
+
.padding , .p{padding:var(--spacingScale)}
|
|
6744
6868
|
.p-0 { padding: var(--space-0) !important; }
|
|
6745
6869
|
.p-1 { padding: var(--space-1) !important; }
|
|
6746
6870
|
.p-2 { padding: var(--space-2) !important; }
|
|
@@ -7332,12 +7456,6 @@ background-color: rgba(0, 0, 0, 0.2);
|
|
|
7332
7456
|
|
|
7333
7457
|
|
|
7334
7458
|
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
7338
|
-
|
|
7339
|
-
|
|
7340
|
-
|
|
7341
7459
|
/* Text Area */
|
|
7342
7460
|
|
|
7343
7461
|
.ql-container {
|
package/index.d.ts
CHANGED
|
@@ -58,3 +58,5 @@ export { default as Select } from "./ui/select/Select";
|
|
|
58
58
|
export { default as Cookie } from "./js/Cookie";
|
|
59
59
|
export { FunGet } from "./js/Fun";
|
|
60
60
|
export { default as GoogleAnalytics } from "./js/google/analytics";
|
|
61
|
+
export { FunFireAuth } from "./js/firebase/Auth";
|
|
62
|
+
export { FunFireStore } from "./js/firebase/FireStore";
|
package/index.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.View = exports.ScrollInView = exports.Accordion = exports.Flex = exports.RichText = exports.Carousel = exports.Video = exports.SideBar = exports.ChartPie = exports.Lines = exports.Bars = exports.FullCenteredPage = exports.CircleGroup = exports.Circle = exports.Hr = exports.Section = exports.RowFlex = exports.Tip = exports.AppBar = exports.ToolTip = exports.Notification = exports.FunLoader = exports.ProgressBar = exports.DropMenu = exports.DropItem = exports.Dropdown = exports.DropDown = exports.DropUp = exports.UnAuthorized = exports.NotFound = exports.StepLine = exports.StepHeader = exports.Step = exports.StepContainer = exports.Div = exports.Text = exports.List = exports.Table = exports.Modal = exports.Loader = exports.SearchableInput = exports.Input = exports.Col = exports.Grid = exports.Container = exports.BreadCrumb = exports.Card = exports.Button = exports.ThemeProvider = exports.Alert = void 0;
|
|
7
|
-
exports.GoogleAnalytics = exports.FunGet = exports.Cookie = exports.Select = exports.ScrollToTop = exports.FlexItem = exports.Slider = exports.Vista = exports.Calendar = exports.DatePicker = void 0;
|
|
7
|
+
exports.FunFireStore = exports.FunFireAuth = exports.GoogleAnalytics = exports.FunGet = exports.Cookie = exports.Select = exports.ScrollToTop = exports.FlexItem = exports.Slider = exports.Vista = exports.Calendar = exports.DatePicker = void 0;
|
|
8
8
|
var Alert_1 = require("./ui/alert/Alert");
|
|
9
9
|
Object.defineProperty(exports, "Alert", { enumerable: true, get: function () { return __importDefault(Alert_1).default; } });
|
|
10
10
|
var theme_1 = require("./ui/theme/theme");
|
|
@@ -126,3 +126,7 @@ var Fun_1 = require("./js/Fun");
|
|
|
126
126
|
Object.defineProperty(exports, "FunGet", { enumerable: true, get: function () { return Fun_1.FunGet; } });
|
|
127
127
|
var analytics_1 = require("./js/google/analytics");
|
|
128
128
|
Object.defineProperty(exports, "GoogleAnalytics", { enumerable: true, get: function () { return __importDefault(analytics_1).default; } });
|
|
129
|
+
var Auth_1 = require("./js/firebase/Auth");
|
|
130
|
+
Object.defineProperty(exports, "FunFireAuth", { enumerable: true, get: function () { return Auth_1.FunFireAuth; } });
|
|
131
|
+
var FireStore_1 = require("./js/firebase/FireStore");
|
|
132
|
+
Object.defineProperty(exports, "FunFireStore", { enumerable: true, get: function () { return FireStore_1.FunFireStore; } });
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Auth, User, UserCredential } from 'firebase/auth';
|
|
2
|
+
interface AuthResponse {
|
|
3
|
+
user: User;
|
|
4
|
+
credential: UserCredential;
|
|
5
|
+
isNewUser?: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface AuthStateCallback {
|
|
8
|
+
(user: User | null): void;
|
|
9
|
+
}
|
|
10
|
+
type ProviderType = 'google' | 'facebook' | 'github' | 'twitter' | 'microsoft' | 'apple';
|
|
11
|
+
/**
|
|
12
|
+
* Firebase Authentication Operations
|
|
13
|
+
* Users must pass their Auth instance to each method
|
|
14
|
+
*/
|
|
15
|
+
export declare const FunFireAuth: {
|
|
16
|
+
/**
|
|
17
|
+
* 📧 Sign in with email and password
|
|
18
|
+
* @param auth - Firebase Auth instance
|
|
19
|
+
* @param email - User email
|
|
20
|
+
* @param password - User password
|
|
21
|
+
*/
|
|
22
|
+
signInWithEmail: (auth: Auth, email: string, password: string) => Promise<AuthResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* ✍️ Create account with email and password
|
|
25
|
+
* @param auth - Firebase Auth instance
|
|
26
|
+
* @param email - User email
|
|
27
|
+
* @param password - User password
|
|
28
|
+
* @param displayName - Optional display name
|
|
29
|
+
* @param photoURL - Optional photo URL
|
|
30
|
+
*/
|
|
31
|
+
createAccount: (auth: Auth, email: string, password: string, displayName?: string, photoURL?: string) => Promise<AuthResponse>;
|
|
32
|
+
/**
|
|
33
|
+
* 🔐 Sign in with Google (Popup)
|
|
34
|
+
* @param auth - Firebase Auth instance
|
|
35
|
+
*/
|
|
36
|
+
signInWithGoogle: (auth: Auth) => Promise<AuthResponse>;
|
|
37
|
+
/**
|
|
38
|
+
* 🔐 Sign in with Facebook (Popup)
|
|
39
|
+
* @param auth - Firebase Auth instance
|
|
40
|
+
*/
|
|
41
|
+
signInWithFacebook: (auth: Auth) => Promise<AuthResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* 🔐 Sign in with GitHub (Popup)
|
|
44
|
+
* @param auth - Firebase Auth instance
|
|
45
|
+
*/
|
|
46
|
+
signInWithGithub: (auth: Auth) => Promise<AuthResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* 🔐 Sign in with Twitter (Popup)
|
|
49
|
+
* @param auth - Firebase Auth instance
|
|
50
|
+
*/
|
|
51
|
+
signInWithTwitter: (auth: Auth) => Promise<AuthResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* 🔐 Sign in with Microsoft (Popup)
|
|
54
|
+
* @param auth - Firebase Auth instance
|
|
55
|
+
*/
|
|
56
|
+
signInWithMicrosoft: (auth: Auth) => Promise<AuthResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* 🔐 Sign in with Apple (Popup)
|
|
59
|
+
* @param auth - Firebase Auth instance
|
|
60
|
+
*/
|
|
61
|
+
signInWithApple: (auth: Auth) => Promise<AuthResponse>;
|
|
62
|
+
/**
|
|
63
|
+
* 🔐 Generic provider sign in with redirect (better for mobile)
|
|
64
|
+
* @param auth - Firebase Auth instance
|
|
65
|
+
* @param providerType - Provider type
|
|
66
|
+
*/
|
|
67
|
+
signInWithRedirect: (auth: Auth, providerType: ProviderType) => Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* 🚪 Sign out
|
|
70
|
+
* @param auth - Firebase Auth instance
|
|
71
|
+
*/
|
|
72
|
+
signOut: (auth: Auth) => Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* 🔄 Send password reset email
|
|
75
|
+
* @param auth - Firebase Auth instance
|
|
76
|
+
* @param email - User email
|
|
77
|
+
* @param actionCodeSettings - Optional action code settings for custom redirect
|
|
78
|
+
*/
|
|
79
|
+
resetPassword: (auth: Auth, email: string, actionCodeSettings?: {
|
|
80
|
+
url: string;
|
|
81
|
+
handleCodeInApp?: boolean;
|
|
82
|
+
}) => Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* ✉️ Send email verification
|
|
85
|
+
* @param auth - Firebase Auth instance
|
|
86
|
+
* @param actionCodeSettings - Optional action code settings for custom redirect
|
|
87
|
+
*/
|
|
88
|
+
sendVerificationEmail: (auth: Auth, actionCodeSettings?: {
|
|
89
|
+
url: string;
|
|
90
|
+
handleCodeInApp?: boolean;
|
|
91
|
+
}) => Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* 🔑 Update user password
|
|
94
|
+
* @param auth - Firebase Auth instance
|
|
95
|
+
* @param newPassword - New password
|
|
96
|
+
*/
|
|
97
|
+
updatePassword: (auth: Auth, newPassword: string) => Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* 📧 Update user email
|
|
100
|
+
* @param auth - Firebase Auth instance
|
|
101
|
+
* @param newEmail - New email
|
|
102
|
+
*/
|
|
103
|
+
updateEmail: (auth: Auth, newEmail: string) => Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* 👤 Update user profile
|
|
106
|
+
* @param auth - Firebase Auth instance
|
|
107
|
+
* @param displayName - Display name
|
|
108
|
+
* @param photoURL - Photo URL
|
|
109
|
+
*/
|
|
110
|
+
updateProfile: (auth: Auth, displayName?: string, photoURL?: string) => Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* 🔐 Reauthenticate user (required before sensitive operations)
|
|
113
|
+
* @param auth - Firebase Auth instance
|
|
114
|
+
* @param password - Current password
|
|
115
|
+
*/
|
|
116
|
+
reauthenticate: (auth: Auth, password: string) => Promise<UserCredential>;
|
|
117
|
+
/**
|
|
118
|
+
* ❌ Delete user account
|
|
119
|
+
* @param auth - Firebase Auth instance
|
|
120
|
+
*/
|
|
121
|
+
deleteAccount: (auth: Auth) => Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* 👁️ Listen to auth state changes
|
|
124
|
+
* @param auth - Firebase Auth instance
|
|
125
|
+
* @param callback - Callback function that receives user or null
|
|
126
|
+
* @returns Unsubscribe function
|
|
127
|
+
*/
|
|
128
|
+
onAuthStateChanged: (auth: Auth, callback: AuthStateCallback) => (() => void);
|
|
129
|
+
/**
|
|
130
|
+
* 🔍 Get current user
|
|
131
|
+
* @param auth - Firebase Auth instance
|
|
132
|
+
* @returns Current user or null
|
|
133
|
+
*/
|
|
134
|
+
getCurrentUser: (auth: Auth) => User | null;
|
|
135
|
+
/**
|
|
136
|
+
* 🔍 Check if email exists
|
|
137
|
+
* @param auth - Firebase Auth instance
|
|
138
|
+
* @param email - Email to check
|
|
139
|
+
* @returns Array of sign-in methods for the email
|
|
140
|
+
*/
|
|
141
|
+
checkEmailExists: (auth: Auth, email: string) => Promise<string[]>;
|
|
142
|
+
/**
|
|
143
|
+
* ✅ Apply action code (email verification, password reset)
|
|
144
|
+
* @param auth - Firebase Auth instance
|
|
145
|
+
* @param code - Action code from email link
|
|
146
|
+
*/
|
|
147
|
+
applyActionCode: (auth: Auth, code: string) => Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* 🔍 Verify password reset code
|
|
150
|
+
* @param auth - Firebase Auth instance
|
|
151
|
+
* @param code - Password reset code
|
|
152
|
+
* @returns Email associated with the code
|
|
153
|
+
*/
|
|
154
|
+
verifyPasswordResetCode: (auth: Auth, code: string) => Promise<string>;
|
|
155
|
+
/**
|
|
156
|
+
* ✅ Confirm password reset
|
|
157
|
+
* @param auth - Firebase Auth instance
|
|
158
|
+
* @param code - Password reset code
|
|
159
|
+
* @param newPassword - New password
|
|
160
|
+
*/
|
|
161
|
+
confirmPasswordReset: (auth: Auth, code: string, newPassword: string) => Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* 🔗 Link account with Google
|
|
164
|
+
* @param auth - Firebase Auth instance
|
|
165
|
+
*/
|
|
166
|
+
linkWithGoogle: (auth: Auth) => Promise<UserCredential>;
|
|
167
|
+
/**
|
|
168
|
+
* 🔓 Unlink provider from account
|
|
169
|
+
* @param auth - Firebase Auth instance
|
|
170
|
+
* @param providerId - Provider ID to unlink (e.g., 'google.com', 'password')
|
|
171
|
+
*/
|
|
172
|
+
unlinkProvider: (auth: Auth, providerId: string) => Promise<User>;
|
|
173
|
+
/**
|
|
174
|
+
* 📱 Get ID token (for backend verification)
|
|
175
|
+
* @param auth - Firebase Auth instance
|
|
176
|
+
* @param forceRefresh - Force token refresh
|
|
177
|
+
*/
|
|
178
|
+
getIdToken: (auth: Auth, forceRefresh?: boolean) => Promise<string>;
|
|
179
|
+
};
|
|
180
|
+
export declare const AuthErrorCodes: {
|
|
181
|
+
EMAIL_EXISTS: string;
|
|
182
|
+
INVALID_EMAIL: string;
|
|
183
|
+
WEAK_PASSWORD: string;
|
|
184
|
+
USER_NOT_FOUND: string;
|
|
185
|
+
WRONG_PASSWORD: string;
|
|
186
|
+
TOO_MANY_REQUESTS: string;
|
|
187
|
+
NETWORK_ERROR: string;
|
|
188
|
+
POPUP_CLOSED: string;
|
|
189
|
+
REQUIRES_RECENT_LOGIN: string;
|
|
190
|
+
};
|
|
191
|
+
export type { AuthResponse, AuthStateCallback, ProviderType };
|