@snack-uikit/color-picker 0.3.51-preview-d1ce0cc3.0 → 0.3.52
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
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## <small>0.3.52 (2026-02-18)</small>
|
|
7
|
+
|
|
8
|
+
### Only dependencies have been changed
|
|
9
|
+
* [@snack-uikit/icons@0.27.6]($PUBLIC_PROJECT_URL/blob/master/packages/icons/CHANGELOG.md)
|
|
10
|
+
* [@snack-uikit/input-private@4.8.7]($PUBLIC_PROJECT_URL/blob/master/packages/input-private/CHANGELOG.md)
|
|
11
|
+
* [@snack-uikit/segmented-control@0.6.17]($PUBLIC_PROJECT_URL/blob/master/packages/segmented-control/CHANGELOG.md)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## <small>0.3.51 (2026-01-19)</small>
|
|
18
|
+
|
|
19
|
+
* docs(FF-7788): readme update ([e3142b8](https://github.com/cloud-ru-tech/snack-uikit/commit/e3142b8))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
## <small>0.3.50 (2025-12-01)</small>
|
|
7
26
|
|
|
8
27
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -5,7 +5,50 @@
|
|
|
5
5
|
|
|
6
6
|
[Changelog](./CHANGELOG.md)
|
|
7
7
|
|
|
8
|
+
## Description
|
|
8
9
|
|
|
10
|
+
- Пакет `@snack-uikit/color-picker` предоставляет компонент `ColorPicker` для выбора цвета с визуальным палитр-пикером и текстовыми полями для ручного ввода значений.
|
|
11
|
+
- Поддерживает три цветовые модели: **HEX**, **RGB** и **HSV**, между которыми можно переключаться через `SegmentedControl`.
|
|
12
|
+
- Работает с альфа-каналом (`withAlpha`): при включённом режиме позволяет управлять прозрачностью цвета.
|
|
13
|
+
- Поддерживает два режима применения изменений: **автоматический** (`autoApply={true}`) — изменения применяются сразу при выборе цвета, и **ручной** (`autoApply={false}`) — изменения применяются по кнопке "Применить", с возможностью отмены через кнопку "Отмена".
|
|
14
|
+
- Позволяет настраивать доступные цветовые модели через проп `colorMode`, скрывая ненужные варианты (например, только HEX и RGB).
|
|
15
|
+
- Визуальный палитр-пикер автоматически подстраивается под выбранную цветовую модель и режим работы с альфа-каналом.
|
|
16
|
+
- При выборе цвета в HEX-режиме компонент валидирует введённое значение и показывает ошибку при некорректном формате.
|
|
17
|
+
- Конвертирует значения между различными цветовыми моделями и предоставляет полную информацию о выбранном цвете в формате `RawColor` (hex, rgb, rgba, hsl, hsla, hsv, hsva).
|
|
18
|
+
- Figma: [`ColorPicker`](https://www.figma.com/design/jtGxAPvFJOMir7V0eQFukN/branch/Rq5wXgsa8hopMLIL5iXxN2/Snack-UI-Kit-4.0.0?node-id=10776-174&node-type=canvas&m=dev).
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { ColorPicker, RawColor } from '@snack-uikit/color-picker';
|
|
24
|
+
import { useState } from 'react';
|
|
25
|
+
|
|
26
|
+
function Example() {
|
|
27
|
+
const [color, setColor] = useState<string>('#000000');
|
|
28
|
+
const [rawValue, setRawValue] = useState<RawColor>({} as RawColor);
|
|
29
|
+
|
|
30
|
+
const handleChange = (rawColor: Partial<RawColor>) => {
|
|
31
|
+
if (rawColor.hex) {
|
|
32
|
+
setColor(rawColor.hex);
|
|
33
|
+
}
|
|
34
|
+
setRawValue(rawColor as RawColor);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<ColorPicker
|
|
39
|
+
value={color}
|
|
40
|
+
onChange={handleChange}
|
|
41
|
+
withAlpha={true}
|
|
42
|
+
autoApply={false}
|
|
43
|
+
colorMode={{
|
|
44
|
+
hex: true,
|
|
45
|
+
rgb: true,
|
|
46
|
+
hsv: true,
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
```
|
|
9
52
|
|
|
10
53
|
[//]: DOCUMENTATION_SECTION_START
|
|
11
54
|
[//]: THIS_SECTION_IS_AUTOGENERATED_PLEASE_DONT_EDIT_IT
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
.container{
|
|
2
2
|
background-color:var(--sys-neutral-background1-level, #fdfdfd);
|
|
3
3
|
border-color:var(--sys-neutral-decor-default, #dde0ea);
|
|
4
|
-
position:relative;
|
|
5
|
-
display:flex;
|
|
6
|
-
align-items:center;
|
|
7
|
-
justify-content:space-between;
|
|
8
|
-
box-sizing:border-box;
|
|
9
|
-
min-width:52px;
|
|
10
|
-
border-style:solid;
|
|
11
4
|
}
|
|
12
5
|
.container:hover{
|
|
13
6
|
background-color:var(--sys-neutral-background2-level, #ffffff);
|
|
@@ -21,6 +14,15 @@
|
|
|
21
14
|
border-color:var(--sys-primary-accent-default, #389f74);
|
|
22
15
|
outline-color:var(--sys-primary-decor-activated, #99d7ba);
|
|
23
16
|
}
|
|
17
|
+
.container{
|
|
18
|
+
position:relative;
|
|
19
|
+
display:flex;
|
|
20
|
+
align-items:center;
|
|
21
|
+
justify-content:space-between;
|
|
22
|
+
box-sizing:border-box;
|
|
23
|
+
min-width:52px;
|
|
24
|
+
border-style:solid;
|
|
25
|
+
}
|
|
24
26
|
.container[data-validation=error]{
|
|
25
27
|
background-color:var(--sys-red-background1-level, #fef6f3);
|
|
26
28
|
border-color:var(--sys-red-decor-default, #fdd6cd);
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
.container{
|
|
2
2
|
background-color:var(--sys-neutral-background1-level, #fdfdfd);
|
|
3
3
|
border-color:var(--sys-neutral-decor-default, #dde0ea);
|
|
4
|
-
position:relative;
|
|
5
|
-
display:flex;
|
|
6
|
-
align-items:center;
|
|
7
|
-
justify-content:space-between;
|
|
8
|
-
box-sizing:border-box;
|
|
9
|
-
min-width:52px;
|
|
10
|
-
border-style:solid;
|
|
11
4
|
}
|
|
12
5
|
.container:hover{
|
|
13
6
|
background-color:var(--sys-neutral-background2-level, #ffffff);
|
|
@@ -21,6 +14,15 @@
|
|
|
21
14
|
border-color:var(--sys-primary-accent-default, #389f74);
|
|
22
15
|
outline-color:var(--sys-primary-decor-activated, #99d7ba);
|
|
23
16
|
}
|
|
17
|
+
.container{
|
|
18
|
+
position:relative;
|
|
19
|
+
display:flex;
|
|
20
|
+
align-items:center;
|
|
21
|
+
justify-content:space-between;
|
|
22
|
+
box-sizing:border-box;
|
|
23
|
+
min-width:52px;
|
|
24
|
+
border-style:solid;
|
|
25
|
+
}
|
|
24
26
|
.container[data-validation=error]{
|
|
25
27
|
background-color:var(--sys-red-background1-level, #fef6f3);
|
|
26
28
|
border-color:var(--sys-red-decor-default, #fdd6cd);
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Color Picker",
|
|
7
|
-
"version": "0.3.
|
|
7
|
+
"version": "0.3.52",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -36,16 +36,16 @@
|
|
|
36
36
|
"license": "Apache-2.0",
|
|
37
37
|
"scripts": {},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@snack-uikit/button": "0.19.
|
|
40
|
-
"@snack-uikit/icons": "0.27.
|
|
41
|
-
"@snack-uikit/input-private": "4.8.
|
|
42
|
-
"@snack-uikit/segmented-control": "0.6.
|
|
43
|
-
"@snack-uikit/utils": "4.0.
|
|
39
|
+
"@snack-uikit/button": "0.19.17",
|
|
40
|
+
"@snack-uikit/icons": "0.27.6",
|
|
41
|
+
"@snack-uikit/input-private": "4.8.7",
|
|
42
|
+
"@snack-uikit/segmented-control": "0.6.17",
|
|
43
|
+
"@snack-uikit/utils": "4.0.1",
|
|
44
44
|
"classnames": "2.5.1",
|
|
45
45
|
"react-colorful": "5.6.1"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"@snack-uikit/locale": "*"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "17b72086167d3d6503e4e74142358765230478c8"
|
|
51
51
|
}
|