@pstdio/ui 0.18.0 → 0.19.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 (72) hide show
  1. package/dist/chat-ui.js +941 -899
  2. package/dist/chat-ui.js.map +1 -1
  3. package/dist/components/chat-ui/components/chat-message-list-items.d.ts +17 -0
  4. package/dist/components/chat-ui/components/message-types.d.ts +1 -0
  5. package/dist/components/chat-ui/components/timeline.d.ts +2 -0
  6. package/dist/components/chat-ui/tool-rendering/default-renderers.d.ts +1 -0
  7. package/dist/components/chat-ui/tool-rendering/shared.d.ts +3 -2
  8. package/dist/components/chat-ui/tool-rendering/standard-renderers.d.ts +1 -0
  9. package/dist/components/data-table/data-table-skeleton.d.ts +13 -0
  10. package/dist/components/data-table/index.d.ts +2 -0
  11. package/dist/components/overlays/dialog-accept-shortcut.d.ts +12 -0
  12. package/dist/components/overlays/index.d.ts +1 -0
  13. package/dist/components/param-editor/index.d.ts +3 -1
  14. package/dist/components/param-editor/inputs/selection-input.d.ts +5 -0
  15. package/dist/components/param-editor/inputs/selection-menu.d.ts +6 -0
  16. package/dist/components/param-editor/param-editor-row.d.ts +17 -0
  17. package/dist/components/param-editor/param-editor.types.d.ts +18 -0
  18. package/dist/components/primitives/glyph-icon.d.ts +16 -0
  19. package/dist/components/primitives/icon-color-picker.d.ts +3 -13
  20. package/dist/components/primitives/icon-options.d.ts +301 -0
  21. package/dist/components/primitives/index.d.ts +10 -3
  22. package/dist/components/primitives/segmented-control.d.ts +20 -0
  23. package/dist/components/primitives/tag-swatch.d.ts +10 -0
  24. package/dist/components/tag-editor/index.d.ts +4 -0
  25. package/dist/components/tag-editor/tag-editor-heading.d.ts +11 -0
  26. package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
  27. package/dist/components/tag-editor/tag-editor-save-bar.d.ts +13 -0
  28. package/dist/components/tag-editor/tag-editor.types.d.ts +11 -11
  29. package/dist/components/tag-editor/tag-settings-panel.d.ts +3 -1
  30. package/dist/data-table.js +564 -522
  31. package/dist/data-table.js.map +1 -1
  32. package/dist/dialog-accept-shortcut-DAEBsoWW.js +7 -0
  33. package/dist/dialog-accept-shortcut-DAEBsoWW.js.map +1 -0
  34. package/dist/diff.js +2 -2
  35. package/dist/font/css/prompt-studio-icons.css +36 -6
  36. package/dist/font/prompt-studio-icons.eot +0 -0
  37. package/dist/font/prompt-studio-icons.svg +1 -1
  38. package/dist/font/prompt-studio-icons.ttf +0 -0
  39. package/dist/font/prompt-studio-icons.woff +0 -0
  40. package/dist/font/prompt-studio-icons.woff2 +0 -0
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +1978 -1712
  43. package/dist/index.js.map +1 -1
  44. package/dist/{kanban-renderer-toolbar-Db1mIWWd.js → kanban-renderer-toolbar-Bcj_N1qr.js} +66 -66
  45. package/dist/kanban-renderer-toolbar-Bcj_N1qr.js.map +1 -0
  46. package/dist/kanban-renderer.js +138 -135
  47. package/dist/kanban-renderer.js.map +1 -1
  48. package/dist/list-row-BtoVJpFs.js +821 -0
  49. package/dist/list-row-BtoVJpFs.js.map +1 -0
  50. package/dist/param-editor-XRjSu6MT.js +161 -0
  51. package/dist/param-editor-XRjSu6MT.js.map +1 -0
  52. package/dist/param-editor-field-B9lEPq8c.js +3028 -0
  53. package/dist/param-editor-field-B9lEPq8c.js.map +1 -0
  54. package/dist/style.css +1 -1
  55. package/dist/theme/primitives/sizes.d.ts +59 -0
  56. package/dist/theme/recipes/segmented-control.d.ts +22 -0
  57. package/dist/theme/recipes/switch.d.ts +1 -0
  58. package/dist/theme/recipes/tabs.d.ts +11 -0
  59. package/dist/{theme-poQlUgt0.js → theme-7PDdD9OD.js} +200 -120
  60. package/dist/theme-7PDdD9OD.js.map +1 -0
  61. package/dist/theme.js +1 -1
  62. package/dist/{tree-list-BAja2eXU.js → tree-list-B2L0cTj2.js} +2 -2
  63. package/dist/{tree-list-BAja2eXU.js.map → tree-list-B2L0cTj2.js.map} +1 -1
  64. package/package.json +2 -2
  65. package/dist/kanban-renderer-toolbar-Db1mIWWd.js.map +0 -1
  66. package/dist/list-row-BYWwcbGK.js +0 -823
  67. package/dist/list-row-BYWwcbGK.js.map +0 -1
  68. package/dist/param-editor-BCZOw5Gt.js +0 -140
  69. package/dist/param-editor-BCZOw5Gt.js.map +0 -1
  70. package/dist/param-editor-field-ZzZwgjZ_.js +0 -2094
  71. package/dist/param-editor-field-ZzZwgjZ_.js.map +0 -1
  72. 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;
