@castlabs/ui 7.6.1 → 7.7.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.
Files changed (33) hide show
  1. package/dist/castlabs-ui-editor.common.js.map +1 -1
  2. package/dist/castlabs-ui-editor.css +1 -1
  3. package/dist/castlabs-ui-editor.umd.js +1 -1
  4. package/dist/castlabs-ui-editor.umd.js.map +1 -1
  5. package/dist/castlabs-ui.common.js +3 -3
  6. package/dist/castlabs-ui.common.js.map +1 -1
  7. package/dist/castlabs-ui.core.js +3 -3
  8. package/dist/castlabs-ui.css +1 -1
  9. package/dist/castlabs-ui.module.js +3 -3
  10. package/dist/castlabs-ui.umd.js +4 -4
  11. package/dist/castlabs-ui.umd.js.map +1 -1
  12. package/package.json +1 -1
  13. package/src/components/ClAlert/style.scss +1 -0
  14. package/src/components/ClBadge/style.scss +1 -0
  15. package/src/components/ClBadge/style.variables.scss +6 -11
  16. package/src/components/ClCard/style.variables.scss +1 -2
  17. package/src/components/ClFooter/style.scss +1 -0
  18. package/src/components/ClPagination/style.scss +1 -1
  19. package/src/components/ClProgress/style.scss +1 -1
  20. package/src/components/form/ClField/style.scss +12 -1
  21. package/src/components/form/ClFieldGroup/style.scss +16 -6
  22. package/src/components/form/ClFieldInput/style.scss +1 -1
  23. package/src/components/table/ClTableCel/Currency/style.scss +9 -0
  24. package/src/components/table/ClTableCel/Time/style.scss +16 -0
  25. package/src/components/text/ClCopy/style.scss +2 -0
  26. package/src/components/text/ClLinkExternal/style.scss +1 -1
  27. package/src/styles/abstracts/color.scss +35 -1
  28. package/src/styles/abstracts/typography.scss +3 -2
  29. package/src/styles/layout/color.scss +1 -0
  30. package/src/styles/layout/grid.scss +1 -1
  31. package/src/styles/layout/helper.scss +126 -9
  32. package/src/styles/ui.scss +1 -0
  33. package/types/index.d.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@castlabs/ui",
3
- "version": "7.6.1",
3
+ "version": "7.7.0",
4
4
  "repository": "https://github.com/castlabs/ui-styleguide",
5
5
  "private": false,
6
6
  "description": "A vanilla HTML/CS/JS & Vue.js component library for Castlabs.",
@@ -117,6 +117,7 @@
117
117
  line-height: 1;
118
118
  padding: 0;
119
119
  text-decoration: underline;
120
+ text-decoration-thickness: px(1);
120
121
  }
121
122
  }
122
123
  }
@@ -14,6 +14,7 @@
14
14
  &:hover {
15
15
  color: var(--cl-color-text);
16
16
  text-decoration: underline;
17
+ text-decoration-thickness: px(1);
17
18
  }
18
19
  }
19
20
 
@@ -1,7 +1,5 @@
1
1
  @use '../../styles/global' as *;
2
2
 
3
- // $badge-color-fg: $color-ci-white;
4
- // $badge-color-bg: $color-dark;
5
3
  $badge-padding: px(4) px(8);
6
4
  $badge-min-height: 1.642857143em; // 23px @ 14pt
7
5
 
@@ -12,9 +10,14 @@ $badge-min-height: 1.642857143em; // 23px @ 14pt
12
10
  }
13
11
 
