@epam/ai-dial-skills 1.2.0-dev.99 → 1.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/components/ChatSkill/ChatSkill.d.ts +3 -2
  2. package/components/ChatSkill/ChatSkill.d.ts.map +1 -1
  3. package/components/FavoriteSkillsPanel/FavoriteSkillsPanel.d.ts.map +1 -1
  4. package/components/SkillArchiveUploadDialog/SkillArchiveUploadDialog.d.ts.map +1 -1
  5. package/components/SkillContentFileTree/SkillContentFileTree.d.ts +11 -0
  6. package/components/SkillContentFileTree/SkillContentFileTree.d.ts.map +1 -0
  7. package/components/SkillDetailsSidePanel/SkillDetailsSidePanel.d.ts +2 -1
  8. package/components/SkillDetailsSidePanel/SkillDetailsSidePanel.d.ts.map +1 -1
  9. package/components/SkillInfoTooltipContent/SkillInfoTooltipContent.d.ts +1 -1
  10. package/components/SkillInfoTooltipContent/SkillInfoTooltipContent.d.ts.map +1 -1
  11. package/components/SkillSelectorField/SkillSelectorField.d.ts +5 -0
  12. package/components/SkillSelectorField/SkillSelectorField.d.ts.map +1 -0
  13. package/constants/public-class-names.d.ts +6 -5
  14. package/constants/public-class-names.d.ts.map +1 -1
  15. package/hooks/useSkillMentions/useSkillMentions.d.ts +52 -0
  16. package/hooks/useSkillMentions/useSkillMentions.d.ts.map +1 -0
  17. package/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.d.ts +5 -4
  18. package/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.d.ts.map +1 -1
  19. package/index.css +2 -2
  20. package/index.d.ts +13 -1
  21. package/index.d.ts.map +1 -1
  22. package/index.js +630 -270
  23. package/models/chat-skill-props.d.ts +30 -1
  24. package/models/chat-skill-props.d.ts.map +1 -1
  25. package/models/favorite-skill-item.d.ts +1 -1
  26. package/models/favorite-skill-item.d.ts.map +1 -1
  27. package/models/favorite-skills-panel-props.d.ts +32 -5
  28. package/models/favorite-skills-panel-props.d.ts.map +1 -1
  29. package/models/skill-archive-upload-dialog-props.d.ts +5 -1
  30. package/models/skill-archive-upload-dialog-props.d.ts.map +1 -1
  31. package/models/skill-info-tooltip-content-props.d.ts +19 -0
  32. package/models/skill-info-tooltip-content-props.d.ts.map +1 -1
  33. package/models/skill-mention-anchor.d.ts +12 -0
  34. package/models/skill-mention-anchor.d.ts.map +1 -0
  35. package/models/skill-selector-field-props.d.ts +72 -0
  36. package/models/skill-selector-field-props.d.ts.map +1 -0
  37. package/models/skill-selector-overlay.d.ts +144 -55
  38. package/models/skill-selector-overlay.d.ts.map +1 -1
  39. package/package.json +6 -5
  40. package/test-setup.d.ts +1 -0
  41. package/types/skill-unresolved-reason.d.ts +8 -0
  42. package/types/skill-unresolved-reason.d.ts.map +1 -0
  43. package/utils/catalog-content-dial-files.d.ts +10 -0
  44. package/utils/catalog-content-dial-files.d.ts.map +1 -0
  45. package/utils/skill-mention-matching.d.ts +25 -0
  46. package/utils/skill-mention-matching.d.ts.map +1 -0
  47. package/utils/skill-mention-tracking.d.ts +51 -0
  48. package/utils/skill-mention-tracking.d.ts.map +1 -0
  49. package/utils/skill-url.d.ts +1 -0
  50. package/utils/skill-url.d.ts.map +1 -1
@@ -1,8 +1,9 @@
1
1
  import { FC } from 'react';
2
2
  import { ChatSkillProps } from '../../models/chat-skill-props';
3
3
  /**
4
- * A used skill rendered as a `/name` ghost button with a description tooltip
5
- * and a "View details" action, or the error state while unsupported.
4
+ * A used skill rendered as a `/name` chip — plain, selectable text styled to
5
+ * read as a button, with a description tooltip and a "View details" action,
6
+ * or the error state while unsupported.
6
7
  */
7
8
  export declare const ChatSkill: FC<ChatSkillProps>;
