@citizenplane/pimp 10.0.8 → 10.1.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 (64) hide show
  1. package/dist/pimp.es.js +1305 -1303
  2. package/dist/pimp.umd.js +22 -22
  3. package/dist/style.css +1 -1
  4. package/package.json +1 -1
  5. package/src/assets/css/base.css +16 -1
  6. package/src/assets/css/colors.css +111 -110
  7. package/src/assets/css/dimensions.css +36 -35
  8. package/src/assets/css/easings.css +2 -1
  9. package/src/assets/css/shadows.css +67 -65
  10. package/src/assets/css/tokens.css +355 -386
  11. package/src/assets/css/typography.css +109 -0
  12. package/src/assets/main.css +1 -1
  13. package/src/assets/styles/helpers/_functions.scss +2 -2
  14. package/src/assets/styles/helpers/_mixins.scss +1 -1
  15. package/src/assets/styles/utilities/_index.scss +3 -6
  16. package/src/components/BaseInputLabel.vue +23 -21
  17. package/src/components/BaseSelectClearButton.vue +15 -9
  18. package/src/components/CpAirlineLogo.vue +1 -1
  19. package/src/components/CpAlert.vue +16 -16
  20. package/src/components/CpBadge.vue +149 -29
  21. package/src/components/CpButton.vue +135 -110
  22. package/src/components/CpButtonGroup.vue +3 -3
  23. package/src/components/CpCalendar.vue +32 -32
  24. package/src/components/CpCheckbox.vue +43 -33
  25. package/src/components/CpContextualMenu.vue +6 -9
  26. package/src/components/CpDate.vue +53 -40
  27. package/src/components/CpDatepicker.vue +3 -3
  28. package/src/components/CpDialog.vue +19 -19
  29. package/src/components/CpHeading.vue +23 -23
  30. package/src/components/CpInput.vue +71 -52
  31. package/src/components/CpItemActions.vue +4 -4
  32. package/src/components/CpLoader.vue +14 -7
  33. package/src/components/CpMenuItem.vue +23 -17
  34. package/src/components/CpMultiselect.vue +84 -58
  35. package/src/components/CpPartnerBadge.vue +13 -13
  36. package/src/components/CpRadio.vue +32 -24
  37. package/src/components/CpSelect.vue +43 -30
  38. package/src/components/CpSelectMenu.vue +39 -39
  39. package/src/components/CpSwitch.vue +51 -40
  40. package/src/components/CpTable.vue +249 -81
  41. package/src/components/CpTableColumnEditor.vue +18 -16
  42. package/src/components/CpTableEmptyState.vue +9 -9
  43. package/src/components/CpTabs.vue +15 -15
  44. package/src/components/CpTelInput.vue +76 -70
  45. package/src/components/CpTextarea.vue +27 -17
  46. package/src/components/CpToast.vue +49 -49
  47. package/src/components/CpTooltip.vue +6 -6
  48. package/src/components/CpTransitionDialog.vue +1 -1
  49. package/src/constants/Sizes.ts +5 -0
  50. package/src/constants/colors/Colors.ts +15 -5
  51. package/src/constants/colors/ToggleColors.ts +2 -1
  52. package/src/libs/CoreDatepicker.vue +21 -18
  53. package/src/stories/CpBadge.stories.ts +25 -17
  54. package/src/stories/CpButton.stories.ts +6 -5
  55. package/src/stories/CpCheckbox.stories.ts +4 -4
  56. package/src/stories/CpContextualMenu.stories.ts +3 -2
  57. package/src/stories/CpLoader.stories.ts +2 -2
  58. package/src/stories/CpMenuItem.stories.ts +104 -0
  59. package/src/stories/CpRadio.stories.ts +29 -2
  60. package/src/stories/CpSwitch.stories.ts +27 -0
  61. package/src/stories/CpTable.stories.ts +94 -0
  62. package/src/assets/css/spacing.css +0 -43
  63. package/src/assets/styles/helpers/_keyframes.scss +0 -48
  64. package/src/assets/styles/variables/_sizing.scss +0 -4
