@xleddyl/443-components-vue 0.14.0 → 0.16.0

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.
Files changed (130) hide show
  1. package/CATALOG.md +155 -153
  2. package/README.md +79 -2
  3. package/dist/chart/BarChart.vue.d.ts +2 -2
  4. package/dist/chart/ChartLegend.vue.d.ts +4 -4
  5. package/dist/chart/ChartPanel.vue.d.ts +2 -2
  6. package/dist/chart/ChartSummary.vue.d.ts +2 -2
  7. package/dist/chart/DoughnutChart.vue.d.ts +2 -2
  8. package/dist/chart/LineChart.vue.d.ts +2 -2
  9. package/dist/components/core/Button.vue.d.ts +2 -2
  10. package/dist/components/core/FieldMessage.vue.d.ts +2 -2
  11. package/dist/components/core/FormAlerts.vue.d.ts +2 -2
  12. package/dist/components/core/FormField.vue.d.ts +2 -2
  13. package/dist/components/core/Input.vue.d.ts +4 -4
  14. package/dist/components/core/Kbd.vue.d.ts +2 -2
  15. package/dist/components/core/Root.vue.d.ts +4 -4
  16. package/dist/components/core/Spinner.vue.d.ts +2 -2
  17. package/dist/components/core/Textarea.vue.d.ts +4 -4
  18. package/dist/components/core/VisuallyHidden.vue.d.ts +4 -4
  19. package/dist/components/data/Avatar.vue.d.ts +2 -2
  20. package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
  21. package/dist/components/data/Badge.vue.d.ts +2 -2
  22. package/dist/components/data/DescriptionList.vue.d.ts +2 -2
  23. package/dist/components/data/FilterPill.vue.d.ts +2 -2
  24. package/dist/components/data/Pagination.vue +14 -8
  25. package/dist/components/data/Pagination.vue.d.ts +13 -10
  26. package/dist/components/data/SelectionBar.vue.d.ts +2 -2
  27. package/dist/components/data/Stat.vue.d.ts +4 -4
  28. package/dist/components/data/Tag.vue.d.ts +4 -4
  29. package/dist/components/data/Timeline.vue.d.ts +2 -2
  30. package/dist/components/data/Tree.vue.d.ts +4 -4
  31. package/dist/components/data/types.d.ts +1 -0
  32. package/dist/components/feedback/Alert.vue.d.ts +4 -4
  33. package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
  34. package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
  35. package/dist/components/feedback/Meter.vue.d.ts +2 -2
  36. package/dist/components/feedback/Progress.vue.d.ts +2 -2
  37. package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
  38. package/dist/components/feedback/Skeleton.vue.d.ts +2 -2
  39. package/dist/components/forms/Calendar.vue.d.ts +4 -4
  40. package/dist/components/forms/ColorInput.vue.d.ts +4 -4
  41. package/dist/components/forms/DateInput.vue.d.ts +4 -4
  42. package/dist/components/forms/DatePicker.vue.d.ts +4 -4
  43. package/dist/components/forms/FileInput.vue.d.ts +4 -4
  44. package/dist/components/forms/InputAddon.vue.d.ts +2 -2
  45. package/dist/components/forms/InputGroup.vue.d.ts +2 -2
  46. package/dist/components/forms/NumberInput.vue.d.ts +4 -4
  47. package/dist/components/forms/PasswordInput.vue.d.ts +4 -4
  48. package/dist/components/forms/PinInput.vue.d.ts +4 -4
  49. package/dist/components/forms/Radio.vue.d.ts +2 -2
  50. package/dist/components/forms/Slider.vue.d.ts +4 -4
  51. package/dist/components/forms/Switch.vue.d.ts +4 -4
  52. package/dist/components/forms/TimeInput.vue.d.ts +4 -4
  53. package/dist/components/layout/Accordion.vue.d.ts +4 -4
  54. package/dist/components/layout/AppShell.vue.d.ts +4 -4
  55. package/dist/components/layout/Breadcrumbs.vue.d.ts +2 -2
  56. package/dist/components/layout/Card.vue.d.ts +4 -4
  57. package/dist/components/layout/CopyButton.vue.d.ts +4 -4
  58. package/dist/components/layout/Grid.vue.d.ts +2 -2
  59. package/dist/components/layout/NavLink.vue.d.ts +4 -4
  60. package/dist/components/layout/PageHeader.vue.d.ts +2 -2
  61. package/dist/components/layout/Separator.vue.d.ts +2 -2
  62. package/dist/components/layout/Sidebar.vue.d.ts +2 -2
  63. package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
  64. package/dist/components/layout/Stack.vue.d.ts +4 -4
  65. package/dist/components/layout/Stepper.vue.d.ts +4 -4
  66. package/dist/components/layout/Tabs.vue.d.ts +4 -4
  67. package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
  68. package/dist/components/layout/Toolbar.vue.d.ts +2 -2
  69. package/dist/components/overlays/CommandPalette.vue.d.ts +2 -2
  70. package/dist/components/overlays/ConfirmDialog.vue.d.ts +4 -4
  71. package/dist/components/overlays/ConfirmHost.vue.d.ts +4 -4
  72. package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
  73. package/dist/components/overlays/Drawer.vue.d.ts +4 -4
  74. package/dist/components/overlays/DropdownMenu.vue.d.ts +4 -4
  75. package/dist/components/overlays/HoverCard.vue.d.ts +4 -4
  76. package/dist/components/overlays/Modal.vue.d.ts +4 -4
  77. package/dist/components/overlays/Popover.vue.d.ts +4 -4
  78. package/dist/components/overlays/Toaster.vue.d.ts +2 -2
  79. package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
  80. package/dist/components/templates/AccountMenu.vue.d.ts +4 -4
  81. package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
  82. package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
  83. package/dist/components/templates/Brand.vue.d.ts +4 -4
  84. package/dist/components/templates/DashboardLayout.vue +2 -0
  85. package/dist/components/templates/DashboardLayout.vue.d.ts +3 -2
  86. package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
  87. package/dist/components/templates/DetailPage.vue.d.ts +4 -4
  88. package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
  89. package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
  90. package/dist/components/templates/ListPage.vue +7 -3
  91. package/dist/components/templates/ListPage.vue.d.ts +5 -5
  92. package/dist/components/templates/SaveBar.vue.d.ts +4 -4
  93. package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
  94. package/dist/components/templates/SettingsModal.vue.d.ts +4 -4
  95. package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
  96. package/dist/components/templates/SettingsSection.vue.d.ts +4 -4
  97. package/dist/composables/core.d.ts +1 -0
  98. package/dist/composables/core.mjs +1 -0
  99. package/dist/composables/usePreferences.d.ts +17 -0
  100. package/dist/composables/usePreferences.mjs +50 -0
  101. package/dist/editor/RichTextEditor.vue.d.ts +4 -4
  102. package/dist/grid/DataGrid.vue +57 -13
  103. package/dist/grid/DataGrid.vue.d.ts +5 -4
  104. package/dist/grid/GridToolbar.vue.d.ts +4 -4
  105. package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
  106. package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
  107. package/dist/grid/cells/ButtonCell.vue.d.ts +2 -2
  108. package/dist/grid/cells/DateCell.vue.d.ts +2 -2
  109. package/dist/grid/cells/EmptyCell.vue.d.ts +2 -2
  110. package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
  111. package/dist/grid/types.d.ts +5 -1
  112. package/dist/internal/core/LiveRegion.vue.d.ts +2 -2
  113. package/dist/internal/core/preferences.d.ts +34 -0
  114. package/dist/internal/core/preferences.mjs +184 -0
  115. package/dist/internal/core/preset.mjs +4 -1
  116. package/dist/internal/core/theme.mjs +4 -1
  117. package/dist/internal/layout/NavGroup.vue.d.ts +4 -4
  118. package/dist/internal/layout/persist.mjs +44 -9
  119. package/dist/internal/overlays/DialogFrame.vue.d.ts +4 -4
  120. package/dist/internal/overlays/MenuList.vue.d.ts +4 -4
  121. package/dist/internal/overlays/OverlayView.vue.d.ts +4 -4
  122. package/dist/locale/de.mjs +2 -1
  123. package/dist/locale/en.mjs +2 -1
  124. package/dist/locale/it.mjs +2 -1
  125. package/dist/locale/types.d.ts +1 -0
  126. package/dist/nuxt/runtime/layouts/auth.vue.d.ts +4 -4
  127. package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +4 -4
  128. package/dist/styles/forms/select.css +16 -2
  129. package/dist/styles/templates/settings-modal.css +9 -4
  130. package/package.json +1 -1
