@katlux/preset-modern 0.1.0-beta.73 → 0.1.1-alpha.100

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 (31) hide show
  1. package/README.md +8 -3
  2. package/dist/module.d.mts +3 -1
  3. package/dist/module.json +1 -1
  4. package/dist/runtime/assets/scss/css-variables.css +6 -1
  5. package/dist/runtime/assets/scss/index.css +10 -4
  6. package/dist/runtime/components/KBulkActions/KBulkActions.d.vue.ts +3 -6
  7. package/dist/runtime/components/KBulkActions/KBulkActions.vue +23 -11
  8. package/dist/runtime/components/KBulkActions/KBulkActions.vue.d.ts +3 -6
  9. package/dist/runtime/components/KCheckbox/KCheckbox.d.vue.ts +10 -3
  10. package/dist/runtime/components/KCheckbox/KCheckbox.vue +97 -16
  11. package/dist/runtime/components/KCheckbox/KCheckbox.vue.d.ts +10 -3
  12. package/dist/runtime/components/KDatatable/KDatatable.d.vue.ts +34 -11
  13. package/dist/runtime/components/KDatatable/KDatatable.vue +391 -79
  14. package/dist/runtime/components/KDatatable/KDatatable.vue.d.ts +34 -11
  15. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.d.vue.ts +4 -2
  16. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.vue +10 -2
  17. package/dist/runtime/components/KMaskTextbox/KMaskTextbox.vue.d.ts +4 -2
  18. package/dist/runtime/components/KPagination/KPagination.d.vue.ts +1 -0
  19. package/dist/runtime/components/KPagination/KPagination.vue +69 -42
  20. package/dist/runtime/components/KPagination/KPagination.vue.d.ts +1 -0
  21. package/dist/runtime/components/KRadiobox/KRadiobox.d.vue.ts +18 -0
  22. package/dist/runtime/components/KRadiobox/KRadiobox.vue +138 -0
  23. package/dist/runtime/components/KRadiobox/KRadiobox.vue.d.ts +18 -0
  24. package/dist/runtime/components/KRangeSlider/KRangeSlider.vue +11 -1
  25. package/dist/runtime/components/KSlider/KSlider.vue +10 -1
  26. package/dist/runtime/components/KTextarea/KTextarea.d.vue.ts +2 -0
  27. package/dist/runtime/components/KTextarea/KTextarea.vue +54 -4
  28. package/dist/runtime/components/KTextarea/KTextarea.vue.d.ts +2 -0
  29. package/dist/runtime/components/KTextbox/KTextbox.vue +4 -2
  30. package/dist/runtime/plugin.js +1 -0
  31. package/package.json +7 -2
package/README.md CHANGED
@@ -94,14 +94,14 @@ Katlux is a zero-configuration Nuxt module. When you install this preset, the co
94
94
 
95
95
  ### Option 1: Using Nuxt CLI (Recommended)
96
96
  ```bash
97
- npx nuxi module add @katlux/preset-modern
97
+ npx nuxi module add @katlux/preset-modern@alpha
98
98
  ```
99
99
  This single command installs the package and adds it to your `nuxt.config.ts`.
100
100
 
101
101
  ### Option 2: Manual Installation
102
102
  1. Install via NPM:
103
103
  ```bash
104
- npm install @katlux/preset-modern
104
+ npm install @katlux/preset-modern@alpha
105
105
  ```
106
106
 
107
107
  2. Register the module in `nuxt.config.ts`:
