@groupteknology/vuno 1.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -183
- package/dist/module.d.mts +2 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +40 -13
- package/dist/runtime/app/assets/css/dialog.css +1 -1
- package/dist/runtime/app/assets/css/main.css +1 -1
- package/dist/runtime/app/assets/css/stylesheet.css +1 -0
- package/dist/runtime/app/assets/css/theme.css +1 -1
- package/dist/runtime/app/assets/css/tokens.css +1 -1
- package/dist/runtime/app/components/Alert/Alert.d.vue.ts +20 -0
- package/dist/runtime/app/components/Alert/Alert.theme.d.ts +14 -0
- package/dist/runtime/app/components/Alert/Alert.theme.js +14 -0
- package/dist/runtime/app/components/Alert/Alert.types.d.ts +10 -0
- package/dist/runtime/app/components/Alert/Alert.vue +68 -0
- package/dist/runtime/app/components/Alert/Alert.vue.d.ts +20 -0
- package/dist/runtime/app/components/{overlays → App}/App.d.vue.ts +3 -20
- package/dist/runtime/app/components/App/App.types.d.ts +4 -0
- package/dist/runtime/app/components/{overlays → App}/App.vue +56 -41
- package/dist/runtime/app/components/{overlays → App}/App.vue.d.ts +3 -20
- package/dist/runtime/app/components/App/internal/Overlay/Overlay.d.vue.ts +7 -0
- package/dist/runtime/app/components/{overlays → App/internal/Overlay}/Overlay.vue +5 -6
- 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 +18 -0
- package/dist/runtime/app/components/App/internal/OverlayItem/OverlayItem.vue.d.ts +8 -0
- package/dist/runtime/app/components/{overlays → App/internal/Toast}/Toast.d.vue.ts +3 -3
- 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 +16 -0
- package/dist/runtime/app/components/App/internal/Toast/Toast.vue +55 -0
- package/dist/runtime/app/components/{overlays → App/internal/Toast}/Toast.vue.d.ts +3 -3
- package/dist/runtime/app/components/{overlays → App/internal/Toaster}/Toaster.d.vue.ts +3 -3
- 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/{overlays → App/internal/Toaster}/Toaster.vue +3 -2
- package/dist/runtime/app/components/{overlays → App/internal/Toaster}/Toaster.vue.d.ts +3 -3
- package/dist/runtime/app/components/Avatar/Avatar.d.vue.ts +10 -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.types.d.ts +10 -0
- package/dist/runtime/app/components/Avatar/Avatar.types.js +0 -0
- package/dist/runtime/app/components/{actions → Avatar}/Avatar.vue +7 -5
- package/dist/runtime/app/components/Avatar/Avatar.vue.d.ts +10 -0
- package/dist/runtime/app/components/Badge/Badge.d.vue.ts +21 -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.types.d.ts +12 -0
- package/dist/runtime/app/components/Badge/Badge.types.js +0 -0
- package/dist/runtime/app/components/{actions → Badge}/Badge.vue +3 -0
- package/dist/runtime/app/components/Badge/Badge.vue.d.ts +21 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.d.vue.ts +7 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.theme.d.ts +15 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.theme.js +16 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.types.d.ts +7 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.types.js +0 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.vue +109 -0
- package/dist/runtime/app/components/Breadcrumb/Breadcrumb.vue.d.ts +7 -0
- package/dist/runtime/app/components/Button/Button.d.vue.ts +29 -0
- package/dist/runtime/app/components/Button/Button.theme.d.ts +102 -0
- package/dist/runtime/app/components/Button/Button.theme.js +67 -0
- package/dist/runtime/app/components/Button/Button.types.d.ts +24 -0
- package/dist/runtime/app/components/Button/Button.types.js +0 -0
- package/dist/runtime/app/components/Button/Button.vue +129 -0
- package/dist/runtime/app/components/Button/Button.vue.d.ts +29 -0
- package/dist/runtime/app/components/Card/Card.d.vue.ts +32 -0
- package/dist/runtime/app/components/Card/Card.theme.d.ts +100 -0
- package/dist/runtime/app/components/Card/Card.theme.js +82 -0
- package/dist/runtime/app/components/Card/Card.types.d.ts +12 -0
- package/dist/runtime/app/components/Card/Card.types.js +0 -0
- package/dist/runtime/app/components/Card/Card.vue +51 -0
- package/dist/runtime/app/components/Card/Card.vue.d.ts +32 -0
- package/dist/runtime/app/components/Code/Code.d.vue.ts +9 -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.types.d.ts +8 -0
- package/dist/runtime/app/components/Code/Code.types.js +0 -0
- package/dist/runtime/app/components/Code/Code.vue +116 -0
- package/dist/runtime/app/components/Code/Code.vue.d.ts +9 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.d.vue.ts +31 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.theme.d.ts +6 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.theme.js +7 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.types.d.ts +4 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.types.js +0 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.vue +72 -0
- package/dist/runtime/app/components/Collapsible/Collapsible.vue.d.ts +31 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.d.vue.ts +12 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.types.d.ts +13 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.types.js +0 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.vue +55 -0
- package/dist/runtime/app/components/ColorModeButton/ColorModeButton.vue.d.ts +12 -0
- package/dist/runtime/app/components/{overlays → Confirm}/Confirm.d.vue.ts +2 -6
- 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.types.d.ts +6 -0
- package/dist/runtime/app/components/Confirm/Confirm.types.js +0 -0
- package/dist/runtime/app/components/{overlays → Confirm}/Confirm.vue +10 -5
- package/dist/runtime/app/components/{overlays → Confirm}/Confirm.vue.d.ts +2 -6
- package/dist/runtime/app/components/Container/Container.d.vue.ts +18 -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.types.d.ts +9 -0
- package/dist/runtime/app/components/Container/Container.types.js +0 -0
- package/dist/runtime/app/components/{structure → Container}/Container.vue +3 -2
- package/dist/runtime/app/components/Container/Container.vue.d.ts +18 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.d.vue.ts +17 -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.types.d.ts +9 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.types.js +0 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.vue +26 -0
- package/dist/runtime/app/components/ControlGroup/ControlGroup.vue.d.ts +17 -0
- package/dist/runtime/app/components/{structure/Table.d.vue.ts → DataTable/DataTable.d.vue.ts} +6 -19
- package/dist/runtime/app/components/DataTable/DataTable.theme.d.ts +17 -0
- package/dist/runtime/app/components/DataTable/DataTable.theme.js +19 -0
- package/dist/runtime/app/components/DataTable/DataTable.types.d.ts +13 -0
- package/dist/runtime/app/components/DataTable/DataTable.types.js +0 -0
- package/dist/runtime/app/components/DataTable/DataTable.vue +356 -0
- package/dist/runtime/app/components/{structure/Table.vue.d.ts → DataTable/DataTable.vue.d.ts} +6 -19
- package/dist/runtime/app/{internal/useVunoTable.d.ts → components/DataTable/internal/useVunoDataTable.d.ts} +8 -30
- package/dist/runtime/app/{internal/useVunoTable.js → components/DataTable/internal/useVunoDataTable.js} +2 -29
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.types.js +0 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.vue +180 -0
- package/dist/runtime/app/components/FieldArray/FieldArray.vue.d.ts +13 -0
- package/dist/runtime/app/components/{forms/Switch.d.vue.ts → FieldCheckbox/FieldCheckbox.d.vue.ts} +4 -12
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.types.js +0 -0
- package/dist/runtime/app/components/FieldCheckbox/FieldCheckbox.vue +39 -0
- package/dist/runtime/app/components/{forms/Switch.vue.d.ts → FieldCheckbox/FieldCheckbox.vue.d.ts} +4 -12
- package/dist/runtime/app/components/{forms → FieldCheckbox/internal/Checkbox}/Checkbox.d.vue.ts +12 -6
- 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/{forms → FieldCheckbox/internal/Checkbox}/Checkbox.vue +7 -4
- package/dist/runtime/app/components/{forms → FieldCheckbox/internal/Checkbox}/Checkbox.vue.d.ts +12 -6
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldColor/FieldColor.types.js +0 -0
- package/dist/runtime/app/components/{forms/fields → FieldColor}/FieldColor.vue +39 -32
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldCurrency/FieldCurrency.types.js +0 -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/{forms/fields → FieldFile}/FieldFile.d.vue.ts +11 -3
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.types.js +0 -0
- package/dist/runtime/app/components/FieldFile/FieldFile.vue +99 -0
- package/dist/runtime/app/components/{forms/fields → FieldFile}/FieldFile.vue.d.ts +11 -3
- package/dist/runtime/app/components/{forms → FieldFile/internal/FileUpload}/FileUpload.d.vue.ts +26 -20
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.d.ts +89 -0
- package/dist/runtime/app/components/FieldFile/internal/FileUpload/FileUpload.theme.js +56 -0
- package/dist/runtime/app/components/{forms → FieldFile/internal/FileUpload}/FileUpload.vue +46 -24
- package/dist/runtime/app/components/{forms → FieldFile/internal/FileUpload}/FileUpload.vue.d.ts +26 -20
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldInput/FieldInput.types.js +0 -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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldNumber/FieldNumber.types.js +0 -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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldPassword/FieldPassword.types.js +0 -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 +14 -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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.types.js +0 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.vue +41 -0
- package/dist/runtime/app/components/FieldRadio/FieldRadio.vue.d.ts +14 -0
- package/dist/runtime/app/components/{forms → FieldRadio/internal/RadioGroup}/RadioGroup.d.vue.ts +11 -9
- 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/{forms → FieldRadio/internal/RadioGroup}/RadioGroup.vue +12 -5
- package/dist/runtime/app/components/{forms → FieldRadio/internal/RadioGroup}/RadioGroup.vue.d.ts +11 -9
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSearch/FieldSearch.types.js +0 -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 +14 -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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.types.js +0 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.vue +45 -0
- package/dist/runtime/app/components/FieldSelect/FieldSelect.vue.d.ts +14 -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 +206 -0
- package/dist/runtime/app/components/FieldSelect/internal/Select/Select.vue.d.ts +97 -0
- package/dist/runtime/app/{utils → components/FieldSelect/internal/Select}/option.d.ts +3 -4
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSlug/FieldSlug.types.js +0 -0
- package/dist/runtime/app/components/{forms/fields → FieldSlug}/FieldSlug.vue +58 -47
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldSwitch/FieldSwitch.types.js +0 -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 +27 -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/{forms → FieldSwitch/internal/Switch}/Switch.vue +4 -2
- package/dist/runtime/app/components/FieldSwitch/internal/Switch/Switch.vue.d.ts +27 -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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldTags/FieldTags.types.js +0 -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 +107 -0
- package/dist/runtime/app/components/FieldTags/internal/TagsInput/TagsInput.vue.d.ts +26 -0
- package/dist/runtime/app/components/{forms/fields → FieldTextarea}/FieldTextarea.d.vue.ts +11 -3
- 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.types.d.ts +2 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.types.js +0 -0
- package/dist/runtime/app/components/FieldTextarea/FieldTextarea.vue +45 -0
- package/dist/runtime/app/components/{forms/fields → FieldTextarea}/FieldTextarea.vue.d.ts +11 -3
- package/dist/runtime/app/components/{forms → FieldTextarea/internal/Textarea}/Textarea.d.vue.ts +12 -6
- 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/{forms → FieldTextarea/internal/Textarea}/Textarea.vue +9 -7
- package/dist/runtime/app/components/{forms → FieldTextarea/internal/Textarea}/Textarea.vue.d.ts +12 -6
- package/dist/runtime/app/components/Form/Form.d.vue.ts +36 -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.types.d.ts +8 -0
- package/dist/runtime/app/components/Form/Form.types.js +0 -0
- package/dist/runtime/app/components/{forms → Form}/Form.vue +10 -9
- package/dist/runtime/app/components/Form/Form.vue.d.ts +36 -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/standard-schema.d.ts +29 -0
- package/dist/runtime/app/{internal → components/Form/internal}/useVunoFormState.d.ts +5 -3
- package/dist/runtime/app/{internal → components/Form/internal}/useVunoFormState.js +4 -3
- package/dist/runtime/app/components/FormField/FormField.d.vue.ts +21 -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.types.d.ts +14 -0
- package/dist/runtime/app/components/FormField/FormField.types.js +0 -0
- package/dist/runtime/app/components/{forms → FormField}/FormField.vue +78 -43
- package/dist/runtime/app/components/FormField/FormField.vue.d.ts +21 -0
- package/dist/runtime/app/components/FormField/internal/FieldShell/FieldShell.d.vue.ts +22 -0
- package/dist/runtime/app/components/FormField/internal/FieldShell/FieldShell.vue +63 -0
- package/dist/runtime/app/components/FormField/internal/FieldShell/FieldShell.vue.d.ts +22 -0
- package/dist/runtime/app/components/FormModal/FormModal.d.vue.ts +44 -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.types.d.ts +14 -0
- package/dist/runtime/app/components/FormModal/FormModal.types.js +0 -0
- package/dist/runtime/app/components/{forms → FormModal}/FormModal.vue +27 -14
- package/dist/runtime/app/components/FormModal/FormModal.vue.d.ts +44 -0
- package/dist/runtime/app/components/FormSection/FormSection.d.vue.ts +4 -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.types.d.ts +7 -0
- package/dist/runtime/app/components/FormSection/FormSection.types.js +0 -0
- package/dist/runtime/app/components/{forms → FormSection}/FormSection.vue +16 -7
- package/dist/runtime/app/components/FormSection/FormSection.vue.d.ts +4 -0
- package/dist/runtime/app/components/Icon/Icon.d.vue.ts +4 -0
- package/dist/runtime/app/components/Icon/Icon.types.d.ts +3 -0
- package/dist/runtime/app/components/Icon/Icon.types.js +0 -0
- package/dist/runtime/app/components/Icon/Icon.vue +32 -0
- package/dist/runtime/app/components/Icon/Icon.vue.d.ts +4 -0
- package/dist/runtime/app/components/Menu/Menu.d.vue.ts +19 -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.types.d.ts +7 -0
- package/dist/runtime/app/components/Menu/Menu.types.js +0 -0
- package/dist/runtime/app/components/Menu/Menu.vue +90 -0
- package/dist/runtime/app/components/Menu/Menu.vue.d.ts +19 -0
- package/dist/runtime/app/components/Menu/internal/MenuLevel/MenuLevel.d.vue.ts +26 -0
- package/dist/runtime/app/components/Menu/internal/MenuLevel/MenuLevel.vue +167 -0
- package/dist/runtime/app/components/Menu/internal/MenuLevel/MenuLevel.vue.d.ts +26 -0
- package/dist/runtime/app/components/Modal/Modal.d.vue.ts +31 -0
- package/dist/runtime/app/components/Modal/Modal.theme.d.ts +63 -0
- package/dist/runtime/app/components/Modal/Modal.theme.js +43 -0
- package/dist/runtime/app/components/Modal/Modal.types.d.ts +12 -0
- package/dist/runtime/app/components/Modal/Modal.types.js +0 -0
- package/dist/runtime/app/components/Modal/Modal.vue +249 -0
- package/dist/runtime/app/components/Modal/Modal.vue.d.ts +31 -0
- package/dist/runtime/app/components/Navbar/Navbar.d.vue.ts +20 -0
- package/dist/runtime/app/components/Navbar/Navbar.theme.d.ts +30 -0
- package/dist/runtime/app/components/Navbar/Navbar.theme.js +31 -0
- package/dist/runtime/app/components/Navbar/Navbar.types.d.ts +4 -0
- package/dist/runtime/app/components/Navbar/Navbar.types.js +0 -0
- package/dist/runtime/app/components/{structure → Navbar}/Navbar.vue +1 -0
- package/dist/runtime/app/components/Navbar/Navbar.vue.d.ts +20 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.d.vue.ts +9 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.keys.d.ts +3 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.keys.js +1 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.theme.d.ts +32 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.theme.js +35 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.types.d.ts +9 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.types.js +0 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.vue +233 -0
- package/dist/runtime/app/components/NavigationList/NavigationList.vue.d.ts +9 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.d.vue.ts +10 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.keys.d.ts +7 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.keys.js +3 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.theme.d.ts +26 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.theme.js +27 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.types.d.ts +10 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.types.js +0 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue +268 -0
- package/dist/runtime/app/components/NavigationMenu/NavigationMenu.vue.d.ts +10 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.d.vue.ts +7 -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.types.d.ts +7 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.types.js +0 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.vue +88 -0
- package/dist/runtime/app/components/NavigationToc/NavigationToc.vue.d.ts +7 -0
- package/dist/runtime/app/components/Pagination/Pagination.d.vue.ts +15 -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.types.d.ts +11 -0
- package/dist/runtime/app/components/Pagination/Pagination.types.js +0 -0
- package/dist/runtime/app/components/{structure → Pagination}/Pagination.vue +9 -3
- package/dist/runtime/app/components/Pagination/Pagination.vue.d.ts +15 -0
- package/dist/runtime/app/components/{overlays/Modal.d.vue.ts → Slideover/Slideover.d.vue.ts} +5 -22
- 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.types.d.ts +12 -0
- package/dist/runtime/app/components/Slideover/Slideover.types.js +0 -0
- package/dist/runtime/app/components/Slideover/Slideover.vue +58 -0
- package/dist/runtime/app/components/{overlays/Modal.vue.d.ts → Slideover/Slideover.vue.d.ts} +5 -22
- 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.types.d.ts +15 -0
- package/dist/runtime/app/components/State/State.types.js +0 -0
- package/dist/runtime/app/components/{structure → State}/State.vue +21 -6
- package/dist/runtime/app/components/State/State.vue.d.ts +14 -0
- package/dist/runtime/app/components/Table/Table.d.vue.ts +33 -0
- package/dist/runtime/app/components/Table/Table.theme.d.ts +32 -0
- package/dist/runtime/app/components/Table/Table.theme.js +31 -0
- package/dist/runtime/app/components/Table/Table.types.d.ts +9 -0
- package/dist/runtime/app/components/Table/Table.types.js +0 -0
- package/dist/runtime/app/components/Table/Table.vue +211 -0
- package/dist/runtime/app/components/Table/Table.vue.d.ts +33 -0
- package/dist/runtime/app/components/{structure/cells → Table/internal/CellBadge}/CellBadge.vue +2 -1
- 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 +42 -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/{structure/cells → Table/internal/CellCurrency}/CellCurrency.vue +9 -1
- 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/{structure/cells → Table/internal/CellDate}/CellDate.vue +9 -1
- package/dist/runtime/app/components/{structure/cells → Table/internal/CellImage}/CellImage.vue +2 -1
- 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/{structure/cells → Table/internal/CellNumber}/CellNumber.vue +9 -1
- 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/{structure/cells → Table/internal/CellText}/CellText.vue +9 -1
- package/dist/runtime/app/components/{structure → Table/internal/TableCell}/TableCell.d.vue.ts +2 -2
- package/dist/runtime/app/components/{structure → Table/internal/TableCell}/TableCell.vue +9 -8
- package/dist/runtime/app/components/{structure → Table/internal/TableCell}/TableCell.vue.d.ts +2 -2
- package/dist/runtime/app/{utils → components/Table/internal}/column.d.ts +9 -0
- package/dist/runtime/app/components/Table/internal/column.js +20 -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/{structure → Tabs}/Tabs.d.vue.ts +5 -23
- package/dist/runtime/app/components/Tabs/Tabs.theme.d.ts +41 -0
- package/dist/runtime/app/components/Tabs/Tabs.theme.js +32 -0
- package/dist/runtime/app/components/Tabs/Tabs.types.d.ts +10 -0
- package/dist/runtime/app/components/Tabs/Tabs.types.js +0 -0
- package/dist/runtime/app/components/Tabs/Tabs.vue +193 -0
- package/dist/runtime/app/components/{structure → Tabs}/Tabs.vue.d.ts +5 -23
- package/dist/runtime/app/components/Text/Text.d.vue.ts +19 -0
- package/dist/runtime/app/components/Text/Text.theme.d.ts +55 -0
- package/dist/runtime/app/components/Text/Text.theme.js +28 -0
- package/dist/runtime/app/components/Text/Text.types.d.ts +9 -0
- package/dist/runtime/app/components/Text/Text.types.js +0 -0
- package/dist/runtime/app/components/Text/Text.vue +37 -0
- package/dist/runtime/app/components/Text/Text.vue.d.ts +19 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.d.vue.ts +17 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.theme.d.ts +5 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.theme.js +6 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.types.d.ts +9 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.types.js +0 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.vue +76 -0
- package/dist/runtime/app/components/Toolbar/Toolbar.vue.d.ts +17 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.d.vue.ts +19 -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.types.d.ts +11 -0
- package/dist/runtime/app/components/Tooltip/Tooltip.types.js +0 -0
- package/dist/runtime/app/components/{actions → Tooltip}/Tooltip.vue +10 -23
- package/dist/runtime/app/components/Tooltip/Tooltip.vue.d.ts +19 -0
- package/dist/runtime/app/composables/defineShortcuts.d.ts +19 -0
- package/dist/runtime/app/composables/defineShortcuts.js +68 -0
- package/dist/runtime/app/{internal → composables/internal}/useVunoAnchor.d.ts +6 -4
- package/dist/runtime/app/{internal → composables/internal}/useVunoAnchor.js +3 -2
- package/dist/runtime/app/composables/internal/useVunoContext.d.ts +5 -0
- package/dist/runtime/app/composables/internal/useVunoContext.js +8 -0
- package/dist/runtime/app/composables/internal/useVunoControlGroup.d.ts +16 -0
- package/dist/runtime/app/composables/internal/useVunoControlGroup.js +18 -0
- package/dist/runtime/app/composables/internal/useVunoDirection.d.ts +5 -0
- package/dist/runtime/app/composables/internal/useVunoDirection.js +8 -0
- package/dist/runtime/app/composables/internal/useVunoFormContext.d.ts +5 -0
- package/dist/runtime/app/composables/internal/useVunoFormContext.js +8 -0
- package/dist/runtime/app/composables/internal/useVunoOverlayBehind.d.ts +6 -0
- package/dist/runtime/app/composables/internal/useVunoOverlayBehind.js +8 -0
- package/dist/runtime/app/{internal → composables/internal}/useVunoPortal.d.ts +3 -8
- package/dist/runtime/app/composables/internal/useVunoPortal.js +12 -0
- package/dist/runtime/app/composables/useContext.js +2 -3
- package/dist/runtime/app/composables/useCrud.js +5 -4
- package/dist/runtime/app/composables/useField.d.ts +3 -3
- package/dist/runtime/app/composables/useField.js +16 -8
- package/dist/runtime/app/composables/useForm.d.ts +3 -0
- package/dist/runtime/app/composables/useForm.js +4 -5
- package/dist/runtime/app/composables/useModal.js +1 -3
- package/dist/runtime/app/composables/useTableQuery.d.ts +1 -1
- package/dist/runtime/app/composables/useTableQuery.js +29 -13
- package/dist/runtime/app/composables/useTheme.d.ts +3 -2
- package/dist/runtime/app/composables/useTheme.js +8 -3
- 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/{components/forms/ControlShell.d.vue.ts → primitives/PrimitiveControl/PrimitiveControl.d.vue.ts} +12 -7
- package/dist/runtime/app/primitives/PrimitiveControl/PrimitiveControl.theme.d.ts +50 -0
- package/dist/runtime/app/primitives/PrimitiveControl/PrimitiveControl.theme.js +38 -0
- package/dist/runtime/app/primitives/PrimitiveControl/PrimitiveControl.vue +33 -0
- package/dist/runtime/app/{components/forms/ControlShell.vue.d.ts → primitives/PrimitiveControl/PrimitiveControl.vue.d.ts} +12 -7
- package/dist/runtime/app/{components/forms/Input.d.vue.ts → primitives/PrimitiveInput/PrimitiveInput.d.vue.ts} +18 -12
- package/dist/runtime/app/primitives/PrimitiveInput/PrimitiveInput.theme.d.ts +30 -0
- package/dist/runtime/app/primitives/PrimitiveInput/PrimitiveInput.theme.js +21 -0
- package/dist/runtime/app/{components/forms/Input.vue → primitives/PrimitiveInput/PrimitiveInput.vue} +10 -8
- package/dist/runtime/app/{components/forms/Input.vue.d.ts → primitives/PrimitiveInput/PrimitiveInput.vue.d.ts} +18 -12
- package/dist/runtime/app/{components/forms/NumberInput.d.vue.ts → primitives/PrimitiveNumberInput/PrimitiveNumberInput.d.vue.ts} +15 -10
- package/dist/runtime/app/primitives/PrimitiveNumberInput/PrimitiveNumberInput.theme.d.ts +34 -0
- package/dist/runtime/app/primitives/PrimitiveNumberInput/PrimitiveNumberInput.theme.js +29 -0
- package/dist/runtime/app/primitives/PrimitiveNumberInput/PrimitiveNumberInput.vue +223 -0
- package/dist/runtime/app/{components/forms/NumberInput.vue.d.ts → primitives/PrimitiveNumberInput/PrimitiveNumberInput.vue.d.ts} +15 -10
- package/dist/runtime/app/{utils → primitives/PrimitiveNumberInput}/number.d.ts +7 -0
- package/dist/runtime/app/primitives/PrimitiveNumberInput/number.js +64 -0
- package/dist/runtime/app/theme/icons.js +4 -1
- package/dist/runtime/app/theme/index.d.ts +1320 -8
- package/dist/runtime/app/theme/index.js +124 -10
- package/dist/runtime/app/theme/messages.js +11 -3
- package/dist/runtime/app/theme/shared.d.ts +20 -3
- package/dist/runtime/app/theme/shared.js +16 -1
- package/dist/runtime/app/types/app.d.ts +4 -2
- package/dist/runtime/app/types/base.d.ts +13 -13
- 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 +135 -27
- package/dist/runtime/app/types/form.d.ts +29 -4
- package/dist/runtime/app/types/index.d.ts +63 -12
- package/dist/runtime/app/types/menu.d.ts +22 -0
- package/dist/runtime/app/types/menu.js +0 -0
- package/dist/runtime/app/types/page.d.ts +14 -10
- 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 +34 -0
- package/dist/runtime/app/types/slots.js +0 -0
- package/dist/runtime/app/types/table.d.ts +31 -30
- package/dist/runtime/app/types/text.d.ts +6 -0
- package/dist/runtime/app/types/text.js +0 -0
- package/dist/runtime/app/types/theme.d.ts +64 -17
- package/dist/runtime/app/utils/format.js +5 -4
- package/dist/runtime/app/utils/path.js +5 -3
- package/dist/runtime/app/{internal → utils}/slots.d.ts +5 -2
- package/dist/runtime/app/utils/slots.js +24 -0
- package/dist/runtime/app/utils/theme.d.ts +9 -24
- package/dist/runtime/app/utils/theme.js +35 -15
- package/package.json +24 -9
- package/dist/runtime/app/components/actions/Avatar.d.vue.ts +0 -23
- package/dist/runtime/app/components/actions/Avatar.vue.d.ts +0 -23
- package/dist/runtime/app/components/actions/Badge.d.vue.ts +0 -36
- package/dist/runtime/app/components/actions/Badge.vue.d.ts +0 -36
- package/dist/runtime/app/components/actions/Button.d.vue.ts +0 -45
- package/dist/runtime/app/components/actions/Button.vue +0 -71
- package/dist/runtime/app/components/actions/Button.vue.d.ts +0 -45
- package/dist/runtime/app/components/actions/Icon.d.vue.ts +0 -6
- package/dist/runtime/app/components/actions/Icon.vue +0 -32
- package/dist/runtime/app/components/actions/Icon.vue.d.ts +0 -6
- package/dist/runtime/app/components/actions/Menu.d.vue.ts +0 -34
- package/dist/runtime/app/components/actions/Menu.vue +0 -189
- package/dist/runtime/app/components/actions/Menu.vue.d.ts +0 -34
- package/dist/runtime/app/components/actions/Tooltip.d.vue.ts +0 -40
- package/dist/runtime/app/components/actions/Tooltip.vue.d.ts +0 -40
- package/dist/runtime/app/components/forms/ControlShell.vue +0 -19
- package/dist/runtime/app/components/forms/Form.d.vue.ts +0 -53
- package/dist/runtime/app/components/forms/Form.vue.d.ts +0 -53
- package/dist/runtime/app/components/forms/FormField.d.vue.ts +0 -32
- package/dist/runtime/app/components/forms/FormField.vue.d.ts +0 -32
- package/dist/runtime/app/components/forms/FormFieldRenderer.d.vue.ts +0 -7
- package/dist/runtime/app/components/forms/FormFieldRenderer.vue +0 -88
- package/dist/runtime/app/components/forms/FormFieldRenderer.vue.d.ts +0 -7
- package/dist/runtime/app/components/forms/FormModal.d.vue.ts +0 -61
- package/dist/runtime/app/components/forms/FormModal.vue.d.ts +0 -61
- package/dist/runtime/app/components/forms/FormSection.d.vue.ts +0 -12
- package/dist/runtime/app/components/forms/FormSection.vue.d.ts +0 -12
- package/dist/runtime/app/components/forms/NumberInput.vue +0 -160
- package/dist/runtime/app/components/forms/Select.d.vue.ts +0 -61
- package/dist/runtime/app/components/forms/Select.vue +0 -336
- package/dist/runtime/app/components/forms/Select.vue.d.ts +0 -61
- package/dist/runtime/app/components/forms/fields/FieldArray.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldArray.vue +0 -129
- package/dist/runtime/app/components/forms/fields/FieldArray.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldCheckbox.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldCheckbox.vue +0 -31
- package/dist/runtime/app/components/forms/fields/FieldCheckbox.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldColor.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldColor.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldEmail.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldEmail.vue +0 -38
- package/dist/runtime/app/components/forms/fields/FieldEmail.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldFile.vue +0 -91
- package/dist/runtime/app/components/forms/fields/FieldNumber.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldNumber.vue +0 -39
- package/dist/runtime/app/components/forms/fields/FieldNumber.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldPassword.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldPassword.vue +0 -36
- package/dist/runtime/app/components/forms/fields/FieldPassword.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldRadio.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldRadio.vue +0 -33
- package/dist/runtime/app/components/forms/fields/FieldRadio.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldSelect.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldSelect.vue +0 -37
- package/dist/runtime/app/components/forms/fields/FieldSelect.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldSlug.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldSlug.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldSwitch.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldSwitch.vue +0 -29
- package/dist/runtime/app/components/forms/fields/FieldSwitch.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldText.d.vue.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldText.vue +0 -39
- package/dist/runtime/app/components/forms/fields/FieldText.vue.d.ts +0 -5
- package/dist/runtime/app/components/forms/fields/FieldTextarea.vue +0 -37
- package/dist/runtime/app/components/layouts/dashboard/DashboardAside.d.vue.ts +0 -56
- package/dist/runtime/app/components/layouts/dashboard/DashboardAside.vue +0 -96
- package/dist/runtime/app/components/layouts/dashboard/DashboardAside.vue.d.ts +0 -56
- package/dist/runtime/app/components/layouts/dashboard/DashboardLayout.d.vue.ts +0 -57
- package/dist/runtime/app/components/layouts/dashboard/DashboardLayout.vue +0 -164
- package/dist/runtime/app/components/layouts/dashboard/DashboardLayout.vue.d.ts +0 -57
- package/dist/runtime/app/components/layouts/dashboard/DashboardPage.d.vue.ts +0 -49
- package/dist/runtime/app/components/layouts/dashboard/DashboardPage.vue +0 -45
- package/dist/runtime/app/components/layouts/dashboard/DashboardPage.vue.d.ts +0 -49
- package/dist/runtime/app/components/layouts/public/PublicLayout.d.vue.ts +0 -50
- package/dist/runtime/app/components/layouts/public/PublicLayout.vue +0 -56
- package/dist/runtime/app/components/layouts/public/PublicLayout.vue.d.ts +0 -50
- package/dist/runtime/app/components/overlays/Context.d.vue.ts +0 -3
- package/dist/runtime/app/components/overlays/Context.vue +0 -7
- package/dist/runtime/app/components/overlays/Context.vue.d.ts +0 -3
- package/dist/runtime/app/components/overlays/Modal.vue +0 -158
- package/dist/runtime/app/components/overlays/Overlay.d.vue.ts +0 -7
- package/dist/runtime/app/components/overlays/Overlay.vue.d.ts +0 -7
- package/dist/runtime/app/components/overlays/Toast.vue +0 -63
- package/dist/runtime/app/components/structure/Card.d.vue.ts +0 -90
- package/dist/runtime/app/components/structure/Card.vue +0 -43
- package/dist/runtime/app/components/structure/Card.vue.d.ts +0 -90
- package/dist/runtime/app/components/structure/Container.d.vue.ts +0 -42
- package/dist/runtime/app/components/structure/Container.vue.d.ts +0 -42
- package/dist/runtime/app/components/structure/Navbar.d.vue.ts +0 -49
- package/dist/runtime/app/components/structure/Navbar.vue.d.ts +0 -49
- package/dist/runtime/app/components/structure/Navigation.d.vue.ts +0 -14
- package/dist/runtime/app/components/structure/Navigation.vue +0 -147
- package/dist/runtime/app/components/structure/Navigation.vue.d.ts +0 -14
- package/dist/runtime/app/components/structure/Page.d.vue.ts +0 -39
- package/dist/runtime/app/components/structure/Page.vue +0 -124
- package/dist/runtime/app/components/structure/Page.vue.d.ts +0 -39
- package/dist/runtime/app/components/structure/Pagination.d.vue.ts +0 -32
- package/dist/runtime/app/components/structure/Pagination.vue.d.ts +0 -32
- package/dist/runtime/app/components/structure/State.d.vue.ts +0 -14
- package/dist/runtime/app/components/structure/State.vue.d.ts +0 -14
- package/dist/runtime/app/components/structure/Table.vue +0 -493
- package/dist/runtime/app/components/structure/Tabs.vue +0 -114
- package/dist/runtime/app/components/structure/cells/CellBoolean.vue +0 -26
- package/dist/runtime/app/composables/useDashboard.d.ts +0 -14
- package/dist/runtime/app/composables/useDashboard.js +0 -9
- package/dist/runtime/app/internal/keys.d.ts +0 -37
- package/dist/runtime/app/internal/keys.js +0 -5
- package/dist/runtime/app/internal/slots.js +0 -12
- package/dist/runtime/app/internal/useVunoDashboard.d.ts +0 -15
- package/dist/runtime/app/internal/useVunoDashboard.js +0 -5
- package/dist/runtime/app/internal/useVunoPortal.js +0 -8
- package/dist/runtime/app/theme/actions.d.ts +0 -2
- package/dist/runtime/app/theme/actions.js +0 -123
- package/dist/runtime/app/theme/forms.d.ts +0 -2
- package/dist/runtime/app/theme/forms.js +0 -442
- package/dist/runtime/app/theme/layouts.d.ts +0 -2
- package/dist/runtime/app/theme/layouts.js +0 -76
- package/dist/runtime/app/theme/overlays.d.ts +0 -2
- package/dist/runtime/app/theme/overlays.js +0 -90
- package/dist/runtime/app/theme/structure.d.ts +0 -2
- package/dist/runtime/app/theme/structure.js +0 -351
- package/dist/runtime/app/types/dashboard.d.ts +0 -7
- package/dist/runtime/app/types/state.d.ts +0 -35
- package/dist/runtime/app/utils/column.js +0 -5
- package/dist/runtime/app/utils/number.js +0 -30
- package/dist/runtime/app/utils/standard-schema.d.ts +0 -62
- /package/dist/runtime/app/{types/dashboard.js → components/Alert/Alert.types.js} +0 -0
- /package/dist/runtime/app/{types/state.js → components/App/App.types.js} +0 -0
- /package/dist/runtime/app/{utils → components/DataTable/internal}/query.d.ts +0 -0
- /package/dist/runtime/app/{utils → components/DataTable/internal}/query.js +0 -0
- /package/dist/runtime/app/{utils → components/FieldSelect/internal/Select}/option.js +0 -0
- /package/dist/runtime/app/{utils → components/Form/internal}/grid.d.ts +0 -0
- /package/dist/runtime/app/{utils → components/Form/internal}/grid.js +0 -0
- /package/dist/runtime/app/{utils → components/Form/internal}/standard-schema.js +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellBadge}/CellBadge.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellBadge}/CellBadge.vue.d.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellBoolean}/CellBoolean.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellBoolean}/CellBoolean.vue.d.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellCurrency}/CellCurrency.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellCurrency}/CellCurrency.vue.d.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellDate}/CellDate.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellDate}/CellDate.vue.d.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellImage}/CellImage.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellImage}/CellImage.vue.d.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellNumber}/CellNumber.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellNumber}/CellNumber.vue.d.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellText}/CellText.d.vue.ts +0 -0
- /package/dist/runtime/app/components/{structure/cells → Table/internal/CellText}/CellText.vue.d.ts +0 -0
- /package/dist/runtime/app/{utils → components/Table/internal}/selection.d.ts +0 -0
- /package/dist/runtime/app/{utils → components/Table/internal}/selection.js +0 -0
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Formularios, tablas y diálogos declarativos para Nuxt 4, con componentes propios y sin librería de interfaz por debajo.
|
|
4
4
|
|
|
5
|
-
El módulo **trae su propia estética, y se sobreescribe
|
|
5
|
+
El módulo **trae su propia estética, y se sobreescribe desde el proyecto**. Los colores, superficies y tipografía se derivan de variables CSS —los tokens `--vuno-*`—; la curvatura usa directamente la escala predeterminada de Tailwind. Lo que necesita comportamiento difícil —combobox, menú, pestañas, tooltip, campo numérico— lleva su patrón ARIA y su teclado escritos aquí, con [Floating UI](https://floating-ui.com) para colocar lo que flota y nada más; el resto son elementos nativos.
|
|
6
6
|
|
|
7
|
-
Un color
|
|
7
|
+
Un color literal dentro de un componente es un error: si algo no se puede cambiar desde los tokens, falta un token. Para radios se usan las utilidades estándar de Tailwind.
|
|
8
8
|
|
|
9
9
|
## Documentación
|
|
10
10
|
|
|
@@ -21,7 +21,7 @@ pnpm add @groupteknology/vuno
|
|
|
21
21
|
```ts
|
|
22
22
|
// nuxt.config.ts
|
|
23
23
|
export default defineNuxtConfig({
|
|
24
|
-
|
|
24
|
+
modules: ['@groupteknology/vuno'],
|
|
25
25
|
})
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -37,8 +37,8 @@ Si tu proyecto ya monta Tailwind, se detecta y no se duplica. Y si prefieres lle
|
|
|
37
37
|
|
|
38
38
|
```ts
|
|
39
39
|
export default defineNuxtConfig({
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
modules: ['@groupteknology/vuno'],
|
|
41
|
+
vuno: { tailwind: false },
|
|
42
42
|
})
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -48,46 +48,75 @@ Un formulario se declara como datos y se renderiza solo. El estado vive en un ú
|
|
|
48
48
|
|
|
49
49
|
```vue
|
|
50
50
|
<script setup lang="ts">
|
|
51
|
-
import type { VunoFormDefinition } from '@groupteknology/vuno'
|
|
52
|
-
import * as z from 'zod'
|
|
53
|
-
|
|
54
|
-
const schema = z.object({
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
const state = ref({ sku: '', name: '', slug: '' })
|
|
60
|
-
|
|
61
|
-
const definition = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
} satisfies VunoFormDefinition
|
|
51
|
+
import type { VunoFormDefinition } from '@groupteknology/vuno'
|
|
52
|
+
import * as z from 'zod'
|
|
53
|
+
|
|
54
|
+
const schema = z.object({
|
|
55
|
+
sku: z.string().min(1, 'El SKU es requerido'),
|
|
56
|
+
name: z.string().min(1, 'El nombre es requerido'),
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
const state = ref({ sku: '', name: '', slug: '' })
|
|
60
|
+
|
|
61
|
+
const definition = {
|
|
62
|
+
layout: 'tabs', // 'sections' (por defecto) | 'tabs'
|
|
63
|
+
sections: [
|
|
64
|
+
{
|
|
65
|
+
id: 'general',
|
|
66
|
+
title: 'Datos generales',
|
|
67
|
+
icon: 'lucide:info',
|
|
68
|
+
fields: [
|
|
69
|
+
{ name: 'sku', type: 'text', label: 'SKU', columns: { xs: 12, lg: 6 }, required: true },
|
|
70
|
+
{ name: 'name', type: 'text', label: 'Nombre', columns: { xs: 12, lg: 6 }, required: true },
|
|
71
|
+
{ name: 'slug', type: 'slug', label: 'Slug', source: 'name' },
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
} satisfies VunoFormDefinition
|
|
76
76
|
</script>
|
|
77
77
|
|
|
78
78
|
<template>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
<VForm
|
|
80
|
+
v-model:state="state"
|
|
81
|
+
:definition="definition"
|
|
82
|
+
:schema="schema"
|
|
83
|
+
@submit="guardar"
|
|
84
|
+
>
|
|
85
|
+
<template #footer="{ dirty, reset }">
|
|
86
|
+
<VButton
|
|
87
|
+
:disabled="!dirty"
|
|
88
|
+
label="Descartar"
|
|
89
|
+
variant="ghost"
|
|
90
|
+
@click="reset"
|
|
91
|
+
/>
|
|
92
|
+
<VButton
|
|
93
|
+
label="Guardar"
|
|
94
|
+
type="submit"
|
|
95
|
+
/>
|
|
96
|
+
</template>
|
|
97
|
+
</VForm>
|
|
85
98
|
</template>
|
|
86
99
|
```
|
|
87
100
|
|
|
88
101
|
### Tipos de campo
|
|
89
102
|
|
|
90
|
-
`text` · `email` · `password` · `textarea` · `number` · `select` · `radio` · `checkbox` · `switch` · `color` · `slug` · `file` · `array`
|
|
103
|
+
`text` · `search` · `email` · `password` · `textarea` · `number` · `select` · `radio` · `checkbox` · `switch` · `color` · `slug` · `file` · `array`
|
|
104
|
+
|
|
105
|
+
Los mismos campos son componentes públicos y ya incluyen etiqueta, descripción, ayuda y error. Dentro de `VForm` leen y escriben por `name`; fuera usan su propio `v-model`:
|
|
106
|
+
|
|
107
|
+
```vue
|
|
108
|
+
<VFieldInput name="name" label="Nombre" />
|
|
109
|
+
|
|
110
|
+
<VFieldInput v-model="name" label="Nombre" />
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
La etiqueta va arriba por defecto. `orientation="horizontal"` la coloca al costado del control:
|
|
114
|
+
|
|
115
|
+
```vue
|
|
116
|
+
<VFieldSelect v-model="role" label="Rol" orientation="horizontal" :items="roles" />
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Los controles básicos son implementación interna. Para campos propios, `VFormField` sigue disponible y puede envolver cualquier control; un `VField*` colocado dentro reconoce ese envoltorio y no crea uno duplicado.
|
|
91
120
|
|
|
92
121
|
`source` del campo `slug` es el **nombre** del campo del que deriva, no su valor.
|
|
93
122
|
|
|
@@ -150,65 +179,59 @@ La regla que lo resume: **el componente decide cómo es el formulario; quien lo
|
|
|
150
179
|
```vue
|
|
151
180
|
<!-- app/components/Product/ProductForm.vue -->
|
|
152
181
|
<script setup lang="ts">
|
|
153
|
-
import type { VunoFormDefinition } from '@groupteknology/vuno'
|
|
154
|
-
import * as z from 'zod'
|
|
182
|
+
import type { VunoFormDefinition } from '@groupteknology/vuno'
|
|
183
|
+
import * as z from 'zod'
|
|
155
184
|
|
|
156
|
-
const props = defineProps<{
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}>()
|
|
185
|
+
const props = defineProps<{
|
|
186
|
+
/** La fila en edición. Sin ella, el formulario es de alta. */
|
|
187
|
+
product?: null | Product
|
|
188
|
+
loading?: boolean
|
|
189
|
+
}>()
|
|
161
190
|
|
|
162
|
-
const emit = defineEmits<{ submit: [] }>()
|
|
191
|
+
const emit = defineEmits<{ submit: [] }>()
|
|
163
192
|
|
|
164
|
-
const open = defineModel<boolean>('open', { default: false })
|
|
165
|
-
const state = defineModel<ProductFormState>('state', { required: true })
|
|
193
|
+
const open = defineModel<boolean>('open', { default: false })
|
|
194
|
+
const state = defineModel<ProductFormState>('state', { required: true })
|
|
166
195
|
|
|
167
|
-
// Lo propio del formulario: su forma, sus reglas y sus textos.
|
|
168
|
-
const schema = z.object({ sku: z.string().min(1, 'El SKU es requerido') })
|
|
196
|
+
// Lo propio del formulario: su forma, sus reglas y sus textos.
|
|
197
|
+
const schema = z.object({ sku: z.string().min(1, 'El SKU es requerido') })
|
|
169
198
|
|
|
170
|
-
const title = computed(() => (props.product ? `Editar ${props.product.sku}` : 'Nuevo producto'))
|
|
199
|
+
const title = computed(() => (props.product ? `Editar ${props.product.sku}` : 'Nuevo producto'))
|
|
171
200
|
|
|
172
|
-
const definition = {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
} satisfies VunoFormDefinition
|
|
201
|
+
const definition = {
|
|
202
|
+
layout: 'tabs',
|
|
203
|
+
sections: [/* ... */],
|
|
204
|
+
} satisfies VunoFormDefinition
|
|
176
205
|
</script>
|
|
177
206
|
|
|
178
207
|
<template>
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
208
|
+
<VFormModal
|
|
209
|
+
v-model:open="open"
|
|
210
|
+
v-model:state="state"
|
|
211
|
+
:definition="definition"
|
|
212
|
+
:loading="props.loading"
|
|
213
|
+
:schema="schema"
|
|
214
|
+
:title="title"
|
|
215
|
+
@submit="emit('submit')"
|
|
216
|
+
/>
|
|
188
217
|
</template>
|
|
189
218
|
```
|
|
190
219
|
|
|
191
220
|
Y la página queda sin saber nada de los campos:
|
|
192
221
|
|
|
193
222
|
```vue
|
|
194
|
-
<ProductForm
|
|
195
|
-
v-model:open="formOpen"
|
|
196
|
-
v-model:state="state"
|
|
197
|
-
:loading="isSaving"
|
|
198
|
-
:product="editing"
|
|
199
|
-
@submit="submit"
|
|
200
|
-
/>
|
|
223
|
+
<ProductForm v-model:open="formOpen" v-model:state="state" :loading="isSaving" :product="editing" @submit="submit" />
|
|
201
224
|
```
|
|
202
225
|
|
|
203
226
|
#### Qué expone
|
|
204
227
|
|
|
205
|
-
|
|
|
206
|
-
|
|
207
|
-
| `v-model:state`
|
|
208
|
-
| `v-model:open`
|
|
209
|
-
| `:loading`
|
|
228
|
+
| | |
|
|
229
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
+
| `v-model:state` | El estado del formulario. Obligatorio: lo posee quien lo usa, no el formulario. |
|
|
231
|
+
| `v-model:open` | Solo si es modal. |
|
|
232
|
+
| `:loading` | Si se está guardando, para bloquear el botón. |
|
|
210
233
|
| La fila en edición | Un prop —`product`, `brand`, lo que sea— que vale `null` en el alta. De él salen el título y la etiqueta del botón. |
|
|
211
|
-
| `@submit`
|
|
234
|
+
| `@submit` | Significa «el usuario confirmó», nada más. Sin datos: ya están en `state`. |
|
|
212
235
|
|
|
213
236
|
No es casualidad que encaje: son exactamente `state`, `formOpen`, `isSaving`, `editing` y `submit` de `useCrud`.
|
|
214
237
|
|
|
@@ -226,23 +249,21 @@ El estado tampoco se queda dentro. Si el formulario declara su propio `ref` en v
|
|
|
226
249
|
|
|
227
250
|
```vue
|
|
228
251
|
<script setup lang="ts">
|
|
229
|
-
// En SSR, `$fetch` no reenvía la cookie de la petición y una ruta con sesión
|
|
230
|
-
// responde 401 durante el render. `useRequestFetch()` sí la lleva.
|
|
231
|
-
const request = useRequestFetch()
|
|
232
|
-
|
|
233
|
-
const query = useTableQuery({ sort: 'sku', url: true })
|
|
234
|
-
|
|
235
|
-
const { items, total, failure, isPending, isSaving, isDeleting,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
remove: (row) => $fetch(`/api/products/${row.id}`, { method: 'DELETE' }),
|
|
245
|
-
})
|
|
252
|
+
// En SSR, `$fetch` no reenvía la cookie de la petición y una ruta con sesión
|
|
253
|
+
// responde 401 durante el render. `useRequestFetch()` sí la lleva.
|
|
254
|
+
const request = useRequestFetch()
|
|
255
|
+
|
|
256
|
+
const query = useTableQuery({ sort: 'sku', url: true })
|
|
257
|
+
|
|
258
|
+
const { items, total, failure, isPending, isSaving, isDeleting, formOpen, editing, state, submit, openCreate, openEdit, confirmOpen, deleting, askDelete, confirmDelete } = useCrud<Product, ProductForm>({
|
|
259
|
+
key: 'products',
|
|
260
|
+
query,
|
|
261
|
+
emptyForm: () => ({ name: '', sku: '' }),
|
|
262
|
+
list: (q) => request('/api/products', { query: q }),
|
|
263
|
+
create: (form) => $fetch('/api/products', { body: form, method: 'POST' }),
|
|
264
|
+
update: (id, form) => $fetch(`/api/products/${id}`, { body: form, method: 'PATCH' }),
|
|
265
|
+
remove: (row) => $fetch(`/api/products/${row.id}`, { method: 'DELETE' }),
|
|
266
|
+
})
|
|
246
267
|
</script>
|
|
247
268
|
```
|
|
248
269
|
|
|
@@ -256,8 +277,8 @@ La consulta forma parte de la clave de caché, así que cada página, filtro y o
|
|
|
256
277
|
|
|
257
278
|
```ts
|
|
258
279
|
const crud = useCrud({
|
|
259
|
-
|
|
260
|
-
|
|
280
|
+
key: () => ['products', selectedCompanyId.value],
|
|
281
|
+
// ...
|
|
261
282
|
})
|
|
262
283
|
```
|
|
263
284
|
|
|
@@ -280,7 +301,7 @@ Mientras la clave está incompleta, `isPending` sigue en `true`: la pantalla est
|
|
|
280
301
|
Para lo que no se deduce de la clave —un permiso, una pestaña que no está a la vista— está la opción `enabled`, que se suma a la condición anterior.
|
|
281
302
|
|
|
282
303
|
```ts
|
|
283
|
-
useCrud({ key: () => ['products', companyId.value], enabled: () => canRead.value
|
|
304
|
+
useCrud({ key: () => ['products', companyId.value], enabled: () => canRead.value /* ... */ })
|
|
284
305
|
```
|
|
285
306
|
|
|
286
307
|
### La clave de invalidación
|
|
@@ -288,7 +309,7 @@ useCrud({ key: () => ['products', companyId.value], enabled: () => canRead.value
|
|
|
288
309
|
`invalidate()` invalida **por prefijo**, usando la clave base que le des. Pásale el prefijo más ancho del dominio y deja que vuno añada el estado de consulta como último segmento:
|
|
289
310
|
|
|
290
311
|
```ts
|
|
291
|
-
key: () => productKeys.all()
|
|
312
|
+
key: () => productKeys.all() // un alta refresca todo el dominio
|
|
292
313
|
key: () => productKeys.list(filtros) // solo refresca esa combinación de filtros
|
|
293
314
|
```
|
|
294
315
|
|
|
@@ -296,18 +317,14 @@ key: () => productKeys.list(filtros) // solo refresca esa combinación de filtro
|
|
|
296
317
|
|
|
297
318
|
`useCrud` resuelve el listado durante el render en servidor, así que el HTML sale con las filas puestas y no aparecen al hidratar. Nuxt renderiza en servidor por defecto, de modo que esto no hay que activarlo.
|
|
298
319
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
```ts
|
|
302
|
-
// app/plugins/vue-query.ts
|
|
303
|
-
export default defineNuxtPlugin((nuxtApp) => {
|
|
304
|
-
const state = useState<DehydratedState | null>('vue-query', () => null)
|
|
305
|
-
const queryClient = new QueryClient()
|
|
320
|
+
Vuno registra TanStack Query y deshidrata su caché en el payload de Nuxt, de modo que el cliente hidrata lo resuelto en servidor sin repetir la primera consulta. No hace falta instalar ni configurar `@tanstack/vue-query` en el proyecto consumidor.
|
|
306
321
|
|
|
307
|
-
|
|
322
|
+
Si el proyecto ya aporta su propio `QueryClient`, desactiva el registro de Vuno y conserva esa configuración:
|
|
308
323
|
|
|
309
|
-
|
|
310
|
-
|
|
324
|
+
```ts [nuxt.config.ts]
|
|
325
|
+
export default defineNuxtConfig({
|
|
326
|
+
modules: ['@groupteknology/vuno'],
|
|
327
|
+
vuno: { vueQuery: false },
|
|
311
328
|
})
|
|
312
329
|
```
|
|
313
330
|
|
|
@@ -319,45 +336,39 @@ Con la clave incompleta no se espera nada: la consulta está suspendida y espera
|
|
|
319
336
|
|
|
320
337
|
Si compruebas esto con un test, **mira el HTML renderizado, no el payload**. El payload lleva la consulta resuelta aunque el prefetch esté apagado, porque la consulta se asienta después del render y el plugin deshidrata lo que encuentra: un assert sobre el payload pasa en las dos direcciones y no mide nada.
|
|
321
338
|
|
|
322
|
-
|
|
339
|
+
## Migas de pan
|
|
323
340
|
|
|
324
|
-
|
|
325
|
-
pnpm add @tanstack/vue-query
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
No se declara como dependencia opcional del módulo a propósito. npm instala igualmente los `peerDependencies` marcados como opcionales, y como los de vue-query admiten Vue 2, acababa colocando `vue@2.6.14` en la raíz y chocando con el `vue@^3.5.0` que pide vuno: `npm install @groupteknology/vuno` fallaba con `ERESOLVE` en un proyecto Nuxt que no declarara `vue` por su cuenta. Con pnpm no ocurría, que es por lo que tardó en verse.
|
|
329
|
-
|
|
330
|
-
## Páginas
|
|
331
|
-
|
|
332
|
-
`VPage` pone la estructura que repite cualquier pantalla de mantenimiento:
|
|
341
|
+
`VBreadcrumb` pinta la ruta de navegación sin imponer la cabecera ni el cuerpo de la pantalla:
|
|
333
342
|
|
|
334
343
|
```vue
|
|
335
|
-
<
|
|
336
|
-
<template #actions>
|
|
337
|
-
<VButton icon="lucide:plus" label="Nuevo producto" @click="openCreate" />
|
|
338
|
-
</template>
|
|
339
|
-
|
|
340
|
-
<VTable ... />
|
|
341
|
-
</VPage>
|
|
344
|
+
<VBreadcrumb :items="[{ label: 'Inicio', to: '/' }, { label: 'Productos' }]" />
|
|
342
345
|
```
|
|
343
346
|
|
|
347
|
+
En rutas largas oculta los segmentos más antiguos antes de `sm`; con `loading` conserva el nombre accesible del segmento actual y muestra un esqueleto.
|
|
348
|
+
|
|
344
349
|
## Tablas
|
|
345
350
|
|
|
346
|
-
`VTable`
|
|
351
|
+
`VTable` se limita a renderizar filas y columnas. `VDataTable` lo compone con búsqueda, filtros, estados y `VPagination` para trabajar en modo servidor: emite el estado de consulta y tú devuelves la página.
|
|
347
352
|
|
|
348
353
|
**`query` es obligatorio.** No es un `v-model` opcional: sin él la tabla no compila, y el error de tipos que sale encabeza con el objeto `definition`, así que manda a mirar el sitio equivocado.
|
|
349
354
|
|
|
350
355
|
```vue
|
|
351
356
|
<script setup lang="ts">
|
|
352
|
-
const query = useTableQuery({ sort: 'sku', url: true, history: 'push', filterKeys: ['status'] })
|
|
357
|
+
const query = useTableQuery({ sort: 'sku', url: true, history: 'push', filterKeys: ['status'] })
|
|
353
358
|
|
|
354
|
-
const { data, status } = await useFetch('/api/products', {
|
|
355
|
-
|
|
356
|
-
})
|
|
359
|
+
const { data, status } = await useFetch('/api/products', {
|
|
360
|
+
query: computed(() => ({ page: query.value.page, sort: query.value.sort?.column, ...query.value.filters })),
|
|
361
|
+
})
|
|
357
362
|
</script>
|
|
358
363
|
|
|
359
364
|
<template>
|
|
360
|
-
|
|
365
|
+
<VDataTable
|
|
366
|
+
v-model:query="query"
|
|
367
|
+
:definition="definition"
|
|
368
|
+
:data="data?.data ?? []"
|
|
369
|
+
:total="data?.total ?? 0"
|
|
370
|
+
:loading="status === 'pending'"
|
|
371
|
+
/>
|
|
361
372
|
</template>
|
|
362
373
|
```
|
|
363
374
|
|
|
@@ -371,16 +382,33 @@ Cada uno declara sus propios props en una unión discriminada por `type`, igual
|
|
|
371
382
|
|
|
372
383
|
```ts
|
|
373
384
|
const definition = {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
385
|
+
searchable: false, // el endpoint no busca: no se pinta la barra
|
|
386
|
+
paginated: false, // ni pagina: el pie dice cuántos hay y nada más
|
|
387
|
+
columns: [
|
|
388
|
+
{ key: 'sku', label: 'SKU', type: 'text', sortable: true },
|
|
389
|
+
{ key: 'price', label: 'Precio', type: 'currency', currency: 'EUR', align: 'end' },
|
|
390
|
+
{ key: 'createdAt', label: 'Alta', type: 'date' },
|
|
391
|
+
],
|
|
392
|
+
} satisfies VunoDataTableDefinition<Product>
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
La misma definición controla las capacidades de disposición que dependen del caso real:
|
|
396
|
+
|
|
397
|
+
```ts
|
|
398
|
+
const definition = {
|
|
399
|
+
caption: 'Inventario disponible',
|
|
400
|
+
density: 'compact',
|
|
401
|
+
interactive: true,
|
|
402
|
+
stickyHeader: true,
|
|
403
|
+
columns: [
|
|
404
|
+
{ key: 'sku', label: 'SKU', type: 'text', sticky: 'start' },
|
|
405
|
+
{ key: 'stock', label: 'Stock', type: 'number', sticky: 'end' },
|
|
406
|
+
],
|
|
381
407
|
} satisfies VunoTableDefinition<Product>
|
|
382
408
|
```
|
|
383
409
|
|
|
410
|
+
`caption` nombra la tabla con HTML nativo; si el título ya existe fuera, usa `labelledBy` con su `id` en vez de repetirlo. `stickyHeader` necesita una altura limitada en `ui.tableRoot`. Las columnas usan bordes lógicos (`start` y `end`) para conservar el comportamiento en interfaces RTL. Cuando `interactive` está activo, una fila emite `rowClick` tanto con puntero como con Enter o Espacio y recibe un nombre accesible a partir de `rowLabel`.
|
|
411
|
+
|
|
384
412
|
#### Traducir un valor a una etiqueta
|
|
385
413
|
|
|
386
414
|
La columna `badge` tiene `map`, que convierte el valor crudo que llega del servidor en la etiqueta y el color que ve el usuario. Es lo que evita enseñar `user` o `published` en pantalla:
|
|
@@ -425,7 +453,7 @@ Y un aviso al ordenar: `sortable` ordena **en servidor por `key`**, y el servido
|
|
|
425
453
|
`map` es solo de `badge`. Para traducir en otro tipo de columna, o para componer algo que no es una etiqueta, está `type: 'custom'` con su slot:
|
|
426
454
|
|
|
427
455
|
```vue
|
|
428
|
-
<VTable v-model:
|
|
456
|
+
<VTable v-model:sort="sort" :definition="definition" :data="rows">
|
|
429
457
|
<template #cell-stock="{ row, value }">
|
|
430
458
|
<span class="tabular-nums">{{ value }} uds.</span>
|
|
431
459
|
<VBadge v-if="row.stock === 0" color="error" label="Agotado" />
|
|
@@ -440,9 +468,7 @@ El slot se llama `cell-<key>` y recibe `value` —el valor de esa columna, ya re
|
|
|
440
468
|
Son dos estados distintos y se pintan distinto. Sin separarlos, una consulta que falla se normaliza a lista vacía (`data ?? []`) y la tabla dice «No hay resultados»: afirma que no hay nada cuando lo cierto es que no se pudo saber.
|
|
441
469
|
|
|
442
470
|
```ts
|
|
443
|
-
const failure = computed(() => isError.value
|
|
444
|
-
? { title: 'No pudimos cargar los productos', hint: 'Puede ser algo temporal.', retry: () => void refetch() }
|
|
445
|
-
: undefined)
|
|
471
|
+
const failure = computed(() => (isError.value ? { title: 'No pudimos cargar los productos', hint: 'Puede ser algo temporal.', retry: () => void refetch() } : undefined))
|
|
446
472
|
```
|
|
447
473
|
|
|
448
474
|
Con `useCrud` no hace falta escribirlo: el objeto lo construye él, y el título y la pista se declaran en `messages` con `listFailed` y `listFailedHint`.
|
|
@@ -461,6 +487,14 @@ Los dos estados existen además sueltos, para las pantallas que no son una tabla
|
|
|
461
487
|
<VState tone="failure" :failure="failure" />
|
|
462
488
|
```
|
|
463
489
|
|
|
490
|
+
Un aviso que acompaña contenido existente usa `VAlert`. Es persistente, toma los mismos colores semánticos del tema y usa `role="status"` por defecto; `role="alert"` queda para lo urgente:
|
|
491
|
+
|
|
492
|
+
```vue
|
|
493
|
+
<VAlert color="warning" title="Faltan datos de facturación" description="Completa la dirección fiscal antes de emitir una factura.">
|
|
494
|
+
<template #actions><VButton label="Completar datos" variant="outline" /></template>
|
|
495
|
+
</VAlert>
|
|
496
|
+
```
|
|
497
|
+
|
|
464
498
|
Tipos de columna: `text` · `number` · `currency` · `date` · `boolean` · `badge` · `image` · `custom` · `actions`. Trae búsqueda con antirrebote, paginación, selección múltiple, panel lateral de filtros y menú de acciones por fila.
|
|
465
499
|
|
|
466
500
|
## Diálogos de confirmación
|
|
@@ -497,13 +531,13 @@ El componente recibe `open` y los props que le pases, y resuelve la promesa emit
|
|
|
497
531
|
|
|
498
532
|
```vue
|
|
499
533
|
<script setup lang="ts">
|
|
500
|
-
const emit = defineEmits<{ close: [guardado: boolean] }>()
|
|
501
|
-
const open = defineModel<boolean>('open', { default: false })
|
|
534
|
+
const emit = defineEmits<{ close: [guardado: boolean] }>()
|
|
535
|
+
const open = defineModel<boolean>('open', { default: false })
|
|
502
536
|
|
|
503
|
-
function guardar() {
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}
|
|
537
|
+
function guardar() {
|
|
538
|
+
open.value = false
|
|
539
|
+
emit('close', true)
|
|
540
|
+
}
|
|
507
541
|
</script>
|
|
508
542
|
```
|
|
509
543
|
|
|
@@ -511,27 +545,34 @@ Se pinta en `<VApp>` y no en la pantalla que lo abrió, así que navegar no lo d
|
|
|
511
545
|
|
|
512
546
|
## Composables
|
|
513
547
|
|
|
514
|
-
| Composable
|
|
515
|
-
|
|
516
|
-
| `useCrud`
|
|
517
|
-
| `useTableQuery`
|
|
518
|
-
| `useForm`
|
|
519
|
-
| `useField`
|
|
520
|
-
| `useTheme`
|
|
521
|
-
| `useIcons`
|
|
522
|
-
| `
|
|
523
|
-
|
|
524
|
-
|
|
548
|
+
| Composable | Para qué |
|
|
549
|
+
| ----------------- | -------------------------------------------------------------------------------- |
|
|
550
|
+
| `useCrud` | El ciclo de mantenimiento entero sobre TanStack Query. |
|
|
551
|
+
| `useTableQuery` | Estado de consulta de una tabla, opcionalmente sincronizado con la query string. |
|
|
552
|
+
| `useForm` | Contexto del `VForm` que envuelve al componente: estado, `dirty`, `reset`. |
|
|
553
|
+
| `useField` | Lee y escribe un campo por su ruta; para construir campos propios. |
|
|
554
|
+
| `useTheme` | Resuelve los slots de un componente cruzando tema, `app.config` y prop `ui`. |
|
|
555
|
+
| `useIcons` | Los iconos configurados en `vuno.icons`. |
|
|
556
|
+
| `useLocale` | El idioma configurado para fechas, números y monedas. |
|
|
557
|
+
| `useMessages` | Los textos configurados en `vuno.messages`. |
|
|
558
|
+
| `useToast` | Notificaciones globales que no interrumpen. |
|
|
559
|
+
| `useConfirm` | Confirmación global que devuelve la respuesta como promesa. |
|
|
560
|
+
| `useOverlay` | Abre componentes como capas globales desde código. |
|
|
561
|
+
| `useModal` | Resuelve y abre los modales del proyecto por nombre. |
|
|
562
|
+
| `useContext` | Acceso de bajo nivel al contexto provisto por `VApp`. |
|
|
563
|
+
| `defineShortcuts` | Declara atajos de teclado reactivos y ligados al ciclo de vida. |
|
|
564
|
+
|
|
565
|
+
`useTheme`, `useIcons`, `useLocale` y `useMessages` existen para que un componente tuyo pueda usar la misma configuración visual y regional que los de vuno sin duplicarla.
|
|
525
566
|
|
|
526
567
|
## Personalización
|
|
527
568
|
|
|
528
569
|
### Los tokens
|
|
529
570
|
|
|
530
|
-
**Es el primer sitio al que hay que ir, y casi siempre el único.**
|
|
571
|
+
**Es el primer sitio al que hay que ir, y casi siempre el único.** El color y la jerarquía de texto de vuno salen de variables CSS que se redefinen desde el proyecto. El caso mínimo, en cualquier hoja que cargue tu aplicación:
|
|
531
572
|
|
|
532
573
|
```css
|
|
533
574
|
:root {
|
|
534
|
-
|
|
575
|
+
--vuno-primary: var(--color-indigo-600);
|
|
535
576
|
}
|
|
536
577
|
```
|
|
537
578
|
|
|
@@ -539,42 +580,47 @@ Con esa línea cambian los botones sólidos, el anillo de foco de todos los camp
|
|
|
539
580
|
|
|
540
581
|
Los que hay:
|
|
541
582
|
|
|
542
|
-
| Token
|
|
543
|
-
|
|
|
544
|
-
| `--vuno-primary` · `--vuno-secondary` · `--vuno-neutral`
|
|
545
|
-
| `--vuno-success` · `--vuno-info` · `--vuno-warning` · `--vuno-error`
|
|
546
|
-
| `--vuno-*-contrast`
|
|
547
|
-
| `--vuno-font-sans` · `--vuno-font-mono`
|
|
548
|
-
| `--vuno-surface` · `--vuno-surface-1` · `--vuno-surface-2` · `--vuno-surface-inverse` | La escala de elevación: **cada cosa sube un escalón sobre lo que la sostiene**. La página es la base —blanco en claro, negro en oscuro—, lo que se levanta de ella es el 1 y lo que se levanta dentro de algo ya levantado es el 2.
|
|
549
|
-
| `--vuno-text-strong` · `-body` · `-muted` · `-subtle` · `-inverse`
|
|
550
|
-
| `--vuno-border` · `--vuno-border-strong`
|
|
551
|
-
| `--vuno-
|
|
552
|
-
| `--vuno-backdrop` | El velo que oscurece detrás de un diálogo. |
|
|
583
|
+
| Token | Para qué |
|
|
584
|
+
| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
585
|
+
| `--vuno-primary` · `--vuno-secondary` · `--vuno-neutral` | Los tres acentos de marca. |
|
|
586
|
+
| `--vuno-success` · `--vuno-info` · `--vuno-warning` · `--vuno-error` | Los cuatro de estado. |
|
|
587
|
+
| `--vuno-*-contrast` | El texto que va **encima** de cada acento en su variante sólida. |
|
|
588
|
+
| `--vuno-font-sans` · `--vuno-font-mono` | La tipografía. El módulo **nombra** la familia y no la carga: un `@import` a un servidor de fuentes convertiría cada visita de tu proyecto en una petición a un tercero. Cárgala tú —con `@nuxt/fonts` o con tu propio `@font-face`—; si no está, la pila de respaldo se encarga. |
|
|
589
|
+
| `--vuno-surface` · `--vuno-surface-1` · `--vuno-surface-2` · `--vuno-surface-inverse` | La escala de elevación: **cada cosa sube un escalón sobre lo que la sostiene**. La página es la base —blanco en claro, negro en oscuro—, lo que se levanta de ella es el 1 y lo que se levanta dentro de algo ya levantado es el 2. |
|
|
590
|
+
| `--vuno-text-strong` · `-body` · `-muted` · `-subtle` · `-inverse` | El texto por jerarquía, no por color. |
|
|
591
|
+
| `--vuno-border` · `--vuno-border-strong` | El borde que decora y el que delimita un control. |
|
|
592
|
+
| `--vuno-backdrop` | El velo que oscurece detrás de un diálogo. |
|
|
553
593
|
|
|
554
594
|
Dos cosas que ahorran un rato:
|
|
555
595
|
|
|
596
|
+
- **La curvatura usa Tailwind directamente.** El tema predeterminado usa `rounded-sm` y la prop `radius` admite `xs`, `sm`, `md`, `lg`, `xl`, `2xl`, `3xl`, `4xl` y `full`.
|
|
556
597
|
- **El tema oscuro se redefine aparte**, bajo `.dark`. Si solo cambias `:root`, el modo oscuro se queda con el valor de serie.
|
|
557
598
|
- **Cada acento sólido necesita su contraste.** Un `--vuno-warning` claro con texto blanco no se lee; por eso el ámbar de serie trae texto oscuro.
|
|
558
599
|
|
|
559
600
|
```css
|
|
560
601
|
.dark {
|
|
561
|
-
|
|
602
|
+
--vuno-primary: var(--color-indigo-400);
|
|
562
603
|
}
|
|
563
604
|
```
|
|
564
605
|
|
|
565
|
-
### Los
|
|
606
|
+
### Los niveles de configuración
|
|
566
607
|
|
|
567
|
-
|
|
608
|
+
Los defaults visuales compartidos viven en `vuno.theme`; las entradas de cada
|
|
609
|
+
componente, en `vuno.components`. Los iconos, textos e idioma permanecen al
|
|
610
|
+
nivel de `vuno` porque no son temas de un componente.
|
|
568
611
|
|
|
569
612
|
```ts
|
|
570
613
|
// app.config.ts — para toda la aplicación
|
|
571
614
|
export default defineAppConfig({
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
615
|
+
vuno: {
|
|
616
|
+
components: {
|
|
617
|
+
formSection: { slots: { root: 'border-dashed' } },
|
|
618
|
+
},
|
|
619
|
+
icons: { slugEdit: 'lucide:wand-sparkles' },
|
|
620
|
+
locale: 'es-ES',
|
|
621
|
+
messages: { selectPlaceholder: 'Elige una opción' },
|
|
622
|
+
theme: { radius: 'md' },
|
|
623
|
+
},
|
|
578
624
|
})
|
|
579
625
|
```
|
|
580
626
|
|
|
@@ -593,14 +639,12 @@ En desarrollo.
|
|
|
593
639
|
|
|
594
640
|
### Nota sobre pruebas automatizadas
|
|
595
641
|
|
|
596
|
-
|
|
642
|
+
Dos trampas, las dos medidas aquí, que hacen que una comprobación afirme lo contrario de lo que pasa.
|
|
597
643
|
|
|
598
644
|
**Una pestaña oculta no pinta.** Con la ventana de fondo, `document.visibilityState` es `hidden`, `requestAnimationFrame` **no dispara nunca** y con él se paran las transiciones: un diálogo puede no llegar a abrirse y una captura caducar. El DOM y las medidas de disposición sí funcionan, así que se puede comprobar casi todo; lo que no se puede es dar por cerrado un componente porque su nodo siga ahí. Mira el estado (`opacity`, `data-state`) y no la existencia del nodo, o haz la prueba con la pestaña delante.
|
|
599
645
|
|
|
600
646
|
**`getComputedStyle` se queda con el valor viejo tras cambiar un token.** Si redefines `--vuno-primary` y vuelves a leer un elemento que ya existía, puede devolverte el color anterior aunque la variable ya valga otra cosa. Se nota porque el valor sale en `oklab` en vez de en `oklch`. Lee sobre un elemento **creado después** del cambio —o sobre un clon del que te interesa— y el valor es el nuevo.
|
|
601
647
|
|
|
602
|
-
**Un control de Reka no responde a un clic sintético.** Sus botones actúan en `pointerdown`, no en `click`, y las flechas necesitan foco de verdad: un `.click()` o un `.focus()` desde el script no disparan nada y parece que el componente está roto. Los controles nativos —casilla, interruptor, radio— sí responden a `click()`, así que ahí el clic sintético vale.
|
|
603
|
-
|
|
604
648
|
## Licencia
|
|
605
649
|
|
|
606
650
|
[MIT](./LICENSE) © Diego Otayza
|
package/dist/module.d.mts
CHANGED
|
@@ -5,6 +5,8 @@ interface ModuleOptions {
|
|
|
5
5
|
prefix?: string;
|
|
6
6
|
/** Registrar el compilador de Tailwind. Ponlo en `false` si ya lo monta el proyecto. */
|
|
7
7
|
tailwind?: boolean;
|
|
8
|
+
/** Registrar TanStack Query con hidratación SSR. Ponlo en `false` si el proyecto ya aporta su propio cliente. */
|
|
9
|
+
vueQuery?: boolean;
|
|
8
10
|
}
|
|
9
11
|
declare const module$1: NuxtModule<ModuleOptions>;
|
|
10
12
|
|