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
package/dist/button.js CHANGED
@@ -1,15 +1,13 @@
1
- import './button.css';
2
- import { t as bem } from "./bem.js";
3
1
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
- import { n as loader_circle_default, t as getButtonColorStyle } from "./useButtonColor.js";
2
+ import { t as bem } from "./bem.js";
3
+ import { n as loader_circle_default, t as getButtonColorStyle } from "./button.scss_vue_type_style_index_0_src_true_lang.js";
6
4
  import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
7
5
  //#region src/components/button/button.vue?vue&type=script&setup=true&vapor=true&lang.ts
8
- var t0 = template("<span data-v-15cdf23b>");
9
- var t1 = template("<button data-v-15cdf23b><span data-v-15cdf23b class=rp-button__content><span data-v-15cdf23b></span>", 1);
6
+ var t0 = template("<span>");
7
+ var t1 = template("<button><span class=rp-button__content><span></span>", 1);
10
8
  //#endregion
11
9
  //#region src/components/button/button.vue
12
- var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
10
+ var button_default = /* @__PURE__ */ defineVaporComponent({
13
11
  name: "RpButton",
14
12
  inheritAttrs: false,
15
13
  __name: "button",
@@ -65,7 +63,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
65
63
  setInsertionState(n5, null, 0);
66
64
  createSlot("loading", null, () => {
67
65
  return createComponent(unref(loader_circle_default), { class: "rp-button__spinner" });
68
- }, 1);
66
+ });
69
67
  return n5;
70
68
  });
71
69
  setInsertionState(n16, 0);
@@ -73,23 +71,23 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
73
71
  const n9 = t0();
74
72
  renderEffect(() => setDynamicProps(n9, [unref(getPartAttrs)("left", { class: "rp-button__left" })]));
75
73
  setInsertionState(n9, null, 0);
76
- createSlot("left", null, null, 1);
74
+ createSlot("left");
77
75
  return n9;
78
76
  });
79
77
  renderEffect(() => setDynamicProps(n11, [unref(getPartAttrs)("label", { class: "rp-button__label" })]));
80
78
  setInsertionState(n11, null, 0);
81
- createSlot("default", null, null, 1);
79
+ createSlot();
82
80
  setInsertionState(n16, null, 2);
83
81
  createIf(() => $slots.right, () => {
84
82
  const n15 = t0();
85
83
  renderEffect(() => setDynamicProps(n15, [unref(getPartAttrs)("right", { class: "rp-button__right" })]));
86
84
  setInsertionState(n15, null, 0);
87
- createSlot("right", null, null, 1);
85
+ createSlot("right");
88
86
  return n15;
89
87
  });
90
88
  return n17;
91
89
  }
92
- }), [["__scopeId", "data-v-15cdf23b"]]);
90
+ });
93
91
  //#endregion
94
92
  //#region src/components/button/types.ts
95
93
  var buttonParts = [
@@ -1,4 +1,5 @@
1
- import { i as getComponentVariantColorRoles } from "./componentColors.js";
1
+ import './button.css';
2
+ import { a as getComponentVariantColorRoles } from "./componentColors.js";
2
3
  import { defineVaporComponent, markRaw, template } from "vue";
3
4
  //#region ~icons/lucide/loader-circle
4
5
  var t0 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><path fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M21 12a9 9 0 1 1-6.219-8.56\">", 3, 1);
package/dist/card.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './card.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, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, txt, unref, useSlots } from "vue";
6
6
  //#region src/components/card/card.vue?vue&type=script&setup=true&vapor=true&lang.ts