@@ -25,7 +25,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
25
25
  draggable?: (boolean | "true" | "false") | undefined;
26
26
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
27
27
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
28
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
28
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
29
29
  id?: string | undefined | undefined;
30
30
  inert?: (boolean | "true" | "false") | undefined;
31
31
  lang?: string | undefined | undefined;
@@ -222,7 +222,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
222
222
  draggable?: (boolean | "true" | "false") | undefined;
223
223
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
224
224
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
225
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
225
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
226
226
  id?: string | undefined | undefined;
227
227
  inert?: (boolean | "true" | "false") | undefined;
228
228
  lang?: string | undefined | undefined;
@@ -48,6 +48,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
48
48
  description?: string;
49
49
  flush?: boolean;
50
50
  dir?: string | undefined;
51
+ contextmenu?: string | undefined;
52
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
51
53
  class?: import("vue").ClassValue;
52
54
  role?: string | undefined;
53
55
  'aria-label'?: string | undefined;
@@ -203,11 +205,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
203
205
  ref_key?: string | undefined | undefined;
204
206
  accesskey?: string | undefined;
205
207
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
206
- contextmenu?: string | undefined;
207
208
  draggable?: (boolean | "true" | "false") | undefined;
208
209
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
209
210
  enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
210
- hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
211
211
  inert?: (boolean | "true" | "false") | undefined;
