@groupteknology/vuno 1.0.0 → 2.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 +53 -27
- package/dist/module.d.mts +14 -2
- package/dist/module.json +1 -1
- package/dist/module.mjs +80 -13
- package/dist/runtime/app/assets/css/dialog.css +1 -0
- package/dist/runtime/app/assets/css/main.css +1 -0
- package/dist/runtime/app/assets/css/stylesheet.css +1 -0
- package/dist/runtime/app/assets/css/theme.css +1 -0
- package/dist/runtime/app/assets/css/tokens.css +1 -0
- package/dist/runtime/app/components/Alert/Alert.d.vue.ts +20 -0
- package/dist/runtime/app/components/Alert/Alert.theme.d.ts +13 -0
- package/dist/runtime/app/components/Alert/Alert.theme.js +13 -0
- package/dist/runtime/app/components/Alert/Alert.vue +59 -0
- package/dist/runtime/app/components/Alert/Alert.vue.d.ts +20 -0
- package/dist/runtime/app/components/App/App.d.vue.ts +52 -0
- package/dist/runtime/app/components/App/App.vue +150 -0
- package/dist/runtime/app/components/App/App.vue.d.ts +52 -0
- package/dist/runtime/app/components/App/internal/Overlay/Overlay.d.vue.ts +7 -0
- package/dist/runtime/app/components/App/internal/Overlay/Overlay.vue +39 -0
- package/dist/runtime/app/components/App/internal/Overlay/Overlay.vue.d.ts +7 -0
- package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.d.vue.ts +8 -0
- package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.vue +19 -0
- package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.vue.d.ts +8 -0
- package/dist/runtime/app/components/App/internal/Toast/Toast.d.vue.ts +11 -0
- package/dist/runtime/app/components/App/internal/Toast/Toast.theme.d.ts +13 -0
- package/dist/runtime/app/components/App/internal/Toast/Toast.theme.js +18 -0
- package/dist/runtime/app/components/App/internal/Toast/Toast.vue +64 -0
- package/dist/runtime/app/components/App/internal/Toast/Toast.vue.d.ts +11 -0
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.d.vue.ts +11 -0
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.theme.d.ts +15 -0
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.theme.js +16 -0
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.vue +100 -0
- package/dist/runtime/app/components/App/internal/Toaster/Toaster.vue.d.ts +11 -0
- package/dist/runtime/app/components/Avatar/Avatar.d.vue.ts +27 -0
- package/dist/runtime/app/components/Avatar/Avatar.theme.d.ts +30 -0
- package/dist/runtime/app/components/Avatar/Avatar.theme.js +22 -0
- package/dist/runtime/app/components/Avatar/Avatar.vue +51 -0
- package/dist/runtime/app/components/Avatar/Avatar.vue.d.ts +27 -0
- package/dist/runtime/app/components/Badge/Badge.d.vue.ts +40 -0
- package/dist/runtime/app/components/Badge/Badge.theme.d.ts +40 -0
- package/dist/runtime/app/components/Badge/Badge.theme.js +22 -0
- package/dist/runtime/app/components/Badge/Badge.vue +28 -0
- package/dist/runtime/app/components/Badge/Badge.vue.d.ts +40 -0
- package/dist/runtime/app/components/Button/Button.d.vue.ts +49 -0
- package/dist/runtime/app/components/Button/Button.theme.d.ts +88 -0
- package/dist/runtime/app/components/Button/Button.theme.js +59 -0
- package/dist/runtime/app/components/Button/Button.vue +78 -0
- package/dist/runtime/app/components/Button/Button.vue.d.ts +49 -0
- package/dist/runtime/app/components/Card/Card.d.vue.ts +94 -0
- package/dist/runtime/app/components/Card/Card.theme.d.ts +57 -0
- package/dist/runtime/app/components/Card/Card.theme.js +62 -0
- package/dist/runtime/app/components/Card/Card.vue +45 -0
- package/dist/runtime/app/components/Card/Card.vue.d.ts +94 -0
- package/dist/runtime/app/components/Code/Code.d.vue.ts +19 -0
- package/dist/runtime/app/components/Code/Code.theme.d.ts +11 -0
- package/dist/runtime/app/components/Code/Code.theme.js +12 -0
- package/dist/runtime/app/components/Code/Code.vue +109 -0
- package/dist/runtime/app/components/Code/Code.vue.d.ts +19 -0
- package/dist/runtime/app/components/Confirm/Confirm.d.vue.ts +35 -0
- package/dist/runtime/app/components/Confirm/Confirm.theme.d.ts +12 -0
- package/dist/runtime/app/components/Confirm/Confirm.theme.js +13 -0
- package/dist/runtime/app/components/Confirm/Confirm.vue +83 -0
- package/dist/runtime/app/components/Confirm/Confirm.vue.d.ts +35 -0
- package/dist/runtime/app/components/Container/Container.d.vue.ts +42 -0
- package/dist/runtime/app/components/Container/Container.theme.d.ts +53 -0
- package/dist/runtime/app/components/Container/Container.theme.js +31 -0
- package/dist/runtime/app/components/Container/Container.vue +20 -0
- package/dist/runtime/app/components/Container/Container.vue.d.ts +42 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.d.vue.ts +26 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.theme.d.ts +16 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.theme.js +13 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.vue +26 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.vue.d.ts +26 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.theme.d.ts +12 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.theme.js +13 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.vue +173 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.theme.js +2 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue +39 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.d.vue.ts +40 -0
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.theme.d.ts +30 -0
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.theme.js +10 -0
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.vue +40 -0
- package/dist/runtime/app/components/FieldCheckbox/internal/Checkbox/Checkbox.vue.d.ts +40 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.theme.d.ts +27 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.theme.js +18 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.vue +88 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.theme.js +2 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.vue +51 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.d.vue.ts +26 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.theme.js +2 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.vue +99 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.vue.d.ts +26 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.d.vue.ts +66 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.d.ts +88 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.js +55 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.vue +187 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.vue.d.ts +66 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.d.vue.ts +24 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.theme.js +2 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.vue +61 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.vue.d.ts +24 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.theme.js +2 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.vue +47 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.theme.js +2 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.vue +62 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.theme.js +2 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.vue +41 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.d.vue.ts +32 -0
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.theme.d.ts +54 -0
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.theme.js +31 -0
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.vue +80 -0
- package/dist/runtime/app/components/FieldRadio/internal/RadioGroup/RadioGroup.vue.d.ts +32 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.d.vue.ts +17 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.theme.d.ts +6 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.theme.js +7 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.vue +74 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.vue.d.ts +17 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.theme.js +2 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.vue +45 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.d.vue.ts +97 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.theme.d.ts +36 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.theme.js +49 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue +196 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue.d.ts +97 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/option.d.ts +25 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/option.js +6 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/useVunoSelectState.d.ts +30 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/useVunoSelectState.js +142 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.theme.js +2 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.vue +113 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.theme.js +2 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.vue +37 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.d.vue.ts +26 -0
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.theme.d.ts +39 -0
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.theme.js +20 -0
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.vue +46 -0
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.vue.d.ts +26 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.d.vue.ts +13 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.theme.js +2 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.vue +41 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.vue.d.ts +13 -0
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.d.vue.ts +26 -0
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.theme.d.ts +34 -0
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.theme.js +20 -0
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue +97 -0
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue.d.ts +26 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.d.vue.ts +26 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.theme.d.ts +5 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.theme.js +2 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue +45 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue.d.ts +26 -0
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.d.vue.ts +34 -0
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.theme.d.ts +36 -0
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.theme.js +37 -0
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.vue +43 -0
- package/dist/runtime/app/components/FieldTextarea/internal/Textarea/Textarea.vue.d.ts +34 -0
- package/dist/runtime/app/components/Form/Form.d.vue.ts +52 -0
- package/dist/runtime/app/components/Form/Form.theme.d.ts +9 -0
- package/dist/runtime/app/components/Form/Form.theme.js +10 -0
- package/dist/runtime/app/components/Form/Form.vue +129 -0
- package/dist/runtime/app/components/Form/Form.vue.d.ts +52 -0
- package/dist/runtime/app/components/Form/internal/FormFieldRenderer/FormFieldRenderer.d.vue.ts +7 -0
- package/dist/runtime/app/components/Form/internal/FormFieldRenderer/FormFieldRenderer.vue +67 -0
- package/dist/runtime/app/components/Form/internal/FormFieldRenderer/FormFieldRenderer.vue.d.ts +7 -0
- package/dist/runtime/app/components/Form/internal/grid.d.ts +9 -0
- package/dist/runtime/app/components/Form/internal/grid.js +91 -0
- package/dist/runtime/app/components/Form/internal/standard-schema.d.ts +29 -0
- package/dist/runtime/app/components/Form/internal/standard-schema.js +15 -0
- package/dist/runtime/app/components/Form/internal/useVunoFormState.d.ts +43 -0
- package/dist/runtime/app/components/Form/internal/useVunoFormState.js +81 -0
- package/dist/runtime/app/components/FormField/FormField.d.vue.ts +35 -0
- package/dist/runtime/app/components/FormField/FormField.theme.d.ts +62 -0
- package/dist/runtime/app/components/FormField/FormField.theme.js +28 -0
- package/dist/runtime/app/components/FormField/FormField.vue +124 -0
- package/dist/runtime/app/components/FormField/FormField.vue.d.ts +35 -0
- package/dist/runtime/app/components/FormModal/FormModal.d.vue.ts +63 -0
- package/dist/runtime/app/components/FormModal/FormModal.theme.d.ts +8 -0
- package/dist/runtime/app/components/FormModal/FormModal.theme.js +9 -0
- package/dist/runtime/app/components/FormModal/FormModal.vue +95 -0
- package/dist/runtime/app/components/FormModal/FormModal.vue.d.ts +63 -0
- package/dist/runtime/app/components/FormSection/FormSection.d.vue.ts +15 -0
- package/dist/runtime/app/components/FormSection/FormSection.theme.d.ts +12 -0
- package/dist/runtime/app/components/FormSection/FormSection.theme.js +14 -0
- package/dist/runtime/app/components/FormSection/FormSection.vue +45 -0
- package/dist/runtime/app/components/FormSection/FormSection.vue.d.ts +15 -0
- package/dist/runtime/app/components/Icon/Icon.d.vue.ts +6 -0
- package/dist/runtime/app/components/Icon/Icon.vue +32 -0
- package/dist/runtime/app/components/Icon/Icon.vue.d.ts +6 -0
- package/dist/runtime/app/components/Menu/Menu.d.vue.ts +36 -0
- package/dist/runtime/app/components/Menu/Menu.theme.d.ts +17 -0
- package/dist/runtime/app/components/Menu/Menu.theme.js +20 -0
- package/dist/runtime/app/components/Menu/Menu.vue +182 -0
- package/dist/runtime/app/components/Menu/Menu.vue.d.ts +36 -0
- package/dist/runtime/app/components/Modal/Modal.d.vue.ts +43 -0
- package/dist/runtime/app/components/Modal/Modal.theme.d.ts +59 -0
- package/dist/runtime/app/components/Modal/Modal.theme.js +47 -0
- package/dist/runtime/app/components/Modal/Modal.vue +215 -0
- package/dist/runtime/app/components/Modal/Modal.vue.d.ts +43 -0
- package/dist/runtime/app/components/Navbar/Navbar.d.vue.ts +45 -0
- package/dist/runtime/app/components/Navbar/Navbar.theme.d.ts +31 -0
- package/dist/runtime/app/components/Navbar/Navbar.theme.js +32 -0
- package/dist/runtime/app/components/Navbar/Navbar.vue +47 -0
- package/dist/runtime/app/components/Navbar/Navbar.vue.d.ts +45 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.d.vue.ts +38 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.theme.d.ts +32 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.theme.js +35 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.vue +187 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.vue.d.ts +38 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.d.vue.ts +31 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.theme.d.ts +26 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.theme.js +27 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue +236 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue.d.ts +31 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.d.vue.ts +14 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.theme.d.ts +9 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.theme.js +10 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.vue +81 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.vue.d.ts +14 -0
- package/dist/runtime/app/components/Page/Page.d.vue.ts +40 -0
- package/dist/runtime/app/components/Page/Page.theme.d.ts +32 -0
- package/dist/runtime/app/components/Page/Page.theme.js +31 -0
- package/dist/runtime/app/components/Page/Page.vue +132 -0
- package/dist/runtime/app/components/Page/Page.vue.d.ts +40 -0
- package/dist/runtime/app/components/Pagination/Pagination.d.vue.ts +33 -0
- package/dist/runtime/app/components/Pagination/Pagination.theme.d.ts +13 -0
- package/dist/runtime/app/components/Pagination/Pagination.theme.js +14 -0
- package/dist/runtime/app/components/Pagination/Pagination.vue +129 -0
- package/dist/runtime/app/components/Pagination/Pagination.vue.d.ts +33 -0
- package/dist/runtime/app/components/Slideover/Slideover.d.vue.ts +43 -0
- package/dist/runtime/app/components/Slideover/Slideover.theme.d.ts +35 -0
- package/dist/runtime/app/components/Slideover/Slideover.theme.js +24 -0
- package/dist/runtime/app/components/Slideover/Slideover.vue +58 -0
- package/dist/runtime/app/components/Slideover/Slideover.vue.d.ts +43 -0
- package/dist/runtime/app/components/State/State.d.vue.ts +14 -0
- package/dist/runtime/app/components/State/State.theme.d.ts +19 -0
- package/dist/runtime/app/components/State/State.theme.js +26 -0
- package/dist/runtime/app/components/State/State.vue +66 -0
- package/dist/runtime/app/components/State/State.vue.d.ts +14 -0
- package/dist/runtime/app/components/Table/Table.d.vue.ts +80 -0
- package/dist/runtime/app/components/Table/Table.theme.d.ts +50 -0
- package/dist/runtime/app/components/Table/Table.theme.js +64 -0
- package/dist/runtime/app/components/Table/Table.vue +483 -0
- package/dist/runtime/app/components/Table/Table.vue.d.ts +80 -0
- package/dist/runtime/app/components/Table/internal/CellBadge/CellBadge.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellBadge/CellBadge.vue +26 -0
- package/dist/runtime/app/components/Table/internal/CellBadge/CellBadge.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.theme.d.ts +21 -0
- package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.theme.js +11 -0
- package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.vue +32 -0
- package/dist/runtime/app/components/Table/internal/CellBoolean/CellBoolean.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.theme.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.theme.js +4 -0
- package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.vue +16 -0
- package/dist/runtime/app/components/Table/internal/CellCurrency/CellCurrency.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellDate/CellDate.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellDate/CellDate.theme.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellDate/CellDate.theme.js +4 -0
- package/dist/runtime/app/components/Table/internal/CellDate/CellDate.vue +21 -0
- package/dist/runtime/app/components/Table/internal/CellDate/CellDate.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellImage/CellImage.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellImage/CellImage.vue +24 -0
- package/dist/runtime/app/components/Table/internal/CellImage/CellImage.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.theme.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.theme.js +4 -0
- package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.vue +17 -0
- package/dist/runtime/app/components/Table/internal/CellNumber/CellNumber.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellText/CellText.d.vue.ts +5 -0
- package/dist/runtime/app/components/Table/internal/CellText/CellText.theme.d.ts +13 -0
- package/dist/runtime/app/components/Table/internal/CellText/CellText.theme.js +11 -0
- package/dist/runtime/app/components/Table/internal/CellText/CellText.vue +16 -0
- package/dist/runtime/app/components/Table/internal/CellText/CellText.vue.d.ts +5 -0
- package/dist/runtime/app/components/Table/internal/TableCell/TableCell.d.vue.ts +22 -0
- package/dist/runtime/app/components/Table/internal/TableCell/TableCell.vue +48 -0
- package/dist/runtime/app/components/Table/internal/TableCell/TableCell.vue.d.ts +22 -0
- package/dist/runtime/app/components/Table/internal/column.d.ts +9 -0
- package/dist/runtime/app/components/Table/internal/column.js +5 -0
- package/dist/runtime/app/components/Table/internal/query.d.ts +18 -0
- package/dist/runtime/app/components/Table/internal/query.js +8 -0
- package/dist/runtime/app/components/Table/internal/selection.d.ts +29 -0
- package/dist/runtime/app/components/Table/internal/selection.js +10 -0
- package/dist/runtime/app/components/Table/internal/useVunoTable.d.ts +93 -0
- package/dist/runtime/app/components/Table/internal/useVunoTable.js +153 -0
- package/dist/runtime/app/components/Table/internal/useVunoTableSelection.d.ts +21 -0
- package/dist/runtime/app/components/Table/internal/useVunoTableSelection.js +29 -0
- package/dist/runtime/app/components/Tabs/Tabs.d.vue.ts +49 -0
- package/dist/runtime/app/components/Tabs/Tabs.theme.d.ts +32 -0
- package/dist/runtime/app/components/Tabs/Tabs.theme.js +23 -0
- package/dist/runtime/app/components/Tabs/Tabs.vue +119 -0
- package/dist/runtime/app/components/Tabs/Tabs.vue.d.ts +49 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.d.vue.ts +40 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.theme.d.ts +12 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.theme.js +13 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.vue +139 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.vue.d.ts +40 -0
- package/dist/runtime/app/components/internal/ControlShell/ControlShell.d.vue.ts +41 -0
- package/dist/runtime/app/components/internal/ControlShell/ControlShell.theme.d.ts +50 -0
- package/dist/runtime/app/components/internal/ControlShell/ControlShell.theme.js +38 -0
- package/dist/runtime/app/components/internal/ControlShell/ControlShell.vue +33 -0
- package/dist/runtime/app/components/internal/ControlShell/ControlShell.vue.d.ts +41 -0
- package/dist/runtime/app/components/internal/FieldShell/FieldShell.d.vue.ts +23 -0
- package/dist/runtime/app/components/internal/FieldShell/FieldShell.vue +63 -0
- package/dist/runtime/app/components/internal/FieldShell/FieldShell.vue.d.ts +23 -0
- package/dist/runtime/app/components/internal/Input/Input.d.vue.ts +52 -0
- package/dist/runtime/app/components/internal/Input/Input.theme.d.ts +30 -0
- package/dist/runtime/app/components/internal/Input/Input.theme.js +21 -0
- package/dist/runtime/app/components/internal/Input/Input.vue +66 -0
- package/dist/runtime/app/components/internal/Input/Input.vue.d.ts +52 -0
- package/dist/runtime/app/components/internal/NumberInput/NumberInput.d.vue.ts +36 -0
- package/dist/runtime/app/components/internal/NumberInput/NumberInput.theme.d.ts +31 -0
- package/dist/runtime/app/components/internal/NumberInput/NumberInput.theme.js +26 -0
- package/dist/runtime/app/components/internal/NumberInput/NumberInput.vue +221 -0
- package/dist/runtime/app/components/internal/NumberInput/NumberInput.vue.d.ts +36 -0
- package/dist/runtime/app/components/internal/NumberInput/number.d.ts +42 -0
- package/dist/runtime/app/components/internal/NumberInput/number.js +64 -0
- package/dist/runtime/app/composables/defineShortcuts.d.ts +19 -0
- package/dist/runtime/app/composables/defineShortcuts.js +68 -0
- package/dist/runtime/app/composables/internal/useVunoAnchor.d.ts +45 -0
- package/dist/runtime/app/composables/internal/useVunoAnchor.js +35 -0
- package/dist/runtime/app/composables/internal/useVunoControlGroup.d.ts +17 -0
- package/dist/runtime/app/composables/internal/useVunoControlGroup.js +18 -0
- package/dist/runtime/app/composables/internal/useVunoPortal.d.ts +18 -0
- package/dist/runtime/app/composables/internal/useVunoPortal.js +12 -0
- package/dist/runtime/app/composables/useConfirm.d.ts +15 -0
- package/dist/runtime/app/composables/useConfirm.js +5 -0
- package/dist/runtime/app/composables/useContext.d.ts +11 -0
- package/dist/runtime/app/composables/useContext.js +9 -0
- package/dist/runtime/app/composables/useCrud.d.ts +23 -0
- package/dist/runtime/app/composables/useCrud.js +153 -0
- package/dist/runtime/app/composables/useField.d.ts +10 -0
- package/dist/runtime/app/composables/useField.js +42 -0
- package/dist/runtime/app/composables/useForm.d.ts +5 -0
- package/dist/runtime/app/composables/useForm.js +9 -0
- package/dist/runtime/app/composables/useModal.d.ts +21 -0
- package/dist/runtime/app/composables/useModal.js +24 -0
- package/dist/runtime/app/composables/useOverlay.d.ts +22 -0
- package/dist/runtime/app/composables/useOverlay.js +10 -0
- package/dist/runtime/app/composables/useTableQuery.d.ts +10 -0
- package/dist/runtime/app/composables/useTableQuery.js +126 -0
- package/dist/runtime/app/composables/useTheme.d.ts +31 -0
- package/dist/runtime/app/composables/useTheme.js +29 -0
- package/dist/runtime/app/composables/useToast.d.ts +28 -0
- package/dist/runtime/app/composables/useToast.js +13 -0
- package/dist/runtime/app/internal/keys.d.ts +43 -0
- package/dist/runtime/app/internal/keys.js +8 -0
- package/dist/runtime/app/internal/slots.d.ts +22 -0
- package/dist/runtime/app/internal/slots.js +24 -0
- package/dist/runtime/app/plugins/vue-query.d.ts +8 -0
- package/dist/runtime/app/plugins/vue-query.js +13 -0
- package/dist/runtime/app/theme/icons.d.ts +2 -0
- package/dist/runtime/app/theme/icons.js +43 -0
- package/dist/runtime/app/theme/index.d.ts +1168 -0
- package/dist/runtime/app/theme/index.js +120 -0
- package/dist/runtime/app/theme/messages.d.ts +2 -0
- package/dist/runtime/app/theme/messages.js +70 -0
- package/dist/runtime/app/theme/shared.d.ts +42 -0
- package/dist/runtime/app/theme/shared.js +24 -0
- package/dist/runtime/app/types/alert.d.ts +13 -0
- package/dist/runtime/app/types/alert.js +0 -0
- package/dist/runtime/app/types/app-config.d.ts +8 -0
- package/dist/runtime/app/types/app-config.js +1 -0
- package/dist/runtime/app/types/app.d.ts +83 -0
- package/dist/runtime/app/types/app.js +0 -0
- package/dist/runtime/app/types/base.d.ts +78 -0
- package/dist/runtime/app/types/base.js +0 -0
- package/dist/runtime/app/types/confirm.d.ts +19 -0
- package/dist/runtime/app/types/confirm.js +0 -0
- package/dist/runtime/app/types/crud.d.ts +108 -0
- package/dist/runtime/app/types/crud.js +0 -0
- package/dist/runtime/app/types/field-type.d.ts +4 -0
- package/dist/runtime/app/types/field-type.js +0 -0
- package/dist/runtime/app/types/field.d.ts +233 -0
- package/dist/runtime/app/types/field.js +0 -0
- package/dist/runtime/app/types/form.d.ts +67 -0
- package/dist/runtime/app/types/form.js +0 -0
- package/dist/runtime/app/types/index.d.ts +16 -0
- package/dist/runtime/app/types/index.js +1 -0
- package/dist/runtime/app/types/page.d.ts +61 -0
- package/dist/runtime/app/types/page.js +0 -0
- package/dist/runtime/app/types/responsive.d.ts +8 -0
- package/dist/runtime/app/types/responsive.js +0 -0
- package/dist/runtime/app/types/shortcuts.d.ts +44 -0
- package/dist/runtime/app/types/shortcuts.js +0 -0
- package/dist/runtime/app/types/slots.d.ts +30 -0
- package/dist/runtime/app/types/slots.js +0 -0
- package/dist/runtime/app/types/state.d.ts +35 -0
- package/dist/runtime/app/types/state.js +0 -0
- package/dist/runtime/app/types/table.d.ts +287 -0
- package/dist/runtime/app/types/table.js +0 -0
- package/dist/runtime/app/types/theme.d.ts +251 -0
- package/dist/runtime/app/types/theme.js +0 -0
- package/dist/runtime/app/utils/format.d.ts +18 -0
- package/dist/runtime/app/utils/format.js +36 -0
- package/dist/runtime/app/utils/pagination.d.ts +41 -0
- package/dist/runtime/app/utils/pagination.js +32 -0
- package/dist/runtime/app/utils/path.d.ts +16 -0
- package/dist/runtime/app/utils/path.js +76 -0
- package/dist/runtime/app/utils/query-key.d.ts +20 -0
- package/dist/runtime/app/utils/query-key.js +7 -0
- package/dist/runtime/app/utils/theme.d.ts +44 -0
- package/dist/runtime/app/utils/theme.js +43 -0
- package/dist/types.d.mts +3 -11
- package/package.json +18 -3
- package/dist/module.d.cts +0 -2
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";
|
|
3
|
+
import { useMessages, useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
defineOptions({ name: "VunoNavigationToc" });
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
items: { type: Array, required: true },
|
|
7
|
+
label: { type: String, required: false, default: void 0 },
|
|
8
|
+
ui: { type: Object, required: false, default: void 0 }
|
|
9
|
+
});
|
|
10
|
+
const messages = useMessages();
|
|
11
|
+
const ui = useTheme("navigationToc", () => props.ui);
|
|
12
|
+
const active = ref("");
|
|
13
|
+
const title = computed(() => props.label ?? messages.value.documentToc);
|
|
14
|
+
const BAND = 100;
|
|
15
|
+
let observer;
|
|
16
|
+
let targets = [];
|
|
17
|
+
function targetId(to) {
|
|
18
|
+
if (!to.startsWith("#")) return;
|
|
19
|
+
try {
|
|
20
|
+
return decodeURIComponent(to.slice(1));
|
|
21
|
+
} catch {
|
|
22
|
+
return to.slice(1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function sync() {
|
|
26
|
+
let current = targets[0]?.item.to ?? "";
|
|
27
|
+
for (const target of targets) {
|
|
28
|
+
if (target.element.getBoundingClientRect().top > BAND) break;
|
|
29
|
+
current = target.item.to;
|
|
30
|
+
}
|
|
31
|
+
active.value = current;
|
|
32
|
+
}
|
|
33
|
+
function observe() {
|
|
34
|
+
observer?.disconnect();
|
|
35
|
+
targets = props.items.flatMap((item) => {
|
|
36
|
+
const id = targetId(item.to);
|
|
37
|
+
const element = id ? document.getElementById(id) : null;
|
|
38
|
+
return element ? [{ element, item }] : [];
|
|
39
|
+
});
|
|
40
|
+
if (targets.length === 0) {
|
|
41
|
+
active.value = "";
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
sync();
|
|
45
|
+
if (typeof IntersectionObserver === "undefined") return;
|
|
46
|
+
observer = new IntersectionObserver(sync, { rootMargin: `-${BAND}px 0px 0px 0px` });
|
|
47
|
+
for (const target of targets) observer.observe(target.element);
|
|
48
|
+
}
|
|
49
|
+
watch(
|
|
50
|
+
() => props.items,
|
|
51
|
+
() => void nextTick(observe),
|
|
52
|
+
{ deep: true }
|
|
53
|
+
);
|
|
54
|
+
onMounted(() => void nextTick(observe));
|
|
55
|
+
onBeforeUnmount(() => observer?.disconnect());
|
|
56
|
+
</script>
|
|
57
|
+
|
|
58
|
+
<template>
|
|
59
|
+
<nav
|
|
60
|
+
v-if="items.length > 0"
|
|
61
|
+
:aria-label="title"
|
|
62
|
+
:class="ui.root"
|
|
63
|
+
>
|
|
64
|
+
<span :class="ui.title">{{ title }}</span>
|
|
65
|
+
|
|
66
|
+
<ul :class="ui.list">
|
|
67
|
+
<li
|
|
68
|
+
v-for="item in items"
|
|
69
|
+
:key="item.to"
|
|
70
|
+
>
|
|
71
|
+
<a
|
|
72
|
+
:aria-current="active === item.to ? 'location' : void 0"
|
|
73
|
+
:class="[ui.link, item.level === 3 && ui.linkDeep]"
|
|
74
|
+
:href="item.to"
|
|
75
|
+
>
|
|
76
|
+
{{ item.label }}
|
|
77
|
+
</a>
|
|
78
|
+
</li>
|
|
79
|
+
</ul>
|
|
80
|
+
</nav>
|
|
81
|
+
</template>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { VunoNavigationTocItem } from '#vuno/types/page';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
type Props = {
|
|
4
|
+
items: VunoNavigationTocItem[];
|
|
5
|
+
/** Sustituye el título visible y el nombre accesible de la navegación. */
|
|
6
|
+
label?: string;
|
|
7
|
+
ui?: VunoUi<'navigationToc'>;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
10
|
+
label: string;
|
|
11
|
+
ui: VunoUi<"navigationToc">;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { VunoHeadingLevel } from '#vuno/types/base';
|
|
2
|
+
import type { VunoBreadcrumbItem } from '#vuno/types/page';
|
|
3
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
4
|
+
type Props = {
|
|
5
|
+
breadcrumb?: VunoBreadcrumbItem[];
|
|
6
|
+
description?: string;
|
|
7
|
+
/**
|
|
8
|
+
* El nivel del título. `1` por defecto, que es lo correcto cuando
|
|
9
|
+
* esto **es** la pantalla.
|
|
10
|
+
*
|
|
11
|
+
* Se baja cuando no lo es: un `VPage` dentro de otra página deja dos
|
|
12
|
+
* `h1` y un salto en lo que venga debajo, y eso no se ve —se oye, y
|
|
13
|
+
* solo con un lector de pantalla—. El aspecto no cambia: el tamaño y
|
|
14
|
+
* el peso los pone `ui.title`, no la etiqueta.
|
|
15
|
+
*/
|
|
16
|
+
level?: VunoHeadingLevel;
|
|
17
|
+
title: string;
|
|
18
|
+
ui?: VunoUi<'page'>;
|
|
19
|
+
};
|
|
20
|
+
type __VLS_Slots = {
|
|
21
|
+
/** Acciones de la pantalla, a la derecha de la barra superior. */
|
|
22
|
+
actions?: () => unknown;
|
|
23
|
+
default?: () => unknown;
|
|
24
|
+
/** Lo que va antes de la miga de pan: un botón de plegado, por ejemplo. */
|
|
25
|
+
leading?: () => unknown;
|
|
26
|
+
};
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
28
|
+
description: string;
|
|
29
|
+
breadcrumb: VunoBreadcrumbItem[];
|
|
30
|
+
ui: VunoUi<"page">;
|
|
31
|
+
level: VunoHeadingLevel;
|
|
32
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
34
|
+
declare const _default: typeof __VLS_export;
|
|
35
|
+
export default _default;
|
|
36
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
37
|
+
new (): {
|
|
38
|
+
$slots: S;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare const pageTheme: Record<"page", {
|
|
2
|
+
/**
|
|
3
|
+
* La barra y el panel los pinta el módulo: los componentes de la gama Pro
|
|
4
|
+
* que había antes solo aportaban dos huecos, y encima había que anularles
|
|
5
|
+
* el relleno porque el ritmo lo pone `body`.
|
|
6
|
+
*/
|
|
7
|
+
readonly slots: {
|
|
8
|
+
readonly body: "flex w-full flex-col gap-7 px-4 py-6 sm:px-6 sm:py-8 lg:p-10";
|
|
9
|
+
readonly breadcrumb: "hidden min-w-0 sm:block";
|
|
10
|
+
readonly breadcrumbCurrent: "truncate text-sm font-semibold text-vuno-strong";
|
|
11
|
+
readonly breadcrumbItem: "flex min-w-0 items-center gap-1.5";
|
|
12
|
+
readonly breadcrumbLink: "truncate rounded-sm text-sm font-medium text-vuno-muted 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
|
+
readonly breadcrumbList: "flex items-center gap-1.5";
|
|
14
|
+
readonly breadcrumbSeparator: "size-4 shrink-0 text-vuno-subtle";
|
|
15
|
+
readonly description: "max-w-prose text-sm text-vuno-muted";
|
|
16
|
+
readonly heading: "flex flex-col gap-2";
|
|
17
|
+
readonly navbar: "flex h-14 shrink-0 items-center justify-between gap-3 border-b border-vuno-border bg-vuno-surface/90 px-4 backdrop-blur-xl sm:px-6";
|
|
18
|
+
readonly navbarLeft: "flex min-w-0 items-center gap-1";
|
|
19
|
+
readonly navbarRight: "flex shrink-0 items-center gap-2";
|
|
20
|
+
readonly panel: "min-h-0 flex-1 overflow-y-auto";
|
|
21
|
+
readonly root: "flex min-h-0 w-full flex-1 flex-col";
|
|
22
|
+
readonly title: "text-2xl font-bold tracking-tight text-vuno-strong sm:text-3xl";
|
|
23
|
+
};
|
|
24
|
+
readonly variants: {
|
|
25
|
+
readonly mobileNavbar: {
|
|
26
|
+
readonly false: {
|
|
27
|
+
readonly navbar: "hidden sm:flex";
|
|
28
|
+
};
|
|
29
|
+
readonly true: {};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineTheme } from "#vuno/utils/theme";
|
|
2
|
+
export const pageTheme = defineTheme("page", {
|
|
3
|
+
/**
|
|
4
|
+
* La barra y el panel los pinta el módulo: los componentes de la gama Pro
|
|
5
|
+
* que había antes solo aportaban dos huecos, y encima había que anularles
|
|
6
|
+
* el relleno porque el ritmo lo pone `body`.
|
|
7
|
+
*/
|
|
8
|
+
slots: {
|
|
9
|
+
body: "flex w-full flex-col gap-7 px-4 py-6 sm:px-6 sm:py-8 lg:p-10",
|
|
10
|
+
breadcrumb: "hidden min-w-0 sm:block",
|
|
11
|
+
breadcrumbCurrent: "truncate text-sm font-semibold text-vuno-strong",
|
|
12
|
+
breadcrumbItem: "flex min-w-0 items-center gap-1.5",
|
|
13
|
+
breadcrumbLink: "truncate rounded-sm text-sm font-medium text-vuno-muted 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)",
|
|
14
|
+
breadcrumbList: "flex items-center gap-1.5",
|
|
15
|
+
breadcrumbSeparator: "size-4 shrink-0 text-vuno-subtle",
|
|
16
|
+
description: "max-w-prose text-sm text-vuno-muted",
|
|
17
|
+
heading: "flex flex-col gap-2",
|
|
18
|
+
navbar: "flex h-14 shrink-0 items-center justify-between gap-3 border-b border-vuno-border bg-vuno-surface/90 px-4 backdrop-blur-xl sm:px-6",
|
|
19
|
+
navbarLeft: "flex min-w-0 items-center gap-1",
|
|
20
|
+
navbarRight: "flex shrink-0 items-center gap-2",
|
|
21
|
+
panel: "min-h-0 flex-1 overflow-y-auto",
|
|
22
|
+
root: "flex min-h-0 w-full flex-1 flex-col",
|
|
23
|
+
title: "text-2xl font-bold tracking-tight text-vuno-strong sm:text-3xl"
|
|
24
|
+
},
|
|
25
|
+
variants: {
|
|
26
|
+
mobileNavbar: {
|
|
27
|
+
false: { navbar: "hidden sm:flex" },
|
|
28
|
+
true: {}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { useIcons, useMessages, useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
import { filled } from "#vuno/internal/slots";
|
|
5
|
+
import Icon from "#vuno/components/Icon/Icon.vue";
|
|
6
|
+
defineOptions({ name: "VunoPage" });
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
breadcrumb: { type: Array, required: false, default: void 0 },
|
|
9
|
+
description: { type: String, required: false, default: void 0 },
|
|
10
|
+
level: { type: Number, required: false, default: 1 },
|
|
11
|
+
title: { type: String, required: true },
|
|
12
|
+
ui: { type: Object, required: false, default: void 0 }
|
|
13
|
+
});
|
|
14
|
+
const slots = defineSlots();
|
|
15
|
+
const icons = useIcons();
|
|
16
|
+
const messages = useMessages();
|
|
17
|
+
const hasMobileNavbar = computed(() => filled(slots.actions) || filled(slots.leading));
|
|
18
|
+
const ui = useTheme(
|
|
19
|
+
"page",
|
|
20
|
+
() => props.ui,
|
|
21
|
+
() => ({ mobileNavbar: String(hasMobileNavbar.value) })
|
|
22
|
+
);
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<template>
|
|
26
|
+
<!--
|
|
27
|
+
El panel y la barra son dos `div` y no los de la gama Pro de Nuxt UI.
|
|
28
|
+
De aquellos solo se usaban cuatro huecos, y encima había que anularle el
|
|
29
|
+
relleno al panel porque el ritmo lo pone el cuerpo: lo que traían de
|
|
30
|
+
verdad —redimensionar, plegar, recordar el tamaño— no se usaba.
|
|
31
|
+
|
|
32
|
+
Se gana además quitarse una dependencia que no se veía: el panel de
|
|
33
|
+
Nuxt UI está pensado para vivir dentro de su grupo, así que `VPage`
|
|
34
|
+
solo se comportaba bien si el proyecto montaba ese armazón. Ahora
|
|
35
|
+
funciona en cualquier sitio.
|
|
36
|
+
-->
|
|
37
|
+
<div :class="ui.root">
|
|
38
|
+
<div :class="ui.navbar">
|
|
39
|
+
<!--
|
|
40
|
+
La miga ocupa la zona izquierda entera y no un hueco de título:
|
|
41
|
+
el título de una barra vive dentro de un `<h1>`, y una miga ahí
|
|
42
|
+
sería un `<nav>` dentro de un encabezado.
|
|
43
|
+
-->
|
|
44
|
+
<div :class="ui.navbarLeft">
|
|
45
|
+
<slot name="leading" />
|
|
46
|
+
|
|
47
|
+
<nav
|
|
48
|
+
v-if="props.breadcrumb?.length"
|
|
49
|
+
:aria-label="messages.breadcrumb"
|
|
50
|
+
:class="ui.breadcrumb"
|
|
51
|
+
>
|
|
52
|
+
<ol :class="ui.breadcrumbList">
|
|
53
|
+
<li
|
|
54
|
+
v-for="(item, index) in props.breadcrumb"
|
|
55
|
+
:key="`${item.label ?? item.to ?? index}`"
|
|
56
|
+
:class="ui.breadcrumbItem"
|
|
57
|
+
>
|
|
58
|
+
<!--
|
|
59
|
+
El separador va dentro del elemento al que
|
|
60
|
+
precede y no como elemento propio: no es un
|
|
61
|
+
sitio al que ir, y como `<li>` suelto haría que
|
|
62
|
+
un lector anunciara el doble de elementos de los
|
|
63
|
+
que hay. Decorativo, así que no se lee.
|
|
64
|
+
-->
|
|
65
|
+
<Icon
|
|
66
|
+
v-if="index > 0"
|
|
67
|
+
aria-hidden="true"
|
|
68
|
+
:class="ui.breadcrumbSeparator"
|
|
69
|
+
:name="icons.breadcrumbSeparator"
|
|
70
|
+
/>
|
|
71
|
+
|
|
72
|
+
<!--
|
|
73
|
+
El último no enlaza a donde ya estás, y lo dice:
|
|
74
|
+
`aria-current` es lo que distingue el sitio en el
|
|
75
|
+
que uno está de los que lo llevaron hasta aquí.
|
|
76
|
+
-->
|
|
77
|
+
<span
|
|
78
|
+
v-if="index === props.breadcrumb.length - 1"
|
|
79
|
+
aria-current="page"
|
|
80
|
+
:class="ui.breadcrumbCurrent"
|
|
81
|
+
>
|
|
82
|
+
{{ item.label }}
|
|
83
|
+
</span>
|
|
84
|
+
|
|
85
|
+
<NuxtLink
|
|
86
|
+
v-else-if="item.to"
|
|
87
|
+
:class="ui.breadcrumbLink"
|
|
88
|
+
:to="item.to"
|
|
89
|
+
>
|
|
90
|
+
{{ item.label }}
|
|
91
|
+
</NuxtLink>
|
|
92
|
+
|
|
93
|
+
<span
|
|
94
|
+
v-else
|
|
95
|
+
:class="ui.breadcrumbLink"
|
|
96
|
+
>
|
|
97
|
+
{{ item.label }}
|
|
98
|
+
</span>
|
|
99
|
+
</li>
|
|
100
|
+
</ol>
|
|
101
|
+
</nav>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div :class="ui.navbarRight">
|
|
105
|
+
<slot name="actions" />
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<div :class="ui.panel">
|
|
110
|
+
<div :class="ui.body">
|
|
111
|
+
<!-- Un `<div>` y no un `<header>`: un `<header>` suelto es un
|
|
112
|
+
landmark `banner`, y solo puede haber uno por página. -->
|
|
113
|
+
<div :class="ui.heading">
|
|
114
|
+
<component
|
|
115
|
+
:is="`h${props.level}`"
|
|
116
|
+
:class="ui.title"
|
|
117
|
+
>{{ props.title }}</component
|
|
118
|
+
>
|
|
119
|
+
|
|
120
|
+
<p
|
|
121
|
+
v-if="props.description"
|
|
122
|
+
:class="ui.description"
|
|
123
|
+
>
|
|
124
|
+
{{ props.description }}
|
|
125
|
+
</p>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<slot />
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</template>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { VunoHeadingLevel } from '#vuno/types/base';
|
|
2
|
+
import type { VunoBreadcrumbItem } from '#vuno/types/page';
|
|
3
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
4
|
+
type Props = {
|
|
5
|
+
breadcrumb?: VunoBreadcrumbItem[];
|
|
6
|
+
description?: string;
|
|
7
|
+
/**
|
|
8
|
+
* El nivel del título. `1` por defecto, que es lo correcto cuando
|
|
9
|
+
* esto **es** la pantalla.
|
|
10
|
+
*
|
|
11
|
+
* Se baja cuando no lo es: un `VPage` dentro de otra página deja dos
|
|
12
|
+
* `h1` y un salto en lo que venga debajo, y eso no se ve —se oye, y
|
|
13
|
+
* solo con un lector de pantalla—. El aspecto no cambia: el tamaño y
|
|
14
|
+
* el peso los pone `ui.title`, no la etiqueta.
|
|
15
|
+
*/
|
|
16
|
+
level?: VunoHeadingLevel;
|
|
17
|
+
title: string;
|
|
18
|
+
ui?: VunoUi<'page'>;
|
|
19
|
+
};
|
|
20
|
+
type __VLS_Slots = {
|
|
21
|
+
/** Acciones de la pantalla, a la derecha de la barra superior. */
|
|
22
|
+
actions?: () => unknown;
|
|
23
|
+
default?: () => unknown;
|
|
24
|
+
/** Lo que va antes de la miga de pan: un botón de plegado, por ejemplo. */
|
|
25
|
+
leading?: () => unknown;
|
|
26
|
+
};
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
28
|
+
description: string;
|
|
29
|
+
breadcrumb: VunoBreadcrumbItem[];
|
|
30
|
+
ui: VunoUi<"page">;
|
|
31
|
+
level: VunoHeadingLevel;
|
|
32
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
34
|
+
declare const _default: typeof __VLS_export;
|
|
35
|
+
export default _default;
|
|
36
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
37
|
+
new (): {
|
|
38
|
+
$slots: S;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { VunoSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
/**
|
|
4
|
+
* El paginador.
|
|
5
|
+
*
|
|
6
|
+
* Qué números se enseñan y dónde van los saltos lo decide `getPageItems`,
|
|
7
|
+
* que es lógica pura y vive en `utils/` con sus pruebas: es la parte que se
|
|
8
|
+
* equivoca en los extremos y en el caso de pocas páginas, y ahí un test
|
|
9
|
+
* vale más que mirar la pantalla.
|
|
10
|
+
*/
|
|
11
|
+
type Props = {
|
|
12
|
+
page?: number;
|
|
13
|
+
pageSize?: number;
|
|
14
|
+
/** Cuántas páginas se enseñan a cada lado de la actual. */
|
|
15
|
+
siblings?: number;
|
|
16
|
+
size?: VunoSize;
|
|
17
|
+
total?: number;
|
|
18
|
+
ui?: VunoUi<'pagination'>;
|
|
19
|
+
};
|
|
20
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
21
|
+
"update:page": (page: number) => any;
|
|
22
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
23
|
+
"onUpdate:page"?: ((page: number) => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
page: number;
|
|
26
|
+
size: VunoSize;
|
|
27
|
+
pageSize: number;
|
|
28
|
+
total: number;
|
|
29
|
+
ui: VunoUi<"pagination">;
|
|
30
|
+
siblings: number;
|
|
31
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
32
|
+
declare const _default: typeof __VLS_export;
|
|
33
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const paginationTheme: Record<"pagination", {
|
|
2
|
+
/**
|
|
3
|
+
* Casi sin clases a propósito: los números son botones, así que el color,
|
|
4
|
+
* el tamaño y el foco salen de `baseButton`. Lo único propio es el hueco de
|
|
5
|
+
* la elipsis, que mide lo mismo que un botón para que la fila no dé saltos
|
|
6
|
+
* al cambiar de página.
|
|
7
|
+
*/
|
|
8
|
+
readonly slots: {
|
|
9
|
+
readonly gap: "flex size-8 shrink-0 items-center justify-center text-vuno-muted select-none";
|
|
10
|
+
readonly list: "flex items-center gap-1";
|
|
11
|
+
readonly root: "flex items-center";
|
|
12
|
+
};
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineTheme } from "#vuno/utils/theme";
|
|
2
|
+
export const paginationTheme = defineTheme("pagination", {
|
|
3
|
+
/**
|
|
4
|
+
* Casi sin clases a propósito: los números son botones, así que el color,
|
|
5
|
+
* el tamaño y el foco salen de `baseButton`. Lo único propio es el hueco de
|
|
6
|
+
* la elipsis, que mide lo mismo que un botón para que la fila no dé saltos
|
|
7
|
+
* al cambiar de página.
|
|
8
|
+
*/
|
|
9
|
+
slots: {
|
|
10
|
+
gap: "flex size-8 shrink-0 items-center justify-center text-vuno-muted select-none",
|
|
11
|
+
list: "flex items-center gap-1",
|
|
12
|
+
root: "flex items-center"
|
|
13
|
+
}
|
|
14
|
+
});
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { useIcons, useMessages, useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
import { getPageCount, getPageItems } from "#vuno/utils/pagination";
|
|
5
|
+
import Button from "#vuno/components/Button/Button.vue";
|
|
6
|
+
defineOptions({ name: "VunoPagination" });
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
page: { type: Number, required: false, default: 1 },
|
|
9
|
+
pageSize: { type: Number, required: false, default: 10 },
|
|
10
|
+
siblings: { type: Number, required: false, default: 1 },
|
|
11
|
+
size: { type: String, required: false, default: "md" },
|
|
12
|
+
total: { type: Number, required: false, default: 0 },
|
|
13
|
+
ui: { type: Object, required: false, default: void 0 }
|
|
14
|
+
});
|
|
15
|
+
const emit = defineEmits(["update:page"]);
|
|
16
|
+
const icons = useIcons();
|
|
17
|
+
const messages = useMessages();
|
|
18
|
+
const ui = useTheme("pagination", () => props.ui);
|
|
19
|
+
const pageCount = computed(() => getPageCount(props.total, props.pageSize));
|
|
20
|
+
const items = computed(() => getPageItems(props.page, pageCount.value, props.siblings));
|
|
21
|
+
const isFirst = computed(() => props.page <= 1);
|
|
22
|
+
const isLast = computed(() => props.page >= pageCount.value);
|
|
23
|
+
function goTo(page) {
|
|
24
|
+
if (page < 1 || page > pageCount.value || page === props.page) return;
|
|
25
|
+
emit("update:page", page);
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<template>
|
|
30
|
+
<!--
|
|
31
|
+
Nada que pintar con una sola página: un paginador que solo puede llevar
|
|
32
|
+
a donde ya estás es ruido, y además ocupa sitio en la barra.
|
|
33
|
+
-->
|
|
34
|
+
<!--
|
|
35
|
+
Con nombre, que un `<nav>` es una región del documento: sin él, quien
|
|
36
|
+
salta de región en región oye «navegación» y no sabe si es el menú, la
|
|
37
|
+
miga o esto. Va antes de `$attrs`, así que un proyecto que pase el suyo
|
|
38
|
+
lo pisa —que es lo que hay que poder hacer cuando en la misma pantalla
|
|
39
|
+
hay dos tablas—.
|
|
40
|
+
-->
|
|
41
|
+
<nav
|
|
42
|
+
v-if="pageCount > 1"
|
|
43
|
+
:aria-label="messages.paginationLabel"
|
|
44
|
+
:class="ui.root"
|
|
45
|
+
>
|
|
46
|
+
<ul :class="ui.list">
|
|
47
|
+
<li>
|
|
48
|
+
<Button
|
|
49
|
+
:aria-label="messages.paginationFirst"
|
|
50
|
+
color="neutral"
|
|
51
|
+
:disabled="isFirst"
|
|
52
|
+
:icon="icons.paginationFirst"
|
|
53
|
+
:size="props.size"
|
|
54
|
+
variant="ghost"
|
|
55
|
+
@click="goTo(1)"
|
|
56
|
+
/>
|
|
57
|
+
</li>
|
|
58
|
+
|
|
59
|
+
<li>
|
|
60
|
+
<Button
|
|
61
|
+
:aria-label="messages.paginationPrevious"
|
|
62
|
+
color="neutral"
|
|
63
|
+
:disabled="isFirst"
|
|
64
|
+
:icon="icons.paginationPrevious"
|
|
65
|
+
:size="props.size"
|
|
66
|
+
variant="ghost"
|
|
67
|
+
@click="goTo(props.page - 1)"
|
|
68
|
+
/>
|
|
69
|
+
</li>
|
|
70
|
+
|
|
71
|
+
<li
|
|
72
|
+
v-for="(item, index) in items"
|
|
73
|
+
:key="item === 'gap' ? `gap-${index}` : item"
|
|
74
|
+
>
|
|
75
|
+
<!--
|
|
76
|
+
El salto no es un botón ni lleva texto para el lector: decir
|
|
77
|
+
«puntos suspensivos» entre dos números no informa de nada, y
|
|
78
|
+
el recorrido a saltos ya se entiende por los números que hay.
|
|
79
|
+
-->
|
|
80
|
+
<span
|
|
81
|
+
v-if="item === 'gap'"
|
|
82
|
+
aria-hidden="true"
|
|
83
|
+
:class="ui.gap"
|
|
84
|
+
>…</span
|
|
85
|
+
>
|
|
86
|
+
|
|
87
|
+
<!--
|
|
88
|
+
La etiqueta del lector dice «Página 3» y no solo «3», que
|
|
89
|
+
fuera de la fila no significaría nada. `aria-current` es lo
|
|
90
|
+
que distingue la actual, no el color.
|
|
91
|
+
-->
|
|
92
|
+
<Button
|
|
93
|
+
v-else
|
|
94
|
+
:aria-current="item === props.page ? 'page' : void 0"
|
|
95
|
+
:aria-label="`${messages.page} ${item}`"
|
|
96
|
+
:color="item === props.page ? 'primary' : 'neutral'"
|
|
97
|
+
:label="String(item)"
|
|
98
|
+
:size="props.size"
|
|
99
|
+
:variant="item === props.page ? 'solid' : 'ghost'"
|
|
100
|
+
@click="goTo(item)"
|
|
101
|
+
/>
|
|
102
|
+
</li>
|
|
103
|
+
|
|
104
|
+
<li>
|
|
105
|
+
<Button
|
|
106
|
+
:aria-label="messages.paginationNext"
|
|
107
|
+
color="neutral"
|
|
108
|
+
:disabled="isLast"
|
|
109
|
+
:icon="icons.paginationNext"
|
|
110
|
+
:size="props.size"
|
|
111
|
+
variant="ghost"
|
|
112
|
+
@click="goTo(props.page + 1)"
|
|
113
|
+
/>
|
|
114
|
+
</li>
|
|
115
|
+
|
|
116
|
+
<li>
|
|
117
|
+
<Button
|
|
118
|
+
:aria-label="messages.paginationLast"
|
|
119
|
+
color="neutral"
|
|
120
|
+
:disabled="isLast"
|
|
121
|
+
:icon="icons.paginationLast"
|
|
122
|
+
:size="props.size"
|
|
123
|
+
variant="ghost"
|
|
124
|
+
@click="goTo(pageCount)"
|
|
125
|
+
/>
|
|
126
|
+
</li>
|
|
127
|
+
</ul>
|
|
128
|
+
</nav>
|
|
129
|
+
</template>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { VunoSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
/**
|
|
4
|
+
* El paginador.
|
|
5
|
+
*
|
|
6
|
+
* Qué números se enseñan y dónde van los saltos lo decide `getPageItems`,
|
|
7
|
+
* que es lógica pura y vive en `utils/` con sus pruebas: es la parte que se
|
|
8
|
+
* equivoca en los extremos y en el caso de pocas páginas, y ahí un test
|
|
9
|
+
* vale más que mirar la pantalla.
|
|
10
|
+
*/
|
|
11
|
+
type Props = {
|
|
12
|
+
page?: number;
|
|
13
|
+
pageSize?: number;
|
|
14
|
+
/** Cuántas páginas se enseñan a cada lado de la actual. */
|
|
15
|
+
siblings?: number;
|
|
16
|
+
size?: VunoSize;
|
|
17
|
+
total?: number;
|
|
18
|
+
ui?: VunoUi<'pagination'>;
|
|
19
|
+
};
|
|
20
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
21
|
+
"update:page": (page: number) => any;
|
|
22
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
23
|
+
"onUpdate:page"?: ((page: number) => any) | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
page: number;
|
|
26
|
+
size: VunoSize;
|
|
27
|
+
pageSize: number;
|
|
28
|
+
total: number;
|
|
29
|
+
ui: VunoUi<"pagination">;
|
|
30
|
+
siblings: number;
|
|
31
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
32
|
+
declare const _default: typeof __VLS_export;
|
|
33
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { VunoSlideoverSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
type Props = {
|
|
4
|
+
description?: string;
|
|
5
|
+
dismissible?: boolean;
|
|
6
|
+
position?: 'end' | 'start';
|
|
7
|
+
size?: VunoSlideoverSize;
|
|
8
|
+
title?: string;
|
|
9
|
+
ui?: VunoUi<'slideover'>;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_Props = Props;
|
|
12
|
+
type __VLS_Slots = {
|
|
13
|
+
body?: () => unknown;
|
|
14
|
+
default?: () => unknown;
|
|
15
|
+
footer?: () => unknown;
|
|
16
|
+
header?: () => unknown;
|
|
17
|
+
};
|
|
18
|
+
type __VLS_ModelProps = {
|
|
19
|
+
'open'?: boolean;
|
|
20
|
+
};
|
|
21
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
22
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
23
|
+
close: () => any;
|
|
24
|
+
"update:open": (value: boolean) => any;
|
|
25
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
26
|
+
onClose?: (() => any) | undefined;
|
|
27
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
28
|
+
}>, {
|
|
29
|
+
description: string;
|
|
30
|
+
title: string;
|
|
31
|
+
size: VunoSlideoverSize;
|
|
32
|
+
position: "end" | "start";
|
|
33
|
+
ui: VunoUi<"slideover">;
|
|
34
|
+
dismissible: boolean;
|
|
35
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
40
|
+
new (): {
|
|
41
|
+
$slots: S;
|
|
42
|
+
};
|
|
43
|
+
};
|