@lettuceai/crisp 1.0.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/LICENSE +21 -0
- package/README.md +130 -0
- package/dist/components/Accordion.d.ts +15 -0
- package/dist/components/ActionBar.d.ts +25 -0
- package/dist/components/Alert.d.ts +19 -0
- package/dist/components/AppBar.d.ts +29 -0
- package/dist/components/AppShell.d.ts +42 -0
- package/dist/components/AudioItem.d.ts +22 -0
- package/dist/components/Avatar.d.ts +11 -0
- package/dist/components/AvatarGroup.d.ts +17 -0
- package/dist/components/AvatarPicker.d.ts +20 -0
- package/dist/components/Badge.d.ts +8 -0
- package/dist/components/Banner.d.ts +17 -0
- package/dist/components/Breadcrumb.d.ts +23 -0
- package/dist/components/Button.d.ts +15 -0
- package/dist/components/ButtonGroup.d.ts +21 -0
- package/dist/components/Card.d.ts +16 -0
- package/dist/components/Carousel.d.ts +16 -0
- package/dist/components/CharacterCard.d.ts +30 -0
- package/dist/components/Chart.d.ts +35 -0
- package/dist/components/Checkbox.d.ts +11 -0
- package/dist/components/Chip.d.ts +11 -0
- package/dist/components/ChoiceCard.d.ts +22 -0
- package/dist/components/CodeBlock.d.ts +16 -0
- package/dist/components/Collapsible.d.ts +20 -0
- package/dist/components/ColorPicker.d.ts +15 -0
- package/dist/components/Combobox.d.ts +30 -0
- package/dist/components/CommandPalette.d.ts +34 -0
- package/dist/components/Composer.d.ts +49 -0
- package/dist/components/ContextMenu.d.ts +18 -0
- package/dist/components/CopyButton.d.ts +13 -0
- package/dist/components/DatePicker.d.ts +23 -0
- package/dist/components/Dialog.d.ts +15 -0
- package/dist/components/Diff.d.ts +17 -0
- package/dist/components/Dock.d.ts +6 -0
- package/dist/components/DownloadItem.d.ts +28 -0
- package/dist/components/Dropzone.d.ts +21 -0
- package/dist/components/EmptyState.d.ts +24 -0
- package/dist/components/Field.d.ts +20 -0
- package/dist/components/FilterBar.d.ts +21 -0
- package/dist/components/Form.d.ts +44 -0
- package/dist/components/Highlight.d.ts +14 -0
- package/dist/components/HoverCard.d.ts +15 -0
- package/dist/components/Icon.d.ts +37 -0
- package/dist/components/IconButton.d.ts +14 -0
- package/dist/components/ImageViewer.d.ts +16 -0
- package/dist/components/InfiniteScroll.d.ts +14 -0
- package/dist/components/Input.d.ts +14 -0
- package/dist/components/Kbd.d.ts +5 -0
- package/dist/components/List.d.ts +25 -0
- package/dist/components/Masonry.d.ts +16 -0
- package/dist/components/MediaCard.d.ts +23 -0
- package/dist/components/MediaTile.d.ts +21 -0
- package/dist/components/Menu.d.ts +34 -0
- package/dist/components/Message.d.ts +76 -0
- package/dist/components/Meter.d.ts +20 -0
- package/dist/components/ModelSelect.d.ts +35 -0
- package/dist/components/MultiItemDownloadCard.d.ts +39 -0
- package/dist/components/NavRail.d.ts +37 -0
- package/dist/components/NumberInput.d.ts +19 -0
- package/dist/components/Page.d.ts +18 -0
- package/dist/components/Pagination.d.ts +10 -0
- package/dist/components/Panel.d.ts +18 -0
- package/dist/components/PartitionBar.d.ts +39 -0
- package/dist/components/Popover.d.ts +45 -0
- package/dist/components/Progress.d.ts +9 -0
- package/dist/components/Prose.d.ts +13 -0
- package/dist/components/Radio.d.ts +19 -0
- package/dist/components/ReorderableList.d.ts +21 -0
- package/dist/components/Resizable.d.ts +20 -0
- package/dist/components/ScrollArea.d.ts +17 -0
- package/dist/components/SearchField.d.ts +14 -0
- package/dist/components/SecretInput.d.ts +26 -0
- package/dist/components/Segmented.d.ts +16 -0
- package/dist/components/Select.d.ts +15 -0
- package/dist/components/SelectMenu.d.ts +48 -0
- package/dist/components/Sheet.d.ts +50 -0
- package/dist/components/Shelf.d.ts +17 -0
- package/dist/components/Skeleton.d.ts +12 -0
- package/dist/components/Slider.d.ts +11 -0
- package/dist/components/Spinner.d.ts +13 -0
- package/dist/components/StatTile.d.ts +33 -0
- package/dist/components/Stepper.d.ts +21 -0
- package/dist/components/Surface.d.ts +56 -0
- package/dist/components/Switch.d.ts +9 -0
- package/dist/components/TabBar.d.ts +12 -0
- package/dist/components/Table.d.ts +35 -0
- package/dist/components/Tabs.d.ts +31 -0
- package/dist/components/TagInput.d.ts +18 -0
- package/dist/components/Text.d.ts +293 -0
- package/dist/components/ThemeEditor.d.ts +8 -0
- package/dist/components/Timeline.d.ts +17 -0
- package/dist/components/TitleBar.d.ts +17 -0
- package/dist/components/Toast.d.ts +50 -0
- package/dist/components/ToggleGroup.d.ts +22 -0
- package/dist/components/Toolbar.d.ts +18 -0
- package/dist/components/Tooltip.d.ts +15 -0
- package/dist/components/Tour.d.ts +22 -0
- package/dist/components/Tree.d.ts +21 -0
- package/dist/components/VirtualList.d.ts +18 -0
- package/dist/components/WindowControls.d.ts +38 -0
- package/dist/components/Wizard.d.ts +33 -0
- package/dist/components/confirm.d.ts +24 -0
- package/dist/components/index.d.ts +103 -0
- package/dist/components/nav.d.ts +19 -0
- package/dist/components/primitives.d.ts +14 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +8035 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/Box.d.ts +6 -0
- package/dist/layout/Center.d.ts +2 -0
- package/dist/layout/Container.d.ts +8 -0
- package/dist/layout/Divider.d.ts +9 -0
- package/dist/layout/Flex.d.ts +16 -0
- package/dist/layout/Grid.d.ts +13 -0
- package/dist/layout/Spacer.d.ts +4 -0
- package/dist/layout/Stack.d.ts +13 -0
- package/dist/layout/index.d.ts +8 -0
- package/dist/lib/cn.d.ts +2 -0
- package/dist/lib/color.d.ts +16 -0
- package/dist/lib/format.d.ts +6 -0
- package/dist/lib/frame.d.ts +25 -0
- package/dist/lib/icon.d.ts +24 -0
- package/dist/lib/imageBrightness.d.ts +8 -0
- package/dist/lib/motion.d.ts +54 -0
- package/dist/lib/polymorphic.d.ts +12 -0
- package/dist/lib/tint.d.ts +9 -0
- package/dist/lib/useLongPress.d.ts +19 -0
- package/dist/lib/useMediaQuery.d.ts +8 -0
- package/dist/lib/useModal.d.ts +8 -0
- package/dist/theme/ThemeProvider.d.ts +19 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/theme.d.ts +36 -0
- package/package.json +81 -0
- package/src/styles.css +392 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type SheetPlacement = "auto" | "bottom" | "side" | "center";
|
|
3
|
+
/** Fractions of the viewport the bottom sheet rests at. Ascending. */
|
|
4
|
+
export type SheetDetent = number;
|
|
5
|
+
export interface SheetProps {
|
|
6
|
+
open: boolean;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
/** Slot left of the title — a back button when a sheet pushes another. */
|
|
11
|
+
leftAction?: ReactNode;
|
|
12
|
+
/** Slot right of the title, before the close button. */
|
|
13
|
+
rightAction?: ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Show the × in the header. Off by default on the bottom menu — the handle, a drag
|
|
16
|
+
* down, a tap on the scrim and Escape all close it, and a fourth way costs the header
|
|
17
|
+
* its room. On by default for side and centre panels, which have no handle. When it
|
|
18
|
+
* is off the button is still there for a keyboard or a screen reader, and appears the
|
|
19
|
+
* moment it takes focus.
|
|
20
|
+
*/
|
|
21
|
+
closeButton?: boolean;
|
|
22
|
+
footer?: ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* `bottom` (default) everywhere — the bottom menu is the app's signature surface and
|
|
25
|
+
* stays that way on desktop too. `auto` opts into a right-side panel on desktop,
|
|
26
|
+
* `side` and `center` force one. Only reach for those when a specific screen earns it.
|
|
27
|
+
*/
|
|
28
|
+
placement?: SheetPlacement;
|
|
29
|
+
size?: "sm" | "md" | "lg";
|
|
30
|
+
/**
|
|
31
|
+
* Resting heights for the bottom variant, as fractions of the viewport.
|
|
32
|
+
* Drag between them; dragging below the first one closes.
|
|
33
|
+
*
|
|
34
|
+
* Left off, the sheet is as tall as its content and no taller — which is what a
|
|
35
|
+
* bottom menu wants. Pass detents only for a sheet that browses something and so
|
|
36
|
+
* needs a deliberate resting height.
|
|
37
|
+
*/
|
|
38
|
+
detents?: readonly SheetDetent[];
|
|
39
|
+
/** Start at this detent index. Default 0. */
|
|
40
|
+
defaultDetent?: number;
|
|
41
|
+
className?: string;
|
|
42
|
+
children: ReactNode;
|
|
43
|
+
}
|
|
44
|
+
export declare function Sheet({ open, onClose, title, description, leftAction, rightAction, closeButton, footer, placement, size, detents, defaultDetent, className, children, }: SheetProps): import("react").ReactPortal | null;
|
|
45
|
+
/**
|
|
46
|
+
* The team's name for this surface. Same component — `BottomMenu` reads better at
|
|
47
|
+
* call sites that are, and always will be, a bottom menu.
|
|
48
|
+
*/
|
|
49
|
+
export declare const BottomMenu: typeof Sheet;
|
|
50
|
+
export type BottomMenuProps = SheetProps;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface ShelfProps {
|
|
3
|
+
/** One node per item; each is given the same width. */
|
|
4
|
+
children: ReactNode[];
|
|
5
|
+
/** Item width — a Tailwind width class. */
|
|
6
|
+
itemClassName?: string;
|
|
7
|
+
/** Bleed to the container's edges so the first item starts at the page margin. */
|
|
8
|
+
bleed?: boolean;
|
|
9
|
+
"aria-label": string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A row that scrolls sideways: swipe on touch, arrows where there is a pointer, and
|
|
14
|
+
* the ends fade to say there is more. Discover's shelves, image variants, the guide's
|
|
15
|
+
* screenshots — anything that is a set laid side by side.
|
|
16
|
+
*/
|
|
17
|
+
export declare function Shelf({ children, itemClassName, bleed, className, ...aria }: ShelfProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SkeletonProps {
|
|
2
|
+
/** Text lines get a line-height-sized bar; circle for avatars; block for images/cards. */
|
|
3
|
+
shape?: "text" | "circle" | "block";
|
|
4
|
+
width?: string | number;
|
|
5
|
+
height?: string | number;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function Skeleton({ shape, width, height, className }: SkeletonProps): import("react").JSX.Element;
|
|
9
|
+
/** Skeleton for a list row: avatar + two lines. */
|
|
10
|
+
export declare function SkeletonRow({ className }: {
|
|
11
|
+
className?: string;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type InputHTMLAttributes } from "react";
|
|
2
|
+
export interface SliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "value" | "onChange"> {
|
|
3
|
+
value: number;
|
|
4
|
+
onChange: (value: number) => void;
|
|
5
|
+
min?: number;
|
|
6
|
+
max?: number;
|
|
7
|
+
step?: number;
|
|
8
|
+
/** Show the current value at the right. Pass a formatter to add units. */
|
|
9
|
+
showValue?: boolean | ((value: number) => string);
|
|
10
|
+
}
|
|
11
|
+
export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface SpinnerProps {
|
|
2
|
+
size?: "sm" | "md" | "lg";
|
|
3
|
+
/** Announced to screen readers; omit only when a sibling already says what's loading. */
|
|
4
|
+
label?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
/** The one spinner. `animate-spin` appears 302 times in the app; this replaces all of them. */
|
|
8
|
+
export declare function Spinner({ size, label, className }: SpinnerProps): import("react").JSX.Element;
|
|
9
|
+
/** Centred spinner with a line of copy, for a panel that has nothing to show yet. */
|
|
10
|
+
export declare function LoadingState({ label, className }: {
|
|
11
|
+
label?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface StatTileProps {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: ReactNode;
|
|
5
|
+
/** A line under the value — the comparison, the unit, the period. */
|
|
6
|
+
sub?: ReactNode;
|
|
7
|
+
/** Percentage change. `up` is not automatically good; pass `goodDirection`. */
|
|
8
|
+
trend?: {
|
|
9
|
+
value: number;
|
|
10
|
+
direction: "up" | "down";
|
|
11
|
+
};
|
|
12
|
+
/** Which direction should read as positive. Default "up". */
|
|
13
|
+
goodDirection?: "up" | "down";
|
|
14
|
+
icon?: ReactNode;
|
|
15
|
+
highlight?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One number with its label. Usage stats, model details, memory counts.
|
|
20
|
+
* The label is sentence case, not tracked-out uppercase — a stat tile is read, not scanned.
|
|
21
|
+
*/
|
|
22
|
+
export declare function StatTile({ label, value, sub, trend, goodDirection, icon, highlight, className }: StatTileProps): import("react").JSX.Element;
|
|
23
|
+
export interface KeyValueProps {
|
|
24
|
+
items: readonly {
|
|
25
|
+
label: ReactNode;
|
|
26
|
+
value: ReactNode;
|
|
27
|
+
}[];
|
|
28
|
+
/** `rows` stacks label over value on narrow; `inline` keeps them on one line. */
|
|
29
|
+
layout?: "inline" | "rows";
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
/** Detail lists — model metadata, image properties, request info. */
|
|
33
|
+
export declare function KeyValue({ items, layout, className }: KeyValueProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface Step {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export interface StepperProps {
|
|
8
|
+
steps: readonly Step[];
|
|
9
|
+
/** Index of the step in progress. Everything before it counts as done. */
|
|
10
|
+
current: number;
|
|
11
|
+
/** Jump back to a completed step. Forward jumps are never offered. */
|
|
12
|
+
onStepClick?: (index: number) => void;
|
|
13
|
+
/** `bar` is a segmented progress strip; `dots` is a compact row for a sheet header. */
|
|
14
|
+
variant?: "bar" | "dots";
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Progress through a flow. Character creation, onboarding, the engine wizard and the
|
|
19
|
+
* lorebook generator each grew their own; this is the one.
|
|
20
|
+
*/
|
|
21
|
+
export declare function Stepper({ steps, current, onStepClick, variant, className }: StepperProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type CSSProperties, type ElementType, type ReactNode } from "react";
|
|
2
|
+
interface SurfaceContextValue {
|
|
3
|
+
/** Something is painted behind the content — chrome above it should frost, not sit flat. */
|
|
4
|
+
hasBackground: boolean;
|
|
5
|
+
/** Whether that something is light or dark, so glass knows which way to tint. */
|
|
6
|
+
tone: "light" | "dark";
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* "Am I sitting on a photo or a gradient, and is it light or dark?" Components use this
|
|
10
|
+
* to switch to glass — a translucent fill plus backdrop-blur — tinted the right way.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useOnSurface(): SurfaceContextValue;
|
|
13
|
+
export interface SurfaceProps {
|
|
14
|
+
/** A background image (data URL or asset URL) painted under the content. */
|
|
15
|
+
image?: string | null;
|
|
16
|
+
/** Which part of the image to keep when it is cropped to fit — `object-position`. */
|
|
17
|
+
imagePosition?: string;
|
|
18
|
+
/** A CSS colour or gradient painted under the content — what useAvatarGradient returns. */
|
|
19
|
+
tint?: string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Foreground colour for everything inside. When a gradient or photo decides the
|
|
22
|
+
* background, it also decides the text colour, so pass what the extractor computed.
|
|
23
|
+
*/
|
|
24
|
+
fg?: string | null;
|
|
25
|
+
/** Optional explicit secondary colour; otherwise derived from `fg`. */
|
|
26
|
+
fgMuted?: string | null;
|
|
27
|
+
/**
|
|
28
|
+
* How far to push the art away from the text. The image itself is never blurred —
|
|
29
|
+
* the picture is the point. The chrome above it frosts instead.
|
|
30
|
+
*
|
|
31
|
+
* The veil follows the image: dark art gets a black veil, light art a white one, so
|
|
32
|
+
* a bright photograph does not leave white text sitting on white.
|
|
33
|
+
*/
|
|
34
|
+
scrim?: "none" | "soft" | "auto" | "strong";
|
|
35
|
+
/**
|
|
36
|
+
* Skip measuring and state the art's tone yourself — the app already computes this
|
|
37
|
+
* when it extracts an avatar's gradient.
|
|
38
|
+
*/
|
|
39
|
+
tone?: "light" | "dark";
|
|
40
|
+
as?: ElementType;
|
|
41
|
+
className?: string;
|
|
42
|
+
style?: CSSProperties;
|
|
43
|
+
children?: ReactNode;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A patch of UI whose background is decided by content — a character's extracted
|
|
47
|
+
* gradient, a chat's background image — rather than by the theme.
|
|
48
|
+
*
|
|
49
|
+
* It rebinds the colour tiers for its subtree, so every Crisp component inside keeps
|
|
50
|
+
* using `text-fg`, `text-fg-3`, `bg-fill`, `border-line` and simply comes out the right
|
|
51
|
+
* colour. Without this, each component ends up carrying its own
|
|
52
|
+
* `style={hasGradient ? { color: textColor } : {}}` — which is what the app does today,
|
|
53
|
+
* four times in one card.
|
|
54
|
+
*/
|
|
55
|
+
export declare const Surface: import("react").ForwardRefExoticComponent<SurfaceProps & import("react").RefAttributes<HTMLElement>>;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface SwitchProps {
|
|
2
|
+
checked: boolean;
|
|
3
|
+
onChange: (checked: boolean) => void;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
id?: string;
|
|
6
|
+
"aria-label"?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function Switch({ checked, onChange, disabled, id, className, ...aria }: SwitchProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { NavProps } from "./nav";
|
|
2
|
+
export interface TabBarProps<T extends string> extends NavProps<T> {
|
|
3
|
+
showLabels?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function NavBadge({ badge }: {
|
|
6
|
+
badge: number | boolean;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Bottom navigation, for touch and narrow windows. Destinations are quiet;
|
|
10
|
+
* the create action is the only accented control on the bar.
|
|
11
|
+
*/
|
|
12
|
+
export declare function TabBar<T extends string>({ items, value, onChange, onCreate, createLabel, showLabels, className, }: TabBarProps<T>): import("react").JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface Column<Row> {
|
|
3
|
+
key: string;
|
|
4
|
+
header: ReactNode;
|
|
5
|
+
/** Cell renderer. Keep it a pure read of the row. */
|
|
6
|
+
cell: (row: Row) => ReactNode;
|
|
7
|
+
align?: "left" | "right";
|
|
8
|
+
/** Numbers line up only if you say so. */
|
|
9
|
+
numeric?: boolean;
|
|
10
|
+
sortable?: boolean;
|
|
11
|
+
width?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TableProps<Row> {
|
|
14
|
+
columns: readonly Column<Row>[];
|
|
15
|
+
rows: readonly Row[];
|
|
16
|
+
rowKey: (row: Row) => string;
|
|
17
|
+
sort?: {
|
|
18
|
+
key: string;
|
|
19
|
+
direction: "asc" | "desc";
|
|
20
|
+
};
|
|
21
|
+
onSortChange?: (sort: {
|
|
22
|
+
key: string;
|
|
23
|
+
direction: "asc" | "desc";
|
|
24
|
+
}) => void;
|
|
25
|
+
onRowClick?: (row: Row) => void;
|
|
26
|
+
/** Rendered in place of the body when there are no rows. */
|
|
27
|
+
empty?: ReactNode;
|
|
28
|
+
caption?: string;
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A real table for tabular data — logs, usage, model lists — instead of a grid of divs.
|
|
33
|
+
* It scrolls inside itself so a wide table never makes the page scroll sideways.
|
|
34
|
+
*/
|
|
35
|
+
export declare function Table<Row>({ columns, rows, rowKey, sort, onSortChange, onRowClick, empty, caption, className, }: TableProps<Row>): import("react").JSX.Element;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface TabsProps<T extends string> {
|
|
3
|
+
value: T;
|
|
4
|
+
onChange: (value: T) => void;
|
|
5
|
+
className?: string;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/** Underlined tabs for page-level sections. For 2–4 toggles inside a card, use Segmented. */
|
|
9
|
+
/**
|
|
10
|
+
* Tabs switch between views of one thing (a provider's language and audio lists, a
|
|
11
|
+
* character's details and scenes). For narrowing one list by a facet — kind, tag,
|
|
12
|
+
* status — use FilterBar, whose chips carry counts and scroll; for two or three
|
|
13
|
+
* peer settings, Segmented.
|
|
14
|
+
*/
|
|
15
|
+
export declare function Tabs<T extends string>({ value, onChange, className, children }: TabsProps<T>): import("react").JSX.Element;
|
|
16
|
+
export declare function TabList({ children, className, "aria-label": ariaLabel }: {
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
"aria-label"?: string;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
export declare function Tab({ value, icon, count, children }: {
|
|
22
|
+
value: string;
|
|
23
|
+
icon?: ReactNode;
|
|
24
|
+
count?: number;
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
export declare function TabPanel({ value, className, children }: {
|
|
28
|
+
value: string;
|
|
29
|
+
className?: string;
|
|
30
|
+
children: ReactNode;
|
|
31
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface TagInputProps {
|
|
2
|
+
value: string[];
|
|
3
|
+
onChange: (value: string[]) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
/** Refuse tags past this many. */
|
|
6
|
+
max?: number;
|
|
7
|
+
/** Characters that also commit a tag, besides Enter. Default comma. */
|
|
8
|
+
separators?: readonly string[];
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
id?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Tags as chips instead of a comma-separated string — character tags are a plain text
|
|
15
|
+
* field today, so "sci-fi, fantasy" is one value the app has to split on read.
|
|
16
|
+
* Enter or a separator commits; Backspace on an empty input removes the last one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function TagInput({ value, onChange, placeholder, max, separators, disabled, id, className, }: TagInputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* The type roles. Every piece of text in the app should be one of these;
|
|
4
|
+
* if it isn't, that's a new role to add here, not a one-off class.
|
|
5
|
+
*/
|
|
6
|
+
export type TextVariant = "hero" | "display" | "page" | "section" | "title" | "body" | "secondary" | "label" | "hint" | "caption";
|
|
7
|
+
export interface TextProps extends HTMLAttributes<HTMLElement> {
|
|
8
|
+
variant?: TextVariant;
|
|
9
|
+
as?: keyof HTMLElementTagNameMap;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare function Text({ variant, as, className, ...rest }: TextProps): import("react").DetailedReactHTMLElement<{
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
defaultChecked?: boolean | undefined;
|
|
15
|
+
defaultValue?: string | number | readonly string[] | undefined;
|
|
16
|
+
suppressContentEditableWarning?: boolean | undefined;
|
|
17
|
+
suppressHydrationWarning?: boolean | undefined;
|
|
18
|
+
accessKey?: string | undefined;
|
|
19
|
+
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
|
|
20
|
+
autoFocus?: boolean | undefined;
|
|
21
|
+
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
22
|
+
contextMenu?: string | undefined;
|
|
23
|
+
dir?: string | undefined;
|
|
24
|
+
draggable?: (boolean | "true" | "false") | undefined;
|
|
25
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
26
|
+
hidden?: boolean | undefined;
|
|
27
|
+
id?: string | undefined;
|
|
28
|
+
lang?: string | undefined;
|
|
29
|
+
nonce?: string | undefined;
|
|
30
|
+
slot?: string | undefined;
|
|
31
|
+
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
32
|
+
style?: import("react").CSSProperties | undefined;
|
|
33
|
+
tabIndex?: number | undefined;
|
|
34
|
+
title?: string | undefined;
|
|
35
|
+
translate?: "yes" | "no" | undefined;
|
|
36
|
+
radioGroup?: string | undefined;
|
|
37
|
+
role?: import("react").AriaRole | undefined;
|
|
38
|
+
about?: string | undefined;
|
|
39
|
+
content?: string | undefined;
|
|
40
|
+
datatype?: string | undefined;
|
|
41
|
+
inlist?: any;
|
|
42
|
+
prefix?: string | undefined;
|
|
43
|
+
property?: string | undefined;
|
|
44
|
+
rel?: string | undefined;
|
|
45
|
+
resource?: string | undefined;
|
|
46
|
+
rev?: string | undefined;
|
|
47
|
+
typeof?: string | undefined;
|
|
48
|
+
vocab?: string | undefined;
|
|
49
|
+
autoCorrect?: string | undefined;
|
|
50
|
+
autoSave?: string | undefined;
|
|
51
|
+
color?: string | undefined;
|
|
52
|
+
itemProp?: string | undefined;
|
|
53
|
+
itemScope?: boolean | undefined;
|
|
54
|
+
itemType?: string | undefined;
|
|
55
|
+
itemID?: string | undefined;
|
|
56
|
+
itemRef?: string | undefined;
|
|
57
|
+
results?: number | undefined;
|
|
58
|
+
security?: string | undefined;
|
|
59
|
+
unselectable?: "on" | "off" | undefined;
|
|
60
|
+
popover?: "" | "auto" | "manual" | "hint" | undefined;
|
|
61
|
+
popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
|
|
62
|
+
popoverTarget?: string | undefined;
|
|
63
|
+
inert?: boolean | undefined;
|
|
64
|
+
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
|
|
65
|
+
is?: string | undefined;
|
|
66
|
+
exportparts?: string | undefined;
|
|
67
|
+
part?: string | undefined;
|
|
68
|
+
"aria-activedescendant"?: string | undefined;
|
|
69
|
+
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
70
|
+
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
|
|
71
|
+
"aria-braillelabel"?: string | undefined;
|
|
72
|
+
"aria-brailleroledescription"?: string | undefined;
|
|
73
|
+
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
74
|
+
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
|
|
75
|
+
"aria-colcount"?: number | undefined;
|
|
76
|
+
"aria-colindex"?: number | undefined;
|
|
77
|
+
"aria-colindextext"?: string | undefined;
|
|
78
|
+
"aria-colspan"?: number | undefined;
|
|
79
|
+
"aria-controls"?: string | undefined;
|
|
80
|
+
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
|
|
81
|
+
"aria-describedby"?: string | undefined;
|
|
82
|
+
"aria-description"?: string | undefined;
|
|
83
|
+
"aria-details"?: string | undefined;
|
|
84
|
+
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
85
|
+
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
|
|
86
|
+
"aria-errormessage"?: string | undefined;
|
|
87
|
+
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
88
|
+
"aria-flowto"?: string | undefined;
|
|
89
|
+
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
90
|
+
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
|
|
91
|
+
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
92
|
+
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
|
|
93
|
+
"aria-keyshortcuts"?: string | undefined;
|
|
94
|
+
"aria-label"?: string | undefined;
|
|
95
|
+
"aria-labelledby"?: string | undefined;
|
|
96
|
+
"aria-level"?: number | undefined;
|
|
97
|
+
"aria-live"?: "off" | "assertive" | "polite" | undefined;
|
|
98
|
+
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
99
|
+
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
100
|
+
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
101
|
+
"aria-orientation"?: "horizontal" | "vertical" | undefined;
|
|
102
|
+
"aria-owns"?: string | undefined;
|
|
103
|
+
"aria-placeholder"?: string | undefined;
|
|
104
|
+
"aria-posinset"?: number | undefined;
|
|
105
|
+
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
|
|
106
|
+
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
107
|
+
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
|
|
108
|
+
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
109
|
+
"aria-roledescription"?: string | undefined;
|
|
110
|
+
"aria-rowcount"?: number | undefined;
|
|
111
|
+
"aria-rowindex"?: number | undefined;
|
|
112
|
+
"aria-rowindextext"?: string | undefined;
|
|
113
|
+
"aria-rowspan"?: number | undefined;
|
|
114
|
+
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
115
|
+
"aria-setsize"?: number | undefined;
|
|
116
|
+
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
|
|
117
|
+
"aria-valuemax"?: number | undefined;
|
|
118
|
+
"aria-valuemin"?: number | undefined;
|
|
119
|
+
"aria-valuenow"?: number | undefined;
|
|
120
|
+
"aria-valuetext"?: string | undefined;
|
|
121
|
+
dangerouslySetInnerHTML?: {
|
|
122
|
+
__html: string | TrustedHTML;
|
|
123
|
+
} | undefined;
|
|
124
|
+
onCopy?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
|
|
125
|
+
onCopyCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
|
|
126
|
+
onCut?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
|
|
127
|
+
onCutCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
|
|
128
|
+
onPaste?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
|
|
129
|
+
onPasteCapture?: import("react").ClipboardEventHandler<HTMLElement> | undefined;
|
|
130
|
+
onCompositionEnd?: import("react").CompositionEventHandler<HTMLElement> | undefined;
|
|
131
|
+
onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
|
|
132
|
+
onCompositionStart?: import("react").CompositionEventHandler<HTMLElement> | undefined;
|
|
133
|
+
onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
|
|
134
|
+
onCompositionUpdate?: import("react").CompositionEventHandler<HTMLElement> | undefined;
|
|
135
|
+
onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLElement> | undefined;
|
|
136
|
+
onFocus?: import("react").FocusEventHandler<HTMLElement> | undefined;
|
|
137
|
+
onFocusCapture?: import("react").FocusEventHandler<HTMLElement> | undefined;
|
|
138
|
+
onBlur?: import("react").FocusEventHandler<HTMLElement> | undefined;
|
|
139
|
+
onBlurCapture?: import("react").FocusEventHandler<HTMLElement> | undefined;
|
|
140
|
+
onChange?: import("react").ChangeEventHandler<HTMLElement, Element> | undefined;
|
|
141
|
+
onChangeCapture?: import("react").ChangeEventHandler<HTMLElement, Element> | undefined;
|
|
142
|
+
onBeforeInput?: import("react").InputEventHandler<HTMLElement> | undefined;
|
|
143
|
+
onBeforeInputCapture?: import("react").InputEventHandler<HTMLElement> | undefined;
|
|
144
|
+
onInput?: import("react").InputEventHandler<HTMLElement> | undefined;
|
|
145
|
+
onInputCapture?: import("react").InputEventHandler<HTMLElement> | undefined;
|
|
146
|
+
onReset?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
147
|
+
onResetCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
148
|
+
onSubmit?: import("react").SubmitEventHandler<HTMLElement> | undefined;
|
|
149
|
+
onSubmitCapture?: import("react").SubmitEventHandler<HTMLElement> | undefined;
|
|
150
|
+
onInvalid?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
151
|
+
onInvalidCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
152
|
+
onLoad?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
153
|
+
onLoadCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
154
|
+
onError?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
155
|
+
onErrorCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
156
|
+
onKeyDown?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
|
|
157
|
+
onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
|
|
158
|
+
onKeyPress?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
|
|
159
|
+
onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
|
|
160
|
+
onKeyUp?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
|
|
161
|
+
onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLElement> | undefined;
|
|
162
|
+
onAbort?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
163
|
+
onAbortCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
164
|
+
onCanPlay?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
165
|
+
onCanPlayCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
166
|
+
onCanPlayThrough?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
167
|
+
onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
168
|
+
onDurationChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
169
|
+
onDurationChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
170
|
+
onEmptied?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
171
|
+
onEmptiedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
172
|
+
onEncrypted?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
173
|
+
onEncryptedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
174
|
+
onEnded?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
175
|
+
onEndedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
176
|
+
onLoadedData?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
177
|
+
onLoadedDataCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
178
|
+
onLoadedMetadata?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
179
|
+
onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
180
|
+
onLoadStart?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
181
|
+
onLoadStartCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
182
|
+
onPause?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
183
|
+
onPauseCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
184
|
+
onPlay?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
185
|
+
onPlayCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
186
|
+
onPlaying?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
187
|
+
onPlayingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
188
|
+
onProgress?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
189
|
+
onProgressCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
190
|
+
onRateChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
191
|
+
onRateChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
192
|
+
onSeeked?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
193
|
+
onSeekedCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
194
|
+
onSeeking?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
195
|
+
onSeekingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
196
|
+
onStalled?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
197
|
+
onStalledCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
198
|
+
onSuspend?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
199
|
+
onSuspendCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
200
|
+
onTimeUpdate?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
201
|
+
onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
202
|
+
onVolumeChange?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
203
|
+
onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
204
|
+
onWaiting?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
205
|
+
onWaitingCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
206
|
+
onAuxClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
207
|
+
onAuxClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
208
|
+
onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
209
|
+
onClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
210
|
+
onContextMenu?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
211
|
+
onContextMenuCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
212
|
+
onDoubleClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
213
|
+
onDoubleClickCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
214
|
+
onDrag?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
215
|
+
onDragCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
216
|
+
onDragEnd?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
217
|
+
onDragEndCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
218
|
+
onDragEnter?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
219
|
+
onDragEnterCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
220
|
+
onDragExit?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
221
|
+
onDragExitCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
222
|
+
onDragLeave?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
223
|
+
onDragLeaveCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
224
|
+
onDragOver?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
225
|
+
onDragOverCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
226
|
+
onDragStart?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
227
|
+
onDragStartCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
228
|
+
onDrop?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
229
|
+
onDropCapture?: import("react").DragEventHandler<HTMLElement> | undefined;
|
|
230
|
+
onMouseDown?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
231
|
+
onMouseDownCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
232
|
+
onMouseEnter?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
233
|
+
onMouseLeave?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
234
|
+
onMouseMove?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
235
|
+
onMouseMoveCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
236
|
+
onMouseOut?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
237
|
+
onMouseOutCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
238
|
+
onMouseOver?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
239
|
+
onMouseOverCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
240
|
+
onMouseUp?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
241
|
+
onMouseUpCapture?: import("react").MouseEventHandler<HTMLElement> | undefined;
|
|
242
|
+
onSelect?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
243
|
+
onSelectCapture?: import("react").ReactEventHandler<HTMLElement> | undefined;
|
|
244
|
+
onTouchCancel?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
245
|
+
onTouchCancelCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
246
|
+
onTouchEnd?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
247
|
+
onTouchEndCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
248
|
+
onTouchMove?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
249
|
+
onTouchMoveCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
250
|
+
onTouchStart?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
251
|
+
onTouchStartCapture?: import("react").TouchEventHandler<HTMLElement> | undefined;
|
|
252
|
+
onPointerDown?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
253
|
+
onPointerDownCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
254
|
+
onPointerMove?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
255
|
+
onPointerMoveCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
256
|
+
onPointerUp?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
257
|
+
onPointerUpCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
258
|
+
onPointerCancel?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
259
|
+
onPointerCancelCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
260
|
+
onPointerEnter?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
261
|
+
onPointerLeave?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
262
|
+
onPointerOver?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
263
|
+
onPointerOverCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
264
|
+
onPointerOut?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
265
|
+
onPointerOutCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
266
|
+
onGotPointerCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
267
|
+
onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
268
|
+
onLostPointerCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
269
|
+
onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLElement> | undefined;
|
|
270
|
+
onScroll?: import("react").UIEventHandler<HTMLElement> | undefined;
|
|
271
|
+
onScrollCapture?: import("react").UIEventHandler<HTMLElement> | undefined;
|
|
272
|
+
onScrollEnd?: import("react").UIEventHandler<HTMLElement> | undefined;
|
|
273
|
+
onScrollEndCapture?: import("react").UIEventHandler<HTMLElement> | undefined;
|
|
274
|
+
onWheel?: import("react").WheelEventHandler<HTMLElement> | undefined;
|
|
275
|
+
onWheelCapture?: import("react").WheelEventHandler<HTMLElement> | undefined;
|
|
276
|
+
onAnimationStart?: import("react").AnimationEventHandler<HTMLElement> | undefined;
|
|
277
|
+
onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
|
|
278
|
+
onAnimationEnd?: import("react").AnimationEventHandler<HTMLElement> | undefined;
|
|
279
|
+
onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
|
|
280
|
+
onAnimationIteration?: import("react").AnimationEventHandler<HTMLElement> | undefined;
|
|
281
|
+
onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLElement> | undefined;
|
|
282
|
+
onToggle?: import("react").ToggleEventHandler<HTMLElement> | undefined;
|
|
283
|
+
onBeforeToggle?: import("react").ToggleEventHandler<HTMLElement> | undefined;
|
|
284
|
+
onTransitionCancel?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
285
|
+
onTransitionCancelCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
286
|
+
onTransitionEnd?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
287
|
+
onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
288
|
+
onTransitionRun?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
289
|
+
onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
290
|
+
onTransitionStart?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
291
|
+
onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLElement> | undefined;
|
|
292
|
+
className: string;
|
|
293
|
+
}, HTMLElement>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live theme editing. Every change writes straight to the document, so the editor and
|
|
3
|
+
* everything behind it repaint together — there is no preview mode, because the preview
|
|
4
|
+
* is the app.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ThemeEditor({ className }: {
|
|
7
|
+
className?: string;
|
|
8
|
+
}): import("react").JSX.Element;
|