@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.d.cts
CHANGED
|
@@ -4,7 +4,7 @@ export { THEME_ATTRIBUTE, THEME_EVENT, THEME_KEY, ThemeOptions, applyTheme, curr
|
|
|
4
4
|
import { alertVariants as alert, avatarVariants as avatar, badgeVariants as badge, buttonVariants as button, textVariants as text } from './variants/index.cjs';
|
|
5
5
|
export { CARD, CARD_HOVER, CARD_SURFACE, categoryBadgeVariants, metricBadgeVariants } from './variants/index.cjs';
|
|
6
6
|
import * as react from 'react';
|
|
7
|
-
import { ComponentPropsWithoutRef, ReactNode, ComponentProps, RefObject
|
|
7
|
+
import { ComponentPropsWithoutRef, ReactNode, ComponentProps, RefObject } from 'react';
|
|
8
8
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
9
9
|
import { VariantProps } from 'class-variance-authority';
|
|
10
10
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
@@ -28,6 +28,7 @@ import { F as Face, P as Pose } from './catalog-D13txprv.cjs';
|
|
|
28
28
|
export { A as ASSETS_PATH, B as Background, a as Fin, f as faceList, b as faceUsage, c as faces, d as fins, p as poseList, e as poses } from './catalog-D13txprv.cjs';
|
|
29
29
|
export { Isotype, IsotypeProps, Logo, LogoProps, Mascot, MascotFace, MascotFaceProps, MascotProps } from './brand/index.cjs';
|
|
30
30
|
import { ClassValue } from 'clsx';
|
|
31
|
+
export { i as social } from './index-DlAO2JZs.cjs';
|
|
31
32
|
import '@radix-ui/react-label';
|
|
32
33
|
|
|
33
34
|
/**
|
|
@@ -778,23 +779,50 @@ declare function CourseCard({ title, summary, meta, status, progress, className,
|
|
|
778
779
|
* not exist, so the rule lived in a comment about a ghost component. Once the
|
|
779
780
|
* brand story started repeating the sentence, it was also a published promise.
|
|
780
781
|
*
|
|
781
|
-
* `
|
|
782
|
-
* half the component. It is the only
|
|
783
|
-
*
|
|
784
|
-
* a face may appear.
|
|
782
|
+
* `page` keeps that rule intact and `expression` stays MANDATORY there: an empty
|
|
783
|
+
* state that IS the screen without a face is half the component. It is the only
|
|
784
|
+
* place, alongside the 404, the server error, course progress, celebration, the
|
|
785
|
+
* toast and the newsletter's «sin spam», where a face may appear.
|
|
786
|
+
*
|
|
787
|
+
* `inline` is the other situation, and it is a different one rather than a
|
|
788
|
+
* smaller one: the hole inside a table page or a dashboard widget, competing with
|
|
789
|
+
* a dozen elements around it. An admin panel has twenty of those on one screen,
|
|
790
|
+
* and twenty faces is not the humour contract, it is a zoo. The variant carries
|
|
791
|
+
* no face, and the type does not let one through. See `docs/decisions.md` § 27.
|
|
785
792
|
*/
|
|
786
|
-
type
|
|
787
|
-
/** The face. Mandatory: without it this is a centred paragraph. */
|
|
788
|
-
expression: Face;
|
|
793
|
+
type EmptyStateBase = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {
|
|
789
794
|
title: ReactNode;
|
|
790
795
|
/** One line explaining what is missing or what to do. */
|
|
791
796
|
description?: ReactNode;
|
|
792
797
|
/** The action that gets you out of the empty state. Usually a tertiary button. */
|
|
793
798
|
action?: ReactNode;
|
|
799
|
+
};
|
|
800
|
+
type EmptyStateProps = EmptyStateBase & ({
|
|
801
|
+
/** `page`, the default: the empty state IS the screen or the section, and it carries the face. */
|
|
802
|
+
variant?: 'page' | undefined;
|
|
803
|
+
/**
|
|
804
|
+
* The face. Mandatory on `page` and impossible on `inline` — the props
|
|
805
|
+
* are a union, so the generated table cannot show a per-variant «req.»
|
|
806
|
+
* and the sentence has to carry it. Without it, `page` is a centred
|
|
807
|
+
* paragraph.
|
|
808
|
+
*/
|
|
809
|
+
expression: Face;
|
|
794
810
|
/** Where the brand PNGs are served from. */
|
|
795
811
|
basePath?: string | undefined;
|
|
796
|
-
|
|
797
|
-
|
|
812
|
+
icon?: never;
|
|
813
|
+
} | {
|
|
814
|
+
/** `inline`: the hole inside a table or a widget. No face, and no way to pass one. */
|
|
815
|
+
variant: 'inline';
|
|
816
|
+
/**
|
|
817
|
+
* A glyph above the line. It measures 1em and inherits `currentColor`,
|
|
818
|
+
* like `Stat`'s: the project passes its own and sizes it, because the
|
|
819
|
+
* system has no icon library and is not getting one.
|
|
820
|
+
*/
|
|
821
|
+
icon?: ReactNode;
|
|
822
|
+
expression?: never;
|
|
823
|
+
basePath?: never;
|
|
824
|
+
});
|
|
825
|
+
declare function EmptyState(props: EmptyStateProps): react.JSX.Element;
|
|
798
826
|
|
|
799
827
|
/**
|
|
800
828
|
* The calendar with events: seeing them, creating, editing and deleting them.
|
|
@@ -950,7 +978,8 @@ type LinkRowProps = Omit<CardShellProps, 'children'> & {
|
|
|
950
978
|
declare function LinkRow({ name, description, icon, external, className, ...props }: LinkRowProps): react.JSX.Element;
|
|
951
979
|
|
|
952
980
|
/**
|
|
953
|
-
* The site bar: 64px, abyss at 86 % and a 14px blur behind it
|
|
981
|
+
* The site bar: 64px, abyss at 86 % and a 14px blur behind it — 56 when it
|
|
982
|
+
* shares the screen with a sidebar.
|
|
954
983
|
*
|
|
955
984
|
* It is page composition and not a primitive, but it lives in the library for a
|
|
956
985
|
* concrete reason: the CLI aesthetic of the items — mono, `./section` format —
|
|
@@ -966,6 +995,13 @@ declare function LinkRow({ name, description, icon, external, className, ...prop
|
|
|
966
995
|
* floats in the middle of the bar and the eye has to cross the gap twice: once
|
|
967
996
|
* to read the brand and once to come back and find the section. Grouped on the
|
|
968
997
|
* right, brand and navigation are two anchors instead of three.
|
|
998
|
+
*
|
|
999
|
+
* `brand` and `actions` are `ReactNode` slots and they are the answer to almost
|
|
1000
|
+
* everything an app shell asks for: a `~/cursos` wordmark goes in `brand`, and a
|
|
1001
|
+
* user menu or a «Entrar» button goes in `actions`. Session state does not get a
|
|
1002
|
+
* prop of its own — it is project infrastructure, which is the third clause of
|
|
1003
|
+
* the criterion that decides what enters this library. See `docs/decisions.md`
|
|
1004
|
+
* § 30.
|
|
969
1005
|
*/
|
|
970
1006
|
type NavProps = ComponentPropsWithoutRef<'header'> & {
|
|
971
1007
|
/** The logo, on the left. */
|
|
@@ -974,8 +1010,19 @@ type NavProps = ComponentPropsWithoutRef<'header'> & {
|
|
|
974
1010
|
children?: ReactNode;
|
|
975
1011
|
/** Actions on the right: conversion, theme switch, search. */
|
|
976
1012
|
actions?: ReactNode;
|
|
1013
|
+
/**
|
|
1014
|
+
* `compact` is 56px instead of 64, for a bar that shares the screen with a
|
|
1015
|
+
* sidebar: at 64 the two compete for the same corner and together they eat the
|
|
1016
|
+
* top of the content area.
|
|
1017
|
+
*
|
|
1018
|
+
* It is a prop and not a `className` because the height lives on the inner
|
|
1019
|
+
* container, which never sees one — `className` reaches the `<header>` and
|
|
1020
|
+
* stops there. Passing `h-14` from outside did nothing, silently, which is the
|
|
1021
|
+
* kind of failure this repo writes checks for.
|
|
1022
|
+
*/
|
|
1023
|
+
size?: 'default' | 'compact' | undefined;
|
|
977
1024
|
};
|
|
978
|
-
declare function Nav({ brand, children, actions, className, ...props }: NavProps): react.JSX.Element;
|
|
1025
|
+
declare function Nav({ brand, children, actions, size, className, ...props }: NavProps): react.JSX.Element;
|
|
979
1026
|
type NavItemProps = ComponentPropsWithoutRef<'a'> & {
|
|
980
1027
|
/** Current section: biolume with a 1px underline. */
|
|
981
1028
|
active?: boolean | undefined;
|
|
@@ -1198,6 +1245,11 @@ declare function ScrollingProgressBar({ target, tone, sticky, className, ...prop
|
|
|
1198
1245
|
* format is part of the piece, not a convention to be remembered. It is
|
|
1199
1246
|
* `aria-hidden`.
|
|
1200
1247
|
*
|
|
1248
|
+
* An `icon` REPLACES it rather than joining it. Two marks before a label is one
|
|
1249
|
+
* more than the eye needs, and the `▸` exists to say «this is a place you can
|
|
1250
|
+
* go» — which is exactly what a section icon already says, and says better. A
|
|
1251
|
+
* sidebar with no icons keeps the prompt, which is the reading sites' case.
|
|
1252
|
+
*
|
|
1201
1253
|
* The footer carries the version and the branch (`v5.0.1 · main`) in the `meta`
|
|
1202
1254
|
* scale. It is not decoration: in an admin it is the first thing anyone asks
|
|
1203
1255
|
* when something looks off.
|
|
@@ -1207,16 +1259,78 @@ type SidebarItemProps = ComponentPropsWithoutRef<'a'> & {
|
|
|
1207
1259
|
asChild?: boolean | undefined;
|
|
1208
1260
|
/** Counter on the right: pending drafts, unused media. */
|
|
1209
1261
|
badge?: ReactNode;
|
|
1262
|
+
/**
|
|
1263
|
+
* The section's glyph, on the left. It REPLACES the `▸` rather than joining
|
|
1264
|
+
* it, and it inherits `currentColor`, so it follows the item's state without
|
|
1265
|
+
* being tinted separately.
|
|
1266
|
+
*/
|
|
1267
|
+
icon?: ReactNode;
|
|
1210
1268
|
};
|
|
1211
|
-
declare function SidebarItem({ active, asChild, badge, className, children, ...props }: SidebarItemProps): react.JSX.Element;
|
|
1269
|
+
declare function SidebarItem({ active, asChild, badge, icon, className, children, ...props }: SidebarItemProps): react.JSX.Element;
|
|
1270
|
+
/**
|
|
1271
|
+
* A labelled block of items — «Contenido», «Alumnos», «Ventas».
|
|
1272
|
+
*
|
|
1273
|
+
* A panel's sidebar stops being readable somewhere around eight items, and the
|
|
1274
|
+
* fix is not a scrollbar: it is saying what the blocks are. The label is a `<p>`
|
|
1275
|
+
* and not a heading, because a heading here would land in the document outline
|
|
1276
|
+
* between the page's own — a sidebar is navigation, not content.
|
|
1277
|
+
*
|
|
1278
|
+
* The items go in a nested `<ul>` named by that label, which is what gives a
|
|
1279
|
+
* screen reader «lista Ventas, 3 elementos» instead of one list of eleven.
|
|
1280
|
+
*/
|
|
1281
|
+
type SidebarGroupProps = Omit<ComponentPropsWithoutRef<'li'>, 'title'> & {
|
|
1282
|
+
/** The block's name. Sentence case, not a section title. */
|
|
1283
|
+
label: ReactNode;
|
|
1284
|
+
};
|
|
1285
|
+
declare function SidebarGroup({ label, children, className, ...props }: SidebarGroupProps): react.JSX.Element;
|
|
1212
1286
|
type SidebarNavProps = ComponentPropsWithoutRef<'nav'> & {
|
|
1213
|
-
/**
|
|
1287
|
+
/**
|
|
1288
|
+
* The panel's heading, as an eyebrow. It also names the `<nav>` when it is a
|
|
1289
|
+
* string, which is why a `brand` row does not replace it: a logo is not an
|
|
1290
|
+
* accessible name. Pass `aria-label` when neither fits.
|
|
1291
|
+
*/
|
|
1214
1292
|
title?: ReactNode;
|
|
1293
|
+
/**
|
|
1294
|
+
* The row at the top: isotype and wordmark, `cursos · admin`. It is a slot and
|
|
1295
|
+
* not a `logo`/`name` pair because every panel spells its own name
|
|
1296
|
+
* differently, and the part that IS the system — the rhythm, the hairline
|
|
1297
|
+
* under it — is here.
|
|
1298
|
+
*
|
|
1299
|
+
* Collapsed, it is hidden: a wordmark does not fit in a rail and the component
|
|
1300
|
+
* cannot trim somebody else's markup. Pass the isotype on its own through
|
|
1301
|
+
* `mark` for the rail to keep something at the top.
|
|
1302
|
+
*/
|
|
1303
|
+
brand?: ReactNode;
|
|
1304
|
+
/** What `brand` becomes in the rail. Usually the isotype with no wordmark. */
|
|
1305
|
+
mark?: ReactNode;
|
|
1306
|
+
/**
|
|
1307
|
+
* Who is signed in, at the bottom above the version. A slot, because an avatar
|
|
1308
|
+
* needs a session and a sign-out route and the library takes no project
|
|
1309
|
+
* infrastructure — the same reason `Nav`'s user menu goes in `actions`.
|
|
1310
|
+
*/
|
|
1311
|
+
user?: ReactNode;
|
|
1312
|
+
/**
|
|
1313
|
+
* Turns the sidebar into a rail: icons only, and the widths become the
|
|
1314
|
+
* library's — `w-sidebar` and `w-sidebar-rail`. It is CONTROLLED and there is
|
|
1315
|
+
* no uncontrolled mode, because this state is almost always persisted in a
|
|
1316
|
+
* cookie or in `localStorage`, and an internal state would fight the one the
|
|
1317
|
+
* project already keeps.
|
|
1318
|
+
*/
|
|
1319
|
+
collapsed?: boolean | undefined;
|
|
1320
|
+
/**
|
|
1321
|
+
* Called with what the state should become. With it, the toggle appears; with
|
|
1322
|
+
* `collapsed` alone the sidebar is a rail with no way out of it, which is a
|
|
1323
|
+
* legitimate layout and not an accident.
|
|
1324
|
+
*/
|
|
1325
|
+
onCollapsedChange?: ((collapsed: boolean) => void) | undefined;
|
|
1326
|
+
/** The toggle's accessible name, in the two directions. */
|
|
1327
|
+
collapseLabel?: string;
|
|
1328
|
+
expandLabel?: string;
|
|
1215
1329
|
/** Version and branch, at the bottom. */
|
|
1216
1330
|
version?: ReactNode;
|
|
1217
1331
|
branch?: ReactNode;
|
|
1218
1332
|
};
|
|
1219
|
-
declare function SidebarNav({ title, version, branch, children, className, ...props }: SidebarNavProps): react.JSX.Element;
|
|
1333
|
+
declare function SidebarNav({ title, brand, mark, user, collapsed, onCollapsedChange, collapseLabel, expandLabel, version, branch, children, className, ...props }: SidebarNavProps): react.JSX.Element;
|
|
1220
1334
|
|
|
1221
1335
|
/**
|
|
1222
1336
|
* A large metric: the number in the `stat` scale and its name underneath.
|
|
@@ -1227,24 +1341,50 @@ declare function SidebarNav({ title, version, branch, children, className, ...pr
|
|
|
1227
1341
|
* about. That is why `tone` is not an open palette — there are two values and
|
|
1228
1342
|
* they mean different things.
|
|
1229
1343
|
*
|
|
1230
|
-
* The reading order is
|
|
1231
|
-
*
|
|
1344
|
+
* The reading order is title, the big number, and the standfirst below. The
|
|
1345
|
+
* number goes in the MIDDLE and not at the end on purpose: it is what people
|
|
1232
1346
|
* came to read, and a two-line standfirst between the title and the figure
|
|
1233
1347
|
* buries it. The top says what it is about, the middle says how much, and the
|
|
1234
1348
|
* bottom holds the nuance only someone who stops will read.
|
|
1349
|
+
*
|
|
1350
|
+
* `delta` and `spark` sit with the number and not with the standfirst, because
|
|
1351
|
+
* both are about the number: how it moved and what shape the movement had. The
|
|
1352
|
+
* order survives — top what, middle how much, bottom the nuance.
|
|
1353
|
+
*
|
|
1354
|
+
* THE ICON IS A BADGE IN THE OPPOSITE CORNER, not a glyph before the title, and
|
|
1355
|
+
* the tone rides on it rather than on the number. In a panel of ten of these the
|
|
1356
|
+
* eyebrow is the same length in none of them, so an inline icon puts the only
|
|
1357
|
+
* coloured mark on a different x in every card; pinned to the corner it lands on
|
|
1358
|
+
* a grid. The circle is the tint pattern the system already has — `bg-accent/10`
|
|
1359
|
+
* as a surface and the colour on the GLYPH, per `docs/decisions.md` § 4b — and a
|
|
1360
|
+
* glyph clears the 3:1 graphical threshold where text would not clear 4.5.
|
|
1361
|
+
*
|
|
1362
|
+
* WHICH IS WHY A NEUTRAL NUMBER IS PRIMARY INK AND NOT BIOLUME. With a biolume
|
|
1363
|
+
* badge and a biolume sparkline, a biolume number is the third accent in a card
|
|
1364
|
+
* the size of a postcard, and the thing you came to read stops being the loudest
|
|
1365
|
+
* thing in it. `alert` and `achievement` DO still paint the number sand, so the
|
|
1366
|
+
* document's rule survives exactly where it matters: sand when the number is not
|
|
1367
|
+
* just a number. See `docs/decisions.md` § 31.
|
|
1235
1368
|
*/
|
|
1236
1369
|
type StatProps = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {
|
|
1237
1370
|
/** The number, already formatted. The library imposes no locale. */
|
|
1238
1371
|
value: ReactNode;
|
|
1239
1372
|
/** What is being counted. It goes in mono small caps. */
|
|
1240
1373
|
label: ReactNode;
|
|
1241
|
-
/**
|
|
1242
|
-
|
|
1374
|
+
/**
|
|
1375
|
+
* `alert` ONLY when the number is the problem, and `achievement` when it is
|
|
1376
|
+
* the opposite — the diplomas issued, the modules finished. The two paint the
|
|
1377
|
+
* same sand today and they are still two names: a system that names by meaning
|
|
1378
|
+
* cannot make «this is bad» the only way to say «this stands out». See
|
|
1379
|
+
* `docs/decisions.md` § 28.
|
|
1380
|
+
*/
|
|
1381
|
+
tone?: 'neutral' | 'alert' | 'achievement';
|
|
1243
1382
|
/** With `progress`, the metric reads as progress and adds the bar. */
|
|
1244
1383
|
progress?: number | undefined;
|
|
1245
1384
|
/**
|
|
1246
|
-
* Glyph
|
|
1247
|
-
*
|
|
1385
|
+
* Glyph in a tinted circle, in the corner opposite the title. At 1em, and it
|
|
1386
|
+
* inherits `currentColor` from the badge, so it takes the tone without being
|
|
1387
|
+
* tinted separately.
|
|
1248
1388
|
*/
|
|
1249
1389
|
icon?: ReactNode;
|
|
1250
1390
|
/**
|
|
@@ -1252,8 +1392,31 @@ type StatProps = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {
|
|
|
1252
1392
|
* does not say whether that is a lot, and this is where that gets said.
|
|
1253
1393
|
*/
|
|
1254
1394
|
description?: ReactNode;
|
|
1395
|
+
/** How the number moved since last time. */
|
|
1396
|
+
delta?: StatDelta | undefined;
|
|
1397
|
+
/**
|
|
1398
|
+
* The number's shape over time, under it. A `ReactNode` and not a data prop:
|
|
1399
|
+
* a sparkline needs a charting library, and this component lives in the barrel
|
|
1400
|
+
* that four projects install. The one project that draws them passes its own,
|
|
1401
|
+
* exactly like `icon`.
|
|
1402
|
+
*/
|
|
1403
|
+
spark?: ReactNode;
|
|
1255
1404
|
};
|
|
1256
|
-
|
|
1405
|
+
type StatDelta = {
|
|
1406
|
+
/**
|
|
1407
|
+
* Already formatted — «+12 esta semana», «↑8 %». The library imposes no
|
|
1408
|
+
* locale, same as `value`.
|
|
1409
|
+
*/
|
|
1410
|
+
value: ReactNode;
|
|
1411
|
+
/**
|
|
1412
|
+
* Which way it moved. It picks the GLYPH and never the colour, because a rise
|
|
1413
|
+
* is not automatically good: «+12 alumnos» and «+12 errores» point the same
|
|
1414
|
+
* way and mean opposite things. Whether the number matters is `tone`'s job,
|
|
1415
|
+
* and it is a decision the call site has already made.
|
|
1416
|
+
*/
|
|
1417
|
+
direction: 'up' | 'down' | 'flat';
|
|
1418
|
+
};
|
|
1419
|
+
declare function Stat({ value, label, tone, progress, icon, description, delta, spark, className, ...props }: StatProps): react.JSX.Element;
|
|
1257
1420
|
|
|
1258
1421
|
type TalkContent = {
|
|
1259
1422
|
title: ReactNode;
|
|
@@ -1399,38 +1562,4 @@ declare function TableOfContents({ items, title, activeHref, linkAsChild, classN
|
|
|
1399
1562
|
|
|
1400
1563
|
declare function cn(...inputs: ClassValue[]): string;
|
|
1401
1564
|
|
|
1402
|
-
type
|
|
1403
|
-
declare const GitHub: (props: IconProps) => react.JSX.Element;
|
|
1404
|
-
declare const LinkedIn: (props: IconProps) => react.JSX.Element;
|
|
1405
|
-
declare const X: (props: IconProps) => react.JSX.Element;
|
|
1406
|
-
declare const Instagram: (props: IconProps) => react.JSX.Element;
|
|
1407
|
-
declare const Discord: (props: IconProps) => react.JSX.Element;
|
|
1408
|
-
declare const YouTube: (props: IconProps) => react.JSX.Element;
|
|
1409
|
-
declare const Rss: (props: IconProps) => react.JSX.Element;
|
|
1410
|
-
declare const Email: (props: IconProps) => react.JSX.Element;
|
|
1411
|
-
/**
|
|
1412
|
-
* The newsletter. It plays the same role as `Rss` — a way to follow, not a
|
|
1413
|
-
* social network — which is why it belongs in this catalogue and does not open
|
|
1414
|
-
* the door to an icon library.
|
|
1415
|
-
*
|
|
1416
|
-
* It is named for what it means and not for what it draws, like everything else
|
|
1417
|
-
* in the system: it is a bell, and it is called `Newsletter`. `eduardoalvarez.dev`
|
|
1418
|
-
* had it drawn in the project, following the contract by hand so it would not
|
|
1419
|
-
* clash while it waited.
|
|
1420
|
-
*/
|
|
1421
|
-
declare const Newsletter: (props: IconProps) => react.JSX.Element;
|
|
1422
|
-
|
|
1423
|
-
declare const social_Discord: typeof Discord;
|
|
1424
|
-
declare const social_Email: typeof Email;
|
|
1425
|
-
declare const social_GitHub: typeof GitHub;
|
|
1426
|
-
declare const social_Instagram: typeof Instagram;
|
|
1427
|
-
declare const social_LinkedIn: typeof LinkedIn;
|
|
1428
|
-
declare const social_Newsletter: typeof Newsletter;
|
|
1429
|
-
declare const social_Rss: typeof Rss;
|
|
1430
|
-
declare const social_X: typeof X;
|
|
1431
|
-
declare const social_YouTube: typeof YouTube;
|
|
1432
|
-
declare namespace social {
|
|
1433
|
-
export { social_Discord as Discord, social_Email as Email, social_GitHub as GitHub, social_Instagram as Instagram, social_LinkedIn as LinkedIn, social_Newsletter as Newsletter, social_Rss as Rss, social_X as X, social_YouTube as YouTube };
|
|
1434
|
-
}
|
|
1435
|
-
|
|
1436
|
-
export { Accordion, AccordionContent, AccordionItem, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, type AlertProps, ArticleCard, type ArticleCardProps, AudioPlayer, type AudioPlayerMode, type AudioPlayerProps, AuthorCard, type AuthorCardProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, AvatarUpload, type AvatarUploadProps, Badge, type BadgeProps, Blockquote, type BlockquoteProps, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarEvent, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryBadge, type CategoryBadgeProps, Checkbox, type CheckboxProps, Code, CodeBlock, type CodeBlockProps, type CodeProps, CourseCard, type CourseCardProps, type Crumb, DateField, type DateFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, EventCalendar, type EventCalendarProps, Face, Footer, FooterLink, type FooterLinkProps, type FooterProps, Hero, type HeroProps, Input, type InputProps, LinkRow, type LinkRowProps, MetricBadge, type MetricBadgeProps, Nav, NavItem, type NavItemProps, type NavProps, NewsletterForm, type NewsletterFormProps, type NewsletterState, PageHeader, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, type PopoverContentProps, PopoverTrigger, Pose, Progress, type ProgressProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, ScrollingProgressBar, type ScrollingProgressBarProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarNavProps, Skeleton, type SkeletonProps, type SocialLink, Stat, type StatProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, type TableOfContentsProps, TableRow, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TalkCard, type TalkCardProps, Text, type TextProps, Textarea, type TextareaProps, Theme, ThemeToggle, type ThemeToggleProps, ToastAction, type ToastOptions, type ToastVariant, Toaster, type ToasterProps, type TocEntry, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alert as alertVariants, avatar as avatarVariants, badge as badgeVariants, button as buttonVariants, cn, social, text as textVariants, toast, useTheme };
|
|
1565
|
+
export { Accordion, AccordionContent, AccordionItem, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogTitle, AlertDialogTrigger, type AlertProps, ArticleCard, type ArticleCardProps, AudioPlayer, type AudioPlayerMode, type AudioPlayerProps, AuthorCard, type AuthorCardProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, AvatarUpload, type AvatarUploadProps, Badge, type BadgeProps, Blockquote, type BlockquoteProps, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarEvent, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryBadge, type CategoryBadgeProps, Checkbox, type CheckboxProps, Code, CodeBlock, type CodeBlockProps, type CodeProps, CourseCard, type CourseCardProps, type Crumb, DateField, type DateFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, EventCalendar, type EventCalendarProps, Face, Footer, FooterLink, type FooterLinkProps, type FooterProps, Hero, type HeroProps, Input, type InputProps, LinkRow, type LinkRowProps, MetricBadge, type MetricBadgeProps, Nav, NavItem, type NavItemProps, type NavProps, NewsletterForm, type NewsletterFormProps, type NewsletterState, PageHeader, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, type PopoverContentProps, PopoverTrigger, Pose, Progress, type ProgressProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, ScrollingProgressBar, type ScrollingProgressBarProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeparatorProps, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SidebarGroup, type SidebarGroupProps, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarNavProps, Skeleton, type SkeletonProps, type SocialLink, Stat, type StatDelta, type StatProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, type TableOfContentsProps, TableRow, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, TalkCard, type TalkCardProps, Text, type TextProps, Textarea, type TextareaProps, Theme, ThemeToggle, type ThemeToggleProps, ToastAction, type ToastOptions, type ToastVariant, Toaster, type ToasterProps, type TocEntry, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alert as alertVariants, avatar as avatarVariants, badge as badgeVariants, button as buttonVariants, cn, text as textVariants, toast, useTheme };
|