ropav 0.1.4 → 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 (138) hide show
  1. package/README.md +20 -0
  2. package/dist/accordion.js +11 -8
  3. package/dist/alert.css +18 -18
  4. package/dist/alert.js +27 -21
  5. package/dist/avatar.css +19 -19
  6. package/dist/avatar.js +16 -11
  7. package/dist/badge.css +16 -16
  8. package/dist/badge.js +14 -9
  9. package/dist/base.css +214 -69
  10. package/dist/button-group.js +1 -1
  11. package/dist/button-link.js +16 -14
  12. package/dist/button.css +37 -28
  13. package/dist/button.js +16 -14
  14. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +8 -4
  15. package/dist/card.js +1 -1
  16. package/dist/checkbox.css +32 -32
  17. package/dist/checkbox.js +19 -11
  18. package/dist/chevron-right.js +12 -0
  19. package/dist/collapse.css +6 -6
  20. package/dist/collapse.js +4 -4
  21. package/dist/collectionNavigation.js +120 -0
  22. package/dist/color-input.css +19 -19
  23. package/dist/color-input.js +6 -5
  24. package/dist/color-picker.css +7 -7
  25. package/dist/color-picker.js +4 -5
  26. package/dist/color-swatch.js +1 -1
  27. package/dist/componentColors.js +135 -23
  28. package/dist/components/alert/types.d.ts +1 -0
  29. package/dist/components/alert/useAlertColor.d.ts +1 -1
  30. package/dist/components/avatar/types.d.ts +1 -0
  31. package/dist/components/avatar/useAvatarColor.d.ts +1 -1
  32. package/dist/components/badge/types.d.ts +1 -0
  33. package/dist/components/badge/useBadgeColor.d.ts +1 -1
  34. package/dist/components/button/types.d.ts +1 -0
  35. package/dist/components/button/useButtonColor.d.ts +1 -1
  36. package/dist/components/button-link/types.d.ts +1 -0
  37. package/dist/components/checkbox/types.d.ts +1 -0
  38. package/dist/components/checkbox/useCheckbox.d.ts +1 -1
  39. package/dist/components/color-input/color-input.d.ts +2 -2
  40. package/dist/components/color-input/useColorInput.d.ts +1 -1
  41. package/dist/components/dialog/dialog-core.d.ts +1 -1
  42. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  43. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +2 -1
  44. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  45. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -2
  46. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  47. package/dist/components/dropdown-menu/index.d.ts +1 -0
  48. package/dist/components/dropdown-menu/types.d.ts +4 -0
  49. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +3 -4
  50. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -1
  51. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +1 -0
  52. package/dist/components/icon-button/types.d.ts +1 -0
  53. package/dist/components/input/useInput.d.ts +1 -1
  54. package/dist/components/number-input/useNumberInput.d.ts +1 -1
  55. package/dist/components/pagination/index.d.ts +4 -0
  56. package/dist/components/pagination/index.js +2 -0
  57. package/dist/components/pagination/pagination.d.ts +49 -0
  58. package/dist/components/pagination/types.d.ts +54 -0
  59. package/dist/components/pagination/usePagination.d.ts +19 -0
  60. package/dist/components/progress/useProgress.d.ts +1 -1
  61. package/dist/components/radio/types.d.ts +3 -0
  62. package/dist/components/radio/useRadio.d.ts +2 -2
  63. package/dist/components/scroll-area/scrollAreaCore.d.ts +5 -0
  64. package/dist/components/scroll-area/types.d.ts +4 -0
  65. package/dist/components/scroll-area/useScrollArea.d.ts +1 -0
  66. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +3 -0
  67. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +3 -0
  68. package/dist/components/select/useSelect.d.ts +3 -2
  69. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  70. package/dist/components/slider/range-slider-tooltip.d.ts +2 -0
  71. package/dist/components/slider/sliderCore.d.ts +2 -1
  72. package/dist/components/slider/types.d.ts +1 -1
  73. package/dist/components/slider/useRangeSlider.d.ts +3 -1
  74. package/dist/components/slider/useSlider.d.ts +3 -1
  75. package/dist/components/switch/useSwitch.d.ts +1 -1
  76. package/dist/components/textarea/useTextarea.d.ts +1 -1
  77. package/dist/components/toast/types.d.ts +2 -0
  78. package/dist/components/toast/useToastColor.d.ts +1 -1
  79. package/dist/components/tooltip/types.d.ts +1 -0
  80. package/dist/components/tooltip/useTooltip.d.ts +1 -1
  81. package/dist/composables/index.d.ts +2 -0
  82. package/dist/composables/index.js +2 -0
  83. package/dist/composables/useControllableValue.d.ts +14 -0
  84. package/dist/dialog.js +8 -5
  85. package/dist/dropdown-menu.js +98 -59
  86. package/dist/field.js +1 -1
  87. package/dist/floating.js +19 -7
  88. package/dist/icon-button.css +12 -169
  89. package/dist/icon-button.js +11 -7
  90. package/dist/index.d.ts +6 -4
  91. package/dist/index.js +8 -5
  92. package/dist/input.css +24 -24
  93. package/dist/input.js +6 -5
  94. package/dist/modal.js +11 -7
  95. package/dist/number-input.css +18 -18
  96. package/dist/number-input.js +8 -7
  97. package/dist/overlay.js +1 -1
  98. package/dist/pagination.css +140 -0
  99. package/dist/pagination.js +442 -0
  100. package/dist/popover.js +9 -6
  101. package/dist/progress.css +29 -21
  102. package/dist/progress.js +17 -10
  103. package/dist/radio.js +17 -7
  104. package/dist/scroll-area.css +10 -1
  105. package/dist/scroll-area.js +82 -25
  106. package/dist/select.css +45 -45
  107. package/dist/select.js +111 -70
  108. package/dist/slider.css +191 -191
  109. package/dist/slider.js +58 -46
  110. package/dist/switch.css +17 -17
  111. package/dist/switch.js +7 -6
  112. package/dist/tabs.css +3 -3
  113. package/dist/tabs.js +25 -15
  114. package/dist/textarea.css +26 -26
  115. package/dist/textarea.js +5 -4
  116. package/dist/toast.css +26 -26
  117. package/dist/toast.js +35 -23
  118. package/dist/tooltip.css +12 -12
  119. package/dist/tooltip.js +24 -16
  120. package/dist/unplugin-icons.js +38 -25
  121. package/dist/useCollapse.js +12 -7
  122. package/dist/useControlState.js +1 -1
  123. package/dist/useControllableValue.js +33 -0
  124. package/dist/useFloatingPosition.js +4 -1140
  125. package/dist/useFormControl.js +5 -29
  126. package/dist/useOverlayZIndex.js +1 -1
  127. package/dist/useRequiredInject.js +1 -1
  128. package/dist/utils/componentColors.d.ts +14 -1
  129. package/docs/public-composables-api.md +52 -0
  130. package/docs/public-styles-api.md +1 -1
  131. package/docs/public-tokens.md +648 -508
  132. package/package.json +49 -36
  133. package/src/styles/_mixins.scss +4 -0
  134. package/src/styles/_tokens.scss +460 -320
  135. package/src/styles/_variables.scss +1 -1
  136. package/src/styles/styles-manifest.json +1122 -2
  137. package/dist/button-link.css +0 -163
  138. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
