@koslibs/components 0.0.0 → 1.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/CHANGELOG.md +42 -0
- package/README.md +45 -14
- package/dist/components/Button/button.d.ts +67 -0
- package/dist/components/Button/button.js +88 -0
- package/dist/components/Button/colors.module.js +14 -0
- package/dist/components/Button/colors_module.css +164 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.js +1 -0
- package/dist/components/Button/index.module.js +30 -0
- package/dist/components/Button/index_module.css +243 -0
- package/dist/components/Button/vars.css +24 -0
- package/dist/components/Spinner/colors.module.js +5 -0
- package/dist/components/Spinner/colors_module.css +6 -0
- package/dist/components/Spinner/index.d.ts +2 -0
- package/dist/components/Spinner/index.js +1 -0
- package/dist/components/Spinner/index.module.js +9 -0
- package/dist/components/Spinner/index_module.css +29 -0
- package/dist/components/Spinner/preset.module.js +7 -0
- package/dist/components/Spinner/preset_module.css +12 -0
- package/dist/components/Spinner/spinner.d.ts +31 -0
- package/dist/components/Spinner/spinner.js +80 -0
- package/dist/components/Spinner/vars.css +7 -0
- package/dist/components/Typography/colors.module.js +10 -0
- package/dist/components/Typography/colors_module.css +26 -0
- package/dist/components/Typography/index.d.ts +34 -0
- package/dist/components/Typography/index.js +7 -0
- package/dist/components/Typography/index.module.js +18 -0
- package/dist/components/Typography/index_module.css +57 -0
- package/dist/components/Typography/preset.module.js +30 -0
- package/dist/components/Typography/preset_module.css +54 -0
- package/dist/components/Typography/shared.d.ts +63 -0
- package/dist/components/Typography/shared.js +10 -0
- package/dist/components/Typography/text.d.ts +15 -0
- package/dist/components/Typography/text.js +18 -0
- package/dist/components/Typography/title.d.ts +15 -0
- package/dist/components/Typography/title.js +18 -0
- package/dist/components/Typography/vars.css +27 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +3 -0
- package/dist/static/font/inter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/static/font/inter-cyrillic-wght-normal.woff2 +0 -0
- package/dist/static/font/inter-greek-ext-wght-normal.woff2 +0 -0
- package/dist/static/font/inter-greek-wght-normal.woff2 +0 -0
- package/dist/static/font/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/static/font/inter-latin-wght-normal.woff2 +0 -0
- package/dist/static/font/inter-vietnamese-wght-normal.woff2 +0 -0
- package/dist/styles/fonts/inter/LICENSE.txt +93 -0
- package/dist/styles/fonts.css +63 -0
- package/dist/styles/theme.css +8 -0
- package/package.json +7 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
1
|
# @koslibs/components
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2](https://github.com/koslibs/components/pull/2) [`b09aeff`](https://github.com/koslibs/components/commit/b09aeffe06d9267aad1f689deb91a19412ff8448) Thanks [@holypower777](https://github.com/holypower777)! - Добавлен публичный Typography из GullEye: Text и Title, типы, CSS Modules,
|
|
8
|
+
Docs и Playground. Импорт из `@koslibs/components/Typography` подключает
|
|
9
|
+
только Typography и его стили.
|
|
10
|
+
|
|
11
|
+
Исправлены отступы содержимого вкладок Docs и сдвиг страницы при появлении
|
|
12
|
+
или исчезновении полосы прокрутки.
|
|
13
|
+
|
|
14
|
+
Закреплены правила историй компонентов: запись добавляется только для изменённого
|
|
15
|
+
компонента; общие изменения инфраструктуры и Storybook описываются в истории пакета.
|
|
16
|
+
|
|
17
|
+
Добавлена общая тема с `--font-primary: 'Inter', sans-serif` и локальными
|
|
18
|
+
WOFF2-файлами Inter. Typography и подпись Button подключают её автоматически;
|
|
19
|
+
приложение может переопределить семейство шрифта через CSS.
|
|
20
|
+
|
|
21
|
+
## 1.0.0
|
|
22
|
+
|
|
23
|
+
### Major Changes
|
|
24
|
+
|
|
25
|
+
- [#1](https://github.com/koslibs/components/pull/1) [`8954b64`](https://github.com/koslibs/components/commit/8954b64becb19165000479731114463317438bcd) Thanks [@holypower777](https://github.com/holypower777)! - Первый стабильный выпуск 1.0.0 с Button и Spinner, перенесёнными из core-components GullEye.
|
|
26
|
+
|
|
27
|
+
Компонент доступен через `import { Button } from '@koslibs/components/Button'` вместе с типом ButtonProps. Поддерживает шесть вариантов оформления, размеры 32–72, формы rectangular и rounded, левый и правый аддоны, подпись, полную ширину, disabled и loading. Сохранены ref, стандартные HTML-атрибуты и минимальное время отображения загрузки 500 мс.
|
|
28
|
+
|
|
29
|
+
Spinner доступен отдельно через `import { Spinner } from '@koslibs/components/Spinner'` вместе с типом SpinnerProps. Поддерживает размеры 16, 24 и 48, управление видимостью, настройку цвета через style.color, className, id и dataTestId. Button использует этот же публичный Spinner для отображения загрузки.
|
|
30
|
+
|
|
31
|
+
CSS Modules подключаются вместе с используемыми компонентами. Добавлены значения по умолчанию для CSS-переменных размеров, скруглений и шрифтов, чтобы компоненты работали без глобальных стилей GullEye. Отдельный импорт Spinner не включает Button и его стили. Для обоих компонентов в Storybook доступны Docs и Playground.
|
|
32
|
+
|
|
33
|
+
Docs каждого компонента разделены на вкладки «Документация», «Разработчику» и «Обновления». Во вкладке разработчика доступны публичный импорт, Props и CSS-переменные из исходных стилей; обновления отображают CHANGELOG конкретного компонента.
|
|
34
|
+
|
|
35
|
+
Проверка отдельных импортов разделена на общий fixture и декларативные сценарии: JS и типы всех публичных компонентов проверяются автоматически, библиотека собирается один раз, а выбранные production-потребители — одним запуском builder в независимых environments с общей установленной копией пакета и отдельными выходными папками.
|
|
36
|
+
|
|
37
|
+
## 0.1.0
|
|
38
|
+
|
|
39
|
+
### Minor Changes
|
|
40
|
+
|
|
41
|
+
- [`ee39a5b`](https://github.com/koslibs/components/commit/ee39a5bb32f94a3a76e4367ec6b14d9cbe4d41b2) Thanks [@holypower777](https://github.com/holypower777)! - Подготовлен каркас @koslibs/components для React 18/19 и TypeScript: сборка ESM, деклараций и CSS Modules через @koslibs/builder@1.0.0, общие настройки и release-инструменты @koslibs/configs@1.0.0, Storybook и workflow деплоя на GitHub Pages.
|
|
42
|
+
|
|
43
|
+
Настроены отдельные импорты вида @koslibs/components/Button. Тест production-сборки проверяет, что в бандл потребителя входят выбранный компонент и его CSS, а независимые соседние компоненты исключаются. Добавлены CI, Changesets и документация по переносу компонентов и ведению их историй изменений. Runtime-компоненты будут перенесены отдельно.
|
|
44
|
+
|
|
3
45
|
Опубликованных версий пока нет. После первого релиза Changesets добавит сюда историю пакета.
|
package/README.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
Демо: <https://koslibs.github.io/components/>
|
|
2
2
|
|
|
3
|
+
## Основной шрифт
|
|
4
|
+
|
|
5
|
+
Библиотека задаёт `--font-primary: 'Inter', sans-serif` в общей теме. Компоненты,
|
|
6
|
+
использующие эту переменную, автоматически подключают тему и локальные WOFF2-файлы
|
|
7
|
+
Inter. Поддерживаются веса 100–900, латиница и кириллица; внешние CDN не используются.
|
|
8
|
+
Браузер загружает нужные языковые поднаборы по `unicode-range`, используется
|
|
9
|
+
`font-display: swap`. Лицензия Inter включена в npm-пакет.
|
|
10
|
+
|
|
11
|
+
Для использования темы в собственных элементах можно подключить её отдельно:
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import '@koslibs/components/theme.css';
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Значение по умолчанию находится в CSS-слое `koslibs`, поэтому обычные стили приложения
|
|
18
|
+
переопределяют его независимо от порядка подключения. Например:
|
|
19
|
+
|
|
20
|
+
```css
|
|
21
|
+
:root {
|
|
22
|
+
--font-primary: 'My App Font', sans-serif;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.alternate-font {
|
|
26
|
+
--font-primary: Georgia, serif;
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Файлы своего шрифта подключите в приложении. Тема задаёт только переменную и
|
|
31
|
+
`@font-face`; она не изменяет шрифт `body` или элементов, которые её не используют.
|
|
32
|
+
|
|
3
33
|
## Добавление компонента
|
|
4
34
|
|
|
5
35
|
Рекомендуемая структура:
|
|
@@ -20,18 +50,18 @@ src/components/Button/
|
|
|
20
50
|
также добавить реэкспорт в `src/index.ts`; отдельный импорт компонента его не использует.
|
|
21
51
|
3. Общий шаблон в `package.json` → `exports` уже связывает каждый компонент с его файлами:
|
|
22
52
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"./*": {
|
|
56
|
+
"types": "./dist/components/*/index.d.ts",
|
|
57
|
+
"import": "./dist/components/*/index.js"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
31
61
|
|
|
32
62
|
4. Добавьте Docs, Playground и `CHANGELOG.md` по [примеру документации](https://github.com/koslibs/components/blob/main/docs/component-changelogs.md).
|
|
33
|
-
5. Добавьте тесты поведения.
|
|
34
|
-
|
|
63
|
+
5. Добавьте тесты поведения. `npm run test:unit` запускает unit-тесты через
|
|
64
|
+
`koslibs-builder lib:test`; `npm test` также проверяет отдельные импорты.
|
|
35
65
|
6. Выполните сборку и проверьте реальные пути JS, деклараций и CSS в `dist`.
|
|
36
66
|
|
|
37
67
|
После публикации предполагается такой импорт:
|
|
@@ -53,10 +83,11 @@ Builder сохраняет отдельные JS-модули и отдельн
|
|
|
53
83
|
|
|
54
84
|
Тест `tests/component-imports.test.mjs` запускается через Node.js test runner командой
|
|
55
85
|
`npm test` (или отдельно `npm run test:imports`) и проверяет схему через builder:
|
|
56
|
-
собирает временную библиотеку с Button
|
|
57
|
-
|
|
58
|
-
Проверка подтверждает наличие Button
|
|
59
|
-
|
|
86
|
+
собирает временную библиотеку с настоящим Button и независимым тестовым Spinner,
|
|
87
|
+
затем приложение с импортом только `@koslibs/components/Button`.
|
|
88
|
+
Проверка подтверждает наличие Button, его внутреннего спиннера загрузки и их CSS
|
|
89
|
+
и отсутствие независимого Spinner в production-бандле.
|
|
90
|
+
Временная библиотека находится в `.cache` и не публикуется.
|
|
60
91
|
|
|
61
92
|
Пакет выпускается в ESM. CSS помечен как side effect, чтобы оптимизация потребителя
|
|
62
93
|
не удаляла стили. Builder сохраняет структуру модулей; Docs, stories и Markdown
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React, { type ButtonHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
type ButtonOwnProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Тип кнопки
|
|
5
|
+
* @default 'primary'
|
|
6
|
+
*/
|
|
7
|
+
view?: 'primary' | 'secondary' | 'accent' | 'outlined' | 'transparent' | 'text';
|
|
8
|
+
/**
|
|
9
|
+
* Скругление кнопки
|
|
10
|
+
* @default 'rectangular'
|
|
11
|
+
*/
|
|
12
|
+
shape?: 'rectangular' | 'rounded';
|
|
13
|
+
/**
|
|
14
|
+
* Размер кнопки
|
|
15
|
+
* @default 40
|
|
16
|
+
*/
|
|
17
|
+
size?: 32 | 40 | 48 | 56 | 64 | 72;
|
|
18
|
+
/**
|
|
19
|
+
* Аддон слева от лейбла
|
|
20
|
+
*/
|
|
21
|
+
leftAddon?: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Аддон справа от лейбла
|
|
24
|
+
*/
|
|
25
|
+
rightAddon?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Подпись под основным текстом
|
|
28
|
+
*/
|
|
29
|
+
hint?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Заставляет кнопку растянуться на ширину контейнера.
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
block?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Показать лоадер
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
loading?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Айди для автотестов.
|
|
42
|
+
*/
|
|
43
|
+
dataTestId?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Дополнительный класс
|
|
46
|
+
*/
|
|
47
|
+
className?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Дополнительный класс для label
|
|
50
|
+
*/
|
|
51
|
+
labelClassName?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Дополнительный класс для hint
|
|
54
|
+
*/
|
|
55
|
+
hintClassName?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Дополнительный класс для спиннера
|
|
58
|
+
*/
|
|
59
|
+
spinnerClassName?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Текст кнопки
|
|
62
|
+
*/
|
|
63
|
+
children?: ReactNode;
|
|
64
|
+
};
|
|
65
|
+
export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & ButtonOwnProps;
|
|
66
|
+
export declare const Button: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & ButtonOwnProps & React.RefAttributes<HTMLButtonElement>>;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classnames from "classnames";
|
|
3
|
+
import react, { forwardRef, useEffect, useRef, useState } from "react";
|
|
4
|
+
import { Spinner } from "../Spinner/index.js";
|
|
5
|
+
import colors_module from "./colors.module.js";
|
|
6
|
+
import index_module from "./index.module.js";
|
|
7
|
+
const Button = /*#__PURE__*/ forwardRef(({ view = 'primary', shape = 'rectangular', size = 40, leftAddon, rightAddon, hint, block = false, loading = false, dataTestId, className, labelClassName, hintClassName, spinnerClassName, children, onClick, ...restProps }, ref)=>{
|
|
8
|
+
const [loaderTimePassed, setLoaderTimePassed] = useState(true);
|
|
9
|
+
const timerId = useRef(0);
|
|
10
|
+
const showLoader = loading || !loaderTimePassed;
|
|
11
|
+
const showHint = hint && [
|
|
12
|
+
56,
|
|
13
|
+
64,
|
|
14
|
+
72
|
|
15
|
+
].includes(size);
|
|
16
|
+
const { disabled, type = 'button', ...restButtonProps } = restProps;
|
|
17
|
+
const buttonChildren = /*#__PURE__*/ jsxs(react.Fragment, {
|
|
18
|
+
children: [
|
|
19
|
+
leftAddon && /*#__PURE__*/ jsx("span", {
|
|
20
|
+
className: index_module.addons,
|
|
21
|
+
children: leftAddon
|
|
22
|
+
}),
|
|
23
|
+
children && /*#__PURE__*/ jsxs("span", {
|
|
24
|
+
className: classnames(index_module.label, labelClassName, {
|
|
25
|
+
[index_module.stretchText]: !(leftAddon || rightAddon)
|
|
26
|
+
}),
|
|
27
|
+
children: [
|
|
28
|
+
children,
|
|
29
|
+
showHint && /*#__PURE__*/ jsx("span", {
|
|
30
|
+
className: classnames(index_module.hint, colors_module.hint, hintClassName),
|
|
31
|
+
children: hint
|
|
32
|
+
})
|
|
33
|
+
]
|
|
34
|
+
}),
|
|
35
|
+
showLoader && /*#__PURE__*/ jsx(Spinner, {
|
|
36
|
+
size: 24,
|
|
37
|
+
dataTestId: dataTestId ? `${dataTestId}-loader` : void 0,
|
|
38
|
+
visible: true,
|
|
39
|
+
className: classnames(index_module.loader, colors_module.loader, spinnerClassName)
|
|
40
|
+
}),
|
|
41
|
+
rightAddon && /*#__PURE__*/ jsx("span", {
|
|
42
|
+
className: index_module.addons,
|
|
43
|
+
children: rightAddon
|
|
44
|
+
})
|
|
45
|
+
]
|
|
46
|
+
});
|
|
47
|
+
useEffect(()=>{
|
|
48
|
+
if (loading) {
|
|
49
|
+
window.clearTimeout(timerId.current);
|
|
50
|
+
setLoaderTimePassed(false);
|
|
51
|
+
timerId.current = window.setTimeout(()=>{
|
|
52
|
+
setLoaderTimePassed(true);
|
|
53
|
+
}, 500);
|
|
54
|
+
}
|
|
55
|
+
}, [
|
|
56
|
+
loading
|
|
57
|
+
]);
|
|
58
|
+
useEffect(()=>()=>{
|
|
59
|
+
window.clearTimeout(timerId.current);
|
|
60
|
+
}, []);
|
|
61
|
+
const handleClick = (e)=>{
|
|
62
|
+
if (disabled || showLoader) {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
e.stopPropagation();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
onClick?.(e);
|
|
68
|
+
};
|
|
69
|
+
return /*#__PURE__*/ jsx("button", {
|
|
70
|
+
...restButtonProps,
|
|
71
|
+
className: classnames(index_module.component, index_module[view], index_module[`size-${size}`], index_module[shape], colors_module.component, colors_module[view], {
|
|
72
|
+
[index_module.block]: block,
|
|
73
|
+
[index_module.loading]: showLoader,
|
|
74
|
+
[index_module.withRightAddon]: Boolean(rightAddon),
|
|
75
|
+
[index_module.withLeftAddon]: Boolean(leftAddon),
|
|
76
|
+
[colors_module.loading]: showLoader
|
|
77
|
+
}, className),
|
|
78
|
+
"data-test-id": dataTestId,
|
|
79
|
+
type: type,
|
|
80
|
+
disabled: disabled || showLoader,
|
|
81
|
+
"aria-busy": showLoader,
|
|
82
|
+
onClick: handleClick,
|
|
83
|
+
ref: ref,
|
|
84
|
+
children: buttonChildren
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
Button.displayName = 'Button';
|
|
88
|
+
export { Button };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import "./colors_module.css";
|
|
2
|
+
const colors_module = {
|
|
3
|
+
primary: "primary-jF1frT",
|
|
4
|
+
secondary: "secondary-em6CEW",
|
|
5
|
+
accent: "accent-cr9M8g",
|
|
6
|
+
transparent: "transparent-osSlaN",
|
|
7
|
+
text: "text-fLOhKS",
|
|
8
|
+
loader: "loader-wrwZSN",
|
|
9
|
+
hint: "hint-JAXcv5",
|
|
10
|
+
outlined: "outlined-xzRrKO",
|
|
11
|
+
component: "component-GmKJmC",
|
|
12
|
+
loading: "loading-LzTYPE"
|
|
13
|
+
};
|
|
14
|
+
export default colors_module;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
@import "./vars.css";
|
|
2
|
+
|
|
3
|
+
.primary-jF1frT, .secondary-em6CEW, .accent-cr9M8g, .transparent-osSlaN, .text-fLOhKS {
|
|
4
|
+
box-shadow: none;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.primary-jF1frT {
|
|
8
|
+
color: var(--button-inverse-color);
|
|
9
|
+
background-color: var(--button-primary-background-color);
|
|
10
|
+
|
|
11
|
+
@media (hover: hover) {
|
|
12
|
+
&:hover {
|
|
13
|
+
background-color: var(--button-primary-hover-background-color);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&:active {
|
|
18
|
+
background-color: var(--button-primary-active-background-color);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
& > .loader-wrwZSN {
|
|
22
|
+
color: var(--button-inverse-color);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&:not([disabled]) .hint-JAXcv5 {
|
|
26
|
+
color: var(--button-inverse-hint-color);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.secondary-em6CEW {
|
|
31
|
+
color: var(--button-default-color);
|
|
32
|
+
background-color: var(--button-secondary-background-color);
|
|
33
|
+
|
|
34
|
+
@media (hover: hover) {
|
|
35
|
+
&:hover {
|
|
36
|
+
background-color: var(--button-secondary-hover-background-color);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&:active {
|
|
41
|
+
background-color: var(--button-secondary-active-background-color);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
& > .loader-wrwZSN {
|
|
45
|
+
color: var(--button-default-color);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:not([disabled]) .hint-JAXcv5 {
|
|
49
|
+
color: var(--button-hint-color);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.accent-cr9M8g {
|
|
54
|
+
color: var(--button-inverse-color);
|
|
55
|
+
background-color: var(--button-accent-background-color);
|
|
56
|
+
|
|
57
|
+
@media (hover: hover) {
|
|
58
|
+
&:hover {
|
|
59
|
+
background-color: var(--button-accent-hover-background-color);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&:active {
|
|
64
|
+
background-color: var(--button-accent-active-background-color);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
& > .loader-wrwZSN {
|
|
68
|
+
color: var(--button-inverse-color);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&:not([disabled]) .hint-JAXcv5 {
|
|
72
|
+
color: var(--button-inverse-hint-color);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.outlined-xzRrKO {
|
|
77
|
+
color: var(--button-default-color);
|
|
78
|
+
box-shadow: inset 0 0 0 1px var(--button-primary-background-color);
|
|
79
|
+
background: none;
|
|
80
|
+
|
|
81
|
+
@media (hover: hover) {
|
|
82
|
+
&:hover {
|
|
83
|
+
background-color: var(--button-subtle-hover-background-color);
|
|
84
|
+
box-shadow: inset 0 0 0 1px var(--button-primary-hover-background-color);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&:active {
|
|
89
|
+
background-color: var(--button-subtle-active-background-color);
|
|
90
|
+
box-shadow: inset 0 0 0 1px var(--button-primary-active-background-color);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
& > .loader-wrwZSN {
|
|
94
|
+
color: var(--button-default-color);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&:not([disabled]) .hint-JAXcv5 {
|
|
98
|
+
color: var(--button-hint-color);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.transparent-osSlaN {
|
|
103
|
+
color: var(--button-default-color);
|
|
104
|
+
background-color: var(--button-transparent-background-color);
|
|
105
|
+
|
|
106
|
+
@media (hover: hover) {
|
|
107
|
+
&:hover {
|
|
108
|
+
background-color: var(--button-subtle-hover-background-color);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&:active {
|
|
113
|
+
background-color: var(--button-subtle-active-background-color);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
& > .loader-wrwZSN {
|
|
117
|
+
color: var(--button-default-color);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
&:not([disabled]) .hint-JAXcv5 {
|
|
121
|
+
color: var(--button-hint-color);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.text-fLOhKS {
|
|
126
|
+
background-color: var(--button-transparent-background-color);
|
|
127
|
+
color: var(--button-default-color);
|
|
128
|
+
|
|
129
|
+
@media (hover: hover) {
|
|
130
|
+
&:hover {
|
|
131
|
+
color: var(--button-text-hover-color);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&:active {
|
|
136
|
+
color: var(--button-text-active-color);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
& > .loader-wrwZSN {
|
|
140
|
+
color: var(--button-default-color);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
&:not([disabled]) .hint-JAXcv5 {
|
|
144
|
+
color: var(--button-hint-color);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.component-GmKJmC[disabled] {
|
|
149
|
+
&:not(.loading-LzTYPE) {
|
|
150
|
+
background-color: var(--button-disabled-background-color);
|
|
151
|
+
color: var(--button-disabled-color);
|
|
152
|
+
box-shadow: none;
|
|
153
|
+
|
|
154
|
+
&.hint-JAXcv5 {
|
|
155
|
+
color: var(--button-disabled-hint-color);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&.transparent-osSlaN, &.text-fLOhKS {
|
|
160
|
+
background-color: var(--button-transparent-background-color);
|
|
161
|
+
color: var(--button-disabled-color);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Button } from "./button.js";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "./index_module.css";
|
|
2
|
+
const index_module = {
|
|
3
|
+
component: "component-vxc0gC",
|
|
4
|
+
"size-32": "size-32-oD8MDp",
|
|
5
|
+
size32: "size-32-oD8MDp",
|
|
6
|
+
"size-40": "size-40-Pu2_h6",
|
|
7
|
+
size40: "size-40-Pu2_h6",
|
|
8
|
+
"size-48": "size-48-U3XIYx",
|
|
9
|
+
size48: "size-48-U3XIYx",
|
|
10
|
+
"size-56": "size-56-P_94sz",
|
|
11
|
+
size56: "size-56-P_94sz",
|
|
12
|
+
"size-64": "size-64-ZlQLt3",
|
|
13
|
+
size64: "size-64-ZlQLt3",
|
|
14
|
+
"size-72": "size-72-zkSrcs",
|
|
15
|
+
size72: "size-72-zkSrcs",
|
|
16
|
+
withRightAddon: "withRightAddon-TNcFTm",
|
|
17
|
+
text: "text-Ifdq0q",
|
|
18
|
+
withLeftAddon: "withLeftAddon-N3YDHw",
|
|
19
|
+
addons: "addons-NxGsiY",
|
|
20
|
+
block: "block-xREK1A",
|
|
21
|
+
rectangular: "rectangular-PFbww7",
|
|
22
|
+
rounded: "rounded-kQqesg",
|
|
23
|
+
loading: "loading-DPEeSl",
|
|
24
|
+
label: "label-gwmTIK",
|
|
25
|
+
stretchText: "stretchText-Nm2RYn",
|
|
26
|
+
hint: "hint-AFu_zz",
|
|
27
|
+
loader: "loader-BRksFP",
|
|
28
|
+
transparent: "transparent-w7vhL3"
|
|
29
|
+
};
|
|
30
|
+
export default index_module;
|