@taskless-app/shared 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +24 -0
- package/dist/branding.d.ts +32 -0
- package/dist/branding.js +28 -0
- package/dist/branding.js.map +1 -0
- package/dist/chatMessageKinds.d.ts +2 -0
- package/dist/chatMessageKinds.js +10 -0
- package/dist/chatMessageKinds.js.map +1 -0
- package/dist/designTokens.d.ts +190 -0
- package/dist/designTokens.js +249 -0
- package/dist/designTokens.js.map +1 -0
- package/dist/domain.d.ts +2 -0
- package/dist/domain.js +8 -0
- package/dist/domain.js.map +1 -0
- package/dist/finishChip.d.ts +18 -0
- package/dist/finishChip.js +95 -0
- package/dist/finishChip.js.map +1 -0
- package/dist/gender.d.ts +6 -0
- package/dist/gender.js +11 -0
- package/dist/gender.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/labelColors.d.ts +3 -0
- package/dist/labelColors.js +33 -0
- package/dist/labelColors.js.map +1 -0
- package/dist/notifications.d.ts +36 -0
- package/dist/notifications.js +2 -0
- package/dist/notifications.js.map +1 -0
- package/dist/releaseSources.d.ts +20 -0
- package/dist/releaseSources.js +44 -0
- package/dist/releaseSources.js.map +1 -0
- package/dist/schemas.d.ts +1929 -0
- package/dist/schemas.js +655 -0
- package/dist/schemas.js.map +1 -0
- package/dist/sortWorkflowStates.d.ts +5 -0
- package/dist/sortWorkflowStates.js +18 -0
- package/dist/sortWorkflowStates.js.map +1 -0
- package/dist/statusIcons.d.ts +2 -0
- package/dist/statusIcons.js +40 -0
- package/dist/statusIcons.js.map +1 -0
- package/dist/translit.d.ts +11 -0
- package/dist/translit.js +41 -0
- package/dist/translit.js.map +1 -0
- package/dist/uiTour.d.ts +48 -0
- package/dist/uiTour.js +175 -0
- package/dist/uiTour.js.map +1 -0
- package/dist/userHandle.d.ts +14 -0
- package/dist/userHandle.js +25 -0
- package/dist/userHandle.js.map +1 -0
- package/dist/userHue.d.ts +1 -0
- package/dist/userHue.js +24 -0
- package/dist/userHue.js.map +1 -0
- package/dist/weight.d.ts +11 -0
- package/dist/weight.js +71 -0
- package/dist/weight.js.map +1 -0
- package/dist/workspaceBrand.d.ts +5 -0
- package/dist/workspaceBrand.js +39 -0
- package/dist/workspaceBrand.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const CATEGORY_ORDER = {
|
|
2
|
+
backlog: 0,
|
|
3
|
+
unstarted: 1,
|
|
4
|
+
started: 2,
|
|
5
|
+
completed: 3,
|
|
6
|
+
cancelled: 4,
|
|
7
|
+
archived: 5,
|
|
8
|
+
};
|
|
9
|
+
export function sortWorkflowStates(states) {
|
|
10
|
+
return [...states].sort((a, b) => {
|
|
11
|
+
const da = CATEGORY_ORDER[a.category];
|
|
12
|
+
const db = CATEGORY_ORDER[b.category];
|
|
13
|
+
if (da !== db)
|
|
14
|
+
return da - db;
|
|
15
|
+
return a.position - b.position;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=sortWorkflowStates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortWorkflowStates.js","sourceRoot":"","sources":["../src/sortWorkflowStates.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAqC;IACvD,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,MAAoB;IAEpB,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const STATUS_ICONS: readonly ["circle", "circle-dashed", "circle-dot", "circle-half", "circle-check", "circle-x", "circle-plus", "clock", "timer", "hourglass", "play", "pause", "package", "inbox", "archive", "arrow-right", "wrench", "eye", "flask-conical", "check", "x", "ban", "bug", "code", "search", "target", "lightbulb", "zap", "rocket", "flag"];
|
|
2
|
+
export type StatusIcon = typeof STATUS_ICONS[number];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Whitelist of icon keys allowed for WorkflowState.icon. Each maps to a
|
|
2
|
+
// lucide-react icon on the web side (see StatusIcon component). Adding a
|
|
3
|
+
// new key here is the only safe way to add a status icon — no SVG upload.
|
|
4
|
+
export const STATUS_ICONS = [
|
|
5
|
+
// Кружочки — нейтральная база
|
|
6
|
+
"circle",
|
|
7
|
+
"circle-dashed",
|
|
8
|
+
"circle-dot",
|
|
9
|
+
"circle-half",
|
|
10
|
+
"circle-check",
|
|
11
|
+
"circle-x",
|
|
12
|
+
"circle-plus",
|
|
13
|
+
// Время / прогресс
|
|
14
|
+
"clock",
|
|
15
|
+
"timer",
|
|
16
|
+
"hourglass",
|
|
17
|
+
"play",
|
|
18
|
+
"pause",
|
|
19
|
+
// Статусы из дефолтного флоу (старые иконки StatusPill)
|
|
20
|
+
"package", // backlog default
|
|
21
|
+
"inbox",
|
|
22
|
+
"archive",
|
|
23
|
+
"arrow-right", // unstarted default
|
|
24
|
+
"wrench", // started default
|
|
25
|
+
"eye", // review
|
|
26
|
+
"flask-conical", // testing
|
|
27
|
+
"check", // completed default
|
|
28
|
+
"x", // cancelled default
|
|
29
|
+
// Доп. сценарии
|
|
30
|
+
"ban",
|
|
31
|
+
"bug",
|
|
32
|
+
"code",
|
|
33
|
+
"search",
|
|
34
|
+
"target",
|
|
35
|
+
"lightbulb",
|
|
36
|
+
"zap",
|
|
37
|
+
"rocket",
|
|
38
|
+
"flag",
|
|
39
|
+
];
|
|
40
|
+
//# sourceMappingURL=statusIcons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusIcons.js","sourceRoot":"","sources":["../src/statusIcons.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,8BAA8B;IAC9B,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,aAAa;IACb,cAAc;IACd,UAAU;IACV,aAAa;IACb,mBAAmB;IACnB,OAAO;IACP,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,wDAAwD;IACxD,SAAS,EAAO,kBAAkB;IAClC,OAAO;IACP,SAAS;IACT,aAAa,EAAG,oBAAoB;IACpC,QAAQ,EAAQ,kBAAkB;IAClC,KAAK,EAAW,SAAS;IACzB,eAAe,EAAC,UAAU;IAC1B,OAAO,EAAS,oBAAoB;IACpC,GAAG,EAAa,oBAAoB;IACpC,gBAAgB;IAChB,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,KAAK;IACL,QAAQ;IACR,MAAM;CACE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Каноническая латиница для матчинга имён. Шаги:
|
|
3
|
+
* 1. lowercase;
|
|
4
|
+
* 2. кириллица → латиница по таблице;
|
|
5
|
+
* 3. унификация неоднозначной латиницы (w→v, j→i, x→h, двойные → одинарные);
|
|
6
|
+
* 4. оставляем только [a-z0-9].
|
|
7
|
+
* Имена с разной графикой/транслитом сходятся к одной строке.
|
|
8
|
+
*/
|
|
9
|
+
export declare function translitKey(input: string): string;
|
|
10
|
+
/** Матч запроса по имени с транслит-нормализацией (подстрока). */
|
|
11
|
+
export declare function translitMatches(name: string, query: string): boolean;
|
package/dist/translit.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// TAS-223: транслит-нормализация для поиска по людям. Приводим и запрос, и имя
|
|
2
|
+
// к одной канонической латинице, чтобы «Иван» / «Ivan» / «Iwan» матчили друг
|
|
3
|
+
// друга. Уменьшительные (Иван→Ваня) НЕ покрываем — это словарь, не транслит.
|
|
4
|
+
//
|
|
5
|
+
// Жил в api/util; вынесен в shared, чтобы один и тот же матчинг использовали
|
|
6
|
+
// и сайдбар (бэк), и клиентские пикеры людей (фронт) — TAS-245.
|
|
7
|
+
const CYR_TO_LAT = {
|
|
8
|
+
а: "a", б: "b", в: "v", г: "g", д: "d", е: "e", ё: "e", ж: "zh", з: "z",
|
|
9
|
+
и: "i", й: "i", к: "k", л: "l", м: "m", н: "n", о: "o", п: "p", р: "r",
|
|
10
|
+
с: "s", т: "t", у: "u", ф: "f", х: "h", ц: "c", ч: "ch", ш: "sh", щ: "sch",
|
|
11
|
+
ъ: "", ы: "y", ь: "", э: "e", ю: "yu", я: "ya",
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Каноническая латиница для матчинга имён. Шаги:
|
|
15
|
+
* 1. lowercase;
|
|
16
|
+
* 2. кириллица → латиница по таблице;
|
|
17
|
+
* 3. унификация неоднозначной латиницы (w→v, j→i, x→h, двойные → одинарные);
|
|
18
|
+
* 4. оставляем только [a-z0-9].
|
|
19
|
+
* Имена с разной графикой/транслитом сходятся к одной строке.
|
|
20
|
+
*/
|
|
21
|
+
export function translitKey(input) {
|
|
22
|
+
let out = "";
|
|
23
|
+
for (const ch of input.toLowerCase()) {
|
|
24
|
+
out += ch in CYR_TO_LAT ? CYR_TO_LAT[ch] : ch;
|
|
25
|
+
}
|
|
26
|
+
out = out
|
|
27
|
+
.replace(/w/g, "v") // Iwan ↔ Ivan
|
|
28
|
+
.replace(/j/g, "i") // Yevgenij ↔ ...i
|
|
29
|
+
.replace(/x/g, "h") // Alexey ↔ Aleksey-ish
|
|
30
|
+
.replace(/[^a-z0-9]+/g, "")
|
|
31
|
+
.replace(/(.)\1+/g, "$1"); // двойные согласные → одинарная (Filipp→filip)
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
/** Матч запроса по имени с транслит-нормализацией (подстрока). */
|
|
35
|
+
export function translitMatches(name, query) {
|
|
36
|
+
const q = translitKey(query);
|
|
37
|
+
if (!q)
|
|
38
|
+
return true;
|
|
39
|
+
return translitKey(name).includes(q);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=translit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translit.js","sourceRoot":"","sources":["../src/translit.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,EAAE;AACF,6EAA6E;AAC7E,gEAAgE;AAEhE,MAAM,UAAU,GAA2B;IACzC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG;IACvE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IACtE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK;IAC1E,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI;CAC/C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACrC,GAAG,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IACD,GAAG,GAAG,GAAG;SACN,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAG,cAAc;SACnC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAG,kBAAkB;SACvC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAG,uBAAuB;SAC5C,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,+CAA+C;IAC5E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/uiTour.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export type TourStep = {
|
|
2
|
+
action: "click";
|
|
3
|
+
selector: string;
|
|
4
|
+
} | {
|
|
5
|
+
action: "highlight";
|
|
6
|
+
selector: string;
|
|
7
|
+
};
|
|
8
|
+
export interface TourEntry {
|
|
9
|
+
/** Уникальный slug — стабильный ID, можно ссылаться из агента или тестов. */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Имя для UI «Открываю … (название фичи)». */
|
|
12
|
+
title: string;
|
|
13
|
+
/** Альтернативные названия для keyword-match. Не показываются юзеру. */
|
|
14
|
+
aliases: string[];
|
|
15
|
+
/** Короткое описание для контекста (агент может включить в ответ). */
|
|
16
|
+
desc: string;
|
|
17
|
+
/** Шаблон route с placeholders {ws}, {projectId}, {projectSlug}, {taskId}.
|
|
18
|
+
* Резолвится на фронте из ctx (current ws + recentEntities). */
|
|
19
|
+
route: string;
|
|
20
|
+
/** Какие placeholders из route обязательны. Если контекст не покрывает —
|
|
21
|
+
* агент уточняет у юзера (proposeClarification про проект/задачу). */
|
|
22
|
+
requires: Array<"projectId" | "projectSlug" | "taskId">;
|
|
23
|
+
/** CSS-селектор основного элемента для highlight'а. Опционально — если
|
|
24
|
+
* достаточно просто открыть страницу. */
|
|
25
|
+
anchor?: string;
|
|
26
|
+
/** Опциональные click/highlight шаги после mount'а. Для раскрытия dropdown'ов
|
|
27
|
+
* и подсветки конкретного пункта. */
|
|
28
|
+
steps?: TourStep[];
|
|
29
|
+
}
|
|
30
|
+
export declare const UI_TOUR_REGISTRY: TourEntry[];
|
|
31
|
+
/** Контекст из текущей сессии юзера для резолвинга route placeholders. */
|
|
32
|
+
export interface TourSearchCtx {
|
|
33
|
+
ws: string;
|
|
34
|
+
projectId?: string | null;
|
|
35
|
+
projectSlug?: string | null;
|
|
36
|
+
taskId?: string | null;
|
|
37
|
+
}
|
|
38
|
+
export interface TourMatch {
|
|
39
|
+
entry: TourEntry;
|
|
40
|
+
/** Резолвленный route с подставленными placeholders, либо null если не
|
|
41
|
+
* хватает контекста (entry.requires не покрыты). */
|
|
42
|
+
resolvedRoute: string | null;
|
|
43
|
+
/** Чего не хватает в ctx — агент использует для proposeClarification. */
|
|
44
|
+
missing: string[];
|
|
45
|
+
}
|
|
46
|
+
/** Keyword-match с весами по полю: title +3, aliases +2, desc +1.
|
|
47
|
+
* Stop-words игнорируем. Возвращает топ-N entries по убыванию score. */
|
|
48
|
+
export declare function findFeature(query: string, ctx: TourSearchCtx, maxResults?: number): TourMatch[];
|
package/dist/uiTour.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// AI Tour MVP (AT-1) — registry «где найти X в taskless» + поиск.
|
|
2
|
+
// Используется и фронтом (TourOrchestrator на /app/* для физического highlight'а),
|
|
3
|
+
// и агентом (findUiFeature MCP-tool, system-prompt).
|
|
4
|
+
//
|
|
5
|
+
// Запись связывает естественный вопрос юзера с конкретной страницей и якорем
|
|
6
|
+
// на ней. Никаких embeddings — простой keyword-match по title/aliases/desc.
|
|
7
|
+
// Если фича перенесли — обновляем 1 строку в registry, остальное работает.
|
|
8
|
+
export const UI_TOUR_REGISTRY = [
|
|
9
|
+
{
|
|
10
|
+
id: "deploy-page",
|
|
11
|
+
title: "Деплой проекта",
|
|
12
|
+
aliases: ["деплой", "релиз", "выкатить", "deploy", "release", "запустить"],
|
|
13
|
+
desc: "Страница деплоя: workflow'ы из репы, кнопка «Запустить», история тэгов",
|
|
14
|
+
route: "/app/{ws}/projects/{projectSlug}/deploy",
|
|
15
|
+
requires: ["projectSlug"],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "project-settings",
|
|
19
|
+
title: "Настройки проекта",
|
|
20
|
+
// PRJ2-9: убрали generic "github" alias — он перехватывал «настройки github»
|
|
21
|
+
// (workspace-level GitHub App, не per-project). Для линковки репо к проекту
|
|
22
|
+
// отдельный entry add-github-repo с более конкретными aliases.
|
|
23
|
+
aliases: ["настройки проекта", "project settings", "настройки", "репа"],
|
|
24
|
+
desc: "Цели, члены, GitHub-репозитории, release-flow проекта",
|
|
25
|
+
route: "/app/{ws}/projects/{projectSlug}/settings",
|
|
26
|
+
requires: ["projectSlug"],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "add-github-repo",
|
|
30
|
+
title: "Добавить GitHub-репозиторий к проекту",
|
|
31
|
+
aliases: ["добавить репу", "привязать репу", "github", "репа", "link repo"],
|
|
32
|
+
desc: "Раздел GitHub-репозитории в Settings проекта",
|
|
33
|
+
route: "/app/{ws}/projects/{projectSlug}/settings",
|
|
34
|
+
requires: ["projectSlug"],
|
|
35
|
+
anchor: "[data-tour='github-repos-section']",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "release-flow",
|
|
39
|
+
title: "Release flow проекта",
|
|
40
|
+
aliases: ["release flow", "релиз флоу", "stage", "prod", "staging"],
|
|
41
|
+
desc: "Выбор stage_then_prod или prod_only; наследование от parent'а",
|
|
42
|
+
route: "/app/{ws}/projects/{projectSlug}/settings",
|
|
43
|
+
requires: ["projectSlug"],
|
|
44
|
+
anchor: "[data-tour='release-flow-section']",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "projects-page",
|
|
48
|
+
title: "Список проектов",
|
|
49
|
+
aliases: ["проекты", "projects", "список проектов"],
|
|
50
|
+
desc: "Все проекты ws с задачами/участниками/деплоем",
|
|
51
|
+
route: "/app/{ws}/projects",
|
|
52
|
+
requires: [],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "capacity-page",
|
|
56
|
+
title: "Загрузка команды (Capacity)",
|
|
57
|
+
aliases: ["capacity", "загрузка", "загрузка команды", "кто загружен", "очередь"],
|
|
58
|
+
desc: "Capacity view проекта — задачи каждого участника, weight, очередь",
|
|
59
|
+
route: "/app/{ws}/projects/{projectSlug}/capacity",
|
|
60
|
+
requires: ["projectSlug"],
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: "today-page",
|
|
64
|
+
title: "План на сегодня",
|
|
65
|
+
aliases: ["сегодня", "план", "план на день", "today", "что делать"],
|
|
66
|
+
desc: "Личный план: сегодня / на неделе / дальше; drag → pin",
|
|
67
|
+
route: "/app/{ws}/today",
|
|
68
|
+
requires: [],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "kanban-board",
|
|
72
|
+
title: "Доска задач (Kanban)",
|
|
73
|
+
aliases: ["доска", "канбан", "kanban", "board", "доска задач"],
|
|
74
|
+
desc: "Канбан-доска ws с фильтрами и drag-drop статусов",
|
|
75
|
+
route: "/app/{ws}/tasks?view=board",
|
|
76
|
+
requires: [],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "notifications-page",
|
|
80
|
+
title: "Уведомления",
|
|
81
|
+
aliases: ["уведомления", "нотификации", "notifications", "история уведомлений"],
|
|
82
|
+
desc: "История уведомлений (mentions, статусы задач, деплои)",
|
|
83
|
+
route: "/app/{ws}/notifications",
|
|
84
|
+
requires: [],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "admin-workspace",
|
|
88
|
+
title: "Настройки workspace",
|
|
89
|
+
aliases: ["admin", "настройки воркспейса", "workspace settings", "админка"],
|
|
90
|
+
desc: "Имя ws, slug, аватарка, префикс задач, удаление",
|
|
91
|
+
route: "/app/{ws}/admin?tab=workspace",
|
|
92
|
+
requires: [],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "admin-members",
|
|
96
|
+
title: "Участники workspace",
|
|
97
|
+
aliases: ["участники", "members", "пригласить", "invite", "команда"],
|
|
98
|
+
desc: "Список членов ws + invites; добавить/убрать/сменить роль",
|
|
99
|
+
route: "/app/{ws}/admin?tab=members",
|
|
100
|
+
requires: [],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: "admin-integrations",
|
|
104
|
+
title: "Интеграции (GitHub App)",
|
|
105
|
+
// PRJ2-9: добавили «настройки» и «настройки github» — частые формулировки
|
|
106
|
+
// «где найти настройки github» теперь стабильно ведут сюда, а не на
|
|
107
|
+
// project-settings (где требуется context проекта).
|
|
108
|
+
aliases: [
|
|
109
|
+
"интеграции", "integrations", "github app", "подключить github",
|
|
110
|
+
"настройки", "настройки github", "github настройки",
|
|
111
|
+
],
|
|
112
|
+
desc: "Подключение GitHub App к workspace, настройки интеграции",
|
|
113
|
+
route: "/app/{ws}/admin?tab=integrations",
|
|
114
|
+
requires: [],
|
|
115
|
+
},
|
|
116
|
+
];
|
|
117
|
+
/** Stop-words — короткие предлоги/вопросительные/служебные слова, которые
|
|
118
|
+
* не несут смысла для match'а и часто матчатся в desc'ах случайно. */
|
|
119
|
+
const STOP_WORDS = new Set([
|
|
120
|
+
"где", "как", "что", "куда", "кто", "зачем", "почему",
|
|
121
|
+
"это", "эта", "этот", "тот", "та", "то",
|
|
122
|
+
"для", "при", "над", "под", "на", "по", "из", "от", "до", "за",
|
|
123
|
+
"не", "ни", "но", "и", "или", "а",
|
|
124
|
+
]);
|
|
125
|
+
/** Keyword-match с весами по полю: title +3, aliases +2, desc +1.
|
|
126
|
+
* Stop-words игнорируем. Возвращает топ-N entries по убыванию score. */
|
|
127
|
+
export function findFeature(query, ctx, maxResults = 5) {
|
|
128
|
+
const q = query.toLowerCase().trim();
|
|
129
|
+
if (q.length === 0)
|
|
130
|
+
return [];
|
|
131
|
+
const words = q.split(/\s+/)
|
|
132
|
+
.filter((w) => w.length >= 3) // >=3 символа: «не», «ws», «id» отсеиваем
|
|
133
|
+
.filter((w) => !STOP_WORDS.has(w));
|
|
134
|
+
if (words.length === 0)
|
|
135
|
+
return [];
|
|
136
|
+
const scored = [];
|
|
137
|
+
for (const entry of UI_TOUR_REGISTRY) {
|
|
138
|
+
const titleLc = entry.title.toLowerCase();
|
|
139
|
+
const aliasesLc = entry.aliases.map((a) => a.toLowerCase()).join(" ");
|
|
140
|
+
const descLc = entry.desc.toLowerCase();
|
|
141
|
+
let score = 0;
|
|
142
|
+
for (const w of words) {
|
|
143
|
+
if (titleLc.includes(w))
|
|
144
|
+
score += 3;
|
|
145
|
+
else if (aliasesLc.includes(w))
|
|
146
|
+
score += 2;
|
|
147
|
+
else if (descLc.includes(w))
|
|
148
|
+
score += 1;
|
|
149
|
+
}
|
|
150
|
+
if (score > 0)
|
|
151
|
+
scored.push({ entry, score });
|
|
152
|
+
}
|
|
153
|
+
scored.sort((a, b) => b.score - a.score);
|
|
154
|
+
return scored.slice(0, maxResults).map(({ entry }) => {
|
|
155
|
+
const missing = [];
|
|
156
|
+
for (const req of entry.requires) {
|
|
157
|
+
if (req === "projectId" && !ctx.projectId)
|
|
158
|
+
missing.push("projectId");
|
|
159
|
+
if (req === "projectSlug" && !ctx.projectSlug)
|
|
160
|
+
missing.push("projectSlug");
|
|
161
|
+
if (req === "taskId" && !ctx.taskId)
|
|
162
|
+
missing.push("taskId");
|
|
163
|
+
}
|
|
164
|
+
let resolvedRoute = null;
|
|
165
|
+
if (missing.length === 0) {
|
|
166
|
+
resolvedRoute = entry.route
|
|
167
|
+
.replace("{ws}", ctx.ws)
|
|
168
|
+
.replace("{projectId}", ctx.projectId ?? "")
|
|
169
|
+
.replace("{projectSlug}", ctx.projectSlug ?? "")
|
|
170
|
+
.replace("{taskId}", ctx.taskId ?? "");
|
|
171
|
+
}
|
|
172
|
+
return { entry, resolvedRoute, missing };
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=uiTour.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiTour.js","sourceRoot":"","sources":["../src/uiTour.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare function userHandle(input: {
|
|
3
|
+
handle?: string | null | undefined;
|
|
4
|
+
email: string;
|
|
5
|
+
}): string;
|
|
6
|
+
export declare function isValidHandle(s: string): boolean;
|
|
7
|
+
export declare const HandleInput: z.ZodObject<{
|
|
8
|
+
handle: z.ZodString;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
handle: string;
|
|
11
|
+
}, {
|
|
12
|
+
handle: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const HANDLE_REGEX_SOURCE: string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// @username юзера в workspace. Если задан handle на WorkspaceMember —
|
|
2
|
+
// возвращаем его, иначе fallback на email-local-part в lowercase.
|
|
3
|
+
//
|
|
4
|
+
// Используется во всех точках где UI/LLM пишет упоминания (агент,
|
|
5
|
+
// чат комнаты, TipTap-mentions в задачах/комментариях).
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
const HANDLE_RE = /^[a-z0-9][a-z0-9._-]{2,29}$/;
|
|
8
|
+
export function userHandle(input) {
|
|
9
|
+
if (input.handle && HANDLE_RE.test(input.handle))
|
|
10
|
+
return input.handle;
|
|
11
|
+
const local = input.email.split("@")[0]?.toLowerCase() ?? "";
|
|
12
|
+
return local || "user";
|
|
13
|
+
}
|
|
14
|
+
export function isValidHandle(s) {
|
|
15
|
+
return HANDLE_RE.test(s);
|
|
16
|
+
}
|
|
17
|
+
export const HandleInput = z.object({
|
|
18
|
+
handle: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(3)
|
|
21
|
+
.max(30)
|
|
22
|
+
.regex(HANDLE_RE, "только латиница/цифры/. _ -, начинается с буквы или цифры"),
|
|
23
|
+
});
|
|
24
|
+
export const HANDLE_REGEX_SOURCE = HANDLE_RE.source;
|
|
25
|
+
//# sourceMappingURL=userHandle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userHandle.js","sourceRoot":"","sources":["../src/userHandle.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,kEAAkE;AAClE,EAAE;AACF,kEAAkE;AAClE,wDAAwD;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAEhD,MAAM,UAAU,UAAU,CAAC,KAA4D;IACrF,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7D,OAAO,KAAK,IAAI,MAAM,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,KAAK,CAAC,SAAS,EAAE,2DAA2D,CAAC;CACjF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function hueFromUserId(id: string): number;
|
package/dist/userHue.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Стабильный hue (0..359) от строки. Используется как тон для фоновой
|
|
2
|
+
// плашки/аватара юзера: один человек — один цвет во всех контекстах (web,
|
|
3
|
+
// admin, тайл звонка).
|
|
4
|
+
//
|
|
5
|
+
// FNV-1a 32-bit + Murmur3 finalizer. Сам FNV для коротких пар типа
|
|
6
|
+
// ("u1","u2") выдаёт почти соседние числа — проблема видна на любом
|
|
7
|
+
// % 360. Murmur-финалайзер "разбрасывает" близкие хеши по всему
|
|
8
|
+
// пространству, поэтому даже u1/u2/u3 уезжают в разные части круга.
|
|
9
|
+
export function hueFromUserId(id) {
|
|
10
|
+
let h = 0x811c9dc5;
|
|
11
|
+
for (let i = 0; i < id.length; i++) {
|
|
12
|
+
h ^= id.charCodeAt(i);
|
|
13
|
+
h = Math.imul(h, 0x01000193) >>> 0;
|
|
14
|
+
}
|
|
15
|
+
h ^= h >>> 16;
|
|
16
|
+
h = Math.imul(h, 0x85ebca6b);
|
|
17
|
+
h ^= h >>> 13;
|
|
18
|
+
h = Math.imul(h, 0xc2b2ae35);
|
|
19
|
+
h ^= h >>> 16;
|
|
20
|
+
// Math.imul возвращает signed int32 — приводим к unsigned перед % 360
|
|
21
|
+
// (иначе для отрицательного h получим отрицательный hue).
|
|
22
|
+
return (h >>> 0) % 360;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=userHue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userHue.js","sourceRoot":"","sources":["../src/userHue.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,0EAA0E;AAC1E,uBAAuB;AACvB,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,gEAAgE;AAChE,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,sEAAsE;IACtE,0DAA0D;IAC1D,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;AACzB,CAAC"}
|
package/dist/weight.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface WeightTask {
|
|
2
|
+
pinnedUntil?: string | Date | null;
|
|
3
|
+
/** PRJ-7 Фаза 4: timestamp последнего «boost» drag'а в Kanban. */
|
|
4
|
+
lastDragAt?: string | Date | null;
|
|
5
|
+
}
|
|
6
|
+
export type Shelf = "today" | "week" | "later";
|
|
7
|
+
export declare function manualBoost(lastDragAt: WeightTask["lastDragAt"], now?: Date): number;
|
|
8
|
+
export declare function getEffectiveLastDragAt(ownLastDragAt: string | Date | null | undefined, parentLastDragAt: string | Date | null | undefined): string | Date | null;
|
|
9
|
+
export declare function pinBonus(pinnedUntil: WeightTask["pinnedUntil"], now?: Date): number;
|
|
10
|
+
export declare function computeTaskWeight(task: WeightTask, now?: Date): number;
|
|
11
|
+
export declare function assignShelf(task: WeightTask, now?: Date): Shelf;
|
package/dist/weight.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// PRJ-7 Фаза 3 (F3-1): computeTaskWeight + assignShelf — единая формула
|
|
2
|
+
// сортировки задач во всех views (Today / Inbox / Capacity).
|
|
3
|
+
//
|
|
4
|
+
// Формула:
|
|
5
|
+
//
|
|
6
|
+
// weight = manualBoost(lastDragAt) + pinBonus(pinnedUntil)
|
|
7
|
+
//
|
|
8
|
+
// manualBoost(lastDragAt):
|
|
9
|
+
// null → 0
|
|
10
|
+
// иначе → max(0, 50 * exp(-daysSince / 3))
|
|
11
|
+
// 50 сразу после drag, через 3д = 18,
|
|
12
|
+
// через 7д = 4, через 14д = 0.4
|
|
13
|
+
//
|
|
14
|
+
// pinBonus(pinnedUntil):
|
|
15
|
+
// pinnedUntil > now → 200 (assignee personal trump)
|
|
16
|
+
// иначе → 0
|
|
17
|
+
//
|
|
18
|
+
// Свойства:
|
|
19
|
+
// - manualBoost ≤ 50
|
|
20
|
+
// - pinBonus = 200 — личное закрепление assignee в Today
|
|
21
|
+
// - decay manualBoost'а через 3д делает «лид перетянул задачу неделю
|
|
22
|
+
// назад» нерелевантным (~5 очков)
|
|
23
|
+
function toDate(v) {
|
|
24
|
+
return typeof v === "string" ? new Date(v) : v;
|
|
25
|
+
}
|
|
26
|
+
function daysFloat(ms) {
|
|
27
|
+
return ms / (24 * 3600 * 1000);
|
|
28
|
+
}
|
|
29
|
+
export function manualBoost(lastDragAt, now = new Date()) {
|
|
30
|
+
if (!lastDragAt)
|
|
31
|
+
return 0;
|
|
32
|
+
const dragDate = toDate(lastDragAt);
|
|
33
|
+
const ms = now.getTime() - dragDate.getTime();
|
|
34
|
+
if (ms < 0)
|
|
35
|
+
return 0;
|
|
36
|
+
const days = daysFloat(ms);
|
|
37
|
+
return Math.max(0, 50 * Math.exp(-days / 3));
|
|
38
|
+
}
|
|
39
|
+
// PRJ-7 Фаза 4 B4: для subtask'а boost parent'а наследуется. Если parent
|
|
40
|
+
// boost'нут позже чем child (или у child нет boost'а вовсе) — child берёт
|
|
41
|
+
// parent's lastDragAt. Это derived, не сохраняется в БД.
|
|
42
|
+
export function getEffectiveLastDragAt(ownLastDragAt, parentLastDragAt) {
|
|
43
|
+
if (!parentLastDragAt)
|
|
44
|
+
return ownLastDragAt ?? null;
|
|
45
|
+
if (!ownLastDragAt)
|
|
46
|
+
return parentLastDragAt;
|
|
47
|
+
return toDate(parentLastDragAt).getTime() > toDate(ownLastDragAt).getTime()
|
|
48
|
+
? parentLastDragAt
|
|
49
|
+
: ownLastDragAt;
|
|
50
|
+
}
|
|
51
|
+
export function pinBonus(pinnedUntil, now = new Date()) {
|
|
52
|
+
if (!pinnedUntil)
|
|
53
|
+
return 0;
|
|
54
|
+
return toDate(pinnedUntil).getTime() > now.getTime() ? 200 : 0;
|
|
55
|
+
}
|
|
56
|
+
export function computeTaskWeight(task, now = new Date()) {
|
|
57
|
+
return manualBoost(task.lastDragAt, now)
|
|
58
|
+
+ pinBonus(task.pinnedUntil, now);
|
|
59
|
+
}
|
|
60
|
+
// assignShelf — определяет в какую полку Today/Week/Later попадает задача.
|
|
61
|
+
// Используется в TodayPage (Фаза 3 F3-3).
|
|
62
|
+
//
|
|
63
|
+
// today: pin живой
|
|
64
|
+
// later: всё остальное
|
|
65
|
+
export function assignShelf(task, now = new Date()) {
|
|
66
|
+
if (task.pinnedUntil && toDate(task.pinnedUntil).getTime() > now.getTime()) {
|
|
67
|
+
return "today";
|
|
68
|
+
}
|
|
69
|
+
return "later";
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=weight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weight.js","sourceRoot":"","sources":["../src/weight.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,6DAA6D;AAC7D,EAAE;AACF,WAAW;AACX,EAAE;AACF,6DAA6D;AAC7D,EAAE;AACF,6BAA6B;AAC7B,sCAAsC;AACtC,qEAAqE;AACrE,wEAAwE;AACxE,kEAAkE;AAClE,EAAE;AACF,2BAA2B;AAC3B,kEAAkE;AAClE,sCAAsC;AACtC,EAAE;AACF,YAAY;AACZ,uBAAuB;AACvB,2DAA2D;AAC3D,uEAAuE;AACvE,sCAAsC;AAUtC,SAAS,MAAM,CAAC,CAAgB;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,EAAU;IAC3B,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,UAAoC,EACpC,MAAY,IAAI,IAAI,EAAE;IAEtB,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,yDAAyD;AACzD,MAAM,UAAU,sBAAsB,CACpC,aAA+C,EAC/C,gBAAkD;IAElD,IAAI,CAAC,gBAAgB;QAAE,OAAO,aAAa,IAAI,IAAI,CAAC;IACpD,IAAI,CAAC,aAAa;QAAE,OAAO,gBAAgB,CAAC;IAC5C,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;QACzE,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,aAAa,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,WAAsC,EACtC,MAAY,IAAI,IAAI,EAAE;IAEtB,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IACxE,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;UACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,2EAA2E;AAC3E,0CAA0C;AAC1C,EAAE;AACF,qBAAqB;AACrB,yBAAyB;AACzB,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,MAAY,IAAI,IAAI,EAAE;IAClE,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3E,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const WORKSPACE_GRADIENTS: ReadonlyArray<readonly [string, string]>;
|
|
2
|
+
export declare function workspaceGradientIndex(key: string): number;
|
|
3
|
+
export declare function workspaceGradientStops(key: string): readonly [string, string];
|
|
4
|
+
export declare function workspaceGradientCss(key: string): string;
|
|
5
|
+
export declare function workspaceInitials(name: string): string;
|