gridsmith-ui 0.6.5 → 0.6.7
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/dist/charts.js +2 -2
- package/dist/chat.d.ts +12 -0
- package/dist/chat.js +94 -0
- package/dist/chat.js.map +1 -0
- package/dist/{chunk-TTZSZNJ6.js → chunk-4KVFH5KC.js} +7 -3
- package/dist/chunk-4KVFH5KC.js.map +1 -0
- package/dist/{chunk-KXNJJKIV.js → chunk-ADTPGMOD.js} +13 -13
- package/dist/chunk-ADTPGMOD.js.map +1 -0
- package/dist/{chunk-DDKCQVKO.js → chunk-LTV5X3S7.js} +48 -20
- package/dist/chunk-LTV5X3S7.js.map +1 -0
- package/dist/{chunk-QGBG72OB.js → chunk-M3AARGLI.js} +3 -3
- package/dist/{chunk-QGBG72OB.js.map → chunk-M3AARGLI.js.map} +1 -1
- package/dist/{chunk-GX6O72IV.js → chunk-NM3BFWHH.js} +19 -26
- package/dist/chunk-NM3BFWHH.js.map +1 -0
- package/dist/{chunk-GYVBRUO2.js → chunk-NRHIYS5W.js} +14 -3
- package/dist/chunk-NRHIYS5W.js.map +1 -0
- package/dist/chunk-R2HNSJJG.js +156 -0
- package/dist/chunk-R2HNSJJG.js.map +1 -0
- package/dist/chunk-RLUK575N.js +136 -0
- package/dist/chunk-RLUK575N.js.map +1 -0
- package/dist/chunk-WH2FUFAC.js +14 -0
- package/dist/chunk-WH2FUFAC.js.map +1 -0
- package/dist/data-grid.js +4 -3
- package/dist/data-grid.js.map +1 -1
- package/dist/editor.js +17 -13
- package/dist/editor.js.map +1 -1
- package/dist/feather-B65FI6CY.js +76 -0
- package/dist/feather-B65FI6CY.js.map +1 -0
- package/dist/heroicons-DIR7PXCR.js +76 -0
- package/dist/heroicons-DIR7PXCR.js.map +1 -0
- package/dist/icons.d.ts +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.d.ts +352 -17
- package/dist/index.js +4612 -3484
- package/dist/index.js.map +1 -1
- package/dist/kanban.js +5 -4
- package/dist/kanban.js.map +1 -1
- package/dist/lucide-JH2R3TFV.js +76 -0
- package/dist/lucide-JH2R3TFV.js.map +1 -0
- package/dist/phosphor-HCVUMVT5.js +76 -0
- package/dist/phosphor-HCVUMVT5.js.map +1 -0
- package/dist/resizable.js +2 -2
- package/dist/roots.css +104 -17
- package/dist/tabler-HHIXSM73.js +76 -0
- package/dist/tabler-HHIXSM73.js.map +1 -0
- package/dist/tokens.css +15 -7
- package/dist/utils.js +1 -1
- package/dist/virtualized.js +1 -1
- package/dist-static/tokens.css +15 -7
- package/package.json +14 -2
- package/dist/chunk-DDKCQVKO.js.map +0 -1
- package/dist/chunk-GX6O72IV.js.map +0 -1
- package/dist/chunk-GYVBRUO2.js.map +0 -1
- package/dist/chunk-KXNJJKIV.js.map +0 -1
- package/dist/chunk-TTZSZNJ6.js.map +0 -1
- package/dist/feather-U45EQTAU.js +0 -72
- package/dist/feather-U45EQTAU.js.map +0 -1
- package/dist/heroicons-D3G7QU45.js +0 -72
- package/dist/heroicons-D3G7QU45.js.map +0 -1
- package/dist/lucide-OGUV44TQ.js +0 -72
- package/dist/lucide-OGUV44TQ.js.map +0 -1
- package/dist/phosphor-QG2ZMEMZ.js +0 -72
- package/dist/phosphor-QG2ZMEMZ.js.map +0 -1
- package/dist/tabler-MW2HN55L.js +0 -72
- package/dist/tabler-MW2HN55L.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, LabelHTMLAttributes, TextareaHTMLAttributes, Ref, ReactElement, HTMLAttributes, AnchorHTMLAttributes, ComponentType } from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, LabelHTMLAttributes, TextareaHTMLAttributes, Ref, CSSProperties, ReactElement, HTMLAttributes, AnchorHTMLAttributes, ComponentType } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import { IconName } from './icons.js';
|
|
5
5
|
import { B as BreakpointKey } from './use-breakpoint-BfKzmkxx.js';
|
|
6
6
|
export { a as BreakpointWidthProvider, u as useBreakpoint } from './use-breakpoint-BfKzmkxx.js';
|
|
7
7
|
|
|
8
8
|
type ButtonVariant = "default" | "secondary" | "tertiary" | "outline" | "ghost" | "destructive" | "success" | "warning" | "link";
|
|
9
|
-
type ButtonSize = "sm" | "md" | "lg" | "icon-sm" | "icon" | "icon-lg";
|
|
9
|
+
type ButtonSize = "xs" | "sm" | "md" | "lg" | "icon-xs" | "icon-sm" | "icon" | "icon-lg";
|
|
10
10
|
declare const ButtonSizeContext: react.Context<ButtonSize | null>;
|
|
11
11
|
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
12
12
|
variant?: ButtonVariant;
|
|
@@ -65,18 +65,21 @@ declare function Input({ className, size, error, prefix, suffix, ...props }: Omi
|
|
|
65
65
|
interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
66
66
|
autoResize?: boolean;
|
|
67
67
|
maxRows?: number;
|
|
68
|
+
error?: boolean;
|
|
68
69
|
ref?: Ref<HTMLTextAreaElement>;
|
|
69
70
|
}
|
|
70
|
-
declare function Textarea({ className, autoResize, maxRows, ref, ...props }: TextareaProps): react_jsx_runtime.JSX.Element;
|
|
71
|
+
declare function Textarea({ className, autoResize, maxRows, error, ref, ...props }: TextareaProps): react_jsx_runtime.JSX.Element;
|
|
71
72
|
declare function Label({ className, children, ...props }: LabelHTMLAttributes<HTMLLabelElement>): react_jsx_runtime.JSX.Element;
|
|
72
73
|
type ToggleLayout = "full" | "compact";
|
|
73
|
-
|
|
74
|
+
type ToggleSize = "sm" | "md";
|
|
75
|
+
declare function Toggle({ checked, onChange, label, disabled, error, layout, size, "aria-labelledby": ariaLabelledBy, ...rest }: {
|
|
74
76
|
checked: boolean;
|
|
75
77
|
onChange: (v: boolean) => void;
|
|
76
78
|
label?: string;
|
|
77
79
|
disabled?: boolean;
|
|
78
80
|
error?: boolean;
|
|
79
81
|
layout?: ToggleLayout;
|
|
82
|
+
size?: ToggleSize;
|
|
80
83
|
"aria-labelledby"?: string;
|
|
81
84
|
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange">): react_jsx_runtime.JSX.Element;
|
|
82
85
|
|
|
@@ -124,16 +127,18 @@ interface ComboboxProps {
|
|
|
124
127
|
}
|
|
125
128
|
declare function Combobox({ value, onChange, options, placeholder, disabled, loading, className, ref, container, error }: ComboboxProps): react_jsx_runtime.JSX.Element;
|
|
126
129
|
|
|
130
|
+
type CheckboxSize = "sm" | "md";
|
|
127
131
|
interface CheckboxProps {
|
|
128
132
|
checked: boolean;
|
|
129
133
|
onChange: (checked: boolean) => void;
|
|
130
134
|
label?: string;
|
|
135
|
+
size?: CheckboxSize;
|
|
131
136
|
disabled?: boolean;
|
|
132
137
|
indeterminate?: boolean;
|
|
133
138
|
className?: string;
|
|
134
139
|
ref?: Ref<HTMLInputElement>;
|
|
135
140
|
}
|
|
136
|
-
declare function Checkbox({ checked, onChange, label, disabled, indeterminate, className, ref }: CheckboxProps): react_jsx_runtime.JSX.Element;
|
|
141
|
+
declare function Checkbox({ checked, onChange, label, size, disabled, indeterminate, className, ref }: CheckboxProps): react_jsx_runtime.JSX.Element;
|
|
137
142
|
interface CheckboxGroupProps {
|
|
138
143
|
value: string[];
|
|
139
144
|
onChange: (value: string[]) => void;
|
|
@@ -257,8 +262,13 @@ interface SliderRangeProps {
|
|
|
257
262
|
className?: string;
|
|
258
263
|
ref?: Ref<HTMLDivElement>;
|
|
259
264
|
error?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Paint the track yourself (e.g. a hue spectrum for a colour slider). The
|
|
267
|
+
* accent fill is hidden so the custom track stays fully visible.
|
|
268
|
+
*/
|
|
269
|
+
trackStyle?: CSSProperties;
|
|
260
270
|
}
|
|
261
|
-
declare function SliderRange({ value, onChange, min, max, step, disabled, showValue, className, ref, error, label }: SliderRangeProps): react_jsx_runtime.JSX.Element;
|
|
271
|
+
declare function SliderRange({ value, onChange, min, max, step, disabled, showValue, className, ref, error, label, trackStyle }: SliderRangeProps): react_jsx_runtime.JSX.Element;
|
|
262
272
|
|
|
263
273
|
interface TimePickerProps {
|
|
264
274
|
value: string;
|
|
@@ -700,13 +710,21 @@ declare function AvatarGroup({ items, max, size, ring, onOverflowClick, classNam
|
|
|
700
710
|
|
|
701
711
|
interface EmptyStateProps {
|
|
702
712
|
icon?: ReactNode;
|
|
713
|
+
/** How the icon is framed: the neutral circle (default), or none when the icon element brings its own frame. */
|
|
714
|
+
iconFrame?: "circle" | "none";
|
|
703
715
|
title: string;
|
|
704
716
|
description?: string;
|
|
705
717
|
action?: ReactNode;
|
|
706
718
|
variant?: "empty" | "filtered" | "error" | "no-permission";
|
|
719
|
+
/**
|
|
720
|
+
* Draw a subtle solid border around the state. Off by default: the icon,
|
|
721
|
+
* centred title and padding already read as "nothing here", and a dashed
|
|
722
|
+
* frame (the old default) is what FileUpload uses to mean "drop here".
|
|
723
|
+
*/
|
|
724
|
+
bordered?: boolean;
|
|
707
725
|
className?: string;
|
|
708
726
|
}
|
|
709
|
-
declare function EmptyState({ icon, title, description, action, variant, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
727
|
+
declare function EmptyState({ icon, iconFrame, title, description, action, variant, bordered, className }: EmptyStateProps): react_jsx_runtime.JSX.Element;
|
|
710
728
|
|
|
711
729
|
interface TimelineItem {
|
|
712
730
|
title: string;
|
|
@@ -805,38 +823,221 @@ interface CarouselProps {
|
|
|
805
823
|
}
|
|
806
824
|
declare function Carousel({ children, autoPlay, autoPlayInterval, loop, showIndicators, showArrows, className, ref, }: CarouselProps): react_jsx_runtime.JSX.Element;
|
|
807
825
|
|
|
826
|
+
interface ChatMessageSender {
|
|
827
|
+
name: string;
|
|
828
|
+
avatar?: string;
|
|
829
|
+
/** Glyph for a sender with no photo — an assistant or system sender. */
|
|
830
|
+
icon?: IconName;
|
|
831
|
+
}
|
|
832
|
+
/** bubble: a speech bubble (people talking). block: full width, no bubble — assistant replies that carry Cards, charts, code and links. */
|
|
833
|
+
type ChatMessageLayout = "bubble" | "block";
|
|
834
|
+
/** streaming: still arriving (caret, aria-busy, Stop in the composer). error: delivery failed. */
|
|
835
|
+
type ChatMessageStatus = "sent" | "streaming" | "error";
|
|
836
|
+
type ChatMessageAction = "copy" | "regenerate" | "thumbs-up" | "thumbs-down" | "retry" | {
|
|
837
|
+
id: string;
|
|
838
|
+
label: string;
|
|
839
|
+
icon: IconName;
|
|
840
|
+
};
|
|
841
|
+
interface ChatMessageSource {
|
|
842
|
+
label: string;
|
|
843
|
+
href: string;
|
|
844
|
+
}
|
|
808
845
|
interface ChatMessage {
|
|
809
846
|
id: string;
|
|
810
|
-
sender:
|
|
811
|
-
name: string;
|
|
812
|
-
avatar?: string;
|
|
813
|
-
};
|
|
847
|
+
sender: ChatMessageSender;
|
|
814
848
|
content: string | ReactNode;
|
|
815
849
|
timestamp: Date;
|
|
816
850
|
isOwn?: boolean;
|
|
851
|
+
/** Overrides the list's defaultLayout for this message. */
|
|
852
|
+
layout?: ChatMessageLayout;
|
|
853
|
+
status?: ChatMessageStatus;
|
|
854
|
+
/** Citation row rendered under the content. */
|
|
855
|
+
sources?: ChatMessageSource[];
|
|
856
|
+
/** Controls under the content — revealed on hover or keyboard focus, always in the DOM. */
|
|
857
|
+
actions?: ChatMessageAction[];
|
|
817
858
|
}
|
|
818
859
|
interface ChatMessageListProps {
|
|
819
860
|
messages: ChatMessage[];
|
|
820
861
|
typingUser?: string;
|
|
821
862
|
showInput?: boolean;
|
|
822
863
|
onSend?: (text: string) => void;
|
|
864
|
+
/** A built-in action id ("copy", "regenerate", …) or a custom action's id. */
|
|
865
|
+
onAction?: (messageId: string, action: string) => void;
|
|
866
|
+
/** While a reply is arriving: send is disabled and a Stop control appears (calls onStop). */
|
|
867
|
+
busy?: boolean;
|
|
868
|
+
onStop?: () => void;
|
|
869
|
+
/** The attachment and voice controls render only when a handler is given. */
|
|
870
|
+
onAttach?: () => void;
|
|
871
|
+
onVoice?: () => void;
|
|
872
|
+
placeholder?: string;
|
|
873
|
+
/** Starter prompts; clicking one sends it. Part of the empty state, and optionally shown after every reply. */
|
|
874
|
+
suggestions?: string[];
|
|
875
|
+
/** Default "empty-only". */
|
|
876
|
+
suggestionsMode?: "empty-only" | "always";
|
|
877
|
+
/** Replaces the default empty state (an EmptyState with the suggestions). */
|
|
878
|
+
emptyState?: ReactNode;
|
|
879
|
+
/** Layout for messages that do not set their own. Default "bubble". */
|
|
880
|
+
defaultLayout?: ChatMessageLayout;
|
|
881
|
+
/** Hook for markdown or custom rendering of a message's content. */
|
|
882
|
+
renderContent?: (message: ChatMessage) => ReactNode;
|
|
883
|
+
/** Keep the newest message in view while the reader is at the bottom; otherwise offer "Jump to latest". Default true. */
|
|
884
|
+
autoScroll?: boolean;
|
|
885
|
+
className?: string;
|
|
886
|
+
}
|
|
887
|
+
declare function ChatMessageList({ messages, typingUser, showInput, onSend, onAction, busy, onStop, onAttach, onVoice, placeholder, suggestions, suggestionsMode, emptyState, defaultLayout, renderContent, autoScroll, className, }: ChatMessageListProps): react_jsx_runtime.JSX.Element;
|
|
888
|
+
|
|
889
|
+
type ChatPanelStatusTone = "success" | "warning" | "error" | "neutral";
|
|
890
|
+
interface ChatPanelProps {
|
|
891
|
+
/** Heading text, rendered as an h2 whose id is `${id}-title` — pass that id to the surface's labelledBy. */
|
|
892
|
+
title: string;
|
|
893
|
+
/** Short line under the title: the model, the team, "Support". */
|
|
894
|
+
description?: string;
|
|
895
|
+
/** Presence or health beside the title, rendered with StatusDot. */
|
|
896
|
+
status?: {
|
|
897
|
+
label: string;
|
|
898
|
+
tone?: ChatPanelStatusTone;
|
|
899
|
+
};
|
|
900
|
+
/** Leading visual: a curated icon name or an element such as an Avatar. Default "sparkles". */
|
|
901
|
+
icon?: IconName | ReactNode;
|
|
902
|
+
/** Extra header controls, rendered before the built-in ones. */
|
|
903
|
+
actions?: ReactNode;
|
|
904
|
+
onClose: () => void;
|
|
905
|
+
/** Shows a "New conversation" control when given. */
|
|
906
|
+
onNewConversation?: () => void;
|
|
907
|
+
/** Shows an expand / collapse control when given (CornerPanel and full-page layouts use it). */
|
|
908
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
909
|
+
expanded?: boolean;
|
|
910
|
+
/** The conversation — usually ChatMessageList. Laid out as a column that fills the panel. */
|
|
911
|
+
children: ReactNode;
|
|
912
|
+
/** Small muted footer, e.g. an AI disclaimer. */
|
|
913
|
+
footer?: ReactNode;
|
|
914
|
+
id?: string;
|
|
915
|
+
className?: string;
|
|
916
|
+
}
|
|
917
|
+
/**
|
|
918
|
+
* The chrome around a conversation: header (icon, title, status, description,
|
|
919
|
+
* controls), a body that fills the remaining height, and an optional footer.
|
|
920
|
+
* Surface-agnostic — it never positions itself. Put it inside a non-modal
|
|
921
|
+
* Drawer, a CornerPanel, or a page column, and give ChatMessageList as children.
|
|
922
|
+
*/
|
|
923
|
+
declare function ChatPanel({ title, description, status, icon, actions, onClose, onNewConversation, onExpandedChange, expanded, children, footer, id, className, }: ChatPanelProps): react_jsx_runtime.JSX.Element;
|
|
924
|
+
|
|
925
|
+
/**
|
|
926
|
+
* Where the window anchors. bottom-right / bottom-left: above a bubble or pill Launcher
|
|
927
|
+
* (anchorInset keeps the launcher clear). top-right / top-left: hanging under the top bar,
|
|
928
|
+
* for an assistant opened from a Navbar button — pass offset.y as the bar's height plus a gap.
|
|
929
|
+
* right / left: beside a ribbon Launcher on that edge, inset by the ribbon's width; `align`
|
|
930
|
+
* places it near the end of the edge or mid-edge, like the ribbon.
|
|
931
|
+
*/
|
|
932
|
+
type CornerPanelEdge = "bottom-right" | "bottom-left" | "top-right" | "top-left" | "right" | "left";
|
|
933
|
+
interface CornerPanelProps {
|
|
934
|
+
open: boolean;
|
|
935
|
+
onClose: () => void;
|
|
936
|
+
/** Where to anchor — match the Launcher's edge (see CornerPanelEdge). Default "bottom-right". */
|
|
937
|
+
edge?: CornerPanelEdge;
|
|
938
|
+
/** Side edges (right / left) only: near the end of the edge (default) or mid-edge — match the ribbon's align. */
|
|
939
|
+
align?: "end" | "center";
|
|
940
|
+
/** Default "380px". */
|
|
941
|
+
width?: string;
|
|
942
|
+
/** Default "600px"; never taller than the viewport minus the offsets. */
|
|
943
|
+
height?: string;
|
|
944
|
+
/** Distance from the viewport edges — match the Launcher's offset. Default var(--ds-space-4) on both axes. */
|
|
945
|
+
offset?: {
|
|
946
|
+
x?: string;
|
|
947
|
+
y?: string;
|
|
948
|
+
};
|
|
949
|
+
/** Space reserved below the window for the launcher: its height plus a gap. Default the lg launcher (48px) + one step; pass "0px" when no launcher sits in the corner. */
|
|
950
|
+
anchorInset?: string;
|
|
951
|
+
/** Fills the viewport, inset by offset. Controlled — ChatPanel's expand control drives it. */
|
|
952
|
+
expanded?: boolean;
|
|
953
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
954
|
+
/** id applied to the dialog element, for the Launcher's aria-controls. */
|
|
955
|
+
id?: string;
|
|
956
|
+
/** id of the element that names the dialog — ChatPanel's heading. */
|
|
957
|
+
labelledBy: string;
|
|
958
|
+
/** Keep the window mounted while closed (hidden, out of the tab order) so drafts and scroll survive. Default true — this surface exists for persistent assistants. */
|
|
959
|
+
keepMounted?: boolean;
|
|
960
|
+
/** Render inside this element (absolute) instead of document.body (fixed) — preview frames. */
|
|
961
|
+
container?: Element | DocumentFragment;
|
|
962
|
+
children: ReactNode;
|
|
963
|
+
className?: string;
|
|
964
|
+
}
|
|
965
|
+
/**
|
|
966
|
+
* A compact non-modal window anchored above a bubble or pill Launcher — the
|
|
967
|
+
* Intercom shape. Same contract as Drawer with modal={false}: the page stays
|
|
968
|
+
* operable, nothing traps focus, Escape closes only while focus is inside,
|
|
969
|
+
* focus returns to the opener, an outside click does nothing. Toasts move above
|
|
970
|
+
* it while it is open. At phone width it is the modal Sheet.
|
|
971
|
+
*/
|
|
972
|
+
declare function CornerPanel({ open, onClose, edge, align, width, height, offset, anchorInset, expanded, id, labelledBy, keepMounted, container, children, className, }: CornerPanelProps): react_jsx_runtime.JSX.Element;
|
|
973
|
+
|
|
974
|
+
type AsidePanelSide = "right" | "left";
|
|
975
|
+
type AsidePanelPosition = "flush" | "floating";
|
|
976
|
+
interface AsidePanelProps {
|
|
977
|
+
open: boolean;
|
|
978
|
+
onClose: () => void;
|
|
979
|
+
/** Which side of the content column. Default "right". Pass the same value as AppShell's asideSide. */
|
|
980
|
+
side?: AsidePanelSide;
|
|
981
|
+
/** Column width while open. Default "420px" — the same as the side panel. */
|
|
982
|
+
width?: string;
|
|
983
|
+
/**
|
|
984
|
+
* flush (default, edge-to-edge with one border) or floating (inset by the shell gutter, rounded, glass —
|
|
985
|
+
* the same card as a floating Sidebar). Give it the Sidebar's position: the column is the sidebar's mirror.
|
|
986
|
+
*/
|
|
987
|
+
position?: AsidePanelPosition;
|
|
988
|
+
/** Whether the navbar above is floating — its bottom gutter is then the gap, so the floating column drops its top inset (as Sidebar does). */
|
|
989
|
+
navbarFloating?: boolean;
|
|
990
|
+
/** Whether the sidebar is floating — a left-docked floating column then drops its outer gutter, because the sidebar's own gutter is the gap (as PageHeader does). */
|
|
991
|
+
sidebarFloating?: boolean;
|
|
992
|
+
/** Below this breakpoint the page is too narrow to share: the panel renders as a non-modal Drawer instead (and as the modal Sheet at or below sm, as Drawer does). Default "lg". */
|
|
993
|
+
collapseBelow?: BreakpointKey;
|
|
994
|
+
/** Keep the content mounted while closed (hidden) so drafts and scroll survive. Default true — the column exists for persistent assistants. */
|
|
995
|
+
keepMounted?: boolean;
|
|
996
|
+
/** Let the user drag the page-side edge to widen the column, between width and maxWidth. Default true. */
|
|
997
|
+
resizable?: boolean;
|
|
998
|
+
/** Upper bound for resizing. Default 60% of the viewport (or of the container). */
|
|
999
|
+
maxWidth?: string;
|
|
1000
|
+
/** Accessible name of the landmark — ChatPanel's heading id. */
|
|
1001
|
+
labelledBy: string;
|
|
1002
|
+
id?: string;
|
|
1003
|
+
children: ReactNode;
|
|
823
1004
|
className?: string;
|
|
824
1005
|
}
|
|
825
|
-
|
|
1006
|
+
/**
|
|
1007
|
+
* A docked column beside the page content: the page narrows to make room
|
|
1008
|
+
* instead of being covered (the Copilot / Sidekick layout). In-flow, so it is
|
|
1009
|
+
* a landmark (`role="complementary"`), not a dialog. Same non-modal contract as
|
|
1010
|
+
* Drawer modal={false}: no focus trap, Escape closes only from inside, focus
|
|
1011
|
+
* returns to the opener, an outside click does nothing, drafts survive closing.
|
|
1012
|
+
* Below `collapseBelow` it becomes the overlay Drawer; on phones the Sheet.
|
|
1013
|
+
*/
|
|
1014
|
+
declare function AsidePanel({ open, onClose, side, width, position, navbarFloating, sidebarFloating, collapseBelow, keepMounted, resizable, maxWidth, labelledBy, id, children, className, }: AsidePanelProps): react_jsx_runtime.JSX.Element;
|
|
826
1015
|
|
|
827
1016
|
interface StackedListItem {
|
|
828
1017
|
id: string | number;
|
|
829
1018
|
leading?: ReactNode;
|
|
830
1019
|
title: string;
|
|
831
1020
|
subtitle?: string;
|
|
1021
|
+
/** Third line under the subtitle (a message preview, a summary). Rows with one align their leading element to the top. */
|
|
1022
|
+
description?: string;
|
|
832
1023
|
meta?: ReactNode;
|
|
833
1024
|
actions?: ReactNode;
|
|
1025
|
+
/**
|
|
1026
|
+
* Read/unread emphasis for inbox-style lists: unread rows take a bold title
|
|
1027
|
+
* and an accent dot before the meta; read rows drop the title to secondary
|
|
1028
|
+
* text. Leave undefined for lists without that distinction.
|
|
1029
|
+
*/
|
|
1030
|
+
unread?: boolean;
|
|
1031
|
+
/** Marks this row as the current one (aria-current). `selectedId` on the list is the usual way to set it. */
|
|
1032
|
+
selected?: boolean;
|
|
834
1033
|
onClick?: () => void;
|
|
835
1034
|
}
|
|
836
1035
|
interface StackedListProps {
|
|
837
1036
|
items: StackedListItem[];
|
|
838
1037
|
divided?: boolean;
|
|
839
1038
|
flush?: boolean;
|
|
1039
|
+
/** The current row in a master-detail list. Its treatment follows the theme's in-page vertical active style (rail, tint or pill), like Tabs. */
|
|
1040
|
+
selectedId?: string | number;
|
|
840
1041
|
className?: string;
|
|
841
1042
|
}
|
|
842
1043
|
declare const StackedList: react.ForwardRefExoticComponent<StackedListProps & react.RefAttributes<HTMLUListElement>>;
|
|
@@ -873,6 +1074,47 @@ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
|
873
1074
|
*/
|
|
874
1075
|
declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
875
1076
|
|
|
1077
|
+
type LauncherVariant = "bubble" | "pill" | "ribbon";
|
|
1078
|
+
type LauncherEdge = "bottom-right" | "bottom-left" | "right" | "left" | "bottom";
|
|
1079
|
+
type LauncherWhenOpen = "close" | "hide" | "keep";
|
|
1080
|
+
type LauncherTone = "neutral" | "neutral-accent" | "subtle" | "accent";
|
|
1081
|
+
type LauncherSize = "md" | "lg";
|
|
1082
|
+
interface LauncherProps {
|
|
1083
|
+
/** Visual form. bubble: a square the height of a Button, icon only. pill: icon + label at Button proportions. ribbon: flush to an edge — sideways label on a side edge, horizontal on the bottom edge. Default "bubble". */
|
|
1084
|
+
variant?: LauncherVariant;
|
|
1085
|
+
/** Height, matching Button's md (40px) and lg (48px) steps; the bubble is that size square. Default "lg". Ribbons are unaffected. */
|
|
1086
|
+
size?: LauncherSize;
|
|
1087
|
+
/** Colour weight. neutral (default): surface background, border, primary text — present without competing with the page's primary action. neutral-accent: the same surface with only the icon in the accent (gradient included). subtle: accent tint. accent: the primary fill (gradient included), for products that want the assistant prominent. */
|
|
1088
|
+
tone?: LauncherTone;
|
|
1089
|
+
/** bubble and pill accept the two bottom corners; ribbon accepts right, left and bottom. Default "bottom-right" (or "right" for ribbon). */
|
|
1090
|
+
edge?: LauncherEdge;
|
|
1091
|
+
/** ribbon only: where along the edge. "end" (default) sits near the bottom of a side edge or near the right of the bottom edge; "center" is mid-edge. */
|
|
1092
|
+
align?: "center" | "end";
|
|
1093
|
+
/** Accessible name for every variant; visible text for pill and ribbon. */
|
|
1094
|
+
label: string;
|
|
1095
|
+
/** bubble and pill default to "sparkles" (curated; the Feather pack substitutes a star). A ribbon shows only its label unless an icon is given. */
|
|
1096
|
+
icon?: IconName | ReactNode;
|
|
1097
|
+
/** Unread count (number) or a dot (true). */
|
|
1098
|
+
badge?: number | boolean;
|
|
1099
|
+
open: boolean;
|
|
1100
|
+
onOpenChange: (open: boolean) => void;
|
|
1101
|
+
/** id of the panel this launcher controls — emitted as aria-controls while open (the panel may not be in the DOM while closed). */
|
|
1102
|
+
panelId?: string;
|
|
1103
|
+
/** While the panel is open: close morphs the launcher into a close button (default); hide keeps it mounted but invisible and out of the tab order; keep leaves it unchanged. */
|
|
1104
|
+
whenOpen?: LauncherWhenOpen;
|
|
1105
|
+
/** Distance from the edges. Default var(--ds-space-4) on both axes; safe-area insets are added on top. */
|
|
1106
|
+
offset?: {
|
|
1107
|
+
x?: string;
|
|
1108
|
+
y?: string;
|
|
1109
|
+
};
|
|
1110
|
+
/** Keyboard shortcut such as "mod+." (mod is ⌘ on macOS, Ctrl elsewhere; avoid keys the browser owns, like Ctrl+J). Toggles when closed; with the panel open it moves focus into the panel, or closes when focus is already inside. Shown in the bubble's tooltip. */
|
|
1111
|
+
shortcut?: string;
|
|
1112
|
+
/** Render inside this element (absolute) instead of document.body (fixed) — preview frames and the BuilderShell. */
|
|
1113
|
+
container?: Element | DocumentFragment;
|
|
1114
|
+
className?: string;
|
|
1115
|
+
}
|
|
1116
|
+
declare function Launcher({ variant, size, tone, edge, align, label, icon, badge, open, onOpenChange, panelId, whenOpen, offset, shortcut, container, className, }: LauncherProps): react.ReactPortal | null;
|
|
1117
|
+
|
|
876
1118
|
type TabsOverflow = "scroll" | "hidden" | "truncate";
|
|
877
1119
|
interface Tab {
|
|
878
1120
|
id: string;
|
|
@@ -993,6 +1235,10 @@ interface SidebarContextValue {
|
|
|
993
1235
|
onCollapsedChange: (collapsed: boolean) => void;
|
|
994
1236
|
portalContainer: Element | null;
|
|
995
1237
|
type: SidebarType;
|
|
1238
|
+
/** flush or floating — with a floating navbar, a minimal flush sidebar drops its top inset; floating keeps it inside the card. */
|
|
1239
|
+
position: SidebarPosition;
|
|
1240
|
+
/** Whether the adjacent navbar is floating (the floating navbar carries its own inset below it). */
|
|
1241
|
+
navbarFloating: boolean;
|
|
996
1242
|
navSize?: "sm" | "md";
|
|
997
1243
|
}
|
|
998
1244
|
declare function useSidebar(): SidebarContextValue | null;
|
|
@@ -1001,7 +1247,13 @@ interface SidebarProps {
|
|
|
1001
1247
|
header?: ReactNode;
|
|
1002
1248
|
footer?: ReactNode;
|
|
1003
1249
|
children: ReactNode;
|
|
1250
|
+
/** Controlled collapse state. */
|
|
1004
1251
|
collapsed?: boolean;
|
|
1252
|
+
/**
|
|
1253
|
+
* Initial collapse state for a locally-owned Sidebar. Passing this opts out of
|
|
1254
|
+
* the AppShell's responsive collapse (auto-rail between md and lg) in favour of
|
|
1255
|
+
* plain local state.
|
|
1256
|
+
*/
|
|
1005
1257
|
defaultCollapsed?: boolean;
|
|
1006
1258
|
onCollapsedChange?: (collapsed: boolean) => void;
|
|
1007
1259
|
variant?: SidebarVariant;
|
|
@@ -1061,15 +1313,24 @@ interface SegmentedControlOption {
|
|
|
1061
1313
|
label: string;
|
|
1062
1314
|
disabled?: boolean;
|
|
1063
1315
|
}
|
|
1316
|
+
type SegmentedControlSize = "xs" | "sm" | "md" | "lg";
|
|
1064
1317
|
interface SegmentedControlProps {
|
|
1065
1318
|
value: string;
|
|
1066
1319
|
onChange: (value: string) => void;
|
|
1067
1320
|
options: SegmentedControlOption[];
|
|
1068
|
-
|
|
1321
|
+
/** xs is for dense tool chrome (toolbars, inspectors): 24px tall. */
|
|
1322
|
+
size?: SegmentedControlSize;
|
|
1069
1323
|
variant?: "default" | "ghost";
|
|
1324
|
+
/** Stretch to the container and share the width equally between options. */
|
|
1325
|
+
fullWidth?: boolean;
|
|
1326
|
+
/**
|
|
1327
|
+
* Called with an option's value while the pointer is over it and with null
|
|
1328
|
+
* when it leaves, so a picker can preview a choice before committing it.
|
|
1329
|
+
*/
|
|
1330
|
+
onHoverChange?: (value: string | null) => void;
|
|
1070
1331
|
className?: string;
|
|
1071
1332
|
}
|
|
1072
|
-
declare function SegmentedControl({ value, onChange, options, size, variant, className, }: SegmentedControlProps): react_jsx_runtime.JSX.Element;
|
|
1333
|
+
declare function SegmentedControl({ value, onChange, options, size, variant, fullWidth, onHoverChange, className, }: SegmentedControlProps): react_jsx_runtime.JSX.Element;
|
|
1073
1334
|
|
|
1074
1335
|
interface BottomNavItem {
|
|
1075
1336
|
label: string;
|
|
@@ -1257,7 +1518,15 @@ interface DialogProps {
|
|
|
1257
1518
|
size?: DialogSize;
|
|
1258
1519
|
alert?: boolean;
|
|
1259
1520
|
container?: Element | DocumentFragment;
|
|
1260
|
-
/**
|
|
1521
|
+
/**
|
|
1522
|
+
* Primary action for Enter. Dialog owns the form's default button, so Enter in
|
|
1523
|
+
* any single-line field runs this regardless of how the footer is typed, and a
|
|
1524
|
+
* footer button without an explicit `type` never submits when clicked. Ignored
|
|
1525
|
+
* for `variant="destructive"`: Enter in a field must not perform a destructive
|
|
1526
|
+
* action (Apple HIG: Cancel is the default; APG: focus the least destructive
|
|
1527
|
+
* action). If the footer has a `type="submit"` button and it is disabled, Enter
|
|
1528
|
+
* does nothing, mirroring native implicit submission.
|
|
1529
|
+
*/
|
|
1261
1530
|
onSubmit?: () => void;
|
|
1262
1531
|
}
|
|
1263
1532
|
declare function Dialog({ open, onClose, title, description, children, footer, variant, size, alert, container, onSubmit }: DialogProps): react.ReactPortal | null;
|
|
@@ -1286,6 +1555,30 @@ interface DrawerProps {
|
|
|
1286
1555
|
mobile?: "sheet" | "panel";
|
|
1287
1556
|
/** Snap points for the phone-width Sheet, as fractions of the viewport. Default [0.5, 0.92]. */
|
|
1288
1557
|
snapPoints?: number[];
|
|
1558
|
+
/**
|
|
1559
|
+
* Default true. false makes the drawer a persistent, non-modal panel the user works alongside
|
|
1560
|
+
* (an assistant, help): no backdrop, no scroll lock, no focus trap — the page stays operable.
|
|
1561
|
+
* It closes only on Escape while focus is inside it, its close control, or onClose from the
|
|
1562
|
+
* consumer; an outside click does nothing. At phone width the Sheet is always modal.
|
|
1563
|
+
*/
|
|
1564
|
+
modal?: boolean;
|
|
1565
|
+
/**
|
|
1566
|
+
* Keep the panel in the DOM while closed (hidden and out of the tab order) so a half-typed
|
|
1567
|
+
* message, the scroll position and any in-progress rendering survive close and reopen.
|
|
1568
|
+
* Default false — the panel unmounts after its close transition, as it always has.
|
|
1569
|
+
*/
|
|
1570
|
+
keepMounted?: boolean;
|
|
1571
|
+
/** id applied to the dialog element, for an opener's aria-controls. */
|
|
1572
|
+
id?: string;
|
|
1573
|
+
/** id of the element that names the dialog when no title is rendered — e.g. ChatPanel's heading. */
|
|
1574
|
+
labelledBy?: string;
|
|
1575
|
+
/**
|
|
1576
|
+
* Let the user drag the page-side edge to widen a non-modal side drawer,
|
|
1577
|
+
* between `width` and maxWidth (default 60% of the viewport). Default false —
|
|
1578
|
+
* ordinary drawers keep the one shared width. Ignored when modal or at phone width.
|
|
1579
|
+
*/
|
|
1580
|
+
resizable?: boolean;
|
|
1581
|
+
maxWidth?: string;
|
|
1289
1582
|
}
|
|
1290
1583
|
declare function Drawer(props: DrawerProps): react_jsx_runtime.JSX.Element;
|
|
1291
1584
|
|
|
@@ -1375,8 +1668,14 @@ interface SheetProps {
|
|
|
1375
1668
|
container?: Element | DocumentFragment;
|
|
1376
1669
|
/** Remove default content padding — use when the child handles its own spacing. */
|
|
1377
1670
|
flush?: boolean;
|
|
1671
|
+
/** Keep the sheet in the DOM while closed (hidden, out of the tab order) so its content's state survives close and reopen. Default false. */
|
|
1672
|
+
keepMounted?: boolean;
|
|
1673
|
+
/** id applied to the dialog element, for an opener's aria-controls. */
|
|
1674
|
+
id?: string;
|
|
1675
|
+
/** id of the element that names the dialog when no title is rendered. */
|
|
1676
|
+
labelledBy?: string;
|
|
1378
1677
|
}
|
|
1379
|
-
declare function Sheet({ open, onClose, title, children, footer, snapPoints, container, flush }: SheetProps): react.ReactPortal | null;
|
|
1678
|
+
declare function Sheet({ open, onClose, title, children, footer, snapPoints, container, flush, keepMounted, id, labelledBy }: SheetProps): react.ReactPortal | null;
|
|
1380
1679
|
|
|
1381
1680
|
interface Notification {
|
|
1382
1681
|
id: string;
|
|
@@ -1569,6 +1868,32 @@ interface AppShellContextValue {
|
|
|
1569
1868
|
isMobile: boolean;
|
|
1570
1869
|
/** True only for tablet-sized viewports (between sm and md breakpoints). Drawer shows here, not on small mobile. */
|
|
1571
1870
|
isTablet: boolean;
|
|
1871
|
+
/**
|
|
1872
|
+
* Effective sidebar collapse for a traditional Sidebar rendered in the shell.
|
|
1873
|
+
* The user's explicit choice wins; otherwise the auto tier applies — collapsed
|
|
1874
|
+
* to a rail at or below the `lg` breakpoint, expanded above it. Lives here rather
|
|
1875
|
+
* than in Sidebar so it survives the sidebar unmounting in the drawer range.
|
|
1876
|
+
*/
|
|
1877
|
+
sidebarCollapsed: boolean;
|
|
1878
|
+
/** Records an explicit user choice. Overrides the auto tier in both directions for the session. */
|
|
1879
|
+
setSidebarCollapsed: (collapsed: boolean) => void;
|
|
1880
|
+
/** True while a docked AsidePanel in the aside slot is open beside the content. Pages may hide non-essential chrome on it. */
|
|
1881
|
+
asideOpen: boolean;
|
|
1882
|
+
/** Set by AsidePanel; not for pages to call. */
|
|
1883
|
+
setAsideOpen: (open: boolean) => void;
|
|
1884
|
+
/** Which side the aside slot is on (AppShell's asideSide). */
|
|
1885
|
+
asideSide: "right" | "left";
|
|
1886
|
+
/** True while the docked AsidePanel is floating — a floating PageHeader drops its gutter on that side, as it does beside a floating Sidebar. */
|
|
1887
|
+
asideFloating: boolean;
|
|
1888
|
+
/** Set by AsidePanel; not for pages to call. */
|
|
1889
|
+
setAsideFloating: (floating: boolean) => void;
|
|
1890
|
+
/**
|
|
1891
|
+
* The shell's root element, for previews that need to render overlays inside their frame
|
|
1892
|
+
* (the dashboard builder passes it to Launcher, CornerPanel and Drawer as `container`).
|
|
1893
|
+
* Components never read it themselves: a container moves the toast-inset claim onto that
|
|
1894
|
+
* element, where a body-level ToastProvider cannot see it.
|
|
1895
|
+
*/
|
|
1896
|
+
container: HTMLElement | null;
|
|
1572
1897
|
}
|
|
1573
1898
|
declare function useAppShell(): AppShellContextValue | null;
|
|
1574
1899
|
type AppShellLayout = "sidebar" | "stacked" | "sidebar-header" | "multi-column";
|
|
@@ -1585,6 +1910,16 @@ interface AppShellProps {
|
|
|
1585
1910
|
mobileMenuFlush?: boolean;
|
|
1586
1911
|
navbar?: ReactNode;
|
|
1587
1912
|
mobileNav?: ReactNode;
|
|
1913
|
+
/** A docked AsidePanel rendered beside the content column: the page narrows to make room. Rendered at every width — the panel decides its own fallbacks. */
|
|
1914
|
+
aside?: ReactNode;
|
|
1915
|
+
/** Which side of the content the aside sits on. Default "right". Pass the same value to the AsidePanel. */
|
|
1916
|
+
asideSide?: "right" | "left";
|
|
1917
|
+
/**
|
|
1918
|
+
* A Launcher for the assistant. Rendered only above the sm breakpoint — a conditional render,
|
|
1919
|
+
* because the Launcher portals out of any wrapper — so on phones the Navbar button is the entry point
|
|
1920
|
+
* and it never collides with BottomNav.
|
|
1921
|
+
*/
|
|
1922
|
+
launcher?: ReactNode;
|
|
1588
1923
|
children: ReactNode;
|
|
1589
1924
|
className?: string;
|
|
1590
1925
|
/** When false, main area won't scroll — use for full-height layouts like ResizablePanelGroup. Default true. */
|
|
@@ -1678,4 +2013,4 @@ interface UseTextOverflowResult {
|
|
|
1678
2013
|
*/
|
|
1679
2014
|
declare function useTextOverflow(options?: UseTextOverflowOptions): UseTextOverflowResult;
|
|
1680
2015
|
|
|
1681
|
-
export { Accordion, ActionPanel, ActionPanelGroup, Alert, type AlertPlacement, AppShell, type AppShellContextValue, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarStatus, Badge, type BadgePaletteColor, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, type BreadcrumbItem$1 as BreadcrumbItem, Breadcrumbs, type BreadcrumbsSeparator, type BreadcrumbsSize, type BreadcrumbsVariant, BreakpointKey, BulkActionBar, Button, ButtonSizeContext, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardSelectType, CardTitle, type CardVariant, Carousel, ChatMessageList, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, DEFAULT_DATE_RANGE_PRESETS, DataList, DatePicker, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DescriptionItem, DescriptionList, type DescriptionListOrientation, type DescriptionListSize, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, type DropdownMenuDivider, type DropdownMenuEntry, type DropdownMenuItem, EmptyState, Field, type FieldControlProps, type FieldProps, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, Kbd, Label, Link, type LinkProps, MentionInput, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarSize, type NavbarType, type NavbarVariant, NotificationCenter, NumberInput, PageContainer, type PageContainerWidth, PageHeader, type PageHeaderBehavior, type PageHeaderIntensity, type PageHeaderProps, type PageHeaderVariant, Pagination, PinInput, Popover, Progress, type PromiseToastMessages, RadioGroup, Rating, ScrollArea, SectionHeading, SegmentedControl, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarNavSize, type SidebarPosition, type SidebarSection, type SidebarType, Skeleton, SliderRange, Spinner, StackedList, StatsCard, StatusDot, type StatusDotVariant, Stepper, type Tab, Table, type TableDensity, type TableProps, Tabs, Tag, TagInput, type TagPaletteColor, type TagVariant, TextOverflow, type TextOverflowProps, Textarea, TimePicker, Timeline, Toast, type ToastAction, type ToastApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastVariant, Toggle, Tooltip, Tour, TransferList, TreeView, type UseTextOverflowOptions, type UseTextOverflowResult, useAppShell, useFormContext, useSidebar, useTextOverflow, useToast };
|
|
2016
|
+
export { Accordion, ActionPanel, ActionPanelGroup, Alert, type AlertPlacement, AppShell, type AppShellContextValue, AsidePanel, type AsidePanelProps, type AsidePanelSide, Avatar, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarStatus, Badge, type BadgePaletteColor, type BadgeSize, type BadgeVariant, BottomNav, type BottomNavItem, type BreadcrumbItem$1 as BreadcrumbItem, Breadcrumbs, type BreadcrumbsSeparator, type BreadcrumbsSize, type BreadcrumbsVariant, BreakpointKey, BulkActionBar, Button, ButtonSizeContext, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardSelectType, CardTitle, type CardVariant, Carousel, type ChatMessage, type ChatMessageAction, type ChatMessageLayout, ChatMessageList, type ChatMessageSender, type ChatMessageSource, type ChatMessageStatus, ChatPanel, type ChatPanelProps, type ChatPanelStatusTone, Checkbox, CheckboxGroup, CheckboxGroupItem, CodeBlock, Collapsible, ColorPicker, type Column, Combobox, CommandPalette, ContextMenu, CornerPanel, type CornerPanelEdge, type CornerPanelProps, DEFAULT_DATE_RANGE_PRESETS, DataList, DatePicker, type DateRange, DateRangePicker, type DateRangePickerProps, type DateRangePreset, type DescriptionItem, DescriptionList, type DescriptionListOrientation, type DescriptionListSize, Dialog, Divider, Dock, Drawer, Dropdown, DropdownMenu, type DropdownMenuDivider, type DropdownMenuEntry, type DropdownMenuItem, EmptyState, Field, type FieldControlProps, type FieldProps, FileUpload, FormWrapper, HoverCard, InlineFieldError, Input, Kbd, Label, Launcher, type LauncherEdge, type LauncherProps, type LauncherVariant, type LauncherWhenOpen, Link, type LinkProps, MentionInput, MobileHeaderMenu, type MobileHeaderMenuItemData, type MobileHeaderMenuType, NavItem, type NavItemProps, type NavItemType, NavMenu, type NavMenuItem, Navbar, type NavbarSize, type NavbarType, type NavbarVariant, NotificationCenter, NumberInput, PageContainer, type PageContainerWidth, PageHeader, type PageHeaderBehavior, type PageHeaderIntensity, type PageHeaderProps, type PageHeaderVariant, Pagination, PinInput, Popover, Progress, type PromiseToastMessages, RadioGroup, Rating, ScrollArea, SectionHeading, SegmentedControl, Sheet, Sidebar, type SidebarContextValue, type SidebarItem, SidebarNav, type SidebarNavSize, type SidebarPosition, type SidebarSection, type SidebarType, Skeleton, SliderRange, Spinner, StackedList, StatsCard, StatusDot, type StatusDotVariant, Stepper, type Tab, Table, type TableDensity, type TableProps, Tabs, Tag, TagInput, type TagPaletteColor, type TagVariant, TextOverflow, type TextOverflowProps, Textarea, TimePicker, Timeline, Toast, type ToastAction, type ToastApi, type ToastOptions, type ToastPosition, ToastProvider, type ToastVariant, Toggle, Tooltip, Tour, TransferList, TreeView, type UseTextOverflowOptions, type UseTextOverflowResult, useAppShell, useFormContext, useSidebar, useTextOverflow, useToast };
|