@codemonster-ru/vueforge 0.8.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
@@ -50,9 +50,90 @@ app.use(VueForge, {
50
50
  - Input
51
51
  - Link
52
52
  - Menu
53
+ - Modal
53
54
  - Popover
54
55
  - Select
55
56
  - Switch
57
+ - Tooltip
58
+
59
+ ## Modal
60
+
61
+ Props:
62
+
63
+ - `modelValue?: boolean` (v-model)
64
+ - `title?: string`
65
+ - `size?: 'sm' | 'md' | 'lg'`
66
+ - `closeOnOverlay?: boolean` (default true)
67
+ - `closeOnEsc?: boolean` (default true)
68
+ - `showClose?: boolean` (default true)
69
+ - `lockScroll?: boolean` (default true)
70
+
71
+ Slots:
72
+
73
+ - `header` (optional) - replaces the title area
74
+ - `body` (optional) - modal content (defaults to default slot if not provided)
75
+ - `default` (optional) - modal content if `body` slot is not used
76
+ - `footer` (optional)
77
+ - `close` (optional) - custom close button; slot props: `{ close }`
78
+
79
+ Events:
80
+
81
+ - `update:modelValue`
82
+ - `open`
83
+ - `close`
84
+
85
+ Example:
86
+
87
+ ```vue
88
+ <Modal v-model="open" title="Confirm action" size="sm">
89
+ <template #body>
90
+ <p>Are you sure?</p>
91
+ </template>
92
+ <template #footer>
93
+ <Button label="Cancel" severity="secondary" @click="open = false" />
94
+ <Button label="Confirm" @click="open = false" />
95
+ </template>
96
+ </Modal>
97
+ ```
98
+
99
+ ### Modal tokens
100
+
101
+ Component tokens (override via `theme.overrides.components.modal`):
102
+
103
+ - `width`, `maxWidth`, `maxHeight`
104
+ - `widthSm`, `maxWidthSm`
105
+ - `widthLg`, `maxWidthLg`
106
+ - `padding`, `borderRadius`
107
+ - `backgroundColor`, `textColor`
108
+ - `overlayBackgroundColor`
109
+ - `shadow`
110
+ - `zIndex`
111
+ - `headerGap`, `bodyGap`, `footerGap`
112
+ - `titleFontSize`, `titleLineHeight`, `titleFontWeight`
113
+ - `closeSize`, `closeRadius`, `closeOffset`
114
+ - `closeColor`, `closeFontSize`, `closeHoverBackgroundColor`
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
+ ```
56
137
 
57
138
  ## Tokens
58
139
 
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)}
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
@@ -7,6 +7,8 @@ export { default as Select } from './package/components/select.vue';
7
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
+ export { default as Modal } from './package/components/modal.vue';
11
+ export { default as Tooltip } from './package/components/tooltip.vue';
10
12
  export { default as VueForge, setTheme, updateTheme, getTheme } from './package/config/index';
11
13
  export type { ThemeTokens, ThemeOptions, ThemePreset } from './package/config/theme-core';
12
14
  export { default as DefaultTheme } from './package/themes/default';