14
12
  %cl-badge {
15
- @include cl-colors-secondary;
13
+ @include cl-colors-ci;
14
+ @include cl-colors-admin;
16
15
  @extend %cl-p-tag;
17
16
 
17
+ #{'--cl-color-background'}: $color-ci-steel;
18
+ #{'--cl-color-border'}: $color-ci-steel;
19
+ #{'--cl-color-text'}: $color-ci-eggshell;
20
+ #{'--cl-color-accent'}: $color-ci-eggshell;
18
21
  background-color: var(--cl-color-background);
19
22
  border: $brand-line-width solid var(--cl-color-border);
20
23
  border-radius: $brand-border-radius;
@@ -26,14 +29,6 @@ $badge-min-height: 1.642857143em; // 23px @ 14pt
26
29
  text-transform: uppercase;
27
30
  white-space: nowrap;
28
31
 
29
- &:not([class*='cl-color-']) {
30
- // default color
31
- #{'--cl-color-background'}: $color-ci-steel;
32
- #{'--cl-color-border'}: $color-ci-steel;
33
- #{'--cl-color-text'}: $color-ci-eggshell;
34
- #{'--cl-color-accent'}: $color-ci-eggshell;
35
- }
36
-
37
32
  &.cl-badge-sm {
38
33
  @include cl-badge-small;
39
34
  }
@@ -169,8 +169,7 @@ $card-spacing-tight: $spacing-small;
169
169
  }
170
170
 
171
171
  &.cl-card-max {
172
- height: 100%; // cards in responsive grid colums should have full height
173
- margin-top: 0;
172
+ height: calc(100% - $spacing-small); // cards in responsive grid colums should have full height
174
173
  }
175
174
 
176
175
  + .card {
@@ -18,6 +18,7 @@
18
18
 
19
19
  &:hover {
20
20
  text-decoration: underline;
21
+ text-decoration-thickness: px(1);
21
22
  }
22
23
  }
23
24
  }
@@ -93,7 +93,7 @@
93
93
  }
94
94
 
