@pequity/squirrel 6.0.11 → 6.0.13
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/dist/cjs/chunks/index.js +2645 -0
- package/dist/cjs/chunks/p-btn.types.js +3 -0
- package/dist/cjs/chunks/p-info-icon.js +37 -0
- package/dist/cjs/chunks/p-select.js +2 -2
- package/dist/cjs/index.js +25 -33
- package/dist/cjs/inputClasses.js +127 -0
- package/dist/cjs/inputClassesMixin.js +23 -19
- package/dist/cjs/p-btn.js +56 -57
- package/dist/cjs/p-icon.js +6 -1
- package/dist/cjs/p-info-icon.js +2 -33
- package/dist/cjs/p-input-number.js +2 -2
- package/dist/cjs/p-input-search.js +3 -3
- package/dist/cjs/p-table-header-cell.js +2 -2
- package/dist/cjs/useInputClasses.js +19 -18
- package/dist/es/chunks/index.js +2646 -0
- package/dist/es/chunks/p-btn.types.js +4 -0
- package/dist/es/chunks/p-info-icon.js +38 -0
- package/dist/es/chunks/p-select.js +2 -2
- package/dist/es/index.js +74 -82
- package/dist/es/inputClasses.js +127 -0
- package/dist/es/inputClassesMixin.js +23 -19
- package/dist/es/p-btn.js +56 -57
- package/dist/es/p-icon.js +6 -1
- package/dist/es/p-info-icon.js +2 -33
- package/dist/es/p-input-number.js +2 -2
- package/dist/es/p-input-search.js +3 -3
- package/dist/es/p-table-header-cell.js +2 -2
- package/dist/es/useInputClasses.js +23 -22
- package/dist/squirrel/components/p-alert/p-alert.vue.d.ts +1 -1
- package/dist/squirrel/components/p-btn/p-btn.types.d.ts +2 -1
- package/dist/squirrel/components/p-btn/p-btn.vue.d.ts +395 -17
- package/dist/squirrel/components/p-drawer/p-drawer.vue.d.ts +5 -5
- package/dist/squirrel/components/p-dropdown-select/p-dropdown-select.vue.d.ts +30 -22
- package/dist/squirrel/components/p-icon/p-icon.types.d.ts +5 -0
- package/dist/squirrel/components/p-input/p-input.vue.d.ts +11 -7
- package/dist/squirrel/components/p-input-number/p-input-number.vue.d.ts +11 -7
- package/dist/squirrel/components/p-input-percent/p-input-percent.vue.d.ts +3 -3
- package/dist/squirrel/components/p-input-search/p-input-search.vue.d.ts +16 -12
- package/dist/squirrel/components/p-select/p-select.vue.d.ts +5 -5
- package/dist/squirrel/components/p-select-list/p-select-list.vue.d.ts +30 -22
- package/dist/squirrel/components/p-textarea/p-textarea.vue.d.ts +11 -7
- package/dist/squirrel/components/p-toggle/p-toggle.vue.d.ts +11 -7
- package/dist/squirrel/composables/useInputClasses.d.ts +3 -3
- package/dist/squirrel/index.d.ts +1 -0
- package/dist/squirrel/utils/index.d.ts +2 -2
- package/dist/squirrel/utils/inputClasses.d.ts +938 -0
- package/dist/squirrel/utils/inputClassesMixin.d.ts +12 -8
- package/dist/squirrel.css +23 -23
- package/package.json +24 -21
- package/squirrel/components/p-btn/p-btn.spec.js +1 -1
- package/squirrel/components/p-btn/p-btn.types.ts +3 -1
- package/squirrel/components/p-btn/p-btn.vue +60 -74
- package/squirrel/components/p-dropdown/p-dropdown.vue +2 -2
- package/squirrel/components/p-file-upload/p-file-upload.spec.js +3 -8
- package/squirrel/components/p-icon/p-icon.types.ts +5 -0
- package/squirrel/components/p-info-icon/p-info-icon.spec.js +3 -2
- package/squirrel/components/p-info-icon/p-info-icon.vue +3 -7
- package/squirrel/components/p-inline-date-picker/p-inline-date-picker.spec.js +3 -10
- package/squirrel/components/p-input/p-input.spec.js +3 -8
- package/squirrel/components/p-input-number/p-input-number.spec.js +15 -18
- package/squirrel/components/p-input-percent/p-input-percent.spec.js +3 -8
- package/squirrel/components/p-input-percent/p-input-percent.vue +3 -3
- package/squirrel/components/p-input-search/p-input-search.vue +4 -4
- package/squirrel/components/p-select/p-select.spec.js +27 -33
- package/squirrel/components/p-select/p-select.vue +4 -4
- package/squirrel/components/p-table-header-cell/p-table-header-cell.spec.js +6 -4
- package/squirrel/components/p-textarea/p-textarea.spec.js +3 -8
- package/squirrel/composables/useInputClasses.spec.js +138 -77
- package/squirrel/composables/useInputClasses.ts +25 -39
- package/squirrel/index.ts +1 -0
- package/squirrel/utils/index.ts +3 -36
- package/squirrel/utils/inputClasses.ts +128 -0
- package/squirrel/utils/inputClassesMixin.spec.js +153 -64
- package/squirrel/utils/inputClassesMixin.ts +26 -43
- package/dist/cjs/inputClassesShared.js +0 -76
- package/dist/es/inputClassesShared.js +0 -76
- package/dist/squirrel/utils/inputClassesShared.d.ts +0 -45
- package/squirrel/utils/inputClassesShared.ts +0 -75
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Size } from '../components/p-btn/p-btn.types';
|
|
2
2
|
import { type PropType } from 'vue';
|
|
3
3
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
4
|
size: {
|
|
5
|
-
type: PropType<
|
|
5
|
+
type: PropType<Size>;
|
|
6
6
|
default: string;
|
|
7
|
-
validator(value:
|
|
7
|
+
validator(value: Size): boolean;
|
|
8
8
|
};
|
|
9
9
|
errorMsg: {
|
|
10
10
|
type: StringConstructor;
|
|
@@ -18,18 +18,22 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
18
18
|
type: BooleanConstructor;
|
|
19
19
|
default: boolean;
|
|
20
20
|
};
|
|
21
|
-
}>, {}, {
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
}>, {}, {}, {
|
|
22
|
+
allClasses(): {
|
|
23
|
+
input: string;
|
|
24
|
+
label: string;
|
|
25
|
+
errorMessage: string;
|
|
26
|
+
};
|
|
24
27
|
inputClasses(): string;
|
|
25
28
|
labelClasses(): string;
|
|
29
|
+
errorMsgClasses(): string;
|
|
26
30
|
selectClasses(): string;
|
|
27
31
|
textareaClasses(): string;
|
|
28
32
|
}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
29
33
|
size: {
|
|
30
|
-
type: PropType<
|
|
34
|
+
type: PropType<Size>;
|
|
31
35
|
default: string;
|
|
32
|
-
validator(value:
|
|
36
|
+
validator(value: Size): boolean;
|
|
33
37
|
};
|
|
34
38
|
errorMsg: {
|
|
35
39
|
type: StringConstructor;
|
package/dist/squirrel.css
CHANGED
|
@@ -49,9 +49,9 @@ div[id^=popper_].dropdown .v-popper__inner .dropdown-menu .dropdown-header {
|
|
|
49
49
|
|
|
50
50
|
padding-right: 1rem;
|
|
51
51
|
|
|
52
|
-
padding-top: 0.
|
|
52
|
+
padding-top: 0.5rem;
|
|
53
53
|
|
|
54
|
-
padding-bottom: 0.
|
|
54
|
+
padding-bottom: 0.5rem;
|
|
55
55
|
|
|
56
56
|
font-size: 0.75rem;
|
|
57
57
|
|
|
@@ -59,6 +59,8 @@ div[id^=popper_].dropdown .v-popper__inner .dropdown-menu .dropdown-header {
|
|
|
59
59
|
|
|
60
60
|
text-transform: uppercase;
|
|
61
61
|
|
|
62
|
+
line-height: 1.25rem;
|
|
63
|
+
|
|
62
64
|
color: rgb(var(--color-p-gray-40))
|
|
63
65
|
}
|
|
64
66
|
div[id^=popper_].dropdown .v-popper__inner .dropdown-menu .dropdown-item {
|
|
@@ -77,15 +79,17 @@ div[id^=popper_].dropdown .v-popper__inner .dropdown-menu .dropdown-item {
|
|
|
77
79
|
|
|
78
80
|
padding-right: 1rem;
|
|
79
81
|
|
|
80
|
-
padding-top: 0.
|
|
82
|
+
padding-top: 0.5rem;
|
|
81
83
|
|
|
82
|
-
padding-bottom: 0.
|
|
84
|
+
padding-bottom: 0.5rem;
|
|
83
85
|
|
|
84
86
|
text-align: left;
|
|
85
87
|
|
|
86
88
|
font-size: 0.875rem;
|
|
87
89
|
|
|
88
|
-
font-weight: 500
|
|
90
|
+
font-weight: 500;
|
|
91
|
+
|
|
92
|
+
line-height: 1.25rem
|
|
89
93
|
}
|
|
90
94
|
div[id^=popper_].dropdown .v-popper__inner .dropdown-menu .dropdown-item:active,
|
|
91
95
|
div[id^=popper_].dropdown .v-popper__inner .dropdown-menu .dropdown-item.active {
|
|
@@ -259,87 +263,83 @@ from {
|
|
|
259
263
|
to {
|
|
260
264
|
opacity: 0;
|
|
261
265
|
}
|
|
262
|
-
}.icon.clear[data-v-
|
|
266
|
+
}.icon.clear[data-v-78b7a6f8] {
|
|
263
267
|
background-image: url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1634_880)'%3e%3cpath%20d='M16%208C16%206.41775%2015.5308%204.87104%2014.6518%203.55544C13.7727%202.23985%2012.5233%201.21447%2011.0615%200.608967C9.59966%200.00346629%207.99113%20-0.15496%206.43928%200.153721C4.88743%200.462403%203.46197%201.22433%202.34315%202.34315C1.22433%203.46197%200.462403%204.88743%200.153721%206.43928C-0.15496%207.99113%200.00346629%209.59966%200.608967%2011.0615C1.21447%2012.5233%202.23985%2013.7727%203.55544%2014.6518C4.87104%2015.5308%206.41775%2016%208%2016C10.1217%2016%2012.1566%2015.1571%2013.6569%2013.6569C15.1571%2012.1566%2016%2010.1217%2016%208ZM11.14%2010.1867C11.2642%2010.3116%2011.3339%2010.4805%2011.3339%2010.6567C11.3339%2010.8328%2011.2642%2011.0018%2011.14%2011.1267C11.078%2011.1892%2011.0043%2011.2388%2010.9231%2011.2726C10.8418%2011.3064%2010.7547%2011.3239%2010.6667%2011.3239C10.5787%2011.3239%2010.4915%2011.3064%2010.4103%2011.2726C10.329%2011.2388%2010.2553%2011.1892%2010.1933%2011.1267L8.12%209.05334C8.08809%209.02429%208.04649%209.0082%208.00334%209.0082C7.96019%209.0082%207.91858%209.02429%207.88667%209.05334L5.81334%2011.1267C5.6858%2011.2359%205.52175%2011.293%205.35397%2011.2865C5.18618%2011.28%205.02702%2011.2104%204.90829%2011.0917C4.78957%2010.973%204.72001%2010.8138%204.71353%2010.646C4.70705%2010.4783%204.76412%2010.3142%204.87334%2010.1867L6.94667%208.11334C6.97572%208.08142%206.99181%208.03982%206.99181%207.99667C6.99181%207.95352%206.97572%207.91192%206.94667%207.88L4.87334%205.80667C4.81085%205.7447%204.76126%205.67096%204.72741%205.58972C4.69356%205.50848%204.67614%205.42135%204.67614%205.33334C4.67614%205.24533%204.69356%205.15819%204.72741%205.07695C4.76126%204.99571%204.81085%204.92198%204.87334%204.86C4.99825%204.73584%205.16721%204.66614%205.34334%204.66614C5.51946%204.66614%205.68843%204.73584%205.81334%204.86L7.88667%206.93334C7.90163%206.94928%207.91971%206.96199%207.93977%206.97068C7.95984%206.97936%207.98147%206.98384%208.00334%206.98384C8.0252%206.98384%208.04684%206.97936%208.0669%206.97068C8.08697%206.96199%208.10504%206.94928%208.12%206.93334L10.1933%204.86C10.2555%204.79784%2010.3293%204.74854%2010.4105%204.7149C10.4917%204.68126%2010.5788%204.66394%2010.6667%204.66394C10.7546%204.66394%2010.8416%204.68126%2010.9228%204.7149C11.0041%204.74854%2011.0778%204.79784%2011.14%204.86C11.2022%204.92216%2011.2515%204.99596%2011.2851%205.07717C11.3188%205.15839%2011.3361%205.24543%2011.3361%205.33334C11.3361%205.42124%2011.3188%205.50829%2011.2851%205.5895C11.2515%205.67072%2011.2022%205.74451%2011.14%205.80667L9.06667%207.88C9.05073%207.89497%209.03802%207.91304%209.02933%207.93311C9.02065%207.95317%209.01616%207.97481%209.01616%207.99667C9.01616%208.01854%209.02065%208.04017%209.02933%208.06024C9.03802%208.0803%209.05073%208.09837%209.06667%208.11334L11.14%2010.1867Z'%20fill='%23A0AEC0'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1634_880'%3e%3crect%20width='16'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
|
|
264
268
|
background-position: center center;
|
|
265
269
|
transition: background-image 0.4s;
|
|
266
270
|
}
|
|
267
|
-
.icon.clear-sm[data-v-
|
|
271
|
+
.icon.clear-sm[data-v-78b7a6f8] {
|
|
268
272
|
background-size: 0.875rem 0.875rem;
|
|
269
273
|
width: 0.875rem;
|
|
270
274
|
height: 0.875rem;
|
|
271
275
|
bottom: 0.5rem;
|
|
272
276
|
right: 0.375rem;
|
|
273
277
|
}
|
|
274
|
-
.icon.clear-md[data-v-
|
|
278
|
+
.icon.clear-md[data-v-78b7a6f8] {
|
|
275
279
|
background-size: 1rem 1rem;
|
|
276
280
|
height: 1rem;
|
|
277
281
|
width: 1rem;
|
|
278
282
|
bottom: 0.75rem;
|
|
279
283
|
right: 0.5rem;
|
|
280
284
|
}
|
|
281
|
-
.icon.clear-lg[data-v-
|
|
285
|
+
.icon.clear-lg[data-v-78b7a6f8] {
|
|
282
286
|
background-size: 1rem 1rem;
|
|
283
287
|
height: 1rem;
|
|
284
288
|
width: 1rem;
|
|
285
289
|
bottom: 1rem;
|
|
286
290
|
right: 0.5rem;
|
|
287
291
|
}
|
|
288
|
-
.icon.clear[data-v-
|
|
292
|
+
.icon.clear[data-v-78b7a6f8]:hover {
|
|
289
293
|
background-image: url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1634_896)'%3e%3cpath%20d='M16%208C16%206.41775%2015.5308%204.87104%2014.6518%203.55544C13.7727%202.23985%2012.5233%201.21447%2011.0615%200.608967C9.59966%200.00346629%207.99113%20-0.15496%206.43928%200.153721C4.88743%200.462403%203.46197%201.22433%202.34315%202.34315C1.22433%203.46197%200.462403%204.88743%200.153721%206.43928C-0.15496%207.99113%200.00346629%209.59966%200.608967%2011.0615C1.21447%2012.5233%202.23985%2013.7727%203.55544%2014.6518C4.87104%2015.5308%206.41775%2016%208%2016C10.1217%2016%2012.1566%2015.1571%2013.6569%2013.6569C15.1571%2012.1566%2016%2010.1217%2016%208ZM11.14%2010.1867C11.2642%2010.3116%2011.3339%2010.4805%2011.3339%2010.6567C11.3339%2010.8328%2011.2642%2011.0018%2011.14%2011.1267C11.078%2011.1892%2011.0043%2011.2388%2010.9231%2011.2726C10.8418%2011.3064%2010.7547%2011.3239%2010.6667%2011.3239C10.5787%2011.3239%2010.4915%2011.3064%2010.4103%2011.2726C10.329%2011.2388%2010.2553%2011.1892%2010.1933%2011.1267L8.12%209.05334C8.08809%209.02429%208.04649%209.0082%208.00334%209.0082C7.96019%209.0082%207.91858%209.02429%207.88667%209.05334L5.81334%2011.1267C5.6858%2011.2359%205.52175%2011.293%205.35397%2011.2865C5.18618%2011.28%205.02702%2011.2104%204.90829%2011.0917C4.78957%2010.973%204.72001%2010.8138%204.71353%2010.646C4.70705%2010.4783%204.76412%2010.3142%204.87334%2010.1867L6.94667%208.11334C6.97572%208.08142%206.99181%208.03982%206.99181%207.99667C6.99181%207.95352%206.97572%207.91192%206.94667%207.88L4.87334%205.80667C4.81085%205.7447%204.76126%205.67096%204.72741%205.58972C4.69356%205.50848%204.67614%205.42135%204.67614%205.33334C4.67614%205.24533%204.69356%205.15819%204.72741%205.07695C4.76126%204.99571%204.81085%204.92198%204.87334%204.86C4.99825%204.73584%205.16721%204.66614%205.34334%204.66614C5.51946%204.66614%205.68843%204.73584%205.81334%204.86L7.88667%206.93334C7.90163%206.94928%207.91971%206.96199%207.93977%206.97068C7.95984%206.97936%207.98147%206.98384%208.00334%206.98384C8.0252%206.98384%208.04684%206.97936%208.0669%206.97068C8.08697%206.96199%208.10504%206.94928%208.12%206.93334L10.1933%204.86C10.2555%204.79784%2010.3293%204.74854%2010.4105%204.7149C10.4917%204.68126%2010.5788%204.66394%2010.6667%204.66394C10.7546%204.66394%2010.8416%204.68126%2010.9228%204.7149C11.0041%204.74854%2011.0778%204.79784%2011.14%204.86C11.2022%204.92216%2011.2515%204.99596%2011.2851%205.07717C11.3188%205.15839%2011.3361%205.24543%2011.3361%205.33334C11.3361%205.42124%2011.3188%205.50829%2011.2851%205.5895C11.2515%205.67072%2011.2022%205.74451%2011.14%205.80667L9.06667%207.88C9.05073%207.89497%209.03802%207.91304%209.02933%207.93311C9.02065%207.95317%209.01616%207.97481%209.01616%207.99667C9.01616%208.01854%209.02065%208.04017%209.02933%208.06024C9.03802%208.0803%209.05073%208.09837%209.06667%208.11334L11.14%2010.1867Z'%20fill='%23424E6E'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1634_896'%3e%3crect%20width='16'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
|
|
290
294
|
}
|
|
291
|
-
.icon.search[data-v-
|
|
295
|
+
.icon.search[data-v-78b7a6f8] {
|
|
292
296
|
background-image: url("data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_9127_330342)'%3e%3cpath%20d='M11.705%2010.295L9.38501%208.00004C10.0193%207.0497%2010.3178%205.91467%2010.2331%204.77526C10.1484%203.63584%209.68546%202.5574%208.91771%201.71124C8.14996%200.86508%207.12147%200.299735%205.99563%200.105014C4.8698%20-0.0897079%203.71117%200.0973621%202.70383%200.636506C1.69648%201.17565%200.898177%202.03595%200.435738%203.08073C-0.0267015%204.12552%20-0.126757%205.29487%200.151467%206.40303C0.429691%207.51119%201.07024%208.4946%201.97135%209.19704C2.87246%209.89948%203.98246%2010.2807%205.12501%2010.28C6.13901%2010.2811%207.13002%209.97801%207.97001%209.41004L10.295%2011.735C10.4824%2011.9213%2010.7358%2012.0258%2011%2012.0258C11.2642%2012.0258%2011.5176%2011.9213%2011.705%2011.735C11.8018%2011.6418%2011.8788%2011.5299%2011.9314%2011.4062C11.9839%2011.2825%2012.011%2011.1495%2012.011%2011.015C12.011%2010.8806%2011.9839%2010.7476%2011.9314%2010.6239C11.8788%2010.5002%2011.8018%2010.3883%2011.705%2010.295ZM5.12501%201.50004C5.84176%201.50004%206.54241%201.71251%207.13843%202.11061C7.73445%202.50871%208.19908%203.07456%208.47359%203.73666C8.74811%204.39875%208.82019%205.12736%208.68072%205.8304C8.54125%206.53345%208.1965%207.17937%207.69004%207.68653C7.18357%208.19369%206.53813%208.53934%205.83527%208.67977C5.13242%208.82021%204.40371%208.74913%203.74125%208.47553C3.07878%208.20193%202.51228%207.73808%202.11336%207.14261C1.71444%206.54714%201.501%205.84678%201.50001%205.13004C1.50001%204.16817%201.88177%203.24562%202.56145%202.565C3.24112%201.88439%204.16314%201.50136%205.12501%201.50004Z'%20fill='%23718096'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_9127_330342'%3e%3crect%20width='12'%20height='12'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
|
|
293
297
|
}
|
|
294
|
-
.icon.search-sm[data-v-
|
|
298
|
+
.icon.search-sm[data-v-78b7a6f8] {
|
|
295
299
|
background-size: 0.75rem 0.75rem;
|
|
296
300
|
left: 0.5rem;
|
|
297
301
|
bottom: 0.625rem;
|
|
298
302
|
width: 0.75rem;
|
|
299
303
|
height: 0.75rem;
|
|
300
304
|
}
|
|
301
|
-
.icon.search-md[data-v-
|
|
305
|
+
.icon.search-md[data-v-78b7a6f8] {
|
|
302
306
|
background-size: 1rem 1rem;
|
|
303
307
|
width: 1rem;
|
|
304
308
|
height: 1rem;
|
|
305
309
|
left: 0.75rem;
|
|
306
310
|
bottom: 0.75rem;
|
|
307
311
|
}
|
|
308
|
-
.icon.search-lg[data-v-
|
|
312
|
+
.icon.search-lg[data-v-78b7a6f8] {
|
|
309
313
|
background-size: 1rem 1rem;
|
|
310
314
|
width: 1rem;
|
|
311
315
|
height: 1rem;
|
|
312
316
|
left: 1.125rem;
|
|
313
317
|
bottom: 1rem;
|
|
314
318
|
}
|
|
315
|
-
.icon.enter[data-v-
|
|
319
|
+
.icon.enter[data-v-78b7a6f8] {
|
|
316
320
|
background-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1627_786)'%3e%3crect%20width='24'%20height='24'%20rx='5'%20fill='%23ECF1FF'/%3e%3cpath%20d='M19.17%201.03744e-05H4.83C4.19619%20-0.00130459%203.56834%200.122398%202.98239%200.364037C2.39645%200.605676%201.86392%200.960506%201.41528%201.40822C0.966641%201.85592%200.610708%202.38772%200.367855%202.97316C0.125002%203.55861%20-1.36406e-06%204.1862%200%204.82001L0%2019.17C0%2020.451%200.508874%2021.6795%201.41467%2022.5853C2.32048%2023.4911%203.549%2024%204.83%2024H19.17C20.4502%2023.9974%2021.6772%2023.4876%2022.5824%2022.5824C23.4876%2021.6772%2023.9974%2020.4502%2024%2019.17V4.82001C23.9974%203.54075%2023.4873%202.31479%2022.5818%201.41115C21.6763%200.507508%2020.4493%207.63258e-06%2019.17%201.03744e-05ZM22%2019.17C22%2019.9206%2021.7018%2020.6404%2021.1711%2021.1711C20.6404%2021.7018%2019.9206%2022%2019.17%2022H4.83C4.07944%2022%203.35962%2021.7018%202.82889%2021.1711C2.29816%2020.6404%202%2019.9206%202%2019.17V4.82001C2.00265%204.07118%202.30197%203.35393%202.83242%202.82536C3.36286%202.29679%204.08117%202.00001%204.83%202.00001H19.17C19.9188%202.00001%2020.6371%202.29679%2021.1676%202.82536C21.698%203.35393%2021.9974%204.07118%2022%204.82001V19.17Z'%20fill='%234750EB'/%3e%3cpath%20d='M17.5%207.5C17.2348%207.5%2016.9804%207.60536%2016.7929%207.79289C16.6054%207.98043%2016.5%208.23478%2016.5%208.5V11.25C16.5%2011.3163%2016.4737%2011.3799%2016.4268%2011.4268C16.3799%2011.4737%2016.3163%2011.5%2016.25%2011.5H10.75C10.6837%2011.5%2010.6201%2011.4737%2010.5732%2011.4268C10.5263%2011.3799%2010.5%2011.3163%2010.5%2011.25V9.5C10.5012%209.30138%2010.4431%209.10691%2010.3333%208.94139C10.2235%208.77587%2010.0669%208.6468%209.88348%208.57063C9.70004%208.49446%209.49807%208.47465%209.30332%208.51372C9.10857%208.55279%208.92987%208.64897%208.79%208.79L5.79%2011.79C5.60375%2011.9774%205.49921%2012.2308%205.49921%2012.495C5.49921%2012.7592%205.60375%2013.0126%205.79%2013.2L8.79%2016.2C8.88261%2016.2945%208.99306%2016.3697%209.11493%2016.4212C9.23681%2016.4727%209.36769%2016.4995%209.5%2016.5C9.76522%2016.5%2010.0196%2016.3946%2010.2071%2016.2071C10.3946%2016.0196%2010.5%2015.7652%2010.5%2015.5V13.75C10.5%2013.6837%2010.5263%2013.6201%2010.5732%2013.5732C10.6201%2013.5263%2010.6837%2013.5%2010.75%2013.5H16.5C17.0304%2013.5%2017.5391%2013.2893%2017.9142%2012.9142C18.2893%2012.5391%2018.5%2012.0304%2018.5%2011.5V8.5C18.5%208.23478%2018.3946%207.98043%2018.2071%207.79289C18.0196%207.60536%2017.7652%207.5%2017.5%207.5Z'%20fill='%234750EB'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_1627_786'%3e%3crect%20width='24'%20height='24'%20rx='5'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
|
|
317
321
|
}
|
|
318
|
-
.icon.enter-sm[data-v-
|
|
322
|
+
.icon.enter-sm[data-v-78b7a6f8] {
|
|
319
323
|
background-size: 1rem 1rem;
|
|
320
324
|
width: 1rem;
|
|
321
325
|
height: 1rem;
|
|
322
326
|
right: 1.5rem;
|
|
323
327
|
bottom: 0.5rem;
|
|
324
328
|
}
|
|
325
|
-
.icon.enter-md[data-v-
|
|
329
|
+
.icon.enter-md[data-v-78b7a6f8] {
|
|
326
330
|
background-size: 1.5rem 1.5rem;
|
|
327
331
|
width: 1.5rem;
|
|
328
332
|
height: 1.5rem;
|
|
329
333
|
right: 2.0625rem;
|
|
330
334
|
bottom: 0.5rem;
|
|
331
335
|
}
|
|
332
|
-
.icon.enter-lg[data-v-
|
|
336
|
+
.icon.enter-lg[data-v-78b7a6f8] {
|
|
333
337
|
background-size: 1.5rem 1.5rem;
|
|
334
338
|
width: 1.5rem;
|
|
335
339
|
height: 1.5rem;
|
|
336
340
|
right: 2.5rem;
|
|
337
341
|
bottom: 0.75rem;
|
|
338
|
-
}
|
|
339
|
-
.bg-info-circle-icon[data-v-804e74f5] {
|
|
340
|
-
background-image: url("data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_4002_33291)'%3e%3cpath%20d='M0.5%206C0.5%207.45869%201.07946%208.85764%202.11091%209.88909C3.14236%2010.9205%204.54131%2011.5%206%2011.5C7.45869%2011.5%208.85764%2010.9205%209.88909%209.88909C10.9205%208.85764%2011.5%207.45869%2011.5%206C11.5%204.54131%2010.9205%203.14236%209.88909%202.11091C8.85764%201.07946%207.45869%200.5%206%200.5C4.54131%200.5%203.14236%201.07946%202.11091%202.11091C1.07946%203.14236%200.5%204.54131%200.5%206Z'%20stroke='%231A123B'%20stroke-miterlimit='10'/%3e%3cpath%20d='M6.5%203.5H5.5V2.5H6.5V3.5Z'%20fill='%231A123B'/%3e%3cpath%20d='M4.5%205H6V9M4.5%208.5H7.5'%20stroke='%231A123B'%20stroke-miterlimit='10'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_4002_33291'%3e%3crect%20width='12'%20height='12'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
|
|
341
|
-
}
|
|
342
|
-
.fadeInDown[data-v-9ad56d4f] {
|
|
342
|
+
}.fadeInDown[data-v-9ad56d4f] {
|
|
343
343
|
animation-duration: 0.4s;
|
|
344
344
|
animation-fill-mode: both;
|
|
345
345
|
animation-name: fadeInDown-9ad56d4f;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pequity/squirrel",
|
|
3
3
|
"description": "Squirrel component library",
|
|
4
|
-
"version": "6.0.
|
|
4
|
+
"version": "6.0.13",
|
|
5
5
|
"packageManager": "pnpm@9.15.5",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
@@ -53,31 +53,31 @@
|
|
|
53
53
|
"@playwright/test": "^1.50.1",
|
|
54
54
|
"@semantic-release/changelog": "^6.0.3",
|
|
55
55
|
"@semantic-release/git": "^10.0.1",
|
|
56
|
-
"@storybook/addon-a11y": "^8.5.
|
|
57
|
-
"@storybook/addon-actions": "^8.5.
|
|
58
|
-
"@storybook/addon-essentials": "^8.5.
|
|
59
|
-
"@storybook/addon-interactions": "^8.5.
|
|
60
|
-
"@storybook/addon-links": "^8.5.
|
|
61
|
-
"@storybook/blocks": "^8.5.
|
|
62
|
-
"@storybook/manager-api": "^8.5.
|
|
63
|
-
"@storybook/test": "^8.5.
|
|
64
|
-
"@storybook/test-runner": "^0.21.
|
|
65
|
-
"@storybook/theming": "^8.5.
|
|
66
|
-
"@storybook/vue3": "^8.5.
|
|
67
|
-
"@storybook/vue3-vite": "^8.5.
|
|
56
|
+
"@storybook/addon-a11y": "^8.5.6",
|
|
57
|
+
"@storybook/addon-actions": "^8.5.6",
|
|
58
|
+
"@storybook/addon-essentials": "^8.5.6",
|
|
59
|
+
"@storybook/addon-interactions": "^8.5.6",
|
|
60
|
+
"@storybook/addon-links": "^8.5.6",
|
|
61
|
+
"@storybook/blocks": "^8.5.6",
|
|
62
|
+
"@storybook/manager-api": "^8.5.6",
|
|
63
|
+
"@storybook/test": "^8.5.6",
|
|
64
|
+
"@storybook/test-runner": "^0.21.1",
|
|
65
|
+
"@storybook/theming": "^8.5.6",
|
|
66
|
+
"@storybook/vue3": "^8.5.6",
|
|
67
|
+
"@storybook/vue3-vite": "^8.5.6",
|
|
68
68
|
"@tanstack/vue-virtual": "3.13.0",
|
|
69
69
|
"@types/jsdom": "^21.1.7",
|
|
70
70
|
"@types/lodash-es": "^4.17.12",
|
|
71
|
-
"@types/node": "^22.13.
|
|
71
|
+
"@types/node": "^22.13.4",
|
|
72
72
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
73
|
-
"@vitest/coverage-v8": "^3.0.
|
|
73
|
+
"@vitest/coverage-v8": "^3.0.6",
|
|
74
74
|
"@vue/compiler-sfc": "3.5.13",
|
|
75
75
|
"@vue/test-utils": "^2.4.6",
|
|
76
76
|
"@vuepic/vue-datepicker": "11.0.1",
|
|
77
77
|
"autoprefixer": "^10.4.20",
|
|
78
78
|
"dayjs": "1.11.13",
|
|
79
79
|
"eslint": "^9.20.1",
|
|
80
|
-
"eslint-plugin-storybook": "^0.11.
|
|
80
|
+
"eslint-plugin-storybook": "^0.11.3",
|
|
81
81
|
"floating-vue": "5.2.2",
|
|
82
82
|
"glob": "^11.0.1",
|
|
83
83
|
"husky": "^9.1.7",
|
|
@@ -87,22 +87,25 @@
|
|
|
87
87
|
"lodash-es": "4.17.21",
|
|
88
88
|
"make-coverage-badge": "^1.2.0",
|
|
89
89
|
"postcss": "^8.5.2",
|
|
90
|
-
"prettier": "^3.
|
|
90
|
+
"prettier": "^3.5.1",
|
|
91
91
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
92
92
|
"resolve-tspaths": "^0.8.23",
|
|
93
93
|
"rimraf": "^6.0.1",
|
|
94
|
-
"sass": "^1.
|
|
95
|
-
"semantic-release": "^24.2.
|
|
96
|
-
"storybook": "^8.5.
|
|
94
|
+
"sass": "^1.85.0",
|
|
95
|
+
"semantic-release": "^24.2.3",
|
|
96
|
+
"storybook": "^8.5.6",
|
|
97
97
|
"svgo": "^3.3.2",
|
|
98
98
|
"tailwindcss": "^3.4.17",
|
|
99
99
|
"typescript": "5.7.3",
|
|
100
100
|
"vite": "^6.1.0",
|
|
101
|
-
"vitest": "^3.0.
|
|
101
|
+
"vitest": "^3.0.6",
|
|
102
102
|
"vue": "3.5.13",
|
|
103
103
|
"vue-currency-input": "3.2.1",
|
|
104
104
|
"vue-router": "4.5.0",
|
|
105
105
|
"vue-toastification": "2.0.0-rc.5",
|
|
106
106
|
"vue-tsc": "2.2.0"
|
|
107
|
+
},
|
|
108
|
+
"dependencies": {
|
|
109
|
+
"tailwind-variants": "^0.3.1"
|
|
107
110
|
}
|
|
108
111
|
}
|
|
@@ -163,7 +163,7 @@ describe('PBtn.vue', () => {
|
|
|
163
163
|
it.each([
|
|
164
164
|
['sm', ['py-1', 'px-2', 'rounded', 'font-medium', 'text-sm']],
|
|
165
165
|
['md', ['py-2', 'px-6', 'rounded', 'font-medium', 'text-base']],
|
|
166
|
-
['lg', ['py-
|
|
166
|
+
['lg', ['py-2.5', 'px-6', 'rounded', 'font-medium', 'text-lg']],
|
|
167
167
|
])('renders a button of size %s', async (size, classes) => {
|
|
168
168
|
const wrapper = createWrapperFor(PBtn, { props: { size } });
|
|
169
169
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
v-bind="$attrs"
|
|
5
5
|
:href="sanitizeUrl(to)"
|
|
6
6
|
target="_blank"
|
|
7
|
-
:class="classes"
|
|
7
|
+
:class="classes.button"
|
|
8
8
|
:disabled="!!$attrs.disabled ? true : null"
|
|
9
9
|
:aria-disabled="!!$attrs.disabled"
|
|
10
10
|
>
|
|
@@ -16,93 +16,80 @@
|
|
|
16
16
|
:type="to ? null : nativeType"
|
|
17
17
|
:to="to ? to : null"
|
|
18
18
|
:aria-selected="selected"
|
|
19
|
-
:class="classes"
|
|
19
|
+
:class="classes.button"
|
|
20
20
|
v-bind="$attrs"
|
|
21
21
|
:disabled="!!$attrs.disabled || loading ? true : null"
|
|
22
22
|
:aria-disabled="$attrs.disabled"
|
|
23
23
|
>
|
|
24
24
|
<div :class="{ invisible: loading }"><slot></slot></div>
|
|
25
|
-
<PRingLoader
|
|
26
|
-
v-if="loading"
|
|
27
|
-
:color="loaderColor"
|
|
28
|
-
:size="loaderSize"
|
|
29
|
-
class="absolute bottom-0 left-0 right-0 top-0 flex items-center justify-center"
|
|
30
|
-
/>
|
|
25
|
+
<PRingLoader v-if="loading" :size="loaderSize" :class="classes.loader" />
|
|
31
26
|
</Component>
|
|
32
27
|
</template>
|
|
33
28
|
|
|
34
29
|
<script lang="ts">
|
|
35
|
-
import { type Size } from '@squirrel/components/p-btn/p-btn.types';
|
|
30
|
+
import { type Size, SIZES } from '@squirrel/components/p-btn/p-btn.types';
|
|
36
31
|
import PRingLoader from '@squirrel/components/p-ring-loader/p-ring-loader.vue';
|
|
37
32
|
import { isExternalLink } from '@squirrel/utils/link';
|
|
38
33
|
import { sanitizeUrl } from '@squirrel/utils/sanitization';
|
|
34
|
+
import { tv, type VariantProps } from 'tailwind-variants';
|
|
39
35
|
import { defineComponent, type PropType } from 'vue';
|
|
40
36
|
import { type RouteLocationRaw, RouterLink } from 'vue-router';
|
|
41
37
|
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
38
|
+
const btnClasses = {
|
|
39
|
+
slots: {
|
|
40
|
+
button:
|
|
41
|
+
'relative inline-block rounded font-medium outline-none disabled:pointer-events-none disabled:cursor-default disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:cursor-default aria-disabled:opacity-50',
|
|
42
|
+
loader: 'absolute bottom-0 left-0 right-0 top-0 flex items-center justify-center font-medium',
|
|
43
|
+
},
|
|
44
|
+
variants: {
|
|
45
|
+
type: {
|
|
46
|
+
primary: {
|
|
47
|
+
button: 'bg-primary text-surface hover:bg-accent active:bg-p-blue-80',
|
|
48
|
+
loader: 'text-surface',
|
|
49
|
+
},
|
|
50
|
+
secondary: {
|
|
51
|
+
button: 'bg-p-gray-20 hover:bg-p-gray-30 active:bg-p-gray-40',
|
|
52
|
+
loader: 'text-p-purple-60',
|
|
53
|
+
},
|
|
54
|
+
'primary-outline': {
|
|
55
|
+
button: 'bg-p-blue-10 text-p-purple-60 ring-1 ring-inset ring-p-purple-60 hover:bg-p-gray-20',
|
|
56
|
+
loader: 'text-p-purple-60',
|
|
57
|
+
},
|
|
58
|
+
'secondary-outline': {
|
|
59
|
+
button:
|
|
60
|
+
'bg-surface text-p-purple-60 ring-1 ring-inset ring-p-gray-30 hover:bg-p-blue-10 aria-selected:bg-p-blue-10',
|
|
61
|
+
loader: 'text-p-purple-60',
|
|
62
|
+
},
|
|
63
|
+
'secondary-outline-blue': {
|
|
64
|
+
button:
|
|
65
|
+
'bg-surface text-p-purple-60 ring-1 ring-inset ring-p-gray-30 hover:bg-p-blue-10 aria-selected:bg-p-blue-15 aria-selected:text-p-blue-60',
|
|
66
|
+
loader: 'text-p-purple-60',
|
|
67
|
+
},
|
|
68
|
+
error: { button: 'bg-p-red-40 text-white hover:bg-p-red-50', loader: 'text-white' },
|
|
69
|
+
success: { button: 'bg-p-green-40 text-white hover:bg-p-green-50', loader: 'text-white' },
|
|
70
|
+
'primary-link': { button: 'bg-transparent text-primary underline hover:text-accent', loader: 'text-p-blue-60' },
|
|
71
|
+
'secondary-ghost': { button: 'text-on-surface hover:bg-p-gray-20', loader: 'text-p-purple-60' },
|
|
72
|
+
'secondary-ghost-dark': { button: 'text-white hover:bg-p-purple-50', loader: 'text-p-blue-15' },
|
|
73
|
+
},
|
|
74
|
+
size: {
|
|
75
|
+
sm: { button: 'px-2 py-1 text-sm' },
|
|
76
|
+
md: { button: 'px-6 py-2 text-base' },
|
|
77
|
+
lg: { button: 'px-6 py-2.5 text-lg' },
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
defaultVariants: {
|
|
81
|
+
type: 'primary',
|
|
82
|
+
size: 'md',
|
|
83
|
+
},
|
|
53
84
|
} as const;
|
|
54
85
|
|
|
86
|
+
const btn = tv(btnClasses);
|
|
87
|
+
const BUTTON_TYPES = Object.keys(btnClasses.variants.type);
|
|
55
88
|
const BUTTON_NATIVE_TYPES = ['button', 'submit', 'reset'] as const;
|
|
89
|
+
const LOADER_SIZES = { sm: 24, md: 30, lg: 40 } as const satisfies { [key in Size]: number };
|
|
56
90
|
|
|
57
91
|
type ButtonNativeType = (typeof BUTTON_NATIVE_TYPES)[number];
|
|
58
|
-
type
|
|
59
|
-
type ButtonType = (typeof BUTTON_TYPES)[ButtonTypeKeys];
|
|
60
|
-
|
|
61
|
-
const DEFAULT_CLASSES = `relative inline-block outline-none disabled:opacity-50 disabled:cursor-default disabled:pointer-events-none aria-disabled:opacity-50 aria-disabled:cursor-default aria-disabled:pointer-events-none`;
|
|
62
|
-
|
|
63
|
-
type ButtonClass = {
|
|
64
|
-
[key in ButtonType]: string;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const BUTTON_CLASSES: ButtonClass = {
|
|
68
|
-
[BUTTON_TYPES.PRIMARY]: 'text-surface bg-primary hover:bg-accent active:bg-p-blue-80',
|
|
69
|
-
[BUTTON_TYPES.SECONDARY]: 'bg-p-gray-20 hover:bg-p-gray-30 active:bg-p-gray-40',
|
|
70
|
-
[BUTTON_TYPES.PRIMARY_OUTLINE]: 'text-p-purple-60 bg-p-blue-10 ring-1 ring-inset ring-p-purple-60 hover:bg-p-gray-20',
|
|
71
|
-
[BUTTON_TYPES.SECONDARY_OUTLINE]:
|
|
72
|
-
'text-p-purple-60 bg-surface ring-1 ring-inset ring-p-gray-30 hover:bg-p-blue-10 aria-selected:bg-p-blue-10',
|
|
73
|
-
[BUTTON_TYPES.SECONDARY_OUTLINE_BLUE]:
|
|
74
|
-
'text-p-purple-60 bg-surface ring-1 ring-inset ring-p-gray-30 hover:bg-p-blue-10 aria-selected:bg-p-blue-15 aria-selected:text-p-blue-60',
|
|
75
|
-
[BUTTON_TYPES.ERROR]: 'text-white bg-p-red-40 hover:bg-p-red-50',
|
|
76
|
-
[BUTTON_TYPES.SUCCESS]: 'text-white bg-p-green-40 hover:bg-p-green-50',
|
|
77
|
-
[BUTTON_TYPES.PRIMARY_LINK]: 'text-primary bg-transparent hover:text-accent underline',
|
|
78
|
-
[BUTTON_TYPES.SECONDARY_GHOST]: 'text-on-surface hover:bg-p-gray-20',
|
|
79
|
-
[BUTTON_TYPES.SECONDARY_GHOST_DARK]: 'text-white hover:bg-p-purple-50',
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
const BUTTON_SIZES = {
|
|
83
|
-
sm: 'py-1 px-2 rounded font-medium text-sm',
|
|
84
|
-
md: 'py-2 px-6 rounded font-medium text-base',
|
|
85
|
-
lg: 'py-3 px-6 rounded font-medium text-lg',
|
|
86
|
-
} as const satisfies { [key in Size]: string };
|
|
87
|
-
|
|
88
|
-
const LOADER_SIZES = {
|
|
89
|
-
sm: 24,
|
|
90
|
-
md: 30,
|
|
91
|
-
lg: 40,
|
|
92
|
-
} as const satisfies { [key in Size]: number };
|
|
93
|
-
|
|
94
|
-
const LOADER_COLORS = {
|
|
95
|
-
[BUTTON_TYPES.PRIMARY]: 'var(--color-p-blue-15)',
|
|
96
|
-
[BUTTON_TYPES.SECONDARY]: 'var(--color-p-purple-60)',
|
|
97
|
-
[BUTTON_TYPES.PRIMARY_OUTLINE]: 'var(--color-p-blue-60)',
|
|
98
|
-
[BUTTON_TYPES.SECONDARY_OUTLINE]: 'var(--color-p-purple-60)',
|
|
99
|
-
[BUTTON_TYPES.SECONDARY_OUTLINE_BLUE]: 'var(--color-p-purple-60)',
|
|
100
|
-
[BUTTON_TYPES.ERROR]: 'var(--color-p-blue-15)',
|
|
101
|
-
[BUTTON_TYPES.SUCCESS]: 'var(--color-p-blue-15)',
|
|
102
|
-
[BUTTON_TYPES.PRIMARY_LINK]: 'var(--color-p-blue-60)',
|
|
103
|
-
[BUTTON_TYPES.SECONDARY_GHOST]: 'var(--color-p-purple-60)',
|
|
104
|
-
[BUTTON_TYPES.SECONDARY_GHOST_DARK]: 'var(--color-p-blue-15)',
|
|
105
|
-
} as const;
|
|
92
|
+
type ButtonType = NonNullable<VariantProps<typeof btn>['type']>;
|
|
106
93
|
|
|
107
94
|
export default defineComponent({
|
|
108
95
|
name: 'PBtn',
|
|
@@ -119,7 +106,7 @@ export default defineComponent({
|
|
|
119
106
|
type: String as PropType<ButtonType>,
|
|
120
107
|
default: 'primary',
|
|
121
108
|
validator(value: ButtonType) {
|
|
122
|
-
return
|
|
109
|
+
return BUTTON_TYPES.includes(value);
|
|
123
110
|
},
|
|
124
111
|
},
|
|
125
112
|
/**
|
|
@@ -139,7 +126,7 @@ export default defineComponent({
|
|
|
139
126
|
type: String as PropType<Size>,
|
|
140
127
|
default: 'md',
|
|
141
128
|
validator(value: Size) {
|
|
142
|
-
return
|
|
129
|
+
return SIZES.includes(value);
|
|
143
130
|
},
|
|
144
131
|
},
|
|
145
132
|
/**
|
|
@@ -167,14 +154,13 @@ export default defineComponent({
|
|
|
167
154
|
},
|
|
168
155
|
computed: {
|
|
169
156
|
classes() {
|
|
170
|
-
|
|
157
|
+
const { button, loader } = btn({ type: this.type, size: this.size });
|
|
158
|
+
|
|
159
|
+
return { button: button(), loader: loader() };
|
|
171
160
|
},
|
|
172
161
|
loaderSize() {
|
|
173
162
|
return Number(`${LOADER_SIZES[this.size]}`);
|
|
174
163
|
},
|
|
175
|
-
loaderColor() {
|
|
176
|
-
return LOADER_COLORS[this.type];
|
|
177
|
-
},
|
|
178
164
|
},
|
|
179
165
|
methods: {
|
|
180
166
|
isExternalLink,
|
|
@@ -243,10 +243,10 @@ div[id^='popper_'].dropdown .v-popper__inner .dropdown-menu {
|
|
|
243
243
|
@apply py-2;
|
|
244
244
|
}
|
|
245
245
|
div[id^='popper_'].dropdown .v-popper__inner .dropdown-menu .dropdown-header {
|
|
246
|
-
@apply block whitespace-nowrap px-4 py-
|
|
246
|
+
@apply block whitespace-nowrap px-4 py-2 text-xs font-semibold uppercase leading-5 text-p-gray-40;
|
|
247
247
|
}
|
|
248
248
|
div[id^='popper_'].dropdown .v-popper__inner .dropdown-menu .dropdown-item {
|
|
249
|
-
@apply clear-both block w-full cursor-pointer whitespace-nowrap px-4 py-
|
|
249
|
+
@apply clear-both block w-full cursor-pointer whitespace-nowrap px-4 py-2 text-left text-sm font-medium leading-5;
|
|
250
250
|
}
|
|
251
251
|
div[id^='popper_'].dropdown .v-popper__inner .dropdown-menu .dropdown-item:active,
|
|
252
252
|
div[id^='popper_'].dropdown .v-popper__inner .dropdown-menu .dropdown-item.active {
|
|
@@ -40,14 +40,9 @@ describe('PFileUpload.vue', () => {
|
|
|
40
40
|
},
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
'font-medium',
|
|
47
|
-
'text-sm',
|
|
48
|
-
"after:content-['_*']",
|
|
49
|
-
'after:text-on-error',
|
|
50
|
-
]);
|
|
43
|
+
const labelClasses = ['block', 'mb-1', 'font-medium', 'text-sm', 'after:content-["_*"]', 'after:text-on-error'];
|
|
44
|
+
|
|
45
|
+
expect(wrapper.find('label').classes()).toEqual(expect.arrayContaining(labelClasses));
|
|
51
46
|
});
|
|
52
47
|
|
|
53
48
|
it('sets the disabled state correctly', () => {
|
|
@@ -28,6 +28,11 @@ export const P_ICON_ALIASES = {
|
|
|
28
28
|
filters: 'mage:filter',
|
|
29
29
|
'bar-chart': 'material-symbols:bar-chart-4-bars-rounded',
|
|
30
30
|
list: 'material-symbols:format-list-bulleted',
|
|
31
|
+
formula: 'fluent:math-formula-20-filled',
|
|
32
|
+
refresh: 'ri:loop-left-line',
|
|
33
|
+
download: 'tdesign:download',
|
|
34
|
+
upload: 'tdesign:upload',
|
|
35
|
+
info: 'streamline:information-circle',
|
|
31
36
|
} as const;
|
|
32
37
|
|
|
33
38
|
export type PIconAlias = keyof typeof P_ICON_ALIASES;
|
|
@@ -5,12 +5,13 @@ describe('PInfoIcon.vue', () => {
|
|
|
5
5
|
it('renders an info icon', async () => {
|
|
6
6
|
const wrapper = createWrapperFor(PInfoIcon, {
|
|
7
7
|
props: { text: 'Lorem ipsum dolor sit amet.' },
|
|
8
|
+
global: { PIcon: true },
|
|
8
9
|
});
|
|
9
10
|
|
|
10
|
-
const iClasses = ['
|
|
11
|
+
const iClasses = ['block', 'h-3', 'w-3'];
|
|
11
12
|
const divClasses = ['v-popper', 'v-popper--theme-tooltip'];
|
|
12
13
|
|
|
13
|
-
const i = wrapper.
|
|
14
|
+
const i = wrapper.findComponent({ name: 'PIcon' });
|
|
14
15
|
|
|
15
16
|
expect(divClasses.every((c) => wrapper.classes().includes(c))).toBe(true);
|
|
16
17
|
expect(i.exists()).toBe(true);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<VTooltip :popper-triggers="['hover']" :delay="{ show: 750, hide: 0 }" :disabled="!$slots.default && !text">
|
|
3
|
-
<
|
|
3
|
+
<PIcon icon="info" class="block h-3 w-3" width="12" />
|
|
4
4
|
<template #popper>
|
|
5
5
|
<slot>{{ text }}</slot>
|
|
6
6
|
</template>
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
</template>
|
|
9
9
|
|
|
10
10
|
<script setup lang="ts">
|
|
11
|
+
import PIcon from '@squirrel/components/p-icon/p-icon.vue';
|
|
12
|
+
|
|
11
13
|
defineOptions({
|
|
12
14
|
name: 'PInfoIcon',
|
|
13
15
|
});
|
|
@@ -20,9 +22,3 @@ withDefaults(defineProps<Props>(), {
|
|
|
20
22
|
text: null,
|
|
21
23
|
});
|
|
22
24
|
</script>
|
|
23
|
-
|
|
24
|
-
<style scoped>
|
|
25
|
-
.bg-info-circle-icon {
|
|
26
|
-
background-image: url('@squirrel/assets/info-circle-icon.svg');
|
|
27
|
-
}
|
|
28
|
-
</style>
|
|
@@ -60,16 +60,9 @@ describe('PInlineDatePicker.vue', () => {
|
|
|
60
60
|
it('adds the required class when the required prop is set', () => {
|
|
61
61
|
const wrapper = createWrapper({ label: 'test datepicker', required: true });
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
'font-medium',
|
|
67
|
-
'text-sm',
|
|
68
|
-
"after:content-['_*']",
|
|
69
|
-
'after:text-on-error',
|
|
70
|
-
]);
|
|
71
|
-
|
|
72
|
-
expect(wrapper.props().required).toBe(true);
|
|
63
|
+
const labelClasses = ['block', 'mb-1', 'font-medium', 'text-sm', 'after:content-["_*"]', 'after:text-on-error'];
|
|
64
|
+
|
|
65
|
+
expect(wrapper.find('label').classes()).toEqual(expect.arrayContaining(labelClasses));
|
|
73
66
|
});
|
|
74
67
|
|
|
75
68
|
it('passes listeners to the datepicker', () => {
|
|
@@ -62,14 +62,9 @@ describe('PInput.vue', () => {
|
|
|
62
62
|
},
|
|
63
63
|
});
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'font-medium',
|
|
69
|
-
'text-sm',
|
|
70
|
-
"after:content-['_*']",
|
|
71
|
-
'after:text-on-error',
|
|
72
|
-
]);
|
|
65
|
+
const res = ['block', 'mb-1', 'font-medium', 'text-sm', 'after:content-["_*"]', 'after:text-on-error'];
|
|
66
|
+
|
|
67
|
+
expect(wrapper.find('label').classes()).toEqual(expect.arrayContaining(res));
|
|
73
68
|
});
|
|
74
69
|
|
|
75
70
|
it('sets the disabled state correctly', () => {
|