@eduardoalvarez/arrecife 0.5.1 → 0.7.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/README.md +868 -467
  3. package/dist/brand/index.cjs +112 -95
  4. package/dist/brand/index.d.cts +40 -39
  5. package/dist/brand/index.d.ts +40 -39
  6. package/dist/brand/index.js +5 -4
  7. package/dist/catalog-D13txprv.d.cts +78 -0
  8. package/dist/catalog-D13txprv.d.ts +78 -0
  9. package/dist/chart/index.cjs +100 -83
  10. package/dist/chart/index.d.cts +66 -66
  11. package/dist/chart/index.d.ts +66 -66
  12. package/dist/chart/index.js +14 -12
  13. package/dist/chunk-2WPWEIMD.js +27 -0
  14. package/dist/chunk-45HVCTB7.js +70 -0
  15. package/dist/{chunk-ZEOQKRQ7.js → chunk-727HCBD4.js} +1 -1
  16. package/dist/chunk-CKRSQPTX.js +36 -0
  17. package/dist/chunk-E6KFUSKB.js +144 -0
  18. package/dist/chunk-GCRII2KQ.js +86 -0
  19. package/dist/{chunk-YZ2SDOVZ.js → chunk-JN3IS5OS.js} +30 -30
  20. package/dist/chunk-ODBFN44D.js +45 -0
  21. package/dist/chunk-OMKSESQB.js +300 -0
  22. package/dist/{chunk-VPT32GPG.js → chunk-TA7TLWW4.js} +2 -2
  23. package/dist/chunk-WGNIRIN7.js +42 -0
  24. package/dist/doctor.mjs +166 -0
  25. package/dist/form/index.cjs +109 -92
  26. package/dist/form/index.d.cts +43 -42
  27. package/dist/form/index.d.ts +43 -42
  28. package/dist/form/index.js +25 -23
  29. package/dist/icons/index.cjs +149 -0
  30. package/dist/icons/index.d.cts +94 -0
  31. package/dist/icons/index.d.ts +94 -0
  32. package/dist/icons/index.js +28 -0
  33. package/dist/index-DlAO2JZs.d.cts +47 -0
  34. package/dist/index-DlAO2JZs.d.ts +47 -0
  35. package/dist/index.cjs +1292 -983
  36. package/dist/index.d.cts +927 -806
  37. package/dist/index.d.ts +927 -806
  38. package/dist/index.js +809 -778
  39. package/dist/{label-DuTvJGxD.d.ts → label-MgHFKnFy.d.cts} +3 -3
  40. package/dist/{label-DuTvJGxD.d.cts → label-MgHFKnFy.d.ts} +3 -3
  41. package/dist/og/index.cjs +133 -132
  42. package/dist/og/index.d.cts +93 -89
  43. package/dist/og/index.d.ts +93 -89
  44. package/dist/og/index.js +106 -106
  45. package/dist/shiki/index.cjs +28 -30
  46. package/dist/shiki/index.d.cts +4 -4
  47. package/dist/shiki/index.d.ts +4 -4
  48. package/dist/shiki/index.js +12 -12
  49. package/dist/social/index.cjs +67 -0
  50. package/dist/social/index.d.cts +2 -0
  51. package/dist/social/index.d.ts +2 -0
  52. package/dist/social/index.js +2 -0
  53. package/dist/theme/index.cjs +97 -0
  54. package/dist/theme/index.d.cts +144 -0
  55. package/dist/theme/index.d.ts +144 -0
  56. package/dist/theme/index.js +2 -0
  57. package/dist/tokens/index.cjs +159 -88
  58. package/dist/tokens/index.d.cts +277 -165
  59. package/dist/tokens/index.d.ts +277 -165
  60. package/dist/tokens/index.js +2 -2
  61. package/dist/tokens/theme.css +165 -100
  62. package/dist/variants/index.cjs +195 -0
  63. package/dist/variants/index.d.cts +195 -0
  64. package/dist/variants/index.d.ts +195 -0
  65. package/dist/variants/index.js +3 -0
  66. package/llms.txt +1145 -746
  67. package/package.json +42 -11
  68. package/dist/catalogo-Du5ID-Hi.d.cts +0 -77
  69. package/dist/catalogo-Du5ID-Hi.d.ts +0 -77
  70. package/dist/chunk-E3OMP2DL.js +0 -36
  71. package/dist/chunk-KPZNNMV5.js +0 -83
  72. package/dist/chunk-NHS7ETKJ.js +0 -27
  73. package/dist/chunk-TSPJOM6K.js +0 -229
  74. package/dist/chunk-UOWIDFCB.js +0 -81
  75. package/dist/tema/index.cjs +0 -94
  76. package/dist/tema/index.d.cts +0 -110
  77. package/dist/tema/index.d.ts +0 -110
  78. package/dist/tema/index.js +0 -2
