@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 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 __VLS_5: {}, __VLS_11: {}, __VLS_13: {};
13
+ declare var __VLS_9: {}, __VLS_15: {}, __VLS_17: {};
10
14
  type __VLS_Slots = {} & {
11
- header?: (props: typeof __VLS_5) => any;
15
+ header?: (props: typeof __VLS_9) => any;
12
16
  } & {
13
- default?: (props: typeof __VLS_11) => any;
17
+ default?: (props: typeof __VLS_15) => any;
14
18
  } & {
15
- footer?: (props: typeof __VLS_13) => any;
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
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
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;