@vueland/ui 0.0.1 → 0.0.3
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/LICENSE +21 -0
- package/README.md +147 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
- package/dist/components/CApp/CApp.js +4 -5
- package/dist/components/CAutocomplete/CAutocomplete.js +200 -91
- package/dist/components/CBtn/CBtn.js +26 -27
- package/dist/components/CCheckbox/CCheckbox.js +40 -58
- package/dist/components/CCheckbox/CheckboxElement.js +96 -0
- package/dist/components/CCheckbox/index2.js +5 -0
- package/dist/components/CChip/CChip.js +13 -0
- package/dist/components/CDateInput/CDateInput.js +245 -0
- package/dist/components/CDateInput/index.js +5 -0
- package/dist/components/CDatePicker/CDatePicker.js +324 -0
- package/dist/components/CDatePicker/CDatePickerDates.js +300 -0
- package/dist/components/CDatePicker/CDatePickerHeader.js +62 -0
- package/dist/components/CDatePicker/CDatePickerMonths.js +114 -0
- package/dist/components/CDatePicker/CDatePickerYears.js +143 -0
- package/dist/components/CDatePicker/helpers.js +17 -0
- package/dist/components/CDatePicker/index.js +14 -0
- package/dist/components/CDatePicker/index2.js +5 -0
- package/dist/components/CDatePicker/index3.js +5 -0
- package/dist/components/CDatePicker/index4.js +5 -0
- package/dist/components/CDatePicker/index5.js +5 -0
- package/dist/components/CDatePicker/index6.js +5 -0
- package/dist/components/CDatePicker/locales/en.json.js +44 -0
- package/dist/components/CDatePicker/locales/index.js +9 -0
- package/dist/components/CDatePicker/locales/ru.json.js +44 -0
- package/dist/components/CDatePicker/utils.js +20 -0
- package/dist/components/CDialog/CDialog.js +2 -4
- package/dist/components/CField/CField.js +160 -28
- package/dist/components/CForm/CForm.js +38 -22
- package/dist/components/CGrid/CCol.js +1 -3
- package/dist/components/CGrid/CRow.js +5 -7
- package/dist/components/CIcon/CIcon.js +3 -3
- package/dist/components/CInput/CInput.js +119 -109
- package/dist/components/CList/CList.js +106 -34
- package/dist/components/CList/CListItem.js +44 -14
- package/dist/components/CMenu/CMenu.js +54 -55
- package/dist/components/COverlay/COverlay.js +6 -5
- package/dist/components/CRadio/CRadio.js +11 -5
- package/dist/components/CRadio/CRadioGroup.js +10 -0
- package/dist/components/CSelect/CSelect.js +180 -71
- package/dist/components/CSelectControl/CSelectControl.js +14 -2
- package/dist/components/CTextField/CTextField.js +79 -52
- package/dist/components/CTextField/index.js +2 -2
- package/dist/components/CTextField/index2.js +5 -0
- package/dist/components/CToolbar/CToolbar.js +1 -3
- package/dist/components/CTooltip/CTooltip.js +13 -11
- package/dist/components/CTooltip/index.js +2 -2
- package/dist/components/CTooltip/index2.js +5 -0
- package/dist/components/global-components.d.ts +44 -0
- package/dist/components/index.d.ts +841 -504
- package/dist/components/index.js +11 -7
- package/dist/composables/index.d.ts +384 -235
- package/dist/composables/index.js +22 -14
- package/dist/composables/use-activator.js +15 -25
- package/dist/composables/{use-app-scroll.js → use-application-scroll.js} +4 -8
- package/dist/composables/use-aria-activator.js +15 -0
- package/dist/composables/use-aria-dialog.js +16 -0
- package/dist/composables/use-aria-field.js +18 -0
- package/dist/composables/use-aria-listbox.js +14 -0
- package/dist/composables/use-aria-toggle.js +15 -0
- package/dist/composables/use-auto-position.js +206 -118
- package/dist/composables/use-autocomplete.js +21 -19
- package/dist/composables/use-breakpoints.js +8 -0
- package/dist/composables/use-button-presets.js +3 -7
- package/dist/composables/use-delay-actions.js +8 -2
- package/dist/composables/use-display.js +26 -18
- package/dist/composables/use-field-presets.js +82 -0
- package/dist/composables/use-icon.js +106 -34
- package/dist/composables/use-id.js +9 -0
- package/dist/composables/use-input-presets.js +88 -19
- package/dist/composables/use-keyboard.js +52 -0
- package/dist/composables/use-list.js +8 -0
- package/dist/composables/use-menu.js +8 -0
- package/dist/composables/use-normalized-items.js +22 -0
- package/dist/composables/use-overlay-stack.js +4 -1
- package/dist/composables/use-presets.js +2 -2
- package/dist/composables/use-select-control.js +8 -0
- package/dist/composables/use-selected-chips.js +40 -0
- package/dist/composables/use-validate.js +32 -24
- package/dist/constants/aria.js +32 -0
- package/dist/constants/attrs.js +21 -0
- package/dist/constants/icons.js +55 -8
- package/dist/constants/index.d.ts +187 -53
- package/dist/constants/index.js +3 -1
- package/dist/constants/provide-keys.js +2 -1
- package/dist/css/lib.css +1 -0
- package/dist/css/utils/_borders.css +1 -0
- package/dist/css/utils/_borders.js +3 -0
- package/dist/css/utils/_display.css +1 -1
- package/dist/css/utils/_flex.css +1 -1
- package/dist/css/utils/_grid.css +1 -0
- package/dist/css/utils/_grid.js +3 -0
- package/dist/css/utils/_helpers.css +1 -1
- package/dist/css/utils/_positions.css +1 -1
- package/dist/css/utils/_radius.css +1 -1
- package/dist/css/utils/_sizing.css +1 -1
- package/dist/css/utils/_spaces.css +1 -1
- package/dist/css/utils/_text.css +1 -1
- package/dist/css/utils/_transitions.css +1 -1
- package/dist/css/utils/_typography.css +1 -1
- package/dist/enums/IconName.js +13 -0
- package/dist/enums/index.d.ts +15 -2
- package/dist/helpers/preset.js +11 -0
- package/dist/helpers/theme.js +41 -0
- package/dist/library.js +31 -9
- package/dist/resolvers/font-awesome.js +30 -0
- package/dist/resolvers/index.d.ts +48 -0
- package/dist/resolvers/index.js +1 -0
- package/dist/scss/lib.scss +26 -0
- package/dist/scss/maps/colors-map.scss +342 -0
- package/dist/scss/maps/elevations-map.scss +88 -0
- package/dist/scss/maps/flexes-map.scss +24 -0
- package/dist/scss/maps/grids.scss +23 -0
- package/dist/scss/modules/_global-vars.scss +88 -0
- package/dist/scss/ress.scss +281 -0
- package/dist/scss/styles.scss +20 -0
- package/dist/scss/utils/_borders.scss +28 -0
- package/dist/scss/utils/_colors.scss +86 -0
- package/dist/scss/utils/_cursor.scss +140 -0
- package/dist/scss/utils/_display.scss +32 -0
- package/dist/scss/utils/_elevations.scss +15 -0
- package/dist/scss/utils/_flex.scss +137 -0
- package/dist/scss/utils/_grid.scss +173 -0
- package/dist/scss/utils/_helpers.scss +47 -0
- package/dist/scss/utils/_opacity.scss +13 -0
- package/dist/scss/utils/_overflow.scss +51 -0
- package/dist/scss/utils/_positions.scss +42 -0
- package/dist/scss/utils/_radius.scss +41 -0
- package/dist/scss/utils/_sizing.scss +40 -0
- package/dist/scss/utils/_spaces.scss +164 -0
- package/dist/scss/utils/_text.scss +76 -0
- package/dist/scss/utils/_transitions.scss +98 -0
- package/dist/scss/utils/_typography.scss +81 -0
- package/dist/styles.css +1 -1
- package/dist/temp-types/src/components/CApp/CApp.vue.d.ts +2 -4
- package/dist/temp-types/src/components/CApp/CApp.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CApp/types.d.ts +4 -0
- package/dist/temp-types/src/components/CApp/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CAutocomplete/CAutocomplete.vue.d.ts +7 -2
- package/dist/temp-types/src/components/CAutocomplete/CAutocomplete.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CAutocomplete/types.d.ts +16 -6
- package/dist/temp-types/src/components/CAutocomplete/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CBtn/CBtn.vue.d.ts +5 -1
- package/dist/temp-types/src/components/CBtn/CBtn.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CBtn/index.d.ts +1 -0
- package/dist/temp-types/src/components/CBtn/index.d.ts.map +1 -1
- package/dist/temp-types/src/components/CBtn/types.d.ts +1 -0
- package/dist/temp-types/src/components/CBtn/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CCheckbox/CCheckbox.vue.d.ts +2 -6
- package/dist/temp-types/src/components/CCheckbox/CCheckbox.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CCheckbox/CheckboxElement.vue.d.ts +32 -0
- package/dist/temp-types/src/components/CCheckbox/CheckboxElement.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CCheckbox/types.d.ts +7 -4
- package/dist/temp-types/src/components/CCheckbox/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CChip/CChip.vue.d.ts +13 -0
- package/dist/temp-types/src/components/CChip/CChip.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CChip/index.d.ts +2 -0
- package/dist/temp-types/src/components/CChip/index.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDateInput/CDateInput.vue.d.ts +61 -0
- package/dist/temp-types/src/components/CDateInput/CDateInput.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDateInput/index.d.ts +3 -0
- package/dist/temp-types/src/components/CDateInput/index.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePicker.vue.d.ts +82 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePicker.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerDates.vue.d.ts +60 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerDates.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerHeader.vue.d.ts +27 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerHeader.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerMonths.vue.d.ts +40 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerMonths.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerYears.vue.d.ts +34 -0
- package/dist/temp-types/src/components/CDatePicker/CDatePickerYears.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/helpers.d.ts +4 -0
- package/dist/temp-types/src/components/CDatePicker/helpers.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/index.d.ts +6 -0
- package/dist/temp-types/src/components/CDatePicker/index.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/locales/index.d.ts +7 -0
- package/dist/temp-types/src/components/CDatePicker/locales/index.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/types.d.ts +22 -0
- package/dist/temp-types/src/components/CDatePicker/types.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDatePicker/utils.d.ts +8 -0
- package/dist/temp-types/src/components/CDatePicker/utils.d.ts.map +1 -0
- package/dist/temp-types/src/components/CDialog/CDialog.vue.d.ts +1 -1
- package/dist/temp-types/src/components/CDialog/CDialog.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CDialog/CDialogsStack.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CDialog/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CField/CField.vue.d.ts +26 -10
- package/dist/temp-types/src/components/CField/CField.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CField/index.d.ts +1 -0
- package/dist/temp-types/src/components/CField/index.d.ts.map +1 -1
- package/dist/temp-types/src/components/CField/types.d.ts +22 -0
- package/dist/temp-types/src/components/CField/types.d.ts.map +1 -0
- package/dist/temp-types/src/components/CForm/CForm.vue.d.ts +10 -8
- package/dist/temp-types/src/components/CForm/CForm.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CForm/types.d.ts +13 -3
- package/dist/temp-types/src/components/CForm/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CGrid/CCol.d.ts.map +1 -1
- package/dist/temp-types/src/components/CGrid/CRow.d.ts +1 -1
- package/dist/temp-types/src/components/CGrid/CRow.d.ts.map +1 -1
- package/dist/temp-types/src/components/CGrid/index.d.ts +1 -1
- package/dist/temp-types/src/components/CIcon/CIcon.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CIcon/types.d.ts +1 -2
- package/dist/temp-types/src/components/CIcon/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CInput/CInput.vue.d.ts +23 -7
- package/dist/temp-types/src/components/CInput/CInput.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CInput/types.d.ts +42 -28
- package/dist/temp-types/src/components/CInput/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CLabel/CLabel.d.ts.map +1 -1
- package/dist/temp-types/src/components/CList/CList.vue.d.ts +7 -1
- package/dist/temp-types/src/components/CList/CList.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CList/CListItem.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CList/types.d.ts +18 -1
- package/dist/temp-types/src/components/CList/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CMenu/CMenu.vue.d.ts +6 -6
- package/dist/temp-types/src/components/CMenu/CMenu.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CMenu/types.d.ts +2 -2
- package/dist/temp-types/src/components/CMenu/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/COverlay/COverlay.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CRadio/CRadio.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CRadio/CRadioGroup.vue.d.ts +13 -0
- package/dist/temp-types/src/components/CRadio/CRadioGroup.vue.d.ts.map +1 -0
- package/dist/temp-types/src/components/CRadio/index.d.ts +1 -0
- package/dist/temp-types/src/components/CRadio/index.d.ts.map +1 -1
- package/dist/temp-types/src/components/CScrim/index.d.ts.map +1 -1
- package/dist/temp-types/src/components/CSelect/CSelect.vue.d.ts +7 -2
- package/dist/temp-types/src/components/CSelect/CSelect.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CSelect/types.d.ts +16 -6
- package/dist/temp-types/src/components/CSelect/types.d.ts.map +1 -1
- package/dist/temp-types/src/components/CSelectControl/CSelectControl.vue.d.ts +5 -1
- package/dist/temp-types/src/components/CSelectControl/CSelectControl.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CTextField/CTextField.vue.d.ts +19 -17
- package/dist/temp-types/src/components/CTextField/CTextField.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CTextField/index.d.ts +10 -1
- package/dist/temp-types/src/components/CTextField/index.d.ts.map +1 -1
- package/dist/temp-types/src/components/CTextField/types.d.ts +16 -0
- package/dist/temp-types/src/components/CTextField/types.d.ts.map +1 -0
- package/dist/temp-types/src/components/CToolbar/CToolbar.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CTooltip/CTooltip.vue.d.ts +3 -1
- package/dist/temp-types/src/components/CTooltip/CTooltip.vue.d.ts.map +1 -1
- package/dist/temp-types/src/components/CTooltip/index.d.ts +7 -1
- package/dist/temp-types/src/components/CTooltip/index.d.ts.map +1 -1
- package/dist/temp-types/src/components/index.d.ts +17 -15
- package/dist/temp-types/src/components/index.d.ts.map +1 -1
- package/dist/temp-types/src/composables/index.d.ts +22 -14
- package/dist/temp-types/src/composables/index.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-activator.d.ts +4 -2
- package/dist/temp-types/src/composables/use-activator.d.ts.map +1 -1
- package/dist/temp-types/src/composables/{use-app-scroll.d.ts → use-application-scroll.d.ts} +2 -2
- package/dist/temp-types/src/composables/use-application-scroll.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-application.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-aria-activator.d.ts +8 -0
- package/dist/temp-types/src/composables/use-aria-activator.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-aria-dialog.d.ts +9 -0
- package/dist/temp-types/src/composables/use-aria-dialog.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-aria-field.d.ts +13 -0
- package/dist/temp-types/src/composables/use-aria-field.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-aria-listbox.d.ts +8 -0
- package/dist/temp-types/src/composables/use-aria-listbox.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-aria-toggle.d.ts +11 -0
- package/dist/temp-types/src/composables/use-aria-toggle.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-auto-position.d.ts +12 -9
- package/dist/temp-types/src/composables/use-auto-position.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-autocomplete.d.ts +9 -4
- package/dist/temp-types/src/composables/use-autocomplete.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-breakpoints.d.ts +1 -0
- package/dist/temp-types/src/composables/use-breakpoints.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-button-presets.d.ts +2 -2
- package/dist/temp-types/src/composables/use-button-presets.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-core.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-delay-actions.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-dialogs-stack.d.ts +3 -3
- package/dist/temp-types/src/composables/use-dialogs-stack.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-display.d.ts +29 -55
- package/dist/temp-types/src/composables/use-display.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-effect.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-field-presets.d.ts +12 -0
- package/dist/temp-types/src/composables/use-field-presets.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-form.d.ts +1 -1
- package/dist/temp-types/src/composables/use-form.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-icon.d.ts +32 -4
- package/dist/temp-types/src/composables/use-icon.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-id.d.ts +6 -0
- package/dist/temp-types/src/composables/use-id.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-input-presets.d.ts +6 -7
- package/dist/temp-types/src/composables/use-input-presets.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-keyboard.d.ts +11 -0
- package/dist/temp-types/src/composables/use-keyboard.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-list.d.ts +3 -0
- package/dist/temp-types/src/composables/use-list.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-menu.d.ts +2 -0
- package/dist/temp-types/src/composables/use-menu.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-normalized-items.d.ts +18 -0
- package/dist/temp-types/src/composables/use-normalized-items.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-overlay-stack.d.ts +1 -0
- package/dist/temp-types/src/composables/use-overlay-stack.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-presets.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-select-control.d.ts +2 -0
- package/dist/temp-types/src/composables/use-select-control.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-selected-chips.d.ts +16 -0
- package/dist/temp-types/src/composables/use-selected-chips.d.ts.map +1 -0
- package/dist/temp-types/src/composables/use-toggle.d.ts +1 -1
- package/dist/temp-types/src/composables/use-toggle.d.ts.map +1 -1
- package/dist/temp-types/src/composables/use-validate.d.ts +10 -8
- package/dist/temp-types/src/composables/use-validate.d.ts.map +1 -1
- package/dist/temp-types/src/constants/aria.d.ts +35 -0
- package/dist/temp-types/src/constants/aria.d.ts.map +1 -0
- package/dist/temp-types/src/constants/attrs.d.ts +2 -0
- package/dist/temp-types/src/constants/attrs.d.ts.map +1 -0
- package/dist/temp-types/src/constants/icons.d.ts +91 -18
- package/dist/temp-types/src/constants/icons.d.ts.map +1 -1
- package/dist/temp-types/src/constants/index.d.ts +3 -1
- package/dist/temp-types/src/constants/index.d.ts.map +1 -1
- package/dist/temp-types/src/constants/provide-keys.d.ts +7 -6
- package/dist/temp-types/src/constants/provide-keys.d.ts.map +1 -1
- package/dist/temp-types/src/directives/v-click-outside.d.ts.map +1 -1
- package/dist/temp-types/src/enums/IconName.d.ts +15 -2
- package/dist/temp-types/src/enums/IconName.d.ts.map +1 -1
- package/dist/temp-types/src/helpers/index.d.ts +2 -0
- package/dist/temp-types/src/helpers/index.d.ts.map +1 -1
- package/dist/temp-types/src/helpers/preset.d.ts +8 -0
- package/dist/temp-types/src/helpers/preset.d.ts.map +1 -0
- package/dist/temp-types/src/helpers/theme.d.ts +4 -0
- package/dist/temp-types/src/helpers/theme.d.ts.map +1 -0
- package/dist/temp-types/src/index.d.ts.map +1 -1
- package/dist/temp-types/src/library.d.ts +10 -3
- package/dist/temp-types/src/library.d.ts.map +1 -1
- package/dist/temp-types/src/resolvers/font-awesome.d.ts +18 -0
- package/dist/temp-types/src/resolvers/font-awesome.d.ts.map +1 -0
- package/dist/temp-types/src/resolvers/index.d.ts +2 -0
- package/dist/temp-types/src/resolvers/index.d.ts.map +1 -0
- package/dist/temp-types/src/resolvers/material.d.ts +1 -0
- package/dist/temp-types/src/resolvers/material.d.ts.map +1 -0
- package/dist/temp-types/src/types/icons.d.ts +29 -0
- package/dist/temp-types/src/types/icons.d.ts.map +1 -0
- package/dist/temp-types/src/types/index.d.ts +4 -2
- package/dist/temp-types/src/types/index.d.ts.map +1 -1
- package/dist/temp-types/src/types/presets.d.ts +35 -47
- package/dist/temp-types/src/types/presets.d.ts.map +1 -1
- package/dist/temp-types/src/types/theme.d.ts +32 -0
- package/dist/temp-types/src/types/theme.d.ts.map +1 -0
- package/dist/temp-types/src/utils/aria.d.ts +36 -0
- package/dist/temp-types/src/utils/aria.d.ts.map +1 -0
- package/dist/temp-types/src/utils/compile-css-classes.d.ts.map +1 -1
- package/dist/temp-types/src/utils/create-simple-functional.d.ts.map +1 -1
- package/dist/temp-types/src/utils/index.d.ts +3 -2
- package/dist/temp-types/src/utils/index.d.ts.map +1 -1
- package/dist/temp-types/src/utils/throttle.d.ts.map +1 -1
- package/dist/temp-types/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +125 -0
- package/dist/types.d.ts +137 -72
- package/dist/utils/aria.js +95 -0
- package/dist/utils/compile-css-classes.js +3 -13
- package/dist/utils/create-simple-functional.js +1 -5
- package/dist/utils/index.d.ts +48 -10
- package/dist/utils/index.js +3 -2
- package/package.json +35 -9
- package/dist/components/CItems/CItems.js +0 -66
- package/dist/composables/use-field-attrs.js +0 -43
- package/dist/composables/use-input-state.js +0 -41
- package/dist/composables/use-input-value.js +0 -18
- package/dist/composables/use-menu-presets.js +0 -17
- package/dist/composables/use-position-classes.js +0 -12
- package/dist/css/themes/default-theme.css +0 -1
- package/dist/temp-types/src/components/CItems/CItems.d.ts +0 -16
- package/dist/temp-types/src/components/CItems/CItems.d.ts.map +0 -1
- package/dist/temp-types/src/components/CItems/index.d.ts +0 -2
- package/dist/temp-types/src/components/CItems/index.d.ts.map +0 -1
- package/dist/temp-types/src/composables/use-app-scroll.d.ts.map +0 -1
- package/dist/temp-types/src/composables/use-field-attrs.d.ts +0 -10
- package/dist/temp-types/src/composables/use-field-attrs.d.ts.map +0 -1
- package/dist/temp-types/src/composables/use-input-state.d.ts +0 -17
- package/dist/temp-types/src/composables/use-input-state.d.ts.map +0 -1
- package/dist/temp-types/src/composables/use-input-value.d.ts +0 -3
- package/dist/temp-types/src/composables/use-input-value.d.ts.map +0 -1
- package/dist/temp-types/src/composables/use-menu-presets.d.ts +0 -7
- package/dist/temp-types/src/composables/use-menu-presets.d.ts.map +0 -1
- package/dist/temp-types/src/composables/use-position-classes.d.ts +0 -10
- package/dist/temp-types/src/composables/use-position-classes.d.ts.map +0 -1
- package/dist/temp-types/src/utils/define-preset.d.ts +0 -2
- package/dist/temp-types/src/utils/define-preset.d.ts.map +0 -1
- /package/dist/css/{themes/default-theme.js → lib.js} +0 -0
|
@@ -1,22 +1,30 @@
|
|
|
1
|
-
export { breakpoints, useDisplay } from './use-display.js';
|
|
2
|
-
export { InputEvents, useValidate } from './use-validate.js';
|
|
3
|
-
export { useInputState } from './use-input-state.js';
|
|
4
|
-
export { useFieldAttrs } from './use-field-attrs.js';
|
|
5
1
|
export { useActivator } from './use-activator.js';
|
|
6
|
-
export { useAutocomplete } from './use-autocomplete.js';
|
|
7
|
-
export { usePositionClasses } from './use-position-classes.js';
|
|
8
|
-
export { useDelayedActions } from './use-delay-actions.js';
|
|
9
2
|
export { useApplication } from './use-application.js';
|
|
3
|
+
export { useApplicationScroll } from './use-application-scroll.js';
|
|
4
|
+
export { useAriaActivator } from './use-aria-activator.js';
|
|
5
|
+
export { useAriaDialog } from './use-aria-dialog.js';
|
|
6
|
+
export { useAriaField } from './use-aria-field.js';
|
|
7
|
+
export { useAriaListbox } from './use-aria-listbox.js';
|
|
8
|
+
export { useAriaToggle } from './use-aria-toggle.js';
|
|
10
9
|
export { useAutoPosition } from './use-auto-position.js';
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
10
|
+
export { useAutocomplete } from './use-autocomplete.js';
|
|
11
|
+
export { useBreakpoints } from './use-breakpoints.js';
|
|
12
|
+
export { useButtonPresets } from './use-button-presets.js';
|
|
13
13
|
export { useCore } from './use-core.js';
|
|
14
|
-
export {
|
|
14
|
+
export { useDelayedActions } from './use-delay-actions.js';
|
|
15
15
|
export { createDialogsStack, useDialogsStack } from './use-dialogs-stack.js';
|
|
16
|
+
export { breakpoints, useDisplay } from './use-display.js';
|
|
16
17
|
export { useEffect } from './use-effect.js';
|
|
17
18
|
export { useForm } from './use-form.js';
|
|
18
|
-
export {
|
|
19
|
+
export { useIcon } from './use-icon.js';
|
|
20
|
+
export { useId } from './use-id.js';
|
|
19
21
|
export { useInputPresets } from './use-input-presets.js';
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
22
|
+
export { useKeyboard } from './use-keyboard.js';
|
|
23
|
+
export { useMenu } from './use-menu.js';
|
|
24
|
+
export { useNormalizedItems } from './use-normalized-items.js';
|
|
25
|
+
export { clearOverlayStack, useOverlayStack } from './use-overlay-stack.js';
|
|
26
|
+
export { usePresets } from './use-presets.js';
|
|
27
|
+
export { useSelectControl } from './use-select-control.js';
|
|
28
|
+
export { useSelectedChips } from './use-selected-chips.js';
|
|
29
|
+
export { useToggle } from './use-toggle.js';
|
|
30
|
+
export { InputEvents, useValidate } from './use-validate.js';
|
|
@@ -1,44 +1,34 @@
|
|
|
1
|
-
import { shallowRef, computed,
|
|
1
|
+
import { shallowRef, computed, unref, markRaw } from 'vue';
|
|
2
2
|
|
|
3
3
|
function useActivator(props) {
|
|
4
|
-
const activatorEl = shallowRef();
|
|
4
|
+
const activatorEl = shallowRef(props.activator);
|
|
5
|
+
const element = computed(() => getActivator());
|
|
5
6
|
const activatorProps = { ref: set };
|
|
6
7
|
function set(val) {
|
|
7
8
|
activatorEl.value = val;
|
|
8
9
|
}
|
|
9
10
|
function getActivator() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function getActivatorElement() {
|
|
13
|
-
var _a, _b;
|
|
14
|
-
return (_b = (_a = unref(activatorEl)) == null ? void 0 : _a.$el) != null ? _b : unref(activatorEl);
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
return (_c = (_b = props.activator) != null ? _b : (_a = unref(activatorEl)) == null ? void 0 : _a.$el) != null ? _c : unref(activatorEl);
|
|
15
13
|
}
|
|
16
14
|
function genListeners({
|
|
17
15
|
open,
|
|
18
16
|
close,
|
|
19
17
|
toggle
|
|
20
18
|
}) {
|
|
21
|
-
return computed(
|
|
22
|
-
|
|
23
|
-
mouseenter: () => open()
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} : {},
|
|
31
|
-
...props.closeOnClick ? {
|
|
32
|
-
click: () => toggle()
|
|
33
|
-
} : {},
|
|
34
|
-
...props.openOnFocus ? {
|
|
35
|
-
focus: () => open()
|
|
36
|
-
} : {}
|
|
37
|
-
}));
|
|
19
|
+
return computed(
|
|
20
|
+
() => markRaw({
|
|
21
|
+
...props.openOnHover ? { mouseenter: () => open() } : {},
|
|
22
|
+
...props.closeOnLeave ? { mouseleave: () => close() } : {},
|
|
23
|
+
...props.openOnClick ? { click: () => open() } : {},
|
|
24
|
+
...props.closeOnClick ? { click: () => toggle() } : {},
|
|
25
|
+
...props.openOnFocus ? { focus: () => open() } : {}
|
|
26
|
+
})
|
|
27
|
+
);
|
|
38
28
|
}
|
|
39
29
|
return {
|
|
30
|
+
element,
|
|
40
31
|
activatorProps,
|
|
41
|
-
getActivatorElement,
|
|
42
32
|
genListeners,
|
|
43
33
|
getActivator
|
|
44
34
|
};
|
|
@@ -2,16 +2,12 @@ import { shallowReactive, shallowRef, computed, unref } from 'vue';
|
|
|
2
2
|
import { convertToUnit } from '../utils/convert-to-unit.js';
|
|
3
3
|
import { IN_BROWSER } from '../utils/globals.js';
|
|
4
4
|
|
|
5
|
-
function
|
|
6
|
-
const state = shallowReactive({
|
|
7
|
-
blockScroll: false
|
|
8
|
-
});
|
|
5
|
+
function useApplicationScroll() {
|
|
6
|
+
const state = shallowReactive({ blockScroll: false });
|
|
9
7
|
const appRef = shallowRef();
|
|
10
8
|
let savedScrollTop = 0;
|
|
11
9
|
let savedScrollLeft = 0;
|
|
12
|
-
const classes = computed(() => ({
|
|
13
|
-
"c-app--block-scroll": state.blockScroll
|
|
14
|
-
}));
|
|
10
|
+
const classes = computed(() => ({ "c-app--block-scroll": state.blockScroll }));
|
|
15
11
|
function getScrollTop() {
|
|
16
12
|
if (!IN_BROWSER) return 0;
|
|
17
13
|
return window.scrollY;
|
|
@@ -52,4 +48,4 @@ function useAppScroll() {
|
|
|
52
48
|
};
|
|
53
49
|
}
|
|
54
50
|
|
|
55
|
-
export {
|
|
51
|
+
export { useApplicationScroll };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { ariaExpandable } from '../utils/aria.js';
|
|
3
|
+
|
|
4
|
+
function useAriaActivator(state) {
|
|
5
|
+
return computed(() => {
|
|
6
|
+
var _a;
|
|
7
|
+
const s = state();
|
|
8
|
+
return ariaExpandable(s.expanded, {
|
|
9
|
+
haspopup: (_a = s.haspopup) != null ? _a : true,
|
|
10
|
+
controls: s.controls
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { useAriaActivator };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { ariaDescribedBy, ariaLabelledBy, ariaModal } from '../utils/aria.js';
|
|
3
|
+
|
|
4
|
+
function useAriaDialog(state = () => ({})) {
|
|
5
|
+
return computed(() => {
|
|
6
|
+
var _a;
|
|
7
|
+
const s = state();
|
|
8
|
+
return {
|
|
9
|
+
...ariaModal((_a = s.modal) != null ? _a : true),
|
|
10
|
+
...ariaLabelledBy(s.labelledBy),
|
|
11
|
+
...ariaDescribedBy(s.describedBy)
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { useAriaDialog };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { ariaDisabled, ariaReadonly, ariaErrorMessage, ariaInvalid, ariaDescribedBy, ariaLabelledBy } from '../utils/aria.js';
|
|
3
|
+
|
|
4
|
+
function useAriaField(state) {
|
|
5
|
+
return computed(() => {
|
|
6
|
+
const s = state();
|
|
7
|
+
return {
|
|
8
|
+
...ariaLabelledBy(s.label ? `${s.fieldId}-label` : void 0),
|
|
9
|
+
...ariaDescribedBy(s.hasDetails ? `${s.fieldId}-details` : void 0),
|
|
10
|
+
...ariaInvalid(s.hasError),
|
|
11
|
+
...ariaErrorMessage(s.errorMessage && s.hasDetails ? `${s.fieldId}-details` : void 0),
|
|
12
|
+
...ariaReadonly(s.readonly),
|
|
13
|
+
...ariaDisabled(s.disabled)
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { useAriaField };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { ariaActiveDescendant, ariaMultiselectable } from '../utils/aria.js';
|
|
3
|
+
|
|
4
|
+
function useAriaListbox(state) {
|
|
5
|
+
return computed(() => {
|
|
6
|
+
const s = state();
|
|
7
|
+
return {
|
|
8
|
+
...ariaMultiselectable(s.multiple),
|
|
9
|
+
...ariaActiveDescendant(s.activeDescendant)
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { useAriaListbox };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { computed } from 'vue';
|
|
2
|
+
import { ariaRequired, ariaDisabled, ariaPressed, ariaChecked } from '../utils/aria.js';
|
|
3
|
+
|
|
4
|
+
function useAriaToggle(state) {
|
|
5
|
+
return computed(() => {
|
|
6
|
+
const s = state();
|
|
7
|
+
return {
|
|
8
|
+
...s.mode === "button" ? ariaPressed(s.checked) : ariaChecked(s.checked),
|
|
9
|
+
...ariaDisabled(s.disabled),
|
|
10
|
+
...ariaRequired(s.required)
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { useAriaToggle };
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import { ref, shallowRef, computed, unref, watch, onBeforeUnmount, nextTick } from 'vue';
|
|
2
|
-
import { useApplication } from './use-application.js';
|
|
3
2
|
import { isDef } from '../helpers/index.js';
|
|
3
|
+
import { useApplication } from './use-application.js';
|
|
4
4
|
import { IN_BROWSER } from '../utils/globals.js';
|
|
5
5
|
|
|
6
|
-
const SCREEN_EDGE_OFFSET =
|
|
7
|
-
const
|
|
6
|
+
const SCREEN_EDGE_OFFSET = 10;
|
|
7
|
+
const REVERSE_SIDE = {
|
|
8
|
+
top: "bottom",
|
|
9
|
+
bottom: "top",
|
|
10
|
+
left: "right",
|
|
11
|
+
right: "left"
|
|
12
|
+
};
|
|
13
|
+
function parseSide(align) {
|
|
14
|
+
return align == null ? void 0 : align.split("-")[0];
|
|
15
|
+
}
|
|
16
|
+
function parseCross(align) {
|
|
17
|
+
if (!align) return void 0;
|
|
18
|
+
const idx = align.indexOf("-");
|
|
19
|
+
return idx === -1 ? void 0 : align.slice(idx + 1);
|
|
20
|
+
}
|
|
21
|
+
function resolveElement(value) {
|
|
8
22
|
var _a;
|
|
9
|
-
|
|
23
|
+
if (!value) {
|
|
24
|
+
return void 0;
|
|
25
|
+
}
|
|
26
|
+
return (_a = value.$el) != null ? _a : value;
|
|
27
|
+
}
|
|
28
|
+
function getElementRect(element) {
|
|
10
29
|
const {
|
|
11
30
|
top,
|
|
12
31
|
left,
|
|
@@ -19,8 +38,19 @@ const getRect = (el) => {
|
|
|
19
38
|
width,
|
|
20
39
|
height
|
|
21
40
|
};
|
|
22
|
-
}
|
|
23
|
-
function
|
|
41
|
+
}
|
|
42
|
+
function getObservedSize(entry) {
|
|
43
|
+
var _a, _b, _c;
|
|
44
|
+
const borderBoxSize = (_a = entry.borderBoxSize) == null ? void 0 : _a[0];
|
|
45
|
+
return {
|
|
46
|
+
width: (_b = borderBoxSize == null ? void 0 : borderBoxSize.inlineSize) != null ? _b : entry.contentRect.width,
|
|
47
|
+
height: (_c = borderBoxSize == null ? void 0 : borderBoxSize.blockSize) != null ? _c : entry.contentRect.height
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function isSameSize(current, width, height) {
|
|
51
|
+
return Math.round(current.width) === Math.round(width) && Math.round(current.height) === Math.round(height);
|
|
52
|
+
}
|
|
53
|
+
function useAutoPosition(props, activatorEl) {
|
|
24
54
|
const { getScrollTop, getScrollLeft } = useApplication();
|
|
25
55
|
const activator = ref({
|
|
26
56
|
top: 0,
|
|
@@ -37,16 +67,30 @@ function useAutoPosition(props) {
|
|
|
37
67
|
const contentRef = shallowRef();
|
|
38
68
|
const offsetX = computed(() => Number(props.offsetX) || 0);
|
|
39
69
|
const offsetY = computed(() => Number(props.offsetY) || 0);
|
|
40
|
-
const
|
|
41
|
-
const
|
|
70
|
+
const side = computed(() => parseSide(props.align));
|
|
71
|
+
const cross = computed(() => parseCross(props.align));
|
|
72
|
+
const isHorizontalSide = computed(() => unref(side) === "left" || unref(side) === "right");
|
|
73
|
+
const isReverseStrategy = computed(() => props.strategy === "reverse");
|
|
42
74
|
let frameId = 0;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
75
|
+
let updateInFlight = false;
|
|
76
|
+
const getActivatorElement = () => {
|
|
77
|
+
return resolveElement(unref(activatorEl));
|
|
78
|
+
};
|
|
79
|
+
const getContentElement = () => {
|
|
80
|
+
return resolveElement(unref(contentRef));
|
|
47
81
|
};
|
|
48
|
-
const
|
|
49
|
-
const
|
|
82
|
+
const setActivatorDimensions = () => {
|
|
83
|
+
const element = getActivatorElement();
|
|
84
|
+
if (!element) {
|
|
85
|
+
activator.value = {
|
|
86
|
+
top: 0,
|
|
87
|
+
left: 0,
|
|
88
|
+
width: 0,
|
|
89
|
+
height: 0
|
|
90
|
+
};
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const rect = getElementRect(element);
|
|
50
94
|
activator.value = {
|
|
51
95
|
top: rect.top + getScrollTop(),
|
|
52
96
|
left: rect.left + getScrollLeft(),
|
|
@@ -54,143 +98,169 @@ function useAutoPosition(props) {
|
|
|
54
98
|
height: rect.height
|
|
55
99
|
};
|
|
56
100
|
};
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
101
|
+
const setContentDimensions = () => {
|
|
102
|
+
const element = getContentElement();
|
|
103
|
+
if (!element) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
60
106
|
content.value.width = element.offsetWidth;
|
|
61
107
|
content.value.height = element.offsetHeight;
|
|
108
|
+
return true;
|
|
62
109
|
};
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
return
|
|
66
|
-
};
|
|
67
|
-
const calcToTop = () => {
|
|
68
|
-
const { top } = unref(activator);
|
|
69
|
-
const { height } = unref(content);
|
|
70
|
-
return top - height - unref(offsetY);
|
|
71
|
-
};
|
|
72
|
-
const calcToLeft = () => {
|
|
73
|
-
const { left } = unref(activator);
|
|
74
|
-
const { width } = unref(content);
|
|
75
|
-
return left - width - unref(offsetX);
|
|
76
|
-
};
|
|
77
|
-
const calcToRight = () => {
|
|
78
|
-
const { left, width } = unref(activator);
|
|
79
|
-
return left + width + unref(offsetX);
|
|
80
|
-
};
|
|
81
|
-
const calcY = () => {
|
|
82
|
-
return props.positionY + unref(offsetY);
|
|
83
|
-
};
|
|
84
|
-
const calcX = () => {
|
|
85
|
-
return props.positionX + unref(offsetX);
|
|
110
|
+
const measure = () => {
|
|
111
|
+
setActivatorDimensions();
|
|
112
|
+
return setContentDimensions();
|
|
86
113
|
};
|
|
87
|
-
const
|
|
114
|
+
const getViewportXBounds = (left) => {
|
|
88
115
|
const scrollLeft = getScrollLeft();
|
|
89
|
-
const
|
|
116
|
+
const width = unref(content).width;
|
|
90
117
|
const leftEdge = scrollLeft + SCREEN_EDGE_OFFSET;
|
|
91
118
|
const rightEdge = scrollLeft + window.innerWidth - SCREEN_EDGE_OFFSET;
|
|
92
119
|
return {
|
|
93
120
|
leftEdge,
|
|
94
121
|
rightEdge,
|
|
95
|
-
isBeyondLeft:
|
|
96
|
-
isBeyondRight:
|
|
122
|
+
isBeyondLeft: left < leftEdge,
|
|
123
|
+
isBeyondRight: left + width > rightEdge
|
|
97
124
|
};
|
|
98
125
|
};
|
|
99
|
-
const
|
|
126
|
+
const getViewportYBounds = (top) => {
|
|
100
127
|
const scrollTop = getScrollTop();
|
|
101
|
-
const
|
|
128
|
+
const height = unref(content).height;
|
|
102
129
|
const topEdge = scrollTop + SCREEN_EDGE_OFFSET;
|
|
103
130
|
const bottomEdge = scrollTop + window.innerHeight - SCREEN_EDGE_OFFSET;
|
|
104
131
|
return {
|
|
105
132
|
topEdge,
|
|
106
133
|
bottomEdge,
|
|
107
|
-
isBeyondTop:
|
|
108
|
-
isBeyondBottom:
|
|
134
|
+
isBeyondTop: top < topEdge,
|
|
135
|
+
isBeyondBottom: top + height > bottomEdge
|
|
109
136
|
};
|
|
110
137
|
};
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
return
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if (
|
|
129
|
-
return
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
138
|
+
const getBaseTop = (s = unref(side), c = unref(cross)) => {
|
|
139
|
+
if (isDef(props.positionY)) {
|
|
140
|
+
return props.positionY + unref(offsetY);
|
|
141
|
+
}
|
|
142
|
+
const act = unref(activator);
|
|
143
|
+
const cnt = unref(content);
|
|
144
|
+
if (s === "top") return act.top - cnt.height - unref(offsetY);
|
|
145
|
+
if (s === "bottom") return act.top + act.height + unref(offsetY);
|
|
146
|
+
if (c === "center") return act.top + act.height / 2 - cnt.height / 2;
|
|
147
|
+
return act.top + unref(offsetY);
|
|
148
|
+
};
|
|
149
|
+
const getBaseLeft = (s = unref(side), c = unref(cross)) => {
|
|
150
|
+
if (isDef(props.positionX)) {
|
|
151
|
+
return props.positionX + unref(offsetX);
|
|
152
|
+
}
|
|
153
|
+
const act = unref(activator);
|
|
154
|
+
const cnt = unref(content);
|
|
155
|
+
if (s === "left") return act.left - cnt.width - unref(offsetX);
|
|
156
|
+
if (s === "right") return act.left + act.width + unref(offsetX);
|
|
157
|
+
if (c === "center") return act.left + act.width / 2 - cnt.width / 2;
|
|
158
|
+
if (c === "right") return act.left + act.width - cnt.width;
|
|
159
|
+
return act.left + unref(offsetX);
|
|
160
|
+
};
|
|
161
|
+
const getReversedTop = () => {
|
|
162
|
+
const s = unref(side);
|
|
163
|
+
if (s && !unref(isHorizontalSide)) {
|
|
164
|
+
return getBaseTop(REVERSE_SIDE[s]);
|
|
165
|
+
}
|
|
166
|
+
return getBaseTop();
|
|
167
|
+
};
|
|
168
|
+
const getReversedLeft = () => {
|
|
169
|
+
const s = unref(side);
|
|
170
|
+
if (s && unref(isHorizontalSide)) {
|
|
171
|
+
return getBaseLeft(REVERSE_SIDE[s]);
|
|
172
|
+
}
|
|
173
|
+
return getBaseLeft();
|
|
174
|
+
};
|
|
175
|
+
const clampTopToViewport = (top) => {
|
|
176
|
+
const { height } = unref(content);
|
|
134
177
|
const {
|
|
135
178
|
topEdge,
|
|
136
179
|
bottomEdge,
|
|
137
180
|
isBeyondTop,
|
|
138
181
|
isBeyondBottom
|
|
139
|
-
} =
|
|
182
|
+
} = getViewportYBounds(top);
|
|
140
183
|
if (!isBeyondTop && !isBeyondBottom) {
|
|
141
|
-
return
|
|
142
|
-
}
|
|
143
|
-
if (unref(isXDirection) || !unref(shouldReverse)) {
|
|
144
|
-
return isBeyondBottom ? bottomEdge - cHeight : topEdge;
|
|
145
|
-
}
|
|
146
|
-
if (isBeyondTop && props.top) {
|
|
147
|
-
return calcToBottom();
|
|
148
|
-
}
|
|
149
|
-
if (isBeyondBottom && props.bottom) {
|
|
150
|
-
return calcToTop();
|
|
184
|
+
return top;
|
|
151
185
|
}
|
|
186
|
+
return isBeyondBottom ? bottomEdge - height : topEdge;
|
|
152
187
|
};
|
|
153
|
-
const
|
|
154
|
-
const { width
|
|
155
|
-
const cLeft = getContentLeft();
|
|
188
|
+
const clampLeftToViewport = (left) => {
|
|
189
|
+
const { width } = unref(content);
|
|
156
190
|
const {
|
|
157
191
|
leftEdge,
|
|
158
192
|
rightEdge,
|
|
159
193
|
isBeyondLeft,
|
|
160
194
|
isBeyondRight
|
|
161
|
-
} =
|
|
195
|
+
} = getViewportXBounds(left);
|
|
162
196
|
if (!isBeyondLeft && !isBeyondRight) {
|
|
163
|
-
return
|
|
197
|
+
return left;
|
|
164
198
|
}
|
|
165
|
-
|
|
166
|
-
|
|
199
|
+
return isBeyondRight ? rightEdge - width : leftEdge;
|
|
200
|
+
};
|
|
201
|
+
const resolveTop = () => {
|
|
202
|
+
const top = getBaseTop();
|
|
203
|
+
const { isBeyondTop, isBeyondBottom } = getViewportYBounds(top);
|
|
204
|
+
if (!isBeyondTop && !isBeyondBottom) {
|
|
205
|
+
return top;
|
|
167
206
|
}
|
|
168
|
-
if (
|
|
169
|
-
return
|
|
207
|
+
if (!unref(isReverseStrategy) || unref(isHorizontalSide)) {
|
|
208
|
+
return clampTopToViewport(top);
|
|
209
|
+
}
|
|
210
|
+
return getReversedTop();
|
|
211
|
+
};
|
|
212
|
+
const resolveLeft = () => {
|
|
213
|
+
const left = getBaseLeft();
|
|
214
|
+
const { isBeyondLeft, isBeyondRight } = getViewportXBounds(left);
|
|
215
|
+
if (!isBeyondLeft && !isBeyondRight) {
|
|
216
|
+
return left;
|
|
170
217
|
}
|
|
171
|
-
if (
|
|
172
|
-
return
|
|
218
|
+
if (!unref(isReverseStrategy) || !unref(isHorizontalSide)) {
|
|
219
|
+
return clampLeftToViewport(left);
|
|
173
220
|
}
|
|
221
|
+
return getReversedLeft();
|
|
174
222
|
};
|
|
175
223
|
const applyPosition = () => {
|
|
176
|
-
|
|
177
|
-
|
|
224
|
+
if (!IN_BROWSER) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
content.value.top = resolveTop();
|
|
228
|
+
content.value.left = resolveLeft();
|
|
229
|
+
};
|
|
230
|
+
const cancelScheduledUpdate = () => {
|
|
231
|
+
if (!IN_BROWSER || !frameId) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
cancelAnimationFrame(frameId);
|
|
235
|
+
frameId = 0;
|
|
236
|
+
};
|
|
237
|
+
const updateNow = () => {
|
|
238
|
+
if (!measure()) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
applyPosition();
|
|
178
242
|
};
|
|
179
243
|
const scheduleUpdate = () => {
|
|
180
|
-
if (!IN_BROWSER || frameId)
|
|
244
|
+
if (!IN_BROWSER || frameId) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
181
247
|
frameId = requestAnimationFrame(() => {
|
|
182
248
|
frameId = 0;
|
|
183
|
-
|
|
249
|
+
updateNow();
|
|
184
250
|
});
|
|
185
251
|
};
|
|
186
|
-
const update = async (
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
252
|
+
const update = async () => {
|
|
253
|
+
updateInFlight = true;
|
|
254
|
+
cancelScheduledUpdate();
|
|
255
|
+
setActivatorDimensions();
|
|
256
|
+
await nextTick();
|
|
257
|
+
if (!setContentDimensions()) {
|
|
258
|
+
updateInFlight = false;
|
|
259
|
+
return;
|
|
190
260
|
}
|
|
191
|
-
setContentSizes(contentRef.value);
|
|
192
261
|
await nextTick();
|
|
193
|
-
|
|
262
|
+
applyPosition();
|
|
263
|
+
updateInFlight = false;
|
|
194
264
|
};
|
|
195
265
|
if (IN_BROWSER) {
|
|
196
266
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -198,22 +268,32 @@ function useAutoPosition(props) {
|
|
|
198
268
|
if (!entry) {
|
|
199
269
|
return;
|
|
200
270
|
}
|
|
201
|
-
const {
|
|
202
|
-
if (!blockSize || !inlineSize) {
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
271
|
+
const { width, height } = getObservedSize(entry);
|
|
205
272
|
const current = unref(content);
|
|
206
|
-
if (current
|
|
273
|
+
if (isSameSize(current, width, height)) {
|
|
207
274
|
return;
|
|
208
275
|
}
|
|
209
|
-
current.width =
|
|
210
|
-
current.height =
|
|
211
|
-
|
|
276
|
+
current.width = width;
|
|
277
|
+
current.height = height;
|
|
278
|
+
if (!updateInFlight) {
|
|
279
|
+
scheduleUpdate();
|
|
280
|
+
}
|
|
212
281
|
});
|
|
213
|
-
watch(
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
282
|
+
watch(
|
|
283
|
+
() => resolveElement(unref(activatorEl)),
|
|
284
|
+
(newEl, oldEl) => {
|
|
285
|
+
if (oldEl) {
|
|
286
|
+
resizeObserver.unobserve(oldEl);
|
|
287
|
+
}
|
|
288
|
+
if (newEl) {
|
|
289
|
+
resizeObserver.observe(newEl);
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
{ immediate: true }
|
|
293
|
+
);
|
|
294
|
+
watch(contentRef, (newEl, oldEl) => {
|
|
295
|
+
const prevEl = resolveElement(oldEl);
|
|
296
|
+
const nextEl = resolveElement(newEl);
|
|
217
297
|
if (prevEl) {
|
|
218
298
|
resizeObserver.unobserve(prevEl);
|
|
219
299
|
}
|
|
@@ -221,9 +301,17 @@ function useAutoPosition(props) {
|
|
|
221
301
|
resizeObserver.observe(nextEl);
|
|
222
302
|
}
|
|
223
303
|
});
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
304
|
+
watch(
|
|
305
|
+
() => [
|
|
306
|
+
props.positionX,
|
|
307
|
+
props.positionY,
|
|
308
|
+
props.align,
|
|
309
|
+
props.offsetX,
|
|
310
|
+
props.offsetY,
|
|
311
|
+
props.strategy
|
|
312
|
+
],
|
|
313
|
+
scheduleUpdate
|
|
314
|
+
);
|
|
227
315
|
onBeforeUnmount(() => {
|
|
228
316
|
cancelScheduledUpdate();
|
|
229
317
|
resizeObserver.disconnect();
|