@@ -1,15 +1,13 @@
1
- import './button-link.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-link/button-link.vue?vue&type=script&setup=true&vapor=true&lang.ts
8
- var t0 = template("<span data-v-107a8d80>");
9
- var t1 = template("<a data-v-107a8d80><span data-v-107a8d80 class=rp-button__content><span data-v-107a8d80></span>", 1);
6
+ var t0 = template("<span>");
7
+ var t1 = template("<a><span class=rp-button__content><span></span>", 1);
10
8
  //#endregion
11
9
  //#region src/components/button-link/button-link.vue
12
- var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
10
+ var button_link_default = /* @__PURE__ */ defineVaporComponent({
13
11
  name: "RpButtonLink",
14
12
  inheritAttrs: false,
15
13
  __name: "button-link",
@@ -21,7 +19,11 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
21
19
  hreflang: {},
22
20
  variant: {},
23
21
  color: {},
24
- autoContrast: { type: Boolean },
22
+ autoContrast: {
23
+ type: Boolean,
24
+ default: true
25
+ },
26
+ contrastColor: {},
25
27
  size: {},
26
28
  radius: {},
27
29
  disabled: {
@@ -45,7 +47,7 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
45
47
  disabled: isUnavailable.value,
46
48
  loading: props.loading
47
49
  }));
