@wpic/ui 0.6.5 → 0.6.7
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/CHANGELOG.md +9 -0
- package/COMPONENTS.md +9 -0
- package/dist/components/WDateRangePicker.vue.d.ts +7 -0
- package/dist/components/WFilterBar.vue.d.ts +4 -0
- package/dist/components/WModal.vue.d.ts +14 -5
- package/dist/components/WSelect.vue.d.ts +8 -0
- package/dist/components/WTable.vue.d.ts +11 -0
- package/dist/wpic-ui.cjs +61 -61
- package/dist/wpic-ui.css +1 -1
- package/dist/wpic-ui.js +2815 -2735
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.6 — 2026-09-10
|
|
4
|
+
|
|
5
|
+
- Localize WDateRangePicker calendars and action labels; expose WSelect search/action labels through WFilterBar.
|
|
6
|
+
- Allow WTable loading, result counts and pagination labels to be localized; expose a text-only loading option and accessible pagination button names.
|
|
7
|
+
|
|
3
8
|
## 0.6.5 — 2026-09-10
|
|
4
9
|
|
|
5
10
|
- Render WSelect labels above the field by default, using WFormLabel and an associated trigger. Inline labels remain available with labelPlacement="inline". Anchor the dropdown to the field, excluding the label.
|
|
@@ -80,3 +85,7 @@ Import `@wpic/ui/style.css` alongside the components. No host Tailwind source sc
|
|
|
80
85
|
### Verification
|
|
81
86
|
|
|
82
87
|
Run `npm run build` followed by `npm run test:semantic`. The browser tests use Google Chrome (`npx playwright install chrome` if needed). Open `/test-ui/semantic.html` with `npm run test:ui` for the standalone package showcase.
|
|
88
|
+
|
|
89
|
+
## 0.6.7
|
|
90
|
+
- WModal: optional draggable, non-modal floating windows, bounded pointer/keyboard movement, focus restoration, localized close/move labels.
|
|
91
|
+
- Popovers inside modals inherit the overlay layer so selects and calendars remain visible.
|
package/COMPONENTS.md
CHANGED
|
@@ -693,3 +693,12 @@ For a shorter metric card, use `compact`. Use `changePosition="label"` to align
|
|
|
693
693
|
`WStatCard` accepts `trend`, `trendInverse`, `trendLabel`, `trendTitle` to display this badge beneath the value. Existing `change`/`changePosition` props still work.
|
|
694
694
|
|
|
695
695
|
`trendPositive` and `trendNegative` are optional color overrides in WThemeProvider. WModal, WTooltip and WSegmentedControl now follow the same theme. Teleported overlays preserve explicit and custom themes.
|
|
696
|
+
|
|
697
|
+
### Localization options (0.6.6)
|
|
698
|
+
|
|
699
|
+
WTable accepts `labels` (`loading`, `results`, `of`, `item`, `items`, `previous`, `next`) and `loadingSpinner=false` for plain loading text. Existing `emptyText` and `searchPlaceholder` remain available. WSelect accepts `searchPlaceholder`, `selectAllLabel`, `clearLabel` and `noResultsLabel`; WFilterBar forwards `selectLabels` to its selects. WDateRangePicker accepts `locale`, `applyLabel`, `previousMonthLabel`, `nextMonthLabel` in addition to translated `presets`, `ariaLabel`, `clearLabel` and `placeholder`.
|
|
700
|
+
|
|
701
|
+
WModal accepts `draggable` and `:modal="false"` for floating tools. Drag the title,
|
|
702
|
+
use arrow keys on its move handle (Shift for larger steps), or Home to recenter.
|
|
703
|
+
Pass `closeLabel` and `moveLabel` for localization. Close with Escape or the close
|
|
704
|
+
button. Use `v-if` to open/close; the parent can retain form values across openings.
|
|
@@ -9,6 +9,10 @@ interface Preset {
|
|
|
9
9
|
label: string;
|
|
10
10
|
}
|
|
11
11
|
type __VLS_Props = {
|
|
12
|
+
locale?: string;
|
|
13
|
+
applyLabel?: string;
|
|
14
|
+
previousMonthLabel?: string;
|
|
15
|
+
nextMonthLabel?: string;
|
|
12
16
|
modelValue?: DateRange | null;
|
|
13
17
|
presets?: Preset[];
|
|
14
18
|
placeholder?: string;
|
|
@@ -27,6 +31,9 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
27
31
|
placeholder: string;
|
|
28
32
|
clearable: boolean;
|
|
29
33
|
clearLabel: string;
|
|
34
|
+
applyLabel: string;
|
|
35
|
+
previousMonthLabel: string;
|
|
36
|
+
nextMonthLabel: string;
|
|
30
37
|
presets: Preset[];
|
|
31
38
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
32
39
|
export default _default;
|
|
@@ -55,6 +55,10 @@ export type FilterItem = SearchFilter | SelectFilter | DateFilter | PillsFilter
|
|
|
55
55
|
type __VLS_Props = {
|
|
56
56
|
filters: FilterItem[] | FilterItem[][];
|
|
57
57
|
modelValue: Record<string, any>;
|
|
58
|
+
selectLabels?: {
|
|
59
|
+
searchPlaceholder?: string;
|
|
60
|
+
noResultsLabel?: string;
|
|
61
|
+
};
|
|
58
62
|
loading?: boolean;
|
|
59
63
|
};
|
|
60
64
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
@@ -5,20 +5,29 @@ type __VLS_Props = {
|
|
|
5
5
|
zIndex?: string;
|
|
6
6
|
hideClose?: boolean;
|
|
7
7
|
noPadding?: boolean;
|
|
8
|
+
draggable?: boolean;
|
|
9
|
+
modal?: boolean;
|
|
10
|
+
closeLabel?: string;
|
|
11
|
+
moveLabel?: string;
|
|
8
12
|
};
|
|
9
|
-
declare var
|
|
13
|
+
declare var __VLS_9: {}, __VLS_15: {}, __VLS_17: {};
|
|
10
14
|
type __VLS_Slots = {} & {
|
|
11
|
-
header?: (props: typeof
|
|
15
|
+
header?: (props: typeof __VLS_9) => any;
|
|
12
16
|
} & {
|
|
13
|
-
default?: (props: typeof
|
|
17
|
+
default?: (props: typeof __VLS_15) => any;
|
|
14
18
|
} & {
|
|
15
|
-
footer?: (props: typeof
|
|
19
|
+
footer?: (props: typeof __VLS_17) => any;
|
|
16
20
|
};
|
|
17
21
|
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
18
22
|
close: () => any;
|
|
19
23
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
20
24
|
onClose?: (() => any) | undefined;
|
|
21
|
-
}>, {
|
|
25
|
+
}>, {
|
|
26
|
+
closeLabel: string;
|
|
27
|
+
draggable: boolean;
|
|
28
|
+
modal: boolean;
|
|
29
|
+
moveLabel: string;
|
|
30
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
22
31
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
23
32
|
export default _default;
|
|
24
33
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -16,6 +16,10 @@ type __VLS_Props = {
|
|
|
16
16
|
multiple?: boolean;
|
|
17
17
|
searchable?: boolean;
|
|
18
18
|
creatable?: boolean;
|
|
19
|
+
searchPlaceholder?: string;
|
|
20
|
+
selectAllLabel?: string;
|
|
21
|
+
clearLabel?: string;
|
|
22
|
+
noResultsLabel?: string;
|
|
19
23
|
label?: string;
|
|
20
24
|
labelPlacement?: 'top' | 'inline';
|
|
21
25
|
placeholder?: string;
|
|
@@ -58,6 +62,10 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
58
62
|
"onUpdate:modelValue"?: ((v: any) => any) | undefined;
|
|
59
63
|
"onOpen-change"?: ((v: boolean) => any) | undefined;
|
|
60
64
|
}>, {
|
|
65
|
+
searchPlaceholder: string;
|
|
66
|
+
clearLabel: string;
|
|
67
|
+
selectAllLabel: string;
|
|
68
|
+
noResultsLabel: string;
|
|
61
69
|
popoverFlip: boolean;
|
|
62
70
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
63
71
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
@@ -11,6 +11,16 @@ type __VLS_Props = {
|
|
|
11
11
|
data?: Record<string, unknown>[];
|
|
12
12
|
columns: WTableColumn[];
|
|
13
13
|
loading?: boolean;
|
|
14
|
+
loadingSpinner?: boolean;
|
|
15
|
+
labels?: {
|
|
16
|
+
loading?: string;
|
|
17
|
+
results?: string;
|
|
18
|
+
of?: string;
|
|
19
|
+
item?: string;
|
|
20
|
+
items?: string;
|
|
21
|
+
previous?: string;
|
|
22
|
+
next?: string;
|
|
23
|
+
};
|
|
14
24
|
emptyText?: string;
|
|
15
25
|
pageSize?: number;
|
|
16
26
|
serverTotal?: number;
|
|
@@ -71,6 +81,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
|
|
|
71
81
|
"onRow-select"?: ((row: Record<string, unknown>, selected: boolean) => any) | undefined;
|
|
72
82
|
"onUpdate:serverPage"?: ((page: number) => any) | undefined;
|
|
73
83
|
}>, {
|
|
84
|
+
loadingSpinner: boolean;
|
|
74
85
|
searchPlaceholder: string;
|
|
75
86
|
rowClickable: boolean;
|
|
76
87
|
showHeader: boolean;
|