@eduardoalvarez/arrecife 0.6.0 → 0.8.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/CHANGELOG.md +112 -0
- package/README.md +288 -49
- package/dist/brand/index.cjs +2 -2
- package/dist/brand/index.js +3 -3
- package/dist/chart/index.cjs +129 -2
- package/dist/chart/index.d.cts +114 -4
- package/dist/chart/index.d.ts +114 -4
- package/dist/chart/index.js +129 -5
- package/dist/{chunk-PMN7NR3G.js → chunk-5A5GH2PF.js} +1 -1
- package/dist/{chunk-DKCN7BAL.js → chunk-6IGD5REB.js} +1 -1
- package/dist/{chunk-XKYHTOUJ.js → chunk-FAAGZG7A.js} +1 -1
- package/dist/{chunk-O4TAH7YJ.js → chunk-FGFNK72B.js} +29 -5
- package/dist/chunk-HOADZ6GS.js +72 -0
- package/dist/chunk-LXRGQKMG.js +145 -0
- package/dist/{chunk-6O3KWB6P.js → chunk-MPZBF2TZ.js} +2 -2
- package/dist/{chunk-JMOOFZ3B.js → chunk-TRPBID2W.js} +1 -1
- package/dist/{chunk-25YNFCIF.js → chunk-XXDATT3A.js} +6 -3
- package/dist/doctor.mjs +248 -0
- package/dist/form/index.cjs +2 -2
- package/dist/form/index.d.cts +1 -1
- package/dist/form/index.d.ts +1 -1
- package/dist/form/index.js +4 -4
- package/dist/icons/index.cjs +149 -0
- package/dist/icons/index.d.cts +94 -0
- package/dist/icons/index.d.ts +94 -0
- package/dist/icons/index.js +28 -0
- package/dist/index-BbRplw_B.d.cts +58 -0
- package/dist/index-BbRplw_B.d.ts +58 -0
- package/dist/index.cjs +425 -251
- package/dist/index.d.cts +303 -104
- package/dist/index.d.ts +303 -104
- package/dist/index.js +283 -285
- package/dist/{label-MgHFKnFy.d.ts → label-DJ4HuD-R.d.cts} +3 -2
- package/dist/{label-MgHFKnFy.d.cts → label-DJ4HuD-R.d.ts} +3 -2
- package/dist/og/index.cjs +3 -2
- package/dist/og/index.js +1 -1
- package/dist/shiki/index.js +1 -1
- package/dist/social/data.cjs +161 -0
- package/dist/social/data.d.cts +161 -0
- package/dist/social/data.d.ts +161 -0
- package/dist/social/data.js +2 -0
- package/dist/social/index.cjs +153 -0
- package/dist/social/index.d.cts +2 -0
- package/dist/social/index.d.ts +2 -0
- package/dist/social/index.js +3 -0
- package/dist/tokens/index.cjs +29 -5
- package/dist/tokens/index.d.cts +37 -10
- package/dist/tokens/index.d.ts +37 -10
- package/dist/tokens/index.js +2 -2
- package/dist/tokens/theme.css +79 -22
- package/dist/variants/index.cjs +6 -3
- package/dist/variants/index.d.cts +6 -3
- package/dist/variants/index.d.ts +6 -3
- package/dist/variants/index.js +1 -1
- package/llms.txt +530 -80
- package/package.json +29 -2
package/dist/index.cjs
CHANGED
|
@@ -214,7 +214,7 @@ var typeScale = {
|
|
|
214
214
|
* (plankton 5.57:1 over abyss), which is the part that is not negotiable.
|
|
215
215
|
*
|
|
216
216
|
* At 13 the three badge families grew past the size of a small button and
|
|
217
|
-
* outweighed the title they accompany. See `docs/decisions
|
|
217
|
+
* outweighed the title they accompany. See `docs/decisions/`.
|
|
218
218
|
*/
|
|
219
219
|
chip: { family: "mono", size: 11.5, lineHeight: 1.4, weight: 400 },
|
|
220
220
|
/**
|
|
@@ -268,7 +268,7 @@ var control = {
|
|
|
268
268
|
* baseline; 28 would have been a fifth height that matches nothing.
|
|
269
269
|
*
|
|
270
270
|
* It does not replace `icon`. A page's primary action stays at 42; this is for
|
|
271
|
-
* a row of a table. See `docs/decisions.md` § 22.
|
|
271
|
+
* a row of a table. See `docs/decisions/0.6.md` § 22.
|
|
272
272
|
*/
|
|
273
273
|
iconSm: 32
|
|
274
274
|
};
|
|
@@ -283,6 +283,30 @@ var spacing = {
|
|
|
283
283
|
var size = {
|
|
284
284
|
/** Navigation bar height. */
|
|
285
285
|
nav: 64,
|
|
286
|
+
/**
|
|
287
|
+
* The bar when it shares the screen with a sidebar.
|
|
288
|
+
*
|
|
289
|
+
* It is not «a smaller bar because it looks better». At 64 the header of an
|
|
290
|
+
* app shell competes with the rail beside it for the same corner, and the two
|
|
291
|
+
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
292
|
+
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
293
|
+
* app of the five is denser than the four reading sites. See
|
|
294
|
+
* `docs/decisions/0.7.md` § 30.
|
|
295
|
+
*/
|
|
296
|
+
navCompact: 56,
|
|
297
|
+
/**
|
|
298
|
+
* The admin sidebar, and the rail it collapses to.
|
|
299
|
+
*
|
|
300
|
+
* They are tokens and not the consumer's `w-*` because a collapsible sidebar
|
|
301
|
+
* has to know BOTH: the layout beside it reserves one of the two, and two
|
|
302
|
+
* numbers written by hand in two files drift the first time one of them moves.
|
|
303
|
+
* A sidebar that never collapses is still just a box the layout sizes.
|
|
304
|
+
*
|
|
305
|
+
* 56 is the rail: `navCompact`'s height, so a panel's bar and its rail meet in
|
|
306
|
+
* a square corner instead of a step.
|
|
307
|
+
*/
|
|
308
|
+
sidebar: 256,
|
|
309
|
+
sidebarRail: 56,
|
|
286
310
|
/** Reading column width. */
|
|
287
311
|
content: 760,
|
|
288
312
|
/** Maximum page width. */
|
|
@@ -315,9 +339,9 @@ var gradient = {
|
|
|
315
339
|
og: `linear-gradient(145deg, ${dark.background} 55%, ${deep} 100%)`
|
|
316
340
|
},
|
|
317
341
|
light: {
|
|
318
|
-
hero: `linear-gradient(160deg, ${light.background} 60%, ${light.
|
|
319
|
-
section: `linear-gradient(150deg, ${light.surface} 0%, ${light.
|
|
320
|
-
og: `linear-gradient(145deg, ${light.background} 55%, ${light.
|
|
342
|
+
hero: `linear-gradient(160deg, ${light.background} 60%, ${light.surface} 100%)`,
|
|
343
|
+
section: `linear-gradient(150deg, ${light.surface} 0%, ${light.background} 100%)`,
|
|
344
|
+
og: `linear-gradient(145deg, ${light.background} 55%, ${light.surface} 100%)`
|
|
321
345
|
}
|
|
322
346
|
};
|
|
323
347
|
var shadow = {
|
|
@@ -452,7 +476,7 @@ var button = classVarianceAuthority.cva(
|
|
|
452
476
|
"inline-flex cursor-pointer items-center justify-center gap-step-xs whitespace-nowrap select-none",
|
|
453
477
|
"rounded-control font-sans font-medium",
|
|
454
478
|
"transition-standard",
|
|
455
|
-
"focus-
|
|
479
|
+
"focus-ring",
|
|
456
480
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
457
481
|
"[&_svg]:shrink-0"
|
|
458
482
|
],
|
|
@@ -463,7 +487,10 @@ var button = classVarianceAuthority.cva(
|
|
|
463
487
|
"bg-accent text-accent-on hover:bg-accent-hover",
|
|
464
488
|
"light:bg-brand-hull light:text-accent-on light:hover:bg-text-secondary"
|
|
465
489
|
],
|
|
466
|
-
|
|
490
|
+
// The one control whose focus ring is not biolume. It is the system's
|
|
491
|
+
// only sand fill, and a biolume ring three pixels off a sand button puts
|
|
492
|
+
// both of the brand's accents in the same glance. See `docs/decisions/0.7.md` § 37.
|
|
493
|
+
conversion: "bg-warm text-warm-on hover:bg-warm-hover focus-ring-warm",
|
|
467
494
|
secondary: [
|
|
468
495
|
"border-hairline-hover border bg-transparent text-text-primary",
|
|
469
496
|
"hover:border-accent hover:text-accent"
|
|
@@ -621,7 +648,7 @@ var CARD = [
|
|
|
621
648
|
"group block cursor-pointer",
|
|
622
649
|
CARD_SURFACE,
|
|
623
650
|
CARD_HOVER,
|
|
624
|
-
"focus-
|
|
651
|
+
"focus-ring"
|
|
625
652
|
];
|
|
626
653
|
var kebab = (name) => name.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);
|
|
627
654
|
var scales = Object.keys(typeScale);
|
|
@@ -786,7 +813,7 @@ function AccordionTrigger({
|
|
|
786
813
|
"font-sans text-lead font-medium text-text-primary",
|
|
787
814
|
"transition-standard",
|
|
788
815
|
"hover:text-accent",
|
|
789
|
-
"focus-
|
|
816
|
+
"focus-ring",
|
|
790
817
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
791
818
|
"[&[data-state=open]>svg]:rotate-180",
|
|
792
819
|
className
|
|
@@ -1022,7 +1049,7 @@ function AvatarUpload({
|
|
|
1022
1049
|
"transition-standard hover:text-accent hover:border-accent",
|
|
1023
1050
|
// Focus lives on the input, which is hidden: without this, tabbing to
|
|
1024
1051
|
// the control shows up nowhere.
|
|
1025
|
-
"has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-
|
|
1052
|
+
"has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-3 has-[:focus-visible]:outline-accent",
|
|
1026
1053
|
disabled && "pointer-events-none opacity-50"
|
|
1027
1054
|
),
|
|
1028
1055
|
children: [
|
|
@@ -1111,14 +1138,14 @@ function Calendar({
|
|
|
1111
1138
|
"rounded-chip inline-flex items-center justify-center",
|
|
1112
1139
|
"transition-standard cursor-pointer",
|
|
1113
1140
|
"hover:bg-surface-raised",
|
|
1114
|
-
"focus-
|
|
1141
|
+
"focus-ring",
|
|
1115
1142
|
"disabled:pointer-events-none disabled:opacity-50"
|
|
1116
1143
|
].join(" ");
|
|
1117
1144
|
const navigation = [
|
|
1118
1145
|
"size-8 rounded-chip inline-flex items-center justify-center",
|
|
1119
1146
|
"text-text-secondary transition-standard cursor-pointer",
|
|
1120
1147
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
1121
|
-
"focus-
|
|
1148
|
+
"focus-ring",
|
|
1122
1149
|
"disabled:pointer-events-none disabled:opacity-50"
|
|
1123
1150
|
].join(" ");
|
|
1124
1151
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1237,7 +1264,7 @@ function Checkbox({ className, ...props }) {
|
|
|
1237
1264
|
"rounded-chip border-border bg-surface size-5 shrink-0 cursor-pointer border",
|
|
1238
1265
|
"text-accent-on transition-standard",
|
|
1239
1266
|
"hover:border-hairline-hover",
|
|
1240
|
-
"focus-
|
|
1267
|
+
"focus-ring",
|
|
1241
1268
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1242
1269
|
"data-[state=checked]:border-accent data-[state=checked]:bg-accent",
|
|
1243
1270
|
"data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent",
|
|
@@ -1280,7 +1307,7 @@ function DateField({
|
|
|
1280
1307
|
"font-mono text-ui text-text-primary",
|
|
1281
1308
|
"transition-standard",
|
|
1282
1309
|
"hover:border-hairline-hover",
|
|
1283
|
-
"focus-visible:border-accent focus-
|
|
1310
|
+
"focus-visible:border-accent focus-ring",
|
|
1284
1311
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1285
1312
|
"data-[invalid]:border-error data-[invalid]:focus-visible:outline-error",
|
|
1286
1313
|
// The native indicator inherits the active theme's scheme.
|
|
@@ -1334,7 +1361,7 @@ function DialogContent({
|
|
|
1334
1361
|
"rounded-chip text-text-muted absolute top-4 right-4 flex size-8 cursor-pointer items-center justify-center",
|
|
1335
1362
|
"transition-standard",
|
|
1336
1363
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
1337
|
-
"focus-
|
|
1364
|
+
"focus-ring"
|
|
1338
1365
|
),
|
|
1339
1366
|
children: /* @__PURE__ */ jsxRuntime.jsx(Close, {})
|
|
1340
1367
|
}
|
|
@@ -1483,7 +1510,7 @@ function Input({ className, invalid = false, ...props }) {
|
|
|
1483
1510
|
"font-sans text-ui text-text-primary placeholder:text-text-muted",
|
|
1484
1511
|
"transition-standard",
|
|
1485
1512
|
"hover:border-hairline-hover",
|
|
1486
|
-
"focus-visible:border-accent focus-
|
|
1513
|
+
"focus-visible:border-accent focus-ring",
|
|
1487
1514
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1488
1515
|
"data-[invalid]:border-error data-[invalid]:focus-visible:outline-error",
|
|
1489
1516
|
"file:mr-step-sm file:border-0 file:bg-transparent file:font-sans file:text-label file:text-text-secondary",
|
|
@@ -1533,7 +1560,7 @@ function PaginationLink({ className, isActive = false, ...props }) {
|
|
|
1533
1560
|
"font-sans text-ui text-text-secondary",
|
|
1534
1561
|
"transition-standard",
|
|
1535
1562
|
"hover:bg-surface hover:text-text-primary",
|
|
1536
|
-
"focus-
|
|
1563
|
+
"focus-ring",
|
|
1537
1564
|
isActive && "bg-surface-raised text-text-primary",
|
|
1538
1565
|
className
|
|
1539
1566
|
),
|
|
@@ -1548,7 +1575,7 @@ function PaginationPrevious({ className, ...props }) {
|
|
|
1548
1575
|
] });
|
|
1549
1576
|
}
|
|
1550
1577
|
function PaginationNext({ className, ...props }) {
|
|
1551
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(PaginationLink, { "aria-label": "P\xE1gina
|
|
1578
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(PaginationLink, { "aria-label": "P\xE1gina siguiente", className: cn("gap-step-xs", className), ...props, children: [
|
|
1552
1579
|
"Siguiente",
|
|
1553
1580
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronRight, {})
|
|
1554
1581
|
] });
|
|
@@ -1618,7 +1645,7 @@ function RadioGroupItem({ className, ...props }) {
|
|
|
1618
1645
|
"rounded-pill border-border bg-surface size-5 shrink-0 cursor-pointer border",
|
|
1619
1646
|
"transition-standard",
|
|
1620
1647
|
"hover:border-hairline-hover",
|
|
1621
|
-
"focus-
|
|
1648
|
+
"focus-ring",
|
|
1622
1649
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1623
1650
|
"data-[state=checked]:border-accent",
|
|
1624
1651
|
className
|
|
@@ -1645,7 +1672,7 @@ function SelectTrigger({
|
|
|
1645
1672
|
"font-sans text-ui text-text-primary",
|
|
1646
1673
|
"transition-standard",
|
|
1647
1674
|
"hover:border-hairline-hover",
|
|
1648
|
-
"focus-visible:border-accent focus-
|
|
1675
|
+
"focus-visible:border-accent focus-ring",
|
|
1649
1676
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1650
1677
|
"data-[placeholder]:text-text-muted",
|
|
1651
1678
|
className
|
|
@@ -1795,7 +1822,7 @@ function SheetContent({ className, side, children, ...props }) {
|
|
|
1795
1822
|
"rounded-chip text-text-muted absolute top-4 right-4 flex size-8 cursor-pointer items-center justify-center",
|
|
1796
1823
|
"transition-standard",
|
|
1797
1824
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
1798
|
-
"focus-
|
|
1825
|
+
"focus-ring"
|
|
1799
1826
|
),
|
|
1800
1827
|
children: /* @__PURE__ */ jsxRuntime.jsx(Close, {})
|
|
1801
1828
|
}
|
|
@@ -1870,7 +1897,7 @@ function Switch({ className, ...props }) {
|
|
|
1870
1897
|
"rounded-pill border-border bg-surface-raised inline-flex h-6 w-11 shrink-0 cursor-pointer items-center border",
|
|
1871
1898
|
"transition-standard",
|
|
1872
1899
|
"hover:border-hairline-hover",
|
|
1873
|
-
"focus-
|
|
1900
|
+
"focus-ring",
|
|
1874
1901
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1875
1902
|
"data-[state=checked]:border-accent data-[state=checked]:bg-accent",
|
|
1876
1903
|
className
|
|
@@ -1889,7 +1916,7 @@ function Switch({ className, ...props }) {
|
|
|
1889
1916
|
);
|
|
1890
1917
|
}
|
|
1891
1918
|
function Table({ className, ...props }) {
|
|
1892
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1919
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { tabIndex: 0, className: "rounded-card border-hairline focus-ring w-full overflow-x-auto border", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1893
1920
|
"table",
|
|
1894
1921
|
{
|
|
1895
1922
|
className: cn("w-full caption-bottom border-collapse font-sans text-ui", className),
|
|
@@ -1942,7 +1969,13 @@ function TableCell({ className, ...props }) {
|
|
|
1942
1969
|
return /* @__PURE__ */ jsxRuntime.jsx("td", { className: cn("px-step-sm py-step-sm text-text-secondary align-middle", className), ...props });
|
|
1943
1970
|
}
|
|
1944
1971
|
function TableCaption({ className, ...props }) {
|
|
1945
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1972
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1973
|
+
"caption",
|
|
1974
|
+
{
|
|
1975
|
+
className: cn("px-step-sm pt-step-sm pb-step-sm text-label text-text-muted", className),
|
|
1976
|
+
...props
|
|
1977
|
+
}
|
|
1978
|
+
);
|
|
1946
1979
|
}
|
|
1947
1980
|
function Tabs({ className, ...props }) {
|
|
1948
1981
|
return /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Root, { className: cn("gap-step-md flex flex-col", className), ...props });
|
|
@@ -1971,7 +2004,7 @@ function TabsTrigger({
|
|
|
1971
2004
|
"font-sans text-label text-text-secondary",
|
|
1972
2005
|
"transition-standard",
|
|
1973
2006
|
"hover:text-text-primary",
|
|
1974
|
-
"focus-
|
|
2007
|
+
"focus-ring",
|
|
1975
2008
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1976
2009
|
"data-[state=active]:bg-surface-raised data-[state=active]:text-text-primary",
|
|
1977
2010
|
className
|
|
@@ -1988,7 +2021,7 @@ function TabsContent({
|
|
|
1988
2021
|
TabsPrimitive__namespace.Content,
|
|
1989
2022
|
{
|
|
1990
2023
|
className: cn(
|
|
1991
|
-
"focus-
|
|
2024
|
+
"focus-ring",
|
|
1992
2025
|
className
|
|
1993
2026
|
),
|
|
1994
2027
|
...props
|
|
@@ -2007,7 +2040,7 @@ function Textarea({ className, invalid = false, ...props }) {
|
|
|
2007
2040
|
"font-sans text-ui text-text-primary placeholder:text-text-muted",
|
|
2008
2041
|
"transition-standard",
|
|
2009
2042
|
"hover:border-hairline-hover",
|
|
2010
|
-
"focus-visible:border-accent focus-
|
|
2043
|
+
"focus-visible:border-accent focus-ring",
|
|
2011
2044
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
2012
2045
|
"data-[invalid]:border-error data-[invalid]:focus-visible:outline-error",
|
|
2013
2046
|
className
|
|
@@ -2062,7 +2095,7 @@ function Toast({ className, variant, children, ...props }) {
|
|
|
2062
2095
|
"rounded-chip text-text-muted absolute top-3 right-3 flex size-7 cursor-pointer items-center justify-center",
|
|
2063
2096
|
"transition-standard",
|
|
2064
2097
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
2065
|
-
"focus-
|
|
2098
|
+
"focus-ring"
|
|
2066
2099
|
),
|
|
2067
2100
|
children: /* @__PURE__ */ jsxRuntime.jsx(Close, {})
|
|
2068
2101
|
}
|
|
@@ -2202,11 +2235,20 @@ function ArticleCard({
|
|
|
2202
2235
|
" min de lectura"
|
|
2203
2236
|
] }, "lectura") : null
|
|
2204
2237
|
].filter(Boolean);
|
|
2205
|
-
return /* @__PURE__ */ jsxRuntime.jsx(CardShell, { className: cn("p-step-lg", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsxs("article", { className: "
|
|
2206
|
-
meta.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2238
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CardShell, { className: cn("p-step-lg", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsxs("article", { className: "flex flex-col h-full gap-step-sm", children: [
|
|
2239
|
+
meta.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2240
|
+
Text,
|
|
2241
|
+
{
|
|
2242
|
+
variant: "meta",
|
|
2243
|
+
tone: "muted",
|
|
2244
|
+
as: "p",
|
|
2245
|
+
className: "flex items-center gap-step-xs",
|
|
2246
|
+
children: meta.map((m, i) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-step-xs", children: [
|
|
2247
|
+
i > 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: "\xB7" }) : null,
|
|
2248
|
+
m
|
|
2249
|
+
] }, i))
|
|
2250
|
+
}
|
|
2251
|
+
) : null,
|
|
2210
2252
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2211
2253
|
Text,
|
|
2212
2254
|
{
|
|
@@ -2217,8 +2259,15 @@ function ArticleCard({
|
|
|
2217
2259
|
}
|
|
2218
2260
|
),
|
|
2219
2261
|
excerpt ? /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "ui", tone: "secondary", className: "line-clamp-2", children: excerpt }) : null,
|
|
2220
|
-
tags && tags.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
2221
|
-
(t) => tagAsChild ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2262
|
+
tags && tags.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap mt-auto gap-step-xs pt-step-sm", children: tags.map(
|
|
2263
|
+
(t) => tagAsChild ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2264
|
+
reactSlot.Slot,
|
|
2265
|
+
{
|
|
2266
|
+
className: category({ active: false }),
|
|
2267
|
+
children: tagAsChild({ tag: t, children: t })
|
|
2268
|
+
},
|
|
2269
|
+
t
|
|
2270
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(CategoryBadge, { children: t }, t)
|
|
2222
2271
|
) }) : null
|
|
2223
2272
|
] }) });
|
|
2224
2273
|
}
|
|
@@ -2304,21 +2353,21 @@ function ProgressBar({
|
|
|
2304
2353
|
}
|
|
2305
2354
|
);
|
|
2306
2355
|
}
|
|
2307
|
-
var CONTROL = "rounded-chip transition-standard cursor-pointer focus-
|
|
2356
|
+
var CONTROL = "rounded-chip transition-standard cursor-pointer focus-ring";
|
|
2308
2357
|
function SkipButton({
|
|
2309
|
-
|
|
2358
|
+
seconds,
|
|
2310
2359
|
className,
|
|
2311
2360
|
size: size2,
|
|
2312
|
-
|
|
2361
|
+
onSkip
|
|
2313
2362
|
}) {
|
|
2314
2363
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2315
2364
|
"button",
|
|
2316
2365
|
{
|
|
2317
2366
|
type: "button",
|
|
2318
|
-
onClick: () =>
|
|
2367
|
+
onClick: () => onSkip(seconds),
|
|
2319
2368
|
className: cn("text-text-muted hover:text-text-primary", CONTROL, className),
|
|
2320
|
-
"aria-label":
|
|
2321
|
-
children:
|
|
2369
|
+
"aria-label": seconds < 0 ? "Retroceder 15 segundos" : "Adelantar 15 segundos",
|
|
2370
|
+
children: seconds < 0 ? /* @__PURE__ */ jsxRuntime.jsx(GoBackSeconds, { className: size2 }) : /* @__PURE__ */ jsxRuntime.jsx(AdvanceSeconds, { className: size2 })
|
|
2322
2371
|
}
|
|
2323
2372
|
);
|
|
2324
2373
|
}
|
|
@@ -2350,8 +2399,8 @@ function SpeedButton({
|
|
|
2350
2399
|
function Volume({
|
|
2351
2400
|
size: size2,
|
|
2352
2401
|
width,
|
|
2353
|
-
|
|
2354
|
-
|
|
2402
|
+
muted,
|
|
2403
|
+
volume,
|
|
2355
2404
|
onMute,
|
|
2356
2405
|
onVolumeChange
|
|
2357
2406
|
}) {
|
|
@@ -2362,8 +2411,8 @@ function Volume({
|
|
|
2362
2411
|
type: "button",
|
|
2363
2412
|
onClick: onMute,
|
|
2364
2413
|
className: cn("text-text-muted hover:text-text-primary p-1", CONTROL),
|
|
2365
|
-
"aria-label":
|
|
2366
|
-
children:
|
|
2414
|
+
"aria-label": muted ? "Activar sonido" : "Silenciar",
|
|
2415
|
+
children: muted || volume === 0 ? /* @__PURE__ */ jsxRuntime.jsx(VolumeMuted, { className: size2 }) : /* @__PURE__ */ jsxRuntime.jsx(VolumeOn, { className: size2 })
|
|
2367
2416
|
}
|
|
2368
2417
|
),
|
|
2369
2418
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2373,20 +2422,20 @@ function Volume({
|
|
|
2373
2422
|
min: "0",
|
|
2374
2423
|
max: "1",
|
|
2375
2424
|
step: "0.1",
|
|
2376
|
-
value:
|
|
2425
|
+
value: muted ? 0 : volume,
|
|
2377
2426
|
onChange: onVolumeChange,
|
|
2378
2427
|
className: cn(
|
|
2379
2428
|
"bg-surface-raised rounded-pill h-1 cursor-pointer appearance-none",
|
|
2380
2429
|
"[accent-color:var(--color-accent)]",
|
|
2381
2430
|
width
|
|
2382
2431
|
),
|
|
2383
|
-
"aria-label": "
|
|
2432
|
+
"aria-label": "Volumen"
|
|
2384
2433
|
}
|
|
2385
2434
|
)
|
|
2386
2435
|
] });
|
|
2387
2436
|
}
|
|
2388
|
-
function PlayIcon({ className,
|
|
2389
|
-
if (
|
|
2437
|
+
function PlayIcon({ className, loading, error, playing }) {
|
|
2438
|
+
if (loading) return /* @__PURE__ */ jsxRuntime.jsx(Spinner, { className: cn("motion-safe:animate-spin", className) });
|
|
2390
2439
|
if (error) return /* @__PURE__ */ jsxRuntime.jsx(Retry, { className });
|
|
2391
2440
|
if (playing) return /* @__PURE__ */ jsxRuntime.jsx(Pause, { className });
|
|
2392
2441
|
return /* @__PURE__ */ jsxRuntime.jsx(Play, { className });
|
|
@@ -2406,7 +2455,7 @@ function PlayButton({
|
|
|
2406
2455
|
onClick: onToggle,
|
|
2407
2456
|
className: cn(
|
|
2408
2457
|
"text-accent-on transition-standard cursor-pointer",
|
|
2409
|
-
"focus-
|
|
2458
|
+
"focus-ring",
|
|
2410
2459
|
state.error ? "bg-error hover:bg-error/80" : "bg-accent hover:bg-accent-hover",
|
|
2411
2460
|
className
|
|
2412
2461
|
),
|
|
@@ -2575,7 +2624,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2575
2624
|
);
|
|
2576
2625
|
const progress = duration > 0 ? currentTime / duration * 100 : 0;
|
|
2577
2626
|
const playLabel = hasError ? "Reintentar" : isPlaying ? "Pausar" : "Reproducir";
|
|
2578
|
-
const playState = {
|
|
2627
|
+
const playState = { loading: isLoading, error: hasError, playing: isPlaying };
|
|
2579
2628
|
const pointer = {
|
|
2580
2629
|
onPointerDown: handlePointerDown,
|
|
2581
2630
|
onPointerMove: handlePointerMove,
|
|
@@ -2616,7 +2665,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2616
2665
|
] })
|
|
2617
2666
|
] }),
|
|
2618
2667
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
2619
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2668
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: -15, className: "p-1.5", size: "w-5 h-5", onSkip: skip }),
|
|
2620
2669
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2621
2670
|
PlayButton,
|
|
2622
2671
|
{
|
|
@@ -2627,7 +2676,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2627
2676
|
...playState
|
|
2628
2677
|
}
|
|
2629
2678
|
),
|
|
2630
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2679
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: 15, className: "p-1.5", size: "w-5 h-5", onSkip: skip }),
|
|
2631
2680
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2632
2681
|
SpeedButton,
|
|
2633
2682
|
{
|
|
@@ -2656,7 +2705,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2656
2705
|
] }),
|
|
2657
2706
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-step-md", children: /* @__PURE__ */ jsxRuntime.jsx(ProgressBar, { height: "h-1.5", knob: 14, progress, ...pointer }) }),
|
|
2658
2707
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-sm flex items-center", children: [
|
|
2659
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2708
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: -15, className: "p-2", size: "w-6 h-6", onSkip: skip }),
|
|
2660
2709
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2661
2710
|
PlayButton,
|
|
2662
2711
|
{
|
|
@@ -2668,7 +2717,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2668
2717
|
...playState
|
|
2669
2718
|
}
|
|
2670
2719
|
),
|
|
2671
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2720
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: 15, className: "p-2", size: "w-6 h-6", onSkip: skip }),
|
|
2672
2721
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-sm ml-auto flex items-center", children: [
|
|
2673
2722
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2674
2723
|
SpeedButton,
|
|
@@ -2683,8 +2732,8 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2683
2732
|
{
|
|
2684
2733
|
size: "w-4 h-4",
|
|
2685
2734
|
width: "w-16",
|
|
2686
|
-
|
|
2687
|
-
|
|
2735
|
+
muted: isMuted,
|
|
2736
|
+
volume,
|
|
2688
2737
|
onMute: toggleMute,
|
|
2689
2738
|
onVolumeChange: handleVolumeChange
|
|
2690
2739
|
}
|
|
@@ -2706,7 +2755,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2706
2755
|
] }),
|
|
2707
2756
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
2708
2757
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
2709
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2758
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: -15, className: "p-1.5", size: "w-5 h-5", onSkip: skip }),
|
|
2710
2759
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2711
2760
|
PlayButton,
|
|
2712
2761
|
{
|
|
@@ -2717,7 +2766,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2717
2766
|
...playState
|
|
2718
2767
|
}
|
|
2719
2768
|
),
|
|
2720
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2769
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: 15, className: "p-1.5", size: "w-5 h-5", onSkip: skip })
|
|
2721
2770
|
] }),
|
|
2722
2771
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2723
2772
|
SpeedButton,
|
|
@@ -2742,7 +2791,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2742
2791
|
] }),
|
|
2743
2792
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
2744
2793
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-xs flex items-center", children: [
|
|
2745
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2794
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: -15, className: "p-2", size: "w-5 h-5", onSkip: skip }),
|
|
2746
2795
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2747
2796
|
PlayButton,
|
|
2748
2797
|
{
|
|
@@ -2753,7 +2802,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2753
2802
|
...playState
|
|
2754
2803
|
}
|
|
2755
2804
|
),
|
|
2756
|
-
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, {
|
|
2805
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkipButton, { seconds: 15, className: "p-2", size: "w-5 h-5", onSkip: skip })
|
|
2757
2806
|
] }),
|
|
2758
2807
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-sm flex items-center", children: [
|
|
2759
2808
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2769,8 +2818,8 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2769
2818
|
{
|
|
2770
2819
|
size: "w-5 h-5",
|
|
2771
2820
|
width: "w-20",
|
|
2772
|
-
|
|
2773
|
-
|
|
2821
|
+
muted: isMuted,
|
|
2822
|
+
volume,
|
|
2774
2823
|
onMute: toggleMute,
|
|
2775
2824
|
onVolumeChange: handleVolumeChange
|
|
2776
2825
|
}
|
|
@@ -2796,7 +2845,7 @@ function Blockquote({ children, author, source, className, ...props }) {
|
|
|
2796
2845
|
}
|
|
2797
2846
|
);
|
|
2798
2847
|
}
|
|
2799
|
-
var LINK = "transition-standard hover:text-accent focus-
|
|
2848
|
+
var LINK = "transition-standard hover:text-accent focus-ring rounded-chip cursor-pointer";
|
|
2800
2849
|
function Breadcrumb({
|
|
2801
2850
|
items,
|
|
2802
2851
|
homeHref = "/",
|
|
@@ -2857,7 +2906,7 @@ function CodeBlock({ children, language, copyText, className, ...props }) {
|
|
|
2857
2906
|
"gap-step-xs rounded-chip flex items-center px-2 py-1",
|
|
2858
2907
|
"text-label font-mono text-text-muted cursor-pointer",
|
|
2859
2908
|
"transition-standard hover:bg-surface hover:text-text-primary",
|
|
2860
|
-
"focus-
|
|
2909
|
+
"focus-ring"
|
|
2861
2910
|
),
|
|
2862
2911
|
children: [
|
|
2863
2912
|
copiado ? /* @__PURE__ */ jsxRuntime.jsx(Check, { className: "text-accent" }) : /* @__PURE__ */ jsxRuntime.jsx(Copy, {}),
|
|
@@ -2967,20 +3016,32 @@ function MascotFace({
|
|
|
2967
3016
|
);
|
|
2968
3017
|
}
|
|
2969
3018
|
var FACE = "w-[66px] max-w-none";
|
|
2970
|
-
function EmptyState({
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
3019
|
+
function EmptyState(props) {
|
|
3020
|
+
if (props.variant === "inline") {
|
|
3021
|
+
const { variant: variant2, title: title2, description: description2, action: action2, icon, className: className2, ...rest2 } = props;
|
|
3022
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3023
|
+
"div",
|
|
3024
|
+
{
|
|
3025
|
+
className: cn(
|
|
3026
|
+
"py-step-lg px-step-md gap-step-xs flex flex-col items-center text-center",
|
|
3027
|
+
className2
|
|
3028
|
+
),
|
|
3029
|
+
...rest2,
|
|
3030
|
+
children: [
|
|
3031
|
+
icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-muted shrink-0", children: icon }) : null,
|
|
3032
|
+
/* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "ui", tone: "muted", as: "p", className: "max-w-measure", children: title2 }),
|
|
3033
|
+
description2 ? /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "label", tone: "muted", as: "p", className: "max-w-measure font-normal", children: description2 }) : null,
|
|
3034
|
+
action2 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-step-xs", children: action2 }) : null
|
|
3035
|
+
]
|
|
3036
|
+
}
|
|
3037
|
+
);
|
|
3038
|
+
}
|
|
3039
|
+
const { variant, title, description, action, expression, basePath, className, ...rest } = props;
|
|
2979
3040
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2980
3041
|
"div",
|
|
2981
3042
|
{
|
|
2982
3043
|
className: cn(CARD_SURFACE, "p-step-lg gap-step-sm flex flex-col items-center text-center", className),
|
|
2983
|
-
...
|
|
3044
|
+
...rest,
|
|
2984
3045
|
children: [
|
|
2985
3046
|
/* @__PURE__ */ jsxRuntime.jsx(MascotFace, { expression, className: FACE, basePath }),
|
|
2986
3047
|
/* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "ui", as: "p", className: "font-medium", children: title }),
|
|
@@ -3169,7 +3230,7 @@ function EventCalendar({
|
|
|
3169
3230
|
] }),
|
|
3170
3231
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-sm flex flex-wrap items-center", children: [
|
|
3171
3232
|
/* @__PURE__ */ jsxRuntime.jsx(Button, { type: "submit", size: "sm", children: editing ? "Guardar" : "A\xF1adir" }),
|
|
3172
|
-
editing ? /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "tertiary", size: "sm", onClick: cancel, children: "./
|
|
3233
|
+
editing ? /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", variant: "tertiary", size: "sm", onClick: cancel, children: "./cancelar" }) : null
|
|
3173
3234
|
] })
|
|
3174
3235
|
] }) : null
|
|
3175
3236
|
]
|
|
@@ -3177,73 +3238,129 @@ function EventCalendar({
|
|
|
3177
3238
|
)
|
|
3178
3239
|
] });
|
|
3179
3240
|
}
|
|
3180
|
-
function
|
|
3181
|
-
social,
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3241
|
+
function SocialRow({ social }) {
|
|
3242
|
+
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-wrap items-center gap-[18px]", children: social.map((socialLink) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3243
|
+
"a",
|
|
3244
|
+
{
|
|
3245
|
+
href: socialLink.href,
|
|
3246
|
+
"aria-label": socialLink.label,
|
|
3247
|
+
className: cn(
|
|
3248
|
+
"text-text-muted hover:text-accent transition-standard block cursor-pointer text-[19px]",
|
|
3249
|
+
"rounded-chip focus-ring"
|
|
3250
|
+
),
|
|
3251
|
+
children: socialLink.icon
|
|
3252
|
+
}
|
|
3253
|
+
) }, socialLink.href)) });
|
|
3254
|
+
}
|
|
3255
|
+
function Signature({
|
|
3256
|
+
year,
|
|
3257
|
+
href,
|
|
3258
|
+
className
|
|
3187
3259
|
}) {
|
|
3188
|
-
const
|
|
3260
|
+
const domain = href ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3261
|
+
"a",
|
|
3262
|
+
{
|
|
3263
|
+
href,
|
|
3264
|
+
className: "text-accent hover:text-text-primary transition-standard rounded-chip focus-ring cursor-pointer",
|
|
3265
|
+
children: naming.domain
|
|
3266
|
+
}
|
|
3267
|
+
) : naming.domain;
|
|
3268
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Text, { variant: "meta", tone: "muted", as: "p", className: cn("shrink-0", className), children: [
|
|
3189
3269
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { "aria-hidden": "true", className: "text-accent", children: [
|
|
3190
3270
|
"$",
|
|
3191
3271
|
" "
|
|
3192
3272
|
] }),
|
|
3193
3273
|
"cd ~/",
|
|
3194
|
-
|
|
3274
|
+
domain,
|
|
3195
3275
|
"/",
|
|
3196
3276
|
year,
|
|
3197
3277
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3198
3278
|
"span",
|
|
3199
3279
|
{
|
|
3200
3280
|
"aria-hidden": "true",
|
|
3201
|
-
className: "bg-accent motion-safe:
|
|
3281
|
+
className: "bg-accent motion-safe:pulse-accent rounded-pill ml-1 inline-block h-[1em] w-[2px] align-middle"
|
|
3202
3282
|
}
|
|
3203
3283
|
)
|
|
3204
3284
|
] });
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3285
|
+
}
|
|
3286
|
+
function Shell({
|
|
3287
|
+
className,
|
|
3288
|
+
contentClassName,
|
|
3289
|
+
children,
|
|
3290
|
+
...props
|
|
3291
|
+
}) {
|
|
3292
|
+
return /* @__PURE__ */ jsxRuntime.jsx("footer", { className: cn("border-hairline w-full border-t", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3293
|
+
"div",
|
|
3294
|
+
{
|
|
3295
|
+
className: cn("max-w-wide px-step-md py-step-xl mx-auto flex flex-col", contentClassName),
|
|
3296
|
+
children
|
|
3297
|
+
}
|
|
3298
|
+
) });
|
|
3299
|
+
}
|
|
3300
|
+
function Footer({
|
|
3301
|
+
variant,
|
|
3302
|
+
columns,
|
|
3303
|
+
description,
|
|
3304
|
+
action,
|
|
3305
|
+
linkAsChild,
|
|
3306
|
+
social,
|
|
3307
|
+
brand: brand2,
|
|
3308
|
+
year = (/* @__PURE__ */ new Date()).getFullYear(),
|
|
3309
|
+
signatureHref,
|
|
3310
|
+
className,
|
|
3311
|
+
...rest
|
|
3312
|
+
}) {
|
|
3313
|
+
if (variant === "full") {
|
|
3314
|
+
const link = (href, external, content) => {
|
|
3315
|
+
const classes = cn(
|
|
3316
|
+
"font-mono text-meta text-text-secondary hover:text-accent transition-standard cursor-pointer",
|
|
3317
|
+
"rounded-chip focus-ring"
|
|
3318
|
+
);
|
|
3319
|
+
const inner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3320
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-text-muted", children: "./" }),
|
|
3321
|
+
content
|
|
3322
|
+
] });
|
|
3323
|
+
if (linkAsChild) {
|
|
3324
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { className: classes, children: linkAsChild({ href, children: inner }) });
|
|
3325
|
+
}
|
|
3326
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3212
3327
|
"a",
|
|
3213
3328
|
{
|
|
3214
|
-
href
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
"rounded-chip focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"
|
|
3219
|
-
),
|
|
3220
|
-
children: socialLink.icon
|
|
3329
|
+
href,
|
|
3330
|
+
className: classes,
|
|
3331
|
+
...external ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
3332
|
+
children: inner
|
|
3221
3333
|
}
|
|
3222
|
-
)
|
|
3223
|
-
|
|
3334
|
+
);
|
|
3335
|
+
};
|
|
3336
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Shell, { className, ...rest, children: [
|
|
3337
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-xl flex flex-col md:flex-row md:justify-between", children: [
|
|
3338
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-md flex max-w-xs flex-col", children: [
|
|
3339
|
+
brand2,
|
|
3340
|
+
description ? /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "ui", tone: "secondary", as: "p", children: description }) : null,
|
|
3341
|
+
social && social.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(SocialRow, { social }) : null,
|
|
3342
|
+
action
|
|
3343
|
+
] }),
|
|
3344
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "gap-step-lg grid grid-cols-2 sm:grid-cols-3", children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-sm flex flex-col", children: [
|
|
3345
|
+
/* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "eyebrow", tone: "muted", as: "h3", children: column.title }),
|
|
3346
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "gap-step-xs flex flex-col", children: column.links.map((columnLink) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: link(columnLink.href, columnLink.external, columnLink.label) }, columnLink.href)) })
|
|
3347
|
+
] }, column.title)) })
|
|
3348
|
+
] }),
|
|
3349
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-hairline mt-step-xl pt-step-lg border-t", children: /* @__PURE__ */ jsxRuntime.jsx(Signature, { year, href: signatureHref, className: "text-center sm:text-right" }) })
|
|
3350
|
+
] });
|
|
3351
|
+
}
|
|
3352
|
+
const rows = [
|
|
3353
|
+
brand2 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: brand2 }, "brand") : null,
|
|
3354
|
+
social && social.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(SocialRow, { social }, "social") : null
|
|
3224
3355
|
].filter(Boolean);
|
|
3225
|
-
const [first, ...
|
|
3226
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
3356
|
+
const [first, ...others] = rows;
|
|
3357
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Shell, { className, contentClassName: "gap-step-lg", ...rest, children: [
|
|
3227
3358
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-md flex flex-wrap items-center", children: [
|
|
3228
3359
|
first ?? null,
|
|
3229
|
-
|
|
3360
|
+
/* @__PURE__ */ jsxRuntime.jsx(Signature, { year, href: signatureHref, className: "ml-auto" })
|
|
3230
3361
|
] }),
|
|
3231
|
-
|
|
3232
|
-
] })
|
|
3233
|
-
}
|
|
3234
|
-
function FooterLink({ asChild = false, className, ...props }) {
|
|
3235
|
-
const Root18 = asChild ? reactSlot.Slot : "a";
|
|
3236
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3237
|
-
Root18,
|
|
3238
|
-
{
|
|
3239
|
-
className: cn(
|
|
3240
|
-
"font-mono text-meta text-text-secondary hover:text-accent transition-standard cursor-pointer",
|
|
3241
|
-
"rounded-chip focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",
|
|
3242
|
-
className
|
|
3243
|
-
),
|
|
3244
|
-
...props
|
|
3245
|
-
}
|
|
3246
|
-
);
|
|
3362
|
+
others
|
|
3363
|
+
] });
|
|
3247
3364
|
}
|
|
3248
3365
|
function Hero({
|
|
3249
3366
|
title,
|
|
@@ -3351,7 +3468,7 @@ function LinkRow({
|
|
|
3351
3468
|
}
|
|
3352
3469
|
);
|
|
3353
3470
|
}
|
|
3354
|
-
function Nav({ brand: brand2, children, actions, className, ...props }) {
|
|
3471
|
+
function Nav({ brand: brand2, children, actions, size: size2 = "default", className, ...props }) {
|
|
3355
3472
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3356
3473
|
"header",
|
|
3357
3474
|
{
|
|
@@ -3364,14 +3481,23 @@ function Nav({ brand: brand2, children, actions, className, ...props }) {
|
|
|
3364
3481
|
className
|
|
3365
3482
|
),
|
|
3366
3483
|
...props,
|
|
3367
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3484
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3485
|
+
"div",
|
|
3486
|
+
{
|
|
3487
|
+
className: cn(
|
|
3488
|
+
"max-w-wide px-step-md gap-step-lg mx-auto flex items-center",
|
|
3489
|
+
size2 === "compact" ? "h-nav-compact" : "h-nav"
|
|
3490
|
+
),
|
|
3491
|
+
children: [
|
|
3492
|
+
brand2 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: brand2 }) : null,
|
|
3493
|
+
children ? /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "Principal", className: "ml-auto min-w-0", children: /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "gap-step-md flex items-center", children: [
|
|
3494
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-text-muted font-mono text-meta select-none", children: "~/" }),
|
|
3495
|
+
children
|
|
3496
|
+
] }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
|
|
3497
|
+
actions ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "gap-step-sm flex shrink-0 items-center", children: actions }) : null
|
|
3498
|
+
]
|
|
3499
|
+
}
|
|
3500
|
+
)
|
|
3375
3501
|
}
|
|
3376
3502
|
);
|
|
3377
3503
|
}
|
|
@@ -3383,7 +3509,7 @@ function NavItem({ active = false, asChild = false, className, children, ...prop
|
|
|
3383
3509
|
"aria-current": active ? "page" : void 0,
|
|
3384
3510
|
className: cn(
|
|
3385
3511
|
"font-mono text-meta transition-standard cursor-pointer",
|
|
3386
|
-
"rounded-chip focus-
|
|
3512
|
+
"rounded-chip focus-ring",
|
|
3387
3513
|
active ? "text-accent underline decoration-1 underline-offset-4" : "text-text-secondary hover:text-accent",
|
|
3388
3514
|
className
|
|
3389
3515
|
),
|
|
@@ -3391,7 +3517,7 @@ function NavItem({ active = false, asChild = false, className, children, ...prop
|
|
|
3391
3517
|
children: [
|
|
3392
3518
|
active ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-accent", children: "[" }) : null,
|
|
3393
3519
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: active ? "text-accent" : "text-text-muted", children: "./" }),
|
|
3394
|
-
children,
|
|
3520
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slottable, { children }),
|
|
3395
3521
|
active ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-accent", children: "]" }) : null
|
|
3396
3522
|
]
|
|
3397
3523
|
}
|
|
@@ -3402,14 +3528,14 @@ function NewsletterForm({
|
|
|
3402
3528
|
description,
|
|
3403
3529
|
state = "idle",
|
|
3404
3530
|
onSubmitEmail,
|
|
3405
|
-
successMessage = "Ya est\xE1s dentro. Te llega un
|
|
3406
|
-
errorMessage = "No se pudo suscribir ese
|
|
3531
|
+
successMessage = "Ya est\xE1s dentro. Te llega un correo cada dos semanas, y nada m\xE1s.",
|
|
3532
|
+
errorMessage = "No se pudo suscribir ese correo. Rev\xEDsalo y vuelve a intentar.",
|
|
3407
3533
|
disclaimer,
|
|
3408
3534
|
expression,
|
|
3409
3535
|
basePath,
|
|
3410
3536
|
submitLabel = "Suscribirme",
|
|
3411
3537
|
placeholder = "tu@email.dev",
|
|
3412
|
-
fieldLabel = "
|
|
3538
|
+
fieldLabel = "Correo electr\xF3nico",
|
|
3413
3539
|
nameField = false,
|
|
3414
3540
|
nameLabel = "Nombre",
|
|
3415
3541
|
namePlaceholder = "C\xF3mo te llamas",
|
|
@@ -3605,70 +3731,11 @@ function ScrollingProgressBar({
|
|
|
3605
3731
|
}
|
|
3606
3732
|
);
|
|
3607
3733
|
}
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
children,
|
|
3614
|
-
...props
|
|
3615
|
-
}) {
|
|
3616
|
-
const Root18 = asChild ? reactSlot.Slot : "a";
|
|
3617
|
-
return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3618
|
-
Root18,
|
|
3619
|
-
{
|
|
3620
|
-
"aria-current": active ? "page" : void 0,
|
|
3621
|
-
className: cn(
|
|
3622
|
-
"rounded-chip px-step-sm gap-step-xs flex cursor-pointer items-center py-1.5",
|
|
3623
|
-
"font-mono text-meta transition-standard",
|
|
3624
|
-
"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",
|
|
3625
|
-
// The active item is `surfaceRaised` with primary ink, same as
|
|
3626
|
-
// `TabsTrigger`. NOT biolume: `tokens.ts` says so explicitly — light
|
|
3627
|
-
// accent passes over background and over surface, but over
|
|
3628
|
-
// surfaceRaised it measures 4.2 and is not a text color there. The
|
|
3629
|
-
// accent stays on the `▸`, which is decorative and gets the 3:1
|
|
3630
|
-
// threshold.
|
|
3631
|
-
active ? "bg-surface-raised text-text-primary" : "text-text-secondary hover:text-text-primary hover:bg-surface-raised",
|
|
3632
|
-
className
|
|
3633
|
-
),
|
|
3634
|
-
...props,
|
|
3635
|
-
children: [
|
|
3636
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: active ? "text-accent" : "text-text-muted", children: "\u25B8" }),
|
|
3637
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate", children }),
|
|
3638
|
-
badge2 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-text-muted shrink-0", children: badge2 }) : null
|
|
3639
|
-
]
|
|
3640
|
-
}
|
|
3641
|
-
) });
|
|
3642
|
-
}
|
|
3643
|
-
function SidebarNav({
|
|
3644
|
-
title,
|
|
3645
|
-
version,
|
|
3646
|
-
branch,
|
|
3647
|
-
children,
|
|
3648
|
-
className,
|
|
3649
|
-
...props
|
|
3650
|
-
}) {
|
|
3651
|
-
const footer = [version, branch].filter(Boolean);
|
|
3652
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3653
|
-
"nav",
|
|
3654
|
-
{
|
|
3655
|
-
"aria-label": typeof title === "string" ? title : "Administraci\xF3n",
|
|
3656
|
-
className: cn(
|
|
3657
|
-
"border-hairline bg-surface p-step-sm gap-step-sm flex h-full flex-col border-r",
|
|
3658
|
-
className
|
|
3659
|
-
),
|
|
3660
|
-
...props,
|
|
3661
|
-
children: [
|
|
3662
|
-
title ? /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "eyebrow", tone: "muted", as: "p", className: "px-step-sm", children: title }) : null,
|
|
3663
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "gap-0.5 flex flex-1 flex-col", children }),
|
|
3664
|
-
footer.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "meta", tone: "muted", as: "p", className: "border-hairline px-step-sm pt-step-sm border-t", children: footer.map((p, i) => /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
3665
|
-
i > 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: " \xB7 " }) : null,
|
|
3666
|
-
p
|
|
3667
|
-
] }, i)) }) : null
|
|
3668
|
-
]
|
|
3669
|
-
}
|
|
3670
|
-
);
|
|
3671
|
-
}
|
|
3734
|
+
var DELTA = {
|
|
3735
|
+
up: { glyph: ChevronUp, label: "sube" },
|
|
3736
|
+
down: { glyph: ChevronDown, label: "baja" },
|
|
3737
|
+
flat: { glyph: Minus, label: "sin cambio" }
|
|
3738
|
+
};
|
|
3672
3739
|
function Stat({
|
|
3673
3740
|
value,
|
|
3674
3741
|
label,
|
|
@@ -3676,30 +3743,52 @@ function Stat({
|
|
|
3676
3743
|
progress,
|
|
3677
3744
|
icon,
|
|
3678
3745
|
description,
|
|
3746
|
+
delta,
|
|
3747
|
+
spark,
|
|
3679
3748
|
className,
|
|
3680
3749
|
...props
|
|
3681
3750
|
}) {
|
|
3751
|
+
const DeltaGlyph = delta ? DELTA[delta.direction].glyph : null;
|
|
3682
3752
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(CARD_SURFACE, "p-step-lg gap-step-xs flex flex-col", className), ...props, children: [
|
|
3683
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3753
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-step-sm flex items-start justify-between", children: [
|
|
3754
|
+
/* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "eyebrow", tone: "muted", as: "p", className: "min-w-0", children: label }),
|
|
3684
3755
|
icon ? (
|
|
3685
3756
|
// `aria-hidden` is not needed: the system's glyphs already carry it.
|
|
3686
|
-
//
|
|
3687
|
-
//
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3757
|
+
// The circle is a SURFACE — the tint at 10 %, same as an alert's — and
|
|
3758
|
+
// the colour stays on the glyph, which is § 4b and also what keeps it
|
|
3759
|
+
// on the 3:1 graphical threshold instead of text's 4.5.
|
|
3760
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3761
|
+
"span",
|
|
3762
|
+
{
|
|
3763
|
+
className: cn(
|
|
3764
|
+
"size-control-icon-sm text-ui flex shrink-0 items-center justify-center rounded-full",
|
|
3765
|
+
tone === "neutral" ? "bg-accent/10 text-accent" : "bg-warm/10 text-warm"
|
|
3766
|
+
),
|
|
3767
|
+
children: icon
|
|
3768
|
+
}
|
|
3769
|
+
)
|
|
3770
|
+
) : null
|
|
3691
3771
|
] }),
|
|
3692
|
-
/* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "stat", as: "p", tone: tone === "
|
|
3772
|
+
/* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "stat", as: "p", tone: tone === "neutral" ? "primary" : "warm", children: value }),
|
|
3773
|
+
delta && DeltaGlyph ? /* @__PURE__ */ jsxRuntime.jsxs(Text, { variant: "label", tone: "secondary", as: "p", className: "gap-step-xs flex items-center", children: [
|
|
3774
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sr-only", children: [
|
|
3775
|
+
DELTA[delta.direction].label,
|
|
3776
|
+
" "
|
|
3777
|
+
] }),
|
|
3778
|
+
/* @__PURE__ */ jsxRuntime.jsx(DeltaGlyph, { className: "shrink-0" }),
|
|
3779
|
+
delta.value
|
|
3780
|
+
] }) : null,
|
|
3693
3781
|
description ? /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "ui", tone: "secondary", as: "p", children: description }) : null,
|
|
3694
3782
|
typeof progress === "number" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3695
3783
|
Progress,
|
|
3696
3784
|
{
|
|
3697
3785
|
value: progress,
|
|
3698
|
-
tone: tone === "
|
|
3786
|
+
tone: tone === "neutral" ? "accent" : "warm",
|
|
3699
3787
|
label: `${label}: ${progress}%`,
|
|
3700
3788
|
className: "mt-step-sm"
|
|
3701
3789
|
}
|
|
3702
|
-
) : null
|
|
3790
|
+
) : null,
|
|
3791
|
+
spark ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto pt-step-md", children: spark }) : null
|
|
3703
3792
|
] });
|
|
3704
3793
|
}
|
|
3705
3794
|
function TalkCard({
|
|
@@ -3761,7 +3850,7 @@ function TalkCard({
|
|
|
3761
3850
|
return /* @__PURE__ */ jsxRuntime.jsx(CardShell, { className: cn("p-step-lg", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx("article", { className: "gap-step-sm flex h-full flex-col", children: body }) });
|
|
3762
3851
|
}
|
|
3763
3852
|
function ThemeToggle({
|
|
3764
|
-
label = "Cambiar de
|
|
3853
|
+
label = "Cambiar de tema",
|
|
3765
3854
|
onThemeChange,
|
|
3766
3855
|
variant = "secondary",
|
|
3767
3856
|
size: size2 = "icon",
|
|
@@ -3805,7 +3894,7 @@ function TableOfContents({
|
|
|
3805
3894
|
const classes = cn(
|
|
3806
3895
|
"px-step-sm -ml-px block border-l",
|
|
3807
3896
|
"font-sans text-label transition-standard",
|
|
3808
|
-
"focus-
|
|
3897
|
+
"focus-ring",
|
|
3809
3898
|
"cursor-pointer",
|
|
3810
3899
|
item2.nested && "pl-step-lg",
|
|
3811
3900
|
"border-transparent text-text-secondary hover:text-text-primary",
|
|
@@ -3875,7 +3964,7 @@ function Logo({
|
|
|
3875
3964
|
] });
|
|
3876
3965
|
}
|
|
3877
3966
|
|
|
3878
|
-
// src/
|
|
3967
|
+
// src/social/index.tsx
|
|
3879
3968
|
var social_exports = {};
|
|
3880
3969
|
__export(social_exports, {
|
|
3881
3970
|
Discord: () => Discord,
|
|
@@ -3885,61 +3974,149 @@ __export(social_exports, {
|
|
|
3885
3974
|
LinkedIn: () => LinkedIn,
|
|
3886
3975
|
Newsletter: () => Newsletter,
|
|
3887
3976
|
Rss: () => Rss,
|
|
3977
|
+
Website: () => Website,
|
|
3888
3978
|
X: () => X,
|
|
3889
3979
|
YouTube: () => YouTube
|
|
3890
3980
|
});
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3981
|
+
|
|
3982
|
+
// src/social/data.ts
|
|
3983
|
+
var SOCIAL_STROKE_WIDTH = 1.6;
|
|
3984
|
+
var SOCIAL_VIEW_BOX = "0 0 24 24";
|
|
3985
|
+
var gitHubGlyph = {
|
|
3986
|
+
kind: "brand",
|
|
3987
|
+
shapes: [
|
|
3894
3988
|
{
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3989
|
+
tag: "path",
|
|
3990
|
+
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"
|
|
3991
|
+
}
|
|
3992
|
+
]
|
|
3993
|
+
};
|
|
3994
|
+
var linkedInGlyph = {
|
|
3995
|
+
kind: "brand",
|
|
3996
|
+
shapes: [
|
|
3997
|
+
{
|
|
3998
|
+
tag: "path",
|
|
3999
|
+
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"
|
|
4000
|
+
}
|
|
4001
|
+
]
|
|
4002
|
+
};
|
|
4003
|
+
var xGlyph = {
|
|
4004
|
+
kind: "brand",
|
|
4005
|
+
shapes: [
|
|
4006
|
+
{
|
|
4007
|
+
tag: "path",
|
|
4008
|
+
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"
|
|
4009
|
+
}
|
|
4010
|
+
]
|
|
4011
|
+
};
|
|
4012
|
+
var instagramGlyph = {
|
|
4013
|
+
kind: "brand",
|
|
4014
|
+
shapes: [
|
|
4015
|
+
{
|
|
4016
|
+
tag: "path",
|
|
4017
|
+
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"
|
|
3903
4018
|
}
|
|
4019
|
+
]
|
|
4020
|
+
};
|
|
4021
|
+
var discordGlyph = {
|
|
4022
|
+
kind: "brand",
|
|
4023
|
+
shapes: [
|
|
4024
|
+
{
|
|
4025
|
+
tag: "path",
|
|
4026
|
+
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"
|
|
4027
|
+
}
|
|
4028
|
+
]
|
|
4029
|
+
};
|
|
4030
|
+
var youTubeGlyph = {
|
|
4031
|
+
kind: "brand",
|
|
4032
|
+
shapes: [
|
|
4033
|
+
{
|
|
4034
|
+
tag: "path",
|
|
4035
|
+
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"
|
|
4036
|
+
}
|
|
4037
|
+
]
|
|
4038
|
+
};
|
|
4039
|
+
var rssGlyph = {
|
|
4040
|
+
kind: "functional",
|
|
4041
|
+
shapes: [
|
|
4042
|
+
{ tag: "path", d: "M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16" },
|
|
4043
|
+
{ tag: "circle", cx: 5, cy: 19, r: 1.6, solid: true }
|
|
4044
|
+
]
|
|
4045
|
+
};
|
|
4046
|
+
var emailGlyph = {
|
|
4047
|
+
kind: "functional",
|
|
4048
|
+
shapes: [
|
|
4049
|
+
{ tag: "rect", x: 2.75, y: 4.75, width: 18.5, height: 14.5, rx: 2 },
|
|
4050
|
+
{ tag: "path", d: "m3.5 7.5 7.4 5.2a2 2 0 0 0 2.2 0l7.4-5.2" }
|
|
4051
|
+
]
|
|
4052
|
+
};
|
|
4053
|
+
var newsletterGlyph = {
|
|
4054
|
+
kind: "functional",
|
|
4055
|
+
shapes: [
|
|
4056
|
+
{ tag: "path", d: "M18 8.5a6 6 0 1 0-12 0c0 5-2 6.5-2 6.5h16s-2-1.5-2-6.5" },
|
|
4057
|
+
{ tag: "path", d: "M13.7 19a2 2 0 0 1-3.4 0" }
|
|
4058
|
+
]
|
|
4059
|
+
};
|
|
4060
|
+
var websiteGlyph = {
|
|
4061
|
+
kind: "functional",
|
|
4062
|
+
shapes: [
|
|
4063
|
+
{ tag: "circle", cx: 12, cy: 12, r: 9.25 },
|
|
4064
|
+
{ tag: "path", d: "M2.75 12h18.5" },
|
|
4065
|
+
{ tag: "path", d: "M12 2.75a14 14 0 0 1 0 18.5a14 14 0 0 1 0-18.5" }
|
|
4066
|
+
]
|
|
4067
|
+
};
|
|
4068
|
+
var SOLID = { fill: "currentColor", stroke: "none" };
|
|
4069
|
+
function drawShape(shape, index) {
|
|
4070
|
+
if (shape.tag === "path") {
|
|
4071
|
+
return /* @__PURE__ */ jsxRuntime.jsx("path", { d: shape.d, ...shape.solid ? SOLID : {} }, index);
|
|
4072
|
+
}
|
|
4073
|
+
if (shape.tag === "circle") {
|
|
4074
|
+
return /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: shape.cx, cy: shape.cy, r: shape.r, ...shape.solid ? SOLID : {} }, index);
|
|
4075
|
+
}
|
|
4076
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4077
|
+
"rect",
|
|
4078
|
+
{
|
|
4079
|
+
x: shape.x,
|
|
4080
|
+
y: shape.y,
|
|
4081
|
+
width: shape.width,
|
|
4082
|
+
height: shape.height,
|
|
4083
|
+
rx: shape.rx
|
|
4084
|
+
},
|
|
4085
|
+
index
|
|
3904
4086
|
);
|
|
3905
4087
|
}
|
|
3906
|
-
function
|
|
4088
|
+
function Glyph2({ glyph, ...props }) {
|
|
4089
|
+
const brand2 = glyph.kind === "brand";
|
|
3907
4090
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3908
4091
|
"svg",
|
|
3909
4092
|
{
|
|
3910
|
-
viewBox:
|
|
4093
|
+
viewBox: SOCIAL_VIEW_BOX,
|
|
3911
4094
|
width: "1em",
|
|
3912
4095
|
height: "1em",
|
|
3913
|
-
fill: "none",
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
4096
|
+
fill: brand2 ? "currentColor" : "none",
|
|
4097
|
+
...brand2 ? {} : {
|
|
4098
|
+
stroke: "currentColor",
|
|
4099
|
+
strokeWidth: SOCIAL_STROKE_WIDTH,
|
|
4100
|
+
strokeLinecap: "round",
|
|
4101
|
+
strokeLinejoin: "round"
|
|
4102
|
+
},
|
|
3918
4103
|
"aria-hidden": "true",
|
|
3919
4104
|
focusable: "false",
|
|
3920
4105
|
...props,
|
|
3921
|
-
children
|
|
4106
|
+
children: glyph.shapes.map(drawShape)
|
|
3922
4107
|
}
|
|
3923
4108
|
);
|
|
3924
4109
|
}
|
|
3925
|
-
var GitHub = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3926
|
-
var LinkedIn = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3927
|
-
var X = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3928
|
-
var Instagram = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3929
|
-
var Discord = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3930
|
-
var YouTube = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3931
|
-
var Rss = (props) => /* @__PURE__ */ jsxRuntime.
|
|
3932
|
-
|
|
3933
|
-
|
|
3934
|
-
|
|
3935
|
-
var Email = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
|
|
3936
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2.75", y: "4.75", width: "18.5", height: "14.5", rx: "2" }),
|
|
3937
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "m3.5 7.5 7.4 5.2a2 2 0 0 0 2.2 0l7.4-5.2" })
|
|
3938
|
-
] });
|
|
3939
|
-
var Newsletter = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
|
|
3940
|
-
/* @__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" }),
|
|
3941
|
-
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.7 19a2 2 0 0 1-3.4 0" })
|
|
3942
|
-
] });
|
|
4110
|
+
var GitHub = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: gitHubGlyph, ...props });
|
|
4111
|
+
var LinkedIn = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: linkedInGlyph, ...props });
|
|
4112
|
+
var X = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: xGlyph, ...props });
|
|
4113
|
+
var Instagram = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: instagramGlyph, ...props });
|
|
4114
|
+
var Discord = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: discordGlyph, ...props });
|
|
4115
|
+
var YouTube = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: youTubeGlyph, ...props });
|
|
4116
|
+
var Rss = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: rssGlyph, ...props });
|
|
4117
|
+
var Email = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: emailGlyph, ...props });
|
|
4118
|
+
var Newsletter = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: newsletterGlyph, ...props });
|
|
4119
|
+
var Website = (props) => /* @__PURE__ */ jsxRuntime.jsx(Glyph2, { glyph: websiteGlyph, ...props });
|
|
3943
4120
|
|
|
3944
4121
|
exports.ASSETS_PATH = ASSETS_PATH;
|
|
3945
4122
|
exports.Accordion = Accordion;
|
|
@@ -4009,7 +4186,6 @@ exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
|
4009
4186
|
exports.EmptyState = EmptyState;
|
|
4010
4187
|
exports.EventCalendar = EventCalendar;
|
|
4011
4188
|
exports.Footer = Footer;
|
|
4012
|
-
exports.FooterLink = FooterLink;
|
|
4013
4189
|
exports.Hero = Hero;
|
|
4014
4190
|
exports.Input = Input;
|
|
4015
4191
|
exports.Isotype = Isotype;
|
|
@@ -4056,8 +4232,6 @@ exports.SheetFooter = SheetFooter;
|
|
|
4056
4232
|
exports.SheetHeader = SheetHeader;
|
|
4057
4233
|
exports.SheetTitle = SheetTitle;
|
|
4058
4234
|
exports.SheetTrigger = SheetTrigger;
|
|
4059
|
-
exports.SidebarItem = SidebarItem;
|
|
4060
|
-
exports.SidebarNav = SidebarNav;
|
|
4061
4235
|
exports.Skeleton = Skeleton;
|
|
4062
4236
|
exports.Stat = Stat;
|
|
4063
4237
|
exports.Switch = Switch;
|