ropav 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +4 -0
  2. package/dist/accordion.js +11 -8
  3. package/dist/alert.css +18 -18
  4. package/dist/alert.js +18 -17
  5. package/dist/avatar.js +2 -2
  6. package/dist/badge.js +2 -2
  7. package/dist/base.css +18 -13
  8. package/dist/button-group.js +1 -1
  9. package/dist/button-link.js +10 -12
  10. package/dist/button.css +32 -27
  11. package/dist/button.js +10 -12
  12. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +2 -1
  13. package/dist/card.js +1 -1
  14. package/dist/checkbox.css +32 -32
  15. package/dist/checkbox.js +6 -6
  16. package/dist/collapse.css +6 -6
  17. package/dist/collapse.js +4 -4
  18. package/dist/collectionNavigation.js +2 -2
  19. package/dist/color-input.css +19 -19
  20. package/dist/color-input.js +5 -5
  21. package/dist/color-picker.css +7 -7
  22. package/dist/color-picker.js +4 -5
  23. package/dist/color-swatch.js +1 -1
  24. package/dist/componentColors.js +42 -2
  25. package/dist/components/checkbox/useCheckbox.d.ts +1 -1
  26. package/dist/components/color-input/color-input.d.ts +2 -2
  27. package/dist/components/color-input/useColorInput.d.ts +1 -1
  28. package/dist/components/dialog/dialog-core.d.ts +1 -1
  29. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  30. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +1 -1
  31. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  32. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  33. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +3 -4
  34. package/dist/components/input/useInput.d.ts +1 -1
  35. package/dist/components/number-input/useNumberInput.d.ts +1 -1
  36. package/dist/components/progress/useProgress.d.ts +1 -1
  37. package/dist/components/radio/useRadio.d.ts +2 -2
  38. package/dist/components/scroll-area/scrollAreaCore.d.ts +5 -0
  39. package/dist/components/scroll-area/types.d.ts +4 -0
  40. package/dist/components/scroll-area/useScrollArea.d.ts +1 -0
  41. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +3 -0
  42. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +3 -0
  43. package/dist/components/select/useSelect.d.ts +2 -1
  44. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  45. package/dist/components/slider/sliderCore.d.ts +2 -1
  46. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  47. package/dist/components/slider/useSlider.d.ts +1 -1
  48. package/dist/components/switch/useSwitch.d.ts +1 -1
  49. package/dist/components/textarea/useTextarea.d.ts +1 -1
  50. package/dist/composables/index.d.ts +2 -0
  51. package/dist/composables/index.js +2 -0
  52. package/dist/composables/useControllableValue.d.ts +14 -0
  53. package/dist/dialog.js +8 -5
  54. package/dist/dropdown-menu.js +43 -29
  55. package/dist/field.js +1 -1
  56. package/dist/floating.js +19 -7
  57. package/dist/icon-button.css +12 -173
  58. package/dist/icon-button.js +5 -5
  59. package/dist/index.d.ts +5 -4
  60. package/dist/index.js +7 -5
  61. package/dist/input.css +24 -24
  62. package/dist/input.js +5 -5
  63. package/dist/modal.js +11 -7
  64. package/dist/number-input.css +18 -18
  65. package/dist/number-input.js +7 -7
  66. package/dist/overlay.js +1 -1
  67. package/dist/pagination.js +3 -3
  68. package/dist/popover.js +9 -6
  69. package/dist/progress.css +29 -21
  70. package/dist/progress.js +17 -10
  71. package/dist/radio.js +3 -3
  72. package/dist/scroll-area.css +10 -1
  73. package/dist/scroll-area.js +82 -25
  74. package/dist/select.css +45 -45
  75. package/dist/select.js +48 -26
  76. package/dist/slider.css +142 -142
  77. package/dist/slider.js +32 -38
  78. package/dist/switch.css +17 -17
  79. package/dist/switch.js +6 -6
  80. package/dist/tabs.css +3 -3
  81. package/dist/tabs.js +25 -15
  82. package/dist/textarea.css +26 -26
  83. package/dist/textarea.js +4 -4
  84. package/dist/toast.css +26 -26
  85. package/dist/toast.js +24 -19
  86. package/dist/tooltip.js +11 -8
  87. package/dist/useCollapse.js +12 -7
  88. package/dist/useControlState.js +1 -1
  89. package/dist/useControllableValue.js +8 -2
  90. package/dist/useFloatingPosition.js +4 -1140
  91. package/dist/useFormControl.js +3 -2
  92. package/dist/useOverlayZIndex.js +1 -1
  93. package/dist/useRequiredInject.js +1 -1
  94. package/docs/public-composables-api.md +52 -0
  95. package/package.json +45 -38
  96. package/src/styles/_mixins.scss +4 -0
  97. package/src/styles/_tokens.scss +12 -12
  98. package/src/styles/_variables.scss +1 -1
  99. package/dist/button-link.css +0 -167
  100. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { inject, provide, watchEffect } from "vue";
