@pstdio/ui 0.16.0 → 0.18.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 (210) hide show
  1. package/dist/{MermaidComponent-BCMQqPqu.js → MermaidComponent-BPiVFNYK.js} +2 -2
  2. package/dist/{MermaidComponent-BCMQqPqu.js.map → MermaidComponent-BPiVFNYK.js.map} +1 -1
  3. package/dist/chat-ui.js +1618 -1102
  4. package/dist/chat-ui.js.map +1 -1
  5. package/dist/{checkbox-D5AzFRlb.js → checkbox-B2zYVemL.js} +28 -28
  6. package/dist/checkbox-B2zYVemL.js.map +1 -0
  7. package/dist/components/chat-ui/components/chat-input-actions.d.ts +1 -0
  8. package/dist/components/chat-ui/components/chat-input.d.ts +8 -2
  9. package/dist/components/chat-ui/components/chat-panel.d.ts +11 -5
  10. package/dist/components/chat-ui/components/composer-constants.d.ts +1 -0
  11. package/dist/components/chat-ui/components/conversation-browse.d.ts +22 -0
  12. package/dist/components/chat-ui/components/message-types.d.ts +14 -0
  13. package/dist/components/chat-ui/components/queued-follow-up-list-state.d.ts +4 -0
  14. package/dist/components/chat-ui/components/queued-follow-up-list.d.ts +11 -0
  15. package/dist/components/chat-ui/components/timeline.d.ts +5 -0
  16. package/dist/components/chat-ui/components/working-indicator.d.ts +9 -0
  17. package/dist/components/chat-ui/components/workspace-hub.d.ts +8 -1
  18. package/dist/components/chat-ui/index.d.ts +4 -2
  19. package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +2 -2
  20. package/dist/components/chat-ui/tool-rendering/question-prompt.d.ts +9 -0
  21. package/dist/components/data-table/build-columns.d.ts +13 -2
  22. package/dist/components/data-table/categorical-color-cell.d.ts +8 -0
  23. package/dist/components/data-table/color-cell-style.d.ts +13 -0
  24. package/dist/components/data-table/color-scale-cell.d.ts +7 -0
  25. package/dist/components/data-table/data-table-column-menu.d.ts +15 -0
  26. package/dist/components/data-table/data-table-header.d.ts +10 -0
  27. package/dist/components/data-table/data-table-stat-chart.d.ts +21 -0
  28. package/dist/components/data-table/data-table-state.d.ts +27 -0
  29. package/dist/components/data-table/data-table-stats-row.d.ts +11 -0
  30. package/dist/components/data-table/data-table-stats.d.ts +19 -0
  31. package/dist/components/data-table/data-table-table-parts.d.ts +21 -0
  32. package/dist/components/data-table/data-table.story-descriptions.d.ts +6 -0
  33. package/dist/components/data-table/data-table.story-fixtures.d.ts +6 -0
  34. package/dist/components/data-table/editable-cells-story.d.ts +9 -0
  35. package/dist/components/data-table/friendly-json-display.d.ts +31 -0
  36. package/dist/components/data-table/index.d.ts +3 -1
  37. package/dist/components/data-table/json-cell.d.ts +6 -0
  38. package/dist/components/data-table/pagination-footer.d.ts +4 -1
  39. package/dist/components/data-table/selection-toolbar.d.ts +3 -1
  40. package/dist/components/data-table/types.d.ts +72 -0
  41. package/dist/components/diff-viewer/code-editor.d.ts +2 -0
  42. package/dist/components/diff-viewer/index.d.ts +1 -1
  43. package/dist/components/diff-viewer/monaco-browser.d.ts +1 -0
  44. package/dist/components/{data-renderer → kanban-renderer}/display-menu.d.ts +4 -4
  45. package/dist/components/{data-renderer → kanban-renderer}/filter-menu.d.ts +3 -3
  46. package/dist/components/kanban-renderer/index.d.ts +19 -0
  47. package/dist/components/kanban-renderer/kanban-renderer-attribute-badge.d.ts +7 -0
  48. package/dist/components/{data-renderer/data-renderer-board-column-header.d.ts → kanban-renderer/kanban-renderer-board-column-header.d.ts} +2 -2
  49. package/dist/components/{data-renderer/data-renderer-board-group-section.d.ts → kanban-renderer/kanban-renderer-board-group-section.d.ts} +2 -2
  50. package/dist/components/{data-renderer/data-renderer-board-move.d.ts → kanban-renderer/kanban-renderer-board-move.d.ts} +3 -3
  51. package/dist/components/{data-renderer/data-renderer-board.d.ts → kanban-renderer/kanban-renderer-board.d.ts} +15 -14
  52. package/dist/components/{data-renderer/data-renderer-card.d.ts → kanban-renderer/kanban-renderer-card.d.ts} +4 -3
  53. package/dist/components/{data-renderer/data-renderer-content.d.ts → kanban-renderer/kanban-renderer-content.d.ts} +8 -8
  54. package/dist/components/kanban-renderer/kanban-renderer-create-dialog.d.ts +12 -0
  55. package/dist/components/kanban-renderer/kanban-renderer-create-field.d.ts +10 -0
  56. package/dist/components/kanban-renderer/kanban-renderer-grouping.d.ts +23 -0
  57. package/dist/components/{data-renderer/data-renderer-helpers.d.ts → kanban-renderer/kanban-renderer-helpers.d.ts} +15 -15
  58. package/dist/components/kanban-renderer/kanban-renderer-list-items.d.ts +25 -0
  59. package/dist/components/kanban-renderer/kanban-renderer-list.d.ts +43 -0
  60. package/dist/components/{data-renderer/data-renderer-story-fixtures.d.ts → kanban-renderer/kanban-renderer-story-fixtures.d.ts} +3 -2
  61. package/dist/components/kanban-renderer/kanban-renderer-toolbar.d.ts +15 -0
  62. package/dist/components/kanban-renderer/kanban-renderer-view-bar.d.ts +14 -0
  63. package/dist/components/kanban-renderer/kanban-renderer-views.d.ts +12 -0
  64. package/dist/components/{data-renderer/data-renderer.d.ts → kanban-renderer/kanban-renderer.d.ts} +11 -8
  65. package/dist/components/{data-renderer → kanban-renderer}/types.d.ts +51 -8
  66. package/dist/components/kanban-renderer/use-kanban-renderer-store.d.ts +78 -0
  67. package/dist/components/layout/index.d.ts +1 -0
  68. package/dist/components/layout/panel-header.constants.d.ts +2 -0
  69. package/dist/components/layout/resizable-split-layout.d.ts +3 -2
  70. package/dist/components/layout/resizable-split-layout.geometry.d.ts +56 -0
  71. package/dist/components/layout/resizable-split-layout.handle.d.ts +6 -2
  72. package/dist/components/layout/resizable-split-layout.panels.d.ts +25 -0
  73. package/dist/components/list-row/list-row-actions.d.ts +1 -0
  74. package/dist/components/list-row/list-row-content.d.ts +7 -0
  75. package/dist/components/list-row/list-row.types.d.ts +4 -1
  76. package/dist/components/overlays/attached-menu.d.ts +6 -0
  77. package/dist/components/overlays/attachment-chip.d.ts +13 -0
  78. package/dist/components/overlays/index.d.ts +6 -2
  79. package/dist/components/overlays/resource-context-menu.d.ts +13 -1
  80. package/dist/components/overlays/searchable-menu-input.d.ts +9 -0
  81. package/dist/components/param-editor/index.d.ts +6 -2
  82. package/dist/components/param-editor/inputs/action-input.d.ts +1 -0
  83. package/dist/components/param-editor/inputs/boolean-input.d.ts +13 -0
  84. package/dist/components/param-editor/inputs/color-input.d.ts +1 -0
  85. package/dist/components/param-editor/inputs/date-input.d.ts +1 -0
  86. package/dist/components/param-editor/inputs/file-upload-input.d.ts +15 -0
  87. package/dist/components/param-editor/inputs/file-upload-value.d.ts +7 -0
  88. package/dist/components/param-editor/inputs/horizontal-text-input.d.ts +1 -0
  89. package/dist/components/param-editor/inputs/markdown-input.d.ts +13 -0
  90. package/dist/components/param-editor/inputs/number-input.d.ts +1 -0
  91. package/dist/components/param-editor/inputs/range-input.d.ts +1 -0
  92. package/dist/components/param-editor/inputs/resource-input.d.ts +2 -0
  93. package/dist/components/param-editor/inputs/segmented-input.d.ts +1 -0
  94. package/dist/components/param-editor/inputs/selection-input.d.ts +7 -6
  95. package/dist/components/param-editor/inputs/selection-menu.d.ts +33 -0
  96. package/dist/components/param-editor/inputs/text-input.d.ts +1 -0
  97. package/dist/components/param-editor/param-editor-advanced-field.d.ts +14 -0
  98. package/dist/components/param-editor/param-editor-control-fixtures.d.ts +24 -0
  99. package/dist/components/param-editor/param-editor-field.d.ts +2 -0
  100. package/dist/components/param-editor/param-editor-horizontal.d.ts +3 -2
  101. package/dist/components/param-editor/param-editor-label.d.ts +1 -0
  102. package/dist/components/param-editor/param-editor-presentation.d.ts +3 -0
  103. package/dist/components/param-editor/param-editor-read-only-field.d.ts +9 -0
  104. package/dist/components/param-editor/param-editor-section.d.ts +1 -0
  105. package/dist/components/param-editor/param-editor.d.ts +1 -0
  106. package/dist/components/param-editor/param-editor.types.d.ts +59 -18
  107. package/dist/components/param-editor/resolve-param-value.d.ts +2 -0
  108. package/dist/components/primitives/chip.d.ts +4 -0
  109. package/dist/components/primitives/index.d.ts +2 -0
  110. package/dist/components/primitives/resource-badge.d.ts +12 -10
  111. package/dist/components/rich-text/index.d.ts +1 -0
  112. package/dist/components/rich-text/lazy-markdown-editor.d.ts +2 -0
  113. package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.d.ts +2 -1
  114. package/dist/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.d.ts +2 -1
  115. package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.d.ts +2 -1
  116. package/dist/components/rich-text/prompt-input/prompt-input.d.ts +3 -2
  117. package/dist/components/rich-text/types.d.ts +1 -1
  118. package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
  119. package/dist/components/{sidebar/sidebar-footer.d.ts → sidenav/sidenav-footer.d.ts} +2 -2
  120. package/dist/components/{sidebar/sidebar-header.d.ts → sidenav/sidenav-header.d.ts} +2 -2
  121. package/dist/components/sidenav/sidenav.d.ts +2 -0
  122. package/dist/components/sidenav/sidenav.store.d.ts +49 -0
  123. package/dist/components/{sidebar/sidebar.types.d.ts → sidenav/sidenav.types.d.ts} +5 -5
  124. package/dist/components/tab-strip/tab-visibility-filter.d.ts +1 -0
  125. package/dist/components/terminal/terminal.d.ts +11 -0
  126. package/dist/components/tree-list/tree-list-visibility-filter.d.ts +0 -1
  127. package/dist/components/tree-list/tree-list.d.ts +1 -1
  128. package/dist/components/tree-list/tree-list.types.d.ts +4 -0
  129. package/dist/data-table.js +1321 -0
  130. package/dist/data-table.js.map +1 -0
  131. package/dist/diff.js +370 -366
  132. package/dist/diff.js.map +1 -1
  133. package/dist/font/css/prompt-studio-icons.css +690 -0
  134. package/dist/font/prompt-studio-icons.eot +0 -0
  135. package/dist/font/prompt-studio-icons.svg +1 -0
  136. package/dist/font/prompt-studio-icons.ttf +0 -0
  137. package/dist/font/prompt-studio-icons.woff +0 -0
  138. package/dist/font/prompt-studio-icons.woff2 +0 -0
  139. package/dist/index.d.ts +3 -3
  140. package/dist/index.js +1854 -3381
  141. package/dist/index.js.map +1 -1
  142. package/dist/kanban-renderer-toolbar-Db1mIWWd.js +1318 -0
  143. package/dist/kanban-renderer-toolbar-Db1mIWWd.js.map +1 -0
  144. package/dist/kanban-renderer.js +1101 -0
  145. package/dist/kanban-renderer.js.map +1 -0
  146. package/dist/lazy-markdown-editor-DwhqQ-NN.js +26 -0
  147. package/dist/lazy-markdown-editor-DwhqQ-NN.js.map +1 -0
  148. package/dist/list-row-BYWwcbGK.js +823 -0
  149. package/dist/list-row-BYWwcbGK.js.map +1 -0
  150. package/dist/markdown-DDd2ESoH.js +743 -0
  151. package/dist/markdown-DDd2ESoH.js.map +1 -0
  152. package/dist/markdown-editor-CYVkzt8t.js +741 -0
  153. package/dist/markdown-editor-CYVkzt8t.js.map +1 -0
  154. package/dist/monaco-browser-CO0NxK_Z.js +19 -0
  155. package/dist/monaco-browser-CO0NxK_Z.js.map +1 -0
  156. package/dist/param-editor-BCZOw5Gt.js +140 -0
  157. package/dist/param-editor-BCZOw5Gt.js.map +1 -0
  158. package/dist/param-editor-field-ZzZwgjZ_.js +2094 -0
  159. package/dist/param-editor-field-ZzZwgjZ_.js.map +1 -0
  160. package/dist/resource-badge-CuItchgL.js +98 -0
  161. package/dist/resource-badge-CuItchgL.js.map +1 -0
  162. package/dist/rich-message--eRzjWYK.js +730 -0
  163. package/dist/rich-message--eRzjWYK.js.map +1 -0
  164. package/dist/rich-text.js +114 -827
  165. package/dist/rich-text.js.map +1 -1
  166. package/dist/style.css +1 -1
  167. package/dist/terminal.js +197 -177
  168. package/dist/terminal.js.map +1 -1
  169. package/dist/theme/primitives/fonts.d.ts +3 -0
  170. package/dist/theme/primitives/sizes.d.ts +23 -0
  171. package/dist/theme/recipes/badge.d.ts +8 -0
  172. package/dist/theme/recipes/button.d.ts +6 -0
  173. package/dist/theme/recipes/color-picker.d.ts +18 -1
  174. package/dist/theme/recipes/switch.d.ts +17 -0
  175. package/dist/theme/recipes/tabs.d.ts +4 -4
  176. package/dist/theme/tokens/colors.d.ts +18 -24
  177. package/dist/{theme-CJBYBJaA.js → theme-poQlUgt0.js} +414 -240
  178. package/dist/theme-poQlUgt0.js.map +1 -0
  179. package/dist/theme.js +1 -1
  180. package/dist/tree-list-BAja2eXU.js +1033 -0
  181. package/dist/tree-list-BAja2eXU.js.map +1 -0
  182. package/package.json +11 -4
  183. package/dist/checkbox-D5AzFRlb.js.map +0 -1
  184. package/dist/components/data-renderer/card-interaction-guard.d.ts +0 -2
  185. package/dist/components/data-renderer/data-renderer-attribute-badge.d.ts +0 -7
  186. package/dist/components/data-renderer/data-renderer-grouping.d.ts +0 -23
  187. package/dist/components/data-renderer/data-renderer-list.d.ts +0 -39
  188. package/dist/components/data-renderer/data-renderer-toolbar.d.ts +0 -12
  189. package/dist/components/data-renderer/index.d.ts +0 -18
  190. package/dist/components/data-renderer/use-data-renderer-store.d.ts +0 -59
  191. package/dist/components/param-editor/inputs/file-accept.d.ts +0 -22
  192. package/dist/components/param-editor/inputs/file-drop-input.d.ts +0 -14
  193. package/dist/components/sidebar/sidebar.d.ts +0 -2
  194. package/dist/components/sidebar/sidebar.store.d.ts +0 -49
  195. package/dist/data-renderer.js +0 -1669
  196. package/dist/data-renderer.js.map +0 -1
  197. package/dist/list-row-mi3Hn-Um.js +0 -740
  198. package/dist/list-row-mi3Hn-Um.js.map +0 -1
  199. package/dist/resource-badge-qCWHP-wQ.js +0 -99
  200. package/dist/resource-badge-qCWHP-wQ.js.map +0 -1
  201. package/dist/rich-message-DBf_5YlW.js +0 -1450
  202. package/dist/rich-message-DBf_5YlW.js.map +0 -1
  203. package/dist/theme-CJBYBJaA.js.map +0 -1
  204. package/dist/tree-list-CcuZMLS5.js +0 -930
  205. package/dist/tree-list-CcuZMLS5.js.map +0 -1
  206. package/dist/workspace-badge-Fuo-1zPj.js +0 -314
  207. package/dist/workspace-badge-Fuo-1zPj.js.map +0 -1
  208. /package/dist/components/{data-renderer/data-renderer-badge-helpers.d.ts → kanban-renderer/kanban-renderer-badge-helpers.d.ts} +0 -0
  209. /package/dist/components/{data-renderer/data-renderer-enum-helpers.d.ts → kanban-renderer/kanban-renderer-enum-helpers.d.ts} +0 -0
  210. /package/dist/components/{data-renderer → kanban-renderer}/use-resolved-attributes.d.ts +0 -0
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from 'react';
2
+ export interface SelectionMenuOption {
3
+ id: string;
4
+ name: string;
5
+ icon?: string;
6
+ /** Palette key (e.g. "blue") applied to the option's icon. */
7
+ color?: string;
8
+ description?: string;
9
+ disabled?: boolean;
10
+ }
11
+ export interface SelectionMenuProps {
12
+ triggerLabel: ReactNode;
13
+ options: SelectionMenuOption[];
14
+ selectedIds: string[];
15
+ multiSelect: boolean;
16
+ disabled?: boolean;
17
+ fullWidth?: boolean;
18
+ triggerVariant?: "button" | "icon";
19
+ triggerAriaLabel?: string;
20
+ size?: "xs" | "sm";
21
+ onToggle: (optionId: string) => void;
22
+ }
23
+ export declare const selectionIndicator: (multiSelect: boolean, selected: boolean) => import("react/jsx-runtime").JSX.Element | null;
24
+ export declare const selectionOptionIcon: (option: SelectionMenuOption | undefined, boxSize: string) => import("react/jsx-runtime").JSX.Element | null;
25
+ /**
26
+ * The single dropdown behind every option picker in the editor — selection
27
+ * params and editable resource params alike. Sharing it is what keeps a
28
+ * resource attribute and a command param from drifting into two looks.
29
+ *
30
+ * Single-selects clear by re-picking the selected option; a dedicated "none"
31
+ * row would read as just another value to choose.
32
+ */
33
+ export declare const SelectionMenu: (props: SelectionMenuProps) => import("react/jsx-runtime").JSX.Element;
@@ -8,6 +8,7 @@ interface TextInputProps {
8
8
  singleLine?: boolean;
9
9
  hideLabel?: boolean;
10
10
  fullWidth?: boolean;
11
+ size?: "xs" | "sm";
11
12
  }
