sparkdesign 0.4.7 → 0.4.9
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/cli/registry/AGENTS.md +1 -1
- package/cli/registry/agent-manifest.json +3996 -67
- package/cli/registry/basic/accordion.tsx +79 -0
- package/cli/registry/basic/alert-dialog.tsx +3 -6
- package/cli/registry/basic/badge.tsx +49 -0
- package/cli/registry/basic/button.tsx +32 -14
- package/cli/registry/basic/card.tsx +20 -8
- package/cli/registry/basic/collapsible-card.tsx +12 -5
- package/cli/registry/basic/combobox.tsx +104 -46
- package/cli/registry/basic/context-menu.tsx +2 -3
- package/cli/registry/basic/date-picker.tsx +78 -7
- package/cli/registry/basic/dialog.tsx +3 -8
- package/cli/registry/basic/drawer.tsx +3 -5
- package/cli/registry/basic/dropdown-menu.tsx +2 -3
- package/cli/registry/basic/ellipsis-text.tsx +151 -0
- package/cli/registry/basic/form.tsx +186 -0
- package/cli/registry/basic/hover-card.tsx +2 -3
- package/cli/registry/basic/icon-button.tsx +29 -14
- package/cli/registry/basic/input-group.tsx +4 -4
- package/cli/registry/basic/input.tsx +29 -13
- package/cli/registry/basic/popover.tsx +2 -3
- package/cli/registry/basic/select.tsx +24 -4
- package/cli/registry/basic/sidebar.tsx +665 -0
- package/cli/registry/basic/sonner.tsx +10 -10
- package/cli/registry/basic/spinner.tsx +20 -5
- package/cli/registry/basic/textarea.tsx +30 -12
- package/cli/registry/basic/tooltip.tsx +2 -1
- package/cli/registry/chat/chat-input/compound.tsx +1 -0
- package/cli/registry/chat/user-question/compound.tsx +2 -0
- package/cli/registry/meta.json +250 -30
- package/dist/registry/basic/accordion.d.ts +15 -0
- package/dist/registry/basic/alert-dialog.d.ts +1 -1
- package/dist/registry/basic/avatar.d.ts +1 -1
- package/dist/registry/basic/badge.d.ts +23 -0
- package/dist/registry/basic/button.d.ts +3 -1
- package/dist/registry/basic/card.d.ts +9 -4
- package/dist/registry/basic/combobox.d.ts +20 -9
- package/dist/registry/basic/date-picker.d.ts +18 -9
- package/dist/registry/basic/dialog.d.ts +1 -1
- package/dist/registry/basic/ellipsis-text.d.ts +45 -0
- package/dist/registry/basic/form.d.ts +23 -0
- package/dist/registry/basic/icon-button.d.ts +17 -3
- package/dist/registry/basic/input-group.d.ts +5 -3
- package/dist/registry/basic/input.d.ts +8 -3
- package/dist/registry/basic/item.d.ts +3 -3
- package/dist/registry/basic/resizable.d.ts +48 -48
- package/dist/registry/basic/select.d.ts +7 -2
- package/dist/registry/basic/sidebar.d.ts +72 -0
- package/dist/registry/basic/spinner.d.ts +6 -2
- package/dist/registry/basic/tag.d.ts +1 -1
- package/dist/registry/basic/textarea.d.ts +9 -3
- package/dist/registry/basic/toggle.d.ts +1 -1
- package/dist/scale/computed.css +11 -0
- package/dist/scale/config.css +11 -0
- package/dist/scale/presets/compact.css +7 -0
- package/dist/scale/presets/dense.css +7 -0
- package/dist/scale/presets/sharp.css +7 -0
- package/dist/scale/presets/soft.css +7 -0
- package/dist/spark-design.cjs.js +34 -37
- package/dist/spark-design.es.js +7200 -4933
- package/dist/sparkdesign.css +1 -1
- package/dist/src/components/basic/Accordion/index.d.ts +13 -0
- package/dist/src/components/basic/Badge/index.d.ts +13 -0
- package/dist/src/components/basic/EllipsisText/index.d.ts +4 -36
- package/dist/src/components/basic/Form/index.d.ts +12 -0
- package/dist/src/components/basic/Sidebar/index.d.ts +13 -0
- package/dist/src/components/index.d.ts +7 -3
- package/dist/src/lib/index.d.ts +1 -1
- package/dist/src/lib/motion.d.ts +79 -0
- package/dist/theme-base.css +22 -0
- package/dist/themes/dark-mint.css +6 -0
- package/dist/themes/dark-parchment.css +6 -0
- package/dist/themes/light-parchment.css +6 -0
- package/dist/tokens/scale/computed.css +11 -0
- package/dist/tokens/scale/config.css +11 -0
- package/dist/tokens/scale/presets/compact.css +7 -0
- package/dist/tokens/scale/presets/dense.css +7 -0
- package/dist/tokens/scale/presets/sharp.css +7 -0
- package/dist/tokens/scale/presets/soft.css +7 -0
- package/dist/tokens/theme-base.css +22 -0
- package/dist/tokens/themes/dark-mint.css +6 -0
- package/dist/tokens/themes/dark-parchment.css +6 -0
- package/dist/tokens/themes/light-parchment.css +6 -0
- package/docs/agent/component-selection.md +106 -4
- package/package.json +8 -3
- package/registry/agent-manifest.json +3996 -67
- package/cli/registry/chat/user-question/UserQuestionCard.tsx +0 -198
- package/cli/registry/chat/user-question/UserQuestionFooter.tsx +0 -66
- package/cli/registry/chat/user-question/UserQuestionHeader.tsx +0 -64
- package/cli/registry/chat/user-question/useUserQuestionState.ts +0 -165
- package/dist/registry/chat/user-question/UserQuestionCard.d.ts +0 -36
- package/dist/registry/chat/user-question/UserQuestionFooter.d.ts +0 -24
- package/dist/registry/chat/user-question/UserQuestionHeader.d.ts +0 -26
- package/dist/registry/chat/user-question/useUserQuestionState.d.ts +0 -26
- package/dist/src/components/basic/CollapsibleSection/index.d.ts +0 -43
- package/dist/src/components/chat/Response/StreamingMarkdownBlock.d.ts +0 -12
|
@@ -13,7 +13,7 @@ import * as React from 'react';
|
|
|
13
13
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
14
14
|
import { type VariantProps } from 'class-variance-authority';
|
|
15
15
|
declare const avatarVariants: (props?: ({
|
|
16
|
-
size?: "
|
|
16
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
17
17
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
18
18
|
export interface AvatarProps extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
|
|
19
19
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Badge component for compact labels and statuses.
|
|
3
|
+
* [FROM]: React, @radix-ui/react-slot, class-variance-authority, registry/lib/utils.
|
|
4
|
+
* [TO]: sparkdesign package consumers; Showcase; CLI registry copies.
|
|
5
|
+
* [HERE]: registry/basic/badge.tsx — tokenized status/category badge primitive.
|
|
6
|
+
*
|
|
7
|
+
* [PROTOCOL]:
|
|
8
|
+
* 1. Keep this P3 header in sync when the public contract changes.
|
|
9
|
+
* 2. Update module AGENTS.md (P2) and root AGENTS.md (P1) when boundaries change.
|
|
10
|
+
* 3. Follow design tokens and explicit type exports.
|
|
11
|
+
*/
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import { type VariantProps } from "class-variance-authority";
|
|
14
|
+
declare const badgeVariants: (props?: ({
|
|
15
|
+
variant?: "default" | "secondary" | "outline" | "destructive" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
|
+
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
18
|
+
asChild?: boolean;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export type BadgeProps = React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
21
|
+
asChild?: boolean;
|
|
22
|
+
};
|
|
23
|
+
export { Badge, badgeVariants };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "primary" | "secondary" | "tertiary" | "outline" | "ghost" | "
|
|
4
|
+
variant?: "text" | "primary" | "secondary" | "tertiary" | "outline" | "ghost" | "destructive" | null | undefined;
|
|
5
5
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
6
|
rounded?: "square" | "pill" | null | undefined;
|
|
7
7
|
textOnly?: boolean | null | undefined;
|
|
@@ -11,6 +11,8 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, Va
|
|
|
11
11
|
textButton?: boolean;
|
|
12
12
|
prefixIcon?: ReactNode;
|
|
13
13
|
suffixIcon?: ReactNode;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
asChild?: boolean;
|
|
14
16
|
}
|
|
15
17
|
declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
16
18
|
export { Button, buttonVariants };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* [WHO]: Card — surface container with Header / Title / Description / Content / Footer parts.
|
|
3
|
-
* [FROM]: React + `@/lib/utils` cn.
|
|
3
|
+
* [FROM]: React + `@/lib/utils` cn + CVA.
|
|
4
4
|
* [TO]: sparkdesign package consumers; output of CLI `add card` when registered.
|
|
5
5
|
* [HERE]: registry/basic/card.tsx — Spark Design source; keep aligned with the main library.
|
|
6
6
|
*
|
|
@@ -10,18 +10,23 @@
|
|
|
10
10
|
* 3. Follow design tokens and explicit type exports.
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
13
|
-
|
|
13
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
14
|
+
declare const cardVariants: (props?: ({
|
|
15
|
+
variant?: "outline" | "ghost" | "filled" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
|
+
export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
18
|
+
}
|
|
19
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
20
|
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
15
21
|
declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
16
22
|
declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
17
23
|
declare const CardAction: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
18
24
|
declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
19
25
|
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
-
export type CardProps = React.HTMLAttributes<HTMLDivElement>;
|
|
21
26
|
export type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;
|
|
22
27
|
export type CardTitleProps = React.HTMLAttributes<HTMLDivElement>;
|
|
23
28
|
export type CardDescriptionProps = React.HTMLAttributes<HTMLDivElement>;
|
|
24
29
|
export type CardActionProps = React.HTMLAttributes<HTMLDivElement>;
|
|
25
30
|
export type CardContentProps = React.HTMLAttributes<HTMLDivElement>;
|
|
26
31
|
export type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;
|
|
27
|
-
export { Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter, };
|
|
32
|
+
export { Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter, cardVariants, };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* [WHO]: Combobox —
|
|
3
|
-
* [FROM]: React
|
|
2
|
+
* [WHO]: Combobox — Popover + Command composition for searchable single-select inputs.
|
|
3
|
+
* [FROM]: React, registry/basic/button, registry/basic/command, registry/basic/popover, registry/lib/utils.
|
|
4
4
|
* [TO]: sparkdesign package consumers; output of CLI `add combobox` when registered.
|
|
5
|
-
* [HERE]: registry/basic/combobox.tsx — Spark Design source;
|
|
5
|
+
* [HERE]: registry/basic/combobox.tsx — Spark Design source; tokenized shadcn-compatible combobox.
|
|
6
6
|
*
|
|
7
7
|
* [PROTOCOL]:
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
8
|
+
* 1. Keep the trigger a Button (tokenized) so product surfaces inherit Spark typography/spacing.
|
|
9
|
+
* 2. Use Command for filtering so keyboard navigation and empty states remain consistent with the palette primitive.
|
|
10
10
|
* 3. Follow design tokens and explicit type exports.
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
@@ -14,13 +14,24 @@ export interface ComboboxOption {
|
|
|
14
14
|
value: string;
|
|
15
15
|
label: string;
|
|
16
16
|
disabled?: boolean;
|
|
17
|
+
keywords?: string[];
|
|
17
18
|
}
|
|
18
|
-
export interface ComboboxProps
|
|
19
|
+
export interface ComboboxProps {
|
|
19
20
|
options: ComboboxOption[];
|
|
20
21
|
value?: string;
|
|
22
|
+
defaultValue?: string;
|
|
21
23
|
onValueChange?: (value: string) => void;
|
|
22
|
-
placeholder?:
|
|
23
|
-
|
|
24
|
+
placeholder?: React.ReactNode;
|
|
25
|
+
searchPlaceholder?: string;
|
|
26
|
+
emptyText?: React.ReactNode;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
className?: string;
|
|
29
|
+
contentClassName?: string;
|
|
30
|
+
align?: 'start' | 'center' | 'end';
|
|
31
|
+
triggerClassName?: string;
|
|
32
|
+
id?: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
'aria-label'?: string;
|
|
24
35
|
}
|
|
25
|
-
declare function Combobox({ options, value, onValueChange, placeholder, emptyText, className,
|
|
36
|
+
declare function Combobox({ options, value, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyText, disabled, className, contentClassName, triggerClassName, align, id, name, 'aria-label': ariaLabel, }: ComboboxProps): import("react/jsx-runtime").JSX.Element;
|
|
26
37
|
export { Combobox };
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* [WHO]: DatePicker —
|
|
3
|
-
* [FROM]: React
|
|
2
|
+
* [WHO]: DatePicker — Popover + Calendar composition matching shadcn parity.
|
|
3
|
+
* [FROM]: React, date-fns, registry/basic/button, registry/basic/calendar, registry/basic/popover, registry/lib/utils.
|
|
4
4
|
* [TO]: sparkdesign package consumers; output of CLI `add date-picker` when registered.
|
|
5
|
-
* [HERE]: registry/basic/date-picker.tsx — Spark Design source;
|
|
5
|
+
* [HERE]: registry/basic/date-picker.tsx — Spark Design source; tokenized shadcn-compatible date picker.
|
|
6
6
|
*
|
|
7
7
|
* [PROTOCOL]:
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
8
|
+
* 1. Render a Button trigger that surfaces the selected date using project typography/tokens.
|
|
9
|
+
* 2. Use the shared Calendar primitive inside a PopoverContent for the day grid; never fall back to native pickers.
|
|
10
10
|
* 3. Follow design tokens and explicit type exports.
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
export interface DatePickerProps {
|
|
14
|
+
value?: Date;
|
|
15
|
+
defaultValue?: Date;
|
|
16
|
+
onChange?: (date: Date | undefined) => void;
|
|
17
|
+
placeholder?: React.ReactNode;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
className?: string;
|
|
20
|
+
align?: 'start' | 'center' | 'end';
|
|
21
|
+
formatString?: string;
|
|
22
|
+
id?: string;
|
|
23
|
+
name?: string;
|
|
24
|
+
'aria-label'?: string;
|
|
16
25
|
}
|
|
17
|
-
declare
|
|
26
|
+
declare function DatePicker({ value, defaultValue, onChange, placeholder, disabled, className, align, formatString, id, name, 'aria-label': ariaLabel, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
18
27
|
export { DatePicker };
|
|
@@ -19,7 +19,7 @@ declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
|
|
|
19
19
|
declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
|
|
20
20
|
declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
21
21
|
declare const contentVariants: (props?: ({
|
|
22
|
-
size?: "
|
|
22
|
+
size?: "default" | "sm" | "lg" | "xl" | null | undefined;
|
|
23
23
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
24
24
|
export interface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof contentVariants> {
|
|
25
25
|
size?: 'sm' | 'default' | 'lg' | 'xl';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: EllipsisText — overflow-aware text with optional tooltip disclosure.
|
|
3
|
+
* [FROM]: react, clsx, registry/basic/tooltip.
|
|
4
|
+
* [TO]: sparkdesign package consumers; CLI `add ellipsis-text`; Showcase demos.
|
|
5
|
+
* [HERE]: registry/basic/ellipsis-text.tsx — canonical source for copied and packaged EllipsisText.
|
|
6
|
+
*
|
|
7
|
+
* [PROTOCOL]:
|
|
8
|
+
* 1. Keep this P3 header in sync when the public contract changes.
|
|
9
|
+
* 2. Update module AGENTS.md (P2) and root AGENTS.md (P1) when boundaries change.
|
|
10
|
+
* 3. Follow design tokens and explicit type exports.
|
|
11
|
+
*/
|
|
12
|
+
import { type ReactNode, type CSSProperties } from 'react';
|
|
13
|
+
export interface EllipsisTextProps {
|
|
14
|
+
/** Text or inline content to display. */
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Maximum visible lines before truncation.
|
|
18
|
+
* @default 1
|
|
19
|
+
*/
|
|
20
|
+
lines?: number;
|
|
21
|
+
/** Extra className for the text node. */
|
|
22
|
+
className?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Tooltip placement when overflow is detected.
|
|
25
|
+
* @default 'top'
|
|
26
|
+
*/
|
|
27
|
+
placement?: 'top' | 'bottom' | 'left' | 'right';
|
|
28
|
+
/** Extra className for Tooltip content. */
|
|
29
|
+
tooltipClassName?: string;
|
|
30
|
+
/** Custom tooltip content. Defaults to children. */
|
|
31
|
+
tooltipContent?: ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Disable tooltip even when content overflows.
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
/** Inline style for the text node. */
|
|
38
|
+
style?: CSSProperties;
|
|
39
|
+
/**
|
|
40
|
+
* Rendered text element.
|
|
41
|
+
* @default 'span'
|
|
42
|
+
*/
|
|
43
|
+
as?: 'span' | 'div' | 'p';
|
|
44
|
+
}
|
|
45
|
+
export declare const EllipsisText: import("react").ForwardRefExoticComponent<EllipsisTextProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
+
import { type ControllerProps, type FieldPath, type FieldValues } from "react-hook-form";
|
|
4
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
|
|
5
|
+
declare function FormField<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function useFormField(): {
|
|
7
|
+
invalid: boolean;
|
|
8
|
+
isDirty: boolean;
|
|
9
|
+
isTouched: boolean;
|
|
10
|
+
isValidating: boolean;
|
|
11
|
+
error?: import("react-hook-form").FieldError;
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
formItemId: string;
|
|
15
|
+
formDescriptionId: string;
|
|
16
|
+
formMessageId: string;
|
|
17
|
+
};
|
|
18
|
+
declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
|
|
20
|
+
declare const FormControl: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-slot").SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
21
|
+
declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
22
|
+
declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
23
|
+
export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, };
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import type { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
import { type VariantProps } from 'class-variance-authority';
|
|
3
3
|
declare const iconButtonVariants: (props?: ({
|
|
4
|
-
variant?: "primary" | "secondary" | "tertiary" | "ghost" | "iconOnly" | null | undefined;
|
|
4
|
+
variant?: "primary" | "secondary" | "tertiary" | "ghost" | "destructive" | "iconOnly" | null | undefined;
|
|
5
5
|
rounded?: "square" | "pill" | null | undefined;
|
|
6
6
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
7
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
-
|
|
8
|
+
type IconButtonAccessibleName = {
|
|
9
|
+
'aria-label': string;
|
|
10
|
+
'aria-labelledby'?: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
} | {
|
|
13
|
+
'aria-label'?: string;
|
|
14
|
+
'aria-labelledby': string;
|
|
15
|
+
title?: string;
|
|
16
|
+
} | {
|
|
17
|
+
'aria-label'?: string;
|
|
18
|
+
'aria-labelledby'?: string;
|
|
19
|
+
title: string;
|
|
20
|
+
};
|
|
21
|
+
export type IconButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'aria-label' | 'aria-labelledby' | 'title'> & VariantProps<typeof iconButtonVariants> & IconButtonAccessibleName & {
|
|
9
22
|
icon: ReactNode;
|
|
10
|
-
|
|
23
|
+
asChild?: boolean;
|
|
24
|
+
};
|
|
11
25
|
export declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
12
26
|
export { iconButtonVariants };
|
|
@@ -12,16 +12,18 @@
|
|
|
12
12
|
import * as React from "react";
|
|
13
13
|
import { type VariantProps } from "class-variance-authority";
|
|
14
14
|
import { Button } from "./button";
|
|
15
|
+
import { type InputProps } from "./input";
|
|
16
|
+
import { type TextareaProps } from "./textarea";
|
|
15
17
|
declare function InputGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
16
18
|
declare const inputGroupAddonVariants: (props?: ({
|
|
17
19
|
align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
|
|
18
20
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
19
21
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
20
22
|
declare const inputGroupButtonVariants: (props?: ({
|
|
21
|
-
size?: "
|
|
23
|
+
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
22
24
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
23
25
|
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
24
26
|
declare function InputGroupText({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
|
|
25
|
-
declare function InputGroupInput({ className, ...props }:
|
|
26
|
-
declare function InputGroupTextarea({ className, ...props }:
|
|
27
|
+
declare function InputGroupInput({ className, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
declare function InputGroupTextarea({ className, ...props }: TextareaProps): import("react/jsx-runtime").JSX.Element;
|
|
27
29
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* [WHO]: Input — accessible text input with token-driven styling.
|
|
3
|
-
* [FROM]: React + `@/lib/utils` cn.
|
|
3
|
+
* [FROM]: React + `@/lib/utils` cn + CVA.
|
|
4
4
|
* [TO]: sparkdesign package consumers; output of CLI `add input` when registered.
|
|
5
5
|
* [HERE]: registry/basic/input.tsx — Spark Design source; keep aligned with the main library.
|
|
6
6
|
*
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* 3. Follow design tokens and explicit type exports.
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
13
|
-
|
|
13
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
14
|
+
declare const inputVariants: (props?: ({
|
|
15
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
|
+
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
|
|
18
|
+
}
|
|
14
19
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
15
|
-
export { Input };
|
|
20
|
+
export { Input, inputVariants };
|
|
@@ -4,14 +4,14 @@ import { Separator } from "./separator";
|
|
|
4
4
|
declare function ItemGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
declare function ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
declare const itemVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
8
|
-
size?: "
|
|
7
|
+
variant?: "default" | "outline" | "muted" | null | undefined;
|
|
8
|
+
size?: "default" | "sm" | null | undefined;
|
|
9
9
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
10
|
declare function Item({ className, variant, size, asChild, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemVariants> & {
|
|
11
11
|
asChild?: boolean;
|
|
12
12
|
}): import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
declare const itemMediaVariants: (props?: ({
|
|
14
|
-
variant?: "default" | "
|
|
14
|
+
variant?: "default" | "image" | "icon" | null | undefined;
|
|
15
15
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
16
|
declare function ItemMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>): import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
declare function ItemContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
@@ -19,61 +19,16 @@ declare const ResizablePanelGroup: React.ForwardRefExoticComponent<ResizablePane
|
|
|
19
19
|
export type ResizablePanelProps = PanelProps;
|
|
20
20
|
declare const ResizablePanel: React.ForwardRefExoticComponent<{
|
|
21
21
|
className?: string | undefined | undefined;
|
|
22
|
-
children?: React.ReactNode | Iterable<React.ReactNode>;
|
|
23
|
-
defaultChecked?: boolean | undefined | undefined;
|
|
24
|
-
defaultValue?: string | number | readonly string[] | undefined;
|
|
25
|
-
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
26
22
|
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
27
|
-
|
|
28
|
-
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
29
|
-
autoFocus?: boolean | undefined | undefined;
|
|
30
|
-
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
31
|
-
contextMenu?: string | undefined | undefined;
|
|
32
|
-
dir?: string | undefined | undefined;
|
|
33
|
-
draggable?: (boolean | "true" | "false") | undefined;
|
|
34
|
-
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
35
|
-
hidden?: boolean | undefined | undefined;
|
|
23
|
+
color?: string | undefined | undefined;
|
|
36
24
|
id?: string | undefined | undefined;
|
|
37
25
|
lang?: string | undefined | undefined;
|
|
38
26
|
nonce?: string | undefined | undefined;
|
|
27
|
+
part?: string | undefined | undefined;
|
|
39
28
|
slot?: string | undefined | undefined;
|
|
40
|
-
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
41
29
|
style?: React.CSSProperties | undefined;
|
|
42
|
-
tabIndex?: number | undefined | undefined;
|
|
43
|
-
title?: string | undefined | undefined;
|
|
44
|
-
translate?: "yes" | "no" | undefined | undefined;
|
|
45
|
-
radioGroup?: string | undefined | undefined;
|
|
46
30
|
role?: React.AriaRole | undefined;
|
|
47
|
-
|
|
48
|
-
content?: string | undefined | undefined;
|
|
49
|
-
datatype?: string | undefined | undefined;
|
|
50
|
-
inlist?: any;
|
|
51
|
-
prefix?: string | undefined | undefined;
|
|
52
|
-
property?: string | undefined | undefined;
|
|
53
|
-
rel?: string | undefined | undefined;
|
|
54
|
-
resource?: string | undefined | undefined;
|
|
55
|
-
rev?: string | undefined | undefined;
|
|
56
|
-
typeof?: string | undefined | undefined;
|
|
57
|
-
vocab?: string | undefined | undefined;
|
|
58
|
-
autoCorrect?: string | undefined | undefined;
|
|
59
|
-
autoSave?: string | undefined | undefined;
|
|
60
|
-
color?: string | undefined | undefined;
|
|
61
|
-
itemProp?: string | undefined | undefined;
|
|
62
|
-
itemScope?: boolean | undefined | undefined;
|
|
63
|
-
itemType?: string | undefined | undefined;
|
|
64
|
-
itemID?: string | undefined | undefined;
|
|
65
|
-
itemRef?: string | undefined | undefined;
|
|
66
|
-
results?: number | undefined | undefined;
|
|
67
|
-
security?: string | undefined | undefined;
|
|
68
|
-
unselectable?: "on" | "off" | undefined | undefined;
|
|
69
|
-
popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
|
|
70
|
-
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
|
|
71
|
-
popoverTarget?: string | undefined | undefined;
|
|
72
|
-
inert?: boolean | undefined | undefined;
|
|
73
|
-
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
74
|
-
is?: string | undefined | undefined;
|
|
75
|
-
exportparts?: string | undefined | undefined;
|
|
76
|
-
part?: string | undefined | undefined;
|
|
31
|
+
tabIndex?: number | undefined | undefined;
|
|
77
32
|
"aria-activedescendant"?: string | undefined | undefined;
|
|
78
33
|
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
79
34
|
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
|
|
@@ -127,6 +82,7 @@ declare const ResizablePanel: React.ForwardRefExoticComponent<{
|
|
|
127
82
|
"aria-valuemin"?: number | undefined | undefined;
|
|
128
83
|
"aria-valuenow"?: number | undefined | undefined;
|
|
129
84
|
"aria-valuetext"?: string | undefined | undefined;
|
|
85
|
+
children?: React.ReactNode | Iterable<React.ReactNode>;
|
|
130
86
|
dangerouslySetInnerHTML?: {
|
|
131
87
|
__html: string | TrustedHTML;
|
|
132
88
|
} | undefined | undefined;
|
|
@@ -298,6 +254,50 @@ declare const ResizablePanel: React.ForwardRefExoticComponent<{
|
|
|
298
254
|
onTransitionRunCapture?: React.TransitionEventHandler<HTMLDivElement> | undefined;
|
|
299
255
|
onTransitionStart?: React.TransitionEventHandler<HTMLDivElement> | undefined;
|
|
300
256
|
onTransitionStartCapture?: React.TransitionEventHandler<HTMLDivElement> | undefined;
|
|
257
|
+
defaultChecked?: boolean | undefined | undefined;
|
|
258
|
+
defaultValue?: string | number | readonly string[] | undefined;
|
|
259
|
+
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
260
|
+
accessKey?: string | undefined | undefined;
|
|
261
|
+
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
262
|
+
autoFocus?: boolean | undefined | undefined;
|
|
263
|
+
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
264
|
+
contextMenu?: string | undefined | undefined;
|
|
265
|
+
dir?: string | undefined | undefined;
|
|
266
|
+
draggable?: (boolean | "true" | "false") | undefined;
|
|
267
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
268
|
+
hidden?: boolean | undefined | undefined;
|
|
269
|
+
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
270
|
+
title?: string | undefined | undefined;
|
|
271
|
+
translate?: "yes" | "no" | undefined | undefined;
|
|
272
|
+
radioGroup?: string | undefined | undefined;
|
|
273
|
+
about?: string | undefined | undefined;
|
|
274
|
+
content?: string | undefined | undefined;
|
|
275
|
+
datatype?: string | undefined | undefined;
|
|
276
|
+
inlist?: any;
|
|
277
|
+
prefix?: string | undefined | undefined;
|
|
278
|
+
property?: string | undefined | undefined;
|
|
279
|
+
rel?: string | undefined | undefined;
|
|
280
|
+
resource?: string | undefined | undefined;
|
|
281
|
+
rev?: string | undefined | undefined;
|
|
282
|
+
typeof?: string | undefined | undefined;
|
|
283
|
+
vocab?: string | undefined | undefined;
|
|
284
|
+
autoCorrect?: string | undefined | undefined;
|
|
285
|
+
autoSave?: string | undefined | undefined;
|
|
286
|
+
itemProp?: string | undefined | undefined;
|
|
287
|
+
itemScope?: boolean | undefined | undefined;
|
|
288
|
+
itemType?: string | undefined | undefined;
|
|
289
|
+
itemID?: string | undefined | undefined;
|
|
290
|
+
itemRef?: string | undefined | undefined;
|
|
291
|
+
results?: number | undefined | undefined;
|
|
292
|
+
security?: string | undefined | undefined;
|
|
293
|
+
unselectable?: "on" | "off" | undefined | undefined;
|
|
294
|
+
popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
|
|
295
|
+
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
|
|
296
|
+
popoverTarget?: string | undefined | undefined;
|
|
297
|
+
inert?: boolean | undefined | undefined;
|
|
298
|
+
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
299
|
+
is?: string | undefined | undefined;
|
|
300
|
+
exportparts?: string | undefined | undefined;
|
|
301
301
|
} & {
|
|
302
302
|
className?: string | undefined;
|
|
303
303
|
collapsedSize?: number | string | undefined;
|
|
@@ -11,11 +11,16 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
13
13
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
14
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
14
15
|
declare const Select: React.FC<SelectPrimitive.SelectProps>;
|
|
15
16
|
declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
16
17
|
declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
|
|
17
|
-
|
|
18
|
+
declare const selectTriggerVariants: (props?: ({
|
|
19
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
20
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
21
|
+
export interface SelectTriggerProps extends Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>, 'size'>, VariantProps<typeof selectTriggerVariants> {
|
|
18
22
|
triggerIcon?: React.ReactNode;
|
|
23
|
+
size?: 'sm' | 'md' | 'lg';
|
|
19
24
|
}
|
|
20
25
|
declare const SelectTrigger: React.ForwardRefExoticComponent<SelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
21
26
|
declare const SelectScrollUpButton: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
@@ -34,4 +39,4 @@ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.S
|
|
|
34
39
|
itemIndicatorIcon?: React.ReactNode;
|
|
35
40
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
36
41
|
declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
37
|
-
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, };
|
|
42
|
+
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, selectTriggerVariants, };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import { Button } from "./button";
|
|
4
|
+
import { Input } from "./input";
|
|
5
|
+
import { Separator } from "./separator";
|
|
6
|
+
import { Tooltip } from "./tooltip";
|
|
7
|
+
type SidebarContextValue = {
|
|
8
|
+
state: "expanded" | "collapsed";
|
|
9
|
+
open: boolean;
|
|
10
|
+
setOpen: (open: boolean) => void;
|
|
11
|
+
openMobile: boolean;
|
|
12
|
+
setOpenMobile: (open: boolean) => void;
|
|
13
|
+
isMobile: boolean;
|
|
14
|
+
toggleSidebar: () => void;
|
|
15
|
+
};
|
|
16
|
+
declare function useSidebar(): SidebarContextValue;
|
|
17
|
+
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React.ComponentProps<"div"> & {
|
|
18
|
+
defaultOpen?: boolean;
|
|
19
|
+
open?: boolean;
|
|
20
|
+
onOpenChange?: (open: boolean) => void;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
declare function Sidebar({ side, variant, collapsible, className, children, ...props }: React.ComponentProps<"div"> & {
|
|
23
|
+
side?: "left" | "right";
|
|
24
|
+
variant?: "sidebar" | "floating" | "inset";
|
|
25
|
+
collapsible?: "offcanvas" | "icon" | "none";
|
|
26
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
declare function SidebarTrigger({ className, onClick, children, ...props }: Omit<React.ComponentProps<typeof Button>, "children" | "variant" | "size"> & {
|
|
28
|
+
children?: React.ReactNode;
|
|
29
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
declare function SidebarGroupLabel({ className, asChild, ...props }: React.ComponentProps<"div"> & {
|
|
39
|
+
asChild?: boolean;
|
|
40
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare function SidebarGroupAction({ className, asChild, ...props }: React.ComponentProps<"button"> & {
|
|
42
|
+
asChild?: boolean;
|
|
43
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
declare const sidebarMenuButtonVariants: (props?: ({
|
|
48
|
+
variant?: "default" | "outline" | null | undefined;
|
|
49
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
50
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
51
|
+
declare function SidebarMenuButton({ asChild, isActive, variant, size, tooltip, className, ...props }: React.ComponentProps<"button"> & {
|
|
52
|
+
asChild?: boolean;
|
|
53
|
+
isActive?: boolean;
|
|
54
|
+
tooltip?: string | Omit<React.ComponentProps<typeof Tooltip>, "children">;
|
|
55
|
+
} & VariantProps<typeof sidebarMenuButtonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
declare function SidebarMenuAction({ className, asChild, showOnHover, ...props }: React.ComponentProps<"button"> & {
|
|
57
|
+
asChild?: boolean;
|
|
58
|
+
showOnHover?: boolean;
|
|
59
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
declare function SidebarMenuSkeleton({ className, showIcon, width, ...props }: React.ComponentProps<"div"> & {
|
|
62
|
+
showIcon?: boolean;
|
|
63
|
+
width?: string;
|
|
64
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
65
|
+
declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: React.ComponentProps<"a"> & {
|
|
68
|
+
asChild?: boolean;
|
|
69
|
+
size?: "sm" | "md";
|
|
70
|
+
isActive?: boolean;
|
|
71
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarMenuButtonVariants, useSidebar, };
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { HTMLAttributes } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const spinnerVariants: (props?: ({
|
|
4
|
+
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface SpinnerProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof spinnerVariants> {
|
|
4
7
|
}
|
|
5
8
|
export declare const Spinner: import("react").ForwardRefExoticComponent<SpinnerProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
9
|
+
export { spinnerVariants };
|
|
@@ -13,7 +13,7 @@ import * as React from 'react';
|
|
|
13
13
|
import { type VariantProps } from 'class-variance-authority';
|
|
14
14
|
declare const tagVariants: (props?: ({
|
|
15
15
|
appearance?: "outline" | "filled" | null | undefined;
|
|
16
|
-
color?: "primary" | "
|
|
16
|
+
color?: "link" | "primary" | "error" | "blue" | "lavender" | "orange" | "pink" | "purple" | "teal" | "yellow" | "warning" | "success" | "info" | "mauve" | "slate" | "sage" | null | undefined;
|
|
17
17
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
18
18
|
export interface TagProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof tagVariants> {
|
|
19
19
|
closable?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* [WHO]: Textarea — multi-line text input with token-driven styling.
|
|
3
|
-
* [FROM]: React + `@/lib/utils` cn.
|
|
3
|
+
* [FROM]: React + `@/lib/utils` cn + CVA.
|
|
4
4
|
* [TO]: sparkdesign package consumers; output of CLI `add textarea` when registered.
|
|
5
5
|
* [HERE]: registry/basic/textarea.tsx — Spark Design source; keep aligned with the main library.
|
|
6
6
|
*
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
* 3. Follow design tokens and explicit type exports.
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
13
|
-
|
|
13
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
14
|
+
declare const textareaVariants: (props?: ({
|
|
15
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
|
+
export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'>, VariantProps<typeof textareaVariants> {
|
|
18
|
+
size?: 'sm' | 'md' | 'lg';
|
|
19
|
+
}
|
|
14
20
|
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
15
|
-
export { Textarea };
|
|
21
|
+
export { Textarea, textareaVariants };
|