212
212
  spellcheck?: (boolean | "true" | "false") | undefined;
213
213
  translate?: "yes" | "no" | undefined;
@@ -292,6 +292,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
292
292
  description?: string;
293
293
  flush?: boolean;
294
294
  dir?: string | undefined;
295
+ contextmenu?: string | undefined;
296
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
295
297
  class?: import("vue").ClassValue;
296
298
  role?: string | undefined;
297
299
  'aria-label'?: string | undefined;
@@ -447,11 +449,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
447
449
  ref_key?: string | undefined | undefined;
448
450
  accesskey?: string | undefined;
449
451
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
450
- contextmenu?: string | undefined;
451
452
  draggable?: (boolean | "true" | "false") | undefined;
452
453
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
453
454
  enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
454
- hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
455
455
  inert?: (boolean | "true" | "false") | undefined;
456
456
  spellcheck?: (boolean | "true" | "false") | undefined;
457
457
  translate?: "yes" | "no" | undefined;
@@ -35,6 +35,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
35
35
  results?: (string | number) | undefined;
36
36
  placeholder?: string | undefined | undefined;
37
37
  dir?: string | undefined | undefined;
38
+ contextmenu?: string | undefined | undefined;
39
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
38
40
  class?: import("vue").ClassValue;
39
41
  role?: string | undefined | undefined;
40
42
  'aria-label'?: string | undefined | undefined;
@@ -189,11 +191,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
189
191
  ref_key?: string | undefined | undefined;
190
192
  accesskey?: string | undefined | undefined;
191
193
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
192
- contextmenu?: string | undefined | undefined;
193
194
  draggable?: (boolean | "true" | "false") | undefined;
194
195
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
195
196
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
196
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
197
197
  inert?: (boolean | "true" | "false") | undefined;
198
198
  spellcheck?: (boolean | "true" | "false") | undefined;
199
199
  translate?: "yes" | "no" | undefined | undefined;
@@ -247,6 +247,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
247
247
  results?: (string | number) | undefined;
248
248
  placeholder?: string | undefined | undefined;
249
249
  dir?: string | undefined | undefined;
250
+ contextmenu?: string | undefined | undefined;
251
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
250
252
  class?: import("vue").ClassValue;
251
253
  role?: string | undefined | undefined;
252
254
  'aria-label'?: string | undefined | undefined;
@@ -401,11 +403,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
401
403
  ref_key?: string | undefined | undefined;
402
404
  accesskey?: string | undefined | undefined;
403
405
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
404
- contextmenu?: string | undefined | undefined;
405
406
  draggable?: (boolean | "true" | "false") | undefined;
406
407
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
407
408
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
408
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
409
409
  inert?: (boolean | "true" | "false") | undefined;
410
410
  spellcheck?: (boolean | "true" | "false") | undefined;
411
411
  translate?: "yes" | "no" | undefined | undefined;
@@ -30,6 +30,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
30
30
  placeholder?: string | undefined;
31
31
  bind?: Record<string, unknown>;
32
32
  dir?: string | undefined;
33
+ contextmenu?: string | undefined;
34
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
33
35
  class?: import("vue").ClassValue;
34
36
  role?: string | undefined;
35
37
  'aria-label'?: string | undefined;
@@ -189,11 +191,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
189
191
  ref_key?: string | undefined;
190
192
  accesskey?: string | undefined;
191
193
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
192
- contextmenu?: string | undefined;
193
194
  draggable?: (boolean | "true" | "false") | undefined;
194
195
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
195
196
  enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
196
- hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
197
197
  inert?: (boolean | "true" | "false") | undefined;
198
198
  spellcheck?: (boolean | "true" | "false") | undefined;
199
199
  translate?: "yes" | "no" | undefined;
@@ -258,6 +258,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
258
258
  placeholder?: string | undefined;
259
259
  bind?: Record<string, unknown>;
260
260
  dir?: string | undefined;
261
+ contextmenu?: string | undefined;
262
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
261
263
  class?: import("vue").ClassValue;
262
264
  role?: string | undefined;
263
265
  'aria-label'?: string | undefined;
@@ -417,11 +419,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
417
419
  ref_key?: string | undefined;
418
420
  accesskey?: string | undefined;
419
421
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
420
- contextmenu?: string | undefined;
421
422
  draggable?: (boolean | "true" | "false") | undefined;
422
423
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
423
424
  enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
424
- hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
425
425
  inert?: (boolean | "true" | "false") | undefined;
