@epam/ai-dial-skill-editor 1.2.0-dev.28 → 1.2.0-dev.282

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.
@@ -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,93 @@ 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
148
  /**
115
- * Label of the control that opens the device file picker to add a
116
- * supporting file. Defaults to `'Upload from device'`.
149
+ * @deprecated Use `uploadFilesLabel`. Still used as its fallback.
117
150
  */
118
151
  addUploadLabel?: string;
119
- /** Accessible label of a node's remove action. Defaults to `'Remove'`. */
152
+ /**
153
+ * @deprecated Use `deleteLabel`. Still used as its fallback.
154
+ */
120
155
  removeLabel?: string;
156
+ /** Label of the Files pane's Add dropdown trigger. Defaults to `'Add'`. */
157
+ addLabel?: string;
158
+ /** Add-menu entry that creates a folder inline. Defaults to `'Create folder'`. */
159
+ createFolderLabel?: string;
160
+ /** Add-menu entry that opens the upload dialog for device files. Defaults to `'Upload files from device'`. */
161
+ uploadFilesLabel?: string;
162
+ /** Add-menu entry that opens the upload dialog for a `.zip` archive. Defaults to `'Upload archive from device'`. */
163
+ uploadArchiveLabel?: string;
164
+ /** Add-menu entry that opens the host's file-system picker. Defaults to `'Open DIAL file system'`. */
165
+ openFileSystemLabel?: string;
166
+ /** Folder context-menu submenu that adds inside the folder. Defaults to `'Add child'`. */
167
+ addChildLabel?: string;
168
+ /** Node context-menu submenu that adds next to the node. Defaults to `'Add sibling'`. */
169
+ addSiblingLabel?: string;
170
+ /** Node context-menu action that removes the node. Defaults to `'Delete'`. */
171
+ deleteLabel?: string;
172
+ /** Name prefilled in a folder being created inline. Defaults to `'New folder'`. */
173
+ newFolderDefaultName?: string;
174
+ /** Inline error for an empty folder name. Defaults to `'Enter a folder name'`. */
175
+ folderNameRequiredError?: string;
176
+ /** Inline error for a folder name containing a separator or equal to `.`/`..`. Defaults to `"Folder name can't contain / or \, or be . or .."`. */
177
+ folderNameInvalidError?: string;
178
+ /** Inline error for a folder name that matches a sibling. Defaults to `'An item with this name already exists here'`. */
179
+ folderNameDuplicateError?: string;
180
+ /** Upload dialog title in archive mode. Defaults to `'Upload archive from device'`. */
181
+ uploadArchiveDialogTitle?: string;
182
+ /** Archive-mode drop-zone copy at the `desktop` breakpoint. Defaults to `'Drag and drop a .zip archive or click here to upload'`. */
183
+ uploadArchiveDropZoneLabel?: string;
184
+ /** Archive-mode drop-zone copy at the `mobile` breakpoint. Defaults to `'Click here to upload a .zip archive'`. */
185
+ uploadArchiveDropZoneMobileLabel?: string;
186
+ /** Error shown when an archive can't be read. Defaults to `"Couldn't read this archive"`. */
187
+ uploadArchiveErrorMessage?: string;
188
+ /** Error shown when an archive contains no files. Defaults to `'This archive has no files'`. */
189
+ uploadArchiveEmptyMessage?: string;
190
+ /** Accessible label of the spinner shown while an archive is expanded. Defaults to `'Reading archive'`. */
191
+ uploadArchiveExtractingAriaLabel?: string;
121
192
  /** Collapsed mobile summary label. Defaults to `'Editing file'`. */
122
193
  editingFileLabel?: string;
123
- /** Main-pane heading, given the selected node's name. Defaults to the name itself. */
194
+ /** 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
195
  selectedFileHeading?: (name: string) => string;
125
196
  /** Name field label. Defaults to `'Name'`. */
126
197
  nameLabel?: string;
@@ -191,7 +262,11 @@ export interface SkillEditorConflict {
191
262
  }
192
263
  /** CSS custom-property color overrides for `SkillEditor`. */
