@digital-b2c/coreui-kit 0.1.0 → 0.2.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/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import clsx3 from 'clsx';
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
- import React, { useState } from 'react';
3
+ import React, { Children, isValidElement, useState, useCallback, useEffect } from 'react';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defProps = Object.defineProperties;
@@ -33,6 +33,35 @@ var __objRest = (source, exclude) => {
33
33
  }
34
34
  return target;
35
35
  };
36
+
37
+ // src/components/Picture/Picture.module.scss
38
+ var Picture_module_default = {};
39
+ var Picture = (_a) => {
40
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
41
+ var _b2, _c;
42
+ if ("src" in props) {
43
+ return /* @__PURE__ */ jsx("img", __spreadValues({ className }, props));
44
+ }
45
+ const _a2 = props, { desktop, mobile } = _a2, rest = __objRest(_a2, ["desktop", "mobile"]);
46
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
47
+ /* @__PURE__ */ jsx(
48
+ "img",
49
+ __spreadValues({
50
+ src: desktop.src,
51
+ alt: desktop.alt,
52
+ className: clsx3(className, Picture_module_default["image-desktop"])
53
+ }, rest)
54
+ ),
55
+ /* @__PURE__ */ jsx(
56
+ "img",
57
+ __spreadValues({
58
+ src: (_b2 = mobile == null ? void 0 : mobile.src) != null ? _b2 : desktop.src,
59
+ alt: (_c = mobile == null ? void 0 : mobile.alt) != null ? _c : desktop.alt,
60
+ className: clsx3(className, Picture_module_default["image-mobile"])
61
+ }, rest)
62
+ )
63
+ ] });
64
+ };
36
65
  var Anchor = (_a) => {
37
66
  var _b = _a, { children, isExternal } = _b, props = __objRest(_b, ["children", "isExternal"]);
38
67
  return /* @__PURE__ */ jsx(
@@ -290,7 +319,8 @@ var Button = (_a) => {
290
319
  fullWidth,
291
320
  href,
292
321
  isExternal,
293
- icon
322
+ icon,
323
+ logo
294
324
  } = _b, rest = __objRest(_b, [
295
325
  "className",
296
326
  "children",
@@ -298,7 +328,8 @@ var Button = (_a) => {
298
328
  "fullWidth",
299
329
  "href",
300
330
  "isExternal",
301
- "icon"
331
+ "icon",
332
+ "logo"
302
333
  ]);
303
334
  const isLink = !!href;
304
335
  const props = __spreadValues(__spreadValues({
@@ -311,18 +342,185 @@ var Button = (_a) => {
311
342
  }, isLink ? { href, isExternal } : {}), rest);
312
343
  return /* @__PURE__ */ jsxs(ConditionalWrapper, __spreadProps(__spreadValues({ wrapper: Anchor, fallback: "button", condition: isLink }, props), { children: [
313
344
  children,
314
- icon && /* @__PURE__ */ jsx(Icon, { type: icon })
345
+ logo ? /* @__PURE__ */ jsx(Picture, __spreadValues({ className: Button_module_default.logo }, logo)) : icon && /* @__PURE__ */ jsx(Icon, { type: icon, className: Button_module_default.icon })
315
346
  ] }));
316
347
  };
317
348
 
349
+ // src/hooks/useDebounce.ts
350
+ var useDebounce = (fn, delay) => {
351
+ let timer;
352
+ return (...args) => {
353
+ if (timer) clearTimeout(timer);
354
+ timer = setTimeout(() => {
355
+ fn(...args);
356
+ }, delay);
357
+ };
358
+ };
359
+ var useDebounce_default = useDebounce;
360
+
361
+ // src/hooks/useViewPort.ts
362
+ var ORDER = [
363
+ "mobile-s",
364
+ "mobile-m",
365
+ "mobile-l",
366
+ "tablet",
367
+ "desktop",
368
+ "desktop-l",
369
+ "desktop-xl"
370
+ ];
371
+ var breakpointConditions = {
372
+ "mobile-s": (size) => size <= 320,
373
+ "mobile-m": (size) => size > 320 && size <= 375,
374
+ "mobile-l": (size) => size > 375 && size <= 425,
375
+ tablet: (size) => size > 425 && size <= 768,
376
+ desktop: (size) => size > 768 && size <= 1024,
377
+ "desktop-l": (size) => size > 1024 && size <= 1440,
378
+ "desktop-xl": (size) => size > 1440
379
+ };
380
+ var getDeviceType = (width) => {
381
+ for (const key in breakpointConditions) {
382
+ const deviceType = key;
383
+ if (breakpointConditions[deviceType](width)) {
384
+ return deviceType;
385
+ }
386
+ }
387
+ return "desktop";
388
+ };
389
+ var useViewPort = () => {
390
+ const [device, setDevice] = useState(
391
+ () => typeof window !== "undefined" ? getDeviceType(window.innerWidth) : "desktop"
392
+ );
393
+ const getOtherDevices = useCallback(
394
+ (list, what, includeSelf = false) => {
395
+ const deviceIndex = list.indexOf(what) + (!includeSelf ? 1 : 0);
396
+ return [...list].slice(deviceIndex);
397
+ },
398
+ []
399
+ );
400
+ const onWindowResize = useCallback(() => {
401
+ setDevice(getDeviceType(window.innerWidth));
402
+ }, []);
403
+ const onWindowResizeDebounce = useDebounce_default(onWindowResize, 100);
404
+ useEffect(() => {
405
+ window.addEventListener("resize", onWindowResizeDebounce);
406
+ return () => window.removeEventListener("resize", onWindowResizeDebounce);
407
+ }, [onWindowResizeDebounce]);
408
+ const is = (what, range) => {
409
+ const isArray = Array.isArray(what);
410
+ if (!range && !isArray) {
411
+ return what === device;
412
+ }
413
+ if (!range && isArray) {
414
+ return device ? what.includes(device) : false;
415
+ }
416
+ const list = range === "above" ? ORDER : [...ORDER].reverse();
417
+ const devices = getOtherDevices(list, what, true);
418
+ return device && devices.includes(device);
419
+ };
420
+ const isNot = (what) => !is(what);
421
+ const biggerThan = (what) => {
422
+ const devices = getOtherDevices(ORDER, what);
423
+ return device && devices.includes(device);
424
+ };
425
+ const smallerThan = (what) => {
426
+ const reverseOrder = [...ORDER].reverse();
427
+ const devices = getOtherDevices(reverseOrder, what);
428
+ return device && devices.includes(device);
429
+ };
430
+ return { is, isNot, biggerThan, smallerThan, device };
431
+ };
432
+ var useViewPort_default = useViewPort;
433
+
434
+ // src/components/BrandsStrip/BrandsStrip.module.scss
435
+ var BrandsStrip_module_default = {};
436
+ var BrandsStrip = ({
437
+ className,
438
+ variant = "light",
439
+ title,
440
+ logos = [],
441
+ cta,
442
+ size,
443
+ animate = false
444
+ }) => {
445
+ const [show, setShow] = useState(false);
446
+ const { is } = useViewPort_default();
447
+ const isTabletBelow = is("tablet", "below");
448
+ const shouldAnimate = !title && animate;
449
+ return /* @__PURE__ */ jsxs(
450
+ "div",
451
+ {
452
+ className: clsx3(
453
+ BrandsStrip_module_default.brandsStrip,
454
+ BrandsStrip_module_default[variant],
455
+ { [BrandsStrip_module_default.small]: size === "small" },
456
+ className
457
+ ),
458
+ onMouseEnter: () => setShow(true),
459
+ onMouseLeave: () => setShow(false),
460
+ style: { "--total-items": logos.length },
461
+ children: [
462
+ /* @__PURE__ */ jsxs("div", { className: clsx3(BrandsStrip_module_default.container, { [BrandsStrip_module_default.blurred]: show && logos.length > 1 }), children: [
463
+ title && logos.length == 1 && /* @__PURE__ */ jsx("h2", { className: clsx3("body", BrandsStrip_module_default.title), children: title }),
464
+ logos.length > 0 && /* @__PURE__ */ jsx("div", { className: clsx3(BrandsStrip_module_default.logos, { [BrandsStrip_module_default.marquee]: shouldAnimate }), children: logos.map((logo, index) => /* @__PURE__ */ jsx(
465
+ "div",
466
+ {
467
+ className: clsx3(BrandsStrip_module_default.logoWrapper, { [BrandsStrip_module_default.paused]: show }),
468
+ style: { "--item-index": index },
469
+ children: /* @__PURE__ */ jsx(Picture, __spreadValues({ className: BrandsStrip_module_default.logo }, logo))
470
+ },
471
+ index
472
+ )) })
473
+ ] }),
474
+ cta && show && logos.length > 1 && /* @__PURE__ */ jsx(
475
+ Button,
476
+ {
477
+ className: BrandsStrip_module_default.cta,
478
+ variant: "secondary",
479
+ href: cta.url,
480
+ isExternal: cta.isExternal,
481
+ icon: "tiltedRightBlack",
482
+ fullWidth: isTabletBelow,
483
+ children: cta == null ? void 0 : cta.label
484
+ }
485
+ )
486
+ ]
487
+ }
488
+ );
489
+ };
490
+ var CardTitle = ({ children }) => {
491
+ return /* @__PURE__ */ jsx(Fragment, { children });
492
+ };
493
+ var CardSubtitle = ({ children }) => {
494
+ return /* @__PURE__ */ jsx(Fragment, { children });
495
+ };
496
+ function resolveCompoundSlots(children, slots) {
497
+ const resolved = {};
498
+ Children.forEach(children, (child) => {
499
+ if (!isValidElement(child)) return;
500
+ Object.entries(slots).forEach(([key, Component]) => {
501
+ if (child.type === Component) {
502
+ resolved[key] = child.props.children;
503
+ }
504
+ });
505
+ });
506
+ return resolved;
507
+ }
508
+
318
509
  // src/components/Card/Card.module.scss
319
510
  var Card_module_default = {};
320
- var Card = ({ className, title, subtitle, cta, icon }) => {
511
+ var Card = ({ className, title, subtitle, cta, icon, children }) => {
512
+ var _a, _b;
513
+ const slots = resolveCompoundSlots(children, {
514
+ title: CardTitle,
515
+ subtitle: CardSubtitle
516
+ });
517
+ const titleNode = (_a = slots.title) != null ? _a : title;
518
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
321
519
  return /* @__PURE__ */ jsxs("div", { className: clsx3(Card_module_default.card, className), children: [
322
520
  icon && /* @__PURE__ */ jsx(Icon, { type: icon }),
323
521
  /* @__PURE__ */ jsxs("div", { className: Card_module_default.content, children: [
324
- /* @__PURE__ */ jsx("h3", { className: "h4", children: title }),
325
- subtitle && /* @__PURE__ */ jsx("p", { children: subtitle })
522
+ titleNode && /* @__PURE__ */ jsx("h3", { className: "h4", children: titleNode }),
523
+ subtitleNode && /* @__PURE__ */ jsx("p", { children: subtitleNode })
326
524
  ] }),
327
525
  cta && /* @__PURE__ */ jsx(
328
526
  Button,
@@ -337,59 +535,68 @@ var Card = ({ className, title, subtitle, cta, icon }) => {
337
535
  ] });
338
536
  };
339
537
 
340
- // src/components/Picture/Picture.module.scss
341
- var Picture_module_default = {};
342
- var Picture = (_a) => {
343
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
344
- var _b2, _c;
345
- if ("src" in props) {
346
- return /* @__PURE__ */ jsx("img", __spreadValues({ className }, props));
347
- }
348
- const _a2 = props, { desktop, mobile } = _a2, rest = __objRest(_a2, ["desktop", "mobile"]);
349
- return /* @__PURE__ */ jsxs(Fragment, { children: [
350
- /* @__PURE__ */ jsx(
351
- "img",
352
- __spreadValues({
353
- src: desktop.src,
354
- alt: desktop.alt,
355
- className: clsx3(className, Picture_module_default["image-desktop"])
356
- }, rest)
357
- ),
358
- /* @__PURE__ */ jsx(
359
- "img",
360
- __spreadValues({
361
- src: (_b2 = mobile == null ? void 0 : mobile.src) != null ? _b2 : desktop.src,
362
- alt: (_c = mobile == null ? void 0 : mobile.alt) != null ? _c : desktop.alt,
363
- className: clsx3(className, Picture_module_default["image-mobile"])
364
- }, rest)
365
- )
366
- ] });
538
+ // src/components/Card/index.ts
539
+ var Card2 = Object.assign(Card, {
540
+ Title: CardTitle,
541
+ Subtitle: CardSubtitle
542
+ });
543
+ var CountingCardTitle = ({ children }) => {
544
+ return /* @__PURE__ */ jsx(Fragment, { children });
367
545
  };
368
546
 
369
547
  // src/components/CountingCard/CountingCard.module.scss
370
548
  var CountingCard_module_default = {};
371
- var CountingCard = ({ className, title, count, image }) => {
549
+ var CountingCard = ({ className, title, count, image, children }) => {
550
+ var _a;
551
+ const slots = resolveCompoundSlots(children, {
552
+ title: CountingCardTitle
553
+ });
554
+ const titleNode = (_a = slots.title) != null ? _a : title;
372
555
  return /* @__PURE__ */ jsxs("div", { className: clsx3(CountingCard_module_default["counting-card"], className), children: [
373
556
  /* @__PURE__ */ jsxs("div", { className: CountingCard_module_default.content, children: [
374
- title && /* @__PURE__ */ jsx("div", { className: "body", children: title }),
557
+ titleNode && /* @__PURE__ */ jsx("div", { className: "body", children: titleNode }),
375
558
  count && /* @__PURE__ */ jsx("div", { className: clsx3(CountingCard_module_default.count, "h1"), children: count })
376
559
  ] }),
377
560
  image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: CountingCard_module_default.logo }, image))
378
561
  ] });
379
562
  };
380
563
 
564
+ // src/components/CountingCard/index.ts
565
+ var CountingCard2 = Object.assign(CountingCard, {
566
+ Title: CountingCardTitle
567
+ });
568
+ var InfoCardTitle = ({ children }) => {
569
+ return /* @__PURE__ */ jsx(Fragment, { children });
570
+ };
571
+ var InfoCardSubtitle = ({ children }) => {
572
+ return /* @__PURE__ */ jsx(Fragment, { children });
573
+ };
574
+
381
575
  // src/components/InfoCard/InfoCard.module.scss
382
576
  var InfoCard_module_default = {};
383
- var InfoCard = ({ className, title, subtitle, icon, badge }) => {
577
+ var InfoCard = ({ className, title, subtitle, icon, badge, children }) => {
578
+ var _a, _b;
579
+ const slots = resolveCompoundSlots(children, {
580
+ title: InfoCardTitle,
581
+ subtitle: InfoCardSubtitle
582
+ });
583
+ const titleNode = (_a = slots.title) != null ? _a : title;
584
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
384
585
  return /* @__PURE__ */ jsxs("div", { className: clsx3(InfoCard_module_default["info-card"], { [InfoCard_module_default.hasIcon]: !!icon }, className), children: [
385
586
  /* @__PURE__ */ jsxs("div", { className: InfoCard_module_default.header, children: [
386
587
  icon ? /* @__PURE__ */ jsx(Icon, { type: icon }) : badge ? /* @__PURE__ */ jsx("div", { className: clsx3(InfoCard_module_default.badge, "h4"), children: badge }) : null,
387
- title && /* @__PURE__ */ jsx("div", { className: "h4", children: title })
588
+ titleNode && /* @__PURE__ */ jsx("div", { className: "h4", children: titleNode })
388
589
  ] }),
389
- subtitle && /* @__PURE__ */ jsx("div", { className: "body", children: subtitle })
590
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: "body", children: subtitleNode })
390
591
  ] });
391
592
  };
392
593
 
594
+ // src/components/InfoCard/index.ts
595
+ var InfoCard2 = Object.assign(InfoCard, {
596
+ Title: InfoCardTitle,
597
+ Subtitle: InfoCardSubtitle
598
+ });
599
+
393
600
  // src/components/Pagination/Pagination.module.scss
394
601
  var Pagination_module_default = {};
395
602
  var Pagination = ({
@@ -478,6 +685,38 @@ var Container = (_a) => {
478
685
  return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({ className: clsx3(Container_module_default.container, className) }, props), { children }));
479
686
  };
480
687
 
688
+ // src/components/PracticeCard/PracticeCard.module.scss
689
+ var PracticeCard_module_default = {};
690
+ var PracticeCard = ({ className, title, cta, image }) => {
691
+ const { url: href, isExternal } = cta != null ? cta : {};
692
+ return /* @__PURE__ */ jsx("div", { className: clsx3(PracticeCard_module_default["practice-card"], className), children: /* @__PURE__ */ jsxs(
693
+ ConditionalWrapper,
694
+ __spreadProps(__spreadValues({
695
+ className: PracticeCard_module_default.wrapper,
696
+ wrapper: Anchor,
697
+ fallback: "div",
698
+ condition: !!href
699
+ }, href ? { href, isExternal } : {}), {
700
+ children: [
701
+ image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: PracticeCard_module_default.background }, image)),
702
+ /* @__PURE__ */ jsxs("div", { className: PracticeCard_module_default.container, children: [
703
+ title && /* @__PURE__ */ jsx("div", { className: clsx3(PracticeCard_module_default.title, "h3"), children: title }),
704
+ href && /* @__PURE__ */ jsxs("div", { className: PracticeCard_module_default.cta, children: [
705
+ /* @__PURE__ */ jsx(Icon, { className: PracticeCard_module_default.ctaRest, type: "right" }),
706
+ /* @__PURE__ */ jsx(Icon, { className: PracticeCard_module_default.ctaHover, type: "tiltedRight" })
707
+ ] })
708
+ ] })
709
+ ]
710
+ })
711
+ ) });
712
+ };
713
+ var CardCollectionTitle = ({ children }) => {
714
+ return /* @__PURE__ */ jsx(Fragment, { children });
715
+ };
716
+ var CardCollectionSubtitle = ({ children }) => {
717
+ return /* @__PURE__ */ jsx(Fragment, { children });
718
+ };
719
+
481
720
  // src/widgets/CardCollection/CardCollection.module.scss
482
721
  var CardCollection_module_default = {};
483
722
  var CardCollection = ({
@@ -485,17 +724,190 @@ var CardCollection = ({
485
724
  variant = "default",
486
725
  title,
487
726
  subtitle,
488
- cards
727
+ cards,
728
+ children
489
729
  }) => {
730
+ var _a, _b;
731
+ const slots = resolveCompoundSlots(children, {
732
+ title: CardCollectionTitle,
733
+ subtitle: CardCollectionSubtitle
734
+ });
735
+ const titleNode = (_a = slots.title) != null ? _a : title;
736
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
490
737
  return /* @__PURE__ */ jsxs(Container, { className: clsx3(CardCollection_module_default["card-collection"], CardCollection_module_default[variant], className), children: [
491
738
  /* @__PURE__ */ jsxs("div", { className: CardCollection_module_default.content, children: [
492
- title && /* @__PURE__ */ jsx("h2", { children: title }),
493
- subtitle && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitle })
739
+ titleNode && /* @__PURE__ */ jsx("h2", { children: titleNode }),
740
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitleNode })
741
+ ] }),
742
+ /* @__PURE__ */ jsx("div", { className: CardCollection_module_default.wrapper, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsx(Card2, __spreadValues({ className: CardCollection_module_default.card }, card), key)) })
743
+ ] });
744
+ };
745
+
746
+ // src/widgets/CardCollection/index.ts
747
+ var CardCollection2 = Object.assign(CardCollection, {
748
+ Title: CardCollectionTitle,
749
+ Subtitle: CardCollectionSubtitle
750
+ });
751
+ var ContactModuleTitle = ({ children }) => {
752
+ return /* @__PURE__ */ jsx(Fragment, { children });
753
+ };
754
+ var ContactModuleSubtitle = ({ children }) => {
755
+ return /* @__PURE__ */ jsx(Fragment, { children });
756
+ };
757
+
758
+ // src/widgets/ContactModule/ContactModule.module.scss
759
+ var ContactModule_module_default = {};
760
+ var ContactModule = ({
761
+ className,
762
+ children,
763
+ title,
764
+ subtitle,
765
+ ctas,
766
+ image,
767
+ blurred
768
+ }) => {
769
+ var _a, _b;
770
+ const slots = resolveCompoundSlots(children, {
771
+ title: ContactModuleTitle,
772
+ subtitle: ContactModuleSubtitle
773
+ });
774
+ const titleNode = (_a = slots.title) != null ? _a : title;
775
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
776
+ return /* @__PURE__ */ jsx("div", { className: clsx3(ContactModule_module_default["contact-module"], { [ContactModule_module_default.blurred]: blurred }, className), children: /* @__PURE__ */ jsxs(Container, { className: ContactModule_module_default.container, children: [
777
+ /* @__PURE__ */ jsxs("div", { className: ContactModule_module_default.wrapper, children: [
778
+ /* @__PURE__ */ jsxs("div", { className: ContactModule_module_default.content, children: [
779
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx3(ContactModule_module_default.title, "h1"), children: titleNode }),
780
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitleNode })
781
+ ] }),
782
+ /* @__PURE__ */ jsx("div", { className: ContactModule_module_default["cta-wrapper"], children: ctas == null ? void 0 : ctas.map((cta, key) => /* @__PURE__ */ jsx(
783
+ Button,
784
+ {
785
+ className: ContactModule_module_default.cta,
786
+ href: cta.url,
787
+ isExternal: cta.isExternal,
788
+ variant: key % 2 === 0 ? "secondary" : "primary",
789
+ children: cta.label
790
+ },
791
+ key
792
+ )) })
793
+ ] }),
794
+ image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: ContactModule_module_default.image }, image))
795
+ ] }) });
796
+ };
797
+
798
+ // src/widgets/ContactModule/index.ts
799
+ var ContactModule2 = Object.assign(ContactModule, {
800
+ Title: ContactModuleTitle,
801
+ Subtitle: ContactModuleSubtitle
802
+ });
803
+
804
+ // src/widgets/HeroBanner/HeroBanner.module.scss
805
+ var HeroBanner_module_default = {};
806
+ var HeroBanner = ({
807
+ className,
808
+ variant = "pageHeroBanner",
809
+ title,
810
+ subtitle,
811
+ backgroundImage,
812
+ logo,
813
+ cta,
814
+ brands
815
+ }) => {
816
+ const { is } = useViewPort_default();
817
+ const isTabletBelow = is("tablet", "below");
818
+ const isDesktopBelow = is("desktop", "below");
819
+ const vMainHeroBanner = variant === "mainHeroBanner";
820
+ const vBannerPodcast = variant === "bannerPodcast";
821
+ const animated = brands && brands.logos && brands.logos.length >= 4 && isDesktopBelow;
822
+ return /* @__PURE__ */ jsxs("div", { className: clsx3(HeroBanner_module_default.heroBanner, HeroBanner_module_default[variant], className), children: [
823
+ /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.container, children: [
824
+ /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.banner, children: [
825
+ (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.text, children: [
826
+ title && /* @__PURE__ */ jsx("h1", { className: clsx3(HeroBanner_module_default.title, "h1"), children: title }),
827
+ subtitle && /* @__PURE__ */ jsx("div", { className: clsx3(HeroBanner_module_default.subtitle, "subtitle"), children: subtitle })
828
+ ] }),
829
+ cta && cta.length > 0 && !vBannerPodcast && /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.ctaContainer, children: cta.map((cta2, key) => {
830
+ return /* @__PURE__ */ jsx(
831
+ Button,
832
+ {
833
+ href: cta2.url,
834
+ isExternal: cta2.isExternal,
835
+ variant: key % 2 ? vMainHeroBanner && !isTabletBelow ? "nofill" : "grey" : "primary",
836
+ fullWidth: isTabletBelow,
837
+ children: cta2.label
838
+ },
839
+ key
840
+ );
841
+ }) })
842
+ ] }),
843
+ /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.logoWrapper, children: logo && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: HeroBanner_module_default.logo }, logo)) }),
844
+ !vBannerPodcast && /* @__PURE__ */ jsx(
845
+ BrandsStrip,
846
+ __spreadValues({
847
+ className: HeroBanner_module_default.brandsStrip,
848
+ variant: "light",
849
+ size: isTabletBelow || vMainHeroBanner ? "small" : void 0,
850
+ animate: animated
851
+ }, brands)
852
+ ),
853
+ backgroundImage && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: HeroBanner_module_default.backgroundImage }, backgroundImage))
854
+ ] }),
855
+ /* @__PURE__ */ jsxs("div", { className: HeroBanner_module_default.horizontalGradient, children: [
856
+ /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.lensCrafters }),
857
+ /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.forEyes }),
858
+ /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.optical }),
859
+ /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.pearleVision })
494
860
  ] }),
