@rotki/ui-library 2.27.0 → 3.0.0-beta.2
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 +36 -15
- package/dist/components/accordions/accordion/RuiAccordion.js.map +1 -1
- package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +0 -4
- package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +9 -10
- package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/accordions/accordions/RuiAccordions.js.map +1 -1
- package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js +16 -3
- package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/alerts/RuiAlert.js.map +1 -1
- package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js +43 -212
- package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/avatars/RuiAvatar.js.map +1 -1
- package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js +22 -32
- package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/avatars/RuiAvatarGroup.js.map +1 -1
- package/dist/components/avatars/RuiAvatarGroup.vue.d.ts +6 -0
- package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js +17 -13
- package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/avatars/avatar-props.d.ts +16 -3
- package/dist/components/avatars/avatar-props.js +42 -5
- package/dist/components/avatars/avatar-props.js.map +1 -1
- package/dist/components/buttons/button/RuiButton.js.map +1 -1
- package/dist/components/buttons/button/RuiButton.vue.d.ts +0 -1
- package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js +39 -26
- package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/buttons/button/button-props.d.ts +0 -2
- package/dist/components/buttons/button/button-props.js +5 -5
- package/dist/components/buttons/button/button-props.js.map +1 -1
- package/dist/components/buttons/button/button-styles.d.ts +4 -1
- package/dist/components/buttons/button/button-styles.js +136 -55
- package/dist/components/buttons/button/button-styles.js.map +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.js.map +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +8 -2
- package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js +66 -97
- package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/buttons/button-group/button-group-context.d.ts +28 -0
- package/dist/components/buttons/button-group/button-group-context.js +22 -0
- package/dist/components/buttons/button-group/button-group-context.js.map +1 -0
- package/dist/components/calendar/RuiCalendar.js.map +1 -1
- package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/calendar/RuiCalendarGrid.js.map +1 -1
- package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js +12 -8
- package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/calendar/RuiCalendarHeader.js.map +1 -1
- package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js +21 -22
- package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/calendar/RuiCalendarMenu.js.map +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js +17 -21
- package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cards/RuiCard.js.map +1 -1
- package/dist/components/cards/RuiCard.vue.d.ts +0 -3
- package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +31 -19
- package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cards/RuiCardHeader.js.map +1 -1
- package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js +13 -25
- package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/chips/RuiChip.js.map +1 -1
- package/dist/components/chips/RuiChip.vue.d.ts +5 -2
- package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +127 -78
- package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/chips/chip-props.d.ts +2 -0
- package/dist/components/chips/chip-props.js +5 -3
- package/dist/components/chips/chip-props.js.map +1 -1
- package/dist/components/color-picker/RuiColorBoard.js.map +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/color-picker/RuiColorDisplay.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/color-picker/RuiColorHue.js.map +1 -1
- package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/color-picker/RuiColorInput.js.map +1 -1
- package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +46 -36
- package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/color-picker/RuiColorPicker.js.map +1 -1
- package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +4 -5
- package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +3 -2
- package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +81 -80
- package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/date-time-picker/RuiTimezoneSelect.js.map +1 -1
- package/dist/components/date-time-picker/RuiTimezoneSelect.vue.d.ts +4 -3
- package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-styles.d.ts +128 -219
- package/dist/components/date-time-picker/date-time-picker-styles.js +1 -2
- package/dist/components/date-time-picker/date-time-picker-styles.js.map +1 -1
- package/dist/components/date-time-picker/use-date-bounds.js +1 -1
- package/dist/components/date-time-picker/use-date-time-selection.js +65 -66
- package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
- package/dist/components/date-time-picker/use-input-handler.js +1 -1
- package/dist/components/date-time-picker/use-keyboard-handler.js +29 -30
- package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +1 -68
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +203 -198
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoCompleteOption.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoCompleteOption.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/forms/auto-complete/RuiAutoCompleteOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue.d.ts +2 -0
- package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue_vue_type_script_setup_true_lang.js +8 -3
- package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue.d.ts +4 -0
- package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js +24 -10
- package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/auto-complete/auto-complete-props.d.ts +66 -0
- package/dist/components/forms/auto-complete/auto-complete-styles.d.ts +128 -218
- package/dist/components/forms/auto-complete/auto-complete-styles.js +4 -2
- package/dist/components/forms/auto-complete/auto-complete-styles.js.map +1 -1
- package/dist/components/forms/category-picker/RuiCategoryPicker.js.map +1 -1
- package/dist/components/forms/category-picker/RuiCategoryPicker.vue.d.ts +3 -6
- package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js +154 -154
- package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/category-picker/category-picker-styles.d.ts +83 -232
- package/dist/components/forms/category-picker/category-picker-styles.js +20 -26
- package/dist/components/forms/category-picker/category-picker-styles.js.map +1 -1
- package/dist/components/forms/check-control-styles.d.ts +61 -2
- package/dist/components/forms/check-control-styles.js +53 -46
- package/dist/components/forms/check-control-styles.js.map +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +32 -19
- package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.js.map +1 -1
- package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/field-defaults/RuiFieldDefaults.js +7 -0
- package/dist/components/forms/field-defaults/RuiFieldDefaults.js.map +1 -0
- package/dist/components/forms/field-defaults/RuiFieldDefaults.vue.d.ts +16 -0
- package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/field-label/RuiFieldLabel.js +7 -0
- package/dist/components/forms/field-label/RuiFieldLabel.js.map +1 -0
- package/dist/components/forms/field-label/RuiFieldLabel.vue.d.ts +17 -0
- package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/file-upload/RuiFileUpload.js.map +1 -1
- package/dist/components/forms/file-upload/RuiFileUpload.vue.d.ts +1 -1
- package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js +56 -35
- package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +14 -15
- package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -1
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/select/RuiMenuSelect.js.map +1 -1
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +3 -12
- package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +61 -56
- package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +0 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +13 -20
- package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/select/menu-select-styles.d.ts +99 -221
- package/dist/components/forms/select/menu-select-styles.js +1 -4
- package/dist/components/forms/select/menu-select-styles.js.map +1 -1
- package/dist/components/forms/slider/RuiSlider.js.map +1 -1
- package/dist/components/forms/slider/RuiSlider.vue.d.ts +0 -4
- package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +129 -106
- package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/slider/slider-styles.d.ts +40 -40
- package/dist/components/forms/slider/slider-styles.js +67 -109
- package/dist/components/forms/slider/slider-styles.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +33 -45
- package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/text-area/RuiTextArea.js.map +1 -1
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +3 -2
- package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +138 -117
- package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/text-area/text-area-styles.d.ts +41 -115
- package/dist/components/forms/text-area/text-area-styles.js +34 -194
- package/dist/components/forms/text-area/text-area-styles.js.map +1 -1
- package/dist/components/forms/text-field/RuiTextField.js.map +1 -1
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +5 -2
- package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +112 -105
- package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/text-field/text-field-styles.d.ts +37 -145
- package/dist/components/forms/text-field/text-field-styles.js +24 -267
- package/dist/components/forms/text-field/text-field-styles.js.map +1 -1
- package/dist/components/forms/text-input-styles.d.ts +98 -229
- package/dist/components/forms/text-input-styles.js +63 -193
- package/dist/components/forms/text-input-styles.js.map +1 -1
- package/dist/components/helpers/RuiFormTextDetail.js.map +1 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +11 -1
- package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/icons/RuiIcon.js.map +1 -1
- package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +7 -4
- package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/index.d.ts +5 -3
- package/dist/components/index.js +4 -3
- package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +6 -5
- package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/logos/RuiLogo.js.map +1 -1
- package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +76 -48
- package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/dialog/RuiDialog.js.map +1 -1
- package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +3 -2
- package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +17 -13
- package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +9 -7
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +33 -29
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +6 -2
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +49 -25
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/notification/RuiNotification.js.map +1 -1
- package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +7 -8
- package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +0 -5
- package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +17 -11
- package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/tooltip/tooltip-styles.d.ts +5 -12
- package/dist/components/overlays/tooltip/tooltip-styles.js +11 -18
- package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -1
- package/dist/components/progress/RuiProgress.js.map +1 -1
- package/dist/components/progress/RuiProgress.vue.d.ts +4 -0
- package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +73 -47
- package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/steppers/RuiFooterStepper.js.map +1 -1
- package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +28 -29
- package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/steppers/RuiStepper.js.map +1 -1
- package/dist/components/steppers/RuiStepper.vue.d.ts +0 -4
- package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +36 -29
- package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/steppers/RuiStepperIcon.js.map +1 -1
- package/dist/components/steppers/RuiStepperIcon.vue.d.ts +2 -0
- package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +47 -47
- package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiDataTable.js.map +1 -1
- package/dist/components/tables/RuiDataTable.vue.d.ts +3 -6
- package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +85 -67
- package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiExpandButton.js.map +1 -1
- package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTable.js.map +1 -1
- package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js +8 -5
- package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTableEmptyState.js.map +1 -1
- package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTableHead.js.map +1 -1
- package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +89 -67
- package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTablePagination.js.map +1 -1
- package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +9 -12
- package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableCell.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/tables/data-table/RuiDataTableExpandedRow.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableGroupRow.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js +8 -4
- package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableMobileSort.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableMobileSort.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/tables/data-table/RuiDataTableMobileSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableRow.js.map +1 -1
- package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js +47 -8
- package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/data-table-styles.d.ts +24 -0
- package/dist/components/tables/data-table-styles.js +35 -20
- package/dist/components/tables/data-table-styles.js.map +1 -1
- package/dist/components/tables/table_no_data_placeholder.js +1 -1
- package/dist/components/tables/table_no_data_placeholder.js.map +1 -1
- package/dist/components/tables/table_no_data_placeholder_dark.js +1 -1
- package/dist/components/tables/table_no_data_placeholder_dark.js.map +1 -1
- package/dist/components/tables/use-pagination-navigation.js +1 -1
- package/dist/components/tabs/tab/RuiTab.js.map +1 -1
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +2 -5
- package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +95 -69
- package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tabs/tab/use-tab-link.js +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.js.map +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +0 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js +5 -11
- package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +8 -13
- package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tabs/tab-props.d.ts +7 -1
- package/dist/components/tabs/tab-props.js +7 -1
- package/dist/components/tabs/tab-props.js.map +1 -1
- package/dist/components/tabs/tabs/RuiTabs.js.map +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +2 -1
- package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +188 -43
- package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tabs/tabs/use-tab-indicator.d.ts +27 -0
- package/dist/components/tabs/tabs/use-tab-indicator.js +67 -0
- package/dist/components/tabs/tabs/use-tab-indicator.js.map +1 -0
- package/dist/components/tabs/tabs/use-tab-keyboard.d.ts +17 -0
- package/dist/components/tabs/tabs/use-tab-keyboard.js +57 -0
- package/dist/components/tabs/tabs/use-tab-keyboard.js.map +1 -0
- package/dist/components/tabs/tabs/use-tab-routing.js +1 -2
- package/dist/components/tabs/tabs/use-tab-routing.js.map +1 -1
- package/dist/components/tabs/tabs/use-tab-scroll.js +15 -15
- package/dist/components/tabs/tabs/use-tab-scroll.js.map +1 -1
- package/dist/components/time-picker/RuiTimePicker.js.map +1 -1
- package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js +95 -93
- package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/time-picker/time-picker-styles.d.ts +18 -0
- package/dist/components/time-picker/time-picker-styles.js +16 -10
- package/dist/components/time-picker/time-picker-styles.js.map +1 -1
- package/dist/composables/breakpoint.js +3 -3
- package/dist/composables/breakpoint.js.map +1 -1
- package/dist/composables/defaults/field.d.ts +22 -0
- package/dist/composables/defaults/field.js +29 -0
- package/dist/composables/defaults/field.js.map +1 -0
- package/dist/composables/dropdown-menu.d.ts +23 -11
- package/dist/composables/dropdown-menu.js +44 -34
- package/dist/composables/dropdown-menu.js.map +1 -1
- package/dist/composables/floating.d.ts +1 -3
- package/dist/composables/floating.js +16 -13
- package/dist/composables/floating.js.map +1 -1
- package/dist/composables/forms/auto-complete/chips.d.ts +22 -0
- package/dist/composables/forms/auto-complete/chips.js +42 -0
- package/dist/composables/forms/auto-complete/chips.js.map +1 -0
- package/dist/composables/forms/auto-complete/combobox.d.ts +25 -0
- package/dist/composables/forms/auto-complete/combobox.js +35 -0
- package/dist/composables/forms/auto-complete/combobox.js.map +1 -0
- package/dist/composables/forms/auto-complete/focus.d.ts +5 -2
- package/dist/composables/forms/auto-complete/focus.js +44 -19
- package/dist/composables/forms/auto-complete/focus.js.map +1 -1
- package/dist/composables/forms/auto-complete/index.d.ts +3 -0
- package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -1
- package/dist/composables/forms/auto-complete/keyboard-navigation.js +49 -21
- package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
- package/dist/composables/forms/auto-complete/search.js +6 -7
- package/dist/composables/forms/auto-complete/search.js.map +1 -1
- package/dist/composables/forms/auto-complete/selection.d.ts +37 -0
- package/dist/composables/forms/auto-complete/selection.js +60 -0
- package/dist/composables/forms/auto-complete/selection.js.map +1 -0
- package/dist/composables/forms/auto-complete/value.js +20 -1
- package/dist/composables/forms/auto-complete/value.js.map +1 -1
- package/dist/composables/forms/category-picker/use-category-picker.js +1 -1
- package/dist/composables/forms/use-prepend-append-width.js +6 -6
- package/dist/composables/forms/use-prepend-append-width.js.map +1 -1
- package/dist/composables/keyboard-scroll.d.ts +17 -0
- package/dist/composables/keyboard-scroll.js +58 -0
- package/dist/composables/keyboard-scroll.js.map +1 -0
- package/dist/composables/overlay-stack.js +1 -1
- package/dist/composables/sticky-header.d.ts +8 -0
- package/dist/composables/sticky-header.js +21 -10
- package/dist/composables/sticky-header.js.map +1 -1
- package/dist/composables/tables/data-table/columns.js +1 -1
- package/dist/composables/tables/data-table/expansion.js +1 -1
- package/dist/composables/tables/data-table/grouping.js +27 -28
- package/dist/composables/tables/data-table/grouping.js.map +1 -1
- package/dist/composables/tables/data-table/page-scroll.d.ts +32 -0
- package/dist/composables/tables/data-table/page-scroll.js +144 -0
- package/dist/composables/tables/data-table/page-scroll.js.map +1 -0
- package/dist/composables/tables/data-table/pagination.js +1 -1
- package/dist/composables/tables/data-table/selection.js +37 -38
- package/dist/composables/tables/data-table/selection.js.map +1 -1
- package/dist/composables/tables/data-table/sort.js +1 -1
- package/dist/composables/theme.js +12 -12
- package/dist/composables/theme.js.map +1 -1
- package/dist/composables/timeout-manager.js +1 -1
- package/dist/consts/colors.d.ts +4 -0
- package/dist/consts/colors.js +1 -37
- package/dist/consts/colors.js.map +1 -1
- package/dist/consts/tokens.d.ts +56 -0
- package/dist/consts/tokens.js +46 -0
- package/dist/consts/tokens.js.map +1 -0
- package/dist/consts/typography.d.ts +51 -18
- package/dist/index.d.ts +7 -2
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/library-icons.json +0 -10
- package/dist/style.css +5629 -4678
- package/dist/styles/colors.css +315 -0
- package/dist/styles/tokens.css +50 -0
- package/dist/tailwind.css +145 -0
- package/dist/theme/theme.css +403 -0
- package/dist/theme.css +403 -0
- package/dist/types/dom.d.ts +9 -0
- package/dist/types/theme.d.ts +2 -3
- package/dist/types/theme.js.map +1 -1
- package/dist/utils/form-text-detail.js +1 -1
- package/dist/utils/helpers.d.ts +0 -8
- package/dist/utils/helpers.js +1 -2
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/tv.js +13 -21
- package/dist/utils/tv.js.map +1 -1
- package/dist/vendor/@vueuse/core/dist/index.js +1577 -0
- package/dist/vendor/@vueuse/core/dist/index.js.map +1 -0
- package/dist/vendor/@vueuse/shared/dist/index.js +563 -0
- package/dist/vendor/@vueuse/shared/dist/index.js.map +1 -0
- package/dist/vite-plugin/index.js +5 -6
- package/dist/vite-plugin/index.js.map +1 -1
- package/dist/web-types.json +278 -403
- package/package.json +17 -19
- package/dist/components/icons/LazyIcon.vue.d.ts +0 -8
- package/dist/components/steppers/RuiStepperCustomIcon.js +0 -7
- package/dist/components/steppers/RuiStepperCustomIcon.js.map +0 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +0 -8
- package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js +0 -43
- package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/composables/colors/common.d.ts +0 -20
- package/dist/composables/colors/index.d.ts +0 -3
- package/dist/composables/colors/text-input.d.ts +0 -27
- package/dist/composables/forms/use-label-with-quote.d.ts +0 -2
- package/dist/composables/popper.d.ts +0 -16
- package/dist/composables/popper.js +0 -23
- package/dist/composables/popper.js.map +0 -1
- package/dist/consts/forms/auto-complete/index.d.ts +0 -4
- package/dist/theme/index.d.ts +0 -5
- package/dist/theme/index.js +0 -162
- package/dist/theme/index.js.map +0 -1
- package/dist/utils/forms/auto-complete/index.d.ts +0 -2
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { assert } from "../../../utils/assert.js";
|
|
2
|
+
import { get, isDefined, set } from "../../../vendor/@vueuse/shared/dist/index.js";
|
|
2
3
|
import { useTimeoutManager } from "../../timeout-manager.js";
|
|
3
4
|
import { isRow } from "./types.js";
|
|
4
5
|
import { computed, shallowRef, toValue, watch } from "vue";
|
|
5
|
-
import { isDefined } from "@vueuse/core";
|
|
6
|
-
import { get as get$1, set as set$1 } from "@vueuse/shared";
|
|
7
6
|
//#region src/composables/tables/data-table/selection.ts
|
|
8
7
|
function useTableSelection(options, deps) {
|
|
9
8
|
const { rowAttr, multiPageSelect, disabledRows } = options;
|
|
@@ -12,30 +11,30 @@ function useTableSelection(options, deps) {
|
|
|
12
11
|
const lastSelectedIndex = shallowRef(-1);
|
|
13
12
|
const internalSelectedData = shallowRef([]);
|
|
14
13
|
const { create: scheduleShiftSelect } = useTimeoutManager();
|
|
15
|
-
watch(selectedData, (val) => set
|
|
16
|
-
const visibleIdentifiers = computed(() => get
|
|
17
|
-
const selectedSet = computed(() => new Set(get
|
|
14
|
+
watch(selectedData, (val) => set(internalSelectedData, val ?? []), { immediate: true });
|
|
15
|
+
const visibleIdentifiers = computed(() => get(filtered).filter(isRow).map((row) => row[rowAttr]));
|
|
16
|
+
const selectedSet = computed(() => new Set(get(selectedData) ?? []));
|
|
18
17
|
const disabledRowKeySet = computed(() => {
|
|
19
18
|
const currentDisabledRows = toValue(disabledRows);
|
|
20
19
|
if (!currentDisabledRows || !rowAttr) return /* @__PURE__ */ new Set();
|
|
21
20
|
return new Set(currentDisabledRows.map((row) => row[rowAttr]));
|
|
22
21
|
});
|
|
23
22
|
const isAllSelected = computed(() => {
|
|
24
|
-
const selectedRows = get
|
|
23
|
+
const selectedRows = get(selectedData);
|
|
25
24
|
if (!selectedRows || selectedRows.length === 0) return false;
|
|
26
|
-
const selected = get
|
|
27
|
-
return get
|
|
25
|
+
const selected = get(selectedSet);
|
|
26
|
+
return get(visibleIdentifiers).every((id) => selected.has(id));
|
|
28
27
|
});
|
|
29
28
|
const indeterminate = computed(() => {
|
|
30
|
-
const selectedRows = get
|
|
29
|
+
const selectedRows = get(selectedData);
|
|
31
30
|
if (!selectedRows) return false;
|
|
32
|
-
return selectedRows.length > 0 && !get
|
|
31
|
+
return selectedRows.length > 0 && !get(isAllSelected);
|
|
33
32
|
});
|
|
34
33
|
function isSelected(identifier) {
|
|
35
|
-
return get
|
|
34
|
+
return get(selectedSet).has(identifier);
|
|
36
35
|
}
|
|
37
36
|
function isDisabledRow(rowKey) {
|
|
38
|
-
return get
|
|
37
|
+
return get(disabledRowKeySet).has(rowKey);
|
|
39
38
|
}
|
|
40
39
|
function isSelectable(rowKey) {
|
|
41
40
|
return isSelected(rowKey) || !isDisabledRow(rowKey);
|
|
@@ -44,30 +43,30 @@ function useTableSelection(options, deps) {
|
|
|
44
43
|
return isSelected(rowKey) && isDisabledRow(rowKey);
|
|
45
44
|
}
|
|
46
45
|
function resetCheckboxShiftState() {
|
|
47
|
-
set
|
|
48
|
-
set
|
|
46
|
+
set(shiftClicked, false);
|
|
47
|
+
set(lastSelectedIndex, -1);
|
|
49
48
|
}
|
|
50
49
|
function onToggleAll(checked) {
|
|
51
|
-
const selectedRows = get
|
|
50
|
+
const selectedRows = get(selectedData);
|
|
52
51
|
if (!isDefined(selectedRows)) return;
|
|
53
52
|
if (!multiPageSelect) {
|
|
54
|
-
if (checked) set
|
|
55
|
-
else set
|
|
56
|
-
} else if (checked) set
|
|
53
|
+
if (checked) set(selectedData, get(visibleIdentifiers).filter(isSelectable));
|
|
54
|
+
else set(selectedData, get(visibleIdentifiers).filter(mustSelect));
|
|
55
|
+
} else if (checked) set(selectedData, Array.from(/* @__PURE__ */ new Set([...selectedRows, ...get(visibleIdentifiers).filter(isSelectable)])));
|
|
57
56
|
else {
|
|
58
|
-
const visibleSet = new Set(get
|
|
59
|
-
const mustSelectSet = new Set(get
|
|
60
|
-
set
|
|
57
|
+
const visibleSet = new Set(get(visibleIdentifiers));
|
|
58
|
+
const mustSelectSet = new Set(get(visibleIdentifiers).filter(mustSelect));
|
|
59
|
+
set(selectedData, selectedRows.filter((rowKey) => !visibleSet.has(rowKey) || mustSelectSet.has(rowKey)));
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
function onSelect(checked, value, userAction = false) {
|
|
64
|
-
if (get
|
|
65
|
-
const selectedRows = get
|
|
63
|
+
if (get(shiftClicked) && userAction) return;
|
|
64
|
+
const selectedRows = get(internalSelectedData);
|
|
66
65
|
if (!selectedRows) return;
|
|
67
66
|
const selected = isSelected(value);
|
|
68
|
-
if (checked && !selected) set
|
|
69
|
-
else if (!checked && selected) set
|
|
70
|
-
if (userAction) set
|
|
67
|
+
if (checked && !selected) set(internalSelectedData, [...selectedRows, value]);
|
|
68
|
+
else if (!checked && selected) set(internalSelectedData, selectedRows.filter((r) => r !== value));
|
|
69
|
+
if (userAction) set(selectedData, get(internalSelectedData));
|
|
71
70
|
}
|
|
72
71
|
function onCheckboxClick(event, value, index) {
|
|
73
72
|
const currentTarget = event.currentTarget;
|
|
@@ -76,12 +75,12 @@ function useTableSelection(options, deps) {
|
|
|
76
75
|
const target = event.target;
|
|
77
76
|
const nodeName = target instanceof HTMLElement ? target.nodeName : void 0;
|
|
78
77
|
const shiftKey = event.shiftKey;
|
|
79
|
-
set
|
|
78
|
+
set(shiftClicked, shiftKey);
|
|
80
79
|
if (input && nodeName !== "INPUT") {
|
|
81
80
|
if (shiftKey) scheduleShiftSelect(() => {
|
|
82
|
-
let lastIndex = get
|
|
81
|
+
let lastIndex = get(lastSelectedIndex);
|
|
83
82
|
if (lastIndex === -1) lastIndex = index;
|
|
84
|
-
const tableData = get
|
|
83
|
+
const tableData = get(filtered);
|
|
85
84
|
const lastSelectedData = tableData[lastIndex];
|
|
86
85
|
assert(lastSelectedData);
|
|
87
86
|
if (isRow(lastSelectedData)) {
|
|
@@ -90,7 +89,7 @@ function useTableSelection(options, deps) {
|
|
|
90
89
|
else {
|
|
91
90
|
const from = Math.min(lastIndex, index);
|
|
92
91
|
const to = Math.max(lastIndex, index);
|
|
93
|
-
const currentSelected = get
|
|
92
|
+
const currentSelected = get(internalSelectedData);
|
|
94
93
|
const rangeIds = [];
|
|
95
94
|
for (let i = from; i <= to; i++) {
|
|
96
95
|
const currSelectedData = tableData[i];
|
|
@@ -100,25 +99,25 @@ function useTableSelection(options, deps) {
|
|
|
100
99
|
if (valueToApply) {
|
|
101
100
|
const existing = new Set(currentSelected);
|
|
102
101
|
const toAdd = rangeIds.filter((id) => !existing.has(id));
|
|
103
|
-
set
|
|
102
|
+
set(internalSelectedData, [...currentSelected, ...toAdd]);
|
|
104
103
|
} else {
|
|
105
104
|
const toRemove = new Set(rangeIds);
|
|
106
|
-
set
|
|
105
|
+
set(internalSelectedData, currentSelected.filter((id) => !toRemove.has(id)));
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
|
-
set
|
|
110
|
-
set
|
|
108
|
+
set(lastSelectedIndex, index);
|
|
109
|
+
set(selectedData, get(internalSelectedData));
|
|
111
110
|
}
|
|
112
111
|
}, 1);
|
|
113
|
-
else set
|
|
112
|
+
else set(lastSelectedIndex, index);
|
|
114
113
|
}
|
|
115
114
|
}
|
|
116
115
|
function deselectRemovedRows() {
|
|
117
|
-
const currentSelected = get
|
|
116
|
+
const currentSelected = get(selectedData);
|
|
118
117
|
if (!currentSelected) return;
|
|
119
|
-
const visibleSet = new Set(get
|
|
118
|
+
const visibleSet = new Set(get(visibleIdentifiers));
|
|
120
119
|
const remaining = currentSelected.filter((key) => visibleSet.has(key));
|
|
121
|
-
if (remaining.length !== currentSelected.length) set
|
|
120
|
+
if (remaining.length !== currentSelected.length) set(selectedData, remaining);
|
|
122
121
|
}
|
|
123
122
|
return {
|
|
124
123
|
visibleIdentifiers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","names":[],"sources":["../../../../src/composables/tables/data-table/selection.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref } from 'vue';\nimport { type GroupedTableRow, isRow } from '@/composables/tables/data-table/types';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { assert } from '@/utils/assert';\n\nexport interface UseTableSelectionOptions<T extends object, IdType extends keyof T> {\n /** The property on each row used as the unique row identifier. */\n rowAttr: IdType;\n /** Whether selection persists across pages. */\n multiPageSelect: boolean;\n /** Rows that cannot be selected or deselected by the user. */\n disabledRows: MaybeRefOrGetter<readonly T[] | undefined>;\n}\n\nexport interface UseTableSelectionDeps<T extends object, IdType extends keyof T> {\n selectedData: Ref<T[IdType][] | undefined>;\n filtered: ComputedRef<GroupedTableRow<T>[]>;\n}\n\nexport interface UseTableSelectionReturn<T extends object, IdType extends keyof T> {\n visibleIdentifiers: ComputedRef<T[IdType][]>;\n isAllSelected: ComputedRef<boolean>;\n indeterminate: ComputedRef<boolean>;\n isSelected: (identifier: T[IdType]) => boolean;\n isDisabledRow: (rowKey: T[IdType]) => boolean;\n isSelectable: (rowKey: T[IdType]) => boolean;\n mustSelect: (rowKey: T[IdType]) => boolean;\n onToggleAll: (checked: boolean) => void;\n onSelect: (checked: boolean, value: T[IdType], userAction?: boolean) => void;\n onCheckboxClick: (event: MouseEvent, value: T[IdType], index: number) => void;\n deselectRemovedRows: () => void;\n resetCheckboxShiftState: () => void;\n}\n\nexport function useTableSelection<T extends object, IdType extends keyof T>(\n options: UseTableSelectionOptions<T, IdType>,\n deps: UseTableSelectionDeps<T, IdType>,\n): UseTableSelectionReturn<T, IdType> {\n const { rowAttr, multiPageSelect, disabledRows } = options;\n const { selectedData, filtered } = deps;\n\n const shiftClicked: Ref<boolean> = shallowRef(false);\n const lastSelectedIndex: Ref<number> = shallowRef(-1);\n const internalSelectedData: Ref<T[IdType][]> = shallowRef([]);\n const { create: scheduleShiftSelect } = useTimeoutManager();\n\n // Sync external selection model to internal state\n watch(selectedData, val => set(internalSelectedData, val ?? []), { immediate: true });\n\n const visibleIdentifiers = computed<T[IdType][]>(() =>\n get(filtered)\n .filter(isRow)\n .map(row => row[rowAttr]),\n );\n\n const selectedSet = computed<Set<T[IdType]>>(() => new Set(get(selectedData) ?? []));\n\n const disabledRowKeySet = computed<Set<T[IdType]>>(() => {\n const currentDisabledRows = toValue(disabledRows);\n if (!currentDisabledRows || !rowAttr)\n return new Set<T[IdType]>();\n return new Set<T[IdType]>(currentDisabledRows.map((row: T) => row[rowAttr]));\n });\n\n const isAllSelected = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows || selectedRows.length === 0)\n return false;\n\n const selected = get(selectedSet);\n return get(visibleIdentifiers).every(id => selected.has(id));\n });\n\n const indeterminate = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows)\n return false;\n\n return selectedRows.length > 0 && !get(isAllSelected);\n });\n\n function isSelected(identifier: T[IdType]): boolean {\n return get(selectedSet).has(identifier);\n }\n\n function isDisabledRow(rowKey: T[IdType]): boolean {\n return get(disabledRowKeySet).has(rowKey);\n }\n\n function isSelectable(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) || !isDisabledRow(rowKey);\n }\n\n function mustSelect(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) && isDisabledRow(rowKey);\n }\n\n function resetCheckboxShiftState(): void {\n set(shiftClicked, false);\n set(lastSelectedIndex, -1);\n }\n\n function onToggleAll(checked: boolean): void {\n const selectedRows = get(selectedData);\n\n if (!isDefined(selectedRows))\n return;\n\n if (!multiPageSelect) {\n if (checked)\n set(selectedData, get(visibleIdentifiers).filter(isSelectable));\n else set(selectedData, get(visibleIdentifiers).filter(mustSelect));\n }\n else {\n if (checked) {\n set(\n selectedData,\n Array.from(new Set([...selectedRows, ...get(visibleIdentifiers).filter(isSelectable)])),\n );\n }\n else {\n const visibleSet = new Set(get(visibleIdentifiers));\n const mustSelectSet = new Set(get(visibleIdentifiers).filter(mustSelect));\n set(\n selectedData,\n selectedRows.filter(rowKey => !visibleSet.has(rowKey) || mustSelectSet.has(rowKey)),\n );\n }\n }\n }\n\n function onSelect(checked: boolean, value: T[IdType], userAction: boolean = false): void {\n if (get(shiftClicked) && userAction)\n return;\n\n const selectedRows = get(internalSelectedData);\n if (!selectedRows)\n return;\n\n const selected = isSelected(value);\n\n if (checked && !selected) {\n set(internalSelectedData, [...selectedRows, value]);\n }\n else if (!checked && selected) {\n set(\n internalSelectedData,\n selectedRows.filter(r => r !== value),\n );\n }\n\n if (userAction)\n set(selectedData, get(internalSelectedData));\n }\n\n function onCheckboxClick(event: MouseEvent, value: T[IdType], index: number): void {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement))\n return;\n\n const input = currentTarget.querySelector('input');\n const target = event.target;\n const nodeName = target instanceof HTMLElement ? target.nodeName : undefined;\n\n const shiftKey = event.shiftKey;\n set(shiftClicked, shiftKey);\n\n if (input && nodeName !== 'INPUT') {\n if (shiftKey) {\n scheduleShiftSelect(() => {\n let lastIndex = get(lastSelectedIndex);\n if (lastIndex === -1)\n lastIndex = index;\n const tableData = get(filtered);\n const lastSelectedData = tableData[lastIndex];\n assert(lastSelectedData);\n\n if (isRow(lastSelectedData)) {\n const valueToApply = isSelected(lastSelectedData[rowAttr]);\n\n if (lastIndex === index) {\n onSelect(!valueToApply, value);\n }\n else {\n const from = Math.min(lastIndex, index);\n const to = Math.max(lastIndex, index);\n\n // Batch: collect all IDs in range, then update once\n const currentSelected = get(internalSelectedData);\n const rangeIds: T[IdType][] = [];\n for (let i = from; i <= to; i++) {\n const currSelectedData = tableData[i];\n assert(currSelectedData);\n if (isRow(currSelectedData) && !isDisabledRow(currSelectedData[rowAttr]))\n rangeIds.push(currSelectedData[rowAttr]);\n }\n\n if (valueToApply) {\n const existing = new Set(currentSelected);\n const toAdd = rangeIds.filter(id => !existing.has(id));\n set(internalSelectedData, [...currentSelected, ...toAdd]);\n }\n else {\n const toRemove = new Set(rangeIds);\n set(internalSelectedData, currentSelected.filter(id => !toRemove.has(id)));\n }\n }\n\n set(lastSelectedIndex, index);\n set(selectedData, get(internalSelectedData));\n }\n }, 1);\n }\n else {\n set(lastSelectedIndex, index);\n }\n }\n }\n\n function deselectRemovedRows(): void {\n const currentSelected = get(selectedData);\n if (!currentSelected)\n return;\n\n const visibleSet = new Set(get(visibleIdentifiers));\n const remaining = currentSelected.filter(key => visibleSet.has(key));\n\n if (remaining.length !== currentSelected.length)\n set(selectedData, remaining);\n }\n\n return {\n visibleIdentifiers,\n isAllSelected,\n indeterminate,\n isSelected,\n isDisabledRow,\n isSelectable,\n mustSelect,\n onToggleAll,\n onSelect,\n onCheckboxClick,\n deselectRemovedRows,\n resetCheckboxShiftState,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selection.js","names":[],"sources":["../../../../src/composables/tables/data-table/selection.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref } from 'vue';\nimport { type GroupedTableRow, isRow } from '@/composables/tables/data-table/types';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { assert } from '@/utils/assert';\n\nexport interface UseTableSelectionOptions<T extends object, IdType extends keyof T> {\n /** The property on each row used as the unique row identifier. */\n rowAttr: IdType;\n /** Whether selection persists across pages. */\n multiPageSelect: boolean;\n /** Rows that cannot be selected or deselected by the user. */\n disabledRows: MaybeRefOrGetter<readonly T[] | undefined>;\n}\n\nexport interface UseTableSelectionDeps<T extends object, IdType extends keyof T> {\n selectedData: Ref<T[IdType][] | undefined>;\n filtered: ComputedRef<GroupedTableRow<T>[]>;\n}\n\nexport interface UseTableSelectionReturn<T extends object, IdType extends keyof T> {\n visibleIdentifiers: ComputedRef<T[IdType][]>;\n isAllSelected: ComputedRef<boolean>;\n indeterminate: ComputedRef<boolean>;\n isSelected: (identifier: T[IdType]) => boolean;\n isDisabledRow: (rowKey: T[IdType]) => boolean;\n isSelectable: (rowKey: T[IdType]) => boolean;\n mustSelect: (rowKey: T[IdType]) => boolean;\n onToggleAll: (checked: boolean) => void;\n onSelect: (checked: boolean, value: T[IdType], userAction?: boolean) => void;\n onCheckboxClick: (event: MouseEvent, value: T[IdType], index: number) => void;\n deselectRemovedRows: () => void;\n resetCheckboxShiftState: () => void;\n}\n\nexport function useTableSelection<T extends object, IdType extends keyof T>(\n options: UseTableSelectionOptions<T, IdType>,\n deps: UseTableSelectionDeps<T, IdType>,\n): UseTableSelectionReturn<T, IdType> {\n const { rowAttr, multiPageSelect, disabledRows } = options;\n const { selectedData, filtered } = deps;\n\n const shiftClicked: Ref<boolean> = shallowRef(false);\n const lastSelectedIndex: Ref<number> = shallowRef(-1);\n const internalSelectedData: Ref<T[IdType][]> = shallowRef([]);\n const { create: scheduleShiftSelect } = useTimeoutManager();\n\n // Sync external selection model to internal state\n watch(selectedData, val => set(internalSelectedData, val ?? []), { immediate: true });\n\n const visibleIdentifiers = computed<T[IdType][]>(() =>\n get(filtered)\n .filter(isRow)\n .map(row => row[rowAttr]),\n );\n\n const selectedSet = computed<Set<T[IdType]>>(() => new Set(get(selectedData) ?? []));\n\n const disabledRowKeySet = computed<Set<T[IdType]>>(() => {\n const currentDisabledRows = toValue(disabledRows);\n if (!currentDisabledRows || !rowAttr)\n return new Set<T[IdType]>();\n return new Set<T[IdType]>(currentDisabledRows.map((row: T) => row[rowAttr]));\n });\n\n const isAllSelected = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows || selectedRows.length === 0)\n return false;\n\n const selected = get(selectedSet);\n return get(visibleIdentifiers).every(id => selected.has(id));\n });\n\n const indeterminate = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows)\n return false;\n\n return selectedRows.length > 0 && !get(isAllSelected);\n });\n\n function isSelected(identifier: T[IdType]): boolean {\n return get(selectedSet).has(identifier);\n }\n\n function isDisabledRow(rowKey: T[IdType]): boolean {\n return get(disabledRowKeySet).has(rowKey);\n }\n\n function isSelectable(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) || !isDisabledRow(rowKey);\n }\n\n function mustSelect(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) && isDisabledRow(rowKey);\n }\n\n function resetCheckboxShiftState(): void {\n set(shiftClicked, false);\n set(lastSelectedIndex, -1);\n }\n\n function onToggleAll(checked: boolean): void {\n const selectedRows = get(selectedData);\n\n if (!isDefined(selectedRows))\n return;\n\n if (!multiPageSelect) {\n if (checked)\n set(selectedData, get(visibleIdentifiers).filter(isSelectable));\n else set(selectedData, get(visibleIdentifiers).filter(mustSelect));\n }\n else {\n if (checked) {\n set(\n selectedData,\n Array.from(new Set([...selectedRows, ...get(visibleIdentifiers).filter(isSelectable)])),\n );\n }\n else {\n const visibleSet = new Set(get(visibleIdentifiers));\n const mustSelectSet = new Set(get(visibleIdentifiers).filter(mustSelect));\n set(\n selectedData,\n selectedRows.filter(rowKey => !visibleSet.has(rowKey) || mustSelectSet.has(rowKey)),\n );\n }\n }\n }\n\n function onSelect(checked: boolean, value: T[IdType], userAction: boolean = false): void {\n if (get(shiftClicked) && userAction)\n return;\n\n const selectedRows = get(internalSelectedData);\n if (!selectedRows)\n return;\n\n const selected = isSelected(value);\n\n if (checked && !selected) {\n set(internalSelectedData, [...selectedRows, value]);\n }\n else if (!checked && selected) {\n set(\n internalSelectedData,\n selectedRows.filter(r => r !== value),\n );\n }\n\n if (userAction)\n set(selectedData, get(internalSelectedData));\n }\n\n function onCheckboxClick(event: MouseEvent, value: T[IdType], index: number): void {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement))\n return;\n\n const input = currentTarget.querySelector('input');\n const target = event.target;\n const nodeName = target instanceof HTMLElement ? target.nodeName : undefined;\n\n const shiftKey = event.shiftKey;\n set(shiftClicked, shiftKey);\n\n if (input && nodeName !== 'INPUT') {\n if (shiftKey) {\n scheduleShiftSelect(() => {\n let lastIndex = get(lastSelectedIndex);\n if (lastIndex === -1)\n lastIndex = index;\n const tableData = get(filtered);\n const lastSelectedData = tableData[lastIndex];\n assert(lastSelectedData);\n\n if (isRow(lastSelectedData)) {\n const valueToApply = isSelected(lastSelectedData[rowAttr]);\n\n if (lastIndex === index) {\n onSelect(!valueToApply, value);\n }\n else {\n const from = Math.min(lastIndex, index);\n const to = Math.max(lastIndex, index);\n\n // Batch: collect all IDs in range, then update once\n const currentSelected = get(internalSelectedData);\n const rangeIds: T[IdType][] = [];\n for (let i = from; i <= to; i++) {\n const currSelectedData = tableData[i];\n assert(currSelectedData);\n if (isRow(currSelectedData) && !isDisabledRow(currSelectedData[rowAttr]))\n rangeIds.push(currSelectedData[rowAttr]);\n }\n\n if (valueToApply) {\n const existing = new Set(currentSelected);\n const toAdd = rangeIds.filter(id => !existing.has(id));\n set(internalSelectedData, [...currentSelected, ...toAdd]);\n }\n else {\n const toRemove = new Set(rangeIds);\n set(internalSelectedData, currentSelected.filter(id => !toRemove.has(id)));\n }\n }\n\n set(lastSelectedIndex, index);\n set(selectedData, get(internalSelectedData));\n }\n }, 1);\n }\n else {\n set(lastSelectedIndex, index);\n }\n }\n }\n\n function deselectRemovedRows(): void {\n const currentSelected = get(selectedData);\n if (!currentSelected)\n return;\n\n const visibleSet = new Set(get(visibleIdentifiers));\n const remaining = currentSelected.filter(key => visibleSet.has(key));\n\n if (remaining.length !== currentSelected.length)\n set(selectedData, remaining);\n }\n\n return {\n visibleIdentifiers,\n isAllSelected,\n indeterminate,\n isSelected,\n isDisabledRow,\n isSelectable,\n mustSelect,\n onToggleAll,\n onSelect,\n onCheckboxClick,\n deselectRemovedRows,\n resetCheckboxShiftState,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { assert } from "../../../utils/assert.js";
|
|
2
|
+
import { get, set } from "../../../vendor/@vueuse/shared/dist/index.js";
|
|
2
3
|
import { SortDirection } from "../../../components/tables/table-props.js";
|
|
3
4
|
import { getObjectKeys } from "./types.js";
|
|
4
5
|
import { computed, toValue } from "vue";
|
|
5
|
-
import { get, set } from "@vueuse/shared";
|
|
6
6
|
//#region src/composables/tables/data-table/sort.ts
|
|
7
7
|
var SORT_COLLATOR = new Intl.Collator(void 0, {
|
|
8
8
|
sensitivity: "accent",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { createSharedComposable, get, set } from "../vendor/@vueuse/shared/dist/index.js";
|
|
2
|
+
import { defaultWindow, getSSRHandler, useColorMode } from "../vendor/@vueuse/core/dist/index.js";
|
|
1
3
|
import { ThemeMode, defaultTheme } from "../types/theme.js";
|
|
2
4
|
import { computed, ref } from "vue";
|
|
3
|
-
import { createSharedComposable, defaultWindow, getSSRHandler, useColorMode } from "@vueuse/core";
|
|
4
|
-
import { get as get$1, set as set$1 } from "@vueuse/shared";
|
|
5
5
|
//#region src/composables/theme.ts
|
|
6
6
|
var config = ref({ ...defaultTheme });
|
|
7
7
|
/**
|
|
@@ -22,15 +22,15 @@ var useRotkiTheme = createSharedComposable(() => {
|
|
|
22
22
|
updateHTMLAttrs("html", "data-theme", mode);
|
|
23
23
|
} });
|
|
24
24
|
/** Whether the system picks the theme rather than the user. */
|
|
25
|
-
const isAutoControlled = computed(() => get
|
|
25
|
+
const isAutoControlled = computed(() => get(store) === ThemeMode.auto);
|
|
26
26
|
/** Whether the light theme is showing. */
|
|
27
|
-
const isLight = computed(() => get
|
|
27
|
+
const isLight = computed(() => get(state) === ThemeMode.light);
|
|
28
28
|
/** Whether the dark theme is showing. */
|
|
29
|
-
const isDark = computed(() => get
|
|
29
|
+
const isDark = computed(() => get(state) === ThemeMode.dark);
|
|
30
30
|
/** The palette the current mode reads from. */
|
|
31
31
|
const theme = computed(() => {
|
|
32
|
-
if (get
|
|
33
|
-
return get
|
|
32
|
+
if (get(isLight)) return get(config).light;
|
|
33
|
+
return get(config).dark;
|
|
34
34
|
});
|
|
35
35
|
/**
|
|
36
36
|
* Switches the theme.
|
|
@@ -38,15 +38,15 @@ var useRotkiTheme = createSharedComposable(() => {
|
|
|
38
38
|
* @param mode - the mode to switch to; an empty mode falls back to auto
|
|
39
39
|
*/
|
|
40
40
|
const switchThemeScheme = (mode) => {
|
|
41
|
-
set
|
|
41
|
+
set(store, mode || ThemeMode.auto);
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* toggle between auto|light|dark
|
|
45
45
|
*/
|
|
46
46
|
const toggleThemeMode = () => {
|
|
47
|
-
if (get
|
|
48
|
-
else if (get
|
|
49
|
-
else if (get
|
|
47
|
+
if (get(isAutoControlled)) switchThemeScheme(ThemeMode.light);
|
|
48
|
+
else if (get(isLight)) switchThemeScheme(ThemeMode.dark);
|
|
49
|
+
else if (get(isDark)) switchThemeScheme(ThemeMode.auto);
|
|
50
50
|
};
|
|
51
51
|
/**
|
|
52
52
|
* Replaces the palettes the theme draws from.
|
|
@@ -54,7 +54,7 @@ var useRotkiTheme = createSharedComposable(() => {
|
|
|
54
54
|
* @param newConfig - the light and dark palettes to use
|
|
55
55
|
*/
|
|
56
56
|
const setThemeConfig = (newConfig) => {
|
|
57
|
-
set
|
|
57
|
+
set(config, newConfig);
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
60
60
|
* Sets the theme up. Call once, from the app's entry point.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","names":[],"sources":["../../src/composables/theme.ts"],"sourcesContent":["import { defaultWindow, getSSRHandler, useColorMode } from '@vueuse/core';\nimport { computed, type ComputedRef, type Ref, ref } from 'vue';\nimport {\n defaultTheme,\n type InitThemeOptions,\n type ThemeConfig,\n type ThemeContent,\n type ThemeData,\n ThemeMode,\n} from '@/types/theme';\n\nconst config: Ref<ThemeConfig> = ref({ ...defaultTheme });\n\n/**\n * The theme manager: the current mode and palette, and the calls that change\n * them. Shared, so every caller reads and writes the same theme.\n *\n * @returns the theme state and the operations on it\n */\nexport const useRotkiTheme = createSharedComposable<() => ThemeContent>(() => {\n const updateHTMLAttrs = getSSRHandler(\n 'updateHTMLAttrs',\n (selector, attribute, value) => {\n if (typeof selector !== 'string' || !defaultWindow)\n return;\n\n const el = defaultWindow.document.querySelector(selector);\n if (!el)\n return;\n\n el.setAttribute(attribute, value);\n },\n );\n\n const { state, store } = useColorMode<ThemeMode>({\n onChanged(mode, defaultHandler) {\n defaultHandler(mode);\n updateHTMLAttrs('html', 'data-theme', mode);\n },\n });\n\n /** Whether the system picks the theme rather than the user. */\n const isAutoControlled: ComputedRef<boolean> = computed(() => get(store) === ThemeMode.auto);\n\n /** Whether the light theme is showing. */\n const isLight: ComputedRef<boolean> = computed(() => get(state) === ThemeMode.light);\n\n /** Whether the dark theme is showing. */\n const isDark: ComputedRef<boolean> = computed(() => get(state) === ThemeMode.dark);\n\n /** The palette the current mode reads from. */\n const theme: ComputedRef<ThemeData> = computed(() => {\n if (get(isLight))\n return get(config).light;\n\n return get(config).dark;\n });\n\n /**\n * Switches the theme.\n *\n * @param mode - the mode to switch to; an empty mode falls back to auto\n */\n const switchThemeScheme = (mode: ThemeMode): void => {\n set(store, mode || ThemeMode.auto);\n };\n\n /**\n * toggle between auto|light|dark\n */\n const toggleThemeMode = (): void => {\n if (get(isAutoControlled))\n switchThemeScheme(ThemeMode.light);\n else if (get(isLight))\n switchThemeScheme(ThemeMode.dark);\n else if (get(isDark))\n switchThemeScheme(ThemeMode.auto);\n };\n\n /**\n * Replaces the palettes the theme draws from.\n *\n * @param newConfig - the light and dark palettes to use\n */\n const setThemeConfig = (newConfig: ThemeConfig): void => {\n set(config, newConfig);\n };\n\n /**\n * Sets the theme up. Call once, from the app's entry point.\n *\n * @param options - the starting mode and palettes; each falls back to its\n * default when left out\n */\n const init = (options: InitThemeOptions): void => {\n switchThemeScheme(options.mode ?? ThemeMode.auto);\n setThemeConfig(options.config ?? { ...defaultTheme });\n };\n\n return {\n config,\n init,\n isAutoControlled,\n isDark,\n isLight,\n setThemeConfig,\n state,\n store,\n switchThemeScheme,\n theme,\n toggleThemeMode,\n };\n});\n"],"mappings":";;;;;AAWA,IAAM,SAA2B,IAAI,EAAE,GAAG,aAAa,CAAC;;;;;;;AAQxD,IAAa,gBAAgB,6BAAiD;CAC5E,MAAM,kBAAkB,cACtB,oBACC,UAAU,WAAW,UAAU;EAC9B,IAAI,OAAO,aAAa,YAAY,CAAC,eACnC;EAEF,MAAM,KAAK,cAAc,SAAS,cAAc,QAAQ;EACxD,IAAI,CAAC,IACH;EAEF,GAAG,aAAa,WAAW,KAAK;CAClC,CACF;CAEA,MAAM,EAAE,OAAO,UAAU,aAAwB,EAC/C,UAAU,MAAM,gBAAgB;EAC9B,eAAe,IAAI;EACnB,gBAAgB,QAAQ,cAAc,IAAI;CAC5C,EACF,CAAC;;CAGD,MAAM,mBAAyC,eAAe,
|
|
1
|
+
{"version":3,"file":"theme.js","names":[],"sources":["../../src/composables/theme.ts"],"sourcesContent":["import { defaultWindow, getSSRHandler, useColorMode } from '@vueuse/core';\nimport { computed, type ComputedRef, type Ref, ref } from 'vue';\nimport {\n defaultTheme,\n type InitThemeOptions,\n type ThemeConfig,\n type ThemeContent,\n type ThemeData,\n ThemeMode,\n} from '@/types/theme';\n\nconst config: Ref<ThemeConfig> = ref({ ...defaultTheme });\n\n/**\n * The theme manager: the current mode and palette, and the calls that change\n * them. Shared, so every caller reads and writes the same theme.\n *\n * @returns the theme state and the operations on it\n */\nexport const useRotkiTheme = createSharedComposable<() => ThemeContent>(() => {\n const updateHTMLAttrs = getSSRHandler(\n 'updateHTMLAttrs',\n (selector, attribute, value) => {\n if (typeof selector !== 'string' || !defaultWindow)\n return;\n\n const el = defaultWindow.document.querySelector(selector);\n if (!el)\n return;\n\n el.setAttribute(attribute, value);\n },\n );\n\n const { state, store } = useColorMode<ThemeMode>({\n onChanged(mode, defaultHandler) {\n defaultHandler(mode);\n updateHTMLAttrs('html', 'data-theme', mode);\n },\n });\n\n /** Whether the system picks the theme rather than the user. */\n const isAutoControlled: ComputedRef<boolean> = computed(() => get(store) === ThemeMode.auto);\n\n /** Whether the light theme is showing. */\n const isLight: ComputedRef<boolean> = computed(() => get(state) === ThemeMode.light);\n\n /** Whether the dark theme is showing. */\n const isDark: ComputedRef<boolean> = computed(() => get(state) === ThemeMode.dark);\n\n /** The palette the current mode reads from. */\n const theme: ComputedRef<ThemeData> = computed(() => {\n if (get(isLight))\n return get(config).light;\n\n return get(config).dark;\n });\n\n /**\n * Switches the theme.\n *\n * @param mode - the mode to switch to; an empty mode falls back to auto\n */\n const switchThemeScheme = (mode: ThemeMode): void => {\n set(store, mode || ThemeMode.auto);\n };\n\n /**\n * toggle between auto|light|dark\n */\n const toggleThemeMode = (): void => {\n if (get(isAutoControlled))\n switchThemeScheme(ThemeMode.light);\n else if (get(isLight))\n switchThemeScheme(ThemeMode.dark);\n else if (get(isDark))\n switchThemeScheme(ThemeMode.auto);\n };\n\n /**\n * Replaces the palettes the theme draws from.\n *\n * @param newConfig - the light and dark palettes to use\n */\n const setThemeConfig = (newConfig: ThemeConfig): void => {\n set(config, newConfig);\n };\n\n /**\n * Sets the theme up. Call once, from the app's entry point.\n *\n * @param options - the starting mode and palettes; each falls back to its\n * default when left out\n */\n const init = (options: InitThemeOptions): void => {\n switchThemeScheme(options.mode ?? ThemeMode.auto);\n setThemeConfig(options.config ?? { ...defaultTheme });\n };\n\n return {\n config,\n init,\n isAutoControlled,\n isDark,\n isLight,\n setThemeConfig,\n state,\n store,\n switchThemeScheme,\n theme,\n toggleThemeMode,\n };\n});\n"],"mappings":";;;;;AAWA,IAAM,SAA2B,IAAI,EAAE,GAAG,aAAa,CAAC;;;;;;;AAQxD,IAAa,gBAAgB,6BAAiD;CAC5E,MAAM,kBAAkB,cACtB,oBACC,UAAU,WAAW,UAAU;EAC9B,IAAI,OAAO,aAAa,YAAY,CAAC,eACnC;EAEF,MAAM,KAAK,cAAc,SAAS,cAAc,QAAQ;EACxD,IAAI,CAAC,IACH;EAEF,GAAG,aAAa,WAAW,KAAK;CAClC,CACF;CAEA,MAAM,EAAE,OAAO,UAAU,aAAwB,EAC/C,UAAU,MAAM,gBAAgB;EAC9B,eAAe,IAAI;EACnB,gBAAgB,QAAQ,cAAc,IAAI;CAC5C,EACF,CAAC;;CAGD,MAAM,mBAAyC,eAAe,IAAI,KAAK,MAAM,UAAU,IAAI;;CAG3F,MAAM,UAAgC,eAAe,IAAI,KAAK,MAAM,UAAU,KAAK;;CAGnF,MAAM,SAA+B,eAAe,IAAI,KAAK,MAAM,UAAU,IAAI;;CAGjF,MAAM,QAAgC,eAAe;EACnD,IAAI,IAAI,OAAO,GACb,OAAO,IAAI,MAAM,CAAC,CAAC;EAErB,OAAO,IAAI,MAAM,CAAC,CAAC;CACrB,CAAC;;;;;;CAOD,MAAM,qBAAqB,SAA0B;EACnD,IAAI,OAAO,QAAQ,UAAU,IAAI;CACnC;;;;CAKA,MAAM,wBAA8B;EAClC,IAAI,IAAI,gBAAgB,GACtB,kBAAkB,UAAU,KAAK;OAC9B,IAAI,IAAI,OAAO,GAClB,kBAAkB,UAAU,IAAI;OAC7B,IAAI,IAAI,MAAM,GACjB,kBAAkB,UAAU,IAAI;CACpC;;;;;;CAOA,MAAM,kBAAkB,cAAiC;EACvD,IAAI,QAAQ,SAAS;CACvB;;;;;;;CAQA,MAAM,QAAQ,YAAoC;EAChD,kBAAkB,QAAQ,QAAQ,UAAU,IAAI;EAChD,eAAe,QAAQ,UAAU,EAAE,GAAG,aAAa,CAAC;CACtD;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF,CAAC"}
|
package/dist/consts/colors.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Material palette the library kept from 2.x. Only `grey` is left, because consumers still use
|
|
3
|
+
* it widely; new code takes the zinc `neutral` ramp, and the other Material hues were dropped in 3.0.
|
|
4
|
+
*/
|
|
1
5
|
export declare const baseColors: string[];
|
|
2
6
|
export declare const baseColorsIntensities: string[];
|
|
3
7
|
/**
|
package/dist/consts/colors.js
CHANGED
|
@@ -1,40 +1,4 @@
|
|
|
1
1
|
//#region src/consts/colors.ts
|
|
2
|
-
var baseColors = [
|
|
3
|
-
"grey",
|
|
4
|
-
"indigo",
|
|
5
|
-
"deep-purple",
|
|
6
|
-
"amber",
|
|
7
|
-
"orange",
|
|
8
|
-
"pink",
|
|
9
|
-
"deep-orange",
|
|
10
|
-
"green",
|
|
11
|
-
"red",
|
|
12
|
-
"light-green",
|
|
13
|
-
"purple",
|
|
14
|
-
"lime",
|
|
15
|
-
"light-blue",
|
|
16
|
-
"yellow",
|
|
17
|
-
"cyan",
|
|
18
|
-
"teal",
|
|
19
|
-
"blue",
|
|
20
|
-
"blue-gray"
|
|
21
|
-
];
|
|
22
|
-
var baseColorsIntensities = [
|
|
23
|
-
"50",
|
|
24
|
-
"100",
|
|
25
|
-
"200",
|
|
26
|
-
"300",
|
|
27
|
-
"400",
|
|
28
|
-
"500",
|
|
29
|
-
"600",
|
|
30
|
-
"700",
|
|
31
|
-
"800",
|
|
32
|
-
"900",
|
|
33
|
-
"a100",
|
|
34
|
-
"a200",
|
|
35
|
-
"a400",
|
|
36
|
-
"a700"
|
|
37
|
-
];
|
|
38
2
|
/**
|
|
39
3
|
* The available context colors.
|
|
40
4
|
* Keep in sync with build-web-types.mjs
|
|
@@ -48,6 +12,6 @@ var contextColors = [
|
|
|
48
12
|
"success"
|
|
49
13
|
];
|
|
50
14
|
//#endregion
|
|
51
|
-
export {
|
|
15
|
+
export { contextColors };
|
|
52
16
|
|
|
53
17
|
//# sourceMappingURL=colors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","names":[],"sources":["../../src/consts/colors.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"colors.js","names":[],"sources":["../../src/consts/colors.ts"],"sourcesContent":["/**\n * The Material palette the library kept from 2.x. Only `grey` is left, because consumers still use\n * it widely; new code takes the zinc `neutral` ramp, and the other Material hues were dropped in 3.0.\n */\nexport const baseColors = [\n 'grey',\n];\n\nexport const baseColorsIntensities = [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n 'a100',\n 'a200',\n 'a400',\n 'a700',\n];\n\n/**\n * The available context colors.\n * Keep in sync with build-web-types.mjs\n */\nexport const contextColors = [\n 'primary',\n 'secondary',\n 'error',\n 'warning',\n 'info',\n 'success',\n] as const;\n\nexport type ContextColorsType = (typeof contextColors)[number];\n\nexport const contextColorsIntensities = [\n { name: 'Regular', prefix: '' },\n { name: 'Darker', prefix: '-darker' },\n { name: 'Lighter', prefix: '-lighter' },\n];\n"],"mappings":";;;;;AA6BA,IAAa,gBAAgB;CAC3B;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The theme's role tokens, named here so the generated theme and the class
|
|
3
|
+
* merger agree on them: `rounded-rui-control` and `shadow-rui-menu` only
|
|
4
|
+
* dedupe against `rounded-full` or `shadow-lg` when the merger knows the names.
|
|
5
|
+
*/
|
|
6
|
+
export declare const radiusRoles: readonly ["control", "panel", "card", "sm", "lg"];
|
|
7
|
+
export type RadiusRole = (typeof radiusRoles)[number];
|
|
8
|
+
export declare const shadowRoles: readonly ["menu", "drawer", "tooltip", "control"];
|
|
9
|
+
export type ShadowRole = (typeof shadowRoles)[number];
|
|
10
|
+
/**
|
|
11
|
+
* Surfaces by height: the page, a card, a menu, a drawer or notification. Held
|
|
12
|
+
* as bare channels in `--rui-*`, like the palette.
|
|
13
|
+
*/
|
|
14
|
+
export declare const surfaceColors: readonly ["background", "surface", "menu", "overlay"];
|
|
15
|
+
/** Lines: dividers between rows, and the edge of an outlined control. Held as full colors. */
|
|
16
|
+
export declare const lineColors: readonly ["divider", "outline"];
|
|
17
|
+
/**
|
|
18
|
+
* State layers: translucent fills for a hovered or pressed row, item or chip. Held as full
|
|
19
|
+
* colors. The `state-layer` utility lays one over a fill as a background image, which tints
|
|
20
|
+
* the fill without touching the text, as a `brightness` filter would.
|
|
21
|
+
*/
|
|
22
|
+
export declare const stateColors: readonly ["hover", "pressed"];
|
|
23
|
+
/**
|
|
24
|
+
* Surfaces between the others: `surface-muted` for tracks, wells and quiet chips (a step darker
|
|
25
|
+
* than the card), `surface-sunken` for an inset panel inside a card. Bare channels, per theme.
|
|
26
|
+
*/
|
|
27
|
+
export declare const insetSurfaceColors: readonly ["surface-muted", "surface-sunken"];
|
|
28
|
+
/**
|
|
29
|
+
* The tints of each context color: `subtle` (5%) for a large area like a banner, `soft` (10%) for
|
|
30
|
+
* a selected row or a badge, `border` (30%) for its edge.
|
|
31
|
+
*/
|
|
32
|
+
export declare const contextTints: {
|
|
33
|
+
readonly subtle: 5;
|
|
34
|
+
readonly soft: 10;
|
|
35
|
+
readonly border: 30;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* A categorical palette for charts and legends, eight hues that stay apart from each other and
|
|
39
|
+
* from the status colors, plus a neutral `chart-other` for the rest.
|
|
40
|
+
*/
|
|
41
|
+
export declare const chartColors: readonly ["chart-1", "chart-2", "chart-3", "chart-4", "chart-5", "chart-6", "chart-7", "chart-8", "chart-other"];
|
|
42
|
+
/**
|
|
43
|
+
* The stacking layers, lowest first, as `--rui-z-*` and `z-rui-*`. Everything the library floats
|
|
44
|
+
* sits on one of them, so an app's own fixed parts can slot between instead of guessing a number.
|
|
45
|
+
*/
|
|
46
|
+
export declare const zLayers: readonly ["raised", "floating", "app-bar", "drawer", "dialog", "menu", "tooltip", "toast", "blocking"];
|
|
47
|
+
export type ZLayer = (typeof zLayers)[number];
|
|
48
|
+
/** RuiDialog's width presets, as `--rui-dialog-*` and `max-w-rui-dialog-*`. */
|
|
49
|
+
export declare const dialogSizes: readonly ["sm", "md", "lg", "xl", "2xl"];
|
|
50
|
+
export type DialogSize = (typeof dialogSizes)[number];
|
|
51
|
+
/**
|
|
52
|
+
* The neutral ramp, `rui-neutral-50` to `rui-neutral-950`, for the greys that
|
|
53
|
+
* are not Material's `rui-grey`. Its hue is the one place the restyle picks
|
|
54
|
+
* between zinc and slate.
|
|
55
|
+
*/
|
|
56
|
+
export declare const neutralShades: readonly ["50", "100", "200", "300", "400", "500", "600", "700", "800", "900", "950"];
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region src/consts/tokens.ts
|
|
2
|
+
/**
|
|
3
|
+
* The theme's role tokens, named here so the generated theme and the class
|
|
4
|
+
* merger agree on them: `rounded-rui-control` and `shadow-rui-menu` only
|
|
5
|
+
* dedupe against `rounded-full` or `shadow-lg` when the merger knows the names.
|
|
6
|
+
*/
|
|
7
|
+
var radiusRoles = [
|
|
8
|
+
"control",
|
|
9
|
+
"panel",
|
|
10
|
+
"card",
|
|
11
|
+
"sm",
|
|
12
|
+
"lg"
|
|
13
|
+
];
|
|
14
|
+
var shadowRoles = [
|
|
15
|
+
"menu",
|
|
16
|
+
"drawer",
|
|
17
|
+
"tooltip",
|
|
18
|
+
"control"
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* The stacking layers, lowest first, as `--rui-z-*` and `z-rui-*`. Everything the library floats
|
|
22
|
+
* sits on one of them, so an app's own fixed parts can slot between instead of guessing a number.
|
|
23
|
+
*/
|
|
24
|
+
var zLayers = [
|
|
25
|
+
"raised",
|
|
26
|
+
"floating",
|
|
27
|
+
"app-bar",
|
|
28
|
+
"drawer",
|
|
29
|
+
"dialog",
|
|
30
|
+
"menu",
|
|
31
|
+
"tooltip",
|
|
32
|
+
"toast",
|
|
33
|
+
"blocking"
|
|
34
|
+
];
|
|
35
|
+
/** RuiDialog's width presets, as `--rui-dialog-*` and `max-w-rui-dialog-*`. */
|
|
36
|
+
var dialogSizes = [
|
|
37
|
+
"sm",
|
|
38
|
+
"md",
|
|
39
|
+
"lg",
|
|
40
|
+
"xl",
|
|
41
|
+
"2xl"
|
|
42
|
+
];
|
|
43
|
+
//#endregion
|
|
44
|
+
export { dialogSizes, radiusRoles, shadowRoles, zLayers };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","names":[],"sources":["../../src/consts/tokens.ts"],"sourcesContent":["/**\n * The theme's role tokens, named here so the generated theme and the class\n * merger agree on them: `rounded-rui-control` and `shadow-rui-menu` only\n * dedupe against `rounded-full` or `shadow-lg` when the merger knows the names.\n */\nexport const radiusRoles = ['control', 'panel', 'card', 'sm', 'lg'] as const;\n\nexport type RadiusRole = (typeof radiusRoles)[number];\n\nexport const shadowRoles = ['menu', 'drawer', 'tooltip', 'control'] as const;\n\nexport type ShadowRole = (typeof shadowRoles)[number];\n\n/**\n * Surfaces by height: the page, a card, a menu, a drawer or notification. Held\n * as bare channels in `--rui-*`, like the palette.\n */\nexport const surfaceColors = ['background', 'surface', 'menu', 'overlay'] as const;\n\n/** Lines: dividers between rows, and the edge of an outlined control. Held as full colors. */\nexport const lineColors = ['divider', 'outline'] as const;\n\n/**\n * State layers: translucent fills for a hovered or pressed row, item or chip. Held as full\n * colors. The `state-layer` utility lays one over a fill as a background image, which tints\n * the fill without touching the text, as a `brightness` filter would.\n */\nexport const stateColors = ['hover', 'pressed'] as const;\n\n/**\n * Surfaces between the others: `surface-muted` for tracks, wells and quiet chips (a step darker\n * than the card), `surface-sunken` for an inset panel inside a card. Bare channels, per theme.\n */\nexport const insetSurfaceColors = ['surface-muted', 'surface-sunken'] as const;\n\n/**\n * The tints of each context color: `subtle` (5%) for a large area like a banner, `soft` (10%) for\n * a selected row or a badge, `border` (30%) for its edge.\n */\nexport const contextTints = { subtle: 5, soft: 10, border: 30 } as const;\n\n/**\n * A categorical palette for charts and legends, eight hues that stay apart from each other and\n * from the status colors, plus a neutral `chart-other` for the rest.\n */\nexport const chartColors = ['chart-1', 'chart-2', 'chart-3', 'chart-4', 'chart-5', 'chart-6', 'chart-7', 'chart-8', 'chart-other'] as const;\n\n/**\n * The stacking layers, lowest first, as `--rui-z-*` and `z-rui-*`. Everything the library floats\n * sits on one of them, so an app's own fixed parts can slot between instead of guessing a number.\n */\nexport const zLayers = ['raised', 'floating', 'app-bar', 'drawer', 'dialog', 'menu', 'tooltip', 'toast', 'blocking'] as const;\n\nexport type ZLayer = (typeof zLayers)[number];\n\n/** RuiDialog's width presets, as `--rui-dialog-*` and `max-w-rui-dialog-*`. */\nexport const dialogSizes = ['sm', 'md', 'lg', 'xl', '2xl'] as const;\n\nexport type DialogSize = (typeof dialogSizes)[number];\n\n/**\n * The neutral ramp, `rui-neutral-50` to `rui-neutral-950`, for the greys that\n * are not Material's `rui-grey`. Its hue is the one place the restyle picks\n * between zinc and slate.\n */\nexport const neutralShades = ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900', '950'] as const;\n"],"mappings":";;;;;;AAKA,IAAa,cAAc;CAAC;CAAW;CAAS;CAAQ;CAAM;AAAI;AAIlE,IAAa,cAAc;CAAC;CAAQ;CAAU;CAAW;AAAS;;;;;AA0ClE,IAAa,UAAU;CAAC;CAAU;CAAY;CAAW;CAAU;CAAU;CAAQ;CAAW;CAAS;AAAU;;AAKnH,IAAa,cAAc;CAAC;CAAM;CAAM;CAAM;CAAM;AAAK"}
|
|
@@ -1,38 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type scale, largest first, as the typography docs page lists it: each utility with its size,
|
|
3
|
+
* line height and weight in pixels, and what it is for.
|
|
4
|
+
*/
|
|
1
5
|
export declare const typographyClasses: readonly [{
|
|
2
|
-
readonly className: "text-body-1";
|
|
3
|
-
readonly name: "Body 1";
|
|
4
|
-
}, {
|
|
5
|
-
readonly className: "text-body-2";
|
|
6
|
-
readonly name: "Body 2";
|
|
7
|
-
}, {
|
|
8
|
-
readonly className: "text-subtitle-1";
|
|
9
|
-
readonly name: "Subtitle 1";
|
|
10
|
-
}, {
|
|
11
|
-
readonly className: "text-subtitle-2";
|
|
12
|
-
readonly name: "Subtitle 2";
|
|
13
|
-
}, {
|
|
14
|
-
readonly className: "text-caption";
|
|
15
|
-
readonly name: "Caption";
|
|
16
|
-
}, {
|
|
17
|
-
readonly className: "text-overline";
|
|
18
|
-
readonly name: "Overline";
|
|
19
|
-
}, {
|
|
20
6
|
readonly className: "text-h1";
|
|
21
7
|
readonly name: "H1";
|
|
8
|
+
readonly spec: "60 / 72 semibold";
|
|
9
|
+
readonly use: "Marketing heroes";
|
|
22
10
|
}, {
|
|
23
11
|
readonly className: "text-h2";
|
|
24
12
|
readonly name: "H2";
|
|
13
|
+
readonly spec: "48 / 56 semibold";
|
|
14
|
+
readonly use: "Landing page sections";
|
|
25
15
|
}, {
|
|
26
16
|
readonly className: "text-h3";
|
|
27
17
|
readonly name: "H3";
|
|
18
|
+
readonly spec: "36 / 44 semibold";
|
|
19
|
+
readonly use: "Large numbers, empty states";
|
|
28
20
|
}, {
|
|
29
21
|
readonly className: "text-h4";
|
|
30
22
|
readonly name: "H4";
|
|
23
|
+
readonly spec: "30 / 38 semibold";
|
|
24
|
+
readonly use: "Page titles on wide screens";
|
|
31
25
|
}, {
|
|
32
26
|
readonly className: "text-h5";
|
|
33
27
|
readonly name: "H5";
|
|
28
|
+
readonly spec: "24 / 32 semibold";
|
|
29
|
+
readonly use: "Page titles";
|
|
34
30
|
}, {
|
|
35
31
|
readonly className: "text-h6";
|
|
36
32
|
readonly name: "H6";
|
|
33
|
+
readonly spec: "20 / 32 semibold";
|
|
34
|
+
readonly use: "Card and dialog titles";
|
|
35
|
+
}, {
|
|
36
|
+
readonly className: "text-subtitle-1";
|
|
37
|
+
readonly name: "Subtitle 1";
|
|
38
|
+
readonly spec: "16 / 28 medium";
|
|
39
|
+
readonly use: "Section headings";
|
|
40
|
+
}, {
|
|
41
|
+
readonly className: "text-subtitle-2";
|
|
42
|
+
readonly name: "Subtitle 2";
|
|
43
|
+
readonly spec: "14 / 20 medium";
|
|
44
|
+
readonly use: "Labels, table headers";
|
|
45
|
+
}, {
|
|
46
|
+
readonly className: "text-body-1";
|
|
47
|
+
readonly name: "Body 1";
|
|
48
|
+
readonly spec: "16 / 24 regular";
|
|
49
|
+
readonly use: "Running text";
|
|
50
|
+
}, {
|
|
51
|
+
readonly className: "text-body-2";
|
|
52
|
+
readonly name: "Body 2";
|
|
53
|
+
readonly spec: "14 / 20 regular";
|
|
54
|
+
readonly use: "Controls, tables, dense text";
|
|
55
|
+
}, {
|
|
56
|
+
readonly className: "text-caption";
|
|
57
|
+
readonly name: "Caption";
|
|
58
|
+
readonly spec: "12 / 20 regular";
|
|
59
|
+
readonly use: "Hints, timestamps, help text";
|
|
60
|
+
}, {
|
|
61
|
+
readonly className: "text-caption-2";
|
|
62
|
+
readonly name: "Caption 2";
|
|
63
|
+
readonly spec: "10 / 16 regular";
|
|
64
|
+
readonly use: "Dense tags, axis labels";
|
|
65
|
+
}, {
|
|
66
|
+
readonly className: "text-overline";
|
|
67
|
+
readonly name: "Overline";
|
|
68
|
+
readonly spec: "12 / 32 medium, tracked";
|
|
69
|
+
readonly use: "Eyebrows above a heading";
|
|
37
70
|
}];
|
|
38
71
|
export type TypographyClass = (typeof typographyClasses)[number];
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import type { App } from 'vue';
|
|
2
2
|
import type { InitThemeOptions } from './types/theme.js';
|
|
3
|
+
import { type FieldOptions } from './composables/defaults/field.js';
|
|
3
4
|
import { type LogoOptions } from './composables/defaults/logo.js';
|
|
4
5
|
import { type TableOptions } from './composables/defaults/table.js';
|
|
5
|
-
import { StepperState } from './types/stepper.js';
|
|
6
|
+
import { StepperOrientation, StepperState, type StepperStep } from './types/stepper.js';
|
|
6
7
|
import './style.css';
|
|
7
8
|
export * from './components/index.js';
|
|
8
9
|
export { activatorHandlers, type ActivatorHandlers } from './components/overlays/menu/activator-handlers.js';
|
|
9
10
|
export * from './composables/index.js';
|
|
11
|
+
export { type FieldOptions, type LabelPlacement, provideFieldDefaults } from './composables/defaults/field.js';
|
|
10
12
|
export type { LogoOptions, LogoResolver } from './composables/defaults/logo.js';
|
|
11
13
|
export { contextColors, type ContextColorsType } from './consts/colors.js';
|
|
12
14
|
export { translationKeys } from './i18n/keys.js';
|
|
13
15
|
export * from './icons/index.js';
|
|
14
|
-
export { StepperState };
|
|
16
|
+
export { StepperOrientation, StepperState, type StepperStep };
|
|
15
17
|
export type { VueClassValue } from './types/class-value';
|
|
16
18
|
export { type InitThemeOptions, type ThemeConfig, type ThemeContent, type ThemeData, ThemeMode, } from './types/theme.js';
|
|
17
19
|
export { createBlockie } from './utils/blockie.js';
|
|
@@ -21,6 +23,8 @@ export interface RuiOptions {
|
|
|
21
23
|
theme?: InitThemeOptions;
|
|
22
24
|
defaults?: {
|
|
23
25
|
table?: Partial<TableOptions>;
|
|
26
|
+
/** `labelPlacement` for every text field, text area, select and picker; `top` when unset. */
|
|
27
|
+
field?: Partial<FieldOptions>;
|
|
24
28
|
};
|
|
25
29
|
/**
|
|
26
30
|
* Where `RuiLogo` gets the image for its `logo` prop. Without it every
|
|
@@ -32,6 +36,7 @@ export declare function createRui(options?: RuiOptions): {
|
|
|
32
36
|
defaults: Readonly<{
|
|
33
37
|
icons: import("./composables/icons.js").UseIconsReturn;
|
|
34
38
|
table: TableOptions;
|
|
39
|
+
field: FieldOptions;
|
|
35
40
|
}>;
|
|
36
41
|
install: (app: App) => void;
|
|
37
42
|
};
|