ropav 0.0.8 → 0.0.9

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.
Files changed (146) hide show
  1. package/dist/accordion.css +10 -10
  2. package/dist/accordion.js +2 -2
  3. package/dist/alert.css +109 -0
  4. package/dist/alert.js +168 -0
  5. package/dist/aspect-ratio.css +17 -0
  6. package/dist/aspect-ratio.js +26 -0
  7. package/dist/avatar.css +97 -0
  8. package/dist/avatar.js +161 -0
  9. package/dist/badge.css +40 -115
  10. package/dist/badge.js +19 -16
  11. package/dist/base.css +609 -180
  12. package/dist/button-link.css +161 -0
  13. package/dist/button-link.js +108 -0
  14. package/dist/button.css +50 -229
  15. package/dist/button.js +7 -9
  16. package/dist/card.css +12 -12
  17. package/dist/check.js +12 -0
  18. package/dist/checkbox.css +16 -57
  19. package/dist/checkbox.js +14 -31
  20. package/dist/collapse.css +2 -2
  21. package/dist/collapse.js +1 -1
  22. package/dist/color-input.css +108 -0
  23. package/dist/color-input.js +344 -0
  24. package/dist/color-picker.css +304 -0
  25. package/dist/color-picker.js +717 -0
  26. package/dist/color-picker2.js +18 -0
  27. package/dist/color-swatch.css +50 -0
  28. package/dist/color-swatch.js +73 -0
  29. package/dist/color.js +190 -0
  30. package/dist/componentColors.js +206 -13
  31. package/dist/components/alert/alert.d.ts +30 -0
  32. package/dist/components/alert/index.d.ts +3 -0
  33. package/dist/components/alert/index.js +2 -0
  34. package/dist/components/alert/types.d.ts +20 -0
  35. package/dist/components/alert/useAlertColor.d.ts +3 -0
  36. package/dist/components/aspect-ratio/aspect-ratio.d.ts +21 -0
  37. package/dist/components/aspect-ratio/index.d.ts +2 -0
  38. package/dist/components/aspect-ratio/index.js +2 -0
  39. package/dist/components/aspect-ratio/types.d.ts +3 -0
  40. package/dist/components/avatar/avatar.d.ts +24 -0
  41. package/dist/components/avatar/index.d.ts +3 -0
  42. package/dist/components/avatar/index.js +2 -0
  43. package/dist/components/avatar/types.d.ts +20 -0
  44. package/dist/components/avatar/useAvatarColor.d.ts +3 -0
  45. package/dist/components/badge/types.d.ts +2 -1
  46. package/dist/components/badge/useBadgeColor.d.ts +3 -8
  47. package/dist/components/button/types.d.ts +1 -0
  48. package/dist/components/button/useButtonColor.d.ts +3 -13
  49. package/dist/components/button-link/button-link.d.ts +27 -0
  50. package/dist/components/button-link/index.d.ts +2 -0
  51. package/dist/components/button-link/index.js +2 -0
  52. package/dist/components/button-link/types.d.ts +20 -0
  53. package/dist/components/checkbox/types.d.ts +1 -0
  54. package/dist/components/checkbox/useCheckbox.d.ts +2 -4
  55. package/dist/components/color-input/color-input.d.ts +29 -0
  56. package/dist/components/color-input/index.d.ts +2 -0
  57. package/dist/components/color-input/index.js +2 -0
  58. package/dist/components/color-input/types.d.ts +34 -0
  59. package/dist/components/color-input/useColorInput.d.ts +27 -0
  60. package/dist/components/color-input/useColorInputEyeDropper.d.ts +13 -0
  61. package/dist/components/color-input/useColorInputPopover.d.ts +11 -0
  62. package/dist/components/color-input/useColorInputValue.d.ts +8 -0
  63. package/dist/components/color-picker/color-picker-saturation.d.ts +21 -0
  64. package/dist/components/color-picker/color-picker-slider.d.ts +21 -0
  65. package/dist/components/color-picker/color-picker-utils.d.ts +23 -0
  66. package/dist/components/color-picker/color-picker.d.ts +23 -0
  67. package/dist/components/color-picker/index.d.ts +3 -0
  68. package/dist/components/color-picker/index.js +3 -0
  69. package/dist/components/color-picker/types.d.ts +39 -0
  70. package/dist/components/color-picker/useColorPickerDrag.d.ts +11 -0
  71. package/dist/components/color-picker/useColorPickerSwatches.d.ts +21 -0
  72. package/dist/components/color-picker/useColorPickerValue.d.ts +15 -0
  73. package/dist/components/color-swatch/color-swatch.d.ts +21 -0
  74. package/dist/components/color-swatch/index.d.ts +2 -0
  75. package/dist/components/color-swatch/index.js +2 -0
  76. package/dist/components/color-swatch/types.d.ts +6 -0
  77. package/dist/components/color-swatch/useColorSwatchColor.d.ts +5 -0
  78. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  79. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +1 -1
  80. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +1 -1
  81. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +1 -1
  82. package/dist/components/field/types.d.ts +0 -2
  83. package/dist/components/field/useField.d.ts +0 -2
  84. package/dist/components/icon-button/types.d.ts +1 -0
  85. package/dist/components/input/types.d.ts +3 -0
  86. package/dist/components/number-input/index.d.ts +2 -0
  87. package/dist/components/number-input/index.js +2 -0
  88. package/dist/components/number-input/number-input.d.ts +29 -0
  89. package/dist/components/number-input/types.d.ts +34 -0
  90. package/dist/components/number-input/useNumberInput.d.ts +31 -0
  91. package/dist/components/popover/index.d.ts +1 -0
  92. package/dist/components/popover/index.js +2 -1
  93. package/dist/components/popover/types.d.ts +2 -1
  94. package/dist/components/progress/types.d.ts +1 -1
  95. package/dist/components/radio/types.d.ts +3 -0
  96. package/dist/components/radio/useRadio.d.ts +2 -4
  97. package/dist/components/select/index.d.ts +1 -1
  98. package/dist/components/select/types.d.ts +3 -0
  99. package/dist/components/slider/index.d.ts +2 -1
  100. package/dist/components/slider/index.js +2 -2
  101. package/dist/components/slider/range-slider.d.ts +45 -0
  102. package/dist/components/slider/types.d.ts +14 -2
  103. package/dist/components/slider/useRangeSlider.d.ts +59 -0
  104. package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +7 -0
  105. package/dist/components/slider/useRangeSliderTooltipTransition.d.ts +4 -0
  106. package/dist/components/switch/useSwitch.d.ts +2 -3
  107. package/dist/components/tooltip/types.d.ts +1 -0
  108. package/dist/dropdown-menu.css +17 -17
  109. package/dist/field.css +15 -18
  110. package/dist/field.js +17 -35
  111. package/dist/icon-button.css +57 -236
  112. package/dist/icon-button.js +5 -6
  113. package/dist/index.d.ts +8 -0
  114. package/dist/index.js +16 -4
  115. package/dist/input.css +40 -46
  116. package/dist/input.js +39 -21
  117. package/dist/minus.js +12 -0
  118. package/dist/modal.css +9 -9
  119. package/dist/modal.js +1 -1
  120. package/dist/number-input.css +86 -0
  121. package/dist/number-input.js +350 -0
  122. package/dist/overlay.css +5 -5
  123. package/dist/overlay.js +3 -3
  124. package/dist/popover.css +54 -21
  125. package/dist/popover.js +8 -5
  126. package/dist/popover2.js +17 -0
  127. package/dist/progress.css +9 -30
  128. package/dist/progress.js +3 -6
  129. package/dist/radio.css +34 -62
  130. package/dist/radio.js +28 -16
  131. package/dist/select.css +105 -61
  132. package/dist/select.js +12 -8
  133. package/dist/slider.css +508 -41
  134. package/dist/slider.js +1122 -48
  135. package/dist/switch.css +19 -44
  136. package/dist/switch.js +4 -5
  137. package/dist/tabs.css +36 -36
  138. package/dist/tabs.js +1 -1
  139. package/dist/textarea.css +33 -25
  140. package/dist/tooltip.css +7 -35
  141. package/dist/tooltip.js +13 -8
  142. package/dist/useButtonColor.js +16 -14
  143. package/package.json +40 -8
  144. package/src/styles/_mixins.scss +25 -41
  145. package/src/styles/_tokens.scss +615 -182
  146. package/src/styles/_variables.scss +177 -49
