ropav 0.1.5 → 0.1.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.
Files changed (100) hide show
  1. package/README.md +4 -0
  2. package/dist/accordion.js +11 -8
  3. package/dist/alert.css +18 -18
  4. package/dist/alert.js +18 -17
  5. package/dist/avatar.js +2 -2
  6. package/dist/badge.js +2 -2
  7. package/dist/base.css +18 -13
  8. package/dist/button-group.js +1 -1
  9. package/dist/button-link.js +10 -12
  10. package/dist/button.css +32 -27
  11. package/dist/button.js +10 -12
  12. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +2 -1
  13. package/dist/card.js +1 -1
  14. package/dist/checkbox.css +32 -32
  15. package/dist/checkbox.js +6 -6
  16. package/dist/collapse.css +6 -6
  17. package/dist/collapse.js +4 -4
  18. package/dist/collectionNavigation.js +2 -2
  19. package/dist/color-input.css +19 -19
  20. package/dist/color-input.js +5 -5
  21. package/dist/color-picker.css +7 -7
  22. package/dist/color-picker.js +4 -5
  23. package/dist/color-swatch.js +1 -1
  24. package/dist/componentColors.js +42 -2
  25. package/dist/components/checkbox/useCheckbox.d.ts +1 -1
  26. package/dist/components/color-input/color-input.d.ts +2 -2
  27. package/dist/components/color-input/useColorInput.d.ts +1 -1
  28. package/dist/components/dialog/dialog-core.d.ts +1 -1
  29. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  30. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +1 -1
  31. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  32. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  33. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +3 -4
  34. package/dist/components/input/useInput.d.ts +1 -1
  35. package/dist/components/number-input/useNumberInput.d.ts +1 -1
  36. package/dist/components/progress/useProgress.d.ts +1 -1
  37. package/dist/components/radio/useRadio.d.ts +2 -2
  38. package/dist/components/scroll-area/scrollAreaCore.d.ts +5 -0
  39. package/dist/components/scroll-area/types.d.ts +4 -0
  40. package/dist/components/scroll-area/useScrollArea.d.ts +1 -0
  41. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +3 -0
  42. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +3 -0
  43. package/dist/components/select/useSelect.d.ts +2 -1
  44. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  45. package/dist/components/slider/sliderCore.d.ts +2 -1
  46. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  47. package/dist/components/slider/useSlider.d.ts +1 -1
  48. package/dist/components/switch/useSwitch.d.ts +1 -1
  49. package/dist/components/textarea/useTextarea.d.ts +1 -1
  50. package/dist/composables/index.d.ts +2 -0
  51. package/dist/composables/index.js +2 -0
  52. package/dist/composables/useControllableValue.d.ts +14 -0
  53. package/dist/dialog.js +8 -5
  54. package/dist/dropdown-menu.js +43 -29
  55. package/dist/field.js +1 -1
  56. package/dist/floating.js +19 -7
  57. package/dist/icon-button.css +12 -173
  58. package/dist/icon-button.js +5 -5
  59. package/dist/index.d.ts +5 -4
  60. package/dist/index.js +7 -5
  61. package/dist/input.css +24 -24
  62. package/dist/input.js +5 -5
  63. package/dist/modal.js +11 -7
  64. package/dist/number-input.css +18 -18
  65. package/dist/number-input.js +7 -7
  66. package/dist/overlay.js +1 -1
  67. package/dist/pagination.js +3 -3
  68. package/dist/popover.js +9 -6
  69. package/dist/progress.css +29 -21
  70. package/dist/progress.js +17 -10
  71. package/dist/radio.js +3 -3
  72. package/dist/scroll-area.css +10 -1
  73. package/dist/scroll-area.js +82 -25
  74. package/dist/select.css +45 -45
  75. package/dist/select.js +48 -26
  76. package/dist/slider.css +142 -142
  77. package/dist/slider.js +32 -38
  78. package/dist/switch.css +17 -17
  79. package/dist/switch.js +6 -6
  80. package/dist/tabs.css +3 -3
  81. package/dist/tabs.js +25 -15
  82. package/dist/textarea.css +26 -26
  83. package/dist/textarea.js +4 -4
  84. package/dist/toast.css +26 -26
  85. package/dist/toast.js +24 -19
  86. package/dist/tooltip.js +11 -8
  87. package/dist/useCollapse.js +12 -7
  88. package/dist/useControlState.js +1 -1
  89. package/dist/useControllableValue.js +8 -2
  90. package/dist/useFloatingPosition.js +4 -1140
  91. package/dist/useFormControl.js +3 -2
  92. package/dist/useOverlayZIndex.js +1 -1
  93. package/dist/useRequiredInject.js +1 -1
  94. package/docs/public-composables-api.md +52 -0
  95. package/package.json +45 -38
  96. package/src/styles/_mixins.scss +4 -0
  97. package/src/styles/_tokens.scss +12 -12
  98. package/src/styles/_variables.scss +1 -1
  99. package/dist/button-link.css +0 -167
  100. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-number-input[data-v-eb2db673] {
2
+ .rp-number-input[data-v-988300ea] {
3
3
  --_rp-number-input-control-size: var(--_rp-input-height);
4
4
  --_rp-number-input-text-align: left;
5
5
  overflow: hidden;
@@ -7,39 +7,39 @@
7
7
  padding-inline: 0;
8
8
  vertical-align: middle;
9
9
  }
10
- .rp-number-input[data-v-eb2db673] .rp-input__native {
10
+ .rp-number-input[data-v-988300ea] .rp-input__native {
11
11
  appearance: textfield;
12
12
  padding-inline: var(--_rp-input-padding-x);
13
13
  text-align: var(--_rp-number-input-text-align);
14
14
  }
15
- .rp-number-input--text-align-center[data-v-eb2db673] {
15
+ .rp-number-input--text-align-center[data-v-988300ea] {
16
16
  --_rp-number-input-text-align: center;
17
17
  }
18
- .rp-number-input--text-align-right[data-v-eb2db673] {
18
+ .rp-number-input--text-align-right[data-v-988300ea] {
19
19
  --_rp-number-input-text-align: right;
20
20
  }
21
- .rp-number-input[data-v-eb2db673] .rp-input__native::-webkit-inner-spin-button,
22
- .rp-number-input[data-v-eb2db673] .rp-input__native::-webkit-outer-spin-button {
21
+ .rp-number-input[data-v-988300ea] .rp-input__native::-webkit-inner-spin-button,
22
+ .rp-number-input[data-v-988300ea] .rp-input__native::-webkit-outer-spin-button {
23
23
  margin: 0;
24
24
  appearance: none;
25
25
  }
26
- .rp-number-input[data-v-eb2db673] .rp-input__left,
27
- .rp-number-input[data-v-eb2db673] .rp-input__right {
26
+ .rp-number-input[data-v-988300ea] .rp-input__left,
27
+ .rp-number-input[data-v-988300ea] .rp-input__right {
28
28
  align-self: stretch;
29
29
  margin-block: calc(-1 * var(--rp-border-width-thin));
30
30
  }
31
- .rp-number-input__controls[data-v-eb2db673] {
31
+ .rp-number-input__controls[data-v-988300ea] {
32
32
  display: inline-flex;
33
33
  height: var(--_rp-input-height);
34
34
  flex-shrink: 0;
35
35
  }
36
- .rp-number-input__controls--left[data-v-eb2db673] {
36
+ .rp-number-input__controls--left[data-v-988300ea] {
37
37
  border-inline-end: var(--rp-border-width-thin) solid var(--rp-color-control-border);
38
38
  }
39
- .rp-number-input__controls--right[data-v-eb2db673] {
39
+ .rp-number-input__controls--right[data-v-988300ea] {
40
40
  border-inline-start: var(--rp-border-width-thin) solid var(--rp-color-control-border);
41
41
  }
42
- .rp-number-input__control[data-v-eb2db673] {
42
+ .rp-number-input__control[data-v-988300ea] {
43
43
  padding: 0;
44
44
  font: inherit;
45
45
  background: none;
@@ -55,29 +55,29 @@
55
55
  color: var(--rp-color-control-icon);
56
56
  transition: color var(--rp-transition-fast), background-color var(--rp-transition-fast), opacity var(--rp-transition-fast);
57
57
  }
58
- .rp-number-input__control + .rp-number-input__control[data-v-eb2db673] {
58
+ .rp-number-input__control + .rp-number-input__control[data-v-988300ea] {
59
59
  border-inline-start: var(--rp-border-width-thin) solid var(--rp-color-control-border);
60
60
  }
61
- .rp-number-input__control[data-v-eb2db673]:hover:not(:disabled) {
61
+ .rp-number-input__control[data-v-988300ea]:hover:not(:disabled) {
62
62
  color: var(--rp-color-control-fg);
63
63
  background-color: var(--rp-color-default-hover);
64
64
  }
65
- .rp-number-input__control[data-v-eb2db673]:disabled {
65
+ .rp-number-input__control[data-v-988300ea]:disabled {
66
66
  cursor: not-allowed;
67
67
  opacity: var(--rp-opacity-disabled);
68
68
  }
69
- .rp-number-input__control-icon[data-v-eb2db673] {
69
+ .rp-number-input__control-icon[data-v-988300ea] {
70
70
  display: inline-flex;
71
71
  align-items: center;
72
72
  width: 0.875em;
73
73
  height: 0.875em;
74
74
  flex-shrink: 0;
75
75
  }
76
- .rp-number-input__control-icon svg[data-v-eb2db673] {
76
+ .rp-number-input__control-icon svg[data-v-988300ea] {
77
77
  width: 100%;
78
78
  height: 100%;
79
79
  }
80
- .rp-number-input__control-icon[data-v-eb2db673] > svg {
80
+ .rp-number-input__control-icon[data-v-988300ea] > svg {
81
81
  display: block;
82
82
  width: 100%;
83
83
  height: 100%;
@@ -1,9 +1,9 @@
1
1
  import './number-input.css';
2
- import { t as bem } from "./bem.js";
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
+ import { t as bem } from "./bem.js";
4
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
6
  import { t as minus_default } from "./minus.js";
6
- import { t as useControllableValue } from "./useControllableValue.js";
7
7
  import { i as useFormControl, n as provideNestedFormControlOwner } from "./useFormControl.js";
8
8
  import { t as useControlState } from "./useControlState.js";
9
9
  import { t as input_default } from "./input.js";
@@ -190,10 +190,10 @@ function useNumberInput(props, emitUpdate, getValue = () => props.modelValue ??
190
190
  }
191
191
  //#endregion
192
192
  //#region src/components/number-input/number-input.vue?vue&type=script&setup=true&vapor=true&lang.ts
193
- var t0 = template("<button data-v-eb2db673><span data-v-eb2db673 class=rp-number-input__control-icon aria-hidden=true></button>");
194
- var t1 = template("<span data-v-eb2db673 class=\"rp-number-input__controls rp-number-input__controls--left\">");
195
- var t2 = template("<button data-v-eb2db673><span data-v-eb2db673 class=rp-number-input__control-icon aria-hidden=true>");
196
- var t3 = template("<span data-v-eb2db673 class=\"rp-number-input__controls rp-number-input__controls--right\">");
193
+ var t0 = template("<button data-v-988300ea><span data-v-988300ea class=rp-number-input__control-icon aria-hidden=true></button>");
194
+ var t1 = template("<span data-v-988300ea class=\"rp-number-input__controls rp-number-input__controls--left\">");
195
+ var t2 = template("<button data-v-988300ea><span data-v-988300ea class=rp-number-input__control-icon aria-hidden=true>");
196
+ var t3 = template("<span data-v-988300ea class=\"rp-number-input__controls rp-number-input__controls--right\">");
197
197
  delegateEvents("mousedown");
198
198
  //#endregion
199
199
  //#region src/components/number-input/number-input.vue
@@ -411,7 +411,7 @@ var number_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
411
411
  setStaticTemplateRef(n30, inputComponentRef, null, "inputComponentRef");
412
412
  return n30;
413
413
  }
414
- }), [["__scopeId", "data-v-eb2db673"]]);
414
+ }), [["__scopeId", "data-v-988300ea"]]);
415
415
  //#endregion
416
416
  //#region src/components/number-input/types.ts
417
417
  var numberInputParts = [
package/dist/overlay.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './overlay.css';
2
- import { t as bem } from "./bem.js";
3
2
  import { n as useStylesApi } from "./styles-api.js";
3
+ import { t as bem } from "./bem.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { computed, createIf, defineVaporComponent, renderEffect, setDynamicProps, template, unref } from "vue";
6
6
  //#region src/components/overlay/useOverlay.ts
@@ -1,9 +1,9 @@
1
1
  import './pagination.css';
2
- import { t as bem } from "./bem.js";
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
4
+ import { t as bem } from "./bem.js";
5
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
- import { t as useControllableValue } from "./useControllableValue.js";
6
+ import { a as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
7
7
  import { t as chevron_right_default } from "./chevron-right.js";
8
8
  import { child, computed, createComponent, createFor, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, markRaw, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref } from "vue";
9
9
  //#region ~icons/lucide/chevron-left
package/dist/popover.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import './popover.css';
2
- import { t as bem } from "./bem.js";
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
+ import { t as bem } from "./bem.js";
4
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
6
  import { n as useOverlayZIndex, r as useOverlayLayer } from "./useOverlayZIndex.js";
6
7
  import { t as useFocusTrap } from "./useFocusTrap.js";
@@ -55,7 +56,11 @@ function usePopover(props, emitOpenChange) {
55
56
  const rootRef = ref(null);
56
57
  const contentRef = ref(null);
57
58
  const arrowRef = ref(null);
58
- const uncontrolledOpen = ref(false);
59
+ const controllableOpen = useControllableValue({
60
+ modelValue: () => props.open,
61
+ defaultValue: () => false,
62
+ onChange: (open) => emitOpenChange?.(open)
63
+ });
59
64
  const popoverId = computed(() => props.id ?? `${generatedId}-popover`);
60
65
  const placement = computed(() => props.placement ?? DEFAULT_PLACEMENT);
61
66
  const popoverRole = computed(() => props.role ?? DEFAULT_ROLE);
@@ -65,7 +70,7 @@ function usePopover(props, emitOpenChange) {
65
70
  const targetElement = computed(() => isElementReference(resolvedTarget.value) ? resolvedTarget.value : null);
66
71
  const hasContent = computed(() => Boolean(slots.content || isExplicitTarget.value && slots.default));
67
72
  const isDisabled = computed(() => Boolean(props.disabled || !hasContent.value));
68
- const isOpen = computed(() => props.open ?? uncontrolledOpen.value);
73
+ const isOpen = controllableOpen.value;
69
74
  const isVisible = computed(() => isOpen.value && !isDisabled.value);
70
75
  const layer = useOverlayLayer({
71
76
  active: isVisible,
@@ -153,9 +158,7 @@ function usePopover(props, emitOpenChange) {
153
158
  allowOutsideClick: true
154
159
  });
155
160
  function setOpen(nextOpen) {
156
- const previousOpen = isOpen.value;
157
- if (props.open === void 0) uncontrolledOpen.value = nextOpen;
158
- if (previousOpen !== nextOpen) emitOpenChange?.(nextOpen);
161
+ if (isOpen.value !== nextOpen) controllableOpen.setValue(nextOpen);
159
162
  }
160
163
  function openPopover() {
161
164
  if (!isDisabled.value) setOpen(true);
package/dist/progress.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-progress[data-v-70bd0dd5] {
2
+ .rp-progress[data-v-4a492ff8] {
3
3
  --_rp-progress-color: var(--rp-color-control-selected-bg);
4
4
  --_rp-progress-track-bg: var(--rp-color-control-track-bg);
5
5
  --_rp-progress-track-height: 8px;
@@ -15,23 +15,23 @@
15
15
  font-size: var(--_rp-progress-font-size);
16
16
  line-height: var(--rp-line-height-md);
17
17
  }
18
- .rp-progress__header[data-v-70bd0dd5] {
18
+ .rp-progress__header[data-v-4a492ff8] {
19
19
  display: flex;
20
20
  align-items: center;
21
21
  justify-content: space-between;
22
22
  min-width: 0;
23
23
  gap: var(--rp-spacing-3);
24
24
  }
25
- .rp-progress__label[data-v-70bd0dd5] {
25
+ .rp-progress__label[data-v-4a492ff8] {
26
26
  min-width: 0;
27
27
  color: var(--rp-color-text);
28
28
  }
29
- .rp-progress__value[data-v-70bd0dd5] {
29
+ .rp-progress__value[data-v-4a492ff8] {
30
30
  flex-shrink: 0;
31
31
  color: var(--rp-color-dimmed);
32
32
  font-variant-numeric: tabular-nums;
33
33
  }
34
- .rp-progress__track[data-v-70bd0dd5] {
34
+ .rp-progress__track[data-v-4a492ff8] {
35
35
  position: relative;
36
36
  display: block;
37
37
  width: 100%;
@@ -40,7 +40,7 @@
40
40
  background: var(--_rp-progress-track-bg);
41
41
  border-radius: var(--_rp-progress-radius);
42
42
  }
43
- .rp-progress__indicator[data-v-70bd0dd5] {
43
+ .rp-progress__indicator[data-v-4a492ff8] {
44
44
  display: block;
45
45
  width: var(--_rp-progress-value);
46
46
  height: 100%;
@@ -48,54 +48,62 @@
48
48
  border-radius: inherit;
49
49
  transition: width var(--rp-transition-base);
50
50
  }
51
- .rp-progress--indeterminate .rp-progress__indicator[data-v-70bd0dd5] {
51
+ .rp-progress--indeterminate .rp-progress__indicator[data-v-4a492ff8] {
52
52
  position: absolute;
53
53
  width: 38%;
54
54
  min-width: 2rem;
55
- animation: rp-progress-indeterminate-70bd0dd5 1200ms ease-in-out infinite;
55
+ animation: rp-progress-indeterminate-4a492ff8 1200ms ease-in-out infinite;
56
56
  }
57
- .rp-progress--size-xs[data-v-70bd0dd5] {
57
+ .rp-progress--size-xs[data-v-4a492ff8] {
58
58
  --_rp-progress-track-height: 3px;
59
59
  --_rp-progress-font-size: var(--rp-font-size-xs);
60
60
  }
61
- .rp-progress--size-sm[data-v-70bd0dd5] {
61
+ .rp-progress--size-sm[data-v-4a492ff8] {
62
62
  --_rp-progress-track-height: 5px;
63
63
  --_rp-progress-font-size: var(--rp-font-size-sm);
64
64
  }
65
- .rp-progress--size-md[data-v-70bd0dd5] {
65
+ .rp-progress--size-md[data-v-4a492ff8] {
66
66
  --_rp-progress-track-height: 8px;
67
67
  --_rp-progress-font-size: var(--rp-font-size-md);
68
68
  }
69
- .rp-progress--size-lg[data-v-70bd0dd5] {
69
+ .rp-progress--size-lg[data-v-4a492ff8] {
70
70
  --_rp-progress-track-height: 12px;
71
71
  --_rp-progress-font-size: var(--rp-font-size-lg);
72
72
  }
73
- .rp-progress--size-xl[data-v-70bd0dd5] {
73
+ .rp-progress--size-xl[data-v-4a492ff8] {
74
74
  --_rp-progress-track-height: 16px;
75
75
  --_rp-progress-font-size: var(--rp-font-size-xl);
76
76
  }
77
- .rp-progress--radius-none[data-v-70bd0dd5] {
77
+ .rp-progress--radius-none[data-v-4a492ff8] {
78
78
  --_rp-progress-radius: var(--rp-radius-none);
79
79
  }
80
- .rp-progress--radius-xs[data-v-70bd0dd5] {
80
+ .rp-progress--radius-xs[data-v-4a492ff8] {
81
81
  --_rp-progress-radius: var(--rp-radius-xs);
82
82
  }
83
- .rp-progress--radius-sm[data-v-70bd0dd5] {
83
+ .rp-progress--radius-sm[data-v-4a492ff8] {
84
84
  --_rp-progress-radius: var(--rp-radius-sm);
85
85
  }
86
- .rp-progress--radius-md[data-v-70bd0dd5] {
86
+ .rp-progress--radius-md[data-v-4a492ff8] {
87
87
  --_rp-progress-radius: var(--rp-radius-md);
88
88
  }
89
- .rp-progress--radius-lg[data-v-70bd0dd5] {
89
+ .rp-progress--radius-lg[data-v-4a492ff8] {
90
90
  --_rp-progress-radius: var(--rp-radius-lg);
91
91
  }
92
- .rp-progress--radius-xl[data-v-70bd0dd5] {
92
+ .rp-progress--radius-xl[data-v-4a492ff8] {
93
93
  --_rp-progress-radius: var(--rp-radius-xl);
94
94
  }
95
- .rp-progress--radius-full[data-v-70bd0dd5] {
95
+ .rp-progress--radius-full[data-v-4a492ff8] {
96
96
  --_rp-progress-radius: var(--rp-radius-full);
97
97
  }
98
- @keyframes rp-progress-indeterminate-70bd0dd5 {
98
+ @media (prefers-reduced-motion: reduce) {
99
+ .rp-progress__indicator[data-v-4a492ff8] {
100
+ transition: none;
101
+ }
102
+ .rp-progress--indeterminate .rp-progress__indicator[data-v-4a492ff8] {
103
+ animation: none;
104
+ }
105
+ }
106
+ @keyframes rp-progress-indeterminate-4a492ff8 {
99
107
  0% {
100
108
  transform: translateX(-110%);
101
109
  }
package/dist/progress.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import './progress.css';
2
- import { t as bem } from "./bem.js";
3
2
  import { n as useStylesApi } from "./styles-api.js";
4
- import { n as getComponentColorValue, t as componentColors } from "./componentColors.js";
3
+ import { t as bem } from "./bem.js";
5
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
+ import { r as getComponentColorValue, t as componentColors } from "./componentColors.js";
6
6
  import { t as useControlState } from "./useControlState.js";
7
- import { child, computed, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref } from "vue";
7
+ import { child, computed, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
8
8
  //#region src/components/progress/useProgress.ts
9
9
  function normalizeProgressBounds(min, max) {
10
10
  const safeMin = Number.isFinite(min) ? min : 0;
@@ -70,10 +70,10 @@ function useProgress(props) {
70
70
  }
71
71
  //#endregion
72
72
  //#region src/components/progress/progress.vue?vue&type=script&setup=true&vapor=true&lang.ts
73
- var t0 = template("<span data-v-70bd0dd5>");
73
+ var t0 = template("<span data-v-4a492ff8>");
74
74
  var t1 = template(" ");
75
- var t2 = template("<span data-v-70bd0dd5 class=rp-progress__header>");
76
- var t3 = template("<div data-v-70bd0dd5><span data-v-70bd0dd5><span data-v-70bd0dd5>", 1);
75
+ var t2 = template("<span data-v-4a492ff8 class=rp-progress__header>");
76
+ var t3 = template("<div data-v-4a492ff8><span data-v-4a492ff8><span data-v-4a492ff8>", 1);
77
77
  //#endregion
78
78
  //#region src/components/progress/progress.vue
79
79
  var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -106,16 +106,23 @@ var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
106
106
  },
107
107
  setup(__props, { slots: $slots }) {
108
108
  const props = __props;
109
+ const slots = useSlots();
110
+ const labelId = `${useId()}-label`;
109
111
  const { control, rootClass, rootStyle, isIndeterminate, normalizedValue, valuePercent, formattedValue, ariaValueText, ariaValueMin, ariaValueMax, ariaValueNow } = useProgress(props);
110
112
  const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
113
+ const ariaLabel = computed(() => props.ariaLabel?.trim() || void 0);
114
+ const ariaLabelledby = computed(() => {
115
+ if (ariaLabel.value) return void 0;
116
+ return control.ariaLabelledby || (slots.default ? labelId : void 0);
117
+ });
111
118
  const rootAttrs = computed(() => getRootAttrs({
112
119
  id: control.id,
113
120
  class: rootClass.value,
114
121
  style: rootStyle.value,
115
122
  role: "progressbar",
116
123
  "data-state": isIndeterminate.value ? "indeterminate" : "determinate",
117
- "aria-label": props.ariaLabel || void 0,
118
- "aria-labelledby": control.ariaLabelledby,
124
+ "aria-label": ariaLabel.value,
125
+ "aria-labelledby": ariaLabelledby.value,
119
126
  "aria-describedby": control.ariaDescribedby,
120
127
  "aria-valuemin": ariaValueMin.value,
121
128
  "aria-valuemax": ariaValueMax.value,
@@ -132,7 +139,7 @@ var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
132
139
  setInsertionState(n14, null, 0);
133
140
  createIf(() => $slots.default, () => {
134
141
  const n5 = t0();
135
- renderEffect(() => setDynamicProps(n5, [unref(getPartAttrs)("label", { class: "rp-progress__label" })]));
142
+ renderEffect(() => setDynamicProps(n5, [{ id: labelId }, unref(getPartAttrs)("label", { class: "rp-progress__label" })]));
136
143
  setInsertionState(n5, null, 0);
137
144
  createSlot("default", null, null, 1);
138
145
  return n5;
@@ -164,7 +171,7 @@ var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
164
171
  });
165
172
  return n17;
166
173
  }
167
- }), [["__scopeId", "data-v-70bd0dd5"]]);
174
+ }), [["__scopeId", "data-v-4a492ff8"]]);
168
175
  //#endregion
169
176
  //#region src/components/progress/types.ts
170
177
  var progressParts = [
package/dist/radio.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import './radio.css';
2
- import { t as bem } from "./bem.js";
2
+ import { t as useControllableValue } from "./useControllableValue.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { n as getComponentColorValue, r as getComponentContrastColor } from "./componentColors.js";
4
+ import { t as bem } from "./bem.js";
5
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
- import { t as useControllableValue } from "./useControllableValue.js";
6
+ import { i as getComponentContrastColor, r as getComponentColorValue } from "./componentColors.js";
7
7
  import { i as useFormControl } from "./useFormControl.js";
8
8
  import { t as useControlState } from "./useControlState.js";
9
9
  import { child, computed, createIf, createSlot, defineVaporComponent, inject, next, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, shallowRef, template, unref, useId } from "vue";
@@ -60,6 +60,9 @@
60
60
  user-select: none;
61
61
  transition: opacity var(--rp-transition-fast);
62
62
  }
63
+ .rp-scroll-area__scrollbar[data-direction=rtl][data-v-f5c4e940] {
64
+ direction: rtl;
65
+ }
63
66
  .rp-scroll-area__scrollbar[data-visible][data-v-f5c4e940] {
64
67
  opacity: 1;
65
68
  pointer-events: auto;
@@ -102,6 +105,9 @@
102
105
  height: 100%;
103
106
  transform: translateX(var(--_rp-scroll-area-thumb-offset));
104
107
  }
108
+ .rp-scroll-area__scrollbar--horizontal[data-direction=rtl] .rp-scroll-area__thumb[data-v-f5c4e940] {
109
+ transform: translateX(calc(-1 * var(--_rp-scroll-area-thumb-offset)));
110
+ }
105
111
  .rp-scroll-area__scrollbar--vertical .rp-scroll-area__thumb[data-v-f5c4e940] {
106
112
  width: 100%;
107
113
  height: var(--_rp-scroll-area-thumb-size);
@@ -109,7 +115,7 @@
109
115
  }
110
116
  .rp-scroll-area__corner[data-v-f5c4e940] {
111
117
  position: absolute;
112
- right: 0;
118
+ inset-inline-end: 0;
113
119
  bottom: 0;
114
120
  z-index: 1;
115
121
  width: var(--_rp-scroll-area-scrollbar-size);
@@ -118,6 +124,9 @@
118
124
  pointer-events: none;
119
125
  transition: opacity var(--rp-transition-fast);
120
126
  }
127
+ .rp-scroll-area__corner[data-direction=rtl][data-v-f5c4e940] {
128
+ direction: rtl;
129
+ }
121
130
  .rp-scroll-area__corner[data-visible][data-v-f5c4e940] {
122
131
  opacity: 1;
123
132
  }