@faststore/ui 2.0.15-alpha.0 → 2.0.17-alpha.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 CHANGED
@@ -3,6 +3,24 @@
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
+ ## [2.0.17-alpha.0](https://github.com/vtex/faststore/compare/v2.0.16-alpha.0...v2.0.17-alpha.0) (2022-12-15)
7
+
8
+
9
+ ### Features
10
+
11
+ * Create `LinkButton` component ([#1558](https://github.com/vtex/faststore/issues/1558)) ([bbbebdb](https://github.com/vtex/faststore/commit/bbbebdb081f9c40315d8b661461e3b09a34b84b6))
12
+
13
+
14
+
15
+ ## [2.0.16-alpha.0](https://github.com/vtex/faststore/compare/v2.0.15-alpha.0...v2.0.16-alpha.0) (2022-12-15)
16
+
17
+
18
+ ### Features
19
+
20
+ * Adds `Toggle` & `ToggleField` & `SROnly` components ([#1555](https://github.com/vtex/faststore/issues/1555)) ([b055c0a](https://github.com/vtex/faststore/commit/b055c0aa67291ad88e865b60e96b8a898a97db14))
21
+
22
+
23
+
6
24
  ## [2.0.15-alpha.0](https://github.com/vtex/faststore/compare/v2.0.14-alpha.0...v2.0.15-alpha.0) (2022-12-14)
7
25
 
8
26
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/ui",
3
- "version": "2.0.15-alpha.0",
3
+ "version": "2.0.17-alpha.0",
4
4
  "description": "A lightweight, framework agnostic component library for React",
5
5
  "author": "emersonlaurentino",
6
6
  "license": "MIT",
@@ -78,5 +78,5 @@
78
78
  "node": "16.18.0",
79
79
  "yarn": "1.19.1"
80
80
  },
81
- "gitHead": "9b72e9d993f45bf072144751654854a11e099d17"
81
+ "gitHead": "63d93423c77df7aadbbd8ba8b5f9d39302e6fd3e"
82
82
  }
@@ -136,7 +136,7 @@
136
136
  &[data-fs-button-variant] {
137
137
  @include focus-ring-visible;
138
138
 
139
- &:disabled, &[data-button-disabled="true"] {
139
+ &:disabled, &[data-fs-button-disabled="true"] {
140
140
  color: var(--fs-button-disabled-text-color);
141
141
  cursor: not-allowed;
142
142
  background-color: var(--fs-button-disabled-bkg-color);
@@ -0,0 +1,15 @@
1
+ [data-fs-sr-only] {
2
+ // --------------------------------------------------------
3
+ // Structural Styles for SR Only
4
+ // --------------------------------------------------------
5
+
6
+ &:not(:focus):not(:active) {
7
+ position: absolute;
8
+ width: 1px;
9
+ height: 1px;
10
+ overflow: hidden;
11
+ clip: rect(0 0 0 0);
12
+ clip-path: inset(50%);
13
+ white-space: nowrap;
14
+ }
15
+ }
@@ -0,0 +1,9 @@
1
+ [data-fs-link-button] {
2
+ // --------------------------------------------------------
3
+ // Structural Styles
4
+ // --------------------------------------------------------
5
+
6
+ &:hover { text-decoration: none; }
7
+
8
+ &:disabled, &[data-fs-button-disabled="true"] { pointer-events: none; }
9
+ }
@@ -0,0 +1,174 @@
1
+ [data-fs-toggle] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Toggle
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-toggle-height : calc(var(--fs-control-min-height) / 1.75);
8
+
9
+ --fs-toggle-bkg-color : var(--fs-control-bkg);
10
+ --fs-toggle-bkg-color-hover : var(--fs-color-primary-bkg-light);
11
+
12
+ --fs-toggle-shadow : var(--fs-shadow);
13
+ --fs-toggle-shadow-hover : var(--fs-shadow);
14
+
15
+ --fs-toggle-border-color : var(--fs-border-color);
16
+ --fs-toggle-border-color-hover : var(--fs-border-color-hover);
17
+ --fs-toggle-border-radius : var(--fs-border-radius);
18
+ --fs-toggle-border-width : var(--fs-border-width);
19
+
20
+ --fs-toggle-transition-timing : var(--fs-transition-timing);
21
+ --fs-toggle-transition-property : var(--fs-transition-property);
22
+ --fs-toggle-transition-function : var(--fs-transition-function);
23
+
24
+ // Knob
25
+ --fs-toggle-knob-shadow : var(--fs-shadow);
26
+ --fs-toggle-knob-bkg-color : var(--fs-color-primary-bkg);
27
+ --fs-toggle-knob-bkg-color-hover : var(--fs-toggle-border-color-hover);
28
+ --fs-toggle-knob-border-radius : var(--fs-border-radius-small);
29
+ --fs-toggle-knob-border-color : var(--fs-toggle-knob-bkg-color);
30
+ --fs-toggle-knob-border-color-hover : var(--fs-toggle-knob-bkg-color-hover);
31
+ --fs-toggle-knob-border-width : var(--fs-border-width-thick);
32
+
33
+ --fs-toggle-knob-checked-bkg-color : var(--fs-control-bkg);
34
+ --fs-toggle-knob-checked-border-color : var(--fs-toggle-knob-checked-bkg-color);
35
+
36
+ --fs-toggle-knob-disabled-bkg-color : var(--fs-color-neutral-5);
37
+ --fs-toggle-knob-disabled-border-color : var(--fs-toggle-knob-disabled-bkg-color);
38
+
39
+ // Icon
40
+ --fs-toggle-knob-icon-color : transparent;
41
+
42
+ --fs-toggle-knob-icon-checked-color : var(--fs-toggle-checked-bkg-color);
43
+ --fs-toggle-knob-icon-checked-color-hover : var(--fs-toggle-checked-bkg-color-hover);
44
+
45
+ --fs-toggle-knob-icon-disabled-color : var(--fs-toggle-disabled-bkg-color);
46
+
47
+ // Checked
48
+ --fs-toggle-checked-bkg-color : var(--fs-color-primary-bkg-active);
49
+ --fs-toggle-checked-bkg-color-hover : var(--fs-color-primary-bkg-hover);
50
+ --fs-toggle-checked-border-color : var(--fs-toggle-checked-bkg-color);
51
+ --fs-toggle-checked-border-color-hover : var(--fs-toggle-checked-bkg-color-hover);
52
+
53
+ // Disabled
54
+ --fs-toggle-disabled-bkg-color : var(--fs-color-disabled-bkg);
55
+ --fs-toggle-disabled-border-color : var(--fs-border-color-disabled);
56
+
57
+ // --------------------------------------------------------
58
+ // Structural Styles
59
+ // --------------------------------------------------------
60
+
61
+ position: relative;
62
+ overflow: visible;
63
+ width: fit-content;
64
+
65
+ input {
66
+ @include focus-ring-visible;
67
+ position: absolute;
68
+ z-index: 1;
69
+ display: block;
70
+ width: 100%;
71
+ height: 100%;
72
+ cursor: pointer;
73
+ background-color: var(--fs-toggle-bkg-color);
74
+ border: var(--fs-toggle-border-width) solid var(--fs-toggle-border-color);
75
+ border-radius: var(--fs-toggle-border-radius);
76
+ box-shadow: var(--fs-toggle-shadow);
77
+ transition: var(--fs-toggle-transition-property) var(--fs-toggle-transition-timing) var(--fs-toggle-transition-function);
78
+ appearance: none;
79
+ &:checked {
80
+ background-color: var(--fs-toggle-checked-bkg-color);
81
+ border: var(--fs-toggle-border-width) solid var(--fs-toggle-checked-border-color);
82
+ + [data-fs-toggle-knob] {
83
+ color: var(--fs-toggle-knob-icon-checked-color);
84
+ background-color: var(--fs-toggle-knob-checked-bkg-color);
85
+ border-color: var(--fs-toggle-knob-checked-border-color);
86
+ }
87
+ @media (hover: hover) {
88
+ &:hover:not(:disabled) {
89
+ background-color: var(--fs-toggle-checked-bkg-color-hover);
90
+ border: var(--fs-toggle-border-width) solid var(--fs-toggle-checked-border-color-hover);
91
+ + [data-fs-toggle-knob] {
92
+ color: var(--fs-toggle-knob-icon-checked-color-hover);
93
+ }
94
+ }
95
+ }
96
+ }
97
+ &:not(:checked) {
98
+ background-color: var(--fs-toggle-bkg-color);
99
+ border: var(--fs-toggle-border-width) solid var(--fs-toggle-border-color);
100
+ + [data-fs-toggle-knob] {
101
+ color: var(--fs-toggle-knob-icon-color);
102
+ background-color: var(--fs-toggle-knob-bkg-color);
103
+ border: var(--fs-toggle-border-width) solid var(--fs-toggle-knob-border-color);
104
+ }
105
+ @media (hover: hover) {
106
+ &:hover:not(:disabled) {
107
+ background-color: var(--fs-toggle-bkg-color-hover);
108
+ border-color: var(--fs-toggle-border-color-hover);
109
+ box-shadow: var(--fs-toggle-shadow-hover);
110
+ + [data-fs-toggle-knob] {
111
+ background-color: var(--fs-toggle-knob-bkg-color-hover);
112
+ border-color: var(--fs-toggle-knob-border-color-hover);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ &:disabled {
118
+ pointer-events: none;
119
+ background-color: var(--fs-toggle-disabled-bkg-color);
120
+ border-color: var(--fs-toggle-disabled-border-color);
121
+ + [data-fs-toggle-knob] {
122
+ background-color: var(--fs-toggle-knob-disabled-bkg-color);
123
+ border-color: var(--fs-toggle-knob-disabled-border-color);
124
+ }
125
+ &:checked + [data-fs-toggle-knob] {
126
+ color: var(--fs-toggle-knob-icon-disabled-color);
127
+ }
128
+ }
129
+ }
130
+
131
+ [data-fs-toggle-knob] {
132
+ position: absolute;
133
+ z-index: 2;
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ pointer-events: none;
138
+ border-radius: var(--fs-toggle-knob-border-radius);
139
+ box-shadow: var(--fs-toggle-knob-shadow);
140
+ transition: var(--fs-toggle-transition-property) var(--fs-toggle-transition-timing) var(--fs-toggle-transition-function);
141
+ }
142
+
143
+ // --------------------------------------------------------
144
+ // Variants Styles
145
+ // --------------------------------------------------------
146
+
147
+ &[data-fs-toggle-variant="horizontal"] {
148
+ min-width: calc(var(--fs-toggle-height) * 1.75);
149
+ height: var(--fs-toggle-height);
150
+
151
+ input:checked + [data-fs-toggle-knob] { left: calc(50% + var(--fs-toggle-border-width)); }
152
+
153
+ [data-fs-toggle-knob] {
154
+ top: calc(var(--fs-toggle-border-width) * 4);
155
+ left: calc(var(--fs-toggle-border-width) * 4);
156
+ width: calc(50% - (var(--fs-toggle-border-width) * 5));
157
+ height: calc(100% - (var(--fs-toggle-border-width) * 8));
158
+ }
159
+ }
160
+
161
+ &[data-fs-toggle-variant="vertical"] {
162
+ min-width: var(--fs-toggle-height);
163
+ height: calc(var(--fs-toggle-height) * 1.75);
164
+
165
+ input:checked + [data-fs-toggle-knob] { bottom: calc(50% + var(--fs-toggle-border-width)); }
166
+
167
+ [data-fs-toggle-knob] {
168
+ bottom: calc(var(--fs-toggle-border-width) * 4);
169
+ left: calc(var(--fs-toggle-border-width) * 4);
170
+ width: calc(100% - (var(--fs-toggle-border-width) * 8));
171
+ height: calc(50% - (var(--fs-toggle-border-width) * 5));
172
+ }
173
+ }
174
+ }
@@ -0,0 +1,13 @@
1
+ [data-fs-toggle-field] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Toggle Field
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ display: flex;
8
+ align-items: center;
9
+
10
+ [data-fs-toggle-field-label] {
11
+ margin-left: var(--fs-spacing-1);
12
+ }
13
+ }
@@ -1,3 +1,3 @@
1
1
  @import "../base/layout";
2
2
  @import "../base/tokens";
3
- @import "../base/typography";
3
+ @import "../base/typography";
@@ -10,12 +10,16 @@
10
10
  @import "../components/atoms/Price/styles";
11
11
  @import "../components/atoms/Radio/styles";
12
12
  @import "../components/atoms/Select/styles";
13
+ @import "../components/atoms/SROnly/styles";
13
14
 
14
15
  // Molecules
15
16
  @import "../components/molecules/BuyButton/styles";
16
17
  @import "../components/molecules/CheckboxField/styles";
17
18
  @import "../components/molecules/DiscountBadge/styles";
18
19
  @import "../components/molecules/InputField/styles";
20
+ @import "../components/molecules/LinkButton/styles";
19
21
  @import "../components/molecules/RadioField/styles";
20
22
  @import "../components/molecules/SelectField/styles";
21
23
  @import "../components/molecules/Tag/styles";
24
+ @import "../components/molecules/Toggle/styles";
25
+ @import "../components/molecules/ToggleField/styles";