@riligar/components-kit 1.1.0 → 1.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.js CHANGED
@@ -1,1753 +1 @@
1
- 'use strict';
2
-
3
- var core = require('@mantine/core');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var hooks = require('@mantine/hooks');
6
- var iconsReact = require('@tabler/icons-react');
7
- var react = require('react');
8
-
9
- // RiLiGar Design System Theme — same as console
10
- const theme = core.createTheme({
11
- fontFamily: 'Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
12
- headings: {
13
- fontFamily: 'Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
14
- fontWeight: "900"
15
- },
16
- colors: {
17
- // RiLiGar Monochrome Palette - Zen Optimized
18
- gray: ["#FFFFFF",
19
- // 0: App Base (Pure White)
20
- "#F9FAFB",
21
- // 1: Hover / Secondary Background
22
- "#F3F4F6",
23
- // 2: Border Standard
24
- "#E5E7EB",
25
- // 3: Disabled / Muted Border
26
- "#9CA3AF",
27
- // 4: Quaternary Text
28
- "#6B7280",
29
- // 5: Tertiary Text (Labels)
30
- "#4B5563",
31
- // 6: Secondary Text
32
- "#374151",
33
- // 7: Secondary Text Dark
34
- "#1F2937",
35
- // 8: Primary Text Dark
36
- "#11181C" // 9: Primary Text (RiLiGar Absolute)
37
- ]
38
- },
39
- primaryColor: "gray",
40
- primaryShade: 9,
41
- autoContrast: true,
42
- defaultRadius: "0",
43
- // Zen prefers sharp or very subtle radius, defaulting to 0 for inputs/buttons
44
-
45
- components: {
46
- Container: {
47
- defaultProps: {
48
- size: "xl",
49
- // Zen uses XL containers
50
- px: "md"
51
- }
52
- },
53
- Paper: {
54
- defaultProps: {
55
- withBorder: true,
56
- shadow: "none",
57
- radius: "0",
58
- bg: "white"
59
- }
60
- },
61
- Card: {
62
- defaultProps: {
63
- withBorder: false,
64
- // Zen reduces borders
65
- shadow: "none",
66
- radius: "0",
67
- padding: "xl",
68
- bg: "transparent"
69
- }
70
- },
71
- Button: {
72
- defaultProps: {
73
- size: "md",
74
- fw: 800,
75
- radius: "0",
76
- variant: "filled",
77
- color: "gray.9"
78
- },
79
- styles: {
80
- root: {
81
- textTransform: "uppercase",
82
- letterSpacing: "1px"
83
- }
84
- }
85
- },
86
- TextInput: {
87
- defaultProps: {
88
- size: "lg",
89
- radius: "0",
90
- variant: "unstyled" // Zen Minimalist Inputs
91
- },
92
- styles: {
93
- input: {
94
- borderBottom: "1px solid var(--mantine-color-gray-2)",
95
- paddingLeft: 0,
96
- paddingRight: 0
97
- }
98
- }
99
- },
100
- Title: {
101
- defaultProps: {
102
- lh: 1.1,
103
- c: "gray.9",
104
- ls: "-0.04em" // Zen Massive Hierarchy
105
- }
106
- },
107
- Text: {
108
- defaultProps: {
109
- lh: 1.6,
110
- c: "gray.9",
111
- size: "md"
112
- }
113
- },
114
- Badge: {
115
- defaultProps: {
116
- variant: "dot",
117
- // Zen Subtle Badges
118
- color: "gray",
119
- radius: "0",
120
- size: "sm"
121
- },
122
- styles: {
123
- root: {
124
- textTransform: "uppercase",
125
- letterSpacing: "1.5px",
126
- fontWeight: 800
127
- }
128
- }
129
- },
130
- ThemeIcon: {
131
- defaultProps: {
132
- variant: "light",
133
- color: "gray",
134
- radius: "0",
135
- size: "lg"
136
- }
137
- },
138
- Divider: {
139
- defaultProps: {
140
- color: "gray.2"
141
- }
142
- }
143
- }
144
- });
145
-
146
- function SectionHeader({
147
- subtitle,
148
- title,
149
- titleOrder = 2,
150
- titleFz = "var(--fz-section-title)",
151
- ta = "left",
152
- maw
153
- }) {
154
- if (!title && !subtitle) return null;
155
- return /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
156
- gap: "xs",
157
- align: ta === "center" ? "center" : "flex-start",
158
- ta: ta,
159
- children: [subtitle && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
160
- c: "gray.4",
161
- size: "xs",
162
- fw: 800,
163
- tt: "uppercase",
164
- ls: "1.5px",
165
- children: subtitle
166
- }), title && /*#__PURE__*/jsxRuntime.jsx(core.Title, {
167
- order: titleOrder,
168
- fz: titleFz,
169
- maw: maw,
170
- children: title
171
- })]
172
- });
173
- }
174
-
175
- function MediaBlock({
176
- video,
177
- image,
178
- width = "100%",
179
- alt
180
- }) {
181
- if (video) {
182
- return /*#__PURE__*/jsxRuntime.jsx(core.Center, {
183
- children: /*#__PURE__*/jsxRuntime.jsx(core.Box, {
184
- component: "video",
185
- src: video.src,
186
- autoPlay: true,
187
- loop: true,
188
- muted: true,
189
- playsInline: true,
190
- "aria-label": alt || "Demonstração em vídeo",
191
- w: video.width || width,
192
- h: "auto",
193
- style: {
194
- filter: video.filter || "none"
195
- }
196
- })
197
- });
198
- }
199
- if (image) {
200
- return /*#__PURE__*/jsxRuntime.jsx(core.Center, {
201
- children: /*#__PURE__*/jsxRuntime.jsx(core.Box, {
202
- component: "img",
203
- src: image,
204
- alt: alt || "",
205
- w: width,
206
- h: "auto"
207
- })
208
- });
209
- }
210
- return null;
211
- }
212
-
213
- function CTAButton({
214
- label,
215
- href,
216
- onClick,
217
- icon,
218
- size = "lg",
219
- variant = "filled",
220
- color,
221
- target,
222
- px,
223
- fullWidth,
224
- leftSection,
225
- ...rest
226
- }) {
227
- return /*#__PURE__*/jsxRuntime.jsx(core.Button, {
228
- size: size,
229
- component: href ? "a" : "button",
230
- href: href,
231
- onClick: onClick,
232
- target: target,
233
- rightSection: icon,
234
- leftSection: leftSection,
235
- variant: variant,
236
- color: color,
237
- px: px,
238
- fullWidth: fullWidth,
239
- ...rest,
240
- children: label
241
- });
242
- }
243
-
244
- /**
245
- * SECTION_BACKGROUNDS - Central configuration for section backgrounds.
246
- * Supports "white" and "gray" (Mantine gray.0).
247
- */
248
- const SECTION_BACKGROUNDS = {
249
- white: "white",
250
- gray: "gray.0"
251
- };
252
-
253
- /**
254
- * Helper to resolve the background token for Mantine's 'bg' prop.
255
- * @param {string} background - "white" | "gray"
256
- * @returns {string} - The Mantine color token
257
- */
258
- const resolveBackground = background => {
259
- return SECTION_BACKGROUNDS[background] || SECTION_BACKGROUNDS.white;
260
- };
261
-
262
- function Layout({
263
- children,
264
- title,
265
- subtitle,
266
- id,
267
- background = "white",
268
- py = {
269
- base: 80,
270
- md: 120
271
- },
272
- maw = 800,
273
- ta = "left",
274
- stackGap = "xl"
275
- }) {
276
- const bg = resolveBackground(background);
277
- return /*#__PURE__*/jsxRuntime.jsx(core.Box, {
278
- component: "section",
279
- id: id,
280
- bg: bg,
281
- py: py,
282
- style: {
283
- overflow: "hidden"
284
- },
285
- children: /*#__PURE__*/jsxRuntime.jsx(core.Container, {
286
- size: "lg",
287
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
288
- gap: stackGap,
289
- children: [/*#__PURE__*/jsxRuntime.jsx(SectionHeader, {
290
- subtitle: subtitle,
291
- title: title,
292
- ta: ta,
293
- maw: maw
294
- }), /*#__PURE__*/jsxRuntime.jsx(core.Box, {
295
- children: children
296
- })]
297
- })
298
- })
299
- });
300
- }
301
-
302
- function Header({
303
- logo,
304
- navLinks = [],
305
- loginCta,
306
- signupCta,
307
- background = "white"
308
- }) {
309
- const bg = resolveBackground(background);
310
- const [scroll] = hooks.useWindowScroll();
311
- const scrolled = scroll.y > 10;
312
- const handleNavClick = target => {
313
- if (target === "top") {
314
- window.scrollTo({
315
- top: 0,
316
- behavior: "smooth"
317
- });
318
- } else {
319
- document.getElementById(target)?.scrollIntoView({
320
- behavior: "smooth"
321
- });
322
- }
323
- };
324
- const handleNavKeyDown = (e, target) => {
325
- if (e.key === "Enter" || e.key === " ") {
326
- e.preventDefault();
327
- handleNavClick(target);
328
- }
329
- };
330
- return /*#__PURE__*/jsxRuntime.jsx(core.Box, {
331
- component: "header",
332
- pos: "sticky",
333
- top: 0,
334
- w: "100%",
335
- style: {
336
- zIndex: 100,
337
- pointerEvents: "none"
338
- },
339
- children: /*#__PURE__*/jsxRuntime.jsx(core.Container, {
340
- size: "xl",
341
- py: "md",
342
- children: /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
343
- shadow: scrolled ? "sm" : "none",
344
- radius: "0",
345
- p: "xs",
346
- bg: bg,
347
- bd: scrolled ? "1px solid var(--mantine-color-gray-2)" : "1px solid transparent",
348
- style: {
349
- pointerEvents: "auto",
350
- transition: "all 0.2s ease"
351
- },
352
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
353
- justify: "space-between",
354
- align: "center",
355
- px: {
356
- base: "xs",
357
- sm: "md"
358
- },
359
- children: [logo && /*#__PURE__*/jsxRuntime.jsx("a", {
360
- href: "#",
361
- "aria-label": "Voltar ao topo",
362
- onClick: e => {
363
- e.preventDefault();
364
- window.scrollTo({
365
- top: 0,
366
- behavior: "smooth"
367
- });
368
- },
369
- style: {
370
- display: "inline-flex"
371
- },
372
- children: /*#__PURE__*/jsxRuntime.jsx("img", {
373
- src: logo.src,
374
- alt: logo.alt || "",
375
- height: logo.height || 32,
376
- style: {
377
- objectFit: "contain"
378
- }
379
- })
380
- }), navLinks.length > 0 && /*#__PURE__*/jsxRuntime.jsx(core.Group, {
381
- gap: "xl",
382
- visibleFrom: "sm",
383
- component: "nav",
384
- role: "navigation",
385
- "aria-label": "Menu principal",
386
- children: navLinks.map(link => /*#__PURE__*/jsxRuntime.jsx(core.Text, {
387
- size: "sm",
388
- fw: 900,
389
- tt: "uppercase",
390
- ls: "1px",
391
- c: "dark",
392
- role: "link",
393
- tabIndex: 0,
394
- style: {
395
- cursor: "pointer"
396
- },
397
- onClick: () => handleNavClick(link.target),
398
- onKeyDown: e => handleNavKeyDown(e, link.target),
399
- children: link.label
400
- }, link.label))
401
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
402
- gap: "sm",
403
- children: [loginCta && /*#__PURE__*/jsxRuntime.jsx(core.Button, {
404
- variant: "subtle",
405
- component: loginCta.href ? "a" : "button",
406
- href: loginCta.href,
407
- onClick: loginCta.onClick,
408
- c: "gray.7",
409
- size: "sm",
410
- radius: "0",
411
- visibleFrom: "xs",
412
- fw: 900,
413
- children: loginCta.label
414
- }), signupCta && /*#__PURE__*/jsxRuntime.jsxs(core.Button, {
415
- component: signupCta.href ? "a" : "button",
416
- href: signupCta.href,
417
- onClick: signupCta.onClick,
418
- size: "sm",
419
- radius: "0",
420
- color: "dark",
421
- variant: "filled",
422
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
423
- span: true,
424
- visibleFrom: "sm",
425
- c: "white",
426
- fw: 900,
427
- size: "sm",
428
- children: signupCta.label
429
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
430
- span: true,
431
- hiddenFrom: "sm",
432
- c: "white",
433
- fw: 900,
434
- size: "xs",
435
- children: signupCta.labelMobile || signupCta.label
436
- })]
437
- })]
438
- })]
439
- })
440
- })
441
- })
442
- });
443
- }
444
-
445
- /** @deprecated Use Header instead */
446
- const Navbar = Header;
447
-
448
- function Hero({
449
- subtitle,
450
- title,
451
- description,
452
- cta,
453
- video,
454
- image,
455
- background = "white"
456
- }) {
457
- const bg = resolveBackground(background);
458
- return /*#__PURE__*/jsxRuntime.jsx(core.Box, {
459
- py: {
460
- base: 80,
461
- sm: 100,
462
- md: 140
463
- },
464
- id: "hero",
465
- bg: bg,
466
- children: /*#__PURE__*/jsxRuntime.jsx(core.Container, {
467
- size: "lg",
468
- children: /*#__PURE__*/jsxRuntime.jsxs(core.SimpleGrid, {
469
- cols: {
470
- base: 1,
471
- md: 2
472
- },
473
- spacing: {
474
- base: 60,
475
- md: 100
476
- },
477
- verticalSpacing: 60,
478
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
479
- align: {
480
- base: "center",
481
- md: "flex-start"
482
- },
483
- justify: "center",
484
- gap: {
485
- base: 32,
486
- md: 48
487
- },
488
- ta: {
489
- base: "center",
490
- md: "left"
491
- },
492
- children: [/*#__PURE__*/jsxRuntime.jsx(SectionHeader, {
493
- subtitle: subtitle,
494
- title: title,
495
- titleOrder: 1,
496
- titleFz: "var(--fz-hero)",
497
- ta: "inherit"
498
- }), description && /*#__PURE__*/jsxRuntime.jsx(core.Center, {
499
- children: /*#__PURE__*/jsxRuntime.jsx(core.Text, {
500
- size: "xl",
501
- c: "gray.6",
502
- lh: 1.6,
503
- maw: 600,
504
- children: description
505
- })
506
- }), cta && /*#__PURE__*/jsxRuntime.jsx(core.Center, {
507
- children: /*#__PURE__*/jsxRuntime.jsx(core.Group, {
508
- gap: "md",
509
- justify: {
510
- base: "center",
511
- md: "flex-start"
512
- },
513
- children: /*#__PURE__*/jsxRuntime.jsx(CTAButton, {
514
- label: cta.label,
515
- href: cta.href,
516
- icon: cta.icon,
517
- size: cta.size || "xl",
518
- px: cta.px || 48,
519
- variant: cta.variant,
520
- color: cta.color
521
- })
522
- })
523
- })]
524
- }), /*#__PURE__*/jsxRuntime.jsx(MediaBlock, {
525
- video: video,
526
- image: image,
527
- alt: "Demonstra\xE7\xE3o do produto"
528
- })]
529
- })
530
- })
531
- });
532
- }
533
-
534
- function LogoItem({
535
- logo,
536
- index
537
- }) {
538
- const imageProps = {
539
- src: logo.src,
540
- alt: logo.alt || `Logo ${index}`,
541
- h: logo.height || 50,
542
- w: "auto",
543
- style: {
544
- filter: "grayscale(1) opacity(0.4)",
545
- transition: "filter 0.3s ease, opacity 0.3s ease",
546
- ...logo.style
547
- },
548
- onMouseEnter: e => {
549
- e.currentTarget.style.filter = "grayscale(0) opacity(0.8)";
550
- },
551
- onMouseLeave: e => {
552
- e.currentTarget.style.filter = "grayscale(1) opacity(0.4)";
553
- }
554
- };
555
- if (logo.url) {
556
- return /*#__PURE__*/jsxRuntime.jsx(core.Center, {
557
- children: /*#__PURE__*/jsxRuntime.jsx("a", {
558
- href: logo.url,
559
- target: "_blank",
560
- rel: "noopener noreferrer",
561
- children: /*#__PURE__*/jsxRuntime.jsx(core.Image, {
562
- ...imageProps
563
- })
564
- })
565
- });
566
- }
567
- return /*#__PURE__*/jsxRuntime.jsx(core.Center, {
568
- children: /*#__PURE__*/jsxRuntime.jsx(core.Image, {
569
- ...imageProps
570
- })
571
- });
572
- }
573
-
574
- /**
575
- * SocialProof - Logo bar showing partner/client logos.
576
- *
577
- * @param {string} id - Section ID for scroll navigation
578
- * @param {string} title - Optional heading text
579
- * @param {array} logos - [{ src, alt, height, url?, style? }]
580
- */
581
- function SocialProof({
582
- id,
583
- title,
584
- logos,
585
- background = "gray"
586
- }) {
587
- const bg = resolveBackground(background);
588
- if (!logos || logos.length === 0) return null;
589
- return /*#__PURE__*/jsxRuntime.jsx(core.Box, {
590
- component: "section",
591
- id: id,
592
- py: {
593
- base: 40,
594
- md: 60
595
- },
596
- bg: bg,
597
- bd: {
598
- bottom: "1px solid var(--mantine-color-gray-1)"
599
- },
600
- children: /*#__PURE__*/jsxRuntime.jsx(core.Container, {
601
- size: "lg",
602
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
603
- align: "center",
604
- ta: "center",
605
- gap: "xl",
606
- children: [title && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
607
- fw: 500,
608
- c: "gray.5",
609
- size: "sm",
610
- tt: "uppercase",
611
- ls: "0.1em",
612
- children: title
613
- }), /*#__PURE__*/jsxRuntime.jsx(core.Group, {
614
- justify: "space-between",
615
- gap: {
616
- base: 40,
617
- md: 80
618
- },
619
- style: {
620
- rowGap: 40
621
- },
622
- w: "100%",
623
- children: logos.map((logo, i) => /*#__PURE__*/jsxRuntime.jsx(LogoItem, {
624
- logo: logo,
625
- index: i
626
- }, i))
627
- })]
628
- })
629
- })
630
- });
631
- }
632
-
633
- function FeatureSplit({
634
- id,
635
- subtitle,
636
- title,
637
- description,
638
- featuresList,
639
- cta,
640
- video,
641
- image,
642
- reverse = false,
643
- background = "white"
644
- }) {
645
- const listComponent = featuresList && featuresList.length > 0 && /*#__PURE__*/jsxRuntime.jsx(core.List, {
646
- spacing: "md",
647
- size: "md",
648
- center: true,
649
- icon: /*#__PURE__*/jsxRuntime.jsx(core.ThemeIcon, {
650
- color: "gray.2",
651
- size: 24,
652
- radius: "0",
653
- children: /*#__PURE__*/jsxRuntime.jsx(iconsReact.IconCheck, {
654
- size: 14,
655
- color: "var(--mantine-color-gray-9)"
656
- })
657
- }),
658
- children: featuresList.map((item, index) => /*#__PURE__*/jsxRuntime.jsx(core.List.Item, {
659
- children: item
660
- }, index))
661
- });
662
- const contentCol = /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
663
- justify: "center",
664
- gap: "lg",
665
- children: [description && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
666
- c: "gray.6",
667
- size: "xl",
668
- lh: 1.6,
669
- children: description
670
- }), listComponent, cta && /*#__PURE__*/jsxRuntime.jsx(core.Group, {
671
- mt: "md",
672
- children: /*#__PURE__*/jsxRuntime.jsx(CTAButton, {
673
- label: cta.label,
674
- href: cta.href,
675
- icon: cta.icon,
676
- size: cta.size || "lg",
677
- variant: cta.variant,
678
- color: cta.color
679
- })
680
- })]
681
- });
682
- const mediaCol = (video || image) && /*#__PURE__*/jsxRuntime.jsx(MediaBlock, {
683
- video: video,
684
- image: image,
685
- width: "80%"
686
- });
687
- return /*#__PURE__*/jsxRuntime.jsx(Layout, {
688
- id: id,
689
- subtitle: subtitle,
690
- title: title,
691
- background: background,
692
- children: /*#__PURE__*/jsxRuntime.jsx(core.SimpleGrid, {
693
- cols: {
694
- base: 1,
695
- md: 2
696
- },
697
- spacing: {
698
- base: 40,
699
- md: 80
700
- },
701
- verticalSpacing: {
702
- base: 40,
703
- md: 50
704
- },
705
- children: reverse ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
706
- children: [mediaCol, contentCol]
707
- }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
708
- children: [contentCol, mediaCol]
709
- })
710
- })
711
- });
712
- }
713
-
714
- function FeaturesGrid({
715
- id,
716
- subtitle,
717
- title,
718
- background = "gray.0",
719
- items = []
720
- }) {
721
- return /*#__PURE__*/jsxRuntime.jsx(Layout, {
722
- id: id,
723
- subtitle: subtitle,
724
- title: title,
725
- background: background,
726
- children: /*#__PURE__*/jsxRuntime.jsx(core.Grid, {
727
- gutter: "lg",
728
- children: items.map((item, idx) => /*#__PURE__*/jsxRuntime.jsx(FeatureCard, {
729
- ...item
730
- }, idx))
731
- })
732
- });
733
- }
734
- function FeatureCard({
735
- icon: Icon,
736
- iconVariant,
737
- iconColor,
738
- label,
739
- title,
740
- titleSize,
741
- description,
742
- descriptionSize,
743
- descriptionMaw,
744
- span = {
745
- base: 12,
746
- md: 6
747
- },
748
- bg = "white",
749
- dark = false,
750
- visual,
751
- secondaryVisual,
752
- layout = "stacked",
753
- badges,
754
- codeBlock,
755
- decorativeContent,
756
- style: extraStyle,
757
- ...props
758
- }) {
759
- const textColor = dark ? "white" : undefined;
760
- const descColor = dark ? "gray.4" : "gray.6";
761
- const labelColor = "gray.5";
762
- const resolvedIconVariant = iconVariant || (dark ? "filled" : "light");
763
- const resolvedIconColor = iconColor || (dark ? "gray.7" : "gray");
764
- const resolvedTitleSize = titleSize || (layout === "compact" ? "h4" : "h3");
765
- const resolvedDescSize = descriptionSize || (layout === "compact" ? "sm" : "lg");
766
- const headerContent = /*#__PURE__*/jsxRuntime.jsxs(core.Box, {
767
- children: [Icon && /*#__PURE__*/jsxRuntime.jsx(core.ThemeIcon, {
768
- size: 48,
769
- radius: "0",
770
- variant: resolvedIconVariant,
771
- color: resolvedIconColor,
772
- mb: "lg",
773
- style: dark ? {
774
- color: "white"
775
- } : undefined,
776
- children: /*#__PURE__*/jsxRuntime.jsx(Icon, {
777
- size: 24,
778
- stroke: 1.5
779
- })
780
- }), label && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
781
- size: "sm",
782
- fw: 800,
783
- tt: "uppercase",
784
- ls: "1.5px",
785
- c: labelColor,
786
- mb: "xs",
787
- children: label
788
- }), title && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
789
- fz: resolvedTitleSize,
790
- fw: 900,
791
- lh: 1.2,
792
- mb: "sm",
793
- c: textColor,
794
- children: title
795
- }), description && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
796
- c: descColor,
797
- size: resolvedDescSize,
798
- maw: descriptionMaw,
799
- mb: badges ? "xl" : layout === "compact" ? "lg" : undefined,
800
- children: description
801
- }), badges && badges.length > 0 && /*#__PURE__*/jsxRuntime.jsx(core.Group, {
802
- children: badges.map((badge, i) => /*#__PURE__*/jsxRuntime.jsx(core.Badge, {
803
- variant: "dot",
804
- color: "gray",
805
- radius: "0",
806
- children: badge
807
- }, i))
808
- })]
809
- });
810
- const visualContent = visual ? renderVisual(visual, dark) : null;
811
- const secondaryVisualContent = secondaryVisual ? renderVisual(secondaryVisual, dark) : null;
812
-
813
- // Split layout: text left, visual/code right (via inner Grid)
814
- if (layout === "split") {
815
- return /*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
816
- span: span,
817
- children: /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
818
- h: "100%",
819
- p: {
820
- base: "xl",
821
- md: 40
822
- },
823
- radius: "0",
824
- bg: bg,
825
- bd: "1px solid var(--mantine-color-gray-2)",
826
- style: extraStyle,
827
- ...props,
828
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Grid, {
829
- align: "center",
830
- gutter: "xl",
831
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
832
- span: {
833
- base: 12,
834
- sm: 6
835
- },
836
- children: headerContent
837
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Grid.Col, {
838
- span: {
839
- base: 12,
840
- sm: 6
841
- },
842
- children: [visualContent, codeBlock && /*#__PURE__*/jsxRuntime.jsx(core.Code, {
843
- block: true,
844
- color: "gray.0",
845
- c: "gray.7",
846
- style: {
847
- fontSize: 12,
848
- lineHeight: 1.4,
849
- borderRadius: 0
850
- },
851
- children: codeBlock
852
- })]
853
- })]
854
- })
855
- })
856
- });
857
- }
858
-
859
- // Compact layout: simpler card
860
- if (layout === "compact") {
861
- return /*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
862
- span: span,
863
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Paper, {
864
- h: "100%",
865
- p: {
866
- base: "xl",
867
- md: 40
868
- },
869
- radius: "0",
870
- bg: bg,
871
- bd: "1px solid var(--mantine-color-gray-2)",
872
- style: extraStyle,
873
- ...props,
874
- children: [headerContent, visualContent]
875
- })
876
- });
877
- }
878
-
879
- // Stacked layout with decorative content on the side (e.g. device icons)
880
- if (decorativeContent) {
881
- return /*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
882
- span: span,
883
- children: /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
884
- h: "100%",
885
- p: {
886
- base: "xl",
887
- md: 40
888
- },
889
- radius: "0",
890
- bg: bg,
891
- bd: "1px solid var(--mantine-color-gray-2)",
892
- pos: "relative",
893
- style: extraStyle,
894
- ...props,
895
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Grid, {
896
- gutter: 0,
897
- pos: "relative",
898
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
899
- span: {
900
- base: 12,
901
- sm: 7
902
- },
903
- style: {
904
- zIndex: 1
905
- },
906
- children: headerContent
907
- }), /*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
908
- span: 5,
909
- visibleFrom: "sm",
910
- children: decorativeContent
911
- })]
912
- })
913
- })
914
- });
915
- }
916
-
917
- // Default stacked layout
918
- return /*#__PURE__*/jsxRuntime.jsx(core.Grid.Col, {
919
- span: span,
920
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Paper, {
921
- h: "100%",
922
- p: {
923
- base: "xl",
924
- md: 40
925
- },
926
- radius: "0",
927
- bg: bg,
928
- bd: "1px solid var(--mantine-color-gray-2)",
929
- display: "flex",
930
- style: {
931
- flexDirection: "column",
932
- justifyContent: "space-between",
933
- ...extraStyle
934
- },
935
- ...props,
936
- children: [headerContent, visualContent && secondaryVisualContent ? /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
937
- gap: 40,
938
- align: "center",
939
- children: [visualContent, secondaryVisualContent]
940
- }) : visualContent]
941
- })
942
- });
943
- }
944
- function renderVisual(visual, dark) {
945
- if (!visual) return null;
946
- switch (visual.type) {
947
- case "ring":
948
- return /*#__PURE__*/jsxRuntime.jsx(core.RingProgress, {
949
- size: visual.size || 140,
950
- thickness: visual.thickness || 12,
951
- sections: [{
952
- value: visual.value || 100,
953
- color: "gray.9"
954
- }],
955
- label: /*#__PURE__*/jsxRuntime.jsx(core.Center, {
956
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
957
- gap: 0,
958
- align: "center",
959
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
960
- fw: 900,
961
- size: "xl",
962
- lh: 1,
963
- children: visual.label
964
- }), visual.sublabel && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
965
- size: "xs",
966
- c: "gray.5",
967
- fw: 700,
968
- children: visual.sublabel
969
- })]
970
- })
971
- })
972
- });
973
- case "metric":
974
- return /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
975
- gap: 0,
976
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
977
- fw: 900,
978
- fz: 32,
979
- c: "gray.9",
980
- lh: 1,
981
- children: visual.value
982
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
983
- size: "sm",
984
- c: "gray.5",
985
- mt: 4,
986
- children: visual.label
987
- }), visual.badge && /*#__PURE__*/jsxRuntime.jsx(core.Badge, {
988
- mt: "md",
989
- color: "gray",
990
- variant: "dot",
991
- radius: "0",
992
- children: visual.badge
993
- })]
994
- });
995
- case "bars":
996
- return /*#__PURE__*/jsxRuntime.jsx(core.Group, {
997
- align: "flex-end",
998
- gap: 8,
999
- h: visual.height || 100,
1000
- preventGrowOverflow: false,
1001
- children: (visual.data || []).map((h, i) => /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1002
- w: 20,
1003
- h: `${h}%`,
1004
- bg: i === visual.highlight ? "gray.9" : "gray.2",
1005
- radius: "0"
1006
- }, i))
1007
- });
1008
- case "typography":
1009
- return /*#__PURE__*/jsxRuntime.jsx(core.Center, {
1010
- h: visual.height || 160,
1011
- bg: dark ? "gray.8" : "gray.1",
1012
- radius: "0",
1013
- children: /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1014
- fz: visual.fontSize || 100,
1015
- fw: 900,
1016
- c: dark ? "gray.6" : "gray.3",
1017
- style: {
1018
- letterSpacing: -6
1019
- },
1020
- children: visual.text || "Aa"
1021
- })
1022
- });
1023
- case "icon-large":
1024
- {
1025
- const LargeIcon = visual.icon;
1026
- if (!LargeIcon) return null;
1027
- return /*#__PURE__*/jsxRuntime.jsx(LargeIcon, {
1028
- size: visual.size || 64,
1029
- stroke: visual.stroke || 1,
1030
- color: visual.color || "var(--mantine-color-gray-2)"
1031
- });
1032
- }
1033
- default:
1034
- return null;
1035
- }
1036
- }
1037
-
1038
- function Comparison({
1039
- id,
1040
- subtitle,
1041
- title,
1042
- traditionalCol,
1043
- newCol,
1044
- background = "white"
1045
- }) {
1046
- return /*#__PURE__*/jsxRuntime.jsx(Layout, {
1047
- id: id,
1048
- subtitle: subtitle,
1049
- title: title,
1050
- background: background,
1051
- children: /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
1052
- radius: "0",
1053
- bd: "1px solid var(--mantine-color-gray-2)",
1054
- style: {
1055
- overflow: "hidden"
1056
- },
1057
- children: /*#__PURE__*/jsxRuntime.jsxs(core.SimpleGrid, {
1058
- cols: {
1059
- base: 1,
1060
- md: 2
1061
- },
1062
- spacing: 0,
1063
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Box, {
1064
- bg: "gray.0",
1065
- p: {
1066
- base: 30,
1067
- md: 60
1068
- },
1069
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1070
- gap: "xl",
1071
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Box, {
1072
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1073
- fw: 900,
1074
- fz: "h2",
1075
- c: "gray.9",
1076
- mb: 4,
1077
- children: traditionalCol.title
1078
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1079
- size: "sm",
1080
- fw: 800,
1081
- tt: "uppercase",
1082
- ls: "1.5px",
1083
- c: "gray.5",
1084
- children: traditionalCol.subtitle
1085
- })]
1086
- }), /*#__PURE__*/jsxRuntime.jsx(core.Stack, {
1087
- gap: "md",
1088
- mb: 40,
1089
- children: traditionalCol.items.map((item, index) => /*#__PURE__*/jsxRuntime.jsxs(react.Fragment, {
1090
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1091
- justify: "space-between",
1092
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1093
- size: "sm",
1094
- c: "gray.6",
1095
- children: item.label
1096
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1097
- fw: 700,
1098
- c: "gray.9",
1099
- children: item.value
1100
- })]
1101
- }), index < traditionalCol.items.length - 1 && /*#__PURE__*/jsxRuntime.jsx(core.Divider, {
1102
- color: "var(--mantine-color-gray-2)"
1103
- })]
1104
- }, index))
1105
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Box, {
1106
- bg: "white",
1107
- p: "lg",
1108
- radius: "0",
1109
- bd: "1px solid var(--mantine-color-gray-2)",
1110
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1111
- justify: "space-between",
1112
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1113
- fw: 900,
1114
- c: "gray.7",
1115
- children: traditionalCol.totalLabel || "Total Estimado"
1116
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1117
- fw: 900,
1118
- fz: 32,
1119
- c: "gray.9",
1120
- children: traditionalCol.totalValue
1121
- })]
1122
- }), traditionalCol.footerText && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1123
- size: "xs",
1124
- c: "red.6",
1125
- ta: "right",
1126
- mt: 4,
1127
- children: traditionalCol.footerText
1128
- })]
1129
- })]
1130
- })
1131
- }), /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1132
- bg: "white",
1133
- p: {
1134
- base: 30,
1135
- md: 60
1136
- },
1137
- pos: "relative",
1138
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1139
- gap: "xl",
1140
- h: "100%",
1141
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Box, {
1142
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1143
- gap: "xs",
1144
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1145
- fw: 900,
1146
- fz: "h2",
1147
- c: "gray.9",
1148
- mb: 4,
1149
- children: newCol.title
1150
- }), newCol.badge && /*#__PURE__*/jsxRuntime.jsx(core.Badge, {
1151
- color: "gray.9",
1152
- variant: "filled",
1153
- radius: "0",
1154
- children: newCol.badge
1155
- })]
1156
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1157
- size: "sm",
1158
- c: "gray.6",
1159
- children: newCol.description
1160
- })]
1161
- }), /*#__PURE__*/jsxRuntime.jsx(core.List, {
1162
- spacing: "md",
1163
- size: "md",
1164
- c: "gray.6",
1165
- icon: /*#__PURE__*/jsxRuntime.jsx(core.ThemeIcon, {
1166
- color: "gray.0",
1167
- size: 20,
1168
- radius: "0",
1169
- bd: "1px solid var(--mantine-color-gray-2)",
1170
- children: /*#__PURE__*/jsxRuntime.jsx(iconsReact.IconCheck, {
1171
- size: 12,
1172
- color: "var(--mantine-color-gray-9)"
1173
- })
1174
- }),
1175
- children: newCol.items.map((item, index) => /*#__PURE__*/jsxRuntime.jsx(core.List.Item, {
1176
- children: item
1177
- }, index))
1178
- }), newCol.pricingBox && /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1179
- bg: "gray.0",
1180
- p: "lg",
1181
- radius: "0",
1182
- bd: "1px solid var(--mantine-color-gray-2)",
1183
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1184
- gap: 4,
1185
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1186
- size: "sm",
1187
- fw: 800,
1188
- tt: "uppercase",
1189
- ls: "1.5px",
1190
- c: "gray.5",
1191
- children: newCol.pricingBox.label
1192
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1193
- fw: 900,
1194
- fz: 48,
1195
- c: "gray.9",
1196
- lh: 1,
1197
- children: newCol.pricingBox.price
1198
- }), newCol.pricingBox.subtext && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1199
- size: "xs",
1200
- c: "gray.5",
1201
- mt: "sm",
1202
- children: newCol.pricingBox.subtext
1203
- })]
1204
- })
1205
- }), newCol.cta && /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1206
- mt: "xl",
1207
- children: /*#__PURE__*/jsxRuntime.jsx(CTAButton, {
1208
- label: newCol.cta.label,
1209
- href: newCol.cta.href,
1210
- icon: newCol.cta.icon,
1211
- size: newCol.cta.size || "lg",
1212
- color: newCol.cta.color || "gray.9",
1213
- fullWidth: true
1214
- })
1215
- })]
1216
- })
1217
- })]
1218
- })
1219
- })
1220
- });
1221
- }
1222
-
1223
- function Pricing({
1224
- id,
1225
- subtitle,
1226
- title,
1227
- billingOptions = [{
1228
- label: "Mensal",
1229
- value: "monthly"
1230
- }, {
1231
- label: "Anual",
1232
- value: "annual"
1233
- }],
1234
- billing,
1235
- setBilling,
1236
- promoBadge,
1237
- plans,
1238
- background = "white"
1239
- }) {
1240
- return /*#__PURE__*/jsxRuntime.jsxs(Layout, {
1241
- id: id,
1242
- subtitle: subtitle,
1243
- title: title,
1244
- ta: "center",
1245
- background: background,
1246
- children: [billingOptions && billingOptions.length > 0 && /*#__PURE__*/jsxRuntime.jsx(core.Stack, {
1247
- align: "center",
1248
- gap: "xl",
1249
- mb: 80,
1250
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1251
- gap: "xs",
1252
- children: [/*#__PURE__*/jsxRuntime.jsx(core.SegmentedControl, {
1253
- value: billing,
1254
- onChange: setBilling,
1255
- radius: "0",
1256
- size: "md",
1257
- data: billingOptions,
1258
- color: "gray.9",
1259
- bg: "white",
1260
- style: {
1261
- border: "1px solid var(--mantine-color-gray-2)"
1262
- }
1263
- }), billing === "annual" && promoBadge && /*#__PURE__*/jsxRuntime.jsx(core.Badge, {
1264
- variant: "filled",
1265
- color: "gray.9",
1266
- radius: "0",
1267
- size: "lg",
1268
- children: promoBadge
1269
- })]
1270
- })
1271
- }), /*#__PURE__*/jsxRuntime.jsx(core.SimpleGrid, {
1272
- cols: {
1273
- base: 1,
1274
- md: plans.length <= 3 ? plans.length : 3
1275
- },
1276
- spacing: "xl",
1277
- verticalSpacing: "xl",
1278
- children: plans.map(plan => /*#__PURE__*/jsxRuntime.jsxs(core.Paper, {
1279
- p: "xl",
1280
- radius: "0",
1281
- withBorder: true,
1282
- bd: plan.highlight ? "2px solid var(--mantine-color-gray-9)" : "1px solid var(--mantine-color-gray-2)",
1283
- display: "flex",
1284
- h: "100%",
1285
- style: {
1286
- flexDirection: "column"
1287
- },
1288
- bg: "white",
1289
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1290
- gap: "md",
1291
- mb: "xl",
1292
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1293
- justify: "space-between",
1294
- align: "center",
1295
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1296
- size: "xs",
1297
- fw: 800,
1298
- tt: "uppercase",
1299
- ls: "1.5px",
1300
- c: "gray.4",
1301
- children: plan.name
1302
- }), plan.highlight && /*#__PURE__*/jsxRuntime.jsx(core.Badge, {
1303
- variant: "dot",
1304
- color: "gray.9",
1305
- children: plan.highlightBadge || "RECOMENDADO"
1306
- })]
1307
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1308
- size: "sm",
1309
- c: "gray.6",
1310
- fw: 500,
1311
- lh: 1.5,
1312
- h: {
1313
- md: 42
1314
- },
1315
- children: plan.description
1316
- })]
1317
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Box, {
1318
- mb: "xl",
1319
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1320
- size: "xs",
1321
- c: "gray.4",
1322
- fw: 800,
1323
- tt: "uppercase",
1324
- ls: "1px",
1325
- mb: 4,
1326
- children: plan.pricePrefix || "A partir de"
1327
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1328
- gap: 8,
1329
- align: "flex-start",
1330
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1331
- size: "xl",
1332
- fw: 900,
1333
- c: "gray.9",
1334
- style: {
1335
- marginTop: 8
1336
- },
1337
- children: plan.priceDisplay?.currency
1338
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1339
- gap: 4,
1340
- align: "flex-end",
1341
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1342
- fz: "var(--fz-big-metric)",
1343
- fw: 900,
1344
- ls: "-0.04em",
1345
- lh: 0.8,
1346
- c: "gray.9",
1347
- children: plan.priceDisplay?.whole
1348
- }), plan.priceDisplay?.fraction && /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1349
- gap: 0,
1350
- mb: 6,
1351
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Text, {
1352
- size: "xl",
1353
- fw: 900,
1354
- lh: 1,
1355
- c: "gray.9",
1356
- children: [",", plan.priceDisplay.fraction]
1357
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1358
- size: "xs",
1359
- c: "gray.5",
1360
- fw: 800,
1361
- tt: "uppercase",
1362
- ls: "0.5px",
1363
- children: plan.period || plan.priceSuffix || "/mês"
1364
- })]
1365
- })]
1366
- })]
1367
- })]
1368
- }), /*#__PURE__*/jsxRuntime.jsx(core.Divider, {
1369
- mb: "xl",
1370
- color: "gray.1"
1371
- }), /*#__PURE__*/jsxRuntime.jsx(core.Stack, {
1372
- gap: "sm",
1373
- mb: 40,
1374
- style: {
1375
- flex: 1
1376
- },
1377
- children: plan.features.map((feature, i) => /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1378
- gap: "sm",
1379
- wrap: "nowrap",
1380
- align: "flex-start",
1381
- children: [/*#__PURE__*/jsxRuntime.jsx(iconsReact.IconCheck, {
1382
- size: 16,
1383
- color: "var(--mantine-color-gray-9)",
1384
- style: {
1385
- marginTop: 2,
1386
- flexShrink: 0
1387
- }
1388
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1389
- size: "sm",
1390
- fw: 500,
1391
- c: "gray.6",
1392
- lh: 1.4,
1393
- children: feature
1394
- })]
1395
- }, i))
1396
- }), /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1397
- mt: "auto",
1398
- children: /*#__PURE__*/jsxRuntime.jsx(CTAButton, {
1399
- label: plan.cta.label,
1400
- href: plan.cta.href,
1401
- size: plan.cta.size || "xl",
1402
- variant: plan.cta.variant,
1403
- color: plan.cta.color || "gray.9",
1404
- fullWidth: true
1405
- })
1406
- })]
1407
- }, plan.name))
1408
- })]
1409
- });
1410
- }
1411
-
1412
- function FAQ({
1413
- id,
1414
- subtitle,
1415
- title,
1416
- questions = [],
1417
- contactCard,
1418
- background = "white"
1419
- }) {
1420
- const accordionStyles = {
1421
- item: {
1422
- backgroundColor: "white",
1423
- border: "1px solid var(--mantine-color-gray-2)"
1424
- },
1425
- control: {
1426
- padding: "1.25rem"
1427
- },
1428
- content: {
1429
- padding: "0 1.25rem 1.25rem 1.25rem"
1430
- },
1431
- label: {
1432
- fontWeight: 900,
1433
- color: "var(--mantine-color-gray-9)"
1434
- },
1435
- chevron: {
1436
- color: "var(--mantine-color-gray-5)"
1437
- }
1438
- };
1439
- return /*#__PURE__*/jsxRuntime.jsxs(Layout, {
1440
- id: id,
1441
- subtitle: subtitle,
1442
- title: title,
1443
- background: background,
1444
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.SimpleGrid, {
1445
- cols: {
1446
- base: 1,
1447
- md: 2
1448
- },
1449
- spacing: "xl",
1450
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Accordion, {
1451
- variant: "separated",
1452
- radius: "0",
1453
- chevronPosition: "right",
1454
- styles: accordionStyles,
1455
- children: questions.slice(0, Math.ceil(questions.length / 2)).map((item, i) => /*#__PURE__*/jsxRuntime.jsxs(core.Accordion.Item, {
1456
- value: item.value || String(i),
1457
- mb: "md",
1458
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Accordion.Control, {
1459
- icon: /*#__PURE__*/jsxRuntime.jsx(core.ThemeIcon, {
1460
- variant: "light",
1461
- color: "gray",
1462
- radius: "0",
1463
- children: /*#__PURE__*/jsxRuntime.jsx(iconsReact.IconBolt, {
1464
- size: 16
1465
- })
1466
- }),
1467
- children: item.question
1468
- }), /*#__PURE__*/jsxRuntime.jsx(core.Accordion.Panel, {
1469
- c: "gray.6",
1470
- children: item.answer
1471
- })]
1472
- }, item.value || i))
1473
- }), /*#__PURE__*/jsxRuntime.jsx(core.Accordion, {
1474
- variant: "separated",
1475
- radius: "0",
1476
- chevronPosition: "right",
1477
- styles: accordionStyles,
1478
- children: questions.slice(Math.ceil(questions.length / 2)).map((item, i) => /*#__PURE__*/jsxRuntime.jsxs(core.Accordion.Item, {
1479
- value: item.value || String(i),
1480
- mb: "md",
1481
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Accordion.Control, {
1482
- icon: /*#__PURE__*/jsxRuntime.jsx(core.ThemeIcon, {
1483
- variant: "light",
1484
- color: "gray",
1485
- radius: "0",
1486
- children: /*#__PURE__*/jsxRuntime.jsx(iconsReact.IconBolt, {
1487
- size: 16
1488
- })
1489
- }),
1490
- children: item.question
1491
- }), /*#__PURE__*/jsxRuntime.jsx(core.Accordion.Panel, {
1492
- c: "gray.6",
1493
- children: item.answer
1494
- })]
1495
- }, item.value || i))
1496
- })]
1497
- }), contactCard && /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
1498
- mt: {
1499
- base: 40,
1500
- md: 80
1501
- },
1502
- radius: "0",
1503
- p: {
1504
- base: "xl",
1505
- md: 60
1506
- },
1507
- bg: "gray.0",
1508
- bd: "1px solid var(--mantine-color-gray-1)",
1509
- pos: "relative",
1510
- style: {
1511
- overflow: "hidden"
1512
- },
1513
- children: /*#__PURE__*/jsxRuntime.jsxs(core.SimpleGrid, {
1514
- cols: {
1515
- base: 1,
1516
- md: 2
1517
- },
1518
- spacing: "xl",
1519
- style: {
1520
- position: "relative",
1521
- zIndex: 1,
1522
- alignItems: "center"
1523
- },
1524
- children: [/*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1525
- gap: "sm",
1526
- ta: {
1527
- base: "center",
1528
- md: "left"
1529
- },
1530
- align: {
1531
- base: "center",
1532
- md: "flex-start"
1533
- },
1534
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1535
- fz: "h2",
1536
- fw: 900,
1537
- c: "gray.9",
1538
- lh: 1.2,
1539
- children: contactCard.title
1540
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1541
- c: "gray.6",
1542
- maw: 500,
1543
- size: "lg",
1544
- children: contactCard.description
1545
- })]
1546
- }), /*#__PURE__*/jsxRuntime.jsx(core.Stack, {
1547
- align: {
1548
- base: "center",
1549
- md: "flex-end"
1550
- },
1551
- children: /*#__PURE__*/jsxRuntime.jsx(CTAButton, {
1552
- label: contactCard.cta.label,
1553
- href: contactCard.cta.href,
1554
- target: contactCard.cta.target,
1555
- leftSection: contactCard.cta.icon,
1556
- size: contactCard.cta.size || "xl",
1557
- color: contactCard.cta.color || "dark"
1558
- })
1559
- })]
1560
- })
1561
- })]
1562
- });
1563
- }
1564
-
1565
- function Testimonials({
1566
- id,
1567
- subtitle,
1568
- items = [],
1569
- background = "gray"
1570
- }) {
1571
- return /*#__PURE__*/jsxRuntime.jsx(Layout, {
1572
- id: id,
1573
- background: background,
1574
- title: title,
1575
- subtitle: subtitle,
1576
- children: /*#__PURE__*/jsxRuntime.jsx(core.SimpleGrid, {
1577
- cols: {
1578
- base: 1,
1579
- md: items.length > 3 ? 4 : items.length || 3
1580
- },
1581
- spacing: "xl",
1582
- children: items.map((item, index) => /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
1583
- p: "xl",
1584
- radius: "0",
1585
- bd: "1px solid var(--mantine-color-gray-2)",
1586
- bg: "white",
1587
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1588
- gap: "md",
1589
- align: "flex-start",
1590
- h: "100%",
1591
- children: [/*#__PURE__*/jsxRuntime.jsx(iconsReact.IconQuote, {
1592
- size: 32,
1593
- color: "var(--mantine-color-gray-3)"
1594
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Text, {
1595
- size: "lg",
1596
- c: "gray.7",
1597
- lh: 1.6,
1598
- fs: "italic",
1599
- flex: 1,
1600
- children: ["\"", item.content, "\""]
1601
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1602
- gap: "sm",
1603
- mt: "xl",
1604
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Avatar, {
1605
- size: "md",
1606
- radius: "0",
1607
- color: "gray",
1608
- src: item.avatarSrc,
1609
- children: item.initials
1610
- }), /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1611
- gap: 0,
1612
- children: [/*#__PURE__*/jsxRuntime.jsx(core.Text, {
1613
- size: "sm",
1614
- fw: 900,
1615
- children: item.name
1616
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1617
- size: "xs",
1618
- fw: 800,
1619
- tt: "uppercase",
1620
- ls: "1px",
1621
- c: "gray.5",
1622
- children: item.role
1623
- })]
1624
- })]
1625
- })]
1626
- })
1627
- }, index))
1628
- })
1629
- });
1630
- }
1631
-
1632
- function CTABanner({
1633
- id,
1634
- title,
1635
- description,
1636
- cta,
1637
- background = "gray.0"
1638
- }) {
1639
- return /*#__PURE__*/jsxRuntime.jsx(Layout, {
1640
- id: id,
1641
- background: background,
1642
- ta: "center",
1643
- children: /*#__PURE__*/jsxRuntime.jsx(core.Paper, {
1644
- p: {
1645
- base: "xl",
1646
- sm: 80
1647
- },
1648
- bg: "white",
1649
- radius: "0",
1650
- bd: "1px solid var(--mantine-color-gray-2)",
1651
- style: {
1652
- borderTop: "4px solid var(--mantine-color-gray-9)"
1653
- },
1654
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Stack, {
1655
- align: "center",
1656
- ta: "center",
1657
- gap: "xl",
1658
- children: [title && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1659
- fz: "var(--fz-section-title)",
1660
- fw: 900,
1661
- lh: 1.2,
1662
- ls: "-0.04em",
1663
- maw: 700,
1664
- children: title
1665
- }), description && /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1666
- c: "gray.7",
1667
- size: "xl",
1668
- maw: 550,
1669
- children: description
1670
- }), cta && /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1671
- mt: "md",
1672
- children: /*#__PURE__*/jsxRuntime.jsx(CTAButton, {
1673
- label: cta.label,
1674
- href: cta.href,
1675
- size: cta.size || "xl",
1676
- px: cta.px || {
1677
- base: 32,
1678
- md: 60
1679
- },
1680
- variant: cta.variant,
1681
- color: cta.color
1682
- })
1683
- })]
1684
- })
1685
- })
1686
- });
1687
- }
1688
-
1689
- /** @deprecated Use CTABanner instead */
1690
- const SecondaryCTA = CTABanner;
1691
-
1692
- function TrustBadge({
1693
- text = "Selo Exclusivo RiLiGar",
1694
- color = "green.6",
1695
- background = "gray"
1696
- }) {
1697
- const bg = resolveBackground(background);
1698
- return /*#__PURE__*/jsxRuntime.jsx(core.Box, {
1699
- p: "xs",
1700
- bg: bg,
1701
- style: {
1702
- borderRadius: "8px",
1703
- border: "1px solid var(--mantine-color-gray-2)",
1704
- display: "inline-block"
1705
- },
1706
- children: /*#__PURE__*/jsxRuntime.jsxs(core.Group, {
1707
- gap: "xs",
1708
- children: [/*#__PURE__*/jsxRuntime.jsx(core.ThemeIcon, {
1709
- color: color,
1710
- variant: "light",
1711
- size: "sm",
1712
- radius: "xl",
1713
- children: /*#__PURE__*/jsxRuntime.jsx(iconsReact.IconCircleCheck, {
1714
- size: 14,
1715
- "aria-hidden": "true"
1716
- })
1717
- }), /*#__PURE__*/jsxRuntime.jsx(core.Text, {
1718
- size: "xs",
1719
- fw: 700,
1720
- c: "gray.7",
1721
- tt: "uppercase",
1722
- lts: 0.5,
1723
- children: text
1724
- })]
1725
- })
1726
- });
1727
- }
1728
-
1729
- /** @deprecated Use TrustBadge instead */
1730
- const SeloExclusivo = TrustBadge;
1731
-
1732
- exports.CTABanner = CTABanner;
1733
- exports.CTAButton = CTAButton;
1734
- exports.Comparison = Comparison;
1735
- exports.FAQ = FAQ;
1736
- exports.FeatureSplit = FeatureSplit;
1737
- exports.FeaturesGrid = FeaturesGrid;
1738
- exports.Header = Header;
1739
- exports.Hero = Hero;
1740
- exports.Layout = Layout;
1741
- exports.MediaBlock = MediaBlock;
1742
- exports.Navbar = Navbar;
1743
- exports.Pricing = Pricing;
1744
- exports.SECTION_BACKGROUNDS = SECTION_BACKGROUNDS;
1745
- exports.SecondaryCTA = SecondaryCTA;
1746
- exports.SectionHeader = SectionHeader;
1747
- exports.SeloExclusivo = SeloExclusivo;
1748
- exports.SocialProof = SocialProof;
1749
- exports.Testimonials = Testimonials;
1750
- exports.TrustBadge = TrustBadge;
1751
- exports.resolveBackground = resolveBackground;
1752
- exports.theme = theme;
1753
- //# sourceMappingURL=index.js.map
1
+ (function(h,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("@mantine/core"),require("react/jsx-runtime"),require("@mantine/hooks"),require("@tabler/icons-react"),require("react")):typeof define=="function"&&define.amd?define(["exports","@mantine/core","react/jsx-runtime","@mantine/hooks","@tabler/icons-react","react"],e):(h=typeof globalThis<"u"?globalThis:h||self,e(h.RiligarComponentsKit={},h.MantineCore,h.jsxRuntime,h.MantineHooks,h.TablerIcons,h.React))})(this,(function(h,e,r,H,x,N){"use strict";const L=e.createTheme({fontFamily:'Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',headings:{fontFamily:'Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',fontWeight:"900"},colors:{gray:["#FFFFFF","#F9FAFB","#F3F4F6","#E5E7EB","#9CA3AF","#6B7280","#4B5563","#374151","#1F2937","#11181C"]},primaryColor:"gray",primaryShade:9,autoContrast:!0,defaultRadius:"0",components:{Container:{defaultProps:{size:"xl",px:"md"}},Paper:{defaultProps:{withBorder:!0,shadow:"none",radius:"0",bg:"white"}},Card:{defaultProps:{withBorder:!1,shadow:"none",radius:"0",padding:"xl",bg:"transparent"}},Button:{defaultProps:{size:"md",fw:800,radius:"0",variant:"filled",color:"gray.9"},styles:{root:{textTransform:"uppercase",letterSpacing:"1px"}}},TextInput:{defaultProps:{size:"lg",radius:"0",variant:"unstyled"},styles:{input:{borderBottom:"1px solid var(--mantine-color-gray-2)",paddingLeft:0,paddingRight:0}}},Title:{defaultProps:{lh:1.1,c:"gray.9",ls:"-0.04em"}},Text:{defaultProps:{lh:1.6,c:"gray.9",size:"md"}},Badge:{defaultProps:{variant:"dot",color:"gray",radius:"0",size:"sm"},styles:{root:{textTransform:"uppercase",letterSpacing:"1.5px",fontWeight:800}}},ThemeIcon:{defaultProps:{variant:"light",color:"gray",radius:"0",size:"lg"}},Divider:{defaultProps:{color:"gray.2"}}}});function F({subtitle:l,title:n,titleOrder:i=2,titleFz:a="var(--fz-section-title)",ta:s="left",maw:d}){return!n&&!l?null:r.jsxs(e.Stack,{gap:"xs",align:s==="center"?"center":"flex-start",ta:s,children:[l&&r.jsx(e.Text,{c:"gray.4",size:"xs",fw:800,tt:"uppercase",ls:"1.5px",children:l}),n&&r.jsx(e.Title,{order:i,fz:a,maw:d,children:n})]})}function I({video:l,image:n,width:i="100%",alt:a}){return l?r.jsx(e.Center,{children:r.jsx(e.Box,{component:"video",src:l.src,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,"aria-label":a||"Demonstração em vídeo",w:l.width||i,h:"auto",style:{filter:l.filter||"none"}})}):n?r.jsx(e.Center,{children:r.jsx(e.Box,{component:"img",src:n,alt:a||"",w:i,h:"auto"})}):null}function b({label:l,href:n,onClick:i,icon:a,size:s="lg",variant:d="filled",color:o,target:c,px:p,fullWidth:t,leftSection:g,...f}){return r.jsx(e.Button,{size:s,component:n?"a":"button",href:n,onClick:i,target:c,rightSection:a,leftSection:g,variant:d,color:o,px:p,fullWidth:t,...f,children:l})}const P={white:"white",gray:"gray.0"},z=l=>P[l]||P.white;function y({children:l,title:n,subtitle:i,id:a,background:s="white",py:d={base:80,md:120},maw:o=800,ta:c="left",stackGap:p="xl"}){const t=z(s);return r.jsx(e.Box,{component:"section",id:a,bg:t,py:d,style:{overflow:"hidden"},children:r.jsx(e.Container,{size:"lg",children:r.jsxs(e.Stack,{gap:p,children:[r.jsx(F,{subtitle:i,title:n,ta:c,maw:o}),r.jsx(e.Box,{children:l})]})})})}function C({logo:l,navLinks:n=[],loginCta:i,signupCta:a,background:s="white"}){const d=z(s),[o]=H.useWindowScroll(),c=o.y>10,p=g=>{g==="top"?window.scrollTo({top:0,behavior:"smooth"}):document.getElementById(g)?.scrollIntoView({behavior:"smooth"})},t=(g,f)=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),p(f))};return r.jsx(e.Box,{component:"header",pos:"sticky",top:0,w:"100%",style:{zIndex:100,pointerEvents:"none"},children:r.jsx(e.Container,{size:"xl",py:"md",children:r.jsx(e.Paper,{shadow:c?"sm":"none",radius:"0",p:"xs",bg:d,bd:c?"1px solid var(--mantine-color-gray-2)":"1px solid transparent",style:{pointerEvents:"auto",transition:"all 0.2s ease"},children:r.jsxs(e.Group,{justify:"space-between",align:"center",px:{base:"xs",sm:"md"},children:[l&&r.jsx("a",{href:"#","aria-label":"Voltar ao topo",onClick:g=>{g.preventDefault(),window.scrollTo({top:0,behavior:"smooth"})},style:{display:"inline-flex"},children:r.jsx("img",{src:l.src,alt:l.alt||"",height:l.height||32,style:{objectFit:"contain"}})}),n.length>0&&r.jsx(e.Group,{gap:"xl",visibleFrom:"sm",component:"nav",role:"navigation","aria-label":"Menu principal",children:n.map(g=>r.jsx(e.Text,{size:"sm",fw:900,tt:"uppercase",ls:"1px",c:"dark",role:"link",tabIndex:0,style:{cursor:"pointer"},onClick:()=>p(g.target),onKeyDown:f=>t(f,g.target),children:g.label},g.label))}),r.jsxs(e.Group,{gap:"sm",children:[i&&r.jsx(e.Button,{variant:"subtle",component:i.href?"a":"button",href:i.href,onClick:i.onClick,c:"gray.7",size:"sm",radius:"0",visibleFrom:"xs",fw:900,children:i.label}),a&&r.jsxs(e.Button,{component:a.href?"a":"button",href:a.href,onClick:a.onClick,size:"sm",radius:"0",color:"dark",variant:"filled",children:[r.jsx(e.Text,{span:!0,visibleFrom:"sm",c:"white",fw:900,size:"sm",children:a.label}),r.jsx(e.Text,{span:!0,hiddenFrom:"sm",c:"white",fw:900,size:"xs",children:a.labelMobile||a.label})]})]})]})})})})}const O=C;function W({subtitle:l,title:n,description:i,cta:a,video:s,image:d,background:o="white"}){const c=z(o);return r.jsx(e.Box,{py:{base:80,sm:100,md:140},id:"hero",bg:c,children:r.jsx(e.Container,{size:"lg",children:r.jsxs(e.SimpleGrid,{cols:{base:1,md:2},spacing:{base:60,md:100},verticalSpacing:60,children:[r.jsxs(e.Stack,{align:{base:"center",md:"flex-start"},justify:"center",gap:{base:32,md:48},ta:{base:"center",md:"left"},children:[r.jsx(F,{subtitle:l,title:n,titleOrder:1,titleFz:"var(--fz-hero)",ta:"inherit"}),i&&r.jsx(e.Center,{children:r.jsx(e.Text,{size:"xl",c:"gray.6",lh:1.6,maw:600,children:i})}),a&&r.jsx(e.Center,{children:r.jsx(e.Group,{gap:"md",justify:{base:"center",md:"flex-start"},children:r.jsx(b,{label:a.label,href:a.href,icon:a.icon,size:a.size||"xl",px:a.px||48,variant:a.variant,color:a.color})})})]}),r.jsx(I,{video:s,image:d,alt:"Demonstração do produto"})]})})})}function K({logo:l,index:n}){const i={src:l.src,alt:l.alt||`Logo ${n}`,h:l.height||50,w:"auto",style:{filter:"grayscale(1) opacity(0.4)",transition:"filter 0.3s ease, opacity 0.3s ease",...l.style},onMouseEnter:a=>{a.currentTarget.style.filter="grayscale(0) opacity(0.8)"},onMouseLeave:a=>{a.currentTarget.style.filter="grayscale(1) opacity(0.4)"}};return l.url?r.jsx(e.Center,{children:r.jsx("a",{href:l.url,target:"_blank",rel:"noopener noreferrer",children:r.jsx(e.Image,{...i})})}):r.jsx(e.Center,{children:r.jsx(e.Image,{...i})})}function V({id:l,title:n,logos:i,background:a="gray"}){const s=z(a);return!i||i.length===0?null:r.jsx(e.Box,{component:"section",id:l,py:{base:40,md:60},bg:s,bd:{bottom:"1px solid var(--mantine-color-gray-1)"},children:r.jsx(e.Container,{size:"lg",children:r.jsxs(e.Stack,{align:"center",ta:"center",gap:"xl",children:[n&&r.jsx(e.Text,{fw:500,c:"gray.5",size:"sm",tt:"uppercase",ls:"0.1em",children:n}),r.jsx(e.Group,{justify:"space-between",gap:{base:40,md:80},style:{rowGap:40},w:"100%",children:i.map((d,o)=>r.jsx(K,{logo:d,index:o},o))})]})})})}function q({id:l,subtitle:n,title:i,description:a,featuresList:s,cta:d,video:o,image:c,reverse:p=!1,background:t="white"}){const g=s&&s.length>0&&r.jsx(e.List,{spacing:"md",size:"md",center:!0,icon:r.jsx(e.ThemeIcon,{color:"gray.2",size:24,radius:"0",children:r.jsx(x.IconCheck,{size:14,color:"var(--mantine-color-gray-9)"})}),children:s.map((S,v)=>r.jsx(e.List.Item,{children:S},v))}),f=r.jsxs(e.Stack,{justify:"center",gap:"lg",children:[a&&r.jsx(e.Text,{c:"gray.6",size:"xl",lh:1.6,children:a}),g,d&&r.jsx(e.Group,{mt:"md",children:r.jsx(b,{label:d.label,href:d.href,icon:d.icon,size:d.size||"lg",variant:d.variant,color:d.color})})]}),w=(o||c)&&r.jsx(I,{video:o,image:c,width:"80%"});return r.jsx(y,{id:l,subtitle:n,title:i,background:t,children:r.jsx(e.SimpleGrid,{cols:{base:1,md:2},spacing:{base:40,md:80},verticalSpacing:{base:40,md:50},children:p?r.jsxs(r.Fragment,{children:[w,f]}):r.jsxs(r.Fragment,{children:[f,w]})})})}function U({id:l,subtitle:n,title:i,background:a="gray.0",items:s=[]}){return r.jsx(y,{id:l,subtitle:n,title:i,background:a,children:r.jsx(e.Grid,{gutter:"lg",children:s.map((d,o)=>r.jsx(_,{...d},o))})})}function _({icon:l,iconVariant:n,iconColor:i,label:a,title:s,titleSize:d,description:o,descriptionSize:c,descriptionMaw:p,span:t={base:12,md:6},bg:g="white",dark:f=!1,visual:w,secondaryVisual:S,layout:v="stacked",badges:B,codeBlock:M,decorativeContent:E,style:k,...G}){const rr=f?"white":void 0,er=f?"gray.4":"gray.6",lr="gray.5",ar=n||(f?"filled":"light"),sr=i||(f?"gray.7":"gray"),ir=d||(v==="compact"?"h4":"h3"),nr=c||(v==="compact"?"sm":"lg"),m=r.jsxs(e.Box,{children:[l&&r.jsx(e.ThemeIcon,{size:48,radius:"0",variant:ar,color:sr,mb:"lg",style:f?{color:"white"}:void 0,children:r.jsx(l,{size:24,stroke:1.5})}),a&&r.jsx(e.Text,{size:"sm",fw:800,tt:"uppercase",ls:"1.5px",c:lr,mb:"xs",children:a}),s&&r.jsx(e.Text,{fz:ir,fw:900,lh:1.2,mb:"sm",c:rr,children:s}),o&&r.jsx(e.Text,{c:er,size:nr,maw:p,mb:B?"xl":v==="compact"?"lg":void 0,children:o}),B&&B.length>0&&r.jsx(e.Group,{children:B.map((tr,dr)=>r.jsx(e.Badge,{variant:"dot",color:"gray",radius:"0",children:tr},dr))})]}),T=w?A(w,f):null,u=S?A(S,f):null;return v==="split"?r.jsx(e.Grid.Col,{span:t,children:r.jsx(e.Paper,{h:"100%",p:{base:"xl",md:40},radius:"0",bg:g,bd:"1px solid var(--mantine-color-gray-2)",style:k,...G,children:r.jsxs(e.Grid,{align:"center",gutter:"xl",children:[r.jsx(e.Grid.Col,{span:{base:12,sm:6},children:m}),r.jsxs(e.Grid.Col,{span:{base:12,sm:6},children:[T,M&&r.jsx(e.Code,{block:!0,color:"gray.0",c:"gray.7",style:{fontSize:12,lineHeight:1.4,borderRadius:0},children:M})]})]})})}):v==="compact"?r.jsx(e.Grid.Col,{span:t,children:r.jsxs(e.Paper,{h:"100%",p:{base:"xl",md:40},radius:"0",bg:g,bd:"1px solid var(--mantine-color-gray-2)",style:k,...G,children:[m,T]})}):E?r.jsx(e.Grid.Col,{span:t,children:r.jsx(e.Paper,{h:"100%",p:{base:"xl",md:40},radius:"0",bg:g,bd:"1px solid var(--mantine-color-gray-2)",pos:"relative",style:k,...G,children:r.jsxs(e.Grid,{gutter:0,pos:"relative",children:[r.jsx(e.Grid.Col,{span:{base:12,sm:7},style:{zIndex:1},children:m}),r.jsx(e.Grid.Col,{span:5,visibleFrom:"sm",children:E})]})})}):r.jsx(e.Grid.Col,{span:t,children:r.jsxs(e.Paper,{h:"100%",p:{base:"xl",md:40},radius:"0",bg:g,bd:"1px solid var(--mantine-color-gray-2)",display:"flex",style:{flexDirection:"column",justifyContent:"space-between",...k},...G,children:[m,T&&u?r.jsxs(e.Group,{gap:40,align:"center",children:[T,u]}):T]})})}function A(l,n){if(!l)return null;switch(l.type){case"ring":return r.jsx(e.RingProgress,{size:l.size||140,thickness:l.thickness||12,sections:[{value:l.value||100,color:"gray.9"}],label:r.jsx(e.Center,{children:r.jsxs(e.Stack,{gap:0,align:"center",children:[r.jsx(e.Text,{fw:900,size:"xl",lh:1,children:l.label}),l.sublabel&&r.jsx(e.Text,{size:"xs",c:"gray.5",fw:700,children:l.sublabel})]})})});case"metric":return r.jsxs(e.Stack,{gap:0,children:[r.jsx(e.Text,{fw:900,fz:32,c:"gray.9",lh:1,children:l.value}),r.jsx(e.Text,{size:"sm",c:"gray.5",mt:4,children:l.label}),l.badge&&r.jsx(e.Badge,{mt:"md",color:"gray",variant:"dot",radius:"0",children:l.badge})]});case"bars":return r.jsx(e.Group,{align:"flex-end",gap:8,h:l.height||100,preventGrowOverflow:!1,children:(l.data||[]).map((i,a)=>r.jsx(e.Box,{w:20,h:`${i}%`,bg:a===l.highlight?"gray.9":"gray.2",radius:"0"},a))});case"typography":return r.jsx(e.Center,{h:l.height||160,bg:n?"gray.8":"gray.1",radius:"0",children:r.jsx(e.Text,{fz:l.fontSize||100,fw:900,c:n?"gray.6":"gray.3",style:{letterSpacing:-6},children:l.text||"Aa"})});case"icon-large":{const i=l.icon;return i?r.jsx(i,{size:l.size||64,stroke:l.stroke||1,color:l.color||"var(--mantine-color-gray-2)"}):null}default:return null}}function Q({id:l,subtitle:n,title:i,traditionalCol:a,newCol:s,background:d="white"}){return r.jsx(y,{id:l,subtitle:n,title:i,background:d,children:r.jsx(e.Paper,{radius:"0",bd:"1px solid var(--mantine-color-gray-2)",style:{overflow:"hidden"},children:r.jsxs(e.SimpleGrid,{cols:{base:1,md:2},spacing:0,children:[r.jsx(e.Box,{bg:"gray.0",p:{base:30,md:60},children:r.jsxs(e.Stack,{gap:"xl",children:[r.jsxs(e.Box,{children:[r.jsx(e.Text,{fw:900,fz:"h2",c:"gray.9",mb:4,children:a.title}),r.jsx(e.Text,{size:"sm",fw:800,tt:"uppercase",ls:"1.5px",c:"gray.5",children:a.subtitle})]}),r.jsx(e.Stack,{gap:"md",mb:40,children:a.items.map((o,c)=>r.jsxs(N.Fragment,{children:[r.jsxs(e.Group,{justify:"space-between",children:[r.jsx(e.Text,{size:"sm",c:"gray.6",children:o.label}),r.jsx(e.Text,{fw:700,c:"gray.9",children:o.value})]}),c<a.items.length-1&&r.jsx(e.Divider,{color:"var(--mantine-color-gray-2)"})]},c))}),r.jsxs(e.Box,{bg:"white",p:"lg",radius:"0",bd:"1px solid var(--mantine-color-gray-2)",children:[r.jsxs(e.Group,{justify:"space-between",children:[r.jsx(e.Text,{fw:900,c:"gray.7",children:a.totalLabel||"Total Estimado"}),r.jsx(e.Text,{fw:900,fz:32,c:"gray.9",children:a.totalValue})]}),a.footerText&&r.jsx(e.Text,{size:"xs",c:"red.6",ta:"right",mt:4,children:a.footerText})]})]})}),r.jsx(e.Box,{bg:"white",p:{base:30,md:60},pos:"relative",children:r.jsxs(e.Stack,{gap:"xl",h:"100%",children:[r.jsxs(e.Box,{children:[r.jsxs(e.Group,{gap:"xs",children:[r.jsx(e.Text,{fw:900,fz:"h2",c:"gray.9",mb:4,children:s.title}),s.badge&&r.jsx(e.Badge,{color:"gray.9",variant:"filled",radius:"0",children:s.badge})]}),r.jsx(e.Text,{size:"sm",c:"gray.6",children:s.description})]}),r.jsx(e.List,{spacing:"md",size:"md",c:"gray.6",icon:r.jsx(e.ThemeIcon,{color:"gray.0",size:20,radius:"0",bd:"1px solid var(--mantine-color-gray-2)",children:r.jsx(x.IconCheck,{size:12,color:"var(--mantine-color-gray-9)"})}),children:s.items.map((o,c)=>r.jsx(e.List.Item,{children:o},c))}),s.pricingBox&&r.jsx(e.Box,{bg:"gray.0",p:"lg",radius:"0",bd:"1px solid var(--mantine-color-gray-2)",children:r.jsxs(e.Stack,{gap:4,children:[r.jsx(e.Text,{size:"sm",fw:800,tt:"uppercase",ls:"1.5px",c:"gray.5",children:s.pricingBox.label}),r.jsx(e.Text,{fw:900,fz:48,c:"gray.9",lh:1,children:s.pricingBox.price}),s.pricingBox.subtext&&r.jsx(e.Text,{size:"xs",c:"gray.5",mt:"sm",children:s.pricingBox.subtext})]})}),s.cta&&r.jsx(e.Box,{mt:"xl",children:r.jsx(b,{label:s.cta.label,href:s.cta.href,icon:s.cta.icon,size:s.cta.size||"lg",color:s.cta.color||"gray.9",fullWidth:!0})})]})})]})})})}function $({id:l,subtitle:n,title:i,billingOptions:a=[{label:"Mensal",value:"monthly"},{label:"Anual",value:"annual"}],billing:s,setBilling:d,promoBadge:o,plans:c,background:p="white"}){return r.jsxs(y,{id:l,subtitle:n,title:i,ta:"center",background:p,children:[a&&a.length>0&&r.jsx(e.Stack,{align:"center",gap:"xl",mb:80,children:r.jsxs(e.Group,{gap:"xs",children:[r.jsx(e.SegmentedControl,{value:s,onChange:d,radius:"0",size:"md",data:a,color:"gray.9",bg:"white",style:{border:"1px solid var(--mantine-color-gray-2)"}}),s==="annual"&&o&&r.jsx(e.Badge,{variant:"filled",color:"gray.9",radius:"0",size:"lg",children:o})]})}),r.jsx(e.SimpleGrid,{cols:{base:1,md:c.length<=3?c.length:3},spacing:"xl",verticalSpacing:"xl",children:c.map(t=>r.jsxs(e.Paper,{p:"xl",radius:"0",withBorder:!0,bd:t.highlight?"2px solid var(--mantine-color-gray-9)":"1px solid var(--mantine-color-gray-2)",display:"flex",h:"100%",style:{flexDirection:"column"},bg:"white",children:[r.jsxs(e.Stack,{gap:"md",mb:"xl",children:[r.jsxs(e.Group,{justify:"space-between",align:"center",children:[r.jsx(e.Text,{size:"xs",fw:800,tt:"uppercase",ls:"1.5px",c:"gray.4",children:t.name}),t.highlight&&r.jsx(e.Badge,{variant:"dot",color:"gray.9",children:t.highlightBadge||"RECOMENDADO"})]}),r.jsx(e.Text,{size:"sm",c:"gray.6",fw:500,lh:1.5,h:{md:42},children:t.description})]}),r.jsxs(e.Box,{mb:"xl",children:[r.jsx(e.Text,{size:"xs",c:"gray.4",fw:800,tt:"uppercase",ls:"1px",mb:4,children:t.pricePrefix||"A partir de"}),r.jsxs(e.Group,{gap:8,align:"flex-start",children:[r.jsx(e.Text,{size:"xl",fw:900,c:"gray.9",style:{marginTop:8},children:t.priceDisplay?.currency}),r.jsxs(e.Group,{gap:4,align:"flex-end",children:[r.jsx(e.Text,{fz:"var(--fz-big-metric)",fw:900,ls:"-0.04em",lh:.8,c:"gray.9",children:t.priceDisplay?.whole}),t.priceDisplay?.fraction&&r.jsxs(e.Stack,{gap:0,mb:6,children:[r.jsxs(e.Text,{size:"xl",fw:900,lh:1,c:"gray.9",children:[",",t.priceDisplay.fraction]}),r.jsx(e.Text,{size:"xs",c:"gray.5",fw:800,tt:"uppercase",ls:"0.5px",children:t.period||t.priceSuffix||"/mês"})]})]})]})]}),r.jsx(e.Divider,{mb:"xl",color:"gray.1"}),r.jsx(e.Stack,{gap:"sm",mb:40,style:{flex:1},children:t.features.map((g,f)=>r.jsxs(e.Group,{gap:"sm",wrap:"nowrap",align:"flex-start",children:[r.jsx(x.IconCheck,{size:16,color:"var(--mantine-color-gray-9)",style:{marginTop:2,flexShrink:0}}),r.jsx(e.Text,{size:"sm",fw:500,c:"gray.6",lh:1.4,children:g})]},f))}),r.jsx(e.Box,{mt:"auto",children:r.jsx(b,{label:t.cta.label,href:t.cta.href,size:t.cta.size||"xl",variant:t.cta.variant,color:t.cta.color||"gray.9",fullWidth:!0})})]},t.name))})]})}function J({id:l,subtitle:n,title:i,questions:a=[],contactCard:s,background:d="white"}){const o={item:{backgroundColor:"white",border:"1px solid var(--mantine-color-gray-2)"},control:{padding:"1.25rem"},content:{padding:"0 1.25rem 1.25rem 1.25rem"},label:{fontWeight:900,color:"var(--mantine-color-gray-9)"},chevron:{color:"var(--mantine-color-gray-5)"}};return r.jsxs(y,{id:l,subtitle:n,title:i,background:d,children:[r.jsxs(e.SimpleGrid,{cols:{base:1,md:2},spacing:"xl",children:[r.jsx(e.Accordion,{variant:"separated",radius:"0",chevronPosition:"right",styles:o,children:a.slice(0,Math.ceil(a.length/2)).map((c,p)=>r.jsxs(e.Accordion.Item,{value:c.value||String(p),mb:"md",children:[r.jsx(e.Accordion.Control,{icon:r.jsx(e.ThemeIcon,{variant:"light",color:"gray",radius:"0",children:r.jsx(x.IconBolt,{size:16})}),children:c.question}),r.jsx(e.Accordion.Panel,{c:"gray.6",children:c.answer})]},c.value||p))}),r.jsx(e.Accordion,{variant:"separated",radius:"0",chevronPosition:"right",styles:o,children:a.slice(Math.ceil(a.length/2)).map((c,p)=>r.jsxs(e.Accordion.Item,{value:c.value||String(p),mb:"md",children:[r.jsx(e.Accordion.Control,{icon:r.jsx(e.ThemeIcon,{variant:"light",color:"gray",radius:"0",children:r.jsx(x.IconBolt,{size:16})}),children:c.question}),r.jsx(e.Accordion.Panel,{c:"gray.6",children:c.answer})]},c.value||p))})]}),s&&r.jsx(e.Paper,{mt:{base:40,md:80},radius:"0",p:{base:"xl",md:60},bg:"gray.0",bd:"1px solid var(--mantine-color-gray-1)",pos:"relative",style:{overflow:"hidden"},children:r.jsxs(e.SimpleGrid,{cols:{base:1,md:2},spacing:"xl",style:{position:"relative",zIndex:1,alignItems:"center"},children:[r.jsxs(e.Stack,{gap:"sm",ta:{base:"center",md:"left"},align:{base:"center",md:"flex-start"},children:[r.jsx(e.Text,{fz:"h2",fw:900,c:"gray.9",lh:1.2,children:s.title}),r.jsx(e.Text,{c:"gray.6",maw:500,size:"lg",children:s.description})]}),r.jsx(e.Stack,{align:{base:"center",md:"flex-end"},children:r.jsx(b,{label:s.cta.label,href:s.cta.href,target:s.cta.target,leftSection:s.cta.icon,size:s.cta.size||"xl",color:s.cta.color||"dark"})})]})})]})}function X({id:l,subtitle:n,items:i=[],background:a="gray"}){return r.jsx(y,{id:l,background:a,title,subtitle:n,children:r.jsx(e.SimpleGrid,{cols:{base:1,md:i.length>3?4:i.length||3},spacing:"xl",children:i.map((s,d)=>r.jsx(e.Paper,{p:"xl",radius:"0",bd:"1px solid var(--mantine-color-gray-2)",bg:"white",children:r.jsxs(e.Stack,{gap:"md",align:"flex-start",h:"100%",children:[r.jsx(x.IconQuote,{size:32,color:"var(--mantine-color-gray-3)"}),r.jsxs(e.Text,{size:"lg",c:"gray.7",lh:1.6,fs:"italic",flex:1,children:['"',s.content,'"']}),r.jsxs(e.Group,{gap:"sm",mt:"xl",children:[r.jsx(e.Avatar,{size:"md",radius:"0",color:"gray",src:s.avatarSrc,children:s.initials}),r.jsxs(e.Stack,{gap:0,children:[r.jsx(e.Text,{size:"sm",fw:900,children:s.name}),r.jsx(e.Text,{size:"xs",fw:800,tt:"uppercase",ls:"1px",c:"gray.5",children:s.role})]})]})]})},d))})})}function D({id:l,title:n,description:i,cta:a,background:s="gray.0"}){return r.jsx(y,{id:l,background:s,ta:"center",children:r.jsx(e.Paper,{p:{base:"xl",sm:80},bg:"white",radius:"0",bd:"1px solid var(--mantine-color-gray-2)",style:{borderTop:"4px solid var(--mantine-color-gray-9)"},children:r.jsxs(e.Stack,{align:"center",ta:"center",gap:"xl",children:[n&&r.jsx(e.Text,{fz:"var(--fz-section-title)",fw:900,lh:1.2,ls:"-0.04em",maw:700,children:n}),i&&r.jsx(e.Text,{c:"gray.7",size:"xl",maw:550,children:i}),a&&r.jsx(e.Box,{mt:"md",children:r.jsx(b,{label:a.label,href:a.href,size:a.size||"xl",px:a.px||{base:32,md:60},variant:a.variant,color:a.color})})]})})})}const Y=D;function j({text:l="Selo Exclusivo RiLiGar",color:n="green.6",background:i="gray"}){const a=z(i);return r.jsx(e.Box,{p:"xs",bg:a,style:{borderRadius:"8px",border:"1px solid var(--mantine-color-gray-2)",display:"inline-block"},children:r.jsxs(e.Group,{gap:"xs",children:[r.jsx(e.ThemeIcon,{color:n,variant:"light",size:"sm",radius:"xl",children:r.jsx(x.IconCircleCheck,{size:14,"aria-hidden":"true"})}),r.jsx(e.Text,{size:"xs",fw:700,c:"gray.7",tt:"uppercase",lts:.5,children:l})]})})}const Z=j;function R({logo:l,description:n,sections:i=[],socialLinks:a=[],copyrightText:s,madeByText:d,background:o="white"}){const c=z(o);return r.jsx(e.Box,{component:"footer",py:"xl",bg:c,bd:{top:"1px solid var(--mantine-color-gray-2)"},children:r.jsxs(e.Container,{size:"xl",children:[r.jsxs(e.SimpleGrid,{cols:{base:1,sm:2},spacing:"xl",children:[r.jsxs(e.Stack,{gap:"lg",children:[l&&r.jsx("img",{src:l.src,alt:l.alt||"",height:l.height||32,style:{objectFit:"contain",objectPosition:"left"}}),n&&r.jsx(e.Text,{size:"md",c:"gray.6",lh:1.6,maw:400,children:n})]}),r.jsxs(e.SimpleGrid,{cols:{base:2,sm:i.length||4},spacing:"xl",children:[i.map((p,t)=>r.jsxs(e.Stack,{gap:"md",children:[r.jsx(e.Text,{fw:900,size:"xs",tt:"uppercase",ls:"1.5px",children:p.title}),r.jsx(e.Stack,{gap:"xs",children:p.links.map((g,f)=>r.jsx(e.Anchor,{c:"gray.6",size:"sm",component:g.href?"a":"button",href:g.href,onClick:g.onClick,fw:500,children:g.label},f))})]},t)),a&&a.length>0&&r.jsxs(e.Stack,{gap:"md",children:[r.jsx(e.Text,{fw:900,size:"xs",tt:"uppercase",ls:"1.5px",children:"Social"}),r.jsx(e.Group,{gap:"xs",children:a.map((p,t)=>r.jsx(e.ActionIcon,{size:"md",variant:"subtle",color:"gray",component:"a",href:p.href,target:"_blank",radius:"0","aria-label":p.label||`Social link ${t+1}`,children:p.icon},t))})]})]})]}),r.jsx(e.Divider,{my:"xl",color:"gray.2"}),r.jsxs(e.Group,{justify:"space-between",mt:30,wrap:"wrap",gap:"sm",children:[r.jsx(e.Text,{size:"xs",fw:800,tt:"uppercase",ls:"1px",c:"gray.5",children:s}),d&&r.jsx(e.Group,{gap:"sm",children:r.jsx(e.Text,{size:"xs",fw:800,tt:"uppercase",ls:"1px",c:"gray.5",children:d})})]})]})})}h.CTABanner=D,h.CTAButton=b,h.Comparison=Q,h.FAQ=J,h.FeatureSplit=q,h.FeaturesGrid=U,h.Footer=R,h.Header=C,h.Hero=W,h.Layout=y,h.MediaBlock=I,h.Navbar=O,h.Pricing=$,h.SECTION_BACKGROUNDS=P,h.SecondaryCTA=Y,h.SectionHeader=F,h.SeloExclusivo=Z,h.SocialProof=V,h.Testimonials=X,h.TrustBadge=j,h.resolveBackground=z,h.theme=L,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})}));