ropav 0.1.7 → 0.1.8

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 (153) hide show
  1. package/README.md +1 -1
  2. package/dist/ancestry.js +136 -0
  3. package/dist/calendar.css +173 -0
  4. package/dist/calendar.js +714 -0
  5. package/dist/calendar2.js +37 -0
  6. package/dist/chevron-left.js +12 -0
  7. package/dist/color-picker.js +38 -88
  8. package/dist/combobox.css +251 -0
  9. package/dist/combobox.js +410 -0
  10. package/dist/components/calendar/calendar.d.ts +30 -0
  11. package/dist/components/calendar/calendarBehavior.d.ts +49 -0
  12. package/dist/components/calendar/index.d.ts +3 -0
  13. package/dist/components/calendar/index.js +3 -0
  14. package/dist/components/calendar/types.d.ts +53 -0
  15. package/dist/components/calendar/useCalendar.d.ts +24 -0
  16. package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
  17. package/dist/components/color-picker/useColorPickerSaturation.d.ts +1 -1
  18. package/dist/components/color-picker/useColorPickerSlider.d.ts +1 -1
  19. package/dist/components/combobox/combobox.d.ts +29 -0
  20. package/dist/components/combobox/comboboxModel.d.ts +4 -0
  21. package/dist/components/combobox/index.d.ts +3 -0
  22. package/dist/components/combobox/index.js +2 -0
  23. package/dist/components/combobox/types.d.ts +43 -0
  24. package/dist/components/combobox/useCombobox.d.ts +45 -0
  25. package/dist/components/date-picker/date-picker.d.ts +33 -0
  26. package/dist/components/date-picker/datePickerModel.d.ts +10 -0
  27. package/dist/components/date-picker/index.d.ts +4 -0
  28. package/dist/components/date-picker/index.js +2 -0
  29. package/dist/components/date-picker/types.d.ts +57 -0
  30. package/dist/components/date-picker/useDatePicker.d.ts +29 -0
  31. package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
  32. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  33. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  34. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  35. package/dist/components/dropdown-menu/dropdownMenuContext.d.ts +7 -18
  36. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -3
  37. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +58 -29
  38. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +4 -3
  39. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +6 -4
  40. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +3 -4
  41. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +5 -5
  42. package/dist/components/dropzone/dropzone.d.ts +31 -0
  43. package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
  44. package/dist/components/dropzone/index.d.ts +3 -0
  45. package/dist/components/dropzone/index.js +2 -0
  46. package/dist/components/dropzone/types.d.ts +56 -0
  47. package/dist/components/dropzone/useDropzone.d.ts +25 -0
  48. package/dist/components/file-input/file-input.d.ts +29 -0
  49. package/dist/components/file-input/index.d.ts +3 -0
  50. package/dist/components/file-input/index.js +2 -0
  51. package/dist/components/file-input/types.d.ts +37 -0
  52. package/dist/components/file-input/useFileInput.d.ts +15 -0
  53. package/dist/components/floating/index.js +1 -1
  54. package/dist/components/floating/useFloatingPosition.d.ts +1 -13
  55. package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
  56. package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
  57. package/dist/components/hover-card/hover-card.d.ts +25 -0
  58. package/dist/components/hover-card/index.d.ts +3 -0
  59. package/dist/components/hover-card/index.js +2 -0
  60. package/dist/components/hover-card/types.d.ts +45 -0
  61. package/dist/components/hover-card/useHoverCard.d.ts +22 -0
  62. package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
  63. package/dist/components/multi-select/index.d.ts +3 -0
  64. package/dist/components/multi-select/index.js +2 -0
  65. package/dist/components/multi-select/multi-select.d.ts +30 -0
  66. package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
  67. package/dist/components/multi-select/types.d.ts +49 -0
  68. package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
  69. package/dist/components/number-input/useNumberInput.d.ts +1 -3
  70. package/dist/components/popover/usePopoverBindings.d.ts +3 -6
  71. package/dist/components/scroll-area/useScrollArea.d.ts +4 -4
  72. package/dist/components/scroll-area/useScrollAreaAttributes.d.ts +3 -3
  73. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +1 -1
  74. package/dist/components/segmented-control/index.d.ts +3 -0
  75. package/dist/components/segmented-control/index.js +2 -0
  76. package/dist/components/segmented-control/segmented-control.d.ts +26 -0
  77. package/dist/components/segmented-control/types.d.ts +47 -0
  78. package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
  79. package/dist/components/select/useSelect.d.ts +31 -19
  80. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  81. package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
  82. package/dist/components/tags-input/index.d.ts +3 -0
  83. package/dist/components/tags-input/index.js +2 -0
  84. package/dist/components/tags-input/tags-input.d.ts +27 -0
  85. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  86. package/dist/components/tags-input/types.d.ts +37 -0
  87. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  88. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  89. package/dist/date-picker.css +49 -0
  90. package/dist/date-picker.js +809 -0
  91. package/dist/dialog.js +9 -20
  92. package/dist/direction.js +6 -0
  93. package/dist/dropdown-menu.css +21 -3
  94. package/dist/dropdown-menu.js +341 -261
  95. package/dist/dropzone.css +135 -0
  96. package/dist/dropzone.js +431 -0
  97. package/dist/file-input.css +135 -0
  98. package/dist/file-input.js +198 -0
  99. package/dist/hover-card.css +80 -0
  100. package/dist/hover-card.js +402 -0
  101. package/dist/index.d.ts +9 -0
  102. package/dist/index.js +14 -3
  103. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  104. package/dist/modal.js +1 -1
  105. package/dist/multi-select.css +316 -0
  106. package/dist/multi-select.js +481 -0
  107. package/dist/nativeChoice.js +169 -0
  108. package/dist/number-input.css +18 -18
  109. package/dist/number-input.js +36 -38
  110. package/dist/pagination.js +1 -10
  111. package/dist/pointerSession.js +130 -0
  112. package/dist/popover.css +21 -3
  113. package/dist/popover.js +37 -62
  114. package/dist/scroll-area.js +52 -62
  115. package/dist/segmented-control.css +176 -0
  116. package/dist/segmented-control.js +382 -0
  117. package/dist/select.css +50 -48
  118. package/dist/select.js +121 -271
  119. package/dist/slider.js +70 -129
  120. package/dist/tags-input.css +197 -0
  121. package/dist/tags-input.js +380 -0
  122. package/dist/tooltip.js +35 -30
  123. package/dist/useEditableOptionList.js +216 -0
  124. package/dist/useFlatOptionCollection.js +134 -0
  125. package/dist/useFloatingPosition.js +4 -160
  126. package/dist/useFloatingTargetLifecycle.js +127 -0
  127. package/dist/useFormControl.js +1 -0
  128. package/dist/{floating.js → useHoverDisclosure.js} +338 -421
  129. package/dist/useNativeChoiceTransaction.js +46 -0
  130. package/dist/useNativeFileSelection.js +86 -0
  131. package/dist/useOverlayZIndex.js +246 -15
  132. package/dist/utils/date.d.ts +13 -0
  133. package/dist/utils/dateAvailability.d.ts +7 -0
  134. package/dist/utils/dom/ancestry.d.ts +1 -0
  135. package/dist/utils/dom/direction.d.ts +2 -0
  136. package/dist/utils/dom/files.d.ts +3 -0
  137. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  138. package/dist/utils/dom/pointerSession.d.ts +20 -0
  139. package/dist/utils/dom/scroll.d.ts +2 -1
  140. package/dist/utils/optionFilter.d.ts +5 -0
  141. package/docs/public-floating-api.md +7 -4
  142. package/docs/public-styles-api.md +25 -12
  143. package/package.json +39 -3
  144. package/src/styles/_mixins.scss +26 -0
  145. package/src/styles/styles-manifest.json +1 -2
  146. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +0 -42
  147. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +0 -32
  148. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +0 -25
  149. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +0 -27
  150. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  151. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  152. package/dist/pointer.js +0 -9
  153. package/dist/utils/dom/pointer.d.ts +0 -2