95
95
  .cl-pagination-autosize {
96
- // for use by simple code that can't hide bubbles by itself
96
+ // for use by simple code that cant hide bubbles by itself
97
97
  // will hide all but the first, last and +/-5 bubbles around the .active one
98
98
  .page-item {
99
99
  display: none;
@@ -14,7 +14,7 @@
14
14
  // hint: see also vendors/bootstrap.scss for the actual Bootstrap imports
15
15
 
16
16
  .progress {
17
- @extend %cl-color-sky;
17
+ @extend %cl-color-petrol;
18
18
 
19
19
  background-color: $color-ci-clay;
20
20
  border-radius: $brand-border-radius;
@@ -31,17 +31,28 @@
31
31
 
32
32
  // --- disabled fields -------------------------------------------------------
33
33
 
34
+ .form-label:has(+ [disabled], + .disabled),
34
35
  .form-label.disabled,
35
36
  .valid-feedback.disabled {
36
37
  color: $color-disabled;
37
38
  }
38
39
 
39
40
  textarea[disabled],
41
+ textarea.disabled,
40
42
  input[disabled],
41
- select[disabled] {
43
+ input.disabled,
44
+ select[disabled],
45
+ select.disabled {
42
46
  background-color: $color-ci-haze;
43
47
  color: $color-disabled;
44
48
  cursor: not-allowed;
49
+
50
+ + .invalid-feedback,
51
+ + .valid-feedback,
52
+ + .invalid-feedback + .valid-feedback,
53
+ + .valid-feedback + .invalid-feedback {
54
+ color: $color-disabled;
55
+ }
45
56
  }
46
57
 
47
58
  select[disabled] {
@@ -37,14 +37,9 @@
37
37
  // trick to share one ][ border between 2 inputs
38
38
  &:not(.btn) {
39
39
  border-left-width: 0;
40
-
41
- &:focus-visible,
42
- &.invalid:focus-visible {
43
- box-shadow: 0 0 0 1px $color-ci-berry inset !important;
44
- }
45
40
  }
46
41
 
47
- &.invalid {
42
+ &:not(:focus, :focus-visible).invalid {
48
43
  box-shadow: -$brand-line-width 0 0 $color-error !important; // sass-lint:disable-line no-important
49
44
  }
50
45
  }
@@ -117,6 +112,21 @@
117
112
 
118
113
  &:not(.btn) {
119
114
  border-right-color: $color-ci-clay;
115
+
116
+ &:has(+ :focus),
117
+ &:has(+ :focus-visible),
118
+ &:has(+ p + :focus),
119
+ &:has(+ p + :focus-visible),
120
+ &:has(+ p + p + :focus),
121
+ &:has(+ p + p + :focus-visible),
122
+ &:has(+ .invalid:focus),
123
+ &:has(+ [invalid]:focus-visible),
124
+ &:has(+ p + .invalid:focus),
125
+ &:has(+ p + [invalid]:focus-visible),
126
+ &:has(+ p + p + .invalid:focus),
127
+ &:has(+ p + p + [invalid]:focus-visible) {
128
+ border-right-color: $color-focus !important;
129
+ }
120
130
  }
121
131
  }
122
132
  }
@@ -38,7 +38,7 @@
38
38
  @extend %form-field-box;
39
39
  @extend %form-field-typography-monospace;
40
40
 
41
- @include cl-form-focus;
41
+ @include cl-form-focus(true);
42
42
 
43
43
  &.form-control-plaintext {
44
44
  background-color: transparent;
@@ -1,9 +1,18 @@
1
1
  @use '../../../../styles/global' as *;
2
+ @use '../../ClTable/style.variables' as *;
2
3
 
3
4
  .cl-table-data {
4
5
  @include media-breakpoint-up($grid-table-responsive) {
5
6
  .cl-th-currency,
6
7
  .cl-td-currency {
8
+ @include typography-font(
9
+ $typography-monospace-font-list,
10
+ 400,
11
+ px(14),
12
+ $table-lineheight * 1.066666667,
13
+ 0.025em
14
+ );
15
+
7
16
  overflow-wrap: unset;
8
17
  text-align: end;
9
18
  }
@@ -0,0 +1,16 @@
1
+ @use '../../../../styles/global' as *;
2
+ @use '../../ClTable/style.variables' as *;
3
+
4
+ .cl-table-data {
5
+ @include media-breakpoint-up($grid-table-responsive) {
6
+ .cl-td-time {
7
+ @include typography-font(
8
+ $typography-monospace-font-list,
9
+ 400,
10
+ px(14),
11
+ $table-lineheight * 1.066666667,
12
+ 0.025em
13
+ );
14
+ }
15
+ }
16
+ }
@@ -20,9 +20,11 @@
20
20
  &:hover * {
21
21
  color: $color-hover;
22
22
  text-decoration-color: $color-hover;
23
+ text-decoration-thickness: px(1);
23
24
  }
24
25
  }
25
26
 
26
27
  .cl-copy-text {
27
28
  text-decoration: underline;
29
+ text-decoration-thickness: px(1);
28
30
  }
@@ -15,7 +15,7 @@ main a {
15
15
  }
16
16
 
17
17
  .cl-a-btn {
18
- // a link that is more an embedded button, e.g. in table actions
18
+ // a link that’s more an embedded button, e.g. in table actions
19
19
  @extend %cl-a-btn;
20
20
  }
21
21
 
@@ -144,7 +144,41 @@ $color-opacity-active: 0.8;
144
144
  }
145
145
  }
146
146
 
147
- @mixin cl-colors-secondary {
147
+ @mixin cl-colors-ci {
148
+ &.cl-color-night {
149
+ @extend %cl-color-night;
150
+ }
151
+
152
+ &.cl-color-eggshell {
153
+ @extend %cl-color-eggshell;
154
+ }
155
+
156
+ &.cl-color-red {
157
+ @extend %cl-color-red;
158
+ }
159
+
160
+ &.cl-color-sky {
161
+ @extend %cl-color-sky;
162
+ }
163
+
164
+ &.cl-color-berry {
165
+ @extend %cl-color-berry;
166
+ }
167
+
168
+ &.cl-color-petrol {
169
+ @extend %cl-color-petrol;
170
+ }
171
+
172
+ &.cl-color-ash {
173
+ @extend %cl-color-ash;
174
+ }
175
+
176
+ &.cl-color-clay {
177
+ @extend %cl-color-clay;
178
+ }
179
+ }
180
+
181
+ @mixin cl-colors-admin {
148
182
  &.cl-color-brick {
149
183
  @extend %cl-color-brick;
150
184
  }
@@ -83,6 +83,7 @@ $typography-monospace-line-height: 1.375;
83
83
  color: $color;
84
84
  display: inline;
85
85
  text-decoration: underline $color-underline;
86
+ text-decoration-thickness: px(1);
86
87
 
87
88
  &:hover {
88
89
  color: $color-hover;
@@ -162,7 +163,7 @@ $typography-monospace-line-height: 1.375;
162
163
  }
163
164
 
164
165
  %cl-a-btn {
165
- // a link that is more an embedded button
166
+ // a link that’s more an embedded button
166
167
  @include typography-link;
167
168
 
168
169
  background-color: transparent;
@@ -488,7 +489,7 @@ $typography-responsive-scale: 0.8;
488
489
 
489
490
  border: $brand-line-width solid var(--cl-color-text);
490
491
  border-radius: $brand-border-radius;
491
- clip-path: inset(0 round 20px);
492
+ clip-path: inset(-1px round 22px);
492
493
  font-size: px(15);
493
494
  line-height: 1.4;
494
495
  margin-top: $spacing-small;
@@ -126,6 +126,7 @@ div {
126
126
  &[class*='cl-color-text-'] {
127
127
  color: var(--cl-color-text);
128
128
  text-decoration-color: var(--cl-color-text);
129
+ text-decoration-thickness: px(1);
129
130
  }
130
131
  }
131
132
 
@@ -92,7 +92,7 @@ main {
92
92
  #{'--bs-gutter-x'}: $grid-spacing;
93
93
 
94
94
  > [class^='col-'] {
95
- margin-top: $grid-spacing; // columns add top padding as first content line won't
95
+ margin-top: $grid-spacing; // columns add top padding as first content line wont
96
96
  }
97
97
  }
98
98
  }
@@ -45,6 +45,10 @@
45
45
  opacity: 0.5;
46
46
  }
47
47
 
48
+ .cl-strong {
49
+ font-weight: 700;
50
+ }
51
+
48
52
  h1.cl-faded,
49
53
  .cl-h1.cl-faded,
50
54
  h2.cl-faded,
@@ -83,6 +87,8 @@ h6.cl-faded,
83
87
  width: auto;
84
88
  }
85
89
 
90
+ // --- alignment ---------------------------------------------------------------
91
+
86
92
  .cl-text-start,
87
93
  .text-start {
88
94
  text-align: left;
@@ -98,18 +104,129 @@ h6.cl-faded,
98
104
  text-align: right;
99
105
  }
100
106
 
101
- .cl-flex-center-center, // deprecated v5 class
102
- .cl-align-center-center {
103
- align-items: center;
107
+ %cl-align {
104
108
  display: flex;
105
109
  height: 100%;
106
- justify-content: center;
107
110
  width: 100%;
108
111
  }
109
112
 
110
- .cl-flex-bottom, // deprecated v5 class
111
- .cl-align-bottom {
112
- display: flex;
113
- flex-direction: column;
114
- justify-content: end;
113
+ :not(td) {
114
+ &.cl-flex-center-center, // deprecated v5 class
115
+ &.cl-align-center-center {
116
+ @extend %cl-align;
117
+
118
+ align-items: center;
119
+ justify-content: center;
120
+ }
121
+
122
+ &.cl-align-center-left {
123
+ @extend %cl-align;
124
+
125
+ align-items: center;
126
+ justify-content: start;
127
+ }
128
+
129
+ &.cl-align-center-right {
130
+ @extend %cl-align;
131
+
132
+ align-items: center;
133
+ justify-content: end;
134
+ }
135
+
136
+ &.cl-align-top-left {
137
+ @extend %cl-align;
138
+
139
+ align-items: start;
140
+ justify-content: start;
141
+ }
142
+
143
+ &.cl-align-top-center {
144
+ @extend %cl-align;
145
+
146
+ align-items: start;
147
+ justify-content: center;
148
+ }
149
+
150
+ &.cl-align-top-right {
151
+ @extend %cl-align;
152
+
153
+ align-items: start;
154
+ justify-content: end;
155
+ }
156
+
157
+ &.cl-align-bottom-left {
158
+ @extend %cl-align;
159
+
160
+ align-items: end;
161
+ justify-content: start;
162
+ }
163
+
164
+ &.cl-align-bottom-center {
165
+ @extend %cl-align;
166
+
167
+ align-items: end;
168
+ justify-content: center;
169
+ }
170
+
171
+ &.cl-align-bottom-right {
172
+ @extend %cl-align;
173
+
174
+ align-items: end;
175
+ justify-content: end;
176
+ }
177
+
178
+ &.cl-flex-bottom, // deprecated v5 class
179
+ &.cl-align-bottom {
180
+ display: flex;
181
+ flex-direction: column;
182
+ justify-content: end;
183
+ }
184
+ }
185
+
186
+ td {
187
+ &.cl-flex-center-center, // deprecated v5 class
188
+ &.cl-align-center-center {
189
+ text-align: center;
190
+ vertical-align: middle;
191
+ }
192
+
193
+ &.cl-align-center-left {
194
+ text-align: start;
195
+ vertical-align: middle;
196
+ }
197
+
198
+ &.cl-align-center-right {
199
+ text-align: end;
200
+ vertical-align: middle;
201
+ }
202
+
203
+ &.cl-align-top-left {
204
+ text-align: start;
205
+ vertical-align: top;
206
+ }
207
+
208
+ &.cl-align-top-center {
209
+ text-align: center;
210
+ vertical-align: top;
211
+ }
212
+
213
+ &.cl-align-top-right {
214
+ text-align: end;
215
+ vertical-align: top;
216
+ }
217
+
218
+ &.cl-align-bottom-left {
219
+ text-align: start;
220
+ vertical-align: bottom;
221
+ }
222
+
223
+ &.cl-align-bottom-center {
224
+ text-align: center;
225
+ vertical-align: bottom;
226
+ }
227
+
228
+ &.cl-align-bottom-right {
229
+ text-align: end;
230
+ vertical-align: bottom;
231
+ }
115
232
  }
@@ -88,6 +88,7 @@ $castlabs-ui-asset-postfix: '' !default;
88
88
  @use '../components/table/ClTableCel/ID/style' as *;
89
89
  @use '../components/table/ClTableCel/Links/style' as *;
90
90
  @use '../components/table/ClTableCel/style' as *;
91
+ @use '../components/table/ClTableCel/Time/style' as *;
91
92
  @use '../components/table/ClTableFootChecked/style' as *;
92
93
  @use '../components/table/ClTableHead/style' as *;
93
94
  @use '../components/text/ClCopy/style' as *;
package/types/index.d.ts CHANGED
@@ -136,6 +136,7 @@ export function clMatch (string: string, expression?: string, caseSensitive?: bo
136
136
 
137
137
  // --- utils/vitest ------------------------------------------------------------
138
138
 
139
+ export const FLECTIONS: RegExp[]
139
140
  export function clGetAllComponents(): object
140
141
  export function clGetAllPlugins(): [{ install: (app: any) => void }]
141
142
  export function clPatch (source: any, patches: any): object