@schandlergarcia/sf-web-components 1.0.3 → 1.0.4

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 (91) hide show
  1. package/dist/components/library/cards/ActionList.d.ts +11 -0
  2. package/dist/components/library/cards/ActivityCard.d.ts +5 -0
  3. package/dist/components/library/cards/BaseCard.d.ts +24 -0
  4. package/dist/components/library/cards/CalloutCard.d.ts +9 -0
  5. package/dist/components/library/cards/ChartCard.d.ts +17 -0
  6. package/dist/components/library/cards/FeedPanel.d.ts +11 -0
  7. package/dist/components/library/cards/ListCard.d.ts +20 -0
  8. package/dist/components/library/cards/MetricCard.d.ts +17 -0
  9. package/dist/components/library/cards/MetricsStrip.d.ts +13 -0
  10. package/dist/components/library/cards/SectionCard.d.ts +12 -0
  11. package/dist/components/library/cards/SemanticMetricCard.d.ts +20 -0
  12. package/dist/components/library/cards/SemanticMetricCardWithLoading.d.ts +7 -0
  13. package/dist/components/library/cards/SemanticTableCard.d.ts +18 -0
  14. package/dist/components/library/cards/SemanticTableCardWithLoading.d.ts +7 -0
  15. package/dist/components/library/cards/StatusCard.d.ts +15 -0
  16. package/dist/components/library/cards/TableCard.d.ts +23 -0
  17. package/dist/components/library/cards/WidgetCard.d.ts +11 -0
  18. package/dist/components/library/charts/D3Chart.d.ts +22 -0
  19. package/dist/components/library/charts/D3ChartTemplates.d.ts +4 -0
  20. package/dist/components/library/charts/GeoMap.d.ts +18 -0
  21. package/dist/components/library/chat/ChatBar.d.ts +21 -0
  22. package/dist/components/library/chat/ChatInput.d.ts +12 -0
  23. package/dist/components/library/chat/ChatMessage.d.ts +7 -0
  24. package/dist/components/library/chat/ChatMessageList.d.ts +11 -0
  25. package/dist/components/library/chat/ChatPanel.d.ts +16 -0
  26. package/dist/components/library/chat/ChatSuggestions.d.ts +7 -0
  27. package/dist/components/library/chat/ChatToolCall.d.ts +6 -0
  28. package/dist/components/library/chat/ChatTypingIndicator.d.ts +6 -0
  29. package/dist/components/library/chat/ChatWelcome.d.ts +10 -0
  30. package/dist/components/library/chat/index.d.ts +10 -0
  31. package/dist/components/library/chat/useChatState.d.ts +23 -0
  32. package/dist/components/library/data/DataModeProvider.d.ts +22 -0
  33. package/dist/components/library/data/DataModeToggle.d.ts +7 -0
  34. package/dist/components/library/data/chartDataProvider.d.ts +3 -0
  35. package/dist/components/library/data/filterUtils.d.ts +60 -0
  36. package/dist/components/library/data/useDataSource.d.ts +26 -0
  37. package/dist/components/library/data/usePageFilters.d.ts +25 -0
  38. package/dist/components/library/filters/FilterBar.d.ts +12 -0
  39. package/dist/components/library/filters/SearchFilter.d.ts +6 -0
  40. package/dist/components/library/filters/SelectFilter.d.ts +10 -0
  41. package/dist/components/library/filters/ToggleFilter.d.ts +8 -0
  42. package/dist/components/library/filters/index.d.ts +4 -0
  43. package/dist/components/library/forms/FormField.d.ts +12 -0
  44. package/dist/components/library/forms/FormModal.d.ts +18 -0
  45. package/dist/components/library/forms/FormRenderer.d.ts +13 -0
  46. package/dist/components/library/forms/FormSection.d.ts +13 -0
  47. package/dist/components/library/forms/index.d.ts +5 -0
  48. package/dist/components/library/forms/useFormState.d.ts +18 -0
  49. package/dist/components/library/heroui/Accordion.d.ts +24 -0
  50. package/dist/components/library/heroui/Alert.d.ts +6 -0
  51. package/dist/components/library/heroui/Badge.d.ts +6 -0
  52. package/dist/components/library/heroui/Breadcrumbs.d.ts +17 -0
  53. package/dist/components/library/heroui/Button.d.ts +6 -0
  54. package/dist/components/library/heroui/Card.d.ts +6 -0
  55. package/dist/components/library/heroui/Drawer.d.ts +27 -0
  56. package/dist/components/library/heroui/Dropdown.d.ts +23 -0
  57. package/dist/components/library/heroui/Input.d.ts +1 -0
  58. package/dist/components/library/heroui/Kbd.d.ts +6 -0
  59. package/dist/components/library/heroui/Meter.d.ts +6 -0
  60. package/dist/components/library/heroui/Modal.d.ts +27 -0
  61. package/dist/components/library/heroui/Pagination.d.ts +3 -0
  62. package/dist/components/library/heroui/ProgressBar.d.ts +6 -0
  63. package/dist/components/library/heroui/ProgressCircle.d.ts +6 -0
  64. package/dist/components/library/heroui/ScrollShadow.d.ts +6 -0
  65. package/dist/components/library/heroui/Select.d.ts +22 -0
  66. package/dist/components/library/heroui/Separator.d.ts +3 -0
  67. package/dist/components/library/heroui/Skeleton.d.ts +6 -0
  68. package/dist/components/library/heroui/Tabs.d.ts +24 -0
  69. package/dist/components/library/heroui/Toast.d.ts +21 -0
  70. package/dist/components/library/heroui/Toggle.d.ts +4 -0
  71. package/dist/components/library/heroui/Tooltip.d.ts +16 -0
  72. package/dist/components/library/index.d.ts +60 -0
  73. package/dist/components/library/layout/PageContainer.d.ts +4 -0
  74. package/dist/components/library/skeletons/CardSkeleton.d.ts +4 -0
  75. package/dist/components/library/theme/AppThemeProvider.d.ts +51 -0
  76. package/dist/components/library/theme/tokens.d.ts +48 -0
  77. package/dist/components/library/ui/Avatar.d.ts +10 -0
  78. package/dist/components/library/ui/Button.d.ts +11 -0
  79. package/dist/components/library/ui/Card.d.ts +7 -0
  80. package/dist/components/library/ui/Chip.d.ts +7 -0
  81. package/dist/components/library/ui/Container.d.ts +13 -0
  82. package/dist/components/library/ui/EmptyState.d.ts +10 -0
  83. package/dist/components/library/ui/Input.d.ts +5 -0
  84. package/dist/components/library/ui/Spinner.d.ts +8 -0
  85. package/dist/components/library/ui/Text.d.ts +10 -0
  86. package/dist/components/library/ui/Toggle.d.ts +5 -0
  87. package/dist/components/workspace/ComponentRegistry.d.ts +143 -0
  88. package/dist/index.d.ts +2 -0
  89. package/dist/lib/index.d.ts +1 -0
  90. package/dist/lib/utils.d.ts +2 -0
  91. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Row of action buttons — typically used at the bottom of a dashboard section.
