@morlay/dsh-client-ui-primitives 0.0.12 → 0.0.14-alpha.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/{client-BunyBylj.mjs → client-BedkS2tw.mjs} +217 -268
- package/dist/{client-Ngzv0PL1.cjs → client-DQVzIDP3.cjs} +1252 -534
- package/dist/client.cjs +2 -2
- package/dist/client.d.cts +2 -2
- package/dist/client.d.mts +2 -2
- package/dist/client.mjs +2 -2
- package/dist/{index-AMHtcyMt.d.mts → index-DWlN5aPg.d.mts} +7 -67
- package/dist/index.cjs +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{reference-hchCWm3z.cjs → reference-BExb65Ah.cjs} +1 -2
- package/dist/{reference-BX54bj6_.d.mts → reference-Bnz5fGkr.d.mts} +0 -2
- package/dist/{reference-Cjcn21uW.mjs → reference-DTa9OfbR.mjs} +1 -2
- package/dist/reference.cjs +1 -1
- package/dist/reference.d.mts +1 -2
- package/dist/reference.mjs +1 -1
- package/package.json +14 -14
- package/src/client/schema-form/hints.ts +38 -34
- package/src/client/schema-form/index.ts +10 -2
package/dist/client.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_client = require("./client-
|
|
3
|
-
const require_reference = require("./reference-
|
|
2
|
+
const require_client = require("./client-DQVzIDP3.cjs");
|
|
3
|
+
const require_reference = require("./reference-BExb65Ah.cjs");
|
|
4
4
|
exports.Bubble = require_client.Bubble;
|
|
5
5
|
exports.Button = require_client.Button;
|
|
6
6
|
exports.DisclosureRow = require_client.DisclosureRow;
|
package/dist/client.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as Bubble, A as SearchSelect, B as VisuallyHidden, C as SuggestedKeys, D as parseTagList, E as mergeTags, F as ModelRouteCandidate, G as SpinnerProps, H as TimeLabel, I as ModelRouteList, J as DisclosureRow, K as SeatButton, L as ModelRouteListProps, M as SearchSelectProps, N as MultilineField, O as TagInput, P as MultilineFieldProps, Q as ButtonTone, R as IconButton, S as FieldNode, T as walkFields, U as TimeLabelProps, V as VisuallyHiddenProps, W as Spinner, X as Button, Y as DisclosureRowProps, Z as ButtonProps, _ as SelectOption, a as ReferenceMarkdownProps, at as Stack, b as failureOf, c as index_d_exports, ct as RowProps, d as SchemaFormActions, dt as LayoutJustify, et as BubbleProps, f as SchemaFormController, ft as LayoutPad, g as SchemaFormHints, gt as markdownLabels, h as projectRoot, ht as MarkdownCopySeat, i as ReferenceMarkdown, it as TextProps, j as SearchSelectOption, k as TagInputProps, l as rowRegistrations, lt as LayoutAlign, m as SchemaFormState, mt as TextTone, n as inject, nt as SettingsFieldRowProps, o as referenceMentions, ot as StackProps, p as SchemaFormFace, pt as TextSize, q as SeatButtonProps, r as ReferenceActions, rt as Text, s as NS, st as Row, t as apply, tt as SettingsFieldRow, u as SchemaFormLocaleKey, ut as LayoutGap, v as SelectSpec, w as WalkedField, x as FieldMeta, y as ValidationFailure, z as IconButtonProps } from "./index-
|
|
2
|
-
import { a as formatReferenceMention, c as parseReferenceToken, i as formatReference, n as ReferenceSpan, o as isLocalReference, r as findReferences, s as parseReference, t as Reference } from "./reference-
|
|
1
|
+
import { $ as Bubble, A as SearchSelect, B as VisuallyHidden, C as SuggestedKeys, D as parseTagList, E as mergeTags, F as ModelRouteCandidate, G as SpinnerProps, H as TimeLabel, I as ModelRouteList, J as DisclosureRow, K as SeatButton, L as ModelRouteListProps, M as SearchSelectProps, N as MultilineField, O as TagInput, P as MultilineFieldProps, Q as ButtonTone, R as IconButton, S as FieldNode, T as walkFields, U as TimeLabelProps, V as VisuallyHiddenProps, W as Spinner, X as Button, Y as DisclosureRowProps, Z as ButtonProps, _ as SelectOption, a as ReferenceMarkdownProps, at as Stack, b as failureOf, c as index_d_exports, ct as RowProps, d as SchemaFormActions, dt as LayoutJustify, et as BubbleProps, f as SchemaFormController, ft as LayoutPad, g as SchemaFormHints, gt as markdownLabels, h as projectRoot, ht as MarkdownCopySeat, i as ReferenceMarkdown, it as TextProps, j as SearchSelectOption, k as TagInputProps, l as rowRegistrations, lt as LayoutAlign, m as SchemaFormState, mt as TextTone, n as inject, nt as SettingsFieldRowProps, o as referenceMentions, ot as StackProps, p as SchemaFormFace, pt as TextSize, q as SeatButtonProps, r as ReferenceActions, rt as Text, s as NS, st as Row, t as apply, tt as SettingsFieldRow, u as SchemaFormLocaleKey, ut as LayoutGap, v as SelectSpec, w as WalkedField, x as FieldMeta, y as ValidationFailure, z as IconButtonProps } from "./index-DWlN5aPg.mjs";
|
|
2
|
+
import { a as formatReferenceMention, c as parseReferenceToken, i as formatReference, n as ReferenceSpan, o as isLocalReference, r as findReferences, s as parseReference, t as Reference } from "./reference-Bnz5fGkr.mjs";
|
|
3
3
|
export * from "@deepseek-ai/dsh-client-ui-primitives";
|
|
4
4
|
export { Bubble, type BubbleProps, Button, type ButtonProps, type ButtonTone, DisclosureRow, type DisclosureRowProps, type FieldMeta, type FieldNode, IconButton, type IconButtonProps, type LayoutAlign, type LayoutGap, type LayoutJustify, type LayoutPad, MarkdownCopySeat, type ModelRouteCandidate, ModelRouteList, type ModelRouteListProps, MultilineField, type MultilineFieldProps, type Reference, type ReferenceActions, ReferenceMarkdown, type ReferenceMarkdownProps, type ReferenceSpan, Row, type RowProps, NS as SCHEMA_FORM_NS, type SchemaFormActions, SchemaFormController, type SchemaFormFace, SchemaFormHints, type SchemaFormLocaleKey, type SchemaFormState, SearchSelect, type SearchSelectOption, type SearchSelectProps, SeatButton, type SeatButtonProps, type SelectOption, type SelectSpec, SettingsFieldRow, type SettingsFieldRowProps, Spinner, type SpinnerProps, Stack, type StackProps, type SuggestedKeys, TagInput, type TagInputProps, Text, type TextProps, type TextSize, type TextTone, TimeLabel, type TimeLabelProps, type ValidationFailure, VisuallyHidden, type VisuallyHiddenProps, type WalkedField, apply, failureOf, findReferences, formatReference, formatReferenceMention, inject, isLocalReference, markdownLabels, mergeTags, parseReference, parseReferenceToken, parseTagList, projectRoot, referenceMentions, rowRegistrations, index_d_exports as schemaForm, walkFields };
|
package/dist/client.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as Bubble, A as SearchSelect, B as VisuallyHidden, C as SuggestedKeys, D as parseTagList, E as mergeTags, F as ModelRouteCandidate, G as SpinnerProps, H as TimeLabel, I as ModelRouteList, J as DisclosureRow, K as SeatButton, L as ModelRouteListProps, M as SearchSelectProps, N as MultilineField, O as TagInput, P as MultilineFieldProps, Q as ButtonTone, R as IconButton, S as FieldNode, T as walkFields, U as TimeLabelProps, V as VisuallyHiddenProps, W as Spinner, X as Button, Y as DisclosureRowProps, Z as ButtonProps, _ as SelectOption, a as ReferenceMarkdownProps, at as Stack, b as failureOf, c as index_d_exports, ct as RowProps, d as SchemaFormActions, dt as LayoutJustify, et as BubbleProps, f as SchemaFormController, ft as LayoutPad, g as SchemaFormHints, gt as markdownLabels, h as projectRoot, ht as MarkdownCopySeat, i as ReferenceMarkdown, it as TextProps, j as SearchSelectOption, k as TagInputProps, l as rowRegistrations, lt as LayoutAlign, m as SchemaFormState, mt as TextTone, n as inject, nt as SettingsFieldRowProps, o as referenceMentions, ot as StackProps, p as SchemaFormFace, pt as TextSize, q as SeatButtonProps, r as ReferenceActions, rt as Text, s as NS, st as Row, t as apply, tt as SettingsFieldRow, u as SchemaFormLocaleKey, ut as LayoutGap, v as SelectSpec, w as WalkedField, x as FieldMeta, y as ValidationFailure, z as IconButtonProps } from "./index-
|
|
2
|
-
import { a as formatReferenceMention, c as parseReferenceToken, i as formatReference, n as ReferenceSpan, o as isLocalReference, r as findReferences, s as parseReference, t as Reference } from "./reference-
|
|
1
|
+
import { $ as Bubble, A as SearchSelect, B as VisuallyHidden, C as SuggestedKeys, D as parseTagList, E as mergeTags, F as ModelRouteCandidate, G as SpinnerProps, H as TimeLabel, I as ModelRouteList, J as DisclosureRow, K as SeatButton, L as ModelRouteListProps, M as SearchSelectProps, N as MultilineField, O as TagInput, P as MultilineFieldProps, Q as ButtonTone, R as IconButton, S as FieldNode, T as walkFields, U as TimeLabelProps, V as VisuallyHiddenProps, W as Spinner, X as Button, Y as DisclosureRowProps, Z as ButtonProps, _ as SelectOption, a as ReferenceMarkdownProps, at as Stack, b as failureOf, c as index_d_exports, ct as RowProps, d as SchemaFormActions, dt as LayoutJustify, et as BubbleProps, f as SchemaFormController, ft as LayoutPad, g as SchemaFormHints, gt as markdownLabels, h as projectRoot, ht as MarkdownCopySeat, i as ReferenceMarkdown, it as TextProps, j as SearchSelectOption, k as TagInputProps, l as rowRegistrations, lt as LayoutAlign, m as SchemaFormState, mt as TextTone, n as inject, nt as SettingsFieldRowProps, o as referenceMentions, ot as StackProps, p as SchemaFormFace, pt as TextSize, q as SeatButtonProps, r as ReferenceActions, rt as Text, s as NS, st as Row, t as apply, tt as SettingsFieldRow, u as SchemaFormLocaleKey, ut as LayoutGap, v as SelectSpec, w as WalkedField, x as FieldMeta, y as ValidationFailure, z as IconButtonProps } from "./index-DWlN5aPg.mjs";
|
|
2
|
+
import { a as formatReferenceMention, c as parseReferenceToken, i as formatReference, n as ReferenceSpan, o as isLocalReference, r as findReferences, s as parseReference, t as Reference } from "./reference-Bnz5fGkr.mjs";
|
|
3
3
|
export * from "@deepseek-ai/dsh-client-ui-primitives";
|
|
4
4
|
export { Bubble, type BubbleProps, Button, type ButtonProps, type ButtonTone, DisclosureRow, type DisclosureRowProps, type FieldMeta, type FieldNode, IconButton, type IconButtonProps, type LayoutAlign, type LayoutGap, type LayoutJustify, type LayoutPad, MarkdownCopySeat, type ModelRouteCandidate, ModelRouteList, type ModelRouteListProps, MultilineField, type MultilineFieldProps, type Reference, type ReferenceActions, ReferenceMarkdown, type ReferenceMarkdownProps, type ReferenceSpan, Row, type RowProps, NS as SCHEMA_FORM_NS, type SchemaFormActions, SchemaFormController, type SchemaFormFace, SchemaFormHints, type SchemaFormLocaleKey, type SchemaFormState, SearchSelect, type SearchSelectOption, type SearchSelectProps, SeatButton, type SeatButtonProps, type SelectOption, type SelectSpec, SettingsFieldRow, type SettingsFieldRowProps, Spinner, type SpinnerProps, Stack, type StackProps, type SuggestedKeys, TagInput, type TagInputProps, Text, type TextProps, type TextSize, type TextTone, TimeLabel, type TimeLabelProps, type ValidationFailure, VisuallyHidden, type VisuallyHiddenProps, type WalkedField, apply, failureOf, findReferences, formatReference, formatReferenceMention, inject, isLocalReference, markdownLabels, mergeTags, parseReference, parseReferenceToken, parseTagList, projectRoot, referenceMentions, rowRegistrations, index_d_exports as schemaForm, walkFields };
|
package/dist/client.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as failureOf, C as markdownLabels, D as SchemaFormHints, E as rowRegistrations, O as SchemaFormController, S as Row, T as schema_form_exports, _ as Button, a as TagInput, b as Text, c as SearchSelect, d as IconButton, f as VisuallyHidden, g as DisclosureRow, h as SeatButton, i as referenceMentions, j as walkFields, k as projectRoot, l as MultilineField, m as Spinner, n as inject, o as mergeTags, p as TimeLabel, r as ReferenceMarkdown, s as parseTagList, t as apply, u as ModelRouteList, v as Bubble, w as NS, x as Stack, y as SettingsFieldRow } from "./client-
|
|
2
|
-
import { a as parseReference, i as isLocalReference, n as formatReference, o as parseReferenceToken, r as formatReferenceMention, t as findReferences } from "./reference-
|
|
1
|
+
import { A as failureOf, C as markdownLabels, D as SchemaFormHints, E as rowRegistrations, O as SchemaFormController, S as Row, T as schema_form_exports, _ as Button, a as TagInput, b as Text, c as SearchSelect, d as IconButton, f as VisuallyHidden, g as DisclosureRow, h as SeatButton, i as referenceMentions, j as walkFields, k as projectRoot, l as MultilineField, m as Spinner, n as inject, o as mergeTags, p as TimeLabel, r as ReferenceMarkdown, s as parseTagList, t as apply, u as ModelRouteList, v as Bubble, w as NS, x as Stack, y as SettingsFieldRow } from "./client-BedkS2tw.mjs";
|
|
2
|
+
import { a as parseReference, i as isLocalReference, n as formatReference, o as parseReferenceToken, r as formatReferenceMention, t as findReferences } from "./reference-DTa9OfbR.mjs";
|
|
3
3
|
export * from "@deepseek-ai/dsh-client-ui-primitives";
|
|
4
4
|
export { Bubble, Button, DisclosureRow, IconButton, ModelRouteList, MultilineField, ReferenceMarkdown, Row, NS as SCHEMA_FORM_NS, SchemaFormController, SchemaFormHints, SearchSelect, SeatButton, SettingsFieldRow, Spinner, Stack, TagInput, Text, TimeLabel, VisuallyHidden, apply, failureOf, findReferences, formatReference, formatReferenceMention, inject, isLocalReference, markdownLabels, mergeTags, parseReference, parseReferenceToken, parseTagList, projectRoot, referenceMentions, rowRegistrations, schema_form_exports as schemaForm, walkFields };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Reference } from "./reference-
|
|
1
|
+
import { t as Reference } from "./reference-Bnz5fGkr.mjs";
|
|
2
2
|
import { Context, Service } from "@deepseek-ai/cordis";
|
|
3
3
|
import { Button, DisclosureRow, MarkdownFileMentions, MarkdownLabels, MarkdownLabels as MarkdownLabels$1, MarkdownPathImages, SettingsFormShell } from "@deepseek-ai/dsh-client-ui-primitives";
|
|
4
4
|
import { ButtonHTMLAttributes, ComponentProps, ElementType, HTMLAttributes, ReactNode, TextareaHTMLAttributes } from "react";
|
|
@@ -6,12 +6,8 @@ import { PropsRuntime, TranslateNS } from "@deepseek-ai/dsh-client-ui-slots";
|
|
|
6
6
|
import { BundleInfo, SettingsNamespaceView } from "@deepseek-ai/dsh-api-remotes/client";
|
|
7
7
|
import { SnapshotStore } from "@deepseek-ai/dsh-client-store";
|
|
8
8
|
import { ConfigForm, SchemaNode, SettingsDescribeFace } from "@deepseek-ai/dsh-client-ui-settings/client";
|
|
9
|
-
//#endregion
|
|
10
|
-
//#region src/client/markdown-labels.d.ts
|
|
11
9
|
type MarkdownCopySeat = (key: "copy" | "copied" | "markdown.footnotes") => string;
|
|
12
10
|
declare function markdownLabels(t: MarkdownCopySeat): MarkdownLabels;
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/client/layout/scales.d.ts
|
|
15
11
|
type LayoutGap = 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | "wide";
|
|
16
12
|
type LayoutAlign = "stretch" | "start" | "center" | "end";
|
|
17
13
|
type LayoutJustify = "start" | "center" | "between" | "end";
|
|
@@ -19,8 +15,6 @@ type LayoutPad = "none" | "card" | "body" | "page" | "row" | "blocking";
|
|
|
19
15
|
type TextSize = "xs" | "sm" | "md" | "base" | "lg";
|
|
20
16
|
type TextTone = "primary" | "secondary" | "tertiary" | "danger";
|
|
21
17
|
type TextWeight = "medium" | "strong";
|
|
22
|
-
//#endregion
|
|
23
|
-
//#region src/client/layout/Row.d.ts
|
|
24
18
|
interface RowProps extends HTMLAttributes<HTMLDivElement> {
|
|
25
19
|
as?: ElementType;
|
|
26
20
|
gap?: LayoutGap;
|
|
@@ -36,8 +30,6 @@ interface RowProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
36
30
|
pad?: LayoutPad;
|
|
37
31
|
}
|
|
38
32
|
declare const Row: import("react").ForwardRefExoticComponent<RowProps & import("react").RefAttributes<HTMLElement>>;
|
|
39
|
-
//#endregion
|
|
40
|
-
//#region src/client/layout/Stack.d.ts
|
|
41
33
|
interface StackProps extends HTMLAttributes<HTMLDivElement> {
|
|
42
34
|
as?: ElementType;
|
|
43
35
|
gap?: LayoutGap;
|
|
@@ -52,8 +44,6 @@ interface StackProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
52
44
|
plain?: boolean;
|
|
53
45
|
}
|
|
54
46
|
declare const Stack: import("react").ForwardRefExoticComponent<StackProps & import("react").RefAttributes<HTMLElement>>;
|
|
55
|
-
//#endregion
|
|
56
|
-
//#region src/client/layout/Text.d.ts
|
|
57
47
|
interface TextProps extends Omit<HTMLAttributes<HTMLElement>, "children" | "color"> {
|
|
58
48
|
as?: ElementType;
|
|
59
49
|
size?: TextSize;
|
|
@@ -65,8 +55,6 @@ interface TextProps extends Omit<HTMLAttributes<HTMLElement>, "children" | "colo
|
|
|
65
55
|
children?: ReactNode;
|
|
66
56
|
}
|
|
67
57
|
declare function Text({ as: Element, size, tone, weight, mono, truncate, tabular, className, children }: TextProps): ReactNode;
|
|
68
|
-
//#endregion
|
|
69
|
-
//#region src/client/settings-form/SettingsFieldRow.d.ts
|
|
70
58
|
interface SettingsFieldRowProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "color"> {
|
|
71
59
|
label: string;
|
|
72
60
|
hint: string;
|
|
@@ -79,23 +67,15 @@ interface SettingsFieldRowProps extends Omit<HTMLAttributes<HTMLDivElement>, "ch
|
|
|
79
67
|
children: ReactNode;
|
|
80
68
|
}
|
|
81
69
|
declare function SettingsFieldRow({ label, hint, layout, divider, overriddenLabel, resetLabel, onReset, invalid, children, className, ...rest }: SettingsFieldRowProps): ReactNode;
|
|
82
|
-
//#endregion
|
|
83
|
-
//#region src/client/controls/Bubble.d.ts
|
|
84
70
|
type BubbleProps = HTMLAttributes<HTMLDivElement>;
|
|
85
71
|
declare function Bubble({ className, children, ...rest }: BubbleProps): ReactNode;
|
|
86
|
-
//#endregion
|
|
87
|
-
//#region src/client/controls/Button.d.ts
|
|
88
72
|
type ButtonTone = "danger";
|
|
89
73
|
type ButtonProps = ComponentProps<typeof Button> & {
|
|
90
74
|
tone?: ButtonTone;
|
|
91
75
|
};
|
|
92
76
|
declare const Button$1: import("react").ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
93
|
-
//#endregion
|
|
94
|
-
//#region src/client/controls/DisclosureRow.d.ts
|
|
95
77
|
type DisclosureRowProps = ComponentProps<typeof DisclosureRow>;
|
|
96
78
|
declare function DisclosureRow$1(props: DisclosureRowProps): ReactNode;
|
|
97
|
-
//#endregion
|
|
98
|
-
//#region src/client/controls/SeatButton.d.ts
|
|
99
79
|
interface SeatButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
|
|
100
80
|
icon: ReactNode;
|
|
101
81
|
label: string;
|
|
@@ -103,24 +83,16 @@ interface SeatButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
|
|
|
103
83
|
chevron?: ReactNode;
|
|
104
84
|
}
|
|
105
85
|
declare function SeatButton({ icon, label, expanded, chevron, type, className, ...rest }: SeatButtonProps): ReactNode;
|
|
106
|
-
//#endregion
|
|
107
|
-
//#region src/client/controls/Spinner.d.ts
|
|
108
86
|
interface SpinnerProps {
|
|
109
87
|
label: string;
|
|
110
88
|
}
|
|
111
89
|
declare function Spinner({ label }: SpinnerProps): ReactNode;
|
|
112
|
-
//#endregion
|
|
113
|
-
//#region src/client/controls/TimeLabel.d.ts
|
|
114
90
|
type TimeLabelProps = HTMLAttributes<HTMLSpanElement>;
|
|
115
91
|
declare function TimeLabel({ className, children, ...rest }: TimeLabelProps): ReactNode;
|
|
116
|
-
//#endregion
|
|
117
|
-
//#region src/client/controls/VisuallyHidden.d.ts
|
|
118
92
|
interface VisuallyHiddenProps extends HTMLAttributes<HTMLSpanElement> {
|
|
119
93
|
children: ReactNode;
|
|
120
94
|
}
|
|
121
95
|
declare function VisuallyHidden({ children, ...rest }: VisuallyHiddenProps): ReactNode;
|
|
122
|
-
//#endregion
|
|
123
|
-
//#region src/client/controls/IconButton.d.ts
|
|
124
96
|
interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "aria-label"> {
|
|
125
97
|
label: string;
|
|
126
98
|
children: ReactNode;
|
|
@@ -128,8 +100,6 @@ interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
|
|
|
128
100
|
size?: "md" | "sm";
|
|
129
101
|
}
|
|
130
102
|
declare function IconButton({ label, children, type, shape, size, className, ...rest }: IconButtonProps): ReactNode;
|
|
131
|
-
//#endregion
|
|
132
|
-
//#region src/client/controls/ModelRouteList.d.ts
|
|
133
103
|
interface ModelRouteCandidate {
|
|
134
104
|
readonly key: string;
|
|
135
105
|
readonly provider: string;
|
|
@@ -149,12 +119,8 @@ interface ModelRouteListProps {
|
|
|
149
119
|
onSelect: (candidate: ModelRouteCandidate) => void;
|
|
150
120
|
}
|
|
151
121
|
declare function ModelRouteList({ label, candidates, selectedKey, disabled, status, loadingLabel, errorLabel, emptyLabel, onSelect }: ModelRouteListProps): ReactNode;
|
|
152
|
-
//#endregion
|
|
153
|
-
//#region src/client/controls/MultilineField.d.ts
|
|
154
122
|
type MultilineFieldProps = TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
155
123
|
declare function MultilineField({ rows, className, ...rest }: MultilineFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
156
|
-
//#endregion
|
|
157
|
-
//#region src/client/controls/SearchSelect.d.ts
|
|
158
124
|
interface SearchSelectOption {
|
|
159
125
|
readonly value: string;
|
|
160
126
|
readonly label?: string | undefined;
|
|
@@ -170,8 +136,6 @@ interface SearchSelectProps {
|
|
|
170
136
|
onSelect: (next: string) => void;
|
|
171
137
|
}
|
|
172
138
|
declare function SearchSelect({ label, value, emptyLabel, options, disabled, searchLabel, noMatchLabel, onSelect }: SearchSelectProps): ReactNode;
|
|
173
|
-
//#endregion
|
|
174
|
-
//#region src/client/controls/TagInput.d.ts
|
|
175
139
|
interface TagInputProps {
|
|
176
140
|
value: readonly string[];
|
|
177
141
|
onChange: (next: string[]) => void;
|
|
@@ -183,12 +147,8 @@ interface TagInputProps {
|
|
|
183
147
|
removeLabel: (name: string) => string;
|
|
184
148
|
}
|
|
185
149
|
declare function TagInput({ value, onChange, options, placeholder, label, disabled, noMatchLabel, removeLabel }: TagInputProps): ReactNode;
|
|
186
|
-
//#endregion
|
|
187
|
-
//#region src/client/controls/tags.d.ts
|
|
188
150
|
declare function parseTagList(text: string): string[];
|
|
189
151
|
declare function mergeTags(current: readonly string[], incoming: readonly string[]): string[];
|
|
190
|
-
//#endregion
|
|
191
|
-
//#region src/client/schema-form/schema-node.d.ts
|
|
192
152
|
type ReadOnlyReason = "transform" | "function" | "constructor";
|
|
193
153
|
interface FieldMeta {
|
|
194
154
|
description: string | Readonly<Record<string, string>> | undefined;
|
|
@@ -275,8 +235,6 @@ interface VariantChoice {
|
|
|
275
235
|
value: unknown;
|
|
276
236
|
}
|
|
277
237
|
declare function readPath(root: unknown, path: readonly string[]): unknown;
|
|
278
|
-
//#endregion
|
|
279
|
-
//#region src/client/schema-form/draft.d.ts
|
|
280
238
|
type Section = Record<string, unknown>;
|
|
281
239
|
type TextParseResult = {
|
|
282
240
|
kind: "value";
|
|
@@ -301,8 +259,6 @@ interface DraftFieldState {
|
|
|
301
259
|
staged: boolean;
|
|
302
260
|
}
|
|
303
261
|
type DraftScope = ConfigForm<Section>;
|
|
304
|
-
//#endregion
|
|
305
|
-
//#region src/client/schema-form/hints.d.ts
|
|
306
262
|
type SuggestedKeysReader = () => readonly string[];
|
|
307
263
|
interface FieldText {
|
|
308
264
|
label?: string | undefined;
|
|
@@ -328,7 +284,11 @@ interface SchemaFormHintsFace {
|
|
|
328
284
|
selectFor(ns: string, path: readonly string[]): SelectSpec | undefined;
|
|
329
285
|
}
|
|
330
286
|
declare class SchemaFormHints extends Service implements SchemaFormHintsFace {
|
|
331
|
-
|
|
287
|
+
private readonly readers;
|
|
288
|
+
private readonly texts;
|
|
289
|
+
private readonly selects;
|
|
290
|
+
private readonly sources;
|
|
291
|
+
private readonly listeners;
|
|
332
292
|
constructor(ctx: Context);
|
|
333
293
|
keysFor(ns: string, path: readonly string[]): readonly string[];
|
|
334
294
|
textFor(ns: string, path: readonly string[]): FieldText;
|
|
@@ -340,14 +300,13 @@ declare class SchemaFormHints extends Service implements SchemaFormHintsFace {
|
|
|
340
300
|
suggestKeys(ns: string, path: readonly string[], read: SuggestedKeysReader): () => void;
|
|
341
301
|
subscribe(listener: () => void): () => void;
|
|
342
302
|
refresh(): void;
|
|
303
|
+
private publish;
|
|
343
304
|
}
|
|
344
305
|
declare module "@deepseek-ai/cordis" {
|
|
345
306
|
interface Context {
|
|
346
307
|
schemaFormHints: SchemaFormHints;
|
|
347
308
|
}
|
|
348
309
|
}
|
|
349
|
-
//#endregion
|
|
350
|
-
//#region src/client/schema-form/controller.d.ts
|
|
351
310
|
declare function fieldKey(path: readonly string[]): string;
|
|
352
311
|
declare function projectRoot(serialized: unknown, rehydrate: (serialized: unknown) => SchemaNode): {
|
|
353
312
|
schema: SchemaNode;
|
|
@@ -410,11 +369,7 @@ declare class SchemaFormController {
|
|
|
410
369
|
refresh(): void;
|
|
411
370
|
dispose(): void;
|
|
412
371
|
}
|
|
413
|
-
//#endregion
|
|
414
|
-
//#region src/client/schema-form/labels.d.ts
|
|
415
372
|
type ResolveText = (text: string | Readonly<Record<string, string>>) => string;
|
|
416
|
-
//#endregion
|
|
417
|
-
//#region src/client/schema-form/locales.d.ts
|
|
418
373
|
declare const zh: {
|
|
419
374
|
readonly unavailable: "该插件当前未加载,暂时无法配置。";
|
|
420
375
|
readonly readOnly: "本部署的设置为只读。";
|
|
@@ -470,8 +425,6 @@ declare const zh: {
|
|
|
470
425
|
readonly missingItem: "每一项都需要一个 {key}";
|
|
471
426
|
};
|
|
472
427
|
type SchemaFormLocaleKey = keyof typeof zh;
|
|
473
|
-
//#endregion
|
|
474
|
-
//#region src/client/schema-form/slot-contract.d.ts
|
|
475
428
|
interface SchemaFieldOwnerProps {
|
|
476
429
|
ns: string;
|
|
477
430
|
path: readonly string[];
|
|
@@ -541,15 +494,11 @@ declare module "@deepseek-ai/dsh-client-ui-slots" {
|
|
|
541
494
|
};
|
|
542
495
|
}
|
|
543
496
|
}
|
|
544
|
-
//#endregion
|
|
545
|
-
//#region src/client/schema-form/rows.d.ts
|
|
546
497
|
interface RowRegistrationPlan {
|
|
547
498
|
key: string;
|
|
548
499
|
ns: string;
|
|
549
500
|
}
|
|
550
501
|
declare function rowRegistrations(namespaces: readonly SettingsNamespaceView[], bundles: readonly BundleInfo[]): RowRegistrationPlan[];
|
|
551
|
-
//#endregion
|
|
552
|
-
//#region src/client/schema-form/value.d.ts
|
|
553
502
|
declare function valueText(value: unknown): string;
|
|
554
503
|
declare function tokenText(value: unknown): string;
|
|
555
504
|
declare function tokenTone(value: unknown): "string" | "number" | "boolean" | "empty";
|
|
@@ -559,11 +508,7 @@ declare function InlineValue({ owner }: {
|
|
|
559
508
|
declare function SchemaFieldDefault({ owner }: {
|
|
560
509
|
owner: SchemaFieldOwnerProps;
|
|
561
510
|
}): ReactNode;
|
|
562
|
-
//#endregion
|
|
563
|
-
//#region src/client/schema-form/fields.d.ts
|
|
564
511
|
declare function parseFor(node: FieldNode, t: SchemaFormTranslate): TextParse;
|
|
565
|
-
//#endregion
|
|
566
|
-
//#region src/client/schema-form/lines.d.ts
|
|
567
512
|
type AddLineSpec = {
|
|
568
513
|
kind: "item";
|
|
569
514
|
} | {
|
|
@@ -624,8 +569,6 @@ declare namespace index_d_exports {
|
|
|
624
569
|
declare const NS = "settings.schema-form";
|
|
625
570
|
declare const inject$1: string[];
|
|
626
571
|
declare function apply$1(ctx: Context): void;
|
|
627
|
-
//#endregion
|
|
628
|
-
//#region src/reference-markdown.d.ts
|
|
629
572
|
interface ReferenceActions {
|
|
630
573
|
readonly openFile: (path: string) => void;
|
|
631
574
|
readonly openSkill: (name: string) => void;
|
|
@@ -639,9 +582,6 @@ interface ReferenceMarkdownProps {
|
|
|
639
582
|
}
|
|
640
583
|
declare function referenceMentions(actions?: ReferenceActions, tokens?: ReadonlyMap<string, Reference>): MarkdownFileMentions;
|
|
641
584
|
declare const ReferenceMarkdown: import("react").MemoExoticComponent<({ text, labels, actions, streaming, pathImages }: ReferenceMarkdownProps) => import("react/jsx-runtime").JSX.Element>;
|
|
642
|
-
//#endregion
|
|
643
|
-
//#region src/client/index.d.ts
|
|
644
585
|
declare const inject: readonly string[];
|
|
645
586
|
declare function apply(ctx: Context): void;
|
|
646
|
-
//#endregion
|
|
647
587
|
export { Bubble as $, SearchSelect as A, VisuallyHidden as B, SuggestedKeys as C, parseTagList as D, mergeTags as E, ModelRouteCandidate as F, SpinnerProps as G, TimeLabel as H, ModelRouteList as I, DisclosureRow$1 as J, SeatButton as K, ModelRouteListProps as L, SearchSelectProps as M, MultilineField as N, TagInput as O, MultilineFieldProps as P, ButtonTone as Q, IconButton as R, FieldNode as S, walkFields as T, TimeLabelProps as U, VisuallyHiddenProps as V, Spinner as W, Button$1 as X, DisclosureRowProps as Y, ButtonProps as Z, SelectOption as _, ReferenceMarkdownProps as a, Stack as at, failureOf as b, index_d_exports as c, RowProps as ct, SchemaFormActions as d, LayoutJustify as dt, BubbleProps as et, SchemaFormController as f, LayoutPad as ft, SchemaFormHints as g, markdownLabels as gt, projectRoot as h, MarkdownCopySeat as ht, ReferenceMarkdown as i, TextProps as it, SearchSelectOption as j, TagInputProps as k, rowRegistrations as l, LayoutAlign as lt, SchemaFormState as m, TextTone as mt, inject as n, SettingsFieldRowProps as nt, referenceMentions as o, StackProps as ot, SchemaFormFace as p, TextSize as pt, SeatButtonProps as q, ReferenceActions as r, Text as rt, NS as s, Row as st, apply as t, SettingsFieldRow as tt, SchemaFormLocaleKey as u, LayoutGap as ut, SelectSpec as v, WalkedField as w, FieldMeta as x, ValidationFailure as y, IconButtonProps as z };
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_client = require("./client-
|
|
3
|
-
const require_reference = require("./reference-
|
|
2
|
+
const require_client = require("./client-DQVzIDP3.cjs");
|
|
3
|
+
const require_reference = require("./reference-BExb65Ah.cjs");
|
|
4
4
|
exports.Bubble = require_client.Bubble;
|
|
5
5
|
exports.Button = require_client.Button;
|
|
6
6
|
exports.DisclosureRow = require_client.DisclosureRow;
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as Bubble, A as SearchSelect, B as VisuallyHidden, C as SuggestedKeys, D as parseTagList, E as mergeTags, F as ModelRouteCandidate, G as SpinnerProps, H as TimeLabel, I as ModelRouteList, J as DisclosureRow, K as SeatButton, L as ModelRouteListProps, M as SearchSelectProps, N as MultilineField, O as TagInput, P as MultilineFieldProps, Q as ButtonTone, R as IconButton, S as FieldNode, T as walkFields, U as TimeLabelProps, V as VisuallyHiddenProps, W as Spinner, X as Button, Y as DisclosureRowProps, Z as ButtonProps, _ as SelectOption, a as ReferenceMarkdownProps, at as Stack, b as failureOf, c as index_d_exports, ct as RowProps, d as SchemaFormActions, dt as LayoutJustify, et as BubbleProps, f as SchemaFormController, ft as LayoutPad, g as SchemaFormHints, gt as markdownLabels, h as projectRoot, ht as MarkdownCopySeat, i as ReferenceMarkdown, it as TextProps, j as SearchSelectOption, k as TagInputProps, l as rowRegistrations, lt as LayoutAlign, m as SchemaFormState, mt as TextTone, n as inject, nt as SettingsFieldRowProps, o as referenceMentions, ot as StackProps, p as SchemaFormFace, pt as TextSize, q as SeatButtonProps, r as ReferenceActions, rt as Text, s as NS, st as Row, t as apply, tt as SettingsFieldRow, u as SchemaFormLocaleKey, ut as LayoutGap, v as SelectSpec, w as WalkedField, x as FieldMeta, y as ValidationFailure, z as IconButtonProps } from "./index-
|
|
2
|
-
import { a as formatReferenceMention, c as parseReferenceToken, i as formatReference, n as ReferenceSpan, o as isLocalReference, r as findReferences, s as parseReference, t as Reference } from "./reference-
|
|
1
|
+
import { $ as Bubble, A as SearchSelect, B as VisuallyHidden, C as SuggestedKeys, D as parseTagList, E as mergeTags, F as ModelRouteCandidate, G as SpinnerProps, H as TimeLabel, I as ModelRouteList, J as DisclosureRow, K as SeatButton, L as ModelRouteListProps, M as SearchSelectProps, N as MultilineField, O as TagInput, P as MultilineFieldProps, Q as ButtonTone, R as IconButton, S as FieldNode, T as walkFields, U as TimeLabelProps, V as VisuallyHiddenProps, W as Spinner, X as Button, Y as DisclosureRowProps, Z as ButtonProps, _ as SelectOption, a as ReferenceMarkdownProps, at as Stack, b as failureOf, c as index_d_exports, ct as RowProps, d as SchemaFormActions, dt as LayoutJustify, et as BubbleProps, f as SchemaFormController, ft as LayoutPad, g as SchemaFormHints, gt as markdownLabels, h as projectRoot, ht as MarkdownCopySeat, i as ReferenceMarkdown, it as TextProps, j as SearchSelectOption, k as TagInputProps, l as rowRegistrations, lt as LayoutAlign, m as SchemaFormState, mt as TextTone, n as inject, nt as SettingsFieldRowProps, o as referenceMentions, ot as StackProps, p as SchemaFormFace, pt as TextSize, q as SeatButtonProps, r as ReferenceActions, rt as Text, s as NS, st as Row, t as apply, tt as SettingsFieldRow, u as SchemaFormLocaleKey, ut as LayoutGap, v as SelectSpec, w as WalkedField, x as FieldMeta, y as ValidationFailure, z as IconButtonProps } from "./index-DWlN5aPg.mjs";
|
|
2
|
+
import { a as formatReferenceMention, c as parseReferenceToken, i as formatReference, n as ReferenceSpan, o as isLocalReference, r as findReferences, s as parseReference, t as Reference } from "./reference-Bnz5fGkr.mjs";
|
|
3
3
|
export * from "@deepseek-ai/dsh-client-ui-primitives";
|
|
4
4
|
export { Bubble, type BubbleProps, Button, type ButtonProps, type ButtonTone, DisclosureRow, type DisclosureRowProps, type FieldMeta, type FieldNode, IconButton, type IconButtonProps, type LayoutAlign, type LayoutGap, type LayoutJustify, type LayoutPad, MarkdownCopySeat, type ModelRouteCandidate, ModelRouteList, type ModelRouteListProps, MultilineField, type MultilineFieldProps, type Reference, type ReferenceActions, ReferenceMarkdown, type ReferenceMarkdownProps, type ReferenceSpan, Row, type RowProps, NS as SCHEMA_FORM_NS, type SchemaFormActions, SchemaFormController, type SchemaFormFace, SchemaFormHints, type SchemaFormLocaleKey, type SchemaFormState, SearchSelect, type SearchSelectOption, type SearchSelectProps, SeatButton, type SeatButtonProps, type SelectOption, type SelectSpec, SettingsFieldRow, type SettingsFieldRowProps, Spinner, type SpinnerProps, Stack, type StackProps, type SuggestedKeys, TagInput, type TagInputProps, Text, type TextProps, type TextSize, type TextTone, TimeLabel, type TimeLabelProps, type ValidationFailure, VisuallyHidden, type VisuallyHiddenProps, type WalkedField, apply, failureOf, findReferences, formatReference, formatReferenceMention, inject, isLocalReference, markdownLabels, mergeTags, parseReference, parseReferenceToken, parseTagList, projectRoot, referenceMentions, rowRegistrations, index_d_exports as schemaForm, walkFields };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as failureOf, C as markdownLabels, D as SchemaFormHints, E as rowRegistrations, O as SchemaFormController, S as Row, T as schema_form_exports, _ as Button, a as TagInput, b as Text, c as SearchSelect, d as IconButton, f as VisuallyHidden, g as DisclosureRow, h as SeatButton, i as referenceMentions, j as walkFields, k as projectRoot, l as MultilineField, m as Spinner, n as inject, o as mergeTags, p as TimeLabel, r as ReferenceMarkdown, s as parseTagList, t as apply, u as ModelRouteList, v as Bubble, w as NS, x as Stack, y as SettingsFieldRow } from "./client-
|
|
2
|
-
import { a as parseReference, i as isLocalReference, n as formatReference, o as parseReferenceToken, r as formatReferenceMention, t as findReferences } from "./reference-
|
|
1
|
+
import { A as failureOf, C as markdownLabels, D as SchemaFormHints, E as rowRegistrations, O as SchemaFormController, S as Row, T as schema_form_exports, _ as Button, a as TagInput, b as Text, c as SearchSelect, d as IconButton, f as VisuallyHidden, g as DisclosureRow, h as SeatButton, i as referenceMentions, j as walkFields, k as projectRoot, l as MultilineField, m as Spinner, n as inject, o as mergeTags, p as TimeLabel, r as ReferenceMarkdown, s as parseTagList, t as apply, u as ModelRouteList, v as Bubble, w as NS, x as Stack, y as SettingsFieldRow } from "./client-BedkS2tw.mjs";
|
|
2
|
+
import { a as parseReference, i as isLocalReference, n as formatReference, o as parseReferenceToken, r as formatReferenceMention, t as findReferences } from "./reference-DTa9OfbR.mjs";
|
|
3
3
|
export * from "@deepseek-ai/dsh-client-ui-primitives";
|
|
4
4
|
export { Bubble, Button, DisclosureRow, IconButton, ModelRouteList, MultilineField, ReferenceMarkdown, Row, NS as SCHEMA_FORM_NS, SchemaFormController, SchemaFormHints, SearchSelect, SeatButton, SettingsFieldRow, Spinner, Stack, TagInput, Text, TimeLabel, VisuallyHidden, apply, failureOf, findReferences, formatReference, formatReferenceMention, inject, isLocalReference, markdownLabels, mergeTags, parseReference, parseReferenceToken, parseTagList, projectRoot, referenceMentions, rowRegistrations, schema_form_exports as schemaForm, walkFields };
|
|
@@ -3,7 +3,7 @@ let mdast_util_gfm = require("mdast-util-gfm");
|
|
|
3
3
|
let micromark_util_character = require("micromark-util-character");
|
|
4
4
|
let micromark_extension_gfm = require("micromark-extension-gfm");
|
|
5
5
|
let micromark_util_symbol = require("micromark-util-symbol");
|
|
6
|
-
|
|
6
|
+
// src/reference.ts
|
|
7
7
|
const DEFAULT_PROTOCOL = "file";
|
|
8
8
|
const EXTERNAL_PROTOCOLS = [
|
|
9
9
|
"http",
|
|
@@ -443,7 +443,6 @@ function decodeUri(value) {
|
|
|
443
443
|
return;
|
|
444
444
|
}
|
|
445
445
|
}
|
|
446
|
-
//#endregion
|
|
447
446
|
Object.defineProperty(exports, "findReferences", {
|
|
448
447
|
enumerable: true,
|
|
449
448
|
get: function() {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import "mdast-util-from-markdown";
|
|
2
2
|
import "micromark-util-types";
|
|
3
|
-
//#region src/reference.d.ts
|
|
4
3
|
declare module "micromark-util-types" {
|
|
5
4
|
interface TokenTypeMap {
|
|
6
5
|
reference: "reference";
|
|
@@ -26,5 +25,4 @@ declare function formatReference(reference: Reference): string;
|
|
|
26
25
|
declare function isLocalReference(reference: Reference): boolean;
|
|
27
26
|
declare function formatReferenceMention(reference: Reference): string;
|
|
28
27
|
declare function findReferences(text: string): readonly ReferenceSpan[];
|
|
29
|
-
//#endregion
|
|
30
28
|
export { formatReferenceMention as a, parseReferenceToken as c, formatReference as i, ReferenceSpan as n, isLocalReference as o, findReferences as r, parseReference as s, Reference as t };
|
|
@@ -3,7 +3,7 @@ import { gfmFromMarkdown } from "mdast-util-gfm";
|
|
|
3
3
|
import { asciiAlpha, asciiAlphanumeric, asciiDigit, markdownLineEnding, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from "micromark-util-character";
|
|
4
4
|
import { gfm } from "micromark-extension-gfm";
|
|
5
5
|
import { codes, types } from "micromark-util-symbol";
|
|
6
|
-
|
|
6
|
+
// src/reference.ts
|
|
7
7
|
const DEFAULT_PROTOCOL = "file";
|
|
8
8
|
const EXTERNAL_PROTOCOLS = [
|
|
9
9
|
"http",
|
|
@@ -443,5 +443,4 @@ function decodeUri(value) {
|
|
|
443
443
|
return;
|
|
444
444
|
}
|
|
445
445
|
}
|
|
446
|
-
//#endregion
|
|
447
446
|
export { parseReference as a, isLocalReference as i, formatReference as n, parseReferenceToken as o, formatReferenceMention as r, findReferences as t };
|
package/dist/reference.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_reference = require("./reference-
|
|
2
|
+
const require_reference = require("./reference-BExb65Ah.cjs");
|
|
3
3
|
exports.findReferences = require_reference.findReferences;
|
|
4
4
|
exports.parseReferenceToken = require_reference.parseReferenceToken;
|
package/dist/reference.d.mts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { c as parseReferenceToken, n as ReferenceSpan, r as findReferences, t as Reference } from "./reference-
|
|
2
|
-
//#endregion
|
|
1
|
+
import { c as parseReferenceToken, n as ReferenceSpan, r as findReferences, t as Reference } from "./reference-Bnz5fGkr.mjs";
|
|
3
2
|
export { type Reference, type ReferenceSpan, findReferences, parseReferenceToken };
|
package/dist/reference.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as findReferences, o as parseReferenceToken } from "./reference-
|
|
1
|
+
export { t as findReferences, o as parseReferenceToken } from "./reference-DTa9OfbR.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morlay/dsh-client-ui-primitives",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14-alpha.0",
|
|
4
4
|
"description": "client UI kit for this workspace: re-exports the official ui-primitives (Button / Menu / Input / Tag / Modal / Switch / SettingsForm …) plus our own layout primitives (Stack / Row / Text / Panel) and controls (TagInput / SearchSelect / ModelRouteList / Spinner …), all styled with the same CSS Modules + `--dsw-*` tokens as upstream; also the shared reference parser/renderer (findReferences / parseReferenceToken) and the schema-generated row config page. Ships as an inlined client library (`dsh.client.inline`), not as an assembly row.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"client",
|
|
@@ -46,28 +46,28 @@
|
|
|
46
46
|
"micromark-util-types": "^2.0.2"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@deepseek-ai/dsh-util-values": "^0.2.
|
|
50
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
51
|
-
"@morlay/session-rdb": "0.1.
|
|
49
|
+
"@deepseek-ai/dsh-util-values": "^0.2.2-alpha.2",
|
|
50
|
+
"@deepseek-ai/schemastery": "^3.18.6-alpha.1",
|
|
51
|
+
"@morlay/session-rdb": "0.1.10-alpha.0",
|
|
52
52
|
"@testing-library/react": "^16.3.0",
|
|
53
53
|
"@types/mdast": "^4.0.4",
|
|
54
54
|
"@types/react": "~18.3.1",
|
|
55
55
|
"react-dom": "^18.2.0"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
59
|
-
"@deepseek-ai/dsh-api-remotes": "^0.2.
|
|
60
|
-
"@deepseek-ai/dsh-client-locale": "^0.2.
|
|
61
|
-
"@deepseek-ai/dsh-client-store": "^0.2.
|
|
62
|
-
"@deepseek-ai/dsh-client-ui-plugin-manager": "^0.2.
|
|
63
|
-
"@deepseek-ai/dsh-client-ui-primitives": "^0.2.
|
|
64
|
-
"@deepseek-ai/dsh-client-ui-renderer": "^0.2.
|
|
65
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.2.
|
|
66
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.2.
|
|
58
|
+
"@deepseek-ai/cordis": "^4.0.6-alpha.1",
|
|
59
|
+
"@deepseek-ai/dsh-api-remotes": "^0.2.2-alpha.2",
|
|
60
|
+
"@deepseek-ai/dsh-client-locale": "^0.2.2-alpha.2",
|
|
61
|
+
"@deepseek-ai/dsh-client-store": "^0.2.2-alpha.2",
|
|
62
|
+
"@deepseek-ai/dsh-client-ui-plugin-manager": "^0.2.2-alpha.2",
|
|
63
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.2.2-alpha.2",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.2.2-alpha.2",
|
|
65
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.2.2-alpha.2",
|
|
66
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.2.2-alpha.2",
|
|
67
67
|
"react": "^18.2.0"
|
|
68
68
|
},
|
|
69
69
|
"engines": {
|
|
70
|
-
"dsh": ">= 0.2.
|
|
70
|
+
"dsh": ">= 0.2.2-alpha.2 < 0.2.3"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"build": "pnpm exec tsdown"
|
|
@@ -64,91 +64,95 @@ export interface SchemaFormHintsFace {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// 提示面的完整服务(业务用注册侧,表单一侧用读侧)。
|
|
67
|
+
//
|
|
68
|
+
// 状态用 TS `private`(运行时是普通属性)而不是 JS `#` 私有字段:本包是内联库,同一服务实例会被**另一份
|
|
69
|
+
// 副本**的代码读(多份副本各带一份类定义,`#` 字段跨类定义不可见,会抛
|
|
70
|
+
// `Cannot read private member #texts from an object whose class did not declare it`)。
|
|
67
71
|
export class SchemaFormHints extends Service implements SchemaFormHintsFace {
|
|
68
|
-
readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly
|
|
71
|
-
readonly
|
|
72
|
-
readonly
|
|
72
|
+
private readonly readers = new Map<string, SuggestedKeysReader>();
|
|
73
|
+
private readonly texts = new Map<string, FieldTextReader>();
|
|
74
|
+
private readonly selects = new Map<string, SelectSpec>();
|
|
75
|
+
private readonly sources = new Map<string, SelectSpec>();
|
|
76
|
+
private readonly listeners = new Set<() => void>();
|
|
73
77
|
|
|
74
78
|
constructor(ctx: Context) {
|
|
75
79
|
super(ctx, "schemaFormHints");
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
keysFor(ns: string, path: readonly string[]): readonly string[] {
|
|
79
|
-
return lookup(this
|
|
83
|
+
return lookup(this.readers, ns, path)?.() ?? [];
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
textFor(ns: string, path: readonly string[]): FieldText {
|
|
83
|
-
return lookup(this
|
|
87
|
+
return lookup(this.texts, ns, path)?.() ?? {};
|
|
84
88
|
}
|
|
85
89
|
|
|
86
90
|
select(ns: string, path: readonly string[], spec: SelectSpec): () => void {
|
|
87
91
|
const key = locationKey(ns, path);
|
|
88
|
-
this
|
|
89
|
-
this
|
|
92
|
+
this.selects.set(key, spec);
|
|
93
|
+
this.publish();
|
|
90
94
|
return () => {
|
|
91
|
-
if (this
|
|
92
|
-
this
|
|
93
|
-
this
|
|
95
|
+
if (this.selects.get(key) !== spec) return;
|
|
96
|
+
this.selects.delete(key);
|
|
97
|
+
this.publish();
|
|
94
98
|
};
|
|
95
99
|
}
|
|
96
100
|
|
|
97
101
|
selectFor(ns: string, path: readonly string[]): SelectSpec | undefined {
|
|
98
|
-
return lookup(this
|
|
102
|
+
return lookup(this.selects, ns, path);
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
source(name: string, spec: SelectSpec): () => void {
|
|
102
|
-
this
|
|
103
|
-
this
|
|
106
|
+
this.sources.set(name, spec);
|
|
107
|
+
this.publish();
|
|
104
108
|
return () => {
|
|
105
|
-
if (this
|
|
106
|
-
this
|
|
107
|
-
this
|
|
109
|
+
if (this.sources.get(name) !== spec) return;
|
|
110
|
+
this.sources.delete(name);
|
|
111
|
+
this.publish();
|
|
108
112
|
};
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
sourceFor(name: string): SelectSpec | undefined {
|
|
112
|
-
return this
|
|
116
|
+
return this.sources.get(name);
|
|
113
117
|
}
|
|
114
118
|
|
|
115
119
|
describe(ns: string, path: readonly string[], read: FieldTextReader): () => void {
|
|
116
120
|
const key = locationKey(ns, path);
|
|
117
|
-
this
|
|
118
|
-
this
|
|
121
|
+
this.texts.set(key, read);
|
|
122
|
+
this.publish();
|
|
119
123
|
return () => {
|
|
120
|
-
if (this
|
|
121
|
-
this
|
|
122
|
-
this
|
|
124
|
+
if (this.texts.get(key) !== read) return;
|
|
125
|
+
this.texts.delete(key);
|
|
126
|
+
this.publish();
|
|
123
127
|
};
|
|
124
128
|
}
|
|
125
129
|
|
|
126
130
|
suggestKeys(ns: string, path: readonly string[], read: SuggestedKeysReader): () => void {
|
|
127
131
|
const key = locationKey(ns, path);
|
|
128
|
-
this
|
|
129
|
-
this
|
|
132
|
+
this.readers.set(key, read);
|
|
133
|
+
this.publish();
|
|
130
134
|
return () => {
|
|
131
|
-
if (this
|
|
132
|
-
this
|
|
133
|
-
this
|
|
135
|
+
if (this.readers.get(key) !== read) return;
|
|
136
|
+
this.readers.delete(key);
|
|
137
|
+
this.publish();
|
|
134
138
|
};
|
|
135
139
|
}
|
|
136
140
|
|
|
137
141
|
// 观察候选键的变化(注册与注销);返回取消订阅。
|
|
138
142
|
subscribe(listener: () => void): () => void {
|
|
139
|
-
this
|
|
143
|
+
this.listeners.add(listener);
|
|
140
144
|
return () => {
|
|
141
|
-
this
|
|
145
|
+
this.listeners.delete(listener);
|
|
142
146
|
};
|
|
143
147
|
}
|
|
144
148
|
|
|
145
149
|
// 重新通知一次:读数背后的数据变了(业务自己知道),页面据此重算候选行。
|
|
146
150
|
refresh(): void {
|
|
147
|
-
this
|
|
151
|
+
this.publish();
|
|
148
152
|
}
|
|
149
153
|
|
|
150
|
-
|
|
151
|
-
for (const listener of this
|
|
154
|
+
private publish(): void {
|
|
155
|
+
for (const listener of this.listeners) listener();
|
|
152
156
|
}
|
|
153
157
|
}
|
|
154
158
|
|
|
@@ -91,9 +91,17 @@ export function apply(ctx: Context): void {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
function install(ctx: Context): void {
|
|
94
|
-
ctx.effect(() => ctx.locale.register(NS, { zh, en }), "ui-schema-form: dictionaries");
|
|
95
94
|
// 提示面(dict 的候选键):同一次 apply 里提供,业务插件注册读数,本包的行投影读它。
|
|
96
|
-
|
|
95
|
+
//
|
|
96
|
+
// **必须最先提供,并且挂在 root 上**:多份副本各自的 `apply` 会同时等依赖到齐、各自回调;`apply` 里的检查
|
|
97
|
+
// 靠 `schemaFormHints` 判断“另一份已经装过”。两个细节缺一不可:
|
|
98
|
+
//
|
|
99
|
+
// - 放在 `locale.register` 之前:否则两次回调都可能先通过检查、再各注册一次 `settings.schema-form` 字典,
|
|
100
|
+
// 第二个抛 `locale namespace "settings.schema-form" already has locale "zh"`;
|
|
101
|
+
// - 用 `ctx.root` 提供:`scope.get` 默认只认 ACTIVE fiber,而 inject 回调期间它自己的 fiber 还没转
|
|
102
|
+
// ACTIVE——挂在当前 scope 上时,兄弟副本的回调看不到这个服务,照样会进来装第二遍。
|
|
103
|
+
const hints = new SchemaFormHints(ctx.root);
|
|
104
|
+
ctx.effect(() => ctx.locale.register(NS, { zh, en }), "ui-schema-form: dictionaries");
|
|
97
105
|
ctx.effect(
|
|
98
106
|
() =>
|
|
99
107
|
ctx.slots.registerFactory(
|