193
264
  export interface SkillEditorColors {
194
- /** Color of the "Files" and selected-file section headings. Defaults to `--text-primary`. */
265
+ /** Refinement status text color. Defaults to --text-primary. */
266
+ refineActionText?: string;
267
+ /** Refinement error color. Defaults to --text-error. */
268
+ refineErrorText?: string;
269
+ /** Color of the "Files" heading and of the Metadata and Setup section headings. Defaults to `--text-primary`. */
195
270
  title?: string;
196
271
  /** Color of the hand-rendered Instructions field label. Defaults to `--text-secondary`. */
197
272
  helperText?: string;
@@ -200,12 +275,16 @@ export interface SkillEditorColors {
200
275
  }
201
276
  /** Typography class overrides for `SkillEditor`. */
202
277
  export interface SkillEditorTypography {
203
- /** Typography class applied to the "Files" and selected-file section headings. Defaults to `'dial-body-semi-text'`. */
278
+ /** Refinement feedback typography. Defaults to 'dial-small-text'. */
279
+ refineFeedbackClassName?: string;
280
+ /** Typography class applied to the "Files" heading. Defaults to `'dial-body-semi-text'`. */
204
281
  titleClassName?: string;
205
282
  /** Typography class applied to the hand-rendered Instructions field label. Defaults to `'dial-tiny-semi-text'`. */
206
283
  helperTextClassName?: string;
207
- /** Color class applied to the file tree "Remove" context-menu icon. Defaults to `'text-secondary'`. */
284
+ /** Color class applied to the file tree "Delete" context-menu icon. Defaults to `'text-secondary'`. */
208
285
  removeIconClassName?: string;
286
+ /** Color class applied to the file tree Add-menu entry icons. Defaults to `'text-secondary'`. */
287
+ menuIconClassName?: string;
209
288
  }
210
289
  /** Grouped style overrides for `SkillEditor`. */
211
290
  export interface SkillEditorStyles {
@@ -216,6 +295,10 @@ export interface SkillEditorStyles {
216
295
  }
217
296
  /** Props for `SkillEditor`. */
218
297
  export interface SkillEditorProps {
298
+ /** Optional Description rewrite callback; omission hides its action. */
299
+ onRefineDescription?: (value: string, signal: AbortSignal) => Promise<string>;
300
+ /** Optional Instructions rewrite callback; omission hides its action. */
301
+ onRefineInstructions?: (value: string, signal: AbortSignal) => Promise<string>;
219
302
  /**
220
303
  * Values to seed the fields with. Changing this object's identity re-seeds
221
304
  * the form, so hosts that load asynchronously should memoise it and only
@@ -236,11 +319,11 @@ export interface SkillEditorProps {
236
319
  isLoading?: boolean;
237
320
  /** Whether loading the skill failed; renders an error state with a retry instead of the form. Defaults to `false`. */
238
321
  hasLoadError?: boolean;
239
- /** Whether a save is in flight; disables submission. Defaults to `false`. */
322
+ /** Whether a save is in flight; disables submission and Cancel. Defaults to `false`. */
240
323
  isSubmitting?: boolean;
241
324
  /** Inline validation messages to render under the fields. */
242
325
  errors?: SkillEditorErrors;
243
- /** General submit-time error (e.g. a naming conflict or a server error) rendered in a `role="alert"` region. */
326
+ /** General submit-time error (e.g. a naming conflict or a server error) rendered in the `role="alert"` region above the Setup section. */
244
327
  submitError?: string;
245
328
  /**
246
329
  * A save-time conflict (e.g. a stale ETag), distinct from `submitError`.
@@ -255,7 +338,7 @@ export interface SkillEditorProps {
255
338
  * included in submitted values unchanged. The host sets this in edit mode,
256
339
  * since DIAL Core has no rename/move operation for a skill; the library
257
340
  * itself has no notion of "edit mode" and infers no policy from this flag
258
- * beyond disabling the field.
341
+ * beyond rendering the field read-only.
259
342
  */
260
343
  isNameReadOnly?: boolean;
261
344
  /**
@@ -264,6 +347,16 @@ export interface SkillEditorProps {
264
347
  * returns to exactly that seeded state (`false`).
265
348
  */
266
349
  onDirtyChange?: (isDirty: boolean) => void;
350
+ /**
351
+ * Called with the complete current values whenever the user edits `name`,
352
+ * `description`, or `instructions` — including a paste into the Instructions
353
+ * editor. Not called for file-tree changes (reported through `fileActions`
354
+ * and `onDirtyChange`) and not called while seeding from `initialValues`,
355
+ * since seeding is not a user edit. The component derives no meaning from
356
+ * the values it reports; a host validating them feeds the result back
357
+ * through `errors`.
358
+ */
359
+ onValuesChange?: (values: SkillEditorValues) => void;
267
360
  /** File-tree mutation operations. */
268
361
  fileActions: SkillEditorFileActions;
269
362
  /** Called when the header back button is activated. */
@@ -286,6 +379,12 @@ export interface SkillEditorProps {
286
379
  onCancel: () => void;
287
380
  /** Called when the retry button in the load-error state is activated. */
288
381
  onRetry?: () => void;
382
+ /**
383
+ * Called when the retry action beside `submitError` is activated. Supply it
384
+ * only for a failure a plain re-send can clear, such as an unavailable
385
+ * service; when omitted, the error renders as text with no action.
386
+ */
387
+ onRetrySubmit?: () => void;
289
388
  /** Text overrides. */
290
389
  labels?: SkillEditorLabels;
291
390
  /** 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;CACtC;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sIAAsI;IACtI,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iGAAiG;IACjG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qHAAqH;IACrH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0HAA0H;IAC1H,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gIAAgI;IAChI,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,kKAAkK;IAClK,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sJAAsJ;IACtJ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kHAAkH;IAClH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+GAA+G;IAC/G,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,+FAA+F;IAC/F,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,4HAA4H;IAC5H,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,uIAAuI;IACvI,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mHAAmH;IACnH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,+JAA+J;IAC/J,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0GAA0G;IAC1G,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC,uHAAuH;IACvH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mHAAmH;IACnH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uGAAuG;IACvG,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,kCAAkC;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,oHAAoH;IACpH,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oGAAoG;IACpG,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClD,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sHAAsH;IACtH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,gHAAgH;IAChH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,kHAAkH;IAClH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,qCAAqC;IACrC,WAAW,EAAE,sBAAsB,CAAC;IACpC,uDAAuD;IACvD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,iEAAiE;IACjE,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,wDAAwD;IACxD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sBAAsB;IACtB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,uBAAuB;IACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,qFAAqF;IACrF,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,0IAA0I;IAC1I,uBAAuB,CAAC,EAAE,YAAY,CAAC;CACxC"}
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-dev.28",
4
+ "version": "1.2.0-dev.282",
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-dev.28"
23
+ "@epam/ai-dial-builder-form": "1.2.0-dev.282"
24
24
  },
25
25
  "peerDependencies": {
26
- "@epam/ai-dial-chat-shared": "1.2.0-dev.28",
27
- "@epam/ai-dial-ui-kit": "^0.14.2",
28
- "@epam/ai-dial-react-file-manager": "^0.2.0",
26
+ "@epam/ai-dial-chat-shared": "1.2.0-dev.282",
27
+ "@epam/ai-dial-ui-kit": "^0.15.0-dev.36",
28
+ "@epam/ai-dial-react-file-manager": "^0.3.0-dev.25",
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
+ /** A folder's "Add child" submenu: 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,mDAAmD;IACnD,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"}
@@ -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,34 @@ 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; "Add child" adds into the node; "Add sibling" adds next to it.
19
+ */
20
+ export declare const resolveAddTarget: (source: SkillAddSource, node: SkillFileTreeNode | undefined) => string;
21
+ /**
22
+ * Names of the direct children of `folderPath`, including folders that exist
23
+ * only implicitly through a deeper file path.
24
+ */
25
+ export declare const listChildNames: (nodes: SkillFileTreeNode[], folderPath: string) => Set<string>;
26
+ /** Messages `validateFolderName` returns, resolved from the editor's labels. */
27
+ export interface FolderNameMessages {
28
+ /** The trimmed name is empty. */
29
+ required: string;
30
+ /** The name contains a separator or is `.`/`..`. */
31
+ invalid: string;
32
+ /** A sibling with the same name already exists. */
33
+ duplicate: string;
34
+ }
35
+ /**
36
+ * Structural checks for a folder being named inline, in order: required,
37
+ * separators and dot segments, then a clash with an existing sibling (or the
38
+ * root `SKILL.md`). Returns the first failing message, or `undefined`.
39
+ */
40
+ export declare const validateFolderName: (rawName: string, siblingNames: Set<string>, messages: FolderNameMessages) => string | undefined;
10
41
  //# sourceMappingURL=file-tree.d.ts.map
@@ -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;AAatE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,iBAAiB,EAAE,KAAG,QAAQ,EAuDtE,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;;;;GAIG;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"}