ropav 0.0.2 → 0.0.3

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 (74) hide show
  1. package/README.md +32 -3
  2. package/dist/base.css +125 -88
  3. package/dist/button.css +259 -32
  4. package/dist/button.js +51 -19
  5. package/dist/button.js.map +1 -1
  6. package/dist/checkbox.css +125 -21
  7. package/dist/checkbox.js +77 -42
  8. package/dist/checkbox.js.map +1 -1
  9. package/dist/components/button/button.d.ts +2 -2
  10. package/dist/components/button/index.d.ts +1 -1
  11. package/dist/components/button/types.d.ts +8 -1
  12. package/dist/components/checkbox/index.d.ts +1 -1
  13. package/dist/components/checkbox/types.d.ts +8 -0
  14. package/dist/components/input/index.d.ts +1 -1
  15. package/dist/components/input/input.d.ts +5 -1
  16. package/dist/components/input/types.d.ts +5 -0
  17. package/dist/components/radio/index.d.ts +1 -1
  18. package/dist/components/radio/types.d.ts +12 -0
  19. package/dist/components/select/types.d.ts +3 -0
  20. package/dist/components/select/useSelect.d.ts +2 -0
  21. package/dist/components/switch/index.d.ts +1 -1
  22. package/dist/components/switch/types.d.ts +4 -0
  23. package/dist/components/textarea/index.d.ts +1 -1
  24. package/dist/components/textarea/types.d.ts +5 -0
  25. package/dist/components/textarea/useTextarea.d.ts +1 -0
  26. package/dist/index.d.ts +0 -2
  27. package/dist/index.js +2 -4
  28. package/dist/input.css +87 -21
  29. package/dist/input.js +66 -23
  30. package/dist/input.js.map +1 -1
  31. package/dist/radio.css +82 -18
  32. package/dist/radio.js +35 -8
  33. package/dist/radio.js.map +1 -1
  34. package/dist/select.css +104 -39
  35. package/dist/select.js +149 -87
  36. package/dist/select.js.map +1 -1
  37. package/dist/switch.css +75 -20
  38. package/dist/switch.js +8 -4
  39. package/dist/switch.js.map +1 -1
  40. package/dist/textarea.css +80 -20
  41. package/dist/textarea.js +33 -5
  42. package/dist/textarea.js.map +1 -1
  43. package/dist/useControlState.js +4 -0
  44. package/dist/useControlState.js.map +1 -1
  45. package/package.json +9 -9
  46. package/src/styles/_mixins.scss +18 -8
  47. package/src/styles/_tokens.scss +130 -99
  48. package/src/styles/_variables.scss +28 -28
  49. package/dist/components/_internal/icons/CheckIcon.d.ts +0 -18
  50. package/dist/components/_internal/icons/ChevronDownIcon.d.ts +0 -18
  51. package/dist/components/_internal/icons/MinusIcon.d.ts +0 -18
  52. package/dist/components/_internal/icons/index.d.ts +0 -3
  53. package/dist/components/_internal/optionList.d.ts +0 -9
  54. package/dist/components/tabs/index.d.ts +0 -5
  55. package/dist/components/tabs/index.js +0 -2
  56. package/dist/components/tabs/tab-panel.d.ts +0 -21
  57. package/dist/components/tabs/tabs-list.d.ts +0 -20
  58. package/dist/components/tabs/tabs-trigger.d.ts +0 -21
  59. package/dist/components/tabs/tabs.d.ts +0 -23
  60. package/dist/components/tabs/types.d.ts +0 -18
  61. package/dist/components/tabs/useTabs.d.ts +0 -19
  62. package/dist/components/tooltip/index.d.ts +0 -2
  63. package/dist/components/tooltip/index.js +0 -2
  64. package/dist/components/tooltip/tooltip.d.ts +0 -23
  65. package/dist/components/tooltip/types.d.ts +0 -5
  66. package/dist/components/tooltip/useTooltip.d.ts +0 -8
  67. package/dist/tabs.css +0 -45
  68. package/dist/tabs.js +0 -205
  69. package/dist/tabs.js.map +0 -1
  70. package/dist/tooltip.css +0 -78
  71. package/dist/tooltip.js +0 -112
  72. package/dist/tooltip.js.map +0 -1
  73. package/dist/useRequiredInject.js +0 -11
  74. package/dist/useRequiredInject.js.map +0 -1
package/README.md CHANGED
@@ -11,21 +11,50 @@ pnpm add ropav vue
11
11
  ## Usage
12
12
 
13
13
  ```ts
14
- import 'ropav/base.css'
15
- import { Button, Input } from 'ropav'
14
+ import 'ropav/base.css';
15
+ import { Button, Input } from 'ropav';
16
16
  ```
17
17
 
18
18
  Deep imports are available for individual components:
19
19
 
20
20
  ```ts
21
- import { Button } from 'ropav/button'
21
+ import { Button } from 'ropav/button';
22
22
  ```
23
23
 
