gitextract_kt2b5v6x/ ├── .eslintrc ├── .github/ │ └── workflows/ │ ├── codeql-analysis.yml │ └── deploy.yml ├── .gitignore ├── .lintstagedrc ├── .npmignore ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .storybook/ │ ├── locales/ │ │ ├── en.js │ │ ├── index.js │ │ └── ru.js │ ├── main.js │ ├── manager.js │ ├── preview.js │ └── theme.js ├── .stylelintignore ├── .stylelintrc ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── babel.config.js ├── jest.config.js ├── package.json ├── scripts/ │ └── badges.js ├── src/ │ ├── components.scss │ ├── fonts/ │ │ └── index.scss │ ├── icons/ │ │ └── index.scss │ ├── main.scss │ ├── normalize.scss │ ├── onDemand.js │ ├── qComponents/ │ │ ├── QBreadcrumbs/ │ │ │ ├── QBreadcrumbs.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QBreadcrumbs.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QBreadcrumbs.vue │ │ │ └── q-breadcrumbs.scss │ │ ├── QButton/ │ │ │ ├── QButton.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QButton.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QButton.vue │ │ │ └── q-button.scss │ │ ├── QCascader/ │ │ │ ├── QCascader.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QCascader.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QCascader.vue │ │ │ ├── QCascaderMenu.vue │ │ │ ├── QCascaderPanel.vue │ │ │ ├── q-cascader-menu.scss │ │ │ └── q-cascader.scss │ │ ├── QCheckbox/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QCheckbox.vue │ │ │ └── q-checkbox.scss │ │ ├── QCheckboxGroup/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QCheckboxGroup.vue │ │ │ └── q-checkbox-group.scss │ │ ├── QCol/ │ │ │ ├── QCol.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QCol.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QCol.vue │ │ │ └── q-col.scss │ │ ├── QCollapse/ │ │ │ ├── QCollapse.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QCollapse.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QCollapse.vue │ │ │ └── q-collapse.scss │ │ ├── QCollapseItem/ │ │ │ ├── QCollapseItem.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QCollapseItem.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QCollapseItem.vue │ │ │ └── q-collapse-item.scss │ │ ├── QColorPicker/ │ │ │ ├── QColorAlphaSlider.test.js │ │ │ ├── QColorHueSlider.test.js │ │ │ ├── QColorPicker.test.js │ │ │ ├── QColorSvpanel.test.js │ │ │ ├── QPickerDropdown.test.js │ │ │ ├── __snapshots__/ │ │ │ │ ├── QColorAlphaSlider.test.js.snap │ │ │ │ ├── QColorHueSlider.test.js.snap │ │ │ │ ├── QColorPicker.test.js.snap │ │ │ │ ├── QColorSvpanel.test.js.snap │ │ │ │ └── QPickerDropdown.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QColorAlphaSlider.vue │ │ │ ├── QColorHueSlider.vue │ │ │ ├── QColorPicker.vue │ │ │ ├── QColorSvpanel.vue │ │ │ ├── QPickerDropdown.vue │ │ │ ├── draggable.js │ │ │ ├── q-color-alpha-slider.scss │ │ │ ├── q-color-hue-slider.scss │ │ │ ├── q-color-picker.scss │ │ │ ├── q-color-svpanel.scss │ │ │ └── q-picker-dropdown.scss │ │ ├── QContextMenu/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QContextMenu.vue │ │ │ └── q-context-menu.scss │ │ ├── QDatePicker/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QDatePicker.vue │ │ │ ├── basic/ │ │ │ │ ├── date-table.vue │ │ │ │ ├── month-table.vue │ │ │ │ └── year-table.vue │ │ │ ├── helpers.js │ │ │ ├── panel/ │ │ │ │ ├── date-range.vue │ │ │ │ ├── date.vue │ │ │ │ ├── focus-mixin.js │ │ │ │ ├── focus-time-mixin.js │ │ │ │ ├── month-range.vue │ │ │ │ ├── range-mixin.js │ │ │ │ └── year-range.vue │ │ │ ├── q-date-picker.scss │ │ │ └── styles/ │ │ │ ├── date-table.scss │ │ │ ├── month-table.scss │ │ │ ├── picker-panel.scss │ │ │ ├── picker.scss │ │ │ └── year-table.scss │ │ ├── QDialog/ │ │ │ ├── QDialog.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QDialog.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QDialog.js │ │ │ ├── QDialog.vue │ │ │ └── q-dialog.scss │ │ ├── QDrawer/ │ │ │ ├── QDrawer.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QDrawer.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QDrawer.vue │ │ │ └── q-drawer.scss │ │ ├── QForm/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QForm.vue │ │ │ └── q-form.scss │ │ ├── QFormItem/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QFormItem.vue │ │ │ └── q-form-item.scss │ │ ├── QInput/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QInput.vue │ │ │ └── q-input.scss │ │ ├── QInputNumber/ │ │ │ ├── QInputNumber.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QInputNumber.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QInputNumber.vue │ │ │ └── q-input-number.scss │ │ ├── QMessageBox/ │ │ │ ├── QMessageBox.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QMessageBox.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QMessageBox.js │ │ │ ├── QMessageBox.vue │ │ │ └── q-message-box.scss │ │ ├── QNotification/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QNotification.js │ │ │ ├── QNotification.vue │ │ │ └── q-notification.scss │ │ ├── QOption/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QOption.vue │ │ │ └── q-option.scss │ │ ├── QPagination/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QPagination.vue │ │ │ └── q-pagination.scss │ │ ├── QPopover/ │ │ │ ├── QPopover.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QPopover.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QPopover.vue │ │ │ └── q-popover.scss │ │ ├── QRadio/ │ │ │ ├── QRadio.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QRadio.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QRadio.vue │ │ │ └── q-radio.scss │ │ ├── QRadioGroup/ │ │ │ ├── QRadioGroup.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QRadioGroup.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QRadioGroup.vue │ │ │ └── q-radio-group.scss │ │ ├── QRow/ │ │ │ ├── QRow.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QRow.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QRow.vue │ │ │ └── q-row.scss │ │ ├── QScrollbar/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QBar.vue │ │ │ ├── QScrollbar.vue │ │ │ ├── q-scrollbar.scss │ │ │ └── util.js │ │ ├── QSelect/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QSelect.vue │ │ │ ├── QSelectDropdown.vue │ │ │ ├── QSelectTags.vue │ │ │ ├── q-select-dropdown.scss │ │ │ ├── q-select-tags.scss │ │ │ └── q-select.scss │ │ ├── QSlider/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QSlider.vue │ │ │ ├── components/ │ │ │ │ ├── QSliderBar/ │ │ │ │ │ └── index.vue │ │ │ │ ├── QSliderButton/ │ │ │ │ │ └── index.vue │ │ │ │ ├── QSliderCaptions/ │ │ │ │ │ └── index.vue │ │ │ │ └── QSliderSteps/ │ │ │ │ └── index.vue │ │ │ ├── q-slider.scss │ │ │ └── styles/ │ │ │ ├── q-slider-bar.scss │ │ │ ├── q-slider-button.scss │ │ │ ├── q-slider-captions.scss │ │ │ ├── q-slider-steps.scss │ │ │ └── q-slider.scss │ │ ├── QTabPane/ │ │ │ ├── QTabPane.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QTabPane.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QTabPane.vue │ │ │ └── q-tab-pane.scss │ │ ├── QTable/ │ │ │ ├── QTable.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QTable.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QTable.vue │ │ │ ├── components/ │ │ │ │ ├── DragElements/ │ │ │ │ │ └── index.vue │ │ │ │ └── QTableRow/ │ │ │ │ └── index.vue │ │ │ ├── hocs/ │ │ │ │ └── withQTableRow/ │ │ │ │ └── index.js │ │ │ └── q-table.scss │ │ ├── QTabs/ │ │ │ ├── QTabs.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QTabs.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QTabs.vue │ │ │ └── q-tabs.scss │ │ ├── QTag/ │ │ │ ├── QTag.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── QTag.test.js.snap │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QTag.vue │ │ │ └── q-tag.scss │ │ ├── QTextarea/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QTextarea.vue │ │ │ ├── calcTextareaHeight.js │ │ │ └── q-textarea.scss │ │ ├── QTimePicker/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QTimePicker.vue │ │ │ ├── components/ │ │ │ │ ├── panel.vue │ │ │ │ └── time-panel.scss │ │ │ └── q-time-picker.scss │ │ ├── QUpload/ │ │ │ ├── index.js │ │ │ └── src/ │ │ │ ├── QUpload.vue │ │ │ ├── QUploadDropZone.vue │ │ │ ├── QUploadFileMultiple.vue │ │ │ ├── QUploadFileSingle.vue │ │ │ ├── q-upload-drop-zone.scss │ │ │ ├── q-upload-file-multiple.scss │ │ │ ├── q-upload-file-single.scss │ │ │ └── q-upload.scss │ │ ├── constants/ │ │ │ ├── locales/ │ │ │ │ ├── en.js │ │ │ │ ├── index.js │ │ │ │ └── ru.js │ │ │ └── popperPlacements.js │ │ ├── helpers/ │ │ │ ├── collapse-transition.js │ │ │ ├── dateHelpers.js │ │ │ └── index.js │ │ ├── index.js │ │ └── mixins/ │ │ ├── emitter.js │ │ ├── inputs.js │ │ └── pickers.js │ ├── transition.scss │ └── vars.scss ├── stories/ │ ├── components/ │ │ ├── Layout/ │ │ │ ├── Layout.stories.js │ │ │ ├── QCol.stories.js │ │ │ ├── QRow.stories.js │ │ │ └── layout.scss │ │ ├── QBreadcrumbs.stories.js │ │ ├── QButton.stories.mdx │ │ ├── QCascader.stories.js │ │ ├── QCheckbox.stories.js │ │ ├── QCheckboxGroup.stories.js │ │ ├── QCollapse.stories.js │ │ ├── QColorPicker.stories.js │ │ ├── QContextMenu.stories.js │ │ ├── QDatePicker/ │ │ │ ├── DateRange.js │ │ │ ├── DateTime.js │ │ │ ├── DateTimeRange.js │ │ │ ├── Default.js │ │ │ ├── Month.js │ │ │ ├── MonthRange.js │ │ │ ├── QDatePicker.stories.js │ │ │ ├── Year.js │ │ │ └── YearRange.js │ │ ├── QDialog/ │ │ │ ├── DialogFormTest.vue │ │ │ └── QDialog.stories.js │ │ ├── QDrawer.stories.js │ │ ├── QForm.stories.js │ │ ├── QInput.stories.js │ │ ├── QInputNumber.stories.js │ │ ├── QMessageBox/ │ │ │ ├── MessageBoxFormTest.vue │ │ │ └── QMessageBox.stories.js │ │ ├── QNotification.stories.js │ │ ├── QPagination.stories.js │ │ ├── QPopover.stories.js │ │ ├── QRadio.stories.js │ │ ├── QRadioGroup.stories.js │ │ ├── QScrollbar/ │ │ │ ├── QScrollbar.stories.js │ │ │ └── q-scrollbar.scss │ │ ├── QSelect/ │ │ │ ├── Default.js │ │ │ ├── Multiple.js │ │ │ └── QSelect.stories.js │ │ ├── QSlider/ │ │ │ ├── Breakpoints.js │ │ │ ├── Captions.js │ │ │ ├── Default.js │ │ │ ├── Disabled.js │ │ │ ├── QSlider.stories.js │ │ │ ├── Range.js │ │ │ ├── Vertical.js │ │ │ └── WithoutTooltip.js │ │ ├── QTabPane.stories.js │ │ ├── QTable/ │ │ │ ├── CustomRows.js │ │ │ ├── CustomWidth.js │ │ │ ├── Default.js │ │ │ ├── Draggable.js │ │ │ ├── Groups.js │ │ │ ├── QTable.stories.js │ │ │ ├── Selectable.js │ │ │ ├── StickyColumn.js │ │ │ └── Total.js │ │ ├── QTabs.stories.js │ │ ├── QTag.stories.js │ │ ├── QTextarea.stories.js │ │ ├── QTimePicker.stories.js │ │ └── QUpload/ │ │ ├── Default.js │ │ ├── Multiple.js │ │ └── QUpload.stories.js │ ├── core/ │ │ ├── colors.js │ │ ├── colors.stories.mdx │ │ └── icons.stories.mdx │ └── intro.stories.mdx └── tests/ └── unit/ └── setup.js