@@ -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 {};
@@ -1,4 +1,6 @@
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';
@@ -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;
@@ -0,0 +1,301 @@
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: ComponentType<{
12
+ color?: string | undefined | undefined;
13
+ translate?: "yes" | "no" | undefined | undefined;
14
+ content?: string | undefined | undefined;
15
+ slot?: string | undefined | undefined;
16
+ style?: import('react').CSSProperties | undefined;
17
+ title?: string | undefined | undefined;
18
+ defaultChecked?: boolean | undefined | undefined;
19
+ defaultValue?: string | number | readonly string[] | undefined;
20
+ suppressContentEditableWarning?: boolean | undefined | undefined;
21
+ suppressHydrationWarning?: boolean | undefined | undefined;
22
+ accessKey?: string | undefined | undefined;
23
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
24
+ autoFocus?: boolean | undefined | undefined;
25
+ className?: string | undefined | undefined;
26
+ contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
27
+ contextMenu?: string | undefined | undefined;
28
+ dir?: string | undefined | undefined;
29
+ draggable?: (boolean | "true" | "false") | undefined;
30
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
31
+ hidden?: boolean | undefined | undefined;
32
+ id?: string | undefined | undefined;
33
+ lang?: string | undefined | undefined;
34
+ nonce?: string | undefined | undefined;
35
+ spellCheck?: (boolean | "true" | "false") | undefined;
36
+ tabIndex?: number | undefined | undefined;
37
+ radioGroup?: string | undefined | undefined;
38
+ role?: import('react').AriaRole | undefined;
39
+ about?: string | undefined | undefined;
40
+ datatype?: string | undefined | undefined;
41
+ inlist?: any;
42
+ prefix?: string | undefined | undefined;
43
+ property?: string | undefined | undefined;
44
+ rel?: string | undefined | undefined;
45
+ resource?: string | undefined | undefined;
46
+ rev?: string | undefined | undefined;
47
+ typeof?: string | undefined | undefined;
48
+ vocab?: string | undefined | undefined;
49
+ autoCorrect?: string | undefined | undefined;
50
+ autoSave?: string | undefined | undefined;
51
+ itemProp?: string | undefined | undefined;
52
+ itemScope?: boolean | undefined | undefined;
53
+ itemType?: string | undefined | undefined;
54
+ itemID?: string | undefined | undefined;
55
+ itemRef?: string | undefined | undefined;
56
+ results?: number | undefined | undefined;
57
+ security?: string | undefined | undefined;
58
+ unselectable?: "on" | "off" | undefined | undefined;
59
+ popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
60
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
61
+ popoverTarget?: string | undefined | undefined;
62
+ inert?: boolean | undefined | undefined;
63
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
64
+ is?: string | undefined | undefined;
65
+ exportparts?: string | undefined | undefined;
66
+ part?: string | undefined | undefined;
67
+ "aria-activedescendant"?: string | undefined | undefined;
68
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
69
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
70
+ "aria-braillelabel"?: string | undefined | undefined;
71
+ "aria-brailleroledescription"?: string | undefined | undefined;
72
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
73
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
74
+ "aria-colcount"?: number | undefined | undefined;
75
+ "aria-colindex"?: number | undefined | undefined;
76
+ "aria-colindextext"?: string | undefined | undefined;
77
+ "aria-colspan"?: number | undefined | undefined;
78
+ "aria-controls"?: string | undefined | undefined;
79
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
80
+ "aria-describedby"?: string | undefined | undefined;
81
+ "aria-description"?: string | undefined | undefined;
82
+ "aria-details"?: string | undefined | undefined;
83
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
84
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
85
+ "aria-errormessage"?: string | undefined | undefined;
86
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
87
+ "aria-flowto"?: string | undefined | undefined;
88
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
89
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
90
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
91
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
92
+ "aria-keyshortcuts"?: string | undefined | undefined;
93
+ "aria-label"?: string | undefined | undefined;
94
+ "aria-labelledby"?: string | undefined | undefined;
95
+ "aria-level"?: number | undefined | undefined;
96
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
97
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
98
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
99
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
100
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
101
+ "aria-owns"?: string | undefined | undefined;
102
+ "aria-placeholder"?: string | undefined | undefined;
103
+ "aria-posinset"?: number | undefined | undefined;
104
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
105
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
106
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
107
+ "aria-required"?: (boolean | "true" | "false") | undefined;
108
+ "aria-roledescription"?: string | undefined | undefined;
109
+ "aria-rowcount"?: number | undefined | undefined;
110
+ "aria-rowindex"?: number | undefined | undefined;
111
+ "aria-rowindextext"?: string | undefined | undefined;
112
+ "aria-rowspan"?: number | undefined | undefined;
113
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
114
+ "aria-setsize"?: number | undefined | undefined;
115
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
116
+ "aria-valuemax"?: number | undefined | undefined;
117
+ "aria-valuemin"?: number | undefined | undefined;
118
+ "aria-valuenow"?: number | undefined | undefined;
119
+ "aria-valuetext"?: string | undefined | undefined;
120
+ dangerouslySetInnerHTML?: {
121
+ __html: string | TrustedHTML;
122
+ } | undefined | undefined;
123
+ onCopy?: import('react').ClipboardEventHandler<HTMLSpanElement> | undefined;
124
+ onCopyCapture?: import('react').ClipboardEventHandler<HTMLSpanElement> | undefined;
125
+ onCut?: import('react').ClipboardEventHandler<HTMLSpanElement> | undefined;
126
+ onCutCapture?: import('react').ClipboardEventHandler<HTMLSpanElement> | undefined;
127
+ onPaste?: import('react').ClipboardEventHandler<HTMLSpanElement> | undefined;
128
+ onPasteCapture?: import('react').ClipboardEventHandler<HTMLSpanElement> | undefined;
129
+ onCompositionEnd?: import('react').CompositionEventHandler<HTMLSpanElement> | undefined;
130
+ onCompositionEndCapture?: import('react').CompositionEventHandler<HTMLSpanElement> | undefined;
131
+ onCompositionStart?: import('react').CompositionEventHandler<HTMLSpanElement> | undefined;
132
+ onCompositionStartCapture?: import('react').CompositionEventHandler<HTMLSpanElement> | undefined;
133
+ onCompositionUpdate?: import('react').CompositionEventHandler<HTMLSpanElement> | undefined;
134
+ onCompositionUpdateCapture?: import('react').CompositionEventHandler<HTMLSpanElement> | undefined;
135
+ onFocus?: import('react').FocusEventHandler<HTMLSpanElement> | undefined;
136
+ onFocusCapture?: import('react').FocusEventHandler<HTMLSpanElement> | undefined;
137
+ onBlur?: import('react').FocusEventHandler<HTMLSpanElement> | undefined;
138
+ onBlurCapture?: import('react').FocusEventHandler<HTMLSpanElement> | undefined;
139
+ onChange?: import('react').ChangeEventHandler<HTMLSpanElement, Element> | undefined;
140
+ onChangeCapture?: import('react').ChangeEventHandler<HTMLSpanElement, Element> | undefined;
141
+ onBeforeInput?: import('react').InputEventHandler<HTMLSpanElement> | undefined;
142
+ onBeforeInputCapture?: import('react').InputEventHandler<HTMLSpanElement> | undefined;
143
+ onInput?: import('react').InputEventHandler<HTMLSpanElement> | undefined;
144
+ onInputCapture?: import('react').InputEventHandler<HTMLSpanElement> | undefined;
145
+ onReset?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
146
+ onResetCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
147
+ onSubmit?: import('react').SubmitEventHandler<HTMLSpanElement> | undefined;
148
+ onSubmitCapture?: import('react').SubmitEventHandler<HTMLSpanElement> | undefined;
149
+ onInvalid?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
150
+ onInvalidCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
151
+ onLoad?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
152
+ onLoadCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
153
+ onError?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
154
+ onErrorCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
155
+ onKeyDown?: import('react').KeyboardEventHandler<HTMLSpanElement> | undefined;
156
+ onKeyDownCapture?: import('react').KeyboardEventHandler<HTMLSpanElement> | undefined;
157
+ onKeyPress?: import('react').KeyboardEventHandler<HTMLSpanElement> | undefined;
158
+ onKeyPressCapture?: import('react').KeyboardEventHandler<HTMLSpanElement> | undefined;
159
+ onKeyUp?: import('react').KeyboardEventHandler<HTMLSpanElement> | undefined;
160
+ onKeyUpCapture?: import('react').KeyboardEventHandler<HTMLSpanElement> | undefined;
161
+ onAbort?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
162
+ onAbortCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
163
+ onCanPlay?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
164
+ onCanPlayCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
165
+ onCanPlayThrough?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
166
+ onCanPlayThroughCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
167
+ onDurationChange?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
168
+ onDurationChangeCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
169
+ onEmptied?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
170
+ onEmptiedCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
171
+ onEncrypted?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
172
+ onEncryptedCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
173
+ onEnded?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
174
+ onEndedCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
175
+ onLoadedData?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
176
+ onLoadedDataCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
177
+ onLoadedMetadata?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
178
+ onLoadedMetadataCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
179
+ onLoadStart?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
180
+ onLoadStartCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
181
+ onPause?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
182
+ onPauseCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
183
+ onPlay?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
184
+ onPlayCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
185
+ onPlaying?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
186
+ onPlayingCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
187
+ onProgress?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
188
+ onProgressCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
189
+ onRateChange?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
190
+ onRateChangeCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
191
+ onSeeked?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
192
+ onSeekedCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
193
+ onSeeking?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
194
+ onSeekingCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
195
+ onStalled?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
196
+ onStalledCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
197
+ onSuspend?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
198
+ onSuspendCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
199
+ onTimeUpdate?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
200
+ onTimeUpdateCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
201
+ onVolumeChange?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
202
+ onVolumeChangeCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
203
+ onWaiting?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
204
+ onWaitingCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
205
+ onAuxClick?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
206
+ onAuxClickCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
207
+ onClick?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
208
+ onClickCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
209
+ onContextMenu?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
210
+ onContextMenuCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
211
+ onDoubleClick?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
212
+ onDoubleClickCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
213
+ onDrag?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
214
+ onDragCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
215
+ onDragEnd?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
216
+ onDragEndCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
217
+ onDragEnter?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
218
+ onDragEnterCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
219
+ onDragExit?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
220
+ onDragExitCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
221
+ onDragLeave?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
222
+ onDragLeaveCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
223
+ onDragOver?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
224
+ onDragOverCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
225
+ onDragStart?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
226
+ onDragStartCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
227
+ onDrop?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
228
+ onDropCapture?: import('react').DragEventHandler<HTMLSpanElement> | undefined;
229
+ onMouseDown?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
230
+ onMouseDownCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
231
+ onMouseEnter?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
232
+ onMouseLeave?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
233
+ onMouseMove?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
234
+ onMouseMoveCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
235
+ onMouseOut?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
236
+ onMouseOutCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
237
+ onMouseOver?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
238
+ onMouseOverCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
239
+ onMouseUp?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
240
+ onMouseUpCapture?: import('react').MouseEventHandler<HTMLSpanElement> | undefined;
241
+ onSelect?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
242
+ onSelectCapture?: import('react').ReactEventHandler<HTMLSpanElement> | undefined;
243
+ onTouchCancel?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
244
+ onTouchCancelCapture?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
245
+ onTouchEnd?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
246
+ onTouchEndCapture?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
247
+ onTouchMove?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
248
+ onTouchMoveCapture?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
249
+ onTouchStart?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
250
+ onTouchStartCapture?: import('react').TouchEventHandler<HTMLSpanElement> | undefined;
251
+ onPointerDown?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
252
+ onPointerDownCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
253
+ onPointerMove?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
254
+ onPointerMoveCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
255
+ onPointerUp?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
256
+ onPointerUpCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
257
+ onPointerCancel?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
258
+ onPointerCancelCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
259
+ onPointerEnter?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
260
+ onPointerLeave?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
261
+ onPointerOver?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
262
+ onPointerOverCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
263
+ onPointerOut?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
264
+ onPointerOutCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
265
+ onGotPointerCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
266
+ onGotPointerCaptureCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
267
+ onLostPointerCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
268
+ onLostPointerCaptureCapture?: import('react').PointerEventHandler<HTMLSpanElement> | undefined;
269
+ onScroll?: import('react').UIEventHandler<HTMLSpanElement> | undefined;
270
+ onScrollCapture?: import('react').UIEventHandler<HTMLSpanElement> | undefined;
271
+ onScrollEnd?: import('react').UIEventHandler<HTMLSpanElement> | undefined;
272
+ onScrollEndCapture?: import('react').UIEventHandler<HTMLSpanElement> | undefined;
273
+ onWheel?: import('react').WheelEventHandler<HTMLSpanElement> | undefined;
274
+ onWheelCapture?: import('react').WheelEventHandler<HTMLSpanElement> | undefined;
275
+ onAnimationStart?: import('react').AnimationEventHandler<HTMLSpanElement> | undefined;
276
+ onAnimationStartCapture?: import('react').AnimationEventHandler<HTMLSpanElement> | undefined;
277
+ onAnimationEnd?: import('react').AnimationEventHandler<HTMLSpanElement> | undefined;
278
+ onAnimationEndCapture?: import('react').AnimationEventHandler<HTMLSpanElement> | undefined;
279
+ onAnimationIteration?: import('react').AnimationEventHandler<HTMLSpanElement> | undefined;
280
+ onAnimationIterationCapture?: import('react').AnimationEventHandler<HTMLSpanElement> | undefined;
281
+ onToggle?: import('react').ToggleEventHandler<HTMLSpanElement> | undefined;
282
+ onBeforeToggle?: import('react').ToggleEventHandler<HTMLSpanElement> | undefined;
283
+ onTransitionCancel?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
284
+ onTransitionCancelCapture?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
285
+ onTransitionEnd?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
286
+ onTransitionEndCapture?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
287
+ onTransitionRun?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
288
+ onTransitionRunCapture?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
289
+ onTransitionStart?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
290
+ onTransitionStartCapture?: import('react').TransitionEventHandler<HTMLSpanElement> | undefined;
291
+ }>;
292
+ } | {
293
+ value: null;
294
+ label: string;
295
+ icon: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
296
+ } | {
297
+ value: string;
298
+ label: string;
299
+ icon: import('react').ForwardRefExoticComponent<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
300
+ })[];
301
+ export declare const getIconComponent: (name: string | null | undefined, iconOptions?: readonly IconColorPickerIconOption[]) => ComponentType;
@@ -10,20 +10,27 @@ export { ContentPlaceholder, Label as ContentPlaceholderLabel } from './content-
10
10
  export type { EmptyStateProps } from './empty-state';
