@santi020k/lumen-react 1.6.0 → 1.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/README.md +114 -30
- package/bin/lumen.mjs +2 -0
- package/dist/chart-recipes.d.ts +2 -0
- package/dist/chart-recipes.d.ts.map +1 -0
- package/dist/chart-recipes.js +3 -0
- package/dist/components.d.ts +78 -91
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +295 -79
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +5 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/phone-recipes.d.ts +4 -0
- package/dist/phone-recipes.d.ts.map +1 -0
- package/dist/phone-recipes.js +18 -0
- package/dist/server-components.d.ts +80 -0
- package/dist/server-components.d.ts.map +1 -0
- package/dist/server-components.js +64 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +2 -0
- package/package.json +17 -4
- package/styles/critical.css +2054 -0
package/README.md
CHANGED
|
@@ -11,12 +11,23 @@ Lumen stylesheet.
|
|
|
11
11
|
pnpm add @santi020k/lumen-react
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
+
The adapter also exposes Lumen's discovery and diagnostics CLI:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pnpm exec lumen show Tabs
|
|
18
|
+
pnpm exec lumen doctor
|
|
19
|
+
```
|
|
20
|
+
|
|
14
21
|
Load the shared stylesheet once from your app entry or global CSS.
|
|
15
22
|
|
|
16
23
|
```tsx
|
|
17
|
-
import
|
|
24
|
+
import "@santi020k/lumen-react/styles.css";
|
|
18
25
|
```
|
|
19
26
|
|
|
27
|
+
For an essential application shell using forms, feedback, tabs, dialogs, calendar, and DataTable,
|
|
28
|
+
import `@santi020k/lumen-react/styles/critical.css` instead. It is generated from the canonical
|
|
29
|
+
stylesheet and remains materially smaller than the complete catalog.
|
|
30
|
+
|
|
20
31
|
The stylesheet defaults `--ui-font` to `"Montserrat", "Avenir Next", "Segoe UI", sans-serif`.
|
|
21
32
|
It declares the family stack but does not bundle or load font files. Load Montserrat once through
|
|
22
33
|
your preferred delivery path, or override `--ui-font` in application CSS.
|
|
@@ -24,7 +35,7 @@ your preferred delivery path, or override `--ui-font` in application CSS.
|
|
|
24
35
|
## Usage
|
|
25
36
|
|
|
26
37
|
```tsx
|
|
27
|
-
import { Button, Card, Input } from
|
|
38
|
+
import { Button, Card, Input } from "@santi020k/lumen-react";
|
|
28
39
|
|
|
29
40
|
export function SubscribeForm() {
|
|
30
41
|
return (
|
|
@@ -33,10 +44,22 @@ export function SubscribeForm() {
|
|
|
33
44
|
<Input id="email" type="email" placeholder="you@example.com" />
|
|
34
45
|
<Button>Subscribe</Button>
|
|
35
46
|
</Card>
|
|
36
|
-
)
|
|
47
|
+
);
|
|
37
48
|
}
|
|
38
49
|
```
|
|
39
50
|
|
|
51
|
+
`PhoneInput` supports a controlled international phone model while preserving the legacy custom
|
|
52
|
+
country-option API:
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
const colombia = getLumenPhoneCountry('CO', { locale: 'en-US' })
|
|
56
|
+
if (!colombia) throw new Error('Missing Colombia metadata')
|
|
57
|
+
|
|
58
|
+
const [phone, setPhone] = useState(() => createEmptyLumenPhoneNumber(colombia))
|
|
59
|
+
|
|
60
|
+
<PhoneInput value={phone} onValueChange={setPhone} locale="en-US" />
|
|
61
|
+
```
|
|
62
|
+
|
|
40
63
|
## Dropdown menus
|
|
41
64
|
|
|
42
65
|
Compose dropdown menus from the public trigger, content, item, and separator parts. Items close the
|
|
@@ -49,8 +72,8 @@ import {
|
|
|
49
72
|
DropdownMenuContent,
|
|
50
73
|
DropdownMenuItem,
|
|
51
74
|
DropdownMenuSeparator,
|
|
52
|
-
DropdownMenuTrigger
|
|
53
|
-
} from
|
|
75
|
+
DropdownMenuTrigger,
|
|
76
|
+
} from "@santi020k/lumen-react";
|
|
54
77
|
|
|
55
78
|
<DropdownMenu>
|
|
56
79
|
<DropdownMenuTrigger>Download</DropdownMenuTrigger>
|
|
@@ -58,9 +81,11 @@ import {
|
|
|
58
81
|
<DropdownMenuItem>macOS</DropdownMenuItem>
|
|
59
82
|
<DropdownMenuItem>Windows</DropdownMenuItem>
|
|
60
83
|
<DropdownMenuSeparator />
|
|
61
|
-
<DropdownMenuItem disabled status="Soon">
|
|
84
|
+
<DropdownMenuItem disabled status="Soon">
|
|
85
|
+
Android
|
|
86
|
+
</DropdownMenuItem>
|
|
62
87
|
</DropdownMenuContent>
|
|
63
|
-
</DropdownMenu
|
|
88
|
+
</DropdownMenu>;
|
|
64
89
|
```
|
|
65
90
|
|
|
66
91
|
## Language selection
|
|
@@ -113,6 +138,23 @@ without wrapping or changing the resolver contract.
|
|
|
113
138
|
|
|
114
139
|
See the [forms guide](https://lumen.santi020k.com/docs/forms/react-hook-form) for typed examples.
|
|
115
140
|
|
|
141
|
+
## Error states
|
|
142
|
+
|
|
143
|
+
Use `ErrorState` as a visible fallback when a page or region cannot show its primary content. It can
|
|
144
|
+
be rendered by an application or router error boundary, but Lumen does not catch exceptions, log
|
|
145
|
+
diagnostics, or decide whether retrying is safe.
|
|
146
|
+
|
|
147
|
+
```tsx
|
|
148
|
+
<ErrorState
|
|
149
|
+
actions={<Button onClick={reload}>Try again</Button>}
|
|
150
|
+
description="Check your connection and try again."
|
|
151
|
+
title="Could not load projects"
|
|
152
|
+
/>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
See the repository [React error-handling guide](../../docs/error-handling.md#react) for the complete
|
|
156
|
+
example, error-boundary ownership, announcement behavior, and verification guidance.
|
|
157
|
+
|
|
116
158
|
For long articles, `Anchor` accepts optional `depth`, `index`, and `description` metadata plus an
|
|
117
159
|
`activationOffset`. It synchronizes the current link on click and scroll. `ScrollProgress` tracks
|
|
118
160
|
the document without requiring a separate hook.
|
|
@@ -131,15 +173,22 @@ Use `CopyButton` for clipboard actions on generated names, descriptions, message
|
|
|
131
173
|
either a `value` or a `target` selector; `toast` opts into Lumen Toast feedback.
|
|
132
174
|
|
|
133
175
|
```tsx
|
|
134
|
-
<CopyButton value="https://lumen.santi020k.com" toast>
|
|
176
|
+
<CopyButton value="https://lumen.santi020k.com" toast>
|
|
177
|
+
Copy link
|
|
178
|
+
</CopyButton>
|
|
135
179
|
```
|
|
136
180
|
|
|
137
181
|
## Data visualization
|
|
138
182
|
|
|
139
|
-
`Sparkline`, `BarChart`, `LineChart`,
|
|
183
|
+
`Sparkline`, `BarChart`, `LineChart`, `PieChart`, `ScatterChart`, `Heatmap`, `RangeChart`, and
|
|
184
|
+
`ComboChart` use the shared chart contracts and
|
|
140
185
|
render without an external charting dependency. Data charts expose a revealable semantic table by
|
|
141
186
|
default. `PieChart` accepts one series and defaults to a donut presentation.
|
|
142
187
|
|
|
188
|
+
Every chart includes a factual screen-reader summary by default and accepts `summary` for more
|
|
189
|
+
useful domain context. See [data visualization](../../docs/data-visualization.md) for selection,
|
|
190
|
+
missing-data, live-data, and accessibility guidance.
|
|
191
|
+
|
|
143
192
|
```tsx
|
|
144
193
|
import { LineChart } from '@santi020k/lumen-react'
|
|
145
194
|
|
|
@@ -161,7 +210,7 @@ the server runtime.
|
|
|
161
210
|
|
|
162
211
|
```tsx
|
|
163
212
|
// app/page.tsx — this file remains a Server Component.
|
|
164
|
-
import { Badge, Card } from
|
|
213
|
+
import { Badge, Card } from "@santi020k/lumen-react";
|
|
165
214
|
|
|
166
215
|
export default function Page() {
|
|
167
216
|
return (
|
|
@@ -169,13 +218,37 @@ export default function Page() {
|
|
|
169
218
|
<Badge>Ready</Badge>
|
|
170
219
|
Server-rendered page content
|
|
171
220
|
</Card>
|
|
172
|
-
)
|
|
221
|
+
);
|
|
173
222
|
}
|
|
174
223
|
```
|
|
175
224
|
|
|
176
225
|
This boundary is specific to React environments that recognize the `"use client"` directive.
|
|
177
226
|
Other React applications continue to consume the same package and exports normally.
|
|
178
227
|
|
|
228
|
+
For stateless primitives that should execute directly in a React Server Component, use the
|
|
229
|
+
server-safe entrypoint:
|
|
230
|
+
|
|
231
|
+
```tsx
|
|
232
|
+
import { Badge, Progress, Skeleton } from "@santi020k/lumen-react/server";
|
|
233
|
+
|
|
234
|
+
export default function Status() {
|
|
235
|
+
return (
|
|
236
|
+
<section>
|
|
237
|
+
<Badge variant="success">Ready</Badge>
|
|
238
|
+
<Progress aria-label="Migration progress" value={72} />
|
|
239
|
+
<Skeleton aria-label="Loading activity" />
|
|
240
|
+
</section>
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
The server entrypoint contains Badge, Card and its compound parts, Container, Direction, Grid,
|
|
246
|
+
Input, Label, Progress, Separator, Skeleton, Spinner, Stack, Textarea, Typography, and
|
|
247
|
+
VisuallyHidden plus the component-name metadata. The package root reuses those exact
|
|
248
|
+
implementations and remains the full client catalog. Import interactive primitives, hooks, or
|
|
249
|
+
stateless primitives that receive event handlers from the root entrypoint inside a Client
|
|
250
|
+
Component.
|
|
251
|
+
|
|
179
252
|
## Compatibility wrappers
|
|
180
253
|
|
|
181
254
|
The common wrapper primitives preserve their underlying DOM handles with React 19's ref-as-prop
|
|
@@ -211,29 +284,35 @@ product, or workspace. Pass the stable selector or identity through `context` an
|
|
|
211
284
|
related links with one independently named `NavigationMenu`. Long link sets scroll horizontally.
|
|
212
285
|
|
|
213
286
|
```tsx
|
|
214
|
-
import {
|
|
287
|
+
import {
|
|
288
|
+
ContextNavigation,
|
|
289
|
+
NativeSelect,
|
|
290
|
+
NavigationMenu,
|
|
291
|
+
} from "@santi020k/lumen-react";
|
|
215
292
|
|
|
216
293
|
<ContextNavigation
|
|
217
|
-
context={
|
|
294
|
+
context={
|
|
218
295
|
<NativeSelect aria-label="Documentation platform" visualSize="sm">
|
|
219
296
|
<option>Web</option>
|
|
220
297
|
<option>Apple</option>
|
|
221
298
|
<option>Android</option>
|
|
222
299
|
</NativeSelect>
|
|
223
|
-
|
|
300
|
+
}
|
|
224
301
|
>
|
|
225
302
|
<NavigationMenu aria-label="Web documentation" variant="unstyled">
|
|
226
|
-
<a href="/docs/web" aria-current="page">
|
|
303
|
+
<a href="/docs/web" aria-current="page">
|
|
304
|
+
Overview
|
|
305
|
+
</a>
|
|
227
306
|
<a href="/docs/components">Components</a>
|
|
228
307
|
<a href="/docs/web/playground">Playground</a>
|
|
229
308
|
</NavigationMenu>
|
|
230
|
-
</ContextNavigation
|
|
309
|
+
</ContextNavigation>;
|
|
231
310
|
```
|
|
232
311
|
|
|
233
312
|
Use `Icon` for Lucide icons by name across framework adapters.
|
|
234
313
|
|
|
235
314
|
```tsx
|
|
236
|
-
import { Button, Icon } from
|
|
315
|
+
import { Button, Icon } from "@santi020k/lumen-react";
|
|
237
316
|
|
|
238
317
|
export function SettingsButton() {
|
|
239
318
|
return (
|
|
@@ -241,7 +320,7 @@ export function SettingsButton() {
|
|
|
241
320
|
<Icon name="wand-sparkles" decorative />
|
|
242
321
|
Generate
|
|
243
322
|
</Button>
|
|
244
|
-
)
|
|
323
|
+
);
|
|
245
324
|
}
|
|
246
325
|
```
|
|
247
326
|
|
|
@@ -252,8 +331,8 @@ Next keeps control of image sizing, format negotiation, caching, placeholders, a
|
|
|
252
331
|
Lumen supplies its presentation class.
|
|
253
332
|
|
|
254
333
|
```tsx
|
|
255
|
-
import NextImage from
|
|
256
|
-
import { Image as LumenImage } from
|
|
334
|
+
import NextImage from "next/image";
|
|
335
|
+
import { Image as LumenImage } from "@santi020k/lumen-react";
|
|
257
336
|
|
|
258
337
|
<LumenImage
|
|
259
338
|
alt="Team collaborating around a table"
|
|
@@ -262,7 +341,7 @@ import { Image as LumenImage } from '@santi020k/lumen-react'
|
|
|
262
341
|
sizes="(max-width: 768px) 100vw, 50vw"
|
|
263
342
|
src="/team.jpg"
|
|
264
343
|
width={1200}
|
|
265
|
-
|
|
344
|
+
/>;
|
|
266
345
|
```
|
|
267
346
|
|
|
268
347
|
Keep the default lazy loading for images below the fold. For the single likely LCP image, follow
|
|
@@ -273,13 +352,13 @@ artwork authored for light surfaces; leave it off for photos and colorful illust
|
|
|
273
352
|
name on the SVG itself.
|
|
274
353
|
|
|
275
354
|
```tsx
|
|
276
|
-
import { AnimatedLogo } from
|
|
355
|
+
import { AnimatedLogo } from "@santi020k/lumen-react";
|
|
277
356
|
|
|
278
|
-
<AnimatedLogo style={{ height:
|
|
357
|
+
<AnimatedLogo style={{ height: "3rem" }}>
|
|
279
358
|
<svg aria-label="Acme" role="img" viewBox="0 0 120 32">
|
|
280
359
|
{/* Your logo artwork */}
|
|
281
360
|
</svg>
|
|
282
|
-
</AnimatedLogo
|
|
361
|
+
</AnimatedLogo>;
|
|
283
362
|
```
|
|
284
363
|
|
|
285
364
|
For a choreographed logo, set `animation="sequence"` and mark individual SVG layers with
|
|
@@ -290,15 +369,20 @@ React is Lumen's visual adapter layer plus headless behavior hooks. The componen
|
|
|
290
369
|
`ui-*` classes and `data-ui-*` attributes as Astro, while hooks such as `useDialog`, `usePopover`,
|
|
291
370
|
`useDropdownMenu`, `useContextMenu`, `useTabs`, `useSelect`, `useFormValidation`, `useCalendar`,
|
|
292
371
|
`useInputOTP`, `useDateRangePicker`, `useRichTextEditor`, `useSchedule`, `useThemeBuilder`,
|
|
293
|
-
`useResizable`, `useToast`, and
|
|
294
|
-
|
|
372
|
+
`useKanban`, `useResizable`, `useThemeToggle`, `useToast`, and `useTooltip` track the Astro runtime's
|
|
373
|
+
ARIA, keyboard, Escape, dismissal, context menu, form
|
|
295
374
|
validation, calendar grids, OTP segmentation, date range syncing, rich text command, schedule
|
|
296
|
-
drag/drop, theme export, resizable pane sizing, and
|
|
297
|
-
applications.
|
|
375
|
+
drag/drop, controlled Kanban move requests, theme export and switching, resizable pane sizing, and
|
|
376
|
+
toast controller semantics for React applications.
|
|
298
377
|
`useRichTextEditor` also provides `getEditableProps`, value-bearing commands, common formatting
|
|
299
378
|
shortcuts, active toolbar state, and `{ html, text }` change details.
|
|
300
|
-
`DataTable` can render structured `columns` and `rows
|
|
301
|
-
|
|
379
|
+
`DataTable` can render structured `columns` and `rows`; sortable columns use native header buttons,
|
|
380
|
+
update `aria-sort`, and order string or numeric values without mutating the supplied rows. The
|
|
381
|
+
shared selectable/sortable data attributes remain available for app-level adapters, and
|
|
382
|
+
`VirtualList` exposes the shared range sizing attributes.
|
|
383
|
+
`useTabs` keeps the selected trigger visible when a narrow horizontal list scrolls. The package
|
|
384
|
+
also exports `LumenTabsChangeDetail` and `LumenTabsChangeEvent` for integrations that consume the
|
|
385
|
+
shared `ui:tabs-change` contract.
|
|
302
386
|
|
|
303
387
|
## Kanban boards
|
|
304
388
|
|
package/bin/lumen.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-recipes.d.ts","sourceRoot":"","sources":["../src/chart-recipes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,GACrC,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,aAAa,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,KACrC,MAEiB,CAAA"}
|
package/dist/components.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ComponentPropsWithoutRef, ComponentPropsWithRef, CSSProperties, ElementType, HTMLAttributes, ReactNode, Ref } from 'react';
|
|
2
|
-
import { type LumenBarChartLayout, type LumenChartOrientation, type LumenChartSeries, type LumenChartTone, type LumenFormErrorInput, type LumenFormStatus, type LumenIconName, type LumenPieChartVariant } from '@santi020k/lumen-core';
|
|
3
|
-
import { type DialogOptions, type DropdownMenuOptions, type LanguageToggleOptions, type PopoverOptions, type ResizableDirection, type SelectOptions, type TabsOptions, type TooltipOptions } from './hooks.js';
|
|
2
|
+
import { type LumenBarChartLayout, type LumenChartOrientation, type LumenChartScaleType, type LumenChartSeries, type LumenChartTone, type LumenComboSeries, type LumenErrorStateAnnouncement, type LumenErrorStateKind, type LumenErrorStateLayout, type LumenFormErrorInput, type LumenFormStatus, type LumenHeatmapDatum, type LumenIconName, type LumenPhoneCountry, type LumenPhoneCountryOptions, type LumenPhoneNumber, type LumenPieChartVariant, type LumenRangeDatum } from '@santi020k/lumen-core';
|
|
3
|
+
import { type DialogOptions, type DropdownMenuOptions, type LanguageToggleOptions, type PopoverOptions, type ResizableDirection, type SelectOptions, type TabsOptions, type ToastPlacement, type TooltipOptions } from './hooks.js';
|
|
4
|
+
import { type InputProps } from './server-components.js';
|
|
5
|
+
export { Badge, type BadgeProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Container, type ContainerProps, Direction, type DirectionProps, Grid, type GridProps, Input, type InputProps, Label, type LabelProps, Progress, type ProgressProps, Separator, type SeparatorProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Stack, type StackProps, Textarea, type TextareaProps, Typography, type TypographyProps, VisuallyHidden, type VisuallyHiddenProps } from './server-components.js';
|
|
4
6
|
type AlertVariant = 'default' | 'destructive' | 'success' | 'warning';
|
|
5
7
|
type AccordionVariant = 'default' | 'flush';
|
|
6
|
-
type BadgeVariant = AlertVariant | 'outline' | 'secondary';
|
|
7
8
|
type ButtonSize = 'default' | 'icon' | 'lg' | 'sm';
|
|
8
9
|
type ButtonVariant = 'default' | 'destructive' | 'ghost' | 'link' | 'outline' | 'secondary';
|
|
9
|
-
type CardVariant = 'default' | 'glass' | 'interactive' | 'muted' | 'unstyled';
|
|
10
10
|
type CodeTheme = 'auto' | 'lumen' | 'santi020k';
|
|
11
11
|
type CodeVariant = 'block' | 'inline';
|
|
12
12
|
type IconSize = 'default' | 'lg' | 'sm' | 'xl';
|
|
@@ -80,10 +80,6 @@ export interface AvatarProps extends ComponentPropsWithRef<'span'> {
|
|
|
80
80
|
src?: string;
|
|
81
81
|
}
|
|
82
82
|
export declare const Avatar: ({ alt, children, className, fallback, src, ...props }: AvatarProps) => import("react").JSX.Element;
|
|
83
|
-
export interface BadgeProps extends ComponentPropsWithRef<'span'> {
|
|
84
|
-
variant?: BadgeVariant;
|
|
85
|
-
}
|
|
86
|
-
export declare const Badge: ({ className, variant, ...props }: BadgeProps) => import("react").JSX.Element;
|
|
87
83
|
export type BreadcrumbProps = ComponentPropsWithoutRef<'nav'>;
|
|
88
84
|
export declare const Breadcrumb: ({ "aria-label": ariaLabel, className, ...props }: BreadcrumbProps) => import("react").JSX.Element;
|
|
89
85
|
export interface BubbleProps extends ComponentPropsWithoutRef<'article'> {
|
|
@@ -113,22 +109,6 @@ export interface CalendarProps extends ComponentPropsWithoutRef<'div'> {
|
|
|
113
109
|
value?: string | undefined;
|
|
114
110
|
}
|
|
115
111
|
export declare const Calendar: ({ className, defaultValue, disabled, glass, locale, max, min, month, name, onValueChange, value, ...props }: CalendarProps) => import("react").JSX.Element;
|
|
116
|
-
export type CardProps<T extends ElementType = 'div'> = LumenPrimitiveProps<T> & {
|
|
117
|
-
'data-variant'?: CardVariant;
|
|
118
|
-
glass?: LumenGlassProp;
|
|
119
|
-
variant?: CardVariant;
|
|
120
|
-
};
|
|
121
|
-
export declare const Card: <T extends ElementType = "div">({ as, className, glass, variant, ...props }: CardProps<T>) => import("react").JSX.Element;
|
|
122
|
-
export type CardHeaderProps<T extends ElementType = 'div'> = LumenPrimitiveProps<T>;
|
|
123
|
-
export declare const CardHeader: <T extends ElementType = "div">({ as, ...props }: CardHeaderProps<T>) => import("react").JSX.Element;
|
|
124
|
-
export type CardTitleProps<T extends ElementType = 'div'> = LumenPrimitiveProps<T>;
|
|
125
|
-
export declare const CardTitle: <T extends ElementType = "div">({ as, ...props }: CardTitleProps<T>) => import("react").JSX.Element;
|
|
126
|
-
export type CardDescriptionProps<T extends ElementType = 'div'> = LumenPrimitiveProps<T>;
|
|
127
|
-
export declare const CardDescription: <T extends ElementType = "div">({ as, ...props }: CardDescriptionProps<T>) => import("react").JSX.Element;
|
|
128
|
-
export type CardContentProps<T extends ElementType = 'div'> = LumenPrimitiveProps<T>;
|
|
129
|
-
export declare const CardContent: <T extends ElementType = "div">({ as, ...props }: CardContentProps<T>) => import("react").JSX.Element;
|
|
130
|
-
export type CardFooterProps<T extends ElementType = 'div'> = LumenPrimitiveProps<T>;
|
|
131
|
-
export declare const CardFooter: <T extends ElementType = "div">({ as, ...props }: CardFooterProps<T>) => import("react").JSX.Element;
|
|
132
112
|
export interface CarouselProps extends ComponentPropsWithoutRef<'section'> {
|
|
133
113
|
glass?: LumenGlassProp;
|
|
134
114
|
}
|
|
@@ -139,9 +119,10 @@ export interface ChartProps extends ComponentPropsWithoutRef<'figure'> {
|
|
|
139
119
|
glass?: LumenGlassProp;
|
|
140
120
|
heading?: ReactNode;
|
|
141
121
|
presentation?: 'bare' | 'default';
|
|
122
|
+
summary?: ReactNode;
|
|
142
123
|
value?: ReactNode;
|
|
143
124
|
}
|
|
144
|
-
export declare const Chart: ({ caption, children, className, description, glass, heading, presentation, value, ...props }: ChartProps) => import("react").JSX.Element;
|
|
125
|
+
export declare const Chart: ({ caption, children, className, description, glass, heading, presentation, summary, value, ...props }: ChartProps) => import("react").JSX.Element;
|
|
145
126
|
export interface SparklineProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
|
|
146
127
|
area?: boolean;
|
|
147
128
|
label?: string;
|
|
@@ -161,7 +142,7 @@ export interface BarChartProps extends Omit<ChartProps, 'children'> {
|
|
|
161
142
|
showLegend?: boolean;
|
|
162
143
|
showTable?: boolean;
|
|
163
144
|
}
|
|
164
|
-
export declare const BarChart: ({ categoryWidth, className, emptyLabel, formatCategory, formatValue, layout, orientation, series, showLegend, showTable, ...props }: BarChartProps) => import("react").JSX.Element;
|
|
145
|
+
export declare const BarChart: ({ categoryWidth, className, emptyLabel, formatCategory, formatValue, layout, orientation, series, showLegend, showTable, summary, ...props }: BarChartProps) => import("react").JSX.Element;
|
|
165
146
|
export interface LineChartProps extends Omit<ChartProps, 'children'> {
|
|
166
147
|
area?: boolean;
|
|
167
148
|
emptyLabel?: ReactNode;
|
|
@@ -173,7 +154,7 @@ export interface LineChartProps extends Omit<ChartProps, 'children'> {
|
|
|
173
154
|
showLegend?: boolean;
|
|
174
155
|
showTable?: boolean;
|
|
175
156
|
}
|
|
176
|
-
export declare const LineChart: ({ area, className, emptyLabel, formatCategory, formatValue, markers, referenceValue, series, showLegend, showTable, ...props }: LineChartProps) => import("react").JSX.Element;
|
|
157
|
+
export declare const LineChart: ({ area, className, emptyLabel, formatCategory, formatValue, markers, referenceValue, series, showLegend, showTable, summary, ...props }: LineChartProps) => import("react").JSX.Element;
|
|
177
158
|
export interface PieChartProps extends Omit<ChartProps, 'children'> {
|
|
178
159
|
centerLabel?: ReactNode;
|
|
179
160
|
centerValue?: ReactNode;
|
|
@@ -183,7 +164,35 @@ export interface PieChartProps extends Omit<ChartProps, 'children'> {
|
|
|
183
164
|
valueFormatter?: (value: number) => string;
|
|
184
165
|
variant?: LumenPieChartVariant;
|
|
185
166
|
}
|
|
186
|
-
export declare const PieChart: ({ centerLabel, centerValue, className, series, showLegend, showTable, valueFormatter, variant, ...props }: PieChartProps) => import("react").JSX.Element;
|
|
167
|
+
export declare const PieChart: ({ centerLabel, centerValue, className, series, showLegend, showTable, summary, valueFormatter, variant, ...props }: PieChartProps) => import("react").JSX.Element;
|
|
168
|
+
export interface ScatterChartProps extends Omit<ChartProps, 'children'> {
|
|
169
|
+
formatValue?: (value: number) => string;
|
|
170
|
+
series?: readonly LumenChartSeries[];
|
|
171
|
+
showLegend?: boolean;
|
|
172
|
+
showTable?: boolean;
|
|
173
|
+
xScale?: Exclude<LumenChartScaleType, 'categorical'>;
|
|
174
|
+
}
|
|
175
|
+
export declare const ScatterChart: ({ className, formatValue, series, showLegend, showTable, summary, xScale, ...props }: ScatterChartProps) => import("react").JSX.Element;
|
|
176
|
+
export interface HeatmapProps extends Omit<ChartProps, 'children'> {
|
|
177
|
+
data?: readonly LumenHeatmapDatum[];
|
|
178
|
+
formatValue?: (value: number) => string;
|
|
179
|
+
showTable?: boolean;
|
|
180
|
+
}
|
|
181
|
+
export declare const Heatmap: ({ className, data, formatValue, showTable, summary, ...props }: HeatmapProps) => import("react").JSX.Element;
|
|
182
|
+
export interface RangeChartProps extends Omit<ChartProps, 'children'> {
|
|
183
|
+
data?: readonly LumenRangeDatum[];
|
|
184
|
+
formatValue?: (value: number) => string;
|
|
185
|
+
showTable?: boolean;
|
|
186
|
+
tone?: LumenChartTone;
|
|
187
|
+
}
|
|
188
|
+
export declare const RangeChart: ({ className, data, formatValue, showTable, summary, tone, ...props }: RangeChartProps) => import("react").JSX.Element;
|
|
189
|
+
export interface ComboChartProps extends Omit<ChartProps, 'children'> {
|
|
190
|
+
formatValue?: (value: number) => string;
|
|
191
|
+
series?: readonly LumenComboSeries[];
|
|
192
|
+
showLegend?: boolean;
|
|
193
|
+
showTable?: boolean;
|
|
194
|
+
}
|
|
195
|
+
export declare const ComboChart: ({ className, formatValue, series, showLegend, showTable, summary, ...props }: ComboChartProps) => import("react").JSX.Element;
|
|
187
196
|
export type CheckboxProps = Omit<ComponentPropsWithRef<'input'>, 'type'>;
|
|
188
197
|
export declare const Checkbox: ({ className, ref, ...props }: CheckboxProps) => import("react").JSX.Element;
|
|
189
198
|
export interface CheckboxGroupProps extends ComponentPropsWithRef<'fieldset'> {
|
|
@@ -273,33 +282,6 @@ export type DialogProps = Omit<ComponentPropsWithoutRef<'dialog'>, 'open'> & Sur
|
|
|
273
282
|
layout?: 'centered' | 'fullscreen';
|
|
274
283
|
};
|
|
275
284
|
export declare const Dialog: ({ className, defaultOpen, glass, layout, onClick, onClose, onOpenChange, open, ...props }: DialogProps) => import("react").JSX.Element;
|
|
276
|
-
export type DirectionProps = ComponentPropsWithoutRef<'div'>;
|
|
277
|
-
export declare const Direction: ({ className, dir, ...props }: DirectionProps) => import("react").JSX.Element;
|
|
278
|
-
export interface ContainerProps extends ComponentPropsWithRef<'div'> {
|
|
279
|
-
as?: ElementType;
|
|
280
|
-
size?: 'full' | 'lg' | 'md' | 'sm';
|
|
281
|
-
}
|
|
282
|
-
export declare const Container: ({ as, className, size, ...props }: ContainerProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
283
|
-
export interface GridProps extends ComponentPropsWithRef<'div'> {
|
|
284
|
-
as?: ElementType;
|
|
285
|
-
columns?: 1 | 2 | 3 | 4 | 6 | 12 | 'auto';
|
|
286
|
-
gap?: 'lg' | 'md' | 'none' | 'sm' | 'xl';
|
|
287
|
-
minItemWidth?: string;
|
|
288
|
-
}
|
|
289
|
-
export declare const Grid: ({ as, className, columns, gap, minItemWidth, style, ...props }: GridProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
290
|
-
export interface StackProps extends ComponentPropsWithRef<'div'> {
|
|
291
|
-
align?: 'center' | 'end' | 'start' | 'stretch';
|
|
292
|
-
as?: ElementType;
|
|
293
|
-
direction?: Orientation;
|
|
294
|
-
gap?: 'lg' | 'md' | 'none' | 'sm' | 'xl';
|
|
295
|
-
justify?: 'between' | 'center' | 'end' | 'start';
|
|
296
|
-
wrap?: boolean;
|
|
297
|
-
}
|
|
298
|
-
export declare const Stack: ({ align, as, className, direction, gap, justify, wrap, ...props }: StackProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
299
|
-
export interface VisuallyHiddenProps extends ComponentPropsWithRef<'span'> {
|
|
300
|
-
focusable?: boolean;
|
|
301
|
-
}
|
|
302
|
-
export declare const VisuallyHidden: ({ className, focusable, ...props }: VisuallyHiddenProps) => import("react").JSX.Element;
|
|
303
285
|
export interface DrawerProps extends ComponentPropsWithoutRef<'dialog'>, SurfaceProps {
|
|
304
286
|
}
|
|
305
287
|
export declare const Drawer: ({ className, glass, ...props }: DrawerProps) => import("react").JSX.Element;
|
|
@@ -320,6 +302,27 @@ export interface EmptyProps extends ComponentPropsWithoutRef<'section'> {
|
|
|
320
302
|
variant?: 'compact' | 'default';
|
|
321
303
|
}
|
|
322
304
|
export declare const Empty: ({ className, glass, variant, ...props }: EmptyProps) => import("react").JSX.Element;
|
|
305
|
+
export interface IllustrationProps extends ComponentPropsWithoutRef<'span'> {
|
|
306
|
+
label?: string;
|
|
307
|
+
size?: 'lg' | 'md' | 'sm';
|
|
308
|
+
tone?: 'accent' | 'auto' | 'brand' | 'neutral';
|
|
309
|
+
variant?: 'empty' | 'error' | 'offline' | 'success';
|
|
310
|
+
}
|
|
311
|
+
export declare const Illustration: ({ className, label, size, tone, variant, ...props }: IllustrationProps) => import("react").JSX.Element;
|
|
312
|
+
type ErrorStateHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
313
|
+
export interface ErrorStateProps extends Omit<ComponentPropsWithoutRef<'section'>, 'title'> {
|
|
314
|
+
actions?: ReactNode;
|
|
315
|
+
announce?: LumenErrorStateAnnouncement;
|
|
316
|
+
description?: string;
|
|
317
|
+
graphic?: false | ReactNode;
|
|
318
|
+
headingLevel?: ErrorStateHeadingLevel;
|
|
319
|
+
kind?: LumenErrorStateKind;
|
|
320
|
+
layout?: LumenErrorStateLayout;
|
|
321
|
+
reference?: string;
|
|
322
|
+
referenceLabel?: string;
|
|
323
|
+
title: string;
|
|
324
|
+
}
|
|
325
|
+
export declare const ErrorState: ({ "aria-live": ariaLive, actions, announce, children, className, description, graphic, headingLevel, id, kind, layout, reference, referenceLabel, role, title, ...props }: ErrorStateProps) => import("react").JSX.Element;
|
|
323
326
|
export type KanbanBoardProps = ComponentPropsWithoutRef<'section'>;
|
|
324
327
|
export declare const KanbanBoard: ({ className, tabIndex, ...props }: KanbanBoardProps) => import("react").JSX.Element;
|
|
325
328
|
export interface KanbanColumnProps extends ComponentPropsWithoutRef<'section'> {
|
|
@@ -357,12 +360,6 @@ export interface IconProps extends ComponentPropsWithoutRef<'span'> {
|
|
|
357
360
|
size?: IconSize;
|
|
358
361
|
}
|
|
359
362
|
export declare const Icon: ({ "aria-hidden": ariaHidden, "aria-label": ariaLabel, children, className, decorative, label, name, role, size, ...props }: IconProps) => import("react").JSX.Element;
|
|
360
|
-
export interface InputProps extends ComponentPropsWithRef<'input'> {
|
|
361
|
-
visualSize?: 'default' | 'lg' | 'sm';
|
|
362
|
-
}
|
|
363
|
-
export declare const Input: ({ className, ref, type, visualSize, ...props }: InputProps) => import("react").JSX.Element;
|
|
364
|
-
export type LabelProps = ComponentPropsWithRef<'label'>;
|
|
365
|
-
export declare const Label: ({ className, ...props }: LabelProps) => import("react").JSX.Element;
|
|
366
363
|
export interface PasswordFieldProps extends Omit<InputProps, 'type' | 'visualSize'> {
|
|
367
364
|
error?: ReactNode;
|
|
368
365
|
hideLabel?: string;
|
|
@@ -694,15 +691,21 @@ export interface NativeSelectProps extends ComponentPropsWithRef<'select'> {
|
|
|
694
691
|
export declare const NativeSelect: ({ children, className, defaultValue, options, placeholder, ref, value, visualSize, ...props }: NativeSelectProps) => import("react").JSX.Element;
|
|
695
692
|
export interface PhoneInputProps extends Omit<ComponentPropsWithoutRef<'div'>, 'defaultValue'> {
|
|
696
693
|
countries?: SelectOption[];
|
|
694
|
+
countryOptions?: readonly LumenPhoneCountry[];
|
|
697
695
|
countryLabel?: string;
|
|
698
696
|
countryName?: string;
|
|
699
697
|
defaultCountryValue?: string;
|
|
700
698
|
defaultValue?: string;
|
|
699
|
+
invalidNumberMessage?: string;
|
|
700
|
+
locale?: LumenPhoneCountryOptions['locale'];
|
|
701
701
|
name?: string;
|
|
702
|
+
onValueChange?: (value: LumenPhoneNumber) => void;
|
|
702
703
|
placeholder?: string;
|
|
704
|
+
showValidationError?: boolean;
|
|
703
705
|
size?: 'default' | 'lg' | 'sm';
|
|
706
|
+
value?: LumenPhoneNumber;
|
|
704
707
|
}
|
|
705
|
-
export declare const PhoneInput: (
|
|
708
|
+
export declare const PhoneInput: (props: PhoneInputProps) => import("react").JSX.Element;
|
|
706
709
|
export interface NavigationMenuProps extends ComponentPropsWithoutRef<'nav'>, SurfaceProps {
|
|
707
710
|
variant?: 'default' | 'unstyled';
|
|
708
711
|
}
|
|
@@ -720,11 +723,6 @@ export type PopoverTriggerProps = ComponentPropsWithoutRef<'button'>;
|
|
|
720
723
|
export declare const PopoverTrigger: ({ onClick, onKeyDown, ...props }: PopoverTriggerProps) => import("react").JSX.Element;
|
|
721
724
|
export type PopoverPanelProps = ComponentPropsWithoutRef<'div'>;
|
|
722
725
|
export declare const PopoverPanel: ({ onKeyDown, ...props }: PopoverPanelProps) => import("react").JSX.Element;
|
|
723
|
-
export interface ProgressProps extends ComponentPropsWithoutRef<'div'> {
|
|
724
|
-
max?: number;
|
|
725
|
-
value?: number;
|
|
726
|
-
}
|
|
727
|
-
export declare const Progress: ({ className, max, value, ...props }: ProgressProps) => import("react").JSX.Element;
|
|
728
726
|
export type RadioGroupProps = ComponentPropsWithoutRef<'fieldset'>;
|
|
729
727
|
export declare const RadioGroup: ({ className, ...props }: RadioGroupProps) => import("react").JSX.Element;
|
|
730
728
|
export interface ResizableProps extends ComponentPropsWithoutRef<'div'> {
|
|
@@ -772,10 +770,6 @@ export interface ListBoxProps extends Omit<ComponentPropsWithRef<'select'>, 'chi
|
|
|
772
770
|
value?: string | string[];
|
|
773
771
|
}
|
|
774
772
|
export declare const ListBox: (inputProps: ListBoxProps) => import("react").JSX.Element;
|
|
775
|
-
export interface SeparatorProps extends ComponentPropsWithRef<'hr'> {
|
|
776
|
-
orientation?: Orientation;
|
|
777
|
-
}
|
|
778
|
-
export declare const Separator: ({ className, orientation, ...props }: SeparatorProps) => import("react").JSX.Element;
|
|
779
773
|
export interface SheetProps extends ComponentPropsWithoutRef<'dialog'>, SurfaceProps {
|
|
780
774
|
}
|
|
781
775
|
export declare const Sheet: ({ className, glass, ...props }: SheetProps) => import("react").JSX.Element;
|
|
@@ -783,14 +777,17 @@ export interface SidebarProps extends ComponentPropsWithoutRef<'aside'>, Surface
|
|
|
783
777
|
variant?: 'default' | 'unstyled';
|
|
784
778
|
}
|
|
785
779
|
export declare const Sidebar: ({ className, glass, variant, ...props }: SidebarProps) => import("react").JSX.Element;
|
|
786
|
-
export type SkeletonProps = ComponentPropsWithRef<'div'>;
|
|
787
|
-
export declare const Skeleton: ({ className, ...props }: SkeletonProps) => import("react").JSX.Element;
|
|
788
780
|
export type SliderProps = ComponentPropsWithRef<'input'>;
|
|
789
781
|
export declare const Slider: ({ className, ref, type, ...props }: SliderProps) => import("react").JSX.Element;
|
|
790
|
-
export
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
782
|
+
export interface ToastViewportProps extends ComponentPropsWithoutRef<'div'> {
|
|
783
|
+
maxCount?: number;
|
|
784
|
+
placement?: ToastPlacement;
|
|
785
|
+
}
|
|
786
|
+
export declare const ToastViewport: ({ "aria-atomic": ariaAtomic, "aria-label": ariaLabel, "aria-live": ariaLive, className, maxCount, placement, ...props }: ToastViewportProps) => import("react").JSX.Element;
|
|
787
|
+
/** @deprecated Use ToastViewportProps instead. */
|
|
788
|
+
export type SonnerProps = ToastViewportProps;
|
|
789
|
+
/** @deprecated Use ToastViewport instead. */
|
|
790
|
+
export declare const Sonner: ({ className, ...props }: ToastViewportProps) => import("react").JSX.Element;
|
|
794
791
|
export type SwitchProps = Omit<ComponentPropsWithRef<'input'>, 'type'>;
|
|
795
792
|
export declare const Switch: ({ className, ref, role, ...props }: SwitchProps) => import("react").JSX.Element;
|
|
796
793
|
export interface TableProps extends ComponentPropsWithoutRef<'div'> {
|
|
@@ -814,8 +811,6 @@ export declare const TabsPanel: ({ value, ...props }: TabsPanelProps) => import(
|
|
|
814
811
|
export declare const CodeTabs: ({ ariaLabel, className, copy, initialValue, items, storageKey, theme, wrap, ...props }: CodeTabsProps) => import("react").JSX.Element;
|
|
815
812
|
export type TagGroupProps = ComponentPropsWithoutRef<'div'>;
|
|
816
813
|
export declare const TagGroup: ({ className, role, ...props }: TagGroupProps) => import("react").JSX.Element;
|
|
817
|
-
export type TextareaProps = ComponentPropsWithRef<'textarea'>;
|
|
818
|
-
export declare const Textarea: ({ className, ref, rows, ...props }: TextareaProps) => import("react").JSX.Element;
|
|
819
814
|
export interface ThemeBuilderProps extends ComponentPropsWithoutRef<'section'> {
|
|
820
815
|
glass?: LumenGlassProp;
|
|
821
816
|
}
|
|
@@ -845,8 +840,6 @@ export interface TreeGridProps extends ComponentPropsWithoutRef<'div'> {
|
|
|
845
840
|
glass?: LumenGlassProp;
|
|
846
841
|
}
|
|
847
842
|
export declare const TreeGrid: ({ className, glass, role, ...props }: TreeGridProps) => import("react").JSX.Element;
|
|
848
|
-
export type TypographyProps = ComponentPropsWithoutRef<'div'>;
|
|
849
|
-
export declare const Typography: ({ className, ...props }: TypographyProps) => import("react").JSX.Element;
|
|
850
843
|
export interface VirtualListProps extends ComponentPropsWithoutRef<'div'> {
|
|
851
844
|
glass?: LumenGlassProp;
|
|
852
845
|
itemSize?: number | string;
|
|
@@ -866,10 +859,12 @@ export declare const FormattedDate: ({ className, ...props }: FormattedDateProps
|
|
|
866
859
|
export type ImageProps<T extends ElementType = 'img'> = {
|
|
867
860
|
as?: T;
|
|
868
861
|
className?: string;
|
|
862
|
+
fit?: 'contain' | 'cover';
|
|
869
863
|
invertOnDark?: boolean;
|
|
870
864
|
loading?: 'eager' | 'lazy';
|
|
871
|
-
|
|
872
|
-
|
|
865
|
+
radius?: 'full' | 'lg' | 'md' | 'none' | 'sm';
|
|
866
|
+
} & Omit<ComponentPropsWithoutRef<T>, 'as' | 'className' | 'fit' | 'loading' | 'radius'>;
|
|
867
|
+
export declare const Image: <T extends ElementType = "img">({ as, className, fit, invertOnDark, loading, radius, ...props }: ImageProps<T>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
873
868
|
export type LinkProps = ComponentPropsWithRef<'a'> & {
|
|
874
869
|
newTab?: boolean;
|
|
875
870
|
variant?: 'default' | 'inherit';
|
|
@@ -979,13 +974,6 @@ export interface BackdropProps extends ComponentPropsWithoutRef<'div'> {
|
|
|
979
974
|
variant?: 'aurora' | 'dots' | 'grid' | 'rays';
|
|
980
975
|
}
|
|
981
976
|
export declare const Backdrop: ({ children, className, intensity, tone, variant, ...props }: BackdropProps) => import("react").JSX.Element;
|
|
982
|
-
export interface IllustrationProps extends ComponentPropsWithoutRef<'span'> {
|
|
983
|
-
label?: string;
|
|
984
|
-
size?: 'lg' | 'md' | 'sm';
|
|
985
|
-
tone?: 'accent' | 'auto' | 'brand' | 'neutral';
|
|
986
|
-
variant?: 'empty' | 'error' | 'offline' | 'success';
|
|
987
|
-
}
|
|
988
|
-
export declare const Illustration: ({ className, label, size, tone, variant, ...props }: IllustrationProps) => import("react").JSX.Element;
|
|
989
977
|
export type AnimatedPortraitProps = ComponentPropsWithoutRef<'div'>;
|
|
990
978
|
export declare const AnimatedPortrait: ({ className, ...props }: AnimatedPortraitProps) => import("react").JSX.Element;
|
|
991
979
|
export type ButtonLinkProps = ComponentPropsWithRef<'a'> & {
|
|
@@ -1145,5 +1133,4 @@ export interface SpeedDialProps extends ComponentPropsWithoutRef<'div'> {
|
|
|
1145
1133
|
label?: string;
|
|
1146
1134
|
}
|
|
1147
1135
|
export declare const SpeedDial: ({ actions, children, className, defaultOpen, direction, label, onBlur, ...props }: SpeedDialProps) => import("react").JSX.Element;
|
|
1148
|
-
export {};
|
|
1149
1136
|
//# sourceMappingURL=components.d.ts.map
|