@pequity/squirrel 8.4.5 → 8.5.1
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/README.md +31 -2
- package/dist/cjs/chunks/index.js +530 -179
- package/dist/cjs/chunks/p-alert.js +11 -16
- package/dist/cjs/chunks/p-btn.js +1 -1
- package/dist/cjs/chunks/p-input-percent.js +2 -2
- package/dist/cjs/chunks/p-table-header-cell.js +57 -0
- package/dist/cjs/index.js +41 -33
- package/dist/cjs/inputClasses.js +3 -3
- package/dist/cjs/p-icon.js +2 -1
- package/dist/cjs/p-loading.js +2 -2
- package/dist/cjs/p-modal.js +45 -43
- package/dist/cjs/p-table-header-cell.js +2 -116
- package/dist/cjs/p-table.js +2 -0
- package/dist/cjs/usePTableHeaderWrap.js +38 -0
- package/dist/es/chunks/index.js +530 -179
- package/dist/es/chunks/p-alert.js +11 -16
- package/dist/es/chunks/p-btn.js +2 -2
- package/dist/es/chunks/p-input-percent.js +2 -2
- package/dist/es/chunks/p-table-header-cell.js +58 -0
- package/dist/es/index.js +49 -41
- package/dist/es/inputClasses.js +4 -4
- package/dist/es/p-icon.js +2 -1
- package/dist/es/p-loading.js +2 -2
- package/dist/es/p-modal.js +45 -43
- package/dist/es/p-table-header-cell.js +2 -116
- package/dist/es/p-table.js +2 -0
- package/dist/es/usePTableHeaderWrap.js +38 -0
- package/dist/squirrel/components/index.d.ts +1 -2
- package/dist/squirrel/components/p-action-bar/p-action-bar.vue.d.ts +1 -1
- package/dist/squirrel/components/p-alert/p-alert.vue.d.ts +2 -2
- package/dist/squirrel/components/p-avatar/p-avatar.vue.d.ts +1 -1
- package/dist/squirrel/components/p-btn/p-btn.vue.d.ts +3 -3
- package/dist/squirrel/components/p-card/p-card.vue.d.ts +1 -1
- package/dist/squirrel/components/p-checkbox/p-checkbox.vue.d.ts +1 -1
- package/dist/squirrel/components/p-close-btn/p-close-btn.vue.d.ts +1 -1
- package/dist/squirrel/components/p-date-picker/p-date-picker.vue.d.ts +1 -1
- package/dist/squirrel/components/p-drawer/p-drawer.vue.d.ts +12 -12
- package/dist/squirrel/components/p-dropdown-select/p-dropdown-select.vue.d.ts +1 -1
- package/dist/squirrel/components/p-file-upload/p-file-upload.vue.d.ts +1 -1
- package/dist/squirrel/components/p-icon/p-icon.types.d.ts +1 -0
- package/dist/squirrel/components/p-icon/p-icon.vue.d.ts +1 -1
- package/dist/squirrel/components/p-info-icon/p-info-icon.vue.d.ts +1 -1
- package/dist/squirrel/components/p-inline-date-picker/p-inline-date-picker.vue.d.ts +1 -1
- package/dist/squirrel/components/p-input/p-input.vue.d.ts +1 -1
- package/dist/squirrel/components/p-input-percent/p-input-percent.vue.d.ts +1 -1
- package/dist/squirrel/components/p-input-search/p-input-search.vue.d.ts +1 -1
- package/dist/squirrel/components/p-link/p-link.vue.d.ts +1 -1
- package/dist/squirrel/components/p-loading/p-loading.vue.d.ts +1 -1
- package/dist/squirrel/components/p-modal/p-modal.vue.d.ts +5 -1
- package/dist/squirrel/components/p-pagination/p-pagination.vue.d.ts +1 -1
- package/dist/squirrel/components/p-pagination-info/p-pagination-info.vue.d.ts +1 -1
- package/dist/squirrel/components/p-progress-bar/p-progress-bar.vue.d.ts +1 -1
- package/dist/squirrel/components/p-ring-loader/p-ring-loader.vue.d.ts +1 -1
- package/dist/squirrel/components/p-select/p-select.vue.d.ts +1 -1
- package/dist/squirrel/components/p-select-btn/p-select-btn.vue.d.ts +1 -1
- package/dist/squirrel/components/p-select-list/p-select-list.vue.d.ts +1 -1
- package/dist/squirrel/components/p-steps/p-steps.vue.d.ts +1 -1
- package/dist/squirrel/components/p-table/p-table.types.d.ts +1 -0
- package/dist/squirrel/components/p-table/p-table.vue.d.ts +1 -1
- package/dist/squirrel/components/p-table/usePTableHeaderWrap.d.ts +4 -0
- package/dist/squirrel/components/p-table-header-cell/p-table-header-cell.vue.d.ts +14 -161
- package/dist/squirrel/components/p-table-loader/p-table-loader.vue.d.ts +1 -1
- package/dist/squirrel/components/p-table-sort/p-table-sort.vue.d.ts +1 -1
- package/dist/squirrel/components/p-table-td/p-table-td.vue.d.ts +1 -1
- package/dist/squirrel/components/p-tabs/p-tabs.vue.d.ts +1 -1
- package/dist/squirrel/components/p-tabs-pills/p-tabs-pills.vue.d.ts +1 -1
- package/dist/squirrel/components/p-textarea/p-textarea.vue.d.ts +1 -1
- package/dist/squirrel/components/p-toggle/p-toggle.vue.d.ts +1 -1
- package/dist/squirrel.css +22 -33
- package/package.json +23 -21
- package/squirrel/components/index.ts +0 -2
- package/squirrel/components/p-alert/p-alert.spec.js +4 -4
- package/squirrel/components/p-alert/p-alert.stories.js +19 -13
- package/squirrel/components/p-alert/p-alert.vue +9 -11
- package/squirrel/components/p-icon/p-icon.types.ts +1 -0
- package/squirrel/components/p-modal/p-modal-basic.spec.js +29 -3
- package/squirrel/components/p-modal/p-modal.vue +44 -33
- package/squirrel/components/p-table/p-table.spec.js +79 -10
- package/squirrel/components/p-table/p-table.types.ts +2 -0
- package/squirrel/components/p-table/p-table.vue +12 -5
- package/squirrel/components/p-table/usePTableHeaderWrap.spec.js +118 -0
- package/squirrel/components/p-table/usePTableHeaderWrap.ts +45 -0
- package/squirrel/components/p-table-header-cell/p-table-header-cell.spec.js +17 -9
- package/squirrel/components/p-table-header-cell/p-table-header-cell.vue +69 -83
- package/dist/cjs/p-table-filter-icon.js +0 -28
- package/dist/es/p-table-filter-icon.js +0 -29
- package/dist/squirrel/components/p-table-header-cell/p-table-filter-icon.vue.d.ts +0 -20
- package/squirrel/assets/filter-icon-active-hover.svg +0 -4
- package/squirrel/assets/filter-icon-active.svg +0 -4
- package/squirrel/assets/filter-icon-hover.svg +0 -7
- package/squirrel/assets/filter-icon.svg +0 -6
- package/squirrel/components/p-table-header-cell/p-filter-icon.spec.js +0 -20
- package/squirrel/components/p-table-header-cell/p-filter-icon.stories.js +0 -33
- package/squirrel/components/p-table-header-cell/p-table-filter-icon.vue +0 -41
|
@@ -1,168 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
text: {
|
|
14
|
-
type: StringConstructor;
|
|
15
|
-
default: string;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* CSS classes to apply to the text element.
|
|
19
|
-
* Can be a string, object, or array for flexible styling.
|
|
20
|
-
*/
|
|
21
|
-
textClass: {
|
|
22
|
-
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
23
|
-
default: string;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Whether the filter icon is in an active state.
|
|
27
|
-
* Controls the visual appearance of the filter icon and text color.
|
|
28
|
-
*/
|
|
29
|
-
filterActive: {
|
|
30
|
-
type: BooleanConstructor;
|
|
31
|
-
default: boolean;
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Whether to show the filter icon.
|
|
35
|
-
* When false, the filter icon is hidden regardless of other states.
|
|
36
|
-
*/
|
|
37
|
-
showFilterIcon: {
|
|
38
|
-
type: BooleanConstructor;
|
|
39
|
-
default: boolean;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Tooltip text to display when hovering over the info icon.
|
|
43
|
-
* When provided, shows an info icon with the tooltip content.
|
|
44
|
-
*/
|
|
45
|
-
tooltipText: {
|
|
46
|
-
type: StringConstructor;
|
|
47
|
-
default: string;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Custom text color to apply to the header text.
|
|
51
|
-
* Overrides the default text color when provided.
|
|
52
|
-
*/
|
|
53
|
-
textColor: {
|
|
54
|
-
type: StringConstructor;
|
|
55
|
-
default: string;
|
|
56
|
-
};
|
|
57
|
-
}>, {}, {
|
|
58
|
-
DEFAULT_CLASSES: string;
|
|
59
|
-
}, {
|
|
60
|
-
textColorClass(): "" | "text-active-blue" | "text-p-gray-60";
|
|
61
|
-
style(): {
|
|
62
|
-
color?: undefined;
|
|
63
|
-
} | {
|
|
64
|
-
color: string;
|
|
65
|
-
};
|
|
66
|
-
}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click-filter-icon"[], "click-filter-icon", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
67
|
-
/**
|
|
68
|
-
* The text content to display in the header cell.
|
|
69
|
-
* Also used as the title attribute for accessibility.
|
|
70
|
-
*/
|
|
71
|
-
text: {
|
|
72
|
-
type: StringConstructor;
|
|
73
|
-
default: string;
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* CSS classes to apply to the text element.
|
|
77
|
-
* Can be a string, object, or array for flexible styling.
|
|
78
|
-
*/
|
|
79
|
-
textClass: {
|
|
80
|
-
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
81
|
-
default: string;
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Whether the filter icon is in an active state.
|
|
85
|
-
* Controls the visual appearance of the filter icon and text color.
|
|
86
|
-
*/
|
|
87
|
-
filterActive: {
|
|
88
|
-
type: BooleanConstructor;
|
|
89
|
-
default: boolean;
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Whether to show the filter icon.
|
|
93
|
-
* When false, the filter icon is hidden regardless of other states.
|
|
94
|
-
*/
|
|
95
|
-
showFilterIcon: {
|
|
96
|
-
type: BooleanConstructor;
|
|
97
|
-
default: boolean;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Tooltip text to display when hovering over the info icon.
|
|
101
|
-
* When provided, shows an info icon with the tooltip content.
|
|
102
|
-
*/
|
|
103
|
-
tooltipText: {
|
|
104
|
-
type: StringConstructor;
|
|
105
|
-
default: string;
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Custom text color to apply to the header text.
|
|
109
|
-
* Overrides the default text color when provided.
|
|
110
|
-
*/
|
|
111
|
-
textColor: {
|
|
112
|
-
type: StringConstructor;
|
|
113
|
-
default: string;
|
|
114
|
-
};
|
|
115
|
-
}>> & Readonly<{
|
|
116
|
-
"onClick-filter-icon"?: ((...args: any[]) => any) | undefined;
|
|
1
|
+
type Props = {
|
|
2
|
+
text?: string;
|
|
3
|
+
textClass?: string;
|
|
4
|
+
filterActive?: boolean;
|
|
5
|
+
showFilterIcon?: boolean;
|
|
6
|
+
tooltipText?: string;
|
|
7
|
+
textColor?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
"click-filter-icon": (event: Event, filterActive: boolean) => any;
|
|
11
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
12
|
+
"onClick-filter-icon"?: ((event: Event, filterActive: boolean) => any) | undefined;
|
|
117
13
|
}>, {
|
|
118
14
|
text: string;
|
|
119
15
|
tooltipText: string;
|
|
120
|
-
textClass: string
|
|
16
|
+
textClass: string;
|
|
121
17
|
filterActive: boolean;
|
|
122
18
|
showFilterIcon: boolean;
|
|
123
19
|
textColor: string;
|
|
124
|
-
}, {}, {
|
|
125
|
-
PTableFilterIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
126
|
-
active: {
|
|
127
|
-
type: BooleanConstructor;
|
|
128
|
-
default: boolean;
|
|
129
|
-
};
|
|
130
|
-
}>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
131
|
-
active: {
|
|
132
|
-
type: BooleanConstructor;
|
|
133
|
-
default: boolean;
|
|
134
|
-
};
|
|
135
|
-
}>> & Readonly<{}>, {
|
|
136
|
-
active: boolean;
|
|
137
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
138
|
-
PInfoIcon: {
|
|
139
|
-
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
140
|
-
text?: string | null;
|
|
141
|
-
}> & Readonly<{}>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
|
|
142
|
-
text: string | null;
|
|
143
|
-
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
144
|
-
P: {};
|
|
145
|
-
B: {};
|
|
146
|
-
D: {};
|
|
147
|
-
C: {};
|
|
148
|
-
M: {};
|
|
149
|
-
Defaults: {};
|
|
150
|
-
}, Readonly<{
|
|
151
|
-
text?: string | null;
|
|
152
|
-
}> & Readonly<{}>, {}, {}, {}, {}, {
|
|
153
|
-
text: string | null;
|
|
154
|
-
}>;
|
|
155
|
-
__isFragment?: never;
|
|
156
|
-
__isTeleport?: never;
|
|
157
|
-
__isSuspense?: never;
|
|
158
|
-
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
159
|
-
text?: string | null;
|
|
160
|
-
}> & Readonly<{}>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
161
|
-
text: string | null;
|
|
162
|
-
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
163
|
-
$slots: {
|
|
164
|
-
default?: () => unknown;
|
|
165
|
-
};
|
|
166
|
-
});
|
|
167
|
-
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
20
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
168
21
|
export default _default;
|
|
@@ -39,7 +39,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
39
39
|
type: BooleanConstructor;
|
|
40
40
|
default: boolean;
|
|
41
41
|
};
|
|
42
|
-
}>,
|
|
42
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
43
43
|
/**
|
|
44
44
|
* The number of rows to display in the skeleton table.
|
|
45
45
|
* Controls the vertical size of the loading placeholder.
|
|
@@ -11,7 +11,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11
11
|
default: "noSorting";
|
|
12
12
|
validator(value: SortingType): boolean;
|
|
13
13
|
};
|
|
14
|
-
}>,
|
|
14
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
15
|
"update:modelValue": (value: SortingType) => any;
|
|
16
16
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
17
17
|
/**
|
|
@@ -19,7 +19,7 @@ declare var __VLS_1: {};
|
|
|
19
19
|
type __VLS_Slots = {} & {
|
|
20
20
|
default?: (props: typeof __VLS_1) => any;
|
|
21
21
|
};
|
|
22
|
-
declare const __VLS_component: import("vue").DefineComponent<Props,
|
|
22
|
+
declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
23
23
|
isSelected: boolean;
|
|
24
24
|
isEditable: boolean;
|
|
25
25
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -38,7 +38,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
38
38
|
type: NumberConstructor;
|
|
39
39
|
default: number;
|
|
40
40
|
};
|
|
41
|
-
}>,
|
|
41
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
42
42
|
"click:tab": (tabName: string) => any;
|
|
43
43
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
44
44
|
/**
|
|
@@ -30,7 +30,7 @@ type Props = {
|
|
|
30
30
|
*/
|
|
31
31
|
itemValue?: string;
|
|
32
32
|
};
|
|
33
|
-
declare const _default: import("vue").DefineComponent<Props,
|
|
33
|
+
declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
34
34
|
"update:modelValue": (val: Value) => any;
|
|
35
35
|
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
36
36
|
"onUpdate:modelValue"?: ((val: Value) => any) | undefined;
|
|
@@ -53,7 +53,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
53
53
|
default: string;
|
|
54
54
|
validator(value: Size): boolean;
|
|
55
55
|
};
|
|
56
|
-
}>,
|
|
56
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
57
57
|
"update:modelValue": (value: string) => any;
|
|
58
58
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
59
59
|
/**
|
|
@@ -43,7 +43,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<import("vu
|
|
|
43
43
|
default: string;
|
|
44
44
|
validator(value: Size): boolean;
|
|
45
45
|
};
|
|
46
|
-
}>,
|
|
46
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
47
47
|
"update:modelValue": (value: boolean) => any;
|
|
48
48
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
49
49
|
/**
|
package/dist/squirrel.css
CHANGED
|
@@ -295,33 +295,33 @@ to {
|
|
|
295
295
|
opacity: 0;
|
|
296
296
|
transform: translate3d(0, -100%, 0);
|
|
297
297
|
}
|
|
298
|
-
}.pm[data-v-
|
|
298
|
+
}.pm[data-v-5c370dbc] {
|
|
299
299
|
width: calc(100% - 32px);
|
|
300
300
|
min-width: 110px;
|
|
301
|
-
max-width: var(--
|
|
301
|
+
max-width: var(--a8364442);
|
|
302
302
|
max-height: calc(100vh - 32px);
|
|
303
303
|
}
|
|
304
|
-
.fadeIn[data-v-
|
|
304
|
+
.fadeIn[data-v-5c370dbc] {
|
|
305
305
|
animation-duration: 0.4s;
|
|
306
|
-
animation-name: fadeInFrames-
|
|
306
|
+
animation-name: fadeInFrames-5c370dbc;
|
|
307
307
|
animation-fill-mode: both;
|
|
308
308
|
}
|
|
309
|
-
.fadeOut[data-v-
|
|
309
|
+
.fadeOut[data-v-5c370dbc] {
|
|
310
310
|
animation-duration: 0.2s;
|
|
311
|
-
animation-name: fadeOutFrames-
|
|
311
|
+
animation-name: fadeOutFrames-5c370dbc;
|
|
312
312
|
animation-fill-mode: both;
|
|
313
313
|
}
|
|
314
|
-
.slideInTop[data-v-
|
|
314
|
+
.slideInTop[data-v-5c370dbc] {
|
|
315
315
|
animation-duration: 0.4s;
|
|
316
|
-
animation-name: fadeInFrames-
|
|
316
|
+
animation-name: fadeInFrames-5c370dbc,slideInTopFrames-5c370dbc;
|
|
317
317
|
animation-fill-mode: both;
|
|
318
318
|
}
|
|
319
|
-
.slideOutTop[data-v-
|
|
319
|
+
.slideOutTop[data-v-5c370dbc] {
|
|
320
320
|
animation-duration: 0.2s;
|
|
321
|
-
animation-name: fadeOutFrames-
|
|
321
|
+
animation-name: fadeOutFrames-5c370dbc,slideOutTopFrames-5c370dbc;
|
|
322
322
|
animation-fill-mode: both;
|
|
323
323
|
}
|
|
324
|
-
@keyframes slideInTopFrames-
|
|
324
|
+
@keyframes slideInTopFrames-5c370dbc {
|
|
325
325
|
from {
|
|
326
326
|
transform: translate(0, -12px);
|
|
327
327
|
animation-timing-function: cubic-bezier(0, 0, 0, 1);
|
|
@@ -330,7 +330,7 @@ to {
|
|
|
330
330
|
transform: translate(0, 0);
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
|
-
@keyframes slideOutTopFrames-
|
|
333
|
+
@keyframes slideOutTopFrames-5c370dbc {
|
|
334
334
|
from {
|
|
335
335
|
transform: translate(0, 0);
|
|
336
336
|
animation-timing-function: cubic-bezier(0.33, 0, 0.67, 1);
|
|
@@ -339,7 +339,7 @@ to {
|
|
|
339
339
|
transform: translate(0, -12px);
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
|
-
@keyframes fadeInFrames-
|
|
342
|
+
@keyframes fadeInFrames-5c370dbc {
|
|
343
343
|
from {
|
|
344
344
|
opacity: 0;
|
|
345
345
|
animation-timing-function: cubic-bezier(0, 0, 1, 1);
|
|
@@ -348,7 +348,7 @@ to {
|
|
|
348
348
|
opacity: 1;
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
|
-
@keyframes fadeOutFrames-
|
|
351
|
+
@keyframes fadeOutFrames-5c370dbc {
|
|
352
352
|
from {
|
|
353
353
|
opacity: 1;
|
|
354
354
|
animation-timing-function: cubic-bezier(0.33, 0, 0.67, 1);
|
|
@@ -364,17 +364,6 @@ to {
|
|
|
364
364
|
100% {
|
|
365
365
|
transform: translateX(100%);
|
|
366
366
|
}
|
|
367
|
-
}.filter[data-v-5c047926] {
|
|
368
|
-
background: url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15.5%206.73H4.5C4.36739%206.73%204.24021%206.67732%204.14645%206.58355C4.05268%206.48978%204%206.3626%204%206.23C4%206.09739%204.05268%205.97021%204.14645%205.87644C4.24021%205.78267%204.36739%205.73%204.5%205.73H15.5C15.6326%205.73%2015.7598%205.78267%2015.8536%205.87644C15.9473%205.97021%2016%206.09739%2016%206.23C16%206.3626%2015.9473%206.48978%2015.8536%206.58355C15.7598%206.67732%2015.6326%206.73%2015.5%206.73Z'%20fill='%23424E6E'/%3e%3cpath%20d='M14.33%209.245H5.67C5.53739%209.245%205.41021%209.19232%205.31644%209.09855C5.22268%209.00478%205.17%208.8776%205.17%208.745C5.17%208.61239%205.22268%208.48521%205.31644%208.39144C5.41021%208.29767%205.53739%208.245%205.67%208.245H14.33C14.4626%208.245%2014.5898%208.29767%2014.6836%208.39144C14.7773%208.48521%2014.83%208.61239%2014.83%208.745C14.83%208.8776%2014.7773%209.00478%2014.6836%209.09855C14.5898%209.19232%2014.4626%209.245%2014.33%209.245Z'%20fill='%23424E6E'/%3e%3cpath%20d='M11.605%2014.27H8.395C8.2624%2014.27%208.13522%2014.2173%208.04145%2014.1235C7.94768%2014.0298%207.895%2013.9026%207.895%2013.77C7.895%2013.6374%207.94768%2013.5102%208.04145%2013.4164C8.13522%2013.3227%208.2624%2013.27%208.395%2013.27H11.605C11.7376%2013.27%2011.8648%2013.3227%2011.9586%2013.4164C12.0523%2013.5102%2012.105%2013.6374%2012.105%2013.77C12.105%2013.9026%2012.0523%2014.0298%2011.9586%2014.1235C11.8648%2014.2173%2011.7376%2014.27%2011.605%2014.27Z'%20fill='%23424E6E'/%3e%3cpath%20d='M13.155%2011.755H6.845C6.71239%2011.755%206.58522%2011.7023%206.49145%2011.6085C6.39768%2011.5148%206.345%2011.3876%206.345%2011.255C6.345%2011.1224%206.39768%2010.9952%206.49145%2010.9014C6.58522%2010.8077%206.71239%2010.755%206.845%2010.755H13.155C13.2876%2010.755%2013.4148%2010.8077%2013.5086%2010.9014C13.6023%2010.9952%2013.655%2011.1224%2013.655%2011.255C13.655%2011.3876%2013.6023%2011.5148%2013.5086%2011.6085C13.4148%2011.7023%2013.2876%2011.755%2013.155%2011.755Z'%20fill='%23424E6E'/%3e%3c/svg%3e") no-repeat;
|
|
369
|
-
}
|
|
370
|
-
.filter[data-v-5c047926]:hover {
|
|
371
|
-
background: url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='20'%20height='20'%20rx='4'%20fill='black'%20fill-opacity='0.05'/%3e%3cpath%20d='M15.5%206.73001H4.5C4.36739%206.73001%204.24021%206.67733%204.14645%206.58356C4.05268%206.4898%204%206.36262%204%206.23001C4%206.0974%204.05268%205.97023%204.14645%205.87646C4.24021%205.78269%204.36739%205.73001%204.5%205.73001H15.5C15.6326%205.73001%2015.7598%205.78269%2015.8536%205.87646C15.9473%205.97023%2016%206.0974%2016%206.23001C16%206.36262%2015.9473%206.4898%2015.8536%206.58356C15.7598%206.67733%2015.6326%206.73001%2015.5%206.73001Z'%20fill='%23424E6E'/%3e%3cpath%20d='M14.33%209.24503H5.67C5.53739%209.24503%205.41021%209.19235%205.31644%209.09858C5.22268%209.00481%205.17%208.87763%205.17%208.74503C5.17%208.61242%205.22268%208.48524%205.31644%208.39147C5.41021%208.2977%205.53739%208.24503%205.67%208.24503H14.33C14.4626%208.24503%2014.5898%208.2977%2014.6836%208.39147C14.7773%208.48524%2014.83%208.61242%2014.83%208.74503C14.83%208.87763%2014.7773%209.00481%2014.6836%209.09858C14.5898%209.19235%2014.4626%209.24503%2014.33%209.24503Z'%20fill='%23424E6E'/%3e%3cpath%20d='M11.605%2014.27H8.395C8.2624%2014.27%208.13522%2014.2173%208.04145%2014.1236C7.94768%2014.0298%207.895%2013.9026%207.895%2013.77C7.895%2013.6374%207.94768%2013.5102%208.04145%2013.4165C8.13522%2013.3227%208.2624%2013.27%208.395%2013.27H11.605C11.7376%2013.27%2011.8648%2013.3227%2011.9586%2013.4165C12.0523%2013.5102%2012.105%2013.6374%2012.105%2013.77C12.105%2013.9026%2012.0523%2014.0298%2011.9586%2014.1236C11.8648%2014.2173%2011.7376%2014.27%2011.605%2014.27Z'%20fill='%23424E6E'/%3e%3cpath%20d='M13.155%2011.755H6.845C6.71239%2011.755%206.58522%2011.7023%206.49145%2011.6086C6.39768%2011.5148%206.345%2011.3876%206.345%2011.255C6.345%2011.1224%206.39768%2010.9952%206.49145%2010.9015C6.58522%2010.8077%206.71239%2010.755%206.845%2010.755H13.155C13.2876%2010.755%2013.4148%2010.8077%2013.5086%2010.9015C13.6023%2010.9952%2013.655%2011.1224%2013.655%2011.255C13.655%2011.3876%2013.6023%2011.5148%2013.5086%2011.6086C13.4148%2011.7023%2013.2876%2011.755%2013.155%2011.755Z'%20fill='%23424E6E'/%3e%3c/svg%3e") no-repeat;
|
|
372
|
-
}
|
|
373
|
-
.filter.active[data-v-5c047926] {
|
|
374
|
-
background: url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10%2014L4%205V3h16v2l-6%209v6l-4%202z'%20fill='%230F45AF'%20/%3e%3c/svg%3e") no-repeat;
|
|
375
|
-
}
|
|
376
|
-
.filter.active[data-v-5c047926]:hover {
|
|
377
|
-
background: url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='24'%20height='24'%20rx='4'%20fill='black'%20fill-opacity='0.05'/%3e%3cpath%20d='M10%2014L4%205V3h16v2l-6%209v6l-4%202z'%20fill='%230F45AF'%20/%3e%3c/svg%3e") no-repeat;
|
|
378
367
|
}.td-shadow-right[data-v-9a0c95c7] {
|
|
379
368
|
box-shadow: -1px 1px 5px 4px rgba(0, 0, 0, 0.15);
|
|
380
369
|
clip-path: inset(0px -12px 0px 0px);
|
|
@@ -1128,35 +1117,35 @@ to {
|
|
|
1128
1117
|
background-image: url("data:image/svg+xml,%3csvg%20width='33'%20height='30'%20viewBox='0%200%2033%2030'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M31.0143%2029.9524C31.1862%2029.9516%2031.3551%2029.9066%2031.5045%2029.8215C31.6539%2029.7365%2031.7789%2029.6144%2031.8674%2029.4669C31.9558%2029.3195%2032.0048%2029.1517%2032.0095%2028.9799C32.0142%2028.808%2031.9745%2028.6378%2031.8943%2028.4857L16.8943%200.485744C16.8006%200.337008%2016.6708%200.214443%2016.5169%200.129498C16.363%200.0445534%2016.1901%200%2016.0143%200C15.8385%200%2015.6656%200.0445534%2015.5117%200.129498C15.3578%200.214443%2015.228%200.337008%2015.1343%200.485744L0.134286%2028.4857C0.0463617%2028.6353%200%2028.8056%200%2028.9791C0%2029.1526%200.0463617%2029.3229%200.134286%2029.4724C0.221436%2029.6207%200.346313%2029.7432%200.496207%2029.8275C0.6461%2029.9118%200.815658%2029.9549%200.98762%2029.9524H31.0143ZM16.0143%2026.2857C15.6176%2026.2857%2015.2299%2026.1677%2014.9004%2025.9467C14.571%2025.7258%2014.3147%2025.4118%2014.1641%2025.0448C14.0136%2024.6778%2013.9755%2024.2743%2014.0549%2023.8857C14.1342%2023.497%2014.3274%2023.1407%2014.6098%2022.8621C14.8922%2022.5835%2015.251%2022.3951%2015.6407%2022.321C16.0304%2022.2468%2016.4334%2022.2903%2016.7983%2022.4458C17.1633%2022.6012%2017.4737%2022.8617%2017.6903%2023.1941C17.9068%2023.5265%2018.0196%2023.9158%2018.0143%2024.3124C18.0073%2024.8382%2017.7935%2025.3401%2017.4192%2025.7094C17.0448%2026.0787%2016.5401%2026.2858%2016.0143%2026.2857ZM16.0143%209.95241C16.3679%209.95241%2016.707%2010.0929%2016.9571%2010.3429C17.2071%2010.593%2017.3476%2010.9321%2017.3476%2011.2857V18.5791C17.3476%2018.9327%2017.2071%2019.2718%2016.9571%2019.5219C16.707%2019.7719%2016.3679%2019.9124%2016.0143%2019.9124C15.6607%2019.9124%2015.3215%2019.7719%2015.0715%2019.5219C14.8214%2019.2718%2014.681%2018.9327%2014.681%2018.5791V11.2857C14.681%2010.9321%2014.8214%2010.593%2015.0715%2010.3429C15.3215%2010.0929%2015.6607%209.95241%2016.0143%209.95241Z'%20fill='%23F2C94C'%20/%3e%3c/svg%3e");
|
|
1129
1118
|
}
|
|
1130
1119
|
|
|
1131
|
-
/*# sourceMappingURL=squirrel.css.map */.p-table[data-v-
|
|
1120
|
+
/*# sourceMappingURL=squirrel.css.map */.p-table[data-v-58c21732] {
|
|
1132
1121
|
color: rgb(var(--color-night));
|
|
1133
1122
|
height: 1px;
|
|
1134
1123
|
}
|
|
1135
|
-
.p-table th[data-v-
|
|
1124
|
+
.p-table th[data-v-58c21732] {
|
|
1136
1125
|
position: sticky;
|
|
1137
1126
|
top: 0px;
|
|
1138
1127
|
z-index: 20;
|
|
1139
1128
|
padding: 0px;
|
|
1140
1129
|
}
|
|
1141
|
-
.p-table.first-col-fixed th[data-v-
|
|
1130
|
+
.p-table.first-col-fixed th[data-v-58c21732]:first-child {
|
|
1142
1131
|
left: 0px;
|
|
1143
1132
|
z-index: 30;
|
|
1144
1133
|
}
|
|
1145
|
-
.p-table.first-col-fixed th:first-child .th-shadow[data-v-
|
|
1134
|
+
.p-table.first-col-fixed th:first-child .th-shadow[data-v-58c21732] {
|
|
1146
1135
|
box-shadow: -1px 1px 5px 4px rgba(0, 0, 0, 0.15);
|
|
1147
1136
|
clip-path: inset(0px -12px 0px 0px);
|
|
1148
1137
|
}
|
|
1149
|
-
.p-table.last-col-fixed th[data-v-
|
|
1138
|
+
.p-table.last-col-fixed th[data-v-58c21732]:last-child {
|
|
1150
1139
|
right: 0px;
|
|
1151
1140
|
z-index: 30;
|
|
1152
1141
|
}
|
|
1153
|
-
.p-table.last-col-fixed th:last-child .th-shadow[data-v-
|
|
1142
|
+
.p-table.last-col-fixed th:last-child .th-shadow[data-v-58c21732] {
|
|
1154
1143
|
box-shadow: -2px 1px 8px rgba(0, 0, 0, 0.15);
|
|
1155
1144
|
clip-path: inset(0px 0px 0px -12px);
|
|
1156
1145
|
}
|
|
1157
|
-
[data-v-
|
|
1146
|
+
[data-v-58c21732] .p-table tr:last-child td {
|
|
1158
1147
|
border-bottom-width: 0px;
|
|
1159
1148
|
}
|
|
1160
|
-
[data-v-
|
|
1149
|
+
[data-v-58c21732] .p-table tr:last-child td.td-col-fixed-border-b::after {
|
|
1161
1150
|
height: 0px;
|
|
1162
1151
|
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pequity/squirrel",
|
|
3
3
|
"description": "Squirrel component library",
|
|
4
|
-
"version": "8.
|
|
5
|
-
"packageManager": "pnpm@10.
|
|
4
|
+
"version": "8.5.1",
|
|
5
|
+
"packageManager": "pnpm@10.15.1",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"preinstall": "npx only-allow pnpm",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"lint": "eslint \"**/*.{vue,ts,js}\"",
|
|
14
14
|
"lint-fix": "eslint --fix \"**/*.{vue,ts,js}\"",
|
|
15
15
|
"test:unit": "vitest --project=unit",
|
|
16
|
+
"test:unit-nowatch": "vitest run --project=unit",
|
|
16
17
|
"test:unit-coverage": "vitest run --project=unit --coverage && make-coverage-badge",
|
|
17
18
|
"typecheck": "vue-tsc --noEmit",
|
|
18
19
|
"storybook": "storybook dev -p 6006",
|
|
@@ -49,57 +50,58 @@
|
|
|
49
50
|
"devDependencies": {
|
|
50
51
|
"@commitlint/cli": "^19.8.1",
|
|
51
52
|
"@commitlint/config-conventional": "^19.8.1",
|
|
52
|
-
"@pequity/eslint-config": "^2.0.
|
|
53
|
-
"@playwright/test": "^1.
|
|
53
|
+
"@pequity/eslint-config": "^2.0.3",
|
|
54
|
+
"@playwright/test": "^1.55.0",
|
|
54
55
|
"@semantic-release/changelog": "^6.0.3",
|
|
55
56
|
"@semantic-release/git": "^10.0.1",
|
|
56
|
-
"@storybook/addon-a11y": "^9.
|
|
57
|
-
"@storybook/addon-docs": "^9.
|
|
58
|
-
"@storybook/addon-links": "^9.
|
|
59
|
-
"@storybook/addon-vitest": "^9.
|
|
60
|
-
"@storybook/vue3-vite": "^9.
|
|
57
|
+
"@storybook/addon-a11y": "^9.1.4",
|
|
58
|
+
"@storybook/addon-docs": "^9.1.4",
|
|
59
|
+
"@storybook/addon-links": "^9.1.4",
|
|
60
|
+
"@storybook/addon-vitest": "^9.1.4",
|
|
61
|
+
"@storybook/vue3-vite": "^9.1.4",
|
|
61
62
|
"@tanstack/vue-virtual": "3.13.12",
|
|
62
63
|
"@types/jsdom": "^21.1.7",
|
|
63
64
|
"@types/lodash-es": "^4.17.12",
|
|
64
|
-
"@types/node": "^24.
|
|
65
|
+
"@types/node": "^24.3.0",
|
|
65
66
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
66
67
|
"@vitest/browser": "3.2.4",
|
|
67
68
|
"@vitest/coverage-v8": "^3.2.4",
|
|
68
|
-
"@vue/compiler-sfc": "3.5.
|
|
69
|
+
"@vue/compiler-sfc": "3.5.21",
|
|
69
70
|
"@vue/test-utils": "^2.4.6",
|
|
70
71
|
"@vuepic/vue-datepicker": "11.0.2",
|
|
71
72
|
"autoprefixer": "^10.4.21",
|
|
72
|
-
"eslint": "^9.
|
|
73
|
-
"eslint-plugin-storybook": "^9.
|
|
73
|
+
"eslint": "^9.34.0",
|
|
74
|
+
"eslint-plugin-storybook": "^9.1.4",
|
|
74
75
|
"floating-vue": "5.2.2",
|
|
75
76
|
"glob": "^11.0.3",
|
|
76
77
|
"husky": "^9.1.7",
|
|
77
78
|
"iconify-icon": "^3.0.0",
|
|
78
79
|
"jsdom": "^26.1.0",
|
|
79
|
-
"lint-staged": "^16.1.
|
|
80
|
+
"lint-staged": "^16.1.6",
|
|
80
81
|
"lodash-es": "4.17.21",
|
|
81
82
|
"make-coverage-badge": "^1.2.0",
|
|
82
|
-
"playwright": "^1.
|
|
83
|
+
"playwright": "^1.55.0",
|
|
83
84
|
"postcss": "^8.5.6",
|
|
84
85
|
"prettier": "^3.6.2",
|
|
85
86
|
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
86
87
|
"resolve-tspaths": "^0.8.23",
|
|
87
88
|
"rimraf": "^6.0.1",
|
|
88
|
-
"sass": "^1.
|
|
89
|
+
"sass": "^1.92.0",
|
|
89
90
|
"semantic-release": "^24.2.7",
|
|
90
|
-
"storybook": "^9.
|
|
91
|
+
"storybook": "^9.1.4",
|
|
91
92
|
"svgo": "^4.0.0",
|
|
92
93
|
"tailwindcss": "^3.4.17",
|
|
93
94
|
"typescript": "5.8.3",
|
|
94
|
-
"vite": "^7.
|
|
95
|
+
"vite": "^7.1.4",
|
|
95
96
|
"vitest": "^3.2.4",
|
|
96
|
-
"vue": "3.5.
|
|
97
|
+
"vue": "3.5.21",
|
|
97
98
|
"vue-currency-input": "3.2.1",
|
|
98
99
|
"vue-router": "4.5.1",
|
|
99
100
|
"vue-toastification": "2.0.0-rc.5",
|
|
100
|
-
"vue-tsc": "3.0.
|
|
101
|
+
"vue-tsc": "3.0.6"
|
|
101
102
|
},
|
|
102
103
|
"dependencies": {
|
|
103
|
-
"tailwind-
|
|
104
|
+
"tailwind-merge": "^3.3.1",
|
|
105
|
+
"tailwind-variants": "^3.1.0"
|
|
104
106
|
}
|
|
105
107
|
}
|
|
@@ -52,7 +52,6 @@ import {
|
|
|
52
52
|
import PTable from '@squirrel/components/p-table/p-table.vue';
|
|
53
53
|
import { usePTableColResize } from '@squirrel/components/p-table/usePTableColResize';
|
|
54
54
|
import { usePTableRowVirtualizer } from '@squirrel/components/p-table/usePTableRowVirtualizer';
|
|
55
|
-
import PFilterIcon from '@squirrel/components/p-table-header-cell/p-table-filter-icon.vue';
|
|
56
55
|
import PTableHeaderCell from '@squirrel/components/p-table-header-cell/p-table-header-cell.vue';
|
|
57
56
|
import PTableLoader from '@squirrel/components/p-table-loader/p-table-loader.vue';
|
|
58
57
|
import {
|
|
@@ -90,7 +89,6 @@ export {
|
|
|
90
89
|
PDropdown,
|
|
91
90
|
PDropdownSelect,
|
|
92
91
|
PFileUpload,
|
|
93
|
-
PFilterIcon,
|
|
94
92
|
PIcon,
|
|
95
93
|
PIconAlias,
|
|
96
94
|
PInfoIcon,
|
|
@@ -3,10 +3,10 @@ import { createWrapperFor } from '@tests/vitest.helpers';
|
|
|
3
3
|
|
|
4
4
|
describe('PAlert.vue', () => {
|
|
5
5
|
it.each([
|
|
6
|
-
['info', ['bg-info', 'text-on-info'], '
|
|
7
|
-
['warning', ['bg-warning', 'text-on-warning'], '
|
|
8
|
-
['error', ['bg-error', 'text-on-error'], '
|
|
9
|
-
['success', ['bg-success', 'text-on-success'], '
|
|
6
|
+
['info', ['bg-info', 'text-on-info'], 'material-symbols:info-outline'],
|
|
7
|
+
['warning', ['bg-warning', 'text-on-warning'], 'warning'],
|
|
8
|
+
['error', ['bg-error', 'text-on-error'], 'cancel-circle'],
|
|
9
|
+
['success', ['bg-success', 'text-on-success'], 'ok-circle'],
|
|
10
10
|
])('renders an alert of type %s', async (type, classes, iconName) => {
|
|
11
11
|
const wrapper = createWrapperFor(PAlert, { props: { type }, global: { stubs: { PIcon: true } } });
|
|
12
12
|
|
|
@@ -5,6 +5,13 @@ export default {
|
|
|
5
5
|
title: 'Components/PAlert',
|
|
6
6
|
component: PAlert,
|
|
7
7
|
tags: ['autodocs'],
|
|
8
|
+
render: (args) => ({
|
|
9
|
+
components: { PAlert },
|
|
10
|
+
setup() {
|
|
11
|
+
return { args };
|
|
12
|
+
},
|
|
13
|
+
template: `<PAlert v-bind="args">${args.default}</PAlert>`,
|
|
14
|
+
}),
|
|
8
15
|
argTypes: {
|
|
9
16
|
type: {
|
|
10
17
|
control: { type: 'select' },
|
|
@@ -22,16 +29,10 @@ export default {
|
|
|
22
29
|
};
|
|
23
30
|
|
|
24
31
|
export const Info = {
|
|
25
|
-
render: (args) => ({
|
|
26
|
-
components: { PAlert },
|
|
27
|
-
setup() {
|
|
28
|
-
return { args };
|
|
29
|
-
},
|
|
30
|
-
template: `<PAlert v-bind="args">${args.default}</PAlert>`,
|
|
31
|
-
}),
|
|
32
32
|
args: {
|
|
33
33
|
type: 'info',
|
|
34
|
-
default:
|
|
34
|
+
default:
|
|
35
|
+
'Your account has been updated with the latest security features.<br />Two-factor authentication is now enabled for enhanced protection.',
|
|
35
36
|
},
|
|
36
37
|
};
|
|
37
38
|
|
|
@@ -39,28 +40,33 @@ Info.play = async ({ canvasElement }) => {
|
|
|
39
40
|
const canvas = within(canvasElement);
|
|
40
41
|
const alertDiv = await canvas.getByRole('alert');
|
|
41
42
|
|
|
42
|
-
await expect(alertDiv.innerText).toBe(
|
|
43
|
-
|
|
43
|
+
await expect(alertDiv.innerText).toBe(
|
|
44
|
+
'Your account has been updated with the latest security features.\nTwo-factor authentication is now enabled for enhanced protection.'
|
|
45
|
+
);
|
|
46
|
+
await expect(alertDiv).toHaveClass('p-4 rounded-lg text-xs font-semibold bg-info text-on-info');
|
|
44
47
|
await expect(alertDiv).toHaveStyle('background-color: #e4edfa');
|
|
45
48
|
};
|
|
46
49
|
|
|
47
50
|
export const Success = {
|
|
48
51
|
args: {
|
|
49
|
-
...Info.args,
|
|
50
52
|
type: 'success',
|
|
53
|
+
default:
|
|
54
|
+
'Your profile has been successfully updated and changes are now live.<br />Other team members can now see your updated information.',
|
|
51
55
|
},
|
|
52
56
|
};
|
|
53
57
|
|
|
54
58
|
export const Warning = {
|
|
55
59
|
args: {
|
|
56
|
-
...Info.args,
|
|
57
60
|
type: 'warning',
|
|
61
|
+
default:
|
|
62
|
+
'You have unsaved changes that will be lost if you navigate away from this page.<br />Make sure to save your work before continuing.',
|
|
58
63
|
},
|
|
59
64
|
};
|
|
60
65
|
|
|
61
66
|
export const Error = {
|
|
62
67
|
args: {
|
|
63
|
-
...Info.args,
|
|
64
68
|
type: 'error',
|
|
69
|
+
default:
|
|
70
|
+
'Failed to save changes. Please check your internet connection and try again.<br />If the problem persists, contact support at help@pequity.com.',
|
|
65
71
|
},
|
|
66
72
|
};
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div :class="['rounded p-4 text-xs font-semibold', ALERT_TYPES[props.type].classes]" role="alert">
|
|
3
|
-
<div class="flex">
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
</slot>
|
|
8
|
-
</div>
|
|
2
|
+
<div :class="['rounded-lg p-4 text-xs font-semibold', ALERT_TYPES[props.type].classes]" role="alert">
|
|
3
|
+
<div class="flex items-center gap-4">
|
|
4
|
+
<slot name="icon">
|
|
5
|
+
<PIcon :icon="ALERT_TYPES[props.type].icon" width="20" />
|
|
6
|
+
</slot>
|
|
9
7
|
<div>
|
|
10
8
|
<slot></slot>
|
|
11
9
|
</div>
|
|
@@ -18,10 +16,10 @@ import PIcon from '@squirrel/components/p-icon/p-icon.vue';
|
|
|
18
16
|
import { type PropType } from 'vue';
|
|
19
17
|
|
|
20
18
|
const ALERT_TYPES = {
|
|
21
|
-
info: { classes: `bg-info text-on-info`, icon: '
|
|
22
|
-
warning: { classes: `bg-warning text-on-warning`, icon: '
|
|
23
|
-
error: { classes: `bg-error text-on-error`, icon: '
|
|
24
|
-
success: { classes: `bg-success text-on-success`, icon: '
|
|
19
|
+
info: { classes: `bg-info text-on-info`, icon: 'material-symbols:info-outline' },
|
|
20
|
+
warning: { classes: `bg-warning text-on-warning`, icon: 'warning' },
|
|
21
|
+
error: { classes: `bg-error text-on-error`, icon: 'cancel-circle' },
|
|
22
|
+
success: { classes: `bg-success text-on-success`, icon: 'ok-circle' },
|
|
25
23
|
};
|
|
26
24
|
</script>
|
|
27
25
|
|