@citizenplane/pimp 18.6.2 → 18.8.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 (159) hide show
  1. package/biome.json +178 -0
  2. package/dist/components/BaseInputLabel.vue.d.ts.map +1 -1
  3. package/dist/components/BaseSelectClearButton.vue.d.ts.map +1 -1
  4. package/dist/components/CpAccordion.vue.d.ts.map +1 -1
  5. package/dist/components/CpAlert.vue.d.ts.map +1 -1
  6. package/dist/components/CpBadge.vue.d.ts.map +1 -1
  7. package/dist/components/CpButton.vue.d.ts.map +1 -1
  8. package/dist/components/CpButtonToggle.vue.d.ts +1 -1
  9. package/dist/components/CpButtonToggle.vue.d.ts.map +1 -1
  10. package/dist/components/CpCalendar.vue.d.ts.map +1 -1
  11. package/dist/components/CpCheckbox.vue.d.ts.map +1 -1
  12. package/dist/components/CpContextualMenu.vue.d.ts.map +1 -1
  13. package/dist/components/CpDate.vue.d.ts.map +1 -1
  14. package/dist/components/CpDatepicker.vue.d.ts.map +1 -1
  15. package/dist/components/CpInput.vue.d.ts.map +1 -1
  16. package/dist/components/CpItemActions.vue.d.ts +2 -0
  17. package/dist/components/CpItemActions.vue.d.ts.map +1 -1
  18. package/dist/components/CpMenu.vue.d.ts.map +1 -1
  19. package/dist/components/CpMenuItem.vue.d.ts.map +1 -1
  20. package/dist/components/CpMultiselect.vue.d.ts.map +1 -1
  21. package/dist/components/CpRadio.vue.d.ts.map +1 -1
  22. package/dist/components/CpRadioGroup.vue.d.ts.map +1 -1
  23. package/dist/components/CpRadioNew.vue.d.ts.map +1 -1
  24. package/dist/components/CpSelect.vue.d.ts.map +1 -1
  25. package/dist/components/CpSelectMenu.vue.d.ts.map +1 -1
  26. package/dist/components/CpSelectableButton.vue.d.ts +1 -1
  27. package/dist/components/CpSelectableButton.vue.d.ts.map +1 -1
  28. package/dist/components/CpSwitch.vue.d.ts.map +1 -1
  29. package/dist/components/CpTable.vue.d.ts.map +1 -1
  30. package/dist/components/CpTelInput.vue.d.ts.map +1 -1
  31. package/dist/components/CpTooltip.vue.d.ts +2 -0
  32. package/dist/components/CpTooltip.vue.d.ts.map +1 -1
  33. package/dist/components/CpTrip.vue.d.ts +48 -0
  34. package/dist/components/CpTrip.vue.d.ts.map +1 -0
  35. package/dist/components/CpTripTimeline.vue.d.ts +24 -0
  36. package/dist/components/CpTripTimeline.vue.d.ts.map +1 -0
  37. package/dist/components/index.d.ts +2 -1
  38. package/dist/components/index.d.ts.map +1 -1
  39. package/dist/composables/useDynamicSize.d.ts +9 -0
  40. package/dist/composables/useDynamicSize.d.ts.map +1 -0
  41. package/dist/constants/index.d.ts +2 -2
  42. package/dist/constants/index.d.ts.map +1 -1
  43. package/dist/constants/layout/Breakpoints.d.ts +9 -0
  44. package/dist/constants/layout/Breakpoints.d.ts.map +1 -0
  45. package/dist/constants/layout/Sizes.d.ts +2 -0
  46. package/dist/constants/layout/Sizes.d.ts.map +1 -0
  47. package/dist/constants/layout/index.d.ts +3 -0
  48. package/dist/constants/layout/index.d.ts.map +1 -0
  49. package/dist/helpers/functions.d.ts +1 -0
  50. package/dist/helpers/functions.d.ts.map +1 -1
  51. package/dist/libs/CoreDatepicker.vue.d.ts.map +1 -1
  52. package/dist/pimp.es.js +6797 -6461
  53. package/dist/pimp.umd.js +54 -54
  54. package/dist/style.css +1 -1
  55. package/package.json +14 -24
  56. package/src/assets/css/base.css +17 -11
  57. package/src/assets/css/colors.css +12 -22
  58. package/src/assets/css/dimensions.css +4 -0
  59. package/src/assets/css/shadows.css +0 -3
  60. package/src/assets/css/tokens.css +21 -65
  61. package/src/assets/css/typography.css +0 -17
  62. package/src/assets/main.css +7 -7
  63. package/src/assets/styles/helpers/_functions.scss +2 -2
  64. package/src/assets/styles/utilities/_index.scss +2 -3
  65. package/src/components/BaseInputLabel.vue +7 -11
  66. package/src/components/BaseSelectClearButton.vue +6 -7
  67. package/src/components/CpAccordion.vue +27 -28
  68. package/src/components/CpAccordionGroup.vue +2 -2
  69. package/src/components/CpAlert.vue +12 -11
  70. package/src/components/CpBadge.vue +4 -19
  71. package/src/components/CpButton.vue +23 -25
  72. package/src/components/CpButtonGroup.vue +2 -2
  73. package/src/components/CpButtonToggle.vue +22 -22
  74. package/src/components/CpCalendar.vue +30 -26
  75. package/src/components/CpCheckbox.vue +29 -33
  76. package/src/components/CpContextualMenu.vue +1 -2
  77. package/src/components/CpDate.vue +72 -76
  78. package/src/components/CpDatepicker.vue +2 -3
  79. package/src/components/CpDialog.vue +8 -8
  80. package/src/components/CpHeading.vue +6 -6
  81. package/src/components/CpIcon.vue +2 -2
  82. package/src/components/CpInput.vue +46 -48
  83. package/src/components/CpItemActions.vue +17 -16
  84. package/src/components/CpMenu.vue +8 -9
  85. package/src/components/CpMenuItem.vue +7 -7
  86. package/src/components/CpMenuList.vue +3 -3
  87. package/src/components/CpMultiselect.vue +29 -30
  88. package/src/components/CpRadio.vue +53 -59
  89. package/src/components/CpRadioGroup.vue +11 -12
  90. package/src/components/CpRadioNew.vue +56 -58
  91. package/src/components/CpSelect.vue +42 -42
  92. package/src/components/CpSelectMenu.vue +32 -32
  93. package/src/components/CpSelectableButton.vue +50 -51
  94. package/src/components/CpSwitch.vue +43 -44
  95. package/src/components/CpTable.vue +69 -81
  96. package/src/components/CpTableColumnEditor.vue +16 -16
  97. package/src/components/CpTableEmptyState.vue +4 -4
  98. package/src/components/CpTableFooter.vue +2 -2
  99. package/src/components/CpTableFooterDesktop.vue +2 -2
  100. package/src/components/CpTableFooterDetails.vue +2 -2
  101. package/src/components/CpTableFooterMobile.vue +4 -4
  102. package/src/components/CpTabs.vue +1 -1
  103. package/src/components/CpTelInput.vue +31 -32
  104. package/src/components/CpTextarea.vue +13 -13
  105. package/src/components/CpToast.vue +25 -24
  106. package/src/components/CpTooltip.vue +15 -13
  107. package/src/components/CpTransitionCounter.vue +1 -1
  108. package/src/components/CpTransitionExpand.vue +5 -5
  109. package/src/components/CpTransitionSize.vue +1 -1
  110. package/src/components/CpTrip.vue +190 -0
  111. package/src/components/CpTripTimeline.vue +272 -0
  112. package/src/components/index.ts +36 -34
  113. package/src/composables/useDynamicSize.ts +60 -0
  114. package/src/constants/index.ts +2 -2
  115. package/src/constants/layout/Breakpoints.ts +8 -0
  116. package/src/constants/layout/Sizes.ts +1 -0
  117. package/src/constants/layout/index.ts +3 -0
  118. package/src/directives/ClickOutside.ts +1 -1
  119. package/src/directives/ResizeSelect.ts +1 -1
  120. package/src/helpers/functions.ts +1 -1
  121. package/src/helpers/index.ts +1 -1
  122. package/src/libs/CoreDatepicker.vue +115 -134
  123. package/src/stories/Colors.stories.ts +2 -1
  124. package/src/stories/CpAccordion.stories.ts +2 -2
  125. package/src/stories/CpAccordionGroup.stories.ts +1 -2
  126. package/src/stories/CpButtonToggle.stories.ts +1 -2
  127. package/src/stories/CpCheckbox.stories.ts +1 -2
  128. package/src/stories/CpContextualMenu.stories.ts +1 -2
  129. package/src/stories/CpDate.stories.ts +1 -2
  130. package/src/stories/CpDatepicker.stories.ts +1 -2
  131. package/src/stories/CpDialog.stories.ts +1 -2
  132. package/src/stories/CpInput.stories.ts +1 -2
  133. package/src/stories/CpItemActions.stories.ts +10 -5
  134. package/src/stories/CpMenu.stories.ts +1 -2
  135. package/src/stories/CpMenuItem.stories.ts +1 -2
  136. package/src/stories/CpMultiselect.stories.ts +1 -2
  137. package/src/stories/CpRadio.stories.ts +1 -2
  138. package/src/stories/CpRadioGroup.stories.ts +1 -2
  139. package/src/stories/CpSelect.stories.ts +1 -2
  140. package/src/stories/CpSelectMenu.stories.ts +1 -2
  141. package/src/stories/CpSwitch.stories.ts +1 -2
  142. package/src/stories/CpTable.stories.ts +2 -3
  143. package/src/stories/CpTabs.stories.ts +1 -2
  144. package/src/stories/CpText.stories.ts +2 -1
  145. package/src/stories/CpTextarea.stories.ts +1 -2
  146. package/src/stories/CpToast.stories.ts +2 -3
  147. package/src/stories/CpTransitionCounter.stories.ts +1 -2
  148. package/src/stories/CpTransitionExpand.stories.ts +1 -2
  149. package/src/stories/CpTransitionListItems.stories.ts +1 -2
  150. package/src/stories/CpTransitionSize.stories.ts +1 -2
  151. package/src/stories/CpTransitionSlide.stories.ts +1 -2
  152. package/src/stories/CpTransitionTabContent.stories.ts +1 -2
  153. package/src/stories/CpTrip.stories.ts +323 -0
  154. package/src/stories/Dimensions.stories.ts +1 -0
  155. package/src/stories/Shadows.stories.ts +1 -0
  156. package/src/stories/Typography.stories.ts +1 -0
  157. package/src/vendors/ff-polyfill.ts +1 -1
  158. package/vitest.workspace.js +1 -1
  159. package/src/components/Pimp.vue +0 -10