package/dist/og/index.js CHANGED
@@ -1,36 +1,36 @@
1
- import { RUTA_ASSETS, caras, poses, aletas } from '../chunk-E3OMP2DL.js';
2
- import { fonts, dark, light, naming, gradient, tagline, typeScale } from '../chunk-TSPJOM6K.js';
1
+ import { ASSETS_PATH, faces, poses, fins } from '../chunk-CKRSQPTX.js';
2
+ import { fonts, dark, light, naming, gradient, tagline, typeScale } from '../chunk-OMKSESQB.js';
3
3
  import '../chunk-MLKGABMK.js';
4
4
 
5
- // src/og/plantillas.ts
5
+ // src/og/templates.ts
6
6
  var OG = {
7
7
  width: 1200,
8
8
  height: 630,
9
- margen: 64,
10
- /** Alto máximo de la mascota. */
11
- mascota: 430,
12
- /** La aleta de la firma. */
13
- aletaFirma: 34,
9
+ margin: 64,
10
+ /** The mascot's maximum height. */
11
+ mascot: 430,
12
+ /** The signature's fin. */
13
+ signatureFin: 34,
14
14
  /**
15
- * Hueco que deja la columna cuando la pose va a la izquierda (curso).
15
+ * The gap the column leaves when the pose goes on the left (course).
16
16
  *
17
- * Son 560 y no 420 porque una pose completa a 430 de alto mide ~534 de ancho:
18
- * con el hueco justo, el tiburón se comía el titular. La reserva se mide por
19
- * el ancho real de la pose, no por el margen.
17
+ * It is 560 and not 420 because a full pose at 430 tall measures ~534 wide:
18
+ * with the exact gap, the shark ate into the headline. The reserve is measured
19
+ * by the pose's real width, not by the margin.
20
20
  */
21
- reservaMascota: 560
21
+ mascotReserve: 560
22
22
  };
23
23
  function el(type, props, children) {
24
24
  return { type, props: children === void 0 ? props : { ...props, children } };
25
25
  }
