@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,39 @@
|
|
|
1
|
+
// Единый источник истины для градиентов и инициалов воркспейса.
|
|
2
|
+
// Используется в web (WorkspaceLogo, WorkspaceAvatar, BrandPane),
|
|
3
|
+
// в api (SVG-аватарка для писем), и везде где нужен детерминированный цвет.
|
|
4
|
+
// 6 пар oklch; индекс = djb2(key) % 6 — стабилен для одного slug'а.
|
|
5
|
+
export const WORKSPACE_GRADIENTS = [
|
|
6
|
+
["oklch(0.68 0.18 35)", "oklch(0.62 0.16 20)"], // warm-amber → red
|
|
7
|
+
["oklch(0.7 0.16 255)", "oklch(0.55 0.18 280)"], // blue → violet
|
|
8
|
+
["oklch(0.72 0.15 150)", "oklch(0.62 0.14 200)"], // green → cyan
|
|
9
|
+
["oklch(0.65 0.18 350)", "oklch(0.55 0.17 320)"], // rose → magenta
|
|
10
|
+
["oklch(0.72 0.12 85)", "oklch(0.6 0.14 120)"], // olive → green
|
|
11
|
+
["oklch(0.65 0.17 295)", "oklch(0.55 0.18 255)"], // violet → blue
|
|
12
|
+
];
|
|
13
|
+
function djb2(s) {
|
|
14
|
+
let h = 5381;
|
|
15
|
+
for (let i = 0; i < s.length; i++)
|
|
16
|
+
h = ((h << 5) + h + s.charCodeAt(i)) | 0;
|
|
17
|
+
return Math.abs(h);
|
|
18
|
+
}
|
|
19
|
+
export function workspaceGradientIndex(key) {
|
|
20
|
+
return djb2((key || "ws").toLowerCase()) % WORKSPACE_GRADIENTS.length;
|
|
21
|
+
}
|
|
22
|
+
export function workspaceGradientStops(key) {
|
|
23
|
+
return WORKSPACE_GRADIENTS[workspaceGradientIndex(key)];
|
|
24
|
+
}
|
|
25
|
+
export function workspaceGradientCss(key) {
|
|
26
|
+
const [a, b] = workspaceGradientStops(key);
|
|
27
|
+
return `linear-gradient(135deg, ${a}, ${b})`;
|
|
28
|
+
}
|
|
29
|
+
export function workspaceInitials(name) {
|
|
30
|
+
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
31
|
+
if (parts.length === 0)
|
|
32
|
+
return "??";
|
|
33
|
+
const first = parts[0];
|
|
34
|
+
const second = parts[1];
|
|
35
|
+
if (!second)
|
|
36
|
+
return first.slice(0, 2).toUpperCase();
|
|
37
|
+
return ((first[0] ?? "") + (second[0] ?? "")).toUpperCase();
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=workspaceBrand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceBrand.js","sourceRoot":"","sources":["../src/workspaceBrand.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,kEAAkE;AAClE,4EAA4E;AAC5E,oEAAoE;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAA6C;IAC3E,CAAC,qBAAqB,EAAG,qBAAqB,CAAC,EAAI,mBAAmB;IACtE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAAG,gBAAgB;IACnE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAAG,eAAe;IAClE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAAG,iBAAiB;IACpE,CAAC,qBAAqB,EAAG,sBAAsB,CAAC,EAAG,gBAAgB;IACnE,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAAG,gBAAgB;CACpE,CAAC;AAEF,SAAS,IAAI,CAAC,CAAS;IACrB,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,mBAAmB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9D,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@taskless-app/shared",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Shared types, Zod schemas and design tokens for the Taskless API contract — consumed by @taskless/api, @taskless/web and the Taskless mobile app.",
|
|
6
|
+
"license": "UNLICENSED",
|
|
7
|
+
"homepage": "https://github.com/ilyasmurov/taskless/tree/main/packages/shared#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/ilyasmurov/taskless.git",
|
|
11
|
+
"directory": "packages/shared"
|
|
12
|
+
},
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"zod": "3.25.76"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"typescript": "5.7.3",
|
|
23
|
+
"vitest": "2.1.8"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc -p tsconfig.build.json",
|
|
27
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
28
|
+
"test": "TZ=UTC vitest run",
|
|
29
|
+
"test:watch": "TZ=UTC vitest",
|
|
30
|
+
"lint": "echo 'no lint in shared yet'"
|
|
31
|
+
}
|
|
32
|
+
}
|