@pequity/squirrel 10.0.0 → 10.0.2
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/p-action-bar.js +3 -3
- package/dist/cjs/chunks/p-btn.js +1 -1
- package/dist/cjs/chunks/p-icon.js +1 -1
- package/dist/cjs/chunks/p-info-icon.js +2 -2
- package/dist/cjs/chunks/p-inline-date-picker.js +6 -6
- package/dist/cjs/chunks/p-input-number.js +1 -1
- package/dist/cjs/chunks/p-link.js +2 -2
- package/dist/cjs/chunks/p-progress-bar.js +2 -2
- package/dist/cjs/chunks/p-select-btn.js +11 -11
- package/dist/cjs/chunks/p-steps.js +4 -4
- package/dist/cjs/chunks/p-table-header-cell.js +9 -9
- package/dist/cjs/chunks/p-tabs-pills.js +8 -8
- package/dist/cjs/index.js +13 -13
- package/dist/cjs/p-drawer.js +1 -1
- package/dist/es/chunks/p-action-bar.js +3 -3
- package/dist/es/chunks/p-btn.js +1 -1
- package/dist/es/chunks/p-icon.js +1 -1
- package/dist/es/chunks/p-info-icon.js +2 -2
- package/dist/es/chunks/p-inline-date-picker.js +6 -6
- package/dist/es/chunks/p-input-number.js +1 -1
- package/dist/es/chunks/p-link.js +2 -2
- package/dist/es/chunks/p-progress-bar.js +2 -2
- package/dist/es/chunks/p-select-btn.js +11 -11
- package/dist/es/chunks/p-steps.js +4 -4
- package/dist/es/chunks/p-table-header-cell.js +9 -9
- package/dist/es/chunks/p-tabs-pills.js +8 -8
- package/dist/es/index.js +13 -13
- package/dist/es/p-drawer.js +1 -1
- package/dist/squirrel/components/p-action-bar/p-action-bar.vue.d.ts +2 -1
- package/dist/squirrel/components/p-alert/p-alert.vue.d.ts +2 -1
- package/dist/squirrel/components/p-avatar/p-avatar.vue.d.ts +2 -1
- package/dist/squirrel/components/p-btn/p-btn.vue.d.ts +5 -4
- package/dist/squirrel/components/p-card/p-card.vue.d.ts +3 -2
- package/dist/squirrel/components/p-checkbox/p-checkbox.vue.d.ts +3 -2
- package/dist/squirrel/components/p-chips/p-chips.vue.d.ts +10 -9
- package/dist/squirrel/components/p-close-btn/p-close-btn.vue.d.ts +2 -1
- package/dist/squirrel/components/p-date-picker/p-date-picker.vue.d.ts +4 -2
- package/dist/squirrel/components/p-drawer/p-drawer.vue.d.ts +9 -8
- package/dist/squirrel/components/p-dropdown/p-dropdown.vue.d.ts +9 -8
- package/dist/squirrel/components/p-dropdown-select/p-dropdown-select.vue.d.ts +3 -2
- package/dist/squirrel/components/p-file-upload/p-file-upload.vue.d.ts +2 -1
- package/dist/squirrel/components/p-icon/p-icon.vue.d.ts +2 -1
- package/dist/squirrel/components/p-info-icon/p-info-icon.vue.d.ts +3 -2
- package/dist/squirrel/components/p-inline-date-picker/p-inline-date-picker.vue.d.ts +5 -3
- package/dist/squirrel/components/p-input/p-input.vue.d.ts +2 -1
- package/dist/squirrel/components/p-input-number/p-input-number.vue.d.ts +3 -2
- package/dist/squirrel/components/p-input-percent/p-input-percent.vue.d.ts +2 -1
- package/dist/squirrel/components/p-input-search/p-input-search.vue.d.ts +2 -1
- package/dist/squirrel/components/p-link/p-link.vue.d.ts +3 -2
- package/dist/squirrel/components/p-loading/p-loading.vue.d.ts +2 -1
- package/dist/squirrel/components/p-modal/p-modal.vue.d.ts +3 -2
- package/dist/squirrel/components/p-pagination/p-pagination.vue.d.ts +2 -1
- package/dist/squirrel/components/p-pagination-info/p-pagination-info.vue.d.ts +3 -2
- package/dist/squirrel/components/p-progress-bar/p-progress-bar.vue.d.ts +2 -1
- package/dist/squirrel/components/p-ring-loader/p-ring-loader.vue.d.ts +2 -1
- package/dist/squirrel/components/p-select/p-select.vue.d.ts +3 -2
- package/dist/squirrel/components/p-select-btn/p-select-btn.vue.d.ts +3 -2
- package/dist/squirrel/components/p-select-list/p-select-list.vue.d.ts +3 -2
- package/dist/squirrel/components/p-select-pill/p-select-pill.vue.d.ts +9 -8
- package/dist/squirrel/components/p-skeleton-loader/p-skeleton-loader.vue.d.ts +10 -9
- package/dist/squirrel/components/p-steps/p-steps.vue.d.ts +2 -1
- package/dist/squirrel/components/p-table/p-table.vue.d.ts +10 -9
- package/dist/squirrel/components/p-table-header-cell/p-table-header-cell.vue.d.ts +3 -2
- package/dist/squirrel/components/p-table-loader/p-table-loader.vue.d.ts +2 -1
- package/dist/squirrel/components/p-table-sort/p-table-sort.vue.d.ts +2 -1
- package/dist/squirrel/components/p-table-td/p-table-td.vue.d.ts +3 -2
- package/dist/squirrel/components/p-tabs/p-tabs.vue.d.ts +2 -1
- package/dist/squirrel/components/p-tabs-pills/p-tabs-pills.vue.d.ts +2 -1
- package/dist/squirrel/components/p-textarea/p-textarea.vue.d.ts +3 -2
- package/dist/squirrel/components/p-toggle/p-toggle.vue.d.ts +2 -1
- package/dist/squirrel.css +1 -1
- package/package.json +24 -24
- package/squirrel/components/p-action-bar/p-action-bar.spec.ts +4 -4
- package/squirrel/components/p-btn/p-btn.spec.js +3 -0
- package/squirrel/components/p-btn/p-btn.vue +1 -1
- package/squirrel/components/p-dropdown-select/p-dropdown-select.spec.js +1 -1
- package/squirrel/components/p-input-number/p-input-number.spec.js +1 -1
- package/squirrel/components/p-input-number/p-input-number.vue +1 -3
- package/squirrel/components/p-modal/p-modal-features.spec.js +20 -16
- package/squirrel/components/p-select-btn/p-select-btn.spec.js +2 -2
- package/squirrel/components/p-select-btn/p-select-btn.vue +1 -1
- package/squirrel/components/p-select-list/p-select-list.spec.js +1 -1
- package/squirrel/components/p-table-sort/p-table-sort.spec.js +40 -21
- package/squirrel/utils/listKeyboardNavigation.spec.js +3 -1
- package/squirrel/utils/sanitization.spec.js +1 -1
|
@@ -12,8 +12,9 @@ type Props = {
|
|
|
12
12
|
*/
|
|
13
13
|
color?: string;
|
|
14
14
|
};
|
|
15
|
-
declare const
|
|
15
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
16
16
|
size: number;
|
|
17
17
|
color: string;
|
|
18
18
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
19
20
|
export default _default;
|
|
@@ -11,7 +11,7 @@ type __VLS_Slots = {
|
|
|
11
11
|
labelClasses: string;
|
|
12
12
|
}) => unknown;
|
|
13
13
|
};
|
|
14
|
-
declare const
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
15
15
|
/**
|
|
16
16
|
* The current selected value (v-model).
|
|
17
17
|
* Supports two-way binding for form inputs.
|
|
@@ -159,7 +159,8 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
159
159
|
errorMsg: string;
|
|
160
160
|
itemValue: string | number | boolean | null;
|
|
161
161
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
162
|
-
declare const
|
|
162
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
163
|
+
declare const _default: typeof __VLS_export;
|
|
163
164
|
export default _default;
|
|
164
165
|
type __VLS_WithSlots<T, S> = T & {
|
|
165
166
|
new (): {
|
|
@@ -77,7 +77,7 @@ type __VLS_Slots = {
|
|
|
77
77
|
isSelected: boolean;
|
|
78
78
|
}) => unknown;
|
|
79
79
|
};
|
|
80
|
-
declare const
|
|
80
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
81
81
|
"update:modelValue": (value: string | number | boolean | BtnGroupItem[] | null) => any;
|
|
82
82
|
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
83
83
|
"onUpdate:modelValue"?: ((value: string | number | boolean | BtnGroupItem[] | null) => any) | undefined;
|
|
@@ -94,7 +94,8 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {},
|
|
|
94
94
|
grow: boolean;
|
|
95
95
|
noPadding: boolean;
|
|
96
96
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
97
|
-
declare const
|
|
97
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
98
|
+
declare const _default: typeof __VLS_export;
|
|
98
99
|
export default _default;
|
|
99
100
|
type __VLS_WithSlots<T, S> = T & {
|
|
100
101
|
new (): {
|
|
@@ -11,7 +11,7 @@ type __VLS_Slots = {
|
|
|
11
11
|
itemTextSplit: string[];
|
|
12
12
|
}): unknown;
|
|
13
13
|
};
|
|
14
|
-
declare const
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
15
15
|
modelValue: {
|
|
16
16
|
type: PropType<ModelValue>;
|
|
17
17
|
default: null;
|
|
@@ -283,7 +283,8 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
283
283
|
closePopperOnSelect: boolean;
|
|
284
284
|
focusSearchOnMount: boolean;
|
|
285
285
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
286
|
-
declare const
|
|
286
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
287
|
+
declare const _default: typeof __VLS_export;
|
|
287
288
|
export default _default;
|
|
288
289
|
type __VLS_WithSlots<T, S> = T & {
|
|
289
290
|
new (): {
|
|
@@ -18,14 +18,7 @@ declare const SIZES: {
|
|
|
18
18
|
lg: string;
|
|
19
19
|
};
|
|
20
20
|
type Size = keyof typeof SIZES;
|
|
21
|
-
|
|
22
|
-
* A select pill component that displays options as connected buttons with a sliding indicator.
|
|
23
|
-
* Provides a pill-style selection interface with smooth animations and visual feedback.
|
|
24
|
-
* The active option is highlighted with a sliding background indicator.
|
|
25
|
-
*
|
|
26
|
-
* @displayName PSelectPill
|
|
27
|
-
*/
|
|
28
|
-
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
21
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
29
22
|
/**
|
|
30
23
|
* The currently selected value (v-model).
|
|
31
24
|
* Should match one of the item values in the items array.
|
|
@@ -153,4 +146,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
153
146
|
itemValue: string | number;
|
|
154
147
|
itemSubtext: string;
|
|
155
148
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
149
|
+
/**
|
|
150
|
+
* A select pill component that displays options as connected buttons with a sliding indicator.
|
|
151
|
+
* Provides a pill-style selection interface with smooth animations and visual feedback.
|
|
152
|
+
* The active option is highlighted with a sliding background indicator.
|
|
153
|
+
*
|
|
154
|
+
* @displayName PSelectPill
|
|
155
|
+
*/
|
|
156
|
+
declare const _default: typeof __VLS_export;
|
|
156
157
|
export default _default;
|
|
@@ -4,15 +4,7 @@ declare const LOADER_TYPES: {
|
|
|
4
4
|
readonly circle: "circle";
|
|
5
5
|
};
|
|
6
6
|
type LoaderType = (typeof LOADER_TYPES)[keyof typeof LOADER_TYPES];
|
|
7
|
-
|
|
8
|
-
* A skeleton loader component that displays animated loading placeholders.
|
|
9
|
-
* Provides customizable shapes, colors, and shimmer effects to indicate
|
|
10
|
-
* content loading states. Supports both rectangle and circle shapes with
|
|
11
|
-
* configurable background and shimmer colors.
|
|
12
|
-
*
|
|
13
|
-
* @displayName PSkeletonLoader
|
|
14
|
-
*/
|
|
15
|
-
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
16
8
|
/**
|
|
17
9
|
* The shape type of the skeleton loader.
|
|
18
10
|
* Determines the border radius and overall appearance.
|
|
@@ -96,4 +88,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
96
88
|
cssClass: string;
|
|
97
89
|
shimmerColor: string;
|
|
98
90
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
91
|
+
/**
|
|
92
|
+
* A skeleton loader component that displays animated loading placeholders.
|
|
93
|
+
* Provides customizable shapes, colors, and shimmer effects to indicate
|
|
94
|
+
* content loading states. Supports both rectangle and circle shapes with
|
|
95
|
+
* configurable background and shimmer colors.
|
|
96
|
+
*
|
|
97
|
+
* @displayName PSkeletonLoader
|
|
98
|
+
*/
|
|
99
|
+
declare const _default: typeof __VLS_export;
|
|
99
100
|
export default _default;
|
|
@@ -16,7 +16,7 @@ type Props = {
|
|
|
16
16
|
*/
|
|
17
17
|
clickable?: boolean;
|
|
18
18
|
};
|
|
19
|
-
declare const
|
|
19
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
20
20
|
"click:step": (step: StepItem, index: number) => any;
|
|
21
21
|
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
22
22
|
"onClick:step"?: ((step: StepItem, index: number) => any) | undefined;
|
|
@@ -25,4 +25,5 @@ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
25
25
|
steps: readonly StepItem[];
|
|
26
26
|
clickable: boolean;
|
|
27
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const _default: typeof __VLS_export;
|
|
28
29
|
export default _default;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { type TableCol } from './p-table.types';
|
|
2
|
-
declare const
|
|
3
|
-
props: __VLS_PrettifyLocal<
|
|
4
|
-
readonly onScroll?: ((val: Event) => any) | undefined;
|
|
5
|
-
readonly "onCol-resize"?: ((colIndex: number, width: number) => any) | undefined;
|
|
6
|
-
readonly "onClick-filter-icon"?: ((val: Event, col: any) => any) | undefined;
|
|
7
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onScroll" | "onClick-filter-icon" | "onCol-resize"> & {
|
|
2
|
+
declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: __VLS_PrettifyLocal<{
|
|
8
4
|
/**
|
|
9
5
|
* Array of column definitions for the table.
|
|
10
6
|
* Each column defines its display properties, filtering, and styling.
|
|
@@ -48,10 +44,14 @@ declare const _default: <T extends Record<string, unknown>>(__VLS_props: NonNull
|
|
|
48
44
|
* Each object should have properties matching the column names.
|
|
49
45
|
*/
|
|
50
46
|
data?: T[];
|
|
51
|
-
} & {
|
|
52
|
-
|
|
47
|
+
} & {
|
|
48
|
+
onScroll?: ((val: Event) => any) | undefined;
|
|
49
|
+
"onCol-resize"?: ((colIndex: number, width: number) => any) | undefined;
|
|
50
|
+
"onClick-filter-icon"?: ((val: Event, col: any) => any) | undefined;
|
|
51
|
+
}> & import("vue").PublicProps;
|
|
52
|
+
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
53
53
|
tbodyElement: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
|
|
54
|
-
}>)
|
|
54
|
+
}>) => void;
|
|
55
55
|
attrs: any;
|
|
56
56
|
slots: {
|
|
57
57
|
[x: `prepend-header-cell-${string}`]: ((props: {
|
|
@@ -94,6 +94,7 @@ declare const _default: <T extends Record<string, unknown>>(__VLS_props: NonNull
|
|
|
94
94
|
}>) => import("vue").VNode & {
|
|
95
95
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
96
96
|
};
|
|
97
|
+
declare const _default: typeof __VLS_export;
|
|
97
98
|
export default _default;
|
|
98
99
|
type __VLS_PrettifyLocal<T> = {
|
|
99
100
|
[K in keyof T as K]: T[K];
|
|
@@ -10,7 +10,7 @@ declare var __VLS_5: {};
|
|
|
10
10
|
type __VLS_Slots = {} & {
|
|
11
11
|
icon?: (props: typeof __VLS_5) => any;
|
|
12
12
|
};
|
|
13
|
-
declare const
|
|
13
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
14
|
"click-filter-icon": (event: Event, filterActive: boolean) => any;
|
|
15
15
|
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
16
16
|
"onClick-filter-icon"?: ((event: Event, filterActive: boolean) => any) | undefined;
|
|
@@ -22,7 +22,8 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {},
|
|
|
22
22
|
showFilterIcon: boolean;
|
|
23
23
|
textColor: string;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
-
declare const
|
|
25
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
26
|
+
declare const _default: typeof __VLS_export;
|
|
26
27
|
export default _default;
|
|
27
28
|
type __VLS_WithSlots<T, S> = T & {
|
|
28
29
|
new (): {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
2
|
/**
|
|
3
3
|
* The number of rows to display in the skeleton table.
|
|
4
4
|
* Controls the vertical size of the loading placeholder.
|
|
@@ -87,4 +87,5 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
87
87
|
tdSkeletonClasses: string;
|
|
88
88
|
withSubheader: boolean;
|
|
89
89
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
90
|
+
declare const _default: typeof __VLS_export;
|
|
90
91
|
export default _default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type SortingType } from './p-table-sort.config';
|
|
2
2
|
import { type PropType } from 'vue';
|
|
3
|
-
declare const
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
4
|
/**
|
|
5
5
|
* The current sorting state (v-model).
|
|
6
6
|
* Valid values: 'asc', 'desc', 'no-sorting'
|
|
@@ -29,4 +29,5 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
29
29
|
}>, {
|
|
30
30
|
modelValue: SortingType;
|
|
31
31
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
32
|
+
declare const _default: typeof __VLS_export;
|
|
32
33
|
export default _default;
|
|
@@ -19,11 +19,12 @@ declare var __VLS_1: {};
|
|
|
19
19
|
type __VLS_Slots = {} & {
|
|
20
20
|
default?: (props: typeof __VLS_1) => any;
|
|
21
21
|
};
|
|
22
|
-
declare const
|
|
22
|
+
declare const __VLS_base: 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>;
|
|
26
|
-
declare const
|
|
26
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
27
|
+
declare const _default: typeof __VLS_export;
|
|
27
28
|
export default _default;
|
|
28
29
|
type __VLS_WithSlots<T, S> = T & {
|
|
29
30
|
new (): {
|
|
@@ -13,7 +13,7 @@ type Tab = {
|
|
|
13
13
|
/** Optional router link destination */
|
|
14
14
|
to?: RouteLocationRaw;
|
|
15
15
|
};
|
|
16
|
-
declare const
|
|
16
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
17
17
|
/**
|
|
18
18
|
* Array of tab objects to display.
|
|
19
19
|
* Each tab should have a name, title, and optional icon and route.
|
|
@@ -70,4 +70,5 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
70
70
|
}>, {
|
|
71
71
|
tabsLeftPadding: number;
|
|
72
72
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
73
|
+
declare const _default: typeof __VLS_export;
|
|
73
74
|
export default _default;
|
|
@@ -30,7 +30,7 @@ type Props = {
|
|
|
30
30
|
*/
|
|
31
31
|
itemValue?: string;
|
|
32
32
|
};
|
|
33
|
-
declare const
|
|
33
|
+
declare const __VLS_export: 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;
|
|
@@ -40,4 +40,5 @@ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
40
40
|
itemText: string;
|
|
41
41
|
itemValue: string;
|
|
42
42
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
43
|
+
declare const _default: typeof __VLS_export;
|
|
43
44
|
export default _default;
|
|
@@ -11,7 +11,7 @@ type __VLS_Slots = {
|
|
|
11
11
|
labelClasses: string;
|
|
12
12
|
}) => unknown;
|
|
13
13
|
};
|
|
14
|
-
declare const
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
15
15
|
/**
|
|
16
16
|
* The current value of the textarea (v-model).
|
|
17
17
|
* Supports two-way binding for form inputs.
|
|
@@ -106,7 +106,8 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
|
|
|
106
106
|
modelValue: string | number | null;
|
|
107
107
|
errorMsg: string;
|
|
108
108
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
109
|
-
declare const
|
|
109
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
110
|
+
declare const _default: typeof __VLS_export;
|
|
110
111
|
export default _default;
|
|
111
112
|
type __VLS_WithSlots<T, S> = T & {
|
|
112
113
|
new (): {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Size } from '../p-btn/p-btn.types';
|
|
2
2
|
import { type PropType } from 'vue';
|
|
3
|
-
declare const
|
|
3
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
4
|
/**
|
|
5
5
|
* The current toggle state (v-model).
|
|
6
6
|
* Supports two-way binding for form inputs.
|
|
@@ -107,6 +107,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<import("vu
|
|
|
107
107
|
labelClasses: string;
|
|
108
108
|
}) => unknown;
|
|
109
109
|
}>;
|
|
110
|
+
declare const _default: typeof __VLS_export;
|
|
110
111
|
export default _default;
|
|
111
112
|
type __VLS_WithSlots<T, S> = T & {
|
|
112
113
|
new (): {
|
package/dist/squirrel.css
CHANGED
|
@@ -164,7 +164,7 @@ input[type='checkbox'][data-v-c0f571ea]:checked {
|
|
|
164
164
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
165
165
|
outline: 2px solid transparent;
|
|
166
166
|
outline-offset: 2px;
|
|
167
|
-
max-width: var(--
|
|
167
|
+
max-width: var(--v0ae27020);
|
|
168
168
|
width: 100%;
|
|
169
169
|
}
|
|
170
170
|
.drawer.drawer-left[data-v-b08a9ced] {
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pequity/squirrel",
|
|
3
3
|
"description": "Squirrel component library",
|
|
4
|
-
"version": "10.0.
|
|
5
|
-
"packageManager": "pnpm@10.
|
|
4
|
+
"version": "10.0.2",
|
|
5
|
+
"packageManager": "pnpm@10.18.1",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"preinstall": "npx only-allow pnpm",
|
|
@@ -49,57 +49,57 @@
|
|
|
49
49
|
"vue-toastification": "^2.0.0-rc.5"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@commitlint/cli": "^
|
|
53
|
-
"@commitlint/config-conventional": "^
|
|
54
|
-
"@pequity/eslint-config": "^2.0.
|
|
55
|
-
"@playwright/test": "^1.
|
|
52
|
+
"@commitlint/cli": "^20.1.0",
|
|
53
|
+
"@commitlint/config-conventional": "^20.0.0",
|
|
54
|
+
"@pequity/eslint-config": "^2.0.5",
|
|
55
|
+
"@playwright/test": "^1.56.0",
|
|
56
56
|
"@semantic-release/changelog": "^6.0.3",
|
|
57
57
|
"@semantic-release/git": "^10.0.1",
|
|
58
|
-
"@storybook/addon-a11y": "^9.1.
|
|
59
|
-
"@storybook/addon-docs": "^9.1.
|
|
60
|
-
"@storybook/addon-links": "^9.1.
|
|
61
|
-
"@storybook/addon-vitest": "^9.1.
|
|
62
|
-
"@storybook/vue3-vite": "^9.1.
|
|
58
|
+
"@storybook/addon-a11y": "^9.1.10",
|
|
59
|
+
"@storybook/addon-docs": "^9.1.10",
|
|
60
|
+
"@storybook/addon-links": "^9.1.10",
|
|
61
|
+
"@storybook/addon-vitest": "^9.1.10",
|
|
62
|
+
"@storybook/vue3-vite": "^9.1.10",
|
|
63
63
|
"@tanstack/vue-virtual": "3.13.12",
|
|
64
|
-
"@types/jsdom": "^
|
|
64
|
+
"@types/jsdom": "^27.0.0",
|
|
65
65
|
"@types/lodash-es": "^4.17.12",
|
|
66
|
-
"@types/node": "^24.
|
|
66
|
+
"@types/node": "^24.7.0",
|
|
67
67
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
68
68
|
"@vitest/browser": "3.2.4",
|
|
69
69
|
"@vitest/coverage-v8": "^3.2.4",
|
|
70
|
-
"@vue/compiler-sfc": "3.5.
|
|
70
|
+
"@vue/compiler-sfc": "3.5.22",
|
|
71
71
|
"@vue/test-utils": "^2.4.6",
|
|
72
72
|
"@vuepic/vue-datepicker": "11.0.2",
|
|
73
73
|
"autoprefixer": "^10.4.21",
|
|
74
|
-
"eslint": "^9.
|
|
75
|
-
"eslint-plugin-storybook": "^9.1.
|
|
74
|
+
"eslint": "^9.37.0",
|
|
75
|
+
"eslint-plugin-storybook": "^9.1.10",
|
|
76
76
|
"floating-vue": "5.2.2",
|
|
77
77
|
"glob": "^11.0.3",
|
|
78
78
|
"husky": "^9.1.7",
|
|
79
79
|
"iconify-icon": "^3.0.1",
|
|
80
80
|
"jsdom": "^27.0.0",
|
|
81
|
-
"lint-staged": "^16.2.
|
|
81
|
+
"lint-staged": "^16.2.3",
|
|
82
82
|
"lodash-es": "4.17.21",
|
|
83
83
|
"make-coverage-badge": "^1.2.0",
|
|
84
|
-
"playwright": "^1.
|
|
84
|
+
"playwright": "^1.56.0",
|
|
85
85
|
"postcss": "^8.5.6",
|
|
86
86
|
"prettier": "^3.6.2",
|
|
87
87
|
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
88
88
|
"resolve-tspaths": "^0.8.23",
|
|
89
89
|
"rimraf": "^6.0.1",
|
|
90
|
-
"sass": "^1.93.
|
|
90
|
+
"sass": "^1.93.2",
|
|
91
91
|
"semantic-release": "^24.2.9",
|
|
92
|
-
"storybook": "^9.1.
|
|
92
|
+
"storybook": "^9.1.10",
|
|
93
93
|
"svgo": "^4.0.0",
|
|
94
94
|
"tailwindcss": "^3.4.17",
|
|
95
|
-
"typescript": "5.9.
|
|
96
|
-
"vite": "^7.1.
|
|
95
|
+
"typescript": "5.9.3",
|
|
96
|
+
"vite": "^7.1.9",
|
|
97
97
|
"vitest": "^3.2.4",
|
|
98
|
-
"vue": "3.5.
|
|
98
|
+
"vue": "3.5.22",
|
|
99
99
|
"vue-currency-input": "3.2.1",
|
|
100
100
|
"vue-router": "4.5.1",
|
|
101
101
|
"vue-toastification": "2.0.0-rc.5",
|
|
102
|
-
"vue-tsc": "3.
|
|
102
|
+
"vue-tsc": "3.1.1"
|
|
103
103
|
},
|
|
104
104
|
"dependencies": {
|
|
105
105
|
"tailwind-merge": "^3.3.1",
|
|
@@ -61,7 +61,7 @@ describe('PActionBar.vue', () => {
|
|
|
61
61
|
|
|
62
62
|
await wrapper.setProps({ show: val });
|
|
63
63
|
|
|
64
|
-
const mainDiv = wrapper.find('.teleport-stub
|
|
64
|
+
const mainDiv = wrapper.find('.teleport-stub').find('.fixed.bottom-6');
|
|
65
65
|
|
|
66
66
|
expect(mainDiv.exists()).toBe(val);
|
|
67
67
|
});
|
|
@@ -78,7 +78,7 @@ describe('PActionBar.vue', () => {
|
|
|
78
78
|
},
|
|
79
79
|
});
|
|
80
80
|
|
|
81
|
-
const mainDiv = wrapper.find('.teleport-stub
|
|
81
|
+
const mainDiv = wrapper.find('.teleport-stub').find('.fixed.bottom-6');
|
|
82
82
|
expect(mainDiv.exists()).toBe(true);
|
|
83
83
|
|
|
84
84
|
expect(mainDiv.classes()).toEqual(['fixed', 'bottom-6', 'left-1/2', 'z-[100]', '-translate-x-2/4']);
|
|
@@ -131,7 +131,7 @@ describe('PActionBar.vue', () => {
|
|
|
131
131
|
},
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
-
const mainDiv = wrapper.find('.teleport-stub
|
|
134
|
+
const mainDiv = wrapper.find('.teleport-stub').find('.fixed.bottom-6');
|
|
135
135
|
|
|
136
136
|
mainDiv.find('.p-dropdown-stub > button').trigger('click');
|
|
137
137
|
|
|
@@ -161,7 +161,7 @@ describe('PActionBar.vue', () => {
|
|
|
161
161
|
},
|
|
162
162
|
});
|
|
163
163
|
|
|
164
|
-
const actionBar = wrapper.find('.teleport-stub
|
|
164
|
+
const actionBar = wrapper.find('.teleport-stub').find('div');
|
|
165
165
|
|
|
166
166
|
expect(actionBar.attributes('role')).toBe('alertdialog');
|
|
167
167
|
expect(actionBar.attributes('data-testid')).toBe('TestId');
|
|
@@ -116,6 +116,7 @@ describe('PBtn.vue', () => {
|
|
|
116
116
|
'items-center',
|
|
117
117
|
'justify-center',
|
|
118
118
|
'has-[.slot-wrapper:empty]:gap-0',
|
|
119
|
+
'w-full',
|
|
119
120
|
'px-3',
|
|
120
121
|
'has-[.slot-wrapper:empty]:px-1.5',
|
|
121
122
|
'py-1.5',
|
|
@@ -129,6 +130,7 @@ describe('PBtn.vue', () => {
|
|
|
129
130
|
'items-center',
|
|
130
131
|
'justify-center',
|
|
131
132
|
'has-[.slot-wrapper:empty]:gap-0',
|
|
133
|
+
'w-full',
|
|
132
134
|
'px-6',
|
|
133
135
|
'has-[.slot-wrapper:empty]:px-2.5',
|
|
134
136
|
'has-[.slot-wrapper:empty]:py-2.5',
|
|
@@ -143,6 +145,7 @@ describe('PBtn.vue', () => {
|
|
|
143
145
|
'items-center',
|
|
144
146
|
'justify-center',
|
|
145
147
|
'has-[.slot-wrapper:empty]:gap-0',
|
|
148
|
+
'w-full',
|
|
146
149
|
'px-6',
|
|
147
150
|
'has-[.slot-wrapper:empty]:px-3',
|
|
148
151
|
'py-3',
|
|
@@ -33,7 +33,7 @@ const btnClasses = {
|
|
|
33
33
|
slots: {
|
|
34
34
|
button:
|
|
35
35
|
'relative inline-flex whitespace-nowrap 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',
|
|
36
|
-
content: 'flex items-center justify-center has-[.slot-wrapper:empty]:gap-0',
|
|
36
|
+
content: 'flex items-center justify-center has-[.slot-wrapper:empty]:gap-0 w-full',
|
|
37
37
|
loader: 'absolute bottom-0 left-0 right-0 top-0 flex items-center justify-center font-medium',
|
|
38
38
|
icon: 'shrink-0',
|
|
39
39
|
},
|
|
@@ -560,7 +560,7 @@ describe('PDropdownSelect.vue', () => {
|
|
|
560
560
|
await item1.trigger('click');
|
|
561
561
|
|
|
562
562
|
expect(wrapper.vm.$data.selected).toEqual([items[3]]);
|
|
563
|
-
expect(console.warn).
|
|
563
|
+
expect(console.warn).toHaveBeenCalledExactlyOnceWith(
|
|
564
564
|
`[p-select-list] Some values in the modelValue are not in the items list.`
|
|
565
565
|
);
|
|
566
566
|
|
|
@@ -148,7 +148,7 @@ describe('PInputNumber.vue', () => {
|
|
|
148
148
|
},
|
|
149
149
|
});
|
|
150
150
|
|
|
151
|
-
const prefixDiv = wrapper.find('div
|
|
151
|
+
const prefixDiv = wrapper.find('div.relative').find('.left-3');
|
|
152
152
|
expect(prefixDiv.exists()).toBe(true);
|
|
153
153
|
expect(prefixDiv.text()).toBe('$');
|
|
154
154
|
});
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
<div v-if="!!$slots.prefix || prefixString">
|
|
13
13
|
<!-- Slot for custom prefix content - overrides the prefixString prop -->
|
|
14
14
|
<slot name="prefix">
|
|
15
|
-
<div
|
|
16
|
-
:class="[{ 'absolute left-3 flex items-center': prefixString }, prefixString ? prefixClasses[size] : '']"
|
|
17
|
-
>
|
|
15
|
+
<div :class="[{ 'absolute flex items-center': prefixString }, prefixString ? prefixClasses[size] : '']">
|
|
18
16
|
{{ prefixString }}
|
|
19
17
|
</div>
|
|
20
18
|
</slot>
|
|
@@ -113,7 +113,7 @@ describe('Modal features', () => {
|
|
|
113
113
|
|
|
114
114
|
await sleep(100);
|
|
115
115
|
|
|
116
|
-
const textInput = wrapper.getComponent('.modal-1').find('.
|
|
116
|
+
const textInput = wrapper.getComponent('.modal-1').find('.text-input');
|
|
117
117
|
|
|
118
118
|
expect(document.activeElement).toEqual(textInput.element);
|
|
119
119
|
wrapper.unmount();
|
|
@@ -134,11 +134,11 @@ describe('Modal features', () => {
|
|
|
134
134
|
|
|
135
135
|
const modal2 = wrapper.getComponent('.modal-2');
|
|
136
136
|
|
|
137
|
-
await modal2.find('
|
|
137
|
+
await modal2.find('button[aria-label]').trigger('click');
|
|
138
138
|
|
|
139
139
|
await sleep(300);
|
|
140
140
|
|
|
141
|
-
const textInput = modal1.find('.
|
|
141
|
+
const textInput = modal1.find('.text-input');
|
|
142
142
|
|
|
143
143
|
expect(document.activeElement).toEqual(textInput.element);
|
|
144
144
|
|
|
@@ -158,17 +158,17 @@ describe('Modal features', () => {
|
|
|
158
158
|
|
|
159
159
|
await sleep(100);
|
|
160
160
|
|
|
161
|
-
wrapper.setProps({ showInput: false });
|
|
161
|
+
await wrapper.setProps({ showInput: false });
|
|
162
162
|
|
|
163
163
|
const modal2 = wrapper.getComponent('.modal-2');
|
|
164
164
|
|
|
165
|
-
await modal2.find('
|
|
165
|
+
await modal2.find('button[aria-label]').trigger('click');
|
|
166
166
|
|
|
167
|
-
await sleep(
|
|
168
|
-
|
|
169
|
-
const closeBtn = modal1.find('.modal-1 button[aria-label]');
|
|
167
|
+
await sleep(200);
|
|
170
168
|
|
|
171
|
-
|
|
169
|
+
// The first focusable element in modal1 according to FOCUSABLE_ELEMENTS order is a[href] (comes before button)
|
|
170
|
+
const linkElement = modal1.find('a[href]');
|
|
171
|
+
expect(document.activeElement).toEqual(linkElement.element);
|
|
172
172
|
wrapper.unmount();
|
|
173
173
|
});
|
|
174
174
|
|
|
@@ -183,7 +183,7 @@ describe('Modal features', () => {
|
|
|
183
183
|
|
|
184
184
|
await modal1.trigger('keydown', { keyCode: 9 });
|
|
185
185
|
|
|
186
|
-
const textInput = modal1.find('.
|
|
186
|
+
const textInput = modal1.find('.text-input');
|
|
187
187
|
|
|
188
188
|
expect(document.activeElement).toBe(textInput.element);
|
|
189
189
|
wrapper.unmount();
|
|
@@ -203,9 +203,11 @@ describe('Modal features', () => {
|
|
|
203
203
|
shiftKey: true,
|
|
204
204
|
});
|
|
205
205
|
|
|
206
|
-
|
|
206
|
+
// Shift+tab from text input (initial autofocus) goes to previous element in tab order
|
|
207
|
+
// According to FOCUSABLE_ELEMENTS order: a[href] -> input -> button -> checkbox -> close button
|
|
208
|
+
const openModal2Btn = modal1.find('.open-modal-2');
|
|
207
209
|
|
|
208
|
-
expect(document.activeElement).toBe(
|
|
210
|
+
expect(document.activeElement).toBe(openModal2Btn.element);
|
|
209
211
|
wrapper.unmount();
|
|
210
212
|
});
|
|
211
213
|
|
|
@@ -278,11 +280,13 @@ describe('Modal features', () => {
|
|
|
278
280
|
|
|
279
281
|
const modal1 = wrapper.getComponent('.modal-1');
|
|
280
282
|
|
|
281
|
-
await modal1.find('.
|
|
283
|
+
await modal1.find('.checkbox-input').trigger('keydown', { keyCode: 9 });
|
|
282
284
|
|
|
283
|
-
|
|
285
|
+
// Tab from checkbox (last element) cycles back to the first focusable element (text input with autofocus)
|
|
286
|
+
// This is correct modal tab cycling behavior: when at the end, wrap to the beginning
|
|
287
|
+
const textInput = modal1.find('.text-input');
|
|
284
288
|
|
|
285
|
-
expect(document.activeElement).toEqual(
|
|
289
|
+
expect(document.activeElement).toEqual(textInput.element);
|
|
286
290
|
wrapper.unmount();
|
|
287
291
|
});
|
|
288
292
|
|
|
@@ -295,7 +299,7 @@ describe('Modal features', () => {
|
|
|
295
299
|
|
|
296
300
|
const modal1 = wrapper.getComponent('.modal-1');
|
|
297
301
|
|
|
298
|
-
await modal1.find('
|
|
302
|
+
await modal1.find('button[aria-label]').trigger('click');
|
|
299
303
|
|
|
300
304
|
await sleep(100);
|
|
301
305
|
|
|
@@ -246,8 +246,8 @@ describe('PSelectBtn.vue', () => {
|
|
|
246
246
|
const buttonDivs = wrapper.findAll('div.inline-flex');
|
|
247
247
|
|
|
248
248
|
buttonDivs.forEach((buttonDiv) => {
|
|
249
|
-
expect(buttonDiv.classes()).toContain('
|
|
250
|
-
expect(buttonDiv.classes()).toContain('
|
|
249
|
+
expect(buttonDiv.classes()).toContain('[&_*]:px-0');
|
|
250
|
+
expect(buttonDiv.classes()).toContain('[&_*]:py-0');
|
|
251
251
|
});
|
|
252
252
|
});
|
|
253
253
|
|