ropav 0.1.6 → 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.
- package/README.md +7 -1
- package/dist/accordion.css +17 -17
- package/dist/accordion.js +123 -155
- package/dist/alert.css +18 -18
- package/dist/alert.js +10 -11
- package/dist/ancestry.js +136 -0
- package/dist/aria.js +14 -0
- package/dist/aspect-ratio.js +1 -1
- package/dist/attributes.js +9 -0
- package/dist/attributes2.js +29 -0
- package/dist/avatar.css +19 -19
- package/dist/avatar.js +9 -17
- package/dist/badge.css +16 -16
- package/dist/badge.js +5 -5
- package/dist/button-group.js +1 -1
- package/dist/button-link.js +4 -3
- package/dist/button.js +4 -3
- package/dist/button.scss_vue_type_style_index_0_src_true_lang.js +1 -1
- package/dist/calendar.css +173 -0
- package/dist/calendar.js +714 -0
- package/dist/calendar2.js +37 -0
- package/dist/card.js +1 -1
- package/dist/checkbox.css +32 -32
- package/dist/checkbox.js +22 -28
- package/dist/chevron-left.js +12 -0
- package/dist/collapse.css +6 -6
- package/dist/collapse.js +7 -6
- package/dist/collectionNavigation.js +2 -99
- package/dist/color-input.css +19 -19
- package/dist/color-input.js +14 -13
- package/dist/color-picker.css +40 -40
- package/dist/color-picker.js +247 -276
- package/dist/color-picker2.js +1 -9
- package/dist/color-swatch.css +4 -4
- package/dist/color-swatch.js +6 -8
- package/dist/color.js +5 -10
- package/dist/combobox.css +251 -0
- package/dist/combobox.js +410 -0
- package/dist/componentColors.js +125 -84
- package/dist/componentRef.js +26 -0
- package/dist/components/accordion/accordionContext.d.ts +3 -0
- package/dist/components/accordion/accordionModel.d.ts +14 -0
- package/dist/components/accordion/index.d.ts +2 -1
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/accordion/types.d.ts +1 -2
- package/dist/components/accordion/useAccordion.d.ts +2 -2
- package/dist/components/accordion/useAccordionItem.d.ts +2 -0
- package/dist/components/calendar/calendar.d.ts +30 -0
- package/dist/components/calendar/calendarBehavior.d.ts +49 -0
- package/dist/components/calendar/index.d.ts +3 -0
- package/dist/components/calendar/index.js +3 -0
- package/dist/components/calendar/types.d.ts +53 -0
- package/dist/components/calendar/useCalendar.d.ts +24 -0
- package/dist/components/checkbox/useCheckbox.d.ts +1 -2
- package/dist/components/color-picker/index.js +2 -2
- package/dist/components/color-picker/types.d.ts +2 -2
- package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
- package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
- package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
- package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
- package/dist/components/combobox/combobox.d.ts +29 -0
- package/dist/components/combobox/comboboxModel.d.ts +4 -0
- package/dist/components/combobox/index.d.ts +3 -0
- package/dist/components/combobox/index.js +2 -0
- package/dist/components/combobox/types.d.ts +43 -0
- package/dist/components/combobox/useCombobox.d.ts +45 -0
- package/dist/components/date-picker/date-picker.d.ts +33 -0
- package/dist/components/date-picker/datePickerModel.d.ts +10 -0
- package/dist/components/date-picker/index.d.ts +4 -0
- package/dist/components/date-picker/index.js +2 -0
- package/dist/components/date-picker/types.d.ts +57 -0
- package/dist/components/date-picker/useDatePicker.d.ts +29 -0
- package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
- package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +1 -5
- package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
- package/dist/components/dialog/useDialogRootState.d.ts +19 -0
- package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
- package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
- package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
- package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
- package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
- package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +17 -30
- package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
- package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
- package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
- package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
- package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +114 -0
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
- package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
- package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +35 -0
- package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +24 -0
- package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
- package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
- package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
- package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
- package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +28 -0
- package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
- package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
- package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
- package/dist/components/dropzone/dropzone.d.ts +31 -0
- package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
- package/dist/components/dropzone/index.d.ts +3 -0
- package/dist/components/dropzone/index.js +2 -0
- package/dist/components/dropzone/types.d.ts +56 -0
- package/dist/components/dropzone/useDropzone.d.ts +25 -0
- package/dist/components/file-input/file-input.d.ts +29 -0
- package/dist/components/file-input/index.d.ts +3 -0
- package/dist/components/file-input/index.js +2 -0
- package/dist/components/file-input/types.d.ts +37 -0
- package/dist/components/file-input/useFileInput.d.ts +15 -0
- package/dist/components/floating/index.js +2 -2
- package/dist/components/floating/useFloatingPosition.d.ts +1 -14
- package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
- package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
- package/dist/components/hover-card/hover-card.d.ts +25 -0
- package/dist/components/hover-card/index.d.ts +3 -0
- package/dist/components/hover-card/index.js +2 -0
- package/dist/components/hover-card/types.d.ts +45 -0
- package/dist/components/hover-card/useHoverCard.d.ts +22 -0
- package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
- package/dist/components/multi-select/index.d.ts +3 -0
- package/dist/components/multi-select/index.js +2 -0
- package/dist/components/multi-select/multi-select.d.ts +30 -0
- package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
- package/dist/components/multi-select/types.d.ts +49 -0
- package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
- package/dist/components/number-input/numberInputModel.d.ts +15 -0
- package/dist/components/number-input/useNumberInput.d.ts +3 -19
- package/dist/components/pagination/index.d.ts +1 -1
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/pagination/paginationModel.d.ts +4 -0
- package/dist/components/pagination/types.d.ts +15 -0
- package/dist/components/pagination/usePagination.d.ts +3 -19
- package/dist/components/popover/usePopoverBindings.d.ts +13 -0
- package/dist/components/progress/progressModel.d.ts +8 -0
- package/dist/components/progress/useProgress.d.ts +0 -6
- package/dist/components/radio/useRadio.d.ts +1 -2
- package/dist/components/scroll-area/scroll-area.d.ts +1 -1
- package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
- package/dist/components/scroll-area/useScrollArea.d.ts +70 -53
- package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -17
- package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
- package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
- package/dist/components/scroll-area/useScrollAreaPointer.d.ts +11 -9
- package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
- package/dist/components/segmented-control/index.d.ts +3 -0
- package/dist/components/segmented-control/index.js +2 -0
- package/dist/components/segmented-control/segmented-control.d.ts +26 -0
- package/dist/components/segmented-control/types.d.ts +47 -0
- package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
- package/dist/components/select/useSelect.d.ts +31 -19
- package/dist/components/slider/rangeSliderModel.d.ts +41 -0
- package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +0 -1
- package/dist/components/slider/useRangeSlider.d.ts +9 -17
- package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
- package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
- package/dist/components/slider/useSlider.d.ts +7 -13
- package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
- package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
- package/dist/components/slider/useSliderValueState.d.ts +33 -0
- package/dist/components/tags-input/index.d.ts +3 -0
- package/dist/components/tags-input/index.js +2 -0
- package/dist/components/tags-input/tags-input.d.ts +27 -0
- package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
- package/dist/components/tags-input/types.d.ts +37 -0
- package/dist/components/tags-input/useTagsInput.d.ts +23 -0
- package/dist/components/teleport-provider/index.js +1 -1
- package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
- package/dist/components/toast/useToastLifecycle.d.ts +19 -0
- package/dist/components/tooltip/useTooltip.d.ts +1 -2
- package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
- package/dist/css.js +12 -0
- package/dist/date-picker.css +49 -0
- package/dist/date-picker.js +809 -0
- package/dist/dialog.js +215 -218
- package/dist/direction.js +6 -0
- package/dist/dropdown-menu.css +21 -3
- package/dist/dropdown-menu.js +1626 -1185
- package/dist/dropzone.css +135 -0
- package/dist/dropzone.js +431 -0
- package/dist/events.js +59 -0
- package/dist/field.css +8 -8
- package/dist/field.js +13 -25
- package/dist/file-input.css +135 -0
- package/dist/file-input.js +198 -0
- package/dist/floatingOffset.js +11 -0
- package/dist/focus-trap.js +7 -5
- package/dist/focusNavigation.js +37 -0
- package/dist/hover-card.css +80 -0
- package/dist/hover-card.js +402 -0
- package/dist/icon-button.css +8 -8
- package/dist/icon-button.js +7 -6
- package/dist/index.d.ts +9 -0
- package/dist/index.js +20 -9
- package/dist/input.css +24 -24
- package/dist/input.js +19 -31
- package/dist/interactive.js +18 -0
- package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
- package/dist/modal.js +2 -2
- package/dist/multi-select.css +316 -0
- package/dist/multi-select.js +481 -0
- package/dist/nativeChoice.js +169 -0
- package/dist/number-input.css +18 -18
- package/dist/number-input.js +44 -44
- package/dist/number.js +22 -0
- package/dist/overlay.js +3 -2
- package/dist/pagination.css +28 -28
- package/dist/pagination.js +66 -73
- package/dist/pointerSession.js +130 -0
- package/dist/popover.css +55 -37
- package/dist/popover.js +75 -101
- package/dist/progress.js +10 -13
- package/dist/query.js +40 -0
- package/dist/radio.css +18 -18
- package/dist/radio.js +30 -36
- package/dist/rafScheduler.js +34 -0
- package/dist/scroll-area.css +28 -28
- package/dist/scroll-area.js +540 -554
- package/dist/segmented-control.css +176 -0
- package/dist/segmented-control.js +382 -0
- package/dist/select.css +50 -48
- package/dist/select.js +131 -289
- package/dist/slider.css +191 -191
- package/dist/slider.js +720 -706
- package/dist/styles-api.d.ts +0 -1
- package/dist/styles-api.js +1 -4
- package/dist/switch.css +17 -17
- package/dist/switch.js +14 -15
- package/dist/tabs.css +43 -43
- package/dist/tabs.js +29 -56
- package/dist/tags-input.css +197 -0
- package/dist/tags-input.js +380 -0
- package/dist/text.js +17 -0
- package/dist/textarea.css +26 -26
- package/dist/textarea.js +21 -32
- package/dist/toast.css +26 -26
- package/dist/toast.js +141 -118
- package/dist/tooltip.css +12 -12
- package/dist/tooltip.js +64 -63
- package/dist/useCollapse.js +8 -11
- package/dist/useControlState.js +3 -6
- package/dist/useEditableOptionList.js +216 -0
- package/dist/useFlatOptionCollection.js +134 -0
- package/dist/useFloatingPosition.js +14 -40
- package/dist/useFloatingTargetLifecycle.js +127 -0
- package/dist/useFormControl.js +1 -0
- package/dist/useHoverDisclosure.js +561 -0
- package/dist/useNativeChoiceTransaction.js +46 -0
- package/dist/useNativeFileSelection.js +86 -0
- package/dist/useOverlayZIndex.js +246 -19
- package/dist/useTeleportTarget.js +3 -14
- package/dist/useTypeahead.js +94 -0
- package/dist/utils/aria.d.ts +3 -0
- package/dist/utils/attributes.d.ts +2 -0
- package/dist/utils/bem.d.ts +3 -0
- package/dist/utils/collectionNavigation.d.ts +2 -0
- package/dist/utils/color.d.ts +7 -0
- package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
- package/dist/utils/componentColors.d.ts +7 -0
- package/dist/utils/css.d.ts +3 -0
- package/dist/utils/date.d.ts +13 -0
- package/dist/utils/dateAvailability.d.ts +7 -0
- package/dist/utils/dom/ancestry.d.ts +8 -0
- package/dist/utils/dom/attributes.d.ts +16 -0
- package/dist/utils/dom/componentRef.d.ts +4 -0
- package/dist/utils/dom/direction.d.ts +2 -0
- package/dist/utils/dom/events.d.ts +5 -0
- package/dist/utils/dom/files.d.ts +3 -0
- package/dist/utils/dom/focusNavigation.d.ts +7 -0
- package/dist/utils/dom/interactive.d.ts +2 -0
- package/dist/utils/dom/nativeChoice.d.ts +17 -0
- package/dist/utils/dom/pointerSession.d.ts +20 -0
- package/dist/utils/dom/query.d.ts +4 -0
- package/dist/utils/dom/scroll.d.ts +24 -0
- package/dist/utils/floatingOffset.d.ts +10 -0
- package/dist/utils/geometry.d.ts +14 -0
- package/dist/utils/indexPath.d.ts +6 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/optionFilter.d.ts +5 -0
- package/dist/utils/rafScheduler.d.ts +4 -0
- package/dist/utils/text.d.ts +2 -0
- package/docs/code-architecture.md +118 -0
- package/docs/public-floating-api.md +13 -9
- package/docs/public-styles-api.md +25 -12
- package/package.json +51 -14
- package/src/styles/_mixins.scss +26 -0
- package/src/styles/styles-manifest.json +1 -2
- package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
- package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
- package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -36
- package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
- package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
- package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
- package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
- package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -30
- package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
- package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -38
- package/dist/components/select/useSelectNativeControl.d.ts +0 -9
- package/dist/components/select/useSelectNativeValue.d.ts +0 -9
- package/dist/floating.js +0 -415
- /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
- /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
- /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
- /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
- /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
- /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
package/dist/select.js
CHANGED
|
@@ -1,126 +1,18 @@
|
|
|
1
1
|
import './select.css';
|
|
2
|
-
import { t as
|
|
3
|
-
import { n as
|
|
2
|
+
import { t as useStylesApi } from "./styles-api.js";
|
|
3
|
+
import { n as toPresenceAttribute } from "./attributes.js";
|
|
4
4
|
import { t as bem } from "./bem.js";
|
|
5
5
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
6
6
|
import { t as x_default } from "./x.js";
|
|
7
|
-
import { i as useFormControl } from "./useFormControl.js";
|
|
8
7
|
import { t as useControlState } from "./useControlState.js";
|
|
9
|
-
import {
|
|
8
|
+
import { t as resolveHTMLElementRef } from "./componentRef.js";
|
|
9
|
+
import { i as isNodeWithinElement } from "./events.js";
|
|
10
|
+
import { t as useFloatingPosition } from "./useFloatingPosition.js";
|
|
11
|
+
import { n as useClickOutside, r as chevrons_up_down_default, t as useFlatOptionCollection } from "./useFlatOptionCollection.js";
|
|
10
12
|
import { t as scroll_area_default } from "./scroll-area.js";
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function render(_ctx) {
|
|
15
|
-
return t0$1();
|
|
16
|
-
}
|
|
17
|
-
var chevrons_up_down_default = markRaw(defineVaporComponent({
|
|
18
|
-
name: "lucide-chevrons-up-down",
|
|
19
|
-
render
|
|
20
|
-
}));
|
|
21
|
-
//#endregion
|
|
22
|
-
//#region src/internal/composables/useClickOutside.ts
|
|
23
|
-
function isEventInside(event, element) {
|
|
24
|
-
if (event.composedPath().includes(element)) return true;
|
|
25
|
-
const eventTarget = event.target;
|
|
26
|
-
const NodeConstructor = element.ownerDocument.defaultView?.Node;
|
|
27
|
-
return Boolean(eventTarget && NodeConstructor && eventTarget instanceof NodeConstructor && element.contains(eventTarget));
|
|
28
|
-
}
|
|
29
|
-
function useClickOutside(target, active, callback) {
|
|
30
|
-
const targets = Array.isArray(target) ? target : [target];
|
|
31
|
-
const listeningDocuments = /* @__PURE__ */ new Set();
|
|
32
|
-
let stopWatch;
|
|
33
|
-
function handler(event) {
|
|
34
|
-
if (!targets.some((current) => {
|
|
35
|
-
const element = current.value;
|
|
36
|
-
return element ? isEventInside(event, element) : false;
|
|
37
|
-
})) callback(event);
|
|
38
|
-
}
|
|
39
|
-
function detachListeners() {
|
|
40
|
-
for (const document of listeningDocuments) document.removeEventListener("click", handler, true);
|
|
41
|
-
listeningDocuments.clear();
|
|
42
|
-
}
|
|
43
|
-
function syncListeners() {
|
|
44
|
-
detachListeners();
|
|
45
|
-
if (!active.value) return;
|
|
46
|
-
for (const current of targets) {
|
|
47
|
-
const document = current.value?.ownerDocument;
|
|
48
|
-
if (!document || listeningDocuments.has(document)) continue;
|
|
49
|
-
document.addEventListener("click", handler, true);
|
|
50
|
-
listeningDocuments.add(document);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
onMounted(() => {
|
|
54
|
-
stopWatch = watch([active, ...targets], syncListeners, { immediate: true });
|
|
55
|
-
});
|
|
56
|
-
onBeforeUnmount(() => {
|
|
57
|
-
stopWatch?.();
|
|
58
|
-
detachListeners();
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
//#endregion
|
|
62
|
-
//#region src/internal/composables/useCollectionNavigation.ts
|
|
63
|
-
function useCollectionNavigation(options) {
|
|
64
|
-
const activeKey = shallowRef(null);
|
|
65
|
-
const isDisabled = options.isDisabled ?? (() => false);
|
|
66
|
-
const loop = options.loop ?? true;
|
|
67
|
-
const activeIndex = computed(() => {
|
|
68
|
-
if (activeKey.value == null) return -1;
|
|
69
|
-
return options.items().findIndex((item) => options.getKey(item) === activeKey.value && !isDisabled(item));
|
|
70
|
-
});
|
|
71
|
-
const enabledIndexes = computed(() => getEnabledIndexes(options.items(), isDisabled));
|
|
72
|
-
function resetActive() {
|
|
73
|
-
activeKey.value = null;
|
|
74
|
-
}
|
|
75
|
-
function setActiveIndex(index) {
|
|
76
|
-
const item = options.items()[index];
|
|
77
|
-
if (!item || isDisabled(item)) return false;
|
|
78
|
-
activeKey.value = options.getKey(item);
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
function focusSelected() {
|
|
82
|
-
const items = options.items();
|
|
83
|
-
const selectedIndex = options.isSelected ? items.findIndex((item) => options.isSelected(item) && !isDisabled(item)) : -1;
|
|
84
|
-
if (selectedIndex >= 0) setActiveIndex(selectedIndex);
|
|
85
|
-
else focusFirst();
|
|
86
|
-
}
|
|
87
|
-
function focusFirst() {
|
|
88
|
-
const first = enabledIndexes.value[0];
|
|
89
|
-
if (first === void 0) resetActive();
|
|
90
|
-
else setActiveIndex(first);
|
|
91
|
-
}
|
|
92
|
-
function focusLast() {
|
|
93
|
-
const indexes = enabledIndexes.value;
|
|
94
|
-
const last = indexes[indexes.length - 1];
|
|
95
|
-
if (last === void 0) resetActive();
|
|
96
|
-
else setActiveIndex(last);
|
|
97
|
-
}
|
|
98
|
-
function moveFocus(direction) {
|
|
99
|
-
if (activeIndex.value < 0) {
|
|
100
|
-
if (direction === 1) focusFirst();
|
|
101
|
-
else focusLast();
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const nextIndex = getNextEnabledIndex(options.items(), activeIndex.value, direction, isDisabled, loop);
|
|
105
|
-
if (nextIndex === void 0) resetActive();
|
|
106
|
-
else setActiveIndex(nextIndex);
|
|
107
|
-
}
|
|
108
|
-
watch(activeIndex, (index) => {
|
|
109
|
-
if (activeKey.value != null && index < 0) resetActive();
|
|
110
|
-
}, { flush: "sync" });
|
|
111
|
-
return {
|
|
112
|
-
activeKey,
|
|
113
|
-
activeIndex,
|
|
114
|
-
enabledIndexes,
|
|
115
|
-
resetActive,
|
|
116
|
-
setActiveIndex,
|
|
117
|
-
focusSelected,
|
|
118
|
-
focusFirst,
|
|
119
|
-
focusLast,
|
|
120
|
-
moveFocus
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
//#endregion
|
|
13
|
+
import { i as useHiddenSelectChoiceTransaction, n as createSingleNativeChoiceAdapter } from "./nativeChoice.js";
|
|
14
|
+
import { t as useTypeahead } from "./useTypeahead.js";
|
|
15
|
+
import { VaporTransition, child, computed, createComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, next, nextTick, on, ref, renderEffect, setDynamicProps, setInsertionState, setProp, setTemplateRefBinding, setText, setValue, template, toDisplayString, txt, unref, useId, withModifiers } from "vue";
|
|
124
16
|
//#region src/components/select/useSelect.ts
|
|
125
17
|
function hasSelectValue(value) {
|
|
126
18
|
return value != null && value !== "";
|
|
@@ -129,36 +21,72 @@ function getSelectDisplayLabel(options, value) {
|
|
|
129
21
|
if (!hasSelectValue(value)) return "";
|
|
130
22
|
return options?.find((option) => option.value === value)?.label ?? "";
|
|
131
23
|
}
|
|
132
|
-
function
|
|
133
|
-
|
|
24
|
+
function useSelectTransaction(props, emitUpdate, triggerRef) {
|
|
25
|
+
const transaction = useHiddenSelectChoiceTransaction({
|
|
26
|
+
value: {
|
|
27
|
+
modelValue: () => props.modelValue,
|
|
28
|
+
defaultValue: () => props.defaultValue ?? null,
|
|
29
|
+
onChange: emitUpdate
|
|
30
|
+
},
|
|
31
|
+
native: {
|
|
32
|
+
adapter: createSingleNativeChoiceAdapter({
|
|
33
|
+
emptyValue: null,
|
|
34
|
+
options: () => props.options
|
|
35
|
+
}),
|
|
36
|
+
attributes: () => props.inputAttrs,
|
|
37
|
+
className: "rp-select__native",
|
|
38
|
+
focusVisible: () => triggerRef.value?.focus(),
|
|
39
|
+
validationMessage: () => props.validationMessage
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
nativeSelectRef: transaction.nativeSelectRef,
|
|
44
|
+
nativeInputAttrs: transaction.nativeSelectAttrs,
|
|
45
|
+
requestValueUpdate: transaction.requestValueUpdate,
|
|
46
|
+
selectedValue: transaction.value
|
|
47
|
+
};
|
|
134
48
|
}
|
|
135
|
-
function useSelect(props, emitUpdate
|
|
49
|
+
function useSelect(props, emitUpdate) {
|
|
136
50
|
const selectRef = ref(null);
|
|
51
|
+
const triggerRef = ref(null);
|
|
52
|
+
const dropdownRef = ref(null);
|
|
137
53
|
const isOpen = ref(false);
|
|
54
|
+
const transaction = useSelectTransaction(props, emitUpdate, triggerRef);
|
|
55
|
+
const value = transaction.selectedValue;
|
|
138
56
|
const selectId = useId();
|
|
139
57
|
const popupId = `${selectId}-popup`;
|
|
140
58
|
const listboxId = `${popupId}-viewport`;
|
|
141
59
|
const control = useControlState(props);
|
|
142
60
|
const visibleOptions = computed(() => props.options ?? []);
|
|
143
|
-
const
|
|
144
|
-
const navigation = useCollectionNavigation({
|
|
61
|
+
const optionCollection = useFlatOptionCollection({
|
|
145
62
|
items: () => visibleOptions.value,
|
|
63
|
+
baseId: selectId,
|
|
64
|
+
isOpen: () => isOpen.value,
|
|
65
|
+
collectionRef: selectRef,
|
|
146
66
|
getKey: (item) => item.value,
|
|
147
67
|
isDisabled: (item) => Boolean(item.disabled),
|
|
148
68
|
isSelected: (item) => item.value === value.value
|
|
149
69
|
});
|
|
150
|
-
const
|
|
70
|
+
const renderedOptions = optionCollection.options;
|
|
71
|
+
const focusedIndex = optionCollection.activeIndex;
|
|
151
72
|
const selectedIndex = computed(() => visibleOptions.value.findIndex((option) => option.value === value.value && !option.disabled));
|
|
152
|
-
const activeDescendantId =
|
|
73
|
+
const activeDescendantId = optionCollection.activeDescendantId;
|
|
74
|
+
const floating = useFloatingPosition({
|
|
75
|
+
reference: triggerRef,
|
|
76
|
+
floating: dropdownRef,
|
|
77
|
+
open: isOpen,
|
|
78
|
+
placement: "bottom-start"
|
|
79
|
+
});
|
|
80
|
+
const placementSide = computed(() => floating.actualPlacement.value.split("-")[0]);
|
|
153
81
|
const typeahead = useTypeahead({
|
|
154
82
|
items: () => visibleOptions.value,
|
|
155
83
|
activeIndex: () => isOpen.value ? focusedIndex.value : selectedIndex.value,
|
|
156
84
|
getKey: (item) => item.value,
|
|
157
85
|
getTextValue: (item) => item.label,
|
|
158
86
|
isDisabled: (item) => Boolean(item.disabled),
|
|
159
|
-
onMatch(item
|
|
160
|
-
if (isOpen.value)
|
|
161
|
-
else if (item.value !== value.value)
|
|
87
|
+
onMatch(item) {
|
|
88
|
+
if (isOpen.value) optionCollection.activate(item);
|
|
89
|
+
else if (item.value !== value.value) transaction.requestValueUpdate(item.value);
|
|
162
90
|
}
|
|
163
91
|
});
|
|
164
92
|
const rootClass = computed(() => bem("rp-select", {
|
|
@@ -171,6 +99,11 @@ function useSelect(props, emitUpdate, getValue = () => props.modelValue ?? null,
|
|
|
171
99
|
const hasValue = computed(() => hasSelectValue(value.value));
|
|
172
100
|
const displayLabel = computed(() => getSelectDisplayLabel(props.options, value.value));
|
|
173
101
|
const canClear = computed(() => Boolean(props.clearable && hasValue.value && !control.disabled));
|
|
102
|
+
function setDropdownElement(elementRef) {
|
|
103
|
+
resolveHTMLElementRef(elementRef, popupId, (resolved) => {
|
|
104
|
+
dropdownRef.value = resolved;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
174
107
|
function focusTrigger() {
|
|
175
108
|
nextTick(() => triggerRef.value?.focus());
|
|
176
109
|
}
|
|
@@ -178,11 +111,11 @@ function useSelect(props, emitUpdate, getValue = () => props.modelValue ?? null,
|
|
|
178
111
|
if (control.disabled || isOpen.value) return;
|
|
179
112
|
typeahead.reset();
|
|
180
113
|
isOpen.value = true;
|
|
181
|
-
|
|
114
|
+
optionCollection.activate("selected");
|
|
182
115
|
}
|
|
183
116
|
function close() {
|
|
184
117
|
isOpen.value = false;
|
|
185
|
-
|
|
118
|
+
optionCollection.reset();
|
|
186
119
|
typeahead.reset();
|
|
187
120
|
}
|
|
188
121
|
function toggle() {
|
|
@@ -194,22 +127,21 @@ function useSelect(props, emitUpdate, getValue = () => props.modelValue ?? null,
|
|
|
194
127
|
}
|
|
195
128
|
function selectOption(option) {
|
|
196
129
|
if (option.disabled) return;
|
|
197
|
-
|
|
130
|
+
transaction.requestValueUpdate(option.value);
|
|
198
131
|
close();
|
|
199
132
|
focusTrigger();
|
|
200
133
|
}
|
|
201
134
|
function clearSelection() {
|
|
202
135
|
if (!canClear.value) return;
|
|
203
|
-
|
|
136
|
+
transaction.requestValueUpdate(null);
|
|
204
137
|
close();
|
|
205
138
|
focusTrigger();
|
|
206
139
|
}
|
|
207
|
-
function onOptionMouseenter(option
|
|
208
|
-
|
|
140
|
+
function onOptionMouseenter(option) {
|
|
141
|
+
optionCollection.activate(option);
|
|
209
142
|
}
|
|
210
143
|
function onFocusout(event) {
|
|
211
|
-
|
|
212
|
-
if (nextTarget instanceof Node && selectRef.value?.contains(nextTarget)) return;
|
|
144
|
+
if (isNodeWithinElement(event.relatedTarget, selectRef.value)) return;
|
|
213
145
|
close();
|
|
214
146
|
}
|
|
215
147
|
function selectFocusedOption() {
|
|
@@ -233,25 +165,25 @@ function useSelect(props, emitUpdate, getValue = () => props.modelValue ?? null,
|
|
|
233
165
|
case "ArrowDown":
|
|
234
166
|
e.preventDefault();
|
|
235
167
|
if (!isOpen.value) open();
|
|
236
|
-
else
|
|
168
|
+
else optionCollection.move(1);
|
|
237
169
|
break;
|
|
238
170
|
case "ArrowUp":
|
|
239
171
|
e.preventDefault();
|
|
240
172
|
if (!isOpen.value) {
|
|
241
173
|
open();
|
|
242
|
-
|
|
243
|
-
} else
|
|
174
|
+
optionCollection.activate("last");
|
|
175
|
+
} else optionCollection.move(-1);
|
|
244
176
|
break;
|
|
245
177
|
case "Home":
|
|
246
178
|
if (isOpen.value) {
|
|
247
179
|
e.preventDefault();
|
|
248
|
-
|
|
180
|
+
optionCollection.activate("first");
|
|
249
181
|
}
|
|
250
182
|
break;
|
|
251
183
|
case "End":
|
|
252
184
|
if (isOpen.value) {
|
|
253
185
|
e.preventDefault();
|
|
254
|
-
|
|
186
|
+
optionCollection.activate("last");
|
|
255
187
|
}
|
|
256
188
|
break;
|
|
257
189
|
case "Delete":
|
|
@@ -268,30 +200,31 @@ function useSelect(props, emitUpdate, getValue = () => props.modelValue ?? null,
|
|
|
268
200
|
break;
|
|
269
201
|
}
|
|
270
202
|
}
|
|
271
|
-
watch(focusedIndex, (index) => {
|
|
272
|
-
if (!isOpen.value || index < 0) return;
|
|
273
|
-
nextTick(() => {
|
|
274
|
-
if (!isOpen.value || focusedIndex.value !== index) return;
|
|
275
|
-
selectRef.value?.querySelector(`[id="${selectId}-option-${index}"]`)?.scrollIntoView?.({ block: "nearest" });
|
|
276
|
-
});
|
|
277
|
-
});
|
|
278
203
|
useClickOutside(selectRef, isOpen, close);
|
|
279
204
|
return {
|
|
280
|
-
|
|
281
|
-
|
|
205
|
+
templateRefs: {
|
|
206
|
+
select: selectRef,
|
|
207
|
+
trigger: triggerRef,
|
|
208
|
+
native: transaction.nativeSelectRef
|
|
209
|
+
},
|
|
210
|
+
nativeInputAttrs: transaction.nativeInputAttrs,
|
|
282
211
|
isOpen,
|
|
283
|
-
selectId,
|
|
284
212
|
popupId,
|
|
285
213
|
listboxId,
|
|
286
214
|
control,
|
|
287
215
|
visibleOptions,
|
|
216
|
+
renderedOptions,
|
|
288
217
|
focusedIndex,
|
|
289
218
|
activeDescendantId,
|
|
290
219
|
rootClass,
|
|
220
|
+
floatingStyle: floating.floatingStyle,
|
|
221
|
+
actualPlacement: floating.actualPlacement,
|
|
222
|
+
placementSide,
|
|
291
223
|
hasValue,
|
|
292
224
|
displayLabel,
|
|
293
|
-
value,
|
|
225
|
+
selectedValue: value,
|
|
294
226
|
canClear,
|
|
227
|
+
setDropdownElement,
|
|
295
228
|
toggle,
|
|
296
229
|
selectOption,
|
|
297
230
|
clearSelection,
|
|
@@ -301,108 +234,13 @@ function useSelect(props, emitUpdate, getValue = () => props.modelValue ?? null,
|
|
|
301
234
|
};
|
|
302
235
|
}
|
|
303
236
|
//#endregion
|
|
304
|
-
//#region src/components/select/useSelectNativeValue.ts
|
|
305
|
-
function useSelectNativeValue(props, emitUpdate) {
|
|
306
|
-
const nativeSelectRef = ref(null);
|
|
307
|
-
const controllable = useControllableValue({
|
|
308
|
-
modelValue: () => props.modelValue,
|
|
309
|
-
defaultValue: () => props.defaultValue ?? null,
|
|
310
|
-
onChange: emitUpdate
|
|
311
|
-
});
|
|
312
|
-
function getNativeValue(select) {
|
|
313
|
-
if (select.selectedIndex <= 0) return null;
|
|
314
|
-
return props.options?.[select.selectedIndex - 1]?.value ?? null;
|
|
315
|
-
}
|
|
316
|
-
function syncNativeSelection(value) {
|
|
317
|
-
const select = nativeSelectRef.value;
|
|
318
|
-
if (!select) return;
|
|
319
|
-
select.selectedIndex = (props.options?.findIndex((option) => option.value === value) ?? -1) + 1;
|
|
320
|
-
}
|
|
321
|
-
function syncNativeDefaultSelection() {
|
|
322
|
-
const select = nativeSelectRef.value;
|
|
323
|
-
if (!select) return;
|
|
324
|
-
const optionIndex = props.options?.findIndex((option) => option.value === controllable.initialValue) ?? -1;
|
|
325
|
-
for (const [index, option] of [...select.options].entries()) option.defaultSelected = index === optionIndex + 1;
|
|
326
|
-
}
|
|
327
|
-
function requestValueUpdate(value) {
|
|
328
|
-
const select = nativeSelectRef.value;
|
|
329
|
-
if (!select) {
|
|
330
|
-
controllable.setValue(value);
|
|
331
|
-
return;
|
|
332
|
-
}
|
|
333
|
-
syncNativeSelection(value);
|
|
334
|
-
select.dispatchEvent(new Event("input", {
|
|
335
|
-
bubbles: true,
|
|
336
|
-
cancelable: true
|
|
337
|
-
}));
|
|
338
|
-
select.dispatchEvent(new Event("change", {
|
|
339
|
-
bubbles: true,
|
|
340
|
-
cancelable: true
|
|
341
|
-
}));
|
|
342
|
-
if (controllable.isControlled.value) queueMicrotask(() => syncNativeSelection(controllable.value.value));
|
|
343
|
-
}
|
|
344
|
-
watchEffect(syncNativeDefaultSelection, { flush: "post" });
|
|
345
|
-
watchEffect(() => syncNativeSelection(controllable.value.value), { flush: "post" });
|
|
346
|
-
return {
|
|
347
|
-
nativeSelectRef,
|
|
348
|
-
controllable,
|
|
349
|
-
getNativeValue,
|
|
350
|
-
syncNativeSelection,
|
|
351
|
-
requestValueUpdate
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
//#endregion
|
|
355
|
-
//#region src/components/select/useSelectNativeControl.ts
|
|
356
|
-
function useSelectNativeControl(props, emitUpdate, triggerRef) {
|
|
357
|
-
const nativeValue = useSelectNativeValue(props, emitUpdate);
|
|
358
|
-
const { nativeSelectRef, controllable, getNativeValue, syncNativeSelection } = nativeValue;
|
|
359
|
-
useFormControl({
|
|
360
|
-
elements: () => [nativeSelectRef.value],
|
|
361
|
-
isControlled: () => controllable.isControlled.value,
|
|
362
|
-
validationMessage: () => props.validationMessage,
|
|
363
|
-
readResetValue(elements) {
|
|
364
|
-
controllable.resetValue(getNativeValue(elements[0]));
|
|
365
|
-
},
|
|
366
|
-
syncControlledValue() {
|
|
367
|
-
syncNativeSelection(controllable.value.value);
|
|
368
|
-
}
|
|
369
|
-
});
|
|
370
|
-
const nativeInputAttrs = computed(() => {
|
|
371
|
-
const { class: compatibilityClass, style: compatibilityStyle, onInput: compatibilityOnInput, onChange: compatibilityOnChange, onInvalid: compatibilityOnInvalid, ...attrs } = props.inputAttrs ?? {};
|
|
372
|
-
return {
|
|
373
|
-
...attrs,
|
|
374
|
-
class: ["rp-select__native", compatibilityClass],
|
|
375
|
-
style: compatibilityStyle,
|
|
376
|
-
onInput(event) {
|
|
377
|
-
controllable.setValue(getNativeValue(event.currentTarget));
|
|
378
|
-
compatibilityOnInput?.(event);
|
|
379
|
-
},
|
|
380
|
-
onChange(event) {
|
|
381
|
-
compatibilityOnChange?.(event);
|
|
382
|
-
},
|
|
383
|
-
onInvalid(event) {
|
|
384
|
-
event.preventDefault();
|
|
385
|
-
triggerRef.value?.focus();
|
|
386
|
-
compatibilityOnInvalid?.(event);
|
|
387
|
-
}
|
|
388
|
-
};
|
|
389
|
-
});
|
|
390
|
-
return {
|
|
391
|
-
nativeSelectRef,
|
|
392
|
-
selectedValue: controllable.value,
|
|
393
|
-
nativeInputAttrs,
|
|
394
|
-
requestValueUpdate: nativeValue.requestValueUpdate
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
//#endregion
|
|
398
237
|
//#region src/components/select/select.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
399
|
-
var t0 = template("<option data-v-
|
|
400
|
-
var t1 = template("<button data-v-
|
|
238
|
+
var t0 = template("<option data-v-097d7f90> ");
|
|
239
|
+
var t1 = template("<button data-v-097d7f90></button>");
|
|
401
240
|
var t2 = template("No options", 2);
|
|
402
|
-
var t3 = template("<div data-v-
|
|
403
|
-
var t4 = template("<div data-v-
|
|
404
|
-
var t5 = template("<div data-v-
|
|
405
|
-
delegateEvents("mousedown", "click", "keydown");
|
|
241
|
+
var t3 = template("<div data-v-097d7f90>");
|
|
242
|
+
var t4 = template("<div data-v-097d7f90> ");
|
|
243
|
+
var t5 = template("<div data-v-097d7f90><select data-v-097d7f90><option data-v-097d7f90 value></option></select><div data-v-097d7f90><span data-v-097d7f90> </span><span data-v-097d7f90><span data-v-097d7f90 class=rp-select__arrow aria-hidden=true>", 1);
|
|
406
244
|
//#endregion
|
|
407
245
|
//#region src/components/select/select.vue
|
|
408
246
|
var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
|
|
@@ -448,20 +286,26 @@ var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
448
286
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
449
287
|
const props = __props;
|
|
450
288
|
const emit = __emit;
|
|
451
|
-
const
|
|
452
|
-
const { nativeSelectRef, selectedValue, nativeInputAttrs, requestValueUpdate } = useSelectNativeControl(props, (value) => emit("update:modelValue", value), triggerRef);
|
|
453
|
-
const { selectRef, isOpen, selectId, popupId, listboxId, control, visibleOptions, focusedIndex, activeDescendantId, rootClass, hasValue, displayLabel, canClear, toggle, selectOption, clearSelection, onOptionMouseenter, onFocusout, onTriggerKeydown } = useSelect(props, requestValueUpdate, () => selectedValue.value, triggerRef);
|
|
289
|
+
const { templateRefs, nativeInputAttrs, isOpen, popupId, listboxId, control, visibleOptions, renderedOptions, activeDescendantId, rootClass, floatingStyle, actualPlacement, placementSide, hasValue, displayLabel, canClear, setDropdownElement, toggle, selectOption, clearSelection, onOptionMouseenter, onFocusout, onTriggerKeydown } = useSelect(props, (value) => emit("update:modelValue", value));
|
|
454
290
|
const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
|
|
455
291
|
const rootAttrs = computed(() => getRootAttrs({
|
|
456
292
|
class: rootClass.value,
|
|
457
293
|
onFocusout,
|
|
458
294
|
"data-state": isOpen.value ? "open" : "closed",
|
|
459
|
-
"data-disabled":
|
|
460
|
-
"data-invalid":
|
|
295
|
+
"data-disabled": toPresenceAttribute(control.disabled),
|
|
296
|
+
"data-invalid": toPresenceAttribute(control.invalid)
|
|
297
|
+
}));
|
|
298
|
+
const contentAttrs = computed(() => ({
|
|
299
|
+
...getPartAttrs("content", {
|
|
300
|
+
class: "rp-select__dropdown",
|
|
301
|
+
style: floatingStyle.value
|
|
302
|
+
}),
|
|
303
|
+
"data-placement": actualPlacement.value,
|
|
304
|
+
"data-side": placementSide.value
|
|
461
305
|
}));
|
|
462
306
|
__expose({
|
|
463
|
-
nativeElement:
|
|
464
|
-
focus: () =>
|
|
307
|
+
nativeElement: templateRefs.native,
|
|
308
|
+
focus: () => templateRefs.trigger.value?.focus()
|
|
465
309
|
});
|
|
466
310
|
const _setTemplateRef = createTemplateRefSetter();
|
|
467
311
|
const n26 = t5();
|
|
@@ -495,13 +339,13 @@ var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
495
339
|
});
|
|
496
340
|
return n2;
|
|
497
341
|
}, (option) => option.value, 8);
|
|
498
|
-
_setTemplateRef(n3, nativeSelectRef, null, "nativeSelectRef");
|
|
499
342
|
const x4 = txt(n4);
|
|
500
343
|
renderEffect(() => {
|
|
501
344
|
const _control = unref(control);
|
|
502
345
|
const _getPartAttrs = unref(getPartAttrs);
|
|
503
346
|
const _isOpen = unref(isOpen);
|
|
504
347
|
const _control_disabled = _control.disabled;
|
|
348
|
+
_setTemplateRef(n3, unref(templateRefs).native);
|
|
505
349
|
setDynamicProps(n12, [
|
|
506
350
|
{ id: _control.id },
|
|
507
351
|
_getPartAttrs("trigger", { class: "rp-select__trigger" }),
|
|
@@ -518,8 +362,8 @@ var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
518
362
|
"aria-labelledby": _control.ariaLabelledby,
|
|
519
363
|
"aria-describedby": _control.ariaDescribedby,
|
|
520
364
|
"data-state": _isOpen ? "open" : "closed",
|
|
521
|
-
"data-disabled": unref(
|
|
522
|
-
"data-invalid": unref(
|
|
365
|
+
"data-disabled": unref(toPresenceAttribute)(_control.disabled),
|
|
366
|
+
"data-invalid": unref(toPresenceAttribute)(_control.invalid),
|
|
523
367
|
tabindex: _control_disabled ? -1 : 0
|
|
524
368
|
}
|
|
525
369
|
]);
|
|
@@ -540,19 +384,19 @@ var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
540
384
|
]));
|
|
541
385
|
setInsertionState(n8, null, 0);
|
|
542
386
|
createComponent(unref(x_default));
|
|
543
|
-
n8
|
|
387
|
+
on(n8, "mousedown", withModifiers(() => {}, ["prevent"]));
|
|
544
388
|
on(n8, "click", withModifiers((e) => unref(clearSelection)(e), ["stop"]));
|
|
545
389
|
return n8;
|
|
546
390
|
});
|
|
547
391
|
setInsertionState(n10, null, 0);
|
|
548
392
|
createComponent(unref(chevrons_up_down_default));
|
|
549
|
-
n12
|
|
550
|
-
n12
|
|
551
|
-
|
|
393
|
+
on(n12, "click", (e) => unref(toggle)(e));
|
|
394
|
+
on(n12, "keydown", (e) => unref(onTriggerKeydown)(e));
|
|
395
|
+
setTemplateRefBinding(n12, () => unref(templateRefs).trigger);
|
|
552
396
|
setInsertionState(n26, null, 2);
|
|
553
397
|
createComponent(VaporTransition, { name: "rp-select-dropdown" }, extend(() => {
|
|
554
398
|
return createIf(() => unref(isOpen), () => {
|
|
555
|
-
|
|
399
|
+
const n24 = createComponent(scroll_area_default, { $: [() => contentAttrs.value, {
|
|
556
400
|
id: () => unref(popupId),
|
|
557
401
|
embedded: "",
|
|
558
402
|
type: "auto",
|
|
@@ -571,43 +415,41 @@ var select_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
|
|
|
571
415
|
return t2();
|
|
572
416
|
}, 1);
|
|
573
417
|
return n20;
|
|
574
|
-
}, null, 129), createFor(() => unref(
|
|
418
|
+
}, null, 129), createFor(() => unref(renderedOptions), (_for_item0) => {
|
|
575
419
|
const n23 = t4();
|
|
576
420
|
const x23 = txt(n23);
|
|
577
|
-
n23
|
|
578
|
-
on(n23, "mouseenter", () => unref(onOptionMouseenter)(_for_item0.value
|
|
421
|
+
on(n23, "click", () => unref(selectOption)(_for_item0.value.option));
|
|
422
|
+
on(n23, "mouseenter", () => unref(onOptionMouseenter)(_for_item0.value.option));
|
|
579
423
|
renderEffect(() => {
|
|
580
|
-
const
|
|
581
|
-
const
|
|
582
|
-
const
|
|
583
|
-
const _presence = unref(presence);
|
|
584
|
-
const _focusedIndex = unref(focusedIndex);
|
|
585
|
-
const _option_value = _option.value;
|
|
586
|
-
const _option_disabled = _option.disabled;
|
|
424
|
+
const _optionState = _for_item0.value;
|
|
425
|
+
const _optionState_selected = _optionState.selected;
|
|
426
|
+
const _optionState_disabled = _optionState.disabled;
|
|
587
427
|
setDynamicProps(n23, [{
|
|
588
428
|
role: "option",
|
|
589
|
-
id:
|
|
590
|
-
"aria-selected":
|
|
591
|
-
"aria-disabled":
|
|
592
|
-
"data-selected":
|
|
593
|
-
"data-highlighted":
|
|
594
|
-
"data-disabled":
|
|
429
|
+
id: _optionState.id,
|
|
430
|
+
"aria-selected": _optionState_selected,
|
|
431
|
+
"aria-disabled": _optionState_disabled || void 0,
|
|
432
|
+
"data-selected": unref(toPresenceAttribute)(_optionState.selected),
|
|
433
|
+
"data-highlighted": unref(toPresenceAttribute)(_optionState.active),
|
|
434
|
+
"data-disabled": unref(toPresenceAttribute)(_optionState.disabled)
|
|
595
435
|
}, unref(getPartAttrs)("option", { class: ["rp-select__option", {
|
|
596
|
-
"rp-select__option--selected":
|
|
597
|
-
"rp-select__option--focused":
|
|
598
|
-
"rp-select__option--disabled":
|
|
436
|
+
"rp-select__option--selected": _optionState_selected,
|
|
437
|
+
"rp-select__option--focused": _optionState.active,
|
|
438
|
+
"rp-select__option--disabled": _optionState_disabled
|
|
599
439
|
}] })]);
|
|
600
|
-
setText(x23, toDisplayString(
|
|
440
|
+
setText(x23, toDisplayString(_optionState.option.label));
|
|
601
441
|
});
|
|
602
442
|
return n23;
|
|
603
|
-
}, (
|
|
443
|
+
}, (optionState) => optionState.option.value, 40)];
|
|
604
444
|
}, { _: 8 }));
|
|
445
|
+
setTemplateRefBinding(n24, () => setDropdownElement, _setTemplateRef, void 0, "setDropdownElement");
|
|
446
|
+
return n24;
|
|
605
447
|
}, null, 129);
|
|
606
448
|
}, { _: 8 }));
|
|
607
|
-
|
|
449
|
+
setTemplateRefBinding(n26, () => unref(templateRefs).select);
|
|
608
450
|
return n26;
|
|
609
451
|
}
|
|
610
|
-
}), [["__scopeId", "data-v-
|
|
452
|
+
}), [["__scopeId", "data-v-097d7f90"]]);
|
|
611
453
|
//#endregion
|
|
612
454
|
//#region src/components/select/types.ts
|
|
613
455
|
var selectParts = [
|