jvetrau-ds 0.1.30 → 0.1.32
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/attach/attach.cjs +21 -4
- package/components/attach/attach.cjs.map +1 -1
- package/components/attach/attach.css +46 -8
- package/components/attach/attach.d.cts +3 -1
- package/components/attach/attach.d.ts +3 -1
- package/components/attach/attach.js +21 -4
- package/components/attach/attach.js.map +1 -1
- package/components/logo/logo.css +5 -0
- package/components/tag/tag.css +14 -14
- package/package.json +1 -1
- package/styles.css +65 -22
- package/themes/base/desktop.css +12 -7
- package/themes/base/desktop.md +12 -7
- package/themes/base/desktop.scoped.css +12 -7
- package/themes/base/diagram.css +12 -7
- package/themes/base/diagram.md +12 -7
- package/themes/base/diagram.scoped.css +12 -7
- package/themes/base/mobile.css +12 -7
- package/themes/base/mobile.md +12 -7
- package/themes/base/mobile.scoped.css +12 -7
- package/themes/brandcopilot/desktop.css +12 -7
- package/themes/brandcopilot/desktop.md +12 -7
- package/themes/brandcopilot/desktop.scoped.css +12 -7
- package/themes/brandcopilot/diagram.css +12 -7
- package/themes/brandcopilot/diagram.md +12 -7
- package/themes/brandcopilot/diagram.scoped.css +12 -7
- package/themes/brandcopilot/mobile.css +12 -7
- package/themes/brandcopilot/mobile.md +12 -7
- package/themes/brandcopilot/mobile.scoped.css +12 -7
- package/themes/dmpatterns/desktop.css +12 -7
- package/themes/dmpatterns/desktop.md +12 -7
- package/themes/dmpatterns/desktop.scoped.css +12 -7
- package/themes/dmpatterns/diagram.css +12 -7
- package/themes/dmpatterns/diagram.md +12 -7
- package/themes/dmpatterns/diagram.scoped.css +12 -7
- package/themes/dmpatterns/mobile.css +12 -7
- package/themes/dmpatterns/mobile.md +12 -7
- package/themes/dmpatterns/mobile.scoped.css +12 -7
- package/themes/pdigest/desktop.css +12 -7
- package/themes/pdigest/desktop.md +12 -7
- package/themes/pdigest/desktop.scoped.css +12 -7
- package/themes/pdigest/diagram.css +12 -7
- package/themes/pdigest/diagram.md +12 -7
- package/themes/pdigest/diagram.scoped.css +12 -7
- package/themes/pdigest/mobile.css +12 -7
- package/themes/pdigest/mobile.md +12 -7
- package/themes/pdigest/mobile.scoped.css +12 -7
- package/themes/redesigntrack/desktop.css +12 -7
- package/themes/redesigntrack/desktop.md +12 -7
- package/themes/redesigntrack/desktop.scoped.css +12 -7
- package/themes/redesigntrack/diagram.css +12 -7
- package/themes/redesigntrack/diagram.md +12 -7
- package/themes/redesigntrack/diagram.scoped.css +12 -7
- package/themes/redesigntrack/mobile.css +12 -7
- package/themes/redesigntrack/mobile.md +12 -7
- package/themes/redesigntrack/mobile.scoped.css +12 -7
- package/tokens/runtime/tokens.base.desktop.runtime.cjs +27 -22
- package/tokens/runtime/tokens.base.desktop.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.base.desktop.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.base.desktop.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.base.desktop.runtime.js +27 -22
- package/tokens/runtime/tokens.base.desktop.runtime.js.map +1 -1
- package/tokens/runtime/tokens.base.diagram.runtime.cjs +27 -22
- package/tokens/runtime/tokens.base.diagram.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.base.diagram.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.base.diagram.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.base.diagram.runtime.js +27 -22
- package/tokens/runtime/tokens.base.diagram.runtime.js.map +1 -1
- package/tokens/runtime/tokens.base.mobile.runtime.cjs +27 -22
- package/tokens/runtime/tokens.base.mobile.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.base.mobile.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.base.mobile.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.base.mobile.runtime.js +27 -22
- package/tokens/runtime/tokens.base.mobile.runtime.js.map +1 -1
- package/tokens/runtime/tokens.brandcopilot.desktop.runtime.cjs +27 -22
- package/tokens/runtime/tokens.brandcopilot.desktop.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.brandcopilot.desktop.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.brandcopilot.desktop.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.brandcopilot.desktop.runtime.js +27 -22
- package/tokens/runtime/tokens.brandcopilot.desktop.runtime.js.map +1 -1
- package/tokens/runtime/tokens.brandcopilot.diagram.runtime.cjs +27 -22
- package/tokens/runtime/tokens.brandcopilot.diagram.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.brandcopilot.diagram.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.brandcopilot.diagram.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.brandcopilot.diagram.runtime.js +27 -22
- package/tokens/runtime/tokens.brandcopilot.diagram.runtime.js.map +1 -1
- package/tokens/runtime/tokens.brandcopilot.mobile.runtime.cjs +27 -22
- package/tokens/runtime/tokens.brandcopilot.mobile.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.brandcopilot.mobile.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.brandcopilot.mobile.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.brandcopilot.mobile.runtime.js +27 -22
- package/tokens/runtime/tokens.brandcopilot.mobile.runtime.js.map +1 -1
- package/tokens/runtime/tokens.dmpatterns.desktop.runtime.cjs +27 -22
- package/tokens/runtime/tokens.dmpatterns.desktop.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.dmpatterns.desktop.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.dmpatterns.desktop.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.dmpatterns.desktop.runtime.js +27 -22
- package/tokens/runtime/tokens.dmpatterns.desktop.runtime.js.map +1 -1
- package/tokens/runtime/tokens.dmpatterns.diagram.runtime.cjs +27 -22
- package/tokens/runtime/tokens.dmpatterns.diagram.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.dmpatterns.diagram.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.dmpatterns.diagram.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.dmpatterns.diagram.runtime.js +27 -22
- package/tokens/runtime/tokens.dmpatterns.diagram.runtime.js.map +1 -1
- package/tokens/runtime/tokens.dmpatterns.mobile.runtime.cjs +27 -22
- package/tokens/runtime/tokens.dmpatterns.mobile.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.dmpatterns.mobile.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.dmpatterns.mobile.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.dmpatterns.mobile.runtime.js +27 -22
- package/tokens/runtime/tokens.dmpatterns.mobile.runtime.js.map +1 -1
- package/tokens/runtime/tokens.pdigest.desktop.runtime.cjs +27 -22
- package/tokens/runtime/tokens.pdigest.desktop.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.pdigest.desktop.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.pdigest.desktop.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.pdigest.desktop.runtime.js +27 -22
- package/tokens/runtime/tokens.pdigest.desktop.runtime.js.map +1 -1
- package/tokens/runtime/tokens.pdigest.diagram.runtime.cjs +27 -22
- package/tokens/runtime/tokens.pdigest.diagram.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.pdigest.diagram.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.pdigest.diagram.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.pdigest.diagram.runtime.js +27 -22
- package/tokens/runtime/tokens.pdigest.diagram.runtime.js.map +1 -1
- package/tokens/runtime/tokens.pdigest.mobile.runtime.cjs +27 -22
- package/tokens/runtime/tokens.pdigest.mobile.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.pdigest.mobile.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.pdigest.mobile.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.pdigest.mobile.runtime.js +27 -22
- package/tokens/runtime/tokens.pdigest.mobile.runtime.js.map +1 -1
- package/tokens/runtime/tokens.redesigntrack.desktop.runtime.cjs +27 -22
- package/tokens/runtime/tokens.redesigntrack.desktop.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.redesigntrack.desktop.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.redesigntrack.desktop.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.redesigntrack.desktop.runtime.js +27 -22
- package/tokens/runtime/tokens.redesigntrack.desktop.runtime.js.map +1 -1
- package/tokens/runtime/tokens.redesigntrack.diagram.runtime.cjs +27 -22
- package/tokens/runtime/tokens.redesigntrack.diagram.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.redesigntrack.diagram.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.redesigntrack.diagram.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.redesigntrack.diagram.runtime.js +27 -22
- package/tokens/runtime/tokens.redesigntrack.diagram.runtime.js.map +1 -1
- package/tokens/runtime/tokens.redesigntrack.mobile.runtime.cjs +27 -22
- package/tokens/runtime/tokens.redesigntrack.mobile.runtime.cjs.map +1 -1
- package/tokens/runtime/tokens.redesigntrack.mobile.runtime.d.cts +27 -22
- package/tokens/runtime/tokens.redesigntrack.mobile.runtime.d.ts +27 -22
- package/tokens/runtime/tokens.redesigntrack.mobile.runtime.js +27 -22
- package/tokens/runtime/tokens.redesigntrack.mobile.runtime.js.map +1 -1
- package/tokens/themes/base/dist/desktop.json +81 -41
- package/tokens/themes/base/dist/diagram.json +81 -41
- package/tokens/themes/base/dist/mobile.json +81 -41
- package/tokens/themes/brandcopilot/dist/desktop.json +81 -41
- package/tokens/themes/brandcopilot/dist/diagram.json +81 -41
- package/tokens/themes/brandcopilot/dist/mobile.json +81 -41
- package/tokens/themes/dmpatterns/dist/desktop.json +81 -41
- package/tokens/themes/dmpatterns/dist/diagram.json +81 -41
- package/tokens/themes/dmpatterns/dist/mobile.json +81 -41
- package/tokens/themes/pdigest/dist/desktop.json +81 -41
- package/tokens/themes/pdigest/dist/diagram.json +81 -41
- package/tokens/themes/pdigest/dist/mobile.json +81 -41
- package/tokens/themes/redesigntrack/dist/desktop.json +81 -41
- package/tokens/themes/redesigntrack/dist/diagram.json +81 -41
- package/tokens/themes/redesigntrack/dist/mobile.json +81 -41
|
@@ -7,6 +7,9 @@ var classnames = require('../helpers/classnames');
|
|
|
7
7
|
function isImageAttach(item) {
|
|
8
8
|
return item.mimeType?.startsWith("image/") ?? false;
|
|
9
9
|
}
|
|
10
|
+
function isLinkAttach(item) {
|
|
11
|
+
return item.kind === "link";
|
|
12
|
+
}
|
|
10
13
|
function formatFileSize(sizeBytes) {
|
|
11
14
|
if (sizeBytes === void 0) {
|
|
12
15
|
return "Size unknown";
|
|
@@ -19,6 +22,13 @@ function formatFileSize(sizeBytes) {
|
|
|
19
22
|
}
|
|
20
23
|
return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;
|
|
21
24
|
}
|
|
25
|
+
function getLinkHostname(url) {
|
|
26
|
+
try {
|
|
27
|
+
return new URL(url).hostname.replace(/^www\./u, "");
|
|
28
|
+
} catch {
|
|
29
|
+
return url;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
22
32
|
const Attach = ({
|
|
23
33
|
items,
|
|
24
34
|
onRemove,
|
|
@@ -37,11 +47,18 @@ const Attach = ({
|
|
|
37
47
|
className: classes,
|
|
38
48
|
...props,
|
|
39
49
|
children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "attach__list", children: items.map((item) => {
|
|
40
|
-
const
|
|
50
|
+
const isLink = isLinkAttach(item);
|
|
51
|
+
const isImage = !isLink && isImageAttach(item);
|
|
52
|
+
const itemClasses = classnames.classnames("attach__item", {
|
|
53
|
+
"attach__item--link": isLink,
|
|
54
|
+
"attach__item--image": isImage,
|
|
55
|
+
"attach__item--file": !isLink && !isImage
|
|
56
|
+
});
|
|
57
|
+
const meta = isLink ? getLinkHostname(item.url) : formatFileSize(item.sizeBytes);
|
|
41
58
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42
59
|
"li",
|
|
43
60
|
{
|
|
44
|
-
className:
|
|
61
|
+
className: itemClasses,
|
|
45
62
|
children: [
|
|
46
63
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
64
|
"a",
|
|
@@ -59,7 +76,7 @@ const Attach = ({
|
|
|
59
76
|
}
|
|
60
77
|
) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "attach__file", children: [
|
|
61
78
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "attach__name", children: item.name }),
|
|
62
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "
|
|
79
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "attach__meta", children: meta })
|
|
63
80
|
] })
|
|
64
81
|
}
|
|
65
82
|
),
|
|
@@ -68,7 +85,7 @@ const Attach = ({
|
|
|
68
85
|
{
|
|
69
86
|
className: "attach__remove",
|
|
70
87
|
type: "button",
|
|
71
|
-
"aria-label": `${removeLabel}
|
|
88
|
+
"aria-label": `${removeLabel}: ${item.name}`,
|
|
72
89
|
onClick: () => onRemove(item.id),
|
|
73
90
|
children: removeLabel
|
|
74
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/attach/attach.tsx"],"names":["classnames","jsx","jsxs"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/attach/attach.tsx"],"names":["classnames","jsx","jsxs"],"mappings":"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","file":"attach.cjs","sourcesContent":["import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport type AttachItemKind = 'file' | 'link';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n kind?: AttachItemKind;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction isLinkAttach(item: AttachItem) {\n return item.kind === 'link';\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nfunction getLinkHostname(url: string) {\n try {\n return new URL(url).hostname.replace(/^www\\./u, '');\n } catch {\n return url;\n }\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isLink = isLinkAttach(item);\n const isImage = !isLink && isImageAttach(item);\n\n const itemClasses = classnames('attach__item', {\n 'attach__item--link': isLink,\n 'attach__item--image': isImage,\n 'attach__item--file': !isLink && !isImage,\n });\n\n const meta = isLink\n ? getLinkHostname(item.url)\n : formatFileSize(item.sizeBytes);\n\n return (\n <li\n key={item.id}\n className={itemClasses}\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__meta\">\n {meta}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel}: ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
--attachment-color: var(--color-text);
|
|
4
4
|
--attachment-item-bg: var(--color-control);
|
|
5
5
|
--attachment-border-color: var(--color-line);
|
|
6
|
-
--attachment-
|
|
6
|
+
--attachment-meta-color: var(--color-text-note);
|
|
7
7
|
|
|
8
8
|
color: var(--attachment-color);
|
|
9
9
|
|
|
@@ -65,20 +65,31 @@
|
|
|
65
65
|
solid
|
|
66
66
|
var(--attachment-border-color);
|
|
67
67
|
border-radius: var(--attachment-radius);
|
|
68
|
+
|
|
69
|
+
/* depth */
|
|
70
|
+
|
|
71
|
+
/* motion */
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
.attach__link {
|
|
71
75
|
/* color */
|
|
72
76
|
color: inherit;
|
|
73
77
|
|
|
78
|
+
/* typography */
|
|
79
|
+
text-decoration: none;
|
|
80
|
+
|
|
74
81
|
/* size */
|
|
75
82
|
min-width: 0;
|
|
76
83
|
|
|
77
|
-
/*
|
|
78
|
-
|
|
84
|
+
/* border */
|
|
85
|
+
|
|
86
|
+
/* depth */
|
|
87
|
+
|
|
88
|
+
/* motion */
|
|
79
89
|
}
|
|
80
90
|
|
|
81
91
|
.attach__link:hover .attach__name {
|
|
92
|
+
/* typography */
|
|
82
93
|
text-decoration: underline;
|
|
83
94
|
}
|
|
84
95
|
|
|
@@ -91,6 +102,10 @@
|
|
|
91
102
|
|
|
92
103
|
/* border */
|
|
93
104
|
border-radius: var(--attachment-radius);
|
|
105
|
+
|
|
106
|
+
/* depth */
|
|
107
|
+
|
|
108
|
+
/* motion */
|
|
94
109
|
}
|
|
95
110
|
|
|
96
111
|
.attach__file {
|
|
@@ -98,23 +113,43 @@
|
|
|
98
113
|
display: flex;
|
|
99
114
|
flex-direction: column;
|
|
100
115
|
min-width: 0;
|
|
116
|
+
|
|
117
|
+
/* border */
|
|
118
|
+
|
|
119
|
+
/* depth */
|
|
120
|
+
|
|
121
|
+
/* motion */
|
|
101
122
|
}
|
|
102
123
|
|
|
103
124
|
.attach__name {
|
|
104
|
-
/* size */
|
|
105
|
-
overflow: hidden;
|
|
106
|
-
|
|
107
125
|
/* typography */
|
|
108
126
|
text-overflow: ellipsis;
|
|
109
127
|
white-space: nowrap;
|
|
128
|
+
|
|
129
|
+
/* size */
|
|
130
|
+
overflow: hidden;
|
|
131
|
+
|
|
132
|
+
/* border */
|
|
133
|
+
|
|
134
|
+
/* depth */
|
|
135
|
+
|
|
136
|
+
/* motion */
|
|
110
137
|
}
|
|
111
138
|
|
|
112
|
-
.
|
|
139
|
+
.attach__meta {
|
|
113
140
|
/* color */
|
|
114
|
-
color: var(--attachment-
|
|
141
|
+
color: var(--attachment-meta-color);
|
|
115
142
|
|
|
116
143
|
/* typography */
|
|
117
144
|
font-size: 0.85em;
|
|
145
|
+
|
|
146
|
+
/* size */
|
|
147
|
+
|
|
148
|
+
/* border */
|
|
149
|
+
|
|
150
|
+
/* depth */
|
|
151
|
+
|
|
152
|
+
/* motion */
|
|
118
153
|
}
|
|
119
154
|
|
|
120
155
|
.attach__remove {
|
|
@@ -132,10 +167,13 @@
|
|
|
132
167
|
/* border */
|
|
133
168
|
border: 0;
|
|
134
169
|
|
|
170
|
+
/* depth */
|
|
171
|
+
|
|
135
172
|
/* motion */
|
|
136
173
|
cursor: pointer;
|
|
137
174
|
}
|
|
138
175
|
|
|
139
176
|
.attach__remove:hover {
|
|
177
|
+
/* typography */
|
|
140
178
|
text-decoration: underline;
|
|
141
179
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
+
type AttachItemKind = 'file' | 'link';
|
|
3
4
|
interface AttachItem {
|
|
4
5
|
id: string;
|
|
5
6
|
name: string;
|
|
6
7
|
url: string;
|
|
8
|
+
kind?: AttachItemKind;
|
|
7
9
|
mimeType?: string;
|
|
8
10
|
sizeBytes?: number;
|
|
9
11
|
}
|
|
@@ -15,4 +17,4 @@ interface AttachProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
15
17
|
}
|
|
16
18
|
declare const Attach: React.FC<AttachProps>;
|
|
17
19
|
|
|
18
|
-
export { type AttachItem, type AttachProps, Attach as default };
|
|
20
|
+
export { type AttachItem, type AttachItemKind, type AttachProps, Attach as default };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
|
+
type AttachItemKind = 'file' | 'link';
|
|
3
4
|
interface AttachItem {
|
|
4
5
|
id: string;
|
|
5
6
|
name: string;
|
|
6
7
|
url: string;
|
|
8
|
+
kind?: AttachItemKind;
|
|
7
9
|
mimeType?: string;
|
|
8
10
|
sizeBytes?: number;
|
|
9
11
|
}
|
|
@@ -15,4 +17,4 @@ interface AttachProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
15
17
|
}
|
|
16
18
|
declare const Attach: React.FC<AttachProps>;
|
|
17
19
|
|
|
18
|
-
export { type AttachItem, type AttachProps, Attach as default };
|
|
20
|
+
export { type AttachItem, type AttachItemKind, type AttachProps, Attach as default };
|
|
@@ -5,6 +5,9 @@ import { classnames } from '../helpers/classnames';
|
|
|
5
5
|
function isImageAttach(item) {
|
|
6
6
|
return item.mimeType?.startsWith("image/") ?? false;
|
|
7
7
|
}
|
|
8
|
+
function isLinkAttach(item) {
|
|
9
|
+
return item.kind === "link";
|
|
10
|
+
}
|
|
8
11
|
function formatFileSize(sizeBytes) {
|
|
9
12
|
if (sizeBytes === void 0) {
|
|
10
13
|
return "Size unknown";
|
|
@@ -17,6 +20,13 @@ function formatFileSize(sizeBytes) {
|
|
|
17
20
|
}
|
|
18
21
|
return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;
|
|
19
22
|
}
|
|
23
|
+
function getLinkHostname(url) {
|
|
24
|
+
try {
|
|
25
|
+
return new URL(url).hostname.replace(/^www\./u, "");
|
|
26
|
+
} catch {
|
|
27
|
+
return url;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
20
30
|
const Attach = ({
|
|
21
31
|
items,
|
|
22
32
|
onRemove,
|
|
@@ -35,11 +45,18 @@ const Attach = ({
|
|
|
35
45
|
className: classes,
|
|
36
46
|
...props,
|
|
37
47
|
children: /* @__PURE__ */ jsx("ul", { className: "attach__list", children: items.map((item) => {
|
|
38
|
-
const
|
|
48
|
+
const isLink = isLinkAttach(item);
|
|
49
|
+
const isImage = !isLink && isImageAttach(item);
|
|
50
|
+
const itemClasses = classnames("attach__item", {
|
|
51
|
+
"attach__item--link": isLink,
|
|
52
|
+
"attach__item--image": isImage,
|
|
53
|
+
"attach__item--file": !isLink && !isImage
|
|
54
|
+
});
|
|
55
|
+
const meta = isLink ? getLinkHostname(item.url) : formatFileSize(item.sizeBytes);
|
|
39
56
|
return /* @__PURE__ */ jsxs(
|
|
40
57
|
"li",
|
|
41
58
|
{
|
|
42
|
-
className:
|
|
59
|
+
className: itemClasses,
|
|
43
60
|
children: [
|
|
44
61
|
/* @__PURE__ */ jsx(
|
|
45
62
|
"a",
|
|
@@ -57,7 +74,7 @@ const Attach = ({
|
|
|
57
74
|
}
|
|
58
75
|
) : /* @__PURE__ */ jsxs("span", { className: "attach__file", children: [
|
|
59
76
|
/* @__PURE__ */ jsx("span", { className: "attach__name", children: item.name }),
|
|
60
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
77
|
+
/* @__PURE__ */ jsx("span", { className: "attach__meta", children: meta })
|
|
61
78
|
] })
|
|
62
79
|
}
|
|
63
80
|
),
|
|
@@ -66,7 +83,7 @@ const Attach = ({
|
|
|
66
83
|
{
|
|
67
84
|
className: "attach__remove",
|
|
68
85
|
type: "button",
|
|
69
|
-
"aria-label": `${removeLabel}
|
|
86
|
+
"aria-label": `${removeLabel}: ${item.name}`,
|
|
70
87
|
onClick: () => onRemove(item.id),
|
|
71
88
|
children: removeLabel
|
|
72
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/attach/attach.tsx"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/attach/attach.tsx"],"names":[],"mappings":"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","file":"attach.js","sourcesContent":["import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport type AttachItemKind = 'file' | 'link';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n kind?: AttachItemKind;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction isLinkAttach(item: AttachItem) {\n return item.kind === 'link';\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nfunction getLinkHostname(url: string) {\n try {\n return new URL(url).hostname.replace(/^www\\./u, '');\n } catch {\n return url;\n }\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isLink = isLinkAttach(item);\n const isImage = !isLink && isImageAttach(item);\n\n const itemClasses = classnames('attach__item', {\n 'attach__item--link': isLink,\n 'attach__item--image': isImage,\n 'attach__item--file': !isLink && !isImage,\n });\n\n const meta = isLink\n ? getLinkHostname(item.url)\n : formatFileSize(item.sizeBytes);\n\n return (\n <li\n key={item.id}\n className={itemClasses}\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__meta\">\n {meta}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel}: ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
|
package/components/logo/logo.css
CHANGED
package/components/tag/tag.css
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
.tag {
|
|
2
2
|
/* color */
|
|
3
|
-
--tag-bg: var(--color-
|
|
4
|
-
--tag-text: var(--color-
|
|
3
|
+
--tag-bg: var(--color-semi-good);
|
|
4
|
+
--tag-text: var(--color-text-control);
|
|
5
5
|
|
|
6
6
|
background: var(--tag-bg);
|
|
7
7
|
color: var(--tag-text);
|
|
8
8
|
|
|
9
9
|
/* typography */
|
|
10
|
-
--tag-font-family: var(--
|
|
11
|
-
--tag-font-weight: var(--
|
|
12
|
-
--tag-font-size: var(--
|
|
13
|
-
--tag-line-height: var(--
|
|
14
|
-
--tag-letter-spacing: var(--
|
|
10
|
+
--tag-font-family: var(--font-note-family);
|
|
11
|
+
--tag-font-weight: var(--font-note-weight);
|
|
12
|
+
--tag-font-size: var(--font-note-size);
|
|
13
|
+
--tag-line-height: var(--font-note-line-height);
|
|
14
|
+
--tag-letter-spacing: var(--font-note-letter-spacing);
|
|
15
15
|
|
|
16
16
|
font-family: var(--tag-font-family);
|
|
17
17
|
font-size: var(--tag-font-size);
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
/* size */
|
|
23
23
|
--tag-gap: 0;
|
|
24
24
|
--tag-height: auto;
|
|
25
|
-
--tag-padding-x: var(--
|
|
26
|
-
--tag-padding-y: var(--
|
|
25
|
+
--tag-padding-x: var(--padding-tag-horz);
|
|
26
|
+
--tag-padding-y: var(--padding-tag-vert);
|
|
27
27
|
|
|
28
28
|
display: inline-flex;
|
|
29
29
|
align-items: center;
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
|
|
34
34
|
/* border */
|
|
35
35
|
--tag-border-width: 0;
|
|
36
|
-
--tag-border-radius: var(--
|
|
36
|
+
--tag-border-radius: var(--radius-control);
|
|
37
37
|
--tag-border-color: transparent;
|
|
38
38
|
|
|
39
|
-
border:
|
|
40
|
-
border-radius: var(--
|
|
39
|
+
border: none;
|
|
40
|
+
border-radius: var(--radius-control);
|
|
41
41
|
outline: none;
|
|
42
42
|
|
|
43
43
|
/* depth */
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
.tag--context-error {
|
|
82
|
-
--tag-bg: var(--color-
|
|
82
|
+
--tag-bg: var(--color-bad);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
.tag--context-warning {
|
|
86
|
-
--tag-bg: var(--color-
|
|
86
|
+
--tag-bg: var(--color-med);
|
|
87
87
|
}
|
package/package.json
CHANGED
package/styles.css
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
--attachment-color: var(--color-text);
|
|
33
33
|
--attachment-item-bg: var(--color-control);
|
|
34
34
|
--attachment-border-color: var(--color-line);
|
|
35
|
-
--attachment-
|
|
35
|
+
--attachment-meta-color: var(--color-text-note);
|
|
36
36
|
|
|
37
37
|
color: var(--attachment-color);
|
|
38
38
|
|
|
@@ -94,20 +94,31 @@
|
|
|
94
94
|
solid
|
|
95
95
|
var(--attachment-border-color);
|
|
96
96
|
border-radius: var(--attachment-radius);
|
|
97
|
+
|
|
98
|
+
/* depth */
|
|
99
|
+
|
|
100
|
+
/* motion */
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
.attach__link {
|
|
100
104
|
/* color */
|
|
101
105
|
color: inherit;
|
|
102
106
|
|
|
107
|
+
/* typography */
|
|
108
|
+
text-decoration: none;
|
|
109
|
+
|
|
103
110
|
/* size */
|
|
104
111
|
min-width: 0;
|
|
105
112
|
|
|
106
|
-
/*
|
|
107
|
-
|
|
113
|
+
/* border */
|
|
114
|
+
|
|
115
|
+
/* depth */
|
|
116
|
+
|
|
117
|
+
/* motion */
|
|
108
118
|
}
|
|
109
119
|
|
|
110
120
|
.attach__link:hover .attach__name {
|
|
121
|
+
/* typography */
|
|
111
122
|
text-decoration: underline;
|
|
112
123
|
}
|
|
113
124
|
|
|
@@ -120,6 +131,10 @@
|
|
|
120
131
|
|
|
121
132
|
/* border */
|
|
122
133
|
border-radius: var(--attachment-radius);
|
|
134
|
+
|
|
135
|
+
/* depth */
|
|
136
|
+
|
|
137
|
+
/* motion */
|
|
123
138
|
}
|
|
124
139
|
|
|
125
140
|
.attach__file {
|
|
@@ -127,23 +142,43 @@
|
|
|
127
142
|
display: flex;
|
|
128
143
|
flex-direction: column;
|
|
129
144
|
min-width: 0;
|
|
145
|
+
|
|
146
|
+
/* border */
|
|
147
|
+
|
|
148
|
+
/* depth */
|
|
149
|
+
|
|
150
|
+
/* motion */
|
|
130
151
|
}
|
|
131
152
|
|
|
132
153
|
.attach__name {
|
|
133
|
-
/* size */
|
|
134
|
-
overflow: hidden;
|
|
135
|
-
|
|
136
154
|
/* typography */
|
|
137
155
|
text-overflow: ellipsis;
|
|
138
156
|
white-space: nowrap;
|
|
157
|
+
|
|
158
|
+
/* size */
|
|
159
|
+
overflow: hidden;
|
|
160
|
+
|
|
161
|
+
/* border */
|
|
162
|
+
|
|
163
|
+
/* depth */
|
|
164
|
+
|
|
165
|
+
/* motion */
|
|
139
166
|
}
|
|
140
167
|
|
|
141
|
-
.
|
|
168
|
+
.attach__meta {
|
|
142
169
|
/* color */
|
|
143
|
-
color: var(--attachment-
|
|
170
|
+
color: var(--attachment-meta-color);
|
|
144
171
|
|
|
145
172
|
/* typography */
|
|
146
173
|
font-size: 0.85em;
|
|
174
|
+
|
|
175
|
+
/* size */
|
|
176
|
+
|
|
177
|
+
/* border */
|
|
178
|
+
|
|
179
|
+
/* depth */
|
|
180
|
+
|
|
181
|
+
/* motion */
|
|
147
182
|
}
|
|
148
183
|
|
|
149
184
|
.attach__remove {
|
|
@@ -161,11 +196,14 @@
|
|
|
161
196
|
/* border */
|
|
162
197
|
border: 0;
|
|
163
198
|
|
|
199
|
+
/* depth */
|
|
200
|
+
|
|
164
201
|
/* motion */
|
|
165
202
|
cursor: pointer;
|
|
166
203
|
}
|
|
167
204
|
|
|
168
205
|
.attach__remove:hover {
|
|
206
|
+
/* typography */
|
|
169
207
|
text-decoration: underline;
|
|
170
208
|
}
|
|
171
209
|
|
|
@@ -1179,6 +1217,11 @@
|
|
|
1179
1217
|
gap: 0;
|
|
1180
1218
|
}
|
|
1181
1219
|
|
|
1220
|
+
:where(a, button) .logo {
|
|
1221
|
+
/* motion */
|
|
1222
|
+
cursor: pointer;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1182
1225
|
.logo__symbol {
|
|
1183
1226
|
/* size */
|
|
1184
1227
|
display: block;
|
|
@@ -2114,18 +2157,18 @@
|
|
|
2114
2157
|
/* src/components/tag/tag.css */
|
|
2115
2158
|
.tag {
|
|
2116
2159
|
/* color */
|
|
2117
|
-
--tag-bg: var(--color-
|
|
2118
|
-
--tag-text: var(--color-
|
|
2160
|
+
--tag-bg: var(--color-semi-good);
|
|
2161
|
+
--tag-text: var(--color-text-control);
|
|
2119
2162
|
|
|
2120
2163
|
background: var(--tag-bg);
|
|
2121
2164
|
color: var(--tag-text);
|
|
2122
2165
|
|
|
2123
2166
|
/* typography */
|
|
2124
|
-
--tag-font-family: var(--
|
|
2125
|
-
--tag-font-weight: var(--
|
|
2126
|
-
--tag-font-size: var(--
|
|
2127
|
-
--tag-line-height: var(--
|
|
2128
|
-
--tag-letter-spacing: var(--
|
|
2167
|
+
--tag-font-family: var(--font-note-family);
|
|
2168
|
+
--tag-font-weight: var(--font-note-weight);
|
|
2169
|
+
--tag-font-size: var(--font-note-size);
|
|
2170
|
+
--tag-line-height: var(--font-note-line-height);
|
|
2171
|
+
--tag-letter-spacing: var(--font-note-letter-spacing);
|
|
2129
2172
|
|
|
2130
2173
|
font-family: var(--tag-font-family);
|
|
2131
2174
|
font-size: var(--tag-font-size);
|
|
@@ -2136,8 +2179,8 @@
|
|
|
2136
2179
|
/* size */
|
|
2137
2180
|
--tag-gap: 0;
|
|
2138
2181
|
--tag-height: auto;
|
|
2139
|
-
--tag-padding-x: var(--
|
|
2140
|
-
--tag-padding-y: var(--
|
|
2182
|
+
--tag-padding-x: var(--padding-tag-horz);
|
|
2183
|
+
--tag-padding-y: var(--padding-tag-vert);
|
|
2141
2184
|
|
|
2142
2185
|
display: inline-flex;
|
|
2143
2186
|
align-items: center;
|
|
@@ -2147,11 +2190,11 @@
|
|
|
2147
2190
|
|
|
2148
2191
|
/* border */
|
|
2149
2192
|
--tag-border-width: 0;
|
|
2150
|
-
--tag-border-radius: var(--
|
|
2193
|
+
--tag-border-radius: var(--radius-control);
|
|
2151
2194
|
--tag-border-color: transparent;
|
|
2152
2195
|
|
|
2153
|
-
border:
|
|
2154
|
-
border-radius: var(--
|
|
2196
|
+
border: none;
|
|
2197
|
+
border-radius: var(--radius-control);
|
|
2155
2198
|
outline: none;
|
|
2156
2199
|
|
|
2157
2200
|
/* depth */
|
|
@@ -2193,11 +2236,11 @@
|
|
|
2193
2236
|
}
|
|
2194
2237
|
|
|
2195
2238
|
.tag--context-error {
|
|
2196
|
-
--tag-bg: var(--color-
|
|
2239
|
+
--tag-bg: var(--color-bad);
|
|
2197
2240
|
}
|
|
2198
2241
|
|
|
2199
2242
|
.tag--context-warning {
|
|
2200
|
-
--tag-bg: var(--color-
|
|
2243
|
+
--tag-bg: var(--color-med);
|
|
2201
2244
|
}
|
|
2202
2245
|
|
|
2203
2246
|
/* src/components/textarea/textarea.css */
|
package/themes/base/desktop.css
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
:root {
|
|
2
|
+
--color-alt: #FFFFFF;
|
|
3
|
+
--color-bad: var(--color-primary-2);
|
|
2
4
|
--color-bg: #191A1A;
|
|
3
5
|
--color-bg-container: var(--color-primary-1);
|
|
4
6
|
--color-bg-contrast: #FFFFFF;
|
|
@@ -8,23 +10,26 @@
|
|
|
8
10
|
--color-bg-true-black: #000000;
|
|
9
11
|
--color-contrast: #FFFFFF;
|
|
10
12
|
--color-control: #FFFFFF;
|
|
13
|
+
--color-good: var(--color-primary-1);
|
|
11
14
|
--color-line: #FFFFFF;
|
|
12
|
-
--color-line-bad: var(--color-primary-2);
|
|
13
15
|
--color-line-contrast: #000000;
|
|
14
|
-
--color-line-good: var(--color-primary-1);
|
|
15
16
|
--color-line-grid: #3E3F40;
|
|
16
|
-
--color-line-med: #FF7300;
|
|
17
|
-
--color-line-semi-bad: #FF4000;
|
|
18
|
-
--color-line-semi-good: #FFBF00;
|
|
19
17
|
--color-link: var(--color-primary-2);
|
|
20
18
|
--color-link-visited: var(--color-primary-2);
|
|
19
|
+
--color-med: #FF7300;
|
|
21
20
|
--color-primary-1: #F9EC0E;
|
|
22
21
|
--color-primary-2: #FA4691;
|
|
23
22
|
--color-secondary: #FFFFFF;
|
|
23
|
+
--color-semi-bad: #FF4000;
|
|
24
|
+
--color-semi-good: #FFBF00;
|
|
24
25
|
--color-text: #FFFFFF;
|
|
26
|
+
--color-text-alt: var(--color-alt);
|
|
27
|
+
--color-text-bad: var(--color-bad);
|
|
25
28
|
--color-text-container: #000000;
|
|
26
29
|
--color-text-contrast: #000000;
|
|
27
30
|
--color-text-control: #000000;
|
|
31
|
+
--color-text-good: var(--color-good);
|
|
32
|
+
--color-text-med: var(--color-med);
|
|
28
33
|
--color-text-note: #BABDBF;
|
|
29
34
|
--color-text-primary-1: #000000;
|
|
30
35
|
--color-text-primary-2: #FFFFFF;
|
|
@@ -109,8 +114,6 @@
|
|
|
109
114
|
--margin-menu: 20px;
|
|
110
115
|
--margin-popup: 0px;
|
|
111
116
|
--margin-tab: var(--margin-menu);
|
|
112
|
-
--margin-tag-horz: 8px;
|
|
113
|
-
--margin-tag-vert: 4px;
|
|
114
117
|
--margin-tooltip: 0px;
|
|
115
118
|
--motion-duration1: 0px;
|
|
116
119
|
--padding-arrow: 0px;
|
|
@@ -129,6 +132,8 @@
|
|
|
129
132
|
--padding-table-horz: 0px;
|
|
130
133
|
--padding-table-vert: 0px;
|
|
131
134
|
--padding-tag: 4px;
|
|
135
|
+
--padding-tag-horz: 8px;
|
|
136
|
+
--padding-tag-vert: 4px;
|
|
132
137
|
--radius-base: 84px;
|
|
133
138
|
--radius-circle: 300px;
|
|
134
139
|
--radius-container: 30px;
|