12
13
  export declare const TextInput: (props: TextInputProps) => import("react/jsx-runtime").JSX.Element;
13
14
  export {};
@@ -0,0 +1,14 @@
1
+ import { Param, ParamValue, ParamValueMap } from './param-editor.types';
2
+ type AdvancedParam = Extract<Param, {
3
+ type: "range" | "segmented" | "actions" | "anchorGrid" | "vector" | "fileUpload";
4
+ }>;
5
+ interface ParamEditorAdvancedFieldProps {
6
+ param: AdvancedParam;
7
+ defaultValues: ParamValueMap;
8
+ onChange: (id: string, value: ParamValue) => void;
9
+ readOnly?: boolean;
10
+ fullWidth?: boolean;
11
+ presentation: "stacked" | "horizontal";
12
+ }
13
+ export declare const ParamEditorAdvancedField: (props: ParamEditorAdvancedFieldProps) => import("react/jsx-runtime").JSX.Element | null;
14
+ export {};
@@ -0,0 +1,24 @@
1
+ import { Param, ParamValueMap } from './param-editor.types';
2
+ export interface ParamEditorInputFixture {
3
+ param: Param;
4
+ defaultValues: ParamValueMap;
5
+ }
6
+ export declare const paramEditorInputFixtures: {
7
+ boolean: ParamEditorInputFixture;
8
+ number: ParamEditorInputFixture;
9
+ text: ParamEditorInputFixture;
10
+ markdown: ParamEditorInputFixture;
11
+ selection: ParamEditorInputFixture;
12
+ date: ParamEditorInputFixture;
13
+ color: ParamEditorInputFixture;
14
+ property: ParamEditorInputFixture;
15
+ readOnly: ParamEditorInputFixture;
16
+ resource: ParamEditorInputFixture;
17
+ reference: ParamEditorInputFixture;
18
+ range: ParamEditorInputFixture;
19
+ segmented: ParamEditorInputFixture;
20
+ actions: ParamEditorInputFixture;
21
+ anchorGrid: ParamEditorInputFixture;
22
+ vector: ParamEditorInputFixture;
23
+ fileUpload: ParamEditorInputFixture;
24
+ };
@@ -6,6 +6,8 @@ interface ParamEditorFieldProps {
6
6
  onOpenResource?: (ref: ResourceRefValue) => void;
7
7
  readOnly?: boolean;
8
8
  fullWidth?: boolean;
9
+ presentation?: "stacked" | "horizontal";
10
+ size?: "xs" | "sm";
9
11
  }
