@epam/ai-dial-skill-editor 1.2.0-dev.99 → 1.2.0-rc.1
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/components/SkillEditor/SkillEditor.d.ts.map +1 -1
- package/components/SkillFileUploadDialog/SkillFileUploadDialog.d.ts +9 -2
- package/components/SkillFileUploadDialog/SkillFileUploadDialog.d.ts.map +1 -1
- package/constants/public-class-names.d.ts +2 -0
- package/constants/public-class-names.d.ts.map +1 -1
- package/hooks/useDraftFolder.d.ts +39 -0
- package/hooks/useDraftFolder.d.ts.map +1 -0
- package/index.css +2 -2
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +1251 -410
- package/models/skill-editor-props.d.ts +102 -15
- package/models/skill-editor-props.d.ts.map +1 -1
- package/package.json +5 -5
- package/types/skill-add-source.d.ts +10 -0
- package/types/skill-add-source.d.ts.map +1 -0
- package/types/skill-file-upload-mode.d.ts +8 -0
- package/types/skill-file-upload-mode.d.ts.map +1 -0
- package/types/skill-files-pane.d.ts +8 -0
- package/types/skill-files-pane.d.ts.map +1 -0
- package/utils/file-tree.d.ts +32 -0
- package/utils/file-tree.d.ts.map +1 -1
- package/utils/icon.d.ts +4 -0
- package/utils/icon.d.ts.map +1 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TextRefinementLabels } from '../../../chat-shared/src/index.ts';
|
|
1
2
|
import { EditorThemes } from '@epam/ai-dial-ui-kit';
|
|
2
3
|
import { ReactNode } from 'react';
|
|
3
4
|
import { SkillFileNodeKind } from '../types/skill-file-node-kind';
|
|
@@ -104,23 +105,83 @@ export interface SkillEditorFileActions {
|
|
|
104
105
|
commitBatch: (candidates: SkillFileUploadCandidate[]) => Promise<SkillFileCommitResult>;
|
|
105
106
|
/** Called after the user confirms removing a non-protected node already present in the tree. */
|
|
106
107
|
onRemoveNode: (path: string) => void;
|
|
108
|
+
/**
|
|
109
|
+
* Called with the full relative path of a folder the user named inline via
|
|
110
|
+
* "Create folder". Omit to hide every "Create folder" entry. The host adds
|
|
111
|
+
* the folder node to `files`; the library never mutates `files` itself.
|
|
112
|
+
*/
|
|
113
|
+
onCreateFolder?: (path: string) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Host path rule for a folder being named inline, run after the library's
|
|
116
|
+
* own empty/separator/duplicate checks. Returns an error message to block
|
|
117
|
+
* the name, or `undefined` to accept it.
|
|
118
|
+
*/
|
|
119
|
+
validateFolderPath?: (path: string) => string | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* Expands a picked `.zip` into its files, with paths relative to the
|
|
122
|
+
* archive root. Rejects for an unreadable archive. Omit to hide every
|
|
123
|
+
* "Upload archive from device" entry. The returned entries are staged in
|
|
124
|
+
* the upload dialog and go through `validateBatch`/`commitBatch` like any
|
|
125
|
+
* device file.
|
|
126
|
+
*/
|
|
127
|
+
extractArchive?: (archive: File) => Promise<SkillFileSourceEntry[]>;
|
|
128
|
+
/**
|
|
129
|
+
* Opens the host's file-system picker and resolves with the picked files,
|
|
130
|
+
* or `undefined` when the user cancels. Omit to hide every "Open DIAL file
|
|
131
|
+
* system" entry. The returned entries are staged in the upload dialog.
|
|
132
|
+
*/
|
|
133
|
+
pickFromFileSystem?: () => Promise<SkillFileSourceEntry[] | undefined>;
|
|
134
|
+
}
|
|
135
|
+
/** A file supplied by a host source (an archive entry or a file-system pick), with its path relative to the add target. */
|
|
136
|
+
export interface SkillFileSourceEntry {
|
|
137
|
+
/** Relative path, using `/` separators, below the folder the user is adding to. */
|
|
138
|
+
path: string;
|
|
139
|
+
/** The file's content. */
|
|
140
|
+
file: File;
|
|
107
141
|
}
|
|
108
142
|
/** Text overrides for `SkillEditor`. Every field has an English default. */
|
|
109
|
-
export interface SkillEditorLabels {
|
|
143
|
+
export interface SkillEditorLabels extends TextRefinementLabels {
|
|
110
144
|
/** Files pane heading. Defaults to `'Files'`. */
|
|
111
145
|
filesHeading?: string;
|
|
112
146
|
/** Accessible name of the file tree region. Defaults to `'Skill files'`. */
|
|
113
147
|
filesTreeAriaLabel?: string;
|
|
114
|
-
/**
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
148
|
+
/** Label of the Files pane's Add dropdown trigger. Defaults to `'Add'`. */
|
|
149
|
+
addLabel?: string;
|
|
150
|
+
/** Add-menu entry that creates a folder inline. Defaults to `'Create folder'`. */
|
|
151
|
+
createFolderLabel?: string;
|
|
152
|
+
/** Add-menu entry that opens the upload dialog for device files. Defaults to `'Upload files from device'`. */
|
|
153
|
+
uploadFilesLabel?: string;
|
|
154
|
+
/** Add-menu entry that opens the upload dialog for a `.zip` archive. Defaults to `'Upload archive from device'`. */
|
|
155
|
+
uploadArchiveLabel?: string;
|
|
156
|
+
/** Add-menu entry that opens the host's file-system picker. Defaults to `'Open DIAL file system'`. */
|
|
157
|
+
openFileSystemLabel?: string;
|
|
158
|
+
/** Node context-menu submenu that adds next to the node. Defaults to `'Add sibling'`. */
|
|
159
|
+
addSiblingLabel?: string;
|
|
160
|
+
/** Node context-menu action that removes the node. Defaults to `'Delete'`. */
|
|
161
|
+
deleteLabel?: string;
|
|
162
|
+
/** Name prefilled in a folder being created inline. Defaults to `'New folder'`. */
|
|
163
|
+
newFolderDefaultName?: string;
|
|
164
|
+
/** Inline error for an empty folder name. Defaults to `'Enter a folder name'`. */
|
|
165
|
+
folderNameRequiredError?: string;
|
|
166
|
+
/** Inline error for a folder name containing a separator or equal to `.`/`..`. Defaults to `"Folder name can't contain / or \, or be . or .."`. */
|
|
167
|
+
folderNameInvalidError?: string;
|
|
168
|
+
/** Inline error for a folder name that matches a sibling. Defaults to `'An item with this name already exists here'`. */
|
|
169
|
+
folderNameDuplicateError?: string;
|
|
170
|
+
/** Upload dialog title in archive mode. Defaults to `'Upload archive from device'`. */
|
|
171
|
+
uploadArchiveDialogTitle?: string;
|
|
172
|
+
/** Archive-mode drop-zone copy at the `desktop` breakpoint. Defaults to `'Drag and drop a .zip archive or click here to upload'`. */
|
|
173
|
+
uploadArchiveDropZoneLabel?: string;
|
|
174
|
+
/** Archive-mode drop-zone copy at the `mobile` breakpoint. Defaults to `'Click here to upload a .zip archive'`. */
|
|
175
|
+
uploadArchiveDropZoneMobileLabel?: string;
|
|
176
|
+
/** Error shown when an archive can't be read. Defaults to `"Couldn't read this archive"`. */
|
|
177
|
+
uploadArchiveErrorMessage?: string;
|
|
178
|
+
/** Error shown when an archive contains no files. Defaults to `'This archive has no files'`. */
|
|
179
|
+
uploadArchiveEmptyMessage?: string;
|
|
180
|
+
/** Accessible label of the spinner shown while an archive is expanded. Defaults to `'Reading archive'`. */
|
|
181
|
+
uploadArchiveExtractingAriaLabel?: string;
|
|
121
182
|
/** Collapsed mobile summary label. Defaults to `'Editing file'`. */
|
|
122
183
|
editingFileLabel?: string;
|
|
123
|
-
/**
|
|
184
|
+
/** Setup-section heading for a selected supporting file or folder, given its name. Defaults to the name itself; `SKILL.md` is always headed by its path. */
|
|
124
185
|
selectedFileHeading?: (name: string) => string;
|
|
125
186
|
/** Name field label. Defaults to `'Name'`. */
|
|
126
187
|
nameLabel?: string;
|
|
@@ -191,7 +252,11 @@ export interface SkillEditorConflict {
|
|
|
191
252
|
}
|
|
192
253
|
/** CSS custom-property color overrides for `SkillEditor`. */
|
|
193
254
|
export interface SkillEditorColors {
|
|
194
|
-
/**
|
|
255
|
+
/** Refinement status text color. Defaults to the kit `CaptionText` color (`--text-secondary`). */
|
|
256
|
+
refineActionText?: string;
|
|
257
|
+
/** Refinement error color. Defaults to --text-error. */
|
|
258
|
+
refineErrorText?: string;
|
|
259
|
+
/** Color of the "Files" heading and of the Metadata and Setup section headings. Defaults to `--text-primary`. */
|
|
195
260
|
title?: string;
|
|
196
261
|
/** Color of the hand-rendered Instructions field label. Defaults to `--text-secondary`. */
|
|
197
262
|
helperText?: string;
|
|
@@ -200,12 +265,16 @@ export interface SkillEditorColors {
|
|
|
200
265
|
}
|
|
201
266
|
/** Typography class overrides for `SkillEditor`. */
|
|
202
267
|
export interface SkillEditorTypography {
|
|
203
|
-
/**
|
|
268
|
+
/** Refinement feedback typography. Defaults to the kit `CaptionText` class (`'dial-tiny-text'`). */
|
|
269
|
+
refineFeedbackClassName?: string;
|
|
270
|
+
/** Typography class applied to the "Files" heading. Defaults to `'dial-body-semi-text'`. */
|
|
204
271
|
titleClassName?: string;
|
|
205
272
|
/** Typography class applied to the hand-rendered Instructions field label. Defaults to `'dial-tiny-semi-text'`. */
|
|
206
273
|
helperTextClassName?: string;
|
|
207
|
-
/** Color class applied to the file tree "
|
|
274
|
+
/** Color class applied to the file tree "Delete" context-menu icon. Unset by default, so the icon takes the item's danger color. */
|
|
208
275
|
removeIconClassName?: string;
|
|
276
|
+
/** Color class applied to the file tree Add-menu entry icons. Defaults to `'text-secondary'`. */
|
|
277
|
+
menuIconClassName?: string;
|
|
209
278
|
}
|
|
210
279
|
/** Grouped style overrides for `SkillEditor`. */
|
|
211
280
|
export interface SkillEditorStyles {
|
|
@@ -216,6 +285,10 @@ export interface SkillEditorStyles {
|
|
|
216
285
|
}
|
|
217
286
|
/** Props for `SkillEditor`. */
|
|
218
287
|
export interface SkillEditorProps {
|
|
288
|
+
/** Optional Description rewrite callback; omission hides its action. */
|
|
289
|
+
onRefineDescription?: (value: string, signal: AbortSignal) => Promise<string>;
|
|
290
|
+
/** Optional Instructions rewrite callback; omission hides its action. */
|
|
291
|
+
onRefineInstructions?: (value: string, signal: AbortSignal) => Promise<string>;
|
|
219
292
|
/**
|
|
220
293
|
* Values to seed the fields with. Changing this object's identity re-seeds
|
|
221
294
|
* the form, so hosts that load asynchronously should memoise it and only
|
|
@@ -236,11 +309,11 @@ export interface SkillEditorProps {
|
|
|
236
309
|
isLoading?: boolean;
|
|
237
310
|
/** Whether loading the skill failed; renders an error state with a retry instead of the form. Defaults to `false`. */
|
|
238
311
|
hasLoadError?: boolean;
|
|
239
|
-
/** Whether a save is in flight; disables submission. Defaults to `false`. */
|
|
312
|
+
/** Whether a save is in flight; disables submission and Cancel. Defaults to `false`. */
|
|
240
313
|
isSubmitting?: boolean;
|
|
241
314
|
/** Inline validation messages to render under the fields. */
|
|
242
315
|
errors?: SkillEditorErrors;
|
|
243
|
-
/** General submit-time error (e.g. a naming conflict or a server error) rendered in
|
|
316
|
+
/** General submit-time error (e.g. a naming conflict or a server error) rendered in the `role="alert"` region above the Setup section. */
|
|
244
317
|
submitError?: string;
|
|
245
318
|
/**
|
|
246
319
|
* A save-time conflict (e.g. a stale ETag), distinct from `submitError`.
|
|
@@ -255,7 +328,7 @@ export interface SkillEditorProps {
|
|
|
255
328
|
* included in submitted values unchanged. The host sets this in edit mode,
|
|
256
329
|
* since DIAL Core has no rename/move operation for a skill; the library
|
|
257
330
|
* itself has no notion of "edit mode" and infers no policy from this flag
|
|
258
|
-
* beyond
|
|
331
|
+
* beyond rendering the field read-only.
|
|
259
332
|
*/
|
|
260
333
|
isNameReadOnly?: boolean;
|
|
261
334
|
/**
|
|
@@ -290,12 +363,26 @@ export interface SkillEditorProps {
|
|
|
290
363
|
* `labels.supportingFileNote` when omitted.
|
|
291
364
|
*/
|
|
292
365
|
supportingFileContent?: ReactNode;
|
|
366
|
+
/**
|
|
367
|
+
* Host-rendered content of an Aside section in an extra column at the
|
|
368
|
+
* inline end, below the header, on desktop; stacked after the form on
|
|
369
|
+
* mobile/tablet. The library renders it verbatim with no knowledge of what
|
|
370
|
+
* it contains. Not rendered while the skill is loading or failed to load.
|
|
371
|
+
* Omit for the default layout.
|
|
372
|
+
*/
|
|
373
|
+
asideData?: ReactNode;
|
|
293
374
|
/** Called with the current values when the form is submitted. */
|
|
294
375
|
onSubmit: (values: SkillEditorValues) => void;
|
|
295
376
|
/** Called when the form is dismissed without saving. */
|
|
296
377
|
onCancel: () => void;
|
|
297
378
|
/** Called when the retry button in the load-error state is activated. */
|
|
298
379
|
onRetry?: () => void;
|
|
380
|
+
/**
|
|
381
|
+
* Called when the retry action beside `submitError` is activated. Supply it
|
|
382
|
+
* only for a failure a plain re-send can clear, such as an unavailable
|
|
383
|
+
* service; when omitted, the error renders as text with no action.
|
|
384
|
+
*/
|
|
385
|
+
onRetrySubmit?: () => void;
|
|
299
386
|
/** Text overrides. */
|
|
300
387
|
labels?: SkillEditorLabels;
|
|
301
388
|
/** Style overrides. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-editor-props.d.ts","sourceRoot":"","sources":["../../src/models/skill-editor-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8FAA8F;AAC9F,oBAAY,sBAAsB;IAChC,gEAAgE;IAChE,cAAc,oBAAoB;IAClC,uGAAuG;IACvG,QAAQ,aAAa;CACtB;AAED,yEAAyE;AACzE,oBAAY,yBAAyB;IACnC,iDAAiD;IACjD,KAAK,UAAU;IACf,sEAAsE;IACtE,OAAO,YAAY;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wDAAwD;AACxD,MAAM,WAAW,yBAAyB;IACxC,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,MAAM,EAAE,yBAAyB,CAAC;IAClC,mFAAmF;IACnF,IAAI,EAAE,sBAAsB,CAAC;IAC7B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wGAAwG;AACxG,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,0GAA0G;IAC1G,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,EAAE,CAAC,UAAU,EAAE,wBAAwB,EAAE,KAAK,OAAO,CAAC;QACjE,mEAAmE;QACnE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QACrC,mDAAmD;QACnD,WAAW,EAAE,mBAAmB,EAAE,CAAC;KACpC,CAAC,CAAC;IACH;;;;;OAKG;IACH,WAAW,EAAE,CACX,UAAU,EAAE,wBAAwB,EAAE,KACnC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC,gGAAgG;IAChG,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-editor-props.d.ts","sourceRoot":"","sources":["../../src/models/skill-editor-props.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-skill-editor",
|
|
3
3
|
"description": "Host-agnostic form for authoring a DIAL Skill, with an inline supporting-file tree",
|
|
4
|
-
"version": "1.2.0-
|
|
4
|
+
"version": "1.2.0-rc.1",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"@tabler/icons-react": "^3.44.0",
|
|
21
21
|
"@uiw/react-markdown-preview": "^5.2.1",
|
|
22
22
|
"@uiw/react-md-editor": "^4.1.1",
|
|
23
|
-
"@epam/ai-dial-builder-form": "1.2.0-
|
|
23
|
+
"@epam/ai-dial-builder-form": "1.2.0-rc.1"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@epam/ai-dial-chat-shared": "1.2.0-
|
|
27
|
-
"@epam/ai-dial-ui-kit": "^0.15.0
|
|
28
|
-
"@epam/ai-dial-react-file-manager": "^0.3.0
|
|
26
|
+
"@epam/ai-dial-chat-shared": "1.2.0-rc.1",
|
|
27
|
+
"@epam/ai-dial-ui-kit": "^0.15.0",
|
|
28
|
+
"@epam/ai-dial-react-file-manager": "^0.3.0",
|
|
29
29
|
"react": "^19.2.8"
|
|
30
30
|
},
|
|
31
31
|
"repository": {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Where an add action was started from, which decides the folder it adds to. */
|
|
2
|
+
export declare enum SkillAddSource {
|
|
3
|
+
/** The Files pane header's Add dropdown: the selected folder, else the root. */
|
|
4
|
+
Header = "header",
|
|
5
|
+
/** The add entries listed directly in a folder's context menu: that folder. */
|
|
6
|
+
Child = "child",
|
|
7
|
+
/** A node's "Add sibling" submenu: the node's parent folder. */
|
|
8
|
+
Sibling = "sibling"
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=skill-add-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-add-source.d.ts","sourceRoot":"","sources":["../../src/types/skill-add-source.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,oBAAY,cAAc;IACxB,gFAAgF;IAChF,MAAM,WAAW;IACjB,+EAA+E;IAC/E,KAAK,UAAU;IACf,gEAAgE;IAChE,OAAO,YAAY;CACpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** What the upload dialog stages: device files as-is, or the entries of `.zip` archives. */
|
|
2
|
+
export declare enum SkillFileUploadMode {
|
|
3
|
+
/** Every picked or dropped file is staged as one candidate. */
|
|
4
|
+
Files = "files",
|
|
5
|
+
/** Every picked or dropped `.zip` is expanded through `fileActions.extractArchive` and its entries staged. */
|
|
6
|
+
Archive = "archive"
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=skill-file-upload-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-file-upload-mode.d.ts","sourceRoot":"","sources":["../../src/types/skill-file-upload-mode.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,oBAAY,mBAAmB;IAC7B,+DAA+D;IAC/D,KAAK,UAAU;IACf,8GAA8G;IAC9G,OAAO,YAAY;CACpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Which rendering of the Files pane an action started from; the pane renders once per breakpoint. */
|
|
2
|
+
export declare enum SkillFilesPane {
|
|
3
|
+
/** The collapsible Files accordion shown below the `desktop` breakpoint. */
|
|
4
|
+
Mobile = "mobile",
|
|
5
|
+
/** The always-visible Files sidebar shown at the `desktop` breakpoint. */
|
|
6
|
+
Desktop = "desktop"
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=skill-files-pane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-files-pane.d.ts","sourceRoot":"","sources":["../../src/types/skill-files-pane.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,oBAAY,cAAc;IACxB,4EAA4E;IAC5E,MAAM,WAAW;IACjB,0EAA0E;IAC1E,OAAO,YAAY;CACpB"}
|
package/utils/file-tree.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DialFile } from '@epam/ai-dial-react-file-manager';
|
|
2
2
|
import { SkillFileTreeNode } from '../models/skill-editor-props';
|
|
3
|
+
import { SkillAddSource } from '../types/skill-add-source';
|
|
3
4
|
/**
|
|
4
5
|
* Builds the nested `DialFile[]` tree `DialFoldersTree` expects from the flat
|
|
5
6
|
* `SkillFileTreeNode[]` list, synthesising any implicit intermediate folders
|
|
@@ -7,4 +8,35 @@ import { SkillFileTreeNode } from '../models/skill-editor-props';
|
|
|
7
8
|
* folder node was added for it).
|
|
8
9
|
*/
|
|
9
10
|
export declare const buildDialFileTree: (nodes: SkillFileTreeNode[]) => DialFile[];
|
|
11
|
+
/** Joins a folder path (`''` for the skill root) and a relative path below it. */
|
|
12
|
+
export declare const joinSkillPath: (folderPath: string, relativePath: string) => string;
|
|
13
|
+
/** The folder containing `path`, or `''` for a top-level entry. */
|
|
14
|
+
export declare const parentSkillPath: (path: string) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves the folder an add action targets (`''` is the skill root). The
|
|
17
|
+
* header adds into the selected folder, or the root when a file (or nothing)
|
|
18
|
+
* is selected; a folder's own menu entries add into it; "Add sibling" adds
|
|
19
|
+
* next to the node.
|
|
20
|
+
*/
|
|
21
|
+
export declare const resolveAddTarget: (source: SkillAddSource, node: SkillFileTreeNode | undefined) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Names of the direct children of `folderPath`, including folders that exist
|
|
24
|
+
* only implicitly through a deeper file path.
|
|
25
|
+
*/
|
|
26
|
+
export declare const listChildNames: (nodes: SkillFileTreeNode[], folderPath: string) => Set<string>;
|
|
27
|
+
/** Messages `validateFolderName` returns, resolved from the editor's labels. */
|
|
28
|
+
export interface FolderNameMessages {
|
|
29
|
+
/** The trimmed name is empty. */
|
|
30
|
+
required: string;
|
|
31
|
+
/** The name contains a separator or is `.`/`..`. */
|
|
32
|
+
invalid: string;
|
|
33
|
+
/** A sibling with the same name already exists. */
|
|
34
|
+
duplicate: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Structural checks for a folder being named inline, in order: required,
|
|
38
|
+
* separators and dot segments, then a clash with an existing sibling (or the
|
|
39
|
+
* root `SKILL.md`). Returns the first failing message, or `undefined`.
|
|
40
|
+
*/
|
|
41
|
+
export declare const validateFolderName: (rawName: string, siblingNames: Set<string>, messages: FolderNameMessages) => string | undefined;
|
|
10
42
|
//# sourceMappingURL=file-tree.d.ts.map
|
package/utils/file-tree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-tree.d.ts","sourceRoot":"","sources":["../../src/utils/file-tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"file-tree.d.ts","sourceRoot":"","sources":["../../src/utils/file-tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAa3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,iBAAiB,EAAE,KAAG,QAAQ,EAuDtE,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,EAClB,cAAc,MAAM,KACnB,MAAuE,CAAC;AAE3E,mEAAmE;AACnE,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAClB,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,cAAc,EACtB,MAAM,iBAAiB,GAAG,SAAS,KAClC,MAUF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,iBAAiB,EAAE,EAC1B,YAAY,MAAM,KACjB,GAAG,CAAC,MAAM,CASZ,CAAC;AAEF,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,EACf,cAAc,GAAG,CAAC,MAAM,CAAC,EACzB,UAAU,kBAAkB,KAC3B,MAAM,GAAG,SAQX,CAAC"}
|
package/utils/icon.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TablerIcon } from '@tabler/icons-react';
|
|
2
|
+
/** Returns a decorative Tabler icon at the kit stroke, sized `DIAL_ICON_SIZE.MD` unless `size` is given. */
|
|
3
|
+
export declare const renderIcon: (Icon: TablerIcon, className?: string, size?: number) => import("react").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/utils/icon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,4GAA4G;AAC5G,eAAO,MAAM,UAAU,GACrB,MAAM,UAAU,EAChB,YAAY,MAAM,EAClB,OAAM,MAA0B,gCAQjC,CAAC"}
|