426
426
  spellcheck?: (boolean | "true" | "false") | undefined;
427
427
  translate?: "yes" | "no" | undefined;
@@ -7,3 +7,4 @@ export * from './useTheme';
7
7
  export * from './usePreset';
8
8
  export * from './useLocale';
9
9
  export * from './useFieldBoundary';
10
+ export * from './usePreferences';
@@ -7,3 +7,4 @@ export * from "./useTheme.mjs";
7
7
  export * from "./usePreset.mjs";
8
8
  export * from "./useLocale.mjs";
9
9
  export * from "./useFieldBoundary.mjs";
10
+ export * from "./usePreferences.mjs";
@@ -0,0 +1,17 @@
1
+ import type { MaybeRefOrGetter, WritableComputedRef } from 'vue';
2
+ import type { PreferenceStore, Preferences } from '../internal/core/preferences';
3
+ export type { PreferenceListener, PreferenceStore, Preferences, RemotePreferenceStore, RemotePreferenceStoreOptions, } from '../internal/core/preferences';
4
+ export { createLocalPreferenceStore, createRemotePreferenceStore, LOCAL_PREFERENCE_PREFIX, PREFERENCES_KEY, } from '../internal/core/preferences';
5
+ export declare const PREFERENCE_KEYS: {
6
+ readonly theme: "theme";
7
+ readonly preset: "preset";
8
+ readonly shell: (storageKey: string) => string;
9
+ readonly grid: (storageKey: string) => string;
10
+ };
11
+ export interface UsePreferenceOptions<T> {
12
+ validate?: (value: unknown) => value is T;
13
+ }
14
+ export declare function createPreferences(store?: PreferenceStore): Preferences;
15
+ export declare function providePreferences(source?: PreferenceStore | Preferences): Preferences;
16
+ export declare function usePreferences(): Preferences;
17
+ export declare function usePreference<T>(key: MaybeRefOrGetter<string>, fallback: T, options?: UsePreferenceOptions<T>): WritableComputedRef<T>;
@@ -0,0 +1,50 @@
1
+ import { computed, provide, shallowRef, toValue } from "vue";
2
+ import {
3
+ createPreferences as createPreferencesInstance,
4
+ PREFERENCES_KEY,
5
+ resolvePreferences,
6
+ whenPreferencesReady
7
+ } from "../internal/core/preferences.mjs";
8
+ export {
9
+ createLocalPreferenceStore,
10
+ createRemotePreferenceStore,
11
+ LOCAL_PREFERENCE_PREFIX,
12
+ PREFERENCES_KEY
13
+ } from "../internal/core/preferences.mjs";
14
+ export const PREFERENCE_KEYS = {
15
+ theme: "theme",
16
+ preset: "preset",
17
+ shell: (storageKey) => `shell:${storageKey}`,
18
+ grid: (storageKey) => `grid:${storageKey}`
19
+ };
20
+ function toPreferences(source) {
21
+ if (source && "install" in source && "clientOnly" in source && "store" in source) return source;
22
+ return createPreferencesInstance(source);
23
+ }
24
+ export function createPreferences(store) {
25
+ return createPreferencesInstance(store);
26
+ }
27
+ export function providePreferences(source) {
28
+ const preferences = toPreferences(source);
29
+ provide(PREFERENCES_KEY, preferences);
30
+ return preferences;
31
+ }
32
+ export function usePreferences() {
33
+ return resolvePreferences();
34
+ }
35
+ export function usePreference(key, fallback, options = {}) {
36
+ const preferences = resolvePreferences();
37
+ const ready = shallowRef(false);
38
+ whenPreferencesReady(preferences, () => ready.value = true);
39
+ const isValid = options.validate ?? ((value) => value !== void 0);
40
+ return computed({
41
+ get() {
42
+ if (!ready.value && preferences.clientOnly) return fallback;
43
+ const stored = preferences.get(toValue(key));
44
+ return isValid(stored) ? stored : fallback;
45
+ },
46
+ set(value) {
47
+ preferences.set(toValue(key), value);
48
+ }
49
+ });
50
+ }
@@ -26,6 +26,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
26
26
  style?: import("vue").StyleValue;
27
27
  results?: (string | number) | undefined;
28
28
  dir?: string | undefined | undefined;
29
+ contextmenu?: string | undefined | undefined;
30
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
29
31
  class?: import("vue").ClassValue;
30
32
  role?: string | undefined | undefined;
31
33
  'aria-label'?: string | undefined | undefined;
@@ -180,11 +182,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
180
182
  ref_key?: string | undefined | undefined;
181
183
  accesskey?: string | undefined | undefined;
182
184
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
183
- contextmenu?: string | undefined | undefined;
184
185
  draggable?: (boolean | "true" | "false") | undefined;
185
186
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
186
187
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
187
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
188
188
  inert?: (boolean | "true" | "false") | undefined;
