@valcis/brand 2.0.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/assets/apple-touch-icon.png +0 -0
- package/assets/favicon.svg +18 -0
- package/assets/logo-full-dark.svg +38 -0
- package/assets/logo-full-light.svg +38 -0
- package/assets/logo-full.svg +50 -0
- package/assets/logo-icon-dark.svg +20 -0
- package/assets/logo-icon-light.svg +17 -0
- package/assets/logo-icon.svg +35 -0
- package/dist/index.d.mts +178 -0
- package/dist/index.d.ts +178 -0
- package/dist/index.js +478 -0
- package/dist/index.mjs +419 -0
- package/package.json +49 -0
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="3 5 58 41" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.fav-bracket { fill: #3B82F6; }
|
|
5
|
+
.fav-letter { fill: #1E293B; }
|
|
6
|
+
@media (prefers-color-scheme: dark) {
|
|
7
|
+
.fav-bracket { fill: #60A5FA; }
|
|
8
|
+
.fav-letter { fill: #F1F5F9; }
|
|
9
|
+
}
|
|
10
|
+
</style>
|
|
11
|
+
</defs>
|
|
12
|
+
<!-- < -->
|
|
13
|
+
<path d="M17.8 37.1L5.0 31.5L5.0 28.5L17.8 22.8L17.8 25.2L6.8 30.1L6.8 29.8L17.8 34.7Z" class="fav-bracket"/>
|
|
14
|
+
<!-- > -->
|
|
15
|
+
<path d="M47.0 37.1L47.0 34.7L58.0 29.8L58.0 30.1L47.0 25.2L47.0 22.8L59.8 28.5L59.8 31.5Z" class="fav-bracket"/>
|
|
16
|
+
<!-- V -->
|
|
17
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" class="fav-letter"/>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -130 4545 920" fill="none">
|
|
2
|
+
<g transform="scale(1,-1) translate(0,-640)">
|
|
3
|
+
<!-- > -->
|
|
4
|
+
<g transform="translate(0,0)">
|
|
5
|
+
<path d="M72 33V119L466 295V283L72 459V545L528 342V236Z" fill="#3B82F6"/>
|
|
6
|
+
</g>
|
|
7
|
+
<!-- v -->
|
|
8
|
+
<g transform="translate(600,0)">
|
|
9
|
+
<g transform="translate(47, 0) scale(15.2, -13.84) translate(-14.2, -44.3)">
|
|
10
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" fill="#F1F5F9"/>
|
|
11
|
+
</g>
|
|
12
|
+
</g>
|
|
13
|
+
<!-- a -->
|
|
14
|
+
<g transform="translate(1200,0)">
|
|
15
|
+
<path d="M230 -12Q180 -12 140.0 6.0Q100 24 77.0 56.5Q54 89 54 132Q54 200 94.5 237.5Q135 275 222 292L400 328Q400 396 369.5 429.0Q339 462 282 462Q227 462 196.0 437.5Q165 413 153 367L64 374Q79 449 135.5 495.5Q192 542 282 542Q378 542 431.0 484.5Q484 427 484 326V106Q484 88 492.0 81.0Q500 74 516 74H550V0Q544 -1 531.0 -1.5Q518 -2 506 -2Q472 -2 448.5 9.0Q425 20 413.0 44.5Q401 69 400 108H416Q409 74 382.5 46.5Q356 19 316.0 3.5Q276 -12 230 -12ZM238 62Q292 62 328.0 80.5Q364 99 382.0 132.5Q400 166 400 210V256L238 224Q184 214 163.0 193.5Q142 173 142 140Q142 103 167.5 82.5Q193 62 238 62Z" fill="#F1F5F9"/>
|
|
16
|
+
</g>
|
|
17
|
+
<!-- l -->
|
|
18
|
+
<g transform="translate(1800,0)">
|
|
19
|
+
<path d="M273 0V568Q273 600 255.0 618.0Q237 636 205 636H80V710H209Q282 710 319.5 672.5Q357 635 357 562V0ZM60 0V74H540V0Z" fill="#F1F5F9"/>
|
|
20
|
+
</g>
|
|
21
|
+
<!-- c -->
|
|
22
|
+
<g transform="translate(2400,0)">
|
|
23
|
+
<path d="M314 -12Q240 -12 185.0 22.0Q130 56 100.0 118.5Q70 181 70 265Q70 349 100.0 411.0Q130 473 185.0 507.5Q240 542 314 542Q373 542 419.0 520.5Q465 499 495.0 458.0Q525 417 536 358L448 352Q436 405 400.5 433.5Q365 462 314 462Q241 462 199.5 409.5Q158 357 158 265Q158 173 199.5 120.5Q241 68 314 68Q365 68 402.5 98.0Q440 128 452 188L540 182Q529 123 498.0 79.5Q467 36 420.0 12.0Q373 -12 314 -12Z" fill="#F1F5F9"/>
|
|
24
|
+
</g>
|
|
25
|
+
<!-- i -->
|
|
26
|
+
<g transform="translate(3000,0)">
|
|
27
|
+
<path d="M293 0V530H377V0ZM80 0V74H560V0ZM90 456V530H377V456ZM285 613V711H373V613Z" fill="#F1F5F9"/>
|
|
28
|
+
</g>
|
|
29
|
+
<!-- s -->
|
|
30
|
+
<g transform="translate(3600,0)">
|
|
31
|
+
<path d="M310 -12Q241 -12 191.0 12.0Q141 36 112.5 76.5Q84 117 80 167L168 173Q176 124 211.5 96.0Q247 68 310 68Q369 68 401.5 85.0Q434 102 434 138Q434 161 423.0 176.0Q412 191 382.0 201.5Q352 212 294 222Q217 236 173.5 256.5Q130 277 112.0 308.0Q94 339 94 382Q94 428 117.0 464.0Q140 500 185.0 521.0Q230 542 295 542Q361 542 405.5 518.5Q450 495 476.0 456.5Q502 418 510 372L422 366Q416 394 399.5 415.5Q383 437 356.5 449.5Q330 462 294 462Q236 462 208.0 439.0Q180 416 180 382Q180 355 193.0 339.0Q206 323 235.0 313.5Q264 304 312 296Q394 283 439.0 262.5Q484 242 502.0 212.0Q520 182 520 138Q520 91 492.5 57.5Q465 24 417.5 6.0Q370 -12 310 -12Z" fill="#F1F5F9"/>
|
|
32
|
+
</g>
|
|
33
|
+
<!-- | (cursor) -->
|
|
34
|
+
<g transform="translate(4200,0)">
|
|
35
|
+
<path d="M260 -110V750H340V-110Z" fill="#3B82F6"/>
|
|
36
|
+
</g>
|
|
37
|
+
</g>
|
|
38
|
+
</svg>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -130 4545 920" fill="none">
|
|
2
|
+
<g transform="scale(1,-1) translate(0,-640)">
|
|
3
|
+
<!-- > -->
|
|
4
|
+
<g transform="translate(0,0)">
|
|
5
|
+
<path d="M72 33V119L466 295V283L72 459V545L528 342V236Z" fill="#2563EB"/>
|
|
6
|
+
</g>
|
|
7
|
+
<!-- v -->
|
|
8
|
+
<g transform="translate(600,0)">
|
|
9
|
+
<g transform="translate(47, 0) scale(15.2, -13.84) translate(-14.2, -44.3)">
|
|
10
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" fill="#1E293B"/>
|
|
11
|
+
</g>
|
|
12
|
+
</g>
|
|
13
|
+
<!-- a -->
|
|
14
|
+
<g transform="translate(1200,0)">
|
|
15
|
+
<path d="M230 -12Q180 -12 140.0 6.0Q100 24 77.0 56.5Q54 89 54 132Q54 200 94.5 237.5Q135 275 222 292L400 328Q400 396 369.5 429.0Q339 462 282 462Q227 462 196.0 437.5Q165 413 153 367L64 374Q79 449 135.5 495.5Q192 542 282 542Q378 542 431.0 484.5Q484 427 484 326V106Q484 88 492.0 81.0Q500 74 516 74H550V0Q544 -1 531.0 -1.5Q518 -2 506 -2Q472 -2 448.5 9.0Q425 20 413.0 44.5Q401 69 400 108H416Q409 74 382.5 46.5Q356 19 316.0 3.5Q276 -12 230 -12ZM238 62Q292 62 328.0 80.5Q364 99 382.0 132.5Q400 166 400 210V256L238 224Q184 214 163.0 193.5Q142 173 142 140Q142 103 167.5 82.5Q193 62 238 62Z" fill="#1E293B"/>
|
|
16
|
+
</g>
|
|
17
|
+
<!-- l -->
|
|
18
|
+
<g transform="translate(1800,0)">
|
|
19
|
+
<path d="M273 0V568Q273 600 255.0 618.0Q237 636 205 636H80V710H209Q282 710 319.5 672.5Q357 635 357 562V0ZM60 0V74H540V0Z" fill="#1E293B"/>
|
|
20
|
+
</g>
|
|
21
|
+
<!-- c -->
|
|
22
|
+
<g transform="translate(2400,0)">
|
|
23
|
+
<path d="M314 -12Q240 -12 185.0 22.0Q130 56 100.0 118.5Q70 181 70 265Q70 349 100.0 411.0Q130 473 185.0 507.5Q240 542 314 542Q373 542 419.0 520.5Q465 499 495.0 458.0Q525 417 536 358L448 352Q436 405 400.5 433.5Q365 462 314 462Q241 462 199.5 409.5Q158 357 158 265Q158 173 199.5 120.5Q241 68 314 68Q365 68 402.5 98.0Q440 128 452 188L540 182Q529 123 498.0 79.5Q467 36 420.0 12.0Q373 -12 314 -12Z" fill="#1E293B"/>
|
|
24
|
+
</g>
|
|
25
|
+
<!-- i -->
|
|
26
|
+
<g transform="translate(3000,0)">
|
|
27
|
+
<path d="M293 0V530H377V0ZM80 0V74H560V0ZM90 456V530H377V456ZM285 613V711H373V613Z" fill="#1E293B"/>
|
|
28
|
+
</g>
|
|
29
|
+
<!-- s -->
|
|
30
|
+
<g transform="translate(3600,0)">
|
|
31
|
+
<path d="M310 -12Q241 -12 191.0 12.0Q141 36 112.5 76.5Q84 117 80 167L168 173Q176 124 211.5 96.0Q247 68 310 68Q369 68 401.5 85.0Q434 102 434 138Q434 161 423.0 176.0Q412 191 382.0 201.5Q352 212 294 222Q217 236 173.5 256.5Q130 277 112.0 308.0Q94 339 94 382Q94 428 117.0 464.0Q140 500 185.0 521.0Q230 542 295 542Q361 542 405.5 518.5Q450 495 476.0 456.5Q502 418 510 372L422 366Q416 394 399.5 415.5Q383 437 356.5 449.5Q330 462 294 462Q236 462 208.0 439.0Q180 416 180 382Q180 355 193.0 339.0Q206 323 235.0 313.5Q264 304 312 296Q394 283 439.0 262.5Q484 242 502.0 212.0Q520 182 520 138Q520 91 492.5 57.5Q465 24 417.5 6.0Q370 -12 310 -12Z" fill="#1E293B"/>
|
|
32
|
+
</g>
|
|
33
|
+
<!-- | (cursor) -->
|
|
34
|
+
<g transform="translate(4200,0)">
|
|
35
|
+
<path d="M260 -110V750H340V-110Z" fill="#2563EB"/>
|
|
36
|
+
</g>
|
|
37
|
+
</g>
|
|
38
|
+
</svg>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -130 4545 920" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.letter { fill: #F1F5F9; }
|
|
5
|
+
.accent { fill: #3B82F6; }
|
|
6
|
+
@media (prefers-color-scheme: light) {
|
|
7
|
+
.letter { fill: #1E293B; }
|
|
8
|
+
.accent { fill: #2563EB; }
|
|
9
|
+
}
|
|
10
|
+
</style>
|
|
11
|
+
</defs>
|
|
12
|
+
<g transform="scale(1,-1) translate(0,-640)">
|
|
13
|
+
<!-- > -->
|
|
14
|
+
<g transform="translate(0,0)">
|
|
15
|
+
<path d="M72 33V119L466 295V283L72 459V545L528 342V236Z" class="accent"/>
|
|
16
|
+
</g>
|
|
17
|
+
<!-- v (caligráfica, misma fuente que el icono) -->
|
|
18
|
+
<g transform="translate(600,0)">
|
|
19
|
+
<g transform="translate(47, 0) scale(15.2, -13.84) translate(-14.2, -44.3)">
|
|
20
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" class="letter"/>
|
|
21
|
+
</g>
|
|
22
|
+
</g>
|
|
23
|
+
<!-- a -->
|
|
24
|
+
<g transform="translate(1200,0)">
|
|
25
|
+
<path d="M230 -12Q180 -12 140.0 6.0Q100 24 77.0 56.5Q54 89 54 132Q54 200 94.5 237.5Q135 275 222 292L400 328Q400 396 369.5 429.0Q339 462 282 462Q227 462 196.0 437.5Q165 413 153 367L64 374Q79 449 135.5 495.5Q192 542 282 542Q378 542 431.0 484.5Q484 427 484 326V106Q484 88 492.0 81.0Q500 74 516 74H550V0Q544 -1 531.0 -1.5Q518 -2 506 -2Q472 -2 448.5 9.0Q425 20 413.0 44.5Q401 69 400 108H416Q409 74 382.5 46.5Q356 19 316.0 3.5Q276 -12 230 -12ZM238 62Q292 62 328.0 80.5Q364 99 382.0 132.5Q400 166 400 210V256L238 224Q184 214 163.0 193.5Q142 173 142 140Q142 103 167.5 82.5Q193 62 238 62Z" class="letter"/>
|
|
26
|
+
</g>
|
|
27
|
+
<!-- l -->
|
|
28
|
+
<g transform="translate(1800,0)">
|
|
29
|
+
<path d="M273 0V568Q273 600 255.0 618.0Q237 636 205 636H80V710H209Q282 710 319.5 672.5Q357 635 357 562V0ZM60 0V74H540V0Z" class="letter"/>
|
|
30
|
+
</g>
|
|
31
|
+
<!-- c -->
|
|
32
|
+
<g transform="translate(2400,0)">
|
|
33
|
+
<path d="M314 -12Q240 -12 185.0 22.0Q130 56 100.0 118.5Q70 181 70 265Q70 349 100.0 411.0Q130 473 185.0 507.5Q240 542 314 542Q373 542 419.0 520.5Q465 499 495.0 458.0Q525 417 536 358L448 352Q436 405 400.5 433.5Q365 462 314 462Q241 462 199.5 409.5Q158 357 158 265Q158 173 199.5 120.5Q241 68 314 68Q365 68 402.5 98.0Q440 128 452 188L540 182Q529 123 498.0 79.5Q467 36 420.0 12.0Q373 -12 314 -12Z" class="letter"/>
|
|
34
|
+
</g>
|
|
35
|
+
<!-- i -->
|
|
36
|
+
<g transform="translate(3000,0)">
|
|
37
|
+
<path d="M293 0V530H377V0ZM80 0V74H560V0ZM90 456V530H377V456ZM285 613V711H373V613Z" class="letter"/>
|
|
38
|
+
</g>
|
|
39
|
+
<!-- s -->
|
|
40
|
+
<g transform="translate(3600,0)">
|
|
41
|
+
<path d="M310 -12Q241 -12 191.0 12.0Q141 36 112.5 76.5Q84 117 80 167L168 173Q176 124 211.5 96.0Q247 68 310 68Q369 68 401.5 85.0Q434 102 434 138Q434 161 423.0 176.0Q412 191 382.0 201.5Q352 212 294 222Q217 236 173.5 256.5Q130 277 112.0 308.0Q94 339 94 382Q94 428 117.0 464.0Q140 500 185.0 521.0Q230 542 295 542Q361 542 405.5 518.5Q450 495 476.0 456.5Q502 418 510 372L422 366Q416 394 399.5 415.5Q383 437 356.5 449.5Q330 462 294 462Q236 462 208.0 439.0Q180 416 180 382Q180 355 193.0 339.0Q206 323 235.0 313.5Q264 304 312 296Q394 283 439.0 262.5Q484 242 502.0 212.0Q520 182 520 138Q520 91 492.5 57.5Q465 24 417.5 6.0Q370 -12 310 -12Z" class="letter"/>
|
|
42
|
+
</g>
|
|
43
|
+
<!-- | (cursor) -->
|
|
44
|
+
<g transform="translate(4200,0)">
|
|
45
|
+
<path d="M260 -110V750H340V-110Z" class="accent">
|
|
46
|
+
<animate attributeName="opacity" values="1;0;1" dur="1s" repeatCount="indefinite" calcMode="discrete" keyTimes="0;0.5;1"/>
|
|
47
|
+
</path>
|
|
48
|
+
</g>
|
|
49
|
+
</g>
|
|
50
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="3 5 58 41" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="v-grad" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0%" stop-color="#C0C0C0"/>
|
|
5
|
+
<stop offset="30%" stop-color="#E8E8E8"/>
|
|
6
|
+
<stop offset="50%" stop-color="#F5F5F5"/>
|
|
7
|
+
<stop offset="70%" stop-color="#E8E8E8"/>
|
|
8
|
+
<stop offset="100%" stop-color="#A8A8A8"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
<filter id="v-glow">
|
|
11
|
+
<feDropShadow dx="0" dy="0" stdDeviation="2" flood-color="#FFFFFF" flood-opacity="0.2"/>
|
|
12
|
+
</filter>
|
|
13
|
+
</defs>
|
|
14
|
+
<!-- < -->
|
|
15
|
+
<path d="M17.8 37.1L5.0 31.5L5.0 28.5L17.8 22.8L17.8 25.2L6.8 30.1L6.8 29.8L17.8 34.7Z" fill="#3B82F6"/>
|
|
16
|
+
<!-- > -->
|
|
17
|
+
<path d="M47.0 37.1L47.0 34.7L58.0 29.8L58.0 30.1L47.0 25.2L47.0 22.8L59.8 28.5L59.8 31.5Z" fill="#3B82F6"/>
|
|
18
|
+
<!-- V -->
|
|
19
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" fill="url(#v-grad)" filter="url(#v-glow)"/>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="3 5 58 41" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="v-grad" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0%" stop-color="#64748B"/>
|
|
5
|
+
<stop offset="30%" stop-color="#334155"/>
|
|
6
|
+
<stop offset="50%" stop-color="#1E293B"/>
|
|
7
|
+
<stop offset="70%" stop-color="#334155"/>
|
|
8
|
+
<stop offset="100%" stop-color="#64748B"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
</defs>
|
|
11
|
+
<!-- < -->
|
|
12
|
+
<path d="M17.8 37.1L5.0 31.5L5.0 28.5L17.8 22.8L17.8 25.2L6.8 30.1L6.8 29.8L17.8 34.7Z" fill="#2563EB"/>
|
|
13
|
+
<!-- > -->
|
|
14
|
+
<path d="M47.0 37.1L47.0 34.7L58.0 29.8L58.0 30.1L47.0 25.2L47.0 22.8L59.8 28.5L59.8 31.5Z" fill="#2563EB"/>
|
|
15
|
+
<!-- V -->
|
|
16
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" fill="url(#v-grad)"/>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="3 5 58 41" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="v-grad-dark" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0%" stop-color="#C0C0C0"/>
|
|
5
|
+
<stop offset="30%" stop-color="#E8E8E8"/>
|
|
6
|
+
<stop offset="50%" stop-color="#F5F5F5"/>
|
|
7
|
+
<stop offset="70%" stop-color="#E8E8E8"/>
|
|
8
|
+
<stop offset="100%" stop-color="#A8A8A8"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
<linearGradient id="v-grad-light" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse">
|
|
11
|
+
<stop offset="0%" stop-color="#64748B"/>
|
|
12
|
+
<stop offset="30%" stop-color="#334155"/>
|
|
13
|
+
<stop offset="50%" stop-color="#1E293B"/>
|
|
14
|
+
<stop offset="70%" stop-color="#334155"/>
|
|
15
|
+
<stop offset="100%" stop-color="#64748B"/>
|
|
16
|
+
</linearGradient>
|
|
17
|
+
<filter id="v-glow">
|
|
18
|
+
<feDropShadow dx="0" dy="0" stdDeviation="2" flood-color="#FFFFFF" flood-opacity="0.2"/>
|
|
19
|
+
</filter>
|
|
20
|
+
<style>
|
|
21
|
+
.bracket { fill: #3B82F6; }
|
|
22
|
+
.v-letter { fill: url(#v-grad-dark); filter: url(#v-glow); }
|
|
23
|
+
@media (prefers-color-scheme: light) {
|
|
24
|
+
.bracket { fill: #2563EB; }
|
|
25
|
+
.v-letter { fill: url(#v-grad-light); }
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</defs>
|
|
29
|
+
<!-- < -->
|
|
30
|
+
<path d="M17.8 37.1L5.0 31.5L5.0 28.5L17.8 22.8L17.8 25.2L6.8 30.1L6.8 29.8L17.8 34.7Z" class="bracket"/>
|
|
31
|
+
<!-- > -->
|
|
32
|
+
<path d="M47.0 37.1L47.0 34.7L58.0 29.8L58.0 30.1L47.0 25.2L47.0 22.8L59.8 28.5L59.8 31.5Z" class="bracket"/>
|
|
33
|
+
<!-- V (más grande, gruesa y enderezada) -->
|
|
34
|
+
<path d="M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z" class="v-letter"/>
|
|
35
|
+
</svg>
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
|
|
3
|
+
/** Variantes del logo: icon (<V>) o full (>valcis|) */
|
|
4
|
+
type LogoVariant = 'icon' | 'full';
|
|
5
|
+
/** Tamaños predefinidos del logo */
|
|
6
|
+
type LogoSize = number | 'sm' | 'md' | 'lg' | 'xl';
|
|
7
|
+
interface LogoProps {
|
|
8
|
+
/** Variante del logo: icon (<V>) o full (>valcis|) */
|
|
9
|
+
variant?: LogoVariant;
|
|
10
|
+
/** Tamaño: número en px o preset */
|
|
11
|
+
size?: LogoSize;
|
|
12
|
+
/** Animación CSS-only (respeta prefers-reduced-motion) */
|
|
13
|
+
animated?: boolean;
|
|
14
|
+
/** Color de acento (brackets/chevron/cursor). Jerarquía: prop > --valcis-logo-accent > --primary > currentColor */
|
|
15
|
+
accentColor?: string;
|
|
16
|
+
/** Color del texto/letras. Jerarquía: prop > --valcis-logo-text > currentColor */
|
|
17
|
+
textColor?: string;
|
|
18
|
+
/** Clase CSS adicional */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** Estilos inline adicionales */
|
|
21
|
+
style?: CSSProperties;
|
|
22
|
+
/** Label para accesibilidad (si se omite, el logo es decorativo) */
|
|
23
|
+
ariaLabel?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Logo valcis — Componente puro (sin hooks/estado)
|
|
28
|
+
*
|
|
29
|
+
* Variantes:
|
|
30
|
+
* - icon: <V> (brackets + V caligráfica)
|
|
31
|
+
* - full: >valcis| (chevron + v caligráfica minúscula + alcis + cursor)
|
|
32
|
+
*
|
|
33
|
+
* Compatible con React Server Components.
|
|
34
|
+
* Animación CSS-only que respeta prefers-reduced-motion.
|
|
35
|
+
* Colores jerárquicos: prop > CSS custom property > currentColor.
|
|
36
|
+
*/
|
|
37
|
+
declare const Logo: React.FC<LogoProps>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* SVG Path data para el logo valcis
|
|
41
|
+
* Extraído de assets/logo-icon.svg y assets/logo-full.svg
|
|
42
|
+
*/
|
|
43
|
+
/** Bracket izquierdo < (icon) */
|
|
44
|
+
declare const BRACKET_LEFT_PATH = "M17.8 37.1L5.0 31.5L5.0 28.5L17.8 22.8L17.8 25.2L6.8 30.1L6.8 29.8L17.8 34.7Z";
|
|
45
|
+
/** Bracket derecho > (icon) */
|
|
46
|
+
declare const BRACKET_RIGHT_PATH = "M47.0 37.1L47.0 34.7L58.0 29.8L58.0 30.1L47.0 25.2L47.0 22.8L59.8 28.5L59.8 31.5Z";
|
|
47
|
+
/** Letra V caligráfica (más grande, gruesa y enderezada) */
|
|
48
|
+
declare const V_CALLIGRAPHIC_PATH = "M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z";
|
|
49
|
+
/** Chevron > (full) */
|
|
50
|
+
declare const CHEVRON_RIGHT_FULL_PATH = "M72 33V119L466 295V283L72 459V545L528 342V236Z";
|
|
51
|
+
/** Letra a (full) */
|
|
52
|
+
declare const A_PATH = "M230 -12Q180 -12 140.0 6.0Q100 24 77.0 56.5Q54 89 54 132Q54 200 94.5 237.5Q135 275 222 292L400 328Q400 396 369.5 429.0Q339 462 282 462Q227 462 196.0 437.5Q165 413 153 367L64 374Q79 449 135.5 495.5Q192 542 282 542Q378 542 431.0 484.5Q484 427 484 326V106Q484 88 492.0 81.0Q500 74 516 74H550V0Q544 -1 531.0 -1.5Q518 -2 506 -2Q472 -2 448.5 9.0Q425 20 413.0 44.5Q401 69 400 108H416Q409 74 382.5 46.5Q356 19 316.0 3.5Q276 -12 230 -12ZM238 62Q292 62 328.0 80.5Q364 99 382.0 132.5Q400 166 400 210V256L238 224Q184 214 163.0 193.5Q142 173 142 140Q142 103 167.5 82.5Q193 62 238 62Z";
|
|
53
|
+
/** Letra l (full) */
|
|
54
|
+
declare const L_PATH = "M273 0V568Q273 600 255.0 618.0Q237 636 205 636H80V710H209Q282 710 319.5 672.5Q357 635 357 562V0ZM60 0V74H540V0Z";
|
|
55
|
+
/** Letra c (full) */
|
|
56
|
+
declare const C_PATH = "M314 -12Q240 -12 185.0 22.0Q130 56 100.0 118.5Q70 181 70 265Q70 349 100.0 411.0Q130 473 185.0 507.5Q240 542 314 542Q373 542 419.0 520.5Q465 499 495.0 458.0Q525 417 536 358L448 352Q436 405 400.5 433.5Q365 462 314 462Q241 462 199.5 409.5Q158 357 158 265Q158 173 199.5 120.5Q241 68 314 68Q365 68 402.5 98.0Q440 128 452 188L540 182Q529 123 498.0 79.5Q467 36 420.0 12.0Q373 -12 314 -12Z";
|
|
57
|
+
/** Letra i (full) */
|
|
58
|
+
declare const I_PATH = "M293 0V530H377V0ZM80 0V74H560V0ZM90 456V530H377V456ZM285 613V711H373V613Z";
|
|
59
|
+
/** Letra s (full) */
|
|
60
|
+
declare const S_PATH = "M310 -12Q241 -12 191.0 12.0Q141 36 112.5 76.5Q84 117 80 167L168 173Q176 124 211.5 96.0Q247 68 310 68Q369 68 401.5 85.0Q434 102 434 138Q434 161 423.0 176.0Q412 191 382.0 201.5Q352 212 294 222Q217 236 173.5 256.5Q130 277 112.0 308.0Q94 339 94 382Q94 428 117.0 464.0Q140 500 185.0 521.0Q230 542 295 542Q361 542 405.5 518.5Q450 495 476.0 456.5Q502 418 510 372L422 366Q416 394 399.5 415.5Q383 437 356.5 449.5Q330 462 294 462Q236 462 208.0 439.0Q180 416 180 382Q180 355 193.0 339.0Q206 323 235.0 313.5Q264 304 312 296Q394 283 439.0 262.5Q484 242 502.0 212.0Q520 182 520 138Q520 91 492.5 57.5Q465 24 417.5 6.0Q370 -12 310 -12Z";
|
|
61
|
+
/** Cursor | (full) */
|
|
62
|
+
declare const CURSOR_PATH = "M260 -110V750H340V-110Z";
|
|
63
|
+
/**
|
|
64
|
+
* Transform para la v caligráfica en la variante full.
|
|
65
|
+
* Escala la V del icono (viewBox ~18-46, 8-42) a tamaño lowercase (~530 alto)
|
|
66
|
+
* y la adapta al sistema de coordenadas y-up del full logo.
|
|
67
|
+
*/
|
|
68
|
+
/**
|
|
69
|
+
* V bbox: x 14.2-47.5 (w=33.3), y 6-44.3 (h=38.3)
|
|
70
|
+
* Target: ~530 alto, centrada en slot de 600px
|
|
71
|
+
* Scale Y: 530/38.3 ≈ 13.84, Scale X: 15.2 (más gruesa)
|
|
72
|
+
* Width after scale: 33.3*15.2 = 506, offset: (600-506)/2 = 47
|
|
73
|
+
*/
|
|
74
|
+
declare const V_CALLIGRAPHIC_FULL_TRANSFORM = "translate(47, 0) scale(15.2, -13.84) translate(-14.2, -44.3)";
|
|
75
|
+
/** Offsets X para cada glyph en la variante full */
|
|
76
|
+
declare const FULL_GLYPH_OFFSETS: readonly [0, 600, 1200, 1800, 2400, 3000, 3600, 4200];
|
|
77
|
+
declare const VIEWBOXES: Record<string, string>;
|
|
78
|
+
declare const ASPECT_RATIOS: Record<string, number>;
|
|
79
|
+
|
|
80
|
+
interface DevInfo {
|
|
81
|
+
/** Versión del schema (para migraciones futuras) */
|
|
82
|
+
version: number;
|
|
83
|
+
/** Nombre de la marca */
|
|
84
|
+
brand: string;
|
|
85
|
+
/** Email de contacto */
|
|
86
|
+
contact: string;
|
|
87
|
+
/** URL del sitio web */
|
|
88
|
+
website?: string;
|
|
89
|
+
/** Año (opcional, se calcula automáticamente si no existe) */
|
|
90
|
+
year?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Modo de copyright:
|
|
94
|
+
* - 'owner' — Todo es de valcis: "© 2025 >valcis|"
|
|
95
|
+
* - 'designer' — Diseño de valcis, página del cliente: "Diseñado por >valcis|"
|
|
96
|
+
* - 'partner' — Solo marketing/atribución: "Powered by >valcis|"
|
|
97
|
+
*/
|
|
98
|
+
type CopyrightMode = 'owner' | 'designer' | 'partner';
|
|
99
|
+
interface FooterProps {
|
|
100
|
+
/** Datos del desarrollador pre-cargados desde SSR (opcional) */
|
|
101
|
+
initialDevInfo?: DevInfo;
|
|
102
|
+
/** Override URL del JSON (para testing/staging) */
|
|
103
|
+
devInfoUrl?: string;
|
|
104
|
+
/** Tema visual */
|
|
105
|
+
theme?: 'light' | 'dark';
|
|
106
|
+
/** Color de acento para links y marca (hex/rgb/css) */
|
|
107
|
+
accentColor?: string;
|
|
108
|
+
/** Color de fondo override (transparent por defecto) */
|
|
109
|
+
backgroundColor?: string;
|
|
110
|
+
/** Color de texto override */
|
|
111
|
+
textColor?: string;
|
|
112
|
+
/** Borde separador */
|
|
113
|
+
border?: boolean | 'top' | 'bottom' | 'both' | 'none';
|
|
114
|
+
/** Densidad / altura: presets o valores custom */
|
|
115
|
+
padding?: 'compact' | 'normal' | 'spacious' | {
|
|
116
|
+
x?: string;
|
|
117
|
+
y?: string;
|
|
118
|
+
};
|
|
119
|
+
/** Alineación del contenido */
|
|
120
|
+
align?: 'left' | 'center' | 'right';
|
|
121
|
+
/** Posicionamiento CSS */
|
|
122
|
+
position?: 'static' | 'sticky' | 'fixed';
|
|
123
|
+
/** Modo de copyright/atribución */
|
|
124
|
+
mode?: CopyrightMode;
|
|
125
|
+
/** Mostrar año (default: true) */
|
|
126
|
+
showYear?: boolean;
|
|
127
|
+
/** Mostrar email de contacto (default: true) */
|
|
128
|
+
showContact?: boolean;
|
|
129
|
+
/** Animar el logo (cursor blink) (default: true) */
|
|
130
|
+
animatedLogo?: boolean;
|
|
131
|
+
/** Layout horizontal o vertical */
|
|
132
|
+
variant?: 'inline' | 'stacked';
|
|
133
|
+
/** Clase CSS adicional */
|
|
134
|
+
className?: string;
|
|
135
|
+
/** Tag HTML (usar 'div' si ya existe un <footer> del cliente) */
|
|
136
|
+
as?: 'footer' | 'div' | 'section';
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
declare const Footer: React.FC<FooterProps>;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Obtiene los datos del desarrollador desde el servidor
|
|
143
|
+
* Para usar en getStaticProps / getServerSideProps / loader
|
|
144
|
+
*
|
|
145
|
+
* @param customUrl - URL alternativa (para testing/staging)
|
|
146
|
+
* @returns DevInfo - Datos del desarrollador o fallback
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* // Next.js
|
|
150
|
+
* export async function getStaticProps() {
|
|
151
|
+
* const devInfo = await getDevInfo();
|
|
152
|
+
* return { props: { devInfo }, revalidate: 3600 };
|
|
153
|
+
* }
|
|
154
|
+
*/
|
|
155
|
+
declare function getDevInfo(customUrl?: string): Promise<DevInfo>;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Hook para obtener datos del desarrollador (client-side)
|
|
159
|
+
* Usa caché local y fallback robusto
|
|
160
|
+
*
|
|
161
|
+
* @param initialData - Datos pre-cargados desde SSR (evita fetch)
|
|
162
|
+
* @param customUrl - URL alternativa (para testing)
|
|
163
|
+
*/
|
|
164
|
+
declare function useDevInfo(initialData?: DevInfo, customUrl?: string): DevInfo;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* FALLBACK - Datos por defecto si el fetch falla
|
|
168
|
+
*
|
|
169
|
+
* IMPORTANTE: Mantener longitud de caracteres similar al JSON real
|
|
170
|
+
* para evitar CLS (Cumulative Layout Shift)
|
|
171
|
+
*/
|
|
172
|
+
declare const DEFAULT_DEV_INFO: DevInfo;
|
|
173
|
+
declare const DEV_INFO_URL = "https://valcis.es/api/dev-info.json";
|
|
174
|
+
declare const FETCH_TIMEOUT = 2000;
|
|
175
|
+
declare const CACHE_DURATION: number;
|
|
176
|
+
declare const CACHE_KEY = "valcis-brand-dev-info";
|
|
177
|
+
|
|
178
|
+
export { ASPECT_RATIOS, A_PATH, BRACKET_LEFT_PATH, BRACKET_RIGHT_PATH, CACHE_DURATION, CACHE_KEY, CHEVRON_RIGHT_FULL_PATH, CURSOR_PATH, C_PATH, type CopyrightMode, DEFAULT_DEV_INFO, DEV_INFO_URL, type DevInfo, FETCH_TIMEOUT, FULL_GLYPH_OFFSETS, Footer, type FooterProps, I_PATH, L_PATH, Logo, type LogoProps, type LogoSize, type LogoVariant, S_PATH, VIEWBOXES, V_CALLIGRAPHIC_FULL_TRANSFORM, V_CALLIGRAPHIC_PATH, getDevInfo, useDevInfo };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
|
|
3
|
+
/** Variantes del logo: icon (<V>) o full (>valcis|) */
|
|
4
|
+
type LogoVariant = 'icon' | 'full';
|
|
5
|
+
/** Tamaños predefinidos del logo */
|
|
6
|
+
type LogoSize = number | 'sm' | 'md' | 'lg' | 'xl';
|
|
7
|
+
interface LogoProps {
|
|
8
|
+
/** Variante del logo: icon (<V>) o full (>valcis|) */
|
|
9
|
+
variant?: LogoVariant;
|
|
10
|
+
/** Tamaño: número en px o preset */
|
|
11
|
+
size?: LogoSize;
|
|
12
|
+
/** Animación CSS-only (respeta prefers-reduced-motion) */
|
|
13
|
+
animated?: boolean;
|
|
14
|
+
/** Color de acento (brackets/chevron/cursor). Jerarquía: prop > --valcis-logo-accent > --primary > currentColor */
|
|
15
|
+
accentColor?: string;
|
|
16
|
+
/** Color del texto/letras. Jerarquía: prop > --valcis-logo-text > currentColor */
|
|
17
|
+
textColor?: string;
|
|
18
|
+
/** Clase CSS adicional */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** Estilos inline adicionales */
|
|
21
|
+
style?: CSSProperties;
|
|
22
|
+
/** Label para accesibilidad (si se omite, el logo es decorativo) */
|
|
23
|
+
ariaLabel?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Logo valcis — Componente puro (sin hooks/estado)
|
|
28
|
+
*
|
|
29
|
+
* Variantes:
|
|
30
|
+
* - icon: <V> (brackets + V caligráfica)
|
|
31
|
+
* - full: >valcis| (chevron + v caligráfica minúscula + alcis + cursor)
|
|
32
|
+
*
|
|
33
|
+
* Compatible con React Server Components.
|
|
34
|
+
* Animación CSS-only que respeta prefers-reduced-motion.
|
|
35
|
+
* Colores jerárquicos: prop > CSS custom property > currentColor.
|
|
36
|
+
*/
|
|
37
|
+
declare const Logo: React.FC<LogoProps>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* SVG Path data para el logo valcis
|
|
41
|
+
* Extraído de assets/logo-icon.svg y assets/logo-full.svg
|
|
42
|
+
*/
|
|
43
|
+
/** Bracket izquierdo < (icon) */
|
|
44
|
+
declare const BRACKET_LEFT_PATH = "M17.8 37.1L5.0 31.5L5.0 28.5L17.8 22.8L17.8 25.2L6.8 30.1L6.8 29.8L17.8 34.7Z";
|
|
45
|
+
/** Bracket derecho > (icon) */
|
|
46
|
+
declare const BRACKET_RIGHT_PATH = "M47.0 37.1L47.0 34.7L58.0 29.8L58.0 30.1L47.0 25.2L47.0 22.8L59.8 28.5L59.8 31.5Z";
|
|
47
|
+
/** Letra V caligráfica (más grande, gruesa y enderezada) */
|
|
48
|
+
declare const V_CALLIGRAPHIC_PATH = "M28 44.3Q27.3 44.3 26.1 43.9Q25 43.6 24 42.7Q23 41.8 22.8 40Q22.7 38.6 23.1 36.4Q23.4 34.4 24.1 31.8Q24.7 29.3 25.3 26.3Q25.8 23.3 26.1 20.1Q26.4 16.9 26.1 13.6Q25.9 11.9 25.4 10.7Q25 9.3 24.4 8.6Q23.6 8 22.4 8Q21.1 8 20.2 8.6Q19.4 9.3 19 10.6Q18.6 11.7 18.3 12.9Q18.2 14.1 18.3 15.3Q18.4 16 18.7 16.8Q18.9 17.5 19.4 18.3Q17 18.3 15.7 17.2Q14.5 16.2 14.4 14.5Q14.2 13.1 14.8 11.6Q15.4 10 16.6 8.8Q17.8 7.5 19.5 6.7Q21.1 6 23.2 6Q26.6 6 28.6 8.3Q30.6 10.7 31 14.7Q31.3 17.4 30.9 20.2Q30.6 23 30 25.9Q29.5 28.8 28.8 31.5Q28.1 34.2 27.8 36.5Q27.4 38.8 27.6 40.5Q27.7 41.2 27.9 41.7Q28.1 42.1 29 42.1Q30.4 42.1 32 40.8Q33.8 39.6 35.4 37.3Q37.2 35.2 38.8 32.4Q40.3 29.6 41.5 26.5Q42.7 23.4 43.2 20.5Q43.8 17.5 43.6 14.9Q43.3 12.5 42.1 11.1Q41 9.8 39.6 9.3Q40.1 7.9 41.1 7.3Q42 6.6 42.8 6.6Q44.2 6.6 45.6 8.2Q46.9 9.9 47.2 12.8Q47.5 15.4 46.8 18.6Q46.2 22 44.7 25.4Q43.3 29 41.4 32.4Q39.5 35.8 37.2 38.4Q35 41 32.7 42.7Q30.3 44.3 28 44.3Z";
|
|
49
|
+
/** Chevron > (full) */
|
|
50
|
+
declare const CHEVRON_RIGHT_FULL_PATH = "M72 33V119L466 295V283L72 459V545L528 342V236Z";
|
|
51
|
+
/** Letra a (full) */
|
|
52
|
+
declare const A_PATH = "M230 -12Q180 -12 140.0 6.0Q100 24 77.0 56.5Q54 89 54 132Q54 200 94.5 237.5Q135 275 222 292L400 328Q400 396 369.5 429.0Q339 462 282 462Q227 462 196.0 437.5Q165 413 153 367L64 374Q79 449 135.5 495.5Q192 542 282 542Q378 542 431.0 484.5Q484 427 484 326V106Q484 88 492.0 81.0Q500 74 516 74H550V0Q544 -1 531.0 -1.5Q518 -2 506 -2Q472 -2 448.5 9.0Q425 20 413.0 44.5Q401 69 400 108H416Q409 74 382.5 46.5Q356 19 316.0 3.5Q276 -12 230 -12ZM238 62Q292 62 328.0 80.5Q364 99 382.0 132.5Q400 166 400 210V256L238 224Q184 214 163.0 193.5Q142 173 142 140Q142 103 167.5 82.5Q193 62 238 62Z";
|
|
53
|
+
/** Letra l (full) */
|
|
54
|
+
declare const L_PATH = "M273 0V568Q273 600 255.0 618.0Q237 636 205 636H80V710H209Q282 710 319.5 672.5Q357 635 357 562V0ZM60 0V74H540V0Z";
|
|
55
|
+
/** Letra c (full) */
|
|
56
|
+
declare const C_PATH = "M314 -12Q240 -12 185.0 22.0Q130 56 100.0 118.5Q70 181 70 265Q70 349 100.0 411.0Q130 473 185.0 507.5Q240 542 314 542Q373 542 419.0 520.5Q465 499 495.0 458.0Q525 417 536 358L448 352Q436 405 400.5 433.5Q365 462 314 462Q241 462 199.5 409.5Q158 357 158 265Q158 173 199.5 120.5Q241 68 314 68Q365 68 402.5 98.0Q440 128 452 188L540 182Q529 123 498.0 79.5Q467 36 420.0 12.0Q373 -12 314 -12Z";
|
|
57
|
+
/** Letra i (full) */
|
|
58
|
+
declare const I_PATH = "M293 0V530H377V0ZM80 0V74H560V0ZM90 456V530H377V456ZM285 613V711H373V613Z";
|
|
59
|
+
/** Letra s (full) */
|
|
60
|
+
declare const S_PATH = "M310 -12Q241 -12 191.0 12.0Q141 36 112.5 76.5Q84 117 80 167L168 173Q176 124 211.5 96.0Q247 68 310 68Q369 68 401.5 85.0Q434 102 434 138Q434 161 423.0 176.0Q412 191 382.0 201.5Q352 212 294 222Q217 236 173.5 256.5Q130 277 112.0 308.0Q94 339 94 382Q94 428 117.0 464.0Q140 500 185.0 521.0Q230 542 295 542Q361 542 405.5 518.5Q450 495 476.0 456.5Q502 418 510 372L422 366Q416 394 399.5 415.5Q383 437 356.5 449.5Q330 462 294 462Q236 462 208.0 439.0Q180 416 180 382Q180 355 193.0 339.0Q206 323 235.0 313.5Q264 304 312 296Q394 283 439.0 262.5Q484 242 502.0 212.0Q520 182 520 138Q520 91 492.5 57.5Q465 24 417.5 6.0Q370 -12 310 -12Z";
|
|
61
|
+
/** Cursor | (full) */
|
|
62
|
+
declare const CURSOR_PATH = "M260 -110V750H340V-110Z";
|
|
63
|
+
/**
|
|
64
|
+
* Transform para la v caligráfica en la variante full.
|
|
65
|
+
* Escala la V del icono (viewBox ~18-46, 8-42) a tamaño lowercase (~530 alto)
|
|
66
|
+
* y la adapta al sistema de coordenadas y-up del full logo.
|
|
67
|
+
*/
|
|
68
|
+
/**
|
|
69
|
+
* V bbox: x 14.2-47.5 (w=33.3), y 6-44.3 (h=38.3)
|
|
70
|
+
* Target: ~530 alto, centrada en slot de 600px
|
|
71
|
+
* Scale Y: 530/38.3 ≈ 13.84, Scale X: 15.2 (más gruesa)
|
|
72
|
+
* Width after scale: 33.3*15.2 = 506, offset: (600-506)/2 = 47
|
|
73
|
+
*/
|
|
74
|
+
declare const V_CALLIGRAPHIC_FULL_TRANSFORM = "translate(47, 0) scale(15.2, -13.84) translate(-14.2, -44.3)";
|
|
75
|
+
/** Offsets X para cada glyph en la variante full */
|
|
76
|
+
declare const FULL_GLYPH_OFFSETS: readonly [0, 600, 1200, 1800, 2400, 3000, 3600, 4200];
|
|
77
|
+
declare const VIEWBOXES: Record<string, string>;
|
|
78
|
+
declare const ASPECT_RATIOS: Record<string, number>;
|
|
79
|
+
|
|
80
|
+
interface DevInfo {
|
|
81
|
+
/** Versión del schema (para migraciones futuras) */
|
|
82
|
+
version: number;
|
|
83
|
+
/** Nombre de la marca */
|
|
84
|
+
brand: string;
|
|
85
|
+
/** Email de contacto */
|
|
86
|
+
contact: string;
|
|
87
|
+
/** URL del sitio web */
|
|
88
|
+
website?: string;
|
|
89
|
+
/** Año (opcional, se calcula automáticamente si no existe) */
|
|
90
|
+
year?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Modo de copyright:
|
|
94
|
+
* - 'owner' — Todo es de valcis: "© 2025 >valcis|"
|
|
95
|
+
* - 'designer' — Diseño de valcis, página del cliente: "Diseñado por >valcis|"
|
|
96
|
+
* - 'partner' — Solo marketing/atribución: "Powered by >valcis|"
|
|
97
|
+
*/
|
|
98
|
+
type CopyrightMode = 'owner' | 'designer' | 'partner';
|
|
99
|
+
interface FooterProps {
|
|
100
|
+
/** Datos del desarrollador pre-cargados desde SSR (opcional) */
|
|
101
|
+
initialDevInfo?: DevInfo;
|
|
102
|
+
/** Override URL del JSON (para testing/staging) */
|
|
103
|
+
devInfoUrl?: string;
|
|
104
|
+
/** Tema visual */
|
|
105
|
+
theme?: 'light' | 'dark';
|
|
106
|
+
/** Color de acento para links y marca (hex/rgb/css) */
|
|
107
|
+
accentColor?: string;
|
|
108
|
+
/** Color de fondo override (transparent por defecto) */
|
|
109
|
+
backgroundColor?: string;
|
|
110
|
+
/** Color de texto override */
|
|
111
|
+
textColor?: string;
|
|
112
|
+
/** Borde separador */
|
|
113
|
+
border?: boolean | 'top' | 'bottom' | 'both' | 'none';
|
|
114
|
+
/** Densidad / altura: presets o valores custom */
|
|
115
|
+
padding?: 'compact' | 'normal' | 'spacious' | {
|
|
116
|
+
x?: string;
|
|
117
|
+
y?: string;
|
|
118
|
+
};
|
|
119
|
+
/** Alineación del contenido */
|
|
120
|
+
align?: 'left' | 'center' | 'right';
|
|
121
|
+
/** Posicionamiento CSS */
|
|
122
|
+
position?: 'static' | 'sticky' | 'fixed';
|
|
123
|
+
/** Modo de copyright/atribución */
|
|
124
|
+
mode?: CopyrightMode;
|
|
125
|
+
/** Mostrar año (default: true) */
|
|
126
|
+
showYear?: boolean;
|
|
127
|
+
/** Mostrar email de contacto (default: true) */
|
|
128
|
+
showContact?: boolean;
|
|
129
|
+
/** Animar el logo (cursor blink) (default: true) */
|
|
130
|
+
animatedLogo?: boolean;
|
|
131
|
+
/** Layout horizontal o vertical */
|
|
132
|
+
variant?: 'inline' | 'stacked';
|
|
133
|
+
/** Clase CSS adicional */
|
|
134
|
+
className?: string;
|
|
135
|
+
/** Tag HTML (usar 'div' si ya existe un <footer> del cliente) */
|
|
136
|
+
as?: 'footer' | 'div' | 'section';
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
declare const Footer: React.FC<FooterProps>;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Obtiene los datos del desarrollador desde el servidor
|
|
143
|
+
* Para usar en getStaticProps / getServerSideProps / loader
|
|
144
|
+
*
|
|
145
|
+
* @param customUrl - URL alternativa (para testing/staging)
|
|
146
|
+
* @returns DevInfo - Datos del desarrollador o fallback
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* // Next.js
|
|
150
|
+
* export async function getStaticProps() {
|
|
151
|
+
* const devInfo = await getDevInfo();
|
|
152
|
+
* return { props: { devInfo }, revalidate: 3600 };
|
|
153
|
+
* }
|
|
154
|
+
*/
|
|
155
|
+
declare function getDevInfo(customUrl?: string): Promise<DevInfo>;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Hook para obtener datos del desarrollador (client-side)
|
|
159
|
+
* Usa caché local y fallback robusto
|
|
160
|
+
*
|
|
161
|
+
* @param initialData - Datos pre-cargados desde SSR (evita fetch)
|
|
162
|
+
* @param customUrl - URL alternativa (para testing)
|
|
163
|
+
*/
|
|
164
|
+
declare function useDevInfo(initialData?: DevInfo, customUrl?: string): DevInfo;
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* FALLBACK - Datos por defecto si el fetch falla
|
|
168
|
+
*
|
|
169
|
+
* IMPORTANTE: Mantener longitud de caracteres similar al JSON real
|
|
170
|
+
* para evitar CLS (Cumulative Layout Shift)
|
|
171
|
+
*/
|
|
172
|
+
declare const DEFAULT_DEV_INFO: DevInfo;
|
|
173
|
+
declare const DEV_INFO_URL = "https://valcis.es/api/dev-info.json";
|
|
174
|
+
declare const FETCH_TIMEOUT = 2000;
|
|
175
|
+
declare const CACHE_DURATION: number;
|
|
176
|
+
declare const CACHE_KEY = "valcis-brand-dev-info";
|
|
177
|
+
|
|
178
|
+
export { ASPECT_RATIOS, A_PATH, BRACKET_LEFT_PATH, BRACKET_RIGHT_PATH, CACHE_DURATION, CACHE_KEY, CHEVRON_RIGHT_FULL_PATH, CURSOR_PATH, C_PATH, type CopyrightMode, DEFAULT_DEV_INFO, DEV_INFO_URL, type DevInfo, FETCH_TIMEOUT, FULL_GLYPH_OFFSETS, Footer, type FooterProps, I_PATH, L_PATH, Logo, type LogoProps, type LogoSize, type LogoVariant, S_PATH, VIEWBOXES, V_CALLIGRAPHIC_FULL_TRANSFORM, V_CALLIGRAPHIC_PATH, getDevInfo, useDevInfo };
|