@haiilo/catalyst 6.5.0 → 7.0.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 (89) hide show
  1. package/dist/catalyst/catalyst.css +64 -115
  2. package/dist/catalyst/catalyst.esm.js +1 -1
  3. package/dist/catalyst/catalyst.esm.js.map +1 -1
  4. package/dist/catalyst/p-5dab6694.entry.js +10 -0
  5. package/dist/catalyst/p-5dab6694.entry.js.map +1 -0
  6. package/dist/catalyst/scss/_snippets/_form-label.scss +5 -9
  7. package/dist/catalyst/scss/_variables.scss +29 -2
  8. package/dist/catalyst/scss/core/_base.scss +2 -4
  9. package/dist/catalyst/scss/core/_form.scss +14 -0
  10. package/dist/catalyst/scss/core/_notification.scss +2 -3
  11. package/dist/catalyst/scss/core/_typography.scss +17 -88
  12. package/dist/catalyst/scss/index.scss +1 -0
  13. package/dist/catalyst/scss/index.shadow.scss +1 -0
  14. package/dist/catalyst/scss/utils/_typography.mixins.scss +3 -26
  15. package/dist/catalyst/scss/vendor/_flatpickr.scss +8 -8
  16. package/dist/cjs/cat-alert_26.cjs.entry.js +66 -45
  17. package/dist/cjs/cat-alert_26.cjs.entry.js.map +1 -1
  18. package/dist/cjs/catalyst.cjs.js +1 -1
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/collection/components/cat-alert/cat-alert.css +0 -1
  21. package/dist/collection/components/cat-card/cat-card.css +0 -1
  22. package/dist/collection/components/cat-checkbox/cat-checkbox.css +9 -23
  23. package/dist/collection/components/cat-datepicker/cat-datepicker.css +0 -1
  24. package/dist/collection/components/cat-datepicker-inline/cat-datepicker-inline.css +7 -10
  25. package/dist/collection/components/cat-dropdown/cat-dropdown.css +2 -0
  26. package/dist/collection/components/cat-input/cat-input.css +16 -20
  27. package/dist/collection/components/cat-radio/cat-radio.css +9 -23
  28. package/dist/collection/components/cat-radio-group/cat-radio-group.js +19 -11
  29. package/dist/collection/components/cat-radio-group/cat-radio-group.js.map +1 -1
  30. package/dist/collection/components/cat-scrollable/cat-scrollable.css +2 -0
  31. package/dist/collection/components/cat-select/cat-select.css +15 -25
  32. package/dist/collection/components/cat-select-demo/cat-select-demo.js +0 -1
  33. package/dist/collection/components/cat-select-demo/cat-select-demo.js.map +1 -1
  34. package/dist/collection/components/cat-skeleton/cat-skeleton.css +4 -4
  35. package/dist/collection/components/cat-tabs/cat-tabs.js +114 -29
  36. package/dist/collection/components/cat-tabs/cat-tabs.js.map +1 -1
  37. package/dist/collection/components/cat-textarea/cat-textarea.css +15 -17
  38. package/dist/collection/components/cat-toggle/cat-toggle.css +9 -23
  39. package/dist/collection/scss/_snippets/_form-label.scss +5 -9
  40. package/dist/collection/scss/_variables.scss +29 -2
  41. package/dist/collection/scss/core/_base.scss +2 -4
  42. package/dist/collection/scss/core/_form.scss +14 -0
  43. package/dist/collection/scss/core/_notification.scss +2 -3
  44. package/dist/collection/scss/core/_typography.scss +17 -88
  45. package/dist/collection/scss/index.scss +1 -0
  46. package/dist/collection/scss/index.shadow.scss +1 -0
  47. package/dist/collection/scss/utils/_typography.mixins.scss +3 -26
  48. package/dist/collection/scss/vendor/_flatpickr.scss +8 -8
  49. package/dist/components/cat-alert.js +1 -1
  50. package/dist/components/cat-alert.js.map +1 -1
  51. package/dist/components/cat-card.js +1 -1
  52. package/dist/components/cat-card.js.map +1 -1
  53. package/dist/components/cat-checkbox2.js +1 -1
  54. package/dist/components/cat-checkbox2.js.map +1 -1
  55. package/dist/components/cat-datepicker-inline.js +1 -1
  56. package/dist/components/cat-datepicker-inline.js.map +1 -1
  57. package/dist/components/cat-datepicker.js +1 -1
  58. package/dist/components/cat-datepicker.js.map +1 -1
  59. package/dist/components/cat-dropdown2.js.map +1 -1
  60. package/dist/components/cat-input2.js +1 -1
  61. package/dist/components/cat-input2.js.map +1 -1
  62. package/dist/components/cat-radio-group.js +19 -11
  63. package/dist/components/cat-radio-group.js.map +1 -1
  64. package/dist/components/cat-radio.js +1 -1
  65. package/dist/components/cat-radio.js.map +1 -1
  66. package/dist/components/cat-select-demo.js +1 -2
  67. package/dist/components/cat-select-demo.js.map +1 -1
  68. package/dist/components/cat-select2.js +1 -1
  69. package/dist/components/cat-select2.js.map +1 -1
  70. package/dist/components/cat-skeleton2.js +1 -1
  71. package/dist/components/cat-skeleton2.js.map +1 -1
  72. package/dist/components/cat-tabs.js +41 -27
  73. package/dist/components/cat-tabs.js.map +1 -1
  74. package/dist/components/cat-textarea.js +1 -1
  75. package/dist/components/cat-textarea.js.map +1 -1
  76. package/dist/components/cat-toggle.js +1 -1
  77. package/dist/components/cat-toggle.js.map +1 -1
  78. package/dist/esm/cat-alert_26.entry.js +66 -45
  79. package/dist/esm/cat-alert_26.entry.js.map +1 -1
  80. package/dist/esm/catalyst.js +1 -1
  81. package/dist/esm/loader.js +1 -1
  82. package/dist/types/components/cat-radio-group/cat-radio-group.d.ts +3 -0
  83. package/dist/types/components/cat-tabs/cat-tabs.d.ts +23 -4
  84. package/dist/types/components.d.ts +18 -0
  85. package/package.json +2 -2
  86. package/dist/catalyst/p-d303131e.entry.js +0 -10
  87. package/dist/catalyst/p-d303131e.entry.js.map +0 -1
  88. package/dist/catalyst/scss/_snippets/_checkbox-hint.scss +0 -20
  89. package/dist/collection/scss/_snippets/_checkbox-hint.scss +0 -20