10
12
  export declare const ParamEditorField: (props: ParamEditorFieldProps) => import("react/jsx-runtime").JSX.Element | null;
11
13
  export {};
@@ -1,10 +1,11 @@
1
- import { InputGroup, Param, ParamValue, ParamValueMap } from './param-editor.types';
1
+ import { InputGroup, Param, ParamValue, ParamValueMap, ResourceRefValue } from './param-editor.types';
2
2
  export interface ParamEditorHorizontalProps {
3
3
  params?: Param[];
4
4
  groups?: InputGroup[];
5
5
  defaultValues: ParamValueMap;
6
6
  onChange: (id: string, value: ParamValue) => void;
7
+ onOpenResource?: (ref: ResourceRefValue) => void;
7
8
  readOnly?: boolean;
8
- fullWidth?: boolean;
9
+ variant?: "default" | "small";
9
10
  }
10
11
  export declare const ParamEditorHorizontal: (props: ParamEditorHorizontalProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  interface ParamEditorLabelProps {
2
2
  name: string;
3
3
  description?: string;
4
+ compact?: boolean;
4
5
  }
5
6
  export declare const ParamEditorLabel: (props: ParamEditorLabelProps) => import("react/jsx-runtime").JSX.Element;
6
7
  export {};
@@ -0,0 +1,3 @@
1
+ import { Param } from './param-editor.types';
2
+ export declare const isParamEditorRichControl: (param: Param) => param is import('./param-editor.types').FileUploadParam;
3
+ export declare const isParamEditorHorizontalControl: (param: Param) => param is import('./param-editor.types').NumberParam | import('./param-editor.types').BooleanParam | import('./param-editor.types').TextParam | import('./param-editor.types').MarkdownParam | import('./param-editor.types').SelectionParam | import('./param-editor.types').DateParam | import('./param-editor.types').ColorParam | import('./param-editor.types').PropertyParam | import('./param-editor.types').ReadOnlyParam | import('./param-editor.types').ResourceParam | import('./param-editor.types').RangeParam | import('./param-editor.types').SegmentedParam | import('./param-editor.types').ActionsParam | import('./param-editor.types').VectorParam | import('./param-editor.types').FileUploadParam;
@@ -0,0 +1,9 @@
1
+ import { Param } from './param-editor.types';
2
+ interface ParamEditorReadOnlyFieldProps {
3
+ param: Extract<Param, {
4
+ type: "readOnly";
5
+ }>;
6
+ fullWidth?: boolean;
7
+ }
8
+ export declare const ParamEditorReadOnlyField: (props: ParamEditorReadOnlyFieldProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -11,6 +11,7 @@ interface ParamEditorSectionProps {
11
11
  collapsible?: boolean;
12
12
  defaultCollapsed?: boolean;
13
13
  isFirst?: boolean;
14
+ variant?: "default" | "small";
14
15
  }
15
16
  export declare const ParamEditorSection: (props: ParamEditorSectionProps) => import("react/jsx-runtime").JSX.Element;
16
17
  export {};
@@ -7,5 +7,6 @@ export interface ParamEditorProps {
7
7
  onOpenResource?: (ref: ResourceRefValue) => void;
8
8
  readOnly?: boolean;
9
9
  fullWidth?: boolean;
10
+ variant?: "default" | "small";
10
11
  }
11
12
  export declare const ParamEditor: (props: ParamEditorProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,6 +3,8 @@ export interface BaseParam {
3
3
  id: string;
4
4
  name: string;
5
5
  description?: string;
6
+ /** Locks this one param while the rest of the editor stays editable. */
7
+ readOnly?: boolean;
6
8
  }
7
9
  export interface NumberParam extends BaseParam {
8
10
  type: "number";
@@ -11,21 +13,40 @@ export interface NumberParam extends BaseParam {
11
13
  max?: number;
12
14
  step?: number;
13
15
  }
16
+ export interface BooleanParam extends BaseParam {
17
+ type: "boolean";
18
+ defaultValue: boolean;
19
+ }
14
20
  export interface TextParam extends BaseParam {
15
21
  type: "text";
16
22
  defaultValue: string;
17
23
  singleLine?: boolean;
18
24
  }
25
+ export interface MarkdownParam extends BaseParam {
26
+ type: "markdown";
27
+ defaultValue: string;
28
+ placeholder?: string;
29
+ }
30
+ export interface SelectionOption {
31
+ id: string;
32
+ name: string;
33
+ icon?: string;
34
+ /** Palette key (e.g. "blue") applied to the option's icon. */
35
+ color?: string;
36
+ }
19
37
  export interface SelectionParam extends BaseParam {
20
38
  type: "selection";
21
39
  defaultValue: string | string[];
22
- options: {
23
- id: string;
24
- name: string;
25
- icon?: string;
26
- }[];
40
+ options: SelectionOption[];
27
41
  multiSelect?: boolean;
28
42
  placeholder?: string;
43
+ /** Adds a "clear" row so a single-select can be returned to unset. */
44
+ clearable?: boolean;
45
+ /**
46
+ * Renders the control inert but still as a control — unlike `readOnly`, which
47
+ * collapses it to plain text and drops the option's icon.
48
+ */
49
+ disabled?: boolean;
29
50
  }
30
51
  export interface DateParam extends BaseParam {
31
52
  type: "date";
@@ -41,6 +62,23 @@ export interface PropertyParam extends BaseParam {
41
62
  type: "property";
42
63
  value: ReactNode;
43
64
  }
65
+ export interface ParamEditorReadOnlyImage {
66
+ src: string;
67
+ alt: string;
68
+ }
69
+ export type ParamEditorReadOnlyContent = string | number | boolean | null | Array<string | number | boolean | null> | {
70
+ type: "image";
71
+ src: string;
72
+ alt: string;
73
+ } | {
74
+ type: "image-gallery";
75
+ images: ParamEditorReadOnlyImage[];
76
+ };
77
+ /** Serializable display-only value rendered by the read-only Param Editor. */
78
+ export interface ReadOnlyParam extends BaseParam {
79
+ type: "readOnly";
80
+ value: ParamEditorReadOnlyContent;
81
+ }
44
82
  /** A reference the host can open (e.g. another resource tab). */
45
83
  export interface ResourceRefValue {
46
84
  type: string;
@@ -132,18 +170,21 @@ export interface VectorParam extends BaseParam {
132
170
  max?: number;
133
171
  step?: number;
134
172
  }
135
- /** File selection metadata. Not a live `File` object hosts own persistence. */
136
- export interface FileDropValue {
137
- name: string;
138
- mimeType?: string;
139
- size?: number;
140
- dataUrl?: string;
141
- }
142
- export interface FileDropParam extends BaseParam {
143
- type: "fileDrop";
144
- defaultValue: FileDropValue | null;
173
+ export type FileUploadStatus = "queued" | "uploading" | "complete" | "error";
174
+ /** A selected file and the host-controlled state of its upload. */
175
+ export interface FileUploadValue {
176
+ id: string;
177
+ file: File;
178
+ status: FileUploadStatus;
179
+ progress?: number;
180
+ error?: string;
181
+ }
182
+ export interface FileUploadParam extends BaseParam {
183
+ type: "fileUpload";
184
+ defaultValue: FileUploadValue[];
145
185
  accept?: string;
146
- assetKind?: "file" | "image";
186
+ multiple?: boolean;
187
+ uploadLabel?: string;
147
188
  }
148
189
  export interface InputGroup {
149
190
  id: string;
@@ -153,6 +194,6 @@ export interface InputGroup {
153
194
  collapsible?: boolean;
154
195
  defaultCollapsed?: boolean;
155
196
  }
156
- export type ParamValue = number | string | null | string[] | RangeValue | VectorValue | FileDropValue;
157
- export type Param = NumberParam | TextParam | SelectionParam | DateParam | ColorParam | PropertyParam | ResourceParam | RangeParam | SegmentedParam | ActionsParam | AnchorGridParam | VectorParam | FileDropParam;
197
+ export type ParamValue = number | string | boolean | null | string[] | RangeValue | VectorValue | FileUploadValue[];
198
+ export type Param = NumberParam | BooleanParam | TextParam | MarkdownParam | SelectionParam | DateParam | ColorParam | PropertyParam | ReadOnlyParam | ResourceParam | RangeParam | SegmentedParam | ActionsParam | AnchorGridParam | VectorParam | FileUploadParam;
158
199
  export type ParamValueMap = Record<string, ParamValue>;
@@ -0,0 +1,2 @@
1
+ import { ParamValueMap } from './param-editor.types';
2
+ export declare const resolveParamValue: <T>(defaultValues: ParamValueMap, paramId: string, fallback: T) => T;
@@ -0,0 +1,4 @@
1
+ import { BadgeProps } from '@chakra-ui/react';
2
+ export interface ChipProps extends Omit<BadgeProps, "size" | "variant"> {
3
+ }
4
+ export declare const Chip: (props: ChipProps) => import("react/jsx-runtime").JSX.Element;
@@ -4,6 +4,8 @@ export type { BreadcrumbItem } from './breadcrumb';
4
4
  export { Breadcrumb } from './breadcrumb';
5
5
  export type { CheckboxProps } from './checkbox';
6
6
  export { Checkbox } from './checkbox';
7
+ export type { ChipProps } from './chip';
8
+ export { Chip } from './chip';
7
9
  export { ContentPlaceholder, Label as ContentPlaceholderLabel } from './content-placeholder';
8
10
  export type { EmptyStateProps } from './empty-state';
9
11
  export { EmptyState } from './empty-state';
@@ -3,38 +3,40 @@ import { ReactNode } from 'react';
3
3
  declare const SIZE_STYLES: {
4
4
  readonly sm: {
5
5
  readonly container: {
6
- readonly height: "20px";
6
+ readonly height: "5";
7
7
  readonly lineHeight: {
8
- readonly base: "20px";
8
+ readonly base: "5";
9
9
  };
10
- readonly px: "2xs";
10
+ readonly px: "xs";
11
11
  };
12
12
  readonly iconSize: 12;
13
- readonly textStyle: "xs";
13
+ readonly textStyle: "label/XS";
14
14
  };
15
15
  readonly md: {
16
16
  readonly container: {
17
- readonly height: "24px";
17
+ readonly height: "6";
18
18
  readonly lineHeight: {
19
- readonly base: "24px";
19
+ readonly base: "6";
20
20
  };
21
21
  readonly px: "xs";
22
22
  };
23
23
  readonly iconSize: 14;
24
- readonly textStyle: "sm";
24
+ readonly textStyle: "label/S/regular";
25
25
  };
26
26
  };
27
27
  declare const TONE_STYLES: {
28
28
  readonly neutral: {
29
- readonly color: "color.primary";
30
- readonly bg: "bg.muted";
29
+ readonly color: "fg";
30
+ readonly bg: "bg.subtle";
31
+ readonly borderColor: "border";
31
32
  readonly _hover: {
32
- readonly bg: "bg.emphasized";
33
+ readonly bg: "bg.hover";
33
34
  };
34
35
  };
35
36
  readonly accent: {
36
37
  readonly color: "var(--schub-foreground-accent)";
37
38
  readonly bg: "var(--schub-accent-subtle)";
39
+ readonly borderColor: "var(--schub-accent-subtle)";
38
40
  readonly _hover: {
39
41
  readonly bg: "var(--schub-accent-subtle)";
40
42
  };
@@ -1,5 +1,6 @@
1
1
  export type { CollaborativeMarkdownEditorProps } from './collaborative-markdown-editor/collaborative-markdown-editor';
2
2
  export { CollaborativeMarkdownEditor } from './collaborative-markdown-editor/collaborative-markdown-editor';
3
+ export { LazyMarkdownEditor } from './lazy-markdown-editor';
3
4
  export type { MarkdownEditorProps } from './markdown-editor/markdown-editor';
4
5
  export { MarkdownEditor } from './markdown-editor/markdown-editor';
5
6
  export type { PromptEditorProps, PromptEditorRef, ReferenceItem } from './prompt-input/prompt-input';
@@ -0,0 +1,2 @@
1
+ import { MarkdownEditorProps } from './markdown-editor/markdown-editor';
2
+ export declare const LazyMarkdownEditor: (props: MarkdownEditorProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,8 @@
1
+ import { ReferenceResourceType } from '../../prompt-input';
1
2
  type Props = {
2
3
  items?: Array<{
3
4
  resourceId: string;
4
- resourceType: "table" | "connector";
5
+ resourceType: ReferenceResourceType;
5
6
  name: string;
6
7
  description?: string;
7
8
  }>;
@@ -1,3 +1,4 @@
1
+ import { ReferenceResourceType } from '../../../prompt-input';
1
2
  import { ReferenceMenuOption } from '../ReferenceMenuOption';
2
3
  /**
3
4
  * Search across all resources and menu options
@@ -7,7 +8,7 @@ import { ReferenceMenuOption } from '../ReferenceMenuOption';
7
8
  */
8
9
  export declare function useContextLookup(queryString: string | null, items?: {
9
10
  resourceId: string;
10
- resourceType: "table" | "connector";
11
+ resourceType: ReferenceResourceType;
11
12
  name: string;
12
13
  description?: string;
13
14
  }[]): ReferenceMenuOption[];
@@ -1,6 +1,7 @@
1
1
  import { LexicalNode } from 'lexical';
2
2
  import { PropsWithChildren } from 'react';
3
+ import { ReferenceResourceType } from '../../prompt-input';
3
4
  export declare const $insertExistingReference: (nodeToReplace: LexicalNode, resourceId: string, name: string) => void;
4
5
  export declare function ReferencePlugin(props: PropsWithChildren<{
5
- onAddReference?: (resourceId: string, resourceType: "table" | "connector") => void;
6
+ onAddReference?: (resourceId: string, resourceType: ReferenceResourceType) => void;
6
7
  }>): null;
@@ -1,8 +1,9 @@
1
1
  import { ReactElement, ForwardRefRenderFunction } from 'react';
2
2
  import { PromptEditorRef } from './plugins/ImperativeAPIPlugin';
3
+ export type ReferenceResourceType = "table" | "connector" | "file";
3
4
  export type ReferenceItem = {
4
5
  resourceId: string;
5
- resourceType: "table" | "connector";
6
+ resourceType: ReferenceResourceType;
6
7
  name: string;
7
8
  description?: string;
8
9
  };
@@ -17,7 +18,7 @@ export interface PromptEditorProps {
17
18
  /** Dynamic list of references (tables, connectors) shown when typing # */
18
19
  references?: ReferenceItem[];
19
20
  /** Optional app callback when a reference is inserted */
20
- onAddReference?: (resourceId: string, resourceType: "table" | "connector") => void;
21
+ onAddReference?: (resourceId: string, resourceType: ReferenceResourceType) => void;
21
22
  }
22
23
  export declare const BasePromptEditor: ForwardRefRenderFunction<PromptEditorRef, PromptEditorProps>;
23
24
  export declare const PromptEditor: import('react').ForwardRefExoticComponent<PromptEditorProps & import('react').RefAttributes<PromptEditorRef>>;
@@ -1,4 +1,4 @@
1
- export type ResourceType = "table" | "connector" | "text" | "image" | "pdf" | "markdown" | "csv" | "json" | "code";
1
+ export type ResourceType = "table" | "connector" | "file" | "text" | "image" | "pdf" | "markdown" | "csv" | "json" | "code";
2
2
  export interface Resource {
3
3
  resourceId: string;
4
4
  resourceType: ResourceType;
@@ -1 +1 @@
1
- export declare function inferResourceTypeFromMediaType(mediaType: string): "text" | "table" | "image" | "json" | "pdf" | "markdown";
1
+ export declare function inferResourceTypeFromMediaType(mediaType: string): "text" | "table" | "image" | "markdown" | "json" | "pdf";
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- interface SidebarFooterProps {
2
+ interface SidenavFooterProps {
3
3
  children?: ReactNode;
4
4
  }
5
- export declare const SidebarFooter: (props: SidebarFooterProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export declare const SidenavFooter: (props: SidenavFooterProps) => import("react/jsx-runtime").JSX.Element | null;
6
6
  export {};
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- interface SidebarHeaderProps {
2
+ interface SidenavHeaderProps {
3
3
  children?: ReactNode;
4
4
  }
5
- export declare const SidebarHeader: (props: SidebarHeaderProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const SidenavHeader: (props: SidenavHeaderProps) => import("react/jsx-runtime").JSX.Element;
6
6
  export {};
@@ -0,0 +1,2 @@
1
+ import { SidenavProps } from './sidenav.types';
2
+ export declare const Sidenav: (props: SidenavProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,49 @@
1
+ interface SidenavSnapshot {
2
+ open: boolean;
3
+ expandedSections: string[];
4
+ expandedNodes: string[];
5
+ width: number | null;
6
+ }
7
+ interface SidenavState extends SidenavSnapshot {
8
+ openSidenav: () => void;
9
+ closeSidenav: () => void;
10
+ toggleSidenav: () => void;
11
+ toggleSection: (sectionId: string) => void;
12
+ toggleNode: (nodeId: string) => void;
13
+ setSectionExpanded: (sectionId: string, expanded: boolean) => void;
14
+ setNodeExpanded: (nodeId: string, expanded: boolean) => void;
15
+ setWidth: (width: number) => void;
16
+ reset: () => void;
17
+ }
18
+ interface CreateSidenavStoreOptions {
19
+ storageKey: string;
20
+ initialState?: Partial<SidenavSnapshot>;
21
+ }
22
+ export declare const createSidenavStore: (options: CreateSidenavStoreOptions) => Omit<import('zustand').StoreApi<SidenavState>, "setState" | "persist"> & {
23
+ setState(partial: SidenavState | Partial<SidenavState> | ((state: SidenavState) => SidenavState | Partial<SidenavState>), replace?: false | undefined): unknown;
24
+ setState(state: SidenavState | ((state: SidenavState) => SidenavState), replace: true): unknown;
25
+ persist: {
26
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<SidenavState, unknown, unknown>>) => void;
27
+ clearStorage: () => void;
28
+ rehydrate: () => Promise<void> | void;
29
+ hasHydrated: () => boolean;
30
+ onHydrate: (fn: (state: SidenavState) => void) => () => void;
31
+ onFinishHydration: (fn: (state: SidenavState) => void) => () => void;
32
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<SidenavState, unknown, unknown>>;
33
+ };
34
+ };
35
+ export declare const getSidenavStore: (storageKey: string, initialState?: Partial<SidenavSnapshot>) => Omit<import('zustand').StoreApi<SidenavState>, "setState" | "persist"> & {
36
+ setState(partial: SidenavState | Partial<SidenavState> | ((state: SidenavState) => SidenavState | Partial<SidenavState>), replace?: false | undefined): unknown;
37
+ setState(state: SidenavState | ((state: SidenavState) => SidenavState), replace: true): unknown;
38
+ persist: {
39
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<SidenavState, unknown, unknown>>) => void;
40
+ clearStorage: () => void;
41
+ rehydrate: () => Promise<void> | void;
42
+ hasHydrated: () => boolean;
43
+ onHydrate: (fn: (state: SidenavState) => void) => () => void;
44
+ onFinishHydration: (fn: (state: SidenavState) => void) => () => void;
45
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<SidenavState, unknown, unknown>>;
46
+ };
47
+ };
48
+ export declare const useSidenavStore: <T>(storageKey: string, selector: (state: SidenavState) => T, initialState?: Partial<SidenavSnapshot>) => T;
49
+ export {};
@@ -1,14 +1,14 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { ResourceContextAction } from '../overlays/resource-context-menu';
3
3
  import { TreeListLinkComponent, TreeListNavigateEvent, TreeListSection } from '../tree-list/tree-list.types';
4
- export interface SidebarProps {
4
+ export interface SidenavProps {
5
5
  storageKey: string;
6
6
  sections: TreeListSection[];
7
7
  activeNodeId?: string | string[] | null;
8
8
  header?: ReactNode;
9
9
  footer?: ReactNode;
10
- /** Right-click menu for the empty back area of the tree. Passed straight through to the internal TreeList. */
11
- backgroundContextActions?: ResourceContextAction[];
10
+ /** Right-click menu available from every point in the Sidenav. */
11
+ contextActions?: ResourceContextAction[];
12
12
  /** Initial width when resizable. Set explicitly to override the persisted width. */
13
13
  width?: string | number;
14
14
  emptyLabel?: string;
@@ -17,14 +17,14 @@ export interface SidebarProps {
17
17
  onNavigate?: (event: TreeListNavigateEvent) => void;
18
18
  closable?: boolean;
19
19
  onOpenChange?: (open: boolean) => void;
20
- /** Allow split layouts to resize the sidebar. Defaults to `true`. */
20
+ /** Allow split layouts to resize the sidenav. Defaults to `true`. */
21
21
  resizable?: boolean;
22
22
  defaultWidth?: number;
23
23
  minWidth?: number;
24
24
  maxWidth?: number;
25
25
  /**
26
26
  * When enabled, the scroll content is virtualized — only nodes near the viewport
27
- * are mounted. Use for sidebars that may contain hundreds of entries. Requires
27
+ * are mounted. Use for sidenavs that may contain hundreds of entries. Requires
28
28
  * sections with flat nodes (no expandable children).
29
29
  */
30
30
  virtualize?: boolean;
@@ -4,6 +4,7 @@ import { VisibilityOverride } from '../tree-list/tree-list-visibility.store';
4
4
  export interface TabVisibilityPlacement {
5
5
  closable?: boolean;
6
6
  hiddenByDefault?: boolean;
7
+ pinned?: boolean;
7
8
  title?: string;
8
9
  contributionId: string;
9
10
  }
@@ -3,6 +3,15 @@ import { TerminalSink } from './bind-session';
3
3
  import { TerminalThemeName } from './terminal-theme';
4
4
  import { TerminalBridge, TerminalSessionAdapter, TerminalSessionRequest } from './types';
5
5
  export declare const createInitialTerminalSessionRequest: (request?: Partial<TerminalSessionRequest>) => TerminalSessionRequest;
6
+ export declare const createTerminalSink: (xterm: Pick<Xterm, "write" | "onData" | "onResize">) => {
7
+ write(data: string | Uint8Array): void;
8
+ onInput(handler: (data: string) => void): () => boolean;
9
+ onResize(handler: (size: {
10
+ cols: number;
11
+ rows: number;
12
+ }) => void): () => void;
13
+ dispose(): void;
14
+ };
6
15
  export declare const resizeSessionToTerminalGeometry: (terminal: Pick<Xterm, "cols" | "rows">, session: Pick<TerminalSessionAdapter, "resize">) => void;
7
16
  export declare const bindTerminalSession: (terminal: Pick<Xterm, "cols" | "rows">, sink: TerminalSink, session: TerminalSessionAdapter, options: Pick<TerminalProps, "onSessionOpen" | "onSessionExit">) => () => void;
8
17
  export interface TerminalSessionCallbackRefs {
@@ -25,6 +34,8 @@ export interface TerminalProps {
25
34
  fontSize?: number;
26
35
  /** Whether to kill the session when the component unmounts. Defaults to true. */
27
36
  killOnUnmount?: boolean;
37
+ /** Focus the terminal while it is the active surface. Defaults to true. */
38
+ autoFocus?: boolean;
28
39
  /** Forwarded to the container element. */
29
40
  className?: string;
30
41
  style?: React.CSSProperties;
@@ -9,7 +9,6 @@ export interface TreeVisibilityMenuActions {
9
9
  onToggleSection: (id: string, hiddenByDefault: boolean) => void;
10
10
  onToggleNode: (id: string, hiddenByDefault: boolean) => void;
11
11
  onResetAll: () => void;
12
- onResetOrder?: () => void;
13
12
  }
14
13
  interface BuildMenuOptions {
15
14
  visibleIcon: ReactNode;
@@ -4,7 +4,7 @@ import { ResourceContextAction } from '../overlays/resource-context-menu';
4
4
  import { TreeListLinkComponent, TreeListNavigateEvent, TreeListSection } from './tree-list.types';
5
5
  export { buildVirtualRows } from './tree-list-model';
6
6
  type TreeListRowVariant = "compact" | "tree";
7
- /** Sectioned hierarchical list for files, resources, navigation, and customizable sidebars. */
7
+ /** Sectioned hierarchical list for files, resources, navigation, and customizable sidenavs. */
8
8
  interface TreeListProps {
9
9
  /** Ordered sections to render, each containing nested tree nodes. */
10
10
  sections: TreeListSection[];
@@ -14,6 +14,8 @@ export type TreeListNode = ListRowItem & {
14
14
  hiddenByDefault?: boolean;
15
15
  /** Opt in to the tree-customization (hide/show) menu. Items are non-hideable unless this is true. */
16
16
  canHide?: boolean;
17
+ /** Opt out of reordering while keeping the node visible in its group. */
18
+ canReorder?: boolean;
17
19
  };
18
20
  /** Top-level tree section with optional header, actions, empty state, and child nodes. */
19
21
  export interface TreeListSection {
@@ -26,6 +28,8 @@ export interface TreeListSection {
26
28
  hiddenByDefault?: boolean;
27
29
  /** Opt in to the tree-customization (hide/show) menu. Sections are non-hideable unless this is true. */
28
30
  canHide?: boolean;
31
+ /** Opt out of reordering while keeping the section visible in its group. */
32
+ canReorder?: boolean;
29
33
  }
30
34
  /** Navigation payload emitted when a navigable tree node is activated. */
31
35
  export interface TreeListNavigateEvent {