@eduardoalvarez/arrecife 0.6.0 → 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.
- package/CHANGELOG.md +69 -0
- package/README.md +185 -20
- package/dist/brand/index.js +3 -3
- package/dist/chart/index.js +3 -3
- package/dist/{chunk-XKYHTOUJ.js → chunk-2WPWEIMD.js} +1 -1
- package/dist/chunk-45HVCTB7.js +70 -0
- package/dist/{chunk-DKCN7BAL.js → chunk-727HCBD4.js} +1 -1
- package/dist/{chunk-25YNFCIF.js → chunk-E6KFUSKB.js} +6 -3
- package/dist/{chunk-6O3KWB6P.js → chunk-JN3IS5OS.js} +2 -2
- package/dist/{chunk-O4TAH7YJ.js → chunk-OMKSESQB.js} +27 -3
- package/dist/{chunk-PMN7NR3G.js → chunk-TA7TLWW4.js} +1 -1
- package/dist/{chunk-JMOOFZ3B.js → chunk-WGNIRIN7.js} +1 -1
- package/dist/doctor.mjs +166 -0
- 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-DlAO2JZs.d.cts +47 -0
- package/dist/index-DlAO2JZs.d.ts +47 -0
- package/dist/index.cjs +279 -103
- package/dist/index.d.cts +186 -57
- package/dist/index.d.ts +186 -57
- package/dist/index.js +262 -179
- package/dist/og/index.cjs +3 -2
- package/dist/og/index.js +1 -1
- package/dist/shiki/index.js +1 -1
- package/dist/social/index.cjs +67 -0
- package/dist/social/index.d.cts +2 -0
- package/dist/social/index.d.ts +2 -0
- package/dist/social/index.js +2 -0
- package/dist/tokens/index.cjs +27 -3
- package/dist/tokens/index.d.cts +33 -6
- package/dist/tokens/index.d.ts +33 -6
- package/dist/tokens/index.js +2 -2
- package/dist/tokens/theme.css +33 -3
- package/dist/variants/index.cjs +6 -3
- package/dist/variants/index.d.cts +4 -1
- package/dist/variants/index.d.ts +4 -1
- package/dist/variants/index.js +1 -1
- package/llms.txt +363 -30
- package/package.json +24 -2
package/dist/index.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
2
|
+
import { Label } from './chunk-727HCBD4.js';
|
|
3
|
+
export { Label } from './chunk-727HCBD4.js';
|
|
4
|
+
import { Text } from './chunk-WGNIRIN7.js';
|
|
5
|
+
export { Text } from './chunk-WGNIRIN7.js';
|
|
6
|
+
export { tokens } from './chunk-TA7TLWW4.js';
|
|
3
7
|
import { toggleTheme, currentTheme, watchTheme } from './chunk-GCRII2KQ.js';
|
|
4
8
|
export { THEME_ATTRIBUTE, THEME_EVENT, THEME_KEY, applyTheme, currentTheme, preferredTheme, storedTheme, themeScript, toggleTheme, watchTheme } from './chunk-GCRII2KQ.js';
|
|
5
|
-
import { alert, button, avatar, badge, category, metric, CARD_SURFACE, CARD } from './chunk-
|
|
6
|
-
export { CARD, CARD_HOVER, CARD_SURFACE, alert as alertVariants, avatar as avatarVariants, badge as badgeVariants, button as buttonVariants, category as categoryBadgeVariants, metric as metricBadgeVariants } from './chunk-
|
|
7
|
-
import { MascotFace, Mascot } from './chunk-6O3KWB6P.js';
|
|
8
|
-
export { Isotype, Logo, Mascot, MascotFace } from './chunk-6O3KWB6P.js';
|
|
9
|
-
export { ASSETS_PATH, faceList, faceUsage, faces, fins, poseList, poses } from './chunk-CKRSQPTX.js';
|
|
10
|
-
import { Label } from './chunk-DKCN7BAL.js';
|
|
11
|
-
export { Label } from './chunk-DKCN7BAL.js';
|
|
12
|
-
import { Text } from './chunk-JMOOFZ3B.js';
|
|
13
|
-
export { Text } from './chunk-JMOOFZ3B.js';
|
|
9
|
+
import { alert, button, avatar, badge, category, metric, CARD_SURFACE, CARD } from './chunk-E6KFUSKB.js';
|
|
10
|
+
export { CARD, CARD_HOVER, CARD_SURFACE, alert as alertVariants, avatar as avatarVariants, badge as badgeVariants, button as buttonVariants, category as categoryBadgeVariants, metric as metricBadgeVariants } from './chunk-E6KFUSKB.js';
|
|
14
11
|
export { text as textVariants } from './chunk-ODBFN44D.js';
|
|
15
|
-
import {
|
|
16
|
-
export {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
import { MascotFace, Mascot } from './chunk-JN3IS5OS.js';
|
|
13
|
+
export { Isotype, Logo, Mascot, MascotFace } from './chunk-JN3IS5OS.js';
|
|
14
|
+
export { social_exports as social } from './chunk-45HVCTB7.js';
|
|
15
|
+
import { cn } from './chunk-2WPWEIMD.js';
|
|
16
|
+
export { cn } from './chunk-2WPWEIMD.js';
|
|
17
|
+
export { ASSETS_PATH, faceList, faceUsage, faces, fins, poseList, poses } from './chunk-CKRSQPTX.js';
|
|
18
|
+
import { naming } from './chunk-OMKSESQB.js';
|
|
19
|
+
export { brand, colors, control, dark, fonts, gradient, light, limits, motion, naming, radius, series, shadow, size, spacing, syntax, tagline, typeScale } from './chunk-OMKSESQB.js';
|
|
20
|
+
import './chunk-MLKGABMK.js';
|
|
20
21
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
21
22
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
22
23
|
import { cva } from 'class-variance-authority';
|
|
23
24
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
24
25
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
25
|
-
import { useId, useState, useEffect, useSyncExternalStore, useRef, useCallback } from 'react';
|
|
26
|
+
import { createContext, useId, useState, useEffect, useSyncExternalStore, useRef, useCallback, useContext } from 'react';
|
|
26
27
|
import { Slot } from '@radix-ui/react-slot';
|
|
27
28
|
import { es } from 'date-fns/locale';
|
|
28
29
|
import { DayPicker } from 'react-day-picker';
|
|
@@ -182,7 +183,7 @@ function AccordionTrigger({
|
|
|
182
183
|
"font-sans text-lead font-medium text-text-primary",
|
|
183
184
|
"transition-standard",
|
|
184
185
|
"hover:text-accent",
|
|
185
|
-
"focus-
|
|
186
|
+
"focus-ring",
|
|
186
187
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
187
188
|
"[&[data-state=open]>svg]:rotate-180",
|
|
188
189
|
className
|
|
@@ -418,7 +419,7 @@ function AvatarUpload({
|
|
|
418
419
|
"transition-standard hover:text-accent hover:border-accent",
|
|
419
420
|
// Focus lives on the input, which is hidden: without this, tabbing to
|
|
420
421
|
// the control shows up nowhere.
|
|
421
|
-
"has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-
|
|
422
|
+
"has-[:focus-visible]:outline-2 has-[:focus-visible]:outline-offset-3 has-[:focus-visible]:outline-accent",
|
|
422
423
|
disabled && "pointer-events-none opacity-50"
|
|
423
424
|
),
|
|
424
425
|
children: [
|
|
@@ -507,14 +508,14 @@ function Calendar({
|
|
|
507
508
|
"rounded-chip inline-flex items-center justify-center",
|
|
508
509
|
"transition-standard cursor-pointer",
|
|
509
510
|
"hover:bg-surface-raised",
|
|
510
|
-
"focus-
|
|
511
|
+
"focus-ring",
|
|
511
512
|
"disabled:pointer-events-none disabled:opacity-50"
|
|
512
513
|
].join(" ");
|
|
513
514
|
const navigation = [
|
|
514
515
|
"size-8 rounded-chip inline-flex items-center justify-center",
|
|
515
516
|
"text-text-secondary transition-standard cursor-pointer",
|
|
516
517
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
517
|
-
"focus-
|
|
518
|
+
"focus-ring",
|
|
518
519
|
"disabled:pointer-events-none disabled:opacity-50"
|
|
519
520
|
].join(" ");
|
|
520
521
|
return /* @__PURE__ */ jsx(
|
|
@@ -599,7 +600,7 @@ function Checkbox({ className, ...props }) {
|
|
|
599
600
|
"rounded-chip border-border bg-surface size-5 shrink-0 cursor-pointer border",
|
|
600
601
|
"text-accent-on transition-standard",
|
|
601
602
|
"hover:border-hairline-hover",
|
|
602
|
-
"focus-
|
|
603
|
+
"focus-ring",
|
|
603
604
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
604
605
|
"data-[state=checked]:border-accent data-[state=checked]:bg-accent",
|
|
605
606
|
"data-[state=indeterminate]:border-accent data-[state=indeterminate]:bg-accent",
|
|
@@ -642,7 +643,7 @@ function DateField({
|
|
|
642
643
|
"font-mono text-ui text-text-primary",
|
|
643
644
|
"transition-standard",
|
|
644
645
|
"hover:border-hairline-hover",
|
|
645
|
-
"focus-visible:border-accent focus-
|
|
646
|
+
"focus-visible:border-accent focus-ring",
|
|
646
647
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
647
648
|
"data-[invalid]:border-error data-[invalid]:focus-visible:outline-error",
|
|
648
649
|
// The native indicator inherits the active theme's scheme.
|
|
@@ -696,7 +697,7 @@ function DialogContent({
|
|
|
696
697
|
"rounded-chip text-text-muted absolute top-4 right-4 flex size-8 cursor-pointer items-center justify-center",
|
|
697
698
|
"transition-standard",
|
|
698
699
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
699
|
-
"focus-
|
|
700
|
+
"focus-ring"
|
|
700
701
|
),
|
|
701
702
|
children: /* @__PURE__ */ jsx(Close, {})
|
|
702
703
|
}
|
|
@@ -845,7 +846,7 @@ function Input({ className, invalid = false, ...props }) {
|
|
|
845
846
|
"font-sans text-ui text-text-primary placeholder:text-text-muted",
|
|
846
847
|
"transition-standard",
|
|
847
848
|
"hover:border-hairline-hover",
|
|
848
|
-
"focus-visible:border-accent focus-
|
|
849
|
+
"focus-visible:border-accent focus-ring",
|
|
849
850
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
850
851
|
"data-[invalid]:border-error data-[invalid]:focus-visible:outline-error",
|
|
851
852
|
"file:mr-step-sm file:border-0 file:bg-transparent file:font-sans file:text-label file:text-text-secondary",
|
|
@@ -882,7 +883,7 @@ function PaginationLink({ className, isActive = false, ...props }) {
|
|
|
882
883
|
"font-sans text-ui text-text-secondary",
|
|
883
884
|
"transition-standard",
|
|
884
885
|
"hover:bg-surface hover:text-text-primary",
|
|
885
|
-
"focus-
|
|
886
|
+
"focus-ring",
|
|
886
887
|
isActive && "bg-surface-raised text-text-primary",
|
|
887
888
|
className
|
|
888
889
|
),
|
|
@@ -897,7 +898,7 @@ function PaginationPrevious({ className, ...props }) {
|
|
|
897
898
|
] });
|
|
898
899
|
}
|
|
899
900
|
function PaginationNext({ className, ...props }) {
|
|
900
|
-
return /* @__PURE__ */ jsxs(PaginationLink, { "aria-label": "P\xE1gina
|
|
901
|
+
return /* @__PURE__ */ jsxs(PaginationLink, { "aria-label": "P\xE1gina siguiente", className: cn("gap-step-xs", className), ...props, children: [
|
|
901
902
|
"Siguiente",
|
|
902
903
|
/* @__PURE__ */ jsx(ChevronRight, {})
|
|
903
904
|
] });
|
|
@@ -967,7 +968,7 @@ function RadioGroupItem({ className, ...props }) {
|
|
|
967
968
|
"rounded-pill border-border bg-surface size-5 shrink-0 cursor-pointer border",
|
|
968
969
|
"transition-standard",
|
|
969
970
|
"hover:border-hairline-hover",
|
|
970
|
-
"focus-
|
|
971
|
+
"focus-ring",
|
|
971
972
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
972
973
|
"data-[state=checked]:border-accent",
|
|
973
974
|
className
|
|
@@ -994,7 +995,7 @@ function SelectTrigger({
|
|
|
994
995
|
"font-sans text-ui text-text-primary",
|
|
995
996
|
"transition-standard",
|
|
996
997
|
"hover:border-hairline-hover",
|
|
997
|
-
"focus-visible:border-accent focus-
|
|
998
|
+
"focus-visible:border-accent focus-ring",
|
|
998
999
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
999
1000
|
"data-[placeholder]:text-text-muted",
|
|
1000
1001
|
className
|
|
@@ -1144,7 +1145,7 @@ function SheetContent({ className, side, children, ...props }) {
|
|
|
1144
1145
|
"rounded-chip text-text-muted absolute top-4 right-4 flex size-8 cursor-pointer items-center justify-center",
|
|
1145
1146
|
"transition-standard",
|
|
1146
1147
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
1147
|
-
"focus-
|
|
1148
|
+
"focus-ring"
|
|
1148
1149
|
),
|
|
1149
1150
|
children: /* @__PURE__ */ jsx(Close, {})
|
|
1150
1151
|
}
|
|
@@ -1219,7 +1220,7 @@ function Switch({ className, ...props }) {
|
|
|
1219
1220
|
"rounded-pill border-border bg-surface-raised inline-flex h-6 w-11 shrink-0 cursor-pointer items-center border",
|
|
1220
1221
|
"transition-standard",
|
|
1221
1222
|
"hover:border-hairline-hover",
|
|
1222
|
-
"focus-
|
|
1223
|
+
"focus-ring",
|
|
1223
1224
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1224
1225
|
"data-[state=checked]:border-accent data-[state=checked]:bg-accent",
|
|
1225
1226
|
className
|
|
@@ -1320,7 +1321,7 @@ function TabsTrigger({
|
|
|
1320
1321
|
"font-sans text-label text-text-secondary",
|
|
1321
1322
|
"transition-standard",
|
|
1322
1323
|
"hover:text-text-primary",
|
|
1323
|
-
"focus-
|
|
1324
|
+
"focus-ring",
|
|
1324
1325
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1325
1326
|
"data-[state=active]:bg-surface-raised data-[state=active]:text-text-primary",
|
|
1326
1327
|
className
|
|
@@ -1337,7 +1338,7 @@ function TabsContent({
|
|
|
1337
1338
|
TabsPrimitive.Content,
|
|
1338
1339
|
{
|
|
1339
1340
|
className: cn(
|
|
1340
|
-
"focus-
|
|
1341
|
+
"focus-ring",
|
|
1341
1342
|
className
|
|
1342
1343
|
),
|
|
1343
1344
|
...props
|
|
@@ -1356,7 +1357,7 @@ function Textarea({ className, invalid = false, ...props }) {
|
|
|
1356
1357
|
"font-sans text-ui text-text-primary placeholder:text-text-muted",
|
|
1357
1358
|
"transition-standard",
|
|
1358
1359
|
"hover:border-hairline-hover",
|
|
1359
|
-
"focus-visible:border-accent focus-
|
|
1360
|
+
"focus-visible:border-accent focus-ring",
|
|
1360
1361
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
1361
1362
|
"data-[invalid]:border-error data-[invalid]:focus-visible:outline-error",
|
|
1362
1363
|
className
|
|
@@ -1411,7 +1412,7 @@ function Toast({ className, variant, children, ...props }) {
|
|
|
1411
1412
|
"rounded-chip text-text-muted absolute top-3 right-3 flex size-7 cursor-pointer items-center justify-center",
|
|
1412
1413
|
"transition-standard",
|
|
1413
1414
|
"hover:bg-surface-raised hover:text-text-primary",
|
|
1414
|
-
"focus-
|
|
1415
|
+
"focus-ring"
|
|
1415
1416
|
),
|
|
1416
1417
|
children: /* @__PURE__ */ jsx(Close, {})
|
|
1417
1418
|
}
|
|
@@ -1653,21 +1654,21 @@ function ProgressBar({
|
|
|
1653
1654
|
}
|
|
1654
1655
|
);
|
|
1655
1656
|
}
|
|
1656
|
-
var CONTROL = "rounded-chip transition-standard cursor-pointer focus-
|
|
1657
|
+
var CONTROL = "rounded-chip transition-standard cursor-pointer focus-ring";
|
|
1657
1658
|
function SkipButton({
|
|
1658
|
-
|
|
1659
|
+
seconds,
|
|
1659
1660
|
className,
|
|
1660
1661
|
size: size2,
|
|
1661
|
-
|
|
1662
|
+
onSkip
|
|
1662
1663
|
}) {
|
|
1663
1664
|
return /* @__PURE__ */ jsx(
|
|
1664
1665
|
"button",
|
|
1665
1666
|
{
|
|
1666
1667
|
type: "button",
|
|
1667
|
-
onClick: () =>
|
|
1668
|
+
onClick: () => onSkip(seconds),
|
|
1668
1669
|
className: cn("text-text-muted hover:text-text-primary", CONTROL, className),
|
|
1669
|
-
"aria-label":
|
|
1670
|
-
children:
|
|
1670
|
+
"aria-label": seconds < 0 ? "Retroceder 15 segundos" : "Adelantar 15 segundos",
|
|
1671
|
+
children: seconds < 0 ? /* @__PURE__ */ jsx(GoBackSeconds, { className: size2 }) : /* @__PURE__ */ jsx(AdvanceSeconds, { className: size2 })
|
|
1671
1672
|
}
|
|
1672
1673
|
);
|
|
1673
1674
|
}
|
|
@@ -1699,8 +1700,8 @@ function SpeedButton({
|
|
|
1699
1700
|
function Volume({
|
|
1700
1701
|
size: size2,
|
|
1701
1702
|
width,
|
|
1702
|
-
|
|
1703
|
-
|
|
1703
|
+
muted,
|
|
1704
|
+
volume,
|
|
1704
1705
|
onMute,
|
|
1705
1706
|
onVolumeChange
|
|
1706
1707
|
}) {
|
|
@@ -1711,8 +1712,8 @@ function Volume({
|
|
|
1711
1712
|
type: "button",
|
|
1712
1713
|
onClick: onMute,
|
|
1713
1714
|
className: cn("text-text-muted hover:text-text-primary p-1", CONTROL),
|
|
1714
|
-
"aria-label":
|
|
1715
|
-
children:
|
|
1715
|
+
"aria-label": muted ? "Activar sonido" : "Silenciar",
|
|
1716
|
+
children: muted || volume === 0 ? /* @__PURE__ */ jsx(VolumeMuted, { className: size2 }) : /* @__PURE__ */ jsx(VolumeOn, { className: size2 })
|
|
1716
1717
|
}
|
|
1717
1718
|
),
|
|
1718
1719
|
/* @__PURE__ */ jsx(
|
|
@@ -1722,20 +1723,20 @@ function Volume({
|
|
|
1722
1723
|
min: "0",
|
|
1723
1724
|
max: "1",
|
|
1724
1725
|
step: "0.1",
|
|
1725
|
-
value:
|
|
1726
|
+
value: muted ? 0 : volume,
|
|
1726
1727
|
onChange: onVolumeChange,
|
|
1727
1728
|
className: cn(
|
|
1728
1729
|
"bg-surface-raised rounded-pill h-1 cursor-pointer appearance-none",
|
|
1729
1730
|
"[accent-color:var(--color-accent)]",
|
|
1730
1731
|
width
|
|
1731
1732
|
),
|
|
1732
|
-
"aria-label": "
|
|
1733
|
+
"aria-label": "Volumen"
|
|
1733
1734
|
}
|
|
1734
1735
|
)
|
|
1735
1736
|
] });
|
|
1736
1737
|
}
|
|
1737
|
-
function PlayIcon({ className,
|
|
1738
|
-
if (
|
|
1738
|
+
function PlayIcon({ className, loading, error, playing }) {
|
|
1739
|
+
if (loading) return /* @__PURE__ */ jsx(Spinner, { className: cn("motion-safe:animate-spin", className) });
|
|
1739
1740
|
if (error) return /* @__PURE__ */ jsx(Retry, { className });
|
|
1740
1741
|
if (playing) return /* @__PURE__ */ jsx(Pause, { className });
|
|
1741
1742
|
return /* @__PURE__ */ jsx(Play, { className });
|
|
@@ -1755,7 +1756,7 @@ function PlayButton({
|
|
|
1755
1756
|
onClick: onToggle,
|
|
1756
1757
|
className: cn(
|
|
1757
1758
|
"text-accent-on transition-standard cursor-pointer",
|
|
1758
|
-
"focus-
|
|
1759
|
+
"focus-ring",
|
|
1759
1760
|
state.error ? "bg-error hover:bg-error/80" : "bg-accent hover:bg-accent-hover",
|
|
1760
1761
|
className
|
|
1761
1762
|
),
|
|
@@ -1924,7 +1925,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
1924
1925
|
);
|
|
1925
1926
|
const progress = duration > 0 ? currentTime / duration * 100 : 0;
|
|
1926
1927
|
const playLabel = hasError ? "Reintentar" : isPlaying ? "Pausar" : "Reproducir";
|
|
1927
|
-
const playState = {
|
|
1928
|
+
const playState = { loading: isLoading, error: hasError, playing: isPlaying };
|
|
1928
1929
|
const pointer = {
|
|
1929
1930
|
onPointerDown: handlePointerDown,
|
|
1930
1931
|
onPointerMove: handlePointerMove,
|
|
@@ -1965,7 +1966,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
1965
1966
|
] })
|
|
1966
1967
|
] }),
|
|
1967
1968
|
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
1968
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
1969
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: -15, className: "p-1.5", size: "w-5 h-5", onSkip: skip }),
|
|
1969
1970
|
/* @__PURE__ */ jsx(
|
|
1970
1971
|
PlayButton,
|
|
1971
1972
|
{
|
|
@@ -1976,7 +1977,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
1976
1977
|
...playState
|
|
1977
1978
|
}
|
|
1978
1979
|
),
|
|
1979
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
1980
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: 15, className: "p-1.5", size: "w-5 h-5", onSkip: skip }),
|
|
1980
1981
|
/* @__PURE__ */ jsx(
|
|
1981
1982
|
SpeedButton,
|
|
1982
1983
|
{
|
|
@@ -2005,7 +2006,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2005
2006
|
] }),
|
|
2006
2007
|
/* @__PURE__ */ jsx("div", { className: "mb-step-md", children: /* @__PURE__ */ jsx(ProgressBar, { height: "h-1.5", knob: 14, progress, ...pointer }) }),
|
|
2007
2008
|
/* @__PURE__ */ jsxs("div", { className: "gap-step-sm flex items-center", children: [
|
|
2008
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
2009
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: -15, className: "p-2", size: "w-6 h-6", onSkip: skip }),
|
|
2009
2010
|
/* @__PURE__ */ jsx(
|
|
2010
2011
|
PlayButton,
|
|
2011
2012
|
{
|
|
@@ -2017,7 +2018,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2017
2018
|
...playState
|
|
2018
2019
|
}
|
|
2019
2020
|
),
|
|
2020
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
2021
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: 15, className: "p-2", size: "w-6 h-6", onSkip: skip }),
|
|
2021
2022
|
/* @__PURE__ */ jsxs("div", { className: "gap-step-sm ml-auto flex items-center", children: [
|
|
2022
2023
|
/* @__PURE__ */ jsx(
|
|
2023
2024
|
SpeedButton,
|
|
@@ -2032,8 +2033,8 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2032
2033
|
{
|
|
2033
2034
|
size: "w-4 h-4",
|
|
2034
2035
|
width: "w-16",
|
|
2035
|
-
|
|
2036
|
-
|
|
2036
|
+
muted: isMuted,
|
|
2037
|
+
volume,
|
|
2037
2038
|
onMute: toggleMute,
|
|
2038
2039
|
onVolumeChange: handleVolumeChange
|
|
2039
2040
|
}
|
|
@@ -2055,7 +2056,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2055
2056
|
] }),
|
|
2056
2057
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
2057
2058
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
2058
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
2059
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: -15, className: "p-1.5", size: "w-5 h-5", onSkip: skip }),
|
|
2059
2060
|
/* @__PURE__ */ jsx(
|
|
2060
2061
|
PlayButton,
|
|
2061
2062
|
{
|
|
@@ -2066,7 +2067,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2066
2067
|
...playState
|
|
2067
2068
|
}
|
|
2068
2069
|
),
|
|
2069
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
2070
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: 15, className: "p-1.5", size: "w-5 h-5", onSkip: skip })
|
|
2070
2071
|
] }),
|
|
2071
2072
|
/* @__PURE__ */ jsx(
|
|
2072
2073
|
SpeedButton,
|
|
@@ -2091,7 +2092,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2091
2092
|
] }),
|
|
2092
2093
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
2093
2094
|
/* @__PURE__ */ jsxs("div", { className: "gap-step-xs flex items-center", children: [
|
|
2094
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
2095
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: -15, className: "p-2", size: "w-5 h-5", onSkip: skip }),
|
|
2095
2096
|
/* @__PURE__ */ jsx(
|
|
2096
2097
|
PlayButton,
|
|
2097
2098
|
{
|
|
@@ -2102,7 +2103,7 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2102
2103
|
...playState
|
|
2103
2104
|
}
|
|
2104
2105
|
),
|
|
2105
|
-
/* @__PURE__ */ jsx(SkipButton, {
|
|
2106
|
+
/* @__PURE__ */ jsx(SkipButton, { seconds: 15, className: "p-2", size: "w-5 h-5", onSkip: skip })
|
|
2106
2107
|
] }),
|
|
2107
2108
|
/* @__PURE__ */ jsxs("div", { className: "gap-step-sm flex items-center", children: [
|
|
2108
2109
|
/* @__PURE__ */ jsx(
|
|
@@ -2118,8 +2119,8 @@ function AudioPlayer({ src, title, mode = "full", onFirstPlay }) {
|
|
|
2118
2119
|
{
|
|
2119
2120
|
size: "w-5 h-5",
|
|
2120
2121
|
width: "w-20",
|
|
2121
|
-
|
|
2122
|
-
|
|
2122
|
+
muted: isMuted,
|
|
2123
|
+
volume,
|
|
2123
2124
|
onMute: toggleMute,
|
|
2124
2125
|
onVolumeChange: handleVolumeChange
|
|
2125
2126
|
}
|
|
@@ -2145,7 +2146,7 @@ function Blockquote({ children, author, source, className, ...props }) {
|
|
|
2145
2146
|
}
|
|
2146
2147
|
);
|
|
2147
2148
|
}
|
|
2148
|
-
var LINK = "transition-standard hover:text-accent focus-
|
|
2149
|
+
var LINK = "transition-standard hover:text-accent focus-ring rounded-chip cursor-pointer";
|
|
2149
2150
|
function Breadcrumb({
|
|
2150
2151
|
items,
|
|
2151
2152
|
homeHref = "/",
|
|
@@ -2206,7 +2207,7 @@ function CodeBlock({ children, language, copyText, className, ...props }) {
|
|
|
2206
2207
|
"gap-step-xs rounded-chip flex items-center px-2 py-1",
|
|
2207
2208
|
"text-label font-mono text-text-muted cursor-pointer",
|
|
2208
2209
|
"transition-standard hover:bg-surface hover:text-text-primary",
|
|
2209
|
-
"focus-
|
|
2210
|
+
"focus-ring"
|
|
2210
2211
|
),
|
|
2211
2212
|
children: [
|
|
2212
2213
|
copiado ? /* @__PURE__ */ jsx(Check, { className: "text-accent" }) : /* @__PURE__ */ jsx(Copy, {}),
|
|
@@ -2247,20 +2248,32 @@ function CourseCard({
|
|
|
2247
2248
|
] }) });
|
|
2248
2249
|
}
|
|
2249
2250
|
var FACE = "w-[66px] max-w-none";
|
|
2250
|
-
function EmptyState({
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2251
|
+
function EmptyState(props) {
|
|
2252
|
+
if (props.variant === "inline") {
|
|
2253
|
+
const { variant: variant2, title: title2, description: description2, action: action2, icon, className: className2, ...rest2 } = props;
|
|
2254
|
+
return /* @__PURE__ */ jsxs(
|
|
2255
|
+
"div",
|
|
2256
|
+
{
|
|
2257
|
+
className: cn(
|
|
2258
|
+
"py-step-lg px-step-md gap-step-xs flex flex-col items-center text-center",
|
|
2259
|
+
className2
|
|
2260
|
+
),
|
|
2261
|
+
...rest2,
|
|
2262
|
+
children: [
|
|
2263
|
+
icon ? /* @__PURE__ */ jsx("span", { className: "text-text-muted shrink-0", children: icon }) : null,
|
|
2264
|
+
/* @__PURE__ */ jsx(Text, { variant: "ui", tone: "muted", as: "p", className: "max-w-measure", children: title2 }),
|
|
2265
|
+
description2 ? /* @__PURE__ */ jsx(Text, { variant: "label", tone: "muted", as: "p", className: "max-w-measure font-normal", children: description2 }) : null,
|
|
2266
|
+
action2 ? /* @__PURE__ */ jsx("div", { className: "mt-step-xs", children: action2 }) : null
|
|
2267
|
+
]
|
|
2268
|
+
}
|
|
2269
|
+
);
|
|
2270
|
+
}
|
|
2271
|
+
const { variant, title, description, action, expression, basePath, className, ...rest } = props;
|
|
2259
2272
|
return /* @__PURE__ */ jsxs(
|
|
2260
2273
|
"div",
|
|
2261
2274
|
{
|
|
2262
2275
|
className: cn(CARD_SURFACE, "p-step-lg gap-step-sm flex flex-col items-center text-center", className),
|
|
2263
|
-
...
|
|
2276
|
+
...rest,
|
|
2264
2277
|
children: [
|
|
2265
2278
|
/* @__PURE__ */ jsx(MascotFace, { expression, className: FACE, basePath }),
|
|
2266
2279
|
/* @__PURE__ */ jsx(Text, { variant: "ui", as: "p", className: "font-medium", children: title }),
|
|
@@ -2449,7 +2462,7 @@ function EventCalendar({
|
|
|
2449
2462
|
] }),
|
|
2450
2463
|
/* @__PURE__ */ jsxs("div", { className: "gap-step-sm flex flex-wrap items-center", children: [
|
|
2451
2464
|
/* @__PURE__ */ jsx(Button, { type: "submit", size: "sm", children: editing ? "Guardar" : "A\xF1adir" }),
|
|
2452
|
-
editing ? /* @__PURE__ */ jsx(Button, { type: "button", variant: "tertiary", size: "sm", onClick: cancel, children: "./
|
|
2465
|
+
editing ? /* @__PURE__ */ jsx(Button, { type: "button", variant: "tertiary", size: "sm", onClick: cancel, children: "./cancelar" }) : null
|
|
2453
2466
|
] })
|
|
2454
2467
|
] }) : null
|
|
2455
2468
|
]
|
|
@@ -2495,7 +2508,7 @@ function Footer({
|
|
|
2495
2508
|
"aria-label": socialLink.label,
|
|
2496
2509
|
className: cn(
|
|
2497
2510
|
"text-text-muted hover:text-accent transition-standard block cursor-pointer text-[19px]",
|
|
2498
|
-
"rounded-chip focus-
|
|
2511
|
+
"rounded-chip focus-ring"
|
|
2499
2512
|
),
|
|
2500
2513
|
children: socialLink.icon
|
|
2501
2514
|
}
|
|
@@ -2518,7 +2531,7 @@ function FooterLink({ asChild = false, className, ...props }) {
|
|
|
2518
2531
|
{
|
|
2519
2532
|
className: cn(
|
|
2520
2533
|
"font-mono text-meta text-text-secondary hover:text-accent transition-standard cursor-pointer",
|
|
2521
|
-
"rounded-chip focus-
|
|
2534
|
+
"rounded-chip focus-ring",
|
|
2522
2535
|
className
|
|
2523
2536
|
),
|
|
2524
2537
|
...props
|
|
@@ -2631,7 +2644,7 @@ function LinkRow({
|
|
|
2631
2644
|
}
|
|
2632
2645
|
);
|
|
2633
2646
|
}
|
|
2634
|
-
function Nav({ brand: brand2, children, actions, className, ...props }) {
|
|
2647
|
+
function Nav({ brand: brand2, children, actions, size: size2 = "default", className, ...props }) {
|
|
2635
2648
|
return /* @__PURE__ */ jsx(
|
|
2636
2649
|
"header",
|
|
2637
2650
|
{
|
|
@@ -2644,14 +2657,23 @@ function Nav({ brand: brand2, children, actions, className, ...props }) {
|
|
|
2644
2657
|
className
|
|
2645
2658
|
),
|
|
2646
2659
|
...props,
|
|
2647
|
-
children: /* @__PURE__ */ jsxs(
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2660
|
+
children: /* @__PURE__ */ jsxs(
|
|
2661
|
+
"div",
|
|
2662
|
+
{
|
|
2663
|
+
className: cn(
|
|
2664
|
+
"max-w-wide px-step-md gap-step-lg mx-auto flex items-center",
|
|
2665
|
+
size2 === "compact" ? "h-nav-compact" : "h-nav"
|
|
2666
|
+
),
|
|
2667
|
+
children: [
|
|
2668
|
+
brand2 ? /* @__PURE__ */ jsx("div", { className: "shrink-0", children: brand2 }) : null,
|
|
2669
|
+
children ? /* @__PURE__ */ jsx("nav", { "aria-label": "Principal", className: "ml-auto min-w-0", children: /* @__PURE__ */ jsxs("ul", { className: "gap-step-md flex items-center", children: [
|
|
2670
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-text-muted font-mono text-meta select-none", children: "~/" }),
|
|
2671
|
+
children
|
|
2672
|
+
] }) }) : /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
2673
|
+
actions ? /* @__PURE__ */ jsx("div", { className: "gap-step-sm flex shrink-0 items-center", children: actions }) : null
|
|
2674
|
+
]
|
|
2675
|
+
}
|
|
2676
|
+
)
|
|
2655
2677
|
}
|
|
2656
2678
|
);
|
|
2657
2679
|
}
|
|
@@ -2663,7 +2685,7 @@ function NavItem({ active = false, asChild = false, className, children, ...prop
|
|
|
2663
2685
|
"aria-current": active ? "page" : void 0,
|
|
2664
2686
|
className: cn(
|
|
2665
2687
|
"font-mono text-meta transition-standard cursor-pointer",
|
|
2666
|
-
"rounded-chip focus-
|
|
2688
|
+
"rounded-chip focus-ring",
|
|
2667
2689
|
active ? "text-accent underline decoration-1 underline-offset-4" : "text-text-secondary hover:text-accent",
|
|
2668
2690
|
className
|
|
2669
2691
|
),
|
|
@@ -2682,14 +2704,14 @@ function NewsletterForm({
|
|
|
2682
2704
|
description,
|
|
2683
2705
|
state = "idle",
|
|
2684
2706
|
onSubmitEmail,
|
|
2685
|
-
successMessage = "Ya est\xE1s dentro. Te llega un
|
|
2686
|
-
errorMessage = "No se pudo suscribir ese
|
|
2707
|
+
successMessage = "Ya est\xE1s dentro. Te llega un correo cada dos semanas, y nada m\xE1s.",
|
|
2708
|
+
errorMessage = "No se pudo suscribir ese correo. Rev\xEDsalo y vuelve a intentar.",
|
|
2687
2709
|
disclaimer,
|
|
2688
2710
|
expression,
|
|
2689
2711
|
basePath,
|
|
2690
2712
|
submitLabel = "Suscribirme",
|
|
2691
2713
|
placeholder = "tu@email.dev",
|
|
2692
|
-
fieldLabel = "
|
|
2714
|
+
fieldLabel = "Correo electr\xF3nico",
|
|
2693
2715
|
nameField = false,
|
|
2694
2716
|
nameLabel = "Nombre",
|
|
2695
2717
|
namePlaceholder = "C\xF3mo te llamas",
|
|
@@ -2885,23 +2907,27 @@ function ScrollingProgressBar({
|
|
|
2885
2907
|
}
|
|
2886
2908
|
);
|
|
2887
2909
|
}
|
|
2910
|
+
var Collapsed = createContext(false);
|
|
2888
2911
|
function SidebarItem({
|
|
2889
2912
|
active = false,
|
|
2890
2913
|
asChild = false,
|
|
2891
2914
|
badge: badge2,
|
|
2915
|
+
icon,
|
|
2892
2916
|
className,
|
|
2893
2917
|
children,
|
|
2894
2918
|
...props
|
|
2895
2919
|
}) {
|
|
2896
2920
|
const Root17 = asChild ? Slot : "a";
|
|
2921
|
+
const collapsed = useContext(Collapsed);
|
|
2897
2922
|
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
2898
2923
|
Root17,
|
|
2899
2924
|
{
|
|
2900
2925
|
"aria-current": active ? "page" : void 0,
|
|
2901
2926
|
className: cn(
|
|
2902
2927
|
"rounded-chip px-step-sm gap-step-xs flex cursor-pointer items-center py-1.5",
|
|
2928
|
+
collapsed && "justify-center",
|
|
2903
2929
|
"font-mono text-meta transition-standard",
|
|
2904
|
-
"focus-
|
|
2930
|
+
"focus-ring",
|
|
2905
2931
|
// The active item is `surfaceRaised` with primary ink, same as
|
|
2906
2932
|
// `TabsTrigger`. NOT biolume: `tokens.ts` says so explicitly — light
|
|
2907
2933
|
// accent passes over background and over surface, but over
|
|
@@ -2913,15 +2939,57 @@ function SidebarItem({
|
|
|
2913
2939
|
),
|
|
2914
2940
|
...props,
|
|
2915
2941
|
children: [
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2942
|
+
icon ? (
|
|
2943
|
+
// A shade bigger than the 13px mono label, which is what keeps it
|
|
2944
|
+
// reading as a glyph rather than as a character in the word.
|
|
2945
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-body shrink-0", children: icon })
|
|
2946
|
+
) : /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: active ? "text-accent" : "text-text-muted", children: "\u25B8" }),
|
|
2947
|
+
/* @__PURE__ */ jsx("span", { className: collapsed ? "sr-only" : "min-w-0 flex-1 truncate", children }),
|
|
2948
|
+
badge2 ? /* @__PURE__ */ jsx("span", { className: cn("text-text-muted", collapsed ? "sr-only" : "shrink-0"), children: badge2 }) : null
|
|
2919
2949
|
]
|
|
2920
2950
|
}
|
|
2921
2951
|
) });
|
|
2922
2952
|
}
|
|
2953
|
+
function SidebarGroup({ label, children, className, ...props }) {
|
|
2954
|
+
const id = useId();
|
|
2955
|
+
const collapsed = useContext(Collapsed);
|
|
2956
|
+
return /* @__PURE__ */ jsxs(
|
|
2957
|
+
"li",
|
|
2958
|
+
{
|
|
2959
|
+
className: cn(
|
|
2960
|
+
"mt-step-md first:mt-0",
|
|
2961
|
+
// In a rail the label has nowhere to go, so the block becomes a rule.
|
|
2962
|
+
// The label itself stays in the accessibility tree naming the list.
|
|
2963
|
+
collapsed && "border-hairline pt-step-md mt-step-sm border-t first:border-t-0",
|
|
2964
|
+
className
|
|
2965
|
+
),
|
|
2966
|
+
...props,
|
|
2967
|
+
children: [
|
|
2968
|
+
/* @__PURE__ */ jsx(
|
|
2969
|
+
Text,
|
|
2970
|
+
{
|
|
2971
|
+
variant: "meta",
|
|
2972
|
+
tone: "muted",
|
|
2973
|
+
as: "p",
|
|
2974
|
+
id,
|
|
2975
|
+
className: collapsed ? "sr-only" : "px-step-sm pb-step-xs",
|
|
2976
|
+
children: label
|
|
2977
|
+
}
|
|
2978
|
+
),
|
|
2979
|
+
/* @__PURE__ */ jsx("ul", { "aria-labelledby": id, className: "gap-0.5 flex flex-col", children })
|
|
2980
|
+
]
|
|
2981
|
+
}
|
|
2982
|
+
);
|
|
2983
|
+
}
|
|
2923
2984
|
function SidebarNav({
|
|
2924
2985
|
title,
|
|
2986
|
+
brand: brand2,
|
|
2987
|
+
mark,
|
|
2988
|
+
user,
|
|
2989
|
+
collapsed = false,
|
|
2990
|
+
onCollapsedChange,
|
|
2991
|
+
collapseLabel = "Plegar el panel",
|
|
2992
|
+
expandLabel = "Desplegar el panel",
|
|
2925
2993
|
version,
|
|
2926
2994
|
branch,
|
|
2927
2995
|
children,
|
|
@@ -2929,26 +2997,85 @@ function SidebarNav({
|
|
|
2929
2997
|
...props
|
|
2930
2998
|
}) {
|
|
2931
2999
|
const footer = [version, branch].filter(Boolean);
|
|
2932
|
-
|
|
3000
|
+
const top = collapsed ? mark : brand2;
|
|
3001
|
+
return /* @__PURE__ */ jsx(Collapsed.Provider, { value: collapsed, children: /* @__PURE__ */ jsxs(
|
|
2933
3002
|
"nav",
|
|
2934
3003
|
{
|
|
2935
3004
|
"aria-label": typeof title === "string" ? title : "Administraci\xF3n",
|
|
2936
3005
|
className: cn(
|
|
2937
3006
|
"border-hairline bg-surface p-step-sm gap-step-sm flex h-full flex-col border-r",
|
|
3007
|
+
// The width is the component's only when it can collapse: the layout
|
|
3008
|
+
// beside it has to reserve one of the two, and it cannot know which.
|
|
3009
|
+
// It does NOT transition. The system's only transition animates colour
|
|
3010
|
+
// and border, and a rail that slides is the entrance animation this
|
|
3011
|
+
// library does not have — same call as the `Switch` knob, which changes
|
|
3012
|
+
// position without moving.
|
|
3013
|
+
onCollapsedChange && (collapsed ? "w-sidebar-rail" : "w-sidebar"),
|
|
2938
3014
|
className
|
|
2939
3015
|
),
|
|
2940
3016
|
...props,
|
|
2941
3017
|
children: [
|
|
2942
|
-
|
|
3018
|
+
top || onCollapsedChange ? /* @__PURE__ */ jsxs(
|
|
3019
|
+
"div",
|
|
3020
|
+
{
|
|
3021
|
+
className: cn(
|
|
3022
|
+
"border-hairline px-step-sm pb-step-sm mb-step-xs gap-step-xs flex items-center border-b",
|
|
3023
|
+
collapsed ? "justify-center" : "justify-between"
|
|
3024
|
+
),
|
|
3025
|
+
children: [
|
|
3026
|
+
top ? /* @__PURE__ */ jsx("span", { className: "min-w-0", children: top }) : null,
|
|
3027
|
+
onCollapsedChange ? /* @__PURE__ */ jsx(
|
|
3028
|
+
"button",
|
|
3029
|
+
{
|
|
3030
|
+
type: "button",
|
|
3031
|
+
onClick: () => onCollapsedChange(!collapsed),
|
|
3032
|
+
"aria-expanded": !collapsed,
|
|
3033
|
+
"aria-label": collapsed ? expandLabel : collapseLabel,
|
|
3034
|
+
className: cn(
|
|
3035
|
+
"rounded-chip transition-standard shrink-0 cursor-pointer p-1",
|
|
3036
|
+
"text-text-muted hover:text-text-primary hover:bg-surface-raised",
|
|
3037
|
+
"focus-ring"
|
|
3038
|
+
),
|
|
3039
|
+
children: collapsed ? /* @__PURE__ */ jsx(ChevronRight, {}) : /* @__PURE__ */ jsx(ChevronLeft, {})
|
|
3040
|
+
}
|
|
3041
|
+
) : null
|
|
3042
|
+
]
|
|
3043
|
+
}
|
|
3044
|
+
) : null,
|
|
3045
|
+
title && !collapsed ? /* @__PURE__ */ jsx(Text, { variant: "eyebrow", tone: "muted", as: "p", className: "px-step-sm", children: title }) : null,
|
|
2943
3046
|
/* @__PURE__ */ jsx("ul", { className: "gap-0.5 flex flex-1 flex-col", children }),
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
3047
|
+
user ? /* @__PURE__ */ jsx(
|
|
3048
|
+
"div",
|
|
3049
|
+
{
|
|
3050
|
+
className: cn(
|
|
3051
|
+
"border-hairline px-step-sm pt-step-sm border-t",
|
|
3052
|
+
collapsed && "flex justify-center"
|
|
3053
|
+
),
|
|
3054
|
+
children: user
|
|
3055
|
+
}
|
|
3056
|
+
) : null,
|
|
3057
|
+
footer.length > 0 && !collapsed ? /* @__PURE__ */ jsx(
|
|
3058
|
+
Text,
|
|
3059
|
+
{
|
|
3060
|
+
variant: "meta",
|
|
3061
|
+
tone: "muted",
|
|
3062
|
+
as: "p",
|
|
3063
|
+
className: cn("px-step-sm", user ? "" : "border-hairline pt-step-sm border-t"),
|
|
3064
|
+
children: footer.map((p, i) => /* @__PURE__ */ jsxs("span", { children: [
|
|
3065
|
+
i > 0 ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: " \xB7 " }) : null,
|
|
3066
|
+
p
|
|
3067
|
+
] }, i))
|
|
3068
|
+
}
|
|
3069
|
+
) : null
|
|
2948
3070
|
]
|
|
2949
3071
|
}
|
|
2950
|
-
);
|
|
3072
|
+
) });
|
|
2951
3073
|
}
|
|
3074
|
+
var DELTA = {
|
|
3075
|
+
up: { glyph: ChevronUp, label: "sube" },
|
|
3076
|
+
down: { glyph: ChevronDown, label: "baja" },
|
|
3077
|
+
flat: { glyph: Minus, label: "sin cambio" }
|
|
3078
|
+
};
|
|
2952
3079
|
function Stat({
|
|
2953
3080
|
value,
|
|
2954
3081
|
label,
|
|
@@ -2956,30 +3083,52 @@ function Stat({
|
|
|
2956
3083
|
progress,
|
|
2957
3084
|
icon,
|
|
2958
3085
|
description,
|
|
3086
|
+
delta,
|
|
3087
|
+
spark,
|
|
2959
3088
|
className,
|
|
2960
3089
|
...props
|
|
2961
3090
|
}) {
|
|
3091
|
+
const DeltaGlyph = delta ? DELTA[delta.direction].glyph : null;
|
|
2962
3092
|
return /* @__PURE__ */ jsxs("div", { className: cn(CARD_SURFACE, "p-step-lg gap-step-xs flex flex-col", className), ...props, children: [
|
|
2963
|
-
/* @__PURE__ */ jsxs(
|
|
3093
|
+
/* @__PURE__ */ jsxs("div", { className: "gap-step-sm flex items-start justify-between", children: [
|
|
3094
|
+
/* @__PURE__ */ jsx(Text, { variant: "eyebrow", tone: "muted", as: "p", className: "min-w-0", children: label }),
|
|
2964
3095
|
icon ? (
|
|
2965
3096
|
// `aria-hidden` is not needed: the system's glyphs already carry it.
|
|
2966
|
-
//
|
|
2967
|
-
//
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
3097
|
+
// The circle is a SURFACE — the tint at 10 %, same as an alert's — and
|
|
3098
|
+
// the colour stays on the glyph, which is § 4b and also what keeps it
|
|
3099
|
+
// on the 3:1 graphical threshold instead of text's 4.5.
|
|
3100
|
+
/* @__PURE__ */ jsx(
|
|
3101
|
+
"span",
|
|
3102
|
+
{
|
|
3103
|
+
className: cn(
|
|
3104
|
+
"size-control-icon-sm text-ui flex shrink-0 items-center justify-center rounded-full",
|
|
3105
|
+
tone === "neutral" ? "bg-accent/10 text-accent" : "bg-warm/10 text-warm"
|
|
3106
|
+
),
|
|
3107
|
+
children: icon
|
|
3108
|
+
}
|
|
3109
|
+
)
|
|
3110
|
+
) : null
|
|
2971
3111
|
] }),
|
|
2972
|
-
/* @__PURE__ */ jsx(Text, { variant: "stat", as: "p", tone: tone === "
|
|
3112
|
+
/* @__PURE__ */ jsx(Text, { variant: "stat", as: "p", tone: tone === "neutral" ? "primary" : "warm", children: value }),
|
|
3113
|
+
delta && DeltaGlyph ? /* @__PURE__ */ jsxs(Text, { variant: "label", tone: "secondary", as: "p", className: "gap-step-xs flex items-center", children: [
|
|
3114
|
+
/* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
|
|
3115
|
+
DELTA[delta.direction].label,
|
|
3116
|
+
" "
|
|
3117
|
+
] }),
|
|
3118
|
+
/* @__PURE__ */ jsx(DeltaGlyph, { className: "shrink-0" }),
|
|
3119
|
+
delta.value
|
|
3120
|
+
] }) : null,
|
|
2973
3121
|
description ? /* @__PURE__ */ jsx(Text, { variant: "ui", tone: "secondary", as: "p", children: description }) : null,
|
|
2974
3122
|
typeof progress === "number" ? /* @__PURE__ */ jsx(
|
|
2975
3123
|
Progress,
|
|
2976
3124
|
{
|
|
2977
3125
|
value: progress,
|
|
2978
|
-
tone: tone === "
|
|
3126
|
+
tone: tone === "neutral" ? "accent" : "warm",
|
|
2979
3127
|
label: `${label}: ${progress}%`,
|
|
2980
3128
|
className: "mt-step-sm"
|
|
2981
3129
|
}
|
|
2982
|
-
) : null
|
|
3130
|
+
) : null,
|
|
3131
|
+
spark ? /* @__PURE__ */ jsx("div", { className: "mt-auto pt-step-md", children: spark }) : null
|
|
2983
3132
|
] });
|
|
2984
3133
|
}
|
|
2985
3134
|
function TalkCard({
|
|
@@ -3041,7 +3190,7 @@ function TalkCard({
|
|
|
3041
3190
|
return /* @__PURE__ */ jsx(CardShell, { className: cn("p-step-lg", className), ...props, children: /* @__PURE__ */ jsx("article", { className: "gap-step-sm flex h-full flex-col", children: body }) });
|
|
3042
3191
|
}
|
|
3043
3192
|
function ThemeToggle({
|
|
3044
|
-
label = "Cambiar de
|
|
3193
|
+
label = "Cambiar de tema",
|
|
3045
3194
|
onThemeChange,
|
|
3046
3195
|
variant = "secondary",
|
|
3047
3196
|
size: size2 = "icon",
|
|
@@ -3085,7 +3234,7 @@ function TableOfContents({
|
|
|
3085
3234
|
const classes = cn(
|
|
3086
3235
|
"px-step-sm -ml-px block border-l",
|
|
3087
3236
|
"font-sans text-label transition-standard",
|
|
3088
|
-
"focus-
|
|
3237
|
+
"focus-ring",
|
|
3089
3238
|
"cursor-pointer",
|
|
3090
3239
|
item2.nested && "pl-step-lg",
|
|
3091
3240
|
"border-transparent text-text-secondary hover:text-text-primary",
|
|
@@ -3099,70 +3248,4 @@ function TableOfContents({
|
|
|
3099
3248
|
] });
|
|
3100
3249
|
}
|
|
3101
3250
|
|
|
3102
|
-
|
|
3103
|
-
var social_exports = {};
|
|
3104
|
-
__export(social_exports, {
|
|
3105
|
-
Discord: () => Discord,
|
|
3106
|
-
Email: () => Email,
|
|
3107
|
-
GitHub: () => GitHub,
|
|
3108
|
-
Instagram: () => Instagram,
|
|
3109
|
-
LinkedIn: () => LinkedIn,
|
|
3110
|
-
Newsletter: () => Newsletter,
|
|
3111
|
-
Rss: () => Rss,
|
|
3112
|
-
X: () => X,
|
|
3113
|
-
YouTube: () => YouTube
|
|
3114
|
-
});
|
|
3115
|
-
function Brand({ children, ...props }) {
|
|
3116
|
-
return /* @__PURE__ */ jsx(
|
|
3117
|
-
"svg",
|
|
3118
|
-
{
|
|
3119
|
-
viewBox: "0 0 24 24",
|
|
3120
|
-
width: "1em",
|
|
3121
|
-
height: "1em",
|
|
3122
|
-
fill: "currentColor",
|
|
3123
|
-
"aria-hidden": "true",
|
|
3124
|
-
focusable: "false",
|
|
3125
|
-
...props,
|
|
3126
|
-
children
|
|
3127
|
-
}
|
|
3128
|
-
);
|
|
3129
|
-
}
|
|
3130
|
-
function Functional({ children, ...props }) {
|
|
3131
|
-
return /* @__PURE__ */ jsx(
|
|
3132
|
-
"svg",
|
|
3133
|
-
{
|
|
3134
|
-
viewBox: "0 0 24 24",
|
|
3135
|
-
width: "1em",
|
|
3136
|
-
height: "1em",
|
|
3137
|
-
fill: "none",
|
|
3138
|
-
stroke: "currentColor",
|
|
3139
|
-
strokeWidth: 1.6,
|
|
3140
|
-
strokeLinecap: "round",
|
|
3141
|
-
strokeLinejoin: "round",
|
|
3142
|
-
"aria-hidden": "true",
|
|
3143
|
-
focusable: "false",
|
|
3144
|
-
...props,
|
|
3145
|
-
children
|
|
3146
|
-
}
|
|
3147
|
-
);
|
|
3148
|
-
}
|
|
3149
|
-
var GitHub = (props) => /* @__PURE__ */ jsx(Brand, { ...props, children: /* @__PURE__ */ 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" }) });
|
|
3150
|
-
var LinkedIn = (props) => /* @__PURE__ */ jsx(Brand, { ...props, children: /* @__PURE__ */ 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" }) });
|
|
3151
|
-
var X = (props) => /* @__PURE__ */ jsx(Brand, { ...props, children: /* @__PURE__ */ 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" }) });
|
|
3152
|
-
var Instagram = (props) => /* @__PURE__ */ jsx(Brand, { ...props, children: /* @__PURE__ */ 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" }) });
|
|
3153
|
-
var Discord = (props) => /* @__PURE__ */ jsx(Brand, { ...props, children: /* @__PURE__ */ 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" }) });
|
|
3154
|
-
var YouTube = (props) => /* @__PURE__ */ jsx(Brand, { ...props, children: /* @__PURE__ */ 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" }) });
|
|
3155
|
-
var Rss = (props) => /* @__PURE__ */ jsxs(Functional, { ...props, children: [
|
|
3156
|
-
/* @__PURE__ */ jsx("path", { d: "M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16" }),
|
|
3157
|
-
/* @__PURE__ */ jsx("circle", { cx: "5", cy: "19", r: "1.6", fill: "currentColor", stroke: "none" })
|
|
3158
|
-
] });
|
|
3159
|
-
var Email = (props) => /* @__PURE__ */ jsxs(Functional, { ...props, children: [
|
|
3160
|
-
/* @__PURE__ */ jsx("rect", { x: "2.75", y: "4.75", width: "18.5", height: "14.5", rx: "2" }),
|
|
3161
|
-
/* @__PURE__ */ jsx("path", { d: "m3.5 7.5 7.4 5.2a2 2 0 0 0 2.2 0l7.4-5.2" })
|
|
3162
|
-
] });
|
|
3163
|
-
var Newsletter = (props) => /* @__PURE__ */ jsxs(Functional, { ...props, children: [
|
|
3164
|
-
/* @__PURE__ */ 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" }),
|
|
3165
|
-
/* @__PURE__ */ jsx("path", { d: "M13.7 19a2 2 0 0 1-3.4 0" })
|
|
3166
|
-
] });
|
|
3167
|
-
|
|
3168
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, ArticleCard, AudioPlayer, AuthorCard, Avatar, AvatarFallback, AvatarImage, AvatarUpload, Badge, Blockquote, Breadcrumb, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryBadge, Checkbox, Code, CodeBlock, CourseCard, DateField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EventCalendar, Footer, FooterLink, Hero, Input, LinkRow, MetricBadge, Nav, NavItem, NewsletterForm, PageHeader, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup2 as RadioGroup, RadioGroupItem, ScrollingProgressBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SidebarItem, SidebarNav, Skeleton, Stat, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TalkCard, Textarea, ThemeToggle, ToastAction, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, social_exports as social, toast2 as toast, useTheme };
|
|
3251
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, ArticleCard, AudioPlayer, AuthorCard, Avatar, AvatarFallback, AvatarImage, AvatarUpload, Badge, Blockquote, Breadcrumb, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryBadge, Checkbox, Code, CodeBlock, CourseCard, DateField, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EventCalendar, Footer, FooterLink, Hero, Input, LinkRow, MetricBadge, Nav, NavItem, NewsletterForm, PageHeader, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup2 as RadioGroup, RadioGroupItem, ScrollingProgressBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SidebarGroup, SidebarItem, SidebarNav, Skeleton, Stat, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TalkCard, Textarea, ThemeToggle, ToastAction, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, toast2 as toast, useTheme };
|