@pstdio/ui 0.18.0 → 0.20.0

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 (144) hide show
  1. package/dist/{MermaidComponent-BPiVFNYK.js → MermaidComponent-AmAjWLPm.js} +3 -3
  2. package/dist/{MermaidComponent-BPiVFNYK.js.map → MermaidComponent-AmAjWLPm.js.map} +1 -1
  3. package/dist/browser-storage-DPtOQJx0.js +127 -0
  4. package/dist/browser-storage-DPtOQJx0.js.map +1 -0
  5. package/dist/chat-ui.js +938 -897
  6. package/dist/chat-ui.js.map +1 -1
  7. package/dist/components/chat-ui/components/chat-message-list-items.d.ts +17 -0
  8. package/dist/components/chat-ui/components/message-types.d.ts +1 -0
  9. package/dist/components/chat-ui/components/timeline.d.ts +2 -0
  10. package/dist/components/chat-ui/tool-rendering/default-renderers.d.ts +1 -0
  11. package/dist/components/chat-ui/tool-rendering/shared.d.ts +3 -2
  12. package/dist/components/chat-ui/tool-rendering/standard-renderers.d.ts +1 -0
  13. package/dist/components/data-table/data-table-header.d.ts +3 -1
  14. package/dist/components/data-table/data-table-skeleton.d.ts +13 -0
  15. package/dist/components/data-table/edit-mode-data-table-body.d.ts +29 -0
  16. package/dist/components/data-table/edit-mode-data-table-cell.d.ts +15 -0
  17. package/dist/components/data-table/edit-mode-data-table-editors.d.ts +19 -0
  18. package/dist/components/data-table/edit-mode-data-table-header.d.ts +23 -0
  19. package/dist/components/data-table/edit-mode-data-table-selection.d.ts +12 -0
  20. package/dist/components/data-table/edit-mode-data-table.d.ts +2 -0
  21. package/dist/components/data-table/edit-mode-story.d.ts +5 -0
  22. package/dist/components/data-table/index.d.ts +3 -1
  23. package/dist/components/data-table/pagination-footer.d.ts +8 -5
  24. package/dist/components/data-table/types.d.ts +24 -0
  25. package/dist/components/overlays/dialog-accept-shortcut.d.ts +12 -0
  26. package/dist/components/overlays/index.d.ts +1 -0
  27. package/dist/components/param-editor/index.d.ts +3 -1
  28. package/dist/components/param-editor/inputs/selection-input.d.ts +5 -0
  29. package/dist/components/param-editor/inputs/selection-menu.d.ts +6 -0
  30. package/dist/components/param-editor/param-editor-row.d.ts +17 -0
  31. package/dist/components/param-editor/param-editor.types.d.ts +18 -0
  32. package/dist/components/primitives/glyph-icon.d.ts +16 -0
  33. package/dist/components/primitives/icon-color-picker.d.ts +3 -13
  34. package/dist/components/primitives/icon-options.d.ts +301 -0
  35. package/dist/components/primitives/index.d.ts +10 -3
  36. package/dist/components/primitives/segmented-control.d.ts +20 -0
  37. package/dist/components/primitives/tag-swatch.d.ts +10 -0
  38. package/dist/components/rich-text/index.d.ts +2 -0
  39. package/dist/components/rich-text/markdown-editor/markdown-editor.d.ts +7 -0
  40. package/dist/components/rich-text/markdown-editor/markdown-table.story-fixture.d.ts +3 -0
  41. package/dist/components/rich-text/markdown-editor/plugins/MarkdownSectionNavigationPlugin.d.ts +8 -0
  42. package/dist/components/rich-text/markdown-editor/plugins/MarkdownSlashCommandPlugin.d.ts +1 -0
  43. package/dist/components/rich-text/markdown-editor/plugins/markdown-history-plugin.d.ts +1 -0
  44. package/dist/components/rich-text/markdown-editor/plugins/markdown-section-navigation.d.ts +20 -0
  45. package/dist/components/rich-text/rich-message/rich-message.d.ts +2 -0
  46. package/dist/components/rich-text/shared/markdown-ast.d.ts +6 -0
  47. package/dist/components/rich-text/shared/markdown-codec.d.ts +3 -0
  48. package/dist/components/rich-text/shared/markdown-export.d.ts +2 -0
  49. package/dist/components/rich-text/shared/markdown-import.d.ts +2 -0
  50. package/dist/components/rich-text/shared/markdown-inline.d.ts +5 -0
  51. package/dist/components/rich-text/shared/markdown-table.d.ts +41 -0
  52. package/dist/components/rich-text/shared/markdown-url-context.d.ts +9 -0
  53. package/dist/components/rich-text/shared/markdown-url.d.ts +3 -0
  54. package/dist/components/rich-text/shared/nodes/DataTableNode.d.ts +13 -11
  55. package/dist/components/rich-text/shared/nodes/MarkdownImageNode.d.ts +35 -0
  56. package/dist/components/rich-text/shared/nodes/MarkdownLinkNode.d.ts +18 -0
  57. package/dist/components/rich-text/shared/nodes/RawHtmlNode.d.ts +31 -0
  58. package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/floating-toolbar-buttons.d.ts +4 -2
  59. package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/resolve-block-type.d.ts +1 -1
  60. package/dist/components/rich-text/shared/plugins/LinkEditorPlugin/utils/setFloatingElemPos.d.ts +1 -1
  61. package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.d.ts +1 -0
  62. package/dist/components/rich-text/shared/transformers/markdown-transformers.d.ts +2 -3
  63. package/dist/components/tag-editor/index.d.ts +4 -0
  64. package/dist/components/tag-editor/tag-editor-heading.d.ts +11 -0
  65. package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
  66. package/dist/components/tag-editor/tag-editor-save-bar.d.ts +13 -0
  67. package/dist/components/tag-editor/tag-editor.types.d.ts +11 -11
  68. package/dist/components/tag-editor/tag-settings-panel.d.ts +3 -1
  69. package/dist/data-table.js +773 -931
  70. package/dist/data-table.js.map +1 -1
  71. package/dist/dialog-accept-shortcut-DAEBsoWW.js +7 -0
  72. package/dist/dialog-accept-shortcut-DAEBsoWW.js.map +1 -0
  73. package/dist/diff.js +4 -4
  74. package/dist/edit-mode-data-table-4GMiDy75.js +775 -0
  75. package/dist/edit-mode-data-table-4GMiDy75.js.map +1 -0
  76. package/dist/editor-config-Dyh8n5A2.js +2416 -0
  77. package/dist/editor-config-Dyh8n5A2.js.map +1 -0
  78. package/dist/font/css/prompt-studio-icons.css +36 -6
  79. package/dist/font/prompt-studio-icons.eot +0 -0
  80. package/dist/font/prompt-studio-icons.svg +1 -1
  81. package/dist/font/prompt-studio-icons.ttf +0 -0
  82. package/dist/font/prompt-studio-icons.woff +0 -0
  83. package/dist/font/prompt-studio-icons.woff2 +0 -0
  84. package/dist/index.d.ts +2 -2
  85. package/dist/index.js +1976 -1712
  86. package/dist/index.js.map +1 -1
  87. package/dist/{kanban-renderer-toolbar-Db1mIWWd.js → kanban-renderer-toolbar-BcUZvGyY.js} +384 -386
  88. package/dist/kanban-renderer-toolbar-BcUZvGyY.js.map +1 -0
  89. package/dist/kanban-renderer.js +144 -140
  90. package/dist/kanban-renderer.js.map +1 -1
  91. package/dist/{lazy-markdown-editor-DwhqQ-NN.js → lazy-markdown-editor-CWSREEhf.js} +2 -2
  92. package/dist/{lazy-markdown-editor-DwhqQ-NN.js.map → lazy-markdown-editor-CWSREEhf.js.map} +1 -1
  93. package/dist/list-row-B8L4TGsh.js +821 -0
  94. package/dist/list-row-B8L4TGsh.js.map +1 -0
  95. package/dist/{mermaid-renderer-DZo3qj6D.js → mermaid-renderer-H3IhLqnQ.js} +3 -3
  96. package/dist/{mermaid-renderer-DZo3qj6D.js.map → mermaid-renderer-H3IhLqnQ.js.map} +1 -1
  97. package/dist/mermaid.js +1 -1
  98. package/dist/number-input-WUfejtNx.js +343 -0
  99. package/dist/number-input-WUfejtNx.js.map +1 -0
  100. package/dist/param-editor-field-C8zRDStn.js +2845 -0
  101. package/dist/param-editor-field-C8zRDStn.js.map +1 -0
  102. package/dist/param-editor-w3xH-t8A.js +161 -0
  103. package/dist/param-editor-w3xH-t8A.js.map +1 -0
  104. package/dist/rich-message-jZ2oPQhU.js +658 -0
  105. package/dist/rich-message-jZ2oPQhU.js.map +1 -0
  106. package/dist/rich-text.js +182 -110
  107. package/dist/rich-text.js.map +1 -1
  108. package/dist/style.css +1 -1
  109. package/dist/theme/primitives/sizes.d.ts +59 -0
  110. package/dist/theme/recipes/button.d.ts +11 -0
  111. package/dist/theme/recipes/segmented-control.d.ts +22 -0
  112. package/dist/theme/recipes/switch.d.ts +1 -0
  113. package/dist/theme/recipes/tabs.d.ts +11 -0
  114. package/dist/{theme-poQlUgt0.js → theme-J8K8KbZi.js} +211 -120
  115. package/dist/theme-J8K8KbZi.js.map +1 -0
  116. package/dist/{theme-preference-DOzHx64J.js → theme-preference-DyymrYpR.js} +2 -2
  117. package/dist/{theme-preference-DOzHx64J.js.map → theme-preference-DyymrYpR.js.map} +1 -1
  118. package/dist/theme.js +1 -1
  119. package/dist/{tree-list-BAja2eXU.js → tree-list-CC13pOYi.js} +2 -2
  120. package/dist/{tree-list-BAja2eXU.js.map → tree-list-CC13pOYi.js.map} +1 -1
  121. package/package.json +10 -2
  122. package/dist/browser-storage-BinyFNJX.js +0 -40
  123. package/dist/browser-storage-BinyFNJX.js.map +0 -1
  124. package/dist/checkbox-B2zYVemL.js +0 -70
  125. package/dist/checkbox-B2zYVemL.js.map +0 -1
  126. package/dist/components/data-table/editable-cells-story.d.ts +0 -9
  127. package/dist/kanban-renderer-toolbar-Db1mIWWd.js.map +0 -1
  128. package/dist/list-row-BYWwcbGK.js +0 -823
  129. package/dist/list-row-BYWwcbGK.js.map +0 -1
  130. package/dist/markdown-DDd2ESoH.js +0 -743
  131. package/dist/markdown-DDd2ESoH.js.map +0 -1
  132. package/dist/markdown-editor-CYVkzt8t.js +0 -741
  133. package/dist/markdown-editor-CYVkzt8t.js.map +0 -1
  134. package/dist/param-editor-BCZOw5Gt.js +0 -140
  135. package/dist/param-editor-BCZOw5Gt.js.map +0 -1
  136. package/dist/param-editor-field-ZzZwgjZ_.js +0 -2094
  137. package/dist/param-editor-field-ZzZwgjZ_.js.map +0 -1
  138. package/dist/resource-badge-CuItchgL.js +0 -98
  139. package/dist/resource-badge-CuItchgL.js.map +0 -1
  140. package/dist/rich-message--eRzjWYK.js +0 -730
  141. package/dist/rich-message--eRzjWYK.js.map +0 -1
  142. package/dist/scroll-area-BMbg1WcD.js +0 -91
  143. package/dist/scroll-area-BMbg1WcD.js.map +0 -1
  144. package/dist/theme-poQlUgt0.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ import { SessionMessage } from './message-types';