@@ -7,7 +7,7 @@ type UseDropdownSubmenusOptions = {
7
7
  focusItem: (target: Exclude<SubmenuFocusTarget, false>, menuPath?: ItemPath) => boolean;
8
8
  };
9
9
  export declare function useDropdownSubmenus({ focusedPath, getItemAtPath, focusItem, }: UseDropdownSubmenusOptions): {
10
- openSubmenuPath: Ref<number[], import('./types').DropdownMenuItemPath | number[]>;
10
+ openSubmenuPath: Ref<number[], number[] | import('./types').DropdownMenuItemPath>;
11
11
  resetSubmenus: () => void;
12
12
  isSubmenuOpen: (path: ItemPath) => boolean;
13
13
  closeSubmenusAfter: (menuPath: ItemPath) => void;
@@ -13,8 +13,6 @@ export interface FieldProps {
13
13
  id?: string;
14
14
  label?: string;
15
15
  description?: string;
16
- message?: string;
17
- error?: string;
18
16
  disabled?: boolean;
19
17
  required?: boolean;
20
18
  invalid?: boolean;
@@ -3,9 +3,7 @@ export declare function useField(props: Readonly<FieldProps>): {
3
3
  controlId: import('vue').ComputedRef<string>;
4
4
  labelId: import('vue').ComputedRef<string>;
5
5
  descriptionId: import('vue').ComputedRef<string>;
6
- messageId: import('vue').ComputedRef<string>;
7
6
  isInvalid: import('vue').ComputedRef<boolean>;
8
- messageText: import('vue').ComputedRef<string | undefined>;
9
7
  hasLabel: import('vue').ComputedRef<boolean>;
10
8
  hasDescription: import('vue').ComputedRef<boolean>;
11
9
  hasMessage: import('vue').ComputedRef<boolean>;
@@ -7,6 +7,7 @@ export interface IconButtonProps {
7
7
  ariaLabel: string;
8
8
  variant?: IconButtonVariant;
9
9
  color?: IconButtonColor;
10
+ autoContrast?: boolean;
10
11
  size?: IconButtonSize;
11
12
  radius?: IconButtonRadius;
12
13
  type?: 'button' | 'submit' | 'reset';
@@ -1,3 +1,4 @@
1
+ import { InputHTMLAttributes } from 'vue';
1
2
  export type InputRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
2
3
  export type InputSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
4
  export interface InputProps {
@@ -16,4 +17,6 @@ export interface InputProps {
16
17
  ariaLabel?: string;
17
18
  describedby?: string;
18
19
  labelledby?: string;
20
+ inputAttrs?: InputHTMLAttributes;
21
+ validationMessage?: string;
19
22
  }
@@ -0,0 +1,2 @@
1
+ export { default as NumberInput } from './number-input';
2
+ export type { NumberInputControlsPosition, NumberInputProps, NumberInputRadius, NumberInputSize, NumberInputTextAlign, NumberInputValue, } from './types';
@@ -0,0 +1,2 @@
1
+ import { t as number_input_default } from "../../number-input.js";
2
+ export { number_input_default as NumberInput };
@@ -0,0 +1,29 @@
1
+ import { NumberInputProps, NumberInputValue } 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<NumberInputProps & {
4
+ "onUpdate:modelValue"?: ((value: NumberInputValue) => any) | undefined;
5
+ }> & (typeof globalThis extends {
6
+ __VLS_PROPS_FALLBACK: infer P;
7
+ } ? P : {});
8
+ expose: (exposed: {}) => void;
9
+ attrs: any;
10
+ slots: {
11
+ 'increment-icon'?: (props: {}) => any;
12
+ } & {
13
+ 'decrement-icon'?: (props: {}) => any;
14
+ } & {
15
+ 'increment-icon'?: (props: {}) => any;
16
+ } & {
17
+ 'decrement-icon'?: (props: {}) => any;
18
+ };
19
+ emit: (evt: "update:modelValue", value: NumberInputValue) => void;
20
+ }>) => import('vue').VNode & {
21
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
22
+ };
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
26
+ [K in keyof T]: T[K];
27
+ } : {
28
+ [K in keyof T as K]: T[K];
29
+ }) & {};
@@ -0,0 +1,34 @@
1
+ import { InputHTMLAttributes } from 'vue';
2
+ import { InputRadius, InputSize } from '../input/types';
3
+ export type NumberInputValue = number | null;
4
+ export type NumberInputRadius = InputRadius;
5
+ export type NumberInputSize = InputSize;
6
+ export type NumberInputControlsPosition = 'left' | 'right' | 'split';
7
+ export type NumberInputTextAlign = 'left' | 'center' | 'right';
8
+ export interface NumberInputProps {
9
+ id?: string;
10
+ name?: string;
11
+ modelValue: NumberInputValue;
12
+ min?: number;
13
+ max?: number;
14
+ step?: number;
15
+ size?: NumberInputSize;
16
+ radius?: NumberInputRadius;
17
+ placeholder?: string;
18
+ controls?: boolean;
19
+ controlsPosition?: NumberInputControlsPosition;
20
+ textAlign?: NumberInputTextAlign;
21
+ clampOnBlur?: boolean;
22
+ disabled?: boolean;
23
+ readonly?: boolean;
24
+ required?: boolean;
25
+ invalid?: boolean;
26
+ valid?: boolean;
27
+ ariaLabel?: string;
28
+ describedby?: string;
29
+ labelledby?: string;
30
+ inputAttrs?: InputHTMLAttributes;
31
+ validationMessage?: string;
32
+ incrementLabel?: string;
33
+ decrementLabel?: string;
34
+ }
@@ -0,0 +1,31 @@
1
+ import { InputHTMLAttributes } from 'vue';
2
+ import { NumberInputControlsPosition, NumberInputProps, NumberInputTextAlign, NumberInputValue } from './types';
3
+ export interface NumberInputBounds {
4
+ min: number | undefined;
5
+ max: number | undefined;
6
+ }
7
+ type StepDirection = -1 | 1;
8
+ export type NumberInputControl = 'decrement' | 'increment';
9
+ export declare function normalizeNumberInputBounds(min: number | undefined, max: number | undefined): NumberInputBounds;
10
+ export declare function normalizeNumberInputStep(step: number | undefined): number;
11
+ export declare function clampNumberInputValue(value: number, bounds: NumberInputBounds): number;
12
+ export declare function stepNumberInputValue(value: NumberInputValue, direction: StepDirection, step: number, bounds: NumberInputBounds): number;
13
+ export declare function parseNumberInputValue(value: string): NumberInputValue;
14
+ export declare function normalizeNumberInputControlsPosition(position: NumberInputControlsPosition | undefined): NumberInputControlsPosition;
15
+ export declare function normalizeNumberInputTextAlign(textAlign: NumberInputTextAlign | undefined): NumberInputTextAlign;
16
+ export declare function useNumberInput(props: Readonly<NumberInputProps>, emitUpdate: (value: NumberInputValue) => void): {
17
+ control: import('../../composables/useControlState').ControlState;
18
+ rootClass: import('vue').ComputedRef<string[]>;
19
+ bounds: import('vue').ComputedRef<NumberInputBounds>;
20
+ nativeStep: import('vue').ComputedRef<number>;
21
+ nativeInputAttrs: import('vue').ComputedRef<InputHTMLAttributes>;
22
+ modelInputValue: import('vue').ComputedRef<string>;
23
+ leftControls: import('vue').ComputedRef<NumberInputControl[]>;
24
+ rightControls: import('vue').ComputedRef<NumberInputControl[]>;
25
+ canIncrement: import('vue').ComputedRef<boolean>;
26
+ canDecrement: import('vue').ComputedRef<boolean>;
27
+ increment: () => boolean;
28
+ decrement: () => boolean;
29
+ onInputUpdate: (value: string) => void;
30
+ };
31
+ export {};
@@ -1,2 +1,3 @@
1
1
  export { default as Popover } from './popover';
2
+ export { popoverPlacements } from './types';
2
3
  export type { PopoverContentSlotProps, PopoverOffset, PopoverOffsetOptions, PopoverPlacement, PopoverProps, PopoverRole, PopoverSlotProps, PopoverTarget, PopoverTriggerProps, } from './types';
@@ -1,2 +1,3 @@
1
1
  import { t as popover_default } from "../../popover.js";
2
- export { popover_default as Popover };
2
+ import { t as popoverPlacements } from "../../popover2.js";
3
+ export { popover_default as Popover, popoverPlacements };
@@ -1,5 +1,6 @@
1
1
  import { Ref } from 'vue';
2
- export type PopoverPlacement = 'top' | 'right' | 'bottom' | 'left';
2
+ export declare const popoverPlacements: readonly ["top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-start", "bottom", "bottom-end", "left-start", "left", "left-end"];
3
+ export type PopoverPlacement = (typeof popoverPlacements)[number];
3
4
  export type PopoverTarget = string | HTMLElement | Ref<HTMLElement | null | undefined>;
4
5
  export interface PopoverOffsetOptions {
5
6
  mainAxis?: number;
@@ -1,5 +1,5 @@
1
1
  import { ComponentColorValue } from '../../utils/componentColors';
2
- export declare const progressColors: readonly ["primary", "secondary", "success", "warning", "danger", "info", "neutral"];
2
+ export declare const progressColors: readonly ["dark", "gray", "red", "pink", "grape", "violet", "indigo", "blue", "cyan", "teal", "green", "lime", "yellow", "orange"];
3
3
  export declare const progressSizes: readonly ["xs", "sm", "md", "lg", "xl"];
4
4
  export declare const progressRadiuses: readonly ["none", "xs", "sm", "md", "lg", "xl", "full"];
5
5
  export type ProgressColor = ComponentColorValue;
@@ -7,6 +7,7 @@ export interface RadioProps {
7
7
  value: string | number;
8
8
  variant?: RadioVariant;
9
9
  color?: RadioColor;
10
+ autoContrast?: boolean;
10
11
  size?: RadioSize;
11
12
  disabled?: boolean;
12
13
  }
@@ -16,6 +17,7 @@ export interface RadioGroupProps {
16
17
  modelValue: string | number | null;
17
18
  variant?: RadioVariant;
18
19
  color?: RadioColor;
20
+ autoContrast?: boolean;
19
21
  size?: RadioSize;
20
22
  disabled?: boolean;
21
23
  required?: boolean;
@@ -31,6 +33,7 @@ export interface RadioGroupContext {
31
33
  required: boolean;
32
34
  variant?: RadioVariant;
33
35
  color?: RadioColor;
36
+ autoContrast?: boolean;
34
37
  size?: RadioSize;
35
38
  select: (value: string | number) => void;
36
39
  }
@@ -1,13 +1,11 @@
1
+ import { CSSProperties } from 'vue';
1
2
  import { RadioGroupContext, RadioGroupProps, RadioProps } from './types';
2
3
  export declare function useRadio(props: Readonly<RadioProps>): {
3
4
  group: RadioGroupContext;
4
5
  isChecked: import('vue').ComputedRef<boolean>;
5
6
  isDisabled: import('vue').ComputedRef<boolean>;
6
7
  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>;
8
+ rootStyle: import('vue').ComputedRef<CSSProperties | undefined>;
11
9
  onSelect: () => void;
12
10
  };
13
11
  export declare function useRadioGroup(props: Readonly<RadioGroupProps>, emitUpdate: (value: string | number | null) => void): {
@@ -1,2 +1,2 @@
1
1
  export { default as Select } from './select';
2
- export type { SelectProps, SelectOption } from './types';
2
+ export type { SelectOption, SelectProps, SelectRadius, SelectSize } from './types';
@@ -4,14 +4,17 @@ export interface SelectOption {
4
4
  disabled?: boolean;
5
5
  }
6
6
  export type SelectRadius = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
7
+ export type SelectSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
7
8
  export interface SelectProps {
8
9
  id?: string;
9
10
  name?: string;
10
11
  modelValue: string | number | null;
11
12
  options?: SelectOption[];
13
+ size?: SelectSize;
12
14
  radius?: SelectRadius;
13
15
  placeholder?: string;
14
16
  clearable?: boolean;
17
+ clearLabel?: string;
15
18
  disabled?: boolean;
16
19
  required?: boolean;
17
20
  invalid?: boolean;
@@ -1,3 +1,4 @@
1
1
  export { default as Slider } from './slider';
2
+ export { default as RangeSlider } from './range-slider';
2
3
  export { sliderColors, sliderOrientations, sliderSizes } from './types';
3
- export type { SliderColor, SliderMark, SliderMarkColor, SliderMarkInput, SliderOrientation, SliderProps, SliderPresetColor, SliderSize, SliderThumbStyle, SliderTooltip, SliderTooltipMode, SliderTooltipOptions, SliderValueFormatter, } from './types';
4
+ export type { RangeSliderAriaValueText, RangeSliderEndpointValueText, RangeSliderProps, RangeSliderThumb, RangeSliderValue, SliderColor, SliderMark, SliderMarkColor, SliderMarkInput, SliderOrientation, SliderProps, SliderPresetColor, SliderSize, SliderThumbStyle, SliderTooltip, SliderTooltipMode, SliderTooltipOptions, SliderValueFormatter, } from './types';
@@ -1,2 +1,2 @@
1
- import { i as sliderSizes, n as sliderColors, r as sliderOrientations, t as slider_default } from "../../slider.js";
2
- export { slider_default as Slider, sliderColors, sliderOrientations, sliderSizes };
1
+ import { a as slider_default, i as range_slider_default, n as sliderOrientations, r as sliderSizes, t as sliderColors } from "../../slider.js";
2
+ export { range_slider_default as RangeSlider, slider_default as Slider, sliderColors, sliderOrientations, sliderSizes };
@@ -0,0 +1,45 @@
1
+ import { RangeSliderProps } 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<RangeSliderProps & {
4
+ "onUpdate:modelValue"?: ((value: [number, 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: import('./types').RangeSliderValue;
15
+ formattedValue: [string | number, string | number];
16
+ percent: import('./types').RangeSliderValue;
17
+ }) => any;
18
+ } & {
19
+ thumb?: (props: {
20
+ thumb: string;
21
+ index: number;
22
+ value: number;
23
+ formattedValue: string | number;
24
+ percent: number;
25
+ }) => any;
26
+ } & {
27
+ thumb?: (props: {
28
+ thumb: string;
29
+ index: number;
30
+ value: number;
31
+ formattedValue: string | number;
32
+ percent: number;
33
+ }) => any;
34
+ };
35
+ emit: (evt: "update:modelValue", value: [number, number]) => void;
36
+ }>) => import('vue').VNode & {
37
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
38
+ };
39
+ declare const _default: typeof __VLS_export;
40
+ export default _default;
41
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
42
+ [K in keyof T]: T[K];
43
+ } : {
44
+ [K in keyof T as K]: T[K];
45
+ }) & {};
@@ -1,12 +1,17 @@
1
1
  import { TooltipProps } from '../tooltip/types';
2
- export declare const sliderColors: readonly ["primary", "secondary", "success", "warning", "danger", "info", "neutral"];
2
+ import { ComponentColorValue } from '../../utils/componentColors';
3
+ export declare const sliderColors: readonly ["dark", "gray", "red", "pink", "grape", "violet", "indigo", "blue", "cyan", "teal", "green", "lime", "yellow", "orange"];
3
4
  export declare const sliderSizes: readonly ["xs", "sm", "md", "lg", "xl"];
4
5
  export declare const sliderOrientations: readonly ["horizontal", "vertical"];
5
6
  export type SliderPresetColor = (typeof sliderColors)[number];
6
- export type SliderColor = SliderPresetColor | (string & {});
7
+ export type SliderColor = ComponentColorValue;
7
8
  export type SliderSize = (typeof sliderSizes)[number];
8
9
  export type SliderOrientation = (typeof sliderOrientations)[number];
9
10
  export type SliderValueFormatter = (value: number) => string | number;
11
+ export type RangeSliderValue = [number, number];
12
+ export type RangeSliderThumb = 'lower' | 'upper';
13
+ export type RangeSliderEndpointValueText = string | SliderValueFormatter;
14
+ export type RangeSliderAriaValueText = RangeSliderEndpointValueText | [RangeSliderEndpointValueText, RangeSliderEndpointValueText];
10
15
  export type SliderTooltipMode = 'hover' | 'always';
11
16
  export type SliderTooltipOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'offset' | 'openDelay' | 'arrow'> & {
12
17
  mode?: SliderTooltipMode;
@@ -48,3 +53,10 @@ export interface SliderProps {
48
53
  describedby?: string;
49
54
  labelledby?: string;
50
55
  }
56
+ export interface RangeSliderProps extends Omit<SliderProps, 'modelValue' | 'name' | 'ariaLabel' | 'ariaValueText'> {
57
+ modelValue: RangeSliderValue;
58
+ minRange?: number;
59
+ name?: string | [string, string];
60
+ ariaLabel?: [string, string];
61
+ ariaValueText?: RangeSliderAriaValueText;
62
+ }
@@ -0,0 +1,59 @@
1
+ import { CSSProperties } from 'vue';
2
+ import { RangeSliderProps, RangeSliderThumb, RangeSliderValue } from './types';
3
+ type RangeSliderStateProps = Readonly<RangeSliderProps & {
4
+ min: number;
5
+ max: number;
6
+ step: number | 'any';
7
+ minRange: number;
8
+ tooltip: NonNullable<RangeSliderProps['tooltip']>;
9
+ orientation: NonNullable<RangeSliderProps['orientation']>;
10
+ ariaLabel: [string, string];
11
+ }>;
12
+ export declare function normalizeRangeSliderMinRange(minRange: number, min: number, max: number): number;
13
+ export declare function normalizeRangeSliderValue(value: RangeSliderValue, min: number, max: number, step: number | 'any', minRange?: number): RangeSliderValue;
14
+ export declare function getClosestRangeSliderThumb(value: number, range: RangeSliderValue, activeThumb?: RangeSliderThumb): RangeSliderThumb;
15
+ export declare function useRangeSlider(props: RangeSliderStateProps, emitUpdate: (value: RangeSliderValue) => void): {
16
+ control: import('../../composables/useControlState').ControlState;
17
+ nativeMin: import('vue').ComputedRef<RangeSliderValue>;
18
+ nativeMax: import('vue').ComputedRef<RangeSliderValue>;
19
+ nativeStep: import('vue').ComputedRef<number | "any">;
20
+ nativeNames: import('vue').ComputedRef<[string | undefined, string | undefined]>;
21
+ nativeIds: import('vue').ComputedRef<[string | undefined, string | undefined]>;
22
+ rootClass: import('vue').ComputedRef<string[]>;
23
+ normalizedValue: import('vue').ComputedRef<RangeSliderValue>;
24
+ valuePercent: import('vue').ComputedRef<RangeSliderValue>;
25
+ formattedValue: import('vue').ComputedRef<[string | number, string | number]>;
26
+ ariaLabels: import('vue').ComputedRef<[string, string]>;
27
+ ariaValueText: import('vue').ComputedRef<[string | undefined, string | undefined]>;
28
+ markItems: import('vue').ComputedRef<{
29
+ key: string;
30
+ value: number;
31
+ label: string | number | undefined;
32
+ hasLabel: boolean;
33
+ filled: boolean;
34
+ style: CSSProperties;
35
+ }[]>;
36
+ trackStyle: import('vue').ComputedRef<CSSProperties>;
37
+ activeThumb: import('vue').Ref<RangeSliderThumb | undefined, RangeSliderThumb | undefined>;
38
+ tooltipVisible: import('vue').ComputedRef<boolean>;
39
+ tooltipOpen: import('vue').ComputedRef<boolean>;
40
+ tooltipPlacement: import('vue').ComputedRef<import('../tooltip').TooltipPlacement>;
41
+ tooltipIds: import('vue').ComputedRef<[string | undefined, string | undefined]>;
42
+ mergedTooltipId: import('vue').ComputedRef<string | undefined>;
43
+ tooltipColor: import('vue').ComputedRef<import('../../utils/componentColors').ComponentColorValue | undefined>;
44
+ tooltipOffset: import('vue').ComputedRef<import('../tooltip').TooltipOffset | undefined>;
45
+ tooltipOpenDelay: import('vue').ComputedRef<number>;
46
+ tooltipArrow: import('vue').ComputedRef<boolean>;
47
+ tooltipContent: import('vue').ComputedRef<[string, string]>;
48
+ mergedTooltipContent: import('vue').ComputedRef<string>;
49
+ onInput: (thumb: RangeSliderThumb, event: Event) => void;
50
+ onTrackPointerDown: (event: PointerEvent) => void;
51
+ onTooltipFocus: (thumb: RangeSliderThumb) => void;
52
+ onTooltipBlur: (thumb: RangeSliderThumb) => void;
53
+ onTooltipTrackMouseEnter: () => void;
54
+ onTooltipTrackMouseLeave: () => void;
55
+ openTooltip: (thumb: RangeSliderThumb) => void;
56
+ closeTooltip: (thumb?: RangeSliderThumb) => void;
57
+ onTooltipKeydown: (thumb: RangeSliderThumb, event: KeyboardEvent) => void;
58
+ };
59
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Ref } from 'vue';
2
+ type TooltipRect = Pick<DOMRect, 'bottom' | 'height' | 'left' | 'right' | 'top' | 'width'>;
3
+ export declare function areRangeSliderTooltipRectsOverlapping(lower: TooltipRect, upper: TooltipRect, gap?: number): boolean;
4
+ export declare function useRangeSliderTooltipCollision(root: Ref<HTMLElement | null>): {
5
+ tooltipsOverlapping: Ref<boolean, boolean>;
6
+ };
7
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Ref } from 'vue';
2
+ type EndpointTooltipKind = 'lower' | 'upper';
3
+ export declare function useRangeSliderTooltipTransition(root: Ref<HTMLElement | null>, tooltipsOverlapping: Ref<boolean>, value: Ref<readonly [number, number]>, activeThumb: Ref<EndpointTooltipKind | undefined>): void;
4
+ export {};
@@ -1,9 +1,8 @@
1
+ import { CSSProperties } from 'vue';
1
2
  import { SwitchProps } from './types';
2
3
  export declare function useSwitch(props: Readonly<SwitchProps>, emitUpdate: (value: boolean) => void): {
3
4
  control: import('../../composables/useControlState').ControlState;
4
5
  rootClass: import('vue').ComputedRef<string[]>;
5
- rootStyle: import('vue').ComputedRef<{
6
- '--_rp-switch-custom-color': string & {};
7
- } | undefined>;
6
+ rootStyle: import('vue').ComputedRef<CSSProperties | undefined>;
8
7
  onChange: (e: Event) => void;
9
8
  };
@@ -20,6 +20,7 @@ export interface TooltipProps {
20
20
  target?: TooltipTarget | null;
21
21
  placement?: TooltipPlacement;
22
22
  color?: TooltipColor;
23
+ autoContrast?: boolean;
23
24
  offset?: TooltipOffset;
24
25
  open?: boolean;
25
26
  openDelay?: number;
@@ -1,13 +1,13 @@
1
1
  .rp-dropdown-menu {
2
2
  --_rp-dropdown-menu-radius: var(--rp-radius-sm);
3
- --_rp-dropdown-menu-focused-bg: var(--rp-color-surface-hover);
3
+ --_rp-dropdown-menu-focused-bg: var(--rp-color-default-hover);
4
4
  position: relative;
5
5
  display: inline-flex;
6
6
  font-family: var(--rp-font-family);
7
7
  vertical-align: middle;
8
8
  }
9
- html.dark .rp-dropdown-menu {
10
- --_rp-dropdown-menu-focused-bg: var(--rp-color-button-default-bg-active);
9
+ html.dark .rp-dropdown-menu, [data-rp-color-scheme=dark] .rp-dropdown-menu {
10
+ --_rp-dropdown-menu-focused-bg: var(--rp-color-disabled);
11
11
  }
12
12
  .rp-dropdown-menu--disabled {
13
13
  opacity: var(--rp-opacity-disabled);
@@ -15,8 +15,8 @@ html.dark .rp-dropdown-menu {
15
15
  }
16
16
  .rp-dropdown-menu__content {
17
17
  z-index: 100;
18
- background-color: var(--rp-color-surface-raised);
19
- border: var(--rp-border-width-thin) solid var(--rp-color-border);
18
+ background-color: var(--rp-color-default);
19
+ border: var(--rp-border-width-thin) solid var(--rp-color-default-border);
20
20
  border-radius: var(--_rp-dropdown-menu-radius);
21
21
  box-shadow: var(--rp-shadow-md);
22
22
  padding: var(--rp-spacing-1) 0;
@@ -27,8 +27,8 @@ html.dark .rp-dropdown-menu {
27
27
  overflow-y: auto;
28
28
  padding: var(--rp-spacing-1);
29
29
  color: var(--rp-color-text);
30
- font-size: var(--rp-font-size-base);
31
- line-height: var(--rp-line-height-normal);
30
+ font-size: var(--rp-font-size-md);
31
+ line-height: var(--rp-line-height-md);
32
32
  outline: none;
33
33
  }
34
34
  .rp-dropdown-menu__content--has-submenu {
@@ -77,10 +77,10 @@ html.dark .rp-dropdown-menu {
77
77
  background-color: var(--_rp-dropdown-menu-focused-bg);
78
78
  }
79
79
  .rp-dropdown-menu__item--destructive {
80
- color: var(--rp-color-danger-fg);
80
+ color: var(--rp-color-red-light-color);
81
81
  }
82
82
  .rp-dropdown-menu__item--disabled {
83
- color: var(--rp-color-text-disabled);
83
+ color: var(--rp-color-disabled-color);
84
84
  cursor: not-allowed;
85
85
  }
86
86
  .rp-dropdown-menu__item--submenu {
@@ -93,7 +93,7 @@ html.dark .rp-dropdown-menu {
93
93
  text-overflow: ellipsis;
94
94
  }
95
95
  .rp-dropdown-menu__shortcut {
96
- color: var(--rp-color-text-secondary);
96
+ color: var(--rp-color-dimmed);
97
97
  font: inherit;
98
98
  font-size: var(--rp-font-size-sm);
99
99
  }
@@ -110,12 +110,12 @@ html.dark .rp-dropdown-menu {
110
110
  }
111
111
  .rp-dropdown-menu__submenu-icon {
112
112
  margin-left: auto;
113
- color: var(--rp-color-text-secondary);
113
+ color: var(--rp-color-dimmed);
114
114
  }
115
115
  .rp-dropdown-menu__submenu {
116
116
  z-index: 100;
117
- background-color: var(--rp-color-surface-raised);
118
- border: var(--rp-border-width-thin) solid var(--rp-color-border);
117
+ background-color: var(--rp-color-default);
118
+ border: var(--rp-border-width-thin) solid var(--rp-color-default-border);
119
119
  border-radius: var(--_rp-dropdown-menu-radius);
120
120
  box-shadow: var(--rp-shadow-md);
121
121
  padding: var(--rp-spacing-1) 0;
@@ -128,8 +128,8 @@ html.dark .rp-dropdown-menu {
128
128
  overflow-y: auto;
129
129
  padding: var(--rp-spacing-1);
130
130
  color: var(--rp-color-text);
131
- font-size: var(--rp-font-size-base);
132
- line-height: var(--rp-line-height-normal);
131
+ font-size: var(--rp-font-size-md);
132
+ line-height: var(--rp-line-height-md);
133
133
  outline: none;
134
134
  }
135
135
  .rp-dropdown-menu__submenu--has-submenu {
@@ -145,8 +145,8 @@ html.dark .rp-dropdown-menu {
145
145
  justify-content: center;
146
146
  min-height: var(--rp-size-control-sm);
147
147
  padding: var(--rp-spacing-2) var(--rp-spacing-4);
148
- color: var(--rp-color-text-secondary);
149
- font-size: var(--rp-font-size-base);
148
+ color: var(--rp-color-dimmed);
149
+ font-size: var(--rp-font-size-md);
150
150
  }
151
151
  .rp-dropdown-menu-content-enter-active,
152
152
  .rp-dropdown-menu-content-leave-active {
package/dist/field.css CHANGED
@@ -1,15 +1,15 @@
1
- .rp-field[data-v-0d027ead] {
2
- --_rp-field-danger: var(--rp-color-danger);
1
+ .rp-field[data-v-f9e37351] {
2
+ --_rp-field-danger: var(--rp-color-red-filled);
3
3
  display: grid;
4
4
  gap: var(--rp-spacing-1);
5
5
  min-width: 0;
6
6
  font-family: var(--rp-font-family);
7
7
  color: var(--rp-color-text);
8
8
  }
9
- html.dark .rp-field[data-v-0d027ead] {
10
- --_rp-field-danger: var(--rp-color-danger-fg);
9
+ html.dark .rp-field[data-v-f9e37351], [data-rp-color-scheme=dark] .rp-field[data-v-f9e37351] {
10
+ --_rp-field-danger: var(--rp-color-red-light-color);
11
11
  }
12
- .rp-field__label[data-v-0d027ead] {
12
+ .rp-field__label[data-v-f9e37351] {
13
13
  display: inline-flex;
14
14
  width: fit-content;
15
15
  align-items: center;
@@ -17,27 +17,24 @@ html.dark .rp-field[data-v-0d027ead] {
17
17
  color: var(--rp-color-text);
18
18
  font-size: var(--rp-font-size-sm);
19
19
  font-weight: var(--rp-font-weight-medium);
20
- line-height: var(--rp-line-height-normal);
20
+ line-height: var(--rp-line-height-md);
21
21
  }
22
- .rp-field__required[data-v-0d027ead] {
22
+ .rp-field__required[data-v-f9e37351] {
23
23
  color: var(--_rp-field-danger);
24
- line-height: var(--rp-line-height-none);
24
+ line-height: 1;
25
25
  }
26
- .rp-field__label + .rp-field__control[data-v-0d027ead] {
26
+ .rp-field__label + .rp-field__control[data-v-f9e37351] {
27
27
  margin-block-start: var(--rp-spacing-1);
28
28
  }
29
- .rp-field__control[data-v-0d027ead] {
29
+ .rp-field__control[data-v-f9e37351] {
30
30
  min-width: 0;
31
31
  }
32
- .rp-field__description[data-v-0d027ead], .rp-field__message[data-v-0d027ead] {
32
+ .rp-field__description[data-v-f9e37351] {
33
33
  margin: 0;
34
- color: var(--rp-color-text-secondary);
34
+ color: var(--rp-color-dimmed);
35
35
  font-size: var(--rp-font-size-sm);
36
- line-height: var(--rp-line-height-normal);
36
+ line-height: var(--rp-line-height-md);
37
37
  }
38
- .rp-field--invalid .rp-field__message[data-v-0d027ead] {
39
- color: var(--_rp-field-danger);
40
- }
41
- .rp-field--disabled .rp-field__label[data-v-0d027ead], .rp-field--disabled .rp-field__description[data-v-0d027ead], .rp-field--disabled .rp-field__message[data-v-0d027ead] {
42
- color: var(--rp-color-text-disabled);
38
+ .rp-field--disabled .rp-field__label[data-v-f9e37351], .rp-field--disabled .rp-field__description[data-v-f9e37351] {
39
+ color: var(--rp-color-disabled-color);
43
40
  }