ropav 0.0.8 → 0.0.10
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/dist/accordion.css +10 -10
- package/dist/accordion.js +2 -2
- package/dist/alert.css +109 -0
- package/dist/alert.js +168 -0
- package/dist/aspect-ratio.css +17 -0
- package/dist/aspect-ratio.js +26 -0
- package/dist/avatar.css +97 -0
- package/dist/avatar.js +161 -0
- package/dist/badge.css +40 -115
- package/dist/badge.js +19 -16
- package/dist/base.css +609 -180
- package/dist/button-link.css +161 -0
- package/dist/button-link.js +108 -0
- package/dist/button.css +50 -229
- package/dist/button.js +7 -9
- package/dist/card.css +12 -12
- package/dist/check.js +12 -0
- package/dist/checkbox.css +16 -57
- package/dist/checkbox.js +14 -31
- package/dist/collapse.css +2 -2
- package/dist/collapse.js +1 -1
- package/dist/color-input.css +108 -0
- package/dist/color-input.js +349 -0
- package/dist/color-picker.css +304 -0
- package/dist/color-picker.js +797 -0
- package/dist/color-picker2.js +18 -0
- package/dist/color-swatch.css +50 -0
- package/dist/color-swatch.js +73 -0
- package/dist/color.js +190 -0
- package/dist/componentColors.js +206 -13
- package/dist/components/accordion/accordion-item.d.ts +4 -4
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/index.d.ts +4 -4
- package/dist/components/accordion/types.d.ts +1 -1
- package/dist/components/accordion/useAccordion.d.ts +1 -1
- package/dist/components/alert/alert.d.ts +30 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/types.d.ts +20 -0
- package/dist/components/alert/useAlertColor.d.ts +3 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +21 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/aspect-ratio/index.js +2 -0
- package/dist/components/aspect-ratio/types.d.ts +3 -0
- package/dist/components/avatar/avatar.d.ts +24 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/types.d.ts +20 -0
- package/dist/components/avatar/useAvatarColor.d.ts +3 -0
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/badge/index.d.ts +3 -3
- package/dist/components/badge/types.d.ts +3 -2
- package/dist/components/badge/useBadgeColor.d.ts +3 -8
- package/dist/components/button/button.d.ts +1 -1
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/button/types.d.ts +2 -1
- package/dist/components/button/useButtonColor.d.ts +3 -13
- package/dist/components/button-group/button-group.d.ts +1 -1
- package/dist/components/button-group/index.d.ts +2 -2
- package/dist/components/button-link/button-link.d.ts +27 -0
- package/dist/components/button-link/index.d.ts +2 -0
- package/dist/components/button-link/index.js +2 -0
- package/dist/components/button-link/types.d.ts +20 -0
- package/dist/components/card/card.d.ts +1 -1
- package/dist/components/card/index.d.ts +2 -2
- package/dist/components/checkbox/checkbox.d.ts +1 -1
- package/dist/components/checkbox/index.d.ts +2 -2
- package/dist/components/checkbox/types.d.ts +2 -1
- package/dist/components/checkbox/useCheckbox.d.ts +4 -6
- package/dist/components/collapse/collapse.d.ts +2 -2
- package/dist/components/collapse/index.d.ts +3 -3
- package/dist/components/collapse/useCollapse.d.ts +1 -1
- package/dist/components/color-input/color-input.d.ts +29 -0
- package/dist/components/color-input/index.d.ts +2 -0
- package/dist/components/color-input/index.js +2 -0
- package/dist/components/color-input/types.d.ts +35 -0
- package/dist/components/color-input/useColorInput.d.ts +27 -0
- package/dist/components/color-input/useColorInputEyeDropper.d.ts +13 -0
- package/dist/components/color-input/useColorInputPopover.d.ts +11 -0
- package/dist/components/color-input/useColorInputValue.d.ts +8 -0
- package/dist/components/color-picker/color-picker-saturation.d.ts +21 -0
- package/dist/components/color-picker/color-picker-slider.d.ts +21 -0
- package/dist/components/color-picker/color-picker-utils.d.ts +23 -0
- package/dist/components/color-picker/color-picker.d.ts +23 -0
- package/dist/components/color-picker/index.d.ts +3 -0
- package/dist/components/color-picker/index.js +3 -0
- package/dist/components/color-picker/types.d.ts +39 -0
- package/dist/components/color-picker/useColorPickerDrag.d.ts +16 -0
- package/dist/components/color-picker/useColorPickerSwatches.d.ts +21 -0
- package/dist/components/color-picker/useColorPickerValue.d.ts +15 -0
- package/dist/components/color-swatch/color-swatch.d.ts +21 -0
- package/dist/components/color-swatch/index.d.ts +2 -0
- package/dist/components/color-swatch/index.js +2 -0
- package/dist/components/color-swatch/types.d.ts +6 -0
- package/dist/components/color-swatch/useColorSwatchColor.d.ts +5 -0
- package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +15 -6
- package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
- package/dist/components/dropdown-menu/index.d.ts +3 -3
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -10
- package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +3 -3
- package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +12 -4
- package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +3 -3
- package/dist/components/field/field.d.ts +2 -2
- package/dist/components/field/index.d.ts +2 -2
- package/dist/components/field/types.d.ts +0 -2
- package/dist/components/field/useField.d.ts +1 -3
- package/dist/components/icon-button/icon-button.d.ts +1 -1
- package/dist/components/icon-button/index.d.ts +2 -2
- package/dist/components/icon-button/types.d.ts +2 -1
- package/dist/components/input/index.d.ts +2 -2
- package/dist/components/input/input.d.ts +1 -1
- package/dist/components/input/types.d.ts +3 -0
- package/dist/components/input/useInput.d.ts +2 -2
- package/dist/components/modal/index.d.ts +2 -2
- package/dist/components/modal/modal.d.ts +1 -1
- package/dist/components/modal/types.d.ts +1 -1
- package/dist/components/modal/useModal.d.ts +1 -1
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/number-input/index.js +2 -0
- package/dist/components/number-input/number-input.d.ts +29 -0
- package/dist/components/number-input/types.d.ts +34 -0
- package/dist/components/number-input/useNumberInput.d.ts +31 -0
- package/dist/components/overlay/index.d.ts +2 -2
- package/dist/components/overlay/overlay.d.ts +1 -1
- package/dist/components/overlay/useOverlay.d.ts +1 -1
- package/dist/components/popover/index.d.ts +3 -2
- package/dist/components/popover/index.js +2 -1
- package/dist/components/popover/popover.d.ts +2 -2
- package/dist/components/popover/types.d.ts +3 -1
- package/dist/components/popover/usePopover.d.ts +2 -1
- package/dist/components/progress/index.d.ts +3 -3
- package/dist/components/progress/progress.d.ts +1 -1
- package/dist/components/progress/types.d.ts +2 -2
- package/dist/components/progress/useProgress.d.ts +2 -2
- package/dist/components/radio/index.d.ts +3 -3
- package/dist/components/radio/radio-group.d.ts +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/radio/types.d.ts +4 -1
- package/dist/components/radio/useRadio.d.ts +4 -6
- package/dist/components/select/index.d.ts +2 -2
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/select/types.d.ts +3 -0
- package/dist/components/select/useSelect.d.ts +2 -2
- package/dist/components/slider/index.d.ts +4 -3
- package/dist/components/slider/index.js +2 -2
- package/dist/components/slider/range-slider-tooltip.d.ts +34 -0
- package/dist/components/slider/range-slider.d.ts +37 -0
- package/dist/components/slider/slider.d.ts +1 -1
- package/dist/components/slider/sliderCore.d.ts +35 -0
- package/dist/components/slider/types.d.ts +15 -6
- package/dist/components/slider/useRangeSlider.d.ts +57 -0
- package/dist/components/slider/useRangeSliderPointer.d.ts +19 -0
- package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +36 -0
- package/dist/components/slider/useRangeSliderTooltipState.d.ts +23 -0
- package/dist/components/slider/useSlider.d.ts +11 -15
- package/dist/components/switch/index.d.ts +2 -2
- package/dist/components/switch/switch.d.ts +1 -1
- package/dist/components/switch/types.d.ts +1 -1
- package/dist/components/switch/useSwitch.d.ts +4 -5
- package/dist/components/tabs/index.d.ts +6 -6
- package/dist/components/tabs/tabs-content.d.ts +2 -2
- package/dist/components/tabs/tabs-list.d.ts +4 -4
- package/dist/components/tabs/tabs-trigger.d.ts +5 -5
- package/dist/components/tabs/tabs.d.ts +5 -5
- package/dist/components/tabs/useTabs.d.ts +1 -1
- package/dist/components/textarea/index.d.ts +2 -2
- package/dist/components/textarea/textarea.d.ts +1 -1
- package/dist/components/textarea/useTextarea.d.ts +2 -2
- package/dist/components/toast/defaults.d.ts +7 -0
- package/dist/components/toast/index.d.ts +7 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/toast-provider.d.ts +21 -0
- package/dist/components/toast/toast-viewport.d.ts +34 -0
- package/dist/components/toast/toast.d.ts +31 -0
- package/dist/components/toast/types.d.ts +106 -0
- package/dist/components/toast/useToast.d.ts +4 -0
- package/dist/components/toast/useToastColor.d.ts +3 -0
- package/dist/components/toast/useToastState.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts +2 -2
- package/dist/components/tooltip/tooltip.d.ts +2 -2
- package/dist/components/tooltip/types.d.ts +2 -1
- package/dist/components/tooltip/useTooltip.d.ts +3 -1
- package/dist/dropdown-menu.css +17 -17
- package/dist/dropdown-menu.js +160 -39
- package/dist/field.css +15 -18
- package/dist/field.js +17 -35
- package/dist/icon-button.css +57 -236
- package/dist/icon-button.js +5 -6
- package/dist/index.d.ts +31 -22
- package/dist/index.js +17 -4
- package/dist/input.css +40 -46
- package/dist/input.js +39 -21
- package/dist/minus.js +12 -0
- package/dist/modal.css +9 -9
- package/dist/modal.js +1 -1
- package/dist/number-input.css +86 -0
- package/dist/number-input.js +350 -0
- package/dist/overlay.css +5 -5
- package/dist/overlay.js +3 -3
- package/dist/popover.css +62 -29
- package/dist/popover.js +33 -19
- package/dist/popover2.js +17 -0
- package/dist/progress.css +9 -30
- package/dist/progress.js +3 -6
- package/dist/radio.css +34 -62
- package/dist/radio.js +28 -16
- package/dist/rafScheduler.js +34 -0
- package/dist/select.css +105 -61
- package/dist/select.js +12 -8
- package/dist/slider.css +719 -125
- package/dist/slider.js +1251 -149
- package/dist/switch.css +19 -44
- package/dist/switch.js +4 -5
- package/dist/tabs.css +36 -36
- package/dist/tabs.js +1 -1
- package/dist/textarea.css +33 -25
- package/dist/textarea.js +8 -2
- package/dist/toast.css +232 -0
- package/dist/toast.js +679 -0
- package/dist/tooltip.css +7 -35
- package/dist/tooltip.js +30 -18
- package/dist/useButtonColor.js +16 -14
- package/dist/utils/componentColors.d.ts +60 -0
- package/package.json +55 -15
- package/src/styles/_mixins.scss +25 -41
- package/src/styles/_tokens.scss +615 -182
- package/src/styles/_variables.scss +177 -49
package/dist/accordion.css
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
overflow: hidden;
|
|
8
8
|
font-family: var(--rp-font-family);
|
|
9
9
|
color: var(--rp-color-text);
|
|
10
|
-
background-color: var(--rp-color-
|
|
11
|
-
border: var(--rp-border-width-thin) solid var(--rp-color-border);
|
|
10
|
+
background-color: var(--rp-color-default);
|
|
11
|
+
border: var(--rp-border-width-thin) solid var(--rp-color-default-border);
|
|
12
12
|
border-radius: var(--_rp-accordion-radius);
|
|
13
13
|
}
|
|
14
14
|
.rp-accordion--disabled[data-v-c0aaa9d9] {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
--_rp-accordion-duration: var(--rp-transition-fast);
|
|
23
23
|
box-sizing: border-box;
|
|
24
24
|
min-width: 0;
|
|
25
|
-
border-top: var(--rp-border-width-thin) solid var(--rp-color-border);
|
|
25
|
+
border-top: var(--rp-border-width-thin) solid var(--rp-color-default-border);
|
|
26
26
|
}
|
|
27
27
|
.rp-accordion-item[data-v-8528e537]:first-child {
|
|
28
28
|
border-top: 0;
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
.rp-accordion-item--horizontal[data-v-8528e537] {
|
|
31
31
|
flex: 1 1 0;
|
|
32
32
|
border-top: 0;
|
|
33
|
-
border-left: var(--rp-border-width-thin) solid var(--rp-color-border);
|
|
33
|
+
border-left: var(--rp-border-width-thin) solid var(--rp-color-default-border);
|
|
34
34
|
}
|
|
35
35
|
.rp-accordion-item--horizontal[data-v-8528e537]:first-child {
|
|
36
36
|
border-left: 0;
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
padding: var(--rp-spacing-3) var(--rp-spacing-4);
|
|
55
55
|
color: var(--rp-color-text);
|
|
56
56
|
font-family: var(--rp-font-family);
|
|
57
|
-
font-size: var(--rp-font-size-
|
|
57
|
+
font-size: var(--rp-font-size-md);
|
|
58
58
|
font-weight: var(--rp-font-weight-medium);
|
|
59
|
-
line-height: var(--rp-line-height-
|
|
59
|
+
line-height: var(--rp-line-height-xs);
|
|
60
60
|
text-align: left;
|
|
61
61
|
appearance: none;
|
|
62
62
|
cursor: pointer;
|
|
@@ -65,11 +65,11 @@
|
|
|
65
65
|
transition: background-color var(--_rp-accordion-duration), color var(--_rp-accordion-duration);
|
|
66
66
|
}
|
|
67
67
|
.rp-accordion-item__trigger[data-v-8528e537]:hover:not(:disabled) {
|
|
68
|
-
background-color: var(--rp-color-
|
|
68
|
+
background-color: var(--rp-color-default-hover);
|
|
69
69
|
}
|
|
70
70
|
.rp-accordion-item__trigger[data-v-8528e537]:focus-visible {
|
|
71
71
|
outline: none;
|
|
72
|
-
border-color: var(--rp-color-
|
|
72
|
+
border-color: var(--rp-color-control-border-focus);
|
|
73
73
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
|
|
74
74
|
}
|
|
75
75
|
.rp-accordion-item__trigger[data-v-8528e537]:disabled {
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
overflow: hidden;
|
|
95
95
|
padding: 0 var(--rp-spacing-4) var(--rp-spacing-4);
|
|
96
96
|
color: var(--rp-color-text);
|
|
97
|
-
font-size: var(--rp-font-size-
|
|
98
|
-
line-height: var(--rp-line-height-
|
|
97
|
+
font-size: var(--rp-font-size-md);
|
|
98
|
+
line-height: var(--rp-line-height-md);
|
|
99
99
|
grid-template-rows: 1fr;
|
|
100
100
|
transition: grid-template-rows var(--_rp-accordion-duration), opacity var(--_rp-accordion-duration), padding-bottom var(--_rp-accordion-duration);
|
|
101
101
|
}
|
package/dist/accordion.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import './accordion.css';
|
|
2
|
-
import { t as useRequiredInject } from "./useRequiredInject.js";
|
|
3
2
|
import { t as bem } from "./bem.js";
|
|
4
|
-
import { t as useCollapse } from "./useCollapse.js";
|
|
5
3
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
4
|
+
import { t as useRequiredInject } from "./useRequiredInject.js";
|
|
5
|
+
import { t as useCollapse } from "./useCollapse.js";
|
|
6
6
|
import { VaporTransition, applyVShow, child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, markRaw, next, provide, ref, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId } from "vue";
|
|
7
7
|
//#region src/components/accordion/types.ts
|
|
8
8
|
var accordionKey = Symbol("accordion");
|
package/dist/alert.css
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
.rp-alert[data-v-97a5ebfe] {
|
|
2
|
+
--_rp-alert-bg: var(--rp-color-cyan-light);
|
|
3
|
+
--_rp-alert-fg: var(--rp-color-text);
|
|
4
|
+
--_rp-alert-title-fg: var(--rp-color-cyan-light-color);
|
|
5
|
+
--_rp-alert-icon-fg: var(--rp-color-cyan-light-color);
|
|
6
|
+
--_rp-alert-border: transparent;
|
|
7
|
+
--_rp-alert-radius: var(--rp-radius-sm);
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: flex-start;
|
|
11
|
+
width: 100%;
|
|
12
|
+
min-width: 0;
|
|
13
|
+
padding: var(--rp-spacing-4);
|
|
14
|
+
gap: var(--rp-spacing-3);
|
|
15
|
+
color: var(--_rp-alert-fg);
|
|
16
|
+
font-family: var(--rp-font-family);
|
|
17
|
+
font-size: var(--rp-font-size-sm);
|
|
18
|
+
line-height: var(--rp-line-height-md);
|
|
19
|
+
background-color: var(--_rp-alert-bg);
|
|
20
|
+
border: var(--rp-border-width-thin) solid var(--_rp-alert-border);
|
|
21
|
+
border-radius: var(--_rp-alert-radius);
|
|
22
|
+
transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast), border-color var(--rp-transition-fast);
|
|
23
|
+
}
|
|
24
|
+
.rp-alert--radius-none[data-v-97a5ebfe] {
|
|
25
|
+
--_rp-alert-radius: var(--rp-radius-none);
|
|
26
|
+
}
|
|
27
|
+
.rp-alert--radius-xs[data-v-97a5ebfe] {
|
|
28
|
+
--_rp-alert-radius: var(--rp-radius-xs);
|
|
29
|
+
}
|
|
30
|
+
.rp-alert--radius-sm[data-v-97a5ebfe] {
|
|
31
|
+
--_rp-alert-radius: var(--rp-radius-sm);
|
|
32
|
+
}
|
|
33
|
+
.rp-alert--radius-md[data-v-97a5ebfe] {
|
|
34
|
+
--_rp-alert-radius: var(--rp-radius-md);
|
|
35
|
+
}
|
|
36
|
+
.rp-alert--radius-lg[data-v-97a5ebfe] {
|
|
37
|
+
--_rp-alert-radius: var(--rp-radius-lg);
|
|
38
|
+
}
|
|
39
|
+
.rp-alert--radius-xl[data-v-97a5ebfe] {
|
|
40
|
+
--_rp-alert-radius: var(--rp-radius-xl);
|
|
41
|
+
}
|
|
42
|
+
.rp-alert__icon[data-v-97a5ebfe] {
|
|
43
|
+
display: inline-flex;
|
|
44
|
+
flex: 0 0 auto;
|
|
45
|
+
align-items: center;
|
|
46
|
+
justify-content: center;
|
|
47
|
+
margin-top: 0.125rem;
|
|
48
|
+
color: var(--_rp-alert-icon-fg);
|
|
49
|
+
line-height: 0;
|
|
50
|
+
}
|
|
51
|
+
.rp-alert__icon[data-v-97a5ebfe] > svg {
|
|
52
|
+
display: block;
|
|
53
|
+
width: 1rem;
|
|
54
|
+
height: 1rem;
|
|
55
|
+
}
|
|
56
|
+
.rp-alert__content[data-v-97a5ebfe] {
|
|
57
|
+
display: grid;
|
|
58
|
+
flex: 1 1 auto;
|
|
59
|
+
min-width: 0;
|
|
60
|
+
gap: var(--rp-spacing-1);
|
|
61
|
+
}
|
|
62
|
+
.rp-alert__title[data-v-97a5ebfe] {
|
|
63
|
+
color: var(--_rp-alert-title-fg);
|
|
64
|
+
font-size: var(--rp-font-size-md);
|
|
65
|
+
font-weight: var(--rp-font-weight-semibold);
|
|
66
|
+
line-height: var(--rp-line-height-xs);
|
|
67
|
+
}
|
|
68
|
+
.rp-alert__description[data-v-97a5ebfe] {
|
|
69
|
+
margin: 0;
|
|
70
|
+
}
|
|
71
|
+
.rp-alert__body[data-v-97a5ebfe], .rp-alert__description[data-v-97a5ebfe] {
|
|
72
|
+
min-width: 0;
|
|
73
|
+
color: var(--_rp-alert-fg);
|
|
74
|
+
}
|
|
75
|
+
.rp-alert__action[data-v-97a5ebfe] {
|
|
76
|
+
display: inline-flex;
|
|
77
|
+
flex: 0 0 auto;
|
|
78
|
+
align-items: center;
|
|
79
|
+
margin-left: auto;
|
|
80
|
+
}
|
|
81
|
+
.rp-alert__close[data-v-97a5ebfe] {
|
|
82
|
+
box-sizing: border-box;
|
|
83
|
+
display: inline-flex;
|
|
84
|
+
flex: 0 0 auto;
|
|
85
|
+
align-items: center;
|
|
86
|
+
justify-content: center;
|
|
87
|
+
width: 1.75rem;
|
|
88
|
+
height: 1.75rem;
|
|
89
|
+
margin: calc(var(--rp-spacing-1) * -1) calc(var(--rp-spacing-1) * -1) calc(var(--rp-spacing-1) * -1) 0;
|
|
90
|
+
padding: 0;
|
|
91
|
+
color: var(--_rp-alert-icon-fg);
|
|
92
|
+
background: transparent;
|
|
93
|
+
border: 0;
|
|
94
|
+
border-radius: var(--rp-radius-sm);
|
|
95
|
+
cursor: pointer;
|
|
96
|
+
transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast);
|
|
97
|
+
}
|
|
98
|
+
.rp-alert__close[data-v-97a5ebfe]:hover {
|
|
99
|
+
background-color: color-mix(in srgb, var(--_rp-alert-icon-fg) 12%, transparent);
|
|
100
|
+
}
|
|
101
|
+
.rp-alert__close[data-v-97a5ebfe]:focus-visible {
|
|
102
|
+
outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
|
|
103
|
+
outline-offset: 2px;
|
|
104
|
+
}
|
|
105
|
+
.rp-alert__close[data-v-97a5ebfe] > svg {
|
|
106
|
+
display: block;
|
|
107
|
+
width: 1rem;
|
|
108
|
+
height: 1rem;
|
|
109
|
+
}
|
package/dist/alert.js
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import './alert.css';
|
|
2
|
+
import { t as x_default } from "./x.js";
|
|
3
|
+
import { t as bem } from "./bem.js";
|
|
4
|
+
import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
|
|
5
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
6
|
+
import { computed, createComponent, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, ref, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, setText, template, toDisplayString, txt, unref, useSlots, watch } from "vue";
|
|
7
|
+
//#region src/components/alert/useAlertColor.ts
|
|
8
|
+
function getAlertColorStyle(color, variant, autoContrast) {
|
|
9
|
+
if (!color && !variant) return void 0;
|
|
10
|
+
const resolvedVariant = variant ?? "subtle";
|
|
11
|
+
const roles = getComponentVariantColorRoles({
|
|
12
|
+
color,
|
|
13
|
+
variant: resolvedVariant,
|
|
14
|
+
defaultColor: "cyan",
|
|
15
|
+
autoContrast
|
|
16
|
+
});
|
|
17
|
+
if (!roles) return void 0;
|
|
18
|
+
return {
|
|
19
|
+
"--_rp-alert-bg": roles.background,
|
|
20
|
+
"--_rp-alert-fg": resolvedVariant === "solid" ? roles.color : "var(--rp-color-text)",
|
|
21
|
+
"--_rp-alert-title-fg": roles.color,
|
|
22
|
+
"--_rp-alert-icon-fg": roles.color,
|
|
23
|
+
"--_rp-alert-border": roles.border
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/components/alert/alert.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
28
|
+
var t0 = template("<div data-v-97a5ebfe class=rp-alert__icon aria-hidden=true>");
|
|
29
|
+
var t1 = template(" ");
|
|
30
|
+
var t2 = template("<div data-v-97a5ebfe class=rp-alert__title>");
|
|
31
|
+
var t3 = template("<p data-v-97a5ebfe class=rp-alert__description> ");
|
|
32
|
+
var t4 = template("<div data-v-97a5ebfe class=rp-alert__body>");
|
|
33
|
+
var t5 = template("<div data-v-97a5ebfe class=rp-alert__content>");
|
|
34
|
+
var t6 = template("<div data-v-97a5ebfe class=rp-alert__action>");
|
|
35
|
+
var t7 = template("<button data-v-97a5ebfe class=rp-alert__close type=button>");
|
|
36
|
+
var t8 = template("<div data-v-97a5ebfe>", 1);
|
|
37
|
+
delegateEvents("click");
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/components/alert/alert.vue
|
|
40
|
+
var alert_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
41
|
+
name: "RpAlert",
|
|
42
|
+
__name: "alert",
|
|
43
|
+
props: {
|
|
44
|
+
open: {
|
|
45
|
+
type: Boolean,
|
|
46
|
+
default: void 0
|
|
47
|
+
},
|
|
48
|
+
title: { default: "" },
|
|
49
|
+
description: { default: "" },
|
|
50
|
+
variant: {},
|
|
51
|
+
color: {},
|
|
52
|
+
autoContrast: { type: Boolean },
|
|
53
|
+
radius: {},
|
|
54
|
+
role: { default: "alert" },
|
|
55
|
+
closable: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
default: false
|
|
58
|
+
},
|
|
59
|
+
closeLabel: { default: "Close alert" }
|
|
60
|
+
},
|
|
61
|
+
emits: ["update:open", "close"],
|
|
62
|
+
setup(__props, { emit: __emit, slots: $slots }) {
|
|
63
|
+
const props = __props;
|
|
64
|
+
const emit = __emit;
|
|
65
|
+
const slots = useSlots();
|
|
66
|
+
const localOpen = ref(props.open ?? true);
|
|
67
|
+
watch(() => props.open, (open) => {
|
|
68
|
+
if (open !== void 0) localOpen.value = open;
|
|
69
|
+
});
|
|
70
|
+
const isOpen = computed(() => props.open ?? localOpen.value);
|
|
71
|
+
const hasTitle = computed(() => Boolean(props.title || slots.title));
|
|
72
|
+
const hasDescription = computed(() => Boolean(props.description));
|
|
73
|
+
const hasContent = computed(() => Boolean(hasTitle.value || hasDescription.value || slots.default));
|
|
74
|
+
const resolvedRole = computed(() => props.role === "none" ? void 0 : props.role);
|
|
75
|
+
const hasIcon = computed(() => Boolean(slots.icon));
|
|
76
|
+
const rootClass = computed(() => bem("rp-alert", {
|
|
77
|
+
[props.variant ?? ""]: Boolean(props.variant),
|
|
78
|
+
[`radius-${props.radius}`]: Boolean(props.radius)
|
|
79
|
+
}));
|
|
80
|
+
const rootStyle = computed(() => getAlertColorStyle(props.color, props.variant, props.autoContrast));
|
|
81
|
+
function closeAlert() {
|
|
82
|
+
localOpen.value = false;
|
|
83
|
+
emit("update:open", false);
|
|
84
|
+
emit("close");
|
|
85
|
+
}
|
|
86
|
+
return createIf(() => isOpen.value, () => {
|
|
87
|
+
const n30 = t8();
|
|
88
|
+
renderEffect(() => {
|
|
89
|
+
setClass(n30, rootClass.value);
|
|
90
|
+
setStyle(n30, rootStyle.value);
|
|
91
|
+
setProp(n30, "role", resolvedRole.value);
|
|
92
|
+
});
|
|
93
|
+
setInsertionState(n30, null, 0);
|
|
94
|
+
createIf(() => hasIcon.value, () => {
|
|
95
|
+
const n5 = t0();
|
|
96
|
+
setInsertionState(n5, null, 0);
|
|
97
|
+
createSlot("icon", null, null, 1);
|
|
98
|
+
return n5;
|
|
99
|
+
});
|
|
100
|
+
setInsertionState(n30, null, 1);
|
|
101
|
+
createIf(() => hasContent.value, () => {
|
|
102
|
+
const n21 = t5();
|
|
103
|
+
setInsertionState(n21, null, 0);
|
|
104
|
+
createIf(() => hasTitle.value, () => {
|
|
105
|
+
const n13 = t2();
|
|
106
|
+
setInsertionState(n13, null, 0);
|
|
107
|
+
createSlot("title", null, () => {
|
|
108
|
+
const n12 = t1();
|
|
109
|
+
renderEffect(() => setText(n12, toDisplayString(__props.title)));
|
|
110
|
+
return n12;
|
|
111
|
+
}, 1);
|
|
112
|
+
return n13;
|
|
113
|
+
});
|
|
114
|
+
setInsertionState(n21, null, 1);
|
|
115
|
+
createIf(() => hasDescription.value, () => {
|
|
116
|
+
const n16 = t3();
|
|
117
|
+
const x16 = txt(n16);
|
|
118
|
+
renderEffect(() => setText(x16, toDisplayString(__props.description)));
|
|
119
|
+
return n16;
|
|
120
|
+
});
|
|
121
|
+
setInsertionState(n21, null, 2);
|
|
122
|
+
createIf(() => $slots.default, () => {
|
|
123
|
+
const n20 = t4();
|
|
124
|
+
setInsertionState(n20, null, 0);
|
|
125
|
+
createSlot("default", null, null, 1);
|
|
126
|
+
return n20;
|
|
127
|
+
});
|
|
128
|
+
return n21;
|
|
129
|
+
});
|
|
130
|
+
setInsertionState(n30, null, 2);
|
|
131
|
+
createIf(() => $slots.action, () => {
|
|
132
|
+
const n25 = t6();
|
|
133
|
+
setInsertionState(n25, null, 0);
|
|
134
|
+
createSlot("action", null, null, 1);
|
|
135
|
+
return n25;
|
|
136
|
+
});
|
|
137
|
+
setInsertionState(n30, null, 3);
|
|
138
|
+
createIf(() => __props.closable, () => {
|
|
139
|
+
const n29 = t7();
|
|
140
|
+
renderEffect(() => setAttr(n29, "aria-label", __props.closeLabel));
|
|
141
|
+
setInsertionState(n29, null, 0);
|
|
142
|
+
createComponent(unref(x_default), { "aria-hidden": "true" });
|
|
143
|
+
n29.$evtclick = createInvoker(closeAlert);
|
|
144
|
+
return n29;
|
|
145
|
+
});
|
|
146
|
+
return n30;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}), [["__scopeId", "data-v-97a5ebfe"]]);
|
|
150
|
+
//#endregion
|
|
151
|
+
//#region src/components/alert/types.ts
|
|
152
|
+
var alertColors = componentColors;
|
|
153
|
+
var alertVariants = [
|
|
154
|
+
"subtle",
|
|
155
|
+
"surface",
|
|
156
|
+
"outline",
|
|
157
|
+
"solid"
|
|
158
|
+
];
|
|
159
|
+
var alertRadiuses = [
|
|
160
|
+
"none",
|
|
161
|
+
"xs",
|
|
162
|
+
"sm",
|
|
163
|
+
"md",
|
|
164
|
+
"lg",
|
|
165
|
+
"xl"
|
|
166
|
+
];
|
|
167
|
+
//#endregion
|
|
168
|
+
export { alert_default as i, alertRadiuses as n, alertVariants as r, alertColors as t };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.rp-aspect-ratio[data-v-0c2e5bad] {
|
|
2
|
+
--_rp-aspect-ratio: 1;
|
|
3
|
+
position: relative;
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
display: block;
|
|
6
|
+
width: 100%;
|
|
7
|
+
max-width: 100%;
|
|
8
|
+
aspect-ratio: var(--_rp-aspect-ratio);
|
|
9
|
+
}
|
|
10
|
+
.rp-aspect-ratio[data-v-0c2e5bad] > * {
|
|
11
|
+
position: absolute;
|
|
12
|
+
inset: 0;
|
|
13
|
+
display: block;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
object-fit: cover;
|
|
17
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import './aspect-ratio.css';
|
|
2
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
3
|
+
import { computed, createSlot, defineVaporComponent, renderEffect, setInsertionState, setStyle, template } from "vue";
|
|
4
|
+
//#region src/components/aspect-ratio/aspect-ratio.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
5
|
+
var t0 = template("<div data-v-0c2e5bad class=rp-aspect-ratio>", 1);
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/components/aspect-ratio/aspect-ratio.vue
|
|
8
|
+
var aspect_ratio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
9
|
+
name: "RpAspectRatio",
|
|
10
|
+
__name: "aspect-ratio",
|
|
11
|
+
props: { ratio: { default: 1 } },
|
|
12
|
+
setup(__props) {
|
|
13
|
+
const props = __props;
|
|
14
|
+
const rootStyle = computed(() => ({ "--_rp-aspect-ratio": String(normalizeAspectRatio(props.ratio)) }));
|
|
15
|
+
function normalizeAspectRatio(ratio) {
|
|
16
|
+
return Number.isFinite(ratio) && ratio > 0 ? ratio : 1;
|
|
17
|
+
}
|
|
18
|
+
const n1 = t0();
|
|
19
|
+
renderEffect(() => setStyle(n1, rootStyle.value));
|
|
20
|
+
setInsertionState(n1, null, 0);
|
|
21
|
+
createSlot("default", null, null, 1);
|
|
22
|
+
return n1;
|
|
23
|
+
}
|
|
24
|
+
}), [["__scopeId", "data-v-0c2e5bad"]]);
|
|
25
|
+
//#endregion
|
|
26
|
+
export { aspect_ratio_default as t };
|
package/dist/avatar.css
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
.rp-avatar[data-v-aaa2d081] {
|
|
2
|
+
--_rp-avatar-size: var(--rp-size-control-md);
|
|
3
|
+
--_rp-avatar-font-size: var(--rp-font-size-md);
|
|
4
|
+
--_rp-avatar-radius: var(--rp-radius-full);
|
|
5
|
+
--_rp-avatar-bg: var(--rp-color-gray-light);
|
|
6
|
+
--_rp-avatar-fg: var(--rp-color-gray-light-color);
|
|
7
|
+
--_rp-avatar-border: transparent;
|
|
8
|
+
--_rp-avatar-border-width: 0;
|
|
9
|
+
position: relative;
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
flex: 0 0 auto;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
width: var(--_rp-avatar-size);
|
|
16
|
+
height: var(--_rp-avatar-size);
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
color: var(--_rp-avatar-fg);
|
|
19
|
+
font-family: var(--rp-font-family);
|
|
20
|
+
font-size: var(--_rp-avatar-font-size);
|
|
21
|
+
font-weight: var(--rp-font-weight-medium);
|
|
22
|
+
line-height: 1;
|
|
23
|
+
vertical-align: middle;
|
|
24
|
+
background-color: var(--_rp-avatar-bg);
|
|
25
|
+
border: var(--_rp-avatar-border-width) solid var(--_rp-avatar-border);
|
|
26
|
+
border-radius: var(--_rp-avatar-radius);
|
|
27
|
+
user-select: none;
|
|
28
|
+
}
|
|
29
|
+
.rp-avatar--surface[data-v-aaa2d081], .rp-avatar--outline[data-v-aaa2d081] {
|
|
30
|
+
--_rp-avatar-border-width: var(--rp-border-width-thin);
|
|
31
|
+
}
|
|
32
|
+
.rp-avatar--size-xs[data-v-aaa2d081] {
|
|
33
|
+
--_rp-avatar-size: var(--rp-size-control-xs);
|
|
34
|
+
--_rp-avatar-font-size: var(--rp-font-size-xs);
|
|
35
|
+
}
|
|
36
|
+
.rp-avatar--size-sm[data-v-aaa2d081] {
|
|
37
|
+
--_rp-avatar-size: var(--rp-size-control-sm);
|
|
38
|
+
--_rp-avatar-font-size: var(--rp-font-size-sm);
|
|
39
|
+
}
|
|
40
|
+
.rp-avatar--size-md[data-v-aaa2d081] {
|
|
41
|
+
--_rp-avatar-size: var(--rp-size-control-md);
|
|
42
|
+
--_rp-avatar-font-size: var(--rp-font-size-md);
|
|
43
|
+
}
|
|
44
|
+
.rp-avatar--size-lg[data-v-aaa2d081] {
|
|
45
|
+
--_rp-avatar-size: var(--rp-size-control-lg);
|
|
46
|
+
--_rp-avatar-font-size: var(--rp-font-size-lg);
|
|
47
|
+
}
|
|
48
|
+
.rp-avatar--size-xl[data-v-aaa2d081] {
|
|
49
|
+
--_rp-avatar-size: var(--rp-size-control-xl);
|
|
50
|
+
--_rp-avatar-font-size: var(--rp-font-size-xl);
|
|
51
|
+
}
|
|
52
|
+
.rp-avatar--radius-none[data-v-aaa2d081] {
|
|
53
|
+
--_rp-avatar-radius: var(--rp-radius-none);
|
|
54
|
+
}
|
|
55
|
+
.rp-avatar--radius-xs[data-v-aaa2d081] {
|
|
56
|
+
--_rp-avatar-radius: var(--rp-radius-xs);
|
|
57
|
+
}
|
|
58
|
+
.rp-avatar--radius-sm[data-v-aaa2d081] {
|
|
59
|
+
--_rp-avatar-radius: var(--rp-radius-sm);
|
|
60
|
+
}
|
|
61
|
+
.rp-avatar--radius-md[data-v-aaa2d081] {
|
|
62
|
+
--_rp-avatar-radius: var(--rp-radius-md);
|
|
63
|
+
}
|
|
64
|
+
.rp-avatar--radius-lg[data-v-aaa2d081] {
|
|
65
|
+
--_rp-avatar-radius: var(--rp-radius-lg);
|
|
66
|
+
}
|
|
67
|
+
.rp-avatar--radius-xl[data-v-aaa2d081] {
|
|
68
|
+
--_rp-avatar-radius: var(--rp-radius-xl);
|
|
69
|
+
}
|
|
70
|
+
.rp-avatar--radius-full[data-v-aaa2d081] {
|
|
71
|
+
--_rp-avatar-radius: var(--rp-radius-full);
|
|
72
|
+
}
|
|
73
|
+
.rp-avatar__image[data-v-aaa2d081] {
|
|
74
|
+
display: block;
|
|
75
|
+
width: 100%;
|
|
76
|
+
height: 100%;
|
|
77
|
+
object-fit: cover;
|
|
78
|
+
}
|
|
79
|
+
.rp-avatar__fallback[data-v-aaa2d081] {
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
width: 100%;
|
|
84
|
+
height: 100%;
|
|
85
|
+
}
|
|
86
|
+
.rp-avatar__fallback[data-v-aaa2d081] > svg {
|
|
87
|
+
display: block;
|
|
88
|
+
width: 50%;
|
|
89
|
+
height: 50%;
|
|
90
|
+
}
|
|
91
|
+
.rp-avatar__initials[data-v-aaa2d081] {
|
|
92
|
+
text-transform: uppercase;
|
|
93
|
+
}
|
|
94
|
+
.rp-avatar__icon[data-v-aaa2d081] {
|
|
95
|
+
width: 50%;
|
|
96
|
+
height: 50%;
|
|
97
|
+
}
|
package/dist/avatar.js
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import './avatar.css';
|
|
2
|
+
import { t as bem } from "./bem.js";
|
|
3
|
+
import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
|
|
4
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
5
|
+
import { computed, createComponent, createIf, createSlot, defineVaporComponent, markRaw, on, ref, renderEffect, setAttr, setDynamicProps, setInsertionState, setProp, setText, template, toDisplayString, txt, unref, useAttrs, watch } from "vue";
|
|
6
|
+
//#region ~icons/lucide/user
|
|
7
|
+
var t0$1 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><g fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"></path><circle cx=12 cy=7 r=4>", 3, 1);
|
|
8
|
+
function render(_ctx) {
|
|
9
|
+
return t0$1();
|
|
10
|
+
}
|
|
11
|
+
var user_default = markRaw(defineVaporComponent({
|
|
12
|
+
name: "lucide-user",
|
|
13
|
+
render
|
|
14
|
+
}));
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/components/avatar/useAvatarColor.ts
|
|
17
|
+
function getAvatarColorStyle(color, variant, autoContrast) {
|
|
18
|
+
if (!color && !variant) return void 0;
|
|
19
|
+
const roles = getComponentVariantColorRoles({
|
|
20
|
+
color,
|
|
21
|
+
variant: variant ?? "solid",
|
|
22
|
+
autoContrast
|
|
23
|
+
});
|
|
24
|
+
if (!roles) return void 0;
|
|
25
|
+
return {
|
|
26
|
+
"--_rp-avatar-bg": roles.background,
|
|
27
|
+
"--_rp-avatar-fg": roles.color,
|
|
28
|
+
"--_rp-avatar-border": roles.border
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/components/avatar/avatar.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
33
|
+
var t0 = template("<img data-v-aaa2d081 class=rp-avatar__image>");
|
|
34
|
+
var t1 = template("<span data-v-aaa2d081 class=rp-avatar__initials> ");
|
|
35
|
+
var t2 = template("<span data-v-aaa2d081 class=rp-avatar__fallback>");
|
|
36
|
+
var t3 = template("<span data-v-aaa2d081>", 1);
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/components/avatar/avatar.vue
|
|
39
|
+
var avatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
40
|
+
name: "RpAvatar",
|
|
41
|
+
inheritAttrs: false,
|
|
42
|
+
__name: "avatar",
|
|
43
|
+
props: {
|
|
44
|
+
src: {},
|
|
45
|
+
alt: {},
|
|
46
|
+
ariaLabel: {},
|
|
47
|
+
name: {},
|
|
48
|
+
variant: {},
|
|
49
|
+
color: {},
|
|
50
|
+
autoContrast: { type: Boolean },
|
|
51
|
+
size: {},
|
|
52
|
+
radius: {}
|
|
53
|
+
},
|
|
54
|
+
emits: ["load", "error"],
|
|
55
|
+
setup(__props, { emit: __emit }) {
|
|
56
|
+
const props = __props;
|
|
57
|
+
const emit = __emit;
|
|
58
|
+
const attrs = useAttrs();
|
|
59
|
+
const imageFailed = ref(false);
|
|
60
|
+
const isHidden = computed(() => attrs["aria-hidden"] === true || attrs["aria-hidden"] === "true");
|
|
61
|
+
const showsImage = computed(() => Boolean(props.src) && !imageFailed.value);
|
|
62
|
+
const accessibleName = computed(() => {
|
|
63
|
+
if (isHidden.value) return void 0;
|
|
64
|
+
return props.ariaLabel || props.alt || props.name || void 0;
|
|
65
|
+
});
|
|
66
|
+
const imageAlt = computed(() => accessibleName.value ?? "");
|
|
67
|
+
const rootRole = computed(() => !showsImage.value && accessibleName.value ? "img" : void 0);
|
|
68
|
+
const rootAriaLabel = computed(() => rootRole.value ? accessibleName.value : void 0);
|
|
69
|
+
const fallbackAriaHidden = computed(() => isHidden.value || rootAriaLabel.value ? true : void 0);
|
|
70
|
+
const initials = computed(() => getInitials(props.name));
|
|
71
|
+
const rootClass = computed(() => bem("rp-avatar", {
|
|
72
|
+
[props.variant ?? ""]: Boolean(props.variant),
|
|
73
|
+
[`size-${props.size}`]: Boolean(props.size),
|
|
74
|
+
[`radius-${props.radius}`]: Boolean(props.radius)
|
|
75
|
+
}));
|
|
76
|
+
const rootStyle = computed(() => getAvatarColorStyle(props.color, props.variant, props.autoContrast));
|
|
77
|
+
watch(() => props.src, () => {
|
|
78
|
+
imageFailed.value = false;
|
|
79
|
+
});
|
|
80
|
+
function handleImageLoad(event) {
|
|
81
|
+
emit("load", event);
|
|
82
|
+
}
|
|
83
|
+
function handleImageError(event) {
|
|
84
|
+
imageFailed.value = true;
|
|
85
|
+
emit("error", event);
|
|
86
|
+
}
|
|
87
|
+
function getInitials(name) {
|
|
88
|
+
if (!name) return "";
|
|
89
|
+
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
90
|
+
const firstPart = parts[0];
|
|
91
|
+
if (!firstPart) return "";
|
|
92
|
+
if (parts.length === 1) return Array.from(firstPart).slice(0, 2).join("").toLocaleUpperCase();
|
|
93
|
+
const lastPart = parts.at(-1) ?? firstPart;
|
|
94
|
+
return `${Array.from(firstPart)[0] ?? ""}${Array.from(lastPart)[0] ?? ""}`.toLocaleUpperCase();
|
|
95
|
+
}
|
|
96
|
+
const n13 = t3();
|
|
97
|
+
renderEffect(() => setDynamicProps(n13, [unref(attrs), {
|
|
98
|
+
class: rootClass.value,
|
|
99
|
+
style: rootStyle.value,
|
|
100
|
+
role: rootRole.value,
|
|
101
|
+
"aria-label": rootAriaLabel.value
|
|
102
|
+
}]));
|
|
103
|
+
setInsertionState(n13, null, 0);
|
|
104
|
+
createIf(() => showsImage.value, () => {
|
|
105
|
+
const n2 = t0();
|
|
106
|
+
on(n2, "load", handleImageLoad);
|
|
107
|
+
on(n2, "error", handleImageError);
|
|
108
|
+
renderEffect(() => {
|
|
109
|
+
setProp(n2, "src", __props.src || void 0);
|
|
110
|
+
setAttr(n2, "alt", imageAlt.value);
|
|
111
|
+
});
|
|
112
|
+
return n2;
|
|
113
|
+
}, () => {
|
|
114
|
+
const n12 = t2();
|
|
115
|
+
renderEffect(() => setAttr(n12, "aria-hidden", fallbackAriaHidden.value));
|
|
116
|
+
setInsertionState(n12, null, 0);
|
|
117
|
+
createSlot("default", null, () => {
|
|
118
|
+
return createIf(() => initials.value, () => {
|
|
119
|
+
const n8 = t1();
|
|
120
|
+
const x8 = txt(n8);
|
|
121
|
+
renderEffect(() => setText(x8, toDisplayString(initials.value)));
|
|
122
|
+
return n8;
|
|
123
|
+
}, () => {
|
|
124
|
+
return createComponent(unref(user_default), {
|
|
125
|
+
class: "rp-avatar__icon",
|
|
126
|
+
"aria-hidden": "true"
|
|
127
|
+
});
|
|
128
|
+
}, 517);
|
|
129
|
+
}, 1);
|
|
130
|
+
return n12;
|
|
131
|
+
}, 261);
|
|
132
|
+
return n13;
|
|
133
|
+
}
|
|
134
|
+
}), [["__scopeId", "data-v-aaa2d081"]]);
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region src/components/avatar/types.ts
|
|
137
|
+
var avatarColors = componentColors;
|
|
138
|
+
var avatarSizes = [
|
|
139
|
+
"xs",
|
|
140
|
+
"sm",
|
|
141
|
+
"md",
|
|
142
|
+
"lg",
|
|
143
|
+
"xl"
|
|
144
|
+
];
|
|
145
|
+
var avatarRadiuses = [
|
|
146
|
+
"none",
|
|
147
|
+
"xs",
|
|
148
|
+
"sm",
|
|
149
|
+
"md",
|
|
150
|
+
"lg",
|
|
151
|
+
"xl",
|
|
152
|
+
"full"
|
|
153
|
+
];
|
|
154
|
+
var avatarVariants = [
|
|
155
|
+
"solid",
|
|
156
|
+
"subtle",
|
|
157
|
+
"surface",
|
|
158
|
+
"outline"
|
|
159
|
+
];
|
|
160
|
+
//#endregion
|
|
161
|
+
export { avatar_default as a, avatarVariants as i, avatarRadiuses as n, avatarSizes as r, avatarColors as t };
|