@@ -31,23 +31,19 @@ $cat-input-height: 2.5rem;
31
31
  flex-grow: 1;
32
32
  justify-content: space-between;
33
33
  gap: 0.25rem;
34
+ color: cat-token('color.ui.font.muted');
34
35
  }
35
36
 
36
- .label-optional {
37
- display: flex;
37
+ .label-optional,
38
+ .label-character-count {
39
+ display: inline-flex;
38
40
  align-items: center;
39
41
  max-height: 1.25rem;
40
- @include cat-body('xs');
41
- color: cat-token('color.ui.font.muted');
42
+ @include cat-body('xs', null);
42
43
  }
43
44
 
44
45
  .label-character-count {
45
- display: flex;
46
- align-items: center;
47
46
  margin-left: auto;
48
- max-height: 1.25rem;
49
- @include cat-body('xs');
50
- color: cat-token('color.ui.font.muted');
51
47
  }
52
48
 
53
49
  .input-horizontal,
@@ -1,12 +1,25 @@
1
1
  @use 'variables.tokens' as *;
2
2
  @forward 'variables.tokens';
3
3
 
4
+ // --------
5
+ // -- Variables
6
+ // These variables are not part of the design tokens, as they do not have a
7
+ // corresponding value assigned to them. They are still used throughout the
8
+ // design system to allow for easy customization while maintaining correct
9
+ // style inheritance.
10
+ // --------
11
+
12
+ $cat-font-family-head: var(--cat-font-family-head);
13
+ $cat-font-color-head: rgb(var(--cat-font-color-head));
14
+ $cat-font-color-mono: rgb(var(--cat-font-color-mono));
15
+
4
16
  // --------
5
17
  // -- Spacings
6
18
  // --------
7
19
 
8
- $cat-head-margin-bottom: 0.5rem;
9
- $cat-body-margin-bottom: 1rem;
20
+ $cat-head-margin-bottom: 1rem;
21
+ $cat-body-margin-bottom: 2rem;
22
+ $cat-form-margin-bottom: 1.5rem;
10
23
  $cat-nav-padding-horizontal: 0.75rem;
11
24
 
12
25
  // --------
@@ -14,6 +27,20 @@ $cat-nav-padding-horizontal: 0.75rem;
14
27
  // --------
15
28
 
16
29
  $cat-mark-color: cat-token('color.theme.primary.bg', 0.2);
30
+ /* stylelint-disable value-keyword-case */
31
+ $font-fallback-base:
32
+ system-ui,
33
+ -apple-system,
34
+ 'Segoe UI',
35
+ Roboto,
36
+ 'Helvetica Neue',
37
+ 'Noto Sans',
38
+ 'Liberation Sans',
39
+ Arial,
40
+ sans-serif !default;
41
+ $font-fallback-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji' !default;
42
+ $font-fallback-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace !default;
43
+ /* stylelint-enable value-keyword-case */
17
44
 
18
45
  // --------
19
46
  // -- Elevations
@@ -1,8 +1,6 @@
1
1
  @use '../variables' as *;
2
2
  @use '../mixins' as *;
3
3
 
4
- // ---- Typography
5
-
6
4
  html,
7
5
  body {
8
6
  background-color: cat-token('color.ui.background.canvas');
@@ -10,6 +8,6 @@ body {
10
8
 
11
9
  body {
12
10
  @include cat-body('m');
13
- font-family: cat-body-font-family();
14
- color: cat-token('color.ui.font.body');
11
+ font-family: cat-token('font.family.body'), $font-fallback-base, cat-token('font.family.emoji'), $font-fallback-emoji;
12
+ color: cat-token('color.ui.font.base');
15
13
  }
@@ -0,0 +1,14 @@
1
+ @use '../variables' as *;
2
+ @use '../mixins' as *;
3
+
4
+ .cat-form {
5
+ :is(cat-checkbox, cat-datepicker, cat-inline, cat-input, cat-radio-group, cat-select, cat-textarea, cat-toggle):not(
6
+ :last-child
7
+ ) {
8
+ margin-bottom: $cat-form-margin-bottom;
9
+ }
10
+
11
+ cat-radio:not(:last-child) {
12
+ margin-bottom: 0.5rem;
13
+ }
14
+ }
@@ -7,14 +7,13 @@
7
7
  background: cat-token('color.ui.background.surface');
8
8
  padding: 1.25rem;
9
9
  box-shadow: none;
10
- color: cat-token('color.ui.font.body');
10
+ color: cat-token('color.ui.font.base');
11
11
  width: 400px;
12
12
  max-width: 400px;
13
13
  cursor: unset;
14
14
 
15
15
  &.cat-toastify-dark {
16
- --cat-font-color-head: #{cat-token('color.ui.font.headInverted', $wrap: false)};
17
- --cat-font-color-body: #{cat-token('color.ui.font.bodyInverted', $wrap: false)};
16
+ --cat-font-color-base: #{cat-token('color.ui.font.baseInverted', $wrap: false)};
18
17
  --cat-primary-text: #{cat-token('color.theme.primaryInverted.text', $wrap: false)};
19
18
  --cat-primary-text-hover: #{cat-token('color.theme.primaryInverted.textHover', $wrap: false)};
20
19
  --cat-primary-text-active: #{cat-token('color.theme.primaryInverted.textActive', $wrap: false)};
@@ -1,15 +1,16 @@
1
1
  @use '../variables' as *;
2
2
  @use '../mixins' as *;
3
3
 
4
- :where(h1, h2, h3, h4, h5, h6),
4
+ // -- reset margins
5
+
6
+ :where(h1, h2, h3, h4, h5, h6, p, ol, ul, dl, blockquote, figure, pre, hr),
5
7
  .cat-h1,
6
8
  .cat-h2,
7
9
  .cat-h3,
8
10
  .cat-h4,
9
11
  .cat-h5,
10
12
  .cat-h6 {
11
- margin-top: 0;
12
- margin-bottom: $cat-head-margin-bottom;
13
+ margin: 0;
13
14
  }
14
15
 
15
16
  // -- head styles
@@ -34,15 +35,9 @@
34
35
  }
35
36
  }
36
37
 
37
- :where(p) {
38
- margin-top: 0;
39
- margin-bottom: $cat-body-margin-bottom;
40
- }
41
-
42
38
  hr,
43
39
  .cat-hr {
44
40
  display: block;
45
- margin: $cat-body-margin-bottom 0;
46
41
  border: 0;
47
42
  height: 1px;
48
43
  background-color: cat-token('color.ui.border.default');
@@ -120,11 +115,6 @@ dl {
120
115
  }
121
116
  }
122
117
 
123
- :where(ol, ul, dl) {
124
- margin-top: 0;
125
- margin-bottom: $cat-body-margin-bottom;
126
- }
127
-
128
118
  nav ol,
129
119
  nav ul,
130
120
  ol.cat-plain,
@@ -151,10 +141,6 @@ dd {
151
141
 
152
142
  // ----- blockquotes & figures
153
143
 
154
- :where(blockquote, figure) {
155
- margin: 0 0 $cat-body-margin-bottom;
156
- }
157
-
158
144
  blockquote {
159
145
  padding: 0.75rem 0 0.75rem calc(1.5rem - 2px);
160
146
  border-left: 2px solid cat-token('color.ui.border.quote');
@@ -181,7 +167,7 @@ blockquote {
181
167
  }
182
168
 
183
169
  figcaption {
184
- @include cat-body('s');
170
+ @include cat-body('s', null);
185
171
  }
186
172
 
187
173
  // ----- code
@@ -209,11 +195,6 @@ pre {
209
195
  }
210
196
  }
211
197
 
212
- :where(pre) {
213
- margin-top: 0;
214
- margin-bottom: $cat-body-margin-bottom;
215
- }
216
-
217
198
  kbd,
218
199
  code {
219
200
  margin: 0 0.125rem;
@@ -241,81 +222,29 @@ code {
241
222
 
242
223
  // ----- editorial typography
243
224
 
244
- cat-article,
245
225
  .cat-article {
246
- font-size: 1rem;
247
-
248
- $cat-head-margin-bottom: 1.5rem;
249
- $cat-body-margin-bottom: 2.5rem;
250
-
251
- :where(h1, h2, h3, h4, h5, h6),
252
- .cat-h1,
253
- .cat-h2,
254
- .cat-h3,
255
- .cat-h4,
256
- .cat-h5,
257
- .cat-h6 {
258
- margin-top: 0;
226
+ :where(h1, h2, h3),
227
+ :is(.cat-h1, .cat-h2, .cat-h3) {
228
+ color: $cat-font-color-head;
259
229
  margin-bottom: $cat-head-margin-bottom;
260
- }
261
-
262
- .type-space-small {
263
- margin-top: 0;
264
- margin-bottom: calc($cat-body-margin-bottom * 0.2);
265
- }
266
230
 
267
- .type-space-medium {
268
- margin-top: 0;
269
- margin-bottom: calc($cat-body-margin-bottom * 0.4);
231
+ &:has(+ h1, + h2, + h3, + h4, + h5, + h6, + .cat-h1, + .cat-h2, + .cat-h3, + .cat-h4, + .cat-h5, + .cat-h6) {
232
+ margin-bottom: $cat-head-margin-bottom * 0.5;
233
+ }
270
234
  }
271
235
 
272
- // :where(h1, h2, h3, h4, h5, h6, .cat-h1, .cat-h2, .cat-h3, .cat-h4, .cat-h5, .cat-h6):has(
273
- // + h1,
274
- // + h2,
275
- // + h3,
276
- // + h4,
277
- // + h5,
278
- // + h6,
279
- // + .cat-h1,
280
- // + .cat-h2,
281
- // + .cat-h3,
282
- // + .cat-h4,
283
- // + .cat-h5,
284
- // + .cat-h6
285
- // ) {
286
- // margin-top: 0;
287
- // margin-bottom:calc($cat-body-margin-bottom * 0.2);
288
- // }
289
-
290
- // :where(h3, h4, h5, h6, .cat-h3, .cat-h4, .cat-h5, .cat-h6):has(+ ul, + ol, + p) {
291
- // margin-bottom:calc($cat-body-margin-bottom * 0.4);
292
- // }
293
-
294
- h5,
295
- .cat-h5 {
296
- font-size: 1rem;
236
+ :where(h4, h5, h6),
237
+ :is(.cat-h4, .cat-h5, .cat-h6) {
238
+ color: $cat-font-color-head;
239
+ margin-bottom: $cat-head-margin-bottom * 0.5;
297
240
  }
298
241
 
299
- :where(p),
300
- ol,
301
- ul,
302
- blockquote,
303
- figure {
304
- margin-top: 0;
242
+ :where(p, ol, ul, dl, blockquote, figure, pre, cat-alert, cat-card) {
305
243
  margin-bottom: $cat-body-margin-bottom;
306
244
  }
307
245
 
308
- :where(p):has(+ p) {
309
- margin-bottom: calc($cat-body-margin-bottom * 0.4);
310
- }
311
-
312
246
  hr,
313
247
  .cat-hr {
314
- margin: $cat-body-margin-bottom 0;
315
- }
316
-
317
- ol li,
318
- ul li {
319
- margin-bottom: calc($cat-body-margin-bottom * 0.2);
248
+ margin: $cat-body-margin-bottom;
320
249
  }
321
250
  }
@@ -13,6 +13,7 @@
13
13
  // -- Core
14
14
  @import 'core/base';
15
15
  @import 'core/dialog';
16
+ @import 'core/form';
16
17
  @import 'core/nav';
17
18
  @import 'core/notification';
18
19
  @import 'core/typography';
@@ -3,6 +3,7 @@
3
3
  @import 'sanitize.css/reduce-motion.css';
4
4
 
5
5
  // -- Core
6
+ @import 'core/form';
6
7
  @import 'core/nav';
7
8
  @import 'core/typography';
8
9
 
@@ -1,26 +1,7 @@
1
1
  @use '../variables' as *;
2
2
 
3
- /* stylelint-disable value-keyword-case */
4
- $font-fallback-sans-serif:
5
- system-ui,
6
- -apple-system,
7
- 'Segoe UI',
8
- Roboto,
9
- 'Helvetica Neue',
10
- 'Noto Sans',
11
- 'Liberation Sans',
12
- Arial,
13
- sans-serif !default;
14
- $font-fallback-emoji: 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji' !default;
15
- $font-fallback-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace !default;
16
- /* stylelint-enable value-keyword-case */
17
-
18
3
  // ---- Head
19
4
 
20
- @function cat-head-font-family() {
21
- @return cat-token('font.family.head'), $font-fallback-sans-serif, cat-token('font.family.emoji'), $font-fallback-emoji;
22
- }
23
-
24
5
  @function cat-head-font-size($size) {
25
6
  @return cat-token('size.font.head.#{$size}');
26
7
  }
@@ -30,20 +11,16 @@ $font-fallback-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation M
30
11
  }
31
12
 
32
13
  @mixin cat-head($size, $weight: cat-token('font.weight.head')) {
33
- font-family: cat-head-font-family();
14
+ // skip color, as it is only set for editorial styles
15
+ font-family: $cat-font-family-head, $font-fallback-base, cat-token('font.family.emoji'), $font-fallback-emoji;
34
16
  font-size: cat-head-font-size($size);
35
17
  line-height: cat-head-line-height($size);
36
- color: cat-token('color.ui.font.head');
37
18
  font-weight: $weight;
38
19
  font-feature-settings: 'pnum';
39
20
  }
40
21
 
41
22
  // ---- Body
42
23
 
43
- @function cat-body-font-family() {
44
- @return cat-token('font.family.body'), $font-fallback-sans-serif, cat-token('font.family.emoji'), $font-fallback-emoji;
45
- }
46
-
47
24
  @function cat-body-font-size($size) {
48
25
  @return cat-token('size.font.body.#{$size}');
49
26
  }
@@ -78,7 +55,7 @@ $font-fallback-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation M
78
55
  font-family: cat-mono-font-family();
79
56
  font-size: cat-mono-font-size($size);
80
57
  line-height: cat-mono-line-height($size);
81
- color: cat-token('color.ui.font.mono');
58
+ color: $cat-font-color-mono;
82
59
  font-weight: $weight;
83
60
  }
84
61
 
@@ -105,7 +105,7 @@
105
105
  color: cat-token('color.ui.font.muted');
106
106
 
107
107
  &:hover {
108
- color: cat-token('color.ui.font.body');
108
+ color: cat-token('color.ui.font.base');
109
109
  }
110
110
  }
111
111
 
@@ -114,7 +114,7 @@
114
114
 
115
115
  .flatpickr-weekday {
116
116
  color: cat-token('color.ui.font.muted');
117
- @include cat-body(xs, $weight: 700);
117
+ @include cat-body(xs, 700);
118
118
  }
119
119
  }
120
120
 
@@ -134,7 +134,7 @@
134
134
 
135
135
  span.flatpickr-day,
136
136
  span.flatpickr-day:hover {
137
- @include cat-body(xs, $weight: 700);
137
+ @include cat-body(xs, 700);
138
138
  color: cat-token('color.ui.font.muted');
139
139
  text-align: center;
140
140
  line-height: 2.25rem;
@@ -152,7 +152,7 @@
152
152
  }
153
153
 
154
154
  .flatpickr-day {
155
- color: cat-token('color.ui.font.body');
155
+ color: cat-token('color.ui.font.base');
156
156
  height: 2.25rem;
157
157
  line-height: 2.25rem;
158
158
  border: 0;
@@ -263,7 +263,7 @@
263
263
  }
264
264
 
265
265
  &::after {
266
- @include cat-body(xs, $weight: 700);
266
+ @include cat-body(xs, 700);
267
267
  position: static;
268
268
  border: 0 !important;
269
269
  font-size: 10px;
@@ -273,7 +273,7 @@
273
273
  }
274
274
 
275
275
  &:hover {
276
- color: cat-token('color.ui.font.body');
276
+ color: cat-token('color.ui.font.base');
277
277
  background: transparent;
278
278
  }
279
279
  }
@@ -305,7 +305,7 @@
305
305
  .flatpickr-time .flatpickr-am-pm {
306
306
  margin: 0 0.25rem;
307
307
  @include cat-head(4, 400);
308
- color: cat-token('color.ui.font.body');
308
+ color: cat-token('color.ui.font.base');
309
309
  line-height: 2.25rem;
310
310
  }
311
311
 
@@ -325,7 +325,7 @@
325
325
 
326
326
  input {
327
327
  background: transparent !important;
328
- color: cat-token('color.ui.font.body');
328
+ color: cat-token('color.ui.font.base');
329
329
  font-size: cat-token('size.font.body.m');
330
330
  line-height: 2.25rem;
331
331
  font-family: inherit;