48
- const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast));
50
+ const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast, props.contrastColor));
49
51
  const resolvedHref = computed(() => isUnavailable.value ? void 0 : props.href);
50
52
  const resolvedTarget = computed(() => isUnavailable.value ? void 0 : props.target);
51
53
  const resolvedRel = computed(() => {
@@ -89,7 +91,7 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
89
91
  setInsertionState(n5, null, 0);
90
92
  createSlot("loading", null, () => {
91
93
  return createComponent(unref(loader_circle_default), { class: "rp-button__spinner" });
92
- }, 1);
94
+ });
93
95
  return n5;
94
96
  });
95
97
  setInsertionState(n16, 0);
@@ -97,23 +99,23 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
97
99
  const n9 = t0();
98
100
  renderEffect(() => setDynamicProps(n9, [unref(getPartAttrs)("left", { class: "rp-button__left" })]));
99
101
  setInsertionState(n9, null, 0);
100
- createSlot("left", null, null, 1);
102
+ createSlot("left");
101
103
  return n9;
102
104
  });
103
105
  renderEffect(() => setDynamicProps(n11, [unref(getPartAttrs)("label", { class: "rp-button__label" })]));
104
106
  setInsertionState(n11, null, 0);
105
- createSlot("default", null, null, 1);
107
+ createSlot();
106
108
  setInsertionState(n16, null, 2);
107
109
  createIf(() => $slots.right, () => {
108
110
  const n15 = t0();
109
111
  renderEffect(() => setDynamicProps(n15, [unref(getPartAttrs)("right", { class: "rp-button__right" })]));
110
112
  setInsertionState(n15, null, 0);
111
- createSlot("right", null, null, 1);
113
+ createSlot("right");
112
114
  return n15;
113
115
  });
114
116
  return n17;
115
117
  }
116
- }), [["__scopeId", "data-v-107a8d80"]]);
118
+ });
117
119
  //#endregion
118
120
  //#region src/components/button-link/types.ts
119
121
  var buttonLinkParts = [
package/dist/button.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-button[data-v-f0062177] {
2
+ .rp-button {
3
3
  --_rp-button-bg: var(--rp-color-default);
4
4
  --_rp-button-bg-hover: var(--rp-color-default-hover);
5
5
  --_rp-button-bg-active: var(--rp-color-disabled);
@@ -7,6 +7,8 @@
7
7
  --_rp-button-border-hover: var(--_rp-button-border);
8
8
  --_rp-button-border-active: var(--_rp-button-border-hover);
9
9
  --_rp-button-fg: var(--rp-color-default-color);
10
+ --_rp-button-fg-hover: var(--_rp-button-fg);
11
+ --_rp-button-fg-active: var(--_rp-button-fg-hover);
10
12
  --_rp-button-height: var(--rp-size-control-md);
11
13
  --_rp-button-padding-x: 22px;
12
14
  --_rp-button-font-size: var(--rp-font-size-md);
@@ -29,7 +31,7 @@
29
31
  color: var(--_rp-button-fg);
30
32
  cursor: pointer;
31
33
  text-decoration: none;
32
- transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast), border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), transform var(--rp-transition-fast);
34
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), transform var(--rp-transition-fast);
33
35
  white-space: nowrap;
34
36
  user-select: none;
35
37
  height: var(--_rp-button-height);
@@ -37,108 +39,110 @@
37
39
  font-size: var(--_rp-button-font-size);
38
40
  border-radius: var(--_rp-button-radius);
39
41
  }
