@pstdio/ui 0.21.0 → 0.22.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.
- package/dist/{MermaidComponent-BVMyKttu.js → MermaidComponent-D92GMhht.js} +3 -3
- package/dist/{MermaidComponent-BVMyKttu.js.map → MermaidComponent-D92GMhht.js.map} +1 -1
- package/dist/chat-ui.d.ts +2 -0
- package/dist/chat-ui.js +2 -2
- package/dist/components/data-table/build-columns.d.ts +1 -0
- package/dist/components/data-table/data-table-column-menu.d.ts +2 -0
- package/dist/components/data-table/data-table-row-display.d.ts +11 -0
- package/dist/components/data-table/data-table-table-parts.d.ts +1 -0
- package/dist/components/data-table/edit-mode-data-table-body.d.ts +1 -0
- package/dist/components/data-table/edit-mode-data-table-cell.d.ts +1 -0
- package/dist/components/data-table/edit-mode-data-table-header.d.ts +1 -0
- package/dist/components/diff-viewer/code-editor.d.ts +8 -2
- package/dist/components/kanban-renderer/collection-badge.d.ts +7 -0
- package/dist/components/kanban-renderer/index.d.ts +1 -1
- package/dist/components/kanban-renderer/kanban-renderer-helpers.d.ts +2 -1
- package/dist/components/kanban-renderer/types.d.ts +20 -1
- package/dist/components/list-row/list-row-content.d.ts +1 -0
- package/dist/components/param-editor/param-editor-presentation.d.ts +1 -1
- package/dist/components/param-editor/param-editor.types.d.ts +5 -193
- package/dist/components/rich-text/shared/markdown-ast.d.ts +1 -0
- package/dist/components/rich-text/shared/markdown-source-document.d.ts +7 -0
- package/dist/components/rich-text/shared/markdown-source-links.d.ts +11 -0
- package/dist/components/rich-text/shared/markdown-source-map.d.ts +10 -0
- package/dist/components/rich-text/utils/inferResourceType.d.ts +1 -1
- package/dist/components/tag-editor/tag-editor-row.d.ts +1 -1
- package/dist/components/tag-editor/tag-editor.types.d.ts +12 -0
- package/dist/components/tag-editor/tag-settings-panel.d.ts +1 -1
- package/dist/components/tree-list/tree-list-drag-provider.d.ts +13 -0
- package/dist/components/tree-list/tree-list-order.store.d.ts +4 -1
- package/dist/components/tree-list/tree-list-reorder.d.ts +14 -3
- package/dist/components/tree-list/tree-list-sortable.d.ts +2 -0
- package/dist/components/tree-list/tree-list-visibility-filter.d.ts +2 -2
- package/dist/components/tree-list/tree-list.d.ts +3 -0
- package/dist/components/tree-list/tree-list.types.d.ts +4 -0
- package/dist/data-table.d.ts +2 -0
- package/dist/data-table.js +806 -793
- package/dist/data-table.js.map +1 -1
- package/dist/diff.d.ts +2 -0
- package/dist/diff.js +529 -533
- package/dist/diff.js.map +1 -1
- package/dist/edit-mode-data-table-DGgRuSW3.js +846 -0
- package/dist/edit-mode-data-table-DGgRuSW3.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1516 -1413
- package/dist/index.js.map +1 -1
- package/dist/{kanban-renderer-toolbar-CpegGbwq.js → kanban-renderer-toolbar-Bl8xXdwU.js} +527 -469
- package/dist/kanban-renderer-toolbar-Bl8xXdwU.js.map +1 -0
- package/dist/kanban-renderer.d.ts +2 -0
- package/dist/kanban-renderer.js +21 -21
- package/dist/kanban-renderer.js.map +1 -1
- package/dist/lazy-markdown-editor-CCOchoJX.js +235 -0
- package/dist/lazy-markdown-editor-CCOchoJX.js.map +1 -0
- package/dist/list-row-DCgdza1i.js +812 -0
- package/dist/list-row-DCgdza1i.js.map +1 -0
- package/dist/markdown-CASvn1Z2.js +1643 -0
- package/dist/markdown-CASvn1Z2.js.map +1 -0
- package/dist/markdown-editor-C4GCyebp.js +1019 -0
- package/dist/markdown-editor-C4GCyebp.js.map +1 -0
- package/dist/{mermaid-renderer-H3IhLqnQ.js → mermaid-renderer-CVnuKs-A.js} +2 -2
- package/dist/{mermaid-renderer-H3IhLqnQ.js.map → mermaid-renderer-CVnuKs-A.js.map} +1 -1
- package/dist/mermaid.d.ts +2 -0
- package/dist/mermaid.js +1 -1
- package/dist/monaco-browser-CgvlArN7.js +21 -0
- package/dist/monaco-browser-CgvlArN7.js.map +1 -0
- package/dist/{param-editor-B8Ff9Nm8.js → param-editor-CkDq623X.js} +2 -2
- package/dist/{param-editor-B8Ff9Nm8.js.map → param-editor-CkDq623X.js.map} +1 -1
- package/dist/param-editor-field-DRgbnL7-.js +2809 -0
- package/dist/param-editor-field-DRgbnL7-.js.map +1 -0
- package/dist/rich-message-DARuDVOX.js +628 -0
- package/dist/{rich-message-DdFYRzTo.js.map → rich-message-DARuDVOX.js.map} +1 -1
- package/dist/rich-text.d.ts +2 -0
- package/dist/rich-text.js +48 -47
- package/dist/rich-text.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/terminal.d.ts +2 -0
- package/dist/theme/primitives/sizes.d.ts +9 -0
- package/dist/{theme-BH4fSst9.js → theme-B-l5_a6F.js} +69 -50
- package/dist/theme-B-l5_a6F.js.map +1 -0
- package/dist/theme-preference-Bpobguh4.js +114 -0
- package/dist/theme-preference-Bpobguh4.js.map +1 -0
- package/dist/theme.d.ts +2 -0
- package/dist/theme.js +1 -1
- package/dist/tree-list-AlO5ZmxQ.js +1262 -0
- package/dist/tree-list-AlO5ZmxQ.js.map +1 -0
- package/dist/utils/theme-preference.d.ts +4 -1
- package/dist/workspace-badge-BR_GgsAG.js +175 -0
- package/dist/workspace-badge-BR_GgsAG.js.map +1 -0
- package/package.json +5 -42
- package/dist/dialog-accept-shortcut-DAEBsoWW.js +0 -7
- package/dist/dialog-accept-shortcut-DAEBsoWW.js.map +0 -1
- package/dist/edit-mode-data-table-D6NeiDJx.js +0 -775
- package/dist/edit-mode-data-table-D6NeiDJx.js.map +0 -1
- package/dist/editor-config-D9OksZ93.js +0 -2416
- package/dist/editor-config-D9OksZ93.js.map +0 -1
- package/dist/kanban-renderer-toolbar-CpegGbwq.js.map +0 -1
- package/dist/lazy-markdown-editor-B7uP2ALS.js +0 -26
- package/dist/lazy-markdown-editor-B7uP2ALS.js.map +0 -1
- package/dist/list-row-9oxy-F0v.js +0 -796
- package/dist/list-row-9oxy-F0v.js.map +0 -1
- package/dist/monaco-browser-CO0NxK_Z.js +0 -19
- package/dist/monaco-browser-CO0NxK_Z.js.map +0 -1
- package/dist/number-input-WUfejtNx.js +0 -343
- package/dist/number-input-WUfejtNx.js.map +0 -1
- package/dist/param-editor-field-Cu4pto_a.js +0 -2845
- package/dist/param-editor-field-Cu4pto_a.js.map +0 -1
- package/dist/rich-message-DdFYRzTo.js +0 -658
- package/dist/theme-BH4fSst9.js.map +0 -1
- package/dist/theme-preference-DyymrYpR.js +0 -123
- package/dist/theme-preference-DyymrYpR.js.map +0 -1
- package/dist/tree-list-uV4UFj0x.js +0 -1116
- package/dist/tree-list-uV4UFj0x.js.map +0 -1
|
@@ -5,8 +5,8 @@ import { useLexicalComposerContext as K } from "@lexical/react/LexicalComposerCo
|
|
|
5
5
|
import { useLexicalEditable as L } from "@lexical/react/useLexicalEditable";
|
|
6
6
|
import { $getNodeByKey as N } from "lexical";
|
|
7
7
|
import { useState as z, useEffect as P } from "react";
|
|
8
|
-
import { M as _ } from "./mermaid-renderer-
|
|
9
|
-
import { $ as q } from "./
|
|
8
|
+
import { M as _ } from "./mermaid-renderer-CVnuKs-A.js";
|
|
9
|
+
import { $ as q } from "./markdown-CASvn1Z2.js";
|
|
10
10
|
function O(B) {
|
|
11
11
|
const e = S(28), {
|
|
12
12
|
code: i,
|
|
@@ -57,4 +57,4 @@ function O(B) {
|
|
|
57
57
|
export {
|
|
58
58
|
O as default
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=MermaidComponent-
|
|
60
|
+
//# sourceMappingURL=MermaidComponent-D92GMhht.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MermaidComponent-
|
|
1
|
+
{"version":3,"file":"MermaidComponent-D92GMhht.js","sources":["../src/components/rich-text/shared/plugins/MermaidPlugin/MermaidComponent.tsx"],"sourcesContent":["import { Box, Button, Flex, Textarea } from \"@chakra-ui/react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useLexicalEditable } from \"@lexical/react/useLexicalEditable\";\nimport { $getNodeByKey } from \"lexical\";\nimport { useEffect, useState } from \"react\";\nimport { MermaidRenderer } from \"@/components/mermaid-renderer\";\nimport { $isMermaidNode } from \"./MermaidNode\";\n\ninterface MermaidComponentProps {\n code: string;\n nodeKey: string;\n}\n\nexport default function MermaidComponent(props: MermaidComponentProps) {\n const { code, nodeKey } = props;\n const [editor] = useLexicalComposerContext();\n const isEditable = useLexicalEditable();\n const [isEditing, setIsEditing] = useState(false);\n const [draftCode, setDraftCode] = useState(code);\n const [previewCode, setPreviewCode] = useState(code);\n\n useEffect(() => {\n setDraftCode(code);\n setPreviewCode(code);\n }, [code]);\n\n const commitCodeChanges = () => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isMermaidNode(node)) {\n node.setCode(draftCode);\n }\n });\n\n setPreviewCode(draftCode);\n setIsEditing(false);\n };\n\n const cancelEditing = () => {\n setDraftCode(previewCode);\n setIsEditing(false);\n };\n\n if (!isEditing) {\n return (\n <MermaidRenderer\n key={previewCode}\n code={previewCode}\n isEditable={isEditable}\n onRequestEdit={isEditable ? () => setIsEditing(true) : undefined}\n />\n );\n }\n\n return (\n <Box borderWidth=\"1px\" borderColor=\"border.subtle\" borderRadius=\"md\" overflow=\"hidden\" width=\"100%\">\n <Flex justifyContent=\"flex-end\" alignItems=\"center\" gap=\"xs\" paddingX=\"sm\" paddingY=\"xs\" bg=\"bg.muted\">\n <Button size=\"xs\" variant=\"subtle\" onClick={cancelEditing}>\n Cancel\n </Button>\n <Button size=\"xs\" onClick={commitCodeChanges}>\n Preview\n </Button>\n </Flex>\n <Box padding=\"sm\" bg=\"bg.muted\">\n <Textarea\n value={draftCode}\n onChange={(event) => setDraftCode(event.target.value)}\n minHeight=\"180px\"\n resize=\"vertical\"\n fontFamily=\"mono\"\n fontSize=\"sm\"\n spellCheck={false}\n />\n </Box>\n </Box>\n );\n}\n"],"names":["MermaidComponent","props","$","_c","code","nodeKey","editor","useLexicalComposerContext","isEditable","useLexicalEditable","isEditing","setIsEditing","useState","draftCode","setDraftCode","previewCode","setPreviewCode","t0","t1","useEffect","t2","update","node","$getNodeByKey","$isMermaidNode","setCode","commitCodeChanges","t3","cancelEditing","t4","undefined","t5","MermaidRenderer","Button","t6","jsxs","Flex","t7","Symbol","for","event","target","value","t8","jsx","Box","Textarea","t9"],"mappings":"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"}
|
package/dist/chat-ui.js
CHANGED
|
@@ -5,8 +5,8 @@ import { ArrowDownIcon as _s, ShieldX as vs, ShieldCheck as Rs, Check as Dn, Pau
|
|
|
5
5
|
import { useStickToBottomContext as It, StickToBottom as Gs } from "use-stick-to-bottom";
|
|
6
6
|
import { S as _t, T as sn } from "./browser-storage-DPtOQJx0.js";
|
|
7
7
|
import { Fragment as Ys, useRef as Te, useEffect as le, useState as H } from "react";
|
|
8
|
-
import { R as on, C as $n } from "./
|
|
9
|
-
import { a as Vt, P as Js, g as Zs, R as On } from "./rich-message-
|
|
8
|
+
import { R as on, C as $n } from "./lazy-markdown-editor-CCOchoJX.js";
|
|
9
|
+
import { a as Vt, P as Js, g as Zs, R as On } from "./rich-message-DARuDVOX.js";
|
|
10
10
|
import { R as eo, a as to, A as mn } from "./radio-cLMEBBZk.js";
|
|
11
11
|
import { E as no } from "./empty-state-Bo4HVrgr.js";
|
|
12
12
|
import { useVirtualizer as so } from "@tanstack/react-virtual";
|
|
@@ -10,6 +10,7 @@ interface BuildColumnsOptions {
|
|
|
10
10
|
getRowActions?: (row: RowData) => DataTableRowAction[];
|
|
11
11
|
selectedRowIds?: RowSelectionState;
|
|
12
12
|
columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;
|
|
13
|
+
wrapRows?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export declare function buildColumns(data: RowData[], columnKeys: string[], options?: BuildColumnsOptions): ((import('@tanstack/react-table').ColumnDefBase<RowData, unknown> & import('@tanstack/react-table').StringHeaderIdentifier) | (import('@tanstack/react-table').ColumnDefBase<RowData, unknown> & import('@tanstack/react-table').IdIdentifier<RowData, unknown>) | (import('@tanstack/react-table').AccessorFnColumnDefBase<RowData, number> & import('@tanstack/react-table').StringHeaderIdentifier) | (import('@tanstack/react-table').AccessorFnColumnDefBase<RowData, number> & import('@tanstack/react-table').IdIdentifier<RowData, number>))[];
|
|
15
16
|
export {};
|
|
@@ -5,10 +5,12 @@ interface DataTableColumnMenuColumn {
|
|
|
5
5
|
interface DataTableColumnMenuProps {
|
|
6
6
|
columns: DataTableColumnMenuColumn[];
|
|
7
7
|
visibleColumnIds: Set<string>;
|
|
8
|
+
wrapRows: boolean;
|
|
8
9
|
showStats: boolean;
|
|
9
10
|
statsAvailable: boolean;
|
|
10
11
|
onColumnVisibilityChange: (columnId: string, visible: boolean) => void;
|
|
11
12
|
onColumnReorder: (activeColumnId: string, overColumnId: string) => void;
|
|
13
|
+
onWrapRowsChange: (wrapRows: boolean) => void;
|
|
12
14
|
onStatsVisibilityChange: (showStats: boolean) => void;
|
|
13
15
|
}
|
|
14
16
|
export declare const DataTableColumnMenu: (props: DataTableColumnMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface DataTableRowDisplaySwitchProps {
|
|
2
|
+
showDivider?: boolean;
|
|
3
|
+
wrapRows: boolean;
|
|
4
|
+
onWrapRowsChange: (wrapRows: boolean) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const DataTableRowDisplaySwitch: (props: DataTableRowDisplaySwitchProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
interface DataTableRowDisplayMenuProps extends DataTableRowDisplaySwitchProps {
|
|
8
|
+
compact?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const DataTableRowDisplayMenu: (props: DataTableRowDisplayMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -14,6 +14,7 @@ interface DataTableBodyRowProps {
|
|
|
14
14
|
rowIsInteractive: boolean;
|
|
15
15
|
rowIsActive: boolean;
|
|
16
16
|
rowIsSelected: boolean;
|
|
17
|
+
wrapRows: boolean;
|
|
17
18
|
onRowClick?: DataTableProps["onRowClick"];
|
|
18
19
|
getCellContextMenuActions?: DataTableProps["getCellContextMenuActions"];
|
|
19
20
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as Monaco from "monaco-editor";
|
|
2
2
|
export declare const createCodeEditorPreloader: (initialize: () => Promise<unknown>) => () => Promise<unknown>;
|
|
3
3
|
export declare const preloadCodeEditor: () => Promise<unknown>;
|
|
4
4
|
export declare const customTheme: {
|
|
@@ -15,7 +15,13 @@ export declare const customTheme: {
|
|
|
15
15
|
"editorIndentGuide.activeBackground": string;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
export declare const configureCodeEditor: (editor:
|
|
18
|
+
export declare const configureCodeEditor: (editor: {
|
|
19
|
+
addCommand: (key: number, handler: () => Promise<void>) => unknown;
|
|
20
|
+
getAction: (id: string) => Pick<Monaco.editor.IEditorAction, "run"> | null;
|
|
21
|
+
}, monaco: {
|
|
22
|
+
KeyMod: Pick<typeof Monaco.KeyMod, "CtrlCmd">;
|
|
23
|
+
KeyCode: Pick<typeof Monaco.KeyCode, "KeyS">;
|
|
24
|
+
}) => void;
|
|
19
25
|
interface CodeEditorProps {
|
|
20
26
|
language: string;
|
|
21
27
|
defaultCode?: string;
|
|
@@ -8,7 +8,7 @@ export type { KanbanRendererCardProps } from './kanban-renderer-card';
|
|
|
8
8
|
export { KanbanRendererCard } from './kanban-renderer-card';
|
|
9
9
|
export { KanbanRendererCreateDialog } from './kanban-renderer-create-dialog';
|
|
10
10
|
export type { AttributeBadge, FilterCategoryView, MenuOption } from './kanban-renderer-helpers';
|
|
11
|
-
export { buildDisplayPropertyOptions, buildFilterCategories, buildGroupingOptions, buildOrderingOptions, collectDisplayBadges, getAttributeStringValues, getAttributeValue, getEnumOptions, renderAttributeBadge, sanitizeFilters, sanitizeSettings, } from './kanban-renderer-helpers';
|
|
11
|
+
export { buildDisplayPropertyOptions, buildFilterCategories, buildGroupingOptions, buildOrderingOptions, collectDisplayBadges, getAttributeStringValues, getAttributeValue, getEnumOptions, renderAttributeBadge, renderBadgeListDisplay, sanitizeFilters, sanitizeSettings, } from './kanban-renderer-helpers';
|
|
12
12
|
export type { KanbanRendererListItem } from './kanban-renderer-list';
|
|
13
13
|
export { KanbanRendererList } from './kanban-renderer-list';
|
|
14
14
|
export type { KanbanRendererToolbarProps } from './kanban-renderer-toolbar';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { AttributeBadge } from './kanban-renderer-badge-helpers';
|
|
3
|
-
import { AttributeDescriptor, KanbanRendererFilterState, KanbanRendererRow, KanbanRendererSettings } from './types';
|
|
3
|
+
import { AttributeDescriptor, CollectionBadgeItem, KanbanRendererFilterState, KanbanRendererRow, KanbanRendererSettings } from './types';
|
|
4
4
|
export type { AttributeBadge } from './kanban-renderer-badge-helpers';
|
|
5
5
|
export { getAttributeBadgeColorPalette } from './kanban-renderer-badge-helpers';
|
|
6
6
|
export { enumOptionLabel, findEnumOption, getEnumOptions, toTitleCase } from './kanban-renderer-enum-helpers';
|
|
@@ -10,6 +10,7 @@ export { enumOptionLabel, findEnumOption, getEnumOptions, toTitleCase } from './
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const getAttributeValue: (row: KanbanRendererRow, descriptor: AttributeDescriptor) => unknown;
|
|
12
12
|
export declare const getAttributeStringValues: (row: KanbanRendererRow, descriptor: AttributeDescriptor) => string[];
|
|
13
|
+
export declare const renderBadgeListDisplay: (descriptor: AttributeDescriptor, value: unknown, row: KanbanRendererRow, openResource?: (resource: NonNullable<CollectionBadgeItem["resource"]>) => void) => ReactNode;
|
|
13
14
|
/**
|
|
14
15
|
* Per-type default cell summary used by the card / list end-content. Returns
|
|
15
16
|
* null when the attribute has no displayable value.
|
|
@@ -38,9 +38,27 @@ export type AttributeType = {
|
|
|
38
38
|
export declare const isEnumOptionsSource: (options: EnumOptions) => options is EnumOptionsSource;
|
|
39
39
|
export type AttributeKind = AttributeType["kind"];
|
|
40
40
|
export type AttributeDisplayDescriptor = {
|
|
41
|
-
kind: "
|
|
41
|
+
kind: "badge-list";
|
|
42
42
|
itemsAttributeId: string;
|
|
43
43
|
};
|
|
44
|
+
type CollectionBadgeJsonValue = string | number | boolean | null | CollectionBadgeJsonValue[] | CollectionBadgeJsonObject;
|
|
45
|
+
interface CollectionBadgeJsonObject {
|
|
46
|
+
[key: string]: CollectionBadgeJsonValue;
|
|
47
|
+
}
|
|
48
|
+
export interface CollectionBadgeResource {
|
|
49
|
+
type: string;
|
|
50
|
+
id: string;
|
|
51
|
+
projectId?: string;
|
|
52
|
+
label?: string;
|
|
53
|
+
extensionId?: string;
|
|
54
|
+
metadata?: CollectionBadgeJsonObject;
|
|
55
|
+
}
|
|
56
|
+
export interface CollectionBadgeItem {
|
|
57
|
+
id: string;
|
|
58
|
+
label: string;
|
|
59
|
+
icon?: string;
|
|
60
|
+
resource?: CollectionBadgeResource;
|
|
61
|
+
}
|
|
44
62
|
export interface AttributeDescriptor {
|
|
45
63
|
id: string;
|
|
46
64
|
label: string;
|
|
@@ -138,3 +156,4 @@ export declare const DEFAULT_KANBAN_RENDERER_SETTINGS: KanbanRendererSettings;
|
|
|
138
156
|
* Returns undefined for sentinels ("none", "manual") or unknown ids.
|
|
139
157
|
*/
|
|
140
158
|
export declare const findAttribute: (attributes: AttributeDescriptor[], id: string | undefined) => AttributeDescriptor | undefined;
|
|
159
|
+
export {};
|
|
@@ -6,6 +6,7 @@ export declare const createResourceRowActions: (item: ListRowItem, showContextMe
|
|
|
6
6
|
menuItems: import('./list-row.types').ListRowActionMenuItem[];
|
|
7
7
|
}[];
|
|
8
8
|
export declare const ListRowContent: (props: {
|
|
9
|
+
labelId: string;
|
|
9
10
|
item: ListRowItem;
|
|
10
11
|
isExpanded: boolean;
|
|
11
12
|
showChevron: boolean;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Param } from './param-editor.types';
|
|
2
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').
|
|
3
|
+
export declare const isParamEditorHorizontalControl: (param: Param) => param is import('./param-editor.types').PropertyParam | import('./param-editor.types').FileUploadParam | import('@pstdio/sdk/extensions').NumberControl | import('@pstdio/sdk/extensions').BooleanControl | import('@pstdio/sdk/extensions').TextControl | import('@pstdio/sdk/extensions').MarkdownControl | import('@pstdio/sdk/extensions').SelectionControl | import('@pstdio/sdk/extensions').DateControl | import('@pstdio/sdk/extensions').ColorControl | import('@pstdio/sdk/extensions').ReadOnlyControl | import('@pstdio/sdk/extensions').ResourceControl | import('@pstdio/sdk/extensions').RangeControl | import('@pstdio/sdk/extensions').SegmentedControl | import('@pstdio/sdk/extensions').ActionsControl | import('@pstdio/sdk/extensions').VectorControl;
|
|
@@ -1,193 +1,10 @@
|
|
|
1
|
+
import { BaseControl as BaseParam, ControlGroup, ControlParam, ControlValue } from '@pstdio/sdk/extensions';
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
|
-
export
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
description?: string;
|
|
6
|
-
/** Locks this one param while the rest of the editor stays editable. */
|
|
7
|
-
readOnly?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface NumberParam extends BaseParam {
|
|
10
|
-
type: "number";
|
|
11
|
-
defaultValue: number;
|
|
12
|
-
min?: number;
|
|
13
|
-
max?: number;
|
|
14
|
-
step?: number;
|
|
15
|
-
}
|
|
16
|
-
export interface BooleanParam extends BaseParam {
|
|
17
|
-
type: "boolean";
|
|
18
|
-
defaultValue: boolean;
|
|
19
|
-
}
|
|
20
|
-
export interface TextParam extends BaseParam {
|
|
21
|
-
type: "text";
|
|
22
|
-
defaultValue: string;
|
|
23
|
-
singleLine?: boolean;
|
|
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
|
-
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;
|
|
50
|
-
}
|
|
51
|
-
export interface SelectionParam extends BaseParam {
|
|
52
|
-
type: "selection";
|
|
53
|
-
defaultValue: string | string[];
|
|
54
|
-
options: SelectionOption[];
|
|
55
|
-
multiSelect?: boolean;
|
|
56
|
-
placeholder?: string;
|
|
57
|
-
searchable?: boolean;
|
|
58
|
-
searchPlaceholder?: string;
|
|
59
|
-
emptyText?: string;
|
|
60
|
-
group?: SelectionGroup;
|
|
61
|
-
/** Adds a "clear" row so a single-select can be returned to unset. */
|
|
62
|
-
clearable?: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Renders the control inert but still as a control — unlike `readOnly`, which
|
|
65
|
-
* collapses it to plain text and drops the option's icon.
|
|
66
|
-
*/
|
|
67
|
-
disabled?: boolean;
|
|
68
|
-
}
|
|
69
|
-
export interface DateParam extends BaseParam {
|
|
70
|
-
type: "date";
|
|
71
|
-
defaultValue: string;
|
|
72
|
-
min?: string;
|
|
73
|
-
max?: string;
|
|
74
|
-
}
|
|
75
|
-
export interface ColorParam extends BaseParam {
|
|
76
|
-
type: "color";
|
|
77
|
-
defaultValue: string;
|
|
78
|
-
}
|
|
3
|
+
export type { ActionOption, ActionsControl as ActionsParam, AnchorGridControl as AnchorGridParam, AnchorGridValue, BaseControl as BaseParam, BooleanControl as BooleanParam, ColorControl as ColorParam, ControlGroup, ControlParam, ControlValue, ControlValueMap, DateControl as DateParam, MarkdownControl as MarkdownParam, NumberControl as NumberParam, ParamEditorReadOnlyContent, ParamEditorReadOnlyImage, RangeControl as RangeParam, RangeValue, ReadOnlyControl as ReadOnlyParam, ResourceControl as ResourceParam, ResourceOption, ResourceRefValue, SegmentedControl as SegmentedParam, SegmentedOption, SelectionControl as SelectionParam, SelectionGroup, SelectionOption, TextControl as TextParam, VectorControl as VectorParam, VectorValue, } from '@pstdio/sdk/extensions';
|
|
79
4
|
export interface PropertyParam extends BaseParam {
|
|
80
5
|
type: "property";
|
|
81
6
|
value: ReactNode;
|
|
82
7
|
}
|
|
83
|
-
export interface ParamEditorReadOnlyImage {
|
|
84
|
-
src: string;
|
|
85
|
-
alt: string;
|
|
86
|
-
}
|
|
87
|
-
export type ParamEditorReadOnlyContent = string | number | boolean | null | Array<string | number | boolean | null> | {
|
|
88
|
-
type: "image";
|
|
89
|
-
src: string;
|
|
90
|
-
alt: string;
|
|
91
|
-
} | {
|
|
92
|
-
type: "image-gallery";
|
|
93
|
-
images: ParamEditorReadOnlyImage[];
|
|
94
|
-
};
|
|
95
|
-
/** Serializable display-only value rendered by the read-only Param Editor. */
|
|
96
|
-
export interface ReadOnlyParam extends BaseParam {
|
|
97
|
-
type: "readOnly";
|
|
98
|
-
value: ParamEditorReadOnlyContent;
|
|
99
|
-
}
|
|
100
|
-
/** A reference the host can open (e.g. another resource tab). */
|
|
101
|
-
export interface ResourceRefValue {
|
|
102
|
-
type: string;
|
|
103
|
-
id: string;
|
|
104
|
-
label?: string;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Serializable resource chip. Clicking it opens `href` externally, opens `ref` via
|
|
108
|
-
* `onOpenResource`, or copies `copyText` to the clipboard — whichever is set.
|
|
109
|
-
*/
|
|
110
|
-
export interface ResourceOption {
|
|
111
|
-
id: string;
|
|
112
|
-
name: string;
|
|
113
|
-
icon?: string;
|
|
114
|
-
color?: string;
|
|
115
|
-
description?: string;
|
|
116
|
-
href?: string;
|
|
117
|
-
ref?: ResourceRefValue;
|
|
118
|
-
copyText?: string;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Resource references rendered as tags/chips. View-only by default; set `editable`
|
|
122
|
-
* to pick from `options` via a dropdown. Value is the selected option id(s), mirroring
|
|
123
|
-
* {@link SelectionParam}, so it stays JSON-safe across the controls-command boundary.
|
|
124
|
-
*/
|
|
125
|
-
export interface ResourceParam extends BaseParam {
|
|
126
|
-
type: "resource";
|
|
127
|
-
defaultValue: string | string[];
|
|
128
|
-
options: ResourceOption[];
|
|
129
|
-
multiSelect?: boolean;
|
|
130
|
-
editable?: boolean;
|
|
131
|
-
placeholder?: string;
|
|
132
|
-
emptyText?: string;
|
|
133
|
-
}
|
|
134
|
-
export type RangeValue = [number, number];
|
|
135
|
-
/** Two-handle numeric range control. Values normalize to ordered `[start, end]`. */
|
|
136
|
-
export interface RangeParam extends BaseParam {
|
|
137
|
-
type: "range";
|
|
138
|
-
defaultValue: RangeValue;
|
|
139
|
-
min: number;
|
|
140
|
-
max: number;
|
|
141
|
-
step?: number;
|
|
142
|
-
unit?: string;
|
|
143
|
-
markerCount?: number;
|
|
144
|
-
}
|
|
145
|
-
export interface SegmentedOption {
|
|
146
|
-
id: string;
|
|
147
|
-
name: string;
|
|
148
|
-
icon?: string;
|
|
149
|
-
indicatorColor?: string;
|
|
150
|
-
}
|
|
151
|
-
/** Mutually-exclusive mode control rendered as a segmented button group. */
|
|
152
|
-
export interface SegmentedParam extends BaseParam {
|
|
153
|
-
type: "segmented";
|
|
154
|
-
defaultValue: string;
|
|
155
|
-
options: SegmentedOption[];
|
|
156
|
-
variant?: "default" | "dots";
|
|
157
|
-
}
|
|
158
|
-
export interface ActionOption {
|
|
159
|
-
id: string;
|
|
160
|
-
name: string;
|
|
161
|
-
icon?: string;
|
|
162
|
-
disabled?: boolean;
|
|
163
|
-
}
|
|
164
|
-
/** Compact command set rendered as an action button row. */
|
|
165
|
-
export interface ActionsParam extends BaseParam {
|
|
166
|
-
type: "actions";
|
|
167
|
-
defaultValue?: string;
|
|
168
|
-
options: ActionOption[];
|
|
169
|
-
}
|
|
170
|
-
export type AnchorGridValue = "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right";
|
|
171
|
-
/** Nine-point alignment picker. */
|
|
172
|
-
export interface AnchorGridParam extends BaseParam {
|
|
173
|
-
type: "anchorGrid";
|
|
174
|
-
defaultValue: AnchorGridValue;
|
|
175
|
-
}
|
|
176
|
-
export interface VectorValue {
|
|
177
|
-
x: number;
|
|
178
|
-
y: number;
|
|
179
|
-
}
|
|
180
|
-
/** Paired x/y numeric control. */
|
|
181
|
-
export interface VectorParam extends BaseParam {
|
|
182
|
-
type: "vector";
|
|
183
|
-
defaultValue: VectorValue;
|
|
184
|
-
coordinateMode?: "cartesian" | "screen";
|
|
185
|
-
xLabel?: string;
|
|
186
|
-
yLabel?: string;
|
|
187
|
-
min?: number;
|
|
188
|
-
max?: number;
|
|
189
|
-
step?: number;
|
|
190
|
-
}
|
|
191
8
|
export type FileUploadStatus = "queued" | "uploading" | "complete" | "error";
|
|
192
9
|
/** A selected file and the host-controlled state of its upload. */
|
|
193
10
|
export interface FileUploadValue {
|
|
@@ -206,14 +23,9 @@ export interface FileUploadParam extends BaseParam {
|
|
|
206
23
|
multiple?: boolean;
|
|
207
24
|
uploadLabel?: string;
|
|
208
25
|
}
|
|
209
|
-
export interface InputGroup {
|
|
210
|
-
id: string;
|
|
211
|
-
title: string;
|
|
212
|
-
description?: string;
|
|
26
|
+
export interface InputGroup extends Omit<ControlGroup, "params"> {
|
|
213
27
|
params: Param[];
|
|
214
|
-
collapsible?: boolean;
|
|
215
|
-
defaultCollapsed?: boolean;
|
|
216
28
|
}
|
|
217
|
-
export type
|
|
218
|
-
export type
|
|
29
|
+
export type Param = ControlParam | PropertyParam | FileUploadParam;
|
|
30
|
+
export type ParamValue = ControlValue | FileUploadValue[];
|
|
219
31
|
export type ParamValueMap = Record<string, ParamValue>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PhrasingContent, Root, RootContent } from 'mdast';
|
|
2
2
|
export declare const parseMarkdown: (markdown: string) => Root;
|
|
3
|
+
export declare const parseMarkdownSource: (markdown: string) => Root;
|
|
3
4
|
export declare const serializeMarkdownAst: (tree: Root) => string;
|
|
4
5
|
export declare const serializeMarkdownBlock: (node: RootContent) => string;
|
|
5
6
|
export declare const serializeMarkdownInline: (children: PhrasingContent[]) => string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ElementNode } from 'lexical';
|
|
2
|
+
import { MarkdownUrlResolver } from './markdown-url';
|
|
3
|
+
export interface MarkdownSourceDocument {
|
|
4
|
+
exportFromLexical: (root: ElementNode) => string;
|
|
5
|
+
importToLexical: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const createMarkdownSourceDocument: (source: string, resolver?: MarkdownUrlResolver) => MarkdownSourceDocument;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface TextEdit {
|
|
2
|
+
end: number;
|
|
3
|
+
replacement: string;
|
|
4
|
+
start: number;
|
|
5
|
+
}
|
|
6
|
+
interface LinkChanges {
|
|
7
|
+
edits: TextEdit[];
|
|
8
|
+
normalizedCurrent: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const collectMarkdownLinkChanges: (source: string, baseline: string, current: string) => LinkChanges;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface SourceMap {
|
|
2
|
+
end: number[];
|
|
3
|
+
start: number[];
|
|
4
|
+
}
|
|
5
|
+
export declare const buildSourceMap: (canonical: string, source: string) => {
|
|
6
|
+
end: number[];
|
|
7
|
+
start: number[];
|
|
8
|
+
};
|
|
9
|
+
export declare const mappedStart: (map: SourceMap, index: number) => number;
|
|
10
|
+
export declare const mappedEnd: (map: SourceMap, index: number) => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function inferResourceTypeFromMediaType(mediaType: string): "text" | "table" | "image" | "
|
|
1
|
+
export declare function inferResourceTypeFromMediaType(mediaType: string): "text" | "table" | "image" | "json" | "pdf" | "markdown";
|
|
@@ -2,6 +2,7 @@ import { IconColorPickerIconOption } from '../primitives/icon-options';
|
|
|
2
2
|
import { TagEditorAction, TagEditorValue } from './tag-editor.types';
|
|
3
3
|
interface TagEditorRowProps {
|
|
4
4
|
actionOptions?: TagEditorAction[];
|
|
5
|
+
actionsLabel?: string;
|
|
5
6
|
colorOptions?: readonly string[];
|
|
6
7
|
iconOptions?: readonly IconColorPickerIconOption[];
|
|
7
8
|
value: TagEditorValue;
|
|
@@ -14,7 +15,6 @@ interface TagEditorRowProps {
|
|
|
14
15
|
onDelete: () => void;
|
|
15
16
|
onIconChange: (icon: string | null) => void;
|
|
16
17
|
onNameChange: (name: string) => void;
|
|
17
|
-
onSetDefault: () => void;
|
|
18
18
|
}
|
|
19
19
|
export declare const TagEditorRow: (props: TagEditorRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
export {};
|
|
@@ -13,6 +13,8 @@ export interface TagEditorValue {
|
|
|
13
13
|
export interface TagEditorAction {
|
|
14
14
|
value: string;
|
|
15
15
|
label: string;
|
|
16
|
+
/** Rendered before the label in the trigger and the menu row. */
|
|
17
|
+
icon?: ReactNode;
|
|
16
18
|
}
|
|
17
19
|
export interface TagEditorProps {
|
|
18
20
|
values: TagEditorValue[];
|
|
@@ -33,6 +35,10 @@ export interface TagEditorProps {
|
|
|
33
35
|
/** Name given to a freshly added option before it is renamed inline. */
|
|
34
36
|
addName?: string;
|
|
35
37
|
actionOptions?: TagEditorAction[];
|
|
38
|
+
/** Names the per-row action control, e.g. "Commands". Used in its label and aria-label. */
|
|
39
|
+
actionsLabel?: string;
|
|
40
|
+
/** Names the default-value control shown under the list when showDefault is set. */
|
|
41
|
+
defaultValueLabel?: string;
|
|
36
42
|
defaultAddColor?: string;
|
|
37
43
|
defaultAddIcon?: string | null;
|
|
38
44
|
deleteButtonText?: string;
|
|
@@ -42,4 +48,10 @@ export interface TagEditorProps {
|
|
|
42
48
|
iconOptions?: readonly IconColorPickerIconOption[];
|
|
43
49
|
showDefault?: boolean;
|
|
44
50
|
showIcons?: boolean;
|
|
51
|
+
/** Draws the list as a bordered card, so the header and footer bands read as one panel. */
|
|
52
|
+
framed?: boolean;
|
|
53
|
+
/** Renders a column header band above the rows. Needs `framed` to look right. */
|
|
54
|
+
showColumnHeaders?: boolean;
|
|
55
|
+
/** Header label above the option names, e.g. "State". */
|
|
56
|
+
valueColumnLabel?: string;
|
|
45
57
|
}
|
|
@@ -4,7 +4,7 @@ export interface SaveTagSettingsInput<TValue> {
|
|
|
4
4
|
drafts: TagEditorValue[];
|
|
5
5
|
values: TValue[];
|
|
6
6
|
}
|
|
7
|
-
type EditorLabels = Pick<TagEditorProps, "actionOptions" | "addLabel" | "addName" | "colorOptions" | "deleteButtonText" | "deleteHeadline" | "deleteNotificationText" | "description" | "iconOptions" | "readOnly" | "showDefault" | "onSetDefault" | "showIcons" | "title">;
|
|
7
|
+
type EditorLabels = Pick<TagEditorProps, "actionOptions" | "actionsLabel" | "addLabel" | "addName" | "colorOptions" | "deleteButtonText" | "deleteHeadline" | "defaultValueLabel" | "deleteNotificationText" | "description" | "framed" | "iconOptions" | "readOnly" | "showDefault" | "onSetDefault" | "showColumnHeaders" | "showIcons" | "title" | "valueColumnLabel">;
|
|
8
8
|
type SortableValue = {
|
|
9
9
|
id: string;
|
|
10
10
|
sortOrder: number;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TreeListSection } from './tree-list.types';
|
|
3
|
+
import { TreeListMovePolicy } from './tree-list-reorder';
|
|
4
|
+
export declare const SharedTreeListDragContext: import('react').Context<boolean>;
|
|
5
|
+
interface TreeListDragProviderProps {
|
|
6
|
+
sections: TreeListSection[];
|
|
7
|
+
canMove?: TreeListMovePolicy;
|
|
8
|
+
onReorderSections?: (nextSectionIds: string[], sourceSectionId: string, destinationSectionId: string) => void;
|
|
9
|
+
onReorderNodes?: (sectionId: string, nextNodeIds: string[]) => void;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const TreeListDragProvider: (props: TreeListDragProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
interface TreeListOrderSnapshot {
|
|
2
2
|
sectionOrder: string[];
|
|
3
3
|
nodeOrderBySection: Record<string, string[]>;
|
|
4
|
+
sectionSlotById: Record<string, TreeListOrderSlot>;
|
|
4
5
|
}
|
|
6
|
+
type TreeListOrderSlot = "header" | "content" | "footer";
|
|
5
7
|
interface TreeListOrderState extends TreeListOrderSnapshot {
|
|
6
8
|
setSectionOrder: (nextSectionIds: string[]) => void;
|
|
7
9
|
setNodeOrder: (sectionId: string, nextNodeIds: string[]) => void;
|
|
10
|
+
setSectionSlot: (sectionId: string, slot: TreeListOrderSlot) => void;
|
|
8
11
|
resetSectionOrder: () => void;
|
|
9
12
|
resetNodeOrder: (sectionId: string) => void;
|
|
10
13
|
reset: () => void;
|
|
@@ -39,4 +42,4 @@ export declare const getTreeListOrderStore: (storageKey: string) => Omit<import(
|
|
|
39
42
|
};
|
|
40
43
|
};
|
|
41
44
|
export declare const useTreeListOrderStore: <T>(storageKey: string, selector: (state: TreeListOrderState) => T) => T;
|
|
42
|
-
export type { TreeListOrderSnapshot, TreeListOrderState };
|
|
45
|
+
export type { TreeListOrderSlot, TreeListOrderSnapshot, TreeListOrderState };
|
|
@@ -7,7 +7,18 @@ export type ReorderResult = {
|
|
|
7
7
|
nextSectionIds: string[];
|
|
8
8
|
} | {
|
|
9
9
|
kind: "node";
|
|
10
|
-
|
|
11
|
-
nextNodeIds: string[];
|
|
10
|
+
orders: Record<string, string[]>;
|
|
12
11
|
};
|
|
13
|
-
export
|
|
12
|
+
export interface TreeListMoveEndpoint {
|
|
13
|
+
kind: "section" | "node";
|
|
14
|
+
sectionId: string;
|
|
15
|
+
id: string;
|
|
16
|
+
moveScope?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface TreeListMove {
|
|
19
|
+
source: TreeListMoveEndpoint;
|
|
20
|
+
destination: TreeListMoveEndpoint;
|
|
21
|
+
}
|
|
22
|
+
export type TreeListMovePolicy = (move: TreeListMove) => boolean;
|
|
23
|
+
export declare const canDropOnTreeListTarget: (sections: TreeListSection[], activeId: string, overId: string, canMove?: TreeListMovePolicy) => boolean;
|
|
24
|
+
export declare const computeReorderResult: (sections: TreeListSection[], activeId: string, overId: string, canMove?: TreeListMovePolicy) => ReorderResult | null;
|