@ekanos/ui 0.1.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 +124 -0
- package/dist/ai-prompt-input.d.ts +187 -0
- package/dist/ai-prompt-input.js +2411 -0
- package/dist/alert.d.ts +12 -0
- package/dist/alert.js +92 -0
- package/dist/badge.d.ts +12 -0
- package/dist/badge.js +60 -0
- package/dist/button.d.ts +13 -0
- package/dist/button.js +64 -0
- package/dist/card.d.ts +18 -0
- package/dist/card.js +108 -0
- package/dist/dialog.d.ts +19 -0
- package/dist/dialog.js +897 -0
- package/dist/dropdown-menu.d.ts +27 -0
- package/dist/dropdown-menu.js +941 -0
- package/dist/form.d.ts +27 -0
- package/dist/form.js +156 -0
- package/dist/icon.d.ts +47 -0
- package/dist/icon.js +763 -0
- package/dist/if.d.ts +38 -0
- package/dist/if.js +15 -0
- package/dist/input.d.ts +5 -0
- package/dist/input.js +28 -0
- package/dist/label.d.ts +5 -0
- package/dist/label.js +27 -0
- package/dist/select.d.ts +25 -0
- package/dist/select.js +944 -0
- package/dist/separator.d.ts +6 -0
- package/dist/separator.js +35 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +22 -0
- package/dist/spinner.d.ts +27 -0
- package/dist/spinner.js +49 -0
- package/dist/tooltip.d.ts +9 -0
- package/dist/tooltip.js +74 -0
- package/dist/trans.d.ts +39 -0
- package/dist/trans.js +9 -0
- package/dist/utils.d.ts +23 -0
- package/dist/utils.js +83 -0
- package/package.json +150 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Vastly
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# @ekanos/ui
|
|
2
|
+
|
|
3
|
+
Fusion-styled UI primitives for building Ekanos integrations **outside** the
|
|
4
|
+
monorepo. This is the published companion to `@ekanos/sdk`: a curated slice of
|
|
5
|
+
the internal `@kit/ui` library, chosen from what the SDK's re-exported
|
|
6
|
+
components and the example integration packages actually import.
|
|
7
|
+
|
|
8
|
+
Inside the monorepo, keep importing `@kit/ui/*` directly — this package exists
|
|
9
|
+
for partners who can't.
|
|
10
|
+
|
|
11
|
+
## What's exported
|
|
12
|
+
|
|
13
|
+
One subpath per component, mirroring the `@kit/ui` names:
|
|
14
|
+
|
|
15
|
+
| Subpath | Contents |
|
|
16
|
+
| ---------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| `@ekanos/ui/button` | `Button`, `ButtonProps`, `buttonVariants` |
|
|
18
|
+
| `@ekanos/ui/card` | `Card`, `CardHeader`, `CardTitle`, `CardDescription`, `CardContent`, `CardFooter`, … |
|
|
19
|
+
| `@ekanos/ui/badge` | `Badge`, `badgeVariants` |
|
|
20
|
+
| `@ekanos/ui/tooltip` | `Tooltip`, `TooltipTrigger`, `TooltipContent`, `TooltipProvider` |
|
|
21
|
+
| `@ekanos/ui/select` | `Select`, `SelectTrigger`, `SelectValue`, `SelectContent`, `SelectItem`, … |
|
|
22
|
+
| `@ekanos/ui/form` | `Form`, `FormField`, `FormItem`, `FormLabel`, `FormControl`, `FormDescription`, `FormMessage`, `useFormField` |
|
|
23
|
+
| `@ekanos/ui/input` | `Input` |
|
|
24
|
+
| `@ekanos/ui/dropdown-menu` | `DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, … |
|
|
25
|
+
| `@ekanos/ui/label` | `Label` |
|
|
26
|
+
| `@ekanos/ui/skeleton` | `Skeleton` |
|
|
27
|
+
| `@ekanos/ui/icon` | `Icon`, `renderIcon`, `resolveIcon`, Font Awesome helpers |
|
|
28
|
+
| `@ekanos/ui/utils` | `cn()`, `isRouteActive()`, `checkIfRouteIsActive()` |
|
|
29
|
+
| `@ekanos/ui/if` | `If` conditional renderer |
|
|
30
|
+
| `@ekanos/ui/trans` | `Trans` (react-i18next) |
|
|
31
|
+
| `@ekanos/ui/spinner` | `Spinner` |
|
|
32
|
+
| `@ekanos/ui/ai-prompt-input` | `PromptInput` compound components for AI ask surfaces |
|
|
33
|
+
|
|
34
|
+
Most source files are a thin `export * from '@kit/ui/<name>'` — for those,
|
|
35
|
+
`@kit/ui` stays the single source of truth. At build time the `@kit/ui` code is
|
|
36
|
+
inlined into `dist/` so the published artifact has no workspace dependencies
|
|
37
|
+
(`scripts/pack-test.mjs` fails the build if any `@kit/` specifier leaks).
|
|
38
|
+
|
|
39
|
+
Three subpaths — `if`, `trans`, and `spinner` — are instead implemented
|
|
40
|
+
natively in `src/_impl/`. Their `@kit/ui` counterparts live in
|
|
41
|
+
`packages/ui/src/makerkit/`, which is Makerkit-authored code from the
|
|
42
|
+
commercial Turbo starter this monorepo was built on; publishing it under this
|
|
43
|
+
package's MIT license would purport to grant reuse rights we do not hold. The
|
|
44
|
+
implementations here are original, and `pack:test` fails the build if any
|
|
45
|
+
`packages/ui/src/makerkit` source is ever inlined into `dist/`. Inside the
|
|
46
|
+
monorepo, first-party code keeps using `@kit/ui` as before.
|
|
47
|
+
|
|
48
|
+
## Styling: this package ships NO CSS
|
|
49
|
+
|
|
50
|
+
Components emit Tailwind class strings referencing Fusion's **semantic design
|
|
51
|
+
tokens** (`bg-primary`, `text-muted-foreground`, `border-border`, …). They
|
|
52
|
+
render correctly only inside a host that owns that CSS — the Fusion app or the
|
|
53
|
+
integration dev harness. Nothing here reads or requires the host's
|
|
54
|
+
`theme-tokens.ts` runtime; the contract is purely "the host page loads
|
|
55
|
+
Fusion's stylesheet".
|
|
56
|
+
|
|
57
|
+
Two host-provided assets to know about:
|
|
58
|
+
|
|
59
|
+
- **Tailwind tokens**: the host defines the semantic token variables and
|
|
60
|
+
utilities. Without them the components render unstyled HTML.
|
|
61
|
+
- **Icons are Font Awesome**: `Icon` renders `<i class="fa-solid fa-house">`
|
|
62
|
+
styled by the Font Awesome Pro web-font CSS the host loads. Legacy PascalCase
|
|
63
|
+
Lucide names are translated to FA equivalents via a bundled map; there is no
|
|
64
|
+
`lucide-react` at runtime.
|
|
65
|
+
|
|
66
|
+
## Runtime notes
|
|
67
|
+
|
|
68
|
+
- **Primitives are Base UI, not Radix.** Everything popup-shaped is built on
|
|
69
|
+
`@base-ui/react` (declared dependency). No `asChild` — polymorphic parts take
|
|
70
|
+
a `render` prop: `<DropdownMenuTrigger render={<Button />}>Menu</DropdownMenuTrigger>`.
|
|
71
|
+
- **`Trans` degrades sanely without i18n.** It builds on react-i18next's
|
|
72
|
+
`TransWithoutContext`. With no i18next instance available (none passed via
|
|
73
|
+
the `i18n` prop and none registered through `initReactI18next`), it logs a
|
|
74
|
+
one-time console warning (`NO_I18NEXT_INSTANCE`) and **returns its children
|
|
75
|
+
unmodified** — it does not throw. The Fusion host and the dev harness both
|
|
76
|
+
provide an instance; translation only happens there.
|
|
77
|
+
|
|
78
|
+
Note the fallback is **children, not `defaults`**:
|
|
79
|
+
`<Trans i18nKey="a.b" defaults="Continue" />` has no children, so on a host
|
|
80
|
+
with no i18next instance it renders nothing. Pass children when a string has
|
|
81
|
+
to survive an unconfigured host:
|
|
82
|
+
`<Trans i18nKey="a.b" defaults="Continue">Continue</Trans>`.
|
|
83
|
+
|
|
84
|
+
- **`Spinner` is self-contained.** It draws an inline SVG rather than a Font
|
|
85
|
+
Awesome glyph, so unlike `Icon` it needs no icon web font — only the Tailwind
|
|
86
|
+
utilities it emits (`animate-spin`, `size-*`, `text-*`). It honours
|
|
87
|
+
`prefers-reduced-motion` via `motion-reduce:animate-none`, freezing the arc
|
|
88
|
+
into a static busy glyph.
|
|
89
|
+
|
|
90
|
+
- **`'use client'` is preserved.** Client entries (`icon`, `form`, `tooltip`,
|
|
91
|
+
`label`, `select`, `dropdown-menu`, `ai-prompt-input`, `dialog`, `separator`)
|
|
92
|
+
ship with the directive at the top of their bundle. `utils`, `if`, `trans`,
|
|
93
|
+
and `spinner` are server-safe and carry no directive, so `cn()` etc. remain
|
|
94
|
+
usable from server components.
|
|
95
|
+
- **`ai` is a types-only dependency.** `@ekanos/ui/ai-prompt-input` uses
|
|
96
|
+
`ChatStatus` / `FileUIPart` types from the `ai` package in its public props;
|
|
97
|
+
no `ai` code is imported at runtime.
|
|
98
|
+
- **Base UI patch divergence (minor).** The monorepo patches
|
|
99
|
+
`@base-ui/react@1.6.0` to widen a trigger drag-boundary offset
|
|
100
|
+
(`BOUNDARY_OFFSET` 2 → 24 in menu/select/combobox triggers). The published
|
|
101
|
+
artifact resolves the unpatched package from npm, so partner-side menus keep
|
|
102
|
+
upstream's slightly tighter press-and-drag selection boundary. Cosmetic only.
|
|
103
|
+
|
|
104
|
+
## Peer dependencies
|
|
105
|
+
|
|
106
|
+
You provide: `react` / `react-dom` (^19), `react-hook-form` and
|
|
107
|
+
`@hookform/resolvers` (for form usage). Everything else the components need at
|
|
108
|
+
runtime is a declared dependency of this package.
|
|
109
|
+
|
|
110
|
+
## Building / verifying
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
pnpm --filter @ekanos/ui build # tsup → dist/ (ESM + .d.ts per subpath)
|
|
114
|
+
pnpm --filter @ekanos/ui pack:test # clean-room publish gate (see scripts/pack-test.mjs)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`pack:test` packs the tarball, asserts dist-only contents, fails on any
|
|
118
|
+
`@kit/` leak, asserts `'use client'` preservation, then installs the tarball
|
|
119
|
+
into a temp project outside the workspace and typechecks
|
|
120
|
+
(`skipLibCheck: false`) + esbuild-bundles a consumer importing every subpath.
|
|
121
|
+
|
|
122
|
+
The package is `private: true` until the owner flips it for the first publish;
|
|
123
|
+
`prepack` runs the build so a publish can never ship a stale or missing
|
|
124
|
+
`dist/`.
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { RefObject, HTMLAttributes, FormEvent, ComponentProps, ReactNode, PropsWithChildren } from 'react';
|
|
3
|
+
import { FileUIPart, SourceDocumentUIPart, ChatStatus } from 'ai';
|
|
4
|
+
import { Command as Command$1 } from 'cmdk';
|
|
5
|
+
import { DropdownMenuItem, DropdownMenu, DropdownMenuContent } from './dropdown-menu.js';
|
|
6
|
+
import { PreviewCard } from '@base-ui/react/preview-card';
|
|
7
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
8
|
+
import { VariantProps } from 'class-variance-authority';
|
|
9
|
+
import { Button as Button$1 } from '@base-ui/react/button';
|
|
10
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './select.js';
|
|
11
|
+
import { TooltipContent } from './tooltip.js';
|
|
12
|
+
import '@base-ui/react/menu';
|
|
13
|
+
import '@base-ui/react/select';
|
|
14
|
+
import '@base-ui/react/tooltip';
|
|
15
|
+
|
|
16
|
+
declare function Command({ className, ...props }: React.ComponentProps<typeof Command$1>): React.JSX.Element;
|
|
17
|
+
declare function CommandInput({ className, ...props }: React.ComponentProps<typeof Command$1.Input>): React.JSX.Element;
|
|
18
|
+
declare function CommandList({ className, ...props }: React.ComponentProps<typeof Command$1.List>): React.JSX.Element;
|
|
19
|
+
declare function CommandEmpty({ ...props }: React.ComponentProps<typeof Command$1.Empty>): React.JSX.Element;
|
|
20
|
+
declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof Command$1.Group>): React.JSX.Element;
|
|
21
|
+
declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof Command$1.Separator>): React.JSX.Element;
|
|
22
|
+
declare function CommandItem({ className, ...props }: React.ComponentProps<typeof Command$1.Item>): React.JSX.Element;
|
|
23
|
+
|
|
24
|
+
interface HoverCardDelays {
|
|
25
|
+
openDelay?: number;
|
|
26
|
+
closeDelay?: number;
|
|
27
|
+
}
|
|
28
|
+
declare function HoverCard({ openDelay, closeDelay, ...props }: PreviewCard.Root.Props & HoverCardDelays): React.JSX.Element;
|
|
29
|
+
declare function HoverCardTrigger({ delay, closeDelay, ...props }: PreviewCard.Trigger.Props): React.JSX.Element;
|
|
30
|
+
declare function HoverCardContent({ className, align, alignOffset, side, sideOffset, ...props }: PreviewCard.Popup.Props & Pick<PreviewCard.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): React.JSX.Element;
|
|
31
|
+
|
|
32
|
+
declare const buttonVariants: (props?: ({
|
|
33
|
+
variant?: "link" | "default" | "destructive" | "outline" | "success" | "secondary" | "ghost" | null | undefined;
|
|
34
|
+
size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
35
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
36
|
+
type ButtonProps = Button$1.Props & VariantProps<typeof buttonVariants>;
|
|
37
|
+
declare function Button({ className, variant, size, ...props }: ButtonProps): React.JSX.Element;
|
|
38
|
+
|
|
39
|
+
declare const inputGroupAddonVariants: (props?: ({
|
|
40
|
+
align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
|
|
41
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
42
|
+
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
|
|
43
|
+
declare const inputGroupButtonVariants: (props?: ({
|
|
44
|
+
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
45
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
46
|
+
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size'> & VariantProps<typeof inputGroupButtonVariants>): React.JSX.Element;
|
|
47
|
+
declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
|
|
48
|
+
|
|
49
|
+
interface AttachmentsContext {
|
|
50
|
+
files: (FileUIPart & {
|
|
51
|
+
id: string;
|
|
52
|
+
})[];
|
|
53
|
+
add: (files: File[] | FileList) => void;
|
|
54
|
+
remove: (id: string) => void;
|
|
55
|
+
clear: () => void;
|
|
56
|
+
openFileDialog: () => void;
|
|
57
|
+
fileInputRef: RefObject<HTMLInputElement | null>;
|
|
58
|
+
}
|
|
59
|
+
interface TextInputContext {
|
|
60
|
+
value: string;
|
|
61
|
+
setInput: (v: string) => void;
|
|
62
|
+
clear: () => void;
|
|
63
|
+
}
|
|
64
|
+
interface PromptInputControllerProps {
|
|
65
|
+
textInput: TextInputContext;
|
|
66
|
+
attachments: AttachmentsContext;
|
|
67
|
+
__registerFileInput: (ref: RefObject<HTMLInputElement | null>, open: () => void) => void;
|
|
68
|
+
}
|
|
69
|
+
declare const usePromptInputController: () => PromptInputControllerProps;
|
|
70
|
+
declare const useProviderAttachments: () => AttachmentsContext;
|
|
71
|
+
type PromptInputProviderProps = PropsWithChildren<{
|
|
72
|
+
initialInput?: string;
|
|
73
|
+
}>;
|
|
74
|
+
declare const PromptInputProvider: ({ initialInput: initialTextInput, children, }: PromptInputProviderProps) => React.JSX.Element;
|
|
75
|
+
declare const usePromptInputAttachments: () => AttachmentsContext;
|
|
76
|
+
interface ReferencedSourcesContext {
|
|
77
|
+
sources: (SourceDocumentUIPart & {
|
|
78
|
+
id: string;
|
|
79
|
+
})[];
|
|
80
|
+
add: (sources: SourceDocumentUIPart[] | SourceDocumentUIPart) => void;
|
|
81
|
+
remove: (id: string) => void;
|
|
82
|
+
clear: () => void;
|
|
83
|
+
}
|
|
84
|
+
declare const LocalReferencedSourcesContext: React.Context<ReferencedSourcesContext | null>;
|
|
85
|
+
declare const usePromptInputReferencedSources: () => ReferencedSourcesContext;
|
|
86
|
+
type PromptInputActionAddAttachmentsProps = ComponentProps<typeof DropdownMenuItem> & {
|
|
87
|
+
label?: string;
|
|
88
|
+
};
|
|
89
|
+
declare const PromptInputActionAddAttachments: ({ label, ...props }: PromptInputActionAddAttachmentsProps) => React.JSX.Element;
|
|
90
|
+
type PromptInputActionAddScreenshotProps = ComponentProps<typeof DropdownMenuItem> & {
|
|
91
|
+
label?: string;
|
|
92
|
+
};
|
|
93
|
+
declare const PromptInputActionAddScreenshot: ({ label, onClick, ...props }: PromptInputActionAddScreenshotProps) => React.JSX.Element;
|
|
94
|
+
interface PromptInputMessage {
|
|
95
|
+
text: string;
|
|
96
|
+
files: FileUIPart[];
|
|
97
|
+
}
|
|
98
|
+
type PromptInputProps = Omit<HTMLAttributes<HTMLFormElement>, 'onSubmit' | 'onError'> & {
|
|
99
|
+
accept?: string;
|
|
100
|
+
multiple?: boolean;
|
|
101
|
+
globalDrop?: boolean;
|
|
102
|
+
syncHiddenInput?: boolean;
|
|
103
|
+
maxFiles?: number;
|
|
104
|
+
maxFileSize?: number;
|
|
105
|
+
/** Extra classes for the inner InputGroup surface (e.g. `bg-card`). */
|
|
106
|
+
inputGroupClassName?: string;
|
|
107
|
+
onError?: (err: {
|
|
108
|
+
code: 'max_files' | 'max_file_size' | 'accept';
|
|
109
|
+
message: string;
|
|
110
|
+
}) => void;
|
|
111
|
+
onSubmit: (message: PromptInputMessage, event: FormEvent<HTMLFormElement>) => void | Promise<void>;
|
|
112
|
+
};
|
|
113
|
+
declare const PromptInput: ({ className, accept, multiple, globalDrop, syncHiddenInput, maxFiles, maxFileSize, inputGroupClassName, onError, onSubmit, children, ...props }: PromptInputProps) => React.JSX.Element;
|
|
114
|
+
type PromptInputBodyProps = HTMLAttributes<HTMLDivElement>;
|
|
115
|
+
declare const PromptInputBody: ({ className, ...props }: PromptInputBodyProps) => React.JSX.Element;
|
|
116
|
+
type PromptInputTextareaProps = ComponentProps<typeof InputGroupTextarea>;
|
|
117
|
+
declare const PromptInputTextarea: ({ onChange, onKeyDown, className, placeholder, ...props }: PromptInputTextareaProps) => React.JSX.Element;
|
|
118
|
+
type PromptInputHeaderProps = Omit<ComponentProps<typeof InputGroupAddon>, 'align'>;
|
|
119
|
+
declare const PromptInputHeader: ({ className, ...props }: PromptInputHeaderProps) => React.JSX.Element;
|
|
120
|
+
type PromptInputFooterProps = Omit<ComponentProps<typeof InputGroupAddon>, 'align'>;
|
|
121
|
+
declare const PromptInputFooter: ({ className, ...props }: PromptInputFooterProps) => React.JSX.Element;
|
|
122
|
+
type PromptInputToolsProps = HTMLAttributes<HTMLDivElement>;
|
|
123
|
+
declare const PromptInputTools: ({ className, ...props }: PromptInputToolsProps) => React.JSX.Element;
|
|
124
|
+
type PromptInputButtonTooltip = string | {
|
|
125
|
+
content: ReactNode;
|
|
126
|
+
shortcut?: string;
|
|
127
|
+
side?: ComponentProps<typeof TooltipContent>['side'];
|
|
128
|
+
};
|
|
129
|
+
type PromptInputButtonProps = ComponentProps<typeof InputGroupButton> & {
|
|
130
|
+
tooltip?: PromptInputButtonTooltip;
|
|
131
|
+
};
|
|
132
|
+
declare const PromptInputButton: ({ variant, className, size, tooltip, ...props }: PromptInputButtonProps) => React.JSX.Element;
|
|
133
|
+
type PromptInputActionMenuProps = ComponentProps<typeof DropdownMenu>;
|
|
134
|
+
declare const PromptInputActionMenu: (props: PromptInputActionMenuProps) => React.JSX.Element;
|
|
135
|
+
type PromptInputActionMenuTriggerProps = PromptInputButtonProps;
|
|
136
|
+
declare const PromptInputActionMenuTrigger: ({ className, children, ...props }: PromptInputActionMenuTriggerProps) => React.JSX.Element;
|
|
137
|
+
type PromptInputActionMenuContentProps = ComponentProps<typeof DropdownMenuContent>;
|
|
138
|
+
declare const PromptInputActionMenuContent: ({ className, ...props }: PromptInputActionMenuContentProps) => React.JSX.Element;
|
|
139
|
+
type PromptInputActionMenuItemProps = ComponentProps<typeof DropdownMenuItem>;
|
|
140
|
+
declare const PromptInputActionMenuItem: ({ className, ...props }: PromptInputActionMenuItemProps) => React.JSX.Element;
|
|
141
|
+
type PromptInputSubmitProps = ComponentProps<typeof InputGroupButton> & {
|
|
142
|
+
status?: ChatStatus;
|
|
143
|
+
onStop?: () => void;
|
|
144
|
+
};
|
|
145
|
+
declare const PromptInputSubmit: ({ className, variant, size, status, onStop, onClick, children, ...props }: PromptInputSubmitProps) => React.JSX.Element;
|
|
146
|
+
type PromptInputSelectProps = ComponentProps<typeof Select>;
|
|
147
|
+
declare const PromptInputSelect: (props: PromptInputSelectProps) => React.JSX.Element;
|
|
148
|
+
type PromptInputSelectTriggerProps = ComponentProps<typeof SelectTrigger>;
|
|
149
|
+
declare const PromptInputSelectTrigger: ({ className, ...props }: PromptInputSelectTriggerProps) => React.JSX.Element;
|
|
150
|
+
type PromptInputSelectContentProps = ComponentProps<typeof SelectContent>;
|
|
151
|
+
declare const PromptInputSelectContent: ({ className, ...props }: PromptInputSelectContentProps) => React.JSX.Element;
|
|
152
|
+
type PromptInputSelectItemProps = ComponentProps<typeof SelectItem>;
|
|
153
|
+
declare const PromptInputSelectItem: ({ className, ...props }: PromptInputSelectItemProps) => React.JSX.Element;
|
|
154
|
+
type PromptInputSelectValueProps = ComponentProps<typeof SelectValue>;
|
|
155
|
+
declare const PromptInputSelectValue: ({ className, ...props }: PromptInputSelectValueProps) => React.JSX.Element;
|
|
156
|
+
type PromptInputHoverCardProps = ComponentProps<typeof HoverCard>;
|
|
157
|
+
declare const PromptInputHoverCard: ({ openDelay, closeDelay, ...props }: PromptInputHoverCardProps) => React.JSX.Element;
|
|
158
|
+
type PromptInputHoverCardTriggerProps = ComponentProps<typeof HoverCardTrigger>;
|
|
159
|
+
declare const PromptInputHoverCardTrigger: (props: PromptInputHoverCardTriggerProps) => React.JSX.Element;
|
|
160
|
+
type PromptInputHoverCardContentProps = ComponentProps<typeof HoverCardContent>;
|
|
161
|
+
declare const PromptInputHoverCardContent: ({ align, ...props }: PromptInputHoverCardContentProps) => React.JSX.Element;
|
|
162
|
+
type PromptInputTabsListProps = HTMLAttributes<HTMLDivElement>;
|
|
163
|
+
declare const PromptInputTabsList: ({ className, ...props }: PromptInputTabsListProps) => React.JSX.Element;
|
|
164
|
+
type PromptInputTabProps = HTMLAttributes<HTMLDivElement>;
|
|
165
|
+
declare const PromptInputTab: ({ className, ...props }: PromptInputTabProps) => React.JSX.Element;
|
|
166
|
+
type PromptInputTabLabelProps = HTMLAttributes<HTMLHeadingElement>;
|
|
167
|
+
declare const PromptInputTabLabel: ({ className, ...props }: PromptInputTabLabelProps) => React.JSX.Element;
|
|
168
|
+
type PromptInputTabBodyProps = HTMLAttributes<HTMLDivElement>;
|
|
169
|
+
declare const PromptInputTabBody: ({ className, ...props }: PromptInputTabBodyProps) => React.JSX.Element;
|
|
170
|
+
type PromptInputTabItemProps = HTMLAttributes<HTMLDivElement>;
|
|
171
|
+
declare const PromptInputTabItem: ({ className, ...props }: PromptInputTabItemProps) => React.JSX.Element;
|
|
172
|
+
type PromptInputCommandProps = ComponentProps<typeof Command>;
|
|
173
|
+
declare const PromptInputCommand: ({ className, ...props }: PromptInputCommandProps) => React.JSX.Element;
|
|
174
|
+
type PromptInputCommandInputProps = ComponentProps<typeof CommandInput>;
|
|
175
|
+
declare const PromptInputCommandInput: ({ className, ...props }: PromptInputCommandInputProps) => React.JSX.Element;
|
|
176
|
+
type PromptInputCommandListProps = ComponentProps<typeof CommandList>;
|
|
177
|
+
declare const PromptInputCommandList: ({ className, ...props }: PromptInputCommandListProps) => React.JSX.Element;
|
|
178
|
+
type PromptInputCommandEmptyProps = ComponentProps<typeof CommandEmpty>;
|
|
179
|
+
declare const PromptInputCommandEmpty: ({ className, ...props }: PromptInputCommandEmptyProps) => React.JSX.Element;
|
|
180
|
+
type PromptInputCommandGroupProps = ComponentProps<typeof CommandGroup>;
|
|
181
|
+
declare const PromptInputCommandGroup: ({ className, ...props }: PromptInputCommandGroupProps) => React.JSX.Element;
|
|
182
|
+
type PromptInputCommandItemProps = ComponentProps<typeof CommandItem>;
|
|
183
|
+
declare const PromptInputCommandItem: ({ className, ...props }: PromptInputCommandItemProps) => React.JSX.Element;
|
|
184
|
+
type PromptInputCommandSeparatorProps = ComponentProps<typeof CommandSeparator>;
|
|
185
|
+
declare const PromptInputCommandSeparator: ({ className, ...props }: PromptInputCommandSeparatorProps) => React.JSX.Element;
|
|
186
|
+
|
|
187
|
+
export { type AttachmentsContext, LocalReferencedSourcesContext, PromptInput, PromptInputActionAddAttachments, type PromptInputActionAddAttachmentsProps, PromptInputActionAddScreenshot, type PromptInputActionAddScreenshotProps, PromptInputActionMenu, PromptInputActionMenuContent, type PromptInputActionMenuContentProps, PromptInputActionMenuItem, type PromptInputActionMenuItemProps, type PromptInputActionMenuProps, PromptInputActionMenuTrigger, type PromptInputActionMenuTriggerProps, PromptInputBody, type PromptInputBodyProps, PromptInputButton, type PromptInputButtonProps, type PromptInputButtonTooltip, PromptInputCommand, PromptInputCommandEmpty, type PromptInputCommandEmptyProps, PromptInputCommandGroup, type PromptInputCommandGroupProps, PromptInputCommandInput, type PromptInputCommandInputProps, PromptInputCommandItem, type PromptInputCommandItemProps, PromptInputCommandList, type PromptInputCommandListProps, type PromptInputCommandProps, PromptInputCommandSeparator, type PromptInputCommandSeparatorProps, type PromptInputControllerProps, PromptInputFooter, type PromptInputFooterProps, PromptInputHeader, type PromptInputHeaderProps, PromptInputHoverCard, PromptInputHoverCardContent, type PromptInputHoverCardContentProps, type PromptInputHoverCardProps, PromptInputHoverCardTrigger, type PromptInputHoverCardTriggerProps, type PromptInputMessage, type PromptInputProps, PromptInputProvider, type PromptInputProviderProps, PromptInputSelect, PromptInputSelectContent, type PromptInputSelectContentProps, PromptInputSelectItem, type PromptInputSelectItemProps, type PromptInputSelectProps, PromptInputSelectTrigger, type PromptInputSelectTriggerProps, PromptInputSelectValue, type PromptInputSelectValueProps, PromptInputSubmit, type PromptInputSubmitProps, PromptInputTab, PromptInputTabBody, type PromptInputTabBodyProps, PromptInputTabItem, type PromptInputTabItemProps, PromptInputTabLabel, type PromptInputTabLabelProps, type PromptInputTabProps, PromptInputTabsList, type PromptInputTabsListProps, PromptInputTextarea, type PromptInputTextareaProps, PromptInputTools, type PromptInputToolsProps, type ReferencedSourcesContext, type TextInputContext, usePromptInputAttachments, usePromptInputController, usePromptInputReferencedSources, useProviderAttachments };
|