@robuust-digital/vue-components 2.0.0-rc.5 → 2.0.0-rc.7

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 (37) hide show
  1. package/CHANGELOG.md +242 -0
  2. package/dist/_shared/{ButtonBase-CQjlJ85F.js → ButtonBase-DfkwHIhN.js} +10 -10
  3. package/dist/_shared/Modal-BztsrTZC.js +199 -0
  4. package/dist/_shared/{Tooltip-BKXJoJ1x.js → Tooltip-B93ZF7IF.js} +16 -16
  5. package/dist/combobox/combobox.css +76 -34
  6. package/dist/combobox/index.js +46 -46
  7. package/dist/core/accordion.css +21 -10
  8. package/dist/core/alert.css +26 -20
  9. package/dist/core/badge.css +10 -10
  10. package/dist/core/button.css +31 -19
  11. package/dist/core/checkbox.css +35 -10
  12. package/dist/core/empty-state.css +6 -6
  13. package/dist/core/index.js +307 -313
  14. package/dist/core/input.css +23 -13
  15. package/dist/core/pagination.css +68 -9
  16. package/dist/core/radio.css +35 -10
  17. package/dist/core/select.css +25 -16
  18. package/dist/core/styles.css +5 -35
  19. package/dist/core/table.css +66 -5
  20. package/dist/core/tabs.css +20 -9
  21. package/dist/core/textarea.css +17 -10
  22. package/dist/core/utilities.css +12 -0
  23. package/dist/dialogs/drawer.css +140 -4
  24. package/dist/dialogs/index.js +93 -96
  25. package/dist/dialogs/modal.css +124 -22
  26. package/dist/dialogs/styles.css +20 -0
  27. package/dist/dropdown/dropdown.css +79 -49
  28. package/dist/dropdown/index.js +38 -38
  29. package/dist/lightswitch/lightswitch.css +19 -8
  30. package/dist/rich-text-editor/index.js +42 -39
  31. package/dist/rich-text-editor/rich-text.css +28 -10
  32. package/dist/toast/index.js +35 -34
  33. package/dist/toast/toast.css +54 -28
  34. package/dist/tooltip/index.js +1 -1
  35. package/dist/tooltip/tooltip.css +18 -16
  36. package/package.json +11 -3
  37. package/dist/_shared/Modal-CsI5mZlJ.js +0 -202
@@ -7,6 +7,8 @@
7
7
  --rvc-combobox-box-shadow: var(--rvc-base-box-shadow);
8
8
  --rvc-combobox-color: var(--rvc-base-input-color);
9
9
  --rvc-combobox-bg-color: var(--rvc-base-input-bg-color);
10
+ --rvc-combobox-bg-color-disabled: var(--rvc-base-input-bg-color-disabled);
11
+ --rvc-combobox-disabled-opacity: var(--rvc-base-input-disabled-opacity);
10
12
  --rvc-combobox-padding-x: var(--rvc-base-input-padding-x);
11
13
  --rvc-combobox-height: var(--rvc-base-input-height);
12
14
  --rvc-combobox-icon-size: var(--rvc-base-input-icon-size);