189
189
  spellcheck?: (boolean | "true" | "false") | undefined;
190
190
  translate?: "yes" | "no" | undefined | undefined;
@@ -241,6 +241,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
241
241
  style?: import("vue").StyleValue;
242
242
  results?: (string | number) | undefined;
243
243
  dir?: string | undefined | undefined;
244
+ contextmenu?: string | undefined | undefined;
245
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
244
246
  class?: import("vue").ClassValue;
245
247
  role?: string | undefined | undefined;
246
248
  'aria-label'?: string | undefined | undefined;
@@ -395,11 +397,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
395
397
  ref_key?: string | undefined | undefined;
396
398
  accesskey?: string | undefined | undefined;
397
399
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
398
- contextmenu?: string | undefined | undefined;
399
400
  draggable?: (boolean | "true" | "false") | undefined;
400
401
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
401
402
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
402
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
403
403
  inert?: (boolean | "true" | "false") | undefined;
404
404
  spellcheck?: (boolean | "true" | "false") | undefined;
405
405
  translate?: "yes" | "no" | undefined | undefined;
@@ -60,8 +60,8 @@
60
60
  :overlay-loading-template="gridOptions?.overlayLoadingTemplate ?? loadingTemplate"
61
61
  :quick-filter-text="serverPagination ? void 0 : query"
62
62
  :row-selection="gridRowSelection"
63
- :pagination="paginated"
64
- :pagination-page-size="pageSize"
63
+ :pagination="paginated && pageSize !== 'all'"
64
+ :pagination-page-size="pageSize === 'all' ? void 0 : pageSize"
65
65
  :pagination-page-size-selector="false"
66
66
  :suppress-pagination-panel="true"
67
67
  :auto-size-strategy="gridAutoSizeStrategy"
@@ -126,7 +126,8 @@ import { useLocale } from "../composables/useLocale";
126
126
  import LiveRegion from "../internal/core/LiveRegion.vue";
127
127
  import { formatLocaleMessage } from "../locale";
128
128
  import { useLiveMessage } from "../internal/core/live";
129
- import { readStorageJson, removeStorage, writeStorageJson } from "../internal/core/storage";
129
+ import { resolvePreferences, whenPreferencesReady } from "../internal/core/preferences";
130
+ import { readStorageJson, removeStorage } from "../internal/core/storage";
130
131
  import GridToolbar from "./GridToolbar.vue";
131
132
  import { escapeHtml } from "../internal/core/text";