@@ -0,0 +1,37 @@
1
+ //#region src/components/calendar/types.ts
2
+ var calendarParts = [
3
+ "root",
4
+ "header",
5
+ "previousControl",
6
+ "monthLabel",
7
+ "nextControl",
8
+ "weekdays",
9
+ "weekday",
10
+ "grid",
11
+ "week",
12
+ "dayCell",
13
+ "day"
14
+ ];
15
+ var calendarSizes = [
16
+ "xs",
17
+ "sm",
18
+ "md",
19
+ "lg",
20
+ "xl"
21
+ ];
22
+ var calendarRadiuses = [
23
+ "none",
24
+ "xs",
25
+ "sm",
26
+ "md",
27
+ "lg",
28
+ "xl",
29
+ "full"
30
+ ];
31
+ var calendarWeekdayFormats = [
32
+ "narrow",
33
+ "short",
34
+ "long"
35
+ ];
36
+ //#endregion
37
+ export { calendarWeekdayFormats as i, calendarRadiuses as n, calendarSizes as r, calendarParts as t };
@@ -0,0 +1,12 @@
1
+ import { defineVaporComponent, markRaw, template } from "vue";
2
+ //#region ~icons/lucide/chevron-left
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=\"m15 18l-6-6l6-6\">", 3, 1);
4
+ function render(_ctx) {
5
+ return t0();
6
+ }
7
+ var chevron_left_default = markRaw(defineVaporComponent({
8
+ name: "lucide-chevron-left",
9
+ render
10
+ }));
11
+ //#endregion
12
+ export { chevron_left_default as t };
@@ -8,8 +8,7 @@ import { t as parseCssColor } from "./color.js";
8
8
  import { t as check_default } from "./check.js";