11
11
  export { EmptyState } from './empty-state';
12
12
  export { ErrorBoundary } from './error-boundary';
13
- export type { IconColorPickerIconOption, IconColorPickerProps } from './icon-color-picker';
14
- export { getIconComponent, IconColorPicker, optionColors, optionIcons } from './icon-color-picker';
13
+ export { createGlyphIcon } from './glyph-icon';
14
+ export type { IconColorPickerProps } from './icon-color-picker';
15
+ export { IconColorPicker } from './icon-color-picker';
16
+ export type { IconColorPickerIconOption } from './icon-options';
17
+ export { getIconComponent, optionColors, optionIcons } from './icon-options';
15
18
  export type { IntegrationCardProps } from './integration-card';
16
19
  export { IntegrationCard } from './integration-card';
17
20
  export type { RadioProps } from './radio';
18
21
  export { Radio, RadioGroup } from './radio';
19
22
  export { ResourceBadge } from './resource-badge';
20
23
  export { ScrollArea } from './scroll-area';
24
+ export type { SegmentedControlOption, SegmentedControlProps } from './segmented-control';
25
+ export { SegmentedControl } from './segmented-control';
21
26
  export type { SessionCompletionStatus } from './session-indicator';
22
- export { resolveSessionIndicatorColor, resolveSessionIndicatorIcon, SessionIndicator } from './session-indicator';
27
+ export { resolveSessionIndicatorColor, resolveSessionIndicatorIcon, SessionIndicator, sessionCompletionStatuses, } from './session-indicator';
23
28
  export type { SimpleCardBodyProps, SimpleCardProps } from './simple-card';
24
29
  export { SimpleCard, SimpleCardBody } from './simple-card';
25
30
  export type { SwitchProps } from './switch';
26
31
  export { Switch } from './switch';
32
+ export type { TagSwatchProps } from './tag-swatch';
33
+ export { TagSwatch } from './tag-swatch';
27
34
  export { Toaster, toaster } from './toaster';
28
35
  export { Tooltip } from './tooltip';
29
36
  export type { WorkspaceBadgeProps } from './workspace-badge';