495
- /* @__PURE__ */ jsx("div", { className: CardCollection_module_default.wrapper, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsx(Card, __spreadValues({ className: CardCollection_module_default.card }, card), key)) })
861
+ !vBannerPodcast && /* @__PURE__ */ jsx("div", { className: HeroBanner_module_default.scrollDown, children: /* @__PURE__ */ jsx(Icon, { type: "downChevronBlack", className: HeroBanner_module_default.arrow }) })
862
+ ] });
863
+ };
864
+ var MiniBannerTitle = ({ children }) => {
865
+ return /* @__PURE__ */ jsx(Fragment, { children });
866
+ };
867
+ var MiniBannerSubtitle = ({ children }) => {
868
+ return /* @__PURE__ */ jsx(Fragment, { children });
869
+ };
870
+
871
+ // src/widgets/MiniBanner/MiniBanner.module.scss
872
+ var MiniBanner_module_default = {};
873
+ var MiniBanner = ({
874
+ className,
875
+ variant = "default",
876
+ title,
877
+ subtitle,
878
+ logo,
879
+ background,
880
+ children
881
+ }) => {
882
+ var _a, _b;
883
+ const slots = resolveCompoundSlots(children, {
884
+ title: MiniBannerTitle,
885
+ subtitle: MiniBannerSubtitle
886
+ });
887
+ const titleNode = (_a = slots.title) != null ? _a : title;
888
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
889
+ return /* @__PURE__ */ jsxs("div", { className: clsx3(MiniBanner_module_default.minibanner, MiniBanner_module_default[variant], className), children: [
890
+ background && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: MiniBanner_module_default.background }, background)),
891
+ /* @__PURE__ */ jsxs(Container, { className: MiniBanner_module_default.container, children: [
892
+ logo && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: MiniBanner_module_default.logo }, logo)),
893
+ titleNode && /* @__PURE__ */ jsx("div", { className: "h4", children: titleNode }),
894
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: variant === "miniBannerNoBG" ? "subheading" : "h1", children: subtitleNode })
895
+ ] })
496
896
  ] });
