@reblu/site-blocks 0.9.0 → 0.11.0
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/CHANGELOG.md +14 -0
- package/README.md +104 -1
- package/dist/index.cjs +475 -202
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +78 -11
- package/dist/index.d.ts +78 -11
- package/dist/index.js +472 -202
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.cjs
CHANGED
|
@@ -29,11 +29,14 @@ __export(src_exports, {
|
|
|
29
29
|
DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE: () => DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE,
|
|
30
30
|
DEFAULT_SHOP_ERROR_MESSAGES: () => DEFAULT_SHOP_ERROR_MESSAGES,
|
|
31
31
|
DEFAULT_SHOP_PRICE_BANDS: () => DEFAULT_SHOP_PRICE_BANDS,
|
|
32
|
+
DEFAULT_TRUST_ICONS: () => DEFAULT_TRUST_ICONS,
|
|
32
33
|
FaqAccordion: () => FaqAccordion,
|
|
33
34
|
MarkdownRenderer: () => MarkdownRenderer,
|
|
34
35
|
OrderConfirmation: () => OrderConfirmation,
|
|
35
36
|
PageBlocks: () => PageBlocks,
|
|
37
|
+
ParentPage: () => ParentPage,
|
|
36
38
|
ProductCard: () => ProductCard,
|
|
39
|
+
ProductTrustItems: () => ProductTrustItems,
|
|
37
40
|
ProfileCard: () => ProfileCard,
|
|
38
41
|
SafeHtml: () => SafeHtml,
|
|
39
42
|
ShopFilters: () => ShopFilters,
|
|
@@ -13371,25 +13374,32 @@ function Treatment({ page, className }) {
|
|
|
13371
13374
|
] });
|
|
13372
13375
|
}
|
|
13373
13376
|
|
|
13374
|
-
// src/components/
|
|
13377
|
+
// src/components/parent-page.tsx
|
|
13375
13378
|
var import_utils4 = require("@reblu/site-ui/utils");
|
|
13376
13379
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
13377
|
-
|
|
13380
|
+
var defaultChildPageHref = (slug) => `/${slug}`;
|
|
13381
|
+
function ParentPage({
|
|
13378
13382
|
page,
|
|
13379
|
-
|
|
13380
|
-
|
|
13381
|
-
|
|
13383
|
+
childPages,
|
|
13384
|
+
childPageHref,
|
|
13385
|
+
childPagesLabel,
|
|
13386
|
+
treatments,
|
|
13387
|
+
treatmentHref,
|
|
13388
|
+
treatmentsLabel,
|
|
13382
13389
|
className
|
|
13383
13390
|
}) {
|
|
13391
|
+
const pages = childPages ?? treatments ?? [];
|
|
13392
|
+
const hrefFor = childPageHref ?? treatmentHref ?? defaultChildPageHref;
|
|
13393
|
+
const label = childPagesLabel ?? treatmentsLabel ?? "Treatments";
|
|
13384
13394
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("article", { className: (0, import_utils4.cn)("space-y-12", className), "data-slot": "specialty", children: [
|
|
13385
13395
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PageHero, { page }),
|
|
13386
13396
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PageSectionList, { sections: page.sections }),
|
|
13387
|
-
|
|
13388
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { className: "text-2xl font-bold", children:
|
|
13389
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: "grid list-none grid-cols-1 gap-6 p-0 sm:grid-cols-2 lg:grid-cols-3", children:
|
|
13397
|
+
pages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("section", { className: "space-y-6", children: [
|
|
13398
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { className: "text-2xl font-bold", children: label }),
|
|
13399
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("ul", { className: "grid list-none grid-cols-1 gap-6 p-0 sm:grid-cols-2 lg:grid-cols-3", children: pages.map((t) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
13390
13400
|
"a",
|
|
13391
13401
|
{
|
|
13392
|
-
href:
|
|
13402
|
+
href: hrefFor(t.slug),
|
|
13393
13403
|
className: "group flex h-full flex-col overflow-hidden rounded-lg border bg-card transition-shadow hover:shadow-lg",
|
|
13394
13404
|
children: [
|
|
13395
13405
|
t.coverImageUrl && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "relative aspect-video overflow-hidden bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
@@ -13412,6 +13422,9 @@ function Specialty({
|
|
|
13412
13422
|
] });
|
|
13413
13423
|
}
|
|
13414
13424
|
|
|
13425
|
+
// src/components/specialty.tsx
|
|
13426
|
+
var Specialty = ParentPage;
|
|
13427
|
+
|
|
13415
13428
|
// src/components/profile-card.tsx
|
|
13416
13429
|
var import_utils5 = require("@reblu/site-ui/utils");
|
|
13417
13430
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
@@ -13492,11 +13505,246 @@ function ProductCard({ product, href, currencyCode = "EUR", locale, className })
|
|
|
13492
13505
|
);
|
|
13493
13506
|
}
|
|
13494
13507
|
|
|
13508
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
13509
|
+
var import_react2 = require("react");
|
|
13510
|
+
|
|
13511
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
13512
|
+
var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
13513
|
+
var toCamelCase = (string) => string.replace(
|
|
13514
|
+
/^([A-Z])|[\s-_]+(\w)/g,
|
|
13515
|
+
(match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
|
|
13516
|
+
);
|
|
13517
|
+
var toPascalCase = (string) => {
|
|
13518
|
+
const camelCase = toCamelCase(string);
|
|
13519
|
+
return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
|
|
13520
|
+
};
|
|
13521
|
+
var mergeClasses = (...classes) => classes.filter((className, index, array) => {
|
|
13522
|
+
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
13523
|
+
}).join(" ").trim();
|
|
13524
|
+
var hasA11yProp = (props) => {
|
|
13525
|
+
for (const prop in props) {
|
|
13526
|
+
if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
|
|
13527
|
+
return true;
|
|
13528
|
+
}
|
|
13529
|
+
}
|
|
13530
|
+
};
|
|
13531
|
+
|
|
13532
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.js
|
|
13533
|
+
var import_react = require("react");
|
|
13534
|
+
|
|
13535
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/defaultAttributes.js
|
|
13536
|
+
var defaultAttributes = {
|
|
13537
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
13538
|
+
width: 24,
|
|
13539
|
+
height: 24,
|
|
13540
|
+
viewBox: "0 0 24 24",
|
|
13541
|
+
fill: "none",
|
|
13542
|
+
stroke: "currentColor",
|
|
13543
|
+
strokeWidth: 2,
|
|
13544
|
+
strokeLinecap: "round",
|
|
13545
|
+
strokeLinejoin: "round"
|
|
13546
|
+
};
|
|
13547
|
+
|
|
13548
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/Icon.js
|
|
13549
|
+
var Icon = (0, import_react.forwardRef)(
|
|
13550
|
+
({
|
|
13551
|
+
color: color2 = "currentColor",
|
|
13552
|
+
size = 24,
|
|
13553
|
+
strokeWidth = 2,
|
|
13554
|
+
absoluteStrokeWidth,
|
|
13555
|
+
className = "",
|
|
13556
|
+
children: children2,
|
|
13557
|
+
iconNode,
|
|
13558
|
+
...rest
|
|
13559
|
+
}, ref) => (0, import_react.createElement)(
|
|
13560
|
+
"svg",
|
|
13561
|
+
{
|
|
13562
|
+
ref,
|
|
13563
|
+
...defaultAttributes,
|
|
13564
|
+
width: size,
|
|
13565
|
+
height: size,
|
|
13566
|
+
stroke: color2,
|
|
13567
|
+
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
|
|
13568
|
+
className: mergeClasses("lucide", className),
|
|
13569
|
+
...!children2 && !hasA11yProp(rest) && { "aria-hidden": "true" },
|
|
13570
|
+
...rest
|
|
13571
|
+
},
|
|
13572
|
+
[
|
|
13573
|
+
...iconNode.map(([tag, attrs]) => (0, import_react.createElement)(tag, attrs)),
|
|
13574
|
+
...Array.isArray(children2) ? children2 : [children2]
|
|
13575
|
+
]
|
|
13576
|
+
)
|
|
13577
|
+
);
|
|
13578
|
+
|
|
13579
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
13580
|
+
var createLucideIcon = (iconName, iconNode) => {
|
|
13581
|
+
const Component = (0, import_react2.forwardRef)(
|
|
13582
|
+
({ className, ...props }, ref) => (0, import_react2.createElement)(Icon, {
|
|
13583
|
+
ref,
|
|
13584
|
+
iconNode,
|
|
13585
|
+
className: mergeClasses(
|
|
13586
|
+
`lucide-${toKebabCase(toPascalCase(iconName))}`,
|
|
13587
|
+
`lucide-${iconName}`,
|
|
13588
|
+
className
|
|
13589
|
+
),
|
|
13590
|
+
...props
|
|
13591
|
+
})
|
|
13592
|
+
);
|
|
13593
|
+
Component.displayName = toPascalCase(iconName);
|
|
13594
|
+
return Component;
|
|
13595
|
+
};
|
|
13596
|
+
|
|
13597
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/award.js
|
|
13598
|
+
var __iconNode = [
|
|
13599
|
+
[
|
|
13600
|
+
"path",
|
|
13601
|
+
{
|
|
13602
|
+
d: "m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",
|
|
13603
|
+
key: "1yiouv"
|
|
13604
|
+
}
|
|
13605
|
+
],
|
|
13606
|
+
["circle", { cx: "12", cy: "8", r: "6", key: "1vp47v" }]
|
|
13607
|
+
];
|
|
13608
|
+
var Award = createLucideIcon("award", __iconNode);
|
|
13609
|
+
|
|
13610
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/badge-check.js
|
|
13611
|
+
var __iconNode2 = [
|
|
13612
|
+
[
|
|
13613
|
+
"path",
|
|
13614
|
+
{
|
|
13615
|
+
d: "M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",
|
|
13616
|
+
key: "3c2336"
|
|
13617
|
+
}
|
|
13618
|
+
],
|
|
13619
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
13620
|
+
];
|
|
13621
|
+
var BadgeCheck = createLucideIcon("badge-check", __iconNode2);
|
|
13622
|
+
|
|
13623
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/gift.js
|
|
13624
|
+
var __iconNode3 = [
|
|
13625
|
+
["rect", { x: "3", y: "8", width: "18", height: "4", rx: "1", key: "bkv52" }],
|
|
13626
|
+
["path", { d: "M12 8v13", key: "1c76mn" }],
|
|
13627
|
+
["path", { d: "M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7", key: "6wjy6b" }],
|
|
13628
|
+
[
|
|
13629
|
+
"path",
|
|
13630
|
+
{
|
|
13631
|
+
d: "M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",
|
|
13632
|
+
key: "1ihvrl"
|
|
13633
|
+
}
|
|
13634
|
+
]
|
|
13635
|
+
];
|
|
13636
|
+
var Gift = createLucideIcon("gift", __iconNode3);
|
|
13637
|
+
|
|
13638
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/headset.js
|
|
13639
|
+
var __iconNode4 = [
|
|
13640
|
+
[
|
|
13641
|
+
"path",
|
|
13642
|
+
{
|
|
13643
|
+
d: "M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",
|
|
13644
|
+
key: "12oyoe"
|
|
13645
|
+
}
|
|
13646
|
+
],
|
|
13647
|
+
["path", { d: "M21 16v2a4 4 0 0 1-4 4h-5", key: "1x7m43" }]
|
|
13648
|
+
];
|
|
13649
|
+
var Headset = createLucideIcon("headset", __iconNode4);
|
|
13650
|
+
|
|
13651
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js
|
|
13652
|
+
var __iconNode5 = [
|
|
13653
|
+
["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
|
|
13654
|
+
["path", { d: "M3 3v5h5", key: "1xhq8a" }]
|
|
13655
|
+
];
|
|
13656
|
+
var RotateCcw = createLucideIcon("rotate-ccw", __iconNode5);
|
|
13657
|
+
|
|
13658
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/shield-check.js
|
|
13659
|
+
var __iconNode6 = [
|
|
13660
|
+
[
|
|
13661
|
+
"path",
|
|
13662
|
+
{
|
|
13663
|
+
d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
|
|
13664
|
+
key: "oel41y"
|
|
13665
|
+
}
|
|
13666
|
+
],
|
|
13667
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
13668
|
+
];
|
|
13669
|
+
var ShieldCheck = createLucideIcon("shield-check", __iconNode6);
|
|
13670
|
+
|
|
13671
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/store.js
|
|
13672
|
+
var __iconNode7 = [
|
|
13673
|
+
["path", { d: "M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5", key: "slp6dd" }],
|
|
13674
|
+
[
|
|
13675
|
+
"path",
|
|
13676
|
+
{
|
|
13677
|
+
d: "M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",
|
|
13678
|
+
key: "o0xfot"
|
|
13679
|
+
}
|
|
13680
|
+
],
|
|
13681
|
+
["path", { d: "M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05", key: "wn3emo" }]
|
|
13682
|
+
];
|
|
13683
|
+
var Store = createLucideIcon("store", __iconNode7);
|
|
13684
|
+
|
|
13685
|
+
// ../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/truck.js
|
|
13686
|
+
var __iconNode8 = [
|
|
13687
|
+
["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
|
|
13688
|
+
["path", { d: "M15 18H9", key: "1lyqi6" }],
|
|
13689
|
+
[
|
|
13690
|
+
"path",
|
|
13691
|
+
{
|
|
13692
|
+
d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",
|
|
13693
|
+
key: "lysw3i"
|
|
13694
|
+
}
|
|
13695
|
+
],
|
|
13696
|
+
["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
|
|
13697
|
+
["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
|
|
13698
|
+
];
|
|
13699
|
+
var Truck = createLucideIcon("truck", __iconNode8);
|
|
13700
|
+
|
|
13701
|
+
// src/components/product-trust-items.tsx
|
|
13702
|
+
var import_utils9 = require("@reblu/site-ui/utils");
|
|
13703
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
13704
|
+
var DEFAULT_TRUST_ICONS = Object.freeze({
|
|
13705
|
+
shipping: Truck,
|
|
13706
|
+
returns: RotateCcw,
|
|
13707
|
+
"secure-payment": ShieldCheck,
|
|
13708
|
+
support: Headset,
|
|
13709
|
+
gift: Gift,
|
|
13710
|
+
pickup: Store,
|
|
13711
|
+
warranty: BadgeCheck,
|
|
13712
|
+
quality: Award
|
|
13713
|
+
});
|
|
13714
|
+
function isKnownIcon(icon) {
|
|
13715
|
+
return Object.prototype.hasOwnProperty.call(DEFAULT_TRUST_ICONS, icon);
|
|
13716
|
+
}
|
|
13717
|
+
function isEntryObject(value) {
|
|
13718
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
13719
|
+
}
|
|
13720
|
+
function ProductTrustItems({
|
|
13721
|
+
items,
|
|
13722
|
+
icons,
|
|
13723
|
+
as: List = "ul",
|
|
13724
|
+
className,
|
|
13725
|
+
itemClassName
|
|
13726
|
+
}) {
|
|
13727
|
+
if (!Array.isArray(items) || items.length === 0) return null;
|
|
13728
|
+
const rows = items.flatMap((item, index) => {
|
|
13729
|
+
if (!isEntryObject(item)) return [];
|
|
13730
|
+
const icon = item.icon;
|
|
13731
|
+
const text3 = typeof item.text === "string" ? item.text.trim() : "";
|
|
13732
|
+
if (typeof icon !== "string" || !isKnownIcon(icon) || text3 === "") return [];
|
|
13733
|
+
const Icon2 = icons?.[icon] ?? DEFAULT_TRUST_ICONS[icon];
|
|
13734
|
+
return [{ key: `${index}-${icon}`, Icon: Icon2, text: text3 }];
|
|
13735
|
+
});
|
|
13736
|
+
if (rows.length === 0) return null;
|
|
13737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(List, { "data-slot": "product-trust-items", className: (0, import_utils9.cn)("space-y-2.5", className), children: rows.map(({ key: key2, Icon: Icon2, text: text3 }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("li", { className: (0, import_utils9.cn)("flex items-center gap-3 text-sm text-muted-foreground", itemClassName), children: [
|
|
13738
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon2, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 text-foreground/60" }),
|
|
13739
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: text3 })
|
|
13740
|
+
] }, key2)) });
|
|
13741
|
+
}
|
|
13742
|
+
|
|
13495
13743
|
// src/components/faq-accordion.tsx
|
|
13496
|
-
var
|
|
13744
|
+
var import_utils10 = require("@reblu/site-ui/utils");
|
|
13497
13745
|
|
|
13498
13746
|
// src/components/_heading.tsx
|
|
13499
|
-
var
|
|
13747
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
13500
13748
|
function nextHeadingLevel(level) {
|
|
13501
13749
|
return Math.min(level + 1, 6);
|
|
13502
13750
|
}
|
|
@@ -13506,11 +13754,11 @@ function Heading({
|
|
|
13506
13754
|
children: children2
|
|
13507
13755
|
}) {
|
|
13508
13756
|
const Tag = `h${level}`;
|
|
13509
|
-
return /* @__PURE__ */ (0,
|
|
13757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Tag, { className, children: children2 });
|
|
13510
13758
|
}
|
|
13511
13759
|
|
|
13512
13760
|
// src/components/faq-accordion.tsx
|
|
13513
|
-
var
|
|
13761
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
13514
13762
|
function FaqAccordion({
|
|
13515
13763
|
items,
|
|
13516
13764
|
heading,
|
|
@@ -13521,18 +13769,18 @@ function FaqAccordion({
|
|
|
13521
13769
|
}) {
|
|
13522
13770
|
const visible = items.map((item, index) => ({ item, index })).filter(({ item }) => item.q.trim() !== "");
|
|
13523
13771
|
if (visible.length === 0) return null;
|
|
13524
|
-
return /* @__PURE__ */ (0,
|
|
13525
|
-
heading && /* @__PURE__ */ (0,
|
|
13526
|
-
/* @__PURE__ */ (0,
|
|
13772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: (0, import_utils10.cn)("space-y-4", className), "data-slot": "faq-accordion", children: [
|
|
13773
|
+
heading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Heading, { level: headingLevel, className: "text-2xl font-semibold tracking-tight", children: heading }),
|
|
13774
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "divide-y divide-border rounded-xl border border-border", children: visible.map(({ item, index }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
13527
13775
|
"details",
|
|
13528
13776
|
{
|
|
13529
13777
|
className: "group px-4",
|
|
13530
13778
|
"data-slot": "faq-item",
|
|
13531
13779
|
...defaultOpen.includes(index) ? { open: true } : {},
|
|
13532
13780
|
children: [
|
|
13533
|
-
/* @__PURE__ */ (0,
|
|
13534
|
-
questionHeadingLevel ? /* @__PURE__ */ (0,
|
|
13535
|
-
/* @__PURE__ */ (0,
|
|
13781
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 py-4 font-medium focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring [&::-webkit-details-marker]:hidden", children: [
|
|
13782
|
+
questionHeadingLevel ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Heading, { level: questionHeadingLevel, className: "text-base font-medium", children: item.q }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: item.q }),
|
|
13783
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
13536
13784
|
"span",
|
|
13537
13785
|
{
|
|
13538
13786
|
"aria-hidden": "true",
|
|
@@ -13541,7 +13789,7 @@ function FaqAccordion({
|
|
|
13541
13789
|
}
|
|
13542
13790
|
)
|
|
13543
13791
|
] }),
|
|
13544
|
-
/* @__PURE__ */ (0,
|
|
13792
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "whitespace-pre-line pb-4 text-muted-foreground", children: item.a })
|
|
13545
13793
|
]
|
|
13546
13794
|
},
|
|
13547
13795
|
index
|
|
@@ -13550,40 +13798,40 @@ function FaqAccordion({
|
|
|
13550
13798
|
}
|
|
13551
13799
|
|
|
13552
13800
|
// src/components/page-blocks.tsx
|
|
13553
|
-
var
|
|
13801
|
+
var import_utils11 = require("@reblu/site-ui/utils");
|
|
13554
13802
|
var import_button_variants2 = require("@reblu/site-ui/button-variants");
|
|
13555
|
-
var
|
|
13803
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
13556
13804
|
var ALIASES = {
|
|
13557
13805
|
doctor_embed: "profile_embed",
|
|
13558
13806
|
specialty_embed: "page_embed"
|
|
13559
13807
|
};
|
|
13560
13808
|
function HeroBlock({ block, headingLevel }) {
|
|
13561
13809
|
const { title, subtitle, imageUrl } = block.data;
|
|
13562
|
-
return /* @__PURE__ */ (0,
|
|
13563
|
-
/* @__PURE__ */ (0,
|
|
13564
|
-
subtitle && /* @__PURE__ */ (0,
|
|
13565
|
-
imageUrl && /* @__PURE__ */ (0,
|
|
13810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "space-y-4", children: [
|
|
13811
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading, { level: headingLevel, className: "text-3xl font-bold tracking-tight md:text-4xl", children: title }),
|
|
13812
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "text-lg opacity-80", children: subtitle }),
|
|
13813
|
+
imageUrl && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("img", { src: imageUrl, alt: "", loading: "lazy", className: "h-full w-full object-cover" }) })
|
|
13566
13814
|
] });
|
|
13567
13815
|
}
|
|
13568
13816
|
function RichtextBlock({ block, headingLevel }) {
|
|
13569
|
-
return /* @__PURE__ */ (0,
|
|
13817
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SafeHtml, { html: sanitizeHtml(block.data.html), headingOffset: headingLevel - 1 });
|
|
13570
13818
|
}
|
|
13571
13819
|
function FaqBlock({ block }) {
|
|
13572
|
-
return /* @__PURE__ */ (0,
|
|
13820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FaqAccordion, { items: block.data.items });
|
|
13573
13821
|
}
|
|
13574
13822
|
function StatsBlock({ block }) {
|
|
13575
|
-
return /* @__PURE__ */ (0,
|
|
13576
|
-
/* @__PURE__ */ (0,
|
|
13577
|
-
/* @__PURE__ */ (0,
|
|
13823
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("dl", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-4", children: block.data.items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex flex-col-reverse gap-1", children: [
|
|
13824
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("dt", { className: "text-sm opacity-80", children: item.label }),
|
|
13825
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("dd", { className: "text-3xl font-bold", children: item.value })
|
|
13578
13826
|
] }, i)) });
|
|
13579
13827
|
}
|
|
13580
13828
|
function TestimonialBlock({ block }) {
|
|
13581
13829
|
const { quote, author, role, avatarUrl } = block.data;
|
|
13582
|
-
return /* @__PURE__ */ (0,
|
|
13583
|
-
/* @__PURE__ */ (0,
|
|
13584
|
-
/* @__PURE__ */ (0,
|
|
13830
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("figure", { className: "space-y-4", children: [
|
|
13831
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("blockquote", { className: "text-xl italic", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { children: quote }) }),
|
|
13832
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("figcaption", { className: "flex items-center gap-3", children: [
|
|
13585
13833
|
avatarUrl && // eslint-disable-next-line @next/next/no-img-element
|
|
13586
|
-
/* @__PURE__ */ (0,
|
|
13834
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
13587
13835
|
"img",
|
|
13588
13836
|
{
|
|
13589
13837
|
src: avatarUrl,
|
|
@@ -13592,9 +13840,9 @@ function TestimonialBlock({ block }) {
|
|
|
13592
13840
|
className: "h-10 w-10 rounded-full object-cover"
|
|
13593
13841
|
}
|
|
13594
13842
|
),
|
|
13595
|
-
/* @__PURE__ */ (0,
|
|
13596
|
-
/* @__PURE__ */ (0,
|
|
13597
|
-
role && /* @__PURE__ */ (0,
|
|
13843
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { children: [
|
|
13844
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "font-semibold", children: author }),
|
|
13845
|
+
role && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "block text-sm opacity-80", children: role })
|
|
13598
13846
|
] })
|
|
13599
13847
|
] })
|
|
13600
13848
|
] });
|
|
@@ -13603,19 +13851,19 @@ function CtaSlotBlock(_props) {
|
|
|
13603
13851
|
return null;
|
|
13604
13852
|
}
|
|
13605
13853
|
function FeatureListBlock({ block }) {
|
|
13606
|
-
return /* @__PURE__ */ (0,
|
|
13854
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("ul", { className: "grid list-disc gap-2 pl-5 sm:grid-cols-2", children: block.data.items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("li", { children: item.text }, i)) });
|
|
13607
13855
|
}
|
|
13608
13856
|
function GalleryBlock({ block }) {
|
|
13609
13857
|
const { images } = block.data;
|
|
13610
|
-
return /* @__PURE__ */ (0,
|
|
13858
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
13611
13859
|
"div",
|
|
13612
13860
|
{
|
|
13613
|
-
className: (0,
|
|
13861
|
+
className: (0, import_utils11.cn)(
|
|
13614
13862
|
"grid gap-4",
|
|
13615
13863
|
images.length > 1 ? "sm:grid-cols-2 lg:grid-cols-3" : "grid-cols-1"
|
|
13616
13864
|
),
|
|
13617
|
-
children: images.map((img, i) => /* @__PURE__ */ (0,
|
|
13618
|
-
/* @__PURE__ */ (0,
|
|
13865
|
+
children: images.map((img, i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("figure", { className: "space-y-1", children: [
|
|
13866
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
13619
13867
|
"img",
|
|
13620
13868
|
{
|
|
13621
13869
|
src: img.url,
|
|
@@ -13624,7 +13872,7 @@ function GalleryBlock({ block }) {
|
|
|
13624
13872
|
className: "h-full w-full object-cover"
|
|
13625
13873
|
}
|
|
13626
13874
|
) }),
|
|
13627
|
-
img.caption && /* @__PURE__ */ (0,
|
|
13875
|
+
img.caption && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("figcaption", { className: "text-sm opacity-80", children: img.caption })
|
|
13628
13876
|
] }, `${img.url}-${i}`))
|
|
13629
13877
|
}
|
|
13630
13878
|
);
|
|
@@ -13634,13 +13882,13 @@ function EmbedCard({
|
|
|
13634
13882
|
headingLevel,
|
|
13635
13883
|
embedHref
|
|
13636
13884
|
}) {
|
|
13637
|
-
return /* @__PURE__ */ (0,
|
|
13885
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
13638
13886
|
"a",
|
|
13639
13887
|
{
|
|
13640
13888
|
href: embedHref(resolved),
|
|
13641
13889
|
className: "group block overflow-hidden rounded-xl border border-border bg-card text-card-foreground transition-shadow hover:shadow-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",
|
|
13642
13890
|
children: [
|
|
13643
|
-
resolved.coverImageUrl && /* @__PURE__ */ (0,
|
|
13891
|
+
resolved.coverImageUrl && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "aspect-video w-full overflow-hidden bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
13644
13892
|
"img",
|
|
13645
13893
|
{
|
|
13646
13894
|
src: resolved.coverImageUrl,
|
|
@@ -13649,24 +13897,24 @@ function EmbedCard({
|
|
|
13649
13897
|
className: "h-full w-full object-cover"
|
|
13650
13898
|
}
|
|
13651
13899
|
) }),
|
|
13652
|
-
/* @__PURE__ */ (0,
|
|
13653
|
-
/* @__PURE__ */ (0,
|
|
13654
|
-
resolved.role && /* @__PURE__ */ (0,
|
|
13655
|
-
resolved.excerpt && /* @__PURE__ */ (0,
|
|
13900
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "space-y-1 p-4", children: [
|
|
13901
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading, { level: headingLevel, className: "text-lg font-semibold", children: resolved.title }),
|
|
13902
|
+
resolved.role && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "text-sm text-muted-foreground", children: resolved.role }),
|
|
13903
|
+
resolved.excerpt && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "text-muted-foreground", children: resolved.excerpt })
|
|
13656
13904
|
] })
|
|
13657
13905
|
]
|
|
13658
13906
|
}
|
|
13659
13907
|
);
|
|
13660
13908
|
}
|
|
13661
13909
|
function PageEmbedBlock({ block, headingLevel, embedHref }) {
|
|
13662
|
-
return /* @__PURE__ */ (0,
|
|
13910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
13663
13911
|
}
|
|
13664
13912
|
function ProfileEmbedBlock({
|
|
13665
13913
|
block,
|
|
13666
13914
|
headingLevel,
|
|
13667
13915
|
embedHref
|
|
13668
13916
|
}) {
|
|
13669
|
-
return /* @__PURE__ */ (0,
|
|
13917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
13670
13918
|
}
|
|
13671
13919
|
var DEFAULT_RENDERERS = {
|
|
13672
13920
|
hero: HeroBlock,
|
|
@@ -13723,14 +13971,14 @@ function toIdFragment(value) {
|
|
|
13723
13971
|
function SectionCta2({ cta }) {
|
|
13724
13972
|
if (!hasUsableCta(cta)) return null;
|
|
13725
13973
|
const variant = toButtonVariant(cta.variant);
|
|
13726
|
-
return /* @__PURE__ */ (0,
|
|
13974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
13727
13975
|
"a",
|
|
13728
13976
|
{
|
|
13729
13977
|
href: cta.url,
|
|
13730
13978
|
"data-slot": "button",
|
|
13731
13979
|
"data-variant": variant,
|
|
13732
13980
|
"data-size": "default",
|
|
13733
|
-
className: (0,
|
|
13981
|
+
className: (0, import_utils11.cn)((0, import_button_variants2.buttonVariants)({ variant, size: "default" })),
|
|
13734
13982
|
...cta.isExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
13735
13983
|
children: cta.label
|
|
13736
13984
|
}
|
|
@@ -13756,17 +14004,17 @@ function PageBlocks({
|
|
|
13756
14004
|
const headingId = block.heading ? `${safePrefix}-${toIdFragment(block.id)}-heading` : void 0;
|
|
13757
14005
|
const background = block.backgroundColor;
|
|
13758
14006
|
return [
|
|
13759
|
-
/* @__PURE__ */ (0,
|
|
14007
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
13760
14008
|
"section",
|
|
13761
14009
|
{
|
|
13762
14010
|
"data-slot": "page-block",
|
|
13763
14011
|
"data-block-type": type,
|
|
13764
14012
|
"aria-labelledby": headingId,
|
|
13765
14013
|
style: surfaceStyle(background),
|
|
13766
|
-
className: (0,
|
|
14014
|
+
className: (0, import_utils11.cn)("space-y-6", background && "rounded-xl px-6 py-10", sectionClassName),
|
|
13767
14015
|
children: [
|
|
13768
|
-
block.heading && /* @__PURE__ */ (0,
|
|
13769
|
-
/* @__PURE__ */ (0,
|
|
14016
|
+
block.heading && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading, { level: headingLevel, className: "text-2xl font-bold tracking-tight", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { id: headingId, children: block.heading }) }),
|
|
14017
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
13770
14018
|
Renderer,
|
|
13771
14019
|
{
|
|
13772
14020
|
block,
|
|
@@ -13774,7 +14022,7 @@ function PageBlocks({
|
|
|
13774
14022
|
embedHref
|
|
13775
14023
|
}
|
|
13776
14024
|
),
|
|
13777
|
-
/* @__PURE__ */ (0,
|
|
14025
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SectionCta2, { cta: block.cta })
|
|
13778
14026
|
]
|
|
13779
14027
|
},
|
|
13780
14028
|
block.id
|
|
@@ -13782,12 +14030,12 @@ function PageBlocks({
|
|
|
13782
14030
|
];
|
|
13783
14031
|
});
|
|
13784
14032
|
if (sections.length === 0) return null;
|
|
13785
|
-
return /* @__PURE__ */ (0,
|
|
14033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: (0, import_utils11.cn)("space-y-12", className), "data-slot": "page-blocks", children: sections });
|
|
13786
14034
|
}
|
|
13787
14035
|
|
|
13788
14036
|
// src/components/shop-filters.tsx
|
|
13789
|
-
var
|
|
13790
|
-
var
|
|
14037
|
+
var import_utils12 = require("@reblu/site-ui/utils");
|
|
14038
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
13791
14039
|
var DEFAULT_SHOP_PRICE_BANDS = [
|
|
13792
14040
|
{ max: 2500 },
|
|
13793
14041
|
{ min: 2500, max: 5e3 },
|
|
@@ -13831,7 +14079,7 @@ function priceBandLabel(band, t, currencyCode, locale) {
|
|
|
13831
14079
|
return "";
|
|
13832
14080
|
}
|
|
13833
14081
|
function OptionLink({ href, active, label, onActivate }) {
|
|
13834
|
-
return /* @__PURE__ */ (0,
|
|
14082
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13835
14083
|
"a",
|
|
13836
14084
|
{
|
|
13837
14085
|
href,
|
|
@@ -13840,7 +14088,7 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
13840
14088
|
event.preventDefault();
|
|
13841
14089
|
onActivate();
|
|
13842
14090
|
} : void 0,
|
|
13843
|
-
className: (0,
|
|
14091
|
+
className: (0, import_utils12.cn)(
|
|
13844
14092
|
"inline-flex items-center rounded-full border px-3 py-1 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
13845
14093
|
active ? "border-transparent bg-primary text-primary-foreground" : "border-border text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
13846
14094
|
),
|
|
@@ -13849,9 +14097,9 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
13849
14097
|
);
|
|
13850
14098
|
}
|
|
13851
14099
|
function FilterFieldset({ legend, children: children2 }) {
|
|
13852
|
-
return /* @__PURE__ */ (0,
|
|
13853
|
-
/* @__PURE__ */ (0,
|
|
13854
|
-
/* @__PURE__ */ (0,
|
|
14100
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("fieldset", { className: "space-y-2", children: [
|
|
14101
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("legend", { className: "text-sm font-medium text-foreground", children: legend }),
|
|
14102
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex flex-wrap gap-2", children: children2 })
|
|
13855
14103
|
] });
|
|
13856
14104
|
}
|
|
13857
14105
|
function ShopFilters({
|
|
@@ -13874,11 +14122,11 @@ function ShopFilters({
|
|
|
13874
14122
|
if (!shouldRenderShopFilters(facets, active)) {
|
|
13875
14123
|
return null;
|
|
13876
14124
|
}
|
|
13877
|
-
return /* @__PURE__ */ (0,
|
|
14125
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: (0, import_utils12.cn)("space-y-6", className), "data-slot": "shop-filters", children: [
|
|
13878
14126
|
visibleTaxonomies.map((axis) => {
|
|
13879
14127
|
const activeSlug = active.taxonomy?.[axis.key];
|
|
13880
|
-
return /* @__PURE__ */ (0,
|
|
13881
|
-
/* @__PURE__ */ (0,
|
|
14128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(FilterFieldset, { legend: axis.label, children: [
|
|
14129
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13882
14130
|
OptionLink,
|
|
13883
14131
|
{
|
|
13884
14132
|
href: hrefs.taxonomy(axis.key, void 0),
|
|
@@ -13893,7 +14141,7 @@ function ShopFilters({
|
|
|
13893
14141
|
),
|
|
13894
14142
|
axis.terms.map((term) => {
|
|
13895
14143
|
const isActive = activeSlug === term.slug;
|
|
13896
|
-
return /* @__PURE__ */ (0,
|
|
14144
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13897
14145
|
OptionLink,
|
|
13898
14146
|
{
|
|
13899
14147
|
href: hrefs.taxonomy(axis.key, isActive ? void 0 : term.slug),
|
|
@@ -13913,9 +14161,9 @@ function ShopFilters({
|
|
|
13913
14161
|
}),
|
|
13914
14162
|
visibleAttributes.map((attr) => {
|
|
13915
14163
|
const activeValues = toValueArray(active.attr?.[attr.key]);
|
|
13916
|
-
return /* @__PURE__ */ (0,
|
|
14164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(FilterFieldset, { legend: attr.label, children: attr.options.map((opt) => {
|
|
13917
14165
|
const isActive = activeValues.includes(opt.value);
|
|
13918
|
-
return /* @__PURE__ */ (0,
|
|
14166
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13919
14167
|
OptionLink,
|
|
13920
14168
|
{
|
|
13921
14169
|
href: hrefs.attr(attr.key, opt.value),
|
|
@@ -13933,11 +14181,11 @@ function ShopFilters({
|
|
|
13933
14181
|
);
|
|
13934
14182
|
}) }, attr.key);
|
|
13935
14183
|
}),
|
|
13936
|
-
showPriceGroup && /* @__PURE__ */ (0,
|
|
14184
|
+
showPriceGroup && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(FilterFieldset, { legend: t.price, children: priceBands.map((band, i) => {
|
|
13937
14185
|
const isActive = active.priceMin === band.min && active.priceMax === band.max;
|
|
13938
14186
|
const nextMin = isActive ? void 0 : band.min;
|
|
13939
14187
|
const nextMax = isActive ? void 0 : band.max;
|
|
13940
|
-
return /* @__PURE__ */ (0,
|
|
14188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13941
14189
|
OptionLink,
|
|
13942
14190
|
{
|
|
13943
14191
|
href: hrefs.price(nextMin, nextMax),
|
|
@@ -13948,7 +14196,7 @@ function ShopFilters({
|
|
|
13948
14196
|
i
|
|
13949
14197
|
);
|
|
13950
14198
|
}) }),
|
|
13951
|
-
hasOnSale && /* @__PURE__ */ (0,
|
|
14199
|
+
hasOnSale && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13952
14200
|
OptionLink,
|
|
13953
14201
|
{
|
|
13954
14202
|
href: hrefs.onSale(!active.onSale),
|
|
@@ -13957,7 +14205,7 @@ function ShopFilters({
|
|
|
13957
14205
|
onActivate: onChange ? () => onChange({ onSale: !active.onSale }) : void 0
|
|
13958
14206
|
}
|
|
13959
14207
|
),
|
|
13960
|
-
/* @__PURE__ */ (0,
|
|
14208
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
13961
14209
|
"a",
|
|
13962
14210
|
{
|
|
13963
14211
|
href: hrefs.clearAll(),
|
|
@@ -13973,8 +14221,8 @@ function ShopFilters({
|
|
|
13973
14221
|
}
|
|
13974
14222
|
|
|
13975
14223
|
// src/components/cart-line-list.tsx
|
|
13976
|
-
var
|
|
13977
|
-
var
|
|
14224
|
+
var import_utils13 = require("@reblu/site-ui/utils");
|
|
14225
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
13978
14226
|
var DEFAULT_LABELS2 = {
|
|
13979
14227
|
quantityLabel: "Cantidad",
|
|
13980
14228
|
decrease: "Reducir cantidad",
|
|
@@ -13999,9 +14247,9 @@ function CartLineList({
|
|
|
13999
14247
|
}) {
|
|
14000
14248
|
const t = { ...DEFAULT_LABELS2, ...labels };
|
|
14001
14249
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
14002
|
-
return /* @__PURE__ */ (0,
|
|
14003
|
-
/* @__PURE__ */ (0,
|
|
14004
|
-
noticeContent != null && noticeContent !== false && /* @__PURE__ */ (0,
|
|
14250
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: (0, import_utils13.cn)("space-y-4", className), "data-slot": "cart-line-list", children: [
|
|
14251
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { "aria-live": "polite", className: "sr-only", children: liveMessage }),
|
|
14252
|
+
noticeContent != null && noticeContent !== false && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
14005
14253
|
"div",
|
|
14006
14254
|
{
|
|
14007
14255
|
role: "status",
|
|
@@ -14010,32 +14258,32 @@ function CartLineList({
|
|
|
14010
14258
|
children: noticeContent
|
|
14011
14259
|
}
|
|
14012
14260
|
),
|
|
14013
|
-
/* @__PURE__ */ (0,
|
|
14261
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "space-y-4", children: items.map((item) => {
|
|
14014
14262
|
const maxQty = item.maxStock ?? Infinity;
|
|
14015
14263
|
const atMax = item.quantity >= maxQty;
|
|
14016
14264
|
const atMin = item.quantity <= 1;
|
|
14017
|
-
return /* @__PURE__ */ (0,
|
|
14265
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
14018
14266
|
"li",
|
|
14019
14267
|
{
|
|
14020
14268
|
className: "flex gap-4 rounded-xl border border-border bg-card p-4",
|
|
14021
14269
|
children: [
|
|
14022
|
-
/* @__PURE__ */ (0,
|
|
14023
|
-
/* @__PURE__ */ (0,
|
|
14024
|
-
/* @__PURE__ */ (0,
|
|
14025
|
-
item.variantName && /* @__PURE__ */ (0,
|
|
14026
|
-
/* @__PURE__ */ (0,
|
|
14270
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-muted", children: item.imageUrl ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { src: item.imageUrl, alt: item.name, className: "h-full w-full object-cover" }) : null }),
|
|
14271
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
14272
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "truncate text-sm font-semibold leading-tight", children: item.name }),
|
|
14273
|
+
item.variantName && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "mt-0.5 text-xs text-muted-foreground", children: item.variantName }),
|
|
14274
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("p", { className: "mt-1 text-sm text-muted-foreground", children: [
|
|
14027
14275
|
formatPrice(item.unitPrice, currencyCode, locale),
|
|
14028
14276
|
" ",
|
|
14029
14277
|
t.unitPriceSuffix
|
|
14030
14278
|
] }),
|
|
14031
|
-
/* @__PURE__ */ (0,
|
|
14279
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
14032
14280
|
"div",
|
|
14033
14281
|
{
|
|
14034
14282
|
role: "group",
|
|
14035
14283
|
"aria-label": t.quantityLabel,
|
|
14036
14284
|
className: "mt-3 flex items-center gap-3",
|
|
14037
14285
|
children: [
|
|
14038
|
-
/* @__PURE__ */ (0,
|
|
14286
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
14039
14287
|
"button",
|
|
14040
14288
|
{
|
|
14041
14289
|
type: "button",
|
|
@@ -14046,8 +14294,8 @@ function CartLineList({
|
|
|
14046
14294
|
children: "\u2212"
|
|
14047
14295
|
}
|
|
14048
14296
|
),
|
|
14049
|
-
/* @__PURE__ */ (0,
|
|
14050
|
-
/* @__PURE__ */ (0,
|
|
14297
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "w-8 text-center text-sm font-semibold tabular-nums", children: item.quantity }),
|
|
14298
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
14051
14299
|
"button",
|
|
14052
14300
|
{
|
|
14053
14301
|
type: "button",
|
|
@@ -14058,7 +14306,7 @@ function CartLineList({
|
|
|
14058
14306
|
children: "+"
|
|
14059
14307
|
}
|
|
14060
14308
|
),
|
|
14061
|
-
onRemove && /* @__PURE__ */ (0,
|
|
14309
|
+
onRemove && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
14062
14310
|
"button",
|
|
14063
14311
|
{
|
|
14064
14312
|
type: "button",
|
|
@@ -14072,7 +14320,7 @@ function CartLineList({
|
|
|
14072
14320
|
}
|
|
14073
14321
|
)
|
|
14074
14322
|
] }),
|
|
14075
|
-
/* @__PURE__ */ (0,
|
|
14323
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-base font-bold", children: formatPrice(item.unitPrice * item.quantity, currencyCode, locale) }) })
|
|
14076
14324
|
]
|
|
14077
14325
|
},
|
|
14078
14326
|
lineKey(item.productId, item.variantId)
|
|
@@ -14082,8 +14330,8 @@ function CartLineList({
|
|
|
14082
14330
|
}
|
|
14083
14331
|
|
|
14084
14332
|
// src/components/cart-summary.tsx
|
|
14085
|
-
var
|
|
14086
|
-
var
|
|
14333
|
+
var import_utils14 = require("@reblu/site-ui/utils");
|
|
14334
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
14087
14335
|
var DEFAULT_LABELS3 = {
|
|
14088
14336
|
subtotal: "Subtotal",
|
|
14089
14337
|
discountPrefix: "Descuento",
|
|
@@ -14110,40 +14358,40 @@ function CartSummary({
|
|
|
14110
14358
|
const hasDiscount = Boolean(discount && discount > 0);
|
|
14111
14359
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
14112
14360
|
const hasNotice = noticeContent != null && noticeContent !== false;
|
|
14113
|
-
const breakdown = /* @__PURE__ */ (0,
|
|
14361
|
+
const breakdown = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
14114
14362
|
"dl",
|
|
14115
14363
|
{
|
|
14116
|
-
className: (0,
|
|
14364
|
+
className: (0, import_utils14.cn)("space-y-2 text-sm", !hasNotice && className),
|
|
14117
14365
|
"data-slot": "cart-summary",
|
|
14118
14366
|
children: [
|
|
14119
|
-
/* @__PURE__ */ (0,
|
|
14120
|
-
/* @__PURE__ */ (0,
|
|
14121
|
-
/* @__PURE__ */ (0,
|
|
14367
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
14368
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("dt", { children: t.subtotal }),
|
|
14369
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("dd", { children: formatPrice(subtotal, currencyCode, locale) })
|
|
14122
14370
|
] }),
|
|
14123
|
-
hasDiscount && /* @__PURE__ */ (0,
|
|
14124
|
-
/* @__PURE__ */ (0,
|
|
14371
|
+
hasDiscount && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex justify-between text-green-600 dark:text-green-400", children: [
|
|
14372
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("dt", { children: [
|
|
14125
14373
|
t.discountPrefix,
|
|
14126
14374
|
discountCode ? ` (${discountCode})` : ""
|
|
14127
14375
|
] }),
|
|
14128
|
-
/* @__PURE__ */ (0,
|
|
14376
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("dd", { children: [
|
|
14129
14377
|
"-",
|
|
14130
14378
|
formatPrice(discount, currencyCode, locale)
|
|
14131
14379
|
] })
|
|
14132
14380
|
] }),
|
|
14133
|
-
shippingEnabled && /* @__PURE__ */ (0,
|
|
14134
|
-
/* @__PURE__ */ (0,
|
|
14135
|
-
/* @__PURE__ */ (0,
|
|
14381
|
+
shippingEnabled && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
14382
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("dt", { children: t.shipping }),
|
|
14383
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("dd", { children: shipping == null || !Number.isFinite(shipping) ? t.shippingCalculated : shipping === 0 ? t.freeShipping : formatPrice(shipping, currencyCode, locale) })
|
|
14136
14384
|
] }),
|
|
14137
|
-
/* @__PURE__ */ (0,
|
|
14138
|
-
/* @__PURE__ */ (0,
|
|
14139
|
-
/* @__PURE__ */ (0,
|
|
14385
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex justify-between border-t border-border pt-2 text-base font-bold", children: [
|
|
14386
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("dt", { children: t.total }),
|
|
14387
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("dd", { children: formatPrice(total, currencyCode, locale) })
|
|
14140
14388
|
] })
|
|
14141
14389
|
]
|
|
14142
14390
|
}
|
|
14143
14391
|
);
|
|
14144
14392
|
if (!hasNotice) return breakdown;
|
|
14145
|
-
return /* @__PURE__ */ (0,
|
|
14146
|
-
/* @__PURE__ */ (0,
|
|
14393
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: (0, import_utils14.cn)("space-y-3", className), "data-slot": "cart-summary-wrapper", children: [
|
|
14394
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
14147
14395
|
"div",
|
|
14148
14396
|
{
|
|
14149
14397
|
role: "status",
|
|
@@ -14157,8 +14405,8 @@ function CartSummary({
|
|
|
14157
14405
|
}
|
|
14158
14406
|
|
|
14159
14407
|
// src/components/added-to-cart-toast.tsx
|
|
14160
|
-
var
|
|
14161
|
-
var
|
|
14408
|
+
var import_utils15 = require("@reblu/site-ui/utils");
|
|
14409
|
+
var import_jsx_runtime14 = (
|
|
14162
14410
|
// eslint-disable-next-line @next/next/no-img-element -- toast content, not a Next <Image> layout context
|
|
14163
14411
|
require("react/jsx-runtime")
|
|
14164
14412
|
);
|
|
@@ -14181,32 +14429,32 @@ function AddedToCartToast({
|
|
|
14181
14429
|
const message = status === "error" ? t.error : status === "outOfStock" ? t.outOfStock : t.success;
|
|
14182
14430
|
const hasThumbnail = Boolean(imageUrl && imageUrl.trim().length > 0);
|
|
14183
14431
|
const variant = status === "success" ? "success" : "error";
|
|
14184
|
-
return /* @__PURE__ */ (0,
|
|
14432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
14185
14433
|
"div",
|
|
14186
14434
|
{
|
|
14187
14435
|
"data-slot": "added-to-cart-toast",
|
|
14188
14436
|
"data-variant": variant,
|
|
14189
|
-
className: (0,
|
|
14437
|
+
className: (0, import_utils15.cn)(
|
|
14190
14438
|
"flex items-center gap-3 rounded-xl border border-border bg-card p-3 text-sm shadow-lg",
|
|
14191
14439
|
variant === "success" && "border-green-600/30 dark:border-green-400/30",
|
|
14192
14440
|
variant === "error" && "border-destructive/30",
|
|
14193
14441
|
className
|
|
14194
14442
|
),
|
|
14195
14443
|
children: [
|
|
14196
|
-
hasThumbnail && /* @__PURE__ */ (0,
|
|
14197
|
-
/* @__PURE__ */ (0,
|
|
14198
|
-
/* @__PURE__ */ (0,
|
|
14199
|
-
/* @__PURE__ */ (0,
|
|
14444
|
+
hasThumbnail && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("img", { src: imageUrl, alt: productName, className: "h-10 w-10 flex-shrink-0 rounded-lg object-cover" }),
|
|
14445
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
14446
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "truncate font-semibold text-foreground", children: productName }),
|
|
14447
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "truncate text-muted-foreground", children: quantity && quantity > 1 ? `${message} \xB7 x${quantity}` : message })
|
|
14200
14448
|
] }),
|
|
14201
|
-
/* @__PURE__ */ (0,
|
|
14449
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("a", { href: cartHref, className: "text-sm font-semibold text-primary underline-offset-2 hover:underline", children: t.viewCart }) })
|
|
14202
14450
|
]
|
|
14203
14451
|
}
|
|
14204
14452
|
);
|
|
14205
14453
|
}
|
|
14206
14454
|
|
|
14207
14455
|
// src/components/checkout-login-prompt.tsx
|
|
14208
|
-
var
|
|
14209
|
-
var
|
|
14456
|
+
var import_utils16 = require("@reblu/site-ui/utils");
|
|
14457
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
14210
14458
|
var DEFAULT_LABELS5 = {
|
|
14211
14459
|
title: "Identificaci\xF3n",
|
|
14212
14460
|
description: "Introduce tu email para agilizar el proceso o contin\xFAa como invitado.",
|
|
@@ -14233,26 +14481,26 @@ function CheckoutLoginPrompt({
|
|
|
14233
14481
|
if (!open) return null;
|
|
14234
14482
|
const t = { ...DEFAULT_LABELS5, ...labels };
|
|
14235
14483
|
const isValidEmail = EMAIL_PATTERN.test(email.trim());
|
|
14236
|
-
return /* @__PURE__ */ (0,
|
|
14237
|
-
/* @__PURE__ */ (0,
|
|
14238
|
-
/* @__PURE__ */ (0,
|
|
14484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
14485
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "fixed inset-0 z-50 bg-black/50", onClick: onClose, "aria-hidden": "true" }),
|
|
14486
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
14239
14487
|
"div",
|
|
14240
14488
|
{
|
|
14241
14489
|
role: "dialog",
|
|
14242
14490
|
"aria-modal": "true",
|
|
14243
14491
|
"aria-labelledby": "checkout-login-prompt-title",
|
|
14244
14492
|
"data-slot": "checkout-login-prompt",
|
|
14245
|
-
className: (0,
|
|
14493
|
+
className: (0, import_utils16.cn)(
|
|
14246
14494
|
"fixed left-1/2 top-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 space-y-5 rounded-2xl border border-border bg-background p-6 shadow-2xl",
|
|
14247
14495
|
className
|
|
14248
14496
|
),
|
|
14249
14497
|
children: [
|
|
14250
|
-
/* @__PURE__ */ (0,
|
|
14251
|
-
/* @__PURE__ */ (0,
|
|
14252
|
-
/* @__PURE__ */ (0,
|
|
14253
|
-
/* @__PURE__ */ (0,
|
|
14498
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
|
|
14499
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
|
|
14500
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h2", { id: "checkout-login-prompt-title", className: "text-xl font-bold", children: t.title }),
|
|
14501
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "mt-1 text-sm text-muted-foreground", children: t.description })
|
|
14254
14502
|
] }),
|
|
14255
|
-
/* @__PURE__ */ (0,
|
|
14503
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
14256
14504
|
"button",
|
|
14257
14505
|
{
|
|
14258
14506
|
type: "button",
|
|
@@ -14263,9 +14511,9 @@ function CheckoutLoginPrompt({
|
|
|
14263
14511
|
}
|
|
14264
14512
|
)
|
|
14265
14513
|
] }),
|
|
14266
|
-
/* @__PURE__ */ (0,
|
|
14267
|
-
/* @__PURE__ */ (0,
|
|
14268
|
-
/* @__PURE__ */ (0,
|
|
14514
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "space-y-2", children: [
|
|
14515
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("label", { htmlFor: "checkout-login-prompt-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
14516
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
14269
14517
|
"input",
|
|
14270
14518
|
{
|
|
14271
14519
|
id: "checkout-login-prompt-email",
|
|
@@ -14274,29 +14522,29 @@ function CheckoutLoginPrompt({
|
|
|
14274
14522
|
value: email,
|
|
14275
14523
|
onChange: (e) => onEmailChange(e.target.value),
|
|
14276
14524
|
placeholder: t.emailPlaceholder,
|
|
14277
|
-
className: (0,
|
|
14525
|
+
className: (0, import_utils16.cn)(
|
|
14278
14526
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
14279
14527
|
error ? "border-destructive" : "border-border focus:border-primary"
|
|
14280
14528
|
)
|
|
14281
14529
|
}
|
|
14282
14530
|
),
|
|
14283
|
-
error && /* @__PURE__ */ (0,
|
|
14531
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-xs text-destructive", children: error })
|
|
14284
14532
|
] }),
|
|
14285
|
-
/* @__PURE__ */ (0,
|
|
14286
|
-
/* @__PURE__ */ (0,
|
|
14533
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "space-y-2", children: [
|
|
14534
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
14287
14535
|
"button",
|
|
14288
14536
|
{
|
|
14289
14537
|
type: "button",
|
|
14290
14538
|
onClick: onSubmitEmail,
|
|
14291
14539
|
disabled: checking || !isValidEmail,
|
|
14292
|
-
className: (0,
|
|
14540
|
+
className: (0, import_utils16.cn)(
|
|
14293
14541
|
"flex w-full items-center justify-center gap-2 rounded-xl px-4 py-2.5 text-sm font-semibold transition-all",
|
|
14294
14542
|
checking || !isValidEmail ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
14295
14543
|
),
|
|
14296
14544
|
children: checking ? t.checking : t.continueWithEmail
|
|
14297
14545
|
}
|
|
14298
14546
|
),
|
|
14299
|
-
/* @__PURE__ */ (0,
|
|
14547
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
14300
14548
|
"button",
|
|
14301
14549
|
{
|
|
14302
14550
|
type: "button",
|
|
@@ -14313,9 +14561,9 @@ function CheckoutLoginPrompt({
|
|
|
14313
14561
|
}
|
|
14314
14562
|
|
|
14315
14563
|
// src/components/checkout-form.tsx
|
|
14316
|
-
var
|
|
14564
|
+
var import_utils17 = require("@reblu/site-ui/utils");
|
|
14317
14565
|
var import_phone_input = require("@reblu/site-ui/phone-input");
|
|
14318
|
-
var
|
|
14566
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
14319
14567
|
var DEFAULT_LABELS6 = {
|
|
14320
14568
|
contactTitle: "Datos de contacto",
|
|
14321
14569
|
nameLabel: "Nombre completo",
|
|
@@ -14369,22 +14617,22 @@ function CheckoutForm({
|
|
|
14369
14617
|
event.preventDefault();
|
|
14370
14618
|
if (discountCode.trim() && !discountApplying) onApplyDiscount();
|
|
14371
14619
|
}
|
|
14372
|
-
return /* @__PURE__ */ (0,
|
|
14620
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
14373
14621
|
loginPrompt,
|
|
14374
|
-
/* @__PURE__ */ (0,
|
|
14622
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
14375
14623
|
"form",
|
|
14376
14624
|
{
|
|
14377
14625
|
"data-testid": "checkout-form",
|
|
14378
14626
|
onSubmit,
|
|
14379
|
-
className: (0,
|
|
14627
|
+
className: (0, import_utils17.cn)("space-y-8", className),
|
|
14380
14628
|
"data-slot": "checkout-form",
|
|
14381
14629
|
children: [
|
|
14382
|
-
/* @__PURE__ */ (0,
|
|
14383
|
-
/* @__PURE__ */ (0,
|
|
14384
|
-
/* @__PURE__ */ (0,
|
|
14385
|
-
/* @__PURE__ */ (0,
|
|
14386
|
-
/* @__PURE__ */ (0,
|
|
14387
|
-
/* @__PURE__ */ (0,
|
|
14630
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { className: "space-y-4", children: [
|
|
14631
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.contactTitle }),
|
|
14632
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
14633
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "space-y-1", children: [
|
|
14634
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: "checkout-form-name", className: "text-sm font-medium", children: t.nameLabel }),
|
|
14635
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14388
14636
|
"input",
|
|
14389
14637
|
{
|
|
14390
14638
|
id: "checkout-form-name",
|
|
@@ -14393,17 +14641,17 @@ function CheckoutForm({
|
|
|
14393
14641
|
value: contact.name,
|
|
14394
14642
|
onChange: (e) => patchContact({ name: e.target.value }),
|
|
14395
14643
|
placeholder: t.namePlaceholder,
|
|
14396
|
-
className: (0,
|
|
14644
|
+
className: (0, import_utils17.cn)(
|
|
14397
14645
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
14398
14646
|
contactErrors?.name ? "border-destructive" : "border-border focus:border-primary"
|
|
14399
14647
|
)
|
|
14400
14648
|
}
|
|
14401
14649
|
),
|
|
14402
|
-
contactErrors?.name && /* @__PURE__ */ (0,
|
|
14650
|
+
contactErrors?.name && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-destructive", children: contactErrors.name })
|
|
14403
14651
|
] }),
|
|
14404
|
-
/* @__PURE__ */ (0,
|
|
14405
|
-
/* @__PURE__ */ (0,
|
|
14406
|
-
/* @__PURE__ */ (0,
|
|
14652
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "space-y-1", children: [
|
|
14653
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: "checkout-form-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
14654
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14407
14655
|
"input",
|
|
14408
14656
|
{
|
|
14409
14657
|
id: "checkout-form-email",
|
|
@@ -14412,15 +14660,15 @@ function CheckoutForm({
|
|
|
14412
14660
|
value: contact.email,
|
|
14413
14661
|
onChange: (e) => patchContact({ email: e.target.value }),
|
|
14414
14662
|
placeholder: t.emailPlaceholder,
|
|
14415
|
-
className: (0,
|
|
14663
|
+
className: (0, import_utils17.cn)(
|
|
14416
14664
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
14417
14665
|
contactErrors?.email ? "border-destructive" : "border-border focus:border-primary"
|
|
14418
14666
|
)
|
|
14419
14667
|
}
|
|
14420
14668
|
),
|
|
14421
|
-
contactErrors?.email && /* @__PURE__ */ (0,
|
|
14669
|
+
contactErrors?.email && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-destructive", children: contactErrors.email })
|
|
14422
14670
|
] }),
|
|
14423
|
-
/* @__PURE__ */ (0,
|
|
14671
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "space-y-1", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14424
14672
|
import_phone_input.PhoneInput,
|
|
14425
14673
|
{
|
|
14426
14674
|
id: "checkout-form-phone",
|
|
@@ -14434,15 +14682,15 @@ function CheckoutForm({
|
|
|
14434
14682
|
] })
|
|
14435
14683
|
] }),
|
|
14436
14684
|
children2,
|
|
14437
|
-
generalError ? /* @__PURE__ */ (0,
|
|
14438
|
-
/* @__PURE__ */ (0,
|
|
14439
|
-
/* @__PURE__ */ (0,
|
|
14440
|
-
appliedDiscount ? /* @__PURE__ */ (0,
|
|
14441
|
-
/* @__PURE__ */ (0,
|
|
14442
|
-
/* @__PURE__ */ (0,
|
|
14443
|
-
/* @__PURE__ */ (0,
|
|
14685
|
+
generalError ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { role: "alert", className: "text-sm text-destructive", children: generalError }) : null,
|
|
14686
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("section", { className: "space-y-3", children: [
|
|
14687
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.discountTitle }),
|
|
14688
|
+
appliedDiscount ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center justify-between rounded-lg border border-green-200 bg-green-50 px-4 py-3 dark:border-green-800 dark:bg-green-900/20", children: [
|
|
14689
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center gap-2 text-sm text-green-700 dark:text-green-400", children: [
|
|
14690
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "font-semibold", children: appliedDiscount.code }),
|
|
14691
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: t.discountAppliedSuffix(formatPrice(appliedDiscount.amount, currencyCode, locale)) })
|
|
14444
14692
|
] }),
|
|
14445
|
-
/* @__PURE__ */ (0,
|
|
14693
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14446
14694
|
"button",
|
|
14447
14695
|
{
|
|
14448
14696
|
type: "button",
|
|
@@ -14452,9 +14700,9 @@ function CheckoutForm({
|
|
|
14452
14700
|
children: t.removeDiscount
|
|
14453
14701
|
}
|
|
14454
14702
|
)
|
|
14455
|
-
] }) : /* @__PURE__ */ (0,
|
|
14456
|
-
/* @__PURE__ */ (0,
|
|
14457
|
-
/* @__PURE__ */ (0,
|
|
14703
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex gap-2", children: [
|
|
14704
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: "checkout-form-discount-code", className: "sr-only", children: t.discountTitle }),
|
|
14705
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14458
14706
|
"input",
|
|
14459
14707
|
{
|
|
14460
14708
|
id: "checkout-form-discount-code",
|
|
@@ -14466,7 +14714,7 @@ function CheckoutForm({
|
|
|
14466
14714
|
className: "flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm uppercase transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/20"
|
|
14467
14715
|
}
|
|
14468
14716
|
),
|
|
14469
|
-
/* @__PURE__ */ (0,
|
|
14717
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14470
14718
|
"button",
|
|
14471
14719
|
{
|
|
14472
14720
|
type: "button",
|
|
@@ -14477,14 +14725,14 @@ function CheckoutForm({
|
|
|
14477
14725
|
}
|
|
14478
14726
|
)
|
|
14479
14727
|
] }),
|
|
14480
|
-
discountError && /* @__PURE__ */ (0,
|
|
14728
|
+
discountError && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-destructive", children: discountError })
|
|
14481
14729
|
] }),
|
|
14482
|
-
/* @__PURE__ */ (0,
|
|
14730
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
14483
14731
|
"button",
|
|
14484
14732
|
{
|
|
14485
14733
|
type: "submit",
|
|
14486
14734
|
disabled: submitting || submitDisabled,
|
|
14487
|
-
className: (0,
|
|
14735
|
+
className: (0, import_utils17.cn)(
|
|
14488
14736
|
"flex w-full items-center justify-center gap-2 rounded-xl px-4 py-3 font-semibold transition-all",
|
|
14489
14737
|
submitting || submitDisabled ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
14490
14738
|
),
|
|
@@ -14498,8 +14746,8 @@ function CheckoutForm({
|
|
|
14498
14746
|
}
|
|
14499
14747
|
|
|
14500
14748
|
// src/components/order-confirmation.tsx
|
|
14501
|
-
var
|
|
14502
|
-
var
|
|
14749
|
+
var import_utils18 = require("@reblu/site-ui/utils");
|
|
14750
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
14503
14751
|
var DEFAULT_LABELS7 = {
|
|
14504
14752
|
pollingTitle: "Confirmando tu pedido\u2026",
|
|
14505
14753
|
pollingDescription: "Estamos procesando el pago, un momento\u2026",
|
|
@@ -14561,48 +14809,48 @@ function OrderConfirmation({
|
|
|
14561
14809
|
const showOrderReference = Boolean(order) && !showFullOrderSummary && (status === "refunded" || status === "partially_refunded" || status === "pending_timeout");
|
|
14562
14810
|
const showSessionReference = !order && sessionId && (status === "timeout" || status === "not_found" || status === "pending_timeout");
|
|
14563
14811
|
const showRecheck = (status === "pending_timeout" || status === "error") && onRecheck;
|
|
14564
|
-
return /* @__PURE__ */ (0,
|
|
14565
|
-
/* @__PURE__ */ (0,
|
|
14566
|
-
/* @__PURE__ */ (0,
|
|
14567
|
-
showFullOrderSummary && order && /* @__PURE__ */ (0,
|
|
14568
|
-
/* @__PURE__ */ (0,
|
|
14569
|
-
/* @__PURE__ */ (0,
|
|
14570
|
-
/* @__PURE__ */ (0,
|
|
14812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: (0, import_utils18.cn)("space-y-6 text-center", className), "data-slot": "order-confirmation", children: [
|
|
14813
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h1", { className: "text-3xl font-bold", children: title }),
|
|
14814
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-lg text-muted-foreground", children: description }),
|
|
14815
|
+
showFullOrderSummary && order && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "space-y-6", children: [
|
|
14816
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
14817
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderNumberLabel }),
|
|
14818
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
14571
14819
|
] }),
|
|
14572
|
-
/* @__PURE__ */ (0,
|
|
14573
|
-
order.items.map((item, idx) => /* @__PURE__ */ (0,
|
|
14820
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "mx-auto max-w-sm space-y-3 rounded-xl border border-border bg-card p-5 text-left", children: [
|
|
14821
|
+
order.items.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
14574
14822
|
"div",
|
|
14575
14823
|
{
|
|
14576
14824
|
className: "flex justify-between gap-4 text-sm",
|
|
14577
14825
|
children: [
|
|
14578
|
-
/* @__PURE__ */ (0,
|
|
14826
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { className: "max-w-[60%] truncate text-muted-foreground", children: [
|
|
14579
14827
|
item.product.name,
|
|
14580
14828
|
item.variant ? ` (${item.variant.name})` : "",
|
|
14581
14829
|
" x",
|
|
14582
14830
|
item.quantity
|
|
14583
14831
|
] }),
|
|
14584
|
-
/* @__PURE__ */ (0,
|
|
14832
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: formatPrice(item.total, currencyCode, locale) })
|
|
14585
14833
|
]
|
|
14586
14834
|
},
|
|
14587
14835
|
idx
|
|
14588
14836
|
)),
|
|
14589
|
-
/* @__PURE__ */ (0,
|
|
14590
|
-
/* @__PURE__ */ (0,
|
|
14591
|
-
/* @__PURE__ */ (0,
|
|
14837
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "space-y-1 border-t border-border pt-3 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex justify-between pt-1 text-base font-bold", children: [
|
|
14838
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: t.totalLabel }),
|
|
14839
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: formatPrice(order.total, currencyCode, locale) })
|
|
14592
14840
|
] }) })
|
|
14593
14841
|
] }),
|
|
14594
|
-
/* @__PURE__ */ (0,
|
|
14842
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "mx-auto max-w-sm text-sm text-muted-foreground", children: [
|
|
14595
14843
|
t.confirmationEmailPrefix,
|
|
14596
14844
|
" ",
|
|
14597
|
-
/* @__PURE__ */ (0,
|
|
14845
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "font-medium text-foreground", children: order.customerEmail }),
|
|
14598
14846
|
"."
|
|
14599
14847
|
] })
|
|
14600
14848
|
] }),
|
|
14601
|
-
showOrderReference && order && /* @__PURE__ */ (0,
|
|
14602
|
-
/* @__PURE__ */ (0,
|
|
14603
|
-
/* @__PURE__ */ (0,
|
|
14849
|
+
showOrderReference && order && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
14850
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderReferenceLabel }),
|
|
14851
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
14604
14852
|
] }),
|
|
14605
|
-
status === "failed" && cartHref && /* @__PURE__ */ (0,
|
|
14853
|
+
status === "failed" && cartHref && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
14606
14854
|
"a",
|
|
14607
14855
|
{
|
|
14608
14856
|
href: cartHref,
|
|
@@ -14610,7 +14858,7 @@ function OrderConfirmation({
|
|
|
14610
14858
|
children: t.backToCartLabel
|
|
14611
14859
|
}
|
|
14612
14860
|
),
|
|
14613
|
-
showRecheck && /* @__PURE__ */ (0,
|
|
14861
|
+
showRecheck && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
14614
14862
|
"button",
|
|
14615
14863
|
{
|
|
14616
14864
|
type: "button",
|
|
@@ -14619,9 +14867,9 @@ function OrderConfirmation({
|
|
|
14619
14867
|
children: t.recheckLabel
|
|
14620
14868
|
}
|
|
14621
14869
|
),
|
|
14622
|
-
showSessionReference && /* @__PURE__ */ (0,
|
|
14623
|
-
/* @__PURE__ */ (0,
|
|
14624
|
-
/* @__PURE__ */ (0,
|
|
14870
|
+
showSessionReference && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
14871
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.sessionReferenceLabel }),
|
|
14872
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "break-all font-mono text-sm font-semibold", children: sessionId })
|
|
14625
14873
|
] })
|
|
14626
14874
|
] });
|
|
14627
14875
|
}
|
|
@@ -14636,11 +14884,14 @@ function OrderConfirmation({
|
|
|
14636
14884
|
DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE,
|
|
14637
14885
|
DEFAULT_SHOP_ERROR_MESSAGES,
|
|
14638
14886
|
DEFAULT_SHOP_PRICE_BANDS,
|
|
14887
|
+
DEFAULT_TRUST_ICONS,
|
|
14639
14888
|
FaqAccordion,
|
|
14640
14889
|
MarkdownRenderer,
|
|
14641
14890
|
OrderConfirmation,
|
|
14642
14891
|
PageBlocks,
|
|
14892
|
+
ParentPage,
|
|
14643
14893
|
ProductCard,
|
|
14894
|
+
ProductTrustItems,
|
|
14644
14895
|
ProfileCard,
|
|
14645
14896
|
SafeHtml,
|
|
14646
14897
|
ShopFilters,
|
|
@@ -14657,4 +14908,26 @@ function OrderConfirmation({
|
|
|
14657
14908
|
sanitizeHtml,
|
|
14658
14909
|
shouldRenderShopFilters
|
|
14659
14910
|
});
|
|
14911
|
+
/*! Bundled license information:
|
|
14912
|
+
|
|
14913
|
+
lucide-react/dist/esm/shared/src/utils.js:
|
|
14914
|
+
lucide-react/dist/esm/defaultAttributes.js:
|
|
14915
|
+
lucide-react/dist/esm/Icon.js:
|
|
14916
|
+
lucide-react/dist/esm/createLucideIcon.js:
|
|
14917
|
+
lucide-react/dist/esm/icons/award.js:
|
|
14918
|
+
lucide-react/dist/esm/icons/badge-check.js:
|
|
14919
|
+
lucide-react/dist/esm/icons/gift.js:
|
|
14920
|
+
lucide-react/dist/esm/icons/headset.js:
|
|
14921
|
+
lucide-react/dist/esm/icons/rotate-ccw.js:
|
|
14922
|
+
lucide-react/dist/esm/icons/shield-check.js:
|
|
14923
|
+
lucide-react/dist/esm/icons/store.js:
|
|
14924
|
+
lucide-react/dist/esm/icons/truck.js:
|
|
14925
|
+
lucide-react/dist/esm/lucide-react.js:
|
|
14926
|
+
(**
|
|
14927
|
+
* @license lucide-react v0.562.0 - ISC
|
|
14928
|
+
*
|
|
14929
|
+
* This source code is licensed under the ISC license.
|
|
14930
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
14931
|
+
*)
|
|
14932
|
+
*/
|
|
14660
14933
|
//# sourceMappingURL=index.cjs.map
|