@@ -0,0 +1,109 @@
1
+ :root {
2
+ --cp-letter-spacing-xs: 0;
3
+ --cp-letter-spacing-sm: 0;
4
+ --cp-letter-spacing-md: 0;
5
+ --cp-letter-spacing-lg: 0;
6
+ --cp-letter-spacing-xl: 0;
7
+ --cp-letter-spacing-2xl: 0;
8
+ --cp-letter-spacing-3xl: 0;
9
+ --cp-letter-spacing-4xl: 0;
10
+ --cp-letter-spacing-5xl: 0;
11
+ --cp-letter-spacing-6xl: 0;
12
+ --cp-letter-spacing-7xl: 0;
13
+ --cp-letter-spacing-8xl: 0;
14
+ --cp-letter-spacing-9xl: 0;
15
+
16
+ --cp-line-height-xs: 1rem;
17
+ --cp-line-height-sm: 1.25rem;
18
+ --cp-line-height-md: 1.5rem;
19
+ --cp-line-height-lg: 1.75rem;
20
+ --cp-line-height-xl: 1.875rem;
21
+ --cp-line-height-2xl: 2rem;
22
+ --cp-line-height-3xl: 2.25rem;
23
+ --cp-line-height-4xl: 2.5rem;
24
+ --cp-line-height-5xl: 3.5rem;
25
+ --cp-line-height-6xl: 4.5rem;
26
+ --cp-line-height-7xl: 5rem;
27
+ --cp-line-height-8xl: 6rem;
28
+ --cp-line-height-9xl: 8rem;
29
+
30
+ --cp-text-size-xs: 0.75em;
31
+ --cp-text-size-sm: 0.875em;
32
+ --cp-text-size-md: 1em;
33
+ --cp-text-size-lg: 1.125em;
34
+ --cp-text-size-xl: 1.25em;
35
+ --cp-text-size-2xl: 1.5em;
36
+ --cp-text-size-3xl: 1.875em;
37
+ --cp-text-size-4xl: 2.25em;
38
+ --cp-text-size-5xl: 3em;
39
+ --cp-text-size-6xl: 3.75em;
40
+ --cp-text-size-7xl: 4.5em;
41
+ --cp-text-size-8xl: 6em;
42
+ --cp-text-size-9xl: 8em;
43
+
44
+ --cp-text-xs: var(--cp-size-xs);
45
+ --cp-text-xs-line-height: var(--cp-line-height-xs);
46
+ --cp-text-xs-letter-spacing: var(--cp-letter-spacing-xs);
47
+
48
+ --cp-text-sm: var(--cp-size-sm);
49
+ --cp-text-sm-line-height: var(--cp-line-height-sm);
50
+ --cp-text-sm-letter-spacing: var(--cp-letter-spacing-sm);
51
+
52
+ --cp-text-md: var(--cp-size-md);
53
+ --cp-text-md-line-height: var(--cp-line-height-md);
54
+ --cp-text-md-letter-spacing: var(--cp-letter-spacing-md);
55
+
56
+ --cp-text-lg: var(--cp-size-lg);
57
+ --cp-text-lg-line-height: var(--cp-line-height-lg);
58
+ --cp-text-lg-letter-spacing: var(--cp-letter-spacing-lg);
59
+
60
+ --cp-text-xl: var(--cp-size-xl);
61
+ --cp-text-xl-line-height: var(--cp-line-height-xl);
62
+ --cp-text-xl-letter-spacing: var(--cp-letter-spacing-xl);
63
+
64
+ --cp-text-2xl: var(--cp-size-2xl);
65
+ --cp-text-2xl-line-height: var(--cp-line-height-2xl);
66
+ --cp-text-2xl-letter-spacing: var(--cp-letter-spacing-2xl);
67
+
68
+ --cp-text-3xl: var(--cp-size-3xl);
69
+ --cp-text-3xl-line-height: var(--cp-line-height-3xl);
70
+ --cp-text-3xl-letter-spacing: var(--cp-letter-spacing-3xl);
71
+
72
+ --cp-text-4xl: var(--cp-size-4xl);
73
+ --cp-text-4xl-line-height: var(--cp-line-height-4xl);
74
+ --cp-text-4xl-letter-spacing: var(--cp-letter-spacing-4xl);
75
+
76
+ --cp-text-5xl: var(--cp-size-5xl);
77
+ --cp-text-5xl-line-height: var(--cp-line-height-5xl);
78
+ --cp-text-5xl-letter-spacing: var(--cp-letter-spacing-5xl);
79
+
80
+ --cp-text-6xl: var(--cp-size-6xl);
81
+ --cp-text-6xl-line-height: var(--cp-line-height-6xl);
82
+ --cp-text-6xl-letter-spacing: var(--cp-letter-spacing-6xl);
83
+
84
+ --cp-text-7xl: var(--cp-size-7xl);
85
+ --cp-text-7xl-line-height: var(--cp-line-height-7xl);
86
+ --cp-text-7xl-letter-spacing: var(--cp-letter-spacing-7xl);
87
+
88
+ --cp-text-8xl: var(--cp-size-8xl);
89
+ --cp-text-8xl-line-height: var(--cp-line-height-8xl);
90
+ --cp-text-8xl-letter-spacing: var(--cp-letter-spacing-8xl);
91
+
92
+ --cp-text-9xl: var(--cp-size-9xl);
93
+ --cp-text-9xl-line-height: var(--cp-line-height-9xl);
94
+ --cp-text-9xl-letter-spacing: var(--cp-letter-spacing-9xl);
95
+
96
+ /* monospace text-size styles */
97
+
98
+ --cp-monospace-xs: var(--cp-size-xs);
99
+ --cp-monospace-xs-line-height: var(--cp-line-height-xs);
100
+ --cp-monospace-xs-letter-spacing: var(--cp-letter-spacing-xs);
101
+
102
+ --cp-monospace-sm-font-light: var(--cp-size-sm);
103
+ --cp-monospace-sm-line-height: var(--cp-line-height-sm);
104
+ --cp-monospace-sm-letter-spacing: var(--cp-letter-spacing-sm);
105
+
106
+ --cp-monospace-md-font-light: var(--cp-size-md);
107
+ --cp-monospace-md-line-height: var(--cp-line-height-md);
108
+ --cp-monospace-md-letter-spacing: var(--cp-letter-spacing-md);
109
+ }
@@ -2,6 +2,6 @@
2
2
  @import './css/colors.css';
