ropav 0.0.5 → 0.0.6
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 +20 -51
- package/dist/base.css +21 -0
- package/dist/button-group.css +50 -0
- package/dist/button-group.js +49 -0
- package/dist/button-group.js.map +1 -0
- package/dist/button.css +72 -42
- package/dist/button.js +41 -31
- package/dist/button.js.map +1 -1
- package/dist/checkbox.css +105 -102
- package/dist/checkbox.js +18 -6
- package/dist/checkbox.js.map +1 -1
- package/dist/componentColors.js +22 -0
- package/dist/componentColors.js.map +1 -0
- package/dist/components/button/button.d.ts +2 -0
- package/dist/components/button/types.d.ts +2 -1
- package/dist/components/button/useButtonColor.d.ts +13 -0
- package/dist/components/button-group/button-group.d.ts +21 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/button-group/index.js +2 -0
- package/dist/components/button-group/types.d.ts +10 -0
- package/dist/components/checkbox/types.d.ts +2 -1
- package/dist/components/checkbox/useCheckbox.d.ts +4 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/index.js +2 -0
- package/dist/components/progress/progress.d.ts +27 -0
- package/dist/components/progress/types.d.ts +24 -0
- package/dist/components/progress/useProgress.d.ts +28 -0
- package/dist/components/radio/types.d.ts +2 -1
- package/dist/components/radio/useRadio.d.ts +4 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/index.js +2 -0
- package/dist/components/slider/slider.d.ts +35 -0
- package/dist/components/slider/types.d.ts +50 -0
- package/dist/components/slider/useSlider.d.ts +50 -0
- package/dist/components/switch/types.d.ts +2 -1
- package/dist/components/switch/useSwitch.d.ts +3 -0
- package/dist/components/textarea/index.d.ts +1 -1
- package/dist/components/textarea/types.d.ts +5 -0
- package/dist/components/textarea/useTextarea.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +2 -0
- package/dist/components/tooltip/tooltip.d.ts +27 -0
- package/dist/components/tooltip/types.d.ts +29 -0
- package/dist/components/tooltip/useTooltip.d.ts +17 -0
- package/dist/icon-button.css +82 -49
- package/dist/icon-button.js +13 -9
- package/dist/icon-button.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +6 -1
- package/dist/progress.css +125 -0
- package/dist/progress.js +177 -0
- package/dist/progress.js.map +1 -0
- package/dist/radio.css +83 -83
- package/dist/radio.js +18 -6
- package/dist/radio.js.map +1 -1
- package/dist/select.css +3 -1
- package/dist/select.js +7 -0
- package/dist/select.js.map +1 -1
- package/dist/slider.css +438 -0
- package/dist/slider.js +412 -0
- package/dist/slider.js.map +1 -0
- package/dist/switch.css +77 -77
- package/dist/switch.js +15 -6
- package/dist/switch.js.map +1 -1
- package/dist/textarea.css +33 -26
- package/dist/textarea.js +106 -15
- package/dist/textarea.js.map +1 -1
- package/dist/tooltip.css +136 -0
- package/dist/tooltip.js +384 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/useButtonColor.js +33 -0
- package/dist/useButtonColor.js.map +1 -0
- package/package.json +18 -2
- package/src/styles/_mixins.scss +17 -0
- package/src/styles/_utilities.scss +13 -0
- package/src/styles/base.scss +1 -0
- package/dist/loader-circle.js +0 -14
- package/dist/loader-circle.js.map +0 -1
|
@@ -4,6 +4,10 @@ export declare function useRadio(props: Readonly<RadioProps>): {
|
|
|
4
4
|
isChecked: import('vue').ComputedRef<boolean>;
|
|
5
5
|
isDisabled: import('vue').ComputedRef<boolean>;
|
|
6
6
|
rootClass: import('vue').ComputedRef<string[]>;
|
|
7
|
+
rootStyle: import('vue').ComputedRef<{
|
|
8
|
+
'--_rp-radio-custom-color': string & {};
|
|
9
|
+
'--_rp-radio-custom-on-color': string;
|
|
10
|
+
} | undefined>;
|
|
7
11
|
onSelect: () => void;
|
|
8
12
|
};
|
|
9
13
|
export declare function useRadioGroup(props: Readonly<RadioGroupProps>, emitUpdate: (value: string | number | null) => void): {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { default as Slider } from './slider';
|
|
2
|
+
export { sliderColors, sliderOrientations, sliderSizes } from './types';
|
|
3
|
+
export type { SliderColor, SliderMark, SliderMarkColor, SliderMarkInput, SliderOrientation, SliderProps, SliderPresetColor, SliderSize, SliderThumbStyle, SliderTooltip, SliderTooltipMode, SliderTooltipOptions, SliderValueFormatter, } from './types';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SliderProps } from './types';
|
|
2
|
+
declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import('vue').PublicProps & __VLS_PrettifyLocal<SliderProps & {
|
|
4
|
+
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
5
|
+
}> & (typeof globalThis extends {
|
|
6
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
7
|
+
} ? P : {});
|
|
8
|
+
expose: (exposed: {}) => void;
|
|
9
|
+
attrs: any;
|
|
10
|
+
slots: {
|
|
11
|
+
default?: (props: {}) => any;
|
|
12
|
+
} & {
|
|
13
|
+
value?: (props: {
|
|
14
|
+
value: number;
|
|
15
|
+
formattedValue: string | number;
|
|
16
|
+
percent: number;
|
|
17
|
+
}) => any;
|
|
18
|
+
} & {
|
|
19
|
+
thumb?: (props: {
|
|
20
|
+
value: number;
|
|
21
|
+
formattedValue: string | number;
|
|
22
|
+
percent: number;
|
|
23
|
+
}) => any;
|
|
24
|
+
};
|
|
25
|
+
emit: (evt: "update:modelValue", value: number) => void;
|
|
26
|
+
}>) => import('vue').VNode & {
|
|
27
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
28
|
+
};
|
|
29
|
+
declare const _default: typeof __VLS_export;
|
|
30
|
+
export default _default;
|
|
31
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
32
|
+
[K in keyof T]: T[K];
|
|
33
|
+
} : {
|
|
34
|
+
[K in keyof T as K]: T[K];
|
|
35
|
+
}) & {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TooltipProps } from '../tooltip/types';
|
|
2
|
+
export declare const sliderColors: readonly ["primary", "secondary", "success", "warning", "danger", "info", "neutral"];
|
|
3
|
+
export declare const sliderSizes: readonly ["xs", "sm", "md", "lg", "xl"];
|
|
4
|
+
export declare const sliderOrientations: readonly ["horizontal", "vertical"];
|
|
5
|
+
export type SliderPresetColor = (typeof sliderColors)[number];
|
|
6
|
+
export type SliderColor = SliderPresetColor | (string & {});
|
|
7
|
+
export type SliderSize = (typeof sliderSizes)[number];
|
|
8
|
+
export type SliderOrientation = (typeof sliderOrientations)[number];
|
|
9
|
+
export type SliderValueFormatter = (value: number) => string | number;
|
|
10
|
+
export type SliderTooltipMode = 'hover' | 'always';
|
|
11
|
+
export type SliderTooltipOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'offset' | 'openDelay' | 'arrow'> & {
|
|
12
|
+
mode?: SliderTooltipMode;
|
|
13
|
+
};
|
|
14
|
+
export type SliderTooltip = false | SliderTooltipMode | SliderTooltipOptions;
|
|
15
|
+
export type SliderMarkColor = SliderColor;
|
|
16
|
+
export interface SliderMark {
|
|
17
|
+
value: number;
|
|
18
|
+
label?: string | number;
|
|
19
|
+
color?: SliderMarkColor;
|
|
20
|
+
hidden?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export type SliderMarkInput = number | SliderMark;
|
|
23
|
+
export interface SliderThumbStyle {
|
|
24
|
+
size?: number | string;
|
|
25
|
+
border?: number | string;
|
|
26
|
+
padding?: number | string;
|
|
27
|
+
}
|
|
28
|
+
export interface SliderProps {
|
|
29
|
+
id?: string;
|
|
30
|
+
name?: string;
|
|
31
|
+
modelValue: number;
|
|
32
|
+
min?: number;
|
|
33
|
+
max?: number;
|
|
34
|
+
step?: number | 'any';
|
|
35
|
+
marks?: SliderMarkInput[];
|
|
36
|
+
thumbStyle?: SliderThumbStyle;
|
|
37
|
+
tooltip?: SliderTooltip;
|
|
38
|
+
formatValue?: SliderValueFormatter;
|
|
39
|
+
color?: SliderColor;
|
|
40
|
+
size?: SliderSize;
|
|
41
|
+
orientation?: SliderOrientation;
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
required?: boolean;
|
|
44
|
+
invalid?: boolean;
|
|
45
|
+
valid?: boolean;
|
|
46
|
+
ariaLabel?: string;
|
|
47
|
+
ariaValueText?: string | SliderValueFormatter;
|
|
48
|
+
describedby?: string;
|
|
49
|
+
labelledby?: string;
|
|
50
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CSSProperties } from 'vue';
|
|
2
|
+
import { SliderProps } from './types';
|
|
3
|
+
type SliderStateProps = Readonly<SliderProps & {
|
|
4
|
+
min: number;
|
|
5
|
+
max: number;
|
|
6
|
+
step: number | 'any';
|
|
7
|
+
tooltip: NonNullable<SliderProps['tooltip']>;
|
|
8
|
+
orientation: NonNullable<SliderProps['orientation']>;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function normalizeSliderValue(value: number, min: number, max: number, step: number | 'any'): number;
|
|
11
|
+
export declare function normalizeSliderBounds(min: number, max: number): {
|
|
12
|
+
min: number;
|
|
13
|
+
max: number;
|
|
14
|
+
};
|
|
15
|
+
export declare function normalizeSliderStep(step: number | 'any'): number | "any";
|
|
16
|
+
export declare function getSliderValuePercent(value: number, min: number, max: number): number;
|
|
17
|
+
export declare function useSlider(props: SliderStateProps, emitUpdate: (value: number) => void): {
|
|
18
|
+
control: import('../../composables/useControlState').ControlState;
|
|
19
|
+
nativeMin: import('vue').ComputedRef<number>;
|
|
20
|
+
nativeMax: import('vue').ComputedRef<number>;
|
|
21
|
+
nativeStep: import('vue').ComputedRef<number | "any">;
|
|
22
|
+
rootClass: import('vue').ComputedRef<string[]>;
|
|
23
|
+
normalizedValue: import('vue').ComputedRef<number>;
|
|
24
|
+
valuePercent: import('vue').ComputedRef<number>;
|
|
25
|
+
formattedValue: import('vue').ComputedRef<string | number>;
|
|
26
|
+
ariaValueText: import('vue').ComputedRef<string | undefined>;
|
|
27
|
+
markItems: import('vue').ComputedRef<{
|
|
28
|
+
key: string;
|
|
29
|
+
value: number;
|
|
30
|
+
label: string | number | undefined;
|
|
31
|
+
hasLabel: boolean;
|
|
32
|
+
filled: boolean;
|
|
33
|
+
style: CSSProperties;
|
|
34
|
+
}[]>;
|
|
35
|
+
trackStyle: import('vue').ComputedRef<CSSProperties>;
|
|
36
|
+
tooltipVisible: import('vue').ComputedRef<boolean>;
|
|
37
|
+
tooltipOpen: import('vue').ComputedRef<boolean>;
|
|
38
|
+
tooltipPlacement: import('vue').ComputedRef<import('../tooltip').TooltipPlacement>;
|
|
39
|
+
tooltipId: import('vue').ComputedRef<string | undefined>;
|
|
40
|
+
tooltipColor: import('vue').ComputedRef<import('../../utils/componentColors').ComponentColorValue | undefined>;
|
|
41
|
+
tooltipOffset: import('vue').ComputedRef<import('../tooltip').TooltipOffset | undefined>;
|
|
42
|
+
tooltipOpenDelay: import('vue').ComputedRef<number>;
|
|
43
|
+
tooltipArrow: import('vue').ComputedRef<boolean>;
|
|
44
|
+
tooltipContent: import('vue').ComputedRef<string>;
|
|
45
|
+
onInput: (e: Event) => void;
|
|
46
|
+
openTooltip: () => void;
|
|
47
|
+
closeTooltip: () => void;
|
|
48
|
+
onTooltipKeydown: (event: KeyboardEvent) => void;
|
|
49
|
+
};
|
|
50
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { ComponentColorValue } from '../../utils/componentColors';
|
|
2
|
+
export type SwitchColor = ComponentColorValue;
|
|
2
3
|
export type SwitchSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
3
4
|
export interface SwitchProps {
|
|
4
5
|
id?: string;
|
|
@@ -2,5 +2,8 @@ import { SwitchProps } from './types';
|
|
|
2
2
|
export declare function useSwitch(props: Readonly<SwitchProps>, emitUpdate: (value: boolean) => void): {
|
|
3
3
|
control: import('../../composables/useControlState').ControlState;
|
|
4
4
|
rootClass: import('vue').ComputedRef<string[]>;
|
|
5
|
+
rootStyle: import('vue').ComputedRef<{
|
|
6
|
+
'--_rp-switch-custom-color': string & {};
|
|
7
|
+
} | undefined>;
|
|
5
8
|
onChange: (e: Event) => void;
|
|
6
9
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default as Textarea } from './textarea';
|
|
2
|
-
export type { TextareaProps, TextareaRadius, TextareaSize } from './types';
|
|
2
|
+
export type { TextareaProps, TextareaRadius, TextareaResize, TextareaSize } from './types';
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
export type TextareaRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
2
2
|
export type TextareaSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
3
|
+
export type TextareaResize = 'none' | 'vertical' | 'both';
|
|
3
4
|
export interface TextareaProps {
|
|
4
5
|
id?: string;
|
|
5
6
|
name?: string;
|
|
6
7
|
modelValue: string;
|
|
7
8
|
size?: TextareaSize;
|
|
8
9
|
radius?: TextareaRadius;
|
|
10
|
+
resize?: TextareaResize;
|
|
11
|
+
autosize?: boolean;
|
|
12
|
+
minRows?: number;
|
|
13
|
+
maxRows?: number;
|
|
9
14
|
placeholder?: string;
|
|
10
15
|
rows?: number;
|
|
11
16
|
disabled?: boolean;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { TextareaProps } from './types';
|
|
2
2
|
export declare function useTextarea(props: Readonly<TextareaProps>, emitUpdate: (value: string) => void): {
|
|
3
|
+
textareaRef: import('vue').Ref<HTMLTextAreaElement | null, HTMLTextAreaElement | null>;
|
|
3
4
|
control: import('../../composables/useControlState').ControlState;
|
|
4
5
|
rootClass: import('vue').ComputedRef<string[]>;
|
|
6
|
+
nativeRows: import('vue').ComputedRef<number | undefined>;
|
|
5
7
|
onInput: (e: Event) => void;
|
|
6
8
|
focusTextarea: (e: MouseEvent) => void;
|
|
7
9
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TooltipProps } from './types';
|
|
2
|
+
declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import('vue').PublicProps & __VLS_PrettifyLocal<TooltipProps & {
|
|
4
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
5
|
+
}> & (typeof globalThis extends {
|
|
6
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
7
|
+
} ? P : {});
|
|
8
|
+
expose: (exposed: {}) => void;
|
|
9
|
+
attrs: any;
|
|
10
|
+
slots: {
|
|
11
|
+
default?: (props: {
|
|
12
|
+
triggerProps: import('./types').TooltipTriggerProps;
|
|
13
|
+
}) => any;
|
|
14
|
+
} & {
|
|
15
|
+
content?: (props: {}) => any;
|
|
16
|
+
};
|
|
17
|
+
emit: (evt: "update:open", value: boolean) => void;
|
|
18
|
+
}>) => import('vue').VNode & {
|
|
19
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
20
|
+
};
|
|
21
|
+
declare const _default: typeof __VLS_export;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
24
|
+
[K in keyof T]: T[K];
|
|
25
|
+
} : {
|
|
26
|
+
[K in keyof T as K]: T[K];
|
|
27
|
+
}) & {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { ComponentColorValue } from '../../utils/componentColors';
|
|
3
|
+
export type TooltipPlacement = 'top' | 'right' | 'bottom' | 'left';
|
|
4
|
+
export type TooltipColor = ComponentColorValue;
|
|
5
|
+
export type TooltipTarget = string | HTMLElement | Ref<HTMLElement | null | undefined>;
|
|
6
|
+
export interface TooltipOffsetOptions {
|
|
7
|
+
mainAxis?: number;
|
|
8
|
+
crossAxis?: number;
|
|
9
|
+
}
|
|
10
|
+
export type TooltipOffset = number | TooltipOffsetOptions;
|
|
11
|
+
export interface TooltipTriggerProps {
|
|
12
|
+
'aria-describedby'?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface TooltipSlotProps {
|
|
15
|
+
triggerProps: TooltipTriggerProps;
|
|
16
|
+
}
|
|
17
|
+
export interface TooltipProps {
|
|
18
|
+
id?: string;
|
|
19
|
+
content?: string;
|
|
20
|
+
target?: TooltipTarget | null;
|
|
21
|
+
placement?: TooltipPlacement;
|
|
22
|
+
color?: TooltipColor;
|
|
23
|
+
offset?: TooltipOffset;
|
|
24
|
+
open?: boolean;
|
|
25
|
+
openDelay?: number;
|
|
26
|
+
arrow?: boolean;
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
decorative?: boolean;
|
|
29
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CSSProperties } from 'vue';
|
|
2
|
+
import { TooltipProps, TooltipTriggerProps } from './types';
|
|
3
|
+
export declare function useTooltip(props: Readonly<TooltipProps>, emitOpenChange?: (open: boolean) => void): {
|
|
4
|
+
tooltipId: import('vue').ComputedRef<string>;
|
|
5
|
+
isOpen: import('vue').ComputedRef<boolean>;
|
|
6
|
+
isVisible: import('vue').ComputedRef<boolean>;
|
|
7
|
+
isTargetMode: import('vue').ComputedRef<boolean>;
|
|
8
|
+
shouldRenderContent: import('vue').ComputedRef<boolean>;
|
|
9
|
+
rootClass: import('vue').ComputedRef<string[]>;
|
|
10
|
+
triggerProps: import('vue').ComputedRef<TooltipTriggerProps>;
|
|
11
|
+
contentRole: import('vue').ComputedRef<"tooltip" | undefined>;
|
|
12
|
+
contentAriaHidden: import('vue').ComputedRef<"true" | undefined>;
|
|
13
|
+
contentStyle: import('vue').ComputedRef<CSSProperties | undefined>;
|
|
14
|
+
openTooltip: () => void;
|
|
15
|
+
closeTooltip: () => void;
|
|
16
|
+
onKeydown: (event: KeyboardEvent) => void;
|
|
17
|
+
};
|
package/dist/icon-button.css
CHANGED
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
.rp-button[data-v-
|
|
2
|
-
--_rp-button-accent: var(--rp-color-primary);
|
|
3
|
-
--_rp-button-accent-hover: var(--rp-color-primary-hover);
|
|
4
|
-
--_rp-button-accent-active: var(--rp-color-primary-active);
|
|
5
|
-
--_rp-button-accent-on: var(--rp-color-on-primary);
|
|
6
|
-
--_rp-button-accent-subtle-bg: var(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
--_rp-button-accent-
|
|
11
|
-
|
|
1
|
+
.rp-button[data-v-7005752e] {
|
|
2
|
+
--_rp-button-accent: var(--_rp-button-custom-color, var(--rp-color-primary));
|
|
3
|
+
--_rp-button-accent-hover: var(--_rp-button-custom-hover, var(--rp-color-primary-hover));
|
|
4
|
+
--_rp-button-accent-active: var(--_rp-button-custom-active, var(--rp-color-primary-active));
|
|
5
|
+
--_rp-button-accent-on: var(--_rp-button-custom-on, var(--rp-color-on-primary));
|
|
6
|
+
--_rp-button-accent-subtle-bg: var(
|
|
7
|
+
--_rp-button-custom-subtle-bg,
|
|
8
|
+
var(--rp-color-primary-subtle-bg)
|
|
9
|
+
);
|
|
10
|
+
--_rp-button-accent-subtle-bg-hover: var(
|
|
11
|
+
--_rp-button-custom-subtle-bg-hover,
|
|
12
|
+
var(--rp-color-primary-subtle-bg-hover)
|
|
13
|
+
);
|
|
14
|
+
--_rp-button-accent-subtle-bg-active: var(
|
|
15
|
+
--_rp-button-custom-subtle-bg-active,
|
|
16
|
+
var(--rp-color-primary-subtle-bg-active)
|
|
17
|
+
);
|
|
18
|
+
--_rp-button-accent-border: var(--_rp-button-custom-border, var(--rp-color-primary-border));
|
|
19
|
+
--_rp-button-accent-border-hover: var(
|
|
20
|
+
--_rp-button-custom-border-hover,
|
|
21
|
+
var(--rp-color-primary-border-hover)
|
|
22
|
+
);
|
|
23
|
+
--_rp-button-accent-fg: var(--_rp-button-custom-fg, var(--rp-color-primary-fg));
|
|
12
24
|
--_rp-button-bg: var(--rp-color-button-default-bg);
|
|
13
25
|
--_rp-button-bg-hover: var(--rp-color-button-default-bg-hover);
|
|
14
26
|
--_rp-button-bg-active: var(--rp-color-button-default-bg-active);
|
|
@@ -26,8 +38,8 @@
|
|
|
26
38
|
display: inline-flex;
|
|
27
39
|
align-items: center;
|
|
28
40
|
justify-content: center;
|
|
41
|
+
position: relative;
|
|
29
42
|
box-sizing: border-box;
|
|
30
|
-
gap: var(--rp-spacing-2);
|
|
31
43
|
font-family: var(--rp-font-family);
|
|
32
44
|
font-weight: var(--rp-font-weight-medium);
|
|
33
45
|
line-height: var(--rp-line-height-none);
|
|
@@ -45,18 +57,18 @@
|
|
|
45
57
|
font-size: var(--_rp-button-font-size);
|
|
46
58
|
border-radius: var(--_rp-button-radius);
|
|
47
59
|
}
|
|
48
|
-
.rp-button[data-v-
|
|
60
|
+
.rp-button[data-v-7005752e]:hover:not(:disabled) {
|
|
49
61
|
background-color: var(--_rp-button-bg-hover);
|
|
50
62
|
border-color: var(--_rp-button-border-hover);
|
|
51
63
|
box-shadow: var(--_rp-button-shadow-hover);
|
|
52
64
|
}
|
|
53
|
-
.rp-button[data-v-
|
|
65
|
+
.rp-button[data-v-7005752e]:active:not(:disabled) {
|
|
54
66
|
background-color: var(--_rp-button-bg-active);
|
|
55
67
|
border-color: var(--_rp-button-border-active);
|
|
56
68
|
box-shadow: var(--_rp-button-shadow-active);
|
|
57
69
|
transform: translateY(1px);
|
|
58
70
|
}
|
|
59
|
-
.rp-button--color-primary[data-v-
|
|
71
|
+
.rp-button--color-primary[data-v-7005752e] {
|
|
60
72
|
--_rp-button-accent: var(--rp-color-primary);
|
|
61
73
|
--_rp-button-accent-hover: var(--rp-color-primary-hover);
|
|
62
74
|
--_rp-button-accent-active: var(--rp-color-primary-active);
|
|
@@ -73,7 +85,7 @@
|
|
|
73
85
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
74
86
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
75
87
|
}
|
|
76
|
-
.rp-button--color-secondary[data-v-
|
|
88
|
+
.rp-button--color-secondary[data-v-7005752e] {
|
|
77
89
|
--_rp-button-accent: var(--rp-color-secondary);
|
|
78
90
|
--_rp-button-accent-hover: var(--rp-color-secondary-hover);
|
|
79
91
|
--_rp-button-accent-active: var(--rp-color-secondary-active);
|
|
@@ -90,7 +102,7 @@
|
|
|
90
102
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
91
103
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
92
104
|
}
|
|
93
|
-
.rp-button--color-success[data-v-
|
|
105
|
+
.rp-button--color-success[data-v-7005752e] {
|
|
94
106
|
--_rp-button-accent: var(--rp-color-success);
|
|
95
107
|
--_rp-button-accent-hover: var(--rp-color-success-hover);
|
|
96
108
|
--_rp-button-accent-active: var(--rp-color-success-active);
|
|
@@ -107,7 +119,7 @@
|
|
|
107
119
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
108
120
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
109
121
|
}
|
|
110
|
-
.rp-button--color-warning[data-v-
|
|
122
|
+
.rp-button--color-warning[data-v-7005752e] {
|
|
111
123
|
--_rp-button-accent: var(--rp-color-warning);
|
|
112
124
|
--_rp-button-accent-hover: var(--rp-color-warning-hover);
|
|
113
125
|
--_rp-button-accent-active: var(--rp-color-warning-active);
|
|
@@ -124,7 +136,7 @@
|
|
|
124
136
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
125
137
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
126
138
|
}
|
|
127
|
-
.rp-button--color-danger[data-v-
|
|
139
|
+
.rp-button--color-danger[data-v-7005752e] {
|
|
128
140
|
--_rp-button-accent: var(--rp-color-danger);
|
|
129
141
|
--_rp-button-accent-hover: var(--rp-color-danger-hover);
|
|
130
142
|
--_rp-button-accent-active: var(--rp-color-danger-active);
|
|
@@ -141,7 +153,7 @@
|
|
|
141
153
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
142
154
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
143
155
|
}
|
|
144
|
-
.rp-button--color-info[data-v-
|
|
156
|
+
.rp-button--color-info[data-v-7005752e] {
|
|
145
157
|
--_rp-button-accent: var(--rp-color-info);
|
|
146
158
|
--_rp-button-accent-hover: var(--rp-color-info-hover);
|
|
147
159
|
--_rp-button-accent-active: var(--rp-color-info-active);
|
|
@@ -158,7 +170,7 @@
|
|
|
158
170
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
159
171
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
160
172
|
}
|
|
161
|
-
.rp-button--color-neutral[data-v-
|
|
173
|
+
.rp-button--color-neutral[data-v-7005752e] {
|
|
162
174
|
--_rp-button-accent: var(--rp-color-neutral);
|
|
163
175
|
--_rp-button-accent-hover: var(--rp-color-neutral-hover);
|
|
164
176
|
--_rp-button-accent-active: var(--rp-color-neutral-active);
|
|
@@ -175,42 +187,42 @@
|
|
|
175
187
|
--_rp-button-border-hover: var(--_rp-button-accent-border-hover);
|
|
176
188
|
--_rp-button-fg: var(--_rp-button-accent-fg);
|
|
177
189
|
}
|
|
178
|
-
.rp-button--size-xs[data-v-
|
|
190
|
+
.rp-button--size-xs[data-v-7005752e] {
|
|
179
191
|
--_rp-button-height: calc(var(--rp-size-control-sm) - var(--rp-spacing-1));
|
|
180
192
|
--_rp-button-padding-x: var(--rp-spacing-2);
|
|
181
193
|
--_rp-button-font-size: var(--rp-font-size-xs);
|
|
182
194
|
}
|
|
183
|
-
.rp-button--size-sm[data-v-
|
|
195
|
+
.rp-button--size-sm[data-v-7005752e] {
|
|
184
196
|
--_rp-button-height: var(--rp-size-control-sm);
|
|
185
197
|
--_rp-button-padding-x: var(--rp-spacing-3);
|
|
186
198
|
--_rp-button-font-size: var(--rp-font-size-sm);
|
|
187
199
|
}
|
|
188
|
-
.rp-button--size-lg[data-v-
|
|
200
|
+
.rp-button--size-lg[data-v-7005752e] {
|
|
189
201
|
--_rp-button-height: var(--rp-size-control-lg);
|
|
190
202
|
--_rp-button-padding-x: var(--rp-spacing-5);
|
|
191
203
|
--_rp-button-font-size: var(--rp-font-size-lg);
|
|
192
204
|
}
|
|
193
|
-
.rp-button--size-xl[data-v-
|
|
205
|
+
.rp-button--size-xl[data-v-7005752e] {
|
|
194
206
|
--_rp-button-height: calc(var(--rp-size-control-lg) + var(--rp-spacing-2));
|
|
195
207
|
--_rp-button-padding-x: var(--rp-spacing-6);
|
|
196
208
|
--_rp-button-font-size: var(--rp-font-size-lg);
|
|
197
209
|
}
|
|
198
|
-
.rp-button--radius-xs[data-v-
|
|
210
|
+
.rp-button--radius-xs[data-v-7005752e] {
|
|
199
211
|
--_rp-button-radius: var(--rp-radius-xs);
|
|
200
212
|
}
|
|
201
|
-
.rp-button--radius-sm[data-v-
|
|
213
|
+
.rp-button--radius-sm[data-v-7005752e] {
|
|
202
214
|
--_rp-button-radius: var(--rp-radius-sm);
|
|
203
215
|
}
|
|
204
|
-
.rp-button--radius-md[data-v-
|
|
216
|
+
.rp-button--radius-md[data-v-7005752e] {
|
|
205
217
|
--_rp-button-radius: var(--rp-radius-md);
|
|
206
218
|
}
|
|
207
|
-
.rp-button--radius-lg[data-v-
|
|
219
|
+
.rp-button--radius-lg[data-v-7005752e] {
|
|
208
220
|
--_rp-button-radius: var(--rp-radius-lg);
|
|
209
221
|
}
|
|
210
|
-
.rp-button--radius-xl[data-v-
|
|
222
|
+
.rp-button--radius-xl[data-v-7005752e] {
|
|
211
223
|
--_rp-button-radius: var(--rp-radius-xl);
|
|
212
224
|
}
|
|
213
|
-
.rp-button--solid[data-v-
|
|
225
|
+
.rp-button--solid[data-v-7005752e] {
|
|
214
226
|
--_rp-button-bg: var(--_rp-button-accent);
|
|
215
227
|
--_rp-button-bg-hover: var(--_rp-button-accent-hover);
|
|
216
228
|
--_rp-button-bg-active: var(--_rp-button-accent-active);
|
|
@@ -219,7 +231,7 @@
|
|
|
219
231
|
--_rp-button-border-active: var(--_rp-button-accent-active);
|
|
220
232
|
--_rp-button-fg: var(--_rp-button-accent-on);
|
|
221
233
|
}
|
|
222
|
-
.rp-button--subtle[data-v-
|
|
234
|
+
.rp-button--subtle[data-v-7005752e] {
|
|
223
235
|
--_rp-button-bg: var(--_rp-button-accent-subtle-bg);
|
|
224
236
|
--_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
|
|
225
237
|
--_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
|
|
@@ -231,7 +243,7 @@
|
|
|
231
243
|
--_rp-button-shadow-hover: none;
|
|
232
244
|
--_rp-button-shadow-active: none;
|
|
233
245
|
}
|
|
234
|
-
.rp-button--surface[data-v-
|
|
246
|
+
.rp-button--surface[data-v-7005752e] {
|
|
235
247
|
--_rp-button-bg: var(--_rp-button-accent-subtle-bg);
|
|
236
248
|
--_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
|
|
237
249
|
--_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
|
|
@@ -243,7 +255,7 @@
|
|
|
243
255
|
--_rp-button-shadow-hover: none;
|
|
244
256
|
--_rp-button-shadow-active: none;
|
|
245
257
|
}
|
|
246
|
-
.rp-button--outline[data-v-
|
|
258
|
+
.rp-button--outline[data-v-7005752e] {
|
|
247
259
|
--_rp-button-bg: transparent;
|
|
248
260
|
--_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
|
|
249
261
|
--_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
|
|
@@ -255,7 +267,7 @@
|
|
|
255
267
|
--_rp-button-shadow-hover: none;
|
|
256
268
|
--_rp-button-shadow-active: none;
|
|
257
269
|
}
|
|
258
|
-
.rp-button--ghost[data-v-
|
|
270
|
+
.rp-button--ghost[data-v-7005752e] {
|
|
259
271
|
--_rp-button-bg: transparent;
|
|
260
272
|
--_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
|
|
261
273
|
--_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
|
|
@@ -267,7 +279,7 @@
|
|
|
267
279
|
--_rp-button-shadow-hover: none;
|
|
268
280
|
--_rp-button-shadow-active: none;
|
|
269
281
|
}
|
|
270
|
-
.rp-button--plain[data-v-
|
|
282
|
+
.rp-button--plain[data-v-7005752e] {
|
|
271
283
|
--_rp-button-bg: transparent;
|
|
272
284
|
--_rp-button-bg-hover: transparent;
|
|
273
285
|
--_rp-button-bg-active: transparent;
|
|
@@ -279,60 +291,81 @@
|
|
|
279
291
|
--_rp-button-shadow-hover: none;
|
|
280
292
|
--_rp-button-shadow-active: none;
|
|
281
293
|
}
|
|
282
|
-
.rp-button[data-v-
|
|
294
|
+
.rp-button[data-v-7005752e]:disabled {
|
|
283
295
|
opacity: var(--rp-opacity-disabled);
|
|
284
296
|
cursor: not-allowed;
|
|
285
297
|
box-shadow: none;
|
|
286
298
|
transform: none;
|
|
287
299
|
}
|
|
288
|
-
.rp-button[data-v-
|
|
300
|
+
.rp-button[data-v-7005752e]:focus-visible {
|
|
289
301
|
outline: none;
|
|
290
302
|
border-color: var(--rp-color-primary);
|
|
291
303
|
box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
|
|
292
304
|
}
|
|
293
|
-
.rp-
|
|
305
|
+
.rp-button--loading .rp-button__content[data-v-7005752e] {
|
|
306
|
+
visibility: hidden;
|
|
307
|
+
}
|
|
308
|
+
.rp-button__content[data-v-7005752e] {
|
|
309
|
+
display: inline-flex;
|
|
310
|
+
align-items: center;
|
|
311
|
+
justify-content: center;
|
|
312
|
+
gap: var(--rp-spacing-2);
|
|
313
|
+
}
|
|
314
|
+
.rp-button__left[data-v-7005752e], .rp-button__right[data-v-7005752e] {
|
|
294
315
|
display: inline-flex;
|
|
295
316
|
align-items: center;
|
|
296
317
|
flex-shrink: 0;
|
|
297
318
|
}
|
|
298
|
-
.rp-
|
|
319
|
+
.rp-button__loading[data-v-7005752e] {
|
|
320
|
+
display: inline-flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
justify-content: center;
|
|
323
|
+
position: absolute;
|
|
324
|
+
top: 50%;
|
|
325
|
+
left: 50%;
|
|
326
|
+
translate: -50% -50%;
|
|
327
|
+
}
|
|
328
|
+
.rp-button__spinner[data-v-7005752e] {
|
|
299
329
|
display: block;
|
|
300
330
|
width: 1em;
|
|
301
331
|
height: 1em;
|
|
302
332
|
flex-shrink: 0;
|
|
303
333
|
transform-origin: center;
|
|
304
|
-
animation: rp-
|
|
334
|
+
animation: rp-spinner-spin-7005752e 700ms linear infinite;
|
|
305
335
|
}
|
|
306
|
-
@keyframes rp-
|
|
336
|
+
@keyframes rp-spinner-spin-7005752e {
|
|
307
337
|
to {
|
|
308
338
|
transform: rotate(360deg);
|
|
309
339
|
}
|
|
310
|
-
}.rp-icon-button[data-v-
|
|
340
|
+
}.rp-icon-button[data-v-7005752e] {
|
|
311
341
|
width: var(--_rp-button-height);
|
|
312
342
|
padding: 0;
|
|
313
343
|
}
|
|
314
|
-
.rp-icon-button__icon[data-v-
|
|
344
|
+
.rp-icon-button__icon[data-v-7005752e] {
|
|
315
345
|
width: 1em;
|
|
316
346
|
height: 1em;
|
|
317
347
|
flex-shrink: 0;
|
|
318
348
|
}
|
|
319
|
-
.rp-icon-button__icon[data-v-
|
|
349
|
+
.rp-icon-button__icon[data-v-7005752e] {
|
|
320
350
|
display: inline-flex;
|
|
321
351
|
align-items: center;
|
|
322
352
|
justify-content: center;
|
|
323
353
|
line-height: 0;
|
|
324
354
|
}
|
|
325
|
-
.rp-icon-button__icon svg[data-v-
|
|
355
|
+
.rp-icon-button__icon svg[data-v-7005752e-s] {
|
|
326
356
|
display: block;
|
|
327
357
|
width: 1em;
|
|
328
358
|
height: 1em;
|
|
329
359
|
}
|
|
330
|
-
.rp-icon-button__spinner[data-v-
|
|
360
|
+
.rp-icon-button__spinner[data-v-7005752e] {
|
|
331
361
|
display: block;
|
|
362
|
+
width: 1em;
|
|
363
|
+
height: 1em;
|
|
364
|
+
flex-shrink: 0;
|
|
332
365
|
transform-origin: center;
|
|
333
|
-
animation: rp-
|
|
366
|
+
animation: rp-spinner-spin-7005752e 700ms linear infinite;
|
|
334
367
|
}
|
|
335
|
-
@keyframes rp-
|
|
368
|
+
@keyframes rp-spinner-spin-7005752e {
|
|
336
369
|
to {
|
|
337
370
|
transform: rotate(360deg);
|
|
338
371
|
}
|
package/dist/icon-button.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import './icon-button.css';
|
|
2
|
-
import {
|
|
2
|
+
import { n as loader_circle_default, t as getButtonColorStyle } from "./useButtonColor.js";
|
|
3
|
+
import { r as isComponentPresetColor } from "./componentColors.js";
|
|
3
4
|
import { n as bem, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
4
|
-
import { computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setAttr, setClass, setInsertionState, setProp, template, unref } from "vue";
|
|
5
|
+
import { computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, template, unref } from "vue";
|
|
5
6
|
//#region src/components/icon-button/icon-button.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
6
|
-
var t0 = template("<span data-v-
|
|
7
|
-
var t1 = template("<button data-v-
|
|
7
|
+
var t0 = template("<span data-v-7005752e class=rp-icon-button__icon aria-hidden=true>");
|
|
8
|
+
var t1 = template("<button data-v-7005752e>", 1);
|
|
8
9
|
//#endregion
|
|
9
10
|
//#region src/components/icon-button/icon-button.vue
|
|
10
11
|
var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
@@ -28,22 +29,25 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
28
29
|
},
|
|
29
30
|
setup(__props) {
|
|
30
31
|
const props = __props;
|
|
31
|
-
const isLoading = computed(() => props.loading && !props.disabled);
|
|
32
32
|
const rootClass = computed(() => [...bem("rp-button", {
|
|
33
33
|
[props.variant ?? ""]: Boolean(props.variant),
|
|
34
|
-
[`color-${props.color}`]:
|
|
34
|
+
[`color-${props.color}`]: isComponentPresetColor(props.color),
|
|
35
35
|
[`size-${props.size}`]: Boolean(props.size),
|
|
36
36
|
[`radius-${props.radius}`]: Boolean(props.radius)
|
|
37
37
|
}), "rp-icon-button"]);
|
|
38
|
+
const rootStyle = computed(() => getButtonColorStyle(props.color));
|
|
38
39
|
const n6 = t1();
|
|
39
40
|
renderEffect(() => {
|
|
41
|
+
const _loading = __props.loading;
|
|
40
42
|
setClass(n6, rootClass.value);
|
|
41
|
-
|
|
43
|
+
setStyle(n6, rootStyle.value);
|
|
44
|
+
setProp(n6, "disabled", __props.disabled || _loading || void 0);
|
|
42
45
|
setProp(n6, "type", __props.type);
|
|
43
46
|
setAttr(n6, "aria-label", __props.ariaLabel || void 0);
|
|
47
|
+
setAttr(n6, "aria-busy", _loading || void 0);
|
|
44
48
|
});
|
|
45
49
|
setInsertionState(n6, null, 0);
|
|
46
|
-
createIf(() =>
|
|
50
|
+
createIf(() => __props.loading, () => {
|
|
47
51
|
return createComponent(unref(loader_circle_default), {
|
|
48
52
|
class: "rp-icon-button__spinner",
|
|
49
53
|
"aria-hidden": "true"
|
|
@@ -56,7 +60,7 @@ var icon_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
56
60
|
}, 261);
|
|
57
61
|
return n6;
|
|
58
62
|
}
|
|
59
|
-
}), [["__scopeId", "data-v-
|
|
63
|
+
}), [["__scopeId", "data-v-7005752e"]]);
|
|
60
64
|
//#endregion
|
|
61
65
|
export { icon_button_default as t };
|
|
62
66
|
|