@educarehq/solaris-components 0.0.4 → 0.0.6

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/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@educarehq/solaris-components",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.0",
6
6
  "@angular/core": "^21.1.0",
7
- "@educarehq/solaris-tokens": "^0.0.8",
8
- "@educarehq/solaris-services": "^0.0.5"
7
+ "@educarehq/solaris-tokens": "^0.0.9",
8
+ "@educarehq/solaris-services": "^0.0.6"
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0"
@@ -0,0 +1,262 @@
1
+ [solaris-button] {
2
+ --sb-active-filter: none;
3
+ --solaris-button-px: 1.2rem;
4
+ --solaris-button-height: 3.4rem;
5
+ --sb-border: transparent;
6
+ --sb-fill: var(--sb-tone);
7
+ --sb-hover-filter: brightness(1.125);
8
+ --sb-tone: var(--solaris-color-primary);
9
+ --solaris-button-fs: var(--solaris-fs-16);
10
+ --solaris-button-gap: var(--solaris-space-2);
11
+ --sb-tint-base: var(--solaris-color-surface);
12
+ --sb-ink: var(--solaris-color-primary-contrast);
13
+ --solaris-button-radius: var(--solaris-radius-sm);
14
+ --sb-active-bg: color-mix(in srgb, var(--sb-tone) 92%, white);
15
+ --solaris-button-focus-outline: color-mix(in srgb, var(--sb-tone) 55%, white 45%);
16
+
17
+ cursor: pointer;
18
+ line-height: 1.1;
19
+ font-weight: 600;
20
+ align-items: center;
21
+ text-rendering: auto;
22
+ display: inline-flex;
23
+ box-sizing: border-box;
24
+ justify-content: center;
25
+ transition: all 300ms ease;
26
+ color: var(--sb-ink);
27
+ background: var(--sb-fill);
28
+ gap: var(--solaris-button-gap);
29
+ border: 1px solid var(--sb-border);
30
+ font-size: var(--solaris-button-fs);
31
+ padding: 0 var(--solaris-button-px);
32
+ height: var(--solaris-button-height);
33
+ border-radius: var(--solaris-button-radius);
34
+ font-family: var(--solaris-font-sans), system-ui;
35
+ }
36
+
37
+ button[solaris-button] {
38
+ appearance: none;
39
+ -webkit-appearance: none;
40
+ }
41
+ button[solaris-button]::-moz-focus-inner {
42
+ border: 0;
43
+ padding: 0;
44
+ }
45
+
46
+ [solaris-button]:hover {
47
+ filter: var(--sb-hover-filter);
48
+ }
49
+
50
+ [solaris-button]:active {
51
+ background: var(--sb-active-bg);
52
+ filter: var(--sb-active-filter);
53
+ }
54
+
55
+ [solaris-button]:focus-visible {
56
+ outline-offset: 0.2rem;
57
+ outline: 0.2rem solid var(--solaris-button-focus-outline);
58
+ }
59
+
60
+ [solaris-button][disabled],
61
+ [solaris-button][aria-disabled="true"] {
62
+ opacity: 0.55;
63
+ transform: none;
64
+ cursor: not-allowed;
65
+ }
66
+
67
+ [solaris-button] i.ph,
68
+ [solaris-button] svg {
69
+ width: 1.6rem;
70
+ flex: 0 0 auto;
71
+ height: fit-content;
72
+ }
73
+
74
+ [solaris-button][aria-busy="true"] {
75
+ position: relative;
76
+ color: transparent;
77
+ pointer-events: none;
78
+ }
79
+ [solaris-button][aria-busy="true"] i.ph,
80
+ [solaris-button][aria-busy="true"] svg {
81
+ visibility: hidden;
82
+ }
83
+ [solaris-button][aria-busy="true"]::after {
84
+ content: "";
85
+ width: 1.6rem;
86
+ height: 1.6rem;
87
+ position: absolute;
88
+ border-radius: var(--solaris-radius-full);
89
+ animation: solaris-spin 0.8s linear infinite;
90
+ border: 0.2rem solid color-mix(in srgb, var(--sb-ink) 35%, transparent);
91
+ border-top-color: var(--sb-ink);
92
+ }
93
+
94
+ @keyframes solaris-spin {
95
+ to { transform: rotate(360deg); }
96
+ }
97
+
98
+ [solaris-button][data-size="sm"] {
99
+ --solaris-button-px: 1rem;
100
+ --solaris-button-height: 2.8rem;
101
+ --solaris-button-fs: var(--solaris-fs-18);
102
+ }
103
+ [solaris-button][data-size="md"] {
104
+ --solaris-button-px: 1.2rem;
105
+ --solaris-button-height: 3.4rem;
106
+ --solaris-button-fs: var(--solaris-fs-20);
107
+ }
108
+ [solaris-button][data-size="lg"] {
109
+ --solaris-button-px: 1.4rem;
110
+ --solaris-button-height: 4rem;
111
+ --solaris-button-fs: var(--solaris-fs-22);
112
+ }
113
+
114
+ [solaris-button][data-icon-only="true"] {
115
+ padding: 0;
116
+ width: var(--solaris-button-height);
117
+ }
118
+ [solaris-button][data-full-width="true"] {
119
+ width: 100%;
120
+ }
121
+
122
+ [solaris-button]:is([data-color="primary"], [color="primary"]) {
123
+ --sb-tone: var(--solaris-color-primary);
124
+ --sb-fill: var(--solaris-color-primary);
125
+ --sb-border: var(--solaris-color-primary-tint);
126
+ --sb-ink: var(--solaris-color-primary-contrast);
127
+ }
128
+
129
+ [solaris-button]:is([data-color="surface"], [color="surface"]) {
130
+ --sb-hover-filter: brightness(1.05);
131
+ --sb-ink: var(--solaris-color-text);
132
+ --sb-tone: var(--solaris-color-text);
133
+ --sb-border: var(--solaris-color-border);
134
+ --sb-fill: var(--solaris-color-surface-2);
135
+ --sb-tint-base: var(--solaris-color-surface);
136
+ }
137
+
138
+ [solaris-button]:is([data-color="success"], [color="success"]) {
139
+ --sb-tone: var(--solaris-color-success);
140
+ --sb-fill: color-mix(in srgb, var(--solaris-color-success) 70%, #2f426b);
141
+ --sb-ink: #fff;
142
+ --sb-border: color-mix(in srgb, var(--sb-tone) 70%, white);
143
+ }
144
+
145
+ [solaris-button]:is([data-color="warning"], [color="warning"]) {
146
+ --sb-ink: #fff;
147
+ --sb-tone: var(--solaris-color-warning);
148
+ --sb-border: color-mix(in srgb, var(--sb-tone) 70%, white);
149
+ --sb-fill: color-mix(in srgb, var(--solaris-color-warning) 80%, #94913e);
150
+ }
151
+
152
+ [solaris-button]:is([data-color="error"], [color="error"]) {
153
+ --sb-ink: #fff;
154
+ --sb-tone: var(--solaris-color-error);
155
+ --sb-border: color-mix(in srgb, var(--sb-tone) 70%, white);
156
+ --sb-fill: color-mix(in srgb, var(--solaris-color-error) 80%, #662931);
157
+ }
158
+
159
+ [solaris-button]:is([data-color="info"], [color="info"]) {
160
+ --sb-ink: #fff;
161
+ --sb-tone: var(--solaris-color-info);
162
+ --sb-fill: var(--solaris-color-info);
163
+ --sb-border: color-mix(in srgb, var(--sb-tone) 70%, white);
164
+ }
165
+
166
+ [solaris-button]:is([data-color="gradient"], [color="gradient"]) {
167
+ --sb-ink: #fff;
168
+ --sb-active-bg: var(--sb-fill);
169
+ --sb-active-filter: brightness(1.06);
170
+ --sb-tone: var(--solaris-color-primary);
171
+ --sb-fill: var(--solaris-color-gradient);
172
+ --sb-border: var(--solaris-color-primary-tint);
173
+ }
174
+
175
+ [solaris-button]:is([data-variant="outline"], [variant="outline"]) {
176
+ --sb-fill: transparent;
177
+ --sb-hover-filter: none;
178
+ --sb-active-filter: none;
179
+ --sb-ink: var(--sb-tone);
180
+ --sb-active-bg: color-mix(in srgb, var(--sb-tone) 16%, transparent);
181
+ --sb-border: color-mix(in srgb, var(--sb-tone) 40%, var(--solaris-color-border));
182
+ }
183
+
184
+ [solaris-button]:is([data-variant="outline"], [variant="outline"]):hover {
185
+ background: color-mix(in srgb, var(--sb-tone) 10%, transparent);
186
+ }
187
+
188
+ [solaris-button]:is([data-variant="ghost"], [variant="ghost"]) {
189
+ --sb-fill: transparent;
190
+ --sb-hover-filter: none;
191
+ --sb-border: transparent;
192
+ --sb-ink: var(--sb-tone);
193
+ --sb-active-filter: none;
194
+ --sb-active-bg: color-mix(in srgb, var(--sb-tone) 14%, transparent);
195
+ }
196
+
197
+ [solaris-button]:is([data-variant="ghost"], [variant="ghost"]):hover {
198
+ background: color-mix(in srgb, var(--solaris-color-surface-2) 80%, transparent);
199
+ }
200
+ [solaris-button]:is([data-variant="ghost"], [variant="ghost"]):active {
201
+ background: color-mix(in srgb, var(--solaris-color-surface-2) 70%, transparent);
202
+ }
203
+
204
+ [solaris-button]:is([data-variant="soft"], [variant="soft"]) {
205
+ --sb-hover-filter: none;
206
+ --sb-border: transparent;
207
+ --sb-ink: var(--sb-tone);
208
+ --sb-active-filter: none;
209
+ background: color-mix(in srgb, var(--sb-tone) 14%, var(--sb-tint-base));
210
+ --sb-active-bg: color-mix(in srgb, var(--sb-tone) 22%, var(--sb-tint-base));
211
+ }
212
+
213
+ [solaris-button]:is([data-variant="soft"], [variant="soft"]):hover {
214
+ background: color-mix(in srgb, var(--sb-tone) 18%, var(--sb-tint-base));
215
+ }
216
+
217
+ [solaris-button]:is([data-variant="soft"], [variant="soft"]):active {
218
+ background: color-mix(in srgb, var(--sb-tone) 22%, var(--sb-tint-base));
219
+ }
220
+
221
+ [solaris-button]:is([data-color="gradient"], [color="gradient"]):is([data-variant="soft"],
222
+ [variant="soft"]) {
223
+ --sb-tint-base: var(--solaris-color-bg);
224
+ background: color-mix(in srgb, var(--sb-tone) 14%, var(--sb-tint-base));
225
+ }
226
+ [solaris-button]:is([data-color="gradient"], [color="gradient"]):is([data-variant="soft"],
227
+ [variant="soft"]):hover {
228
+ background: color-mix(in srgb, var(--sb-tone) 18%, var(--sb-tint-base));
229
+ }
230
+ [solaris-button]:is([data-color="gradient"], [color="gradient"]):is([data-variant="soft"],
231
+ [variant="soft"]):active {
232
+ background: color-mix(in srgb, var(--sb-tone) 22%, var(--sb-tint-base));
233
+ }
234
+
235
+ [solaris-button-group] {
236
+ display: inline-flex;
237
+ align-items: stretch;
238
+ }
239
+
240
+ [solaris-button-group] > [solaris-button] {
241
+ border-radius: 0;
242
+ }
243
+
244
+ [solaris-button-group] > [solaris-button]:first-child {
245
+ border-top-left-radius: var(--solaris-radius-full);
246
+ border-bottom-left-radius: var(--solaris-radius-full);
247
+ }
248
+
249
+ [solaris-button-group] > [solaris-button]:last-child {
250
+ border-top-right-radius: var(--solaris-radius-full);
251
+ border-bottom-right-radius: var(--solaris-radius-full);
252
+ }
253
+
254
+ [solaris-button-group] > [solaris-button] + [solaris-button] {
255
+ margin-left: -1px;
256
+ }
257
+
258
+ [solaris-button-group] > [solaris-button]:hover,
259
+ [solaris-button-group] > [solaris-button]:focus-visible {
260
+ position: relative;
261
+ z-index: 1;
262
+ }
@@ -0,0 +1,14 @@
1
+ :is(input[solaris-input], textarea[solaris-input]) {
2
+ border: 0;
3
+ width: 100%;
4
+ outline: none;
5
+ background: transparent;
6
+ color: var(--atlas-color-text);
7
+ font-size: var(--solaris-fs-14);
8
+ font-family: var(--solaris-font-mono), system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
9
+ }
10
+
11
+ input[type="password"]::-ms-reveal,
12
+ input[type="password"]::-ms-clear {
13
+ display: none;
14
+ }
@@ -0,0 +1,2 @@
1
+ @forward './buttons/solaris-buttons.styles';
2
+ @forward './forms/input-text.styles';