@xscriptor/xcomponents 0.1.0 → 0.1.1
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/README.md +1 -0
- package/dist/{chunk-U27ZVCP7.mjs → chunk-2H7TVDE7.mjs} +14 -2
- package/dist/chunk-2H7TVDE7.mjs.map +7 -0
- package/dist/{chunk-5G4P2E76.mjs → chunk-34NJCJUI.mjs} +11 -2
- package/dist/chunk-34NJCJUI.mjs.map +7 -0
- package/dist/chunk-FZRTAML3.mjs +1 -1
- package/dist/chunk-FZRTAML3.mjs.map +7 -1
- package/dist/{chunk-2OAXRRVQ.mjs → chunk-MYFPSHSQ.mjs} +32 -3
- package/dist/chunk-MYFPSHSQ.mjs.map +7 -0
- package/dist/{chunk-NY22GB3E.mjs → chunk-TG3B4GAW.mjs} +26 -2
- package/dist/chunk-TG3B4GAW.mjs.map +7 -0
- package/dist/{chunk-QCMWPIG7.mjs → chunk-TKT37LIX.mjs} +39 -3
- package/dist/chunk-TKT37LIX.mjs.map +7 -0
- package/dist/{chunk-42XPBYTL.mjs → chunk-UROP4J6G.mjs} +29 -4
- package/dist/chunk-UROP4J6G.mjs.map +7 -0
- package/dist/components/content/index.css +23 -23
- package/dist/components/content/index.css.map +7 -1
- package/dist/components/content/index.d.ts +2 -17
- package/dist/components/content/index.js +11 -6
- package/dist/components/content/index.js.map +7 -1
- package/dist/components/content/index.mjs +2 -2
- package/dist/components/content/index.mjs.map +7 -1
- package/dist/components/content/xinteractivephrase/XInteractivePhrase.d.ts +13 -0
- package/dist/components/content/xinteractivephrase/index.d.ts +3 -0
- package/dist/components/forms/index.css +54 -54
- package/dist/components/forms/index.css.map +7 -1
- package/dist/components/forms/index.d.ts +4 -68
- package/dist/components/forms/index.js +39 -8
- package/dist/components/forms/index.js.map +7 -1
- package/dist/components/forms/index.mjs +2 -2
- package/dist/components/forms/index.mjs.map +7 -1
- package/dist/components/forms/xcontactform/XContactForm.d.ts +42 -0
- package/dist/components/forms/xcontactform/index.d.ts +3 -0
- package/dist/components/forms/xnewsletter/XNewsletter.d.ts +21 -0
- package/dist/components/forms/xnewsletter/index.d.ts +3 -0
- package/dist/components/gallery/index.css +58 -58
- package/dist/components/gallery/index.css.map +7 -1
- package/dist/components/gallery/index.d.ts +4 -29
- package/dist/components/gallery/index.js +32 -8
- package/dist/components/gallery/index.js.map +7 -1
- package/dist/components/gallery/index.mjs +2 -2
- package/dist/components/gallery/index.mjs.map +7 -1
- package/dist/components/gallery/xmicrogallerytext/XMicroGalleryText.d.ts +15 -0
- package/dist/components/gallery/xmicrogallerytext/index.d.ts +3 -0
- package/dist/components/gallery/xstaticgallery/XStaticGallery.d.ts +10 -0
- package/dist/components/gallery/xstaticgallery/index.d.ts +3 -0
- package/dist/components/index.css +215 -215
- package/dist/components/index.css.map +7 -1
- package/dist/components/index.d.ts +6 -8
- package/dist/components/index.js +146 -31
- package/dist/components/index.js.map +7 -1
- package/dist/components/index.mjs +12 -12
- package/dist/components/index.mjs.map +7 -1
- package/dist/components/layout/index.css +28 -28
- package/dist/components/layout/index.css.map +7 -1
- package/dist/components/layout/index.d.ts +6 -55
- package/dist/components/layout/index.js +29 -10
- package/dist/components/layout/index.js.map +7 -1
- package/dist/components/layout/index.mjs +2 -2
- package/dist/components/layout/index.mjs.map +7 -1
- package/dist/components/layout/xfooter/XFooter.d.ts +24 -0
- package/dist/components/layout/xfooter/index.d.ts +3 -0
- package/dist/components/layout/xseparator/XSeparator.d.ts +13 -0
- package/dist/components/layout/xseparator/index.d.ts +3 -0
- package/dist/components/layout/xzigzaglayout/XZigZagLayout.d.ts +12 -0
- package/dist/components/layout/xzigzaglayout/index.d.ts +3 -0
- package/dist/components/navigation/index.css +35 -35
- package/dist/components/navigation/index.css.map +7 -1
- package/dist/components/navigation/index.d.ts +2 -76
- package/dist/components/navigation/index.js +26 -6
- package/dist/components/navigation/index.js.map +7 -1
- package/dist/components/navigation/index.mjs +2 -2
- package/dist/components/navigation/index.mjs.map +7 -1
- package/dist/components/navigation/{index.d.mts → xnavbar/XNavbar.d.ts} +6 -10
- package/dist/components/navigation/xnavbar/index.d.ts +3 -0
- package/dist/components/social/index.css +22 -22
- package/dist/components/social/index.css.map +7 -1
- package/dist/components/social/index.d.ts +2 -55
- package/dist/components/social/index.js +14 -13
- package/dist/components/social/index.js.map +7 -1
- package/dist/components/social/index.mjs +2 -2
- package/dist/components/social/index.mjs.map +7 -1
- package/dist/components/social/xsocialcontact/XSocialContact.d.ts +30 -0
- package/dist/components/social/xsocialcontact/XSocialIcons.d.ts +21 -0
- package/dist/components/social/xsocialcontact/index.d.ts +5 -0
- package/dist/index.css +215 -215
- package/dist/index.css.map +7 -1
- package/dist/index.d.ts +1 -8
- package/dist/index.js +149 -34
- package/dist/index.js.map +7 -1
- package/dist/index.mjs +12 -12
- package/dist/index.mjs.map +7 -1
- package/package.json +6 -4
- package/dist/chunk-2OAXRRVQ.mjs.map +0 -1
- package/dist/chunk-42XPBYTL.mjs.map +0 -1
- package/dist/chunk-5G4P2E76.mjs.map +0 -1
- package/dist/chunk-NY22GB3E.mjs.map +0 -1
- package/dist/chunk-QCMWPIG7.mjs.map +0 -1
- package/dist/chunk-U27ZVCP7.mjs.map +0 -1
- package/dist/components/content/index.d.mts +0 -17
- package/dist/components/forms/index.d.mts +0 -68
- package/dist/components/gallery/index.d.mts +0 -29
- package/dist/components/index.d.mts +0 -8
- package/dist/components/layout/index.d.mts +0 -55
- package/dist/components/social/index.d.mts +0 -55
- package/dist/index.d.mts +0 -8
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/components/layout/xfooter/XFooter.tsx", "../src/components/layout/xfooter/XFooter.module.css", "../src/components/layout/xseparator/XSeparator.module.css", "../src/components/layout/xseparator/XSeparator.tsx", "../src/components/layout/xzigzaglayout/XZigZagLayout.tsx", "../src/components/layout/xzigzaglayout/XZigZagLayout.module.css"],
|
|
4
|
+
"sourcesContent": ["import Link from \"next/link\";\nimport { CSSProperties } from \"react\";\nimport styles from \"./XFooter.module.css\";\n\nexport type XFooterLink = {\n label: string;\n href: string;\n};\n\nexport type CopyrightConfig = {\n text?: string;\n showYear?: boolean;\n customYear?: number | string;\n yearFirst?: boolean;\n};\n\nexport type XFooterProps = {\n links: XFooterLink[];\n copyright?: CopyrightConfig; \n layout?: \"horizontal\" | \"vertical\";\n columns?: 1 | 2 | 3 | 4;\n colors?: {\n bg?: string;\n text?: string;\n accent?: string;\n border?: string;\n };\n className?: string;\n};\nexport default function XFooter({\n links,\n copyright,\n layout = \"horizontal\",\n columns = 1,\n colors,\n className = \"\",\n}: XFooterProps) {\n \n const customStyles = {\n \"--xf-bg\": colors?.bg,\n \"--xf-text\": colors?.text,\n \"--xf-accent\": colors?.accent,\n \"--xf-border\": colors?.border,\n \"--xf-cols\": layout === \"horizontal\" ? columns : 1,\n } as CSSProperties;\n\n const currentYear = copyright?.customYear || new Date().getFullYear();\n const copyLabel = copyright?.text || \"Xscriptor\";\n\n return (\n <footer className={`${styles.XFooter} ${className}`} style={customStyles}>\n <div className={styles.container}>\n {/* Los links se organizan en el grid definido por --xf-cols */}\n <nav className={layout === \"vertical\" ? styles.navVertical : styles.nav}>\n {links.map((link, idx) => (\n <Link key={idx} href={link.href} className={styles.link}>\n {link.label}\n </Link>\n ))}\n </nav>\n\n {/* El copyright queda fuera del nav, por lo que hereda el centrado del container */}\n <div className={styles.copyright}>\n \u00A9 {copyright?.yearFirst \n ? `${currentYear} ${copyLabel}` \n : `${copyLabel} ${currentYear}`}\n </div>\n </div>\n </footer>\n );\n}", ".XFooter {\n width: 100%;\n background-color: var(--xf-bg, transparent);\n color: var(--xf-text, #333);\n padding: var(--xf-py, 0.9rem) 0.6rem;\n}\n\n.container {\n max-width: 1280px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.6rem; /* Espacio entre los links y el copyright */\n}\n\n/* El nav es el que maneja las columnas de los links */\n.nav {\n display: grid;\n gap: 0.5rem 1.5rem; \n grid-template-columns: repeat(var(--xf-cols, 1), minmax(0, auto));\n justify-content: center;\n text-align: center;\n width: 100%;\n}\n\n.navVertical {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.75rem;\n}\n\n.link {\n color: var(--xf-accent, inherit);\n text-decoration: none;\n font-size: 0.9rem;\n transition: opacity 0.2s;\n white-space: nowrap; /* Evita que los links se rompan en dos l\u00EDneas */\n}\n\n.link:hover {\n opacity: 0.7;\n}\n\n/* El copyright siempre ir\u00E1 al final y centrado por el flex del .container */\n.copyright {\n font-size: 0.75rem;\n opacity: 0.6;\n width: 100%;\n text-align: center;\n}", ".separatorContainer {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n /* Variables para la X con fallbacks */\n --x-color: var(--separator-color); \n --x-bg: white;\n}\n\n.iconWrapper {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n background-color: var(--x-bg);\n padding: 0 10px;\n \n /* Aplicamos el color din\u00E1mico */\n color: var(--x-color);\n \n font-family: system-ui, sans-serif;\n font-weight: bold;\n font-size: 1.2rem;\n line-height: 1;\n user-select: none;\n}\n\n.separator {\n --separator-color: #e2e8f0;\n --separator-thickness: 1px;\n --separator-margin: 1rem;\n \n border: 0;\n background-color: var(--separator-color);\n}\n\n/* Variantes de Estilo */\n.dashed {\n background-color: transparent !important;\n border-bottom: var(--separator-thickness) dashed var(--separator-color);\n}\n\n.dotted {\n background-color: transparent !important;\n border-bottom: var(--separator-thickness) dotted var(--separator-color);\n}\n\n/* Efecto Desvanecido (Fading) */\n/* Usamos mask-image para que funcione con cualquier color de fondo */\n.faded {\n mask-image: linear-gradient(\n to right, \n transparent, \n black 20%, \n black 80%, \n transparent\n );\n}\n\n/* Ajuste para desvanecido vertical */\n.vertical.faded {\n mask-image: linear-gradient(\n to bottom, \n transparent, \n black 20%, \n black 80%, \n transparent\n );\n}\n\n.horizontal {\n width: 100%;\n height: var(--separator-thickness);\n margin: var(--separator-margin) 0;\n}\n\n.vertical {\n width: var(--separator-thickness);\n height: 100%;\n display: inline-block;\n margin: 0 var(--separator-margin);\n vertical-align: middle;\n}", "import React from 'react';\nimport styles from './XSeparator.module.css';\n\nexport interface XSeparatorProps {\n orientation?: 'horizontal' | 'vertical';\n variant?: 'solid' | 'dashed' | 'dotted';\n isFaded?: boolean;\n hasX?: boolean;\n xColor?: string; // Nuevo: Color de la X\n xBg?: string; // Nuevo: Fondo detr\u00E1s de la X (para el recorte)\n thickness?: string;\n color?: string;\n gap?: string;\n className?: string;\n}\n\nexport default function XSeparator({\n orientation = 'horizontal',\n variant = 'solid',\n isFaded = false,\n hasX = false,\n xColor, \n xBg = 'white',\n thickness = '1px',\n color = '#e2e8f0',\n gap = '1rem',\n className = ''\n}: XSeparatorProps) {\n \n const dynamicStyles = {\n '--separator-color': color,\n '--separator-thickness': thickness,\n '--separator-margin': gap,\n '--x-color': xColor || color, // Si no se define xColor, usa el color de la l\u00EDnea\n '--x-bg': xBg,\n } as React.CSSProperties;\n\n const classes = [\n styles.separator,\n orientation === 'vertical' ? styles.vertical : styles.horizontal,\n variant !== 'solid' && styles[variant],\n isFaded && styles.faded,\n ].filter(Boolean).join(' ');\n\n const line = <hr className={classes} style={dynamicStyles} />;\n\n if (!hasX) return line;\n\n return (\n <div className={`${styles.separatorContainer} ${className}`} style={dynamicStyles}>\n {line}\n <div className={styles.iconWrapper}>\n \u2715\n </div>\n </div>\n );\n}", "import React, { Children, HTMLAttributes, useEffect, useRef, useState, useCallback } from \"react\";\nimport styles from \"./XZigZagLayout.module.css\";\n\nexport type XZigZagLayoutProps = HTMLAttributes<HTMLDivElement> & {\n children: React.ReactNode;\n startSide?: \"left\" | \"right\";\n gap?: number | string;\n offset?: number | string;\n textAlign?: \"inherit\" | \"side\" | \"left\" | \"right\";\n showLine?: boolean;\n lineColor?: string;\n lineThickness?: number | string;\n};\n\nexport default function XZigZagLayout({\n children,\n className,\n style,\n startSide = \"left\",\n gap,\n offset,\n textAlign = \"inherit\",\n showLine = false,\n lineColor = \"#cccccc\",\n lineThickness = 2,\n ...rest\n}: XZigZagLayoutProps) {\n const items = Children.toArray(children).filter(Boolean);\n const containerRef = useRef<HTMLDivElement>(null);\n const itemsRef = useRef<(HTMLDivElement | null)[]>([]);\n const pathRef = useRef<SVGPathElement>(null);\n\n const [points, setPoints] = useState<{ x: number; y: number }[]>([]);\n const [pathLength, setPathLength] = useState(0);\n const [drawProgress, setDrawProgress] = useState(0);\n\n // Calcula el centro de cada elemento para dibujar los puntos\n const calculatePoints = useCallback(() => {\n if (!containerRef.current) return;\n const containerRect = containerRef.current.getBoundingClientRect();\n\n const newPoints = itemsRef.current.filter(Boolean).map((el) => {\n const rect = el!.getBoundingClientRect();\n return {\n x: rect.left + rect.width / 2 - containerRect.left,\n y: rect.top + rect.height / 2 - containerRect.top,\n };\n });\n\n if (newPoints.length > 0) {\n newPoints.unshift({ x: newPoints[0].x, y: 0 }); // Inicia arriba\n newPoints.push({ x: newPoints[newPoints.length - 1].x, y: containerRect.height }); // Termina abajo\n }\n\n setPoints(newPoints);\n }, []);\n\n useEffect(() => {\n if (!showLine || !containerRef.current) return;\n const observer = new ResizeObserver(() => calculatePoints());\n observer.observe(containerRef.current);\n calculatePoints();\n return () => observer.disconnect();\n }, [showLine, calculatePoints]);\n\n useEffect(() => {\n if (pathRef.current) setPathLength(pathRef.current.getTotalLength());\n }, [points]);\n\n useEffect(() => {\n if (!showLine) return;\n const handleScroll = () => {\n if (!containerRef.current) return;\n const { top, height } = containerRef.current.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const start = windowHeight / 2;\n const progress = (start - top) / height;\n\n setDrawProgress(Math.min(Math.max(progress, 0), 1));\n };\n\n window.addEventListener(\"scroll\", handleScroll);\n handleScroll();\n return () => window.removeEventListener(\"scroll\", handleScroll);\n }, [showLine]);\n\n const cssVars: Record<string, string> = {};\n if (gap !== undefined) cssVars[\"--x-zigzag-gap\"] = typeof gap === \"number\" ? `${gap}px` : gap;\n if (offset !== undefined) cssVars[\"--x-zigzag-offset\"] = typeof offset === \"number\" ? `${offset}px` : offset;\n\n const mergedStyle: React.CSSProperties = { ...style, ...cssVars };\n\n const pathD = points.length > 0\n ? `M ${points[0].x} ${points[0].y} ` + points.slice(1).map((p) => `L ${p.x} ${p.y}`).join(\" \")\n : \"\";\n\n return (\n <div\n ref={containerRef}\n {...rest}\n className={[styles.layout, className].filter(Boolean).join(\" \")}\n style={mergedStyle}\n >\n {showLine && points.length > 0 && (\n <svg className={styles.svgLine} xmlns=\"http://www.w3.org/2000/svg\">\n <path\n ref={pathRef}\n d={pathD}\n fill=\"none\"\n stroke={lineColor}\n strokeWidth={lineThickness}\n strokeDasharray={pathLength}\n strokeDashoffset={pathLength - pathLength * drawProgress}\n style={{ transition: \"stroke-dashoffset 0.1s ease-out\" }}\n />\n </svg>\n )}\n\n {items.map((child, index) => {\n const isStartLeft = startSide === \"left\";\n const alignLeft = isStartLeft ? index % 2 === 0 : index % 2 !== 0;\n const alignmentClass =\n textAlign === \"side\"\n ? alignLeft ? styles.textLeft : styles.textRight\n : textAlign === \"left\" ? styles.textLeft : textAlign === \"right\" ? styles.textRight : \"\";\n\n return (\n <div key={index} className={`${styles.item} ${alignLeft ? styles.left : styles.right} ${alignmentClass}`}>\n {/* El wrapper interno nos permite medir exactamente d\u00F3nde queda el contenido */}\n <div ref={(el) => { itemsRef.current[index] = el; }} className={styles.contentWrapper}>\n {child}\n </div>\n </div>\n );\n })}\n </div>\n );\n}", ".layout {\n width: min(100%, 72rem);\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n gap: var(--x-zigzag-gap, 0.5rem);\n padding-inline: clamp(0.5rem, 2vw, 1rem);\n position: relative; \n}\n\n/* Nuevos estilos para el SVG de la l\u00EDnea */\n.svgLine {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 0;\n}\n\n.item {\n width: 100%;\n display: grid;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n}\n\n.item > * {\n width: 100%;\n text-align: inherit;\n}\n\n/* Wrapper transparente que envuelve al child */\n.contentWrapper {\n width: 100%;\n}\n\n.textLeft > * {\n text-align: left;\n}\n\n.textRight > * {\n text-align: right;\n}\n\n.left > * {\n grid-column: 2 / 8;\n}\n\n.right > * {\n grid-column: 6 / 12;\n}\n\n@media (max-width: 768px) {\n /* En lugar de ocupar las 12 columnas, los hacemos un poco m\u00E1s angostos para que sus centros se desfasen */\n .left > * {\n grid-column: 1 / 11;\n }\n\n .right > * {\n grid-column: 3 / 13;\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["XFooter", "container", "nav", "navVertical", "link", "copyright", "separatorContainer", "iconWrapper", "separator", "dashed", "dotted", "faded", "vertical", "horizontal", "jsx", "jsxs", "layout", "svgLine", "item", "contentWrapper", "textLeft", "textRight", "left", "right", "jsx", "jsxs"]
|
|
7
|
+
}
|
|
@@ -1,81 +1,81 @@
|
|
|
1
1
|
/* src/components/content/xinteractivephrase/XInteractivePhrase.module.css */
|
|
2
|
-
.
|
|
2
|
+
.XInteractivePhrase_container3 {
|
|
3
3
|
padding: 1rem 0;
|
|
4
4
|
color: var(--text, #000);
|
|
5
5
|
width: 100%;
|
|
6
6
|
}
|
|
7
|
-
.
|
|
7
|
+
.XInteractivePhrase_title3 {
|
|
8
8
|
margin: 0;
|
|
9
9
|
padding: 0;
|
|
10
10
|
line-height: 1.3;
|
|
11
11
|
font-weight: inherit;
|
|
12
12
|
text-align: inherit;
|
|
13
13
|
}
|
|
14
|
-
h1.
|
|
14
|
+
h1.XInteractivePhrase_title3 {
|
|
15
15
|
font-size: clamp(2rem, 6vw, 2.2rem);
|
|
16
16
|
font-weight: 800;
|
|
17
17
|
margin: 0;
|
|
18
18
|
padding: 0;
|
|
19
19
|
text-align: inherit;
|
|
20
20
|
}
|
|
21
|
-
h2.
|
|
21
|
+
h2.XInteractivePhrase_title3 {
|
|
22
22
|
font-size: clamp(1.675rem, 4vw, 1.8rem);
|
|
23
23
|
font-weight: 700;
|
|
24
24
|
margin: 0;
|
|
25
25
|
padding: 0;
|
|
26
26
|
text-align: inherit;
|
|
27
27
|
}
|
|
28
|
-
h3.
|
|
28
|
+
h3.XInteractivePhrase_title3 {
|
|
29
29
|
font-size: clamp(1.4rem, 3vw, 1.95rem);
|
|
30
30
|
font-weight: 700;
|
|
31
31
|
margin: 0;
|
|
32
32
|
padding: 0;
|
|
33
33
|
text-align: inherit;
|
|
34
34
|
}
|
|
35
|
-
h4.
|
|
35
|
+
h4.XInteractivePhrase_title3 {
|
|
36
36
|
font-size: clamp(1.25rem, 3vw, 2rem);
|
|
37
37
|
font-weight: 600;
|
|
38
38
|
margin: 0;
|
|
39
39
|
padding: 0;
|
|
40
40
|
text-align: inherit;
|
|
41
41
|
}
|
|
42
|
-
h5.
|
|
42
|
+
h5.XInteractivePhrase_title3 {
|
|
43
43
|
font-size: clamp(1.125rem, 3vw, 1.5rem);
|
|
44
44
|
font-weight: 600;
|
|
45
45
|
margin: 0;
|
|
46
46
|
padding: 0;
|
|
47
47
|
text-align: inherit;
|
|
48
48
|
}
|
|
49
|
-
h6.
|
|
49
|
+
h6.XInteractivePhrase_title3 {
|
|
50
50
|
font-size: clamp(1rem, 2.5vw, 1.25rem);
|
|
51
51
|
font-weight: 600;
|
|
52
52
|
margin: 0;
|
|
53
53
|
padding: 0;
|
|
54
54
|
text-align: inherit;
|
|
55
55
|
}
|
|
56
|
-
p.
|
|
56
|
+
p.XInteractivePhrase_title3 {
|
|
57
57
|
font-size: 1rem;
|
|
58
58
|
font-weight: 400;
|
|
59
59
|
margin: 0;
|
|
60
60
|
padding: 0;
|
|
61
61
|
text-align: inherit;
|
|
62
62
|
}
|
|
63
|
-
.
|
|
63
|
+
.XInteractivePhrase_title3 strong {
|
|
64
64
|
font-weight: 900;
|
|
65
65
|
color: var(--accent, #0070f3);
|
|
66
66
|
}
|
|
67
|
-
.
|
|
67
|
+
.XInteractivePhrase_title3 em {
|
|
68
68
|
font-style: italic;
|
|
69
69
|
font-family: serif;
|
|
70
70
|
}
|
|
71
|
-
.
|
|
71
|
+
.XInteractivePhrase_underlineEffect3 {
|
|
72
72
|
position: relative;
|
|
73
73
|
cursor: pointer;
|
|
74
74
|
color: var(--accent, #0070f3);
|
|
75
75
|
display: inline-block;
|
|
76
76
|
transition: color 0.3s ease;
|
|
77
77
|
}
|
|
78
|
-
.
|
|
78
|
+
.XInteractivePhrase_underlineEffect3::after {
|
|
79
79
|
content: "";
|
|
80
80
|
position: absolute;
|
|
81
81
|
bottom: -2px;
|
|
@@ -91,10 +91,10 @@ p.title {
|
|
|
91
91
|
currentColor 4px);
|
|
92
92
|
transition: opacity 0.3s ease;
|
|
93
93
|
}
|
|
94
|
-
.
|
|
94
|
+
.XInteractivePhrase_underlineEffect3:hover::after {
|
|
95
95
|
opacity: 0;
|
|
96
96
|
}
|
|
97
|
-
.
|
|
97
|
+
.XInteractivePhrase_buttonEffect3 {
|
|
98
98
|
display: inline-block;
|
|
99
99
|
padding: 0.1em 0.6em;
|
|
100
100
|
border: 2px dashed currentColor;
|
|
@@ -103,30 +103,30 @@ p.title {
|
|
|
103
103
|
color: var(--accent, #0070f3);
|
|
104
104
|
transition: all 0.3s ease;
|
|
105
105
|
}
|
|
106
|
-
.
|
|
106
|
+
.XInteractivePhrase_buttonEffect3:hover {
|
|
107
107
|
background: currentColor;
|
|
108
108
|
color: var(--bg, #fff);
|
|
109
109
|
}
|
|
110
|
-
.
|
|
110
|
+
.XInteractivePhrase_blurEffect3 {
|
|
111
111
|
display: inline-block;
|
|
112
112
|
transition: filter 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s ease;
|
|
113
113
|
}
|
|
114
|
-
.
|
|
114
|
+
.XInteractivePhrase_isVisible3 {
|
|
115
115
|
filter: blur(0);
|
|
116
116
|
opacity: 1;
|
|
117
117
|
}
|
|
118
|
-
.
|
|
118
|
+
.XInteractivePhrase_isHidden3 {
|
|
119
119
|
filter: blur(10px);
|
|
120
120
|
opacity: 0.3;
|
|
121
121
|
user-select: none;
|
|
122
122
|
}
|
|
123
|
-
.
|
|
123
|
+
.XInteractivePhrase_lineBreak3 {
|
|
124
124
|
display: block;
|
|
125
125
|
height: 0.8rem;
|
|
126
126
|
}
|
|
127
|
-
.
|
|
128
|
-
.
|
|
127
|
+
.XInteractivePhrase_underlineEffect3:focus-visible,
|
|
128
|
+
.XInteractivePhrase_buttonEffect3:focus-visible {
|
|
129
129
|
outline: 2px solid var(--accent, #0070f3);
|
|
130
130
|
outline-offset: 4px;
|
|
131
131
|
}
|
|
132
|
-
/*# sourceMappingURL=index.css.map */
|
|
132
|
+
/*# sourceMappingURL=index.css.map */
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/content/xinteractivephrase/XInteractivePhrase.module.css"],
|
|
4
|
+
"sourcesContent": [".container {\n padding: 1rem 0;\n color: var(--text, #000);\n width: 100%;\n}\n\n.title {\n margin: 0;\n padding: 0;\n line-height: 1.3;\n font-weight: inherit;\n text-align: inherit;\n}\n\n/* Escala tipogr\u00E1fica fluida */\nh1.title { font-size: clamp(2rem, 6vw, 2.2rem); font-weight: 800; margin: 0; padding: 0; text-align: inherit; }\nh2.title { font-size: clamp(1.675rem, 4vw, 1.8rem); font-weight: 700; margin: 0; padding: 0; text-align: inherit; }\nh3.title { font-size: clamp(1.4rem, 3vw, 1.95rem); font-weight: 700; margin: 0; padding: 0; text-align: inherit; }\nh4.title { font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 600; margin: 0; padding: 0; text-align: inherit; }\nh5.title { font-size: clamp(1.125rem, 3vw, 1.5rem); font-weight: 600; margin: 0; padding: 0; text-align: inherit; }\nh6.title { font-size: clamp(1rem, 2.5vw, 1.25rem); font-weight: 600; margin: 0; padding: 0; text-align: inherit; }\np.title { font-size: 1rem; font-weight: 400; margin: 0; padding: 0; text-align: inherit; }\n\n/* Estilos para etiquetas de \u00E9nfasis */\n.title strong {\n font-weight: 900;\n color: var(--accent, #0070f3);\n}\n\n.title em {\n font-style: italic;\n font-family: serif; /* Opcional: da un toque elegante a las it\u00E1licas */\n}\n\n/* Efectos */\n.underlineEffect {\n position: relative;\n cursor: pointer;\n color: var(--accent, #0070f3);\n display: inline-block;\n transition: color 0.3s ease;\n}\n\n.underlineEffect::after {\n content: \"\";\n position: absolute;\n bottom: -2px;\n left: 0;\n height: 0.15em;\n width: 100%;\n background: repeating-linear-gradient(\n 45deg,\n transparent,\n transparent 2px,\n currentColor 2px,\n currentColor 4px\n );\n transition: opacity 0.3s ease;\n}\n\n.underlineEffect:hover::after {\n opacity: 0;\n}\n\n.buttonEffect {\n display: inline-block;\n padding: 0.1em 0.6em;\n border: 2px dashed currentColor;\n border-radius: 9999px;\n cursor: pointer;\n color: var(--accent, #0070f3);\n transition: all 0.3s ease;\n}\n\n.buttonEffect:hover {\n background: currentColor;\n color: var(--bg, #fff);\n}\n\n.blurEffect {\n display: inline-block;\n transition: filter 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s ease;\n}\n\n.isVisible {\n filter: blur(0);\n opacity: 1;\n}\n\n.isHidden {\n filter: blur(10px);\n opacity: 0.3;\n user-select: none;\n}\n\n.lineBreak {\n display: block;\n height: 0.8rem;\n}\n\n.underlineEffect:focus-visible,\n.buttonEffect:focus-visible {\n outline: 2px solid var(--accent, #0070f3);\n outline-offset: 4px;\n}"],
|
|
5
|
+
"mappings": ";AAAA,CAACA;AACC,WAAS,KAAK;AACd,SAAO,IAAI,MAAM,EAAE;AACnB,SAAO;AACT;AAEA,CAACC;AACC,UAAQ;AACR,WAAS;AACT,eAAa;AACb,eAAa;AACb,cAAY;AACd;AAGA,EAAE,CATDA;AASU,aAAW,MAAM,IAAI,EAAE,GAAG,EAAE;AAAS,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AAC9G,EAAE,CAVDA;AAUU,aAAW,MAAM,QAAQ,EAAE,GAAG,EAAE;AAAS,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AAClH,EAAE,CAXDA;AAWU,aAAW,MAAM,MAAM,EAAE,GAAG,EAAE;AAAU,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AACjH,EAAE,CAZDA;AAYU,aAAW,MAAM,OAAO,EAAE,GAAG,EAAE;AAAO,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AAC/G,EAAE,CAbDA;AAaU,aAAW,MAAM,QAAQ,EAAE,GAAG,EAAE;AAAS,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AAClH,EAAE,CAdDA;AAcU,aAAW,MAAM,IAAI,EAAE,KAAK,EAAE;AAAU,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AACjH,CAAC,CAfAA;AAeU,aAAW;AAAM,eAAa;AAAK,UAAQ;AAAG,WAAS;AAAG,cAAY;AAAS;AAG1F,CAlBCA,0BAkBM;AACL,eAAa;AACb,SAAO,IAAI,QAAQ,EAAE;AACvB;AAEA,CAvBCA,0BAuBM;AACL,cAAY;AACZ,eAAa;AACf;AAGA,CAACC;AACC,YAAU;AACV,UAAQ;AACR,SAAO,IAAI,QAAQ,EAAE;AACrB,WAAS;AACT,cAAY,MAAM,KAAK;AACzB;AAEA,CARCA,mCAQe;AACd,WAAS;AACT,YAAU;AACV,UAAQ;AACR,QAAM;AACN,UAAQ;AACR,SAAO;AACP;AAAA,IAAY;AAAA,MACV,KAAK;AAAA,MACL,WAAW;AAAA,MACX,YAAY,GAAG;AAAA,MACf,aAAa,GAAG;AAAA,MAChB,aAAa;AAEf,cAAY,QAAQ,KAAK;AAC3B;AAEA,CAzBCA,mCAyBe,MAAM;AACpB,WAAS;AACX;AAEA,CAACC;AACC,WAAS;AACT,WAAS,MAAM;AACf,UAAQ,IAAI,OAAO;AACnB,iBAAe;AACf,UAAQ;AACR,SAAO,IAAI,QAAQ,EAAE;AACrB,cAAY,IAAI,KAAK;AACvB;AAEA,CAVCA,gCAUY;AACX,cAAY;AACZ,SAAO,IAAI,IAAI,EAAE;AACnB;AAEA,CAACC;AACC,WAAS;AACT,cAAY,OAAO,KAAK,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,KAAK;AACrE;AAEA,CAACC;AACC,UAAQ,KAAK;AACb,WAAS;AACX;AAEA,CAACC;AACC,UAAQ,KAAK;AACb,WAAS;AACT,eAAa;AACf;AAEA,CAACC;AACC,WAAS;AACT,UAAQ;AACV;AAEA,CAjECL,mCAiEe;AAChB,CArCCC,gCAqCY;AACX,WAAS,IAAI,MAAM,IAAI,QAAQ,EAAE;AACjC,kBAAgB;AAClB;",
|
|
6
|
+
"names": ["container", "title", "underlineEffect", "buttonEffect", "blurEffect", "isVisible", "isHidden", "lineBreak"]
|
|
7
|
+
}
|
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
interface WordConfig {
|
|
4
|
-
text: string;
|
|
5
|
-
type: "normal" | "underline" | "button" | "blur1" | "blur2";
|
|
6
|
-
breakAfter?: boolean;
|
|
7
|
-
italic?: boolean;
|
|
8
|
-
bold?: boolean;
|
|
9
|
-
}
|
|
10
|
-
interface XInteractivePhraseProps {
|
|
11
|
-
words: WordConfig[];
|
|
12
|
-
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span";
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
declare function XInteractivePhrase({ words, as: Tag, className }: XInteractivePhraseProps): react_jsx_runtime.JSX.Element;
|
|
16
|
-
|
|
17
|
-
export { type WordConfig, XInteractivePhrase, type XInteractivePhraseProps };
|
|
1
|
+
export { XInteractivePhrase } from "./xinteractivephrase";
|
|
2
|
+
export type { XInteractivePhraseProps, WordConfig } from "./xinteractivephrase";
|
|
@@ -38,7 +38,16 @@ module.exports = __toCommonJS(content_exports);
|
|
|
38
38
|
var import_react = __toESM(require("react"));
|
|
39
39
|
|
|
40
40
|
// src/components/content/xinteractivephrase/XInteractivePhrase.module.css
|
|
41
|
-
var XInteractivePhrase_default = {
|
|
41
|
+
var XInteractivePhrase_default = {
|
|
42
|
+
container: "XInteractivePhrase_container3",
|
|
43
|
+
title: "XInteractivePhrase_title3",
|
|
44
|
+
underlineEffect: "XInteractivePhrase_underlineEffect3",
|
|
45
|
+
buttonEffect: "XInteractivePhrase_buttonEffect3",
|
|
46
|
+
blurEffect: "XInteractivePhrase_blurEffect3",
|
|
47
|
+
isVisible: "XInteractivePhrase_isVisible3",
|
|
48
|
+
isHidden: "XInteractivePhrase_isHidden3",
|
|
49
|
+
lineBreak: "XInteractivePhrase_lineBreak3"
|
|
50
|
+
};
|
|
42
51
|
|
|
43
52
|
// src/components/content/xinteractivephrase/XInteractivePhrase.tsx
|
|
44
53
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -95,8 +104,4 @@ function XInteractivePhrase({
|
|
|
95
104
|
] }, index);
|
|
96
105
|
}) }) });
|
|
97
106
|
}
|
|
98
|
-
|
|
99
|
-
0 && (module.exports = {
|
|
100
|
-
XInteractivePhrase
|
|
101
|
-
});
|
|
102
|
-
//# sourceMappingURL=index.js.map
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/content/index.ts", "../../../src/components/content/xinteractivephrase/XInteractivePhrase.tsx", "../../../src/components/content/xinteractivephrase/XInteractivePhrase.module.css"],
|
|
4
|
+
"sourcesContent": ["export { XInteractivePhrase } from \"./xinteractivephrase\";\nexport type { XInteractivePhraseProps, WordConfig } from \"./xinteractivephrase\";\n", "\"use client\";\n\nimport React, { useState, KeyboardEvent } from \"react\";\nimport styles from \"./XInteractivePhrase.module.css\";\n\nexport interface WordConfig {\n text: string;\n // Solo comportamientos de interacci\u00F3n\n type: \"normal\" | \"underline\" | \"button\" | \"blur1\" | \"blur2\"; \n breakAfter?: boolean;\n italic?: boolean; // Esto controla el <em>\n bold?: boolean; // Esto controla el <strong>\n}\n\nexport interface XInteractivePhraseProps {\n words: WordConfig[];\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\";\n className?: string;\n}\n\nexport default function XInteractivePhrase({ \n words, \n as: Tag = \"p\", \n className = \"\" \n}: XInteractivePhraseProps) {\n const [active1, setActive1] = useState<boolean>(false);\n const [active2, setActive2] = useState<boolean>(false);\n\n const handleAction = (type: \"underline\" | \"button\") => {\n if (type === \"underline\") setActive1(!active1);\n if (type === \"button\") setActive2(!active2);\n };\n\n const onKeyDown = (e: KeyboardEvent<HTMLSpanElement>, type: \"underline\" | \"button\") => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleAction(type);\n }\n };\n\n return (\n <div className={`${styles.container} ${className}`}>\n <Tag className={styles.title}>\n {words.map((word, index) => {\n let dynamicClass = \"\";\n let clickHandler: (() => void) | undefined = undefined;\n let keyHandler: ((e: KeyboardEvent<HTMLSpanElement>) => void) | undefined = undefined;\n\n // Gesti\u00F3n de l\u00F3gica por tipo\n if (word.type === \"underline\") {\n dynamicClass = styles.underlineEffect;\n clickHandler = () => handleAction(\"underline\");\n keyHandler = (e) => onKeyDown(e, \"underline\");\n } \n else if (word.type === \"button\") {\n dynamicClass = styles.buttonEffect;\n clickHandler = () => handleAction(\"button\");\n keyHandler = (e) => onKeyDown(e, \"button\");\n } \n else if (word.type === \"blur1\") {\n dynamicClass = `${styles.blurEffect} ${active1 ? styles.isVisible : styles.isHidden}`;\n } \n else if (word.type === \"blur2\") {\n dynamicClass = `${styles.blurEffect} ${active2 ? styles.isVisible : styles.isHidden}`;\n }\n\n // Renderizado del contenido con estilos combinables\n let content: React.ReactNode = word.text;\n if (word.italic) content = <em>{content}</em>;\n if (word.bold) content = <strong>{content}</strong>;\n\n return (\n <React.Fragment key={index}>\n <span\n className={dynamicClass}\n onClick={clickHandler}\n onKeyDown={keyHandler}\n role={clickHandler ? \"button\" : undefined}\n tabIndex={clickHandler ? 0 : undefined}\n >\n {content}\n </span>\n {word.breakAfter ? <span className={styles.lineBreak} /> : \" \"}\n </React.Fragment>\n );\n })}\n </Tag>\n </div>\n );\n}", ".container {\n padding: 1rem 0;\n color: var(--text, #000);\n width: 100%;\n}\n\n.title {\n margin: 0;\n padding: 0;\n line-height: 1.3;\n font-weight: inherit;\n text-align: inherit;\n}\n\n/* Escala tipogr\u00E1fica fluida */\nh1.title { font-size: clamp(2rem, 6vw, 2.2rem); font-weight: 800; margin: 0; padding: 0; text-align: inherit; }\nh2.title { font-size: clamp(1.675rem, 4vw, 1.8rem); font-weight: 700; margin: 0; padding: 0; text-align: inherit; }\nh3.title { font-size: clamp(1.4rem, 3vw, 1.95rem); font-weight: 700; margin: 0; padding: 0; text-align: inherit; }\nh4.title { font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 600; margin: 0; padding: 0; text-align: inherit; }\nh5.title { font-size: clamp(1.125rem, 3vw, 1.5rem); font-weight: 600; margin: 0; padding: 0; text-align: inherit; }\nh6.title { font-size: clamp(1rem, 2.5vw, 1.25rem); font-weight: 600; margin: 0; padding: 0; text-align: inherit; }\np.title { font-size: 1rem; font-weight: 400; margin: 0; padding: 0; text-align: inherit; }\n\n/* Estilos para etiquetas de \u00E9nfasis */\n.title strong {\n font-weight: 900;\n color: var(--accent, #0070f3);\n}\n\n.title em {\n font-style: italic;\n font-family: serif; /* Opcional: da un toque elegante a las it\u00E1licas */\n}\n\n/* Efectos */\n.underlineEffect {\n position: relative;\n cursor: pointer;\n color: var(--accent, #0070f3);\n display: inline-block;\n transition: color 0.3s ease;\n}\n\n.underlineEffect::after {\n content: \"\";\n position: absolute;\n bottom: -2px;\n left: 0;\n height: 0.15em;\n width: 100%;\n background: repeating-linear-gradient(\n 45deg,\n transparent,\n transparent 2px,\n currentColor 2px,\n currentColor 4px\n );\n transition: opacity 0.3s ease;\n}\n\n.underlineEffect:hover::after {\n opacity: 0;\n}\n\n.buttonEffect {\n display: inline-block;\n padding: 0.1em 0.6em;\n border: 2px dashed currentColor;\n border-radius: 9999px;\n cursor: pointer;\n color: var(--accent, #0070f3);\n transition: all 0.3s ease;\n}\n\n.buttonEffect:hover {\n background: currentColor;\n color: var(--bg, #fff);\n}\n\n.blurEffect {\n display: inline-block;\n transition: filter 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s ease;\n}\n\n.isVisible {\n filter: blur(0);\n opacity: 1;\n}\n\n.isHidden {\n filter: blur(10px);\n opacity: 0.3;\n user-select: none;\n}\n\n.lineBreak {\n display: block;\n height: 0.8rem;\n}\n\n.underlineEffect:focus-visible,\n.buttonEffect:focus-visible {\n outline: 2px solid var(--accent, #0070f3);\n outline-offset: 4px;\n}"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,mBAA+C;;;ACF/C;AAAA,EAAC,WAAAA;AAAA,EAMA,OAAAC;AAAA,EA6BA,iBAAAC;AAAA,EA6BA,cAAAC;AAAA,EAeA,YAAAC;AAAA,EAKA,WAAAC;AAAA,EAKA,UAAAC;AAAA,EAMA,WAAAC;AAAA;;;AD3BoC;AAhDtB,SAAR,mBAAoC;AAAA,EACzC;AAAA,EACA,IAAI,MAAM;AAAA,EACV,YAAY;AACd,GAA4B;AAC1B,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAkB,KAAK;AACrD,QAAM,CAAC,SAAS,UAAU,QAAI,uBAAkB,KAAK;AAErD,QAAM,eAAe,CAAC,SAAiC;AACrD,QAAI,SAAS,YAAa,YAAW,CAAC,OAAO;AAC7C,QAAI,SAAS,SAAU,YAAW,CAAC,OAAO;AAAA,EAC5C;AAEA,QAAM,YAAY,CAAC,GAAmC,SAAiC;AACrF,QAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,QAAE,eAAe;AACjB,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF;AAEA,SACE,4CAAC,SAAI,WAAW,GAAG,2BAAO,SAAS,IAAI,SAAS,IAC9C,sDAAC,OAAI,WAAW,2BAAO,OACpB,gBAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,QAAI,eAAe;AACnB,QAAI,eAAyC;AAC7C,QAAI,aAAwE;AAG5E,QAAI,KAAK,SAAS,aAAa;AAC7B,qBAAe,2BAAO;AACtB,qBAAe,MAAM,aAAa,WAAW;AAC7C,mBAAa,CAAC,MAAM,UAAU,GAAG,WAAW;AAAA,IAC9C,WACS,KAAK,SAAS,UAAU;AAC/B,qBAAe,2BAAO;AACtB,qBAAe,MAAM,aAAa,QAAQ;AAC1C,mBAAa,CAAC,MAAM,UAAU,GAAG,QAAQ;AAAA,IAC3C,WACS,KAAK,SAAS,SAAS;AAC9B,qBAAe,GAAG,2BAAO,UAAU,IAAI,UAAU,2BAAO,YAAY,2BAAO,QAAQ;AAAA,IACrF,WACS,KAAK,SAAS,SAAS;AAC9B,qBAAe,GAAG,2BAAO,UAAU,IAAI,UAAU,2BAAO,YAAY,2BAAO,QAAQ;AAAA,IACrF;AAGA,QAAI,UAA2B,KAAK;AACpC,QAAI,KAAK,OAAQ,WAAU,4CAAC,QAAI,mBAAQ;AACxC,QAAI,KAAK,KAAM,WAAU,4CAAC,YAAQ,mBAAQ;AAE1C,WACE,6CAAC,aAAAC,QAAM,UAAN,EACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,UACX,SAAS;AAAA,UACT,WAAW;AAAA,UACX,MAAM,eAAe,WAAW;AAAA,UAChC,UAAU,eAAe,IAAI;AAAA,UAE5B;AAAA;AAAA,MACH;AAAA,MACC,KAAK,aAAa,4CAAC,UAAK,WAAW,2BAAO,WAAW,IAAK;AAAA,SAVxC,KAWrB;AAAA,EAEJ,CAAC,GACH,GACF;AAEJ;",
|
|
6
|
+
"names": ["container", "title", "underlineEffect", "buttonEffect", "blurEffect", "isVisible", "isHidden", "lineBreak", "React"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface WordConfig {
|
|
2
|
+
text: string;
|
|
3
|
+
type: "normal" | "underline" | "button" | "blur1" | "blur2";
|
|
4
|
+
breakAfter?: boolean;
|
|
5
|
+
italic?: boolean;
|
|
6
|
+
bold?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface XInteractivePhraseProps {
|
|
9
|
+
words: WordConfig[];
|
|
10
|
+
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span";
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
export default function XInteractivePhrase({ words, as: Tag, className }: XInteractivePhraseProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* src/components/forms/xcontactform/XContactForm.module.css */
|
|
2
|
-
.
|
|
2
|
+
.XContactForm_wrapper3 {
|
|
3
3
|
--input-padding: .65rem .9rem;
|
|
4
4
|
--font-size: 16px;
|
|
5
5
|
--form-gap: 1.25rem;
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
border: var(--wrapper-border-width) var(--wrapper-border-style) var(--wrapper-border-color);
|
|
36
36
|
border-radius: var(--wrapper-radius);
|
|
37
37
|
}
|
|
38
|
-
.
|
|
38
|
+
.XContactForm_small3 {
|
|
39
39
|
--input-padding: .35rem .55rem;
|
|
40
40
|
--font-size: 13px;
|
|
41
41
|
--form-gap: .75rem;
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
--field-gap: .3rem;
|
|
44
44
|
--button-min-width: 118px;
|
|
45
45
|
}
|
|
46
|
-
.
|
|
46
|
+
.XContactForm_medium3 {
|
|
47
47
|
--input-padding: .5rem .7rem;
|
|
48
48
|
--font-size: 15px;
|
|
49
49
|
--form-gap: 1rem;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
--field-gap: .4rem;
|
|
52
52
|
--button-min-width: 130px;
|
|
53
53
|
}
|
|
54
|
-
.
|
|
54
|
+
.XContactForm_large3 {
|
|
55
55
|
--input-padding: 1rem 1.2rem;
|
|
56
56
|
--font-size: 18px;
|
|
57
57
|
--form-gap: 1.5rem;
|
|
@@ -59,33 +59,33 @@
|
|
|
59
59
|
--field-gap: .5rem;
|
|
60
60
|
--button-min-width: 150px;
|
|
61
61
|
}
|
|
62
|
-
.
|
|
62
|
+
.XContactForm_form3 {
|
|
63
63
|
display: grid;
|
|
64
64
|
gap: var(--form-gap);
|
|
65
65
|
max-width: 100%;
|
|
66
66
|
}
|
|
67
|
-
.
|
|
67
|
+
.XContactForm_row3 {
|
|
68
68
|
display: grid;
|
|
69
69
|
gap: var(--row-gap);
|
|
70
70
|
}
|
|
71
|
-
.
|
|
71
|
+
.XContactForm_grid3 .XContactForm_row3 {
|
|
72
72
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
73
73
|
}
|
|
74
|
-
.
|
|
74
|
+
.XContactForm_vertical3 .XContactForm_row3 {
|
|
75
75
|
grid-template-columns: 1fr;
|
|
76
76
|
}
|
|
77
|
-
.
|
|
77
|
+
.XContactForm_field3 {
|
|
78
78
|
display: flex;
|
|
79
79
|
flex-direction: column;
|
|
80
80
|
gap: var(--field-gap);
|
|
81
81
|
}
|
|
82
|
-
.
|
|
82
|
+
.XContactForm_field3 label {
|
|
83
83
|
font-size: calc(var(--font-size) - 2px);
|
|
84
84
|
font-weight: 500;
|
|
85
85
|
color: var(--label-color);
|
|
86
86
|
}
|
|
87
|
-
.
|
|
88
|
-
.
|
|
87
|
+
.XContactForm_field3 input,
|
|
88
|
+
.XContactForm_field3 textarea {
|
|
89
89
|
width: 100%;
|
|
90
90
|
padding: var(--input-padding);
|
|
91
91
|
border: var(--field-border-width) var(--field-border-style) var(--field-border-color);
|
|
@@ -94,16 +94,16 @@
|
|
|
94
94
|
box-sizing: border-box;
|
|
95
95
|
font-family: inherit;
|
|
96
96
|
}
|
|
97
|
-
.
|
|
98
|
-
.
|
|
97
|
+
.XContactForm_field3 input::placeholder,
|
|
98
|
+
.XContactForm_field3 textarea::placeholder {
|
|
99
99
|
color: #888;
|
|
100
100
|
}
|
|
101
|
-
.
|
|
101
|
+
.XContactForm_buttoncontainer3 {
|
|
102
102
|
display: flex;
|
|
103
103
|
justify-content: var(--btn-alignment);
|
|
104
104
|
margin-top: 0.25rem;
|
|
105
105
|
}
|
|
106
|
-
.
|
|
106
|
+
.XContactForm_button3 {
|
|
107
107
|
padding: var(--input-padding);
|
|
108
108
|
border-radius: var(--btn-radius);
|
|
109
109
|
border: var(--btn-border-width) var(--btn-border-style) var(--btn-border-color);
|
|
@@ -119,35 +119,35 @@
|
|
|
119
119
|
border-color 0.2s ease,
|
|
120
120
|
opacity 0.2s ease;
|
|
121
121
|
}
|
|
122
|
-
.
|
|
122
|
+
.XContactForm_button3:hover {
|
|
123
123
|
background-color: var(--btn-hover-bg-color);
|
|
124
124
|
color: var(--btn-hover-text-color);
|
|
125
125
|
border-color: var(--btn-hover-border-color);
|
|
126
126
|
opacity: 0.95;
|
|
127
127
|
}
|
|
128
|
-
.
|
|
128
|
+
.XContactForm_status3 {
|
|
129
129
|
min-height: 1.5rem;
|
|
130
130
|
font-size: calc(var(--font-size) - 2px);
|
|
131
131
|
margin-top: 0.25rem;
|
|
132
132
|
}
|
|
133
|
-
.
|
|
133
|
+
.XContactForm_statusOk3 {
|
|
134
134
|
color: var(--status-ok-color);
|
|
135
135
|
}
|
|
136
|
-
.
|
|
136
|
+
.XContactForm_statusError3 {
|
|
137
137
|
color: var(--status-error-color);
|
|
138
138
|
}
|
|
139
|
-
.
|
|
139
|
+
.XContactForm_honeypot3 {
|
|
140
140
|
position: absolute;
|
|
141
141
|
left: -9999px;
|
|
142
142
|
top: -9999px;
|
|
143
143
|
}
|
|
144
|
-
.
|
|
144
|
+
.XContactForm_withDecorativeX3 {
|
|
145
145
|
position: relative;
|
|
146
146
|
padding-top: 2.5rem;
|
|
147
147
|
padding-bottom: 2.5rem;
|
|
148
148
|
}
|
|
149
|
-
.
|
|
150
|
-
.
|
|
149
|
+
.XContactForm_decorativeXTop3,
|
|
150
|
+
.XContactForm_decorativeXBottom3 {
|
|
151
151
|
position: absolute;
|
|
152
152
|
left: 50%;
|
|
153
153
|
transform: translateX(-50%);
|
|
@@ -161,17 +161,17 @@
|
|
|
161
161
|
line-height: 1;
|
|
162
162
|
z-index: 1;
|
|
163
163
|
}
|
|
164
|
-
.
|
|
164
|
+
.XContactForm_decorativeXTop3 {
|
|
165
165
|
top: 0;
|
|
166
166
|
transform: translate(-50%, -50%);
|
|
167
167
|
}
|
|
168
|
-
.
|
|
168
|
+
.XContactForm_decorativeXBottom3 {
|
|
169
169
|
bottom: 0;
|
|
170
170
|
transform: translate(-50%, 50%);
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
/* src/components/forms/xnewsletter/XNewsletter.module.css */
|
|
174
|
-
.
|
|
174
|
+
.XNewsletter_container3 {
|
|
175
175
|
--nws-accent: var(--accent);
|
|
176
176
|
--nws-text: var(--text);
|
|
177
177
|
--nws-border: var(--border);
|
|
@@ -179,34 +179,34 @@
|
|
|
179
179
|
width: 100%;
|
|
180
180
|
font-family: "EB Garamond", serif;
|
|
181
181
|
}
|
|
182
|
-
.
|
|
182
|
+
.XNewsletter_form3 {
|
|
183
183
|
display: flex;
|
|
184
184
|
gap: 1rem;
|
|
185
185
|
}
|
|
186
|
-
.
|
|
186
|
+
.XNewsletter_horizontal3 {
|
|
187
187
|
flex-direction: column;
|
|
188
188
|
align-items: center;
|
|
189
189
|
justify-content: center;
|
|
190
190
|
}
|
|
191
191
|
@media (min-width: 768px) {
|
|
192
|
-
.
|
|
192
|
+
.XNewsletter_horizontal3 {
|
|
193
193
|
flex-direction: row;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
-
.
|
|
196
|
+
.XNewsletter_vertical3 {
|
|
197
197
|
flex-direction: column;
|
|
198
198
|
align-items: flex-start;
|
|
199
199
|
width: 100%;
|
|
200
200
|
max-width: 24rem;
|
|
201
201
|
margin: 0 auto;
|
|
202
202
|
}
|
|
203
|
-
.
|
|
203
|
+
.XNewsletter_title3 {
|
|
204
204
|
font-size: 0.875rem;
|
|
205
205
|
white-space: nowrap;
|
|
206
206
|
font-weight: 500;
|
|
207
207
|
color: var(--nws-text);
|
|
208
208
|
}
|
|
209
|
-
.
|
|
209
|
+
.XNewsletter_input3 {
|
|
210
210
|
width: 100%;
|
|
211
211
|
padding: 0.5rem 1rem;
|
|
212
212
|
font-size: 0.875rem;
|
|
@@ -219,30 +219,30 @@
|
|
|
219
219
|
caret-color: var(--nws-accent);
|
|
220
220
|
font-family: inherit;
|
|
221
221
|
}
|
|
222
|
-
.
|
|
222
|
+
.XNewsletter_horizontal3 .XNewsletter_input3 {
|
|
223
223
|
}
|
|
224
224
|
@media (min-width: 768px) {
|
|
225
|
-
.
|
|
225
|
+
.XNewsletter_horizontal3 .XNewsletter_input3 {
|
|
226
226
|
width: 16rem;
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
.
|
|
229
|
+
.XNewsletter_input3:focus {
|
|
230
230
|
border-color: var(--nws-accent);
|
|
231
231
|
}
|
|
232
|
-
.
|
|
232
|
+
.XNewsletter_actions3 {
|
|
233
233
|
display: flex;
|
|
234
234
|
gap: 1rem;
|
|
235
235
|
}
|
|
236
|
-
.
|
|
236
|
+
.XNewsletter_actionsHorizontal3 {
|
|
237
237
|
flex-direction: row;
|
|
238
238
|
align-items: center;
|
|
239
239
|
}
|
|
240
|
-
.
|
|
240
|
+
.XNewsletter_actionsVertical3 {
|
|
241
241
|
flex-direction: column;
|
|
242
242
|
align-items: flex-start;
|
|
243
243
|
width: 100%;
|
|
244
244
|
}
|
|
245
|
-
.
|
|
245
|
+
.XNewsletter_checkboxLabel3 {
|
|
246
246
|
display: flex;
|
|
247
247
|
align-items: center;
|
|
248
248
|
gap: 0.5rem;
|
|
@@ -251,25 +251,25 @@
|
|
|
251
251
|
cursor: pointer;
|
|
252
252
|
color: var(--nws-text);
|
|
253
253
|
}
|
|
254
|
-
.
|
|
254
|
+
.XNewsletter_checkboxLabel3 span {
|
|
255
255
|
opacity: 0.7;
|
|
256
256
|
}
|
|
257
|
-
.
|
|
257
|
+
.XNewsletter_checkbox3 {
|
|
258
258
|
height: 0.875rem;
|
|
259
259
|
width: 0.875rem;
|
|
260
260
|
border-radius: 0.125rem;
|
|
261
261
|
cursor: pointer;
|
|
262
262
|
accent-color: var(--nws-accent);
|
|
263
263
|
}
|
|
264
|
-
.
|
|
264
|
+
.XNewsletter_termsLink3 {
|
|
265
265
|
text-decoration: underline;
|
|
266
266
|
color: var(--nws-accent);
|
|
267
267
|
transition: opacity 0.2s ease;
|
|
268
268
|
}
|
|
269
|
-
.
|
|
269
|
+
.XNewsletter_termsLink3:hover {
|
|
270
270
|
opacity: 1;
|
|
271
271
|
}
|
|
272
|
-
.
|
|
272
|
+
.XNewsletter_button3 {
|
|
273
273
|
padding: 0.5rem 1rem;
|
|
274
274
|
font-size: 0.875rem;
|
|
275
275
|
border-radius: 0.5rem;
|
|
@@ -280,28 +280,28 @@
|
|
|
280
280
|
white-space: nowrap;
|
|
281
281
|
cursor: pointer;
|
|
282
282
|
}
|
|
283
|
-
.
|
|
283
|
+
.XNewsletter_button3:hover:not(:disabled) {
|
|
284
284
|
background-color: var(--nws-accent);
|
|
285
285
|
color: var(--nws-btn-text);
|
|
286
286
|
}
|
|
287
|
-
.
|
|
288
|
-
.
|
|
289
|
-
.
|
|
287
|
+
.XNewsletter_button3:disabled,
|
|
288
|
+
.XNewsletter_input3:disabled,
|
|
289
|
+
.XNewsletter_checkbox3:disabled {
|
|
290
290
|
opacity: 0.5;
|
|
291
291
|
cursor: not-allowed;
|
|
292
292
|
}
|
|
293
|
-
.
|
|
293
|
+
.XNewsletter_actionsVertical3 .XNewsletter_button3 {
|
|
294
294
|
width: 100%;
|
|
295
295
|
}
|
|
296
|
-
.
|
|
296
|
+
.XNewsletter_message3 {
|
|
297
297
|
margin-top: 0.75rem;
|
|
298
298
|
font-size: 0.75rem;
|
|
299
299
|
color: var(--nws-accent);
|
|
300
300
|
}
|
|
301
|
-
.
|
|
301
|
+
.XNewsletter_messageHorizontal3 {
|
|
302
302
|
text-align: center;
|
|
303
303
|
}
|
|
304
|
-
.
|
|
304
|
+
.XNewsletter_messageVertical3 {
|
|
305
305
|
text-align: left;
|
|
306
306
|
}
|
|
307
|
-
/*# sourceMappingURL=index.css.map */
|
|
307
|
+
/*# sourceMappingURL=index.css.map */
|