@eduardoalvarez/arrecife 0.11.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +34 -14
- package/dist/brand/index.cjs +2 -2
- package/dist/brand/index.d.cts +1 -1
- package/dist/brand/index.d.ts +1 -1
- package/dist/brand/index.js +3 -3
- package/dist/chart/index.cjs +2 -2
- package/dist/chart/index.d.cts +3 -3
- package/dist/chart/index.d.ts +3 -3
- package/dist/chart/index.js +3 -3
- package/dist/{chunk-FGFNK72B.js → chunk-5YWGOFDX.js} +17 -4
- package/dist/{chunk-5A5GH2PF.js → chunk-6QJQ6K7J.js} +1 -1
- package/dist/{chunk-TRPBID2W.js → chunk-BFYNBIVJ.js} +1 -1
- package/dist/{chunk-RKGKO2TW.js → chunk-BRDTB44R.js} +2 -2
- package/dist/{chunk-XXDATT3A.js → chunk-FF33ARRA.js} +1 -1
- package/dist/{chunk-FAAGZG7A.js → chunk-TMUGT3Y3.js} +1 -1
- package/dist/{chunk-6IGD5REB.js → chunk-W75O3Z77.js} +1 -1
- package/dist/{chunk-ZSCSKCTY.js → chunk-WU66TPJT.js} +1 -1
- package/dist/form/index.cjs +2 -2
- package/dist/form/index.js +4 -4
- package/dist/icons/index.cjs +2 -2
- package/dist/icons/index.d.cts +2 -2
- package/dist/icons/index.d.ts +2 -2
- package/dist/icons/index.js +3 -3
- package/dist/index.cjs +86 -18
- package/dist/index.d.cts +31 -16
- package/dist/index.d.ts +31 -16
- package/dist/index.js +83 -28
- package/dist/og/index.cjs +1 -2
- package/dist/og/index.js +1 -1
- package/dist/shiki/index.js +1 -1
- package/dist/tokens/index.cjs +17 -4
- package/dist/tokens/index.d.cts +20 -5
- package/dist/tokens/index.d.ts +20 -5
- package/dist/tokens/index.js +2 -2
- package/dist/tokens/theme.css +20 -3
- package/dist/variants/index.cjs +1 -1
- package/dist/variants/index.d.cts +2 -2
- package/dist/variants/index.d.ts +2 -2
- package/dist/variants/index.js +1 -1
- package/llms.txt +39 -13
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { Label } from './chunk-
|
|
3
|
-
export { Label } from './chunk-
|
|
4
|
-
import { Text } from './chunk-
|
|
5
|
-
export { Text } from './chunk-
|
|
6
|
-
export { tokens } from './chunk-
|
|
2
|
+
import { Label } from './chunk-W75O3Z77.js';
|
|
3
|
+
export { Label } from './chunk-W75O3Z77.js';
|
|
4
|
+
import { Text } from './chunk-BFYNBIVJ.js';
|
|
5
|
+
export { Text } from './chunk-BFYNBIVJ.js';
|
|
6
|
+
export { tokens } from './chunk-6QJQ6K7J.js';
|
|
7
7
|
import { toggleTheme, currentTheme, watchTheme } from './chunk-GCRII2KQ.js';
|
|
8
8
|
export { THEME_ATTRIBUTE, THEME_EVENT, THEME_KEY, applyTheme, currentTheme, preferredTheme, storedTheme, themeScript, toggleTheme, watchTheme } from './chunk-GCRII2KQ.js';
|
|
9
|
-
import { alert, button, avatar, badge, category, metric, CARD_SURFACE, CARD } from './chunk-
|
|
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-
|
|
9
|
+
import { alert, button, avatar, badge, category, metric, CARD_SURFACE, CARD } from './chunk-FF33ARRA.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-FF33ARRA.js';
|
|
11
11
|
export { text as textVariants } from './chunk-ODBFN44D.js';
|
|
12
|
-
import { MascotFace, Mascot } from './chunk-
|
|
13
|
-
export { Isotype, Logo, Mascot, MascotFace } from './chunk-
|
|
14
|
-
import { Icon } from './chunk-
|
|
15
|
-
import { cn } from './chunk-
|
|
16
|
-
export { cn } from './chunk-
|
|
12
|
+
import { MascotFace, Mascot } from './chunk-BRDTB44R.js';
|
|
13
|
+
export { Isotype, Logo, Mascot, MascotFace } from './chunk-BRDTB44R.js';
|
|
14
|
+
import { Icon } from './chunk-WU66TPJT.js';
|
|
15
|
+
import { cn } from './chunk-TMUGT3Y3.js';
|
|
16
|
+
export { cn } from './chunk-TMUGT3Y3.js';
|
|
17
17
|
export { ASSETS_PATH, faceList, faceUsage, faces, fins, poseList, poses } from './chunk-CKRSQPTX.js';
|
|
18
|
-
import { naming } from './chunk-
|
|
19
|
-
export { brand, colors, control, dark, fonts, gradient, light, limits, motion, naming, radius, series, shadow, size, spacing, syntax, tagline, typeScale } from './chunk-
|
|
20
|
-
import { CaretDown, XCircle, Warning, CheckCircle, Info, Camera, CircleNotch, CaretLeft, CaretRight, Minus, Check, X, DotsThree, CaretUp, Copy, ArrowUpRight, TrendDown, TrendUp, Sun, Moon, WarningCircle, Waveform, ArrowCounterClockwise, ArrowClockwise, SpeakerSlash, SpeakerHigh, ArrowsClockwise, Pause, Play } from '@phosphor-icons/react';
|
|
18
|
+
import { naming } from './chunk-5YWGOFDX.js';
|
|
19
|
+
export { brand, colors, control, dark, fonts, gradient, light, limits, motion, naming, radius, series, shadow, size, spacing, syntax, tagline, typeScale } from './chunk-5YWGOFDX.js';
|
|
20
|
+
import { CaretDown, XCircle, Warning, CheckCircle, Info, Camera, CircleNotch, CaretLeft, CaretRight, Minus, Check, X, DotsThree, CaretUp, Copy, ArrowUpRight, TrendDown, TrendUp, Sun, Moon, WarningCircle, Waveform, ArrowCounterClockwise, ArrowClockwise, SpeakerSlash, SpeakerHigh, ArrowsClockwise, Pause, Play, Heart } from '@phosphor-icons/react';
|
|
21
21
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
22
22
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
23
23
|
import { cva } from 'class-variance-authority';
|
|
@@ -2478,8 +2478,7 @@ function SocialRow({ social }) {
|
|
|
2478
2478
|
function Signature({
|
|
2479
2479
|
year,
|
|
2480
2480
|
href,
|
|
2481
|
-
domain: domainName = naming.domain
|
|
2482
|
-
className
|
|
2481
|
+
domain: domainName = naming.domain
|
|
2483
2482
|
}) {
|
|
2484
2483
|
const domain = href ? /* @__PURE__ */ jsx(
|
|
2485
2484
|
"a",
|
|
@@ -2489,7 +2488,7 @@ function Signature({
|
|
|
2489
2488
|
children: domainName
|
|
2490
2489
|
}
|
|
2491
2490
|
) : domainName;
|
|
2492
|
-
return /* @__PURE__ */ jsxs(Text, { variant: "meta", tone: "muted", as: "p",
|
|
2491
|
+
return /* @__PURE__ */ jsxs(Text, { variant: "meta", tone: "muted", as: "p", children: [
|
|
2493
2492
|
/* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: "text-accent", children: [
|
|
2494
2493
|
"$",
|
|
2495
2494
|
" "
|
|
@@ -2507,6 +2506,40 @@ function Signature({
|
|
|
2507
2506
|
)
|
|
2508
2507
|
] });
|
|
2509
2508
|
}
|
|
2509
|
+
function BuiltWith() {
|
|
2510
|
+
return /* @__PURE__ */ jsxs(Text, { variant: "meta", tone: "muted", as: "p", children: [
|
|
2511
|
+
"Creado con",
|
|
2512
|
+
" ",
|
|
2513
|
+
/* @__PURE__ */ jsx(
|
|
2514
|
+
"a",
|
|
2515
|
+
{
|
|
2516
|
+
href: naming.libraryUrl,
|
|
2517
|
+
target: "_blank",
|
|
2518
|
+
rel: "noopener noreferrer",
|
|
2519
|
+
className: cn(
|
|
2520
|
+
"text-accent hover:text-text-primary transition-standard cursor-pointer",
|
|
2521
|
+
"underline decoration-1 underline-offset-4",
|
|
2522
|
+
"rounded-chip focus-ring"
|
|
2523
|
+
),
|
|
2524
|
+
children: naming.library
|
|
2525
|
+
}
|
|
2526
|
+
),
|
|
2527
|
+
" ",
|
|
2528
|
+
/* @__PURE__ */ jsx(Icon, { as: Heart, tone: "current", className: "text-accent inline align-middle" })
|
|
2529
|
+
] });
|
|
2530
|
+
}
|
|
2531
|
+
function SignatureBlock({
|
|
2532
|
+
year,
|
|
2533
|
+
href,
|
|
2534
|
+
domain,
|
|
2535
|
+
builtWith,
|
|
2536
|
+
className
|
|
2537
|
+
}) {
|
|
2538
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex shrink-0 flex-col items-center sm:items-end", className), children: [
|
|
2539
|
+
/* @__PURE__ */ jsx(Signature, { year, href, domain }),
|
|
2540
|
+
builtWith ? /* @__PURE__ */ jsx(BuiltWith, {}) : null
|
|
2541
|
+
] });
|
|
2542
|
+
}
|
|
2510
2543
|
function Shell({
|
|
2511
2544
|
className,
|
|
2512
2545
|
contentClassName,
|
|
@@ -2529,6 +2562,7 @@ function Footer({
|
|
|
2529
2562
|
linkAsChild,
|
|
2530
2563
|
social,
|
|
2531
2564
|
brand: brand2,
|
|
2565
|
+
builtWith,
|
|
2532
2566
|
year = (/* @__PURE__ */ new Date()).getFullYear(),
|
|
2533
2567
|
signatureHref,
|
|
2534
2568
|
domain,
|
|
@@ -2578,21 +2612,42 @@ function Footer({
|
|
|
2578
2612
|
column.title
|
|
2579
2613
|
)) })
|
|
2580
2614
|
] }),
|
|
2581
|
-
/* @__PURE__ */ jsx("div", { className: "border-hairline mt-step-xl pt-step-lg border-t", children: /* @__PURE__ */ jsx(
|
|
2615
|
+
/* @__PURE__ */ jsx("div", { className: "border-hairline mt-step-xl pt-step-lg border-t", children: /* @__PURE__ */ jsx(
|
|
2616
|
+
SignatureBlock,
|
|
2617
|
+
{
|
|
2618
|
+
year,
|
|
2619
|
+
href: signatureHref,
|
|
2620
|
+
domain,
|
|
2621
|
+
builtWith
|
|
2622
|
+
}
|
|
2623
|
+
) })
|
|
2582
2624
|
] });
|
|
2583
2625
|
}
|
|
2584
2626
|
const rows = [
|
|
2585
2627
|
brand2 ? /* @__PURE__ */ jsx("div", { className: "flex items-center", children: brand2 }, "brand") : null,
|
|
2586
2628
|
social && social.length > 0 ? /* @__PURE__ */ jsx(SocialRow, { social }, "social") : null
|
|
2587
2629
|
].filter(Boolean);
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2630
|
+
return /* @__PURE__ */ jsxs(
|
|
2631
|
+
Shell,
|
|
2632
|
+
{
|
|
2633
|
+
className,
|
|
2634
|
+
contentClassName: "gap-step-lg items-center sm:flex-row sm:items-start",
|
|
2635
|
+
...rest,
|
|
2636
|
+
children: [
|
|
2637
|
+
rows.length > 0 ? /* @__PURE__ */ jsx("div", { className: "gap-step-lg flex flex-col items-center sm:items-start", children: rows }) : null,
|
|
2638
|
+
/* @__PURE__ */ jsx(
|
|
2639
|
+
SignatureBlock,
|
|
2640
|
+
{
|
|
2641
|
+
year,
|
|
2642
|
+
href: signatureHref,
|
|
2643
|
+
domain,
|
|
2644
|
+
builtWith,
|
|
2645
|
+
className: "sm:ml-auto"
|
|
2646
|
+
}
|
|
2647
|
+
)
|
|
2648
|
+
]
|
|
2649
|
+
}
|
|
2650
|
+
);
|
|
2596
2651
|
}
|
|
2597
2652
|
function Hero({
|
|
2598
2653
|
title,
|
|
@@ -2740,7 +2795,7 @@ function Nav({ brand: brand2, children, actions, size: size2 = "default", classN
|
|
|
2740
2795
|
puts it in `actions`. A `Nav` that hid its own items would leave every
|
|
2741
2796
|
consumer without a drawer with no navigation at all, silently.
|
|
2742
2797
|
|
|
2743
|
-
See `docs/decisions
|
|
2798
|
+
See `docs/decisions/` § 54.
|
|
2744
2799
|
*/
|
|
2745
2800
|
/* @__PURE__ */ jsx("nav", { "aria-label": "Principal", className: "ml-auto min-w-0 overflow-x-auto", children: /* @__PURE__ */ jsxs("ul", { className: "gap-step-md flex w-max items-center", children: [
|
|
2746
2801
|
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-text-muted font-mono text-meta select-none", children: "~/" }),
|
package/dist/og/index.cjs
CHANGED
|
@@ -74,8 +74,7 @@ var tagline = {
|
|
|
74
74
|
var naming = {
|
|
75
75
|
wordmark: "Eduardo \xC1lvarez",
|
|
76
76
|
/** The domain, for the footer CLI signature: `$ cd ~/eduardoalvarez.dev/2026`. */
|
|
77
|
-
domain: "eduardoalvarez.dev"
|
|
78
|
-
};
|
|
77
|
+
domain: "eduardoalvarez.dev"};
|
|
79
78
|
|
|
80
79
|
// src/og/templates.ts
|
|
81
80
|
var OG = {
|
package/dist/og/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ASSETS_PATH, faces, poses, fins } from '../chunk-CKRSQPTX.js';
|
|
2
|
-
import { fonts, dark, light, naming, gradient, tagline, typeScale } from '../chunk-
|
|
2
|
+
import { fonts, dark, light, naming, gradient, tagline, typeScale } from '../chunk-5YWGOFDX.js';
|
|
3
3
|
|
|
4
4
|
// src/og/templates.ts
|
|
5
5
|
var OG = {
|
package/dist/shiki/index.js
CHANGED
package/dist/tokens/index.cjs
CHANGED
|
@@ -146,7 +146,7 @@ var typeScale = {
|
|
|
146
146
|
* (plankton 5.57:1 over abyss), which is the part that is not negotiable.
|
|
147
147
|
*
|
|
148
148
|
* At 13 the three badge families grew past the size of a small button and
|
|
149
|
-
* outweighed the title they accompany. See `docs/decisions
|
|
149
|
+
* outweighed the title they accompany. See `docs/decisions/` § 10.
|
|
150
150
|
*/
|
|
151
151
|
chip: { family: "mono", size: 11.5, lineHeight: 1.4, weight: 400 },
|
|
152
152
|
/**
|
|
@@ -200,7 +200,7 @@ var control = {
|
|
|
200
200
|
* baseline; 28 would have been a fifth height that matches nothing.
|
|
201
201
|
*
|
|
202
202
|
* It does not replace `icon`. A page's primary action stays at 42; this is for
|
|
203
|
-
* a row of a table. See `docs/decisions
|
|
203
|
+
* a row of a table. See `docs/decisions/` § 22.
|
|
204
204
|
*/
|
|
205
205
|
iconSm: 32
|
|
206
206
|
};
|
|
@@ -223,7 +223,7 @@ var size = {
|
|
|
223
223
|
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
224
224
|
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
225
225
|
* app of the five is denser than the four reading sites. See
|
|
226
|
-
* `docs/decisions
|
|
226
|
+
* `docs/decisions/` § 30.
|
|
227
227
|
*/
|
|
228
228
|
navCompact: 56,
|
|
229
229
|
/**
|
|
@@ -296,7 +296,20 @@ var naming = {
|
|
|
296
296
|
wordmark: "Eduardo \xC1lvarez",
|
|
297
297
|
mascot: "Tiburonc\xEDn",
|
|
298
298
|
/** The domain, for the footer CLI signature: `$ cd ~/eduardoalvarez.dev/2026`. */
|
|
299
|
-
domain: "eduardoalvarez.dev"
|
|
299
|
+
domain: "eduardoalvarez.dev",
|
|
300
|
+
/** The library's own name, for a footer that credits it. */
|
|
301
|
+
library: "Arrecife",
|
|
302
|
+
/**
|
|
303
|
+
* Where the library is published, for `Footer builtWith`.
|
|
304
|
+
*
|
|
305
|
+
* It is here and not written into the component for the reason the domain is:
|
|
306
|
+
* one string, five projects. It is the same URL as `homepage` in
|
|
307
|
+
* `package.json` and it cannot be derived from it — this file imports nothing
|
|
308
|
+
* — so `check:exports` compares the two on every build. Without that, moving
|
|
309
|
+
* the Storybook would update what npm prints and leave five production
|
|
310
|
+
* footers linking at the old address.
|
|
311
|
+
*/
|
|
312
|
+
libraryUrl: "https://arrecife.eduardoalvarez.dev"
|
|
300
313
|
};
|
|
301
314
|
|
|
302
315
|
// src/tokens/index.ts
|
package/dist/tokens/index.d.cts
CHANGED
|
@@ -280,7 +280,7 @@ declare const typeScale: {
|
|
|
280
280
|
* (plankton 5.57:1 over abyss), which is the part that is not negotiable.
|
|
281
281
|
*
|
|
282
282
|
* At 13 the three badge families grew past the size of a small button and
|
|
283
|
-
* outweighed the title they accompany. See `docs/decisions
|
|
283
|
+
* outweighed the title they accompany. See `docs/decisions/` § 10.
|
|
284
284
|
*/
|
|
285
285
|
readonly chip: {
|
|
286
286
|
readonly family: "mono";
|
|
@@ -336,7 +336,7 @@ declare const radius: {
|
|
|
336
336
|
*
|
|
337
337
|
* Only the horizontal padding and the icon button's square. Height comes from
|
|
338
338
|
* the type scale, and there is a single radius for all three sizes: see
|
|
339
|
-
* `docs/decisions
|
|
339
|
+
* `docs/decisions/` § 1.
|
|
340
340
|
*
|
|
341
341
|
* They are not in `spacing` because they are not page rhythm: 14, 22 and 30 do
|
|
342
342
|
* not compose with 8/12/16/26/40 and must not be offered as margins.
|
|
@@ -360,7 +360,7 @@ declare const control: {
|
|
|
360
360
|
* baseline; 28 would have been a fifth height that matches nothing.
|
|
361
361
|
*
|
|
362
362
|
* It does not replace `icon`. A page's primary action stays at 42; this is for
|
|
363
|
-
* a row of a table. See `docs/decisions
|
|
363
|
+
* a row of a table. See `docs/decisions/` § 22.
|
|
364
364
|
*/
|
|
365
365
|
readonly iconSm: 32;
|
|
366
366
|
};
|
|
@@ -405,7 +405,7 @@ declare const size: {
|
|
|
405
405
|
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
406
406
|
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
407
407
|
* app of the five is denser than the four reading sites. See
|
|
408
|
-
* `docs/decisions
|
|
408
|
+
* `docs/decisions/` § 30.
|
|
409
409
|
*/
|
|
410
410
|
readonly navCompact: 56;
|
|
411
411
|
/**
|
|
@@ -488,7 +488,7 @@ declare const syntax: {
|
|
|
488
488
|
*
|
|
489
489
|
* A fifth series is not added by inventing a hue. If a chart needs five
|
|
490
490
|
* categories, either there are too many categories or they need an «other»
|
|
491
|
-
* bucket: see `docs/decisions
|
|
491
|
+
* bucket: see `docs/decisions/` § 18.
|
|
492
492
|
*/
|
|
493
493
|
declare const series: {
|
|
494
494
|
readonly dark: readonly ["#35D6C0", "#F2A65A", "#3E7CB1", "#71919C"];
|
|
@@ -538,6 +538,19 @@ declare const naming: {
|
|
|
538
538
|
readonly mascot: "Tiburoncín";
|
|
539
539
|
/** The domain, for the footer CLI signature: `$ cd ~/eduardoalvarez.dev/2026`. */
|
|
540
540
|
readonly domain: "eduardoalvarez.dev";
|
|
541
|
+
/** The library's own name, for a footer that credits it. */
|
|
542
|
+
readonly library: "Arrecife";
|
|
543
|
+
/**
|
|
544
|
+
* Where the library is published, for `Footer builtWith`.
|
|
545
|
+
*
|
|
546
|
+
* It is here and not written into the component for the reason the domain is:
|
|
547
|
+
* one string, five projects. It is the same URL as `homepage` in
|
|
548
|
+
* `package.json` and it cannot be derived from it — this file imports nothing
|
|
549
|
+
* — so `check:exports` compares the two on every build. Without that, moving
|
|
550
|
+
* the Storybook would update what npm prints and leave five production
|
|
551
|
+
* footers linking at the old address.
|
|
552
|
+
*/
|
|
553
|
+
readonly libraryUrl: "https://arrecife.eduardoalvarez.dev";
|
|
541
554
|
};
|
|
542
555
|
type ColorMode = keyof typeof colors;
|
|
543
556
|
type ColorToken = keyof typeof dark;
|
|
@@ -782,6 +795,8 @@ declare const tokens: {
|
|
|
782
795
|
readonly wordmark: "Eduardo Álvarez";
|
|
783
796
|
readonly mascot: "Tiburoncín";
|
|
784
797
|
readonly domain: "eduardoalvarez.dev";
|
|
798
|
+
readonly library: "Arrecife";
|
|
799
|
+
readonly libraryUrl: "https://arrecife.eduardoalvarez.dev";
|
|
785
800
|
};
|
|
786
801
|
};
|
|
787
802
|
type Tokens = typeof tokens;
|
package/dist/tokens/index.d.ts
CHANGED
|
@@ -280,7 +280,7 @@ declare const typeScale: {
|
|
|
280
280
|
* (plankton 5.57:1 over abyss), which is the part that is not negotiable.
|
|
281
281
|
*
|
|
282
282
|
* At 13 the three badge families grew past the size of a small button and
|
|
283
|
-
* outweighed the title they accompany. See `docs/decisions
|
|
283
|
+
* outweighed the title they accompany. See `docs/decisions/` § 10.
|
|
284
284
|
*/
|
|
285
285
|
readonly chip: {
|
|
286
286
|
readonly family: "mono";
|
|
@@ -336,7 +336,7 @@ declare const radius: {
|
|
|
336
336
|
*
|
|
337
337
|
* Only the horizontal padding and the icon button's square. Height comes from
|
|
338
338
|
* the type scale, and there is a single radius for all three sizes: see
|
|
339
|
-
* `docs/decisions
|
|
339
|
+
* `docs/decisions/` § 1.
|
|
340
340
|
*
|
|
341
341
|
* They are not in `spacing` because they are not page rhythm: 14, 22 and 30 do
|
|
342
342
|
* not compose with 8/12/16/26/40 and must not be offered as margins.
|
|
@@ -360,7 +360,7 @@ declare const control: {
|
|
|
360
360
|
* baseline; 28 would have been a fifth height that matches nothing.
|
|
361
361
|
*
|
|
362
362
|
* It does not replace `icon`. A page's primary action stays at 42; this is for
|
|
363
|
-
* a row of a table. See `docs/decisions
|
|
363
|
+
* a row of a table. See `docs/decisions/` § 22.
|
|
364
364
|
*/
|
|
365
365
|
readonly iconSm: 32;
|
|
366
366
|
};
|
|
@@ -405,7 +405,7 @@ declare const size: {
|
|
|
405
405
|
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
406
406
|
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
407
407
|
* app of the five is denser than the four reading sites. See
|
|
408
|
-
* `docs/decisions
|
|
408
|
+
* `docs/decisions/` § 30.
|
|
409
409
|
*/
|
|
410
410
|
readonly navCompact: 56;
|
|
411
411
|
/**
|
|
@@ -488,7 +488,7 @@ declare const syntax: {
|
|
|
488
488
|
*
|
|
489
489
|
* A fifth series is not added by inventing a hue. If a chart needs five
|
|
490
490
|
* categories, either there are too many categories or they need an «other»
|
|
491
|
-
* bucket: see `docs/decisions
|
|
491
|
+
* bucket: see `docs/decisions/` § 18.
|
|
492
492
|
*/
|
|
493
493
|
declare const series: {
|
|
494
494
|
readonly dark: readonly ["#35D6C0", "#F2A65A", "#3E7CB1", "#71919C"];
|
|
@@ -538,6 +538,19 @@ declare const naming: {
|
|
|
538
538
|
readonly mascot: "Tiburoncín";
|
|
539
539
|
/** The domain, for the footer CLI signature: `$ cd ~/eduardoalvarez.dev/2026`. */
|
|
540
540
|
readonly domain: "eduardoalvarez.dev";
|
|
541
|
+
/** The library's own name, for a footer that credits it. */
|
|
542
|
+
readonly library: "Arrecife";
|
|
543
|
+
/**
|
|
544
|
+
* Where the library is published, for `Footer builtWith`.
|
|
545
|
+
*
|
|
546
|
+
* It is here and not written into the component for the reason the domain is:
|
|
547
|
+
* one string, five projects. It is the same URL as `homepage` in
|
|
548
|
+
* `package.json` and it cannot be derived from it — this file imports nothing
|
|
549
|
+
* — so `check:exports` compares the two on every build. Without that, moving
|
|
550
|
+
* the Storybook would update what npm prints and leave five production
|
|
551
|
+
* footers linking at the old address.
|
|
552
|
+
*/
|
|
553
|
+
readonly libraryUrl: "https://arrecife.eduardoalvarez.dev";
|
|
541
554
|
};
|
|
542
555
|
type ColorMode = keyof typeof colors;
|
|
543
556
|
type ColorToken = keyof typeof dark;
|
|
@@ -782,6 +795,8 @@ declare const tokens: {
|
|
|
782
795
|
readonly wordmark: "Eduardo Álvarez";
|
|
783
796
|
readonly mascot: "Tiburoncín";
|
|
784
797
|
readonly domain: "eduardoalvarez.dev";
|
|
798
|
+
readonly library: "Arrecife";
|
|
799
|
+
readonly libraryUrl: "https://arrecife.eduardoalvarez.dev";
|
|
785
800
|
};
|
|
786
801
|
};
|
|
787
802
|
type Tokens = typeof tokens;
|
package/dist/tokens/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { tokens } from '../chunk-
|
|
2
|
-
export { brand, colors, control, dark, fonts, gradient, light, limits, motion, naming, radius, series, shadow, size, spacing, syntax, tagline, typeScale } from '../chunk-
|
|
1
|
+
export { tokens } from '../chunk-6QJQ6K7J.js';
|
|
2
|
+
export { brand, colors, control, dark, fonts, gradient, light, limits, motion, naming, radius, series, shadow, size, spacing, syntax, tagline, typeScale } from '../chunk-5YWGOFDX.js';
|
package/dist/tokens/theme.css
CHANGED
|
@@ -18,7 +18,24 @@
|
|
|
18
18
|
@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
|
|
19
19
|
@custom-variant light (&:where([data-theme="light"], [data-theme="light"] *));
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
/* STATIC, and that word is the whole of a bug fix. Tailwind v4 emits a theme
|
|
22
|
+
variable only if some utility it generated uses it, and a token read with
|
|
23
|
+
var() from JS is asked for by no utility at all: seriesColor(i) returns
|
|
24
|
+
var(--color-series-N) on purpose, so the color follows the mode instead of
|
|
25
|
+
freezing to whichever one was live when the chart mounted. No project writes
|
|
26
|
+
bg-series-1, so Tailwind dropped all four as unused, the var() resolved to
|
|
27
|
+
nothing, and a fill that resolves to nothing is black — on a dark page,
|
|
28
|
+
indistinguishable from «no data». No error in the console and none in the
|
|
29
|
+
build; the report that arrived was «the information is not showing».
|
|
30
|
+
|
|
31
|
+
With static, every token this file declares reaches :root whether a class
|
|
32
|
+
asks for it or not, which is what a published token set is: a contract, not
|
|
33
|
+
a subset of itself discovered by usage. It costs CSS — measured at +1.6 KB
|
|
34
|
+
raw / +234 B gzipped for a project using the library's whole vocabulary, and
|
|
35
|
+
+3.2 KB / +579 B for one that writes almost nothing — and it buys the
|
|
36
|
+
removal of a whole class of silent failure rather than of one instance.
|
|
37
|
+
See docs/decisions/ § 61. */
|
|
38
|
+
@theme static {
|
|
22
39
|
/* --- color · dark mode (default) ------------------------------------- */
|
|
23
40
|
--color-background: #091319;
|
|
24
41
|
--color-surface: #10202B;
|
|
@@ -265,7 +282,7 @@
|
|
|
265
282
|
written from first principles about terminals rather than read off the two
|
|
266
283
|
sites that already had a signature. A utility with no consumer and no origin
|
|
267
284
|
is not a feature, it is the invention still sitting there under a new label.
|
|
268
|
-
See docs/decisions/
|
|
285
|
+
See docs/decisions/ § 45.
|
|
269
286
|
|
|
270
287
|
Its reason is the one the other four exceptions share: it is feedback about
|
|
271
288
|
PROGRESS. A prompt that radiates says the terminal is live, which is the same
|
|
@@ -283,7 +300,7 @@
|
|
|
283
300
|
Behind motion-safe at the call site — the half NOT copied from cursos, whose
|
|
284
301
|
span animates regardless. The blog guarded it, every other exception here is
|
|
285
302
|
guarded, and at rest the bar is simply solid.
|
|
286
|
-
See docs/decisions/
|
|
303
|
+
See docs/decisions/ § 45. */
|
|
287
304
|
@keyframes arrecife-pulse {
|
|
288
305
|
0%, 100% {
|
|
289
306
|
box-shadow: 0 0 0 0 color-mix(in oklab, var(--color-accent) 70%, transparent);
|
package/dist/variants/index.cjs
CHANGED
|
@@ -21,7 +21,7 @@ var button = classVarianceAuthority.cva(
|
|
|
21
21
|
],
|
|
22
22
|
// The one control whose focus ring is not biolume. It is the system's
|
|
23
23
|
// only sand fill, and a biolume ring three pixels off a sand button puts
|
|
24
|
-
// both of the brand's accents in the same glance. See `docs/decisions
|
|
24
|
+
// both of the brand's accents in the same glance. See `docs/decisions/` § 37.
|
|
25
25
|
conversion: "bg-warm text-warm-on hover:bg-warm-hover focus-ring-warm",
|
|
26
26
|
secondary: [
|
|
27
27
|
"border-hairline-hover border bg-transparent text-text-primary",
|
|
@@ -32,7 +32,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
|
|
|
32
32
|
* actions and toolbars, next to «Editar» and «Duplicar», with no context to tell
|
|
33
33
|
* them apart: with every one rendered as `secondary`, «Eliminar curso» looked
|
|
34
34
|
* exactly like «Cancelar» and only the word separated them. See
|
|
35
|
-
* `docs/decisions
|
|
35
|
+
* `docs/decisions/` § 21.
|
|
36
36
|
*
|
|
37
37
|
* `destructiveOutline` fills on hover, and that IS an exception to «secondary is
|
|
38
38
|
* never filled» — declared here rather than discovered later. A destructive
|
|
@@ -151,7 +151,7 @@ declare const text: (props?: ({
|
|
|
151
151
|
*
|
|
152
152
|
* The radius: the document says 12, which is none of the system's five radii. It
|
|
153
153
|
* uses the card radius rather than introducing a sixth — see
|
|
154
|
-
* `docs/decisions
|
|
154
|
+
* `docs/decisions/` § 3.
|
|
155
155
|
*/
|
|
156
156
|
declare const alert: (props?: ({
|
|
157
157
|
variant?: "error" | "accent" | "success" | "warning" | null | undefined;
|
package/dist/variants/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
|
|
|
32
32
|
* actions and toolbars, next to «Editar» and «Duplicar», with no context to tell
|
|
33
33
|
* them apart: with every one rendered as `secondary`, «Eliminar curso» looked
|
|
34
34
|
* exactly like «Cancelar» and only the word separated them. See
|
|
35
|
-
* `docs/decisions
|
|
35
|
+
* `docs/decisions/` § 21.
|
|
36
36
|
*
|
|
37
37
|
* `destructiveOutline` fills on hover, and that IS an exception to «secondary is
|
|
38
38
|
* never filled» — declared here rather than discovered later. A destructive
|
|
@@ -151,7 +151,7 @@ declare const text: (props?: ({
|
|
|
151
151
|
*
|
|
152
152
|
* The radius: the document says 12, which is none of the system's five radii. It
|
|
153
153
|
* uses the card radius rather than introducing a sixth — see
|
|
154
|
-
* `docs/decisions
|
|
154
|
+
* `docs/decisions/` § 3.
|
|
155
155
|
*/
|
|
156
156
|
declare const alert: (props?: ({
|
|
157
157
|
variant?: "error" | "accent" | "success" | "warning" | null | undefined;
|
package/dist/variants/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
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-
|
|
1
|
+
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-FF33ARRA.js';
|
|
2
2
|
export { text as textVariants } from '../chunk-ODBFN44D.js';
|