funuicss 3.8.2 → 3.8.3

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
@@ -1190,200 +1190,6 @@ border-radius: var(--borderRadius);
1190
1190
  cursor: zoom-out;
1191
1191
  }
1192
1192
 
1193
- .navigation-bar {
1194
- width: 100%;
1195
- display: flex;
1196
- flex-direction: row;
1197
- justify-content: flex-start;
1198
- align-items: center;
1199
- padding: 0.5rem 5%;
1200
- gap: 2rem;
1201
- backdrop-filter: blur(0.2rem);
1202
- transition: all 0.3s ease;
1203
- max-height: 100vh;
1204
- overflow-y: auto;
1205
- }
1206
-
1207
- .linkWrapper {
1208
- display: none;
1209
- animation: SlideRight 0.2s linear;
1210
- }
1211
-
1212
- .sidebar-trigger {
1213
- display: block;
1214
- cursor: pointer;
1215
- }
1216
-
1217
- /* AppBar Dropdown Styles */
1218
- .nav_item {
1219
- position: relative;
1220
- }
1221
-
1222
- .nav_item.has-dropdown .nav_link {
1223
- cursor: pointer;
1224
- }
1225
-
1226
- .nav_link-arrow {
1227
- transition: transform 0.3s ease;
1228
- margin-left: 0.25rem;
1229
- }
1230
-
1231
- .nav_item.dropdown-open .nav_link-arrow {
1232
- transform: rotate(180deg);
1233
- }
1234
-
1235
- /* Dropdown Menu */
1236
- .nav_dropdown-menu {
1237
- position: absolute;
1238
- top: 100%;
1239
- left: 0;
1240
- background: var(--page-bg);
1241
- border: var(--border);
1242
- border-radius: 0.5rem;
1243
- box-shadow: var(--card);
1244
- min-width: 200px;
1245
- z-index: 1000;
1246
- opacity: 0;
1247
- transform: translateY(-10px);
1248
- font-size: var(--minifiedFontSize);
1249
- visibility: hidden;
1250
- transition: all 0.3s ease;
1251
- }
1252
-
1253
- .nav_item.dropdown-open .nav_dropdown-menu {
1254
- opacity: 1;
1255
- transform: translateY(0);
1256
- visibility: visible;
1257
- }
1258
-
1259
- /* Dropdown Links */
1260
- .nav_dropdown-menu .nav_item {
1261
- border-bottom: var(--border);
1262
- }
1263
-
1264
- .nav_dropdown-menu .nav_item:last-child {
1265
- border-bottom: none;
1266
- }
1267
-
1268
- .nav_dropdown-menu .nav_link {
1269
- display: block;
1270
- text-decoration: none;
1271
- transition: all 0.2s ease;
1272
- border-radius: 0;
1273
- }
1274
-
1275
- .nav_dropdown-menu .nav_link:hover {
1276
- background: var(--lighter);
1277
- color: var(--primary) !important;
1278
- }
1279
-
1280
- .nav_dropdown-menu .nav_link.active {
1281
- background: var(--primary100);
1282
- color: var(--primary);
1283
- font-weight: 500;
1284
- }
1285
-
1286
- /* Nested Dropdowns */
1287
- .nav_dropdown-menu .nav_dropdown-menu {
1288
- top: 0;
1289
- left: 100%;
1290
- margin-left: 0.25rem;
1291
- }
1292
-
1293
- .nav_dropdown-menu .nav_item.has-dropdown .nav_link {
1294
- display: flex;
1295
- justify-content: space-between;
1296
- align-items: center;
1297
- }
1298
-
1299
- /* Mobile Dropdown Styles */
1300
- .nav_dropdown-mobile {
1301
- position: static !important;
1302
- box-shadow: none !important;
1303
- border: none !important;
1304
- background: var(--raiseOpaque) !important;
1305
- margin-left: 1rem;
1306
- margin-top: 0.5rem;
1307
- opacity: 1 !important;
1308
- transform: none !important;
1309
- visibility: visible !important;
1310
- max-height: 0;
1311
- overflow: hidden;
1312
- transition: 0.3s ease;
1313
- }
1314
-
1315
- .nav_item.dropdown-open .nav_dropdown-mobile {
1316
- max-height: 500px;
1317
- }
1318
-
1319
-
1320
- /* Mobile Menu */
1321
- /* .nav_mobile-menu {
1322
- position: fixed;
1323
- top: 0;
1324
- left: 0;
1325
- right: 0;
1326
- bottom: 0;
1327
- background: var(--raiseOpaque);
1328
- z-index: 999;
1329
- overflow-y: auto;
1330
- padding: 1rem;
1331
- border-top: var(--border);
1332
- } */
1333
-
1334
- .nav_mobile-menu .nav_links {
1335
- align-items: flex-start !important;
1336
- }
1337
-
1338
- .nav_mobile-menu .nav_item {
1339
- width: 100%;
1340
- }
1341
-
1342
- .nav_mobile-menu .nav_link {
1343
- width: 100%;
1344
- justify-content: space-between;
1345
- padding: 1rem !important;
1346
- border-bottom: var(--border);
1347
- }
1348
-
1349
- /* Active Link Styles */
1350
- .nav_link.active {
1351
- color: var(--primary) !important;
1352
- font-weight: 500;
1353
- }
1354
-
1355
- /* Hover Effects */
1356
- .nav_link:hover {
1357
- color: var(--primary) !important;
1358
- }
1359
-
1360
- /* Icon Styles */
1361
- .nav_link-icon {
1362
- display: flex;
1363
- align-items: center;
1364
- transition: transform 0.2s ease;
1365
- }
1366
-
1367
- .nav_link:hover .nav_link-icon.prefix {
1368
- transform: translateX(-2px);
1369
- }
1370
-
1371
- .nav_link:hover .nav_link-icon.suffix {
1372
- transform: translateX(2px);
1373
- }
1374
-
1375
- /* Smooth Transitions */
1376
- .nav_link,
1377
- .nav_link-content,
1378
- .nav_dropdown-menu {
1379
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1380
- }
1381
-
1382
- /* Focus States */
1383
- .nav_link:focus {
1384
- outline-offset: 2px;
1385
- }
1386
-
1387
1193
  /* Video Component Styles */