26
- function caja(style, children) {
26
+ function box(style, children) {
27
27
  return el("div", { style: { display: "flex", ...style } }, children);
28
28
  }
29
- function texto(style, contenido) {
30
- return el("div", { style: { display: "flex", ...style } }, contenido);
29
+ function text(style, content) {
30
+ return el("div", { style: { display: "flex", ...style } }, content);
31
31
  }
32
- function eyebrow(contenido, color) {
33
- return texto(
32
+ function eyebrow(content, color) {
33
+ return text(
34
34
  {
35
35
  fontFamily: fonts.mono,
36
36
  fontSize: 20,
@@ -38,11 +38,11 @@ function eyebrow(contenido, color) {
38
38
  textTransform: "uppercase",
39
39
  color
40
40
  },
41
- contenido
41
+ content
42
42
  );
43
43
  }
44
- function titular(contenido, color) {
45
- return texto(
44
+ function headline(content, color) {
45
+ return text(
46
46
  {
47
47
  fontFamily: fonts.display,
48
48
  fontSize: 58,
@@ -50,8 +50,8 @@ function titular(contenido, color) {
50
50
  lineHeight: 1.06,
51
51
  letterSpacing: typeScale.h1.tracking,
52
52
  color,
53
- // 70 % del LIENZO, no de la columna. Con la mascota en su propia columna
54
- // el 70 % relativo daba ~400px y el titular se truncaba a media palabra.
53
+ // 70 % of the CANVAS, not of the column. With the mascot in a column of
54
+ // its own, a relative 70 % gave ~400px and the headline truncated mid-word.
55
55
  maxWidth: OG.width * 0.7,
56
56
  display: "-webkit-box",
57
57
  WebkitBoxOrient: "vertical",
@@ -59,144 +59,144 @@ function titular(contenido, color) {
59
59
  overflow: "hidden",
60
60
  textOverflow: "ellipsis"
61
61
  },
62
- contenido
62
+ content
63
63
  );
64
64
  }
65
- function firma(contenido, color, modo, base) {
66
- return caja({ alignItems: "center", gap: 14 }, [
65
+ function signature(content, color, mode, base) {
66
+ return box({ alignItems: "center", gap: 14 }, [
67
67
  el("img", {
68
68
  alt: "",
69
- src: `${base}/${modo === "oscuro" ? aletas.espuma : aletas.color}`,
70
- height: OG.aletaFirma,
71
- style: { height: OG.aletaFirma }
69
+ src: `${base}/${mode === "dark" ? fins.foam : fins.color}`,
70
+ height: OG.signatureFin,
71
+ style: { height: OG.signatureFin }
72
72
  }),
73
- texto({ fontFamily: fonts.mono, fontSize: 21, color }, contenido)
73
+ text({ fontFamily: fonts.mono, fontSize: 21, color }, content)
74
74
  ]);
75
75
  }
76
- function tarjeta(opciones) {
77
- const columna = caja(
76
+ function card(options) {
77
+ const column = box(
78
78
  {
79
79
  position: "relative",
80
80
  flexDirection: "column",
81
81
  justifyContent: "space-between",
82
82
  width: "100%",
83
83
  height: "100%",
84
- padding: OG.margen,
85
- // Cuando la pose va a la izquierda hay que dejarle el hueco: es lo único
86
- // que cambia de la retícula, y solo lo hace la plantilla de curso.
87
- paddingLeft: opciones.mascotaIzquierda ? OG.reservaMascota : OG.margen
84
+ padding: OG.margin,
85
+ // When the pose goes on the left it needs the gap left for it: it is the
86
+ // only thing that changes in the grid, and only the course template does it.
87
+ paddingLeft: options.mascotaIzquierda ? OG.mascotReserve : OG.margin
88
88
  },
89
89
  [
90
- eyebrow(opciones.eyebrow.texto, opciones.eyebrow.color),
91
- caja({ flexDirection: "column", gap: 18 }, [
92
- titular(opciones.title, opciones.tinta),
93
- opciones.bajada ? texto(
90
+ eyebrow(options.eyebrow.text, options.eyebrow.color),
91
+ box({ flexDirection: "column", gap: 18 }, [
92
+ headline(options.title, options.tinta),
93
+ options.bajada ? text(
94
94
  {
95
95
  fontFamily: fonts.sans,
96
96
  fontSize: 26,
97
- color: opciones.tintaSecundaria,
97
+ color: options.tintaSecundaria,
98
98
  maxWidth: OG.width * 0.7
99
99
  },
100
- opciones.bajada
100
+ options.bajada
101
101
  ) : null
102
102
  ]),
103
- firma(opciones.firma, opciones.firmaColor, opciones.modo, opciones.base)
103
+ signature(options.signature, options.firmaColor, options.mode, options.base)
104
104
  ]
105
105
  );
106
- return caja(
106
+ return box(
107
107
  {
108
108
  position: "relative",
109
109
  width: OG.width,
110
110
  height: OG.height,
111
- backgroundImage: opciones.fondo,
112
- backgroundColor: opciones.modo === "oscuro" ? dark.background : light.background,
111
+ backgroundImage: options.background,
112
+ backgroundColor: options.mode === "dark" ? dark.background : light.background,
113
113
  fontFamily: fonts.sans,
114
114
  overflow: "hidden"
115
115
  },
116
116
  [
117
- opciones.mascota ? caja(
117
+ options.mascot ? box(
118
118
  {
119
119
  position: "absolute",
120
120
  bottom: 0,
121
- ...opciones.mascotaIzquierda ? { left: 0 } : { right: 0 },
121
+ ...options.mascotaIzquierda ? { left: 0 } : { right: 0 },
122
122
  alignItems: "flex-end"
123
123
  },
124
- opciones.mascota
124
+ options.mascot
125
125
  ) : null,
126
- columna
126
+ column
127
127
  ]
128
128
  );
129
129
  }
130
- function mascotaPose(pose, base, alto = OG.mascota) {
131
- return el("img", { alt: "", src: `${base}/${poses[pose]}`, height: alto, style: { height: alto } });
130
+ function mascotPose(pose, base, height = OG.mascot) {
131
+ return el("img", { alt: "", src: `${base}/${poses[pose]}`, height, style: { height } });
132
132
  }
133
- function plantillaArticulo(datos) {
134
- const base = datos.basePath ?? RUTA_ASSETS;
135
- const cara = datos.expresion ?? "hearts";
136
- const meta = [datos.category, datos.readingMinutes ? `${datos.readingMinutes} min` : void 0].filter(Boolean).join(" \xB7 ");
137
- return tarjeta({
138
- modo: "oscuro",
139
- fondo: gradient.dark.og,
140
- eyebrow: { texto: meta || "art\xEDculo", color: dark.warm },
141
- title: datos.title,
142
- firma: naming.domain,
133
+ function articleTemplate(data) {
134
+ const base = data.basePath ?? ASSETS_PATH;
135
+ const face = data.expression ?? "hearts";
136
+ const meta = [data.category, data.readingMinutes ? `${data.readingMinutes} min` : void 0].filter(Boolean).join(" \xB7 ");
137
+ return card({
138
+ mode: "dark",
139
+ background: gradient.dark.og,
140
+ eyebrow: { text: meta || "art\xEDculo", color: dark.warm },
141
+ title: data.title,
142
+ signature: naming.domain,
143
143
  firmaColor: dark.textSecondary,
144
144
  base,
145
145
  tinta: dark.textPrimary,
146
146
  tintaSecundaria: dark.textSecondary,
147
- mascota: el("img", {
147
+ mascot: el("img", {
148
148
  alt: "",
149
- src: `${base}/${caras[cara]}`,
149
+ src: `${base}/${faces[face]}`,
150
150
  height: 300,
151
- style: { height: 300, marginBottom: OG.margen, marginRight: OG.margen }
151
+ style: { height: 300, marginBottom: OG.margin, marginRight: OG.margin }
152
152
  })
153
153
  });
154
154
  }
155
- function plantillaCurso(datos) {
156
- const base = datos.basePath ?? RUTA_ASSETS;
157
- const meta = [datos.modules ? `${datos.modules} m\xF3dulos` : void 0, datos.duration].filter(Boolean).join(" \xB7 ");
158
- return tarjeta({
159
- modo: "claro",
160
- fondo: gradient.light.og,
161
- eyebrow: { texto: "nuevo curso", color: light.warm },
162
- title: datos.title,
155
+ function courseTemplate(data) {
156
+ const base = data.basePath ?? ASSETS_PATH;
157
+ const meta = [data.modules ? `${data.modules} m\xF3dulos` : void 0, data.duration].filter(Boolean).join(" \xB7 ");
158
+ return card({
159
+ mode: "light",
160
+ background: gradient.light.og,
161
+ eyebrow: { text: "nuevo curso", color: light.warm },
162
+ title: data.title,
163
163
  bajada: meta || void 0,
164
- firma: datos.url ?? `cursos.${naming.domain}`,
164
+ signature: data.url ?? `cursos.${naming.domain}`,
165
165
  firmaColor: light.warm,
166
166
  base,
167
167
  tinta: light.textPrimary,
168
168
  tintaSecundaria: light.textSecondary,
169
169
  mascotaIzquierda: true,
170
- mascota: mascotaPose(datos.pose ?? "desk", base)
170
+ mascot: mascotPose(data.pose ?? "desk", base)
171
171
  });
172
172
  }
173
- function plantillaCharla(datos) {
174
- const base = datos.basePath ?? RUTA_ASSETS;
175
- const cabeza = ["charla", datos.event, datos.year].filter(Boolean).join(" \xB7 ");
176
- const pie = [datos.location, datos.event ? void 0 : naming.domain].filter(Boolean).join(" \xB7 ");
177
- return tarjeta({
178
- modo: "oscuro",
179
- fondo: "none",
180
- eyebrow: { texto: cabeza, color: dark.accent },
181
- title: datos.title,
182
- bajada: datos.summary,
183
- firma: pie || naming.domain,
173
+ function talkTemplate(data) {
174
+ const base = data.basePath ?? ASSETS_PATH;
175
+ const head = ["charla", data.event, data.year].filter(Boolean).join(" \xB7 ");
176
+ const footer = [data.location, data.event ? void 0 : naming.domain].filter(Boolean).join(" \xB7 ");
177
+ return card({
178
+ mode: "dark",
179
+ background: "none",
180
+ eyebrow: { text: head, color: dark.accent },
181
+ title: data.title,
182
+ bajada: data.summary,
183
+ signature: footer || naming.domain,
184
184
  firmaColor: dark.textSecondary,
185
185
  base,
186
186
  tinta: dark.textPrimary,
187
187
  tintaSecundaria: dark.textSecondary,
188
- // Sangra: se sale por abajo y por la derecha, como la portada de slide.
189
- mascota: el("img", {
188
+ // It bleeds: it runs off the bottom and the right, like a slide cover.
189
+ mascot: el("img", {
190
190
  alt: "",
191
- src: `${base}/${poses[datos.pose ?? "surf"]}`,
191
+ src: `${base}/${poses[data.pose ?? "surf"]}`,
192
192
  height: 470,
193
193
  style: { height: 470, marginBottom: -46, marginRight: -36 }
194
194
  })
195
195
  });
196
196
  }
197
- function plantillaDefecto(datos = {}) {
198
- const base = datos.basePath ?? RUTA_ASSETS;
199
- return caja(
197
+ function defaultTemplate(data = {}) {
198
+ const base = data.basePath ?? ASSETS_PATH;
199
+ return box(
200
200
  {
201
201
  width: OG.width,
202
202
  height: OG.height,
@@ -205,11 +205,11 @@ function plantillaDefecto(datos = {}) {
205
205
  fontFamily: fonts.sans
206
206
  },
207
207
  [
208
- // Columna de la aleta: 290 de ancho, que es donde cae el divisor.
209
- caja(
208
+ // The fin's column: 290 wide, which is where the divider falls.
209
+ box(
210
210
  { width: 290, height: "100%", alignItems: "center", justifyContent: "center" },
211
- // El halo. Un círculo de bioluz al 12 % detrás de la aleta.
212
- caja(
211
+ // The halo. A circle of biolume at 12 % behind the fin.
212
+ box(
213
213
  {
214
214
  width: 260,
215
215
  height: 260,
@@ -218,21 +218,21 @@ function plantillaDefecto(datos = {}) {
218
218
  alignItems: "center",
219
219
  justifyContent: "center"
220
220
  },
221
- el("img", { alt: "", src: `${base}/${aletas.espuma}`, height: 200, style: { height: 200 } })
221
+ el("img", { alt: "", src: `${base}/${fins.foam}`, height: 200, style: { height: 200 } })
222
222
  )
223
223
  ),
224
- // El divisor, exactamente en x=290.
225
- caja({ width: 1, height: 340, backgroundColor: dark.border }),
226
- caja(
227
- { flexDirection: "column", gap: 20, paddingLeft: OG.margen, paddingRight: OG.margen, flex: 1 },
224
+ // The divider, exactly at x=290.
225
+ box({ width: 1, height: 340, backgroundColor: dark.border }),
226
+ box(
227
+ { flexDirection: "column", gap: 20, paddingLeft: OG.margin, paddingRight: OG.margin, flex: 1 },
228
228
  [
229
- texto(
229
+ text(
230
230
  { fontFamily: fonts.sans, fontSize: 72, fontWeight: 700, color: dark.textPrimary, lineHeight: 1.05 },
231
- datos.title ?? naming.wordmark
231
+ data.title ?? naming.wordmark
232
232
  ),
233
- texto(
233
+ text(
234
234
  { fontFamily: fonts.sans, fontSize: 28, fontWeight: 400, color: dark.textSecondary, lineHeight: 1.4 },
235
- datos.description ?? tagline.corto
235
+ data.description ?? tagline.short
236
236
  )
237
237
  ]
238
238
  )
@@ -240,4 +240,4 @@ function plantillaDefecto(datos = {}) {
240
240
  );
241
241
  }
242
242
 
243
- export { OG, plantillaArticulo, tarjeta as plantillaBase, plantillaCharla, plantillaCurso, plantillaDefecto };
243
+ export { OG, articleTemplate, courseTemplate, defaultTemplate, card as plantillaBase, talkTemplate };
@@ -2,48 +2,46 @@
2
2
 
3
3
  // src/tokens/tokens.ts
4
4
  var dark = {
5
- // hairline en hover de tarjeta
5
+ // hairline on card hover
6
6
  textPrimary: "#EDF4F3",
7
- // bruma 9.50:1
7
+ // haze 9.50:1
8
8
  textMuted: "#71919C",
9
- // plancton 5.57:1 nunca bajo 13px
9
+ // plankton 5.57:1 never under 13px
10
10
  accent: "#35D6C0",
11
- // tinta sobre bioluz
11
+ // ink over biolume
12
12
  warm: "#F2A65A",
13
- error: "#E15757"
14
- // 4.51:1 sobre surface
15
- };
13
+ error: "#E15757"};
16
14
  var brand = {
17
- /** Casco · contorno y fondo de bloques de código. */
15
+ /** Hull · outline, and the background of code blocks. */
18
16
  hull: "#0B1524"
19
17
  };
20
- var sintaxis = {
21
- /** El casco. Es el fondo del bloque en los dos modos. */
22
- fondo: brand.hull,
23
- /** Identificadores, funciones, tipos, variables. */
24
- identificador: dark.textPrimary,
25
- /** Cadenas, números, booleanos, null. */
18
+ var syntax = {
19
+ /** The hull. It is the block background in both modes. */
20
+ background: brand.hull,
21
+ /** Identifiers, functions, types, variables. */
22
+ identifier: dark.textPrimary,
23
+ /** Strings, numbers, booleans, null. */
26
24
  literal: dark.accent,
27
- /** Palabras clave, control de flujo, `import`, `this`. */
28
- palabraClave: dark.warm,
29
- /** Comentarios y puntuación. */
30
- comentario: dark.textMuted,
25
+ /** Keywords, control flow, `import`, `this`. */
26
+ keyword: dark.warm,
27
+ /** Comments and punctuation. */
28
+ comment: dark.textMuted,
31
29
  /** `markup.deleted`, `invalid`. */
32
- invalido: dark.error
30
+ invalid: dark.error
33
31
  };
34
32
 
35
- // src/shiki/tema.ts
33
+ // src/shiki/theme.ts
36
34
  var arrecife = {
37
35
  name: "arrecife",
38
36
  type: "dark",
39
37
  colors: {
40
- "editor.background": sintaxis.fondo,
41
- "editor.foreground": sintaxis.identificador
38
+ "editor.background": syntax.background,
39
+ "editor.foreground": syntax.identifier
42
40
  },
43
41
  tokenColors: [
44
42
  {
45
43
  scope: ["comment", "punctuation.definition.comment", "string.comment"],
46
- settings: { foreground: sintaxis.comentario, fontStyle: "italic" }
44
+ settings: { foreground: syntax.comment, fontStyle: "italic" }
47
45
  },
48
46
  {
49
47
  scope: [
@@ -60,7 +58,7 @@ var arrecife = {
60
58
  "variable.language.this",
61
59
  "variable.language.super"
62
60
  ],
63
- settings: { foreground: sintaxis.palabraClave }
61
+ settings: { foreground: syntax.keyword }
64
62
  },
65
63
  {
66
64
  scope: [
@@ -77,7 +75,7 @@ var arrecife = {
77
75
  "constant.language.undefined",
78
76
  "support.constant"
79
77
  ],
80
- settings: { foreground: sintaxis.literal }
78
+ settings: { foreground: syntax.literal }
81
79
  },
82
80
  {
83
81
  scope: [
@@ -98,7 +96,7 @@ var arrecife = {
98
96
  "support.variable.property",
99
97
  "entity.other.attribute-name"
100
98
  ],
101
- settings: { foreground: sintaxis.identificador }
99
+ settings: { foreground: syntax.identifier }
102
100
  },
103
101
  {
104
102
  scope: [
@@ -108,16 +106,16 @@ var arrecife = {
108
106
  "punctuation.separator",
109
107
  "punctuation.terminator"
110
108
  ],
111
- settings: { foreground: sintaxis.comentario }
109
+ settings: { foreground: syntax.comment }
112
110
  },
113
- { scope: ["markup.inserted"], settings: { foreground: sintaxis.literal } },
111
+ { scope: ["markup.inserted"], settings: { foreground: syntax.literal } },
114
112
  {
115
113
  scope: ["markup.deleted", "invalid", "invalid.illegal"],
116
- settings: { foreground: sintaxis.invalido }
114
+ settings: { foreground: syntax.invalid }
117
115
  },
118
116
  {
119
117
  scope: ["markup.heading", "entity.name.section"],
120
- settings: { foreground: sintaxis.palabraClave, fontStyle: "bold" }
118
+ settings: { foreground: syntax.keyword, fontStyle: "bold" }
121
119
  },
122
120
  { scope: ["markup.bold"], settings: { fontStyle: "bold" } },
123
121
  { scope: ["markup.italic"], settings: { fontStyle: "italic" } }
@@ -1,5 +1,5 @@
1
- /** La forma que Shiki espera. Se declara aquí para no depender del paquete. */
2
- type TemaShiki = {
1
+ /** The shape Shiki expects. Declared here so we need not depend on the package. */
2
+ type ShikiTheme = {
3
3
  name: string;
4
4
  type: 'dark' | 'light';
5
5
  colors: Record<string, string>;
@@ -11,6 +11,6 @@ type TemaShiki = {
11
11
  };
12
12
  }[];
13
13
  };
14
- declare const arrecife: TemaShiki;
14
+ declare const arrecife: ShikiTheme;
15
15
 
16
- export { type TemaShiki, arrecife };
16
+ export { type ShikiTheme, arrecife };
@@ -1,5 +1,5 @@
1
- /** La forma que Shiki espera. Se declara aquí para no depender del paquete. */
2
- type TemaShiki = {
1
+ /** The shape Shiki expects. Declared here so we need not depend on the package. */
2
+ type ShikiTheme = {
3
3
  name: string;
4
4
  type: 'dark' | 'light';
5
5
  colors: Record<string, string>;
@@ -11,6 +11,6 @@ type TemaShiki = {
11
11
  };
12
12
  }[];
13
13
  };
14
- declare const arrecife: TemaShiki;
14
+ declare const arrecife: ShikiTheme;
15
15
 
16
- export { type TemaShiki, arrecife };
16
+ export { type ShikiTheme, arrecife };
@@ -1,18 +1,18 @@
1
- import { sintaxis } from '../chunk-TSPJOM6K.js';
1
+ import { syntax } from '../chunk-OMKSESQB.js';
2
2
  import '../chunk-MLKGABMK.js';
3
3
 
4
- // src/shiki/tema.ts
4
+ // src/shiki/theme.ts
5
5
  var arrecife = {
6
6
  name: "arrecife",
7
7
  type: "dark",
8
8
  colors: {
9
- "editor.background": sintaxis.fondo,
10
- "editor.foreground": sintaxis.identificador
9
+ "editor.background": syntax.background,
10
+ "editor.foreground": syntax.identifier
11
11
  },
12
12
  tokenColors: [
13
13
  {
14
14
  scope: ["comment", "punctuation.definition.comment", "string.comment"],
15
- settings: { foreground: sintaxis.comentario, fontStyle: "italic" }
15
+ settings: { foreground: syntax.comment, fontStyle: "italic" }
16
16
  },
17
17
  {
18
18
  scope: [
@@ -29,7 +29,7 @@ var arrecife = {
29
29
  "variable.language.this",
30
30
  "variable.language.super"
31
31
  ],
32
- settings: { foreground: sintaxis.palabraClave }
32
+ settings: { foreground: syntax.keyword }
33
33
  },
34
34
  {
35
35
  scope: [
@@ -46,7 +46,7 @@ var arrecife = {
46
46
  "constant.language.undefined",
47
47
  "support.constant"
48
48
  ],
49
- settings: { foreground: sintaxis.literal }
49
+ settings: { foreground: syntax.literal }
50
50
  },
51
51
  {
52
52
  scope: [
@@ -67,7 +67,7 @@ var arrecife = {
67
67
  "support.variable.property",
68
68
  "entity.other.attribute-name"
69
69
  ],
70
- settings: { foreground: sintaxis.identificador }
70
+ settings: { foreground: syntax.identifier }
71
71
  },
72
72
  {
73
73
  scope: [
@@ -77,16 +77,16 @@ var arrecife = {
77
77
  "punctuation.separator",
78
78
  "punctuation.terminator"
79
79
  ],
80
- settings: { foreground: sintaxis.comentario }
80
+ settings: { foreground: syntax.comment }
81
81
  },
82
- { scope: ["markup.inserted"], settings: { foreground: sintaxis.literal } },
82
+ { scope: ["markup.inserted"], settings: { foreground: syntax.literal } },
83
83
  {
84
84
  scope: ["markup.deleted", "invalid", "invalid.illegal"],
85
- settings: { foreground: sintaxis.invalido }
85
+ settings: { foreground: syntax.invalid }
86
86
  },
87
87
  {
88
88
  scope: ["markup.heading", "entity.name.section"],
89
- settings: { foreground: sintaxis.palabraClave, fontStyle: "bold" }
89
+ settings: { foreground: syntax.keyword, fontStyle: "bold" }
90
90
  },
91
91
  { scope: ["markup.bold"], settings: { fontStyle: "bold" } },
92
92
  { scope: ["markup.italic"], settings: { fontStyle: "italic" } }
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+
5
+ // src/social/index.tsx
6
+ function Brand({ children, ...props }) {
7
+ return /* @__PURE__ */ jsxRuntime.jsx(
8
+ "svg",
9
+ {
10
+ viewBox: "0 0 24 24",
11
+ width: "1em",
12
+ height: "1em",
13
+ fill: "currentColor",
14
+ "aria-hidden": "true",
15
+ focusable: "false",
16
+ ...props,
17
+ children
18
+ }
19
+ );
20
+ }
21
+ function Functional({ children, ...props }) {
22
+ return /* @__PURE__ */ jsxRuntime.jsx(
23
+ "svg",
24
+ {
25
+ viewBox: "0 0 24 24",
26
+ width: "1em",
27
+ height: "1em",
28
+ fill: "none",
29
+ stroke: "currentColor",
30
+ strokeWidth: 1.6,
31
+ strokeLinecap: "round",
32
+ strokeLinejoin: "round",
33
+ "aria-hidden": "true",
34
+ focusable: "false",
35
+ ...props,
36
+ children
37
+ }
38
+ );
39
+ }
40
+ var GitHub = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 .5C5.73.5.5 5.73.5 12a11.5 11.5 0 0 0 7.86 10.91c.58.1.79-.25.79-.55 0-.27-.01-1.18-.02-2.14-3.2.7-3.88-1.36-3.88-1.36-.52-1.33-1.28-1.68-1.28-1.68-1.05-.72.08-.7.08-.7 1.16.08 1.77 1.19 1.77 1.19 1.03 1.77 2.7 1.26 3.36.96.1-.75.4-1.26.73-1.55-2.55-.29-5.24-1.28-5.24-5.69 0-1.26.45-2.29 1.19-3.09-.12-.29-.52-1.46.11-3.05 0 0 .97-.31 3.18 1.18a11 11 0 0 1 5.79 0c2.2-1.49 3.17-1.18 3.17-1.18.63 1.59.23 2.76.12 3.05.74.8 1.18 1.83 1.18 3.09 0 4.42-2.69 5.39-5.25 5.68.41.36.78 1.06.78 2.14 0 1.55-.01 2.79-.01 3.17 0 .3.2.66.79.55A11.5 11.5 0 0 0 23.5 12C23.5 5.73 18.27.5 12 .5Z" }) });
41
+ var LinkedIn = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9h4v12H3V9Zm7 0h3.8v1.71h.05a4.17 4.17 0 0 1 3.75-2.06c4.01 0 4.75 2.64 4.75 6.07V21h-4v-5.4c0-1.29-.02-2.95-1.8-2.95-1.8 0-2.08 1.4-2.08 2.85V21h-3.97V9Z" }) });
42
+ var X = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17.53 3h3.06l-6.69 7.64L21.75 21h-6.16l-4.83-6.3L5.25 21H2.19l7.15-8.17L2.5 3h6.32l4.36 5.77L17.53 3Zm-1.07 16.17h1.7L7.62 4.74H5.8l10.66 14.43Z" }) });
43
+ var Instagram = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41-.56-.22-.96-.48-1.38-.9-.42-.42-.68-.82-.9-1.38-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16Zm0 3.68a6.16 6.16 0 1 0 0 12.32 6.16 6.16 0 0 0 0-12.32Zm0 10.16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm7.85-10.4a1.44 1.44 0 1 1-2.88 0 1.44 1.44 0 0 1 2.88 0Z" }) });
44
+ var Discord = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.32 5.56A18.5 18.5 0 0 0 15.7 4.1a.07.07 0 0 0-.07.04c-.2.36-.42.82-.58 1.19a17 17 0 0 0-5.1 0c-.16-.38-.39-.83-.59-1.19a.07.07 0 0 0-.07-.04c-1.6.28-3.15.77-4.62 1.46a.06.06 0 0 0-.03.03C1.66 10 .9 14.28 1.28 18.5a.08.08 0 0 0 .03.05 18.6 18.6 0 0 0 5.6 2.84.07.07 0 0 0 .08-.03c.43-.59.81-1.21 1.14-1.86a.07.07 0 0 0-.04-.1c-.6-.23-1.18-.51-1.74-.83a.07.07 0 0 1-.01-.12l.35-.27a.07.07 0 0 1 .07-.01 13.3 13.3 0 0 0 11.3 0 .07.07 0 0 1 .08.01l.34.27c.04.04.04.1-.01.12-.55.33-1.13.6-1.74.83a.07.07 0 0 0-.04.1c.34.65.72 1.27 1.14 1.86a.07.07 0 0 0 .08.03 18.5 18.5 0 0 0 5.6-2.84.07.07 0 0 0 .04-.05c.45-4.88-.75-9.12-3.18-12.88a.06.06 0 0 0-.03-.03ZM8.4 15.93c-1.1 0-2.01-1.01-2.01-2.25 0-1.24.89-2.25 2.01-2.25 1.13 0 2.03 1.02 2.02 2.25 0 1.24-.9 2.25-2.02 2.25Zm7.22 0c-1.1 0-2.01-1.01-2.01-2.25 0-1.24.89-2.25 2.01-2.25 1.13 0 2.03 1.02 2.02 2.25 0 1.24-.89 2.25-2.02 2.25Z" }) });
45
+ var YouTube = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M23.5 6.9a3 3 0 0 0-2.12-2.12C19.5 4.27 12 4.27 12 4.27s-7.5 0-9.38.51A3 3 0 0 0 .5 6.9 31.3 31.3 0 0 0 0 12a31.3 31.3 0 0 0 .5 5.1 3 3 0 0 0 2.12 2.12c1.88.51 9.38.51 9.38.51s7.5 0 9.38-.51a3 3 0 0 0 2.12-2.12A31.3 31.3 0 0 0 24 12a31.3 31.3 0 0 0-.5-5.1ZM9.6 15.6V8.4l6.24 3.6-6.24 3.6Z" }) });
46
+ var Rss = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
47
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16" }),
48
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "19", r: "1.6", fill: "currentColor", stroke: "none" })
49
+ ] });
50
+ var Email = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
51
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2.75", y: "4.75", width: "18.5", height: "14.5", rx: "2" }),
52
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m3.5 7.5 7.4 5.2a2 2 0 0 0 2.2 0l7.4-5.2" })
53
+ ] });
54
+ var Newsletter = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
55
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 8.5a6 6 0 1 0-12 0c0 5-2 6.5-2 6.5h16s-2-1.5-2-6.5" }),
56
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.7 19a2 2 0 0 1-3.4 0" })
57
+ ] });
58
+
59
+ exports.Discord = Discord;
60
+ exports.Email = Email;
61
+ exports.GitHub = GitHub;
62
+ exports.Instagram = Instagram;
63
+ exports.LinkedIn = LinkedIn;
64
+ exports.Newsletter = Newsletter;
65
+ exports.Rss = Rss;
66
+ exports.X = X;
67
+ exports.YouTube = YouTube;
@@ -0,0 +1,2 @@
1
+ import 'react';
2
+ export { D as Discord, E as Email, G as GitHub, I as Instagram, L as LinkedIn, N as Newsletter, R as Rss, S as SocialIconProps, X, Y as YouTube } from '../index-DlAO2JZs.cjs';
@@ -0,0 +1,2 @@
1
+ import 'react';
2
+ export { D as Discord, E as Email, G as GitHub, I as Instagram, L as LinkedIn, N as Newsletter, R as Rss, S as SocialIconProps, X, Y as YouTube } from '../index-DlAO2JZs.js';