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
package/dist/slider.js CHANGED
@@ -11,8 +11,8 @@ import { o as splitCompatibilityAttributes, t as composeEventHandlers } from "./
11
11
  import { n as mergeAriaIdRefs } from "./aria.js";
12
12
  import { t as useControlState } from "./useControlState.js";
13
13
  import { t as toCssLength } from "./css.js";
14
- import { n as isMatchingPointer, t as getPointerId } from "./pointer.js";
15
14
  import { t as createRafScheduler } from "./rafScheduler.js";
15
+ import { t as createPointerSession } from "./pointerSession.js";
16
16
  import { t as getFloatingOffsetStyle } from "./floatingOffset.js";
17
17
  import { n as resolveTooltipColorStyleWithContrast, r as useDelayedOpen, t as tooltip_default } from "./tooltip.js";
18
18
  import { applyVShow, child, computed, createComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, next, nextTick, on, onBeforeUnmount, onMounted, ref, renderEffect, setClass, setDynamicProps, setInsertionState, setProp, setStyle, setText, template, toDisplayString, toRef, txt, unref, useId, useSlots, watch } from "vue";
@@ -122,9 +122,7 @@ function useSliderPointerPreview(options) {
122
122
  const dragging = ref(false);
123
123
  const previewAvailable = ref(false);
124
124
  const previewValue = ref(options.initialValue);
125
- let dragView = null;
126
- let dragPointerId;
127
- let dragTrack = null;
125
+ let disposing = false;
128
126
  let pendingPreview;
129
127
  const previewScheduler = createRafScheduler(applyScheduledPreview, () => pendingPreview?.track.ownerDocument.defaultView);
130
128
  function updateFromPointer(pointer, track) {
@@ -158,43 +156,36 @@ function useSliderPointerPreview(options) {
158
156
  previewScheduler.cancel();
159
157
  pendingPreview = void 0;
160
158
  }
161
- function removeDragListeners() {
162
- dragView?.removeEventListener("pointermove", onWindowPointerMove);
163
- dragView?.removeEventListener("pointerup", onPointerEnd);
164
- dragView?.removeEventListener("pointercancel", onPointerEnd);
165
- dragView = null;
166
- dragPointerId = void 0;
167
- dragTrack = null;
168
- }
159
+ const pointerSession = createPointerSession({
160
+ endUpdate: "event",
161
+ onStart(event, track) {
162
+ cancelScheduledPreview();
163
+ dragging.value = true;
164
+ updateFromPointer(event, track);
165
+ },
166
+ onStop() {
167
+ dragging.value = false;
168
+ if (!disposing) options.onStateChange();
169
+ },
170
+ onUpdate(event, track) {
171
+ if (updateFromPointer(event, track) && event.type === "pointermove") options.onStateChange();
172
+ }
173
+ });
169
174
  function onPointerMove(event) {
170
- if (dragging.value && !isMatchingPointer(event, dragPointerId)) return;
175
+ if (dragging.value) return;
171
176
  const track = event.currentTarget;
172
177
  if (track) schedulePreview(event, track);
173
178
  }
174
- function onWindowPointerMove(event) {
175
- if (!isMatchingPointer(event, dragPointerId)) return;
176
- if (dragTrack) schedulePreview(event, dragTrack);
177
- }
178
- function onPointerEnd(event) {
179
- if (!isMatchingPointer(event, dragPointerId)) return;
180
- cancelScheduledPreview();
181
- if (dragTrack) updateFromPointer(event, dragTrack);
182
- dragging.value = false;
183
- removeDragListeners();
184
- options.onStateChange();
185
- }
186
179
  function onPointerDown(event) {
187
- if (options.disabled() || event.button !== 0 || event.isPrimary === false) return false;
188
- removeDragListeners();
189
- dragging.value = true;
190
- dragPointerId = getPointerId(event);
191
- dragTrack = event.currentTarget;
192
- if (dragTrack) updateFromPointer(event, dragTrack);
193
- dragView = dragTrack?.ownerDocument.defaultView ?? null;
194
- dragView?.addEventListener("pointermove", onWindowPointerMove);
195
- dragView?.addEventListener("pointerup", onPointerEnd);
196
- dragView?.addEventListener("pointercancel", onPointerEnd);
197
- return true;
180
+ return pointerSession.start(event, () => {
181
+ if (options.disabled()) return;
182
+ const track = event.currentTarget;
183
+ if (!track) return;
184
+ return {
185
+ state: track,
186
+ target: track
187
+ };
188
+ });
198
189
  }
199
190
  function onTrackEnter(event) {
200
191
  if (!options.enabled()) return;
@@ -207,7 +198,8 @@ function useSliderPointerPreview(options) {
207
198
  if (!dragging.value && options.enabled()) cancelScheduledPreview();
208
199
  }
209
200
  onBeforeUnmount(() => {
210
- removeDragListeners();
201
+ disposing = true;
202
+ pointerSession.stop();
211
203
  cancelScheduledPreview();
212
204
  });
213
205
  return {
@@ -1240,113 +1232,62 @@ function getRangeSliderPointerValue(pointer, geometry, bounds) {
1240
1232
  //#endregion
1241
1233
  //#region src/components/slider/useRangeSliderPointer.ts
1242
1234
  function useRangeSliderPointer(options) {
1243
- let session;
1244
- let pendingPointerEvent;
1245
- let geometryDirty = false;
1246
- function refreshGeometry() {
1247
- const currentSession = session;
1248
- if (!currentSession) return false;
1249
- if (!geometryDirty) return true;
1235
+ function refreshGeometry(currentSession) {
1250
1236
  const geometry = options.getPointerGeometry(currentSession.track);
1251
1237
  if (geometry === void 0) return false;
1252
- geometryDirty = false;
1253
1238
  currentSession.geometry = geometry;
1254
1239
  return true;
1255
1240
  }
1256
- function applyScheduledUpdate() {
1257
- if (!refreshGeometry()) return;
1258
- const event = pendingPointerEvent;
1259
- pendingPointerEvent = void 0;
1260
- if (event && isCurrentPointer(event)) updateFromPointer(event);
1261
- }
1262
- const updateScheduler = createRafScheduler(applyScheduledUpdate, () => session?.view);
1263
- function flushScheduledUpdate() {
1264
- updateScheduler.cancel();
1265
- applyScheduledUpdate();
1266
- }
1267
- function scheduleUpdate() {
1268
- if (session) updateScheduler.schedule();
1269
- }
1270
- function onGeometryChange() {
1271
- if (!session) return;
1272
- geometryDirty = true;
1273
- scheduleUpdate();
1274
- }
1275
- function stopDragging() {
1276
- const stoppedSession = session;
1277
- if (!stoppedSession) return;
1278
- stoppedSession.view?.removeEventListener("pointermove", onPointerMove);
1279
- stoppedSession.view?.removeEventListener("pointerup", onPointerEnd);
1280
- stoppedSession.view?.removeEventListener("pointercancel", onPointerEnd);
1281
- stoppedSession.view?.removeEventListener("resize", onGeometryChange);
1282
- stoppedSession.view?.removeEventListener("scroll", onGeometryChange, true);
1283
- updateScheduler.cancel();
1284
- pendingPointerEvent = void 0;
1285
- geometryDirty = false;
1286
- session = void 0;
1287
- options.endDrag(stoppedSession.thumb);
1288
- }
1289
- function switchDraggingThumb(nextThumb) {
1290
- const currentSession = session;
1291
- if (!currentSession || currentSession.thumb === nextThumb) return;
1241
+ function switchDraggingThumb(currentSession, nextThumb) {
1242
+ if (currentSession.thumb === nextThumb) return;
1292
1243
  const previousThumb = currentSession.thumb;
1293
1244
  currentSession.thumb = nextThumb;
1294
1245
  options.transferDrag(previousThumb, nextThumb);
1295
1246
  options.setActiveThumb(nextThumb);
1296
1247
  options.transferFocusedThumb(currentSession.track, previousThumb, nextThumb);
1297
1248
  }
1298
- function updateFromPointer(event) {
1299
- const currentSession = session;
1300
- if (!currentSession) return;
1249
+ function updateFromPointer(event, currentSession) {
1301
1250
  const value = options.getPointerValue(event, currentSession.geometry);
1302
1251
  if (value == null) return;
1303
- switchDraggingThumb(options.updateThumb(currentSession.thumb, value, currentSession.anchorValue));
1304
- }
1305
- function isCurrentPointer(event) {
1306
- return isMatchingPointer(event, session?.pointerId);
1307
- }
1308
- function onPointerMove(event) {
1309
- if (!isCurrentPointer(event)) return;
1310
- if (!session) return;
1311
- pendingPointerEvent = event;
1312
- scheduleUpdate();
1313
- }
1314
- function onPointerEnd(event) {
1315
- if (!isCurrentPointer(event)) return;
1316
- if (event.type === "pointerup") flushScheduledUpdate();
1317
- stopDragging();
1318
- }
1252
+ switchDraggingThumb(currentSession, options.updateThumb(currentSession.thumb, value, currentSession.anchorValue));
1253
+ }
1254
+ const pointerSession = createPointerSession({
1255
+ onStart(event, currentSession) {
1256
+ event.preventDefault();
1257
+ options.setActiveThumb(currentSession.thumb);
1258
+ options.focusThumb(currentSession.track, currentSession.thumb);
1259
+ options.startDrag(currentSession.thumb);
1260
+ switchDraggingThumb(currentSession, options.updateThumb(currentSession.thumb, currentSession.initialValue, currentSession.anchorValue));
1261
+ },
1262
+ onStop(currentSession) {
1263
+ options.endDrag(currentSession.thumb);
1264
+ },
1265
+ onUpdate: updateFromPointer,
1266
+ refreshGeometry
1267
+ });
1319
1268
  function onTrackPointerDown(event) {
1320
- if (options.disabled() || event.button !== 0 || event.isPrimary === false) return;
1321
- const track = event.currentTarget;
1322
- if (!track) return;
1323
- const geometry = options.getPointerGeometry(track);
1324
- if (geometry === void 0) return;
1325
- const pointerValue = options.getPointerValue(event, geometry);
1326
- if (pointerValue == null) return;
1327
- const thumb = options.getThumb(event, pointerValue);
1328
- event.preventDefault();
1329
- stopDragging();
1330
- options.setActiveThumb(thumb);
1331
- options.focusThumb(track, thumb);
1332
- session = {
1333
- view: track.ownerDocument.defaultView,
1334
- track,
1335
- geometry,
1336
- thumb,
1337
- anchorValue: options.getAnchorValue(thumb),
1338
- pointerId: getPointerId(event)
1339
- };
1340
- options.startDrag(thumb);
1341
- switchDraggingThumb(options.updateThumb(thumb, pointerValue, session.anchorValue));
1342
- const view = session?.view;
1343
- view?.addEventListener("pointermove", onPointerMove);
1344
- view?.addEventListener("pointerup", onPointerEnd);
1345
- view?.addEventListener("pointercancel", onPointerEnd);
1346
- view?.addEventListener("resize", onGeometryChange);
1347
- view?.addEventListener("scroll", onGeometryChange, true);
1269
+ return pointerSession.start(event, () => {
1270
+ if (options.disabled()) return;
1271
+ const track = event.currentTarget;
1272
+ if (!track) return;
1273
+ const geometry = options.getPointerGeometry(track);
1274
+ if (geometry === void 0) return;
1275
+ const initialValue = options.getPointerValue(event, geometry);
1276
+ if (initialValue == null) return;
1277
+ const thumb = options.getThumb(event, initialValue);
1278
+ return {
1279
+ state: {
1280
+ anchorValue: options.getAnchorValue(thumb),
1281
+ geometry,
1282
+ initialValue,
1283
+ thumb,
1284
+ track
1285
+ },
1286
+ target: track
1287
+ };
1288
+ });
1348
1289
  }
1349
- onBeforeUnmount(stopDragging);
1290
+ onBeforeUnmount(pointerSession.stop);
1350
1291
  return { onTrackPointerDown };
1351
1292
  }
1352
1293
  //#endregion
@@ -0,0 +1,197 @@
1
+ @layer ropav.components {
2
+ .rp-tags-input[data-v-9fbac28f] {
3
+ --_rp-tags-input-height: var(--rp-size-control-md);
4
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-md) / 3);
5
+ --_rp-tags-input-font-size: var(--rp-font-size-md);
6
+ --_rp-tags-input-radius: var(--rp-radius-sm);
7
+ --_rp-tags-input-invalid-border: var(--rp-color-red-outline);
8
+ --_rp-tags-input-invalid-ring: color-mix(in srgb, var(--rp-color-red-outline) 32%, transparent);
9
+ position: relative;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ box-sizing: border-box;
13
+ min-width: 180px;
14
+ min-height: var(--_rp-tags-input-height);
15
+ padding: var(--rp-spacing-1) var(--_rp-tags-input-padding-x);
16
+ gap: var(--rp-spacing-2);
17
+ font-family: var(--rp-font-family);
18
+ font-size: var(--_rp-tags-input-font-size);
19
+ font-weight: var(--rp-font-weight-normal);
20
+ line-height: 1;
21
+ background-color: var(--rp-color-control-bg);
22
+ border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
23
+ border-radius: var(--_rp-tags-input-radius);
24
+ cursor: text;
25
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
26
+ }
27
+ .rp-tags-input[data-v-9fbac28f]:hover:not(.rp-tags-input--disabled):not(.rp-tags-input--invalid) {
28
+ border-color: var(--rp-color-control-border-hover);
29
+ }
30
+ .rp-tags-input[data-v-9fbac28f]:focus-within:not(.rp-tags-input--disabled):not(.rp-tags-input--invalid) {
31
+ border-color: var(--rp-color-control-border-focus);
32
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
33
+ }
34
+ .rp-tags-input__native[data-v-9fbac28f] {
35
+ position: absolute;
36
+ width: 1px;
37
+ height: 1px;
38
+ padding: 0;
39
+ margin: -1px;
40
+ overflow: hidden;
41
+ clip: rect(0, 0, 0, 0);
42
+ white-space: nowrap;
43
+ border-width: 0;
44
+ }
45
+ .rp-tags-input--size-xs[data-v-9fbac28f] {
46
+ --_rp-tags-input-height: var(--rp-size-control-xs);
47
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-xs) / 3);
48
+ --_rp-tags-input-font-size: var(--rp-font-size-xs);
49
+ }
50
+ .rp-tags-input--size-sm[data-v-9fbac28f] {
51
+ --_rp-tags-input-height: var(--rp-size-control-sm);
52
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-sm) / 3);
53
+ --_rp-tags-input-font-size: var(--rp-font-size-sm);
54
+ }
55
+ .rp-tags-input--size-md[data-v-9fbac28f] {
56
+ --_rp-tags-input-height: var(--rp-size-control-md);
57
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-md) / 3);
58
+ --_rp-tags-input-font-size: var(--rp-font-size-md);
59
+ }
60
+ .rp-tags-input--size-lg[data-v-9fbac28f] {
61
+ --_rp-tags-input-height: var(--rp-size-control-lg);
62
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-lg) / 3);
63
+ --_rp-tags-input-font-size: var(--rp-font-size-lg);
64
+ }
65
+ .rp-tags-input--size-xl[data-v-9fbac28f] {
66
+ --_rp-tags-input-height: var(--rp-size-control-xl);
67
+ --_rp-tags-input-padding-x: calc(var(--rp-size-control-xl) / 3);
68
+ --_rp-tags-input-font-size: var(--rp-font-size-xl);
69
+ }
70
+ .rp-tags-input--radius-xs[data-v-9fbac28f] {
71
+ --_rp-tags-input-radius: var(--rp-radius-xs);
72
+ }
73
+ .rp-tags-input--radius-sm[data-v-9fbac28f] {
74
+ --_rp-tags-input-radius: var(--rp-radius-sm);
75
+ }
76
+ .rp-tags-input--radius-md[data-v-9fbac28f] {
77
+ --_rp-tags-input-radius: var(--rp-radius-md);
78
+ }
79
+ .rp-tags-input--radius-lg[data-v-9fbac28f] {
80
+ --_rp-tags-input-radius: var(--rp-radius-lg);
81
+ }
82
+ .rp-tags-input--radius-xl[data-v-9fbac28f] {
83
+ --_rp-tags-input-radius: var(--rp-radius-xl);
84
+ }
85
+ .rp-tags-input--disabled[data-v-9fbac28f] {
86
+ opacity: var(--rp-opacity-disabled);
87
+ cursor: not-allowed;
88
+ }
89
+ .rp-tags-input--readonly[data-v-9fbac28f] {
90
+ background-color: var(--rp-color-control-readonly-bg);
91
+ }
92
+ .rp-tags-input--invalid[data-v-9fbac28f] {
93
+ border-color: var(--_rp-tags-input-invalid-border);
94
+ }
95
+ .rp-tags-input--invalid[data-v-9fbac28f]:focus-within:not(.rp-tags-input--disabled) {
96
+ border-color: var(--_rp-tags-input-invalid-border);
97
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-tags-input-invalid-ring);
98
+ }
99
+ .rp-tags-input__tags[data-v-9fbac28f] {
100
+ display: flex;
101
+ flex: 1;
102
+ flex-wrap: wrap;
103
+ align-items: center;
104
+ min-width: 0;
105
+ gap: var(--rp-spacing-1);
106
+ }
107
+ .rp-tags-input__tag[data-v-9fbac28f] {
108
+ display: inline-flex;
109
+ align-items: center;
110
+ box-sizing: border-box;
111
+ max-width: 100%;
112
+ min-height: calc(var(--_rp-tags-input-height) - var(--rp-spacing-3));
113
+ padding-inline: var(--rp-spacing-2) var(--rp-spacing-1);
114
+ gap: var(--rp-spacing-1);
115
+ color: var(--rp-color-control-fg);
116
+ background-color: var(--rp-color-default-hover);
117
+ border-radius: var(--_rp-tags-input-radius);
118
+ }
119
+ .rp-tags-input__tag-label[data-v-9fbac28f] {
120
+ overflow: hidden;
121
+ text-overflow: ellipsis;
122
+ white-space: nowrap;
123
+ }
124
+ .rp-tags-input__tag-remove[data-v-9fbac28f] {
125
+ display: inline-flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+ padding: 0;
129
+ font: inherit;
130
+ background: none;
131
+ border: none;
132
+ cursor: pointer;
133
+ color: inherit;
134
+ opacity: 0.6;
135
+ flex-shrink: 0;
136
+ transition: opacity var(--rp-transition-fast);
137
+ }
138
+ .rp-tags-input__tag-remove[data-v-9fbac28f]:hover {
139
+ opacity: 1;
140
+ }
141
+ .rp-tags-input__tag-remove svg[data-v-9fbac28f] {
142
+ width: 100%;
143
+ height: 100%;
144
+ }
145
+ .rp-tags-input__tag-remove[data-v-9fbac28f] {
146
+ width: 1em;
147
+ height: 1em;
148
+ }
149
+ .rp-tags-input__tag-remove[data-v-9fbac28f]:disabled {
150
+ cursor: not-allowed;
151
+ }
152
+ .rp-tags-input__input[data-v-9fbac28f] {
153
+ box-sizing: border-box;
154
+ flex: 1 0 4rem;
155
+ width: 4rem;
156
+ min-width: 4rem;
157
+ min-height: calc(var(--_rp-tags-input-height) - var(--rp-spacing-2));
158
+ padding: 0;
159
+ border: none;
160
+ outline: none;
161
+ background: transparent;
162
+ font: inherit;
163
+ color: var(--rp-color-control-fg);
164
+ line-height: 1;
165
+ }
166
+ .rp-tags-input__input[data-v-9fbac28f]::placeholder {
167
+ color: var(--rp-color-control-placeholder);
168
+ }
169
+ .rp-tags-input__input[data-v-9fbac28f]:disabled {
170
+ cursor: not-allowed;
171
+ }
172
+ .rp-tags-input__clear[data-v-9fbac28f] {
173
+ padding: 0;
174
+ font: inherit;
175
+ background: none;
176
+ border: none;
177
+ cursor: pointer;
178
+ display: inline-flex;
179
+ align-items: center;
180
+ width: 1em;
181
+ height: 1em;
182
+ flex-shrink: 0;
183
+ }
184
+ .rp-tags-input__clear svg[data-v-9fbac28f] {
185
+ width: 100%;
186
+ height: 100%;
187
+ }
188
+ .rp-tags-input__clear[data-v-9fbac28f] {
189
+ flex-shrink: 0;
190
+ color: var(--rp-color-control-icon);
191
+ transform: translateX(var(--rp-spacing-1));
192
+ transition: color var(--rp-transition-fast);
193
+ }
194
+ .rp-tags-input__clear[data-v-9fbac28f]:hover {
195
+ color: var(--rp-color-control-fg);
196
+ }
197
+ }