9
9
  import { t as color_swatch_default } from "./color-swatch.js";
10
10
  import { n as toHTMLElement } from "./componentRef.js";
11
- import { n as isMatchingPointer, t as getPointerId } from "./pointer.js";
12
- import { t as createRafScheduler } from "./rafScheduler.js";
11
+ import { t as createPointerSession } from "./pointerSession.js";
13
12
  import { i as isNodeWithinElement } from "./events.js";
14
13
  import { child, computed, createComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, next, nthChild, on, onBeforeUnmount, ref, renderEffect, setAttr, setClass, setDynamicProps, setInsertionState, setProp, setStyle, setTemplateRefBinding, setValue, template, unref } from "vue";
15
14
  //#region src/utils/colorPicker.ts
@@ -170,96 +169,47 @@ function formatNumber(value) {
170
169
  //#endregion
171
170
  //#region src/components/color-picker/useColorPickerDrag.ts
172
171
  function useColorPickerDrag({ target, focusTarget, readonly, isGeometryValid, updateFromPointer }) {
173
- let session;
174
- let geometryDirty = false;
175
- let pendingPointer;
176
- function isCurrentPointer(event) {
177
- const currentSession = session;
178
- if (!currentSession) return false;
179
- return isMatchingPointer(event, currentSession.pointerId);
180
- }
181
- function applyScheduledUpdate(currentSession) {
182
- if (session !== currentSession) return;
183
- if (geometryDirty) {
184
- const rect = currentSession.element.getBoundingClientRect();
185
- if (!isGeometryValid(rect)) return;
186
- currentSession.rect = rect;
187
- geometryDirty = false;
188
- }
189
- const pointer = pendingPointer;
190
- pendingPointer = void 0;
191
- if (pointer) updateFromPointer(pointer, currentSession.rect);
192
- }
193
- const updateScheduler = createRafScheduler(() => {
194
- const currentSession = session;
195
- if (currentSession) applyScheduledUpdate(currentSession);
196
- }, () => session?.view);
197
- function flushScheduledUpdate() {
198
- const currentSession = session;
199
- updateScheduler.cancel();
200
- if (currentSession) applyScheduledUpdate(currentSession);
201
- }
202
- function scheduleUpdate() {
203
- if (session) updateScheduler.schedule();
204
- }
205
- function onGeometryChange() {
206
- if (!session) return;
207
- geometryDirty = true;
208
- scheduleUpdate();
209
- }
210
- function stopDragging() {
211
- const stoppedSession = session;
212
- if (!stoppedSession) return;
213
- stoppedSession.view?.removeEventListener("pointermove", onPointerMove);
214
- stoppedSession.view?.removeEventListener("pointerup", onPointerEnd);
215
- stoppedSession.view?.removeEventListener("pointercancel", onPointerEnd);
216
- stoppedSession.view?.removeEventListener("resize", onGeometryChange);
217
- stoppedSession.view?.removeEventListener("scroll", onGeometryChange, true);
218
- updateScheduler.cancel();
219
- geometryDirty = false;
220
- pendingPointer = void 0;
221
- session = void 0;
222
- }
223
- function onPointerMove(event) {
224
- if (!isCurrentPointer(event)) return;
225
- pendingPointer = {
172
+ function refreshGeometry(currentSession) {
173
+ const rect = currentSession.element.getBoundingClientRect();
174
+ if (!isGeometryValid(rect)) return false;
175
+ currentSession.geometryValid = true;
176
+ currentSession.rect = rect;
177
+ return true;
178
+ }
179
+ function applyPointer(event, currentSession) {
180
+ updateFromPointer({
226
181
  clientX: event.clientX,
227
182
  clientY: event.clientY
228
- };
229
- scheduleUpdate();
230
- }
231
- function onPointerEnd(event) {
232
- if (!isCurrentPointer(event)) return;
233
- if (event.type === "pointerup") flushScheduledUpdate();
234
- stopDragging();
183
+ }, currentSession.rect);
235
184
  }
185
+ const pointerSession = createPointerSession({
186
+ onStart(event, currentSession) {
187
+ if (currentSession.geometryValid) applyPointer(event, currentSession);
188
+ },
189
+ onUpdate: applyPointer,
190
+ refreshGeometry
191
+ });
236
192
  function onPointerDown(event) {
237
- if (readonly() || event.button !== 0 || event.isPrimary === false) return;
238
- const el = target.value;
239
- if (!el) return;
240
- event.preventDefault();
241
- (focusTarget?.value ?? el).focus();
242
- stopDragging();
243
- const nextSession = {
244
- element: el,
245
- pointerId: getPointerId(event),
246
- rect: el.getBoundingClientRect(),
247
- view: el.ownerDocument.defaultView
248
- };
249
- session = nextSession;
250
- geometryDirty = !isGeometryValid(nextSession.rect);
251
- if (!geometryDirty) updateFromPointer({
252
- clientX: event.clientX,
253
- clientY: event.clientY
254
- }, nextSession.rect);
255
- if (session !== nextSession) return;
256
- nextSession.view?.addEventListener("pointermove", onPointerMove);
257
- nextSession.view?.addEventListener("pointerup", onPointerEnd);
258
- nextSession.view?.addEventListener("pointercancel", onPointerEnd);
259
- nextSession.view?.addEventListener("resize", onGeometryChange);
260
- nextSession.view?.addEventListener("scroll", onGeometryChange, true);
261
- }
262
- onBeforeUnmount(stopDragging);
193
+ return pointerSession.start(event, () => {
194
+ if (readonly()) return;
195
+ const element = target.value;
196
+ if (!element) return;
197
+ event.preventDefault();
198
+ (focusTarget?.value ?? element).focus();
199
+ const rect = element.getBoundingClientRect();
200
+ const geometryValid = isGeometryValid(rect);
201
+ return {
202
+ geometryDirty: !geometryValid,
203
+ state: {
204
+ element,
205
+ geometryValid,
206
+ rect
207
+ },
208
+ target: element
209
+ };
210
+ });
211
+ }
212
+ onBeforeUnmount(pointerSession.stop);
263
213
  return { onPointerDown };
264
214
  }
265
215
  //#endregion
@@ -0,0 +1,251 @@
1
+ @layer ropav.components {
2
+ .rp-combobox[data-v-b9882cdc] {
3
+ --_rp-combobox-height: var(--rp-size-control-md);
4
+ --_rp-combobox-padding-x: calc(var(--rp-size-control-md) / 3);
5
+ --_rp-combobox-font-size: var(--rp-font-size-md);
6
+ --_rp-combobox-option-min-height: calc(var(--rp-size-control-md) - var(--rp-spacing-4));
7
+ --_rp-combobox-option-padding-y: var(--rp-spacing-1);
8
+ --_rp-combobox-radius: var(--rp-radius-sm);
9
+ --_rp-combobox-invalid-border: var(--rp-color-red-filled);
10
+ --_rp-combobox-invalid-ring: color-mix(in srgb, var(--rp-color-red-filled) 32%, transparent);
11
+ --_rp-combobox-option-highlighted-bg: var(--rp-color-default-hover);
12
+ position: relative;
13
+ display: inline-flex;
14
+ align-items: center;
15
+ box-sizing: border-box;
16
+ min-width: 180px;
17
+ height: var(--_rp-combobox-height);
18
+ padding: 0 var(--_rp-combobox-padding-x);
19
+ gap: var(--rp-spacing-2);
20
+ font-family: var(--rp-font-family);
21
+ font-size: var(--_rp-combobox-font-size);
22
+ font-weight: var(--rp-font-weight-normal);
23
+ line-height: 1;
24
+ background-color: var(--rp-color-control-bg);
25
+ border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
26
+ border-radius: var(--_rp-combobox-radius);
27
+ cursor: text;
28
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
29
+ }
30
+ .rp-combobox[data-v-b9882cdc]:hover:not(.rp-combobox--disabled):not(.rp-combobox--invalid) {
31
+ border-color: var(--rp-color-control-border-hover);
32
+ }
33
+ .rp-combobox[data-v-b9882cdc]:focus-within:not(.rp-combobox--disabled):not(.rp-combobox--invalid), .rp-combobox--open[data-v-b9882cdc]:not(.rp-combobox--disabled):not(.rp-combobox--invalid) {
34
+ border-color: var(--rp-color-control-border-focus);
35
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
36
+ }
37
+ .rp-combobox__native[data-v-b9882cdc] {
38
+ position: absolute;
39
+ width: 1px;
40
+ height: 1px;
41
+ padding: 0;
42
+ margin: -1px;
43
+ overflow: hidden;
44
+ clip: rect(0, 0, 0, 0);
45
+ white-space: nowrap;
46
+ border-width: 0;
47
+ }
48
+ .rp-combobox--size-xs[data-v-b9882cdc] {
49
+ --_rp-combobox-height: var(--rp-size-control-xs);
50
+ --_rp-combobox-padding-x: calc(var(--rp-size-control-xs) / 3);
51
+ --_rp-combobox-font-size: var(--rp-font-size-xs);
52
+ --_rp-combobox-option-min-height: calc(var(--rp-size-control-xs) - var(--rp-spacing-2));
53
+ --_rp-combobox-option-padding-y: calc(var(--rp-spacing-1) / 2);
54
+ }
55
+ .rp-combobox--size-sm[data-v-b9882cdc] {
56
+ --_rp-combobox-height: var(--rp-size-control-sm);
57
+ --_rp-combobox-padding-x: calc(var(--rp-size-control-sm) / 3);
58
+ --_rp-combobox-font-size: var(--rp-font-size-sm);
59
+ --_rp-combobox-option-min-height: calc(var(--rp-size-control-sm) - var(--rp-spacing-3));
60
+ --_rp-combobox-option-padding-y: var(--rp-spacing-1);
61
+ }
62
+ .rp-combobox--size-md[data-v-b9882cdc] {
63
+ --_rp-combobox-height: var(--rp-size-control-md);
64
+ --_rp-combobox-padding-x: calc(var(--rp-size-control-md) / 3);
65
+ --_rp-combobox-font-size: var(--rp-font-size-md);
66
+ --_rp-combobox-option-min-height: calc(var(--rp-size-control-md) - var(--rp-spacing-4));
67
+ --_rp-combobox-option-padding-y: var(--rp-spacing-1);
68
+ }
69
+ .rp-combobox--size-lg[data-v-b9882cdc] {
70
+ --_rp-combobox-height: var(--rp-size-control-lg);
71
+ --_rp-combobox-padding-x: calc(var(--rp-size-control-lg) / 3);
72
+ --_rp-combobox-font-size: var(--rp-font-size-lg);
73
+ --_rp-combobox-option-min-height: calc(var(--rp-size-control-lg) - var(--rp-spacing-5));
74
+ --_rp-combobox-option-padding-y: calc(var(--rp-spacing-3) / 2);
75
+ }
76
+ .rp-combobox--size-xl[data-v-b9882cdc] {
77
+ --_rp-combobox-height: var(--rp-size-control-xl);
78
+ --_rp-combobox-padding-x: calc(var(--rp-size-control-xl) / 3);
79
+ --_rp-combobox-font-size: var(--rp-font-size-xl);
80
+ --_rp-combobox-option-min-height: calc(var(--rp-size-control-xl) - var(--rp-spacing-6));
81
+ --_rp-combobox-option-padding-y: var(--rp-spacing-2);
82
+ }
83
+ .rp-combobox--radius-xs[data-v-b9882cdc] {
84
+ --_rp-combobox-radius: var(--rp-radius-xs);
85
+ }
86
+ .rp-combobox--radius-sm[data-v-b9882cdc] {
87
+ --_rp-combobox-radius: var(--rp-radius-sm);
88
+ }
89
+ .rp-combobox--radius-md[data-v-b9882cdc] {
90
+ --_rp-combobox-radius: var(--rp-radius-md);
91
+ }
92
+ .rp-combobox--radius-lg[data-v-b9882cdc] {
93
+ --_rp-combobox-radius: var(--rp-radius-lg);
94
+ }
95
+ .rp-combobox--radius-xl[data-v-b9882cdc] {
96
+ --_rp-combobox-radius: var(--rp-radius-xl);
97
+ }
98
+ html.dark .rp-combobox[data-v-b9882cdc], [data-rp-color-scheme=dark] .rp-combobox[data-v-b9882cdc] {
99
+ --_rp-combobox-invalid-border: var(--rp-color-red-light-color);
100
+ --_rp-combobox-invalid-ring: color-mix(
101
+ in srgb,
102
+ var(--rp-color-red-light-color) 32%,
103
+ transparent
104
+ );
105
+ }
106
+ .rp-combobox--disabled[data-v-b9882cdc] {
107
+ opacity: var(--rp-opacity-disabled);
108
+ cursor: not-allowed;
109
+ }
110
+ .rp-combobox--invalid[data-v-b9882cdc] {
111
+ border-color: var(--_rp-combobox-invalid-border);
112
+ }
113
+ .rp-combobox--invalid[data-v-b9882cdc]:focus-within, .rp-combobox--open.rp-combobox--invalid[data-v-b9882cdc] {
114
+ border-color: var(--_rp-combobox-invalid-border);
115
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-combobox-invalid-ring);
116
+ }
117
+ .rp-combobox__input[data-v-b9882cdc] {
118
+ box-sizing: border-box;
119
+ flex: 1;
120
+ width: 100%;
121
+ height: 100%;
122
+ min-width: 0;
123
+ padding: 0;
124
+ border: none;
125
+ outline: none;
126
+ background: transparent;
127
+ font: inherit;
128
+ color: var(--rp-color-control-fg);
129
+ line-height: 1;
130
+ }
131
+ .rp-combobox__input[data-v-b9882cdc]::placeholder {
132
+ color: var(--rp-color-control-placeholder);
133
+ }
134
+ .rp-combobox__input[data-v-b9882cdc]:disabled {
135
+ cursor: not-allowed;
136
+ }
137
+ .rp-combobox__indicator[data-v-b9882cdc] {
138
+ display: inline-flex;
139
+ align-items: center;
140
+ width: 1em;
141
+ height: 1em;
142
+ flex-shrink: 0;
143
+ }
144
+ .rp-combobox__indicator svg[data-v-b9882cdc] {
145
+ width: 100%;
146
+ height: 100%;
147
+ }
148
+ .rp-combobox__indicator[data-v-b9882cdc] {
149
+ position: relative;
150
+ color: var(--rp-color-control-icon);
151
+ transform: translateX(var(--rp-spacing-1));
152
+ }
153
+ .rp-combobox__toggle[data-v-b9882cdc], .rp-combobox__clear[data-v-b9882cdc] {
154
+ padding: 0;
155
+ font: inherit;
156
+ background: none;
157
+ border: none;
158
+ cursor: pointer;
159
+ display: inline-flex;
160
+ align-items: center;
161
+ width: 1em;
162
+ height: 1em;
163
+ flex-shrink: 0;
164
+ }
165
+ .rp-combobox__toggle svg[data-v-b9882cdc], .rp-combobox__clear svg[data-v-b9882cdc] {
166
+ width: 100%;
167
+ height: 100%;
168
+ }
169
+ .rp-combobox__toggle[data-v-b9882cdc], .rp-combobox__clear[data-v-b9882cdc] {
170
+ color: var(--rp-color-control-icon);
171
+ transition: color var(--rp-transition-fast), opacity var(--rp-transition-fast);
172
+ }
173
+ .rp-combobox__toggle[data-v-b9882cdc]:hover, .rp-combobox__clear[data-v-b9882cdc]:hover {
174
+ color: var(--rp-color-control-fg);
175
+ }
176
+ .rp-combobox__toggle[data-v-b9882cdc]:disabled {
177
+ cursor: not-allowed;
178
+ }
179
+ .rp-combobox__clear[data-v-b9882cdc] {
180
+ position: absolute;
181
+ inset: 0;
182
+ z-index: 1;
183
+ background-color: var(--rp-color-control-bg);
184
+ opacity: 0;
185
+ pointer-events: none;
186
+ }
187
+ .rp-combobox:hover .rp-combobox__clear[data-v-b9882cdc] {
188
+ opacity: 1;
189
+ pointer-events: auto;
190
+ }
191
+ .rp-combobox:hover .rp-combobox__clear + .rp-combobox__toggle[data-v-b9882cdc] {
192
+ opacity: 0;
193
+ }
194
+ .rp-combobox__dropdown[data-v-b9882cdc] {
195
+ position: absolute;
196
+ width: calc(100% + var(--rp-border-width-thin) * 2);
197
+ z-index: 100;
198
+ background-color: var(--rp-color-default);
199
+ border: var(--rp-border-width-thin) solid var(--rp-color-default-border);
200
+ border-radius: var(--_rp-combobox-radius);
201
+ box-shadow: var(--rp-shadow-md);
202
+ padding: var(--rp-spacing-1) 0;
203
+ max-height: 240px;
204
+ padding: var(--rp-spacing-1);
205
+ }
206
+ .rp-combobox__dropdown[data-v-b9882cdc] .rp-scroll-area__viewport {
207
+ scroll-padding-block: var(--rp-spacing-1);
208
+ }
209
+ .rp-combobox__option[data-v-b9882cdc] {
210
+ display: flex;
211
+ align-items: center;
212
+ min-height: var(--_rp-combobox-option-min-height);
213
+ padding: var(--_rp-combobox-option-padding-y) var(--_rp-combobox-padding-x);
214
+ border-radius: var(--_rp-combobox-radius);
215
+ font-size: var(--_rp-combobox-font-size);
216
+ cursor: pointer;
217
+ color: var(--rp-color-control-fg);
218
+ transition: color var(--rp-transition-fast);
219
+ }
220
+ .rp-combobox__option--highlighted[data-v-b9882cdc] {
221
+ background-color: var(--_rp-combobox-option-highlighted-bg);
222
+ }
223
+ .rp-combobox__option--selected[data-v-b9882cdc] {
224
+ color: var(--rp-primary-color-light-color);
225
+ }
226
+ .rp-combobox__option--disabled[data-v-b9882cdc] {
227
+ color: var(--rp-color-disabled-color);
228
+ cursor: not-allowed;
229
+ }
230
+ .rp-combobox__empty[data-v-b9882cdc] {
231
+ display: flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ padding: var(--rp-spacing-4);
235
+ color: var(--rp-color-dimmed);
236
+ font-size: var(--_rp-combobox-font-size);
237
+ }
238
+ .rp-combobox-dropdown-enter-active[data-v-b9882cdc],
239
+ .rp-combobox-dropdown-leave-active[data-v-b9882cdc] {
240
+ transition: opacity var(--rp-transition-fast), transform var(--rp-transition-fast);
241
+ }
242
+ .rp-combobox-dropdown-enter-from[data-v-b9882cdc],
243
+ .rp-combobox-dropdown-leave-to[data-v-b9882cdc] {
244
+ opacity: 0;
245
+ transform: translateY(calc(-1 * var(--rp-spacing-1)));
246
+ }
247
+ .rp-combobox__dropdown[data-side=top].rp-combobox-dropdown-enter-from[data-v-b9882cdc],
248
+ .rp-combobox__dropdown[data-side=top].rp-combobox-dropdown-leave-to[data-v-b9882cdc] {
249
+ transform: translateY(var(--rp-spacing-1));
250
+ }
251
+ }