styled-hairomin 0.3.0 → 0.3.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/dist/index.cjs.js +398 -171
- package/dist/index.esm.js +399 -172
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var styled = require('styled-components');
|
|
5
5
|
var fa = require('react-icons/fa');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
7
|
var Link = require('next/link');
|
|
7
8
|
|
|
8
9
|
const variantStyles$4 = {
|
|
@@ -292,20 +293,93 @@ function CardVariant({
|
|
|
292
293
|
}) {
|
|
293
294
|
switch (variant) {
|
|
294
295
|
case "elevated":
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
296
|
+
// Default features jika tidak ada di props
|
|
297
|
+
const defaultFeatures = [{
|
|
298
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaBed, {}),
|
|
299
|
+
label: "Kasur Lembut"
|
|
300
|
+
}, {
|
|
301
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaWifi, {}),
|
|
302
|
+
label: "WiFi Gratis"
|
|
303
|
+
}];
|
|
304
|
+
|
|
305
|
+
// Normalize features dari props
|
|
306
|
+
const features = data.features ? data.features.map(f => typeof f === 'string' ? {
|
|
307
|
+
icon: null,
|
|
308
|
+
label: f
|
|
309
|
+
} : f) : defaultFeatures;
|
|
310
|
+
const priceSuffix = data.priceSuffix || "/malam";
|
|
311
|
+
return /*#__PURE__*/jsxRuntime.jsxs(ElevatedCard, {
|
|
312
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(ElevatedImageWrapper, {
|
|
313
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(ElevatedImage, {
|
|
314
|
+
src: data.image,
|
|
315
|
+
alt: data.title
|
|
316
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Badge, {
|
|
317
|
+
children: data.badge
|
|
318
|
+
})]
|
|
319
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ElevatedContent, {
|
|
320
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(ElevatedTitle, {
|
|
321
|
+
children: data.title
|
|
322
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ElevatedFeatures, {
|
|
323
|
+
children: features.map((feature, idx) => /*#__PURE__*/jsxRuntime.jsxs(Feature, {
|
|
324
|
+
children: [feature.icon, feature.label]
|
|
325
|
+
}, idx))
|
|
326
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ElevatedFooter, {
|
|
327
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(Price, {
|
|
328
|
+
children: [data.price, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
329
|
+
children: priceSuffix
|
|
330
|
+
})]
|
|
331
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(Rating, {
|
|
332
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(fa.FaStar, {}), " ", data.rating]
|
|
333
|
+
})]
|
|
334
|
+
})]
|
|
335
|
+
})]
|
|
336
|
+
});
|
|
299
337
|
case "bordered":
|
|
300
|
-
return /*#__PURE__*/
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
338
|
+
return /*#__PURE__*/jsxRuntime.jsx(BorderedCard, {
|
|
339
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(BorderedContent, {
|
|
340
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(BorderedHeader, {
|
|
341
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
342
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(BorderedTitle, {
|
|
343
|
+
children: data.title
|
|
344
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(BorderedLocation, {
|
|
345
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(fa.FaMapMarkerAlt, {}), " ", data.location]
|
|
346
|
+
})]
|
|
347
|
+
})
|
|
348
|
+
}), /*#__PURE__*/jsxRuntime.jsx(BorderedImage, {
|
|
349
|
+
src: data.image,
|
|
350
|
+
alt: data.title
|
|
351
|
+
}), /*#__PURE__*/jsxRuntime.jsx(BorderedDescription, {
|
|
352
|
+
children: data.description
|
|
353
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(BorderedFooter, {
|
|
354
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(BorderedPrice, {
|
|
355
|
+
children: data.price
|
|
356
|
+
}), /*#__PURE__*/jsxRuntime.jsx(BookButton, {
|
|
357
|
+
children: "Pesan Sekarang"
|
|
358
|
+
})]
|
|
359
|
+
})]
|
|
360
|
+
})
|
|
361
|
+
});
|
|
304
362
|
case "gradient":
|
|
305
|
-
return /*#__PURE__*/
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
363
|
+
return /*#__PURE__*/jsxRuntime.jsxs(GradientCard, {
|
|
364
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(GradientImageWrapper, {
|
|
365
|
+
children: /*#__PURE__*/jsxRuntime.jsx(GradientImage, {
|
|
366
|
+
src: data.image,
|
|
367
|
+
alt: data.title
|
|
368
|
+
})
|
|
369
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(GradientContent, {
|
|
370
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(GradientTitle, {
|
|
371
|
+
children: data.title
|
|
372
|
+
}), /*#__PURE__*/jsxRuntime.jsx(GradientDescription, {
|
|
373
|
+
children: data.description
|
|
374
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(GradientFooter, {
|
|
375
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(GradientPrice, {
|
|
376
|
+
children: data.price
|
|
377
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(GradientRating, {
|
|
378
|
+
children: ["\u2605 ", data.rating]
|
|
379
|
+
})]
|
|
380
|
+
})]
|
|
381
|
+
})]
|
|
382
|
+
});
|
|
309
383
|
default:
|
|
310
384
|
return null;
|
|
311
385
|
}
|
|
@@ -512,17 +586,26 @@ function ButtonVariant({
|
|
|
512
586
|
}) {
|
|
513
587
|
switch (variant) {
|
|
514
588
|
case "solid":
|
|
515
|
-
return /*#__PURE__*/
|
|
516
|
-
onClick: onClick
|
|
517
|
-
|
|
589
|
+
return /*#__PURE__*/jsxRuntime.jsxs(SolidButton, {
|
|
590
|
+
onClick: onClick,
|
|
591
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
592
|
+
children: data?.label || "Konfirmasi Pemesanan"
|
|
593
|
+
}), data?.icon || /*#__PURE__*/jsxRuntime.jsx(fa.FaChevronRight, {})]
|
|
594
|
+
});
|
|
518
595
|
case "outline":
|
|
519
|
-
return /*#__PURE__*/
|
|
520
|
-
onClick: onClick
|
|
521
|
-
|
|
596
|
+
return /*#__PURE__*/jsxRuntime.jsxs(OutlineButton, {
|
|
597
|
+
onClick: onClick,
|
|
598
|
+
children: [data?.icon || /*#__PURE__*/jsxRuntime.jsx(fa.FaCheck, {}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
599
|
+
children: data?.label || "Tambah ke Favorit"
|
|
600
|
+
})]
|
|
601
|
+
});
|
|
522
602
|
case "pill":
|
|
523
|
-
return /*#__PURE__*/
|
|
524
|
-
onClick: onClick
|
|
525
|
-
|
|
603
|
+
return /*#__PURE__*/jsxRuntime.jsxs(PillButton, {
|
|
604
|
+
onClick: onClick,
|
|
605
|
+
children: [data?.icon || /*#__PURE__*/jsxRuntime.jsx(fa.FaDownload, {}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
606
|
+
children: data?.label || "Unduh"
|
|
607
|
+
})]
|
|
608
|
+
});
|
|
526
609
|
default:
|
|
527
610
|
return null;
|
|
528
611
|
}
|
|
@@ -903,52 +986,90 @@ function HeaderVariant({
|
|
|
903
986
|
const headerData = data || defaultData[variant];
|
|
904
987
|
switch (variant) {
|
|
905
988
|
case "modern":
|
|
906
|
-
return /*#__PURE__*/
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
989
|
+
return /*#__PURE__*/jsxRuntime.jsxs(ModernHeader, {
|
|
990
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(ModernLogo, {
|
|
991
|
+
children: headerData.logo
|
|
992
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ModernNav, {
|
|
993
|
+
children: headerData.links.map((link, idx) => {
|
|
994
|
+
const {
|
|
995
|
+
label,
|
|
996
|
+
href
|
|
997
|
+
} = normalizeLink$1(link);
|
|
998
|
+
return /*#__PURE__*/jsxRuntime.jsx(ModernLink, {
|
|
999
|
+
href: href,
|
|
1000
|
+
children: label
|
|
1001
|
+
}, idx);
|
|
1002
|
+
})
|
|
1003
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(IconGroup, {
|
|
1004
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(IconButton, {
|
|
1005
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaSearch, {})
|
|
1006
|
+
}), /*#__PURE__*/jsxRuntime.jsx(IconButton, {
|
|
1007
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaBell, {})
|
|
1008
|
+
}), /*#__PURE__*/jsxRuntime.jsx(IconButton, {
|
|
1009
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaBars, {})
|
|
1010
|
+
})]
|
|
1011
|
+
})]
|
|
1012
|
+
});
|
|
916
1013
|
case "minimal":
|
|
917
|
-
return /*#__PURE__*/
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
1014
|
+
return /*#__PURE__*/jsxRuntime.jsx(MinimalHeader, {
|
|
1015
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(MinimalContainer, {
|
|
1016
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(MinimalLogo, {
|
|
1017
|
+
children: headerData.logo
|
|
1018
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MinimalNav, {
|
|
1019
|
+
children: headerData.links.map((link, idx) => {
|
|
1020
|
+
const {
|
|
1021
|
+
label,
|
|
1022
|
+
href
|
|
1023
|
+
} = normalizeLink$1(link);
|
|
1024
|
+
return /*#__PURE__*/jsxRuntime.jsx(MinimalLink, {
|
|
1025
|
+
href: href,
|
|
1026
|
+
children: label
|
|
1027
|
+
}, idx);
|
|
1028
|
+
})
|
|
1029
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(MinimalActions, {
|
|
1030
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(MinimalButton, {
|
|
1031
|
+
children: headerData.buttonText
|
|
1032
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MinimalMobileMenu, {
|
|
1033
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaBars, {})
|
|
1034
|
+
})]
|
|
1035
|
+
})]
|
|
1036
|
+
})
|
|
1037
|
+
});
|
|
927
1038
|
case "glassmorphism":
|
|
928
|
-
return /*#__PURE__*/
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
1039
|
+
return /*#__PURE__*/jsxRuntime.jsxs(GlassHeader, {
|
|
1040
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(GlassLogo, {
|
|
1041
|
+
children: headerData.logo
|
|
1042
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(GlassNav, {
|
|
1043
|
+
children: [headerData.links.map((link, idx) => {
|
|
1044
|
+
const {
|
|
1045
|
+
label,
|
|
1046
|
+
href
|
|
1047
|
+
} = normalizeLink$1(link);
|
|
1048
|
+
return /*#__PURE__*/jsxRuntime.jsx(GlassLink, {
|
|
1049
|
+
href: href,
|
|
1050
|
+
children: label
|
|
1051
|
+
}, idx);
|
|
1052
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(GlassSearch, {
|
|
1053
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(fa.FaSearch, {
|
|
1054
|
+
size: 14
|
|
1055
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
1056
|
+
type: "text",
|
|
1057
|
+
placeholder: headerData.searchPlaceholder
|
|
1058
|
+
})]
|
|
1059
|
+
})]
|
|
1060
|
+
}), /*#__PURE__*/jsxRuntime.jsx(GlassMobileNav, {
|
|
1061
|
+
children: headerData.links.map((link, idx) => {
|
|
1062
|
+
const {
|
|
1063
|
+
label,
|
|
1064
|
+
href
|
|
1065
|
+
} = normalizeLink$1(link);
|
|
1066
|
+
return /*#__PURE__*/jsxRuntime.jsx(GlassMobileLink, {
|
|
1067
|
+
href: href,
|
|
1068
|
+
children: label
|
|
1069
|
+
}, idx);
|
|
1070
|
+
})
|
|
1071
|
+
})]
|
|
1072
|
+
});
|
|
952
1073
|
default:
|
|
953
1074
|
return null;
|
|
954
1075
|
}
|
|
@@ -1402,69 +1523,147 @@ function FooterVariant({
|
|
|
1402
1523
|
const footerData = data || defaultData[variant];
|
|
1403
1524
|
switch (variant) {
|
|
1404
1525
|
case "stacked":
|
|
1405
|
-
return /*#__PURE__*/
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1526
|
+
return /*#__PURE__*/jsxRuntime.jsxs(StackedFooter, {
|
|
1527
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(StackedSection, {
|
|
1528
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(StackedBrand, {
|
|
1529
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h2", {
|
|
1530
|
+
children: footerData.brandName
|
|
1531
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
1532
|
+
children: footerData.brandDesc
|
|
1533
|
+
})]
|
|
1534
|
+
}), /*#__PURE__*/jsxRuntime.jsx(StackedLinks, {
|
|
1535
|
+
children: footerData.linkGroups.map((group, idx) => /*#__PURE__*/jsxRuntime.jsxs(LinkGroup, {
|
|
1536
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h4", {
|
|
1537
|
+
children: group.title
|
|
1538
|
+
}), group.links.map((link, linkIdx) => {
|
|
1539
|
+
const {
|
|
1540
|
+
label,
|
|
1541
|
+
href
|
|
1542
|
+
} = normalizeLink(link);
|
|
1543
|
+
return /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1544
|
+
href: href,
|
|
1545
|
+
children: label
|
|
1546
|
+
}, linkIdx);
|
|
1547
|
+
})]
|
|
1548
|
+
}, idx))
|
|
1549
|
+
})]
|
|
1550
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(StackedBottom, {
|
|
1551
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1552
|
+
children: footerData.copyright
|
|
1553
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(SocialIcons, {
|
|
1554
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1555
|
+
href: "#",
|
|
1556
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaFacebookF, {})
|
|
1557
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1558
|
+
href: "#",
|
|
1559
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaInstagram, {})
|
|
1560
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1561
|
+
href: "#",
|
|
1562
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaTwitter, {})
|
|
1563
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1564
|
+
href: "#",
|
|
1565
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaLinkedin, {})
|
|
1566
|
+
})]
|
|
1567
|
+
})]
|
|
1568
|
+
})]
|
|
1569
|
+
});
|
|
1425
1570
|
case "columns":
|
|
1426
|
-
return /*#__PURE__*/
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1571
|
+
return /*#__PURE__*/jsxRuntime.jsxs(ColumnsFooter, {
|
|
1572
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(ColumnsGrid, {
|
|
1573
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(ColumnBox, {
|
|
1574
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
1575
|
+
children: footerData.aboutTitle
|
|
1576
|
+
}), /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
1577
|
+
children: footerData.aboutDesc
|
|
1578
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ContactItem, {
|
|
1579
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(fa.FaPhone, {}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
1580
|
+
children: footerData.phone
|
|
1581
|
+
})]
|
|
1582
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ContactItem, {
|
|
1583
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(fa.FaEnvelope, {}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
1584
|
+
children: footerData.email
|
|
1585
|
+
})]
|
|
1586
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ContactItem, {
|
|
1587
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(fa.FaMapMarkerAlt, {}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
1588
|
+
children: footerData.address
|
|
1589
|
+
})]
|
|
1590
|
+
})]
|
|
1591
|
+
}), footerData.columns.map((col, idx) => /*#__PURE__*/jsxRuntime.jsxs(ColumnBox, {
|
|
1592
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
|
|
1593
|
+
children: col.title
|
|
1594
|
+
}), col.links && col.links.map((link, linkIdx) => {
|
|
1595
|
+
const {
|
|
1596
|
+
label,
|
|
1597
|
+
href
|
|
1598
|
+
} = normalizeLink(link);
|
|
1599
|
+
return /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1600
|
+
href: href,
|
|
1601
|
+
children: label
|
|
1602
|
+
}, linkIdx);
|
|
1603
|
+
}), col.desc && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
1604
|
+
children: col.desc
|
|
1605
|
+
}), idx === footerData.columns.length - 1 && /*#__PURE__*/jsxRuntime.jsxs(SocialIcons, {
|
|
1606
|
+
style: {
|
|
1607
|
+
justifyContent: 'flex-start',
|
|
1608
|
+
marginTop: '1.5rem'
|
|
1609
|
+
},
|
|
1610
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1611
|
+
href: "#",
|
|
1612
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaFacebookF, {})
|
|
1613
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1614
|
+
href: "#",
|
|
1615
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaInstagram, {})
|
|
1616
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1617
|
+
href: "#",
|
|
1618
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaTwitter, {})
|
|
1619
|
+
})]
|
|
1620
|
+
})]
|
|
1621
|
+
}, idx))]
|
|
1622
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ColumnsDivider, {
|
|
1623
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1624
|
+
children: "\xA9 2025 Paradise Resort. Hak Cipta Dilindungi."
|
|
1625
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1626
|
+
children: "Dirancang dengan \u2764\uFE0F untuk pengalaman mewah"
|
|
1627
|
+
})]
|
|
1628
|
+
})]
|
|
1629
|
+
});
|
|
1449
1630
|
case "centered":
|
|
1450
|
-
return /*#__PURE__*/
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1631
|
+
return /*#__PURE__*/jsxRuntime.jsx(CenteredFooter, {
|
|
1632
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(CenteredContent, {
|
|
1633
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(CenteredLogo, {
|
|
1634
|
+
children: footerData.logo
|
|
1635
|
+
}), /*#__PURE__*/jsxRuntime.jsx(CenteredTagline, {
|
|
1636
|
+
children: footerData.tagline
|
|
1637
|
+
}), /*#__PURE__*/jsxRuntime.jsx(CenteredNav, {
|
|
1638
|
+
children: footerData.links.map((link, idx) => {
|
|
1639
|
+
const {
|
|
1640
|
+
label,
|
|
1641
|
+
href
|
|
1642
|
+
} = normalizeLink(link);
|
|
1643
|
+
return /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1644
|
+
href: href,
|
|
1645
|
+
children: label
|
|
1646
|
+
}, idx);
|
|
1647
|
+
})
|
|
1648
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(CenteredSocial, {
|
|
1649
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1650
|
+
href: "#",
|
|
1651
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaFacebookF, {})
|
|
1652
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1653
|
+
href: "#",
|
|
1654
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaInstagram, {})
|
|
1655
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1656
|
+
href: "#",
|
|
1657
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaTwitter, {})
|
|
1658
|
+
}), /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
1659
|
+
href: "#",
|
|
1660
|
+
children: /*#__PURE__*/jsxRuntime.jsx(fa.FaLinkedin, {})
|
|
1661
|
+
})]
|
|
1662
|
+
}), /*#__PURE__*/jsxRuntime.jsx(CenteredCopyright, {
|
|
1663
|
+
children: footerData.copyright
|
|
1664
|
+
})]
|
|
1665
|
+
})
|
|
1666
|
+
});
|
|
1468
1667
|
default:
|
|
1469
1668
|
return null;
|
|
1470
1669
|
}
|
|
@@ -1493,34 +1692,34 @@ const variantStyles = {
|
|
|
1493
1692
|
|
|
1494
1693
|
// Default icons mapping
|
|
1495
1694
|
const defaultIcons = {
|
|
1496
|
-
header: /*#__PURE__*/
|
|
1497
|
-
card: /*#__PURE__*/
|
|
1498
|
-
button: /*#__PURE__*/
|
|
1499
|
-
footer: /*#__PURE__*/
|
|
1500
|
-
sidebar: /*#__PURE__*/
|
|
1695
|
+
header: /*#__PURE__*/jsxRuntime.jsx(fa.FaHome, {}),
|
|
1696
|
+
card: /*#__PURE__*/jsxRuntime.jsx(fa.FaBed, {}),
|
|
1697
|
+
button: /*#__PURE__*/jsxRuntime.jsx(fa.FaConciergeBell, {}),
|
|
1698
|
+
footer: /*#__PURE__*/jsxRuntime.jsx(fa.FaInfoCircle, {}),
|
|
1699
|
+
sidebar: /*#__PURE__*/jsxRuntime.jsx(fa.FaUser, {})
|
|
1501
1700
|
};
|
|
1502
1701
|
|
|
1503
1702
|
// Default items fallback
|
|
1504
1703
|
const defaultItems = [{
|
|
1505
1704
|
name: "Header",
|
|
1506
1705
|
href: "#",
|
|
1507
|
-
icon: /*#__PURE__*/
|
|
1706
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaHome, {})
|
|
1508
1707
|
}, {
|
|
1509
1708
|
name: "Card",
|
|
1510
1709
|
href: "#",
|
|
1511
|
-
icon: /*#__PURE__*/
|
|
1710
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaBed, {})
|
|
1512
1711
|
}, {
|
|
1513
1712
|
name: "Button",
|
|
1514
1713
|
href: "#",
|
|
1515
|
-
icon: /*#__PURE__*/
|
|
1714
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaConciergeBell, {})
|
|
1516
1715
|
}, {
|
|
1517
1716
|
name: "Footer",
|
|
1518
1717
|
href: "#",
|
|
1519
|
-
icon: /*#__PURE__*/
|
|
1718
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaInfoCircle, {})
|
|
1520
1719
|
}, {
|
|
1521
1720
|
name: "Sidebar",
|
|
1522
1721
|
href: "#",
|
|
1523
|
-
icon: /*#__PURE__*/
|
|
1722
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaUser, {})
|
|
1524
1723
|
}];
|
|
1525
1724
|
const CompactSidebar = styled.aside`
|
|
1526
1725
|
font-family: "Inter", sans-serif;
|
|
@@ -1902,7 +2101,7 @@ const FloatingItemButton = styled.button`
|
|
|
1902
2101
|
const getItemIcon = item => {
|
|
1903
2102
|
if (item.icon) return item.icon;
|
|
1904
2103
|
const name = (item.name || item.label || "").toLowerCase();
|
|
1905
|
-
return defaultIcons[name] || /*#__PURE__*/
|
|
2104
|
+
return defaultIcons[name] || /*#__PURE__*/jsxRuntime.jsx(fa.FaHome, {});
|
|
1906
2105
|
};
|
|
1907
2106
|
|
|
1908
2107
|
// Helper function to get item display name
|
|
@@ -1925,68 +2124,96 @@ function SidebarVariant({
|
|
|
1925
2124
|
const name = getItemName(item);
|
|
1926
2125
|
const hasHref = item.href && item.href !== "";
|
|
1927
2126
|
if (hasHref) {
|
|
1928
|
-
return /*#__PURE__*/
|
|
1929
|
-
key: item.name || item.label || index,
|
|
2127
|
+
return /*#__PURE__*/jsxRuntime.jsx(CompactItemLink, {
|
|
1930
2128
|
href: item.href,
|
|
1931
2129
|
"data-label": name,
|
|
1932
|
-
onClick: () => onSelect?.(name.toLowerCase())
|
|
1933
|
-
|
|
2130
|
+
onClick: () => onSelect?.(name.toLowerCase()),
|
|
2131
|
+
children: icon
|
|
2132
|
+
}, item.name || item.label || index);
|
|
1934
2133
|
}
|
|
1935
|
-
return /*#__PURE__*/
|
|
1936
|
-
key: item.name || item.label || index,
|
|
2134
|
+
return /*#__PURE__*/jsxRuntime.jsx(CompactItemButton, {
|
|
1937
2135
|
"data-label": name,
|
|
1938
|
-
onClick: () => onSelect?.(name.toLowerCase())
|
|
1939
|
-
|
|
2136
|
+
onClick: () => onSelect?.(name.toLowerCase()),
|
|
2137
|
+
children: icon
|
|
2138
|
+
}, item.name || item.label || index);
|
|
1940
2139
|
};
|
|
1941
2140
|
const renderExpandedItem = (item, index) => {
|
|
1942
2141
|
const icon = getItemIcon(item);
|
|
1943
2142
|
const name = getItemName(item);
|
|
1944
2143
|
const hasHref = item.href && item.href !== "";
|
|
1945
2144
|
if (hasHref) {
|
|
1946
|
-
return /*#__PURE__*/
|
|
1947
|
-
key: item.name || item.label || index,
|
|
2145
|
+
return /*#__PURE__*/jsxRuntime.jsxs(ExpandedItemLink, {
|
|
1948
2146
|
href: item.href,
|
|
1949
|
-
onClick: () => onSelect?.(name.toLowerCase())
|
|
1950
|
-
|
|
2147
|
+
onClick: () => onSelect?.(name.toLowerCase()),
|
|
2148
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(ItemLeft, {
|
|
2149
|
+
children: [icon, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
2150
|
+
children: name
|
|
2151
|
+
})]
|
|
2152
|
+
}), /*#__PURE__*/jsxRuntime.jsx(fa.FaChevronRight, {
|
|
2153
|
+
size: 14,
|
|
2154
|
+
style: {
|
|
2155
|
+
opacity: 0.5
|
|
2156
|
+
}
|
|
2157
|
+
})]
|
|
2158
|
+
}, item.name || item.label || index);
|
|
2159
|
+
}
|
|
2160
|
+
return /*#__PURE__*/jsxRuntime.jsxs(ExpandedItemButton, {
|
|
2161
|
+
onClick: () => onSelect?.(name.toLowerCase()),
|
|
2162
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(ItemLeft, {
|
|
2163
|
+
children: [icon, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
2164
|
+
children: name
|
|
2165
|
+
})]
|
|
2166
|
+
}), /*#__PURE__*/jsxRuntime.jsx(fa.FaChevronRight, {
|
|
1951
2167
|
size: 14,
|
|
1952
2168
|
style: {
|
|
1953
2169
|
opacity: 0.5
|
|
1954
2170
|
}
|
|
1955
|
-
})
|
|
1956
|
-
}
|
|
1957
|
-
return /*#__PURE__*/React.createElement(ExpandedItemButton, {
|
|
1958
|
-
key: item.name || item.label || index,
|
|
1959
|
-
onClick: () => onSelect?.(name.toLowerCase())
|
|
1960
|
-
}, /*#__PURE__*/React.createElement(ItemLeft, null, icon, /*#__PURE__*/React.createElement("span", null, name)), /*#__PURE__*/React.createElement(fa.FaChevronRight, {
|
|
1961
|
-
size: 14,
|
|
1962
|
-
style: {
|
|
1963
|
-
opacity: 0.5
|
|
1964
|
-
}
|
|
1965
|
-
}));
|
|
2171
|
+
})]
|
|
2172
|
+
}, item.name || item.label || index);
|
|
1966
2173
|
};
|
|
1967
2174
|
const renderFloatingItem = (item, index) => {
|
|
1968
2175
|
const icon = getItemIcon(item);
|
|
1969
2176
|
const name = getItemName(item);
|
|
1970
2177
|
const hasHref = item.href && item.href !== "";
|
|
1971
2178
|
if (hasHref) {
|
|
1972
|
-
return /*#__PURE__*/
|
|
1973
|
-
key: item.name || item.label || index,
|
|
2179
|
+
return /*#__PURE__*/jsxRuntime.jsxs(FloatingItemLink, {
|
|
1974
2180
|
href: item.href,
|
|
1975
|
-
onClick: () => onSelect?.(name.toLowerCase())
|
|
1976
|
-
|
|
2181
|
+
onClick: () => onSelect?.(name.toLowerCase()),
|
|
2182
|
+
children: [icon, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
2183
|
+
children: name
|
|
2184
|
+
})]
|
|
2185
|
+
}, item.name || item.label || index);
|
|
1977
2186
|
}
|
|
1978
|
-
return /*#__PURE__*/
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
2187
|
+
return /*#__PURE__*/jsxRuntime.jsxs(FloatingItemButton, {
|
|
2188
|
+
onClick: () => onSelect?.(name.toLowerCase()),
|
|
2189
|
+
children: [icon, /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
2190
|
+
children: name
|
|
2191
|
+
})]
|
|
2192
|
+
}, item.name || item.label || index);
|
|
1982
2193
|
};
|
|
1983
2194
|
switch (variant) {
|
|
1984
2195
|
case "compact":
|
|
1985
|
-
return /*#__PURE__*/
|
|
2196
|
+
return /*#__PURE__*/jsxRuntime.jsxs(CompactSidebar, {
|
|
2197
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(CompactTitle, {
|
|
2198
|
+
children: sidebarTitle
|
|
2199
|
+
}), menuItems.map((item, index) => renderCompactItem(item, index))]
|
|
2200
|
+
});
|
|
1986
2201
|
case "expanded":
|
|
1987
|
-
return /*#__PURE__*/
|
|
2202
|
+
return /*#__PURE__*/jsxRuntime.jsxs(ExpandedSidebar, {
|
|
2203
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(ExpandedTitle, {
|
|
2204
|
+
children: sidebarTitle
|
|
2205
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(ExpandedSection, {
|
|
2206
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(SectionLabel, {
|
|
2207
|
+
children: "Components"
|
|
2208
|
+
}), menuItems.map((item, index) => renderExpandedItem(item, index))]
|
|
2209
|
+
})]
|
|
2210
|
+
});
|
|
1988
2211
|
case "floating":
|
|
1989
|
-
return /*#__PURE__*/
|
|
2212
|
+
return /*#__PURE__*/jsxRuntime.jsxs(FloatingSidebar, {
|
|
2213
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(FloatingTitle, {
|
|
2214
|
+
children: sidebarTitle
|
|
2215
|
+
}), menuItems.map((item, index) => renderFloatingItem(item, index))]
|
|
2216
|
+
});
|
|
1990
2217
|
default:
|
|
1991
2218
|
return null;
|
|
1992
2219
|
}
|