3
+ interface ChatMessageListResponseProps {
4
+ message: SessionMessage;
5
+ streaming: boolean;
6
+ hideQuestionForms?: boolean;
7
+ animate?: boolean;
8
+ showAssistantActions: boolean;
9
+ }
10
+ export declare const ChatMessageListResponse: (props: ChatMessageListResponseProps) => import("react/jsx-runtime").JSX.Element;
11
+ interface StickyMessageToggleProps {
12
+ label: string;
13
+ onClick: () => void;
14
+ actionPanel?: ReactNode;
15
+ }
16
+ export declare const StickyMessageToggle: (props: StickyMessageToggleProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -109,6 +109,7 @@ export interface MessageGroup {
109
109
  userMessage: SessionMessage;
110
110
  responses: SessionMessage[];
111
111
  }
112
+ export declare const getAssistantMessageActionTargetId: (messages: SessionMessage[]) => string | null;
112
113
  export declare const groupMessagesByTurn: (messages: SessionMessage[]) => {
113
114
  groups: MessageGroup[];
114
115
  leadingResponses: SessionMessage[];
@@ -27,6 +27,8 @@ export type TitleSegment = {
27
27
  text: string;
28
28
  bold?: boolean;
29
29
  muted?: boolean;
30
+ truncate?: boolean;
31
+ monospace?: boolean;
30
32
  } | {
31
33
  kind: "avatar";
32
34
  src: string;
@@ -6,6 +6,7 @@ export declare const createDefaultToolRenderers: () => {
6
6
  grep: import('./types').ToolRenderer;
7
7
  question: import('./types').ToolRenderer;
8
8
  read: import('./types').ToolRenderer;
9
+ shell: import('./types').ToolRenderer;
9
10
  skill: import('./types').ToolRenderer;
10
11
  todo_write: import('./types').ToolRenderer;
11
12
  todowrite: import('./types').ToolRenderer;
@@ -17,13 +17,14 @@ export declare const buildIndicator: (invocation: ToolPart) => {
17
17
  readonly type: "icon";
18
18
  readonly icon: "search" | "dot" | "danger" | "file" | "terminal" | "shell" | "ls" | "read_file" | "write_file" | "delete_file" | "patch" | "upload_files" | "download_file" | "move_file" | "browser" | "question" | "todo";
19
19
  };
20
- export declare const buildBaseTitle: (invocation: ToolPart, detail?: string, labelOverride?: string) => TitleSegment[];
20
+ export declare const buildBaseTitle: (invocation: ToolPart, detail?: string, labelOverride?: string, detailStyle?: "monospace") => TitleSegment[];
21
21
  export declare const getInputObject: (invocation: ToolPart) => Record<string, unknown> | null;
22
22
  export declare const getOutputObject: (invocation: ToolPart) => Record<string, unknown> | null;
23
23
  export declare const getStringValue: (value: unknown) => string | null;
24
24
  export declare const getObjectValue: (value: unknown) => Record<string, unknown> | null;
25
25
  export declare const getStateObject: (invocation: ToolPart, key: string) => Record<string, unknown> | null;
26
26
  export declare const getApplyPatchMetadataFiles: (invocation: ToolPart) => ApplyPatchMetadataFile[];
27
+ export declare const getApplyPatchInputFilePaths: (invocation: ToolPart) => string[];
27
28
  export declare const getApplyPatchDiffText: (invocation: ToolPart) => string | null;
28
29
  export declare const buildApplyPatchMetadataTitleSegments: (files: ApplyPatchMetadataFile[]) => TitleSegment[];
29
30
  export declare const getApplyPatchMetadataReferences: (files: ApplyPatchMetadataFile[]) => string[];
@@ -33,7 +34,7 @@ export declare const parseSkillContentBlock: (value: string) => {
33
34
  content: string;
34
35
  } | null;
35
36
  export declare const getSkillName: (invocation: ToolPart) => string | undefined;
36
- export declare const buildFileLinkSegment: (filePath: string) => TitleSegment;
37
+ export declare const buildFileLinkSegment: (filePath: string, variant?: "default" | "bubble") => TitleSegment;
37
38
  export declare const prependErrorBlock: (invocation: ToolPart, blocks: Block[]) => Block[];
38
39
  export declare const getDiffBlocks: (diffText?: string | null) => {
39
40
  type: "diff";
@@ -1,6 +1,7 @@
1
1
  import { ToolRenderer } from './types';
2
2
  export declare const renderRead: ToolRenderer;
3
3
  export declare const renderBash: ToolRenderer;
4
+ export declare const renderShell: ToolRenderer;
4
5
  export declare const renderGrep: ToolRenderer;
5
6
  export declare const renderGlob: ToolRenderer;
6
7
  export declare const renderSkill: ToolRenderer;
@@ -1,10 +1,12 @@
1
1
  import { ReactNode } from 'react';
2
- import { AttributeDescriptor, KanbanRendererRow } from '../kanban-renderer/types';
2
+ import { AttributeDescriptor, KanbanRendererRow, KanbanRendererSavedView } from '../kanban-renderer/types';
3
3
  interface DataTableHeaderProps {
4
4
  rows: KanbanRendererRow[];
5
5
  attributes: AttributeDescriptor[];
6
6
  storageKey: string;
7
7
  columnControl: ReactNode;
8
+ defaultViews?: KanbanRendererSavedView[];
9
+ defaultActiveViewId?: string;
8
10
  }
9
11
  export declare const DataTableHeader: (props: DataTableHeaderProps) => import("react/jsx-runtime").JSX.Element;
10
12
  export {};
@@ -0,0 +1,13 @@
1
+ export interface DataTableSkeletonColumn {
2
+ id: string;
3
+ label: string;
4
+ }
5
+ interface DataTableSkeletonProps {
6
+ /** Real column headers when the caller already knows them. */
7
+ columns?: DataTableSkeletonColumn[];
8
+ /** Placeholder column count when the headers are still unknown. */
9
+ columnCount?: number;
10
+ rowCount?: number;
11
+ }
12
+ export declare const DataTableSkeleton: (props: DataTableSkeletonProps) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,29 @@
1
+ import { DataTableEditModeColumn, DataTableEditModeConfig, RowData } from './types';
2
+ interface ActiveCell {
3
+ rowId: string;
4
+ columnId: string;
5
+ draft: string;
6
+ }
7
+ interface EditModeDataTableBodyProps {
8
+ activeCell: ActiveCell | null;
9
+ columns: DataTableEditModeColumn[];
10
+ data: RowData[];
11
+ editMode: DataTableEditModeConfig;
12
+ enableSelection: boolean;
13
+ isReadOnly: boolean;
14
+ pageIndex: number;
15
+ pageRows: RowData[];
16
+ pageSize: number;
17
+ selectedRowIds: Set<string>;
18
+ showNewRow: boolean;
19
+ onActivateCell: (cell: ActiveCell) => void;
20
+ onAddRow: () => void;
21
+ onCancelCell: () => void;
22
+ onCommitCell: () => void;
23
+ onDraftChange: (cell: ActiveCell) => void;
24
+ onRemoveRow: (rowId: string) => void;
25
+ onToggleRowSelection: (rowId: string, checked: boolean) => void;
26
+ rowIdFor: (row: RowData, index: number) => string;
27
+ }
28
+ export declare const EditModeDataTableBody: (props: EditModeDataTableBodyProps) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -0,0 +1,15 @@
1
+ import { DataTableCellContext, DataTableEditModeColumn, DataTableEditModeConfig } from './types';
2
+ interface EditModeDataTableCellProps {
3
+ activeDraft?: string;
4
+ column: DataTableEditModeColumn;
5
+ context: DataTableCellContext;
6
+ editMode: DataTableEditModeConfig;
7
+ isActive: boolean;
8
+ isReadOnly: boolean;
9
+ onActivate: () => void;
10
+ onCancel: () => void;
11
+ onDraftChange: (draft: string) => void;
12
+ onSave: () => void;
13
+ }
14
+ export declare const EditModeDataTableCell: (props: EditModeDataTableCellProps) => import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,19 @@
1
+ import { ReactNode, RefObject } from 'react';
2
+ interface EditModeHeaderEditorProps {
3
+ accessibleName: string;
4
+ draft: string;
5
+ onCancel: () => void;
6
+ onChange: (value: string) => void;
7
+ onSave: () => void;
8
+ }
9
+ export declare const EditModeHeaderEditor: (props: EditModeHeaderEditorProps) => import("react/jsx-runtime").JSX.Element;
10
+ interface EditModeCellEditorProps {
11
+ anchorRef: RefObject<HTMLElement | null>;
12
+ customEditor?: ReactNode;
13
+ draft: string;
14
+ onCancel: () => void;
15
+ onChange: (value: string) => void;
16
+ onSave: () => void;
17
+ }
18
+ export declare const EditModeCellEditor: (props: EditModeCellEditorProps) => import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,23 @@
1
+ import { ReactNode } from 'react';
2
+ import { DataTableEditModeColumn, DataTableEditModeConfig, RowData } from './types';
3
+ interface ActiveHeader {
4
+ columnId: string;
5
+ draft: string;
6
+ }
7
+ interface EditModeDataTableHeaderProps {
8
+ activeHeader: ActiveHeader | null;
9
+ columnIcons?: Record<string, ReactNode>;
10
+ columns: DataTableEditModeColumn[];
11
+ data: RowData[];
12
+ editMode: DataTableEditModeConfig;
13
+ isReadOnly: boolean;
14
+ selectionHeader?: ReactNode;
15
+ onAddColumn: () => void;
16
+ onCancelHeaderEdit: () => void;
17
+ onDeleteColumn: (columnId: string) => void;
18
+ onHeaderDraftChange: (draft: string) => void;
19
+ onHeaderEdit: (column: DataTableEditModeColumn) => void;
20
+ onSaveHeader: () => void;
21
+ }
22
+ export declare const EditModeDataTableHeader: (props: EditModeDataTableHeaderProps) => import("react/jsx-runtime").JSX.Element;
23
+ export {};
@@ -0,0 +1,12 @@
1
+ interface EditModeSelectionHeaderProps {
2
+ checked: boolean;
3
+ indeterminate: boolean;
4
+ onChange: (checked: boolean) => void;
5
+ }
6
+ export declare const EditModeSelectionHeader: (props: EditModeSelectionHeaderProps) => import("react/jsx-runtime").JSX.Element;
7
+ interface EditModeSelectionCellProps {
8
+ checked: boolean;
9
+ onChange: (checked: boolean) => void;
10
+ }
11
+ export declare const EditModeSelectionCell: (props: EditModeSelectionCellProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,2 @@
1
+ import { DataTableProps } from './types';
2
+ export declare const EditModeDataTable: (props: DataTableProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,5 @@
1
+ export declare const EditModeStory: () => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ModeToggleStory: () => import("react/jsx-runtime").JSX.Element;
3
+ export declare const RichTextEditModeStory: () => import("react/jsx-runtime").JSX.Element;
4
+ export declare const EditableSelectableRowsStory: () => import("react/jsx-runtime").JSX.Element;
5
+ export declare const EditableWithViewsStory: () => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,7 @@
1
1
  export { DataTable } from './data-table';
2
+ export type { DataTableSkeletonColumn } from './data-table-skeleton';
3
+ export { DataTableSkeleton } from './data-table-skeleton';
2
4
  export type { FriendlyJsonDisplayProps } from './friendly-json-display';
3
5
  export { FriendlyJsonDisplay } from './friendly-json-display';
4
6
  export { formatDisplayValue, getIcon } from './helpers';
5
- export type { DataTableCategoricalColor, DataTableCategoricalValue, DataTableCellContext, DataTableCellContextAction, DataTableColorScaleStop, DataTableColumnRenderer, DataTableColumnStat, DataTableProps, DataTableRowAction, DataTableSelectionAction, DataTableThemeColor, RowData, } from './types';
7
+ export type { DataTableCategoricalColor, DataTableCategoricalValue, DataTableCellContext, DataTableCellContextAction, DataTableColorScaleStop, DataTableColumnRenderer, DataTableColumnStat, DataTableEditModeAlignment, DataTableEditModeCellEditorProps, DataTableEditModeColumn, DataTableEditModeConfig, DataTableProps, DataTableRowAction, DataTableSelectionAction, DataTableThemeColor, RowData, } from './types';
@@ -1,8 +1,11 @@
1
- import { useReactTable } from '@tanstack/react-table';
2
- import { RowData } from './types';
3
- export declare function PaginationFooter({ table, pageIndex, pageSize, pageSizeOptions, }: {
4
- table: ReturnType<typeof useReactTable<RowData>>;
1
+ interface PaginationFooterProps {
2
+ pageCount: number;
5
3
  pageIndex: number;
6
4
  pageSize: number;
7
5
  pageSizeOptions: number[];
8
- }): import("react/jsx-runtime").JSX.Element;
6
+ totalRows: number;
7
+ onPageChange: (pageIndex: number) => void;
8
+ onPageSizeChange: (pageSize: number) => void;
9
+ }
10
+ export declare function PaginationFooter(props: PaginationFooterProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { KanbanRendererSavedView } from '../kanban-renderer/types';
2
3
  export type ColumnType = "boolean" | "date" | "number" | "string" | "unknown";
3
4
  export type RowData = Record<string, unknown>;
4
5
  export type DisplayValue = {
@@ -64,8 +65,29 @@ export interface DataTableCellContextAction {
64
65
  destructive?: boolean;
65
66
  onSelect: (context: DataTableCellContext) => void;
66
67
  }
68
+ export type DataTableEditModeAlignment = "left" | "center" | "right" | null;
69
+ export interface DataTableEditModeColumn {
70
+ id: string;
71
+ label: string;
72
+ alignment: DataTableEditModeAlignment;
73
+ }
74
+ export interface DataTableEditModeCellEditorProps {
75
+ context: DataTableCellContext;
76
+ value: string;
77
+ onChange: (value: string) => void;
78
+ }
79
+ export interface DataTableEditModeConfig {
80
+ columns: DataTableEditModeColumn[];
81
+ onDataChange: (data: RowData[]) => void;
82
+ onColumnsChange: (columns: DataTableEditModeColumn[]) => void;
83
+ isCellEditable?: (context: DataTableCellContext) => boolean;
84
+ renderHeader?: (column: DataTableEditModeColumn) => ReactNode;
85
+ renderCell?: (context: DataTableCellContext) => ReactNode;
86
+ renderCellEditor?: (props: DataTableEditModeCellEditorProps) => ReactNode;
87
+ }
67
88
  export interface DataTableProps {
68
89
  data: RowData[];
90
+ editMode?: DataTableEditModeConfig;
69
91
  isReadOnly?: boolean;
70
92
  noBorder?: boolean;
71
93
  fullWidth?: boolean;
@@ -77,6 +99,8 @@ export interface DataTableProps {
77
99
  compactHeaders?: Partial<Record<string, string>>;
78
100
  getRowId?: (row: RowData, index: number) => string;
79
101
  toolbarStorageKey?: string;
102
+ defaultViews?: KanbanRendererSavedView[];
103
+ defaultActiveViewId?: string;
80
104
  enableRowActivation?: boolean;
81
105
  getCellContextMenuActions?: (context: DataTableCellContext) => DataTableCellContextAction[];
82
106
  onCSVUpload?: (csv: string) => Promise<void>;
@@ -0,0 +1,12 @@
1
+ interface DialogAcceptShortcutEvent {
2
+ key: string;
3
+ ctrlKey: boolean;
4
+ metaKey: boolean;
5
+ shiftKey: boolean;
6
+ altKey: boolean;
7
+ defaultPrevented: boolean;
8
+ preventDefault: () => void;
9
+ stopPropagation: () => void;
10
+ }
11
+ export declare const handleDialogAcceptShortcut: (event: DialogAcceptShortcutEvent, accept: () => void, enabled?: boolean) => void;
12
+ export {};
@@ -6,6 +6,7 @@ export { AttachmentChip } from './attachment-chip';
6
6
  export { BubbleButton } from './bubble-button';
7
7
  export { BubblePanel } from './bubble-panel';
8
8
  export { DeleteConfirmationModal } from './delete-confirmation-modal';
9
+ export { handleDialogAcceptShortcut } from './dialog-accept-shortcut';
9
10
  export type { RepoPickerDialogEntry, RepoPickerDialogProps } from './repo-picker-dialog';
10
11
  export { RepoPickerDialog } from './repo-picker-dialog';
11
12
  export type { ResourceActionMenuProps, ResourceContextAction } from './resource-context-menu';
@@ -16,7 +16,7 @@ export { TextInput } from './inputs/text-input';
16
16
  export { VectorInput } from './inputs/vector-input';
17
17
  export type { ParamEditorProps } from './param-editor';
18
18
  export { ParamEditor } from './param-editor';
19
- export type { ActionOption, ActionsParam, AnchorGridParam, AnchorGridValue, BaseParam, BooleanParam, ColorParam, DateParam, FileUploadParam, FileUploadStatus, FileUploadValue, InputGroup, MarkdownParam, NumberParam, Param, ParamEditorReadOnlyContent, ParamEditorReadOnlyImage, ParamValue, ParamValueMap, PropertyParam, RangeParam, RangeValue, ReadOnlyParam, ResourceOption, ResourceParam, ResourceRefValue, SegmentedOption, SegmentedParam, SelectionParam, TextParam, VectorParam, VectorValue, } from './param-editor.types';
19
+ export type { ActionOption, ActionsParam, AnchorGridParam, AnchorGridValue, BaseParam, BooleanParam, ColorParam, DateParam, FileUploadParam, FileUploadStatus, FileUploadValue, InputGroup, MarkdownParam, NumberParam, Param, ParamEditorReadOnlyContent, ParamEditorReadOnlyImage, ParamValue, ParamValueMap, PropertyParam, RangeParam, RangeValue, ReadOnlyParam, ResourceOption, ResourceParam, ResourceRefValue, SegmentedOption, SegmentedParam, SelectionGroup, SelectionOption, SelectionParam, TextParam, VectorParam, VectorValue, } from './param-editor.types';
20
20
  export { ParamEditorControlItem } from './param-editor-control-item';
21
21
  export { ParamEditorControlList } from './param-editor-control-list';
22
22
  export { ParamEditorField } from './param-editor-field';
@@ -26,4 +26,6 @@ export { ParamEditorLabel } from './param-editor-label';
26
26
  export { isParamEditorRichControl } from './param-editor-presentation';
27
27
  export { ParamEditorReadOnlyField } from './param-editor-read-only-field';
28
28
  export { ParamEditorReadOnlyValue } from './param-editor-read-only-value';
29
+ export type { ParamEditorRowProps } from './param-editor-row';
30
+ export { ParamEditorRow } from './param-editor-row';
29
31
  export { ParamEditorSection } from './param-editor-section';
@@ -1,3 +1,4 @@
1
+ import { SelectionGroup } from '../param-editor.types';
1
2
  import { SelectionMenuOption } from './selection-menu';
2
3
  interface SelectionInputProps {
3
4
  id: string;
@@ -16,6 +17,10 @@ interface SelectionInputProps {
16
17
  clearable?: boolean;
17
18
  /** Inert, but still rendered as a control. */
18
19
  disabled?: boolean;
20
+ searchable?: boolean;
21
+ searchPlaceholder?: string;
22
+ emptyText?: string;
23
+ group?: SelectionGroup;
19
24
  size?: "xs" | "sm";
20
25
  }
21
26
  export declare const SelectionInput: (props: SelectionInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { SelectionGroup } from '../param-editor.types';
2
3
  export interface SelectionMenuOption {
3
4
  id: string;
4
5
  name: string;
@@ -14,11 +15,16 @@ export interface SelectionMenuProps {
14
15
  selectedIds: string[];
15
16
  multiSelect: boolean;
16
17
  disabled?: boolean;
18
+ searchable?: boolean;
19
+ searchPlaceholder?: string;
20
+ emptyText?: string;
21
+ group?: SelectionGroup;
17
22
  fullWidth?: boolean;
18
23
  triggerVariant?: "button" | "icon";
19
24
  triggerAriaLabel?: string;
20
25
  size?: "xs" | "sm";
21
26
  onToggle: (optionId: string) => void;
27
+ onGroupChange?: (optionId: string) => void;
22
28
  }
23
29
  export declare const selectionIndicator: (multiSelect: boolean, selected: boolean) => import("react/jsx-runtime").JSX.Element | null;
24
30
  export declare const selectionOptionIcon: (option: SelectionMenuOption | undefined, boxSize: string) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,17 @@
1
+ import { Param, ParamValue, ParamValueMap, ResourceRefValue } from './param-editor.types';
2
+ export interface ParamEditorRowProps {
3
+ param: Param;
4
+ values?: ParamValueMap;
5
+ onChange?: (id: string, value: ParamValue) => void;
6
+ onOpenResource?: (ref: ResourceRefValue) => void;
7
+ readOnly?: boolean;
8
+ fullWidth?: boolean;
9
+ variant?: "default" | "small";
10
+ }
11
+ /**
12
+ * The padded field row every param surface is built from. Surfaces that compose
13
+ * their own list of fields — a command dialog mixing built-in and host-supplied
14
+ * controls — stack these instead of nesting one editor per field, so the whole
15
+ * form keeps a single rhythm.
16
+ */
17
+ export declare const ParamEditorRow: (props: ParamEditorRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -33,6 +33,20 @@ export interface SelectionOption {
33
33
  icon?: string;
34
34
  /** Palette key (e.g. "blue") applied to the option's icon. */
35
35
  color?: string;
36
+ description?: string;
37
+ disabled?: boolean;
38
+ }
39
+ /** Parent selector used to swap the option set of a grouped selection. */
40
+ export interface SelectionGroup {
41
+ id: string;
42
+ name: string;
43
+ defaultValue: string;
44
+ options: SelectionOption[];
45
+ placeholder?: string;
46
+ searchable?: boolean;
47
+ searchPlaceholder?: string;
48
+ emptyText?: string;
49
+ disabled?: boolean;
36
50
  }
37
51
  export interface SelectionParam extends BaseParam {
38
52
  type: "selection";
@@ -40,6 +54,10 @@ export interface SelectionParam extends BaseParam {
40
54
  options: SelectionOption[];
41
55
  multiSelect?: boolean;
42
56
  placeholder?: string;
57
+ searchable?: boolean;
58
+ searchPlaceholder?: string;
59
+ emptyText?: string;
60
+ group?: SelectionGroup;
43
61
  /** Adds a "clear" row so a single-select can be returned to unset. */
44
62
  clearable?: boolean;
45
63
  /**
@@ -0,0 +1,16 @@
1
+ import { ComponentType, HTMLAttributes } from 'react';
2
+ type GlyphIconProps = Omit<HTMLAttributes<HTMLSpanElement>, "children">;
3
+ export interface GlyphIconOptions {
4
+ /**
5
+ * Optical size relative to a round glyph. Every glyph is normalised to the same
6
+ * ink box, so square marks such as the level bars need trimming to carry the
7
+ * same visual weight as the status rings.
8
+ */
9
+ scale?: number;
10
+ }
11
+ /**
12
+ * Builds a component for one `prompt-studio-icons` glyph so lucide icons and
13
+ * font glyphs share a single component type in the icon registry.
14
+ */
15
+ export declare const createGlyphIcon: (glyph: string, options?: GlyphIconOptions) => ComponentType<GlyphIconProps>;
16
+ export {};
@@ -1,16 +1,4 @@
1
- import { ComponentType } from 'react';
2
- export interface IconColorPickerIconOption {
3
- value: string | null;
4
- label: string;
5
- icon: ComponentType;
6
- }
7
- export declare const optionColors: readonly ["gray", "red", "orange", "yellow", "green", "teal", "blue", "cyan", "purple", "pink"];
8
- export declare const optionIcons: {
9
- value: string;
10
- label: string;
11
- icon: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
12
- }[];
13
- export declare const getIconComponent: (name: string | null | undefined, iconOptions?: readonly IconColorPickerIconOption[]) => ComponentType;
1
+ import { IconColorPickerIconOption } from './icon-options';
14
2
  export interface IconColorPickerProps {
15
3
  color: string;
16
4
  colorOptions?: readonly string[];
@@ -20,6 +8,8 @@ export interface IconColorPickerProps {
20
8
  onIconChange?: (icon: string | null) => void;
21
9
  disabled?: boolean;
22
10
  showIcons?: boolean;
11
+ colorLabel?: string;
12
+ iconLabel?: string;
23
13
  "aria-label"?: string;
24
14
  }
25
15
  export declare const IconColorPicker: (props: IconColorPickerProps) => import("react/jsx-runtime").JSX.Element;