@@ -42,10 +44,24 @@
42
44
  .rvc-combobox {
43
45
  display: block;
44
46
 
47
+ .rvc-combobox-container {
48
+ position: relative;
49
+ }
50
+
45
51
  .rvc-combobox-wrapper {
52
+ display: flex;
53
+ column-gap: calc(var(--spacing) * 1);
54
+
55
+ &:has(:disabled) {
56
+ opacity: var(--rvc-combobox-disabled-opacity);
57
+ pointer-events: none;
58
+ }
59
+ }
60
+
61
+ .rvc-combobox-field {
46
62
  display: grid;
47
- grid-template-columns: 1fr;
48
63
  position: relative;
64
+ grid-template-columns: 1fr;
49
65
  width: 100%;
50
66
 
51
67
  /* Extra right padding */
@@ -60,24 +76,24 @@
60
76
  }
61
77
 
62
78
  input {
63
- border-radius: var(--rvc-combobox-border-radius);
64
- border-width: var(--rvc-combobox-border-width);
65
- border-color: var(--rvc-combobox-border-color);
79
+ position: relative;
80
+ grid-column-start: 1;
81
+ grid-row-start: 1;
82
+ width: 100%;
83
+ height: var(--rvc-combobox-height);
66
84
  padding-right: var(--rvc-combobox-padding-x);
67
85
  padding-left: var(--rvc-combobox-padding-x);
86
+ border-width: var(--rvc-combobox-border-width);
87
+ border-radius: var(--rvc-combobox-border-radius);
88
+ border-color: var(--rvc-combobox-border-color);
89
+ outline-width: 0;
68
90
  background-color: var(--rvc-combobox-bg-color);
91
+ background-image: none;
92
+ box-shadow: var(--rvc-combobox-box-shadow);
93
+ color: var(--rvc-combobox-color);
69
94
  font-size: var(--rvc-combobox-font-size);
70
95
  font-weight: var(--rvc-combobox-font-weight);
71
- color: var(--rvc-combobox-color);
72
- box-shadow: var(--rvc-combobox-box-shadow);
73
- height: var(--rvc-combobox-height);
74
- background-image: none;
75
- width: 100%;
76
- position: relative;
77
- grid-column-start: 1;
78
- grid-row-start: 1;
79
96
  appearance: none;
80
- outline-width: 0;
81
97
 
82
98
  /* Extra left padding */
83
99
  &:nth-child(2) {
@@ -87,15 +103,19 @@
87
103
  &::placeholder {
88
104
  color: var(--rvc-combobox-placeholder-color);
89
105
  }
106
+
107
+ &:disabled {
108
+ background-color: var(--rvc-combobox-bg-color-disabled);
109
+ }
90
110
  }
91
111
 
92
- .rvc-combobox-button, .rvc-combobox-wrapper > svg {
93
- color: var(--rvc-combobox-icon-color);
112
+ .rvc-combobox-button, .rvc-combobox-field > svg {
94
113
  position: relative;
114
+ z-index: 1;
95
115
  grid-column-start: 1;
96
116
  grid-row-start: 1;
97
117
  align-self: center;
98
- z-index: 1;
118
+ color: var(--rvc-combobox-icon-color);
99
119
  }
100
120
 
101
121
  .rvc-combobox-button {
@@ -128,10 +148,10 @@
128
148
  }
129
149
 
130
150
  .rvc-combobox-chips {
131
- margin-top: var(--rvc-combobox-chips-spacing);
132
- gap: var(--rvc-combobox-chips-spacing);
133
151
  display: flex;
134
152
  flex-wrap: wrap;
153
+ margin-top: var(--rvc-combobox-chips-spacing);
154
+ gap: var(--rvc-combobox-chips-spacing);
135
155
  }
136
156
 
137
157
  .rvc-combobox-chip {
@@ -148,34 +168,34 @@
148
168
  }
149
169
 
150
170
  .rvc-combobox-options {
151
- padding-inline: var(--rvc-combobox-options-padding-x);
152
- padding-block: var(--rvc-combobox-options-padding-y);
171
+ position: absolute;
172
+ z-index: var(--rvc-combobox-options-z-index);
153
173
  top: calc(var(--rvc-combobox-height) + var(--rvc-combobox-options-offset));
154
- border-radius: var(--rvc-combobox-border-radius);
174
+ width: 100%;
175
+ max-height: var(--rvc-combobox-options-max-height);
176
+ margin-top: var(--rvc-combobox-options-offset);
177
+ padding-block: var(--rvc-combobox-options-padding-y);
178
+ padding-inline: var(--rvc-combobox-options-padding-x);
179
+ overflow-y: auto;
155
180
  border-width: var(--rvc-combobox-border-width);
181
+ border-radius: var(--rvc-combobox-border-radius);
156
182
  border-color: var(--rvc-combobox-border-color);
157
183
  background-color: var(--rvc-combobox-bg-color);
158
- font-size: var(--rvc-combobox-font-size);
159
- color: var(--rvc-combobox-color);
160
184
  box-shadow: var(--rvc-combobox-box-shadow);
161
- margin-top: var(--rvc-combobox-options-offset);
162
- z-index: var(--rvc-combobox-options-z-index);
163
- max-height: var(--rvc-combobox-options-max-height);
164
- position: absolute;
165
- width: 100%;
166
- overflow-y: auto;
185
+ color: var(--rvc-combobox-color);
186
+ font-size: var(--rvc-combobox-font-size);
167
187
  }
168
188
 
169
189
  .rvc-combobox-option {
190
+ display: flex;
191
+ position: relative;
192
+ align-items: center;
170
193
  padding: var(--rvc-combobox-option-padding-y) var(--rvc-combobox-option-padding-x);
171
194
  border-radius: var(--rvc-combobox-border-radius);
172
195
  color: var(--rvc-combobox-color);
173
- gap: calc(var(--spacing) * 2);
174
- align-items: center;
175
- position: relative;
176
- display: flex;
177
- user-select: none;
178
196
  cursor: pointer;
197
+ user-select: none;
198
+ gap: calc(var(--spacing) * 2);
179
199
 
180
200
  &.rvc-combobox-option-hover {
181
201
  background-color: var(--rvc-combobox-option-bg-color-hover);
@@ -192,6 +212,28 @@
192
212
  }
193
213
  }
194
214
 
215
+ .rvc-combobox-option-text {
216
+ display: block;
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ white-space: nowrap;
220
+ }
221
+
222
+ .rvc-combobox-content {
223
+ position: relative;
224
+ padding-right: calc(var(--spacing) * 9);
225
+ padding-left: calc(var(--spacing) * 3);
226
+ padding-block: calc(var(--spacing) * 2);
227
+ color: var(--color-slate-500);
228
+ cursor: default;
229
+ user-select: none;
230
+
231
+ > * {
232
+ display: flex;
233
+ align-items: center;
234
+ }
235
+ }
236
+
195
237
  /* Size variants */
196
238
  &.rvc-combobox-sm {
197
239
  --rvc-combobox-height: var(--rvc-combobox-height-sm);
@@ -1,10 +1,10 @@
1
- import { createElementBlock as d, openBlock as n, createElementVNode as r, ref as h, computed as K, createBlock as g, unref as c, mergeProps as F, withCtx as x, createCommentVNode as C, renderSlot as v, createVNode as y, resolveDynamicComponent as N, withModifiers as P, Fragment as j, renderList as z, createTextVNode as Z, toDisplayString as S, normalizeClass as U } from "vue";
1
+ import { createElementBlock as d, openBlock as a, createElementVNode as r, ref as p, computed as K, createBlock as g, unref as c, mergeProps as F, withCtx as x, createCommentVNode as C, renderSlot as v, createVNode as y, resolveDynamicComponent as N, withModifiers as P, Fragment as j, renderList as z, createTextVNode as Z, toDisplayString as S, normalizeClass as U } from "vue";
2
2
  import { useDebounceFn as G } from "@vueuse/core";
3
3
  import { Combobox as H, ComboboxInput as J, ComboboxButton as Q, ComboboxOptions as W, ComboboxOption as X } from "@headlessui/vue";
4
4
  import { r as Y, _ } from "../_shared/ChevronDownIcon-z-5U4fIb.js";
5
5
  import { S as ee } from "../_shared/icon-spinner-CmxIOqaK.js";
6
6
  function te(e, $) {
7
- return n(), d("svg", {
7
+ return a(), d("svg", {
8
8
  xmlns: "http://www.w3.org/2000/svg",
9
9
  viewBox: "0 0 16 16",
10
10
  fill: "currentColor",
@@ -19,7 +19,7 @@ function te(e, $) {
19
19
  ]);
20
20
  }
21
21
  function le(e, $) {
22
- return n(), d("svg", {
22
+ return a(), d("svg", {
23
23
  xmlns: "http://www.w3.org/2000/svg",
24
24
  viewBox: "0 0 20 20",
25
25
  fill: "currentColor",
@@ -29,16 +29,16 @@ function le(e, $) {
29
29
  r("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
30
30
  ]);
31
31
  }
32
- const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class: "rvc-combobox-wrapper" }, ie = {
32
+ const oe = { class: "rvc-combobox-container" }, ne = { class: "rvc-combobox-wrapper" }, ae = { class: "rvc-combobox-field" }, ie = {
33
33
  key: 0,
34
34
  class: "rvc-combobox-chips"
35
35
  }, ue = ["onClick"], re = {
36
36
  key: 0,
37
- class: "relative cursor-default select-none py-2 pl-3 pr-9 text-slate-500"
38
- }, se = { class: "flex items-center" }, ce = {
37
+ class: "rvc-combobox-content"
38
+ }, se = {
39
39
  key: 1,
40
- class: "relative cursor-default select-none py-2 pl-3 pr-9 text-slate-500"
41
- }, de = { class: "block truncate" }, pe = /* @__PURE__ */ Object.assign({
40
+ class: "rvc-combobox-content"
41
+ }, ce = { class: "rvc-combobox-option-text" }, ye = /* @__PURE__ */ Object.assign({
42
42
  inheritAttrs: !1
43
43
  }, {
44
44
  __name: "Combobox",
@@ -147,52 +147,52 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
147
147
  },
148
148
  emits: ["update:modelValue", "update:requestParams", "combobox:noResults", "combobox:error"],
149
149
  setup(e, { emit: $ }) {
150
- const a = e, m = $, s = h([]), b = h(!1), k = h(null), L = h(!0), q = h(null), f = K({
151
- get: () => a.multiple ? a.modelValue || [] : a.modelValue,
150
+ const n = e, m = $, s = p([]), f = p(!1), k = p(null), L = p(!0), q = p(null), b = K({
151
+ get: () => n.multiple ? n.modelValue || [] : n.modelValue,
152
152
  set: (t) => m("update:modelValue", t)
153
153
  }), O = K({
154
- get: () => a.requestParams,
154
+ get: () => n.requestParams,
155
155
  set: (t) => m("update:requestParams", t)
156
156
  }), D = (t) => new Promise((l) => {
157
157
  setTimeout(l, t);
158
158
  }), T = (t, l) => {
159
159
  s.value = [], m("combobox:error", t), m("combobox:noResults", l);
160
160
  }, A = async (t) => {
161
- if (!a.onSearch) return;
162
- if (a.searchOnly && !t) {
161
+ if (!n.onSearch) return;
162
+ if (n.searchOnly && !t) {
163
163
  s.value = [];
164
164
  return;
165
165
  }
166
- if (t && t.length < a.minLength) {
166
+ if (t && t.length < n.minLength) {
167
167
  s.value = [];
168
168
  return;
169
169
  }
170
- q.value && a.onCancel && a.onCancel(q.value), b.value = !0;
170
+ q.value && n.onCancel && n.onCancel(q.value), f.value = !0;
171
171
  const l = Date.now();
172
172
  try {
173
- const { data: i, error: p, cancel: w } = await a.onSearch(t, O.value, a.endpoint);
173
+ const { data: i, error: h, cancel: w } = await n.onSearch(t, O.value, n.endpoint);
174
174
  q.value = w;
175
- const o = a.responseData(i), u = Date.now() - l;
176
- !o.length && p && T(p, t), u < a.minLoadingTime && await D(a.minLoadingTime - u), o != null && o.length ? s.value = o : (s.value = [], m("combobox:noResults", t));
175
+ const o = n.responseData(i), u = Date.now() - l;
176
+ !o.length && h && T(h, t), u < n.minLoadingTime && await D(n.minLoadingTime - u), o != null && o.length ? s.value = o : (s.value = [], m("combobox:noResults", t));
177
177
  } catch (i) {
178
178
  i.cancelled || T(i, t);
179
179
  } finally {
180
- b.value = !1;
180
+ f.value = !1;
181
181
  }
182
- }, M = G(A, a.debounce), B = (t) => {
182
+ }, M = G(A, n.debounce), B = (t) => {
183
183
  L.value ? (L.value = !1, A(t)) : M(t);
184
184
  }, R = (t) => {
185
185
  var l;
186
- ((l = t.target.value) == null ? void 0 : l.length) === 0 && (s.value = [], m("update:modelValue", null)), a.manualInput && m("update:modelValue", O.value.query);
186
+ ((l = t.target.value) == null ? void 0 : l.length) === 0 && (s.value = [], m("update:modelValue", null)), n.manualInput && m("update:modelValue", O.value.query);
187
187
  }, V = (t) => {
188
188
  var l;
189
- return a.multiple ? f.value.some((i) => i[a.itemKey] === t) : ((l = f.value) == null ? void 0 : l[a.itemKey]) === t;
189
+ return n.multiple ? b.value.some((i) => i[n.itemKey] === t) : ((l = b.value) == null ? void 0 : l[n.itemKey]) === t;
190
190
  }, I = (t) => {
191
- f.value = f.value.filter((l) => l[a.itemKey] !== t[a.itemKey]);
191
+ b.value = b.value.filter((l) => l[n.itemKey] !== t[n.itemKey]);
192
192
  };
193
- return (t, l) => (n(), g(c(H), F({
194
- modelValue: f.value,
195
- "onUpdate:modelValue": l[4] || (l[4] = (i) => f.value = i),
193
+ return (t, l) => (a(), g(c(H), F({
194
+ modelValue: b.value,
195
+ "onUpdate:modelValue": l[4] || (l[4] = (i) => b.value = i),
196
196
  as: "div"
197
197
  }, e.rootAttrs, {
198
198
  multiple: e.multiple,
@@ -203,16 +203,16 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
203
203
  ]
204
204
  }), {
205
205
  default: x(() => {
206
- var i, p, w;
206
+ var i, h, w;
207
207
  return [
208
208
  r("div", oe, [
209
- r("div", ae, [
210
- r("div", ne, [
209
+ r("div", ne, [
210
+ r("div", ae, [
211
211
  e.prefixIcon ? v(t.$slots, "prefixIcon", {
212
212
  key: 0,
213
213
  icon: e.prefixIcon
214
214
  }, () => [
215
- (n(), g(N(e.prefixIcon), { "aria-hidden": "true" }))
215
+ (a(), g(N(e.prefixIcon), { "aria-hidden": "true" }))
216
216
  ]) : C("", !0),
217
217
  y(c(J), F(t.$attrs, {
218
218
  id: e.id,
@@ -231,23 +231,23 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
231
231
  default: x(() => {
232
232
  var o;
233
233
  return [
234
- b.value ? v(t.$slots, "spinner", {
234
+ f.value ? v(t.$slots, "spinner", {
235
235
  key: 0,
236
- spinning: b.value
236
+ spinning: f.value
237
237
  }, () => [
238
238
  y(c(ee), { class: "rvc-combobox-spinner" })
239
- ]) : (!e.searchOnly || (o = s.value) != null && o.length) && !b.value ? v(t.$slots, "icon", {
239
+ ]) : (!e.searchOnly || (o = s.value) != null && o.length) && !f.value ? v(t.$slots, "icon", {
240
240
  key: 1,
241
241
  icon: e.icon
242
242
  }, () => [
243
- (n(), g(N(e.icon ?? c(Y)), { "aria-hidden": "true" }))
243
+ (a(), g(N(e.icon ?? c(Y)), { "aria-hidden": "true" }))
244
244
  ]) : C("", !0)
245
245
  ];
246
246
  }),
247
247
  _: 3
248
248
  }, 8, ["disabled"])
249
249
  ]),
250
- e.clearable && ((i = e.modelValue) != null && i.length || (p = e.modelValue) != null && p.id) ? (n(), d("button", {
250
+ e.clearable && ((i = e.modelValue) != null && i.length || (h = e.modelValue) != null && h.id) ? (a(), d("button", {
251
251
  key: 0,
252
252
  type: "button",
253
253
  "aria-label": "Clear selection",
@@ -259,8 +259,8 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
259
259
  ])
260
260
  ])) : C("", !0)
261
261
  ]),
262
- e.multiple && f.value.length ? (n(), d("ul", ie, [
263
- (n(!0), d(j, null, z(f.value, (o) => (n(), d("li", {
262
+ e.multiple && b.value.length ? (a(), d("ul", ie, [
263
+ (a(!0), d(j, null, z(b.value, (o) => (a(), d("li", {
264
264
  key: `${e.id}-selected-option-${o[e.itemKey]}`
265
265
  }, [
266
266
  v(t.$slots, "chip", {
@@ -288,20 +288,20 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
288
288
  ])
289
289
  ]))), 128))
290
290
  ])) : C("", !0),
291
- (!e.searchOnly || (w = k.value) != null && w.length) && (!b.value || s.value.length) ? (n(), g(c(W), {
291
+ (!e.searchOnly || (w = k.value) != null && w.length) && (!f.value || s.value.length) ? (a(), g(c(W), {
292
292
  key: 1,
293
293
  class: "rvc-combobox-options"
294
294
  }, {
295
295
  default: x(() => {
296
296
  var o;
297
297
  return [
298
- ((o = k.value) == null ? void 0 : o.length) < e.minLength ? (n(), d("div", re, [
299
- r("div", se, [
298
+ ((o = k.value) == null ? void 0 : o.length) < e.minLength ? (a(), d("div", re, [
299
+ r("div", null, [
300
300
  r("em", null, "Minimal " + S(e.minLength) + " characters.", 1)
301
301
  ])
302
- ])) : !b.value && !s.value.length ? (n(), d("div", ce, l[5] || (l[5] = [
303
- r("div", { class: "flex items-center" }, " No results found. ", -1)
304
- ]))) : (n(!0), d(j, { key: 2 }, z(s.value, (u) => (n(), g(c(X), {
302
+ ])) : !f.value && !s.value.length ? (a(), d("div", se, l[5] || (l[5] = [
303
+ r("div", null, " No results found. ", -1)
304
+ ]))) : (a(!0), d(j, { key: 2 }, z(s.value, (u) => (a(), g(c(X), {
305
305
  key: u[e.itemKey],
306
306
  value: u,
307
307
  as: "template"
@@ -322,7 +322,7 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
322
322
  option: u[e.itemKey],
323
323
  isActive: V
324
324
  }),
325
- r("span", de, S(e.optionText(u)), 1),
325
+ r("span", ce, S(e.optionText(u)), 1),
326
326
  v(t.$slots, "optionSuffix", {
327
327
  option: u[e.itemKey],
328
328
  isActive: V
@@ -344,6 +344,6 @@ const oe = { class: "relative" }, ae = { class: "flex gap-x-1" }, ne = { class:
344
344
  }
345
345
  });
346
346
  export {
347
- pe as Combobox,
348
- pe as default
347
+ ye as Combobox,
348
+ ye as default
349
349
  };
@@ -15,20 +15,31 @@
15
15
  @layer components {
16
16
  .rvc-accordion {
17
17
  details {
18
- border-top-width: var(--rvc-accordion-border-width);
19
- border-top-color: var(--rvc-accordion-border-color);
20
- border-top-style: var(--rvc-accordion-border-style);
18
+ border-top: var(--rvc-accordion-border-width) var(--rvc-accordion-border-style) var(--rvc-accordion-border-color);
19
+
20
+ .rvc-accordion-icon {
21
+ width: calc(var(--spacing) * 5);
22
+ height: calc(var(--spacing) * 5);
23
+ transform: translateZ(0) var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
24
+ transition-property: transform, translate, scale, rotate;
25
+ transition-duration: var(--rvc-base-transition-duration);
26
+ transition-timing-function: var(--rvc-base-transition-timing-function);
27
+ }
28
+
29
+ &:open .rvc-accordion-icon {
30
+ transform: rotate(45deg);
31
+ }
21
32
  }
22
33
 
23
34
  summary {
24
- padding-block: var(--rvc-accordion-padding-y);
25
- font-weight: var(--rvc-accordion-summary-font-weight);
26
- font-size: var(--rvc-accordion-summary-font-size);
27
- color: var(--rvc-accordion-summary-color);
28
- width: 100%;
29
35
  display: flex;
30
36
  align-items: center;
31
37
  justify-content: space-between;
38
+ width: 100%;
39
+ padding-block: var(--rvc-accordion-padding-y);
40
+ color: var(--rvc-accordion-summary-color);
41
+ font-size: var(--rvc-accordion-summary-font-size);
42
+ font-weight: var(--rvc-accordion-summary-font-weight);
32
43
  cursor: pointer;
33
44
  user-select: none;
34
45
 
@@ -39,9 +50,9 @@
39
50
 
40
51
  .rvc-accordion-content {
41
52
  padding-bottom: var(--rvc-accordion-padding-y);
42
- font-weight: var(--rvc-accordion-font-weight);
43
- font-size: var(--rvc-accordion-font-size);
44
53
  color: var(--rvc-accordion-color);
54
+ font-size: var(--rvc-accordion-font-size);
55
+ font-weight: var(--rvc-accordion-font-weight);
45
56
  }
46
57
  }
47
58
  }
@@ -11,6 +11,7 @@
11
11
  --rvc-alert-icon-size: calc(var(--spacing) * 6);
12
12
  --rvc-alert-title-font-weight: var(--font-weight-medium);
13
13
  --rvc-alert-transition-property: color, background-color, border-color;
14
+ --rvc-alert-close-icon-size: calc(var(--spacing) * 5);
14
15
 
15
16
  /* Default color variables */
16
17
  --rvc-alert-bg-color: var(--color-blue-50);
@@ -56,23 +57,23 @@
56
57
 
57
58
  @layer components {
58
59
  .rvc-alert {
59
- gap: var(--rvc-alert-gap);
60
- padding-inline: var(--rvc-alert-padding-x);
60
+ display: flex;
61
+ position: relative;
61
62
  padding-block: var(--rvc-alert-padding-y);
63
+ padding-inline: var(--rvc-alert-padding-x);
64
+ overflow: hidden;
62
65
  border-radius: var(--rvc-alert-border-radius);
63
- font-size: var(--rvc-alert-font-size);
64
66
  background-color: var(--rvc-alert-bg-color);
65
67
  color: var(--rvc-alert-color);
66
- display: flex;
67
- position: relative;
68
- overflow: hidden;
68
+ font-size: var(--rvc-alert-font-size);
69
+ gap: var(--rvc-alert-gap);
69
70
 
70
71
  a {
71
- text-decoration: var(--rvc-alert-anchor-decoration);
72
72
  transition-property: var(--rvc-alert-transition-property);
73
73
  transition-duration: var(--rvc-alert-transition-duration);
74
74
  transition-timing-function: var(--rvc-alert-transition-timing-function);
75
75
  color: var(--rvc-alert-anchor-color);
76
+ text-decoration: var(--rvc-alert-anchor-decoration);
76
77
 
77
78
  &:hover {
78
79
  color: var(--rvc-alert-anchor-color-hover);
@@ -80,9 +81,9 @@
80
81
  }
81
82
 
82
83
  ul, ol {
83
- list-style-position: inside;
84
84
  margin: 0;
85
85
  padding-left: calc(var(--spacing) * 2);
86
+ list-style-position: inside;
86
87
  }
87
88
 
88
89
  ul {
@@ -94,19 +95,24 @@
94
95
  }
95
96
 
96
97
  .rvc-alert-close {
97
- background-color: var(--rvc-alert-close-bg-color);
98
- color: var(--rvc-alert-icon-color);
99
- border-bottom-left-radius: var(--rvc-alert-border-radius);
100
- transition-property: var(--rvc-alert-transition-property);
101
- transition-duration: var(--rvc-alert-transition-duration);
102
- transition-timing-function: var(--rvc-alert-transition-timing-function);
103
98
  display: inline-flex;
104
- justify-content: center;
105
- align-items: center;
106
99
  position: absolute;
107
100
  top: 0;
108
101
  right: 0;
102
+ align-items: center;
103
+ justify-content: center;
109
104
  padding: calc(var(--spacing) * 1.5);
105
+ transition-property: var(--rvc-alert-transition-property);
106
+ transition-duration: var(--rvc-alert-transition-duration);
107
+ transition-timing-function: var(--rvc-alert-transition-timing-function);
108
+ border-bottom-left-radius: var(--rvc-alert-border-radius);
109
+ background-color: var(--rvc-alert-close-bg-color);
110
+ color: var(--rvc-alert-icon-color);
111
+
112
+ svg {
113
+ width: var(--rvc-alert-close-icon-size);
114
+ height: var(--rvc-alert-close-icon-size);
115
+ }
110
116
 
111
117
  &:hover {
112
118
  background-color: var(--rvc-alert-close-bg-color-hover);
@@ -115,18 +121,18 @@
115
121
  }
116
122
 
117
123
  .rvc-alert-icon {
124
+ display: block;
125
+ flex-shrink: 0;
118
126
  width: var(--rvc-alert-icon-size);
119
127
  height: var(--rvc-alert-icon-size);
120
128
  color: var(--rvc-alert-icon-color);
121
- display: block;
122
- flex-shrink: 0;
123
129
  }
124
130
 
125
131
  .rvc-alert-title {
126
- color: var(--rvc-alert-title-color);
127
- font-weight: var(--rvc-alert-title-font-weight);
128
132
  display: block;
129
133
  margin-bottom: calc(var(--spacing) * 2);
134
+ color: var(--rvc-alert-title-color);
135
+ font-weight: var(--rvc-alert-title-font-weight);
130
136
 
131
137
  &:last-child {
132
138
  margin-bottom: 0;
@@ -53,23 +53,23 @@
53
53
 
54
54
  @layer components {
55
55
  .rvc-badge {
56
+ display: inline-flex;
57
+ position: relative;
58
+ align-items: center;
59
+ justify-content: center;
60
+ width: fit-content;
56
61
  height: var(--rvc-badge-height);
57
- padding-inline: var(--rvc-badge-padding-x);
58
62
  padding-block: var(--rvc-badge-padding-y);
59
- font-weight: var(--rvc-badge-font-weight);
63
+ padding-inline: var(--rvc-badge-padding-x);
60
64
  border-radius: var(--rvc-badge-border-radius);
61
- font-size: var(--rvc-badge-font-size);
62
- gap: var(--rvc-badge-gap);
63
65
  background-color: var(--rvc-badge-bg-color);
64
66
  color: var(--rvc-badge-color);
65
- display: inline-flex;
66
- align-items: center;
67
- justify-content: center;
67
+ font-size: var(--rvc-badge-font-size);
68
+ font-weight: var(--rvc-badge-font-weight);
68
69
  text-align: center;
69
- position: relative;
70
- width: fit-content;
71
- white-space: nowrap;
72
70
  text-decoration: none;
71
+ white-space: nowrap;
72
+ gap: var(--rvc-badge-gap);
73
73
 
74
74
  &.rvc-badge-gray {
75
75
  --rvc-badge-bg-color: var(--rvc-badge-bg-color-gray);