@withlayers/components.checkbox-control 0.3.1 → 0.5.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/dist/index.css CHANGED
@@ -1 +1 @@
1
- .checkbox-control{block-size:var(--l--theme--checkbox-control--size);border-radius:var(--l--theme--checkbox-control--border--radius);display:grid;inline-size:var(--l--theme--checkbox-control--size);--color--background: var(--l--theme--color--interactive--background--on-default--rest);--color--border: var(--l--theme--color--interactive--border--on-default--rest);--color--content: transparent;background-color:var(--color--background)}.checkbox-control input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.checkbox-control input[type=checkbox]{block-size:var(--l--theme--checkbox-control--size);border-radius:var(--l--theme--checkbox-control--border--radius);border-style:var(--l--theme--checkbox-control--border--style);border-width:var(--l--theme--checkbox-control--border--width);grid-area:1 / 1;inline-size:var(--l--theme--checkbox-control--size)}.checkbox-control:after{block-size:var(--l--theme--checkbox-control--size);border-radius:var(--l--theme--checkbox-control--border--radius);clip-path:polygon(83.325% 33.35%,41.675% 75%,16.667% 49.9925%,22.5586% 44.0679%,41.675% 63.2167%,77.425% 27.4083%,83.325% 33.35%);content:"";grid-area:1 / 1;inline-size:var(--l--theme--checkbox-control--size);pointer-events:none}.checkbox-control input[type=checkbox]{background-color:transparent;border-color:var(--color--border)}.checkbox-control:after{background-color:var(--color--content)}.checkbox-control:has(input[type=checkbox]:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--focus);--color--border: var(--l--theme--color--interactive--border--on-default--focus)}.checkbox-control:has(input[type=checkbox]:hover){--color--background: var(--l--theme--color--interactive--background--on-default--hover);--color--border: var(--l--theme--color--interactive--border--on-default--hover)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]){--color--background: var(--l--theme--color--interactive--background--on-default--invalid--rest);--color--border: var(--l--theme--color--interactive--border--on-default--invalid--rest)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--invalid--focus);--color--border: var(--l--theme--color--interactive--border--on-default--invalid--focus)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:hover){--color--background: var(--l--theme--color--interactive--background--on-default--invalid--hover);--color--border: var(--l--theme--color--interactive--border--on-default--invalid--hover)}.checkbox-control:has(input[type=checkbox]:checked){--color--background: var(--l--theme--color--interactive--background--on-default--checked--rest);--color--border: var(--l--theme--color--interactive--border--on-default--checked--rest);--color--content: var(--l--theme--color--interactive--content--on-default--checked--rest)}.checkbox-control:has(input[type=checkbox]:checked:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--checked--focus);--color--border: var(--l--theme--color--interactive--border--on-default--checked--focus);--color--content: var(--l--theme--color--interactive--content--on-default--checked--focus)}.checkbox-control:has(input[type=checkbox]:checked:hover){--color--background: var(--l--theme--color--interactive--background--on-default--checked--hover);--color--border: var(--l--theme--color--interactive--border--on-default--checked--hover);--color--content: var(--l--theme--color--interactive--content--on-default--checked--hover)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:checked){--color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--rest);--color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--rest);--color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--rest)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:checked:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--focus);--color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--focus);--color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--focus)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:checked:hover){--color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--hover);--color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--hover);--color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--hover)}.checkbox-control:has(input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked){--color--background: var(--l--theme--color--interactive--background--on-default--disabled);--color--border: var(--l--theme--color--interactive--border--on-default--disabled)}.checkbox-control:has(input[type=checkbox]:disabled:checked){--color--content: var(--l--theme--color--interactive--content--on-default--disabled)}
1
+ .checkbox-control input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.checkbox-control{block-size:var(--l--theme--checkbox-control--size);border-radius:var(--l--theme--checkbox-control--border--radius);display:grid;inline-size:var(--l--theme--checkbox-control--size)}.checkbox-control input[type=checkbox]{block-size:var(--l--theme--checkbox-control--size);border-radius:var(--l--theme--checkbox-control--border--radius);border-style:var(--l--theme--checkbox-control--border--style);border-width:var(--l--theme--checkbox-control--border--width);grid-area:1 / 1;inline-size:var(--l--theme--checkbox-control--size)}.checkbox-control:after{block-size:var(--l--theme--checkbox-control--size);border-radius:var(--l--theme--checkbox-control--border--radius);clip-path:polygon(83.325% 33.35%,41.675% 75%,16.667% 49.9925%,22.5586% 44.0679%,41.675% 63.2167%,77.425% 27.4083%,83.325% 33.35%);content:"";grid-area:1 / 1;inline-size:var(--l--theme--checkbox-control--size);pointer-events:none}.checkbox-control{--color--background: var(--l--theme--color--interactive--background--on-default--rest);--color--border: var(--l--theme--color--interactive--border--on-default--rest);--color--content: transparent;background-color:var(--color--background)}.checkbox-control input[type=checkbox]{background-color:transparent;border-color:var(--color--border)}.checkbox-control:after{background-color:var(--color--content)}.checkbox-control:has(input[type=checkbox]:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--focus);--color--border: var(--l--theme--color--interactive--border--on-default--focus)}.checkbox-control:has(input[type=checkbox]:hover){--color--background: var(--l--theme--color--interactive--background--on-default--hover);--color--border: var(--l--theme--color--interactive--border--on-default--hover)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]){--color--background: var(--l--theme--color--interactive--background--on-default--invalid--rest);--color--border: var(--l--theme--color--interactive--border--on-default--invalid--rest)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--invalid--focus);--color--border: var(--l--theme--color--interactive--border--on-default--invalid--focus)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:hover){--color--background: var(--l--theme--color--interactive--background--on-default--invalid--hover);--color--border: var(--l--theme--color--interactive--border--on-default--invalid--hover)}.checkbox-control:has(input[type=checkbox]:checked){--color--background: var(--l--theme--color--interactive--background--on-default--checked--rest);--color--border: var(--l--theme--color--interactive--border--on-default--checked--rest);--color--content: var(--l--theme--color--interactive--content--on-default--checked--rest)}.checkbox-control:has(input[type=checkbox]:checked:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--checked--focus);--color--border: var(--l--theme--color--interactive--border--on-default--checked--focus);--color--content: var(--l--theme--color--interactive--content--on-default--checked--focus)}.checkbox-control:has(input[type=checkbox]:checked:hover){--color--background: var(--l--theme--color--interactive--background--on-default--checked--hover);--color--border: var(--l--theme--color--interactive--border--on-default--checked--hover);--color--content: var(--l--theme--color--interactive--content--on-default--checked--hover)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:checked){--color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--rest);--color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--rest);--color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--rest)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:checked:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--focus);--color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--focus);--color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--focus)}.checkbox-control:has(input[type=checkbox][aria-invalid=true]:checked:hover){--color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--hover);--color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--hover);--color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--hover)}.checkbox-control:has(input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked){--color--background: var(--l--theme--color--interactive--background--on-default--disabled);--color--border: var(--l--theme--color--interactive--border--on-default--disabled)}.checkbox-control:has(input[type=checkbox]:disabled:checked){--color--content: var(--l--theme--color--interactive--content--on-default--disabled)}
@@ -0,0 +1,142 @@
1
+ @define-mixin checkbox-control-core {
2
+ & input[type='checkbox'] {
3
+ appearance: none;
4
+ }
5
+ }
6
+
7
+ @define-mixin checkbox-control-shape {
8
+ block-size: var(--l--theme--checkbox-control--size);
9
+ border-radius: var(--l--theme--checkbox-control--border--radius);
10
+ display: grid;
11
+ inline-size: var(--l--theme--checkbox-control--size);
12
+
13
+ & input[type='checkbox'] {
14
+ block-size: var(--l--theme--checkbox-control--size);
15
+ border-radius: var(--l--theme--checkbox-control--border--radius);
16
+ border-style: var(--l--theme--checkbox-control--border--style);
17
+ border-width: var(--l--theme--checkbox-control--border--width);
18
+ grid-area: 1 / 1;
19
+ inline-size: var(--l--theme--checkbox-control--size);
20
+ }
21
+
22
+ &::after {
23
+ block-size: var(--l--theme--checkbox-control--size);
24
+ border-radius: var(--l--theme--checkbox-control--border--radius);
25
+ clip-path: polygon(
26
+ 83.325% 33.35%,
27
+ 41.675% 75%,
28
+ 16.667% 49.9925%,
29
+ 22.5586% 44.0679%,
30
+ 41.675% 63.2167%,
31
+ 77.425% 27.4083%,
32
+ 83.325% 33.35%
33
+ );
34
+ content: '';
35
+ grid-area: 1 / 1;
36
+ inline-size: var(--l--theme--checkbox-control--size);
37
+ pointer-events: none;
38
+ }
39
+ }
40
+
41
+ @define-mixin checkbox-control-color {
42
+ --color--background: var(--l--theme--color--interactive--background--on-default--rest);
43
+ --color--border: var(--l--theme--color--interactive--border--on-default--rest);
44
+ --color--content: transparent;
45
+
46
+ /* Rest */
47
+ background-color: var(--color--background);
48
+
49
+ & input[type='checkbox'] {
50
+ background-color: transparent;
51
+ border-color: var(--color--border);
52
+ }
53
+
54
+ &::after {
55
+ background-color: var(--color--content);
56
+ }
57
+
58
+ /* Focus */
59
+ &:has(input[type='checkbox']:focus-visible) {
60
+ --color--background: var(--l--theme--color--interactive--background--on-default--focus);
61
+ --color--border: var(--l--theme--color--interactive--border--on-default--focus);
62
+ }
63
+
64
+ /* Hover */
65
+ &:has(input[type='checkbox']:hover) {
66
+ --color--background: var(--l--theme--color--interactive--background--on-default--hover);
67
+ --color--border: var(--l--theme--color--interactive--border--on-default--hover);
68
+ }
69
+
70
+ /* Invalid: Rest */
71
+ &:has(input[type='checkbox'][aria-invalid='true']) {
72
+ --color--background: var(--l--theme--color--interactive--background--on-default--invalid--rest);
73
+ --color--border: var(--l--theme--color--interactive--border--on-default--invalid--rest);
74
+ }
75
+
76
+ /* Invalid: Focus */
77
+ &:has(input[type='checkbox'][aria-invalid='true']:focus-visible) {
78
+ --color--background: var(--l--theme--color--interactive--background--on-default--invalid--focus);
79
+ --color--border: var(--l--theme--color--interactive--border--on-default--invalid--focus);
80
+ }
81
+
82
+ /* Invalid: Hover */
83
+ &:has(input[type='checkbox'][aria-invalid='true']:hover) {
84
+ --color--background: var(--l--theme--color--interactive--background--on-default--invalid--hover);
85
+ --color--border: var(--l--theme--color--interactive--border--on-default--invalid--hover);
86
+ }
87
+
88
+ /* Checked: Rest */
89
+ &:has(input[type='checkbox']:checked) {
90
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--rest);
91
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--rest);
92
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--rest);
93
+ }
94
+
95
+ /* Checked: Focus */
96
+ &:has(input[type='checkbox']:checked:focus-visible) {
97
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--focus);
98
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--focus);
99
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--focus);
100
+ }
101
+
102
+ /* Checked: Hover */
103
+ &:has(input[type='checkbox']:checked:hover) {
104
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--hover);
105
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--hover);
106
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--hover);
107
+ }
108
+
109
+ /* Checked: Invalid: Rest */
110
+ &:has(input[type='checkbox'][aria-invalid='true']:checked) {
111
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--rest);
112
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--rest);
113
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--rest);
114
+ }
115
+
116
+ /* Checked: Invalid: Focus */
117
+ &:has(input[type='checkbox'][aria-invalid='true']:checked:focus-visible) {
118
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--focus);
119
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--focus);
120
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--focus);
121
+ }
122
+
123
+ /* Checked: Invalid: Hover */
124
+ &:has(input[type='checkbox'][aria-invalid='true']:checked:hover) {
125
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--invalid--hover);
126
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--invalid--hover);
127
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--invalid--hover);
128
+ }
129
+
130
+ /* Disabled */
131
+ &:has(
132
+ input[type='checkbox']:disabled,
133
+ input[type='checkbox']:disabled:checked
134
+ ) {
135
+ --color--background: var(--l--theme--color--interactive--background--on-default--disabled);
136
+ --color--border: var(--l--theme--color--interactive--border--on-default--disabled);
137
+ }
138
+
139
+ &:has(input[type='checkbox']:disabled:checked) {
140
+ --color--content: var(--l--theme--color--interactive--content--on-default--disabled);
141
+ }
142
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "checkbox-control": {
3
+ "$level": "component",
4
+ "border": {
5
+ "$level": "category",
6
+ "style": {
7
+ "$level": "property",
8
+ "value": "{border.style.solid}"
9
+ },
10
+ "width": {
11
+ "$level": "property",
12
+ "value": "{border.width.sm}"
13
+ },
14
+ "radius": {
15
+ "$level": "property",
16
+ "value": "{border.radius.md}"
17
+ }
18
+ },
19
+ "size": {
20
+ "$level": "property",
21
+ "value": {
22
+ "type": "fluid",
23
+ "min": {
24
+ "value": "1.3125rem",
25
+ "breakpoint": {
26
+ "value": "{breakpoint.xs}"
27
+ }
28
+ },
29
+ "max": {
30
+ "value": "{units.24}",
31
+ "breakpoint": {
32
+ "value": "{breakpoint.xl}"
33
+ }
34
+ },
35
+ "root": {
36
+ "value": "{typography.font-size.root}"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@withlayers/components.checkbox-control",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "Checkbox control component",
5
5
  "license": "MIT",
6
6
  "author": "Dmitry Mayorov",
7
7
  "type": "module",
8
8
  "main": "dist/index.css",
9
9
  "exports": {
10
- ".": "./dist/index.css"
10
+ ".": "./dist/index.css",
11
+ "./mixins": "./dist/mixins.css",
12
+ "./tokens": "./dist/tokens.json"
11
13
  },
12
14
  "files": [
13
15
  "dist"
@@ -19,9 +21,11 @@
19
21
  "lint:css:fix": "stylelint \"src/**/*.css\" --fix"
20
22
  },
21
23
  "dependencies": {
22
- "@withlayers/mixins": "0.12.0",
23
- "@withlayers/tokens": "0.17.0",
24
- "clsx": "^2.1.1",
25
- "postcss-mixins": "^11.0.3"
24
+ "@withlayers/mixins": "0.13.1",
25
+ "@withlayers/tokens": "0.19.0"
26
+ },
27
+ "devDependencies": {
28
+ "postcss-mixins": "^11.0.3",
29
+ "postcss-nested": "^7.0.2"
26
30
  }
27
31
  }