@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,233 @@
|
|
|
1
|
+
import type { VunoSize } from './base.js';
|
|
2
|
+
import type { VunoFieldInputType, VunoFieldType } from './field-type.js';
|
|
3
|
+
import type { VunoResponsiveColumns, VunoResponsiveColumnSpan } from './responsive.js';
|
|
4
|
+
import type { VunoUi } from './slots.js';
|
|
5
|
+
type WithType<TField, TType extends string> = TField & {
|
|
6
|
+
name: string;
|
|
7
|
+
type: TType;
|
|
8
|
+
};
|
|
9
|
+
/** Tema del control interno que cada `VField*` compone con su propia raíz. */
|
|
10
|
+
type VunoFieldControlThemeKey = {
|
|
11
|
+
array: never;
|
|
12
|
+
checkbox: 'checkbox';
|
|
13
|
+
color: 'control' | 'input';
|
|
14
|
+
currency: 'control' | 'input' | 'numberInput';
|
|
15
|
+
date: 'control' | 'input';
|
|
16
|
+
email: 'control' | 'input';
|
|
17
|
+
file: 'fileUpload';
|
|
18
|
+
number: 'control' | 'input' | 'numberInput';
|
|
19
|
+
password: 'control' | 'input';
|
|
20
|
+
phone: 'control' | 'input';
|
|
21
|
+
radio: 'radioGroup';
|
|
22
|
+
search: 'control' | 'input';
|
|
23
|
+
select: 'control' | 'select';
|
|
24
|
+
slug: 'control' | 'input';
|
|
25
|
+
switch: 'switch';
|
|
26
|
+
tags: 'control' | 'tagsInput';
|
|
27
|
+
text: 'control' | 'input';
|
|
28
|
+
textarea: 'control' | 'textarea';
|
|
29
|
+
url: 'control' | 'input';
|
|
30
|
+
};
|
|
31
|
+
type VunoFieldThemeKey<TType extends VunoFieldType> = TType extends VunoFieldInputType ? 'fieldInput' : `field${Capitalize<TType>}`;
|
|
32
|
+
type VunoFieldUiKey<TType extends VunoFieldType> = VunoFieldControlThemeKey[TType] | VunoFieldThemeKey<TType>;
|
|
33
|
+
export type VunoFieldColumns = VunoResponsiveColumns | VunoResponsiveColumnSpan;
|
|
34
|
+
/** Posición de la etiqueta respecto al control. */
|
|
35
|
+
export type VunoFieldOrientation = 'horizontal' | 'vertical';
|
|
36
|
+
/** Dirección interna de controles que también tienen una disposición propia. */
|
|
37
|
+
export type VunoControlOrientation = 'horizontal' | 'vertical';
|
|
38
|
+
/** Valor que puede tomar una opción de lista. */
|
|
39
|
+
export type VunoFieldOptionValue = boolean | null | number | string;
|
|
40
|
+
/** Opción de los campos con lista (select, radio). */
|
|
41
|
+
export type VunoFieldOption = {
|
|
42
|
+
description?: string;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
icon?: string;
|
|
45
|
+
label: string;
|
|
46
|
+
value: VunoFieldOptionValue;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Props comunes a todos los campos: layout dentro del grid, metadatos del
|
|
50
|
+
* envoltorio de campo y los dos puntos de escape de estilo (`class` y `ui`).
|
|
51
|
+
*/
|
|
52
|
+
export type VunoFieldBase<TType extends VunoFieldType = VunoFieldType> = {
|
|
53
|
+
name?: string;
|
|
54
|
+
class?: string;
|
|
55
|
+
columns?: VunoFieldColumns;
|
|
56
|
+
description?: string;
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
/** Error controlado cuando el campo se usa fuera de `VForm`. */
|
|
59
|
+
error?: string;
|
|
60
|
+
help?: string;
|
|
61
|
+
hint?: string;
|
|
62
|
+
label?: string;
|
|
63
|
+
/** Etiqueta arriba por defecto, o al costado del control. */
|
|
64
|
+
orientation?: VunoFieldOrientation;
|
|
65
|
+
required?: boolean;
|
|
66
|
+
size?: VunoSize;
|
|
67
|
+
ui?: VunoUi<VunoFieldUiKey<TType>>;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Lista de grupos de campos repetibles (variantes, líneas, contactos...).
|
|
71
|
+
*
|
|
72
|
+
* El tipo es recursivo a propósito: dentro de un array puede haber otro, y los
|
|
73
|
+
* valores se guardan en el estado como `nombre.0.campo`, que es el mismo
|
|
74
|
+
* formato de ruta que usan los errores de validación.
|
|
75
|
+
*/
|
|
76
|
+
export type VunoFieldArray = VunoFieldBase<'array'> & {
|
|
77
|
+
addLabel?: string;
|
|
78
|
+
fields: VunoField[];
|
|
79
|
+
/** Número máximo de elementos; al alcanzarlo se desactiva añadir. */
|
|
80
|
+
max?: number;
|
|
81
|
+
/** Número mínimo; por debajo no se puede eliminar. */
|
|
82
|
+
min?: number;
|
|
83
|
+
sortable?: boolean;
|
|
84
|
+
};
|
|
85
|
+
export type VunoFieldCheckbox = VunoFieldBase<'checkbox'> & {
|
|
86
|
+
indeterminate?: boolean;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Interruptor para un booleano que es un estado encendido o apagado, no una
|
|
90
|
+
* opción que se marca. La diferencia con `checkbox` es de lectura, no de dato:
|
|
91
|
+
* en una pantalla de ajustes el interruptor dice «esto está activo» y la
|
|
92
|
+
* casilla dice «esto queda seleccionado».
|
|
93
|
+
*/
|
|
94
|
+
export type VunoFieldSwitch = VunoFieldBase<'switch'>;
|
|
95
|
+
export type VunoFieldColor = VunoFieldBase<'color'> & {
|
|
96
|
+
placeholder?: string;
|
|
97
|
+
};
|
|
98
|
+
export type VunoFieldCurrency = VunoFieldBase<'currency'> & {
|
|
99
|
+
controlsOrientation?: VunoControlOrientation;
|
|
100
|
+
currency: string;
|
|
101
|
+
decimals?: number;
|
|
102
|
+
max?: number;
|
|
103
|
+
min?: number;
|
|
104
|
+
placeholder?: string;
|
|
105
|
+
step?: number;
|
|
106
|
+
};
|
|
107
|
+
export type VunoFieldDate = VunoFieldBase<'date'> & {
|
|
108
|
+
autocomplete?: string;
|
|
109
|
+
autofocus?: boolean;
|
|
110
|
+
max?: string;
|
|
111
|
+
min?: string;
|
|
112
|
+
};
|
|
113
|
+
export type VunoFieldEmail = VunoFieldBase<'email'> & {
|
|
114
|
+
autocomplete?: string;
|
|
115
|
+
autofocus?: boolean;
|
|
116
|
+
icon?: string;
|
|
117
|
+
placeholder?: string;
|
|
118
|
+
};
|
|
119
|
+
/** Props del único componente público para inputs nativos de texto y fecha. */
|
|
120
|
+
export type VunoFieldInput = VunoFieldBase<VunoFieldInputType> & {
|
|
121
|
+
autocomplete?: string;
|
|
122
|
+
autofocus?: boolean;
|
|
123
|
+
icon?: string;
|
|
124
|
+
max?: string;
|
|
125
|
+
maxlength?: number;
|
|
126
|
+
min?: string;
|
|
127
|
+
placeholder?: string;
|
|
128
|
+
type?: VunoFieldInputType;
|
|
129
|
+
};
|
|
130
|
+
export type VunoFieldFile = VunoFieldBase<'file'> & {
|
|
131
|
+
accept?: string;
|
|
132
|
+
dropzone?: boolean;
|
|
133
|
+
layout?: 'grid' | 'list';
|
|
134
|
+
multiple?: boolean;
|
|
135
|
+
reorderable?: boolean;
|
|
136
|
+
};
|
|
137
|
+
export type VunoFieldNumber = VunoFieldBase<'number'> & {
|
|
138
|
+
controlsOrientation?: VunoControlOrientation;
|
|
139
|
+
max?: number;
|
|
140
|
+
min?: number;
|
|
141
|
+
placeholder?: string;
|
|
142
|
+
step?: number;
|
|
143
|
+
};
|
|
144
|
+
export type VunoFieldPassword = VunoFieldBase<'password'> & {
|
|
145
|
+
autocomplete?: string;
|
|
146
|
+
autofocus?: boolean;
|
|
147
|
+
placeholder?: string;
|
|
148
|
+
};
|
|
149
|
+
export type VunoFieldPhone = VunoFieldBase<'phone'> & {
|
|
150
|
+
autocomplete?: string;
|
|
151
|
+
autofocus?: boolean;
|
|
152
|
+
icon?: string;
|
|
153
|
+
maxlength?: number;
|
|
154
|
+
placeholder?: string;
|
|
155
|
+
};
|
|
156
|
+
export type VunoFieldRadio = VunoFieldBase<'radio'> & {
|
|
157
|
+
items: VunoFieldOption[];
|
|
158
|
+
itemsOrientation?: VunoControlOrientation;
|
|
159
|
+
};
|
|
160
|
+
export type VunoFieldSearch = VunoFieldBase<'search'> & {
|
|
161
|
+
autocomplete?: string;
|
|
162
|
+
autofocus?: boolean;
|
|
163
|
+
placeholder?: string;
|
|
164
|
+
};
|
|
165
|
+
export type VunoFieldSelect = VunoFieldBase<'select'> & {
|
|
166
|
+
items: VunoFieldOption[];
|
|
167
|
+
multiple?: boolean;
|
|
168
|
+
placeholder?: string;
|
|
169
|
+
searchable?: boolean;
|
|
170
|
+
};
|
|
171
|
+
export type VunoFieldSlug = VunoFieldBase<'slug'> & {
|
|
172
|
+
placeholder?: string;
|
|
173
|
+
/** Campo del que se deriva el slug automáticamente. */
|
|
174
|
+
source: string;
|
|
175
|
+
/** Valor origen cuando el campo se usa fuera de `VForm`. */
|
|
176
|
+
sourceValue?: string;
|
|
177
|
+
};
|
|
178
|
+
export type VunoFieldTags = VunoFieldBase<'tags'> & {
|
|
179
|
+
max?: number;
|
|
180
|
+
placeholder?: string;
|
|
181
|
+
};
|
|
182
|
+
export type VunoFieldText = VunoFieldBase<'text'> & {
|
|
183
|
+
autocomplete?: string;
|
|
184
|
+
autofocus?: boolean;
|
|
185
|
+
icon?: string;
|
|
186
|
+
maxlength?: number;
|
|
187
|
+
placeholder?: string;
|
|
188
|
+
};
|
|
189
|
+
export type VunoFieldTextarea = VunoFieldBase<'textarea'> & {
|
|
190
|
+
autoresize?: boolean;
|
|
191
|
+
maxrows?: number;
|
|
192
|
+
placeholder?: string;
|
|
193
|
+
rows?: number;
|
|
194
|
+
};
|
|
195
|
+
export type VunoFieldUrl = VunoFieldBase<'url'> & {
|
|
196
|
+
autocomplete?: string;
|
|
197
|
+
autofocus?: boolean;
|
|
198
|
+
icon?: string;
|
|
199
|
+
maxlength?: number;
|
|
200
|
+
placeholder?: string;
|
|
201
|
+
};
|
|
202
|
+
/** Contrato único entre cada discriminante y los props de su campo. */
|
|
203
|
+
export type VunoFieldByType = {
|
|
204
|
+
array: VunoFieldArray;
|
|
205
|
+
checkbox: VunoFieldCheckbox;
|
|
206
|
+
color: VunoFieldColor;
|
|
207
|
+
currency: VunoFieldCurrency;
|
|
208
|
+
date: VunoFieldDate;
|
|
209
|
+
email: VunoFieldEmail;
|
|
210
|
+
file: VunoFieldFile;
|
|
211
|
+
number: VunoFieldNumber;
|
|
212
|
+
password: VunoFieldPassword;
|
|
213
|
+
phone: VunoFieldPhone;
|
|
214
|
+
radio: VunoFieldRadio;
|
|
215
|
+
search: VunoFieldSearch;
|
|
216
|
+
select: VunoFieldSelect;
|
|
217
|
+
slug: VunoFieldSlug;
|
|
218
|
+
switch: VunoFieldSwitch;
|
|
219
|
+
tags: VunoFieldTags;
|
|
220
|
+
text: VunoFieldText;
|
|
221
|
+
textarea: VunoFieldTextarea;
|
|
222
|
+
url: VunoFieldUrl;
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* Unión discriminada por `type`. Se deriva del mapa para que añadir un tipo de
|
|
226
|
+
* campo no obligue a repetir aquí una segunda unión manual.
|
|
227
|
+
*/
|
|
228
|
+
export type VunoField = {
|
|
229
|
+
[TType in VunoFieldType]: WithType<VunoFieldByType[TType], TType>;
|
|
230
|
+
}[VunoFieldType];
|
|
231
|
+
/** Extrae los props de un tipo concreto de campo: `VunoFieldOf<'slug'>`. */
|
|
232
|
+
export type VunoFieldOf<TType extends VunoFieldType> = WithType<VunoFieldByType[TType], TType>;
|
|
233
|
+
export {};
|
|
File without changes
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ComputedRef } from 'vue';
|
|
2
|
+
import type { VunoSize } from './base.js';
|
|
3
|
+
import type { VunoField, VunoFieldColumns } from './field.js';
|
|
4
|
+
/** Cómo se disponen las secciones del formulario. */
|
|
5
|
+
export type VunoFormLayout = 'sections' | 'tabs';
|
|
6
|
+
export type VunoFormSection = {
|
|
7
|
+
id: string;
|
|
8
|
+
columns?: VunoFieldColumns;
|
|
9
|
+
description?: string;
|
|
10
|
+
/** Campos de la sección, tipados por la unión discriminada `VunoField`. */
|
|
11
|
+
fields: VunoField[];
|
|
12
|
+
/** Icono de la pestaña cuando el formulario usa `layout: 'tabs'`. */
|
|
13
|
+
icon?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
};
|
|
16
|
+
export type VunoFormDefinition = {
|
|
17
|
+
/**
|
|
18
|
+
* `tabs` convierte cada sección en una pestaña, usando su `title` como
|
|
19
|
+
* rótulo. Útil en formularios largos y dentro de un modal.
|
|
20
|
+
*/
|
|
21
|
+
layout?: VunoFormLayout;
|
|
22
|
+
sections: VunoFormSection[];
|
|
23
|
+
/** Tamaño aplicado a los campos que no declaran el suyo. */
|
|
24
|
+
size?: VunoSize;
|
|
25
|
+
};
|
|
26
|
+
export type VunoFormState = Record<string, unknown>;
|
|
27
|
+
/** Un segmento de ruta admitido por el contrato Standard Schema. */
|
|
28
|
+
export type VunoSchemaPathSegment = PropertyKey | {
|
|
29
|
+
key: PropertyKey;
|
|
30
|
+
};
|
|
31
|
+
export type VunoSchemaIssue = {
|
|
32
|
+
readonly message: string;
|
|
33
|
+
readonly path?: readonly VunoSchemaPathSegment[];
|
|
34
|
+
};
|
|
35
|
+
/** Resultado discriminado de una validación Standard Schema. */
|
|
36
|
+
export type VunoSchemaResult<TValue> = {
|
|
37
|
+
readonly issues: readonly VunoSchemaIssue[];
|
|
38
|
+
} | {
|
|
39
|
+
readonly issues?: undefined;
|
|
40
|
+
readonly value: TValue;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Contrato mínimo que comparten zod, valibot y arktype.
|
|
44
|
+
*
|
|
45
|
+
* La salida no se ata al estado de entrada: un formulario incompleto puede no
|
|
46
|
+
* satisfacer todavía el tipo que el esquema promete devolver.
|
|
47
|
+
*/
|
|
48
|
+
export type VunoSchema<TValue = unknown> = {
|
|
49
|
+
'~standard': {
|
|
50
|
+
validate: (value: unknown) => Promise<VunoSchemaResult<TValue>> | VunoSchemaResult<TValue>;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export interface VunoFormContext<TState extends VunoFormState = VunoFormState> {
|
|
54
|
+
dirty: ComputedRef<boolean>;
|
|
55
|
+
initialState: TState;
|
|
56
|
+
size: ComputedRef<undefined | VunoSize>;
|
|
57
|
+
touched: Record<string, boolean>;
|
|
58
|
+
/** El error de un campo, solo cuando toca enseñarlo. */
|
|
59
|
+
errorFor(name: string): string | undefined;
|
|
60
|
+
getValue<TValue = unknown>(name: string): TValue | undefined;
|
|
61
|
+
isDirty(name?: string): boolean;
|
|
62
|
+
isTouched(name: string): boolean;
|
|
63
|
+
reset(): void;
|
|
64
|
+
resetField(name: string): void;
|
|
65
|
+
setTouched(name: string, touched?: boolean): void;
|
|
66
|
+
setValue<TValue = unknown>(name: string, value: TValue): void;
|
|
67
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type { VunoAlertProps } from './alert.js';
|
|
2
|
+
export type { VunoAlertRequest, VunoConfirmRequest, VunoContext, VunoNotification, VunoNotificationColor, VunoNotifyRequest, VunoOverlayEntry } from './app.js';
|
|
3
|
+
export * from './app-config.js';
|
|
4
|
+
export type { VunoColor, VunoHeadingLevel, VunoModalSize, VunoPlacement, VunoPortalTarget, VunoRadius, VunoSize, VunoSlideoverSize, VunoSlots } from './base.js';
|
|
5
|
+
export type { VunoConfirmOptions } from './confirm.js';
|
|
6
|
+
export type { VunoCrud, VunoCrudMessages, VunoCrudOptions, VunoCrudPage } from './crud.js';
|
|
7
|
+
export type { VunoControlOrientation, VunoField, VunoFieldArray, VunoFieldBase, VunoFieldByType, VunoFieldCheckbox, VunoFieldColor, VunoFieldColumns, VunoFieldCurrency, VunoFieldDate, VunoFieldEmail, VunoFieldFile, VunoFieldInput, VunoFieldNumber, VunoFieldOf, VunoFieldOption, VunoFieldOptionValue, VunoFieldOrientation, VunoFieldPassword, VunoFieldPhone, VunoFieldRadio, VunoFieldSearch, VunoFieldSelect, VunoFieldSlug, VunoFieldSwitch, VunoFieldTags, VunoFieldText, VunoFieldTextarea, VunoFieldUrl } from './field.js';
|
|
8
|
+
export type { VunoFieldInputType, VunoFieldType } from './field-type.js';
|
|
9
|
+
export type { VunoFormContext, VunoFormDefinition, VunoFormLayout, VunoFormSection, VunoFormState, VunoSchema, VunoSchemaIssue, VunoSchemaPathSegment, VunoSchemaResult } from './form.js';
|
|
10
|
+
export type { VunoBreadcrumbItem, VunoContainerSize, VunoNavigationItem, VunoNavigationTocItem, VunoTabItem } from './page.js';
|
|
11
|
+
export type { VunoResponsiveColumns, VunoResponsiveColumnSpan } from './responsive.js';
|
|
12
|
+
export type { VunoShortcut, VunoShortcutHandler, VunoShortcuts, VunoShortcutsOptions } from './shortcuts.js';
|
|
13
|
+
export type { VunoResolvedSlots, VunoSlotOf, VunoUi, VunoVariantOf, VunoVariantsOf } from './slots.js';
|
|
14
|
+
export type { VunoStateEmptyProps, VunoStateFailureProps, VunoStateProps } from './state.js';
|
|
15
|
+
export type { VunoTableAction, VunoTableAlign, VunoTableBadgeMap, VunoTableCellColumn, VunoTableCellProps, VunoTableCellType, VunoTableColumn, VunoTableColumnActions, VunoTableColumnBadge, VunoTableColumnBase, VunoTableColumnBoolean, VunoTableColumnCurrency, VunoTableColumnCustom, VunoTableColumnDate, VunoTableColumnImage, VunoTableColumnNumber, VunoTableColumnOf, VunoTableColumnText, VunoTableColumnType, VunoTableDefinition, VunoTableEmpty, VunoTableFailure, VunoTableFilters, VunoTableQuery, VunoTableQueryOptions, VunoTableRow, VunoTableSort, VunoTableSortDirection } from './table.js';
|
|
16
|
+
export type { VunoAppConfig, VunoIcons, VunoMessages, VunoThemeCompoundVariant, VunoThemeConfig, VunoThemeEntry, VunoThemeKey, VunoThemeVariants } from './theme.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./app-config.js";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { VunoColor } from './base.js';
|
|
2
|
+
/** Elemento de la miga de pan; se corresponde con el de Nuxt UI. */
|
|
3
|
+
export type VunoBreadcrumbItem = {
|
|
4
|
+
icon?: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
to?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Un elemento de navegación, que puede tener hijos hasta cualquier profundidad.
|
|
10
|
+
*
|
|
11
|
+
* `to` es opcional a propósito y las tres combinaciones significan cosas
|
|
12
|
+
* distintas: con `to` y sin hijos es una hoja; con hijos y sin `to` es solo un
|
|
13
|
+
* grupo que agrupa; y **con los dos es una página que además tiene hijos**, que
|
|
14
|
+
* es el caso que obliga a separar el enlace del botón de desplegar.
|
|
15
|
+
*/
|
|
16
|
+
export type VunoNavigationItem = {
|
|
17
|
+
badge?: string;
|
|
18
|
+
children?: VunoNavigationItem[];
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
icon?: string;
|
|
21
|
+
label: string;
|
|
22
|
+
to?: string;
|
|
23
|
+
};
|
|
24
|
+
/** Enlace de un índice de página declarado antes del render, también disponible en SSR. */
|
|
25
|
+
export type VunoNavigationTocItem = {
|
|
26
|
+
label: string;
|
|
27
|
+
/** Nivel visual del enlace dentro del índice. */
|
|
28
|
+
level?: 2 | 3;
|
|
29
|
+
/** Destino del enlace, normalmente el identificador de una sección: `#usage`. */
|
|
30
|
+
to: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Una pestaña. El contenido lo pinta quien la usa, por el slot.
|
|
34
|
+
*
|
|
35
|
+
* Vivía dentro de `Tabs.vue`, y eso lo dejaba fuera del contrato: el componente
|
|
36
|
+
* recibe `items: VunoTabItem[]` y desde el proyecto consumidor **ese tipo no se
|
|
37
|
+
* podía nombrar** —`import type { VunoTabItem }` fallaba con TS2305—, así que la
|
|
38
|
+
* única salida era un `as` o repetir la forma a mano, que es peor porque deja de
|
|
39
|
+
* avisar cuando cambie. Los demás tipos de esta familia ya estaban aquí, de modo
|
|
40
|
+
* que era un olvido y no una decisión.
|
|
41
|
+
*
|
|
42
|
+
* El `badge` cae a `error` si no lleva color, porque existe para contar los
|
|
43
|
+
* fallos de una pestaña que no estás mirando.
|
|
44
|
+
*/
|
|
45
|
+
export type VunoTabItem = {
|
|
46
|
+
badge?: {
|
|
47
|
+
color?: VunoColor;
|
|
48
|
+
label: string;
|
|
49
|
+
};
|
|
50
|
+
icon?: string;
|
|
51
|
+
label: string;
|
|
52
|
+
value: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* El ancho máximo de un contenedor, con la escala de Tailwind.
|
|
56
|
+
*
|
|
57
|
+
* `full` no es «sin contenedor»: es sin tope de ancho pero con el relleno
|
|
58
|
+
* lateral, que es lo que se quiere en una pantalla que ocupa todo y aun así no
|
|
59
|
+
* debe pegar el texto al borde.
|
|
60
|
+
*/
|
|
61
|
+
export type VunoContainerSize = '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | '8xl' | 'full' | 'lg' | 'md' | 'sm' | 'xl';
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type VunoResponsiveColumnSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
2
|
+
export type VunoResponsiveColumns = {
|
|
3
|
+
xs?: VunoResponsiveColumnSpan;
|
|
4
|
+
sm?: VunoResponsiveColumnSpan;
|
|
5
|
+
md?: VunoResponsiveColumnSpan;
|
|
6
|
+
lg?: VunoResponsiveColumnSpan;
|
|
7
|
+
xl?: VunoResponsiveColumnSpan;
|
|
8
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Lo que corre cuando el atajo entra. Recibe el evento por si hace falta pararlo o leerlo. */
|
|
2
|
+
export type VunoShortcutHandler = (event: KeyboardEvent) => void;
|
|
3
|
+
/**
|
|
4
|
+
* Un atajo: la función a secas, o la función con condiciones.
|
|
5
|
+
*
|
|
6
|
+
* `usingInput` decide qué pasa cuando el foco está dentro de un campo, y es la
|
|
7
|
+
* parte que no se puede omitir: sin ella, escribir «g» en un buscador dispararía
|
|
8
|
+
* el atajo «ir a…» y el usuario vería la página cambiar mientras teclea.
|
|
9
|
+
*
|
|
10
|
+
* - `false` —lo de serie— solo fuera de un campo.
|
|
11
|
+
* - `true` también dentro, que es lo que quiere `escape` para cerrar.
|
|
12
|
+
* - una cadena, solo dentro del campo que se llame así, que es lo que quiere
|
|
13
|
+
* `enter` para buscar sin robarle el Enter al resto de formularios.
|
|
14
|
+
*/
|
|
15
|
+
export type VunoShortcut = VunoShortcutHandler | {
|
|
16
|
+
handler: VunoShortcutHandler;
|
|
17
|
+
usingInput?: boolean | string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* El mapa de atajos. La clave es la combinación y el valor lo que hace.
|
|
21
|
+
*
|
|
22
|
+
* Un valor falso —`false`, `null`, `undefined`— **salta ese atajo sin sacarlo
|
|
23
|
+
* del mapa**, que es como se enciende y se apaga uno según el estado sin
|
|
24
|
+
* reconstruir el objeto entero.
|
|
25
|
+
*/
|
|
26
|
+
export type VunoShortcuts = Record<string, false | null | undefined | VunoShortcut>;
|
|
27
|
+
export type VunoShortcutsOptions = {
|
|
28
|
+
/**
|
|
29
|
+
* Cuánto se espera entre teclas para que sigan contando como una secuencia.
|
|
30
|
+
*
|
|
31
|
+
* Pasado ese tiempo la secuencia se olvida, que es lo que evita que teclear
|
|
32
|
+
* «g» ahora y «d» dentro de un minuto acabe navegando a otra parte.
|
|
33
|
+
*/
|
|
34
|
+
chainDelay?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Comparar por la **posición física** de la tecla en vez de por el carácter.
|
|
37
|
+
*
|
|
38
|
+
* Con esto puesto, un teclado árabe o hebreo dispara los mismos atajos que
|
|
39
|
+
* uno latino, porque se mira dónde está la tecla y no qué letra escribe. El
|
|
40
|
+
* precio es el contrario: un teclado AZERTY tendrá la `a` donde el QWERTY
|
|
41
|
+
* tiene la `q`.
|
|
42
|
+
*/
|
|
43
|
+
layoutIndependent?: boolean;
|
|
44
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { defaultTheme } from '#vuno/theme/index';
|
|
2
|
+
import type { VunoSlots } from './base.js';
|
|
3
|
+
import type { VunoThemeKey } from './theme.js';
|
|
4
|
+
type DefaultTheme = typeof defaultTheme;
|
|
5
|
+
/** Nombres de slot declarados por la base, las variantes o sus combinaciones. */
|
|
6
|
+
type VunoSlotOfOne<TKey extends VunoThemeKey> = (DefaultTheme[TKey] extends {
|
|
7
|
+
compoundVariants: readonly {
|
|
8
|
+
class: infer TClass;
|
|
9
|
+
}[];
|
|
10
|
+
} ? Extract<keyof TClass, string> : never) | (DefaultTheme[TKey] extends {
|
|
11
|
+
slots: infer TSlots;
|
|
12
|
+
} ? Extract<keyof TSlots, string> : never) | (DefaultTheme[TKey] extends {
|
|
13
|
+
variants: infer TVariants;
|
|
14
|
+
} ? {
|
|
15
|
+
[TDimension in keyof TVariants]: {
|
|
16
|
+
[TValue in keyof TVariants[TDimension]]: Extract<keyof TVariants[TDimension][TValue], string>;
|
|
17
|
+
}[keyof TVariants[TDimension]];
|
|
18
|
+
}[keyof TVariants] : never);
|
|
19
|
+
export type VunoSlotOf<TKey extends VunoThemeKey> = TKey extends VunoThemeKey ? VunoSlotOfOne<TKey> : never;
|
|
20
|
+
/** Override `ui` de una clave concreta, con autocompletado y rechazo de errores tipográficos. */
|
|
21
|
+
export type VunoUi<TKey extends VunoThemeKey> = VunoSlots<[VunoSlotOf<TKey>] extends [never] ? string : VunoSlotOf<TKey>>;
|
|
22
|
+
/** Las dimensiones de variante que una clave admite. */
|
|
23
|
+
export type VunoVariantOf<TKey extends VunoThemeKey> = DefaultTheme[TKey] extends {
|
|
24
|
+
variants: infer TVariants;
|
|
25
|
+
} ? Extract<keyof TVariants, string> : string;
|
|
26
|
+
/** Las variantes activas de una clave, con el valor elegido. */
|
|
27
|
+
export type VunoVariantsOf<TKey extends VunoThemeKey> = Partial<Record<VunoVariantOf<TKey>, string | undefined>>;
|
|
28
|
+
/** Slots resueltos por `useTheme`: todas sus clases ya son una cadena. */
|
|
29
|
+
export type VunoResolvedSlots<TKey extends VunoThemeKey> = Record<[VunoSlotOf<TKey>] extends [never] ? string : VunoSlotOf<TKey>, string>;
|
|
30
|
+
export {};
|
|
File without changes
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { VunoUi } from './slots.js';
|
|
2
|
+
import type { VunoTableFailure } from './table.js';
|
|
3
|
+
/** El estado vacío: lo que hay que decir cuando todavía no hay nada. */
|
|
4
|
+
export type VunoStateEmptyProps = {
|
|
5
|
+
/** La pista de debajo del título. Sin ella, `messages.emptyHint`. */
|
|
6
|
+
hint?: string;
|
|
7
|
+
/** El icono. Sin él, `icons.empty`. */
|
|
8
|
+
icon?: string;
|
|
9
|
+
/** El título. Sin él, `messages.emptyTable`. */
|
|
10
|
+
title?: string;
|
|
11
|
+
/** `'empty'` o nada: es el que sale por defecto. */
|
|
12
|
+
tone?: 'empty';
|
|
13
|
+
ui?: VunoUi<'state'>;
|
|
14
|
+
};
|
|
15
|
+
/** El estado de fallo, que no existe sin el objeto que trae el reintento. */
|
|
16
|
+
export type VunoStateFailureProps = {
|
|
17
|
+
/** El fallo con su reintento dentro: no hay forma de pintarlo sin salida. */
|
|
18
|
+
failure: VunoTableFailure;
|
|
19
|
+
tone: 'failure';
|
|
20
|
+
ui?: VunoUi<'state'>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Lo que se pinta donde debería haber contenido y no lo hay.
|
|
24
|
+
*
|
|
25
|
+
* **Es una unión discriminada y no un objeto con todo opcional**, y ahí está
|
|
26
|
+
* metida una regla de producto que antes la sostenían dos componentes
|
|
27
|
+
* separados: vacío y fallido no son lo mismo. Un fallo se pinta con su salida
|
|
28
|
+
* dentro —`VunoTableFailure` lleva el `retry`—, así que `tone: 'failure'`
|
|
29
|
+
* **exige** ese objeto y no hay manera de escribir un error sin reintento sin
|
|
30
|
+
* que el typecheck lo diga en la plantilla.
|
|
31
|
+
*
|
|
32
|
+
* Con `tone` opcional en la otra mitad, `<VState />` a secas sigue siendo el
|
|
33
|
+
* estado vacío, que es el caso que más se escribe.
|
|
34
|
+
*/
|
|
35
|
+
export type VunoStateProps = VunoStateEmptyProps | VunoStateFailureProps;
|
|
File without changes
|