@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,52 @@
|
|
|
1
|
+
import { type Component } from 'vue';
|
|
2
|
+
import type { VunoAlertRequest, VunoConfirmRequest, VunoNotifyRequest } from '#vuno/types/app';
|
|
3
|
+
/**
|
|
4
|
+
* Raíz del módulo: provee el contexto global, aloja los overlays y la pila
|
|
5
|
+
* de notificaciones.
|
|
6
|
+
*
|
|
7
|
+
* Monta directamente todo lo que necesitan las piezas del módulo.
|
|
8
|
+
*/
|
|
9
|
+
type Props = {
|
|
10
|
+
/**
|
|
11
|
+
* Dirección de lectura.
|
|
12
|
+
*
|
|
13
|
+
* Se provee a los componentes que la necesitan —hoy solo las
|
|
14
|
+
* pestañas, para invertir sus flechas— y se pone además en el
|
|
15
|
+
* elemento, que es de donde la lee el navegador para el texto y
|
|
16
|
+
* para las propiedades lógicas del CSS.
|
|
17
|
+
*/
|
|
18
|
+
dir?: 'ltr' | 'rtl';
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Monta un componente y espera a que emita `close`.
|
|
22
|
+
*
|
|
23
|
+
* Cerrar con Escape o pulsando fuera cuenta como cerrar sin resultado: un
|
|
24
|
+
* `update:open` en falso resuelve igual, porque si no la promesa se quedaría
|
|
25
|
+
* esperando para siempre a un diálogo que ya no está en pantalla.
|
|
26
|
+
*/
|
|
27
|
+
declare function open<TResult = unknown>(component: Component, props?: Record<string, unknown>): Promise<TResult | undefined>;
|
|
28
|
+
declare function closeAll(): void;
|
|
29
|
+
declare function dismiss(id: number): void;
|
|
30
|
+
declare function notify(request: VunoNotifyRequest): number;
|
|
31
|
+
declare var __VLS_1: {};
|
|
32
|
+
type __VLS_Slots = {} & {
|
|
33
|
+
default?: (props: typeof __VLS_1) => any;
|
|
34
|
+
};
|
|
35
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {
|
|
36
|
+
alert: (request: VunoAlertRequest) => Promise<void>;
|
|
37
|
+
closeAll: typeof closeAll;
|
|
38
|
+
confirm: (request: VunoConfirmRequest) => Promise<boolean>;
|
|
39
|
+
dismiss: typeof dismiss;
|
|
40
|
+
notify: typeof notify;
|
|
41
|
+
open: typeof open;
|
|
42
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
43
|
+
dir: "ltr" | "rtl";
|
|
44
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
45
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
46
|
+
declare const _default: typeof __VLS_export;
|
|
47
|
+
export default _default;
|
|
48
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
49
|
+
new (): {
|
|
50
|
+
$slots: S;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { VunoOverlayEntry } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
overlays: readonly VunoOverlayEntry[];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import OverlayItem from "#vuno/components/App/internal/OverlayItem/OverlayItem.vue";
|
|
4
|
+
defineOptions({ name: "VunoOverlay" });
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
overlays: { type: Array, required: true }
|
|
7
|
+
});
|
|
8
|
+
const topmost = computed(() => {
|
|
9
|
+
for (let index = props.overlays.length - 1; index >= 0; index -= 1) {
|
|
10
|
+
if (props.overlays[index]?.open) return index;
|
|
11
|
+
}
|
|
12
|
+
return -1;
|
|
13
|
+
});
|
|
14
|
+
const isTopmost = (index) => index === topmost.value;
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<!--
|
|
19
|
+
Los overlays globales se pintan aquí y no donde se pidieron. Un diálogo
|
|
20
|
+
montado dentro de la pantalla que lo abre desaparece con ella —al navegar,
|
|
21
|
+
al cerrarse un modal que lo contenía— y su promesa se queda sin resolver.
|
|
22
|
+
|
|
23
|
+
No hay escalera de z-index, y no por olvido: se escribió una y resultó
|
|
24
|
+
inútil. Los diálogos de vuno son `<dialog>` nativos, que viven en la capa
|
|
25
|
+
superior del navegador y se apilan por orden de apertura, por encima de
|
|
26
|
+
cualquier z-index. Mientras todo sea nativo, el apilado ya es correcto;
|
|
27
|
+
en cuanto se mezcla con algo que no lo sea, ningún z-index lo arregla,
|
|
28
|
+
porque la capa superior siempre gana.
|
|
29
|
+
|
|
30
|
+
Tampoco lleva contenedor propio: cada diálogo se sale del flujo por su
|
|
31
|
+
cuenta, así que un elemento aquí solo añadiría un nodo vacío.
|
|
32
|
+
-->
|
|
33
|
+
<OverlayItem
|
|
34
|
+
v-for="(entry, index) in props.overlays"
|
|
35
|
+
:key="entry.id"
|
|
36
|
+
:behind="!isTopmost(index)"
|
|
37
|
+
:entry="entry"
|
|
38
|
+
/>
|
|
39
|
+
</template>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { VunoOverlayEntry } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
overlays: readonly VunoOverlayEntry[];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VunoOverlayEntry } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
behind: boolean;
|
|
4
|
+
entry: VunoOverlayEntry;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { provide } from "vue";
|
|
3
|
+
import { vunoOverlayBehindInjectionKey } from "#vuno/internal/keys";
|
|
4
|
+
defineOptions({ name: "VunoOverlayItem" });
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
behind: { type: Boolean, required: true },
|
|
7
|
+
entry: { type: Object, required: true }
|
|
8
|
+
});
|
|
9
|
+
provide(vunoOverlayBehindInjectionKey, () => props.behind);
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<template>
|
|
13
|
+
<component
|
|
14
|
+
:is="props.entry.component"
|
|
15
|
+
v-bind="props.entry.props"
|
|
16
|
+
:open="props.entry.open"
|
|
17
|
+
v-on="props.entry.listeners"
|
|
18
|
+
/>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VunoOverlayEntry } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
behind: boolean;
|
|
4
|
+
entry: VunoOverlayEntry;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { VunoNotification } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
notification: VunoNotification;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
dismiss: () => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
8
|
+
onDismiss?: (() => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** El apilado lo añade `Overlay`; aquí solo lo que sea del proyecto. */
|
|
2
|
+
export declare const toastTheme: Record<"toast", {
|
|
3
|
+
readonly slots: {
|
|
4
|
+
readonly body: "min-w-0 flex-1";
|
|
5
|
+
readonly description: "mt-1 text-sm text-vuno-muted";
|
|
6
|
+
readonly icon: "mt-0.5 size-5 shrink-0 text-(--vuno-accent)";
|
|
7
|
+
readonly root: "flex w-full items-start gap-3 rounded-sm bg-vuno-surface-1 p-3 shadow-lg ring ring-(--vuno-accent)/25";
|
|
8
|
+
readonly title: "text-sm font-medium text-vuno-strong";
|
|
9
|
+
};
|
|
10
|
+
readonly variants: {
|
|
11
|
+
readonly color: Record<import("../../../../types/base.js").VunoColor, Record<"root", string>>;
|
|
12
|
+
};
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { accentByColor } from "#vuno/theme/shared";
|
|
2
|
+
import { defineTheme } from "#vuno/utils/theme";
|
|
3
|
+
export const toastTheme = defineTheme("toast", {
|
|
4
|
+
slots: {
|
|
5
|
+
body: "min-w-0 flex-1",
|
|
6
|
+
description: "mt-1 text-sm text-vuno-muted",
|
|
7
|
+
/*
|
|
8
|
+
* La tarjeta declara el acento para que el icono lo herede y el
|
|
9
|
+
* anillo diferencie el estado sin teñir toda la superficie. Un
|
|
10
|
+
* nombre compuesto como `text-${color}` no serviría: Tailwind no
|
|
11
|
+
* genera una clase que nunca aparece literal en el código.
|
|
12
|
+
*/
|
|
13
|
+
icon: "mt-0.5 size-5 shrink-0 text-(--vuno-accent)",
|
|
14
|
+
root: "flex w-full items-start gap-3 rounded-sm bg-vuno-surface-1 p-3 shadow-lg ring ring-(--vuno-accent)/25",
|
|
15
|
+
title: "text-sm font-medium text-vuno-strong"
|
|
16
|
+
},
|
|
17
|
+
variants: { color: accentByColor("root") }
|
|
18
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { useIcons, useMessages, useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
import Button from "#vuno/components/Button/Button.vue";
|
|
5
|
+
import Icon from "#vuno/components/Icon/Icon.vue";
|
|
6
|
+
defineOptions({ name: "VunoToast" });
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
notification: { type: Object, required: true }
|
|
9
|
+
});
|
|
10
|
+
const emit = defineEmits(["dismiss"]);
|
|
11
|
+
const icons = useIcons();
|
|
12
|
+
const messages = useMessages();
|
|
13
|
+
const ui = useTheme("toast", void 0, () => ({ color: props.notification.color ?? "neutral" }));
|
|
14
|
+
const defaultIcons = {
|
|
15
|
+
error: icons.value.notifyError,
|
|
16
|
+
info: icons.value.notifyInfo,
|
|
17
|
+
neutral: icons.value.notifyInfo,
|
|
18
|
+
success: icons.value.notifySuccess,
|
|
19
|
+
warning: icons.value.notifyWarning
|
|
20
|
+
};
|
|
21
|
+
const icon = computed(() => props.notification.icon ?? defaultIcons[props.notification.color]);
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<!--
|
|
26
|
+
**Sin semántica de zona en vivo, y a propósito.**
|
|
27
|
+
|
|
28
|
+
Esto es la tarjeta; quien anuncia es `Toaster.vue`, que tiene dos
|
|
29
|
+
regiones permanentes y es el único que sabe cuándo llega un aviso. Si
|
|
30
|
+
además lo anunciara la tarjeta, un aviso normal se oiría **dos veces**, y
|
|
31
|
+
un anuncio duplicado es peor que uno tardío: quien lo oye no sabe si han
|
|
32
|
+
pasado dos cosas.
|
|
33
|
+
|
|
34
|
+
El hueco que deja: un `<VToast>` suelto, fuera del toaster, no se anuncia
|
|
35
|
+
solo. Queda dicho aquí y en su ficha para que sea un hueco conocido y no
|
|
36
|
+
un defecto futuro.
|
|
37
|
+
-->
|
|
38
|
+
<div :class="ui.root">
|
|
39
|
+
<Icon
|
|
40
|
+
:class="ui.icon"
|
|
41
|
+
:name="icon"
|
|
42
|
+
/>
|
|
43
|
+
|
|
44
|
+
<div :class="ui.body">
|
|
45
|
+
<p :class="ui.title">{{ props.notification.title }}</p>
|
|
46
|
+
|
|
47
|
+
<p
|
|
48
|
+
v-if="props.notification.description"
|
|
49
|
+
:class="ui.description"
|
|
50
|
+
>
|
|
51
|
+
{{ props.notification.description }}
|
|
52
|
+
</p>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<Button
|
|
56
|
+
:aria-label="messages.close"
|
|
57
|
+
color="neutral"
|
|
58
|
+
:icon="icons.close"
|
|
59
|
+
size="xs"
|
|
60
|
+
variant="ghost"
|
|
61
|
+
@click="emit('dismiss')"
|
|
62
|
+
/>
|
|
63
|
+
</div>
|
|
64
|
+
</template>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { VunoNotification } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
notification: VunoNotification;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
dismiss: () => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
8
|
+
onDismiss?: (() => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { VunoNotification } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
notifications: VunoNotification[];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
dismiss: (id: number) => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
8
|
+
onDismiss?: ((id: number) => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const toasterTheme: Record<"toaster", {
|
|
2
|
+
readonly slots: {
|
|
3
|
+
/** Entra deslizando desde la derecha; sale encogiendo. */
|
|
4
|
+
readonly enterActive: "transition duration-200 ease-out";
|
|
5
|
+
readonly enterFrom: "translate-x-4 opacity-0";
|
|
6
|
+
readonly item: "pointer-events-auto";
|
|
7
|
+
readonly leaveActive: "absolute inset-x-0 transition duration-150 ease-in";
|
|
8
|
+
readonly leaveTo: "translate-x-4 opacity-0";
|
|
9
|
+
readonly list: "flex flex-col gap-2";
|
|
10
|
+
/** Sin esto, al cerrar una de en medio las de abajo dan un salto. */
|
|
11
|
+
readonly move: "transition-transform duration-200 ease-out";
|
|
12
|
+
/** Fijo arriba a la derecha; en móvil ocupa el ancho con margen. */
|
|
13
|
+
readonly root: "pointer-events-none fixed inset-x-4 top-4 z-100 flex flex-col gap-2 sm:left-auto sm:w-96";
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineTheme } from "#vuno/utils/theme";
|
|
2
|
+
export const toasterTheme = defineTheme("toaster", {
|
|
3
|
+
slots: {
|
|
4
|
+
/** Entra deslizando desde la derecha; sale encogiendo. */
|
|
5
|
+
enterActive: "transition duration-200 ease-out",
|
|
6
|
+
enterFrom: "translate-x-4 opacity-0",
|
|
7
|
+
item: "pointer-events-auto",
|
|
8
|
+
leaveActive: "absolute inset-x-0 transition duration-150 ease-in",
|
|
9
|
+
leaveTo: "translate-x-4 opacity-0",
|
|
10
|
+
list: "flex flex-col gap-2",
|
|
11
|
+
/** Sin esto, al cerrar una de en medio las de abajo dan un salto. */
|
|
12
|
+
move: "transition-transform duration-200 ease-out",
|
|
13
|
+
/** Fijo arriba a la derecha; en móvil ocupa el ancho con margen. */
|
|
14
|
+
root: "pointer-events-none fixed inset-x-4 top-4 z-100 flex flex-col gap-2 sm:left-auto sm:w-96"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { nextTick, ref, watch } from "vue";
|
|
3
|
+
import { useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
import Toast from "#vuno/components/App/internal/Toast/Toast.vue";
|
|
5
|
+
defineOptions({ name: "VunoToaster" });
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
notifications: { type: Array, required: true }
|
|
8
|
+
});
|
|
9
|
+
const emit = defineEmits(["dismiss"]);
|
|
10
|
+
const ui = useTheme("toaster");
|
|
11
|
+
const assertive = ref("");
|
|
12
|
+
const polite = ref("");
|
|
13
|
+
const announced = /* @__PURE__ */ new Set();
|
|
14
|
+
const owners = { assertive: null, polite: null };
|
|
15
|
+
async function announce(region, text) {
|
|
16
|
+
region.value = "";
|
|
17
|
+
await nextTick();
|
|
18
|
+
region.value = text;
|
|
19
|
+
}
|
|
20
|
+
watch(
|
|
21
|
+
() => props.notifications,
|
|
22
|
+
(list) => {
|
|
23
|
+
for (const notification of list) {
|
|
24
|
+
if (announced.has(notification.id)) continue;
|
|
25
|
+
announced.add(notification.id);
|
|
26
|
+
const text = [notification.title, notification.description].filter(Boolean).join(". ");
|
|
27
|
+
const tone = notification.color === "error" ? "assertive" : "polite";
|
|
28
|
+
owners[tone] = notification.id;
|
|
29
|
+
void announce(tone === "assertive" ? assertive : polite, text);
|
|
30
|
+
}
|
|
31
|
+
for (const id of announced) if (!list.some((notification) => notification.id === id)) announced.delete(id);
|
|
32
|
+
for (const tone of ["assertive", "polite"]) {
|
|
33
|
+
if (owners[tone] === null || list.some((notification) => notification.id === owners[tone])) continue;
|
|
34
|
+
owners[tone] = null;
|
|
35
|
+
(tone === "assertive" ? assertive : polite).value = "";
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{ deep: true, immediate: true }
|
|
39
|
+
);
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<template>
|
|
43
|
+
<!--
|
|
44
|
+
La pila se porta a `body` para que no la recorte ningún `overflow` ni la
|
|
45
|
+
reordene ningún contexto de apilamiento de la pantalla que la abrió.
|
|
46
|
+
|
|
47
|
+
`pointer-events-none` en el contenedor y `auto` en cada aviso: si no, una
|
|
48
|
+
franja invisible a lo alto de la pantalla se come los clics de lo que hay
|
|
49
|
+
detrás aunque no haya ninguna notificación.
|
|
50
|
+
-->
|
|
51
|
+
<Teleport to="body">
|
|
52
|
+
<div :class="ui.root">
|
|
53
|
+
<!--
|
|
54
|
+
Las dos regiones, permanentes y solo para el lector. Un fallo se
|
|
55
|
+
anuncia de inmediato y lo demás espera a que termine la frase en
|
|
56
|
+
curso: interrumpir por un «guardado» es ruido. Son dos y no una
|
|
57
|
+
porque la urgencia es del aviso, y `aria-live` no se puede cambiar
|
|
58
|
+
sobre la marcha sin perder el anuncio.
|
|
59
|
+
-->
|
|
60
|
+
<div
|
|
61
|
+
aria-live="polite"
|
|
62
|
+
class="sr-only"
|
|
63
|
+
data-test="toaster-polite"
|
|
64
|
+
>
|
|
65
|
+
{{ polite }}
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div
|
|
69
|
+
aria-live="assertive"
|
|
70
|
+
class="sr-only"
|
|
71
|
+
data-test="toaster-assertive"
|
|
72
|
+
>
|
|
73
|
+
{{ assertive }}
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<!--
|
|
77
|
+
`TransitionGroup` y no `Transition`: hay varias a la vez y al
|
|
78
|
+
quitar una de en medio las de abajo tienen que subir. `move`
|
|
79
|
+
anima justo eso, que si no da un salto.
|
|
80
|
+
-->
|
|
81
|
+
<TransitionGroup
|
|
82
|
+
:class="ui.list"
|
|
83
|
+
:enterActiveClass="ui.enterActive"
|
|
84
|
+
:enterFromClass="ui.enterFrom"
|
|
85
|
+
:leaveActiveClass="ui.leaveActive"
|
|
86
|
+
:leaveToClass="ui.leaveTo"
|
|
87
|
+
:moveClass="ui.move"
|
|
88
|
+
tag="div"
|
|
89
|
+
>
|
|
90
|
+
<Toast
|
|
91
|
+
v-for="notification in props.notifications"
|
|
92
|
+
:key="notification.id"
|
|
93
|
+
:class="ui.item"
|
|
94
|
+
:notification="notification"
|
|
95
|
+
@dismiss="emit('dismiss', notification.id)"
|
|
96
|
+
/>
|
|
97
|
+
</TransitionGroup>
|
|
98
|
+
</div>
|
|
99
|
+
</Teleport>
|
|
100
|
+
</template>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { VunoNotification } from '#vuno/types/app';
|
|
2
|
+
type Props = {
|
|
3
|
+
notifications: VunoNotification[];
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
dismiss: (id: number) => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
8
|
+
onDismiss?: ((id: number) => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { VunoRadius, VunoSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
/**
|
|
4
|
+
* La imagen redonda de una fila: una foto de producto, un logotipo, una
|
|
5
|
+
* persona.
|
|
6
|
+
*
|
|
7
|
+
* El `alt` no es decoración: en un listado, la alternativa útil es el nombre
|
|
8
|
+
* de la fila, y de ahí salen también las iniciales cuando no hay imagen que
|
|
9
|
+
* enseñar.
|
|
10
|
+
*/
|
|
11
|
+
type Props = {
|
|
12
|
+
alt?: string;
|
|
13
|
+
/** La curvatura. Sin valor, la que traiga el tema. */
|
|
14
|
+
radius?: VunoRadius;
|
|
15
|
+
size?: VunoSize;
|
|
16
|
+
src?: string;
|
|
17
|
+
ui?: VunoUi<'avatar'>;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
20
|
+
radius: VunoRadius;
|
|
21
|
+
size: VunoSize;
|
|
22
|
+
alt: string;
|
|
23
|
+
ui: VunoUi<"avatar">;
|
|
24
|
+
src: string;
|
|
25
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
declare const _default: typeof __VLS_export;
|
|
27
|
+
export default _default;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const avatarTheme: Record<"avatar", {
|
|
2
|
+
/**
|
|
3
|
+
* La escala es la de Nuxt UI y no una propia, para que `size: 'sm'` siga
|
|
4
|
+
* midiendo los mismos 28 px que hoy en la columna de imagen.
|
|
5
|
+
*/
|
|
6
|
+
readonly slots: {
|
|
7
|
+
readonly image: "size-full rounded-[inherit] object-cover";
|
|
8
|
+
readonly root: "inline-flex shrink-0 items-center justify-center rounded-sm bg-vuno-surface-1 align-middle font-medium text-vuno-muted select-none";
|
|
9
|
+
};
|
|
10
|
+
readonly variants: {
|
|
11
|
+
readonly radius: Record<import("../../types/base.js").VunoRadius, Record<"root", string>>;
|
|
12
|
+
readonly size: {
|
|
13
|
+
readonly xs: {
|
|
14
|
+
readonly root: "size-6 text-xs";
|
|
15
|
+
};
|
|
16
|
+
readonly sm: {
|
|
17
|
+
readonly root: "size-7 text-sm";
|
|
18
|
+
};
|
|
19
|
+
readonly md: {
|
|
20
|
+
readonly root: "size-8 text-sm";
|
|
21
|
+
};
|
|
22
|
+
readonly lg: {
|
|
23
|
+
readonly root: "size-9 text-sm";
|
|
24
|
+
};
|
|
25
|
+
readonly xl: {
|
|
26
|
+
readonly root: "size-10 text-base";
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { radiusByStep } from "#vuno/theme/shared";
|
|
2
|
+
import { defineTheme } from "#vuno/utils/theme";
|
|
3
|
+
export const avatarTheme = defineTheme("avatar", {
|
|
4
|
+
/**
|
|
5
|
+
* La escala es la de Nuxt UI y no una propia, para que `size: 'sm'` siga
|
|
6
|
+
* midiendo los mismos 28 px que hoy en la columna de imagen.
|
|
7
|
+
*/
|
|
8
|
+
slots: {
|
|
9
|
+
image: "size-full rounded-[inherit] object-cover",
|
|
10
|
+
root: "inline-flex shrink-0 items-center justify-center rounded-sm bg-vuno-surface-1 align-middle font-medium text-vuno-muted select-none"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
radius: radiusByStep("root"),
|
|
14
|
+
size: {
|
|
15
|
+
xs: { root: "size-6 text-xs" },
|
|
16
|
+
sm: { root: "size-7 text-sm" },
|
|
17
|
+
md: { root: "size-8 text-sm" },
|
|
18
|
+
lg: { root: "size-9 text-sm" },
|
|
19
|
+
xl: { root: "size-10 text-base" }
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, ref, watch } from "vue";
|
|
3
|
+
import { useTheme } from "#vuno/composables/useTheme";
|
|
4
|
+
defineOptions({ name: "VunoAvatar" });
|
|
5
|
+
const props = defineProps({
|
|
6
|
+
alt: { type: String, required: false, default: "" },
|
|
7
|
+
radius: { type: String, required: false, default: void 0 },
|
|
8
|
+
size: { type: String, required: false, default: "md" },
|
|
9
|
+
src: { type: String, required: false, default: void 0 },
|
|
10
|
+
ui: { type: Object, required: false, default: void 0 }
|
|
11
|
+
});
|
|
12
|
+
const ui = useTheme(
|
|
13
|
+
"avatar",
|
|
14
|
+
() => props.ui,
|
|
15
|
+
() => ({ radius: props.radius, size: props.size })
|
|
16
|
+
);
|
|
17
|
+
const failed = ref(false);
|
|
18
|
+
const showImage = computed(() => Boolean(props.src) && !failed.value);
|
|
19
|
+
const initials = computed(
|
|
20
|
+
() => props.alt.split(/\s+/).filter(Boolean).slice(0, 2).map((word) => [...word][0]?.toLocaleUpperCase() ?? "").join("")
|
|
21
|
+
);
|
|
22
|
+
watch(
|
|
23
|
+
() => props.src,
|
|
24
|
+
() => {
|
|
25
|
+
failed.value = false;
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<template>
|
|
31
|
+
<span :class="ui.root">
|
|
32
|
+
<img
|
|
33
|
+
v-if="showImage"
|
|
34
|
+
:alt="props.alt"
|
|
35
|
+
:class="ui.image"
|
|
36
|
+
:src="props.src"
|
|
37
|
+
@error="failed = true"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
<!--
|
|
41
|
+
Sin imagen, las iniciales son decoración: el nombre de la fila ya
|
|
42
|
+
está escrito en la columna de al lado, y anunciarlo aquí otra vez
|
|
43
|
+
—peor, deletreado— solo alarga la lectura de cada fila.
|
|
44
|
+
-->
|
|
45
|
+
<span
|
|
46
|
+
v-else
|
|
47
|
+
aria-hidden="true"
|
|
48
|
+
>{{ initials }}</span
|
|
49
|
+
>
|
|
50
|
+
</span>
|
|
51
|
+
</template>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { VunoRadius, VunoSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
/**
|
|
4
|
+
* La imagen redonda de una fila: una foto de producto, un logotipo, una
|
|
5
|
+
* persona.
|
|
6
|
+
*
|
|
7
|
+
* El `alt` no es decoración: en un listado, la alternativa útil es el nombre
|
|
8
|
+
* de la fila, y de ahí salen también las iniciales cuando no hay imagen que
|
|
9
|
+
* enseñar.
|
|
10
|
+
*/
|
|
11
|
+
type Props = {
|
|
12
|
+
alt?: string;
|
|
13
|
+
/** La curvatura. Sin valor, la que traiga el tema. */
|
|
14
|
+
radius?: VunoRadius;
|
|
15
|
+
size?: VunoSize;
|
|
16
|
+
src?: string;
|
|
17
|
+
ui?: VunoUi<'avatar'>;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
20
|
+
radius: VunoRadius;
|
|
21
|
+
size: VunoSize;
|
|
22
|
+
alt: string;
|
|
23
|
+
ui: VunoUi<"avatar">;
|
|
24
|
+
src: string;
|
|
25
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
declare const _default: typeof __VLS_export;
|
|
27
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { VunoColor, VunoRadius, VunoSize } from '#vuno/types/base';
|
|
2
|
+
import type { VunoUi } from '#vuno/types/slots';
|
|
3
|
+
/**
|
|
4
|
+
* Una etiqueta de estado: el estado de una fila, el contador de filtros
|
|
5
|
+
* activos, el resumen de un filtro puesto.
|
|
6
|
+
*
|
|
7
|
+
* No es un botón ni lleva acción propia. Cuando algo dentro sí la lleva
|
|
8
|
+
* —la cruz que quita un filtro— va en el slot, para que el elemento que se
|
|
9
|
+
* pulsa sea ese y no la etiqueta entera.
|
|
10
|
+
*/
|
|
11
|
+
type VunoBadgeVariant = 'outline' | 'soft' | 'solid' | 'subtle';
|
|
12
|
+
type Props = {
|
|
13
|
+
color?: VunoColor;
|
|
14
|
+
label?: string;
|
|
15
|
+
/** La curvatura. Sin valor, la que traiga el tema. */
|
|
16
|
+
radius?: VunoRadius;
|
|
17
|
+
size?: VunoSize;
|
|
18
|
+
ui?: VunoUi<'badge'>;
|
|
19
|
+
variant?: VunoBadgeVariant;
|
|
20
|
+
};
|
|
21
|
+
declare var __VLS_1: {};
|
|
22
|
+
type __VLS_Slots = {} & {
|
|
23
|
+
default?: (props: typeof __VLS_1) => any;
|
|
24
|
+
};
|
|
25
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
26
|
+
color: VunoColor;
|
|
27
|
+
radius: VunoRadius;
|
|
28
|
+
size: VunoSize;
|
|
29
|
+
variant: VunoBadgeVariant;
|
|
30
|
+
label: string;
|
|
31
|
+
ui: VunoUi<"badge">;
|
|
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
|
+
};
|