ropav 0.1.1 → 0.1.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 +79 -0
- package/dist/accordion.js +1 -4
- package/dist/button-link.js +2 -2
- package/dist/button.js +2 -2
- package/dist/collapse.js +1 -4
- package/dist/components/slider/index.d.ts +1 -1
- package/dist/components/slider/range-slider.d.ts +7 -11
- package/dist/components/slider/slider.d.ts +7 -14
- package/dist/components/slider/sliderCore.d.ts +7 -4
- package/dist/components/slider/types.d.ts +46 -4
- package/dist/components/slider/useRangeSlider.d.ts +2 -1
- package/dist/components/slider/useSlider.d.ts +13 -3
- package/dist/field.js +1 -1
- package/dist/input.js +1 -1
- package/dist/modal.js +1 -4
- package/dist/popover.js +1 -4
- package/dist/progress.js +1 -1
- package/dist/select.js +1 -1
- package/dist/slider.css +256 -166
- package/dist/slider.js +334 -140
- package/dist/switch.css +17 -17
- package/dist/switch.js +10 -5
- package/dist/tooltip.js +1 -4
- package/dist/unplugin-icons.d.ts +5 -0
- package/dist/unplugin-icons.js +40 -0
- package/docs/public-styles-api.md +5 -2
- package/package.json +51 -35
package/README.md
CHANGED
|
@@ -37,6 +37,85 @@ Import the components you need:
|
|
|
37
37
|
import { Button } from 'ropav';
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
## Progress and interactive ranges
|
|
41
|
+
|
|
42
|
+
Use `Progress` for read-only status and `Slider` when the user can change the value. A media seek
|
|
43
|
+
control can draw buffered ranges below the played range, reveal its thumb during interaction, and
|
|
44
|
+
preview the value under the pointer:
|
|
45
|
+
|
|
46
|
+
```vue
|
|
47
|
+
<Slider
|
|
48
|
+
v-model="currentTime"
|
|
49
|
+
:max="duration"
|
|
50
|
+
thumb="interaction"
|
|
51
|
+
:tooltip="{ anchor: 'pointer' }"
|
|
52
|
+
:format-value="formatTime"
|
|
53
|
+
>
|
|
54
|
+
<template #track-underlay="{ getPercent }">
|
|
55
|
+
<span
|
|
56
|
+
v-for="range in bufferedRanges"
|
|
57
|
+
:key="range.start"
|
|
58
|
+
class="buffered-range"
|
|
59
|
+
:style="{
|
|
60
|
+
left: `${getPercent(range.start)}%`,
|
|
61
|
+
width: `${getPercent(range.end) - getPercent(range.start)}%`,
|
|
62
|
+
}"
|
|
63
|
+
/>
|
|
64
|
+
</template>
|
|
65
|
+
<template #tooltip-content="{ formattedValue }">
|
|
66
|
+
{{ formattedValue }}
|
|
67
|
+
</template>
|
|
68
|
+
</Slider>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`track-underlay` and `track-overlay` are decorative layers below and above the selected range. Both
|
|
72
|
+
receive the normalized slider state and a clamped `getPercent(value)` helper, so consumers can draw
|
|
73
|
+
segments, markers, waveforms, or other track content without replacing slider behavior. Their
|
|
74
|
+
coordinate space follows the thumb travel, so percentage positions stay aligned with the control.
|
|
75
|
+
Set `:thumb="false"` to hide only the visual thumb while preserving the native input, hit area, and
|
|
76
|
+
keyboard behavior. An object can combine visibility and geometry, for example
|
|
77
|
+
`:thumb="{ visibility: 'interaction', size: 20 }"`.
|
|
78
|
+
|
|
79
|
+
## Icons
|
|
80
|
+
|
|
81
|
+
Ropav provides a compiler for
|
|
82
|
+
[`unplugin-icons`](https://github.com/unplugin/unplugin-icons) that emits each
|
|
83
|
+
icon as a zero-VDOM Vue Vapor component.
|
|
84
|
+
|
|
85
|
+
Install `unplugin-icons`, a matching version of `@vue/compiler-vapor`, and the
|
|
86
|
+
Iconify collection you want to use:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
pnpm add -D unplugin-icons @vue/compiler-vapor @iconify-json/lucide
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Pass `vaporIconCompiler` to `unplugin-icons`:
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
// vite.config.ts
|
|
96
|
+
import vue from '@vitejs/plugin-vue';
|
|
97
|
+
import { defineConfig } from 'vite';
|
|
98
|
+
import Icons from 'unplugin-icons/vite';
|
|
99
|
+
import { vaporIconCompiler } from 'ropav/unplugin-icons';
|
|
100
|
+
|
|
101
|
+
export default defineConfig({
|
|
102
|
+
plugins: [vue({ features: { vapor: true } }), Icons({ compiler: vaporIconCompiler() })],
|
|
103
|
+
});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Icons can then be imported on demand. Only imported icons are included in the
|
|
107
|
+
application bundle.
|
|
108
|
+
|
|
109
|
+
```vue
|
|
110
|
+
<script setup lang="ts" vapor>
|
|
111
|
+
import IconSearch from '~icons/lucide/search';
|
|
112
|
+
</script>
|
|
113
|
+
|
|
114
|
+
<template>
|
|
115
|
+
<IconSearch aria-hidden="true" />
|
|
116
|
+
</template>
|
|
117
|
+
```
|
|
118
|
+
|
|
40
119
|
## Styling contract
|
|
41
120
|
|
|
42
121
|
Use typed `classNames` and `styles`, documented state attributes, and variables listed in the packaged styles manifest. DOM nesting, internal selectors and undocumented variables are private implementation details.
|
package/dist/accordion.js
CHANGED
|
@@ -381,10 +381,7 @@ var accordion_item_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
|
|
|
381
381
|
return n8;
|
|
382
382
|
}, 1);
|
|
383
383
|
setInsertionState(n16, null, 1);
|
|
384
|
-
createComponent(VaporTransition, {
|
|
385
|
-
name: "rp-accordion-content",
|
|
386
|
-
persisted: ""
|
|
387
|
-
}, extend(() => {
|
|
384
|
+
createComponent(VaporTransition, { name: "rp-accordion-content" }, extend(() => {
|
|
388
385
|
return createIf(() => unref(shouldRenderContent), () => {
|
|
389
386
|
const n14 = t2();
|
|
390
387
|
const n13 = child(n14);
|
package/dist/button-link.js
CHANGED
|
@@ -82,7 +82,7 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
82
82
|
const n16 = child(n17, 1);
|
|
83
83
|
const n11 = child(n16, 1);
|
|
84
84
|
renderEffect(() => setDynamicProps(n17, [rootAttrs.value]));
|
|
85
|
-
setInsertionState(n17, 0
|
|
85
|
+
setInsertionState(n17, 0);
|
|
86
86
|
createIf(() => __props.loading, () => {
|
|
87
87
|
const n5 = t0();
|
|
88
88
|
renderEffect(() => setDynamicProps(n5, [unref(getPartAttrs)("loader", { class: "rp-button__loading" }), { "aria-hidden": "true" }]));
|
|
@@ -92,7 +92,7 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
92
92
|
}, 1);
|
|
93
93
|
return n5;
|
|
94
94
|
});
|
|
95
|
-
setInsertionState(n16, 0
|
|
95
|
+
setInsertionState(n16, 0);
|
|
96
96
|
createIf(() => $slots.left, () => {
|
|
97
97
|
const n9 = t0();
|
|
98
98
|
renderEffect(() => setDynamicProps(n9, [unref(getPartAttrs)("left", { class: "rp-button__left" })]));
|
package/dist/button.js
CHANGED
|
@@ -54,7 +54,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
54
54
|
const n16 = child(n17, 1);
|
|
55
55
|
const n11 = child(n16, 1);
|
|
56
56
|
renderEffect(() => setDynamicProps(n17, [rootAttrs.value]));
|
|
57
|
-
setInsertionState(n17, 0
|
|
57
|
+
setInsertionState(n17, 0);
|
|
58
58
|
createIf(() => __props.loading, () => {
|
|
59
59
|
const n5 = t0();
|
|
60
60
|
renderEffect(() => setDynamicProps(n5, [unref(getPartAttrs)("loader", { class: "rp-button__loading" }), { "aria-hidden": "true" }]));
|
|
@@ -64,7 +64,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
64
64
|
}, 1);
|
|
65
65
|
return n5;
|
|
66
66
|
});
|
|
67
|
-
setInsertionState(n16, 0
|
|
67
|
+
setInsertionState(n16, 0);
|
|
68
68
|
createIf(() => $slots.left, () => {
|
|
69
69
|
const n9 = t0();
|
|
70
70
|
renderEffect(() => setDynamicProps(n9, [unref(getPartAttrs)("left", { class: "rp-button__left" })]));
|
package/dist/collapse.js
CHANGED
|
@@ -68,10 +68,7 @@ var collapse_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
68
68
|
setInsertionState(n7, null, 0);
|
|
69
69
|
createSlot("trigger", { $: [() => publicTriggerSlotProps.value] }, null, 1);
|
|
70
70
|
setInsertionState(n7, null, 1);
|
|
71
|
-
createComponent(VaporTransition, {
|
|
72
|
-
name: "rp-collapse-content",
|
|
73
|
-
persisted: ""
|
|
74
|
-
}, extend(() => {
|
|
71
|
+
createComponent(VaporTransition, { name: "rp-collapse-content" }, extend(() => {
|
|
75
72
|
return createIf(() => unref(shouldRenderContent), () => {
|
|
76
73
|
const n5 = t0();
|
|
77
74
|
const n4 = child(n5);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { default as Slider } from './slider.js';
|
|
2
2
|
export { default as RangeSlider } from './range-slider.js';
|
|
3
3
|
export { rangeSliderParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, } from './types.js';
|
|
4
|
-
export type { RangeSliderAriaValueText, RangeSliderEndpointValueText, RangeSliderInputAttrs, RangeSliderPart, RangeSliderProps, RangeSliderThumb, RangeSliderValue, RangeSliderValidationMessage, SliderColor, SliderInputAttrs, SliderMark, SliderMarkColor, SliderMarkInput, SliderOrientation, SliderPart, SliderProps, SliderPresetColor, SliderSize,
|
|
4
|
+
export type { RangeSliderAriaValueText, RangeSliderEndpointValueText, RangeSliderInputAttrs, RangeSliderPart, RangeSliderProps, RangeSliderThumb, RangeSliderThumbOptions, RangeSliderTrackSlotProps, RangeSliderTooltip, RangeSliderTooltipOptions, RangeSliderValue, RangeSliderValidationMessage, SliderColor, SliderInputAttrs, SliderMark, SliderMarkColor, SliderMarkInput, SliderOrientation, SliderPart, SliderProps, SliderPresetColor, SliderSize, SliderThumb, SliderThumbMode, SliderThumbOptions, SliderTrackSlotProps, SliderTooltip, SliderTooltipAnchor, SliderTooltipMode, SliderTooltipOptions, SliderTooltipSlotProps, SliderValueFormatter, } from './types.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RangeSliderProps,
|
|
1
|
+
import { RangeSliderProps, RangeSliderTrackSlotProps } from './types.js';
|
|
2
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
3
|
props: import('vue').PublicProps & __VLS_PrettifyLocal<RangeSliderProps & {
|
|
4
4
|
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
|
|
@@ -11,21 +11,17 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
|
|
|
11
11
|
}>) => void;
|
|
12
12
|
attrs: any;
|
|
13
13
|
slots: {
|
|
14
|
-
default
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
percent: RangeSliderValue;
|
|
20
|
-
}) => any;
|
|
21
|
-
} & {
|
|
22
|
-
thumb?: (props: {
|
|
14
|
+
default?(): unknown;
|
|
15
|
+
value?(props: Pick<RangeSliderTrackSlotProps, "value" | "formattedValue" | "percent">): unknown;
|
|
16
|
+
'track-underlay'?(props: RangeSliderTrackSlotProps): unknown;
|
|
17
|
+
'track-overlay'?(props: RangeSliderTrackSlotProps): unknown;
|
|
18
|
+
thumb?(props: {
|
|
23
19
|
thumb: "lower" | "upper";
|
|
24
20
|
index: number;
|
|
25
21
|
value: number;
|
|
26
22
|
formattedValue: string | number;
|
|
27
23
|
percent: number;
|
|
28
|
-
})
|
|
24
|
+
}): unknown;
|
|
29
25
|
};
|
|
30
26
|
emit: (evt: "update:modelValue", value: [number, number]) => void;
|
|
31
27
|
}>) => import('vue').VNode & {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SliderProps } from './types.js';
|
|
1
|
+
import { SliderProps, SliderTooltipSlotProps, SliderTrackSlotProps } from './types.js';
|
|
2
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
3
|
props: import('vue').PublicProps & __VLS_PrettifyLocal<SliderProps & {
|
|
4
4
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
@@ -11,19 +11,12 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
|
|
|
11
11
|
}>) => void;
|
|
12
12
|
attrs: any;
|
|
13
13
|
slots: {
|
|
14
|
-
default
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}) => any;
|
|
21
|
-
} & {
|
|
22
|
-
thumb?: (props: {
|
|
23
|
-
value: number;
|
|
24
|
-
formattedValue: string | number;
|
|
25
|
-
percent: number;
|
|
26
|
-
}) => any;
|
|
14
|
+
default?(): unknown;
|
|
15
|
+
value?(props: Pick<SliderTrackSlotProps, "value" | "formattedValue" | "percent">): unknown;
|
|
16
|
+
'track-underlay'?(props: SliderTrackSlotProps): unknown;
|
|
17
|
+
'track-overlay'?(props: SliderTrackSlotProps): unknown;
|
|
18
|
+
thumb?(props: Pick<SliderTrackSlotProps, "value" | "formattedValue" | "percent">): unknown;
|
|
19
|
+
'tooltip-content'?(props: SliderTooltipSlotProps): unknown;
|
|
27
20
|
};
|
|
28
21
|
emit: (evt: "update:modelValue", value: number) => void;
|
|
29
22
|
}>) => import('vue').VNode & {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties } from 'vue';
|
|
2
|
-
import { SliderMarkInput, SliderProps,
|
|
2
|
+
import { RangeSliderTooltip, RangeSliderThumbOptions, SliderMarkInput, SliderProps, SliderThumb, SliderThumbMode, SliderThumbOptions, SliderTooltip, SliderTooltipAnchor, SliderTooltipMode, SliderTooltipOptions } from './types.js';
|
|
3
3
|
export interface SliderBounds {
|
|
4
4
|
min: number;
|
|
5
5
|
max: number;
|
|
@@ -19,7 +19,9 @@ export declare function normalizeSliderStep(step: number | 'any'): number | "any
|
|
|
19
19
|
export declare function normalizeSliderValue(value: number, min: number, max: number, step: number | 'any'): number;
|
|
20
20
|
export declare function getSliderValuePercent(value: number, min: number, max: number): number;
|
|
21
21
|
export declare function setSliderStyleValue(style: CSSProperties, property: `--${string}`, value: string | undefined): void;
|
|
22
|
-
export declare function applySliderThumbStyle(style: CSSProperties,
|
|
22
|
+
export declare function applySliderThumbStyle(style: CSSProperties, thumb: RangeSliderThumbOptions | undefined, properties: SliderThumbStyleProperties): void;
|
|
23
|
+
export declare function getSliderThumbOptions(thumb: SliderThumb): SliderThumbOptions;
|
|
24
|
+
export declare function getSliderThumbMode(thumb: SliderThumb): SliderThumbMode | false;
|
|
23
25
|
export declare function createSliderMarkItems(marks: SliderMarkInput[] | undefined, min: number, max: number, isFilled: (value: number, percent: number) => boolean, properties: SliderMarkStyleProperties): {
|
|
24
26
|
key: string;
|
|
25
27
|
value: number;
|
|
@@ -30,6 +32,7 @@ export declare function createSliderMarkItems(marks: SliderMarkInput[] | undefin
|
|
|
30
32
|
}[];
|
|
31
33
|
export declare function getFormattedSliderValue(value: number, formatter: SliderProps['formatValue']): string | number;
|
|
32
34
|
export declare function getSliderAriaValueText(value: number, ariaValueText: string | SliderProps['formatValue'] | undefined, formatter: SliderProps['formatValue']): string | undefined;
|
|
33
|
-
export declare function getSliderTooltipOptions(tooltip:
|
|
34
|
-
export declare function getSliderTooltipMode(tooltip:
|
|
35
|
+
export declare function getSliderTooltipOptions(tooltip: SliderTooltip | RangeSliderTooltip): SliderTooltipOptions | Exclude<RangeSliderTooltip, false | SliderTooltipMode>;
|
|
36
|
+
export declare function getSliderTooltipMode(tooltip: SliderTooltip | RangeSliderTooltip): SliderTooltipMode | false;
|
|
37
|
+
export declare function getSliderTooltipAnchor(tooltip: SliderTooltip): SliderTooltipAnchor;
|
|
35
38
|
export {};
|
|
@@ -14,6 +14,7 @@ export type SliderColor = ComponentColorValue;
|
|
|
14
14
|
export type SliderSize = (typeof sliderSizes)[number];
|
|
15
15
|
export type SliderOrientation = (typeof sliderOrientations)[number];
|
|
16
16
|
export type SliderValueFormatter = (value: number) => string | number;
|
|
17
|
+
export type SliderThumbMode = 'always' | 'interaction';
|
|
17
18
|
export type RangeSliderValue = [number, number];
|
|
18
19
|
export type RangeSliderThumb = 'lower' | 'upper';
|
|
19
20
|
export type SliderInputAttrs = InputHTMLAttributes;
|
|
@@ -22,10 +23,44 @@ export type RangeSliderEndpointValueText = string | SliderValueFormatter;
|
|
|
22
23
|
export type RangeSliderAriaValueText = RangeSliderEndpointValueText | [RangeSliderEndpointValueText, RangeSliderEndpointValueText];
|
|
23
24
|
export type RangeSliderValidationMessage = string | [string | undefined, string | undefined];
|
|
24
25
|
export type SliderTooltipMode = 'hover' | 'always';
|
|
25
|
-
|
|
26
|
+
type SliderTooltipBaseOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'offset' | 'openDelay' | 'arrow'>;
|
|
27
|
+
export type SliderTooltipAnchor = 'thumb' | 'pointer';
|
|
28
|
+
export type SliderTooltipOptions = (SliderTooltipBaseOptions & {
|
|
29
|
+
anchor?: 'thumb';
|
|
30
|
+
mode?: SliderTooltipMode;
|
|
31
|
+
}) | (SliderTooltipBaseOptions & {
|
|
32
|
+
anchor: 'pointer';
|
|
33
|
+
mode?: 'hover';
|
|
34
|
+
});
|
|
35
|
+
export type RangeSliderTooltipOptions = SliderTooltipBaseOptions & {
|
|
26
36
|
mode?: SliderTooltipMode;
|
|
27
37
|
};
|
|
28
38
|
export type SliderTooltip = false | SliderTooltipMode | SliderTooltipOptions;
|
|
39
|
+
export type RangeSliderTooltip = false | SliderTooltipMode | RangeSliderTooltipOptions;
|
|
40
|
+
export interface SliderTooltipSlotProps {
|
|
41
|
+
value: number;
|
|
42
|
+
formattedValue: string | number;
|
|
43
|
+
percent: number;
|
|
44
|
+
anchor: SliderTooltipAnchor;
|
|
45
|
+
}
|
|
46
|
+
export interface SliderTrackSlotProps {
|
|
47
|
+
value: number;
|
|
48
|
+
formattedValue: string | number;
|
|
49
|
+
percent: number;
|
|
50
|
+
min: number;
|
|
51
|
+
max: number;
|
|
52
|
+
orientation: SliderOrientation;
|
|
53
|
+
getPercent: (value: number) => number;
|
|
54
|
+
}
|
|
55
|
+
export interface RangeSliderTrackSlotProps {
|
|
56
|
+
value: RangeSliderValue;
|
|
57
|
+
formattedValue: [string | number, string | number];
|
|
58
|
+
percent: RangeSliderValue;
|
|
59
|
+
min: number;
|
|
60
|
+
max: number;
|
|
61
|
+
orientation: SliderOrientation;
|
|
62
|
+
getPercent: (value: number) => number;
|
|
63
|
+
}
|
|
29
64
|
export type SliderMarkColor = SliderColor;
|
|
30
65
|
export interface SliderMark {
|
|
31
66
|
value: number;
|
|
@@ -34,11 +69,15 @@ export interface SliderMark {
|
|
|
34
69
|
hidden?: boolean;
|
|
35
70
|
}
|
|
36
71
|
export type SliderMarkInput = number | SliderMark;
|
|
37
|
-
export interface
|
|
72
|
+
export interface RangeSliderThumbOptions {
|
|
38
73
|
size?: number | string;
|
|
39
74
|
border?: number | string;
|
|
40
75
|
padding?: number | string;
|
|
41
76
|
}
|
|
77
|
+
export interface SliderThumbOptions extends RangeSliderThumbOptions {
|
|
78
|
+
visibility?: SliderThumbMode;
|
|
79
|
+
}
|
|
80
|
+
export type SliderThumb = false | SliderThumbMode | SliderThumbOptions;
|
|
42
81
|
export interface SliderProps extends StylesApiProps<SliderPart> {
|
|
43
82
|
id?: string;
|
|
44
83
|
name?: string;
|
|
@@ -49,7 +88,7 @@ export interface SliderProps extends StylesApiProps<SliderPart> {
|
|
|
49
88
|
max?: number;
|
|
50
89
|
step?: number | 'any';
|
|
51
90
|
marks?: SliderMarkInput[];
|
|
52
|
-
|
|
91
|
+
thumb?: SliderThumb;
|
|
53
92
|
tooltip?: SliderTooltip;
|
|
54
93
|
formatValue?: SliderValueFormatter;
|
|
55
94
|
color?: SliderColor;
|
|
@@ -65,13 +104,16 @@ export interface SliderProps extends StylesApiProps<SliderPart> {
|
|
|
65
104
|
inputAttrs?: SliderInputAttrs;
|
|
66
105
|
validationMessage?: string;
|
|
67
106
|
}
|
|
68
|
-
export interface RangeSliderProps extends Omit<SliderProps, 'modelValue' | 'defaultValue' | 'name' | 'ariaLabel' | 'ariaValueText' | 'inputAttrs' | 'validationMessage' | 'classNames' | 'styles'>, StylesApiProps<RangeSliderPart> {
|
|
107
|
+
export interface RangeSliderProps extends Omit<SliderProps, 'modelValue' | 'defaultValue' | 'name' | 'ariaLabel' | 'ariaValueText' | 'inputAttrs' | 'validationMessage' | 'thumb' | 'tooltip' | 'classNames' | 'styles'>, StylesApiProps<RangeSliderPart> {
|
|
69
108
|
modelValue?: RangeSliderValue;
|
|
70
109
|
defaultValue?: RangeSliderValue;
|
|
71
110
|
minRange?: number;
|
|
111
|
+
thumb?: RangeSliderThumbOptions;
|
|
112
|
+
tooltip?: RangeSliderTooltip;
|
|
72
113
|
name?: string | [string, string];
|
|
73
114
|
ariaLabel?: [string, string];
|
|
74
115
|
ariaValueText?: RangeSliderAriaValueText;
|
|
75
116
|
inputAttrs?: RangeSliderInputAttrs;
|
|
76
117
|
validationMessage?: RangeSliderValidationMessage;
|
|
77
118
|
}
|
|
119
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties } from 'vue';
|
|
2
|
-
import { RangeSliderProps, RangeSliderThumb, RangeSliderValue } from './types.js';
|
|
2
|
+
import { RangeSliderProps, RangeSliderTrackSlotProps, RangeSliderThumb, RangeSliderValue } from './types.js';
|
|
3
3
|
type RangeSliderStateProps = Readonly<RangeSliderProps & {
|
|
4
4
|
min: number;
|
|
5
5
|
max: number;
|
|
@@ -33,6 +33,7 @@ export declare function useRangeSlider(props: RangeSliderStateProps, emitUpdate:
|
|
|
33
33
|
filled: boolean;
|
|
34
34
|
style: CSSProperties;
|
|
35
35
|
}[]>;
|
|
36
|
+
trackSlotProps: import('vue').ComputedRef<RangeSliderTrackSlotProps>;
|
|
36
37
|
trackStyle: import('vue').ComputedRef<CSSProperties>;
|
|
37
38
|
activeThumb: import('vue').Ref<RangeSliderThumb | undefined, RangeSliderThumb | undefined>;
|
|
38
39
|
tooltipVisible: import('vue').ComputedRef<boolean>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { CSSProperties } from 'vue';
|
|
2
|
-
import { SliderProps } from './types.js';
|
|
2
|
+
import { SliderProps, SliderTrackSlotProps } from './types.js';
|
|
3
3
|
export { getSliderValuePercent, normalizeSliderBounds, normalizeSliderStep, normalizeSliderValue, } from './sliderCore.js';
|
|
4
4
|
type SliderStateProps = Readonly<SliderProps & {
|
|
5
5
|
min: number;
|
|
6
6
|
max: number;
|
|
7
7
|
step: number | 'any';
|
|
8
8
|
tooltip: NonNullable<SliderProps['tooltip']>;
|
|
9
|
+
thumb: NonNullable<SliderProps['thumb']>;
|
|
9
10
|
orientation: NonNullable<SliderProps['orientation']>;
|
|
10
11
|
}>;
|
|
11
12
|
export declare function useSlider(props: SliderStateProps, emitUpdate: (value: number) => void, getValue?: () => number): {
|
|
@@ -26,20 +27,29 @@ export declare function useSlider(props: SliderStateProps, emitUpdate: (value: n
|
|
|
26
27
|
filled: boolean;
|
|
27
28
|
style: CSSProperties;
|
|
28
29
|
}[]>;
|
|
30
|
+
thumbMode: import('vue').ComputedRef<false | import('./types.js').SliderThumbMode>;
|
|
31
|
+
trackSlotProps: import('vue').ComputedRef<SliderTrackSlotProps>;
|
|
29
32
|
trackStyle: import('vue').ComputedRef<CSSProperties>;
|
|
33
|
+
trackHovered: import('vue').Ref<boolean, boolean>;
|
|
34
|
+
dragging: import('vue').Ref<boolean, boolean>;
|
|
30
35
|
tooltipVisible: import('vue').ComputedRef<boolean>;
|
|
31
36
|
tooltipOpen: import('vue').ComputedRef<boolean>;
|
|
37
|
+
tooltipAnchor: import('vue').ComputedRef<import('./types.js').SliderTooltipAnchor>;
|
|
32
38
|
tooltipPlacement: import('vue').ComputedRef<import('../tooltip/index.js').TooltipPlacement>;
|
|
33
39
|
tooltipId: import('vue').ComputedRef<string | undefined>;
|
|
34
40
|
tooltipColor: import('vue').ComputedRef<import('../../utils/componentColors.js').ComponentColorValue | undefined>;
|
|
35
41
|
tooltipOffset: import('vue').ComputedRef<import('../floating/index.js').FloatingOffset | undefined>;
|
|
36
42
|
tooltipOpenDelay: import('vue').ComputedRef<number>;
|
|
37
43
|
tooltipArrow: import('vue').ComputedRef<boolean>;
|
|
44
|
+
tooltipValue: import('vue').ComputedRef<number>;
|
|
45
|
+
tooltipPercent: import('vue').ComputedRef<number>;
|
|
46
|
+
tooltipFormattedValue: import('vue').ComputedRef<string | number>;
|
|
38
47
|
tooltipContent: import('vue').ComputedRef<string>;
|
|
39
48
|
onInput: (e: Event) => void;
|
|
40
49
|
onTooltipPointerDown: (event: PointerEvent) => void;
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
onTooltipPointerMove: (event: PointerEvent) => void;
|
|
51
|
+
onTooltipTrackEnter: (event: PointerEvent) => void;
|
|
52
|
+
onTooltipTrackLeave: () => void;
|
|
43
53
|
onTooltipFocusIn: () => void;
|
|
44
54
|
onTooltipFocusOut: () => void;
|
|
45
55
|
onTooltipKeydown: (event: KeyboardEvent) => void;
|
package/dist/field.js
CHANGED
|
@@ -109,7 +109,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
109
109
|
const n20 = t4();
|
|
110
110
|
const n10 = child(n20, 1);
|
|
111
111
|
renderEffect(() => setDynamicProps(n20, [rootAttrs.value]));
|
|
112
|
-
setInsertionState(n20, 0
|
|
112
|
+
setInsertionState(n20, 0);
|
|
113
113
|
createIf(() => unref(hasLabel), () => {
|
|
114
114
|
const n8 = t2();
|
|
115
115
|
renderEffect(() => setDynamicProps(n8, [
|
package/dist/input.js
CHANGED
|
@@ -155,7 +155,7 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
155
155
|
const n9 = t1();
|
|
156
156
|
const n4 = child(n9, 1);
|
|
157
157
|
renderEffect(() => setDynamicProps(n9, [rootAttrs.value]));
|
|
158
|
-
setInsertionState(n9, 0
|
|
158
|
+
setInsertionState(n9, 0);
|
|
159
159
|
createIf(() => $slots.left, () => {
|
|
160
160
|
const n3 = t0();
|
|
161
161
|
renderEffect(() => setDynamicProps(n3, [unref(getPartAttrs)("left", { class: "rp-input__left" })]));
|
package/dist/modal.js
CHANGED
|
@@ -210,10 +210,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
|
|
|
210
210
|
teleport: () => __props.teleport,
|
|
211
211
|
"teleport-to": () => __props.teleportTo
|
|
212
212
|
}, () => {
|
|
213
|
-
return createComponent(VaporTransition, {
|
|
214
|
-
name: "rp-modal",
|
|
215
|
-
persisted: ""
|
|
216
|
-
}, extend(() => {
|
|
213
|
+
return createComponent(VaporTransition, { name: "rp-modal" }, extend(() => {
|
|
217
214
|
return createIf(() => unref(shouldRender), () => {
|
|
218
215
|
const n30 = t2();
|
|
219
216
|
renderEffect(() => setDynamicProps(n30, [getLayeredRootAttrs(_slotProps0.zIndex)]));
|
package/dist/popover.js
CHANGED
|
@@ -421,10 +421,7 @@ var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
421
421
|
to: () => unref(teleportTo),
|
|
422
422
|
disabled: () => !__props.teleport
|
|
423
423
|
}, () => {
|
|
424
|
-
return createComponent(VaporTransition, {
|
|
425
|
-
name: "rp-popover-content",
|
|
426
|
-
persisted: ""
|
|
427
|
-
}, extend(() => {
|
|
424
|
+
return createComponent(VaporTransition, { name: "rp-popover-content" }, extend(() => {
|
|
428
425
|
return createIf(() => unref(shouldRenderContent), () => {
|
|
429
426
|
const n13 = t1();
|
|
430
427
|
renderEffect(() => setDynamicProps(n13, [
|
package/dist/progress.js
CHANGED
|
@@ -126,7 +126,7 @@ var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
126
126
|
const n16 = child(n17, 1);
|
|
127
127
|
const n15 = child(n16);
|
|
128
128
|
renderEffect(() => setDynamicProps(n17, [rootAttrs.value]));
|
|
129
|
-
setInsertionState(n17, 0
|
|
129
|
+
setInsertionState(n17, 0);
|
|
130
130
|
createIf(() => $slots.default || !unref(isIndeterminate) && ($slots.value || __props.showValue), () => {
|
|
131
131
|
const n14 = t2();
|
|
132
132
|
setInsertionState(n14, null, 0);
|
package/dist/select.js
CHANGED
|
@@ -449,7 +449,7 @@ var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
449
449
|
setText(x4, toDisplayString(unref(displayLabel) || __props.placeholder));
|
|
450
450
|
setDynamicProps(n11, [_getPartAttrs("indicator", { class: "rp-select__indicator" })]);
|
|
451
451
|
});
|
|
452
|
-
setInsertionState(n11, 0
|
|
452
|
+
setInsertionState(n11, 0);
|
|
453
453
|
createIf(() => unref(canClear), () => {
|
|
454
454
|
const n8 = t1();
|
|
455
455
|
renderEffect(() => setDynamicProps(n8, [
|