@citizenplane/pimp 9.14.0 → 9.15.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@citizenplane/pimp",
3
- "version": "9.14.0",
3
+ "version": "9.15.0",
4
4
  "scripts": {
5
5
  "dev": "storybook dev -p 8080",
6
6
  "build-storybook": "storybook build --output-dir ./docs",
@@ -1,11 +1,4 @@
1
- @use '../variables/colors' as colors;
2
- @use '../helpers/functions' as fn;
3
-
4
- :root {
5
- --pimp-font-monospace: 'Azeret Mono';
6
- }
7
-
8
- // Primary Elements
1
+ /* Primary Elements */
9
2
 
10
3
  html {
11
4
  /* border-box box model allows us to add padding and border to our elements without increasing their size */
@@ -15,7 +8,7 @@ html {
15
8
  -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji',
16
9
  'Segoe UI Emoji', 'Segoe UI Symbol';
17
10
  font-size: 100%;
18
- color: colors.$neutral-dark;
11
+ color: var(--pimp-text-primary);
19
12
  -webkit-font-smoothing: antialiased;
20
13
  -moz-osx-font-smoothing: grayscale;
21
14
  -ms-text-size-adjust: 100%;
@@ -39,7 +32,7 @@ body {
39
32
  background-color: transparent;
40
33
  }
41
34
 
42
- // Secondary Elements
35
+ /* Secondary Elements */
43
36
  button {
44
37
  border-style: none;
45
38
  padding: 0;
@@ -0,0 +1,123 @@
1
+ :root {
2
+ --pimp-colors-black: #000000;
3
+
4
+ --pimp-colors-blue-100: #e5efff;
5
+ --pimp-colors-blue-1000: #00133a;
6
+ --pimp-colors-blue-200: #bdd6ff;
7
+ --pimp-colors-blue-300: #90baff;
8
+ --pimp-colors-blue-400: #4c8dfa;
9
+ --pimp-colors-blue-50: #f6faff;
10
+ --pimp-colors-blue-500: #1564de;
11
+ --pimp-colors-blue-600: #0049b1;
12
+ --pimp-colors-blue-700: #003382;
13
+ --pimp-colors-blue-800: #00286a;
14
+ --pimp-colors-blue-900: #001e53;
15
+
16
+ --pimp-colors-green-100: #dcf9e8;
17
+ --pimp-colors-green-1000: #001c0f;
18
+ --pimp-colors-green-200: #98eabe;
19
+ --pimp-colors-green-300: #54d599;
20
+ --pimp-colors-green-400: #00ac71;
21
+ --pimp-colors-green-50: #ecfff4;
22
+ --pimp-colors-green-500: #008254;
23
+ --pimp-colors-green-600: #00623e;
24
+ --pimp-colors-green-700: #00462b;
25
+ --pimp-colors-green-800: #003822;
26
+ --pimp-colors-green-900: #002b19;
27
+
28
+ --pimp-colors-grey-100: #f2f3fa;
29
+ --pimp-colors-grey-1000: #20212f;
30
+ --pimp-colors-grey-200: #e9eaf6;
31
+ --pimp-colors-grey-300: #d1d3e6;
32
+ --pimp-colors-grey-400: #b4b7d3;
33
+ --pimp-colors-grey-50: #f9f9fd;
34
+ --pimp-colors-grey-500: #989bba;
35
+ --pimp-colors-grey-600: #717496;
36
+ --pimp-colors-grey-700: #525470;
37
+ --pimp-colors-grey-800: #36384d;
38
+ --pimp-colors-grey-900: #2b2c3e;
39
+
40
+ --pimp-colors-grey-shadow-color-10: rgba(108, 110, 181, 0.1);
41
+ --pimp-colors-grey-shadow-color-12-5: rgba(108, 110, 181, 0.125);
42
+ --pimp-colors-grey-shadow-color-15: rgba(108, 110, 181, 0.15);
43
+ --pimp-colors-grey-shadow-color-17-5: rgba(108, 110, 181, 0.175);
44
+ --pimp-colors-grey-shadow-color-20: rgba(108, 110, 181, 0.2);
45
+ --pimp-colors-grey-shadow-color-3: rgba(108, 110, 181, 0.03);
46
+ --pimp-colors-grey-shadow-color-4: rgba(108, 110, 181, 0.04);
47
+ --pimp-colors-grey-shadow-color-5: rgba(108, 110, 181, 0.05);
48
+ --pimp-colors-grey-shadow-color-7-5: rgba(108, 110, 181, 0.075);
49
+
50
+ --pimp-colors-magenta-100: #ffe7ed;
51
+ --pimp-colors-magenta-1000: #300015;
52
+ --pimp-colors-magenta-200: #ffc1d2;
53
+ --pimp-colors-magenta-300: #ff92b5;
54
+ --pimp-colors-magenta-400: #e8528c;
55
+ --pimp-colors-magenta-50: #fff7f9;
56
+ --pimp-colors-magenta-500: #c40d68;
57
+ --pimp-colors-magenta-600: #97004e;
58
+ --pimp-colors-magenta-700: #6e0037;
59
+ --pimp-colors-magenta-800: #59002c;
60
+ --pimp-colors-magenta-900: #450020;
61
+
62
+ --pimp-colors-orange-100: #ffeddf;
63
+ --pimp-colors-orange-1000: #251000;
64
+ --pimp-colors-orange-200: #fec89e;
65
+ --pimp-colors-orange-300: #f9a255;
66
+ --pimp-colors-orange-400: #de7c00;
67
+ --pimp-colors-orange-50: #fff8f2;
68
+ --pimp-colors-orange-500: #a05800;
69
+ --pimp-colors-orange-600: #7a4100;
70
+ --pimp-colors-orange-700: #582e00;
71
+ --pimp-colors-orange-800: #472400;
72
+ --pimp-colors-orange-900: #371a00;
73
+
74
+ --pimp-colors-pink-100: #fce6fd;
75
+ --pimp-colors-pink-1000: #29002d;
76
+ --pimp-colors-pink-200: #f8bdfb;
77
+ --pimp-colors-pink-300: #f08ef6;
78
+ --pimp-colors-pink-400: #d054d8;
79
+ --pimp-colors-pink-50: #fff6ff;
80
+ --pimp-colors-pink-500: #a825b1;
81
+ --pimp-colors-pink-600: #84068c;
82
+ --pimp-colors-pink-700: #600067;
83
+ --pimp-colors-pink-800: #4e0054;
84
+ --pimp-colors-pink-900: #3c0040;
85
+
86
+ --pimp-colors-red-100: #fce9e8;
87
+ --pimp-colors-red-1000: #320006;
88
+ --pimp-colors-red-200: #ffc3c2;
89
+ --pimp-colors-red-300: #ff9798;
90
+ --pimp-colors-red-400: #f24e5c;
91
+ --pimp-colors-red-50: #fff7f7;
92
+ --pimp-colors-red-500: #d52841;
93
+ --pimp-colors-red-600: #9c0025;
94
+ --pimp-colors-red-700: #710019;
95
+ --pimp-colors-red-800: #5d0012;
96
+ --pimp-colors-red-900: #48000c;
97
+
98
+ --pimp-colors-violet-100: #eaecff;
99
+ --pimp-colors-violet-1000: #13004a;
100
+ --pimp-colors-violet-200: #ccd0ff;
101
+ --pimp-colors-violet-300: #acb1ff;
102
+ --pimp-colors-violet-400: #807dff;
103
+ --pimp-colors-violet-50: #f8f9ff;
104
+ --pimp-colors-violet-500: #603dfd;
105
+ --pimp-colors-violet-600: #4a00da;
106
+ --pimp-colors-violet-700: #3400a0;
107
+ --pimp-colors-violet-800: #2a0084;
108
+ --pimp-colors-violet-900: #1f0067;
109
+
110
+ --pimp-colors-white: #ffffff;
111
+
112
+ --pimp-colors-yellow-100: #fcfacc;
113
+ --pimp-colors-yellow-1000: #211300;
114
+ --pimp-colors-yellow-200: #f0df80;
115
+ --pimp-colors-yellow-300: #dfbb35;
116
+ --pimp-colors-yellow-400: #b68900;
117
+ --pimp-colors-yellow-50: #fefeea;
118
+ --pimp-colors-yellow-500: #906300;
119
+ --pimp-colors-yellow-600: #724700;
120
+ --pimp-colors-yellow-700: #553000;
121
+ --pimp-colors-yellow-800: #452600;
122
+ --pimp-colors-yellow-900: #351c00;
123
+ }
@@ -0,0 +1,3 @@
1
+ :root {
2
+ --pimp-easing-elastic: cubic-bezier(0.34, 1.66, 0.64, 1);
3
+ }
@@ -0,0 +1,43 @@
1
+ :root {
2
+ --pimp-letter-spacing-2xl: 0;
3
+ --pimp-letter-spacing-3xl: 0;
4
+ --pimp-letter-spacing-4xl: 0;
5
+ --pimp-letter-spacing-5xl: 0;
6
+ --pimp-letter-spacing-6xl: 0;
7
+ --pimp-letter-spacing-7xl: 0;
8
+ --pimp-letter-spacing-8xl: 0;
9
+ --pimp-letter-spacing-9xl: 0;
10
+ --pimp-letter-spacing-lg: 0;
11
+ --pimp-letter-spacing-md: 0;
12
+ --pimp-letter-spacing-sm: 0;
13
+ --pimp-letter-spacing-xl: 0;
14
+ --pimp-letter-spacing-xs: 0;
15
+
16
+ --pimp-line-height-2xl: 32;
17
+ --pimp-line-height-3xl: 36;
18
+ --pimp-line-height-4xl: 40;
19
+ --pimp-line-height-5xl: 56;
20
+ --pimp-line-height-6xl: 72;
21
+ --pimp-line-height-7xl: 80;
22
+ --pimp-line-height-8xl: 96;
23
+ --pimp-line-height-9xl: 128;
24
+ --pimp-line-height-lg: 28;
25
+ --pimp-line-height-md: 24;
26
+ --pimp-line-height-sm: 20;
27
+ --pimp-line-height-xl: 30;
28
+ --pimp-line-height-xs: 16;
29
+
30
+ --pimp-size-2xl: 24;
31
+ --pimp-size-3xl: 30;
32
+ --pimp-size-4xl: 36;
33
+ --pimp-size-5xl: 48;
34
+ --pimp-size-6xl: 60;
35
+ --pimp-size-7xl: 72;
36
+ --pimp-size-8xl: 96;
37
+ --pimp-size-9xl: 128;
38
+ --pimp-size-lg: 18;
39
+ --pimp-size-md: 16;
40
+ --pimp-size-sm: 14;
41
+ --pimp-size-xl: 20;
42
+ --pimp-size-xs: 12;
43
+ }
@@ -1,10 +1,3 @@
1
- @use './colors';
2
- @use './dimensions';
3
- @use './easings';
4
- @use './shadows';
5
- @use './sizing';
6
- @use './spacing';
7
-
8
1
  :root {
9
2
  /**
10
3
  * COLORS
@@ -277,7 +270,7 @@
277
270
  --pimp-utility-yellow-800: var(--pimp-colors-yellow-800);
278
271
  --pimp-utility-yellow-900: var(--pimp-colors-yellow-900);
279
272
 
280
- /**
273
+ /**
281
274
  * DIMENSIONS
282
275
  */
283
276
 
@@ -288,7 +281,7 @@
288
281
  --pimp-breakpoint-xl: var(--pimp-dimensions-320);
289
282
 
290
283
  --pimp-radius-2xl: var(--pimp-dimensions-6);
291
- --pimp-radius-full: 2147483648; // BIGINT
284
+ --pimp-radius-full: 10000;
292
285
  --pimp-radius-lg: var(--pimp-dimensions-3);
293
286
  --pimp-radius-md: var(--pimp-dimensions-2);
294
287
  --pimp-radius-md-lg: var(--pimp-dimensions-2_5);
@@ -0,0 +1,7 @@
1
+ @import './css/base.css';
2
+ @import './css/colors.css';
3
+ @import './css/dimensions.css';
4
+ @import './css/shadows.css';
5
+ @import './css/spacing.css';
6
+ @import './css/easings.css';
7
+ @import './css/tokens.css';
@@ -8,19 +8,25 @@ $gray-5: #ececef;
8
8
  $gray-500: #b2b2bd;
9
9
 
10
10
  $red: #eb0505;
11
+ $red-50: #fff7f7;
11
12
  $red-100: #ffe5e5;
12
13
  $red-200: #ffb3b3;
13
- $red-500: #fc5959;
14
+ $red-500: #d52841;
15
+ $red-700: #710019;
14
16
 
15
17
  $blue: #144dc2;
18
+ $blue-50: #f6faff;
16
19
  $blue-100: #e3f2ff;
17
20
  $blue-200: #b3d4ff;
18
- $blue-500: #144dc2;
21
+ $blue-500: #1564de;
22
+ $blue-700: #003382;
19
23
 
20
24
  $green: #00895c;
25
+ $green-50: #ecfff4;
21
26
  $green-100: #e6fff4;
22
27
  $green-200: #b8ffdf;
23
- $green-500: #00895c;
28
+ $green-500: #008254;
29
+ $green-700: #00462b;
24
30
 
25
31
  $yellow: #ffd00b;
26
32
  $yellow-100: #fff9e3;
@@ -29,16 +35,19 @@ $yellow-300: #ffea82;
29
35
  $yellow-500: #998700;
30
36
 
31
37
  $orange: #ffa800;
38
+ $orange-50: #fff8f2;
32
39
  $orange-100: #fff4e3;
33
40
  $orange-200: #ffe0a3;
34
- $orange-500: #ffa800;
41
+ $orange-500: #a05800;
35
42
  $orange-600: #d17a00;
43
+ $orange-700: #582e00;
36
44
 
37
45
  $purple: #5341f9;
38
46
  $purple-100: #e5e3ff;
39
47
  $purple-200: #c8c4ff;
40
48
  $purple-500: #5341f9;
41
49
  $purple-600: #4b3ad0;
50
+ $purple-700: #3400a0;
42
51
 
43
52
  $pink: #ff7dc1;
44
53
  $pink-100: #ffe6f2;
@@ -78,127 +87,3 @@ $neutral-light-1: #f9fafc;
78
87
 
79
88
  // Border colors
80
89
  $border-color: $neutral-dark-4;
81
-
82
- :root {
83
- --pimp-colors-black: #000000;
84
-
85
- --pimp-colors-blue-100: #e5efff;
86
- --pimp-colors-blue-1000: #00133a;
87
- --pimp-colors-blue-200: #bdd6ff;
88
- --pimp-colors-blue-300: #90baff;
89
- --pimp-colors-blue-400: #4c8dfa;
90
- --pimp-colors-blue-50: #f6faff;
91
- --pimp-colors-blue-500: #1564de;
92
- --pimp-colors-blue-600: #0049b1;
93
- --pimp-colors-blue-700: #003382;
94
- --pimp-colors-blue-800: #00286a;
95
- --pimp-colors-blue-900: #001e53;
96
-
97
- --pimp-colors-green-100: #dcf9e8;
98
- --pimp-colors-green-1000: #001c0f;
99
- --pimp-colors-green-200: #98eabe;
100
- --pimp-colors-green-300: #54d599;
101
- --pimp-colors-green-400: #00ac71;
102
- --pimp-colors-green-50: #ecfff4;
103
- --pimp-colors-green-500: #008254;
104
- --pimp-colors-green-600: #00623e;
105
- --pimp-colors-green-700: #00462b;
106
- --pimp-colors-green-800: #003822;
107
- --pimp-colors-green-900: #002b19;
108
-
109
- --pimp-colors-grey-100: #f2f3fa;
110
- --pimp-colors-grey-1000: #20212f;
111
- --pimp-colors-grey-200: #e9eaf6;
112
- --pimp-colors-grey-300: #d1d3e6;
113
- --pimp-colors-grey-400: #b4b7d3;
114
- --pimp-colors-grey-50: #f9f9fd;
115
- --pimp-colors-grey-500: #989bba;
116
- --pimp-colors-grey-600: #717496;
117
- --pimp-colors-grey-700: #525470;
118
- --pimp-colors-grey-800: #36384d;
119
- --pimp-colors-grey-900: #2b2c3e;
120
-
121
- --pimp-colors-grey-shadow-color-10: rgba(108, 110, 181, 0.1);
122
- --pimp-colors-grey-shadow-color-12-5: rgba(108, 110, 181, 0.125);
123
- --pimp-colors-grey-shadow-color-15: rgba(108, 110, 181, 0.15);
124
- --pimp-colors-grey-shadow-color-17-5: rgba(108, 110, 181, 0.175);
125
- --pimp-colors-grey-shadow-color-20: rgba(108, 110, 181, 0.2);
126
- --pimp-colors-grey-shadow-color-3: rgba(108, 110, 181, 0.03);
127
- --pimp-colors-grey-shadow-color-4: rgba(108, 110, 181, 0.04);
128
- --pimp-colors-grey-shadow-color-5: rgba(108, 110, 181, 0.05);
129
- --pimp-colors-grey-shadow-color-7-5: rgba(108, 110, 181, 0.075);
130
-
131
- --pimp-colors-magenta-100: #ffe7ed;
132
- --pimp-colors-magenta-1000: #300015;
133
- --pimp-colors-magenta-200: #ffc1d2;
134
- --pimp-colors-magenta-300: #ff92b5;
135
- --pimp-colors-magenta-400: #e8528c;
136
- --pimp-colors-magenta-50: #fff7f9;
137
- --pimp-colors-magenta-500: #c40d68;
138
- --pimp-colors-magenta-600: #97004e;
139
- --pimp-colors-magenta-700: #6e0037;
140
- --pimp-colors-magenta-800: #59002c;
141
- --pimp-colors-magenta-900: #450020;
142
-
143
- --pimp-colors-orange-100: #ffeddf;
144
- --pimp-colors-orange-1000: #251000;
145
- --pimp-colors-orange-200: #fec89e;
146
- --pimp-colors-orange-300: #f9a255;
147
- --pimp-colors-orange-400: #de7c00;
148
- --pimp-colors-orange-50: #fff8f2;
149
- --pimp-colors-orange-500: #a05800;
150
- --pimp-colors-orange-600: #7a4100;
151
- --pimp-colors-orange-700: #582e00;
152
- --pimp-colors-orange-800: #472400;
153
- --pimp-colors-orange-900: #371a00;
154
-
155
- --pimp-colors-pink-100: #fce6fd;
156
- --pimp-colors-pink-1000: #29002d;
157
- --pimp-colors-pink-200: #f8bdfb;
158
- --pimp-colors-pink-300: #f08ef6;
159
- --pimp-colors-pink-400: #d054d8;
160
- --pimp-colors-pink-50: #fff6ff;
161
- --pimp-colors-pink-500: #a825b1;
162
- --pimp-colors-pink-600: #84068c;
163
- --pimp-colors-pink-700: #600067;
164
- --pimp-colors-pink-800: #4e0054;
165
- --pimp-colors-pink-900: #3c0040;
166
-
167
- --pimp-colors-red-100: #fce9e8;
168
- --pimp-colors-red-1000: #320006;
169
- --pimp-colors-red-200: #ffc3c2;
170
- --pimp-colors-red-300: #ff9798;
171
- --pimp-colors-red-400: #f24e5c;
172
- --pimp-colors-red-50: #fff7f7;
173
- --pimp-colors-red-500: #d52841;
174
- --pimp-colors-red-600: #9c0025;
175
- --pimp-colors-red-700: #710019;
176
- --pimp-colors-red-800: #5d0012;
177
- --pimp-colors-red-900: #48000c;
178
-
179
- --pimp-colors-violet-100: #eaecff;
180
- --pimp-colors-violet-1000: #13004a;
181
- --pimp-colors-violet-200: #ccd0ff;
182
- --pimp-colors-violet-300: #acb1ff;
183
- --pimp-colors-violet-400: #807dff;
184
- --pimp-colors-violet-50: #f8f9ff;
185
- --pimp-colors-violet-500: #603dfd;
186
- --pimp-colors-violet-600: #4a00da;
187
- --pimp-colors-violet-700: #3400a0;
188
- --pimp-colors-violet-800: #2a0084;
189
- --pimp-colors-violet-900: #1f0067;
190
-
191
- --pimp-colors-white: #ffffff;
192
-
193
- --pimp-colors-yellow-100: #fcfacc;
194
- --pimp-colors-yellow-1000: #211300;
195
- --pimp-colors-yellow-200: #f0df80;
196
- --pimp-colors-yellow-300: #dfbb35;
197
- --pimp-colors-yellow-400: #b68900;
198
- --pimp-colors-yellow-50: #fefeea;
199
- --pimp-colors-yellow-500: #906300;
200
- --pimp-colors-yellow-600: #724700;
201
- --pimp-colors-yellow-700: #553000;
202
- --pimp-colors-yellow-800: #452600;
203
- --pimp-colors-yellow-900: #351c00;
204
- }
@@ -8,47 +8,3 @@ $space-sm: math.div($space, 2);
8
8
  $space-md: $space * 1.5;
9
9
  $space-lg: $space * 2;
10
10
  $space-xl: $space * 3;
11
-
12
- :root {
13
- --pimp-letter-spacing-2xl: 0;
14
- --pimp-letter-spacing-3xl: 0;
15
- --pimp-letter-spacing-4xl: 0;
16
- --pimp-letter-spacing-5xl: 0;
17
- --pimp-letter-spacing-6xl: 0;
18
- --pimp-letter-spacing-7xl: 0;
19
- --pimp-letter-spacing-8xl: 0;
20
- --pimp-letter-spacing-9xl: 0;
21
- --pimp-letter-spacing-lg: 0;
22
- --pimp-letter-spacing-md: 0;
23
- --pimp-letter-spacing-sm: 0;
24
- --pimp-letter-spacing-xl: 0;
25
- --pimp-letter-spacing-xs: 0;
26
-
27
- --pimp-line-height-2xl: 32;
28
- --pimp-line-height-3xl: 36;
29
- --pimp-line-height-4xl: 40;
30
- --pimp-line-height-5xl: 56;
31
- --pimp-line-height-6xl: 72;
32
- --pimp-line-height-7xl: 80;
33
- --pimp-line-height-8xl: 96;
34
- --pimp-line-height-9xl: 128;
35
- --pimp-line-height-lg: 28;
36
- --pimp-line-height-md: 24;
37
- --pimp-line-height-sm: 20;
38
- --pimp-line-height-xl: 30;
39
- --pimp-line-height-xs: 16;
40
-
41
- --pimp-size-2xl: 24;
42
- --pimp-size-3xl: 30;
43
- --pimp-size-4xl: 36;
44
- --pimp-size-5xl: 48;
45
- --pimp-size-6xl: 60;
46
- --pimp-size-7xl: 72;
47
- --pimp-size-8xl: 96;
48
- --pimp-size-9xl: 128;
49
- --pimp-size-lg: 18;
50
- --pimp-size-md: 16;
51
- --pimp-size-sm: 14;
52
- --pimp-size-xl: 20;
53
- --pimp-size-xs: 12;
54
- }
@@ -1,13 +1,13 @@
1
1
  <template>
2
2
  <component
3
3
  :is="tag"
4
- :type="type"
5
4
  :aria-disabled="isButtonDisabled"
6
- :disabled="isButtonDisabled"
7
- :class="dynamicClasses"
8
5
  class="cpButton"
6
+ :class="dynamicClasses"
7
+ :disabled="isButtonDisabled"
9
8
  role="button"
10
9
  tabindex="0"
10
+ :type="type"
11
11
  >
12
12
  <span class="cpButton__body">
13
13
  <span v-if="isLoading" class="cpButton__loader"><cp-loader color="#B2B2BD" /></span>
@@ -17,10 +17,10 @@
17
17
  <thead class="cpTable__header">
18
18
  <tr class="cpTable__row cpTable__row--header">
19
19
  <th
20
- v-for="column in visibleColumns"
20
+ v-for="(column, index) in visibleColumns"
21
21
  :key="column.id"
22
22
  class="cpTable__column"
23
- :style="getColumnStyle(column)"
23
+ :style="getColumnStyle(column, index)"
24
24
  >
25
25
  <slot :column="column" name="column">
26
26
  {{ column.name }}
@@ -200,6 +200,8 @@ const props = withDefaults(defineProps<Props>(), {
200
200
 
201
201
  const emit = defineEmits<Emits>()
202
202
 
203
+ const FULL_WIDTH_SIZE = 1000
204
+
203
205
  const LoaderColor = '#5341F9'
204
206
 
205
207
  const uniqueId = useId()
@@ -262,10 +264,25 @@ const getVisibleColumnsIds = () => {
262
264
  return normalizedColumns.value.filter(({ isHidden, isProtected }) => !isHidden || isProtected).map(({ id }) => id)
263
265
  }
264
266
 
267
+ const fullWidthColumn = computed(() => normalizedColumns.value.find(({ isFull }) => isFull))
268
+
269
+ const hasAFullWidthColumnVisible = computed(() => {
270
+ if (!fullWidthColumn.value) return false
271
+ return columnsModel.value.includes(fullWidthColumn.value.id)
272
+ })
273
+
274
+ const isLastColumn = (idx: number) => idx === visibleColumns.value.length - 1
275
+
265
276
  const columnsModel = ref<string[]>(getVisibleColumnsIds())
266
277
 
267
278
  watch(columnsModel, (newColumnsModel) => {
268
- const newColumns = normalizedColumns.value.map((col) => ({ ...col, isHidden: !newColumnsModel.includes(col.id) }))
279
+ const newColumns = normalizedColumns.value.map((col) => {
280
+ return {
281
+ ...col,
282
+ isHidden: !newColumnsModel.includes(col.id),
283
+ }
284
+ })
285
+
269
286
  emit('onColumnsChanged', newColumns)
270
287
  })
271
288
 
@@ -481,12 +498,18 @@ const resetScrollPosition = () => {
481
498
  }
482
499
  }
483
500
 
484
- const getColumnStyle = (columnPayload: CpTableColumnObject) => {
485
- const formattedWidth = columnPayload?.width && `${columnPayload.width}px`
501
+ const getColumnStyle = (column: CpTableColumnObject, idx: number) => {
502
+ let width: string | undefined
503
+
504
+ if (!hasAFullWidthColumnVisible.value && isLastColumn(idx)) {
505
+ width = `${FULL_WIDTH_SIZE}px`
506
+ } else if (column.width) {
507
+ width = `${column.width}px`
508
+ }
486
509
 
487
510
  return {
488
- width: formattedWidth,
489
- textAlign: columnPayload.textAlign,
511
+ width,
512
+ textAlign: column.textAlign,
490
513
  }
491
514
  }
492
515