# svar-vue - core _Generated 2026-05-08T11:33:57.443Z_ ## Contents - [`core/index.md`](#file-core-index-md) - [`core/avatar.md`](#file-core-avatar-md) - [`core/button.md`](#file-core-button-md) - [`core/calendar.md`](#file-core-calendar-md) - [`core/checkbox.md`](#file-core-checkbox-md) - [`core/colorboard.md`](#file-core-colorboard-md) - [`core/colorpicker.md`](#file-core-colorpicker-md) - [`core/colorselect.md`](#file-core-colorselect-md) - [`core/combo.md`](#file-core-combo-md) - [`core/counter.md`](#file-core-counter-md) - [`core/datepicker.md`](#file-core-datepicker-md) - [`core/daterangepicker.md`](#file-core-daterangepicker-md) - [`core/dropdown.md`](#file-core-dropdown-md) - [`core/field.md`](#file-core-field-md) - [`core/fullscreen.md`](#file-core-fullscreen-md) - [`core/globals.md`](#file-core-globals-md) - [`core/icon.md`](#file-core-icon-md) - [`core/locale.md`](#file-core-locale-md) - [`core/modal.md`](#file-core-modal-md) - [`core/modalarea.md`](#file-core-modalarea-md) - [`core/month.md`](#file-core-month-md) - [`core/multicombo.md`](#file-core-multicombo-md) - [`core/pager.md`](#file-core-pager-md) - [`core/popup.md`](#file-core-popup-md) - [`core/portal.md`](#file-core-portal-md) - [`core/radio.md`](#file-core-radio-md) - [`core/rangecalendar.md`](#file-core-rangecalendar-md) - [`core/richselect.md`](#file-core-richselect-md) - [`core/segmented.md`](#file-core-segmented-md) - [`core/select.md`](#file-core-select-md) - [`core/sidearea.md`](#file-core-sidearea-md) - [`core/slider.md`](#file-core-slider-md) - [`core/suggest-dropdown.md`](#file-core-suggest-dropdown-md) - [`core/switch.md`](#file-core-switch-md) - [`core/tabs.md`](#file-core-tabs-md) - [`core/text.md`](#file-core-text-md) - [`core/textarea.md`](#file-core-textarea-md) - [`core/themes.md`](#file-core-themes-md) - [`core/timepicker.md`](#file-core-timepicker-md) - [`core/twostate.md`](#file-core-twostate-md) - [`locales.md`](#file-locales-md) - [`themes.md`](#file-themes-md) ## File: core/index.md > Source: `core/index.md` Use when building, configuring, styling, or modifying SVAR Vue Core / @svar-ui/vue-core widgets, themes, locale, forms, popups, selectors, calendars, buttons, and display components This is an index file. Open the focused widget file that matches the component you are using. Each child file is standalone and contain all critical info needed for that widget. #### Package ```js import { TextArea, Button, Checkbox, CheckboxGroup, ColorSelect, ColorBoard, ColorPicker, Combo, DatePicker, DateRangePicker, Fullscreen, Avatar, Icon, MultiCombo, Popup, Dropdown, Pager, RadioButton, RadioButtonGroup, RichSelect, Segmented, Select, Slider, Switch, Tabs, Text, Counter, Globals, Field, Calendar, Month, RangeCalendar, TimePicker, TwoState, Modal, ModalArea, SideArea, Portal, Willow, WillowDark, Locale, locale, popupContainer, SuggestDropdown, en, } from "@svar-ui/vue-core"; import "@svar-ui/vue-core/all.css"; ``` #### Widget Index - `button.md` - `Button` - `twostate.md` - `TwoState` - `icon.md` - `Icon` - `checkbox.md` - `Checkbox`, `CheckboxGroup` - `radio.md` - `RadioButton`, `RadioButtonGroup` - `switch.md` - `Switch` - `segmented.md` - `Segmented` - `tabs.md` - `Tabs` - `field.md` - `Field` - `text.md` - `Text` - `textarea.md` - `TextArea` - `counter.md` - `Counter` - `slider.md` - `Slider` - `select.md` - `Select` - `combo.md` - `Combo` - `multicombo.md` - `MultiCombo` - `richselect.md` - `RichSelect` - `suggest-dropdown.md` - `SuggestDropdown` - `dropdown.md` - `Dropdown` - `popup.md` - `Popup` - `portal.md` - `Portal`, `popupContainer` - `colorselect.md` - `ColorSelect` - `colorboard.md` - `ColorBoard` - `colorpicker.md` - `ColorPicker` - `calendar.md` - `Calendar` - `month.md` - `Month` - `rangecalendar.md` - `RangeCalendar` - `datepicker.md` - `DatePicker` - `daterangepicker.md` - `DateRangePicker` - `timepicker.md` - `TimePicker` - `avatar.md` - `Avatar` - `pager.md` - `Pager` - `fullscreen.md` - `Fullscreen` - `modal.md` - `Modal` - `modalarea.md` - `ModalArea` - `sidearea.md` - `SideArea` - `globals.md` - `Globals`, `showNotice`, `showModal` - `themes.md` - `Willow`, `WillowDark`, theme CSS variables - `locale.md` - `Locale`, `locale`, `en`, bundled locale imports #### Shared Contracts - Most controls expose bindable `value` and an `onchange` callback. Event payloads differ by widget and are documented in each file. - Option-based widgets generally use `{ id, label }` options and emit selected ids as values. - Dropdown-backed widgets share `DropdownOptions` for position, align, width, inline mode, scroll tracking, and virtualization. ## File: core/avatar.md > Source: `core/avatar.md` ### SVAR Vue Core Avatar Package: `@svar-ui/vue-core` #### Package ```js import { Avatar } from "@svar-ui/vue-core"; ``` #### Supported Functionality - Displays one user or a stack of users. - User object fields are `id`, `name`, `avatar`, and `color`. - `size` controls circle size and computed font size; default is `32`. - `limit` caps visible users before responsive fitting is applied. - When users are hidden, the last visible avatar shows a `+N` overlay. - If `avatar` is present, it renders an image; otherwise initials are derived from `name`. #### Public Types ```ts import type { Component } from "vue"; export interface IUser { id: string | number; name?: string; avatar?: string; color?: string; } export declare const Avatar: Component<{ value: IUser | IUser[]; size?: number; limit?: number; }>; ``` #### Styling - Root: `.wx-avatar-root` - Stack: `.wx-avatar-stack` - Avatar item: `.wx-avatar`, `.wx-avatar-item` - Overflow state and badge: `.wx-avatar-overflow`, `.wx-avatar-overflow-badge` - Image selector: `.wx-avatar img` - Initial text selector: `.wx-avatar span` ```vue ``` #### Recipes ##### User Stack With Responsive Overflow ```vue ``` ##### Single Initial Avatar ```vue ``` ## File: core/button.md > Source: `core/button.md` ### SVAR Vue Core Button Package: `@svar-ui/vue-core` #### Package ```js import { Button } from "@svar-ui/vue-core"; ``` #### Supported Functionality - Renders a native `