@epam/ai-dial-skills 1.2.0-dev.11 → 1.2.0-dev.112
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/ChatSkill/ChatSkill.d.ts.map +1 -1
- package/components/FavoriteSkillsPanel/FavoriteSkillsPanel.d.ts.map +1 -1
- package/components/SkillArchiveUploadDialog/SkillArchiveUploadDialog.d.ts +9 -0
- package/components/SkillArchiveUploadDialog/SkillArchiveUploadDialog.d.ts.map +1 -0
- package/components/SkillSelectorField/SkillSelectorField.d.ts +5 -0
- package/components/SkillSelectorField/SkillSelectorField.d.ts.map +1 -0
- package/constants/public-class-names.d.ts +15 -0
- package/constants/public-class-names.d.ts.map +1 -0
- package/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.d.ts.map +1 -1
- package/index.css +2 -2
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -1
- package/index.js +364 -196
- package/models/favorite-skills-panel-props.d.ts +8 -4
- package/models/favorite-skills-panel-props.d.ts.map +1 -1
- package/models/skill-archive-upload-dialog-props.d.ts +33 -0
- package/models/skill-archive-upload-dialog-props.d.ts.map +1 -0
- package/models/skill-selector-field-props.d.ts +80 -0
- package/models/skill-selector-field-props.d.ts.map +1 -0
- package/models/skill-selector-overlay.d.ts +1 -1
- package/package.json +5 -5
- package/test-setup.d.ts +1 -0
|
@@ -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;
|
|
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 +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;
|
|
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,CA4Q5D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { SkillArchiveUploadDialogProps } from '../../models/skill-archive-upload-dialog-props';
|
|
3
|
+
/**
|
|
4
|
+
* Dialog presenting the drop area and supported formats for a skill-archive upload, so the host
|
|
5
|
+
* can start the flow before the native file picker appears. Presentation only — the host wires
|
|
6
|
+
* selection/rejection/close to its own import controller.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SkillArchiveUploadDialog: FC<SkillArchiveUploadDialogProps>;
|
|
9
|
+
//# sourceMappingURL=SkillArchiveUploadDialog.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { SkillSelectorFieldProps } from '../../models/skill-selector-field-props';
|
|
3
|
+
/** Controlled skill input with favorites, catalog browsing, and explicit removal. */
|
|
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":"AAaA,OAAO,EAAsC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAOvF,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA0O1D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const SKILLS_CLASS: {
|
|
2
|
+
/** Controlled skill selector root carrying theme overrides. */
|
|
3
|
+
readonly selectorField: "dial-skills-selector-field";
|
|
4
|
+
/** The favorite-skills panel root, which carries the themed CSS variables. */
|
|
5
|
+
readonly favoritesPanel: "dial-skills-favorites-panel";
|
|
6
|
+
/**
|
|
7
|
+
* The `/name` chip a `ChatSkill` renders inside the composer, additive to
|
|
8
|
+
* the `dial-kit-base-button` that `@epam/ai-dial-ui-kit` draws. The chip's
|
|
9
|
+
* height is its label line, so a host changing its padding should keep the
|
|
10
|
+
* vertical padding at zero or the chip stops aligning with the input's first
|
|
11
|
+
* text line.
|
|
12
|
+
*/
|
|
13
|
+
readonly chip: "dial-skills-chip";
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=public-class-names.d.ts.map
|
|
@@ -0,0 +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,+DAA+D;;IAE/D,8EAA8E;;IAE9E;;;;;;OAMG;;CAEK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkillSelectorOverlay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSkillSelectorOverlay.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSkillSelectorOverlay/useSkillSelectorOverlay.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAG7C;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,6MAYrC,8BAA8B,KAAG,6BA0TnC,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
|
|
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}}._background_14zdf_1{background:var(--ssf-bg)}._border_14zdf_5{border-color:var(--ssf-border)}._value_14zdf_9{color:var(--ssf-text)}._clear_14zdf_13{margin-block:-.5rem}._invalid_14zdf_17{color:var(--ssf-error,var(--text-error,#9c2222));border-color:var(--ssf-error,var(--text-error,#9c2222))}._invalid_14zdf_17 input{color:var(--ssf-error,var(--text-error,#9c2222))}
|
|
2
|
+
/*$vite$:1*/.visible{visibility:visible}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.size-11{height:2.75rem;width:2.75rem}.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}.min-h-11{min-height:2.75rem}.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-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.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)}.p-2{padding:.5rem}.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)}.transition-transform{transition-duration:.15s;transition-property:transform;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}.desktop\:w-full{width:100%}}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { ChatSkill } from './components/ChatSkill/ChatSkill';
|
|
2
2
|
export { FavoriteSkillsPanel } from './components/FavoriteSkillsPanel/FavoriteSkillsPanel';
|
|
3
|
+
export { SkillArchiveUploadDialog } from './components/SkillArchiveUploadDialog/SkillArchiveUploadDialog';
|
|
3
4
|
export { SkillCatalogModal } from './components/SkillCatalogModal/SkillCatalogModal';
|
|
4
5
|
export { SkillDetailsSidePanel } from './components/SkillDetailsSidePanel/SkillDetailsSidePanel';
|
|
5
6
|
export { SkillInfoTooltipContent } from './components/SkillInfoTooltipContent/SkillInfoTooltipContent';
|
|
@@ -8,8 +9,12 @@ export { buildFavoriteSkillItem } from './models/favorite-skill-item';
|
|
|
8
9
|
export type { ChatSkillLabels, ChatSkillProps, } from './models/chat-skill-props';
|
|
9
10
|
export type { FavoriteSkillItem, SkillListingEntry, } from './models/favorite-skill-item';
|
|
10
11
|
export type { FavoriteSkillsPanelColors, FavoriteSkillsPanelLabels, FavoriteSkillsPanelProps, } from './models/favorite-skills-panel-props';
|
|
12
|
+
export type { SkillArchiveUploadDialogLabels, SkillArchiveUploadDialogProps, } from './models/skill-archive-upload-dialog-props';
|
|
11
13
|
export type { SkillCatalogModalProps } from './models/skill-catalog-modal-props';
|
|
12
14
|
export type { SkillDetailsSidePanelProps } from './models/skill-details-side-panel-props';
|
|
13
15
|
export type { SkillInfoTooltipContentProps } from './models/skill-info-tooltip-content-props';
|
|
14
16
|
export type { SkillDetailsPanelComponentProps, SkillSelectorOverlayLabels, UseSkillSelectorOverlayOptions, UseSkillSelectorOverlayResult, } from './models/skill-selector-overlay';
|
|
17
|
+
export { SKILLS_CLASS } from './constants/public-class-names';
|
|
18
|
+
export { SkillSelectorField } from './components/SkillSelectorField/SkillSelectorField';
|
|
19
|
+
export type { SkillSelectorFieldProps, SkillSelectorFieldLabels, SkillSelectorFieldStyles, } from './models/skill-selector-field-props';
|
|
15
20
|
//# 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,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,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"}
|
|
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;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,53 +1,57 @@
|
|
|
1
|
-
import { DeploymentIcon as e, buildCssVars as t,
|
|
2
|
-
import { BASE_ICON_SIZE as
|
|
3
|
-
import { Suspense as
|
|
4
|
-
import { IconBlocks as
|
|
5
|
-
import { jsx as
|
|
6
|
-
import { DetailsPanel as
|
|
7
|
-
//#region src/
|
|
8
|
-
var
|
|
1
|
+
import { DeploymentIcon as e, buildCssVars as t, isSkillSelectionUnsupported as n, mergeClasses as r } from "@epam/ai-dial-chat-shared";
|
|
2
|
+
import { BASE_ICON_SIZE as i, Button as a, ButtonAppearance as o, ButtonVariant as s, DIAL_ICON_SIZE as c, DIAL_KIT_ICON_STROKE as l, Dropdown as u, FileDropzone as d, GhostButton as f, Highlight as p, Input as m, InteractiveTooltip as h, Popup as g, PopupSize as _, Search as v, ToggleIconButton as y, TooltipPlacement as b } from "@epam/ai-dial-ui-kit";
|
|
3
|
+
import { Suspense as x, useCallback as S, useEffect as C, useId as w, useLayoutEffect as T, useMemo as E, useRef as D, useState as O } from "react";
|
|
4
|
+
import { IconBlocks as k, IconChevronDown as A, IconEye as j, IconStarFilled as M, IconX as N } from "@tabler/icons-react";
|
|
5
|
+
import { Fragment as P, jsx as F, jsxs as I } from "react/jsx-runtime";
|
|
6
|
+
import { DetailsPanel as L } from "@epam/ai-dial-catalog";
|
|
7
|
+
//#region src/constants/public-class-names.ts
|
|
8
|
+
var R = {
|
|
9
|
+
selectorField: "dial-skills-selector-field",
|
|
10
|
+
favoritesPanel: "dial-skills-favorites-panel",
|
|
11
|
+
chip: "dial-skills-chip"
|
|
12
|
+
}, z = ({ description: e, unsupportedMessage: t, viewDetailsLabel: n = "View details", onViewDetails: r }) => t == null ? /* @__PURE__ */ I("div", {
|
|
9
13
|
className: "flex flex-col gap-3",
|
|
10
|
-
children: [e != null && e !== "" && /* @__PURE__ */
|
|
14
|
+
children: [e != null && e !== "" && /* @__PURE__ */ F("p", {
|
|
11
15
|
className: "text-start",
|
|
12
16
|
children: e
|
|
13
|
-
}), /* @__PURE__ */
|
|
14
|
-
variant:
|
|
15
|
-
appearance:
|
|
17
|
+
}), /* @__PURE__ */ F(a, {
|
|
18
|
+
variant: s.Primary,
|
|
19
|
+
appearance: o.Link,
|
|
16
20
|
className: "h-[24px] self-start",
|
|
17
21
|
label: n,
|
|
18
|
-
iconBefore: /* @__PURE__ */
|
|
19
|
-
size:
|
|
20
|
-
stroke:
|
|
22
|
+
iconBefore: /* @__PURE__ */ F(j, {
|
|
23
|
+
size: c.SM,
|
|
24
|
+
stroke: l,
|
|
21
25
|
"aria-hidden": !0
|
|
22
26
|
}),
|
|
23
27
|
onClick: r
|
|
24
28
|
})]
|
|
25
|
-
}) : /* @__PURE__ */
|
|
29
|
+
}) : /* @__PURE__ */ F("p", {
|
|
26
30
|
className: "text-start",
|
|
27
31
|
children: t
|
|
28
|
-
}),
|
|
29
|
-
let { viewDetailsLabel:
|
|
30
|
-
return /* @__PURE__ */
|
|
32
|
+
}), B = ({ name: e, path: t, description: n, isUnsupported: i = !1, labelClassName: a = "dial-body-paragraph-text", unsupportedLabelClassName: o = "text-error", unsupportedClassName: s = "bg-error", onViewDetails: c, labels: l = {} }) => {
|
|
33
|
+
let { viewDetailsLabel: u = "View details", unsupportedTooltipLabel: d = "Selected model does not support skills. Remove the skill or select different model to proceed." } = l, [p, m] = O(0);
|
|
34
|
+
return /* @__PURE__ */ F(h, {
|
|
31
35
|
asChild: !0,
|
|
32
|
-
placement:
|
|
36
|
+
placement: b.Top,
|
|
33
37
|
contentClassName: "max-w-[550px]",
|
|
34
|
-
content: i ? /* @__PURE__ */
|
|
35
|
-
description:
|
|
36
|
-
viewDetailsLabel:
|
|
38
|
+
content: i ? /* @__PURE__ */ F(z, { unsupportedMessage: d }) : /* @__PURE__ */ F(z, {
|
|
39
|
+
description: n,
|
|
40
|
+
viewDetailsLabel: u,
|
|
37
41
|
onViewDetails: () => {
|
|
38
|
-
|
|
42
|
+
m((e) => e + 1), c(t);
|
|
39
43
|
}
|
|
40
44
|
}),
|
|
41
|
-
children: /* @__PURE__ */
|
|
45
|
+
children: /* @__PURE__ */ F("span", {
|
|
42
46
|
className: "inline-flex items-center",
|
|
43
|
-
children: /* @__PURE__ */
|
|
47
|
+
children: /* @__PURE__ */ F(f, {
|
|
44
48
|
label: `/${e}`,
|
|
45
|
-
textClassName: i ?
|
|
46
|
-
className:
|
|
49
|
+
textClassName: i ? r(a, o) : a,
|
|
50
|
+
className: r("h-auto px-2 py-0", i && s, R.chip)
|
|
47
51
|
})
|
|
48
52
|
})
|
|
49
|
-
},
|
|
50
|
-
},
|
|
53
|
+
}, p);
|
|
54
|
+
}, V = {
|
|
51
55
|
row: "_row_1ovug_1",
|
|
52
56
|
header: "_header_1ovug_5",
|
|
53
57
|
emptyHint: "_emptyHint_1ovug_9",
|
|
@@ -58,270 +62,301 @@ var k = ({ description: e, unsupportedMessage: t, viewDetailsLabel: n = "View de
|
|
|
58
62
|
rowLeaving: "_rowLeaving_1ovug_29",
|
|
59
63
|
rowFadeOut: "_rowFadeOut_1ovug_1",
|
|
60
64
|
listContent: "_listContent_1ovug_57"
|
|
61
|
-
},
|
|
62
|
-
let { myCollectionLabel:
|
|
63
|
-
"--fs-row-hover-bg":
|
|
64
|
-
"--fs-header-text":
|
|
65
|
-
"--fs-empty-hint-text":
|
|
66
|
-
"--fs-star-color":
|
|
67
|
-
"--fs-footer-border":
|
|
68
|
-
}), [
|
|
69
|
-
|
|
70
|
-
let e =
|
|
65
|
+
}, H = "px-3 pb-0.5 pt-2", U = 180, W = 288, G = ({ favorites: n, onSelect: i, onToggleFavorite: a, onBrowse: o, onViewDetails: s, className: l, rowClassName: u, searchQuery: d, labels: m = {}, colors: g, nameClassName: _ = "dial-small-text", headerClassName: v = "dial-tiny-lead-semi-text", emptyHintClassName: b = "dial-small-text" }) => {
|
|
66
|
+
let { myCollectionLabel: x = "My Collection", emptyHintLabel: S = "Star a skill to pin it here", browseLabel: w = "Browse", removeFromFavoritesLabel: E = "Remove from favorites", viewDetailsLabel: k = "View details", noMatchingSkillsLabel: A = "No matching skills" } = m, j = t({
|
|
67
|
+
"--fs-row-hover-bg": g?.rowHoverBackground,
|
|
68
|
+
"--fs-header-text": g?.headerText,
|
|
69
|
+
"--fs-empty-hint-text": g?.emptyHintText,
|
|
70
|
+
"--fs-star-color": g?.starColor,
|
|
71
|
+
"--fs-footer-border": g?.footerBorder
|
|
72
|
+
}), [N, P] = O(/* @__PURE__ */ new Set()), L = D(/* @__PURE__ */ new Map());
|
|
73
|
+
C(() => {
|
|
74
|
+
let e = L.current;
|
|
71
75
|
return () => {
|
|
72
76
|
e.forEach((e) => clearTimeout(e)), e.clear();
|
|
73
77
|
};
|
|
74
78
|
}, []);
|
|
75
|
-
let
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}, [
|
|
79
|
-
let
|
|
79
|
+
let B = d != null, G = d?.toLowerCase() ?? "", K = B ? n.filter((e) => e.name.toLowerCase().includes(G)) : n, q = D(null), [J, Y] = O();
|
|
80
|
+
T(() => {
|
|
81
|
+
q.current && Y(Math.min(q.current.scrollHeight, W));
|
|
82
|
+
}, [n, d]);
|
|
83
|
+
let X = (e, t) => {
|
|
80
84
|
e.target === e.currentTarget && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), i(t));
|
|
81
|
-
},
|
|
82
|
-
|
|
85
|
+
}, Z = (e) => {
|
|
86
|
+
P((t) => new Set(t).add(e));
|
|
83
87
|
let t = setTimeout(() => {
|
|
84
|
-
a(e),
|
|
88
|
+
a?.(e), P((t) => {
|
|
85
89
|
let n = new Set(t);
|
|
86
90
|
return n.delete(e), n;
|
|
87
|
-
}),
|
|
88
|
-
},
|
|
89
|
-
|
|
91
|
+
}), L.current.delete(e);
|
|
92
|
+
}, U);
|
|
93
|
+
L.current.set(e, t);
|
|
90
94
|
};
|
|
91
|
-
return /* @__PURE__ */
|
|
92
|
-
className: "flex w-full flex-col desktop:w-[280px]",
|
|
93
|
-
style:
|
|
95
|
+
return /* @__PURE__ */ I("div", {
|
|
96
|
+
className: r("flex w-full flex-col desktop:w-[280px]", l, R.favoritesPanel),
|
|
97
|
+
style: j,
|
|
94
98
|
children: [
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
-
className:
|
|
97
|
-
children:
|
|
99
|
+
/* @__PURE__ */ F("p", {
|
|
100
|
+
className: r(v, H, V.header),
|
|
101
|
+
children: x
|
|
98
102
|
}),
|
|
99
|
-
/* @__PURE__ */
|
|
100
|
-
className:
|
|
101
|
-
style: { maxHeight:
|
|
102
|
-
children: /* @__PURE__ */
|
|
103
|
-
ref:
|
|
104
|
-
children:
|
|
103
|
+
/* @__PURE__ */ F("div", {
|
|
104
|
+
className: r("max-h-72 min-h-0 flex-1 overflow-y-auto", V.listContent),
|
|
105
|
+
style: { maxHeight: J },
|
|
106
|
+
children: /* @__PURE__ */ F("div", {
|
|
107
|
+
ref: q,
|
|
108
|
+
children: K.length > 0 ? /* @__PURE__ */ F("ul", {
|
|
105
109
|
className: "flex flex-col gap-1 px-1 pb-1",
|
|
106
|
-
children:
|
|
107
|
-
let
|
|
110
|
+
children: K.map((t) => {
|
|
111
|
+
let n = /* @__PURE__ */ I("div", {
|
|
108
112
|
role: "button",
|
|
113
|
+
"aria-label": t.name,
|
|
109
114
|
tabIndex: 0,
|
|
110
|
-
className:
|
|
115
|
+
className: r("flex cursor-pointer items-center gap-2 rounded-lg border border-transparent px-2 py-1.5 transition-colors", V.row, u),
|
|
111
116
|
onClick: () => i(t),
|
|
112
|
-
onKeyDown: (e) =>
|
|
117
|
+
onKeyDown: (e) => X(e, t),
|
|
113
118
|
children: [
|
|
114
|
-
/* @__PURE__ */
|
|
115
|
-
size:
|
|
119
|
+
/* @__PURE__ */ F(e, {
|
|
120
|
+
size: c.MD,
|
|
116
121
|
initialsName: t.name
|
|
117
122
|
}),
|
|
118
|
-
|
|
119
|
-
className:
|
|
123
|
+
d == null ? /* @__PURE__ */ F("span", {
|
|
124
|
+
className: r(_, "min-w-0 flex-1 truncate text-start"),
|
|
120
125
|
children: t.name
|
|
121
|
-
}) : /* @__PURE__ */
|
|
126
|
+
}) : /* @__PURE__ */ F(p, {
|
|
122
127
|
text: t.name,
|
|
123
|
-
query:
|
|
128
|
+
query: d,
|
|
124
129
|
maxLines: 1,
|
|
125
|
-
className:
|
|
130
|
+
className: r(_, "min-w-0 flex-1 text-start")
|
|
126
131
|
}),
|
|
127
|
-
/* @__PURE__ */
|
|
128
|
-
icon: /* @__PURE__ */
|
|
129
|
-
size:
|
|
130
|
-
className:
|
|
132
|
+
a && /* @__PURE__ */ F(y, {
|
|
133
|
+
icon: /* @__PURE__ */ F(M, {
|
|
134
|
+
size: c.SM,
|
|
135
|
+
className: V.star,
|
|
131
136
|
"aria-hidden": !0
|
|
132
137
|
}),
|
|
133
|
-
"aria-label":
|
|
138
|
+
"aria-label": E,
|
|
134
139
|
isSelected: !0,
|
|
135
140
|
onClick: (e) => {
|
|
136
|
-
e.stopPropagation(),
|
|
141
|
+
e.stopPropagation(), Z(t.id);
|
|
137
142
|
}
|
|
138
143
|
})
|
|
139
144
|
]
|
|
140
145
|
});
|
|
141
|
-
return /* @__PURE__ */
|
|
142
|
-
className:
|
|
143
|
-
children: /* @__PURE__ */
|
|
146
|
+
return /* @__PURE__ */ F("li", {
|
|
147
|
+
className: N.has(t.id) ? V.rowLeaving : V.rowEnter,
|
|
148
|
+
children: s ? /* @__PURE__ */ F(h, {
|
|
144
149
|
asChild: !0,
|
|
145
150
|
contentClassName: "max-w-[550px]",
|
|
146
|
-
content: /* @__PURE__ */
|
|
151
|
+
content: /* @__PURE__ */ F(z, {
|
|
147
152
|
description: t.description,
|
|
148
|
-
viewDetailsLabel:
|
|
149
|
-
onViewDetails: () =>
|
|
153
|
+
viewDetailsLabel: k,
|
|
154
|
+
onViewDetails: () => s(t)
|
|
150
155
|
}),
|
|
151
|
-
children:
|
|
152
|
-
})
|
|
156
|
+
children: n
|
|
157
|
+
}) : n
|
|
153
158
|
}, t.id);
|
|
154
159
|
})
|
|
155
|
-
}) :
|
|
160
|
+
}) : B && G !== "" ? /* @__PURE__ */ F("p", {
|
|
156
161
|
role: "status",
|
|
157
162
|
"aria-live": "polite",
|
|
158
|
-
className:
|
|
159
|
-
children:
|
|
160
|
-
}) : /* @__PURE__ */
|
|
161
|
-
className:
|
|
162
|
-
children:
|
|
163
|
+
className: r(b, "px-4 py-4 text-start", V.emptyHint),
|
|
164
|
+
children: A
|
|
165
|
+
}) : /* @__PURE__ */ F("p", {
|
|
166
|
+
className: r(b, "px-4 py-4 text-start", V.emptyHint),
|
|
167
|
+
children: S
|
|
163
168
|
})
|
|
164
169
|
})
|
|
165
170
|
}),
|
|
166
|
-
/* @__PURE__ */
|
|
167
|
-
className:
|
|
168
|
-
children: /* @__PURE__ */
|
|
169
|
-
label:
|
|
171
|
+
/* @__PURE__ */ F("div", {
|
|
172
|
+
className: r("border-t px-2 py-3", V.footer),
|
|
173
|
+
children: /* @__PURE__ */ F(f, {
|
|
174
|
+
label: w,
|
|
170
175
|
className: "w-full justify-center",
|
|
171
176
|
onClick: o
|
|
172
177
|
})
|
|
173
178
|
})
|
|
174
179
|
]
|
|
175
180
|
});
|
|
176
|
-
},
|
|
181
|
+
}, K = ".zip,.md", q = ({ isOpen: e, errorText: t, accept: n = K, labels: r, onClose: i, onFilesSelected: a, onFilesRejected: o }) => {
|
|
182
|
+
let { dialogTitle: s = "Upload skill", dropZoneLabel: c = "Drag and drop it or click here to upload", dropZoneMobileLabel: l = "Click here to upload", formatsLabel: u = "File formats .zip and SKILL.md", fileInputAriaLabel: f = "Upload a skill ZIP archive or a SKILL.md file", closeAriaLabel: p = "Close" } = r ?? {};
|
|
183
|
+
return /* @__PURE__ */ F(g, {
|
|
184
|
+
open: e,
|
|
185
|
+
size: _.Sm,
|
|
186
|
+
header: s,
|
|
187
|
+
closeAriaLabel: p,
|
|
188
|
+
onClose: i,
|
|
189
|
+
children: /* @__PURE__ */ F("div", {
|
|
190
|
+
className: "px-6 py-4",
|
|
191
|
+
children: /* @__PURE__ */ F(d, {
|
|
192
|
+
label: /* @__PURE__ */ I(P, { children: [/* @__PURE__ */ F("span", {
|
|
193
|
+
className: "desktop:hidden",
|
|
194
|
+
children: l
|
|
195
|
+
}), /* @__PURE__ */ F("span", {
|
|
196
|
+
className: "hidden desktop:inline",
|
|
197
|
+
children: c
|
|
198
|
+
})] }),
|
|
199
|
+
description: u,
|
|
200
|
+
ariaLabel: f,
|
|
201
|
+
accept: n,
|
|
202
|
+
errorText: t,
|
|
203
|
+
onChange: a,
|
|
204
|
+
onReject: o
|
|
205
|
+
})
|
|
206
|
+
})
|
|
207
|
+
});
|
|
208
|
+
}, J = ({ isOpen: e, onClose: t, onSelect: n, title: r, renderContent: i }) => /* @__PURE__ */ F(g, {
|
|
177
209
|
open: e,
|
|
178
210
|
header: r,
|
|
179
|
-
size:
|
|
211
|
+
size: _.Lg,
|
|
180
212
|
className: "h-[min(90vh,860px)] !max-w-[min(95vw,1200px)] overflow-hidden",
|
|
181
213
|
onClose: t,
|
|
182
|
-
children: /* @__PURE__ */
|
|
214
|
+
children: /* @__PURE__ */ F("div", {
|
|
183
215
|
className: "h-[min(80vh,840px)] overflow-auto",
|
|
184
|
-
children: /* @__PURE__ */
|
|
216
|
+
children: /* @__PURE__ */ F(x, {
|
|
185
217
|
fallback: null,
|
|
186
218
|
children: e && i(n, t)
|
|
187
219
|
})
|
|
188
220
|
})
|
|
189
|
-
}),
|
|
221
|
+
}), Y = (e) => /* @__PURE__ */ F(L, { ...e }), X = (e) => ({
|
|
190
222
|
id: e.url,
|
|
191
223
|
name: e.name,
|
|
192
224
|
description: e.description
|
|
193
|
-
}),
|
|
225
|
+
}), Z = (e) => {
|
|
194
226
|
let t = e.split("/").filter((e) => e.length > 0);
|
|
195
227
|
return t[t.length - 1] ?? e;
|
|
196
|
-
},
|
|
197
|
-
let { addMenuLabel:
|
|
198
|
-
...
|
|
199
|
-
...
|
|
200
|
-
...
|
|
228
|
+
}, ee = ({ isEnabled: e, isSkillsSupported: t, skills: r, sharedWithMe: a, publicSkills: o, favoriteIds: s, onToggleFavorite: c, labels: u, historyChipLabelClassName: d, renderCatalogContent: f, detailsPanelComponent: p }) => {
|
|
229
|
+
let { addMenuLabel: m = "Skills", backLabel: h = "Back", catalogModalTitleLabel: g = "Use skill", emptyQueryHintLabel: _ = "Type to filter", unsupportedTooltipLabel: v = "Selected model does not support skills. Remove the skill or select different model to proceed.", panelLabels: y } = u ?? {}, b = e && t, [C, w] = O(!1), [T, D] = O(null), [A, j] = O(null), M = E(() => [
|
|
230
|
+
...r,
|
|
231
|
+
...a ?? [],
|
|
232
|
+
...o ?? []
|
|
201
233
|
], [
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
]),
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
234
|
+
r,
|
|
235
|
+
a,
|
|
236
|
+
o
|
|
237
|
+
]), N = E(() => new Map(M.map((e) => [e.url, e])), [M]), P = E(() => M.filter((e) => s.has(e.url)).map((e) => X(e)), [M, s]), I = E(() => A == null ? null : N.get(A) ?? {
|
|
238
|
+
url: A,
|
|
239
|
+
name: A
|
|
240
|
+
}, [N, A]), L = n(A, t), R = S((e) => {
|
|
241
|
+
j(e);
|
|
242
|
+
}, []), z = S(() => {
|
|
243
|
+
j(null);
|
|
244
|
+
}, []), V = A, H = E(() => A == null ? void 0 : [{ url: A }], [A]), U = E(() => I == null ? null : /* @__PURE__ */ F(B, {
|
|
245
|
+
name: I.name,
|
|
246
|
+
path: I.url,
|
|
247
|
+
description: I.description,
|
|
248
|
+
isUnsupported: L,
|
|
249
|
+
onViewDetails: D,
|
|
215
250
|
labels: {
|
|
216
|
-
viewDetailsLabel:
|
|
217
|
-
unsupportedTooltipLabel:
|
|
251
|
+
viewDetailsLabel: y?.viewDetailsLabel,
|
|
252
|
+
unsupportedTooltipLabel: v
|
|
218
253
|
}
|
|
219
254
|
}), [
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
]),
|
|
225
|
-
let t =
|
|
226
|
-
return /* @__PURE__ */
|
|
227
|
-
name: t?.name ??
|
|
255
|
+
I,
|
|
256
|
+
L,
|
|
257
|
+
y,
|
|
258
|
+
v
|
|
259
|
+
]), W = S((e) => e == null || e.length === 0 ? null : e.map((e) => {
|
|
260
|
+
let t = N.get(e.url);
|
|
261
|
+
return /* @__PURE__ */ F(B, {
|
|
262
|
+
name: t?.name ?? Z(e.url),
|
|
228
263
|
path: e.url,
|
|
229
|
-
labelClassName:
|
|
264
|
+
labelClassName: d,
|
|
230
265
|
description: t?.description,
|
|
231
|
-
onViewDetails:
|
|
232
|
-
labels: { viewDetailsLabel:
|
|
266
|
+
onViewDetails: D,
|
|
267
|
+
labels: { viewDetailsLabel: y?.viewDetailsLabel }
|
|
233
268
|
}, e.url);
|
|
234
269
|
}), [
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
]),
|
|
239
|
-
favorites:
|
|
270
|
+
N,
|
|
271
|
+
d,
|
|
272
|
+
y
|
|
273
|
+
]), K = S((e) => /* @__PURE__ */ F(G, {
|
|
274
|
+
favorites: P,
|
|
240
275
|
onSelect: (t) => {
|
|
241
|
-
|
|
276
|
+
R(t.id), e();
|
|
242
277
|
},
|
|
243
|
-
onToggleFavorite:
|
|
278
|
+
onToggleFavorite: c,
|
|
244
279
|
onBrowse: () => {
|
|
245
|
-
e(),
|
|
280
|
+
e(), w(!0);
|
|
246
281
|
},
|
|
247
282
|
onViewDetails: (t) => {
|
|
248
|
-
e(),
|
|
283
|
+
e(), D(t.id);
|
|
249
284
|
},
|
|
250
|
-
labels:
|
|
285
|
+
labels: y
|
|
251
286
|
}), [
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
]),
|
|
287
|
+
P,
|
|
288
|
+
R,
|
|
289
|
+
c,
|
|
290
|
+
y
|
|
291
|
+
]), q = E(() => b ? {
|
|
257
292
|
key: "skills",
|
|
258
|
-
title:
|
|
259
|
-
icon: /* @__PURE__ */
|
|
260
|
-
size:
|
|
293
|
+
title: m,
|
|
294
|
+
icon: /* @__PURE__ */ F(k, {
|
|
295
|
+
size: i,
|
|
261
296
|
"aria-hidden": !0,
|
|
262
|
-
stroke:
|
|
297
|
+
stroke: l
|
|
263
298
|
}),
|
|
264
|
-
renderOverlay:
|
|
265
|
-
backLabel:
|
|
299
|
+
renderOverlay: K,
|
|
300
|
+
backLabel: h
|
|
266
301
|
} : void 0, [
|
|
267
|
-
|
|
268
|
-
p,
|
|
302
|
+
b,
|
|
269
303
|
m,
|
|
270
|
-
|
|
271
|
-
|
|
304
|
+
h,
|
|
305
|
+
K
|
|
306
|
+
]), Y = E(() => b ? {
|
|
272
307
|
triggerPrefix: "/",
|
|
273
|
-
menuLabel:
|
|
274
|
-
emptyQueryHint:
|
|
275
|
-
renderMenu: ({ query: e, close: t }) => /* @__PURE__ */
|
|
276
|
-
favorites:
|
|
308
|
+
menuLabel: m,
|
|
309
|
+
emptyQueryHint: _,
|
|
310
|
+
renderMenu: ({ query: e, close: t }) => /* @__PURE__ */ F(G, {
|
|
311
|
+
favorites: P,
|
|
277
312
|
searchQuery: e,
|
|
278
313
|
onSelect: (e) => {
|
|
279
|
-
t({ consumeQuery: !0 }),
|
|
314
|
+
t({ consumeQuery: !0 }), R(e.id);
|
|
280
315
|
},
|
|
281
|
-
onToggleFavorite:
|
|
316
|
+
onToggleFavorite: c,
|
|
282
317
|
onBrowse: () => {
|
|
283
|
-
t({ consumeQuery: !0 }),
|
|
318
|
+
t({ consumeQuery: !0 }), w(!0);
|
|
284
319
|
},
|
|
285
320
|
onViewDetails: (e) => {
|
|
286
|
-
t({ consumeQuery: !0 }),
|
|
321
|
+
t({ consumeQuery: !0 }), D(e.id);
|
|
287
322
|
},
|
|
288
|
-
labels:
|
|
323
|
+
labels: y
|
|
289
324
|
})
|
|
290
325
|
} : void 0, [
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
326
|
+
b,
|
|
327
|
+
m,
|
|
328
|
+
_,
|
|
329
|
+
P,
|
|
330
|
+
R,
|
|
331
|
+
c,
|
|
332
|
+
y
|
|
298
333
|
]);
|
|
299
334
|
return e ? {
|
|
300
|
-
skillMenuOverlay:
|
|
301
|
-
commandMenu:
|
|
302
|
-
skillCatalogModal: /* @__PURE__ */
|
|
303
|
-
isOpen:
|
|
304
|
-
onClose: () =>
|
|
335
|
+
skillMenuOverlay: q,
|
|
336
|
+
commandMenu: Y,
|
|
337
|
+
skillCatalogModal: /* @__PURE__ */ F(J, {
|
|
338
|
+
isOpen: C,
|
|
339
|
+
onClose: () => w(!1),
|
|
305
340
|
onSelect: (e) => {
|
|
306
|
-
|
|
341
|
+
R(e), w(!1);
|
|
307
342
|
},
|
|
308
|
-
title:
|
|
309
|
-
renderContent:
|
|
343
|
+
title: g,
|
|
344
|
+
renderContent: f
|
|
310
345
|
}),
|
|
311
|
-
skillDetailsPanel: /* @__PURE__ */
|
|
346
|
+
skillDetailsPanel: /* @__PURE__ */ F(x, {
|
|
312
347
|
fallback: null,
|
|
313
|
-
children: /* @__PURE__ */
|
|
314
|
-
skillId:
|
|
315
|
-
onClose: () =>
|
|
348
|
+
children: /* @__PURE__ */ F(p, {
|
|
349
|
+
skillId: T,
|
|
350
|
+
onClose: () => D(null)
|
|
316
351
|
})
|
|
317
352
|
}),
|
|
318
|
-
selectedSkillElement:
|
|
319
|
-
selectedSkillPath:
|
|
320
|
-
selectedSkills:
|
|
321
|
-
isSkillUnsupported:
|
|
322
|
-
selectSkill:
|
|
323
|
-
removeSelectedSkill:
|
|
324
|
-
renderHistorySkills:
|
|
353
|
+
selectedSkillElement: U,
|
|
354
|
+
selectedSkillPath: V,
|
|
355
|
+
selectedSkills: H,
|
|
356
|
+
isSkillUnsupported: L,
|
|
357
|
+
selectSkill: R,
|
|
358
|
+
removeSelectedSkill: z,
|
|
359
|
+
renderHistorySkills: W
|
|
325
360
|
} : {
|
|
326
361
|
skillMenuOverlay: void 0,
|
|
327
362
|
commandMenu: void 0,
|
|
@@ -335,6 +370,139 @@ var k = ({ description: e, unsupportedMessage: t, viewDetailsLabel: n = "View de
|
|
|
335
370
|
removeSelectedSkill: () => void 0,
|
|
336
371
|
renderHistorySkills: () => null
|
|
337
372
|
};
|
|
373
|
+
}, Q = {
|
|
374
|
+
background: "_background_14zdf_1",
|
|
375
|
+
border: "_border_14zdf_5",
|
|
376
|
+
value: "_value_14zdf_9",
|
|
377
|
+
clear: "_clear_14zdf_13",
|
|
378
|
+
invalid: "_invalid_14zdf_17"
|
|
379
|
+
}, te = [], $ = ({ value: e, onChange: i, displayName: a, favorites: o = te, onToggleFavorite: s, onViewDetails: c, renderOverlay: d, isSkillsSupported: p, isDisabled: h = !1, isInvalid: g = !1, labelledById: _, describedById: y, labels: b, renderCatalogContent: x, className: S, styles: T }) => {
|
|
380
|
+
let [E, k] = O(!1), [j, M] = O(!1), [L, z] = O(""), B = D(null), V = w(), H = D(null), U = D(!1), W = n(e, p), K = p && !h, q = E && K, Y = j && K, X = () => {
|
|
381
|
+
H.current && !H.current.disabled ? H.current.focus() : B.current?.querySelector("button:not(:disabled)")?.focus();
|
|
382
|
+
};
|
|
383
|
+
C(() => {
|
|
384
|
+
U.current && !q && !Y && ((document.activeElement === document.body || B.current?.contains(document.activeElement)) && X(), k(!1), M(!1)), U.current = q || Y;
|
|
385
|
+
}, [q, Y]);
|
|
386
|
+
let Z = (e) => {
|
|
387
|
+
e && !K || (z(""), k(e));
|
|
388
|
+
}, ee = (e) => {
|
|
389
|
+
K && i(e), k(!1), M(!1);
|
|
390
|
+
}, $ = {
|
|
391
|
+
...t({
|
|
392
|
+
"--ssf-text": T?.colors?.text,
|
|
393
|
+
"--ssf-bg": T?.colors?.background,
|
|
394
|
+
"--ssf-border": T?.colors?.border,
|
|
395
|
+
"--ssf-error": T?.colors?.error
|
|
396
|
+
}),
|
|
397
|
+
...T?.cssVars
|
|
398
|
+
}, ne = /* @__PURE__ */ I("div", {
|
|
399
|
+
id: V,
|
|
400
|
+
className: "w-full min-w-0",
|
|
401
|
+
children: [/* @__PURE__ */ F("div", {
|
|
402
|
+
className: "p-2",
|
|
403
|
+
children: /* @__PURE__ */ F(v, {
|
|
404
|
+
value: L,
|
|
405
|
+
onChange: (e) => z(e ?? ""),
|
|
406
|
+
placeholder: b.searchPlaceholder ?? "Search skills",
|
|
407
|
+
"aria-label": b.searchPlaceholder ?? "Search skills",
|
|
408
|
+
clearLabel: b.clearSearchLabel ?? "Clear search"
|
|
409
|
+
})
|
|
410
|
+
}), /* @__PURE__ */ F(G, {
|
|
411
|
+
className: "min-w-0 desktop:w-full",
|
|
412
|
+
rowClassName: "min-h-11",
|
|
413
|
+
favorites: o,
|
|
414
|
+
searchQuery: L,
|
|
415
|
+
labels: b.panelLabels,
|
|
416
|
+
onSelect: (e) => ee(e.id),
|
|
417
|
+
onToggleFavorite: s,
|
|
418
|
+
onViewDetails: c ? (e) => {
|
|
419
|
+
k(!1), c(e);
|
|
420
|
+
} : void 0,
|
|
421
|
+
onBrowse: () => {
|
|
422
|
+
k(!1), M(!0);
|
|
423
|
+
}
|
|
424
|
+
})]
|
|
425
|
+
}), re = /* @__PURE__ */ F(m, {
|
|
426
|
+
inputRef: H,
|
|
427
|
+
readOnly: !0,
|
|
428
|
+
role: "combobox",
|
|
429
|
+
"aria-haspopup": "dialog",
|
|
430
|
+
"aria-expanded": q,
|
|
431
|
+
"aria-controls": q ? V : void 0,
|
|
432
|
+
"aria-labelledby": _,
|
|
433
|
+
"aria-describedby": y,
|
|
434
|
+
"aria-invalid": g || W,
|
|
435
|
+
disabled: !K,
|
|
436
|
+
invalid: g || W,
|
|
437
|
+
value: e ? a || e : "",
|
|
438
|
+
placeholder: b.placeholder,
|
|
439
|
+
title: p ? e ? a || e : void 0 : b.unsupportedTooltipLabel,
|
|
440
|
+
containerClassName: "w-full min-w-0",
|
|
441
|
+
wrapperClassName: r("cursor-pointer", "--ssf-bg" in $ && Q.background, "--ssf-border" in $ && Q.border, (g || W) && Q.invalid, T?.triggerClassName),
|
|
442
|
+
className: r("min-w-0 cursor-pointer text-ellipsis", "--ssf-text" in $ && Q.value, T?.typography?.fontClassName ?? "dial-small-text"),
|
|
443
|
+
onKeyDown: (e) => {
|
|
444
|
+
[
|
|
445
|
+
"Enter",
|
|
446
|
+
" ",
|
|
447
|
+
"ArrowDown"
|
|
448
|
+
].includes(e.key) ? (e.preventDefault(), e.stopPropagation(), Z(e.key === "ArrowDown" || !q)) : e.key === "Escape" && Z(!1);
|
|
449
|
+
},
|
|
450
|
+
iconAfter: /* @__PURE__ */ I("span", {
|
|
451
|
+
className: "flex shrink-0 items-center",
|
|
452
|
+
children: [e && /* @__PURE__ */ F(f, {
|
|
453
|
+
type: "button",
|
|
454
|
+
className: r("size-11 shrink-0", Q.clear),
|
|
455
|
+
disabled: h,
|
|
456
|
+
"aria-label": b.removeSkillLabel,
|
|
457
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
458
|
+
onClick: (e) => {
|
|
459
|
+
e.stopPropagation(), i(void 0), k(!1), K ? H.current?.focus() : B.current?.focus();
|
|
460
|
+
},
|
|
461
|
+
iconBefore: /* @__PURE__ */ F(N, {
|
|
462
|
+
"aria-hidden": !0,
|
|
463
|
+
size: 18,
|
|
464
|
+
stroke: l
|
|
465
|
+
})
|
|
466
|
+
}), /* @__PURE__ */ F(A, {
|
|
467
|
+
"aria-hidden": !0,
|
|
468
|
+
size: 20,
|
|
469
|
+
stroke: l,
|
|
470
|
+
className: r("transition-transform", q && "rotate-180")
|
|
471
|
+
})]
|
|
472
|
+
})
|
|
473
|
+
});
|
|
474
|
+
return /* @__PURE__ */ I("div", {
|
|
475
|
+
ref: B,
|
|
476
|
+
role: "group",
|
|
477
|
+
"aria-labelledby": _,
|
|
478
|
+
tabIndex: -1,
|
|
479
|
+
className: r("min-w-0", S, R.selectorField),
|
|
480
|
+
style: $,
|
|
481
|
+
children: [d ? /* @__PURE__ */ I(P, { children: [/* @__PURE__ */ F("div", {
|
|
482
|
+
className: "w-full min-w-0",
|
|
483
|
+
onClick: () => Z(!q),
|
|
484
|
+
children: re
|
|
485
|
+
}), d(ne, q, () => Z(!1))] }) : /* @__PURE__ */ F(u, {
|
|
486
|
+
open: q,
|
|
487
|
+
onOpenChange: Z,
|
|
488
|
+
disabled: !K,
|
|
489
|
+
className: "w-full min-w-0",
|
|
490
|
+
listClassName: "w-[min(var(--reference-width),calc(100vw-2rem))] max-w-full",
|
|
491
|
+
renderOverlay: () => /* @__PURE__ */ F("div", {
|
|
492
|
+
role: "dialog",
|
|
493
|
+
"aria-labelledby": _,
|
|
494
|
+
children: ne
|
|
495
|
+
}),
|
|
496
|
+
initialFocus: 0,
|
|
497
|
+
children: re
|
|
498
|
+
}), Y && /* @__PURE__ */ F(J, {
|
|
499
|
+
isOpen: !0,
|
|
500
|
+
onClose: () => M(!1),
|
|
501
|
+
title: b.modalTitle,
|
|
502
|
+
onSelect: ee,
|
|
503
|
+
renderContent: x
|
|
504
|
+
})]
|
|
505
|
+
});
|
|
338
506
|
};
|
|
339
507
|
//#endregion
|
|
340
|
-
export {
|
|
508
|
+
export { B as ChatSkill, G as FavoriteSkillsPanel, R as SKILLS_CLASS, q as SkillArchiveUploadDialog, J as SkillCatalogModal, Y as SkillDetailsSidePanel, z as SkillInfoTooltipContent, $ as SkillSelectorField, X as buildFavoriteSkillItem, ee as useSkillSelectorOverlay };
|
|
@@ -33,12 +33,16 @@ export interface FavoriteSkillsPanelProps {
|
|
|
33
33
|
favorites: FavoriteSkillItem[];
|
|
34
34
|
/** Called when a row is activated (click, Enter, or Space). */
|
|
35
35
|
onSelect: (item: FavoriteSkillItem) => void;
|
|
36
|
-
/**
|
|
37
|
-
onToggleFavorite
|
|
36
|
+
/** Removes a favorite by id; omitted hides the star action. */
|
|
37
|
+
onToggleFavorite?: (id: string) => void;
|
|
38
38
|
/** Called when the "Browse" button is clicked. */
|
|
39
39
|
onBrowse: () => void;
|
|
40
|
-
/**
|
|
41
|
-
onViewDetails
|
|
40
|
+
/** Opens skill details; omitted hides the details tooltip. */
|
|
41
|
+
onViewDetails?: (item: FavoriteSkillItem) => void;
|
|
42
|
+
/** Additional classes applied to the panel root. */
|
|
43
|
+
className?: string;
|
|
44
|
+
/** Additional classes applied to each favorite row. */
|
|
45
|
+
rowClassName?: string;
|
|
42
46
|
/**
|
|
43
47
|
* When provided, the panel enters search mode: rows are filtered to names
|
|
44
48
|
* containing this string case-insensitively and matched names render with a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorite-skills-panel-props.d.ts","sourceRoot":"","sources":["../../src/models/favorite-skills-panel-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,kFAAkF;AAClF,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6GAA6G;IAC7G,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oGAAoG;IACpG,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACvC,iEAAiE;IACjE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5C
|
|
1
|
+
{"version":3,"file":"favorite-skills-panel-props.d.ts","sourceRoot":"","sources":["../../src/models/favorite-skills-panel-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,kFAAkF;AAClF,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6GAA6G;IAC7G,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oGAAoG;IACpG,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACvC,iEAAiE;IACjE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5C,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,wDAAwD;IACxD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oIAAoI;IACpI,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Labels for {@link SkillArchiveUploadDialogProps}; each has an English default. */
|
|
2
|
+
export interface SkillArchiveUploadDialogLabels {
|
|
3
|
+
/** Dialog header. Defaults to `'Upload skill'`. */
|
|
4
|
+
dialogTitle?: string;
|
|
5
|
+
/** Drop-zone label shown on desktop widths. Defaults to `'Drag and drop it or click here to upload'`. */
|
|
6
|
+
dropZoneLabel?: string;
|
|
7
|
+
/** Drop-zone label shown on mobile widths. Defaults to `'Click here to upload'`. */
|
|
8
|
+
dropZoneMobileLabel?: string;
|
|
9
|
+
/** Sentence describing accepted formats, shown under the drop zone. Defaults to `'File formats .zip and SKILL.md'`. */
|
|
10
|
+
formatsLabel?: string;
|
|
11
|
+
/** Accessible name for the native file input. Defaults to `'Upload a skill ZIP archive or a SKILL.md file'`. */
|
|
12
|
+
fileInputAriaLabel?: string;
|
|
13
|
+
/** Accessible name for the dialog's close button. Defaults to `'Close'`. */
|
|
14
|
+
closeAriaLabel?: string;
|
|
15
|
+
}
|
|
16
|
+
/** Props for {@link SkillArchiveUploadDialog}. */
|
|
17
|
+
export interface SkillArchiveUploadDialogProps {
|
|
18
|
+
/** Whether the dialog is open. */
|
|
19
|
+
isOpen: boolean;
|
|
20
|
+
/** Rejection message rendered under the drop area; omit when nothing was rejected. */
|
|
21
|
+
errorText?: string;
|
|
22
|
+
/** `accept` value forwarded to the drop zone/native file input. Defaults to `'.zip,.md'`. */
|
|
23
|
+
accept?: string;
|
|
24
|
+
/** Labels rendered by the dialog; each falls back to an English default. */
|
|
25
|
+
labels?: SkillArchiveUploadDialogLabels;
|
|
26
|
+
/** Called on Escape, the close button, or an outside click. */
|
|
27
|
+
onClose: () => void;
|
|
28
|
+
/** Called with the picked or dropped files that `accept` allowed through. */
|
|
29
|
+
onFilesSelected: (files: File[]) => void;
|
|
30
|
+
/** Called when a drop carried files that `accept` excluded. */
|
|
31
|
+
onFilesRejected: () => void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=skill-archive-upload-dialog-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-archive-upload-dialog-props.d.ts","sourceRoot":"","sources":["../../src/models/skill-archive-upload-dialog-props.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,WAAW,8BAA8B;IAC7C,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gHAAgH;IAChH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,+DAA+D;IAC/D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,6EAA6E;IAC7E,eAAe,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACzC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { FavoriteSkillItem } from './favorite-skill-item';
|
|
3
|
+
import { FavoriteSkillsPanelLabels } from './favorite-skills-panel-props';
|
|
4
|
+
import { SkillCatalogModalProps } from './skill-catalog-modal-props';
|
|
5
|
+
/** Translated text for a controlled skill field. */
|
|
6
|
+
export interface SkillSelectorFieldLabels {
|
|
7
|
+
/** Empty selection text. */
|
|
8
|
+
placeholder: string;
|
|
9
|
+
/** Browse dialog title. */
|
|
10
|
+
modalTitle: string;
|
|
11
|
+
/** Accessible name of the removal control. */
|
|
12
|
+
removeSkillLabel: string;
|
|
13
|
+
/** Explanation shown when the selected model cannot use skills. */
|
|
14
|
+
unsupportedTooltipLabel: string;
|
|
15
|
+
/** Favorites panel text; omitted entries use the panel's English defaults. */
|
|
16
|
+
panelLabels?: FavoriteSkillsPanelLabels;
|
|
17
|
+
/** Favorites search label and placeholder. Defaults to 'Search skills'. */
|
|
18
|
+
searchPlaceholder?: string;
|
|
19
|
+
/** Accessible search clear label. Defaults to 'Clear search'. */
|
|
20
|
+
clearSearchLabel?: string;
|
|
21
|
+
}
|
|
22
|
+
/** Per-instance theme and typography overrides for the skill field. */
|
|
23
|
+
export interface SkillSelectorFieldStyles {
|
|
24
|
+
/** Field color overrides; omitted values use the host theme. */
|
|
25
|
+
colors?: {
|
|
26
|
+
/** Text color. */
|
|
27
|
+
text?: string;
|
|
28
|
+
/** Field background. */
|
|
29
|
+
background?: string;
|
|
30
|
+
/** Field border. */
|
|
31
|
+
border?: string;
|
|
32
|
+
/** Invalid-state text and border. */
|
|
33
|
+
error?: string;
|
|
34
|
+
};
|
|
35
|
+
/** Label typography overrides. */
|
|
36
|
+
typography?: {
|
|
37
|
+
/** CSS classes applied to the value. Defaults to 'dial-small-text'. */
|
|
38
|
+
fontClassName?: string;
|
|
39
|
+
};
|
|
40
|
+
/** Additional classes applied to the input wrapper. */
|
|
41
|
+
triggerClassName?: string;
|
|
42
|
+
/** CSS custom properties merged after the typed overrides. */
|
|
43
|
+
cssVars?: CSSProperties;
|
|
44
|
+
}
|
|
45
|
+
/** Host-controlled selection; catalog data and rendering belong to the caller. */
|
|
46
|
+
export interface SkillSelectorFieldProps {
|
|
47
|
+
/** Selected reference, independent of catalog loading. */
|
|
48
|
+
value?: string;
|
|
49
|
+
/** Called to replace or remove the selected reference. */
|
|
50
|
+
onChange: (value: string | undefined) => void;
|
|
51
|
+
/** Resolved name; defaults to the full selected reference. */
|
|
52
|
+
displayName?: string;
|
|
53
|
+
/** Host-resolved favorite skills. Defaults to an empty list. */
|
|
54
|
+
favorites?: FavoriteSkillItem[];
|
|
55
|
+
/** Removes a skill from favorites; omitted hides the star action. */
|
|
56
|
+
onToggleFavorite?: (id: string) => void;
|
|
57
|
+
/** Opens host-owned skill details; omitted hides the details tooltip. */
|
|
58
|
+
onViewDetails?: (item: FavoriteSkillItem) => void;
|
|
59
|
+
/** Optional popup presentation, such as a mobile sheet. Defaults to a dropdown. */
|
|
60
|
+
renderOverlay?: (panel: ReactNode, isOpen: boolean, onClose: () => void) => ReactNode;
|
|
61
|
+
/** Explicit skill support for the selected model. */
|
|
62
|
+
isSkillsSupported: boolean;
|
|
63
|
+
/** Disables all controls. Defaults to false. */
|
|
64
|
+
isDisabled?: boolean;
|
|
65
|
+
/** Host validation state. Defaults to false. */
|
|
66
|
+
isInvalid?: boolean;
|
|
67
|
+
/** ID of the host-rendered label. */
|
|
68
|
+
labelledById: string;
|
|
69
|
+
/** ID of host-rendered feedback. */
|
|
70
|
+
describedById?: string;
|
|
71
|
+
/** Translated visible and accessible text. */
|
|
72
|
+
labels: SkillSelectorFieldLabels;
|
|
73
|
+
/** Catalog content that calls back with the selected reference. */
|
|
74
|
+
renderCatalogContent: SkillCatalogModalProps['renderContent'];
|
|
75
|
+
/** Additional classes applied to the root. */
|
|
76
|
+
className?: string;
|
|
77
|
+
/** Theme and typography overrides. */
|
|
78
|
+
styles?: SkillSelectorFieldStyles;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=skill-selector-field-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-selector-field-props.d.ts","sourceRoot":"","sources":["../../src/models/skill-selector-field-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACvC,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,uBAAuB,EAAE,MAAM,CAAC;IAChC,8EAA8E;IAC9E,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,MAAM,CAAC,EAAE;QACP,kBAAkB;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,wBAAwB;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,qCAAqC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kCAAkC;IAClC,UAAU,CAAC,EAAE;QACX,uEAAuE;QACvE,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,mFAAmF;IACnF,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,IAAI,KAChB,SAAS,CAAC;IACf,qDAAqD;IACrD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,MAAM,EAAE,wBAAwB,CAAC;IACjC,mEAAmE;IACnE,oBAAoB,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAC9D,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RequestSkill } from '
|
|
1
|
+
import { RequestSkill } from '@epam/ai-dial-chat-shared';
|
|
2
2
|
import { CommandMenuConfig, MenuOverlayConfig } from '@epam/ai-dial-conversation-input';
|
|
3
3
|
import { ComponentType, ReactNode } from 'react';
|
|
4
4
|
import { SkillListingEntry } from './favorite-skill-item';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-skills",
|
|
3
3
|
"description": "Host-agnostic UI for picking a favorite skill to attach to a chat input",
|
|
4
|
-
"version": "1.2.0-dev.
|
|
4
|
+
"version": "1.2.0-dev.112",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@tabler/icons-react": "^3.44.0",
|
|
21
|
-
"@epam/ai-dial-catalog": "1.2.0-dev.
|
|
22
|
-
"@epam/ai-dial-conversation-input": "1.2.0-dev.
|
|
21
|
+
"@epam/ai-dial-catalog": "1.2.0-dev.112",
|
|
22
|
+
"@epam/ai-dial-conversation-input": "1.2.0-dev.112"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@epam/ai-dial-chat-shared": "1.2.0-dev.
|
|
26
|
-
"@epam/ai-dial-ui-kit": "^0.
|
|
25
|
+
"@epam/ai-dial-chat-shared": "1.2.0-dev.112",
|
|
26
|
+
"@epam/ai-dial-ui-kit": "^0.15.0-dev.15",
|
|
27
27
|
"react": "^19.2.8"
|
|
28
28
|
},
|
|
29
29
|
"repository": {
|
package/test-setup.d.ts
CHANGED