24
+ ## Theming and tokens
25
+
26
+ `ropav/base.css` exposes the public runtime token API as CSS custom properties. These
27
+ tokens are intended for stable theme axes that consumers may override without
28
+ rebuilding the library:
29
+
30
+ - semantic colors, surfaces, text, borders, focus rings, overlays, `on-*`, and
31
+ `*-fg`
32
+ - typography: `--rp-font-family`, `--rp-font-size-*`, `--rp-font-weight-*`, and
33
+ `--rp-line-height-*`
34
+ - density and control primitives: `--rp-spacing-*`, `--rp-size-control-*`,
35
+ `--rp-border-width-*`, and `--rp-opacity-disabled`
36
+ - radius, shadows, and transitions
37
+
38
+ Sass tokens exported through `ropav/scss/*` are implementation/build-time tokens.
39
+ They may include raw palette values, z-index values, component layout constants,
40
+ and mixin inputs that are not part of the runtime CSS variable contract.
41
+
42
+ Component-local custom properties that start with `--_` are private implementation
43
+ details. They are not versioned API and may change between releases.
44
+
45
+ Migration note: Ropav only supports the allowlisted runtime tokens above as public
46
+ CSS variables. Raw palette variables such as `--rp-color-gray-*`,
47
+ `--rp-color-white`, `--rp-color-black`, z-index variables, component layout
48
+ variables, and component-state variables such as `--rp-button-solid-hover-bg` are
49
+ not public runtime tokens.
50
+
24
51
  ## Development
25
52
 
26
53
  ```bash
27
54
  pnpm install
28
55
  pnpm dev
56
+ pnpm lint
57
+ pnpm format:check
29
58
  pnpm test
30
59
  pnpm build
31
60
  ```