132
133
  import {
@@ -178,7 +179,7 @@ const props = defineProps({
178
179
  const emit = defineEmits(["rowClick", "selectionChange", "sortChange", "filterChange", "copy", "cellsChange", "cellsInvalid", "dirtyChange", "rangeChange", "filtersReset"]);
179
180
  const query = defineModel("query", { type: String, ...{ default: "" } });
180
181
  const page = defineModel("page", { type: Number, ...{ default: 1 } });
181
- const pageSize = defineModel("pageSize", { type: Number, ...{ default: 25 } });
182
+ const pageSize = defineModel("pageSize", { type: [Number, String], ...{ default: 25 } });
182
183
  const sort = defineModel("sort", { type: null, ...{ default: void 0 } });
183
184
  if (props.filterable) registerGridFilterModules();
184
185
  function hasEditableColumn() {
@@ -294,7 +295,7 @@ const paginated = computed(() => Boolean(props.pagination) && !props.serverPagin
294
295
  const showFooter = computed(() => paginationEnabled.value || Boolean(props.selectable));
295
296
  const totalRows = computed(() => props.serverPagination ? props.total : clientTotal.value);
296
297
  const pageCount = computed(
297
- () => props.serverPagination ? Math.max(1, Math.ceil(props.total / pageSize.value)) : clientPageCount.value
298
+ () => props.serverPagination ? pageSize.value === "all" ? 1 : Math.max(1, Math.ceil(props.total / pageSize.value)) : clientPageCount.value
298
299
  );
299
300
  const noRowsTemplate = computed(
300
301
  () => `<div class="k-data-grid-overlay"><span>${escapeHtml(text.value.noRows)}</span></div>`
@@ -338,7 +339,8 @@ function renderCell(params) {
338
339
  element.append(dash, hidden);
339
340
  return element;
340
341
  }
341
- const storageName = computed(() => props.storageKey ? `k-grid:${props.storageKey}` : null);
342
+ const preferences = resolvePreferences();
343
+ const preferenceKey = computed(() => props.storageKey ? `grid:${props.storageKey}` : null);
342
344
  const hasStoredState = ref(false);
343
345
  const gridAutoSizeStrategy = computed(() => {
344
346
  if (hasStoredState.value) return void 0;
@@ -354,20 +356,56 @@ const rowIdGetter = computed(() => {
354
356
  if (props.rowIdKey) return getRowIdByKey;
355
357
  return props.gridOptions?.getRowId;
356
358
  });
359
+ function isGridPreference(value) {
360
+ return typeof value === "object" && value !== null && !Array.isArray(value);
361
+ }
362
+ function readPreference() {
363
+ const key = preferenceKey.value;
364
+ if (!key || !props.storageKey) return null;
365
+ const stored = preferences.get(key);
366
+ if (isGridPreference(stored)) return stored;
367
+ if (stored !== void 0) return null;
368
+ const legacyKey = `k-grid:${props.storageKey}`;
369
+ const legacy = readStorageJson(legacyKey);
370
+ if (!Array.isArray(legacy)) return null;
371
+ const migrated = { columns: legacy };
372
+ preferences.set(key, migrated);
373
+ removeStorage(legacyKey);
374
+ return migrated;
375
+ }
376
+ function writePreference(patch) {
377
+ const key = preferenceKey.value;
378
+ if (!key) return;
379
+ const next = { ...readPreference(), ...patch };
380
+ if (next.columns === void 0) delete next.columns;
381
+ if (next.pageSize === void 0) delete next.pageSize;
382
+ if (Object.keys(next).length) preferences.set(key, next);
383
+ else preferences.remove(key);
384
+ }
357
385
  function readStoredState() {
358
- if (!storageName.value) return null;
359
- const stored = readStorageJson(storageName.value);
360
- return Array.isArray(stored) ? stored : null;
386
+ const columns = readPreference()?.columns;
387
+ return Array.isArray(columns) ? columns : null;
361
388
  }
362
389
  function clearStoredState() {
363
- if (storageName.value) removeStorage(storageName.value);
390
+ writePreference({ columns: void 0 });
364
391
  }
365
392
  function persistState(event) {
366
393
  if (event && event.finished === false) return;
367
- if (!storageName.value || !api.value) return;
368
- const state = api.value.getColumnState().map(({ colId, hide, width, pinned }) => ({ colId, hide, width, pinned }));
369
- writeStorageJson(storageName.value, state);
394
+ if (!preferenceKey.value || !api.value) return;
395
+ const columns = api.value.getColumnState().map(({ colId, hide, width, pinned }) => ({ colId, hide, width, pinned }));
396
+ writePreference({ columns });
397
+ }
398
+ function isPageSize(value) {
399
+ return props.pageSizes.includes(value);
370
400
  }
401
+ whenPreferencesReady(preferences, () => {
402
+ const stored = readPreference()?.pageSize;
403
+ if (isPageSize(stored) && stored !== pageSize.value) pageSize.value = stored;
404
+ watch(pageSize, (value) => {
405
+ if (preferenceKey.value && readPreference()?.pageSize !== value)
406
+ writePreference({ pageSize: value });
407
+ });
408
+ });
371
409
  function onGridReady(event) {
372
410
  api.value = event.api;
373
411
  sheet.attach(event.api);
@@ -400,6 +438,11 @@ function syncPagination() {
400
438
  if (!current || props.serverPagination) return;
401
439
  clientTotal.value = current.getDisplayedRowCount();
402
440
  if (!props.pagination) return;
441
+ if (pageSize.value === "all") {
442
+ clientPageCount.value = 1;
443
+ page.value = 1;
444
+ return;
445
+ }
403
446
  clientPageCount.value = Math.max(1, current.paginationGetTotalPages());
404
447
  page.value = current.paginationGetCurrentPage() + 1;
405
448
  }
@@ -475,6 +518,7 @@ const gridEvents = {
475
518
  };
476
519
  watch(pageSize, () => {
477
520
  if (props.serverPagination) page.value = 1;
521
+ else nextTick(syncPagination);
478
522
  });
479
523
  onMounted(() => {
480
524
  hasStoredState.value = readStoredState() !== null;
@@ -1,4 +1,5 @@
1
1
  import type { FilterChangedEvent, FilterModel, ColDef, GetRowIdParams, GridApi, GridOptions, RowClickedEvent } from 'ag-grid-community';
2
+ import type { PageSize } from '../components/data/types';
2
3
  import type { GridCellRange, GridCellsChange, GridCellsInvalid, GridDensity, GridMessages, GridSelection, GridSortChange } from './types';
3
4
  declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
5
  props: import("vue").PublicProps & __VLS_PrettifyLocal<({
@@ -27,7 +28,7 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
27
28
  showJump?: boolean;
28
29
  serverPagination?: boolean;
29
30
  total?: number;
30
- pageSizes?: number[];
31
+ pageSizes?: PageSize[];
31
32
  messages?: Partial<GridMessages>;
32
33
  localeText?: Record<string, string>;
33
34
  gridOptions?: GridOptions<T>;
@@ -40,12 +41,12 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
40
41
  } & {
41
42
  query?: string;
42
43
  page?: number;
43
- pageSize?: number;
44
+ pageSize?: PageSize;
44
45
  sort?: GridSortChange | null | undefined;
45
46
  }) & {
46
47
  onCopy?: ((text: string) => any) | undefined;
47
48
  "onUpdate:page"?: ((value: number) => any) | undefined;
48
- "onUpdate:pageSize"?: ((value: number) => any) | undefined;
49
+ "onUpdate:pageSize"?: ((value: PageSize) => any) | undefined;
49
50
  onRowClick?: ((event: RowClickedEvent<T, any>) => any) | undefined;
50
51
  "onUpdate:sort"?: ((value: GridSortChange | null | undefined) => any) | undefined;
51
52
  "onUpdate:query"?: ((value: string) => any) | undefined;
@@ -114,7 +115,7 @@ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_se
114
115
  count: number;
115
116
  }) => any;
116
117
  };
117
- emit: (((evt: "copy", text: string) => void) & ((evt: "rowClick", event: RowClickedEvent<T, any>) => void) & ((evt: "filtersReset") => void) & ((evt: "selectionChange", rows: T[]) => void) & ((evt: "sortChange", change: GridSortChange | null) => void) & ((evt: "filterChange", model: FilterModel, event: FilterChangedEvent<T, any>) => void) & ((evt: "cellsChange", event: GridCellsChange) => void) & ((evt: "cellsInvalid", event: GridCellsInvalid) => void) & ((evt: "dirtyChange", count: number) => void) & ((evt: "rangeChange", range: GridCellRange | null) => void)) & (((event: "update:page", value: number) => void) & ((event: "update:pageSize", value: number) => void) & ((event: "update:sort", value: GridSortChange | null | undefined) => void) & ((event: "update:query", value: string) => void));
118
+ emit: (((evt: "copy", text: string) => void) & ((evt: "rowClick", event: RowClickedEvent<T, any>) => void) & ((evt: "filtersReset") => void) & ((evt: "selectionChange", rows: T[]) => void) & ((evt: "sortChange", change: GridSortChange | null) => void) & ((evt: "filterChange", model: FilterModel, event: FilterChangedEvent<T, any>) => void) & ((evt: "cellsChange", event: GridCellsChange) => void) & ((evt: "cellsInvalid", event: GridCellsInvalid) => void) & ((evt: "dirtyChange", count: number) => void) & ((evt: "rangeChange", range: GridCellRange | null) => void)) & (((event: "update:page", value: number) => void) & ((event: "update:pageSize", value: PageSize) => void) & ((event: "update:sort", value: GridSortChange | null | undefined) => void) & ((event: "update:query", value: string) => void));
118
119
  }>) => import("vue").VNode & {
119
120
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
120
121
  };
@@ -26,6 +26,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
26
26
  results?: (string | number) | undefined;
27
27
  placeholder?: string | undefined | undefined;
28
28
  dir?: string | undefined | undefined;
29
+ contextmenu?: string | undefined | undefined;
30
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
29
31
  class?: import("vue").ClassValue;
30
32
  role?: string | undefined | undefined;
31
33
  'aria-label'?: string | undefined | undefined;
@@ -180,11 +182,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
180
182
  ref_key?: string | undefined | undefined;
181
183
  accesskey?: string | undefined | undefined;
182
184
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
183
- contextmenu?: string | undefined | undefined;
184
185
  draggable?: (boolean | "true" | "false") | undefined;
185
186
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
186
187
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
187
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
188
188
  inert?: (boolean | "true" | "false") | undefined;
189
189
  spellcheck?: (boolean | "true" | "false") | undefined;
190
190
  translate?: "yes" | "no" | undefined | undefined;
@@ -232,6 +232,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
232
232
  results?: (string | number) | undefined;
233
233
  placeholder?: string | undefined | undefined;
234
234
  dir?: string | undefined | undefined;
235
+ contextmenu?: string | undefined | undefined;
236
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
235
237
  class?: import("vue").ClassValue;
236
238
  role?: string | undefined | undefined;
237
239
  'aria-label'?: string | undefined | undefined;
@@ -386,11 +388,9 @@ declare const __VLS_base: import("vue").DefineComponent<{
386
388
  ref_key?: string | undefined | undefined;
387
389
  accesskey?: string | undefined | undefined;
388
390
  contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
389
- contextmenu?: string | undefined | undefined;
390
391
  draggable?: (boolean | "true" | "false") | undefined;
391
392
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
392
393
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
393
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
394
394
  inert?: (boolean | "true" | "false") | undefined;
395
395
  spellcheck?: (boolean | "true" | "false") | undefined;
396
396
  translate?: "yes" | "no" | undefined | undefined;
@@ -11,7 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
11
11
  draggable?: (boolean | "true" | "false") | undefined;
12
12
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
13
13
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
14
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
14
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
15
15
  id?: string | undefined | undefined;
16
16
  inert?: (boolean | "true" | "false") | undefined;
17
17
  lang?: string | undefined | undefined;
@@ -219,7 +219,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
219
219
  draggable?: (boolean | "true" | "false") | undefined;
220
220
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
221
221
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
222
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
222
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
223
223
  id?: string | undefined | undefined;
224
224
  inert?: (boolean | "true" | "false") | undefined;
225
225
  lang?: string | undefined | undefined;
@@ -11,7 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
11
11
  draggable?: (boolean | "true" | "false") | undefined;
12
12
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
13
13
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
14
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
14
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
15
15
  id?: string | undefined | undefined;
16
16
  inert?: (boolean | "true" | "false") | undefined;
17
17
  lang?: string | undefined | undefined;
@@ -205,7 +205,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
205
205
  draggable?: (boolean | "true" | "false") | undefined;
206
206
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
207
207
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
208
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
208
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
209
209
  id?: string | undefined | undefined;
210
210
  inert?: (boolean | "true" | "false") | undefined;
211
211
  lang?: string | undefined | undefined;
@@ -24,7 +24,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
24
24
  draggable?: (boolean | "true" | "false") | undefined;
25
25
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
26
26
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
27
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
27
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
28
28
  id?: string | undefined | undefined;
29
29
  inert?: (boolean | "true" | "false") | undefined;
30
30
  lang?: string | undefined | undefined;
@@ -238,7 +238,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
238
238
  draggable?: (boolean | "true" | "false") | undefined;
239
239
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
240
240
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
241
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
241
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
242
242
  id?: string | undefined | undefined;
243
243
  inert?: (boolean | "true" | "false") | undefined;
244
244
  lang?: string | undefined | undefined;
@@ -12,7 +12,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
12
12
  draggable?: (boolean | "true" | "false") | undefined;
13
13
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
14
14
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
15
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
15
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
16
16
  id?: string | undefined | undefined;
17
17
  inert?: (boolean | "true" | "false") | undefined;
18
18
  lang?: string | undefined | undefined;
@@ -214,7 +214,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
214
214
  draggable?: (boolean | "true" | "false") | undefined;
215
215
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
216
216
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
217
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
217
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
218
218
  id?: string | undefined | undefined;
219
219
  inert?: (boolean | "true" | "false") | undefined;
220
220
  lang?: string | undefined | undefined;
@@ -11,7 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
11
11
  draggable?: (boolean | "true" | "false") | undefined;
12
12
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
13
13
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
14
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
14
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
15
15
  id?: string | undefined | undefined;
16
16
  inert?: (boolean | "true" | "false") | undefined;
17
17
  lang?: string | undefined | undefined;
@@ -205,7 +205,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
205
205
  draggable?: (boolean | "true" | "false") | undefined;
206
206
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
207
207
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
208
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
208
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
209
209
  id?: string | undefined | undefined;
210
210
  inert?: (boolean | "true" | "false") | undefined;
211
211
  lang?: string | undefined | undefined;
@@ -23,7 +23,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
23
23
  draggable?: (boolean | "true" | "false") | undefined;
24
24
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
25
25
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
26
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
26
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
27
27
  id?: string | undefined | undefined;
28
28
  inert?: (boolean | "true" | "false") | undefined;
29
29
  lang?: string | undefined | undefined;
@@ -229,7 +229,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
229
229
  draggable?: (boolean | "true" | "false") | undefined;
230
230
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
231
231
  enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
232
- hidden?: "" | (boolean | "true" | "false") | "hidden" | "until-found" | undefined;
232
+ hidden?: "" | "hidden" | (boolean | "true" | "false") | "until-found" | undefined;
233
233
  id?: string | undefined | undefined;
234
234
  inert?: (boolean | "true" | "false") | undefined;
235
235
  lang?: string | undefined | undefined;
@@ -1,6 +1,6 @@
1
1
  import type { ColDef, GridApi, ICellRendererParams } from 'ag-grid-community';
2
2
  import type { Tone } from '../components/core/types';
3
- import type { BadgeSize, BadgeVariant } from '../components/data/types';
3
+ import type { BadgeSize, BadgeVariant, PageSize } from '../components/data/types';
4
4
  import type { KMessages } from '../locale/types';
5
5
  export type GridDensity = 'compact' | 'normal' | 'comfortable';
6
6
  export type GridSelection = boolean | 'single' | 'multiple';
@@ -17,6 +17,10 @@ export interface GridCellContext {
17
17
  newTabText?: string;
18
18
  }
19
19
  export type GridColumn<T> = ColDef<T>;
20
+ export interface GridPreference {
21
+ columns?: GridColumnState[];
22
+ pageSize?: PageSize;
23
+ }
20
24
  export interface GridColumnState {
21
25
  colId: string;
22
26
  hide?: boolean | null;