497
897
  };
498
898
 
899
+ // src/widgets/MiniBanner/index.ts
900
+ var MiniBanner2 = Object.assign(MiniBanner, {
901
+ Title: MiniBannerTitle,
902
+ Subtitle: MiniBannerSubtitle
903
+ });
904
+ var MiniSectionCtaTitle = ({ children }) => {
905
+ return /* @__PURE__ */ jsx(Fragment, { children });
906
+ };
907
+ var MiniSectionCtaSubtitle = ({ children }) => {
908
+ return /* @__PURE__ */ jsx(Fragment, { children });
909
+ };
910
+
499
911
  // src/widgets/MiniSectionCta/MiniSectionCta.module.scss
500
912
  var MiniSectionCta_module_default = {};
501
913
  var MiniSectionCta = ({
@@ -503,12 +915,20 @@ var MiniSectionCta = ({
503
915
  variant = "headerCTA",
504
916
  title,
505
917
  subtitle,
506
- cta
918
+ cta,
919
+ children
507
920
  }) => {
921
+ var _a, _b;
922
+ const slots = resolveCompoundSlots(children, {
923
+ title: MiniSectionCtaTitle,
924
+ subtitle: MiniSectionCtaSubtitle
925
+ });
926
+ const titleNode = (_a = slots.title) != null ? _a : title;
927
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
508
928
  return /* @__PURE__ */ jsx("div", { className: clsx3(MiniSectionCta_module_default.miniSectionCta, MiniSectionCta_module_default[variant], className), children: /* @__PURE__ */ jsxs(Container, { className: MiniSectionCta_module_default.container, children: [
509
929
  /* @__PURE__ */ jsxs("div", { className: MiniSectionCta_module_default.col, children: [
510
- title && /* @__PURE__ */ jsx("h2", { className: variant === "BgColorBlack" || variant === "BgColorGrey" ? "h3" : "h2", children: title }),
511
- subtitle && /* @__PURE__ */ jsx("div", { className: clsx3(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"), children: subtitle })
930
+ titleNode && /* @__PURE__ */ jsx("h2", { className: variant === "BgColorBlack" || variant === "BgColorGrey" ? "h3" : "h2", children: titleNode }),
931
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: clsx3(MiniSectionCta_module_default.subtitle, variant === "infoCallout" ? "h4" : "subheading"), children: subtitleNode })
512
932
  ] }),
513
933
  cta && /* @__PURE__ */ jsx("div", { className: MiniSectionCta_module_default.col, children: /* @__PURE__ */ jsx(
514
934
  Button,
@@ -516,7 +936,7 @@ var MiniSectionCta = ({
516
936
  className: MiniSectionCta_module_default.cta,
517
937
  href: cta.url,
518
938
  isExternal: cta.isExternal,
519
- variant: "primary",
939
+ variant: variant === "BgColorBlack" ? "shiny" : "primary",
520
940
  icon: variant === "miniTextCenterCta" ? "tiltedRightWhite" : void 0,
521
941
  children: cta.label
522
942
  }
@@ -524,6 +944,73 @@ var MiniSectionCta = ({
524
944
  ] }) });
525
945
  };
526
946
 
947
+ // src/widgets/MiniSectionCta/index.ts
948
+ var MiniSectionCta2 = Object.assign(MiniSectionCta, {
949
+ Title: MiniSectionCtaTitle,
950
+ Subtitle: MiniSectionCtaSubtitle
951
+ });
952
+ var PracticePathCardsFooter = ({ children }) => {
953
+ return /* @__PURE__ */ jsx(Fragment, { children });
954
+ };
955
+ var PracticePathCardsSubtitle = ({ children }) => {
956
+ return /* @__PURE__ */ jsx(Fragment, { children });
957
+ };
958
+ var PracticePathCardsTitle = ({ children }) => {
959
+ return /* @__PURE__ */ jsx(Fragment, { children });
960
+ };
961
+
962
+ // src/widgets/PracticePathCards/PracticePathCards.module.scss
963
+ var PracticePathCards_module_default = {};
964
+ var PracticePathCards = ({
965
+ className,
966
+ children,
967
+ cards,
968
+ title,
969
+ subtitle,
970
+ footer,
971
+ cta
972
+ }) => {
973
+ var _a, _b, _c;
974
+ const slots = resolveCompoundSlots(children, {
975
+ title: PracticePathCardsTitle,
976
+ subtitle: PracticePathCardsSubtitle,
977
+ footer: PracticePathCardsFooter
978
+ });
979
+ const titleNode = (_a = slots.title) != null ? _a : title;
980
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
981
+ const footerNode = (_c = slots.footer) != null ? _c : footer;
982
+ return /* @__PURE__ */ jsx("div", { className: clsx3(PracticePathCards_module_default["practice-path-cards"], className), children: /* @__PURE__ */ jsxs(Container, { className: PracticePathCards_module_default.container, children: [
983
+ /* @__PURE__ */ jsxs("div", { className: PracticePathCards_module_default.wrapper, children: [
984
+ /* @__PURE__ */ jsxs("div", { className: PracticePathCards_module_default.content, children: [
985
+ titleNode && /* @__PURE__ */ jsx("h2", { children: titleNode }),
986
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitleNode })
987
+ ] }),
988
+ (cta == null ? void 0 : cta.url) && /* @__PURE__ */ jsx("div", { className: PracticePathCards_module_default.ctaWrapper, children: /* @__PURE__ */ jsx(
989
+ Button,
990
+ {
991
+ className: PracticePathCards_module_default.cta,
992
+ variant: "secondary",
993
+ href: cta.url,
994
+ isExternal: cta == null ? void 0 : cta.isExternal,
995
+ children: cta == null ? void 0 : cta.label
996
+ }
997
+ ) })
998
+ ] }),
999
+ /* @__PURE__ */ jsx("div", { className: PracticePathCards_module_default.cards, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsx(PracticeCard, __spreadValues({ className: PracticePathCards_module_default.card }, card), key)) }),
1000
+ footerNode && /* @__PURE__ */ jsx("div", { className: "smallest", children: footerNode })
1001
+ ] }) });
1002
+ };
1003
+
1004
+ // src/widgets/PracticePathCards/index.ts
1005
+ var PracticePathCards2 = Object.assign(PracticePathCards, {
1006
+ Title: PracticePathCardsTitle,
1007
+ Subtitle: PracticePathCardsSubtitle,
1008
+ Footer: PracticePathCardsFooter
1009
+ });
1010
+ var Teaser5050With3TextTitle = ({ children }) => {
1011
+ return /* @__PURE__ */ jsx(Fragment, { children });
1012
+ };
1013
+
527
1014
  // src/widgets/Teaser5050With3Text/Teaser5050With3Text.module.scss
528
1015
  var Teaser5050With3Text_module_default = {};
529
1016
  var Teaser5050With3Text = ({
@@ -531,32 +1018,57 @@ var Teaser5050With3Text = ({
531
1018
  variant = "left",
532
1019
  title,
533
1020
  cards,
534
- image
1021
+ image,
1022
+ children
535
1023
  }) => {
1024
+ var _a;
1025
+ const slots = resolveCompoundSlots(children, {
1026
+ title: Teaser5050With3TextTitle
1027
+ });
1028
+ const titleNode = (_a = slots.title) != null ? _a : title;
536
1029
  return /* @__PURE__ */ jsx("div", { className: clsx3(Teaser5050With3Text_module_default["teaser5050-3text"], Teaser5050With3Text_module_default[variant], className), children: /* @__PURE__ */ jsxs(Container, { className: Teaser5050With3Text_module_default.container, children: [
537
- title && /* @__PURE__ */ jsx("div", { className: clsx3(Teaser5050With3Text_module_default.title, "h3"), children: title }),
1030
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx3(Teaser5050With3Text_module_default.title, "h3"), children: titleNode }),
538
1031
  /* @__PURE__ */ jsxs("div", { className: Teaser5050With3Text_module_default.content, children: [
539
- /* @__PURE__ */ jsx("div", { className: Teaser5050With3Text_module_default.cards, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsx(InfoCard, __spreadValues({}, card), key)) }),
1032
+ /* @__PURE__ */ jsx("div", { className: Teaser5050With3Text_module_default.cards, children: cards == null ? void 0 : cards.map((card, key) => /* @__PURE__ */ jsx(InfoCard2, __spreadValues({}, card), key)) }),
540
1033
  image && /* @__PURE__ */ jsx(Picture, __spreadValues({ className: Teaser5050With3Text_module_default.image }, image))
541
1034
  ] })
542
1035
  ] }) });
543
1036
  };
544
1037
 
1038
+ // src/widgets/Teaser5050With3Text/index.ts
1039
+ var Teaser5050With3Text2 = Object.assign(Teaser5050With3Text, {
1040
+ Title: Teaser5050With3TextTitle
1041
+ });
1042
+
545
1043
  // src/widgets/Teaser5050WithCta/Teaser5050WithCta.module.scss
546
1044
  var Teaser5050WithCta_module_default = {};
1045
+ var Teaser5050WithCtaTitle = ({ children }) => {
1046
+ return /* @__PURE__ */ jsx(Fragment, { children });
1047
+ };
1048
+ var Teaser5050WithCtaSubtitle = ({ children }) => {
1049
+ return /* @__PURE__ */ jsx(Fragment, { children });
1050
+ };
547
1051
  var Teaser5050WithCta = ({
548
1052
  className,
549
1053
  variant = "left",
550
1054
  title,
551
1055
  subtitle,
552
1056
  cta,
553
- image
1057
+ image,
1058
+ children
554
1059
  }) => {
1060
+ var _a, _b;
1061
+ const slots = resolveCompoundSlots(children, {
1062
+ title: Teaser5050WithCtaTitle,
1063
+ subtitle: Teaser5050WithCtaSubtitle
1064
+ });
1065
+ const titleNode = (_a = slots.title) != null ? _a : title;
1066
+ const subtitleNode = (_b = slots.subtitle) != null ? _b : subtitle;
555
1067
  return /* @__PURE__ */ jsx("div", { className: clsx3(Teaser5050WithCta_module_default.teaser5050, Teaser5050WithCta_module_default[variant], className), children: /* @__PURE__ */ jsxs(Container, { className: Teaser5050WithCta_module_default.container, children: [
556
1068
  /* @__PURE__ */ jsxs("div", { className: Teaser5050WithCta_module_default.wrapper, children: [
557
1069
  /* @__PURE__ */ jsxs("div", { className: Teaser5050WithCta_module_default.content, children: [
558
- title && /* @__PURE__ */ jsx("div", { className: clsx3(Teaser5050WithCta_module_default.title, "h3"), children: title }),
559
- subtitle && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitle })
1070
+ titleNode && /* @__PURE__ */ jsx("div", { className: clsx3(Teaser5050WithCta_module_default.title, "h3"), children: titleNode }),
1071
+ subtitleNode && /* @__PURE__ */ jsx("div", { className: "subheading", children: subtitleNode })
560
1072
  ] }),
561
1073
  cta && /* @__PURE__ */ jsx(
562
1074
  Button,
@@ -573,6 +1085,6 @@ var Teaser5050WithCta = ({
573
1085
  ] }) });
574
1086
  };
575
1087
 
576
- export { Anchor, Button, Card, CardCollection, ConditionalWrapper, Container, CountingCard, Icon, InfoCard, MiniSectionCta, Pagination, Picture, Teaser5050With3Text, Teaser5050WithCta, svgs };
1088
+ export { Anchor, BrandsStrip, Button, Card2 as Card, CardCollection2 as CardCollection, ConditionalWrapper, ContactModule2 as ContactModule, Container, CountingCard2 as CountingCard, HeroBanner, Icon, InfoCard2 as InfoCard, MiniBanner2 as MiniBanner, MiniSectionCta2 as MiniSectionCta, Pagination, Picture, PracticeCard, PracticePathCards2 as PracticePathCards, Teaser5050With3Text2 as Teaser5050With3Text, Teaser5050WithCta, svgs };
577
1089
  //# sourceMappingURL=index.mjs.map
578
1090
  //# sourceMappingURL=index.mjs.map