@@ -115,6 +115,11 @@ export default defineNuxtConfig({
115
115
 
116
116
  That's all! Start using Katlux components like `<KButton>` in your Vue files immediately. No imports required.
117
117
 
118
+ ## Developer Guide
119
+
120
+ For full documentation and repository access:
121
+ - **Developer Guide & Repository**: [https://github.com/katlux-ui/KatluxShowcase](https://github.com/katlux-ui/KatluxShowcase) *(We will open source it soon)*
122
+
118
123
  ## Next Components
119
124
 
120
125
  Coming soon:
@@ -125,7 +130,7 @@ Coming soon:
125
130
  - KPanel
126
131
  - And more...
127
132
 
128
- ## Trademark Policy
133
+ ## License & Trademark Policy
129
134
 
130
135
  The code in this repository is completely free and open-source under the Apache 2.0 License.
131
136
  However, **Katlux™** and the Katlux logo are unregistered trademarks of the Katlux project.
package/dist/module.d.mts CHANGED
@@ -1,3 +1,5 @@
1
- declare const _default: any;
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ declare const _default: _nuxt_schema.NuxtModule<_nuxt_schema.ModuleOptions, _nuxt_schema.ModuleOptions, false>;
2
4
 
3
5
  export { _default as default };
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@katlux/preset-modern",
3
3
  "configKey": "katluxTemplateModern",
4
- "version": "0.1.0-beta.73",
4
+ "version": "0.1.1-alpha.100",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "3.6.1"
@@ -31,6 +31,7 @@
31
31
  --font-color-secondary: var(--neutral-500);
32
32
  --font-color-heading: var(--neutral-900);
33
33
  --font-color-light: #ffffff;
34
+ --input-label-color: var(--font-color-primary);
34
35
  --background-color: #ffffff;
35
36
  --background-color-light: var(--neutral-50);
36
37
  --background-color-medium: var(--neutral-100);
@@ -105,20 +106,24 @@
105
106
  --input-focus-border-color: var(--primary-500);
106
107
  --input-focus-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);
107
108
  --input-height: 48px;
109
+ --input-min-width: 140px;
108
110
  --table-header-bg: var(--neutral-100);
109
111
  --table-header-color: var(--neutral-600);
110
112
  --table-border-color: var(--neutral-200);
111
113
  --table-row-hover: var(--neutral-100);
112
114
  --table-row-selected: #eff6ff;
115
+ --table-row-selected-text: var(--primary-900);
113
116
  --panel-bg-opacity: 0.5;
114
117
  --panel-blur: 16px;
115
118
  --panel-bg-default: var(--neutral-100);
116
119
  --panel-header-bg-default: var(--neutral-200);
117
120
  --panel-footer-bg-default: var(--neutral-100);
118
121
  --checkbox-bg: var(--background-color);
119
- --checkbox-checked-bg: var(--button-gradient-primary);
122
+ --checkbox-checked-bg: var(--primary-500);
120
123
  --checkbox-border-color: var(--neutral-400);
121
124
  --checkbox-border-radius: 4px;
125
+ --component-overlay-bg: rgba(255, 255, 255, 0.75);
126
+ --table-overlay-bg: var(--component-overlay-bg);
122
127
  --modal-overlay-bg: rgba(15, 23, 42, 0.4);
123
128
  --modal-backdrop-blur: 4px;
124
129
  --layout-header-height: 70px;
@@ -31,6 +31,7 @@
31
31
  --font-color-secondary: var(--neutral-500);
32
32
  --font-color-heading: var(--neutral-900);
33
33
  --font-color-light: #ffffff;
34
+ --input-label-color: var(--font-color-primary);
34
35
  --background-color: #ffffff;
35
36
  --background-color-light: var(--neutral-50);
36
37
  --background-color-medium: var(--neutral-100);
@@ -105,20 +106,24 @@
105
106
  --input-focus-border-color: var(--primary-500);
106
107
  --input-focus-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);
107
108
  --input-height: 48px;
109
+ --input-min-width: 140px;
108
110
  --table-header-bg: var(--neutral-100);
109
111
  --table-header-color: var(--neutral-600);
110
112
  --table-border-color: var(--neutral-200);
111
113
  --table-row-hover: var(--neutral-100);
112
114
  --table-row-selected: #eff6ff;
115
+ --table-row-selected-text: var(--primary-900);
113
116
  --panel-bg-opacity: 0.5;
114
117
  --panel-blur: 16px;
115
118
  --panel-bg-default: var(--neutral-100);
116
119
  --panel-header-bg-default: var(--neutral-200);
117
120
  --panel-footer-bg-default: var(--neutral-100);
118
121
  --checkbox-bg: var(--background-color);
119
- --checkbox-checked-bg: var(--button-gradient-primary);
122
+ --checkbox-checked-bg: var(--primary-500);
120
123
  --checkbox-border-color: var(--neutral-400);
121
124
  --checkbox-border-radius: 4px;
125
+ --component-overlay-bg: rgba(255, 255, 255, 0.75);
126
+ --table-overlay-bg: var(--component-overlay-bg);
122
127
  --modal-overlay-bg: rgba(15, 23, 42, 0.4);
123
128
  --modal-backdrop-blur: 4px;
124
129
  --layout-header-height: 70px;
@@ -129,9 +134,10 @@
129
134
  }