package/dist/base.css CHANGED
@@ -1,61 +1,82 @@
1
1
  :root {
2
2
  --rp-font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
3
- --rp-color-primary: #2563eb;
4
- --rp-color-secondary: #4f46e5;
5
- --rp-color-success: #15803d;
6
- --rp-color-warning: #b45309;
7
- --rp-color-danger: #dc2626;
8
- --rp-color-info: #0e7490;
9
- --rp-color-white: #ffffff;
10
- --rp-color-black: #09090b;
11
- --rp-color-gray-50: #fafafa;
12
- --rp-color-gray-100: #f4f4f5;
13
- --rp-color-gray-200: #e4e4e7;
14
- --rp-color-gray-300: #d4d4d8;
15
- --rp-color-gray-400: #a1a1aa;
16
- --rp-color-gray-500: #71717a;
17
- --rp-color-gray-600: #52525b;
18
- --rp-color-gray-700: #3f3f46;
19
- --rp-color-gray-800: #27272a;
20
- --rp-color-gray-900: #18181b;
21
- --rp-color-text: #18181b;
22
- --rp-color-text-secondary: #52525b;
23
- --rp-color-text-disabled: #71717a;
24
- --rp-color-text-inverted: var(--rp-color-white);
3
+ --rp-color-primary: #0d74ce;
4
+ --rp-color-secondary: #6550b9;
5
+ --rp-color-success: #218358;
6
+ --rp-color-warning: #cc4e00;
7
+ --rp-color-danger: #ce2c31;
8
+ --rp-color-info: #107d98;
9
+ --rp-color-text: #202020;
10
+ --rp-color-text-secondary: #646464;
11
+ --rp-color-text-disabled: #8d8d8d;
12
+ --rp-color-text-inverted: #ffffff;
25
13
  --rp-color-background: #ffffff;
26
- --rp-color-surface: var(--rp-color-white);
27
- --rp-color-surface-raised: var(--rp-color-white);
28
- --rp-color-surface-muted: var(--rp-color-gray-50);
29
- --rp-color-surface-hover: var(--rp-color-gray-100);
30
- --rp-color-surface-inverted: var(--rp-color-gray-900);
31
- --rp-color-overlay: rgba(3, 7, 18, 0.55);
32
- --rp-color-border: #e4e4e7;
33
- --rp-color-border-hover: #a1a1aa;
14
+ --rp-color-surface: #ffffff;
15
+ --rp-color-surface-raised: #ffffff;
16
+ --rp-color-surface-muted: #f9f9f9;
17
+ --rp-color-surface-hover: #f0f0f0;
18
+ --rp-color-button-default-bg: #f9f9f9;
19
+ --rp-color-button-default-bg-hover: #f0f0f0;
20
+ --rp-color-button-default-bg-active: #e8e8e8;
21
+ --rp-color-surface-inverted: #202020;
22
+ --rp-color-overlay: rgba(17, 17, 17, 0.55);
23
+ --rp-color-border: #d9d9d9;
24
+ --rp-color-border-hover: #bbbbbb;
34
25
  --rp-color-focus-ring: color-mix(in srgb, var(--rp-color-primary) 32%, transparent);
35
- --rp-color-control-bg: var(--rp-color-surface);
36
- --rp-color-control-readonly-bg: var(--rp-color-surface-muted);
37
- --rp-color-control-fg: var(--rp-color-text);
38
- --rp-color-control-placeholder: var(--rp-color-text-secondary);
39
- --rp-color-control-icon: var(--rp-color-text-secondary);
40
- --rp-color-control-border: var(--rp-color-border);
41
- --rp-color-control-border-hover: var(--rp-color-border-hover);
42
- --rp-color-control-border-focus: var(--rp-color-primary);
43
- --rp-color-control-track-bg: var(--rp-color-gray-300);
44
- --rp-color-control-thumb-bg: var(--rp-color-white);
45
- --rp-color-control-selected-bg: var(--rp-color-primary);
46
- --rp-color-control-selected-fg: var(--rp-color-on-primary);
47
26
  --rp-color-on-primary: #ffffff;
48
27
  --rp-color-on-secondary: #ffffff;
49
28
  --rp-color-on-success: #ffffff;
50
29
  --rp-color-on-warning: #ffffff;
51
30
  --rp-color-on-danger: #ffffff;
52
31
  --rp-color-on-info: #ffffff;
53
- --rp-color-primary-fg: var(--rp-color-primary);
54
- --rp-color-secondary-fg: var(--rp-color-secondary);
55
- --rp-color-success-fg: var(--rp-color-success);
56
- --rp-color-warning-fg: var(--rp-color-warning);
57
- --rp-color-danger-fg: var(--rp-color-danger);
58
- --rp-color-info-fg: var(--rp-color-info);
32
+ --rp-color-primary-hover: color-mix(in srgb, var(--rp-color-primary) 90%, #111111);
33
+ --rp-color-primary-active: color-mix(in srgb, var(--rp-color-primary) 80%, #111111);
34
+ --rp-color-primary-subtle-bg: #e6f4fe;
35
+ --rp-color-primary-subtle-bg-hover: #d5efff;
36
+ --rp-color-primary-subtle-bg-active: #c2e5ff;
37
+ --rp-color-primary-border: #8ec8f6;
38
+ --rp-color-primary-border-hover: #5eb1ef;
39
+ --rp-color-primary-fg: #113264;
40
+ --rp-color-secondary-hover: color-mix(in srgb, var(--rp-color-secondary) 90%, #111111);
41
+ --rp-color-secondary-active: color-mix(in srgb, var(--rp-color-secondary) 80%, #111111);
42
+ --rp-color-secondary-subtle-bg: #f4f0fe;
43
+ --rp-color-secondary-subtle-bg-hover: #ebe4ff;
44
+ --rp-color-secondary-subtle-bg-active: #e1d9ff;
45
+ --rp-color-secondary-border: #c2b5f5;
46
+ --rp-color-secondary-border-hover: #aa99ec;
47
+ --rp-color-secondary-fg: #2f265f;
48
+ --rp-color-success-hover: color-mix(in srgb, var(--rp-color-success) 90%, #111111);
49
+ --rp-color-success-active: color-mix(in srgb, var(--rp-color-success) 80%, #111111);
50
+ --rp-color-success-subtle-bg: #e6f6eb;
51
+ --rp-color-success-subtle-bg-hover: #d6f1df;
52
+ --rp-color-success-subtle-bg-active: #c4e8d1;
53
+ --rp-color-success-border: #8eceaa;
54
+ --rp-color-success-border-hover: #5bb98b;
55
+ --rp-color-success-fg: #193b2d;
56
+ --rp-color-warning-hover: color-mix(in srgb, var(--rp-color-warning) 90%, #111111);
57
+ --rp-color-warning-active: color-mix(in srgb, var(--rp-color-warning) 80%, #111111);
58
+ --rp-color-warning-subtle-bg: #ffefd6;
59
+ --rp-color-warning-subtle-bg-hover: #ffdfb5;
60
+ --rp-color-warning-subtle-bg-active: #ffd19a;
61
+ --rp-color-warning-border: #f5ae73;
62
+ --rp-color-warning-border-hover: #ec9455;
63
+ --rp-color-warning-fg: #582d1d;
64
+ --rp-color-danger-hover: color-mix(in srgb, var(--rp-color-danger) 90%, #111111);
65
+ --rp-color-danger-active: color-mix(in srgb, var(--rp-color-danger) 80%, #111111);
66
+ --rp-color-danger-subtle-bg: #feebec;
67
+ --rp-color-danger-subtle-bg-hover: #ffdbdc;
68
+ --rp-color-danger-subtle-bg-active: #ffcdce;
69
+ --rp-color-danger-border: #f4a9aa;
70
+ --rp-color-danger-border-hover: #eb8e90;
71
+ --rp-color-danger-fg: #641723;
72
+ --rp-color-info-hover: color-mix(in srgb, var(--rp-color-info) 90%, #111111);
73
+ --rp-color-info-active: color-mix(in srgb, var(--rp-color-info) 80%, #111111);
74
+ --rp-color-info-subtle-bg: #def7f9;
75
+ --rp-color-info-subtle-bg-hover: #caf1f6;
76
+ --rp-color-info-subtle-bg-active: #b5e9f0;
77
+ --rp-color-info-border: #7dcedc;
78
+ --rp-color-info-border-hover: #3db9cf;
79
+ --rp-color-info-fg: #0d3c48;
59
80
  --rp-font-size-xs: 0.75rem;
60
81
  --rp-font-size-sm: 0.875rem;
61
82
  --rp-font-size-base: 1rem;
@@ -83,23 +104,16 @@
83
104
  --rp-spacing-10: 2.5rem;
84
105
  --rp-spacing-12: 3rem;
85
106
  --rp-radius-none: 0;
86
- --rp-radius-sm: 0.125rem;
87
- --rp-radius-base: 0.25rem;
88
- --rp-radius-md: 0.375rem;
89
- --rp-radius-lg: 0.5rem;
90
- --rp-radius-xl: 0.75rem;
91
- --rp-radius-2xl: 1rem;
107
+ --rp-radius-sm: 0.375rem;
108
+ --rp-radius-md: 0.75rem;
109
+ --rp-radius-lg: 1rem;
110
+ --rp-radius-xl: 1.5rem;
92
111
  --rp-radius-full: 9999px;
93
112
  --rp-border-width-thin: 1px;
94
113
  --rp-border-width-medium: 2px;
95
114
  --rp-size-control-sm: 32px;
96
115
  --rp-size-control-md: 40px;
97
116
  --rp-size-control-lg: 48px;
98
- --rp-component-menu-min-width: 180px;
99
- --rp-component-menu-max-height: 240px;
100
- --rp-z-index-dropdown: 100;
101
- --rp-z-index-tooltip: 1000;
102
- --rp-opacity-disabled: 0.5;
103
117
  --rp-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
104
118
  --rp-shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
105
119
  --rp-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
@@ -110,36 +124,59 @@
110
124
  }
111
125
 
112
126
  html.dark {
113
- --rp-color-text: var(--rp-color-gray-50);
114
- --rp-color-text-secondary: var(--rp-color-gray-400);
115
- --rp-color-text-disabled: var(--rp-color-gray-600);
116
- --rp-color-text-inverted: var(--rp-color-gray-900);
117
- --rp-color-background: var(--rp-color-gray-900);
118
- --rp-color-surface: var(--rp-color-gray-900);
119
- --rp-color-surface-raised: var(--rp-color-gray-800);
120
- --rp-color-surface-muted: var(--rp-color-gray-800);
121
- --rp-color-surface-hover: var(--rp-color-gray-700);
122
- --rp-color-surface-inverted: var(--rp-color-gray-100);
123
- --rp-color-overlay: rgba(3, 7, 18, 0.75);
124
- --rp-color-border: var(--rp-color-gray-700);
125
- --rp-color-border-hover: var(--rp-color-gray-600);
127
+ --rp-color-text: #eeeeee;
128
+ --rp-color-text-secondary: #b4b4b4;
129
+ --rp-color-text-disabled: #6e6e6e;
130
+ --rp-color-text-inverted: #202020;
131
+ --rp-color-background: #111111;
132
+ --rp-color-surface: #111111;
133
+ --rp-color-surface-raised: #191919;
134
+ --rp-color-surface-muted: #191919;
135
+ --rp-color-surface-hover: #222222;
136
+ --rp-color-button-default-bg: #191919;
137
+ --rp-color-button-default-bg-hover: #222222;
138
+ --rp-color-button-default-bg-active: #2a2a2a;
139
+ --rp-color-surface-inverted: #f9f9f9;
140
+ --rp-color-overlay: rgba(17, 17, 17, 0.75);
141
+ --rp-color-border: #3a3a3a;
142
+ --rp-color-border-hover: #606060;
126
143
  --rp-color-focus-ring: color-mix(in srgb, var(--rp-color-primary) 45%, transparent);
127
- --rp-color-control-bg: var(--rp-color-gray-900);
128
- --rp-color-control-readonly-bg: var(--rp-color-gray-800);
129
- --rp-color-control-fg: var(--rp-color-gray-50);
130
- --rp-color-control-placeholder: var(--rp-color-gray-500);
131
- --rp-color-control-icon: var(--rp-color-gray-400);
132
- --rp-color-control-border: var(--rp-color-gray-700);
133
- --rp-color-control-border-hover: var(--rp-color-gray-600);
134
- --rp-color-control-border-focus: var(--rp-color-primary);
135
- --rp-color-control-track-bg: var(--rp-color-gray-700);
136
- --rp-color-control-thumb-bg: var(--rp-color-gray-50);
137
- --rp-color-primary-fg: color-mix(in srgb, var(--rp-color-primary) 65%, var(--rp-color-white));
138
- --rp-color-secondary-fg: color-mix(in srgb, var(--rp-color-secondary) 65%, var(--rp-color-white));
139
- --rp-color-success-fg: color-mix(in srgb, var(--rp-color-success) 65%, var(--rp-color-white));
140
- --rp-color-warning-fg: color-mix(in srgb, var(--rp-color-warning) 65%, var(--rp-color-white));
141
- --rp-color-danger-fg: color-mix(in srgb, var(--rp-color-danger) 65%, var(--rp-color-white));
142
- --rp-color-info-fg: color-mix(in srgb, var(--rp-color-info) 65%, var(--rp-color-white));
144
+ --rp-color-primary-subtle-bg: #0d2847;
145
+ --rp-color-primary-subtle-bg-hover: #003362;
146
+ --rp-color-primary-subtle-bg-active: #004074;
147
+ --rp-color-primary-border: #205d9e;
148
+ --rp-color-primary-border-hover: #2870bd;
149
+ --rp-color-primary-fg: #70b8ff;
150
+ --rp-color-secondary-subtle-bg: #291f43;
151
+ --rp-color-secondary-subtle-bg-hover: #33255b;
152
+ --rp-color-secondary-subtle-bg-active: #3c2e69;
153
+ --rp-color-secondary-border: #56468b;
154
+ --rp-color-secondary-border-hover: #6958ad;
155
+ --rp-color-secondary-fg: #baa7ff;
156
+ --rp-color-success-subtle-bg: #132d21;
157
+ --rp-color-success-subtle-bg-hover: #113b29;
158
+ --rp-color-success-subtle-bg-active: #174933;
159
+ --rp-color-success-border: #28684a;
160
+ --rp-color-success-border-hover: #2f7c57;
161
+ --rp-color-success-fg: #3dd68c;
162
+ --rp-color-warning-subtle-bg: #331e0b;
163
+ --rp-color-warning-subtle-bg-hover: #462100;
164
+ --rp-color-warning-subtle-bg-active: #562800;
165
+ --rp-color-warning-border: #7e451d;
166
+ --rp-color-warning-border-hover: #a35829;
167
+ --rp-color-warning-fg: #ffa057;
168
+ --rp-color-danger-subtle-bg: #3b1219;
169
+ --rp-color-danger-subtle-bg-hover: #500f1c;
170
+ --rp-color-danger-subtle-bg-active: #611623;
171
+ --rp-color-danger-border: #8c333a;
172
+ --rp-color-danger-border-hover: #b54548;
173
+ --rp-color-danger-fg: #ff9592;
174
+ --rp-color-info-subtle-bg: #082c36;
175
+ --rp-color-info-subtle-bg-hover: #003848;
176
+ --rp-color-info-subtle-bg-active: #004558;
177
+ --rp-color-info-border: #12677e;
178
+ --rp-color-info-border-hover: #11809c;
179
+ --rp-color-info-fg: #4ccce6;
143
180
  --rp-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
144
181
  --rp-shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.4), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
145
182
  --rp-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.3);
package/dist/button.css CHANGED
@@ -1,65 +1,292 @@
1
- .rp-button[data-v-c2d151de] {
1
+ .rp-button[data-v-b8d57358] {
2
+ --_rp-button-accent: var(--rp-color-primary);
3
+ --_rp-button-accent-hover: var(--rp-color-primary-hover);
4
+ --_rp-button-accent-active: var(--rp-color-primary-active);
5
+ --_rp-button-accent-on: var(--rp-color-on-primary);
6
+ --_rp-button-accent-subtle-bg: var(--rp-color-primary-subtle-bg);
7
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-primary-subtle-bg-hover);
8
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-primary-subtle-bg-active);
9
+ --_rp-button-accent-border: var(--rp-color-primary-border);
10
+ --_rp-button-accent-border-hover: var(--rp-color-primary-border-hover);
11
+ --_rp-button-accent-fg: var(--rp-color-primary-fg);
12
+ --_rp-button-bg: var(--rp-color-button-default-bg);
13
+ --_rp-button-bg-hover: var(--rp-color-button-default-bg-hover);
14
+ --_rp-button-bg-active: var(--rp-color-button-default-bg-active);
15
+ --_rp-button-border: var(--rp-color-border);
16
+ --_rp-button-border-hover: var(--rp-color-border-hover);
17
+ --_rp-button-border-active: var(--_rp-button-border-hover);
18
+ --_rp-button-fg: var(--rp-color-text);
19
+ --_rp-button-height: var(--rp-size-control-md);
20
+ --_rp-button-padding-x: var(--rp-spacing-4);
21
+ --_rp-button-font-size: var(--rp-font-size-base);
22
+ --_rp-button-radius: var(--rp-radius-sm);
23
+ --_rp-button-shadow: var(--rp-shadow-sm);
24
+ --_rp-button-shadow-hover: var(--rp-shadow-base);
25
+ --_rp-button-shadow-active: var(--rp-shadow-sm);
2
26
  display: inline-flex;
3
27
  align-items: center;
4
28
  justify-content: center;
29
+ box-sizing: border-box;
5
30
  gap: var(--rp-spacing-2);
6
31
  font-family: var(--rp-font-family);
7
- font-weight: var(--rp-font-weight-normal);
32
+ font-weight: var(--rp-font-weight-medium);
8
33
  line-height: var(--rp-line-height-none);
9
- border: var(--rp-border-width-thin) solid transparent;
34
+ appearance: none;
35
+ background-color: var(--_rp-button-bg);
36
+ border: var(--rp-border-width-thin) solid var(--_rp-button-border);
37
+ box-shadow: var(--_rp-button-shadow);
38
+ color: var(--_rp-button-fg);
10
39
  cursor: pointer;
11
- transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast), border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
40
+ 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);
12
41
  white-space: nowrap;
13
42
  user-select: none;
14
- height: var(--rp-size-control-md);
15
- padding: 0 var(--rp-spacing-4);
16
- font-size: var(--rp-font-size-base);
17
- border-radius: var(--rp-radius-lg);
43
+ height: var(--_rp-button-height);
44
+ padding: 0 var(--_rp-button-padding-x);
45
+ font-size: var(--_rp-button-font-size);
46
+ border-radius: var(--_rp-button-radius);
18
47
  }
19
- .rp-button--solid[data-v-c2d151de] {
20
- background-color: var(--rp-color-primary);
21
- color: var(--rp-color-on-primary);
48
+ .rp-button[data-v-b8d57358]:hover:not(:disabled) {
49
+ background-color: var(--_rp-button-bg-hover);
50
+ border-color: var(--_rp-button-border-hover);
51
+ box-shadow: var(--_rp-button-shadow-hover);
22
52
  }
23
- .rp-button--solid[data-v-c2d151de]:hover:not(:disabled) {
24
- background-color: color-mix(in srgb, var(--rp-color-primary) 90%, var(--rp-color-black));
53
+ .rp-button[data-v-b8d57358]:active:not(:disabled) {
54
+ background-color: var(--_rp-button-bg-active);
55
+ border-color: var(--_rp-button-border-active);
56
+ box-shadow: var(--_rp-button-shadow-active);
57
+ transform: translateY(1px);
25
58
  }
26
- .rp-button--solid[data-v-c2d151de]:active:not(:disabled) {
27
- background-color: color-mix(in srgb, var(--rp-color-primary) 80%, var(--rp-color-black));
59
+ .rp-button--color-primary[data-v-b8d57358] {
60
+ --_rp-button-accent: var(--rp-color-primary);
61
+ --_rp-button-accent-hover: var(--rp-color-primary-hover);
62
+ --_rp-button-accent-active: var(--rp-color-primary-active);
63
+ --_rp-button-accent-on: var(--rp-color-on-primary);
64
+ --_rp-button-accent-subtle-bg: var(--rp-color-primary-subtle-bg);
65
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-primary-subtle-bg-hover);
66
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-primary-subtle-bg-active);
67
+ --_rp-button-accent-border: var(--rp-color-primary-border);
68
+ --_rp-button-accent-border-hover: var(--rp-color-primary-border-hover);
69
+ --_rp-button-accent-fg: var(--rp-color-primary-fg);
70
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
71
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
72
+ --_rp-button-border: var(--_rp-button-accent-border);
73
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
74
+ --_rp-button-fg: var(--_rp-button-accent-fg);
28
75
  }
29
- .rp-button--ghost[data-v-c2d151de] {
30
- background-color: transparent;
31
- color: var(--rp-color-primary-fg);
76
+ .rp-button--color-secondary[data-v-b8d57358] {
77
+ --_rp-button-accent: var(--rp-color-secondary);
78
+ --_rp-button-accent-hover: var(--rp-color-secondary-hover);
79
+ --_rp-button-accent-active: var(--rp-color-secondary-active);
80
+ --_rp-button-accent-on: var(--rp-color-on-secondary);
81
+ --_rp-button-accent-subtle-bg: var(--rp-color-secondary-subtle-bg);
82
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-secondary-subtle-bg-hover);
83
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-secondary-subtle-bg-active);
84
+ --_rp-button-accent-border: var(--rp-color-secondary-border);
85
+ --_rp-button-accent-border-hover: var(--rp-color-secondary-border-hover);
86
+ --_rp-button-accent-fg: var(--rp-color-secondary-fg);
87
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
88
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
89
+ --_rp-button-border: var(--_rp-button-accent-border);
90
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
91
+ --_rp-button-fg: var(--_rp-button-accent-fg);
32
92
  }
33
- .rp-button--ghost[data-v-c2d151de]:hover:not(:disabled) {
34
- background-color: color-mix(in srgb, var(--rp-color-primary) 14%, transparent);
93
+ .rp-button--color-success[data-v-b8d57358] {
94
+ --_rp-button-accent: var(--rp-color-success);
95
+ --_rp-button-accent-hover: var(--rp-color-success-hover);
96
+ --_rp-button-accent-active: var(--rp-color-success-active);
97
+ --_rp-button-accent-on: var(--rp-color-on-success);
98
+ --_rp-button-accent-subtle-bg: var(--rp-color-success-subtle-bg);
99
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-success-subtle-bg-hover);
100
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-success-subtle-bg-active);
101
+ --_rp-button-accent-border: var(--rp-color-success-border);
102
+ --_rp-button-accent-border-hover: var(--rp-color-success-border-hover);
103
+ --_rp-button-accent-fg: var(--rp-color-success-fg);
104
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
105
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
106
+ --_rp-button-border: var(--_rp-button-accent-border);
107
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
108
+ --_rp-button-fg: var(--_rp-button-accent-fg);
35
109
  }
36
- .rp-button--ghost[data-v-c2d151de]:active:not(:disabled) {
37
- background-color: color-mix(in srgb, var(--rp-color-primary) 18%, transparent);
110
+ .rp-button--color-warning[data-v-b8d57358] {
111
+ --_rp-button-accent: var(--rp-color-warning);
112
+ --_rp-button-accent-hover: var(--rp-color-warning-hover);
113
+ --_rp-button-accent-active: var(--rp-color-warning-active);
114
+ --_rp-button-accent-on: var(--rp-color-on-warning);
115
+ --_rp-button-accent-subtle-bg: var(--rp-color-warning-subtle-bg);
116
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-warning-subtle-bg-hover);
117
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-warning-subtle-bg-active);
118
+ --_rp-button-accent-border: var(--rp-color-warning-border);
119
+ --_rp-button-accent-border-hover: var(--rp-color-warning-border-hover);
120
+ --_rp-button-accent-fg: var(--rp-color-warning-fg);
121
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
122
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
123
+ --_rp-button-border: var(--_rp-button-accent-border);
124
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
125
+ --_rp-button-fg: var(--_rp-button-accent-fg);
38
126
  }
39
- .rp-button[data-v-c2d151de]:disabled {
127
+ .rp-button--color-danger[data-v-b8d57358] {
128
+ --_rp-button-accent: var(--rp-color-danger);
129
+ --_rp-button-accent-hover: var(--rp-color-danger-hover);
130
+ --_rp-button-accent-active: var(--rp-color-danger-active);
131
+ --_rp-button-accent-on: var(--rp-color-on-danger);
132
+ --_rp-button-accent-subtle-bg: var(--rp-color-danger-subtle-bg);
133
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-danger-subtle-bg-hover);
134
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-danger-subtle-bg-active);
135
+ --_rp-button-accent-border: var(--rp-color-danger-border);
136
+ --_rp-button-accent-border-hover: var(--rp-color-danger-border-hover);
137
+ --_rp-button-accent-fg: var(--rp-color-danger-fg);
138
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
139
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
140
+ --_rp-button-border: var(--_rp-button-accent-border);
141
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
142
+ --_rp-button-fg: var(--_rp-button-accent-fg);
143
+ }
144
+ .rp-button--color-info[data-v-b8d57358] {
145
+ --_rp-button-accent: var(--rp-color-info);
146
+ --_rp-button-accent-hover: var(--rp-color-info-hover);
147
+ --_rp-button-accent-active: var(--rp-color-info-active);
148
+ --_rp-button-accent-on: var(--rp-color-on-info);
149
+ --_rp-button-accent-subtle-bg: var(--rp-color-info-subtle-bg);
150
+ --_rp-button-accent-subtle-bg-hover: var(--rp-color-info-subtle-bg-hover);
151
+ --_rp-button-accent-subtle-bg-active: var(--rp-color-info-subtle-bg-active);
152
+ --_rp-button-accent-border: var(--rp-color-info-border);
153
+ --_rp-button-accent-border-hover: var(--rp-color-info-border-hover);
154
+ --_rp-button-accent-fg: var(--rp-color-info-fg);
155
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
156
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
157
+ --_rp-button-border: var(--_rp-button-accent-border);
158
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
159
+ --_rp-button-fg: var(--_rp-button-accent-fg);
160
+ }
161
+ .rp-button--size-xs[data-v-b8d57358] {
162
+ --_rp-button-height: calc(var(--rp-size-control-sm) - var(--rp-spacing-1));
163
+ --_rp-button-padding-x: var(--rp-spacing-2);
164
+ --_rp-button-font-size: var(--rp-font-size-xs);
165
+ }
166
+ .rp-button--size-sm[data-v-b8d57358] {
167
+ --_rp-button-height: var(--rp-size-control-sm);
168
+ --_rp-button-padding-x: var(--rp-spacing-3);
169
+ --_rp-button-font-size: var(--rp-font-size-sm);
170
+ }
171
+ .rp-button--size-lg[data-v-b8d57358] {
172
+ --_rp-button-height: var(--rp-size-control-lg);
173
+ --_rp-button-padding-x: var(--rp-spacing-5);
174
+ --_rp-button-font-size: var(--rp-font-size-lg);
175
+ }
176
+ .rp-button--size-xl[data-v-b8d57358] {
177
+ --_rp-button-height: calc(var(--rp-size-control-lg) + var(--rp-spacing-2));
178
+ --_rp-button-padding-x: var(--rp-spacing-6);
179
+ --_rp-button-font-size: var(--rp-font-size-lg);
180
+ }
181
+ .rp-button--radius-xs[data-v-b8d57358] {
182
+ --_rp-button-radius: var(--rp-radius-sm);
183
+ }
184
+ .rp-button--radius-sm[data-v-b8d57358] {
185
+ --_rp-button-radius: var(--rp-radius-sm);
186
+ }
187
+ .rp-button--radius-md[data-v-b8d57358] {
188
+ --_rp-button-radius: var(--rp-radius-md);
189
+ }
190
+ .rp-button--radius-lg[data-v-b8d57358] {
191
+ --_rp-button-radius: var(--rp-radius-lg);
192
+ }
193
+ .rp-button--radius-xl[data-v-b8d57358] {
194
+ --_rp-button-radius: var(--rp-radius-xl);
195
+ }
196
+ .rp-button--solid[data-v-b8d57358] {
197
+ --_rp-button-bg: var(--_rp-button-accent);
198
+ --_rp-button-bg-hover: var(--_rp-button-accent-hover);
199
+ --_rp-button-bg-active: var(--_rp-button-accent-active);
200
+ --_rp-button-border: var(--_rp-button-accent);
201
+ --_rp-button-border-hover: var(--_rp-button-accent-hover);
202
+ --_rp-button-border-active: var(--_rp-button-accent-active);
203
+ --_rp-button-fg: var(--_rp-button-accent-on);
204
+ }
205
+ .rp-button--subtle[data-v-b8d57358] {
206
+ --_rp-button-bg: var(--_rp-button-accent-subtle-bg);
207
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
208
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
209
+ --_rp-button-border: transparent;
210
+ --_rp-button-border-hover: transparent;
211
+ --_rp-button-border-active: transparent;
212
+ --_rp-button-fg: var(--_rp-button-accent-fg);
213
+ --_rp-button-shadow: none;
214
+ --_rp-button-shadow-hover: none;
215
+ --_rp-button-shadow-active: none;
216
+ }
217
+ .rp-button--surface[data-v-b8d57358] {
218
+ --_rp-button-bg: var(--_rp-button-accent-subtle-bg);
219
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
220
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
221
+ --_rp-button-border: var(--_rp-button-accent-border);
222
+ --_rp-button-border-hover: var(--_rp-button-accent-subtle-bg-hover);
223
+ --_rp-button-border-active: var(--_rp-button-accent-border-hover);
224
+ --_rp-button-fg: var(--_rp-button-accent-fg);
225
+ --_rp-button-shadow: none;
226
+ --_rp-button-shadow-hover: none;
227
+ --_rp-button-shadow-active: none;
228
+ }
229
+ .rp-button--outline[data-v-b8d57358] {
230
+ --_rp-button-bg: transparent;
231
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
232
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
233
+ --_rp-button-border: var(--_rp-button-accent-border);
234
+ --_rp-button-border-hover: var(--_rp-button-accent-border-hover);
235
+ --_rp-button-border-active: var(--_rp-button-accent-border-hover);
236
+ --_rp-button-fg: var(--_rp-button-accent-fg);
237
+ --_rp-button-shadow: none;
238
+ --_rp-button-shadow-hover: none;
239
+ --_rp-button-shadow-active: none;
240
+ }
241
+ .rp-button--ghost[data-v-b8d57358] {
242
+ --_rp-button-bg: transparent;
243
+ --_rp-button-bg-hover: var(--_rp-button-accent-subtle-bg-hover);
244
+ --_rp-button-bg-active: var(--_rp-button-accent-subtle-bg-active);
245
+ --_rp-button-border: transparent;
246
+ --_rp-button-border-hover: transparent;
247
+ --_rp-button-border-active: transparent;
248
+ --_rp-button-fg: var(--_rp-button-accent-fg);
249
+ --_rp-button-shadow: none;
250
+ --_rp-button-shadow-hover: none;
251
+ --_rp-button-shadow-active: none;
252
+ }
253
+ .rp-button--plain[data-v-b8d57358] {
254
+ --_rp-button-bg: transparent;
255
+ --_rp-button-bg-hover: transparent;
256
+ --_rp-button-bg-active: transparent;
257
+ --_rp-button-border: transparent;
258
+ --_rp-button-border-hover: transparent;
259
+ --_rp-button-border-active: transparent;
260
+ --_rp-button-fg: var(--_rp-button-accent-fg);
261
+ --_rp-button-shadow: none;
262
+ --_rp-button-shadow-hover: none;
263
+ --_rp-button-shadow-active: none;
264
+ }
265
+ .rp-button[data-v-b8d57358]:disabled {
40
266
  opacity: var(--rp-opacity-disabled);
41
267
  cursor: not-allowed;
268
+ box-shadow: none;
269
+ transform: none;
42
270
  }
43
- .rp-button[data-v-c2d151de]:focus-visible {
271
+ .rp-button[data-v-b8d57358]:focus-visible {
44
272
  outline: none;
45
- border-color: var(--rp-color-control-border-focus);
273
+ border-color: var(--rp-color-primary);
46
274
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
47
275
  }
48
- .rp-button__prefix[data-v-c2d151de], .rp-button__suffix[data-v-c2d151de] {
276
+ .rp-button__left[data-v-b8d57358], .rp-button__right[data-v-b8d57358] {
49
277
  display: inline-flex;
50
278
  align-items: center;
51
279
  flex-shrink: 0;
52
280
  }
53
- .rp-button__spinner[data-v-c2d151de] {
281
+ .rp-button__spinner[data-v-b8d57358] {
282
+ display: block;
54
283
  width: 1em;
55
284
  height: 1em;
56
- border: var(--rp-border-width-medium) solid currentColor;
57
- border-right-color: transparent;
58
- border-radius: var(--rp-radius-full);
59
285
  flex-shrink: 0;
60
- animation: rp-button-spin-c2d151de 700ms linear infinite;
286
+ transform-origin: center;
287
+ animation: rp-button-spin-b8d57358 700ms linear infinite;
61
288
  }
62
- @keyframes rp-button-spin-c2d151de {
289
+ @keyframes rp-button-spin-b8d57358 {
63
290
  to {
64
291
  transform: rotate(360deg);
65
292
  }