@@ -29,15 +29,13 @@
29
29
  </template>
30
30
 
31
31
  <script setup lang="ts">
32
+ import type { Slots } from 'vue'
32
33
  import { computed, useSlots } from 'vue'
33
34
  import { useWebHaptics } from 'web-haptics/vue'
34
35
 
35
- import type { Slots } from 'vue'
36
-
37
- import { Haptics } from '@/constants/Hapitcs'
38
-
39
36
  import CpLoader from '@/components/CpLoader.vue'
40
37
 
38
+ import { Haptics } from '@/constants/Hapitcs'
41
39
  import { capitalizeFirstLetter } from '@/helpers'
42
40
 
43
41
  export interface Props {
@@ -110,8 +108,8 @@ const handleClick = (event: MouseEvent) => {
110
108
  &--isPrimary#{&}--is#{$className} {
111
109
  &:not(:disabled) {
112
110
  background-color: $backgroundColor;
113
- color: $color;
114
111
  box-shadow: var(--cp-shadows-3xs);
112
+ color: $color;
115
113
 
116
114
  &:hover {
117
115
  background-color: $hoverBackgroundColor;
@@ -131,10 +129,10 @@ const handleClick = (event: MouseEvent) => {
131
129
  &--isSecondary#{&}--is#{$className} {
132
130
  &:not(:disabled) {
133
131
  background-color: var(--cp-background-primary);
134
- color: $color;
135
132
  box-shadow:
136
133
  var(--cp-shadows-3xs-inset),
137
134
  0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft);
135
+ color: $color;
138
136
 
139
137
  &:hover {
140
138
  background-color: var(--cp-background-primary-hover);
@@ -175,27 +173,27 @@ const handleClick = (event: MouseEvent) => {
175
173
  }
176
174
 
177
175
  .cpButton {
178
- border-radius: var(--cp-radius-full);
179
176
  padding: var(--cp-spacing-md) var(--cp-spacing-lg);
177
+ border-radius: var(--cp-radius-full);
178
+ cursor: pointer;
179
+ font-weight: 500;
180
180
  line-height: var(--cp-line-height-md);
181
+ outline-offset: fn.px-to-rem(2);
181
182
  text-decoration: none;
182
- font-weight: 500;
183
- transition-property: box-shadow, background-color, transform, width;
184
183
  transition-duration: 150ms;
184
+ transition-property: box-shadow, background-color, transform, width;
185
185
  transition-timing-function: ease;
186
- outline-offset: fn.px-to-rem(2);
187
- cursor: pointer;
188
-
189
- &,
190
- &:visited {
191
- color: var(--cp-text-primary);
192
- }
193
186
 
194
187
  &,
195
188
  &__body {
196
189
  display: inline-flex;
197
- justify-content: center;
198
190
  align-items: center;
191
+ justify-content: center;
192
+ }
193
+
194
+ &,
195
+ &:visited {
196
+ color: var(--cp-text-primary);
199
197
  }
200
198
 
201
199
  &:hover {
@@ -278,8 +276,8 @@ const handleClick = (event: MouseEvent) => {
278
276
  );
279
277
 
280
278
  &--isDisabled {
281
- box-shadow: none;
282
279
  background-color: var(--cp-background-disabled);
280
+ box-shadow: none;
283
281
  color: var(--cp-text-disabled);
284
282
  user-select: none;
285
283
 
@@ -291,10 +289,10 @@ const handleClick = (event: MouseEvent) => {
291
289
  }
292
290
 
293
291
  &__body {
292
+ position: relative;
294
293
  display: flex;
295
294
  align-items: center;
296
295
  gap: var(--cp-spacing-sm-md);
297
- position: relative;
298
296
  text-align: center;
299
297
  transition: padding-left 250ms var(--cp-easing-elastic);
300
298
  }
@@ -329,8 +327,8 @@ const handleClick = (event: MouseEvent) => {
329
327
  @include mx.square-sizing(24);
330
328
 
331
329
  position: absolute;
332
- left: 0;
333
330
  top: 50%;
331
+ left: 0;
334
332
  transform: translateY(-50%);
335
333
  }
336
334
 
@@ -368,8 +366,8 @@ const handleClick = (event: MouseEvent) => {
368
366
  }
369
367
 
370
368
  &--2xs {
371
- font-size: var(--cp-text-size-xs);
372
369
  padding: var(--cp-spacing-sm) var(--cp-spacing-md);
370
+ font-size: var(--cp-text-size-xs);
373
371
  line-height: var(--cp-line-height-xs);
374
372
 
375
373
  &.cpButton--isIcon {
@@ -378,8 +376,8 @@ const handleClick = (event: MouseEvent) => {
378
376
  }
379
377
 
380
378
  &--xs {
381
- font-size: var(--cp-text-size-sm);
382
379
  padding: var(--cp-spacing-sm) var(--cp-spacing-md);
380
+ font-size: var(--cp-text-size-sm);
383
381
  line-height: var(--cp-line-height-sm);
384
382
 
385
383
  &.cpButton--isIcon {
@@ -388,8 +386,8 @@ const handleClick = (event: MouseEvent) => {
388
386
  }
389
387
 
390
388
  &--sm {
391
- font-size: var(--cp-text-size-sm);
392
389
  padding: var(--cp-spacing-sm-md) var(--cp-spacing-md);
390
+ font-size: var(--cp-text-size-sm);
393
391
  line-height: var(--cp-line-height-sm);
394
392
 
395
393
  &.cpButton--isIcon {
@@ -398,8 +396,8 @@ const handleClick = (event: MouseEvent) => {
398
396
  }
399
397
 
400
398
  &--md {
401
- font-size: var(--cp-text-size-md);
402
399
  padding: var(--cp-spacing-md) var(--cp-spacing-lg);
400
+ font-size: var(--cp-text-size-md);
403
401
  line-height: var(--cp-line-height-md);
404
402
 
405
403
  &.cpButton--isIcon {
@@ -408,8 +406,8 @@ const handleClick = (event: MouseEvent) => {
408
406
  }
409
407
 
410
408
  &--lg {
411
- font-size: var(--cp-text-size-md);
412
409
  padding: var(--cp-spacing-lg) var(--cp-spacing-xl);
410
+ font-size: var(--cp-text-size-md);
413
411
  line-height: var(--cp-line-height-md);
414
412
 
415
413
  &.cpButton--isIcon {
@@ -43,13 +43,13 @@ const dynamicClasses = computed(() => `cpButtonGroup--${props.size}`)
43
43
  position: relative;
44
44
 
45
45
  &:not(:first-child, :only-child)::before {
46
- content: '';
47
46
  position: absolute;
47
+ top: fn.px-to-rem(-1);
48
48
  left: fn.px-to-rem(-1);
49
49
  width: fn.px-to-rem(1);
50
50
  height: calc(100% + fn.px-to-rem(2));
51
- top: fn.px-to-rem(-1);
52
51
  background-color: var(--cp-border-soft);
52
+ content: '';
53
53
  }
54
54
  }
55
55
  }
@@ -60,39 +60,48 @@ const handleClick = (event: MouseEvent) => {
60
60
  display: inline-flex;
61
61
  align-items: center;
62
62
  justify-content: center;
63
- gap: var(--cp-spacing-md);
64
63
  padding: var(--cp-spacing-lg);
65
64
  border-radius: var(--cp-radius-md);
65
+ background-color: var(--cp-background-primary);
66
66
  box-shadow:
67
67
  var(--cp-shadows-3xs-inset),
68
68
  0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft);
69
- background-color: var(--cp-background-primary);
70
69
  color: var(--cp-text-secondary);
70
+ gap: var(--cp-spacing-md);
71
71
  transition:
72
72
  background-color 100ms ease-out,
73
73
  box-shadow 100ms ease-out,
74
74
  color 100ms ease-out,
75
75
  transform 100ms ease;
76
76
 
77
+ &:focus-visible {
78
+ box-shadow:
79
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover),
80
+ var(--cp-shadow-focus-ring-accent);
81
+ }
82
+
83
+ &:disabled {
84
+ background-color: var(--cp-background-disabled);
85
+ box-shadow:
86
+ var(--cp-shadows-3xs-inset),
87
+ 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-disabled);
88
+ color: var(--cp-text-disabled);
89
+ cursor: not-allowed;
90
+ }
91
+
77
92
  &:hover:not(:disabled) {
78
- transform: translateY(fn.px-to-rem(-1));
79
93
  background-color: var(--cp-background-primary-hover);
80
- color: var(--cp-text-secondary-hover);
81
94
  box-shadow:
82
95
  var(--cp-shadows-3xs-inset),
83
96
  0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover);
97
+ color: var(--cp-text-secondary-hover);
98
+ transform: translateY(fn.px-to-rem(-1));
84
99
  }
85
100
 
86
101
  &:active:not(:disabled) {
87
102
  transform: translateY(fn.px-to-rem(1));
88
103
  }
89
104
 
90
- &:focus-visible {
91
- box-shadow:
92
- 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-soft-hover),
93
- var(--cp-shadow-focus-ring-accent);
94
- }
95
-
96
105
  &__leading {
97
106
  display: flex;
98
107
  align-items: center;
@@ -100,8 +109,8 @@ const handleClick = (event: MouseEvent) => {
100
109
 
101
110
  &__label {
102
111
  font-size: var(--cp-text-size-sm);
103
- line-height: var(--cp-line-height-sm);
104
112
  font-weight: 500;
113
+ line-height: var(--cp-line-height-sm);
105
114
  }
106
115
 
107
116
  &__defaultLeading,
@@ -109,28 +118,19 @@ const handleClick = (event: MouseEvent) => {
109
118
  pointer-events: none;
110
119
  }
111
120
 
112
- &:disabled {
113
- cursor: not-allowed;
114
- background-color: var(--cp-background-disabled);
115
- color: var(--cp-text-disabled);
116
- box-shadow:
117
- var(--cp-shadows-3xs-inset),
118
- 0 0 0 var(--cp-dimensions-0_25) var(--cp-border-disabled);
119
- }
120
-
121
121
  &--isSelected:not(:disabled) {
122
122
  background-color: var(--cp-background-accent-secondary);
123
- color: var(--cp-text-accent-primary);
124
123
  box-shadow:
125
124
  var(--cp-shadows-3xs-inset),
126
125
  0 0 0 var(--cp-dimensions-0_25) var(--cp-border-accent-solid);
126
+ color: var(--cp-text-accent-primary);
127
127
 
128
128
  &:hover {
129
129
  background-color: var(--cp-background-accent-secondary-hover);
130
- color: var(--cp-text-accent-primary-hover);
131
130
  box-shadow:
132
131
  var(--cp-shadows-3xs-inset),
133
132
  0 0 0 var(--cp-dimensions-0_25) var(--cp-border-accent-solid);
133
+ color: var(--cp-text-accent-primary-hover);
134
134
  }
135
135
 
136
136
  &:focus-visible {
@@ -83,7 +83,7 @@
83
83
 
84
84
  <script setup lang="ts">
85
85
  import { DateTime, Info, Interval } from 'luxon'
86
- import { ref, computed, watch, useId } from 'vue'
86
+ import { computed, ref, useId, watch } from 'vue'
87
87
 
88
88
  import CpButton from '@/components/CpButton.vue'
89
89
  import CpIcon from '@/components/CpIcon.vue'
@@ -200,10 +200,12 @@ const removeRecurency = (): void => {
200
200
 
201
201
  const emitToParent = (): void => {
202
202
  let dates = [dateOne.value]
203
+
203
204
  if (isDaysDisplayed.value) {
204
205
  dates = recurenceDates.value.length ? datesToStringArray(recurenceDates.value) : []
205
206
  }
206
- return emit('dates', dates)
207
+
208
+ emit('dates', dates)
207
209
  }
208
210
 
209
211
  const generateDates = (startDate: string, endDate: string, selectedWeekDaysIndex: number[]): string[] => {
@@ -238,7 +240,7 @@ const selectDate = (key: 'dateOne' | 'dateTwo', value: string): void => {
238
240
  recurenceDates.value = generateDates(dateOne.value, dateTwo.value, selectedDays.value)
239
241
  }
240
242
 
241
- return emitToParent()
243
+ emitToParent()
242
244
  }
243
245
 
244
246
  const datesToStringArray = (dates: string[]): string[] => {
@@ -256,10 +258,12 @@ watch(isInline, (value) => {
256
258
  .fade-leave-active {
257
259
  transition: opacity 100ms;
258
260
  }
261
+
259
262
  .fade-enter-from,
260
263
  .fade-leave-to {
261
264
  opacity: 0;
262
265
  }
266
+
263
267
  .cpCalendar {
264
268
  // Opening transition layout adaptation
265
269
  .asd__fade-enter-from {
@@ -286,8 +290,8 @@ watch(isInline, (value) => {
286
290
 
287
291
  @media (max-width: 767px) and (min-width: 350px) {
288
292
  &__datepicker {
289
- left: 0;
290
293
  right: 0;
294
+ left: 0;
291
295
  transform: initial;
292
296
  }
293
297
 
@@ -310,18 +314,18 @@ watch(isInline, (value) => {
310
314
  }
311
315
 
312
316
  .footer-container {
313
- background: var(--cp-background-white);
314
317
  border-top: 1px solid var(--cp-border-soft);
318
+ background: var(--cp-background-white);
315
319
 
316
320
  .asd__recurency--action {
317
- padding: var(--cp-spacing-xl);
318
321
  display: flex;
319
322
  align-items: center;
320
323
  justify-content: space-between;
324
+ padding: var(--cp-spacing-xl);
321
325
 
322
326
  button {
323
- font-size: var(--cp-text-size-md);
324
327
  color: var(--cp-text-primary);
328
+ font-size: var(--cp-text-size-md);
325
329
  }
326
330
  }
327
331
 
@@ -329,19 +333,19 @@ watch(isInline, (value) => {
329
333
  border: #b5b5b5;
330
334
 
331
335
  &:not([disabled]) {
336
+ border: var(--cp-background-accent-solid);
332
337
  background-color: var(--cp-background-accent-solid);
333
338
  color: var(--cp-text-white) !important;
334
- border: var(--cp-background-accent-solid);
335
339
  }
336
340
  }
337
341
 
338
342
  .asd__recurency--ul {
339
- margin: 0;
340
- margin-top: -1px;
341
343
  display: flex;
342
- -webkit-padding-start: 0;
343
344
  height: inherit;
345
+ margin: 0;
346
+ margin-top: -1px;
344
347
  cursor: pointer;
348
+ -webkit-padding-start: 0;
345
349
 
346
350
  @media (min-width: 768px) {
347
351
  height: var(--cp-dimensions-16);
@@ -355,14 +359,14 @@ watch(isInline, (value) => {
355
359
 
356
360
  .asd__recurency--li {
357
361
  display: flex;
358
- flex-direction: column;
362
+ height: var(--cp-dimensions-16);
359
363
  flex: 1;
360
- justify-content: center;
364
+ flex-direction: column;
361
365
  align-items: center;
366
+ justify-content: center;
362
367
  border-top: 1px solid var(--cp-border-soft);
363
- font-size: var(--cp-text-size-md);
364
368
  color: var(--cp-text-primary);
365
- height: var(--cp-dimensions-16);
369
+ font-size: var(--cp-text-size-md);
366
370
  transition: background 200ms linear;
367
371
 
368
372
  @media (max-width: 768px) {
@@ -375,21 +379,21 @@ watch(isInline, (value) => {
375
379
  }
376
380
 
377
381
  .checkbox--border {
378
- height: 100%;
379
382
  width: 100%;
383
+ height: 100%;
380
384
  border: 1px solid var(--cp-border-soft);
381
385
  }
382
386
 
383
387
  .feather-check {
384
- height: 100%;
385
388
  width: 100%;
389
+ height: 100%;
386
390
  color: var(--cp-text-accent-primary);
387
391
  }
388
392
 
389
393
  span {
394
+ padding-top: calc(var(--cp-dimensions-0_5) * 1.5);
390
395
  font-size: var(--cp-text-size-sm);
391
396
  line-height: var(--cp-line-height-sm);
392
- padding-top: calc(var(--cp-dimensions-0_5) * 1.5);
393
397
  user-select: none;
394
398
  }
395
399
  }
@@ -399,16 +403,16 @@ watch(isInline, (value) => {
399
403
  }
400
404
 
401
405
  .asd__recurency--summary {
402
- padding-left: var(--cp-spacing-xl);
403
406
  padding-right: var(--cp-spacing-xl);
407
+ padding-left: var(--cp-spacing-xl);
404
408
  }
405
409
 
406
410
  .asd__recurency--text {
407
- background: var(--cp-text-primary);
408
- border-radius: var(--cp-radius-md-lg);
409
411
  display: flex;
410
- justify-content: center;
411
412
  align-items: center;
413
+ justify-content: center;
414
+ border-radius: var(--cp-radius-md-lg);
415
+ background: var(--cp-text-primary);
412
416
  color: #d8d8ff;
413
417
 
414
418
  svg {
@@ -416,14 +420,14 @@ watch(isInline, (value) => {
416
420
  }
417
421
 
418
422
  span {
419
- white-space: normal;
420
423
  padding: var(--cp-dimensions-2_5);
421
424
  padding-left: var(--cp-dimensions-0_5);
422
425
  font-size: var(--cp-text-size-sm);
426
+ white-space: normal;
427
+ }
423
428
 
424
- strong {
425
- color: var(--cp-text-white);
426
- }
429
+ span strong {
430
+ color: var(--cp-text-white);
427
431
  }
428
432
  }
429
433
  }
@@ -28,7 +28,7 @@
28
28
  </template>
29
29
 
30
30
  <script setup lang="ts">
31
- import { computed, ref, useSlots, useId, watch, nextTick } from 'vue'
31
+ import { computed, nextTick, ref, useId, useSlots, watch } from 'vue'
32
32
 
33
33
  import { ToggleColors } from '@/constants'
34
34
  import { capitalizeFirstLetter } from '@/helpers'
@@ -135,19 +135,19 @@ const onChange = () => {
135
135
  @mixin cp-checkbox-style($color, $bgHoverColor, $className) {
136
136
  &--is#{$className} input:checked,
137
137
  &--is#{$className} input:indeterminate {
138
- background-color: $color;
139
138
  border-color: $color;
139
+ background-color: $color;
140
140
  }
141
141
 
142
142
  &--is#{$className}:hover input {
143
- background-color: var(--cp-background-primary-hover);
144
143
  border-color: var(--cp-border-soft-hover);
144
+ background-color: var(--cp-background-primary-hover);
145
145
  }
146
146
 
147
147
  &--is#{$className}:hover input:checked,
148
148
  &--is#{$className}:hover input:indeterminate {
149
- background-color: $bgHoverColor;
150
149
  border-color: $bgHoverColor;
150
+ background-color: $bgHoverColor;
151
151
  }
152
152
 
153
153
  &--is#{$className} input:focus-visible {
@@ -165,9 +165,7 @@ const onChange = () => {
165
165
  cursor: pointer;
166
166
 
167
167
  @include cp-checkbox-style(var(--cp-background-accent-solid), var(--cp-background-accent-solid-hover), 'Accent');
168
-
169
168
  @include cp-checkbox-style(var(--cp-background-blue-solid), var(--cp-background-blue-solid-hover), 'Blue');
170
-
171
169
  @include cp-checkbox-style(
172
170
  var(--cp-background-accent-solid),
173
171
  var(--cp-background-accent-solid-hover),
@@ -180,27 +178,25 @@ const onChange = () => {
180
178
 
181
179
  &__wrapper {
182
180
  display: flex;
181
+ flex-shrink: 0;
183
182
  align-items: center;
184
183
  justify-content: center;
185
184
  padding: var(--cp-spacing-sm);
186
- flex-shrink: 0;
187
185
  }
188
186
 
189
187
  input {
190
- -webkit-appearance: none;
191
- -moz-appearance: none;
192
- appearance: none;
193
- border: var(--cp-dimensions-0_25) solid var(--cp-border-soft);
194
- border-radius: var(--cp-radius-sm);
195
188
  width: var(--cp-dimensions-4);
196
189
  height: var(--cp-dimensions-4);
197
190
  flex-shrink: 0;
198
- cursor: pointer;
191
+ border: var(--cp-dimensions-0_25) solid var(--cp-border-soft);
192
+ border-radius: var(--cp-radius-sm);
193
+ appearance: none;
194
+ background-color: var(--cp-background-primary);
199
195
  box-shadow: var(--cp-shadows-3xs);
196
+ cursor: pointer;
200
197
  transition:
201
198
  background-color 0.1s ease-out,
202
199
  transform 0.1s linear;
203
- background-color: var(--cp-background-primary);
204
200
 
205
201
  & + i {
206
202
  position: absolute;
@@ -218,14 +214,14 @@ const onChange = () => {
218
214
 
219
215
  &:checked + i,
220
216
  &:indeterminate + i {
221
- visibility: visible;
222
217
  opacity: 1;
218
+ visibility: visible;
223
219
  }
224
220
 
225
221
  &:disabled {
226
222
  background-color: var(--cp-background-disabled);
227
- cursor: not-allowed;
228
223
  box-shadow: none;
224
+ cursor: not-allowed;
229
225
  }
230
226
 
231
227
  &:checked:disabled,
@@ -243,23 +239,6 @@ const onChange = () => {
243
239
  }
244
240
  }
245
241
 
246
- &--isDisabled {
247
- cursor: not-allowed;
248
- }
249
-
250
- &--isDisabled &__label,
251
- &--isDisabled &__helper {
252
- color: var(--cp-text-disabled);
253
- }
254
-
255
- &--isReversed {
256
- flex-direction: row-reverse;
257
- }
258
-
259
- &__content {
260
- flex: 1;
261
- }
262
-
263
242
  &__label,
264
243
  &__helper {
265
244
  display: block;
@@ -277,5 +256,22 @@ const onChange = () => {
277
256
  &__helper {
278
257
  color: var(--cp-text-secondary);
279
258
  }
259
+
260
+ &--isDisabled {
261
+ cursor: not-allowed;
262
+ }
263
+
264
+ &--isDisabled &__label,
265
+ &--isDisabled &__helper {
266
+ color: var(--cp-text-disabled);
267
+ }
268
+
269
+ &--isReversed {
270
+ flex-direction: row-reverse;
271
+ }
272
+
273
+ &__content {
274
+ flex: 1;
275
+ }
280
276
  }
281
277
  </style>
@@ -13,9 +13,8 @@
13
13
 
14
14
  <script setup lang="ts">
15
15
  import ContextMenu from 'primevue/contextmenu'
16
- import { ref } from 'vue'
17
-
18
16
  import type { MenuItem } from 'primevue/menuitem'
17
+ import { ref } from 'vue'
19
18
 
20
19
  import CpMenuItem from '@/components/CpMenuItem.vue'
21
20