@codemonster-ru/vueforge 0.9.0 → 0.10.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 CHANGED
@@ -54,6 +54,7 @@ app.use(VueForge, {
54
54
  - Popover
55
55
  - Select
56
56
  - Switch
57
+ - Tooltip
57
58
 
58
59
  ## Modal
59
60
 
@@ -112,6 +113,28 @@ Component tokens (override via `theme.overrides.components.modal`):
112
113
  - `closeSize`, `closeRadius`, `closeOffset`
113
114
  - `closeColor`, `closeFontSize`, `closeHoverBackgroundColor`
114
115
 
116
+ ## Tooltip
117
+
118
+ Props:
119
+
120
+ - `text?: string`
121
+ - `placement?: 'top' | 'bottom' | 'left' | 'right'` (default `top`)
122
+ - `disabled?: boolean`
123
+ - `arrow?: boolean` (default `false`)
124
+
125
+ Slots:
126
+
127
+ - `default` - trigger content
128
+ - `content` (optional) - tooltip content (fallbacks to `text`)
129
+
130
+ Example:
131
+
132
+ ```vue
133
+ <Tooltip text="Helpful hint" arrow>
134
+ <Button label="Hover me" />
135
+ </Tooltip>
136
+ ```
137
+
115
138
  ## Tokens
116
139
 
117
140
  VueForge exposes design tokens as CSS variables generated from the theme preset. Core groups:
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .vf-link{color:inherit;cursor:pointer;text-decoration:none;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-link:hover{color:var(--vf-link-hover-color)}.vf-link:active{color:var(--vf-link-active-color)}.vf-link.vf-link_disabled{cursor:not-allowed}.vf-link_active,.vf-link_partially-active{color:var(--vf-link-active-color)}.vf-card{border:var(--vf-border-width) solid var(--vf-card-border-color);border-radius:var(--vf-card-border-radius)}.vf-card__default{padding:var(--vf-card-padding)}.vf-menu{display:flex}.vf-menu_horizontal>.vf-menu__list{flex-direction:row}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item{align-items:center}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item:not(:first-child){margin-left:var(--vf-menu-item-margin-left)}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item:not(:last-child){margin-right:var(--vf-menu-item-margin-right)}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item>.vf-menu__separator{height:var(--vf-menu-separator-height);border-top:none;border-right:none;border-left:var(--vf-menu-separator-thickness) solid var(--vf-menu-separator-color);border-bottom:none}.vf-menu_vertical>.vf-menu__list{width:100%;flex-direction:column}.vf-menu_vertical>.vf-menu__list>.vf-menu__item{flex-direction:column}.vf-menu_vertical>.vf-menu__list>.vf-menu__item:not(:first-child){margin-top:var(--vf-menu-item-margin-top)}.vf-menu_vertical>.vf-menu__list>.vf-menu__item:not(:last-child){margin-bottom:var(--vf-menu-item-margin-bottom)}.vf-menu_vertical>.vf-menu__list>.vf-menu__item>.vf-menu{overflow:hidden}.vf-menu__list{margin:0;padding:0;display:flex;list-style:none}.vf-menu__separator{width:100%;height:var(--vf-menu-separator-thickness);border:none;margin:0;background-color:var(--vf-menu-separator-color)}.vf-menu__item{display:flex;font-weight:500}.vf-menu__link{display:flex;align-items:center;text-decoration:none;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-menu__link:hover{color:var(--vf-menu-link-hover-color)}.vf-menu__parent{cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-menu__parent:hover{color:var(--vf-menu-parent-hover-color)}.vf-menu__icon{margin-right:var(--vf-menu-icon-gap)}.vf-menu__submenu.vf-menu__submenu_visible{margin-top:var(--vf-menu-submenu-offset);margin-left:var(--vf-menu-submenu-offset)}.vf-menu__submenu:not(.vf-menu__submenu_visible){height:0}.vf-button{display:inline-flex;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center;height:var(--vf-controls-height);box-sizing:border-box;padding:var(--vf-button-padding);font-size:var(--vf-button-font-size);line-height:var(--vf-typography-line-height);font-family:inherit;border-radius:var(--vf-button-border-radius);overflow:hidden}.vf-button_text{border:var(--vf-border-width) solid transparent;background-color:transparent}.vf-button_outlined{background-color:transparent}.vf-button_primary.vf-button_text{color:var(--vf-button-text-primary-color)}.vf-button_primary.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-primary-hover-background-color)}.vf-button_primary.vf-button_outlined{color:var(--vf-button-outlined-primary-color);border:var(--vf-border-width) solid var(--vf-button-outlined-primary-border-color)}.vf-button_primary.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-primary-hover-background-color)}.vf-button_primary:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-primary-color);border:var(--vf-border-width) solid var(--vf-button-primary-border-color);background-color:var(--vf-button-primary-background-color)}.vf-button_primary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-primary-hover-color);border:var(--vf-border-width) solid var(--vf-button-primary-hover-border-color);background-color:var(--vf-button-primary-hover-background-color)}.vf-button_primary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-primary-active-color);border:var(--vf-border-width) solid var(--vf-button-primary-active-border-color);background-color:var(--vf-button-primary-active-background-color)}.vf-button_secondary.vf-button_text{color:var(--vf-button-text-secondary-color)}.vf-button_secondary.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-secondary-hover-background-color)}.vf-button_secondary.vf-button_outlined{color:var(--vf-button-outlined-secondary-color);border:var(--vf-border-width) solid var(--vf-button-outlined-secondary-border-color)}.vf-button_secondary.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-secondary-hover-background-color)}.vf-button_secondary:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-secondary-color);border:var(--vf-border-width) solid var(--vf-button-secondary-border-color);background-color:var(--vf-button-secondary-background-color)}.vf-button_secondary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-secondary-hover-color);border:var(--vf-border-width) solid var(--vf-button-secondary-hover-border-color);background-color:var(--vf-button-secondary-hover-background-color)}.vf-button_secondary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-secondary-active-color);border:var(--vf-border-width) solid var(--vf-button-secondary-active-border-color);background-color:var(--vf-button-secondary-active-background-color)}.vf-button_success.vf-button_text{color:var(--vf-button-text-success-color)}.vf-button_success.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-success-hover-background-color)}.vf-button_success.vf-button_outlined{color:var(--vf-button-outlined-success-color);border:var(--vf-border-width) solid var(--vf-button-outlined-success-border-color)}.vf-button_success.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-success-hover-background-color)}.vf-button_success:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-success-color);border:var(--vf-border-width) solid var(--vf-button-success-border-color);background-color:var(--vf-button-success-background-color)}.vf-button_success:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-success-hover-color);border:var(--vf-border-width) solid var(--vf-button-success-hover-border-color);background-color:var(--vf-button-success-hover-background-color)}.vf-button_success:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-success-active-color);border:var(--vf-border-width) solid var(--vf-button-success-active-border-color);background-color:var(--vf-button-success-active-background-color)}.vf-button_info.vf-button_text{color:var(--vf-button-text-info-color)}.vf-button_info.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-info-hover-background-color)}.vf-button_info.vf-button_outlined{color:var(--vf-button-outlined-info-color);border:var(--vf-border-width) solid var(--vf-button-outlined-info-border-color)}.vf-button_info.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-info-hover-background-color)}.vf-button_info:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-info-color);border:var(--vf-border-width) solid var(--vf-button-info-border-color);background-color:var(--vf-button-info-background-color)}.vf-button_info:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-info-hover-color);border:var(--vf-border-width) solid var(--vf-button-info-hover-border-color);background-color:var(--vf-button-info-hover-background-color)}.vf-button_info:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-info-active-color);border:var(--vf-border-width) solid var(--vf-button-info-active-border-color);background-color:var(--vf-button-info-active-background-color)}.vf-button_warning.vf-button_text{color:var(--vf-button-text-warning-color)}.vf-button_warning.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-warning-hover-background-color)}.vf-button_warning.vf-button_outlined{color:var(--vf-button-outlined-warning-color);border:var(--vf-border-width) solid var(--vf-button-outlined-warning-border-color)}.vf-button_warning.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-warning-hover-background-color)}.vf-button_warning:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-warning-color);border:var(--vf-border-width) solid var(--vf-button-warning-border-color);background-color:var(--vf-button-warning-background-color)}.vf-button_warning:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-warning-hover-color);border:var(--vf-border-width) solid var(--vf-button-warning-hover-border-color);background-color:var(--vf-button-warning-hover-background-color)}.vf-button_warning:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-warning-active-color);border:var(--vf-border-width) solid var(--vf-button-warning-active-border-color);background-color:var(--vf-button-warning-active-background-color)}.vf-button_danger.vf-button_text{color:var(--vf-button-text-danger-color)}.vf-button_danger.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-danger-hover-background-color)}.vf-button_danger.vf-button_outlined{color:var(--vf-button-outlined-danger-color);border:var(--vf-border-width) solid var(--vf-button-outlined-danger-border-color)}.vf-button_danger.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-danger-hover-background-color)}.vf-button_danger:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-danger-color);border:var(--vf-border-width) solid var(--vf-button-danger-border-color);background-color:var(--vf-button-danger-background-color)}.vf-button_danger:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-danger-hover-color);border:var(--vf-border-width) solid var(--vf-button-danger-hover-border-color);background-color:var(--vf-button-danger-hover-background-color)}.vf-button_danger:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-danger-active-color);border:var(--vf-border-width) solid var(--vf-button-danger-active-border-color);background-color:var(--vf-button-danger-active-background-color)}.vf-button_vertical{flex-direction:column}.vf-button__icon{display:inline-block}.vf-button__icon_top+.vf-button__label{margin-top:var(--vf-button-icon-gap)}.vf-button__icon_right{order:1}.vf-button__icon_right+.vf-button__label{margin-right:var(--vf-button-icon-gap)}.vf-button__icon_bottom{order:1}.vf-button__icon_bottom+.vf-button__label{margin-bottom:var(--vf-button-icon-gap)}.vf-button__icon_left+.vf-button__label{margin-left:var(--vf-button-icon-gap)}.vf-button_disabled{opacity:var(--vf-states-disabled-opacity);cursor:default}.vf-button_rounded{border-radius:var(--vf-button-rounded-border-radius)}.vf-button_small{font-size:var(--vf-button-small-font-size);padding:var(--vf-button-small-padding)}.vf-button_large{font-size:var(--vf-button-large-font-size);padding:var(--vf-button-large-padding)}.vf-input{display:flex;align-items:center;gap:var(--vf-input-gap);height:var(--vf-controls-height);box-sizing:border-box;padding:var(--vf-input-padding);border-radius:var(--vf-input-border-radius);border:var(--vf-border-width) solid var(--vf-input-border-color);background-color:var(--vf-input-background-color);color:var(--vf-input-text-color);transition:border-color .2s ease}.vf-input__control{flex:1;border:none;background:transparent;color:inherit;font-size:var(--vf-input-font-size);line-height:var(--vf-typography-line-height);font-family:inherit;outline:none}.vf-input__control::placeholder{color:var(--vf-input-placeholder-color)}.vf-input:hover:not(.vf-input_disabled){border-color:var(--vf-input-hover-border-color)}.vf-input:focus-within:not(.vf-input_disabled){border-color:var(--vf-input-focus-border-color);box-shadow:var(--vf-input-focus-ring-shadow)}.vf-input_outlined{background-color:transparent}.vf-input_small{padding:var(--vf-input-small-padding)}.vf-input_small .vf-input__control{font-size:var(--vf-input-small-font-size)}.vf-input_large{padding:var(--vf-input-large-padding)}.vf-input_large .vf-input__control{font-size:var(--vf-input-large-font-size)}.vf-input_disabled{opacity:var(--vf-input-disabled-opacity);cursor:not-allowed}.vf-select{position:relative;display:inline-block;min-width:var(--vf-select-min-width);height:var(--vf-controls-height);box-sizing:border-box;border-radius:var(--vf-select-border-radius);border:var(--vf-border-width) solid var(--vf-select-border-color);background-color:var(--vf-select-background-color);color:var(--vf-select-text-color);transition:border-color .2s ease,box-shadow .2s ease}.vf-select__control{width:100%;padding:var(--vf-select-padding);border:none;background:transparent;color:inherit;font-size:var(--vf-select-font-size);line-height:var(--vf-typography-line-height);font-family:inherit;outline:none;display:inline-flex;align-items:center;justify-content:space-between;height:var(--vf-controls-height);box-sizing:border-box;gap:var(--vf-select-control-gap);cursor:pointer}.vf-select__label{text-align:left}.vf-select__label_placeholder{color:var(--vf-secondary-text-color)}.vf-select__chevron{font-size:var(--vf-select-chevron-size);opacity:.7}.vf-select__panel{position:fixed;z-index:50;padding:var(--vf-select-panel-padding);max-height:var(--vf-select-panel-max-height);overflow:auto;border-radius:calc(var(--vf-select-border-radius) + var(--vf-select-panel-radius-offset));border:var(--vf-border-width) solid var(--vf-select-panel-border-color);background-color:var(--vf-select-panel-background-color);box-shadow:var(--vf-select-panel-shadow);color:var(--vf-select-text-color)}.vf-select__option{width:100%;text-align:left;border:none;background:transparent;padding:var(--vf-select-option-padding);border-radius:var(--vf-select-option-border-radius);color:inherit;cursor:pointer;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height);font-family:inherit}.vf-select__option:hover:not(.is-disabled),.vf-select__option:focus-visible:not(.is-disabled){background-color:var(--vf-select-option-hover-background-color);outline:none}.vf-select__option.is-active{background-color:var(--vf-select-option-active-background-color);color:var(--vf-select-option-active-text-color)}.vf-select__option.is-disabled{opacity:.6;cursor:not-allowed}.vf-select_open{border-color:var(--vf-select-focus-border-color);box-shadow:var(--vf-select-focus-ring-shadow)}.vf-select:hover:not(.vf-select_disabled){border-color:var(--vf-select-hover-border-color)}.vf-select:focus-within:not(.vf-select_disabled){border-color:var(--vf-select-focus-border-color)}.vf-select_small .vf-select__control{padding:var(--vf-select-small-padding);font-size:var(--vf-select-small-font-size)}.vf-select_large .vf-select__control{padding:var(--vf-select-large-padding);font-size:var(--vf-select-large-font-size)}.vf-select_disabled{opacity:var(--vf-select-disabled-opacity);cursor:not-allowed}.vf-select_disabled .vf-select__control{cursor:not-allowed}.vf-checkbox{display:inline-flex;align-items:center;gap:var(--vf-checkbox-gap);cursor:pointer;color:var(--vf-checkbox-text-color);font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-checkbox__control{position:absolute;opacity:0;pointer-events:none}.vf-checkbox__box{width:var(--vf-checkbox-size);height:var(--vf-checkbox-size);border:var(--vf-border-width) solid var(--vf-checkbox-border-color);border-radius:var(--vf-checkbox-border-radius);background-color:var(--vf-checkbox-background-color);display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,border-color .2s ease}.vf-checkbox__control:checked+.vf-checkbox__box{background-color:var(--vf-checkbox-checked-background-color);border-color:var(--vf-checkbox-checked-border-color)}.vf-checkbox__control:checked+.vf-checkbox__box:after{content:"";width:calc(var(--vf-checkbox-size) / 2);height:calc(var(--vf-checkbox-size) / 2);background-color:var(--vf-checkbox-check-color);border-radius:var(--vf-checkbox-check-border-radius)}.vf-checkbox_disabled{opacity:var(--vf-checkbox-disabled-opacity);cursor:not-allowed}.vf-switch{display:inline-flex;align-items:center;gap:var(--vf-switch-gap);cursor:pointer;color:var(--vf-switch-text-color);font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-switch__control{position:absolute;opacity:0;pointer-events:none}.vf-switch__track{position:relative;width:var(--vf-switch-width);height:var(--vf-switch-height);border-radius:var(--vf-switch-height);background-color:var(--vf-switch-background-color);transition:background-color .2s ease}.vf-switch__thumb{position:absolute;top:50%;left:var(--vf-switch-thumb-offset);width:var(--vf-switch-thumb-size);height:var(--vf-switch-thumb-size);border-radius:50%;background-color:var(--vf-switch-thumb-color);transform:translateY(-50%);transition:transform .2s ease}.vf-switch__control:checked+.vf-switch__track{background-color:var(--vf-switch-checked-background-color)}.vf-switch__control:checked+.vf-switch__track .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width) - var(--vf-switch-thumb-size) - var(--vf-switch-thumb-translate-offset)),-50%)}.vf-switch_disabled{opacity:var(--vf-switch-disabled-opacity);cursor:not-allowed}.vf-popover{position:relative}.vf-popover__button{cursor:pointer;-webkit-user-select:none;user-select:none}.vf-popover__wrapper{position:absolute;background-color:var(--vf-popover-background-color)}.vf-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vf-modal-z-index);display:flex;align-items:center;justify-content:center}.vf-modal__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--vf-modal-overlay-background-color)}.vf-modal__panel{position:relative;z-index:1;width:var(--vf-modal-width);max-width:var(--vf-modal-max-width);max-height:var(--vf-modal-max-height);padding:var(--vf-modal-padding);border-radius:var(--vf-modal-border-radius);background-color:var(--vf-modal-background-color);color:var(--vf-modal-text-color);box-shadow:var(--vf-modal-shadow);overflow:auto;outline:none}.vf-modal_sm .vf-modal__panel{width:var(--vf-modal-width-sm);max-width:var(--vf-modal-max-width-sm)}.vf-modal_lg .vf-modal__panel{width:var(--vf-modal-width-lg);max-width:var(--vf-modal-max-width-lg)}.vf-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--vf-modal-header-gap)}.vf-modal__title{margin:0;font-size:var(--vf-modal-title-font-size);line-height:var(--vf-modal-title-line-height);font-weight:var(--vf-modal-title-font-weight)}.vf-modal__body{margin-bottom:var(--vf-modal-body-gap)}.vf-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--vf-modal-footer-gap)}.vf-modal__close{position:absolute;top:var(--vf-modal-close-offset);right:var(--vf-modal-close-offset);width:var(--vf-modal-close-size);height:var(--vf-modal-close-size);border-radius:var(--vf-modal-close-radius);border:none;background:transparent;color:var(--vf-modal-close-color);cursor:pointer;font-size:var(--vf-modal-close-font-size);line-height:1}.vf-modal__close:hover{background-color:var(--vf-modal-close-hover-background-color)}
1
+ .vf-link{color:inherit;cursor:pointer;text-decoration:none;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-link:hover{color:var(--vf-link-hover-color)}.vf-link:active{color:var(--vf-link-active-color)}.vf-link.vf-link_disabled{cursor:not-allowed}.vf-link_active,.vf-link_partially-active{color:var(--vf-link-active-color)}.vf-card{border:var(--vf-border-width) solid var(--vf-card-border-color);border-radius:var(--vf-card-border-radius)}.vf-card__default{padding:var(--vf-card-padding)}.vf-menu{display:flex}.vf-menu_horizontal>.vf-menu__list{flex-direction:row}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item{align-items:center}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item:not(:first-child){margin-left:var(--vf-menu-item-margin-left)}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item:not(:last-child){margin-right:var(--vf-menu-item-margin-right)}.vf-menu_horizontal>.vf-menu__list>.vf-menu__item>.vf-menu__separator{height:var(--vf-menu-separator-height);border-top:none;border-right:none;border-left:var(--vf-menu-separator-thickness) solid var(--vf-menu-separator-color);border-bottom:none}.vf-menu_vertical>.vf-menu__list{width:100%;flex-direction:column}.vf-menu_vertical>.vf-menu__list>.vf-menu__item{flex-direction:column}.vf-menu_vertical>.vf-menu__list>.vf-menu__item:not(:first-child){margin-top:var(--vf-menu-item-margin-top)}.vf-menu_vertical>.vf-menu__list>.vf-menu__item:not(:last-child){margin-bottom:var(--vf-menu-item-margin-bottom)}.vf-menu_vertical>.vf-menu__list>.vf-menu__item>.vf-menu{overflow:hidden}.vf-menu__list{margin:0;padding:0;display:flex;list-style:none}.vf-menu__separator{width:100%;height:var(--vf-menu-separator-thickness);border:none;margin:0;background-color:var(--vf-menu-separator-color)}.vf-menu__item{display:flex;font-weight:500}.vf-menu__link{display:flex;align-items:center;text-decoration:none;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-menu__link:hover{color:var(--vf-menu-link-hover-color)}.vf-menu__parent{cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-menu__parent:hover{color:var(--vf-menu-parent-hover-color)}.vf-menu__icon{margin-right:var(--vf-menu-icon-gap)}.vf-menu__submenu.vf-menu__submenu_visible{margin-top:var(--vf-menu-submenu-offset);margin-left:var(--vf-menu-submenu-offset)}.vf-menu__submenu:not(.vf-menu__submenu_visible){height:0}.vf-button{display:inline-flex;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center;height:var(--vf-controls-height);box-sizing:border-box;padding:var(--vf-button-padding);font-size:var(--vf-button-font-size);line-height:var(--vf-typography-line-height);font-family:inherit;border-radius:var(--vf-button-border-radius);overflow:hidden}.vf-button_text{border:var(--vf-border-width) solid transparent;background-color:transparent}.vf-button_outlined{background-color:transparent}.vf-button_primary.vf-button_text{color:var(--vf-button-text-primary-color)}.vf-button_primary.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-primary-hover-background-color)}.vf-button_primary.vf-button_outlined{color:var(--vf-button-outlined-primary-color);border:var(--vf-border-width) solid var(--vf-button-outlined-primary-border-color)}.vf-button_primary.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-primary-hover-background-color)}.vf-button_primary:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-primary-color);border:var(--vf-border-width) solid var(--vf-button-primary-border-color);background-color:var(--vf-button-primary-background-color)}.vf-button_primary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-primary-hover-color);border:var(--vf-border-width) solid var(--vf-button-primary-hover-border-color);background-color:var(--vf-button-primary-hover-background-color)}.vf-button_primary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-primary-active-color);border:var(--vf-border-width) solid var(--vf-button-primary-active-border-color);background-color:var(--vf-button-primary-active-background-color)}.vf-button_secondary.vf-button_text{color:var(--vf-button-text-secondary-color)}.vf-button_secondary.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-secondary-hover-background-color)}.vf-button_secondary.vf-button_outlined{color:var(--vf-button-outlined-secondary-color);border:var(--vf-border-width) solid var(--vf-button-outlined-secondary-border-color)}.vf-button_secondary.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-secondary-hover-background-color)}.vf-button_secondary:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-secondary-color);border:var(--vf-border-width) solid var(--vf-button-secondary-border-color);background-color:var(--vf-button-secondary-background-color)}.vf-button_secondary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-secondary-hover-color);border:var(--vf-border-width) solid var(--vf-button-secondary-hover-border-color);background-color:var(--vf-button-secondary-hover-background-color)}.vf-button_secondary:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-secondary-active-color);border:var(--vf-border-width) solid var(--vf-button-secondary-active-border-color);background-color:var(--vf-button-secondary-active-background-color)}.vf-button_success.vf-button_text{color:var(--vf-button-text-success-color)}.vf-button_success.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-success-hover-background-color)}.vf-button_success.vf-button_outlined{color:var(--vf-button-outlined-success-color);border:var(--vf-border-width) solid var(--vf-button-outlined-success-border-color)}.vf-button_success.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-success-hover-background-color)}.vf-button_success:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-success-color);border:var(--vf-border-width) solid var(--vf-button-success-border-color);background-color:var(--vf-button-success-background-color)}.vf-button_success:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-success-hover-color);border:var(--vf-border-width) solid var(--vf-button-success-hover-border-color);background-color:var(--vf-button-success-hover-background-color)}.vf-button_success:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-success-active-color);border:var(--vf-border-width) solid var(--vf-button-success-active-border-color);background-color:var(--vf-button-success-active-background-color)}.vf-button_info.vf-button_text{color:var(--vf-button-text-info-color)}.vf-button_info.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-info-hover-background-color)}.vf-button_info.vf-button_outlined{color:var(--vf-button-outlined-info-color);border:var(--vf-border-width) solid var(--vf-button-outlined-info-border-color)}.vf-button_info.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-info-hover-background-color)}.vf-button_info:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-info-color);border:var(--vf-border-width) solid var(--vf-button-info-border-color);background-color:var(--vf-button-info-background-color)}.vf-button_info:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-info-hover-color);border:var(--vf-border-width) solid var(--vf-button-info-hover-border-color);background-color:var(--vf-button-info-hover-background-color)}.vf-button_info:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-info-active-color);border:var(--vf-border-width) solid var(--vf-button-info-active-border-color);background-color:var(--vf-button-info-active-background-color)}.vf-button_warning.vf-button_text{color:var(--vf-button-text-warning-color)}.vf-button_warning.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-warning-hover-background-color)}.vf-button_warning.vf-button_outlined{color:var(--vf-button-outlined-warning-color);border:var(--vf-border-width) solid var(--vf-button-outlined-warning-border-color)}.vf-button_warning.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-warning-hover-background-color)}.vf-button_warning:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-warning-color);border:var(--vf-border-width) solid var(--vf-button-warning-border-color);background-color:var(--vf-button-warning-background-color)}.vf-button_warning:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-warning-hover-color);border:var(--vf-border-width) solid var(--vf-button-warning-hover-border-color);background-color:var(--vf-button-warning-hover-background-color)}.vf-button_warning:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-warning-active-color);border:var(--vf-border-width) solid var(--vf-button-warning-active-border-color);background-color:var(--vf-button-warning-active-background-color)}.vf-button_danger.vf-button_text{color:var(--vf-button-text-danger-color)}.vf-button_danger.vf-button_text:not(.vf-button_disabled):hover{background-color:var(--vf-button-text-danger-hover-background-color)}.vf-button_danger.vf-button_outlined{color:var(--vf-button-outlined-danger-color);border:var(--vf-border-width) solid var(--vf-button-outlined-danger-border-color)}.vf-button_danger.vf-button_outlined:not(.vf-button_disabled):hover{background-color:var(--vf-button-outlined-danger-hover-background-color)}.vf-button_danger:not(.vf-button_text):not(.vf-button_outlined){color:var(--vf-button-danger-color);border:var(--vf-border-width) solid var(--vf-button-danger-border-color);background-color:var(--vf-button-danger-background-color)}.vf-button_danger:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):hover{color:var(--vf-button-danger-hover-color);border:var(--vf-border-width) solid var(--vf-button-danger-hover-border-color);background-color:var(--vf-button-danger-hover-background-color)}.vf-button_danger:not(.vf-button_text):not(.vf-button_outlined):not(.vf-button_disabled):active{color:var(--vf-button-danger-active-color);border:var(--vf-border-width) solid var(--vf-button-danger-active-border-color);background-color:var(--vf-button-danger-active-background-color)}.vf-button_vertical{flex-direction:column}.vf-button__icon{display:inline-block}.vf-button__icon_top+.vf-button__label{margin-top:var(--vf-button-icon-gap)}.vf-button__icon_right{order:1}.vf-button__icon_right+.vf-button__label{margin-right:var(--vf-button-icon-gap)}.vf-button__icon_bottom{order:1}.vf-button__icon_bottom+.vf-button__label{margin-bottom:var(--vf-button-icon-gap)}.vf-button__icon_left+.vf-button__label{margin-left:var(--vf-button-icon-gap)}.vf-button_disabled{opacity:var(--vf-states-disabled-opacity);cursor:default}.vf-button_rounded{border-radius:var(--vf-button-rounded-border-radius)}.vf-button_small{font-size:var(--vf-button-small-font-size);padding:var(--vf-button-small-padding)}.vf-button_large{font-size:var(--vf-button-large-font-size);padding:var(--vf-button-large-padding)}.vf-input{display:flex;align-items:center;gap:var(--vf-input-gap);height:var(--vf-controls-height);box-sizing:border-box;padding:var(--vf-input-padding);border-radius:var(--vf-input-border-radius);border:var(--vf-border-width) solid var(--vf-input-border-color);background-color:var(--vf-input-background-color);color:var(--vf-input-text-color);transition:border-color .2s ease}.vf-input__control{flex:1;border:none;background:transparent;color:inherit;font-size:var(--vf-input-font-size);line-height:var(--vf-typography-line-height);font-family:inherit;outline:none}.vf-input__control::placeholder{color:var(--vf-input-placeholder-color)}.vf-input:hover:not(.vf-input_disabled){border-color:var(--vf-input-hover-border-color)}.vf-input:focus-within:not(.vf-input_disabled){border-color:var(--vf-input-focus-border-color);box-shadow:var(--vf-input-focus-ring-shadow)}.vf-input_outlined{background-color:transparent}.vf-input_small{padding:var(--vf-input-small-padding)}.vf-input_small .vf-input__control{font-size:var(--vf-input-small-font-size)}.vf-input_large{padding:var(--vf-input-large-padding)}.vf-input_large .vf-input__control{font-size:var(--vf-input-large-font-size)}.vf-input_disabled{opacity:var(--vf-input-disabled-opacity);cursor:not-allowed}.vf-select{position:relative;display:inline-block;min-width:var(--vf-select-min-width);height:var(--vf-controls-height);box-sizing:border-box;border-radius:var(--vf-select-border-radius);border:var(--vf-border-width) solid var(--vf-select-border-color);background-color:var(--vf-select-background-color);color:var(--vf-select-text-color);transition:border-color .2s ease,box-shadow .2s ease}.vf-select__control{width:100%;padding:var(--vf-select-padding);border:none;background:transparent;color:inherit;font-size:var(--vf-select-font-size);line-height:var(--vf-typography-line-height);font-family:inherit;outline:none;display:inline-flex;align-items:center;justify-content:space-between;height:var(--vf-controls-height);box-sizing:border-box;gap:var(--vf-select-control-gap);cursor:pointer}.vf-select__label{text-align:left}.vf-select__label_placeholder{color:var(--vf-secondary-text-color)}.vf-select__chevron{font-size:var(--vf-select-chevron-size);opacity:.7}.vf-select__panel{position:fixed;z-index:50;padding:var(--vf-select-panel-padding);max-height:var(--vf-select-panel-max-height);overflow:auto;border-radius:calc(var(--vf-select-border-radius) + var(--vf-select-panel-radius-offset));border:var(--vf-border-width) solid var(--vf-select-panel-border-color);background-color:var(--vf-select-panel-background-color);box-shadow:var(--vf-select-panel-shadow);color:var(--vf-select-text-color)}.vf-select__option{width:100%;text-align:left;border:none;background:transparent;padding:var(--vf-select-option-padding);border-radius:var(--vf-select-option-border-radius);color:inherit;cursor:pointer;font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height);font-family:inherit}.vf-select__option:hover:not(.is-disabled),.vf-select__option:focus-visible:not(.is-disabled){background-color:var(--vf-select-option-hover-background-color);outline:none}.vf-select__option.is-active{background-color:var(--vf-select-option-active-background-color);color:var(--vf-select-option-active-text-color)}.vf-select__option.is-disabled{opacity:.6;cursor:not-allowed}.vf-select_open{border-color:var(--vf-select-focus-border-color);box-shadow:var(--vf-select-focus-ring-shadow)}.vf-select:hover:not(.vf-select_disabled){border-color:var(--vf-select-hover-border-color)}.vf-select:focus-within:not(.vf-select_disabled){border-color:var(--vf-select-focus-border-color)}.vf-select_small .vf-select__control{padding:var(--vf-select-small-padding);font-size:var(--vf-select-small-font-size)}.vf-select_large .vf-select__control{padding:var(--vf-select-large-padding);font-size:var(--vf-select-large-font-size)}.vf-select_disabled{opacity:var(--vf-select-disabled-opacity);cursor:not-allowed}.vf-select_disabled .vf-select__control{cursor:not-allowed}.vf-checkbox{display:inline-flex;align-items:center;gap:var(--vf-checkbox-gap);cursor:pointer;color:var(--vf-checkbox-text-color);font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-checkbox__control{position:absolute;opacity:0;pointer-events:none}.vf-checkbox__box{width:var(--vf-checkbox-size);height:var(--vf-checkbox-size);border:var(--vf-border-width) solid var(--vf-checkbox-border-color);border-radius:var(--vf-checkbox-border-radius);background-color:var(--vf-checkbox-background-color);display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,border-color .2s ease}.vf-checkbox__control:checked+.vf-checkbox__box{background-color:var(--vf-checkbox-checked-background-color);border-color:var(--vf-checkbox-checked-border-color)}.vf-checkbox__control:checked+.vf-checkbox__box:after{content:"";width:calc(var(--vf-checkbox-size) / 2);height:calc(var(--vf-checkbox-size) / 2);background-color:var(--vf-checkbox-check-color);border-radius:var(--vf-checkbox-check-border-radius)}.vf-checkbox_disabled{opacity:var(--vf-checkbox-disabled-opacity);cursor:not-allowed}.vf-switch{display:inline-flex;align-items:center;gap:var(--vf-switch-gap);cursor:pointer;color:var(--vf-switch-text-color);font-size:var(--vf-typography-font-size);line-height:var(--vf-typography-line-height)}.vf-switch__control{position:absolute;opacity:0;pointer-events:none}.vf-switch__track{position:relative;width:var(--vf-switch-width);height:var(--vf-switch-height);border-radius:var(--vf-switch-height);background-color:var(--vf-switch-background-color);transition:background-color .2s ease}.vf-switch__thumb{position:absolute;top:50%;left:var(--vf-switch-thumb-offset);width:var(--vf-switch-thumb-size);height:var(--vf-switch-thumb-size);border-radius:50%;background-color:var(--vf-switch-thumb-color);transform:translateY(-50%);transition:transform .2s ease}.vf-switch__control:checked+.vf-switch__track{background-color:var(--vf-switch-checked-background-color)}.vf-switch__control:checked+.vf-switch__track .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width) - var(--vf-switch-thumb-size) - var(--vf-switch-thumb-translate-offset)),-50%)}.vf-switch_disabled{opacity:var(--vf-switch-disabled-opacity);cursor:not-allowed}.vf-popover{position:relative}.vf-popover__button{cursor:pointer;-webkit-user-select:none;user-select:none}.vf-popover__wrapper{position:absolute;background-color:var(--vf-popover-background-color)}.vf-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vf-modal-z-index);display:flex;align-items:center;justify-content:center}.vf-modal__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--vf-modal-overlay-background-color)}.vf-modal__panel{position:relative;z-index:1;width:var(--vf-modal-width);max-width:var(--vf-modal-max-width);max-height:var(--vf-modal-max-height);padding:var(--vf-modal-padding);border-radius:var(--vf-modal-border-radius);background-color:var(--vf-modal-background-color);color:var(--vf-modal-text-color);box-shadow:var(--vf-modal-shadow);overflow:auto;outline:none}.vf-modal_sm .vf-modal__panel{width:var(--vf-modal-width-sm);max-width:var(--vf-modal-max-width-sm)}.vf-modal_lg .vf-modal__panel{width:var(--vf-modal-width-lg);max-width:var(--vf-modal-max-width-lg)}.vf-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--vf-modal-header-gap)}.vf-modal__title{margin:0;font-size:var(--vf-modal-title-font-size);line-height:var(--vf-modal-title-line-height);font-weight:var(--vf-modal-title-font-weight)}.vf-modal__body{margin-bottom:var(--vf-modal-body-gap)}.vf-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--vf-modal-footer-gap)}.vf-modal__close{position:absolute;top:var(--vf-modal-close-offset);right:var(--vf-modal-close-offset);width:var(--vf-modal-close-size);height:var(--vf-modal-close-size);border-radius:var(--vf-modal-close-radius);border:none;background:transparent;color:var(--vf-modal-close-color);cursor:pointer;font-size:var(--vf-modal-close-font-size);line-height:1}.vf-modal__close:hover{background-color:var(--vf-modal-close-hover-background-color)}.vf-tooltip__trigger{display:inline-flex}.vf-tooltip{position:fixed;z-index:var(--vf-tooltip-z-index);padding:var(--vf-tooltip-padding);border-radius:var(--vf-tooltip-border-radius);background-color:var(--vf-tooltip-background-color);color:var(--vf-tooltip-text-color);font-size:var(--vf-tooltip-font-size);line-height:var(--vf-tooltip-line-height);box-shadow:none;filter:drop-shadow(var(--vf-tooltip-shadow));max-width:var(--vf-tooltip-max-width)}.vf-tooltip__content{position:relative;z-index:1}.vf-tooltip__arrow{position:absolute;z-index:0;--vf-tooltip-arrow-rendered-height: var(--vf-tooltip-arrow-size);--vf-tooltip-arrow-half-width: calc(var(--vf-tooltip-arrow-size) * .8);width:0;height:0;border-style:solid;pointer-events:none}.vf-tooltip[data-placement^=top] .vf-tooltip__arrow{bottom:calc(var(--vf-tooltip-arrow-rendered-height) * -1);left:50%;transform:translate(-50%);border-width:var(--vf-tooltip-arrow-rendered-height) var(--vf-tooltip-arrow-half-width) 0 var(--vf-tooltip-arrow-half-width);border-color:var(--vf-tooltip-background-color) transparent transparent transparent}.vf-tooltip[data-placement^=bottom] .vf-tooltip__arrow{top:calc(var(--vf-tooltip-arrow-rendered-height) * -1);left:50%;transform:translate(-50%);border-width:0 var(--vf-tooltip-arrow-half-width) var(--vf-tooltip-arrow-rendered-height) var(--vf-tooltip-arrow-half-width);border-color:transparent transparent var(--vf-tooltip-background-color) transparent}.vf-tooltip[data-placement^=left] .vf-tooltip__arrow{right:calc(var(--vf-tooltip-arrow-half-width) * -2);top:50%;transform:translateY(-50%);border-width:var(--vf-tooltip-arrow-half-width) var(--vf-tooltip-arrow-rendered-height) var(--vf-tooltip-arrow-half-width) 0;border-color:transparent var(--vf-tooltip-background-color) transparent transparent}.vf-tooltip[data-placement^=right] .vf-tooltip__arrow{left:calc(var(--vf-tooltip-arrow-half-width) * -2);top:50%;transform:translateY(-50%);border-width:var(--vf-tooltip-arrow-half-width) 0 var(--vf-tooltip-arrow-half-width) var(--vf-tooltip-arrow-rendered-height);border-color:transparent transparent transparent var(--vf-tooltip-background-color)}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { default as Checkbox } from './package/components/checkbox.vue';
8
8
  export { default as Switch } from './package/components/switch.vue';
9
9
  export { default as Popover } from './package/components/popover.vue';
10
10
  export { default as Modal } from './package/components/modal.vue';
11
+ export { default as Tooltip } from './package/components/tooltip.vue';
11
12
  export { default as VueForge, setTheme, updateTheme, getTheme } from './package/config/index';
12
13
  export type { ThemeTokens, ThemeOptions, ThemePreset } from './package/config/theme-core';
13
14
  export { default as DefaultTheme } from './package/themes/default';