funuicss 3.7.0 → 3.7.2

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 CHANGED
@@ -459,7 +459,6 @@
459
459
  --letter-spacing-jumbo: var(--letter-spacing-tighter);
460
460
  }
461
461
 
462
- /* ===== RESPONSIVE BREAKPOINTS ===== */
463
462
 
464
463
  /* Tablet and above */
465
464
  @media (min-width: 768px) {
@@ -2239,66 +2238,207 @@ border-radius: var(--borderRadius);
2239
2238
  }
2240
2239
 
2241
2240
 
2242
- /* dropdown */
2243
- .dropdown,
2244
- .dropup {
2241
+ /* Dropdown Container */
2242
+ .dropdown-container {
2245
2243
  position: relative;
2246
- width:fit-content;
2247
- z-index: 1;
2244
+ width: fit-content;
2248
2245
  }
2249
- .dropdown .drop-menu { top: 105%; }
2250
- .dropup .drop-menu { bottom: 105%; }
2251
- .dropdown.left .drop-menu { left: 0; }
2252
- .dropdown.right .drop-menu { right: 0; }
2253
- .dropup.left .drop-menu { left: 0; }
2254
- .dropup.right .drop-menu { right: 0; }
2255
2246
 
2256
- .drop-menu {
2247
+ /* Dropdown Menu */
2248
+ .dropdown-menu {
2257
2249
  position: absolute;
2258
- box-shadow: var(--card);
2259
- transition: 0.5s;
2260
- z-index: 10; /* Higher to sit above everything */
2261
- width: 100%;
2262
- min-width: max-content !important;
2263
- overflow: visible; /* allow overflow! */
2264
- border-radius: 0.5rem;
2265
- background-color: var(--raiseThemes);
2266
- backdrop-filter: blur(2px) !important;
2250
+ z-index: 9999 !important;
2251
+ background-color: var(--lighter);
2267
2252
  border: var(--border);
2253
+ border-radius: 0.5rem;
2254
+ box-shadow: var(--card);
2255
+ backdrop-filter: blur(2px);
2256
+ overflow: auto;
2257
+ animation: dropdownFadeIn 0.15s ease-out;
2268
2258
  }
2269
2259
 
2260
+ /* Position Variants - Vertical (Top/Bottom) */
2261
+ .dropdown-menu.bottom-left {
2262
+ top: calc(100% + 8px);
2263
+ left: 0;
2264
+ }
2270
2265
 
2266
+ .dropdown-menu.bottom-right {
2267
+ top: calc(100% + 8px);
2268
+ right: 0;
2269
+ }
2271
2270
 
2272
- .dropup:hover .drop-menu {
2273
- display: block;
2274
- z-index: 1;
2271
+ .dropdown-menu.bottom {
2272
+ top: calc(100% + 8px);
2273
+ left: 50%;
2274
+ transform: translateX(-50%);
2275
2275
  }
2276
- .dropdown:hover .drop-menu {
2277
- display: block;
2278
- z-index: 1;
2276
+
2277
+ .dropdown-menu.top-left {
2278
+ bottom: calc(100% + 8px);
2279
+ left: 0;
2280
+ }
2281
+
2282
+ .dropdown-menu.top-right {
2283
+ bottom: calc(100% + 8px);
2284
+ right: 0;
2285
+ }
2286
+
2287
+ .dropdown-menu.top {
2288
+ bottom: calc(100% + 8px);
2289
+ left: 50%;
2290
+ transform: translateX(-50%);
2291
+ }
2292
+
2293
+ /* Position Variants - Horizontal (Left/Right) */
2294
+ .dropdown-menu.left {
2295
+ right: calc(100% + 8px);
2296
+ top: 0;
2297
+ }
2298
+
2299
+ .dropdown-menu.right {
2300
+ left: calc(100% + 8px);
2301
+ top: 0;
2279
2302
  }
2280
- .drop-item {
2281
- padding: 0.6rem;
2303
+
2304
+ /* Dropdown Item */
2305
+ .dropdown-item {
2306
+ padding: 0.6rem 0.8rem;
2282
2307
  cursor: pointer;
2308
+ display: flex;
2309
+ align-items: center;
2310
+ gap: 0.5rem;
2311
+ flex-wrap: nowrap;
2312
+ transition: background-color 0.15s ease;
2283
2313
  }
2284
- .drop-menu.item-hoverable > .drop-item:hover {
2314
+
2315
+ .dropdown-item:hover {
2285
2316
  background-color: var(--dark800);
2286
2317
  }
2287
- .drop-button > .rotate-up {
2288
- transition: 0.3s;
2289
- margin: 0px 5px;
2318
+
2319
+ .dropdown-item.disabled {
2320
+ cursor: not-allowed;
2321
+ opacity: 0.5;
2322
+ pointer-events: none;
2290
2323
  }
2291
- .drop-button:hover .rotate-up {
2292
- transform: rotate(180deg);
2324
+
2325
+ .dropdown-item.no-hover:hover {
2326
+ background-color: transparent;
2293
2327
  }
2294
- .drop-button > .rotate-down {
2295
- transition: 0.3s;
2296
- margin: 0px 5px;
2328
+
2329
+ /* Dropdown Item Icons */
2330
+ .dropdown-item-icon {
2331
+ line-height: 0;
2332
+ display: flex;
2333
+ align-items: center;
2297
2334
  }
2298
- .drop-button:hover .rotate-down {
2299
- transform: rotate(180deg);
2335
+
2336
+ .dropdown-item-label {
2337
+ flex: 1;
2338
+ }
2339
+
2340
+ /* Dropdown Divider */
2341
+ .dropdown-divider {
2342
+ height: 1px;
2343
+ background-color: var(--border);
2344
+ margin: 0.25rem 0;
2300
2345
  }
2301
2346
 
2347
+ /* Animations */
2348
+ @keyframes dropdownFadeIn {
2349
+ from {
2350
+ opacity: 0;
2351
+ transform: translateY(-4px);
2352
+ }
2353
+ to {
2354
+ opacity: 1;
2355
+ transform: translateY(0);
2356
+ }
2357
+ }
2358
+
2359
+ /* Animation for centered positions */
2360
+ .dropdown-menu.top,
2361
+ .dropdown-menu.bottom {
2362
+ animation: dropdownFadeInCentered 0.15s ease-out;
2363
+ }
2364
+
2365
+ @keyframes dropdownFadeInCentered {
2366
+ from {
2367
+ opacity: 0;
2368
+ transform: translateX(-50%) translateY(-4px);
2369
+ }
2370
+ to {
2371
+ opacity: 1;
2372
+ transform: translateX(-50%) translateY(0);
2373
+ }
2374
+ }
2375
+
2376
+ /* Animation for top positions */
2377
+ .dropdown-menu.top-left,
2378
+ .dropdown-menu.top-right,
2379
+ .dropdown-menu.top {
2380
+ animation: dropdownFadeInTop 0.15s ease-out;
2381
+ }
2382
+
2383
+ @keyframes dropdownFadeInTop {
2384
+ from {
2385
+ opacity: 0;
2386
+ transform: translateY(4px);
2387
+ }
2388
+ to {
2389
+ opacity: 1;
2390
+ transform: translateY(0);
2391
+ }
2392
+ }
2393
+
2394
+ /* Animation for top centered */
2395
+ .dropdown-menu.top {
2396
+ animation: dropdownFadeInTopCentered 0.15s ease-out;
2397
+ }
2398
+
2399
+ @keyframes dropdownFadeInTopCentered {
2400
+ from {
2401
+ opacity: 0;
2402
+ transform: translateX(-50%) translateY(4px);
2403
+ }
2404
+ to {
2405
+ opacity: 1;
2406
+ transform: translateX(-50%) translateY(0);
2407
+ }
2408
+ }
2409
+
2410
+ /* Animation for horizontal positions */
2411
+ .dropdown-menu.left {
2412
+ animation: dropdownFadeInLeft 0.15s ease-out;
2413
+ }
2414
+
2415
+ @keyframes dropdownFadeInLeft {
2416
+ from {
2417
+ opacity: 0;
2418
+ transform: translateX(4px);
2419
+ }
2420
+ to {
2421
+ opacity: 1;
2422
+ transform: translateX(0);
2423
+ }
2424
+ }
2425
+
2426
+ .dropdown-menu.right {
2427
+ animation: dropdownFadeInRight 0.15s ease-out;
2428
+ }
2429
+
2430
+ @keyframes dropdownFadeInRight {
2431
+ from {
2432
+ opacity: 0;
2433
+ transform: translateX(-4px);
2434
+ }
2435
+ to {
2436
+ opacity: 1;
2437
+ transform: translateX(0);
2438
+ }
2439
+ }
2440
+
2441
+
2302
2442
 
2303
2443
  /*inputs*/
2304
2444
  /*inputs*/
@@ -2397,7 +2537,9 @@ border-radius: var(--borderRadius);
2397
2537
  background-color: transparent;
2398
2538
  }
2399
2539
 
2400
-
2540
+ .no_label{
2541
+ padding:var(--inputPadding) !important;
2542
+ }
2401
2543
  /* Status Input Styles */
2402
2544
  .input.success-input,
2403
2545
  .input.warning-input,
@@ -3717,55 +3859,391 @@ padding-right: 2.5rem;
3717
3859
  }
3718
3860
 
3719
3861
 
3862
+ /* CSS Grid Table System */
3863
+ .table-grid {
3864
+ display: grid;
3865
+ width: 100%;
3866
+ background: var(--page-bg);
3867
+ border-radius: var(--radius);
3868
+ overflow: hidden;
3869
+ position: relative;
3870
+ }
3871
+ .tableHeader{
3872
+ border-radius: var(--radius);
3873
+ }
3720
3874
 
3721
- /* tables */
3722
- .table.bordered > tr,
3723
- thead {
3724
- border-bottom: var(--border);
3875
+ /* Table Head Grid */
3876
+ .table-head {
3877
+ display: grid;
3878
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
3879
+ gap: 2px;
3880
+ background-color: var(--lighter);
3881
+ position: sticky;
3882
+ top: 0;
3883
+ margin-bottom: var(--space-2);
3884
+ padding: 0.5rem 1rem;
3885
+ z-index: 10;
3725
3886
  }
3726
- .table thead > td,
3727
- th {
3728
- font-weight: bold;
3887
+
3888
+ /* Table Body Grid */
3889
+ .table-body {
3890
+ display: grid;
3891
+ }
3892
+
3893
+ /* Table Row Grid */
3894
+ .table-row {
3895
+ display: grid;
3896
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
3897
+ gap: 2px;
3898
+ align-items: center;
3899
+ position: relative;
3900
+ background: var(--white);
3901
+ padding: 0 1rem;
3902
+ overflow: visible !important;
3903
+ }
3904
+
3905
+ /* Header and Cell Styles */
3906
+ .table-header,
3907
+ .table-cell {
3908
+ padding: 0.5rem;
3909
+ display: flex;
3910
+ align-items: center;
3911
+ display: flex;
3912
+ align-items: flex-start; /* Changed from center to flex-start for better text alignment */
3913
+ overflow: visible; /* Changed from hidden to visible */
3914
+ text-overflow: unset; /* Remove ellipsis */
3915
+ white-space: normal; /* Changed from nowrap to normal */
3916
+ word-wrap: break-word; /* Allow breaking long words */
3917
+ word-break: break-word; /* Break words if needed */
3729
3918
  }
3730
- .table , table {
3731
- width: 100%;
3732
- text-align: left;
3733
- padding: 0;
3734
- border-collapse: collapse;
3735
3919
 
3920
+
3921
+ .table-header {
3922
+ background-color: var(--lighter);
3923
+ border: none;
3736
3924
  }
3737
- .table.bordered {
3925
+
3926
+ /* Modifier Classes */
3927
+ /* Bordered */
3928
+ .table-grid.bordered {
3738
3929
  border: var(--border);
3930
+ border-radius: var(--radius);
3739
3931
  }
3740
3932
 
3741
- .table.stripped tr:nth-child(even) {
3742
- background-color: var(--lighter);
3933
+ .table-grid.bordered .table-header,
3934
+ .table-grid.bordered .table-cell {
3935
+ border-right: var(--border);
3743
3936
  }
3744
- .table tr,
3745
- th,
3746
- td {
3747
- padding: 0.5rem;
3748
- margin: 0;
3937
+
3938
+ .table-grid.bordered .table-header:last-child,
3939
+ .table-grid.bordered .table-cell:last-child {
3940
+ border-right: none;
3749
3941
  }
3750
- .table.hoverableTr tr,
3751
- th {
3752
- transition: 0.3s;
3942
+
3943
+ /* Stripped */
3944
+ .table-grid.stripped .table-row:nth-child(odd) {
3945
+ background-color: var(--lighter);
3753
3946
  }
3754
- .table.hoverableTr tr:hover {
3755
- filter: var(--hoverable);
3947
+
3948
+ /* Hoverable */
3949
+ .table-grid.hoverableTr .table-row {
3950
+ transition: all 0.3s ease;
3951
+ cursor: pointer;
3952
+ }
3953
+
3954
+ .table-grid.hoverableTr .table-row:hover {
3756
3955
  background-color: var(--hoverable) !important;
3956
+ transform: translateY(-1px);
3957
+ box-shadow: var(--raised);
3757
3958
  }
3758
3959
 
3759
- .table.dark {
3960
+ /* Dark Theme */
3961
+ .table-grid.dark {
3760
3962
  background-color: var(--dark);
3761
3963
  color: var(--white);
3762
3964
  }
3763
3965
 
3764
- .pagination{
3966
+ .table-grid.dark .table-header {
3967
+ background-color: var(--darker);
3968
+ color: var(--white);
3969
+ }
3970
+
3971
+ .table-grid.dark .table-row {
3972
+ background-color: var(--dark);
3973
+ color: var(--white);
3974
+ }
3975
+
3976
+ .table-grid.dark.stripped .table-row:nth-child(odd) {
3977
+ background-color: var(--darker);
3978
+ }
3979
+
3980
+
3981
+ /* Skeleton Loading */
3982
+ .table-row.skeleton .table-cell {
3983
+ background: linear-gradient(90deg, var(--lighter) 25%, var(--light) 50%, var(--lighter) 75%);
3984
+ background-size: 200% 100%;
3985
+ animation: loading 1.5s infinite;
3986
+ border-radius: 2px;
3987
+ min-height: 1rem;
3988
+ }
3989
+
3990
+ @keyframes loading {
3991
+ 0% { background-position: 200% 0; }
3992
+ 100% { background-position: -200% 0; }
3993
+ }
3994
+
3995
+ /* Mobile Responsive Styles */
3996
+ @media (max-width: 768px) {
3997
+ .table-grid {
3998
+ grid-template-columns: 1fr;
3999
+ gap: 0.5rem;
4000
+ }
4001
+
4002
+ .table-head {
4003
+ display: none; /* Hide headers on mobile */
4004
+ }
4005
+
4006
+ .table-row {
4007
+ grid-template-columns: 1fr;
4008
+ gap: 0.25rem;
4009
+ padding: 1rem;
4010
+ border: var(--border);
4011
+ border-radius: var(--radius);
4012
+ background: var(--page-bg);
4013
+ margin-bottom: 0.5rem;
4014
+ box-shadow: 0 1px 3px rgba(0,0,0,0.1);
4015
+ }
4016
+
4017
+ .table-cell {
4018
+ display: grid;
4019
+ grid-template-columns: 1fr 2fr;
4020
+ gap: 0.5rem;
4021
+ padding: 0.5rem 0;
4022
+ border-bottom: 1px solid var(--light);
4023
+ }
4024
+
4025
+ .table-cell:last-child {
4026
+ border-bottom: none;
4027
+ }
4028
+
4029
+ .table-cell::before {
4030
+ content: attr(data-label);
4031
+ font-weight: 600;
4032
+ color: var(--secondary);
4033
+ font-size: 0.875rem;
4034
+ }
4035
+
4036
+ /* Mobile specific hover effects */
4037
+ .table-grid.hoverableTr .table-row:hover {
4038
+ transform: scale(1.02);
4039
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
4040
+ }
4041
+
4042
+ /* Compact mobile view */
4043
+ .table-grid.compact .table-row {
4044
+ padding: 0.75rem;
4045
+ }
4046
+
4047
+ .table-grid.compact .table-cell {
4048
+ padding: 0.25rem 0;
4049
+ font-size: 0.875rem;
4050
+ }
4051
+ }
4052
+
4053
+ /* Small Mobile Devices */
4054
+ @media (max-width: 480px) {
4055
+ .table-row {
4056
+ padding: 0.75rem;
4057
+ }
4058
+
4059
+ .table-cell {
4060
+ grid-template-columns: 1fr;
4061
+ gap: 0.25rem;
4062
+ }
4063
+
4064
+ .table-cell::before {
4065
+ font-size: 0.8rem;
4066
+ margin-bottom: 0.25rem;
4067
+ }
4068
+ }
4069
+
4070
+ /* Empty State */
4071
+ .table-empty {
4072
+ grid-column: 1 / -1;
4073
+ text-align: center;
4074
+ padding: 3rem 1rem;
4075
+ color: var(--secondary);
4076
+ }
4077
+
4078
+ .table-empty .empty-icon {
4079
+ font-size: 3rem;
4080
+ margin-bottom: 1rem;
4081
+ opacity: 0.5;
4082
+ }
4083
+
4084
+ /* Pagination */
4085
+ .pagination {
3765
4086
  display: flex;
3766
- flex-direction: row;
3767
- column-gap:0.2rem;
4087
+ justify-content: center;
4088
+ align-items: center;
4089
+ gap: 0.5rem;
4090
+ padding: 1.5rem;
4091
+ margin-top: 1rem;
4092
+ }
3768
4093
 
4094
+ /* Animation for slide-up effect */
4095
+ .animated.slide-up {
4096
+ animation: slideUp 0.3s ease-out;
4097
+ }
4098
+
4099
+ @keyframes slideUp {
4100
+ from {
4101
+ opacity: 0;
4102
+ transform: translateY(10px);
4103
+ }
4104
+ to {
4105
+ opacity: 1;
4106
+ transform: translateY(0);
4107
+ }
4108
+ }
4109
+
4110
+
4111
+ .first_table_data {
4112
+ border-top-left-radius: var(--radius);
4113
+ }
4114
+
4115
+ .last_table_data {
4116
+ border-top-right-radius: var(--radius);
4117
+ }
4118
+ /* Complete Navigation Pagination */
4119
+ .pagination {
4120
+ display: flex;
4121
+ align-items: center;
4122
+ justify-content: center;
4123
+ gap: 0.5rem;
4124
+ padding: 2rem 1rem;
4125
+ margin-top: 1rem;
4126
+ }
4127
+
4128
+ .pagination-container {
4129
+ display: flex;
4130
+ align-items: center;
4131
+ gap: 0.75rem;
4132
+ }
4133
+
4134
+ /* Navigation Buttons */
4135
+ .pagination-nav {
4136
+ display: flex;
4137
+ align-items: center;
4138
+ justify-content: center;
4139
+ min-width: 2.5rem;
4140
+ height: 2.5rem;
4141
+ border-radius: 50%;
4142
+ background: var(--white);
4143
+ border: 1px solid var(--light);
4144
+ color: var(--dark);
4145
+ transition: all 0.3s ease;
4146
+ cursor: pointer;
4147
+ font-size: 1.1rem;
4148
+ font-weight: 600;
4149
+ }
4150
+
4151
+ .pagination-nav:hover:not(.pagination-nav-disabled) {
4152
+ background: var(--primary);
4153
+ color: var(--white);
4154
+ transform: translateY(-1px);
4155
+ border-color: var(--primary);
4156
+ }
4157
+
4158
+ .pagination-nav-disabled {
4159
+ opacity: 0.3;
4160
+ cursor: not-allowed;
4161
+ background: var(--lighter);
4162
+ }
4163
+
4164
+ /* Page Number Items */
4165
+ .pagination-item {
4166
+ display: flex;
4167
+ align-items: center;
4168
+ justify-content: center;
4169
+ min-width: 2.5rem;
4170
+ height: 2.5rem;
4171
+ border-radius: 50%;
4172
+ font-weight: 500;
4173
+ font-size: 0.875rem;
4174
+ transition: all 0.3s ease;
4175
+ cursor: pointer;
4176
+ border: 1px solid transparent;
4177
+ background: var(--white);
4178
+ color: var(--dark);
4179
+ }
4180
+
4181
+ .pagination-item:hover:not(.pagination-item-active) {
4182
+ background: var(--hoverable);
4183
+ transform: translateY(-1px);
4184
+ border-color: var(--primary);
4185
+ }
4186
+
4187
+ .pagination-item-active {
4188
+ background: var(--primary);
4189
+ color: var(--white);
4190
+ transform: scale(1.05);
4191
+ box-shadow: 0 4px 16px color-mix(in srgb, var(--primary) 30%, transparent);
4192
+ font-weight: 600;
4193
+ }
4194
+
4195
+ /* Mobile Responsive */
4196
+ @media (max-width: 768px) {
4197
+ .pagination-container {
4198
+ padding: 0.5rem 1rem;
4199
+ gap: 0.5rem;
4200
+ border-radius: 25px;
4201
+ }
4202
+
4203
+ .pagination-nav {
4204
+ min-width: 2rem;
4205
+ height: 2rem;
4206
+ font-size: 1rem;
4207
+ }
4208
+
4209
+ .pagination-item {
4210
+ min-width: 2rem;
4211
+ height: 2rem;
4212
+ font-size: 0.8rem;
4213
+ }
4214
+
4215
+ /* Hide middle page numbers on mobile */
4216
+ .pagination-item-mobile-hidden {
4217
+ display: none;
4218
+ }
4219
+ }
4220
+
4221
+ /* Dark Theme */
4222
+ .dark .pagination-container {
4223
+ background: var(--darker);
4224
+ border-color: var(--dark-border);
4225
+ }
4226
+
4227
+ .dark .pagination-nav {
4228
+ background: var(--dark);
4229
+ border-color: var(--dark-border);
4230
+ color: var(--white);
4231
+ }
4232
+
4233
+ .dark .pagination-item {
4234
+ background: var(--dark);
4235
+ color: var(--white);
4236
+ border-color: var(--dark-border);
4237
+ }
4238
+
4239
+ /* Animation */
4240
+ @keyframes pageChange {
4241
+ 0% { transform: scale(0.8); opacity: 0; }
4242
+ 100% { transform: scale(1); opacity: 1; }
4243
+ }
4244
+
4245
+ .pagination-item-active {
4246
+ animation: pageChange 0.3s ease-out;
3769
4247
  }
3770
4248
 
3771
4249
 
@@ -6029,12 +6507,14 @@ position: absolute;
6029
6507
  top: 50%;
6030
6508
  left: 0;
6031
6509
  transform: translateY(-50%);
6510
+ z-index: 10;
6032
6511
  }
6033
6512
  .carouselRight{
6034
6513
  position: absolute;
6035
6514
  top: 50%;
6036
6515
  right: 0;
6037
6516
  transform: translateY(-50%);
6517
+ z-index: 10;
6038
6518
  }
6039
6519
  .carousel-item {scroll-snap-align: start;flex: 0 0 auto;}
6040
6520
 
@@ -9755,3 +10235,4 @@ transform: translateY(-50%);
9755
10235
  -webkit-background-clip: text;
9756
10236
  }
9757
10237
 
10238
+
package/index.d.ts CHANGED
@@ -56,6 +56,6 @@ export { default as FlexItem } from "./ui/flex/FlexItem";
56
56
  export { default as ScrollToTop } from "./ui/scrolltotop/ScrollToTop";
57
57
  export { default as Select } from "./ui/select/Select";
58
58
  export { default as Cookie } from "./js/Cookie";
59
- export { useVariable } from "./ui/theme/theme";
59
+ export { useVariable, useAsset, useAssetType, useAssetValue, useAssets, useVariables, } from "./ui/theme/theme";
60
60
  export { FunGet } from "./js/Fun";
61
61
  export { default as GoogleAnalytics } from "./js/google/analytics";