ai-design-system 0.1.34 → 0.1.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.
Files changed (2) hide show
  1. package/dist/index.d.ts +628 -0
  2. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -690,6 +690,634 @@ export interface AIDocEditorMultiTabProps {
690
690
 
691
691
  export const AIDocEditor: React.FC<any>;
692
692
 
693
+ export const WorkflowToolbarActions: React.FC<any>;
694
+ export const WorkflowToolbar: React.FC<any>;
695
+
696
+ // From components/composites/ToolCallDisplay/ToolCallDisplay.tsx
697
+ export interface ToolCall {
698
+ id: string
699
+ name: string
700
+ args: Record<string, unknown>
701
+ result?: string
702
+ status: "pending" | "completed" | "error"
703
+ }
704
+
705
+ export interface ToolCallDisplayProps {
706
+ /**
707
+ * Tool call data to display
708
+ */
709
+ toolCall: ToolCall
710
+ /**
711
+ * Whether the tool call is initially expanded
712
+ */
713
+ defaultExpanded?: boolean
714
+ }
715
+
716
+ export const ToolCallDisplay: React.FC<ToolCallDisplayProps>;
717
+
718
+ // From components/composites/UserMessage/UserMessage.tsx
719
+ export interface UserMessageData {
720
+ id: string
721
+ content: string
722
+ avatarSrc?: string
723
+ avatarName?: string
724
+ }
725
+
726
+ export interface UserMessageProps {
727
+ /**
728
+ * User message data to display
729
+ */
730
+ message: UserMessageData
731
+ /**
732
+ * Whether to show avatar
733
+ */
734
+ showAvatar?: boolean
735
+ }
736
+
737
+ export const UserMessage: React.FC<UserMessageProps>;
738
+
739
+ // From components/composites/ThemeSelector/ThemeSelector.tsx
740
+ export interface Theme {
741
+ label: string
742
+ value: string
743
+ }
744
+
745
+ export interface ThemeSelectorProps {
746
+ /**
747
+ * Available theme options
748
+ */
749
+ themes: Theme[]
750
+ /**
751
+ * Currently selected theme value
752
+ */
753
+ value?: string
754
+ /**
755
+ * Callback when theme selection changes
756
+ */
757
+ onValueChange?: (value: string) => void
758
+ /**
759
+ * Placeholder text when no theme is selected
760
+ */
761
+ placeholder?: string
762
+ /**
763
+ * Additional CSS classes
764
+ */
765
+ className?: string
766
+ }
767
+
768
+ export const ThemeSelector: React.FC<ThemeSelectorProps>;
769
+
770
+ // From components/composites/TransitionNode/TransitionNode.tsx
771
+ export type TransitionNodeConfig = {
772
+ /** For conditional transitions: form field comparison e.g. "{{record.orderValue}} > {{record.acceptedRange}}" */
773
+ condition?: string;
774
+ /** For human transitions: roles allowed to approve */
775
+ allowed_roles?: string[];
776
+ /** For scheduled transitions: delay in seconds */
777
+ delay_seconds?: number;
778
+ /** For plugin transitions: plugin identifier */
779
+ plugin_id?: string;
780
+ /** For plugin transitions: plugin input values */
781
+ plugin_inputs?: Record<string, unknown>;
782
+ };
783
+
784
+ export type TransitionNodeData = {
785
+ label: string;
786
+ description?: string;
787
+ type: "transition";
788
+ /** Transition execution type */
789
+ transitionType?: "human" | "conditional" | "scheduled" | "plugin";
790
+ /** Transition-type-specific configuration */
791
+ config?: TransitionNodeConfig;
792
+ status?: "idle" | "running" | "success" | "error";
793
+ enabled?: boolean;
794
+ };
795
+
796
+ export const TransitionNode: React.FC<any>;
797
+
798
+ // From components/composites/TableToolbar/TableToolbar.tsx
799
+ export interface TableToolbarProps {
800
+ table: Table<unknown>
801
+ searchPlaceholder?: string
802
+ searchColumn?: string
803
+ actions?: React.ReactNode
804
+ className?: string
805
+ }
806
+
807
+ export const TableToolbar: React.FC<TableToolbarProps>;
808
+
809
+ // From components/composites/TablePagination/TablePagination.tsx
810
+ export interface TablePaginationProps {
811
+ /**
812
+ * TanStack Table instance
813
+ */
814
+ table: Table<unknown>
815
+ /**
816
+ * Available page size options
817
+ */
818
+ pageSizeOptions?: number[]
819
+ /**
820
+ * Additional CSS classes
821
+ */
822
+ className?: string
823
+ }
824
+
825
+ export const TablePagination: React.FC<TablePaginationProps>;
826
+
827
+ // From components/composites/StatsCard/StatsCard.tsx
828
+ export interface StatsCardProps {
829
+ /**
830
+ * Card title (e.g., "Total Revenue")
831
+ */
832
+ title: string
833
+ /**
834
+ * Main value to display (e.g., "$1,250.00")
835
+ */
836
+ value: string | number
837
+ /**
838
+ * Trend indicator with direction and percentage
839
+ */
840
+ trend?: {
841
+ direction: "up" | "down"
842
+ value: string
843
+ }
844
+ /**
845
+ * Footer content with primary message and secondary description
846
+ */
847
+ footer?: {
848
+ message: string
849
+ description: string
850
+ }
851
+ /**
852
+ * Additional CSS classes
853
+ */
854
+ className?: string
855
+ }
856
+
857
+ export const StatsCard: React.FC<StatsCardProps>;
858
+
859
+ // From components/composites/StateNode/StateNode.tsx
860
+ export type StateNodeData = {
861
+ label: string;
862
+ description?: string;
863
+ type: "state";
864
+ /** True for terminal states — marks workflow completion, no outgoing transitions */
865
+ isTerminal?: boolean;
866
+ status?: "idle" | "running" | "success" | "error";
867
+ enabled?: boolean;
868
+ };
869
+
870
+ export const StateNode: React.FC<any>;
871
+
872
+ // From components/composites/SpecialistMessage/SpecialistMessage.tsx
873
+ export interface SpecialistMessageData {
874
+ id: string
875
+ name: string
876
+ description?: string
877
+ icon?: React.ReactNode
878
+ content: string
879
+ toolCalls?: ToolCall[]
880
+ status: "pending" | "active" | "completed" | "error"
881
+ avatarSrc?: string
882
+ avatarName?: string
883
+ }
884
+
885
+ export interface SpecialistMessageProps {
886
+ /**
887
+ * Specialist message data to display
888
+ */
889
+ message: SpecialistMessageData
890
+ /**
891
+ * Whether this message is nested under an orchestrator
892
+ */
893
+ isNested?: boolean
894
+ /**
895
+ * Whether the specialist message should be open by default
896
+ * @default false
897
+ */
898
+ defaultOpen?: boolean
899
+ /**
900
+ * Whether to show collapse/expand trigger
901
+ * @default false
902
+ */
903
+ collapsible?: boolean
904
+ }
905
+
906
+ export const SpecialistMessage: React.FC<SpecialistMessageProps>;
907
+
908
+ // From components/composites/PromptInput/PromptInput.tsx
909
+ export interface PromptInputBlockProps
910
+ extends Omit<
911
+ AIPromptInputProps,
912
+ "accept" | "multiple" | "maxFiles" | "maxFileSize" | "globalDrop" | "syncHiddenInput" | "onSubmit" | "onChange"
913
+ > {
914
+ /**
915
+ * Blocks form submission when true. Textarea remains editable for drafts.
916
+ */
917
+ disabled?: boolean;
918
+ /**
919
+ * Placeholder text for the textarea input
920
+ */
921
+ placeholder?: string;
922
+ /**
923
+ * Controlled state value (when provided with onChange)
924
+ */
925
+ value?: string;
926
+ /**
927
+ * Controlled state change handler (when provided with value)
928
+ */
929
+ onChange?: (value: string) => void;
930
+ /**
931
+ * Submit handler called when form is submitted
932
+ */
933
+ onSubmit: (
934
+ message: PromptInputMessage,
935
+ event: FormEvent<HTMLFormElement>
936
+ ) => void | Promise<void>;
937
+ }
938
+
939
+ export const PromptInput: React.FC<any>;
940
+
941
+ // From components/composites/PageContainer/PageContainer.tsx
942
+ export interface PageContainerProps {
943
+ children: React.ReactNode
944
+ className?: string
945
+ }
946
+
947
+ export const PageContainer: React.FC<PageContainerProps>;
948
+
949
+ // From components/composites/OrchestratorMessage/OrchestratorMessage.tsx
950
+ export interface OrchestratorMessageData {
951
+ id: string
952
+ content: string
953
+ avatarSrc?: string
954
+ avatarName?: string
955
+ }
956
+
957
+ export interface OrchestratorMessageProps {
958
+ /**
959
+ * Orchestrator message data to display
960
+ */
961
+ message: OrchestratorMessageData
962
+ /**
963
+ * Whether to show avatar
964
+ */
965
+ showAvatar?: boolean
966
+ /**
967
+ * Child components (SpecialistMessage, ToolCallDisplay)
968
+ */
969
+ children?: React.ReactNode
970
+ }
971
+
972
+ export const OrchestratorMessage: React.FC<OrchestratorMessageProps>;
973
+
974
+ // From components/composites/NavigationList/NavigationList.tsx
975
+ export interface NavigationItem {
976
+ key?: string
977
+ title: string
978
+ url: string
979
+ icon?: string
980
+ isActive?: boolean
981
+ }
982
+
983
+ export interface NavigationListProps {
984
+ items: NavigationItem[]
985
+ onItemClick?: (item: NavigationItem) => void
986
+ className?: string
987
+ }
988
+
989
+ export const NavigationList: React.FC<NavigationListProps>;
990
+
991
+ // From components/composites/NavUser/NavUser.tsx
992
+ export interface NavUserProps {
993
+ user: {
994
+ name: string
995
+ email: string
996
+ avatar?: string
997
+ }
998
+ actions?: { label: string; onClick: () => void }[]
999
+ className?: string
1000
+ }
1001
+
1002
+ export const NavUser: React.FC<NavUserProps>;
1003
+
1004
+ // From components/composites/ModeToggle/ModeToggle.tsx
1005
+ export interface ModeToggleProps {
1006
+ /**
1007
+ * Additional CSS classes
1008
+ */
1009
+ className?: string
1010
+ }
1011
+
1012
+ export const ModeToggle: React.FC<ModeToggleProps>;
1013
+
1014
+ // From components/composites/ModeSwitcher/ModeSwitcher.tsx
1015
+ export type Mode = "demo" | "dev";
1016
+
1017
+ export interface ModeSwitcherProps {
1018
+ mode: Mode;
1019
+ onModeChange: (mode: Mode) => void;
1020
+ className?: string;
1021
+ }
1022
+
1023
+ export const ModeSwitcher: React.FC<ModeSwitcherProps>;
1024
+
1025
+ // From components/composites/InteractiveChart/InteractiveChart.tsx
1026
+ export interface InteractiveChartProps {
1027
+ title: string
1028
+ description?: string
1029
+ data: unknown[]
1030
+ config: ChartConfig
1031
+ timeRanges?: { label: string; value: string }[]
1032
+ defaultTimeRange?: string
1033
+ children: React.ReactNode
1034
+ className?: string
1035
+ }
1036
+
1037
+ export const InteractiveChart: React.FC<InteractiveChartProps>;
1038
+
1039
+ // From components/composites/FormReports/FormReportsTable.tsx
1040
+ export interface FormReportsEntity {
1041
+ id: number | string
1042
+ [key: string]: unknown
1043
+ }
1044
+
1045
+ export interface FormReportsColumn {
1046
+ key: string
1047
+ label: string
1048
+ align?: "left" | "center" | "right"
1049
+ }
1050
+
1051
+ export interface FormReportsRowAction {
1052
+ key: string
1053
+ label: string
1054
+ }
1055
+
1056
+ export interface FormReportsTableHandlers {
1057
+ onColumnsChange?: (visibleColumnKeys: string[]) => void
1058
+ onRowAction?: (action: string, row: FormReportsEntity) => void
1059
+ onRowSelectionChange?: (selectedRowIds: Array<number | string>, selectedRows: FormReportsEntity[]) => void
1060
+ onPaginationChange?: (pageIndex: number, pageSize: number) => void
1061
+ }
1062
+
1063
+ export interface FormReportsTableProps {
1064
+ items: FormReportsEntity[]
1065
+ columns: FormReportsColumn[]
1066
+ rowActions?: FormReportsRowAction[]
1067
+ handlers?: FormReportsTableHandlers
1068
+ leftActions?: React.ReactNode
1069
+ rightActions?: React.ReactNode
1070
+ onCreateClick?: () => void
1071
+ createButtonLabel?: string
1072
+ }
1073
+
1074
+ export const FormReportsTable: React.FC<FormReportsTableProps>;
1075
+
1076
+ // From components/composites/FormReports/FormReportsDrawerForm.tsx
1077
+ export interface FormReportsFieldOption {
1078
+ label: string
1079
+ value: string
1080
+ }
1081
+
1082
+ export interface FormReportsFieldDefinition {
1083
+ name: string
1084
+ label: string
1085
+ type: FormReportsFieldType
1086
+ description?: string
1087
+ placeholder?: string
1088
+ required?: boolean
1089
+ defaultValue?: FormReportsValue
1090
+ options?: FormReportsFieldOption[]
1091
+ }
1092
+
1093
+ export interface FormReportsDrawerFormProps {
1094
+ open: boolean
1095
+ onOpenChange: (open: boolean) => void
1096
+ title: string
1097
+ description?: string
1098
+ fields: FormReportsFieldDefinition[]
1099
+ values: FormReportsValues
1100
+ submitLabel?: string
1101
+ cancelLabel?: string
1102
+ onFieldChange: (name: string, value: FormReportsValue, nextValues: FormReportsValues) => void
1103
+ onFieldBlur?: (name: string, value: FormReportsValue, values: FormReportsValues) => void
1104
+ onSubmit: (values: FormReportsValues) => void
1105
+ onCancel?: () => void
1106
+ }
1107
+
1108
+ export const FormReportsDrawerForm: React.FC<FormReportsDrawerFormProps>;
1109
+
1110
+ // From components/composites/FileQueue/FileStatusBadge.tsx
1111
+ export type FileStatus = "pending" | "modified" | "created" | "deleted";
1112
+
1113
+ export interface FileStatusBadgeProps {
1114
+ status: FileStatus;
1115
+ className?: string;
1116
+ }
1117
+
1118
+ export const FileStatusBadge: React.FC<FileStatusBadgeProps>;
1119
+
1120
+ export const FileQueue: React.FC<any>;
1121
+
1122
+ // From components/composites/DocumentTabBar/DocumentTabBar.tsx
1123
+ export interface DocumentTabBarProps {
1124
+ /**
1125
+ * Array of open documents
1126
+ */
1127
+ tabs: DocumentFile[]
1128
+
1129
+ /**
1130
+ * ID of currently active document
1131
+ */
1132
+ activeTabId?: string
1133
+
1134
+ /**
1135
+ * Callback when tab is selected
1136
+ */
1137
+ onTabSelect?: (documentId: string) => void
1138
+
1139
+ /**
1140
+ * Callback when tab close button is clicked
1141
+ */
1142
+ onTabClose?: (documentId: string) => void
1143
+
1144
+ /**
1145
+ * Additional CSS classes
1146
+ */
1147
+ className?: string
1148
+ }
1149
+
1150
+ export const DocumentTabBar: React.FC<DocumentTabBarProps>;
1151
+
1152
+ export const DocumentEditor: React.FC<any>;
1153
+
1154
+
1155
+ // From components/composites/DataTable/StatusCell.tsx
1156
+ export interface StatusCellProps {
1157
+ status: DashboardRow["status"]
1158
+ }
1159
+
1160
+ export const StatusCell: React.FC<StatusCellProps>;
1161
+
1162
+ // From components/composites/DataTable/RowDetailDrawer.tsx
1163
+ export interface RowDetailDrawerProps {
1164
+ item: DashboardRow
1165
+ onChange: (rowId: number, key: keyof DashboardRow, value: string) => void
1166
+ }
1167
+
1168
+ export const RowDetailDrawer: React.FC<RowDetailDrawerProps>;
1169
+
1170
+ // From components/composites/DataTable/ReviewerCell.tsx
1171
+ export interface ReviewerCellProps {
1172
+ row: DashboardRow
1173
+ onAssign: (rowId: number, reviewer: string) => void
1174
+ }
1175
+
1176
+ export const ReviewerCell: React.FC<ReviewerCellProps>;
1177
+
1178
+ // From components/composites/DataTable/InlineEditCell.tsx
1179
+ export interface InlineEditCellProps {
1180
+ row: DashboardRow
1181
+ field: "target" | "limit"
1182
+ onSave: (rowId: number, field: "target" | "limit", value: string) => void
1183
+ }
1184
+
1185
+ export const InlineEditCell: React.FC<InlineEditCellProps>;
1186
+
1187
+ // From components/composites/DataTable/EnhancedDataTable.tsx
1188
+ export interface EnhancedDataTableProps {
1189
+ data: DashboardRow[]
1190
+ className?: string
1191
+ handlers?: DashboardTableActionHandlers
1192
+ leftActions?: React.ReactNode
1193
+ rightActions?: React.ReactNode
1194
+ onCreateClick?: () => void
1195
+ createButtonLabel?: string
1196
+ }
1197
+
1198
+ export const EnhancedDataTable: React.FC<EnhancedDataTableProps>;
1199
+
1200
+ // From components/composites/DataTable/DraggableRow.tsx
1201
+ export interface DraggableRowProps {
1202
+ row: Row<DashboardRow>
1203
+ }
1204
+
1205
+ export const DraggableRow: React.FC<DraggableRowProps>;
1206
+
1207
+ // From components/composites/DataTable/DragHandleCell.tsx
1208
+ export interface DragHandleCellProps {
1209
+ id: number
1210
+ }
1211
+
1212
+ export const DragHandleCell: React.FC<DragHandleCellProps>;
1213
+
1214
+ // From components/composites/DataTable/DataTable.tsx
1215
+ export interface DataTableProps<TData, TValue> {
1216
+ data: TData[]
1217
+ columns: ColumnDef<TData, TValue>[]
1218
+ enableRowSelection?: boolean
1219
+ enablePagination?: boolean
1220
+ enableFiltering?: boolean
1221
+ searchColumn?: string
1222
+ onRowClick?: (row: TData) => void
1223
+ className?: string
1224
+ }
1225
+
1226
+ export const DataTable: React.FC<DataTableProps>;
1227
+
1228
+ // From components/composites/Confirmation/Confirmation.tsx
1229
+ export interface ConfirmationProps {
1230
+ /**
1231
+ * Title text displayed at the top of the confirmation
1232
+ */
1233
+ title?: string;
1234
+ /**
1235
+ * Callback when user approves
1236
+ */
1237
+ onApprove?: () => void;
1238
+ /**
1239
+ * Callback when user rejects
1240
+ */
1241
+ onReject?: () => void;
1242
+ /**
1243
+ * Confirmation state
1244
+ */
1245
+ state: ToolUIState;
1246
+ /**
1247
+ * Approval data
1248
+ */
1249
+ approval?: ToolApproval;
1250
+ /**
1251
+ * Content to display (e.g., FileQueue)
1252
+ */
1253
+ children: React.ReactNode;
1254
+ /**
1255
+ * Additional CSS classes
1256
+ */
1257
+ className?: string;
1258
+ }
1259
+
1260
+ export const Confirmation: React.FC<ConfirmationProps>;
1261
+
1262
+ export const CommentBox: React.FC<any>;
1263
+
1264
+ // From components/composites/AgentIndicator/AgentIndicator.tsx
1265
+ export interface SubAgent {
1266
+ id: string
1267
+ name: string
1268
+ subAgentName: string
1269
+ input: string | Record<string, unknown>
1270
+ output?: string | Record<string, unknown>
1271
+ status: "pending" | "active" | "completed" | "error"
1272
+ }
1273
+
1274
+ export interface AgentIndicatorProps {
1275
+ /**
1276
+ * Sub-agent data to display
1277
+ */
1278
+ subAgent: SubAgent
1279
+ /**
1280
+ * Click handler for agent selection
1281
+ */
1282
+ onClick: () => void
1283
+ /**
1284
+ * Whether this agent is currently selected
1285
+ */
1286
+ isSelected?: boolean
1287
+ }
1288
+
1289
+ export const AgentIndicator: React.FC<AgentIndicatorProps>;
1290
+
1291
+ export const AppHeader: React.FC<any>;
1292
+
1293
+ // From components/composites/AdjustableLayout/AdjustableLayout.tsx
1294
+ export interface AdjustableLayoutSection {
1295
+ id: string
1296
+ content: React.ReactNode
1297
+ defaultSize?: number // percentage (0-100)
1298
+ minSize?: number // minimum percentage
1299
+ maxSize?: number // maximum percentage
1300
+ resizable?: boolean // default true for >1 sections
1301
+ className?: string
1302
+ }
1303
+
1304
+ export interface AdjustableLayoutProps extends React.ComponentPropsWithoutRef<"div"> {
1305
+ sections: AdjustableLayoutSection[]
1306
+ orientation?: "horizontal" | "vertical"
1307
+ storageKey?: string // localStorage key for persistence
1308
+ onSectionResize?: (sectionId: string, newSize: number) => void
1309
+ dragHandleColor?: "primary" | "secondary" | "accent" | "border" | "muted"
1310
+ }
1311
+
1312
+ export const AdjustableLayout: React.FC<AdjustableLayoutProps>;
1313
+
1314
+ // ============================================================================
1315
+ // EXTERNAL RE-EXPORTS
1316
+ // ============================================================================
1317
+
1318
+ export { ReactFlowProvider, applyNodeChanges, applyEdgeChanges, addEdge } from '@xyflow/react';
1319
+ export type { NodeChange, EdgeChange, Connection } from '@xyflow/react';
1320
+ export { cn } from '@/lib/utils';
693
1321
 
694
1322
  // ============================================================================
695
1323
  // UTILITIES
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-design-system",
3
- "version": "0.1.34",
3
+ "version": "0.1.35",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "AI-powered design system with React components, built with Tailwind CSS and Radix UI - test",