@nextlyhq/ui 0.0.2-alpha.33 → 0.0.2-alpha.35
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 +26 -17
- package/dist/index.cjs +158 -498
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +36 -143
- package/dist/index.d.ts +36 -143
- package/dist/index.mjs +161 -499
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +2 -0
- package/dist/theme.css +859 -0
- package/docs/plugin-ui-authoring.md +178 -0
- package/package.json +15 -8
package/dist/index.d.cts
CHANGED
|
@@ -133,7 +133,7 @@ declare const FormLabelWithTooltip: react.ForwardRefExoticComponent<FormLabelWit
|
|
|
133
133
|
* - success: Light green background
|
|
134
134
|
* - warning: Light amber background
|
|
135
135
|
* - destructive: Light red background
|
|
136
|
-
* - outline: Transparent background with border border-
|
|
136
|
+
* - outline: Transparent background with border border-border
|
|
137
137
|
*/
|
|
138
138
|
declare const badgeVariants: (props?: ({
|
|
139
139
|
variant?: "default" | "primary" | "destructive" | "outline" | "success" | "warning" | null | undefined;
|
|
@@ -152,11 +152,11 @@ declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_
|
|
|
152
152
|
* - Border radius: 0px (rounded-none)
|
|
153
153
|
* - Padding: 24px (p-6) for header/content, 16px 24px for footer
|
|
154
154
|
* - Shadow: sm (default), md (hover/elevated)
|
|
155
|
-
* - Border: 1px solid border border-
|
|
155
|
+
* - Border: 1px solid border border-border color
|
|
156
156
|
*
|
|
157
157
|
* Variants:
|
|
158
158
|
* - default: Standard card with subtle shadow
|
|
159
|
-
* - interactive: Hover effects for clickable cards (border border-
|
|
159
|
+
* - interactive: Hover effects for clickable cards (border border-border highlight, shadow increase)
|
|
160
160
|
* ⚠️ IMPORTANT: When using the interactive variant, you MUST add appropriate
|
|
161
161
|
* accessibility attributes:
|
|
162
162
|
* - Add role="button" or use an actual <button> wrapper
|
|
@@ -201,8 +201,8 @@ declare const Card: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElemen
|
|
|
201
201
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & react.RefAttributes<HTMLDivElement>>;
|
|
202
202
|
interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
203
203
|
/**
|
|
204
|
-
* Whether to hide the bottom border border-
|
|
205
|
-
* Default: false (border border-
|
|
204
|
+
* Whether to hide the bottom border border-border separator between header and content.
|
|
205
|
+
* Default: false (border border-border is shown per design spec)
|
|
206
206
|
*/
|
|
207
207
|
noBorder?: boolean;
|
|
208
208
|
}
|
|
@@ -442,7 +442,7 @@ type ProgressProps = {
|
|
|
442
442
|
* Visual variant for different states
|
|
443
443
|
*
|
|
444
444
|
* - `default`: Primary blue (bg-primary-500)
|
|
445
|
-
* - `success`: Green (bg-
|
|
445
|
+
* - `success`: Green (bg-success-500)
|
|
446
446
|
* - `error`: Red (bg-destructive)
|
|
447
447
|
*
|
|
448
448
|
* @default "default"
|
|
@@ -509,7 +509,7 @@ declare const Progress: react.ForwardRefExoticComponent<{
|
|
|
509
509
|
* Visual variant for different states
|
|
510
510
|
*
|
|
511
511
|
* - `default`: Primary blue (bg-primary-500)
|
|
512
|
-
* - `success`: Green (bg-
|
|
512
|
+
* - `success`: Green (bg-success-500)
|
|
513
513
|
* - `error`: Red (bg-destructive)
|
|
514
514
|
*
|
|
515
515
|
* @default "default"
|
|
@@ -557,9 +557,9 @@ declare const Checkbox: react.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
|
|
|
557
557
|
*
|
|
558
558
|
* Implementation Notes:
|
|
559
559
|
* - Uses Radix UI primitives for robust accessibility
|
|
560
|
-
* - Visual "checked" state achieved via border border-
|
|
561
|
-
* - No inner indicator needed - border border-
|
|
562
|
-
* - Hover state changes border border-
|
|
560
|
+
* - Visual "checked" state achieved via border border-border expansion (border-[5px])
|
|
561
|
+
* - No inner indicator needed - border border-border expansion provides clear visual feedback
|
|
562
|
+
* - Hover state changes border border-border color for better interactivity
|
|
563
563
|
*/
|
|
564
564
|
declare const RadioGroup: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
565
565
|
declare const RadioGroupItem: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
|
|
@@ -595,7 +595,7 @@ type AccordionContentProps = ComponentPropsWithoutRef<typeof Content>;
|
|
|
595
595
|
* Built on Radix UI primitives with WAI-ARIA compliance.
|
|
596
596
|
*
|
|
597
597
|
* Design Specs:
|
|
598
|
-
* - AccordionItem border: 1px bottom border border-
|
|
598
|
+
* - AccordionItem border: 1px bottom border border-border (border-b)
|
|
599
599
|
* - AccordionTrigger padding: 16px vertical (py-4)
|
|
600
600
|
* - AccordionTrigger font: font-medium (500 weight)
|
|
601
601
|
* - AccordionContent padding: 16px bottom, 0 top (pb-4 pt-0)
|
|
@@ -686,7 +686,7 @@ declare const Accordion: react.ForwardRefExoticComponent<(AccordionPrimitive.Acc
|
|
|
686
686
|
* AccordionItem - Container for trigger and content
|
|
687
687
|
*
|
|
688
688
|
* Design Specs:
|
|
689
|
-
* - Border: 1px bottom border border-
|
|
689
|
+
* - Border: 1px bottom border border-border (border-b) for visual separation
|
|
690
690
|
* - Each item represents a collapsible section
|
|
691
691
|
*
|
|
692
692
|
* Accessibility:
|
|
@@ -1021,8 +1021,8 @@ declare const TabsList: react.ForwardRefExoticComponent<Omit<_radix_ui_react_tab
|
|
|
1021
1021
|
* - Padding: 6px 16px (px-4 py-2)
|
|
1022
1022
|
* - Font: text-sm (14px), font-medium (500)
|
|
1023
1023
|
* - Transition: 150ms (design system standard)
|
|
1024
|
-
* - Active state: blue text with blue bottom border border-
|
|
1025
|
-
* - Hover: blue text with blue bottom border border-
|
|
1024
|
+
* - Active state: blue text with blue bottom border border-border (2px)
|
|
1025
|
+
* - Hover: blue text with blue bottom border border-border
|
|
1026
1026
|
* - Gmail-inspired clean underline style
|
|
1027
1027
|
*
|
|
1028
1028
|
* Accessibility:
|
|
@@ -1780,7 +1780,7 @@ declare const CommandGroup: react.ForwardRefExoticComponent<Omit<{
|
|
|
1780
1780
|
type CommandSeparatorProps = ComponentPropsWithoutRef<typeof Command$1.Separator>;
|
|
1781
1781
|
/**
|
|
1782
1782
|
* CommandSeparator - Visual divider between command groups.
|
|
1783
|
-
* 1px line with border border-
|
|
1783
|
+
* 1px line with border border-border color, 8px margin top/bottom.
|
|
1784
1784
|
*/
|
|
1785
1785
|
declare const CommandSeparator: react.ForwardRefExoticComponent<Omit<Pick<Pick<react.DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
1786
1786
|
ref?: React.Ref<HTMLDivElement>;
|
|
@@ -1945,9 +1945,9 @@ declare const Spinner: react.ForwardRefExoticComponent<Omit<SpinnerProps, "ref">
|
|
|
1945
1945
|
*
|
|
1946
1946
|
* Customization:
|
|
1947
1947
|
* All styling uses CSS variables from the design system:
|
|
1948
|
-
* - --normal-bg: Background color (uses --popover with fallback)
|
|
1949
|
-
* - --normal-text: Text color (uses --popover-foreground with fallback)
|
|
1950
|
-
* - --normal-border: Border color (uses --border with fallback)
|
|
1948
|
+
* - --normal-bg: Background color (uses --nx-popover with fallback)
|
|
1949
|
+
* - --normal-text: Text color (uses --nx-popover-foreground with fallback)
|
|
1950
|
+
* - --normal-border: Border color (uses --nx-border with fallback)
|
|
1951
1951
|
* - --border-radius: Border radius (uses --radius with fallback)
|
|
1952
1952
|
*
|
|
1953
1953
|
* Security:
|
|
@@ -2047,6 +2047,22 @@ interface TableEmptyProps {
|
|
|
2047
2047
|
*/
|
|
2048
2048
|
declare function TableEmpty({ message }: TableEmptyProps): react_jsx_runtime.JSX.Element;
|
|
2049
2049
|
|
|
2050
|
+
/**
|
|
2051
|
+
* TableSkeleton Component
|
|
2052
|
+
*
|
|
2053
|
+
* Generic loading skeleton for data tables.
|
|
2054
|
+
* Renders header, body, and footer skeleton bars inside a card.
|
|
2055
|
+
* Unified with EntryTable skeleton pattern for consistency across all tables.
|
|
2056
|
+
*/
|
|
2057
|
+
|
|
2058
|
+
interface TableSkeletonProps {
|
|
2059
|
+
columns?: number;
|
|
2060
|
+
rowCount?: number;
|
|
2061
|
+
hideWrapper?: boolean;
|
|
2062
|
+
hideFooter?: boolean;
|
|
2063
|
+
}
|
|
2064
|
+
declare const TableSkeleton: react.FC<TableSkeletonProps>;
|
|
2065
|
+
|
|
2050
2066
|
interface PaginationMeta {
|
|
2051
2067
|
total: number;
|
|
2052
2068
|
page: number;
|
|
@@ -2088,129 +2104,6 @@ interface ActionCallbacks<TData = unknown> {
|
|
|
2088
2104
|
}
|
|
2089
2105
|
type DataFetcher<TData> = (params: TableParams) => Promise<ListResponse<TData>>;
|
|
2090
2106
|
|
|
2091
|
-
/**
|
|
2092
|
-
* Props for TablePagination component
|
|
2093
|
-
*/
|
|
2094
|
-
interface TablePaginationProps {
|
|
2095
|
-
/** Pagination metadata from server */
|
|
2096
|
-
meta: PaginationMeta;
|
|
2097
|
-
/** Callback when page changes */
|
|
2098
|
-
onPageChange: (page: number) => void;
|
|
2099
|
-
/** Callback when page size changes */
|
|
2100
|
-
onPageSizeChange: (pageSize: number) => void;
|
|
2101
|
-
/** Pagination configuration */
|
|
2102
|
-
config?: Required<PaginationConfig>;
|
|
2103
|
-
/** Whether data is currently loading */
|
|
2104
|
-
isLoading?: boolean;
|
|
2105
|
-
}
|
|
2106
|
-
/**
|
|
2107
|
-
* Pagination controls for tables
|
|
2108
|
-
*/
|
|
2109
|
-
declare function TablePagination({ meta, onPageChange, onPageSizeChange, config, isLoading, }: TablePaginationProps): react_jsx_runtime.JSX.Element;
|
|
2110
|
-
|
|
2111
|
-
/**
|
|
2112
|
-
* TableSkeleton Component
|
|
2113
|
-
*
|
|
2114
|
-
* Generic loading skeleton for data tables.
|
|
2115
|
-
* Renders header, body, and footer skeleton bars inside a card.
|
|
2116
|
-
* Unified with EntryTable skeleton pattern for consistency across all tables.
|
|
2117
|
-
*/
|
|
2118
|
-
|
|
2119
|
-
interface TableSkeletonProps {
|
|
2120
|
-
columns?: number;
|
|
2121
|
-
rowCount?: number;
|
|
2122
|
-
hideWrapper?: boolean;
|
|
2123
|
-
hideFooter?: boolean;
|
|
2124
|
-
}
|
|
2125
|
-
declare const TableSkeleton: react.FC<TableSkeletonProps>;
|
|
2126
|
-
|
|
2127
|
-
/**
|
|
2128
|
-
* Column definition for ResponsiveTable
|
|
2129
|
-
*
|
|
2130
|
-
* Provides type-safe column definitions with proper type narrowing for render functions.
|
|
2131
|
-
*
|
|
2132
|
-
* @template T - The data type of items in the table
|
|
2133
|
-
* @template K - The specific key from T (defaults to any key of T)
|
|
2134
|
-
*
|
|
2135
|
-
* @example
|
|
2136
|
-
* ```tsx
|
|
2137
|
-
* interface User {
|
|
2138
|
-
* id: string;
|
|
2139
|
-
* name: string;
|
|
2140
|
-
* age: number;
|
|
2141
|
-
* }
|
|
2142
|
-
*
|
|
2143
|
-
* // Type-safe column definition with proper inference
|
|
2144
|
-
* const columns: Column<User>[] = [
|
|
2145
|
-
* {
|
|
2146
|
-
* key: "name",
|
|
2147
|
-
* label: "Name",
|
|
2148
|
-
* // value is inferred as string, not string | number
|
|
2149
|
-
* render: (value, user) => <strong>{value}</strong>
|
|
2150
|
-
* },
|
|
2151
|
-
* {
|
|
2152
|
-
* key: "age",
|
|
2153
|
-
* label: "Age",
|
|
2154
|
-
* // value is inferred as number, not string | number
|
|
2155
|
-
* render: (value) => `${value} years old`
|
|
2156
|
-
* }
|
|
2157
|
-
* ];
|
|
2158
|
-
* ```
|
|
2159
|
-
*/
|
|
2160
|
-
type Column<T, K extends keyof T = keyof T> = {
|
|
2161
|
-
/** Unique key for the column (must match a property in T) */
|
|
2162
|
-
key: K;
|
|
2163
|
-
/** Display label for the column header */
|
|
2164
|
-
label: react.ReactNode;
|
|
2165
|
-
/** Optional custom renderer for cell content with type-safe value */
|
|
2166
|
-
render?: (value: T[K], item: T) => react.ReactNode;
|
|
2167
|
-
/** Hide column on mobile card view (optional, default: false) */
|
|
2168
|
-
hideOnMobile?: boolean;
|
|
2169
|
-
/** Hide the label on mobile card view (optional, default: false) */
|
|
2170
|
-
hideLabelOnMobile?: boolean;
|
|
2171
|
-
/** Optional custom className for the table header cell */
|
|
2172
|
-
headerClassName?: string;
|
|
2173
|
-
/** Optional custom className for the table body cell */
|
|
2174
|
-
cellClassName?: string;
|
|
2175
|
-
};
|
|
2176
|
-
/**
|
|
2177
|
-
* Props for ResponsiveTable component
|
|
2178
|
-
*
|
|
2179
|
-
* @template T - The data type of items in the table, must have an 'id' property
|
|
2180
|
-
*/
|
|
2181
|
-
type ResponsiveTableProps<T extends {
|
|
2182
|
-
id: string;
|
|
2183
|
-
}> = {
|
|
2184
|
-
/** Array of data items to display */
|
|
2185
|
-
data: T[];
|
|
2186
|
-
/** Array of column definitions */
|
|
2187
|
-
columns: Column<T>[];
|
|
2188
|
-
/** Optional callback when a row/card is clicked */
|
|
2189
|
-
onRowClick?: (item: T) => void;
|
|
2190
|
-
/** Optional custom renderer for mobile card view */
|
|
2191
|
-
renderMobileCard?: (item: T, columns: Column<T>[]) => react.ReactNode;
|
|
2192
|
-
/** Optional custom className for the container */
|
|
2193
|
-
className?: string;
|
|
2194
|
-
/** Optional empty state message */
|
|
2195
|
-
emptyMessage?: string;
|
|
2196
|
-
/** Optional ARIA label for the table (improves screen reader experience) */
|
|
2197
|
-
ariaLabel?: string;
|
|
2198
|
-
/** Optional custom className for the internal desktop table wrapper */
|
|
2199
|
-
tableWrapperClassName?: string;
|
|
2200
|
-
/** Optional footer content rendered inside the table card (e.g. Pagination) */
|
|
2201
|
-
footer?: react.ReactNode;
|
|
2202
|
-
};
|
|
2203
|
-
/**
|
|
2204
|
-
* Ref type for ResponsiveTable component
|
|
2205
|
-
*/
|
|
2206
|
-
type ResponsiveTableRef = HTMLDivElement;
|
|
2207
|
-
|
|
2208
|
-
declare const ResponsiveTable: <T extends {
|
|
2209
|
-
id: string;
|
|
2210
|
-
}>(props: ResponsiveTableProps<T> & {
|
|
2211
|
-
ref?: react.ForwardedRef<HTMLDivElement>;
|
|
2212
|
-
}) => react.ReactElement;
|
|
2213
|
-
|
|
2214
2107
|
interface PortalProviderProps {
|
|
2215
2108
|
/** The DOM element to portal overlay content into. Defaults to document.body (Radix default). */
|
|
2216
2109
|
container: HTMLElement | null;
|
|
@@ -2228,7 +2121,7 @@ declare function usePortalContainer(): HTMLElement | undefined;
|
|
|
2228
2121
|
* @example
|
|
2229
2122
|
* ```typescript
|
|
2230
2123
|
* cn('px-2 py-1', 'px-4') // => 'py-1 px-4'
|
|
2231
|
-
* cn('text-
|
|
2124
|
+
* cn('text-muted-foreground', condition && 'text-foreground')
|
|
2232
2125
|
* ```
|
|
2233
2126
|
*/
|
|
2234
2127
|
declare function cn(...inputs: ClassValue[]): string;
|
|
@@ -2325,4 +2218,4 @@ declare const uiPreset: {
|
|
|
2325
2218
|
};
|
|
2326
2219
|
};
|
|
2327
2220
|
|
|
2328
|
-
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type ActionCallbacks, Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, type AlertDialogCancelProps, AlertDialogContent, type AlertDialogContentProps, AlertDialogDescription, type AlertDialogDescriptionProps, AlertDialogFooter, type AlertDialogFooterProps, AlertDialogHeader, type AlertDialogHeaderProps, AlertDialogOverlay, type AlertDialogOverlayProps, AlertDialogPortal, AlertDialogTitle, type AlertDialogTitleProps, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardAction, type CardActionProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger,
|
|
2221
|
+
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type ActionCallbacks, Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, type AlertDialogCancelProps, AlertDialogContent, type AlertDialogContentProps, AlertDialogDescription, type AlertDialogDescriptionProps, AlertDialogFooter, type AlertDialogFooterProps, AlertDialogHeader, type AlertDialogHeaderProps, AlertDialogOverlay, type AlertDialogOverlayProps, AlertDialogPortal, AlertDialogTitle, type AlertDialogTitleProps, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardAction, type CardActionProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, type CommandEmptyProps, CommandGroup, type CommandGroupProps, CommandInput, type CommandInputProps, CommandItem, type CommandItemProps, CommandList, type CommandListProps, type CommandProps, CommandSeparator, type CommandSeparatorProps, CommandShortcut, type CommandShortcutProps, type DataFetcher, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogOverlay, type DialogOverlayProps, DialogPortal, DialogTitle, type DialogTitleProps, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuShortcut, type DropdownMenuShortcutProps, DropdownMenuSub, DropdownMenuSubContent, type DropdownMenuSubContentProps, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, type FilterInfo, FormLabelWithTooltip, type FormLabelWithTooltipProps, Input, type InputProps, Label, type ListResponse, type PaginationConfig, type PaginationMeta, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalProvider, Progress, type ProgressProps, RadioGroup, RadioGroupItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, Sheet, SheetClose, type SheetCloseProps, SheetContent, type SheetContentProps, type SheetContentRef, SheetDescription, type SheetDescriptionProps, type SheetDescriptionRef, SheetFooter, type SheetFooterProps, SheetHeader, type SheetHeaderProps, SheetOverlay, type SheetOverlayProps, type SheetOverlayRef, SheetPortal, type SheetProps, SheetTitle, type SheetTitleProps, type SheetTitleRef, SheetTrigger, type SheetTriggerProps, Skeleton, type SkeletonProps, type SortInfo, Spinner, type SpinnerProps, Switch, Table, TableBody, TableCaption, TableCell, TableEmpty, type TableEmptyProps, TableError, type TableErrorProps, TableFooter, TableHead, TableHeader, TableLoading, type TableParams, TableRow, TableSearch, type TableSearchProps, TableSkeleton, type TableSkeletonProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Textarea, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, avatarVariants, badgeVariants, buttonVariants, cardVariants, cn, dialogContentVariants, inputVariants, progressVariants, selectTriggerVariants, sheetVariants, spinnerVariants, uiPreset, usePortalContainer };
|
package/dist/index.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ declare const FormLabelWithTooltip: react.ForwardRefExoticComponent<FormLabelWit
|
|
|
133
133
|
* - success: Light green background
|
|
134
134
|
* - warning: Light amber background
|
|
135
135
|
* - destructive: Light red background
|
|
136
|
-
* - outline: Transparent background with border border-
|
|
136
|
+
* - outline: Transparent background with border border-border
|
|
137
137
|
*/
|
|
138
138
|
declare const badgeVariants: (props?: ({
|
|
139
139
|
variant?: "default" | "primary" | "destructive" | "outline" | "success" | "warning" | null | undefined;
|
|
@@ -152,11 +152,11 @@ declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_
|
|
|
152
152
|
* - Border radius: 0px (rounded-none)
|
|
153
153
|
* - Padding: 24px (p-6) for header/content, 16px 24px for footer
|
|
154
154
|
* - Shadow: sm (default), md (hover/elevated)
|
|
155
|
-
* - Border: 1px solid border border-
|
|
155
|
+
* - Border: 1px solid border border-border color
|
|
156
156
|
*
|
|
157
157
|
* Variants:
|
|
158
158
|
* - default: Standard card with subtle shadow
|
|
159
|
-
* - interactive: Hover effects for clickable cards (border border-
|
|
159
|
+
* - interactive: Hover effects for clickable cards (border border-border highlight, shadow increase)
|
|
160
160
|
* ⚠️ IMPORTANT: When using the interactive variant, you MUST add appropriate
|
|
161
161
|
* accessibility attributes:
|
|
162
162
|
* - Add role="button" or use an actual <button> wrapper
|
|
@@ -201,8 +201,8 @@ declare const Card: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElemen
|
|
|
201
201
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & react.RefAttributes<HTMLDivElement>>;
|
|
202
202
|
interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
203
203
|
/**
|
|
204
|
-
* Whether to hide the bottom border border-
|
|
205
|
-
* Default: false (border border-
|
|
204
|
+
* Whether to hide the bottom border border-border separator between header and content.
|
|
205
|
+
* Default: false (border border-border is shown per design spec)
|
|
206
206
|
*/
|
|
207
207
|
noBorder?: boolean;
|
|
208
208
|
}
|
|
@@ -442,7 +442,7 @@ type ProgressProps = {
|
|
|
442
442
|
* Visual variant for different states
|
|
443
443
|
*
|
|
444
444
|
* - `default`: Primary blue (bg-primary-500)
|
|
445
|
-
* - `success`: Green (bg-
|
|
445
|
+
* - `success`: Green (bg-success-500)
|
|
446
446
|
* - `error`: Red (bg-destructive)
|
|
447
447
|
*
|
|
448
448
|
* @default "default"
|
|
@@ -509,7 +509,7 @@ declare const Progress: react.ForwardRefExoticComponent<{
|
|
|
509
509
|
* Visual variant for different states
|
|
510
510
|
*
|
|
511
511
|
* - `default`: Primary blue (bg-primary-500)
|
|
512
|
-
* - `success`: Green (bg-
|
|
512
|
+
* - `success`: Green (bg-success-500)
|
|
513
513
|
* - `error`: Red (bg-destructive)
|
|
514
514
|
*
|
|
515
515
|
* @default "default"
|
|
@@ -557,9 +557,9 @@ declare const Checkbox: react.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
|
|
|
557
557
|
*
|
|
558
558
|
* Implementation Notes:
|
|
559
559
|
* - Uses Radix UI primitives for robust accessibility
|
|
560
|
-
* - Visual "checked" state achieved via border border-
|
|
561
|
-
* - No inner indicator needed - border border-
|
|
562
|
-
* - Hover state changes border border-
|
|
560
|
+
* - Visual "checked" state achieved via border border-border expansion (border-[5px])
|
|
561
|
+
* - No inner indicator needed - border border-border expansion provides clear visual feedback
|
|
562
|
+
* - Hover state changes border border-border color for better interactivity
|
|
563
563
|
*/
|
|
564
564
|
declare const RadioGroup: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
565
565
|
declare const RadioGroupItem: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
|
|
@@ -595,7 +595,7 @@ type AccordionContentProps = ComponentPropsWithoutRef<typeof Content>;
|
|
|
595
595
|
* Built on Radix UI primitives with WAI-ARIA compliance.
|
|
596
596
|
*
|
|
597
597
|
* Design Specs:
|
|
598
|
-
* - AccordionItem border: 1px bottom border border-
|
|
598
|
+
* - AccordionItem border: 1px bottom border border-border (border-b)
|
|
599
599
|
* - AccordionTrigger padding: 16px vertical (py-4)
|
|
600
600
|
* - AccordionTrigger font: font-medium (500 weight)
|
|
601
601
|
* - AccordionContent padding: 16px bottom, 0 top (pb-4 pt-0)
|
|
@@ -686,7 +686,7 @@ declare const Accordion: react.ForwardRefExoticComponent<(AccordionPrimitive.Acc
|
|
|
686
686
|
* AccordionItem - Container for trigger and content
|
|
687
687
|
*
|
|
688
688
|
* Design Specs:
|
|
689
|
-
* - Border: 1px bottom border border-
|
|
689
|
+
* - Border: 1px bottom border border-border (border-b) for visual separation
|
|
690
690
|
* - Each item represents a collapsible section
|
|
691
691
|
*
|
|
692
692
|
* Accessibility:
|
|
@@ -1021,8 +1021,8 @@ declare const TabsList: react.ForwardRefExoticComponent<Omit<_radix_ui_react_tab
|
|
|
1021
1021
|
* - Padding: 6px 16px (px-4 py-2)
|
|
1022
1022
|
* - Font: text-sm (14px), font-medium (500)
|
|
1023
1023
|
* - Transition: 150ms (design system standard)
|
|
1024
|
-
* - Active state: blue text with blue bottom border border-
|
|
1025
|
-
* - Hover: blue text with blue bottom border border-
|
|
1024
|
+
* - Active state: blue text with blue bottom border border-border (2px)
|
|
1025
|
+
* - Hover: blue text with blue bottom border border-border
|
|
1026
1026
|
* - Gmail-inspired clean underline style
|
|
1027
1027
|
*
|
|
1028
1028
|
* Accessibility:
|
|
@@ -1780,7 +1780,7 @@ declare const CommandGroup: react.ForwardRefExoticComponent<Omit<{
|
|
|
1780
1780
|
type CommandSeparatorProps = ComponentPropsWithoutRef<typeof Command$1.Separator>;
|
|
1781
1781
|
/**
|
|
1782
1782
|
* CommandSeparator - Visual divider between command groups.
|
|
1783
|
-
* 1px line with border border-
|
|
1783
|
+
* 1px line with border border-border color, 8px margin top/bottom.
|
|
1784
1784
|
*/
|
|
1785
1785
|
declare const CommandSeparator: react.ForwardRefExoticComponent<Omit<Pick<Pick<react.DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
1786
1786
|
ref?: React.Ref<HTMLDivElement>;
|
|
@@ -1945,9 +1945,9 @@ declare const Spinner: react.ForwardRefExoticComponent<Omit<SpinnerProps, "ref">
|
|
|
1945
1945
|
*
|
|
1946
1946
|
* Customization:
|
|
1947
1947
|
* All styling uses CSS variables from the design system:
|
|
1948
|
-
* - --normal-bg: Background color (uses --popover with fallback)
|
|
1949
|
-
* - --normal-text: Text color (uses --popover-foreground with fallback)
|
|
1950
|
-
* - --normal-border: Border color (uses --border with fallback)
|
|
1948
|
+
* - --normal-bg: Background color (uses --nx-popover with fallback)
|
|
1949
|
+
* - --normal-text: Text color (uses --nx-popover-foreground with fallback)
|
|
1950
|
+
* - --normal-border: Border color (uses --nx-border with fallback)
|
|
1951
1951
|
* - --border-radius: Border radius (uses --radius with fallback)
|
|
1952
1952
|
*
|
|
1953
1953
|
* Security:
|
|
@@ -2047,6 +2047,22 @@ interface TableEmptyProps {
|
|
|
2047
2047
|
*/
|
|
2048
2048
|
declare function TableEmpty({ message }: TableEmptyProps): react_jsx_runtime.JSX.Element;
|
|
2049
2049
|
|
|
2050
|
+
/**
|
|
2051
|
+
* TableSkeleton Component
|
|
2052
|
+
*
|
|
2053
|
+
* Generic loading skeleton for data tables.
|
|
2054
|
+
* Renders header, body, and footer skeleton bars inside a card.
|
|
2055
|
+
* Unified with EntryTable skeleton pattern for consistency across all tables.
|
|
2056
|
+
*/
|
|
2057
|
+
|
|
2058
|
+
interface TableSkeletonProps {
|
|
2059
|
+
columns?: number;
|
|
2060
|
+
rowCount?: number;
|
|
2061
|
+
hideWrapper?: boolean;
|
|
2062
|
+
hideFooter?: boolean;
|
|
2063
|
+
}
|
|
2064
|
+
declare const TableSkeleton: react.FC<TableSkeletonProps>;
|
|
2065
|
+
|
|
2050
2066
|
interface PaginationMeta {
|
|
2051
2067
|
total: number;
|
|
2052
2068
|
page: number;
|
|
@@ -2088,129 +2104,6 @@ interface ActionCallbacks<TData = unknown> {
|
|
|
2088
2104
|
}
|
|
2089
2105
|
type DataFetcher<TData> = (params: TableParams) => Promise<ListResponse<TData>>;
|
|
2090
2106
|
|
|
2091
|
-
/**
|
|
2092
|
-
* Props for TablePagination component
|
|
2093
|
-
*/
|
|
2094
|
-
interface TablePaginationProps {
|
|
2095
|
-
/** Pagination metadata from server */
|
|
2096
|
-
meta: PaginationMeta;
|
|
2097
|
-
/** Callback when page changes */
|
|
2098
|
-
onPageChange: (page: number) => void;
|
|
2099
|
-
/** Callback when page size changes */
|
|
2100
|
-
onPageSizeChange: (pageSize: number) => void;
|
|
2101
|
-
/** Pagination configuration */
|
|
2102
|
-
config?: Required<PaginationConfig>;
|
|
2103
|
-
/** Whether data is currently loading */
|
|
2104
|
-
isLoading?: boolean;
|
|
2105
|
-
}
|
|
2106
|
-
/**
|
|
2107
|
-
* Pagination controls for tables
|
|
2108
|
-
*/
|
|
2109
|
-
declare function TablePagination({ meta, onPageChange, onPageSizeChange, config, isLoading, }: TablePaginationProps): react_jsx_runtime.JSX.Element;
|
|
2110
|
-
|
|
2111
|
-
/**
|
|
2112
|
-
* TableSkeleton Component
|
|
2113
|
-
*
|
|
2114
|
-
* Generic loading skeleton for data tables.
|
|
2115
|
-
* Renders header, body, and footer skeleton bars inside a card.
|
|
2116
|
-
* Unified with EntryTable skeleton pattern for consistency across all tables.
|
|
2117
|
-
*/
|
|
2118
|
-
|
|
2119
|
-
interface TableSkeletonProps {
|
|
2120
|
-
columns?: number;
|
|
2121
|
-
rowCount?: number;
|
|
2122
|
-
hideWrapper?: boolean;
|
|
2123
|
-
hideFooter?: boolean;
|
|
2124
|
-
}
|
|
2125
|
-
declare const TableSkeleton: react.FC<TableSkeletonProps>;
|
|
2126
|
-
|
|
2127
|
-
/**
|
|
2128
|
-
* Column definition for ResponsiveTable
|
|
2129
|
-
*
|
|
2130
|
-
* Provides type-safe column definitions with proper type narrowing for render functions.
|
|
2131
|
-
*
|
|
2132
|
-
* @template T - The data type of items in the table
|
|
2133
|
-
* @template K - The specific key from T (defaults to any key of T)
|
|
2134
|
-
*
|
|
2135
|
-
* @example
|
|
2136
|
-
* ```tsx
|
|
2137
|
-
* interface User {
|
|
2138
|
-
* id: string;
|
|
2139
|
-
* name: string;
|
|
2140
|
-
* age: number;
|
|
2141
|
-
* }
|
|
2142
|
-
*
|
|
2143
|
-
* // Type-safe column definition with proper inference
|
|
2144
|
-
* const columns: Column<User>[] = [
|
|
2145
|
-
* {
|
|
2146
|
-
* key: "name",
|
|
2147
|
-
* label: "Name",
|
|
2148
|
-
* // value is inferred as string, not string | number
|
|
2149
|
-
* render: (value, user) => <strong>{value}</strong>
|
|
2150
|
-
* },
|
|
2151
|
-
* {
|
|
2152
|
-
* key: "age",
|
|
2153
|
-
* label: "Age",
|
|
2154
|
-
* // value is inferred as number, not string | number
|
|
2155
|
-
* render: (value) => `${value} years old`
|
|
2156
|
-
* }
|
|
2157
|
-
* ];
|
|
2158
|
-
* ```
|
|
2159
|
-
*/
|
|
2160
|
-
type Column<T, K extends keyof T = keyof T> = {
|
|
2161
|
-
/** Unique key for the column (must match a property in T) */
|
|
2162
|
-
key: K;
|
|
2163
|
-
/** Display label for the column header */
|
|
2164
|
-
label: react.ReactNode;
|
|
2165
|
-
/** Optional custom renderer for cell content with type-safe value */
|
|
2166
|
-
render?: (value: T[K], item: T) => react.ReactNode;
|
|
2167
|
-
/** Hide column on mobile card view (optional, default: false) */
|
|
2168
|
-
hideOnMobile?: boolean;
|
|
2169
|
-
/** Hide the label on mobile card view (optional, default: false) */
|
|
2170
|
-
hideLabelOnMobile?: boolean;
|
|
2171
|
-
/** Optional custom className for the table header cell */
|
|
2172
|
-
headerClassName?: string;
|
|
2173
|
-
/** Optional custom className for the table body cell */
|
|
2174
|
-
cellClassName?: string;
|
|
2175
|
-
};
|
|
2176
|
-
/**
|
|
2177
|
-
* Props for ResponsiveTable component
|
|
2178
|
-
*
|
|
2179
|
-
* @template T - The data type of items in the table, must have an 'id' property
|
|
2180
|
-
*/
|
|
2181
|
-
type ResponsiveTableProps<T extends {
|
|
2182
|
-
id: string;
|
|
2183
|
-
}> = {
|
|
2184
|
-
/** Array of data items to display */
|
|
2185
|
-
data: T[];
|
|
2186
|
-
/** Array of column definitions */
|
|
2187
|
-
columns: Column<T>[];
|
|
2188
|
-
/** Optional callback when a row/card is clicked */
|
|
2189
|
-
onRowClick?: (item: T) => void;
|
|
2190
|
-
/** Optional custom renderer for mobile card view */
|
|
2191
|
-
renderMobileCard?: (item: T, columns: Column<T>[]) => react.ReactNode;
|
|
2192
|
-
/** Optional custom className for the container */
|
|
2193
|
-
className?: string;
|
|
2194
|
-
/** Optional empty state message */
|
|
2195
|
-
emptyMessage?: string;
|
|
2196
|
-
/** Optional ARIA label for the table (improves screen reader experience) */
|
|
2197
|
-
ariaLabel?: string;
|
|
2198
|
-
/** Optional custom className for the internal desktop table wrapper */
|
|
2199
|
-
tableWrapperClassName?: string;
|
|
2200
|
-
/** Optional footer content rendered inside the table card (e.g. Pagination) */
|
|
2201
|
-
footer?: react.ReactNode;
|
|
2202
|
-
};
|
|
2203
|
-
/**
|
|
2204
|
-
* Ref type for ResponsiveTable component
|
|
2205
|
-
*/
|
|
2206
|
-
type ResponsiveTableRef = HTMLDivElement;
|
|
2207
|
-
|
|
2208
|
-
declare const ResponsiveTable: <T extends {
|
|
2209
|
-
id: string;
|
|
2210
|
-
}>(props: ResponsiveTableProps<T> & {
|
|
2211
|
-
ref?: react.ForwardedRef<HTMLDivElement>;
|
|
2212
|
-
}) => react.ReactElement;
|
|
2213
|
-
|
|
2214
2107
|
interface PortalProviderProps {
|
|
2215
2108
|
/** The DOM element to portal overlay content into. Defaults to document.body (Radix default). */
|
|
2216
2109
|
container: HTMLElement | null;
|
|
@@ -2228,7 +2121,7 @@ declare function usePortalContainer(): HTMLElement | undefined;
|
|
|
2228
2121
|
* @example
|
|
2229
2122
|
* ```typescript
|
|
2230
2123
|
* cn('px-2 py-1', 'px-4') // => 'py-1 px-4'
|
|
2231
|
-
* cn('text-
|
|
2124
|
+
* cn('text-muted-foreground', condition && 'text-foreground')
|
|
2232
2125
|
* ```
|
|
2233
2126
|
*/
|
|
2234
2127
|
declare function cn(...inputs: ClassValue[]): string;
|
|
@@ -2325,4 +2218,4 @@ declare const uiPreset: {
|
|
|
2325
2218
|
};
|
|
2326
2219
|
};
|
|
2327
2220
|
|
|
2328
|
-
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type ActionCallbacks, Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, type AlertDialogCancelProps, AlertDialogContent, type AlertDialogContentProps, AlertDialogDescription, type AlertDialogDescriptionProps, AlertDialogFooter, type AlertDialogFooterProps, AlertDialogHeader, type AlertDialogHeaderProps, AlertDialogOverlay, type AlertDialogOverlayProps, AlertDialogPortal, AlertDialogTitle, type AlertDialogTitleProps, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardAction, type CardActionProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger,
|
|
2221
|
+
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, type ActionCallbacks, Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, type AlertDialogCancelProps, AlertDialogContent, type AlertDialogContentProps, AlertDialogDescription, type AlertDialogDescriptionProps, AlertDialogFooter, type AlertDialogFooterProps, AlertDialogHeader, type AlertDialogHeaderProps, AlertDialogOverlay, type AlertDialogOverlayProps, AlertDialogPortal, AlertDialogTitle, type AlertDialogTitleProps, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardAction, type CardActionProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, type CommandEmptyProps, CommandGroup, type CommandGroupProps, CommandInput, type CommandInputProps, CommandItem, type CommandItemProps, CommandList, type CommandListProps, type CommandProps, CommandSeparator, type CommandSeparatorProps, CommandShortcut, type CommandShortcutProps, type DataFetcher, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogOverlay, type DialogOverlayProps, DialogPortal, DialogTitle, type DialogTitleProps, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, type DropdownMenuSeparatorProps, DropdownMenuShortcut, type DropdownMenuShortcutProps, DropdownMenuSub, DropdownMenuSubContent, type DropdownMenuSubContentProps, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, type FilterInfo, FormLabelWithTooltip, type FormLabelWithTooltipProps, Input, type InputProps, Label, type ListResponse, type PaginationConfig, type PaginationMeta, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalProvider, Progress, type ProgressProps, RadioGroup, RadioGroupItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, Sheet, SheetClose, type SheetCloseProps, SheetContent, type SheetContentProps, type SheetContentRef, SheetDescription, type SheetDescriptionProps, type SheetDescriptionRef, SheetFooter, type SheetFooterProps, SheetHeader, type SheetHeaderProps, SheetOverlay, type SheetOverlayProps, type SheetOverlayRef, SheetPortal, type SheetProps, SheetTitle, type SheetTitleProps, type SheetTitleRef, SheetTrigger, type SheetTriggerProps, Skeleton, type SkeletonProps, type SortInfo, Spinner, type SpinnerProps, Switch, Table, TableBody, TableCaption, TableCell, TableEmpty, type TableEmptyProps, TableError, type TableErrorProps, TableFooter, TableHead, TableHeader, TableLoading, type TableParams, TableRow, TableSearch, type TableSearchProps, TableSkeleton, type TableSkeletonProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Textarea, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, avatarVariants, badgeVariants, buttonVariants, cardVariants, cn, dialogContentVariants, inputVariants, progressVariants, selectTriggerVariants, sheetVariants, spinnerVariants, uiPreset, usePortalContainer };
|