@groupteknology/vuno 2.0.0 → 3.0.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.
- package/README.md +193 -175
- package/dist/module.json +1 -1
- package/dist/module.mjs +7 -1
- package/dist/runtime/app/assets/css/dialog.css +1 -1
- package/dist/runtime/app/assets/css/main.css +1 -1
- package/dist/runtime/app/assets/css/theme.css +1 -1
- package/dist/runtime/app/assets/css/tokens.css +1 -1
- package/dist/runtime/app/components/Alert/Alert.d.vue.ts +2 -2
- package/dist/runtime/app/components/Alert/Alert.theme.d.ts +7 -6
- package/dist/runtime/app/components/Alert/Alert.theme.js +7 -6
- package/dist/runtime/app/components/Alert/Alert.types.d.ts +10 -0
- package/dist/runtime/app/components/Alert/Alert.vue +17 -8
- package/dist/runtime/app/components/Alert/Alert.vue.d.ts +2 -2
- package/dist/runtime/app/components/App/App.d.vue.ts +3 -19
- package/dist/runtime/app/components/App/App.types.d.ts +4 -0
- package/dist/runtime/app/components/App/App.vue +48 -29
- package/dist/runtime/app/components/App/App.vue.d.ts +3 -19
- package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.vue +2 -3
- package/dist/runtime/app/components/App/internal/Toast/Toast.theme.d.ts +5 -5
- package/dist/runtime/app/components/App/internal/Toast/Toast.theme.js +7 -9
- package/dist/runtime/app/components/App/internal/Toast/Toast.vue +27 -36
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.theme.d.ts +3 -3
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.theme.js +3 -3
- package/dist/runtime/app/components/Avatar/Avatar.d.vue.ts +5 -22
- package/dist/runtime/app/components/Avatar/Avatar.types.d.ts +10 -0
- package/dist/runtime/app/components/Avatar/Avatar.types.js +0 -0
- package/dist/runtime/app/components/Avatar/Avatar.vue.d.ts +5 -22
- package/dist/runtime/app/components/Badge/Badge.d.vue.ts +7 -26
- package/dist/runtime/app/components/Badge/Badge.types.d.ts +12 -0
- package/dist/runtime/app/components/Badge/Badge.types.js +0 -0
- package/dist/runtime/app/components/Badge/Badge.vue.d.ts +7 -26
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.d.vue.ts +7 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.theme.d.ts +15 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.theme.js +16 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.types.d.ts +7 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.types.js +0 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.vue +109 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.vue.d.ts +7 -0
- package/dist/runtime/app/components/Button/Button.d.vue.ts +11 -31
- package/dist/runtime/app/components/Button/Button.theme.d.ts +36 -22
- package/dist/runtime/app/components/Button/Button.theme.js +28 -20
- package/dist/runtime/app/components/Button/Button.types.d.ts +24 -0
- package/dist/runtime/app/components/Button/Button.types.js +0 -0
- package/dist/runtime/app/components/Button/Button.vue +84 -33
- package/dist/runtime/app/components/Button/Button.vue.d.ts +11 -31
- package/dist/runtime/app/components/Card/Card.d.vue.ts +7 -69
- package/dist/runtime/app/components/Card/Card.theme.d.ts +56 -13
- package/dist/runtime/app/components/Card/Card.theme.js +39 -19
- package/dist/runtime/app/components/Card/Card.types.d.ts +12 -0
- package/dist/runtime/app/components/Card/Card.types.js +0 -0
- package/dist/runtime/app/components/Card/Card.vue +17 -11
- package/dist/runtime/app/components/Card/Card.vue.d.ts +7 -69
- package/dist/runtime/app/components/Code/Code.d.vue.ts +3 -13
- package/dist/runtime/app/components/Code/Code.theme.d.ts +1 -1
- package/dist/runtime/app/components/Code/Code.theme.js +1 -1
- package/dist/runtime/app/components/Code/Code.types.d.ts +8 -0
- package/dist/runtime/app/components/Code/Code.types.js +0 -0
- package/dist/runtime/app/components/Code/Code.vue +12 -5
- package/dist/runtime/app/components/Code/Code.vue.d.ts +3 -13
- package/dist/runtime/app/components/Collapsible/Collapsible.d.vue.ts +31 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.theme.d.ts +6 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.theme.js +7 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.types.d.ts +4 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.types.js +0 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.vue +72 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.vue.d.ts +31 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.d.vue.ts +12 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.types.d.ts +13 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.types.js +0 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.vue +55 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.vue.d.ts +12 -0
- package/dist/runtime/app/components/Confirm/Confirm.d.vue.ts +2 -6
- package/dist/runtime/app/components/Confirm/Confirm.types.d.ts +6 -0
- package/dist/runtime/app/components/Confirm/Confirm.types.js +0 -0
- package/dist/runtime/app/components/Confirm/Confirm.vue.d.ts +2 -6
- package/dist/runtime/app/components/Container/Container.d.vue.ts +4 -28
- package/dist/runtime/app/components/Container/Container.types.d.ts +9 -0
- package/dist/runtime/app/components/Container/Container.types.js +0 -0
- package/dist/runtime/app/components/Container/Container.vue +1 -1
- package/dist/runtime/app/components/Container/Container.vue.d.ts +4 -28
- package/dist/runtime/app/components/ControlGroup/ControlGroup.d.vue.ts +5 -14
- package/dist/runtime/app/components/ControlGroup/ControlGroup.types.d.ts +9 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.types.js +0 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.vue.d.ts +5 -14
- package/dist/runtime/app/components/DataTable/DataTable.d.vue.ts +64 -0
- package/dist/runtime/app/components/DataTable/DataTable.theme.d.ts +17 -0
- package/dist/runtime/app/components/DataTable/DataTable.theme.js +19 -0
- package/dist/runtime/app/components/DataTable/DataTable.types.d.ts +13 -0
- package/dist/runtime/app/components/DataTable/DataTable.types.js +0 -0
- package/dist/runtime/app/components/DataTable/DataTable.vue +356 -0
- package/dist/runtime/app/components/DataTable/DataTable.vue.d.ts +64 -0
- package/dist/runtime/app/components/{Table/internal/useVunoTable.d.ts → DataTable/internal/useVunoDataTable.d.ts} +6 -29
- package/dist/runtime/app/components/{Table/internal/useVunoTable.js → DataTable/internal/useVunoDataTable.js} +2 -29
- package/dist/runtime/app/components/FieldArray/FieldArray.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldArray/FieldArray.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.types.js +0 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.vue +12 -5
- package/dist/runtime/app/components/FieldArray/FieldArray.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.types.js +0 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue +1 -1
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.d.vue.ts +4 -3
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.vue.d.ts +4 -3
- package/dist/runtime/app/components/FieldColor/FieldColor.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldColor/FieldColor.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.types.js +0 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.vue +3 -3
- package/dist/runtime/app/components/FieldColor/FieldColor.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.types.js +0 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.vue +3 -3
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldFile/FieldFile.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldFile/FieldFile.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.types.js +0 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.vue +1 -1
- package/dist/runtime/app/components/FieldFile/FieldFile.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.d.vue.ts +4 -3
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.d.ts +1 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.js +1 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.vue +26 -5
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.vue.d.ts +4 -3
- package/dist/runtime/app/components/FieldInput/FieldInput.d.vue.ts +4 -4
- package/dist/runtime/app/components/FieldInput/FieldInput.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.types.js +0 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.vue +3 -3
- package/dist/runtime/app/components/FieldInput/FieldInput.vue.d.ts +4 -4
- package/dist/runtime/app/components/FieldNumber/FieldNumber.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldNumber/FieldNumber.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.types.js +0 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.vue +3 -3
- package/dist/runtime/app/components/FieldNumber/FieldNumber.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldPassword/FieldPassword.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldPassword/FieldPassword.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.types.js +0 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.vue +4 -4
- package/dist/runtime/app/components/FieldPassword/FieldPassword.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldRadio/FieldRadio.d.vue.ts +3 -2
- package/dist/runtime/app/components/FieldRadio/FieldRadio.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.types.js +0 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.vue +1 -1
- package/dist/runtime/app/components/FieldRadio/FieldRadio.vue.d.ts +3 -2
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.d.vue.ts +4 -4
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.vue +6 -2
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.vue.d.ts +4 -4
- package/dist/runtime/app/components/FieldSearch/FieldSearch.d.vue.ts +3 -3
- package/dist/runtime/app/components/FieldSearch/FieldSearch.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.types.js +0 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.vue +4 -4
- package/dist/runtime/app/components/FieldSearch/FieldSearch.vue.d.ts +3 -3
- package/dist/runtime/app/components/FieldSelect/FieldSelect.d.vue.ts +3 -2
- package/dist/runtime/app/components/FieldSelect/FieldSelect.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.types.js +0 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.vue +1 -1
- package/dist/runtime/app/components/FieldSelect/FieldSelect.vue.d.ts +3 -2
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.d.vue.ts +7 -7
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue +16 -6
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue.d.ts +7 -7
- package/dist/runtime/app/components/FieldSlug/FieldSlug.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldSlug/FieldSlug.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.types.js +0 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.vue +4 -4
- package/dist/runtime/app/components/FieldSlug/FieldSlug.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.types.js +0 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.vue +1 -1
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.d.vue.ts +4 -3
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.vue.d.ts +4 -3
- package/dist/runtime/app/components/FieldTags/FieldTags.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldTags/FieldTags.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.types.js +0 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.vue +1 -1
- package/dist/runtime/app/components/FieldTags/FieldTags.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.d.vue.ts +4 -4
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue +16 -6
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue.d.ts +4 -4
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.d.vue.ts +2 -2
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.types.js +0 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue +1 -1
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue.d.ts +2 -2
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.d.vue.ts +4 -3
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.vue +4 -4
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.vue.d.ts +4 -3
- package/dist/runtime/app/components/Form/Form.d.vue.ts +3 -19
- package/dist/runtime/app/components/Form/Form.types.d.ts +8 -0
- package/dist/runtime/app/components/Form/Form.types.js +0 -0
- package/dist/runtime/app/components/Form/Form.vue +3 -3
- package/dist/runtime/app/components/Form/Form.vue.d.ts +3 -19
- package/dist/runtime/app/components/FormField/FormField.d.vue.ts +4 -18
- package/dist/runtime/app/components/FormField/FormField.types.d.ts +14 -0
- package/dist/runtime/app/components/FormField/FormField.types.js +0 -0
- package/dist/runtime/app/components/FormField/FormField.vue +26 -10
- package/dist/runtime/app/components/FormField/FormField.vue.d.ts +4 -18
- package/dist/runtime/app/components/{internal → FormField/internal}/FieldShell/FieldShell.d.vue.ts +2 -3
- package/dist/runtime/app/components/{internal → FormField/internal}/FieldShell/FieldShell.vue.d.ts +2 -3
- package/dist/runtime/app/components/FormModal/FormModal.d.vue.ts +6 -25
- package/dist/runtime/app/components/FormModal/FormModal.types.d.ts +14 -0
- package/dist/runtime/app/components/FormModal/FormModal.types.js +0 -0
- package/dist/runtime/app/components/FormModal/FormModal.vue +12 -2
- package/dist/runtime/app/components/FormModal/FormModal.vue.d.ts +6 -25
- package/dist/runtime/app/components/FormSection/FormSection.d.vue.ts +2 -13
- package/dist/runtime/app/components/FormSection/FormSection.types.d.ts +7 -0
- package/dist/runtime/app/components/FormSection/FormSection.types.js +0 -0
- package/dist/runtime/app/components/FormSection/FormSection.vue +11 -4
- package/dist/runtime/app/components/FormSection/FormSection.vue.d.ts +2 -13
- package/dist/runtime/app/components/Icon/Icon.d.vue.ts +2 -4
- package/dist/runtime/app/components/Icon/Icon.types.d.ts +3 -0
- package/dist/runtime/app/components/Icon/Icon.types.js +0 -0
- package/dist/runtime/app/components/Icon/Icon.vue.d.ts +2 -4
- package/dist/runtime/app/components/Menu/Menu.d.vue.ts +4 -21
- package/dist/runtime/app/components/Menu/Menu.types.d.ts +7 -0
- package/dist/runtime/app/components/Menu/Menu.types.js +0 -0
- package/dist/runtime/app/components/Menu/Menu.vue +18 -110
- package/dist/runtime/app/components/Menu/Menu.vue.d.ts +4 -21
- package/dist/runtime/app/components/Menu/internal/MenuLevel/MenuLevel.d.vue.ts +26 -0
- package/dist/runtime/app/components/Menu/internal/MenuLevel/MenuLevel.vue +167 -0
- package/dist/runtime/app/components/Menu/internal/MenuLevel/MenuLevel.vue.d.ts +26 -0
- package/dist/runtime/app/components/Modal/Modal.d.vue.ts +6 -18
- package/dist/runtime/app/components/Modal/Modal.theme.d.ts +18 -14
- package/dist/runtime/app/components/Modal/Modal.theme.js +17 -21
- package/dist/runtime/app/components/Modal/Modal.types.d.ts +12 -0
- package/dist/runtime/app/components/Modal/Modal.types.js +0 -0
- package/dist/runtime/app/components/Modal/Modal.vue +99 -65
- package/dist/runtime/app/components/Modal/Modal.vue.d.ts +6 -18
- package/dist/runtime/app/components/Navbar/Navbar.d.vue.ts +3 -28
- package/dist/runtime/app/components/Navbar/Navbar.theme.d.ts +2 -3
- package/dist/runtime/app/components/Navbar/Navbar.theme.js +2 -3
- package/dist/runtime/app/components/Navbar/Navbar.types.d.ts +4 -0
- package/dist/runtime/app/components/Navbar/Navbar.types.js +0 -0
- package/dist/runtime/app/components/Navbar/Navbar.vue.d.ts +3 -28
- package/dist/runtime/app/components/NavigationList/NavigationList.d.vue.ts +4 -33
- package/dist/runtime/app/components/NavigationList/NavigationList.keys.d.ts +3 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.keys.js +1 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.types.d.ts +9 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.types.js +0 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.vue +65 -19
- package/dist/runtime/app/components/NavigationList/NavigationList.vue.d.ts +4 -33
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.d.vue.ts +3 -24
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.keys.d.ts +7 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.keys.js +3 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.types.d.ts +10 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.types.js +0 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue +45 -13
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue.d.ts +3 -24
- package/dist/runtime/app/components/NavigationToc/NavigationToc.d.vue.ts +3 -10
- package/dist/runtime/app/components/NavigationToc/NavigationToc.types.d.ts +7 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.types.js +0 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.vue +8 -1
- package/dist/runtime/app/components/NavigationToc/NavigationToc.vue.d.ts +3 -10
- package/dist/runtime/app/components/Pagination/Pagination.d.vue.ts +5 -23
- package/dist/runtime/app/components/Pagination/Pagination.types.d.ts +11 -0
- package/dist/runtime/app/components/Pagination/Pagination.types.js +0 -0
- package/dist/runtime/app/components/Pagination/Pagination.vue +6 -2
- package/dist/runtime/app/components/Pagination/Pagination.vue.d.ts +5 -23
- package/dist/runtime/app/components/Slideover/Slideover.d.vue.ts +4 -13
- package/dist/runtime/app/components/Slideover/Slideover.types.d.ts +12 -0
- package/dist/runtime/app/components/Slideover/Slideover.types.js +0 -0
- package/dist/runtime/app/components/Slideover/Slideover.vue.d.ts +4 -13
- package/dist/runtime/app/components/State/State.d.vue.ts +2 -2
- package/dist/runtime/app/components/State/State.types.d.ts +15 -0
- package/dist/runtime/app/components/State/State.types.js +0 -0
- package/dist/runtime/app/components/State/State.vue +13 -3
- package/dist/runtime/app/components/State/State.vue.d.ts +2 -2
- package/dist/runtime/app/components/Table/Table.d.vue.ts +8 -55
- package/dist/runtime/app/components/Table/Table.theme.d.ts +17 -35
- package/dist/runtime/app/components/Table/Table.theme.js +15 -48
- package/dist/runtime/app/components/Table/Table.types.d.ts +9 -0
- package/dist/runtime/app/components/Table/Table.types.js +0 -0
- package/dist/runtime/app/components/Table/Table.vue +143 -415
- package/dist/runtime/app/components/Table/Table.vue.d.ts +8 -55
- package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.vue +13 -3
- package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.vue +8 -1
- package/dist/runtime/app/components/Table/internal/CellDate/CellDate.vue +8 -1
- package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.vue +8 -1
- package/dist/runtime/app/components/Table/internal/CellText/CellText.vue +8 -1
- package/dist/runtime/app/components/Table/internal/TableCell/TableCell.d.vue.ts +2 -2
- package/dist/runtime/app/components/Table/internal/TableCell/TableCell.vue.d.ts +2 -2
- package/dist/runtime/app/components/Table/internal/column.d.ts +9 -0
- package/dist/runtime/app/components/Table/internal/column.js +15 -0
- package/dist/runtime/app/components/Table/internal/useVunoTableSelection.d.ts +1 -1
- package/dist/runtime/app/components/Tabs/Tabs.d.vue.ts +5 -24
- package/dist/runtime/app/components/Tabs/Tabs.theme.d.ts +15 -6
- package/dist/runtime/app/components/Tabs/Tabs.theme.js +15 -6
- package/dist/runtime/app/components/Tabs/Tabs.types.d.ts +10 -0
- package/dist/runtime/app/components/Tabs/Tabs.types.js +0 -0
- package/dist/runtime/app/components/Tabs/Tabs.vue +91 -17
- package/dist/runtime/app/components/Tabs/Tabs.vue.d.ts +5 -24
- package/dist/runtime/app/components/Text/Text.d.vue.ts +19 -0
- package/dist/runtime/app/components/Text/Text.theme.d.ts +55 -0
- package/dist/runtime/app/components/Text/Text.theme.js +28 -0
- package/dist/runtime/app/components/Text/Text.types.d.ts +9 -0
- package/dist/runtime/app/components/Text/Text.types.js +0 -0
- package/dist/runtime/app/components/Text/Text.vue +37 -0
- package/dist/runtime/app/components/Text/Text.vue.d.ts +19 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.d.vue.ts +17 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.theme.d.ts +5 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.theme.js +6 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.types.d.ts +9 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.types.js +0 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.vue +76 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.vue.d.ts +17 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.d.vue.ts +5 -26
- package/dist/runtime/app/components/Tooltip/Tooltip.types.d.ts +11 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.types.js +0 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.vue +1 -1
- package/dist/runtime/app/components/Tooltip/Tooltip.vue.d.ts +5 -26
- package/dist/runtime/app/composables/internal/useVunoContext.d.ts +5 -0
- package/dist/runtime/app/composables/internal/useVunoContext.js +8 -0
- package/dist/runtime/app/composables/internal/useVunoControlGroup.d.ts +3 -4
- package/dist/runtime/app/composables/internal/useVunoDirection.d.ts +5 -0
- package/dist/runtime/app/composables/internal/useVunoDirection.js +8 -0
- package/dist/runtime/app/composables/internal/useVunoFormContext.d.ts +5 -0
- package/dist/runtime/app/composables/internal/useVunoFormContext.js +8 -0
- package/dist/runtime/app/composables/internal/useVunoOverlayBehind.d.ts +6 -0
- package/dist/runtime/app/composables/internal/useVunoOverlayBehind.js +8 -0
- package/dist/runtime/app/composables/useContext.js +2 -3
- package/dist/runtime/app/composables/useForm.js +2 -3
- package/dist/runtime/app/composables/useTableQuery.d.ts +1 -1
- package/dist/runtime/app/composables/useTheme.js +6 -3
- package/dist/runtime/app/{components/internal/ControlShell/ControlShell.vue.d.ts → primitives/PrimitiveControl/PrimitiveControl.d.vue.ts} +4 -3
- package/dist/runtime/app/{components/internal/ControlShell/ControlShell.theme.d.ts → primitives/PrimitiveControl/PrimitiveControl.theme.d.ts} +1 -1
- package/dist/runtime/app/{components/internal/ControlShell/ControlShell.vue → primitives/PrimitiveControl/PrimitiveControl.vue} +1 -1
- package/dist/runtime/app/{components/internal/ControlShell/ControlShell.d.vue.ts → primitives/PrimitiveControl/PrimitiveControl.vue.d.ts} +4 -3
- package/dist/runtime/app/{components/internal/Input/Input.d.vue.ts → primitives/PrimitiveInput/PrimitiveInput.d.vue.ts} +4 -3
- package/dist/runtime/app/{components/internal/Input/Input.vue → primitives/PrimitiveInput/PrimitiveInput.vue} +4 -4
- package/dist/runtime/app/{components/internal/Input/Input.vue.d.ts → primitives/PrimitiveInput/PrimitiveInput.vue.d.ts} +4 -3
- package/dist/runtime/app/{components/internal/NumberInput/NumberInput.d.vue.ts → primitives/PrimitiveNumberInput/PrimitiveNumberInput.d.vue.ts} +3 -4
- package/dist/runtime/app/{components/internal/NumberInput/NumberInput.theme.d.ts → primitives/PrimitiveNumberInput/PrimitiveNumberInput.theme.d.ts} +3 -0
- package/dist/runtime/app/{components/internal/NumberInput/NumberInput.theme.js → primitives/PrimitiveNumberInput/PrimitiveNumberInput.theme.js} +4 -1
- package/dist/runtime/app/{components/internal/NumberInput/NumberInput.vue → primitives/PrimitiveNumberInput/PrimitiveNumberInput.vue} +7 -5
- package/dist/runtime/app/{components/internal/NumberInput/NumberInput.vue.d.ts → primitives/PrimitiveNumberInput/PrimitiveNumberInput.vue.d.ts} +3 -4
- package/dist/runtime/app/theme/index.d.ts +254 -96
- package/dist/runtime/app/theme/index.js +13 -5
- package/dist/runtime/app/theme/messages.js +1 -0
- package/dist/runtime/app/theme/shared.d.ts +3 -2
- package/dist/runtime/app/theme/shared.js +2 -1
- package/dist/runtime/app/types/app.d.ts +4 -2
- package/dist/runtime/app/types/base.d.ts +5 -23
- package/dist/runtime/app/types/field.d.ts +3 -1
- package/dist/runtime/app/types/form.d.ts +3 -4
- package/dist/runtime/app/types/index.d.ts +55 -7
- package/dist/runtime/app/types/menu.d.ts +22 -0
- package/dist/runtime/app/types/menu.js +0 -0
- package/dist/runtime/app/types/page.d.ts +6 -10
- package/dist/runtime/app/types/slots.d.ts +8 -4
- package/dist/runtime/app/types/table.d.ts +28 -28
- package/dist/runtime/app/types/text.d.ts +6 -0
- package/dist/runtime/app/types/text.js +0 -0
- package/dist/runtime/app/types/theme.d.ts +15 -6
- package/dist/runtime/app/utils/format.js +3 -2
- package/dist/runtime/app/utils/path.js +1 -1
- package/dist/runtime/app/{internal → utils}/slots.d.ts +2 -2
- package/dist/runtime/app/utils/theme.d.ts +8 -41
- package/dist/runtime/app/utils/theme.js +31 -29
- package/package.json +9 -9
- package/dist/runtime/app/components/Page/Page.d.vue.ts +0 -40
- package/dist/runtime/app/components/Page/Page.theme.d.ts +0 -32
- package/dist/runtime/app/components/Page/Page.theme.js +0 -31
- package/dist/runtime/app/components/Page/Page.vue +0 -132
- package/dist/runtime/app/components/Page/Page.vue.d.ts +0 -40
- package/dist/runtime/app/internal/keys.d.ts +0 -43
- package/dist/runtime/app/internal/keys.js +0 -8
- package/dist/runtime/app/types/alert.d.ts +0 -13
- package/dist/runtime/app/types/state.d.ts +0 -35
- /package/dist/runtime/app/{types/alert.js → components/Alert/Alert.types.js} +0 -0
- /package/dist/runtime/app/{types/state.js → components/App/App.types.js} +0 -0
- /package/dist/runtime/app/components/{Table → DataTable}/internal/query.d.ts +0 -0
- /package/dist/runtime/app/components/{Table → DataTable}/internal/query.js +0 -0
- /package/dist/runtime/app/components/{internal → FormField/internal}/FieldShell/FieldShell.vue +0 -0
- /package/dist/runtime/app/{components/internal/ControlShell/ControlShell.theme.js → primitives/PrimitiveControl/PrimitiveControl.theme.js} +0 -0
- /package/dist/runtime/app/{components/internal/Input/Input.theme.d.ts → primitives/PrimitiveInput/PrimitiveInput.theme.d.ts} +0 -0
- /package/dist/runtime/app/{components/internal/Input/Input.theme.js → primitives/PrimitiveInput/PrimitiveInput.theme.js} +0 -0
- /package/dist/runtime/app/{components/internal/NumberInput → primitives/PrimitiveNumberInput}/number.d.ts +0 -0
- /package/dist/runtime/app/{components/internal/NumberInput → primitives/PrimitiveNumberInput}/number.js +0 -0
- /package/dist/runtime/app/{internal → utils}/slots.js +0 -0
|
@@ -1,49 +1,17 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<({
|
|
6
|
-
data: TRow[];
|
|
7
|
-
definition: VunoTableDefinition<TRow>;
|
|
8
|
-
/**
|
|
9
|
-
* Fallo de la consulta. Sin esto, un error se pintaría como «no hay
|
|
10
|
-
* resultados» y la tabla afirmaría que no hay nada cuando en realidad
|
|
11
|
-
* no se pudo saber.
|
|
12
|
-
*/
|
|
13
|
-
failure?: VunoTableFailure;
|
|
14
|
-
loading?: boolean;
|
|
15
|
-
/** La curvatura. Sin valor, la que traiga el tema. */
|
|
16
|
-
radius?: VunoRadius;
|
|
17
|
-
/** Total de filas en servidor, no las de la página actual. */
|
|
18
|
-
total?: number;
|
|
19
|
-
ui?: VunoUi<"table">;
|
|
20
|
-
} & {
|
|
21
|
-
/**
|
|
22
|
-
* Estado de consulta. El consumidor lo observa y devuelve `data` y `total`.
|
|
23
|
-
*
|
|
24
|
-
* Es obligatorio a propósito: la tabla no trae datos por sí misma, así que
|
|
25
|
-
* un estado interno avanzaría de página sin que nadie pidiera la siguiente
|
|
26
|
-
* —el pie diría «11-20» mientras se siguen viendo las filas 1-10—. Dónde
|
|
27
|
-
* vive ese estado lo decide `useTableQuery`: un `ref` normal o la
|
|
28
|
-
* query string.
|
|
29
|
-
*/
|
|
30
|
-
query: VunoTableQuery;
|
|
31
|
-
/** Claves de las filas seleccionadas, no las filas: con paginación en servidor las de otras páginas no están cargadas. */
|
|
1
|
+
import type { VunoTableSort } from '#vuno/types/table';
|
|
2
|
+
import type { VunoTableProps } from './Table.types.js';
|
|
3
|
+
declare const __VLS_export: <TRow extends import("#vuno/types/table").VunoTableRow>(__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
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(VunoTableProps<TRow> & {
|
|
32
5
|
selection?: (number | string)[];
|
|
6
|
+
sort?: null | VunoTableSort;
|
|
33
7
|
}) & {
|
|
34
8
|
onRowClick?: ((row: TRow) => any) | undefined;
|
|
35
|
-
"onUpdate:query"?: ((value: VunoTableQuery) => any) | undefined;
|
|
36
9
|
"onUpdate:selection"?: ((value: (string | number)[]) => any) | undefined;
|
|
10
|
+
"onUpdate:sort"?: ((value: VunoTableSort | null) => any) | undefined;
|
|
37
11
|
}> & (typeof globalThis extends {
|
|
38
12
|
__VLS_PROPS_FALLBACK: infer P;
|
|
39
13
|
} ? P : {});
|
|
40
|
-
expose: (exposed:
|
|
41
|
-
clearFilters: () => void;
|
|
42
|
-
clearQuery: () => void;
|
|
43
|
-
clearSearch: () => void;
|
|
44
|
-
clearSelection: () => void;
|
|
45
|
-
goToPage: (page: number) => void;
|
|
46
|
-
}>) => void;
|
|
14
|
+
expose: (exposed: {}) => void;
|
|
47
15
|
attrs: any;
|
|
48
16
|
slots: {
|
|
49
17
|
[key: `cell-${string}`]: (props: {
|
|
@@ -51,23 +19,8 @@ declare const __VLS_export: <TRow extends VunoTableRow>(__VLS_props: NonNullable
|
|
|
51
19
|
value: unknown;
|
|
52
20
|
}) => unknown;
|
|
53
21
|
empty?: () => unknown;
|
|
54
|
-
'empty-actions'?: () => unknown;
|
|
55
|
-
'no-matches'?: (props: {
|
|
56
|
-
clear: () => void;
|
|
57
|
-
}) => unknown;
|
|
58
|
-
'no-matches-actions'?: (props: {
|
|
59
|
-
clear: () => void;
|
|
60
|
-
}) => unknown;
|
|
61
|
-
selection?: (props: {
|
|
62
|
-
count: number;
|
|
63
|
-
keys: (number | string)[];
|
|
64
|
-
clear: () => void;
|
|
65
|
-
}) => unknown;
|
|
66
|
-
toolbar?: (props: {
|
|
67
|
-
query: VunoTableQuery;
|
|
68
|
-
}) => unknown;
|
|
69
22
|
};
|
|
70
|
-
emit: ((evt: "rowClick", row: TRow) => void) & (((event: "update:
|
|
23
|
+
emit: ((evt: "rowClick", row: TRow) => void) & (((event: "update:selection", value: (string | number)[]) => void) & ((event: "update:sort", value: VunoTableSort | null) => void));
|
|
71
24
|
}>) => import("vue").VNode & {
|
|
72
25
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
73
26
|
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { useIcons, useMessages, useTheme } from "#vuno/composables/useTheme";
|
|
4
4
|
import Icon from "#vuno/components/Icon/Icon.vue";
|
|
5
|
+
import Text from "#vuno/components/Text/Text.vue";
|
|
5
6
|
defineOptions({ name: "VunoCellBoolean" });
|
|
6
7
|
const props = defineProps({
|
|
7
8
|
column: { type: null, required: true },
|
|
@@ -16,10 +17,13 @@ const ui = useTheme("cellBoolean", void 0, () => ({ value: props.value ? "true"
|
|
|
16
17
|
</script>
|
|
17
18
|
|
|
18
19
|
<template>
|
|
19
|
-
<
|
|
20
|
+
<Text
|
|
20
21
|
v-if="label"
|
|
21
22
|
:class="ui.label"
|
|
22
|
-
|
|
23
|
+
tag="span"
|
|
24
|
+
tone="inherit"
|
|
25
|
+
variant="inherit"
|
|
26
|
+
>{{ label }}</Text
|
|
23
27
|
>
|
|
24
28
|
|
|
25
29
|
<template v-else>
|
|
@@ -27,6 +31,12 @@ const ui = useTheme("cellBoolean", void 0, () => ({ value: props.value ? "true"
|
|
|
27
31
|
:class="ui.icon"
|
|
28
32
|
:name="props.value ? icons.booleanTrue : icons.booleanFalse"
|
|
29
33
|
/>
|
|
30
|
-
<
|
|
34
|
+
<Text
|
|
35
|
+
class="sr-only"
|
|
36
|
+
tag="span"
|
|
37
|
+
tone="inherit"
|
|
38
|
+
variant="inherit"
|
|
39
|
+
>{{ accessibleLabel }}</Text
|
|
40
|
+
>
|
|
31
41
|
</template>
|
|
32
42
|
</template>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { useLocale, useTheme } from "#vuno/composables/useTheme";
|
|
3
3
|
import { formatCurrency } from "#vuno/utils/format";
|
|
4
|
+
import Text from "#vuno/components/Text/Text.vue";
|
|
4
5
|
defineOptions({ name: "VunoCellCurrency" });
|
|
5
6
|
const props = defineProps({
|
|
6
7
|
column: { type: null, required: true },
|
|
@@ -12,5 +13,11 @@ const ui = useTheme("cellCurrency");
|
|
|
12
13
|
</script>
|
|
13
14
|
|
|
14
15
|
<template>
|
|
15
|
-
<
|
|
16
|
+
<Text
|
|
17
|
+
:class="ui.base"
|
|
18
|
+
tag="span"
|
|
19
|
+
tone="inherit"
|
|
20
|
+
variant="inherit"
|
|
21
|
+
>{{ formatCurrency(props.value, locale, props.column.currency, props.column.decimals) }}</Text
|
|
22
|
+
>
|
|
16
23
|
</template>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { useLocale, useTheme } from "#vuno/composables/useTheme";
|
|
4
4
|
import { formatDate } from "#vuno/utils/format";
|
|
5
|
+
import Text from "#vuno/components/Text/Text.vue";
|
|
5
6
|
defineOptions({ name: "VunoCellDate" });
|
|
6
7
|
const props = defineProps({
|
|
7
8
|
column: { type: null, required: true },
|
|
@@ -17,5 +18,11 @@ const options = computed(() => ({
|
|
|
17
18
|
</script>
|
|
18
19
|
|
|
19
20
|
<template>
|
|
20
|
-
<
|
|
21
|
+
<Text
|
|
22
|
+
:class="ui.base"
|
|
23
|
+
tag="span"
|
|
24
|
+
tone="inherit"
|
|
25
|
+
variant="inherit"
|
|
26
|
+
>{{ formatDate(props.value, locale, options) }}</Text
|
|
27
|
+
>
|
|
21
28
|
</template>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { useLocale, useTheme } from "#vuno/composables/useTheme";
|
|
3
3
|
import { formatNumber } from "#vuno/utils/format";
|
|
4
|
+
import Text from "#vuno/components/Text/Text.vue";
|
|
4
5
|
defineOptions({ name: "VunoCellNumber" });
|
|
5
6
|
const props = defineProps({
|
|
6
7
|
column: { type: null, required: true },
|
|
@@ -13,5 +14,11 @@ const ui = useTheme("cellNumber");
|
|
|
13
14
|
|
|
14
15
|
<template>
|
|
15
16
|
<!-- `tabular-nums` alinea las cifras en columna; sin ello los dígitos bailan. -->
|
|
16
|
-
<
|
|
17
|
+
<Text
|
|
18
|
+
:class="ui.base"
|
|
19
|
+
tag="span"
|
|
20
|
+
tone="inherit"
|
|
21
|
+
variant="inherit"
|
|
22
|
+
>{{ formatNumber(props.value, locale, props.column.decimals) }}</Text
|
|
23
|
+
>
|
|
17
24
|
</template>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
import Text from "#vuno/components/Text/Text.vue";
|
|
4
5
|
defineOptions({ name: "VunoCellText" });
|
|
5
6
|
const props = defineProps({
|
|
6
7
|
column: { type: null, required: true },
|
|
@@ -12,5 +13,11 @@ const ui = useTheme("cellText", void 0, () => ({ truncate: props.column.truncate
|
|
|
12
13
|
</script>
|
|
13
14
|
|
|
14
15
|
<template>
|
|
15
|
-
<
|
|
16
|
+
<Text
|
|
17
|
+
:class="ui.base"
|
|
18
|
+
tag="span"
|
|
19
|
+
tone="inherit"
|
|
20
|
+
variant="inherit"
|
|
21
|
+
>{{ text }}</Text
|
|
22
|
+
>
|
|
16
23
|
</template>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { VunoTableColumn
|
|
2
|
-
declare const __VLS_export: <TRow extends VunoTableRow>(__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<{
|
|
1
|
+
import type { VunoTableColumn } from '#vuno/types/table';
|
|
2
|
+
declare const __VLS_export: <TRow extends import("#vuno/types/table").VunoTableRow>(__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<{
|
|
3
3
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<{
|
|
4
4
|
column: VunoTableColumn<TRow>;
|
|
5
5
|
row: TRow;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { VunoTableColumn
|
|
2
|
-
declare const __VLS_export: <TRow extends VunoTableRow>(__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<{
|
|
1
|
+
import type { VunoTableColumn } from '#vuno/types/table';
|
|
2
|
+
declare const __VLS_export: <TRow extends import("#vuno/types/table").VunoTableRow>(__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<{
|
|
3
3
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<{
|
|
4
4
|
column: VunoTableColumn<TRow>;
|
|
5
5
|
row: TRow;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import type { VunoTableColumn, VunoTableRow } from '#vuno/types/table';
|
|
2
|
+
export type VunoTableRenderColumn<TRow extends VunoTableRow> = {
|
|
3
|
+
cellClass: string;
|
|
4
|
+
column: VunoTableColumn<TRow>;
|
|
5
|
+
headerClass: string;
|
|
6
|
+
key: string;
|
|
7
|
+
label: string;
|
|
8
|
+
sortable: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function resolveColumns<TRow extends VunoTableRow>(columns: VunoTableColumn<TRow>[]): VunoTableRenderColumn<TRow>[];
|
|
2
11
|
/**
|
|
3
12
|
* El valor que muestra una columna.
|
|
4
13
|
*
|
|
@@ -1,5 +1,20 @@
|
|
|
1
|
+
export function resolveColumns(columns) {
|
|
2
|
+
return columns.map((column) => ({
|
|
3
|
+
cellClass: [alignClass(column.align), column.class].filter(Boolean).join(" "),
|
|
4
|
+
column,
|
|
5
|
+
headerClass: [alignClass(column.align), column.width].filter(Boolean).join(" "),
|
|
6
|
+
key: column.key,
|
|
7
|
+
label: column.type === "actions" ? column.label ?? "" : column.label ?? column.key,
|
|
8
|
+
sortable: column.sortable ?? false
|
|
9
|
+
}));
|
|
10
|
+
}
|
|
1
11
|
import { getPath } from "#vuno/utils/path";
|
|
2
12
|
export function resolveColumnValue(column, row) {
|
|
3
13
|
if (column.value) return column.value(row);
|
|
4
14
|
return getPath(row, column.key);
|
|
5
15
|
}
|
|
16
|
+
function alignClass(align) {
|
|
17
|
+
if (align === "end") return "text-end";
|
|
18
|
+
if (align === "center") return "text-center";
|
|
19
|
+
return "";
|
|
20
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ComputedRef, type Ref } from 'vue';
|
|
2
2
|
import type { VunoTableDefinition, VunoTableRow } from '#vuno/types/table';
|
|
3
|
-
import type
|
|
3
|
+
import { type VunoTableRenderColumn } from './column.js';
|
|
4
4
|
type VunoTableSelectionOptions<TRow extends VunoTableRow> = {
|
|
5
5
|
columns: ComputedRef<VunoTableRenderColumn<TRow>[]>;
|
|
6
6
|
selection: Ref<(number | string)[]>;
|
|
@@ -1,26 +1,6 @@
|
|
|
1
|
-
import type { VunoSize } from '#vuno/types/base';
|
|
2
1
|
import type { VunoTabItem } from '#vuno/types/page';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
* Las pestañas, escritas a mano sobre el patrón de ARIA.
|
|
6
|
-
*
|
|
7
|
-
* No hacía falta una librería: aquí no hay nada que colocar, solo marcado y
|
|
8
|
-
* teclado. Lo que sí hay que hacer bien —y lo que la versión anterior no
|
|
9
|
-
* hacía— es el **tabindex móvil**: una sola pestaña está en el recorrido del
|
|
10
|
-
* tabulador, la activa, y dentro de la lista se anda con las flechas. Es lo
|
|
11
|
-
* que distingue una lista de pestañas de una fila de botones, donde el
|
|
12
|
-
* tabulador para en cada una.
|
|
13
|
-
*
|
|
14
|
-
* La activación es **manual**: las flechas mueven el foco y la selección
|
|
15
|
-
* espera a `Enter` o al espacio. Es una decisión explícita del contrato:
|
|
16
|
-
* cambiarla alteraría cómo se cargan los paneles costosos.
|
|
17
|
-
*/
|
|
18
|
-
type Props = {
|
|
19
|
-
items: VunoTabItem[];
|
|
20
|
-
size?: VunoSize;
|
|
21
|
-
ui?: VunoUi<'tabs'>;
|
|
22
|
-
};
|
|
23
|
-
type __VLS_Props = Props;
|
|
2
|
+
import type { VunoTabsProps } from './Tabs.types.js';
|
|
3
|
+
type __VLS_Props = VunoTabsProps;
|
|
24
4
|
type __VLS_Slots = {
|
|
25
5
|
/** El contenido de cada pestaña; recibe su item. */
|
|
26
6
|
content?: (props: {
|
|
@@ -36,8 +16,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
|
|
|
36
16
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
37
17
|
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
38
18
|
}>, {
|
|
39
|
-
size:
|
|
40
|
-
|
|
19
|
+
size: import("./Tabs.types.js").VunoTabsSize;
|
|
20
|
+
variant: import("#vuno/types/page").VunoTabsVariant;
|
|
21
|
+
ui: import("../../types/slots.js").VunoUi<"tabs">;
|
|
41
22
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
42
23
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
43
24
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
export declare const tabsTheme: Record<"tabs", {
|
|
2
|
-
/**
|
|
3
|
-
* Pestañas con subrayado en la activa. El `-mb-px` hace que ese subrayado
|
|
4
|
-
* se coma la línea de la lista en vez de quedar encima de ella.
|
|
5
|
-
*/
|
|
6
2
|
readonly slots: {
|
|
7
3
|
readonly content: "w-full";
|
|
8
4
|
readonly icon: "size-4 shrink-0";
|
|
9
|
-
readonly
|
|
5
|
+
readonly indicator: "pointer-events-none absolute left-0 z-0 w-(--vuno-tabs-indicator-width) translate-x-(--vuno-tabs-indicator-start) opacity-0 transition-[width,translate,opacity] duration-200 ease-out motion-reduce:transition-none data-[ready=true]:opacity-100";
|
|
6
|
+
readonly list: "relative flex w-fit max-w-full items-center overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden";
|
|
10
7
|
readonly root: "flex w-full flex-col";
|
|
11
|
-
readonly trigger: "-
|
|
8
|
+
readonly trigger: "relative z-1 flex shrink-0 cursor-pointer items-center gap-1.5 font-medium transition-colors [--vuno-accent:var(--color-vuno-primary)] hover:text-vuno-body focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--vuno-accent)";
|
|
12
9
|
};
|
|
13
10
|
readonly variants: {
|
|
14
11
|
readonly size: {
|
|
@@ -28,5 +25,17 @@ export declare const tabsTheme: Record<"tabs", {
|
|
|
28
25
|
readonly trigger: "text-base";
|
|
29
26
|
};
|
|
30
27
|
};
|
|
28
|
+
readonly variant: {
|
|
29
|
+
readonly segmented: {
|
|
30
|
+
readonly indicator: "inset-y-0.5 rounded-md bg-vuno-surface-2 ring-1 ring-vuno-border";
|
|
31
|
+
readonly list: "rounded-lg border border-vuno-border bg-vuno-surface-1 p-0.5";
|
|
32
|
+
readonly trigger: "rounded-md px-2.5 py-1.5 text-vuno-muted data-[state=active]:text-vuno-body";
|
|
33
|
+
};
|
|
34
|
+
readonly underline: {
|
|
35
|
+
readonly indicator: "bottom-0 h-0.5 bg-vuno-primary";
|
|
36
|
+
readonly list: "gap-1 border-b border-vuno-border";
|
|
37
|
+
readonly trigger: "-mb-px border-b-2 border-transparent px-3 py-2 text-vuno-muted data-[state=active]:font-semibold data-[state=active]:text-vuno-body";
|
|
38
|
+
};
|
|
39
|
+
};
|
|
31
40
|
};
|
|
32
41
|
}>;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { defineTheme } from "#vuno/utils/theme";
|
|
2
2
|
export const tabsTheme = defineTheme("tabs", {
|
|
3
|
-
/**
|
|
4
|
-
* Pestañas con subrayado en la activa. El `-mb-px` hace que ese subrayado
|
|
5
|
-
* se coma la línea de la lista en vez de quedar encima de ella.
|
|
6
|
-
*/
|
|
7
3
|
slots: {
|
|
8
4
|
content: "w-full",
|
|
9
5
|
icon: "size-4 shrink-0",
|
|
10
|
-
|
|
6
|
+
indicator: "pointer-events-none absolute left-0 z-0 w-(--vuno-tabs-indicator-width) translate-x-(--vuno-tabs-indicator-start) opacity-0 transition-[width,translate,opacity] duration-200 ease-out motion-reduce:transition-none data-[ready=true]:opacity-100",
|
|
7
|
+
list: "relative flex w-fit max-w-full items-center overflow-x-auto overscroll-x-contain [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
11
8
|
root: "flex w-full flex-col",
|
|
12
|
-
trigger: "-
|
|
9
|
+
trigger: "relative z-1 flex shrink-0 cursor-pointer items-center gap-1.5 font-medium transition-colors [--vuno-accent:var(--color-vuno-primary)] hover:text-vuno-body focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--vuno-accent)"
|
|
13
10
|
},
|
|
14
11
|
variants: {
|
|
15
12
|
size: {
|
|
@@ -18,6 +15,18 @@ export const tabsTheme = defineTheme("tabs", {
|
|
|
18
15
|
md: { trigger: "text-sm" },
|
|
19
16
|
lg: { trigger: "text-base" },
|
|
20
17
|
xl: { trigger: "text-base" }
|
|
18
|
+
},
|
|
19
|
+
variant: {
|
|
20
|
+
segmented: {
|
|
21
|
+
indicator: "inset-y-0.5 rounded-md bg-vuno-surface-2 ring-1 ring-vuno-border",
|
|
22
|
+
list: "rounded-lg border border-vuno-border bg-vuno-surface-1 p-0.5",
|
|
23
|
+
trigger: "rounded-md px-2.5 py-1.5 text-vuno-muted data-[state=active]:text-vuno-body"
|
|
24
|
+
},
|
|
25
|
+
underline: {
|
|
26
|
+
indicator: "bottom-0 h-0.5 bg-vuno-primary",
|
|
27
|
+
list: "gap-1 border-b border-vuno-border",
|
|
28
|
+
trigger: "-mb-px border-b-2 border-transparent px-3 py-2 text-vuno-muted data-[state=active]:font-semibold data-[state=active]:text-vuno-body"
|
|
29
|
+
}
|
|
21
30
|
}
|
|
22
31
|
}
|
|
23
32
|
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { VunoSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoTabItem, VunoTabsVariant } from '#vuno/types/page';
|
|
3
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
4
|
+
export type VunoTabsSize = Extract<VunoSize, 'lg' | 'md' | 'sm' | 'xl' | 'xs'>;
|
|
5
|
+
export type VunoTabsProps = {
|
|
6
|
+
items: VunoTabItem[];
|
|
7
|
+
size?: VunoTabsSize;
|
|
8
|
+
ui?: VunoUi<'tabs'>;
|
|
9
|
+
variant?: VunoTabsVariant;
|
|
10
|
+
};
|
|
File without changes
|
|
@@ -1,38 +1,79 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { computed,
|
|
2
|
+
import { computed, nextTick, onBeforeUnmount, onMounted, ref, resolveComponent, useId, useTemplateRef, watch } from "vue";
|
|
3
|
+
import { useRoute } from "#imports";
|
|
4
|
+
import { useVunoDirection } from "#vuno/composables/internal/useVunoDirection";
|
|
3
5
|
import { useTheme } from "#vuno/composables/useTheme";
|
|
4
|
-
import { vunoDirectionInjectionKey } from "#vuno/internal/keys";
|
|
5
6
|
import Badge from "#vuno/components/Badge/Badge.vue";
|
|
6
7
|
import Icon from "#vuno/components/Icon/Icon.vue";
|
|
8
|
+
import Text from "#vuno/components/Text/Text.vue";
|
|
7
9
|
defineOptions({ name: "VunoTabs" });
|
|
8
10
|
const model = defineModel({ type: null, ...{ default: void 0 } });
|
|
9
11
|
const props = defineProps({
|
|
10
12
|
items: { type: Array, required: true },
|
|
11
13
|
size: { type: String, required: false, default: "md" },
|
|
12
|
-
ui: { type: Object, required: false, default: void 0 }
|
|
14
|
+
ui: { type: Object, required: false, default: void 0 },
|
|
15
|
+
variant: { type: String, required: false, default: "segmented" }
|
|
13
16
|
});
|
|
14
17
|
defineSlots();
|
|
18
|
+
const route = useRoute();
|
|
19
|
+
const NuxtLink = resolveComponent("NuxtLink");
|
|
15
20
|
const ui = useTheme(
|
|
16
21
|
"tabs",
|
|
17
22
|
() => props.ui,
|
|
18
|
-
() => ({ size: props.size })
|
|
23
|
+
() => ({ size: props.size, variant: props.variant })
|
|
19
24
|
);
|
|
20
25
|
const uid = useId().replaceAll(/[^\w-]/g, "");
|
|
26
|
+
const indicatorReady = ref(false);
|
|
27
|
+
const indicatorStyle = ref();
|
|
21
28
|
const list = useTemplateRef("list");
|
|
29
|
+
const triggers = ref([]);
|
|
30
|
+
let resizeObserver;
|
|
22
31
|
const active = computed(() => {
|
|
23
|
-
const
|
|
24
|
-
|
|
32
|
+
const currentRoute = props.items.find((item) => item.to === route.path);
|
|
33
|
+
if (currentRoute) return currentRoute.value;
|
|
34
|
+
const localItems = props.items.filter((item) => !item.to);
|
|
35
|
+
const current = localItems.find((item) => item.value === model.value);
|
|
36
|
+
return current?.value ?? localItems[0]?.value;
|
|
25
37
|
});
|
|
38
|
+
const tabStop = computed(() => active.value ?? props.items[0]?.value);
|
|
26
39
|
const safe = (value) => value.replaceAll(/[^\w-]/g, "");
|
|
27
40
|
const tabId = (value) => `${uid}-tab-${safe(value)}`;
|
|
28
41
|
const panelId = (value) => `${uid}-panel-${safe(value)}`;
|
|
42
|
+
function captureTrigger(index, element) {
|
|
43
|
+
const target = element instanceof HTMLElement ? element : element?.$el;
|
|
44
|
+
triggers.value[index] = target instanceof HTMLElement ? target : null;
|
|
45
|
+
}
|
|
46
|
+
const triggerRef = (index) => (element) => captureTrigger(index, element);
|
|
47
|
+
async function syncIndicator() {
|
|
48
|
+
await nextTick();
|
|
49
|
+
const index = props.items.findIndex((item) => item.value === active.value);
|
|
50
|
+
const trigger = triggers.value[index];
|
|
51
|
+
if (!trigger) {
|
|
52
|
+
indicatorReady.value = false;
|
|
53
|
+
indicatorStyle.value = void 0;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
indicatorStyle.value = {
|
|
57
|
+
"--vuno-tabs-indicator-start": `${trigger.offsetLeft}px`,
|
|
58
|
+
"--vuno-tabs-indicator-width": `${trigger.offsetWidth}px`
|
|
59
|
+
};
|
|
60
|
+
indicatorReady.value = true;
|
|
61
|
+
}
|
|
62
|
+
function observeLayout() {
|
|
63
|
+
resizeObserver?.disconnect();
|
|
64
|
+
if (!resizeObserver) return;
|
|
65
|
+
if (list.value) resizeObserver.observe(list.value);
|
|
66
|
+
for (const trigger of triggers.value) {
|
|
67
|
+
if (trigger) resizeObserver.observe(trigger);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
29
70
|
function focusTab(index) {
|
|
30
71
|
const total = props.items.length;
|
|
31
72
|
if (total === 0) return;
|
|
32
73
|
const item = props.items[(index + total) % total];
|
|
33
74
|
if (item) list.value?.querySelector(`#${tabId(item.value)}`)?.focus();
|
|
34
75
|
}
|
|
35
|
-
const direction =
|
|
76
|
+
const direction = useVunoDirection();
|
|
36
77
|
function onKeydown(event, index) {
|
|
37
78
|
const forward = direction() === "rtl" ? -1 : 1;
|
|
38
79
|
const keys = {
|
|
@@ -46,28 +87,54 @@ function onKeydown(event, index) {
|
|
|
46
87
|
event.preventDefault();
|
|
47
88
|
handler();
|
|
48
89
|
}
|
|
90
|
+
watch(
|
|
91
|
+
[active, () => props.items, () => props.size, () => props.variant],
|
|
92
|
+
() => {
|
|
93
|
+
void syncIndicator().then(observeLayout);
|
|
94
|
+
},
|
|
95
|
+
{ deep: true, flush: "post" }
|
|
96
|
+
);
|
|
97
|
+
onMounted(() => {
|
|
98
|
+
if (typeof ResizeObserver !== "undefined") resizeObserver = new ResizeObserver(() => void syncIndicator());
|
|
99
|
+
void syncIndicator().then(observeLayout);
|
|
100
|
+
});
|
|
101
|
+
onBeforeUnmount(() => resizeObserver?.disconnect());
|
|
49
102
|
</script>
|
|
50
103
|
|
|
51
104
|
<template>
|
|
52
|
-
<div
|
|
105
|
+
<div
|
|
106
|
+
:class="ui.root"
|
|
107
|
+
:data-variant="props.variant"
|
|
108
|
+
>
|
|
53
109
|
<div
|
|
54
110
|
ref="list"
|
|
55
111
|
aria-orientation="horizontal"
|
|
56
112
|
:class="ui.list"
|
|
57
113
|
role="tablist"
|
|
58
114
|
>
|
|
59
|
-
<
|
|
115
|
+
<div
|
|
116
|
+
aria-hidden="true"
|
|
117
|
+
:class="ui.indicator"
|
|
118
|
+
:data-ready="indicatorReady"
|
|
119
|
+
:style="indicatorStyle"
|
|
120
|
+
/>
|
|
121
|
+
|
|
122
|
+
<component
|
|
123
|
+
:is="item.to ? NuxtLink : 'button'"
|
|
60
124
|
v-for="(item, index) in props.items"
|
|
61
125
|
:id="tabId(item.value)"
|
|
62
126
|
:key="item.value"
|
|
63
|
-
:
|
|
127
|
+
:ref="triggerRef(index)"
|
|
128
|
+
:aria-controls="item.to ? void 0 : panelId(item.value)"
|
|
129
|
+
:aria-current="item.to && item.value === active ? 'page' : void 0"
|
|
64
130
|
:aria-selected="item.value === active"
|
|
65
131
|
:class="ui.trigger"
|
|
66
132
|
:data-state="item.value === active ? 'active' : 'inactive'"
|
|
67
133
|
role="tab"
|
|
68
|
-
:tabindex="item.value ===
|
|
69
|
-
|
|
70
|
-
|
|
134
|
+
:tabindex="item.value === tabStop ? 0 : -1"
|
|
135
|
+
:to="item.to"
|
|
136
|
+
:type="item.to ? void 0 : 'button'"
|
|
137
|
+
@click="item.to || (model = item.value)"
|
|
71
138
|
@keydown="onKeydown($event, index)"
|
|
72
139
|
>
|
|
73
140
|
<Icon
|
|
@@ -76,7 +143,14 @@ function onKeydown(event, index) {
|
|
|
76
143
|
:name="item.icon"
|
|
77
144
|
/>
|
|
78
145
|
|
|
79
|
-
<
|
|
146
|
+
<Text
|
|
147
|
+
class="truncate"
|
|
148
|
+
tag="span"
|
|
149
|
+
tone="inherit"
|
|
150
|
+
variant="inherit"
|
|
151
|
+
>
|
|
152
|
+
{{ item.label }}
|
|
153
|
+
</Text>
|
|
80
154
|
|
|
81
155
|
<!--
|
|
82
156
|
El contador de errores va aquí y no al lado del formulario:
|
|
@@ -89,7 +163,7 @@ function onKeydown(event, index) {
|
|
|
89
163
|
:label="item.badge.label"
|
|
90
164
|
size="xs"
|
|
91
165
|
/>
|
|
92
|
-
</
|
|
166
|
+
</component>
|
|
93
167
|
</div>
|
|
94
168
|
|
|
95
169
|
<!--
|
|
@@ -100,7 +174,7 @@ function onKeydown(event, index) {
|
|
|
100
174
|
justo lo que hace falta.
|
|
101
175
|
-->
|
|
102
176
|
<div
|
|
103
|
-
v-for="item in props.items"
|
|
177
|
+
v-for="item in props.items.filter((candidate) => !candidate.to)"
|
|
104
178
|
:id="panelId(item.value)"
|
|
105
179
|
:key="item.value"
|
|
106
180
|
:aria-labelledby="tabId(item.value)"
|
|
@@ -108,7 +182,7 @@ function onKeydown(event, index) {
|
|
|
108
182
|
:data-state="item.value === active ? 'active' : 'inactive'"
|
|
109
183
|
:hidden="item.value !== active"
|
|
110
184
|
role="tabpanel"
|
|
111
|
-
tabindex="0"
|
|
185
|
+
:tabindex="item.value === active ? 0 : void 0"
|
|
112
186
|
>
|
|
113
187
|
<slot
|
|
114
188
|
:item="item"
|
|
@@ -1,26 +1,6 @@
|
|
|
1
|
-
import type { VunoSize } from '#vuno/types/base';
|
|
2
1
|
import type { VunoTabItem } from '#vuno/types/page';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
* Las pestañas, escritas a mano sobre el patrón de ARIA.
|
|
6
|
-
*
|
|
7
|
-
* No hacía falta una librería: aquí no hay nada que colocar, solo marcado y
|
|
8
|
-
* teclado. Lo que sí hay que hacer bien —y lo que la versión anterior no
|
|
9
|
-
* hacía— es el **tabindex móvil**: una sola pestaña está en el recorrido del
|
|
10
|
-
* tabulador, la activa, y dentro de la lista se anda con las flechas. Es lo
|
|
11
|
-
* que distingue una lista de pestañas de una fila de botones, donde el
|
|
12
|
-
* tabulador para en cada una.
|
|
13
|
-
*
|
|
14
|
-
* La activación es **manual**: las flechas mueven el foco y la selección
|
|
15
|
-
* espera a `Enter` o al espacio. Es una decisión explícita del contrato:
|
|
16
|
-
* cambiarla alteraría cómo se cargan los paneles costosos.
|
|
17
|
-
*/
|
|
18
|
-
type Props = {
|
|
19
|
-
items: VunoTabItem[];
|
|
20
|
-
size?: VunoSize;
|
|
21
|
-
ui?: VunoUi<'tabs'>;
|
|
22
|
-
};
|
|
23
|
-
type __VLS_Props = Props;
|
|
2
|
+
import type { VunoTabsProps } from './Tabs.types.js';
|
|
3
|
+
type __VLS_Props = VunoTabsProps;
|
|
24
4
|
type __VLS_Slots = {
|
|
25
5
|
/** El contenido de cada pestaña; recibe su item. */
|
|
26
6
|
content?: (props: {
|
|
@@ -36,8 +16,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
|
|
|
36
16
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
37
17
|
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
38
18
|
}>, {
|
|
39
|
-
size:
|
|
40
|
-
|
|
19
|
+
size: import("./Tabs.types.js").VunoTabsSize;
|
|
20
|
+
variant: import("#vuno/types/page").VunoTabsVariant;
|
|
21
|
+
ui: import("../../types/slots.js").VunoUi<"tabs">;
|
|
41
22
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
42
23
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
43
24
|
declare const _default: typeof __VLS_export;
|