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 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
- return /*#__PURE__*/React.createElement(ElevatedCard, null, /*#__PURE__*/React.createElement(ElevatedImageWrapper, null, /*#__PURE__*/React.createElement(ElevatedImage, {
296
- src: data.image,
297
- alt: data.title
298
- }), /*#__PURE__*/React.createElement(Badge, null, data.badge)), /*#__PURE__*/React.createElement(ElevatedContent, null, /*#__PURE__*/React.createElement(ElevatedTitle, null, data.title), /*#__PURE__*/React.createElement(ElevatedFeatures, null, /*#__PURE__*/React.createElement(Feature, null, /*#__PURE__*/React.createElement(fa.FaBed, null), " Kasur Lembut"), /*#__PURE__*/React.createElement(Feature, null, /*#__PURE__*/React.createElement(fa.FaWifi, null), " WiFi Gratis")), /*#__PURE__*/React.createElement(ElevatedFooter, null, /*#__PURE__*/React.createElement(Price, null, data.price, /*#__PURE__*/React.createElement("span", null, "/malam")), /*#__PURE__*/React.createElement(Rating, null, /*#__PURE__*/React.createElement(fa.FaStar, null), " ", data.rating))));
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__*/React.createElement(BorderedCard, null, /*#__PURE__*/React.createElement(BorderedContent, null, /*#__PURE__*/React.createElement(BorderedHeader, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BorderedTitle, null, data.title), /*#__PURE__*/React.createElement(BorderedLocation, null, /*#__PURE__*/React.createElement(fa.FaMapMarkerAlt, null), " ", data.location))), /*#__PURE__*/React.createElement(BorderedImage, {
301
- src: data.image,
302
- alt: data.title
303
- }), /*#__PURE__*/React.createElement(BorderedDescription, null, data.description), /*#__PURE__*/React.createElement(BorderedFooter, null, /*#__PURE__*/React.createElement(BorderedPrice, null, data.price), /*#__PURE__*/React.createElement(BookButton, null, "Pesan Sekarang"))));
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__*/React.createElement(GradientCard, null, /*#__PURE__*/React.createElement(GradientImageWrapper, null, /*#__PURE__*/React.createElement(GradientImage, {
306
- src: data.image,
307
- alt: data.title
308
- })), /*#__PURE__*/React.createElement(GradientContent, null, /*#__PURE__*/React.createElement(GradientTitle, null, data.title), /*#__PURE__*/React.createElement(GradientDescription, null, data.description), /*#__PURE__*/React.createElement(GradientFooter, null, /*#__PURE__*/React.createElement(GradientPrice, null, data.price), /*#__PURE__*/React.createElement(GradientRating, null, "\u2605 ", data.rating))));
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__*/React.createElement(SolidButton, {
516
- onClick: onClick
517
- }, /*#__PURE__*/React.createElement("span", null, data?.label || "Konfirmasi Pemesanan"), data?.icon || /*#__PURE__*/React.createElement(fa.FaChevronRight, null));
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__*/React.createElement(OutlineButton, {
520
- onClick: onClick
521
- }, data?.icon || /*#__PURE__*/React.createElement(fa.FaCheck, null), /*#__PURE__*/React.createElement("span", null, data?.label || "Tambah ke Favorit"));
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__*/React.createElement(PillButton, {
524
- onClick: onClick
525
- }, data?.icon || /*#__PURE__*/React.createElement(fa.FaDownload, null), /*#__PURE__*/React.createElement("span", null, data?.label || "Unduh"));
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__*/React.createElement(ModernHeader, null, /*#__PURE__*/React.createElement(ModernLogo, null, headerData.logo), /*#__PURE__*/React.createElement(ModernNav, null, headerData.links.map((link, idx) => {
907
- const {
908
- label,
909
- href
910
- } = normalizeLink$1(link);
911
- return /*#__PURE__*/React.createElement(ModernLink, {
912
- key: idx,
913
- href: href
914
- }, label);
915
- })), /*#__PURE__*/React.createElement(IconGroup, null, /*#__PURE__*/React.createElement(IconButton, null, /*#__PURE__*/React.createElement(fa.FaSearch, null)), /*#__PURE__*/React.createElement(IconButton, null, /*#__PURE__*/React.createElement(fa.FaBell, null)), /*#__PURE__*/React.createElement(IconButton, null, /*#__PURE__*/React.createElement(fa.FaBars, null))));
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__*/React.createElement(MinimalHeader, null, /*#__PURE__*/React.createElement(MinimalContainer, null, /*#__PURE__*/React.createElement(MinimalLogo, null, headerData.logo), /*#__PURE__*/React.createElement(MinimalNav, null, headerData.links.map((link, idx) => {
918
- const {
919
- label,
920
- href
921
- } = normalizeLink$1(link);
922
- return /*#__PURE__*/React.createElement(MinimalLink, {
923
- key: idx,
924
- href: href
925
- }, label);
926
- })), /*#__PURE__*/React.createElement(MinimalActions, null, /*#__PURE__*/React.createElement(MinimalButton, null, headerData.buttonText), /*#__PURE__*/React.createElement(MinimalMobileMenu, null, /*#__PURE__*/React.createElement(fa.FaBars, null)))));
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__*/React.createElement(GlassHeader, null, /*#__PURE__*/React.createElement(GlassLogo, null, headerData.logo), /*#__PURE__*/React.createElement(GlassNav, null, headerData.links.map((link, idx) => {
929
- const {
930
- label,
931
- href
932
- } = normalizeLink$1(link);
933
- return /*#__PURE__*/React.createElement(GlassLink, {
934
- key: idx,
935
- href: href
936
- }, label);
937
- }), /*#__PURE__*/React.createElement(GlassSearch, null, /*#__PURE__*/React.createElement(fa.FaSearch, {
938
- size: 14
939
- }), /*#__PURE__*/React.createElement("input", {
940
- type: "text",
941
- placeholder: headerData.searchPlaceholder
942
- }))), /*#__PURE__*/React.createElement(GlassMobileNav, null, headerData.links.map((link, idx) => {
943
- const {
944
- label,
945
- href
946
- } = normalizeLink$1(link);
947
- return /*#__PURE__*/React.createElement(GlassMobileLink, {
948
- key: idx,
949
- href: href
950
- }, label);
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__*/React.createElement(StackedFooter, null, /*#__PURE__*/React.createElement(StackedSection, null, /*#__PURE__*/React.createElement(StackedBrand, null, /*#__PURE__*/React.createElement("h2", null, footerData.brandName), /*#__PURE__*/React.createElement("p", null, footerData.brandDesc)), /*#__PURE__*/React.createElement(StackedLinks, null, footerData.linkGroups.map((group, idx) => /*#__PURE__*/React.createElement(LinkGroup, {
1406
- key: idx
1407
- }, /*#__PURE__*/React.createElement("h4", null, group.title), group.links.map((link, linkIdx) => {
1408
- const {
1409
- label,
1410
- href
1411
- } = normalizeLink(link);
1412
- return /*#__PURE__*/React.createElement("a", {
1413
- key: linkIdx,
1414
- href: href
1415
- }, label);
1416
- }))))), /*#__PURE__*/React.createElement(StackedBottom, null, /*#__PURE__*/React.createElement("div", null, footerData.copyright), /*#__PURE__*/React.createElement(SocialIcons, null, /*#__PURE__*/React.createElement("a", {
1417
- href: "#"
1418
- }, /*#__PURE__*/React.createElement(fa.FaFacebookF, null)), /*#__PURE__*/React.createElement("a", {
1419
- href: "#"
1420
- }, /*#__PURE__*/React.createElement(fa.FaInstagram, null)), /*#__PURE__*/React.createElement("a", {
1421
- href: "#"
1422
- }, /*#__PURE__*/React.createElement(fa.FaTwitter, null)), /*#__PURE__*/React.createElement("a", {
1423
- href: "#"
1424
- }, /*#__PURE__*/React.createElement(fa.FaLinkedin, null)))));
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__*/React.createElement(ColumnsFooter, null, /*#__PURE__*/React.createElement(ColumnsGrid, null, /*#__PURE__*/React.createElement(ColumnBox, null, /*#__PURE__*/React.createElement("h3", null, footerData.aboutTitle), /*#__PURE__*/React.createElement("p", null, footerData.aboutDesc), /*#__PURE__*/React.createElement(ContactItem, null, /*#__PURE__*/React.createElement(fa.FaPhone, null), /*#__PURE__*/React.createElement("span", null, footerData.phone)), /*#__PURE__*/React.createElement(ContactItem, null, /*#__PURE__*/React.createElement(fa.FaEnvelope, null), /*#__PURE__*/React.createElement("span", null, footerData.email)), /*#__PURE__*/React.createElement(ContactItem, null, /*#__PURE__*/React.createElement(fa.FaMapMarkerAlt, null), /*#__PURE__*/React.createElement("span", null, footerData.address))), footerData.columns.map((col, idx) => /*#__PURE__*/React.createElement(ColumnBox, {
1427
- key: idx
1428
- }, /*#__PURE__*/React.createElement("h3", null, col.title), col.links && col.links.map((link, linkIdx) => {
1429
- const {
1430
- label,
1431
- href
1432
- } = normalizeLink(link);
1433
- return /*#__PURE__*/React.createElement("a", {
1434
- key: linkIdx,
1435
- href: href
1436
- }, label);
1437
- }), col.desc && /*#__PURE__*/React.createElement("p", null, col.desc), idx === footerData.columns.length - 1 && /*#__PURE__*/React.createElement(SocialIcons, {
1438
- style: {
1439
- justifyContent: 'flex-start',
1440
- marginTop: '1.5rem'
1441
- }
1442
- }, /*#__PURE__*/React.createElement("a", {
1443
- href: "#"
1444
- }, /*#__PURE__*/React.createElement(fa.FaFacebookF, null)), /*#__PURE__*/React.createElement("a", {
1445
- href: "#"
1446
- }, /*#__PURE__*/React.createElement(fa.FaInstagram, null)), /*#__PURE__*/React.createElement("a", {
1447
- href: "#"
1448
- }, /*#__PURE__*/React.createElement(fa.FaTwitter, null)))))), /*#__PURE__*/React.createElement(ColumnsDivider, null, /*#__PURE__*/React.createElement("div", null, "\xA9 2025 Paradise Resort. Hak Cipta Dilindungi."), /*#__PURE__*/React.createElement("div", null, "Dirancang dengan \u2764\uFE0F untuk pengalaman mewah")));
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__*/React.createElement(CenteredFooter, null, /*#__PURE__*/React.createElement(CenteredContent, null, /*#__PURE__*/React.createElement(CenteredLogo, null, footerData.logo), /*#__PURE__*/React.createElement(CenteredTagline, null, footerData.tagline), /*#__PURE__*/React.createElement(CenteredNav, null, footerData.links.map((link, idx) => {
1451
- const {
1452
- label,
1453
- href
1454
- } = normalizeLink(link);
1455
- return /*#__PURE__*/React.createElement("a", {
1456
- key: idx,
1457
- href: href
1458
- }, label);
1459
- })), /*#__PURE__*/React.createElement(CenteredSocial, null, /*#__PURE__*/React.createElement("a", {
1460
- href: "#"
1461
- }, /*#__PURE__*/React.createElement(fa.FaFacebookF, null)), /*#__PURE__*/React.createElement("a", {
1462
- href: "#"
1463
- }, /*#__PURE__*/React.createElement(fa.FaInstagram, null)), /*#__PURE__*/React.createElement("a", {
1464
- href: "#"
1465
- }, /*#__PURE__*/React.createElement(fa.FaTwitter, null)), /*#__PURE__*/React.createElement("a", {
1466
- href: "#"
1467
- }, /*#__PURE__*/React.createElement(fa.FaLinkedin, null))), /*#__PURE__*/React.createElement(CenteredCopyright, null, footerData.copyright)));
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__*/React.createElement(fa.FaHome, null),
1497
- card: /*#__PURE__*/React.createElement(fa.FaBed, null),
1498
- button: /*#__PURE__*/React.createElement(fa.FaConciergeBell, null),
1499
- footer: /*#__PURE__*/React.createElement(fa.FaInfoCircle, null),
1500
- sidebar: /*#__PURE__*/React.createElement(fa.FaUser, null)
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__*/React.createElement(fa.FaHome, null)
1706
+ icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaHome, {})
1508
1707
  }, {
1509
1708
  name: "Card",
1510
1709
  href: "#",
1511
- icon: /*#__PURE__*/React.createElement(fa.FaBed, null)
1710
+ icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaBed, {})
1512
1711
  }, {
1513
1712
  name: "Button",
1514
1713
  href: "#",
1515
- icon: /*#__PURE__*/React.createElement(fa.FaConciergeBell, null)
1714
+ icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaConciergeBell, {})
1516
1715
  }, {
1517
1716
  name: "Footer",
1518
1717
  href: "#",
1519
- icon: /*#__PURE__*/React.createElement(fa.FaInfoCircle, null)
1718
+ icon: /*#__PURE__*/jsxRuntime.jsx(fa.FaInfoCircle, {})
1520
1719
  }, {
1521
1720
  name: "Sidebar",
1522
1721
  href: "#",
1523
- icon: /*#__PURE__*/React.createElement(fa.FaUser, null)
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__*/React.createElement(fa.FaHome, null);
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__*/React.createElement(CompactItemLink, {
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
- }, icon);
2130
+ onClick: () => onSelect?.(name.toLowerCase()),
2131
+ children: icon
2132
+ }, item.name || item.label || index);
1934
2133
  }