1388
1194
  .video_player {
1389
1195
  border-radius: 1rem;
@@ -1653,6 +1459,184 @@ border-radius: var(--borderRadius);
1653
1459
 
1654
1460
 
1655
1461
 
1462
+ .navigation-bar {
1463
+ width: 100%;
1464
+ display: flex;
1465
+ flex-direction: row;
1466
+ justify-content: flex-start;
1467
+ align-items: center;
1468
+ padding: 0.5rem 5%;
1469
+ gap: 2rem;
1470
+ backdrop-filter: blur(0.2rem);
1471
+ transition: all 0.3s ease;
1472
+ max-height: 100vh;
1473
+ overflow-y: auto;
1474
+ }
1475
+
1476
+ .linkWrapper {
1477
+ display: none;
1478
+ animation: SlideRight 0.2s linear;
1479
+ }
1480
+
1481
+ .sidebar-trigger {
1482
+ display: block;
1483
+ cursor: pointer;
1484
+ }
1485
+
1486
+ /* AppBar Dropdown Styles */
1487
+ .nav_item {
1488
+ position: relative;
1489
+ }
1490
+
1491
+ .nav_item.has-dropdown .nav_link {
1492
+ cursor: pointer;
1493
+ }
1494
+
1495
+ .nav_link-arrow {
1496
+ transition: transform 0.3s ease;
1497
+ margin-left: 0.25rem;
1498
+ }
1499
+
1500
+ .nav_item.dropdown-open .nav_link-arrow {
1501
+ transform: rotate(180deg);
1502
+ }
1503
+
1504
+ /* Dropdown Menu */
1505
+ .nav_dropdown-menu {
1506
+ position: absolute;
1507
+ top: 100%;
1508
+ left: 0;
1509
+ background: var(--page-bg);
1510
+ border: var(--border);
1511
+ border-radius: 0.5rem;
1512
+ box-shadow: var(--card);
1513
+ min-width: 200px;
1514
+ z-index: 1000;
1515
+ opacity: 0;
1516
+ transform: translateY(-10px);
1517
+ font-size: var(--minifiedFontSize);
1518
+ visibility: hidden;
1519
+ transition: all 0.3s ease;
1520
+ }
1521
+
1522
+ .nav_item.dropdown-open .nav_dropdown-menu {
1523
+ opacity: 1;
1524
+ transform: translateY(0);
1525
+ visibility: visible;
1526
+ }
1527
+
1528
+ /* Dropdown Links */
1529
+ .nav_dropdown-menu .nav_item {
1530
+ border-bottom: var(--border);
1531
+ }
1532
+
1533
+ .nav_dropdown-menu .nav_item:last-child {
1534
+ border-bottom: none;
1535
+ }
1536
+
1537
+ .nav_dropdown-menu .nav_link {
1538
+ display: block;
1539
+ text-decoration: none;
1540
+ transition: all 0.2s ease;
1541
+ border-radius: 0;
1542
+ }
1543
+
1544
+ .nav_dropdown-menu .nav_link:hover {
1545
+ background: var(--lighter);
1546
+ color: var(--primary) !important;
1547
+ }
1548
+
1549
+ .nav_dropdown-menu .nav_link.active {
1550
+ background: var(--primary100);
1551
+ color: var(--primary);
1552
+ font-weight: 500;
1553
+ }
1554
+
1555
+ /* Nested Dropdowns */
1556
+ .nav_dropdown-menu .nav_dropdown-menu {
1557
+ top: 0;
1558
+ left: 100%;
1559
+ margin-left: 0.25rem;
1560
+ }
1561
+
1562
+ .nav_dropdown-menu .nav_item.has-dropdown .nav_link {
1563
+ display: flex;
1564
+ justify-content: space-between;
1565
+ align-items: center;
1566
+ }
1567
+
1568
+ /* Mobile Dropdown Styles */
1569
+ .nav_dropdown-mobile {
1570
+ position: static !important;
1571
+ box-shadow: none !important;
1572
+ border: none !important;
1573
+ background: var(--raiseOpaque) !important;
1574
+ margin-left: 1rem;
1575
+ margin-top: 0.5rem;
1576
+ opacity: 1 !important;
1577
+ transform: none !important;
1578
+ visibility: visible !important;
1579
+ max-height: 0;
1580
+ overflow: hidden;
1581
+ transition: 0.3s ease;
1582
+ }
1583
+
1584
+ .nav_item.dropdown-open .nav_dropdown-mobile {
1585
+ max-height: 500px;
1586
+ }
1587
+ .nav_mobile-menu .nav_links {
1588
+ align-items: flex-start !important;
1589
+ }
1590
+
1591
+ .nav_mobile-menu .nav_item {
1592
+ width: 100%;
1593
+ }
1594
+
1595
+ .nav_mobile-menu .nav_link {
1596
+ width: 100%;
1597
+ justify-content: space-between;
1598
+ padding: 1rem !important;
1599
+ border-bottom: var(--border);
1600
+ }
1601
+
1602
+ /* Active Link Styles */
1603
+ .nav_link.active {
1604
+ color: var(--primary) !important;
1605
+ font-weight: 500;
1606
+ }
1607
+
1608
+ /* Hover Effects */
1609
+ .nav_link:hover {
1610
+ color: var(--primary) !important;
1611
+ }
1612
+
1613
+ /* Icon Styles */
1614
+ .nav_link-icon {
1615
+ display: flex;
1616
+ align-items: center;
1617
+ transition: transform 0.2s ease;
1618
+ }
1619
+
1620
+ .nav_link:hover .nav_link-icon.prefix {
1621
+ transform: translateX(-2px);
1622
+ }
1623
+
1624
+ .nav_link:hover .nav_link-icon.suffix {
1625
+ transform: translateX(2px);
1626
+ }
1627
+
1628
+ /* Smooth Transitions */
1629
+ .nav_link,
1630
+ .nav_link-content,
1631
+ .nav_dropdown-menu {
1632
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1633
+ }
1634
+
1635
+ /* Focus States */
1636
+ .nav_link:focus {
1637
+ outline-offset: 2px;
1638
+ }
1639
+
1656
1640
 
1657
1641
  /* Mobile layout when menu is open */
1658
1642
  .navbar-mobile-open {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.8.2",
2
+ "version": "3.8.3",
3
3
  "name": "funuicss",
4
4
  "description": "React and Next.js component UI Library for creating Easy and good looking websites with fewer lines of code. Elevate your web development experience with our cutting-edge React/Next.js component UI Library. Craft stunning websites effortlessly, boasting both seamless functionality and aesthetic appeal—all achieved with minimal lines of code. Unleash the power of simplicity and style in your projects!",
5
5
  "main": "index.js",
@@ -1,32 +1,75 @@
1
1
  import React from 'react';
2
- export type AccordionItemProps = {
3
- title: string;
2
+ type AccordionItemType = {
3
+ title: string | React.ReactNode;
4
4
  content: React.ReactNode;
5
- isOpen?: boolean;
6
- onToggle?: () => void;
7
- index?: number;
8
- icon?: React.ReactNode;
5
+ icon?: string | React.ReactNode;
9
6
  itemClass?: string;
10
7
  titleClass?: string;
11
8
  iconClass?: string;
12
9
  contentClass?: string;
13
10
  activeClass?: string;
11
+ iconColor?: string;
12
+ iconSize?: number;
13
+ iconClassName?: string;
14
+ expandIcon?: string | React.ReactNode;
15
+ expandIconColor?: string;
16
+ expandIconSize?: number;
17
+ expandIconClassName?: string;
18
+ titleSize?: string;
19
+ titleWeight?: number;
20
+ titleColor?: string;
21
+ contentSize?: string;
22
+ contentWeight?: number;
23
+ contentColor?: string;
24
+ animationDuration?: number;
25
+ animationEasing?: string;
26
+ disabled?: boolean;
27
+ customRender?: (isOpen: boolean) => React.ReactNode;
14
28
  };
15
- export declare const AccordionItem: React.FC<AccordionItemProps>;
16
- export type AccordionProps = {
17
- items: {
18
- title: string;
19
- content: React.ReactNode;
20
- icon?: React.ReactNode;
21
- }[];
29
+ type AccordionProps = {
30
+ items: AccordionItemType[] | string;
22
31
  allowMultiple?: boolean;
23
32
  defaultOpenIndexes?: number[];
33
+ variant?: string;
34
+ icon?: string | React.ReactNode;
35
+ iconColor?: string;
36
+ iconSize?: number;
37
+ iconClassName?: string;
38
+ iconPosition?: 'left' | 'right' | 'none';
39
+ expandIcon?: string | React.ReactNode;
40
+ expandIconColor?: string;
41
+ expandIconSize?: number;
42
+ expandIconClassName?: string;
43
+ expandIconRotate?: boolean;
24
44
  itemClass?: string;
25
45
  titleClass?: string;
26
46
  iconClass?: string;
27
47
  contentClass?: string;
28
48
  activeClass?: string;
49
+ titleSize?: string;
50
+ titleWeight?: number;
51
+ titleColor?: string;
52
+ titleClassName?: string;
53
+ contentSize?: string;
54
+ contentWeight?: number;
55
+ contentColor?: string;
56
+ contentClassName?: string;
57
+ gap?: string;
58
+ padding?: string;
59
+ margin?: string;
60
+ border?: boolean;
61
+ borderColor?: string;
62
+ borderRadius?: string;
63
+ shadow?: 'sm' | 'md' | 'lg' | 'xl' | 'none';
64
+ animationDuration?: number;
65
+ animationEasing?: string;
66
+ className?: string;
29
67
  funcss?: string;
68
+ style?: React.CSSProperties;
69
+ onItemToggle?: (index: number, isOpen: boolean) => void;
70
+ onAllClose?: () => void;
71
+ onAllOpen?: () => void;
30
72
  };
31
73
  declare const Accordion: React.FC<AccordionProps>;
32
74
  export default Accordion;
75
+ export type { AccordionItemType, AccordionProps };