@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/og/index.cjs
CHANGED
|
@@ -39,7 +39,8 @@ var dark = {
|
|
|
39
39
|
warm: "#F2A65A"};
|
|
40
40
|
var light = {
|
|
41
41
|
background: "#F6F2EA",
|
|
42
|
-
|
|
42
|
+
// paper
|
|
43
|
+
surface: "#FFFFFF",
|
|
43
44
|
// hairline on card hover
|
|
44
45
|
textPrimary: "#0B1524",
|
|
45
46
|
// 16.40:1
|
|
@@ -64,7 +65,7 @@ var gradient = {
|
|
|
64
65
|
og: `linear-gradient(145deg, ${dark.background} 55%, ${deep} 100%)`
|
|
65
66
|
},
|
|
66
67
|
light: {
|
|
67
|
-
og: `linear-gradient(145deg, ${light.background} 55%, ${light.
|
|
68
|
+
og: `linear-gradient(145deg, ${light.background} 55%, ${light.surface} 100%)`
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
71
|
var tagline = {
|
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-OMKSESQB.js';
|
|
3
3
|
import '../chunk-MLKGABMK.js';
|
|
4
4
|
|
|
5
5
|
// src/og/templates.ts
|
package/dist/shiki/index.js
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
|
|
5
|
+
// src/social/index.tsx
|
|
6
|
+
function Brand({ children, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8
|
+
"svg",
|
|
9
|
+
{
|
|
10
|
+
viewBox: "0 0 24 24",
|
|
11
|
+
width: "1em",
|
|
12
|
+
height: "1em",
|
|
13
|
+
fill: "currentColor",
|
|
14
|
+
"aria-hidden": "true",
|
|
15
|
+
focusable: "false",
|
|
16
|
+
...props,
|
|
17
|
+
children
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
function Functional({ children, ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23
|
+
"svg",
|
|
24
|
+
{
|
|
25
|
+
viewBox: "0 0 24 24",
|
|
26
|
+
width: "1em",
|
|
27
|
+
height: "1em",
|
|
28
|
+
fill: "none",
|
|
29
|
+
stroke: "currentColor",
|
|
30
|
+
strokeWidth: 1.6,
|
|
31
|
+
strokeLinecap: "round",
|
|
32
|
+
strokeLinejoin: "round",
|
|
33
|
+
"aria-hidden": "true",
|
|
34
|
+
focusable: "false",
|
|
35
|
+
...props,
|
|
36
|
+
children
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
var GitHub = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 .5C5.73.5.5 5.73.5 12a11.5 11.5 0 0 0 7.86 10.91c.58.1.79-.25.79-.55 0-.27-.01-1.18-.02-2.14-3.2.7-3.88-1.36-3.88-1.36-.52-1.33-1.28-1.68-1.28-1.68-1.05-.72.08-.7.08-.7 1.16.08 1.77 1.19 1.77 1.19 1.03 1.77 2.7 1.26 3.36.96.1-.75.4-1.26.73-1.55-2.55-.29-5.24-1.28-5.24-5.69 0-1.26.45-2.29 1.19-3.09-.12-.29-.52-1.46.11-3.05 0 0 .97-.31 3.18 1.18a11 11 0 0 1 5.79 0c2.2-1.49 3.17-1.18 3.17-1.18.63 1.59.23 2.76.12 3.05.74.8 1.18 1.83 1.18 3.09 0 4.42-2.69 5.39-5.25 5.68.41.36.78 1.06.78 2.14 0 1.55-.01 2.79-.01 3.17 0 .3.2.66.79.55A11.5 11.5 0 0 0 23.5 12C23.5 5.73 18.27.5 12 .5Z" }) });
|
|
41
|
+
var LinkedIn = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9h4v12H3V9Zm7 0h3.8v1.71h.05a4.17 4.17 0 0 1 3.75-2.06c4.01 0 4.75 2.64 4.75 6.07V21h-4v-5.4c0-1.29-.02-2.95-1.8-2.95-1.8 0-2.08 1.4-2.08 2.85V21h-3.97V9Z" }) });
|
|
42
|
+
var X = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17.53 3h3.06l-6.69 7.64L21.75 21h-6.16l-4.83-6.3L5.25 21H2.19l7.15-8.17L2.5 3h6.32l4.36 5.77L17.53 3Zm-1.07 16.17h1.7L7.62 4.74H5.8l10.66 14.43Z" }) });
|
|
43
|
+
var Instagram = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2.16c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41-.56-.22-.96-.48-1.38-.9-.42-.42-.68-.82-.9-1.38-.16-.42-.36-1.06-.41-2.23C2.17 15.58 2.16 15.2 2.16 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.17 8.8 2.16 12 2.16Zm0 3.68a6.16 6.16 0 1 0 0 12.32 6.16 6.16 0 0 0 0-12.32Zm0 10.16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm7.85-10.4a1.44 1.44 0 1 1-2.88 0 1.44 1.44 0 0 1 2.88 0Z" }) });
|
|
44
|
+
var Discord = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.32 5.56A18.5 18.5 0 0 0 15.7 4.1a.07.07 0 0 0-.07.04c-.2.36-.42.82-.58 1.19a17 17 0 0 0-5.1 0c-.16-.38-.39-.83-.59-1.19a.07.07 0 0 0-.07-.04c-1.6.28-3.15.77-4.62 1.46a.06.06 0 0 0-.03.03C1.66 10 .9 14.28 1.28 18.5a.08.08 0 0 0 .03.05 18.6 18.6 0 0 0 5.6 2.84.07.07 0 0 0 .08-.03c.43-.59.81-1.21 1.14-1.86a.07.07 0 0 0-.04-.1c-.6-.23-1.18-.51-1.74-.83a.07.07 0 0 1-.01-.12l.35-.27a.07.07 0 0 1 .07-.01 13.3 13.3 0 0 0 11.3 0 .07.07 0 0 1 .08.01l.34.27c.04.04.04.1-.01.12-.55.33-1.13.6-1.74.83a.07.07 0 0 0-.04.1c.34.65.72 1.27 1.14 1.86a.07.07 0 0 0 .08.03 18.5 18.5 0 0 0 5.6-2.84.07.07 0 0 0 .04-.05c.45-4.88-.75-9.12-3.18-12.88a.06.06 0 0 0-.03-.03ZM8.4 15.93c-1.1 0-2.01-1.01-2.01-2.25 0-1.24.89-2.25 2.01-2.25 1.13 0 2.03 1.02 2.02 2.25 0 1.24-.9 2.25-2.02 2.25Zm7.22 0c-1.1 0-2.01-1.01-2.01-2.25 0-1.24.89-2.25 2.01-2.25 1.13 0 2.03 1.02 2.02 2.25 0 1.24-.89 2.25-2.02 2.25Z" }) });
|
|
45
|
+
var YouTube = (props) => /* @__PURE__ */ jsxRuntime.jsx(Brand, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M23.5 6.9a3 3 0 0 0-2.12-2.12C19.5 4.27 12 4.27 12 4.27s-7.5 0-9.38.51A3 3 0 0 0 .5 6.9 31.3 31.3 0 0 0 0 12a31.3 31.3 0 0 0 .5 5.1 3 3 0 0 0 2.12 2.12c1.88.51 9.38.51 9.38.51s7.5 0 9.38-.51a3 3 0 0 0 2.12-2.12A31.3 31.3 0 0 0 24 12a31.3 31.3 0 0 0-.5-5.1ZM9.6 15.6V8.4l6.24 3.6-6.24 3.6Z" }) });
|
|
46
|
+
var Rss = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16" }),
|
|
48
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "5", cy: "19", r: "1.6", fill: "currentColor", stroke: "none" })
|
|
49
|
+
] });
|
|
50
|
+
var Email = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
|
|
51
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2.75", y: "4.75", width: "18.5", height: "14.5", rx: "2" }),
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "m3.5 7.5 7.4 5.2a2 2 0 0 0 2.2 0l7.4-5.2" })
|
|
53
|
+
] });
|
|
54
|
+
var Newsletter = (props) => /* @__PURE__ */ jsxRuntime.jsxs(Functional, { ...props, children: [
|
|
55
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 8.5a6 6 0 1 0-12 0c0 5-2 6.5-2 6.5h16s-2-1.5-2-6.5" }),
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13.7 19a2 2 0 0 1-3.4 0" })
|
|
57
|
+
] });
|
|
58
|
+
|
|
59
|
+
exports.Discord = Discord;
|
|
60
|
+
exports.Email = Email;
|
|
61
|
+
exports.GitHub = GitHub;
|
|
62
|
+
exports.Instagram = Instagram;
|
|
63
|
+
exports.LinkedIn = LinkedIn;
|
|
64
|
+
exports.Newsletter = Newsletter;
|
|
65
|
+
exports.Rss = Rss;
|
|
66
|
+
exports.X = X;
|
|
67
|
+
exports.YouTube = YouTube;
|
package/dist/tokens/index.cjs
CHANGED
|
@@ -215,6 +215,30 @@ var spacing = {
|
|
|
215
215
|
var size = {
|
|
216
216
|
/** Navigation bar height. */
|
|
217
217
|
nav: 64,
|
|
218
|
+
/**
|
|
219
|
+
* The bar when it shares the screen with a sidebar.
|
|
220
|
+
*
|
|
221
|
+
* It is not «a smaller bar because it looks better». At 64 the header of an
|
|
222
|
+
* app shell competes with the rail beside it for the same corner, and the two
|
|
223
|
+
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
224
|
+
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
225
|
+
* app of the five is denser than the four reading sites. See
|
|
226
|
+
* `docs/decisions.md` § 30.
|
|
227
|
+
*/
|
|
228
|
+
navCompact: 56,
|
|
229
|
+
/**
|
|
230
|
+
* The admin sidebar, and the rail it collapses to.
|
|
231
|
+
*
|
|
232
|
+
* They are tokens and not the consumer's `w-*` because a collapsible sidebar
|
|
233
|
+
* has to know BOTH: the layout beside it reserves one of the two, and two
|
|
234
|
+
* numbers written by hand in two files drift the first time one of them moves.
|
|
235
|
+
* A sidebar that never collapses is still just a box the layout sizes.
|
|
236
|
+
*
|
|
237
|
+
* 56 is the rail: `navCompact`'s height, so a panel's bar and its rail meet in
|
|
238
|
+
* a square corner instead of a step.
|
|
239
|
+
*/
|
|
240
|
+
sidebar: 256,
|
|
241
|
+
sidebarRail: 56,
|
|
218
242
|
/** Reading column width. */
|
|
219
243
|
content: 760,
|
|
220
244
|
/** Maximum page width. */
|
|
@@ -247,9 +271,9 @@ var gradient = {
|
|
|
247
271
|
og: `linear-gradient(145deg, ${dark.background} 55%, ${deep} 100%)`
|
|
248
272
|
},
|
|
249
273
|
light: {
|
|
250
|
-
hero: `linear-gradient(160deg, ${light.background} 60%, ${light.
|
|
251
|
-
section: `linear-gradient(150deg, ${light.surface} 0%, ${light.
|
|
252
|
-
og: `linear-gradient(145deg, ${light.background} 55%, ${light.
|
|
274
|
+
hero: `linear-gradient(160deg, ${light.background} 60%, ${light.surface} 100%)`,
|
|
275
|
+
section: `linear-gradient(150deg, ${light.surface} 0%, ${light.background} 100%)`,
|
|
276
|
+
og: `linear-gradient(145deg, ${light.background} 55%, ${light.surface} 100%)`
|
|
253
277
|
}
|
|
254
278
|
};
|
|
255
279
|
var shadow = {
|
package/dist/tokens/index.d.cts
CHANGED
|
@@ -397,6 +397,30 @@ declare const spacing: {
|
|
|
397
397
|
declare const size: {
|
|
398
398
|
/** Navigation bar height. */
|
|
399
399
|
readonly nav: 64;
|
|
400
|
+
/**
|
|
401
|
+
* The bar when it shares the screen with a sidebar.
|
|
402
|
+
*
|
|
403
|
+
* It is not «a smaller bar because it looks better». At 64 the header of an
|
|
404
|
+
* app shell competes with the rail beside it for the same corner, and the two
|
|
405
|
+
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
406
|
+
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
407
|
+
* app of the five is denser than the four reading sites. See
|
|
408
|
+
* `docs/decisions.md` § 30.
|
|
409
|
+
*/
|
|
410
|
+
readonly navCompact: 56;
|
|
411
|
+
/**
|
|
412
|
+
* The admin sidebar, and the rail it collapses to.
|
|
413
|
+
*
|
|
414
|
+
* They are tokens and not the consumer's `w-*` because a collapsible sidebar
|
|
415
|
+
* has to know BOTH: the layout beside it reserves one of the two, and two
|
|
416
|
+
* numbers written by hand in two files drift the first time one of them moves.
|
|
417
|
+
* A sidebar that never collapses is still just a box the layout sizes.
|
|
418
|
+
*
|
|
419
|
+
* 56 is the rail: `navCompact`'s height, so a panel's bar and its rail meet in
|
|
420
|
+
* a square corner instead of a step.
|
|
421
|
+
*/
|
|
422
|
+
readonly sidebar: 256;
|
|
423
|
+
readonly sidebarRail: 56;
|
|
400
424
|
/** Reading column width. */
|
|
401
425
|
readonly content: 760;
|
|
402
426
|
/** Maximum page width. */
|
|
@@ -478,9 +502,9 @@ declare const gradient: {
|
|
|
478
502
|
readonly og: "linear-gradient(145deg, #091319 55%, #0D2129 100%)";
|
|
479
503
|
};
|
|
480
504
|
readonly light: {
|
|
481
|
-
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #
|
|
482
|
-
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #
|
|
483
|
-
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #
|
|
505
|
+
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #FFFFFF 100%)";
|
|
506
|
+
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #F6F2EA 100%)";
|
|
507
|
+
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #FFFFFF 100%)";
|
|
484
508
|
};
|
|
485
509
|
};
|
|
486
510
|
/** A single level. There is no elevation scale. */
|
|
@@ -711,6 +735,9 @@ declare const tokens: {
|
|
|
711
735
|
};
|
|
712
736
|
readonly size: {
|
|
713
737
|
readonly nav: 64;
|
|
738
|
+
readonly navCompact: 56;
|
|
739
|
+
readonly sidebar: 256;
|
|
740
|
+
readonly sidebarRail: 56;
|
|
714
741
|
readonly content: 760;
|
|
715
742
|
readonly wide: 1180;
|
|
716
743
|
};
|
|
@@ -721,9 +748,9 @@ declare const tokens: {
|
|
|
721
748
|
readonly og: "linear-gradient(145deg, #091319 55%, #0D2129 100%)";
|
|
722
749
|
};
|
|
723
750
|
readonly light: {
|
|
724
|
-
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #
|
|
725
|
-
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #
|
|
726
|
-
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #
|
|
751
|
+
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #FFFFFF 100%)";
|
|
752
|
+
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #F6F2EA 100%)";
|
|
753
|
+
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #FFFFFF 100%)";
|
|
727
754
|
};
|
|
728
755
|
};
|
|
729
756
|
readonly syntax: {
|
package/dist/tokens/index.d.ts
CHANGED
|
@@ -397,6 +397,30 @@ declare const spacing: {
|
|
|
397
397
|
declare const size: {
|
|
398
398
|
/** Navigation bar height. */
|
|
399
399
|
readonly nav: 64;
|
|
400
|
+
/**
|
|
401
|
+
* The bar when it shares the screen with a sidebar.
|
|
402
|
+
*
|
|
403
|
+
* It is not «a smaller bar because it looks better». At 64 the header of an
|
|
404
|
+
* app shell competes with the rail beside it for the same corner, and the two
|
|
405
|
+
* together eat the top of the content area. 56 is what `cursos` had arrived at
|
|
406
|
+
* on its own, and it is the same reasoning as `control.iconSm`: the one admin
|
|
407
|
+
* app of the five is denser than the four reading sites. See
|
|
408
|
+
* `docs/decisions.md` § 30.
|
|
409
|
+
*/
|
|
410
|
+
readonly navCompact: 56;
|
|
411
|
+
/**
|
|
412
|
+
* The admin sidebar, and the rail it collapses to.
|
|
413
|
+
*
|
|
414
|
+
* They are tokens and not the consumer's `w-*` because a collapsible sidebar
|
|
415
|
+
* has to know BOTH: the layout beside it reserves one of the two, and two
|
|
416
|
+
* numbers written by hand in two files drift the first time one of them moves.
|
|
417
|
+
* A sidebar that never collapses is still just a box the layout sizes.
|
|
418
|
+
*
|
|
419
|
+
* 56 is the rail: `navCompact`'s height, so a panel's bar and its rail meet in
|
|
420
|
+
* a square corner instead of a step.
|
|
421
|
+
*/
|
|
422
|
+
readonly sidebar: 256;
|
|
423
|
+
readonly sidebarRail: 56;
|
|
400
424
|
/** Reading column width. */
|
|
401
425
|
readonly content: 760;
|
|
402
426
|
/** Maximum page width. */
|
|
@@ -478,9 +502,9 @@ declare const gradient: {
|
|
|
478
502
|
readonly og: "linear-gradient(145deg, #091319 55%, #0D2129 100%)";
|
|
479
503
|
};
|
|
480
504
|
readonly light: {
|
|
481
|
-
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #
|
|
482
|
-
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #
|
|
483
|
-
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #
|
|
505
|
+
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #FFFFFF 100%)";
|
|
506
|
+
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #F6F2EA 100%)";
|
|
507
|
+
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #FFFFFF 100%)";
|
|
484
508
|
};
|
|
485
509
|
};
|
|
486
510
|
/** A single level. There is no elevation scale. */
|
|
@@ -711,6 +735,9 @@ declare const tokens: {
|
|
|
711
735
|
};
|
|
712
736
|
readonly size: {
|
|
713
737
|
readonly nav: 64;
|
|
738
|
+
readonly navCompact: 56;
|
|
739
|
+
readonly sidebar: 256;
|
|
740
|
+
readonly sidebarRail: 56;
|
|
714
741
|
readonly content: 760;
|
|
715
742
|
readonly wide: 1180;
|
|
716
743
|
};
|
|
@@ -721,9 +748,9 @@ declare const tokens: {
|
|
|
721
748
|
readonly og: "linear-gradient(145deg, #091319 55%, #0D2129 100%)";
|
|
722
749
|
};
|
|
723
750
|
readonly light: {
|
|
724
|
-
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #
|
|
725
|
-
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #
|
|
726
|
-
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #
|
|
751
|
+
readonly hero: "linear-gradient(160deg, #F6F2EA 60%, #FFFFFF 100%)";
|
|
752
|
+
readonly section: "linear-gradient(150deg, #FFFFFF 0%, #F6F2EA 100%)";
|
|
753
|
+
readonly og: "linear-gradient(145deg, #F6F2EA 55%, #FFFFFF 100%)";
|
|
727
754
|
};
|
|
728
755
|
};
|
|
729
756
|
readonly syntax: {
|
package/dist/tokens/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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-TA7TLWW4.js';
|
|
2
|
+
export { brand, colors, control, dark, fonts, gradient, light, limits, motion, naming, radius, series, shadow, size, spacing, syntax, tagline, typeScale } from '../chunk-OMKSESQB.js';
|
|
3
3
|
import '../chunk-MLKGABMK.js';
|
package/dist/tokens/theme.css
CHANGED
|
@@ -123,6 +123,9 @@
|
|
|
123
123
|
--spacing-control-icon-sm: 32px;
|
|
124
124
|
|
|
125
125
|
--spacing-nav: 64px;
|
|
126
|
+
--spacing-nav-compact: 56px;
|
|
127
|
+
--spacing-sidebar: 256px;
|
|
128
|
+
--spacing-sidebar-rail: 56px;
|
|
126
129
|
--container-content: 760px;
|
|
127
130
|
--container-wide: 1180px;
|
|
128
131
|
--container-measure: 68ch;
|
|
@@ -204,9 +207,9 @@
|
|
|
204
207
|
--color-series-3: #3E7CB1;
|
|
205
208
|
--color-series-4: #626A75;
|
|
206
209
|
|
|
207
|
-
--gradient-hero: linear-gradient(160deg, #F6F2EA 60%, #
|
|
208
|
-
--gradient-section: linear-gradient(150deg, #FFFFFF 0%, #
|
|
209
|
-
--gradient-og: linear-gradient(145deg, #F6F2EA 55%, #
|
|
210
|
+
--gradient-hero: linear-gradient(160deg, #F6F2EA 60%, #FFFFFF 100%);
|
|
211
|
+
--gradient-section: linear-gradient(150deg, #FFFFFF 0%, #F6F2EA 100%);
|
|
212
|
+
--gradient-og: linear-gradient(145deg, #F6F2EA 55%, #FFFFFF 100%);
|
|
210
213
|
}
|
|
211
214
|
|
|
212
215
|
/* --- the system's two gradients, as utilities -------------------------------
|
|
@@ -335,6 +338,33 @@
|
|
|
335
338
|
animation: arrecife-slide-out-bottom var(--duration-standard) var(--ease-standard);
|
|
336
339
|
}
|
|
337
340
|
|
|
341
|
+
/* --- the focus ring ---------------------------------------------------------
|
|
342
|
+
The document gives it once, on the primary button: «focus ring 2px #35D6C0 +
|
|
343
|
+
offset 3px». The code had it as three classes copied to twenty-nine call
|
|
344
|
+
sites in twenty-four files, all of them at offset 2, and three audits in a row
|
|
345
|
+
said so — the value was never argued down to 2, it was copied from the first
|
|
346
|
+
component and inherited by the next twenty-eight.
|
|
347
|
+
|
|
348
|
+
It is one utility for the reason § 15 gives: a list kept in sync by hand with
|
|
349
|
+
another list ends up out of sync. Twenty-nine copies is twenty-nine chances to
|
|
350
|
+
write the next one at offset 2 again, and nothing was checking.
|
|
351
|
+
|
|
352
|
+
focus-ring-warm exists for the ONE control the ring cannot be biolume on:
|
|
353
|
+
the conversion button is the system's only sand fill, and a biolume ring
|
|
354
|
+
around it puts both of the brand's accents in the same three pixels. It sets
|
|
355
|
+
only the color, so the width and the offset stay in one place. */
|
|
356
|
+
@utility focus-ring {
|
|
357
|
+
&:focus-visible {
|
|
358
|
+
outline: 2px solid var(--color-accent);
|
|
359
|
+
outline-offset: 3px;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
@utility focus-ring-warm {
|
|
363
|
+
&:focus-visible {
|
|
364
|
+
outline-color: var(--color-warm);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
338
368
|
/* The system's only transition, as a utility. States are communicated with
|
|
339
369
|
border and color, not with movement: this class cannot animate anything else. */
|
|
340
370
|
@utility transition-standard {
|
package/dist/variants/index.cjs
CHANGED
|
@@ -8,7 +8,7 @@ var button = classVarianceAuthority.cva(
|
|
|
8
8
|
"inline-flex cursor-pointer items-center justify-center gap-step-xs whitespace-nowrap select-none",
|
|
9
9
|
"rounded-control font-sans font-medium",
|
|
10
10
|
"transition-standard",
|
|
11
|
-
"focus-
|
|
11
|
+
"focus-ring",
|
|
12
12
|
"disabled:pointer-events-none disabled:opacity-50",
|
|
13
13
|
"[&_svg]:shrink-0"
|
|
14
14
|
],
|
|
@@ -19,7 +19,10 @@ var button = classVarianceAuthority.cva(
|
|
|
19
19
|
"bg-accent text-accent-on hover:bg-accent-hover",
|
|
20
20
|
"light:bg-brand-hull light:text-accent-on light:hover:bg-text-secondary"
|
|
21
21
|
],
|
|
22
|
-
|
|
22
|
+
// The one control whose focus ring is not biolume. It is the system's
|
|
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 `decisions.md` § 37.
|
|
25
|
+
conversion: "bg-warm text-warm-on hover:bg-warm-hover focus-ring-warm",
|
|
23
26
|
secondary: [
|
|
24
27
|
"border-hairline-hover border bg-transparent text-text-primary",
|
|
25
28
|
"hover:border-accent hover:text-accent"
|
|
@@ -177,7 +180,7 @@ var CARD = [
|
|
|
177
180
|
"group block cursor-pointer",
|
|
178
181
|
CARD_SURFACE,
|
|
179
182
|
CARD_HOVER,
|
|
180
|
-
"focus-
|
|
183
|
+
"focus-ring"
|
|
181
184
|
];
|
|
182
185
|
|
|
183
186
|
exports.CARD = CARD;
|
|
@@ -174,7 +174,10 @@ declare const avatar: (props?: ({
|
|
|
174
174
|
* hand: that project ships no framework JavaScript and cannot import a
|
|
175
175
|
* component, so until now it copied the class list into its Astro. The copy had
|
|
176
176
|
* already drifted once — the hero gradient sat at `55%` and `#e9eeea` against
|
|
177
|
-
* the token's `60%` and `#EFE9DE
|
|
177
|
+
* the token's `60%` and, at the time, `#EFE9DE`. Nothing compared them. The
|
|
178
|
+
* light gradient's second stop is `#FFFFFF` since § 9 was measured, which is the
|
|
179
|
+
* same lesson from the other side: a copied value goes stale when the original
|
|
180
|
+
* moves, and only the original is ever right.
|
|
178
181
|
*/
|
|
179
182
|
declare const CARD_SURFACE = "rounded-card border-hairline bg-surface border";
|
|
180
183
|
/** Rule 6's hover: the border only. Applied where the card is clickable. */
|
package/dist/variants/index.d.ts
CHANGED
|
@@ -174,7 +174,10 @@ declare const avatar: (props?: ({
|
|
|
174
174
|
* hand: that project ships no framework JavaScript and cannot import a
|
|
175
175
|
* component, so until now it copied the class list into its Astro. The copy had
|
|
176
176
|
* already drifted once — the hero gradient sat at `55%` and `#e9eeea` against
|
|
177
|
-
* the token's `60%` and `#EFE9DE
|
|
177
|
+
* the token's `60%` and, at the time, `#EFE9DE`. Nothing compared them. The
|
|
178
|
+
* light gradient's second stop is `#FFFFFF` since § 9 was measured, which is the
|
|
179
|
+
* same lesson from the other side: a copied value goes stale when the original
|
|
180
|
+
* moves, and only the original is ever right.
|
|
178
181
|
*/
|
|
179
182
|
declare const CARD_SURFACE = "rounded-card border-hairline bg-surface border";
|
|
180
183
|
/** Rule 6's hover: the border only. Applied where the card is clickable. */
|
package/dist/variants/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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-E6KFUSKB.js';
|
|
2
2
|
export { text as textVariants } from '../chunk-ODBFN44D.js';
|
|
3
3
|
import '../chunk-MLKGABMK.js';
|