130
135
 
131
136
  .k-input-label {
132
- font-size: var(--font-size-xs);
133
- color: var(--font-color-secondary);
134
- margin-bottom: calc(var(--gap-sm) / 2);
137
+ font-size: var(--font-size-sm, 13px);
138
+ color: var(--input-label-color, var(--font-color-primary, currentColor));
139
+ margin-bottom: calc(var(--gap-sm, 8px) / 2);
135
140
  display: block;
136
141
  font-weight: 500;
142
+ line-height: 1.4;
137
143
  }
@@ -4,16 +4,13 @@ type __VLS_Props = {
4
4
  bulkActions: IKDatatableAction[];
5
5
  selectedRows: any[];
6
6
  selectAll: boolean;
7
+ selected?: any;
7
8
  dp: CFlatClientDataProvider;
8
9
  doAction: (action: any) => void;
9
10
  };
10
- type __VLS_ModelProps = {
11
- 'selected'?: any;
12
- };
13
- type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
14
- declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
12
  "update:selected": (value: any) => any;
16
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
14
  "onUpdate:selected"?: ((value: any) => any) | undefined;
18
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
16
  declare const _default: typeof __VLS_export;
@@ -5,47 +5,56 @@
5
5
  template(v-if="bulkActions.length > 3")
6
6
  KCombobox(
7
7
  :dataProvider="dp"
8
- v-model="selected"
8
+ v-model="internalSelected"
9
9
  labelField="label"
10
10
  closeOnSelect
11
- :disabled="selectedRows.length === 0"
12
- placeholder="Select Action"
11
+ :disabled="!selectAll && selectedRows.length === 0"
12
+ :placeholder="t('Select an action')"
13
13
  class="action-select"
14
14
  )
15
15
  KButton(
16
- @click="doAction(selected)"
16
+ @click="doAction(internalSelected)"
17
17
  size="small"
18
- :disabled="selectedRows.length === 0 || selected == undefined"
18
+ :disabled="(!selectAll && selectedRows.length === 0) || internalSelected == undefined"
19
19
  class="execute-btn"
20
- ) Go
20
+ ) {{ t('Apply') }}
21
21
 
22
22
  template(v-else v-for="action in bulkActions" :key="action.label")
23
23
  KTooltip(
24
24
  :text="action.label"
25
- :disabled="!(action.iconOnly || !!action.icon)"
25
+ :disabled="!action.iconOnly"
26
26
  )
27
27
  KButton(
28
28
  @click="doAction(action)"
29
29
  size="small"
30
30
  :type="action.type || 'default'"
31
- :iconOnly="action.iconOnly || !!action.icon"
31
+ :iconOnly="action.iconOnly"
32
+ :disabled="!selectAll && selectedRows.length === 0"
32
33
  class="action-btn"
33
34
  )
