@withlayers/components.radio-control 0.3.1 → 0.4.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
- .radio-control{block-size:var(--l--theme--radio-control--size);border-radius:var(--l--theme--radio-control--border--radius);display:grid;inline-size:var(--l--theme--radio-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)}.radio-control input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.radio-control input[type=radio]{block-size:var(--l--theme--radio-control--size);border-radius:var(--l--theme--radio-control--border--radius);border-style:var(--l--theme--radio-control--border--style);border-width:var(--l--theme--radio-control--border--width);grid-area:1 / 1;inline-size:var(--l--theme--radio-control--size)}.radio-control:after{block-size:var(--l--theme--radio-control--size);border-radius:var(--l--theme--radio-control--border--radius);clip-path:circle(20.83% at 50% 50%);content:"";grid-area:1 / 1;inline-size:var(--l--theme--radio-control--size);pointer-events:none}.radio-control input[type=radio]{border-color:var(--color--border)}.radio-control:after{background-color:var(--color--content)}.radio-control:has(input[type=radio]:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--focus);--color--border: var(--l--theme--color--interactive--border--on-default--focus)}.radio-control:has(input[type=radio]:hover){--color--background: var(--l--theme--color--interactive--background--on-default--hover);--color--border: var(--l--theme--color--interactive--border--on-default--hover)}.radio-control:has(input[type=radio]: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)}.radio-control:has(input[type=radio]:focus-visible:checked){--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)}.radio-control:has(input[type=radio]:hover:checked){--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)}.radio-control:has(input[type=radio]:disabled,input[type=radio]:disabled:checked){--color--background: var(--l--theme--color--interactive--background--on-default--disabled);--color--border: var(--l--theme--color--interactive--border--on-default--disabled)}.radio-control:has(input[type=radio]:disabled:checked){--color--content: var(--l--theme--color--interactive--content--on-default--disabled)}
1
+ .radio-control input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.radio-control{block-size:var(--l--theme--radio-control--size);border-radius:var(--l--theme--radio-control--border--radius);display:grid;inline-size:var(--l--theme--radio-control--size)}.radio-control input[type=radio]{block-size:var(--l--theme--radio-control--size);border-radius:var(--l--theme--radio-control--border--radius);border-style:var(--l--theme--radio-control--border--style);border-width:var(--l--theme--radio-control--border--width);grid-area:1 / 1;inline-size:var(--l--theme--radio-control--size)}.radio-control:after{block-size:var(--l--theme--radio-control--size);border-radius:var(--l--theme--radio-control--border--radius);clip-path:circle(20.83% at 50% 50%);content:"";grid-area:1 / 1;inline-size:var(--l--theme--radio-control--size);pointer-events:none}.radio-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)}.radio-control input[type=radio]{border-color:var(--color--border)}.radio-control:after{background-color:var(--color--content)}.radio-control:has(input[type=radio]:focus-visible){--color--background: var(--l--theme--color--interactive--background--on-default--focus);--color--border: var(--l--theme--color--interactive--border--on-default--focus)}.radio-control:has(input[type=radio]:hover){--color--background: var(--l--theme--color--interactive--background--on-default--hover);--color--border: var(--l--theme--color--interactive--border--on-default--hover)}.radio-control:has(input[type=radio]: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)}.radio-control:has(input[type=radio]:focus-visible:checked){--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)}.radio-control:has(input[type=radio]:hover:checked){--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)}.radio-control:has(input[type=radio]:disabled,input[type=radio]:disabled:checked){--color--background: var(--l--theme--color--interactive--background--on-default--disabled);--color--border: var(--l--theme--color--interactive--border--on-default--disabled)}.radio-control:has(input[type=radio]:disabled:checked){--color--content: var(--l--theme--color--interactive--content--on-default--disabled)}
@@ -0,0 +1,94 @@
1
+ @define-mixin radio-core {
2
+ & input[type='radio'] {
3
+ appearance: none;
4
+ }
5
+ }
6
+
7
+ @define-mixin radio-shape {
8
+ block-size: var(--l--theme--radio-control--size);
9
+ border-radius: var(--l--theme--radio-control--border--radius);
10
+ display: grid;
11
+ inline-size: var(--l--theme--radio-control--size);
12
+
13
+ & input[type='radio'] {
14
+ block-size: var(--l--theme--radio-control--size);
15
+ border-radius: var(--l--theme--radio-control--border--radius);
16
+ border-style: var(--l--theme--radio-control--border--style);
17
+ border-width: var(--l--theme--radio-control--border--width);
18
+ grid-area: 1 / 1;
19
+ inline-size: var(--l--theme--radio-control--size);
20
+ }
21
+
22
+ &::after {
23
+ block-size: var(--l--theme--radio-control--size);
24
+ border-radius: var(--l--theme--radio-control--border--radius);
25
+ clip-path: circle(20.83% at 50% 50%);
26
+ content: '';
27
+ grid-area: 1 / 1;
28
+ inline-size: var(--l--theme--radio-control--size);
29
+ pointer-events: none;
30
+ }
31
+ }
32
+
33
+ @define-mixin radio-color {
34
+ --color--background: var(--l--theme--color--interactive--background--on-default--rest);
35
+ --color--border: var(--l--theme--color--interactive--border--on-default--rest);
36
+ --color--content: transparent;
37
+
38
+ /* Rest */
39
+ background-color: var(--color--background);
40
+
41
+ & input[type='radio'] {
42
+ border-color: var(--color--border);
43
+ }
44
+
45
+ &::after {
46
+ background-color: var(--color--content);
47
+ }
48
+
49
+ /* Focus */
50
+ &:has(input[type='radio']:focus-visible) {
51
+ --color--background: var(--l--theme--color--interactive--background--on-default--focus);
52
+ --color--border: var(--l--theme--color--interactive--border--on-default--focus);
53
+ }
54
+
55
+ /* Hover */
56
+ &:has(input[type='radio']:hover) {
57
+ --color--background: var(--l--theme--color--interactive--background--on-default--hover);
58
+ --color--border: var(--l--theme--color--interactive--border--on-default--hover);
59
+ }
60
+
61
+ /* Checked: Rest */
62
+ &:has(input[type='radio']:checked) {
63
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--rest);
64
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--rest);
65
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--rest);
66
+ }
67
+
68
+ /* Checked: Focus */
69
+ &:has(input[type='radio']:focus-visible:checked) {
70
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--focus);
71
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--focus);
72
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--focus);
73
+ }
74
+
75
+ /* Checked: Hover */
76
+ &:has(input[type='radio']:hover:checked) {
77
+ --color--background: var(--l--theme--color--interactive--background--on-default--checked--hover);
78
+ --color--border: var(--l--theme--color--interactive--border--on-default--checked--hover);
79
+ --color--content: var(--l--theme--color--interactive--content--on-default--checked--hover);
80
+ }
81
+
82
+ /* Disabled */
83
+ &:has(
84
+ input[type='radio']:disabled,
85
+ input[type='radio']:disabled:checked
86
+ ) {
87
+ --color--background: var(--l--theme--color--interactive--background--on-default--disabled);
88
+ --color--border: var(--l--theme--color--interactive--border--on-default--disabled);
89
+ }
90
+
91
+ &:has(input[type='radio']:disabled:checked) {
92
+ --color--content: var(--l--theme--color--interactive--content--on-default--disabled);
93
+ }
94
+ }
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@withlayers/components.radio-control",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Radio 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"
11
12
  },
12
13
  "files": [
13
14
  "dist"
@@ -19,9 +20,11 @@
19
20
  "lint:css:fix": "stylelint \"src/**/*.css\" --fix"
20
21
  },
21
22
  "dependencies": {
22
- "@withlayers/mixins": "0.12.0",
23
- "@withlayers/tokens": "0.17.0",
24
- "clsx": "^2.1.1",
25
- "postcss-mixins": "^11.0.3"
23
+ "@withlayers/mixins": "0.13.0",
24
+ "@withlayers/tokens": "0.17.0"
25
+ },
26
+ "devDependencies": {
27
+ "postcss-mixins": "^11.0.3",
28
+ "postcss-nested": "^7.0.2"
26
29
  }
27
30
  }