1935
- return /*#__PURE__*/React.createElement(CompactItemButton, {
1936
- key: item.name || item.label || index,
2134
+ return /*#__PURE__*/jsxRuntime.jsx(CompactItemButton, {
1937
2135
  "data-label": name,
1938
- onClick: () => onSelect?.(name.toLowerCase())
1939
- }, icon);
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__*/React.createElement(ExpandedItemLink, {
1947
- key: item.name || item.label || index,
2145
+ return /*#__PURE__*/jsxRuntime.jsxs(ExpandedItemLink, {
1948
2146
  href: item.href,
1949
- onClick: () => onSelect?.(name.toLowerCase())
1950
- }, /*#__PURE__*/React.createElement(ItemLeft, null, icon, /*#__PURE__*/React.createElement("span", null, name)), /*#__PURE__*/React.createElement(fa.FaChevronRight, {
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__*/React.createElement(FloatingItemLink, {
1973
- key: item.name || item.label || index,
2179
+ return /*#__PURE__*/jsxRuntime.jsxs(FloatingItemLink, {
1974
2180
  href: item.href,
1975
- onClick: () => onSelect?.(name.toLowerCase())
1976
- }, icon, /*#__PURE__*/React.createElement("span", null, name));
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__*/React.createElement(FloatingItemButton, {
1979
- key: item.name || item.label || index,
1980
- onClick: () => onSelect?.(name.toLowerCase())
1981
- }, icon, /*#__PURE__*/React.createElement("span", null, name));
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__*/React.createElement(CompactSidebar, null, /*#__PURE__*/React.createElement(CompactTitle, null, sidebarTitle), menuItems.map((item, index) => renderCompactItem(item, index)));
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__*/React.createElement(ExpandedSidebar, null, /*#__PURE__*/React.createElement(ExpandedTitle, null, sidebarTitle), /*#__PURE__*/React.createElement(ExpandedSection, null, /*#__PURE__*/React.createElement(SectionLabel, null, "Components"), menuItems.map((item, index) => renderExpandedItem(item, index))));
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__*/React.createElement(FloatingSidebar, null, /*#__PURE__*/React.createElement(FloatingTitle, null, sidebarTitle), menuItems.map((item, index) => renderFloatingItem(item, index)));
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
  }