3
+ *
4
+ * @param {{ label: string, [key]: any }[] | string[]} actions
5
+ * @param {string} title
6
+ * @param {Function} onAction Called with the action object/string when clicked
7
+ */
8
+ export default function ActionList({ actions, title, onAction, className, }: {
9
+ label: string;
10
+ [key]: any;
11
+ }[] | string[]): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export default function ActivityCard({ title, actions, className }: {
2
+ title?: string | undefined;
3
+ actions?: never[] | undefined;
4
+ className?: string | undefined;
5
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,24 @@
1
+ export default function BaseCard({ header, body, footer, children, variant, size, padding, shadow, radius, border, isHoverable, isPressable, isLoading, isDisabled, isSelected, className, headerClassName, bodyClassName, footerClassName, onPress, onHover, ...rest }: {
2
+ [x: string]: any;
3
+ header: any;
4
+ body: any;
5
+ footer: any;
6
+ children: any;
7
+ variant?: string | undefined;
8
+ size?: string | undefined;
9
+ padding?: string | undefined;
10
+ shadow?: boolean | undefined;
11
+ radius?: string | undefined;
12
+ border?: boolean | undefined;
13
+ isHoverable?: boolean | undefined;
14
+ isPressable?: boolean | undefined;
15
+ isLoading?: boolean | undefined;
16
+ isDisabled?: boolean | undefined;
17
+ isSelected?: boolean | undefined;
18
+ className?: string | undefined;
19
+ headerClassName?: string | undefined;
20
+ bodyClassName?: string | undefined;
21
+ footerClassName?: string | undefined;
22
+ onPress: any;
23
+ onHover: any;
24
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Highlighted callout box for important inline messages.
3
+ *
4
+ * @param {string} title
5
+ * @param {string|ReactNode} message
6
+ * @param {"neutral"|"success"|"warning"|"danger"|"info"} tone
7
+ * @param {ReactNode} icon Optional leading icon
8
+ */
9
+ export default function CalloutCard({ title, message, tone, icon, className, }: string): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export default function ChartCard({ chart, chartType, title, subtitle, filters, timeRange, actions, legend, height, showGrid, showAxes, data, loading, error, ...cardProps }: {
2
+ [x: string]: any;
3
+ chart: any;
4
+ chartType: any;
5
+ title: any;
6
+ subtitle: any;
7
+ filters: any;
8
+ timeRange: any;
9
+ actions: any;
10
+ legend: any;
11
+ height?: number | undefined;
12
+ showGrid: any;
13
+ showAxes: any;
14
+ data: any;
15
+ loading?: boolean | undefined;
16
+ error: any;
17
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default function FeedPanel({ title, subtitle, actions, children, width, className, headerClassName, bodyClassName, ...rest }: {
2
+ [x: string]: any;
3
+ title: any;
4
+ subtitle: any;
5
+ actions: any;
6
+ children: any;
7
+ width: any;
8
+ className?: string | undefined;
9
+ headerClassName?: string | undefined;
10
+ bodyClassName?: string | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ export default function ListCard({ items, title, subtitle, showAvatars, showStatus, showActions, showTimestamp, dense, divided, actions, itemActions, onItemClick, loading, error, emptyMessage, emptyIcon, maxBodyHeight, ...cardProps }: {
2
+ [x: string]: any;
3
+ items?: never[] | undefined;
4
+ title: any;
5
+ subtitle: any;
6
+ showAvatars?: boolean | undefined;
7
+ showStatus?: boolean | undefined;
8
+ showActions?: boolean | undefined;
9
+ showTimestamp?: boolean | undefined;
10
+ dense?: boolean | undefined;
11
+ divided?: boolean | undefined;
12
+ actions: any;
13
+ itemActions: any;
14
+ onItemClick: any;
15
+ loading?: boolean | undefined;
16
+ error: any;
17
+ emptyMessage?: string | undefined;
18
+ emptyIcon: any;
19
+ maxBodyHeight: any;
20
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export default function MetricCard({ title, value, subtitle, change, changeType, icon, color, trend, trendIcon, layout, footer, actions, loading, error, ...cardProps }: {
2
+ [x: string]: any;
3
+ title: any;
4
+ value: any;
5
+ subtitle: any;
6
+ change: any;
7
+ changeType?: string | undefined;
8
+ icon: any;
9
+ color?: string | undefined;
10
+ trend: any;
11
+ trendIcon: any;
12
+ layout?: string | undefined;
13
+ footer: any;
14
+ actions: any;
15
+ loading?: boolean | undefined;
16
+ error: any;
17
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Horizontal strip of KPI metrics — compact alternative to a row of MetricCards.
3
+ *
4
+ * @param {{ label: string, value: string|number, trend?: string|number }[]} metrics
5
+ * @param {string} title
6
+ * @param {boolean} collapsible Allow collapsing into a single-line summary
7
+ * @param {boolean} collapsed Initial collapsed state
8
+ */
9
+ export default function MetricsStrip({ metrics, title, collapsible, collapsed: initialCollapsed, className, }: {
10
+ label: string;
11
+ value: string | number;
12
+ trend?: string | number;
13
+ }[]): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export default function SectionCard({ title, description, label, variant, showDivider, alignment, size, isDark, className, ...cardProps }: {
2
+ [x: string]: any;
3
+ title: any;
4
+ description: any;
5
+ label: any;
6
+ variant?: string | undefined;
7
+ showDivider?: boolean | undefined;
8
+ alignment?: string | undefined;
9
+ size?: string | undefined;
10
+ isDark?: boolean | undefined;
11
+ className?: string | undefined;
12
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ export default function SemanticMetricCard({ semanticId, metricId, title, subtitle, value, unit, format, trend, change, changeLabel, description, seriesName, availableFilters, showFilters, compact, className, loading, ...rest }: {
2
+ [x: string]: any;
3
+ semanticId: any;
4
+ metricId: any;
5
+ title: any;
6
+ subtitle: any;
7
+ value: any;
8
+ unit: any;
9
+ format: any;
10
+ trend: any;
11
+ change: any;
12
+ changeLabel: any;
13
+ description: any;
14
+ seriesName: any;
15
+ availableFilters: any;
16
+ showFilters: any;
17
+ compact: any;
18
+ className: any;
19
+ loading?: boolean | undefined;
20
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export default function SemanticMetricCardWithLoading({ simulateInitialLoad, minInitialDelayMs, maxInitialDelayMs, loading: loadingProp, ...props }: {
2
+ [x: string]: any;
3
+ simulateInitialLoad?: boolean | undefined;
4
+ minInitialDelayMs?: number | undefined;
5
+ maxInitialDelayMs?: number | undefined;
6
+ loading: any;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ export default function SemanticTableCard({ semanticId, dataOverride, columnsOverride, title, subtitle, searchable, sortable, paginated, pageSize, compact, striped, isDark, simulateInitialLoad, minInitialDelayMs, maxInitialDelayMs, ...rest }: {
2
+ [x: string]: any;
3
+ semanticId: any;
4
+ dataOverride: any;
5
+ columnsOverride: any;
6
+ title: any;
7
+ subtitle: any;
8
+ searchable?: boolean | undefined;
9
+ sortable?: boolean | undefined;
10
+ paginated?: boolean | undefined;
11
+ pageSize?: number | undefined;
12
+ compact: any;
13
+ striped: any;
14
+ isDark: any;
15
+ simulateInitialLoad: any;
16
+ minInitialDelayMs: any;
17
+ maxInitialDelayMs: any;
18
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export default function SemanticTableCardWithLoading({ simulateInitialLoad, minInitialDelayMs, maxInitialDelayMs, loading: loadingProp, ...props }: {
2
+ [x: string]: any;
3
+ simulateInitialLoad?: boolean | undefined;
4
+ minInitialDelayMs?: number | undefined;
5
+ maxInitialDelayMs?: number | undefined;
6
+ loading: any;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ export default function StatusCard({ title, subtitle, status, items, layout, showProgress, showTimestamp, actions, loading, error, emptyMessage, maxBodyHeight, ...cardProps }: {
2
+ [x: string]: any;
3
+ title: any;
4
+ subtitle: any;
5
+ status?: string | undefined;
6
+ items?: never[] | undefined;
7
+ layout?: string | undefined;
8
+ showProgress?: boolean | undefined;
9
+ showTimestamp?: boolean | undefined;
10
+ actions: any;
11
+ loading?: boolean | undefined;
12
+ error: any;
13
+ emptyMessage?: string | undefined;
14
+ maxBodyHeight: any;
15
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ export default function TableCard({ data, columns, title, subtitle, searchable, sortable, paginated, selectable, pageSize, actions, rowActions, onRowSelect, onSort, onSearch, loading, error, emptyMessage, simulateInitialLoad, minInitialDelayMs, maxInitialDelayMs, ...cardProps }: {
2
+ [x: string]: any;
3
+ data?: never[] | undefined;
4
+ columns?: never[] | undefined;
5
+ title: any;
6
+ subtitle: any;
7
+ searchable?: boolean | undefined;
8
+ sortable?: boolean | undefined;
9
+ paginated?: boolean | undefined;
10
+ selectable?: boolean | undefined;
11
+ pageSize?: number | undefined;
12
+ actions: any;
13
+ rowActions: any;
14
+ onRowSelect: any;
15
+ onSort: any;
16
+ onSearch: any;
17
+ loading?: boolean | undefined;
18
+ error: any;
19
+ emptyMessage?: string | undefined;
20
+ simulateInitialLoad?: boolean | undefined;
21
+ minInitialDelayMs?: number | undefined;
22
+ maxInitialDelayMs?: number | undefined;
23
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ export default function WidgetCard({ header, sections, footer, divided, collapsible, defaultExpanded, loading, emptyMessage, ...cardProps }: {
2
+ [x: string]: any;
3
+ header: any;
4
+ sections?: never[] | undefined;
5
+ footer: any;
6
+ divided?: boolean | undefined;
7
+ collapsible?: boolean | undefined;
8
+ defaultExpanded?: boolean | undefined;
9
+ loading?: boolean | undefined;
10
+ emptyMessage?: string | undefined;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Minimal D3 chart host:
3
+ * - Owns the <svg> element
4
+ * - Computes responsive dimensions from container size
5
+ * - Calls renderChart(svgEl, data, dims, options)
6
+ */
7
+ export default function D3Chart({ data, renderChart, options, width, height, responsive, aspectRatio, className, style, containerStyle, svgStyle, loading, error, ariaLabel }: {
8
+ data: any;
9
+ renderChart: any;
10
+ options?: {} | undefined;
11
+ width: any;
12
+ height?: number | undefined;
13
+ responsive?: boolean | undefined;
14
+ aspectRatio: any;
15
+ className?: string | undefined;
16
+ style: any;
17
+ containerStyle: any;
18
+ svgStyle: any;
19
+ loading?: boolean | undefined;
20
+ error: any;
21
+ ariaLabel?: string | undefined;
22
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export namespace D3ChartTemplates {
2
+ function lineChart(svg: any, data: any, dims: any, opts?: {}): void;
3
+ function groupedBarChart(svg: any, data: any, dims: any, opts?: {}): void;
4
+ }
@@ -0,0 +1,18 @@
1
+ export default function GeoMap({ width, height, projection: projType, theme, markers, arcs, overlays, selectedId, onArcClick, onMarkerClick, zoomable, minZoom, maxZoom, initialBounds, className, children, }: {
2
+ width?: number | undefined;
3
+ height?: number | undefined;
4
+ projection?: string | undefined;
5
+ theme?: string | undefined;
6
+ markers?: never[] | undefined;
7
+ arcs?: never[] | undefined;
8
+ overlays?: never[] | undefined;
9
+ selectedId?: null | undefined;
10
+ onArcClick: any;
11
+ onMarkerClick: any;
12
+ zoomable?: boolean | undefined;
13
+ minZoom?: number | undefined;
14
+ maxZoom?: number | undefined;
15
+ initialBounds?: null | undefined;
16
+ className?: string | undefined;
17
+ children: any;
18
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Command-palette style AI chat bar.
3
+ *
4
+ * Collapsed: a slim, clickable input strip with sparkle icon and ⌘K hint.
5
+ * Expanded: a centered floating overlay (portal) with backdrop, full chat,
6
+ * suggestions, and message history. No layout shift.
7
+ *
8
+ * Activate: click the bar, press ⌘K / Ctrl+K, or click a suggestion chip.
9
+ * Dismiss: Escape or click the backdrop.
10
+ */
11
+ export default function ChatBar({ onSend, suggestions, placeholder, title, initialMessages, className, panelHeight, renderAvatar, onOpenInTab, }: {
12
+ onSend: any;
13
+ suggestions?: never[] | undefined;
14
+ placeholder?: string | undefined;
15
+ title?: string | undefined;
16
+ initialMessages?: never[] | undefined;
17
+ className?: string | undefined;
18
+ panelHeight: any;
19
+ renderAvatar: any;
20
+ onOpenInTab: any;
21
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Chat input with auto-resize textarea, Send button, and keyboard shortcuts.
3
+ * Enter sends, Shift+Enter inserts newline.
4
+ *
5
+ * @param {Function} onSend — (content: string) => void
6
+ * @param {boolean} disabled — disable input while agent is processing
7
+ * @param {boolean} isLoading — show stop button instead of send
8
+ * @param {Function} onStop — optional: called when stop is clicked
9
+ * @param {string} placeholder
10
+ * @param {number} maxRows — max visible rows before scroll (default 6)
11
+ */
12
+ export default function ChatInput({ onSend, disabled, isLoading, onStop, placeholder, maxRows, }: Function): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Renders a single chat message.
3
+ *
4
+ * @param {Object} message — { id, role, content, components?, toolCalls?, isError?, isStreaming?, timestamp? }
5
+ * @param {React.ReactNode} avatar — custom avatar override
6
+ */
7
+ export default function ChatMessage({ message, avatar }: Object): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Scrollable message area with auto-scroll to latest message.
3
+ *
4
+ * @param {Array} messages — array of message objects
5
+ * @param {boolean} isLoading — show typing indicator
6
+ * @param {boolean} isStreaming — agent is streaming (show different indicator text)
7
+ * @param {string[]} suggestions — follow-up suggestions shown after last assistant message
8
+ * @param {Function} onSuggestion — (text) => void
9
+ * @param {Function} renderAvatar — (message) => ReactNode, optional per-message avatar
10
+ */
11
+ export default function ChatMessageList({ messages, isLoading, isStreaming, suggestions, onSuggestion, renderAvatar, }: any[]): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * All-in-one chat panel. Composes ChatMessageList, ChatInput, ChatWelcome,
3
+ * and useChatState into a single drop-in component.
4
+ *
5
+ * @param {string} title — panel header title
6
+ * @param {Function} onSend — async (userMessage, history, helpers) => assistantMessage?
7
+ * @param {Array} initialMessages — seed messages
8
+ * @param {string} welcomeTitle — welcome screen heading
9
+ * @param {string} welcomeSubtitle — welcome screen description
10
+ * @param {string[]} suggestions — starter and follow-up prompts
11
+ * @param {string} placeholder — input placeholder
12
+ * @param {string} className — additional classes on the root container
13
+ * @param {Function} renderAvatar — (message) => ReactNode
14
+ * @param {boolean} showHeader — show the title bar (default true)
15
+ */
16
+ export default function ChatPanel({ title, onSend, initialMessages, welcomeTitle, welcomeSubtitle, suggestions, placeholder, className, renderAvatar, showHeader, }: string): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Quick-action prompt buttons. Place above the input or after an assistant message.
3
+ *
4
+ * @param {string[]} suggestions — prompt strings
5
+ * @param {Function} onSelect — (suggestion) => void
6
+ */
7
+ export default function ChatSuggestions({ suggestions, onSelect }: string[]): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Displays an agent tool call / function execution step.
3
+ *
4
+ * @param {Object} toolCall — { id?, name, args?, status: "running"|"complete"|"error", result? }
5
+ */
6
+ export default function ChatToolCall({ toolCall }: Object): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Animated typing indicator shown while the agent is processing.
3
+ */
4
+ export default function ChatTypingIndicator({ label }: {
5
+ label?: string | undefined;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Empty-state welcome screen shown before the first message.
3
+ *
4
+ * @param {string} title — welcome heading
5
+ * @param {string} subtitle — description text
6
+ * @param {string[]} suggestions — starter prompt suggestions
7
+ * @param {Function} onSuggestion — (text) => void
8
+ * @param {React.ReactNode} icon — custom icon override
9
+ */
10
+ export default function ChatWelcome({ title, subtitle, suggestions, onSuggestion, icon, }: string): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export { default as ChatPanel } from "./ChatPanel";
2
+ export { default as ChatBar } from "./ChatBar";
3
+ export { default as ChatMessageList } from "./ChatMessageList";
4
+ export { default as ChatMessage } from "./ChatMessage";
5
+ export { default as ChatInput } from "./ChatInput";
6
+ export { default as ChatTypingIndicator } from "./ChatTypingIndicator";
7
+ export { default as ChatSuggestions } from "./ChatSuggestions";
8
+ export { default as ChatToolCall } from "./ChatToolCall";
9
+ export { default as ChatWelcome } from "./ChatWelcome";
10
+ export { default as useChatState } from "./useChatState";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Core state management hook for AI chat.
3
+ *
4
+ * @param {Object} options
5
+ * @param {Array} options.initialMessages — seed the conversation
6
+ * @param {Function} options.onSend — async (userMessage, allMessages) => assistantMessage | void
7
+ * Return a message object to add it, or use appendChunk / addMessage for streaming.
8
+ *
9
+ * @returns {Object}
10
+ *
11
+ * @example
12
+ * const chat = useChatState({
13
+ * onSend: async (msg, history) => {
14
+ * const res = await fetch("/api/chat", { method: "POST", body: JSON.stringify({ messages: history }) });
15
+ * const data = await res.json();
16
+ * return { role: "assistant", content: data.reply, components: data.components };
17
+ * },
18
+ * });
19
+ */
20
+ export default function useChatState({ initialMessages, onSend }?: {
21
+ initialMessages: any[];
22
+ onSend: Function;
23
+ }): Object;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Read the current data mode from any component.
3
+ *
4
+ * @returns {{ mode: "sample"|"live", isSample: boolean, isLive: boolean, toggle: () => void, setMode: (mode) => void }}
5
+ */
6
+ export function useDataMode(): {
7
+ mode: "sample" | "live";
8
+ isSample: boolean;
9
+ isLive: boolean;
10
+ toggle: () => void;
11
+ setMode: (mode: any) => void;
12
+ };
13
+ /**
14
+ * Provides global data-mode state (sample vs live) to the component tree.
15
+ * Persists to localStorage so the choice survives page reloads.
16
+ *
17
+ * Wrap once in _app.js alongside AppThemeProvider.
18
+ */
19
+ export default function DataModeProvider({ initialMode, children }: {
20
+ initialMode?: string | undefined;
21
+ children: any;
22
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pill toggle for switching between sample and live data modes.
3
+ * Place in the AppShell header next to the theme toggle.
4
+ */
5
+ export default function DataModeToggle({ className }: {
6
+ className?: string | undefined;
7
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export function listSemanticIds(): string[];
2
+ export function getSemanticDataset(semanticId: any): any;
3
+ export function getSemanticMetric(semanticId: any, metricId: any): any;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Pure data utilities for filtering, sorting, and searching.
3
+ * Stateless — combine with usePageFilters hook for state management.
4
+ */
5
+ /**
6
+ * Text search across multiple keys.
7
+ * @param {Array} data
8
+ * @param {string} query — search string
9
+ * @param {string[]} keys — object keys to search within
10
+ * @returns {Array} filtered data
11
+ */
12
+ export function filterBySearch(data: any[], query: string, keys?: string[]): any[];
13
+ /**
14
+ * Filter rows where key matches a specific value.
15
+ * Pass "all" or "" to skip filtering.
16
+ * @param {Array} data
17
+ * @param {string} key — object key to match
18
+ * @param {*} value — value to match (exact, case-insensitive for strings)
19
+ * @returns {Array}
20
+ */
21
+ export function filterByValue(data: any[], key: string, value: any): any[];
22
+ /**
23
+ * Filter rows where a boolean condition is met.
24
+ * When toggle is off, returns all data (no filtering).
25
+ * @param {Array} data
26
+ * @param {string} key — object key to check
27
+ * @param {boolean} isActive — whether the toggle is on
28
+ * @param {*} matchValue — value that key should equal when active (default: truthy check)
29
+ * @returns {Array}
30
+ */
31
+ export function filterByToggle(data: any[], key: string, isActive: boolean, matchValue: any): any[];
32
+ /**
33
+ * Filter rows where a date field falls within a range.
34
+ * @param {Array} data
35
+ * @param {string} key — object key containing date (ISO string or Date)
36
+ * @param {{ start?: Date|string, end?: Date|string }} range
37
+ * @returns {Array}
38
+ */
39
+ export function filterByDateRange(data: any[], key: string, range: {
40
+ start?: Date | string;
41
+ end?: Date | string;
42
+ }): any[];
43
+ /**
44
+ * Sort data by a key.
45
+ * @param {Array} data
46
+ * @param {string} key — object key to sort by
47
+ * @param {"asc"|"desc"} direction
48
+ * @returns {Array} new sorted array
49
+ */
50
+ export function sortByKey(data: any[], key: string, direction?: "asc" | "desc"): any[];
51
+ /**
52
+ * Apply a set of filter definitions to data.
53
+ * Each filter in `filters` has { id, type, key/keys } and `values` holds the current state.
54
+ *
55
+ * @param {Array} data
56
+ * @param {Array} filters — filter definitions [{ id, type, key?, keys? }]
57
+ * @param {Object} values — current filter values keyed by filter id
58
+ * @returns {Array} filtered data
59
+ */
60
+ export function applyFilters(data: any[], filters?: any[], values?: Object): any[];
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Select between sample and live data based on the global data mode.
3
+ *
4
+ * Values can be plain data or functions (lazy-evaluated only when active).
5
+ *
6
+ * @param {{ sample: any | () => any, live: any | () => any }} sources
7
+ * @returns {any} the resolved value for the active mode
8
+ *
9
+ * @example
10
+ * // Static data
11
+ * const incidents = useDataSource({
12
+ * sample: sampleIncidents,
13
+ * live: fetchedIncidents,
14
+ * });
15
+ *
16
+ * @example
17
+ * // Lazy — factory only runs when that mode is active
18
+ * const metrics = useDataSource({
19
+ * sample: () => generateSampleMetrics(),
20
+ * live: () => computeFromAPI(apiData),
21
+ * });
22
+ */
23
+ export default function useDataSource({ sample, live }: {
24
+ sample: any | (() => any);
25
+ live: any | (() => any);
26
+ }): any;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Hook for managing page-level filter and sort state.
3
+ *
4
+ * @param {Object} options
5
+ * @param {Array} options.data — raw data array
6
+ * @param {Array} options.filters — filter definitions [{ id, type, key?, keys?, defaultValue? }]
7
+ * @param {Object} options.defaultSort — { key, direction } or null
8
+ * @returns {Object} { values, setFilter, resetFilters, sort, setSort, filteredData, sortedData, activeFilterCount }
9
+ *
10
+ * @example
11
+ * const { values, setFilter, resetFilters, sortedData } = usePageFilters({
12
+ * data: incidents,
13
+ * filters: [
14
+ * { id: "search", type: "search", keys: ["title", "description"] },
15
+ * { id: "severity", type: "select", key: "severity", defaultValue: "all" },
16
+ * { id: "active", type: "toggle", key: "resolved", matchValue: false },
17
+ * ],
18
+ * defaultSort: { key: "timestamp", direction: "desc" },
19
+ * });
20
+ */
21
+ export default function usePageFilters({ data, filters, defaultSort }?: {
22
+ data: any[];
23
+ filters: any[];
24
+ defaultSort: Object;
25
+ }): Object;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Renders a row of filter controls from a definitions array.
3
+ * Pairs with usePageFilters hook for state management.
4
+ *
5
+ * @param {Array} filters — filter definitions [{ id, type, ... }]
6
+ * @param {Object} values — current filter values keyed by filter id
7
+ * @param {Function} onChange — (filterId, value) => void
8
+ * @param {Function} onReset — () => void
9
+ * @param {number} activeCount — number of active filters (for badge)
10
+ * @param {string} layout — "inline" (default) or "stacked"
11
+ */
12
+ export default function FilterBar({ filters, values, onChange, onReset, activeCount, layout, }: any[]): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ export default function SearchFilter({ value, onChange, placeholder, className, }: {
2
+ value?: string | undefined;
3
+ onChange: any;
4
+ placeholder?: string | undefined;
5
+ className?: string | undefined;
6
+ }): import("react/jsx-runtime").JSX.Element;