ropav 0.1.3 → 0.1.5

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 (88) hide show
  1. package/README.md +16 -0
  2. package/dist/alert.css +18 -18
  3. package/dist/alert.js +15 -10
  4. package/dist/avatar.css +19 -19
  5. package/dist/avatar.js +14 -9
  6. package/dist/badge.css +16 -16
  7. package/dist/badge.js +12 -7
  8. package/dist/base.css +196 -56
  9. package/dist/button-link.css +32 -28
  10. package/dist/button-link.js +9 -5
  11. package/dist/button.css +32 -28
  12. package/dist/button.js +9 -5
  13. package/dist/checkbox.css +32 -32
  14. package/dist/checkbox.js +17 -9
  15. package/dist/chevron-right.js +12 -0
  16. package/dist/collectionNavigation.js +120 -0
  17. package/dist/color-input.js +2 -1
  18. package/dist/componentColors.js +94 -22
  19. package/dist/components/alert/types.d.ts +1 -0
  20. package/dist/components/alert/useAlertColor.d.ts +1 -1
  21. package/dist/components/avatar/types.d.ts +1 -0
  22. package/dist/components/avatar/useAvatarColor.d.ts +1 -1
  23. package/dist/components/badge/types.d.ts +1 -0
  24. package/dist/components/badge/useBadgeColor.d.ts +1 -1
  25. package/dist/components/button/types.d.ts +1 -0
  26. package/dist/components/button/useButtonColor.d.ts +1 -1
  27. package/dist/components/button-link/types.d.ts +1 -0
  28. package/dist/components/checkbox/types.d.ts +1 -0
  29. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +1 -0
  30. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -2
  31. package/dist/components/dropdown-menu/index.d.ts +1 -0
  32. package/dist/components/dropdown-menu/types.d.ts +4 -0
  33. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -1
  34. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +1 -0
  35. package/dist/components/icon-button/types.d.ts +1 -0
  36. package/dist/components/pagination/index.d.ts +4 -0
  37. package/dist/components/pagination/index.js +2 -0
  38. package/dist/components/pagination/pagination.d.ts +49 -0
  39. package/dist/components/pagination/types.d.ts +54 -0
  40. package/dist/components/pagination/usePagination.d.ts +19 -0
  41. package/dist/components/radio/types.d.ts +3 -0
  42. package/dist/components/scroll-area/scroll-area.d.ts +37 -3
  43. package/dist/components/scroll-area/types.d.ts +1 -0
  44. package/dist/components/scroll-area/useScrollArea.d.ts +4 -0
  45. package/dist/components/scroll-area/useScrollAreaControls.d.ts +4 -0
  46. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +1 -1
  47. package/dist/components/select/useSelect.d.ts +1 -1
  48. package/dist/components/slider/range-slider-tooltip.d.ts +2 -0
  49. package/dist/components/slider/types.d.ts +1 -1
  50. package/dist/components/slider/useRangeSlider.d.ts +2 -0
  51. package/dist/components/slider/useSlider.d.ts +2 -0
  52. package/dist/components/toast/types.d.ts +2 -0
  53. package/dist/components/toast/useToastColor.d.ts +1 -1
  54. package/dist/components/tooltip/types.d.ts +1 -0
  55. package/dist/components/tooltip/useTooltip.d.ts +1 -1
  56. package/dist/dropdown-menu.js +55 -30
  57. package/dist/icon-button.css +39 -35
  58. package/dist/icon-button.js +9 -5
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.js +2 -1
  61. package/dist/input.js +2 -1
  62. package/dist/number-input.js +2 -1
  63. package/dist/pagination.css +140 -0
  64. package/dist/pagination.js +442 -0
  65. package/dist/radio.js +15 -5
  66. package/dist/scroll-area.css +25 -25
  67. package/dist/scroll-area.js +102 -19
  68. package/dist/select.js +65 -46
  69. package/dist/slider.css +191 -191
  70. package/dist/slider.js +49 -31
  71. package/dist/switch.js +2 -1
  72. package/dist/tabs.css +13 -13
  73. package/dist/tabs.js +38 -9
  74. package/dist/textarea.js +2 -1
  75. package/dist/toast.css +26 -26
  76. package/dist/toast.js +16 -9
  77. package/dist/tooltip.css +12 -12
  78. package/dist/tooltip.js +13 -8
  79. package/dist/unplugin-icons.js +38 -25
  80. package/dist/useButtonColor.js +6 -3
  81. package/dist/useControllableValue.js +27 -0
  82. package/dist/useFormControl.js +2 -27
  83. package/dist/utils/componentColors.d.ts +14 -1
  84. package/docs/public-styles-api.md +1 -1
  85. package/docs/public-tokens.md +648 -508
  86. package/package.json +8 -2
  87. package/src/styles/_tokens.scss +459 -319
  88. package/src/styles/styles-manifest.json +1122 -2
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-button[data-v-107a8d80] {
2
+ .rp-button[data-v-dd8ef63e] {
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-107a8d80]:hover:not(:disabled):not(.rp-button--disabled) {
42
+ .rp-button[data-v-dd8ef63e]: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-107a8d80]:active:not(:disabled):not(.rp-button--disabled) {
48
+ .rp-button[data-v-dd8ef63e]: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-107a8d80] {
55
+ .rp-button--size-xs[data-v-dd8ef63e] {
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-107a8d80] {
60
+ .rp-button--size-sm[data-v-dd8ef63e] {
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-107a8d80] {
65
+ .rp-button--size-md[data-v-dd8ef63e] {
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-107a8d80] {
70
+ .rp-button--size-lg[data-v-dd8ef63e] {
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-107a8d80] {
75
+ .rp-button--size-xl[data-v-dd8ef63e] {
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-107a8d80] {
80
+ .rp-button--radius-xs[data-v-dd8ef63e] {
77
81
  --_rp-button-radius: var(--rp-radius-xs);
78
82
  }
79
- .rp-button--radius-sm[data-v-107a8d80] {
83
+ .rp-button--radius-sm[data-v-dd8ef63e] {
80
84
  --_rp-button-radius: var(--rp-radius-sm);
81
85
  }
82
- .rp-button--radius-md[data-v-107a8d80] {
86
+ .rp-button--radius-md[data-v-dd8ef63e] {
83
87
  --_rp-button-radius: var(--rp-radius-md);
84
88
  }
85
- .rp-button--radius-lg[data-v-107a8d80] {
89
+ .rp-button--radius-lg[data-v-dd8ef63e] {
86
90
  --_rp-button-radius: var(--rp-radius-lg);
87
91
  }
88
- .rp-button--radius-xl[data-v-107a8d80] {
92
+ .rp-button--radius-xl[data-v-dd8ef63e] {
89
93
  --_rp-button-radius: var(--rp-radius-xl);
90
94
  }
91
- .rp-button--subtle[data-v-107a8d80] {
95
+ .rp-button--subtle[data-v-dd8ef63e] {
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-107a8d80] {
100
+ .rp-button--surface[data-v-dd8ef63e] {
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-107a8d80] {
105
+ .rp-button--outline[data-v-dd8ef63e] {
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-107a8d80] {
110
+ .rp-button--ghost[data-v-dd8ef63e] {
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-107a8d80] {
115
+ .rp-button--plain[data-v-dd8ef63e] {
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-107a8d80]:disabled, .rp-button--disabled[data-v-107a8d80] {
120
+ .rp-button[data-v-dd8ef63e]:disabled, .rp-button--disabled[data-v-dd8ef63e] {
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-107a8d80]:focus-visible {
126
+ .rp-button[data-v-dd8ef63e]: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-107a8d80] {
131
+ .rp-button--loading .rp-button__content[data-v-dd8ef63e] {
128
132
  opacity: 0;
129
133
  }
130
- .rp-button__content[data-v-107a8d80] {
134
+ .rp-button__content[data-v-dd8ef63e] {
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-107a8d80], .rp-button__right[data-v-107a8d80] {
140
+ .rp-button__left[data-v-dd8ef63e], .rp-button__right[data-v-dd8ef63e] {
137
141
  display: inline-flex;
138
142
  align-items: center;
139
143
  flex-shrink: 0;
140
144
  }
141
- .rp-button__loading[data-v-107a8d80] {
145
+ .rp-button__loading[data-v-dd8ef63e] {
142
146
  display: inline-flex;
143
147
  align-items: center;
144
148
  justify-content: center;
@@ -147,15 +151,15 @@
147
151
  left: 50%;
148
152
  translate: -50% -50%;
149
153
  }
150
- .rp-button__spinner[data-v-107a8d80] {
154
+ .rp-button__spinner[data-v-dd8ef63e] {
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-107a8d80 700ms linear infinite;
160
+ animation: rp-spinner-spin-dd8ef63e 700ms linear infinite;
157
161
  }
158
- @keyframes rp-spinner-spin-107a8d80 {
162
+ @keyframes rp-spinner-spin-dd8ef63e {
159
163
  to {
160
164
  transform: rotate(360deg);
161
165
  }
@@ -5,8 +5,8 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
5
5
  import { n as loader_circle_default, t as getButtonColorStyle } from "./useButtonColor.js";
6
6
  import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
7
7
  //#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);
8
+ var t0 = template("<span data-v-dd8ef63e>");
9
+ var t1 = template("<a data-v-dd8ef63e><span data-v-dd8ef63e class=rp-button__content><span data-v-dd8ef63e></span>", 1);
10
10
  //#endregion
11
11
  //#region src/components/button-link/button-link.vue
12
12
  var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -21,7 +21,11 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
21
21
  hreflang: {},
22
22
  variant: {},
23
23
  color: {},
24
- autoContrast: { type: Boolean },
24
+ autoContrast: {
25
+ type: Boolean,
26
+ default: true
27
+ },
28
+ contrastColor: {},
25
29
  size: {},
26
30
  radius: {},
27
31
  disabled: {
@@ -45,7 +49,7 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
45
49
  disabled: isUnavailable.value,
46
50
  loading: props.loading
47
51
  }));
48
- const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast));
52
+ const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast, props.contrastColor));
49
53
  const resolvedHref = computed(() => isUnavailable.value ? void 0 : props.href);
50
54
  const resolvedTarget = computed(() => isUnavailable.value ? void 0 : props.target);
51
55
  const resolvedRel = computed(() => {
@@ -113,7 +117,7 @@ var button_link_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
113
117
  });
114
118
  return n17;
115
119
  }
116
- }), [["__scopeId", "data-v-107a8d80"]]);
120
+ }), [["__scopeId", "data-v-dd8ef63e"]]);
117
121
  //#endregion
118
122
  //#region src/components/button-link/types.ts
119
123
  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[data-v-15cdf23b] {
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[data-v-15cdf23b]: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[data-v-15cdf23b]: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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
77
81
  --_rp-button-radius: var(--rp-radius-xs);
78
82
  }
79
- .rp-button--radius-sm[data-v-f0062177] {
83
+ .rp-button--radius-sm[data-v-15cdf23b] {
80
84
  --_rp-button-radius: var(--rp-radius-sm);
81
85
  }
82
- .rp-button--radius-md[data-v-f0062177] {
86
+ .rp-button--radius-md[data-v-15cdf23b] {
83
87
  --_rp-button-radius: var(--rp-radius-md);
84
88
  }
85
- .rp-button--radius-lg[data-v-f0062177] {
89
+ .rp-button--radius-lg[data-v-15cdf23b] {
86
90
  --_rp-button-radius: var(--rp-radius-lg);
87
91
  }
88
- .rp-button--radius-xl[data-v-f0062177] {
92
+ .rp-button--radius-xl[data-v-15cdf23b] {
89
93
  --_rp-button-radius: var(--rp-radius-xl);
90
94
  }
91
- .rp-button--subtle[data-v-f0062177] {
95
+ .rp-button--subtle[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b] {
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[data-v-15cdf23b]:disabled, .rp-button--disabled[data-v-15cdf23b] {
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[data-v-15cdf23b]: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[data-v-15cdf23b] {
128
132
  opacity: 0;
129
133
  }
130
- .rp-button__content[data-v-f0062177] {
134
+ .rp-button__content[data-v-15cdf23b] {
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[data-v-15cdf23b], .rp-button__right[data-v-15cdf23b] {
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[data-v-15cdf23b] {
142
146
  display: inline-flex;
143
147
  align-items: center;
144
148
  justify-content: center;
@@ -147,15 +151,15 @@
147
151
  left: 50%;
148
152
  translate: -50% -50%;
149
153
  }
150
- .rp-button__spinner[data-v-f0062177] {
154
+ .rp-button__spinner[data-v-15cdf23b] {
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-15cdf23b 700ms linear infinite;
157
161
  }
158
- @keyframes rp-spinner-spin-f0062177 {
162
+ @keyframes rp-spinner-spin-15cdf23b {
159
163
  to {
160
164
  transform: rotate(360deg);
161
165
  }
package/dist/button.js CHANGED
@@ -5,8 +5,8 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
5
5
  import { n as loader_circle_default, t as getButtonColorStyle } from "./useButtonColor.js";
6
6
  import { child, computed, createComponent, createIf, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, template, unref } from "vue";
7
7
  //#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);
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);
10
10
  //#endregion
11
11
  //#region src/components/button/button.vue
12
12
  var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -16,7 +16,11 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
16
16
  props: {
17
17
  variant: {},
18
18
  color: {},
19
- autoContrast: { type: Boolean },
19
+ autoContrast: {
20
+ type: Boolean,
21
+ default: true
22
+ },
23
+ contrastColor: {},
20
24
  size: {},
21
25
  radius: {},
22
26
  type: { default: "button" },
@@ -39,7 +43,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
39
43
  [`radius-${props.radius}`]: Boolean(props.radius),
40
44
  loading: props.loading
41
45
  }));
42
- const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast));
46
+ const rootStyle = computed(() => getButtonColorStyle(props.color, props.variant, props.autoContrast, props.contrastColor));
43
47
  const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
44
48
  const rootAttrs = computed(() => getRootAttrs({
45
49
  class: rootClass.value,
@@ -85,7 +89,7 @@ var button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
85
89
  });
86
90
  return n17;
87
91
  }
88
- }), [["__scopeId", "data-v-f0062177"]]);
92
+ }), [["__scopeId", "data-v-15cdf23b"]]);
89
93
  //#endregion
90
94
  //#region src/components/button/types.ts
91
95
  var buttonParts = [
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a], .rp-checkbox--indeterminate .rp-checkbox__box[data-v-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] [stroke-width] {
74
74
  stroke-width: 3;
75
75
  }
76
- .rp-checkbox__label[data-v-cc3e1126] {
76
+ .rp-checkbox__label[data-v-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a] {
106
106
  --_rp-checkbox-radius: 2px;
107
107
  }
108
- .rp-checkbox--radius-sm[data-v-cc3e1126] {
108
+ .rp-checkbox--radius-sm[data-v-f0f09b8a] {
109
109
  --_rp-checkbox-radius: 4px;
110
110
  }
111
- .rp-checkbox--radius-md[data-v-cc3e1126] {
111
+ .rp-checkbox--radius-md[data-v-f0f09b8a] {
112
112
  --_rp-checkbox-radius: 6px;
113
113
  }
114
- .rp-checkbox--radius-lg[data-v-cc3e1126] {
114
+ .rp-checkbox--radius-lg[data-v-f0f09b8a] {
115
115
  --_rp-checkbox-radius: 8px;
116
116
  }
117
- .rp-checkbox--radius-xl[data-v-cc3e1126] {
117
+ .rp-checkbox--radius-xl[data-v-f0f09b8a] {
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-f0f09b8a],
121
+ .rp-checkbox-icon-leave-active[data-v-f0f09b8a] {
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-f0f09b8a],
125
+ .rp-checkbox-icon-leave-to[data-v-f0f09b8a] {
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-f0f09b8a],
130
+ .rp-checkbox-icon-leave-from[data-v-f0f09b8a] {
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-f0f09b8a] {
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-f0f09b8a],
139
+ .rp-checkbox-icon-leave-active[data-v-f0f09b8a] {
140
140
  transition: none;
141
141
  }
142
142
  }
package/dist/checkbox.js CHANGED
@@ -5,17 +5,21 @@ import { n as getComponentColorValue, r as getComponentContrastColor } from "./c
5
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
6
  import { t as check_default } from "./check.js";
7
7
  import { t as minus_default } from "./minus.js";
8
- import { o as useControllableValue, r as useCheckedFormControl } from "./useFormControl.js";
8
+ import { t as useControllableValue } from "./useControllableValue.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-f0f09b8a>");
56
+ var t1 = template("<label data-v-f0f09b8a><input data-v-f0f09b8a><span data-v-f0f09b8a></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-f0f09b8a"]]);
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 };