nuxt-ui-tools 0.1.0 → 0.1.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/module.d.mts +4 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +30 -15
- package/dist/runtime/form/components/actions/FormActions.d.vue.ts +0 -2
- package/dist/runtime/form/components/actions/FormActions.vue +5 -8
- package/dist/runtime/form/components/actions/FormActions.vue.d.ts +0 -2
- package/dist/runtime/form/components/layout/DrawerLayout.vue +5 -1
- package/dist/runtime/form/components/layout/ModalLayout.vue +5 -1
- package/dist/runtime/form/components/renderer/FormCompositeControl.d.vue.ts +15 -0
- package/dist/runtime/form/components/renderer/FormCompositeControl.vue +13 -0
- package/dist/runtime/form/components/renderer/FormCompositeControl.vue.d.ts +15 -0
- package/dist/runtime/form/components/renderer/FormFieldRenderer.d.vue.ts +1 -0
- package/dist/runtime/form/components/renderer/FormFieldRenderer.vue +19 -3
- package/dist/runtime/form/components/renderer/FormFieldRenderer.vue.d.ts +1 -0
- package/dist/runtime/form/components/renderer/FormFieldShell.d.vue.ts +4 -4
- package/dist/runtime/form/components/renderer/FormFieldShell.vue +15 -1
- package/dist/runtime/form/components/renderer/FormFieldShell.vue.d.ts +4 -4
- package/dist/runtime/form/components/root/Form.d.vue.ts +2 -2
- package/dist/runtime/form/components/root/Form.vue +5 -3
- package/dist/runtime/form/components/root/Form.vue.d.ts +2 -2
- package/dist/runtime/form/composables/use-field-control.d.ts +1 -1
- package/dist/runtime/form/composables/use-field-control.js +4 -0
- package/dist/runtime/form/composables/use-field-options.d.ts +1 -1
- package/dist/runtime/form/composables/use-field-options.js +75 -31
- package/dist/runtime/form/composables/use-form-field-chrome.d.ts +3 -0
- package/dist/runtime/form/composables/use-form-field-chrome.js +9 -0
- package/dist/runtime/form/composables/use-form-runtime.js +17 -5
- package/dist/runtime/form/fields/array-list/component.vue +4 -1
- package/dist/runtime/form/fields/auto-complete/component.vue +23 -16
- package/dist/runtime/form/fields/checkbox-card/component.vue +28 -29
- package/dist/runtime/form/fields/checkbox-group/component.vue +28 -29
- package/dist/runtime/form/fields/color-picker/component.vue +4 -2
- package/dist/runtime/form/fields/date-family/component.vue +9 -4
- package/dist/runtime/form/fields/hierarchy/SelectionCheckbox.d.vue.ts +13 -0
- package/dist/runtime/form/fields/hierarchy/SelectionCheckbox.vue +24 -0
- package/dist/runtime/form/fields/hierarchy/SelectionCheckbox.vue.d.ts +13 -0
- package/dist/runtime/form/fields/hierarchy/SelectionRadio.d.vue.ts +14 -0
- package/dist/runtime/form/fields/hierarchy/SelectionRadio.vue +27 -0
- package/dist/runtime/form/fields/hierarchy/SelectionRadio.vue.d.ts +14 -0
- package/dist/runtime/form/fields/hierarchy/component.vue +257 -142
- package/dist/runtime/form/fields/hierarchy/utils.d.ts +9 -0
- package/dist/runtime/form/fields/hierarchy/utils.js +32 -0
- package/dist/runtime/form/fields/input-group/component.vue +7 -30
- package/dist/runtime/form/fields/matrix/component.vue +9 -3
- package/dist/runtime/form/fields/phone-number/component.vue +7 -2
- package/dist/runtime/form/fields/rating/component.vue +25 -2
- package/dist/runtime/form/fields/select/component.vue +29 -21
- package/dist/runtime/form/fields/switch-group/component.vue +8 -3
- package/dist/runtime/form/fields/time/component.vue +7 -5
- package/dist/runtime/form/fields/upload/component.vue +5 -3
- package/dist/runtime/form/types/api.d.ts +9 -3
- package/dist/runtime/form/types/field-base.d.ts +3 -1
- package/dist/runtime/form/types/runtime.d.ts +2 -0
- package/dist/runtime/form/types/ui.d.ts +1 -0
- package/dist/runtime/form/utils/api.js +3 -0
- package/dist/runtime/form/utils/options.d.ts +11 -2
- package/dist/runtime/form/utils/options.js +57 -9
- package/dist/runtime/form/utils/state.js +10 -2
- package/dist/runtime/i18n/locales/en.js +38 -0
- package/dist/runtime/i18n/locales/fr.js +38 -0
- package/dist/runtime/i18n/types.d.ts +38 -0
- package/dist/runtime/i18n/use-locale.d.ts +2 -2
- package/dist/runtime/i18n/use-locale.js +3 -3
- package/dist/runtime/spreadsheet/components/layout/SpreadsheetImportFooter.d.vue.ts +2 -2
- package/dist/runtime/spreadsheet/components/layout/SpreadsheetImportFooter.vue.d.ts +2 -2
- package/dist/runtime/spreadsheet/components/steps/review/SpreadsheetReviewInspection.d.vue.ts +2 -2
- package/dist/runtime/spreadsheet/components/steps/review/SpreadsheetReviewInspection.vue.d.ts +2 -2
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +15 -15
- package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +2 -2
- package/dist/runtime/spreadsheet/schema/normalize.d.ts +1 -1
- package/dist/runtime/spreadsheet/utils/references/sources.d.ts +1 -1
- package/dist/runtime/table/components/DataList.d.vue.ts +2 -0
- package/dist/runtime/table/components/DataList.vue.d.ts +2 -0
- package/dist/runtime/table/components/actions/RowActions.d.vue.ts +4 -2
- package/dist/runtime/table/components/actions/RowActions.vue +2 -0
- package/dist/runtime/table/components/actions/RowActions.vue.d.ts +4 -2
- package/dist/runtime/table/components/data-list/DataListAddFilter.d.vue.ts +5 -3
- package/dist/runtime/table/components/data-list/DataListAddFilter.vue +6 -1
- package/dist/runtime/table/components/data-list/DataListAddFilter.vue.d.ts +5 -3
- package/dist/runtime/table/components/data-list/DataListContent.d.vue.ts +24 -17
- package/dist/runtime/table/components/data-list/DataListContent.vue +70 -17
- package/dist/runtime/table/components/data-list/DataListContent.vue.d.ts +24 -17
- package/dist/runtime/table/components/data-list/DataListDefault.d.vue.ts +2 -0
- package/dist/runtime/table/components/data-list/DataListDefault.vue.d.ts +2 -0
- package/dist/runtime/table/components/data-list/DataListFilterTags.d.vue.ts +2 -0
- package/dist/runtime/table/components/data-list/DataListFilterTags.vue.d.ts +2 -0
- package/dist/runtime/table/components/data-list/DataListInfiniteLoader.d.vue.ts +1 -1
- package/dist/runtime/table/components/data-list/DataListInfiniteLoader.vue.d.ts +1 -1
- package/dist/runtime/table/components/data-list/DataListLayoutSwitch.vue +17 -11
- package/dist/runtime/table/components/data-list/DataListPagination.d.vue.ts +1 -1
- package/dist/runtime/table/components/data-list/DataListPagination.vue.d.ts +1 -1
- package/dist/runtime/table/components/data-list/DataListRoot.vue +2 -46
- package/dist/runtime/table/components/data-list/DataListSortMenu.d.vue.ts +1 -1
- package/dist/runtime/table/components/data-list/DataListSortMenu.vue +6 -0
- package/dist/runtime/table/components/data-list/DataListSortMenu.vue.d.ts +1 -1
- package/dist/runtime/table/components/filters/shared/DynamicFilterPicker.d.vue.ts +5 -0
- package/dist/runtime/table/components/filters/shared/DynamicFilterPicker.vue +182 -59
- package/dist/runtime/table/components/filters/shared/DynamicFilterPicker.vue.d.ts +5 -0
- package/dist/runtime/table/components/filters/shared/FilterMatchModeButton.d.vue.ts +3 -1
- package/dist/runtime/table/components/filters/shared/FilterMatchModeButton.vue +29 -5
- package/dist/runtime/table/components/filters/shared/FilterMatchModeButton.vue.d.ts +3 -1
- package/dist/runtime/table/components/filters/shared/FilterMatchModePanel.d.vue.ts +17 -0
- package/dist/runtime/table/components/filters/shared/FilterMatchModePanel.vue +47 -0
- package/dist/runtime/table/components/filters/shared/FilterMatchModePanel.vue.d.ts +17 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionMultipleList.d.vue.ts +3 -1
- package/dist/runtime/table/components/filters/shared/FilterOptionMultipleList.vue +12 -3
- package/dist/runtime/table/components/filters/shared/FilterOptionMultipleList.vue.d.ts +3 -1
- package/dist/runtime/table/components/filters/shared/FilterOptionPickerContent.d.vue.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionPickerContent.vue +11 -1
- package/dist/runtime/table/components/filters/shared/FilterOptionPickerContent.vue.d.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionRow.d.vue.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionRow.vue +48 -9
- package/dist/runtime/table/components/filters/shared/FilterOptionRow.vue.d.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionSingleList.d.vue.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionSingleList.vue +35 -9
- package/dist/runtime/table/components/filters/shared/FilterOptionSingleList.vue.d.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionTreeContent.d.vue.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterOptionTreeContent.vue +77 -20
- package/dist/runtime/table/components/filters/shared/FilterOptionTreeContent.vue.d.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterPopoverShell.d.vue.ts +27 -0
- package/dist/runtime/table/components/filters/shared/FilterPopoverShell.vue +36 -0
- package/dist/runtime/table/components/filters/shared/FilterPopoverShell.vue.d.ts +27 -0
- package/dist/runtime/table/components/filters/shared/FilterSearchablePanel.d.vue.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterSearchablePanel.vue +40 -10
- package/dist/runtime/table/components/filters/shared/FilterSearchablePanel.vue.d.ts +3 -0
- package/dist/runtime/table/components/filters/shared/FilterStageTransition.d.vue.ts +23 -0
- package/dist/runtime/table/components/filters/shared/FilterStageTransition.vue +21 -0
- package/dist/runtime/table/components/filters/shared/FilterStageTransition.vue.d.ts +23 -0
- package/dist/runtime/table/components/filters/shared/FilterTriggerTag.d.vue.ts +3 -2
- package/dist/runtime/table/components/filters/shared/FilterTriggerTag.vue +26 -25
- package/dist/runtime/table/components/filters/shared/FilterTriggerTag.vue.d.ts +3 -2
- package/dist/runtime/table/components/filters/tags/BooleanFilterTag.d.vue.ts +1 -1
- package/dist/runtime/table/components/filters/tags/BooleanFilterTag.vue +75 -22
- package/dist/runtime/table/components/filters/tags/BooleanFilterTag.vue.d.ts +1 -1
- package/dist/runtime/table/components/filters/tags/DateFilterTag.d.vue.ts +3 -1
- package/dist/runtime/table/components/filters/tags/DateFilterTag.vue +254 -160
- package/dist/runtime/table/components/filters/tags/DateFilterTag.vue.d.ts +3 -1
- package/dist/runtime/table/components/filters/tags/FilterTagsBar.d.vue.ts +7 -6
- package/dist/runtime/table/components/filters/tags/FilterTagsBar.vue +12 -27
- package/dist/runtime/table/components/filters/tags/FilterTagsBar.vue.d.ts +7 -6
- package/dist/runtime/table/components/filters/tags/NumberFilterTag.d.vue.ts +3 -2
- package/dist/runtime/table/components/filters/tags/NumberFilterTag.vue +192 -106
- package/dist/runtime/table/components/filters/tags/NumberFilterTag.vue.d.ts +3 -2
- package/dist/runtime/table/components/filters/tags/OptionFilterTag.d.vue.ts +3 -2
- package/dist/runtime/table/components/filters/tags/OptionFilterTag.vue +110 -48
- package/dist/runtime/table/components/filters/tags/OptionFilterTag.vue.d.ts +3 -2
- package/dist/runtime/table/components/filters/tags/TextFilterTag.d.vue.ts +3 -2
- package/dist/runtime/table/components/filters/tags/TextFilterTag.vue +120 -57
- package/dist/runtime/table/components/filters/tags/TextFilterTag.vue.d.ts +3 -2
- package/dist/runtime/table/components/grid/GridRenderer.vue +1 -1
- package/dist/runtime/table/components/layout/TableFooter.d.vue.ts +1 -1
- package/dist/runtime/table/components/layout/TableFooter.vue +1 -0
- package/dist/runtime/table/components/layout/TableFooter.vue.d.ts +1 -1
- package/dist/runtime/table/components/table/TableCellEllipsis.d.ts +1 -1
- package/dist/runtime/table/components/table/TableRenderer.vue +24 -12
- package/dist/runtime/table/composables/use-filter-tag-session.d.ts +3 -4
- package/dist/runtime/table/composables/use-filter-tag-session.js +12 -32
- package/dist/runtime/table/composables/use-query-state.d.ts +5 -5
- package/dist/runtime/table/composables/use-query-state.js +7 -32
- package/dist/runtime/table/composables/use-table-api.js +2 -2
- package/dist/runtime/table/composables/use-table-columns.d.ts +4 -14
- package/dist/runtime/table/composables/use-table-filter-presentation.d.ts +0 -3
- package/dist/runtime/table/composables/use-table-filter-presentation.js +0 -9
- package/dist/runtime/table/composables/use-table-filters.js +18 -7
- package/dist/runtime/table/composables/use-table-internals.d.ts +24 -63
- package/dist/runtime/table/composables/use-table-pagination.d.ts +2 -2
- package/dist/runtime/table/composables/use-table-state.d.ts +2 -2
- package/dist/runtime/table/types/actions.d.ts +1 -1
- package/dist/runtime/table/types/data-list.d.ts +41 -8
- package/dist/runtime/table/types/filters.d.ts +4 -0
- package/dist/runtime/table/utils/actions.d.ts +1 -1
- package/dist/runtime/table/utils/columns/menu.d.ts +2 -11
- package/dist/runtime/table/utils/columns/render.d.ts +2 -9
- package/dist/runtime/table/utils/columns/render.js +39 -30
- package/dist/runtime/table/utils/columns/state.d.ts +1 -1
- package/dist/runtime/table/utils/data-list-ui.d.ts +3 -1
- package/dist/runtime/table/utils/data-list-ui.js +45 -0
- package/dist/runtime/table/utils/filters/editor-size.d.ts +11 -0
- package/dist/runtime/table/utils/filters/editor-size.js +45 -0
- package/dist/runtime/table/utils/filters/index.d.ts +1 -1
- package/dist/runtime/table/utils/filters/index.js +1 -1
- package/dist/runtime/table/utils/query-state.d.ts +18 -1
- package/dist/runtime/table/utils/query-state.js +109 -0
- package/package.json +4 -2
- package/dist/runtime/table/utils/filters/operators.d.ts +0 -4
- package/dist/runtime/table/utils/filters/operators.js +0 -6
|
@@ -26,8 +26,40 @@ export interface DataListSearchUi {
|
|
|
26
26
|
trailing?: DataListUiClass;
|
|
27
27
|
trailingIcon?: DataListUiClass;
|
|
28
28
|
}
|
|
29
|
-
/** UI slots rendered by
|
|
30
|
-
export interface
|
|
29
|
+
/** Shared UI slots rendered by a progressive filter editor popover. */
|
|
30
|
+
export interface DataListFilterEditorUi {
|
|
31
|
+
popoverContent?: DataListUiClass;
|
|
32
|
+
operatorContent?: DataListUiClass;
|
|
33
|
+
operatorItem?: DataListUiClass;
|
|
34
|
+
operatorLabel?: DataListUiClass;
|
|
35
|
+
operatorTrigger?: DataListUiClass;
|
|
36
|
+
editor?: DataListUiClass;
|
|
37
|
+
searchHeader?: DataListUiClass;
|
|
38
|
+
search?: DataListUiClass;
|
|
39
|
+
searchInput?: DataListUiClass;
|
|
40
|
+
scrollArea?: DataListUiClass;
|
|
41
|
+
scrollViewport?: DataListUiClass;
|
|
42
|
+
list?: DataListUiClass;
|
|
43
|
+
listDivider?: DataListUiClass;
|
|
44
|
+
option?: DataListUiClass;
|
|
45
|
+
optionCheckbox?: DataListUiClass;
|
|
46
|
+
optionExpander?: DataListUiClass;
|
|
47
|
+
optionSpacer?: DataListUiClass;
|
|
48
|
+
optionIcon?: DataListUiClass;
|
|
49
|
+
optionLabel?: DataListUiClass;
|
|
50
|
+
optionCount?: DataListUiClass;
|
|
51
|
+
empty?: DataListUiClass;
|
|
52
|
+
footer?: DataListUiClass;
|
|
53
|
+
clear?: DataListUiClass;
|
|
54
|
+
apply?: DataListUiClass;
|
|
55
|
+
inputs?: DataListUiClass;
|
|
56
|
+
presets?: DataListUiClass;
|
|
57
|
+
preset?: DataListUiClass;
|
|
58
|
+
calendar?: DataListUiClass;
|
|
59
|
+
slider?: DataListUiClass;
|
|
60
|
+
}
|
|
61
|
+
/** UI slots rendered by filter tags, their editors, and adjacent actions. */
|
|
62
|
+
export interface DataListFilterTagsUi extends DataListFilterEditorUi {
|
|
31
63
|
root?: DataListUiClass;
|
|
32
64
|
trigger?: DataListUiClass;
|
|
33
65
|
label?: DataListUiClass;
|
|
@@ -36,14 +68,10 @@ export interface DataListFilterTagsUi {
|
|
|
36
68
|
addTrigger?: DataListUiClass;
|
|
37
69
|
clearTrigger?: DataListUiClass;
|
|
38
70
|
}
|
|
39
|
-
/** UI slots rendered by the add-filter picker. */
|
|
40
|
-
export interface DataListAddFilterUi {
|
|
71
|
+
/** UI slots rendered by the progressive add-filter picker. */
|
|
72
|
+
export interface DataListAddFilterUi extends DataListFilterEditorUi {
|
|
41
73
|
trigger?: DataListUiClass;
|
|
42
|
-
popoverContent?: DataListUiClass;
|
|
43
74
|
panel?: DataListUiClass;
|
|
44
|
-
option?: DataListUiClass;
|
|
45
|
-
optionIcon?: DataListUiClass;
|
|
46
|
-
optionLabel?: DataListUiClass;
|
|
47
75
|
optionTrailingIcon?: DataListUiClass;
|
|
48
76
|
}
|
|
49
77
|
/** UI slots rendered by the filter slideover. */
|
|
@@ -130,11 +158,15 @@ export interface DataListContentUi {
|
|
|
130
158
|
root?: DataListUiClass;
|
|
131
159
|
error?: DataListUiClass;
|
|
132
160
|
errorBody?: DataListUiClass;
|
|
161
|
+
errorIcon?: DataListUiClass;
|
|
162
|
+
errorCopy?: DataListUiClass;
|
|
133
163
|
errorTitle?: DataListUiClass;
|
|
164
|
+
errorDescription?: DataListUiClass;
|
|
134
165
|
retry?: DataListUiClass;
|
|
135
166
|
}
|
|
136
167
|
/** UI slots rendered by the table mode. Nuxt UI table slots are forwarded unchanged. */
|
|
137
168
|
export interface DataListTableUi {
|
|
169
|
+
wrapper?: DataListUiClass;
|
|
138
170
|
root?: DataListUiClass;
|
|
139
171
|
base?: DataListUiClass;
|
|
140
172
|
caption?: DataListUiClass;
|
|
@@ -157,6 +189,7 @@ export interface DataListGridUi {
|
|
|
157
189
|
canvas?: DataListUiClass;
|
|
158
190
|
row?: DataListUiClass;
|
|
159
191
|
item?: DataListUiClass;
|
|
192
|
+
flowRoot?: DataListUiClass;
|
|
160
193
|
flow?: DataListUiClass;
|
|
161
194
|
loading?: DataListUiClass;
|
|
162
195
|
error?: DataListUiClass;
|
|
@@ -17,6 +17,10 @@ export type TableFilterPreviewMode = 'auto' | 'summary' | 'tags';
|
|
|
17
17
|
export type TableFilterDisplayLocation = 'tag' | 'panel' | 'tag-dynamic';
|
|
18
18
|
export type TableFilterDisplayLocationValue = TableFilterDisplayLocation | string;
|
|
19
19
|
export interface TableFilterBehaviorCommon<TOperator extends TableFilterOperator = TableFilterOperator> {
|
|
20
|
+
/**
|
|
21
|
+
* Effective filter value when the URL has no override for this definition.
|
|
22
|
+
* The default stays active but is omitted from the URL; clearing the filter restores it.
|
|
23
|
+
*/
|
|
20
24
|
defaultValue?: TableQueryStateFilterValue;
|
|
21
25
|
operators?: TOperator[];
|
|
22
26
|
defaultOperator?: TOperator;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DropdownMenuItem } from '@nuxt/ui';
|
|
1
|
+
import type { DropdownMenuItem } from '@nuxt/ui/components/DropdownMenu.vue';
|
|
2
2
|
import type { TableInjectedRowActionScope } from '../composables/use-table-row-actions.js';
|
|
3
3
|
import type { GenericObject, TableRowAction, TableSchemaView } from '../types/index.js';
|
|
4
4
|
type RowActionSchemaSource = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DropdownMenuItem } from '@nuxt/ui/components/DropdownMenu.vue';
|
|
1
2
|
import type { TableSchemaView } from '../../types/index.js';
|
|
2
3
|
export declare function createColumnMenuItems(options: {
|
|
3
4
|
columnId: string;
|
|
@@ -24,17 +25,7 @@ export declare function createColumnMenuItems(options: {
|
|
|
24
25
|
key: string;
|
|
25
26
|
dir: 'asc' | 'desc';
|
|
26
27
|
} | null) => void;
|
|
27
|
-
}):
|
|
28
|
-
label: string;
|
|
29
|
-
icon: string;
|
|
30
|
-
color: string;
|
|
31
|
-
onSelect: () => void;
|
|
32
|
-
} | {
|
|
33
|
-
label: string;
|
|
34
|
-
icon: string;
|
|
35
|
-
onSelect: () => void;
|
|
36
|
-
color?: undefined;
|
|
37
|
-
})[][];
|
|
28
|
+
}): DropdownMenuItem[][];
|
|
38
29
|
export declare function getColumnHeaderIcon(options: {
|
|
39
30
|
columnId: string;
|
|
40
31
|
getSortState: (options: {
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
/** @jsxImportSource vue */
|
|
2
|
+
import type { DropdownMenuItem } from '@nuxt/ui/components/DropdownMenu.vue';
|
|
2
3
|
import type { VNodeChild } from 'vue';
|
|
3
4
|
import type { GenericObject } from '../../types/index.js';
|
|
4
5
|
import { type SchemaTableColumn, type TableColumnRenderParams, type TableRuntimeColumn, type UseTableColumnsParams } from './types.js';
|
|
5
|
-
type ColumnMenuItem = {
|
|
6
|
-
label?: string;
|
|
7
|
-
icon?: string;
|
|
8
|
-
color?: string;
|
|
9
|
-
class?: string;
|
|
10
|
-
onSelect?: () => void;
|
|
11
|
-
};
|
|
12
6
|
export declare function createSelectionColumn(options: {
|
|
13
7
|
params: UseTableColumnsParams;
|
|
14
8
|
}): {
|
|
@@ -48,7 +42,7 @@ export declare function createDataColumns(options: {
|
|
|
48
42
|
visibleOrderedColumns: TableRuntimeColumn[];
|
|
49
43
|
getMenuItems: (options: {
|
|
50
44
|
columnId: string;
|
|
51
|
-
}) =>
|
|
45
|
+
}) => DropdownMenuItem[][];
|
|
52
46
|
getPinnedState: (options: {
|
|
53
47
|
columnId: string;
|
|
54
48
|
}) => 'left' | 'right' | null;
|
|
@@ -155,4 +149,3 @@ export declare function getColumnCellClass(options: {
|
|
|
155
149
|
export declare function normalizeColumnSize(options: {
|
|
156
150
|
size?: number | string;
|
|
157
151
|
}): number | undefined;
|
|
158
|
-
export {};
|
|
@@ -34,8 +34,7 @@ export function createSelectionColumn(options) {
|
|
|
34
34
|
UCheckbox,
|
|
35
35
|
{
|
|
36
36
|
modelValue: options.params.selection.allSelected.value ? true : options.params.selection.partiallySelected.value ? "indeterminate" : false,
|
|
37
|
-
color: "neutral"
|
|
38
|
-
ui: { base: "!rounded-md", indicator: "!rounded-none" }
|
|
37
|
+
color: "neutral"
|
|
39
38
|
}
|
|
40
39
|
)
|
|
41
40
|
}
|
|
@@ -59,8 +58,7 @@ export function createSelectionColumn(options) {
|
|
|
59
58
|
UCheckbox,
|
|
60
59
|
{
|
|
61
60
|
modelValue: options.params.selection.isRowSelected({ rowId: String(row.id) }),
|
|
62
|
-
color: "neutral"
|
|
63
|
-
ui: { base: "!rounded-md", indicator: "!rounded-none" }
|
|
61
|
+
color: "neutral"
|
|
64
62
|
}
|
|
65
63
|
)
|
|
66
64
|
}
|
|
@@ -114,36 +112,46 @@ export function createDataColumns(options) {
|
|
|
114
112
|
/* @__PURE__ */ jsx(
|
|
115
113
|
UDropdownMenu,
|
|
116
114
|
{
|
|
115
|
+
size: "sm",
|
|
117
116
|
items: options.getMenuItems({ columnId: runtimeColumn.id }),
|
|
118
117
|
content: { align: "start", side: "bottom", sideOffset: 10 },
|
|
119
118
|
modal: false,
|
|
120
119
|
ui: { content: "w-fit p-1 shadow-none" },
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
120
|
+
"v-slots": {
|
|
121
|
+
default: () => /* @__PURE__ */ jsxs(
|
|
122
|
+
"button",
|
|
123
|
+
{
|
|
124
|
+
type: "button",
|
|
125
|
+
class: "inline-flex h-8 min-w-0 max-w-full items-center gap-2 rounded-md px-2.5 text-left text-sm text-default transition-colors hover:bg-elevated",
|
|
126
|
+
children: [
|
|
127
|
+
/* @__PURE__ */ jsxs("div", { class: "flex min-w-0 items-center gap-2.5", children: [
|
|
128
|
+
runtimeColumn.icon ? /* @__PURE__ */ jsx(UIcon, { name: runtimeColumn.icon, class: "size-4 shrink-0 text-muted" }) : null,
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
TableCellEllipsis,
|
|
131
|
+
{
|
|
132
|
+
title: runtimeColumn.label,
|
|
133
|
+
wrapperClass: "min-w-0 max-w-full",
|
|
134
|
+
children: runtimeColumn.label
|
|
135
|
+
}
|
|
136
|
+
)
|
|
137
|
+
] }),
|
|
138
|
+
/* @__PURE__ */ jsx(
|
|
139
|
+
UIcon,
|
|
140
|
+
{
|
|
141
|
+
name: getColumnHeaderIcon({
|
|
142
|
+
columnId: runtimeColumn.id,
|
|
143
|
+
canHide: tableColumn.getCanHide?.(),
|
|
144
|
+
getSortState: options.getSortState,
|
|
145
|
+
getPinnedState: options.getPinnedState
|
|
146
|
+
}),
|
|
147
|
+
class: "size-4 shrink-0 text-muted"
|
|
148
|
+
}
|
|
149
|
+
),
|
|
150
|
+
options.getPinnedState({ columnId: runtimeColumn.id }) ? /* @__PURE__ */ jsx(UIcon, { name: "i-lucide-pin", class: "size-3.5 shrink-0 text-muted" }) : null
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
)
|
|
154
|
+
}
|
|
147
155
|
}
|
|
148
156
|
),
|
|
149
157
|
column.resizable !== false ? /* @__PURE__ */ jsx(
|
|
@@ -324,6 +332,7 @@ function createRowActionsColumn(options) {
|
|
|
324
332
|
return /* @__PURE__ */ jsx(TableRowScopeProvider, { scope, children: /* @__PURE__ */ jsx("div", { class: "flex justify-end", children: /* @__PURE__ */ jsx(
|
|
325
333
|
RowActions,
|
|
326
334
|
{
|
|
335
|
+
size: "sm",
|
|
327
336
|
content: { align: "end", side: "bottom", sideOffset: 8 },
|
|
328
337
|
modal: false,
|
|
329
338
|
portal: true,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type { DataListUiClass } from '../types/index.js';
|
|
1
|
+
import type { DataListDensity, DataListUiClass, DataListUiConfig } from '../types/index.js';
|
|
2
2
|
/** Merges DataList slot classes with the same conflict resolution used by Nuxt UI. */
|
|
3
3
|
export declare function mergeDataListUiClass(defaults?: DataListUiClass, root?: DataListUiClass, local?: DataListUiClass): string;
|
|
4
|
+
/** Merges application and root DataList defaults without losing nested UI slots. */
|
|
5
|
+
export declare function mergeDataListUiConfig(appUi: DataListUiConfig | undefined, componentUi: DataListUiConfig | undefined, density: DataListDensity | undefined): DataListUiConfig;
|
|
@@ -2,3 +2,48 @@ import { twMerge } from "tailwind-merge";
|
|
|
2
2
|
export function mergeDataListUiClass(defaults, root, local) {
|
|
3
3
|
return twMerge(defaults, root, local);
|
|
4
4
|
}
|
|
5
|
+
export function mergeDataListUiConfig(appUi, componentUi, density) {
|
|
6
|
+
return {
|
|
7
|
+
...appUi,
|
|
8
|
+
...componentUi,
|
|
9
|
+
density: density ?? componentUi?.density ?? appUi?.density,
|
|
10
|
+
control: { ...appUi?.control, ...componentUi?.control },
|
|
11
|
+
default: mergeUiConfig(appUi?.default, componentUi?.default),
|
|
12
|
+
search: mergeSearchConfig(appUi?.search, componentUi?.search),
|
|
13
|
+
filterTags: mergePartConfig(appUi?.filterTags, componentUi?.filterTags),
|
|
14
|
+
addFilter: mergePartConfig(appUi?.addFilter, componentUi?.addFilter),
|
|
15
|
+
filterPanel: mergePartConfig(appUi?.filterPanel, componentUi?.filterPanel),
|
|
16
|
+
clearFilters: mergePartConfig(appUi?.clearFilters, componentUi?.clearFilters),
|
|
17
|
+
resultCount: mergeUiConfig(appUi?.resultCount, componentUi?.resultCount),
|
|
18
|
+
columnPanel: mergePartConfig(appUi?.columnPanel, componentUi?.columnPanel),
|
|
19
|
+
sortMenu: mergePartConfig(appUi?.sortMenu, componentUi?.sortMenu),
|
|
20
|
+
layoutSwitch: mergePartConfig(appUi?.layoutSwitch, componentUi?.layoutSwitch),
|
|
21
|
+
refresh: mergePartConfig(appUi?.refresh, componentUi?.refresh),
|
|
22
|
+
content: mergeUiConfig(appUi?.content, componentUi?.content),
|
|
23
|
+
table: mergeUiConfig(appUi?.table, componentUi?.table),
|
|
24
|
+
grid: mergeUiConfig(appUi?.grid, componentUi?.grid),
|
|
25
|
+
pagination: mergePartConfig(appUi?.pagination, componentUi?.pagination),
|
|
26
|
+
infiniteLoader: mergePartConfig(appUi?.infiniteLoader, componentUi?.infiniteLoader)
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function mergeUiConfig(appDefaults, componentConfig) {
|
|
30
|
+
return {
|
|
31
|
+
...appDefaults,
|
|
32
|
+
...componentConfig,
|
|
33
|
+
ui: { ...appDefaults?.ui, ...componentConfig?.ui }
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function mergePartConfig(appDefaults, componentConfig) {
|
|
37
|
+
return {
|
|
38
|
+
...appDefaults,
|
|
39
|
+
...componentConfig,
|
|
40
|
+
ui: { ...appDefaults?.ui, ...componentConfig?.ui }
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function mergeSearchConfig(appDefaults, componentConfig) {
|
|
44
|
+
return {
|
|
45
|
+
...appDefaults,
|
|
46
|
+
...componentConfig,
|
|
47
|
+
ui: { ...appDefaults?.ui, ...componentConfig?.ui }
|
|
48
|
+
};
|
|
49
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DataListControlSize } from '../../types/index.js';
|
|
2
|
+
export declare function resolveFilterEditorSizeClasses(size: DataListControlSize | undefined): {
|
|
3
|
+
editor: string;
|
|
4
|
+
searchHeader: string;
|
|
5
|
+
scrollArea: string;
|
|
6
|
+
option: string;
|
|
7
|
+
optionIcon: string;
|
|
8
|
+
optionLabel: string;
|
|
9
|
+
footer: string;
|
|
10
|
+
empty: string;
|
|
11
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const filterEditorSizeClasses = {
|
|
2
|
+
xs: {
|
|
3
|
+
editor: "w-[min(13rem,calc(100vw-1rem))] min-w-44 max-w-52",
|
|
4
|
+
searchHeader: "p-1",
|
|
5
|
+
scrollArea: "p-1",
|
|
6
|
+
option: "gap-1.5 px-1.5 py-1 text-xs",
|
|
7
|
+
optionIcon: "size-3.5",
|
|
8
|
+
optionLabel: "text-xs",
|
|
9
|
+
footer: "p-1",
|
|
10
|
+
empty: "px-2 py-4 text-xs"
|
|
11
|
+
},
|
|
12
|
+
sm: {
|
|
13
|
+
editor: "w-[min(15rem,calc(100vw-1rem))] min-w-48 max-w-60",
|
|
14
|
+
searchHeader: "p-1.5",
|
|
15
|
+
scrollArea: "p-1",
|
|
16
|
+
option: "gap-2 px-2 py-1.5 text-xs",
|
|
17
|
+
optionIcon: "size-3.5",
|
|
18
|
+
optionLabel: "text-xs",
|
|
19
|
+
footer: "p-1.5",
|
|
20
|
+
empty: "px-2.5 py-5 text-xs"
|
|
21
|
+
},
|
|
22
|
+
md: {
|
|
23
|
+
editor: "w-[min(17rem,calc(100vw-1rem))] min-w-52 max-w-68",
|
|
24
|
+
searchHeader: "p-2",
|
|
25
|
+
scrollArea: "p-2",
|
|
26
|
+
option: "gap-3 px-3 py-2 text-sm",
|
|
27
|
+
optionIcon: "size-4",
|
|
28
|
+
optionLabel: "text-sm",
|
|
29
|
+
footer: "p-2",
|
|
30
|
+
empty: "px-3 py-8 text-sm"
|
|
31
|
+
},
|
|
32
|
+
lg: {
|
|
33
|
+
editor: "w-[min(19rem,calc(100vw-1rem))] min-w-56 max-w-76",
|
|
34
|
+
searchHeader: "p-2.5",
|
|
35
|
+
scrollArea: "p-2.5",
|
|
36
|
+
option: "gap-3 px-3.5 py-2.5 text-sm",
|
|
37
|
+
optionIcon: "size-4.5",
|
|
38
|
+
optionLabel: "text-sm",
|
|
39
|
+
footer: "p-2.5",
|
|
40
|
+
empty: "px-3.5 py-9 text-sm"
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
export function resolveFilterEditorSizeClasses(size) {
|
|
44
|
+
return filterEditorSizeClasses[size ?? "md"];
|
|
45
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { QueryCodec } from '#ui-tools/query-state';
|
|
2
|
-
import type { TableFilterOperator, TableLayout, TableUiFilterDefinition, TableQueryStateFilterDefinition, TableQueryStateFilterValue, TableSchemaView, TableSortingDirection, TablePaginationState, TablePaginationSchema } from '../types/index.js';
|
|
2
|
+
import type { TableFilterOperator, TableLayout, TableQueryStateFilterRule, TableUiFilterDefinition, TableQueryStateFilterDefinition, TableQueryStateFilterValue, TableSchemaView, TableSortingDirection, TablePaginationState, TablePaginationSchema } from '../types/index.js';
|
|
3
3
|
export declare function getPaginationMode(schema: {
|
|
4
4
|
pagination?: TablePaginationSchema;
|
|
5
5
|
}): TablePaginationState['mode'];
|
|
@@ -27,3 +27,20 @@ export declare function createTableFilterValueCodec(definition: TableQueryStateF
|
|
|
27
27
|
export declare function resolveFilterDefaultOperator(definition: TableQueryStateFilterDefinition): TableFilterOperator;
|
|
28
28
|
export declare function resolveFilterSupportedOperators(definition: TableQueryStateFilterDefinition): TableFilterOperator[];
|
|
29
29
|
export declare function normalizeFilterDefinition(definition: TableQueryStateFilterDefinition | TableUiFilterDefinition): TableQueryStateFilterDefinition;
|
|
30
|
+
export declare function resolveTableFilterDefaultRules(definitions: TableUiFilterDefinition[]): TableQueryStateFilterRule[];
|
|
31
|
+
export declare function mergeTableFilterDefaultRules(options: {
|
|
32
|
+
rules: TableQueryStateFilterRule[];
|
|
33
|
+
definitions: TableUiFilterDefinition[];
|
|
34
|
+
}): TableQueryStateFilterRule[];
|
|
35
|
+
export declare function isTableFilterRuleDefault(options: {
|
|
36
|
+
rule: TableQueryStateFilterRule;
|
|
37
|
+
definition: TableUiFilterDefinition;
|
|
38
|
+
}): boolean;
|
|
39
|
+
export declare function parseTableFilterQueryState(options: {
|
|
40
|
+
entries: ReadonlyMap<string, unknown>;
|
|
41
|
+
definitions: TableUiFilterDefinition[];
|
|
42
|
+
}): TableQueryStateFilterRule[];
|
|
43
|
+
export declare function serializeTableFilterQueryState(options: {
|
|
44
|
+
rules: TableQueryStateFilterRule[];
|
|
45
|
+
definitions: TableUiFilterDefinition[];
|
|
46
|
+
}): Map<string, unknown>;
|
|
@@ -160,12 +160,121 @@ export function normalizeFilterDefinition(definition) {
|
|
|
160
160
|
defaultValue
|
|
161
161
|
};
|
|
162
162
|
}
|
|
163
|
+
export function resolveTableFilterDefaultRules(definitions) {
|
|
164
|
+
return definitions.flatMap((definition) => {
|
|
165
|
+
const normalizedDefinition = normalizeFilterDefinition(definition);
|
|
166
|
+
const value = normalizedDefinition.defaultValue;
|
|
167
|
+
if (value === void 0 || !hasFilterValue(value)) {
|
|
168
|
+
return [];
|
|
169
|
+
}
|
|
170
|
+
return [
|
|
171
|
+
{
|
|
172
|
+
key: normalizedDefinition.key,
|
|
173
|
+
operator: resolveFilterDefaultOperator(normalizedDefinition),
|
|
174
|
+
value
|
|
175
|
+
}
|
|
176
|
+
];
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
export function mergeTableFilterDefaultRules(options) {
|
|
180
|
+
const defaults = new Map(
|
|
181
|
+
resolveTableFilterDefaultRules(options.definitions).map((rule) => [rule.key, rule])
|
|
182
|
+
);
|
|
183
|
+
const definitionKeys = new Set(options.definitions.map((definition) => definition.key));
|
|
184
|
+
const merged = options.definitions.flatMap((definition) => {
|
|
185
|
+
const rule = options.rules.find((candidate) => candidate.key === definition.key);
|
|
186
|
+
const defaultRule = defaults.get(definition.key);
|
|
187
|
+
return rule ? [rule] : defaultRule ? [defaultRule] : [];
|
|
188
|
+
});
|
|
189
|
+
return [...merged, ...options.rules.filter((rule) => !definitionKeys.has(rule.key))];
|
|
190
|
+
}
|
|
191
|
+
export function isTableFilterRuleDefault(options) {
|
|
192
|
+
const normalizedDefinition = normalizeFilterDefinition(options.definition);
|
|
193
|
+
const defaultValue = normalizedDefinition.defaultValue;
|
|
194
|
+
return defaultValue !== void 0 && (options.rule.operator ?? resolveFilterDefaultOperator(normalizedDefinition)) === resolveFilterDefaultOperator(normalizedDefinition) && areFilterValuesEqual(options.rule.value, defaultValue);
|
|
195
|
+
}
|
|
196
|
+
export function parseTableFilterQueryState(options) {
|
|
197
|
+
const rules = [];
|
|
198
|
+
for (const filter of options.definitions) {
|
|
199
|
+
const definition = normalizeFilterDefinition(filter);
|
|
200
|
+
const operators = resolveFilterSupportedOperators(definition);
|
|
201
|
+
const defaultOperator = resolveFilterDefaultOperator(definition);
|
|
202
|
+
for (const operator of operators) {
|
|
203
|
+
const urlKey = operator === defaultOperator ? definition.key : `${definition.key}~${operator}`;
|
|
204
|
+
const value = options.entries.get(urlKey);
|
|
205
|
+
if (isTableFilterValue(value)) {
|
|
206
|
+
rules.push({ key: definition.key, operator, value });
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return mergeTableFilterDefaultRules({ rules, definitions: options.definitions });
|
|
212
|
+
}
|
|
213
|
+
export function serializeTableFilterQueryState(options) {
|
|
214
|
+
const result = /* @__PURE__ */ new Map();
|
|
215
|
+
for (const rule of options.rules) {
|
|
216
|
+
const filter = options.definitions.find((definition2) => definition2.key === rule.key);
|
|
217
|
+
if (!filter || isTableFilterRuleDefault({ rule, definition: filter })) continue;
|
|
218
|
+
const definition = normalizeFilterDefinition(filter);
|
|
219
|
+
const operator = rule.operator ?? resolveFilterDefaultOperator(definition);
|
|
220
|
+
const defaultOperator = resolveFilterDefaultOperator(definition);
|
|
221
|
+
const urlKey = operator === defaultOperator ? definition.key : `${definition.key}~${operator}`;
|
|
222
|
+
result.set(urlKey, rule.value);
|
|
223
|
+
}
|
|
224
|
+
return result;
|
|
225
|
+
}
|
|
163
226
|
function isRange(value) {
|
|
164
227
|
if (!value || typeof value !== "object") {
|
|
165
228
|
return false;
|
|
166
229
|
}
|
|
167
230
|
return "from" in value || "to" in value;
|
|
168
231
|
}
|
|
232
|
+
function hasFilterValue(value) {
|
|
233
|
+
if (Array.isArray(value)) return value.length > 0;
|
|
234
|
+
if (typeof value === "string") return value.length > 0;
|
|
235
|
+
if (isRange(value)) return value.from != null || value.to != null;
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
function isTableFilterValue(value) {
|
|
239
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value instanceof Date) {
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
if (Array.isArray(value)) {
|
|
243
|
+
return value.every(
|
|
244
|
+
(item) => typeof item === "string" || typeof item === "number" || typeof item === "boolean"
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
if (!isRange(value)) return false;
|
|
248
|
+
return [value.from, value.to].every(
|
|
249
|
+
(item) => item == null || typeof item === "number" || item instanceof Date
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
function areFilterValuesEqual(left, right) {
|
|
253
|
+
if (Array.isArray(left) || Array.isArray(right)) {
|
|
254
|
+
if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) return false;
|
|
255
|
+
const unmatched = [...right];
|
|
256
|
+
for (const value of left) {
|
|
257
|
+
const index = unmatched.findIndex((candidate) => Object.is(candidate, value));
|
|
258
|
+
if (index === -1) return false;
|
|
259
|
+
unmatched.splice(index, 1);
|
|
260
|
+
}
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
if (left instanceof Date || right instanceof Date) {
|
|
264
|
+
return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
|
|
265
|
+
}
|
|
266
|
+
if (isRange(left) || isRange(right)) {
|
|
267
|
+
if (!isRange(left) || !isRange(right)) return false;
|
|
268
|
+
return areOptionalFilterValuesEqual(left.from, right.from) && areOptionalFilterValuesEqual(left.to, right.to);
|
|
269
|
+
}
|
|
270
|
+
return Object.is(left, right);
|
|
271
|
+
}
|
|
272
|
+
function areOptionalFilterValuesEqual(left, right) {
|
|
273
|
+
if (left instanceof Date || right instanceof Date) {
|
|
274
|
+
return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
|
|
275
|
+
}
|
|
276
|
+
return Object.is(left, right);
|
|
277
|
+
}
|
|
169
278
|
function isMinMaxNumberRange(value) {
|
|
170
279
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
171
280
|
return false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-ui-tools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Nuxt module and runtime toolkit for UI-heavy Nuxt applications",
|
|
5
5
|
"homepage": "https://github.com/ChronicStone/nuxt-ui-tools#readme",
|
|
6
6
|
"bugs": "https://github.com/ChronicStone/nuxt-ui-tools/issues",
|
|
@@ -130,10 +130,10 @@
|
|
|
130
130
|
"dependencies": {
|
|
131
131
|
"@internationalized/date": "^3.12.0",
|
|
132
132
|
"@nuxt/kit": "^4.4.2",
|
|
133
|
-
"@nuxt/ui": "^4.5.1",
|
|
134
133
|
"@tanstack/pacer": "0.19.0",
|
|
135
134
|
"@tanstack/vue-virtual": "3.13.23",
|
|
136
135
|
"@vueuse/core": "14.2.1",
|
|
136
|
+
"cookiejs": "2.1.3",
|
|
137
137
|
"libphonenumber-js": "1.13.1",
|
|
138
138
|
"motion-v": "2.0.1",
|
|
139
139
|
"nuxt-viewport": "2.4.0",
|
|
@@ -142,6 +142,7 @@
|
|
|
142
142
|
"devDependencies": {
|
|
143
143
|
"@nuxt/module-builder": "^1.0.2",
|
|
144
144
|
"@nuxt/schema": "^4.4.2",
|
|
145
|
+
"@nuxt/ui": "^4.5.1",
|
|
145
146
|
"@types/node": "25.4.0",
|
|
146
147
|
"changelogen": "^0.6.2",
|
|
147
148
|
"nuxt": "^4.4.2",
|
|
@@ -153,6 +154,7 @@
|
|
|
153
154
|
"xlsx": "0.18.5"
|
|
154
155
|
},
|
|
155
156
|
"peerDependencies": {
|
|
157
|
+
"@nuxt/ui": ">=4.5.1",
|
|
156
158
|
"@tanstack/vue-query": ">=5.0.0",
|
|
157
159
|
"nuxt": ">=4.4.0",
|
|
158
160
|
"tailwindcss": ">=4.0.0",
|