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/README.md CHANGED
@@ -142,7 +142,7 @@ Use typed `classNames` and `styles`, documented state attributes, and variables
142
142
 
143
143
  See the [Public Styles API](./docs/public-styles-api.md) and [public token table](./docs/public-tokens.md). Consumers can declare `reset, ropav.tokens, ropav.components, app` to establish their cascade layer order.
144
144
 
145
- For headless Tooltip, HoverCard and custom menu markup, see the
145
+ For headless floating content and custom overlay markup, see the
146
146
  [public floating API](./docs/public-floating-api.md).
147
147
 
148
148
  ## Development
@@ -0,0 +1,136 @@
1
+ import { t as isElement } from "./query.js";
2
+ import { t as createRafScheduler } from "./rafScheduler.js";
3
+ //#region src/utils/dom/ancestry.ts
4
+ function getFrameElement(documentNode) {
5
+ try {
6
+ const frameElement = documentNode.defaultView?.frameElement;
7
+ return isElement(frameElement) ? frameElement : null;
8
+ } catch {
9
+ return null;
10
+ }
11
+ }
12
+ function getComposedParent(node) {
13
+ if (isElement(node) && node.assignedSlot) return node.assignedSlot;
14
+ if (node.parentNode) return node.parentNode;
15
+ if (node.nodeType === 9) return getFrameElement(node);
16
+ const host = "host" in node ? node.host : null;
17
+ return isElement(host) ? host : null;
18
+ }
19
+ function getComposedAncestry(node) {
20
+ const ancestry = [];
21
+ let current = node ?? null;
22
+ while (current) {
23
+ current = getComposedParent(current);
24
+ if (current) ancestry.push(current);
25
+ }
26
+ return ancestry;
27
+ }
28
+ function areNodeListsIdentical(left, right) {
29
+ return left.length === right.length && left.every((node, index) => node === right[index]);
30
+ }
31
+ function readComposedAncestryPaths(nodes) {
32
+ return nodes.map((node) => node ? [node, ...getComposedAncestry(node)] : []);
33
+ }
34
+ function areAncestryPathsIdentical(left, right) {
35
+ return left.length === right.length && left.every((path, index) => areNodeListsIdentical(path, right[index] ?? []));
36
+ }
37
+ function getNodeDocument(node) {
38
+ return node.nodeType === 9 ? node : node.ownerDocument;
39
+ }
40
+ function getMutationObserverConstructor(node) {
41
+ return getNodeDocument(node)?.defaultView?.MutationObserver ?? globalThis.MutationObserver;
42
+ }
43
+ function isShadowRootNode(node) {
44
+ return node.nodeType === 11 && "host" in node && isElement(node.host);
45
+ }
46
+ function hasDisconnectedAncestry(nodes) {
47
+ return nodes.some((node) => node != null && [node, ...getComposedAncestry(node)].some((ancestor) => !ancestor.isConnected));
48
+ }
49
+ function observeComposedAncestry(getNodes, onChange, options = {}) {
50
+ let paths = readComposedAncestryPaths(getNodes());
51
+ let mutationObservers = [];
52
+ let slotRoots = [];
53
+ let disposed = false;
54
+ let disconnectNotified = false;
55
+ const reconnectScheduler = createRafScheduler(check, getView);
56
+ function getView() {
57
+ for (const node of getNodes()) {
58
+ const view = node ? getNodeDocument(node)?.defaultView : null;
59
+ if (view) return view;
60
+ }
61
+ return null;
62
+ }
63
+ function scheduleReconnectCheck(nodes) {
64
+ if (!hasDisconnectedAncestry(nodes)) return;
65
+ if (!getView()?.requestAnimationFrame) return;
66
+ reconnectScheduler.schedule();
67
+ }
68
+ function disconnectTargets() {
69
+ for (const observer of mutationObservers) observer.disconnect();
70
+ mutationObservers = [];
71
+ for (const root of slotRoots) root.removeEventListener("slotchange", check);
72
+ slotRoots = [];
73
+ }
74
+ function observeTargets(nodes, nextPaths) {
75
+ const observedNodes = new Set(nextPaths.flat());
76
+ const nextSlotRoots = /* @__PURE__ */ new Set();
77
+ const observersByConstructor = /* @__PURE__ */ new Map();
78
+ for (const node of observedNodes) {
79
+ if (isElement(node) && node.shadowRoot) nextSlotRoots.add(node.shadowRoot);
80
+ if (isShadowRootNode(node)) nextSlotRoots.add(node);
81
+ const MutationObserverConstructor = getMutationObserverConstructor(node);
82
+ if (!MutationObserverConstructor) continue;
83
+ let observer = observersByConstructor.get(MutationObserverConstructor);
84
+ if (!observer) {
85
+ observer = new MutationObserverConstructor(check);
86
+ observersByConstructor.set(MutationObserverConstructor, observer);
87
+ }
88
+ if (isElement(node)) observer.observe(node, {
89
+ childList: true,
90
+ attributes: true,
91
+ attributeFilter: ["slot", "name"]
92
+ });
93
+ else observer.observe(node, { childList: true });
94
+ }
95
+ mutationObservers = [...observersByConstructor.values()];
96
+ slotRoots = [...nextSlotRoots];
97
+ for (const root of slotRoots) root.addEventListener("slotchange", check);
98
+ scheduleReconnectCheck(nodes);
99
+ }
100
+ function rebind(nodes, nextPaths) {
101
+ disconnectTargets();
102
+ paths = nextPaths;
103
+ observeTargets(nodes, paths);
104
+ }
105
+ function check() {
106
+ if (disposed) return;
107
+ const nodes = getNodes();
108
+ if (options.deferWhileDisconnected && hasDisconnectedAncestry(nodes)) {
109
+ if (options.notifyOnDisconnect && !disconnectNotified) onChange();
110
+ disconnectNotified = true;
111
+ scheduleReconnectCheck(nodes);
112
+ return;
113
+ }
114
+ const shouldNotifyReconnect = disconnectNotified && options.notifyOnDisconnect;
115
+ disconnectNotified = false;
116
+ reconnectScheduler.cancel();
117
+ const nextPaths = readComposedAncestryPaths(nodes);
118
+ if (areAncestryPathsIdentical(paths, nextPaths)) {
119
+ if (shouldNotifyReconnect) onChange();
120
+ return;
121
+ }
122
+ rebind(nodes, nextPaths);
123
+ onChange();
124
+ }
125
+ const initialNodes = getNodes();
126
+ paths = readComposedAncestryPaths(initialNodes);
127
+ observeTargets(initialNodes, paths);
128
+ return () => {
129
+ if (disposed) return;
130
+ disposed = true;
131
+ reconnectScheduler.cancel();
132
+ disconnectTargets();
133
+ };
134
+ }
135
+ //#endregion
136
+ export { observeComposedAncestry as n, getComposedAncestry as t };
@@ -0,0 +1,173 @@
1
+ @layer ropav.components {
2
+ .rp-calendar[data-v-d3ae1d38] {
3
+ --_rp-calendar-day-size: var(--rp-size-control-sm);
4
+ --_rp-calendar-font-size: var(--rp-font-size-sm);
5
+ --_rp-calendar-gap: var(--rp-spacing-1);
6
+ --_rp-calendar-radius: var(--rp-radius-sm);
7
+ box-sizing: border-box;
8
+ display: inline-grid;
9
+ width: max-content;
10
+ max-width: 100%;
11
+ gap: var(--rp-spacing-2);
12
+ color: var(--rp-color-control-fg);
13
+ font-family: var(--rp-font-family);
14
+ font-size: var(--_rp-calendar-font-size);
15
+ line-height: 1;
16
+ vertical-align: middle;
17
+ }
18
+ .rp-calendar--size-xs[data-v-d3ae1d38] {
19
+ --_rp-calendar-day-size: var(--rp-size-control-xs);
20
+ --_rp-calendar-font-size: var(--rp-font-size-xs);
21
+ --_rp-calendar-gap: calc(var(--rp-spacing-1) / 2);
22
+ }
23
+ .rp-calendar--size-sm[data-v-d3ae1d38] {
24
+ --_rp-calendar-day-size: var(--rp-size-control-sm);
25
+ --_rp-calendar-font-size: var(--rp-font-size-sm);
26
+ --_rp-calendar-gap: var(--rp-spacing-1);
27
+ }
28
+ .rp-calendar--size-md[data-v-d3ae1d38] {
29
+ --_rp-calendar-day-size: var(--rp-size-control-sm);
30
+ --_rp-calendar-font-size: var(--rp-font-size-sm);
31
+ --_rp-calendar-gap: var(--rp-spacing-1);
32
+ }
33
+ .rp-calendar--size-lg[data-v-d3ae1d38] {
34
+ --_rp-calendar-day-size: var(--rp-size-control-md);
35
+ --_rp-calendar-font-size: var(--rp-font-size-md);
36
+ --_rp-calendar-gap: var(--rp-spacing-1);
37
+ }
38
+ .rp-calendar--size-xl[data-v-d3ae1d38] {
39
+ --_rp-calendar-day-size: var(--rp-size-control-lg);
40
+ --_rp-calendar-font-size: var(--rp-font-size-lg);
41
+ --_rp-calendar-gap: var(--rp-spacing-2);
42
+ }
43
+ .rp-calendar--radius-none[data-v-d3ae1d38] {
44
+ --_rp-calendar-radius: 0;
45
+ }
46
+ .rp-calendar--radius-xs[data-v-d3ae1d38] {
47
+ --_rp-calendar-radius: var(--rp-radius-xs);
48
+ }
49
+ .rp-calendar--radius-sm[data-v-d3ae1d38] {
50
+ --_rp-calendar-radius: var(--rp-radius-sm);
51
+ }
52
+ .rp-calendar--radius-md[data-v-d3ae1d38] {
53
+ --_rp-calendar-radius: var(--rp-radius-md);
54
+ }
55
+ .rp-calendar--radius-lg[data-v-d3ae1d38] {
56
+ --_rp-calendar-radius: var(--rp-radius-lg);
57
+ }
58
+ .rp-calendar--radius-xl[data-v-d3ae1d38] {
59
+ --_rp-calendar-radius: var(--rp-radius-xl);
60
+ }
61
+ .rp-calendar--radius-full[data-v-d3ae1d38] {
62
+ --_rp-calendar-radius: var(--rp-radius-full);
63
+ }
64
+ .rp-calendar__header[data-v-d3ae1d38] {
65
+ display: grid;
66
+ grid-template-columns: var(--_rp-calendar-day-size) 1fr var(--_rp-calendar-day-size);
67
+ align-items: center;
68
+ gap: var(--_rp-calendar-gap);
69
+ }
70
+ .rp-calendar__month-label[data-v-d3ae1d38] {
71
+ overflow: hidden;
72
+ font-weight: var(--rp-font-weight-semibold);
73
+ line-height: var(--_rp-calendar-day-size);
74
+ text-align: center;
75
+ text-overflow: ellipsis;
76
+ white-space: nowrap;
77
+ }
78
+ .rp-calendar__control[data-v-d3ae1d38], .rp-calendar__day[data-v-d3ae1d38] {
79
+ padding: 0;
80
+ font: inherit;
81
+ background: none;
82
+ border: none;
83
+ cursor: pointer;
84
+ display: inline-flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ box-sizing: border-box;
88
+ width: var(--_rp-calendar-day-size);
89
+ height: var(--_rp-calendar-day-size);
90
+ border-radius: var(--_rp-calendar-radius);
91
+ color: inherit;
92
+ transition: color var(--rp-transition-fast), background-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
93
+ }
94
+ .rp-calendar__control[data-v-d3ae1d38]:focus-visible, .rp-calendar__day[data-v-d3ae1d38]:focus-visible {
95
+ outline: none;
96
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
97
+ }
98
+ @media (forced-colors: active) {
99
+ .rp-calendar__control[data-v-d3ae1d38]:focus-visible, .rp-calendar__day[data-v-d3ae1d38]:focus-visible {
100
+ outline: var(--rp-border-width-medium) solid Highlight;
101
+ outline-offset: 2px;
102
+ box-shadow: none;
103
+ }
104
+ }
105
+ .rp-calendar__control[data-v-d3ae1d38] {
106
+ color: var(--rp-color-control-icon);
107
+ }
108
+ .rp-calendar__control[data-v-d3ae1d38]:hover:not(:disabled) {
109
+ color: var(--rp-color-control-fg);
110
+ background-color: var(--rp-color-default-hover);
111
+ }
112
+ .rp-calendar__control[data-v-d3ae1d38]:disabled {
113
+ cursor: not-allowed;
114
+ opacity: var(--rp-opacity-disabled);
115
+ }
116
+ .rp-calendar__control[data-v-d3ae1d38] > svg {
117
+ width: 1em;
118
+ height: 1em;
119
+ }
120
+ .rp-calendar__grid[data-v-d3ae1d38] {
121
+ border-spacing: var(--_rp-calendar-gap);
122
+ margin: calc(-1 * var(--_rp-calendar-gap));
123
+ table-layout: fixed;
124
+ }
125
+ .rp-calendar__weekday[data-v-d3ae1d38], .rp-calendar__day-cell[data-v-d3ae1d38] {
126
+ box-sizing: border-box;
127
+ width: var(--_rp-calendar-day-size);
128
+ height: var(--_rp-calendar-day-size);
129
+ padding: 0;
130
+ text-align: center;
131
+ }
132
+ .rp-calendar__weekday[data-v-d3ae1d38] {
133
+ color: var(--rp-color-dimmed);
134
+ font-size: 0.85em;
135
+ font-weight: var(--rp-font-weight-medium);
136
+ }
137
+ .rp-calendar__day[data-v-d3ae1d38] {
138
+ position: relative;
139
+ font: inherit;
140
+ }
141
+ .rp-calendar__day[data-v-d3ae1d38]:hover:not(:disabled):not(.rp-calendar__day--selected) {
142
+ background-color: var(--rp-color-default-hover);
143
+ }
144
+ .rp-calendar__day--outside[data-v-d3ae1d38] {
145
+ color: var(--rp-color-dimmed);
146
+ }
147
+ .rp-calendar__day--today[data-v-d3ae1d38]::after {
148
+ position: absolute;
149
+ inset-inline-start: 50%;
150
+ bottom: max(2px, var(--_rp-calendar-day-size) * 0.1);
151
+ width: 4px;
152
+ height: 4px;
153
+ border-radius: 50%;
154
+ background-color: currentColor;
155
+ content: "";
156
+ transform: translateX(-50%);
157
+ }
158
+ .rp-calendar__day--selected[data-v-d3ae1d38] {
159
+ color: var(--rp-color-control-selected-fg);
160
+ background-color: var(--rp-color-control-selected-bg);
161
+ }
162
+ .rp-calendar__day--selected[data-v-d3ae1d38]:hover:not(:disabled) {
163
+ background-color: var(--rp-primary-color-filled-hover);
164
+ }
165
+ .rp-calendar__day[data-v-d3ae1d38]:disabled {
166
+ cursor: not-allowed;
167
+ opacity: var(--rp-opacity-disabled);
168
+ }
169
+ .rp-calendar--disabled[data-v-d3ae1d38] {
170
+ opacity: var(--rp-opacity-disabled);
171
+ cursor: not-allowed;
172
+ }
173
+ }