package/dist/checkbox.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-checkbox[data-v-f0f09b8a] {
2
+ .rp-checkbox[data-v-871a9e21] {
3
3
  --_rp-checkbox-color: var(--rp-color-control-selected-bg);
4
4
  --_rp-checkbox-on-color: var(--rp-color-control-selected-fg);
5
5
  --_rp-checkbox-size: 24px;
@@ -17,15 +17,15 @@
17
17
  user-select: none;
18
18
  vertical-align: top;
19
19
  }
20
- .rp-checkbox--disabled[data-v-f0f09b8a] {
20
+ .rp-checkbox--disabled[data-v-871a9e21] {
21
21
  opacity: var(--rp-opacity-disabled);
22
22
  cursor: not-allowed;
23
23
  }
24
- .rp-checkbox[data-v-f0f09b8a] {
24
+ .rp-checkbox[data-v-871a9e21] {
25
25
  gap: var(--rp-spacing-2);
26
26
  font-size: var(--_rp-checkbox-font-size);
27
27
  }
28
- .rp-checkbox__native[data-v-f0f09b8a] {
28
+ .rp-checkbox__native[data-v-871a9e21] {
29
29
  position: absolute;
30
30
  width: 1px;
31
31
  height: 1px;
@@ -37,11 +37,11 @@
37
37
  border-width: 0;
38
38
  pointer-events: none;
39
39
  }
40
- .rp-checkbox__native:focus-visible + .rp-checkbox__box[data-v-f0f09b8a] {
40
+ .rp-checkbox__native:focus-visible + .rp-checkbox__box[data-v-871a9e21] {
41
41
  border-color: var(--rp-color-control-border-focus);
42
42
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
43
43
  }
44
- .rp-checkbox__box[data-v-f0f09b8a] {
44
+ .rp-checkbox__box[data-v-871a9e21] {
45
45
  display: inline-flex;
46
46
  align-items: center;
47
47
  justify-content: center;
@@ -53,90 +53,90 @@
53
53
  background-color: var(--rp-color-control-bg);
54
54
  transition: background-color var(--rp-transition-fast), border-color var(--rp-transition-fast);
55
55
  }
56
- .rp-checkbox--checked .rp-checkbox__box[data-v-f0f09b8a], .rp-checkbox--indeterminate .rp-checkbox__box[data-v-f0f09b8a] {
56
+ .rp-checkbox--checked .rp-checkbox__box[data-v-871a9e21], .rp-checkbox--indeterminate .rp-checkbox__box[data-v-871a9e21] {
57
57
  background-color: var(--_rp-checkbox-checked-bg);
58
58
  border-color: var(--_rp-checkbox-checked-border);
59
59
  }
60
- .rp-checkbox--invalid .rp-checkbox__box[data-v-f0f09b8a] {
60
+ .rp-checkbox--invalid .rp-checkbox__box[data-v-871a9e21] {
61
61
  border-color: var(--_rp-checkbox-invalid-border);
62
62
  }
63
- .rp-checkbox--invalid .rp-checkbox__native:focus-visible + .rp-checkbox__box[data-v-f0f09b8a] {
63
+ .rp-checkbox--invalid .rp-checkbox__native:focus-visible + .rp-checkbox__box[data-v-871a9e21] {
64
64
  border-color: var(--_rp-checkbox-invalid-border);
65
65
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-checkbox-invalid-ring);
66
66
  }
67
- .rp-checkbox__icon[data-v-f0f09b8a] {
67
+ .rp-checkbox__icon[data-v-871a9e21] {
68
68
  width: 60%;
69
69
  height: 60%;
70
70
  color: var(--_rp-checkbox-checked-icon);
71
71
  transform-origin: center;
72
72
  }
73
- .rp-checkbox__icon[data-v-f0f09b8a] [stroke-width] {
73
+ .rp-checkbox__icon[data-v-871a9e21] [stroke-width] {
74
74
  stroke-width: 3;
75
75
  }
76
- .rp-checkbox__label[data-v-f0f09b8a] {
76
+ .rp-checkbox__label[data-v-871a9e21] {
77
77
  line-height: var(--rp-line-height-md);
78
78
  color: var(--rp-color-text);
79
79
  }
80
- .rp-checkbox--outline[data-v-f0f09b8a] {
80
+ .rp-checkbox--outline[data-v-871a9e21] {
81
81
  --_rp-checkbox-checked-bg: var(--rp-color-control-bg);
82
82
  --_rp-checkbox-checked-border: var(--_rp-checkbox-color);
83
83
  --_rp-checkbox-checked-icon: var(--_rp-checkbox-color);
84
84
  }
85
- .rp-checkbox--size-xs[data-v-f0f09b8a] {
85
+ .rp-checkbox--size-xs[data-v-871a9e21] {
86
86
  --_rp-checkbox-size: 16px;
87
87
  --_rp-checkbox-font-size: var(--rp-font-size-xs);
88
88
  }
89
- .rp-checkbox--size-sm[data-v-f0f09b8a] {
89
+ .rp-checkbox--size-sm[data-v-871a9e21] {
90
90
  --_rp-checkbox-size: 20px;
91
91
  --_rp-checkbox-font-size: var(--rp-font-size-sm);
92
92
  }
93
- .rp-checkbox--size-md[data-v-f0f09b8a] {
93
+ .rp-checkbox--size-md[data-v-871a9e21] {
94
94
  --_rp-checkbox-size: 24px;
95
95
  --_rp-checkbox-font-size: var(--rp-font-size-md);
96
96
  }
97
- .rp-checkbox--size-lg[data-v-f0f09b8a] {
97
+ .rp-checkbox--size-lg[data-v-871a9e21] {
98
98
  --_rp-checkbox-size: 30px;
99
99
  --_rp-checkbox-font-size: var(--rp-font-size-lg);
100
100
  }
101
- .rp-checkbox--size-xl[data-v-f0f09b8a] {
101
+ .rp-checkbox--size-xl[data-v-871a9e21] {
102
102
  --_rp-checkbox-size: 36px;
103
103
  --_rp-checkbox-font-size: var(--rp-font-size-xl);
104
104
  }
105
- .rp-checkbox--radius-xs[data-v-f0f09b8a] {
105
+ .rp-checkbox--radius-xs[data-v-871a9e21] {
106
106
  --_rp-checkbox-radius: 2px;
107
107
  }
108
- .rp-checkbox--radius-sm[data-v-f0f09b8a] {
108
+ .rp-checkbox--radius-sm[data-v-871a9e21] {
109
109
  --_rp-checkbox-radius: 4px;
110
110
  }
111
- .rp-checkbox--radius-md[data-v-f0f09b8a] {
111
+ .rp-checkbox--radius-md[data-v-871a9e21] {
112
112
  --_rp-checkbox-radius: 6px;
113
113
  }
114
- .rp-checkbox--radius-lg[data-v-f0f09b8a] {
114
+ .rp-checkbox--radius-lg[data-v-871a9e21] {
115
115
  --_rp-checkbox-radius: 8px;
116
116
  }
117
- .rp-checkbox--radius-xl[data-v-f0f09b8a] {
117
+ .rp-checkbox--radius-xl[data-v-871a9e21] {
118
118
  --_rp-checkbox-radius: var(--rp-radius-full);
119
119
  }
120
- .rp-checkbox-icon-enter-active[data-v-f0f09b8a],
121
- .rp-checkbox-icon-leave-active[data-v-f0f09b8a] {
120
+ .rp-checkbox-icon-enter-active[data-v-871a9e21],
121
+ .rp-checkbox-icon-leave-active[data-v-871a9e21] {
122
122
  transition: opacity var(--rp-transition-base), transform var(--rp-transition-base);
123
123
  }
124
- .rp-checkbox-icon-enter-from[data-v-f0f09b8a],
125
- .rp-checkbox-icon-leave-to[data-v-f0f09b8a] {
124
+ .rp-checkbox-icon-enter-from[data-v-871a9e21],
125
+ .rp-checkbox-icon-leave-to[data-v-871a9e21] {
126
126
  opacity: 0;
127
127
  transform: translateY(3px) scale(0.85);
128
128
  }
129
- .rp-checkbox-icon-enter-to[data-v-f0f09b8a],
130
- .rp-checkbox-icon-leave-from[data-v-f0f09b8a] {
129
+ .rp-checkbox-icon-enter-to[data-v-871a9e21],
130
+ .rp-checkbox-icon-leave-from[data-v-871a9e21] {
131
131
  opacity: 1;
132
132
  transform: translateY(0) scale(1);
133
133
  }
134
- .rp-checkbox-icon-leave-to[data-v-f0f09b8a] {
134
+ .rp-checkbox-icon-leave-to[data-v-871a9e21] {
135
135
  transform: translateY(-3px) scale(0.85);
136
136
  }
137
137
  @media (prefers-reduced-motion: reduce) {
138
- .rp-checkbox-icon-enter-active[data-v-f0f09b8a],
139
- .rp-checkbox-icon-leave-active[data-v-f0f09b8a] {
138
+ .rp-checkbox-icon-enter-active[data-v-871a9e21],
139
+ .rp-checkbox-icon-leave-active[data-v-871a9e21] {
140
140
  transition: none;
141
141
  }
142
142
  }
package/dist/checkbox.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import './checkbox.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 { i as getComponentContrastColor, r as getComponentColorValue } from "./componentColors.js";
6
7
  import { t as check_default } from "./check.js";
7
8
  import { t as minus_default } from "./minus.js";
8
- import { t as useControllableValue } from "./useControllableValue.js";
9
9
  import { r as useCheckedFormControl } from "./useFormControl.js";
10
10
  import { t as useControlState } from "./useControlState.js";
11
11
  import { VaporTransition, child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, next, ref, renderEffect, setBlockKey, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref } from "vue";
@@ -52,8 +52,8 @@ function useCheckbox(props, emitUpdate, getValue = () => props.modelValue ?? fal
52
52
  }
53
53
  //#endregion
54
54
  //#region src/components/checkbox/checkbox.vue?vue&type=script&setup=true&vapor=true&lang.ts
55
- var t0 = template("<span data-v-f0f09b8a>");
56
- var t1 = template("<label data-v-f0f09b8a><input data-v-f0f09b8a><span data-v-f0f09b8a></span>", 1);
55
+ var t0 = template("<span data-v-871a9e21>");
56
+ var t1 = template("<label data-v-871a9e21><input data-v-871a9e21><span data-v-871a9e21></span>", 1);
57
57
  //#endregion
58
58
  //#region src/components/checkbox/checkbox.vue
59
59
  var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -204,7 +204,7 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
204
204
  });
205
205
  return n13;
206
206
  }
207
- }), [["__scopeId", "data-v-f0f09b8a"]]);
207
+ }), [["__scopeId", "data-v-871a9e21"]]);
208
208
  //#endregion
209
209
  //#region src/components/checkbox/types.ts
210
210
  var checkboxParts = [
package/dist/collapse.css CHANGED
@@ -1,16 +1,16 @@
1
1
  @layer ropav.components {
2
- .rp-collapse[data-v-a380be0d] {
2
+ .rp-collapse[data-v-06c57838] {
3
3
  --_rp-collapse-duration: var(--rp-transition-fast);
4
4
  display: block;
5
5
  min-width: 0;
6
6
  font-family: var(--rp-font-family);
7
7
  color: var(--rp-color-text);
8
8
  }
9
- .rp-collapse--disabled[data-v-a380be0d] {
9
+ .rp-collapse--disabled[data-v-06c57838] {
10
10
  opacity: var(--rp-opacity-disabled);
11
11
  cursor: not-allowed;
12
12
  }
13
- .rp-collapse__content[data-v-a380be0d] {
13
+ .rp-collapse__content[data-v-06c57838] {
14
14
  box-sizing: border-box;
15
15
  display: grid;
16
16
  min-width: 0;
@@ -21,13 +21,13 @@
21
21
  grid-template-rows: 1fr;
22
22
  transition: grid-template-rows var(--_rp-collapse-duration), opacity var(--_rp-collapse-duration);
23
23
  }
24
- .rp-collapse__inner[data-v-a380be0d] {
24
+ .rp-collapse__inner[data-v-06c57838] {
25
25
  min-height: 0;
26
26
  min-width: 0;
27
27
  overflow: hidden;
28
28
  }
29
- .rp-collapse-content-enter-from[data-v-a380be0d],
30
- .rp-collapse-content-leave-to[data-v-a380be0d] {
29
+ .rp-collapse-content-enter-from[data-v-06c57838],
30
+ .rp-collapse-content-leave-to[data-v-06c57838] {
31
31
  opacity: 0;
32
32
  grid-template-rows: 0fr;
33
33
  }
package/dist/collapse.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import './collapse.css';
2
2
  import { n as useStylesApi, t as presence } from "./styles-api.js";
3
- import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
4
3
  import { t as useCollapse } from "./useCollapse.js";
4
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { VaporTransition, applyVShow, child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
6
6
  //#region src/components/collapse/collapse.vue?vue&type=script&setup=true&vapor=true&lang.ts
7
- var t0 = template("<section data-v-a380be0d><div data-v-a380be0d class=rp-collapse__inner>");
8
- var t1 = template("<div data-v-a380be0d>", 1);
7
+ var t0 = template("<div data-v-06c57838><div data-v-06c57838 class=rp-collapse__inner>");
8
+ var t1 = template("<div data-v-06c57838>", 1);
9
9
  //#endregion
10
10
  //#region src/components/collapse/collapse.vue
11
11
  var collapse_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -81,7 +81,7 @@ var collapse_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
81
81
  }, { _: 8 }));
82
82
  return n7;
83
83
  }
84
- }), [["__scopeId", "data-v-a380be0d"]]);
84
+ }), [["__scopeId", "data-v-06c57838"]]);
85
85
  //#endregion
86
86
  //#region src/components/collapse/types.ts
87
87
  var collapseParts = [
@@ -1,5 +1,5 @@
1
1
  import { onBeforeUnmount } from "vue";
2
- //#region src/composables/useTypeahead.ts
2
+ //#region src/internal/composables/useTypeahead.ts
3
3
  var DEFAULT_TYPEAHEAD_TIMEOUT = 1e3;
4
4
  var COMBINING_MARKS = /\p{M}/gu;
5
5
  var WHITESPACE = /\s+/g;
@@ -95,7 +95,7 @@ function useTypeahead(options) {
95
95
  };
96
96
  }
97
97
  //#endregion
98
- //#region src/composables/collectionNavigation.ts
98
+ //#region src/internal/composables/collectionNavigation.ts
99
99
  function getEnabledIndexes(items, isDisabled) {
100
100
  return items.map((item, index) => isDisabled(item) ? -1 : index).filter((index) => index >= 0);
101
101
  }
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-color-input[data-v-0c4e1f32] {
2
+ .rp-color-input[data-v-19e2ebe7] {
3
3
  --_rp-color-input-height: var(--rp-size-control-md);
4
4
  --_rp-color-input-preview-size: calc(var(--_rp-color-input-height) / 2);
5
5
  --_rp-color-input-preview-inset: calc(
@@ -18,42 +18,42 @@
18
18
  font-family: var(--rp-font-family);
19
19
  vertical-align: middle;
20
20
  }
21
- .rp-color-input--size-xs[data-v-0c4e1f32] {
21
+ .rp-color-input--size-xs[data-v-19e2ebe7] {
22
22
  --_rp-color-input-height: var(--rp-size-control-xs);
23
23
  }
24
- .rp-color-input--size-sm[data-v-0c4e1f32] {
24
+ .rp-color-input--size-sm[data-v-19e2ebe7] {
25
25
  --_rp-color-input-height: var(--rp-size-control-sm);
26
26
  }
27
- .rp-color-input--size-md[data-v-0c4e1f32] {
27
+ .rp-color-input--size-md[data-v-19e2ebe7] {
28
28
  --_rp-color-input-height: var(--rp-size-control-md);
29
29
  }
30
- .rp-color-input--size-lg[data-v-0c4e1f32] {
30
+ .rp-color-input--size-lg[data-v-19e2ebe7] {
31
31
  --_rp-color-input-height: var(--rp-size-control-lg);
32
32
  }
33
- .rp-color-input--size-xl[data-v-0c4e1f32] {
33
+ .rp-color-input--size-xl[data-v-19e2ebe7] {
34
34
  --_rp-color-input-height: var(--rp-size-control-xl);
35
35
  }
36
- html.dark .rp-color-input[data-v-0c4e1f32], [data-rp-color-scheme=dark] .rp-color-input[data-v-0c4e1f32] {
36
+ html.dark .rp-color-input[data-v-19e2ebe7], [data-rp-color-scheme=dark] .rp-color-input[data-v-19e2ebe7] {
37
37
  --_rp-color-input-empty-tile: var(--rp-color-dark-6);
38
38
  --_rp-color-input-empty-tile-alt: var(--rp-color-dark-4);
39
39
  }
40
- .rp-color-input[data-v-0c4e1f32] .rp-input {
40
+ .rp-color-input[data-v-19e2ebe7] .rp-input {
41
41
  width: 100%;
42
42
  min-width: 180px;
43
43
  padding-inline-start: calc(var(--_rp-color-input-preview-inset) - var(--rp-border-width-thin));
44
44
  }
45
- .rp-color-input[data-v-0c4e1f32] .rp-popover__content {
45
+ .rp-color-input[data-v-19e2ebe7] .rp-popover__content {
46
46
  min-width: auto;
47
47
  padding: var(--rp-spacing-3);
48
48
  padding-inline: calc(var(--_rp-color-input-preview-inset) - var(--rp-border-width-thin));
49
49
  }
50
- .rp-color-input[data-v-0c4e1f32] .rp-color-picker {
50
+ .rp-color-input[data-v-19e2ebe7] .rp-color-picker {
51
51
  --_rp-color-picker-size: min(
52
52
  var(--_rp-color-picker-saturation-width),
53
53
  calc(100vw - var(--rp-spacing-12))
54
54
  );
55
55
  }
56
- .rp-color-input__preview[data-v-0c4e1f32] {
56
+ .rp-color-input__preview[data-v-19e2ebe7] {
57
57
  --_rp-color-swatch-radius: 50%;
58
58
  width: var(--_rp-color-input-preview-size);
59
59
  height: var(--_rp-color-input-preview-size);
@@ -61,14 +61,14 @@ html.dark .rp-color-input[data-v-0c4e1f32], [data-rp-color-scheme=dark] .rp-colo
61
61
  border-radius: 50%;
62
62
  pointer-events: none;
63
63
  }
64
- .rp-color-input__preview--empty[data-v-0c4e1f32] {
64
+ .rp-color-input__preview--empty[data-v-19e2ebe7] {
65
65
  box-sizing: border-box;
66
66
  display: inline-flex;
67
67
  background: var(--_rp-color-input-empty-grid);
68
68
  background-size: calc(var(--_rp-color-input-preview-size) / 2) calc(var(--_rp-color-input-preview-size) / 2);
69
69
  border: var(--rp-border-width-thin) dashed var(--rp-color-control-border);
70
70
  }
71
- .rp-color-input__eye-dropper[data-v-0c4e1f32] {
71
+ .rp-color-input__eye-dropper[data-v-19e2ebe7] {
72
72
  padding: 0;
73
73
  font: inherit;
74
74
  background: none;
@@ -81,29 +81,29 @@ html.dark .rp-color-input[data-v-0c4e1f32], [data-rp-color-scheme=dark] .rp-colo
81
81
  color: var(--rp-color-control-icon);
82
82
  transition: color var(--rp-transition-fast), opacity var(--rp-transition-fast);
83
83
  }
84
- .rp-color-input__eye-dropper[data-v-0c4e1f32]:hover:not(:disabled) {
84
+ .rp-color-input__eye-dropper[data-v-19e2ebe7]:hover:not(:disabled) {
85
85
  color: var(--rp-color-control-fg);
86
86
  }
87
- .rp-color-input__eye-dropper[data-v-0c4e1f32]:focus-visible {
87
+ .rp-color-input__eye-dropper[data-v-19e2ebe7]:focus-visible {
88
88
  outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
89
89
  outline-offset: 2px;
90
90
  }
91
- .rp-color-input__eye-dropper[data-v-0c4e1f32]:disabled {
91
+ .rp-color-input__eye-dropper[data-v-19e2ebe7]:disabled {
92
92
  cursor: not-allowed;
93
93
  opacity: var(--rp-opacity-disabled);
94
94
  }
95
- .rp-color-input__eye-dropper-icon[data-v-0c4e1f32] {
95
+ .rp-color-input__eye-dropper-icon[data-v-19e2ebe7] {
96
96
  display: inline-flex;
97
97
  align-items: center;
98
98
  width: 1em;
99
99
  height: 1em;
100
100
  flex-shrink: 0;
101
101
  }
102
- .rp-color-input__eye-dropper-icon svg[data-v-0c4e1f32] {
102
+ .rp-color-input__eye-dropper-icon svg[data-v-19e2ebe7] {
103
103
  width: 100%;
104
104
  height: 100%;
105
105
  }
106
- .rp-color-input__eye-dropper-icon[data-v-0c4e1f32] > svg {
106
+ .rp-color-input__eye-dropper-icon[data-v-19e2ebe7] > svg {
107
107
  width: 100%;
108
108
  height: 100%;
109
109
  }
@@ -1,8 +1,8 @@
1
1
  import './color-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
- import { t as useControllableValue } from "./useControllableValue.js";
6
6
  import { a as useTextFormControl, n as provideNestedFormControlOwner } from "./useFormControl.js";
7
7
  import { t as useControlState } from "./useControlState.js";
8
8
  import { t as color_swatch_default } from "./color-swatch.js";
@@ -183,8 +183,8 @@ function useColorInput(props, emit, getValue = () => props.modelValue ?? "") {
183
183
  }
184
184
  //#endregion
185
185
  //#region src/components/color-input/color-input.vue?vue&type=script&setup=true&vapor=true&lang.ts
186
- var t0 = template("<span data-v-0c4e1f32>");
187
- var t1 = template("<button data-v-0c4e1f32><span data-v-0c4e1f32 class=rp-color-input__eye-dropper-icon aria-hidden=true></button>");
186
+ var t0 = template("<span data-v-19e2ebe7>");
187
+ var t1 = template("<button data-v-19e2ebe7><span data-v-19e2ebe7 class=rp-color-input__eye-dropper-icon aria-hidden=true></button>");
188
188
  //#endregion
189
189
  //#region src/components/color-input/color-input.vue
190
190
  var color_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -417,7 +417,7 @@ var color_input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
417
417
  }
418
418
  }, true);
419
419
  }
420
- }), [["__scopeId", "data-v-0c4e1f32"]]);
420
+ }), [["__scopeId", "data-v-19e2ebe7"]]);
421
421
  //#endregion
422
422
  //#region src/components/color-input/types.ts
423
423
  var colorInputParts = [
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-color-picker__saturation[data-v-fbb051b0] {
2
+ .rp-color-picker__saturation[data-v-22669f8e] {
3
3
  position: relative;
4
4
  box-sizing: border-box;
5
5
  width: var(--_rp-color-picker-control-width);
@@ -10,13 +10,13 @@
10
10
  touch-action: none;
11
11
  cursor: crosshair;
12
12
  }
13
- .rp-color-picker__saturation[data-v-fbb051b0]:focus-visible {
13
+ .rp-color-picker__saturation[data-v-22669f8e]:focus-visible {
14
14
  outline: none;
15
15
  }
16
- .rp-color-picker__saturation[data-readonly][data-v-fbb051b0] {
16
+ .rp-color-picker__saturation[data-readonly][data-v-22669f8e] {
17
17
  cursor: default;
18
18
  }
19
- .rp-color-picker__axis-input[data-v-fbb051b0] {
19
+ .rp-color-picker__axis-input[data-v-22669f8e] {
20
20
  position: absolute;
21
21
  width: 1px;
22
22
  height: 1px;
@@ -28,10 +28,10 @@
28
28
  border-width: 0;
29
29
  pointer-events: none;
30
30
  }
31
- .rp-color-picker__axis-input:focus-visible ~ .rp-color-picker__handle[data-v-fbb051b0] {
31
+ .rp-color-picker__axis-input:focus-visible ~ .rp-color-picker__handle[data-v-22669f8e] {
32
32
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.6), 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
33
33
  }
34
- .rp-color-picker__surface[data-v-fbb051b0] {
34
+ .rp-color-picker__surface[data-v-22669f8e] {
35
35
  position: absolute;
36
36
  inset: calc(-1 * var(--_rp-color-picker-thumb-radius));
37
37
  overflow: hidden;
@@ -39,7 +39,7 @@
39
39
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.3);
40
40
  background: linear-gradient(to top, #000 0 var(--_rp-color-picker-thumb-radius), rgba(0, 0, 0, 0) calc(100% - var(--_rp-color-picker-thumb-radius)) 100%), linear-gradient(to right, #fff 0 var(--_rp-color-picker-thumb-radius), rgba(255, 255, 255, 0) calc(100% - var(--_rp-color-picker-thumb-radius)) 100%), hsl(var(--_rp-color-picker-hue), 100%, 50%);
41
41
  }
42
- .rp-color-picker__handle[data-v-fbb051b0] {
42
+ .rp-color-picker__handle[data-v-22669f8e] {
43
43
  position: absolute;
44
44
  top: var(--_rp-color-picker-saturation-y);
45
45
  left: var(--_rp-color-picker-saturation-x);
@@ -1,8 +1,8 @@
1
1
  import './color-picker.css';
2
- import { t as bem } from "./bem.js";
3
2
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
- import { t as parseCssColor } from "./color.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 { t as parseCssColor } from "./color.js";
6
6
  import { t as check_default } from "./check.js";
7
7
  import { t as color_swatch_default } from "./color-swatch.js";
8
8
  import { child, computed, createComponent, createFor, createIf, createInvoker, createSlot, createTemplateRefSetter, defineVaporComponent, delegateEvents, extend, next, nthChild, on, onBeforeUnmount, ref, renderEffect, setAttr, setClass, setDynamicProps, setInsertionState, setProp, setStyle, setValue, template, unref } from "vue";
@@ -261,7 +261,7 @@ function useColorPickerDrag({ target, focusTarget, readonly, isGeometryValid, up
261
261
  }
262
262
  //#endregion
263
263
  //#region src/components/color-picker/color-picker-saturation.vue?vue&type=script&setup=true&vapor=true&lang.ts
264
- var t0$2 = template("<div data-v-fbb051b0 role=group data-control=saturation><input data-v-fbb051b0 class=\"rp-color-picker__axis-input rp-color-picker__axis-input--saturation\"type=range min=0 max=100 step=1 aria-label=Saturation aria-orientation=horizontal><input data-v-fbb051b0 class=\"rp-color-picker__axis-input rp-color-picker__axis-input--value\"type=range min=0 max=100 step=1 aria-label=Value aria-orientation=vertical><span data-v-fbb051b0 class=rp-color-picker__surface aria-hidden=true></span><span data-v-fbb051b0 data-control=saturation aria-hidden=true>", 1);
264
+ var t0$2 = template("<div data-v-22669f8e role=group data-control=saturation><input data-v-22669f8e class=\"rp-color-picker__axis-input rp-color-picker__axis-input--saturation\"type=range min=0 max=100 step=1 aria-label=Saturation aria-orientation=horizontal><input data-v-22669f8e class=\"rp-color-picker__axis-input rp-color-picker__axis-input--value\"type=range min=0 max=100 step=1 aria-label=Value aria-orientation=vertical><span data-v-22669f8e class=rp-color-picker__surface aria-hidden=true></span><span data-v-22669f8e data-control=saturation aria-hidden=true>", 1);
265
265
  delegateEvents("input", "keydown", "pointerdown");
266
266
  //#endregion
267
267
  //#region src/components/color-picker/color-picker-saturation.vue
@@ -407,7 +407,6 @@ var color_picker_saturation_default = /*#__PURE__*/ _plugin_vue_export_helper_de
407
407
  setAttr(n3, "aria-label", groupAriaLabel.value);
408
408
  setAttr(n3, "aria-labelledby", __props.labelledby);
409
409
  setAttr(n3, "aria-describedby", _describedby);
410
- setAttr(n3, "aria-readonly", _readonly || void 0);
411
410
  setAttr(n3, "data-readonly", unref(presence)(_readonly));
412
411
  setProp(n0, "id", _id);
413
412
  setValue(n0, _saturation);
@@ -426,7 +425,7 @@ var color_picker_saturation_default = /*#__PURE__*/ _plugin_vue_export_helper_de
426
425
  });
427
426
  return n3;
428
427
  }
429
- }), [["__scopeId", "data-v-fbb051b0"]]);
428
+ }), [["__scopeId", "data-v-22669f8e"]]);
430
429
  //#endregion
431
430
  //#region src/components/color-picker/color-picker-slider.vue?vue&type=script&setup=true&vapor=true&lang.ts
432
431
  var t0$1 = template("<div data-v-0299a505 role=slider tabindex=0 aria-orientation=horizontal aria-valuemin=0><span data-v-0299a505 aria-hidden=true></span><span data-v-0299a505 aria-hidden=true>", 1);
@@ -1,7 +1,7 @@
1
1
  import './color-swatch.css';
2
2
  import { n as useStylesApi } from "./styles-api.js";
3
- import { t as parseCssColor } from "./color.js";
4
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
4
+ import { t as parseCssColor } from "./color.js";
5
5
  import { child, computed, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template } from "vue";
6
6
  //#region src/components/color-swatch/useColorSwatchColor.ts
7
7
  function getColorSwatchForeground(color) {
@@ -110,7 +110,8 @@ function getComponentColorRoles(color) {
110
110
  return createComponentColorRoles(parsed.value, {
111
111
  contrast: contrast.color,
112
112
  contrastHover: contrast.hover,
113
- contrastActive: contrast.active
113
+ contrastActive: contrast.active,
114
+ foreground: getCustomForegroundColor(parsed.value)
114
115
  });
115
116
  }
116
117
  function getComponentVariantColorRoles({ color, variant, defaultColor = "primary", autoContrast, contrastColor }) {
@@ -222,6 +223,45 @@ function createComponentColorRoles(color, overrides = {}) {
222
223
  contrastActive: overrides.contrastActive ?? roles.contrast
223
224
  };
224
225
  }
226
+ var customForegroundBackgroundMixes = [
227
+ 0,
228
+ .12,
229
+ .18,
230
+ .24
231
+ ];
232
+ function getCustomForegroundColor(color) {
233
+ const parsed = parseCssColor(color);
234
+ if (!parsed || parsed.opacity < 100) return color;
235
+ const black = {
236
+ red: 0,
237
+ green: 0,
238
+ blue: 0
239
+ };
240
+ const white = {
241
+ red: 255,
242
+ green: 255,
243
+ blue: 255
244
+ };
245
+ const darkBody = {
246
+ red: 36,
247
+ green: 36,
248
+ blue: 36
249
+ };
250
+ let colorPercent = 100;
251
+ while (colorPercent > 0) {
252
+ const weight = colorPercent / 100;
253
+ const lightForeground = mixOpaqueColors(parsed, weight, black);
254
+ const darkForeground = mixOpaqueColors(parsed, weight, white);
255
+ if (customForegroundBackgroundMixes.every((backgroundWeight) => {
256
+ const lightBackground = mixOpaqueColors(parsed, backgroundWeight, white);
257
+ const darkBackground = mixOpaqueColors(parsed, backgroundWeight, darkBody);
258
+ return contrastRatio(lightForeground, lightBackground) >= 4.5 && contrastRatio(darkForeground, darkBackground) >= 4.5;
259
+ })) break;
260
+ colorPercent -= 1;
261
+ }
262
+ if (colorPercent === 100) return color;
263
+ return `color-mix(in srgb, ${color} ${colorPercent}%, var(--rp-color-bright))`;
264
+ }
225
265
  function getCustomContrastColorRoles(color, warnForTranslucentColor = false) {
226
266
  const parsed = parseCssColor(color);
227
267
  if (!parsed) return createContrastColorRoles("var(--rp-color-white)");
@@ -282,4 +322,4 @@ function relativeLuminance(color) {
282
322
  return .2126 * red + .7152 * green + .0722 * blue;
283
323
  }
284
324
  //#endregion
285
- export { getComponentVariantColorRoles as i, getComponentColorValue as n, getComponentContrastColor as r, componentColors as t };
325
+ export { getComponentVariantColorRoles as a, getComponentContrastColor as i, getComponentColorRoles as n, getComponentColorValue as r, componentColors as t };
@@ -2,7 +2,7 @@ import { CSSProperties } from 'vue';
2
2
  import { CheckboxProps } from './types.js';
3
3
  export declare function useCheckbox(props: Readonly<CheckboxProps>, emitUpdate: (value: boolean) => void, getValue?: () => boolean): {
4
4
  inputRef: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
5
- control: import('../../composables/useControlState.js').ControlState;
5
+ control: import('../../internal/composables/useControlState.js').ControlState;
6
6
  rootClass: import('vue').ComputedRef<string[]>;
7
7
  rootStyle: import('vue').ComputedRef<CSSProperties | undefined>;
8
8
  onChange: (e: Event) => void;