2
- //#region src/composables/useFormControl.ts
2
+ //#region src/internal/composables/useFormControl.ts
3
3
  var nestedFormControlOwnerKey = Symbol("nestedFormControlOwner");
4
4
  function provideNestedFormControlOwner() {
5
5
  let claimed = false;
@@ -32,7 +32,8 @@ function useFormControl(options) {
32
32
  if (documents.size === 0) return;
33
33
  function onReset(event) {
34
34
  const form = event.target;
35
- if (!(form instanceof HTMLFormElement)) return;
35
+ const FormConstructor = event.currentTarget?.defaultView?.HTMLFormElement;
36
+ if (!FormConstructor || !(form instanceof FormConstructor)) return;
36
37
  const elements = getElements(options).filter((element) => element.form === form);
37
38
  if (elements.length === 0) return;
38
39
  queueMicrotask(() => {
@@ -1,5 +1,5 @@
1
1
  import { computed, inject, onBeforeUnmount, provide, readonly, ref, shallowRef, toValue, watch } from "vue";
2
- //#region src/composables/useOverlayLayer.ts
2
+ //#region src/internal/composables/useOverlayLayer.ts
3
3
  var overlayLayerKey = Symbol("overlay-layer");
4
4
  var documentStates = /* @__PURE__ */ new WeakMap();
5
5
  var layerMetadata = /* @__PURE__ */ new WeakMap();
@@ -1,5 +1,5 @@
1
1
  import { inject } from "vue";
2
- //#region src/composables/useRequiredInject.ts
2
+ //#region src/internal/composables/useRequiredInject.ts
3
3
  function useRequiredInject(key, componentName) {
4
4
  const value = inject(key);
5
5
  if (value == null) throw new Error(`[Ropav] <${componentName}> must be used inside its parent provider component.`);
@@ -0,0 +1,52 @@
1
+ # Public composables API
2
+
3
+ Ropav exposes framework-level composables from both the root package and the dedicated
4
+ `ropav/composables` entrypoint. Prefer the dedicated entrypoint when an application only needs
5
+ headless state behavior.
6
+
7
+ ## `useControllableValue`
8
+
9
+ `useControllableValue` implements the controlled/uncontrolled value pattern used across Ropav
10
+ components and composables. A defined `modelValue` makes the value controlled; only `undefined`
11
+ selects internal state, so values such as `null` and `false` remain controlled values.
12
+
13
+ ```vue
14
+ <script setup lang="ts">
15
+ import { useControllableValue } from 'ropav/composables';
16
+
17
+ const props = withDefaults(
18
+ defineProps<{
19
+ modelValue?: string;
20
+ defaultValue?: string;
21
+ }>(),
22
+ {
23
+ modelValue: undefined,
24
+ defaultValue: '',
25
+ },
26
+ );
27
+
28
+ const emit = defineEmits<{
29
+ 'update:modelValue': [value: string];
30
+ }>();
31
+
32
+ const { value, isControlled, setValue, resetValue } = useControllableValue({
33
+ modelValue: () => props.modelValue,
34
+ defaultValue: () => props.defaultValue,
35
+ onChange: (value) => emit('update:modelValue', value),
36
+ });
37
+ </script>
38
+ ```
39
+
40
+ `defaultValue()` is read once when the composable is created. `setValue()` updates internal state
41
+ only in uncontrolled mode and always calls `onChange`, including repeated requests for the same
42
+ value. In controlled mode, the parent remains responsible for updating `modelValue`, and a rejected
43
+ change request does not replace the internal fallback.
44
+
45
+ `resetValue(value)` updates uncontrolled state without calling `onChange`. Calling `resetValue()`
46
+ without an argument restores the initial default. A reset is a no-op while controlled. If a value
47
+ changes from controlled to uncontrolled, the latest defined controlled value becomes the internal
48
+ fallback synchronously. Releasing control does not call `onChange`.
49
+
50
+ The return value contains readonly `value` and `isControlled` computed refs, the captured
51
+ `initialValue`, and the `setValue()` and `resetValue()` commands. `undefined` is reserved as the
52
+ uncontrolled sentinel and should not be used as a controlled value.
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "ropav",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "packageManager": "pnpm@11.14.0",
6
+ "packageManager": "pnpm@11.15.1",
7
7
  "engines": {
8
8
  "node": "^20.19.0 || ^22.13.0 || >=24.0.0"
9
9
  },
@@ -17,21 +17,30 @@
17
17
  "module": "./dist/index.js",
18
18
  "types": "./dist/index.d.ts",
19
19
  "sideEffects": [
20
- "**/*.css"
20
+ "**/*.css",
21
+ "**/*.scss"
21
22
  ],
23
+ "publishConfig": {
24
+ "access": "public",
25
+ "registry": "https://registry.npmjs.org/"
26
+ },
22
27
  "exports": {
23
28
  ".": {
24
29
  "types": "./dist/index.d.ts",
25
30
  "import": "./dist/index.js"
26
31
  },
27
- "./alert": {
28
- "types": "./dist/components/alert/index.d.ts",
29
- "import": "./dist/components/alert/index.js"
32
+ "./composables": {
33
+ "types": "./dist/composables/index.d.ts",
34
+ "import": "./dist/composables/index.js"
30
35
  },
31
36
  "./accordion": {
32
37
  "types": "./dist/components/accordion/index.d.ts",
33
38
  "import": "./dist/components/accordion/index.js"
34
39
  },
40
+ "./alert": {
41
+ "types": "./dist/components/alert/index.d.ts",
42
+ "import": "./dist/components/alert/index.js"
43
+ },
35
44
  "./aspect-ratio": {
36
45
  "types": "./dist/components/aspect-ratio/index.d.ts",
37
46
  "import": "./dist/components/aspect-ratio/index.js"
@@ -48,14 +57,14 @@
48
57
  "types": "./dist/components/button/index.d.ts",
49
58
  "import": "./dist/components/button/index.js"
50
59
  },
51
- "./button-link": {
52
- "types": "./dist/components/button-link/index.d.ts",
53
- "import": "./dist/components/button-link/index.js"
54
- },
55
60
  "./button-group": {
56
61
  "types": "./dist/components/button-group/index.d.ts",
57
62
  "import": "./dist/components/button-group/index.js"
58
63
  },
64
+ "./button-link": {
65
+ "types": "./dist/components/button-link/index.d.ts",
66
+ "import": "./dist/components/button-link/index.js"
67
+ },
59
68
  "./card": {
60
69
  "types": "./dist/components/card/index.d.ts",
61
70
  "import": "./dist/components/card/index.js"
@@ -80,26 +89,26 @@
80
89
  "types": "./dist/components/color-swatch/index.d.ts",
81
90
  "import": "./dist/components/color-swatch/index.js"
82
91
  },
83
- "./dropdown-menu": {
84
- "types": "./dist/components/dropdown-menu/index.d.ts",
85
- "import": "./dist/components/dropdown-menu/index.js"
86
- },
87
92
  "./dialog": {
88
93
  "types": "./dist/components/dialog/index.d.ts",
89
94
  "import": "./dist/components/dialog/index.js"
90
95
  },
96
+ "./dropdown-menu": {
97
+ "types": "./dist/components/dropdown-menu/index.d.ts",
98
+ "import": "./dist/components/dropdown-menu/index.js"
99
+ },
91
100
  "./field": {
92
101
  "types": "./dist/components/field/index.d.ts",
93
102
  "import": "./dist/components/field/index.js"
94
103
  },
95
- "./focus-trap": {
96
- "types": "./dist/components/focus-trap/index.d.ts",
97
- "import": "./dist/components/focus-trap/index.js"
98
- },
99
104
  "./floating": {
100
105
  "types": "./dist/components/floating/index.d.ts",
101
106
  "import": "./dist/components/floating/index.js"
102
107
  },
108
+ "./focus-trap": {
109
+ "types": "./dist/components/focus-trap/index.d.ts",
110
+ "import": "./dist/components/focus-trap/index.js"
111
+ },
103
112
  "./icon-button": {
104
113
  "types": "./dist/components/icon-button/index.d.ts",
105
114
  "import": "./dist/components/icon-button/index.js"
@@ -183,34 +192,32 @@
183
192
  },
184
193
  "scripts": {
185
194
  "dev": "pnpm run storybook",
195
+ "public-api:sync": "node scripts/sync-public-api.mjs --write",
196
+ "public-api:check": "node scripts/sync-public-api.mjs --check",
186
197
  "tokens:build": "style-dictionary build --config scripts/tokens.config.mjs --silent",
187
198
  "tokens:check": "node scripts/check-tokens.mjs",
188
- "styles:manifest:bootstrap": "node scripts/bootstrap-public-styles-manifest.mjs",
189
199
  "typecheck": "vue-tsc -b tsconfig.app.json tsconfig.node.json tsconfig.test.json",
190
200
  "typecheck:storybook": "vue-tsc -p tsconfig.storybook.json --noEmit",
191
201
  "lint": "oxlint",
192
202
  "lint:fix": "oxlint --fix",
193
203
  "format": "oxfmt",
194
204
  "format:check": "oxfmt --check",
195
- "test": "vitest run --project=unit",
196
- "test:consumer-types": "pnpm run test:package",
205
+ "test": "vitest run --project=unit --project=tooling",
197
206
  "test:consumer-types:built": "tsc -p tests/fixtures/consumer-types/tsconfig.bundler.json && tsc -p tests/fixtures/consumer-types/tsconfig.nodenext.json",
198
- "test:exports": "pnpm run test:package",
199
207
  "test:exports:built": "node scripts/check-exports.mjs",
200
208
  "test:consumer-fixture:built": "node tests/fixtures/consumer-app/check.mjs && vue-tsc -p tests/fixtures/consumer-app/tsconfig.json --noEmit && vite build --config tests/fixtures/consumer-app/vite.config.ts && node tests/fixtures/consumer-app/assertions.mjs",
201
209
  "test:package": "pnpm run build && pnpm run test:exports:built && pnpm run test:consumer-types:built && pnpm run test:consumer-fixture:built",
202
- "test:watch": "vitest --project=unit",
203
- "test:typecheck": "vitest run --project=unit --typecheck",
204
- "test:storybook": "vitest run --project=storybook",
205
- "test:all": "pnpm run tokens:check && pnpm test && pnpm test:storybook",
206
- "build": "pnpm run tokens:build && pnpm run tokens:check && pnpm run typecheck && vite build",
207
- "prepublishOnly": "pnpm run test:package",
210
+ "test:watch": "vitest --project=unit --project=tooling",
211
+ "test:typecheck": "vitest run --project=unit --project=tooling --typecheck",
212
+ "test:storybook": "vitest run --project=storybook-light --project=storybook-dark",
213
+ "build": "pnpm run public-api:check && pnpm run tokens:build && pnpm run tokens:check && pnpm run typecheck && vite build",
214
+ "verify": "pnpm run lint && pnpm run format:check && pnpm run typecheck:storybook && pnpm run test && pnpm run test:storybook && pnpm run test:package",
215
+ "prepublishOnly": "pnpm run verify",
208
216
  "preview": "vite preview",
209
217
  "storybook": "pnpm run tokens:build && storybook dev -p 6006 --no-open",
210
218
  "build-storybook": "pnpm run tokens:build && pnpm run tokens:check && pnpm run typecheck:storybook && storybook build",
211
219
  "changelog": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -o CHANGELOG.md",
212
- "changelog:all": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -o CHANGELOG.md -r 0",
213
- "release": "pnpm run test:package && bumpp --git-check --all --commit \"chore(release): v%s\" --tag \"v%s\" --execute \"pnpm run changelog\""
220
+ "release": "pnpm run verify && bumpp --git-check --all --commit \"chore(release): v%s\" --tag \"v%s\" --execute \"pnpm run changelog\""
214
221
  },
215
222
  "peerDependencies": {
216
223
  "@vue/compiler-vapor": "3.6.0-rc.1",
@@ -230,11 +237,11 @@
230
237
  "focus-trap": "^8.2.2"
231
238
  },
232
239
  "devDependencies": {
233
- "@iconify-json/lucide": "^1.2.117",
234
- "@storybook/addon-a11y": "^10.5.2",
235
- "@storybook/addon-themes": "^10.5.2",
236
- "@storybook/addon-vitest": "^10.5.2",
237
- "@storybook/vue3-vite": "^10.5.2",
240
+ "@iconify-json/lucide": "^1.2.118",
241
+ "@storybook/addon-a11y": "^10.5.3",
242
+ "@storybook/addon-themes": "^10.5.3",
243
+ "@storybook/addon-vitest": "^10.5.3",
244
+ "@storybook/vue3-vite": "^10.5.3",
238
245
  "@types/node": "^26.1.1",
239
246
  "@vitejs/plugin-vue": "^6.0.8",
240
247
  "@vitest/browser-playwright": "^4.1.10",
@@ -245,11 +252,11 @@
245
252
  "conventional-changelog-conventionalcommits": "^10.2.1",
246
253
  "jsdom": "^29.1.1",
247
254
  "oxfmt": "^0.59.0",
248
- "oxlint": "^1.74.0",
255
+ "oxlint": "^1.75.0",
249
256
  "playwright": "^1.61.1",
250
257
  "sass-embedded": "^1.100.0",
251
- "storybook": "^10.5.2",
252
- "storybook-addon-pseudo-states": "^10.5.2",
258
+ "storybook": "^10.5.3",
259
+ "storybook-addon-pseudo-states": "^10.5.3",
253
260
  "style-dictionary": "5.5.0",
254
261
  "typescript": "~6.0.3",
255
262
  "unplugin-icons": "^23.0.1",
@@ -128,6 +128,10 @@ $rp-component-colors:
128
128
  flex-shrink: 0;
129
129
  transform-origin: center;
130
130
  animation: rp-spinner-spin 700ms linear infinite;
131
+
132
+ @media (prefers-reduced-motion: reduce) {
133
+ animation: none;
134
+ }
131
135
  }
132
136
 
133
137
  @mixin spinner-keyframes {
@@ -474,7 +474,7 @@
474
474
  --rp-color-red-contrast : var(--rp-color-white);
475
475
  --rp-color-red-light : var(--rp-color-red-1);
476
476
  --rp-color-red-light-hover : var(--rp-color-red-2);
477
- --rp-color-red-light-color : var(--rp-color-red-9);
477
+ --rp-color-red-light-color : color-mix(in srgb, var(--rp-color-red-9) 89%, var(--rp-color-black));
478
478
  --rp-color-red-outline : var(--rp-color-red-6);
479
479
  --rp-color-red-outline-hover : color-mix(in srgb, var(--rp-color-red-6) 5%, transparent);
480
480
  --rp-color-pink-filled : var(--rp-color-pink-7);
@@ -498,7 +498,7 @@
498
498
  --rp-color-violet-contrast : var(--rp-color-white);
499
499
  --rp-color-violet-light : var(--rp-color-violet-1);
500
500
  --rp-color-violet-light-hover : var(--rp-color-violet-2);
501
- --rp-color-violet-light-color : var(--rp-color-violet-9);
501
+ --rp-color-violet-light-color : color-mix(in srgb, var(--rp-color-violet-9) 96%, var(--rp-color-black));
502
502
  --rp-color-violet-outline : var(--rp-color-violet-6);
503
503
  --rp-color-violet-outline-hover : color-mix(in srgb, var(--rp-color-violet-6) 5%, transparent);
504
504
  --rp-color-indigo-filled : var(--rp-color-indigo-7);
@@ -506,7 +506,7 @@
506
506
  --rp-color-indigo-contrast : var(--rp-color-white);
507
507
  --rp-color-indigo-light : var(--rp-color-indigo-1);
508
508
  --rp-color-indigo-light-hover : var(--rp-color-indigo-2);
509
- --rp-color-indigo-light-color : var(--rp-color-indigo-9);
509
+ --rp-color-indigo-light-color : color-mix(in srgb, var(--rp-color-indigo-9) 93%, var(--rp-color-black));
510
510
  --rp-color-indigo-outline : var(--rp-color-indigo-6);
511
511
  --rp-color-indigo-outline-hover : color-mix(in srgb, var(--rp-color-indigo-6) 5%, transparent);
512
512
  --rp-color-blue-filled : var(--rp-color-blue-8);
@@ -514,7 +514,7 @@
514
514
  --rp-color-blue-contrast : var(--rp-color-white);
515
515
  --rp-color-blue-light : var(--rp-color-blue-1);
516
516
  --rp-color-blue-light-hover : var(--rp-color-blue-2);
517
- --rp-color-blue-light-color : var(--rp-color-blue-9);
517
+ --rp-color-blue-light-color : color-mix(in srgb, var(--rp-color-blue-9) 92%, var(--rp-color-black));
518
518
  --rp-color-blue-outline : var(--rp-color-blue-6);
519
519
  --rp-color-blue-outline-hover : color-mix(in srgb, var(--rp-color-blue-6) 5%, transparent);
520
520
  --rp-color-cyan-filled : var(--rp-color-cyan-9);
@@ -522,7 +522,7 @@
522
522
  --rp-color-cyan-contrast : var(--rp-color-white);
523
523
  --rp-color-cyan-light : var(--rp-color-cyan-1);
524
524
  --rp-color-cyan-light-hover : var(--rp-color-cyan-2);
525
- --rp-color-cyan-light-color : var(--rp-color-cyan-9);
525
+ --rp-color-cyan-light-color : color-mix(in srgb, var(--rp-color-cyan-9) 93%, var(--rp-color-black));
526
526
  --rp-color-cyan-outline : var(--rp-color-cyan-6);
527
527
  --rp-color-cyan-outline-hover : color-mix(in srgb, var(--rp-color-cyan-6) 5%, transparent);
528
528
  --rp-color-teal-filled : var(--rp-color-teal-9);
@@ -530,7 +530,7 @@
530
530
  --rp-color-teal-contrast : var(--rp-color-white);
531
531
  --rp-color-teal-light : var(--rp-color-teal-1);
532
532
  --rp-color-teal-light-hover : var(--rp-color-teal-2);
533
- --rp-color-teal-light-color : var(--rp-color-teal-9);
533
+ --rp-color-teal-light-color : color-mix(in srgb, var(--rp-color-teal-9) 89%, var(--rp-color-black));
534
534
  --rp-color-teal-outline : var(--rp-color-teal-6);
535
535
  --rp-color-teal-outline-hover : color-mix(in srgb, var(--rp-color-teal-6) 5%, transparent);
536
536
  --rp-color-green-filled : color-mix(in srgb, var(--rp-color-green-9) 98%, var(--rp-color-black));
@@ -538,7 +538,7 @@
538
538
  --rp-color-green-contrast : var(--rp-color-white);
539
539
  --rp-color-green-light : var(--rp-color-green-1);
540
540
  --rp-color-green-light-hover : var(--rp-color-green-2);
541
- --rp-color-green-light-color : var(--rp-color-green-9);
541
+ --rp-color-green-light-color : color-mix(in srgb, var(--rp-color-green-9) 84%, var(--rp-color-black));
542
542
  --rp-color-green-outline : var(--rp-color-green-6);
543
543
  --rp-color-green-outline-hover : color-mix(in srgb, var(--rp-color-green-6) 5%, transparent);
544
544
  --rp-color-lime-filled : var(--rp-color-lime-6);
@@ -546,7 +546,7 @@
546
546
  --rp-color-lime-contrast : var(--rp-color-lime-6-contrast);
547
547
  --rp-color-lime-light : var(--rp-color-lime-1);
548
548
  --rp-color-lime-light-hover : var(--rp-color-lime-2);
549
- --rp-color-lime-light-color : var(--rp-color-lime-9);
549
+ --rp-color-lime-light-color : color-mix(in srgb, var(--rp-color-lime-9) 79%, var(--rp-color-black));
550
550
  --rp-color-lime-outline : var(--rp-color-lime-6);
551
551
  --rp-color-lime-outline-hover : color-mix(in srgb, var(--rp-color-lime-6) 5%, transparent);
552
552
  --rp-color-yellow-filled : var(--rp-color-yellow-6);
@@ -554,7 +554,7 @@
554
554
  --rp-color-yellow-contrast : var(--rp-color-yellow-6-contrast);
555
555
  --rp-color-yellow-light : var(--rp-color-yellow-1);
556
556
  --rp-color-yellow-light-hover : var(--rp-color-yellow-2);
557
- --rp-color-yellow-light-color : var(--rp-color-yellow-9);
557
+ --rp-color-yellow-light-color : color-mix(in srgb, var(--rp-color-yellow-9) 72%, var(--rp-color-black));
558
558
  --rp-color-yellow-outline : var(--rp-color-yellow-6);
559
559
  --rp-color-yellow-outline-hover : color-mix(in srgb, var(--rp-color-yellow-6) 5%, transparent);
560
560
  --rp-color-orange-filled : color-mix(in srgb, var(--rp-color-orange-9) 97%, var(--rp-color-black));
@@ -562,14 +562,14 @@
562
562
  --rp-color-orange-contrast : var(--rp-color-white);
563
563
  --rp-color-orange-light : var(--rp-color-orange-1);
564
564
  --rp-color-orange-light-hover : var(--rp-color-orange-2);
565
- --rp-color-orange-light-color : var(--rp-color-orange-9);
565
+ --rp-color-orange-light-color : color-mix(in srgb, var(--rp-color-orange-9) 81%, var(--rp-color-black));
566
566
  --rp-color-orange-outline : var(--rp-color-orange-6);
567
567
  --rp-color-orange-outline-hover : color-mix(in srgb, var(--rp-color-orange-6) 5%, transparent);
568
568
  --rp-color-scheme : light;
569
569
  --rp-color-bright : var(--rp-color-black);
570
570
  --rp-color-text : var(--rp-color-black);
571
571
  --rp-color-body : var(--rp-color-white);
572
- --rp-color-placeholder : var(--rp-color-gray-5);
572
+ --rp-color-placeholder : var(--rp-color-gray-7);
573
573
  --rp-color-default : var(--rp-color-white);
574
574
  --rp-color-default-hover : var(--rp-color-gray-1);
575
575
  --rp-color-default-color : var(--rp-color-black);
@@ -800,7 +800,7 @@ html.dark,
800
800
  --rp-color-bright : var(--rp-color-white);
801
801
  --rp-color-text : var(--rp-color-dark-0);
802
802
  --rp-color-body : var(--rp-color-dark-7);
803
- --rp-color-placeholder : var(--rp-color-dark-3);
803
+ --rp-color-placeholder : var(--rp-color-dark-1);
804
804
  --rp-color-default : var(--rp-color-dark-6);
805
805
  --rp-color-default-hover : var(--rp-color-dark-5);
806
806
  --rp-color-default-color : var(--rp-color-white);
@@ -229,7 +229,7 @@ $z-index-dropdown: 100 !default;
229
229
  $z-index-tooltip : 1000 !default;
230
230
 
231
231
  // Opacity
232
- $opacity-disabled: 0.5 !default;
232
+ $opacity-disabled: 0.65 !default;
233
233
 
234
234
  // Shadows
235
235
  $shadow-sm : 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
@@ -1,167 +0,0 @@
1
- @layer ropav.components {
2
- .rp-button[data-v-dd8ef63e] {
3
- --_rp-button-bg: var(--rp-color-default);
4
- --_rp-button-bg-hover: var(--rp-color-default-hover);
5
- --_rp-button-bg-active: var(--rp-color-disabled);
6
- --_rp-button-border: var(--rp-color-default-border);
7
- --_rp-button-border-hover: var(--_rp-button-border);
8
- --_rp-button-border-active: var(--_rp-button-border-hover);
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);
12
- --_rp-button-height: var(--rp-size-control-md);
13
- --_rp-button-padding-x: 22px;
14
- --_rp-button-font-size: var(--rp-font-size-md);
15
- --_rp-button-radius: var(--rp-radius-sm);
16
- --_rp-button-shadow: var(--rp-shadow-sm);
17
- --_rp-button-shadow-hover: var(--rp-shadow-base);
18
- --_rp-button-shadow-active: var(--rp-shadow-sm);
19
- display: inline-flex;
20
- align-items: center;
21
- justify-content: center;
22
- position: relative;
23
- box-sizing: border-box;
24
- font-family: var(--rp-font-family);
25
- font-weight: var(--rp-font-weight-medium);
26
- line-height: 1;
27
- appearance: none;
28
- background-color: var(--_rp-button-bg);
29
- border: var(--rp-border-width-thin) solid var(--_rp-button-border);
30
- box-shadow: var(--_rp-button-shadow);
31
- color: var(--_rp-button-fg);
32
- cursor: pointer;
33
- text-decoration: none;
34
- transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), transform var(--rp-transition-fast);
35
- white-space: nowrap;
36
- user-select: none;
37
- height: var(--_rp-button-height);
38
- padding: 0 var(--_rp-button-padding-x);
39
- font-size: var(--_rp-button-font-size);
40
- border-radius: var(--_rp-button-radius);
41
- }
42
- .rp-button[data-v-dd8ef63e]:hover:not(:disabled):not(.rp-button--disabled) {
43
- background-color: var(--_rp-button-bg-hover);
44
- border-color: var(--_rp-button-border-hover);
45
- box-shadow: var(--_rp-button-shadow-hover);
46
- color: var(--_rp-button-fg-hover);
47
- }
48
- .rp-button[data-v-dd8ef63e]:active:not(:disabled):not(.rp-button--disabled) {
49
- background-color: var(--_rp-button-bg-active);
50
- border-color: var(--_rp-button-border-active);
51
- box-shadow: var(--_rp-button-shadow-active);
52
- color: var(--_rp-button-fg-active);
53
- transform: translateY(1px);
54
- }
55
- .rp-button--size-xs[data-v-dd8ef63e] {
56
- --_rp-button-height: var(--rp-size-control-xs);
57
- --_rp-button-padding-x: 14px;
58
- --_rp-button-font-size: var(--rp-font-size-xs);
59
- }
60
- .rp-button--size-sm[data-v-dd8ef63e] {
61
- --_rp-button-height: var(--rp-size-control-sm);
62
- --_rp-button-padding-x: 18px;
63
- --_rp-button-font-size: var(--rp-font-size-sm);
64
- }
65
- .rp-button--size-md[data-v-dd8ef63e] {
66
- --_rp-button-height: var(--rp-size-control-md);
67
- --_rp-button-padding-x: 22px;
68
- --_rp-button-font-size: var(--rp-font-size-md);
69
- }
70
- .rp-button--size-lg[data-v-dd8ef63e] {
71
- --_rp-button-height: var(--rp-size-control-lg);
72
- --_rp-button-padding-x: 26px;
73
- --_rp-button-font-size: var(--rp-font-size-lg);
74
- }
75
- .rp-button--size-xl[data-v-dd8ef63e] {
76
- --_rp-button-height: var(--rp-size-control-xl);
77
- --_rp-button-padding-x: 32px;
78
- --_rp-button-font-size: var(--rp-font-size-xl);
79
- }
80
- .rp-button--radius-xs[data-v-dd8ef63e] {
81
- --_rp-button-radius: var(--rp-radius-xs);
82
- }
83
- .rp-button--radius-sm[data-v-dd8ef63e] {
84
- --_rp-button-radius: var(--rp-radius-sm);
85
- }
86
- .rp-button--radius-md[data-v-dd8ef63e] {
87
- --_rp-button-radius: var(--rp-radius-md);
88
- }
89
- .rp-button--radius-lg[data-v-dd8ef63e] {
90
- --_rp-button-radius: var(--rp-radius-lg);
91
- }
92
- .rp-button--radius-xl[data-v-dd8ef63e] {
93
- --_rp-button-radius: var(--rp-radius-xl);
94
- }
95
- .rp-button--subtle[data-v-dd8ef63e] {
96
- --_rp-button-shadow: none;
97
- --_rp-button-shadow-hover: none;
98
- --_rp-button-shadow-active: none;
99
- }
100
- .rp-button--surface[data-v-dd8ef63e] {
101
- --_rp-button-shadow: none;
102
- --_rp-button-shadow-hover: none;
103
- --_rp-button-shadow-active: none;
104
- }
105
- .rp-button--outline[data-v-dd8ef63e] {
106
- --_rp-button-shadow: none;
107
- --_rp-button-shadow-hover: none;
108
- --_rp-button-shadow-active: none;
109
- }
110
- .rp-button--ghost[data-v-dd8ef63e] {
111
- --_rp-button-shadow: none;
112
- --_rp-button-shadow-hover: none;
113
- --_rp-button-shadow-active: none;
114
- }
115
- .rp-button--plain[data-v-dd8ef63e] {
116
- --_rp-button-shadow: none;
117
- --_rp-button-shadow-hover: none;
118
- --_rp-button-shadow-active: none;
119
- }
120
- .rp-button[data-v-dd8ef63e]:disabled, .rp-button--disabled[data-v-dd8ef63e] {
121
- opacity: var(--rp-opacity-disabled);
122
- cursor: not-allowed;
123
- box-shadow: none;
124
- transform: none;
125
- }
126
- .rp-button[data-v-dd8ef63e]:focus-visible {
127
- outline: none;
128
- border-color: var(--rp-color-control-border-focus);
129
- box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
130
- }
131
- .rp-button--loading .rp-button__content[data-v-dd8ef63e] {
132
- opacity: 0;
133
- }
134
- .rp-button__content[data-v-dd8ef63e] {
135
- display: inline-flex;
136
- align-items: center;
137
- justify-content: center;
138
- gap: var(--rp-spacing-2);
139
- }
140
- .rp-button__left[data-v-dd8ef63e], .rp-button__right[data-v-dd8ef63e] {
141
- display: inline-flex;
142
- align-items: center;
143
- flex-shrink: 0;
144
- }
145
- .rp-button__loading[data-v-dd8ef63e] {
146
- display: inline-flex;
147
- align-items: center;
148
- justify-content: center;
149
- position: absolute;
150
- top: 50%;
151
- left: 50%;
152
- translate: -50% -50%;
153
- }
154
- .rp-button__spinner[data-v-dd8ef63e] {
155
- display: block;
156
- width: 1em;
157
- height: 1em;
158
- flex-shrink: 0;
159
- transform-origin: center;
160
- animation: rp-spinner-spin-dd8ef63e 700ms linear infinite;
161
- }
162
- @keyframes rp-spinner-spin-dd8ef63e {
163
- to {
164
- transform: rotate(360deg);
165
- }
166
- }
167
- }