8
9
  //# sourceMappingURL=ChatSkill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSkill.d.ts","sourceRoot":"","sources":["../../../src/components/ChatSkill/ChatSkill.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAmFxC,CAAC"}
1
+ {"version":3,"file":"ChatSkill.d.ts","sourceRoot":"","sources":["../../../src/components/ChatSkill/ChatSkill.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA+IxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FavoriteSkillsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/FavoriteSkillsPanel/FavoriteSkillsPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAKL,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAYzF,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAiQ5D,CAAC"}
1
+ {"version":3,"file":"FavoriteSkillsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/FavoriteSkillsPanel/FavoriteSkillsPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,EAML,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAYzF,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAqT5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkillArchiveUploadDialog.d.ts","sourceRoot":"","sources":["../../../src/components/SkillArchiveUploadDialog/SkillArchiveUploadDialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAIpG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,CA4CtE,CAAC"}
1
+ {"version":3,"file":"SkillArchiveUploadDialog.d.ts","sourceRoot":"","sources":["../../../src/components/SkillArchiveUploadDialog/SkillArchiveUploadDialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAIpG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,CAgDtE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CatalogContentFileTreeRenderProps } from '@epam/ai-dial-catalog';
2
+ import { FC } from 'react';
3
+ /**
4
+ * The skill details panel's Content-tab file tree, drawn with the file
5
+ * manager's `DialFoldersTree` so it matches the skill editor's tree. It is
6
+ * read-only — no context menu, no rename — and fully controlled by the
7
+ * catalog's `DetailsPanel`: expansion changes are reported back one folder
8
+ * at a time through `onToggleFolder`.
9
+ */
10
+ export declare const SkillContentFileTree: FC<CatalogContentFileTreeRenderProps>;
11
+ //# sourceMappingURL=SkillContentFileTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillContentFileTree.d.ts","sourceRoot":"","sources":["../../../src/components/SkillContentFileTree/SkillContentFileTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAM/E,OAAO,EAAE,KAAK,EAAE,EAAW,MAAM,OAAO,CAAC;AAGzC;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,iCAAiC,CA2CtE,CAAC"}
@@ -4,7 +4,8 @@ import { SkillDetailsSidePanelProps } from '../../models/skill-details-side-pane
4
4
  * Right-anchored side panel showing one skill's details, composed from
5
5
  * `@epam/ai-dial-catalog`'s `DetailsPanel` — the skills-scoped composition
6
6
  * point for hosts that surface skill details outside the Catalog page,
7
- * without its page chrome.
7
+ * without its page chrome. The Content tab's file selector renders the file
8
+ * manager's folders tree, the same tree the skill editor shows.
8
9
  */
9
10
  export declare const SkillDetailsSidePanel: FC<SkillDetailsSidePanelProps>;
10
11
  //# sourceMappingURL=SkillDetailsSidePanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDetailsSidePanel.d.ts","sourceRoot":"","sources":["../../../src/components/SkillDetailsSidePanel/SkillDetailsSidePanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAE9F;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAEjC,CAAC"}
1
+ {"version":3,"file":"SkillDetailsSidePanel.d.ts","sourceRoot":"","sources":["../../../src/components/SkillDetailsSidePanel/SkillDetailsSidePanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAG9F;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAShE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { FC } from 'react';
2
2
  import { SkillInfoTooltipContentProps } from '../../models/skill-info-tooltip-content-props';
3
- /** Inner content of a skill's interactive tooltip: the description above a "View details" link action, or the unsupported-model message alone. */
3
+ /** Inner content of a skill's interactive tooltip: the description above a "View details" link action, the unsupported-model message alone, or an unresolved-skill message alone. */
4
4
  export declare const SkillInfoTooltipContent: FC<SkillInfoTooltipContentProps>;
5
5
  //# sourceMappingURL=SkillInfoTooltipContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SkillInfoTooltipContent.d.ts","sourceRoot":"","sources":["../../../src/components/SkillInfoTooltipContent/SkillInfoTooltipContent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAElG,kJAAkJ;AAClJ,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CA8CpE,CAAC"}
1
+ {"version":3,"file":"SkillInfoTooltipContent.d.ts","sourceRoot":"","sources":["../../../src/components/SkillInfoTooltipContent/SkillInfoTooltipContent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAGlG,qLAAqL;AACrL,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CA4EpE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { SkillSelectorFieldProps } from '../../models/skill-selector-field-props';
3
+ /** Controlled multi-skill Select listing the given skills as checkbox options. */
4
+ export declare const SkillSelectorField: FC<SkillSelectorFieldProps>;
5
+ //# sourceMappingURL=SkillSelectorField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillSelectorField.d.ts","sourceRoot":"","sources":["../../../src/components/SkillSelectorField/SkillSelectorField.tsx"],"names":[],"mappings":"AAYA,OAAO,EAA4C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,yCAAyC,CAAC;AAOjD,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA+H1D,CAAC"}
@@ -1,12 +1,13 @@
1
1
  export declare const SKILLS_CLASS: {
2
+ /** Controlled skill selector root carrying theme overrides. */
3
+ readonly selectorField: "dial-skills-selector-field";
2
4
  /** The favorite-skills panel root, which carries the themed CSS variables. */
3
5
  readonly favoritesPanel: "dial-skills-favorites-panel";
4
6
  /**
5
- * The `/name` chip a `ChatSkill` renders inside the composer, additive to
6
- * the `dial-kit-base-button` that `@epam/ai-dial-ui-kit` draws. The chip's
7
- * height is its label line, so a host changing its padding should keep the
8
- * vertical padding at zero or the chip stops aligning with the input's first
9
- * text line.
7
+ * The inline `/name` span a `ChatSkill` renders in both the composer and
8
+ * conversation history. It is sized to the raw `/name` text so the composer
9
+ * mirror stays aligned with the textarea, so a host changing its padding
10
+ * should keep the net inline width and the vertical padding at zero.
10
11
  */
11
12
  readonly chip: "dial-skills-chip";
12
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"public-class-names.d.ts","sourceRoot":"","sources":["../../src/constants/public-class-names.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY;IACvB,8EAA8E;;IAE9E;;;;;;OAMG;;CAEK,CAAC"}
1
+ {"version":3,"file":"public-class-names.d.ts","sourceRoot":"","sources":["../../src/constants/public-class-names.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,YAAY;IACvB,+DAA+D;;IAE/D,8EAA8E;;IAE9E;;;;;OAKG;;CAEK,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { RequestSkill } from '@epam/ai-dial-chat-shared';
2
+ import { SkillMentionAnchor } from '../../models/skill-mention-anchor';
3
+ /** Return value of {@link useSkillMentions}. */
4
+ export interface UseSkillMentionsResult {
5
+ /** The current plain-text draft, mentions included as literal `/{name}` runs. */
6
+ draft: string;
7
+ /** Ordered, left-to-right tracked mention locations within `draft`. */
8
+ anchors: SkillMentionAnchor[];
9
+ /** Reconciles `anchors` against an external edit to the draft (typing, deleting, pasting, undo/redo). */
10
+ onDraftChange: (nextValue: string) => void;
11
+ /**
12
+ * Splices `/${name}` into the draft at `atCaretIndex` and tracks it as a
13
+ * new mention, appending a trailing space only when `atCaretIndex` isn't
14
+ * already followed by whitespace (typed at the end of the message, or
15
+ * before a non-space character) — text already followed by a space (a
16
+ * mention inserted between two existing words) gets none, so a second
17
+ * space is never introduced. Returns whether a space was appended, so the
18
+ * caller can place the caret right after whichever run was actually
19
+ * inserted.
20
+ */
21
+ insertMention: (url: string, name: string, atCaretIndex: number) => boolean;
22
+ /** Splices `/${name}` back into the draft at `atIndex` and re-tracks it as a mention, with no trailing-space logic — for restoring an exact previous mention, not inserting a new one. */
23
+ restoreMention: (url: string, name: string, atIndex: number) => void;
24
+ /**
25
+ * Looks up the mention whose run ends exactly at `caretPosition`, without
26
+ * mutating `draft`/`anchors`. The caller (`Input.tsx`) uses the returned
27
+ * anchor's range to delete the whole run through the textarea's native
28
+ * editing pipeline (e.g. `setRangeText`), preserving native undo, then
29
+ * reports the result back through `onDraftChange` — whose own
30
+ * overlap-drop reconciliation removes the anchor. Returns `undefined` when
31
+ * the caret isn't at a mention boundary, so the caller falls back to the
32
+ * browser's default single-character deletion.
33
+ */
34
+ onBackspaceAtCaret: (caretPosition: number) => SkillMentionAnchor | undefined;
35
+ /** `anchors` as an ordered `RequestSkill[]`, or `undefined` when there are no mentions — the `custom_content.skills` payload. */
36
+ orderedSkills: RequestSkill[] | undefined;
37
+ /** Clears both the draft and its tracked mentions. */
38
+ reset: () => void;
39
+ /**
40
+ * Initializes the draft and its tracked mentions from a persisted message —
41
+ * runs {@link matchSkillMentions} once against `text`/`skills` and seeds
42
+ * `anchors` from the result. A skill the match could not locate in `text` is
43
+ * not seeded as an anchor.
44
+ */
45
+ seedFromMessage: (text: string, skills: RequestSkill[] | undefined, resolveName: (url: string) => string) => void;
46
+ }
47
+ /**
48
+ * Tracks an ordered set of skill mentions live within a plain-text draft, as
49
+ * character-range anchors, replacing a single `selectedSkillId` selection.
50
+ */
51
+ export declare const useSkillMentions: () => UseSkillMentionsResult;
52
+ //# sourceMappingURL=useSkillMentions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSkillMentions.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSkillMentions/useSkillMentions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAU5E,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,yGAAyG;IACzG,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C;;;;;;;;;OASG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5E,0LAA0L;IAC1L,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE;;;;;;;;;OASG;IACH,kBAAkB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAC9E,iIAAiI;IACjI,aAAa,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAC1C,sDAAsD;IACtD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAClC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,KACjC,IAAI,CAAC;CACX;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAO,sBAsInC,CAAC"}
@@ -2,9 +2,10 @@ import { UseSkillSelectorOverlayOptions, UseSkillSelectorOverlayResult } from '.
2
2
  /**
3
3
  * Owns the Skills Add-menu flow: the favorites overlay, the "Use skill"
4
4
  * browse modal's open state, the skill details side panel's open state, and
5
- * the single selected skill rendered as the input's inline `ChatSkill`
6
- * element. The host injects the listing data, favorites state, labels, the
7
- * deployment-support signal, and the modal/panel components.
5
+ * every currently-mentioned skill tracked as a character-range anchor within
6
+ * the composer's draft text (via `useSkillMentions`). The host injects the
7
+ * listing data, favorites state, labels, the deployment-support signal, and
8
+ * the modal/panel components.
8
9
  */
9
- export declare const useSkillSelectorOverlay: ({ isEnabled, isSkillsSupported, skills, sharedWithMe, publicSkills, favoriteIds, onToggleFavorite, labels, historyChipLabelClassName, renderCatalogContent, detailsPanelComponent: DetailsPanelComponent, }: UseSkillSelectorOverlayOptions) => UseSkillSelectorOverlayResult;
10
+ export declare const useSkillSelectorOverlay: ({ isSkillsSupported, skills, sharedWithMe, publicSkills, favoriteIds, viewerBucket, onToggleFavorite, labels, historyChipLabelClassName, activeMentionLabelClassName, activeMentionDetailsTrigger, historyDetailsTrigger, renderCatalogContent, detailsPanelComponent: DetailsPanelComponent, }: UseSkillSelectorOverlayOptions) => UseSkillSelectorOverlayResult;
10
11
  //# sourceMappingURL=useSkillSelectorOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSkillSelectorOverlay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAG7C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,6MAYrC,8BAA8B,KAAG,6BAoTnC,CAAC"}
1
+ {"version":3,"file":"useSkillSelectorOverlay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAmB7C;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAAI,iSAerC,8BAA8B,KAAG,6BA4hBnC,CAAC"}
package/index.css CHANGED
@@ -1,2 +1,2 @@
1
- ._row_1ovug_1:hover,._row_1ovug_1:focus-visible{background:var(--fs-row-hover-bg,var(--bg-layer-sunken,#eef1f7))}._header_1ovug_5{color:var(--fs-header-text,var(--text-tertiary,#848e9c))}._emptyHint_1ovug_9{color:var(--fs-empty-hint-text,var(--text-icon-tertiary,#848e9c))}._star_1ovug_13{color:var(--fs-star-color,var(--text-warning-icon,#eec840))}._footer_1ovug_17{border-top-color:var(--fs-footer-border,var(--stroke-tertiary,#e0e6f0))}._rowEnter_1ovug_25{animation:.2s ease-out _rowFadeIn_1ovug_1}._rowLeaving_1ovug_29{pointer-events:none;animation:.18s ease-out forwards _rowFadeOut_1ovug_1}@keyframes _rowFadeIn_1ovug_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes _rowFadeOut_1ovug_1{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}._listContent_1ovug_57{transition:max-height .2s}@media (prefers-reduced-motion:reduce){._rowEnter_1ovug_25,._rowLeaving_1ovug_29{animation:none}._listContent_1ovug_57{transition:none}}
2
- /*$vite$:1*/.visible{visibility:visible}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-\[24px\]{height:24px}.h-\[40px\]{height:40px}.h-\[min\(80vh\2c 840px\)\]{height:min(80vh,840px)}.h-\[min\(90vh\2c 860px\)\]{height:min(90vh,860px)}.h-auto{height:auto}.max-h-72{max-height:18rem}.min-h-0{min-height:0}.w-full{width:100%}.min-w-0{min-width:0}.\!max-w-\[min\(95vw\2c 1200px\)\]{max-width:min(95vw,1200px)!important}.max-w-\[550px\]{max-width:550px}.flex-1{flex:1 1 0%}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-transparent{border-color:transparent}.bg-error{background-color:var(--bg-error,#f3d6d8)}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pt-2{padding-top:.5rem}.text-start{text-align:start}.text-error{color:var(--text-error,#ae2f2f)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:1280px){.desktop\:inline{display:inline}.desktop\:hidden{display:none}.desktop\:w-\[280px\]{width:280px}}
1
+ ._row_1v431_1:hover,._row_1v431_1:focus-visible,._row_1v431_1[aria-selected=true]{background:var(--fs-row-hover-bg,var(--bg-layer-sunken,#eef1f7))}._header_1v431_8{color:var(--fs-header-text,var(--text-tertiary,#848e9c))}._emptyHint_1v431_12{color:var(--fs-empty-hint-text,var(--text-icon-tertiary,#848e9c))}._star_1v431_16{color:var(--fs-star-color,var(--text-warning-icon,#eec840))}._footer_1v431_20{border-top-color:var(--fs-footer-border,var(--stroke-tertiary,#e0e6f0))}._rowEnter_1v431_28{animation:.2s ease-out _rowFadeIn_1v431_1}._rowLeaving_1v431_32{pointer-events:none;animation:.18s ease-out forwards _rowFadeOut_1v431_1}@keyframes _rowFadeIn_1v431_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes _rowFadeOut_1v431_1{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}._listContent_1v431_60{transition:max-height .2s}@media (prefers-reduced-motion:reduce){._rowEnter_1v431_28,._rowLeaving_1v431_32{animation:none}._listContent_1v431_60{transition:none}}._background_1ult0_1{background:var(--ssf-bg)}._border_1ult0_5{border-color:var(--ssf-border)}._value_1ult0_9{color:var(--ssf-text)}._clear_1ult0_13{margin-block:-.5rem}._invalid_1ult0_17{color:var(--ssf-error,var(--text-error,#ae2f2f));border-color:var(--ssf-error,var(--text-error,#ae2f2f))}._invalid_1ult0_17 input{color:var(--ssf-error,var(--text-error,#ae2f2f))}
2
+ /*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.-me-1{margin-inline-end:-.25rem}.-ms-1{margin-inline-start:-.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.h-\[24px\]{height:24px}.h-\[min\(80vh\2c 840px\)\]{height:min(80vh,840px)}.h-\[min\(90vh\2c 860px\)\]{height:min(90vh,860px)}.max-h-72{max-height:18rem}.min-h-0{min-height:0}.w-\[min\(var\(--reference-width\)\2c calc\(100vw-2rem\)\)\]{width:min(var(--reference-width),calc(100vw - 2rem))}.w-full{width:100%}.min-w-0{min-width:0}.\!max-w-\[min\(95vw\2c 1200px\)\]{max-width:min(95vw,1200px)!important}.max-w-\[550px\]{max-width:550px}.max-w-\[min\(550px\2c calc\(100vw-10px\)\)\]{max-width:min(550px,calc(100vw - 10px))}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-transparent{border-color:transparent}.bg-error{background-color:var(--bg-error,#f3d6d8)}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pe-1{padding-inline-end:.25rem}.ps-1{padding-inline-start:.25rem}.pt-2{padding-top:.5rem}.text-start{text-align:start}.text-accent{color:var(--text-accent,#1d4ed8)}.text-error{color:var(--text-error,#ae2f2f)}.text-primary{color:var(--text-primary,#161b2d)}.text-secondary{color:var(--text-secondary,#57647a)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:bg-info:hover{background-color:var(--bg-info,#e1eaf9)}.focus-visible\:bg-info:focus-visible{background-color:var(--bg-info,#e1eaf9)}.active\:bg-info:active{background-color:var(--bg-info,#e1eaf9)}@media (min-width:1280px){.desktop\:inline{display:inline}.desktop\:hidden{display:none}.desktop\:w-\[280px\]{width:280px}}
package/index.d.ts CHANGED
@@ -2,17 +2,29 @@ export { ChatSkill } from './components/ChatSkill/ChatSkill';
2
2
  export { FavoriteSkillsPanel } from './components/FavoriteSkillsPanel/FavoriteSkillsPanel';
3
3
  export { SkillArchiveUploadDialog } from './components/SkillArchiveUploadDialog/SkillArchiveUploadDialog';
4
4
  export { SkillCatalogModal } from './components/SkillCatalogModal/SkillCatalogModal';
5
+ export { SkillContentFileTree } from './components/SkillContentFileTree/SkillContentFileTree';
5
6
  export { SkillDetailsSidePanel } from './components/SkillDetailsSidePanel/SkillDetailsSidePanel';
6
7
  export { SkillInfoTooltipContent } from './components/SkillInfoTooltipContent/SkillInfoTooltipContent';
8
+ export { useSkillMentions } from './hooks/useSkillMentions/useSkillMentions';
7
9
  export { useSkillSelectorOverlay } from './hooks/useSkillSelectorOverlay/useSkillSelectorOverlay';
8
10
  export { buildFavoriteSkillItem } from './models/favorite-skill-item';
9
- export type { ChatSkillLabels, ChatSkillProps, } from './models/chat-skill-props';
11
+ export { matchSkillMentions } from './utils/skill-mention-matching';
12
+ export { getSkillFallbackName } from './utils/skill-url';
13
+ export { diffTextChange, findMentionAtCaret, insertAnchor, reconcileAnchors, } from './utils/skill-mention-tracking';
14
+ export type { ChatSkillDetailsTrigger, ChatSkillLabels, ChatSkillProps, } from './models/chat-skill-props';
10
15
  export type { FavoriteSkillItem, SkillListingEntry, } from './models/favorite-skill-item';
11
16
  export type { FavoriteSkillsPanelColors, FavoriteSkillsPanelLabels, FavoriteSkillsPanelProps, } from './models/favorite-skills-panel-props';
12
17
  export type { SkillArchiveUploadDialogLabels, SkillArchiveUploadDialogProps, } from './models/skill-archive-upload-dialog-props';
13
18
  export type { SkillCatalogModalProps } from './models/skill-catalog-modal-props';
14
19
  export type { SkillDetailsSidePanelProps } from './models/skill-details-side-panel-props';
15
20
  export type { SkillInfoTooltipContentProps } from './models/skill-info-tooltip-content-props';
21
+ export type { SkillMentionAnchor } from './models/skill-mention-anchor';
16
22
  export type { SkillDetailsPanelComponentProps, SkillSelectorOverlayLabels, UseSkillSelectorOverlayOptions, UseSkillSelectorOverlayResult, } from './models/skill-selector-overlay';
23
+ export type { UseSkillMentionsResult } from './hooks/useSkillMentions/useSkillMentions';
24
+ export type { ResolvedSkillMention } from './utils/skill-mention-matching';
25
+ export type { TextChange } from './utils/skill-mention-tracking';
17
26
  export { SKILLS_CLASS } from './constants/public-class-names';
27
+ export { SkillUnresolvedReason } from './types/skill-unresolved-reason';
28
+ export { SkillSelectorField } from './components/SkillSelectorField/SkillSelectorField';
29
+ export type { SkillSelectorFieldProps, SkillSelectorFieldLabels, SkillSelectorFieldStyles, SkillSelectorOption, } from './models/skill-selector-field-props';
18
30
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AACvG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EACV,eAAe,EACf,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,YAAY,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,YAAY,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,YAAY,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC"}