@imfusion/web-ui 0.5.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 +60 -0
- package/bin/install-skill.js +180 -0
- package/dist/assets/vendors/base-ui.d.ts +8 -0
- package/dist/breakpoints/index.d.ts +3 -0
- package/dist/breakpoints/min-width.d.ts +9 -0
- package/dist/breakpoints/registry.d.ts +19 -0
- package/dist/code-qBbqAHK-.js +190 -0
- package/dist/codegen/gen-breakpoints-css.d.ts +6 -0
- package/dist/codegen/gen-css-types.d.ts +1 -0
- package/dist/codegen/gen-token-css.d.ts +6 -0
- package/dist/codegen/run.d.ts +1 -0
- package/dist/components/app-shell/app-shell.d.ts +66 -0
- package/dist/components/app-shell/app-shell.meta.d.ts +2 -0
- package/dist/components/app-shell/index.d.ts +2 -0
- package/dist/components/button/button.d.ts +30 -0
- package/dist/components/button/button.meta.d.ts +2 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/callout/callout.d.ts +42 -0
- package/dist/components/callout/callout.meta.d.ts +2 -0
- package/dist/components/callout/index.d.ts +2 -0
- package/dist/components/card/card.d.ts +64 -0
- package/dist/components/card/card.meta.d.ts +2 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/checkbox/checkbox.d.ts +56 -0
- package/dist/components/checkbox/checkbox.meta.d.ts +2 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/chip/chip.cva.d.ts +12 -0
- package/dist/components/chip/chip.d.ts +11 -0
- package/dist/components/chip/chip.meta.d.ts +2 -0
- package/dist/components/chip/index.d.ts +2 -0
- package/dist/components/chip-link/chip-link.d.ts +17 -0
- package/dist/components/chip-link/chip-link.meta.d.ts +2 -0
- package/dist/components/chip-link/index.d.ts +2 -0
- package/dist/components/code/code.d.ts +60 -0
- package/dist/components/code/code.meta.d.ts +2 -0
- package/dist/components/code/index.d.ts +2 -0
- package/dist/components/collapsible/collapsible.d.ts +57 -0
- package/dist/components/collapsible/collapsible.meta.d.ts +2 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/copy-button/copy-button.d.ts +21 -0
- package/dist/components/copy-button/copy-button.meta.d.ts +2 -0
- package/dist/components/copy-button/index.d.ts +2 -0
- package/dist/components/drawer/drawer.d.ts +191 -0
- package/dist/components/drawer/drawer.meta.d.ts +2 -0
- package/dist/components/drawer/index.d.ts +2 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/input.d.ts +25 -0
- package/dist/components/input/input.meta.d.ts +2 -0
- package/dist/components/logo/imfusion/imfusion.d.ts +16 -0
- package/dist/components/logo/imfusion/index.d.ts +1 -0
- package/dist/components/logo/index.d.ts +3 -0
- package/dist/components/logo/logo.d.ts +15 -0
- package/dist/components/logo/logo.meta.d.ts +2 -0
- package/dist/components/navigation-menu/index.d.ts +2 -0
- package/dist/components/navigation-menu/navigation-menu.d.ts +20 -0
- package/dist/components/navigation-menu/navigation-menu.meta.d.ts +2 -0
- package/dist/components/navigation-menu/subs/flyout-link.d.ts +24 -0
- package/dist/components/navigation-menu/subs/inline-submenu.d.ts +41 -0
- package/dist/components/navigation-menu/subs/link.d.ts +64 -0
- package/dist/components/navigation-menu/subs/overlay.d.ts +75 -0
- package/dist/components/navigation-menu/subs/shared.d.ts +20 -0
- package/dist/components/navigation-menu/subs/structure.d.ts +64 -0
- package/dist/components/navigation-menu/subs/trigger.d.ts +47 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/popover.d.ts +181 -0
- package/dist/components/popover/popover.meta.d.ts +2 -0
- package/dist/components/row/index.d.ts +2 -0
- package/dist/components/row/row.d.ts +28 -0
- package/dist/components/row/row.meta.d.ts +2 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/select.d.ts +278 -0
- package/dist/components/select/select.meta.d.ts +2 -0
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/separator.d.ts +15 -0
- package/dist/components/separator/separator.meta.d.ts +2 -0
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/slider.d.ts +111 -0
- package/dist/components/slider/slider.meta.d.ts +2 -0
- package/dist/components/spinner/index.d.ts +2 -0
- package/dist/components/spinner/spinner.d.ts +19 -0
- package/dist/components/spinner/spinner.geometry.d.ts +37 -0
- package/dist/components/spinner/spinner.meta.d.ts +2 -0
- package/dist/components/stack/index.d.ts +2 -0
- package/dist/components/stack/stack.d.ts +18 -0
- package/dist/components/stack/stack.meta.d.ts +2 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/switch.d.ts +45 -0
- package/dist/components/switch/switch.meta.d.ts +2 -0
- package/dist/components/table/index.d.ts +2 -0
- package/dist/components/table/table.d.ts +66 -0
- package/dist/components/table/table.meta.d.ts +2 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/tabs.d.ts +91 -0
- package/dist/components/tabs/tabs.meta.d.ts +2 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/toggle.d.ts +31 -0
- package/dist/components/toggle/toggle.meta.d.ts +2 -0
- package/dist/components/toggle-group/index.d.ts +2 -0
- package/dist/components/toggle-group/toggle-group.d.ts +30 -0
- package/dist/components/toggle-group/toggle-group.meta.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/tooltip.d.ts +164 -0
- package/dist/components/tooltip/tooltip.meta.d.ts +2 -0
- package/dist/components/typo/index.d.ts +2 -0
- package/dist/components/typo/typo.d.ts +100 -0
- package/dist/components/typo/typo.meta.d.ts +2 -0
- package/dist/config.d.ts +8 -0
- package/dist/docgen/gen-docgen.d.ts +1 -0
- package/dist/docgen/gen-docgen.utils.d.ts +13 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/use-clipboard.d.ts +12 -0
- package/dist/hooks/use-color-scheme.d.ts +31 -0
- package/dist/hooks/use-media-query.d.ts +13 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +13103 -0
- package/dist/integrations/code-highlight/code-highlight.d.ts +21 -0
- package/dist/integrations/code-highlight/code-highlight.meta.d.ts +2 -0
- package/dist/integrations/code-highlight/highlighter.d.ts +6 -0
- package/dist/integrations/code-highlight/index.d.ts +3 -0
- package/dist/integrations/code-highlight.js +97 -0
- package/dist/integrations/image-display-options/image-display-options-view.d.ts +22 -0
- package/dist/integrations/image-display-options/image-display-options-view.utils.d.ts +40 -0
- package/dist/integrations/image-display-options/image-display-options.d.ts +29 -0
- package/dist/integrations/image-display-options/image-display-options.meta.d.ts +2 -0
- package/dist/integrations/image-display-options/index.d.ts +2 -0
- package/dist/integrations/image-display-options.js +319 -0
- package/dist/llms/gen-llms.d.ts +1 -0
- package/dist/meta-B8C51eyL.js +74 -0
- package/dist/provider/index.d.ts +1 -0
- package/dist/provider/web-ui-provider.d.ts +6 -0
- package/dist/style.css +2 -0
- package/dist/tabs-DqBFSqq6.js +3789 -0
- package/dist/tokens/apply.d.ts +55 -0
- package/dist/tokens/control-registry.d.ts +10 -0
- package/dist/tokens/token-registry.d.ts +13 -0
- package/dist/tokens/types.d.ts +71 -0
- package/dist/tokens/use-token-controls.d.ts +36 -0
- package/dist/types/docgen.d.ts +17 -0
- package/dist/types/meta.d.ts +108 -0
- package/dist/types/theme.d.ts +3 -0
- package/package.json +139 -0
- package/src/docgen/doc.gen.json +4695 -0
- package/src/llms/llms.gen.txt +176 -0
- package/src/llms/skills/imf-web-ui/SKILL.md +46 -0
- package/src/llms/skills/imf-web-ui-components/SKILL.md +100 -0
- package/src/llms/skills/imf-web-ui-frontend-patterns/SKILL.md +67 -0
- package/src/llms/skills/imf-web-ui-frontend-patterns/references/react-patterns.md +94 -0
- package/src/llms/skills/imf-web-ui-setup/SKILL.md +30 -0
- package/src/llms/skills/imf-web-ui-ux/SKILL.md +103 -0
- package/src/llms/skills/imf-web-ui-ux/references/forms.md +48 -0
- package/src/llms/skills/imf-web-ui-ux/references/usability-heuristics.md +29 -0
- package/src/llms/skills/imf-web-ui-ux/references/visual-design.md +38 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
declare const root: (props?: ({
|
|
3
|
+
density?: "compact" | "comfortable" | "spacious" | null | undefined;
|
|
4
|
+
variant?: "primary" | "main" | "support" | "minor" | "brand" | null | undefined;
|
|
5
|
+
shadow?: "sm" | "md" | "lg" | "none" | null | undefined;
|
|
6
|
+
radius?: "sm" | "md" | "lg" | "brand" | null | undefined;
|
|
7
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
8
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
9
|
+
type RootProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof root> & {
|
|
10
|
+
/** Draws the hairline border. Applies to the neutral variants only — coloured variants are always borderless. */
|
|
11
|
+
/** @default true */
|
|
12
|
+
withBorder?: boolean;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Card.Root — a surface container composed of slots: an optional `Card.Image`
|
|
16
|
+
* (bleeds edge-to-edge, no padding), then `Card.Header` / `Card.Content` /
|
|
17
|
+
* `Card.Footer`. `density` sets one scale that drives both each slot's padding
|
|
18
|
+
* and the gap between slots. `variant` picks the look — neutral tonal surfaces
|
|
19
|
+
* (`main`/`support`/`minor`) carry a hairline border; coloured intent fills
|
|
20
|
+
* (`primary`/`brand`) flip to contrast text and drop the border. `shadow` and
|
|
21
|
+
* `radius` layer on top. Also called a panel, tile, or paper.
|
|
22
|
+
*
|
|
23
|
+
* The image is always the first entry in the stack, so `orientation` just
|
|
24
|
+
* switches the stack between a column and a row without reordering slots.
|
|
25
|
+
*
|
|
26
|
+
* The ImFusion brand ships flat (`shadow="none"`), but the shadow scale is a
|
|
27
|
+
* first-class opt-in axis for third-party consumers. `shadow` picks the elevation
|
|
28
|
+
* level only — how hard or spread that shadow reads is a global lighting decision,
|
|
29
|
+
* owned by the `--imf-ui-shadow-hardness` / `--imf-ui-shadow-spread` tokens.
|
|
30
|
+
*/
|
|
31
|
+
declare function Root({ density, variant, shadow, radius, orientation, withBorder, className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
declare namespace Root {
|
|
33
|
+
var displayName: string;
|
|
34
|
+
}
|
|
35
|
+
type ImageProps = React.ImgHTMLAttributes<HTMLImageElement>;
|
|
36
|
+
/**
|
|
37
|
+
* Card.Image — an edge-to-edge media slot. Has no padding, so the image bleeds
|
|
38
|
+
* to the card edges. Always place it first among the slots.
|
|
39
|
+
*/
|
|
40
|
+
declare function Image({ className, alt, ...props }: ImageProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare namespace Image {
|
|
42
|
+
var displayName: string;
|
|
43
|
+
}
|
|
44
|
+
type SlotProps = React.HTMLAttributes<HTMLDivElement>;
|
|
45
|
+
/** Card.Header — the padded title region at the top of the card body. */
|
|
46
|
+
declare function Header({ className, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
declare namespace Header {
|
|
48
|
+
var displayName: string;
|
|
49
|
+
}
|
|
50
|
+
/** Card.Content — the padded main body of the card. */
|
|
51
|
+
declare function Content({ className, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
declare namespace Content {
|
|
53
|
+
var displayName: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Card.Footer — the padded action region at the bottom. Its background inherits
|
|
57
|
+
* the card fill by default; override `background` in `style` for a distinct
|
|
58
|
+
* action bar.
|
|
59
|
+
*/
|
|
60
|
+
declare function Footer({ className, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
declare namespace Footer {
|
|
62
|
+
var displayName: string;
|
|
63
|
+
}
|
|
64
|
+
export { Root, Image, Header, Content, Footer };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';
|
|
2
|
+
type UpstreamRoot = React.ComponentProps<typeof CheckboxPrimitive.Root>;
|
|
3
|
+
type UpstreamIndicator = React.ComponentProps<typeof CheckboxPrimitive.Indicator>;
|
|
4
|
+
type RootProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
|
|
5
|
+
/** @default false */
|
|
6
|
+
defaultChecked?: boolean;
|
|
7
|
+
checked?: boolean;
|
|
8
|
+
onCheckedChange?: UpstreamRoot["onCheckedChange"];
|
|
9
|
+
/** @default false */
|
|
10
|
+
indeterminate?: boolean;
|
|
11
|
+
/** @default false */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** @default false */
|
|
14
|
+
readOnly?: boolean;
|
|
15
|
+
/** @default false */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** @default false */
|
|
18
|
+
nativeButton?: boolean;
|
|
19
|
+
/** @default false */
|
|
20
|
+
parent?: boolean;
|
|
21
|
+
name?: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
uncheckedValue?: string;
|
|
24
|
+
form?: string;
|
|
25
|
+
inputRef?: React.Ref<HTMLInputElement>;
|
|
26
|
+
className?: UpstreamRoot["className"];
|
|
27
|
+
style?: UpstreamRoot["style"];
|
|
28
|
+
render?: UpstreamRoot["render"];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Checkbox.Root — binary form control; renders a `<span>` plus a hidden `<input>`.
|
|
32
|
+
*
|
|
33
|
+
* @doc https://base-ui.com/react/components/checkbox
|
|
34
|
+
* @llm https://base-ui.com/react/components/checkbox.md
|
|
35
|
+
*/
|
|
36
|
+
export declare function Root({ className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare namespace Root {
|
|
38
|
+
var displayName: string;
|
|
39
|
+
}
|
|
40
|
+
type IndicatorProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
|
|
41
|
+
/** @default false */
|
|
42
|
+
keepMounted?: boolean;
|
|
43
|
+
className?: UpstreamIndicator["className"];
|
|
44
|
+
style?: UpstreamIndicator["style"];
|
|
45
|
+
render?: UpstreamIndicator["render"];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Checkbox.Indicator — shows the checked / indeterminate mark. Ships brand
|
|
49
|
+
* icons by default (check, and a minus while `indeterminate`); pass children
|
|
50
|
+
* to replace them.
|
|
51
|
+
*/
|
|
52
|
+
export declare function Indicator({ className, children, ...props }: IndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
export declare namespace Indicator {
|
|
54
|
+
var displayName: string;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared variants for `Chip` and any sibling primitive that renders the same
|
|
3
|
+
* Chip visual on a different element (`ChipLink` renders `<a>`; a future
|
|
4
|
+
* `ChipButton` would render `<button>`). Keeping them in their own module
|
|
5
|
+
* means variant axes stay aligned without cross-component imports of a
|
|
6
|
+
* component file.
|
|
7
|
+
*/
|
|
8
|
+
export declare const chip: (props?: ({
|
|
9
|
+
variant?: "primary" | "positive" | "negative" | "main" | "support" | "minor" | "brand" | "warning" | "info" | "accent-1" | "accent-2" | "accent-3" | null | undefined;
|
|
10
|
+
appearance?: "outline" | "solid" | "subtle" | null | undefined;
|
|
11
|
+
inline?: boolean | null | undefined;
|
|
12
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { chip } from './chip.cva';
|
|
3
|
+
type Props = React.HTMLAttributes<HTMLSpanElement> & VariantProps<typeof chip> & {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Chip — compact inline label for status or category.
|
|
8
|
+
* Not based on any upstream component.
|
|
9
|
+
*/
|
|
10
|
+
export declare function Chip({ variant, appearance, inline, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { chip } from '../chip/chip.cva';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
export type ChipLinkKind = "external" | "internal";
|
|
4
|
+
type Props = React.AnchorHTMLAttributes<HTMLAnchorElement> & VariantProps<typeof chip> & {
|
|
5
|
+
href: string;
|
|
6
|
+
/** Link target scope. `"external"` (default) opens in a new tab with a diagonal `ArrowUpRight` icon; `"internal"` stays in the current tab with a horizontal `ArrowRight` icon. */
|
|
7
|
+
kind?: ChipLinkKind;
|
|
8
|
+
className?: string;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* ChipLink — anchor styled as a Chip. Reuses Chip's shared variants so the
|
|
13
|
+
* variant and appearance axes stay aligned, and auto-appends a directional icon
|
|
14
|
+
* (Lucide `ArrowUpRight` for external, `ArrowRight` for internal).
|
|
15
|
+
*/
|
|
16
|
+
export declare function ChipLink({ variant, appearance, inline, kind, className, children, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
type InlineProps = Omit<React.HTMLAttributes<HTMLElement>, "children"> & {
|
|
2
|
+
/** The inline code, as a raw string — also the value copied when `copyable`. */
|
|
3
|
+
children: string;
|
|
4
|
+
/** Show a small copy button on the right, behind a hairline separator. @default false */
|
|
5
|
+
copyable?: boolean;
|
|
6
|
+
/** Pre-rendered display content (e.g. syntax-highlighted tokens) shown in place of `children`, which stays the copied value. The code-highlight integration fills this slot. */
|
|
7
|
+
highlighted?: React.ReactNode;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Code.Inline — an inline code fragment (a `<code>` chip) for use inside running
|
|
11
|
+
* text. Dumb: styling only — syntax coloring arrives pre-rendered through the
|
|
12
|
+
* `highlighted` slot (the code-highlight integration supplies it). `Typo.InlineCode`
|
|
13
|
+
* renders this under the hood so inline-code chrome is defined in one place.
|
|
14
|
+
* Children must be a string so an opted-in copy button has clean text to copy.
|
|
15
|
+
*/
|
|
16
|
+
export declare function Inline({ className, copyable, highlighted, children, ...props }: InlineProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare namespace Inline {
|
|
18
|
+
var displayName: string;
|
|
19
|
+
}
|
|
20
|
+
export type CodeInlineLinkKind = "external" | "internal";
|
|
21
|
+
type InlineLinkProps = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "children"> & {
|
|
22
|
+
/** The link text, as a raw string, rendered as a code fragment. */
|
|
23
|
+
children: string;
|
|
24
|
+
/** Link target scope. `"external"` (default) opens in a new tab with a diagonal `ArrowUpRight` icon; `"internal"` stays in the current tab with a horizontal `ArrowRight` icon. */
|
|
25
|
+
kind?: CodeInlineLinkKind;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Code.InlineLink — the inline-code chip rendered as a link: the same hairline
|
|
29
|
+
* box, with a directional arrow behind the separator instead of a copy button.
|
|
30
|
+
* Sibling of `Code.Inline`, sharing its chip visual (`.inline`) — never both a
|
|
31
|
+
* copy button and a link on the same chip. Mirrors `ChipLink`'s shape (anchor
|
|
32
|
+
* is the chip root, trailing icon nudges on hover, `data-kind` picks the icon).
|
|
33
|
+
*/
|
|
34
|
+
export declare function InlineLink({ className, kind, children, ...props }: InlineLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare namespace InlineLink {
|
|
36
|
+
var displayName: string;
|
|
37
|
+
}
|
|
38
|
+
type BlockProps = Omit<React.HTMLAttributes<HTMLPreElement>, "children"> & {
|
|
39
|
+
/** The code to display, as a raw string — also the value copied by the copy button. */
|
|
40
|
+
children: string;
|
|
41
|
+
/** Language label shown in the corner notch. Omit to hide the notch. */
|
|
42
|
+
language?: string;
|
|
43
|
+
/** Hide the copy button. @default false */
|
|
44
|
+
hideCopy?: boolean;
|
|
45
|
+
/** Pre-rendered display content (e.g. syntax-highlighted tokens) shown in place of `children`, which stays the copied value. The code-highlight integration fills this slot. */
|
|
46
|
+
highlighted?: React.ReactNode;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Code.Block — a fenced code block on a flat brand surface, with an optional
|
|
50
|
+
* chamfered language notch (top-left) and a copy button (top-right). The
|
|
51
|
+
* surface follows the global corner-radius token when a preset opts in.
|
|
52
|
+
* Dumb: styling only — syntax coloring arrives pre-rendered through the
|
|
53
|
+
* `highlighted` slot (the code-highlight integration supplies it). Children
|
|
54
|
+
* must be a string so the copy button has clean text to copy.
|
|
55
|
+
*/
|
|
56
|
+
export declare function Block({ className, language, hideCopy, highlighted, children, ...props }: BlockProps): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
export declare namespace Block {
|
|
58
|
+
var displayName: string;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
type UpstreamRoot = React.ComponentProps<typeof CollapsiblePrimitive.Root>;
|
|
4
|
+
type UpstreamTrigger = React.ComponentProps<typeof CollapsiblePrimitive.Trigger>;
|
|
5
|
+
type UpstreamPanel = React.ComponentProps<typeof CollapsiblePrimitive.Panel>;
|
|
6
|
+
declare const collapsibleRoot: (props?: ({
|
|
7
|
+
variant?: "solid" | "default" | null | undefined;
|
|
8
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
9
|
+
type RootProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & VariantProps<typeof collapsibleRoot> & {
|
|
10
|
+
/** Visual treatment applied to the trigger. `solid` gives the trigger a contained surface background; `default` is transparent at rest and drenched-blue when open. */
|
|
11
|
+
/** @default false */
|
|
12
|
+
defaultOpen?: UpstreamRoot["defaultOpen"];
|
|
13
|
+
open?: UpstreamRoot["open"];
|
|
14
|
+
onOpenChange?: UpstreamRoot["onOpenChange"];
|
|
15
|
+
/** @default false */
|
|
16
|
+
disabled?: UpstreamRoot["disabled"];
|
|
17
|
+
className?: UpstreamRoot["className"];
|
|
18
|
+
style?: UpstreamRoot["style"];
|
|
19
|
+
render?: UpstreamRoot["render"];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Collapsible.Root — container that manages open/closed state for a trigger–panel pair.
|
|
23
|
+
*
|
|
24
|
+
* @see https://base-ui.com/react/components/collapsible
|
|
25
|
+
* @llm https://base-ui.com/react/components/collapsible.md
|
|
26
|
+
*/
|
|
27
|
+
export declare function Root({ variant, className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare namespace Root {
|
|
29
|
+
var displayName: string;
|
|
30
|
+
}
|
|
31
|
+
type TriggerProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "style"> & {
|
|
32
|
+
/** @default true */
|
|
33
|
+
nativeButton?: UpstreamTrigger["nativeButton"];
|
|
34
|
+
className?: UpstreamTrigger["className"];
|
|
35
|
+
style?: UpstreamTrigger["style"];
|
|
36
|
+
render?: UpstreamTrigger["render"];
|
|
37
|
+
};
|
|
38
|
+
/** Collapsible.Trigger — button that toggles the panel open and closed. */
|
|
39
|
+
export declare function Trigger({ className, children, ...props }: TriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare namespace Trigger {
|
|
41
|
+
var displayName: string;
|
|
42
|
+
}
|
|
43
|
+
type PanelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
|
|
44
|
+
/** @default false */
|
|
45
|
+
hiddenUntilFound?: UpstreamPanel["hiddenUntilFound"];
|
|
46
|
+
/** @default false */
|
|
47
|
+
keepMounted?: UpstreamPanel["keepMounted"];
|
|
48
|
+
className?: UpstreamPanel["className"];
|
|
49
|
+
style?: UpstreamPanel["style"];
|
|
50
|
+
render?: UpstreamPanel["render"];
|
|
51
|
+
};
|
|
52
|
+
/** Collapsible.Panel — region that expands and collapses when the trigger is activated. */
|
|
53
|
+
export declare function Panel({ className, ...props }: PanelProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
export declare namespace Panel {
|
|
55
|
+
var displayName: string;
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Button } from '../button';
|
|
2
|
+
type Props = Omit<React.ComponentProps<typeof Button>, "children" | "onClick"> & {
|
|
3
|
+
/** Text written to the clipboard when the button is pressed. */
|
|
4
|
+
value: string;
|
|
5
|
+
/** Accessible label in the idle state. @default "Copy" */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Accessible label shown briefly after a successful copy. @default "Copied" */
|
|
8
|
+
copiedLabel?: string;
|
|
9
|
+
/** Variant to use for the button. @default "secondary" */
|
|
10
|
+
variant?: React.ComponentProps<typeof Button>["variant"];
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* CopyButton — a Button that copies `value` to the clipboard and shows a
|
|
14
|
+
* transient confirmation (Copy → Check). Composes Button rather than rendering
|
|
15
|
+
* its own element, so all Button variants and native attributes pass through.
|
|
16
|
+
*/
|
|
17
|
+
export declare function CopyButton({ value, label, copiedLabel, variant, size, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace CopyButton {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';
|
|
2
|
+
type BorderColor = "primary" | "fg-minor" | "fg-support" | "none";
|
|
3
|
+
type BorderStyle = "solid" | "dashed" | "none";
|
|
4
|
+
type UpstreamRoot = React.ComponentProps<typeof DrawerPrimitive.Root>;
|
|
5
|
+
type UpstreamTrigger = React.ComponentProps<typeof DrawerPrimitive.Trigger>;
|
|
6
|
+
type UpstreamPortal = React.ComponentProps<typeof DrawerPrimitive.Portal>;
|
|
7
|
+
type UpstreamBackdrop = React.ComponentProps<typeof DrawerPrimitive.Backdrop>;
|
|
8
|
+
type UpstreamViewport = React.ComponentProps<typeof DrawerPrimitive.Viewport>;
|
|
9
|
+
type UpstreamPopup = React.ComponentProps<typeof DrawerPrimitive.Popup>;
|
|
10
|
+
type UpstreamContent = React.ComponentProps<typeof DrawerPrimitive.Content>;
|
|
11
|
+
type UpstreamTitle = React.ComponentProps<typeof DrawerPrimitive.Title>;
|
|
12
|
+
type UpstreamDescription = React.ComponentProps<typeof DrawerPrimitive.Description>;
|
|
13
|
+
type UpstreamClose = React.ComponentProps<typeof DrawerPrimitive.Close>;
|
|
14
|
+
type UpstreamIndent = React.ComponentProps<typeof DrawerPrimitive.Indent>;
|
|
15
|
+
type UpstreamIndentBackground = React.ComponentProps<typeof DrawerPrimitive.IndentBackground>;
|
|
16
|
+
type UpstreamSwipeArea = React.ComponentProps<typeof DrawerPrimitive.SwipeArea>;
|
|
17
|
+
type RootProps = {
|
|
18
|
+
open?: UpstreamRoot["open"];
|
|
19
|
+
/** @default false */
|
|
20
|
+
defaultOpen?: UpstreamRoot["defaultOpen"];
|
|
21
|
+
onOpenChange?: UpstreamRoot["onOpenChange"];
|
|
22
|
+
onOpenChangeComplete?: UpstreamRoot["onOpenChangeComplete"];
|
|
23
|
+
/** @default true */
|
|
24
|
+
modal?: UpstreamRoot["modal"];
|
|
25
|
+
/** @default 'down' */
|
|
26
|
+
swipeDirection?: UpstreamRoot["swipeDirection"];
|
|
27
|
+
snapPoints?: UpstreamRoot["snapPoints"];
|
|
28
|
+
snapPoint?: UpstreamRoot["snapPoint"];
|
|
29
|
+
onSnapPointChange?: UpstreamRoot["onSnapPointChange"];
|
|
30
|
+
/** @default false */
|
|
31
|
+
disablePointerDismissal?: UpstreamRoot["disablePointerDismissal"];
|
|
32
|
+
/** @default false */
|
|
33
|
+
snapToSequentialPoints?: UpstreamRoot["snapToSequentialPoints"];
|
|
34
|
+
/**
|
|
35
|
+
* Colour of the border on the panel's open edge. Inherited by Drawer.Popup;
|
|
36
|
+
* a Popup-level prop overrides it.
|
|
37
|
+
* @default 'primary'
|
|
38
|
+
*/
|
|
39
|
+
borderColor?: BorderColor;
|
|
40
|
+
/**
|
|
41
|
+
* Stroke style of the border on the panel's open edge. Inherited by
|
|
42
|
+
* Drawer.Popup; a Popup-level prop overrides it.
|
|
43
|
+
* @default 'solid'
|
|
44
|
+
*/
|
|
45
|
+
borderStyle?: BorderStyle;
|
|
46
|
+
children?: UpstreamRoot["children"];
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Drawer.Root — container that manages open/closed state and gesture interaction.
|
|
50
|
+
*
|
|
51
|
+
* @see https://base-ui.com/react/components/drawer
|
|
52
|
+
* @llm https://base-ui.com/react/components/drawer.md
|
|
53
|
+
*/
|
|
54
|
+
export declare function Root({ borderColor, borderStyle, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export declare namespace Root {
|
|
56
|
+
var displayName: string;
|
|
57
|
+
}
|
|
58
|
+
type TriggerProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className"> & {
|
|
59
|
+
/** @default true */
|
|
60
|
+
nativeButton?: UpstreamTrigger["nativeButton"];
|
|
61
|
+
className?: UpstreamTrigger["className"];
|
|
62
|
+
render?: UpstreamTrigger["render"];
|
|
63
|
+
};
|
|
64
|
+
/** Drawer.Trigger — button that opens the drawer. */
|
|
65
|
+
export declare function Trigger({ className, ...props }: TriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
export declare namespace Trigger {
|
|
67
|
+
var displayName: string;
|
|
68
|
+
}
|
|
69
|
+
type PortalProps = {
|
|
70
|
+
container?: UpstreamPortal["container"];
|
|
71
|
+
children?: UpstreamPortal["children"];
|
|
72
|
+
};
|
|
73
|
+
/** Drawer.Portal — renders backdrop and popup in a portal outside the main document flow. */
|
|
74
|
+
export declare function Portal(props: PortalProps): import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
export declare namespace Portal {
|
|
76
|
+
var displayName: string;
|
|
77
|
+
}
|
|
78
|
+
type BackdropProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
79
|
+
className?: UpstreamBackdrop["className"];
|
|
80
|
+
render?: UpstreamBackdrop["render"];
|
|
81
|
+
};
|
|
82
|
+
/** Drawer.Backdrop — semi-transparent overlay that dims the page content behind the drawer. */
|
|
83
|
+
export declare function Backdrop({ className, ...props }: BackdropProps): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
export declare namespace Backdrop {
|
|
85
|
+
var displayName: string;
|
|
86
|
+
}
|
|
87
|
+
type ViewportProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
88
|
+
className?: UpstreamViewport["className"];
|
|
89
|
+
render?: UpstreamViewport["render"];
|
|
90
|
+
};
|
|
91
|
+
/** Drawer.Viewport — full-screen container that positions the popup. */
|
|
92
|
+
export declare function Viewport({ className, ...props }: ViewportProps): import("react/jsx-runtime").JSX.Element;
|
|
93
|
+
export declare namespace Viewport {
|
|
94
|
+
var displayName: string;
|
|
95
|
+
}
|
|
96
|
+
type PopupProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
97
|
+
/**
|
|
98
|
+
* Colour of the border on the open edge. Overrides the value inherited from
|
|
99
|
+
* Drawer.Root; defaults to it when unset.
|
|
100
|
+
*/
|
|
101
|
+
borderColor?: BorderColor;
|
|
102
|
+
/**
|
|
103
|
+
* Stroke style of the border on the open edge. Overrides the value inherited
|
|
104
|
+
* from Drawer.Root; defaults to it when unset.
|
|
105
|
+
*/
|
|
106
|
+
borderStyle?: BorderStyle;
|
|
107
|
+
initialFocus?: UpstreamPopup["initialFocus"];
|
|
108
|
+
finalFocus?: UpstreamPopup["finalFocus"];
|
|
109
|
+
className?: UpstreamPopup["className"];
|
|
110
|
+
render?: UpstreamPopup["render"];
|
|
111
|
+
};
|
|
112
|
+
/** Drawer.Popup — the visible panel surface. Positioning is driven automatically by the nearest Drawer.Root's swipeDirection. */
|
|
113
|
+
export declare function Popup({ borderColor, borderStyle, className, ...props }: PopupProps): import("react/jsx-runtime").JSX.Element;
|
|
114
|
+
export declare namespace Popup {
|
|
115
|
+
var displayName: string;
|
|
116
|
+
}
|
|
117
|
+
type ContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
118
|
+
className?: UpstreamContent["className"];
|
|
119
|
+
render?: UpstreamContent["render"];
|
|
120
|
+
};
|
|
121
|
+
/** Drawer.Content — scrollable content wrapper inside the popup. */
|
|
122
|
+
export declare function Content({ className, ...props }: ContentProps): import("react/jsx-runtime").JSX.Element;
|
|
123
|
+
export declare namespace Content {
|
|
124
|
+
var displayName: string;
|
|
125
|
+
}
|
|
126
|
+
type TitleProps = React.HTMLAttributes<HTMLHeadingElement> & {
|
|
127
|
+
render?: UpstreamTitle["render"];
|
|
128
|
+
};
|
|
129
|
+
/** Drawer.Title — semantic heading for the drawer for screen readers. */
|
|
130
|
+
export declare function Title({ className, ...props }: TitleProps): import("react/jsx-runtime").JSX.Element;
|
|
131
|
+
export declare namespace Title {
|
|
132
|
+
var displayName: string;
|
|
133
|
+
}
|
|
134
|
+
type CloseProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className"> & {
|
|
135
|
+
/** @default true */
|
|
136
|
+
nativeButton?: UpstreamClose["nativeButton"];
|
|
137
|
+
className?: UpstreamClose["className"];
|
|
138
|
+
render?: UpstreamClose["render"];
|
|
139
|
+
};
|
|
140
|
+
/** Drawer.Close — button that closes the drawer. */
|
|
141
|
+
export declare function Close({ className, ...props }: CloseProps): import("react/jsx-runtime").JSX.Element;
|
|
142
|
+
export declare namespace Close {
|
|
143
|
+
var displayName: string;
|
|
144
|
+
}
|
|
145
|
+
type DescriptionProps = React.HTMLAttributes<HTMLParagraphElement> & {
|
|
146
|
+
render?: UpstreamDescription["render"];
|
|
147
|
+
};
|
|
148
|
+
/** Drawer.Description — supplementary paragraph describing the drawer's purpose for screen readers. */
|
|
149
|
+
export declare function Description({ className, ...props }: DescriptionProps): import("react/jsx-runtime").JSX.Element;
|
|
150
|
+
export declare namespace Description {
|
|
151
|
+
var displayName: string;
|
|
152
|
+
}
|
|
153
|
+
type ProviderProps = {
|
|
154
|
+
children?: React.ReactNode;
|
|
155
|
+
};
|
|
156
|
+
/** Drawer.Provider — shared context for coordinating indent/background effects across multiple drawers. Required ancestor for Drawer.Indent and Drawer.IndentBackground. */
|
|
157
|
+
export declare function Provider(props: ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
158
|
+
export declare namespace Provider {
|
|
159
|
+
var displayName: string;
|
|
160
|
+
}
|
|
161
|
+
type IndentProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
162
|
+
className?: UpstreamIndent["className"];
|
|
163
|
+
render?: UpstreamIndent["render"];
|
|
164
|
+
};
|
|
165
|
+
/** Drawer.Indent — wraps app content that scales and lifts when a drawer opens. Receives `data-active` from Base UI; use `--drawer-swipe-progress` in CSS to drive the animation. */
|
|
166
|
+
export declare function Indent({ className, ...props }: IndentProps): import("react/jsx-runtime").JSX.Element;
|
|
167
|
+
export declare namespace Indent {
|
|
168
|
+
var displayName: string;
|
|
169
|
+
}
|
|
170
|
+
type IndentBackgroundProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
171
|
+
className?: UpstreamIndentBackground["className"];
|
|
172
|
+
render?: UpstreamIndentBackground["render"];
|
|
173
|
+
};
|
|
174
|
+
/** Drawer.IndentBackground — background layer placed behind Drawer.Indent. Styled to reveal a dark surface as the app content scales away. */
|
|
175
|
+
export declare function IndentBackground({ className, ...props }: IndentBackgroundProps): import("react/jsx-runtime").JSX.Element;
|
|
176
|
+
export declare namespace IndentBackground {
|
|
177
|
+
var displayName: string;
|
|
178
|
+
}
|
|
179
|
+
type SwipeAreaProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className"> & {
|
|
180
|
+
/** @default false */
|
|
181
|
+
disabled?: UpstreamSwipeArea["disabled"];
|
|
182
|
+
swipeDirection?: UpstreamSwipeArea["swipeDirection"];
|
|
183
|
+
className?: UpstreamSwipeArea["className"];
|
|
184
|
+
render?: UpstreamSwipeArea["render"];
|
|
185
|
+
};
|
|
186
|
+
/** Drawer.SwipeArea — invisible fixed region that listens for swipe gestures to open the drawer. Position and size it at the screen edge relevant to the swipeDirection. */
|
|
187
|
+
export declare function SwipeArea({ className, ...props }: SwipeAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
188
|
+
export declare namespace SwipeArea {
|
|
189
|
+
var displayName: string;
|
|
190
|
+
}
|
|
191
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Input as InputPrimitive } from '@base-ui/react/input';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const input: (props?: ({
|
|
4
|
+
variant?: "outline" | "ghost" | "filled" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
type UpstreamInput = React.ComponentProps<typeof InputPrimitive>;
|
|
8
|
+
type Props = Omit<React.InputHTMLAttributes<HTMLInputElement>, "className" | "style" | "size"> & VariantProps<typeof input> & {
|
|
9
|
+
value?: UpstreamInput["value"];
|
|
10
|
+
defaultValue?: UpstreamInput["defaultValue"];
|
|
11
|
+
onValueChange?: UpstreamInput["onValueChange"];
|
|
12
|
+
className?: UpstreamInput["className"];
|
|
13
|
+
style?: UpstreamInput["style"];
|
|
14
|
+
render?: UpstreamInput["render"];
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Single-line text input. Also called a text field or input field.
|
|
18
|
+
* Wraps Base UI Input for controlled/uncontrolled state, form integration,
|
|
19
|
+
* and Field context awareness (valid/invalid/dirty/touched/filled/focused).
|
|
20
|
+
*
|
|
21
|
+
* @see https://base-ui.com/react/components/input
|
|
22
|
+
* @llm https://base-ui.com/react/components/input.md
|
|
23
|
+
*/
|
|
24
|
+
export declare function Input({ variant, size, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Logo } from '../logo';
|
|
2
|
+
type Props = Omit<React.ComponentProps<typeof Logo>, "src" | "alt"> & {
|
|
3
|
+
/** Render the compact glyph instead of the full wordmark. */
|
|
4
|
+
glyph?: boolean;
|
|
5
|
+
/** Override the accessible label. Defaults to "ImFusion". */
|
|
6
|
+
alt?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* ImFusion's own logo — the generic {@link Logo} primitive pre-wired with the
|
|
10
|
+
* ImFusion marks and the brand variant. The single branded entry point and the
|
|
11
|
+
* only export from this module; external consumers compose `<Logo src={…} />`
|
|
12
|
+
* with their own asset. Pass `glyph` for the compact mark; the default is the
|
|
13
|
+
* full wordmark.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ImFusionLogo({ glyph, alt, variant, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ImFusionLogo } from './imfusion';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const logo: (props?: ({
|
|
4
|
+
size?: "sm" | "md" | "lg" | "hero" | "xs" | "xl" | "fit" | null | undefined;
|
|
5
|
+
variant?: "main" | "inherit" | "support" | "minor" | "brand" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
type Props = Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> & VariantProps<typeof logo> & {
|
|
8
|
+
/** Logo source — an image URL or an inline SVG node. Required; this primitive carries no brand default (see `ImFusionLogo` for our own mark). */
|
|
9
|
+
src: string | ReactNode;
|
|
10
|
+
alt: string;
|
|
11
|
+
/** Explicit height — overrides `size` variant when set. */
|
|
12
|
+
height?: string | number;
|
|
13
|
+
};
|
|
14
|
+
export declare function Logo({ src, alt, size, variant, height, className, style, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|