34
35
  template(#icon v-if="action.icon")
35
36
  KIcon(:iconname="action.icon" :width="16" :height="16")
36
- template(#default v-if="!action.iconOnly && !action.icon") {{ action.label }}
37
+ template(#default v-if="!action.iconOnly") {{ action.label }}
37
38
  </template>
38
39
 
39
40
  <script setup>
41
+ import { computed } from "vue";
40
42
  import { CFlatClientDataProvider } from "@katlux/providers";
41
- const selected = defineModel("selected", { type: null });
42
- defineProps({
43
+ import { useKatluxI18n } from "#toolkit/composables/useKatluxI18n";
44
+ const { t } = useKatluxI18n();
45
+ const props = defineProps({
43
46
  bulkActions: { type: Array, required: true },
44
47
  selectedRows: { type: Array, required: true },
45
48
  selectAll: { type: Boolean, required: true },
49
+ selected: { type: null, required: false },
46
50
  dp: { type: Object, required: true },
47
51
  doAction: { type: Function, required: true }
48
52
  });
53
+ const emit = defineEmits(["update:selected"]);
54
+ const internalSelected = computed({
55
+ get: () => props.selected,
56
+ set: (val) => emit("update:selected", val)
57
+ });
49
58
  </script>
50
59
 
51
60
  <style scoped>
@@ -58,6 +67,9 @@ defineProps({
58
67
  gap: var(--gap-sm);
59
68
  align-items: center;
60
69
  }
70
+ .k-bulk-actions-modern .action-select {
71
+ min-width: 180px;
72
+ }
61
73
  .k-bulk-actions-modern .action-btn {
62
74
  border-radius: var(--border-radius-sm);
63
75
  font-weight: var(--font-weight-medium);
@@ -4,16 +4,13 @@ type __VLS_Props = {
4
4
  bulkActions: IKDatatableAction[];
5
5
  selectedRows: any[];
6
6
  selectAll: boolean;
7
+ selected?: any;
7
8
  dp: CFlatClientDataProvider;
8
9
  doAction: (action: any) => void;
9
10
  };
10
- type __VLS_ModelProps = {
11
- 'selected'?: any;
12
- };
13
- type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
14
- declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
12
  "update:selected": (value: any) => any;
16
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
14
  "onUpdate:selected"?: ((value: any) => any) | undefined;
18
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
16
  declare const _default: typeof __VLS_export;
@@ -1,15 +1,22 @@
1
1
  type __VLS_Props = {
2
- model: any;
3
- checkboxValue: any;
4
- isDisabled: boolean;
2
+ model?: any;
3
+ modelValue?: any;
4
+ checkboxValue?: any;
5
+ isDisabled?: boolean;
5
6
  label?: string;
6
7
  validation?: 'success' | 'warning' | 'error' | null;
7
8
  validationText?: string;
9
+ idKey?: string;
10
+ indeterminate?: boolean;
8
11
  };
9
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
10
13
  "update:model": (value: any) => any;
14
+ "update:modelValue": (value: any) => any;
15
+ "update:indeterminate": (value: boolean) => any;
11
16
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
17
  "onUpdate:model"?: ((value: any) => any) | undefined;
18
+ "onUpdate:modelValue"?: ((value: any) => any) | undefined;
19
+ "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
13
20
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
21
  declare const _default: typeof __VLS_export;
15
22
  export default _default;
@@ -1,10 +1,16 @@
1
1
  <template lang="pug">
2
2
  .KCheckbox-wrapper
3
- label.KCheckbox.modern-checkbox
4
- input(type="checkbox" v-model="formattedModel" :value="checkboxValue" :disabled="isDisabled")
5
- .checkbox-box(:class="validation ? `is-${validation}` : ''")
3
+ label.KCheckbox.modern-checkbox(
4
+ role="checkbox"
5
+ :aria-checked="props.indeterminate ? 'mixed' : isChecked"
6
+ :aria-disabled="isDisabled"
7
+ tabindex="0"
8
+ @keydown.space.prevent="handleSpace"
9
+ )
10
+ input(ref="inputRef" type="checkbox" :checked="isChecked" :indeterminate.prop="props.indeterminate" :value="checkboxValue" :disabled="isDisabled" tabindex="-1" @change="handleSpace")
11
+ .checkbox-box(:class="[validation ? `is-${validation}` : '', { 'is-indeterminate': props.indeterminate }]")
6
12
  .checkbox-checkmark
7
- KIcon.icon(iconname="check")
13
+ KIcon.icon(:iconname="props.indeterminate ? 'minus' : 'check'")
8
14
  .checkbox-label(v-if="$slots.label || $slots.default || label")
9
15
  slot(name="label")
10
16
  slot
@@ -13,20 +19,82 @@
13
19
  </template>
14
20
 
15
21
  <script setup>
16
- import { computed } from "vue";
22
+ import { ref, computed, watch } from "vue";
17
23
  const props = defineProps({
18
- model: { type: null, required: true },
19
- checkboxValue: { type: null, required: true },
20
- isDisabled: { type: Boolean, required: true },
24
+ model: { type: null, required: false },
25
+ modelValue: { type: null, required: false },
26
+ checkboxValue: { type: null, required: false },
27
+ isDisabled: { type: Boolean, required: false },
21
28
  label: { type: String, required: false },
22
29
  validation: { type: [String, null], required: false },
23
- validationText: { type: String, required: false }
30
+ validationText: { type: String, required: false },
31
+ idKey: { type: String, required: false },
32
+ indeterminate: { type: Boolean, required: false }
24
33
  });
25
- const emit = defineEmits(["update:model"]);
34
+ const emit = defineEmits(["update:model", "update:modelValue", "update:indeterminate"]);
26
35
  const formattedModel = computed({
27
- get: () => props.model,
28
- set: (value) => emit("update:model", value)
36
+ get: () => props.modelValue !== void 0 ? props.modelValue : props.model,
37
+ set: (value) => {
38
+ emit("update:model", value);
39
+ emit("update:modelValue", value);
40
+ }
41
+ });
42
+ const inputRef = ref(null);
43
+ watch(() => props.indeterminate, (val) => {
44
+ if (inputRef.value) {
45
+ inputRef.value.indeterminate = !!val;
46
+ }
47
+ }, { immediate: true, flush: "post" });
48
+ const getId = (item) => {
49
+ if (item && typeof item === "object") {
50
+ const key = props.idKey;
51
+ if (key && item[key] !== void 0 && item[key] !== null) {
52
+ return item[key];
53
+ }
54
+ return item.id ?? item._id ?? item.key ?? item.value;
55
+ }
56
+ return item;
57
+ };
58
+ const findModelIndex = (arr, value) => {
59
+ const refIdx = arr.indexOf(value);
60
+ if (refIdx > -1) return refIdx;
61
+ const targetId = getId(value);
62
+ if (targetId !== void 0 && targetId !== null) {
63
+ return arr.findIndex((item) => {
64
+ const itemId = getId(item);
65
+ return itemId !== void 0 && itemId !== null && itemId === targetId;
66
+ });
67
+ }
68
+ return -1;
69
+ };
70
+ const isChecked = computed(() => {
71
+ if (Array.isArray(formattedModel.value)) {
72
+ return findModelIndex(formattedModel.value, props.checkboxValue) > -1;
73
+ }
74
+ return !!formattedModel.value;
29
75
  });
76
+ const handleSpace = () => {
77
+ if (props.isDisabled) return;
78
+ if (props.indeterminate) {
79
+ emit("update:indeterminate", false);
80
+ }
81
+ if (Array.isArray(formattedModel.value)) {
82
+ const idx = findModelIndex(formattedModel.value, props.checkboxValue);
83
+ if (idx > -1) {
84
+ const updated = [...formattedModel.value];
85
+ updated.splice(idx, 1);
86
+ formattedModel.value = updated;
87
+ } else {
88
+ formattedModel.value = [...formattedModel.value, props.checkboxValue];
89
+ }
90
+ } else {
91
+ if (props.indeterminate) {
92
+ formattedModel.value = true;
93
+ } else {
94
+ formattedModel.value = !formattedModel.value;
95
+ }
96
+ }
97
+ };
30
98
  </script>
31
99
 
32
100
  <style scoped>
@@ -37,13 +105,20 @@ const formattedModel = computed({
37
105
  cursor: pointer;
38
106
  user-select: none;
39
107
  transition: all var(--transition-fast);
108
+ width: fit-content;
40
109
  }
41
110
  .KCheckbox.modern-checkbox:hover .checkbox-box {
42
111
  border-color: var(--primary-500);
43
112
  box-shadow: var(--input-focus-shadow);
44
113
  }
45
114
  .KCheckbox.modern-checkbox input {
46
- display: none;
115
+ position: absolute;
116
+ opacity: 0;
117
+ width: 1px;
118
+ height: 1px;
119
+ margin: -1px;
120
+ overflow: hidden;
121
+ clip: rect(0, 0, 0, 0);
47
122
  }
48
123
  .KCheckbox.modern-checkbox .checkbox-box {
49
124
  position: relative;
@@ -83,14 +158,20 @@ const formattedModel = computed({
83
158
  color: var(--font-color-primary);
84
159
  line-height: 1.5;
85
160
  }
86
- .KCheckbox.modern-checkbox input:checked + .checkbox-box {
161
+ .KCheckbox.modern-checkbox input:checked + .checkbox-box,
162
+ .KCheckbox.modern-checkbox input:indeterminate + .checkbox-box,
163
+ .KCheckbox.modern-checkbox .checkbox-box.is-indeterminate {
87
164
  border-color: var(--primary-500);
88
165
  }
89
- .KCheckbox.modern-checkbox input:checked + .checkbox-box::before {
166
+ .KCheckbox.modern-checkbox input:checked + .checkbox-box::before,
167
+ .KCheckbox.modern-checkbox input:indeterminate + .checkbox-box::before,
168
+ .KCheckbox.modern-checkbox .checkbox-box.is-indeterminate::before {
90
169
  opacity: 1;
91
170
  transform: scale(1);
92
171
  }
93
- .KCheckbox.modern-checkbox input:checked + .checkbox-box .checkbox-checkmark .icon {
172
+ .KCheckbox.modern-checkbox input:checked + .checkbox-box .checkbox-checkmark .icon,
173
+ .KCheckbox.modern-checkbox input:indeterminate + .checkbox-box .checkbox-checkmark .icon,
174
+ .KCheckbox.modern-checkbox .checkbox-box.is-indeterminate .checkbox-checkmark .icon {
94
175
  display: block;
95
176
  }
96
177
  .KCheckbox.modern-checkbox input:disabled + .checkbox-box {
@@ -1,15 +1,22 @@
1
1
  type __VLS_Props = {
2
- model: any;
3
- checkboxValue: any;
4
- isDisabled: boolean;
2
+ model?: any;
3
+ modelValue?: any;
4
+ checkboxValue?: any;
5
+ isDisabled?: boolean;
5
6
  label?: string;
6
7
  validation?: 'success' | 'warning' | 'error' | null;
7
8
  validationText?: string;
9
+ idKey?: string;
10
+ indeterminate?: boolean;
8
11
  };
9
12
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
10
13
  "update:model": (value: any) => any;
14
+ "update:modelValue": (value: any) => any;
15
+ "update:indeterminate": (value: boolean) => any;
11
16
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
17
  "onUpdate:model"?: ((value: any) => any) | undefined;
18
+ "onUpdate:modelValue"?: ((value: any) => any) | undefined;
19
+ "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
13
20
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
21
  declare const _default: typeof __VLS_export;
15
22
  export default _default;
@@ -2,27 +2,50 @@ import { ADataProvider } from '@katlux/providers';
2
2
  import type { IKDatatableAction } from '@katlux/providers';
3
3
  type __VLS_Props = {
4
4
  dataProvider: ADataProvider;
5
- visibleFields: Array<string> | null;
6
- rowActions: Array<IKDatatableAction>;
7
- bulkActions: Array<IKDatatableAction>;
5
+ visibleFields?: Array<string> | null;
6
+ rowActions?: Array<IKDatatableAction>;
7
+ bulkActions?: Array<IKDatatableAction>;
8
+ selectedRows?: any[];
9
+ selectAll?: boolean;
10
+ currentPage?: number;
11
+ pageSize?: number;
8
12
  cellSlots?: Record<string, any>;
9
13
  headerSlots?: Record<string, any>;
10
14
  columnHeaders?: Record<string, string>;
11
15
  columnWidths?: Record<string, string>;
12
16
  emptyStateText?: string;
13
17
  emptyFilterStateText?: string;
18
+ virtualScroll?: boolean;
19
+ itemHeight?: number;
20
+ viewportHeight?: number;
21
+ buffer?: number;
14
22
  };
15
- type __VLS_ModelProps = {
16
- 'selectedRows'?: any[];
17
- 'selectAll'?: boolean;
18
- };
19
- type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
20
- declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
23
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
21
24
  "update:selectedRows": (value: any[]) => any;
22
25
  "update:selectAll": (value: boolean) => any;
23
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
26
+ "update:currentPage": (value: number) => any;
27
+ "update:pageSize": (value: number) => any;
28
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
24
29
  "onUpdate:selectedRows"?: ((value: any[]) => any) | undefined;
25
30
  "onUpdate:selectAll"?: ((value: boolean) => any) | undefined;
26
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
+ "onUpdate:currentPage"?: ((value: number) => any) | undefined;
32
+ "onUpdate:pageSize"?: ((value: number) => any) | undefined;
33
+ }>, {
34
+ selectedRows: any[];
35
+ selectAll: boolean;
36
+ buffer: number;
37
+ bulkActions: Array<IKDatatableAction>;
38
+ visibleFields: Array<string> | null;
39
+ rowActions: Array<IKDatatableAction>;
40
+ cellSlots: Record<string, any>;
41
+ headerSlots: Record<string, any>;
42
+ columnHeaders: Record<string, string>;
43
+ columnWidths: Record<string, string>;
44
+ emptyStateText: string;
45
+ emptyFilterStateText: string;
46
+ virtualScroll: boolean;
47
+ itemHeight: number;
48
+ viewportHeight: number;
49
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
50
  declare const _default: typeof __VLS_export;
28
51
  export default _default;