40
- .rp-button[data-v-f0062177]:hover:not(:disabled):not(.rp-button--disabled) {
42
+ .rp-button:hover:not(:disabled):not(.rp-button--disabled) {
41
43
  background-color: var(--_rp-button-bg-hover);
42
44
  border-color: var(--_rp-button-border-hover);
43
45
  box-shadow: var(--_rp-button-shadow-hover);
46
+ color: var(--_rp-button-fg-hover);
44
47
  }
45
- .rp-button[data-v-f0062177]:active:not(:disabled):not(.rp-button--disabled) {
48
+ .rp-button:active:not(:disabled):not(.rp-button--disabled) {
46
49
  background-color: var(--_rp-button-bg-active);
47
50
  border-color: var(--_rp-button-border-active);
48
51
  box-shadow: var(--_rp-button-shadow-active);
52
+ color: var(--_rp-button-fg-active);
49
53
  transform: translateY(1px);
50
54
  }
51
- .rp-button--size-xs[data-v-f0062177] {
55
+ .rp-button--size-xs {
52
56
  --_rp-button-height: var(--rp-size-control-xs);
53
57
  --_rp-button-padding-x: 14px;
54
58
  --_rp-button-font-size: var(--rp-font-size-xs);
55
59
  }
56
- .rp-button--size-sm[data-v-f0062177] {
60
+ .rp-button--size-sm {
57
61
  --_rp-button-height: var(--rp-size-control-sm);
58
62
  --_rp-button-padding-x: 18px;
59
63
  --_rp-button-font-size: var(--rp-font-size-sm);
60
64
  }
61
- .rp-button--size-md[data-v-f0062177] {
65
+ .rp-button--size-md {
62
66
  --_rp-button-height: var(--rp-size-control-md);
63
67
  --_rp-button-padding-x: 22px;
64
68
  --_rp-button-font-size: var(--rp-font-size-md);
65
69
  }
66
- .rp-button--size-lg[data-v-f0062177] {
70
+ .rp-button--size-lg {
67
71
  --_rp-button-height: var(--rp-size-control-lg);
68
72
  --_rp-button-padding-x: 26px;
69
73
  --_rp-button-font-size: var(--rp-font-size-lg);
70
74
  }
71
- .rp-button--size-xl[data-v-f0062177] {
75
+ .rp-button--size-xl {
72
76
  --_rp-button-height: var(--rp-size-control-xl);
73
77
  --_rp-button-padding-x: 32px;
74
78
  --_rp-button-font-size: var(--rp-font-size-xl);
75
79
  }
76
- .rp-button--radius-xs[data-v-f0062177] {
80
+ .rp-button--radius-xs {
77
81
  --_rp-button-radius: var(--rp-radius-xs);
78
82
  }
79
- .rp-button--radius-sm[data-v-f0062177] {
83
+ .rp-button--radius-sm {
80
84
  --_rp-button-radius: var(--rp-radius-sm);
81
85
  }
82
- .rp-button--radius-md[data-v-f0062177] {
86
+ .rp-button--radius-md {
83
87
  --_rp-button-radius: var(--rp-radius-md);
84
88
  }
85
- .rp-button--radius-lg[data-v-f0062177] {
89
+ .rp-button--radius-lg {
86
90
  --_rp-button-radius: var(--rp-radius-lg);
87
91
  }
88
- .rp-button--radius-xl[data-v-f0062177] {
92
+ .rp-button--radius-xl {
89
93
  --_rp-button-radius: var(--rp-radius-xl);
90
94
  }
91
- .rp-button--subtle[data-v-f0062177] {
95
+ .rp-button--subtle {
92
96
  --_rp-button-shadow: none;
93
97
  --_rp-button-shadow-hover: none;
94
98
  --_rp-button-shadow-active: none;
95
99
  }
96
- .rp-button--surface[data-v-f0062177] {
100
+ .rp-button--surface {
97
101
  --_rp-button-shadow: none;
98
102
  --_rp-button-shadow-hover: none;
99
103
  --_rp-button-shadow-active: none;
100
104
  }
101
- .rp-button--outline[data-v-f0062177] {
105
+ .rp-button--outline {
102
106
  --_rp-button-shadow: none;
103
107
  --_rp-button-shadow-hover: none;
104
108
  --_rp-button-shadow-active: none;
105
109
  }
106
- .rp-button--ghost[data-v-f0062177] {
110
+ .rp-button--ghost {
107
111
  --_rp-button-shadow: none;
108
112
  --_rp-button-shadow-hover: none;
109
113
  --_rp-button-shadow-active: none;
110
114
  }
111
- .rp-button--plain[data-v-f0062177] {
115
+ .rp-button--plain {
112
116
  --_rp-button-shadow: none;
113
117
  --_rp-button-shadow-hover: none;
114
118
  --_rp-button-shadow-active: none;
115
119
  }
116
- .rp-button[data-v-f0062177]:disabled, .rp-button--disabled[data-v-f0062177] {
120
+ .rp-button:disabled, .rp-button--disabled {
117
121
  opacity: var(--rp-opacity-disabled);
118
122
  cursor: not-allowed;
119
123
  box-shadow: none;
120
124
  transform: none;
121
125
  }
122
- .rp-button[data-v-f0062177]:focus-visible {
126
+ .rp-button:focus-visible {
123
127
  outline: none;
124
128
  border-color: var(--rp-color-control-border-focus);
125
129
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
126
130
  }
127
- .rp-button--loading .rp-button__content[data-v-f0062177] {
131
+ .rp-button--loading .rp-button__content {
128
132
  opacity: 0;
129
133
  }
130
- .rp-button__content[data-v-f0062177] {
134
+ .rp-button__content {
131
135
  display: inline-flex;
132
136
  align-items: center;
133
137
  justify-content: center;
134
138
  gap: var(--rp-spacing-2);
135
139
  }
136
- .rp-button__left[data-v-f0062177], .rp-button__right[data-v-f0062177] {
140
+ .rp-button__left, .rp-button__right {
137
141
  display: inline-flex;
138
142
  align-items: center;
139
143
  flex-shrink: 0;
140
144
  }
141
- .rp-button__loading[data-v-f0062177] {
145
+ .rp-button__loading {
142
146
  display: inline-flex;
143
147
  align-items: center;
144
148
  justify-content: center;
@@ -147,15 +151,20 @@
147
151
  left: 50%;
148
152
  translate: -50% -50%;
149
153
  }
150
- .rp-button__spinner[data-v-f0062177] {
154
+ .rp-button__spinner {
151
155
  display: block;
152
156
  width: 1em;
153
157
  height: 1em;
154
158
  flex-shrink: 0;
155
159
  transform-origin: center;
156
- animation: rp-spinner-spin-f0062177 700ms linear infinite;
160
+ animation: rp-spinner-spin 700ms linear infinite;
157
161
  }
158
- @keyframes rp-spinner-spin-f0062177 {
162
+ @media (prefers-reduced-motion: reduce) {
163
+ .rp-button__spinner {
164
+ animation: none;
165
+ }
166
+ }
167
+ @keyframes rp-spinner-spin {
159
168
  to {
160
169
  transform: rotate(360deg);
161
170
  }
package/dist/button.js CHANGED
@@ -1,22 +1,24 @@
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-f0062177>");
9
- var t1 = template("<button data-v-f0062177><span data-v-f0062177 class=rp-button__content><span data-v-f0062177></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",
16
14
  props: {
17
15
  variant: {},
18
16
  color: {},
19
- autoContrast: { type: Boolean },
17
+ autoContrast: {
18
+ type: Boolean,
19
+ default: true
20
+ },
21
+ contrastColor: {},
20
22
  size: {},
21
23
  radius: {},
22
24
  type: { default: "button" },
@@ -39,7 +41,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
39
41
  [`radius-${props.radius}`]: Boolean(props.radius),
40
42
  loading: props.loading
41
43
  }));
42
- const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast));
44
+ const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast, props.contrastColor));
43
45
  const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
44
46
  const rootAttrs = computed(() => getRootAttrs({
45
47
  class: rootClass.value,
@@ -61,7 +63,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
61
63
  setInsertionState(n5, null, 0);
62
64
  createSlot("loading", null, () => {
63
65
  return createComponent(unref(loader_circle_default), { class: "rp-button__spinner" });
64
- }, 1);
66
+ });
65
67
  return n5;
66
68
  });
67
69
  setInsertionState(n16, 0);
@@ -69,23 +71,23 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
69
71
  const n9 = t0();
70
72
  renderEffect(() => setDynamicProps(n9, [unref(getPartAttrs)("left", { class: "rp-button__left" })]));
71
73
  setInsertionState(n9, null, 0);
72
- createSlot("left", null, null, 1);
74
+ createSlot("left");
73
75
  return n9;
74
76
  });
75
77
  renderEffect(() => setDynamicProps(n11, [unref(getPartAttrs)("label", { class: "rp-button__label" })]));
76
78
  setInsertionState(n11, null, 0);
77
- createSlot("default", null, null, 1);
79
+ createSlot();
78
80
  setInsertionState(n16, null, 2);
79
81
  createIf(() => $slots.right, () => {
80
82
  const n15 = t0();
81
83
  renderEffect(() => setDynamicProps(n15, [unref(getPartAttrs)("right", { class: "rp-button__right" })]));
82
84
  setInsertionState(n15, null, 0);
83
- createSlot("right", null, null, 1);
85
+ createSlot("right");
84
86
  return n15;
85
87
  });
86
88
  return n17;
87
89
  }
88
- }), [["__scopeId", "data-v-f0062177"]]);
90
+ });
89
91
  //#endregion
90
92
  //#region src/components/button/types.ts
91
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);
@@ -11,12 +12,13 @@ var loader_circle_default = markRaw(defineVaporComponent({
11
12
  }));
12
13
  //#endregion
13
14
  //#region src/components/button/useButtonColor.ts
14
- function getButtonColorStyle(color, variant, autoContrast) {
15
+ function getButtonColorStyle(color, variant, autoContrast, contrastColor) {
15
16
  if (!color && !variant) return void 0;
16
17
  const roles = getComponentVariantColorRoles({
17
18
  color,
18
19
  variant,
19
- autoContrast
20
+ autoContrast,
21
+ contrastColor
20
22
  });
21
23
  if (!roles) return void 0;
22
24
  return {
@@ -26,7 +28,9 @@ function getButtonColorStyle(color, variant, autoContrast) {
26
28
  "--_rp-button-border": roles.border,
27
29
  "--_rp-button-border-hover": roles.borderHover,
28
30
  "--_rp-button-border-active": roles.borderActive,
29
- "--_rp-button-fg": roles.color
31
+ "--_rp-button-fg": roles.color,
32
+ "--_rp-button-fg-hover": roles.colorHover,
33
+ "--_rp-button-fg-active": roles.colorActive
30
34
  };
31
35
  }
32
36
  //#endregion
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126], .rp-checkbox--indeterminate .rp-checkbox__box[data-v-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] [stroke-width] {
73
+ .rp-checkbox__icon[data-v-871a9e21] [stroke-width] {
74
74
  stroke-width: 3;
75
75
  }
76
- .rp-checkbox__label[data-v-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
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-cc3e1126] {
105
+ .rp-checkbox--radius-xs[data-v-871a9e21] {
106
106
  --_rp-checkbox-radius: 2px;
107
107
  }
108
- .rp-checkbox--radius-sm[data-v-cc3e1126] {
108
+ .rp-checkbox--radius-sm[data-v-871a9e21] {
109
109
  --_rp-checkbox-radius: 4px;
110
110
  }
111
- .rp-checkbox--radius-md[data-v-cc3e1126] {
111
+ .rp-checkbox--radius-md[data-v-871a9e21] {
112
112
  --_rp-checkbox-radius: 6px;
113
113
  }
114
- .rp-checkbox--radius-lg[data-v-cc3e1126] {
114
+ .rp-checkbox--radius-lg[data-v-871a9e21] {
115
115
  --_rp-checkbox-radius: 8px;
116
116
  }
117
- .rp-checkbox--radius-xl[data-v-cc3e1126] {
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-cc3e1126],
121
- .rp-checkbox-icon-leave-active[data-v-cc3e1126] {
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-cc3e1126],
125
- .rp-checkbox-icon-leave-to[data-v-cc3e1126] {
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-cc3e1126],
130
- .rp-checkbox-icon-leave-from[data-v-cc3e1126] {
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-cc3e1126] {
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-cc3e1126],
139
- .rp-checkbox-icon-leave-active[data-v-cc3e1126] {
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,21 +1,25 @@
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 { o as useControllableValue, r as useCheckedFormControl } from "./useFormControl.js";
9
+ import { r as useCheckedFormControl } from "./useFormControl.js";
9
10
  import { t as useControlState } from "./useControlState.js";
10
11
  import { VaporTransition, child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, next, ref, renderEffect, setBlockKey, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref } from "vue";
11
12
  //#region src/components/checkbox/useCheckbox.ts
12
- function getCheckboxColorStyle(color, autoContrast) {
13
+ function getCheckboxColorStyle(color, autoContrast, contrastColor) {
13
14
  const colorValue = getComponentColorValue(color);
14
15
  if (color && !colorValue) return void 0;
15
- if (!colorValue && !autoContrast) return void 0;
16
+ if (!colorValue && autoContrast === false && contrastColor === void 0) return void 0;
16
17
  const style = {};
17
18
  if (colorValue) style["--_rp-checkbox-color"] = colorValue;
18
- if (autoContrast) style["--_rp-checkbox-on-color"] = getComponentContrastColor(color ?? "primary", { autoContrast });
19
+ if (autoContrast !== false || contrastColor !== void 0) style["--_rp-checkbox-on-color"] = getComponentContrastColor(color ?? "primary", {
20
+ autoContrast,
21
+ contrastColor
22
+ });
19
23
  return style;
20
24
  }
21
25
  function useCheckbox(props, emitUpdate, getValue = () => props.modelValue ?? false) {
@@ -30,7 +34,7 @@ function useCheckbox(props, emitUpdate, getValue = () => props.modelValue ?? fal
30
34
  [`size-${props.size}`]: Boolean(props.size),
31
35
  [`radius-${props.radius}`]: Boolean(props.radius)
32
36
  }));
33
- const rootStyle = computed(() => getCheckboxColorStyle(props.color, props.autoContrast));
37
+ const rootStyle = computed(() => getCheckboxColorStyle(props.color, props.autoContrast, props.contrastColor));
34
38
  function onChange(e) {
35
39
  emitUpdate(e.target.checked);
36
40
  }
@@ -48,8 +52,8 @@ function useCheckbox(props, emitUpdate, getValue = () => props.modelValue ?? fal
48
52
  }
49
53
  //#endregion
50
54
  //#region src/components/checkbox/checkbox.vue?vue&type=script&setup=true&vapor=true&lang.ts
51
- var t0 = template("<span data-v-cc3e1126>");
52
- var t1 = template("<label data-v-cc3e1126><input data-v-cc3e1126><span data-v-cc3e1126></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);
53
57
  //#endregion
54
58
  //#region src/components/checkbox/checkbox.vue
55
59
  var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -71,7 +75,11 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
71
75
  value: { default: "on" },
72
76
  variant: {},
73
77
  color: {},
74
- autoContrast: { type: Boolean },
78
+ autoContrast: {
79
+ type: Boolean,
80
+ default: true
81
+ },
82
+ contrastColor: {},
75
83
  size: {},
76
84
  radius: {},
77
85
  disabled: {
@@ -196,7 +204,7 @@ var checkbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
196
204
  });
197
205
  return n13;
198
206
  }
199
- }), [["__scopeId", "data-v-cc3e1126"]]);
207
+ }), [["__scopeId", "data-v-871a9e21"]]);
200
208
  //#endregion
201
209
  //#region src/components/checkbox/types.ts
202
210
  var checkboxParts = [
@@ -0,0 +1,12 @@
1
+ import { defineVaporComponent, markRaw, template } from "vue";
2
+ //#region ~icons/lucide/chevron-right
3
+ 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=\"m9 18l6-6l-6-6\">", 3, 1);
4
+ function render(_ctx) {
5
+ return t0();
6
+ }
7
+ var chevron_right_default = markRaw(defineVaporComponent({
8
+ name: "lucide-chevron-right",
9
+ render
10
+ }));
11
+ //#endregion
12
+ export { chevron_right_default as t };
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
  }