3
3
  @import './css/dimensions.css';
4
4
  @import './css/shadows.css';
5
- @import './css/spacing.css';
5
+ @import './css/typography.css';
6
6
  @import './css/easings.css';
7
7
  @import './css/tokens.css';
@@ -17,8 +17,8 @@ $base-size: 16;
17
17
 
18
18
  @function v($var, $fallback: null) {
19
19
  @if ($fallback) {
20
- @return var(--pimp-#{$var}, #{$fallback});
20
+ @return var(--cp-#{$var}, #{$fallback});
21
21
  } @else {
22
- @return var(--pimp-#{$var});
22
+ @return var(--cp-#{$var});
23
23
  }
24
24
  }
@@ -45,7 +45,7 @@
45
45
  @mixin v-dropdown-transition() {
46
46
  .v-popper__wrapper {
47
47
  transition:
48
- scale 200ms easings.$easing-elastic,
48
+ scale 200ms var(--cp-easing-elastic),
49
49
  opacity 200ms ease;
50
50
  }
51
51
 
@@ -1,8 +1,5 @@
1
- @use '../variables/colors' as colors;
2
1
  @use '../helpers/functions' as fn;
3
2
 
4
- @use 'sass:color';
5
-
6
3
  .u-text-ellipsis,
7
4
  %u-text-ellipsis {
8
5
  white-space: nowrap;
@@ -23,7 +20,7 @@
23
20
 
24
21
  legend .u-asterisk,
25
22
  label .u-asterisk {
26
- color: colors.$error-color;
23
+ color: var(--cp-text-error-primary);
27
24
  }
28
25
 
29
26
  // Accessibility
@@ -34,7 +31,7 @@ label .u-asterisk {
34
31
  &:focus-visible {
35
32
  position: relative;
36
33
  z-index: 2;
37
- outline: fn.px-to-rem(2) solid colors.$primary-color;
34
+ outline: fn.px-to-rem(2) solid var(--cp-border-accent-solid);
38
35
  }
39
36
  }
40
37
 
@@ -48,7 +45,7 @@ label .u-asterisk {
48
45
  radial-gradient(farthest-side at 100% 50%, #3e3e5b33, #3e3e5b00) 0 100%;
49
46
 
50
47
  background-attachment: local, local, scroll, scroll;
51
- background-color: fn.v(background-primary);
48
+ background-color: var(--cp-background-primary);
52
49
  background-position:
53
50
  0 0,
54
51
  100%,
@@ -2,14 +2,14 @@
2
2
  <label class="baseInputLabel" v-bind="$attrs" :class="{ 'baseInputLabel--isInvalid': isInvalid }">
3
3
  <transition name="scale-elastic">
4
4
  <div v-if="isInvalid" class="baseInputLabel__iconWrapper">
5
- <cp-icon type="alert-circle" class="baseInputLabel__invalidIcon" />
5
+ <cp-icon class="baseInputLabel__invalidIcon" type="alert-circle" />
6
6
  </div>
7
7
  </transition>
8
8
  <div class="baseInputLabel__content">
9
9
  <slot />
10
10
  <span v-if="required" class="u-asterisk"> *</span>
11
11
  <cp-tooltip v-if="tooltip" :content="tooltip">
12
- <button type="button" class="baseInputLabel__tooltip">
12
+ <button class="baseInputLabel__tooltip" type="button">
13
13
  <cp-icon class="baseInputLabel__tooltipIcon" type="tooltip" />
14
14
  </button>
15
15
  </cp-tooltip>
@@ -40,10 +40,11 @@ defineOptions({
40
40
  position: relative;
41
41
  display: flex;
42
42
  align-items: center;
43
- font-size: fn.px-to-em(14);
44
- line-height: fn.px-to-rem(24);
45
- margin-bottom: sp.$space;
46
- color: colors.$neutral-dark;
43
+ font-size: var(--cp-text-sm);
44
+ line-height: var(--cp-line-height-md);
45
+ letter-spacing: var(--cp-letter-spacing-sm);
46
+ margin-bottom: var(--cp-spacing-md);
47
+ color: var(--cp-text-primary);
47
48
 
48
49
  &::first-letter {
49
50
  text-transform: capitalize;
@@ -52,31 +53,31 @@ defineOptions({
52
53
  &__content {
53
54
  display: flex;
54
55
  align-items: center;
55
- gap: sp.$space-sm;
56
+ gap: var(--cp-spacing-sm);
56
57
  }
57
58
 
58
59
  &__tooltip {
59
60
  display: flex;
60
- padding: sp.$space-sm;
61
+ padding: var(--cp-spacing-sm);
61
62
  align-items: center;
62
63
  justify-content: center;
63
- border-radius: 50%;
64
- color: colors.$neutral-dark-3;
65
- outline-offset: fn.px-to-em(-3);
64
+ border-radius: var(--cp-radius-full);
65
+ color: var(--cp-foreground-quaternary);
66
+ outline-offset: calc(var(--cp-dimensions-1) * -0.75);
66
67
 
67
68
  &:hover,
68
69
  &:focus {
69
- color: colors.$primary-color;
70
+ color: var(--cp-focus);
70
71
  }
71
72
 
72
73
  &:focus-visible {
73
- outline: fn.px-to-em(2) solid colors.$primary-color;
74
+ outline: var(--cp-dimensions-0_5) solid var(--cp-border-accent-solid);
74
75
  }
75
76
  }
76
77
 
77
78
  &__tooltipIcon {
78
- width: fn.px-to-rem(16);
79
- height: fn.px-to-rem(16);
79
+ width: var(--cp-dimensions-4);
80
+ height: var(--cp-dimensions-4);
80
81
  }
81
82
 
82
83
  &__iconWrapper {
@@ -86,8 +87,8 @@ defineOptions({
86
87
  display: flex;
87
88
  align-items: center;
88
89
  justify-content: center;
89
- padding: sp.$space-sm;
90
- margin-right: sp.$space-sm;
90
+ padding: var(--cp-spacing-sm);
91
+ margin-right: var(--cp-spacing-sm);
91
92
 
92
93
  &.scale-elastic-enter-active {
93
94
  transition-delay: 100ms;
@@ -95,17 +96,18 @@ defineOptions({
95
96
  }
96
97
 
97
98
  &__invalidIcon {
98
- @include mx.square-sizing(16);
99
+ width: var(--cp-dimensions-4);
100
+ height: var(--cp-dimensions-4);
99
101
 
100
- color: colors.$error-color;
102
+ color: var(--cp-foreground-error-primary);
101
103
  }
102
104
 
103
105
  &__content {
104
- transition: transform 300ms easings.$easing-elastic 100ms;
106
+ transition: transform 300ms var(--cp-easing-elastic) 100ms;
105
107
  }
106
108
 
107
109
  &--isInvalid .baseInputLabel__content {
108
- transform: translate3d(calc(fn.px-to-rem(24) + sp.$space-sm), 0, 0);
110
+ transform: translate3d(calc(var(--cp-dimensions-6) + var(--cp-spacing-sm)), 0, 0);
109
111
  }
110
112
  }
111
113
  </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <button class="baseSelectClearButton" type="button">
3
- <cp-icon size="12" type="x" />
3
+ <cp-icon size="16" type="x" />
4
4
  </button>
5
5
  </template>
6
6
 
@@ -10,24 +10,30 @@ import CpIcon from '@/components/CpIcon.vue'
10
10
 
11
11
  <style lang="scss">
12
12
  .baseSelectClearButton {
13
- @include mx.square-sizing(16);
13
+ width: var(--cp-dimensions-6);
14
+ height: var(--cp-dimensions-6);
14
15
 
15
16
  position: absolute;
16
17
  z-index: 1;
17
18
  top: 50%;
18
- right: fn.px-to-rem(14);
19
+ right: var(--cp-dimensions-3_5);
19
20
  display: flex;
20
21
  justify-content: center;
21
- padding: sp.$space-xs;
22
+ padding: var(--cp-dimensions-1);
22
23
  cursor: pointer;
23
24
  transform: translateY(-50%);
24
- color: colors.$neutral-light;
25
- border-radius: 50%;
26
- background-color: colors.$gray-1;
25
+ color: var(--cp-foreground-secondary);
26
+ border-radius: var(--cp-radius-full);
27
+ background-color: transparent;
28
+
29
+ &:hover {
30
+ color: var(--cp-foreground-secondary-hover);
31
+ background-color: var(--cp-background-primary-hover);
32
+ }
27
33
 
28
34
  &:focus {
29
- outline: fn.px-to-rem(2) solid colors.$primary-color;
30
- outline-offset: fn.px-to-rem(1);
35
+ outline: var(--cp-dimensions-0_5) solid var(--cp-focus);
36
+ outline-offset: var(--cp-dimensions-0_25);
31
37
  }
32
38
  }
33
39
  </style>
@@ -33,7 +33,7 @@ const dynamicTitle = computed(() => `${props.iataCode} airline logo`)
33
33
  <style lang="scss">
34
34
  .cpAirlineLogo {
35
35
  overflow: hidden;
36
- border-radius: fn.px-to-rem(4);
36
+ border-radius: var(--cp-radius-sm);
37
37
  background-repeat: no-repeat;
38
38
  background-size: contain;
39
39
  }
@@ -7,12 +7,12 @@
7
7
  <cp-icon v-else :type="alertIcon" />
8
8
  </div>
9
9
  <div class="cpAlert__body">
10
- <cp-heading v-if="title" heading-level="h4" :size="400" class="cpAlert__title">{{ title }}</cp-heading>
10
+ <cp-heading v-if="title" class="cpAlert__title" heading-level="h4" :size="400">{{ title }}</cp-heading>
11
11
  <div v-if="hasDefaultSlot" class="cpAlert__content">
12
12
  <slot />
13
13
  </div>
14
14
  </div>
15
- <button v-if="isClosable" type="button" class="cpAlert__button" @click="dismissAlert"><cp-icon type="x" /></button>
15
+ <button v-if="isClosable" class="cpAlert__button" type="button" @click="dismissAlert"><cp-icon type="x" /></button>
16
16
  </div>
17
17
  </template>
18
18
 
@@ -48,18 +48,18 @@ const dismissAlert = () => (isDisplayed.value = false)
48
48
  </script>
49
49
 
50
50
  <style lang="scss">
51
- @mixin cp-alert-style($color, $className) {
51
+ @mixin cp-alert-style($bgColor, $textColor, $className) {
52
52
  &--#{$className} {
53
- background-color: rgba($color, 0.1);
54
- color: $color;
53
+ background-color: $bgColor;
54
+ color: $textColor;
55
55
 
56
56
  &::before {
57
- background-color: $color;
57
+ background-color: $textColor;
58
58
  }
59
59
  }
60
60
 
61
61
  &--#{$className} button:focus-visible {
62
- outline: fn.px-to-rem(2) solid $color;
62
+ outline: fn.px-to-rem(2) solid $textColor;
63
63
  }
64
64
  }
65
65
 
@@ -83,13 +83,13 @@ const dismissAlert = () => (isDisplayed.value = false)
83
83
 
84
84
  &__body {
85
85
  flex: 1;
86
- margin-left: sp.$space;
87
- padding-right: calc(#{fn.px-to-rem(18)} + #{sp.$space-lg});
86
+ margin-left: var(--cp-spacing-md);
87
+ padding-right: calc(#{fn.px-to-rem(18)} + #{var(--cp-spacing-lg)});
88
88
  }
89
89
 
90
90
  &__iconWrapper {
91
91
  display: flex;
92
- padding-block: sp.$space-xs;
92
+ padding-block: var(--cp-spacing-xs);
93
93
  }
94
94
 
95
95
  &__icon {
@@ -115,7 +115,7 @@ const dismissAlert = () => (isDisplayed.value = false)
115
115
  font-weight: 600;
116
116
 
117
117
  &:not(:only-child) {
118
- margin-bottom: sp.$space-sm;
118
+ margin-bottom: var(--cp-spacing-sm);
119
119
  }
120
120
  }
121
121
 
@@ -125,7 +125,7 @@ const dismissAlert = () => (isDisplayed.value = false)
125
125
  right: fn.px-to-rem(7);
126
126
  top: fn.px-to-rem(7);
127
127
  border-radius: fn.px-to-rem(4);
128
- padding: sp.$space-sm;
128
+ padding: var(--cp-spacing-sm);
129
129
  color: inherit;
130
130
 
131
131
  svg {
@@ -139,9 +139,9 @@ const dismissAlert = () => (isDisplayed.value = false)
139
139
  }
140
140
  }
141
141
 
142
- @include cp-alert-style(colors.$secondary-color, 'info');
143
- @include cp-alert-style(colors.$success-color, 'success');
144
- @include cp-alert-style(colors.$warning-color, 'warning');
145
- @include cp-alert-style(colors.$error-color, 'critical');
142
+ @include cp-alert-style(var(--cp-background-accent-secondary), var(--cp-text-accent-primary), 'info');
143
+ @include cp-alert-style(var(--cp-background-success-secondary), var(--cp-text-success-primary), 'success');
144
+ @include cp-alert-style(var(--cp-background-warning-secondary), var(--cp-text-warning-primary), 'warning');
145
+ @include cp-alert-style(var(--cp-background-error-secondary), var(--cp-text-error-primary), 'critical');
146
146
  }
147
147
  </style>
@@ -91,8 +91,8 @@ const handleClear = () => emit('onClear')
91
91
  padding: $vertical-padding $horizontal-padding;
92
92
 
93
93
  .cpBadge__label {
94
- line-height: fn.px-to-rem($label-line-height);
95
- font-size: fn.px-to-rem($label-font-size);
94
+ line-height: $label-line-height;
95
+ font-size: $label-font-size;
96
96
  padding: 0 $label-padding;
97
97
  }
98
98
  }
@@ -100,11 +100,11 @@ const handleClear = () => emit('onClear')
100
100
 
101
101
  .cpBadge {
102
102
  display: inline-flex;
103
- padding: fn.px-to-rem(6);
103
+ padding: var(--cp-spacing-sm-md);
104
104
  align-items: center;
105
- border-radius: fn.px-to-rem(100);
106
- background-color: colors.$neutral-dark-5;
107
- color: colors.$neutral-dark;
105
+ border-radius: var(--cp-radius-full);
106
+ background-color: var(--cp-background-tertiary);
107
+ color: var(--cp-text-primary);
108
108
 
109
109
  &--isStroked {
110
110
  outline: 1px solid currentColor;
@@ -115,53 +115,173 @@ const handleClear = () => emit('onClear')
115
115
  }
116
116
 
117
117
  &--isSquare {
118
- border-radius: fn.px-to-rem(8);
118
+ border-radius: var(--cp-radius-md);
119
119
 
120
120
  &.cpBadge--xs {
121
- border-radius: fn.px-to-rem(4);
121
+ border-radius: var(--cp-radius-sm);
122
122
  }
123
123
  }
124
124
 
125
125
  &--isDisabled {
126
- background-color: colors.$gray-5;
127
- color: colors.$gray-500;
126
+ background-color: var(--cp-background-disabled);
127
+ color: var(--cp-text-disabled);
128
+
129
+ &.cpBadge--isStroked,
130
+ &.cpBadge--isDashed {
131
+ outline-color: var(--cp-border-disabled);
132
+ }
128
133
  }
129
134
 
130
- @include cp-badge-dynamic-padding(sp.$space, sp.$space-sm, sp.$space-sm, 14, 20);
135
+ @include cp-badge-dynamic-padding(
136
+ var(--cp-spacing-md),
137
+ var(--cp-spacing-sm),
138
+ var(--cp-spacing-sm),
139
+ var(--cp-text-size-sm),
140
+ var(--cp-line-height-sm)
141
+ );
131
142
 
132
143
  &--sm {
133
- padding: sp.$space-sm;
144
+ padding: var(--cp-spacing-sm);
134
145
  }
135
146
 
136
147
  &--xs {
137
- padding: sp.$space-xs;
148
+ padding: var(--cp-spacing-xs);
138
149
  }
139
150
 
140
151
  &--sm {
141
- @include cp-badge-dynamic-padding(sp.$space, sp.$space-sm, sp.$space-sm, 12, 16);
152
+ @include cp-badge-dynamic-padding(
153
+ var(--cp-spacing-md),
154
+ var(--cp-spacing-sm),
155
+ var(--cp-spacing-sm),
156
+ var(--cp-text-size-xs),
157
+ var(--cp-line-height-xs)
158
+ );
142
159
  }
143
160
 
144
161
  &--xs {
145
- @include cp-badge-dynamic-padding(sp.$space-sm, sp.$space-xs, sp.$space-xs, 12, 16);
162
+ @include cp-badge-dynamic-padding(
163
+ var(--cp-spacing-sm),
164
+ var(--cp-spacing-xs),
165
+ var(--cp-spacing-xs),
166
+ var(--cp-text-size-xs),
167
+ var(--cp-line-height-xs)
168
+ );
146
169
  }
147
170
 
148
- @include cp-badge-themed('Blue', colors.$blue, colors.$blue-100, colors.$blue-200);
149
- @include cp-badge-themed('Gray', colors.$astronaut, colors.$gray-5, colors.$gray-4);
150
- @include cp-badge-themed('Green', colors.$green, colors.$green-100, colors.$green-200);
151
- @include cp-badge-themed('Orange', colors.$orange-600, colors.$orange-100, colors.$orange-200);
152
- @include cp-badge-themed('Pink', colors.$pink, colors.$pink-100, colors.$pink-200);
153
- @include cp-badge-themed('Purple', colors.$purple, colors.$purple-100, colors.$purple-200);
154
- @include cp-badge-themed('Red', colors.$red, colors.$red-100, colors.$red-200);
155
- @include cp-badge-themed('Yellow', colors.$yellow-500, colors.$yellow-100, colors.$yellow-300);
156
- @include cp-badge-themed('Disabled', colors.$gray-500, colors.$gray-5, colors.$gray-500);
171
+ @include cp-badge-themed(
172
+ 'Neutral',
173
+ var(--cp-foreground-primary),
174
+ var(--cp-background-tertiary),
175
+ var(--cp-border-strong)
176
+ );
177
+
178
+ @include cp-badge-themed(
179
+ 'Accent',
180
+ var(--cp-foreground-accent-primary),
181
+ var(--cp-background-accent-secondary),
182
+ var(--cp-border-accent-primary)
183
+ );
184
+
185
+ @include cp-badge-themed(
186
+ 'Error',
187
+ var(--cp-foreground-error-primary),
188
+ var(--cp-background-error-secondary),
189
+ var(--cp-border-error-primary)
190
+ );
191
+
192
+ @include cp-badge-themed(
193
+ 'Warning',
194
+ var(--cp-foreground-warning-primary),
195
+ var(--cp-background-warning-secondary),
196
+ var(--cp-border-warning-primary)
197
+ );
198
+
199
+ @include cp-badge-themed(
200
+ 'Success',
201
+ var(--cp-foreground-success-primary),
202
+ var(--cp-background-success-secondary),
203
+ var(--cp-border-success-primary)
204
+ );
205
+
206
+ @include cp-badge-themed(
207
+ 'Blue',
208
+ var(--cp-foreground-blue-primary),
209
+ var(--cp-background-blue-secondary),
210
+ var(--cp-border-blue-primary)
211
+ );
212
+
213
+ @include cp-badge-themed(
214
+ 'Pink',
215
+ var(--cp-foreground-pink-primary),
216
+ var(--cp-background-pink-secondary),
217
+ var(--cp-border-pink-primary)
218
+ );
219
+
220
+ @include cp-badge-themed(
221
+ 'Magenta',
222
+ var(--cp-foreground-magenta-primary),
223
+ var(--cp-background-magenta-secondary),
224
+ var(--cp-border-magenta-primary)
225
+ );
226
+
227
+ @include cp-badge-themed(
228
+ 'Yellow',
229
+ var(--cp-foreground-yellow-primary),
230
+ var(--cp-background-yellow-secondary),
231
+ var(--cp-border-yellow-primary)
232
+ );
233
+
234
+ @include cp-badge-themed('White', var(--cp-foreground-primary), var(--cp-background-primary), var(--cp-border-soft));
235
+
236
+ @include cp-badge-themed(
237
+ 'Disabled',
238
+ var(--cp-text-disabled),
239
+ var(--cp-background-disabled),
240
+ var(--cp-border-disabled)
241
+ );
242
+
243
+ @include cp-badge-themed(
244
+ 'Gray',
245
+ var(--cp-foreground-primary),
246
+ var(--cp-background-secondary),
247
+ var(--cp-border-soft)
248
+ ); // TODO: Should be replace by NEUTRAL
249
+
250
+ @include cp-badge-themed(
251
+ 'Green',
252
+ var(--cp-foreground-success-primary),
253
+ var(--cp-background-success-secondary),
254
+ var(--cp-border-success-primary)
255
+ ); // TODO: Should be replace by SUCCESS
256
+
257
+ @include cp-badge-themed(
258
+ 'Orange',
259
+ var(--cp-foreground-warning-primary),
260
+ var(--cp-background-warning-secondary),
261
+ var(--cp-border-warning-primary)
262
+ ); // TODO: Should be replace by WARNING
263
+
264
+ @include cp-badge-themed(
265
+ 'Purple',
266
+ var(--cp-foreground-accent-primary),
267
+ var(--cp-background-accent-secondary),
268
+ var(--cp-border-accent-primary)
269
+ ); // TODO: Should be replace by ACCENT
270
+
271
+ @include cp-badge-themed(
272
+ 'Red',
273
+ var(--cp-foreground-error-primary),
274
+ var(--cp-background-error-secondary),
275
+ var(--cp-border-error-primary)
276
+ ); // TODO: Should be replace by ERROR
157
277
 
158
278
  &__icon {
159
- width: fn.px-to-rem(16);
279
+ width: var(--cp-dimensions-4);
160
280
  aspect-ratio: 1/1;
161
281
  }
162
282
 
163
283
  &__clearIcon {
164
- width: fn.px-to-rem(14);
284
+ width: var(--cp-dimensions-3_5);
165
285
  aspect-ratio: 1/1;
166
286
  }
167
287
 
@@ -169,13 +289,13 @@ const handleClear = () => emit('onClear')
169
289
  display: flex;
170
290
  align-items: center;
171
291
  justify-content: center;
172
- padding: fn.px-to-rem(1);
173
- border-radius: 50%;
292
+ padding: var(--cp-dimensions-0_25);
293
+ border-radius: var(--cp-radius-full);
174
294
  color: inherit;
175
295
 
176
296
  &:not(:disabled):hover,
177
297
  &:not(:disabled):focus-visible {
178
- color: colors.$neutral-light;
298
+ color: var(--cp-foreground-white);
179
299
  }
180
300
  }
181
301
  }